@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
@@ -1 +0,0 @@
1
- const e=Object.freeze(JSON.parse(`{"displayName":"Shell","name":"shellscript","patterns":[{"include":"#initial_context"}],"repository":{"alias_statement":{"begin":"[\\\\t ]*+(alias)[\\\\t ]*+((?:((?<!\\\\w)-\\\\w+)\\\\b[\\\\t ]*+)*)[\\\\t ]*+((?<!\\\\w)[-0-9A-Z_a-z]+(?!\\\\w))(?:(\\\\[)((?:(?:\\\\$?(?<!\\\\w)[-0-9A-Z_a-z]+(?!\\\\w)|@)|\\\\*)|(-?\\\\d+))(]))?(?:(?:(=)|(\\\\+=))|(-=))","beginCaptures":{"1":{"name":"storage.type.alias.shell"},"2":{"patterns":[{"match":"(?<!\\\\w)-\\\\w+\\\\b","name":"string.unquoted.argument.shell constant.other.option.shell"}]},"3":{"name":"string.unquoted.argument.shell constant.other.option.shell"},"4":{"name":"variable.other.assignment.shell"},"5":{"name":"punctuation.definition.array.access.shell"},"6":{"name":"variable.other.assignment.shell"},"7":{"name":"constant.numeric.shell constant.numeric.integer.shell"},"8":{"name":"punctuation.definition.array.access.shell"},"9":{"name":"keyword.operator.assignment.shell"},"10":{"name":"keyword.operator.assignment.compound.shell"},"11":{"name":"keyword.operator.assignment.compound.shell"}},"end":"(?=[\\\\t ]|$)|(?:(?:(?:(;)|(&&))|(\\\\|\\\\|))|(&))","endCaptures":{"1":{"name":"punctuation.terminator.statement.semicolon.shell"},"2":{"name":"punctuation.separator.statement.and.shell"},"3":{"name":"punctuation.separator.statement.or.shell"},"4":{"name":"punctuation.separator.statement.background.shell"}},"name":"meta.expression.assignment.alias.shell","patterns":[{"include":"#normal_context"}]},"argument":{"begin":"[\\\\t ]++(?![\\\\n#\\\\&(\\\\[|]|$|;)","beginCaptures":{},"end":"(?=[\\\\t \\\\&;|]|$|[\\\\n)\`])","endCaptures":{},"name":"meta.argument.shell","patterns":[{"include":"#argument_context"},{"include":"#line_continuation"}]},"argument_context":{"patterns":[{"captures":{"1":{"name":"string.unquoted.argument.shell","patterns":[{"match":"\\\\*","name":"variable.language.special.wildcard.shell"},{"include":"#variable"},{"include":"#numeric_literal"},{"captures":{"1":{"name":"constant.language.$1.shell"}},"match":"(?<!\\\\w)\\\\b(true|false)\\\\b(?!\\\\w)"}]}},"match":"[\\\\t ]*+([^\\\\t\\\\n \\"$\\\\&-);<>\\\\\\\\\`|]+(?!>))"},{"include":"#normal_context"}]},"arithmetic_double":{"patterns":[{"begin":"\\\\(\\\\(","beginCaptures":{"0":{"name":"punctuation.section.arithmetic.double.shell"}},"end":"\\\\)\\\\s*\\\\)","endCaptures":{"0":{"name":"punctuation.section.arithmetic.double.shell"}},"name":"meta.arithmetic.shell","patterns":[{"include":"#math"},{"include":"#string"}]}]},"arithmetic_no_dollar":{"patterns":[{"begin":"\\\\(","beginCaptures":{"0":{"name":"punctuation.section.arithmetic.single.shell"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.section.arithmetic.single.shell"}},"name":"meta.arithmetic.shell","patterns":[{"include":"#math"},{"include":"#string"}]}]},"array_access_inline":{"captures":{"1":{"name":"punctuation.section.array.shell"},"2":{"patterns":[{"include":"#special_expansion"},{"include":"#string"},{"include":"#variable"}]},"3":{"name":"punctuation.section.array.shell"}},"match":"(\\\\[)([^]\\\\[]+)(])"},"array_value":{"begin":"[\\\\t ]*+((?<!\\\\w)[-0-9A-Z_a-z]+(?!\\\\w))(?:(\\\\[)((?:(?:\\\\$?(?<!\\\\w)[-0-9A-Z_a-z]+(?!\\\\w)|@)|\\\\*)|(-?\\\\d+))(]))?(?:(?:(=)|(\\\\+=))|(-=))[\\\\t ]*+(\\\\()","beginCaptures":{"1":{"name":"variable.other.assignment.shell"},"2":{"name":"punctuation.definition.array.access.shell"},"3":{"name":"variable.other.assignment.shell"},"4":{"name":"constant.numeric.shell constant.numeric.integer.shell"},"5":{"name":"punctuation.definition.array.access.shell"},"6":{"name":"keyword.operator.assignment.shell"},"7":{"name":"keyword.operator.assignment.compound.shell"},"8":{"name":"keyword.operator.assignment.compound.shell"},"9":{"name":"punctuation.definition.array.shell"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.array.shell"}},"patterns":[{"include":"#comment"},{"captures":{"1":{"name":"variable.other.assignment.array.shell entity.other.attribute-name.shell"},"2":{"name":"keyword.operator.assignment.shell punctuation.definition.assignment.shell"}},"match":"((?<!\\\\w)[-0-9A-Z_a-z]+(?!\\\\w))(=)"},{"captures":{"1":{"name":"punctuation.definition.bracket.named-array.shell"},"2":{"name":"string.unquoted.shell entity.other.attribute-name.bracket.shell"},"3":{"name":"punctuation.definition.bracket.named-array.shell"},"4":{"name":"punctuation.definition.assignment.shell"}},"match":"(\\\\[)(.+?)(])(=)"},{"include":"#normal_context"},{"include":"#simple_unquoted"}]},"assignment_statement":{"patterns":[{"include":"#array_value"},{"include":"#modified_assignment_statement"},{"include":"#normal_assignment_statement"}]},"basic_command_name":{"captures":{"1":{"name":"storage.modifier.$1.shell"},"2":{"name":"entity.name.function.call.shell entity.name.command.shell","patterns":[{"match":"(?<!\\\\w)(?:continue|return|break)(?!\\\\w)","name":"keyword.control.$0.shell"},{"match":"(?<!\\\\w)(?:unfunction|continue|autoload|unsetopt|bindkey|builtin|getopts|command|declare|unalias|history|unlimit|typeset|suspend|source|printf|unhash|disown|ulimit|return|which|alias|break|false|print|shift|times|umask|unset|read|type|exec|eval|wait|echo|dirs|jobs|kill|hash|stat|exit|test|trap|true|let|set|pwd|cd|fg|bg|fc|[.:])(?!/)(?!\\\\w)(?!-)","name":"support.function.builtin.shell"},{"include":"#variable"}]}},"match":"(?![\\\\n!#\\\\&()<>\\\\[{|]|$|[\\\\t ;])(?!nocorrect |nocorrect\\\\t|nocorrect$|readonly |readonly\\\\t|readonly$|function |function\\\\t|function$|foreach |foreach\\\\t|foreach$|coproc |coproc\\\\t|coproc$|logout |logout\\\\t|logout$|export |export\\\\t|export$|select |select\\\\t|select$|repeat |repeat\\\\t|repeat$|pushd |pushd\\\\t|pushd$|until |until\\\\t|until$|while |while\\\\t|while$|local |local\\\\t|local$|case |case\\\\t|case$|done |done\\\\t|done$|elif |elif\\\\t|elif$|else |else\\\\t|else$|esac |esac\\\\t|esac$|popd |popd\\\\t|popd$|then |then\\\\t|then$|time |time\\\\t|time$|for |for\\\\t|for$|end |end\\\\t|end$|fi |fi\\\\t|fi$|do |do\\\\t|do$|in |in\\\\t|in$|if |if\\\\t|if$)(?:((?<=^|[\\\\t \\\\&;])(?:readonly|declare|typeset|export|local)(?=[\\\\t \\\\&;]|$))|((?![\\"']|\\\\\\\\\\\\n?$)[^\\\\t\\\\n\\\\r !\\"'<>]+?))(?:(?=[\\\\t ])|(?=[\\\\n\\\\&);\`{|}]|[\\\\t ]*#|])(?<!\\\\\\\\))","name":"meta.statement.command.name.basic.shell"},"block_comment":{"begin":"\\\\s*+(/\\\\*)","beginCaptures":{"1":{"name":"punctuation.definition.comment.begin.shell"}},"end":"\\\\*/","endCaptures":{"0":{"name":"punctuation.definition.comment.end.shell"}},"name":"comment.block.shell"},"boolean":{"match":"\\\\b(?:true|false)\\\\b","name":"constant.language.$0.shell"},"case_statement":{"begin":"\\\\b(case)\\\\b[\\\\t ]*+(.+?)[\\\\t ]*+\\\\b(in)\\\\b","beginCaptures":{"1":{"name":"keyword.control.case.shell"},"2":{"patterns":[{"include":"#initial_context"}]},"3":{"name":"keyword.control.in.shell"}},"end":"\\\\besac\\\\b","endCaptures":{"0":{"name":"keyword.control.esac.shell"}},"name":"meta.case.shell","patterns":[{"include":"#comment"},{"captures":{"1":{"name":"keyword.operator.pattern.case.default.shell"}},"match":"[\\\\t ]*+(\\\\* *\\\\))"},{"begin":"(?<!\\\\))(?![\\\\t ]*+(?:esac\\\\b|$))","beginCaptures":{},"end":"(?=\\\\besac\\\\b)|(\\\\))","endCaptures":{"1":{"name":"keyword.operator.pattern.case.shell"}},"name":"meta.case.entry.pattern.shell","patterns":[{"include":"#case_statement_context"}]},{"begin":"(?<=\\\\))","beginCaptures":{},"end":"(;;)|(?=\\\\besac\\\\b)","endCaptures":{"1":{"name":"punctuation.terminator.statement.case.shell"}},"name":"meta.case.entry.body.shell","patterns":[{"include":"#typical_statements"},{"include":"#initial_context"}]}]},"case_statement_context":{"patterns":[{"match":"\\\\*","name":"variable.language.special.quantifier.star.shell keyword.operator.quantifier.star.shell punctuation.definition.arbitrary-repetition.shell punctuation.definition.regex.arbitrary-repetition.shell"},{"match":"\\\\+","name":"variable.language.special.quantifier.plus.shell keyword.operator.quantifier.plus.shell punctuation.definition.arbitrary-repetition.shell punctuation.definition.regex.arbitrary-repetition.shell"},{"match":"\\\\?","name":"variable.language.special.quantifier.question.shell keyword.operator.quantifier.question.shell punctuation.definition.arbitrary-repetition.shell punctuation.definition.regex.arbitrary-repetition.shell"},{"match":"@","name":"variable.language.special.at.shell keyword.operator.at.shell punctuation.definition.regex.at.shell"},{"match":"\\\\|","name":"keyword.operator.orvariable.language.special.or.shell keyword.operator.alternation.ruby.shell punctuation.definition.regex.alternation.shell punctuation.separator.regex.alternation.shell"},{"match":"\\\\\\\\.","name":"constant.character.escape.shell"},{"match":"(?<=\\\\tin| in|[\\\\t ]|;;)\\\\(","name":"keyword.operator.pattern.case.shell"},{"begin":"(?<=\\\\S)(\\\\()","beginCaptures":{"1":{"name":"punctuation.definition.group.shell punctuation.definition.regex.group.shell"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.group.shell punctuation.definition.regex.group.shell"}},"name":"meta.parenthese.shell","patterns":[{"include":"#case_statement_context"}]},{"begin":"\\\\[","beginCaptures":{"0":{"name":"punctuation.definition.character-class.shell"}},"end":"]","endCaptures":{"0":{"name":"punctuation.definition.character-class.shell"}},"name":"string.regexp.character-class.shell","patterns":[{"match":"\\\\\\\\.","name":"constant.character.escape.shell"}]},{"include":"#string"},{"match":"[^\\\\t\\\\n )*?@\\\\[|]","name":"string.unquoted.pattern.shell string.regexp.unquoted.shell"}]},"command_name_range":{"begin":"\\\\G","beginCaptures":{},"end":"(?=[\\\\t \\\\&;|]|$|[\\\\n)\`])|(?=<)","endCaptures":{},"name":"meta.statement.command.name.shell","patterns":[{"match":"(?<!\\\\w)(?:continue|return|break)(?!\\\\w)","name":"entity.name.function.call.shell entity.name.command.shell keyword.control.$0.shell"},{"match":"(?<!\\\\w)(?:unfunction|continue|autoload|unsetopt|bindkey|builtin|getopts|command|declare|unalias|history|unlimit|typeset|suspend|source|printf|unhash|disown|ulimit|return|which|alias|break|false|print|shift|times|umask|unset|read|type|exec|eval|wait|echo|dirs|jobs|kill|hash|stat|exit|test|trap|true|let|set|pwd|cd|fg|bg|fc|[.:])(?!/)(?!\\\\w)(?!-)","name":"entity.name.function.call.shell entity.name.command.shell support.function.builtin.shell"},{"include":"#variable"},{"captures":{"1":{"name":"entity.name.function.call.shell entity.name.command.shell"}},"match":"(?<!\\\\w)(?<=\\\\G|[\\"')}])([^\\\\t\\\\n\\\\r \\"\\\\&');->\`{|]+)"},{"begin":"(?:\\\\G|(?<![\\\\t\\\\n #\\\\&;{|]))(\\\\$?)((\\")|('))","beginCaptures":{"1":{"name":"meta.statement.command.name.quoted.shell punctuation.definition.string.shell entity.name.function.call.shell entity.name.command.shell"},"2":{},"3":{"name":"meta.statement.command.name.quoted.shell string.quoted.double.shell punctuation.definition.string.begin.shell entity.name.function.call.shell entity.name.command.shell"},"4":{"name":"meta.statement.command.name.quoted.shell string.quoted.single.shell punctuation.definition.string.begin.shell entity.name.function.call.shell entity.name.command.shell"}},"end":"(?<!\\\\G)(?<=\\\\2)","endCaptures":{},"patterns":[{"include":"#continuation_of_single_quoted_command_name"},{"include":"#continuation_of_double_quoted_command_name"}]},{"include":"#line_continuation"},{"include":"#simple_unquoted"}]},"command_statement":{"begin":"[\\\\t ]*+(?![\\\\n!#\\\\&()<>\\\\[{|]|$|[\\\\t ;])(?!nocorrect |nocorrect\\\\t|nocorrect$|readonly |readonly\\\\t|readonly$|function |function\\\\t|function$|foreach |foreach\\\\t|foreach$|coproc |coproc\\\\t|coproc$|logout |logout\\\\t|logout$|export |export\\\\t|export$|select |select\\\\t|select$|repeat |repeat\\\\t|repeat$|pushd |pushd\\\\t|pushd$|until |until\\\\t|until$|while |while\\\\t|while$|local |local\\\\t|local$|case |case\\\\t|case$|done |done\\\\t|done$|elif |elif\\\\t|elif$|else |else\\\\t|else$|esac |esac\\\\t|esac$|popd |popd\\\\t|popd$|then |then\\\\t|then$|time |time\\\\t|time$|for |for\\\\t|for$|end |end\\\\t|end$|fi |fi\\\\t|fi$|do |do\\\\t|do$|in |in\\\\t|in$|if |if\\\\t|if$)(?!\\\\\\\\\\\\n?$)","beginCaptures":{},"end":"(?=[\\\\n\\\\&);\`{|}]|[\\\\t ]*#|])(?<!\\\\\\\\)","endCaptures":{},"name":"meta.statement.command.shell","patterns":[{"include":"#command_name_range"},{"include":"#line_continuation"},{"include":"#option"},{"include":"#argument"},{"include":"#string"},{"include":"#heredoc"}]},"comment":{"captures":{"1":{"name":"comment.line.number-sign.shell meta.shebang.shell"},"2":{"name":"punctuation.definition.comment.shebang.shell"},"3":{"name":"comment.line.number-sign.shell"},"4":{"name":"punctuation.definition.comment.shell"}},"match":"(?:^|[\\\\t ]++)(?:((#!).*)|((#).*))"},"comments":{"patterns":[{"include":"#block_comment"},{"include":"#line_comment"}]},"compound-command":{"patterns":[{"begin":"\\\\[","beginCaptures":{"0":{"name":"punctuation.definition.logical-expression.shell"}},"end":"]","endCaptures":{"0":{"name":"punctuation.definition.logical-expression.shell"}},"name":"meta.scope.logical-expression.shell","patterns":[{"include":"#logical-expression"},{"include":"#initial_context"}]},{"begin":"(?<=\\\\s|^)\\\\{(?=\\\\s|$)","beginCaptures":{"0":{"name":"punctuation.definition.group.shell"}},"end":"(?<=^|;)\\\\s*(})","endCaptures":{"1":{"name":"punctuation.definition.group.shell"}},"name":"meta.scope.group.shell","patterns":[{"include":"#initial_context"}]}]},"continuation_of_double_quoted_command_name":{"begin":"\\\\G(?<=\\")","beginCaptures":{},"contentName":"meta.statement.command.name.continuation string.quoted.double entity.name.function.call entity.name.command","end":"\\"","endCaptures":{"0":{"name":"string.quoted.double.shell punctuation.definition.string.end.shell entity.name.function.call.shell entity.name.command.shell"}},"patterns":[{"match":"\\\\\\\\[\\\\n\\"$\\\\\\\\\`]","name":"constant.character.escape.shell"},{"include":"#variable"},{"include":"#interpolation"}]},"continuation_of_single_quoted_command_name":{"begin":"\\\\G(?<=')","beginCaptures":{},"contentName":"meta.statement.command.name.continuation string.quoted.single entity.name.function.call entity.name.command","end":"'","endCaptures":{"0":{"name":"string.quoted.single.shell punctuation.definition.string.end.shell entity.name.function.call.shell entity.name.command.shell"}}},"custom_command_names":{"patterns":[]},"custom_commands":{"patterns":[]},"double_quote_context":{"patterns":[{"match":"\\\\\\\\[\\\\n\\"$\\\\\\\\\`]","name":"constant.character.escape.shell"},{"include":"#variable"},{"include":"#interpolation"}]},"double_quote_escape_char":{"match":"\\\\\\\\[\\\\n\\"$\\\\\\\\\`]","name":"constant.character.escape.shell"},"floating_keyword":{"patterns":[{"match":"(?<=^|[\\\\t \\\\&;])(?:then|elif|else|done|end|do|if|fi)(?=[\\\\t \\\\&;]|$)","name":"keyword.control.$0.shell"}]},"for_statement":{"patterns":[{"begin":"\\\\b(for)\\\\b[\\\\t ]*+((?<!\\\\w)[-0-9A-Z_a-z]+(?!\\\\w))[\\\\t ]*+\\\\b(in)\\\\b","beginCaptures":{"1":{"name":"keyword.control.for.shell"},"2":{"name":"variable.other.for.shell"},"3":{"name":"keyword.control.in.shell"}},"end":"(?=[\\\\n\\\\&);\`{|}]|[\\\\t ]*#|])(?<!\\\\\\\\)","endCaptures":{},"name":"meta.for.in.shell","patterns":[{"include":"#string"},{"include":"#simple_unquoted"},{"include":"#normal_context"}]},{"begin":"\\\\b(for)\\\\b","beginCaptures":{"1":{"name":"keyword.control.for.shell"}},"end":"(?=[\\\\n\\\\&);\`{|}]|[\\\\t ]*#|])(?<!\\\\\\\\)","endCaptures":{},"name":"meta.for.shell","patterns":[{"include":"#arithmetic_double"},{"include":"#normal_context"}]}]},"function_definition":{"applyEndPatternLast":1,"begin":"[\\\\t ]*+(?:\\\\b(function)\\\\b[\\\\t ]*+([^\\\\t\\\\n\\\\r \\"'()=]+)(?:(\\\\()[\\\\t ]*+(\\\\)))?|([^\\\\t\\\\n\\\\r \\"'()=]+)[\\\\t ]*+(\\\\()[\\\\t ]*+(\\\\)))","beginCaptures":{"1":{"name":"storage.type.function.shell"},"2":{"name":"entity.name.function.shell"},"3":{"name":"punctuation.definition.arguments.shell"},"4":{"name":"punctuation.definition.arguments.shell"},"5":{"name":"entity.name.function.shell"},"6":{"name":"punctuation.definition.arguments.shell"},"7":{"name":"punctuation.definition.arguments.shell"}},"end":"(?<=[)}])","endCaptures":{},"name":"meta.function.shell","patterns":[{"match":"\\\\G[\\\\t\\\\n ]"},{"begin":"\\\\{","beginCaptures":{"0":{"name":"punctuation.definition.group.shell punctuation.section.function.definition.shell"}},"end":"}","endCaptures":{"0":{"name":"punctuation.definition.group.shell punctuation.section.function.definition.shell"}},"name":"meta.function.body.shell","patterns":[{"include":"#initial_context"}]},{"begin":"\\\\(","beginCaptures":{"0":{"name":"punctuation.definition.group.shell punctuation.section.function.definition.shell"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.group.shell punctuation.section.function.definition.shell"}},"name":"meta.function.body.shell","patterns":[{"include":"#initial_context"}]},{"include":"#initial_context"}]},"heredoc":{"patterns":[{"begin":"((?<!<)<<-)[\\\\t ]*+([\\"'])[\\\\t ]*+([^\\"']+?)(?=[\\"\\\\&';<\\\\s])(\\\\2)(.*)","beginCaptures":{"1":{"name":"keyword.operator.heredoc.shell"},"2":{"name":"punctuation.definition.string.heredoc.quote.shell"},"3":{"name":"punctuation.definition.string.heredoc.delimiter.shell"},"4":{"name":"punctuation.definition.string.heredoc.quote.shell"},"5":{"patterns":[{"include":"#redirect_fix"},{"include":"#typical_statements"}]}},"contentName":"string.quoted.heredoc.indent.$3","end":"^\\\\t*\\\\3(?=[\\\\&;\\\\s]|$)","endCaptures":{"0":{"name":"punctuation.definition.string.heredoc.$0.shell"}},"patterns":[]},{"begin":"((?<!<)<<(?!<))[\\\\t ]*+([\\"'])[\\\\t ]*+([^\\"']+?)(?=[\\"\\\\&';<\\\\s])(\\\\2)(.*)","beginCaptures":{"1":{"name":"keyword.operator.heredoc.shell"},"2":{"name":"punctuation.definition.string.heredoc.quote.shell"},"3":{"name":"punctuation.definition.string.heredoc.delimiter.shell"},"4":{"name":"punctuation.definition.string.heredoc.quote.shell"},"5":{"patterns":[{"include":"#redirect_fix"},{"include":"#typical_statements"}]}},"contentName":"string.quoted.heredoc.no-indent.$3","end":"^\\\\3(?=[\\\\&;\\\\s]|$)","endCaptures":{"0":{"name":"punctuation.definition.string.heredoc.delimiter.shell"}},"patterns":[]},{"begin":"((?<!<)<<-)[\\\\t ]*+([^\\\\t \\"']+)(?=[\\"\\\\&';<\\\\s])(.*)","beginCaptures":{"1":{"name":"keyword.operator.heredoc.shell"},"2":{"name":"punctuation.definition.string.heredoc.delimiter.shell"},"3":{"patterns":[{"include":"#redirect_fix"},{"include":"#typical_statements"}]}},"contentName":"string.unquoted.heredoc.indent.$2","end":"^\\\\t*\\\\2(?=[\\\\&;\\\\s]|$)","endCaptures":{"0":{"name":"punctuation.definition.string.heredoc.delimiter.shell"}},"patterns":[{"include":"#double_quote_escape_char"},{"include":"#variable"},{"include":"#interpolation"}]},{"begin":"((?<!<)<<(?!<))[\\\\t ]*+([^\\\\t \\"']+)(?=[\\"\\\\&';<\\\\s])(.*)","beginCaptures":{"1":{"name":"keyword.operator.heredoc.shell"},"2":{"name":"punctuation.definition.string.heredoc.delimiter.shell"},"3":{"patterns":[{"include":"#redirect_fix"},{"include":"#typical_statements"}]}},"contentName":"string.unquoted.heredoc.no-indent.$2","end":"^\\\\2(?=[\\\\&;\\\\s]|$)","endCaptures":{"0":{"name":"punctuation.definition.string.heredoc.delimiter.shell"}},"patterns":[{"include":"#double_quote_escape_char"},{"include":"#variable"},{"include":"#interpolation"}]}]},"herestring":{"patterns":[{"begin":"(<<<)\\\\s*(('))","beginCaptures":{"1":{"name":"keyword.operator.herestring.shell"},"2":{"name":"string.quoted.single.shell"},"3":{"name":"punctuation.definition.string.begin.shell"}},"contentName":"string.quoted.single.shell","end":"(')","endCaptures":{"0":{"name":"string.quoted.single.shell"},"1":{"name":"punctuation.definition.string.end.shell"}},"name":"meta.herestring.shell"},{"begin":"(<<<)\\\\s*((\\"))","beginCaptures":{"1":{"name":"keyword.operator.herestring.shell"},"2":{"name":"string.quoted.double.shell"},"3":{"name":"punctuation.definition.string.begin.shell"}},"contentName":"string.quoted.double.shell","end":"(\\")","endCaptures":{"0":{"name":"string.quoted.double.shell"},"1":{"name":"punctuation.definition.string.end.shell"}},"name":"meta.herestring.shell","patterns":[{"include":"#double_quote_context"}]},{"captures":{"1":{"name":"keyword.operator.herestring.shell"},"2":{"name":"string.unquoted.herestring.shell","patterns":[{"include":"#initial_context"}]}},"match":"(<<<)\\\\s*(([^)\\\\\\\\\\\\s]|\\\\\\\\.)+)","name":"meta.herestring.shell"}]},"initial_context":{"patterns":[{"include":"#comment"},{"include":"#pipeline"},{"include":"#normal_statement_seperator"},{"include":"#logical_expression_double"},{"include":"#logical_expression_single"},{"include":"#assignment_statement"},{"include":"#case_statement"},{"include":"#for_statement"},{"include":"#loop"},{"include":"#function_definition"},{"include":"#line_continuation"},{"include":"#arithmetic_double"},{"include":"#misc_ranges"},{"include":"#variable"},{"include":"#interpolation"},{"include":"#heredoc"},{"include":"#herestring"},{"include":"#redirection"},{"include":"#pathname"},{"include":"#floating_keyword"},{"include":"#alias_statement"},{"include":"#normal_statement"},{"include":"#string"},{"include":"#support"}]},"inline_comment":{"captures":{"1":{"name":"comment.block.shell punctuation.definition.comment.begin.shell"},"2":{"name":"comment.block.shell"},"3":{"patterns":[{"match":"\\\\*/","name":"comment.block.shell punctuation.definition.comment.end.shell"},{"match":"\\\\*","name":"comment.block.shell"}]}},"match":"(/\\\\*)((?:[^*]|\\\\*++[^/])*+(\\\\*++/))"},"interpolation":{"patterns":[{"include":"#arithmetic_dollar"},{"include":"#subshell_dollar"},{"begin":"\`","beginCaptures":{"0":{"name":"punctuation.definition.evaluation.backticks.shell"}},"end":"\`","endCaptures":{"0":{"name":"punctuation.definition.evaluation.backticks.shell"}},"name":"string.interpolated.backtick.shell","patterns":[{"match":"\\\\\\\\[$\\\\\\\\\`]","name":"constant.character.escape.shell"},{"begin":"(?<=\\\\W)(?=#)(?!#\\\\{)","beginCaptures":{"1":{"name":"punctuation.whitespace.comment.leading.shell"}},"end":"(?!\\\\G)","patterns":[{"begin":"#","beginCaptures":{"0":{"name":"punctuation.definition.comment.shell"}},"end":"(?=\`)","name":"comment.line.number-sign.shell"}]},{"include":"#initial_context"}]}]},"keyword":{"patterns":[{"match":"(?<=^|[\\\\&;\\\\s])(then|else|elif|fi|for|in|do|done|select|continue|esac|while|until|return)(?=[\\\\&;\\\\s]|$)","name":"keyword.control.shell"},{"match":"(?<=^|[\\\\&;\\\\s])(?:export|declare|typeset|local|readonly)(?=[\\\\&;\\\\s]|$)","name":"storage.modifier.shell"}]},"line_comment":{"begin":"\\\\s*+(//)","beginCaptures":{"1":{"name":"punctuation.definition.comment.shell"}},"end":"(?<=\\\\n)(?<!\\\\\\\\\\\\n)","endCaptures":{},"name":"comment.line.double-slash.shell","patterns":[{"include":"#line_continuation_character"}]},"line_continuation":{"match":"\\\\\\\\(?=\\\\n)","name":"constant.character.escape.line-continuation.shell"},"logical-expression":{"patterns":[{"include":"#arithmetic_no_dollar"},{"match":"=[=~]?|!=?|[<>]|&&|\\\\|\\\\|","name":"keyword.operator.logical.shell"},{"match":"(?<!\\\\S)-(nt|ot|ef|eq|ne|l[et]|g[et]|[GLNOSa-hknopr-uwxz])\\\\b","name":"keyword.operator.logical.shell"}]},"logical_expression_context":{"patterns":[{"include":"#regex_comparison"},{"include":"#arithmetic_no_dollar"},{"include":"#logical-expression"},{"include":"#logical_expression_single"},{"include":"#logical_expression_double"},{"include":"#comment"},{"include":"#boolean"},{"include":"#redirect_number"},{"include":"#numeric_literal"},{"include":"#pipeline"},{"include":"#normal_statement_seperator"},{"include":"#string"},{"include":"#variable"},{"include":"#interpolation"},{"include":"#heredoc"},{"include":"#herestring"},{"include":"#pathname"},{"include":"#floating_keyword"},{"include":"#support"}]},"logical_expression_double":{"begin":"\\\\[\\\\[","beginCaptures":{"0":{"name":"punctuation.definition.logical-expression.shell"}},"end":"]]","endCaptures":{"0":{"name":"punctuation.definition.logical-expression.shell"}},"name":"meta.scope.logical-expression.shell","patterns":[{"include":"#logical_expression_context"}]},"logical_expression_single":{"begin":"\\\\[","beginCaptures":{"0":{"name":"punctuation.definition.logical-expression.shell"}},"end":"]","endCaptures":{"0":{"name":"punctuation.definition.logical-expression.shell"}},"name":"meta.scope.logical-expression.shell","patterns":[{"include":"#logical_expression_context"}]},"loop":{"patterns":[{"begin":"(?<=^|[\\\\&;\\\\s])(for)\\\\s+(.+?)\\\\s+(in)(?=[\\\\&;\\\\s]|$)","beginCaptures":{"1":{"name":"keyword.control.shell"},"2":{"name":"variable.other.loop.shell","patterns":[{"include":"#string"}]},"3":{"name":"keyword.control.shell"}},"end":"(?<=^|[\\\\&;\\\\s])done(?=[\\\\&;\\\\s]|$|\\\\))","endCaptures":{"0":{"name":"keyword.control.shell"}},"name":"meta.scope.for-in-loop.shell","patterns":[{"include":"#initial_context"}]},{"begin":"(?<=^|[\\\\&;\\\\s])(while|until)(?=[\\\\&;\\\\s]|$)","beginCaptures":{"1":{"name":"keyword.control.shell"}},"end":"(?<=^|[\\\\&;\\\\s])done(?=[\\\\&;\\\\s]|$|\\\\))","endCaptures":{"0":{"name":"keyword.control.shell"}},"name":"meta.scope.while-loop.shell","patterns":[{"include":"#initial_context"}]},{"begin":"(?<=^|[\\\\&;\\\\s])(select)\\\\s+((?:[^\\\\\\\\\\\\s]|\\\\\\\\.)+)(?=[\\\\&;\\\\s]|$)","beginCaptures":{"1":{"name":"keyword.control.shell"},"2":{"name":"variable.other.loop.shell"}},"end":"(?<=^|[\\\\&;\\\\s])(done)(?=[\\\\&;\\\\s]|$|\\\\))","endCaptures":{"1":{"name":"keyword.control.shell"}},"name":"meta.scope.select-block.shell","patterns":[{"include":"#initial_context"}]},{"begin":"(?<=^|[\\\\&;\\\\s])if(?=[\\\\&;\\\\s]|$)","beginCaptures":{"0":{"name":"keyword.control.if.shell"}},"end":"(?<=^|[\\\\&;\\\\s])fi(?=[\\\\&;\\\\s]|$)","endCaptures":{"0":{"name":"keyword.control.fi.shell"}},"name":"meta.scope.if-block.shell","patterns":[{"include":"#initial_context"}]}]},"math":{"patterns":[{"include":"#variable"},{"match":"\\\\+{1,2}|-{1,2}|[!~]|\\\\*{1,2}|[%/]|<[<=]?|>[=>]?|==|!=|^|\\\\|{1,2}|&{1,2}|[,:=?]|[-%\\\\&*+/^|]=|<<=|>>=","name":"keyword.operator.arithmetic.shell"},{"match":"0[Xx]\\\\h+","name":"constant.numeric.hex.shell"},{"match":";","name":"punctuation.separator.semicolon.range"},{"match":"0\\\\d+","name":"constant.numeric.octal.shell"},{"match":"\\\\d{1,2}#[0-9@-Z_a-z]+","name":"constant.numeric.other.shell"},{"match":"\\\\d+","name":"constant.numeric.integer.shell"},{"match":"(?<!\\\\w)[0-9A-Z_a-z]+(?!\\\\w)","name":"variable.other.normal.shell"}]},"math_operators":{"patterns":[{"match":"\\\\+{1,2}|-{1,2}|[!~]|\\\\*{1,2}|[%/]|<[<=]?|>[=>]?|==|!=|^|\\\\|{1,2}|&{1,2}|[,:=?]|[-%\\\\&*+/^|]=|<<=|>>=","name":"keyword.operator.arithmetic.shell"},{"match":"0[Xx]\\\\h+","name":"constant.numeric.hex.shell"},{"match":"0\\\\d+","name":"constant.numeric.octal.shell"},{"match":"\\\\d{1,2}#[0-9@-Z_a-z]+","name":"constant.numeric.other.shell"},{"match":"\\\\d+","name":"constant.numeric.integer.shell"}]},"misc_ranges":{"patterns":[{"include":"#logical_expression_single"},{"include":"#logical_expression_double"},{"include":"#subshell_dollar"},{"begin":"(?<![^\\\\t ])(\\\\{)(?![$\\\\w])","beginCaptures":{"1":{"name":"punctuation.definition.group.shell"}},"end":"}","endCaptures":{"0":{"name":"punctuation.definition.group.shell"}},"name":"meta.scope.group.shell","patterns":[{"include":"#initial_context"}]}]},"modified_assignment_statement":{"begin":"(?<=^|[\\\\t \\\\&;])(?:readonly|declare|typeset|export|local)(?=[\\\\t \\\\&;]|$)","beginCaptures":{"0":{"name":"storage.modifier.$0.shell"}},"end":"(?=[\\\\n\\\\&);\`{|}]|[\\\\t ]*#|])(?<!\\\\\\\\)","endCaptures":{},"name":"meta.statement.shell meta.expression.assignment.modified.shell","patterns":[{"match":"(?<!\\\\w)-\\\\w+\\\\b","name":"string.unquoted.argument.shell constant.other.option.shell"},{"include":"#array_value"},{"captures":{"1":{"name":"variable.other.assignment.shell"},"2":{"name":"punctuation.definition.array.access.shell"},"3":{"name":"variable.other.assignment.shell"},"4":{"name":"constant.numeric.shell constant.numeric.integer.shell"},"5":{"name":"punctuation.definition.array.access.shell"},"6":{"name":"keyword.operator.assignment.shell"},"7":{"name":"keyword.operator.assignment.compound.shell"},"8":{"name":"keyword.operator.assignment.compound.shell"},"9":{"name":"constant.numeric.shell constant.numeric.hex.shell"},"10":{"name":"constant.numeric.shell constant.numeric.octal.shell"},"11":{"name":"constant.numeric.shell constant.numeric.other.shell"},"12":{"name":"constant.numeric.shell constant.numeric.decimal.shell"},"13":{"name":"constant.numeric.shell constant.numeric.version.shell"},"14":{"name":"constant.numeric.shell constant.numeric.integer.shell"}},"match":"((?<!\\\\w)[-0-9A-Z_a-z]+(?!\\\\w))(?:(\\\\[)((?:(?:\\\\$?(?<!\\\\w)[-0-9A-Z_a-z]+(?!\\\\w)|@)|\\\\*)|(-?\\\\d+))(]))?(?:(?:(=)|(\\\\+=))|(-=))?(?:(?<=[\\\\t =]|^|[(\\\\[{])(?:(?:(?:(?:(?:(0[Xx]\\\\h+)|(0\\\\d+))|(\\\\d{1,2}#[0-9@-Z_a-z]+))|(-?\\\\d+\\\\.\\\\d+))|(-?\\\\d+(?:\\\\.\\\\d+)+))|(-?\\\\d+))(?=[\\\\t ]|$|[);}]))?"},{"include":"#normal_context"}]},"modifiers":{"match":"(?<=^|[\\\\t \\\\&;])(?:readonly|declare|typeset|export|local)(?=[\\\\t \\\\&;]|$)","name":"storage.modifier.$0.shell"},"normal_assignment_statement":{"begin":"[\\\\t ]*+((?<!\\\\w)[-0-9A-Z_a-z]+(?!\\\\w))(?:(\\\\[)((?:(?:\\\\$?(?<!\\\\w)[-0-9A-Z_a-z]+(?!\\\\w)|@)|\\\\*)|(-?\\\\d+))(]))?(?:(?:(=)|(\\\\+=))|(-=))","beginCaptures":{"1":{"name":"variable.other.assignment.shell"},"2":{"name":"punctuation.definition.array.access.shell"},"3":{"name":"variable.other.assignment.shell"},"4":{"name":"constant.numeric.shell constant.numeric.integer.shell"},"5":{"name":"punctuation.definition.array.access.shell"},"6":{"name":"keyword.operator.assignment.shell"},"7":{"name":"keyword.operator.assignment.compound.shell"},"8":{"name":"keyword.operator.assignment.compound.shell"}},"end":"(?=[\\\\n\\\\&);\`{|}]|[\\\\t ]*#|])(?<!\\\\\\\\)","endCaptures":{},"name":"meta.expression.assignment.shell","patterns":[{"include":"#comment"},{"include":"#string"},{"include":"#normal_assignment_statement"},{"begin":"(?<=[\\\\t ])(?![\\\\t ]|\\\\w+=)","beginCaptures":{},"end":"(?=[\\\\n\\\\&);\`{|}]|[\\\\t ]*#|])(?<!\\\\\\\\)","endCaptures":{},"name":"meta.statement.command.env.shell","patterns":[{"include":"#command_name_range"},{"include":"#line_continuation"},{"include":"#option"},{"include":"#argument"},{"include":"#string"}]},{"include":"#simple_unquoted"},{"include":"#normal_context"}]},"normal_context":{"patterns":[{"include":"#comment"},{"include":"#pipeline"},{"include":"#normal_statement_seperator"},{"include":"#misc_ranges"},{"include":"#boolean"},{"include":"#redirect_number"},{"include":"#numeric_literal"},{"include":"#string"},{"include":"#variable"},{"include":"#interpolation"},{"include":"#heredoc"},{"include":"#herestring"},{"include":"#redirection"},{"include":"#pathname"},{"include":"#floating_keyword"},{"include":"#support"},{"include":"#parenthese"}]},"normal_statement":{"begin":"(?!^[\\\\t ]*+$)(?:(?<=(?:^until| until|\\\\tuntil|^while| while|\\\\twhile|^elif| elif|\\\\telif|^else| else|\\\\telse|^then| then|\\\\tthen|^do| do|\\\\tdo|^if| if|\\\\tif) )|(?<=^|[!\\\\&(;\`{|]))[\\\\t ]*+(?!nocorrect\\\\W|nocorrect\\\\$|function\\\\W|function\\\\$|foreach\\\\W|foreach\\\\$|repeat\\\\W|repeat\\\\$|logout\\\\W|logout\\\\$|coproc\\\\W|coproc\\\\$|select\\\\W|select\\\\$|while\\\\W|while\\\\$|pushd\\\\W|pushd\\\\$|until\\\\W|until\\\\$|case\\\\W|case\\\\$|done\\\\W|done\\\\$|elif\\\\W|elif\\\\$|else\\\\W|else\\\\$|esac\\\\W|esac\\\\$|popd\\\\W|popd\\\\$|then\\\\W|then\\\\$|time\\\\W|time\\\\$|for\\\\W|for\\\\$|end\\\\W|end\\\\$|fi\\\\W|fi\\\\$|do\\\\W|do\\\\$|in\\\\W|in\\\\$|if\\\\W|if\\\\$)","beginCaptures":{},"end":"(?=[\\\\n\\\\&);\`{|}]|[\\\\t ]*#|])(?<!\\\\\\\\)","endCaptures":{},"name":"meta.statement.shell","patterns":[{"include":"#typical_statements"}]},"normal_statement_seperator":{"captures":{"1":{"name":"punctuation.terminator.statement.semicolon.shell"},"2":{"name":"punctuation.separator.statement.and.shell"},"3":{"name":"punctuation.separator.statement.or.shell"},"4":{"name":"punctuation.separator.statement.background.shell"}},"match":"(?:(?:(;)|(&&))|(\\\\|\\\\|))|(&)"},"numeric_literal":{"captures":{"1":{"name":"constant.numeric.shell constant.numeric.hex.shell"},"2":{"name":"constant.numeric.shell constant.numeric.octal.shell"},"3":{"name":"constant.numeric.shell constant.numeric.other.shell"},"4":{"name":"constant.numeric.shell constant.numeric.decimal.shell"},"5":{"name":"constant.numeric.shell constant.numeric.version.shell"},"6":{"name":"constant.numeric.shell constant.numeric.integer.shell"}},"match":"(?<=[\\\\t =]|^|[(\\\\[{])(?:(?:(?:(?:(?:(0[Xx]\\\\h+)|(0\\\\d+))|(\\\\d{1,2}#[0-9@-Z_a-z]+))|(-?\\\\d+\\\\.\\\\d+))|(-?\\\\d+(?:\\\\.\\\\d+)+))|(-?\\\\d+))(?=[\\\\t ]|$|[);}])"},"option":{"begin":"[\\\\t ]++(-)((?![\\\\n!#\\\\&()<>\\\\[{|]|$|[\\\\t ;]))","beginCaptures":{"1":{"name":"string.unquoted.argument.shell constant.other.option.dash.shell"},"2":{"name":"string.unquoted.argument.shell constant.other.option.shell"}},"contentName":"string.unquoted.argument constant.other.option","end":"(?=[\\\\t ])|(?=[\\\\n\\\\&);\`{|}]|[\\\\t ]*#|])(?<!\\\\\\\\)","endCaptures":{},"patterns":[{"include":"#option_context"}]},"option_context":{"patterns":[{"include":"#misc_ranges"},{"include":"#string"},{"include":"#variable"},{"include":"#interpolation"},{"include":"#heredoc"},{"include":"#herestring"},{"include":"#redirection"},{"include":"#pathname"},{"include":"#floating_keyword"},{"include":"#support"}]},"parenthese":{"patterns":[{"begin":"\\\\(","beginCaptures":{"0":{"name":"punctuation.section.parenthese.shell"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.section.parenthese.shell"}},"name":"meta.parenthese.group.shell","patterns":[{"include":"#initial_context"}]}]},"pathname":{"patterns":[{"match":"(?<=[:=\\\\s]|^)~","name":"keyword.operator.tilde.shell"},{"match":"[*?]","name":"keyword.operator.glob.shell"},{"begin":"([!*+?@])(\\\\()","beginCaptures":{"1":{"name":"keyword.operator.extglob.shell"},"2":{"name":"punctuation.definition.extglob.shell"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.extglob.shell"}},"name":"meta.structure.extglob.shell","patterns":[{"include":"#initial_context"}]}]},"pipeline":{"patterns":[{"match":"(?<=^|[\\\\&;\\\\s])(time)(?=[\\\\&;\\\\s]|$)","name":"keyword.other.shell"},{"match":"[!|]","name":"keyword.operator.pipe.shell"}]},"redirect_fix":{"captures":{"1":{"name":"keyword.operator.redirect.shell"},"2":{"name":"string.unquoted.argument.shell"}},"match":"(>>?)[\\\\t ]*+([^\\\\t\\\\n \\"$\\\\&-);<>\\\\\\\\\`|]+)"},"redirect_number":{"captures":{"1":{"name":"keyword.operator.redirect.stdout.shell"},"2":{"name":"keyword.operator.redirect.stderr.shell"},"3":{"name":"keyword.operator.redirect.$3.shell"}},"match":"(?<=[\\\\t ])(?:(1)|(2)|(\\\\d+))(?=>)"},"redirection":{"patterns":[{"begin":"[<>]\\\\(","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.shell"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.string.end.shell"}},"name":"string.interpolated.process-substitution.shell","patterns":[{"include":"#initial_context"}]},{"match":"(?<![<>])(&>|\\\\d*>&\\\\d*|\\\\d*(>>|[<>])|\\\\d*<&|\\\\d*<>)(?![<>])","name":"keyword.operator.redirect.shell"}]},"regex_comparison":{"match":"=~","name":"keyword.operator.logical.regex.shell"},"regexp":{"patterns":[{"match":".+"}]},"simple_options":{"captures":{"0":{"patterns":[{"captures":{"1":{"name":"string.unquoted.argument.shell constant.other.option.dash.shell"},"2":{"name":"string.unquoted.argument.shell constant.other.option.shell"}},"match":"[\\\\t ]++(-)(\\\\w+)"}]}},"match":"(?:[\\\\t ]++-\\\\w+)*"},"simple_unquoted":{"match":"[^\\\\t\\\\n \\"$\\\\&-);<>\\\\\\\\\`|]","name":"string.unquoted.shell"},"special_expansion":{"match":"!|:[-=?]?|[*@]|##?|%%|[%/]","name":"keyword.operator.expansion.shell"},"start_of_command":{"match":"[\\\\t ]*+(?![\\\\n!#\\\\&()<>\\\\[{|]|$|[\\\\t ;])(?!nocorrect |nocorrect\\\\t|nocorrect$|readonly |readonly\\\\t|readonly$|function |function\\\\t|function$|foreach |foreach\\\\t|foreach$|coproc |coproc\\\\t|coproc$|logout |logout\\\\t|logout$|export |export\\\\t|export$|select |select\\\\t|select$|repeat |repeat\\\\t|repeat$|pushd |pushd\\\\t|pushd$|until |until\\\\t|until$|while |while\\\\t|while$|local |local\\\\t|local$|case |case\\\\t|case$|done |done\\\\t|done$|elif |elif\\\\t|elif$|else |else\\\\t|else$|esac |esac\\\\t|esac$|popd |popd\\\\t|popd$|then |then\\\\t|then$|time |time\\\\t|time$|for |for\\\\t|for$|end |end\\\\t|end$|fi |fi\\\\t|fi$|do |do\\\\t|do$|in |in\\\\t|in$|if |if\\\\t|if$)(?!\\\\\\\\\\\\n?$)"},"string":{"patterns":[{"match":"\\\\\\\\.","name":"constant.character.escape.shell"},{"begin":"'","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.shell"}},"end":"'","endCaptures":{"0":{"name":"punctuation.definition.string.end.shell"}},"name":"string.quoted.single.shell"},{"begin":"\\\\$?\\"","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.shell"}},"end":"\\"","endCaptures":{"0":{"name":"punctuation.definition.string.end.shell"}},"name":"string.quoted.double.shell","patterns":[{"match":"\\\\\\\\[\\\\n\\"$\\\\\\\\\`]","name":"constant.character.escape.shell"},{"include":"#variable"},{"include":"#interpolation"}]},{"begin":"\\\\$'","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.shell"}},"end":"'","endCaptures":{"0":{"name":"punctuation.definition.string.end.shell"}},"name":"string.quoted.single.dollar.shell","patterns":[{"match":"\\\\\\\\['\\\\\\\\abefnrtv]","name":"constant.character.escape.ansi-c.shell"},{"match":"\\\\\\\\[0-9]{3}\\"","name":"constant.character.escape.octal.shell"},{"match":"\\\\\\\\x\\\\h{2}\\"","name":"constant.character.escape.hex.shell"},{"match":"\\\\\\\\c.\\"","name":"constant.character.escape.control-char.shell"}]}]},"subshell_dollar":{"patterns":[{"begin":"\\\\$\\\\(","beginCaptures":{"0":{"name":"punctuation.definition.subshell.single.shell"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.subshell.single.shell"}},"name":"meta.scope.subshell","patterns":[{"include":"#parenthese"},{"include":"#initial_context"}]}]},"support":{"patterns":[{"match":"(?<=^|[\\\\&;\\\\s])[.:](?=[\\\\&;\\\\s]|$)","name":"support.function.builtin.shell"}]},"typical_statements":{"patterns":[{"include":"#assignment_statement"},{"include":"#case_statement"},{"include":"#for_statement"},{"include":"#while_statement"},{"include":"#function_definition"},{"include":"#command_statement"},{"include":"#line_continuation"},{"include":"#arithmetic_double"},{"include":"#normal_context"}]},"variable":{"patterns":[{"captures":{"1":{"name":"punctuation.definition.variable.shell variable.parameter.positional.all.shell"},"2":{"name":"variable.parameter.positional.all.shell"}},"match":"(\\\\$)(@(?!\\\\w))"},{"captures":{"1":{"name":"punctuation.definition.variable.shell variable.parameter.positional.shell"},"2":{"name":"variable.parameter.positional.shell"}},"match":"(\\\\$)([0-9](?!\\\\w))"},{"captures":{"1":{"name":"punctuation.definition.variable.shell variable.language.special.shell"},"2":{"name":"variable.language.special.shell"}},"match":"(\\\\$)([-!#$*0?_](?!\\\\w))"},{"begin":"(\\\\$)(\\\\{)[\\\\t ]*+(?=\\\\d)","beginCaptures":{"1":{"name":"punctuation.definition.variable.shell variable.parameter.positional.shell"},"2":{"name":"punctuation.section.bracket.curly.variable.begin.shell punctuation.definition.variable.shell variable.parameter.positional.shell"}},"contentName":"meta.parameter-expansion","end":"}","endCaptures":{"0":{"name":"punctuation.section.bracket.curly.variable.end.shell punctuation.definition.variable.shell variable.parameter.positional.shell"}},"patterns":[{"include":"#special_expansion"},{"include":"#array_access_inline"},{"match":"[0-9]+","name":"variable.parameter.positional.shell"},{"match":"(?<!\\\\w)[-0-9A-Z_a-z]+(?!\\\\w)","name":"variable.other.normal.shell"},{"include":"#variable"},{"include":"#string"}]},{"begin":"(\\\\$)(\\\\{)","beginCaptures":{"1":{"name":"punctuation.definition.variable.shell"},"2":{"name":"punctuation.section.bracket.curly.variable.begin.shell punctuation.definition.variable.shell"}},"contentName":"meta.parameter-expansion","end":"}","endCaptures":{"0":{"name":"punctuation.section.bracket.curly.variable.end.shell punctuation.definition.variable.shell"}},"patterns":[{"include":"#special_expansion"},{"include":"#array_access_inline"},{"match":"(?<!\\\\w)[-0-9A-Z_a-z]+(?!\\\\w)","name":"variable.other.normal.shell"},{"include":"#variable"},{"include":"#string"}]},{"captures":{"1":{"name":"punctuation.definition.variable.shell variable.other.normal.shell"},"2":{"name":"variable.other.normal.shell"}},"match":"(\\\\$)(\\\\w+(?!\\\\w))"}]},"while_statement":{"patterns":[{"begin":"\\\\b(while)\\\\b","beginCaptures":{"1":{"name":"keyword.control.while.shell"}},"end":"(?=[\\\\n\\\\&);\`{|}]|[\\\\t ]*#|])(?<!\\\\\\\\)","endCaptures":{},"name":"meta.while.shell","patterns":[{"include":"#line_continuation"},{"include":"#math_operators"},{"include":"#option"},{"include":"#simple_unquoted"},{"include":"#normal_context"},{"include":"#string"}]}]}},"scopeName":"source.shell","aliases":["bash","sh","shell","zsh"]}`)),n=[e];export{n as default};
@@ -1 +0,0 @@
1
- import{B as c,i as p,c as a,d as l,S as u,j as C,a as A,n as O,t as g,w as $,l as y,k as F,D as S}from"./define-B_tXMYRm.js";import{C as U,u as k}from"./use-card-resolution-DJg32jGH.js";import{F as z,v as E}from"./form-Cp8Y00Wn.js";import{C as T}from"./confirm-card-BWjf2-xo.js";import{T as M}from"./tasks-card-lPxoodlA.js";import{C as P}from"./choice-card-CGMc3kek.js";import{L as B}from"./link-preview-Cf5KOP-i.js";import{E as N}from"./embed-CjAD2jSi.js";import{A as D}from"./artifact-BSuPYFHY.js";import{t as j}from"./triangle-alert-B6or7F5u.js";var R=g('<h3 class="shrink-0 truncate border-b border-border px-3 py-2 text-sm font-medium text-foreground">'),Z=g('<div part=card data-card-type=artifact role=group class="flex w-full flex-col overflow-hidden rounded-xl border border-border bg-card"><div class="min-h-0 flex-1">');const _="420px";function G(e){return typeof e=="number"?`${e}px`:typeof e=="string"&&e.trim()!==""?e:_}function H(e){const r=$(),n=c(()=>e.data.tab),s=c(()=>e.data.activeFile),d=i=>{var o;return(o=e.host)==null?void 0:o.emit({kind:"state",cardId:e.cardId,patch:i})};return(()=>{var i=Z(),o=i.firstChild;return p(i,a(u,{get when(){return e.heading},get children(){var t=R();return l(t,"id",r),p(t,()=>e.heading),t}}),o),p(o,a(D,{get src(){return e.data.src},get files(){return e.data.files},defaultTab:n,activeFile:s,get displayUrl(){return e.data.displayUrl},get iframeTitle(){return C(()=>!!e.heading)()?`${e.heading} preview`:"Artifact preview"},onNavigate:t=>d({src:t}),onTabChange:t=>d({tab:t}),onFileSelect:t=>d({activeFile:t})})),A(t=>{var f=e.cardId,v=e.heading?r:void 0,b=e.heading?void 0:"Artifact",x=G(e.data.height);return f!==t.e&&l(i,"data-card-id",t.e=f),v!==t.t&&l(i,"aria-labelledby",t.t=v),b!==t.a&&l(i,"aria-label",t.a=b),x!==t.o&&O(i,"height",t.o=x),t},{e:void 0,t:void 0,a:void 0,o:void 0}),i})()}const m={form:e=>a(z,{get data(){return e.envelope.data},get cardId(){return e.envelope.id},get heading(){return e.envelope.title},get resolution(){return e.envelope.resolution},get host(){return e.host}}),confirm:e=>a(T,{get data(){return e.envelope.data},get cardId(){return e.envelope.id},get heading(){return e.envelope.title},get resolution(){return e.envelope.resolution},get host(){return e.host}}),tasks:e=>a(M,{get data(){return e.envelope.data},get cardId(){return e.envelope.id},get heading(){return e.envelope.title},get resolution(){return e.envelope.resolution},get host(){return e.host}}),choice:e=>a(P,{get data(){return e.envelope.data},get cardId(){return e.envelope.id},get heading(){return e.envelope.title},get resolution(){return e.envelope.resolution},get host(){return e.host}}),link:e=>a(B,{get data(){return e.envelope.data},get cardId(){return e.envelope.id},onEmit:r=>{var n;return(n=e.host)==null?void 0:n.emit(r)}}),embed:e=>a(N,{get data(){return e.envelope.data},get cardId(){return e.envelope.id},onEmit:r=>{var n;return(n=e.host)==null?void 0:n.emit(r)}}),artifact:e=>a(H,{get data(){return e.envelope.data},get cardId(){return e.envelope.id},get heading(){return e.envelope.title},get host(){return e.host}})};function J(e){return e?{...m,...e}:{...m}}const I={artifact:{type:"object",properties:{src:{type:"string"},files:{type:"array",maxItems:500,items:{type:"object",required:["path"],properties:{path:{type:"string",maxLength:1024},url:{type:"string"},code:{type:"string"},language:{type:"string",maxLength:40},type:{type:"string",enum:["html","pdf","image","other"]},additions:{type:"integer",minimum:0},deletions:{type:"integer",minimum:0},status:{type:"string",enum:["added","modified","deleted","renamed","untracked"]}}}},tab:{type:"string",enum:["preview","code"]},activeFile:{type:"string",maxLength:1024},displayUrl:{type:"string",maxLength:2048}}},choice:{type:"object",required:["options"],properties:{prompt:{type:"string"},submitLabel:{type:"string"},options:{type:"array",minItems:1,items:{type:"object",required:["id","label"],properties:{id:{type:"string",minLength:1},label:{type:"string",minLength:1},description:{type:"string"},media:{type:"object",properties:{image:{type:"string"},imageAlt:{type:"string"},icon:{type:"string"}}},meta:{type:"string"},recommended:{type:"boolean"},disabled:{type:"boolean"}}}},dismissible:{type:"boolean"}}},confirm:{type:"object",required:["actions"],properties:{heading:{type:"string"},body:{type:"string"},tone:{type:"string",enum:["default","warning","danger"]},actions:{type:"array",minItems:1,maxItems:4,items:{type:"object",required:["id","label"],properties:{id:{type:"string",minLength:1},label:{type:"string",minLength:1},style:{type:"string",enum:["primary","default","destructive"]},default:{type:"boolean"}}}},dismissible:{type:"boolean"}}},embed:{type:"object",required:["provider"],properties:{provider:{type:"string",enum:["youtube","vimeo","generic"]},id:{type:"string",maxLength:64,pattern:"^[A-Za-z0-9_-]+$"},url:{type:"string"},title:{type:"string",maxLength:300},poster:{type:"string"},start:{type:"integer",minimum:0},aspectRatio:{type:"string",enum:["16:9","4:3","1:1","9:16"]}}},form:{type:"object",required:["type","properties"],properties:{type:{const:"object"},title:{type:"string"},description:{type:"string"},required:{type:"array",items:{type:"string"}},properties:{type:"object"},"x-kai-order":{type:"array",items:{type:"string"}},"x-kai-inlineMax":{type:"integer",minimum:1},"x-kai-submitLabel":{type:"string"},"x-kai-dismissible":{type:"boolean"},"x-kai-actions":{type:"array",items:{type:"object",required:["id","label"],properties:{id:{type:"string"},label:{type:"string"},variant:{enum:["default","ghost","outline"]}}}}}},link:{type:"object",required:["url"],properties:{url:{type:"string"},title:{type:"string",maxLength:300},description:{type:"string",maxLength:1e3},image:{type:"string"},imageAlt:{type:"string",maxLength:300},favicon:{type:"string"},domain:{type:"string",maxLength:253},siteName:{type:"string",maxLength:200}}},tasks:{type:"object",required:["tasks"],properties:{mode:{type:"string",enum:["select","progress"]},heading:{type:"string"},tasks:{type:"array",minItems:1,items:{type:"object",required:["id","label"],properties:{id:{type:"string",minLength:1},label:{type:"string",minLength:1},description:{type:"string"},checked:{type:"boolean"},disabled:{type:"boolean"}}}},selectAll:{type:"boolean"},confirmLabel:{type:"string"},allowEmpty:{type:"boolean"},min:{type:"integer",minimum:0},max:{type:"integer",minimum:1},dismissible:{type:"boolean"}}}},K=Object.freeze({type:"hard",required:"hard",const:"hard",minItems:"hard",enum:"soft",maxItems:"soft",minLength:"soft",maxLength:"soft",pattern:"soft",minimum:"soft",maximum:"soft",exclusiveMinimum:"soft",exclusiveMaximum:"soft",uniqueItems:"soft"}),Q="soft";function V(e){return Object.prototype.hasOwnProperty.call(I,e)}function W(e,r){if(r&&Object.prototype.hasOwnProperty.call(r,e)){const n=r[e];if(n&&typeof n=="object")return n}return V(e)?I[e]:null}function X(e){const r=e.slice(0,3).map(s=>s.message),n=e.length-r.length;return r.join("; ")+(n>0?`; and ${n} more`:"")}function L(e,r,n){const s=W(e,n);if(s===null)return null;const d=E(s,r);if(d.valid)return{ok:!0,tier:"ok",issues:[],hard:[],summary:""};const i=d.issues.map(t=>({...t,tier:K[t.keyword]??Q})),o=i.filter(t=>t.tier==="hard");return{ok:!1,tier:o.length>0?"hard":"soft",issues:i,hard:o,summary:X(o.length>0?o:i)}}function w(e){return`invalid card data (${e.tier}): ${e.summary}`}var Y=g('<div data-card-fallback role=alert class="flex items-center gap-2 p-4 text-sm text-muted-foreground"><span>Unsupported card type: <code class=font-mono>'),ee=g('<div data-card-fallback data-card-invalid role=alert class="flex items-start gap-2 p-4 text-sm text-muted-foreground"><span class=min-w-0>Invalid <code class=font-mono></code> card: <code data-card-invalid-reason class="font-mono break-words">');function h(e){return a(U,{get children(){return a(u,{get when(){return e.reason},get fallback(){return(()=>{var r=Y(),n=r.firstChild,s=n.firstChild,d=s.nextSibling;return p(r,a(j,{class:"size-4 shrink-0 text-destructive dark:text-red-400","aria-hidden":"true"}),n),p(d,()=>e.type),r})()},children:r=>(()=>{var n=ee(),s=n.firstChild,d=s.firstChild,i=d.nextSibling,o=i.nextSibling,t=o.nextSibling;return p(n,a(j,{class:"size-4 shrink-0 translate-y-0.5 text-destructive dark:text-red-400","aria-hidden":"true"}),s),p(i,()=>e.type),p(t,r),n})()})}})}function q(e,r){if(!e||!Object.prototype.hasOwnProperty.call(e,r))return!1;const n=e[r];return typeof n=="object"&&n!==null}function te(e){const r=k(),n=y(()=>J(e.types)),s=y(()=>n()[e.envelope.type]),d=y(()=>e.validateCards===!1||!q(e.schemas,e.envelope.type)&&s()!==m[e.envelope.type]?null:L(e.envelope.type,e.envelope.data,e.schemas));let i=null;return F(()=>{const o=d();if(!s())return;if(!o||o.ok){i=null;return}const t=w(o);t!==i&&(i=t,r?.emit({kind:"error",cardId:e.envelope.id,message:t}))}),a(u,{get when(){return s()},get fallback(){return a(re,{get envelope(){return e.envelope}})},children:o=>a(u,{get when(){var t;return((t=d())==null?void 0:t.tier)==="hard"},get fallback(){return a(S,{get component(){return o()},get envelope(){return e.envelope},host:r})},get children(){return a(h,{get type(){return e.envelope.type},get cardId(){return e.envelope.id},get reason(){return d().summary}})}})})}function re(e){const r=k();return c(()=>r?.emit({kind:"error",cardId:e.envelope.id,message:`Unsupported card type: ${e.envelope.type}`})),a(h,{get type(){return e.envelope.type},get cardId(){return e.envelope.id}})}export{m as B,h as C,te as a,w as c,q as h,L as v};
@@ -1 +0,0 @@
1
- const a="kai-card";function i(r,e){r.dispatchEvent(new CustomEvent(a,{detail:e,bubbles:!0,composed:!0}))}const p=["http:","https:","mailto:"],u=["javascript:","vbscript:"];function s(r){try{return new URL(r,"http://_invalid_base").protocol}catch{return}}function c(r){const e=s(r);return e!==void 0&&p.includes(e)}function m(r){const e=s(r);return e!==void 0&&u.includes(e)}function t(r){console.warn(`[kai-card] no policy handler for "${r}"`)}function b(r,e){const n=r??{};switch(e.kind){case"ready":break;case"submit":n.onSubmit?n.onSubmit(e.cardId,e.data):t("submit");break;case"action":n.onAction?n.onAction(e.cardId,e.action,e.payload):t("action");break;case"send-prompt":{const o=e.mode??"compose",d=n.maxSendPromptMode==="send"?o:"compose";n.onSendPrompt?n.onSendPrompt(e.text,{mode:d,context:e.context}):t("send-prompt");break}case"open":{if(!c(e.url)){n.onError?n.onError(e.cardId,`Blocked unsafe url: ${e.url}`):t("open(unsafe)");break}const o=e.target??"tab";n.onOpen?n.onOpen(e.url,o):typeof window<"u"&&window.open(e.url,"_blank","noopener,noreferrer");break}case"state":n.onState?n.onState(e.cardId,e.patch):t("state");break;case"dismiss":n.onDismiss?n.onDismiss(e.cardId):t("dismiss");break;case"reopen":n.onReopen?n.onReopen(e.cardId):t("reopen");break;case"error":n.onError?n.onError(e.cardId,e.message):t("error");break}}export{a as C,c as a,i as e,m as i,b as r};
@@ -1 +0,0 @@
1
- import{y as D,l as E,g as M,k as U,o as G,c as r,v as J,i,S as u,u as g,j as K,F as L,a as _,b as A,C as N,t as d}from"./define-B_tXMYRm.js";import{s as O,n as P}from"./composer-CZZmtYOT.js";import{C as Q,a as W,b as X,S as Y}from"./scroll-button-CrTo7wm4.js";import{M as Z,a as j,b as ee}from"./message-CE4k-qaj.js";import{b as te}from"./message-DtXKPqiR.js";import{M as re}from"./model-switcher-D7JrFFHp.js";import{C as ne,a as ae,b as le,c as se,d as oe,e as ie,f as ce,g as ue}from"./context-hKjNqiyQ.js";import{D as de}from"./default-input-B1Mem5wu.js";var ge=d('<aside part=sidebar class="flex w-64 shrink-0 flex-col overflow-hidden border-r border-border"><slot name=sidebar>'),he=d("<header part=header class=shrink-0><slot name=header>"),me=d("<slot name=empty>"),ve=d('<div class="absolute bottom-4 left-1/2 flex w-full max-w-3xl -translate-x-1/2 justify-center px-5">'),fe=d('<div class="shrink-0 px-4"><div class="mx-auto flex max-w-3xl items-center gap-2 pb-2"><slot name=composer-actions>'),xe=d("<slot name=composer>"),pe=d('<div part=footer class="shrink-0 px-4 pb-3"><div class="mx-auto max-w-3xl text-center text-xs text-muted-foreground"><slot name=footer>'),be=d('<div><div class="flex h-full min-w-0 flex-1 flex-col"><div class="relative flex-1 overflow-hidden"></div><div class="shrink-0 px-4 pb-4"><div class="mx-auto max-w-3xl">'),we=d('<div class="text-sm font-semibold text-foreground">'),ke=d("<div class=space-y-1.5>"),Ce=d('<header part=header-bar class="flex h-14 shrink-0 items-center justify-between border-b border-border px-5"><div class="flex items-center gap-2"><slot name=header-start></slot></div><div class="flex items-center gap-2"><slot name=header-end>'),Se=d("<div>");function Te(e){const R=D(),k=()=>e.actionsReveal==="hover"?"hover":"always",V=E(()=>e.messages.map(n=>n.id));let h;const p=te({emit:n=>{var a;return(a=e.onMessageAction)==null?void 0:a.call(e,n)},target:()=>h}),[F,x]=M(e.value??""),[b,w]=M([]),C=()=>typeof e.value=="string"?e.value:F();U(()=>{const n=e.value;n!=null&&typeof n!="string"&&x(n)});const S=n=>{var a;x(n),(a=e.onValueChange)==null||a.call(e,n)},T=()=>{w([]),e.value===void 0&&x("")},y=()=>{var n;(n=e.onSubmit)==null||n.call(e,{value:O(P(C())),attachments:b()}),T()},I=n=>{var a,c;(e.suggestionMode??"submit")==="fill"?(S(n),(a=e.onSuggestionClick)==null||a.call(e,n)):((c=e.onSubmit)==null||c.call(e,{value:n,attachments:b()}),T())},H=()=>!!(e.chatTitle||e.models||e.context||e.headerStart||e.headerEnd),q=()=>e.persistSuggestions||e.messages.length===0?e.suggestions:void 0,z=()=>e.scrollButton!==!1;return G(()=>{var n;(n=e.controllerRef)==null||n.call(e,{focus:a=>{var c;return(c=h?.querySelector('[contenteditable]:not([contenteditable="false"]), textarea'))==null?void 0:c.focus(a)},clear:()=>{var a;x(""),w([]),(a=e.onValueChange)==null||a.call(e,"")},send:()=>y(),scrollToBottom:a=>{const c=h?.querySelector(".overflow-y-auto");c?.scrollTo({top:c.scrollHeight,behavior:a??"smooth"})}})}),r(N,{get proseSize(){return e.proseSize},get codeTheme(){return e.codeTheme},get codeHighlight(){return e.codeHighlight!==!1},get portalMount(){return R.portalMount()},get children(){var n=be(),a=n.firstChild,c=a.firstChild,$=c.nextSibling,B=$.firstChild;return J(t=>h=t,n),i(n,r(u,{get when(){return e.sidebar},get children(){var t=ge(),o=t.firstChild;return o._$owner=g(),t}}),a),i(a,r(u,{get when(){return e.headerFull},get fallback(){return r(u,{get when(){return H()},get children(){var t=Ce(),o=t.firstChild,l=o.firstChild,m=o.nextSibling,v=m.firstChild;return l._$owner=g(),i(o,r(u,{get when(){return e.chatTitle},get children(){var s=we();return i(s,()=>e.chatTitle),s}}),null),i(m,r(u,{get when(){return e.models},get children(){return r(re,{get models(){return e.models},get currentModelId(){var s;return e.currentModel??((s=e.models[0])==null?void 0:s.id)??""},onModelChange:s=>{var f;return(f=e.onModelChange)==null?void 0:f.call(e,s)}})}}),v),i(m,r(u,{get when(){return e.context},get children(){return r(ne,{get usedTokens(){return e.context.usedTokens},get maxTokens(){return e.context.maxTokens},get inputTokens(){return e.context.inputTokens},get outputTokens(){return e.context.outputTokens},get estimatedCost(){return e.context.estimatedCost},get children(){return[r(ae,{}),r(le,{get children(){return[r(se,{}),r(oe,{get children(){var s=ke();return i(s,r(ie,{}),null),i(s,r(ce,{}),null),s}}),r(ue,{})]}})]}})}}),v),v._$owner=g(),t}})},get children(){var t=he(),o=t.firstChild;return o._$owner=g(),t}}),c),i(c,r(Q,{class:"h-full px-4 py-3",get children(){return[r(W,{class:"mx-auto w-full max-w-3xl space-y-4",get children(){return[r(u,{get when(){return K(()=>!!e.empty)()&&e.messages.length===0},get children(){var t=me();return t._$owner=g(),t}}),r(L,{get each(){return V()},children:(t,o)=>r(u,{get when(){return e.messages[o()]},children:l=>{const m=r(Z,{get parts(){return l().parts},get cardTypes(){return e.cardTypes},get cardSchemas(){return e.cardSchemas},get isUser(){return l().role==="user"},get markdown(){return l().role==="assistant"},get actions(){return l().actions},get actionsReveal(){return k()},get activeFeedback(){return p.resolveFeedback(l())},get copied(){return p.isCopied(l().id)},onAction:s=>p.handleAction(l(),s)}),v=()=>k()==="hover"?"group ":"";return r(u,{get when(){return l().avatar},get fallback(){return r(j,{get role(){return l().role},get class(){return`${v()}${l().role==="user"?"flex-col items-end":"flex-col items-start"}`},children:m})},children:s=>r(j,{get role(){return l().role},get class(){return v()},get children(){return[r(ee,{get src(){return s().src??""},get alt(){return s().alt??""},get fallback(){return s().fallback}}),(()=>{var f=Se();return i(f,m),_(()=>A(f,`flex min-w-0 flex-1 flex-col ${l().role==="user"?"items-end":"items-start"}`)),f})()]}})})}})}),r(X,{})]}}),r(u,{get when(){return z()},get children(){var t=ve();return i(t,r(Y,{class:"shadow-sm"})),t}})]}})),i(a,r(u,{get when(){return e.composerActions},get children(){var t=fe(),o=t.firstChild,l=o.firstChild;return l._$owner=g(),t}}),$),i(B,r(u,{get when(){return e.composer},get fallback(){return r(de,{get value(){return C()},get placeholder(){return e.placeholder},get loading(){return e.loading===!0},get suggestions(){return q()},get attachments(){return b()},get accept(){return e.accept},get onAttachmentsRejected(){return e.onAttachmentsRejected},get search(){return e.search===!0},get voice(){return e.voice===!0},get triggers(){return e.triggers},get kindIcons(){return e.kindIcons},onValueChange:S,onSubmit:y,onSuggestionClick:I,onAttachmentsChange:t=>{var o;w(t),(o=e.onAttachmentsChange)==null||o.call(e,t)},onSearch:()=>{var t;return(t=e.onSearch)==null?void 0:t.call(e)},onVoice:()=>{var t;return(t=e.onVoice)==null?void 0:t.call(e)}})},get children(){var t=xe();return t._$owner=g(),t}})),i(a,r(u,{get when(){return e.footer},get children(){var t=pe(),o=t.firstChild,l=o.firstChild;return l._$owner=g(),t}}),null),_(()=>A(n,`flex h-full bg-background ${e.class??""}`)),n}})}export{Te as C};
@@ -1 +0,0 @@
1
- import{I as m}from"./Icon-b5A8hlHs.js";import{c as o,m as r}from"./define-B_tXMYRm.js";var c=[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]],e=a=>o(m,r(a,{name:"Check",iconNode:c})),f=e;export{f as c};
@@ -1 +0,0 @@
1
- import{I as r}from"./Icon-b5A8hlHs.js";import{c as a,m}from"./define-B_tXMYRm.js";var e=[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]],n=o=>a(r,m(o,{name:"ChevronDown",iconNode:e})),p=n;export{p as c};
@@ -1 +0,0 @@
1
- import{I as o}from"./Icon-b5A8hlHs.js";import{c as a,m as r}from"./define-B_tXMYRm.js";var t=[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]],e=m=>a(o,r(m,{name:"ChevronRight",iconNode:t})),h=e;export{h as c};
@@ -1 +0,0 @@
1
- import{m as ve,s as me,l as x,g as U,k as G,x as te,o as fe,c,E as he,S as b,i as p,d as v,F as be,a as w,b as M,v as re,t as f,w as ye,H as xe,j as V,e as ke}from"./define-B_tXMYRm.js";import{c as F}from"./cn-CU7UAWzk.js";import{B as ne}from"./button-B9okqG73.js";import{c as we}from"./hover-card-6KtXpLwT.js";import{u as Ie,a as $e,C as J,D as Ae}from"./use-card-resolution-DJg32jGH.js";import{e as De}from"./card-routing-BK09BdmL.js";import{x as Re}from"./x-BOhjBeOd.js";import{c as Ce}from"./check-MdLzbxrm.js";var Se=f('<p class="text-sm text-foreground">'),je=f("<div role=radiogroup>"),Ee=f('<div class="flex flex-col gap-2"><label class=sr-only></label><input type=text class="w-full rounded-md border border-input bg-background px-3 py-2 text-sm text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-60">'),Te=f('<div class="flex w-full flex-wrap items-center justify-between gap-2">'),Le=f("<div>"),Me=f('<span class="inline-flex items-center rounded-full bg-[var(--color-primary)] px-1.5 py-0.5 text-[0.625rem] font-medium uppercase leading-none tracking-wide text-[var(--color-primary-foreground,white)]">Recommended'),Ve=f("<img>"),Fe=f('<span aria-hidden=true class="flex h-9 w-9 shrink-0 items-center justify-center rounded-md bg-muted text-sm font-medium text-muted-foreground">'),Oe=f('<img class="max-h-80 max-w-80 rounded-md object-contain">'),_e=f('<span class="h-2 w-2 rounded-full bg-[var(--color-primary)]">'),ze=f('<span class="text-xs font-normal text-muted-foreground">'),qe=f('<span class="ml-auto shrink-0 text-xs font-normal text-muted-foreground">'),He=f('<div role=radio><span aria-hidden=true></span><span class="flex min-w-0 flex-col gap-0.5"><span class="flex items-center gap-2"><span class=truncate>'),Pe=f("<span>"),Be=f('<span class="ml-auto text-xs font-normal text-muted-foreground">'),Ue=f('<div class="flex items-center gap-3 rounded-lg border border-input bg-accent px-3 py-2.5 text-sm font-medium text-accent-foreground">'),Ge=f("<span>Other: ");const Je="choice",A="__other__",K="Other\u2026";function Ke(n){if(!Array.isArray(n)||n.length===0)return{options:[],error:"This card couldn't be displayed."};const a=new Set,t=[];for(const l of n){if(!l||typeof l!="object")continue;const o=l;if(typeof o.id!="string"||o.id.length===0||typeof o.label!="string"||o.label.length===0)continue;if(a.has(o.id)){console.warn(`[kai-choice] duplicate option id "${o.id}" ignored`);continue}a.add(o.id);const u=o.media&&typeof o.media=="object"?{image:typeof o.media.image=="string"?o.media.image:void 0,imageAlt:typeof o.media.imageAlt=="string"?o.media.imageAlt:void 0,icon:typeof o.media.icon=="string"?o.media.icon:void 0}:void 0;t.push({id:o.id,label:o.label,description:typeof o.description=="string"?o.description:void 0,media:u,meta:typeof o.meta=="string"?o.meta:void 0,recommended:o.recommended===!0,disabled:o.disabled===!0,payload:o.payload})}return t.length===0?{options:[],error:"This card couldn't be displayed."}:{options:t}}function Ne(n){return n?n===!0?{label:K,placeholder:void 0}:typeof n=="object"?{label:typeof n.label=="string"&&n.label.length>0?n.label:K,placeholder:typeof n.placeholder=="string"?n.placeholder:void 0}:null:null}function oe(n,a,t){const l=n.length;if(l===0)return a;for(let o=1;o<=l;o+=1){const u=((a+t*o)%l+l)%l;if(!n[u].disabled)return u}return a}function ie(n){return n.findIndex(a=>!a.disabled)}function Qe(n){const a=ve({cardId:"kai-choice"},n),[t]=me(a,["data","cardId","heading","host","hostElement","class","resolution","value","defaultValue","disabled","onValueChange","controllerRef"]),l=Ie(),o=ye(),u=e=>{const r=t.host??l;r?r.emit(e):t.hostElement&&De(t.hostElement,e)},d=x(()=>{var e;return Ke((e=t.data)==null?void 0:e.options)}),h=x(()=>d().error===void 0),I=x(()=>d().error??""),k=x(()=>d().options),E=x(()=>{var e;return Ne((e=t.data)==null?void 0:e.allowOther)}),D=x(()=>{const e=E();return e?[...k(),{id:A,label:e.label}]:k()}),m=$e({prop:()=>t.resolution,data:()=>t.data}),O=x(()=>{const e=m.resolution();return e&&e.kind==="action"?e.action:void 0}),[q,R]=U(0),[ae,N]=U(n.defaultValue),L=x(()=>t.value??ae()),de=e=>{var r;L()!==e&&(N(e),(r=t.onValueChange)==null||r.call(t,e))},[H,Q]=U(""),$=()=>t.disabled===!0;let _,T;const W=x(()=>L()===A);G(te(()=>t.data,()=>{N(t.defaultValue),Q(""),R(Math.max(0,ie(D())))}));const le=x(()=>{var e;const r=m.resolution();return!r||r.kind!=="action"?void 0:r.action===A?{other:!0,text:((e=r.payload)==null?void 0:e.text)??""}:{other:!1,opt:k().find(s=>s.id===r.action),id:r.action}});G(te(h,e=>{u(e?{kind:"ready",cardId:t.cardId}:{kind:"error",cardId:t.cardId,message:I()})})),G(()=>{const e=t.hostElement;if(!e)return;const r=O();r!==void 0?e.setAttribute("data-kai-resolved",r):e.removeAttribute("data-kai-resolved")});const se=e=>e.id===A,P=e=>{m.isResolved()||$()||e.disabled||(de(e.id),se(e)&&queueMicrotask(()=>T?.focus()))},ce=x(()=>{if(m.isResolved()||$())return!1;const e=L();return e===void 0?!1:e===A?H().trim().length>0:!0}),ue=()=>{var e;return((e=t.data)==null?void 0:e.submitLabel)??"Submit"},B=()=>{if(m.isResolved()||$())return;const e=L();if(e===void 0)return;if(e===A){const s=H().trim();if(s.length===0)return;u({kind:"action",cardId:t.cardId,action:A,payload:{text:s}}),m.setLocal({kind:"action",action:A,payload:{text:s}});return}const r=k().find(s=>s.id===e);r&&(u({kind:"action",cardId:t.cardId,action:r.id,...r.payload!==void 0?{payload:r.payload}:{}}),m.setLocal({kind:"action",action:r.id,...r.payload!==void 0?{payload:r.payload}:{}}))},X=()=>{m.isResolved()||(u({kind:"dismiss",cardId:t.cardId}),m.setLocal({kind:"dismissed"}))},Y=()=>u({kind:"reopen",cardId:t.cardId}),z=(e,r)=>{var s;const i=_?.querySelectorAll('[role="radio"]');(s=i?.[e])==null||s.focus(r)};fe(()=>{var e;(e=t.controllerRef)==null||e.call(t,{focus:r=>{W()&&T?T.focus(r):z(q(),r)},select:r=>{const s=D(),i=s.findIndex(y=>y.id===r);i!==-1&&(R(i),P(s[i]))},send:()=>B(),dismiss:()=>X(),reopen:()=>Y()})});const pe=e=>{if(m.isResolved()||$())return;const r=D(),s=q();if(e.key==="ArrowDown"||e.key==="ArrowRight"){e.preventDefault();const i=oe(r,s,1);R(i),z(i)}else if(e.key==="ArrowUp"||e.key==="ArrowLeft"){e.preventDefault();const i=oe(r,s,-1);R(i),z(i)}else if(e.key==="Home"){e.preventDefault();const i=Math.max(0,ie(r));R(i),z(i)}else if(e.key===" "||e.key==="Enter"){e.preventDefault();const i=r[s];i&&P(i)}},ge=()=>{var e;return t.heading??((e=t.data)==null?void 0:e.prompt)??"Choose an option"},Z=`kai-choice-prompt-${o}`,ee=`kai-choice-other-${o}`;return c(b,{get when(){return h()},get fallback(){return c(J,{get heading(){return t.heading},get errorMessage(){return I()}})},get children(){return c(he,{fallback:()=>(u({kind:"error",cardId:t.cardId,message:"The card failed to render."}),c(J,{get heading(){return t.heading},errorMessage:"The card failed to render."})),get children(){return c(b,{get when(){return!m.isDeferred()},get fallback(){return c(Ae,{type:Je,get title(){return t.heading},onReopen:Y})},get children(){return c(J,{get heading(){return t.heading},get children(){var e=Le();return p(e,c(b,{get when(){var r;return(r=t.data)==null?void 0:r.prompt},get children(){var r=Se();return v(r,"id",Z),p(r,()=>{var s;return(s=t.data)==null?void 0:s.prompt}),r}}),null),p(e,c(b,{get when(){return!m.isResolved()},get fallback(){return c(et,{get choice(){return le()},get optimistic(){return m.isOptimistic()}})},get children(){return[(()=>{var r=je();r.$$keydown=pe;var s=_;return typeof s=="function"?re(s,r):_=r,p(r,c(be,{get each(){return D()},children:(i,y)=>{const g=()=>L()===i.id,C=()=>!i.disabled&&!$()&&y()===q()&&!m.isResolved(),S=`kai-choice-desc-${o}-${i.id}`,j=()=>!!i.description;return c(Ze,{opt:i,get checked(){return g()},get tabStop(){return C()},descId:S,get hasDesc(){return j()},onPick:()=>{R(y()),P(i)},onFocus:()=>R(y())})}})),w(i=>{var y,g=ge(),C=(y=t.data)!=null&&y.prompt?Z:void 0,S=$()?"true":void 0,j=F("divide-y divide-border overflow-hidden rounded-lg border border-input",$()&&"cursor-not-allowed opacity-60");return g!==i.e&&v(r,"aria-label",i.e=g),C!==i.t&&v(r,"aria-describedby",i.t=C),S!==i.a&&v(r,"aria-disabled",i.a=S),j!==i.o&&M(r,i.o=j),i},{e:void 0,t:void 0,a:void 0,o:void 0}),r})(),c(b,{get when(){return W()},get children(){var r=Ee(),s=r.firstChild,i=s.nextSibling;v(s,"for",ee),p(s,()=>{var g;return((g=E())==null?void 0:g.label)??K}),i.$$keydown=g=>{g.key==="Enter"&&(g.preventDefault(),B())},i.$$input=g=>Q(g.currentTarget.value);var y=T;return typeof y=="function"?re(y,i):T=i,v(i,"id",ee),w(g=>{var C,S=$(),j=(C=E())==null?void 0:C.placeholder;return S!==g.e&&(i.disabled=g.e=S),j!==g.t&&v(i,"placeholder",g.t=j),g},{e:void 0,t:void 0}),w(()=>i.value=H()),r}}),(()=>{var r=Te();return p(r,c(b,{get when(){var s;return((s=t.data)==null?void 0:s.dismissible)===!0},get children(){return c(ne,{type:"button",variant:"ghost",size:"icon-sm","aria-label":"Dismiss",onClick:X,get children(){return c(Re,{size:16,"aria-hidden":"true"})}})}}),null),p(r,c(ne,{type:"button",class:"ml-auto",get disabled(){return!ce()},onClick:B,get children(){return ue()}}),null),r})()]}}),null),w(()=>M(e,F("flex flex-col gap-3",t.class))),e}})}})}})}})}function We(){return Me()}function Xe(n){return(()=>{var a=Ve();return w(t=>{var l=n.media.image,o=n.media.imageAlt??"",u=F("shrink-0 rounded-md object-cover",n.class);return l!==t.e&&v(a,"src",t.e=l),o!==t.t&&v(a,"alt",t.t=o),u!==t.a&&M(a,t.a=u),t},{e:void 0,t:void 0,a:void 0}),a})()}function Ye(n){return(()=>{var a=Fe();return p(a,()=>n.name.slice(0,2)),a})()}function Ze(n){return(()=>{var a=He(),t=a.firstChild,l=t.nextSibling,o=l.firstChild,u=o.firstChild;return xe(a,"focus",n.onFocus),a.$$click=()=>!n.opt.disabled&&n.onPick(),p(a,c(b,{get when(){var d;return(d=n.opt.media)==null?void 0:d.image},get children(){return c(we,{openDelay:150,class:"p-1 w-auto",placement:"right-start",get trigger(){return c(Xe,{get media(){return n.opt.media},class:"h-9 w-9"})},get children(){var d=Oe();return w(h=>{var I=n.opt.media.image,k=n.opt.media.imageAlt??"";return I!==h.e&&v(d,"src",h.e=I),k!==h.t&&v(d,"alt",h.t=k),h},{e:void 0,t:void 0}),d}})}}),t),p(a,c(b,{get when(){var d;return V(()=>{var h;return!((h=n.opt.media)!=null&&h.image)})()&&((d=n.opt.media)==null?void 0:d.icon)},get children(){return c(Ye,{get name(){return n.opt.media.icon}})}}),t),p(t,c(b,{get when(){return n.checked},get children(){return _e()}})),p(u,()=>n.opt.label),p(o,c(b,{get when(){return n.opt.recommended},get children(){return c(We,{})}}),null),p(l,c(b,{get when(){return n.opt.description},get children(){var d=ze();return p(d,()=>n.opt.description),w(()=>v(d,"id",n.descId)),d}}),null),p(a,c(b,{get when(){return n.opt.meta},get children(){var d=qe();return p(d,()=>n.opt.meta),d}}),null),w(d=>{var h=n.checked,I=n.opt.disabled?"true":void 0,k=n.hasDesc?n.descId:void 0,E=n.opt.id,D=n.opt.disabled?-1:n.tabStop?0:-1,m=F("flex items-center gap-3 px-3 py-2.5 text-sm outline-none transition-colors focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-ring",n.opt.disabled?"cursor-not-allowed opacity-60 text-foreground":"cursor-pointer hover:bg-muted/50",n.checked?"bg-accent font-medium text-accent-foreground":"text-foreground"),O=F("flex h-[1.125rem] w-[1.125rem] shrink-0 items-center justify-center rounded-full border-[1.5px] transition-colors",n.checked?"border-[var(--color-primary)]":"border-input bg-background");return h!==d.e&&v(a,"aria-checked",d.e=h),I!==d.t&&v(a,"aria-disabled",d.t=I),k!==d.a&&v(a,"aria-describedby",d.a=k),E!==d.o&&v(a,"data-option-id",d.o=E),D!==d.i&&v(a,"tabindex",d.i=D),m!==d.n&&M(a,d.n=m),O!==d.s&&M(t,d.s=O),d},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0,n:void 0,s:void 0}),a})()}function et(n){const a=n.choice;return(()=>{var t=Ue();return p(t,c(Ce,{size:16,"aria-hidden":"true"}),null),p(t,c(b,{get when(){return!a.other},get fallback(){return(()=>{var l=Ge();return l.firstChild,p(l,(()=>{var o=V(()=>!!a.other);return()=>o()?a.text:""})(),null),l})()},get children(){return[(()=>{var l=Pe();return p(l,(()=>{var o=V(()=>!a.other);return()=>{var u;return o()?((u=a.opt)==null?void 0:u.label)??a.id:""}})()),l})(),c(b,{get when(){var l;return V(()=>!a.other)()&&((l=a.opt)==null?void 0:l.meta)},get children(){var l=Be();return p(l,(()=>{var o=V(()=>!a.other);return()=>{var u;return o()?(u=a.opt)==null?void 0:u.meta:""}})()),l}})]}}),null),w(()=>v(t,"role",n.optimistic?"status":void 0)),t})()}ke(["keydown","input","click"]);export{Qe as C};
@@ -1 +0,0 @@
1
- import{I as c}from"./Icon-b5A8hlHs.js";import{c as m,m as o}from"./define-B_tXMYRm.js";var a=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]],e=r=>m(c,o(r,{name:"Circle",iconNode:a})),i=e;export{i as c};
@@ -1 +0,0 @@
1
- import{I as c}from"./Icon-b5A8hlHs.js";import{c as r,m as a}from"./define-B_tXMYRm.js";var e=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]],o=m=>r(c,a(m,{name:"CircleCheck",iconNode:e})),i=o;export{i as c};
@@ -1 +0,0 @@
1
- import{I as a}from"./Icon-b5A8hlHs.js";import{c as m,m as c}from"./define-B_tXMYRm.js";var e=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m15 9-6 6",key:"1uzhvr"}],["path",{d:"m9 9 6 6",key:"z0biqf"}]],o=r=>m(a,c(r,{name:"CircleX",iconNode:e})),i=o;export{i as c};
@@ -1 +0,0 @@
1
- import{s as m,q as c,m as o,i as g,y as H,G as T,c as L,S as z,t as l}from"./define-B_tXMYRm.js";import{c as h}from"./cn-CU7UAWzk.js";const E={bash:()=>import("./bash-InADTalH.js"),javascript:()=>import("./javascript-C25yR2R2.js"),typescript:()=>import("./typescript-RycA9KXf.js"),tsx:()=>import("./tsx-B8rCNbgL.js"),html:()=>import("./html-CPZ3oZQ7.js"),css:()=>import("./css-M7EaDHN_.js"),json:()=>import("./json-DxJze_jm.js"),vue:()=>import("./vue-BmIZj4XD.js"),svelte:()=>import("./svelte--5p79yCD.js")},G={"github-dark-dimmed":()=>import("./github-dark-dimmed-DUshB20C.js"),"github-light":()=>import("./github-light-JYsPkUQd.js")},J={js:"javascript",ts:"typescript",jsx:"tsx",sh:"bash",shell:"bash"},f="github-dark-dimmed";let M={...E},P={...G},R={...J},u=null;const x=new Set,b=new Set;function $(){return u||(u=(async()=>{const[{createHighlighterCore:t},{createJavaScriptRegexEngine:e}]=await Promise.all([import("./core-AYMC6_lb.js"),import("./engine-javascript-vq0WuIJl.js")]);return t({themes:[],langs:[],engine:e()})})()),u}function v(t){return R[t]??t}async function q(t,e){const a=v(e);if(x.has(a))return!0;const r=M[a];return r?(await t.loadLanguage(r()),x.add(a),!0):!1}async function w(t,e){if(b.has(e))return!0;const a=P[e];return a?(await t.loadTheme(a()),b.add(e),!0):!1}function A(t){return t.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}function i(t){return`<pre><code>${A(t)}</code></pre>`}async function B(t,e,a){if(!t)return i(t);try{const r=await $();if(!await q(r,e))return i(t);const s=await w(r,a)?a:await w(r,f)?f:null;return s?r.codeToHtml(t,{lang:v(e),theme:s}):i(t)}catch{return i(t)}}var D=l("<div>"),F=l("<div tabindex=0>"),K=l("<div tabindex=0><pre><code>");function N(t){const[e,a]=m(t,["children","class"]);return(()=>{var r=D();return c(r,o({get class(){return h("not-prose flex w-full flex-col overflow-clip border","border-border bg-card text-card-foreground","rounded-[var(--kai-code-radius,0.75rem)]",e.class)}},a),!1,!0),g(r,()=>e.children),r})()}function U(t){const[e,a]=m(t,["code","language","theme","class"]),r=H(),s=()=>e.language??"tsx",y=()=>e.theme??r.codeTheme(),j=()=>r.codeHighlight(),[d]=T(()=>j()?{code:e.code,lang:s(),theme:y()}:null,n=>B(n.code,n.lang,n.theme)),S=()=>{switch(r.proseSize()){case"xs":return"text-[11px]";case"sm":return"text-[13px]";case"base":return"text-sm";case"lg":return"text-base"}},p=()=>h("w-full overflow-x-auto [&>pre]:px-4 [&>pre]:py-4",S(),e.class);return L(z,{get when(){return d()},get fallback(){return(()=>{var n=K(),k=n.firstChild,C=k.firstChild;return c(n,o({get class(){return p()}},a),!1,!0),g(C,()=>e.code),n})()},get children(){var n=F();return c(n,o({get class(){return p()},get innerHTML(){return d()}},a),!1,!1),n}})}export{N as C,U as a};
@@ -1 +0,0 @@
1
- import{s as c,g as k,w as I,c as y,q as p,m as u,i as v,j as h,a as R,N as q,b as z,t as g,z as A,A as E}from"./define-B_tXMYRm.js";import{c as C}from"./cn-CU7UAWzk.js";var N=g("<div>"),P=g("<button>"),j=g("<div><div>");const w=A(),m=()=>{const o=E(w);if(!o)throw new Error("Collapsible parts must be used within <Collapsible>");return o};function B(o){var n;const[e,l]=c(o,["open","defaultOpen","onOpenChange","disabled","controllerRef","children","class"]),[r,a]=k(e.defaultOpen??!1),s=()=>e.open!==void 0,t=()=>s()?!!e.open:r(),i=()=>!!e.disabled,f=d=>{var b;t()!==d&&(s()||a(d),(b=e.onOpenChange)==null||b.call(e,d))},x=()=>{i()||f(!t())};(n=e.controllerRef)==null||n.call(e,{open:t,setOpen:f});const O=I();return y(w.Provider,{value:{open:t,toggle:x,contentId:O,disabled:i},get children(){var d=N();return p(d,u({get class(){return e.class}},l,{get"data-expanded"(){return t()?"":void 0},get"data-closed"(){return t()?void 0:""},get"data-state"(){return t()?"open":"closed"}}),!1,!0),v(d,()=>e.children),d}})}function S(o){const n=m(),[e,l]=c(o,["children","class","as","onClick"]),r=()=>({type:"button","aria-expanded":n.open(),"aria-controls":n.contentId,disabled:n.disabled()||void 0,"data-expanded":n.open()?"":void 0,"data-closed":n.open()?void 0:"","data-state":n.open()?"open":"closed",onClick:a=>{n.disabled()||(typeof e.onClick=="function"&&e.onClick(a),n.toggle())},class:e.class,...l});return h(()=>h(()=>!!e.as)()?e.as(r()):(()=>{var a=P();return p(a,u(r),!1,!0),v(a,()=>e.children),a})())}function _(o){const n=m(),[e,l]=c(o,["children","class"]);return(()=>{var r=j(),a=r.firstChild;return p(r,u(l,{get id(){return n.contentId},get"data-expanded"(){return n.open()?"":void 0},get"data-closed"(){return n.open()?void 0:""},get class(){return C("grid transition-[grid-template-rows] duration-200 ease-out",n.open()?"grid-rows-[1fr]":"grid-rows-[0fr]")}}),!1,!0),v(a,()=>e.children),R(s=>{var t=!n.open(),i=C("overflow-hidden",e.class);return t!==s.e&&q(r,"inert",s.e=t),i!==s.t&&z(a,s.t=i),s},{e:void 0,t:void 0}),r})()}export{B as C,S as a,_ as b};
@@ -1,69 +0,0 @@
1
- import{g as _,w as Ye,l as J,k as de,o as ue,x as Ae,h as Je,i as A,v as Ne,a as j,d as N,b as V,n as Z,c as O,F as Le,S as P,t as S,e as Ve}from"./define-B_tXMYRm.js";import{c as Q}from"./cn-CU7UAWzk.js";import{u as Ze,c as Qe,a as et}from"./overlay-CV7z2YuX.js";function B(t){if(t==null)return[];if(typeof t=="string")return t.length?[{type:"text",text:t}]:[];const n=[];for(const l of t)if(l.type==="text"){if(!l.text)continue;const i=n[n.length-1];i&&i.type==="text"?n[n.length-1]={type:"text",text:i.text+l.text}:n.push({type:"text",text:l.text})}else n.push({type:"entity",entity:l.entity});return n}function ee(t,n){let l="";for(const i of t)i.type==="text"?l+=i.text:l+=i.entity.promptText??i.entity.label;return l}function pe(t){return t.filter(n=>n.type==="entity").map(n=>n.entity)}function te(t){return t.every(n=>n.type==="text"&&n.text.length===0)}const C="\u200B",fe="data-kai-entity",he=new WeakMap;function z(t){return!!t&&t.nodeType===1&&t.hasAttribute(fe)}function ne(t){return t.ownerDocument.createTreeWalker(t,NodeFilter.SHOW_TEXT,{acceptNode(n){let l=n.parentElement;for(;l&&l!==t;){if(l.hasAttribute(fe))return NodeFilter.FILTER_REJECT;l=l.parentElement}return NodeFilter.FILTER_ACCEPT}})}function tt(t){switch(t){case"skill":return"/";case"agent":return"@";default:return""}}function $e(t){const n=l=>`<svg viewBox="0 0 24 24" width="1em" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">${l}</svg>`;switch(t){case"agent":return n('<rect x="4" y="8" width="16" height="12" rx="3"/><path d="M12 4.5V8M9.5 13.5v1.5M14.5 13.5v1.5"/><circle cx="12" cy="3" r="1.2"/>');case"plugin":return n('<path d="M9 2v4M15 2v4M6 6h12v5a6 6 0 0 1-12 0zM12 17v5"/>');default:return""}}function Ie(t,n,l){const i=t.createElement("span");i.setAttribute(fe,""),i.setAttribute("contenteditable","false"),i.dataset.kind=n.kind,i.dataset.id=n.id,i.className="kai-composer-pill";const u=tt(n.kind);if(u){const s=t.createElement("span");s.className="kai-composer-pill-sigil",s.setAttribute("aria-hidden","true"),s.textContent=u,i.appendChild(s)}else{const s=n.icon??l?.[n.kind];if(s){const p=t.createElement("img");p.src=s,p.alt="",p.className="kai-composer-pill-icon",i.appendChild(p)}else{const p=$e(n.kind);if(p){const f=t.createElement("span");f.className="kai-composer-pill-icon kai-composer-pill-glyph",f.setAttribute("aria-hidden","true"),f.innerHTML=p,i.appendChild(f)}}}return i.appendChild(t.createTextNode(n.label)),he.set(i,n),i}function L(t){const n=[],l=t.childNodes;return l.forEach((i,u)=>{if(z(i)){const s=he.get(i),p=i;n.push({type:"entity",entity:s??{kind:p.dataset.kind??"",id:p.dataset.id??"",label:p.textContent??""}})}else if(i.nodeType===1&&i.tagName==="BR"){if(u===l.length-1)return;n.push({type:"text",text:`
2
- `})}else i.nodeType===3&&n.push({type:"text",text:(i.textContent??"").split(C).join("")})}),B(n)}function re(t,n,l=document,i){t.textContent="";for(const u of n)u.type==="text"?t.appendChild(l.createTextNode(u.text)):(t.appendChild(Ie(l,u.entity,i)),t.appendChild(l.createTextNode(C)))}function nt(t,n,l){if(n<0||n>t.length)return null;for(let i=n-1;i>=0;i--){const u=t[i];if(/\s/.test(u))return null;if(l.includes(u))return i===0||/\s/.test(t[i-1])?{char:u,query:t.slice(i+1,n),start:i}:null}return null}function rt(t,n,l){if(!l.length)return null;const i=l.map(p=>p.char),u=nt(t,n,i);if(!u)return null;const s=l.find(p=>p.char===u.char);return s?{def:s,query:u.query,start:u.start}:null}function ot(t){return t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function it(t,n){const l=[];for(const s of n){let p,f;typeof s=="string"?(p=new RegExp(ot(s),"gi"),f=void 0):(p=new RegExp(s.pattern,s.flags??"gi"),f=s.class),p.lastIndex=0;let v;for(;(v=p.exec(t))!==null;){const x=v.index,h=x+v[0].length;if(h===x){p.lastIndex=x+1;continue}l.push({start:x,end:h,class:f})}}l.sort((s,p)=>s.start-p.start);const i=[];let u=-1;for(const s of l)s.start>=u&&(i.push(s),u=s.end);return i}function lt(){try{return typeof CSS<"u"&&typeof CSS.highlights<"u"&&typeof Highlight<"u"}catch{return!1}}const at="kai-composer-highlight";function st(t,n,l,i=at){if(!lt())return;const u=CSS.highlights;if(n.length===0){u.delete(i);return}const s=[];let p=0;const f=t.ownerDocument,v=ne(t);let x=v.nextNode();for(;x;){const w=x.textContent??"",g=[];for(let y=0;y<w.length;y++)w[y]!==l&&g.push(y);if(g.length>0){const y=new Int32Array(g.length);for(let m=0;m<g.length;m++)y[m]=g[m];s.push({node:x,strippedStart:p,strippedToRaw:y}),p+=g.length}x=v.nextNode()}function h(w){let g=0,y=s.length-1;for(;g<=y;){const m=g+y>>1,R=s[m],T=R.strippedStart+R.strippedToRaw.length;if(w<R.strippedStart)y=m-1;else if(w>=T)g=m+1;else{const oe=w-R.strippedStart;return{node:R.node,rawOffset:R.strippedToRaw[oe]}}}if(s.length>0){const m=s[s.length-1];if(w-m.strippedStart===m.strippedToRaw.length)return{node:m.node,rawOffset:m.strippedToRaw[m.strippedToRaw.length-1]+1}}return null}const b=[];for(const w of n){const g=h(w.start),y=h(w.end);if(!g||!y)continue;const m=f.createRange();m.setStart(g.node,g.rawOffset),m.setEnd(y.node,y.rawOffset),b.push(m)}if(b.length===0){u.delete(i);return}const $=new Highlight(...b);u.set(i,$)}function ct(t,n=200){let l=[t],i=0;return{record(u,s){if(s&&i===l.length-1){l[i]=u;return}l=l.slice(0,i+1),l.push(u),l.length>n?l.shift():i++},undo(){return i===0?null:(i--,l[i])},redo(){return i>=l.length-1?null:(i++,l[i])},reset(u){l=[u],i=0},canUndo(){return i>0},canRedo(){return i<l.length-1},size(){return l.length}}}var dt=S("<style>"),ut=S(`<style>
3
- .kai-composer-pill {
4
- display: inline-flex; align-items: center; gap: 0.2rem;
5
- /* middle (not baseline): a flex pill's baseline differs with/without an
6
- icon, which misaligns adjacent pills \u2014 middle aligns them consistently. */
7
- vertical-align: middle; height: 1.5em;
8
- /* Asymmetric margin: a roomier trailing gap (so typed text isn't flush
9
- after a pill) + a smaller leading gap. */
10
- margin: 0 0.3rem 0 0.1rem;
11
- border-radius: 0.375rem;
12
- font-weight: 500; white-space: nowrap; user-select: none; cursor: default;
13
- box-sizing: border-box; line-height: 1;
14
- }
15
- /* Skills + agents: LIGHT \u2014 decorated inline text led by a sigil, NOT a
16
- chip. A distinct colour per kind (overridable); the sigil is dimmer
17
- than the label. (A GUI affords this richer-but-light look; a CLI can't.) */
18
- .kai-composer-pill[data-kind="skill"],
19
- .kai-composer-pill[data-kind="agent"] {
20
- padding: 0 0.1rem; background: transparent;
21
- /* Read like a command, not a title \u2014 lowercase the DISPLAY only; the
22
- entity label + emitted payload keep the consumer's original casing. */
23
- text-transform: lowercase;
24
- }
25
- .kai-composer-pill[data-kind="skill"] { color: var(--kai-pill-skill, #2563eb); }
26
- .kai-composer-pill[data-kind="agent"] { color: var(--kai-pill-agent, #7c3aed); }
27
- /* Brighter hues on dark so they don't muddy against a dark field. The
28
- consumer's --kai-pill-* override still wins (it's the var value); only
29
- the FALLBACK shifts per scheme. */
30
- @media (prefers-color-scheme: dark) {
31
- .kai-composer-pill[data-kind="skill"] { color: var(--kai-pill-skill, #6ea8fe); }
32
- .kai-composer-pill[data-kind="agent"] { color: var(--kai-pill-agent, #c4a7fc); }
33
- }
34
- .kai-composer-pill-sigil { opacity: 0.6; font-weight: 600; }
35
- /* Plugins (and any other/unknown kind): the richer CHIP \u2014 background +
36
- icon \u2014 so a composite bundle reads differently at a glance. */
37
- .kai-composer-pill:not([data-kind="skill"]):not([data-kind="agent"]) {
38
- padding: 0 0.4rem;
39
- background-color: color-mix(in srgb, currentColor 10%, transparent);
40
- }
41
- /* Selected (caret arrowed onto the pill): a highlight box, like Claude
42
- Code web. Tinted by the pill's own colour via currentColor. */
43
- .kai-composer-pill[data-selected] {
44
- background-color: color-mix(in srgb, currentColor 18%, transparent);
45
- box-shadow: 0 0 0 1px color-mix(in srgb, currentColor 30%, transparent);
46
- }
47
- /* Fixed height + an icon never taller than the box \u2192 iconed and iconless
48
- pills are exactly the same height (no baseline shift in the line). */
49
- .kai-composer-pill-icon { width: 1em; height: 1em; flex-shrink: 0; }
50
- img.kai-composer-pill-icon { border-radius: 9999px; object-fit: cover; }
51
- .kai-composer-pill-glyph { display: inline-flex; align-items: center; justify-content: center; opacity: 0.8; }
52
- .kai-composer-pill-glyph svg { width: 1em; height: 1em; display: block; }
53
- /* The editable is the containing block for the placeholder pseudo-element. */
54
- [data-kai-composer-editable] { position: relative; }
55
- /* While a pill is arrow-selected the pill IS the selection, so hide the text
56
- caret so a blinking cursor doesn't sit beside the highlight box. Returns
57
- the moment the pill selection clears (arrow off, type, click, backspace). */
58
- [data-kai-composer-editable][data-pill-selected] { caret-color: transparent; }
59
- /* Placeholder via pseudo-element \u2014 exempt from axe color-contrast like a
60
- native &lt;textarea> placeholder. position:absolute (with auto offsets =
61
- its static text-origin spot) takes it OUT of flow, so the caret sits at
62
- the START of the field instead of after the placeholder text. */
63
- [data-kai-composer-editable].kai-composer-empty::before {
64
- content: attr(data-placeholder);
65
- position: absolute;
66
- color: var(--color-muted-foreground, #9ca3af);
67
- pointer-events: none;
68
- }
69
- `),pt=S("<div class=relative><div data-kai-composer-editable role=textbox aria-multiline=true>"),ft=S("<div role=listbox aria-label=Suggestions style=position:fixed>"),ht=S('<div class="px-3 pt-2 pb-1 text-xs font-medium text-muted-foreground select-none">'),gt=S('<span class="text-muted-foreground truncate min-w-0">'),mt=S('<button role=option><span class="font-medium whitespace-nowrap shrink-0">'),kt=S('<span class="kai-composer-pill-glyph w-4 h-4 shrink-0"aria-hidden=true>'),yt=S('<img alt class="w-4 h-4 rounded object-cover shrink-0">'),vt=S("<div>");function E(t){var n;const l=t.getRootNode();return typeof ShadowRoot<"u"&&l instanceof ShadowRoot&&typeof l.getSelection=="function"?l.getSelection():((n=t.ownerDocument)==null?void 0:n.getSelection())??null}function Oe(t){let n="";const l=ne(t);let i=l.nextNode();for(;i;)n+=(i.textContent??"").split(C).join(""),i=l.nextNode();return n}function ge(t){const n=E(t);if(!n||n.rangeCount===0)return 0;const l=n.getRangeAt(0);if(!l.collapsed)return 0;const{startContainer:i,startOffset:u}=l;let s=0;const p=ne(t);let f=p.nextNode();for(;f;){if(f===i){const v=(f.textContent??"").slice(0,u);return s+=v.split(C).join("").length,s}s+=(f.textContent??"").split(C).join("").length,f=p.nextNode()}return s}function xt(t){const n=t.ownerDocument,l=E(t);if(!l||l.rangeCount===0)return null;const i=l.getRangeAt(0).cloneRange();i.collapse(!0);const u=i.getClientRects();if(u.length>0&&(u[0].width>0||u[0].height>0))return u[0];const s=n.createElement("span");s.textContent="\u200B",s.style.position="absolute",s.style.visibility="hidden",i.insertNode(s);const p=s.getBoundingClientRect();return s.remove(),p.width>0||p.height>0?p:null}function bt(t,n){const l=E(t);if(!l)return;const i=t.ownerDocument.createRange(),u=ne(t);let s=n,p=u.nextNode(),f=!1;for(;p;){const v=p.textContent??"",x=v.split(C).join("").length;if(s<=x){let h=0,b=0;for(;h<v.length&&b<s;)v[h]!==C&&b++,h++;for(;h<v.length&&v[h]===C;)h++;i.setStart(p,h),f=!0;break}s-=x,p=u.nextNode()}f?i.collapse(!0):(i.selectNodeContents(t),i.collapse(!1)),l.removeAllRanges(),l.addRange(i)}function wt(t){let n;const[l,i]=_(),u=`kai-composer-highlight-${Ye()}`,[s,p]=_(te(B(t.value))),[f,v]=_(null),x=e=>{const r=f();r&&r!==e&&r.removeAttribute("data-selected"),e.setAttribute("data-selected",""),v(e)},h=()=>{const e=f();e&&(e.removeAttribute("data-selected"),v(null))},b=ct({doc:B(t.value),caret:0});let $=0;const w=500,[g,y]=_(null),[m,R]=_(0),T=J(()=>{const e=g();if(!(e!=null&&e.def.items))return[];const r=new Set(pe(L(n)).map(o=>`${o.kind}:${o.id}`)),a=e.query.toLowerCase();return e.def.items.filter(o=>{var c;const d=o.kind??e.def.kind;return r.has(`${d}:${o.id}`)?!1:a===""?!0:o.label.toLowerCase().includes(a)||(((c=o.description)==null?void 0:c.toLowerCase().includes(a))??!1)})}),oe=J(()=>{const e=[];return T().forEach((r,a)=>{let o=e.find(c=>c.group===r.group);o||(o={group:r.group,items:[]},e.push(o)),o.items.push({item:r,index:a})}),e}),ie=J(()=>T().length>0),me=e=>{var r;return e.kind??((r=g())==null?void 0:r.def.kind)??""},Be=e=>{var r;return e.icon??((r=t.kindIcons)==null?void 0:r[me(e)])};de(()=>{const e=T().length;m()>=e&&R(Math.max(0,e-1))});const Me=J(()=>{const e=g();if(!e)return;const r=e.caretRect;return{getBoundingClientRect:()=>r}}),{pos:ke,hidden:qe}=Ze(Me,l,{placement:"bottom-start",gutter:4}),{present:Ke,state:je,setRef:Fe}=Qe(ie);et({enabled:ie,onDismiss:()=>M(),refs:()=>[n,l()]});function M(){var e;g()&&(y(null),(e=t.onTriggerClose)==null||e.call(t))}const q=()=>{const e=L(n);return{doc:e,text:ee(e),entities:pe(e)}};function X(){const e=t.highlights,r=e!=null&&e.length?it(Oe(n),e):[];st(n,r,C,u)}ue(()=>{re(n,B(t.value),n.ownerDocument,t.kindIcons),p(te(L(n))),X(),b.reset({doc:L(n),caret:0})}),de(Ae(()=>t.value,e=>{ee(B(e))!==ee(L(n))&&(h(),re(n,B(e),n.ownerDocument,t.kindIcons),p(te(L(n))),X(),b.reset({doc:L(n),caret:0}))},{defer:!0})),de(Ae(()=>t.highlights,()=>X(),{defer:!0}));function ye(){var e;const r=t.triggers;if(!(r!=null&&r.length)){g()&&M();return}const a=Oe(n),o=ge(n),c=rt(a,o,r);if(c){const d=xt(n);if(d){const k=g();y({def:c.def,query:c.query,start:c.start,caretRect:d}),(!k||k.def.char!==c.def.char||k.query!==c.query)&&((e=t.onTrigger)==null||e.call(t,{char:c.def.char,query:c.query,rect:d}))}}else g()&&M()}const U=e=>{var r;p(te(e.doc)),(r=t.onChange)==null||r.call(t,e),ye(),X()},He=()=>{h();const e=q();U(e);const r=Date.now();b.record({doc:e.doc,caret:ge(n)},r-$<w),$=r},ve=()=>{const e=q();U(e),b.record({doc:e.doc,caret:ge(n)},!1),$=0},xe=e=>{h(),re(n,e.doc,n.ownerDocument,t.kindIcons),bt(n,e.caret),U(q()),$=0},_e=()=>{const e=b.undo();e&&xe(e)},be=()=>{const e=b.redo();e&&xe(e)};let le=!1;const Pe=e=>{var r;le=!0,(r=t.onFocus)==null||r.call(t,e)},ze=e=>{var r;le=!1,h(),(r=t.onBlur)==null||r.call(t,e)};ue(()=>{const e=n.ownerDocument,r=()=>{le&&ye()};e.addEventListener("selectionchange",r),Je(()=>e.removeEventListener("selectionchange",r))}),ue(()=>{var e;(e=t.controllerRef)==null||e.call(t,{focus:r=>n.focus(r),blur:()=>n.blur(),clear:()=>{h(),re(n,[],n.ownerDocument,t.kindIcons),U(q()),b.reset({doc:L(n),caret:0}),$=0},send:()=>{var r;return(r=t.onSubmit)==null?void 0:r.call(t,q())},insertEntity:r=>Ce(r)})});function we(e){const r=g();if(!r)return;const a={kind:e.kind??r.def.kind,id:e.id,label:e.label,icon:e.icon,promptText:e.promptText,data:e.data};Ce(a,{deleteBefore:1+r.query.length}),M()}const Ce=(e,r)=>{var a;const o=n.ownerDocument,c=E(n);if(!c||c.rangeCount===0)return;const d=c.getRangeAt(0);if(r!=null&&r.deleteBefore&&d.collapsed){let G=r.deleteBefore,K=d.startContainer,H=d.startOffset;for(;G>0&&K&&K.nodeType===3;){const Ge=K.textContent??"";for(;H>0&&G>0;)H--,Ge[H]!==C&&G--;if(G>0){const Y=K.previousSibling;if(Y&&Y.nodeType===3)K=Y,H=(Y.textContent??"").length;else break}}const ce=o.createRange();ce.setStart(K,H),ce.setEnd(d.startContainer,d.startOffset),ce.deleteContents()}const k=c.getRangeAt(0);k.collapsed||k.deleteContents();const I=Ie(o,e,t.kindIcons),D=o.createTextNode(C);k.insertNode(D),k.insertNode(I);const se=o.createRange();se.setStartAfter(D),se.collapse(!0),c.removeAllRanges(),c.addRange(se),(a=t.onEntityAdd)==null||a.call(t,e),ve()},W=e=>(e??"").split("").every(r=>r===C),F=e=>!!e&&e.nodeType===Node.TEXT_NODE&&W(e.textContent),Re=e=>{const{startContainer:r,startOffset:a}=e;if(r===n){let o=a-1;for(;F(n.childNodes[o]);)o--;const c=n.childNodes[o];return z(c)?c:null}if(r.nodeType===Node.TEXT_NODE){if(!W((r.textContent??"").slice(0,a)))return null;let o=r.previousSibling;for(;F(o);)o=o.previousSibling;return z(o)?o:null}return null},Te=e=>{const{startContainer:r,startOffset:a}=e;if(r===n){let o=a;for(;F(n.childNodes[o]);)o++;const c=n.childNodes[o];return z(c)?c:null}if(r.nodeType===Node.TEXT_NODE){if(!W((r.textContent??"").slice(a)))return null;let o=r.nextSibling;for(;F(o);)o=o.nextSibling;return z(o)?o:null}return null},Se=e=>{var r;const a=he.get(e),o=e.nextSibling;o?.nodeType===Node.TEXT_NODE&&W(o.textContent)&&o.remove(),e.remove(),a&&((r=t.onEntityRemove)==null||r.call(t,a)),ve()},Xe=e=>{const r=E(n);if(!r)return;const a=n.ownerDocument.createRange();a.setStartBefore(e),a.collapse(!0),r.removeAllRanges(),r.addRange(a)},Ee=e=>{const r=E(n);if(!r)return;let a=e;for(;F(a.nextSibling);)a=a.nextSibling;const o=n.ownerDocument.createRange();o.setStartAfter(a),o.collapse(!0),r.removeAllRanges(),r.addRange(o)},Ue=e=>{var r;if((e.metaKey||e.ctrlKey)&&(e.key==="z"||e.key==="Z")){e.preventDefault(),e.shiftKey?be():_e();return}if((e.metaKey||e.ctrlKey)&&(e.key==="y"||e.key==="Y")){e.preventDefault(),be();return}if(ie()&&T().length>0){if(e.key==="ArrowDown"){e.preventDefault(),R(o=>(o+1)%T().length);return}if(e.key==="ArrowUp"){e.preventDefault(),R(o=>(o-1+T().length)%T().length);return}if(e.key==="Enter"||e.key==="Tab"){const o=T();if(o.length>0){e.preventDefault(),e.stopPropagation(),we(o[m()]);return}}if(e.key==="Escape"){e.preventDefault(),M();return}}else if(g()&&e.key==="Escape"){e.preventDefault(),M();return}const a=f();if(a&&a.isConnected){if(e.key==="ArrowLeft"){e.preventDefault(),Xe(a),h();return}if(e.key==="ArrowRight"){e.preventDefault(),Ee(a),h();return}if(e.key==="Backspace"||e.key==="Delete"){e.preventDefault();const o=a.previousSibling;h(),Se(a);const c=E(n);if(c){const d=n.ownerDocument.createRange();o&&o.isConnected?d.setStartAfter(o):d.setStart(n,0),d.collapse(!0),c.removeAllRanges(),c.addRange(d)}return}if(e.key==="Escape"){e.preventDefault(),h();return}if(e.key==="Shift"||e.key==="Meta"||e.key==="Control"||e.key==="Alt")return;Ee(a),h()}if(!f()&&(e.key==="ArrowLeft"||e.key==="ArrowRight")&&!e.shiftKey&&!e.metaKey&&!e.ctrlKey&&!e.altKey){const o=E(n);if(o&&o.rangeCount>0){const c=o.getRangeAt(0);if(c.collapsed){const d=e.key==="ArrowLeft"?Re(c):Te(c);if(d){e.preventDefault(),x(d);return}}}}if(e.key==="Backspace"||e.key==="Delete"){const o=E(n);if(!o||o.rangeCount===0)return;const c=o.getRangeAt(0);if(!c.collapsed)return;const d=e.key==="Backspace"?Re(c):Te(c);if(d){e.preventDefault(),Se(d);return}}if(e.key==="Enter"&&!e.shiftKey&&t.submitOnEnter!==!1){if(e.preventDefault(),t.disabled||t.loading)return;(r=t.onSubmit)==null||r.call(t,q())}},ae=()=>t.maxHeight??240,We=()=>t.editableClass??"text-foreground min-h-[44px] w-full overflow-y-auto outline-none whitespace-pre-wrap break-words",De=[(()=>{var e=dt();return A(e,`::highlight(${u}) { background-color: color-mix(in srgb, var(--color-primary, #6366f1) 22%, transparent); }`),e})(),ut(),(()=>{var e=pt(),r=e.firstChild;return r.addEventListener("blur",ze),r.addEventListener("focus",Pe),r.$$mousedown=h,r.$$keydown=Ue,r.$$input=He,Ne(a=>{var o;n=a,(o=t.editableRef)==null||o.call(t,a)},r),j(a=>{var o=f()?"":void 0,c=t.placeholder??"",d=t.disabled?!1:"plaintext-only",k=t.ariaLabel||t.placeholder||"Message input",I=Q(We(),s()&&t.placeholder?"kai-composer-empty":""),D=typeof ae()=="number"?`${ae()}px`:String(ae());return o!==a.e&&N(r,"data-pill-selected",a.e=o),c!==a.t&&N(r,"data-placeholder",a.t=c),d!==a.a&&N(r,"contenteditable",a.a=d),k!==a.o&&N(r,"aria-label",a.o=k),I!==a.i&&V(r,a.i=I),D!==a.n&&Z(r,"max-height",a.n=D),a},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0,n:void 0}),e})(),O(P,{get when(){return Ke()},get children(){var e=ft();return Ne(r=>{i(r),Fe(r)},e),A(e,O(Le,{get each(){return oe()},children:r=>[O(P,{get when(){return r.group},get children(){var a=ht();return A(a,()=>r.group),a}}),O(Le,{get each(){return r.items},children:a=>(()=>{var o=mt(),c=o.firstChild;return o.$$click=d=>{d.preventDefault(),we(a.item)},o.$$mousedown=d=>d.preventDefault(),o.addEventListener("mouseenter",()=>R(a.index)),A(o,O(P,{get when(){return Be(a.item)},get fallback(){return O(P,{get when(){return $e(me(a.item))},children:d=>(()=>{var k=kt();return j(()=>k.innerHTML=d()),k})()})},children:d=>(()=>{var k=yt();return j(()=>N(k,"src",d())),k})()}),c),A(c,()=>a.item.label),A(o,O(P,{get when(){return a.item.description},get children(){var d=gt();return A(d,()=>a.item.description),d}}),null),j(d=>{var k=m()===a.index,I=a.index,D=Q("w-full flex items-center gap-2 px-3 py-1.5 text-left text-sm transition-colors",m()===a.index?"bg-muted text-foreground":"text-foreground hover:bg-muted");return k!==d.e&&N(o,"aria-selected",d.e=k),I!==d.t&&N(o,"data-index",d.t=I),D!==d.a&&V(o,d.a=D),d},{e:void 0,t:void 0,a:void 0}),o})()})]})),j(r=>{var a=je(),o=Q("absolute z-50 min-w-[240px] max-w-[420px] max-h-[320px] overflow-y-auto rounded-lg bg-card shadow-lg py-1","border border-border"),c=`${ke().x}px`,d=`${ke().y}px`,k=qe()?"hidden":"visible";return a!==r.e&&N(e,"data-state",r.e=a),o!==r.t&&V(e,r.t=o),c!==r.a&&Z(e,"left",r.a=c),d!==r.o&&Z(e,"top",r.o=d),k!==r.i&&Z(e,"visibility",r.i=k),r},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0}),e}})];return t.bare?De:(()=>{var e=vt();return A(e,De),j(()=>V(e,Q("kai-composer relative rounded-xl bg-surface p-2",t.disabled&&"cursor-not-allowed opacity-60"))),e})()}Ve(["input","keydown","mousedown","click"]);export{wt as C,pe as e,B as n,ee as s};
@@ -1 +0,0 @@
1
- import{m as N,s as O,l as v,k as T,x as F,o as H,c as d,E as L,S as f,i as l,a as $,b as U,d as z,F as G,v as A,t as h,e as J}from"./define-B_tXMYRm.js";import{c as K}from"./cn-CU7UAWzk.js";import{B as q}from"./button-B9okqG73.js";import{u as P,a as Q,C as x,D as V}from"./use-card-resolution-DJg32jGH.js";import{e as W}from"./card-routing-BK09BdmL.js";import{t as X}from"./triangle-alert-B6or7F5u.js";import{c as Y}from"./check-MdLzbxrm.js";import{x as Z}from"./x-BOhjBeOd.js";var _=h('<div class="flex items-center gap-2 text-sm font-medium text-destructive dark:text-red-400"><span>Heads up'),ee=h('<p class="text-sm font-semibold text-foreground">'),te=h('<p class="text-sm text-foreground">'),re=h("<div>"),ae=h('<div class="flex w-full flex-wrap items-center justify-between gap-2"><div class="ml-auto flex flex-wrap items-center gap-2">'),ne=h('<div class="ml-auto flex items-center gap-2 text-sm font-medium text-foreground"><span>');const ie="confirm",de=new Set(["primary","default","destructive"]);function oe(o){switch(o){case"primary":return"default";case"destructive":return"destructive";case"default":case void 0:return"outline";default:return console.warn(`[kai-confirm] unknown action style "${o}"; using default`),"outline"}}function se(o){if(!Array.isArray(o)||o.length===0)return{actions:[],error:"This card couldn't be displayed."};const c=new Set,r=[];for(const m of o){if(!m||typeof m!="object")continue;const i=m;if(typeof i.id!="string"||i.id.length===0||typeof i.label!="string"||i.label.length===0)continue;if(c.has(i.id)){console.warn(`[kai-confirm] duplicate action id "${i.id}" ignored`);continue}c.add(i.id);const g=de.has(i.style)?i.style:void 0;i.style!==void 0&&g===void 0&&console.warn(`[kai-confirm] unknown action style "${String(i.style)}"; using default`),r.push({id:i.id,label:i.label,style:g,payload:i.payload,default:i.default===!0})}return r.length===0?{actions:[],error:"This card couldn't be displayed."}:{actions:r}}function le(o){var c;return(c=o.find(r=>r.default))==null?void 0:c.id}function ue(o){const c=N({cardId:"kai-confirm",autofocus:!1},o),[r]=O(c,["data","cardId","heading","host","hostElement","autofocus","class","resolution","controllerRef"]),m=P(),i=e=>{const n=r.host??m;n?n.emit(e):r.hostElement&&W(r.hostElement,e)},g=v(()=>{var e;return se((e=r.data)==null?void 0:e.actions)}),I=v(()=>g().error===void 0),C=v(()=>g().error??""),p=v(()=>g().actions),D=()=>{var e;return((e=r.data)==null?void 0:e.tone)??"default"},M=()=>D()==="danger",k=v(()=>le(p())),u=Q({prop:()=>r.resolution,data:()=>r.data}),j=v(()=>{const e=u.resolution();if(!e||e.kind!=="action")return;const n=p().find(t=>t.id===e.action);return{label:n?.label??e.action}});T(F(I,e=>{i(e?{kind:"ready",cardId:r.cardId}:{kind:"error",cardId:r.cardId,message:C()})}));const b=e=>{u.isResolved()||(i({kind:"action",cardId:r.cardId,action:e.id,...e.payload!==void 0?{payload:e.payload}:{}}),u.setLocal({kind:"action",action:e.id,...e.payload!==void 0?{payload:e.payload}:{}}))},E=()=>{u.isResolved()||(i({kind:"dismiss",cardId:r.cardId}),u.setLocal({kind:"dismissed"}))},R=()=>i({kind:"reopen",cardId:r.cardId});let S,y;const B=()=>y?y.querySelector('button[data-kai-default="true"]')??y.querySelector("button[data-action-id]"):null;return H(()=>{var e;(e=r.controllerRef)==null||e.call(r,{focus:n=>{var t;return(t=B())==null?void 0:t.focus(n)},confirm:n=>{const t=p(),a=n??k();if(a===void 0)return;const s=t.find(w=>w.id===a);s&&b(s)},dismiss:()=>E(),reopen:()=>R()})}),T(()=>{const e=r.hostElement;if(!e)return;const n=u.resolution();n&&n.kind==="action"?e.setAttribute("data-kai-resolved",n.action):e.removeAttribute("data-kai-resolved")}),d(f,{get when(){return I()},get fallback(){return d(x,{get heading(){return r.heading},get errorMessage(){return C()}})},get children(){return d(L,{fallback:()=>(i({kind:"error",cardId:r.cardId,message:"The card failed to render."}),d(x,{get heading(){return r.heading},errorMessage:"The card failed to render."})),get children(){return d(f,{get when(){return!u.isDeferred()},get fallback(){return d(V,{type:ie,get title(){return r.heading},onReopen:R})},get children(){return d(x,{get heading(){return r.heading},get actions(){return d(f,{get when(){return!u.isResolved()},get fallback(){return(()=>{var e=ne(),n=e.firstChild;return l(e,d(Y,{size:16,"aria-hidden":"true"}),n),l(n,()=>{var t;return(t=j())==null?void 0:t.label}),$(()=>z(e,"role",u.isOptimistic()?"status":void 0)),e})()},get children(){var e=ae(),n=e.firstChild;l(e,d(f,{get when(){var a;return((a=r.data)==null?void 0:a.dismissible)===!0},get children(){return d(q,{type:"button",variant:"ghost",size:"icon-sm","aria-label":"Dismiss",onClick:E,get children(){return d(Z,{size:16,"aria-hidden":"true"})}})}}),n);var t=y;return typeof t=="function"?A(t,n):y=n,l(n,d(G,{get each(){return p()},children:a=>d(q,{type:"button",get variant(){return oe(a.style)},get"data-action-id"(){return a.id},get"data-kai-default"(){return a.default?"true":void 0},ref:s=>{r.autofocus&&a.id===k()&&queueMicrotask(()=>s.focus())},onClick:()=>b(a),get children(){return a.label}})})),e}})},get children(){var e=re();e.$$keydown=t=>{if(t.key!=="Enter"||t.target.tagName==="BUTTON")return;const a=k();if(a===void 0)return;const s=p().find(w=>w.id===a);s&&b(s)};var n=S;return typeof n=="function"?A(n,e):S=e,l(e,d(f,{get when(){return M()},get children(){var t=_(),a=t.firstChild;return l(t,d(X,{size:16,class:"shrink-0","aria-hidden":"true"}),a),t}}),null),l(e,d(f,{get when(){var t;return(t=r.data)==null?void 0:t.heading},get children(){var t=ee();return l(t,()=>{var a;return(a=r.data)==null?void 0:a.heading}),t}}),null),l(e,d(f,{get when(){var t;return(t=r.data)==null?void 0:t.body},get children(){var t=te();return l(t,()=>{var a;return(a=r.data)==null?void 0:a.body}),t}}),null),$(t=>{var a=K("flex flex-col gap-2",r.class),s=k()!==void 0?0:void 0;return a!==t.e&&U(e,t.e=a),s!==t.t&&z(e,"tabindex",t.t=s),t},{e:void 0,t:void 0}),e}})}})}})}})}J(["keydown"]);export{ue as C};
@@ -1 +0,0 @@
1
- import{l as o,c as n,S as a,i as s,a as d,b as f,z as N,A as P,t as u,d as j,j as B}from"./define-B_tXMYRm.js";import{H as M,a as $,b as z}from"./hover-card-6KtXpLwT.js";import{c as h}from"./cn-CU7UAWzk.js";import{B as A}from"./button-B9okqG73.js";import{P as E}from"./progress-bar-D1_rzt6N.js";var H=u('<svg aria-label="Model context usage"height=20 role=img viewBox="0 0 24 24"width=20 style=color:currentcolor><circle cx=12 cy=12 fill=none opacity=0.25 r=10 stroke=currentColor stroke-width=2></circle><circle cx=12 cy=12 fill=none opacity=0.7 r=10 stroke=currentColor stroke-linecap=round stroke-width=2 style=transform:rotate(-90deg);transform-origin:center>'),O=u('<span class="font-medium text-muted-foreground">'),R=u('<div class="flex items-center justify-between gap-3 text-xs"><p></p><p class="font-mono text-muted-foreground"> / '),q=u("<div class=space-y-2>"),T=u("<div>"),G=u("<span class=text-muted-foreground>Total cost"),S=u("<span>"),J=u("<div><span class=text-muted-foreground>Input"),K=u("<div><span class=text-muted-foreground>Output"),L=u("<div><span class=text-muted-foreground>Reasoning"),Q=u("<div><span class=text-muted-foreground>Cache");const V=10,v=.7,b=.9;function W(e,t=v,r=b){return e>r?"danger":e>t?"warn":"ok"}const I=N();function g(){const e=P(I);if(!e)throw new Error("Context components must be used within Context");return e}const y=new Intl.NumberFormat("en-US",{notation:"compact"}),D=new Intl.NumberFormat("en-US",{maximumFractionDigits:1,style:"percent"}),_=new Intl.NumberFormat("en-US",{currency:"USD",style:"currency"});function X(e){const t=o(()=>({usedTokens:e.usedTokens,maxTokens:e.maxTokens,inputTokens:e.inputTokens,outputTokens:e.outputTokens,reasoningTokens:e.reasoningTokens,cacheTokens:e.cacheTokens,estimatedCost:e.estimatedCost,warnThreshold:e.warnThreshold??v,dangerThreshold:e.dangerThreshold??b}));return n(I.Provider,{get value(){return t()},get children(){return n(M,{openDelay:0,get children(){return e.children}})}})}function Y(){const e=g(),t=2*Math.PI*V,r=o(()=>e.usedTokens/e.maxTokens),c=o(()=>t*(1-r()));return(()=>{var i=H(),p=i.firstChild,k=p.nextSibling;return j(k,"stroke-dasharray",`${t} ${t}`),d(()=>j(k,"stroke-dashoffset",c())),i})()}function Z(e){const t=g(),r=o(()=>t.usedTokens/t.maxTokens),c=o(()=>D.format(r()));return n($,{get children(){return n(a,{get when(){return!e.children},get fallback(){return e.children},get children(){return n(A,{type:"button",variant:"ghost",get class(){return e.class},get children(){return[(()=>{var i=O();return s(i,c),i})(),n(Y,{})]}})}})}})}function ee(e){return n(z,{get class(){return h("min-w-60 divide-y divide-border overflow-hidden",e.class)},get children(){return e.children}})}function te(e){const t=g(),r=o(()=>t.usedTokens/t.maxTokens),c=o(()=>D.format(r())),i=o(()=>y.format(t.usedTokens)),p=o(()=>y.format(t.maxTokens)),k=o(()=>{const l=r();return l>t.dangerThreshold?"danger":l>t.warnThreshold?"warn":"ok"}),F=o(()=>{const l=k();return l==="danger"?"error":l==="warn"?"warning":"primary"});return(()=>{var l=T();return s(l,n(a,{get when(){return!e.children},get fallback(){return e.children},get children(){return[(()=>{var m=R(),C=m.firstChild,w=C.nextSibling,U=w.firstChild;return s(C,c),s(w,i,U),s(w,p,null),m})(),(()=>{var m=q();return s(m,n(E,{get value(){return t.usedTokens},get max(){return t.maxTokens},get tone(){return F()},"aria-label":"Context usage"})),m})()]}})),d(()=>f(l,h("w-full space-y-2 p-3",e.class))),l})()}function re(e){return(()=>{var t=T();return s(t,()=>e.children),d(()=>f(t,h("w-full p-3",e.class))),t})()}function ne(e){const t=g(),r=o(()=>_.format(t.estimatedCost??0));return(()=>{var c=T();return s(c,n(a,{get when(){return!e.children},get fallback(){return e.children},get children(){return[G(),(()=>{var i=S();return s(i,r),i})()]}})),d(()=>f(c,h("flex w-full items-center justify-between gap-3 bg-muted p-3 text-xs",e.class))),c})()}function x(e){return(()=>{var t=S();return s(t,(()=>{var r=B(()=>e.tokens===void 0);return()=>r()?"\u2014":y.format(e.tokens)})()),t})()}function se(e){const t=g();return n(a,{get when(){return e.children||t.inputTokens},get children(){return n(a,{get when(){return!e.children},get fallback(){return e.children},get children(){var r=J();return r.firstChild,s(r,n(x,{get tokens(){return t.inputTokens}}),null),d(()=>f(r,h("flex items-center justify-between text-xs",e.class))),r}})}})}function oe(e){const t=g();return n(a,{get when(){return e.children||t.outputTokens},get children(){return n(a,{get when(){return!e.children},get fallback(){return e.children},get children(){var r=K();return r.firstChild,s(r,n(x,{get tokens(){return t.outputTokens}}),null),d(()=>f(r,h("flex items-center justify-between text-xs",e.class))),r}})}})}function ae(e){const t=g();return n(a,{get when(){return e.children||t.reasoningTokens},get children(){return n(a,{get when(){return!e.children},get fallback(){return e.children},get children(){var r=L();return r.firstChild,s(r,n(x,{get tokens(){return t.reasoningTokens}}),null),d(()=>f(r,h("flex items-center justify-between text-xs",e.class))),r}})}})}function ue(e){const t=g();return n(a,{get when(){return e.children||t.cacheTokens},get children(){return n(a,{get when(){return!e.children},get fallback(){return e.children},get children(){var r=Q();return r.firstChild,s(r,n(x,{get tokens(){return t.cacheTokens}}),null),d(()=>f(r,h("flex items-center justify-between text-xs",e.class))),r}})}})}export{X as C,v as D,Z as a,ee as b,te as c,re as d,se as e,oe as f,ne as g,W as h,ae as i,ue as j,b as k};
@@ -1 +0,0 @@
1
- import{c as n,m as L,g as k,s as M,l as p,i as c,S as h,a as v,b as x,d as C,t as l,e as N,o as O,v as D,F as S}from"./define-B_tXMYRm.js";import{c as f}from"./cn-CU7UAWzk.js";import{a as R,b as q,C as E}from"./collapsible-DBcBkFPh.js";import{B as A}from"./button-B9okqG73.js";import{B as F}from"./badge-TIMiJFKc.js";import{S as P}from"./scroll-area-93A1bbeG.js";import{m as U}from"./message-square-C9ovmtOo.js";import{I as G}from"./Icon-b5A8hlHs.js";var H=[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M9 3v18",key:"fh3hqa"}],["path",{d:"m14 9 3 3-3 3",key:"8010ee"}]],J=i=>n(G,L(i,{name:"PanelLeftOpen",iconNode:H})),K=J;function Q(i,e){const[d,o]=k(e);return[()=>i()??d(),t=>o(t)]}var $=l('<span part=trailing class="ml-auto shrink-0 text-xs text-muted-foreground">'),V=l('<div class="flex items-center gap-2.5"><span>'),W=l("<button>"),X=l('<div class="flex items-center gap-2"><div>'),Y=l("<div> messages");function Z(i,e=Date.now()){if(!i)return"";const d=Date.parse(i);if(Number.isNaN(d))return"";const o=Math.max(0,Math.round((e-d)/1e3));if(o<60)return"just now";const t=Math.floor(o/60);if(t<60)return`${t}m ago`;const s=Math.floor(t/60);return s<24?`${s}h ago`:`${Math.floor(s/24)}d ago`}function B(i){const[e]=M(i,["conversation","isActive","onSelect","compact","class"]),d=p(()=>e.conversation.trailing??Z(e.conversation.updatedAt??e.conversation.lastMessageAt));return(()=>{var o=W();return o.$$click=()=>e.onSelect(e.conversation.id),c(o,n(h,{get when(){return e.compact},get fallback(){return[(()=>{var t=X(),s=t.firstChild;return c(s,()=>e.conversation.title),c(t,n(h,{get when(){return d()},get children(){var g=$();return c(g,d),g}}),null),v(()=>x(s,f("min-w-0 flex-1 truncate text-sm",e.isActive?"font-medium text-foreground":"text-foreground/80"))),t})(),(()=>{var t=Y(),s=t.firstChild;return c(t,()=>e.conversation.messageCount,s),v(()=>x(t,f("mt-0.5 truncate text-xs",e.isActive?"text-foreground/70":"text-muted-foreground"))),t})()]},get children(){var t=V(),s=t.firstChild;return c(t,n(U,{get class(){return f("size-3.5 shrink-0",e.isActive?"text-foreground":"text-muted-foreground")}}),s),c(s,()=>e.conversation.title),c(t,n(h,{get when(){return d()},get children(){var g=$();return c(g,d),g}}),null),v(()=>x(s,f("min-w-0 flex-1 truncate text-sm",e.isActive?"font-medium text-foreground":"text-foreground/80"))),t}})),v(t=>{var s=e.conversation.id,g=e.isActive?"true":void 0,m=f("w-full rounded-lg text-left transition-colors",e.compact?"px-2.5 py-1.5":"px-2.5 py-2",e.isActive?"bg-muted":"hover:bg-muted/50",e.class);return s!==t.e&&C(o,"data-conversation-id",t.e=s),g!==t.t&&C(o,"aria-current",t.t=g),m!==t.a&&x(o,t.a=m),t},{e:void 0,t:void 0,a:void 0}),o})()}N(["click"]);var _=l('<div class="px-3 pb-2"><div class="flex items-center gap-2 rounded-md bg-surface-strong px-2.5 py-1.5"><svg width=13 height=13 viewBox="0 0 24 24"fill=none stroke=currentColor stroke-width=2 class=text-muted-foreground><circle cx=11 cy=11 r=8></circle><line x1=21 y1=21 x2=16.65 y2=16.65></line></svg><input type=text placeholder="Search chats..."aria-label="Search chats"class="bg-transparent text-[13px] text-foreground placeholder:text-muted-foreground rounded-sm focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring w-full">'),ee=l('<div class="space-y-0.5 py-1">'),te=l('<div class="shrink-0 border-t border-border">'),re=l("<div>"),ne=l('<svg width=16 height=16 viewBox="0 0 24 24"fill=none stroke=currentColor stroke-width=2><line x1=3 y1=12 x2=21 y2=12></line><line x1=3 y1=6 x2=21 y2=6></line><line x1=3 y1=18 x2=21 y2=18>'),oe=l('<svg width=16 height=16 viewBox="0 0 24 24"fill=none stroke=currentColor stroke-width=2><line x1=12 y1=5 x2=12 y2=19></line><line x1=5 y1=12 x2=19 y2=12>'),ae=l('<div class="flex items-center justify-between p-3 pb-2"><div class="flex items-center gap-2"><span class="text-sm font-semibold text-foreground">Chats'),ie=l('<div class="flex flex-1 flex-col items-center justify-center gap-1 p-6 text-center text-sm text-muted-foreground">No conversations yet'),se=l('<svg width=10 height=10 viewBox="0 0 24 24"fill=none stroke=currentColor stroke-width=2><polyline points="6 9 12 15 18 9">'),ce=l("<span>"),le=l('<div class="pl-2 mt-0.5 space-y-0.5">');function ue(i){return n(A,{variant:"ghost",size:"icon-sm","aria-label":"Open sidebar",get class(){return f("rounded-full bg-card/80 shadow-sm backdrop-blur",i.class)},get onClick(){return i.onExpand},get children(){return n(K,{class:"size-4"})}})}function de(i){const[e]=M(i,["groups","conversations","activeId","onSelect","onNewChat","onToggleSidebar","header","footer","empty","compact","onSearchChange","controllerRef","class"]),[d,o]=k(""),t=p(()=>e.conversations.length===0);let s;const g=a=>{var r;o(a),(r=e.onSearchChange)==null||r.call(e,a)};O(()=>{var a;(a=e.controllerRef)==null||a.call(e,{focus:r=>s?.focus(r),clearSearch:()=>g("")})});const m=p(()=>{const a=d().toLowerCase();return a?e.conversations.filter(r=>r.title.toLowerCase().includes(a)):e.conversations}),T=p(()=>{const a=new Map;for(const r of m()){const u=r.groupId;a.has(u)||a.set(u,[]),a.get(u).push(r)}return a}),w=p(()=>{const a=new Set((e.groups??[]).map(r=>r.id));return m().filter(r=>r.groupId==null||!a.has(r.groupId))});return(()=>{var a=re();return c(a,n(h,{get when(){return e.header},get fallback(){return(()=>{var r=ae(),u=r.firstChild,y=u.firstChild;return c(u,n(A,{variant:"ghost",size:"icon-sm","aria-label":"Toggle sidebar",get onClick(){return e.onToggleSidebar},get children(){return ne()}}),y),c(r,n(A,{variant:"ghost",size:"icon-sm","aria-label":"New chat",get onClick(){return e.onNewChat},get children(){return oe()}}),null),r})()},get children(){return e.header}}),null),c(a,n(h,{get when(){return!t()},get children(){var r=_(),u=r.firstChild,y=u.firstChild,b=y.nextSibling;b.$$input=j=>g(j.currentTarget.value);var I=s;return typeof I=="function"?D(I,b):s=b,v(()=>b.value=d()),r}}),null),c(a,n(h,{get when(){return!t()},get fallback(){return n(h,{get when(){return e.empty},get fallback(){return ie()},get children(){return e.empty}})},get children(){return n(P,{class:"flex-1 px-2",get children(){return[n(S,{get each(){return e.groups},children:r=>{const u=p(()=>T().get(r.id)??[]);return n(h,{get when(){return u().length>0},get children(){return n(z,{get name(){return r.name},get count(){return u().length},get conversations(){return u()},get activeId(){return e.activeId},get onSelect(){return e.onSelect},get compact(){return e.compact}})}})}}),n(h,{get when(){return w().length>0},get children(){return n(h,{get when(){return e.compact},get fallback(){return n(z,{name:"Ungrouped",get count(){return w().length},get conversations(){return w()},get activeId(){return e.activeId},get onSelect(){return e.onSelect}})},get children(){var r=ee();return c(r,n(S,{get each(){return w()},children:u=>n(B,{conversation:u,get isActive(){return u.id===e.activeId},get onSelect(){return e.onSelect},compact:!0})})),r}})}})]}})}}),null),c(a,n(h,{get when(){return e.footer},get children(){var r=te();return c(r,()=>e.footer),r}}),null),v(()=>x(a,f("flex flex-col h-full bg-sidebar",e.class))),a})()}function z(i){const[e,d]=k(!0);return n(E,{get open(){return e()},onOpenChange:d,get children(){return[n(R,{class:"flex items-center gap-1.5 w-full px-1.5 py-1 rounded-md text-[13px] text-muted-foreground font-medium hover:bg-muted/30 transition-colors cursor-pointer mt-1.5",get children(){return[(()=>{var o=se();return v(()=>C(o,"class",f("transition-transform",!e()&&"-rotate-90"))),o})(),(()=>{var o=ce();return c(o,()=>i.name),o})(),n(F,{variant:"count",class:"ml-auto text-[11px]",get children(){return i.count}})]}}),n(q,{get children(){var o=le();return c(o,n(S,{get each(){return i.conversations},children:t=>n(B,{conversation:t,get isActive(){return t.id===i.activeId},get onSelect(){return i.onSelect},get compact(){return i.compact}})})),o}})]}})}N(["input"]);export{de as C,ue as a,Q as c};