用途:本资料是 Kit 扩展开发的入口指南,面向需要构建、创建或修改 Kit 扩展、添加自定义工具、斜杠命令、组件、键盘快捷键等场景。
主要能力:Kit 扩展是单文件 Go 程序,由 Yaegi 在运行时解释执行,可挂接 Kit 生命周期、注册自定义工具与斜杠命令、显示组件、拦截编辑器输入、渲染工具输出、注册与切换配色主题等。扩展可通过 git 仓库用 kit install 分发,仓库可含单个或多个扩展。
使用方式:每个扩展必须导出 package main 并提供 Init(api ext.API) 函数,文件顶部加 //go:build ignore 标签以避免被 go build 直接编译。扩展可从系统级、用户级、项目级目录自动加载,也可用 kit -e path/to/extension.go 或 kit --extension path/to/extension.go 显式加载。导入路径为 kit/ext,可用完整标准库及 os/exec。Init 接收 ext.API 用于注册处理器,事件处理器接收 ext.Context 提供运行时能力。可用 kit extensions validate 校验语法。
关键限制:Yaegi 会静默错误编译部分合法 Go 代码,失败不报错只是不生效。结构体字段或处理器参数中不能使用具名函数引用,必须用匿名闭包;无标签 switch 的 case 不能用逗号分隔多条件,需用 || 合并;跨边界不使用接口;用包级变量保存状态。返回 nil 表示不改变,返回非 nil 指针才修改或阻断。斜杠命令与快捷键处理器运行在独立 goroutine 中。不要绑定 ctrl+c。OnAgentEnd 中错误判断用 e.StopReason == "error"。工具 Parameters 为 JSON Schema 字符串。对齐含多字节字符的组件文本时用 rune 计数。
适用场景:为 Kit 增加工具、命令、快捷键、渲染器、主题,或通过 git 仓库分发扩展。
限制:资料未提供具体收费、价格、平台支持范围与效果数据。