@kitn.ai/ui 0.25.2 → 0.27.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 (603) hide show
  1. package/README.md +17 -6
  2. package/bin/mcp.js +16 -3
  3. package/bin/route.js +23 -0
  4. package/bin/route.test.js +58 -0
  5. package/dist/{elements/chunks/Icon-b5A8hlHs.js → Icon-BnFKqqtY.js} +1 -1
  6. package/dist/action-icons-CBskfBMz.js +1 -0
  7. package/dist/arrow-down-Br0qtpsz.js +1 -0
  8. package/dist/arrow-left-Dj7xgE12.js +1 -0
  9. package/dist/artifact-CvXEm1lS.js +1 -0
  10. package/dist/assets/dev-5XzXYR21.js +91 -0
  11. package/dist/attachments-C43ZegEq.js +1 -0
  12. package/dist/audio-visualizer-B-79y1Tj.js +1 -0
  13. package/dist/badge-BpUbq8c0.js +1 -0
  14. package/dist/bash-InADTalH.js +1 -6
  15. package/dist/bell-sn17Ip9v.js +1 -0
  16. package/dist/{elements/chunks/button-B9okqG73.js → button-BH6rN0U-.js} +1 -1
  17. package/dist/card-renderer-Cb1gQmth.js +1 -0
  18. package/dist/card-routing-DifQgS7n.js +1 -0
  19. package/dist/check-DPeeMUYx.js +1 -0
  20. package/dist/checkbox-Dc9Yov_B.js +1 -0
  21. package/dist/checkbox-group-B1kDLLYk.js +1 -0
  22. package/dist/chevron-down-CHSWk7ZT.js +1 -0
  23. package/dist/chevron-right-B7l_fMgx.js +1 -0
  24. package/dist/choice-card-BT3c1S8g.js +1 -0
  25. package/dist/circle-Bb0yOpqM.js +1 -0
  26. package/dist/circle-check-BGZpCiz7.js +1 -0
  27. package/dist/circle-x-wobWkoSx.js +1 -0
  28. package/dist/{elements/chunks/cn-CU7UAWzk.js → cn-DN5AWfiS.js} +1 -1
  29. package/dist/code-block-CUQ5mtv0.js +1 -0
  30. package/dist/collapsible-CPJbf6FM.js +1 -0
  31. package/dist/components/attachment-types.d.ts +53 -1
  32. package/dist/components/attachments.d.ts +31 -0
  33. package/dist/components/audio-visualizer/fit-scale.d.ts +50 -0
  34. package/dist/components/audio-visualizer/index.d.ts +15 -1
  35. package/dist/components/audio-visualizer/variant-bar.d.ts +24 -1
  36. package/dist/components/card-renderer.d.ts +13 -0
  37. package/dist/components/card.d.ts +4 -0
  38. package/dist/components/chat-thread.d.ts +49 -42
  39. package/dist/components/code-block.d.ts +22 -0
  40. package/dist/components/conversation-item.d.ts +66 -1
  41. package/dist/components/conversation-list.d.ts +77 -0
  42. package/dist/components/form-widgets.d.ts +67 -2
  43. package/dist/components/form.d.ts +89 -0
  44. package/dist/components/message.d.ts +29 -0
  45. package/dist/components/reasoning.d.ts +6 -0
  46. package/dist/components/scroll-button.d.ts +11 -0
  47. package/dist/components/thread.d.ts +5 -0
  48. package/dist/components/toast.d.ts +2 -1
  49. package/dist/components/tool-types.d.ts +9 -0
  50. package/dist/components/voice-input.d.ts +8 -0
  51. package/dist/components/voice-output.d.ts +12 -1
  52. package/dist/components/workspace-shell.d.ts +87 -0
  53. package/dist/composer-CjngLzal.js +106 -0
  54. package/dist/confirm-card-DCx_A4bU.js +1 -0
  55. package/dist/construct-cli.es.js +1169 -0
  56. package/dist/context-BY8V-Nlp.js +1 -0
  57. package/dist/controllable-D43BKmtX.js +1 -0
  58. package/dist/conversation-list-D4lLU_yS.js +1 -0
  59. package/dist/copy-B6DO4PqB.js +1 -0
  60. package/dist/core-AYMC6_lb.js +12 -5874
  61. package/dist/{create-tween-CUzOlaMS.js → create-tween-BPzaefTp.js} +1 -1
  62. package/dist/{create-tween-B5Y4Im8G.js → create-tween-CnMHviKB.js} +1 -1
  63. package/dist/{create-tween-4z1XYLkR.js → create-tween-D1aiGZZh.js} +1 -1
  64. package/dist/{elements/chunks/create-tween-CUrM6D_o.js → create-tween-DUSQUKpr.js} +2 -2
  65. package/dist/css-M7EaDHN_.js +1 -6
  66. package/dist/custom-elements.json +3468 -1927
  67. package/dist/default-input-CucQEOqH.js +1 -0
  68. package/dist/define-CGGX-7Vg.js +1 -0
  69. package/dist/define.d.ts +4 -0
  70. package/dist/define.js +510 -0
  71. package/dist/define.server.d.ts +5 -0
  72. package/dist/define.server.js +506 -0
  73. package/dist/diagnostics/hook.d.ts +81 -0
  74. package/dist/diagnostics/index.d.ts +7 -0
  75. package/dist/diagnostics/report-request.d.ts +61 -0
  76. package/dist/diagnostics.d.ts +5 -0
  77. package/dist/diagnostics.js +209 -0
  78. package/dist/disclosure-CbLtajUQ.js +1 -0
  79. package/dist/dropdown-BwhViJFd.js +1 -0
  80. package/dist/elements/agent-card.js +1 -1
  81. package/dist/elements/artifact.js +1 -1
  82. package/dist/elements/attachments.js +1 -1
  83. package/dist/elements/audio-visualizer.js +1 -1
  84. package/dist/elements/autoloader.js +1 -1
  85. package/dist/elements/avatar.js +1 -1
  86. package/dist/elements/badge.js +1 -1
  87. package/dist/elements/button.js +1 -1
  88. package/dist/elements/card.js +1 -1
  89. package/dist/elements/cards.js +1 -1
  90. package/dist/elements/chain-of-thought.js +1 -1
  91. package/dist/elements/chat-scope-picker.js +1 -1
  92. package/dist/elements/chat-workspace.js +1 -1
  93. package/dist/elements/chat.js +1 -1
  94. package/dist/elements/checkbox-group.d.ts +1 -0
  95. package/dist/elements/checkbox-group.js +1 -0
  96. package/dist/elements/checkbox.d.ts +1 -0
  97. package/dist/elements/checkbox.js +1 -0
  98. package/dist/elements/checkpoint.js +1 -1
  99. package/dist/elements/choice.js +1 -1
  100. package/dist/elements/coachmark.js +1 -1
  101. package/dist/elements/code-block.js +1 -1
  102. package/dist/elements/command.js +1 -1
  103. package/dist/elements/compare.js +1 -1
  104. package/dist/elements/composer.js +1 -1
  105. package/dist/elements/confirm-card.js +1 -1
  106. package/dist/elements/context-meter.js +1 -1
  107. package/dist/elements/conversation-item.d.ts +1 -0
  108. package/dist/elements/conversation-item.js +1 -0
  109. package/dist/elements/conversation-list.js +1 -1
  110. package/dist/elements/default-input.d.ts +3 -3
  111. package/dist/elements/define-entry.d.ts +12 -0
  112. package/dist/elements/define.d.ts +27 -0
  113. package/dist/elements/diagnostic-events.d.ts +74 -0
  114. package/dist/elements/dialog.js +1 -1
  115. package/dist/elements/dock.d.ts +1 -0
  116. package/dist/elements/dock.js +243 -0
  117. package/dist/elements/dropdown.d.ts +1 -0
  118. package/dist/elements/dropdown.js +1 -0
  119. package/dist/elements/editable-label.js +1 -1
  120. package/dist/elements/element-data-types.d.ts +37 -0
  121. package/dist/elements/element-diagnostics.d.ts +81 -0
  122. package/dist/elements/embed.js +1 -1
  123. package/dist/elements/empty.js +1 -1
  124. package/dist/elements/feedback-bar.js +1 -1
  125. package/dist/elements/file-tree.js +1 -1
  126. package/dist/elements/file-upload.js +1 -1
  127. package/dist/elements/form.js +1 -1
  128. package/dist/elements/hover-card.js +1 -1
  129. package/dist/elements/icon.js +1 -1
  130. package/dist/elements/image.js +1 -1
  131. package/dist/elements/input.js +1 -1
  132. package/dist/elements/kbd.js +1 -1
  133. package/dist/elements/link-preview.js +1 -1
  134. package/dist/elements/loader.js +1 -1
  135. package/dist/elements/markdown.js +1 -1
  136. package/dist/elements/menu.js +1 -1
  137. package/dist/elements/message-skills.js +1 -1
  138. package/dist/elements/message.js +1 -1
  139. package/dist/elements/model-switcher.js +1 -1
  140. package/dist/elements/nav.js +1 -1
  141. package/dist/elements/notice.js +1 -1
  142. package/dist/elements/pane-grid.d.ts +1 -0
  143. package/dist/elements/pane-grid.js +1 -0
  144. package/dist/elements/pane-group.js +1 -1
  145. package/dist/elements/pane.js +1 -1
  146. package/dist/elements/popover.js +1 -1
  147. package/dist/elements/progress-bar.js +1 -1
  148. package/dist/elements/prompt-dock.js +1 -1
  149. package/dist/elements/prompt-input.js +1 -1
  150. package/dist/elements/prompt-suggestions.js +1 -1
  151. package/dist/elements/radio-group.d.ts +1 -0
  152. package/dist/elements/radio-group.js +1 -0
  153. package/dist/elements/reasoning.js +1 -1
  154. package/dist/elements/register.d.ts +2 -0
  155. package/dist/elements/remote.js +1 -1
  156. package/dist/elements/resizable.js +1 -1
  157. package/dist/elements/response-stream.js +3 -3
  158. package/dist/elements/screen.js +1 -1
  159. package/dist/elements/scroll-area.js +1 -1
  160. package/dist/elements/scroll-button.js +1 -1
  161. package/dist/elements/search.js +1 -1
  162. package/dist/elements/segmented.js +1 -1
  163. package/dist/elements/select.d.ts +1 -0
  164. package/dist/elements/select.js +1 -0
  165. package/dist/elements/separator.js +1 -1
  166. package/dist/elements/setting-item.js +1 -1
  167. package/dist/elements/settings-group.js +1 -1
  168. package/dist/elements/skeleton.js +1 -1
  169. package/dist/elements/slider.d.ts +1 -0
  170. package/dist/elements/slider.js +1 -0
  171. package/dist/elements/slots.d.ts +36 -4
  172. package/dist/elements/source.js +1 -1
  173. package/dist/elements/status.js +1 -1
  174. package/dist/elements/switch.js +1 -1
  175. package/dist/elements/tabs.js +1 -1
  176. package/dist/elements/tasks.js +1 -1
  177. package/dist/elements/text-shimmer.js +1 -1
  178. package/dist/elements/thinking-bar.js +1 -1
  179. package/dist/elements/thread.js +1 -1
  180. package/dist/elements/toast.js +1 -1
  181. package/dist/elements/tool.js +1 -1
  182. package/dist/elements/tooltip.js +1 -1
  183. package/dist/elements/voice-input.js +1 -1
  184. package/dist/elements/voice-output.js +1 -1
  185. package/dist/elements.d.ts +589 -167
  186. package/dist/{elements/chunks/ellipsis-CVxqfsDZ.js → ellipsis-DFr4Vqr3.js} +1 -1
  187. package/dist/embed-5s_vU4J0.js +1 -0
  188. package/dist/engine-javascript-vq0WuIJl.js +14 -2516
  189. package/dist/{elements/chunks/external-link-DG2sRdQL.js → external-link-u9d85ORQ.js} +1 -1
  190. package/dist/file-text-CX7_x42o.js +1 -0
  191. package/dist/{elements/chunks/file-tree-yGWNK0Js.js → file-tree-D3kBjXI5.js} +1 -1
  192. package/dist/folder-V-YdIL8f.js +1 -0
  193. package/dist/form-BRNUMCN2.js +1 -0
  194. package/dist/github-dark-dimmed-DUshB20C.js +1 -4
  195. package/dist/github-light-JYsPkUQd.js +1 -4
  196. package/dist/hover-card-DaeiYrTA.js +1 -0
  197. package/dist/html-CPZ3oZQ7.js +1 -10
  198. package/dist/icon-BpixdZNq.js +1 -0
  199. package/dist/{elements/chunks/index-BCRhi84a.js → index-xu_pdcPi.js} +1 -1
  200. package/dist/index.d.ts +3 -1
  201. package/dist/index.js +8473 -6470
  202. package/dist/index.server.js +6495 -4958
  203. package/dist/info-8mFsIjS3.js +1 -0
  204. package/dist/input-d1Yuu-hz.js +1 -0
  205. package/dist/javascript-C25yR2R2.js +1 -6
  206. package/dist/json-DxJze_jm.js +1 -6
  207. package/dist/kai-provider.es.js +40 -40
  208. package/dist/kai.es.js +1 -1
  209. package/dist/kbd-961zMPFB.js +1 -0
  210. package/dist/link-DlZZBGaR.js +1 -0
  211. package/dist/{elements/chunks/link-preview-Cf5KOP-i.js → link-preview-DIIbV2Sd.js} +1 -1
  212. package/dist/loader-YQszHFaW.js +1 -0
  213. package/dist/{elements/chunks/markdown-DbozyYqa.js → markdown-CVk1MPsj.js} +1 -1
  214. package/dist/mcp.es.js +3873 -544
  215. package/dist/message-CwKVEdZg.js +1 -0
  216. package/dist/message-DS8lzHc1.js +1 -0
  217. package/dist/message-circle-Xf8Q-vZp.js +1 -0
  218. package/dist/message-square-Cxnwgkns.js +1 -0
  219. package/dist/{elements/chunks/minimize-2-SegJ_oku.js → minimize-2-UEZmP2QT.js} +1 -1
  220. package/dist/{elements/chunks/model-switcher-D7JrFFHp.js → model-switcher-Kk1jEQ5t.js} +1 -1
  221. package/dist/{elements/chunks/overlay-CV7z2YuX.js → overlay-C1od6LOz.js} +1 -1
  222. package/dist/panel-right-ryET0yyn.js +1 -0
  223. package/dist/paperclip-BDNoZFJP.js +1 -0
  224. package/dist/play-OFIvYXUQ.js +1 -0
  225. package/dist/primitives/card-data-types.d.ts +49 -0
  226. package/dist/primitives/card-routing.d.ts +1 -33
  227. package/dist/primitives/card-validate.d.ts +2 -2
  228. package/dist/primitives/chat-config.d.ts +29 -2
  229. package/dist/primitives/field-mask.d.ts +96 -0
  230. package/dist/primitives/field-semantics.d.ts +36 -0
  231. package/dist/primitives/input-mask.d.ts +46 -0
  232. package/dist/primitives/url-scheme-policy.d.ts +34 -0
  233. package/dist/primitives/use-resize-observer.d.ts +23 -0
  234. package/dist/primitives/use-speech-recognition.d.ts +8 -0
  235. package/dist/primitives/use-text-stream.d.ts +5 -0
  236. package/dist/progress-bar-BvYX0aoy.js +1 -0
  237. package/dist/prompt-suggestion-BRFu2lcu.js +1 -0
  238. package/dist/radio-DcL23cNJ.js +1 -0
  239. package/dist/react/index.d.ts +306 -283
  240. package/dist/react.js +309 -247
  241. package/dist/reasoning-Cackq4Rh.js +1 -0
  242. package/dist/register-impl-C7rENvPK.js +424 -0
  243. package/dist/{elements/chunks/resizable-Dpzjlvp4.js → resizable-Cp9HUYih.js} +1 -1
  244. package/dist/rotate-ccw-0DLRDHH5.js +1 -0
  245. package/dist/rotate-cw-DOB9IGcU.js +1 -0
  246. package/dist/schemas/form.schema.json +21 -1
  247. package/dist/schemas/index.d.ts +1 -1
  248. package/dist/schemas/tool-defs.d.ts +45 -0
  249. package/dist/schemas.js +398 -305
  250. package/dist/scroll-area-emVmWP4K.js +1 -0
  251. package/dist/scroll-button-CeP_gv1x.js +1 -0
  252. package/dist/select-CWmu00tS.js +1 -0
  253. package/dist/{elements/chunks/separator-DH2r_ZSZ.js → separator-CE6vly6z.js} +1 -1
  254. package/dist/{elements/chunks/settings-BFMOd6yB.js → settings-CE-78SvZ.js} +1 -1
  255. package/dist/{elements/chunks/settings-group-B3VZKIcz.js → settings-group-ZFWNxFQR.js} +1 -1
  256. package/dist/{elements/chunks/skeleton-N8BuWYmf.js → skeleton-BebdP4mf.js} +1 -1
  257. package/dist/slider-BAKRYUlz.js +1 -0
  258. package/dist/slots-DaNjX0rc.js +1 -0
  259. package/dist/{solid-BMuDmFo_.js → solid-BE5ui6sy.js} +10672 -8116
  260. package/dist/{solid-CGYNdLRR.js → solid-DFhsce3O.js} +8137 -6056
  261. package/dist/solid.d.ts +15 -0
  262. package/dist/solid.js +248 -235
  263. package/dist/solid.server.js +248 -235
  264. package/dist/source-B0FlguSx.js +1 -0
  265. package/dist/star-CBMZvLuN.js +1 -0
  266. package/dist/state/index.d.ts +5 -1
  267. package/dist/state/mock.d.ts +32 -2
  268. package/dist/state/persistence.d.ts +51 -0
  269. package/dist/state/stream.d.ts +50 -0
  270. package/dist/state/threads.d.ts +71 -0
  271. package/dist/state.js +297 -172
  272. package/dist/store-7eoadydQ.js +1 -0
  273. package/dist/svelte--5p79yCD.js +1 -15
  274. package/dist/switch-CViARZCy.js +1 -0
  275. package/dist/tasks-card-MjCcOhR_.js +1 -0
  276. package/dist/text-shimmer-DKlwRF2G.js +1 -0
  277. package/dist/textarea-3ay2Me2-.js +1 -0
  278. package/dist/theme.tokens.css +82 -13
  279. package/dist/{elements/chunks/thumbs-up-DQe0hvkZ.js → thumbs-up-DQcu2HMO.js} +1 -1
  280. package/dist/toast-store-C6yKOhbk.js +1 -0
  281. package/dist/{elements/chunks/tool-C1YtxwPu.js → tool-BCYNlfKy.js} +1 -1
  282. package/dist/{elements/chunks/tooltip-BqwnFWhn.js → tooltip-05zI4hjs.js} +1 -1
  283. package/dist/trash-2-BR1RxGky.js +1 -0
  284. package/dist/{elements/chunks/triangle-alert-B6or7F5u.js → triangle-alert-DHohDOCy.js} +1 -1
  285. package/dist/tsx-B8rCNbgL.js +1 -6
  286. package/dist/types.d.ts +4 -2
  287. package/dist/typescript-RycA9KXf.js +1 -6
  288. package/dist/ui/checkbox-group.d.ts +83 -0
  289. package/dist/ui/checkbox.d.ts +40 -0
  290. package/dist/ui/dock.d.ts +131 -0
  291. package/dist/ui/hover-card.d.ts +44 -0
  292. package/dist/ui/icon.d.ts +3 -0
  293. package/dist/ui/input.d.ts +48 -2
  294. package/dist/ui/radio.d.ts +85 -0
  295. package/dist/ui/select.d.ts +71 -0
  296. package/dist/ui/slider.d.ts +65 -0
  297. package/dist/ui/switch.d.ts +9 -2
  298. package/dist/upload-BbGW6A_u.js +1 -0
  299. package/dist/url-scheme-policy-DHpoTJwB.js +1 -0
  300. package/dist/use-card-resolution-CJW4grFa.js +1 -0
  301. package/dist/{variant-aurora-DwSOfraQ.js → variant-aurora-BUOVgPOB.js} +27 -27
  302. package/dist/{variant-aurora-wKvAQ5wp.js → variant-aurora-CUsUJvFI.js} +28 -28
  303. package/dist/{variant-aurora-XEkPT0_z.js → variant-aurora-CW2i4bfr.js} +2 -2
  304. package/dist/{elements/chunks/variant-aurora-QXTZPyST.js → variant-aurora-xiMPty8f.js} +2 -2
  305. package/dist/variant-custom-BQtOnmeO.js +1 -0
  306. package/dist/{variant-custom-BhS9wIpU.js → variant-custom-CAm9L-E5.js} +65 -65
  307. package/dist/{variant-custom-eFIg2XWQ.js → variant-custom-CAnzzppW.js} +40 -40
  308. package/dist/variant-custom-D91HjAKz.js +1 -0
  309. package/dist/{variant-wave-CUWGx9Bn.js → variant-wave-Ca1Ls4_y.js} +21 -21
  310. package/dist/{variant-wave-CbVsmgwT.js → variant-wave-CxX39DKd.js} +25 -25
  311. package/dist/{variant-wave-BwzrHD1s.js → variant-wave-DYyzIIZv.js} +2 -2
  312. package/dist/{elements/chunks/variant-wave-DDCwhLas.js → variant-wave-uY5crU_K.js} +2 -2
  313. package/dist/vue-BmIZj4XD.js +1 -33
  314. package/dist/wire/chunk.d.ts +47 -0
  315. package/dist/wire/diagnostics.d.ts +575 -0
  316. package/dist/wire/encode-probe.d.ts +70 -0
  317. package/dist/wire/encode.d.ts +24 -0
  318. package/dist/wire/index.d.ts +2 -0
  319. package/dist/wire/sse.d.ts +10 -2
  320. package/dist/wire.js +917 -480
  321. package/dist/x-C5m1JFgi.js +1 -0
  322. package/frameworks/react/index.tsx +325 -108
  323. package/llms-full.txt +1354 -82
  324. package/llms.txt +6 -3
  325. package/package.json +39 -6
  326. package/src/agent-tooling/archetypes.ts +41 -9
  327. package/src/agent-tooling/catalog/README.md +676 -0
  328. package/src/agent-tooling/catalog/catalog-types.ts +231 -0
  329. package/src/agent-tooling/catalog/fabrications.ts +96 -0
  330. package/src/agent-tooling/catalog/invariants.ts +284 -0
  331. package/src/agent-tooling/catalog/labs-titles.ts +114 -0
  332. package/src/agent-tooling/catalog/scenarios.ts +87 -0
  333. package/src/agent-tooling/catalog/surfaces.ts +347 -0
  334. package/src/agent-tooling/construct/cli-entry.ts +8 -0
  335. package/src/agent-tooling/construct/cli.ts +131 -0
  336. package/src/agent-tooling/construct/codegen.ts +1353 -0
  337. package/src/agent-tooling/construct/construct.v1.schema.json +250 -0
  338. package/src/agent-tooling/construct/dev.ts +148 -0
  339. package/src/agent-tooling/construct/fixtures/demo-widget.construct.json +7 -0
  340. package/src/agent-tooling/construct/fixtures/ops-console.construct.json +44 -0
  341. package/src/agent-tooling/construct/fixtures/owner-widget.construct.json +23 -0
  342. package/src/agent-tooling/construct/schema.ts +371 -0
  343. package/src/agent-tooling/integrations/anthropic.ts +7 -1
  344. package/src/agent-tooling/integrations/cloudflare.ts +43 -2
  345. package/src/agent-tooling/integrations/langgraph.ts +7 -1
  346. package/src/agent-tooling/integrations/mastra.ts +7 -1
  347. package/src/agent-tooling/integrations/mock.ts +92 -17
  348. package/src/agent-tooling/integrations/ollama.ts +7 -1
  349. package/src/agent-tooling/integrations/openai.ts +7 -1
  350. package/src/agent-tooling/integrations/openrouter.ts +7 -1
  351. package/src/agent-tooling/integrations/pi.ts +56 -1
  352. package/src/agent-tooling/integrations/vercel-ai-sdk.ts +7 -1
  353. package/src/agent-tooling/mcp/css-raw.d.ts +12 -0
  354. package/src/agent-tooling/mcp/manifest.ts +100 -1
  355. package/src/agent-tooling/mcp/server.ts +63 -6
  356. package/src/agent-tooling/mcp/tools/construct.ts +130 -0
  357. package/src/agent-tooling/mcp/tools/debug.ts +126 -4
  358. package/src/agent-tooling/mcp/tools/reference.ts +542 -5
  359. package/src/agent-tooling/mcp/tools/scaffold.ts +1834 -307
  360. package/src/agent-tooling/mcp/tools/theme.ts +146 -30
  361. package/src/agent-tooling/mcp/validate-args.ts +141 -0
  362. package/src/agent-tooling/recipes/composed-thread.ts +714 -0
  363. package/src/agent-tooling/recipes/index.ts +22 -0
  364. package/src/agent-tooling/recipes/types.ts +32 -0
  365. package/src/agent-tooling/registry.ts +24 -7
  366. package/src/agent-tooling/route-emit.ts +26 -2
  367. package/src/components/attachment-types.ts +54 -1
  368. package/src/components/attachments.tsx +169 -22
  369. package/src/components/audio-visualizer/fit-scale.ts +112 -0
  370. package/src/components/audio-visualizer/index.tsx +80 -3
  371. package/src/components/audio-visualizer/variant-aurora.tsx +10 -4
  372. package/src/components/audio-visualizer/variant-bar.tsx +38 -6
  373. package/src/components/audio-visualizer/variant-custom.tsx +8 -2
  374. package/src/components/audio-visualizer/variant-grid.tsx +16 -11
  375. package/src/components/audio-visualizer/variant-radial.tsx +15 -10
  376. package/src/components/audio-visualizer/variant-wave.tsx +7 -2
  377. package/src/components/card-renderer.tsx +39 -8
  378. package/src/components/card.tsx +10 -2
  379. package/src/components/chat-container.tsx +4 -1
  380. package/src/components/chat-scope-picker.tsx +2 -2
  381. package/src/components/chat-thread.tsx +105 -13
  382. package/src/components/choice-card.tsx +102 -37
  383. package/src/components/coachmark.tsx +1 -1
  384. package/src/components/code-block.tsx +81 -5
  385. package/src/components/composer.tsx +89 -8
  386. package/src/components/confirm-card.tsx +20 -4
  387. package/src/components/conversation-item.tsx +138 -4
  388. package/src/components/conversation-list.tsx +230 -15
  389. package/src/components/embed.tsx +4 -0
  390. package/src/components/empty.tsx +14 -3
  391. package/src/components/file-tree.tsx +5 -1
  392. package/src/components/form-widgets.tsx +257 -195
  393. package/src/components/form.tsx +336 -21
  394. package/src/components/loader.tsx +12 -5
  395. package/src/components/message-skills.tsx +1 -1
  396. package/src/components/message.tsx +142 -12
  397. package/src/components/prompt-input.tsx +7 -1
  398. package/src/components/prompt-suggestion.tsx +4 -1
  399. package/src/components/reasoning.tsx +30 -3
  400. package/src/components/response-compare.tsx +2 -2
  401. package/src/components/response-stream.tsx +13 -7
  402. package/src/components/screen.tsx +5 -0
  403. package/src/components/scroll-button.tsx +63 -4
  404. package/src/components/source.tsx +6 -1
  405. package/src/components/tasks-card.tsx +58 -16
  406. package/src/components/thread.tsx +10 -1
  407. package/src/components/toast.tsx +11 -5
  408. package/src/components/tool-types.ts +9 -0
  409. package/src/components/voice-input.tsx +35 -3
  410. package/src/components/voice-output.tsx +46 -6
  411. package/src/components/workspace-shell.tsx +285 -0
  412. package/src/diagnostics/hook.ts +352 -0
  413. package/src/diagnostics/index.ts +82 -0
  414. package/src/diagnostics/report-request.ts +296 -0
  415. package/src/elements/attachments.tsx +9 -8
  416. package/src/elements/audio-visualizer.tsx +48 -4
  417. package/src/elements/chat-workspace.tsx +159 -287
  418. package/src/elements/chat.tsx +31 -10
  419. package/src/elements/checkbox-group.tsx +164 -0
  420. package/src/elements/checkbox.tsx +134 -0
  421. package/src/elements/code-block.tsx +19 -1
  422. package/src/elements/command.tsx +4 -1
  423. package/src/elements/compiled.css +1 -1
  424. package/src/elements/composer.tsx +12 -1
  425. package/src/elements/conversation-item.tsx +120 -0
  426. package/src/elements/conversation-list.tsx +60 -11
  427. package/src/elements/default-input.tsx +5 -5
  428. package/src/elements/define-entry.ts +12 -0
  429. package/src/elements/define.tsx +168 -8
  430. package/src/elements/diagnostic-events.ts +114 -0
  431. package/src/elements/dialog.tsx +47 -0
  432. package/src/elements/disclosure.ts +34 -12
  433. package/src/elements/dock.tsx +215 -0
  434. package/src/elements/dropdown.tsx +123 -0
  435. package/src/elements/element-data-types.ts +40 -0
  436. package/src/elements/element-diagnostics.ts +392 -0
  437. package/src/elements/element-manifest.json +36 -0
  438. package/src/elements/element-meta.json +1483 -560
  439. package/src/elements/element-nonscalar.json +185 -0
  440. package/src/elements/element-types.d.ts +589 -167
  441. package/src/elements/feedback-bar.tsx +5 -0
  442. package/src/elements/icon-names.json +29 -0
  443. package/src/elements/input.tsx +312 -23
  444. package/src/elements/menu.tsx +13 -0
  445. package/src/elements/message.tsx +2 -0
  446. package/src/elements/pane-grid.tsx +111 -0
  447. package/src/elements/prompt-dock.tsx +2 -1
  448. package/src/elements/prompt-input.tsx +16 -10
  449. package/src/elements/radio-group.tsx +129 -0
  450. package/src/elements/register-impl.ts +52 -0
  451. package/src/elements/register.ts +28 -0
  452. package/src/elements/resizable.tsx +52 -25
  453. package/src/elements/scroll-button.tsx +59 -6
  454. package/src/elements/select.tsx +165 -0
  455. package/src/elements/slider.tsx +171 -0
  456. package/src/elements/slots.ts +108 -13
  457. package/src/elements/styles.css +119 -9
  458. package/src/elements/thinking-bar.tsx +16 -7
  459. package/src/elements/thread.tsx +2 -0
  460. package/src/elements/toast.tsx +17 -1
  461. package/src/elements/tool.tsx +26 -5
  462. package/src/elements/voice-input.tsx +11 -2
  463. package/src/elements/voice-output.tsx +16 -3
  464. package/src/index.ts +4 -1
  465. package/src/primitives/card-data-types.ts +49 -0
  466. package/src/primitives/card-host.tsx +4 -2
  467. package/src/primitives/card-routing.ts +7 -56
  468. package/src/primitives/card-schemas/form.schema.json +21 -1
  469. package/src/primitives/card-validate.ts +10 -2
  470. package/src/primitives/chat-config.tsx +33 -6
  471. package/src/primitives/field-mask.ts +256 -0
  472. package/src/primitives/field-semantics.ts +115 -0
  473. package/src/primitives/input-mask.ts +853 -0
  474. package/src/primitives/toast-store.ts +66 -4
  475. package/src/primitives/url-scheme-policy.ts +70 -0
  476. package/src/primitives/use-resize-observer.ts +33 -0
  477. package/src/primitives/use-speech-recognition.ts +12 -1
  478. package/src/primitives/use-stick-to-bottom.ts +34 -2
  479. package/src/primitives/use-text-stream.ts +33 -2
  480. package/src/remote/provider-runtime.ts +6 -3
  481. package/src/schemas/index.ts +1 -0
  482. package/src/schemas/tool-defs.ts +307 -6
  483. package/src/solid.ts +15 -0
  484. package/src/state/index.ts +13 -1
  485. package/src/state/mock.ts +92 -6
  486. package/src/state/persistence.ts +180 -0
  487. package/src/state/stream.ts +71 -4
  488. package/src/state/threads.ts +142 -0
  489. package/src/types.ts +4 -2
  490. package/src/ui/agent-card.tsx +2 -2
  491. package/src/ui/avatar.tsx +1 -1
  492. package/src/ui/checkbox-group.tsx +153 -0
  493. package/src/ui/checkbox.tsx +63 -0
  494. package/src/ui/dialog.tsx +6 -0
  495. package/src/ui/dock.tsx +584 -0
  496. package/src/ui/dropdown.tsx +67 -23
  497. package/src/ui/hover-card.tsx +156 -6
  498. package/src/ui/icon.tsx +53 -0
  499. package/src/ui/input.tsx +275 -16
  500. package/src/ui/kbd.tsx +1 -1
  501. package/src/ui/nav.tsx +1 -1
  502. package/src/ui/pane-group.tsx +2 -2
  503. package/src/ui/radio.tsx +150 -0
  504. package/src/ui/resizable.tsx +11 -0
  505. package/src/ui/select.tsx +168 -0
  506. package/src/ui/slider.tsx +178 -0
  507. package/src/ui/switch.tsx +49 -18
  508. package/src/utils/cn.ts +11 -5
  509. package/src/wire/chunk.ts +47 -0
  510. package/src/wire/consume.ts +185 -26
  511. package/src/wire/diagnostics.ts +727 -0
  512. package/src/wire/encode-probe.ts +214 -0
  513. package/src/wire/encode.ts +267 -14
  514. package/src/wire/formats/anthropic.ts +8 -1
  515. package/src/wire/formats/openai.ts +5 -0
  516. package/src/wire/index.ts +22 -0
  517. package/src/wire/read.ts +250 -6
  518. package/src/wire/sse.ts +16 -3
  519. package/theme.css +84 -13
  520. package/dist/elements/chunks/action-icons-DW9muWrY.js +0 -1
  521. package/dist/elements/chunks/arrow-left-iJVnQmxA.js +0 -1
  522. package/dist/elements/chunks/artifact-BSuPYFHY.js +0 -1
  523. package/dist/elements/chunks/attachments-CL6TaqIb.js +0 -1
  524. package/dist/elements/chunks/audio-visualizer-BuUqQmaO.js +0 -1
  525. package/dist/elements/chunks/badge-TIMiJFKc.js +0 -1
  526. package/dist/elements/chunks/bash-InADTalH.js +0 -1
  527. package/dist/elements/chunks/card-renderer-CSoTL_e1.js +0 -1
  528. package/dist/elements/chunks/card-routing-BK09BdmL.js +0 -1
  529. package/dist/elements/chunks/chat-thread-DxoKaStk.js +0 -1
  530. package/dist/elements/chunks/check-MdLzbxrm.js +0 -1
  531. package/dist/elements/chunks/chevron-down-MK7IzDqe.js +0 -1
  532. package/dist/elements/chunks/chevron-right-C5jXhmtV.js +0 -1
  533. package/dist/elements/chunks/choice-card-CGMc3kek.js +0 -1
  534. package/dist/elements/chunks/circle-BG7VkPep.js +0 -1
  535. package/dist/elements/chunks/circle-check-GqvO2UBs.js +0 -1
  536. package/dist/elements/chunks/circle-x-mhH7pOK2.js +0 -1
  537. package/dist/elements/chunks/code-block-ClhQO9RW.js +0 -1
  538. package/dist/elements/chunks/collapsible-DBcBkFPh.js +0 -1
  539. package/dist/elements/chunks/composer-CZZmtYOT.js +0 -69
  540. package/dist/elements/chunks/confirm-card-BWjf2-xo.js +0 -1
  541. package/dist/elements/chunks/context-hKjNqiyQ.js +0 -1
  542. package/dist/elements/chunks/conversation-list-CsGJjSKG.js +0 -1
  543. package/dist/elements/chunks/core-AYMC6_lb.js +0 -12
  544. package/dist/elements/chunks/css-M7EaDHN_.js +0 -1
  545. package/dist/elements/chunks/default-input-B1Mem5wu.js +0 -1
  546. package/dist/elements/chunks/define-B_tXMYRm.js +0 -1
  547. package/dist/elements/chunks/disclosure-DAoYOKew.js +0 -1
  548. package/dist/elements/chunks/download-DnCyWFJE.js +0 -1
  549. package/dist/elements/chunks/dropdown-CmNna5lT.js +0 -1
  550. package/dist/elements/chunks/embed-CjAD2jSi.js +0 -1
  551. package/dist/elements/chunks/engine-javascript-vq0WuIJl.js +0 -141
  552. package/dist/elements/chunks/file-text-D0J9F6M7.js +0 -1
  553. package/dist/elements/chunks/folder-NV1pi_ud.js +0 -1
  554. package/dist/elements/chunks/form-Cp8Y00Wn.js +0 -1
  555. package/dist/elements/chunks/github-dark-dimmed-DUshB20C.js +0 -1
  556. package/dist/elements/chunks/github-light-JYsPkUQd.js +0 -1
  557. package/dist/elements/chunks/hover-card-6KtXpLwT.js +0 -1
  558. package/dist/elements/chunks/html-CPZ3oZQ7.js +0 -1
  559. package/dist/elements/chunks/icon-97R8SR2p.js +0 -1
  560. package/dist/elements/chunks/info-C8r5Q6cc.js +0 -1
  561. package/dist/elements/chunks/input-DrseEjhp.js +0 -1
  562. package/dist/elements/chunks/javascript-C25yR2R2.js +0 -1
  563. package/dist/elements/chunks/json-DxJze_jm.js +0 -1
  564. package/dist/elements/chunks/kbd-OGJDUT-O.js +0 -1
  565. package/dist/elements/chunks/link-BdsfLB7b.js +0 -1
  566. package/dist/elements/chunks/loader-B5QzK_8_.js +0 -1
  567. package/dist/elements/chunks/message-CE4k-qaj.js +0 -1
  568. package/dist/elements/chunks/message-DtXKPqiR.js +0 -1
  569. package/dist/elements/chunks/message-square-C9ovmtOo.js +0 -1
  570. package/dist/elements/chunks/paperclip-Bg0ITU3b.js +0 -1
  571. package/dist/elements/chunks/progress-bar-D1_rzt6N.js +0 -1
  572. package/dist/elements/chunks/prompt-suggestion-D5Sm8xF1.js +0 -1
  573. package/dist/elements/chunks/reasoning-BrxQfpfI.js +0 -1
  574. package/dist/elements/chunks/rotate-cw-DzVDJOA1.js +0 -1
  575. package/dist/elements/chunks/scroll-area-93A1bbeG.js +0 -1
  576. package/dist/elements/chunks/scroll-button-CrTo7wm4.js +0 -1
  577. package/dist/elements/chunks/share-DgNbkJKY.js +0 -1
  578. package/dist/elements/chunks/slots-CIw9RlAe.js +0 -1
  579. package/dist/elements/chunks/source-w9V0NnBn.js +0 -1
  580. package/dist/elements/chunks/star-DHvACxtm.js +0 -1
  581. package/dist/elements/chunks/store-HIPGhNz9.js +0 -1
  582. package/dist/elements/chunks/svelte--5p79yCD.js +0 -1
  583. package/dist/elements/chunks/tasks-card-lPxoodlA.js +0 -1
  584. package/dist/elements/chunks/text-shimmer-BY_rI3s5.js +0 -1
  585. package/dist/elements/chunks/textarea-DPfuhswM.js +0 -1
  586. package/dist/elements/chunks/toast-store-VUZZBhzH.js +0 -1
  587. package/dist/elements/chunks/tsx-B8rCNbgL.js +0 -1
  588. package/dist/elements/chunks/typescript-RycA9KXf.js +0 -1
  589. package/dist/elements/chunks/use-card-resolution-DJg32jGH.js +0 -1
  590. package/dist/elements/chunks/variant-custom-D5ZlmziF.js +0 -1
  591. package/dist/elements/chunks/video-Bb86fVYI.js +0 -1
  592. package/dist/elements/chunks/vue-BmIZj4XD.js +0 -1
  593. package/dist/elements/chunks/x-BOhjBeOd.js +0 -1
  594. package/dist/llms/llms-full.txt +0 -2834
  595. package/dist/llms/llms.txt +0 -156
  596. package/dist/primitives/card-validate-generator.testlib.d.ts +0 -20
  597. package/dist/register-impl-DGmGzrEM.js +0 -145
  598. package/dist/ui/stat.d.ts +0 -16
  599. package/dist/variant-custom-MkTNTycd.js +0 -1
  600. package/src/primitives/card-validate-generator.testlib.ts +0 -38
  601. package/src/ui/stat.tsx +0 -41
  602. /package/dist/{elements/chunks/card-tags-D8lZ-C_U.js → card-tags-D8lZ-C_U.js} +0 -0
  603. /package/dist/{elements/chunks/link-preview-DNILK391.js → link-preview-DNILK391.js} +0 -0
@@ -1 +1 @@
1
- import{s as A,c as G,q as D,m as W,i as P,A as se,g as j,a as q,b as ce,d as ue,S as H,p as de,t as M,z as fe,e as me}from"./define-B_tXMYRm.js";import{c as E}from"./cn-CU7UAWzk.js";var U=M("<div>"),ge=M('<div><svg viewBox="0 0 4 8"fill=currentColor><circle cx=1 cy=1.5 r=0.6></circle><circle cx=3 cy=1.5 r=0.6></circle><circle cx=1 cy=4 r=0.6></circle><circle cx=3 cy=4 r=0.6></circle><circle cx=1 cy=6.5 r=0.6></circle><circle cx=3 cy=6.5 r=0.6>'),xe=M("<div class=pointer-events-none data-handle-line style=position:absolute>"),pe=M("<div role=separator aria-valuemin=0 aria-valuemax=100>");const J=fe();function L(l){if(l==null||l==="")return;if(typeof l=="number")return Number.isFinite(l)?`${l}%`:void 0;const t=l.trim();if(t==="")return;if(t.endsWith("%")||t.endsWith("px"))return t;const o=Number(t);return Number.isFinite(o)?`${o}%`:void 0}function T(l){const t=/^\s*(-?\d*\.?\d+)(px|%)\s*$/.exec(l);return t?{n:parseFloat(t[1]),unit:t[2]}:null}function K(l,t,o){if(l===void 0)return;const u=T(l),d=t===void 0?void 0:T(t),f=o===void 0?void 0:T(o);if(u&&(t===void 0||d?.unit===u.unit)&&(o===void 0||f?.unit===u.unit)){let i=u.n;return f&&(i=Math.min(i,f.n)),d&&(i=Math.max(i,d.n)),`${i}${u.unit}`}return t!==void 0&&o!==void 0?`clamp(${t}, ${l}, ${o})`:o!==void 0?`min(${l}, ${o})`:t!==void 0?`max(${t}, ${l})`:l}function ve(l){const[t,o]=A(l,["orientation","children","class"]),u=()=>t.orientation??"horizontal";return G(J.Provider,{get value(){return{orientation:u()}},get children(){var d=U();return D(d,W({get class(){return E("flex h-full w-full",u()==="vertical"?"flex-col":"flex-row",t.class)},get"data-orientation"(){return u()}},o),!1,!0),P(d,()=>t.children),d}})}function he(l){const[t,o]=A(l,["defaultSize","minSize","maxSize","locked","hidden","children","class","style"]),u=(i,v,g)=>{const m=L(i);if(m!==void 0)return m;const h=v==null?"":String(v).trim();if(h!==""){const n=parseFloat(h);if(Number.isFinite(n))return`${n}px`}const x=g==null?"":String(g).trim();if(x!==""){const n=parseFloat(x);if(Number.isFinite(n))return`${n}%`}},d=()=>{const i=o,v=u(t.minSize,i["data-min-size"],i["data-min-size-pct"]),g=u(t.maxSize,i["data-max-size"],i["data-max-size-pct"]),m=K(L(t.defaultSize),v,g);return{...m!==void 0?{"flex-basis":m,"flex-grow":"0","flex-shrink":"0"}:{flex:"1 1 0%"},display:"grid","grid-template-rows":"minmax(0, 1fr)","grid-template-columns":"minmax(0, 1fr)","min-width":"0","min-height":"0"}},f=()=>{const i={},v=(g,m,h)=>{if(g==null||g==="")return;if(typeof g=="number"){i[h]=String(g);return}const x=g.trim();x.endsWith("px")?i[m]=String(parseFloat(x)):x.endsWith("%")?i[h]=String(parseFloat(x)):Number.isFinite(Number(x))&&(i[h]=x)};return v(t.minSize,"data-min-size","data-min-size-pct"),v(t.maxSize,"data-max-size","data-max-size-pct"),v(t.defaultSize,"data-default-size","data-default-size-pct"),i};return(()=>{var i=U();return D(i,W({get class(){return E("overflow-hidden",t.class)},get style(){return{...d(),...typeof t.style=="object"?t.style:{}}},get"data-locked"(){return t.locked?"":void 0},get hidden(){return t.hidden||void 0}},f,o),!1,!0),P(i,()=>t.children),i})()}function R(l,t,o,u){const d=l.dataset[t==="min"?"minSize":"maxSize"];if(d!==void 0&&d!==""){const i=parseFloat(d);if(Number.isFinite(i))return i}const f=l.dataset[t==="min"?"minSizePct":"maxSizePct"];if(f!==void 0&&f!==""){const i=parseFloat(f);if(Number.isFinite(i))return i/100*o}return u}function ye(l){const[t,o]=A(l,["handle","onPanelResize","class","keyboardStep","static","orientation"]),u=se(J),d=()=>t.orientation??u?.orientation??"horizontal",[f,i]=j(!1),[v,g]=j(!1),m=()=>!!t.static,h=()=>t.handle??"line";let x=0,n=null,s=null,$=0,C=0;const y=()=>d()==="horizontal",p=()=>y()?"width":"height",O=e=>{if(m())return;const r=e.currentTarget;n=r.previousElementSibling,s=r.nextElementSibling,!(!n||!s)&&(e.preventDefault(),i(!0),r.setPointerCapture(e.pointerId),x=y()?e.clientX:e.clientY,$=n.getBoundingClientRect()[p()],C=s.getBoundingClientRect()[p()])},Q=e=>{if(!f()||!n||!s)return;const r=(y()?e.clientX:e.clientY)-x;F(r)};function F(e){var r;if(!n||!s)return!1;const a=n.parentElement,c=a?a.getBoundingClientRect()[p()]:0,w=R(n,"min",c,0),k=R(n,"max",c,999999),b=R(s,"min",c,0),B=R(s,"max",c,999999);let z=-1/0,S=1/0;if(z=Math.max(z,w-$),S=Math.min(S,k-$),z=Math.max(z,C-B),S=Math.min(S,C-b),z>S)return!1;const N=Math.max(z,Math.min(S,e)),ae=$+N,oe=C-N;return n.style.flexBasis=`${ae}px`,n.style.flexGrow="0",n.style.flexShrink="0",s.style.flexBasis=`${oe}px`,s.style.flexGrow="0",s.style.flexShrink="0",(r=t.onPanelResize)==null||r.call(t,N),!0}function X(){if(!n||!s)return;const e=n.parentElement;if(!e)return;const r=e.getBoundingClientRect()[p()];if(r<=0)return;const a=n.getBoundingClientRect()[p()]/r*100,c=s.getBoundingClientRect()[p()]/r*100;n.style.flexBasis=`${a}%`,s.style.flexBasis=`${c}%`}const V=()=>{X(),i(!1),n=null,s=null};function Y(e){const r=e.dataset.defaultSize,a=e.dataset.defaultSizePct;r!==void 0&&r!==""?(e.style.flexBasis=`${r}px`,e.style.flexGrow="0",e.style.flexShrink="0"):a!==void 0&&a!==""?(e.style.flexBasis=`${a}%`,e.style.flexGrow="0",e.style.flexShrink="0"):(e.style.flexBasis="",e.style.flexGrow="1",e.style.flexShrink="1")}const Z=e=>{var r;if(m())return;const a=e.currentTarget,c=a.previousElementSibling,w=a.nextElementSibling;!c||!w||(e.preventDefault(),Y(c),Y(w),(r=t.onPanelResize)==null||r.call(t,0))},_=j(50),[ee,te]=_;function ne(e){return n=e.previousElementSibling,s=e.nextElementSibling,!n||!s?!1:($=n.getBoundingClientRect()[p()],C=s.getBoundingClientRect()[p()],!0)}function ie(){if(!n)return;const e=n.parentElement;if(!e)return;const r=e.getBoundingClientRect()[p()];if(r<=0)return;const a=n.getBoundingClientRect()[p()]/r*100;te(Math.round(a))}const re=e=>{if(m())return;const r=e.currentTarget,a=t.keyboardStep??16,c=y(),w=c?"ArrowLeft":"ArrowUp",k=c?"ArrowRight":"ArrowDown";let b=null;if(e.key===w)b=-a;else if(e.key===k)b=a;else if(e.key==="Home")b="min";else if(e.key==="End")b="max";else return;if(e.preventDefault(),!!ne(r)){if(b==="min"){const B=n.parentElement,z=B?B.getBoundingClientRect()[p()]:0,S=R(n,"min",z,0);F(S-$)}else if(b==="max"){const B=n.parentElement,z=B?B.getBoundingClientRect()[p()]:0,S=R(n,"max",z,999999);F(S-$)}else F(b);ie(),X(),n=null,s=null}},I=()=>f()&&h()!=="line",le=()=>f()?"var(--color-muted, #f4f4f5)":v()?"var(--color-border, #e4e4e7)":"transparent";return(()=>{var e=pe();return e.$$keydown=re,e.$$dblclick=Z,e.addEventListener("pointerleave",()=>g(!1)),e.addEventListener("pointerenter",()=>g(!0)),e.$$pointerup=V,e.$$pointermove=Q,e.$$pointerdown=O,D(e,W({get class(){return E("relative flex items-center justify-center",t.class)},get style(){return{cursor:m()?"default":y()?"col-resize":"row-resize",[y()?"width":"height"]:"8px",background:I()?"var(--color-muted-foreground, #98989f)":"transparent",opacity:I()?"0.3":"1"}},get tabIndex(){return m()?void 0:0},get"data-orientation"(){return d()},get"data-static"(){return m()?"":void 0},get"aria-orientation"(){return y()?"vertical":"horizontal"},get"aria-valuenow"(){return ee()}},o),!1,!0),P(e,G(H,{get when(){return h()==="grip"},get children(){var r=ge(),a=r.firstChild;return q(c=>{var w=E("z-10 flex items-center justify-center",y()?"h-6 w-3 flex-col":"h-3 w-6 flex-row"),k=E("text-muted-foreground/40",y()?"h-3 w-2":"h-2 w-3 rotate-90");return w!==c.e&&ce(r,c.e=w),k!==c.t&&ue(a,"class",c.t=k),c},{e:void 0,t:void 0}),r}}),null),P(e,G(H,{get when(){return h()==="line"},get children(){var r=xe();return q(a=>de(r,{background:le(),...y()?{top:"0",bottom:"0",left:"50%",width:"1px",transform:"translateX(-0.5px)"}:{left:"0",right:"0",top:"50%",height:"1px",transform:"translateY(-0.5px)"}},a)),r}}),null),e})()}me(["pointerdown","pointermove","pointerup","dblclick","keydown"]);export{ve as R,he as a,ye as b,K as c,L as n};
1
+ import{s as G,G as se,g as A,p as D,q as W,i as P,c as j,a as q,b as ce,d as ue,S as H,n as de,B as fe,t as M,e as me}from"./define-CGGX-7Vg.js";import{c as E}from"./cn-DN5AWfiS.js";var U=M("<div>"),xe=M('<div><svg viewBox="0 0 4 8"fill=currentColor><circle cx=1 cy=1.5 r=0.6></circle><circle cx=3 cy=1.5 r=0.6></circle><circle cx=1 cy=4 r=0.6></circle><circle cx=3 cy=4 r=0.6></circle><circle cx=1 cy=6.5 r=0.6></circle><circle cx=3 cy=6.5 r=0.6>'),ge=M("<div class=pointer-events-none data-handle-line style=position:absolute>"),pe=M("<div role=separator aria-valuemin=0 aria-valuemax=100>");const J=fe();function L(l){if(l==null||l==="")return;if(typeof l=="number")return Number.isFinite(l)?`${l}%`:void 0;const t=l.trim();if(t==="")return;if(t.endsWith("%")||t.endsWith("px"))return t;const o=Number(t);return Number.isFinite(o)?`${o}%`:void 0}function T(l){const t=/^\s*(-?\d*\.?\d+)(px|%)\s*$/.exec(l);return t?{n:parseFloat(t[1]),unit:t[2]}:null}function K(l,t,o){if(l===void 0)return;const u=T(l),d=t===void 0?void 0:T(t),f=o===void 0?void 0:T(o);if(u&&(t===void 0||d?.unit===u.unit)&&(o===void 0||f?.unit===u.unit)){let i=u.n;return f&&(i=Math.min(i,f.n)),d&&(i=Math.max(i,d.n)),`${i}${u.unit}`}return t!==void 0&&o!==void 0?`clamp(${t}, ${l}, ${o})`:o!==void 0?`min(${l}, ${o})`:t!==void 0?`max(${t}, ${l})`:l}function ve(l){const[t,o]=G(l,["orientation","children","class"]),u=()=>t.orientation??"horizontal";return j(J.Provider,{get value(){return{orientation:u()}},get children(){var d=U();return D(d,W({get class(){return E("flex h-full w-full",u()==="vertical"?"flex-col":"flex-row",t.class)},get"data-orientation"(){return u()}},o),!1,!0),P(d,()=>t.children),d}})}function he(l){const[t,o]=G(l,["defaultSize","minSize","maxSize","locked","hidden","children","class","style"]),u=(i,v,x)=>{const m=L(i);if(m!==void 0)return m;const h=v==null?"":String(v).trim();if(h!==""){const n=parseFloat(h);if(Number.isFinite(n))return`${n}px`}const g=x==null?"":String(x).trim();if(g!==""){const n=parseFloat(g);if(Number.isFinite(n))return`${n}%`}},d=()=>{const i=o,v=u(t.minSize,i["data-min-size"],i["data-min-size-pct"]),x=u(t.maxSize,i["data-max-size"],i["data-max-size-pct"]),m=K(L(t.defaultSize),v,x);return{...m!==void 0?{"flex-basis":m,"flex-grow":"0","flex-shrink":"0"}:{flex:"1 1 0%"},display:"grid","grid-template-rows":"minmax(0, 1fr)","grid-template-columns":"minmax(0, 1fr)","min-width":"0","min-height":"0"}},f=()=>{const i={},v=(x,m,h)=>{if(x==null||x==="")return;if(typeof x=="number"){i[h]=String(x);return}const g=x.trim();g.endsWith("px")?i[m]=String(parseFloat(g)):g.endsWith("%")?i[h]=String(parseFloat(g)):Number.isFinite(Number(g))&&(i[h]=g)};return v(t.minSize,"data-min-size","data-min-size-pct"),v(t.maxSize,"data-max-size","data-max-size-pct"),v(t.defaultSize,"data-default-size","data-default-size-pct"),i};return(()=>{var i=U();return D(i,W({get class(){return E("overflow-hidden",t.class)},get style(){return{...d(),...typeof t.style=="object"?t.style:{}}},get"data-locked"(){return t.locked?"":void 0},get hidden(){return t.hidden||void 0}},f,o),!1,!0),P(i,()=>t.children),i})()}function R(l,t,o,u){const d=l.dataset[t==="min"?"minSize":"maxSize"];if(d!==void 0&&d!==""){const i=parseFloat(d);if(Number.isFinite(i))return i}const f=l.dataset[t==="min"?"minSizePct":"maxSizePct"];if(f!==void 0&&f!==""){const i=parseFloat(f);if(Number.isFinite(i))return i/100*o}return u}function ye(l){const[t,o]=G(l,["handle","onPanelResize","class","keyboardStep","static","orientation"]),u=se(J),d=()=>t.orientation??u?.orientation??"horizontal",[f,i]=A(!1),[v,x]=A(!1),m=()=>!!t.static,h=()=>t.handle??"line";let g=0,n=null,s=null,$=0,C=0;const y=()=>d()==="horizontal",p=()=>y()?"width":"height",O=e=>{if(m())return;const r=e.currentTarget;n=r.previousElementSibling,s=r.nextElementSibling,!(!n||!s)&&(e.preventDefault(),i(!0),r.setPointerCapture(e.pointerId),g=y()?e.clientX:e.clientY,$=n.getBoundingClientRect()[p()],C=s.getBoundingClientRect()[p()])},Q=e=>{if(!f()||!n||!s)return;const r=(y()?e.clientX:e.clientY)-g;F(r)};function F(e){var r;if(!n||!s)return!1;const a=n.parentElement,c=a?a.getBoundingClientRect()[p()]:0,z=R(n,"min",c,0),k=R(n,"max",c,999999),b=R(s,"min",c,0),B=R(s,"max",c,999999);let S=-1/0,w=1/0;if(S=Math.max(S,z-$),w=Math.min(w,k-$),S=Math.max(S,C-B),w=Math.min(w,C-b),S>w)return!1;const N=Math.max(S,Math.min(w,e)),ae=$+N,oe=C-N;return n.style.flexBasis=`${ae}px`,n.style.flexGrow="0",n.style.flexShrink="0",s.style.flexBasis=`${oe}px`,s.style.flexGrow="0",s.style.flexShrink="0",(r=t.onPanelResize)==null||r.call(t,N),!0}function X(){if(!n||!s)return;const e=n.parentElement;if(!e)return;const r=e.getBoundingClientRect()[p()];if(r<=0)return;const a=n.getBoundingClientRect()[p()]/r*100,c=s.getBoundingClientRect()[p()]/r*100;n.style.flexBasis=`${a}%`,s.style.flexBasis=`${c}%`}const V=()=>{X(),i(!1),n=null,s=null};function Y(e){const r=e.dataset.defaultSize,a=e.dataset.defaultSizePct;r!==void 0&&r!==""?(e.style.flexBasis=`${r}px`,e.style.flexGrow="0",e.style.flexShrink="0"):a!==void 0&&a!==""?(e.style.flexBasis=`${a}%`,e.style.flexGrow="0",e.style.flexShrink="0"):(e.style.flexBasis="",e.style.flexGrow="1",e.style.flexShrink="1")}const Z=e=>{var r;if(m())return;const a=e.currentTarget,c=a.previousElementSibling,z=a.nextElementSibling;!c||!z||(e.preventDefault(),Y(c),Y(z),(r=t.onPanelResize)==null||r.call(t,0))},_=A(50),[ee,te]=_;function ne(e){return n=e.previousElementSibling,s=e.nextElementSibling,!n||!s?!1:($=n.getBoundingClientRect()[p()],C=s.getBoundingClientRect()[p()],!0)}function ie(){if(!n)return;const e=n.parentElement;if(!e)return;const r=e.getBoundingClientRect()[p()];if(r<=0)return;const a=n.getBoundingClientRect()[p()]/r*100;te(Math.round(a))}const re=e=>{if(m())return;const r=e.currentTarget,a=t.keyboardStep??16,c=y(),z=c?"ArrowLeft":"ArrowUp",k=c?"ArrowRight":"ArrowDown";let b=null;if(e.key===z)b=-a;else if(e.key===k)b=a;else if(e.key==="Home")b="min";else if(e.key==="End")b="max";else return;if(e.preventDefault(),!!ne(r)){if(b==="min"){const B=n.parentElement,S=B?B.getBoundingClientRect()[p()]:0,w=R(n,"min",S,0);F(w-$)}else if(b==="max"){const B=n.parentElement,S=B?B.getBoundingClientRect()[p()]:0,w=R(n,"max",S,999999);F(w-$)}else F(b);ie(),X(),n=null,s=null}},I=()=>f()&&h()!=="line",le=()=>f()?"var(--color-muted, #f4f4f5)":v()?"var(--color-border, #e4e4e7)":"transparent";return(()=>{var e=pe();return e.$$keydown=re,e.$$dblclick=Z,e.addEventListener("pointerleave",()=>x(!1)),e.addEventListener("pointerenter",()=>x(!0)),e.$$pointerup=V,e.$$pointermove=Q,e.$$pointerdown=O,D(e,W({get class(){return E("relative flex items-center justify-center",t.class)},get style(){return{cursor:m()?"default":y()?"col-resize":"row-resize",[y()?"width":"height"]:"8px","flex-shrink":"0",background:I()?"var(--color-muted-foreground, #98989f)":"transparent",opacity:I()?"0.3":"1"}},get tabIndex(){return m()?void 0:0},get"data-orientation"(){return d()},get"data-static"(){return m()?"":void 0},get"aria-orientation"(){return y()?"vertical":"horizontal"},get"aria-valuenow"(){return ee()}},o),!1,!0),P(e,j(H,{get when(){return h()==="grip"},get children(){var r=xe(),a=r.firstChild;return q(c=>{var z=E("z-10 flex items-center justify-center",y()?"h-6 w-3 flex-col":"h-3 w-6 flex-row"),k=E("text-muted-foreground/40",y()?"h-3 w-2":"h-2 w-3 rotate-90");return z!==c.e&&ce(r,c.e=z),k!==c.t&&ue(a,"class",c.t=k),c},{e:void 0,t:void 0}),r}}),null),P(e,j(H,{get when(){return h()==="line"},get children(){var r=ge();return q(a=>de(r,{background:le(),...y()?{top:"0",bottom:"0",left:"50%",width:"1px",transform:"translateX(-0.5px)"}:{left:"0",right:"0",top:"50%",height:"1px",transform:"translateY(-0.5px)"}},a)),r}}),null),e})()}me(["pointerdown","pointermove","pointerup","dblclick","keydown"]);export{ye as R,he as a,ve as b,K as c,L as n};
@@ -0,0 +1 @@
1
+ import{I as o}from"./Icon-BnFKqqtY.js";import{c as e,q as r}from"./define-CGGX-7Vg.js";var t=[["path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"1357e3"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}]],m=a=>e(o,r(a,{name:"RotateCcw",iconNode:t})),p=m;export{p as r};
@@ -0,0 +1 @@
1
+ import{I as a}from"./Icon-BnFKqqtY.js";import{c as o,q as y}from"./define-CGGX-7Vg.js";var n=[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"m12 5 7 7-7 7",key:"xquz4c"}]],d=e=>o(a,y(e,{name:"ArrowRight",iconNode:n})),t=d,i=[["polyline",{points:"16 18 22 12 16 6",key:"z7tu5w"}],["polyline",{points:"8 6 2 12 8 18",key:"1eg1df"}]],p=e=>o(a,y(e,{name:"Code",iconNode:i})),h=p,k=[["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["polyline",{points:"7 10 12 15 17 10",key:"2ggqvy"}],["line",{x1:"12",x2:"12",y1:"15",y2:"3",key:"1vk2je"}]],s=e=>o(a,y(e,{name:"Download",iconNode:k})),c=s,r=[["path",{d:"M2 12s3-7 10-7 10 7 10 7-3 7-10 7-10-7-10-7Z",key:"rwhkz3"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]],l=e=>o(a,y(e,{name:"Eye",iconNode:r})),m=l,v=[["path",{d:"M15 21v-8a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v8",key:"5wwlr5"}],["path",{d:"M3 10a2 2 0 0 1 .709-1.528l7-5.999a2 2 0 0 1 2.582 0l7 5.999A2 2 0 0 1 21 10v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z",key:"1d0kgt"}]],M=e=>o(a,y(e,{name:"House",iconNode:v})),w=M,N=[["path",{d:"M21 12a9 9 0 1 1-9-9c2.52 0 4.93 1 6.74 2.74L21 8",key:"1p45f6"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}]],g=e=>o(a,y(e,{name:"RotateCw",iconNode:N})),f=g;export{t as a,h as c,c as d,m as e,w as h,f as r};
@@ -11,7 +11,27 @@
11
11
  "description": { "type": "string" },
12
12
  "required": { "type": "array", "items": { "type": "string" } },
13
13
  "properties": {
14
- "type": "object"
14
+ "type": "object",
15
+ "description": "The fields to collect, keyed by property name. Each value is a JSON Schema field definition (type, title, description, enum, minimum/maximum, minLength/maxLength, pattern, items) plus optional x-kai-* UI hints. Only the display-format hints are spelled out below; the rest of a field definition is ordinary JSON Schema.",
16
+ "additionalProperties": {
17
+ "type": "object",
18
+ "properties": {
19
+ "x-kai-format": {
20
+ "description": "Display format for a string field. `tel`, `ssn` and `credit-card` apply that type's standard mask and submit digits only; `custom` masks with `x-kai-mask` and submits the formatted value. Omit it for a plain text field.",
21
+ "enum": ["tel", "ssn", "credit-card", "custom"]
22
+ },
23
+ "x-kai-mask": {
24
+ "description": "The mask pattern, used only with `x-kai-format: \"custom\"`: `#` one digit, `@` one letter or digit, `*` one letter or digit that may be obscured; every other character is a literal shown as typed, e.g. `CHG-####`.",
25
+ "type": "string",
26
+ "maxLength": 64
27
+ },
28
+ "x-kai-mask-guide": {
29
+ "description": "Placeholder text shown at the unfilled positions of the mask, aligned character for character with the pattern (`mm/dd/yyyy` for `##/##/####`). Derived from the pattern when omitted.",
30
+ "type": "string",
31
+ "maxLength": 64
32
+ }
33
+ }
34
+ }
15
35
  },
16
36
  "x-kai-order": { "type": "array", "items": { "type": "string" } },
17
37
  "x-kai-inlineMax": { "type": "integer", "minimum": 1 },
@@ -37,7 +37,7 @@ export type { EmbedCardData, EmbedCardEnvelope, EmbedProvider } from '../primiti
37
37
  export type { LinkPreviewData, LinkPreviewEnvelope } from '../primitives/link-preview.js';
38
38
  export { cardFromToolCall, isCardTool, cardTypeFromToolName, toolNameForCardType, KAI_TOOL_PREFIX } from './from-tool-call.js';
39
39
  export { CARD_TOOL_DESCRIPTIONS, UnsupportedCardToolSchemaError, cardTools, toAnthropicTools, toJsonSchemaTools, toOpenAITools, } from './tool-defs.js';
40
- export type { AnthropicToolDef, CardToolInput, CardToolOptions, CardToolSource, JsonSchemaToolDef, OpenAIToolDef, ToolDef, ToolDefFor, ToolParameters, ToolProvider, UnsupportedCardTool, } from './tool-defs.js';
40
+ export type { AnthropicToolDef, CardRequireRule, CardToolInput, CardToolOptions, CardToolSource, JsonSchemaToolDef, OpenAIToolDef, ToolDef, ToolDefFor, ToolParameters, ToolProvider, UnsupportedCardTool, } from './tool-defs.js';
41
41
  export { createCardRegistry } from './registry.js';
42
42
  export type { CardRegistry, CardRegistrySpec, CustomCardSpec, IncompletePolicy } from './registry.js';
43
43
  export { cardValidationMessage, validateCardData } from '../primitives/card-validate-cards.js';
@@ -45,6 +45,51 @@ export interface CardToolOptions<P extends ToolProvider = ToolProvider> {
45
45
  * When it throws it names the card, the path and the keyword.
46
46
  */
47
47
  readonly strict?: boolean;
48
+ /**
49
+ * Narrow the DERIVED tool schema per card type, after projection.
50
+ *
51
+ * A card's authored schema is deliberately permissive — `files` is optional on an
52
+ * artifact, its items need only a `path` — because the card CONTRACT must accept
53
+ * what a host may legitimately render. A model filling the tool in, though, is
54
+ * often better served by a tighter tool: requiring `code` on every file, or at
55
+ * least one file at all, moves a class of failures from render time (a card the
56
+ * registry rejects) to generation time (the model literally cannot emit one).
57
+ *
58
+ * This narrows the WIRE projection only — the authored schema and
59
+ * `registry.validate()` are untouched, so a hand-built envelope still validates.
60
+ * Applied for every provider, `jsonschema` included, and merged loudly: an
61
+ * unknown path or a required name the node has no property for is a TypeError
62
+ * naming the card, the path and the field, because a tool that can never be
63
+ * satisfied must not ship quietly.
64
+ *
65
+ * IT CANNOT REACH A FORM CARD'S FIELDS, and that is a known limitation rather
66
+ * than an oversight. The form
67
+ * card's payload IS a JSON Schema, so `form.schema.json` describes `properties`
68
+ * as a map of field definitions and there is no node at `properties.ticketId`
69
+ * for a rule to land on — `require: { form: [{ path: 'properties.ticketId' }] }`
70
+ * raises the TypeError above, correctly. So an app cannot pin
71
+ * `x-kai-format: 'custom'` onto one field of a form the model authors. The
72
+ * enum on that hint is what makes a small model pick a valid token; an app that
73
+ * needs a guarantee checks the envelope when it arrives.
74
+ */
75
+ readonly require?: Readonly<Record<string, readonly CardRequireRule[]>>;
76
+ }
77
+ /**
78
+ * One narrowing instruction for one node of one card's projected schema.
79
+ *
80
+ * `path` is a dot-path from the envelope-data root through `properties` keys
81
+ * (`''` names the root node itself). On an ARRAY node, `required` narrows
82
+ * `items.required` and `minItems` lands on the array; on an object node,
83
+ * `required` lands on the node's own `required`. Existing requirements merge,
84
+ * never replace.
85
+ */
86
+ export interface CardRequireRule {
87
+ /** Dot-path from the envelope-data root to a schema node, e.g. 'files'. */
88
+ readonly path: string;
89
+ /** Property names to require. On an ARRAY node this narrows `items.required`; on an object node, the node's own `required`. */
90
+ readonly required?: readonly string[];
91
+ /** Sets `minItems` (array nodes only). */
92
+ readonly minItems?: number;
48
93
  }
49
94
  /**
50
95
  * Where the card types come from.