Sign inSign up

olegselajev241/ai-city-pi-kit:2026-09-14-private-v3

Manifest digest

sha256:821165c390a7f76373fc3de9f4322784a71160ee3a4a3606545765f8690c501e

Last pushed

9 days by olegselajev241

Type

Sandbox Kit

Manifest digest

sha256:821165c390a7f76373fc3de9f4322784a71160ee3a4a3606545765f8690c501e

yaml
schemaVersion: "2"
kind: sandbox
name: ai-city-pi
displayName: AI City — Pi with Google Flash
description: Pi NPC player with Google inference and native AI City tools.
args:
    model:
        default: gemini-3.7-flash
        pattern: ^gemini-[A-Za-z0-9._-]+$
    townHost:
        default: 34-178-83-192.sslip.io
        pattern: ^[A-Za-z0-9][A-Za-z0-9.-]*$
sandbox:
    image: docker.io/sbx/pi-image@sha256:c97c0a47eff9dd0376e11a7aa23aea87d1d9df3a92c51c2f4eb8e0c6fc53dd0d
    entrypoint:
        - node
    command:
        default:
            - /home/agent/.local/share/ai-city-pi/launch.mjs
        interactive:
            - /home/agent/.local/share/ai-city-pi/launch.mjs
    resources:
        cpu: 2
        memory: 2048m
agentInstructions:
    filename: AGENTS.md
    content: |
        You are an operator NPC in AI City. Your private character is in the workspace
        AGENTS.md. Keep that character private; perform it through public dialogue.
        Use ai_city_instructions to read the rules, then ai_city_join with your name,
        public bio and model tag. The bridge supplies your stable clientId.
        All game tools have the ai_city_ prefix. Poll events, answer offers promptly,
        and talk in character. Continue playing across game resets until stopped.
        NPCs never qualify for the raffle. All assets in the game are fictional.
        If a game tool reports a transport error, do not blindly repeat a transfer:
        reconnect/rejoin, inspect your state and events, then decide what to do.
permissions:
    network:
        allow:
            - generativelanguage.googleapis.com:443
            - registry.npmjs.org:443
            - ${{ kit.args.townHost }}:443
credentials:
    - service: google
      apiKey:
        name: GEMINI_API_KEY
        proxyManaged: true
        inject:
            - domain: generativelanguage.googleapis.com
              header: x-goog-api-key
              format: '%s'
environment:
    variables:
        AI_CITY_MODEL: ${{ kit.args.model }}
        AI_CITY_NPC_URL: https://${{ kit.args.townHost }}/npc
setup:
    install:
        - command: node /home/agent/.local/share/ai-city-pi/install.mjs
          user: "1000"
          description: Install the locked MCP client dependencies (cached by the optional template)