← Files Sol SandboxARCHIVED FILE
plugin.json
6.51 KB · Nov 2, 2026 · 13:07 UTC
{
"$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