@kitn.ai/ui 0.27.0 → 0.29.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 (612) hide show
  1. package/README.md +10 -2
  2. package/dist/{Icon-BnFKqqtY.js → Icon-DObhsRtm.js} +1 -1
  3. package/dist/{action-icons-CBskfBMz.js → action-icons-CcgNN2oT.js} +1 -1
  4. package/dist/agent-tooling/construct/public.d.ts +15 -0
  5. package/dist/agent-tooling/construct/schema.d.ts +111 -0
  6. package/dist/arrow-down-CjRU3JgV.js +1 -0
  7. package/dist/arrow-left-Bnpb1UEW.js +1 -0
  8. package/dist/{artifact-CvXEm1lS.js → artifact-Bwt7OgcR.js} +1 -1
  9. package/dist/{attachments-C43ZegEq.js → attachments-Qr4kg-2b.js} +1 -1
  10. package/dist/{audio-visualizer-B-79y1Tj.js → audio-visualizer-DToYdfSc.js} +1 -1
  11. package/dist/{badge-BpUbq8c0.js → badge-CdEu_jn2.js} +1 -1
  12. package/dist/{bell-sn17Ip9v.js → bell-DQAAOpDz.js} +1 -1
  13. package/dist/{button-BH6rN0U-.js → button-DkuOnGLy.js} +1 -1
  14. package/dist/{card-renderer-Cb1gQmth.js → card-renderer-Jx70m6_l.js} +1 -1
  15. package/dist/{card-routing-DifQgS7n.js → card-routing-0YidER_3.js} +1 -1
  16. package/dist/check-njkVdZu2.js +1 -0
  17. package/dist/{checkbox-Dc9Yov_B.js → checkbox-D7iRB3nL.js} +1 -1
  18. package/dist/{checkbox-group-B1kDLLYk.js → checkbox-group-B2_rpoPM.js} +1 -1
  19. package/dist/chevron-down-B72s6PXR.js +1 -0
  20. package/dist/chevron-right-BatuHzUm.js +1 -0
  21. package/dist/{choice-card-BT3c1S8g.js → choice-card-m0BYqqOK.js} +1 -1
  22. package/dist/circle-check-B62pODB3.js +1 -0
  23. package/dist/{circle-x-wobWkoSx.js → circle-x-BPG0iPst.js} +1 -1
  24. package/dist/circle-zx0ByzY9.js +1 -0
  25. package/dist/code-block-ClMLKb7C.js +1 -0
  26. package/dist/{collapsible-CPJbf6FM.js → collapsible-B4DlWicL.js} +1 -1
  27. package/dist/components/chat-thread.d.ts +89 -1
  28. package/dist/components/conversation-item.d.ts +16 -0
  29. package/dist/components/conversation-panel.d.ts +29 -0
  30. package/dist/components/home-panel.d.ts +34 -0
  31. package/dist/components/widget-tab-bar.d.ts +16 -0
  32. package/dist/{composer-CjngLzal.js → composer-sQ0HcvyG.js} +3 -3
  33. package/dist/{confirm-card-DCx_A4bU.js → confirm-card-rQWDQsnC.js} +1 -1
  34. package/dist/construct-cli.es.js +185 -17
  35. package/dist/construct.d.ts +5 -0
  36. package/dist/construct.js +327 -0
  37. package/dist/{context-BY8V-Nlp.js → context-0kg4ZX1J.js} +1 -1
  38. package/dist/controllable-CnGpMF6r.js +1 -0
  39. package/dist/conversation-item-BxwQLaFJ.js +1 -0
  40. package/dist/conversation-list-BCfGN1JU.js +1 -0
  41. package/dist/{copy-B6DO4PqB.js → copy-n9u9rqpi.js} +1 -1
  42. package/dist/core-C8fzo39E.js +1 -12
  43. package/dist/{create-tween-CnMHviKB.js → create-tween-C-q-JCM-.js} +1 -1
  44. package/dist/{create-tween-D1aiGZZh.js → create-tween-CRrJXxBd.js} +1 -1
  45. package/dist/{create-tween-BPzaefTp.js → create-tween-DZ3RRDHD.js} +1 -1
  46. package/dist/{create-tween-DUSQUKpr.js → create-tween-uPkArjIG.js} +1 -1
  47. package/dist/custom-elements.json +51 -2
  48. package/dist/{default-input-CucQEOqH.js → default-input-CaMrJkgH.js} +1 -1
  49. package/dist/define-By-uL588.js +1 -0
  50. package/dist/define.js +2 -2
  51. package/dist/define.server.js +2 -2
  52. package/dist/{disclosure-CbLtajUQ.js → disclosure-WUImBbDv.js} +1 -1
  53. package/dist/{dropdown-BwhViJFd.js → dropdown-wZVeJOMd.js} +1 -1
  54. package/dist/elements/agent-card.js +1 -1
  55. package/dist/elements/artifact.js +1 -1
  56. package/dist/elements/attachments.js +1 -1
  57. package/dist/elements/audio-visualizer.js +1 -1
  58. package/dist/elements/avatar.js +1 -1
  59. package/dist/elements/badge.js +1 -1
  60. package/dist/elements/button.js +1 -1
  61. package/dist/elements/card.js +1 -1
  62. package/dist/elements/cards.js +1 -1
  63. package/dist/elements/chain-of-thought.js +1 -1
  64. package/dist/elements/chat-scope-picker.js +1 -1
  65. package/dist/elements/chat-workspace.js +1 -1
  66. package/dist/elements/chat.js +1 -1
  67. package/dist/elements/checkbox-group.js +1 -1
  68. package/dist/elements/checkbox.js +1 -1
  69. package/dist/elements/checkpoint.js +1 -1
  70. package/dist/elements/choice.js +1 -1
  71. package/dist/elements/coachmark.js +1 -1
  72. package/dist/elements/code-block.js +1 -1
  73. package/dist/elements/command.js +1 -1
  74. package/dist/elements/compare.js +1 -1
  75. package/dist/elements/composer.js +1 -1
  76. package/dist/elements/confirm-card.js +1 -1
  77. package/dist/elements/context-meter.js +1 -1
  78. package/dist/elements/conversation-item.js +1 -1
  79. package/dist/elements/conversation-list.js +1 -1
  80. package/dist/elements/dialog.js +1 -1
  81. package/dist/elements/dock.js +3 -3
  82. package/dist/elements/dropdown.js +1 -1
  83. package/dist/elements/editable-label.js +1 -1
  84. package/dist/elements/embed.js +1 -1
  85. package/dist/elements/empty.js +1 -1
  86. package/dist/elements/feedback-bar.js +1 -1
  87. package/dist/elements/file-tree.js +1 -1
  88. package/dist/elements/file-upload.js +1 -1
  89. package/dist/elements/form.js +1 -1
  90. package/dist/elements/hover-card.js +1 -1
  91. package/dist/elements/icon.js +1 -1
  92. package/dist/elements/image.js +1 -1
  93. package/dist/elements/input.js +1 -1
  94. package/dist/elements/kbd.js +1 -1
  95. package/dist/elements/link-preview.js +1 -1
  96. package/dist/elements/loader.js +1 -1
  97. package/dist/elements/markdown.js +1 -1
  98. package/dist/elements/menu.js +1 -1
  99. package/dist/elements/message-skills.js +1 -1
  100. package/dist/elements/message.js +1 -1
  101. package/dist/elements/model-switcher.js +1 -1
  102. package/dist/elements/nav.js +1 -1
  103. package/dist/elements/notice.js +1 -1
  104. package/dist/elements/pane-grid.js +1 -1
  105. package/dist/elements/pane-group.js +1 -1
  106. package/dist/elements/pane.js +1 -1
  107. package/dist/elements/popover.js +1 -1
  108. package/dist/elements/progress-bar.js +1 -1
  109. package/dist/elements/prompt-dock.js +1 -1
  110. package/dist/elements/prompt-input.js +1 -1
  111. package/dist/elements/prompt-suggestions.js +1 -1
  112. package/dist/elements/radio-group.js +1 -1
  113. package/dist/elements/reasoning.js +1 -1
  114. package/dist/elements/remote.js +1 -1
  115. package/dist/elements/resizable.js +1 -1
  116. package/dist/elements/response-stream.js +1 -1
  117. package/dist/elements/screen.js +1 -1
  118. package/dist/elements/scroll-area.js +1 -1
  119. package/dist/elements/scroll-button.js +1 -1
  120. package/dist/elements/search.js +1 -1
  121. package/dist/elements/segmented.js +1 -1
  122. package/dist/elements/select.js +1 -1
  123. package/dist/elements/separator.js +1 -1
  124. package/dist/elements/setting-item.js +1 -1
  125. package/dist/elements/settings-group.js +1 -1
  126. package/dist/elements/skeleton.js +1 -1
  127. package/dist/elements/slider.js +1 -1
  128. package/dist/elements/source.js +1 -1
  129. package/dist/elements/status.js +1 -1
  130. package/dist/elements/switch.js +1 -1
  131. package/dist/elements/tabs.js +1 -1
  132. package/dist/elements/tasks.js +1 -1
  133. package/dist/elements/text-shimmer.js +1 -1
  134. package/dist/elements/thinking-bar.js +1 -1
  135. package/dist/elements/thread.js +1 -1
  136. package/dist/elements/toast.js +1 -1
  137. package/dist/elements/tool.js +1 -1
  138. package/dist/elements/tooltip.js +1 -1
  139. package/dist/elements/voice-input.js +1 -1
  140. package/dist/elements/voice-output.js +1 -1
  141. package/dist/elements.d.ts +20 -4
  142. package/dist/{ellipsis-DFr4Vqr3.js → ellipsis-CbOpJnU3.js} +1 -1
  143. package/dist/{embed-5s_vU4J0.js → embed-CrfjkbUG.js} +1 -1
  144. package/dist/engine-javascript-C1x7zo1_.js +1 -141
  145. package/dist/{external-link-u9d85ORQ.js → external-link-ByXAwBBQ.js} +1 -1
  146. package/dist/{file-text-CX7_x42o.js → file-text-DMib2qwt.js} +1 -1
  147. package/dist/{file-tree-D3kBjXI5.js → file-tree-CJqM2aP7.js} +1 -1
  148. package/dist/{folder-V-YdIL8f.js → folder-_BAb929C.js} +1 -1
  149. package/dist/{form-BRNUMCN2.js → form-DSZgZQZk.js} +1 -1
  150. package/dist/{hover-card-DaeiYrTA.js → hover-card-BQbul9eq.js} +1 -1
  151. package/dist/{icon-BpixdZNq.js → icon-CdcfRhYI.js} +1 -1
  152. package/dist/index.d.ts +3 -1
  153. package/dist/index.js +2842 -2703
  154. package/dist/index.server.js +2820 -2681
  155. package/dist/{info-8mFsIjS3.js → info-DsFjGuI_.js} +1 -1
  156. package/dist/{input-d1Yuu-hz.js → input-DKbmkMos.js} +1 -1
  157. package/dist/kai.es.js +1 -1
  158. package/dist/{kbd-961zMPFB.js → kbd-PvdGhX4s.js} +1 -1
  159. package/dist/{link-preview-DIIbV2Sd.js → link-preview-DbM1866N.js} +1 -1
  160. package/dist/{link-DlZZBGaR.js → link-zF8PzWfF.js} +1 -1
  161. package/dist/{loader-YQszHFaW.js → loader-BM4CEz4G.js} +1 -1
  162. package/dist/{markdown-CVk1MPsj.js → markdown-LMvmAyBk.js} +7 -7
  163. package/dist/mcp.es.js +79 -5
  164. package/dist/{message-CwKVEdZg.js → message-BSsgvHvf.js} +1 -1
  165. package/dist/{message-DS8lzHc1.js → message-BYZECyek.js} +1 -1
  166. package/dist/message-circle-DruwObfX.js +1 -0
  167. package/dist/message-square-BG6q6mlm.js +1 -0
  168. package/dist/{minimize-2-UEZmP2QT.js → minimize-2-BQRoBV1V.js} +1 -1
  169. package/dist/{model-switcher-Kk1jEQ5t.js → model-switcher-CMpCOYcB.js} +1 -1
  170. package/dist/{overlay-C1od6LOz.js → overlay-Cb-MkyDa.js} +1 -1
  171. package/dist/{panel-right-ryET0yyn.js → panel-right-i8warFxT.js} +1 -1
  172. package/dist/{paperclip-BDNoZFJP.js → paperclip-ByY3UVO6.js} +1 -1
  173. package/dist/play-BvKKq3fX.js +1 -0
  174. package/dist/primitives/conversation-store.d.ts +54 -0
  175. package/dist/{progress-bar-BvYX0aoy.js → progress-bar-jVAHvMUf.js} +1 -1
  176. package/dist/{prompt-suggestion-BRFu2lcu.js → prompt-suggestion-CD-qtNgC.js} +1 -1
  177. package/dist/{radio-DcL23cNJ.js → radio-BsoBMhkF.js} +1 -1
  178. package/dist/react/index.d.ts +393 -0
  179. package/dist/react.js +20 -20
  180. package/dist/{reasoning-Cackq4Rh.js → reasoning-4kBPtlTx.js} +1 -1
  181. package/dist/register-impl-B1hLkrI8.js +424 -0
  182. package/dist/{resizable-Cp9HUYih.js → resizable-uPmY9VY-.js} +1 -1
  183. package/dist/{rotate-ccw-0DLRDHH5.js → rotate-ccw-B2xn93py.js} +1 -1
  184. package/dist/{rotate-cw-DOB9IGcU.js → rotate-cw-CMVLoCyH.js} +1 -1
  185. package/dist/{scroll-area-emVmWP4K.js → scroll-area-BqLUo8ZZ.js} +1 -1
  186. package/dist/{scroll-button-CeP_gv1x.js → scroll-button-DslXiJyL.js} +1 -1
  187. package/dist/{select-CWmu00tS.js → select-2cLRtPGT.js} +1 -1
  188. package/dist/{separator-CE6vly6z.js → separator-BWQtNJcM.js} +1 -1
  189. package/dist/{settings-CE-78SvZ.js → settings-BBR63jLg.js} +1 -1
  190. package/dist/{settings-group-ZFWNxFQR.js → settings-group-B2ciy-Iw.js} +1 -1
  191. package/dist/{skeleton-BebdP4mf.js → skeleton-CkHI-HgC.js} +1 -1
  192. package/dist/{slider-BAKRYUlz.js → slider-DDR9U-i0.js} +1 -1
  193. package/dist/{solid-BE5ui6sy.js → solid-BzCFdL25.js} +7720 -7058
  194. package/dist/{solid-DFhsce3O.js → solid-DruVOXnf.js} +5864 -5283
  195. package/dist/solid.d.ts +6 -2
  196. package/dist/solid.js +217 -210
  197. package/dist/solid.server.js +217 -210
  198. package/dist/{source-B0FlguSx.js → source-GEnFF528.js} +1 -1
  199. package/dist/{star-CBMZvLuN.js → star-CilHq8GP.js} +1 -1
  200. package/dist/store-Ciyk6eZG.js +1 -0
  201. package/dist/{switch-CViARZCy.js → switch-KkeQIbuH.js} +1 -1
  202. package/dist/{tasks-card-MjCcOhR_.js → tasks-card-BrN4bggJ.js} +1 -1
  203. package/dist/{text-shimmer-DKlwRF2G.js → text-shimmer-Dcj1MHuq.js} +1 -1
  204. package/dist/{textarea-3ay2Me2-.js → textarea-Dpvbngbg.js} +1 -1
  205. package/dist/theme.tokens.css +28 -0
  206. package/dist/{thumbs-up-DQcu2HMO.js → thumbs-up-CsT9Wzb9.js} +1 -1
  207. package/dist/{toast-store-C6yKOhbk.js → toast-store-tgK6MuMv.js} +1 -1
  208. package/dist/{tool-BCYNlfKy.js → tool-DzUjIBT8.js} +1 -1
  209. package/dist/{tooltip-05zI4hjs.js → tooltip-Bkkg_4t0.js} +1 -1
  210. package/dist/{trash-2-BR1RxGky.js → trash-2-jBKxjGGQ.js} +1 -1
  211. package/dist/{triangle-alert-DHohDOCy.js → triangle-alert-DlQ68ppf.js} +1 -1
  212. package/dist/types.d.ts +48 -3
  213. package/dist/ui/dock.d.ts +29 -0
  214. package/dist/{upload-BbGW6A_u.js → upload-TcAHXv9W.js} +1 -1
  215. package/dist/{url-scheme-policy-DHpoTJwB.js → url-scheme-policy-DR5DgvkM.js} +1 -1
  216. package/dist/{use-card-resolution-CJW4grFa.js → use-card-resolution-DaZqAdWf.js} +1 -1
  217. package/dist/{variant-aurora-xiMPty8f.js → variant-aurora-BhLuYxJR.js} +1 -1
  218. package/dist/{variant-aurora-BUOVgPOB.js → variant-aurora-CNmfHhcx.js} +2 -2
  219. package/dist/{variant-aurora-CUsUJvFI.js → variant-aurora-D6GsdTPA.js} +2 -2
  220. package/dist/{variant-aurora-CW2i4bfr.js → variant-aurora-DbW_OWL2.js} +1 -1
  221. package/dist/{variant-custom-D91HjAKz.js → variant-custom-BRvaNHSi.js} +1 -1
  222. package/dist/{variant-custom-BQtOnmeO.js → variant-custom-BvYHR62b.js} +1 -1
  223. package/dist/{variant-custom-CAnzzppW.js → variant-custom-DMTrEO5w.js} +2 -2
  224. package/dist/{variant-custom-CAm9L-E5.js → variant-custom-DV2x254s.js} +2 -2
  225. package/dist/{variant-wave-Ca1Ls4_y.js → variant-wave-BNMGrDfj.js} +2 -2
  226. package/dist/{variant-wave-uY5crU_K.js → variant-wave-BpDd8t3Z.js} +1 -1
  227. package/dist/{variant-wave-CxX39DKd.js → variant-wave-CyBueXj9.js} +2 -2
  228. package/dist/{variant-wave-DYyzIIZv.js → variant-wave-sp-qwsdI.js} +1 -1
  229. package/dist/x-Z5UntkIJ.js +1 -0
  230. package/frameworks/react/index.tsx +14 -4
  231. package/llms-full.txt +7 -2
  232. package/package.json +16 -16
  233. package/src/elements/element-meta.json +49 -6
  234. package/theme.css +28 -0
  235. package/bin/route.test.js +0 -58
  236. package/dist/arrow-down-Br0qtpsz.js +0 -1
  237. package/dist/arrow-left-Dj7xgE12.js +0 -1
  238. package/dist/check-DPeeMUYx.js +0 -1
  239. package/dist/chevron-down-CHSWk7ZT.js +0 -1
  240. package/dist/chevron-right-B7l_fMgx.js +0 -1
  241. package/dist/circle-Bb0yOpqM.js +0 -1
  242. package/dist/circle-check-BGZpCiz7.js +0 -1
  243. package/dist/code-block-CUQ5mtv0.js +0 -1
  244. package/dist/controllable-D43BKmtX.js +0 -1
  245. package/dist/conversation-list-D4lLU_yS.js +0 -1
  246. package/dist/define-CGGX-7Vg.js +0 -1
  247. package/dist/message-circle-Xf8Q-vZp.js +0 -1
  248. package/dist/message-square-Cxnwgkns.js +0 -1
  249. package/dist/play-OFIvYXUQ.js +0 -1
  250. package/dist/register-impl-C7rENvPK.js +0 -424
  251. package/dist/store-7eoadydQ.js +0 -1
  252. package/dist/x-C5m1JFgi.js +0 -1
  253. package/src/agent-tooling/archetypes.ts +0 -205
  254. package/src/agent-tooling/catalog/README.md +0 -676
  255. package/src/agent-tooling/catalog/catalog-types.ts +0 -231
  256. package/src/agent-tooling/catalog/fabrications.ts +0 -96
  257. package/src/agent-tooling/catalog/invariants.ts +0 -284
  258. package/src/agent-tooling/catalog/labs-titles.ts +0 -114
  259. package/src/agent-tooling/catalog/scenarios.ts +0 -87
  260. package/src/agent-tooling/catalog/surfaces.ts +0 -347
  261. package/src/agent-tooling/construct/cli-entry.ts +0 -8
  262. package/src/agent-tooling/construct/cli.ts +0 -131
  263. package/src/agent-tooling/construct/codegen.ts +0 -1353
  264. package/src/agent-tooling/construct/construct.v1.schema.json +0 -250
  265. package/src/agent-tooling/construct/dev.ts +0 -148
  266. package/src/agent-tooling/construct/fixtures/demo-widget.construct.json +0 -7
  267. package/src/agent-tooling/construct/fixtures/ops-console.construct.json +0 -44
  268. package/src/agent-tooling/construct/fixtures/owner-widget.construct.json +0 -23
  269. package/src/agent-tooling/construct/schema.ts +0 -371
  270. package/src/agent-tooling/integrations/anthropic.ts +0 -442
  271. package/src/agent-tooling/integrations/cloudflare.ts +0 -218
  272. package/src/agent-tooling/integrations/langgraph.ts +0 -133
  273. package/src/agent-tooling/integrations/mastra.ts +0 -182
  274. package/src/agent-tooling/integrations/mock.ts +0 -148
  275. package/src/agent-tooling/integrations/ollama.ts +0 -97
  276. package/src/agent-tooling/integrations/openai.ts +0 -95
  277. package/src/agent-tooling/integrations/openrouter.ts +0 -82
  278. package/src/agent-tooling/integrations/pi.ts +0 -176
  279. package/src/agent-tooling/integrations/pydantic-ai.ts +0 -108
  280. package/src/agent-tooling/integrations/vercel-ai-sdk.ts +0 -398
  281. package/src/agent-tooling/mcp/css-raw.d.ts +0 -12
  282. package/src/agent-tooling/mcp/manifest.ts +0 -422
  283. package/src/agent-tooling/mcp/server.ts +0 -116
  284. package/src/agent-tooling/mcp/stdio.ts +0 -18
  285. package/src/agent-tooling/mcp/tools/construct.ts +0 -130
  286. package/src/agent-tooling/mcp/tools/debug.ts +0 -621
  287. package/src/agent-tooling/mcp/tools/reference.ts +0 -980
  288. package/src/agent-tooling/mcp/tools/scaffold.ts +0 -6708
  289. package/src/agent-tooling/mcp/tools/theme.ts +0 -456
  290. package/src/agent-tooling/mcp/tools/types.ts +0 -14
  291. package/src/agent-tooling/mcp/validate-args.ts +0 -141
  292. package/src/agent-tooling/recipes/composed-thread.ts +0 -714
  293. package/src/agent-tooling/recipes/index.ts +0 -22
  294. package/src/agent-tooling/recipes/types.ts +0 -32
  295. package/src/agent-tooling/registry.ts +0 -132
  296. package/src/agent-tooling/route-emit.ts +0 -305
  297. package/src/agent-tooling/types.ts +0 -390
  298. package/src/components/artifact-card.tsx +0 -120
  299. package/src/components/artifact.tsx +0 -914
  300. package/src/components/attachment-types.ts +0 -66
  301. package/src/components/attachments.tsx +0 -536
  302. package/src/components/audio-visualizer/audio-visualizer.voice-fixture.ts +0 -257
  303. package/src/components/audio-visualizer/aurora.glsl.ts +0 -330
  304. package/src/components/audio-visualizer/fit-scale.ts +0 -112
  305. package/src/components/audio-visualizer/index.tsx +0 -528
  306. package/src/components/audio-visualizer/labs/lab-choreography.ts +0 -187
  307. package/src/components/audio-visualizer/labs/lab-shaders.ts +0 -363
  308. package/src/components/audio-visualizer/labs/lab-visualizer.tsx +0 -102
  309. package/src/components/audio-visualizer/shader-canvas.tsx +0 -876
  310. package/src/components/audio-visualizer/sizes.ts +0 -54
  311. package/src/components/audio-visualizer/variant-aurora.tsx +0 -305
  312. package/src/components/audio-visualizer/variant-bar.tsx +0 -175
  313. package/src/components/audio-visualizer/variant-custom.tsx +0 -344
  314. package/src/components/audio-visualizer/variant-grid.tsx +0 -175
  315. package/src/components/audio-visualizer/variant-radial.tsx +0 -163
  316. package/src/components/audio-visualizer/variant-wave.tsx +0 -130
  317. package/src/components/audio-visualizer/wave.glsl.ts +0 -130
  318. package/src/components/card-fallback.tsx +0 -60
  319. package/src/components/card-renderer.tsx +0 -220
  320. package/src/components/card.tsx +0 -212
  321. package/src/components/chain-of-thought.tsx +0 -348
  322. package/src/components/chat-container.tsx +0 -89
  323. package/src/components/chat-scope-picker.tsx +0 -57
  324. package/src/components/chat-thread.tsx +0 -518
  325. package/src/components/checkpoint.tsx +0 -88
  326. package/src/components/choice-card.tsx +0 -743
  327. package/src/components/coachmark.tsx +0 -249
  328. package/src/components/code-block.tsx +0 -181
  329. package/src/components/composer-dom.ts +0 -159
  330. package/src/components/composer-highlight.ts +0 -242
  331. package/src/components/composer-history.ts +0 -82
  332. package/src/components/composer.tsx +0 -1075
  333. package/src/components/confirm-card.tsx +0 -402
  334. package/src/components/context.tsx +0 -377
  335. package/src/components/conversation-item.tsx +0 -218
  336. package/src/components/conversation-list.tsx +0 -429
  337. package/src/components/dismissed-stub.tsx +0 -80
  338. package/src/components/embed.tsx +0 -200
  339. package/src/components/empty.tsx +0 -177
  340. package/src/components/feedback-bar.tsx +0 -166
  341. package/src/components/file-tree.tsx +0 -530
  342. package/src/components/file-upload.tsx +0 -167
  343. package/src/components/form-widgets.tsx +0 -525
  344. package/src/components/form.tsx +0 -1296
  345. package/src/components/image.tsx +0 -65
  346. package/src/components/link-preview.tsx +0 -195
  347. package/src/components/loader.tsx +0 -367
  348. package/src/components/markdown.tsx +0 -162
  349. package/src/components/message-skills.tsx +0 -40
  350. package/src/components/message.tsx +0 -765
  351. package/src/components/model-switcher.tsx +0 -132
  352. package/src/components/prompt-input.tsx +0 -188
  353. package/src/components/prompt-suggestion.tsx +0 -150
  354. package/src/components/reasoning.tsx +0 -293
  355. package/src/components/response-compare-types.ts +0 -152
  356. package/src/components/response-compare.tsx +0 -455
  357. package/src/components/response-stream.tsx +0 -109
  358. package/src/components/screen.tsx +0 -181
  359. package/src/components/scroll-button.tsx +0 -93
  360. package/src/components/source.tsx +0 -192
  361. package/src/components/tasks-card.tsx +0 -801
  362. package/src/components/text-shimmer.tsx +0 -37
  363. package/src/components/thinking-bar.tsx +0 -50
  364. package/src/components/thread.tsx +0 -228
  365. package/src/components/toast.tsx +0 -503
  366. package/src/components/tool-classify.ts +0 -26
  367. package/src/components/tool-types.ts +0 -49
  368. package/src/components/tool.tsx +0 -190
  369. package/src/components/use-card-resolution.ts +0 -44
  370. package/src/components/voice-input.tsx +0 -222
  371. package/src/components/voice-output.tsx +0 -242
  372. package/src/components/workspace-shell.tsx +0 -285
  373. package/src/diagnostics/hook.ts +0 -352
  374. package/src/diagnostics/index.ts +0 -82
  375. package/src/diagnostics/report-request.ts +0 -296
  376. package/src/elements/agent-card.tsx +0 -67
  377. package/src/elements/artifact.tsx +0 -194
  378. package/src/elements/attachments.tsx +0 -140
  379. package/src/elements/audio-visualizer.tsx +0 -227
  380. package/src/elements/autoloader.ts +0 -89
  381. package/src/elements/avatar.tsx +0 -33
  382. package/src/elements/badge.tsx +0 -32
  383. package/src/elements/button.tsx +0 -149
  384. package/src/elements/card.tsx +0 -133
  385. package/src/elements/cards.tsx +0 -266
  386. package/src/elements/chain-of-thought.tsx +0 -141
  387. package/src/elements/chat-scope-picker.tsx +0 -65
  388. package/src/elements/chat-types.ts +0 -102
  389. package/src/elements/chat-workspace.tsx +0 -188
  390. package/src/elements/chat.tsx +0 -212
  391. package/src/elements/checkbox-group.tsx +0 -164
  392. package/src/elements/checkbox.tsx +0 -134
  393. package/src/elements/checkpoint.tsx +0 -47
  394. package/src/elements/choice.tsx +0 -100
  395. package/src/elements/coachmark.tsx +0 -90
  396. package/src/elements/code-block.tsx +0 -60
  397. package/src/elements/command.tsx +0 -197
  398. package/src/elements/compare.tsx +0 -111
  399. package/src/elements/compiled.css +0 -2
  400. package/src/elements/composer.tsx +0 -162
  401. package/src/elements/confirm-card.tsx +0 -76
  402. package/src/elements/context-meter.tsx +0 -107
  403. package/src/elements/conversation-item.tsx +0 -120
  404. package/src/elements/conversation-list.tsx +0 -203
  405. package/src/elements/css.ts +0 -5
  406. package/src/elements/default-input.tsx +0 -392
  407. package/src/elements/define-entry.ts +0 -12
  408. package/src/elements/define.tsx +0 -563
  409. package/src/elements/diagnostic-events.ts +0 -114
  410. package/src/elements/dialog.tsx +0 -145
  411. package/src/elements/disclosure.ts +0 -95
  412. package/src/elements/dock.tsx +0 -215
  413. package/src/elements/dropdown.tsx +0 -123
  414. package/src/elements/editable-label.tsx +0 -140
  415. package/src/elements/element-data-types.ts +0 -152
  416. package/src/elements/element-diagnostics.ts +0 -392
  417. package/src/elements/element-manifest.json +0 -354
  418. package/src/elements/element-nonscalar.json +0 -185
  419. package/src/elements/element-types.d.ts +0 -4337
  420. package/src/elements/embed.tsx +0 -35
  421. package/src/elements/empty.tsx +0 -29
  422. package/src/elements/feedback-bar.tsx +0 -66
  423. package/src/elements/file-tree.tsx +0 -62
  424. package/src/elements/file-upload.tsx +0 -44
  425. package/src/elements/form.tsx +0 -94
  426. package/src/elements/hover-card.tsx +0 -80
  427. package/src/elements/icon.tsx +0 -41
  428. package/src/elements/image.tsx +0 -32
  429. package/src/elements/input.tsx +0 -492
  430. package/src/elements/kbd.tsx +0 -45
  431. package/src/elements/link-preview.tsx +0 -34
  432. package/src/elements/loader.tsx +0 -25
  433. package/src/elements/markdown.tsx +0 -38
  434. package/src/elements/menu.tsx +0 -241
  435. package/src/elements/message-skills.tsx +0 -83
  436. package/src/elements/message.tsx +0 -361
  437. package/src/elements/model-switcher.tsx +0 -121
  438. package/src/elements/nav.tsx +0 -87
  439. package/src/elements/notice.tsx +0 -53
  440. package/src/elements/pane-grid.tsx +0 -111
  441. package/src/elements/pane-group.tsx +0 -119
  442. package/src/elements/pane.tsx +0 -129
  443. package/src/elements/popover.tsx +0 -81
  444. package/src/elements/progress-bar.tsx +0 -39
  445. package/src/elements/prompt-dock.tsx +0 -82
  446. package/src/elements/prompt-input.tsx +0 -240
  447. package/src/elements/prompt-suggestions.tsx +0 -113
  448. package/src/elements/radio-group.tsx +0 -129
  449. package/src/elements/reasoning.tsx +0 -71
  450. package/src/elements/register-impl.ts +0 -148
  451. package/src/elements/register.ts +0 -76
  452. package/src/elements/remote.tsx +0 -225
  453. package/src/elements/resizable.globals.d.ts +0 -36
  454. package/src/elements/resizable.tsx +0 -704
  455. package/src/elements/response-stream.tsx +0 -40
  456. package/src/elements/screen.tsx +0 -90
  457. package/src/elements/scroll-area.tsx +0 -33
  458. package/src/elements/scroll-button.tsx +0 -179
  459. package/src/elements/search.tsx +0 -185
  460. package/src/elements/segmented.tsx +0 -129
  461. package/src/elements/select.tsx +0 -165
  462. package/src/elements/separator.tsx +0 -36
  463. package/src/elements/setting-item.tsx +0 -50
  464. package/src/elements/settings-group.tsx +0 -37
  465. package/src/elements/skeleton.tsx +0 -45
  466. package/src/elements/slider.tsx +0 -171
  467. package/src/elements/slot-text.ts +0 -73
  468. package/src/elements/slots.ts +0 -787
  469. package/src/elements/source.tsx +0 -126
  470. package/src/elements/status.tsx +0 -42
  471. package/src/elements/styles.css +0 -328
  472. package/src/elements/switch.tsx +0 -118
  473. package/src/elements/tabs.tsx +0 -95
  474. package/src/elements/tasks.tsx +0 -103
  475. package/src/elements/text-shimmer.tsx +0 -28
  476. package/src/elements/thinking-bar.tsx +0 -43
  477. package/src/elements/thread.tsx +0 -139
  478. package/src/elements/toast.tsx +0 -106
  479. package/src/elements/tool.tsx +0 -78
  480. package/src/elements/tooltip.tsx +0 -85
  481. package/src/elements/validate-messages.ts +0 -76
  482. package/src/elements/voice-input.tsx +0 -100
  483. package/src/elements/voice-output.tsx +0 -82
  484. package/src/index.ts +0 -428
  485. package/src/primitives/audio-bands.ts +0 -174
  486. package/src/primitives/card-component-types.ts +0 -63
  487. package/src/primitives/card-contract.ts +0 -80
  488. package/src/primitives/card-data-types.ts +0 -361
  489. package/src/primitives/card-host.tsx +0 -37
  490. package/src/primitives/card-recovery.ts +0 -160
  491. package/src/primitives/card-registry.tsx +0 -78
  492. package/src/primitives/card-resolution.ts +0 -36
  493. package/src/primitives/card-routing.ts +0 -85
  494. package/src/primitives/card-schemas/artifact.schema.json +0 -92
  495. package/src/primitives/card-schemas/card-envelope.schema.json +0 -14
  496. package/src/primitives/card-schemas/card-event.schema.json +0 -12
  497. package/src/primitives/card-schemas/choice.schema.json +0 -75
  498. package/src/primitives/card-schemas/confirm.schema.json +0 -65
  499. package/src/primitives/card-schemas/embed.schema.json +0 -63
  500. package/src/primitives/card-schemas/form.result.schema.json +0 -7
  501. package/src/primitives/card-schemas/form.schema.json +0 -53
  502. package/src/primitives/card-schemas/link.schema.json +0 -54
  503. package/src/primitives/card-schemas/tasks.result.schema.json +0 -16
  504. package/src/primitives/card-schemas/tasks.schema.json +0 -83
  505. package/src/primitives/card-tags.ts +0 -61
  506. package/src/primitives/card-validate-cards.ts +0 -255
  507. package/src/primitives/card-validate-schemas.ts +0 -58
  508. package/src/primitives/card-validate.ts +0 -131
  509. package/src/primitives/chat-config.tsx +0 -103
  510. package/src/primitives/composer-model.ts +0 -49
  511. package/src/primitives/composer-triggers.ts +0 -35
  512. package/src/primitives/controllable.ts +0 -21
  513. package/src/primitives/create-kai-chat.ts +0 -66
  514. package/src/primitives/create-tween.ts +0 -266
  515. package/src/primitives/embed-providers.ts +0 -254
  516. package/src/primitives/field-mask.ts +0 -256
  517. package/src/primitives/field-semantics.ts +0 -115
  518. package/src/primitives/highlighter.ts +0 -157
  519. package/src/primitives/input-mask.ts +0 -853
  520. package/src/primitives/link-preview.ts +0 -87
  521. package/src/primitives/message-feedback.ts +0 -124
  522. package/src/primitives/pdf-preview.ts +0 -121
  523. package/src/primitives/toast-store.ts +0 -338
  524. package/src/primitives/url-scheme-policy.ts +0 -70
  525. package/src/primitives/use-audio-analysis.ts +0 -340
  526. package/src/primitives/use-auto-resize.ts +0 -31
  527. package/src/primitives/use-resize-observer.ts +0 -45
  528. package/src/primitives/use-sequencer.ts +0 -72
  529. package/src/primitives/use-speech-recognition.ts +0 -146
  530. package/src/primitives/use-stick-to-bottom.ts +0 -75
  531. package/src/primitives/use-text-stream.ts +0 -143
  532. package/src/primitives/use-voice-recorder.ts +0 -62
  533. package/src/primitives/visualizer-sequences.ts +0 -350
  534. package/src/remote/host-embed.ts +0 -345
  535. package/src/remote/index.ts +0 -2
  536. package/src/remote/origin.ts +0 -30
  537. package/src/remote/provider-runtime.ts +0 -262
  538. package/src/remote/provider.ts +0 -2
  539. package/src/remote/validate.ts +0 -22
  540. package/src/remote/version.ts +0 -12
  541. package/src/remote/wire.ts +0 -48
  542. package/src/schemas/from-tool-call.ts +0 -151
  543. package/src/schemas/index.ts +0 -341
  544. package/src/schemas/provider-subsets.ts +0 -538
  545. package/src/schemas/registry.ts +0 -355
  546. package/src/schemas/tool-defs.ts +0 -793
  547. package/src/solid.ts +0 -165
  548. package/src/state/index.ts +0 -44
  549. package/src/state/messages.ts +0 -53
  550. package/src/state/mock.ts +0 -297
  551. package/src/state/parts.ts +0 -295
  552. package/src/state/persistence.ts +0 -180
  553. package/src/state/stream.ts +0 -246
  554. package/src/state/suggestions.ts +0 -9
  555. package/src/state/threads.ts +0 -142
  556. package/src/test-utils/fake-clock.ts +0 -88
  557. package/src/types.ts +0 -53
  558. package/src/ui/action-icons.ts +0 -53
  559. package/src/ui/agent-card.tsx +0 -218
  560. package/src/ui/avatar.tsx +0 -23
  561. package/src/ui/badge.tsx +0 -21
  562. package/src/ui/button.tsx +0 -49
  563. package/src/ui/card.tsx +0 -245
  564. package/src/ui/checkbox-group.tsx +0 -153
  565. package/src/ui/checkbox.tsx +0 -63
  566. package/src/ui/collapsible.tsx +0 -163
  567. package/src/ui/command.tsx +0 -103
  568. package/src/ui/dialog.tsx +0 -223
  569. package/src/ui/dock.tsx +0 -584
  570. package/src/ui/dropdown.tsx +0 -636
  571. package/src/ui/editable-label.tsx +0 -112
  572. package/src/ui/hover-card.tsx +0 -345
  573. package/src/ui/icon.tsx +0 -167
  574. package/src/ui/input.tsx +0 -391
  575. package/src/ui/kbd.tsx +0 -118
  576. package/src/ui/nav.tsx +0 -282
  577. package/src/ui/notice.tsx +0 -84
  578. package/src/ui/overlay.tsx +0 -277
  579. package/src/ui/pane-grid.tsx +0 -117
  580. package/src/ui/pane-group.tsx +0 -291
  581. package/src/ui/pane.tsx +0 -193
  582. package/src/ui/popover.tsx +0 -106
  583. package/src/ui/progress-bar.tsx +0 -83
  584. package/src/ui/prompt-dock.tsx +0 -145
  585. package/src/ui/radio.tsx +0 -150
  586. package/src/ui/resizable.tsx +0 -693
  587. package/src/ui/scroll-area.tsx +0 -26
  588. package/src/ui/segmented.tsx +0 -109
  589. package/src/ui/select.tsx +0 -168
  590. package/src/ui/separator.tsx +0 -10
  591. package/src/ui/settings-group.tsx +0 -67
  592. package/src/ui/skeleton.tsx +0 -73
  593. package/src/ui/slider.tsx +0 -178
  594. package/src/ui/status.tsx +0 -48
  595. package/src/ui/switch.tsx +0 -119
  596. package/src/ui/tabs.tsx +0 -168
  597. package/src/ui/textarea.tsx +0 -21
  598. package/src/ui/tooltip.tsx +0 -118
  599. package/src/utils/cn.ts +0 -30
  600. package/src/wire/chunk.ts +0 -248
  601. package/src/wire/consume.ts +0 -599
  602. package/src/wire/diagnostics.ts +0 -727
  603. package/src/wire/encode-probe.ts +0 -214
  604. package/src/wire/encode.ts +0 -947
  605. package/src/wire/files.ts +0 -342
  606. package/src/wire/formats/anthropic.ts +0 -274
  607. package/src/wire/formats/openai.ts +0 -228
  608. package/src/wire/index.ts +0 -95
  609. package/src/wire/media-types.ts +0 -344
  610. package/src/wire/read.ts +0 -396
  611. package/src/wire/sink-helpers.ts +0 -50
  612. package/src/wire/sse.ts +0 -153
@@ -1,341 +0,0 @@
1
- // @kitn.ai/ui/schemas: the card JSON Schemas, reachable.
2
- //
3
- // The 11 schema documents under src/primitives/card-schemas/ have been copied into
4
- // dist/schemas/ on every build and shipped in every tarball since the card contract
5
- // landed. Nothing could reach them: package.json "exports" is a CLOSED map with no
6
- // `./schemas` key, so both `@kitn.ai/ui/schemas` and
7
- // `@kitn.ai/ui/schemas/confirm.schema.json` resolved to TS2307 /
8
- // ERR_PACKAGE_PATH_NOT_EXPORTED. This repo's own reference harness gave up and
9
- // hand-derived the confirm schema in
10
- // examples/internal/openrouter-spike/src/card-schema.ts, saying so in a comment.
11
- //
12
- // WHY THIS JS ENTRY IS THE PRIMARY SURFACE
13
- // ----------------------------------------
14
- // The raw JSON subpaths ship too (`@kitn.ai/ui/schemas/confirm.schema.json`), and
15
- // they are the right answer for a Python or Go backend, or for `fetch`. They are
16
- // the SECONDARY surface for JS/TS consumers because importing JSON breaks three
17
- // different ways across the framework targets the scaffolder supports: Node ESM and
18
- // TS `nodenext` need `with { type: 'json' }`, types need `resolveJsonModule` in any
19
- // mode, and Workers need a `wrangler` rule. A JS entry has none of those problems
20
- // anywhere, and it picks up `verify:ssr` coverage for free, since that guard derives
21
- // its entry list from the exports map.
22
- //
23
- // SERVER-SAFE, DELIBERATELY
24
- // -------------------------
25
- // No DOM, no Solid, no `fetch`. Everything reached from here is data or plain
26
- // functions, and as of src/primitives/card-component-types.ts that is true of the
27
- // TYPES too: nothing reachable from this entry resolves to a `.tsx` any more, so a
28
- // Node/no-DOM project can read the whole graph from source. (`CardComponentMap` used
29
- // to come from primitives/card-registry.tsx and was the last exception.) This entry
30
- // is meant to be imported by a backend route that hands tool definitions to a model,
31
- // so anything that touches a browser global would defeat its purpose. `verify:ssr`
32
- // asserts the RUNTIME half, by importing the BUILT entry under the `node` condition
33
- // in its own child process; the compile-time half is `tsc --noEmit -p
34
- // tsconfig.mcp.json` on a tree with no dist/, and only that one sees a `.tsx` creep
35
- // back in.
36
- //
37
- // WHAT `verify:ssr` DOES NOT CATCH, MEASURED
38
- // ------------------------------------------
39
- // It checks the BUILT bundle, so it only sees what survives tree-shaking — and
40
- // rollup is good enough here that it does not see the mistake you would actually
41
- // make. Measured, not assumed: pointing the `BUILTIN_CARD_TAGS` re-export below at
42
- // src/primitives/card-registry.TSX instead of card-tags.ts produces a byte-identical
43
- // dist/schemas.js with zero `solid-js` references, and imports clean under `node`.
44
- // Rollup compiles the whole Solid component tree (build time 0.2s -> 3.9s) and then
45
- // discards all of it, because only the tag map is reachable.
46
- //
47
- // So the `.ts` split is NOT holding a runtime guard up, and must not be described as
48
- // if it were. What it buys is that this entry's server-safety stops depending on
49
- // tree-shaking staying perfect: one module-scope side effect anywhere under
50
- // components/ and the discarded tree stops being discardable. Removing the dependency
51
- // beats relying on it being elided.
52
- //
53
- // WHAT IT COSTS, AND WHERE
54
- // ------------------------
55
- // dist/schemas.js, measured on this tree, not recalled:
56
- //
57
- // 42,658 B min / 11,762 B gzip before ./registry landed
58
- // 53,658 B min / 14,669 B gzip after ./registry (+11,000 B / +2,907 B gzip)
59
- // 53,864 B min / 14,739 B gzip now, with BUILTIN_CARD_TAGS (+206 B / +70 B gzip)
60
- //
61
- // The middle row is this comment's previous "53,656 / 14,667", re-measured rather than
62
- // carried forward; the 2-byte drift is what a claim costs when it is copied instead of
63
- // taken again. The last row is the tag map below, measured by building this entry with
64
- // and without that one export line.
65
- //
66
- // The `18,160 B / 5,800 B` this comment used to claim was measured at 0.20.1, before
67
- // tool-defs and provider-subsets were added to the barrel, and had been stale ever
68
- // since. Corrected here rather than left, because a size claim nobody re-measures is
69
- // the same class of thing as a guard nobody watches fail.
70
- //
71
- // The delta is ./registry plus what it pulls: primitives/card-validate.ts (the
72
- // validator) and primitives/card-validate-schemas.ts (the LEAN projection). That last
73
- // one means the seven card schemas appear TWICE in this bundle, authored and lean.
74
- // Deliberate, and the alternative is worse: validating built-ins against the authored
75
- // documents here while the browser validates them against the projection would be two
76
- // behaviours wearing one name. One function, one answer, 4 KB.
77
- //
78
- // All of it is a SERVER cost and does not touch a client bundle. Nothing in the
79
- // component tree imports this entry, so no consumer pays it unless a route or a
80
- // build script imports it on purpose. If you are here comparing it against the
81
- // ~1 KB gzip figure in the emit-contract plan, those are different things: that one
82
- // is the LEAN projection destined for the browser (descriptions and `$id` stripped,
83
- // validation keywords only), which is a separate artifact and not this file.
84
- //
85
- // NOT RESTATED
86
- // ------------
87
- // Every value below is the JSON file itself, imported and inlined by the bundler.
88
- // There is no hand-copied shape here and there must never be one: `verify:schemas`
89
- // asserts each exported entry is byte-identical to its file on disk, and that the
90
- // two maps between them account for every file in the directory and for nothing
91
- // else. The whole point of this entry is to stop the same shape existing in five
92
- // places.
93
-
94
- import type { JsonSchema } from '../primitives/card-validate';
95
-
96
- import artifactSchema from '../primitives/card-schemas/artifact.schema.json';
97
- import cardEnvelopeSchema from '../primitives/card-schemas/card-envelope.schema.json';
98
- import cardEventSchema from '../primitives/card-schemas/card-event.schema.json';
99
- import choiceSchema from '../primitives/card-schemas/choice.schema.json';
100
- import confirmSchema from '../primitives/card-schemas/confirm.schema.json';
101
- import embedSchema from '../primitives/card-schemas/embed.schema.json';
102
- import formResultSchema from '../primitives/card-schemas/form.result.schema.json';
103
- import formSchema from '../primitives/card-schemas/form.schema.json';
104
- import linkSchema from '../primitives/card-schemas/link.schema.json';
105
- import tasksResultSchema from '../primitives/card-schemas/tasks.result.schema.json';
106
- import tasksSchema from '../primitives/card-schemas/tasks.schema.json';
107
-
108
- /**
109
- * A card schema document, as authored.
110
- *
111
- * Wider than {@link JsonSchema} on purpose. `JsonSchema` describes the LEAN subset
112
- * `validateAgainstSchema` implements; the files also carry `$schema`, `$id`,
113
- * `title`, `description`, `default`, `additionalProperties`, `x-kai-*`, and (in
114
- * `embed` and `artifact`) `allOf`/`if`/`then`/`oneOf`. Reading a document as
115
- * `JsonSchema` alone would quietly imply the validator understands all of it.
116
- */
117
- export type CardSchema = JsonSchema & Readonly<Record<string, unknown>>;
118
-
119
- /**
120
- * DO NOT "TIGHTEN" THIS TO `doc as JsonSchema`, OR DELETE THE CAST.
121
- *
122
- * It reads like laziness and is not. `JsonSchema` (src/primitives/card-validate.ts)
123
- * pins `type` to a literal union — `'string' | 'number' | ... | 'null'` — while
124
- * TypeScript infers plain `string` for the `"type"` member of an imported JSON
125
- * literal, so a schema document is NOT assignable to `JsonSchema` and no narrowing
126
- * short of a per-file `as const` would make it so. On top of that the documents
127
- * legitimately carry `$schema`, `$id`, `title`, `description`, `default`,
128
- * `additionalProperties`, `x-kai-*` and (in `embed` and `artifact`)
129
- * `allOf`/`if`/`then`/`oneOf`, which `JsonSchema` does not describe at all.
130
- *
131
- * So this widens once, at the module boundary, deliberately. It is not a claim
132
- * about the contents, and the claim it does NOT make is checked elsewhere:
133
- * `verify:schemas` imports the BUILT entry from a temp package outside the repo and
134
- * asserts every exported value is byte-identical to its file on disk. A tighter
135
- * type here would buy nothing that check does not already prove, and would cost the
136
- * ability to represent the schemas we actually ship.
137
- */
138
- const asSchema = (doc: unknown): CardSchema => doc as CardSchema;
139
-
140
- /**
141
- * The card-DATA schemas: one per built-in `CardEnvelope.type`, describing the
142
- * `data` payload for that type. These are the tool candidates. The key IS the
143
- * envelope type.
144
- */
145
- export type CardSchemaName = 'artifact' | 'choice' | 'confirm' | 'embed' | 'form' | 'link' | 'tasks';
146
-
147
- /**
148
- * The contract shapes: the envelope itself, the event a card emits back up, and the
149
- * two result payloads. Not card data and NOT tool candidates — a model is never
150
- * asked to emit one of these, so keeping them out of `cardSchemas` is what stops
151
- * `cardTools()` offering the model an envelope-shaped tool.
152
- */
153
- export type ContractSchemaName = 'card-envelope' | 'card-event' | 'form.result' | 'tasks.result';
154
-
155
- /** The 7 card-data schemas, keyed by `CardEnvelope.type`. */
156
- export const cardSchemas: Readonly<Record<CardSchemaName, CardSchema>> = Object.freeze({
157
- artifact: asSchema(artifactSchema),
158
- choice: asSchema(choiceSchema),
159
- confirm: asSchema(confirmSchema),
160
- embed: asSchema(embedSchema),
161
- form: asSchema(formSchema),
162
- link: asSchema(linkSchema),
163
- tasks: asSchema(tasksSchema),
164
- });
165
-
166
- /** The 4 contract shapes, keyed by file stem. */
167
- export const contractSchemas: Readonly<Record<ContractSchemaName, CardSchema>> = Object.freeze({
168
- 'card-envelope': asSchema(cardEnvelopeSchema),
169
- 'card-event': asSchema(cardEventSchema),
170
- 'form.result': asSchema(formResultSchema),
171
- 'tasks.result': asSchema(tasksResultSchema),
172
- });
173
-
174
- /** The built-in card types, in the order `cardSchemas` declares them. */
175
- export const cardSchemaNames: readonly CardSchemaName[] = Object.freeze(
176
- Object.keys(cardSchemas) as CardSchemaName[],
177
- );
178
-
179
- /** Narrow an arbitrary string to a built-in card type. */
180
- export function isCardSchemaName(name: string): name is CardSchemaName {
181
- return Object.prototype.hasOwnProperty.call(cardSchemas, name);
182
- }
183
-
184
- // Re-exported so a consumer reading a schema out of these maps can annotate what
185
- // they hand to the kit's validator without a second import.
186
- export type { JsonSchema, ValidationResult } from '../primitives/card-validate';
187
- export type { CardEnvelope } from '../primitives/card-contract';
188
-
189
- // The card PAYLOAD types — `CardEnvelope.data`, one per built-in card type — so a
190
- // TypeScript backend can NAME the shape it is building instead of assembling an
191
- // `unknown` and hoping.
192
- //
193
- // This is the point of the whole entry, restated at the type level. We publish
194
- // `./schemas/*.json` precisely so a Python or Go route can generate models for
195
- // these payloads, and until this block existed TypeScript — the language the kit
196
- // is authored in — was the one that could not: the types lived inside their
197
- // components' `.tsx`, so naming one from a Node/no-DOM project was TS6142 and
198
- // re-exporting one from here would have dragged the Solid tree into this entry's
199
- // graph. They are authored in ../primitives/card-data-types.ts now, which has no
200
- // DOM and no Solid below it, so this costs the entry nothing — see that file's
201
- // header, and note that the check which can tell the difference is
202
- // `tsc --noEmit -p tsconfig.mcp.json` on a tree with no dist/ present.
203
- //
204
- // Types only: they erase, so this adds nothing to dist/schemas.js.
205
- export type {
206
- ArtifactCardData,
207
- ArtifactCardEnvelope,
208
- ArtifactCardFile,
209
- ArtifactCardTab,
210
- ChoiceAllowOther,
211
- ChoiceCardData,
212
- ChoiceCardEnvelope,
213
- ChoiceOption,
214
- ChoiceOptionMedia,
215
- ConfirmAction,
216
- ConfirmActionStyle,
217
- ConfirmCardData,
218
- ConfirmCardEnvelope,
219
- ConfirmTone,
220
- FormCardEnvelope,
221
- FormDefinition,
222
- FormField,
223
- TasksCardData,
224
- TasksCardEnvelope,
225
- TasksCardResult,
226
- TasksTask,
227
- } from '../primitives/card-data-types';
228
-
229
- // The remaining two payload types, `link` and `embed`.
230
- //
231
- // They are NOT in card-data-types.ts, and that is deliberate rather than an
232
- // oversight to be tidied later: that file exists to rescue types that were
233
- // trapped inside a `.tsx`, and these two never were. `LinkPreviewData` and
234
- // `EmbedCardData` have always been authored beside the pure logic that consumes
235
- // them — `resolveLinkMetadata`, `resolveEmbed`/`watchUrl` — in modules that carry
236
- // no DOM and no Solid, so they were already importable from a Node/no-DOM
237
- // project. Moving them would buy nothing and would split each type from the
238
- // functions written against it.
239
- //
240
- // Which is precisely how they got missed. The extraction that created
241
- // card-data-types.ts swept the `.tsx` files, exported what it found HERE, and
242
- // the two types that needed no rescuing were never on its list — five of seven
243
- // payload types landed on this entry and nobody noticed the other two, because
244
- // both are exported from src/index.ts and every check asked only whether a
245
- // consumer could reach them from SOME public barrel. A backend cannot import
246
- // from src/index.ts; that is the Solid-bearing one. See the REACHABILITY note in
247
- // card-type-parity.test.ts, which now enumerates the payload types from
248
- // `cardSchemas` and requires each to be reachable from THIS entry specifically.
249
- //
250
- // `EmbedProvider` comes along because `EmbedCardData.provider` names it, and a
251
- // member type a consumer cannot import leaves them writing `provider: 'youtube'
252
- // as EmbedCardData['provider']`. `ResolvedEmbed` and `LinkMetadataFetcher` stay
253
- // off this entry on purpose — they describe how a card RENDERS and how an app
254
- // resolves metadata in the browser, neither of which a route builds.
255
- export type { EmbedCardData, EmbedCardEnvelope, EmbedProvider } from '../primitives/embed-providers';
256
- export type { LinkPreviewData, LinkPreviewEnvelope } from '../primitives/link-preview';
257
-
258
- // The loop, both directions.
259
- //
260
- // `cardTools` projects a card schema INTO a provider tool definition;
261
- // `cardFromToolCall` turns the model's call back into a renderable envelope. They
262
- // are the two halves of one contract and the tool-name convention that joins them
263
- // lives in ./from-tool-call, spelled once. Exporting `from-tool-call` here is not
264
- // bookkeeping: `verify:schemas` and `verify:ssr` both read the BUILT entry, so a
265
- // module missing from this barrel is a module no guard covers.
266
- export { cardFromToolCall, isCardTool, cardTypeFromToolName, toolNameForCardType, KAI_TOOL_PREFIX } from './from-tool-call';
267
-
268
- // `tool-defs` imports `cardSchemas` back out of this module so that
269
- // `cardTools({ provider })` can default to the built-ins. That cycle is deliberate
270
- // and safe (the read happens inside a function, never at module init); the comment
271
- // on `builtInSchemas()` over there explains why, and why it must not be hoisted.
272
- export {
273
- CARD_TOOL_DESCRIPTIONS,
274
- UnsupportedCardToolSchemaError,
275
- cardTools,
276
- toAnthropicTools,
277
- toJsonSchemaTools,
278
- toOpenAITools,
279
- } from './tool-defs';
280
- export type {
281
- AnthropicToolDef,
282
- CardRequireRule,
283
- CardToolInput,
284
- CardToolOptions,
285
- CardToolSource,
286
- JsonSchemaToolDef,
287
- OpenAIToolDef,
288
- ToolDef,
289
- ToolDefFor,
290
- ToolParameters,
291
- ToolProvider,
292
- UnsupportedCardTool,
293
- } from './tool-defs';
294
-
295
- // The registry: "these are the card types THIS app renders", written once and threaded
296
- // to both ends (`chat.cardTypes = cards.tags` on the client, `cardTools(cards, …)` on
297
- // the route). It is what turns the `cardTypes` seam from something a developer CAN use
298
- // into the path they normally take, which is the only thing that stops it rotting again
299
- // the way it did when the conformance spike's `spike-artifact` workaround was deleted.
300
- //
301
- // `registry.ts` imports `cardSchemas` back out of this module, the same deliberate
302
- // cycle `tool-defs` has and for the same reason; the read happens inside
303
- // `createCardRegistry`, never at module init.
304
- export { createCardRegistry } from './registry';
305
- export type { CardRegistry, CardRegistrySpec, CustomCardSpec, IncompletePolicy } from './registry';
306
-
307
- // Re-exported so a route can check a custom card's data server-side, in the tool loop,
308
- // with the same tiering the browser dispatchers use, rather than a second validator.
309
- // `registry.validate()` is the ergonomic form; this is the same function underneath.
310
- export { cardValidationMessage, validateCardData } from '../primitives/card-validate-cards';
311
- export type { CardValidationIssue, CardValidationReport, CardValidationTier } from '../primitives/card-validate-cards';
312
-
313
- // `CardEnvelope.type` -> the `kai-*` element that renders it — exported because a
314
- // server-side reader needed it and was inventing its own answer instead.
315
- //
316
- // src/agent-tooling/mcp/manifest.ts used to RE-DERIVE this map from the element
317
- // manifest by convention (`kai-<type>`, else the single `kai-<type>-*`). The
318
- // derivation was correct — it even got `link` -> `kai-link-preview` right, via the
319
- // prefix branch — but it was a second copy of a fact the repo already held, kept
320
- // honest only by a test. It re-derived because the authoritative map shared a module
321
- // with `BUILTIN_CARD_COMPONENTS`, which is nothing but Solid, and the MCP is a
322
- // Node/no-DOM project (tsconfig.mcp.json: `lib: ["ESNext"]`, no `jsx` — giving it one
323
- // measures 0 errors -> 1364). src/primitives/card-tags.ts is that data on its own, so
324
- // the map is now readable from source by anything, with or without a DOM.
325
- //
326
- // See "WHAT `verify:ssr` DOES NOT CATCH" above before describing the split as a
327
- // bundle-safety fix: it is a dependency-graph fix, and the bundle is identical either
328
- // way today.
329
- //
330
- // `mergeCardTags` is deliberately NOT re-exported here: merging a consumer's overrides
331
- // is a rendering concern, it already ships from the main entry, and this one is for
332
- // routes.
333
- export { BUILTIN_CARD_TAGS } from '../primitives/card-tags';
334
- export type { CardTagMap } from '../primitives/card-tags';
335
-
336
- // The two provider subsets, exported rather than kept private, because a developer
337
- // registering a CUSTOM card schema in Phase 2 needs the same check we run on ours,
338
- // and because `verify:tool-schemas` reads them out of the BUILT entry rather than
339
- // re-deriving them (a guard with its own copy of the table proves nothing).
340
- export { ANTHROPIC_STRICT, OPENAI_STRICT, checkProviderSubset, providerSubsets } from './provider-subsets';
341
- export type { KeywordRule, KeywordStatus, ProviderSubset, StrictProviderId, SubsetViolation } from './provider-subsets';