@kitn.ai/ui 0.20.0 → 0.21.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 (500) hide show
  1. package/README.md +44 -45
  2. package/dist/components/artifact-card.d.ts +51 -0
  3. package/dist/components/artifact.d.ts +1 -1
  4. package/dist/components/attachments.d.ts +2 -2
  5. package/dist/components/audio-visualizer/index.d.ts +3 -3
  6. package/dist/components/audio-visualizer/labs/lab-choreography.d.ts +59 -0
  7. package/dist/components/audio-visualizer/labs/lab-shaders.d.ts +22 -0
  8. package/dist/components/audio-visualizer/labs/lab-visualizer.d.ts +18 -0
  9. package/dist/components/audio-visualizer/variant-aurora.d.ts +2 -2
  10. package/dist/components/audio-visualizer/variant-bar.d.ts +2 -2
  11. package/dist/components/audio-visualizer/variant-custom.d.ts +2 -2
  12. package/dist/components/audio-visualizer/variant-grid.d.ts +1 -1
  13. package/dist/components/audio-visualizer/variant-radial.d.ts +1 -1
  14. package/dist/components/audio-visualizer/variant-wave.d.ts +1 -1
  15. package/dist/components/card-fallback.d.ts +12 -2
  16. package/dist/components/card-renderer.d.ts +63 -2
  17. package/dist/components/chat-container.d.ts +3 -0
  18. package/dist/components/chat-scope-picker.d.ts +2 -2
  19. package/dist/components/chat-thread.d.ts +68 -18
  20. package/dist/components/choice-card.d.ts +3 -28
  21. package/dist/components/composer-dom.d.ts +1 -1
  22. package/dist/components/composer-highlight.d.ts +1 -1
  23. package/dist/components/composer-history.d.ts +1 -1
  24. package/dist/components/composer.d.ts +1 -1
  25. package/dist/components/confirm-card.d.ts +3 -18
  26. package/dist/components/context.d.ts +8 -4
  27. package/dist/components/conversation-item.d.ts +1 -1
  28. package/dist/components/conversation-list.d.ts +4 -3
  29. package/dist/components/embed.d.ts +3 -3
  30. package/dist/components/file-tree.d.ts +11 -22
  31. package/dist/components/form-widgets.d.ts +1 -1
  32. package/dist/components/form.d.ts +3 -44
  33. package/dist/components/link-preview.d.ts +3 -3
  34. package/dist/components/loader.d.ts +30 -48
  35. package/dist/components/message-skills.d.ts +4 -0
  36. package/dist/components/message.d.ts +84 -21
  37. package/dist/components/model-switcher.d.ts +2 -2
  38. package/dist/components/prompt-input.d.ts +2 -2
  39. package/dist/components/response-compare-types.d.ts +11 -2
  40. package/dist/components/response-compare.d.ts +3 -3
  41. package/dist/components/source.d.ts +12 -3
  42. package/dist/components/tasks-card.d.ts +3 -31
  43. package/dist/components/thread.d.ts +17 -5
  44. package/dist/components/toast.d.ts +2 -2
  45. package/dist/components/tool-classify.d.ts +8 -0
  46. package/dist/components/tool-types.d.ts +29 -1
  47. package/dist/components/tool.d.ts +3 -3
  48. package/dist/components/use-card-resolution.d.ts +1 -1
  49. package/dist/create-tween-D3Y5qiij.js +338 -0
  50. package/dist/create-tween-DGKY1FDY.js +341 -0
  51. package/dist/create-tween-paho5Rh-.js +7 -0
  52. package/dist/custom-elements.json +1681 -454
  53. package/dist/elements/agent-card.js +1 -1
  54. package/dist/elements/artifact.js +1 -1
  55. package/dist/elements/attachments.js +1 -1
  56. package/dist/elements/audio-visualizer.js +1 -1
  57. package/dist/elements/avatar.js +1 -1
  58. package/dist/elements/badge.js +1 -1
  59. package/dist/elements/button.js +1 -1
  60. package/dist/elements/card.js +1 -1
  61. package/dist/elements/cards.js +1 -1
  62. package/dist/elements/chain-of-thought.js +1 -1
  63. package/dist/elements/chat-scope-picker.js +1 -1
  64. package/dist/elements/chat-types.d.ts +70 -10
  65. package/dist/elements/chat-workspace.js +1 -1
  66. package/dist/elements/chat.js +1 -1
  67. package/dist/elements/checkpoint.js +1 -1
  68. package/dist/elements/choice.js +1 -1
  69. package/dist/elements/chunks/{Icon-Tj58ES_d.js → Icon-C-2LvGDG.js} +1 -1
  70. package/dist/elements/chunks/{action-icons-ns1Fnedj.js → action-icons-CaYoImEk.js} +1 -1
  71. package/dist/elements/chunks/arrow-left-Bb46H7w9.js +1 -0
  72. package/dist/elements/chunks/artifact-BBIscOxJ.js +1 -0
  73. package/dist/elements/chunks/{attachments-mCB5F1Fq.js → attachments-BB56zoji.js} +1 -1
  74. package/dist/elements/chunks/audio-visualizer-BxOx4THz.js +1 -0
  75. package/dist/elements/chunks/{badge-B4Zuajl2.js → badge-SxLSZ19R.js} +1 -1
  76. package/dist/elements/chunks/{button-ZWNif3--.js → button-CmkUkz6c.js} +1 -1
  77. package/dist/elements/chunks/card-renderer-Db4ffkWv.js +1 -0
  78. package/dist/elements/chunks/card-tags-D8lZ-C_U.js +1 -0
  79. package/dist/elements/chunks/chat-thread-B3Ks-cKr.js +1 -0
  80. package/dist/elements/chunks/check-C8desc_h.js +1 -0
  81. package/dist/elements/chunks/chevron-down-DKtc2HNB.js +1 -0
  82. package/dist/elements/chunks/chevron-right-Dw4GPhwL.js +1 -0
  83. package/dist/elements/chunks/choice-card-Q9cYYDyM.js +1 -0
  84. package/dist/elements/chunks/circle-BeokBsvB.js +1 -0
  85. package/dist/elements/chunks/circle-check-wJSqt859.js +1 -0
  86. package/dist/elements/chunks/{circle-x-B7faJFlY.js → circle-x-D0MEfxOM.js} +1 -1
  87. package/dist/elements/chunks/code-block-C8VzAraE.js +1 -0
  88. package/dist/elements/chunks/{collapsible-DM1Ckd4e.js → collapsible-Cvj61obE.js} +1 -1
  89. package/dist/elements/chunks/{composer-BguS0QL_.js → composer-D86ztyL0.js} +2 -2
  90. package/dist/elements/chunks/confirm-card-BdyDAGLw.js +1 -0
  91. package/dist/elements/chunks/context-WHDl-xSx.js +1 -0
  92. package/dist/elements/chunks/conversation-list-CdR14_Y4.js +1 -0
  93. package/dist/elements/chunks/create-tween-C_A_B638.js +7 -0
  94. package/dist/elements/chunks/{default-input-Cqqilg9t.js → default-input-CSZqUM81.js} +1 -1
  95. package/dist/elements/chunks/define-BzPnNsXg.js +1 -0
  96. package/dist/elements/chunks/{disclosure-CIZ5c8nO.js → disclosure-DVKsoc1F.js} +1 -1
  97. package/dist/elements/chunks/{download-Dsbg3ste.js → download-BjA54IMJ.js} +1 -1
  98. package/dist/elements/chunks/{dropdown-BDd1-Zgi.js → dropdown-BjVVHWXH.js} +1 -1
  99. package/dist/elements/chunks/{ellipsis-Dw6qrss-.js → ellipsis-BNedmqfi.js} +1 -1
  100. package/dist/elements/chunks/embed-DQsl4XEq.js +1 -0
  101. package/dist/elements/chunks/{external-link-Vt74zAoL.js → external-link-Di-dw2CU.js} +1 -1
  102. package/dist/elements/chunks/{file-text-CZrZF6_v.js → file-text-B3sAODCV.js} +1 -1
  103. package/dist/elements/chunks/{file-tree-DF4okKyo.js → file-tree-Dgto-bMn.js} +1 -1
  104. package/dist/elements/chunks/{folder-glP5rha4.js → folder-D6rMadFV.js} +1 -1
  105. package/dist/elements/chunks/form-CILxvhQ7.js +1 -0
  106. package/dist/elements/chunks/hover-card-BtiF4XiU.js +1 -0
  107. package/dist/elements/chunks/{icon-BLb8beoi.js → icon-DKkmze3y.js} +1 -1
  108. package/dist/elements/chunks/{info-CIsv92JK.js → info-CWRjZkuy.js} +1 -1
  109. package/dist/elements/chunks/{input-Dds1kFyt.js → input--QJBK6BA.js} +1 -1
  110. package/dist/elements/chunks/{kbd-De_xbgi9.js → kbd-C3zuKh8R.js} +1 -1
  111. package/dist/elements/chunks/{link-i4r_k7z4.js → link-BL5JA7Q0.js} +1 -1
  112. package/dist/elements/chunks/link-preview-CU37bbXh.js +1 -0
  113. package/dist/elements/chunks/{loader-BmQH4s3V.js → loader-XmpyxyRH.js} +1 -1
  114. package/dist/elements/chunks/{markdown-Zi21WhUz.js → markdown-3Gv5UZ_o.js} +1 -1
  115. package/dist/elements/chunks/message-CnBA2OUt.js +1 -0
  116. package/dist/elements/chunks/message-X5NZbq-W.js +1 -0
  117. package/dist/elements/chunks/message-square-CnpAm_P0.js +1 -0
  118. package/dist/elements/chunks/{minimize-2--ifeCGrl.js → minimize-2-DwyrUTcM.js} +1 -1
  119. package/dist/elements/chunks/{model-switcher-B94YAKsM.js → model-switcher-CclaJEHt.js} +1 -1
  120. package/dist/elements/chunks/{overlay-kD8dwRv_.js → overlay-Cepd-KcS.js} +1 -1
  121. package/dist/elements/chunks/{paperclip-q21dYOSK.js → paperclip-CdwKjrlu.js} +1 -1
  122. package/dist/elements/chunks/{progress-bar-BrAIIaaJ.js → progress-bar-DMVXBD3b.js} +1 -1
  123. package/dist/elements/chunks/{prompt-suggestion-Bjn2K-fR.js → prompt-suggestion-Di_WZE_5.js} +1 -1
  124. package/dist/elements/chunks/reasoning-D0jMch5u.js +1 -0
  125. package/dist/elements/chunks/{resizable-Dp4JExql.js → resizable-1znbL1Gv.js} +1 -1
  126. package/dist/elements/chunks/{rotate-cw-CFWWkpj2.js → rotate-cw-DVhhgx8n.js} +1 -1
  127. package/dist/elements/chunks/{scroll-area-Bb0kHH1j.js → scroll-area-Bs4bFS1P.js} +1 -1
  128. package/dist/elements/chunks/scroll-button-Bet5NLc4.js +1 -0
  129. package/dist/elements/chunks/{separator-9kRgr1X9.js → separator-C5Gh8qGC.js} +1 -1
  130. package/dist/elements/chunks/{settings-B8lmec4D.js → settings-5vmEFg0K.js} +1 -1
  131. package/dist/elements/chunks/{settings-group-I0hEuXiN.js → settings-group-BWLB38kz.js} +1 -1
  132. package/dist/elements/chunks/{share-C3lTiYGt.js → share-BZ3G_DaB.js} +1 -1
  133. package/dist/elements/chunks/skeleton-DafPJQTp.js +1 -0
  134. package/dist/elements/chunks/slots-CIw9RlAe.js +1 -0
  135. package/dist/elements/chunks/source-D_qj_6uJ.js +1 -0
  136. package/dist/elements/chunks/{star-CSJtGxgv.js → star-Cuv7j2IE.js} +1 -1
  137. package/dist/elements/chunks/{store-CHyW95TP.js → store-C1StPHfW.js} +1 -1
  138. package/dist/elements/chunks/tasks-card-EyoBZfpA.js +1 -0
  139. package/dist/elements/chunks/{text-shimmer-Cn9TmNpI.js → text-shimmer-D9gRSh34.js} +1 -1
  140. package/dist/elements/chunks/textarea-DuhtHfcm.js +1 -0
  141. package/dist/elements/chunks/{thumbs-up-PNVVThEF.js → thumbs-up-B9hwv43w.js} +1 -1
  142. package/dist/elements/chunks/{toast-store-DKbQn3Wn.js → toast-store-Bm3DUEDe.js} +1 -1
  143. package/dist/elements/chunks/{tool-DjTRpIpl.js → tool-CDtW7L0z.js} +1 -1
  144. package/dist/elements/chunks/tooltip-eB226mGK.js +1 -0
  145. package/dist/elements/chunks/{triangle-alert-DsHTHCPm.js → triangle-alert-C1SNzTqK.js} +1 -1
  146. package/dist/elements/chunks/use-card-resolution-YZh2MvI5.js +1 -0
  147. package/dist/elements/chunks/{variant-aurora-Dc4nQUia.js → variant-aurora-Cj1F7D0l.js} +2 -2
  148. package/dist/elements/chunks/{variant-custom-y_3kVQhS.js → variant-custom-T9gpt7QE.js} +1 -1
  149. package/dist/elements/chunks/{variant-wave-D5OR1-9Z.js → variant-wave-CxU9z-TE.js} +2 -2
  150. package/dist/elements/chunks/{video-B7vmenoC.js → video-CK4R7Rus.js} +1 -1
  151. package/dist/elements/chunks/x-D1qx0aLd.js +1 -0
  152. package/dist/elements/coachmark.js +1 -1
  153. package/dist/elements/code-block.js +1 -1
  154. package/dist/elements/command.js +1 -1
  155. package/dist/elements/compare.js +1 -1
  156. package/dist/elements/composer.js +1 -1
  157. package/dist/elements/confirm-card.js +1 -1
  158. package/dist/elements/context-meter.js +1 -1
  159. package/dist/elements/conversation-list.js +1 -1
  160. package/dist/elements/default-input.d.ts +7 -7
  161. package/dist/elements/define.d.ts +1 -0
  162. package/dist/elements/dialog.js +1 -1
  163. package/dist/elements/disclosure.d.ts +1 -1
  164. package/dist/elements/editable-label.js +1 -1
  165. package/dist/elements/element-data-types.d.ts +107 -0
  166. package/dist/elements/embed.js +1 -1
  167. package/dist/elements/empty.js +1 -1
  168. package/dist/elements/feedback-bar.js +1 -1
  169. package/dist/elements/file-tree.js +1 -1
  170. package/dist/elements/file-upload.js +1 -1
  171. package/dist/elements/form.js +1 -1
  172. package/dist/elements/hover-card.js +1 -1
  173. package/dist/elements/icon.js +1 -1
  174. package/dist/elements/image.js +1 -1
  175. package/dist/elements/input.js +1 -1
  176. package/dist/elements/kbd.js +1 -1
  177. package/dist/elements/link-preview.js +1 -1
  178. package/dist/elements/loader.js +1 -1
  179. package/dist/elements/markdown.js +1 -1
  180. package/dist/elements/menu.js +1 -1
  181. package/dist/elements/message-skills.js +1 -1
  182. package/dist/elements/message.js +1 -1
  183. package/dist/elements/model-switcher.js +1 -1
  184. package/dist/elements/nav.js +1 -1
  185. package/dist/elements/notice.js +1 -1
  186. package/dist/elements/pane-group.js +1 -1
  187. package/dist/elements/pane.js +1 -1
  188. package/dist/elements/popover.js +1 -1
  189. package/dist/elements/progress-bar.js +1 -1
  190. package/dist/elements/prompt-dock.js +1 -1
  191. package/dist/elements/prompt-input.js +1 -1
  192. package/dist/elements/prompt-suggestions.js +1 -1
  193. package/dist/elements/reasoning.js +1 -1
  194. package/dist/elements/register.d.ts +8 -6
  195. package/dist/elements/remote.js +1 -1
  196. package/dist/elements/resizable.js +1 -1
  197. package/dist/elements/response-stream.js +2 -2
  198. package/dist/elements/screen.js +1 -1
  199. package/dist/elements/scroll-area.js +1 -1
  200. package/dist/elements/scroll-button.js +1 -1
  201. package/dist/elements/search.js +1 -1
  202. package/dist/elements/segmented.js +1 -1
  203. package/dist/elements/separator.js +1 -1
  204. package/dist/elements/setting-item.js +1 -1
  205. package/dist/elements/settings-group.js +1 -1
  206. package/dist/elements/skeleton.js +1 -1
  207. package/dist/elements/slots.d.ts +16 -0
  208. package/dist/elements/source.js +1 -1
  209. package/dist/elements/status.js +1 -1
  210. package/dist/elements/switch.js +1 -1
  211. package/dist/elements/tabs.js +1 -1
  212. package/dist/elements/tasks.js +1 -1
  213. package/dist/elements/text-shimmer.js +1 -1
  214. package/dist/elements/thinking-bar.js +1 -1
  215. package/dist/elements/thread.js +1 -1
  216. package/dist/elements/toast.js +1 -1
  217. package/dist/elements/tool.js +1 -1
  218. package/dist/elements/tooltip.js +1 -1
  219. package/dist/elements/validate-messages.d.ts +25 -0
  220. package/dist/elements/voice-input.js +1 -1
  221. package/dist/elements/voice-output.js +1 -1
  222. package/dist/elements.d.ts +2725 -214
  223. package/dist/index.d.ts +163 -125
  224. package/dist/index.js +6336 -5802
  225. package/dist/index.server.d.ts +5 -0
  226. package/dist/index.server.js +16913 -0
  227. package/dist/kai-provider.es.d.ts +5 -0
  228. package/dist/kai-provider.es.js +79 -77
  229. package/dist/kai.es.d.ts +5 -0
  230. package/dist/kai.es.js +1 -1
  231. package/dist/llms/llms-full.txt +762 -148
  232. package/dist/llms/llms.txt +57 -5
  233. package/dist/mcp.es.js +4010 -770
  234. package/dist/primitives/card-component-types.d.ts +11 -0
  235. package/dist/primitives/card-data-types.d.ts +196 -0
  236. package/dist/primitives/card-host.d.ts +1 -1
  237. package/dist/primitives/card-recovery.d.ts +3 -3
  238. package/dist/primitives/card-registry.d.ts +4 -14
  239. package/dist/primitives/card-resolution.d.ts +1 -1
  240. package/dist/primitives/card-routing.d.ts +1 -1
  241. package/dist/primitives/card-tags.d.ts +11 -0
  242. package/dist/primitives/card-validate-cards.d.ts +57 -0
  243. package/dist/primitives/card-validate-generator.testlib.d.ts +20 -0
  244. package/dist/primitives/card-validate-schemas.d.ts +17 -0
  245. package/dist/primitives/card-validate.d.ts +24 -0
  246. package/dist/primitives/create-kai-chat.d.ts +3 -3
  247. package/dist/primitives/embed-providers.d.ts +1 -1
  248. package/dist/primitives/link-preview.d.ts +1 -1
  249. package/dist/primitives/message-feedback.d.ts +2 -2
  250. package/dist/primitives/toast-store.d.ts +1 -1
  251. package/dist/react/index.d.ts +717 -299
  252. package/dist/react/use-kai-chat.d.ts +8 -4
  253. package/dist/react.d.ts +5 -0
  254. package/dist/react.js +417 -316
  255. package/dist/register-impl-bzrZ44ft.js +145 -0
  256. package/dist/remote/host-embed.d.ts +1 -1
  257. package/dist/remote/index.d.ts +2 -2
  258. package/dist/remote/provider-runtime.d.ts +2 -2
  259. package/dist/remote/provider.d.ts +2 -2
  260. package/dist/remote/validate.d.ts +1 -1
  261. package/dist/remote/wire.d.ts +1 -1
  262. package/dist/schemas/artifact.schema.json +92 -0
  263. package/dist/schemas/embed.schema.json +0 -2
  264. package/dist/schemas/from-tool-call.d.ts +48 -0
  265. package/dist/schemas/index.d.ts +48 -0
  266. package/dist/schemas/link.schema.json +0 -2
  267. package/dist/schemas/provider-subsets.d.ts +136 -0
  268. package/dist/schemas/registry.d.ts +140 -0
  269. package/dist/schemas/tool-defs.d.ts +121 -0
  270. package/dist/schemas.d.ts +5 -0
  271. package/dist/schemas.js +717 -0
  272. package/dist/solid-BCJUQqwS.js +22750 -0
  273. package/dist/solid-BdENBcEq.js +20108 -0
  274. package/dist/solid.d.ts +66 -0
  275. package/dist/solid.js +261 -0
  276. package/dist/solid.server.d.ts +5 -0
  277. package/dist/solid.server.js +261 -0
  278. package/dist/state/index.d.ts +14 -4
  279. package/dist/state/messages.d.ts +8 -3
  280. package/dist/state/mock.d.ts +46 -0
  281. package/dist/state/parts.d.ts +85 -0
  282. package/dist/state/stream.d.ts +15 -9
  283. package/dist/state.d.ts +5 -0
  284. package/dist/state.js +253 -84
  285. package/dist/ui/action-icons.d.ts +1 -1
  286. package/dist/ui/collapsible.d.ts +11 -6
  287. package/dist/ui/dropdown.d.ts +47 -42
  288. package/dist/ui/pane-group.d.ts +1 -1
  289. package/dist/variant-aurora-1wMcXRUS.js +381 -0
  290. package/dist/variant-aurora-BKHHiOgL.js +391 -0
  291. package/dist/{variant-aurora-DVtGqVH6.js → variant-aurora-DOb_o4pC.js} +1 -1
  292. package/dist/{variant-custom-Dif-IV4u.js → variant-custom-CJGB0Kbw.js} +1 -1
  293. package/dist/variant-custom-Co0CkXJF.js +200 -0
  294. package/dist/variant-custom-DWSSgmd2.js +170 -0
  295. package/dist/variant-wave-C3-45cL6.js +218 -0
  296. package/dist/{variant-wave-DbfNdvSi.js → variant-wave-CEODq-9q.js} +1 -1
  297. package/dist/variant-wave-jdXBnCUZ.js +208 -0
  298. package/dist/wire/chunk.d.ts +171 -0
  299. package/dist/wire/consume.d.ts +26 -0
  300. package/dist/wire/encode.d.ts +148 -0
  301. package/dist/wire/formats/anthropic.d.ts +2 -0
  302. package/dist/wire/formats/openai.d.ts +5 -0
  303. package/dist/wire/index.d.ts +14 -0
  304. package/dist/wire/read.d.ts +26 -0
  305. package/dist/wire/sink-helpers.d.ts +21 -0
  306. package/dist/wire/sse.d.ts +33 -0
  307. package/dist/wire.d.ts +5 -53
  308. package/dist/wire.js +898 -0
  309. package/frameworks/react/index.tsx +183 -154
  310. package/frameworks/react/runtime.tsx +21 -1
  311. package/frameworks/react/use-kai-chat.tsx +11 -1
  312. package/llms-full.txt +762 -148
  313. package/llms.txt +57 -5
  314. package/package.json +65 -7
  315. package/src/agent-tooling/archetypes.ts +96 -0
  316. package/src/agent-tooling/integrations/anthropic.ts +412 -0
  317. package/src/agent-tooling/integrations/cloudflare.ts +136 -52
  318. package/src/agent-tooling/integrations/langgraph.ts +67 -13
  319. package/src/agent-tooling/integrations/mastra.ts +120 -12
  320. package/src/agent-tooling/integrations/mock.ts +43 -8
  321. package/src/agent-tooling/integrations/ollama.ts +61 -24
  322. package/src/agent-tooling/integrations/openai.ts +87 -0
  323. package/src/agent-tooling/integrations/openrouter.ts +56 -8
  324. package/src/agent-tooling/integrations/pi.ts +79 -23
  325. package/src/agent-tooling/integrations/pydantic-ai.ts +24 -2
  326. package/src/agent-tooling/integrations/vercel-ai-sdk.ts +84 -13
  327. package/src/agent-tooling/mcp/manifest.ts +206 -25
  328. package/src/agent-tooling/mcp/tools/debug.ts +13 -7
  329. package/src/agent-tooling/mcp/tools/reference.ts +285 -6
  330. package/src/agent-tooling/mcp/tools/scaffold.ts +3345 -675
  331. package/src/agent-tooling/registry.ts +17 -0
  332. package/src/agent-tooling/types.ts +229 -1
  333. package/src/components/artifact-card.tsx +120 -0
  334. package/src/components/audio-visualizer/index.tsx +9 -0
  335. package/src/components/audio-visualizer/labs/lab-choreography.ts +187 -0
  336. package/src/components/audio-visualizer/labs/lab-shaders.ts +363 -0
  337. package/src/components/audio-visualizer/labs/lab-visualizer.tsx +102 -0
  338. package/src/components/audio-visualizer/shader-canvas.tsx +31 -1
  339. package/src/components/card-fallback.tsx +42 -10
  340. package/src/components/card-renderer.tsx +146 -9
  341. package/src/components/chat-container.tsx +4 -0
  342. package/src/components/chat-thread.tsx +118 -51
  343. package/src/components/choice-card.tsx +17 -29
  344. package/src/components/composer.tsx +12 -2
  345. package/src/components/confirm-card.tsx +24 -20
  346. package/src/components/context.tsx +12 -4
  347. package/src/components/conversation-list.tsx +18 -2
  348. package/src/components/file-tree.tsx +11 -22
  349. package/src/components/file-upload.tsx +14 -8
  350. package/src/components/form.tsx +14 -47
  351. package/src/components/loader.tsx +39 -12
  352. package/src/components/message-skills.tsx +4 -0
  353. package/src/components/message.tsx +294 -46
  354. package/src/components/reasoning.tsx +92 -5
  355. package/src/components/response-compare-types.ts +25 -0
  356. package/src/components/response-compare.tsx +4 -9
  357. package/src/components/source.tsx +50 -24
  358. package/src/components/tasks-card.tsx +10 -33
  359. package/src/components/thread.tsx +84 -42
  360. package/src/components/toast.tsx +11 -5
  361. package/src/components/tool-classify.ts +26 -0
  362. package/src/components/tool-types.ts +31 -1
  363. package/src/elements/agent-card.tsx +11 -11
  364. package/src/elements/artifact.tsx +15 -7
  365. package/src/elements/attachments.tsx +6 -4
  366. package/src/elements/avatar.tsx +1 -1
  367. package/src/elements/button.tsx +3 -3
  368. package/src/elements/card.tsx +2 -2
  369. package/src/elements/cards.tsx +109 -14
  370. package/src/elements/chain-of-thought.tsx +14 -10
  371. package/src/elements/chat-scope-picker.tsx +9 -7
  372. package/src/elements/chat-types.ts +59 -6
  373. package/src/elements/chat-workspace.tsx +50 -9
  374. package/src/elements/chat.tsx +64 -3
  375. package/src/elements/choice.tsx +8 -8
  376. package/src/elements/coachmark.tsx +1 -1
  377. package/src/elements/command.tsx +8 -23
  378. package/src/elements/compare.tsx +7 -6
  379. package/src/elements/compiled.css +1 -1
  380. package/src/elements/composer.tsx +8 -8
  381. package/src/elements/confirm-card.tsx +9 -9
  382. package/src/elements/context-meter.tsx +4 -18
  383. package/src/elements/conversation-list.tsx +14 -9
  384. package/src/elements/default-input.tsx +3 -3
  385. package/src/elements/define.tsx +178 -43
  386. package/src/elements/editable-label.tsx +17 -2
  387. package/src/elements/element-data-types.ts +112 -0
  388. package/src/elements/element-meta.json +1596 -304
  389. package/src/elements/element-types.d.ts +2636 -211
  390. package/src/elements/feedback-bar.tsx +1 -1
  391. package/src/elements/file-tree.tsx +1 -1
  392. package/src/elements/file-upload.tsx +1 -1
  393. package/src/elements/form.tsx +14 -6
  394. package/src/elements/input.tsx +1 -1
  395. package/src/elements/kbd.tsx +1 -1
  396. package/src/elements/menu.tsx +10 -29
  397. package/src/elements/message-skills.tsx +7 -9
  398. package/src/elements/message.tsx +200 -32
  399. package/src/elements/model-switcher.tsx +5 -3
  400. package/src/elements/pane.tsx +1 -1
  401. package/src/elements/prompt-dock.tsx +8 -8
  402. package/src/elements/prompt-input.tsx +10 -10
  403. package/src/elements/prompt-suggestions.tsx +7 -4
  404. package/src/elements/reasoning.tsx +1 -1
  405. package/src/elements/register.ts +9 -0
  406. package/src/elements/resizable.globals.d.ts +36 -0
  407. package/src/elements/resizable.tsx +24 -13
  408. package/src/elements/response-stream.tsx +1 -1
  409. package/src/elements/scroll-button.tsx +1 -1
  410. package/src/elements/search.tsx +6 -1
  411. package/src/elements/segmented.tsx +5 -11
  412. package/src/elements/separator.tsx +1 -1
  413. package/src/elements/slots.ts +57 -24
  414. package/src/elements/source.tsx +21 -22
  415. package/src/elements/switch.tsx +3 -3
  416. package/src/elements/tasks.tsx +5 -4
  417. package/src/elements/thread.tsx +36 -4
  418. package/src/elements/toast.tsx +3 -2
  419. package/src/elements/tool.tsx +1 -1
  420. package/src/elements/validate-messages.ts +76 -0
  421. package/src/elements/voice-input.tsx +7 -7
  422. package/src/elements/voice-output.tsx +4 -4
  423. package/src/index.ts +141 -6
  424. package/src/primitives/card-component-types.ts +63 -0
  425. package/src/primitives/card-data-types.ts +312 -0
  426. package/src/primitives/card-recovery.ts +13 -2
  427. package/src/primitives/card-registry.tsx +34 -23
  428. package/src/primitives/card-schemas/artifact.schema.json +92 -0
  429. package/src/primitives/card-schemas/embed.schema.json +0 -2
  430. package/src/primitives/card-schemas/link.schema.json +0 -2
  431. package/src/primitives/card-tags.ts +61 -0
  432. package/src/primitives/card-validate-cards.ts +255 -0
  433. package/src/primitives/card-validate-generator.testlib.ts +38 -0
  434. package/src/primitives/card-validate-schemas.ts +58 -0
  435. package/src/primitives/card-validate.ts +48 -20
  436. package/src/primitives/create-tween.ts +54 -2
  437. package/src/primitives/message-feedback.ts +3 -2
  438. package/src/primitives/use-audio-analysis.ts +20 -1
  439. package/src/primitives/use-sequencer.ts +20 -1
  440. package/src/schemas/from-tool-call.ts +151 -0
  441. package/src/schemas/index.ts +340 -0
  442. package/src/schemas/provider-subsets.ts +538 -0
  443. package/src/schemas/registry.ts +355 -0
  444. package/src/schemas/tool-defs.ts +492 -0
  445. package/src/solid.ts +150 -0
  446. package/src/state/index.ts +27 -1
  447. package/src/state/messages.ts +21 -4
  448. package/src/state/mock.ts +211 -0
  449. package/src/state/parts.ts +295 -0
  450. package/src/state/stream.ts +56 -58
  451. package/src/ui/collapsible.tsx +17 -5
  452. package/src/ui/dropdown.tsx +46 -12
  453. package/src/ui/overlay.tsx +10 -4
  454. package/src/wire/chunk.ts +201 -0
  455. package/src/wire/consume.ts +440 -0
  456. package/src/wire/encode.ts +474 -0
  457. package/src/wire/formats/anthropic.ts +267 -0
  458. package/src/wire/formats/openai.ts +187 -0
  459. package/src/wire/index.ts +52 -0
  460. package/src/wire/read.ts +152 -0
  461. package/src/wire/sink-helpers.ts +50 -0
  462. package/src/wire/sse.ts +140 -0
  463. package/dist/create-tween-hvpmSuwW.js +0 -7
  464. package/dist/elements/chunks/arrow-left-DQocUFvy.js +0 -1
  465. package/dist/elements/chunks/audio-visualizer-BqNy7dfm.js +0 -1
  466. package/dist/elements/chunks/card-BkHbp4BA.js +0 -1
  467. package/dist/elements/chunks/chat-thread-CkRN6pZ7.js +0 -1
  468. package/dist/elements/chunks/check-B9-gn6SS.js +0 -1
  469. package/dist/elements/chunks/chevron-down-BNsxc2hk.js +0 -1
  470. package/dist/elements/chunks/chevron-right-Hv00StBO.js +0 -1
  471. package/dist/elements/chunks/circle-0e3KJTDr.js +0 -1
  472. package/dist/elements/chunks/circle-check-BNAS0JEy.js +0 -1
  473. package/dist/elements/chunks/code-block-BFUHn6Va.js +0 -1
  474. package/dist/elements/chunks/context-Cb7k4F-v.js +0 -1
  475. package/dist/elements/chunks/conversation-list-CvoAkWhN.js +0 -1
  476. package/dist/elements/chunks/create-tween-oVvAIG8r.js +0 -7
  477. package/dist/elements/chunks/define-D1din7Ld.js +0 -1
  478. package/dist/elements/chunks/hover-card-Cmm6Q53m.js +0 -1
  479. package/dist/elements/chunks/message-BqyXDN3-.js +0 -1
  480. package/dist/elements/chunks/message-feedback-Djr3z6Yb.js +0 -1
  481. package/dist/elements/chunks/message-square-vFAgbDaX.js +0 -1
  482. package/dist/elements/chunks/reasoning-DTpCGtnY.js +0 -1
  483. package/dist/elements/chunks/scroll-button-B0cH5fXf.js +0 -1
  484. package/dist/elements/chunks/skeleton-DSXW5Yya.js +0 -1
  485. package/dist/elements/chunks/slots--V19HwUb.js +0 -1
  486. package/dist/elements/chunks/textarea-CUwqAX0G.js +0 -1
  487. package/dist/elements/chunks/tooltip-CgBZCVKp.js +0 -1
  488. package/dist/elements/chunks/use-card-resolution-BSu_XHjH.js +0 -1
  489. package/dist/elements/chunks/x-GRUeeQFT.js +0 -1
  490. package/dist/host-embed.d.ts +0 -33
  491. package/dist/kai-provider.d.ts +0 -2
  492. package/dist/origin.d.ts +0 -5
  493. package/dist/provider-runtime.d.ts +0 -27
  494. package/dist/register-impl-DQyejdfb.js +0 -145
  495. package/dist/validate.d.ts +0 -4
  496. package/dist/version.d.ts +0 -4
  497. package/src/components/component-meta.json +0 -4550
  498. package/src/elements/card-media.jpg +0 -0
  499. package/src/elements/resizable.d.ts +0 -27
  500. package/src/elements/video-poster.jpg +0 -0
package/dist/react.js CHANGED
@@ -1,683 +1,784 @@
1
1
  "use client";
2
- import { forwardRef as M, useRef as y, useImperativeHandle as R, useLayoutEffect as T, createElement as O, useState as x, useCallback as k, useMemo as A } from "react";
3
- const w = /* @__PURE__ */ new Set();
4
- function E(t, r) {
5
- !r || w.has(t) || typeof window > "u" || typeof customElements > "u" || (w.add(t), !customElements.get(t) && r());
2
+ import { forwardRef as A, useRef as x, useImperativeHandle as E, useLayoutEffect as w, createElement as V, useState as I, useCallback as g, useMemo as F } from "react";
3
+ const O = /* @__PURE__ */ new Set();
4
+ let T;
5
+ function P(e, t) {
6
+ if (!(!t || O.has(e)) && !(typeof window > "u" || typeof customElements > "u") && (O.add(e), !customElements.get(e))) {
7
+ if (T) {
8
+ T.catch(() => t());
9
+ return;
10
+ }
11
+ t();
12
+ }
6
13
  }
7
- function W() {
14
+ function ae() {
8
15
  if (!(typeof window > "u" || typeof customElements > "u"))
9
- return import("@kitn.ai/ui/elements");
16
+ return T ?? (T = import("@kitn.ai/ui/elements")), T;
10
17
  }
11
- function e(t, r, s, n) {
12
- const c = Object.entries(s), d = M((o, i) => {
13
- const a = y(null);
14
- R(i, () => a.current, []);
15
- const l = o, h = y({});
16
- for (const u of Object.keys(s)) h.current[u] = l[u];
17
- return T(() => {
18
- const u = a.current;
19
- if (!u) return;
20
- const b = () => {
21
- for (const g of r)
22
- g in l && l[g] !== void 0 && (u[g] = l[g]);
18
+ function a(e, t, n, i) {
19
+ const s = Object.entries(n), c = A((o, l) => {
20
+ const r = x(null);
21
+ E(l, () => r.current, []);
22
+ const m = o, f = x({});
23
+ for (const p of Object.keys(n)) f.current[p] = m[p];
24
+ return w(() => {
25
+ const p = r.current;
26
+ if (!p) return;
27
+ const k = () => {
28
+ for (const h of t)
29
+ h in m && m[h] !== void 0 && (p[h] = m[h]);
23
30
  };
24
- b(), typeof customElements < "u" && !customElements.get(t) && customElements.whenDefined(t).then(b);
25
- }), T(() => {
26
- E(t, n);
27
- }, []), T(() => {
28
- const u = a.current;
29
- if (!u) return;
30
- const b = [];
31
- for (const [g, f] of c) {
32
- const v = (C) => {
33
- const S = h.current[g];
34
- typeof S == "function" && S(C);
31
+ k(), typeof customElements < "u" && !customElements.get(e) && customElements.whenDefined(e).then(k);
32
+ }), w(() => {
33
+ P(e, i);
34
+ }, []), w(() => {
35
+ const p = r.current;
36
+ if (!p) return;
37
+ const k = [];
38
+ for (const [h, b] of s) {
39
+ const C = (S) => {
40
+ const y = f.current[h];
41
+ typeof y == "function" && y(S);
35
42
  };
36
- u.addEventListener(f, v), b.push([f, v]);
43
+ p.addEventListener(b, C), k.push([b, C]);
37
44
  }
38
- return () => b.forEach(([g, f]) => u.removeEventListener(g, f));
39
- }, []), O(
40
- t,
45
+ return () => k.forEach(([h, b]) => p.removeEventListener(h, b));
46
+ }, []), V(
47
+ e,
41
48
  {
42
- ref: a,
43
- className: l.className,
44
- style: l.style,
45
- id: l.id
49
+ ref: r,
50
+ className: m.className,
51
+ style: m.style,
52
+ id: m.id
46
53
  },
47
54
  // Light-DOM children pass straight through to the element (slots).
48
- l.children ?? null
55
+ m.children ?? null
49
56
  );
50
57
  });
51
- return d.displayName = t, d;
58
+ return c.displayName = e, c;
59
+ }
60
+ function z(e) {
61
+ const t = e.toLowerCase();
62
+ return t ? t.includes("bash") || t.includes("command") || t.includes("shell") || t.includes("terminal") || t.includes("exec") ? "command" : t.includes("edit") || t.includes("write") || t.includes("patch") || t.includes("replace") || t.includes("delete") ? "file-change" : t.includes("search") || t.includes("grep") || t.includes("glob") || t.includes("find") ? "search" : t.includes("fetch") || t.includes("http") || t.includes("browse") || t.includes("crawl") ? "fetch" : t.includes("mcp") ? "mcp" : t.includes("image") || t.includes("screenshot") || t.includes("vision") ? "image" : "generic" : "generic";
52
63
  }
53
- function V(t, r) {
54
- return [...t, r];
64
+ function v(e) {
65
+ const t = /* @__PURE__ */ new WeakSet(), n = (i) => {
66
+ if (i === null || typeof i != "object") return i;
67
+ if (t.has(i)) return "[circular]";
68
+ t.add(i);
69
+ const s = i, c = Array.isArray(i) ? i.map(n) : Object.fromEntries(Object.keys(s).sort().map((o) => [o, n(s[o])]));
70
+ return t.delete(i), c;
71
+ };
72
+ return JSON.stringify(n(e)) ?? "";
55
73
  }
56
- function D(t, r, s) {
57
- return t.map(
58
- (n) => n.id === r ? typeof s == "function" ? s(n) : { ...n, ...s } : n
74
+ function D(e, t) {
75
+ const n = e[e.length - 1];
76
+ return (n == null ? void 0 : n.type) === "text" ? [...e.slice(0, -1), { ...n, text: n.text + t }] : [...e, { type: "text", text: t }];
77
+ }
78
+ function L(e, t, n = {}) {
79
+ const i = n.index ?? 0, s = n.streamId, c = e.findIndex(
80
+ (r) => r.type === "reasoning" && (r.index ?? 0) === i && r.streamId === s
59
81
  );
82
+ if (c < 0)
83
+ return [...e, { type: "reasoning", text: t, index: i, streamId: s, label: n.label, signature: n.signature, raw: n.raw }];
84
+ const o = e[c], l = {
85
+ ...o,
86
+ text: o.text + t,
87
+ label: n.label ?? o.label,
88
+ signature: n.signature ?? o.signature,
89
+ raw: n.raw ?? o.raw
90
+ };
91
+ return H(o, l) ? e : [...e.slice(0, c), l, ...e.slice(c + 1)];
60
92
  }
61
- function F(t, r) {
62
- return t.filter((s) => s.id !== r);
93
+ const N = [
94
+ "type",
95
+ "text",
96
+ "index",
97
+ "streamId",
98
+ "label",
99
+ "signature",
100
+ "raw"
101
+ ], B = {
102
+ type: (e, t) => e.type === t.type,
103
+ text: (e, t) => e.text === t.text,
104
+ index: (e, t) => e.index === t.index,
105
+ streamId: (e, t) => e.streamId === t.streamId,
106
+ label: (e, t) => e.label === t.label,
107
+ signature: (e, t) => e.signature === t.signature,
108
+ raw: (e, t) => e.raw === t.raw
109
+ };
110
+ function H(e, t) {
111
+ return N.every((n) => B[n](e, t));
112
+ }
113
+ function U(e, t) {
114
+ const n = e.findIndex((s) => s.type === "card" && s.envelope.id === t.id);
115
+ if (n < 0) return [...e, { type: "card", envelope: t }];
116
+ const i = e[n];
117
+ return v(i.envelope) === v(t) ? e : [...e.slice(0, n), { ...i, envelope: t }, ...e.slice(n + 1)];
63
118
  }
64
- function B(t, r) {
65
- return t.includes(r) ? t.slice() : [...t, r];
119
+ function W(e, t, n) {
120
+ const i = e.findIndex((o) => o.type === "tool" && o.tool.toolCallId === t);
121
+ if (i < 0) {
122
+ const o = {
123
+ type: n.type ?? "unknown",
124
+ state: n.state ?? "input-streaming",
125
+ ...n,
126
+ toolCallId: t
127
+ };
128
+ return o.kind = o.kind ?? z(o.type), [...e, { type: "tool", tool: o }];
129
+ }
130
+ const s = e[i].tool, c = { ...s, ...n, toolCallId: t };
131
+ return c.kind = j(s, n, c.type), c.raw === void 0 && s.raw !== void 0 && (c.raw = s.raw), G(s, c) ? e : [...e.slice(0, i), { type: "tool", tool: c }, ...e.slice(i + 1)];
66
132
  }
67
- function L(t, r) {
68
- return t.filter((s) => s !== r);
133
+ function j(e, t, n) {
134
+ return t.kind !== void 0 ? t.kind : e.kind === void 0 || e.kind === z(e.type) ? z(n) : e.kind;
135
+ }
136
+ const K = [
137
+ "type",
138
+ "state",
139
+ "kind",
140
+ "toolCallId",
141
+ "errorText",
142
+ "rawInput",
143
+ "raw",
144
+ "input",
145
+ "output"
146
+ ], q = {
147
+ type: (e, t) => e.type === t.type,
148
+ state: (e, t) => e.state === t.state,
149
+ kind: (e, t) => e.kind === t.kind,
150
+ toolCallId: (e, t) => e.toolCallId === t.toolCallId,
151
+ errorText: (e, t) => e.errorText === t.errorText,
152
+ rawInput: (e, t) => e.rawInput === t.rawInput,
153
+ raw: (e, t) => e.raw === t.raw,
154
+ input: (e, t) => e.input === t.input || v(e.input) === v(t.input),
155
+ output: (e, t) => e.output === t.output || v(e.output) === v(t.output)
156
+ };
157
+ function G(e, t) {
158
+ return K.every((n) => q[n](e, t));
69
159
  }
70
- function P() {
71
- return typeof crypto < "u" && typeof crypto.randomUUID == "function" ? crypto.randomUUID() : "kai-" + Math.random().toString(36).slice(2);
160
+ function _(e, t) {
161
+ return [...e, t];
72
162
  }
73
- function H(t, r = {}) {
74
- const s = r.id ?? P(), n = { id: s, role: "assistant", content: "", ...r };
75
- t((o) => [...o, n]);
76
- const c = (o) => t((i) => i.map((a) => a.id === s ? o(a) : a)), d = {
77
- id: s,
163
+ function Y(e, t, n) {
164
+ return e.map(
165
+ (i) => i.id === t ? typeof n == "function" ? n(i) : { ...i, ...n } : i
166
+ );
167
+ }
168
+ function J(e, t) {
169
+ return e.filter((n) => n.id !== t);
170
+ }
171
+ function Q(e, t) {
172
+ return e.includes(t) ? e.slice() : [...e, t];
173
+ }
174
+ function X(e, t) {
175
+ return e.filter((n) => n !== t);
176
+ }
177
+ function Z() {
178
+ return typeof crypto < "u" && crypto.randomUUID ? crypto.randomUUID() : "kai-" + Math.random().toString(36).slice(2);
179
+ }
180
+ function $(e, t = {}) {
181
+ const n = t.id ?? Z();
182
+ let i = !1;
183
+ e((o) => [...o, { id: n, role: "assistant", parts: [], ...t }]);
184
+ const s = (o) => {
185
+ i || e((l) => {
186
+ const r = l.findIndex((f) => f.id === n);
187
+ if (r < 0) return l;
188
+ const m = o(l[r].parts);
189
+ return m === l[r].parts ? l : [...l.slice(0, r), { ...l[r], parts: m }, ...l.slice(r + 1)];
190
+ });
191
+ }, c = {
192
+ id: n,
78
193
  appendText(o) {
79
- return c((i) => ({ ...i, content: i.content + o })), d;
194
+ return s((l) => D(l, o)), c;
80
195
  },
81
- setText(o) {
82
- return c((i) => ({ ...i, content: o })), d;
196
+ appendReasoning(o, l) {
197
+ return s((r) => L(r, o, l)), c;
83
198
  },
84
- appendReasoning(o, i) {
85
- return c((a) => {
86
- var l, h;
87
- return { ...a, reasoning: { text: (((l = a.reasoning) == null ? void 0 : l.text) ?? "") + o, label: i ?? ((h = a.reasoning) == null ? void 0 : h.label) } };
88
- }), d;
199
+ upsertTool(o, l) {
200
+ return s((r) => W(r, o, l)), c;
89
201
  },
90
- setReasoning(o, i) {
91
- return c((a) => {
92
- var l;
93
- return { ...a, reasoning: { text: o, label: i ?? ((l = a.reasoning) == null ? void 0 : l.label) } };
94
- }), d;
202
+ // Upsert, not append: keyed on envelope.id so a revised card replaces itself.
203
+ addCard(o) {
204
+ return s((l) => U(l, o)), c;
95
205
  },
96
- upsertTool(o) {
97
- return c((i) => {
98
- const a = i.tools ? i.tools.slice() : [], l = o.toolCallId != null ? a.findIndex((h) => h.toolCallId === o.toolCallId) : a.findIndex((h) => h.type === o.type);
99
- return l === -1 ? a.push(o) : a[l] = o, { ...i, tools: a };
100
- }), d;
206
+ addSource(o) {
207
+ return s((l) => [...l, { type: "source", source: o }]), c;
101
208
  },
102
- updateTool(o, i) {
103
- return c((a) => ({ ...a, tools: (a.tools ?? []).map((l) => l.toolCallId === o ? { ...l, ...i } : l) })), d;
209
+ addFile(o) {
210
+ return s((l) => [...l, { type: "file", attachment: o }]), c;
104
211
  },
105
- patch(o) {
106
- return c((i) => ({ ...i, ...o })), d;
107
- },
108
- done(o) {
109
- o && c((i) => ({ ...i, ...o }));
212
+ done() {
213
+ i = !0;
110
214
  },
111
215
  abort(o) {
112
- o ? c((i) => ({ ...i, tools: (i.tools ?? []).map((a) => ({ ...a, state: "output-error", errorText: o })) })) : t((i) => i.filter((a) => a.id !== s));
216
+ s((l) => l.map((r) => r.type === "tool" && r.tool.state !== "output-available" ? { ...r, tool: { ...r.tool, state: "output-error", errorText: o } } : r)), i = !0;
113
217
  }
114
218
  };
115
- return d;
219
+ return c;
116
220
  }
117
- function N(t, r) {
118
- const s = {
119
- id: t.id,
120
- appendText(n) {
121
- return t.appendText(n), s;
122
- },
123
- setText(n) {
124
- return t.setText(n), s;
221
+ function ee(e, t) {
222
+ const n = {
223
+ id: e.id,
224
+ appendText(i) {
225
+ return e.appendText(i), n;
125
226
  },
126
- appendReasoning(n, c) {
127
- return t.appendReasoning(n, c), s;
227
+ appendReasoning(i, s) {
228
+ return e.appendReasoning(i, s), n;
128
229
  },
129
- setReasoning(n, c) {
130
- return t.setReasoning(n, c), s;
230
+ upsertTool(i, s) {
231
+ return e.upsertTool(i, s), n;
131
232
  },
132
- upsertTool(n) {
133
- return t.upsertTool(n), s;
233
+ addCard(i) {
234
+ return e.addCard(i), n;
134
235
  },
135
- updateTool(n, c) {
136
- return t.updateTool(n, c), s;
236
+ addSource(i) {
237
+ return e.addSource(i), n;
137
238
  },
138
- patch(n) {
139
- return t.patch(n), s;
239
+ addFile(i) {
240
+ return e.addFile(i), n;
140
241
  },
141
- done(n) {
142
- t.done(n), r();
242
+ done() {
243
+ e.done(), t();
143
244
  },
144
- abort(n) {
145
- t.abort(n), r();
245
+ abort(i) {
246
+ e.abort(i), t();
146
247
  }
147
248
  };
148
- return s;
249
+ return n;
149
250
  }
150
- function j(t = {}) {
151
- const [r, s] = x(() => [...t.initialMessages ?? []]), [n, c] = x(() => [...t.initialSuggestions ?? []]), [d, o] = x(!1), i = y(t.onSubmit);
152
- i.current = t.onSubmit;
153
- const a = k((m) => s(m), []), l = k((m) => a((p) => V(p, m)), [a]), h = k(
154
- (m, p) => a((I) => D(I, m, p)),
155
- [a]
156
- ), u = k((m) => a((p) => F(p, m)), [a]), b = k((m) => c((p) => B(p, m)), []), g = k((m) => c((p) => L(p, m)), []), f = k(() => c([]), []), v = k((m) => (o(!0), N(H(a, m), () => o(!1))), [a]), C = k(
157
- (m) => {
158
- var p;
159
- (p = i.current) == null || p.call(i, m.detail);
251
+ function ne(e = {}) {
252
+ const [t, n] = I(() => [...e.initialMessages ?? []]), [i, s] = I(() => [...e.initialSuggestions ?? []]), [c, o] = I(!1), l = x(e.onSubmit);
253
+ l.current = e.onSubmit;
254
+ const r = g((d) => n(d), []), m = g((d) => r((u) => _(u, d)), [r]), f = g(
255
+ (d, u) => r((R) => Y(R, d, u)),
256
+ [r]
257
+ ), p = g((d) => r((u) => J(u, d)), [r]), k = g((d) => s((u) => Q(u, d)), []), h = g((d) => s((u) => X(u, d)), []), b = g(() => s([]), []), C = g((d) => (o(!0), ee($(r, d), () => o(!1))), [r]), S = g(
258
+ (d) => {
259
+ var u;
260
+ (u = l.current) == null || u.call(l, d.detail);
160
261
  },
161
262
  []
162
- ), S = A(
163
- () => ({ messages: r, loading: d, suggestions: n, onSubmit: C }),
164
- [r, d, n, C]
263
+ ), y = F(
264
+ () => ({ messages: t, loading: c, suggestions: i, onSubmit: S }),
265
+ [t, c, i, S]
165
266
  );
166
267
  return {
167
- messages: r,
168
- setMessages: s,
169
- suggestions: n,
170
- setSuggestions: c,
171
- loading: d,
172
- append: l,
173
- update: h,
174
- remove: u,
175
- addSuggestion: b,
176
- removeSuggestion: g,
177
- clearSuggestions: f,
178
- streamAssistant: v,
179
- bind: S
268
+ messages: t,
269
+ setMessages: n,
270
+ suggestions: i,
271
+ setSuggestions: s,
272
+ loading: c,
273
+ append: m,
274
+ update: f,
275
+ remove: p,
276
+ addSuggestion: k,
277
+ removeSuggestion: h,
278
+ clearSuggestions: b,
279
+ streamAssistant: C,
280
+ bind: y
180
281
  };
181
282
  }
182
- function z() {
283
+ function M() {
183
284
  if (typeof window > "u") return;
184
- const t = window;
185
- return t.SpeechRecognition ?? t.webkitSpeechRecognition;
285
+ const e = window;
286
+ return e.SpeechRecognition ?? e.webkitSpeechRecognition;
186
287
  }
187
- function q(t) {
188
- const r = y(t);
189
- r.current = t;
190
- const s = z() !== void 0, n = k(() => {
191
- const c = z();
192
- if (!c) return;
193
- const d = new c();
194
- d.lang = "en-US", d.interimResults = !1, d.onresult = (o) => r.current(o.results[0][0].transcript), d.start();
288
+ function ie(e) {
289
+ const t = x(e);
290
+ t.current = e;
291
+ const n = M() !== void 0, i = g(() => {
292
+ const s = M();
293
+ if (!s) return;
294
+ const c = new s();
295
+ c.lang = "en-US", c.interimResults = !1, c.onresult = (o) => t.current(o.results[0][0].transcript), c.start();
195
296
  }, []);
196
- return { supported: s, start: n };
297
+ return { supported: n, start: i };
197
298
  }
198
- const G = /* @__PURE__ */ e(
299
+ const oe = /* @__PURE__ */ a(
199
300
  "kai-agent-card",
200
301
  ["theme", "name", "active", "needsAttention", "status"],
201
302
  { onActivate: "kai-activate", onMenu: "kai-menu" },
202
303
  () => import("@kitn.ai/ui/elements/agent-card")
203
- ), K = /* @__PURE__ */ e(
304
+ ), se = /* @__PURE__ */ a(
204
305
  "kai-artifact",
205
306
  ["theme", "src", "files", "tab", "defaultTab", "activeFile", "sandbox", "iframeTitle", "maximized", "expandable", "openInTab", "noNav", "noReload", "noHome", "noPathField", "noTabs", "standalone", "readonlyPath", "displayUrl"],
206
- { onFileSelect: "kai-file-select", onMaximizeChange: "kai-maximize-change", onNavigate: "kai-navigate", onTabChange: "kai-tab-change" },
307
+ { onFileSelect: "kai-file-select", onMaximizeChange: "kai-maximize-change", onMaximizeIntent: "kai-maximize-intent", onNavigate: "kai-navigate", onTabChange: "kai-tab-change" },
207
308
  () => import("@kitn.ai/ui/elements/artifact")
208
- ), Q = /* @__PURE__ */ e(
309
+ ), re = /* @__PURE__ */ a(
209
310
  "kai-attachments",
210
311
  ["theme", "items", "variant", "hoverCard", "removable", "showMediaType", "emptyText"],
211
312
  { onRemove: "kai-remove" },
212
313
  () => import("@kitn.ai/ui/elements/attachments")
213
- ), J = /* @__PURE__ */ e(
314
+ ), ce = /* @__PURE__ */ a(
214
315
  "kai-audio-visualizer",
215
316
  ["theme", "variant", "state", "size", "barCount", "count", "radius", "spread", "interval", "color", "complexity", "label", "stream", "audioElement", "bands", "shader", "animateWhenNotVisible"],
216
317
  {},
217
318
  () => import("@kitn.ai/ui/elements/audio-visualizer")
218
- ), X = /* @__PURE__ */ e(
319
+ ), le = /* @__PURE__ */ a(
219
320
  "kai-avatar",
220
321
  ["theme", "src", "alt", "fallback", "size"],
221
322
  {},
222
323
  () => import("@kitn.ai/ui/elements/avatar")
223
- ), Y = /* @__PURE__ */ e(
324
+ ), de = /* @__PURE__ */ a(
224
325
  "kai-badge",
225
326
  ["theme", "variant"],
226
327
  {},
227
328
  () => import("@kitn.ai/ui/elements/badge")
228
- ), Z = /* @__PURE__ */ e(
329
+ ), me = /* @__PURE__ */ a(
229
330
  "kai-button",
230
331
  ["theme", "variant", "size", "icon", "iconTrailing", "label", "disabled", "full", "align", "type"],
231
332
  { onClick: "kai-click" },
232
333
  () => import("@kitn.ai/ui/elements/button")
233
- ), _ = /* @__PURE__ */ e(
334
+ ), ue = /* @__PURE__ */ a(
234
335
  "kai-card",
235
336
  ["theme", "appearance", "orientation", "collapse", "dense", "dismissible", "href", "target", "rel", "clickable"],
236
337
  { onCardClick: "kai-card-click", onDismiss: "kai-dismiss" },
237
338
  () => import("@kitn.ai/ui/elements/card")
238
- ), $ = /* @__PURE__ */ e(
339
+ ), pe = /* @__PURE__ */ a(
239
340
  "kai-cards",
240
- ["theme", "cards", "types", "policy"],
341
+ ["theme", "cards", "types", "schemas", "policy", "validateCards"],
241
342
  { onCardResolved: "kai-card-resolved" },
242
343
  () => import("@kitn.ai/ui/elements/cards")
243
- ), ee = /* @__PURE__ */ e(
344
+ ), he = /* @__PURE__ */ a(
244
345
  "kai-chain-of-thought",
245
346
  ["theme", "steps", "type", "value", "defaultValue"],
246
347
  { onValueChange: "kai-value-change" },
247
348
  () => import("@kitn.ai/ui/elements/chain-of-thought")
248
- ), te = /* @__PURE__ */ e(
349
+ ), ge = /* @__PURE__ */ a(
249
350
  "kai-chat",
250
- ["theme", "messages", "value", "placeholder", "loading", "suggestions", "suggestionMode", "persistSuggestions", "proseSize", "codeTheme", "codeHighlight", "chatTitle", "models", "currentModel", "context", "scrollButton", "headerStart", "headerEnd", "headerFull", "sidebar", "empty", "composer", "composerActions", "footer", "search", "voice", "triggers", "kindIcons", "actionsReveal"],
351
+ ["theme", "search", "value", "placeholder", "loading", "suggestions", "suggestionMode", "persistSuggestions", "proseSize", "codeTheme", "codeHighlight", "chatTitle", "models", "currentModel", "context", "scrollButton", "headerStart", "headerEnd", "headerFull", "sidebar", "empty", "composer", "composerActions", "footer", "voice", "triggers", "kindIcons", "actionsReveal", "messages", "cardTypes", "cardSchemas"],
251
352
  { onAttachmentsChange: "kai-attachments-change", onMessageAction: "kai-message-action", onModelChange: "kai-model-change", onSearch: "kai-search", onSubmit: "kai-submit", onSuggestionClick: "kai-suggestion-click", onValueChange: "kai-value-change", onVoice: "kai-voice" },
252
353
  () => import("@kitn.ai/ui/elements/chat")
253
- ), ae = /* @__PURE__ */ e(
354
+ ), ke = /* @__PURE__ */ a(
254
355
  "kai-checkpoint",
255
356
  ["theme", "label", "tooltip", "variant", "size"],
256
357
  { onSelect: "kai-select" },
257
358
  () => import("@kitn.ai/ui/elements/checkpoint")
258
- ), oe = /* @__PURE__ */ e(
359
+ ), fe = /* @__PURE__ */ a(
259
360
  "kai-choice",
260
361
  ["theme", "data", "cardId", "heading", "resolution", "value", "defaultValue", "disabled"],
261
362
  { onValueChange: "kai-value-change" },
262
363
  () => import("@kitn.ai/ui/elements/choice")
263
- ), ne = /* @__PURE__ */ e(
364
+ ), be = /* @__PURE__ */ a(
264
365
  "kai-coachmark",
265
366
  ["theme", "open", "defaultOpen", "headline", "badge", "placement", "tone", "arrow"],
266
367
  { onDismiss: "kai-dismiss", onOpenChange: "kai-open-change" },
267
368
  () => import("@kitn.ai/ui/elements/coachmark")
268
- ), ie = /* @__PURE__ */ e(
369
+ ), ve = /* @__PURE__ */ a(
269
370
  "kai-code-block",
270
371
  ["theme", "code", "language", "codeTheme", "codeHighlight", "proseSize"],
271
372
  {},
272
373
  () => import("@kitn.ai/ui/elements/code-block")
273
- ), se = /* @__PURE__ */ e(
374
+ ), Ce = /* @__PURE__ */ a(
274
375
  "kai-command",
275
376
  ["theme", "items", "placeholder", "emptyLabel"],
276
377
  { onActiveChange: "kai-active-change", onQueryChange: "kai-query-change", onSelect: "kai-select" },
277
378
  () => import("@kitn.ai/ui/elements/command")
278
- ), re = /* @__PURE__ */ e(
379
+ ), Se = /* @__PURE__ */ a(
279
380
  "kai-compare",
280
381
  ["theme", "data", "compareId", "selection", "layout", "proseSize", "codeTheme", "codeHighlight"],
281
382
  { onCompareSelect: "kai-compare-select", onError: "kai-error", onReady: "kai-ready" },
282
383
  () => import("@kitn.ai/ui/elements/compare")
283
- ), ce = /* @__PURE__ */ e(
384
+ ), ye = /* @__PURE__ */ a(
284
385
  "kai-composer",
285
386
  ["theme", "value", "placeholder", "disabled", "loading", "maxHeight", "submitOnEnter", "triggers", "highlights", "kindIcons"],
286
387
  { onBlur: "kai-blur", onEntityAdd: "kai-entity-add", onEntityRemove: "kai-entity-remove", onFocus: "kai-focus", onSubmit: "kai-submit", onTrigger: "kai-trigger", onTriggerClose: "kai-trigger-close", onValueChange: "kai-value-change" },
287
388
  () => import("@kitn.ai/ui/elements/composer")
288
- ), le = /* @__PURE__ */ e(
389
+ ), xe = /* @__PURE__ */ a(
289
390
  "kai-confirm",
290
391
  ["theme", "data", "cardId", "heading", "autofocus", "resolution"],
291
392
  {},
292
393
  () => import("@kitn.ai/ui/elements/confirm-card")
293
- ), de = /* @__PURE__ */ e(
394
+ ), Te = /* @__PURE__ */ a(
294
395
  "kai-context",
295
396
  ["theme", "context", "warnThreshold", "dangerThreshold"],
296
397
  { onThresholdChange: "kai-threshold-change" },
297
398
  () => import("@kitn.ai/ui/elements/context-meter")
298
- ), me = /* @__PURE__ */ e(
399
+ ), we = /* @__PURE__ */ a(
299
400
  "kai-conversations",
300
401
  ["theme", "groups", "conversations", "activeId", "collapsed", "defaultCollapsed"],
301
402
  { onCollapseToggle: "kai-collapse-toggle", onConversationSelect: "kai-conversation-select", onNewChat: "kai-new-chat", onSearch: "kai-search", onToggleSidebar: "kai-toggle-sidebar" },
302
403
  () => import("@kitn.ai/ui/elements/conversation-list")
303
- ), pe = /* @__PURE__ */ e(
404
+ ), Ie = /* @__PURE__ */ a(
304
405
  "kai-dialog",
305
406
  ["theme", "open", "defaultOpen"],
306
407
  { onOpenChange: "kai-open-change" },
307
408
  () => import("@kitn.ai/ui/elements/dialog")
308
- ), he = /* @__PURE__ */ e(
409
+ ), ze = /* @__PURE__ */ a(
309
410
  "kai-editable-label",
310
411
  ["theme", "value", "editing", "placeholder", "disabled"],
311
412
  { onCancel: "kai-cancel", onRename: "kai-rename" },
312
413
  () => import("@kitn.ai/ui/elements/editable-label")
313
- ), ue = /* @__PURE__ */ e(
414
+ ), Oe = /* @__PURE__ */ a(
314
415
  "kai-embed",
315
416
  ["theme", "cardId", "data"],
316
417
  {},
317
418
  () => import("@kitn.ai/ui/elements/embed")
318
- ), ge = /* @__PURE__ */ e(
419
+ ), Me = /* @__PURE__ */ a(
319
420
  "kai-empty",
320
421
  ["theme", "emptyTitle", "description"],
321
422
  {},
322
423
  () => import("@kitn.ai/ui/elements/empty")
323
- ), ke = /* @__PURE__ */ e(
424
+ ), Re = /* @__PURE__ */ a(
324
425
  "kai-feedback-bar",
325
426
  ["theme", "barTitle", "collectDetail", "categories", "detailTitle", "detailPlaceholder", "submitLabel", "thanksMessage"],
326
427
  { onClose: "kai-close", onFeedback: "kai-feedback", onFeedbackDetail: "kai-feedback-detail" },
327
428
  () => import("@kitn.ai/ui/elements/feedback-bar")
328
- ), be = /* @__PURE__ */ e(
429
+ ), Ae = /* @__PURE__ */ a(
329
430
  "kai-file-tree",
330
431
  ["theme", "files", "activeFile", "defaultExpanded", "summary"],
331
432
  { onSelect: "kai-select" },
332
433
  () => import("@kitn.ai/ui/elements/file-tree")
333
- ), fe = /* @__PURE__ */ e(
434
+ ), Ee = /* @__PURE__ */ a(
334
435
  "kai-file-upload",
335
436
  ["theme", "multiple", "accept", "disabled", "label"],
336
437
  { onFilesAdded: "kai-files-added" },
337
438
  () => import("@kitn.ai/ui/elements/file-upload")
338
- ), ve = /* @__PURE__ */ e(
439
+ ), Ve = /* @__PURE__ */ a(
339
440
  "kai-form",
340
441
  ["theme", "data", "cardId", "heading", "resolution", "values", "defaultValues", "disabled"],
341
442
  { onValuesChange: "kai-values-change" },
342
443
  () => import("@kitn.ai/ui/elements/form")
343
- ), Ce = /* @__PURE__ */ e(
444
+ ), Fe = /* @__PURE__ */ a(
344
445
  "kai-hover-card",
345
446
  ["theme", "openDelay", "closeDelay", "placement", "open", "defaultOpen", "disabled"],
346
447
  { onOpenChange: "kai-open-change" },
347
448
  () => import("@kitn.ai/ui/elements/hover-card")
348
- ), Se = /* @__PURE__ */ e(
449
+ ), Pe = /* @__PURE__ */ a(
349
450
  "kai-icon",
350
451
  ["theme", "name", "size"],
351
452
  {},
352
453
  () => import("@kitn.ai/ui/elements/icon")
353
- ), ye = /* @__PURE__ */ e(
454
+ ), De = /* @__PURE__ */ a(
354
455
  "kai-image",
355
456
  ["theme", "base64", "bytes", "alt", "mediaType"],
356
457
  {},
357
458
  () => import("@kitn.ai/ui/elements/image")
358
- ), Te = /* @__PURE__ */ e(
459
+ ), Le = /* @__PURE__ */ a(
359
460
  "kai-input",
360
461
  ["theme", "type", "value", "placeholder", "label", "hint", "error", "size", "disabled", "readonly", "required", "invalid", "name", "autocomplete", "inputmode"],
361
462
  { onChange: "kai-change", onInput: "kai-input" },
362
463
  () => import("@kitn.ai/ui/elements/input")
363
- ), xe = /* @__PURE__ */ e(
464
+ ), Ne = /* @__PURE__ */ a(
364
465
  "kai-kbd",
365
466
  ["theme", "keys", "platform", "size"],
366
467
  {},
367
468
  () => import("@kitn.ai/ui/elements/kbd")
368
- ), we = /* @__PURE__ */ e(
469
+ ), Be = /* @__PURE__ */ a(
369
470
  "kai-link-preview",
370
471
  ["theme", "cardId", "data"],
371
472
  {},
372
473
  () => import("@kitn.ai/ui/elements/link-preview")
373
- ), ze = /* @__PURE__ */ e(
474
+ ), He = /* @__PURE__ */ a(
374
475
  "kai-loader",
375
476
  ["theme", "variant", "size", "text"],
376
477
  {},
377
478
  () => import("@kitn.ai/ui/elements/loader")
378
- ), Ie = /* @__PURE__ */ e(
479
+ ), Ue = /* @__PURE__ */ a(
379
480
  "kai-markdown",
380
481
  ["theme", "content", "proseSize", "codeTheme", "codeHighlight"],
381
482
  {},
382
483
  () => import("@kitn.ai/ui/elements/markdown")
383
- ), Me = /* @__PURE__ */ e(
484
+ ), We = /* @__PURE__ */ a(
384
485
  "kai-menu",
385
486
  ["theme", "items", "placement", "triggerIcon", "triggerLabel", "triggerIconTrailing", "label", "open", "defaultOpen", "disabled"],
386
487
  { onOpenChange: "kai-open-change", onSelect: "kai-select" },
387
488
  () => import("@kitn.ai/ui/elements/menu")
388
- ), Re = /* @__PURE__ */ e(
489
+ ), je = /* @__PURE__ */ a(
389
490
  "kai-message",
390
- ["theme", "message", "role", "content", "markdown", "proseSize", "codeTheme", "codeHighlight", "actionsReveal", "avatarSrc", "avatarFallback", "avatar"],
491
+ ["theme", "message", "role", "markdown", "proseSize", "codeTheme", "codeHighlight", "actionsReveal", "avatarSrc", "avatarFallback", "avatar", "cardTypes", "cardSchemas"],
391
492
  { onMessageAction: "kai-message-action" },
392
493
  () => import("@kitn.ai/ui/elements/message")
393
- ), Oe = /* @__PURE__ */ e(
494
+ ), Ke = /* @__PURE__ */ a(
394
495
  "kai-model-switcher",
395
496
  ["theme", "models", "currentModel", "open", "defaultOpen", "disabled"],
396
497
  { onModelChange: "kai-model-change", onOpenChange: "kai-open-change" },
397
498
  () => import("@kitn.ai/ui/elements/model-switcher")
398
- ), Ae = /* @__PURE__ */ e(
499
+ ), qe = /* @__PURE__ */ a(
399
500
  "kai-nav",
400
501
  ["theme", "items", "value", "defaultValue", "defaultCollapsed"],
401
502
  { onNavItemAction: "kai-nav-item-action", onNavItemClose: "kai-nav-item-close", onNavSelect: "kai-nav-select" },
402
503
  () => import("@kitn.ai/ui/elements/nav")
403
- ), Ee = /* @__PURE__ */ e(
504
+ ), Ge = /* @__PURE__ */ a(
404
505
  "kai-notice",
405
506
  ["theme", "severity", "icon", "dismissible"],
406
507
  { onDismiss: "kai-dismiss" },
407
508
  () => import("@kitn.ai/ui/elements/notice")
408
- ), Ve = /* @__PURE__ */ e(
509
+ ), _e = /* @__PURE__ */ a(
409
510
  "kai-pane",
410
511
  ["theme", "headline", "subtitle", "maximized", "focused", "showSplit", "showDock", "status"],
411
512
  { onClose: "kai-close", onDock: "kai-dock", onMaximize: "kai-maximize", onSplit: "kai-split" },
412
513
  () => import("@kitn.ai/ui/elements/pane")
413
- ), De = /* @__PURE__ */ e(
514
+ ), Ye = /* @__PURE__ */ a(
414
515
  "kai-pane-group",
415
516
  ["theme", "tabs", "active", "focused"],
416
517
  { onTabChange: "kai-tab-change", onTabClose: "kai-tab-close", onTabMenu: "kai-tab-menu" },
417
518
  () => import("@kitn.ai/ui/elements/pane-group")
418
- ), Fe = /* @__PURE__ */ e(
519
+ ), Je = /* @__PURE__ */ a(
419
520
  "kai-popover",
420
521
  ["theme", "placement", "gutter", "open", "defaultOpen", "disabled"],
421
522
  { onOpenChange: "kai-open-change" },
422
523
  () => import("@kitn.ai/ui/elements/popover")
423
- ), Be = /* @__PURE__ */ e(
524
+ ), Qe = /* @__PURE__ */ a(
424
525
  "kai-progress-bar",
425
526
  ["theme", "value", "max", "label", "tone"],
426
527
  {},
427
528
  () => import("@kitn.ai/ui/elements/progress-bar")
428
- ), Le = /* @__PURE__ */ e(
529
+ ), Xe = /* @__PURE__ */ a(
429
530
  "kai-prompt-dock",
430
531
  ["theme", "frame", "appearance"],
431
532
  {},
432
533
  () => import("@kitn.ai/ui/elements/prompt-dock")
433
- ), Pe = /* @__PURE__ */ e(
534
+ ), Ze = /* @__PURE__ */ a(
434
535
  "kai-prompt-input",
435
536
  ["theme", "value", "placeholder", "disabled", "loading", "suggestions", "suggestionMode", "search", "voice", "stoppable", "submit", "attach", "attachments", "triggers", "kindIcons"],
436
537
  { onAttachmentsChange: "kai-attachments-change", onSearch: "kai-search", onStop: "kai-stop", onSubmit: "kai-submit", onSuggestionClick: "kai-suggestion-click", onToolbarAction: "kai-toolbar-action", onValueChange: "kai-value-change", onVoice: "kai-voice" },
437
538
  () => import("@kitn.ai/ui/elements/prompt-input")
438
- ), He = /* @__PURE__ */ e(
539
+ ), $e = /* @__PURE__ */ a(
439
540
  "kai-reasoning",
440
541
  ["theme", "text", "label", "open", "defaultOpen", "streaming", "markdown", "disabled"],
441
542
  { onOpenChange: "kai-open-change" },
442
543
  () => import("@kitn.ai/ui/elements/reasoning")
443
- ), Ne = /* @__PURE__ */ e(
544
+ ), et = /* @__PURE__ */ a(
444
545
  "kai-remote",
445
546
  ["theme", "src", "providerOrigin", "envelope", "policy"],
446
547
  {},
447
548
  () => import("@kitn.ai/ui/elements/remote")
448
- ), Ue = /* @__PURE__ */ e(
549
+ ), tt = /* @__PURE__ */ a(
449
550
  "kai-resizable",
450
551
  ["theme", "orientation", "maximizedIndex", "handle"],
451
- { onChange: "kai-change", onMaximizeChange: "kai-maximize-change" },
552
+ { onChange: "kai-change", onMaximizeChange: "kai-maximize-change", onMaximizeState: "kai-maximize-state" },
452
553
  () => import("@kitn.ai/ui/elements/resizable")
453
- ), We = /* @__PURE__ */ e(
554
+ ), at = /* @__PURE__ */ a(
454
555
  "kai-resizable-item",
455
556
  ["theme", "size", "min", "max", "locked", "hidden", "collapsed"],
456
- { onChange: "kai-change", onMaximizeChange: "kai-maximize-change" },
557
+ { onChange: "kai-change", onMaximizeChange: "kai-maximize-change", onMaximizeState: "kai-maximize-state" },
457
558
  () => import("@kitn.ai/ui/elements/resizable")
458
- ), je = /* @__PURE__ */ e(
559
+ ), nt = /* @__PURE__ */ a(
459
560
  "kai-response-stream",
460
561
  ["theme", "text", "mode", "speed", "as"],
461
562
  { onComplete: "kai-complete" },
462
563
  () => import("@kitn.ai/ui/elements/response-stream")
463
- ), qe = /* @__PURE__ */ e(
564
+ ), it = /* @__PURE__ */ a(
464
565
  "kai-scope-picker",
465
566
  ["theme", "availableAuthors", "availableTags", "currentLabel", "open", "defaultOpen", "disabled"],
466
567
  { onOpenChange: "kai-open-change", onScopeChange: "kai-scope-change" },
467
568
  () => import("@kitn.ai/ui/elements/chat-scope-picker")
468
- ), Ge = /* @__PURE__ */ e(
569
+ ), ot = /* @__PURE__ */ a(
469
570
  "kai-screen",
470
571
  ["theme", "open", "defaultOpen", "headline", "back", "noInert"],
471
572
  { onBack: "kai-back", onOpenChange: "kai-open-change" },
472
573
  () => import("@kitn.ai/ui/elements/screen")
473
- ), Ke = /* @__PURE__ */ e(
574
+ ), st = /* @__PURE__ */ a(
474
575
  "kai-scroll-area",
475
576
  ["theme", "orientation"],
476
577
  {},
477
578
  () => import("@kitn.ai/ui/elements/scroll-area")
478
- ), Qe = /* @__PURE__ */ e(
579
+ ), rt = /* @__PURE__ */ a(
479
580
  "kai-scroll-button",
480
581
  ["theme", "for", "variant", "size"],
481
582
  { onScroll: "kai-scroll" },
482
583
  () => import("@kitn.ai/ui/elements/scroll-button")
483
- ), Je = /* @__PURE__ */ e(
584
+ ), ct = /* @__PURE__ */ a(
484
585
  "kai-search",
485
586
  ["theme", "value", "placeholder", "icon", "debounce", "loading", "shortcut"],
486
587
  { onChange: "kai-change", onSearch: "kai-search", onSubmit: "kai-submit" },
487
588
  () => import("@kitn.ai/ui/elements/search")
488
- ), Xe = /* @__PURE__ */ e(
589
+ ), lt = /* @__PURE__ */ a(
489
590
  "kai-segmented",
490
591
  ["theme", "options", "value", "size"],
491
592
  { onChange: "kai-change" },
492
593
  () => import("@kitn.ai/ui/elements/segmented")
493
- ), Ye = /* @__PURE__ */ e(
594
+ ), dt = /* @__PURE__ */ a(
494
595
  "kai-separator",
495
596
  ["theme", "orientation"],
496
597
  {},
497
598
  () => import("@kitn.ai/ui/elements/separator")
498
- ), Ze = /* @__PURE__ */ e(
599
+ ), mt = /* @__PURE__ */ a(
499
600
  "kai-setting-item",
500
601
  ["theme", "label", "description"],
501
602
  {},
502
603
  () => import("@kitn.ai/ui/elements/setting-item")
503
- ), _e = /* @__PURE__ */ e(
604
+ ), ut = /* @__PURE__ */ a(
504
605
  "kai-settings-group",
505
606
  ["theme", "heading", "description"],
506
607
  {},
507
608
  () => import("@kitn.ai/ui/elements/settings-group")
508
- ), $e = /* @__PURE__ */ e(
609
+ ), pt = /* @__PURE__ */ a(
509
610
  "kai-skeleton",
510
611
  ["theme", "variant", "width", "height", "lines"],
511
612
  {},
512
613
  () => import("@kitn.ai/ui/elements/skeleton")
513
- ), et = /* @__PURE__ */ e(
614
+ ), ht = /* @__PURE__ */ a(
514
615
  "kai-skills",
515
616
  ["theme", "skills"],
516
617
  {},
517
618
  () => import("@kitn.ai/ui/elements/message-skills")
518
- ), tt = /* @__PURE__ */ e(
619
+ ), gt = /* @__PURE__ */ a(
519
620
  "kai-source",
520
621
  ["theme", "href", "label", "headline", "description", "showFavicon"],
521
622
  {},
522
623
  () => import("@kitn.ai/ui/elements/source")
523
- ), at = /* @__PURE__ */ e(
624
+ ), kt = /* @__PURE__ */ a(
524
625
  "kai-sources",
525
626
  ["theme", "sources", "showFavicon", "numbered"],
526
627
  {},
527
628
  () => import("@kitn.ai/ui/elements/source")
528
- ), ot = /* @__PURE__ */ e(
629
+ ), ft = /* @__PURE__ */ a(
529
630
  "kai-status",
530
631
  ["theme", "status", "pulse", "label", "size"],
531
632
  {},
532
633
  () => import("@kitn.ai/ui/elements/status")
533
- ), nt = /* @__PURE__ */ e(
634
+ ), bt = /* @__PURE__ */ a(
534
635
  "kai-suggestions",
535
636
  ["theme", "suggestions", "variant", "size", "layout", "block", "highlight"],
536
637
  { onSelect: "kai-select" },
537
638
  () => import("@kitn.ai/ui/elements/prompt-suggestions")
538
- ), it = /* @__PURE__ */ e(
639
+ ), vt = /* @__PURE__ */ a(
539
640
  "kai-switch",
540
641
  ["theme", "checked", "defaultChecked", "disabled", "label", "name", "value"],
541
642
  { onChange: "kai-change" },
542
643
  () => import("@kitn.ai/ui/elements/switch")
543
- ), st = /* @__PURE__ */ e(
644
+ ), Ct = /* @__PURE__ */ a(
544
645
  "kai-tabs",
545
646
  ["theme", "items", "value", "defaultValue", "variant", "block", "disabled"],
546
647
  { onTabChange: "kai-tab-change" },
547
648
  () => import("@kitn.ai/ui/elements/tabs")
548
- ), rt = /* @__PURE__ */ e(
649
+ ), St = /* @__PURE__ */ a(
549
650
  "kai-tasks",
550
651
  ["theme", "data", "cardId", "heading", "resolution", "value", "defaultValue", "disabled", "readonly"],
551
652
  { onValueChange: "kai-value-change" },
552
653
  () => import("@kitn.ai/ui/elements/tasks")
553
- ), ct = /* @__PURE__ */ e(
654
+ ), yt = /* @__PURE__ */ a(
554
655
  "kai-text-shimmer",
555
656
  ["theme", "text", "as", "duration", "spread"],
556
657
  {},
557
658
  () => import("@kitn.ai/ui/elements/text-shimmer")
558
- ), lt = /* @__PURE__ */ e(
659
+ ), xt = /* @__PURE__ */ a(
559
660
  "kai-thinking-bar",
560
661
  ["theme", "text", "stoppable", "stopLabel"],
561
662
  { onStop: "kai-stop" },
562
663
  () => import("@kitn.ai/ui/elements/thinking-bar")
563
- ), dt = /* @__PURE__ */ e(
664
+ ), Tt = /* @__PURE__ */ a(
564
665
  "kai-thread",
565
- ["theme", "messages", "loading", "proseSize", "codeTheme", "codeHighlight", "actionsReveal", "scrollButton", "class"],
666
+ ["theme", "messages", "loading", "proseSize", "codeTheme", "codeHighlight", "actionsReveal", "scrollButton", "class", "cardTypes", "cardSchemas"],
566
667
  { onMessageAction: "kai-message-action" },
567
668
  () => import("@kitn.ai/ui/elements/thread")
568
- ), mt = /* @__PURE__ */ e(
669
+ ), wt = /* @__PURE__ */ a(
569
670
  "kai-toast-region",
570
671
  ["theme", "toasts", "position", "max", "stack", "appearance", "inverse", "target"],
571
672
  { onAction: "kai-action", onDismiss: "kai-dismiss" },
572
673
  () => import("@kitn.ai/ui/elements/toast")
573
- ), pt = /* @__PURE__ */ e(
674
+ ), It = /* @__PURE__ */ a(
574
675
  "kai-tool",
575
676
  ["theme", "tool", "open", "defaultOpen", "disabled"],
576
677
  { onOpenChange: "kai-open-change" },
577
678
  () => import("@kitn.ai/ui/elements/tool")
578
- ), ht = /* @__PURE__ */ e(
679
+ ), zt = /* @__PURE__ */ a(
579
680
  "kai-tooltip",
580
681
  ["theme", "content", "openDelay", "closeDelay", "placement", "open", "defaultOpen", "disabled"],
581
682
  { onOpenChange: "kai-open-change" },
582
683
  () => import("@kitn.ai/ui/elements/tooltip")
583
- ), ut = /* @__PURE__ */ e(
684
+ ), Ot = /* @__PURE__ */ a(
584
685
  "kai-voice-input",
585
686
  ["theme", "transcribe", "disabled", "recognitionLang", "interim"],
586
687
  { onAudioCaptured: "kai-audio-captured", onRecordingChange: "kai-recording-change", onTranscriptInterim: "kai-transcript-interim", onTranscription: "kai-transcription" },
587
688
  () => import("@kitn.ai/ui/elements/voice-input")
588
- ), gt = /* @__PURE__ */ e(
689
+ ), Mt = /* @__PURE__ */ a(
589
690
  "kai-voice-output",
590
691
  ["theme", "text", "autoplay", "synthesize", "disabled"],
591
692
  { onSpeakingChange: "kai-speaking-change", onSynthesized: "kai-synthesized" },
592
693
  () => import("@kitn.ai/ui/elements/voice-output")
593
- ), kt = /* @__PURE__ */ e(
694
+ ), Rt = /* @__PURE__ */ a(
594
695
  "kai-workspace",
595
- ["theme", "groups", "conversations", "activeId", "messages", "value", "placeholder", "loading", "suggestions", "suggestionMode", "proseSize", "codeTheme", "codeHighlight", "chatTitle", "models", "currentModel", "context", "scrollButton", "search", "voice", "triggers", "kindIcons", "sidebarWidth", "sidebarMinWidth", "sidebarMaxWidth", "sidebarCollapsed", "defaultSidebarCollapsed", "collapseBelow", "compact", "noConversations"],
696
+ ["theme", "groups", "conversations", "activeId", "messages", "value", "placeholder", "loading", "suggestions", "suggestionMode", "proseSize", "codeTheme", "codeHighlight", "chatTitle", "models", "currentModel", "context", "scrollButton", "search", "voice", "triggers", "kindIcons", "sidebarWidth", "sidebarMinWidth", "sidebarMaxWidth", "sidebarCollapsed", "defaultSidebarCollapsed", "collapseBelow", "compact", "noConversations", "cardTypes", "cardSchemas"],
596
697
  { onConversationSelect: "kai-conversation-select", onMessageAction: "kai-message-action", onModelChange: "kai-model-change", onNewChat: "kai-new-chat", onSearch: "kai-search", onSidebarToggle: "kai-sidebar-toggle", onSubmit: "kai-submit", onSuggestionClick: "kai-suggestion-click", onValueChange: "kai-value-change", onVoice: "kai-voice" },
597
698
  () => import("@kitn.ai/ui/elements/chat-workspace")
598
699
  );
599
700
  export {
600
- G as AgentCard,
601
- K as Artifact,
602
- Q as Attachments,
603
- J as AudioVisualizer,
604
- X as Avatar,
605
- Y as Badge,
606
- Z as Button,
607
- _ as Card,
608
- $ as Cards,
609
- ee as ChainOfThought,
610
- te as Chat,
611
- ae as Checkpoint,
612
- oe as Choice,
613
- ne as Coachmark,
614
- ie as CodeBlock,
615
- se as Command,
616
- re as Compare,
617
- ce as Composer,
618
- le as Confirm,
619
- de as Context,
620
- me as Conversations,
621
- pe as Dialog,
622
- he as EditableLabel,
623
- ue as Embed,
624
- ge as Empty,
625
- ke as FeedbackBar,
626
- be as FileTree,
627
- fe as FileUpload,
628
- ve as Form,
629
- Ce as HoverCard,
630
- Se as Icon,
631
- ye as Image,
632
- Te as Input,
633
- xe as Kbd,
634
- we as LinkPreview,
635
- ze as Loader,
636
- Ie as Markdown,
637
- Me as Menu,
638
- Re as Message,
639
- Oe as ModelSwitcher,
640
- Ae as Nav,
641
- Ee as Notice,
642
- Ve as Pane,
643
- De as PaneGroup,
644
- Fe as Popover,
645
- Be as ProgressBar,
646
- Le as PromptDock,
647
- Pe as PromptInput,
648
- He as Reasoning,
649
- Ne as Remote,
650
- Ue as Resizable,
651
- We as ResizableItem,
652
- je as ResponseStream,
653
- qe as ScopePicker,
654
- Ge as Screen,
655
- Ke as ScrollArea,
656
- Qe as ScrollButton,
657
- Je as Search,
658
- Xe as Segmented,
659
- Ye as Separator,
660
- Ze as SettingItem,
661
- _e as SettingsGroup,
662
- $e as Skeleton,
663
- et as Skills,
664
- tt as Source,
665
- at as Sources,
666
- ot as Status,
667
- nt as Suggestions,
668
- it as Switch,
669
- st as Tabs,
670
- rt as Tasks,
671
- ct as TextShimmer,
672
- lt as ThinkingBar,
673
- dt as Thread,
674
- mt as ToastRegion,
675
- pt as Tool,
676
- ht as Tooltip,
677
- ut as VoiceInput,
678
- gt as VoiceOutput,
679
- kt as Workspace,
680
- W as registerAll,
681
- j as useKaiChat,
682
- q as useVoiceInput
701
+ oe as AgentCard,
702
+ se as Artifact,
703
+ re as Attachments,
704
+ ce as AudioVisualizer,
705
+ le as Avatar,
706
+ de as Badge,
707
+ me as Button,
708
+ ue as Card,
709
+ pe as Cards,
710
+ he as ChainOfThought,
711
+ ge as Chat,
712
+ ke as Checkpoint,
713
+ fe as Choice,
714
+ be as Coachmark,
715
+ ve as CodeBlock,
716
+ Ce as Command,
717
+ Se as Compare,
718
+ ye as Composer,
719
+ xe as Confirm,
720
+ Te as Context,
721
+ we as Conversations,
722
+ Ie as Dialog,
723
+ ze as EditableLabel,
724
+ Oe as Embed,
725
+ Me as Empty,
726
+ Re as FeedbackBar,
727
+ Ae as FileTree,
728
+ Ee as FileUpload,
729
+ Ve as Form,
730
+ Fe as HoverCard,
731
+ Pe as Icon,
732
+ De as Image,
733
+ Le as Input,
734
+ Ne as Kbd,
735
+ Be as LinkPreview,
736
+ He as Loader,
737
+ Ue as Markdown,
738
+ We as Menu,
739
+ je as Message,
740
+ Ke as ModelSwitcher,
741
+ qe as Nav,
742
+ Ge as Notice,
743
+ _e as Pane,
744
+ Ye as PaneGroup,
745
+ Je as Popover,
746
+ Qe as ProgressBar,
747
+ Xe as PromptDock,
748
+ Ze as PromptInput,
749
+ $e as Reasoning,
750
+ et as Remote,
751
+ tt as Resizable,
752
+ at as ResizableItem,
753
+ nt as ResponseStream,
754
+ it as ScopePicker,
755
+ ot as Screen,
756
+ st as ScrollArea,
757
+ rt as ScrollButton,
758
+ ct as Search,
759
+ lt as Segmented,
760
+ dt as Separator,
761
+ mt as SettingItem,
762
+ ut as SettingsGroup,
763
+ pt as Skeleton,
764
+ ht as Skills,
765
+ gt as Source,
766
+ kt as Sources,
767
+ ft as Status,
768
+ bt as Suggestions,
769
+ vt as Switch,
770
+ Ct as Tabs,
771
+ St as Tasks,
772
+ yt as TextShimmer,
773
+ xt as ThinkingBar,
774
+ Tt as Thread,
775
+ wt as ToastRegion,
776
+ It as Tool,
777
+ zt as Tooltip,
778
+ Ot as VoiceInput,
779
+ Mt as VoiceOutput,
780
+ Rt as Workspace,
781
+ ae as registerAll,
782
+ ne as useKaiChat,
783
+ ie as useVoiceInput
683
784
  };