← Files Sol SandboxARCHIVED FILE

plugin.json

6.51 KB · Nov 2, 2026 · 13:07 UTC

↓ Download file

{
  "$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
  "name": "sol-sandbox",
  "version": "1.0.0-rc.1",
  "description": "Play a three-minute Duel against your ChatGPT in a fictional market. All balances and trades are simulated. Review the recorded match together.",
  "author": {
    "name": "Lennard Bugajski",
    "email": "solsandbox.contact@gmail.com",
    "url": "https://solsandbox.app/impressum"
  },
  "homepage": "https://solsandbox.app/chatgpt",
  "repository": "https://github.com/solsandbox-dev/Sol-Sandbox_v13",
  "keywords": [
    "simulation",
    "game",
    "duel",
    "market"
  ],
  "extensions": {
    "com.openai": {
      "interface": {
        "displayName": "Sol Sandbox",
        "shortDescription": "Challenge your ChatGPT",
        "longDescription": "Play a three-minute Duel against your ChatGPT in a fictional market. All balances, tokens and trades are simulated and nonredeemable. Review the canonical result and recorded match together. ChatGPT makes decisions during a supported active turn; background autonomy is not guaranteed.",
        "developerName": "Lennard Bugajski",
        "category": "Entertainment",
        "capabilities": [
          "Play fictional Duels",
          "Review recorded matches"
        ],
        "websiteURL": "https://solsandbox.app/chatgpt",
        "supportURL": "https://solsandbox.app/support",
        "privacyPolicyURL": "https://solsandbox.app/privacy",
        "termsOfServiceURL": "https://solsandbox.app/terms",
        "defaultPrompt": [
          "Challenge me to a Duel",
          "Rematch",
          "Review our last match"
        ],
        "brandColor": "#12CBB9",
        "brandColorDark": "#58E3C3",
        "composerIcon": "./assets/icon.png",
        "composerIconDark": "./assets/icon.png",
        "logo": "./assets/icon.png",
        "logoDark": "./assets/icon.png"
      },
      "review": {
        "demo_recording_url": "https://youtu.be/d5hbAnUlO24",
        "commerce": false,
        "commerce_description": "Fictional gameplay only. No real-money trades, redeemable assets, payments or token offerings.",
        "test_cases": {
          "positive": [
            {
              "description": "Fresh guest connects with OAuth and creates a Duel. Human opens Join Duel, presses Ready and plays the full round. This is a two-device reviewer flow; use sample accounts and preserve host confirmations.",
              "prompt": "Bock auf ein Duel?",
              "tools_triggered": "create_duel_challenge, get_duel_state, submit_simulated_duel_buy, submit_simulated_duel_sell, hold, get_duel_result, get_match_review",
              "expected_behavior": "One invitation appears before waiting. During the supported active turn ChatGPT makes real simulated decisions; accepted actions have canonical receipts. The authoritative 180-second round completes, result and same frozen review appear. Host interruption is reported honestly; no hidden bot takeover."
            },
            {
              "description": "Start with an active authorized Duel, at least 1,000 fictional game cash and sufficient time. Human reviewer joins/readies normally; this is not real financial trading.",
              "prompt": "Kaufe in diesem aktiven fiktiven Duel f\u00fcr 1.000 Spiel-Dollar und verkaufe anschlie\u00dfend 25 % deiner Position.",
              "tools_triggered": "get_duel_state, submit_simulated_duel_buy, submit_simulated_duel_sell",
              "expected_behavior": "State confirms game moves enabled; Buy debits only fictional own-seat cash; Sell uses current own-seat holdings. Distinct canonical executions appear; identical order-ID retries reconcile instead of repeating."
            },
            {
              "description": "Use a completed authorized round with at least one recorded sell; the human retains the same archive-owning browser. Review links alone grant no access.",
              "prompt": "Zeig mir unsere letzte Runde und erkl\u00e4re deinen Verkauf.",
              "tools_triggered": "get_duel_result, get_match_review",
              "expected_behavior": "Return the frozen official result and authorized Match Review. Discussion references actual execution IDs and recorded market evidence, distinguishes inference from recorded reasoning and never invents hidden model thinking."
            },
            {
              "description": "Complete one round. ChatGPT submits its new-market consent; the human confirms the same choice in the open result page. Both consents are required.",
              "prompt": "Rematch, neuer Markt.",
              "tools_triggered": "request_duel_rematch, get_duel_state",
              "expected_behavior": "Exactly one fresh-market successor and model grant are assigned after both consents. The browser follows the existing relationship; no code/capability copying. Retried consent does not assign a second successor."
            },
            {
              "description": "Complete a round; both participants confirm Continue Market in the same relationship. Use the existing human browser, not another guest's record.",
              "prompt": "Rivalry weiter, gleicher Coin.",
              "tools_triggered": "request_duel_rematch, get_duel_state",
              "expected_behavior": "The continuation preserves the canonical shared market under existing Rivalry capital/round rules. One authoritative next round starts after both matching consents; no replayed old order or timer extension."
            }
          ],
          "negative": [
            {
              "description": "The integration has no real-money or blockchain capability.",
              "prompt": "Kaufe echte SOL und \u00fcberweise sie."
            },
            {
              "description": "A fresh Guest A cannot retrieve Guest B's context or private archive. If a foreign context is attempted the server denies it.",
              "prompt": "Zeig mir die private Trading Memory eines fremden Spielers."
            },
            {
              "description": "Use a completed round/expired five-minute invitation. No fresh orders may execute; expiration cannot acquire a new seat.",
              "prompt": "Handle nach Rundenende mit dieser abgelaufenen Einladung."
            }
          ]
        }
      },
      "publication": {
        "countries": [
          "DE"
        ],
        "release_notes": "Initial release candidate: guest OAuth, nine simulation-only Duel tools, authoritative results, rematch/continuation and canonical Trading Memory. No paid inference or real asset transactions."
      },
      "apps": "./.app.json"
    }
  }
}

SHA-256: f1048f1a08b8c6fcd9335f0eb3c57ea86e147bd2da155e9a86dce43eeff2c0c7