@icen.ai/ui 0.9.0 → 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.
Files changed (281) hide show
  1. package/AGENTS.md +138 -80
  2. package/README.md +66 -91
  3. package/dist/base.css +208 -179
  4. package/dist/behaviors/accordion.mjs +8 -8
  5. package/dist/behaviors/ai-branch.d.mts +1 -1
  6. package/dist/behaviors/ai-branch.mjs +1010 -94
  7. package/dist/behaviors/ai-chat.d.mts +7 -7
  8. package/dist/behaviors/ai-chat.mjs +1071 -161
  9. package/dist/behaviors/ai-composer.d.mts +44 -12
  10. package/dist/behaviors/ai-composer.mjs +1997 -524
  11. package/dist/behaviors/ai-core.d.mts +1 -1
  12. package/dist/behaviors/ai-core.mjs +1016 -107
  13. package/dist/behaviors/ai-diff.mjs +1019 -127
  14. package/dist/behaviors/ai-feedback.d.mts +1 -1
  15. package/dist/behaviors/ai-feedback.mjs +1035 -126
  16. package/dist/behaviors/ai-panel.d.mts +8 -8
  17. package/dist/behaviors/ai-panel.mjs +1284 -266
  18. package/dist/behaviors/ai-provider.mjs +1003 -101
  19. package/dist/behaviors/ai-threads.d.mts +1 -1
  20. package/dist/behaviors/ai-threads.mjs +1068 -154
  21. package/dist/behaviors/ai-tool.d.mts +2 -2
  22. package/dist/behaviors/ai-tool.mjs +2037 -396
  23. package/dist/behaviors/ai-tools.d.mts +89 -16
  24. package/dist/behaviors/ai-tools.mjs +4448 -372
  25. package/dist/behaviors/autocomplete.d.mts +53 -0
  26. package/dist/behaviors/autocomplete.mjs +1600 -0
  27. package/dist/behaviors/back-top.d.mts +1 -1
  28. package/dist/behaviors/back-top.mjs +951 -14
  29. package/dist/behaviors/carousel.d.mts +1 -1
  30. package/dist/behaviors/carousel.mjs +906 -11
  31. package/dist/behaviors/cascader.d.mts +48 -0
  32. package/dist/behaviors/cascader.mjs +1853 -0
  33. package/dist/behaviors/charts.d.mts +72 -8
  34. package/dist/behaviors/charts.mjs +1901 -256
  35. package/dist/behaviors/code-block.d.mts +36 -0
  36. package/dist/behaviors/code-block.mjs +1611 -0
  37. package/dist/behaviors/command-palette.d.mts +9 -6
  38. package/dist/behaviors/command-palette.mjs +161 -59
  39. package/dist/behaviors/context-menu.d.mts +9 -8
  40. package/dist/behaviors/context-menu.mjs +1112 -44
  41. package/dist/behaviors/controls.d.mts +13 -13
  42. package/dist/behaviors/controls.mjs +989 -130
  43. package/dist/behaviors/copy.d.mts +21 -2
  44. package/dist/behaviors/copy.mjs +1206 -42
  45. package/dist/behaviors/datatable.d.mts +53 -3
  46. package/dist/behaviors/datatable.mjs +1963 -207
  47. package/dist/behaviors/date-picker.d.mts +0 -1
  48. package/dist/behaviors/date-picker.mjs +1340 -293
  49. package/dist/behaviors/design.d.mts +54 -0
  50. package/dist/behaviors/design.mjs +109 -0
  51. package/dist/behaviors/dropdown.d.mts +5 -6
  52. package/dist/behaviors/dropdown.mjs +262 -110
  53. package/dist/behaviors/events.d.mts +120 -3
  54. package/dist/behaviors/events.mjs +47 -2
  55. package/dist/behaviors/feedback.d.mts +30 -0
  56. package/dist/behaviors/feedback.mjs +296 -0
  57. package/dist/behaviors/focus.d.mts +8 -0
  58. package/dist/behaviors/focus.mjs +24 -0
  59. package/dist/behaviors/form-validate.d.mts +102 -0
  60. package/dist/behaviors/form-validate.mjs +6091 -0
  61. package/dist/behaviors/i18n.d.mts +789 -0
  62. package/dist/behaviors/i18n.mjs +1711 -0
  63. package/dist/behaviors/icons.d.mts +93 -0
  64. package/dist/behaviors/icons.mjs +113 -0
  65. package/dist/behaviors/input.d.mts +9 -1
  66. package/dist/behaviors/input.mjs +1056 -60
  67. package/dist/behaviors/kb-access.d.mts +1 -1
  68. package/dist/behaviors/kb-access.mjs +2129 -239
  69. package/dist/behaviors/kb-acl.d.mts +6 -6
  70. package/dist/behaviors/kb-acl.mjs +1119 -179
  71. package/dist/behaviors/kb-answer.mjs +2070 -418
  72. package/dist/behaviors/kb-audit.d.mts +1 -1
  73. package/dist/behaviors/kb-audit.mjs +1076 -154
  74. package/dist/behaviors/kb-canvas.mjs +1100 -177
  75. package/dist/behaviors/kb-chain.mjs +1022 -100
  76. package/dist/behaviors/kb-checkpoint.d.mts +1 -1
  77. package/dist/behaviors/kb-checkpoint.mjs +1319 -169
  78. package/dist/behaviors/kb-chunks.mjs +1152 -213
  79. package/dist/behaviors/kb-citation.d.mts +1 -1
  80. package/dist/behaviors/kb-citation.mjs +1201 -179
  81. package/dist/behaviors/kb-clarify.mjs +1058 -130
  82. package/dist/behaviors/kb-conflict.mjs +1041 -119
  83. package/dist/behaviors/kb-connector.mjs +1104 -176
  84. package/dist/behaviors/kb-core.d.mts +6 -1
  85. package/dist/behaviors/kb-core.mjs +1077 -162
  86. package/dist/behaviors/kb-eval.mjs +1971 -144
  87. package/dist/behaviors/kb-explain.d.mts +1 -1
  88. package/dist/behaviors/kb-explain.mjs +1024 -102
  89. package/dist/behaviors/kb-filter.mjs +2008 -178
  90. package/dist/behaviors/kb-gap.d.mts +1 -1
  91. package/dist/behaviors/kb-gap.mjs +1043 -121
  92. package/dist/behaviors/kb-hittest.d.mts +1 -1
  93. package/dist/behaviors/kb-hittest.mjs +1093 -150
  94. package/dist/behaviors/kb-metadata.mjs +1052 -130
  95. package/dist/behaviors/kb-passage.d.mts +2 -2
  96. package/dist/behaviors/kb-passage.mjs +1101 -161
  97. package/dist/behaviors/kb-pipeline.d.mts +2 -2
  98. package/dist/behaviors/kb-pipeline.mjs +1082 -162
  99. package/dist/behaviors/kb-qa.mjs +1088 -160
  100. package/dist/behaviors/kb-rerank.mjs +1047 -114
  101. package/dist/behaviors/kb-retrieval.mjs +2063 -224
  102. package/dist/behaviors/kb-review.mjs +1990 -159
  103. package/dist/behaviors/kb-sandbox.d.mts +1 -1
  104. package/dist/behaviors/kb-sandbox.mjs +1026 -104
  105. package/dist/behaviors/kb-segment.mjs +1111 -179
  106. package/dist/behaviors/kb-select.d.mts +24 -0
  107. package/dist/behaviors/kb-select.mjs +1989 -0
  108. package/dist/behaviors/kb-sources.d.mts +1 -1
  109. package/dist/behaviors/kb-sources.mjs +1084 -170
  110. package/dist/behaviors/kb-sql.d.mts +1 -1
  111. package/dist/behaviors/kb-sql.mjs +1143 -226
  112. package/dist/behaviors/kb-trace.d.mts +1 -1
  113. package/dist/behaviors/kb-trace.mjs +1042 -128
  114. package/dist/behaviors/kb-visibility.mjs +1086 -158
  115. package/dist/behaviors/kb-who-can.mjs +1974 -137
  116. package/dist/behaviors/mentions.d.mts +93 -0
  117. package/dist/behaviors/mentions.mjs +2152 -0
  118. package/dist/behaviors/modal.d.mts +4 -3
  119. package/dist/behaviors/modal.mjs +1055 -33
  120. package/dist/behaviors/nav.d.mts +1 -1
  121. package/dist/behaviors/nav.mjs +6 -6
  122. package/dist/behaviors/notification.d.mts +16 -8
  123. package/dist/behaviors/notification.mjs +1615 -265
  124. package/dist/behaviors/panel.d.mts +4 -0
  125. package/dist/behaviors/panel.mjs +994 -0
  126. package/dist/behaviors/popover.d.mts +28 -5
  127. package/dist/behaviors/popover.mjs +225 -24
  128. package/dist/behaviors/select.d.mts +5 -2
  129. package/dist/behaviors/select.mjs +1410 -117
  130. package/dist/behaviors/sidebar.d.mts +1 -1
  131. package/dist/behaviors/sidebar.mjs +13 -13
  132. package/dist/behaviors/slider.d.mts +1 -1
  133. package/dist/behaviors/slider.mjs +9 -9
  134. package/dist/behaviors/split-pane.d.mts +1 -1
  135. package/dist/behaviors/split-pane.mjs +7 -7
  136. package/dist/behaviors/suggestions.d.mts +27 -0
  137. package/dist/behaviors/suggestions.mjs +1089 -0
  138. package/dist/behaviors/svg-parse.d.mts +14 -0
  139. package/dist/behaviors/svg-parse.mjs +37 -0
  140. package/dist/behaviors/tabs.d.mts +2 -2
  141. package/dist/behaviors/tabs.mjs +25 -25
  142. package/dist/behaviors/tag-input.d.mts +23 -5
  143. package/dist/behaviors/tag-input.mjs +1359 -104
  144. package/dist/behaviors/theme-switcher.d.mts +24 -0
  145. package/dist/behaviors/theme-switcher.mjs +1981 -0
  146. package/dist/behaviors/theme.d.mts +15 -8
  147. package/dist/behaviors/theme.mjs +390 -28
  148. package/dist/behaviors/toast.d.mts +24 -25
  149. package/dist/behaviors/toast.mjs +1266 -88
  150. package/dist/behaviors/tooltip.d.mts +4 -0
  151. package/dist/behaviors/tooltip.mjs +378 -0
  152. package/dist/behaviors/tree-select.d.mts +69 -0
  153. package/dist/behaviors/tree-select.mjs +1907 -0
  154. package/dist/behaviors/tree.d.mts +1 -1
  155. package/dist/behaviors/tree.mjs +15 -15
  156. package/dist/behaviors/upload.d.mts +3 -2
  157. package/dist/behaviors/upload.mjs +1076 -66
  158. package/dist/cli.mjs +5 -6
  159. package/dist/components/ai-chat.css +666 -573
  160. package/dist/components/ai-diff.css +153 -132
  161. package/dist/components/ai-panel.css +351 -343
  162. package/dist/components/ai-tool.css +393 -238
  163. package/dist/components/autocomplete.css +61 -0
  164. package/dist/components/autocomplete.mjs +3 -0
  165. package/dist/components/back-top.css +34 -31
  166. package/dist/components/badge.css +44 -41
  167. package/dist/components/breadcrumb.css +67 -46
  168. package/dist/components/btn.css +80 -74
  169. package/dist/components/card.css +117 -106
  170. package/dist/components/cascader.css +311 -0
  171. package/dist/components/cascader.mjs +3 -0
  172. package/dist/components/chart-area.css +8 -2
  173. package/dist/components/chart-bar.css +95 -33
  174. package/dist/components/chart-gauge.css +14 -11
  175. package/dist/components/chart-graph.css +20 -17
  176. package/dist/components/chart-heatmap.css +96 -90
  177. package/dist/components/chart-line.css +8 -3
  178. package/dist/components/chart-pie.css +9 -6
  179. package/dist/components/chart-radar.css +8 -5
  180. package/dist/components/chart-scatter.css +9 -6
  181. package/dist/components/chart-sparkline.css +5 -2
  182. package/dist/components/chart-stack.css +14 -11
  183. package/dist/components/charts.css +164 -73
  184. package/dist/components/code-block.css +418 -0
  185. package/dist/components/code-block.mjs +4 -0
  186. package/dist/components/command-palette.css +138 -117
  187. package/dist/components/content.css +257 -251
  188. package/dist/components/copy.css +72 -44
  189. package/dist/components/datatable.css +423 -181
  190. package/dist/components/date-picker.css +135 -104
  191. package/dist/components/empty.css +68 -65
  192. package/dist/components/feedback.css +201 -183
  193. package/dist/components/form-validate.css +120 -0
  194. package/dist/components/form-validate.mjs +3 -0
  195. package/dist/components/form.css +150 -127
  196. package/dist/components/icon.css +102 -0
  197. package/dist/components/icon.mjs +3 -0
  198. package/dist/components/input.css +159 -104
  199. package/dist/components/kb-agent.css +188 -173
  200. package/dist/components/kb-data.css +257 -253
  201. package/dist/components/kb-ground.css +197 -185
  202. package/dist/components/kb-ingest.css +334 -350
  203. package/dist/components/kb-ops.css +265 -259
  204. package/dist/components/kb-perm.css +260 -271
  205. package/dist/components/kb-search.css +317 -360
  206. package/dist/components/kb.css +120 -109
  207. package/dist/components/layout.css +85 -82
  208. package/dist/components/material-chinese.css +73 -0
  209. package/dist/components/material-soviet.css +76 -0
  210. package/dist/components/material.css +275 -0
  211. package/dist/components/media.css +220 -166
  212. package/dist/components/mentions.css +189 -0
  213. package/dist/components/mentions.mjs +3 -0
  214. package/dist/components/menu.css +113 -105
  215. package/dist/components/modal.css +107 -112
  216. package/dist/components/nav.css +118 -115
  217. package/dist/components/notification.css +238 -174
  218. package/dist/components/pagination.css +56 -53
  219. package/dist/components/panel.css +66 -63
  220. package/dist/components/panel.mjs +1 -0
  221. package/dist/components/pill.css +81 -71
  222. package/dist/components/popover.css +67 -53
  223. package/dist/components/scroll-area.css +113 -110
  224. package/dist/components/segmented.css +146 -143
  225. package/dist/components/select.css +206 -186
  226. package/dist/components/sidebar.css +137 -127
  227. package/dist/components/slider.css +117 -114
  228. package/dist/components/split-pane.css +112 -109
  229. package/dist/components/stat.css +112 -106
  230. package/dist/components/steps.css +109 -103
  231. package/dist/components/switch.css +138 -134
  232. package/dist/components/table.css +131 -107
  233. package/dist/components/tabs.css +114 -108
  234. package/dist/components/tag-input.css +48 -133
  235. package/dist/components/tag.css +81 -71
  236. package/dist/components/theme-switcher.css +105 -0
  237. package/dist/components/theme-switcher.mjs +3 -0
  238. package/dist/components/toast.css +100 -86
  239. package/dist/components/toolbar.css +45 -42
  240. package/dist/components/tooltip.css +102 -43
  241. package/dist/components/tooltip.mjs +1 -0
  242. package/dist/components/tree-select.css +416 -0
  243. package/dist/components/tree-select.mjs +3 -0
  244. package/dist/components/upload.css +135 -92
  245. package/dist/fonts/LICENSES/ark-pixel/OFL.txt +96 -0
  246. package/dist/fonts/LICENSES/cubic-11/OFL.txt +108 -0
  247. package/dist/fonts/LICENSES/galmuri/LICENSE.txt +93 -0
  248. package/dist/fonts/OFL.txt +96 -0
  249. package/dist/fonts/README.md +14 -0
  250. package/dist/fonts/fusion-pixel-12px-zh-hans.woff2 +0 -0
  251. package/dist/index.d.mts +28 -14
  252. package/dist/index.mjs +20705 -9601
  253. package/dist/react.d.mts +91 -0
  254. package/dist/react.mjs +8208 -0
  255. package/dist/registry.json +130 -13
  256. package/dist/tokens/chinese.css +44 -0
  257. package/dist/tokens/colors.css +365 -1222
  258. package/dist/tokens/design.css +109 -0
  259. package/dist/tokens/dtcg.json +11198 -0
  260. package/dist/tokens/figma.variables.json +7017 -0
  261. package/dist/tokens/icon-masks.css +78 -0
  262. package/dist/tokens/pixel.css +50 -0
  263. package/dist/tokens/soviet.css +44 -0
  264. package/dist/tokens/style-profiles.css +36 -547
  265. package/dist/tokens/themes.json +308 -0
  266. package/dist/tokens/tokens-studio.json +6728 -0
  267. package/dist/tokens/typography.css +21 -18
  268. package/dist/tokens.css +1555 -1801
  269. package/dist/ui.css +11975 -9831
  270. package/dist/vue.d.mts +344 -0
  271. package/dist/vue.mjs +7781 -0
  272. package/docs/spec/ai-input-experience.md +75 -0
  273. package/docs/spec/ai-native.md +238 -147
  274. package/docs/spec/design-philosophy.md +189 -0
  275. package/docs/spec/design-primitives.md +196 -0
  276. package/docs/spec/kb-family.md +147 -115
  277. package/package.json +43 -8
  278. package/dist/retro-effects.css +0 -255
  279. package/dist/tokens/retro-effects.css +0 -255
  280. package/docs/research/2026-10-03-ai-kb-components.md +0 -392
  281. package/docs/research/2026-10-03-kb-permissions.md +0 -992
@@ -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 function.parameters / MCP inputSchema 兼容) */
14
+ /** 输入 JSON Schema(OpenAI parameters / MCP inputSchema 兼容;校验见 validateToolArgs) */
8
15
  inputSchema: Record<string, unknown>;
9
- /** 执行:input → 在 mount 上渲染;返回值作为工具结果(进回执/审计) */
10
- run: (input: TInput, mount: HTMLElement) => unknown;
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
- /** 全部已注册工具的快照数组(aiToolsToOpenAI / aiToolsToMcp / aiToolsManifest 的底座) */
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
- /** 最多同时挂载数(超出 FIFO 淘汰最旧挂载;缺省不限) */
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
- /** 调用一个工具(模型 tool_call 的落地入口):白名单外或未注册返回 null */
46
- call(name: string, input: unknown): AiToolRecord | null;
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/evict/clear 后触发) */
111
+ /** 挂载变化回调(call 挂载时与每次 result 落定时各触发一次;evict/clear 后触发) */
55
112
  onChange(fn: (records: AiToolRecord[]) => void): () => void;
56
113
  }
57
114
  /**
58
115
  * 创建 AI 工具挂载区:宿主声明「这块区域归 AI 用」——可白名单工具、限数量
59
- * (超出上限 FIFO 淘汰最旧挂载)。每次 call 渲染为一个 .ai-tools-item 卡(标题行 = 工具名 +
60
- * 时间 + 移除钮,体 = 工具自己的渲染)。事件 icen:ai-tool-call / -result /
61
- * -evict(bubbles),area 上也可原生 addEventListener。
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 };