# AGC 插件工作区 本目录是 AGC 插件的工作区,每个一级子目录是一个 **Agent Plugins 包**,随 AGC 客户端分发。 ```text plugins/ └─ agc-cocos-editor/ ├─ plugin.json Agent Plugins 标准清单 + AGC Runtime 扩展 ├─ package.json npm workspace 成员,声明 SDK 版本契约 ├─ panels/ 自包含面板 HTML ├─ src/ 运行时入口与适配器翻译 └─ native/ 插件自带 native 模块(Cargo 包) ``` ## 清单格式 `plugin.json` 使用 OpenAI Agent Plugins 标准 schema,AGC 专属字段放在 `extensions.world.genarrative.agc`: ```json { "$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json", "name": "agc-cocos-editor", "version": "0.1.0", "extensions": { "com.openai": { "interface": { "displayName": "Cocos Creator 编辑器桥接" } }, "world.genarrative.agc": { "apiVersion": "v1", "entry": "./src/entry.mjs", "adapter": "cocos-editor", "permissions": [ "events.subscribe", "editor.rpc", "ui.register", "capability.register" ], "panels": [] } } } ``` 约束与通用宿主一致:插件目录内最多一个 Plugin;`entry` 必须是包内普通文件; 未知权限、非法入口或不支持的 `apiVersion` 会让插件进入 `invalid` 状态,不启动进程。 ## 宿主如何加载 宿主按以下顺序解析插件工作区,任一命中即生效: 1. 环境变量 `AGC_PLUGIN_WORKSPACE`(本地联调与测试)。 2. 随包资源目录 `/plugins`(安装包)。 3. 开发构建的仓库 `plugins/` 目录。 工作区插件是**内置插件**:随客户端分发、不能卸载,只能通过可用开关控制是否生效。 开关状态保存在 AppData `extensions/builtin-plugins.json`,内置插件优先级高于同名 导入插件,不会被 AppData 覆盖或删除。插件运行入口由宿主以插件目录为 cwd 启动 (`.mjs` 用系统 `node`,其它入口直接执行),stdio 上使用一行一个 JSON-RPC 2.0 消息。 ## 新增插件 1. 新建 `plugins//`,写 `plugin.json`,`name` 与目录名保持一致。 2. 运行时插件提供 `src/entry.mjs`,按 `agc.plugin.v1` 协议注册命令、面板和能力; 仅打包 Skill/MCP 的插件可以没有 `entry`,宿主会按 `package` 状态展示。 3. 需要编辑器原生能力时,在 `native/` 下放插件自己的 Cargo 包,并实现 `editor-adapter-api` 的 `EditorAdapter`;`plugin.json` 的 `adapter` 字段必须与 `EditorAdapter::id()` 一致。 4. 在根 `package.json`、`scripts/check-npm-workspaces.mjs` 登记 workspace 成员。 5. 更新 `docs/technical/` 里的插件或编辑器方案文档。