SuperAPI AI 工具集

gpc-plugin-development

编程与开发

查看项目

更新于 10-16 03:35

技能介绍

用途:本技能面向 GPC 插件开发,适用于新建插件、添加自定义钩子(通知、日志、指标)、注册自定义 CLI 命令、理解插件生命周期与权限体系、调试插件加载或钩子执行,以及发布插件到 npm。

主要能力:插件导出 GpcPlugin 对象,在 register(hooks) 中注册钩子。可用钩子包括 beforeCommand、afterCommand、onError、beforeRequest、afterResponse,以及用 registerCommands 注册自定义 CLI 命令。第三方插件(gpc-plugin-*)必须在 package.json 中通过 gpc.permissions 声明权限,如 hooks:afterCommand、hooks:onError、api:read、commands:register、read:config、write:config、read:auth、api:write 等;缺少声明会被拒绝(PLUGIN_PERMISSIONS_REQUIRED,退出码 10)。自 v0.9.94+ 起,信任来自解析后的包清单校验再进行 import(),不匹配会以 PLUGIN_IDENTITY_MISMATCH 拒绝且不执行模块代码;@gpc-cli/plugin-sdk 本身已移出第一方列表。权限在钩子注册时强制执行,register() 抛错会被捕获并跳过插件。

使用方式:需 Node.js 20+ 与 TypeScript 5+,以 @gpc-cli/plugin-sdk 为 peer dependency。可用 gpc plugins init my-notifier --description "..." 生成脚手架,或手动 npm init、安装依赖。命名规范:第一方为 @gpc-cli/plugin-<name>,第三方为 gpc-plugin-<name>。测试用 vitest,构建用 npx tsc,发布用 npm publish。在 .gpcrc.json 的 plugins 列出插件,第三方还需列入 approvedPlugins。

适用场景:开发 GPC 通知、日志、指标类插件,扩展 CLI 命令。

限制:插件需经批准才会加载,未批准者被静默跳过;项目级 .gpcrc.json 不能设置 approvedPlugins,仅用户配置可信;相对路径的旧批准需在项目目录重新运行 gpc plugins approve 授权;独立二进制模式忽略插件,需使用 npm 安装的 GPC。