@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,4 +1,4 @@
1
- import { A as e, a as t, b as o, d as r, e as n, f as i, g as c, h as d, i as C, j as l, k as b, l as g, m, n as u, B as p, o as T, p as h, q as A, r as R, t as S, u as I, v as E, x as P, y as v, z as D, D as f, E as x, F as L, G as k, H as w, I as _, J as M, K as O, L as y, M as B, N as F, M as H, O as N, P as z, Q as V, R as U, S as G, T as Y, U as K, V as W, W as j, X as q, Y as J, Z as Q, _ as X, $ as Z, a0 as $, a1 as aa, a2 as sa, a3 as ea, a4 as ta, a5 as oa, a6 as ra, a7 as na, a8 as ia, a9 as ca, aa as da, ab as Ca, ac as la, ad as ba, ae as ga, af as ma, ag as ua, ah as pa, ai as Ta, aj as ha, ak as Aa, al as Ra, am as Sa, an as Ia, ao as Ea, ap as Pa, aq as va, ar as Da, as as fa, at as xa, au as La, av as ka, aw as wa, ax as _a, ay as Ma, az as Oa, aA as ya, aB as Ba, aC as Fa, aD as Ha, aE as Na, aF as za, aG as Va, aH as Ua, aI as Ga, aJ as Ya, aK as Ka, aL as Wa, aM as ja, aN as qa, aO as Ja, aP as Qa, aQ as Xa, aR as Za, aS as $a, aT as as, aU as ss, aV as es, aW as ts, aX as os, aY as rs, aZ as ns, a_ as is, a$ as cs, b0 as ds, b1 as Cs, b2 as ls, b3 as bs, b4 as gs, b5 as ms, b6 as us, b7 as ps, b8 as Ts, b9 as hs, ba as As, bb as Rs, bc as Ss, bd as Is, be as Es, bf as Ps, bg as vs, bh as Ds, bi as fs, bj as xs, bk as Ls, bl as ks, bm as ws, bn as _s, bo as Ms, bp as Os, bq as ys, br as Bs, bs as Fs, bt as Hs, bu as Ns, bv as zs, bw as Vs, bx as Us, by as Gs, bz as Ys, bA as Ks, bB as Ws, bC as js, bD as qs, bE as Js, bF as Qs, bG as Xs, bH as Zs, bI as $s, bJ as ae, bK as se, bL as ee, bM as te, bN as oe, bO as re, bP as ne, bQ as ie, bR as ce, bS as de, bT as Ce, bU as le, bV as be, bW as ge, bX as me, bY as ue, bZ as pe, b_ as Te, b$ as he, c0 as Ae, c1 as Re, c2 as Se, c3 as Ie, c4 as Ee, c5 as Pe, c6 as ve, c as De, c7 as fe, c8 as xe, c9 as Le, ca as ke, cb as we, cc as _e, cd as Me, ce as Oe, cf as ye, cg as Be, ch as Fe, ci as He, cj as Ne, ck as ze, cl as Ve, cm as Ue, cn as Ge, co as Ye, cp as Ke, cq as We, cr as je, cs as qe, ct as Je, cu as Qe, cv as Xe, cw as Ze, cx as $e, cy as at, cz as st, cA as et, cB as tt, cC as ot, cD as rt, cE as nt, cF as it, cG as ct, cH as dt, cI as Ct, cJ as lt, cK as bt, cL as gt, cM as mt, cN as ut, cO as pt, cP as Tt, cQ as ht, cR as At, cS as Rt, cT as St, cU as It, cV as Et, cW as Pt, cX as vt, cY as Dt, cZ as ft, c_ as xt, c$ as Lt, d0 as kt, d1 as wt, d2 as _t, d3 as Mt, d4 as Ot, d5 as yt, d6 as Bt, d7 as Ft, d8 as Ht, d9 as Nt, da as zt, db as Vt, dc as Ut, dd as Gt } from "./solid-CGYNdLRR.js";
1
+ import { A as e, b as t, d as o, e as r, f as n, g as i, h as c, i as d, j as C, k as l, l as b, m as g, n as m, o as p, B as u, p as h, q as T, r as A, t as S, u as R, v as I, x as v, y as E, z as P, D, E as k, F as x, G as f, H as L, I as w, J as _, K as y, L as O, M as B, N as M, O as F, N as H, P as N, Q as z, R as G, S as V, T as U, U as Y, V as K, W, X as j, Y as q, Z as J, _ as Q, $ as X, a0 as Z, a1 as $, a2 as aa, a3 as sa, a4 as ea, a5 as ta, a6 as oa, a7 as ra, a8 as na, a9 as ia, aa as ca, ab as da, ac as Ca, ad as la, ae as ba, af as ga, ag as ma, ah as pa, ai as ua, aj as ha, ak as Ta, al as Aa, am as Sa, an as Ra, ao as Ia, ap as va, aq as Ea, ar as Pa, as as Da, at as ka, au as xa, av as fa, aw as La, ax as wa, ay as _a, az as ya, aA as Oa, aB as Ba, aC as Ma, aD as Fa, aE as Ha, aF as Na, aG as za, aH as Ga, aI as Va, aJ as Ua, aK as Ya, aL as Ka, aM as Wa, aN as ja, aO as qa, aP as Ja, aQ as Qa, aR as Xa, aS as Za, aT as $a, aU as as, aV as ss, aW as es, aX as ts, aY as os, aZ as rs, a_ as ns, a$ as is, b0 as cs, b1 as ds, b2 as Cs, b3 as ls, b4 as bs, b5 as gs, b6 as ms, b7 as ps, b8 as us, b9 as hs, ba as Ts, bb as As, bc as Ss, bd as Rs, be as Is, bf as vs, bg as Es, bh as Ps, bi as Ds, bj as ks, bk as xs, bl as fs, bm as Ls, bn as ws, bo as _s, bp as ys, bq as Os, br as Bs, bs as Ms, bt as Fs, bu as Hs, bv as Ns, bw as zs, bx as Gs, by as Vs, bz as Us, bA as Ys, bB as Ks, bC as Ws, bD as js, bE as qs, bF as Js, bG as Qs, bH as Xs, bI as Zs, bJ as $s, bK as ae, bL as se, bM as ee, bN as te, bO as oe, bP as re, bQ as ne, bR as ie, bS as ce, bT as de, bU as Ce, bV as le, bW as be, bX as ge, bY as me, bZ as pe, b_ as ue, b$ as he, c0 as Te, c1 as Ae, c2 as Se, c3 as Re, c4 as Ie, c5 as ve, c6 as Ee, c7 as Pe, c8 as De, c9 as ke, ca as xe, cb as fe, cc as Le, cd as we, ce as _e, cf as ye, cg as Oe, ch as Be, ci as Me, c as Fe, cj as He, ck as Ne, cl as ze, cm as Ge, cn as Ve, co as Ue, cp as Ye, cq as Ke, cr as We, cs as je, ct as qe, cu as Je, cv as Qe, cw as Xe, cx as Ze, cy as $e, cz as at, cA as st, cB as et, cC as tt, cD as ot, cE as rt, cF as nt, cG as it, cH as ct, cI as dt, cJ as Ct, cK as lt, cL as bt, cM as gt, cN as mt, cO as pt, cP as ut, cQ as ht, cR as Tt, cS as At, cT as St, cU as Rt, cV as It, cW as vt, cX as Et, cY as Pt, cZ as Dt, c_ as kt, c$ as xt, d0 as ft, d1 as Lt, d2 as wt, d3 as _t, d4 as yt, d5 as Ot, d6 as Bt, d7 as Mt, d8 as Ft, d9 as Ht, da as Nt, db as zt, dc as Gt, dd as Vt, de as Ut, df as Yt, dg as Kt, dh as Wt, di as jt, dj as qt, dk as Jt, dl as Qt, dm as Xt, dn as Zt, dp as $t, dq as ao, dr as so, ds as eo } from "./solid-DFhsce3O.js";
2
2
  export {
3
3
  e as AgentCard,
4
4
  t as Artifact,
@@ -13,249 +13,262 @@ export {
13
13
  b as AttachmentRemove,
14
14
  g as Attachments,
15
15
  m as AudioVisualizer,
16
- u as Avatar,
17
- p as BUILTIN_CARD_COMPONENTS,
18
- T as BUILTIN_CARD_TAGS,
19
- h as Badge,
16
+ p as Avatar,
17
+ u as BUILTIN_CARD_COMPONENTS,
18
+ h as BUILTIN_CARD_TAGS,
19
+ T as Badge,
20
20
  A as BarsLoader,
21
- R as Button,
22
- S as CARD_CONTRACT_VERSION,
21
+ S as Button,
22
+ R as CARD_CONTRACT_VERSION,
23
23
  I as CARD_EVENT_NAME,
24
- E as CHOICE_CARD_TYPE,
25
- P as CONFIRM_CARD_TYPE,
26
- v as Card,
24
+ v as CHOICE_CARD_TYPE,
25
+ E as CONFIRM_CARD_TYPE,
26
+ P as Card,
27
27
  D as CardFallback,
28
- f as CardProvider,
28
+ k as CardProvider,
29
29
  x as CardRenderer,
30
- L as ChainOfThought,
31
- k as ChainOfThoughtAccordion,
30
+ f as ChainOfThought,
31
+ L as ChainOfThoughtAccordion,
32
32
  w as ChainOfThoughtContent,
33
33
  _ as ChainOfThoughtItem,
34
- M as ChainOfThoughtStep,
34
+ y as ChainOfThoughtStep,
35
35
  O as ChainOfThoughtTrigger,
36
- y as ChatConfig,
37
- B as ChatContainer,
36
+ B as ChatConfig,
37
+ M as ChatContainer,
38
38
  F as ChatContainerContent,
39
39
  H as ChatContainerRoot,
40
40
  N as ChatContainerScrollAnchor,
41
41
  z as ChatScopePicker,
42
- V as ChatThread,
43
- U as Checkpoint,
44
- G as CheckpointIcon,
45
- Y as CheckpointTrigger,
46
- K as ChoiceCard,
47
- W as CircularLoader,
48
- j as ClassicLoader,
49
- q as Coachmark,
50
- J as CodeBlock,
51
- Q as CodeBlockCode,
52
- X as CodeBlockGroup,
53
- Z as CollapsedRail,
54
- $ as Collapsible,
55
- aa as CollapsibleContent,
56
- sa as CollapsibleTrigger,
57
- ea as CommandList,
58
- ta as Composer,
59
- oa as ConfirmCard,
60
- ra as Context,
61
- na as ContextCacheUsage,
62
- ia as ContextContent,
63
- ca as ContextContentBody,
64
- da as ContextContentFooter,
65
- Ca as ContextContentHeader,
66
- la as ContextInputUsage,
67
- ba as ContextOutputUsage,
68
- ga as ContextReasoningUsage,
69
- ma as ContextTrigger,
70
- ua as ConversationItem,
71
- pa as ConversationList,
72
- Ta as DEFAULT_ARTIFACT_CARD_HEIGHT,
73
- ha as Dialog,
74
- Aa as DismissedStub,
75
- Ra as DotsLoader,
76
- Sa as Dropdown,
77
- Ia as DropdownCheckboxItem,
78
- Ea as DropdownContent,
79
- Pa as DropdownItem,
80
- va as DropdownLabel,
81
- Da as DropdownRadioItem,
82
- fa as DropdownSeparator,
83
- xa as DropdownSub,
84
- La as DropdownSubContent,
85
- ka as DropdownSubTrigger,
86
- wa as DropdownTrigger,
87
- _a as EMBED_CARD_TYPE,
88
- Ma as EditableLabel,
89
- Oa as Embed,
90
- ya as Empty,
91
- Ba as EmptyContent,
92
- Fa as EmptyDescription,
93
- Ha as EmptyHeader,
94
- Na as EmptyMedia,
95
- za as EmptyTitle,
96
- Va as FeedbackBar,
97
- Ua as FileTree,
98
- Ga as FileUpload,
99
- Ya as FileUploadContent,
100
- Ka as FileUploadTrigger,
101
- Wa as Form,
102
- ja as HoverCard,
103
- qa as HoverCardContent,
104
- Ja as HoverCardRoot,
105
- Qa as HoverCardTrigger,
106
- Xa as Image,
107
- Za as Input,
108
- $a as Kbd,
109
- as as LINK_PREVIEW_TYPE,
110
- ss as LinkPreview,
111
- es as Loader,
112
- ts as Markdown,
113
- os as Message,
114
- rs as MessageAction,
115
- ns as MessageActions,
116
- is as MessageAvatar,
117
- cs as MessageBody,
118
- ds as MessageContent,
119
- Cs as MessageCopyButton,
120
- ls as MessageSkills,
121
- bs as ModelSwitcher,
122
- gs as Nav,
123
- ms as Notice,
124
- us as OTHER_ACTION,
125
- ps as Pane,
126
- Ts as PaneGrid,
127
- hs as PaneGroup,
128
- As as Popover,
129
- Rs as ProgressBar,
130
- Ss as PromptDock,
131
- Is as PromptInput,
132
- Es as PromptInputAction,
133
- Ps as PromptInputActions,
134
- vs as PromptInputTextarea,
135
- Ds as PromptSuggestion,
136
- fs as PulseDotLoader,
137
- xs as PulseLoader,
138
- Ls as Reasoning,
139
- ks as ReasoningContent,
140
- ws as ReasoningTrigger,
141
- _s as Resizable,
142
- Ms as ResizableHandle,
143
- Os as ResizablePanel,
144
- ys as ResizablePanelGroup,
145
- Bs as ResponseCompare,
146
- Fs as ResponseStream,
147
- Hs as Screen,
148
- Ns as ScrollArea,
149
- zs as ScrollButton,
150
- Vs as Segmented,
151
- Us as Separator,
152
- Gs as SettingItem,
153
- Ys as SettingsGroup,
154
- Ks as Skeleton,
155
- Ws as Source,
156
- js as SourceContent,
157
- qs as SourceList,
158
- Js as SourceTrigger,
159
- Qs as Status,
160
- Xs as Switch,
161
- Zs as TASKS_CARD_TYPE,
162
- $s as Tabs,
163
- ae as TasksCard,
164
- se as TerminalLoader,
165
- ee as TextBlinkLoader,
166
- te as TextDotsLoader,
167
- oe as TextShimmer,
168
- re as TextShimmerLoader,
169
- ne as Textarea,
170
- ie as ThinkingBar,
171
- ce as Thread,
172
- de as Toast,
173
- Ce as ToastRegion,
174
- le as Tool,
175
- be as Tooltip,
176
- ge as TypingLoader,
177
- me as VoiceInput,
178
- ue as VoiceOutput,
179
- pe as WaveLoader,
180
- Te as applyResolution,
181
- he as buildFileTree,
182
- Ae as buildResult,
183
- Re as buildSelection,
184
- Se as buttonVariantForStyle,
185
- Ie as buttonVariants,
186
- Ee as canConfirm,
187
- Pe as clampBasis,
188
- ve as classifyTool,
189
- De as cn,
190
- fe as coerceValue,
191
- xe as configureCodeHighlighting,
192
- Le as configureEmbedAllowlist,
193
- ke as configureLinkPreview,
194
- we as configurePdfPreview,
195
- _e as configureToasts,
196
- Me as confirmReason,
197
- Oe as createKaiChat,
198
- ye as createPresence,
199
- Be as defaultActionId,
200
- Fe as defaultIsReopenable,
201
- He as dismissRecovery,
202
- Ne as emitCardEvent,
203
- ze as emptyMediaVariants,
204
- Ve as ensureToastRegion,
205
- Ue as firstEnabledIndex,
206
- Ge as getAttachmentLabel,
207
- Ye as getMediaCategory,
208
- Ke as getToasts,
209
- We as hasLinkPreviewFetcher,
210
- je as initialSelected,
211
- qe as isAnyStreaming,
212
- Je as isCodeHighlightingEnabled,
213
- Qe as isGenericOriginAllowed,
214
- Xe as isMaxReached,
215
- Ze as isPdfPreviewEnabled,
216
- $e as listenForCardEvents,
217
- at as mergeCardComponents,
218
- st as mergeCardTags,
219
- et as mountRemoteCard,
220
- tt as nextEnabledIndex,
221
- ot as normalizeActions,
222
- rt as normalizeCandidates,
223
- nt as normalizeOptions,
224
- it as normalizeSize,
225
- ct as normalizeTasks,
226
- dt as orderedKeys,
227
- Ct as parseVimeoId,
228
- lt as parseYouTubeId,
229
- bt as proseClass,
230
- gt as renderCard,
231
- mt as renderIcon,
232
- ut as resolutionFromEvent,
233
- pt as resolveEmbed,
234
- Tt as resolveLinkMetadata,
235
- ht as resolveOtherConfig,
236
- At as resolveToPx,
237
- Rt as routeCardEvent,
238
- St as selectAllState,
239
- It as selectedInOrder,
240
- Et as showSelectAll,
241
- Pt as stubIntent,
242
- vt as textClass,
243
- Dt as toast,
244
- ft as toggleableIds,
245
- xt as useAttachmentContext,
246
- Lt as useAttachmentsContext,
247
- kt as useAutoResize,
248
- wt as useCardHost,
249
- _t as useChatConfig,
250
- Mt as useChatContainer,
251
- Ot as useDismiss,
252
- yt as usePosition,
253
- Bt as usePromptInput,
254
- Ft as useResolved,
255
- Ht as useStickToBottom,
256
- Nt as useTextStream,
257
- zt as useVoiceRecorder,
258
- Vt as validateAgainstSchema,
259
- Ut as validateForm,
260
- Gt as widgetFor
42
+ G as ChatThread,
43
+ V as Checkbox,
44
+ U as CheckboxGroup,
45
+ Y as Checkpoint,
46
+ K as CheckpointIcon,
47
+ W as CheckpointTrigger,
48
+ j as ChoiceCard,
49
+ q as CircularLoader,
50
+ J as ClassicLoader,
51
+ Q as Coachmark,
52
+ X as CodeBlock,
53
+ Z as CodeBlockCode,
54
+ $ as CodeBlockGroup,
55
+ aa as CollapsedRail,
56
+ sa as Collapsible,
57
+ ea as CollapsibleContent,
58
+ ta as CollapsibleTrigger,
59
+ oa as CommandList,
60
+ ra as Composer,
61
+ na as ConfirmCard,
62
+ ia as Context,
63
+ ca as ContextCacheUsage,
64
+ da as ContextContent,
65
+ Ca as ContextContentBody,
66
+ la as ContextContentFooter,
67
+ ba as ContextContentHeader,
68
+ ga as ContextInputUsage,
69
+ ma as ContextOutputUsage,
70
+ pa as ContextReasoningUsage,
71
+ ua as ContextTrigger,
72
+ ha as ConversationItem,
73
+ Ta as ConversationList,
74
+ Aa as DEFAULT_ARTIFACT_CARD_HEIGHT,
75
+ Sa as Dialog,
76
+ Ra as DismissedStub,
77
+ Ia as Dock,
78
+ va as DockCloseGlyph,
79
+ Ea as DockLauncherGlyph,
80
+ Pa as DotsLoader,
81
+ Da as Dropdown,
82
+ ka as DropdownCheckboxItem,
83
+ xa as DropdownContent,
84
+ fa as DropdownItem,
85
+ La as DropdownLabel,
86
+ wa as DropdownRadioItem,
87
+ _a as DropdownSeparator,
88
+ ya as DropdownSub,
89
+ Oa as DropdownSubContent,
90
+ Ba as DropdownSubTrigger,
91
+ Ma as DropdownTrigger,
92
+ Fa as EMBED_CARD_TYPE,
93
+ Ha as EditableLabel,
94
+ Na as Embed,
95
+ za as Empty,
96
+ Ga as EmptyContent,
97
+ Va as EmptyDescription,
98
+ Ua as EmptyHeader,
99
+ Ya as EmptyMedia,
100
+ Ka as EmptyTitle,
101
+ Wa as FeedbackBar,
102
+ ja as FileTree,
103
+ qa as FileUpload,
104
+ Ja as FileUploadContent,
105
+ Qa as FileUploadTrigger,
106
+ Xa as Form,
107
+ Za as HoverCard,
108
+ $a as HoverCardContent,
109
+ as as HoverCardRoot,
110
+ ss as HoverCardTrigger,
111
+ es as Image,
112
+ ts as Input,
113
+ os as Kbd,
114
+ rs as LINK_PREVIEW_TYPE,
115
+ ns as LinkPreview,
116
+ is as Loader,
117
+ cs as Markdown,
118
+ ds as Message,
119
+ Cs as MessageAction,
120
+ ls as MessageActions,
121
+ bs as MessageAvatar,
122
+ gs as MessageBody,
123
+ ms as MessageContent,
124
+ ps as MessageCopyButton,
125
+ us as MessageSkills,
126
+ hs as ModelSwitcher,
127
+ Ts as Nav,
128
+ As as Notice,
129
+ Ss as OTHER_ACTION,
130
+ Rs as Pane,
131
+ Is as PaneGrid,
132
+ vs as PaneGroup,
133
+ Es as Popover,
134
+ Ps as ProgressBar,
135
+ Ds as PromptDock,
136
+ ks as PromptInput,
137
+ xs as PromptInputAction,
138
+ fs as PromptInputActions,
139
+ Ls as PromptInputTextarea,
140
+ ws as PromptSuggestion,
141
+ _s as PulseDotLoader,
142
+ ys as PulseLoader,
143
+ Os as Radio,
144
+ Bs as RadioGroup,
145
+ Ms as Reasoning,
146
+ Fs as ReasoningContent,
147
+ Hs as ReasoningTrigger,
148
+ Ns as Resizable,
149
+ zs as ResizableHandle,
150
+ Gs as ResizablePanel,
151
+ Vs as ResizablePanelGroup,
152
+ Us as ResponseCompare,
153
+ Ys as ResponseStream,
154
+ Ks as Screen,
155
+ Ws as ScrollArea,
156
+ js as ScrollButton,
157
+ qs as Segmented,
158
+ Js as Select,
159
+ Qs as Separator,
160
+ Xs as SettingItem,
161
+ Zs as SettingsGroup,
162
+ $s as Skeleton,
163
+ ae as Slider,
164
+ se as SlottedConversationItem,
165
+ ee as Source,
166
+ te as SourceContent,
167
+ oe as SourceList,
168
+ re as SourceTrigger,
169
+ ne as Status,
170
+ ie as Switch,
171
+ ce as TASKS_CARD_TYPE,
172
+ de as Tabs,
173
+ Ce as TasksCard,
174
+ le as TerminalLoader,
175
+ be as TextBlinkLoader,
176
+ ge as TextDotsLoader,
177
+ me as TextShimmer,
178
+ pe as TextShimmerLoader,
179
+ ue as Textarea,
180
+ he as ThinkingBar,
181
+ Te as Thread,
182
+ Ae as Toast,
183
+ Se as ToastRegion,
184
+ Re as Tool,
185
+ Ie as Tooltip,
186
+ ve as TypingLoader,
187
+ Ee as VoiceInput,
188
+ Pe as VoiceOutput,
189
+ De as WaveLoader,
190
+ ke as WorkspaceShell,
191
+ xe as applyResolution,
192
+ fe as buildFileTree,
193
+ Le as buildResult,
194
+ we as buildSelection,
195
+ _e as buttonVariantForStyle,
196
+ ye as buttonVariants,
197
+ Oe as canConfirm,
198
+ Be as clampBasis,
199
+ Me as classifyTool,
200
+ Fe as cn,
201
+ He as coerceValue,
202
+ Ne as configureCodeHighlighting,
203
+ ze as configureEmbedAllowlist,
204
+ Ge as configureLinkPreview,
205
+ Ve as configurePdfPreview,
206
+ Ue as configureToasts,
207
+ Ye as confirmReason,
208
+ Ke as createConversationItemsController,
209
+ We as createKaiChat,
210
+ je as createPresence,
211
+ qe as defaultActionId,
212
+ Je as defaultIsReopenable,
213
+ Qe as dismissRecovery,
214
+ Xe as emitCardEvent,
215
+ Ze as emptyMediaVariants,
216
+ $e as ensureToastRegion,
217
+ at as firstEnabledIndex,
218
+ st as getAttachmentLabel,
219
+ et as getMediaCategory,
220
+ tt as getToasts,
221
+ ot as hasLinkPreviewFetcher,
222
+ rt as initialSelected,
223
+ nt as isAnyStreaming,
224
+ it as isCodeHighlightingEnabled,
225
+ ct as isGenericOriginAllowed,
226
+ dt as isMaxReached,
227
+ Ct as isPdfPreviewEnabled,
228
+ lt as listenForCardEvents,
229
+ bt as mergeCardComponents,
230
+ gt as mergeCardTags,
231
+ mt as mountRemoteCard,
232
+ pt as nextEnabledIndex,
233
+ ut as normalizeActions,
234
+ ht as normalizeCandidates,
235
+ Tt as normalizeOptions,
236
+ At as normalizeSize,
237
+ St as normalizeTasks,
238
+ Rt as orderedKeys,
239
+ It as parseVimeoId,
240
+ vt as parseYouTubeId,
241
+ Et as proseClass,
242
+ Pt as readConversationItemId,
243
+ Dt as renderCard,
244
+ kt as renderIcon,
245
+ xt as resolutionFromEvent,
246
+ ft as resolveEmbed,
247
+ Lt as resolveLinkMetadata,
248
+ wt as resolveOtherConfig,
249
+ _t as resolveToPx,
250
+ yt as routeCardEvent,
251
+ Ot as selectAllState,
252
+ Bt as selectedInOrder,
253
+ Mt as showSelectAll,
254
+ Ft as stubIntent,
255
+ Ht as textClass,
256
+ Nt as toast,
257
+ zt as toggleableIds,
258
+ Gt as useAttachmentContext,
259
+ Vt as useAttachmentsContext,
260
+ Ut as useAutoResize,
261
+ Yt as useCardHost,
262
+ Kt as useChatConfig,
263
+ Wt as useChatContainer,
264
+ jt as useDismiss,
265
+ qt as usePosition,
266
+ Jt as usePromptInput,
267
+ Qt as useResolved,
268
+ Xt as useStickToBottom,
269
+ Zt as useTextStream,
270
+ $t as useVoiceRecorder,
271
+ ao as validateAgainstSchema,
272
+ so as validateForm,
273
+ eo as widgetFor
261
274
  };
@@ -0,0 +1 @@
1
+ import{i,a as c,d as u,b as m,c as a,S as d,m as w,t as l,B as x,G as b}from"./define-CGGX-7Vg.js";import{c as f}from"./cn-DN5AWfiS.js";import{H as S,a as y,b as z}from"./hover-card-DaeiYrTA.js";import{i as C}from"./link-preview-DNILK391.js";var _=l('<img alt=favicon width=14 height=14 class="size-3.5 rounded-full">'),k=l('<a target=_blank rel="noopener noreferrer"><span class="truncate tabular-nums text-center font-normal">'),R=l('<div class="flex items-center gap-1.5"><img alt=favicon class="size-4 rounded-full"width=16 height=16><div class="text-foreground/80 truncate text-sm">'),U=l('<div class="line-clamp-2 text-sm font-medium">'),$=l('<div class="text-muted-foreground line-clamp-2 text-sm">'),B=l('<a target=_blank rel="noopener noreferrer"class="flex flex-col gap-2 p-3">'),D=l("<div>");const v=x();function p(){const r=b(v);if(!r)throw new Error("Source.* must be used inside <Source>");return r}function F(r){const t=()=>r.href??"",n=()=>C(t())?t():"",e=()=>{const o=t();if(!o)return"";try{return new URL(o).hostname||o}catch{return o.split("/").pop()||o}};return a(v.Provider,{value:{get href(){return n()},get domain(){return e()}},get children(){return a(S,{openDelay:150,get children(){return r.children}})}})}function G(r){const t=p(),n=()=>r.label??t.domain.replace("www.","");return a(y,{get children(){var e=k(),o=e.firstChild;return i(e,a(d,{get when(){return w(()=>!!r.showFavicon)()&&t.href},get children(){var s=_();return c(()=>u(s,"src",`https://www.google.com/s2/favicons?sz=64&domain_url=${encodeURIComponent(t.href)}`)),s}}),o),i(o,n),c(s=>{var h=t.href||void 0,g=f("bg-muted text-foreground/80 hover:bg-muted-foreground/30 hover:text-primary focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-1 focus-visible:ring-offset-background inline-flex h-5 max-w-32 items-center gap-1 overflow-hidden rounded-full py-0 text-xs no-underline transition-colors duration-150",r.showFavicon?"pr-2 pl-1":"px-2",r.class);return h!==s.e&&u(e,"href",s.e=h),g!==s.t&&m(e,s.t=g),s},{e:void 0,t:void 0}),e}})}function H(r){const t=p();return a(z,{get class(){return f("w-80 p-0 shadow-xs",r.class)},get children(){var n=B();return i(n,a(d,{get when(){return t.href},get children(){var e=R(),o=e.firstChild,s=o.nextSibling;return i(s,()=>t.domain.replace("www.","")),c(()=>u(o,"src",`https://www.google.com/s2/favicons?sz=64&domain_url=${encodeURIComponent(t.href)}`)),e}}),null),i(n,a(d,{get when(){return r.title},get children(){var e=U();return i(e,()=>r.title),e}}),null),i(n,a(d,{get when(){return r.description},get children(){var e=$();return i(e,()=>r.description),e}}),null),c(()=>u(n,"href",t.href||void 0)),n}})}function I(r){return(()=>{var t=D();return i(t,()=>r.children),c(n=>{var e=r.part,o=f("flex flex-wrap gap-1.5 mt-3",r.class);return e!==n.e&&u(t,"part",n.e=e),o!==n.t&&m(t,n.t=o),n},{e:void 0,t:void 0}),t})()}export{I as S,F as a,G as b,H as c};
@@ -0,0 +1 @@
1
+ import{I as r}from"./Icon-BnFKqqtY.js";import{c as a,q as p}from"./define-CGGX-7Vg.js";var s=[["polygon",{points:"12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2",key:"8f66p6"}]],t=o=>a(r,p(o,{name:"Star",iconNode:s})),e=t;export{e as s};
@@ -4,8 +4,12 @@ export { createAssistantStream, onStreamSettled } from './stream.js';
4
4
  export type { SetMessages, AssistantStream } from './stream.js';
5
5
  export { appendTextPart, appendReasoningPart, upsertToolPart, upsertCardPart, fingerprint } from './parts.js';
6
6
  export type { ReasoningOpts } from './parts.js';
7
+ export { updateThreadMessages, bindThreadMessages, createThreadSessions } from './threads.js';
8
+ export type { ThreadLike, SetThreads, BindThreadOptions, ThreadSessions } from './threads.js';
9
+ export { parseStoredThread, createSaveScheduler } from './persistence.js';
10
+ export type { ParsedThread, DroppedStored, SaveScheduler, SaveSchedulerOptions } from './persistence.js';
7
11
  export { createMockResponder, DEFAULT_MOCK_REPLIES, MOCK_BANNER, MOCK_MARKER, MOCK_MARKER_KEY, MOCK_MODEL_ID } from './mock.js';
8
- export type { MockResponder, MockResponderOptions } from './mock.js';
12
+ export type { MockReply, MockResponder, MockResponderOptions, MockToolCall, MockTurn } from './mock.js';
9
13
  export type { ChatMessage, ChatMessageAction, CustomAction, AvatarData, FeedbackVote, MessagePart, MessageSource, RawOrigin, } from '../elements/chat-types.js';
10
14
  export type { ToolPart } from '../components/tool-types.js';
11
15
  export type { ToolKind } from '../components/tool-classify.js';
@@ -11,9 +11,39 @@ export declare const MOCK_BANNER = ": kai-mock \u2014 NO PROVIDER WAS CONTACTED.
11
11
  /** The default canned replies, cycled per turn so a multi-turn preview stays
12
12
  * coherent instead of repeating one line forever. */
13
13
  export declare const DEFAULT_MOCK_REPLIES: readonly string[];
14
+ /** One scripted tool call for a mock turn. Framed exactly the way the OpenAI
15
+ * chat-completions wire frames a real one — an announce fragment carrying
16
+ * `id`/`function.name`, then the argument JSON streamed in fragments — so the
17
+ * kit's own reader (`readOpenAIStream`) reassembles it through the same path a
18
+ * real provider's call takes. */
19
+ export interface MockToolCall {
20
+ /** The tool name, e.g. `'get_weather'` or a card tool like `'kai_confirm'`. */
21
+ name: string;
22
+ /** The call's arguments. Serialized with `JSON.stringify` and streamed as
23
+ * fragments, like a real provider. Defaults to `{}`. */
24
+ arguments?: unknown;
25
+ /** Explicit tool-call id. Defaults to `call_kai-mock-<turn>-<n>`, which keeps
26
+ * the mock's naming tell (see tell 3): no provider issues ids in that shape. */
27
+ id?: string;
28
+ }
29
+ /** A scripted mock turn: optional text, then optional tool calls. A turn with
30
+ * tool calls finishes `finish_reason: 'tool_calls'`, exactly as a real
31
+ * tool-calling turn does; a turn without them finishes `'stop'`. */
32
+ export interface MockTurn {
33
+ /** Text streamed (token by token) before the tool calls. */
34
+ text?: string;
35
+ /** Tool calls announced this turn, in order. */
36
+ toolCalls?: readonly MockToolCall[];
37
+ }
38
+ /** A canned reply: plain text, or a scripted turn. A string is exactly
39
+ * `{ text }` — the pre-tool-call API unchanged. */
40
+ export type MockReply = string | MockTurn;
14
41
  export interface MockResponderOptions {
15
- /** Canned replies, cycled one per turn. Defaults to `DEFAULT_MOCK_REPLIES`. */
16
- replies?: readonly string[];
42
+ /** Canned replies, cycled one per turn. Plain strings stream as text; a
43
+ * `MockTurn` can also script tool calls (`{ text, toolCalls }`), which is
44
+ * what lets the zero-config mock exercise the kit's tool/card path without
45
+ * hand-rolled SSE framing. Defaults to `DEFAULT_MOCK_REPLIES`. */
46
+ replies?: readonly MockReply[];
17
47
  /** Delay between chunks, in ms. Defaults to 24 — fast enough to feel alive,
18
48
  * slow enough that the streaming is visible. `0` streams as fast as the
19
49
  * event loop allows, which is what tests want. */
@@ -0,0 +1,51 @@
1
+ import { ChatMessage } from '../elements/chat-types.js';
2
+ /** One record the parse refused, and why. Deciding loudly is the caller's
3
+ * verb (warn, reject the whole record, count it); this is the information
4
+ * that a quiet version would withhold. */
5
+ export interface DroppedStored {
6
+ at: 'thread' | 'message' | 'part';
7
+ reason: string;
8
+ value: unknown;
9
+ }
10
+ export interface ParsedThread {
11
+ messages: ChatMessage[];
12
+ /** Empty on a clean parse. Never silently shorter output than input. */
13
+ dropped: DroppedStored[];
14
+ }
15
+ /**
16
+ * Validate a stored thread — the JSON-parsed value of one thread's messages
17
+ * array — back into `ChatMessage[]`. Never throws: unreadable records are
18
+ * DROPPED and reported in `dropped`, so a truncated write loses one record,
19
+ * not every conversation. What to DO about a drop (warn, discard the whole
20
+ * record, telemetry) is the caller's policy.
21
+ */
22
+ export declare function parseStoredThread(value: unknown): ParsedThread;
23
+ export interface SaveSchedulerOptions {
24
+ /** The quiet period before a scheduled snapshot is written. This is policy
25
+ * and therefore REQUIRED — the kit ships no default debounce. */
26
+ delayMs: number;
27
+ /** The scheduler the seam runs on. Defaults to the global timers; inject
28
+ * your own for tests or a non-timer scheduler. */
29
+ setTimeout?: (fn: () => void, ms: number) => unknown;
30
+ clearTimeout?: (handle: unknown) => void;
31
+ }
32
+ export interface SaveScheduler<T> {
33
+ /** Remember `snapshot` as the latest state and (re)start the quiet-period
34
+ * timer. Call it on every state change; only the last snapshot inside the
35
+ * quiet period is written. */
36
+ schedule(snapshot: T): void;
37
+ /** Write the pending snapshot NOW and disarm the timer — the
38
+ * `beforeunload`/`visibilitychange` story, so a tab closed mid-stream still
39
+ * persists. No-op when nothing is pending: the last write already happened. */
40
+ flush(): void;
41
+ /** Drop the pending write unsaved (e.g. unmount-without-persist). */
42
+ cancel(): void;
43
+ pending(): boolean;
44
+ }
45
+ /**
46
+ * The debounce/flush seam: a streaming reply lands a state update per token,
47
+ * and without this shape so would the consumer's storage backend. The kit owns
48
+ * only the timer dance; `save` (WHAT and WHERE, including its own try/catch
49
+ * policy for quota errors) and `delayMs` (HOW LONG) are the consumer's.
50
+ */
51
+ export declare function createSaveScheduler<T>(save: (snapshot: T) => void, opts: SaveSchedulerOptions): SaveScheduler<T>;