@kitn.ai/ui 0.28.0 → 0.30.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 (615) hide show
  1. package/README.md +11 -7
  2. package/dist/{Icon-DObhsRtm.js → Icon-BzBET3E-.js} +1 -1
  3. package/dist/{action-icons-CcgNN2oT.js → action-icons-DaW2pU6m.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-D783iMJj.js +1 -0
  7. package/dist/arrow-left-0VLM5kyg.js +1 -0
  8. package/dist/artifact-DGjzHYUT.js +1 -0
  9. package/dist/{attachments-Qr4kg-2b.js → attachments-YvXHlg88.js} +1 -1
  10. package/dist/{audio-visualizer-DToYdfSc.js → audio-visualizer-9lz5IHsL.js} +1 -1
  11. package/dist/{badge-CdEu_jn2.js → badge-Dh_vp8A5.js} +1 -1
  12. package/dist/{bell-DQAAOpDz.js → bell-CT7_WUwS.js} +1 -1
  13. package/dist/{button-DkuOnGLy.js → button-C_3te6fm.js} +1 -1
  14. package/dist/{card-renderer-Jx70m6_l.js → card-renderer-DZVaGH2e.js} +1 -1
  15. package/dist/check-CiEOVnEN.js +1 -0
  16. package/dist/{checkbox-D7iRB3nL.js → checkbox-Bu2T2e0U.js} +1 -1
  17. package/dist/{checkbox-group-B2_rpoPM.js → checkbox-group-BiryEXPQ.js} +1 -1
  18. package/dist/chevron-down-CSobuZRG.js +1 -0
  19. package/dist/chevron-right-DR9ZAP-2.js +1 -0
  20. package/dist/{choice-card-m0BYqqOK.js → choice-card-CM6IjkmL.js} +1 -1
  21. package/dist/circle-BC66EYF7.js +1 -0
  22. package/dist/circle-check-BqmahW0O.js +1 -0
  23. package/dist/{circle-x-BPG0iPst.js → circle-x-Bk-dA5Wf.js} +1 -1
  24. package/dist/{code-block-ClMLKb7C.js → code-block-B26t-Q7q.js} +1 -1
  25. package/dist/{collapsible-B4DlWicL.js → collapsible-Bhc636Cf.js} +1 -1
  26. package/dist/components/builder-composer-triggers.d.ts +62 -0
  27. package/dist/components/builder-layout.d.ts +54 -0
  28. package/dist/components/builder-message-actions.d.ts +72 -0
  29. package/dist/components/builder-panel.d.ts +189 -0
  30. package/dist/components/builder-preview.d.ts +11 -0
  31. package/dist/components/builder-shell-controls.d.ts +69 -0
  32. package/dist/components/builder-skeleton.d.ts +58 -0
  33. package/dist/components/builder-start.d.ts +75 -0
  34. package/dist/components/builder-workspace-variants.d.ts +23 -0
  35. package/dist/components/captions.d.ts +66 -0
  36. package/dist/{composer-sQ0HcvyG.js → composer-DMI85B6j.js} +1 -1
  37. package/dist/{confirm-card-rQWDQsnC.js → confirm-card-B0YIAwXp.js} +1 -1
  38. package/dist/construct-cli.es.js +3 -3
  39. package/dist/construct.d.ts +5 -0
  40. package/dist/construct.js +327 -0
  41. package/dist/{context-0kg4ZX1J.js → context-DWgfhqWp.js} +1 -1
  42. package/dist/controllable-BagRpyHv.js +1 -0
  43. package/dist/{conversation-item-BxwQLaFJ.js → conversation-item-BsOsVGmT.js} +1 -1
  44. package/dist/{conversation-list-BCfGN1JU.js → conversation-list-aX3Vtc7L.js} +1 -1
  45. package/dist/{copy-n9u9rqpi.js → copy-BmEwsNhJ.js} +1 -1
  46. package/dist/core-C8fzo39E.js +1 -12
  47. package/dist/{create-tween-uPkArjIG.js → create-tween-CNOAU3Fx.js} +1 -1
  48. package/dist/{create-tween-C-q-JCM-.js → create-tween-WfqiENls.js} +1 -1
  49. package/dist/{create-tween-CRrJXxBd.js → create-tween-wlFtW9Kh.js} +1 -1
  50. package/dist/{create-tween-DZ3RRDHD.js → create-tween-zt79ba32.js} +1 -1
  51. package/dist/{default-input-CaMrJkgH.js → default-input-DMV5Eaze.js} +1 -1
  52. package/dist/define-CI0y3eE4.js +1 -0
  53. package/dist/define.js +40 -40
  54. package/dist/define.server.js +45 -45
  55. package/dist/{disclosure-WUImBbDv.js → disclosure-NnACBxsC.js} +1 -1
  56. package/dist/{dropdown-wZVeJOMd.js → dropdown-DT7G0RGR.js} +1 -1
  57. package/dist/elements/agent-card.js +1 -1
  58. package/dist/elements/artifact.js +1 -1
  59. package/dist/elements/attachments.js +1 -1
  60. package/dist/elements/audio-visualizer.js +1 -1
  61. package/dist/elements/avatar.js +1 -1
  62. package/dist/elements/badge.js +1 -1
  63. package/dist/elements/button.js +1 -1
  64. package/dist/elements/card.js +1 -1
  65. package/dist/elements/cards.js +1 -1
  66. package/dist/elements/chain-of-thought.js +1 -1
  67. package/dist/elements/chat-scope-picker.js +1 -1
  68. package/dist/elements/chat-workspace.js +1 -1
  69. package/dist/elements/chat.js +1 -1
  70. package/dist/elements/checkbox-group.js +1 -1
  71. package/dist/elements/checkbox.js +1 -1
  72. package/dist/elements/checkpoint.js +1 -1
  73. package/dist/elements/choice.js +1 -1
  74. package/dist/elements/coachmark.js +1 -1
  75. package/dist/elements/code-block.js +1 -1
  76. package/dist/elements/command.js +1 -1
  77. package/dist/elements/compare.js +1 -1
  78. package/dist/elements/composer.js +1 -1
  79. package/dist/elements/confirm-card.js +1 -1
  80. package/dist/elements/context-meter.js +1 -1
  81. package/dist/elements/conversation-item.js +1 -1
  82. package/dist/elements/conversation-list.js +1 -1
  83. package/dist/elements/dialog.js +1 -1
  84. package/dist/elements/dock.js +1 -1
  85. package/dist/elements/dropdown.js +1 -1
  86. package/dist/elements/editable-label.js +1 -1
  87. package/dist/elements/embed.js +1 -1
  88. package/dist/elements/empty.js +1 -1
  89. package/dist/elements/feedback-bar.js +1 -1
  90. package/dist/elements/file-tree.js +1 -1
  91. package/dist/elements/file-upload.js +1 -1
  92. package/dist/elements/form.js +1 -1
  93. package/dist/elements/hover-card.js +1 -1
  94. package/dist/elements/icon.js +1 -1
  95. package/dist/elements/image.js +1 -1
  96. package/dist/elements/input.js +1 -1
  97. package/dist/elements/kbd.js +1 -1
  98. package/dist/elements/link-preview.js +1 -1
  99. package/dist/elements/loader.js +1 -1
  100. package/dist/elements/markdown.js +1 -1
  101. package/dist/elements/menu.js +1 -1
  102. package/dist/elements/message-skills.js +1 -1
  103. package/dist/elements/message.js +1 -1
  104. package/dist/elements/model-switcher.js +1 -1
  105. package/dist/elements/nav.js +1 -1
  106. package/dist/elements/notice.js +1 -1
  107. package/dist/elements/pane-grid.js +1 -1
  108. package/dist/elements/pane-group.js +1 -1
  109. package/dist/elements/pane.js +1 -1
  110. package/dist/elements/popover.js +1 -1
  111. package/dist/elements/progress-bar.js +1 -1
  112. package/dist/elements/prompt-dock.js +1 -1
  113. package/dist/elements/prompt-input.js +1 -1
  114. package/dist/elements/prompt-suggestions.js +1 -1
  115. package/dist/elements/radio-group.js +1 -1
  116. package/dist/elements/reasoning.js +1 -1
  117. package/dist/elements/remote.js +1 -1
  118. package/dist/elements/resizable.js +1 -1
  119. package/dist/elements/response-stream.js +1 -1
  120. package/dist/elements/screen.js +1 -1
  121. package/dist/elements/scroll-area.js +1 -1
  122. package/dist/elements/scroll-button.js +1 -1
  123. package/dist/elements/search.js +1 -1
  124. package/dist/elements/segmented.js +1 -1
  125. package/dist/elements/select.js +1 -1
  126. package/dist/elements/separator.js +1 -1
  127. package/dist/elements/setting-item.js +1 -1
  128. package/dist/elements/settings-group.js +1 -1
  129. package/dist/elements/skeleton.js +1 -1
  130. package/dist/elements/slider.js +1 -1
  131. package/dist/elements/source.js +1 -1
  132. package/dist/elements/status.js +1 -1
  133. package/dist/elements/switch.js +1 -1
  134. package/dist/elements/tabs.js +1 -1
  135. package/dist/elements/tasks.js +1 -1
  136. package/dist/elements/text-shimmer.js +1 -1
  137. package/dist/elements/thinking-bar.js +1 -1
  138. package/dist/elements/thread.js +1 -1
  139. package/dist/elements/toast.js +1 -1
  140. package/dist/elements/tool.js +1 -1
  141. package/dist/elements/tooltip.js +1 -1
  142. package/dist/elements/voice-input.js +1 -1
  143. package/dist/elements/voice-output.js +1 -1
  144. package/dist/{ellipsis-CbOpJnU3.js → ellipsis-6pJ7SxYT.js} +1 -1
  145. package/dist/{embed-CrfjkbUG.js → embed-BMje-nxj.js} +1 -1
  146. package/dist/engine-javascript-C1x7zo1_.js +1 -141
  147. package/dist/{external-link-ByXAwBBQ.js → external-link-Beh9DKeR.js} +1 -1
  148. package/dist/{file-text-DMib2qwt.js → file-text-D1GPfZ8Q.js} +1 -1
  149. package/dist/{file-tree-CJqM2aP7.js → file-tree-Dwj2lqg-.js} +1 -1
  150. package/dist/{folder-_BAb929C.js → folder-b6D8x1DY.js} +1 -1
  151. package/dist/{form-DSZgZQZk.js → form-DWgdxDXu.js} +1 -1
  152. package/dist/{hover-card-BQbul9eq.js → hover-card-CWRkqm40.js} +1 -1
  153. package/dist/{icon-CdcfRhYI.js → icon-CL0jdhsf.js} +1 -1
  154. package/dist/index.js +1741 -1725
  155. package/dist/index.server.js +1582 -1566
  156. package/dist/{info-DsFjGuI_.js → info-0cOUherQ.js} +1 -1
  157. package/dist/{input-DKbmkMos.js → input-BH6Ru91Q.js} +1 -1
  158. package/dist/kai.es.js +1 -1
  159. package/dist/{kbd-PvdGhX4s.js → kbd-DRAnVtNX.js} +1 -1
  160. package/dist/{link-zF8PzWfF.js → link-Dlr0vssB.js} +1 -1
  161. package/dist/{link-preview-DbM1866N.js → link-preview-DODgRyV9.js} +1 -1
  162. package/dist/loader-KvJB6NrT.js +1 -0
  163. package/dist/{markdown-LMvmAyBk.js → markdown-DX9tuJVj.js} +1 -1
  164. package/dist/mcp.es.js +9 -5
  165. package/dist/{message-BYZECyek.js → message-BqQ7Ot5q.js} +1 -1
  166. package/dist/{message-BSsgvHvf.js → message-DkaGfBd8.js} +1 -1
  167. package/dist/message-circle-BPpp5QKv.js +1 -0
  168. package/dist/message-square-BLbsd9BJ.js +1 -0
  169. package/dist/{minimize-2-BQRoBV1V.js → minimize-2-CyOHJwcN.js} +1 -1
  170. package/dist/{model-switcher-CMpCOYcB.js → model-switcher-0hrKDiK2.js} +1 -1
  171. package/dist/{overlay-Cb-MkyDa.js → overlay-DBMFXie6.js} +1 -1
  172. package/dist/{panel-right-i8warFxT.js → panel-right-t8SWJL6e.js} +1 -1
  173. package/dist/{paperclip-ByY3UVO6.js → paperclip-CdzuOjbU.js} +1 -1
  174. package/dist/play-BXy1u7rW.js +1 -0
  175. package/dist/primitives/use-auto-resize.d.ts +11 -0
  176. package/dist/{progress-bar-jVAHvMUf.js → progress-bar-CiBtxMWT.js} +1 -1
  177. package/dist/{prompt-suggestion-CD-qtNgC.js → prompt-suggestion-I_DHP21i.js} +1 -1
  178. package/dist/{radio-BsoBMhkF.js → radio-C_p3n39l.js} +1 -1
  179. package/dist/{reasoning-4kBPtlTx.js → reasoning-BDwy_tIe.js} +1 -1
  180. package/dist/register-impl-DvEnhIxx.js +424 -0
  181. package/dist/{resizable-uPmY9VY-.js → resizable-SYC-fStM.js} +1 -1
  182. package/dist/{rotate-ccw-B2xn93py.js → rotate-ccw-B1nwmwuY.js} +1 -1
  183. package/dist/{rotate-cw-CMVLoCyH.js → rotate-cw-CLAnBcm1.js} +1 -1
  184. package/dist/{scroll-area-BqLUo8ZZ.js → scroll-area-zRyXoLhI.js} +1 -1
  185. package/dist/{scroll-button-DslXiJyL.js → scroll-button-jzrbYCG9.js} +1 -1
  186. package/dist/{select-2cLRtPGT.js → select-DM-0nEe0.js} +1 -1
  187. package/dist/{separator-BWQtNJcM.js → separator-BToOOoOt.js} +1 -1
  188. package/dist/{settings-BBR63jLg.js → settings-PaGo_S4U.js} +1 -1
  189. package/dist/{settings-group-B2ciy-Iw.js → settings-group-BFXGIfXq.js} +1 -1
  190. package/dist/{skeleton-CkHI-HgC.js → skeleton-DYpmFnnm.js} +1 -1
  191. package/dist/{slider-DDR9U-i0.js → slider-ebutAmkQ.js} +1 -1
  192. package/dist/{solid-DruVOXnf.js → solid-15v_3WVL.js} +3563 -3412
  193. package/dist/{solid-BzCFdL25.js → solid-5P-otgdi.js} +4502 -4296
  194. package/dist/solid.d.ts +6 -0
  195. package/dist/solid.js +259 -254
  196. package/dist/solid.server.js +259 -254
  197. package/dist/{source-GEnFF528.js → source-c1gpRl9h.js} +1 -1
  198. package/dist/{star-CilHq8GP.js → star-pcV_3LqF.js} +1 -1
  199. package/dist/{store-Ciyk6eZG.js → store-CSgbFFCg.js} +1 -1
  200. package/dist/{switch-KkeQIbuH.js → switch-Bh2OdLV2.js} +1 -1
  201. package/dist/{tasks-card-BrN4bggJ.js → tasks-card-CbqQAn2S.js} +1 -1
  202. package/dist/text-shimmer-BSzgEnDH.js +1 -0
  203. package/dist/textarea-DrYNt_0z.js +1 -0
  204. package/dist/theme.tokens.css +22 -21
  205. package/dist/{thumbs-up-CsT9Wzb9.js → thumbs-up-BL3-NenK.js} +1 -1
  206. package/dist/{toast-store-tgK6MuMv.js → toast-store-DkOlYczt.js} +1 -1
  207. package/dist/{tool-DzUjIBT8.js → tool-CeIWUVUe.js} +1 -1
  208. package/dist/{tooltip-Bkkg_4t0.js → tooltip-GA-nmg06.js} +1 -1
  209. package/dist/{trash-2-jBKxjGGQ.js → trash-2-CT66QWlm.js} +1 -1
  210. package/dist/{triangle-alert-DlQ68ppf.js → triangle-alert-CeHLWxhD.js} +1 -1
  211. package/dist/ui/color-field.d.ts +48 -0
  212. package/dist/ui/textarea.d.ts +4 -0
  213. package/dist/ui/toggle-chip.d.ts +40 -0
  214. package/dist/{upload-TcAHXv9W.js → upload-9Csb0F0J.js} +1 -1
  215. package/dist/{use-card-resolution-DaZqAdWf.js → use-card-resolution-Zg0a08Z-.js} +1 -1
  216. package/dist/{variant-aurora-DbW_OWL2.js → variant-aurora-4VBQHIKV.js} +1 -1
  217. package/dist/{variant-aurora-CNmfHhcx.js → variant-aurora-DBeCAQNk.js} +2 -2
  218. package/dist/{variant-aurora-D6GsdTPA.js → variant-aurora-FzHVXHby.js} +2 -2
  219. package/dist/{variant-aurora-BhLuYxJR.js → variant-aurora-LE3fqxgw.js} +1 -1
  220. package/dist/{variant-custom-BvYHR62b.js → variant-custom-AFRGcOBS.js} +1 -1
  221. package/dist/{variant-custom-DV2x254s.js → variant-custom-BQkNuPpE.js} +2 -2
  222. package/dist/{variant-custom-BRvaNHSi.js → variant-custom-DI5R0rln.js} +1 -1
  223. package/dist/{variant-custom-DMTrEO5w.js → variant-custom-WWnrrRHS.js} +2 -2
  224. package/dist/{variant-wave-CyBueXj9.js → variant-wave-DUCbH5oI.js} +2 -2
  225. package/dist/{variant-wave-BNMGrDfj.js → variant-wave-DuQV7DhQ.js} +2 -2
  226. package/dist/{variant-wave-BpDd8t3Z.js → variant-wave-nSI2sfII.js} +1 -1
  227. package/dist/{variant-wave-sp-qwsdI.js → variant-wave-wTP5v_jU.js} +1 -1
  228. package/dist/x-eiO9V6J6.js +1 -0
  229. package/{src/elements/styles.css → kit-base.css} +27 -44
  230. package/package.json +32 -17
  231. package/solid.css +33 -0
  232. package/theme.css +39 -23
  233. package/bin/route.test.js +0 -58
  234. package/dist/arrow-down-CjRU3JgV.js +0 -1
  235. package/dist/arrow-left-Bnpb1UEW.js +0 -1
  236. package/dist/artifact-Bwt7OgcR.js +0 -1
  237. package/dist/check-njkVdZu2.js +0 -1
  238. package/dist/chevron-down-B72s6PXR.js +0 -1
  239. package/dist/chevron-right-BatuHzUm.js +0 -1
  240. package/dist/circle-check-B62pODB3.js +0 -1
  241. package/dist/circle-zx0ByzY9.js +0 -1
  242. package/dist/controllable-CnGpMF6r.js +0 -1
  243. package/dist/define-By-uL588.js +0 -1
  244. package/dist/loader-BM4CEz4G.js +0 -1
  245. package/dist/message-circle-DruwObfX.js +0 -1
  246. package/dist/message-square-BG6q6mlm.js +0 -1
  247. package/dist/play-BvKKq3fX.js +0 -1
  248. package/dist/register-impl-B1hLkrI8.js +0 -424
  249. package/dist/text-shimmer-Dcj1MHuq.js +0 -1
  250. package/dist/textarea-Dpvbngbg.js +0 -1
  251. package/dist/x-Z5UntkIJ.js +0 -1
  252. package/src/agent-tooling/README.md +0 -192
  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 -147
  263. package/src/agent-tooling/construct/codegen.ts +0 -1635
  264. package/src/agent-tooling/construct/construct.v1.schema.json +0 -319
  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 -32
  269. package/src/agent-tooling/construct/schema.ts +0 -452
  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 -1014
  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 -241
  336. package/src/components/conversation-list.tsx +0 -429
  337. package/src/components/conversation-panel.tsx +0 -118
  338. package/src/components/dismissed-stub.tsx +0 -80
  339. package/src/components/embed.tsx +0 -200
  340. package/src/components/empty.tsx +0 -177
  341. package/src/components/feedback-bar.tsx +0 -166
  342. package/src/components/file-tree.tsx +0 -530
  343. package/src/components/file-upload.tsx +0 -167
  344. package/src/components/form-widgets.tsx +0 -525
  345. package/src/components/form.tsx +0 -1296
  346. package/src/components/home-panel.tsx +0 -159
  347. package/src/components/image.tsx +0 -65
  348. package/src/components/link-preview.tsx +0 -195
  349. package/src/components/loader.tsx +0 -367
  350. package/src/components/markdown.tsx +0 -162
  351. package/src/components/message-skills.tsx +0 -40
  352. package/src/components/message.tsx +0 -765
  353. package/src/components/model-switcher.tsx +0 -132
  354. package/src/components/prompt-input.tsx +0 -188
  355. package/src/components/prompt-suggestion.tsx +0 -150
  356. package/src/components/reasoning.tsx +0 -293
  357. package/src/components/response-compare-types.ts +0 -152
  358. package/src/components/response-compare.tsx +0 -455
  359. package/src/components/response-stream.tsx +0 -109
  360. package/src/components/screen.tsx +0 -181
  361. package/src/components/scroll-button.tsx +0 -93
  362. package/src/components/source.tsx +0 -192
  363. package/src/components/tasks-card.tsx +0 -801
  364. package/src/components/text-shimmer.tsx +0 -37
  365. package/src/components/thinking-bar.tsx +0 -50
  366. package/src/components/thread.tsx +0 -228
  367. package/src/components/toast.tsx +0 -503
  368. package/src/components/tool-classify.ts +0 -26
  369. package/src/components/tool-types.ts +0 -49
  370. package/src/components/tool.tsx +0 -190
  371. package/src/components/use-card-resolution.ts +0 -44
  372. package/src/components/voice-input.tsx +0 -222
  373. package/src/components/voice-output.tsx +0 -242
  374. package/src/components/widget-tab-bar.tsx +0 -73
  375. package/src/components/workspace-shell.tsx +0 -285
  376. package/src/diagnostics/hook.ts +0 -352
  377. package/src/diagnostics/index.ts +0 -82
  378. package/src/diagnostics/report-request.ts +0 -296
  379. package/src/elements/agent-card.tsx +0 -67
  380. package/src/elements/artifact.tsx +0 -194
  381. package/src/elements/attachments.tsx +0 -140
  382. package/src/elements/audio-visualizer.tsx +0 -227
  383. package/src/elements/autoloader.ts +0 -89
  384. package/src/elements/avatar.tsx +0 -33
  385. package/src/elements/badge.tsx +0 -32
  386. package/src/elements/button.tsx +0 -149
  387. package/src/elements/card.tsx +0 -133
  388. package/src/elements/cards.tsx +0 -266
  389. package/src/elements/chain-of-thought.tsx +0 -141
  390. package/src/elements/chat-scope-picker.tsx +0 -65
  391. package/src/elements/chat-types.ts +0 -102
  392. package/src/elements/chat-workspace.tsx +0 -188
  393. package/src/elements/chat.tsx +0 -304
  394. package/src/elements/checkbox-group.tsx +0 -164
  395. package/src/elements/checkbox.tsx +0 -134
  396. package/src/elements/checkpoint.tsx +0 -47
  397. package/src/elements/choice.tsx +0 -100
  398. package/src/elements/coachmark.tsx +0 -90
  399. package/src/elements/code-block.tsx +0 -60
  400. package/src/elements/command.tsx +0 -197
  401. package/src/elements/compare.tsx +0 -111
  402. package/src/elements/compiled.css +0 -2
  403. package/src/elements/composer.tsx +0 -162
  404. package/src/elements/confirm-card.tsx +0 -76
  405. package/src/elements/context-meter.tsx +0 -107
  406. package/src/elements/conversation-item.tsx +0 -120
  407. package/src/elements/conversation-list.tsx +0 -203
  408. package/src/elements/css.ts +0 -5
  409. package/src/elements/default-input.tsx +0 -392
  410. package/src/elements/define-entry.ts +0 -12
  411. package/src/elements/define.tsx +0 -563
  412. package/src/elements/diagnostic-events.ts +0 -114
  413. package/src/elements/dialog.tsx +0 -145
  414. package/src/elements/disclosure.ts +0 -95
  415. package/src/elements/dock.tsx +0 -215
  416. package/src/elements/dropdown.tsx +0 -123
  417. package/src/elements/editable-label.tsx +0 -140
  418. package/src/elements/element-data-types.ts +0 -152
  419. package/src/elements/element-diagnostics.ts +0 -392
  420. package/src/elements/element-manifest.json +0 -354
  421. package/src/elements/element-nonscalar.json +0 -187
  422. package/src/elements/element-types.d.ts +0 -4353
  423. package/src/elements/embed.tsx +0 -35
  424. package/src/elements/empty.tsx +0 -29
  425. package/src/elements/feedback-bar.tsx +0 -66
  426. package/src/elements/file-tree.tsx +0 -62
  427. package/src/elements/file-upload.tsx +0 -44
  428. package/src/elements/form.tsx +0 -94
  429. package/src/elements/hover-card.tsx +0 -80
  430. package/src/elements/icon.tsx +0 -41
  431. package/src/elements/image.tsx +0 -32
  432. package/src/elements/input.tsx +0 -492
  433. package/src/elements/kbd.tsx +0 -45
  434. package/src/elements/link-preview.tsx +0 -34
  435. package/src/elements/loader.tsx +0 -25
  436. package/src/elements/markdown.tsx +0 -38
  437. package/src/elements/menu.tsx +0 -241
  438. package/src/elements/message-skills.tsx +0 -83
  439. package/src/elements/message.tsx +0 -361
  440. package/src/elements/model-switcher.tsx +0 -121
  441. package/src/elements/nav.tsx +0 -87
  442. package/src/elements/notice.tsx +0 -53
  443. package/src/elements/pane-grid.tsx +0 -111
  444. package/src/elements/pane-group.tsx +0 -119
  445. package/src/elements/pane.tsx +0 -129
  446. package/src/elements/popover.tsx +0 -81
  447. package/src/elements/progress-bar.tsx +0 -39
  448. package/src/elements/prompt-dock.tsx +0 -82
  449. package/src/elements/prompt-input.tsx +0 -240
  450. package/src/elements/prompt-suggestions.tsx +0 -113
  451. package/src/elements/radio-group.tsx +0 -129
  452. package/src/elements/reasoning.tsx +0 -71
  453. package/src/elements/register-impl.ts +0 -148
  454. package/src/elements/register.ts +0 -76
  455. package/src/elements/remote.tsx +0 -225
  456. package/src/elements/resizable.globals.d.ts +0 -36
  457. package/src/elements/resizable.tsx +0 -704
  458. package/src/elements/response-stream.tsx +0 -40
  459. package/src/elements/screen.tsx +0 -90
  460. package/src/elements/scroll-area.tsx +0 -33
  461. package/src/elements/scroll-button.tsx +0 -179
  462. package/src/elements/search.tsx +0 -185
  463. package/src/elements/segmented.tsx +0 -129
  464. package/src/elements/select.tsx +0 -165
  465. package/src/elements/separator.tsx +0 -36
  466. package/src/elements/setting-item.tsx +0 -50
  467. package/src/elements/settings-group.tsx +0 -37
  468. package/src/elements/skeleton.tsx +0 -45
  469. package/src/elements/slider.tsx +0 -171
  470. package/src/elements/slot-text.ts +0 -73
  471. package/src/elements/slots.ts +0 -787
  472. package/src/elements/source.tsx +0 -126
  473. package/src/elements/status.tsx +0 -42
  474. package/src/elements/switch.tsx +0 -118
  475. package/src/elements/tabs.tsx +0 -95
  476. package/src/elements/tasks.tsx +0 -103
  477. package/src/elements/text-shimmer.tsx +0 -28
  478. package/src/elements/thinking-bar.tsx +0 -43
  479. package/src/elements/thread.tsx +0 -139
  480. package/src/elements/toast.tsx +0 -106
  481. package/src/elements/tool.tsx +0 -78
  482. package/src/elements/tooltip.tsx +0 -85
  483. package/src/elements/validate-messages.ts +0 -76
  484. package/src/elements/voice-input.tsx +0 -100
  485. package/src/elements/voice-output.tsx +0 -82
  486. package/src/index.ts +0 -430
  487. package/src/primitives/audio-bands.ts +0 -174
  488. package/src/primitives/card-component-types.ts +0 -63
  489. package/src/primitives/card-contract.ts +0 -80
  490. package/src/primitives/card-data-types.ts +0 -361
  491. package/src/primitives/card-host.tsx +0 -37
  492. package/src/primitives/card-recovery.ts +0 -160
  493. package/src/primitives/card-registry.tsx +0 -78
  494. package/src/primitives/card-resolution.ts +0 -36
  495. package/src/primitives/card-routing.ts +0 -85
  496. package/src/primitives/card-schemas/artifact.schema.json +0 -92
  497. package/src/primitives/card-schemas/card-envelope.schema.json +0 -14
  498. package/src/primitives/card-schemas/card-event.schema.json +0 -12
  499. package/src/primitives/card-schemas/choice.schema.json +0 -75
  500. package/src/primitives/card-schemas/confirm.schema.json +0 -65
  501. package/src/primitives/card-schemas/embed.schema.json +0 -63
  502. package/src/primitives/card-schemas/form.result.schema.json +0 -7
  503. package/src/primitives/card-schemas/form.schema.json +0 -53
  504. package/src/primitives/card-schemas/link.schema.json +0 -54
  505. package/src/primitives/card-schemas/tasks.result.schema.json +0 -16
  506. package/src/primitives/card-schemas/tasks.schema.json +0 -83
  507. package/src/primitives/card-tags.ts +0 -61
  508. package/src/primitives/card-validate-cards.ts +0 -255
  509. package/src/primitives/card-validate-schemas.ts +0 -58
  510. package/src/primitives/card-validate.ts +0 -131
  511. package/src/primitives/chat-config.tsx +0 -103
  512. package/src/primitives/composer-model.ts +0 -49
  513. package/src/primitives/composer-triggers.ts +0 -35
  514. package/src/primitives/controllable.ts +0 -21
  515. package/src/primitives/conversation-store.ts +0 -248
  516. package/src/primitives/create-kai-chat.ts +0 -66
  517. package/src/primitives/create-tween.ts +0 -266
  518. package/src/primitives/embed-providers.ts +0 -254
  519. package/src/primitives/field-mask.ts +0 -256
  520. package/src/primitives/field-semantics.ts +0 -115
  521. package/src/primitives/highlighter.ts +0 -157
  522. package/src/primitives/input-mask.ts +0 -853
  523. package/src/primitives/link-preview.ts +0 -87
  524. package/src/primitives/message-feedback.ts +0 -124
  525. package/src/primitives/pdf-preview.ts +0 -121
  526. package/src/primitives/toast-store.ts +0 -338
  527. package/src/primitives/url-scheme-policy.ts +0 -70
  528. package/src/primitives/use-audio-analysis.ts +0 -340
  529. package/src/primitives/use-auto-resize.ts +0 -31
  530. package/src/primitives/use-resize-observer.ts +0 -45
  531. package/src/primitives/use-sequencer.ts +0 -72
  532. package/src/primitives/use-speech-recognition.ts +0 -146
  533. package/src/primitives/use-stick-to-bottom.ts +0 -75
  534. package/src/primitives/use-text-stream.ts +0 -143
  535. package/src/primitives/use-voice-recorder.ts +0 -62
  536. package/src/primitives/visualizer-sequences.ts +0 -350
  537. package/src/remote/host-embed.ts +0 -345
  538. package/src/remote/index.ts +0 -2
  539. package/src/remote/origin.ts +0 -30
  540. package/src/remote/provider-runtime.ts +0 -262
  541. package/src/remote/provider.ts +0 -2
  542. package/src/remote/validate.ts +0 -22
  543. package/src/remote/version.ts +0 -12
  544. package/src/remote/wire.ts +0 -48
  545. package/src/schemas/from-tool-call.ts +0 -151
  546. package/src/schemas/index.ts +0 -341
  547. package/src/schemas/provider-subsets.ts +0 -538
  548. package/src/schemas/registry.ts +0 -355
  549. package/src/schemas/tool-defs.ts +0 -793
  550. package/src/solid.ts +0 -173
  551. package/src/state/index.ts +0 -44
  552. package/src/state/messages.ts +0 -53
  553. package/src/state/mock.ts +0 -297
  554. package/src/state/parts.ts +0 -295
  555. package/src/state/persistence.ts +0 -180
  556. package/src/state/stream.ts +0 -246
  557. package/src/state/suggestions.ts +0 -9
  558. package/src/state/threads.ts +0 -142
  559. package/src/test-utils/fake-clock.ts +0 -88
  560. package/src/types.ts +0 -95
  561. package/src/ui/action-icons.ts +0 -53
  562. package/src/ui/agent-card.tsx +0 -218
  563. package/src/ui/avatar.tsx +0 -23
  564. package/src/ui/badge.tsx +0 -21
  565. package/src/ui/button.tsx +0 -49
  566. package/src/ui/card.tsx +0 -245
  567. package/src/ui/checkbox-group.tsx +0 -153
  568. package/src/ui/checkbox.tsx +0 -63
  569. package/src/ui/collapsible.tsx +0 -163
  570. package/src/ui/command.tsx +0 -103
  571. package/src/ui/dialog.tsx +0 -223
  572. package/src/ui/dock.tsx +0 -630
  573. package/src/ui/dropdown.tsx +0 -636
  574. package/src/ui/editable-label.tsx +0 -112
  575. package/src/ui/hover-card.tsx +0 -345
  576. package/src/ui/icon.tsx +0 -167
  577. package/src/ui/input.tsx +0 -391
  578. package/src/ui/kbd.tsx +0 -118
  579. package/src/ui/nav.tsx +0 -282
  580. package/src/ui/notice.tsx +0 -84
  581. package/src/ui/overlay.tsx +0 -277
  582. package/src/ui/pane-grid.tsx +0 -117
  583. package/src/ui/pane-group.tsx +0 -291
  584. package/src/ui/pane.tsx +0 -193
  585. package/src/ui/popover.tsx +0 -106
  586. package/src/ui/progress-bar.tsx +0 -83
  587. package/src/ui/prompt-dock.tsx +0 -145
  588. package/src/ui/radio.tsx +0 -150
  589. package/src/ui/resizable.tsx +0 -693
  590. package/src/ui/scroll-area.tsx +0 -26
  591. package/src/ui/segmented.tsx +0 -109
  592. package/src/ui/select.tsx +0 -168
  593. package/src/ui/separator.tsx +0 -10
  594. package/src/ui/settings-group.tsx +0 -67
  595. package/src/ui/skeleton.tsx +0 -73
  596. package/src/ui/slider.tsx +0 -178
  597. package/src/ui/status.tsx +0 -48
  598. package/src/ui/switch.tsx +0 -119
  599. package/src/ui/tabs.tsx +0 -168
  600. package/src/ui/textarea.tsx +0 -21
  601. package/src/ui/tooltip.tsx +0 -118
  602. package/src/utils/cn.ts +0 -30
  603. package/src/wire/chunk.ts +0 -248
  604. package/src/wire/consume.ts +0 -599
  605. package/src/wire/diagnostics.ts +0 -727
  606. package/src/wire/encode-probe.ts +0 -214
  607. package/src/wire/encode.ts +0 -947
  608. package/src/wire/files.ts +0 -342
  609. package/src/wire/formats/anthropic.ts +0 -274
  610. package/src/wire/formats/openai.ts +0 -228
  611. package/src/wire/index.ts +0 -95
  612. package/src/wire/media-types.ts +0 -344
  613. package/src/wire/read.ts +0 -396
  614. package/src/wire/sink-helpers.ts +0 -50
  615. package/src/wire/sse.ts +0 -153
@@ -1 +0,0 @@
1
- import{s as o,c as i,q as s,D as c}from"./define-By-uL588.js";import{c as m}from"./cn-DN5AWfiS.js";function u(a){const[r,e]=o(a,["as","class","duration","spread","children"]),t=()=>Math.min(Math.max(r.spread??20,5),45),n=()=>r.as??"span";return i(c,s({get component(){return n()},get class(){return m("bg-size-[200%_auto] bg-clip-text font-medium text-transparent","animate-[shimmer_4s_infinite_linear]",r.class)},get style(){return{"background-image":`linear-gradient(to right, var(--color-muted-foreground) ${50-t()}%, var(--color-foreground) 50%, var(--color-muted-foreground) ${50+t()}%)`,"animation-duration":`${r.duration??4}s`}}},e,{get children(){return r.children}}))}export{u as T};
@@ -1 +0,0 @@
1
- import{h as s,s as a,u,p as l,q as f,t as g}from"./define-By-uL588.js";import{c}from"./cn-DN5AWfiS.js";function h(i={}){let e;function r(){if(!e)return;e.style.height="auto";const t=e.scrollHeight;i.maxHeight&&t>i.maxHeight?(e.style.height=`${i.maxHeight}px`,e.style.overflowY="auto"):(e.style.height=`${t}px`,e.style.overflowY="hidden")}function n(t){e=t,t.addEventListener("input",r),requestAnimationFrame(r),s(()=>t.removeEventListener("input",r))}return{ref:n,resize:r}}var m=g("<textarea rows=1>");function d(i){const[e,r]=a(i,["class","maxHeight","autoResize"]),{ref:n}=h({maxHeight:e.maxHeight});return(()=>{var t=m(),o=e.autoResize!==!1?n:void 0;return typeof o=="function"&&u(o,t),l(t,f({get class(){return c("w-full resize-none rounded-md bg-transparent text-sm text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring",e.class)}},r),!1,!1),t})()}export{d as T};
@@ -1 +0,0 @@
1
- import{I as o}from"./Icon-DObhsRtm.js";import{c as m,q as r}from"./define-By-uL588.js";var e=[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]],t=a=>m(o,r(a,{name:"X",iconNode:e})),p=t;export{p as x};
@@ -1,192 +0,0 @@
1
- # `agent-tooling/`
2
-
3
- The kit's machine-facing front door: everything that makes AI coding agents
4
- and CLIs fluent building with `@kitn.ai/ui`. It is packaging and tooling on
5
- top of the library, not part of it — `grep -rn "agent-tooling"
6
- packages/ui/src/components packages/ui/src/elements` returns no imports (only
7
- a code comment and a test's `UNSCANNED_DIRS` entry mention the directory by
8
- name). Nothing a consumer's chat UI renders depends on anything in here.
9
-
10
- ## The four parts
11
-
12
- ```
13
- ┌─────────────────────────┐
14
- │ kai MCP server (mcp/) │
15
- │ construct · scaffold · │
16
- │ reference · theme · │
17
- │ debug │
18
- └───────┬─────────┬────────┘
19
- consumes consumes
20
- │ │
21
- ▼ ▼
22
- ┌────────────────┐ ┌──────────────────┐
23
- │ construct/ │ │ catalog/ │
24
- │ (schema→codegen │ │ (invariants, │
25
- │ →cli engine) │ │ surfaces, │
26
- └────────▲────────┘ │ fabrications, …) │
27
- │ └───────────────────┘
28
- standalone,
29
- no MCP involved
30
-
31
- ┌────────┴────────┐
32
- │ bin/mcp.js CLI │
33
- │ validate/dev/ │
34
- │ compile/eject │
35
- └──────────────────┘
36
- ```
37
-
38
- - **`mcp/`** — the `kai` MCP server. The tools in `mcp/tools/`:
39
- - `construct.ts` — turn-by-turn authoring of a construct JSON file (one
40
- JSON file → one web component); stateless, the harness owns the file.
41
- - `scaffold.ts` — generates a full chat integration (framework + backend
42
- route + integration wiring) from `agent-tooling/registry.ts` and
43
- `agent-tooling/archetypes.ts` (backed by `agent-tooling/integrations/`).
44
- - `reference.ts` — component/element/card lookup for an agent deciding what
45
- to use.
46
- - `theme.ts` — produces a `--kai-*` CSS token override block from a brand
47
- color or description, resolved against the kit's own `theme.css`.
48
- - `debug.ts` — diagnoses common `kai-*` integration failures from a
49
- symptom/snippet, sourced from `apps/docs/src/content/docs/guides/for-ai-agents.mdx`.
50
- - **`construct/`** — the construct engine: a declarative JSON format compiled
51
- to a self-registering web component. Pipeline is `schema.ts` (Zod, single
52
- source of truth) → `codegen.ts` (the one generation path — `kai dev`,
53
- `kai compile`, and `kai eject` all call the same `generateProject`) →
54
- `cli.ts` (the `validate | eject | dev | compile` subcommands). Fixtures
55
- live in `construct/fixtures/` (`demo-widget`, `ops-console`,
56
- `owner-widget`). The published JSON Schema artifact is
57
- `construct/construct.v1.schema.json`, mirrored byte-identical at
58
- `apps/docs/public/schemas/construct/v1.json`; both are guarded against
59
- drift from the Zod source by `construct/schema-artifact.test.ts` (asserts
60
- the checked-in artifact equals `z.toJSONSchema(ConstructSchema)` right now)
61
- and regenerated by `scripts/gen-construct-schema.mjs` via `build:api`.
62
- - **`catalog/`** — Zod-typed reference data, mostly independent of the
63
- construct engine, each file feeding a specific consumer:
64
- - `catalog-types.ts` — the shared Zod types (`SurfaceArchetype`,
65
- `DeliveryTarget`, `WireReader`, `Backend`, …) the rest of the catalog is
66
- built from.
67
- - `invariants.ts` — the composition invariants an agent must hold, each
68
- with an `enforcedBy` path and a `lint` script name; feeds
69
- `invariants.test.ts` and the acceptance harness.
70
- - `surfaces.ts` — the sorted inventory of product-shaped surfaces vs.
71
- ingredients vs. corpus; feeds `surfaces.test.ts` and `derived.json`.
72
- - `fabrications.ts` — tags agents have invented while working from an
73
- acceptance pack (and what they should have used instead); renders the
74
- pack's `FABRICATED.md`, checked against `derived.json` in both directions
75
- by `fabrications.test.ts`.
76
- - `scenarios.ts` — the acceptance deck (spec §6): prompts + what each
77
- needs, written before the catalog it measures.
78
- - `labs-titles.ts` — parses the real `Labs/…` story titles registered by
79
- story files (TypeScript AST, not a regex), used to keep the catalog's
80
- story inventory honest.
81
- - `derived.json` — generated inventory of elements/props read by
82
- `catalog-types.ts`, `fabrications.ts`, and `surfaces.ts` (and their
83
- tests) rather than by anything outside the catalog.
84
- - `catalog/README.md` — the catalog's own deeper documentation.
85
-
86
- How they relate: the MCP's `construct` and `scaffold` tools **consume** the
87
- construct engine and the catalogs — they don't reimplement authoring logic,
88
- they call into `construct/schema.ts` / `construct/codegen.ts` and read the
89
- registry/catalog data. The construct CLI (`bin/mcp.js validate|dev|compile|eject`,
90
- built from `construct/cli-entry.ts` → `dist/construct-cli.es.js`) runs the
91
- engine standalone, with no MCP server involved at all.
92
-
93
- ## Usage
94
-
95
- - **`npx @kitn.ai/ui mcp`** starts the MCP server (the historical default
96
- subcommand). For wiring it into a multi-harness setup, see the docs site's
97
- agents guide: `apps/docs/src/content/docs/guides/for-ai-agents.mdx`.
98
- - **CLI form**, no MCP: `node bin/mcp.js validate|dev|compile|eject <construct.json>`
99
- (`bin/mcp.js` dispatches `dev`/`compile`/`eject`/`validate` to the construct
100
- CLI and anything else, including `mcp` or no argument, to the MCP server;
101
- an unrecognized subcommand is a loud error, not a silent fallthrough).
102
- `eject` writes a real Solid project you own; `dev` gives a live-reload
103
- preview; `compile` emits one self-registering `.js`.
104
- - **Acceptance harness** (`packages/ui/scripts/acceptance-*.mjs`:
105
- `acceptance-pack.mjs`, `acceptance-run.mjs`, `acceptance-eval.mjs`,
106
- `acceptance-gate-compiles.mjs`) — builds and grades a coding agent's
107
- from-scratch attempt at using the catalog with no kit source, per the
108
- scenarios in `catalog/scenarios.ts`; this is how the catalog's own claims
109
- get checked against a real agent rather than asserted.
110
-
111
- ## Worked example
112
-
113
- `construct/fixtures/owner-widget.construct.json`, field by field:
114
-
115
- - `"$schema"` — points at the published schema URL for editor validation.
116
- - `"name": "acme-support"` — the construct's name; also the emitted custom
117
- element's tag basis.
118
- - `"layout": "widget"` — a floating launcher widget, not full-screen or docked.
119
- - `"provider": { "mode": "mock" }` — no backend; canned responses (vs.
120
- `mode: "endpoint"`, the consumer's own chat route).
121
- - `"userId": "user_123"` — the identity value threaded through for
122
- history/persistence.
123
- - `"header": { "title": "Acme Support" }` — the chat header's title text.
124
- - `"theme": { "unreadColor": "#38BDF8" }` — one branded token override.
125
- - `"empty": { "title": ..., "description": ... }` — the empty-state copy
126
- shown before the first message.
127
- - `"widget": { "position": "top-start", "defaultOpen": true }` — widget-layout
128
- placement and initial open state.
129
- - `"capabilities.attachments.accept"` — allowed MIME patterns for uploads.
130
- - `"capabilities.history.persistence": "local"` — history persisted in the
131
- browser, not the consumer's backend.
132
- - `"capabilities.starters"` — suggested first prompts.
133
- - `"capabilities.reasoningOpen": true` — reasoning panels start expanded.
134
- - `"capabilities.conversations": true` — enables the conversations sidebar.
135
-
136
- `codegen.ts` turns this into a small, deterministic (no dates, no randomness,
137
- fixed key order) Solid project: pure Solid interior composing
138
- `@kitn.ai/ui/solid` components, provider glue built on `@kitn.ai/ui/state` +
139
- `@kitn.ai/ui/wire` (never a hand-rolled SSE reader), and one
140
- `defineWebComponent` facade carrying the tag, theme default, and slots. The
141
- facade injects the kit's compiled CSS into the shadow root, so the generated
142
- project needs no Tailwind and no CSS build step. `kai dev`, `kai compile`,
143
- and `kai eject` all go through this same generation path — the preview is
144
- the artifact, there is no separate interpreter to drift from it.
145
-
146
- ## Rules that bind changes here
147
-
148
- - **Vocabulary never logic** — the construct format has no handlers and no
149
- expressions; it describes, it doesn't script. `schema.ts` is `.strict()`
150
- everywhere, so an unknown key is a loud rejection.
151
- - **Widen, never restructure `schema.ts`** — it's the single source of truth;
152
- never hand-edit the generated JSON Schema artifacts or restate an enum
153
- elsewhere, read it off `ConstructSchema.shape` or the generated artifact.
154
- - **Derive, don't type** — the published schema artifact is generated from
155
- Zod (`scripts/gen-construct-schema.mjs`, run by `build:api`) and pinned by
156
- `construct/schema-artifact.test.ts`; `verify:construct`'s layout and
157
- capability axes are read off that same drift-guarded artifact rather than
158
- hand-listed, so adding a layout or capability to the Zod schema moves what
159
- the gate covers on its own.
160
- - **`verify:construct`** (`scripts/verify-construct.mjs`) drives the real CLI
161
- end to end against this checkout's own packed tarball — eject, install,
162
- compile under the emitted tsconfig, build, and bundle inside a real
163
- consumer app — for every layout/capability combination the schema
164
- currently declares. No unit test in this tree leaves the process; this is
165
- the one that does.
166
- - **`verify:scaffold`** (`scripts/verify-scaffold-compiles.mjs`) compiles the
167
- scaffolder's emitted front ends and backend routes under `tsc --strict`
168
- across the integration × surface × framework axes derived from the
169
- registry, plus structural checks (e.g. the Solid emit branches on every
170
- `MessagePart` variant).
171
- - **`verify:generated`** (`scripts/verify-generated-sync.mjs`) re-runs
172
- `build:api` and fails if any derived artifact in the tree (including
173
- catalog/manifest files this directory reads) differs from what the
174
- generator produces right now — catches drift `nx build ui`'s NX cache can
175
- hide.
176
- - **The schema-artifact test pair** (`construct/schema-artifact.test.ts`)
177
- catches a `schema.ts` edit that shipped without a regen, in the unit suite
178
- itself rather than only in CI's `verify:generated`.
179
-
180
- ## Where deeper docs live
181
-
182
- - Repo root [`CLAUDE.md`](../../../../CLAUDE.md)'s **Map** section for how
183
- this directory sits relative to `primitives/`, `ui/`, `components/`, and
184
- `elements/`.
185
- - [`.claude/README.md`](../../../../.claude/README.md) for the project-local
186
- skills/agents that exercise this tooling (notably `/consumer-regression`).
187
- - The docs site's agents guide,
188
- `apps/docs/src/content/docs/guides/for-ai-agents.mdx` — the rules
189
- `debug.ts` and the MCP's contract enforcement are sourced from.
190
- - `docs/superpowers/specs/2026-08-25-construct-engine-design.md` — the
191
- construct engine's design spec (decisions ledger, format rules, success
192
- criteria).
@@ -1,205 +0,0 @@
1
- import type { Archetype } from './types';
2
-
3
- /**
4
- * The archetypes are PRESETS over a components list, not the surface axis.
5
- *
6
- * `renderSurface({ framework, components, integration })` renders any components
7
- * list; each entry below is a named point in that space plus a default placement.
8
- * Read the table as "components + placement" and the CLI's feature multi-select
9
- * falls out of it: placement is the layout question, `components` is the features.
10
- *
11
- * Adding an entry here adds a PRESET. It does not add a capability, and it is not
12
- * how a new component reaches the renderers — that is `components` at the call
13
- * site. See `listCapabilityGroups` below for what this catalog does still decide.
14
- */
15
- export const archetypes: Archetype[] = [
16
- {
17
- id: 'drop-in-chat',
18
- title: 'Drop-in chat',
19
- components: ['kai-chat'],
20
- defaultPlacement: 'full-page',
21
- docsSlug: 'examples/drop-in-chat',
22
- },
23
- {
24
- id: 'support-widget',
25
- title: 'Support widget',
26
- components: ['kai-chat'],
27
- defaultPlacement: 'docked-widget',
28
- docsSlug: 'examples/support-widget',
29
- },
30
- {
31
- id: 'knowledge-base',
32
- title: 'Knowledge base / RAG',
33
- components: ['kai-chat', 'kai-sources'],
34
- defaultPlacement: 'full-page',
35
- docsSlug: 'examples/knowledge-base',
36
- },
37
- {
38
- id: 'agentic',
39
- title: 'Agentic assistant',
40
- components: ['kai-chat', 'kai-tool', 'kai-reasoning'],
41
- defaultPlacement: 'side',
42
- docsSlug: 'examples/agentic-assistant',
43
- },
44
- /**
45
- * THE FIRST OFFICIAL BLOCK (recast spec 2026-08-20 § 3b; F-16).
46
- *
47
- * This preset used to carry `kai-artifact` + `kai-resizable` — an UNWIRED
48
- * artifact split — while omitting the conversation rail, the one thing its
49
- * name promised (rung-3 finding F-16). It now names the workspace BLOCK: the
50
- * chat-agnostic `kai-workspace` layout shell, a WIRED `kai-conversations`
51
- * rail, `kai-chat` in the main region, and the `@kitn.ai/ui/state` thread
52
- * helpers (bindThreadMessages / createThreadSessions / createSaveScheduler /
53
- * parseStoredThread) with the persistence POLICY left in consumer-owned
54
- * lines. `examples/apps/workspace/` is the block's reference implementation.
55
- *
56
- * The artifact split did not vanish — it moved to `artifact-split` below, so
57
- * its renderer branch keeps its cells in `verify:scaffold`.
58
- */
59
- {
60
- id: 'workspace',
61
- title: 'Agentic workspace',
62
- components: ['kai-chat', 'kai-workspace', 'kai-conversations'],
63
- defaultPlacement: 'full-page',
64
- docsSlug: 'examples/workspace',
65
- },
66
- /**
67
- * THE PRESET THAT KEEPS A CAPABILITY ON THE AXIS — the same reason the
68
- * `attachments` preset exists (see its comment below): `listCapabilityGroups`
69
- * derives the gate's surface axis from this table, so when the recast moved
70
- * the artifact pair off `workspace`, this entry is what kept
71
- * `kai-artifact`+`kai-resizable` compiling in `verify:scaffold` instead of
72
- * silently losing every cell. The pair is ONE capability because `isArtifactSplit`
73
- * in scaffold.ts requires both: a split with no preview pane is an empty
74
- * panel, and a preview with no split has nowhere to sit.
75
- */
76
- {
77
- id: 'artifact-split',
78
- title: 'Artifact preview split',
79
- components: ['kai-chat', 'kai-artifact', 'kai-resizable'],
80
- defaultPlacement: 'side',
81
- docsSlug: 'examples/workspace',
82
- },
83
- {
84
- id: 'voice',
85
- title: 'Voice assistant',
86
- components: ['kai-chat', 'kai-voice-input'],
87
- defaultPlacement: 'full-page',
88
- docsSlug: 'examples/voice-assistant',
89
- },
90
- /**
91
- * THE PRESET THAT EXISTS TO MAKE A CAPABILITY REACHABLE, not to name a product
92
- * shape someone asked for.
93
- *
94
- * `kai-file-upload` and `kai-attachments` were registered elements that NO
95
- * preset composed, and `listCapabilityGroups` derives its answer from this
96
- * table — so the attachments capability reached neither `listSurfaceProbes`
97
- * nor `verify:scaffold`, and `renderSurface` had no branch that emitted either
98
- * tag. A caller could pass them in `components` (the axis takes any list) and
99
- * get two bare `<kai-file-upload></kai-file-upload>` / `<kai-attachments>`
100
- * siblings with nothing wired to them: on screen, inert, silent.
101
- *
102
- * The pair is ONE capability for the same reason `kai-artifact` +
103
- * `kai-resizable` are: a dropzone with no list is a black hole, and a list
104
- * with no dropzone can never fill. `hasAttachments` in scaffold.ts requires
105
- * both for exactly that reason.
106
- *
107
- * The components match the create-kai spec's own feature table
108
- * (`attachments` -> `kai-file-upload`, `kai-attachments`), so the CLI's
109
- * multi-select and this preset name the same surface rather than two.
110
- */
111
- {
112
- id: 'attachments',
113
- title: 'File attachments',
114
- components: ['kai-chat', 'kai-file-upload', 'kai-attachments'],
115
- defaultPlacement: 'full-page',
116
- docsSlug: 'examples/attachments',
117
- },
118
- ];
119
-
120
- /** The component every surface composes around, so never a capability by itself. */
121
- export const BASE_COMPONENT = 'kai-chat';
122
-
123
- /** One capability: the components a preset adds on top of `BASE_COMPONENT`. */
124
- export interface CapabilityGroup {
125
- /** derived from the components, e.g. `tool+reasoning` — not a preset name */
126
- id: string;
127
- components: string[];
128
- }
129
-
130
- /**
131
- * The distinct capabilities the presets know about, DERIVED from them.
132
- *
133
- * A capability is one preset's components minus `kai-chat`, deduped across the
134
- * catalog (run `listCapabilityGroups()` for the current list — `drop-in-chat`
135
- * and `support-widget` collapse onto the same empty capability because both add
136
- * nothing and differ only in `defaultPlacement`).
137
- *
138
- * Derived rather than listed for the reason the verify script's other axes are:
139
- * a hand-written list would have to be edited by the same hand that adds a
140
- * preset, so a new capability could land with nothing covering it and nothing
141
- * failing to say so. Registering a preset whose components are new moves the
142
- * cell count in `verify:scaffold` by itself.
143
- *
144
- * The grouping is real and not an artifact of the derivation: `kai-tool` and
145
- * `kai-reasoning` are one capability because a tool panel with no reasoning
146
- * disclosure is not a surface anyone asks for, `kai-artifact` /
147
- * `kai-resizable` are one because `isArtifactSplit` in scaffold.ts only fires when BOTH are present
148
- * — split them and the renderer emits a bare artifact with no pane to put it in
149
- * — and `kai-file-upload` / `kai-attachments` are one because `hasAttachments`
150
- * fires the same way, for the same kind of reason.
151
- */
152
- export function listCapabilityGroups(): CapabilityGroup[] {
153
- const seen = new Map<string, CapabilityGroup>();
154
- for (const a of archetypes) {
155
- const components = a.components.filter((c) => c !== BASE_COMPONENT);
156
- if (components.length === 0) continue;
157
- const key = [...components].sort().join(',');
158
- if (seen.has(key)) continue;
159
- seen.set(key, { id: components.map((c) => c.replace(/^kai-/, '')).join('+'), components });
160
- }
161
- return [...seen.values()];
162
- }
163
-
164
- /** One surface the scaffolder's gate compiles across every integration × framework. */
165
- export interface SurfaceProbe {
166
- id: string;
167
- components: string[];
168
- }
169
-
170
- /**
171
- * The surface axis for `verify:scaffold`: each capability ALONE, plus none, plus
172
- * ALL of them.
173
- *
174
- * WHY THESE AND NOT THE PRESETS. The presets are seven cells covering six
175
- * distinct components lists (`support-widget` repeats `drop-in-chat`'s, and the
176
- * matrix holds `placement` at one value, so that pair compiled the same types
177
- * twice). More importantly they cover no combination at all — every preset is
178
- * exactly one capability — so the surfaces the multi-select makes reachable,
179
- * which is most of them, had nothing compiling them.
180
- *
181
- * WHY NOT THE POWER SET. 2^groups x integrations x frameworks is thousands of
182
- * cells to exercise no new branch. The renderers compose capabilities
183
- * INDEPENDENTLY: each companion tag is emitted on its own terms, and the
184
- * multi-component predicates (`isArtifactSplit`, `isWorkspaceBlock`) each read
185
- * components from within a single group. So
186
- * "every capability alone" reaches every branch, and "all capabilities together"
187
- * makes every PAIR of capabilities co-occur, which is what proves they compose.
188
- *
189
- * THE LIMIT, STATED: a defect needing exactly two capabilities and masked by a
190
- * third would survive this. That is a real gap and the honest reason it is
191
- * accepted is cost, not safety — no such branch exists in the renderers today,
192
- * and `assertSurfacesAreDistinct` fails if the axis ever degenerates so that this
193
- * reasoning is quietly checking less than it claims.
194
- */
195
- export function listSurfaceProbes(): SurfaceProbe[] {
196
- const groups = listCapabilityGroups();
197
- return [
198
- { id: 'chat-only', components: [BASE_COMPONENT] },
199
- ...groups.map((g) => ({ id: g.id, components: [BASE_COMPONENT, ...g.components] })),
200
- {
201
- id: 'every-capability',
202
- components: [BASE_COMPONENT, ...groups.flatMap((g) => g.components)],
203
- },
204
- ];
205
- }