@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,257 +0,0 @@
1
- /**
2
- * A real recorded voice, baked into a short seamless loop for the
3
- * `speaking` tiles in the stories -- the genuine article, not a generator.
4
- *
5
- * Real voice, recorded by the project owner: "This is a test, testing one
6
- * two three, hello world." Captured mono at 44.1kHz, then extracted through
7
- * the component's ALIGNED analysis chain -- the same values upstream
8
- * LiveKit's components run: AnalyserNode fftSize 2048 / smoothing 0.8,
9
- * window bins 100-200 (the components' own loPass/hiPass; see DEFAULTS in
10
- * primitives/use-audio-analysis.ts), `reduceToBands`' linear-proportional
11
- * split as it exists in THIS tree, ~32ms cadence. Third bake of this
12
- * fixture: the first was 5 linear bands over a wide raw-mic window
13
- * (bins 4-120), the second 3 geometric bands over the same wide window;
14
- * both predate the pipeline realignment that reverted window and split to
15
- * upstream's.
16
- *
17
- * GAIN: the raw take is boosted 8x (+18dB) through a GainNode before the
18
- * analysers -- an honest approximation of capture-side AGC, which every
19
- * real input to the aligned window gets (LiveKit captures local mics with
20
- * autoGainControl on; the mic stories request the same) but this recording,
21
- * made raw, never had. Un-gained, quiet natural-volume speech sits at or
22
- * under the -100dB floor across bins 100-200 and the loop's time-averaged
23
- * band profile comes out flat-to-inverted (edges louder than centre);
24
- * measured at +18dB the bake hits the live-AGC targets: speech-active
25
- * volume through the aligned byte path (minDecibels -100 / maxDecibels
26
- * -80) averages 0.73, no speech frame reads all-zero bands, and the
27
- * time-averaged mirrored md profile is centre-strictly-max --
28
- * [0.41, 0.42, 0.44, 0.42, 0.41]. The trade, recorded honestly: +18dB also
29
- * lifts part of the room tone over the floor, so rest frames idle near
30
- * [0.2, 0.04, 0] instead of the exact zeros an un-gained bake would show
31
- * -- which is also what a real AGC mic does between words.
32
- *
33
- * 3 bands per frame is HALF width on purpose: `Math.ceil(count / 2)`, the
34
- * exact band count the component itself requests at `md` before mirroring
35
- * (see `bandCount()` in index.tsx). The `bands` prop is a raw passthrough
36
- * by contract, so the stories mirror these half bands out to the full
37
- * element count themselves through `mirrorBandsCenterOut` /
38
- * `mirrorBandsAroundRing` -- the same primitives the live-audio path runs.
39
- * See `useVoiceBands` in the stories file.
40
- *
41
- * Trimmed to the same 196-frame window (~6.4s) as the previous bake:
42
- * about half a second of rest before the first word, just under a second
43
- * after the last, and BOTH natural pauses in the middle -- one short gap
44
- * around "test," / "testing", the longer one after "three," before
45
- * "hello" -- since those are what prove the visualizer falls back to rest
46
- * and recovers. Loops by wrapping frame 195 back to frame 0. Re-verified
47
- * at the aligned values: the endpoints differ by 0.034 pre-quantization
48
- * ([0.22,0.05,0] vs [0.2,0.03,0] after it), which sits between the median
49
- * (0.025) and p90 (0.053) of ADJACENT quiet frames' natural motion at this
50
- * gain -- the wrap step is indistinguishable from ordinary idle flicker.
51
- * (The previous bake's endpoints quantized identical, but only because its
52
- * un-gained rest frames were all zeros -- trivial, not preserved here.)
53
- *
54
- * Quantized to 2 decimals. Playback treats the cadence as a flat
55
- * `VOICE_FRAME_MS`; the capture's real ticks land at 32-33ms (setTimeout
56
- * jitter), a ~2% difference nobody can see. Body is ~3.8KB.
57
- */
58
- export const VOICE_FRAME_MS = 32;
59
-
60
- export const VOICE_BANDS: readonly (readonly number[])[] = [
61
- [0.22,0.05,0],
62
- [0.21,0.04,0],
63
- [0.2,0.04,0],
64
- [0.22,0.03,0],
65
- [0.23,0.03,0],
66
- [0.22,0.02,0],
67
- [0.21,0.02,0],
68
- [0.22,0.02,0],
69
- [0.22,0.11,0.01],
70
- [0.22,0.14,0.02],
71
- [0.23,0.13,0.01],
72
- [0.45,0.45,0.57],
73
- [0.52,0.52,0.61],
74
- [0.62,0.61,0.64],
75
- [0.64,0.62,0.65],
76
- [0.64,0.63,0.65],
77
- [0.63,0.63,0.66],
78
- [0.62,0.62,0.65],
79
- [0.61,0.61,0.65],
80
- [0.61,0.61,0.65],
81
- [0.65,0.63,0.67],
82
- [0.67,0.63,0.67],
83
- [0.66,0.62,0.66],
84
- [0.65,0.61,0.65],
85
- [0.64,0.59,0.64],
86
- [0.63,0.58,0.62],
87
- [0.62,0.59,0.61],
88
- [0.61,0.61,0.6],
89
- [0.62,0.62,0.59],
90
- [0.61,0.62,0.59],
91
- [0.59,0.61,0.57],
92
- [0.59,0.61,0.59],
93
- [0.59,0.62,0.64],
94
- [0.59,0.62,0.66],
95
- [0.61,0.62,0.66],
96
- [0.61,0.61,0.65],
97
- [0.61,0.6,0.64],
98
- [0.6,0.59,0.63],
99
- [0.59,0.57,0.62],
100
- [0.58,0.56,0.6],
101
- [0.61,0.59,0.6],
102
- [0.62,0.59,0.6],
103
- [0.61,0.58,0.58],
104
- [0.59,0.57,0.57],
105
- [0.58,0.56,0.55],
106
- [0.6,0.57,0.56],
107
- [0.62,0.58,0.56],
108
- [0.63,0.58,0.57],
109
- [0.64,0.58,0.56],
110
- [0.64,0.58,0.55],
111
- [0.63,0.57,0.54],
112
- [0.63,0.56,0.54],
113
- [0.62,0.54,0.52],
114
- [0.61,0.53,0.51],
115
- [0.59,0.51,0.49],
116
- [0.58,0.49,0.47],
117
- [0.56,0.47,0.45],
118
- [0.54,0.46,0.43],
119
- [0.53,0.48,0.42],
120
- [0.52,0.47,0.4],
121
- [0.5,0.45,0.37],
122
- [0.48,0.43,0.35],
123
- [0.46,0.41,0.32],
124
- [0.45,0.39,0.3],
125
- [0.43,0.37,0.26],
126
- [0.41,0.35,0.23],
127
- [0.4,0.34,0.22],
128
- [0.38,0.33,0.18],
129
- [0.37,0.31,0.16],
130
- [0.38,0.32,0.21],
131
- [0.37,0.31,0.19],
132
- [0.36,0.28,0.16],
133
- [0.46,0.41,0.37],
134
- [0.5,0.49,0.52],
135
- [0.51,0.53,0.58],
136
- [0.51,0.54,0.6],
137
- [0.51,0.55,0.62],
138
- [0.52,0.56,0.63],
139
- [0.51,0.56,0.63],
140
- [0.51,0.56,0.63],
141
- [0.5,0.56,0.64],
142
- [0.51,0.56,0.64],
143
- [0.53,0.59,0.64],
144
- [0.55,0.6,0.64],
145
- [0.55,0.6,0.63],
146
- [0.53,0.58,0.61],
147
- [0.54,0.59,0.62],
148
- [0.56,0.59,0.65],
149
- [0.61,0.63,0.68],
150
- [0.63,0.64,0.69],
151
- [0.63,0.65,0.68],
152
- [0.63,0.64,0.67],
153
- [0.62,0.63,0.66],
154
- [0.61,0.61,0.65],
155
- [0.6,0.61,0.65],
156
- [0.59,0.6,0.65],
157
- [0.58,0.59,0.66],
158
- [0.56,0.58,0.65],
159
- [0.55,0.57,0.64],
160
- [0.54,0.58,0.65],
161
- [0.54,0.57,0.65],
162
- [0.53,0.56,0.64],
163
- [0.52,0.54,0.62],
164
- [0.5,0.52,0.61],
165
- [0.48,0.51,0.59],
166
- [0.47,0.49,0.58],
167
- [0.46,0.47,0.56],
168
- [0.44,0.46,0.55],
169
- [0.42,0.44,0.53],
170
- [0.4,0.41,0.51],
171
- [0.39,0.39,0.49],
172
- [0.37,0.37,0.47],
173
- [0.36,0.35,0.45],
174
- [0.34,0.34,0.43],
175
- [0.36,0.37,0.42],
176
- [0.35,0.37,0.4],
177
- [0.33,0.35,0.38],
178
- [0.32,0.33,0.36],
179
- [0.3,0.3,0.33],
180
- [0.29,0.28,0.31],
181
- [0.27,0.26,0.28],
182
- [0.26,0.24,0.26],
183
- [0.25,0.21,0.22],
184
- [0.24,0.19,0.19],
185
- [0.25,0.23,0.21],
186
- [0.35,0.38,0.36],
187
- [0.39,0.5,0.46],
188
- [0.39,0.52,0.48],
189
- [0.4,0.53,0.49],
190
- [0.47,0.6,0.55],
191
- [0.52,0.62,0.58],
192
- [0.55,0.63,0.58],
193
- [0.56,0.63,0.58],
194
- [0.54,0.62,0.57],
195
- [0.53,0.6,0.55],
196
- [0.52,0.59,0.54],
197
- [0.5,0.57,0.52],
198
- [0.49,0.56,0.5],
199
- [0.47,0.55,0.49],
200
- [0.46,0.53,0.47],
201
- [0.44,0.52,0.45],
202
- [0.43,0.51,0.46],
203
- [0.51,0.54,0.54],
204
- [0.54,0.55,0.55],
205
- [0.53,0.56,0.54],
206
- [0.52,0.57,0.54],
207
- [0.51,0.57,0.53],
208
- [0.53,0.59,0.56],
209
- [0.52,0.58,0.56],
210
- [0.51,0.57,0.55],
211
- [0.49,0.55,0.54],
212
- [0.48,0.54,0.52],
213
- [0.46,0.52,0.51],
214
- [0.44,0.5,0.49],
215
- [0.43,0.49,0.47],
216
- [0.41,0.47,0.45],
217
- [0.39,0.46,0.43],
218
- [0.37,0.44,0.41],
219
- [0.36,0.42,0.39],
220
- [0.34,0.4,0.36],
221
- [0.32,0.37,0.34],
222
- [0.31,0.35,0.32],
223
- [0.3,0.33,0.29],
224
- [0.28,0.31,0.26],
225
- [0.27,0.29,0.23],
226
- [0.27,0.27,0.22],
227
- [0.26,0.25,0.18],
228
- [0.25,0.23,0.15],
229
- [0.24,0.2,0.13],
230
- [0.23,0.18,0.09],
231
- [0.23,0.16,0.07],
232
- [0.23,0.14,0.04],
233
- [0.22,0.11,0.03],
234
- [0.22,0.09,0.02],
235
- [0.2,0.07,0.01],
236
- [0.2,0.04,0.01],
237
- [0.18,0.03,0.01],
238
- [0.18,0.02,0.01],
239
- [0.19,0.02,0],
240
- [0.19,0.01,0],
241
- [0.19,0.01,0],
242
- [0.17,0.01,0],
243
- [0.19,0.01,0],
244
- [0.18,0.07,0],
245
- [0.21,0.06,0],
246
- [0.21,0.06,0],
247
- [0.22,0.05,0],
248
- [0.2,0.03,0],
249
- [0.2,0.02,0],
250
- [0.19,0.01,0],
251
- [0.19,0.01,0],
252
- [0.2,0.01,0],
253
- [0.2,0,0],
254
- [0.19,0,0],
255
- [0.18,0,0],
256
- [0.2,0.03,0],
257
- ];
@@ -1,330 +0,0 @@
1
- /**
2
- * Aurora ("veil") fragment shader.
3
- *
4
- * ORIGINAL WORK for @kitn.ai/ui. Written for Task 14 of
5
- * docs/superpowers/plans/2026-08-07-audio-visualizers.md, from two inputs
6
- * only:
7
- * 1. .superpowers/sdd/2026-08-07-audio-visualizers/reference/aura-prototype/
8
- * lk-aura-factsheet.md -- a two-team clean-room functional spec (facts
9
- * and mathematics; no code and no expression, and no identifiers
10
- * beyond the public prop names and the uniform inventory, both
11
- * disclosed in that document's own preamble) covering LiveKit's
12
- * public "aura" visualizer look. What was checked, and how, is in
13
- * `docs/provenance/aurora-clean-room.md` section 4.
14
- * 2. The adopted prototype's own `aura-proto.html` (mode 3, "veil"), which
15
- * was itself implemented from that fact sheet by an author who never
16
- * saw LiveKit's source.
17
- *
18
- * This file is NOT derived from, and was not written with reference to,
19
- * LiveKit's `agent-audio-visualizer-aura.tsx` or the aura GLSL inlined in
20
- * it. That component is Polyform Non-Resale 1.0.0, (c) UNCRN LLC -- a
21
- * license incompatible with publishing this package -- and was never
22
- * opened. The fact sheet's numbers and formulas (independently re-derived
23
- * and checked by hand below, not copied) are what stand in for it.
24
- *
25
- * Its sibling `use-agent-audio-visualizer-aura.ts`, the DRIVING hook, is a
26
- * separate matter: that file is Apache-2.0 (repo license, no Polyform
27
- * header) and carries only the per-state behaviour, not the shader. It
28
- * contributes nothing to this file; the state targets it describes live in
29
- * `variant-aurora.tsx`.
30
- *
31
- * The construction: 36 phase-offset copies of one ring, each pushed through
32
- * the same 4-octave directional-sine warp cascade, fused into soft veils by
33
- * an analytic neighbour-distance blur -- see `auroraWarp` and the strand
34
- * loop in `mainImage`.
35
- *
36
- * One deliberate deviation from the fact sheet: section 1 states the
37
- * shipped output is "hotter than premultiplied" (written RGB may exceed
38
- * written alpha), and section 4 confirms the light-mode branch never
39
- * multiplies RGB by alpha or brightness at all. That is exactly the pattern
40
- * that produces dark fringes on translucent edges once composited with a
41
- * `premultipliedAlpha: true` canvas context over a light page background --
42
- * see the doc on `ShaderCanvas`'s `fragment` prop. This port keeps every
43
- * other number and formula but replaces the final write with true
44
- * premultiplied output, `fragColor = vec4(rgb * alpha, alpha)`.
45
- *
46
- * PARITY RE-TUNE (campaign task #6). A pixel-level behavioral audit
47
- * (examples/internal/livekit-parity scripts/aurora-audit.mjs) measured the
48
- * rendered output against the reference and this file was re-tuned to the
49
- * MEASURED targets -- numbers from screenshots and Rob's reference
50
- * recording, never from restricted source. Four departures from the
51
- * original fact-sheet pipeline, all clean-room rendering choices:
52
- * 1. Wind direction + solid-body rotation: the octave phase runs on
53
- * NEGATIVE tau (the audit measured our lobes drifting counter-
54
- * clockwise where the reference turns clockwise, ~+13..+20 deg/s when
55
- * speaking), plus a per-state `uRotation` trim of the coordinate
56
- * frame so each state's measured rotation lands on its reference
57
- * value (see `auroraTargets` in variant-aurora.tsx).
58
- * 2. Dark tonemap is chroma-preserving with a steeper knee (11x/(1+11x)
59
- * on the max channel, rescaled) plus an HSV shape-up: hue +0.013
60
- * turns, saturation scaled by (1.02 + 0.35 * value) capped at 0.98.
61
- * Rendered targets: hue ~197.5deg, saturation ~0.95 rising with
62
- * brightness, never white (the audit measured the original
63
- * per-channel 4x/(1+4x) map desaturating to ~0.72 and dragging hue
64
- * toward green).
65
- * 3. Brightness is applied through strongly compressive curves
66
- * ((b/1.5)^0.07 on colour, 0.97*(b/1.5)^0.09 on alpha, with a
67
- * smoothstep alpha knee): the thinking/connecting pulse DRIVES
68
- * 0.5..2.5 but must RENDER inside roughly 0.5..0.65 mean brightness
69
- * (the reference holds 0.53..0.65 where the linear map swung
70
- * 0.16..0.83 and blinked the ring out entirely at pulse minima).
71
- * 4. Edge falloff tightened (exp(2.3*spacing), was exp(2*spacing)) and
72
- * made asymmetric: the OUTER side of the ring renders at 0.66x the
73
- * inner width -- the reference's outer edge is consistently sharper
74
- * than its inner one at every volume.
75
- *
76
- * Uniforms are declared by ShaderCanvas. Do not declare them here.
77
- *
78
- * Uniform contract (see the module doc in the Task 14 report for the full
79
- * per-state table):
80
- * uColor vec3 -- accent RGB, 0..1.
81
- * uIntensity float -- brightness/gain, fact sheet section 5's
82
- * "brightness" column directly (roughly 0.5..2.5,
83
- * NOT the 0..1 convention other variants use).
84
- * uSpeed float -- octave phase rate in rad/s, fact sheet section
85
- * 5's `S / 20` directly (roughly 0.5..3.5).
86
- * uComplexity float -- warp spatial-frequency parameter, fact sheet
87
- * section 5's `freqParam` directly (roughly
88
- * 0.4..1.25, default 0.5); mapped internally to
89
- * F = 2 + 13 * uComplexity.
90
- * uAmplitude float -- warp displacement amplitude, fact sheet section
91
- * 5's `amplitude` column directly (roughly
92
- * 0.5..1.2, default 1.0).
93
- * uScale float -- ring radius, fraction of half-canvas, fact sheet
94
- * section 5's `scale` column directly (0.2..0.3).
95
- * The caller is responsible for folding in the
96
- * instant voice-driven growth
97
- * (`0.2 + 0.2 * volume`, speaking state only,
98
- * fact sheet section 5) before setting this --
99
- * the shader does not read a separate volume
100
- * uniform to avoid double-applying it.
101
- * uTheme float -- < 0.5 selects the dark colour pipeline, >= 0.5
102
- * the light one (fact sheet section 4). This is a
103
- * genuine branch in the math, not just a
104
- * compositing background -- set it from the kit's
105
- * active theme, not a fixed constant.
106
- * uRotation float -- solid-body rotation rate of the whole figure,
107
- * rad/s, positive = CLOCKWISE on screen. A
108
- * parity-calibrated per-state trim on top of the
109
- * wind's own drift (see the module doc above and
110
- * `auroraTargets`); the caller pins it to 0 under
111
- * reduced motion, like uSpeed.
112
- */
113
- export default `
114
- const float PI = 3.14159265359;
115
- // Strand phase span: 0.5 + pi (fact sheet section 2's "sigma", the
116
- // midpoint of the interval [1, 2*pi] with the interpolation knob fixed
117
- // at 0.5).
118
- const float STRAND_SIGMA = 0.5 + PI;
119
- const int STRAND_COUNT = 36;
120
-
121
- // 4-octave directional-sine warp cascade. M0 and the per-octave rotation B
122
- // (cos 0.6, sin 0.8, an exact ~53.13 degree rotation) are fact sheet
123
- // section 2's stated matrices; M1/M2/M3 = B composed with the previous
124
- // octave's matrix, and each v_k is the first row of M_k. Hand-derived and
125
- // checked against the fact sheet's own listed v_0..v_3 below, not copied
126
- // from any source.
127
- const mat2 WARP_M0 = mat2(0.6, 0.25, -0.25, 0.9);
128
- const mat2 WARP_M1 = mat2(0.16, 0.63, -0.87, 0.34);
129
- const mat2 WARP_M2 = mat2(-0.408, 0.506, -0.794, -0.492);
130
- const mat2 WARP_M3 = mat2(-0.6496, -0.0228, -0.0828, -0.9304);
131
- const vec2 WARP_V0 = vec2(0.600, -0.250);
132
- const vec2 WARP_V1 = vec2(0.160, -0.870);
133
- const vec2 WARP_V2 = vec2(-0.408, -0.794);
134
- const vec2 WARP_V3 = vec2(-0.650, -0.083);
135
-
136
- // Displaces p through all 4 octaves. Octave k's phase carries k*tau, so
137
- // octave 0 is static in time and octave 3 moves fastest -- fine
138
- // corrugation slides across coarse folds, which reads as flowing wind
139
- // (fact sheet section 2, "Mechanism of the fold / wind").
140
- vec2 auroraWarp(vec2 p, float phi, float tau, float freq, float amp) {
141
- vec2 x = p;
142
- float f = freq;
143
- float a = amp;
144
-
145
- vec2 q = WARP_M0 * x;
146
- vec2 w = sin(f * q + vec2(phi));
147
- x += (a / f) * WARP_V0 * w;
148
- f *= 1.4;
149
- a *= 1.0 + 0.1 * (max(w.x, w.y) - 1.0);
150
-
151
- q = WARP_M1 * x;
152
- w = sin(f * q + vec2(tau + phi));
153
- x += (a / f) * WARP_V1 * w;
154
- f *= 1.4;
155
- a *= 1.0 + 0.1 * (max(w.x, w.y) - 1.0);
156
-
157
- q = WARP_M2 * x;
158
- w = sin(f * q + vec2(2.0 * tau + phi));
159
- x += (a / f) * WARP_V2 * w;
160
- f *= 1.4;
161
- a *= 1.0 + 0.1 * (max(w.x, w.y) - 1.0);
162
-
163
- q = WARP_M3 * x;
164
- w = sin(f * q + vec2(3.0 * tau + phi));
165
- x += (a / f) * WARP_V3 * w;
166
-
167
- return x;
168
- }
169
-
170
- vec3 auroraRgb2Hsv(vec3 c) {
171
- vec4 K = vec4(0.0, -1.0 / 3.0, 2.0 / 3.0, -1.0);
172
- vec4 p = mix(vec4(c.bg, K.wz), vec4(c.gb, K.xy), step(c.b, c.g));
173
- vec4 q = mix(vec4(p.xyw, c.r), vec4(c.r, p.yzx), step(p.x, c.r));
174
- float d = q.x - min(q.w, q.y);
175
- return vec3(abs(q.z + (q.w - q.y) / (6.0 * d + 1.0e-10)), d / (q.x + 1.0e-10), q.x);
176
- }
177
-
178
- vec3 auroraHsv2Rgb(vec3 c) {
179
- vec4 K = vec4(1.0, 2.0 / 3.0, 1.0 / 3.0, 3.0);
180
- vec3 p = abs(fract(c.xxx + K.xyz) * 6.0 - K.www);
181
- return c.z * mix(K.xxx, clamp(p - K.xxx, 0.0, 1.0), c.y);
182
- }
183
-
184
- void mainImage(out vec4 fragColor, in vec2 fragCoord) {
185
- // Fact sheet section 2: u in [0,1]^2, centered point p = u - 0.5, no
186
- // aspect correction -- the element is forced square by CSS, so this is
187
- // only correct on a square canvas (true for every audio-visualizer size).
188
- vec2 uv = fragCoord / iResolution.xy;
189
- vec2 p = uv - 0.5;
190
-
191
- // Solid-body rotation of the sampling frame (module doc, departure 1).
192
- // gl_FragCoord's y-up frame is mirrored against the screen's y-down one,
193
- // so the sign here is what makes positive uRotation read CLOCKWISE on
194
- // screen -- verified empirically against the audit's estimator (which
195
- // measures +10 for uRotation = +10 deg/s with the wind frozen).
196
- float rotA = -uRotation * iTime;
197
- float rc = cos(rotA);
198
- float rs = sin(rotA);
199
- p = mat2(rc, -rs, rs, rc) * p;
200
-
201
- // Negative tau: time-reversing the octave phases flips the wind's
202
- // emergent angular drift from counter-clockwise (measured on the original)
203
- // to the reference's clockwise, without touching any static property --
204
- // lobes, radii, spectra are distribution-identical (module doc,
205
- // departure 1).
206
- float tau = -iTime * uSpeed;
207
- float freq = max(2.0 + 13.0 * uComplexity, 1.0);
208
- float amp = uAmplitude;
209
- float ringRadius = uScale;
210
-
211
- vec3 hsv = auroraRgb2Hsv(uColor);
212
- // Chain-seed strand, phase -1/36 NOT scaled by STRAND_SIGMA (fact sheet
213
- // section 2), so inter-strand spacing is defined for strand 1 too.
214
- vec2 prevStrand = auroraWarp(p, -1.0 / float(STRAND_COUNT), tau, freq, amp);
215
-
216
- vec3 accum = vec3(0.0);
217
- for (int j = 1; j <= STRAND_COUNT; j++) {
218
- float frac = float(j) / float(STRAND_COUNT);
219
- float phi = frac * STRAND_SIGMA;
220
- vec2 strand = auroraWarp(p, phi, tau, freq, amp);
221
-
222
- // Signed distance to the (warped) ring, per strand: negative inside,
223
- // positive outside -- the sign feeds the asymmetric edge width below.
224
- float sd = length(strand) - ringRadius;
225
- float dist = abs(sd);
226
- // Inter-strand spacing through the chain: an analytic blur exactly
227
- // proportional to how far this strand's warp has drifted from its
228
- // neighbour's. Fanned regions (large spacing) fuse into soft veils;
229
- // bunched regions (small spacing) stay crisp -- this is what turns 36
230
- // discrete rings into an aurora (fact sheet section 2). The 2.3 growth
231
- // rate (fact sheet's own is 2.0) and the 0.66x outer-side factor are
232
- // the parity edge calibration: the reference holds a 10-90% rise of
233
- // ~6-10px(2x) with the OUTER edge always the sharper of the two
234
- // (module doc, departure 4).
235
- float spacing = length(strand - prevStrand);
236
- float edgeWidth = 0.01 + max(exp(2.3 * spacing) - 1.0, 0.001);
237
- edgeWidth *= mix(1.0, 0.66, step(0.0, sd));
238
- float coverage = 1.0 - smoothstep(0.0, 1.0, dist / edgeWidth);
239
-
240
- // Fixed hue drift across the strand fan, matching the fact sheet's
241
- // documented colorShift default (0.05 turns at weight 0.3, i.e. 0.015
242
- // turns end to end); earliest strand shifts most.
243
- vec3 strandColor = auroraHsv2Rgb(vec3(fract(hsv.x + (1.0 - frac) * 0.015), hsv.y, hsv.z));
244
- accum += coverage * strandColor;
245
- prevStrand = strand;
246
- }
247
-
248
- // Mean soft coverage across all 36 strands (fact sheet section 2's image
249
- // accumulator I). The inverse-distance glow accumulator G is omitted: the
250
- // fact sheet states its gain ships as 0, so it contributes nothing.
251
- vec3 image = accum / float(STRAND_COUNT);
252
-
253
- // Deterministic per-pixel dither, +/- 1/510, identical on all channels
254
- // (fact sheet section 3). Kept as a plain vec3 offset, not pre-mixed into
255
- // the image accumulator, so each branch can add it at the point the fact
256
- // sheet actually specifies (see the dark branch below).
257
- float n = fract(sin(dot(fragCoord, vec2(12.9898, 78.233))) * 43758.5453);
258
- vec3 dither = vec3((n - 0.5) / 255.0);
259
-
260
- float brightness = uIntensity;
261
- vec3 rgb;
262
- float alpha;
263
-
264
- if (uTheme < 0.5) {
265
- // Dark pipeline, parity-calibrated (module doc, departures 2 + 3).
266
- // RGB1 = 1.2 * I, THEN add dither (fact sheet order: pre-gain first so
267
- // the dither's written amplitude stays +/- 1/510), then floor at 0 --
268
- // a negative dither on a near-black pixel would otherwise be blown up
269
- // by the chroma-preserving rescale's division right below.
270
- vec3 x1 = max(1.2 * image + dither, 0.0);
271
-
272
- // Chroma-preserving tonemap: knee the MAX channel (11x/(1+11x) -- a
273
- // steeper knee than the fact sheet's per-channel 4x/(1+4x)) and rescale
274
- // the vector, so ribbon cores land on a stable brightness level largely
275
- // independent of how thin the veils have fanned (the audit measured the
276
- // per-channel map crushing spread-out states to ~half the reference's
277
- // rendered brightness) while hue and saturation pass through untouched
278
- // for the HSV shape-up to own.
279
- float mxc = max(x1.r, max(x1.g, x1.b));
280
- float tmMax = 11.0 * mxc / (1.0 + 11.0 * mxc);
281
- vec3 tm = x1 * (tmMax / max(mxc, 1.0e-5));
282
-
283
- // Rendered-colour calibration: hue +0.013 turns (audit target
284
- // ~197.5deg for the default accent), saturation proportional to the
285
- // caller's own (a desaturated accent stays desaturated) but rising
286
- // with the pixel's value and capped at 0.98 -- Rob's reference:
287
- // saturation RISES with brightness, and nothing is ever white.
288
- vec3 hv = auroraRgb2Hsv(tm);
289
- hv.x = fract(hv.x + 0.013);
290
- hv.y = min(hv.y * (1.02 + 0.35 * hv.z), 0.98);
291
- tm = auroraHsv2Rgb(hv);
292
-
293
- // Brightness compression (departure 3): uIntensity DRIVES 0.5..2.5 at
294
- // the thinking/connecting pulse but must RENDER inside roughly
295
- // 0.5..0.65 mean brightness, never dropping the ring below visibility.
296
- // Two compressive powers (colour flatter than alpha) plus a smoothstep
297
- // alpha knee that lifts ribbon cores to full opacity while cutting the
298
- // dim tails -- which is also what keeps the centre transparent and the
299
- // edges crisp. max(brightness, 0.05) only guards pow() against a
300
- // (contractually impossible) zero or negative uniform.
301
- float bVal = pow(max(brightness, 0.05) / 1.5, 0.07);
302
- float bAlpha = 0.97 * pow(max(brightness, 0.05) / 1.5, 0.09);
303
- float luma = dot(tm, vec3(0.299, 0.587, 0.114));
304
- // Clamped to [0,1] before the premultiply below, mirroring the light
305
- // branch, so rgb * alpha <= alpha stays enforced for every input.
306
- rgb = clamp(tm * bVal, 0.0, 1.0);
307
- alpha = clamp(smoothstep(0.0, 0.50, luma) * bAlpha, 0.0, 1.0);
308
- } else {
309
- // Light pipeline (fact sheet section 4): RGB1 = I, then add dither;
310
- // brightness curve on vector length, hue direction kept, saturation
311
- // extrapolated 3x about gray.
312
- vec3 x1 = image + dither;
313
- float mag = length(x1);
314
- vec3 dir = x1 / max(mag, 1.0e-5);
315
- float mag2 = 2.0 * mag / (1.0 + 2.0 * mag);
316
- vec3 x2 = dir * mag2;
317
- float gray = dot(x2, vec3(0.2, 0.5, 0.1));
318
- rgb = clamp(vec3(gray) + 3.0 * (x2 - vec3(gray)), 0.0, 1.0);
319
- alpha = clamp(mag2 * clamp(brightness, 1.0, 2.0), 0.0, 1.0);
320
- }
321
-
322
- // PREMULTIPLIED output. Both branches above clamp their natural rgb to
323
- // [0,1] before this line, which is what makes rgb * alpha <= alpha
324
- // (componentwise) a property the code enforces unconditionally, not one
325
- // that happens to hold for the inputs this was tested against. See the
326
- // module doc above for why this departs from the fact sheet's own
327
- // (deliberately non-premultiplied) pipeline.
328
- fragColor = vec4(rgb * alpha, alpha);
329
- }
330
- `;