@kitn.ai/ui 0.25.2 → 0.27.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (603) hide show
  1. package/README.md +17 -6
  2. package/bin/mcp.js +16 -3
  3. package/bin/route.js +23 -0
  4. package/bin/route.test.js +58 -0
  5. package/dist/{elements/chunks/Icon-b5A8hlHs.js → Icon-BnFKqqtY.js} +1 -1
  6. package/dist/action-icons-CBskfBMz.js +1 -0
  7. package/dist/arrow-down-Br0qtpsz.js +1 -0
  8. package/dist/arrow-left-Dj7xgE12.js +1 -0
  9. package/dist/artifact-CvXEm1lS.js +1 -0
  10. package/dist/assets/dev-5XzXYR21.js +91 -0
  11. package/dist/attachments-C43ZegEq.js +1 -0
  12. package/dist/audio-visualizer-B-79y1Tj.js +1 -0
  13. package/dist/badge-BpUbq8c0.js +1 -0
  14. package/dist/bash-InADTalH.js +1 -6
  15. package/dist/bell-sn17Ip9v.js +1 -0
  16. package/dist/{elements/chunks/button-B9okqG73.js → button-BH6rN0U-.js} +1 -1
  17. package/dist/card-renderer-Cb1gQmth.js +1 -0
  18. package/dist/card-routing-DifQgS7n.js +1 -0
  19. package/dist/check-DPeeMUYx.js +1 -0
  20. package/dist/checkbox-Dc9Yov_B.js +1 -0
  21. package/dist/checkbox-group-B1kDLLYk.js +1 -0
  22. package/dist/chevron-down-CHSWk7ZT.js +1 -0
  23. package/dist/chevron-right-B7l_fMgx.js +1 -0
  24. package/dist/choice-card-BT3c1S8g.js +1 -0
  25. package/dist/circle-Bb0yOpqM.js +1 -0
  26. package/dist/circle-check-BGZpCiz7.js +1 -0
  27. package/dist/circle-x-wobWkoSx.js +1 -0
  28. package/dist/{elements/chunks/cn-CU7UAWzk.js → cn-DN5AWfiS.js} +1 -1
  29. package/dist/code-block-CUQ5mtv0.js +1 -0
  30. package/dist/collapsible-CPJbf6FM.js +1 -0
  31. package/dist/components/attachment-types.d.ts +53 -1
  32. package/dist/components/attachments.d.ts +31 -0
  33. package/dist/components/audio-visualizer/fit-scale.d.ts +50 -0
  34. package/dist/components/audio-visualizer/index.d.ts +15 -1
  35. package/dist/components/audio-visualizer/variant-bar.d.ts +24 -1
  36. package/dist/components/card-renderer.d.ts +13 -0
  37. package/dist/components/card.d.ts +4 -0
  38. package/dist/components/chat-thread.d.ts +49 -42
  39. package/dist/components/code-block.d.ts +22 -0
  40. package/dist/components/conversation-item.d.ts +66 -1
  41. package/dist/components/conversation-list.d.ts +77 -0
  42. package/dist/components/form-widgets.d.ts +67 -2
  43. package/dist/components/form.d.ts +89 -0
  44. package/dist/components/message.d.ts +29 -0
  45. package/dist/components/reasoning.d.ts +6 -0
  46. package/dist/components/scroll-button.d.ts +11 -0
  47. package/dist/components/thread.d.ts +5 -0
  48. package/dist/components/toast.d.ts +2 -1
  49. package/dist/components/tool-types.d.ts +9 -0
  50. package/dist/components/voice-input.d.ts +8 -0
  51. package/dist/components/voice-output.d.ts +12 -1
  52. package/dist/components/workspace-shell.d.ts +87 -0
  53. package/dist/composer-CjngLzal.js +106 -0
  54. package/dist/confirm-card-DCx_A4bU.js +1 -0
  55. package/dist/construct-cli.es.js +1169 -0
  56. package/dist/context-BY8V-Nlp.js +1 -0
  57. package/dist/controllable-D43BKmtX.js +1 -0
  58. package/dist/conversation-list-D4lLU_yS.js +1 -0
  59. package/dist/copy-B6DO4PqB.js +1 -0
  60. package/dist/core-AYMC6_lb.js +12 -5874
  61. package/dist/{create-tween-CUzOlaMS.js → create-tween-BPzaefTp.js} +1 -1
  62. package/dist/{create-tween-B5Y4Im8G.js → create-tween-CnMHviKB.js} +1 -1
  63. package/dist/{create-tween-4z1XYLkR.js → create-tween-D1aiGZZh.js} +1 -1
  64. package/dist/{elements/chunks/create-tween-CUrM6D_o.js → create-tween-DUSQUKpr.js} +2 -2
  65. package/dist/css-M7EaDHN_.js +1 -6
  66. package/dist/custom-elements.json +3468 -1927
  67. package/dist/default-input-CucQEOqH.js +1 -0
  68. package/dist/define-CGGX-7Vg.js +1 -0
  69. package/dist/define.d.ts +4 -0
  70. package/dist/define.js +510 -0
  71. package/dist/define.server.d.ts +5 -0
  72. package/dist/define.server.js +506 -0
  73. package/dist/diagnostics/hook.d.ts +81 -0
  74. package/dist/diagnostics/index.d.ts +7 -0
  75. package/dist/diagnostics/report-request.d.ts +61 -0
  76. package/dist/diagnostics.d.ts +5 -0
  77. package/dist/diagnostics.js +209 -0
  78. package/dist/disclosure-CbLtajUQ.js +1 -0
  79. package/dist/dropdown-BwhViJFd.js +1 -0
  80. package/dist/elements/agent-card.js +1 -1
  81. package/dist/elements/artifact.js +1 -1
  82. package/dist/elements/attachments.js +1 -1
  83. package/dist/elements/audio-visualizer.js +1 -1
  84. package/dist/elements/autoloader.js +1 -1
  85. package/dist/elements/avatar.js +1 -1
  86. package/dist/elements/badge.js +1 -1
  87. package/dist/elements/button.js +1 -1
  88. package/dist/elements/card.js +1 -1
  89. package/dist/elements/cards.js +1 -1
  90. package/dist/elements/chain-of-thought.js +1 -1
  91. package/dist/elements/chat-scope-picker.js +1 -1
  92. package/dist/elements/chat-workspace.js +1 -1
  93. package/dist/elements/chat.js +1 -1
  94. package/dist/elements/checkbox-group.d.ts +1 -0
  95. package/dist/elements/checkbox-group.js +1 -0
  96. package/dist/elements/checkbox.d.ts +1 -0
  97. package/dist/elements/checkbox.js +1 -0
  98. package/dist/elements/checkpoint.js +1 -1
  99. package/dist/elements/choice.js +1 -1
  100. package/dist/elements/coachmark.js +1 -1
  101. package/dist/elements/code-block.js +1 -1
  102. package/dist/elements/command.js +1 -1
  103. package/dist/elements/compare.js +1 -1
  104. package/dist/elements/composer.js +1 -1
  105. package/dist/elements/confirm-card.js +1 -1
  106. package/dist/elements/context-meter.js +1 -1
  107. package/dist/elements/conversation-item.d.ts +1 -0
  108. package/dist/elements/conversation-item.js +1 -0
  109. package/dist/elements/conversation-list.js +1 -1
  110. package/dist/elements/default-input.d.ts +3 -3
  111. package/dist/elements/define-entry.d.ts +12 -0
  112. package/dist/elements/define.d.ts +27 -0
  113. package/dist/elements/diagnostic-events.d.ts +74 -0
  114. package/dist/elements/dialog.js +1 -1
  115. package/dist/elements/dock.d.ts +1 -0
  116. package/dist/elements/dock.js +243 -0
  117. package/dist/elements/dropdown.d.ts +1 -0
  118. package/dist/elements/dropdown.js +1 -0
  119. package/dist/elements/editable-label.js +1 -1
  120. package/dist/elements/element-data-types.d.ts +37 -0
  121. package/dist/elements/element-diagnostics.d.ts +81 -0
  122. package/dist/elements/embed.js +1 -1
  123. package/dist/elements/empty.js +1 -1
  124. package/dist/elements/feedback-bar.js +1 -1
  125. package/dist/elements/file-tree.js +1 -1
  126. package/dist/elements/file-upload.js +1 -1
  127. package/dist/elements/form.js +1 -1
  128. package/dist/elements/hover-card.js +1 -1
  129. package/dist/elements/icon.js +1 -1
  130. package/dist/elements/image.js +1 -1
  131. package/dist/elements/input.js +1 -1
  132. package/dist/elements/kbd.js +1 -1
  133. package/dist/elements/link-preview.js +1 -1
  134. package/dist/elements/loader.js +1 -1
  135. package/dist/elements/markdown.js +1 -1
  136. package/dist/elements/menu.js +1 -1
  137. package/dist/elements/message-skills.js +1 -1
  138. package/dist/elements/message.js +1 -1
  139. package/dist/elements/model-switcher.js +1 -1
  140. package/dist/elements/nav.js +1 -1
  141. package/dist/elements/notice.js +1 -1
  142. package/dist/elements/pane-grid.d.ts +1 -0
  143. package/dist/elements/pane-grid.js +1 -0
  144. package/dist/elements/pane-group.js +1 -1
  145. package/dist/elements/pane.js +1 -1
  146. package/dist/elements/popover.js +1 -1
  147. package/dist/elements/progress-bar.js +1 -1
  148. package/dist/elements/prompt-dock.js +1 -1
  149. package/dist/elements/prompt-input.js +1 -1
  150. package/dist/elements/prompt-suggestions.js +1 -1
  151. package/dist/elements/radio-group.d.ts +1 -0
  152. package/dist/elements/radio-group.js +1 -0
  153. package/dist/elements/reasoning.js +1 -1
  154. package/dist/elements/register.d.ts +2 -0
  155. package/dist/elements/remote.js +1 -1
  156. package/dist/elements/resizable.js +1 -1
  157. package/dist/elements/response-stream.js +3 -3
  158. package/dist/elements/screen.js +1 -1
  159. package/dist/elements/scroll-area.js +1 -1
  160. package/dist/elements/scroll-button.js +1 -1
  161. package/dist/elements/search.js +1 -1
  162. package/dist/elements/segmented.js +1 -1
  163. package/dist/elements/select.d.ts +1 -0
  164. package/dist/elements/select.js +1 -0
  165. package/dist/elements/separator.js +1 -1
  166. package/dist/elements/setting-item.js +1 -1
  167. package/dist/elements/settings-group.js +1 -1
  168. package/dist/elements/skeleton.js +1 -1
  169. package/dist/elements/slider.d.ts +1 -0
  170. package/dist/elements/slider.js +1 -0
  171. package/dist/elements/slots.d.ts +36 -4
  172. package/dist/elements/source.js +1 -1
  173. package/dist/elements/status.js +1 -1
  174. package/dist/elements/switch.js +1 -1
  175. package/dist/elements/tabs.js +1 -1
  176. package/dist/elements/tasks.js +1 -1
  177. package/dist/elements/text-shimmer.js +1 -1
  178. package/dist/elements/thinking-bar.js +1 -1
  179. package/dist/elements/thread.js +1 -1
  180. package/dist/elements/toast.js +1 -1
  181. package/dist/elements/tool.js +1 -1
  182. package/dist/elements/tooltip.js +1 -1
  183. package/dist/elements/voice-input.js +1 -1
  184. package/dist/elements/voice-output.js +1 -1
  185. package/dist/elements.d.ts +589 -167
  186. package/dist/{elements/chunks/ellipsis-CVxqfsDZ.js → ellipsis-DFr4Vqr3.js} +1 -1
  187. package/dist/embed-5s_vU4J0.js +1 -0
  188. package/dist/engine-javascript-vq0WuIJl.js +14 -2516
  189. package/dist/{elements/chunks/external-link-DG2sRdQL.js → external-link-u9d85ORQ.js} +1 -1
  190. package/dist/file-text-CX7_x42o.js +1 -0
  191. package/dist/{elements/chunks/file-tree-yGWNK0Js.js → file-tree-D3kBjXI5.js} +1 -1
  192. package/dist/folder-V-YdIL8f.js +1 -0
  193. package/dist/form-BRNUMCN2.js +1 -0
  194. package/dist/github-dark-dimmed-DUshB20C.js +1 -4
  195. package/dist/github-light-JYsPkUQd.js +1 -4
  196. package/dist/hover-card-DaeiYrTA.js +1 -0
  197. package/dist/html-CPZ3oZQ7.js +1 -10
  198. package/dist/icon-BpixdZNq.js +1 -0
  199. package/dist/{elements/chunks/index-BCRhi84a.js → index-xu_pdcPi.js} +1 -1
  200. package/dist/index.d.ts +3 -1
  201. package/dist/index.js +8473 -6470
  202. package/dist/index.server.js +6495 -4958
  203. package/dist/info-8mFsIjS3.js +1 -0
  204. package/dist/input-d1Yuu-hz.js +1 -0
  205. package/dist/javascript-C25yR2R2.js +1 -6
  206. package/dist/json-DxJze_jm.js +1 -6
  207. package/dist/kai-provider.es.js +40 -40
  208. package/dist/kai.es.js +1 -1
  209. package/dist/kbd-961zMPFB.js +1 -0
  210. package/dist/link-DlZZBGaR.js +1 -0
  211. package/dist/{elements/chunks/link-preview-Cf5KOP-i.js → link-preview-DIIbV2Sd.js} +1 -1
  212. package/dist/loader-YQszHFaW.js +1 -0
  213. package/dist/{elements/chunks/markdown-DbozyYqa.js → markdown-CVk1MPsj.js} +1 -1
  214. package/dist/mcp.es.js +3873 -544
  215. package/dist/message-CwKVEdZg.js +1 -0
  216. package/dist/message-DS8lzHc1.js +1 -0
  217. package/dist/message-circle-Xf8Q-vZp.js +1 -0
  218. package/dist/message-square-Cxnwgkns.js +1 -0
  219. package/dist/{elements/chunks/minimize-2-SegJ_oku.js → minimize-2-UEZmP2QT.js} +1 -1
  220. package/dist/{elements/chunks/model-switcher-D7JrFFHp.js → model-switcher-Kk1jEQ5t.js} +1 -1
  221. package/dist/{elements/chunks/overlay-CV7z2YuX.js → overlay-C1od6LOz.js} +1 -1
  222. package/dist/panel-right-ryET0yyn.js +1 -0
  223. package/dist/paperclip-BDNoZFJP.js +1 -0
  224. package/dist/play-OFIvYXUQ.js +1 -0
  225. package/dist/primitives/card-data-types.d.ts +49 -0
  226. package/dist/primitives/card-routing.d.ts +1 -33
  227. package/dist/primitives/card-validate.d.ts +2 -2
  228. package/dist/primitives/chat-config.d.ts +29 -2
  229. package/dist/primitives/field-mask.d.ts +96 -0
  230. package/dist/primitives/field-semantics.d.ts +36 -0
  231. package/dist/primitives/input-mask.d.ts +46 -0
  232. package/dist/primitives/url-scheme-policy.d.ts +34 -0
  233. package/dist/primitives/use-resize-observer.d.ts +23 -0
  234. package/dist/primitives/use-speech-recognition.d.ts +8 -0
  235. package/dist/primitives/use-text-stream.d.ts +5 -0
  236. package/dist/progress-bar-BvYX0aoy.js +1 -0
  237. package/dist/prompt-suggestion-BRFu2lcu.js +1 -0
  238. package/dist/radio-DcL23cNJ.js +1 -0
  239. package/dist/react/index.d.ts +306 -283
  240. package/dist/react.js +309 -247
  241. package/dist/reasoning-Cackq4Rh.js +1 -0
  242. package/dist/register-impl-C7rENvPK.js +424 -0
  243. package/dist/{elements/chunks/resizable-Dpzjlvp4.js → resizable-Cp9HUYih.js} +1 -1
  244. package/dist/rotate-ccw-0DLRDHH5.js +1 -0
  245. package/dist/rotate-cw-DOB9IGcU.js +1 -0
  246. package/dist/schemas/form.schema.json +21 -1
  247. package/dist/schemas/index.d.ts +1 -1
  248. package/dist/schemas/tool-defs.d.ts +45 -0
  249. package/dist/schemas.js +398 -305
  250. package/dist/scroll-area-emVmWP4K.js +1 -0
  251. package/dist/scroll-button-CeP_gv1x.js +1 -0
  252. package/dist/select-CWmu00tS.js +1 -0
  253. package/dist/{elements/chunks/separator-DH2r_ZSZ.js → separator-CE6vly6z.js} +1 -1
  254. package/dist/{elements/chunks/settings-BFMOd6yB.js → settings-CE-78SvZ.js} +1 -1
  255. package/dist/{elements/chunks/settings-group-B3VZKIcz.js → settings-group-ZFWNxFQR.js} +1 -1
  256. package/dist/{elements/chunks/skeleton-N8BuWYmf.js → skeleton-BebdP4mf.js} +1 -1
  257. package/dist/slider-BAKRYUlz.js +1 -0
  258. package/dist/slots-DaNjX0rc.js +1 -0
  259. package/dist/{solid-BMuDmFo_.js → solid-BE5ui6sy.js} +10672 -8116
  260. package/dist/{solid-CGYNdLRR.js → solid-DFhsce3O.js} +8137 -6056
  261. package/dist/solid.d.ts +15 -0
  262. package/dist/solid.js +248 -235
  263. package/dist/solid.server.js +248 -235
  264. package/dist/source-B0FlguSx.js +1 -0
  265. package/dist/star-CBMZvLuN.js +1 -0
  266. package/dist/state/index.d.ts +5 -1
  267. package/dist/state/mock.d.ts +32 -2
  268. package/dist/state/persistence.d.ts +51 -0
  269. package/dist/state/stream.d.ts +50 -0
  270. package/dist/state/threads.d.ts +71 -0
  271. package/dist/state.js +297 -172
  272. package/dist/store-7eoadydQ.js +1 -0
  273. package/dist/svelte--5p79yCD.js +1 -15
  274. package/dist/switch-CViARZCy.js +1 -0
  275. package/dist/tasks-card-MjCcOhR_.js +1 -0
  276. package/dist/text-shimmer-DKlwRF2G.js +1 -0
  277. package/dist/textarea-3ay2Me2-.js +1 -0
  278. package/dist/theme.tokens.css +82 -13
  279. package/dist/{elements/chunks/thumbs-up-DQe0hvkZ.js → thumbs-up-DQcu2HMO.js} +1 -1
  280. package/dist/toast-store-C6yKOhbk.js +1 -0
  281. package/dist/{elements/chunks/tool-C1YtxwPu.js → tool-BCYNlfKy.js} +1 -1
  282. package/dist/{elements/chunks/tooltip-BqwnFWhn.js → tooltip-05zI4hjs.js} +1 -1
  283. package/dist/trash-2-BR1RxGky.js +1 -0
  284. package/dist/{elements/chunks/triangle-alert-B6or7F5u.js → triangle-alert-DHohDOCy.js} +1 -1
  285. package/dist/tsx-B8rCNbgL.js +1 -6
  286. package/dist/types.d.ts +4 -2
  287. package/dist/typescript-RycA9KXf.js +1 -6
  288. package/dist/ui/checkbox-group.d.ts +83 -0
  289. package/dist/ui/checkbox.d.ts +40 -0
  290. package/dist/ui/dock.d.ts +131 -0
  291. package/dist/ui/hover-card.d.ts +44 -0
  292. package/dist/ui/icon.d.ts +3 -0
  293. package/dist/ui/input.d.ts +48 -2
  294. package/dist/ui/radio.d.ts +85 -0
  295. package/dist/ui/select.d.ts +71 -0
  296. package/dist/ui/slider.d.ts +65 -0
  297. package/dist/ui/switch.d.ts +9 -2
  298. package/dist/upload-BbGW6A_u.js +1 -0
  299. package/dist/url-scheme-policy-DHpoTJwB.js +1 -0
  300. package/dist/use-card-resolution-CJW4grFa.js +1 -0
  301. package/dist/{variant-aurora-DwSOfraQ.js → variant-aurora-BUOVgPOB.js} +27 -27
  302. package/dist/{variant-aurora-wKvAQ5wp.js → variant-aurora-CUsUJvFI.js} +28 -28
  303. package/dist/{variant-aurora-XEkPT0_z.js → variant-aurora-CW2i4bfr.js} +2 -2
  304. package/dist/{elements/chunks/variant-aurora-QXTZPyST.js → variant-aurora-xiMPty8f.js} +2 -2
  305. package/dist/variant-custom-BQtOnmeO.js +1 -0
  306. package/dist/{variant-custom-BhS9wIpU.js → variant-custom-CAm9L-E5.js} +65 -65
  307. package/dist/{variant-custom-eFIg2XWQ.js → variant-custom-CAnzzppW.js} +40 -40
  308. package/dist/variant-custom-D91HjAKz.js +1 -0
  309. package/dist/{variant-wave-CUWGx9Bn.js → variant-wave-Ca1Ls4_y.js} +21 -21
  310. package/dist/{variant-wave-CbVsmgwT.js → variant-wave-CxX39DKd.js} +25 -25
  311. package/dist/{variant-wave-BwzrHD1s.js → variant-wave-DYyzIIZv.js} +2 -2
  312. package/dist/{elements/chunks/variant-wave-DDCwhLas.js → variant-wave-uY5crU_K.js} +2 -2
  313. package/dist/vue-BmIZj4XD.js +1 -33
  314. package/dist/wire/chunk.d.ts +47 -0
  315. package/dist/wire/diagnostics.d.ts +575 -0
  316. package/dist/wire/encode-probe.d.ts +70 -0
  317. package/dist/wire/encode.d.ts +24 -0
  318. package/dist/wire/index.d.ts +2 -0
  319. package/dist/wire/sse.d.ts +10 -2
  320. package/dist/wire.js +917 -480
  321. package/dist/x-C5m1JFgi.js +1 -0
  322. package/frameworks/react/index.tsx +325 -108
  323. package/llms-full.txt +1354 -82
  324. package/llms.txt +6 -3
  325. package/package.json +39 -6
  326. package/src/agent-tooling/archetypes.ts +41 -9
  327. package/src/agent-tooling/catalog/README.md +676 -0
  328. package/src/agent-tooling/catalog/catalog-types.ts +231 -0
  329. package/src/agent-tooling/catalog/fabrications.ts +96 -0
  330. package/src/agent-tooling/catalog/invariants.ts +284 -0
  331. package/src/agent-tooling/catalog/labs-titles.ts +114 -0
  332. package/src/agent-tooling/catalog/scenarios.ts +87 -0
  333. package/src/agent-tooling/catalog/surfaces.ts +347 -0
  334. package/src/agent-tooling/construct/cli-entry.ts +8 -0
  335. package/src/agent-tooling/construct/cli.ts +131 -0
  336. package/src/agent-tooling/construct/codegen.ts +1353 -0
  337. package/src/agent-tooling/construct/construct.v1.schema.json +250 -0
  338. package/src/agent-tooling/construct/dev.ts +148 -0
  339. package/src/agent-tooling/construct/fixtures/demo-widget.construct.json +7 -0
  340. package/src/agent-tooling/construct/fixtures/ops-console.construct.json +44 -0
  341. package/src/agent-tooling/construct/fixtures/owner-widget.construct.json +23 -0
  342. package/src/agent-tooling/construct/schema.ts +371 -0
  343. package/src/agent-tooling/integrations/anthropic.ts +7 -1
  344. package/src/agent-tooling/integrations/cloudflare.ts +43 -2
  345. package/src/agent-tooling/integrations/langgraph.ts +7 -1
  346. package/src/agent-tooling/integrations/mastra.ts +7 -1
  347. package/src/agent-tooling/integrations/mock.ts +92 -17
  348. package/src/agent-tooling/integrations/ollama.ts +7 -1
  349. package/src/agent-tooling/integrations/openai.ts +7 -1
  350. package/src/agent-tooling/integrations/openrouter.ts +7 -1
  351. package/src/agent-tooling/integrations/pi.ts +56 -1
  352. package/src/agent-tooling/integrations/vercel-ai-sdk.ts +7 -1
  353. package/src/agent-tooling/mcp/css-raw.d.ts +12 -0
  354. package/src/agent-tooling/mcp/manifest.ts +100 -1
  355. package/src/agent-tooling/mcp/server.ts +63 -6
  356. package/src/agent-tooling/mcp/tools/construct.ts +130 -0
  357. package/src/agent-tooling/mcp/tools/debug.ts +126 -4
  358. package/src/agent-tooling/mcp/tools/reference.ts +542 -5
  359. package/src/agent-tooling/mcp/tools/scaffold.ts +1834 -307
  360. package/src/agent-tooling/mcp/tools/theme.ts +146 -30
  361. package/src/agent-tooling/mcp/validate-args.ts +141 -0
  362. package/src/agent-tooling/recipes/composed-thread.ts +714 -0
  363. package/src/agent-tooling/recipes/index.ts +22 -0
  364. package/src/agent-tooling/recipes/types.ts +32 -0
  365. package/src/agent-tooling/registry.ts +24 -7
  366. package/src/agent-tooling/route-emit.ts +26 -2
  367. package/src/components/attachment-types.ts +54 -1
  368. package/src/components/attachments.tsx +169 -22
  369. package/src/components/audio-visualizer/fit-scale.ts +112 -0
  370. package/src/components/audio-visualizer/index.tsx +80 -3
  371. package/src/components/audio-visualizer/variant-aurora.tsx +10 -4
  372. package/src/components/audio-visualizer/variant-bar.tsx +38 -6
  373. package/src/components/audio-visualizer/variant-custom.tsx +8 -2
  374. package/src/components/audio-visualizer/variant-grid.tsx +16 -11
  375. package/src/components/audio-visualizer/variant-radial.tsx +15 -10
  376. package/src/components/audio-visualizer/variant-wave.tsx +7 -2
  377. package/src/components/card-renderer.tsx +39 -8
  378. package/src/components/card.tsx +10 -2
  379. package/src/components/chat-container.tsx +4 -1
  380. package/src/components/chat-scope-picker.tsx +2 -2
  381. package/src/components/chat-thread.tsx +105 -13
  382. package/src/components/choice-card.tsx +102 -37
  383. package/src/components/coachmark.tsx +1 -1
  384. package/src/components/code-block.tsx +81 -5
  385. package/src/components/composer.tsx +89 -8
  386. package/src/components/confirm-card.tsx +20 -4
  387. package/src/components/conversation-item.tsx +138 -4
  388. package/src/components/conversation-list.tsx +230 -15
  389. package/src/components/embed.tsx +4 -0
  390. package/src/components/empty.tsx +14 -3
  391. package/src/components/file-tree.tsx +5 -1
  392. package/src/components/form-widgets.tsx +257 -195
  393. package/src/components/form.tsx +336 -21
  394. package/src/components/loader.tsx +12 -5
  395. package/src/components/message-skills.tsx +1 -1
  396. package/src/components/message.tsx +142 -12
  397. package/src/components/prompt-input.tsx +7 -1
  398. package/src/components/prompt-suggestion.tsx +4 -1
  399. package/src/components/reasoning.tsx +30 -3
  400. package/src/components/response-compare.tsx +2 -2
  401. package/src/components/response-stream.tsx +13 -7
  402. package/src/components/screen.tsx +5 -0
  403. package/src/components/scroll-button.tsx +63 -4
  404. package/src/components/source.tsx +6 -1
  405. package/src/components/tasks-card.tsx +58 -16
  406. package/src/components/thread.tsx +10 -1
  407. package/src/components/toast.tsx +11 -5
  408. package/src/components/tool-types.ts +9 -0
  409. package/src/components/voice-input.tsx +35 -3
  410. package/src/components/voice-output.tsx +46 -6
  411. package/src/components/workspace-shell.tsx +285 -0
  412. package/src/diagnostics/hook.ts +352 -0
  413. package/src/diagnostics/index.ts +82 -0
  414. package/src/diagnostics/report-request.ts +296 -0
  415. package/src/elements/attachments.tsx +9 -8
  416. package/src/elements/audio-visualizer.tsx +48 -4
  417. package/src/elements/chat-workspace.tsx +159 -287
  418. package/src/elements/chat.tsx +31 -10
  419. package/src/elements/checkbox-group.tsx +164 -0
  420. package/src/elements/checkbox.tsx +134 -0
  421. package/src/elements/code-block.tsx +19 -1
  422. package/src/elements/command.tsx +4 -1
  423. package/src/elements/compiled.css +1 -1
  424. package/src/elements/composer.tsx +12 -1
  425. package/src/elements/conversation-item.tsx +120 -0
  426. package/src/elements/conversation-list.tsx +60 -11
  427. package/src/elements/default-input.tsx +5 -5
  428. package/src/elements/define-entry.ts +12 -0
  429. package/src/elements/define.tsx +168 -8
  430. package/src/elements/diagnostic-events.ts +114 -0
  431. package/src/elements/dialog.tsx +47 -0
  432. package/src/elements/disclosure.ts +34 -12
  433. package/src/elements/dock.tsx +215 -0
  434. package/src/elements/dropdown.tsx +123 -0
  435. package/src/elements/element-data-types.ts +40 -0
  436. package/src/elements/element-diagnostics.ts +392 -0
  437. package/src/elements/element-manifest.json +36 -0
  438. package/src/elements/element-meta.json +1483 -560
  439. package/src/elements/element-nonscalar.json +185 -0
  440. package/src/elements/element-types.d.ts +589 -167
  441. package/src/elements/feedback-bar.tsx +5 -0
  442. package/src/elements/icon-names.json +29 -0
  443. package/src/elements/input.tsx +312 -23
  444. package/src/elements/menu.tsx +13 -0
  445. package/src/elements/message.tsx +2 -0
  446. package/src/elements/pane-grid.tsx +111 -0
  447. package/src/elements/prompt-dock.tsx +2 -1
  448. package/src/elements/prompt-input.tsx +16 -10
  449. package/src/elements/radio-group.tsx +129 -0
  450. package/src/elements/register-impl.ts +52 -0
  451. package/src/elements/register.ts +28 -0
  452. package/src/elements/resizable.tsx +52 -25
  453. package/src/elements/scroll-button.tsx +59 -6
  454. package/src/elements/select.tsx +165 -0
  455. package/src/elements/slider.tsx +171 -0
  456. package/src/elements/slots.ts +108 -13
  457. package/src/elements/styles.css +119 -9
  458. package/src/elements/thinking-bar.tsx +16 -7
  459. package/src/elements/thread.tsx +2 -0
  460. package/src/elements/toast.tsx +17 -1
  461. package/src/elements/tool.tsx +26 -5
  462. package/src/elements/voice-input.tsx +11 -2
  463. package/src/elements/voice-output.tsx +16 -3
  464. package/src/index.ts +4 -1
  465. package/src/primitives/card-data-types.ts +49 -0
  466. package/src/primitives/card-host.tsx +4 -2
  467. package/src/primitives/card-routing.ts +7 -56
  468. package/src/primitives/card-schemas/form.schema.json +21 -1
  469. package/src/primitives/card-validate.ts +10 -2
  470. package/src/primitives/chat-config.tsx +33 -6
  471. package/src/primitives/field-mask.ts +256 -0
  472. package/src/primitives/field-semantics.ts +115 -0
  473. package/src/primitives/input-mask.ts +853 -0
  474. package/src/primitives/toast-store.ts +66 -4
  475. package/src/primitives/url-scheme-policy.ts +70 -0
  476. package/src/primitives/use-resize-observer.ts +33 -0
  477. package/src/primitives/use-speech-recognition.ts +12 -1
  478. package/src/primitives/use-stick-to-bottom.ts +34 -2
  479. package/src/primitives/use-text-stream.ts +33 -2
  480. package/src/remote/provider-runtime.ts +6 -3
  481. package/src/schemas/index.ts +1 -0
  482. package/src/schemas/tool-defs.ts +307 -6
  483. package/src/solid.ts +15 -0
  484. package/src/state/index.ts +13 -1
  485. package/src/state/mock.ts +92 -6
  486. package/src/state/persistence.ts +180 -0
  487. package/src/state/stream.ts +71 -4
  488. package/src/state/threads.ts +142 -0
  489. package/src/types.ts +4 -2
  490. package/src/ui/agent-card.tsx +2 -2
  491. package/src/ui/avatar.tsx +1 -1
  492. package/src/ui/checkbox-group.tsx +153 -0
  493. package/src/ui/checkbox.tsx +63 -0
  494. package/src/ui/dialog.tsx +6 -0
  495. package/src/ui/dock.tsx +584 -0
  496. package/src/ui/dropdown.tsx +67 -23
  497. package/src/ui/hover-card.tsx +156 -6
  498. package/src/ui/icon.tsx +53 -0
  499. package/src/ui/input.tsx +275 -16
  500. package/src/ui/kbd.tsx +1 -1
  501. package/src/ui/nav.tsx +1 -1
  502. package/src/ui/pane-group.tsx +2 -2
  503. package/src/ui/radio.tsx +150 -0
  504. package/src/ui/resizable.tsx +11 -0
  505. package/src/ui/select.tsx +168 -0
  506. package/src/ui/slider.tsx +178 -0
  507. package/src/ui/switch.tsx +49 -18
  508. package/src/utils/cn.ts +11 -5
  509. package/src/wire/chunk.ts +47 -0
  510. package/src/wire/consume.ts +185 -26
  511. package/src/wire/diagnostics.ts +727 -0
  512. package/src/wire/encode-probe.ts +214 -0
  513. package/src/wire/encode.ts +267 -14
  514. package/src/wire/formats/anthropic.ts +8 -1
  515. package/src/wire/formats/openai.ts +5 -0
  516. package/src/wire/index.ts +22 -0
  517. package/src/wire/read.ts +250 -6
  518. package/src/wire/sse.ts +16 -3
  519. package/theme.css +84 -13
  520. package/dist/elements/chunks/action-icons-DW9muWrY.js +0 -1
  521. package/dist/elements/chunks/arrow-left-iJVnQmxA.js +0 -1
  522. package/dist/elements/chunks/artifact-BSuPYFHY.js +0 -1
  523. package/dist/elements/chunks/attachments-CL6TaqIb.js +0 -1
  524. package/dist/elements/chunks/audio-visualizer-BuUqQmaO.js +0 -1
  525. package/dist/elements/chunks/badge-TIMiJFKc.js +0 -1
  526. package/dist/elements/chunks/bash-InADTalH.js +0 -1
  527. package/dist/elements/chunks/card-renderer-CSoTL_e1.js +0 -1
  528. package/dist/elements/chunks/card-routing-BK09BdmL.js +0 -1
  529. package/dist/elements/chunks/chat-thread-DxoKaStk.js +0 -1
  530. package/dist/elements/chunks/check-MdLzbxrm.js +0 -1
  531. package/dist/elements/chunks/chevron-down-MK7IzDqe.js +0 -1
  532. package/dist/elements/chunks/chevron-right-C5jXhmtV.js +0 -1
  533. package/dist/elements/chunks/choice-card-CGMc3kek.js +0 -1
  534. package/dist/elements/chunks/circle-BG7VkPep.js +0 -1
  535. package/dist/elements/chunks/circle-check-GqvO2UBs.js +0 -1
  536. package/dist/elements/chunks/circle-x-mhH7pOK2.js +0 -1
  537. package/dist/elements/chunks/code-block-ClhQO9RW.js +0 -1
  538. package/dist/elements/chunks/collapsible-DBcBkFPh.js +0 -1
  539. package/dist/elements/chunks/composer-CZZmtYOT.js +0 -69
  540. package/dist/elements/chunks/confirm-card-BWjf2-xo.js +0 -1
  541. package/dist/elements/chunks/context-hKjNqiyQ.js +0 -1
  542. package/dist/elements/chunks/conversation-list-CsGJjSKG.js +0 -1
  543. package/dist/elements/chunks/core-AYMC6_lb.js +0 -12
  544. package/dist/elements/chunks/css-M7EaDHN_.js +0 -1
  545. package/dist/elements/chunks/default-input-B1Mem5wu.js +0 -1
  546. package/dist/elements/chunks/define-B_tXMYRm.js +0 -1
  547. package/dist/elements/chunks/disclosure-DAoYOKew.js +0 -1
  548. package/dist/elements/chunks/download-DnCyWFJE.js +0 -1
  549. package/dist/elements/chunks/dropdown-CmNna5lT.js +0 -1
  550. package/dist/elements/chunks/embed-CjAD2jSi.js +0 -1
  551. package/dist/elements/chunks/engine-javascript-vq0WuIJl.js +0 -141
  552. package/dist/elements/chunks/file-text-D0J9F6M7.js +0 -1
  553. package/dist/elements/chunks/folder-NV1pi_ud.js +0 -1
  554. package/dist/elements/chunks/form-Cp8Y00Wn.js +0 -1
  555. package/dist/elements/chunks/github-dark-dimmed-DUshB20C.js +0 -1
  556. package/dist/elements/chunks/github-light-JYsPkUQd.js +0 -1
  557. package/dist/elements/chunks/hover-card-6KtXpLwT.js +0 -1
  558. package/dist/elements/chunks/html-CPZ3oZQ7.js +0 -1
  559. package/dist/elements/chunks/icon-97R8SR2p.js +0 -1
  560. package/dist/elements/chunks/info-C8r5Q6cc.js +0 -1
  561. package/dist/elements/chunks/input-DrseEjhp.js +0 -1
  562. package/dist/elements/chunks/javascript-C25yR2R2.js +0 -1
  563. package/dist/elements/chunks/json-DxJze_jm.js +0 -1
  564. package/dist/elements/chunks/kbd-OGJDUT-O.js +0 -1
  565. package/dist/elements/chunks/link-BdsfLB7b.js +0 -1
  566. package/dist/elements/chunks/loader-B5QzK_8_.js +0 -1
  567. package/dist/elements/chunks/message-CE4k-qaj.js +0 -1
  568. package/dist/elements/chunks/message-DtXKPqiR.js +0 -1
  569. package/dist/elements/chunks/message-square-C9ovmtOo.js +0 -1
  570. package/dist/elements/chunks/paperclip-Bg0ITU3b.js +0 -1
  571. package/dist/elements/chunks/progress-bar-D1_rzt6N.js +0 -1
  572. package/dist/elements/chunks/prompt-suggestion-D5Sm8xF1.js +0 -1
  573. package/dist/elements/chunks/reasoning-BrxQfpfI.js +0 -1
  574. package/dist/elements/chunks/rotate-cw-DzVDJOA1.js +0 -1
  575. package/dist/elements/chunks/scroll-area-93A1bbeG.js +0 -1
  576. package/dist/elements/chunks/scroll-button-CrTo7wm4.js +0 -1
  577. package/dist/elements/chunks/share-DgNbkJKY.js +0 -1
  578. package/dist/elements/chunks/slots-CIw9RlAe.js +0 -1
  579. package/dist/elements/chunks/source-w9V0NnBn.js +0 -1
  580. package/dist/elements/chunks/star-DHvACxtm.js +0 -1
  581. package/dist/elements/chunks/store-HIPGhNz9.js +0 -1
  582. package/dist/elements/chunks/svelte--5p79yCD.js +0 -1
  583. package/dist/elements/chunks/tasks-card-lPxoodlA.js +0 -1
  584. package/dist/elements/chunks/text-shimmer-BY_rI3s5.js +0 -1
  585. package/dist/elements/chunks/textarea-DPfuhswM.js +0 -1
  586. package/dist/elements/chunks/toast-store-VUZZBhzH.js +0 -1
  587. package/dist/elements/chunks/tsx-B8rCNbgL.js +0 -1
  588. package/dist/elements/chunks/typescript-RycA9KXf.js +0 -1
  589. package/dist/elements/chunks/use-card-resolution-DJg32jGH.js +0 -1
  590. package/dist/elements/chunks/variant-custom-D5ZlmziF.js +0 -1
  591. package/dist/elements/chunks/video-Bb86fVYI.js +0 -1
  592. package/dist/elements/chunks/vue-BmIZj4XD.js +0 -1
  593. package/dist/elements/chunks/x-BOhjBeOd.js +0 -1
  594. package/dist/llms/llms-full.txt +0 -2834
  595. package/dist/llms/llms.txt +0 -156
  596. package/dist/primitives/card-validate-generator.testlib.d.ts +0 -20
  597. package/dist/register-impl-DGmGzrEM.js +0 -145
  598. package/dist/ui/stat.d.ts +0 -16
  599. package/dist/variant-custom-MkTNTycd.js +0 -1
  600. package/src/primitives/card-validate-generator.testlib.ts +0 -38
  601. package/src/ui/stat.tsx +0 -41
  602. /package/dist/{elements/chunks/card-tags-D8lZ-C_U.js → card-tags-D8lZ-C_U.js} +0 -0
  603. /package/dist/{elements/chunks/link-preview-DNILK391.js → link-preview-DNILK391.js} +0 -0
package/dist/state.js CHANGED
@@ -1,37 +1,37 @@
1
- function y(t) {
2
- const e = t.toLowerCase();
3
- return e ? e.includes("bash") || e.includes("command") || e.includes("shell") || e.includes("terminal") || e.includes("exec") ? "command" : e.includes("edit") || e.includes("write") || e.includes("patch") || e.includes("replace") || e.includes("delete") ? "file-change" : e.includes("search") || e.includes("grep") || e.includes("glob") || e.includes("find") ? "search" : e.includes("fetch") || e.includes("http") || e.includes("browse") || e.includes("crawl") ? "fetch" : e.includes("mcp") ? "mcp" : e.includes("image") || e.includes("screenshot") || e.includes("vision") ? "image" : "generic" : "generic";
1
+ function w(e) {
2
+ const t = e.toLowerCase();
3
+ return t ? t.includes("bash") || t.includes("command") || t.includes("shell") || t.includes("terminal") || t.includes("exec") ? "command" : t.includes("edit") || t.includes("write") || t.includes("patch") || t.includes("replace") || t.includes("delete") ? "file-change" : t.includes("search") || t.includes("grep") || t.includes("glob") || t.includes("find") ? "search" : t.includes("fetch") || t.includes("http") || t.includes("browse") || t.includes("crawl") ? "fetch" : t.includes("mcp") ? "mcp" : t.includes("image") || t.includes("screenshot") || t.includes("vision") ? "image" : "generic" : "generic";
4
4
  }
5
- function d(t) {
6
- const e = /* @__PURE__ */ new WeakSet(), n = (r) => {
5
+ function m(e) {
6
+ const t = /* @__PURE__ */ new WeakSet(), n = (r) => {
7
7
  if (r === null || typeof r != "object") return r;
8
- if (e.has(r)) return "[circular]";
9
- e.add(r);
10
- const i = r, u = Array.isArray(r) ? r.map(n) : Object.fromEntries(Object.keys(i).sort().map((o) => [o, n(i[o])]));
11
- return e.delete(r), u;
8
+ if (t.has(r)) return "[circular]";
9
+ t.add(r);
10
+ const o = r, a = Array.isArray(r) ? r.map(n) : Object.fromEntries(Object.keys(o).sort().map((i) => [i, n(o[i])]));
11
+ return t.delete(r), a;
12
12
  };
13
- return JSON.stringify(n(t)) ?? "";
13
+ return JSON.stringify(n(e)) ?? "";
14
14
  }
15
- function k(t, e) {
16
- const n = t[t.length - 1];
17
- return (n == null ? void 0 : n.type) === "text" ? [...t.slice(0, -1), { ...n, text: n.text + e }] : [...t, { type: "text", text: e }];
15
+ function _(e, t) {
16
+ const n = e[e.length - 1];
17
+ return (n == null ? void 0 : n.type) === "text" ? [...e.slice(0, -1), { ...n, text: n.text + t }] : [...e, { type: "text", text: t }];
18
18
  }
19
- function h(t, e, n = {}) {
20
- const r = n.index ?? 0, i = n.streamId, u = t.findIndex(
21
- (s) => s.type === "reasoning" && (s.index ?? 0) === r && s.streamId === i
19
+ function R(e, t, n = {}) {
20
+ const r = n.index ?? 0, o = n.streamId, a = e.findIndex(
21
+ (u) => u.type === "reasoning" && (u.index ?? 0) === r && u.streamId === o
22
22
  );
23
- if (u < 0)
24
- return [...t, { type: "reasoning", text: e, index: r, streamId: i, label: n.label, signature: n.signature, raw: n.raw }];
25
- const o = t[u], a = {
26
- ...o,
27
- text: o.text + e,
28
- label: n.label ?? o.label,
29
- signature: n.signature ?? o.signature,
30
- raw: n.raw ?? o.raw
23
+ if (a < 0)
24
+ return [...e, { type: "reasoning", text: t, index: r, streamId: o, label: n.label, signature: n.signature, raw: n.raw }];
25
+ const i = e[a], s = {
26
+ ...i,
27
+ text: i.text + t,
28
+ label: n.label ?? i.label,
29
+ signature: n.signature ?? i.signature,
30
+ raw: n.raw ?? i.raw
31
31
  };
32
- return O(o, a) ? t : [...t.slice(0, u), a, ...t.slice(u + 1)];
32
+ return N(i, s) ? e : [...e.slice(0, a), s, ...e.slice(a + 1)];
33
33
  }
34
- const I = [
34
+ const E = [
35
35
  "type",
36
36
  "text",
37
37
  "index",
@@ -39,42 +39,42 @@ const I = [
39
39
  "label",
40
40
  "signature",
41
41
  "raw"
42
- ], T = {
43
- type: (t, e) => t.type === e.type,
44
- text: (t, e) => t.text === e.text,
45
- index: (t, e) => t.index === e.index,
46
- streamId: (t, e) => t.streamId === e.streamId,
47
- label: (t, e) => t.label === e.label,
48
- signature: (t, e) => t.signature === e.signature,
49
- raw: (t, e) => t.raw === e.raw
42
+ ], C = {
43
+ type: (e, t) => e.type === t.type,
44
+ text: (e, t) => e.text === t.text,
45
+ index: (e, t) => e.index === t.index,
46
+ streamId: (e, t) => e.streamId === t.streamId,
47
+ label: (e, t) => e.label === t.label,
48
+ signature: (e, t) => e.signature === t.signature,
49
+ raw: (e, t) => e.raw === t.raw
50
50
  };
51
- function O(t, e) {
52
- return I.every((n) => T[n](t, e));
51
+ function N(e, t) {
52
+ return E.every((n) => C[n](e, t));
53
53
  }
54
- function _(t, e) {
55
- const n = t.findIndex((i) => i.type === "card" && i.envelope.id === e.id);
56
- if (n < 0) return [...t, { type: "card", envelope: e }];
57
- const r = t[n];
58
- return d(r.envelope) === d(e) ? t : [...t.slice(0, n), { ...r, envelope: e }, ...t.slice(n + 1)];
54
+ function P(e, t) {
55
+ const n = e.findIndex((o) => o.type === "card" && o.envelope.id === t.id);
56
+ if (n < 0) return [...e, { type: "card", envelope: t }];
57
+ const r = e[n];
58
+ return m(r.envelope) === m(t) ? e : [...e.slice(0, n), { ...r, envelope: t }, ...e.slice(n + 1)];
59
59
  }
60
- function b(t, e, n) {
61
- const r = t.findIndex((o) => o.type === "tool" && o.tool.toolCallId === e);
60
+ function D(e, t, n) {
61
+ const r = e.findIndex((i) => i.type === "tool" && i.tool.toolCallId === t);
62
62
  if (r < 0) {
63
- const o = {
63
+ const i = {
64
64
  type: n.type ?? "unknown",
65
65
  state: n.state ?? "input-streaming",
66
66
  ...n,
67
- toolCallId: e
67
+ toolCallId: t
68
68
  };
69
- return o.kind = o.kind ?? y(o.type), [...t, { type: "tool", tool: o }];
69
+ return i.kind = i.kind ?? w(i.type), [...e, { type: "tool", tool: i }];
70
70
  }
71
- const i = t[r].tool, u = { ...i, ...n, toolCallId: e };
72
- return u.kind = M(i, n, u.type), u.raw === void 0 && i.raw !== void 0 && (u.raw = i.raw), E(i, u) ? t : [...t.slice(0, r), { type: "tool", tool: u }, ...t.slice(r + 1)];
71
+ const o = e[r].tool, a = { ...o, ...n, toolCallId: t };
72
+ return a.kind = K(o, n, a.type), a.raw === void 0 && o.raw !== void 0 && (a.raw = o.raw), L(o, a) ? e : [...e.slice(0, r), { type: "tool", tool: a }, ...e.slice(r + 1)];
73
73
  }
74
- function M(t, e, n) {
75
- return e.kind !== void 0 ? e.kind : t.kind === void 0 || t.kind === y(t.type) ? y(n) : t.kind;
74
+ function K(e, t, n) {
75
+ return t.kind !== void 0 ? t.kind : e.kind === void 0 || e.kind === w(e.type) ? w(n) : e.kind;
76
76
  }
77
- const S = [
77
+ const $ = [
78
78
  "type",
79
79
  "state",
80
80
  "kind",
@@ -84,173 +84,293 @@ const S = [
84
84
  "raw",
85
85
  "input",
86
86
  "output"
87
- ], R = {
88
- type: (t, e) => t.type === e.type,
89
- state: (t, e) => t.state === e.state,
90
- kind: (t, e) => t.kind === e.kind,
91
- toolCallId: (t, e) => t.toolCallId === e.toolCallId,
92
- errorText: (t, e) => t.errorText === e.errorText,
93
- rawInput: (t, e) => t.rawInput === e.rawInput,
94
- raw: (t, e) => t.raw === e.raw,
95
- input: (t, e) => t.input === e.input || d(t.input) === d(e.input),
96
- output: (t, e) => t.output === e.output || d(t.output) === d(e.output)
87
+ ], U = {
88
+ type: (e, t) => e.type === t.type,
89
+ state: (e, t) => e.state === t.state,
90
+ kind: (e, t) => e.kind === t.kind,
91
+ toolCallId: (e, t) => e.toolCallId === t.toolCallId,
92
+ errorText: (e, t) => e.errorText === t.errorText,
93
+ rawInput: (e, t) => e.rawInput === t.rawInput,
94
+ raw: (e, t) => e.raw === t.raw,
95
+ input: (e, t) => e.input === t.input || m(e.input) === m(t.input),
96
+ output: (e, t) => e.output === t.output || m(e.output) === m(t.output)
97
97
  };
98
- function E(t, e) {
99
- return S.every((n) => R[n](t, e));
98
+ function L(e, t) {
99
+ return $.every((n) => U[n](e, t));
100
100
  }
101
- function C() {
101
+ function F() {
102
102
  return typeof crypto < "u" && crypto.randomUUID ? crypto.randomUUID() : "kai-" + Math.random().toString(36).slice(2);
103
103
  }
104
- function U(t, e, n = {}) {
105
- return { id: n.id ?? C(), role: t, parts: [{ type: "text", text: e }], ...n };
104
+ function B(e, t, n = {}) {
105
+ return { id: n.id ?? F(), role: e, parts: [{ type: "text", text: t }], ...n };
106
106
  }
107
- function j(t) {
108
- return t.filter((e) => e.type === "text").map((e) => e.text).join("");
107
+ function Q(e) {
108
+ return e.filter((t) => t.type === "text").map((t) => t.text).join("");
109
109
  }
110
- function L(t, e) {
111
- return [...t, e];
110
+ function X(e, t) {
111
+ return [...e, t];
112
112
  }
113
- function $(t, e) {
114
- const n = t.findIndex((i) => i.id === e.id);
115
- if (n === -1) return [...t, e];
116
- const r = t.slice();
117
- return r[n] = e, r;
113
+ function Z(e, t) {
114
+ const n = e.findIndex((o) => o.id === t.id);
115
+ if (n === -1) return [...e, t];
116
+ const r = e.slice();
117
+ return r[n] = t, r;
118
118
  }
119
- function F(t, e, n) {
120
- return t.map(
121
- (r) => r.id === e ? typeof n == "function" ? n(r) : { ...r, ...n } : r
119
+ function v(e, t, n) {
120
+ return e.map(
121
+ (r) => r.id === t ? typeof n == "function" ? n(r) : { ...r, ...n } : r
122
122
  );
123
123
  }
124
- function Y(t, e) {
125
- return t.filter((n) => n.id !== e);
124
+ function ee(e, t) {
125
+ return e.filter((n) => n.id !== t);
126
126
  }
127
- function q(t, e, n) {
128
- return t.map((r) => r.id === e ? { ...r, parts: k(r.parts, n) } : r);
127
+ function te(e, t, n) {
128
+ return e.map((r) => r.id === t ? { ...r, parts: _(r.parts, n) } : r);
129
129
  }
130
- function G(t, e) {
131
- return t.includes(e) ? t.slice() : [...t, e];
130
+ function ne(e, t) {
131
+ return e.includes(t) ? e.slice() : [...e, t];
132
132
  }
133
- function J(t, e) {
134
- return t.filter((n) => n !== e);
133
+ function re(e, t) {
134
+ return e.filter((n) => n !== t);
135
135
  }
136
- function A() {
136
+ function j() {
137
137
  return typeof crypto < "u" && crypto.randomUUID ? crypto.randomUUID() : "kai-" + Math.random().toString(36).slice(2);
138
138
  }
139
- function W(t, e = {}) {
140
- const n = e.id ?? A();
139
+ function oe(e, t = {}) {
140
+ const n = t.id ?? j();
141
141
  let r = !1;
142
- t((o) => [...o, { id: n, role: "assistant", parts: [], ...e }]);
143
- const i = (o) => {
144
- r || t((a) => {
145
- const s = a.findIndex((l) => l.id === n);
146
- if (s < 0) return a;
147
- const c = o(a[s].parts);
148
- return c === a[s].parts ? a : [...a.slice(0, s), { ...a[s], parts: c }, ...a.slice(s + 1)];
142
+ e((i) => [...i, { id: n, role: "assistant", parts: [], ...t }]);
143
+ const o = (i) => {
144
+ r || e((s) => {
145
+ const u = s.findIndex((d) => d.id === n);
146
+ if (u < 0) return s;
147
+ const c = i(s[u].parts);
148
+ return c === s[u].parts ? s : [...s.slice(0, u), { ...s[u], parts: c }, ...s.slice(u + 1)];
149
149
  });
150
- }, u = {
150
+ }, a = {
151
151
  id: n,
152
- appendText(o) {
153
- return i((a) => k(a, o)), u;
152
+ appendText(i) {
153
+ return o((s) => _(s, i)), a;
154
154
  },
155
- appendReasoning(o, a) {
156
- return i((s) => h(s, o, a)), u;
155
+ appendReasoning(i, s) {
156
+ return o((u) => R(u, i, s)), a;
157
157
  },
158
- upsertTool(o, a) {
159
- return i((s) => b(s, o, a)), u;
158
+ upsertTool(i, s) {
159
+ return o((u) => D(u, i, s)), a;
160
160
  },
161
161
  // Upsert, not append: keyed on envelope.id so a revised card replaces itself.
162
- addCard(o) {
163
- return i((a) => _(a, o)), u;
162
+ addCard(i) {
163
+ return o((s) => P(s, i)), a;
164
164
  },
165
- addSource(o) {
166
- return i((a) => [...a, { type: "source", source: o }]), u;
165
+ addSource(i) {
166
+ return o((s) => [...s, { type: "source", source: i }]), a;
167
167
  },
168
- addFile(o) {
169
- return i((a) => [...a, { type: "file", attachment: o }]), u;
168
+ addFile(i) {
169
+ return o((s) => [...s, { type: "file", attachment: i }]), a;
170
170
  },
171
171
  done() {
172
172
  r = !0;
173
173
  },
174
- abort(o) {
175
- i((a) => a.map((s) => s.type === "tool" && s.tool.state !== "output-available" ? { ...s, tool: { ...s.tool, state: "output-error", errorText: o } } : s)), r = !0;
174
+ abort(i) {
175
+ const s = (i == null ? void 0 : i.trim()) || void 0;
176
+ o((u) => {
177
+ let c = !1;
178
+ const d = u.map((l) => {
179
+ var g;
180
+ return l.type !== "tool" || l.tool.state === "output-available" ? l : l.tool.state === "output-error" && ((g = l.tool.errorText) != null && g.trim()) ? (c = !0, l) : (c = !0, { ...l, tool: { ...l.tool, state: "output-error", errorText: s } });
181
+ });
182
+ return c || !s ? d : [...d, { type: "text", text: s }];
183
+ }), r = !0;
176
184
  }
177
185
  };
178
- return u;
186
+ return a;
179
187
  }
180
- function v(t, e) {
188
+ function ie(e, t) {
181
189
  const n = {
182
- id: t.id,
190
+ id: e.id,
183
191
  appendText(r) {
184
- return t.appendText(r), n;
192
+ return e.appendText(r), n;
185
193
  },
186
- appendReasoning(r, i) {
187
- return t.appendReasoning(r, i), n;
194
+ appendReasoning(r, o) {
195
+ return e.appendReasoning(r, o), n;
188
196
  },
189
- upsertTool(r, i) {
190
- return t.upsertTool(r, i), n;
197
+ upsertTool(r, o) {
198
+ return e.upsertTool(r, o), n;
191
199
  },
192
200
  addCard(r) {
193
- return t.addCard(r), n;
201
+ return e.addCard(r), n;
194
202
  },
195
203
  addSource(r) {
196
- return t.addSource(r), n;
204
+ return e.addSource(r), n;
197
205
  },
198
206
  addFile(r) {
199
- return t.addFile(r), n;
207
+ return e.addFile(r), n;
200
208
  },
201
209
  done() {
202
- t.done(), e();
210
+ e.done(), t();
203
211
  },
204
212
  abort(r) {
205
- t.abort(r), e();
213
+ e.abort(r), t();
206
214
  }
207
215
  };
208
216
  return n;
209
217
  }
210
- const K = "kai-mock", N = "_kai_mock", w = "no provider was contacted — this reply was generated locally by createMockResponder() from @kitn.ai/ui/state", m = `: kai-mock — NO PROVIDER WAS CONTACTED. ${w}.`, g = [
218
+ function G(e, t, n, r = {}) {
219
+ var i;
220
+ let o = !1;
221
+ const a = e.map((s) => {
222
+ if (s.id !== t) return s;
223
+ o = !0;
224
+ const u = { ...s, messages: n(s.messages) };
225
+ return r.touch ? r.touch(u) : u;
226
+ });
227
+ return o ? a : ((i = r.onDrop) == null || i.call(r, t), e);
228
+ }
229
+ function ae(e, t, n = {}) {
230
+ return (r) => {
231
+ e((o) => G(o, t, r, n));
232
+ };
233
+ }
234
+ function se(e) {
235
+ const t = /* @__PURE__ */ new Map(), n = () => Array.from(t.keys()), r = () => e == null ? void 0 : e(n());
236
+ return {
237
+ begin(o) {
238
+ var i;
239
+ (i = t.get(o)) == null || i.abort();
240
+ const a = new AbortController();
241
+ return t.set(o, a), r(), a;
242
+ },
243
+ end(o, a) {
244
+ t.get(o) === a && (t.delete(o), r());
245
+ },
246
+ abort(o) {
247
+ const a = t.get(o);
248
+ return a ? (a.abort(), t.delete(o), r(), !0) : !1;
249
+ },
250
+ isStreaming(o) {
251
+ return t.has(o);
252
+ },
253
+ streamingIds: n
254
+ };
255
+ }
256
+ function p(e) {
257
+ return typeof e == "object" && e !== null;
258
+ }
259
+ const J = {
260
+ text: (e) => typeof e.text == "string",
261
+ reasoning: (e) => typeof e.text == "string",
262
+ tool: (e) => p(e.tool),
263
+ card: (e) => p(e.envelope) && typeof e.envelope.type == "string" && typeof e.envelope.id == "string",
264
+ source: (e) => p(e.source),
265
+ file: (e) => p(e.attachment)
266
+ };
267
+ function Y(e, t) {
268
+ if (!p(e) || typeof e.type != "string")
269
+ return t.push({ at: "part", reason: "not a part record", value: e }), null;
270
+ const n = J[e.type];
271
+ return n ? n(e) ? e : (t.push({ at: "part", reason: `missing or invalid payload for "${e.type}" part`, value: e }), null) : (t.push({ at: "part", reason: `unknown part type "${e.type}"`, value: e }), null);
272
+ }
273
+ function q(e, t) {
274
+ if (!p(e) || typeof e.id != "string" || e.role !== "user" && e.role !== "assistant" || !Array.isArray(e.parts))
275
+ return t.push({ at: "message", reason: "not a message record (id/role/parts)", value: e }), null;
276
+ const n = e.parts.map((o) => Y(o, t)).filter((o) => o !== null);
277
+ if (n.length === 0)
278
+ return t.push({ at: "message", reason: "no readable parts survived", value: e }), null;
279
+ const r = { id: e.id, role: e.role, parts: n };
280
+ return (e.feedback === "like" || e.feedback === "dislike") && (r.feedback = e.feedback), p(e.avatar) && (r.avatar = e.avatar), Array.isArray(e.actions) && (r.actions = e.actions), r;
281
+ }
282
+ function ue(e) {
283
+ const t = [];
284
+ return Array.isArray(e) ? { messages: e.map((r) => q(r, t)).filter((r) => r !== null), dropped: t } : { messages: [], dropped: [{ at: "thread", reason: "stored thread is not an array", value: e }] };
285
+ }
286
+ function le(e, t) {
287
+ const n = t.setTimeout ?? ((c, d) => setTimeout(c, d)), r = t.clearTimeout ?? ((c) => clearTimeout(c));
288
+ let o, a = !1, i;
289
+ const s = () => {
290
+ a && (r(i), a = !1);
291
+ }, u = () => {
292
+ a = !1, e(o);
293
+ };
294
+ return {
295
+ schedule(c) {
296
+ o = c, s(), i = n(u, t.delayMs), a = !0;
297
+ },
298
+ flush() {
299
+ a && (s(), e(o));
300
+ },
301
+ cancel: s,
302
+ pending: () => a
303
+ };
304
+ }
305
+ const A = "kai-mock", H = "_kai_mock", S = "no provider was contacted — this reply was generated locally by createMockResponder() from @kitn.ai/ui/state", T = `: kai-mock — NO PROVIDER WAS CONTACTED. ${S}.`, b = [
211
306
  "Hi! I'm a local mock — no backend, no API key, no provider was contacted. I'm streaming through the same parser a real model would, so what you're seeing is the real rendering path with a canned reply.",
212
307
  "Still the mock. Swap `createMockResponder()` for a `fetch('/api/chat', …)` and nothing else in this handler changes — that's the whole point of the seam.",
213
308
  "Mock again. Every frame I send is tagged `_kai_mock` and my usage reports zero tokens, so nothing here can be mistaken for a real turn."
214
309
  ];
215
- function P(t, e) {
216
- const n = t.split(/(\s+)/).filter((i) => i !== "");
217
- if (e <= 1) return n;
310
+ function V(e, t) {
311
+ const n = e.split(/(\s+)/).filter((o) => o !== "");
312
+ if (t <= 1) return n;
218
313
  const r = [];
219
- for (let i = 0; i < n.length; i += e)
220
- r.push(n.slice(i, i + e).join(""));
314
+ for (let o = 0; o < n.length; o += t)
315
+ r.push(n.slice(o, o + t).join(""));
221
316
  return r;
222
317
  }
223
- function p(t, e) {
318
+ function y(e, t) {
224
319
  return `data: ${JSON.stringify({
225
- [N]: w,
226
- id: t,
320
+ [H]: S,
321
+ id: e,
227
322
  object: "chat.completion.chunk",
228
- model: K,
229
- ...e
323
+ model: A,
324
+ ...t
230
325
  })}
231
326
 
232
327
  `;
233
328
  }
234
- const D = (t) => t > 0 ? new Promise((e) => setTimeout(e, t)) : Promise.resolve();
235
- function z(t = {}) {
329
+ const k = (e) => e > 0 ? new Promise((t) => setTimeout(t, e)) : Promise.resolve(), W = (e) => typeof e == "string" ? { text: e } : e, I = 16;
330
+ function z(e) {
331
+ const t = [];
332
+ for (let n = 0; n < e.length; n += I)
333
+ t.push(e.slice(n, n + I));
334
+ return t.length > 0 ? t : [""];
335
+ }
336
+ function ce(e = {}) {
236
337
  const {
237
- replies: e = g,
338
+ replies: t = b,
238
339
  delayMs: n = 24,
239
340
  chunkSize: r = 1,
240
- announce: i = !0
241
- } = t, u = e.length > 0 ? e : g;
242
- let o = 0, a = !1;
341
+ announce: o = !0
342
+ } = e, a = t.length > 0 ? t : b;
343
+ let i = 0, s = !1;
243
344
  return function(c) {
244
- const l = u[o % u.length], f = `kai-mock-${o + 1}`;
245
- return o += 1, {
345
+ const d = W(a[i % a.length]), l = `kai-mock-${i + 1}`, g = i + 1;
346
+ return i += 1, {
246
347
  async *[Symbol.asyncIterator]() {
247
- i && !a && (a = !0, console.info(`[kai] ${m.slice(2)}`)), yield `${m}
348
+ o && !s && (s = !0, console.info(`[kai] ${T.slice(2)}`)), yield `${T}
248
349
 
249
- `, yield p(f, { choices: [{ index: 0, delta: { role: "assistant" }, finish_reason: null }] });
250
- for (const x of P(l, r))
251
- await D(n), yield p(f, { choices: [{ index: 0, delta: { content: x }, finish_reason: null }] });
252
- yield p(f, {
253
- choices: [{ index: 0, delta: {}, finish_reason: "stop" }],
350
+ `, yield y(l, { choices: [{ index: 0, delta: { role: "assistant" }, finish_reason: null }] });
351
+ for (const f of V(d.text ?? "", r))
352
+ await k(n), yield y(l, { choices: [{ index: 0, delta: { content: f }, finish_reason: null }] });
353
+ const h = d.toolCalls ?? [];
354
+ for (let f = 0; f < h.length; f += 1) {
355
+ const x = h[f], M = x.id ?? `call_${A}-${g}-${f + 1}`;
356
+ await k(n), yield y(l, {
357
+ choices: [{
358
+ index: 0,
359
+ delta: { tool_calls: [{ index: f, id: M, function: { name: x.name, arguments: "" } }] },
360
+ finish_reason: null
361
+ }]
362
+ });
363
+ for (const O of z(JSON.stringify(x.arguments ?? {})))
364
+ await k(n), yield y(l, {
365
+ choices: [{
366
+ index: 0,
367
+ delta: { tool_calls: [{ index: f, function: { arguments: O } }] },
368
+ finish_reason: null
369
+ }]
370
+ });
371
+ }
372
+ yield y(l, {
373
+ choices: [{ index: 0, delta: {}, finish_reason: h.length > 0 ? "tool_calls" : "stop" }],
254
374
  usage: { prompt_tokens: 0, completion_tokens: 0, total_tokens: 0 }
255
375
  }), yield `data: [DONE]
256
376
 
@@ -260,27 +380,32 @@ function z(t = {}) {
260
380
  };
261
381
  }
262
382
  export {
263
- g as DEFAULT_MOCK_REPLIES,
264
- m as MOCK_BANNER,
265
- w as MOCK_MARKER,
266
- N as MOCK_MARKER_KEY,
267
- K as MOCK_MODEL_ID,
268
- G as addSuggestion,
269
- L as appendMessage,
270
- h as appendReasoningPart,
271
- q as appendText,
272
- k as appendTextPart,
273
- y as classifyTool,
274
- W as createAssistantStream,
275
- z as createMockResponder,
276
- d as fingerprint,
277
- v as onStreamSettled,
278
- j as partsToText,
279
- Y as removeMessage,
280
- J as removeSuggestion,
281
- U as textMessage,
282
- F as updateMessage,
283
- _ as upsertCardPart,
284
- $ as upsertMessage,
285
- b as upsertToolPart
383
+ b as DEFAULT_MOCK_REPLIES,
384
+ T as MOCK_BANNER,
385
+ S as MOCK_MARKER,
386
+ H as MOCK_MARKER_KEY,
387
+ A as MOCK_MODEL_ID,
388
+ ne as addSuggestion,
389
+ X as appendMessage,
390
+ R as appendReasoningPart,
391
+ te as appendText,
392
+ _ as appendTextPart,
393
+ ae as bindThreadMessages,
394
+ w as classifyTool,
395
+ oe as createAssistantStream,
396
+ ce as createMockResponder,
397
+ le as createSaveScheduler,
398
+ se as createThreadSessions,
399
+ m as fingerprint,
400
+ ie as onStreamSettled,
401
+ ue as parseStoredThread,
402
+ Q as partsToText,
403
+ ee as removeMessage,
404
+ re as removeSuggestion,
405
+ B as textMessage,
406
+ v as updateMessage,
407
+ G as updateThreadMessages,
408
+ P as upsertCardPart,
409
+ Z as upsertMessage,
410
+ D as upsertToolPart
286
411
  };
@@ -0,0 +1 @@
1
+ import{$ as u,K,L as P,N as w,g as z}from"./define-CGGX-7Vg.js";const h=Symbol("store-raw"),y=Symbol("store-node"),f=Symbol("store-has"),m=Symbol("store-self");function v(t){let r=t[u];if(!r&&(Object.defineProperty(t,u,{value:r=new Proxy(t,L)}),!Array.isArray(t))){const o=Object.keys(t),e=Object.getOwnPropertyDescriptors(t),c=Object.getPrototypeOf(t),n=c!==null&&t!==null&&typeof t=="object"&&!Array.isArray(t)&&c!==Object.prototype;if(n){const i=Object.getOwnPropertyDescriptors(c);o.push(...Object.keys(i)),Object.assign(e,i)}for(let i=0,l=o.length;i<l;i++){const s=o[i];n&&s==="constructor"||e[s].get&&Object.defineProperty(t,s,{configurable:!0,enumerable:e[s].enumerable,get:e[s].get.bind(r)})}}return r}function g(t){let r;return t!=null&&typeof t=="object"&&(t[u]||!(r=Object.getPrototypeOf(t))||r===Object.prototype||Array.isArray(t))}function a(t,r=new Set){let o,e,c,n;if(o=t!=null&&t[h])return o;if(!g(t)||r.has(t))return t;if(Array.isArray(t)){Object.isFrozen(t)?t=t.slice(0):r.add(t);for(let i=0,l=t.length;i<l;i++)c=t[i],(e=a(c,r))!==c&&(t[i]=e)}else{Object.isFrozen(t)?t=Object.assign({},t):r.add(t);const i=Object.keys(t),l=Object.getOwnPropertyDescriptors(t);for(let s=0,d=i.length;s<d;s++)n=i[s],!l[n].get&&(c=t[n],(e=a(c,r))!==c&&(t[n]=e))}return t}function _(t,r){let o=t[r];return o||Object.defineProperty(t,r,{value:o=Object.create(null)}),o}function b(t,r,o){if(t[r])return t[r];const[e,c]=z(o,{equals:!1,internal:!0});return e.$=c,t[r]=e}function F(t,r){const o=Reflect.getOwnPropertyDescriptor(t,r);return!o||o.get||!o.configurable||r===u||r===y||(delete o.value,delete o.writable,o.get=()=>t[u][r]),o}function $(t){w()&&b(_(t,y),m)()}function R(t){return $(t),Reflect.ownKeys(t)}const L={get(t,r,o){if(r===h)return t;if(r===u)return o;if(r===P)return $(t),o;const e=_(t,y),c=e[r];let n=c?c():t[r];if(r===y||r===f||r==="__proto__")return n;if(!c){const i=Object.getOwnPropertyDescriptor(t,r);w()&&(typeof n!="function"||t.hasOwnProperty(r))&&!(i&&i.get)&&(n=b(e,r,n)())}return g(n)?v(n):n},has(t,r){return r===h||r===u||r===P||r===y||r===f||r==="__proto__"?!0:(w()&&b(_(t,f),r)(),r in t)},set(){return!0},deleteProperty(){return!0},ownKeys:R,getOwnPropertyDescriptor:F};function p(t,r,o,e=!1){if(r==="__proto__"||!e&&t[r]===o)return;const c=t[r],n=t.length;o===void 0?(delete t[r],t[f]&&t[f][r]&&c!==void 0&&t[f][r].$()):(t[r]=o,t[f]&&t[f][r]&&c===void 0&&t[f][r].$());let i=_(t,y),l;if((l=b(i,r,c))&&l.$(()=>o),Array.isArray(t)&&t.length!==n){for(let s=t.length;s<n;s++)(l=i[s])&&l.$();(l=b(i,"length",n))&&l.$(t.length)}(l=i[m])&&l.$()}function D(t,r){const o=Object.keys(r);for(let e=0;e<o.length;e+=1){const c=o[e];k(c)||p(t,c,r[c])}}function k(t){return t==="__proto__"||t==="constructor"||t==="prototype"}function M(t,r){if(typeof r=="function"&&(r=r(t)),r=a(r),Array.isArray(r)){if(t===r)return;let o=0,e=r.length;for(;o<e;o++){const c=r[o];t[o]!==c&&p(t,o,c)}p(t,"length",e)}else D(t,r)}function O(t,r,o=[]){let e,c=t;if(r.length>1){e=r.shift();const i=typeof e,l=Array.isArray(t);if(i==="string"&&(e==="__proto__"||r.length>1&&k(e)))return;if(Array.isArray(e)){for(let s=0;s<e.length;s++)O(t,[e[s]].concat(r),o);return}else if(l&&i==="function"){for(let s=0;s<t.length;s++)e(t[s],s)&&O(t,[s].concat(r),o);return}else if(l&&i==="object"){const{from:s=0,to:d=t.length-1,by:x=1}=e;for(let A=s;A<=d;A+=x)O(t,[A].concat(r),o);return}else if(r.length>1){O(t[e],r,[e].concat(o));return}c=t[e],o=[e].concat(o)}let n=r[0];typeof n=="function"&&(n=n(c,o),n===c)||e===void 0&&n==null||(n=a(n),e===void 0||g(c)&&g(n)&&!Array.isArray(n)?D(c,n):p(t,e,n))}function N(...[t,r]){const o=a(t||{}),e=Array.isArray(o),c=v(o);function n(...i){K(()=>{e&&i.length===1?M(o,i[0]):O(o,i)})}return[c,n]}const j=new WeakMap,S={get(t,r){if(r===h)return t;const o=t[r];if(r===u||r===P||r===y||r===f||r==="__proto__")return o;let e;return g(o)?j.get(o)||(j.set(o,e=new Proxy(o,S)),e):o},set(t,r,o){return p(t,r,a(o)),!0},deleteProperty(t,r){return p(t,r,void 0,!0),!0}};function W(t){return r=>{if(g(r)){let o;(o=j.get(r))||j.set(r,o=new Proxy(r,S)),t(o)}return r}}export{N as c,W as p,a as u};