@gencode/plugin-sdk 0.0.6 → 0.0.7
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 +11 -10
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/package.json +3 -3
package/README.md
CHANGED
|
@@ -112,7 +112,7 @@ WebSocket / callback 中的事件载荷核心字段:
|
|
|
112
112
|
|
|
113
113
|
插件可以通过 `api.registerUiTool()` 注册 UI 工具,让 LLM 在需要时暂停 agent 并通过前端表单收集结构化用户输入。
|
|
114
114
|
|
|
115
|
-
与 `registerTool`
|
|
115
|
+
与 `registerTool` 不同,插件只需要提供 schema 和基本元数据。`inputSchema` 用于定义 LLM 调用这个工具时的参数结构,`outputSchema` 用于定义前端要渲染和回传的表单结构;session 绑定、暂停/恢复流程、结果校验都由框架自动完成。
|
|
116
116
|
|
|
117
117
|
### 基本用法
|
|
118
118
|
|
|
@@ -124,7 +124,7 @@ export default function register(api: PluginApi) {
|
|
|
124
124
|
name: "collect_feedback",
|
|
125
125
|
label: "收集用户反馈",
|
|
126
126
|
description: "Collect structured feedback from the user.",
|
|
127
|
-
|
|
127
|
+
outputSchema: {
|
|
128
128
|
type: "object",
|
|
129
129
|
title: "用户反馈",
|
|
130
130
|
properties: {
|
|
@@ -146,7 +146,7 @@ export default function register(api: PluginApi) {
|
|
|
146
146
|
|
|
147
147
|
### JSON Schema 约定
|
|
148
148
|
|
|
149
|
-
`
|
|
149
|
+
`outputSchema` 遵循 JSON Schema 风格的对象定义,推荐至少提供:
|
|
150
150
|
|
|
151
151
|
| 字段 | 说明 |
|
|
152
152
|
|------|------|
|
|
@@ -162,7 +162,7 @@ export default function register(api: PluginApi) {
|
|
|
162
162
|
示例:
|
|
163
163
|
|
|
164
164
|
```ts
|
|
165
|
-
|
|
165
|
+
outputSchema: {
|
|
166
166
|
type: "object",
|
|
167
167
|
title: "报告参数",
|
|
168
168
|
properties: {
|
|
@@ -197,7 +197,7 @@ api.registerUiTool({
|
|
|
197
197
|
name: "custom_summary_form",
|
|
198
198
|
label: "自定义摘要表单",
|
|
199
199
|
description: "Collect values through a custom-rendered panel.",
|
|
200
|
-
|
|
200
|
+
outputSchema: {
|
|
201
201
|
type: "object",
|
|
202
202
|
title: "摘要确认",
|
|
203
203
|
properties: {
|
|
@@ -242,7 +242,7 @@ api.registerUiTool({
|
|
|
242
242
|
name: "date_range",
|
|
243
243
|
label: "选择日期范围",
|
|
244
244
|
description: "Collect a date range with cross-field validation.",
|
|
245
|
-
|
|
245
|
+
outputSchema: {
|
|
246
246
|
type: "object",
|
|
247
247
|
title: "日期范围",
|
|
248
248
|
properties: {
|
|
@@ -272,7 +272,7 @@ api.registerUiTool({
|
|
|
272
272
|
| 维度 | `registerTool` | `registerUiTool` |
|
|
273
273
|
|------|---------------|-----------------|
|
|
274
274
|
| 用途 | 通用工具 | 收集前端表单输入 |
|
|
275
|
-
| 开发者关注点 | 完整 `execute` 实现 | 只需提供
|
|
275
|
+
| 开发者关注点 | 完整 `execute` 实现 | 只需提供 `inputSchema?` + `outputSchema` + 元数据 |
|
|
276
276
|
| sessionId | 需要自行处理 | 框架自动绑定 |
|
|
277
277
|
| 暂停/恢复 | 需要手动抛出信号 | 框架自动处理 |
|
|
278
278
|
| 结果校验 | 自行实现 | 内置 JSON Schema 校验 + 可选自定义 validator |
|
|
@@ -280,8 +280,8 @@ api.registerUiTool({
|
|
|
280
280
|
### 运行流程
|
|
281
281
|
|
|
282
282
|
1. LLM 调用 UI 工具 → 自动抛出 `UiToolPauseSignal` 暂停 agent
|
|
283
|
-
2. Runner 捕获信号,发出 `ui_tool_request`
|
|
284
|
-
3. 前端根据
|
|
283
|
+
2. Runner 捕获信号,发出 `ui_tool_request` 进度事件(包含 `outputSchema`)
|
|
284
|
+
3. 前端根据 `outputSchema` 渲染标准表单,或结合 `extra` 渲染自定义 UI
|
|
285
285
|
4. 用户提交后,CLI 带 `uiToolResume` 重新调用 agent
|
|
286
286
|
5. 框架自动校验数据(内置 + 自定义 validator)
|
|
287
287
|
6. 校验通过 → 工具返回提交值给 LLM → agent 继续执行
|
|
@@ -292,7 +292,8 @@ api.registerUiTool({
|
|
|
292
292
|
|
|
293
293
|
- `PluginUiToolDescriptor` — `registerUiTool` 的参数类型
|
|
294
294
|
- `PluginUiToolOptions` — 可选参数(如 `optional`)
|
|
295
|
-
- `
|
|
295
|
+
- `UiToolInputSchema` — LLM 调用参数 schema
|
|
296
|
+
- `UiToolOutputSchema` / `UiToolSchema` — 表单 schema
|
|
296
297
|
- `UiToolJsonSchemaProperty` — 单个字段的 JSON Schema 定义
|
|
297
298
|
- `UiToolJsonSchemaType` — 支持的 JSON Schema `type`
|
|
298
299
|
- `UiToolExtra` — 前端扩展渲染负载
|
package/dist/index.d.ts
CHANGED
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
* @gencode/plugin-sdk
|
|
3
3
|
* Thin re-export layer for plugin authors.
|
|
4
4
|
*/
|
|
5
|
-
export type { AgentCustomProgressEvent, PluginApi, PluginRegistry, PluginRecord, PluginDiagnostic, PluginKind, PluginOrigin, PluginManifest, PluginManifestLoadResult, PluginConfigUiHint, PluginProgressEmitter, PluginCustomProgressInput, PluginUiToolDescriptor, PluginUiToolOptions, } from "@gencode/agents";
|
|
5
|
+
export type { UiToolInputSchema, AgentCustomProgressEvent, PluginApi, PluginRegistry, PluginRecord, PluginDiagnostic, PluginKind, PluginOrigin, PluginManifest, PluginManifestLoadResult, PluginConfigUiHint, PluginProgressEmitter, PluginCustomProgressInput, PluginUiToolDescriptor, PluginUiToolOptions, } from "@gencode/agents";
|
|
6
6
|
export type { MemoryProvider, MemoryProviderContext, MemoryProviderFactory, MemoryProviderRegistration, MemorySearchOptions, MemoryChangeSource, MemoryChangedEvent, MemoryChangedHandler, } from "@gencode/agents";
|
|
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 { UiToolExtra, UiToolJsonSchemaProperty, UiToolJsonSchemaType, UiToolSchema, UiToolValidationError, UiToolValidationResult, } from "@gencode/shared";
|
|
10
|
+
export type { UiToolExtra, UiToolOutputSchema, UiToolJsonSchemaProperty, UiToolJsonSchemaType, UiToolSchema, UiToolValidationError, UiToolValidationResult, } from "@gencode/shared";
|
|
11
11
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -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,WAAW,EACX,wBAAwB,EACxB,oBAAoB,EACpB,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,iBAAiB,EACjB,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,WAAW,EACX,kBAAkB,EAClB,wBAAwB,EACxB,oBAAoB,EACpB,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.
|
|
3
|
+
"version": "0.0.7",
|
|
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.
|
|
21
|
-
"@gencode/shared": "0.0.
|
|
20
|
+
"@gencode/agents": "0.0.43",
|
|
21
|
+
"@gencode/shared": "0.0.15"
|
|
22
22
|
},
|
|
23
23
|
"devDependencies": {
|
|
24
24
|
"typescript": "^5.9.3"
|