@gencode/plugin-sdk 0.0.4 → 0.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -150,6 +150,37 @@ export default function register(api: PluginApi) {
150
150
  | `textarea` | 多行文本 |
151
151
  | `file` | 文件路径或 data URI |
152
152
 
153
+ ### `uiExtension` 扩展字段
154
+
155
+ 有些场景不适合完全按 `schema.fields` 渲染标准表单。此时可以通过 `uiExtension` 透传一份 JSON-safe 扩展配置给前端,由接入方自行解释并渲染更高自定义的 UI。
156
+
157
+ ```ts
158
+ api.registerUiTool({
159
+ name: "custom_summary_form",
160
+ label: "自定义摘要表单",
161
+ description: "Collect values through a custom-rendered panel.",
162
+ schema: {
163
+ title: "摘要确认",
164
+ fields: [
165
+ { name: "approved", label: "是否确认", type: "boolean", required: true },
166
+ { name: "comment", label: "补充说明", type: "textarea" },
167
+ ],
168
+ },
169
+ uiExtension: {
170
+ renderer: "summary-card",
171
+ sections: [
172
+ { kind: "markdown", title: "摘要", content: "这里放自定义摘要内容" },
173
+ ],
174
+ },
175
+ });
176
+ ```
177
+
178
+ 约束:
179
+
180
+ - `uiExtension` 只负责扩展前端渲染,不参与内置字段校验
181
+ - 用户提交结果仍然统一回传到 `values`
182
+ - 建议保持 JSON-safe,避免函数、类实例或不可序列化对象
183
+
153
184
  ### 自定义校验
154
185
 
155
186
  内置 schema 校验(required、类型检查、select 选项范围)之外,可以提供 `validate` 函数做跨字段校验:
@@ -196,7 +227,7 @@ api.registerUiTool({
196
227
 
197
228
  1. LLM 调用 UI 工具 → 自动抛出 `UiToolPauseSignal` 暂停 agent
198
229
  2. Runner 捕获信号,发出 `ui_tool_request` 进度事件(包含表单 schema)
199
- 3. 前端根据 schema 渲染表单
230
+ 3. 前端根据 schema 渲染标准表单,或结合 `uiExtension` 渲染自定义 UI
200
231
  4. 用户提交后,CLI 带 `uiToolResume` 重新调用 agent
201
232
  5. 框架自动校验数据(内置 + 自定义 validator)
202
233
  6. 校验通过 → 工具返回提交值给 LLM → agent 继续执行
package/dist/index.d.ts CHANGED
@@ -7,5 +7,5 @@ export type { MemoryProvider, MemoryProviderContext, MemoryProviderFactory, Memo
7
7
  export type { EmbeddingProvider, EmbeddingProviderContext, EmbeddingProviderFactory, EmbeddingProviderRegistration, } from "@gencode/agents";
8
8
  export type { PluginHookName, PluginHookHandlerMap, PluginHookAgentContext, PluginHookBeforeModelResolveEvent, PluginHookBeforeModelResolveResult, PluginHookBeforePromptBuildEvent, PluginHookBeforePromptBuildResult, PluginHookLlmInputEvent, PluginHookLlmOutputEvent, PluginHookBeforeToolCallEvent, PluginHookBeforeToolCallResult, PluginHookAfterToolCallEvent, PluginHookAgentEndEvent, PluginHookBeforeCompactionEvent, PluginHookAfterCompactionEvent, PluginHookSessionStartEvent, PluginHookSessionEndEvent, PluginHookSessionResetEvent, PluginHookMemoryChangedEvent, } from "@gencode/agents";
9
9
  export type { PluginRuntime } from "@gencode/agents";
10
- export type { UiToolFieldType, UiToolFieldSchema, UiToolSchema, UiToolValidationError, UiToolValidationResult, } from "@gencode/shared";
10
+ export type { UiToolUiExtension, UiToolFieldType, UiToolFieldSchema, UiToolSchema, UiToolValidationError, UiToolValidationResult, } from "@gencode/shared";
11
11
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,YAAY,EACV,wBAAwB,EACxB,SAAS,EACT,cAAc,EACd,YAAY,EACZ,gBAAgB,EAChB,UAAU,EACV,YAAY,EACZ,cAAc,EACd,wBAAwB,EACxB,kBAAkB,EAClB,qBAAqB,EACrB,yBAAyB,EACzB,sBAAsB,EACtB,mBAAmB,GACpB,MAAM,iBAAiB,CAAC;AAEzB,YAAY,EACV,cAAc,EACd,qBAAqB,EACrB,qBAAqB,EACrB,0BAA0B,EAC1B,mBAAmB,EACnB,kBAAkB,EAClB,kBAAkB,EAClB,oBAAoB,GACrB,MAAM,iBAAiB,CAAC;AAEzB,YAAY,EACV,iBAAiB,EACjB,wBAAwB,EACxB,wBAAwB,EACxB,6BAA6B,GAC9B,MAAM,iBAAiB,CAAC;AAEzB,YAAY,EACV,cAAc,EACd,oBAAoB,EACpB,sBAAsB,EACtB,iCAAiC,EACjC,kCAAkC,EAClC,gCAAgC,EAChC,iCAAiC,EACjC,uBAAuB,EACvB,wBAAwB,EACxB,6BAA6B,EAC7B,8BAA8B,EAC9B,4BAA4B,EAC5B,uBAAuB,EACvB,+BAA+B,EAC/B,8BAA8B,EAC9B,2BAA2B,EAC3B,yBAAyB,EACzB,2BAA2B,EAC3B,4BAA4B,GAC7B,MAAM,iBAAiB,CAAC;AAEzB,YAAY,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAGrD,YAAY,EACV,eAAe,EACf,iBAAiB,EACjB,YAAY,EACZ,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,YAAY,EACV,wBAAwB,EACxB,SAAS,EACT,cAAc,EACd,YAAY,EACZ,gBAAgB,EAChB,UAAU,EACV,YAAY,EACZ,cAAc,EACd,wBAAwB,EACxB,kBAAkB,EAClB,qBAAqB,EACrB,yBAAyB,EACzB,sBAAsB,EACtB,mBAAmB,GACpB,MAAM,iBAAiB,CAAC;AAEzB,YAAY,EACV,cAAc,EACd,qBAAqB,EACrB,qBAAqB,EACrB,0BAA0B,EAC1B,mBAAmB,EACnB,kBAAkB,EAClB,kBAAkB,EAClB,oBAAoB,GACrB,MAAM,iBAAiB,CAAC;AAEzB,YAAY,EACV,iBAAiB,EACjB,wBAAwB,EACxB,wBAAwB,EACxB,6BAA6B,GAC9B,MAAM,iBAAiB,CAAC;AAEzB,YAAY,EACV,cAAc,EACd,oBAAoB,EACpB,sBAAsB,EACtB,iCAAiC,EACjC,kCAAkC,EAClC,gCAAgC,EAChC,iCAAiC,EACjC,uBAAuB,EACvB,wBAAwB,EACxB,6BAA6B,EAC7B,8BAA8B,EAC9B,4BAA4B,EAC5B,uBAAuB,EACvB,+BAA+B,EAC/B,8BAA8B,EAC9B,2BAA2B,EAC3B,yBAAyB,EACzB,2BAA2B,EAC3B,4BAA4B,GAC7B,MAAM,iBAAiB,CAAC;AAEzB,YAAY,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAGrD,YAAY,EACV,iBAAiB,EACjB,eAAe,EACf,iBAAiB,EACjB,YAAY,EACZ,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,iBAAiB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gencode/plugin-sdk",
3
- "version": "0.0.4",
3
+ "version": "0.0.5",
4
4
  "type": "module",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",
@@ -17,8 +17,8 @@
17
17
  "access": "public"
18
18
  },
19
19
  "dependencies": {
20
- "@gencode/agents": "0.0.40",
21
- "@gencode/shared": "0.0.12"
20
+ "@gencode/agents": "0.0.41",
21
+ "@gencode/shared": "0.0.13"
22
22
  },
23
23
  "devDependencies": {
24
24
  "typescript": "^5.9.3"