@kitn.ai/ui 0.26.0 → 0.28.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.
- package/README.md +25 -6
- package/bin/mcp.js +16 -3
- package/bin/route.js +23 -0
- package/bin/route.test.js +58 -0
- package/dist/{elements/chunks/Icon--Y8vsFal.js → Icon-DObhsRtm.js} +1 -1
- package/dist/action-icons-CcgNN2oT.js +1 -0
- package/dist/arrow-down-CjRU3JgV.js +1 -0
- package/dist/arrow-left-Bnpb1UEW.js +1 -0
- package/dist/artifact-Bwt7OgcR.js +1 -0
- package/dist/assets/dev-5XzXYR21.js +91 -0
- package/dist/attachments-Qr4kg-2b.js +1 -0
- package/dist/{elements/chunks/audio-visualizer-D7lB6mvR.js → audio-visualizer-DToYdfSc.js} +1 -1
- package/dist/badge-CdEu_jn2.js +1 -0
- package/dist/bash-InADTalH.js +1 -6
- package/dist/bell-DQAAOpDz.js +1 -0
- package/dist/{elements/chunks/button-flUbeufF.js → button-DkuOnGLy.js} +1 -1
- package/dist/card-renderer-Jx70m6_l.js +1 -0
- package/dist/card-routing-0YidER_3.js +1 -0
- package/dist/check-njkVdZu2.js +1 -0
- package/dist/checkbox-D7iRB3nL.js +1 -0
- package/dist/checkbox-group-B2_rpoPM.js +1 -0
- package/dist/chevron-down-B72s6PXR.js +1 -0
- package/dist/chevron-right-BatuHzUm.js +1 -0
- package/dist/choice-card-m0BYqqOK.js +1 -0
- package/dist/circle-check-B62pODB3.js +1 -0
- package/dist/circle-x-BPG0iPst.js +1 -0
- package/dist/circle-zx0ByzY9.js +1 -0
- package/dist/{elements/chunks/cn-CU7UAWzk.js → cn-DN5AWfiS.js} +1 -1
- package/dist/code-block-ClMLKb7C.js +1 -0
- package/dist/{elements/chunks/collapsible-BzbXpPzr.js → collapsible-B4DlWicL.js} +1 -1
- package/dist/components/attachment-types.d.ts +7 -0
- package/dist/components/audio-visualizer/fit-scale.d.ts +1 -1
- package/dist/components/card-renderer.d.ts +13 -0
- package/dist/components/card.d.ts +4 -0
- package/dist/components/chat-thread.d.ts +135 -2
- package/dist/components/conversation-item.d.ts +35 -7
- package/dist/components/conversation-list.d.ts +17 -5
- package/dist/components/conversation-panel.d.ts +29 -0
- package/dist/components/form-widgets.d.ts +67 -2
- package/dist/components/form.d.ts +48 -1
- package/dist/components/home-panel.d.ts +34 -0
- package/dist/components/message.d.ts +25 -3
- package/dist/components/reasoning.d.ts +6 -0
- package/dist/components/scroll-button.d.ts +11 -0
- package/dist/components/thread.d.ts +5 -0
- package/dist/components/tool-types.d.ts +9 -0
- package/dist/components/widget-tab-bar.d.ts +16 -0
- package/dist/composer-sQ0HcvyG.js +106 -0
- package/dist/confirm-card-rQWDQsnC.js +1 -0
- package/dist/construct-cli.es.js +1337 -0
- package/dist/{elements/chunks/context-VLIL3sJ-.js → context-0kg4ZX1J.js} +1 -1
- package/dist/controllable-CnGpMF6r.js +1 -0
- package/dist/conversation-item-BxwQLaFJ.js +1 -0
- package/dist/conversation-list-BCfGN1JU.js +1 -0
- package/dist/copy-n9u9rqpi.js +1 -0
- package/dist/core-AYMC6_lb.js +12 -5874
- package/dist/{create-tween-BFT6c-Y8.js → create-tween-C-q-JCM-.js} +1 -1
- package/dist/{create-tween-CJNlzoaO.js → create-tween-CRrJXxBd.js} +1 -1
- package/dist/{create-tween-CQED4T0g.js → create-tween-DZ3RRDHD.js} +1 -1
- package/dist/{elements/chunks/create-tween-c4Z8TDYz.js → create-tween-uPkArjIG.js} +2 -2
- package/dist/css-M7EaDHN_.js +1 -6
- package/dist/custom-elements.json +1433 -202
- package/dist/default-input-CaMrJkgH.js +1 -0
- package/dist/define-By-uL588.js +1 -0
- package/dist/define.d.ts +4 -0
- package/dist/define.js +510 -0
- package/dist/define.server.d.ts +5 -0
- package/dist/define.server.js +506 -0
- package/dist/{elements/chunks/disclosure-CcNbyLy0.js → disclosure-WUImBbDv.js} +1 -1
- package/dist/{elements/chunks/dropdown-BgWTthUx.js → dropdown-wZVeJOMd.js} +1 -1
- package/dist/elements/agent-card.js +1 -1
- package/dist/elements/artifact.js +1 -1
- package/dist/elements/attachments.js +1 -1
- package/dist/elements/audio-visualizer.js +1 -1
- package/dist/elements/autoloader.js +1 -1
- package/dist/elements/avatar.js +1 -1
- package/dist/elements/badge.js +1 -1
- package/dist/elements/button.js +1 -1
- package/dist/elements/card.js +1 -1
- package/dist/elements/cards.js +1 -1
- package/dist/elements/chain-of-thought.js +1 -1
- package/dist/elements/chat-scope-picker.js +1 -1
- package/dist/elements/chat-workspace.js +1 -1
- package/dist/elements/chat.js +1 -1
- package/dist/elements/checkbox-group.d.ts +1 -0
- package/dist/elements/checkbox-group.js +1 -0
- package/dist/elements/checkbox.d.ts +1 -0
- package/dist/elements/checkbox.js +1 -0
- package/dist/elements/checkpoint.js +1 -1
- package/dist/elements/choice.js +1 -1
- package/dist/elements/coachmark.js +1 -1
- package/dist/elements/code-block.js +1 -1
- package/dist/elements/command.js +1 -1
- package/dist/elements/compare.js +1 -1
- package/dist/elements/composer.js +1 -1
- package/dist/elements/confirm-card.js +1 -1
- package/dist/elements/context-meter.js +1 -1
- package/dist/elements/conversation-item.js +1 -1
- package/dist/elements/conversation-list.js +1 -1
- package/dist/elements/define-entry.d.ts +12 -0
- package/dist/elements/dialog.js +1 -1
- package/dist/elements/dock.js +102 -8
- package/dist/elements/dropdown.js +1 -1
- package/dist/elements/editable-label.js +1 -1
- package/dist/elements/element-data-types.d.ts +37 -0
- package/dist/elements/embed.js +1 -1
- package/dist/elements/empty.js +1 -1
- package/dist/elements/feedback-bar.js +1 -1
- package/dist/elements/file-tree.js +1 -1
- package/dist/elements/file-upload.js +1 -1
- package/dist/elements/form.js +1 -1
- package/dist/elements/hover-card.js +1 -1
- package/dist/elements/icon.js +1 -1
- package/dist/elements/image.js +1 -1
- package/dist/elements/input.js +1 -1
- package/dist/elements/kbd.js +1 -1
- package/dist/elements/link-preview.js +1 -1
- package/dist/elements/loader.js +1 -1
- package/dist/elements/markdown.js +1 -1
- package/dist/elements/menu.js +1 -1
- package/dist/elements/message-skills.js +1 -1
- package/dist/elements/message.js +1 -1
- package/dist/elements/model-switcher.js +1 -1
- package/dist/elements/nav.js +1 -1
- package/dist/elements/notice.js +1 -1
- package/dist/elements/pane-grid.d.ts +1 -0
- package/dist/elements/pane-grid.js +1 -0
- package/dist/elements/pane-group.js +1 -1
- package/dist/elements/pane.js +1 -1
- package/dist/elements/popover.js +1 -1
- package/dist/elements/progress-bar.js +1 -1
- package/dist/elements/prompt-dock.js +1 -1
- package/dist/elements/prompt-input.js +1 -1
- package/dist/elements/prompt-suggestions.js +1 -1
- package/dist/elements/radio-group.d.ts +1 -0
- package/dist/elements/radio-group.js +1 -0
- package/dist/elements/reasoning.js +1 -1
- package/dist/elements/remote.js +1 -1
- package/dist/elements/resizable.js +1 -1
- package/dist/elements/response-stream.js +2 -2
- package/dist/elements/screen.js +1 -1
- package/dist/elements/scroll-area.js +1 -1
- package/dist/elements/scroll-button.js +1 -1
- package/dist/elements/search.js +1 -1
- package/dist/elements/segmented.js +1 -1
- package/dist/elements/select.d.ts +1 -0
- package/dist/elements/select.js +1 -0
- package/dist/elements/separator.js +1 -1
- package/dist/elements/setting-item.js +1 -1
- package/dist/elements/settings-group.js +1 -1
- package/dist/elements/skeleton.js +1 -1
- package/dist/elements/slider.d.ts +1 -0
- package/dist/elements/slider.js +1 -0
- package/dist/elements/slots.d.ts +1 -1
- package/dist/elements/source.js +1 -1
- package/dist/elements/status.js +1 -1
- package/dist/elements/switch.js +1 -1
- package/dist/elements/tabs.js +1 -1
- package/dist/elements/tasks.js +1 -1
- package/dist/elements/text-shimmer.js +1 -1
- package/dist/elements/thinking-bar.js +1 -1
- package/dist/elements/thread.js +1 -1
- package/dist/elements/toast.js +1 -1
- package/dist/elements/tool.js +1 -1
- package/dist/elements/tooltip.js +1 -1
- package/dist/elements/voice-input.js +1 -1
- package/dist/elements/voice-output.js +1 -1
- package/dist/elements.d.ts +380 -26
- package/dist/{elements/chunks/ellipsis-7gU33mL2.js → ellipsis-CbOpJnU3.js} +1 -1
- package/dist/embed-CrfjkbUG.js +1 -0
- package/dist/engine-javascript-vq0WuIJl.js +14 -2516
- package/dist/{elements/chunks/external-link-CSOEsNlx.js → external-link-ByXAwBBQ.js} +1 -1
- package/dist/file-text-DMib2qwt.js +1 -0
- package/dist/{elements/chunks/file-tree-zvB2i7P9.js → file-tree-CJqM2aP7.js} +1 -1
- package/dist/folder-_BAb929C.js +1 -0
- package/dist/form-DSZgZQZk.js +1 -0
- package/dist/github-dark-dimmed-DUshB20C.js +1 -4
- package/dist/github-light-JYsPkUQd.js +1 -4
- package/dist/hover-card-BQbul9eq.js +1 -0
- package/dist/html-CPZ3oZQ7.js +1 -10
- package/dist/icon-CdcfRhYI.js +1 -0
- package/dist/{elements/chunks/index-BCRhi84a.js → index-xu_pdcPi.js} +1 -1
- package/dist/index.d.ts +4 -2
- package/dist/index.js +7474 -5857
- package/dist/index.server.js +5965 -4762
- package/dist/info-DsFjGuI_.js +1 -0
- package/dist/input-DKbmkMos.js +1 -0
- package/dist/javascript-C25yR2R2.js +1 -6
- package/dist/json-DxJze_jm.js +1 -6
- package/dist/kai.es.js +1 -1
- package/dist/kbd-PvdGhX4s.js +1 -0
- package/dist/{elements/chunks/link-preview-OQ9IEq0f.js → link-preview-DbM1866N.js} +1 -1
- package/dist/link-zF8PzWfF.js +1 -0
- package/dist/loader-BM4CEz4G.js +1 -0
- package/dist/{elements/chunks/markdown-DgBFaGAz.js → markdown-LMvmAyBk.js} +7 -7
- package/dist/mcp.es.js +1361 -81
- package/dist/message-BSsgvHvf.js +1 -0
- package/dist/message-BYZECyek.js +1 -0
- package/dist/message-circle-DruwObfX.js +1 -0
- package/dist/message-square-BG6q6mlm.js +1 -0
- package/dist/{elements/chunks/minimize-2-DPIUKTrT.js → minimize-2-BQRoBV1V.js} +1 -1
- package/dist/{elements/chunks/model-switcher-DsT8tFB0.js → model-switcher-CMpCOYcB.js} +1 -1
- package/dist/{elements/chunks/overlay-DuiwdXjm.js → overlay-Cb-MkyDa.js} +1 -1
- package/dist/panel-right-i8warFxT.js +1 -0
- package/dist/paperclip-ByY3UVO6.js +1 -0
- package/dist/play-BvKKq3fX.js +1 -0
- package/dist/primitives/card-data-types.d.ts +49 -0
- package/dist/primitives/card-routing.d.ts +1 -33
- package/dist/primitives/card-validate.d.ts +2 -2
- package/dist/primitives/chat-config.d.ts +29 -2
- package/dist/primitives/conversation-store.d.ts +54 -0
- package/dist/primitives/field-mask.d.ts +96 -0
- package/dist/primitives/field-semantics.d.ts +36 -0
- package/dist/primitives/input-mask.d.ts +46 -0
- package/dist/primitives/url-scheme-policy.d.ts +34 -0
- package/dist/primitives/use-resize-observer.d.ts +2 -2
- package/dist/progress-bar-jVAHvMUf.js +1 -0
- package/dist/prompt-suggestion-CD-qtNgC.js +1 -0
- package/dist/radio-BsoBMhkF.js +1 -0
- package/dist/react/index.d.ts +586 -19
- package/dist/react.js +223 -187
- package/dist/reasoning-4kBPtlTx.js +1 -0
- package/dist/register-impl-B1hLkrI8.js +424 -0
- package/dist/{elements/chunks/resizable-D181b4fM.js → resizable-uPmY9VY-.js} +1 -1
- package/dist/rotate-ccw-B2xn93py.js +1 -0
- package/dist/rotate-cw-CMVLoCyH.js +1 -0
- package/dist/schemas/form.schema.json +21 -1
- package/dist/schemas/tool-defs.d.ts +11 -1
- package/dist/schemas.js +81 -81
- package/dist/scroll-area-BqLUo8ZZ.js +1 -0
- package/dist/scroll-button-DslXiJyL.js +1 -0
- package/dist/select-2cLRtPGT.js +1 -0
- package/dist/{elements/chunks/separator-CeJHQqLW.js → separator-BWQtNJcM.js} +1 -1
- package/dist/{elements/chunks/settings-CqaHgJF9.js → settings-BBR63jLg.js} +1 -1
- package/dist/{elements/chunks/settings-group-CjqjLCOn.js → settings-group-B2ciy-Iw.js} +1 -1
- package/dist/{elements/chunks/skeleton-D8akBnKS.js → skeleton-CkHI-HgC.js} +1 -1
- package/dist/slider-DDR9U-i0.js +1 -0
- package/dist/{solid-BtdqNZI7.js → solid-BzCFdL25.js} +9771 -7594
- package/dist/{solid-CnavwBye.js → solid-DruVOXnf.js} +7893 -6183
- package/dist/solid.d.ts +16 -2
- package/dist/solid.js +256 -243
- package/dist/solid.server.js +256 -243
- package/dist/source-GEnFF528.js +1 -0
- package/dist/star-CilHq8GP.js +1 -0
- package/dist/state/index.d.ts +1 -1
- package/dist/state/mock.d.ts +32 -2
- package/dist/state.js +133 -108
- package/dist/store-Ciyk6eZG.js +1 -0
- package/dist/svelte--5p79yCD.js +1 -15
- package/dist/switch-KkeQIbuH.js +1 -0
- package/dist/tasks-card-BrN4bggJ.js +1 -0
- package/dist/text-shimmer-Dcj1MHuq.js +1 -0
- package/dist/textarea-Dpvbngbg.js +1 -0
- package/dist/theme.tokens.css +110 -13
- package/dist/{elements/chunks/thumbs-up-DX2Ijk3H.js → thumbs-up-CsT9Wzb9.js} +1 -1
- package/dist/toast-store-tgK6MuMv.js +1 -0
- package/dist/{elements/chunks/tool-DKQ2D1DP.js → tool-DzUjIBT8.js} +1 -1
- package/dist/{elements/chunks/tooltip-B0G99y8w.js → tooltip-Bkkg_4t0.js} +1 -1
- package/dist/trash-2-jBKxjGGQ.js +1 -0
- package/dist/{elements/chunks/triangle-alert-F9cyUEyy.js → triangle-alert-DlQ68ppf.js} +1 -1
- package/dist/tsx-B8rCNbgL.js +1 -6
- package/dist/types.d.ts +48 -3
- package/dist/typescript-RycA9KXf.js +1 -6
- package/dist/ui/checkbox-group.d.ts +83 -0
- package/dist/ui/checkbox.d.ts +40 -0
- package/dist/ui/dock.d.ts +51 -0
- package/dist/ui/icon.d.ts +3 -0
- package/dist/ui/input.d.ts +48 -2
- package/dist/ui/radio.d.ts +85 -0
- package/dist/ui/select.d.ts +71 -0
- package/dist/ui/slider.d.ts +65 -0
- package/dist/ui/switch.d.ts +9 -2
- package/dist/upload-TcAHXv9W.js +1 -0
- package/dist/url-scheme-policy-DR5DgvkM.js +1 -0
- package/dist/use-card-resolution-DaZqAdWf.js +1 -0
- package/dist/{elements/chunks/variant-aurora-qt6Zct8M.js → variant-aurora-BhLuYxJR.js} +1 -1
- package/dist/{variant-aurora-B8II3-I1.js → variant-aurora-CNmfHhcx.js} +2 -2
- package/dist/{variant-aurora-CMNWOSJR.js → variant-aurora-D6GsdTPA.js} +2 -2
- package/dist/{variant-aurora-CcuDMWwQ.js → variant-aurora-DbW_OWL2.js} +1 -1
- package/dist/{elements/chunks/variant-custom-tJp22_BQ.js → variant-custom-BRvaNHSi.js} +1 -1
- package/dist/{variant-custom-L16JLLZy.js → variant-custom-BvYHR62b.js} +1 -1
- package/dist/{variant-custom-BdvYC7af.js → variant-custom-DMTrEO5w.js} +2 -2
- package/dist/{variant-custom-C714mqKl.js → variant-custom-DV2x254s.js} +2 -2
- package/dist/{variant-wave-ecwykeyL.js → variant-wave-BNMGrDfj.js} +2 -2
- package/dist/{variant-wave-2S4La2Ka.js → variant-wave-BpDd8t3Z.js} +1 -1
- package/dist/{variant-wave-D7ruiA1W.js → variant-wave-CyBueXj9.js} +2 -2
- package/dist/{elements/chunks/variant-wave-CaQ5ti39.js → variant-wave-sp-qwsdI.js} +1 -1
- package/dist/vue-BmIZj4XD.js +1 -33
- package/dist/x-Z5UntkIJ.js +1 -0
- package/frameworks/react/index.tsx +210 -22
- package/llms-full.txt +1184 -22
- package/llms.txt +6 -3
- package/package.json +17 -4
- package/src/agent-tooling/README.md +192 -0
- package/src/agent-tooling/catalog/invariants.ts +3 -3
- package/src/agent-tooling/catalog/surfaces.ts +72 -0
- package/src/agent-tooling/construct/cli-entry.ts +8 -0
- package/src/agent-tooling/construct/cli.ts +147 -0
- package/src/agent-tooling/construct/codegen.ts +1635 -0
- package/src/agent-tooling/construct/construct.v1.schema.json +319 -0
- package/src/agent-tooling/construct/dev.ts +148 -0
- package/src/agent-tooling/construct/fixtures/demo-widget.construct.json +7 -0
- package/src/agent-tooling/construct/fixtures/ops-console.construct.json +44 -0
- package/src/agent-tooling/construct/fixtures/owner-widget.construct.json +32 -0
- package/src/agent-tooling/construct/schema.ts +452 -0
- package/src/agent-tooling/mcp/server.ts +2 -1
- package/src/agent-tooling/mcp/tools/construct.ts +130 -0
- package/src/agent-tooling/mcp/tools/debug.ts +126 -4
- package/src/agent-tooling/mcp/tools/reference.ts +104 -3
- package/src/agent-tooling/recipes/composed-thread.ts +714 -0
- package/src/agent-tooling/recipes/index.ts +22 -0
- package/src/agent-tooling/recipes/types.ts +32 -0
- package/src/agent-tooling/registry.ts +5 -0
- package/src/components/attachment-types.ts +7 -0
- package/src/components/audio-visualizer/fit-scale.ts +1 -1
- package/src/components/card-renderer.tsx +39 -8
- package/src/components/card.tsx +10 -2
- package/src/components/chat-scope-picker.tsx +2 -2
- package/src/components/chat-thread.tsx +602 -43
- package/src/components/choice-card.tsx +102 -37
- package/src/components/coachmark.tsx +1 -1
- package/src/components/code-block.tsx +2 -2
- package/src/components/composer.tsx +89 -15
- package/src/components/confirm-card.tsx +20 -4
- package/src/components/conversation-item.tsx +56 -9
- package/src/components/conversation-list.tsx +25 -10
- package/src/components/conversation-panel.tsx +118 -0
- package/src/components/empty.tsx +14 -3
- package/src/components/file-tree.tsx +5 -1
- package/src/components/form-widgets.tsx +257 -195
- package/src/components/form.tsx +297 -9
- package/src/components/home-panel.tsx +159 -0
- package/src/components/loader.tsx +12 -5
- package/src/components/message-skills.tsx +1 -1
- package/src/components/message.tsx +71 -11
- package/src/components/prompt-input.tsx +7 -1
- package/src/components/prompt-suggestion.tsx +4 -1
- package/src/components/reasoning.tsx +30 -3
- package/src/components/response-compare.tsx +2 -2
- package/src/components/scroll-button.tsx +56 -4
- package/src/components/source.tsx +6 -1
- package/src/components/tasks-card.tsx +58 -16
- package/src/components/thread.tsx +10 -1
- package/src/components/toast.tsx +1 -1
- package/src/components/tool-types.ts +9 -0
- package/src/components/widget-tab-bar.tsx +73 -0
- package/src/elements/attachments.tsx +3 -1
- package/src/elements/chat-workspace.tsx +1 -1
- package/src/elements/chat.tsx +115 -5
- package/src/elements/checkbox-group.tsx +164 -0
- package/src/elements/checkbox.tsx +134 -0
- package/src/elements/compiled.css +1 -1
- package/src/elements/composer.tsx +12 -1
- package/src/elements/conversation-item.tsx +62 -22
- package/src/elements/conversation-list.tsx +2 -2
- package/src/elements/define-entry.ts +12 -0
- package/src/elements/dock.tsx +11 -0
- package/src/elements/element-data-types.ts +40 -0
- package/src/elements/element-manifest.json +24 -0
- package/src/elements/element-meta.json +767 -34
- package/src/elements/element-nonscalar.json +17 -0
- package/src/elements/element-types.d.ts +380 -26
- package/src/elements/feedback-bar.tsx +5 -0
- package/src/elements/icon-names.json +29 -0
- package/src/elements/input.tsx +312 -23
- package/src/elements/message.tsx +2 -0
- package/src/elements/pane-grid.tsx +111 -0
- package/src/elements/prompt-input.tsx +8 -2
- package/src/elements/radio-group.tsx +129 -0
- package/src/elements/register-impl.ts +6 -0
- package/src/elements/scroll-button.tsx +54 -6
- package/src/elements/select.tsx +165 -0
- package/src/elements/slider.tsx +171 -0
- package/src/elements/slots.ts +1 -1
- package/src/elements/styles.css +89 -3
- package/src/elements/thread.tsx +2 -0
- package/src/elements/toast.tsx +14 -1
- package/src/index.ts +5 -2
- package/src/primitives/card-data-types.ts +49 -0
- package/src/primitives/card-host.tsx +4 -2
- package/src/primitives/card-routing.ts +7 -56
- package/src/primitives/card-schemas/form.schema.json +21 -1
- package/src/primitives/card-validate.ts +10 -2
- package/src/primitives/chat-config.tsx +33 -6
- package/src/primitives/conversation-store.ts +248 -0
- package/src/primitives/field-mask.ts +256 -0
- package/src/primitives/field-semantics.ts +115 -0
- package/src/primitives/input-mask.ts +853 -0
- package/src/primitives/toast-store.ts +66 -4
- package/src/primitives/url-scheme-policy.ts +70 -0
- package/src/primitives/use-resize-observer.ts +2 -2
- package/src/schemas/tool-defs.ts +12 -2
- package/src/solid.ts +20 -2
- package/src/state/index.ts +1 -1
- package/src/state/mock.ts +92 -6
- package/src/types.ts +45 -3
- package/src/ui/agent-card.tsx +2 -2
- package/src/ui/avatar.tsx +1 -1
- package/src/ui/checkbox-group.tsx +153 -0
- package/src/ui/checkbox.tsx +63 -0
- package/src/ui/dock.tsx +192 -7
- package/src/ui/icon.tsx +53 -0
- package/src/ui/input.tsx +249 -9
- package/src/ui/kbd.tsx +1 -1
- package/src/ui/nav.tsx +1 -1
- package/src/ui/pane-group.tsx +2 -2
- package/src/ui/radio.tsx +150 -0
- package/src/ui/select.tsx +168 -0
- package/src/ui/slider.tsx +178 -0
- package/src/ui/switch.tsx +49 -18
- package/src/utils/cn.ts +11 -5
- package/theme.css +112 -13
- package/dist/elements/chunks/action-icons-D9u3OzYW.js +0 -1
- package/dist/elements/chunks/arrow-left-CVh1TeN7.js +0 -1
- package/dist/elements/chunks/artifact-BkYcfIlZ.js +0 -1
- package/dist/elements/chunks/attachments-DwfNlubq.js +0 -1
- package/dist/elements/chunks/badge-Q0-Cmwzz.js +0 -1
- package/dist/elements/chunks/bash-InADTalH.js +0 -1
- package/dist/elements/chunks/card-renderer-3Dyl-FpN.js +0 -1
- package/dist/elements/chunks/card-routing-BK09BdmL.js +0 -1
- package/dist/elements/chunks/check-B5kBPKeo.js +0 -1
- package/dist/elements/chunks/chevron-down-DZ1GS39h.js +0 -1
- package/dist/elements/chunks/chevron-right-CvP7OUd2.js +0 -1
- package/dist/elements/chunks/choice-card-D4QUIOWZ.js +0 -1
- package/dist/elements/chunks/circle-CDf9g6MQ.js +0 -1
- package/dist/elements/chunks/circle-check-CA47Nqbz.js +0 -1
- package/dist/elements/chunks/circle-x-CJ_HVbC8.js +0 -1
- package/dist/elements/chunks/code-block-BdLiTitd.js +0 -1
- package/dist/elements/chunks/composer-Byve-n8K.js +0 -69
- package/dist/elements/chunks/confirm-card-B0flE3MN.js +0 -1
- package/dist/elements/chunks/controllable-DTwTIlwp.js +0 -1
- package/dist/elements/chunks/conversation-item-BDztezOG.js +0 -1
- package/dist/elements/chunks/copy-Nf-kqxXH.js +0 -1
- package/dist/elements/chunks/core-AYMC6_lb.js +0 -12
- package/dist/elements/chunks/css-M7EaDHN_.js +0 -1
- package/dist/elements/chunks/default-input-C2iLFq0b.js +0 -1
- package/dist/elements/chunks/define-wjHR1MkU.js +0 -1
- package/dist/elements/chunks/download-C4V7tBdb.js +0 -1
- package/dist/elements/chunks/embed-D3KewsIJ.js +0 -1
- package/dist/elements/chunks/engine-javascript-vq0WuIJl.js +0 -141
- package/dist/elements/chunks/file-text-D1G8khle.js +0 -1
- package/dist/elements/chunks/folder-WW2LGLid.js +0 -1
- package/dist/elements/chunks/form-CQirdC4W.js +0 -1
- package/dist/elements/chunks/github-dark-dimmed-DUshB20C.js +0 -1
- package/dist/elements/chunks/github-light-JYsPkUQd.js +0 -1
- package/dist/elements/chunks/hover-card-CJJkfHTK.js +0 -1
- package/dist/elements/chunks/html-CPZ3oZQ7.js +0 -1
- package/dist/elements/chunks/icon-Cfgmf4fa.js +0 -1
- package/dist/elements/chunks/info-DX3YMOt6.js +0 -1
- package/dist/elements/chunks/input-BtW9U6Sq.js +0 -1
- package/dist/elements/chunks/javascript-C25yR2R2.js +0 -1
- package/dist/elements/chunks/json-DxJze_jm.js +0 -1
- package/dist/elements/chunks/kbd-LGXwuT_V.js +0 -1
- package/dist/elements/chunks/link-2My69BqT.js +0 -1
- package/dist/elements/chunks/loader-iOxc_Tu-.js +0 -1
- package/dist/elements/chunks/message-VMZohrXx.js +0 -1
- package/dist/elements/chunks/message-circle-CpXMM-_n.js +0 -1
- package/dist/elements/chunks/message-square-DxcWtETQ.js +0 -1
- package/dist/elements/chunks/message-tZmV2A3p.js +0 -1
- package/dist/elements/chunks/paperclip-CRZVp4z_.js +0 -1
- package/dist/elements/chunks/progress-bar-DNy66e_E.js +0 -1
- package/dist/elements/chunks/prompt-suggestion-Bn64Nl7L.js +0 -1
- package/dist/elements/chunks/reasoning-Emn9N4-T.js +0 -1
- package/dist/elements/chunks/rotate-cw-CPWe37D9.js +0 -1
- package/dist/elements/chunks/scroll-area-ClZkZxIk.js +0 -1
- package/dist/elements/chunks/scroll-button-DPE-t3x_.js +0 -1
- package/dist/elements/chunks/share-CyfnNEqp.js +0 -1
- package/dist/elements/chunks/source-UWCvmVak.js +0 -1
- package/dist/elements/chunks/star-DoHFAikQ.js +0 -1
- package/dist/elements/chunks/store-Cjq0qwYN.js +0 -1
- package/dist/elements/chunks/svelte--5p79yCD.js +0 -1
- package/dist/elements/chunks/tasks-card-CmZ5xh6v.js +0 -1
- package/dist/elements/chunks/text-shimmer-DYn09zrz.js +0 -1
- package/dist/elements/chunks/textarea-skiGHURM.js +0 -1
- package/dist/elements/chunks/toast-store-CFnQpThX.js +0 -1
- package/dist/elements/chunks/tsx-B8rCNbgL.js +0 -1
- package/dist/elements/chunks/typescript-RycA9KXf.js +0 -1
- package/dist/elements/chunks/use-card-resolution-DoA2f_EU.js +0 -1
- package/dist/elements/chunks/vue-BmIZj4XD.js +0 -1
- package/dist/elements/chunks/x-B6UnOiLw.js +0 -1
- package/dist/llms/llms-full.txt +0 -2949
- package/dist/llms/llms.txt +0 -156
- package/dist/register-impl-DpE7icIb.js +0 -293
- package/dist/ui/stat.d.ts +0 -16
- package/src/ui/stat.tsx +0 -41
- /package/dist/{elements/chunks/card-tags-D8lZ-C_U.js → card-tags-D8lZ-C_U.js} +0 -0
- /package/dist/{elements/chunks/link-preview-DNILK391.js → link-preview-DNILK391.js} +0 -0
- /package/dist/{elements/chunks/slots-DaNjX0rc.js → slots-DaNjX0rc.js} +0 -0
package/dist/state.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
function
|
|
1
|
+
function w(e) {
|
|
2
2
|
const t = e.toLowerCase();
|
|
3
3
|
return t ? t.includes("bash") || t.includes("command") || t.includes("shell") || t.includes("terminal") || t.includes("exec") ? "command" : t.includes("edit") || t.includes("write") || t.includes("patch") || t.includes("replace") || t.includes("delete") ? "file-change" : t.includes("search") || t.includes("grep") || t.includes("glob") || t.includes("find") ? "search" : t.includes("fetch") || t.includes("http") || t.includes("browse") || t.includes("crawl") ? "fetch" : t.includes("mcp") ? "mcp" : t.includes("image") || t.includes("screenshot") || t.includes("vision") ? "image" : "generic" : "generic";
|
|
4
4
|
}
|
|
5
|
-
function
|
|
5
|
+
function m(e) {
|
|
6
6
|
const t = /* @__PURE__ */ new WeakSet(), n = (r) => {
|
|
7
7
|
if (r === null || typeof r != "object") return r;
|
|
8
8
|
if (t.has(r)) return "[circular]";
|
|
@@ -12,11 +12,11 @@ function p(e) {
|
|
|
12
12
|
};
|
|
13
13
|
return JSON.stringify(n(e)) ?? "";
|
|
14
14
|
}
|
|
15
|
-
function
|
|
15
|
+
function _(e, t) {
|
|
16
16
|
const n = e[e.length - 1];
|
|
17
17
|
return (n == null ? void 0 : n.type) === "text" ? [...e.slice(0, -1), { ...n, text: n.text + t }] : [...e, { type: "text", text: t }];
|
|
18
18
|
}
|
|
19
|
-
function
|
|
19
|
+
function R(e, t, n = {}) {
|
|
20
20
|
const r = n.index ?? 0, o = n.streamId, a = e.findIndex(
|
|
21
21
|
(u) => u.type === "reasoning" && (u.index ?? 0) === r && u.streamId === o
|
|
22
22
|
);
|
|
@@ -29,9 +29,9 @@ function T(e, t, n = {}) {
|
|
|
29
29
|
signature: n.signature ?? i.signature,
|
|
30
30
|
raw: n.raw ?? i.raw
|
|
31
31
|
};
|
|
32
|
-
return
|
|
32
|
+
return N(i, s) ? e : [...e.slice(0, a), s, ...e.slice(a + 1)];
|
|
33
33
|
}
|
|
34
|
-
const
|
|
34
|
+
const E = [
|
|
35
35
|
"type",
|
|
36
36
|
"text",
|
|
37
37
|
"index",
|
|
@@ -39,7 +39,7 @@ const b = [
|
|
|
39
39
|
"label",
|
|
40
40
|
"signature",
|
|
41
41
|
"raw"
|
|
42
|
-
],
|
|
42
|
+
], C = {
|
|
43
43
|
type: (e, t) => e.type === t.type,
|
|
44
44
|
text: (e, t) => e.text === t.text,
|
|
45
45
|
index: (e, t) => e.index === t.index,
|
|
@@ -48,16 +48,16 @@ const b = [
|
|
|
48
48
|
signature: (e, t) => e.signature === t.signature,
|
|
49
49
|
raw: (e, t) => e.raw === t.raw
|
|
50
50
|
};
|
|
51
|
-
function
|
|
52
|
-
return
|
|
51
|
+
function N(e, t) {
|
|
52
|
+
return E.every((n) => C[n](e, t));
|
|
53
53
|
}
|
|
54
|
-
function
|
|
54
|
+
function P(e, t) {
|
|
55
55
|
const n = e.findIndex((o) => o.type === "card" && o.envelope.id === t.id);
|
|
56
56
|
if (n < 0) return [...e, { type: "card", envelope: t }];
|
|
57
57
|
const r = e[n];
|
|
58
|
-
return
|
|
58
|
+
return m(r.envelope) === m(t) ? e : [...e.slice(0, n), { ...r, envelope: t }, ...e.slice(n + 1)];
|
|
59
59
|
}
|
|
60
|
-
function
|
|
60
|
+
function D(e, t, n) {
|
|
61
61
|
const r = e.findIndex((i) => i.type === "tool" && i.tool.toolCallId === t);
|
|
62
62
|
if (r < 0) {
|
|
63
63
|
const i = {
|
|
@@ -66,15 +66,15 @@ function M(e, t, n) {
|
|
|
66
66
|
...n,
|
|
67
67
|
toolCallId: t
|
|
68
68
|
};
|
|
69
|
-
return i.kind = i.kind ??
|
|
69
|
+
return i.kind = i.kind ?? w(i.type), [...e, { type: "tool", tool: i }];
|
|
70
70
|
}
|
|
71
71
|
const o = e[r].tool, a = { ...o, ...n, toolCallId: t };
|
|
72
|
-
return a.kind =
|
|
72
|
+
return a.kind = K(o, n, a.type), a.raw === void 0 && o.raw !== void 0 && (a.raw = o.raw), L(o, a) ? e : [...e.slice(0, r), { type: "tool", tool: a }, ...e.slice(r + 1)];
|
|
73
73
|
}
|
|
74
|
-
function
|
|
75
|
-
return t.kind !== void 0 ? t.kind : e.kind === void 0 || e.kind ===
|
|
74
|
+
function K(e, t, n) {
|
|
75
|
+
return t.kind !== void 0 ? t.kind : e.kind === void 0 || e.kind === w(e.type) ? w(n) : e.kind;
|
|
76
76
|
}
|
|
77
|
-
const
|
|
77
|
+
const $ = [
|
|
78
78
|
"type",
|
|
79
79
|
"state",
|
|
80
80
|
"kind",
|
|
@@ -84,7 +84,7 @@ const R = [
|
|
|
84
84
|
"raw",
|
|
85
85
|
"input",
|
|
86
86
|
"output"
|
|
87
|
-
],
|
|
87
|
+
], U = {
|
|
88
88
|
type: (e, t) => e.type === t.type,
|
|
89
89
|
state: (e, t) => e.state === t.state,
|
|
90
90
|
kind: (e, t) => e.kind === t.kind,
|
|
@@ -92,52 +92,52 @@ const R = [
|
|
|
92
92
|
errorText: (e, t) => e.errorText === t.errorText,
|
|
93
93
|
rawInput: (e, t) => e.rawInput === t.rawInput,
|
|
94
94
|
raw: (e, t) => e.raw === t.raw,
|
|
95
|
-
input: (e, t) => e.input === t.input ||
|
|
96
|
-
output: (e, t) => e.output === t.output ||
|
|
95
|
+
input: (e, t) => e.input === t.input || m(e.input) === m(t.input),
|
|
96
|
+
output: (e, t) => e.output === t.output || m(e.output) === m(t.output)
|
|
97
97
|
};
|
|
98
|
-
function
|
|
99
|
-
return
|
|
98
|
+
function L(e, t) {
|
|
99
|
+
return $.every((n) => U[n](e, t));
|
|
100
100
|
}
|
|
101
|
-
function
|
|
101
|
+
function F() {
|
|
102
102
|
return typeof crypto < "u" && crypto.randomUUID ? crypto.randomUUID() : "kai-" + Math.random().toString(36).slice(2);
|
|
103
103
|
}
|
|
104
|
-
function
|
|
105
|
-
return { id: n.id ??
|
|
104
|
+
function B(e, t, n = {}) {
|
|
105
|
+
return { id: n.id ?? F(), role: e, parts: [{ type: "text", text: t }], ...n };
|
|
106
106
|
}
|
|
107
|
-
function
|
|
107
|
+
function Q(e) {
|
|
108
108
|
return e.filter((t) => t.type === "text").map((t) => t.text).join("");
|
|
109
109
|
}
|
|
110
|
-
function
|
|
110
|
+
function X(e, t) {
|
|
111
111
|
return [...e, t];
|
|
112
112
|
}
|
|
113
|
-
function
|
|
113
|
+
function Z(e, t) {
|
|
114
114
|
const n = e.findIndex((o) => o.id === t.id);
|
|
115
115
|
if (n === -1) return [...e, t];
|
|
116
116
|
const r = e.slice();
|
|
117
117
|
return r[n] = t, r;
|
|
118
118
|
}
|
|
119
|
-
function
|
|
119
|
+
function v(e, t, n) {
|
|
120
120
|
return e.map(
|
|
121
121
|
(r) => r.id === t ? typeof n == "function" ? n(r) : { ...r, ...n } : r
|
|
122
122
|
);
|
|
123
123
|
}
|
|
124
|
-
function
|
|
124
|
+
function ee(e, t) {
|
|
125
125
|
return e.filter((n) => n.id !== t);
|
|
126
126
|
}
|
|
127
|
-
function
|
|
128
|
-
return e.map((r) => r.id === t ? { ...r, parts:
|
|
127
|
+
function te(e, t, n) {
|
|
128
|
+
return e.map((r) => r.id === t ? { ...r, parts: _(r.parts, n) } : r);
|
|
129
129
|
}
|
|
130
|
-
function
|
|
130
|
+
function ne(e, t) {
|
|
131
131
|
return e.includes(t) ? e.slice() : [...e, t];
|
|
132
132
|
}
|
|
133
|
-
function
|
|
133
|
+
function re(e, t) {
|
|
134
134
|
return e.filter((n) => n !== t);
|
|
135
135
|
}
|
|
136
|
-
function
|
|
136
|
+
function j() {
|
|
137
137
|
return typeof crypto < "u" && crypto.randomUUID ? crypto.randomUUID() : "kai-" + Math.random().toString(36).slice(2);
|
|
138
138
|
}
|
|
139
|
-
function
|
|
140
|
-
const n = t.id ??
|
|
139
|
+
function oe(e, t = {}) {
|
|
140
|
+
const n = t.id ?? j();
|
|
141
141
|
let r = !1;
|
|
142
142
|
e((i) => [...i, { id: n, role: "assistant", parts: [], ...t }]);
|
|
143
143
|
const o = (i) => {
|
|
@@ -150,17 +150,17 @@ function Q(e, t = {}) {
|
|
|
150
150
|
}, a = {
|
|
151
151
|
id: n,
|
|
152
152
|
appendText(i) {
|
|
153
|
-
return o((s) =>
|
|
153
|
+
return o((s) => _(s, i)), a;
|
|
154
154
|
},
|
|
155
155
|
appendReasoning(i, s) {
|
|
156
|
-
return o((u) =>
|
|
156
|
+
return o((u) => R(u, i, s)), a;
|
|
157
157
|
},
|
|
158
158
|
upsertTool(i, s) {
|
|
159
|
-
return o((u) =>
|
|
159
|
+
return o((u) => D(u, i, s)), a;
|
|
160
160
|
},
|
|
161
161
|
// Upsert, not append: keyed on envelope.id so a revised card replaces itself.
|
|
162
162
|
addCard(i) {
|
|
163
|
-
return o((s) =>
|
|
163
|
+
return o((s) => P(s, i)), a;
|
|
164
164
|
},
|
|
165
165
|
addSource(i) {
|
|
166
166
|
return o((s) => [...s, { type: "source", source: i }]), a;
|
|
@@ -176,8 +176,8 @@ function Q(e, t = {}) {
|
|
|
176
176
|
o((u) => {
|
|
177
177
|
let c = !1;
|
|
178
178
|
const d = u.map((l) => {
|
|
179
|
-
var
|
|
180
|
-
return l.type !== "tool" || l.tool.state === "output-available" ? l : l.tool.state === "output-error" && ((
|
|
179
|
+
var g;
|
|
180
|
+
return l.type !== "tool" || l.tool.state === "output-available" ? l : l.tool.state === "output-error" && ((g = l.tool.errorText) != null && g.trim()) ? (c = !0, l) : (c = !0, { ...l, tool: { ...l.tool, state: "output-error", errorText: s } });
|
|
181
181
|
});
|
|
182
182
|
return c || !s ? d : [...d, { type: "text", text: s }];
|
|
183
183
|
}), r = !0;
|
|
@@ -185,7 +185,7 @@ function Q(e, t = {}) {
|
|
|
185
185
|
};
|
|
186
186
|
return a;
|
|
187
187
|
}
|
|
188
|
-
function
|
|
188
|
+
function ie(e, t) {
|
|
189
189
|
const n = {
|
|
190
190
|
id: e.id,
|
|
191
191
|
appendText(r) {
|
|
@@ -215,7 +215,7 @@ function X(e, t) {
|
|
|
215
215
|
};
|
|
216
216
|
return n;
|
|
217
217
|
}
|
|
218
|
-
function
|
|
218
|
+
function G(e, t, n, r = {}) {
|
|
219
219
|
var i;
|
|
220
220
|
let o = !1;
|
|
221
221
|
const a = e.map((s) => {
|
|
@@ -226,12 +226,12 @@ function D(e, t, n, r = {}) {
|
|
|
226
226
|
});
|
|
227
227
|
return o ? a : ((i = r.onDrop) == null || i.call(r, t), e);
|
|
228
228
|
}
|
|
229
|
-
function
|
|
229
|
+
function ae(e, t, n = {}) {
|
|
230
230
|
return (r) => {
|
|
231
|
-
e((o) =>
|
|
231
|
+
e((o) => G(o, t, r, n));
|
|
232
232
|
};
|
|
233
233
|
}
|
|
234
|
-
function
|
|
234
|
+
function se(e) {
|
|
235
235
|
const t = /* @__PURE__ */ new Map(), n = () => Array.from(t.keys()), r = () => e == null ? void 0 : e(n());
|
|
236
236
|
return {
|
|
237
237
|
begin(o) {
|
|
@@ -253,37 +253,37 @@ function v(e) {
|
|
|
253
253
|
streamingIds: n
|
|
254
254
|
};
|
|
255
255
|
}
|
|
256
|
-
function
|
|
256
|
+
function p(e) {
|
|
257
257
|
return typeof e == "object" && e !== null;
|
|
258
258
|
}
|
|
259
|
-
const
|
|
259
|
+
const J = {
|
|
260
260
|
text: (e) => typeof e.text == "string",
|
|
261
261
|
reasoning: (e) => typeof e.text == "string",
|
|
262
|
-
tool: (e) =>
|
|
263
|
-
card: (e) =>
|
|
264
|
-
source: (e) =>
|
|
265
|
-
file: (e) =>
|
|
262
|
+
tool: (e) => p(e.tool),
|
|
263
|
+
card: (e) => p(e.envelope) && typeof e.envelope.type == "string" && typeof e.envelope.id == "string",
|
|
264
|
+
source: (e) => p(e.source),
|
|
265
|
+
file: (e) => p(e.attachment)
|
|
266
266
|
};
|
|
267
|
-
function
|
|
268
|
-
if (!
|
|
267
|
+
function Y(e, t) {
|
|
268
|
+
if (!p(e) || typeof e.type != "string")
|
|
269
269
|
return t.push({ at: "part", reason: "not a part record", value: e }), null;
|
|
270
|
-
const n =
|
|
270
|
+
const n = J[e.type];
|
|
271
271
|
return n ? n(e) ? e : (t.push({ at: "part", reason: `missing or invalid payload for "${e.type}" part`, value: e }), null) : (t.push({ at: "part", reason: `unknown part type "${e.type}"`, value: e }), null);
|
|
272
272
|
}
|
|
273
|
-
function
|
|
274
|
-
if (!
|
|
273
|
+
function q(e, t) {
|
|
274
|
+
if (!p(e) || typeof e.id != "string" || e.role !== "user" && e.role !== "assistant" || !Array.isArray(e.parts))
|
|
275
275
|
return t.push({ at: "message", reason: "not a message record (id/role/parts)", value: e }), null;
|
|
276
|
-
const n = e.parts.map((o) =>
|
|
276
|
+
const n = e.parts.map((o) => Y(o, t)).filter((o) => o !== null);
|
|
277
277
|
if (n.length === 0)
|
|
278
278
|
return t.push({ at: "message", reason: "no readable parts survived", value: e }), null;
|
|
279
279
|
const r = { id: e.id, role: e.role, parts: n };
|
|
280
|
-
return (e.feedback === "like" || e.feedback === "dislike") && (r.feedback = e.feedback),
|
|
280
|
+
return (e.feedback === "like" || e.feedback === "dislike") && (r.feedback = e.feedback), p(e.avatar) && (r.avatar = e.avatar), Array.isArray(e.actions) && (r.actions = e.actions), r;
|
|
281
281
|
}
|
|
282
|
-
function
|
|
282
|
+
function ue(e) {
|
|
283
283
|
const t = [];
|
|
284
|
-
return Array.isArray(e) ? { messages: e.map((r) =>
|
|
284
|
+
return Array.isArray(e) ? { messages: e.map((r) => q(r, t)).filter((r) => r !== null), dropped: t } : { messages: [], dropped: [{ at: "thread", reason: "stored thread is not an array", value: e }] };
|
|
285
285
|
}
|
|
286
|
-
function
|
|
286
|
+
function le(e, t) {
|
|
287
287
|
const n = t.setTimeout ?? ((c, d) => setTimeout(c, d)), r = t.clearTimeout ?? ((c) => clearTimeout(c));
|
|
288
288
|
let o, a = !1, i;
|
|
289
289
|
const s = () => {
|
|
@@ -302,12 +302,12 @@ function te(e, t) {
|
|
|
302
302
|
pending: () => a
|
|
303
303
|
};
|
|
304
304
|
}
|
|
305
|
-
const
|
|
305
|
+
const A = "kai-mock", H = "_kai_mock", S = "no provider was contacted — this reply was generated locally by createMockResponder() from @kitn.ai/ui/state", T = `: kai-mock — NO PROVIDER WAS CONTACTED. ${S}.`, b = [
|
|
306
306
|
"Hi! I'm a local mock — no backend, no API key, no provider was contacted. I'm streaming through the same parser a real model would, so what you're seeing is the real rendering path with a canned reply.",
|
|
307
307
|
"Still the mock. Swap `createMockResponder()` for a `fetch('/api/chat', …)` and nothing else in this handler changes — that's the whole point of the seam.",
|
|
308
308
|
"Mock again. Every frame I send is tagged `_kai_mock` and my usage reports zero tokens, so nothing here can be mistaken for a real turn."
|
|
309
309
|
];
|
|
310
|
-
function
|
|
310
|
+
function V(e, t) {
|
|
311
311
|
const n = e.split(/(\s+)/).filter((o) => o !== "");
|
|
312
312
|
if (t <= 1) return n;
|
|
313
313
|
const r = [];
|
|
@@ -315,37 +315,62 @@ function L(e, t) {
|
|
|
315
315
|
r.push(n.slice(o, o + t).join(""));
|
|
316
316
|
return r;
|
|
317
317
|
}
|
|
318
|
-
function
|
|
318
|
+
function y(e, t) {
|
|
319
319
|
return `data: ${JSON.stringify({
|
|
320
|
-
[
|
|
320
|
+
[H]: S,
|
|
321
321
|
id: e,
|
|
322
322
|
object: "chat.completion.chunk",
|
|
323
|
-
model:
|
|
323
|
+
model: A,
|
|
324
324
|
...t
|
|
325
325
|
})}
|
|
326
326
|
|
|
327
327
|
`;
|
|
328
328
|
}
|
|
329
|
-
const
|
|
330
|
-
function
|
|
329
|
+
const k = (e) => e > 0 ? new Promise((t) => setTimeout(t, e)) : Promise.resolve(), W = (e) => typeof e == "string" ? { text: e } : e, I = 16;
|
|
330
|
+
function z(e) {
|
|
331
|
+
const t = [];
|
|
332
|
+
for (let n = 0; n < e.length; n += I)
|
|
333
|
+
t.push(e.slice(n, n + I));
|
|
334
|
+
return t.length > 0 ? t : [""];
|
|
335
|
+
}
|
|
336
|
+
function ce(e = {}) {
|
|
331
337
|
const {
|
|
332
|
-
replies: t =
|
|
338
|
+
replies: t = b,
|
|
333
339
|
delayMs: n = 24,
|
|
334
340
|
chunkSize: r = 1,
|
|
335
341
|
announce: o = !0
|
|
336
|
-
} = e, a = t.length > 0 ? t :
|
|
342
|
+
} = e, a = t.length > 0 ? t : b;
|
|
337
343
|
let i = 0, s = !1;
|
|
338
344
|
return function(c) {
|
|
339
|
-
const d = a[i % a.length], l = `kai-mock-${i + 1}
|
|
345
|
+
const d = W(a[i % a.length]), l = `kai-mock-${i + 1}`, g = i + 1;
|
|
340
346
|
return i += 1, {
|
|
341
347
|
async *[Symbol.asyncIterator]() {
|
|
342
|
-
o && !s && (s = !0, console.info(`[kai] ${
|
|
348
|
+
o && !s && (s = !0, console.info(`[kai] ${T.slice(2)}`)), yield `${T}
|
|
343
349
|
|
|
344
|
-
`, yield
|
|
345
|
-
for (const
|
|
346
|
-
await
|
|
347
|
-
|
|
348
|
-
|
|
350
|
+
`, yield y(l, { choices: [{ index: 0, delta: { role: "assistant" }, finish_reason: null }] });
|
|
351
|
+
for (const f of V(d.text ?? "", r))
|
|
352
|
+
await k(n), yield y(l, { choices: [{ index: 0, delta: { content: f }, finish_reason: null }] });
|
|
353
|
+
const h = d.toolCalls ?? [];
|
|
354
|
+
for (let f = 0; f < h.length; f += 1) {
|
|
355
|
+
const x = h[f], M = x.id ?? `call_${A}-${g}-${f + 1}`;
|
|
356
|
+
await k(n), yield y(l, {
|
|
357
|
+
choices: [{
|
|
358
|
+
index: 0,
|
|
359
|
+
delta: { tool_calls: [{ index: f, id: M, function: { name: x.name, arguments: "" } }] },
|
|
360
|
+
finish_reason: null
|
|
361
|
+
}]
|
|
362
|
+
});
|
|
363
|
+
for (const O of z(JSON.stringify(x.arguments ?? {})))
|
|
364
|
+
await k(n), yield y(l, {
|
|
365
|
+
choices: [{
|
|
366
|
+
index: 0,
|
|
367
|
+
delta: { tool_calls: [{ index: f, function: { arguments: O } }] },
|
|
368
|
+
finish_reason: null
|
|
369
|
+
}]
|
|
370
|
+
});
|
|
371
|
+
}
|
|
372
|
+
yield y(l, {
|
|
373
|
+
choices: [{ index: 0, delta: {}, finish_reason: h.length > 0 ? "tool_calls" : "stop" }],
|
|
349
374
|
usage: { prompt_tokens: 0, completion_tokens: 0, total_tokens: 0 }
|
|
350
375
|
}), yield `data: [DONE]
|
|
351
376
|
|
|
@@ -355,32 +380,32 @@ function ne(e = {}) {
|
|
|
355
380
|
};
|
|
356
381
|
}
|
|
357
382
|
export {
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
383
|
+
b as DEFAULT_MOCK_REPLIES,
|
|
384
|
+
T as MOCK_BANNER,
|
|
385
|
+
S as MOCK_MARKER,
|
|
386
|
+
H as MOCK_MARKER_KEY,
|
|
387
|
+
A as MOCK_MODEL_ID,
|
|
388
|
+
ne as addSuggestion,
|
|
389
|
+
X as appendMessage,
|
|
390
|
+
R as appendReasoningPart,
|
|
391
|
+
te as appendText,
|
|
392
|
+
_ as appendTextPart,
|
|
393
|
+
ae as bindThreadMessages,
|
|
394
|
+
w as classifyTool,
|
|
395
|
+
oe as createAssistantStream,
|
|
396
|
+
ce as createMockResponder,
|
|
397
|
+
le as createSaveScheduler,
|
|
398
|
+
se as createThreadSessions,
|
|
399
|
+
m as fingerprint,
|
|
400
|
+
ie as onStreamSettled,
|
|
401
|
+
ue as parseStoredThread,
|
|
402
|
+
Q as partsToText,
|
|
403
|
+
ee as removeMessage,
|
|
404
|
+
re as removeSuggestion,
|
|
405
|
+
B as textMessage,
|
|
406
|
+
v as updateMessage,
|
|
407
|
+
G as updateThreadMessages,
|
|
408
|
+
P as upsertCardPart,
|
|
409
|
+
Z as upsertMessage,
|
|
410
|
+
D as upsertToolPart
|
|
386
411
|
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{$ as u,L as z,N as P,O as w,g as F}from"./define-By-uL588.js";const h=Symbol("store-raw"),y=Symbol("store-node"),f=Symbol("store-has"),m=Symbol("store-self");function v(t){let r=t[u];if(!r&&(Object.defineProperty(t,u,{value:r=new Proxy(t,L)}),!Array.isArray(t))){const o=Object.keys(t),e=Object.getOwnPropertyDescriptors(t),c=Object.getPrototypeOf(t),n=c!==null&&t!==null&&typeof t=="object"&&!Array.isArray(t)&&c!==Object.prototype;if(n){const i=Object.getOwnPropertyDescriptors(c);o.push(...Object.keys(i)),Object.assign(e,i)}for(let i=0,l=o.length;i<l;i++){const s=o[i];n&&s==="constructor"||e[s].get&&Object.defineProperty(t,s,{configurable:!0,enumerable:e[s].enumerable,get:e[s].get.bind(r)})}}return r}function g(t){let r;return t!=null&&typeof t=="object"&&(t[u]||!(r=Object.getPrototypeOf(t))||r===Object.prototype||Array.isArray(t))}function a(t,r=new Set){let o,e,c,n;if(o=t!=null&&t[h])return o;if(!g(t)||r.has(t))return t;if(Array.isArray(t)){Object.isFrozen(t)?t=t.slice(0):r.add(t);for(let i=0,l=t.length;i<l;i++)c=t[i],(e=a(c,r))!==c&&(t[i]=e)}else{Object.isFrozen(t)?t=Object.assign({},t):r.add(t);const i=Object.keys(t),l=Object.getOwnPropertyDescriptors(t);for(let s=0,d=i.length;s<d;s++)n=i[s],!l[n].get&&(c=t[n],(e=a(c,r))!==c&&(t[n]=e))}return t}function _(t,r){let o=t[r];return o||Object.defineProperty(t,r,{value:o=Object.create(null)}),o}function b(t,r,o){if(t[r])return t[r];const[e,c]=F(o,{equals:!1,internal:!0});return e.$=c,t[r]=e}function K(t,r){const o=Reflect.getOwnPropertyDescriptor(t,r);return!o||o.get||!o.configurable||r===u||r===y||(delete o.value,delete o.writable,o.get=()=>t[u][r]),o}function $(t){w()&&b(_(t,y),m)()}function R(t){return $(t),Reflect.ownKeys(t)}const L={get(t,r,o){if(r===h)return t;if(r===u)return o;if(r===P)return $(t),o;const e=_(t,y),c=e[r];let n=c?c():t[r];if(r===y||r===f||r==="__proto__")return n;if(!c){const i=Object.getOwnPropertyDescriptor(t,r);w()&&(typeof n!="function"||t.hasOwnProperty(r))&&!(i&&i.get)&&(n=b(e,r,n)())}return g(n)?v(n):n},has(t,r){return r===h||r===u||r===P||r===y||r===f||r==="__proto__"?!0:(w()&&b(_(t,f),r)(),r in t)},set(){return!0},deleteProperty(){return!0},ownKeys:R,getOwnPropertyDescriptor:K};function p(t,r,o,e=!1){if(r==="__proto__"||!e&&t[r]===o)return;const c=t[r],n=t.length;o===void 0?(delete t[r],t[f]&&t[f][r]&&c!==void 0&&t[f][r].$()):(t[r]=o,t[f]&&t[f][r]&&c===void 0&&t[f][r].$());let i=_(t,y),l;if((l=b(i,r,c))&&l.$(()=>o),Array.isArray(t)&&t.length!==n){for(let s=t.length;s<n;s++)(l=i[s])&&l.$();(l=b(i,"length",n))&&l.$(t.length)}(l=i[m])&&l.$()}function D(t,r){const o=Object.keys(r);for(let e=0;e<o.length;e+=1){const c=o[e];k(c)||p(t,c,r[c])}}function k(t){return t==="__proto__"||t==="constructor"||t==="prototype"}function M(t,r){if(typeof r=="function"&&(r=r(t)),r=a(r),Array.isArray(r)){if(t===r)return;let o=0,e=r.length;for(;o<e;o++){const c=r[o];t[o]!==c&&p(t,o,c)}p(t,"length",e)}else D(t,r)}function O(t,r,o=[]){let e,c=t;if(r.length>1){e=r.shift();const i=typeof e,l=Array.isArray(t);if(i==="string"&&(e==="__proto__"||r.length>1&&k(e)))return;if(Array.isArray(e)){for(let s=0;s<e.length;s++)O(t,[e[s]].concat(r),o);return}else if(l&&i==="function"){for(let s=0;s<t.length;s++)e(t[s],s)&&O(t,[s].concat(r),o);return}else if(l&&i==="object"){const{from:s=0,to:d=t.length-1,by:x=1}=e;for(let A=s;A<=d;A+=x)O(t,[A].concat(r),o);return}else if(r.length>1){O(t[e],r,[e].concat(o));return}c=t[e],o=[e].concat(o)}let n=r[0];typeof n=="function"&&(n=n(c,o),n===c)||e===void 0&&n==null||(n=a(n),e===void 0||g(c)&&g(n)&&!Array.isArray(n)?D(c,n):p(t,e,n))}function N(...[t,r]){const o=a(t||{}),e=Array.isArray(o),c=v(o);function n(...i){z(()=>{e&&i.length===1?M(o,i[0]):O(o,i)})}return[c,n]}const j=new WeakMap,S={get(t,r){if(r===h)return t;const o=t[r];if(r===u||r===P||r===y||r===f||r==="__proto__")return o;let e;return g(o)?j.get(o)||(j.set(o,e=new Proxy(o,S)),e):o},set(t,r,o){return p(t,r,a(o)),!0},deleteProperty(t,r){return p(t,r,void 0,!0),!0}};function W(t){return r=>{if(g(r)){let o;(o=j.get(r))||j.set(r,o=new Proxy(r,S)),t(o)}return r}}export{N as c,W as p,a as u};
|