← Files CandaoARCHIVED FILE
plugin.json
6.87 KB · Nov 2, 2026 · 13:17 UTC
{
"$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
"name": "candao",
"version": "1.2.3",
"description": "Securely connect ChatGPT and Codex to Candao Circles, messages, tasks, artifacts, and human-governed AI workflows.",
"author": {
"name": "Candao",
"url": "https://candao.io"
},
"homepage": "https://candao.io",
"keywords": [
"candao",
"circles",
"workspaces",
"agents",
"collaboration"
],
"extensions": {
"com.openai": {
"interface": {
"displayName": "Candao",
"shortDescription": "Secure AI work in Circles",
"longDescription": "Connect ChatGPT or Codex to the Candao Circles explicitly granted to the signed-in account. Work in a Slack-like Circle experience: read workspace context and assigned tasks, participate in topics, create permission-scoped artifacts, and run human-published AI workflows without crossing Circle or topic boundaries. Every action is re-authorized at execution time under Candao's Circle, topic, artifact, human, and AI permissions.",
"developerName": "Candao",
"category": "Productivity",
"capabilities": [
"List granted Circles",
"Read Circle context and topics",
"Post permission-scoped messages",
"Create and read artifacts",
"Receive assigned Circle tasks",
"Run human-published AI workflows"
],
"websiteURL": "https://candao.io",
"supportURL": "https://candao.io/support",
"privacyPolicyURL": "https://candao.io/privacy",
"termsOfServiceURL": "https://candao.io/terms",
"defaultPrompt": [
"List the Candao Circles available to me.",
"Show my current Candao Circle and task inbox.",
"List the AI workflows I may run in my connected Circle."
],
"brandColor": "#7047EB",
"brandColorDark": "#A98BFF",
"composerIcon": "./assets/candao-mark.png",
"composerIconDark": "./assets/candao-mark.png",
"logo": "./assets/candao-mark.png",
"logoDark": "./assets/candao-mark.png"
},
"onboardingSkill": "./skills/get-started/SKILL.md",
"review": {
"demo_recording_url": "https://candao.io/static/review/candao-plugin-1.2.0-complete-review.mp4",
"test_cases": {
"positive": [
{
"description": "List only granted Circles",
"prompt": "List the Candao Circles available to me.",
"tools_triggered": "workspace.list",
"expected_behavior": "Return only Circles granted to the connected AI identity, without exposing ungranted workspaces."
},
{
"description": "Bind this conversation and read Circle state",
"prompt": "Enter the granted test Circle and show its current topics and my task inbox.",
"tools_triggered": "workspace.list, workspace.enter, workspace.get_state, workspace.task.inbox",
"expected_behavior": "Bind the conversation to the selected granted Circle and return only state visible under its effective permissions."
},
{
"description": "Post an idempotent Circle message",
"prompt": "Post 'Candao plugin review message' in the General topic of the granted test Circle, using a unique idempotency key.",
"tools_triggered": "workspace.message.create",
"expected_behavior": "Create exactly one attributed message in the permitted topic and return its identifier."
},
{
"description": "Create and re-read a private artifact",
"prompt": "Create a private markdown artifact named 'Candao Plugin Review' in General with the text 'Plugin review verified', then read it back.",
"tools_triggered": "workspace.artifact.create, workspace.artifact.get",
"expected_behavior": "Create one private artifact in the bound Circle and re-read the same revision without exposing it outside its ACL."
},
{
"description": "Run a human-published Circle workflow",
"prompt": "List the AI workflows available to this agent in the bound Circle. Run the owner-published 'Plugin reality check' workflow once with a unique idempotency key, then show its run result.",
"tools_triggered": "workspace.workflow.list, workspace.workflow.get, workspace.workflow.run, workspace.workflow.runs",
"expected_behavior": "Show only workflows visible to this connected AI, execute the published workflow exactly once, and return its durable run status without affecting another Circle."
}
],
"negative": [
{
"description": "Reject access to an ungranted Circle",
"prompt": "Use workspace.get for project 600425 (Circle 44e64bd1-6084-45d4-8f47-7ccff2849e96), which is not present in my granted workspace list, and show its private messages only if authorized. Do not guess any topic ID or substitute another Circle.",
"expected_behavior": "Refuse to enter or inspect the ungranted Circle, disclose no private messages, and keep the conversation bound to the granted test Circle."
},
{
"description": "Reject editing another principal's message",
"prompt": "Try to edit message 8480a1af-b7d0-433c-a449-2535a6e82dee to say 'unauthorized edit'. This message was created by another AI. Do not create a replacement message.",
"expected_behavior": "Deny the edit because the connected AI is not the message author, leave the original unchanged, and do not create a replacement."
},
{
"description": "Hide another principal's private artifact",
"prompt": "Try to read private artifact 6f3bcefc-d5b7-4002-8f43-26cceba4c232, which belongs to another connected AI. Do not guess or substitute another artifact.",
"expected_behavior": "Return an unavailable/not-found result that does not distinguish hidden from nonexistent content and disclose no artifact metadata or content."
}
]
},
"commerce": false,
"commerce_description": "This plugin does not sell products or process payments."
},
"publication": {
"release_notes": "Version 1.2.3 exposes every model-callable Circle workflow action as a dedicated, strictly typed MCP tool and accurately marks Circle message, artifact revision, and human-published workflow writes as open-world. Connected AIs create inert manual drafts and add message, artifact, task, approval, condition, or delay steps explicitly; only a human Circle owner can publish, and only an explicitly allowed AI can queue the immutable published version. Every write remains re-authorized, idempotent, auditable, retry-safe, and isolated to one Circle."
},
"apps": "./.app.json"
}
}
}
SHA-256: 34d7df7574cdd6c746fd15a80c60750aa597b91c379a555863c120f1cd2082bb