@icen.ai/ui 0.8.1 → 0.10.0
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/AGENTS.md +176 -75
- package/README.md +66 -88
- package/dist/base.css +208 -179
- package/dist/behaviors/accordion.mjs +8 -8
- package/dist/behaviors/ai-branch.d.mts +19 -0
- package/dist/behaviors/ai-branch.mjs +1133 -0
- package/dist/behaviors/ai-chat.d.mts +12 -10
- package/dist/behaviors/ai-chat.mjs +1125 -155
- package/dist/behaviors/ai-composer.d.mts +44 -12
- package/dist/behaviors/ai-composer.mjs +2084 -523
- package/dist/behaviors/ai-core.d.mts +1 -1
- package/dist/behaviors/ai-core.mjs +1016 -107
- package/dist/behaviors/ai-diff.mjs +1019 -127
- package/dist/behaviors/ai-feedback.d.mts +26 -0
- package/dist/behaviors/ai-feedback.mjs +1212 -0
- package/dist/behaviors/ai-panel.d.mts +21 -7
- package/dist/behaviors/ai-panel.mjs +1308 -264
- package/dist/behaviors/ai-provider.mjs +1003 -101
- package/dist/behaviors/ai-threads.d.mts +38 -0
- package/dist/behaviors/ai-threads.mjs +1233 -0
- package/dist/behaviors/ai-tool.d.mts +2 -2
- package/dist/behaviors/ai-tool.mjs +2042 -396
- package/dist/behaviors/ai-tools.d.mts +89 -16
- package/dist/behaviors/ai-tools.mjs +4453 -372
- package/dist/behaviors/autocomplete.d.mts +53 -0
- package/dist/behaviors/autocomplete.mjs +1600 -0
- package/dist/behaviors/back-top.d.mts +1 -1
- package/dist/behaviors/back-top.mjs +951 -14
- package/dist/behaviors/carousel.d.mts +1 -1
- package/dist/behaviors/carousel.mjs +906 -11
- package/dist/behaviors/cascader.d.mts +48 -0
- package/dist/behaviors/cascader.mjs +1853 -0
- package/dist/behaviors/charts.d.mts +174 -8
- package/dist/behaviors/charts.mjs +2632 -192
- package/dist/behaviors/code-block.d.mts +36 -0
- package/dist/behaviors/code-block.mjs +1611 -0
- package/dist/behaviors/command-palette.d.mts +9 -6
- package/dist/behaviors/command-palette.mjs +161 -59
- package/dist/behaviors/context-menu.d.mts +9 -8
- package/dist/behaviors/context-menu.mjs +1112 -44
- package/dist/behaviors/controls.d.mts +13 -13
- package/dist/behaviors/controls.mjs +989 -130
- package/dist/behaviors/copy.d.mts +21 -2
- package/dist/behaviors/copy.mjs +1206 -42
- package/dist/behaviors/datatable.d.mts +53 -3
- package/dist/behaviors/datatable.mjs +1963 -207
- package/dist/behaviors/date-picker.d.mts +0 -1
- package/dist/behaviors/date-picker.mjs +1340 -293
- package/dist/behaviors/design.d.mts +54 -0
- package/dist/behaviors/design.mjs +109 -0
- package/dist/behaviors/dropdown.d.mts +5 -6
- package/dist/behaviors/dropdown.mjs +262 -110
- package/dist/behaviors/events.d.mts +313 -3
- package/dist/behaviors/events.mjs +47 -2
- package/dist/behaviors/feedback.d.mts +30 -0
- package/dist/behaviors/feedback.mjs +296 -0
- package/dist/behaviors/focus.d.mts +8 -0
- package/dist/behaviors/focus.mjs +24 -0
- package/dist/behaviors/form-validate.d.mts +102 -0
- package/dist/behaviors/form-validate.mjs +6091 -0
- package/dist/behaviors/i18n.d.mts +789 -0
- package/dist/behaviors/i18n.mjs +1711 -0
- package/dist/behaviors/icons.d.mts +93 -0
- package/dist/behaviors/icons.mjs +113 -0
- package/dist/behaviors/input.d.mts +9 -1
- package/dist/behaviors/input.mjs +1056 -60
- package/dist/behaviors/kb-access.d.mts +34 -0
- package/dist/behaviors/kb-access.mjs +2459 -0
- package/dist/behaviors/kb-acl.d.mts +50 -0
- package/dist/behaviors/kb-acl.mjs +1345 -0
- package/dist/behaviors/kb-answer.d.mts +38 -0
- package/dist/behaviors/kb-answer.mjs +3707 -0
- package/dist/behaviors/kb-audit.d.mts +23 -0
- package/dist/behaviors/kb-audit.mjs +1297 -0
- package/dist/behaviors/kb-canvas.d.mts +44 -0
- package/dist/behaviors/kb-canvas.mjs +1512 -0
- package/dist/behaviors/kb-chain.d.mts +15 -0
- package/dist/behaviors/kb-chain.mjs +1192 -0
- package/dist/behaviors/kb-checkpoint.d.mts +16 -0
- package/dist/behaviors/kb-checkpoint.mjs +1492 -0
- package/dist/behaviors/kb-chunks.d.mts +31 -0
- package/dist/behaviors/kb-chunks.mjs +1414 -0
- package/dist/behaviors/kb-citation.d.mts +38 -0
- package/dist/behaviors/kb-citation.mjs +1699 -0
- package/dist/behaviors/kb-clarify.d.mts +20 -0
- package/dist/behaviors/kb-clarify.mjs +1176 -0
- package/dist/behaviors/kb-conflict.d.mts +22 -0
- package/dist/behaviors/kb-conflict.mjs +1206 -0
- package/dist/behaviors/kb-connector.d.mts +17 -0
- package/dist/behaviors/kb-connector.mjs +1303 -0
- package/dist/behaviors/kb-core.d.mts +534 -0
- package/dist/behaviors/kb-core.mjs +1805 -0
- package/dist/behaviors/kb-eval.d.mts +22 -0
- package/dist/behaviors/kb-eval.mjs +2235 -0
- package/dist/behaviors/kb-explain.d.mts +11 -0
- package/dist/behaviors/kb-explain.mjs +1165 -0
- package/dist/behaviors/kb-filter.d.mts +31 -0
- package/dist/behaviors/kb-filter.mjs +2417 -0
- package/dist/behaviors/kb-gap.d.mts +27 -0
- package/dist/behaviors/kb-gap.mjs +1195 -0
- package/dist/behaviors/kb-hittest.d.mts +34 -0
- package/dist/behaviors/kb-hittest.mjs +1352 -0
- package/dist/behaviors/kb-metadata.d.mts +29 -0
- package/dist/behaviors/kb-metadata.mjs +1248 -0
- package/dist/behaviors/kb-passage.d.mts +41 -0
- package/dist/behaviors/kb-passage.mjs +1469 -0
- package/dist/behaviors/kb-pipeline.d.mts +18 -0
- package/dist/behaviors/kb-pipeline.mjs +1301 -0
- package/dist/behaviors/kb-qa.d.mts +26 -0
- package/dist/behaviors/kb-qa.mjs +1260 -0
- package/dist/behaviors/kb-rerank.d.mts +20 -0
- package/dist/behaviors/kb-rerank.mjs +1248 -0
- package/dist/behaviors/kb-retrieval.d.mts +49 -0
- package/dist/behaviors/kb-retrieval.mjs +2585 -0
- package/dist/behaviors/kb-review.d.mts +44 -0
- package/dist/behaviors/kb-review.mjs +2282 -0
- package/dist/behaviors/kb-sandbox.d.mts +33 -0
- package/dist/behaviors/kb-sandbox.mjs +1247 -0
- package/dist/behaviors/kb-segment.d.mts +32 -0
- package/dist/behaviors/kb-segment.mjs +1431 -0
- package/dist/behaviors/kb-select.d.mts +24 -0
- package/dist/behaviors/kb-select.mjs +1989 -0
- package/dist/behaviors/kb-sources.d.mts +27 -0
- package/dist/behaviors/kb-sources.mjs +1287 -0
- package/dist/behaviors/kb-sql.d.mts +43 -0
- package/dist/behaviors/kb-sql.mjs +1865 -0
- package/dist/behaviors/kb-trace.d.mts +16 -0
- package/dist/behaviors/kb-trace.mjs +1328 -0
- package/dist/behaviors/kb-visibility.d.mts +44 -0
- package/dist/behaviors/kb-visibility.mjs +1331 -0
- package/dist/behaviors/kb-who-can.d.mts +32 -0
- package/dist/behaviors/kb-who-can.mjs +2216 -0
- package/dist/behaviors/mentions.d.mts +93 -0
- package/dist/behaviors/mentions.mjs +2152 -0
- package/dist/behaviors/modal.d.mts +4 -3
- package/dist/behaviors/modal.mjs +1055 -33
- package/dist/behaviors/nav.d.mts +1 -1
- package/dist/behaviors/nav.mjs +6 -6
- package/dist/behaviors/notification.d.mts +16 -8
- package/dist/behaviors/notification.mjs +1615 -265
- package/dist/behaviors/panel.d.mts +4 -0
- package/dist/behaviors/panel.mjs +994 -0
- package/dist/behaviors/popover.d.mts +28 -5
- package/dist/behaviors/popover.mjs +225 -24
- package/dist/behaviors/select.d.mts +5 -2
- package/dist/behaviors/select.mjs +1410 -117
- package/dist/behaviors/sidebar.d.mts +1 -1
- package/dist/behaviors/sidebar.mjs +13 -13
- package/dist/behaviors/slider.d.mts +1 -1
- package/dist/behaviors/slider.mjs +9 -9
- package/dist/behaviors/split-pane.d.mts +1 -1
- package/dist/behaviors/split-pane.mjs +7 -7
- package/dist/behaviors/suggestions.d.mts +27 -0
- package/dist/behaviors/suggestions.mjs +1089 -0
- package/dist/behaviors/svg-parse.d.mts +14 -0
- package/dist/behaviors/svg-parse.mjs +37 -0
- package/dist/behaviors/tabs.d.mts +2 -2
- package/dist/behaviors/tabs.mjs +25 -25
- package/dist/behaviors/tag-input.d.mts +23 -5
- package/dist/behaviors/tag-input.mjs +1359 -104
- package/dist/behaviors/theme-switcher.d.mts +24 -0
- package/dist/behaviors/theme-switcher.mjs +1981 -0
- package/dist/behaviors/theme.d.mts +15 -8
- package/dist/behaviors/theme.mjs +390 -28
- package/dist/behaviors/toast.d.mts +24 -25
- package/dist/behaviors/toast.mjs +1266 -88
- package/dist/behaviors/tooltip.d.mts +4 -0
- package/dist/behaviors/tooltip.mjs +378 -0
- package/dist/behaviors/tree-select.d.mts +69 -0
- package/dist/behaviors/tree-select.mjs +1907 -0
- package/dist/behaviors/tree.d.mts +1 -1
- package/dist/behaviors/tree.mjs +15 -15
- package/dist/behaviors/upload.d.mts +3 -2
- package/dist/behaviors/upload.mjs +1076 -66
- package/dist/cli.mjs +5 -6
- package/dist/components/ai-branch.mjs +3 -0
- package/dist/components/ai-chat.css +846 -458
- package/dist/components/ai-diff.css +153 -132
- package/dist/components/ai-feedback.mjs +3 -0
- package/dist/components/ai-panel.css +495 -270
- package/dist/components/ai-threads.mjs +3 -0
- package/dist/components/ai-tool.css +393 -238
- package/dist/components/autocomplete.css +61 -0
- package/dist/components/autocomplete.mjs +3 -0
- package/dist/components/back-top.css +34 -31
- package/dist/components/badge.css +44 -41
- package/dist/components/breadcrumb.css +67 -46
- package/dist/components/btn.css +80 -74
- package/dist/components/card.css +117 -106
- package/dist/components/cascader.css +311 -0
- package/dist/components/cascader.mjs +3 -0
- package/dist/components/chart-area.css +8 -2
- package/dist/components/chart-bar.css +95 -33
- package/dist/components/chart-gauge.css +14 -11
- package/dist/components/chart-graph.css +60 -0
- package/dist/components/chart-graph.mjs +4 -0
- package/dist/components/chart-heatmap.css +96 -90
- package/dist/components/chart-line.css +8 -3
- package/dist/components/chart-map.mjs +3 -0
- package/dist/components/chart-pie.css +9 -6
- package/dist/components/chart-radar.css +8 -5
- package/dist/components/chart-scatter.css +9 -6
- package/dist/components/chart-scatter.mjs +1 -1
- package/dist/components/chart-sparkline.css +5 -2
- package/dist/components/chart-stack.css +14 -11
- package/dist/components/charts.css +190 -67
- package/dist/components/charts.mjs +1 -0
- package/dist/components/code-block.css +418 -0
- package/dist/components/code-block.mjs +4 -0
- package/dist/components/command-palette.css +138 -117
- package/dist/components/content.css +257 -251
- package/dist/components/copy.css +72 -44
- package/dist/components/datatable.css +423 -181
- package/dist/components/date-picker.css +135 -104
- package/dist/components/empty.css +68 -65
- package/dist/components/feedback.css +201 -183
- package/dist/components/form-validate.css +120 -0
- package/dist/components/form-validate.mjs +3 -0
- package/dist/components/form.css +150 -127
- package/dist/components/icon.css +102 -0
- package/dist/components/icon.mjs +3 -0
- package/dist/components/input.css +159 -104
- package/dist/components/kb-access.mjs +4 -0
- package/dist/components/kb-acl.mjs +4 -0
- package/dist/components/kb-agent.css +496 -0
- package/dist/components/kb-answer.mjs +4 -0
- package/dist/components/kb-audit.mjs +4 -0
- package/dist/components/kb-canvas.mjs +4 -0
- package/dist/components/kb-chain.mjs +4 -0
- package/dist/components/kb-checkpoint.mjs +4 -0
- package/dist/components/kb-chunks.mjs +4 -0
- package/dist/components/kb-citation.mjs +4 -0
- package/dist/components/kb-clarify.mjs +4 -0
- package/dist/components/kb-conflict.mjs +4 -0
- package/dist/components/kb-connector.mjs +4 -0
- package/dist/components/kb-data.css +653 -0
- package/dist/components/kb-eval.mjs +4 -0
- package/dist/components/kb-explain.mjs +4 -0
- package/dist/components/kb-filter.mjs +4 -0
- package/dist/components/kb-gap.mjs +4 -0
- package/dist/components/kb-ground.css +578 -0
- package/dist/components/kb-hittest.mjs +4 -0
- package/dist/components/kb-ingest.css +882 -0
- package/dist/components/kb-metadata.mjs +4 -0
- package/dist/components/kb-ops.css +554 -0
- package/dist/components/kb-passage.mjs +4 -0
- package/dist/components/kb-perm.css +433 -0
- package/dist/components/kb-pipeline.mjs +4 -0
- package/dist/components/kb-qa.mjs +4 -0
- package/dist/components/kb-rerank.mjs +4 -0
- package/dist/components/kb-retrieval.mjs +4 -0
- package/dist/components/kb-review.mjs +4 -0
- package/dist/components/kb-sandbox.mjs +4 -0
- package/dist/components/kb-search.css +897 -0
- package/dist/components/kb-segment.mjs +4 -0
- package/dist/components/kb-sources.mjs +4 -0
- package/dist/components/kb-sql.mjs +4 -0
- package/dist/components/kb-trace.mjs +4 -0
- package/dist/components/kb-visibility.mjs +4 -0
- package/dist/components/kb-who-can.mjs +4 -0
- package/dist/components/kb.css +263 -0
- package/dist/components/kb.mjs +9 -0
- package/dist/components/layout.css +85 -82
- package/dist/components/material-chinese.css +73 -0
- package/dist/components/material-soviet.css +76 -0
- package/dist/components/material.css +275 -0
- package/dist/components/media.css +220 -166
- package/dist/components/mentions.css +189 -0
- package/dist/components/mentions.mjs +3 -0
- package/dist/components/menu.css +113 -105
- package/dist/components/modal.css +107 -112
- package/dist/components/nav.css +118 -115
- package/dist/components/notification.css +238 -174
- package/dist/components/pagination.css +56 -53
- package/dist/components/panel.css +66 -63
- package/dist/components/panel.mjs +1 -0
- package/dist/components/pill.css +81 -71
- package/dist/components/popover.css +67 -53
- package/dist/components/scroll-area.css +113 -110
- package/dist/components/segmented.css +146 -143
- package/dist/components/select.css +206 -186
- package/dist/components/sidebar.css +137 -127
- package/dist/components/slider.css +117 -114
- package/dist/components/split-pane.css +112 -109
- package/dist/components/stat.css +112 -106
- package/dist/components/steps.css +109 -103
- package/dist/components/switch.css +138 -134
- package/dist/components/table.css +131 -107
- package/dist/components/tabs.css +114 -108
- package/dist/components/tag-input.css +48 -133
- package/dist/components/tag.css +81 -71
- package/dist/components/theme-switcher.css +105 -0
- package/dist/components/theme-switcher.mjs +3 -0
- package/dist/components/toast.css +100 -86
- package/dist/components/toolbar.css +45 -42
- package/dist/components/tooltip.css +102 -43
- package/dist/components/tooltip.mjs +1 -0
- package/dist/components/tree-select.css +416 -0
- package/dist/components/tree-select.mjs +3 -0
- package/dist/components/upload.css +135 -92
- package/dist/fonts/LICENSES/ark-pixel/OFL.txt +96 -0
- package/dist/fonts/LICENSES/cubic-11/OFL.txt +108 -0
- package/dist/fonts/LICENSES/galmuri/LICENSE.txt +93 -0
- package/dist/fonts/OFL.txt +96 -0
- package/dist/fonts/README.md +14 -0
- package/dist/fonts/fusion-pixel-12px-zh-hans.woff2 +0 -0
- package/dist/index.d.mts +64 -15
- package/dist/index.mjs +28049 -8595
- package/dist/react.d.mts +91 -0
- package/dist/react.mjs +8208 -0
- package/dist/registry.json +454 -15
- package/dist/tokens/chinese.css +44 -0
- package/dist/tokens/colors.css +365 -1222
- package/dist/tokens/design.css +109 -0
- package/dist/tokens/dtcg.json +11198 -0
- package/dist/tokens/figma.variables.json +7017 -0
- package/dist/tokens/icon-masks.css +78 -0
- package/dist/tokens/pixel.css +50 -0
- package/dist/tokens/soviet.css +44 -0
- package/dist/tokens/style-profiles.css +36 -547
- package/dist/tokens/themes.json +308 -0
- package/dist/tokens/tokens-studio.json +6728 -0
- package/dist/tokens/typography.css +21 -18
- package/dist/tokens.css +1555 -1801
- package/dist/ui.css +16147 -8597
- package/dist/vue.d.mts +344 -0
- package/dist/vue.mjs +7781 -0
- package/docs/spec/ai-input-experience.md +75 -0
- package/docs/spec/ai-native.md +238 -147
- package/docs/spec/design-philosophy.md +189 -0
- package/docs/spec/design-primitives.md +196 -0
- package/docs/spec/kb-family.md +475 -0
- package/package.json +42 -7
- package/dist/retro-effects.css +0 -255
- package/dist/tokens/retro-effects.css +0 -255
|
@@ -1,15 +1,38 @@
|
|
|
1
|
+
/** run 第三参:执行上下文(AbortSignal + 活动流追加口) */
|
|
2
|
+
interface AiToolRunContext {
|
|
3
|
+
/** 执行中止信号:超时、卡片被移除/淘汰/清空、unregister 下架时 abort */
|
|
4
|
+
signal: AbortSignal;
|
|
5
|
+
/** 活动流:一行一行追加进挂载卡的活动流区域(.icen-ai-tools-item-stream) */
|
|
6
|
+
progress(line: string): void;
|
|
7
|
+
}
|
|
1
8
|
/** 一个 UI 工具:模型可调用的可视化/交互能力 */
|
|
2
9
|
interface AiToolDef<TInput = unknown> {
|
|
3
10
|
/** 工具名(模型侧 function name;建议 snake_case) */
|
|
4
11
|
name: string;
|
|
5
|
-
/**
|
|
12
|
+
/** 给模型看的一段说明(何时用、返回什么);requiresApproval 时也作为审批区原因行 */
|
|
6
13
|
description: string;
|
|
7
|
-
/** 输入 JSON Schema(OpenAI
|
|
14
|
+
/** 输入 JSON Schema(OpenAI parameters / MCP inputSchema 兼容;校验见 validateToolArgs) */
|
|
8
15
|
inputSchema: Record<string, unknown>;
|
|
9
|
-
/**
|
|
10
|
-
|
|
16
|
+
/**
|
|
17
|
+
* 执行:input → 在 mount 上渲染;返回值作为工具结果(同步直返,或 Promise——
|
|
18
|
+
* area 落定后写 record.icen-result)。第三参 ctx 可选消费。
|
|
19
|
+
*/
|
|
20
|
+
run: (input: TInput, mount: HTMLElement, ctx: AiToolRunContext) => unknown;
|
|
11
21
|
/** 结果呈现:'mount'(默认,渲染即呈现)/ 'data'(run 返回值为准,不占挂载位) */
|
|
12
22
|
present?: 'mount' | 'data';
|
|
23
|
+
/**
|
|
24
|
+
* 超时毫秒数:超时 → 结果 { ok:false, error:{ code:'timeout' } },卡片错误态,signal abort。
|
|
25
|
+
* 只作用于返回 Promise 的 run(同步 run 在单线程内无法中断,诚实注明);缺省 = 永不超时。
|
|
26
|
+
*/
|
|
27
|
+
timeoutMs?: number;
|
|
28
|
+
/**
|
|
29
|
+
* 执行前需宿主审批:call 时挂载卡先呈审批区(原因行 = description + 输入预览,批准/拒绝按钮)。
|
|
30
|
+
* 批准 → 派 icen:ai-tool-approve 并执行;拒绝 → 派 icen:ai-tool-reject,卡片 .is-cancelled,
|
|
31
|
+
* 结果 { ok:false, error:{ code:'rejected' } }。仅 'mount' 模式生效('data' 模式无卡可审批)。
|
|
32
|
+
*/
|
|
33
|
+
requiresApproval?: boolean;
|
|
34
|
+
/** 幂等:同名 + JSON.stringify(归一 input) 相同的在途调用复用同一条记录(不重复挂载、不重复执行) */
|
|
35
|
+
idempotent?: boolean;
|
|
13
36
|
}
|
|
14
37
|
interface AiToolRecord {
|
|
15
38
|
def: AiToolDef;
|
|
@@ -17,6 +40,11 @@ interface AiToolRecord {
|
|
|
17
40
|
el?: HTMLElement;
|
|
18
41
|
ts: number;
|
|
19
42
|
input: unknown;
|
|
43
|
+
/**
|
|
44
|
+
* 结果:run 返回值(Promise 型在落定后写入)。失败统一为诚实信封
|
|
45
|
+
* { ok:false, error:{ code:'validation'|'exec'|'timeout'|'rejected', … } };
|
|
46
|
+
* 事件 icen:ai-tool-result 的 error 字段按 events.ts 契约为 string,机器可读细节在此。
|
|
47
|
+
*/
|
|
20
48
|
result: unknown;
|
|
21
49
|
}
|
|
22
50
|
/** 注册(或覆盖同名)一个工具;第三方扩展入口 */
|
|
@@ -28,37 +56,68 @@ declare function registerAiTool(def: AiToolDef): void;
|
|
|
28
56
|
declare function unregisterAiTool(name: string): void;
|
|
29
57
|
/** 按名查已注册工具(call/can 内部同走此口;未注册返回 undefined) */
|
|
30
58
|
declare function getAiTool(name: string): AiToolDef | undefined;
|
|
31
|
-
/**
|
|
59
|
+
/** 全部已注册工具的快照数组(模型侧导出四族共享的归一管线底座) */
|
|
32
60
|
declare function listAiTools(): AiToolDef[];
|
|
61
|
+
interface AiToolValidationError {
|
|
62
|
+
/** 出错参数路径(JSON-pointer 风:'$' 为根;'$.tags[1]'、'$.series[2].name') */
|
|
63
|
+
path: string;
|
|
64
|
+
message: string;
|
|
65
|
+
}
|
|
66
|
+
interface AiToolValidationResult {
|
|
67
|
+
ok: boolean;
|
|
68
|
+
errors: AiToolValidationError[];
|
|
69
|
+
/** 本次未生效的 schema 关键字清单(schema 路径:'$.email.format'、'$.matrix.items.items')——校验器不猜 */
|
|
70
|
+
unvalidated: string[];
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* 工具参数校验:支持 type / required / properties / enum / items(一层)/ minimum / maximum /
|
|
74
|
+
* minLength / maxLength。不支持的 schema 关键字(oneOf/anyOf/allOf/$ref/format/pattern/
|
|
75
|
+
* additionalProperties/minItems……)不猜不静默——记入 unvalidated 清单(schema 路径)。
|
|
76
|
+
* 只检查实际出现的节点;缺省可选字段不做任何断言。
|
|
77
|
+
*/
|
|
78
|
+
declare function validateToolArgs(schema: Record<string, unknown>, args: unknown): AiToolValidationResult;
|
|
33
79
|
interface AiToolAreaOptions {
|
|
34
80
|
/** 工具白名单(精确名或 'chart-*' 通配;缺省 = 全部已注册工具) */
|
|
35
81
|
tools?: string[];
|
|
36
|
-
/** 最多同时挂载数(超出
|
|
82
|
+
/** 最多同时挂载数(超出 LRU 淘汰最旧挂载;缺省不限) */
|
|
37
83
|
max?: number;
|
|
38
84
|
/** 挂载项的最小高度提示(px,默认 240) */
|
|
39
85
|
itemMinHeight?: number;
|
|
40
86
|
}
|
|
87
|
+
interface AiToolCallOptions {
|
|
88
|
+
/**
|
|
89
|
+
* 执行前用 validateToolArgs 校验参数(默认 true):失败 → 挂载卡错误态列出 errors +
|
|
90
|
+
* 派 icen:ai-tool-result {ok:false},不执行 run。校验是诚实纪律——关闭即退回模型输入裸执行。
|
|
91
|
+
*/
|
|
92
|
+
validate?: boolean;
|
|
93
|
+
}
|
|
41
94
|
interface AiToolArea {
|
|
42
95
|
el: HTMLElement;
|
|
43
|
-
/**
|
|
96
|
+
/** 当前挂载数(含执行中/待审批的挂载卡) */
|
|
44
97
|
readonly count: number;
|
|
45
|
-
/**
|
|
46
|
-
|
|
47
|
-
|
|
98
|
+
/**
|
|
99
|
+
* 调用一个工具(模型 tool_call 的落地入口):白名单外或未注册返回 null。
|
|
100
|
+
* 校验(可关)→ 幂等复用 → 挂载卡 → 审批(requiresApproval 时挂起等待)→ 执行。
|
|
101
|
+
* 同步 run 落定后返回;Promise 型 run 在落定后写 record.icen-result 并补派 result 事件。
|
|
102
|
+
*/
|
|
103
|
+
call(name: string, input: unknown, opts?: AiToolCallOptions): AiToolRecord | null;
|
|
104
|
+
/** 白名单内且已注册? */
|
|
48
105
|
can(name: string): boolean;
|
|
49
106
|
/** 运行时改白名单 / 上限 */
|
|
50
107
|
setTools(tools: string[] | undefined): void;
|
|
51
108
|
setMax(max: number | undefined): void;
|
|
52
|
-
/**
|
|
109
|
+
/** 清空全部挂载(在途执行 signal abort) */
|
|
53
110
|
clear(): void;
|
|
54
|
-
/** 挂载变化回调(call
|
|
111
|
+
/** 挂载变化回调(call 挂载时与每次 result 落定时各触发一次;evict/clear 后触发) */
|
|
55
112
|
onChange(fn: (records: AiToolRecord[]) => void): () => void;
|
|
56
113
|
}
|
|
57
114
|
/**
|
|
58
115
|
* 创建 AI 工具挂载区:宿主声明「这块区域归 AI 用」——可白名单工具、限数量
|
|
59
|
-
* (超出上限
|
|
60
|
-
*
|
|
61
|
-
*
|
|
116
|
+
* (超出上限 LRU 淘汰最旧挂载)。每次 call 渲染为一个 .icen-ai-tools-item 卡
|
|
117
|
+
* (标题行 = 折叠钮 + 工具名 + 时间 + 状态点 + 移除钮;体 = 审批区(仅审批态)+
|
|
118
|
+
* 错误清单(仅失败态)+ 工具自己的渲染 + 活动流(progress 追加))。
|
|
119
|
+
* 事件 icen:ai-tool-call / -result / -evict / -approve / -reject(bubbles),
|
|
120
|
+
* area 上也可原生 addEventListener。
|
|
62
121
|
*/
|
|
63
122
|
declare function createAiToolArea(el: HTMLElement, opts?: AiToolAreaOptions): AiToolArea;
|
|
64
123
|
/** 导出为 OpenAI chat.completions tools 参数格式(可传 names / 通配过滤) */
|
|
@@ -70,15 +129,29 @@ declare function aiToolsToOpenAI(names?: string[]): Array<{
|
|
|
70
129
|
parameters: Record<string, unknown>;
|
|
71
130
|
};
|
|
72
131
|
}>;
|
|
132
|
+
/** 导出为 Anthropic messages tools 格式(name / description / input_schema) */
|
|
133
|
+
declare function aiToolsToAnthropic(names?: string[]): Array<{
|
|
134
|
+
name: string;
|
|
135
|
+
description: string;
|
|
136
|
+
input_schema: Record<string, unknown>;
|
|
137
|
+
}>;
|
|
73
138
|
/** 导出为 MCP tools 格式(name / description / inputSchema) */
|
|
74
139
|
declare function aiToolsToMcp(names?: string[]): Array<{
|
|
75
140
|
name: string;
|
|
76
141
|
description: string;
|
|
77
142
|
inputSchema: Record<string, unknown>;
|
|
78
143
|
}>;
|
|
144
|
+
/**
|
|
145
|
+
* 导出为 Vercel AI SDK v5 的 tool() 描述表:{ [name]: { description, inputSchema } }——
|
|
146
|
+
* 纯 JSON 描述可直接喂 tool();不携带 execute(执行在宿主侧经 createAiToolArea 挂载)。
|
|
147
|
+
*/
|
|
148
|
+
declare function aiToolsToAiSdk(names?: string[]): Record<string, {
|
|
149
|
+
description: string;
|
|
150
|
+
inputSchema: Record<string, unknown>;
|
|
151
|
+
}>;
|
|
79
152
|
/** 能力清单文本(贴 system prompt:可用工具 × 数据形态一览) */
|
|
80
153
|
declare function aiToolsManifest(names?: string[]): string;
|
|
81
154
|
/** 模型 tool_call 参数容错解析(JSON 字符串 / 对象直给 / 坏 JSON 返回 {}) */
|
|
82
155
|
declare function parseAiToolArgs(raw: unknown): Record<string, unknown>;
|
|
83
156
|
|
|
84
|
-
export { type AiToolArea, type AiToolAreaOptions, type AiToolDef, type AiToolRecord, aiToolsManifest, aiToolsToMcp, aiToolsToOpenAI, createAiToolArea, getAiTool, listAiTools, parseAiToolArgs, registerAiTool, unregisterAiTool };
|
|
157
|
+
export { type AiToolArea, type AiToolAreaOptions, type AiToolCallOptions, type AiToolDef, type AiToolRecord, type AiToolRunContext, type AiToolValidationError, type AiToolValidationResult, aiToolsManifest, aiToolsToAiSdk, aiToolsToAnthropic, aiToolsToMcp, aiToolsToOpenAI, createAiToolArea, getAiTool, listAiTools, parseAiToolArgs, registerAiTool, unregisterAiTool, validateToolArgs };
|