pisper 0.6.32 → 0.6.33
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/package.json +5 -5
- package/web/.vite/manifest.json +640 -640
- package/web/assets/{AppDialog-CA7tBvM8.js → AppDialog-bqakHiqz.js} +1 -1
- package/web/assets/{AppOverlays-yAnO5otc.js → AppOverlays-CgpAvY9q.js} +1 -1
- package/web/assets/{AssetsPage-NJ7uc7WV.js → AssetsPage-BIYsLgYo.js} +1 -1
- package/web/assets/{BoardPage-DzHXQHbY.js → BoardPage-C3a-6d1u.js} +3 -3
- package/web/assets/{ChannelsPage-DPVT00J9.js → ChannelsPage-6Opibsv4.js} +1 -1
- package/web/assets/{ChatAppearancePage-RygKPTc1.js → ChatAppearancePage-D5gk_aXZ.js} +1 -1
- package/web/assets/{ChatHistoryPage-CYU3FOWt.js → ChatHistoryPage-D576j6vI.js} +1 -1
- package/web/assets/{ChatPage-B9kyMRtf.js → ChatPage-BK61m32j.js} +3 -3
- package/web/assets/{ConfigPage-YOI6Jn64.js → ConfigPage-BmnOjD9j.js} +2 -2
- package/web/assets/{DesktopWindowControls-DaK-mWjx.js → DesktopWindowControls-DlV6D3IF.js} +1 -1
- package/web/assets/{FeaturePage-DI7N2J_K.js → FeaturePage-qCmYebNB.js} +1 -1
- package/web/assets/{FileAttachmentPreview-CUdxe5_7.js → FileAttachmentPreview-DkYkLnxt.js} +1 -1
- package/web/assets/{FloatingWidgets-CWAsDelc.js → FloatingWidgets-1EwlF6Oj.js} +1 -1
- package/web/assets/{FocusRuntimeControls-6sWPafoU.js → FocusRuntimeControls-DiS4SP0x.js} +1 -1
- package/web/assets/{GitDiffViewer-Djkbc29o.js → GitDiffViewer-BYB7_K9o.js} +1 -1
- package/web/assets/{ManageProjectsDialog-CReohSBv.js → ManageProjectsDialog-CDY8CAam.js} +1 -1
- package/web/assets/{MarkdownMessage-jypOknWO.js → MarkdownMessage-BH5Nh-UO.js} +1 -1
- package/web/assets/{McpPage-DZuv-kd4.js → McpPage-DFwh1tmO.js} +1 -1
- package/web/assets/{MemoryEvolution-ULgArXX6.js → MemoryEvolution-BG4nAEH8.js} +1 -1
- package/web/assets/{MemoryPage-CXNLDgIX.js → MemoryPage-CSZweuq_.js} +2 -2
- package/web/assets/{MobileNavigation-CEUnhv7K.js → MobileNavigation-DdvgJ1_H.js} +1 -1
- package/web/assets/{MorePage-DC_HNY-i.js → MorePage-CM0nAh27.js} +1 -1
- package/web/assets/{NewFolderDialog-rxwZ78bu.js → NewFolderDialog-BgVVLoLF.js} +1 -1
- package/web/assets/{PageHeader-DQkMisCZ.js → PageHeader-V6fYs6FB.js} +1 -1
- package/web/assets/{PhoneDrawer-D3eRtYUJ.js → PhoneDrawer-_T7G0UlW.js} +1 -1
- package/web/assets/{PhoneMenuButton-Qt9aL2yf.js → PhoneMenuButton-DlK5D8AZ.js} +1 -1
- package/web/assets/{PhoneTopBar-UNRjPZJo.js → PhoneTopBar-CI5JxBFX.js} +1 -1
- package/web/assets/{PluginsPage-B19V8jKI.js → PluginsPage-DHJHTTXh.js} +1 -1
- package/web/assets/{SafeModePrompt-DDwctKZu.js → SafeModePrompt-B4hmTRuN.js} +1 -1
- package/web/assets/{SchedulesPage-C-MlYxbU.js → SchedulesPage-6Qe506NG.js} +1 -1
- package/web/assets/{SessionBrowserPane-C7pYbebX.js → SessionBrowserPane-DBc3TNje.js} +2 -2
- package/web/assets/{SessionContextPanel-B2sS7myK.js → SessionContextPanel-A-apbPUv.js} +2 -2
- package/web/assets/{SessionHome-CS5HPhh0.js → SessionHome-D-iS34Q7.js} +1 -1
- package/web/assets/{SessionInspector-BHdqiu1D.js → SessionInspector-B41l7gKR.js} +1 -1
- package/web/assets/{SessionShell-CI6d2UxF.js → SessionShell-Byw5069L.js} +1 -1
- package/web/assets/{SettingsSidebar-SMxWLbhN.js → SettingsSidebar-CMu7qKbO.js} +1 -1
- package/web/assets/{ShortcutHelpDialog-DDyxtBqb.js → ShortcutHelpDialog-CaaKIjWq.js} +1 -1
- package/web/assets/{ShortcutKeys-CuiTSvO5.js → ShortcutKeys-DEP10d_k.js} +1 -1
- package/web/assets/{SidebarUpdateStatus-CgDyoVVT.js → SidebarUpdateStatus-4sXZK0UG.js} +1 -1
- package/web/assets/{SkillsPage-C217PvFK.js → SkillsPage-r_UPbRKb.js} +1 -1
- package/web/assets/{TaskProcessesPane-CRRUKQPY.js → TaskProcessesPane-VO8SPtCI.js} +1 -1
- package/web/assets/{TaskTerminalView-DZL83yst.js → TaskTerminalView-B5GUaW-L.js} +1 -1
- package/web/assets/{TerminalPanel-CeGX1ISs.js → TerminalPanel-toRRYBjv.js} +1 -1
- package/web/assets/{WebDesktopPet-mgzM1lUl.js → WebDesktopPet-CM4U0kvi.js} +1 -1
- package/web/assets/{WorkflowsPage-CsH9o0Vt.js → WorkflowsPage-BcXqmyBY.js} +1 -1
- package/web/assets/{WorkspacePicker-Bo197KnL.js → WorkspacePicker-BRa_IVqp.js} +1 -1
- package/web/assets/{api-Bn6Yqhfj.js → api-CCLf8CGI.js} +1 -1
- package/web/assets/{app-update-C17JitpX.js → app-update-DcdhTBg3.js} +1 -1
- package/web/assets/{approval-confirm-CLyo75Wg.js → approval-confirm-Db5cFtCd.js} +1 -1
- package/web/assets/{board-projects-B7ISKK5M.js → board-projects-C3_RLAYt.js} +1 -1
- package/web/assets/{bots-store-BM-RDFHS.js → bots-store-BYTwHk9o.js} +1 -1
- package/web/assets/{chat-api-BL_tZCbY.js → chat-api-PdHMtAmc.js} +1 -1
- package/web/assets/{client-store-D3sThJb-.js → client-store-Df-MtlGW.js} +1 -1
- package/web/assets/{config-search-Q-gLiXu_.js → config-search-Bk1H58rt.js} +1 -1
- package/web/assets/{desktop-hosts-B3CWL4di.js → desktop-hosts-kpDUJPHM.js} +1 -1
- package/web/assets/{dialog-DzLlhTSc.js → dialog-CEcIiRdx.js} +1 -1
- package/web/assets/{event-stream-DHX619rI.js → event-stream-B3CGgFfm.js} +1 -1
- package/web/assets/{events-BOOZIPa5.js → events-fUNyYQhT.js} +1 -1
- package/web/assets/{focus-session-composer-bits-vPmpISU7.js → focus-session-composer-bits-DWovCteo.js} +1 -1
- package/web/assets/{folder-paths-CfkxmkpU.js → folder-paths-e_B8xA6T.js} +1 -1
- package/web/assets/{hosts-DI7_AOnB.js → hosts-DlCCpVaG.js} +1 -1
- package/web/assets/{http-BLTlr2yB.js → http-Ck9ziPLg.js} +1 -1
- package/web/assets/{http-response-BVH7o4IQ.js → http-response-BMpatf4O.js} +1 -1
- package/web/assets/{i18n-D5Pj8hy6.js → i18n-D1oE4DVX.js} +1 -1
- package/web/assets/{index-DguGXGe9.js → index-Cd49jlmz.js} +2 -2
- package/web/assets/{machine-messages-BjYmTDz4.js → machine-messages-D5urBDZn.js} +1 -1
- package/web/assets/{machines-api-AYwQ9wWh.js → machines-api-Be-AjTEL.js} +1 -1
- package/web/assets/{memory-api-260Oa_xZ.js → memory-api-D9qnDSAr.js} +1 -1
- package/web/assets/{mount-app-CoTBrIGD.js → mount-app-D278htsi.js} +3 -3
- package/web/assets/{permission-rules-api-D2u3PIpr.js → permission-rules-api-i-sBmQT3.js} +1 -1
- package/web/assets/{pick-system-directory-BPDhvlE7.js → pick-system-directory-Cnb1L8Kd.js} +1 -1
- package/web/assets/{placements-deNW2Eg-.js → placements-BPrt5jd4.js} +2 -2
- package/web/assets/{popover-B-a7ZBQS.js → popover-5MqQ5QIH.js} +1 -1
- package/web/assets/{public-Dbs615LR.js → public-B7A7Bf7w.js} +1 -1
- package/web/assets/{public-BV32k5q1.js → public-BhSl1_DQ.js} +2 -2
- package/web/assets/{public-COJrQD9j.js → public-DAqU5ju6.js} +2 -2
- package/web/assets/{public-CoescP9_.js → public-DHE_Bffl.js} +1 -1
- package/web/assets/{public-components-jrX-6RqC.js → public-components-DS306Oz2.js} +1 -1
- package/web/assets/public-diff-e-dAYuJF.js +1 -0
- package/web/assets/public-events-DK8fPqRB.js +1 -0
- package/web/assets/{public-flags-B-hhqV7C.js → public-flags-_XZrt2pU.js} +1 -1
- package/web/assets/{public-folder-dialog-ywXpPZXJ.js → public-folder-dialog-DgKjmujY.js} +1 -1
- package/web/assets/{public-greeting-VN-jBq7k.js → public-greeting-DJIT1WWT.js} +1 -1
- package/web/assets/{public-session-CzxHzz2C.js → public-session-CuS3mRPA.js} +1 -1
- package/web/assets/{public-sidebar-BA8SJ3r0.js → public-sidebar-Cxg21QnN.js} +1 -1
- package/web/assets/{runtime-capabilities-store-CXahF-U2.js → runtime-capabilities-store-DcLHj_-T.js} +1 -1
- package/web/assets/{safe-mode-instance-Dex9ZvJH.js → safe-mode-instance-Dpp0f3FD.js} +1 -1
- package/web/assets/safe-mode-sentinel-CpYA8gLC.js +1 -0
- package/web/assets/{session-change-summary-api-CJ2yVJEm.js → session-change-summary-api-BzjbV-XG.js} +1 -1
- package/web/assets/{session-home-BTPHTXVm.js → session-home-BE2Q0var.js} +1 -1
- package/web/assets/{session-inspector-store-DFANj1eG.js → session-inspector-store-BxozyuFV.js} +1 -1
- package/web/assets/{session-organization-api-5GadAj0U.js → session-organization-api-CLAh265X.js} +1 -1
- package/web/assets/{session-scope-C9THRhK5.js → session-scope-BM93WXwD.js} +1 -1
- package/web/assets/{session-tree-actions-C7sDBs9_.js → session-tree-actions-BlqzMI3H.js} +1 -1
- package/web/assets/{session-tree-summary-D_mv7Xsy.js → session-tree-summary-B8SEWLOy.js} +1 -1
- package/web/assets/{shortcuts-CQYp4qaG.js → shortcuts-SQuwtLn8.js} +1 -1
- package/web/assets/{side-chat-context-BoevraRd.js → side-chat-context-Dw_WsQW3.js} +4 -4
- package/web/assets/{sidebar-Ddf5aEv6.js → sidebar-B6oY6pcm.js} +1 -1
- package/web/assets/{sidebar-store-DlicJ7L2.js → sidebar-store-DWzo4gcp.js} +1 -1
- package/web/assets/{speech-session--qKchPMR.js → speech-session-Dx6waD1F.js} +1 -1
- package/web/assets/{startup-queries-Cf6RSLkK.js → startup-queries-DG8R4Ryc.js} +1 -1
- package/web/assets/{use-i18n-vKUIcJX7.js → use-i18n-CrMP8KP1.js} +1 -1
- package/web/assets/{use-open-bot-CBgzzpYP.js → use-open-bot-DU7b6x-6.js} +1 -1
- package/web/assets/{use-studio-actions-C0IOFiXt.js → use-studio-actions-Cb0xo6pc.js} +1 -1
- package/web/assets/{useCatalogProjects-HPDUmiqp.js → useCatalogProjects-BJCTVrvM.js} +1 -1
- package/web/assets/{useMachines-CPMVc3JJ.js → useMachines-BnEhFLR-.js} +1 -1
- package/web/assets/{useNewProjectPicker-DvaRu71A.js → useNewProjectPicker-CsJnnQt_.js} +2 -2
- package/web/assets/{useNow-Df6N6r2Y.js → useNow-D9FGGV1H.js} +1 -1
- package/web/assets/{usePhoneShell-K9ZGSs1n.js → usePhoneShell-Bjigstxq.js} +1 -1
- package/web/assets/{useSessionListQuery-w1eeoWqD.js → useSessionListQuery-Bfjp1ecc.js} +1 -1
- package/web/assets/{useSessionRowActions-DQcnq6I1.js → useSessionRowActions-84-_ahHt.js} +1 -1
- package/web/assets/{useSidebarModel-De1pMvik.js → useSidebarModel-0OeDSimB.js} +1 -1
- package/web/assets/{workspace-folders-B5Z-ckI5.js → workspace-folders-1RLblom2.js} +1 -1
- package/web/assets/{workspace-order-store-hJOk5NHh.js → workspace-order-store-Du6GVhMP.js} +1 -1
- package/web/index.html +1 -1
- package/web/assets/public-diff-D6Sa7fGe.js +0 -1
- package/web/assets/public-events-D8WNal9Q.js +0 -1
- package/web/assets/safe-mode-sentinel-DRBisTV9.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as e}from"./rolldown-runtime-B0Z9INg1.js";import{i as t,r as n}from"./vendor-react-DwNgTV1j.js";import{t as r}from"./use-i18n-
|
|
1
|
+
import{a as e}from"./rolldown-runtime-B0Z9INg1.js";import{i as t,r as n}from"./vendor-react-DwNgTV1j.js";import{t as r}from"./use-i18n-CrMP8KP1.js";import{t as i}from"./minus-BuutOHSj.js";import{t as a}from"./square-bHHVTT3G.js";import{t as o}from"./x-07u4-129.js";var s=e(t(),1),c=n();function l(){let{t:e}=r(),t={minimize:e(`navigation:window.minimize`),maximize:e(`navigation:window.maximize`),close:e(`navigation:window.close`)},n=window.pisperDesktop;return(0,s.useEffect)(()=>{if(!n?.customTitlebar||!n.windowAction)return;let e=e=>{let t=e.target instanceof Element?e.target:null;e.button!==0||!t?.closest(`[data-window-drag-region]`)||t.closest(`button, a, input, select, textarea, [role="button"], [role="tab"], [contenteditable="true"]`)||e.type===`mousedown`&&e.detail>1||n.windowAction?.(e.type===`dblclick`?`maximize`:`drag`).catch(()=>{})};return document.addEventListener(`mousedown`,e),document.addEventListener(`dblclick`,e),()=>{document.removeEventListener(`mousedown`,e),document.removeEventListener(`dblclick`,e)}},[n]),!n?.customTitlebar||!n.windowAction?null:(0,c.jsx)(`div`,{className:`desktop-window-controls absolute right-0 top-0 z-40 flex h-12`,"aria-label":e(`navigation:window.controls`),children:[`minimize`,`maximize`,`close`].map(e=>{let r=e===`minimize`?i:e===`maximize`?a:o;return(0,c.jsx)(`button`,{type:`button`,title:t[e],"aria-label":t[e],className:`grid w-11 place-items-center text-content-muted transition-colors duration-[var(--d-fast)] ${e===`close`?`hover:bg-red-600 hover:text-white`:`hover:bg-surface-hover hover:text-content`}`,onClick:()=>void n.windowAction?.(e).catch(()=>{}),children:(0,c.jsx)(r,{size:e===`maximize`?12:15})},e)})})}export{l as DesktopWindowControls};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as e}from"./rolldown-runtime-B0Z9INg1.js";import{i as t,r as n}from"./vendor-react-DwNgTV1j.js";import{t as r}from"./usePhoneShell-K9ZGSs1n.js";import{t as i}from"./chevron-down-CxtxIjiP.js";import{t as a}from"./chevron-left-BAtyp3_6.js";import{t as o}from"./search-D0mqDaf_.js";import{t as s}from"./triangle-alert-CE1q54ci.js";import{t as c}from"./x-07u4-129.js";import{t as l}from"./utils-C8uzG5AZ.js";import{t as u}from"./kbd-CAufZTkl.js";var d=e(t(),1),f=n();function p({title:e,description:t,back:n,toolbar:i,children:o,className:s,...c}){let u=r();return(0,f.jsxs)(`div`,{"data-page-template":`feature`,...c,className:l(`flex h-full min-h-0 w-full min-w-0 flex-col bg-background`,s),children:[!u&&(0,f.jsx)(`div`,{"data-window-drag-region":!0,"aria-hidden":`true`,className:`h-[52px] flex-none`}),(0,f.jsx)(`div`,{"data-feature-scroller":!0,className:`@container/page min-h-0 flex-1 overflow-x-hidden overflow-y-auto overscroll-contain`,children:(0,f.jsxs)(`div`,{"data-feature-column":!0,className:`mx-auto flex w-full max-w-[808px] min-w-0 flex-col px-6 pt-7 pb-16 max-[650px]:px-4 max-[650px]:pt-1 max-[650px]:pb-8`,children:[(0,f.jsxs)(`header`,{"data-focus-region":`header`,className:`flex min-w-0 flex-col items-start`,children:[n&&(0,f.jsxs)(`button`,{type:`button`,"data-back-to-more":!0,"aria-label":n.ariaLabel,onClick:n.onBack,className:`-ml-1.5 mb-2.5 inline-flex h-[26px] items-center gap-1 rounded-[var(--r-sm)] pr-1.5 pl-0.5 text-[13px] text-content-muted transition-colors duration-(--d-fast) hover:bg-surface-hover hover:text-content focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-focus max-[650px]:mb-1 max-[650px]:-ml-2.5 max-[650px]:h-11 max-[650px]:min-w-11 max-[650px]:pr-2 max-[650px]:text-sm max-[650px]:text-content-secondary`,children:[(0,f.jsx)(a,{className:`size-3.5 max-[650px]:size-5`,"aria-hidden":`true`}),(0,f.jsx)(`span`,{children:n.label})]}),(0,f.jsx)(`h1`,{className:l(`max-w-full text-2xl leading-8 font-semibold tracking-[-.01em] [overflow-wrap:anywhere] text-content`,u&&`sr-only`),children:e}),t&&!u&&(0,f.jsx)(`p`,{className:`mt-1 max-w-full text-sm leading-relaxed text-content-muted`,children:t})]}),i,o]})})]})}function m({search:e,filters:t,actions:n}){return(0,f.jsxs)(`div`,{"data-feature-toolbar":!0,className:`mt-5 flex min-w-0 flex-col gap-2.5 max-[650px]:mt-2`,children:[(e||n)&&(0,f.jsxs)(`div`,{className:`flex min-w-0 flex-wrap items-center gap-2.5`,children:[e&&(0,f.jsx)(`div`,{className:`min-w-[min(240px,100%)] flex-1`,children:e}),n&&(0,f.jsx)(`div`,{"data-feature-actions":!0,className:`flex min-w-0 flex-wrap items-center gap-2 max-[650px]:w-full max-[650px]:[&>*]:min-h-11 max-[650px]:[&>*]:flex-1`,children:n})]}),t&&(0,f.jsx)(`div`,{"data-feature-filters":!0,className:`min-w-0 max-[650px]:[&_[data-slot=segmented-control]]:h-auto! max-[650px]:[&_[data-slot=segmented-control-item]]:min-h-11 max-[650px]:[&_[data-slot=tabs-list]]:h-auto! max-[650px]:[&_[role=tab]]:min-h-11`,children:t})]})}function h({id:e,value:t,onValueChange:n,placeholder:r,shortcut:i,clearLabel:a}){return(0,f.jsxs)(`label`,{className:`relative flex h-9 w-full min-w-0 items-center gap-2 rounded-[var(--r-md)] border border-control bg-panel px-3 text-content-muted focus-within:border-focus focus-within:ring-3 focus-within:ring-focus-ring max-[650px]:h-11`,children:[(0,f.jsx)(o,{className:`size-4 flex-none`,"aria-hidden":`true`}),(0,f.jsx)(`span`,{className:`sr-only`,children:r}),(0,f.jsx)(`input`,{id:e,type:`search`,value:t,placeholder:r,"aria-keyshortcuts":i||void 0,className:`w-full min-w-0 border-0 bg-transparent text-[length:var(--app-font-size)] text-content caret-focus outline-none max-[650px]:text-[16px] [&::-webkit-search-cancel-button]:hidden`,onChange:e=>n(e.target.value),onKeyDown:e=>{e.key===`Escape`&&t&&(e.preventDefault(),e.stopPropagation(),n(``))}}),t?(0,f.jsx)(`button`,{type:`button`,className:`grid size-6 flex-none place-items-center rounded-xs text-content-muted hover:bg-surface-hover hover:text-content focus-visible:outline-2 focus-visible:outline-focus max-[650px]:-mr-2 max-[650px]:size-11 pointer-coarse:size-11`,"aria-label":a,onClick:()=>n(``),children:(0,f.jsx)(c,{className:`size-3.5`,"aria-hidden":`true`})}):i&&(0,f.jsx)(u,{"aria-hidden":`true`,className:`flex-none max-[650px]:hidden pointer-coarse:hidden`,children:i})]})}function g({title:e,count:t,meta:n,actions:r,description:i,children:a,className:o,...s}){let c=(0,d.useId)();return(0,f.jsxs)(`section`,{"data-feature-section":!0,"aria-labelledby":c,...s,className:l(`mt-7 min-w-0`,o),children:[(0,f.jsxs)(`div`,{className:`mb-2 flex min-h-7 min-w-0 flex-wrap items-center gap-x-3 gap-y-1`,children:[(0,f.jsxs)(`h2`,{id:c,className:`min-w-0 text-[13px] leading-5 font-medium text-content-muted tabular-nums`,children:[e,t!==void 0&&(0,f.jsxs)(`span`,{children:[` · `,t]})]}),n&&(0,f.jsx)(`div`,{className:`min-w-0 text-xs text-content-muted tabular-nums [overflow-wrap:anywhere]`,children:n}),r&&(0,f.jsx)(`div`,{className:`ml-auto flex min-w-0 flex-wrap items-center justify-end gap-1.5 max-[650px]:[&_a]:min-h-11 max-[650px]:[&_button]:min-h-11`,children:r})]}),i&&(0,f.jsx)(`p`,{className:`mb-2 text-xs leading-relaxed [overflow-wrap:anywhere] text-content-muted`,children:i}),a]})}function _({className:e,children:t,...n}){return(0,f.jsxs)(`div`,{role:`alert`,"data-feature-alert":!0,...n,className:l(`mt-4 flex min-w-0 items-start gap-2 rounded-[var(--r-md)] border border-stroke bg-surface-subtle px-3 py-2 text-xs leading-relaxed [overflow-wrap:anywhere] text-content-secondary`,e),children:[(0,f.jsx)(s,{className:`mt-[3px] size-3.5 flex-none text-content-muted`,"aria-hidden":`true`}),(0,f.jsx)(`div`,{className:`min-w-0 flex-1`,children:t})]})}function v({className:e,...t}){return(0,f.jsx)(`ul`,{role:`list`,"data-feature-list":!0,...t,className:l(`m-0 min-w-0 list-none border-t border-stroke p-0`,e)})}var y={1:`grid-cols-[minmax(0,1fr)]`,2:`grid-cols-[minmax(0,1fr)_auto]`,3:`grid-cols-[minmax(0,1fr)_auto_auto]`,4:`grid-cols-[minmax(0,1fr)_auto_auto_auto]`},b={1:`max-[650px]:grid-cols-[minmax(0,1fr)]`,2:`max-[650px]:grid-cols-[minmax(0,1fr)_auto]`,3:`max-[650px]:grid-cols-[minmax(0,1fr)_auto_auto]`},x=`max-[650px]:[&_button:not([role=switch])]:min-h-11 max-[650px]:[&_input:not([type=checkbox]):not([type=radio]):not([type=range])]:min-h-11 max-[650px]:[&_select]:min-h-11`;function S({icon:e,name:t,nameMeta:n,description:r,meta:a,status:o,actions:s,detail:c,expanded:u=!1,onExpandedChange:p,toggleLabel:m,onOpen:h,openLabel:g,className:_,...v}){let S=(0,d.useId)(),C=(0,d.useId)(),w=(0,d.useId)(),T=c!==void 0&&!!p&&!h,E=()=>p?.(!u),D=(0,f.jsxs)(f.Fragment,{children:[e&&(0,f.jsx)(`span`,{"aria-hidden":`true`,className:`grid size-9 flex-none place-items-center rounded-[var(--r-md)] bg-surface-subtle text-content-secondary max-[650px]:size-8 [&_svg]:size-[18px] [&_svg]:stroke-[1.75]`,children:e}),(0,f.jsxs)(`span`,{className:`flex min-w-0 flex-1 flex-col gap-0.5`,children:[(0,f.jsxs)(`span`,{className:`flex min-w-0 items-baseline gap-2`,children:[(0,f.jsx)(`span`,{id:S,className:`min-w-0 truncate text-sm font-medium text-content`,children:t}),n&&(0,f.jsx)(`span`,{className:`min-w-0 flex-none truncate font-mono text-[11.5px] text-content-muted`,children:n})]}),r&&(0,f.jsx)(`span`,{id:C,className:`line-clamp-2 text-[13px] leading-[1.45] [overflow-wrap:anywhere] text-content-muted`,children:r}),a&&(0,f.jsx)(`span`,{"data-feature-row-meta":!0,className:`flex min-w-0 items-center gap-x-1.5 overflow-hidden text-xs leading-[1.5] whitespace-nowrap text-content-muted`,children:a})]})]});return(0,f.jsxs)(`li`,{"data-feature-row":!0,"data-expanded":T?u:void 0,...v,className:l(`min-w-0 border-b border-stroke`,_),children:[(0,f.jsxs)(`div`,{className:l(`grid min-h-16 min-w-0 items-center gap-x-3 py-3 max-[650px]:min-h-14 max-[650px]:gap-x-2 max-[650px]:py-2`,y[1+Number(!!o)+Number(!!s)+Number(T)],b[1+Number(!!s)+Number(T)],h&&`-mx-2 rounded-[var(--r-md)] px-2 transition-colors duration-(--d-fast) hover:bg-surface-hover`),children:[h?(0,f.jsx)(`button`,{type:`button`,"data-feature-row-open":!0,"aria-label":g,onClick:h,className:`flex min-h-11 min-w-0 items-center gap-3.5 self-stretch rounded-[var(--r-sm)] text-left focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-focus max-[650px]:gap-2.5`,children:D}):T?(0,f.jsx)(`button`,{type:`button`,"data-feature-row-toggle":!0,"aria-labelledby":S,"aria-describedby":r?C:void 0,"aria-expanded":u,"aria-controls":u?w:void 0,onClick:E,className:`flex min-h-11 min-w-0 items-center gap-3.5 self-stretch rounded-[var(--r-sm)] text-left focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-focus max-[650px]:gap-2.5`,children:D}):(0,f.jsx)(`div`,{className:`flex min-w-0 items-center gap-3.5 max-[650px]:gap-2.5`,children:D}),o&&(0,f.jsx)(`div`,{"data-feature-row-status":!0,className:l(`flex max-w-[220px] min-w-0 items-center justify-end gap-1.5 text-right text-xs text-content-muted tabular-nums max-[650px]:col-start-1 max-[650px]:row-start-2 max-[650px]:max-w-none max-[650px]:justify-start max-[650px]:text-left`,e&&`max-[650px]:pl-[42px]`),children:o}),s&&(0,f.jsx)(`div`,{className:`flex min-w-0 items-center justify-end gap-2 max-[650px]:[&_button:not([role=switch])]:min-h-11`,children:s}),T&&(0,f.jsx)(`button`,{type:`button`,tabIndex:-1,"aria-hidden":`true`,title:m,onClick:E,className:`grid size-7 place-items-center rounded-[var(--r-sm)] text-content-muted transition-colors duration-(--d-fast) hover:bg-surface-hover hover:text-content max-[650px]:size-11 pointer-coarse:size-11`,children:(0,f.jsx)(i,{className:l(`size-4 transition-transform duration-(--d-base)`,u&&`rotate-180`)})})]}),T?u&&(0,f.jsx)(`div`,{id:w,role:`region`,"aria-labelledby":S,"data-feature-row-detail":!0,className:l(`min-w-0 pb-4 max-[650px]:pl-0`,x,e?`pl-[50px]`:`pl-0`),children:c}):c!==void 0&&(0,f.jsx)(`div`,{"data-feature-row-detail":!0,className:l(`min-w-0 pb-3 max-[650px]:pl-0`,x,e?`pl-[50px]`:`pl-0`),children:c})]})}export{h as a,S as i,v as n,g as o,p as r,m as s,_ as t};
|
|
1
|
+
import{a as e}from"./rolldown-runtime-B0Z9INg1.js";import{i as t,r as n}from"./vendor-react-DwNgTV1j.js";import{t as r}from"./usePhoneShell-Bjigstxq.js";import{t as i}from"./chevron-down-CxtxIjiP.js";import{t as a}from"./chevron-left-BAtyp3_6.js";import{t as o}from"./search-D0mqDaf_.js";import{t as s}from"./triangle-alert-CE1q54ci.js";import{t as c}from"./x-07u4-129.js";import{t as l}from"./utils-C8uzG5AZ.js";import{t as u}from"./kbd-CAufZTkl.js";var d=e(t(),1),f=n();function p({title:e,description:t,back:n,toolbar:i,children:o,className:s,...c}){let u=r();return(0,f.jsxs)(`div`,{"data-page-template":`feature`,...c,className:l(`flex h-full min-h-0 w-full min-w-0 flex-col bg-background`,s),children:[!u&&(0,f.jsx)(`div`,{"data-window-drag-region":!0,"aria-hidden":`true`,className:`h-[52px] flex-none`}),(0,f.jsx)(`div`,{"data-feature-scroller":!0,className:`@container/page min-h-0 flex-1 overflow-x-hidden overflow-y-auto overscroll-contain`,children:(0,f.jsxs)(`div`,{"data-feature-column":!0,className:`mx-auto flex w-full max-w-[808px] min-w-0 flex-col px-6 pt-7 pb-16 max-[650px]:px-4 max-[650px]:pt-1 max-[650px]:pb-8`,children:[(0,f.jsxs)(`header`,{"data-focus-region":`header`,className:`flex min-w-0 flex-col items-start`,children:[n&&(0,f.jsxs)(`button`,{type:`button`,"data-back-to-more":!0,"aria-label":n.ariaLabel,onClick:n.onBack,className:`-ml-1.5 mb-2.5 inline-flex h-[26px] items-center gap-1 rounded-[var(--r-sm)] pr-1.5 pl-0.5 text-[13px] text-content-muted transition-colors duration-(--d-fast) hover:bg-surface-hover hover:text-content focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-focus max-[650px]:mb-1 max-[650px]:-ml-2.5 max-[650px]:h-11 max-[650px]:min-w-11 max-[650px]:pr-2 max-[650px]:text-sm max-[650px]:text-content-secondary`,children:[(0,f.jsx)(a,{className:`size-3.5 max-[650px]:size-5`,"aria-hidden":`true`}),(0,f.jsx)(`span`,{children:n.label})]}),(0,f.jsx)(`h1`,{className:l(`max-w-full text-2xl leading-8 font-semibold tracking-[-.01em] [overflow-wrap:anywhere] text-content`,u&&`sr-only`),children:e}),t&&!u&&(0,f.jsx)(`p`,{className:`mt-1 max-w-full text-sm leading-relaxed text-content-muted`,children:t})]}),i,o]})})]})}function m({search:e,filters:t,actions:n}){return(0,f.jsxs)(`div`,{"data-feature-toolbar":!0,className:`mt-5 flex min-w-0 flex-col gap-2.5 max-[650px]:mt-2`,children:[(e||n)&&(0,f.jsxs)(`div`,{className:`flex min-w-0 flex-wrap items-center gap-2.5`,children:[e&&(0,f.jsx)(`div`,{className:`min-w-[min(240px,100%)] flex-1`,children:e}),n&&(0,f.jsx)(`div`,{"data-feature-actions":!0,className:`flex min-w-0 flex-wrap items-center gap-2 max-[650px]:w-full max-[650px]:[&>*]:min-h-11 max-[650px]:[&>*]:flex-1`,children:n})]}),t&&(0,f.jsx)(`div`,{"data-feature-filters":!0,className:`min-w-0 max-[650px]:[&_[data-slot=segmented-control]]:h-auto! max-[650px]:[&_[data-slot=segmented-control-item]]:min-h-11 max-[650px]:[&_[data-slot=tabs-list]]:h-auto! max-[650px]:[&_[role=tab]]:min-h-11`,children:t})]})}function h({id:e,value:t,onValueChange:n,placeholder:r,shortcut:i,clearLabel:a}){return(0,f.jsxs)(`label`,{className:`relative flex h-9 w-full min-w-0 items-center gap-2 rounded-[var(--r-md)] border border-control bg-panel px-3 text-content-muted focus-within:border-focus focus-within:ring-3 focus-within:ring-focus-ring max-[650px]:h-11`,children:[(0,f.jsx)(o,{className:`size-4 flex-none`,"aria-hidden":`true`}),(0,f.jsx)(`span`,{className:`sr-only`,children:r}),(0,f.jsx)(`input`,{id:e,type:`search`,value:t,placeholder:r,"aria-keyshortcuts":i||void 0,className:`w-full min-w-0 border-0 bg-transparent text-[length:var(--app-font-size)] text-content caret-focus outline-none max-[650px]:text-[16px] [&::-webkit-search-cancel-button]:hidden`,onChange:e=>n(e.target.value),onKeyDown:e=>{e.key===`Escape`&&t&&(e.preventDefault(),e.stopPropagation(),n(``))}}),t?(0,f.jsx)(`button`,{type:`button`,className:`grid size-6 flex-none place-items-center rounded-xs text-content-muted hover:bg-surface-hover hover:text-content focus-visible:outline-2 focus-visible:outline-focus max-[650px]:-mr-2 max-[650px]:size-11 pointer-coarse:size-11`,"aria-label":a,onClick:()=>n(``),children:(0,f.jsx)(c,{className:`size-3.5`,"aria-hidden":`true`})}):i&&(0,f.jsx)(u,{"aria-hidden":`true`,className:`flex-none max-[650px]:hidden pointer-coarse:hidden`,children:i})]})}function g({title:e,count:t,meta:n,actions:r,description:i,children:a,className:o,...s}){let c=(0,d.useId)();return(0,f.jsxs)(`section`,{"data-feature-section":!0,"aria-labelledby":c,...s,className:l(`mt-7 min-w-0`,o),children:[(0,f.jsxs)(`div`,{className:`mb-2 flex min-h-7 min-w-0 flex-wrap items-center gap-x-3 gap-y-1`,children:[(0,f.jsxs)(`h2`,{id:c,className:`min-w-0 text-[13px] leading-5 font-medium text-content-muted tabular-nums`,children:[e,t!==void 0&&(0,f.jsxs)(`span`,{children:[` · `,t]})]}),n&&(0,f.jsx)(`div`,{className:`min-w-0 text-xs text-content-muted tabular-nums [overflow-wrap:anywhere]`,children:n}),r&&(0,f.jsx)(`div`,{className:`ml-auto flex min-w-0 flex-wrap items-center justify-end gap-1.5 max-[650px]:[&_a]:min-h-11 max-[650px]:[&_button]:min-h-11`,children:r})]}),i&&(0,f.jsx)(`p`,{className:`mb-2 text-xs leading-relaxed [overflow-wrap:anywhere] text-content-muted`,children:i}),a]})}function _({className:e,children:t,...n}){return(0,f.jsxs)(`div`,{role:`alert`,"data-feature-alert":!0,...n,className:l(`mt-4 flex min-w-0 items-start gap-2 rounded-[var(--r-md)] border border-stroke bg-surface-subtle px-3 py-2 text-xs leading-relaxed [overflow-wrap:anywhere] text-content-secondary`,e),children:[(0,f.jsx)(s,{className:`mt-[3px] size-3.5 flex-none text-content-muted`,"aria-hidden":`true`}),(0,f.jsx)(`div`,{className:`min-w-0 flex-1`,children:t})]})}function v({className:e,...t}){return(0,f.jsx)(`ul`,{role:`list`,"data-feature-list":!0,...t,className:l(`m-0 min-w-0 list-none border-t border-stroke p-0`,e)})}var y={1:`grid-cols-[minmax(0,1fr)]`,2:`grid-cols-[minmax(0,1fr)_auto]`,3:`grid-cols-[minmax(0,1fr)_auto_auto]`,4:`grid-cols-[minmax(0,1fr)_auto_auto_auto]`},b={1:`max-[650px]:grid-cols-[minmax(0,1fr)]`,2:`max-[650px]:grid-cols-[minmax(0,1fr)_auto]`,3:`max-[650px]:grid-cols-[minmax(0,1fr)_auto_auto]`},x=`max-[650px]:[&_button:not([role=switch])]:min-h-11 max-[650px]:[&_input:not([type=checkbox]):not([type=radio]):not([type=range])]:min-h-11 max-[650px]:[&_select]:min-h-11`;function S({icon:e,name:t,nameMeta:n,description:r,meta:a,status:o,actions:s,detail:c,expanded:u=!1,onExpandedChange:p,toggleLabel:m,onOpen:h,openLabel:g,className:_,...v}){let S=(0,d.useId)(),C=(0,d.useId)(),w=(0,d.useId)(),T=c!==void 0&&!!p&&!h,E=()=>p?.(!u),D=(0,f.jsxs)(f.Fragment,{children:[e&&(0,f.jsx)(`span`,{"aria-hidden":`true`,className:`grid size-9 flex-none place-items-center rounded-[var(--r-md)] bg-surface-subtle text-content-secondary max-[650px]:size-8 [&_svg]:size-[18px] [&_svg]:stroke-[1.75]`,children:e}),(0,f.jsxs)(`span`,{className:`flex min-w-0 flex-1 flex-col gap-0.5`,children:[(0,f.jsxs)(`span`,{className:`flex min-w-0 items-baseline gap-2`,children:[(0,f.jsx)(`span`,{id:S,className:`min-w-0 truncate text-sm font-medium text-content`,children:t}),n&&(0,f.jsx)(`span`,{className:`min-w-0 flex-none truncate font-mono text-[11.5px] text-content-muted`,children:n})]}),r&&(0,f.jsx)(`span`,{id:C,className:`line-clamp-2 text-[13px] leading-[1.45] [overflow-wrap:anywhere] text-content-muted`,children:r}),a&&(0,f.jsx)(`span`,{"data-feature-row-meta":!0,className:`flex min-w-0 items-center gap-x-1.5 overflow-hidden text-xs leading-[1.5] whitespace-nowrap text-content-muted`,children:a})]})]});return(0,f.jsxs)(`li`,{"data-feature-row":!0,"data-expanded":T?u:void 0,...v,className:l(`min-w-0 border-b border-stroke`,_),children:[(0,f.jsxs)(`div`,{className:l(`grid min-h-16 min-w-0 items-center gap-x-3 py-3 max-[650px]:min-h-14 max-[650px]:gap-x-2 max-[650px]:py-2`,y[1+Number(!!o)+Number(!!s)+Number(T)],b[1+Number(!!s)+Number(T)],h&&`-mx-2 rounded-[var(--r-md)] px-2 transition-colors duration-(--d-fast) hover:bg-surface-hover`),children:[h?(0,f.jsx)(`button`,{type:`button`,"data-feature-row-open":!0,"aria-label":g,onClick:h,className:`flex min-h-11 min-w-0 items-center gap-3.5 self-stretch rounded-[var(--r-sm)] text-left focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-focus max-[650px]:gap-2.5`,children:D}):T?(0,f.jsx)(`button`,{type:`button`,"data-feature-row-toggle":!0,"aria-labelledby":S,"aria-describedby":r?C:void 0,"aria-expanded":u,"aria-controls":u?w:void 0,onClick:E,className:`flex min-h-11 min-w-0 items-center gap-3.5 self-stretch rounded-[var(--r-sm)] text-left focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-focus max-[650px]:gap-2.5`,children:D}):(0,f.jsx)(`div`,{className:`flex min-w-0 items-center gap-3.5 max-[650px]:gap-2.5`,children:D}),o&&(0,f.jsx)(`div`,{"data-feature-row-status":!0,className:l(`flex max-w-[220px] min-w-0 items-center justify-end gap-1.5 text-right text-xs text-content-muted tabular-nums max-[650px]:col-start-1 max-[650px]:row-start-2 max-[650px]:max-w-none max-[650px]:justify-start max-[650px]:text-left`,e&&`max-[650px]:pl-[42px]`),children:o}),s&&(0,f.jsx)(`div`,{className:`flex min-w-0 items-center justify-end gap-2 max-[650px]:[&_button:not([role=switch])]:min-h-11`,children:s}),T&&(0,f.jsx)(`button`,{type:`button`,tabIndex:-1,"aria-hidden":`true`,title:m,onClick:E,className:`grid size-7 place-items-center rounded-[var(--r-sm)] text-content-muted transition-colors duration-(--d-fast) hover:bg-surface-hover hover:text-content max-[650px]:size-11 pointer-coarse:size-11`,children:(0,f.jsx)(i,{className:l(`size-4 transition-transform duration-(--d-base)`,u&&`rotate-180`)})})]}),T?u&&(0,f.jsx)(`div`,{id:w,role:`region`,"aria-labelledby":S,"data-feature-row-detail":!0,className:l(`min-w-0 pb-4 max-[650px]:pl-0`,x,e?`pl-[50px]`:`pl-0`),children:c}):c!==void 0&&(0,f.jsx)(`div`,{"data-feature-row-detail":!0,className:l(`min-w-0 pb-3 max-[650px]:pl-0`,x,e?`pl-[50px]`:`pl-0`),children:c})]})}export{h as a,S as i,v as n,g as o,p as r,m as s,_ as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as e,r as t}from"./rolldown-runtime-B0Z9INg1.js";import{i as n,r}from"./vendor-react-DwNgTV1j.js";import{t as i}from"./use-i18n-
|
|
1
|
+
import{a as e,r as t}from"./rolldown-runtime-B0Z9INg1.js";import{i as n,r}from"./vendor-react-DwNgTV1j.js";import{t as i}from"./use-i18n-CrMP8KP1.js";import{t as a}from"./api-CCLf8CGI.js";import{t as o}from"./download-BCfIiuaL.js";import{t as s}from"./file-Bllajneu.js";import{t as c}from"./refresh-cw-TbWxTY4K.js";import{t as l}from"./x-07u4-129.js";import{i as u,n as d,r as f,t as p}from"./tabs-DsgBuvJv.js";import{n as m,t as h}from"./button-CCcCN8tE.js";import{n as g}from"./format-DMJQzoZ7.js";import{a as _,i as v,l as y,r as b,s as x,t as S}from"./dialog-CEcIiRdx.js";import{t as C}from"./MarkdownMessage-BH5Nh-UO.js";var w=e(n(),1);async function T(e,t){return e.id&&!e.id.startsWith(`path:`)?a(`/api/assets/${encodeURIComponent(e.id)}/content?preview=1`,{signal:t}):typeof e.text==`string`?{kind:`text`,text:e.text.slice(0,4e5),mimeType:e.mimeType,truncated:e.text.length>4e5}:{kind:`file`}}var E=t({FileAttachmentPreview:()=>O}),D=r();function O({attachment:e,onClose:t,onDownload:n,onRestoreFocus:r}){let{t:a}=i(),[E,O]=(0,w.useState)(null),[k,A]=(0,w.useState)(``),[j,M]=(0,w.useState)(0),[N,P]=(0,w.useState)(!0),[F,I]=(0,w.useState)(!1),L=e.id&&!e.id.startsWith(`path:`)&&/^image\/(png|jpeg|webp|gif|avif)$/.test(e.mimeType||``)?`/api/assets/${encodeURIComponent(e.id)}/download?inline=1`:``,R=e.name||a(`chat:chatMessage.fileAttachment`),z=/\.(md|markdown)$/i.test(R)||(E?.mimeType||e.mimeType)===`text/markdown`;(0,w.useEffect)(()=>{let t=new AbortController;return P(!0),I(!1),O(null),A(``),T(e,t.signal).then(e=>{t.signal.aborted||O(e)}).catch(e=>{t.signal.aborted||A(e instanceof Error?e.message:String(e))}).finally(()=>{t.signal.aborted||P(!1)}),()=>t.abort()},[e,j]);let B=E?.kind===`text`?E.text||``:void 0;return(0,D.jsx)(S,{open:!0,onOpenChange:e=>!e&&t(),children:(0,D.jsxs)(v,{className:`flex h-[min(680px,calc(100dvh-2rem))] w-[calc(100%-2rem)] min-w-0 max-w-[900px] flex-col overflow-hidden rounded-lg sm:max-w-[900px]`,showCloseButton:!1,onCloseAutoFocus:e=>{e.preventDefault(),r()},"aria-describedby":void 0,children:[(0,D.jsxs)(x,{className:`min-w-0 shrink-0 pr-9 text-left`,children:[(0,D.jsx)(y,{className:`truncate text-sm leading-5`,title:R,children:R}),(0,D.jsxs)(_,{className:`truncate text-xs`,children:[e.mimeType||`application/octet-stream`,typeof e.size==`number`&&` · ${g(e.size)}`]})]}),(0,D.jsx)(b,{asChild:!0,children:(0,D.jsx)(h,{type:`button`,variant:`ghost`,size:`icon-sm`,className:`absolute right-3 top-3`,"aria-label":a(`chat:chatMessage.closePreview`),title:a(`chat:chatMessage.closePreview`),children:(0,D.jsx)(l,{size:16})})}),(0,D.jsx)(`div`,{className:`flex min-h-0 min-w-0 flex-1 flex-col overflow-hidden`,children:N?(0,D.jsxs)(`div`,{role:`status`,className:`flex flex-1 items-center justify-center gap-2 text-muted-foreground`,children:[(0,D.jsx)(m,{className:`size-4`}),a(`chat:chatMessage.filePreviewLoading`)]}):k?(0,D.jsxs)(`div`,{className:`flex flex-1 flex-col items-center justify-center gap-3`,children:[(0,D.jsx)(`p`,{role:`alert`,className:`max-w-full break-words text-sm text-destructive`,children:k}),(0,D.jsxs)(h,{type:`button`,variant:`outline`,onClick:()=>M(e=>e+1),children:[(0,D.jsx)(c,{size:14}),a(`chat:chatMessage.filePreviewRetry`)]})]}):L&&!F?(0,D.jsx)(`div`,{className:`flex min-h-0 flex-1 items-center justify-center overflow-auto`,children:(0,D.jsx)(`img`,{src:L,alt:R,className:`max-h-full max-w-full object-contain`,onError:()=>I(!0)})}):B===void 0?(0,D.jsxs)(`div`,{role:`status`,className:`flex flex-1 flex-col items-center justify-center gap-3 text-center text-muted-foreground`,children:[(0,D.jsx)(s,{size:32}),(0,D.jsx)(`p`,{className:`text-sm`,children:a(`chat:chatMessage.filePreviewUnavailable`)})]}):z?(0,D.jsxs)(p,{defaultValue:`preview`,className:`min-h-0 min-w-0 flex-1`,children:[(0,D.jsxs)(f,{className:`shrink-0`,children:[(0,D.jsx)(u,{value:`preview`,children:a(`chat:chatMessage.fileActionPreview`)}),(0,D.jsx)(u,{value:`source`,children:a(`chat:chatMessage.filePreviewSource`)})]}),(0,D.jsx)(d,{value:`preview`,className:`min-h-0 overflow-auto p-1`,children:(0,D.jsx)(C,{children:B})}),(0,D.jsx)(d,{value:`source`,className:`min-h-0 overflow-auto`,children:(0,D.jsx)(`pre`,{className:`m-0 rounded-md border border-stroke-soft bg-code p-3 font-mono text-[12px] leading-[1.65] text-content-soft`,children:B})})]}):(0,D.jsx)(`pre`,{className:`m-0 min-h-0 flex-1 overflow-auto rounded-md border border-stroke-soft bg-code p-3 font-mono text-[12px] leading-[1.65] text-content-soft`,children:B})}),(0,D.jsxs)(`div`,{className:`flex shrink-0 flex-wrap items-center justify-end gap-2 border-t pt-3`,children:[E?.truncated&&(0,D.jsx)(`p`,{role:`status`,className:`mr-auto text-xs text-muted-foreground`,children:a(`chat:chatMessage.filePreviewTruncated`)}),(0,D.jsxs)(h,{type:`button`,variant:`outline`,disabled:!e.downloadUrl,onClick:n,children:[(0,D.jsx)(o,{size:14}),a(`chat:chatMessage.fileActionDownload`)]})]})]})})}export{E as n,O as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as e}from"./rolldown-runtime-B0Z9INg1.js";import{l as t}from"./vendor-router-CSN_DGvx.js";import{t as n}from"./index-
|
|
1
|
+
import{a as e}from"./rolldown-runtime-B0Z9INg1.js";import{l as t}from"./vendor-router-CSN_DGvx.js";import{t as n}from"./index-Cd49jlmz.js";import{i as r,r as i}from"./vendor-react-DwNgTV1j.js";import{r as a}from"./routes-DIeaqWVc.js";import{f as o,i as s,n as c,p as l,u}from"./placements-BPrt5jd4.js";import{n as d}from"./safe-mode-sentinel-CpYA8gLC.js";import{t as f}from"./usePhoneShell-Bjigstxq.js";var p=e(r(),1),m=i(),h=`pisper-floating-widgets`;function g(){(0,p.useEffect)(()=>{try{n.getItem(h)!==null&&n.removeItem(h)}catch{}},[])}function _({activeSessionId:e,notify:n}){let r=f(),i=t().pathname,h=i===a.components||i.startsWith(`${a.components}/`),_=u(`floating`),v=l(),[y]=(0,p.useState)(d),b=o();return g(),(0,m.jsxs)(m.Fragment,{children:[y&&v>0&&(0,m.jsx)(p.Suspense,{fallback:null,children:(0,m.jsx)(s,{notify:n,disableAll:b})}),!r&&_.placed.length>0&&(0,m.jsx)(p.Suspense,{fallback:null,children:(0,m.jsx)(c,{placed:_.placed,hidden:h,activeSessionId:e,notify:n})})]})}export{_ as FloatingWidgets};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as e}from"./rolldown-runtime-B0Z9INg1.js";import{i as t,n,r}from"./vendor-react-DwNgTV1j.js";import{f as i,p as a}from"./i18n-D5Pj8hy6.js";import{t as o}from"./use-i18n-vKUIcJX7.js";import{p as s}from"./query-DFQayLF5.js";import{t as c}from"./useQuery-DfOU-27z.js";import{t as l}from"./createLucideIcon-Cd-3GVxJ.js";import{t as u}from"./braces-DQcXLGFF.js";import{t as d}from"./check-2vYc6QaP.js";import{t as f}from"./chevron-right-C3t2Rckj.js";import{t as p}from"./chevrons-up-down-C2sEPdAh.js";import{i as m}from"./focus-session-composer-bits-vPmpISU7.js";import{t as h}from"./search-D0mqDaf_.js";import{i as g,t as _}from"./dist-41X0pdUs.js";import{c as v,n as y}from"./dist-BsRXXcSL.js";import{a as b,o as x,r as S,t as C}from"./dist-BHkR6BLP.js";import{i as w,n as T,t as E}from"./popover-B-a7ZBQS.js";import{t as D}from"./slider-De8rWVNs.js";import{t as O}from"./utils-C8uzG5AZ.js";import{n as k,o as A,r as j,t as M}from"./sheet-BTaIEX4w.js";import{n as N,t as P}from"./chat-api-BL_tZCbY.js";import{r as F}from"./format-DMJQzoZ7.js";import{i as I}from"./run-activity-CwfO0cui.js";import"./dialog-DzLlhTSc.js";import{n as ee,t as te}from"./input-group-h8z63MzW.js";import{t as L}from"./model-display-kDwvtxrW.js";var ne=l(`file-text`,[[`path`,{d:`M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z`,key:`1oefj6`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}],[`path`,{d:`M10 9H8`,key:`b1mrlr`}],[`path`,{d:`M16 13H8`,key:`t4e002`}],[`path`,{d:`M16 17H8`,key:`z1uh3a`}]]),re=l(`square-slash`,[[`rect`,{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`,key:`afitv7`}],[`line`,{x1:`9`,x2:`15`,y1:`15`,y2:`9`,key:`1dfufj`}]]),R=e(t(),1);function ie(e){let t=e.match(/^\/btw(?:\s+([\s\S]*))?$/);return t?(t[1]||``).trim():null}function z(e,t,n,r){return n.length?[{invocation:`/${e}`,description:t},...n.map(t=>({invocation:`/${e} ${t.value}`,description:t.label,current:t.current,run:()=>r(t.value)}))]:[]}function ae({t:e,models:t,model:n,onModel:r,thinkingLevels:i,thinkingLevel:a,thinkingLabel:o,onThinking:s,executionModes:c,executionMode:l,executionLabel:u,onExecutionMode:d,runModes:f,runMode:p,runModeLabel:m,onRunMode:h}){return[...z(`model`,e(`chat:commands.builtin.model`),t.map(e=>({value:e.key,label:e.providerName?`${e.label} · ${e.providerName}`:e.label,current:e.key===n})),r),...z(`effort`,e(`chat:commands.builtin.effort`),i.map(e=>({value:e,label:o(e),current:e===a})),s),...z(`approval`,e(`chat:commands.builtin.approval`),c.map(e=>({value:e,label:u(e),current:e===l})),d),...f.length>1?z(`run`,e(`chat:commands.builtin.run`),f.map(e=>({value:e,label:m(e),current:e===p})),h):[]]}function oe(e,t,n){let r=e=>e.toLocaleLowerCase(n),i=r(t),a=i.search(/\s/);if(a<0)return e.filter(e=>!e.invocation.includes(` `)&&r(`${e.invocation} ${e.description}`).includes(i));let o=`/${i.slice(0,a)} `,s=i.slice(a).trim();return e.filter(e=>r(e.invocation).startsWith(o)&&r(`${e.invocation} ${e.description}`).includes(s))}var se=10485760,ce=20971520,le=new Set([`txt`,`md`,`json`,`js`,`jsx`,`ts`,`tsx`,`css`,`html`,`xml`,`yaml`,`yml`,`csv`,`log`,`py`,`java`,`go`,`rs`,`sh`,`ps1`,`toml`,`sql`]),ue=new Set([`png`,`jpg`,`jpeg`,`gif`,`webp`,`bmp`,`svg`]),de=new Set([`pdf`,`docx`,`pptx`,`xlsx`,`odt`,`odp`,`ods`,`rtf`,`epub`]),fe=[`image/*`,`text/*`,`application/json`,...[...ue,...le,...de].map(e=>`.${e}`)].join(`,`);function pe(e){let t=[...e?.files||[]];return t.length?t:[...e?.items||[]].filter(e=>e.kind===`file`).map(e=>e.getAsFile?.()).filter(e=>!!e)}function me(e){return[...e?.types||[]].includes(`Files`)}function he(e,t){return new Promise((n,r)=>{let i=new FileReader;i.onload=()=>n(String(i.result).split(`,`)[1]||``),i.onerror=()=>r(i.error||Error(t(`chat:attachments.couldNotReadFile`))),i.readAsDataURL(e)})}function ge(e){return e.toLowerCase().split(`.`).at(-1)||``}async function _e(e,t){let n=[...e].slice(0,8),r=[];for(let e of n){if(e.size>se)throw Error(t(`chat:attachments.nameExceedsThe10MBLimit`,{name:e.name}));let n=ge(e.name),i={id:`${e.name}-${e.lastModified}-${e.size}`,name:e.name,mimeType:e.type||`application/octet-stream`,size:e.size};if(e.type.startsWith(`image/`)||ue.has(n))r.push({...i,kind:`image`,data:await he(e,t)});else if(e.type.startsWith(`text/`)||e.type===`application/json`||le.has(n))r.push({...i,kind:`text`,text:await e.text()});else if(de.has(n))r.push({...i,kind:`document`,extension:n,data:await he(e,t)});else throw Error(t(`chat:attachments.nameIsNotSupportedChooseAnImageOrTextCodeFile`,{name:e.name}))}return r}function ve(e){return e.split(/[\\/]/).filter(Boolean).at(-1)||e}function ye(e){return[...e].map(e=>String(e||``).trim()).filter(Boolean).slice(0,8).map(e=>({id:`path:${e}`,kind:`path`,name:ve(e),path:e}))}function be(e=[],t,n){let r=(0,R.useCallback)((e,t)=>a(e,i(),t),[]),[o,s]=(0,R.useState)(()=>[...e]),[c,l]=(0,R.useState)(``),[u,d]=(0,R.useState)([]),f=(0,R.useRef)(new Map),p=(0,R.useRef)(0),m=(0,R.useRef)(n);m.current=n,(0,R.useEffect)(()=>{let e=f.current;return d([]),l(``),()=>{for(let t of e.values())t.cancelled=!0;e.clear()}},[n]);let h=(0,R.useRef)([...e]),g=(0,R.useCallback)(e=>{h.current=e,s(e),t?.(e)},[t]),_=(0,R.useCallback)(async e=>{let t=n,i=[...e||[]].slice(0,8).map(e=>{let t=`preparing-${++p.current}`,n={name:e.name,cancelled:!1};return f.current.set(t,n),{id:t,job:n,file:e}}),a=()=>d([...f.current].map(([e,t])=>({id:e,name:t.name})));a(),l(``);let o=!1;for(let{id:e,job:n,file:s}of i)try{let i=await _e([s],r);if(n.cancelled||m.current!==t||!f.current.has(e))continue;let a=[...h.current,...i].slice(0,8);if(a.filter(e=>e.kind!==`path`).reduce((e,t)=>e+(t.size||0),0)>ce)throw Error(r(`chat:attachments.totalAttachmentSizeCannotExceed20MB`));g(a),o=!0}catch(e){!n.cancelled&&m.current===t&&l(e instanceof Error?e.message:String(e))}finally{f.current.delete(e),m.current===t&&a()}return o},[n,g,r]);return{attachments:o,attachmentError:c,preparingAttachments:u,addFiles:_,pasteFiles:(0,R.useCallback)(e=>{let t=pe(e.clipboardData);t.length&&(e.preventDefault(),_(t))},[_]),dropFiles:(0,R.useCallback)(e=>{if(!me(e.dataTransfer))return;e.preventDefault();let t=pe(e.dataTransfer);t.length&&_(t)},[_]),removeAttachment:(0,R.useCallback)(e=>{let t=f.current.get(e);if(t){t.cancelled=!0,f.current.delete(e),d([...f.current].map(([e,t])=>({id:e,name:t.name})));return}g(h.current.filter(t=>t.id!==e))},[g]),clearAttachments:(0,R.useCallback)(()=>{for(let e of f.current.values())e.cancelled=!0;f.current.clear(),d([]),g([])},[g]),addAttachments:(0,R.useCallback)(e=>{if(m.current!==n)return;l(``);let t=[...h.current];for(let n of e)t.some(e=>e.id===n.id)||t.push(n);g(t.slice(0,8))},[n,g]),replaceAttachments:g,setError:(0,R.useCallback)(e=>{l(e instanceof Error?e.message:String(e||``))},[])}}var xe=`new-task`,B=new Map,V=new Map;function Se(e,t){let n=t.match(/^\/[^\s]*(?:\s+([\s\S]*))?$/),r=(n?n[1]||``:t).trim();return`${e}${r?` ${r}`:` `}`}function Ce(e){return{text:e?.text||``,attachments:[...e?.attachments||[]]}}function H(e){return Ce(B.get(e))}function U(e,t){if(!e)return;let n={...H(e),...t};n.attachments=[...n.attachments];let r=H(e);r.text===n.text&&r.attachments.length===n.attachments.length&&r.attachments.every((e,t)=>e===n.attachments[t])||(r.text!==n.text&&V.set(e,(V.get(e)||0)+1),B.delete(e),!(!n.text&&!n.attachments.length)&&B.set(e,n))}function we(e){V.set(e,(V.get(e)||0)+1),B.delete(e)}function Te(e,t){let n=[...e.attachments],r=new Set(n.map(e=>e.id));for(let e of t.attachments){let t=e.id;if(!t||r.has(t)){let n=1;do t=`${e.id||`attachment`}-restored-${n++}`;while(r.has(t))}r.add(t),n.push({...e,id:t})}return{text:e.text&&t.text?`${e.text}\n${t.text}`:e.text||t.text,attachments:n}}function Ee(e){let t=(0,R.useRef)(e);t.current=e;let n=(0,R.useRef)(!0);(0,R.useEffect)(()=>(n.current=!0,()=>{n.current=!1}),[]);let r=(0,R.useRef)(H(e)),[i,a]=(0,R.useState)(r.current.text),o=(0,R.useCallback)(t=>U(e,{attachments:t}),[e]),s=be(r.current.attachments,o,e),c=s.replaceAttachments,l=s.clearAttachments;return(0,R.useEffect)(()=>{let t=H(e);a(t.text),c(t.attachments)},[c,e]),{value:i,updateValue:(0,R.useCallback)(t=>{a(t),U(e,{text:t})},[e]),selection:s,clearDraft:(0,R.useCallback)(()=>{let r=H(e);r.text!==i||r.attachments.length!==s.attachments.length||r.attachments.some((e,t)=>e!==s.attachments[t])||(we(e),!(!n.current||t.current!==e)&&(a(``),l()))},[l,s.attachments,e,i]),restoreDraft:(0,R.useCallback)(r=>{let i=Te(H(e),r);return U(e,i),!n.current||t.current!==e?!1:(a(i.text),c(i.attachments),!0)},[c,e]),captureSubmission:(0,R.useCallback)(()=>{let r=H(e),i=V.get(e)||0,o=!1;return{accept(){if(o)return;o=!0;let s=H(e),l={text:(V.get(e)||0)===i?``:s.text,attachments:s.attachments.filter(e=>!r.attachments.includes(e))};U(e,l),!(!n.current||t.current!==e)&&(a(l.text),c(l.attachments))}}},[c,e])}}var De=e(n(),1);function Oe({anchor:e,menu:t,viewport:n,placement:r=`top`,align:i=`start`,maxHeight:a=1/0}){let o=n.top+8,s=Math.max(o,n.top+n.height-8),c=n.left+8,l=Math.max(c,n.left+n.width-8),u={top:Math.max(0,Math.min(e.top,s)-o-8),bottom:Math.max(0,s-Math.max(e.bottom,o)-8)},d=Math.min(t.height,a),f=r===`top`?`bottom`:`top`,p=d>u[r]&&u[f]>u[r]?f:r,m=Math.min(a,u[p]),h=Math.min(d,m),g=Math.min(t.width,l-c);return{side:p,left:Math.max(c,Math.min(i===`end`?e.right-g:e.left,l-g)),top:Math.max(o,Math.min(p===`top`?e.top-8-h:e.bottom+8,s-h)),width:g,maxHeight:m}}var W=r();function ke({open:e,anchorRef:t,menuRef:n,placement:r=`top`,align:i=`start`,matchAnchorWidth:a=!1,maxHeight:o,id:s,className:c,role:l,ariaLabel:u,onClose:d,children:f}){return(0,R.useEffect)(()=>{if(!e||!d)return;let t=e=>{e.key===`Escape`&&(e.stopPropagation(),d())};return document.addEventListener(`keydown`,t),()=>document.removeEventListener(`keydown`,t)},[e,d]),(0,R.useLayoutEffect)(()=>{if(!e)return;let s=()=>{let e=n.current,s=t.current;if(!e||!s)return;let c=s.getBoundingClientRect(),l=window.visualViewport;e.style.width=a?`${c.width}px`:``;let u=Oe({anchor:c,menu:{width:e.getBoundingClientRect().width,height:e.scrollHeight},viewport:{left:l?.offsetLeft??0,top:l?.offsetTop??0,width:l?.width??window.innerWidth,height:l?.height??window.innerHeight},placement:r,align:i,maxHeight:o});e.dataset.side=u.side,e.style.maxHeight=`${u.maxHeight}px`,e.style.overflowY=`auto`,e.style.width=`${u.width}px`,e.style.top=`${u.top}px`,e.style.bottom=`auto`,e.style.right=`auto`,e.style.left=`${u.left}px`};s();let c=null,l=()=>{c===null&&(c=window.requestAnimationFrame(()=>{c=null,s()}))},u=typeof ResizeObserver>`u`?null:new ResizeObserver(l);return n.current&&u?.observe(n.current),t.current&&u?.observe(t.current),window.addEventListener(`resize`,s),window.addEventListener(`scroll`,s,!0),window.visualViewport?.addEventListener(`resize`,l),window.visualViewport?.addEventListener(`scroll`,l),()=>{u?.disconnect(),c!==null&&window.cancelAnimationFrame(c),window.removeEventListener(`resize`,s),window.removeEventListener(`scroll`,s,!0),window.visualViewport?.removeEventListener(`resize`,l),window.visualViewport?.removeEventListener(`scroll`,l)}},[e,t,n,r,i,a,o]),e?(0,De.createPortal)((0,W.jsx)(`div`,{ref:n,id:s,className:c,style:{position:`fixed`,zIndex:65},role:l,"aria-label":u,children:f}),document.body):null}function Ae({resourceKey:e,loadCommands:t,builtinCommands:n=[],value:r,onChange:i,inputRef:a,placement:s=`top`}){let{t:c,language:l}=o(),f=(0,R.useId)(),p=(0,R.useRef)(null),m=r.match(/^\/([^\n]{0,120})$/),[h,g]=(0,R.useState)(``),[_,v]=(0,R.useState)(null),[y,b]=(0,R.useState)(!1),[x,S]=(0,R.useState)(!1),[C,w]=(0,R.useState)(0),T=m?.[1]||``,E=/\s/.test(T),D=(0,R.useRef)(t);D.current=t;let O=(0,R.useMemo)(()=>oe(n,T,l),[n,l,T]),k=!!(m&&h!==r&&(!E||O.length));(0,R.useEffect)(()=>{g(``),v(null),S(!1)},[e]),(0,R.useEffect)(()=>{if(!k||_)return;let e=!0;return b(!0),S(!1),D.current().then(t=>{e&&v(t.commands||[])}).catch(()=>{e&&(v([]),S(!0))}).finally(()=>e&&b(!1)),()=>{e=!1}},[_,k,e]);let A=(0,R.useMemo)(()=>{let e=O.map(e=>({kind:`builtin`,command:e}));if(E)return e;let t=T.toLocaleLowerCase(l),n=(_||[]).filter(e=>!t||`${e.invocation} ${e.name} ${e.description}`.toLocaleLowerCase(l).includes(t));return[...e,...n.map(e=>({kind:`resource`,command:e}))]},[E,O,_,l,T]);(0,R.useEffect)(()=>{w(0)},[T,_]);let j=()=>{g(r)},M=e=>{if(e.kind===`builtin`){let t=e.command.run?``:`${e.command.invocation} `;i(t),g(``),w(0),e.command.run&&e.command.run(),requestAnimationFrame(()=>{let e=a.current;e&&(e.focus(),e.setSelectionRange(t.length,t.length))});return}let t=Se(e.command.invocation,r);i(t),g(t),requestAnimationFrame(()=>{let e=a.current;e&&(e.focus(),e.setSelectionRange(t.length,t.length),e.style.height=`auto`,e.style.height=`${Math.min(e.scrollHeight,220)}px`)})};(0,R.useEffect)(()=>{if(!k)return;let e=e=>{if(document.activeElement===a.current){if(e.key===`Escape`){e.preventDefault(),e.stopPropagation(),j();return}A.length&&(e.key===`ArrowDown`?(e.preventDefault(),e.stopPropagation(),w(e=>(e+1)%A.length)):e.key===`ArrowUp`?(e.preventDefault(),e.stopPropagation(),w(e=>(e-1+A.length)%A.length)):(e.key===`Tab`||e.key===`Enter`&&!e.shiftKey)&&(e.preventDefault(),e.stopPropagation(),M(A[Math.min(C,A.length-1)])))}};return document.addEventListener(`keydown`,e,!0),()=>document.removeEventListener(`keydown`,e,!0)}),(0,R.useEffect)(()=>{let e=a.current;if(!k||!e)return;let t={role:`combobox`,"aria-autocomplete":`list`,"aria-expanded":`true`,"aria-controls":f,"aria-activedescendant":A.length?`${f}-${Math.min(C,A.length-1)}`:``},n=Object.keys(t).map(t=>[t,e.getAttribute(t)]);for(let[n,r]of Object.entries(t))r?e.setAttribute(n,r):e.removeAttribute(n);return()=>{for(let[t,r]of n)t&&(r===null?e.removeAttribute(t):e.setAttribute(t,r))}},[C,a,f,k,A.length]);let N={user:c(`chat:commands.scope.user`),project:c(`chat:commands.scope.project`),package:c(`chat:commands.scope.package`),custom:c(`chat:commands.scope.custom`)};return(0,W.jsx)(ke,{open:k,anchorRef:a,menuRef:p,placement:s,matchAnchorWidth:!0,maxHeight:330,id:f,role:`listbox`,ariaLabel:c(`chat:commands.open`),className:`permission-mode-menu composer-command-menu overflow-y-auto rounded-md bg-solid p-1 text-content shadow-float`,children:(0,W.jsxs)(`div`,{className:`chat-resource-list composer-command-list flex min-h-0 [flex:1_1_0] flex-col gap-px overflow-y-auto [overscroll-behavior:contain] [scrollbar-gutter:stable] [touch-action:pan-y] [&_>_button]:grid [&_>_button]:w-full [&_>_button]:cursor-pointer [&_>_button]:grid-cols-[28px_minmax(0,1fr)_auto] [&_>_button]:items-center [&_>_button]:gap-2 [&_>_button]:rounded-sm [&_>_button]:px-1.5 [&_>_button]:py-1 [&_>_button]:text-left [&_>_button]:text-content [&_>_button.active]:bg-surface-hover max-[650px]:[&_>_button]:min-h-11 [&_button_>_span:nth-child(2)]:flex [&_button_>_span:nth-child(2)]:min-w-0 [&_button_>_span:nth-child(2)]:flex-col [&_strong]:truncate [&_strong]:font-mono [&_strong]:text-[13px] [&_strong]:font-medium [&_small]:truncate [&_small]:font-sans [&_small]:text-xs [&_small]:font-normal [&_small]:text-content-muted [&_em]:text-xs [&_em]:whitespace-nowrap [&_em]:text-content-muted [&_em]:not-italic [&_>_p]:m-auto [&_>_p]:px-2 [&_>_p]:py-1.5 [&_>_p]:text-xs [&_>_p]:text-content-muted`,children:[A.map((e,t)=>{let{command:n}=e,r=e.kind===`builtin`?e.command.current?d:re:e.command.source===`prompt`?ne:u,i=e.kind===`resource`?e.command:null;return(0,W.jsxs)(`button`,{type:`button`,role:`option`,id:`${f}-${t}`,"aria-selected":t===C,className:t===C?`active`:``,onMouseEnter:()=>w(t),onMouseDown:e=>e.preventDefault(),onClick:()=>M(e),children:[(0,W.jsx)(`span`,{className:`list-icon grid size-7 place-items-center rounded-sm bg-surface-muted text-content-secondary`,children:(0,W.jsx)(r,{size:15})}),(0,W.jsxs)(`span`,{className:`composer-command-copy`,children:[(0,W.jsxs)(`strong`,{children:[n.invocation,i?.argumentHint&&(0,W.jsxs)(`small`,{children:[` `,i.argumentHint]})]}),(0,W.jsx)(`small`,{children:n.description||c(`chat:commands.noDescription`)})]}),(0,W.jsx)(`em`,{children:i?(0,W.jsxs)(W.Fragment,{children:[i.source===`prompt`?c(`chat:commands.prompt`):c(`chat:commands.skill`),` · `,N[i.scope]]}):e.kind===`builtin`&&e.command.current?c(`chat:commands.builtin.current`):c(`chat:commands.builtin.label`)})]},`${e.kind}:${n.invocation}`)}),!A.length&&(0,W.jsx)(`p`,{children:c(y?`chat:commands.loading`:x?`chat:commands.loadError`:`chat:commands.empty`)})]})})}function je({levels:e,value:t,labelFor:n,onCommit:r,disabled:i=!1,ariaLabel:a,title:o,trailing:s,className:c}){let[l,u]=(0,R.useState)(null),[d,f]=(0,R.useState)(!1),p=(0,R.useRef)(!1),m=Math.max(0,e.indexOf(t)),h=l??m,g=n(e[h]||t),_=i||d||e.length<2,v=e.join(`|`);(0,R.useEffect)(()=>{u(null)},[t,v]);let y=async n=>{let i=e[n];if(_||p.current||!i||i===t){u(null);return}p.current=!0,f(!0);try{await r(i)}finally{p.current=!1,f(!1),u(null)}};return(0,W.jsxs)(`div`,{className:O(`min-w-0`,c),children:[(0,W.jsxs)(`div`,{className:`flex items-baseline justify-between gap-2 px-0.5 pb-1`,children:[o&&(0,W.jsx)(`span`,{className:`text-xs font-medium text-content-muted`,children:o}),(0,W.jsxs)(`span`,{className:`ml-auto flex min-w-0 items-baseline gap-2`,children:[(0,W.jsx)(`span`,{className:`truncate text-[13px] leading-5 font-medium text-accent-fg`,"aria-live":`polite`,children:g}),s]})]}),(0,W.jsx)(D,{className:O(`h-7`,`[&_[data-slot=slider-range]]:bg-[linear-gradient(90deg,var(--star-border),var(--star))]`,`[&_[data-slot=slider-thumb]]:size-4 [&_[data-slot=slider-thumb]]:bg-[radial-gradient(circle,var(--star)_0_2px,var(--key-bg)_2.5px)]`),showSteps:!0,min:0,max:Math.max(1,e.length-1),step:1,value:[h],disabled:_,"aria-label":a,valueText:g,onValueChange:([e])=>u(e),onValueCommit:([e])=>void y(e)}),e.length>1&&(0,W.jsxs)(`div`,{className:`flex justify-between px-0.5 pt-0.5 text-xs text-content-faint`,"aria-hidden":`true`,children:[(0,W.jsx)(`span`,{children:n(e[0])}),(0,W.jsx)(`span`,{children:n(e.at(-1)||``)})]})]})}var Me=96,Ne=.6,Pe=`10%`;function Fe({onDismiss:e,className:t}){let n=(0,R.useRef)(null),r=e=>{e.sheet.style.transform=``,e.sheet.style.transition=``},i=e=>{if(e.button!==0)return;let t=e.currentTarget.closest(`[data-slot="sheet-content"]`);t&&(e.currentTarget.setPointerCapture?.(e.pointerId),t.style.transition=`none`,n.current={pointerId:e.pointerId,startY:e.clientY,startAt:performance.now(),sheet:t,offset:0})},a=e=>{let t=n.current;!t||t.pointerId!==e.pointerId||(t.offset=Math.max(0,e.clientY-t.startY),t.sheet.style.transform=`translateY(${t.offset}px)`)},o=t=>{let{sheet:n}=t;n.style.setProperty(`--tw-exit-translate-y`,`calc(${t.offset}px + ${Pe})`);let i=()=>{n.removeEventListener(`animationstart`,a),r(t),n.style.removeProperty(`--tw-exit-translate-y`)},a=e=>{e.target===n&&n.dataset.state!==`closed`&&i()};n.addEventListener(`animationstart`,a),e(),requestAnimationFrame(()=>{n.isConnected&&n.dataset.state!==`closed`&&i()})},s=e=>{let t=n.current;if(!t||t.pointerId!==e.pointerId)return;n.current=null;let i=t.offset/Math.max(1,performance.now()-t.startAt);if(t.offset>=Me||t.offset>24&&i>=Ne){o(t);return}r(t)},c=()=>{let e=n.current;n.current=null,e&&r(e)};return(0,W.jsx)(`div`,{"aria-hidden":`true`,"data-sheet-drag-handle":!0,className:O(`flex h-8 w-full flex-none cursor-grab touch-none items-start justify-center select-none active:cursor-grabbing`,t),onPointerDown:i,onPointerMove:a,onPointerUp:s,onPointerCancel:c,onLostPointerCapture:c,children:(0,W.jsx)(`span`,{className:`mt-2.5 h-1 w-9 rounded-full bg-stroke-strong`})})}function Ie({sheet:e,title:t,trigger:n,children:r,open:i,onOpenChange:a,align:o,side:s,sideOffset:c,className:l,sheetClassName:u}){let[d,f]=(0,R.useState)(!1),p=i??d,m=e=>{i===void 0&&f(e),a?.(e)};return e?(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(_,{"aria-haspopup":`dialog`,"aria-expanded":p,onClick:()=>m(!0),children:n}),(0,W.jsx)(M,{open:p,onOpenChange:m,children:(0,W.jsxs)(k,{side:`bottom`,showCloseButton:!1,"data-popover-sheet":!0,className:O(`max-h-[85dvh] gap-1 overflow-y-auto rounded-t-(--r-sheet) px-3 pt-1 pb-[calc(12px+var(--pisper-safe-area-bottom))]`,u),children:[(0,W.jsx)(Fe,{onDismiss:()=>m(!1)}),(0,W.jsx)(A,{className:`px-2 pt-1 pb-1 text-base font-semibold`,children:t}),(0,W.jsx)(j,{className:`sr-only`,children:t}),r]})})]}):(0,W.jsxs)(E,{open:p,onOpenChange:m,children:[(0,W.jsx)(w,{asChild:!0,children:n}),(0,W.jsx)(T,{align:o,side:s,sideOffset:c,className:l,children:r})]})}var Le=1,Re=.9,ze=.8,Be=.17,Ve=.1,He=.999,Ue=.9999,We=.99,Ge=/[\\\/_+.#"@\[\(\{&]/,Ke=/[\\\/_+.#"@\[\(\{&]/g,qe=/[\s-]/,Je=/[\s-]/g;function Ye(e,t,n,r,i,a,o){if(a===t.length)return i===e.length?Le:We;var s=`${i},${a}`;if(o[s]!==void 0)return o[s];for(var c=r.charAt(a),l=n.indexOf(c,i),u=0,d,f,p,m;l>=0;)d=Ye(e,t,n,r,l+1,a+1,o),d>u&&(l===i?d*=Le:Ge.test(e.charAt(l-1))?(d*=ze,p=e.slice(i,l-1).match(Ke),p&&i>0&&(d*=He**+p.length)):qe.test(e.charAt(l-1))?(d*=Re,m=e.slice(i,l-1).match(Je),m&&i>0&&(d*=He**+m.length)):(d*=Be,i>0&&(d*=He**+(l-i))),e.charAt(l)!==t.charAt(a)&&(d*=Ue)),(d<Ve&&n.charAt(l-1)===r.charAt(a+1)||r.charAt(a+1)===r.charAt(a)&&n.charAt(l-1)!==r.charAt(a))&&(f=Ye(e,t,n,r,l+1,a+2,o),f*Ve>d&&(d=f*Ve)),d>u&&(u=d),l=n.indexOf(c,l+1);return o[s]=u,u}function Xe(e){return e.toLowerCase().replace(Je,` `)}function Ze(e,t,n){return e=n&&n.length>0?`${e+` `+n.join(` `)}`:e,Ye(e,t,Xe(e),Xe(t),0,0,{})}var G=`[cmdk-group=""]`,Qe=`[cmdk-group-items=""]`,$e=`[cmdk-group-heading=""]`,et=`[cmdk-item=""]`,tt=`${et}:not([aria-disabled="true"])`,nt=`cmdk-item-select`,K=`data-value`,rt=(e,t,n)=>Ze(e,t,n),it=R.createContext(void 0),q=()=>R.useContext(it),at=R.createContext(void 0),ot=()=>R.useContext(at),st=R.createContext(void 0),ct=R.forwardRef((e,t)=>{let n=X(()=>({search:``,value:e.value??e.defaultValue??``,selectedItemId:void 0,filtered:{count:0,items:new Map,groups:new Set}})),r=X(()=>new Set),i=X(()=>new Map),a=X(()=>new Map),o=X(()=>new Set),s=yt(e),{label:c,children:l,value:u,onValueChange:d,filter:f,shouldFilter:p,loop:m,disablePointerSelection:h=!1,vimBindings:g=!0,..._}=e,b=y(),x=y(),S=y(),C=R.useRef(null),w=xt();Y(()=>{if(u!==void 0){let e=u.trim();n.current.value=e,T.emit()}},[u]),Y(()=>{w(6,j)},[]);let T=R.useMemo(()=>({subscribe:e=>(o.current.add(e),()=>o.current.delete(e)),snapshot:()=>n.current,setState:(e,t,r)=>{var i,a,o;if(!Object.is(n.current[e],t)){if(n.current[e]=t,e===`search`)A(),O(),w(1,k);else if(e===`value`){if(document.activeElement.hasAttribute(`cmdk-input`)||document.activeElement.hasAttribute(`cmdk-root`)){let e=document.getElementById(S);e?e.focus():(i=document.getElementById(b))==null||i.focus()}if(w(7,()=>{n.current.selectedItemId=M()?.id,T.emit()}),r||w(5,j),s.current?.value!==void 0){let e=t??``;(o=(a=s.current).onValueChange)==null||o.call(a,e);return}}T.emit()}},emit:()=>{o.current.forEach(e=>e())}}),[]),E=R.useMemo(()=>({value:(e,t,r)=>{t!==a.current.get(e)?.value&&(a.current.set(e,{value:t,keywords:r}),n.current.filtered.items.set(e,D(t,r)),w(2,()=>{O(),T.emit()}))},item:(e,t)=>(r.current.add(e),t&&(i.current.has(t)?i.current.get(t).add(e):i.current.set(t,new Set([e]))),w(3,()=>{A(),O(),n.current.value||k(),T.emit()}),()=>{a.current.delete(e),r.current.delete(e),n.current.filtered.items.delete(e);let t=M();w(4,()=>{A(),t?.getAttribute(`id`)===e&&k(),T.emit()})}),group:e=>(i.current.has(e)||i.current.set(e,new Set),()=>{a.current.delete(e),i.current.delete(e)}),filter:()=>s.current.shouldFilter,label:c||e[`aria-label`],getDisablePointerSelection:()=>s.current.disablePointerSelection,listId:b,inputId:S,labelId:x,listInnerRef:C}),[]);function D(e,t){let r=s.current?.filter??rt;return e?r(e,n.current.search,t):0}function O(){if(!n.current.search||s.current.shouldFilter===!1)return;let e=n.current.filtered.items,t=[];n.current.filtered.groups.forEach(n=>{let r=i.current.get(n),a=0;r.forEach(t=>{let n=e.get(t);a=Math.max(n,a)}),t.push([n,a])});let r=C.current;N().sort((t,n)=>{let r=t.getAttribute(`id`),i=n.getAttribute(`id`);return(e.get(i)??0)-(e.get(r)??0)}).forEach(e=>{let t=e.closest(Qe);t?t.appendChild(e.parentElement===t?e:e.closest(`${Qe} > *`)):r.appendChild(e.parentElement===r?e:e.closest(`${Qe} > *`))}),t.sort((e,t)=>t[1]-e[1]).forEach(e=>{let t=C.current?.querySelector(`${G}[${K}="${encodeURIComponent(e[0])}"]`);t?.parentElement.appendChild(t)})}function k(){let e=N().find(e=>e.getAttribute(`aria-disabled`)!==`true`)?.getAttribute(K);T.setState(`value`,e||void 0)}function A(){if(!n.current.search||s.current.shouldFilter===!1){n.current.filtered.count=r.current.size;return}n.current.filtered.groups=new Set;let e=0;for(let t of r.current){let r=D(a.current.get(t)?.value??``,a.current.get(t)?.keywords??[]);n.current.filtered.items.set(t,r),r>0&&e++}for(let[e,t]of i.current)for(let r of t)if(n.current.filtered.items.get(r)>0){n.current.filtered.groups.add(e);break}n.current.filtered.count=e}function j(){var e;let t=M();t&&(t.parentElement?.firstChild===t&&((e=t.closest(G)?.querySelector($e))==null||e.scrollIntoView({block:`nearest`})),t.scrollIntoView({block:`nearest`}))}function M(){return C.current?.querySelector(`${et}[aria-selected="true"]`)}function N(){return Array.from(C.current?.querySelectorAll(tt)||[])}function P(e){let t=N()[e];t&&T.setState(`value`,t.getAttribute(K))}function F(e){var t;let n=M(),r=N(),i=r.findIndex(e=>e===n),a=r[i+e];(t=s.current)!=null&&t.loop&&(a=i+e<0?r[r.length-1]:i+e===r.length?r[0]:r[i+e]),a&&T.setState(`value`,a.getAttribute(K))}function I(e){let t=M()?.closest(G),n;for(;t&&!n;)t=e>0?_t(t,G):vt(t,G),n=t?.querySelector(tt);n?T.setState(`value`,n.getAttribute(K)):F(e)}let ee=()=>P(N().length-1),te=e=>{e.preventDefault(),e.metaKey?ee():e.altKey?I(1):F(1)},L=e=>{e.preventDefault(),e.metaKey?P(0):e.altKey?I(-1):F(-1)};return R.createElement(v.div,{ref:t,tabIndex:-1,..._,"cmdk-root":``,onKeyDown:e=>{var t;(t=_.onKeyDown)==null||t.call(_,e);let n=e.nativeEvent.isComposing||e.keyCode===229;if(!(e.defaultPrevented||n))switch(e.key){case`n`:case`j`:g&&e.ctrlKey&&te(e);break;case`ArrowDown`:te(e);break;case`p`:case`k`:g&&e.ctrlKey&&L(e);break;case`ArrowUp`:L(e);break;case`Home`:e.preventDefault(),P(0);break;case`End`:e.preventDefault(),ee();break;case`Enter`:{e.preventDefault();let t=M();if(t){let e=new Event(nt);t.dispatchEvent(e)}}}}},R.createElement(`label`,{"cmdk-label":``,htmlFor:E.inputId,id:E.labelId,style:Ct},c),Q(e,e=>R.createElement(at.Provider,{value:T},R.createElement(it.Provider,{value:E},e))))}),lt=R.forwardRef((e,t)=>{let n=y(),r=R.useRef(null),i=R.useContext(st),a=q(),o=yt(e),s=o.current?.forceMount??i?.forceMount;Y(()=>{if(!s)return a.item(n,i?.id)},[s]);let c=bt(n,r,[e.value,e.children,r],e.keywords),l=ot(),u=Z(e=>e.value&&e.value===c.current),d=Z(e=>s||a.filter()===!1?!0:!e.search||e.filtered.items.get(n)>0);R.useEffect(()=>{let t=r.current;if(!(!t||e.disabled))return t.addEventListener(nt,f),()=>t.removeEventListener(nt,f)},[d,e.onSelect,e.disabled]);function f(){var e,t;p(),(t=(e=o.current).onSelect)==null||t.call(e,c.current)}function p(){l.setState(`value`,c.current,!0)}if(!d)return null;let{disabled:m,value:h,onSelect:_,forceMount:b,keywords:x,...S}=e;return R.createElement(v.div,{ref:g(r,t),...S,id:n,"cmdk-item":``,role:`option`,"aria-disabled":!!m,"aria-selected":!!u,"data-disabled":!!m,"data-selected":!!u,onPointerMove:m||a.getDisablePointerSelection()?void 0:p,onClick:m?void 0:f},e.children)}),ut=R.forwardRef((e,t)=>{let{heading:n,children:r,forceMount:i,...a}=e,o=y(),s=R.useRef(null),c=R.useRef(null),l=y(),u=q(),d=Z(e=>i||u.filter()===!1?!0:!e.search||e.filtered.groups.has(o));Y(()=>u.group(o),[]),bt(o,s,[e.value,e.heading,c]);let f=R.useMemo(()=>({id:o,forceMount:i}),[i]);return R.createElement(v.div,{ref:g(s,t),...a,"cmdk-group":``,role:`presentation`,hidden:!d||void 0},n&&R.createElement(`div`,{ref:c,"cmdk-group-heading":``,"aria-hidden":!0,id:l},n),Q(e,e=>R.createElement(`div`,{"cmdk-group-items":``,role:`group`,"aria-labelledby":n?l:void 0},R.createElement(st.Provider,{value:f},e))))}),dt=R.forwardRef((e,t)=>{let{alwaysRender:n,...r}=e,i=R.useRef(null),a=Z(e=>!e.search);return!n&&!a?null:R.createElement(v.div,{ref:g(i,t),...r,"cmdk-separator":``,role:`separator`})}),ft=R.forwardRef((e,t)=>{let{onValueChange:n,...r}=e,i=e.value!=null,a=ot(),o=Z(e=>e.search),s=Z(e=>e.selectedItemId),c=q();return R.useEffect(()=>{e.value!=null&&a.setState(`search`,e.value)},[e.value]),R.createElement(v.input,{ref:t,...r,"cmdk-input":``,autoComplete:`off`,autoCorrect:`off`,spellCheck:!1,"aria-autocomplete":`list`,role:`combobox`,"aria-expanded":!0,"aria-controls":c.listId,"aria-labelledby":c.labelId,"aria-activedescendant":s,id:c.inputId,type:`text`,value:i?e.value:o,onChange:e=>{i||a.setState(`search`,e.target.value),n?.(e.target.value)}})}),pt=R.forwardRef((e,t)=>{let{children:n,label:r=`Suggestions`,...i}=e,a=R.useRef(null),o=R.useRef(null),s=Z(e=>e.selectedItemId),c=q();return R.useEffect(()=>{if(o.current&&a.current){let e=o.current,t=a.current,n,r=new ResizeObserver(()=>{n=requestAnimationFrame(()=>{let n=e.offsetHeight;t.style.setProperty(`--cmdk-list-height`,n.toFixed(1)+`px`)})});return r.observe(e),()=>{cancelAnimationFrame(n),r.unobserve(e)}}},[]),R.createElement(v.div,{ref:g(a,t),...i,"cmdk-list":``,role:`listbox`,tabIndex:-1,"aria-activedescendant":s,"aria-label":r,id:c.listId},Q(e,e=>R.createElement(`div`,{ref:g(o,c.listInnerRef),"cmdk-list-sizer":``},e)))}),mt=R.forwardRef((e,t)=>{let{open:n,onOpenChange:r,overlayClassName:i,contentClassName:a,container:o,...s}=e;return R.createElement(C,{open:n,onOpenChange:r},R.createElement(x,{container:o},R.createElement(b,{"cmdk-overlay":``,className:i}),R.createElement(S,{"aria-label":e.label,"cmdk-dialog":``,className:a},R.createElement(ct,{ref:t,...s}))))}),ht=R.forwardRef((e,t)=>Z(e=>e.filtered.count===0)?R.createElement(v.div,{ref:t,...e,"cmdk-empty":``,role:`presentation`}):null),gt=R.forwardRef((e,t)=>{let{progress:n,children:r,label:i=`Loading...`,...a}=e;return R.createElement(v.div,{ref:t,...a,"cmdk-loading":``,role:`progressbar`,"aria-valuenow":n,"aria-valuemin":0,"aria-valuemax":100,"aria-label":i},Q(e,e=>R.createElement(`div`,{"aria-hidden":!0},e)))}),J=Object.assign(ct,{List:pt,Item:lt,Input:ft,Group:ut,Separator:dt,Dialog:mt,Empty:ht,Loading:gt});function _t(e,t){let n=e.nextElementSibling;for(;n;){if(n.matches(t))return n;n=n.nextElementSibling}}function vt(e,t){let n=e.previousElementSibling;for(;n;){if(n.matches(t))return n;n=n.previousElementSibling}}function yt(e){let t=R.useRef(e);return Y(()=>{t.current=e}),t}var Y=typeof window>`u`?R.useEffect:R.useLayoutEffect;function X(e){let t=R.useRef();return t.current===void 0&&(t.current=e()),t}function Z(e){let t=ot(),n=()=>e(t.snapshot());return R.useSyncExternalStore(t.subscribe,n,n)}function bt(e,t,n,r=[]){let i=R.useRef(),a=q();return Y(()=>{var o;let s=(()=>{for(let e of n){if(typeof e==`string`)return e.trim();if(typeof e==`object`&&`current`in e)return e.current?e.current.textContent?.trim():i.current}})(),c=r.map(e=>e.trim());a.value(e,s,c),(o=t.current)==null||o.setAttribute(K,s),i.current=s}),i}var xt=()=>{let[e,t]=R.useState(),n=X(()=>new Map);return Y(()=>{n.current.forEach(e=>e()),n.current=new Map},[e]),(e,r)=>{n.current.set(e,r),t({})}};function St(e){let t=e.type;return typeof t==`function`?t(e.props):`render`in t?t.render(e.props):e}function Q({asChild:e,children:t},n){return e&&R.isValidElement(t)?R.cloneElement(St(t),{ref:t.ref},n(t.props.children)):n(t)}var Ct={position:`absolute`,width:`1px`,height:`1px`,padding:`0`,margin:`-1px`,overflow:`hidden`,clip:`rect(0, 0, 0, 0)`,whiteSpace:`nowrap`,borderWidth:`0`};function wt({className:e,...t}){return(0,W.jsx)(J,{"data-slot":`command`,className:O(`flex size-full flex-col overflow-hidden rounded-md! bg-popover p-1 text-popover-foreground`,e),...t})}function Tt({className:e,...t}){return(0,W.jsx)(`div`,{"data-slot":`command-input-wrapper`,className:`p-1 pb-0`,children:(0,W.jsxs)(te,{className:`h-8! rounded-sm! border-stroke bg-surface-subtle shadow-none! *:data-[slot=input-group-addon]:pl-2!`,children:[(0,W.jsx)(J.Input,{"data-slot":`command-input`,className:O(`w-full text-sm outline-hidden disabled:cursor-not-allowed disabled:opacity-50`,e),...t}),(0,W.jsx)(ee,{children:(0,W.jsx)(h,{className:`size-4 shrink-0 opacity-50`})})]})})}function Et({className:e,...t}){return(0,W.jsx)(J.List,{"data-slot":`command-list`,className:O(`no-scrollbar max-h-72 scroll-py-1 overflow-x-hidden overflow-y-auto outline-none`,e),...t})}function Dt({className:e,...t}){return(0,W.jsx)(J.Empty,{"data-slot":`command-empty`,className:O(`py-6 text-center text-sm`,e),...t})}function Ot({className:e,...t}){return(0,W.jsx)(J.Group,{"data-slot":`command-group`,className:O(`overflow-hidden p-1 text-foreground **:[[cmdk-group-heading]]:px-2 **:[[cmdk-group-heading]]:py-1.5 **:[[cmdk-group-heading]]:text-xs **:[[cmdk-group-heading]]:font-medium **:[[cmdk-group-heading]]:text-muted-foreground`,e),...t})}function kt({className:e,children:t,...n}){return(0,W.jsxs)(J.Item,{"data-slot":`command-item`,className:O(`group/command-item relative flex min-h-7.5 max-[650px]:min-h-11 pointer-coarse:min-h-11 cursor-default items-center gap-2 rounded-sm px-2 py-1 text-sm outline-hidden select-none data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50 data-selected:bg-accent data-selected:text-foreground [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 data-selected:*:[svg]:text-foreground`,e),...n,children:[t,(0,W.jsx)(d,{className:`ml-auto opacity-0 group-has-data-[slot=command-shortcut]/command-item:hidden group-data-[checked=true]/command-item:opacity-100`})]})}var At={system:`var(--viz-1)`,project:`var(--viz-2)`,skills:`var(--viz-3)`,tools:`var(--viz-4)`,mcp:`var(--viz-5)`,messages:`var(--viz-6)`,toolResults:`var(--viz-7)`},jt=`grid grid-cols-[8px_minmax(0,1fr)_auto_2.25rem] items-center gap-x-2 rounded-[4px] px-1 py-0.5 text-xs`;function Mt({percent:e,compactAtPercent:t}){let{t:n}=o();return(0,W.jsxs)(`div`,{"aria-hidden":`true`,className:`relative h-1 rounded-full bg-surface-active`,children:[e>0&&(0,W.jsx)(`span`,{className:`absolute inset-y-0 left-0 min-w-1 rounded-full bg-content-secondary`,style:{width:`${Math.min(100,e)}%`}}),t!==null&&(0,W.jsx)(`span`,{"data-context-compact-line":!0,title:n(`board:composer.context.compactAt`,{percent:t}),className:`absolute -top-[3px] -bottom-[3px] w-[2px] -translate-x-1/2 rounded-full bg-content`,style:{left:`${t}%`}})]})}function Nt({breakdown:e}){let{t}=o(),[n,r]=(0,R.useState)(null),{contextWindow:i,usedTokens:a,freeTokens:s,compactAtPercent:c}=e,l=e.categories.filter(e=>e.tokens>0),u=e.categories.filter(e=>e.tokens>0||e.id===`mcp`&&e.deferred>0),d={system:t(`board:composer.context.system`),project:t(`board:composer.context.project`),skills:t(`board:composer.context.skills`),tools:t(`board:composer.context.tools`),mcp:t(`board:composer.context.mcp`),messages:t(`board:composer.context.messages`),toolResults:t(`board:composer.context.toolResults`)},f=e=>N(e,a),p=e=>({onMouseEnter:()=>r(e),onMouseLeave:()=>r(null)}),m=[t(`board:composer.context.free`,{tokens:F(s)}),c===null?``:t(`board:composer.context.compactAt`,{percent:c})].filter(Boolean).join(` · `);return(0,W.jsxs)(`div`,{className:`grid gap-2`,"data-context-breakdown":!0,children:[(0,W.jsxs)(`div`,{className:`grid gap-1.5`,children:[(0,W.jsx)(Mt,{percent:i?a/i*100:0,compactAtPercent:c}),(0,W.jsx)(`span`,{className:`text-[11px] leading-4 text-content-muted`,"data-context-capacity":!0,children:m})]}),l.length>0&&(0,W.jsxs)(`div`,{className:`grid gap-1.5`,children:[(0,W.jsx)(`span`,{className:`text-[11px] leading-4 text-content-muted`,children:t(`board:composer.context.composition`)}),(0,W.jsx)(`div`,{role:`img`,"aria-label":l.map(e=>`${d[e.id]} ${f(e.tokens)}`).join(`, `),className:`flex h-2.5 w-full gap-[2px]`,children:l.map(e=>(0,W.jsx)(`span`,{"data-context-segment":e.id,title:`${d[e.id]} · ${F(e.tokens)} · ${f(e.tokens)}`,className:O(`min-w-[3px] rounded-[2px] transition-opacity duration-(--d-fast)`,n&&n!==e.id&&`opacity-30`),style:{flexGrow:e.tokens,flexBasis:0,backgroundColor:At[e.id]},...p(e.id)},e.id))})]}),(0,W.jsx)(`ul`,{className:`m-0 grid list-none gap-0 p-0`,children:u.map(e=>(0,W.jsxs)(`li`,{className:`contents`,children:[(0,W.jsxs)(`div`,{"data-context-row":e.id,className:O(jt,n===e.id&&`bg-surface-hover`),...p(e.id),children:[(0,W.jsx)(`span`,{"aria-hidden":`true`,className:`size-2 rounded-[2px]`,style:{backgroundColor:At[e.id]}}),(0,W.jsxs)(`span`,{className:`min-w-0 truncate text-content-secondary`,children:[d[e.id],e.id===`tools`&&e.count?(0,W.jsxs)(`span`,{className:`text-content-muted`,children:[` · `,e.count]}):null]}),(0,W.jsx)(`span`,{className:`font-medium text-content tabular-nums`,children:F(e.tokens)}),(0,W.jsx)(`span`,{className:`text-right text-content-muted tabular-nums`,children:f(e.tokens)})]}),e.servers.map(e=>{let n=[e.name,e.tools>0?t(`board:composer.context.toolCount`,{count:e.tools}):``,e.calls>0?t(`board:composer.context.callCount`,{count:e.calls}):``].filter(Boolean).join(` · `);return(0,W.jsxs)(`div`,{"data-context-server":e.name,className:O(jt,`py-0 text-content-muted`),children:[(0,W.jsx)(`span`,{"aria-hidden":`true`}),(0,W.jsx)(`span`,{className:`min-w-0 truncate`,title:n,children:n}),(0,W.jsx)(`span`,{className:`tabular-nums`,children:F(e.tokens)}),(0,W.jsx)(`span`,{})]},e.name)}),e.deferred>0&&(0,W.jsxs)(`div`,{"data-context-deferred":!0,className:O(jt,`py-0 text-content-muted`),children:[(0,W.jsx)(`span`,{"aria-hidden":`true`}),(0,W.jsx)(`span`,{className:`col-span-3 min-w-0`,children:t(`board:composer.context.deferred`,{count:e.deferred})})]})]},e.id))}),(0,W.jsx)(`p`,{className:`m-0 text-[11px] leading-4 text-content-muted`,"data-context-hint":!0,children:e.prefixKnown?e.totalKnown?t(`board:composer.context.estimated`):t(`board:composer.context.allEstimated`):t(`board:composer.context.prefixUnknown`)})]})}function Pt(e,t){let n=t.find(t=>t.key===e);return n?`${n.providerName} · ${n.label}`:e.split(`/`).at(-1)||e}function Ft({label:e,value:t,wide:n=!1,usageKey:r,title:i}){return(0,W.jsxs)(`div`,{className:O(`grid min-w-0 gap-0.5 rounded-[var(--r-md)] bg-surface-subtle px-2 py-1.5 dark:bg-surface-active`,n&&`col-span-2`),"data-usage-row":r,title:i,children:[(0,W.jsx)(`span`,{className:`truncate text-[11px] leading-4 text-content-muted`,children:e}),(0,W.jsx)(`strong`,{className:`truncate text-[13px] leading-4 font-medium text-content`,children:t})]})}function It({model:e,availableModels:t,sessionUsage:n}){let{t:r,language:i}=o(),a=n?.timing&&typeof n.timing==`object`?n.timing:null,s=Math.max(0,Number(a?.firstTokenSamples)||0),c=Math.max(0,Number(a?.requests)||0),l=s>0?Number(a?.firstTokenTotalMs)/s:null,u=c>0?Number(a?.durationTotalMs)/c:null,d=!!n?.cacheReported,f=[[r(`chat:focusSession.statCurrentModel`),e?Pt(e,t||[]):`—`],[r(`chat:focusSession.statInputTokens`),F(n?.input)],[r(`chat:focusSession.statOutputTokens`),F(n?.output)],[r(`chat:focusSession.statCacheReadTokens`),d?F(n?.cacheRead):`—`],[r(`chat:focusSession.statCacheWriteTokens`),d?F(n?.cacheWrite):`—`],[r(`chat:focusSession.statReasoningTokens`),F(n?.reasoning)],[r(`chat:focusSession.statRequests`),String(Math.max(0,Number(n?.requests)||0))],[r(`chat:focusSession.statAvgFirstToken`),l==null?`—`:I(l,i)],[r(`chat:focusSession.statAvgDuration`),u==null?`—`:I(u,i)]];return(0,W.jsxs)(`div`,{className:`session-stats-panel grid grid-cols-2 gap-1`,"aria-label":r(`chat:focusSession.sessionStats`),children:[f.map(([e,t],n)=>(0,W.jsx)(Ft,{label:e,value:t,wide:n===0},e)),(0,W.jsx)(`small`,{className:`col-span-2 text-[11px] leading-4 text-content-muted`,children:r(`chat:focusSession.sessionStatsHint`)})]})}function Lt({sessionId:e,usage:t,sessionUsage:n,model:r,availableModels:i,onThresholdChange:a}){let{t:l}=o(),u=Number(t?.contextWindow)||0,d=t?.compactAtPercent==null?80:Number(t.compactAtPercent),p=Number.isFinite(d)?Math.round(d):80,[m,h]=(0,R.useState)(p),[g,_]=(0,R.useState)(!1),[v,y]=(0,R.useState)(``),b=(0,R.useRef)(p),x=(0,R.useRef)(void 0);(0,R.useEffect)(()=>{window.clearTimeout(x.current),h(p),b.current=p},[p]),(0,R.useEffect)(()=>()=>window.clearTimeout(x.current),[]);let S=c({queryKey:[`context-breakdown`,e,t?.tokens??null,u],queryFn:({signal:t})=>P.getContextBreakdown(String(e),t),enabled:!!e&&u>0,retry:!1,staleTime:5e3,placeholderData:s}).data,C=t?.percent!=null&&Number.isFinite(Number(t.percent))?Math.max(0,Number(t?.percent)):null,w=Math.max(0,Number(n?.processedTokens)||0),T=Number(n?.cacheHitRate),E=n?.cacheHitRate!=null&&Number.isFinite(T),O=t?.tokens==null?S?`≈${F(S.usedTokens)}`:`—`:F(t.tokens),k=u?`${O} / ${F(u)}${C==null?``:` · ${Math.round(C)}%`}`:``,A=t?.autoCompactEnabled&&t.compactionCapacityPercent!=null?l(`chat:focusSession.contextUsageToCompactionTokensPercent`,{percent:Math.round(Number(t.compactionCapacityPercent)),tokens:F(t.remainingBeforeCompaction)}):``,j=async e=>{let t=Math.min(95,Math.max(10,Math.round(e)));if(h(t),!(!a||t===b.current)){_(!0),y(``);try{await a(t),b.current=t}catch(e){y(e instanceof Error?e.message:String(e))}finally{_(!1)}}},M=e=>{window.clearTimeout(x.current),h(e),x.current=window.setTimeout(()=>void j(e),250)},N=e=>{window.clearTimeout(x.current),j(e)};return(0,W.jsxs)(`div`,{className:`context-usage-section grid gap-1.5 border-t border-stroke-soft px-2 pt-2 pb-1.5`,"data-context-usage":!0,children:[k&&(0,W.jsxs)(`div`,{className:`grid gap-1.5`,children:[((e,t,n,r)=>(0,W.jsxs)(`div`,{className:`flex items-baseline justify-between gap-3 text-xs`,"data-usage-row":n,title:r,children:[(0,W.jsx)(`span`,{className:`shrink-0 text-content-muted`,children:e}),(0,W.jsx)(`strong`,{className:`min-w-0 truncate text-right font-medium text-content tabular-nums`,children:t})]}))(l(`board:composer.contextUsage`),k,`context`),S?(0,W.jsx)(Nt,{breakdown:S}):(0,W.jsx)(Mt,{percent:C??0,compactAtPercent:t?.autoCompactEnabled?d:null})]}),(0,W.jsxs)(`div`,{className:`grid grid-cols-2 gap-1`,children:[(0,W.jsx)(Ft,{label:l(`board:composer.sessionTokens`),value:w>0?l(`board:composer.tokens`,{tokens:F(w)}):`—`,usageKey:`tokens`}),(0,W.jsx)(Ft,{label:l(`board:composer.cacheHitLabel`),value:E?`${Math.round(Math.max(0,T))}%`:`—`,usageKey:`cache`,title:E?void 0:l(`chat:focusSession.cacheHitRateUnavailable`)})]}),u>0&&(0,W.jsxs)(`details`,{className:`group/usage min-w-0 text-xs`,onToggle:e=>{let t=e.currentTarget;t.open&&requestAnimationFrame(()=>t.scrollIntoView({block:`nearest`}))},children:[(0,W.jsxs)(`summary`,{className:`flex min-h-7 cursor-pointer list-none items-center gap-1 rounded-sm text-content-secondary hover:text-content focus-visible:outline-2 focus-visible:outline-focus max-[650px]:min-h-11 [&::-webkit-details-marker]:hidden`,children:[(0,W.jsx)(f,{size:13,"aria-hidden":`true`,className:`transition-transform duration-(--d-fast) group-open/usage:rotate-90`}),l(`chat:focusSession.sessionStats`)]}),(0,W.jsxs)(`div`,{className:`grid gap-2 pt-1.5`,children:[(0,W.jsx)(It,{model:r,availableModels:i,sessionUsage:n}),A&&(0,W.jsx)(`small`,{className:`text-content-muted`,children:A}),(0,W.jsxs)(`div`,{className:`flex items-center justify-between font-medium text-content`,children:[(0,W.jsx)(`span`,{children:l(`chat:focusSession.autoCompactionThreshold`)}),(0,W.jsxs)(`output`,{className:`tabular-nums`,children:[m,`%`]})]}),(0,W.jsx)(D,{min:10,max:95,step:1,value:[m],className:`h-5 w-full`,"aria-label":l(`chat:focusSession.autoCompactionThreshold`),valueText:`${m}%`,disabled:g,onValueChange:([e])=>M(e),onValueCommit:([e])=>N(e)}),(0,W.jsx)(`small`,{className:v?`text-danger`:`text-content-muted`,children:v||(g?l(`chat:focusSession.savingCompactionThreshold`):`\xA0`)})]})]})]})}function $(e,t){return{off:e(`chat:focusSession.thinkingLabel.off`),minimal:e(`chat:focusSession.thinkingLabel.minimal`),low:e(`chat:focusSession.thinkingLabel.low`),medium:e(`chat:focusSession.thinkingLabel.medium`),high:e(`chat:focusSession.thinkingLabel.high`),xhigh:e(`chat:focusSession.thinkingLabel.xhigh`),max:e(`chat:focusSession.thinkingLabel.max`)}[t]||t}function Rt({model:e,models:t,onModelChange:n,thinkingLevel:r,levels:i,status:a,message:s,onThinkingChange:c,modelDisabled:l,thinkingDisabled:u,deferred:d=!1,pendingModel:f=!1,usage:h,sheet:g=!1,side:_=`top`,thinkingIsDefault:v=!1,onThinkingReset:y,triggerClassName:b}){let{t:x}=o(),[S,C]=(0,R.useState)(!1),w=t.find(t=>t.key===e),T=t.map(e=>e.label),E=w?.label||e.split(`/`).at(-1)||``,D=E?L(E,T):x(`chat:focusSession.toolbarModel`),k=[...t.reduce((e,t)=>{let n=e.get(t.providerName)||[];return n.push(t),e.set(t.providerName,n)},new Map)],A=a!==`unsupported`&&i.length>0,j=A?$(x,r||i[0]):`—`,M=f?x(`chat:focusSession.thinkingAfterModelSwitch`):A?j:s||x(a===`unsupported`?`chat:focusSession.thinkingLevelUnsupported`:`chat:focusSession.loadingThinkingLevels`),N=u||S||!A||i.length<2,P=`${x(`chat:focusSession.modelAndThinking`)} · ${Pt(e,t)} · ${M}`;return(0,W.jsxs)(Ie,{sheet:g,title:x(`chat:focusSession.modelAndThinking`),align:`end`,side:_,sideOffset:8,className:`model-effort-popover w-[272px] max-w-[calc(100vw_-_24px)] gap-0 p-1`,trigger:(0,W.jsxs)(`button`,{type:`button`,className:O(`model-effort-pill inline-flex h-[30px] min-w-0 max-w-[260px] cursor-pointer items-center gap-1.5 rounded-sm border border-transparent pr-1.5 pl-2.5 text-[13px] text-content transition-colors hover:bg-surface-hover disabled:cursor-default disabled:opacity-60 aria-expanded:bg-surface-hover max-[650px]:h-9 max-[650px]:gap-1 max-[650px]:rounded-full max-[650px]:bg-surface-muted max-[650px]:dark:bg-surface-active max-[650px]:px-3 max-[650px]:text-sm min-[651px]:pointer-coarse:h-11`,m,b),"aria-label":P,title:P,children:[(0,W.jsx)(`span`,{className:`min-w-0 truncate font-medium max-[650px]:hidden`,children:D}),(0,W.jsx)(`span`,{className:`hidden font-medium whitespace-nowrap max-[650px]:inline`,children:x(`chat:focusSession.modelChipShort`)}),(0,W.jsx)(`span`,{"aria-hidden":`true`,className:`text-content-faint max-[650px]:hidden`,children:`·`}),(0,W.jsx)(`span`,{className:`shrink-0 text-content-muted max-[650px]:hidden`,children:A?$(x,r||i[0]):`—`}),(0,W.jsx)(p,{size:14,className:`shrink-0 text-content-muted max-[650px]:hidden`,"aria-hidden":`true`})]}),children:[(0,W.jsxs)(`div`,{className:`model-effort-model flex flex-col gap-1 p-1.5 pb-2`,children:[(0,W.jsx)(`span`,{className:`px-0.5 text-xs font-medium text-content-muted`,children:x(`chat:focusSession.toolbarModel`)}),(0,W.jsxs)(wt,{defaultValue:e,filter:(e,t,n)=>+!![e,...n||[]].join(` `).toLowerCase().includes(t.trim().toLowerCase()),className:`rounded-sm! border border-stroke-soft bg-transparent p-0`,"aria-label":x(`chat:focusSession.currentChatModel`),children:[t.length>6&&(0,W.jsx)(Tt,{placeholder:x(`chat:focusSession.searchModels`)}),(0,W.jsxs)(Et,{className:`max-h-56`,children:[(0,W.jsx)(Dt,{className:`py-4 text-xs text-content-muted`,children:t.length?x(`chat:focusSession.noMatchingModels`):x(`chat:focusSession.noModelsAvailable`)}),!w&&e&&(0,W.jsx)(Ot,{children:(0,W.jsx)(kt,{value:e,"data-checked":!0,disabled:!0,children:(0,W.jsx)(`span`,{className:`min-w-0 truncate`,children:D})})}),k.map(([t,r])=>(0,W.jsx)(Ot,{heading:t,children:r.map(t=>{let r=L(t.label,T);return(0,W.jsx)(kt,{value:t.key,keywords:[t.label,t.providerName],"data-checked":t.key===e,disabled:l||S,onSelect:()=>{t.key!==e&&n(t.key)},children:(0,W.jsxs)(`span`,{className:`flex min-w-0 flex-col`,title:t.label,children:[(0,W.jsx)(`span`,{className:`wrap-anywhere`,children:r}),r!==t.label&&(0,W.jsx)(`span`,{className:`truncate text-xs text-content-muted`,children:t.label})]})},t.key)})},t))]})]})]}),A&&(0,W.jsx)(je,{className:`border-t border-stroke-soft p-1.5 pt-2`,title:x(`chat:focusSession.thinkingLevelTitle`),levels:i,value:r,labelFor:e=>$(x,e),onCommit:async e=>{C(!0);try{await c(e)}finally{C(!1)}},disabled:N,ariaLabel:x(`chat:focusSession.currentThinkingLevel`),trailing:v?(0,W.jsx)(`span`,{className:`shrink-0 text-xs text-content-faint`,children:x(`chat:focusSession.thinkingModelDefault`)}):y?(0,W.jsx)(`button`,{type:`button`,className:`shrink-0 cursor-pointer rounded-sm text-xs text-content-muted underline-offset-2 hover:text-content hover:underline focus-visible:outline-2 focus-visible:outline-focus`,onClick:y,children:x(`chat:focusSession.thinkingReset`)}):void 0}),d&&(0,W.jsx)(`p`,{className:`px-2 pt-1 pb-2 text-xs leading-4 text-content-muted`,role:`status`,children:x(`chat:focusSession.runtimeSelectionDeferred`)}),(!A||i.length===1)&&(0,W.jsx)(`p`,{className:`border-t border-stroke-soft px-2 pt-2 pb-1.5 text-xs leading-relaxed text-content-muted`,role:`status`,children:A?x(`chat:focusSession.thinkingLevelFixed`,{level:j}):M}),h]})}export{Fe as a,we as c,fe as d,me as f,ne as g,ie as h,Ie as i,Se as l,ae as m,Rt as n,Ae as o,ye as p,$ as r,xe as s,Lt as t,Ee as u};
|
|
1
|
+
import{a as e}from"./rolldown-runtime-B0Z9INg1.js";import{i as t,n,r}from"./vendor-react-DwNgTV1j.js";import{f as i,p as a}from"./i18n-D1oE4DVX.js";import{t as o}from"./use-i18n-CrMP8KP1.js";import{p as s}from"./query-DFQayLF5.js";import{t as c}from"./useQuery-DfOU-27z.js";import{t as l}from"./createLucideIcon-Cd-3GVxJ.js";import{t as u}from"./braces-DQcXLGFF.js";import{t as d}from"./check-2vYc6QaP.js";import{t as f}from"./chevron-right-C3t2Rckj.js";import{t as p}from"./chevrons-up-down-C2sEPdAh.js";import{i as m}from"./focus-session-composer-bits-DWovCteo.js";import{t as h}from"./search-D0mqDaf_.js";import{i as g,t as _}from"./dist-41X0pdUs.js";import{c as v,n as y}from"./dist-BsRXXcSL.js";import{a as b,o as x,r as S,t as C}from"./dist-BHkR6BLP.js";import{i as w,n as T,t as E}from"./popover-5MqQ5QIH.js";import{t as D}from"./slider-De8rWVNs.js";import{t as O}from"./utils-C8uzG5AZ.js";import{n as k,o as A,r as j,t as M}from"./sheet-BTaIEX4w.js";import{n as N,t as P}from"./chat-api-PdHMtAmc.js";import{r as F}from"./format-DMJQzoZ7.js";import{i as I}from"./run-activity-CwfO0cui.js";import"./dialog-CEcIiRdx.js";import{n as ee,t as te}from"./input-group-h8z63MzW.js";import{t as L}from"./model-display-kDwvtxrW.js";var ne=l(`file-text`,[[`path`,{d:`M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z`,key:`1oefj6`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}],[`path`,{d:`M10 9H8`,key:`b1mrlr`}],[`path`,{d:`M16 13H8`,key:`t4e002`}],[`path`,{d:`M16 17H8`,key:`z1uh3a`}]]),re=l(`square-slash`,[[`rect`,{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`,key:`afitv7`}],[`line`,{x1:`9`,x2:`15`,y1:`15`,y2:`9`,key:`1dfufj`}]]),R=e(t(),1);function ie(e){let t=e.match(/^\/btw(?:\s+([\s\S]*))?$/);return t?(t[1]||``).trim():null}function z(e,t,n,r){return n.length?[{invocation:`/${e}`,description:t},...n.map(t=>({invocation:`/${e} ${t.value}`,description:t.label,current:t.current,run:()=>r(t.value)}))]:[]}function ae({t:e,models:t,model:n,onModel:r,thinkingLevels:i,thinkingLevel:a,thinkingLabel:o,onThinking:s,executionModes:c,executionMode:l,executionLabel:u,onExecutionMode:d,runModes:f,runMode:p,runModeLabel:m,onRunMode:h}){return[...z(`model`,e(`chat:commands.builtin.model`),t.map(e=>({value:e.key,label:e.providerName?`${e.label} · ${e.providerName}`:e.label,current:e.key===n})),r),...z(`effort`,e(`chat:commands.builtin.effort`),i.map(e=>({value:e,label:o(e),current:e===a})),s),...z(`approval`,e(`chat:commands.builtin.approval`),c.map(e=>({value:e,label:u(e),current:e===l})),d),...f.length>1?z(`run`,e(`chat:commands.builtin.run`),f.map(e=>({value:e,label:m(e),current:e===p})),h):[]]}function oe(e,t,n){let r=e=>e.toLocaleLowerCase(n),i=r(t),a=i.search(/\s/);if(a<0)return e.filter(e=>!e.invocation.includes(` `)&&r(`${e.invocation} ${e.description}`).includes(i));let o=`/${i.slice(0,a)} `,s=i.slice(a).trim();return e.filter(e=>r(e.invocation).startsWith(o)&&r(`${e.invocation} ${e.description}`).includes(s))}var se=10485760,ce=20971520,le=new Set([`txt`,`md`,`json`,`js`,`jsx`,`ts`,`tsx`,`css`,`html`,`xml`,`yaml`,`yml`,`csv`,`log`,`py`,`java`,`go`,`rs`,`sh`,`ps1`,`toml`,`sql`]),ue=new Set([`png`,`jpg`,`jpeg`,`gif`,`webp`,`bmp`,`svg`]),de=new Set([`pdf`,`docx`,`pptx`,`xlsx`,`odt`,`odp`,`ods`,`rtf`,`epub`]),fe=[`image/*`,`text/*`,`application/json`,...[...ue,...le,...de].map(e=>`.${e}`)].join(`,`);function pe(e){let t=[...e?.files||[]];return t.length?t:[...e?.items||[]].filter(e=>e.kind===`file`).map(e=>e.getAsFile?.()).filter(e=>!!e)}function me(e){return[...e?.types||[]].includes(`Files`)}function he(e,t){return new Promise((n,r)=>{let i=new FileReader;i.onload=()=>n(String(i.result).split(`,`)[1]||``),i.onerror=()=>r(i.error||Error(t(`chat:attachments.couldNotReadFile`))),i.readAsDataURL(e)})}function ge(e){return e.toLowerCase().split(`.`).at(-1)||``}async function _e(e,t){let n=[...e].slice(0,8),r=[];for(let e of n){if(e.size>se)throw Error(t(`chat:attachments.nameExceedsThe10MBLimit`,{name:e.name}));let n=ge(e.name),i={id:`${e.name}-${e.lastModified}-${e.size}`,name:e.name,mimeType:e.type||`application/octet-stream`,size:e.size};if(e.type.startsWith(`image/`)||ue.has(n))r.push({...i,kind:`image`,data:await he(e,t)});else if(e.type.startsWith(`text/`)||e.type===`application/json`||le.has(n))r.push({...i,kind:`text`,text:await e.text()});else if(de.has(n))r.push({...i,kind:`document`,extension:n,data:await he(e,t)});else throw Error(t(`chat:attachments.nameIsNotSupportedChooseAnImageOrTextCodeFile`,{name:e.name}))}return r}function ve(e){return e.split(/[\\/]/).filter(Boolean).at(-1)||e}function ye(e){return[...e].map(e=>String(e||``).trim()).filter(Boolean).slice(0,8).map(e=>({id:`path:${e}`,kind:`path`,name:ve(e),path:e}))}function be(e=[],t,n){let r=(0,R.useCallback)((e,t)=>a(e,i(),t),[]),[o,s]=(0,R.useState)(()=>[...e]),[c,l]=(0,R.useState)(``),[u,d]=(0,R.useState)([]),f=(0,R.useRef)(new Map),p=(0,R.useRef)(0),m=(0,R.useRef)(n);m.current=n,(0,R.useEffect)(()=>{let e=f.current;return d([]),l(``),()=>{for(let t of e.values())t.cancelled=!0;e.clear()}},[n]);let h=(0,R.useRef)([...e]),g=(0,R.useCallback)(e=>{h.current=e,s(e),t?.(e)},[t]),_=(0,R.useCallback)(async e=>{let t=n,i=[...e||[]].slice(0,8).map(e=>{let t=`preparing-${++p.current}`,n={name:e.name,cancelled:!1};return f.current.set(t,n),{id:t,job:n,file:e}}),a=()=>d([...f.current].map(([e,t])=>({id:e,name:t.name})));a(),l(``);let o=!1;for(let{id:e,job:n,file:s}of i)try{let i=await _e([s],r);if(n.cancelled||m.current!==t||!f.current.has(e))continue;let a=[...h.current,...i].slice(0,8);if(a.filter(e=>e.kind!==`path`).reduce((e,t)=>e+(t.size||0),0)>ce)throw Error(r(`chat:attachments.totalAttachmentSizeCannotExceed20MB`));g(a),o=!0}catch(e){!n.cancelled&&m.current===t&&l(e instanceof Error?e.message:String(e))}finally{f.current.delete(e),m.current===t&&a()}return o},[n,g,r]);return{attachments:o,attachmentError:c,preparingAttachments:u,addFiles:_,pasteFiles:(0,R.useCallback)(e=>{let t=pe(e.clipboardData);t.length&&(e.preventDefault(),_(t))},[_]),dropFiles:(0,R.useCallback)(e=>{if(!me(e.dataTransfer))return;e.preventDefault();let t=pe(e.dataTransfer);t.length&&_(t)},[_]),removeAttachment:(0,R.useCallback)(e=>{let t=f.current.get(e);if(t){t.cancelled=!0,f.current.delete(e),d([...f.current].map(([e,t])=>({id:e,name:t.name})));return}g(h.current.filter(t=>t.id!==e))},[g]),clearAttachments:(0,R.useCallback)(()=>{for(let e of f.current.values())e.cancelled=!0;f.current.clear(),d([]),g([])},[g]),addAttachments:(0,R.useCallback)(e=>{if(m.current!==n)return;l(``);let t=[...h.current];for(let n of e)t.some(e=>e.id===n.id)||t.push(n);g(t.slice(0,8))},[n,g]),replaceAttachments:g,setError:(0,R.useCallback)(e=>{l(e instanceof Error?e.message:String(e||``))},[])}}var xe=`new-task`,B=new Map,V=new Map;function Se(e,t){let n=t.match(/^\/[^\s]*(?:\s+([\s\S]*))?$/),r=(n?n[1]||``:t).trim();return`${e}${r?` ${r}`:` `}`}function Ce(e){return{text:e?.text||``,attachments:[...e?.attachments||[]]}}function H(e){return Ce(B.get(e))}function U(e,t){if(!e)return;let n={...H(e),...t};n.attachments=[...n.attachments];let r=H(e);r.text===n.text&&r.attachments.length===n.attachments.length&&r.attachments.every((e,t)=>e===n.attachments[t])||(r.text!==n.text&&V.set(e,(V.get(e)||0)+1),B.delete(e),!(!n.text&&!n.attachments.length)&&B.set(e,n))}function we(e){V.set(e,(V.get(e)||0)+1),B.delete(e)}function Te(e,t){let n=[...e.attachments],r=new Set(n.map(e=>e.id));for(let e of t.attachments){let t=e.id;if(!t||r.has(t)){let n=1;do t=`${e.id||`attachment`}-restored-${n++}`;while(r.has(t))}r.add(t),n.push({...e,id:t})}return{text:e.text&&t.text?`${e.text}\n${t.text}`:e.text||t.text,attachments:n}}function Ee(e){let t=(0,R.useRef)(e);t.current=e;let n=(0,R.useRef)(!0);(0,R.useEffect)(()=>(n.current=!0,()=>{n.current=!1}),[]);let r=(0,R.useRef)(H(e)),[i,a]=(0,R.useState)(r.current.text),o=(0,R.useCallback)(t=>U(e,{attachments:t}),[e]),s=be(r.current.attachments,o,e),c=s.replaceAttachments,l=s.clearAttachments;return(0,R.useEffect)(()=>{let t=H(e);a(t.text),c(t.attachments)},[c,e]),{value:i,updateValue:(0,R.useCallback)(t=>{a(t),U(e,{text:t})},[e]),selection:s,clearDraft:(0,R.useCallback)(()=>{let r=H(e);r.text!==i||r.attachments.length!==s.attachments.length||r.attachments.some((e,t)=>e!==s.attachments[t])||(we(e),!(!n.current||t.current!==e)&&(a(``),l()))},[l,s.attachments,e,i]),restoreDraft:(0,R.useCallback)(r=>{let i=Te(H(e),r);return U(e,i),!n.current||t.current!==e?!1:(a(i.text),c(i.attachments),!0)},[c,e]),captureSubmission:(0,R.useCallback)(()=>{let r=H(e),i=V.get(e)||0,o=!1;return{accept(){if(o)return;o=!0;let s=H(e),l={text:(V.get(e)||0)===i?``:s.text,attachments:s.attachments.filter(e=>!r.attachments.includes(e))};U(e,l),!(!n.current||t.current!==e)&&(a(l.text),c(l.attachments))}}},[c,e])}}var De=e(n(),1);function Oe({anchor:e,menu:t,viewport:n,placement:r=`top`,align:i=`start`,maxHeight:a=1/0}){let o=n.top+8,s=Math.max(o,n.top+n.height-8),c=n.left+8,l=Math.max(c,n.left+n.width-8),u={top:Math.max(0,Math.min(e.top,s)-o-8),bottom:Math.max(0,s-Math.max(e.bottom,o)-8)},d=Math.min(t.height,a),f=r===`top`?`bottom`:`top`,p=d>u[r]&&u[f]>u[r]?f:r,m=Math.min(a,u[p]),h=Math.min(d,m),g=Math.min(t.width,l-c);return{side:p,left:Math.max(c,Math.min(i===`end`?e.right-g:e.left,l-g)),top:Math.max(o,Math.min(p===`top`?e.top-8-h:e.bottom+8,s-h)),width:g,maxHeight:m}}var W=r();function ke({open:e,anchorRef:t,menuRef:n,placement:r=`top`,align:i=`start`,matchAnchorWidth:a=!1,maxHeight:o,id:s,className:c,role:l,ariaLabel:u,onClose:d,children:f}){return(0,R.useEffect)(()=>{if(!e||!d)return;let t=e=>{e.key===`Escape`&&(e.stopPropagation(),d())};return document.addEventListener(`keydown`,t),()=>document.removeEventListener(`keydown`,t)},[e,d]),(0,R.useLayoutEffect)(()=>{if(!e)return;let s=()=>{let e=n.current,s=t.current;if(!e||!s)return;let c=s.getBoundingClientRect(),l=window.visualViewport;e.style.width=a?`${c.width}px`:``;let u=Oe({anchor:c,menu:{width:e.getBoundingClientRect().width,height:e.scrollHeight},viewport:{left:l?.offsetLeft??0,top:l?.offsetTop??0,width:l?.width??window.innerWidth,height:l?.height??window.innerHeight},placement:r,align:i,maxHeight:o});e.dataset.side=u.side,e.style.maxHeight=`${u.maxHeight}px`,e.style.overflowY=`auto`,e.style.width=`${u.width}px`,e.style.top=`${u.top}px`,e.style.bottom=`auto`,e.style.right=`auto`,e.style.left=`${u.left}px`};s();let c=null,l=()=>{c===null&&(c=window.requestAnimationFrame(()=>{c=null,s()}))},u=typeof ResizeObserver>`u`?null:new ResizeObserver(l);return n.current&&u?.observe(n.current),t.current&&u?.observe(t.current),window.addEventListener(`resize`,s),window.addEventListener(`scroll`,s,!0),window.visualViewport?.addEventListener(`resize`,l),window.visualViewport?.addEventListener(`scroll`,l),()=>{u?.disconnect(),c!==null&&window.cancelAnimationFrame(c),window.removeEventListener(`resize`,s),window.removeEventListener(`scroll`,s,!0),window.visualViewport?.removeEventListener(`resize`,l),window.visualViewport?.removeEventListener(`scroll`,l)}},[e,t,n,r,i,a,o]),e?(0,De.createPortal)((0,W.jsx)(`div`,{ref:n,id:s,className:c,style:{position:`fixed`,zIndex:65},role:l,"aria-label":u,children:f}),document.body):null}function Ae({resourceKey:e,loadCommands:t,builtinCommands:n=[],value:r,onChange:i,inputRef:a,placement:s=`top`}){let{t:c,language:l}=o(),f=(0,R.useId)(),p=(0,R.useRef)(null),m=r.match(/^\/([^\n]{0,120})$/),[h,g]=(0,R.useState)(``),[_,v]=(0,R.useState)(null),[y,b]=(0,R.useState)(!1),[x,S]=(0,R.useState)(!1),[C,w]=(0,R.useState)(0),T=m?.[1]||``,E=/\s/.test(T),D=(0,R.useRef)(t);D.current=t;let O=(0,R.useMemo)(()=>oe(n,T,l),[n,l,T]),k=!!(m&&h!==r&&(!E||O.length));(0,R.useEffect)(()=>{g(``),v(null),S(!1)},[e]),(0,R.useEffect)(()=>{if(!k||_)return;let e=!0;return b(!0),S(!1),D.current().then(t=>{e&&v(t.commands||[])}).catch(()=>{e&&(v([]),S(!0))}).finally(()=>e&&b(!1)),()=>{e=!1}},[_,k,e]);let A=(0,R.useMemo)(()=>{let e=O.map(e=>({kind:`builtin`,command:e}));if(E)return e;let t=T.toLocaleLowerCase(l),n=(_||[]).filter(e=>!t||`${e.invocation} ${e.name} ${e.description}`.toLocaleLowerCase(l).includes(t));return[...e,...n.map(e=>({kind:`resource`,command:e}))]},[E,O,_,l,T]);(0,R.useEffect)(()=>{w(0)},[T,_]);let j=()=>{g(r)},M=e=>{if(e.kind===`builtin`){let t=e.command.run?``:`${e.command.invocation} `;i(t),g(``),w(0),e.command.run&&e.command.run(),requestAnimationFrame(()=>{let e=a.current;e&&(e.focus(),e.setSelectionRange(t.length,t.length))});return}let t=Se(e.command.invocation,r);i(t),g(t),requestAnimationFrame(()=>{let e=a.current;e&&(e.focus(),e.setSelectionRange(t.length,t.length),e.style.height=`auto`,e.style.height=`${Math.min(e.scrollHeight,220)}px`)})};(0,R.useEffect)(()=>{if(!k)return;let e=e=>{if(document.activeElement===a.current){if(e.key===`Escape`){e.preventDefault(),e.stopPropagation(),j();return}A.length&&(e.key===`ArrowDown`?(e.preventDefault(),e.stopPropagation(),w(e=>(e+1)%A.length)):e.key===`ArrowUp`?(e.preventDefault(),e.stopPropagation(),w(e=>(e-1+A.length)%A.length)):(e.key===`Tab`||e.key===`Enter`&&!e.shiftKey)&&(e.preventDefault(),e.stopPropagation(),M(A[Math.min(C,A.length-1)])))}};return document.addEventListener(`keydown`,e,!0),()=>document.removeEventListener(`keydown`,e,!0)}),(0,R.useEffect)(()=>{let e=a.current;if(!k||!e)return;let t={role:`combobox`,"aria-autocomplete":`list`,"aria-expanded":`true`,"aria-controls":f,"aria-activedescendant":A.length?`${f}-${Math.min(C,A.length-1)}`:``},n=Object.keys(t).map(t=>[t,e.getAttribute(t)]);for(let[n,r]of Object.entries(t))r?e.setAttribute(n,r):e.removeAttribute(n);return()=>{for(let[t,r]of n)t&&(r===null?e.removeAttribute(t):e.setAttribute(t,r))}},[C,a,f,k,A.length]);let N={user:c(`chat:commands.scope.user`),project:c(`chat:commands.scope.project`),package:c(`chat:commands.scope.package`),custom:c(`chat:commands.scope.custom`)};return(0,W.jsx)(ke,{open:k,anchorRef:a,menuRef:p,placement:s,matchAnchorWidth:!0,maxHeight:330,id:f,role:`listbox`,ariaLabel:c(`chat:commands.open`),className:`permission-mode-menu composer-command-menu overflow-y-auto rounded-md bg-solid p-1 text-content shadow-float`,children:(0,W.jsxs)(`div`,{className:`chat-resource-list composer-command-list flex min-h-0 [flex:1_1_0] flex-col gap-px overflow-y-auto [overscroll-behavior:contain] [scrollbar-gutter:stable] [touch-action:pan-y] [&_>_button]:grid [&_>_button]:w-full [&_>_button]:cursor-pointer [&_>_button]:grid-cols-[28px_minmax(0,1fr)_auto] [&_>_button]:items-center [&_>_button]:gap-2 [&_>_button]:rounded-sm [&_>_button]:px-1.5 [&_>_button]:py-1 [&_>_button]:text-left [&_>_button]:text-content [&_>_button.active]:bg-surface-hover max-[650px]:[&_>_button]:min-h-11 [&_button_>_span:nth-child(2)]:flex [&_button_>_span:nth-child(2)]:min-w-0 [&_button_>_span:nth-child(2)]:flex-col [&_strong]:truncate [&_strong]:font-mono [&_strong]:text-[13px] [&_strong]:font-medium [&_small]:truncate [&_small]:font-sans [&_small]:text-xs [&_small]:font-normal [&_small]:text-content-muted [&_em]:text-xs [&_em]:whitespace-nowrap [&_em]:text-content-muted [&_em]:not-italic [&_>_p]:m-auto [&_>_p]:px-2 [&_>_p]:py-1.5 [&_>_p]:text-xs [&_>_p]:text-content-muted`,children:[A.map((e,t)=>{let{command:n}=e,r=e.kind===`builtin`?e.command.current?d:re:e.command.source===`prompt`?ne:u,i=e.kind===`resource`?e.command:null;return(0,W.jsxs)(`button`,{type:`button`,role:`option`,id:`${f}-${t}`,"aria-selected":t===C,className:t===C?`active`:``,onMouseEnter:()=>w(t),onMouseDown:e=>e.preventDefault(),onClick:()=>M(e),children:[(0,W.jsx)(`span`,{className:`list-icon grid size-7 place-items-center rounded-sm bg-surface-muted text-content-secondary`,children:(0,W.jsx)(r,{size:15})}),(0,W.jsxs)(`span`,{className:`composer-command-copy`,children:[(0,W.jsxs)(`strong`,{children:[n.invocation,i?.argumentHint&&(0,W.jsxs)(`small`,{children:[` `,i.argumentHint]})]}),(0,W.jsx)(`small`,{children:n.description||c(`chat:commands.noDescription`)})]}),(0,W.jsx)(`em`,{children:i?(0,W.jsxs)(W.Fragment,{children:[i.source===`prompt`?c(`chat:commands.prompt`):c(`chat:commands.skill`),` · `,N[i.scope]]}):e.kind===`builtin`&&e.command.current?c(`chat:commands.builtin.current`):c(`chat:commands.builtin.label`)})]},`${e.kind}:${n.invocation}`)}),!A.length&&(0,W.jsx)(`p`,{children:c(y?`chat:commands.loading`:x?`chat:commands.loadError`:`chat:commands.empty`)})]})})}function je({levels:e,value:t,labelFor:n,onCommit:r,disabled:i=!1,ariaLabel:a,title:o,trailing:s,className:c}){let[l,u]=(0,R.useState)(null),[d,f]=(0,R.useState)(!1),p=(0,R.useRef)(!1),m=Math.max(0,e.indexOf(t)),h=l??m,g=n(e[h]||t),_=i||d||e.length<2,v=e.join(`|`);(0,R.useEffect)(()=>{u(null)},[t,v]);let y=async n=>{let i=e[n];if(_||p.current||!i||i===t){u(null);return}p.current=!0,f(!0);try{await r(i)}finally{p.current=!1,f(!1),u(null)}};return(0,W.jsxs)(`div`,{className:O(`min-w-0`,c),children:[(0,W.jsxs)(`div`,{className:`flex items-baseline justify-between gap-2 px-0.5 pb-1`,children:[o&&(0,W.jsx)(`span`,{className:`text-xs font-medium text-content-muted`,children:o}),(0,W.jsxs)(`span`,{className:`ml-auto flex min-w-0 items-baseline gap-2`,children:[(0,W.jsx)(`span`,{className:`truncate text-[13px] leading-5 font-medium text-accent-fg`,"aria-live":`polite`,children:g}),s]})]}),(0,W.jsx)(D,{className:O(`h-7`,`[&_[data-slot=slider-range]]:bg-[linear-gradient(90deg,var(--star-border),var(--star))]`,`[&_[data-slot=slider-thumb]]:size-4 [&_[data-slot=slider-thumb]]:bg-[radial-gradient(circle,var(--star)_0_2px,var(--key-bg)_2.5px)]`),showSteps:!0,min:0,max:Math.max(1,e.length-1),step:1,value:[h],disabled:_,"aria-label":a,valueText:g,onValueChange:([e])=>u(e),onValueCommit:([e])=>void y(e)}),e.length>1&&(0,W.jsxs)(`div`,{className:`flex justify-between px-0.5 pt-0.5 text-xs text-content-faint`,"aria-hidden":`true`,children:[(0,W.jsx)(`span`,{children:n(e[0])}),(0,W.jsx)(`span`,{children:n(e.at(-1)||``)})]})]})}var Me=96,Ne=.6,Pe=`10%`;function Fe({onDismiss:e,className:t}){let n=(0,R.useRef)(null),r=e=>{e.sheet.style.transform=``,e.sheet.style.transition=``},i=e=>{if(e.button!==0)return;let t=e.currentTarget.closest(`[data-slot="sheet-content"]`);t&&(e.currentTarget.setPointerCapture?.(e.pointerId),t.style.transition=`none`,n.current={pointerId:e.pointerId,startY:e.clientY,startAt:performance.now(),sheet:t,offset:0})},a=e=>{let t=n.current;!t||t.pointerId!==e.pointerId||(t.offset=Math.max(0,e.clientY-t.startY),t.sheet.style.transform=`translateY(${t.offset}px)`)},o=t=>{let{sheet:n}=t;n.style.setProperty(`--tw-exit-translate-y`,`calc(${t.offset}px + ${Pe})`);let i=()=>{n.removeEventListener(`animationstart`,a),r(t),n.style.removeProperty(`--tw-exit-translate-y`)},a=e=>{e.target===n&&n.dataset.state!==`closed`&&i()};n.addEventListener(`animationstart`,a),e(),requestAnimationFrame(()=>{n.isConnected&&n.dataset.state!==`closed`&&i()})},s=e=>{let t=n.current;if(!t||t.pointerId!==e.pointerId)return;n.current=null;let i=t.offset/Math.max(1,performance.now()-t.startAt);if(t.offset>=Me||t.offset>24&&i>=Ne){o(t);return}r(t)},c=()=>{let e=n.current;n.current=null,e&&r(e)};return(0,W.jsx)(`div`,{"aria-hidden":`true`,"data-sheet-drag-handle":!0,className:O(`flex h-8 w-full flex-none cursor-grab touch-none items-start justify-center select-none active:cursor-grabbing`,t),onPointerDown:i,onPointerMove:a,onPointerUp:s,onPointerCancel:c,onLostPointerCapture:c,children:(0,W.jsx)(`span`,{className:`mt-2.5 h-1 w-9 rounded-full bg-stroke-strong`})})}function Ie({sheet:e,title:t,trigger:n,children:r,open:i,onOpenChange:a,align:o,side:s,sideOffset:c,className:l,sheetClassName:u}){let[d,f]=(0,R.useState)(!1),p=i??d,m=e=>{i===void 0&&f(e),a?.(e)};return e?(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(_,{"aria-haspopup":`dialog`,"aria-expanded":p,onClick:()=>m(!0),children:n}),(0,W.jsx)(M,{open:p,onOpenChange:m,children:(0,W.jsxs)(k,{side:`bottom`,showCloseButton:!1,"data-popover-sheet":!0,className:O(`max-h-[85dvh] gap-1 overflow-y-auto rounded-t-(--r-sheet) px-3 pt-1 pb-[calc(12px+var(--pisper-safe-area-bottom))]`,u),children:[(0,W.jsx)(Fe,{onDismiss:()=>m(!1)}),(0,W.jsx)(A,{className:`px-2 pt-1 pb-1 text-base font-semibold`,children:t}),(0,W.jsx)(j,{className:`sr-only`,children:t}),r]})})]}):(0,W.jsxs)(E,{open:p,onOpenChange:m,children:[(0,W.jsx)(w,{asChild:!0,children:n}),(0,W.jsx)(T,{align:o,side:s,sideOffset:c,className:l,children:r})]})}var Le=1,Re=.9,ze=.8,Be=.17,Ve=.1,He=.999,Ue=.9999,We=.99,Ge=/[\\\/_+.#"@\[\(\{&]/,Ke=/[\\\/_+.#"@\[\(\{&]/g,qe=/[\s-]/,Je=/[\s-]/g;function Ye(e,t,n,r,i,a,o){if(a===t.length)return i===e.length?Le:We;var s=`${i},${a}`;if(o[s]!==void 0)return o[s];for(var c=r.charAt(a),l=n.indexOf(c,i),u=0,d,f,p,m;l>=0;)d=Ye(e,t,n,r,l+1,a+1,o),d>u&&(l===i?d*=Le:Ge.test(e.charAt(l-1))?(d*=ze,p=e.slice(i,l-1).match(Ke),p&&i>0&&(d*=He**+p.length)):qe.test(e.charAt(l-1))?(d*=Re,m=e.slice(i,l-1).match(Je),m&&i>0&&(d*=He**+m.length)):(d*=Be,i>0&&(d*=He**+(l-i))),e.charAt(l)!==t.charAt(a)&&(d*=Ue)),(d<Ve&&n.charAt(l-1)===r.charAt(a+1)||r.charAt(a+1)===r.charAt(a)&&n.charAt(l-1)!==r.charAt(a))&&(f=Ye(e,t,n,r,l+1,a+2,o),f*Ve>d&&(d=f*Ve)),d>u&&(u=d),l=n.indexOf(c,l+1);return o[s]=u,u}function Xe(e){return e.toLowerCase().replace(Je,` `)}function Ze(e,t,n){return e=n&&n.length>0?`${e+` `+n.join(` `)}`:e,Ye(e,t,Xe(e),Xe(t),0,0,{})}var G=`[cmdk-group=""]`,Qe=`[cmdk-group-items=""]`,$e=`[cmdk-group-heading=""]`,et=`[cmdk-item=""]`,tt=`${et}:not([aria-disabled="true"])`,nt=`cmdk-item-select`,K=`data-value`,rt=(e,t,n)=>Ze(e,t,n),it=R.createContext(void 0),q=()=>R.useContext(it),at=R.createContext(void 0),ot=()=>R.useContext(at),st=R.createContext(void 0),ct=R.forwardRef((e,t)=>{let n=X(()=>({search:``,value:e.value??e.defaultValue??``,selectedItemId:void 0,filtered:{count:0,items:new Map,groups:new Set}})),r=X(()=>new Set),i=X(()=>new Map),a=X(()=>new Map),o=X(()=>new Set),s=yt(e),{label:c,children:l,value:u,onValueChange:d,filter:f,shouldFilter:p,loop:m,disablePointerSelection:h=!1,vimBindings:g=!0,..._}=e,b=y(),x=y(),S=y(),C=R.useRef(null),w=xt();Y(()=>{if(u!==void 0){let e=u.trim();n.current.value=e,T.emit()}},[u]),Y(()=>{w(6,j)},[]);let T=R.useMemo(()=>({subscribe:e=>(o.current.add(e),()=>o.current.delete(e)),snapshot:()=>n.current,setState:(e,t,r)=>{var i,a,o;if(!Object.is(n.current[e],t)){if(n.current[e]=t,e===`search`)A(),O(),w(1,k);else if(e===`value`){if(document.activeElement.hasAttribute(`cmdk-input`)||document.activeElement.hasAttribute(`cmdk-root`)){let e=document.getElementById(S);e?e.focus():(i=document.getElementById(b))==null||i.focus()}if(w(7,()=>{n.current.selectedItemId=M()?.id,T.emit()}),r||w(5,j),s.current?.value!==void 0){let e=t??``;(o=(a=s.current).onValueChange)==null||o.call(a,e);return}}T.emit()}},emit:()=>{o.current.forEach(e=>e())}}),[]),E=R.useMemo(()=>({value:(e,t,r)=>{t!==a.current.get(e)?.value&&(a.current.set(e,{value:t,keywords:r}),n.current.filtered.items.set(e,D(t,r)),w(2,()=>{O(),T.emit()}))},item:(e,t)=>(r.current.add(e),t&&(i.current.has(t)?i.current.get(t).add(e):i.current.set(t,new Set([e]))),w(3,()=>{A(),O(),n.current.value||k(),T.emit()}),()=>{a.current.delete(e),r.current.delete(e),n.current.filtered.items.delete(e);let t=M();w(4,()=>{A(),t?.getAttribute(`id`)===e&&k(),T.emit()})}),group:e=>(i.current.has(e)||i.current.set(e,new Set),()=>{a.current.delete(e),i.current.delete(e)}),filter:()=>s.current.shouldFilter,label:c||e[`aria-label`],getDisablePointerSelection:()=>s.current.disablePointerSelection,listId:b,inputId:S,labelId:x,listInnerRef:C}),[]);function D(e,t){let r=s.current?.filter??rt;return e?r(e,n.current.search,t):0}function O(){if(!n.current.search||s.current.shouldFilter===!1)return;let e=n.current.filtered.items,t=[];n.current.filtered.groups.forEach(n=>{let r=i.current.get(n),a=0;r.forEach(t=>{let n=e.get(t);a=Math.max(n,a)}),t.push([n,a])});let r=C.current;N().sort((t,n)=>{let r=t.getAttribute(`id`),i=n.getAttribute(`id`);return(e.get(i)??0)-(e.get(r)??0)}).forEach(e=>{let t=e.closest(Qe);t?t.appendChild(e.parentElement===t?e:e.closest(`${Qe} > *`)):r.appendChild(e.parentElement===r?e:e.closest(`${Qe} > *`))}),t.sort((e,t)=>t[1]-e[1]).forEach(e=>{let t=C.current?.querySelector(`${G}[${K}="${encodeURIComponent(e[0])}"]`);t?.parentElement.appendChild(t)})}function k(){let e=N().find(e=>e.getAttribute(`aria-disabled`)!==`true`)?.getAttribute(K);T.setState(`value`,e||void 0)}function A(){if(!n.current.search||s.current.shouldFilter===!1){n.current.filtered.count=r.current.size;return}n.current.filtered.groups=new Set;let e=0;for(let t of r.current){let r=D(a.current.get(t)?.value??``,a.current.get(t)?.keywords??[]);n.current.filtered.items.set(t,r),r>0&&e++}for(let[e,t]of i.current)for(let r of t)if(n.current.filtered.items.get(r)>0){n.current.filtered.groups.add(e);break}n.current.filtered.count=e}function j(){var e;let t=M();t&&(t.parentElement?.firstChild===t&&((e=t.closest(G)?.querySelector($e))==null||e.scrollIntoView({block:`nearest`})),t.scrollIntoView({block:`nearest`}))}function M(){return C.current?.querySelector(`${et}[aria-selected="true"]`)}function N(){return Array.from(C.current?.querySelectorAll(tt)||[])}function P(e){let t=N()[e];t&&T.setState(`value`,t.getAttribute(K))}function F(e){var t;let n=M(),r=N(),i=r.findIndex(e=>e===n),a=r[i+e];(t=s.current)!=null&&t.loop&&(a=i+e<0?r[r.length-1]:i+e===r.length?r[0]:r[i+e]),a&&T.setState(`value`,a.getAttribute(K))}function I(e){let t=M()?.closest(G),n;for(;t&&!n;)t=e>0?_t(t,G):vt(t,G),n=t?.querySelector(tt);n?T.setState(`value`,n.getAttribute(K)):F(e)}let ee=()=>P(N().length-1),te=e=>{e.preventDefault(),e.metaKey?ee():e.altKey?I(1):F(1)},L=e=>{e.preventDefault(),e.metaKey?P(0):e.altKey?I(-1):F(-1)};return R.createElement(v.div,{ref:t,tabIndex:-1,..._,"cmdk-root":``,onKeyDown:e=>{var t;(t=_.onKeyDown)==null||t.call(_,e);let n=e.nativeEvent.isComposing||e.keyCode===229;if(!(e.defaultPrevented||n))switch(e.key){case`n`:case`j`:g&&e.ctrlKey&&te(e);break;case`ArrowDown`:te(e);break;case`p`:case`k`:g&&e.ctrlKey&&L(e);break;case`ArrowUp`:L(e);break;case`Home`:e.preventDefault(),P(0);break;case`End`:e.preventDefault(),ee();break;case`Enter`:{e.preventDefault();let t=M();if(t){let e=new Event(nt);t.dispatchEvent(e)}}}}},R.createElement(`label`,{"cmdk-label":``,htmlFor:E.inputId,id:E.labelId,style:Ct},c),Q(e,e=>R.createElement(at.Provider,{value:T},R.createElement(it.Provider,{value:E},e))))}),lt=R.forwardRef((e,t)=>{let n=y(),r=R.useRef(null),i=R.useContext(st),a=q(),o=yt(e),s=o.current?.forceMount??i?.forceMount;Y(()=>{if(!s)return a.item(n,i?.id)},[s]);let c=bt(n,r,[e.value,e.children,r],e.keywords),l=ot(),u=Z(e=>e.value&&e.value===c.current),d=Z(e=>s||a.filter()===!1?!0:!e.search||e.filtered.items.get(n)>0);R.useEffect(()=>{let t=r.current;if(!(!t||e.disabled))return t.addEventListener(nt,f),()=>t.removeEventListener(nt,f)},[d,e.onSelect,e.disabled]);function f(){var e,t;p(),(t=(e=o.current).onSelect)==null||t.call(e,c.current)}function p(){l.setState(`value`,c.current,!0)}if(!d)return null;let{disabled:m,value:h,onSelect:_,forceMount:b,keywords:x,...S}=e;return R.createElement(v.div,{ref:g(r,t),...S,id:n,"cmdk-item":``,role:`option`,"aria-disabled":!!m,"aria-selected":!!u,"data-disabled":!!m,"data-selected":!!u,onPointerMove:m||a.getDisablePointerSelection()?void 0:p,onClick:m?void 0:f},e.children)}),ut=R.forwardRef((e,t)=>{let{heading:n,children:r,forceMount:i,...a}=e,o=y(),s=R.useRef(null),c=R.useRef(null),l=y(),u=q(),d=Z(e=>i||u.filter()===!1?!0:!e.search||e.filtered.groups.has(o));Y(()=>u.group(o),[]),bt(o,s,[e.value,e.heading,c]);let f=R.useMemo(()=>({id:o,forceMount:i}),[i]);return R.createElement(v.div,{ref:g(s,t),...a,"cmdk-group":``,role:`presentation`,hidden:!d||void 0},n&&R.createElement(`div`,{ref:c,"cmdk-group-heading":``,"aria-hidden":!0,id:l},n),Q(e,e=>R.createElement(`div`,{"cmdk-group-items":``,role:`group`,"aria-labelledby":n?l:void 0},R.createElement(st.Provider,{value:f},e))))}),dt=R.forwardRef((e,t)=>{let{alwaysRender:n,...r}=e,i=R.useRef(null),a=Z(e=>!e.search);return!n&&!a?null:R.createElement(v.div,{ref:g(i,t),...r,"cmdk-separator":``,role:`separator`})}),ft=R.forwardRef((e,t)=>{let{onValueChange:n,...r}=e,i=e.value!=null,a=ot(),o=Z(e=>e.search),s=Z(e=>e.selectedItemId),c=q();return R.useEffect(()=>{e.value!=null&&a.setState(`search`,e.value)},[e.value]),R.createElement(v.input,{ref:t,...r,"cmdk-input":``,autoComplete:`off`,autoCorrect:`off`,spellCheck:!1,"aria-autocomplete":`list`,role:`combobox`,"aria-expanded":!0,"aria-controls":c.listId,"aria-labelledby":c.labelId,"aria-activedescendant":s,id:c.inputId,type:`text`,value:i?e.value:o,onChange:e=>{i||a.setState(`search`,e.target.value),n?.(e.target.value)}})}),pt=R.forwardRef((e,t)=>{let{children:n,label:r=`Suggestions`,...i}=e,a=R.useRef(null),o=R.useRef(null),s=Z(e=>e.selectedItemId),c=q();return R.useEffect(()=>{if(o.current&&a.current){let e=o.current,t=a.current,n,r=new ResizeObserver(()=>{n=requestAnimationFrame(()=>{let n=e.offsetHeight;t.style.setProperty(`--cmdk-list-height`,n.toFixed(1)+`px`)})});return r.observe(e),()=>{cancelAnimationFrame(n),r.unobserve(e)}}},[]),R.createElement(v.div,{ref:g(a,t),...i,"cmdk-list":``,role:`listbox`,tabIndex:-1,"aria-activedescendant":s,"aria-label":r,id:c.listId},Q(e,e=>R.createElement(`div`,{ref:g(o,c.listInnerRef),"cmdk-list-sizer":``},e)))}),mt=R.forwardRef((e,t)=>{let{open:n,onOpenChange:r,overlayClassName:i,contentClassName:a,container:o,...s}=e;return R.createElement(C,{open:n,onOpenChange:r},R.createElement(x,{container:o},R.createElement(b,{"cmdk-overlay":``,className:i}),R.createElement(S,{"aria-label":e.label,"cmdk-dialog":``,className:a},R.createElement(ct,{ref:t,...s}))))}),ht=R.forwardRef((e,t)=>Z(e=>e.filtered.count===0)?R.createElement(v.div,{ref:t,...e,"cmdk-empty":``,role:`presentation`}):null),gt=R.forwardRef((e,t)=>{let{progress:n,children:r,label:i=`Loading...`,...a}=e;return R.createElement(v.div,{ref:t,...a,"cmdk-loading":``,role:`progressbar`,"aria-valuenow":n,"aria-valuemin":0,"aria-valuemax":100,"aria-label":i},Q(e,e=>R.createElement(`div`,{"aria-hidden":!0},e)))}),J=Object.assign(ct,{List:pt,Item:lt,Input:ft,Group:ut,Separator:dt,Dialog:mt,Empty:ht,Loading:gt});function _t(e,t){let n=e.nextElementSibling;for(;n;){if(n.matches(t))return n;n=n.nextElementSibling}}function vt(e,t){let n=e.previousElementSibling;for(;n;){if(n.matches(t))return n;n=n.previousElementSibling}}function yt(e){let t=R.useRef(e);return Y(()=>{t.current=e}),t}var Y=typeof window>`u`?R.useEffect:R.useLayoutEffect;function X(e){let t=R.useRef();return t.current===void 0&&(t.current=e()),t}function Z(e){let t=ot(),n=()=>e(t.snapshot());return R.useSyncExternalStore(t.subscribe,n,n)}function bt(e,t,n,r=[]){let i=R.useRef(),a=q();return Y(()=>{var o;let s=(()=>{for(let e of n){if(typeof e==`string`)return e.trim();if(typeof e==`object`&&`current`in e)return e.current?e.current.textContent?.trim():i.current}})(),c=r.map(e=>e.trim());a.value(e,s,c),(o=t.current)==null||o.setAttribute(K,s),i.current=s}),i}var xt=()=>{let[e,t]=R.useState(),n=X(()=>new Map);return Y(()=>{n.current.forEach(e=>e()),n.current=new Map},[e]),(e,r)=>{n.current.set(e,r),t({})}};function St(e){let t=e.type;return typeof t==`function`?t(e.props):`render`in t?t.render(e.props):e}function Q({asChild:e,children:t},n){return e&&R.isValidElement(t)?R.cloneElement(St(t),{ref:t.ref},n(t.props.children)):n(t)}var Ct={position:`absolute`,width:`1px`,height:`1px`,padding:`0`,margin:`-1px`,overflow:`hidden`,clip:`rect(0, 0, 0, 0)`,whiteSpace:`nowrap`,borderWidth:`0`};function wt({className:e,...t}){return(0,W.jsx)(J,{"data-slot":`command`,className:O(`flex size-full flex-col overflow-hidden rounded-md! bg-popover p-1 text-popover-foreground`,e),...t})}function Tt({className:e,...t}){return(0,W.jsx)(`div`,{"data-slot":`command-input-wrapper`,className:`p-1 pb-0`,children:(0,W.jsxs)(te,{className:`h-8! rounded-sm! border-stroke bg-surface-subtle shadow-none! *:data-[slot=input-group-addon]:pl-2!`,children:[(0,W.jsx)(J.Input,{"data-slot":`command-input`,className:O(`w-full text-sm outline-hidden disabled:cursor-not-allowed disabled:opacity-50`,e),...t}),(0,W.jsx)(ee,{children:(0,W.jsx)(h,{className:`size-4 shrink-0 opacity-50`})})]})})}function Et({className:e,...t}){return(0,W.jsx)(J.List,{"data-slot":`command-list`,className:O(`no-scrollbar max-h-72 scroll-py-1 overflow-x-hidden overflow-y-auto outline-none`,e),...t})}function Dt({className:e,...t}){return(0,W.jsx)(J.Empty,{"data-slot":`command-empty`,className:O(`py-6 text-center text-sm`,e),...t})}function Ot({className:e,...t}){return(0,W.jsx)(J.Group,{"data-slot":`command-group`,className:O(`overflow-hidden p-1 text-foreground **:[[cmdk-group-heading]]:px-2 **:[[cmdk-group-heading]]:py-1.5 **:[[cmdk-group-heading]]:text-xs **:[[cmdk-group-heading]]:font-medium **:[[cmdk-group-heading]]:text-muted-foreground`,e),...t})}function kt({className:e,children:t,...n}){return(0,W.jsxs)(J.Item,{"data-slot":`command-item`,className:O(`group/command-item relative flex min-h-7.5 max-[650px]:min-h-11 pointer-coarse:min-h-11 cursor-default items-center gap-2 rounded-sm px-2 py-1 text-sm outline-hidden select-none data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50 data-selected:bg-accent data-selected:text-foreground [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 data-selected:*:[svg]:text-foreground`,e),...n,children:[t,(0,W.jsx)(d,{className:`ml-auto opacity-0 group-has-data-[slot=command-shortcut]/command-item:hidden group-data-[checked=true]/command-item:opacity-100`})]})}var At={system:`var(--viz-1)`,project:`var(--viz-2)`,skills:`var(--viz-3)`,tools:`var(--viz-4)`,mcp:`var(--viz-5)`,messages:`var(--viz-6)`,toolResults:`var(--viz-7)`},jt=`grid grid-cols-[8px_minmax(0,1fr)_auto_2.25rem] items-center gap-x-2 rounded-[4px] px-1 py-0.5 text-xs`;function Mt({percent:e,compactAtPercent:t}){let{t:n}=o();return(0,W.jsxs)(`div`,{"aria-hidden":`true`,className:`relative h-1 rounded-full bg-surface-active`,children:[e>0&&(0,W.jsx)(`span`,{className:`absolute inset-y-0 left-0 min-w-1 rounded-full bg-content-secondary`,style:{width:`${Math.min(100,e)}%`}}),t!==null&&(0,W.jsx)(`span`,{"data-context-compact-line":!0,title:n(`board:composer.context.compactAt`,{percent:t}),className:`absolute -top-[3px] -bottom-[3px] w-[2px] -translate-x-1/2 rounded-full bg-content`,style:{left:`${t}%`}})]})}function Nt({breakdown:e}){let{t}=o(),[n,r]=(0,R.useState)(null),{contextWindow:i,usedTokens:a,freeTokens:s,compactAtPercent:c}=e,l=e.categories.filter(e=>e.tokens>0),u=e.categories.filter(e=>e.tokens>0||e.id===`mcp`&&e.deferred>0),d={system:t(`board:composer.context.system`),project:t(`board:composer.context.project`),skills:t(`board:composer.context.skills`),tools:t(`board:composer.context.tools`),mcp:t(`board:composer.context.mcp`),messages:t(`board:composer.context.messages`),toolResults:t(`board:composer.context.toolResults`)},f=e=>N(e,a),p=e=>({onMouseEnter:()=>r(e),onMouseLeave:()=>r(null)}),m=[t(`board:composer.context.free`,{tokens:F(s)}),c===null?``:t(`board:composer.context.compactAt`,{percent:c})].filter(Boolean).join(` · `);return(0,W.jsxs)(`div`,{className:`grid gap-2`,"data-context-breakdown":!0,children:[(0,W.jsxs)(`div`,{className:`grid gap-1.5`,children:[(0,W.jsx)(Mt,{percent:i?a/i*100:0,compactAtPercent:c}),(0,W.jsx)(`span`,{className:`text-[11px] leading-4 text-content-muted`,"data-context-capacity":!0,children:m})]}),l.length>0&&(0,W.jsxs)(`div`,{className:`grid gap-1.5`,children:[(0,W.jsx)(`span`,{className:`text-[11px] leading-4 text-content-muted`,children:t(`board:composer.context.composition`)}),(0,W.jsx)(`div`,{role:`img`,"aria-label":l.map(e=>`${d[e.id]} ${f(e.tokens)}`).join(`, `),className:`flex h-2.5 w-full gap-[2px]`,children:l.map(e=>(0,W.jsx)(`span`,{"data-context-segment":e.id,title:`${d[e.id]} · ${F(e.tokens)} · ${f(e.tokens)}`,className:O(`min-w-[3px] rounded-[2px] transition-opacity duration-(--d-fast)`,n&&n!==e.id&&`opacity-30`),style:{flexGrow:e.tokens,flexBasis:0,backgroundColor:At[e.id]},...p(e.id)},e.id))})]}),(0,W.jsx)(`ul`,{className:`m-0 grid list-none gap-0 p-0`,children:u.map(e=>(0,W.jsxs)(`li`,{className:`contents`,children:[(0,W.jsxs)(`div`,{"data-context-row":e.id,className:O(jt,n===e.id&&`bg-surface-hover`),...p(e.id),children:[(0,W.jsx)(`span`,{"aria-hidden":`true`,className:`size-2 rounded-[2px]`,style:{backgroundColor:At[e.id]}}),(0,W.jsxs)(`span`,{className:`min-w-0 truncate text-content-secondary`,children:[d[e.id],e.id===`tools`&&e.count?(0,W.jsxs)(`span`,{className:`text-content-muted`,children:[` · `,e.count]}):null]}),(0,W.jsx)(`span`,{className:`font-medium text-content tabular-nums`,children:F(e.tokens)}),(0,W.jsx)(`span`,{className:`text-right text-content-muted tabular-nums`,children:f(e.tokens)})]}),e.servers.map(e=>{let n=[e.name,e.tools>0?t(`board:composer.context.toolCount`,{count:e.tools}):``,e.calls>0?t(`board:composer.context.callCount`,{count:e.calls}):``].filter(Boolean).join(` · `);return(0,W.jsxs)(`div`,{"data-context-server":e.name,className:O(jt,`py-0 text-content-muted`),children:[(0,W.jsx)(`span`,{"aria-hidden":`true`}),(0,W.jsx)(`span`,{className:`min-w-0 truncate`,title:n,children:n}),(0,W.jsx)(`span`,{className:`tabular-nums`,children:F(e.tokens)}),(0,W.jsx)(`span`,{})]},e.name)}),e.deferred>0&&(0,W.jsxs)(`div`,{"data-context-deferred":!0,className:O(jt,`py-0 text-content-muted`),children:[(0,W.jsx)(`span`,{"aria-hidden":`true`}),(0,W.jsx)(`span`,{className:`col-span-3 min-w-0`,children:t(`board:composer.context.deferred`,{count:e.deferred})})]})]},e.id))}),(0,W.jsx)(`p`,{className:`m-0 text-[11px] leading-4 text-content-muted`,"data-context-hint":!0,children:e.prefixKnown?e.totalKnown?t(`board:composer.context.estimated`):t(`board:composer.context.allEstimated`):t(`board:composer.context.prefixUnknown`)})]})}function Pt(e,t){let n=t.find(t=>t.key===e);return n?`${n.providerName} · ${n.label}`:e.split(`/`).at(-1)||e}function Ft({label:e,value:t,wide:n=!1,usageKey:r,title:i}){return(0,W.jsxs)(`div`,{className:O(`grid min-w-0 gap-0.5 rounded-[var(--r-md)] bg-surface-subtle px-2 py-1.5 dark:bg-surface-active`,n&&`col-span-2`),"data-usage-row":r,title:i,children:[(0,W.jsx)(`span`,{className:`truncate text-[11px] leading-4 text-content-muted`,children:e}),(0,W.jsx)(`strong`,{className:`truncate text-[13px] leading-4 font-medium text-content`,children:t})]})}function It({model:e,availableModels:t,sessionUsage:n}){let{t:r,language:i}=o(),a=n?.timing&&typeof n.timing==`object`?n.timing:null,s=Math.max(0,Number(a?.firstTokenSamples)||0),c=Math.max(0,Number(a?.requests)||0),l=s>0?Number(a?.firstTokenTotalMs)/s:null,u=c>0?Number(a?.durationTotalMs)/c:null,d=!!n?.cacheReported,f=[[r(`chat:focusSession.statCurrentModel`),e?Pt(e,t||[]):`—`],[r(`chat:focusSession.statInputTokens`),F(n?.input)],[r(`chat:focusSession.statOutputTokens`),F(n?.output)],[r(`chat:focusSession.statCacheReadTokens`),d?F(n?.cacheRead):`—`],[r(`chat:focusSession.statCacheWriteTokens`),d?F(n?.cacheWrite):`—`],[r(`chat:focusSession.statReasoningTokens`),F(n?.reasoning)],[r(`chat:focusSession.statRequests`),String(Math.max(0,Number(n?.requests)||0))],[r(`chat:focusSession.statAvgFirstToken`),l==null?`—`:I(l,i)],[r(`chat:focusSession.statAvgDuration`),u==null?`—`:I(u,i)]];return(0,W.jsxs)(`div`,{className:`session-stats-panel grid grid-cols-2 gap-1`,"aria-label":r(`chat:focusSession.sessionStats`),children:[f.map(([e,t],n)=>(0,W.jsx)(Ft,{label:e,value:t,wide:n===0},e)),(0,W.jsx)(`small`,{className:`col-span-2 text-[11px] leading-4 text-content-muted`,children:r(`chat:focusSession.sessionStatsHint`)})]})}function Lt({sessionId:e,usage:t,sessionUsage:n,model:r,availableModels:i,onThresholdChange:a}){let{t:l}=o(),u=Number(t?.contextWindow)||0,d=t?.compactAtPercent==null?80:Number(t.compactAtPercent),p=Number.isFinite(d)?Math.round(d):80,[m,h]=(0,R.useState)(p),[g,_]=(0,R.useState)(!1),[v,y]=(0,R.useState)(``),b=(0,R.useRef)(p),x=(0,R.useRef)(void 0);(0,R.useEffect)(()=>{window.clearTimeout(x.current),h(p),b.current=p},[p]),(0,R.useEffect)(()=>()=>window.clearTimeout(x.current),[]);let S=c({queryKey:[`context-breakdown`,e,t?.tokens??null,u],queryFn:({signal:t})=>P.getContextBreakdown(String(e),t),enabled:!!e&&u>0,retry:!1,staleTime:5e3,placeholderData:s}).data,C=t?.percent!=null&&Number.isFinite(Number(t.percent))?Math.max(0,Number(t?.percent)):null,w=Math.max(0,Number(n?.processedTokens)||0),T=Number(n?.cacheHitRate),E=n?.cacheHitRate!=null&&Number.isFinite(T),O=t?.tokens==null?S?`≈${F(S.usedTokens)}`:`—`:F(t.tokens),k=u?`${O} / ${F(u)}${C==null?``:` · ${Math.round(C)}%`}`:``,A=t?.autoCompactEnabled&&t.compactionCapacityPercent!=null?l(`chat:focusSession.contextUsageToCompactionTokensPercent`,{percent:Math.round(Number(t.compactionCapacityPercent)),tokens:F(t.remainingBeforeCompaction)}):``,j=async e=>{let t=Math.min(95,Math.max(10,Math.round(e)));if(h(t),!(!a||t===b.current)){_(!0),y(``);try{await a(t),b.current=t}catch(e){y(e instanceof Error?e.message:String(e))}finally{_(!1)}}},M=e=>{window.clearTimeout(x.current),h(e),x.current=window.setTimeout(()=>void j(e),250)},N=e=>{window.clearTimeout(x.current),j(e)};return(0,W.jsxs)(`div`,{className:`context-usage-section grid gap-1.5 border-t border-stroke-soft px-2 pt-2 pb-1.5`,"data-context-usage":!0,children:[k&&(0,W.jsxs)(`div`,{className:`grid gap-1.5`,children:[((e,t,n,r)=>(0,W.jsxs)(`div`,{className:`flex items-baseline justify-between gap-3 text-xs`,"data-usage-row":n,title:r,children:[(0,W.jsx)(`span`,{className:`shrink-0 text-content-muted`,children:e}),(0,W.jsx)(`strong`,{className:`min-w-0 truncate text-right font-medium text-content tabular-nums`,children:t})]}))(l(`board:composer.contextUsage`),k,`context`),S?(0,W.jsx)(Nt,{breakdown:S}):(0,W.jsx)(Mt,{percent:C??0,compactAtPercent:t?.autoCompactEnabled?d:null})]}),(0,W.jsxs)(`div`,{className:`grid grid-cols-2 gap-1`,children:[(0,W.jsx)(Ft,{label:l(`board:composer.sessionTokens`),value:w>0?l(`board:composer.tokens`,{tokens:F(w)}):`—`,usageKey:`tokens`}),(0,W.jsx)(Ft,{label:l(`board:composer.cacheHitLabel`),value:E?`${Math.round(Math.max(0,T))}%`:`—`,usageKey:`cache`,title:E?void 0:l(`chat:focusSession.cacheHitRateUnavailable`)})]}),u>0&&(0,W.jsxs)(`details`,{className:`group/usage min-w-0 text-xs`,onToggle:e=>{let t=e.currentTarget;t.open&&requestAnimationFrame(()=>t.scrollIntoView({block:`nearest`}))},children:[(0,W.jsxs)(`summary`,{className:`flex min-h-7 cursor-pointer list-none items-center gap-1 rounded-sm text-content-secondary hover:text-content focus-visible:outline-2 focus-visible:outline-focus max-[650px]:min-h-11 [&::-webkit-details-marker]:hidden`,children:[(0,W.jsx)(f,{size:13,"aria-hidden":`true`,className:`transition-transform duration-(--d-fast) group-open/usage:rotate-90`}),l(`chat:focusSession.sessionStats`)]}),(0,W.jsxs)(`div`,{className:`grid gap-2 pt-1.5`,children:[(0,W.jsx)(It,{model:r,availableModels:i,sessionUsage:n}),A&&(0,W.jsx)(`small`,{className:`text-content-muted`,children:A}),(0,W.jsxs)(`div`,{className:`flex items-center justify-between font-medium text-content`,children:[(0,W.jsx)(`span`,{children:l(`chat:focusSession.autoCompactionThreshold`)}),(0,W.jsxs)(`output`,{className:`tabular-nums`,children:[m,`%`]})]}),(0,W.jsx)(D,{min:10,max:95,step:1,value:[m],className:`h-5 w-full`,"aria-label":l(`chat:focusSession.autoCompactionThreshold`),valueText:`${m}%`,disabled:g,onValueChange:([e])=>M(e),onValueCommit:([e])=>N(e)}),(0,W.jsx)(`small`,{className:v?`text-danger`:`text-content-muted`,children:v||(g?l(`chat:focusSession.savingCompactionThreshold`):`\xA0`)})]})]})]})}function $(e,t){return{off:e(`chat:focusSession.thinkingLabel.off`),minimal:e(`chat:focusSession.thinkingLabel.minimal`),low:e(`chat:focusSession.thinkingLabel.low`),medium:e(`chat:focusSession.thinkingLabel.medium`),high:e(`chat:focusSession.thinkingLabel.high`),xhigh:e(`chat:focusSession.thinkingLabel.xhigh`),max:e(`chat:focusSession.thinkingLabel.max`)}[t]||t}function Rt({model:e,models:t,onModelChange:n,thinkingLevel:r,levels:i,status:a,message:s,onThinkingChange:c,modelDisabled:l,thinkingDisabled:u,deferred:d=!1,pendingModel:f=!1,usage:h,sheet:g=!1,side:_=`top`,thinkingIsDefault:v=!1,onThinkingReset:y,triggerClassName:b}){let{t:x}=o(),[S,C]=(0,R.useState)(!1),w=t.find(t=>t.key===e),T=t.map(e=>e.label),E=w?.label||e.split(`/`).at(-1)||``,D=E?L(E,T):x(`chat:focusSession.toolbarModel`),k=[...t.reduce((e,t)=>{let n=e.get(t.providerName)||[];return n.push(t),e.set(t.providerName,n)},new Map)],A=a!==`unsupported`&&i.length>0,j=A?$(x,r||i[0]):`—`,M=f?x(`chat:focusSession.thinkingAfterModelSwitch`):A?j:s||x(a===`unsupported`?`chat:focusSession.thinkingLevelUnsupported`:`chat:focusSession.loadingThinkingLevels`),N=u||S||!A||i.length<2,P=`${x(`chat:focusSession.modelAndThinking`)} · ${Pt(e,t)} · ${M}`;return(0,W.jsxs)(Ie,{sheet:g,title:x(`chat:focusSession.modelAndThinking`),align:`end`,side:_,sideOffset:8,className:`model-effort-popover w-[272px] max-w-[calc(100vw_-_24px)] gap-0 p-1`,trigger:(0,W.jsxs)(`button`,{type:`button`,className:O(`model-effort-pill inline-flex h-[30px] min-w-0 max-w-[260px] cursor-pointer items-center gap-1.5 rounded-sm border border-transparent pr-1.5 pl-2.5 text-[13px] text-content transition-colors hover:bg-surface-hover disabled:cursor-default disabled:opacity-60 aria-expanded:bg-surface-hover max-[650px]:h-9 max-[650px]:gap-1 max-[650px]:rounded-full max-[650px]:bg-surface-muted max-[650px]:dark:bg-surface-active max-[650px]:px-3 max-[650px]:text-sm min-[651px]:pointer-coarse:h-11`,m,b),"aria-label":P,title:P,children:[(0,W.jsx)(`span`,{className:`min-w-0 truncate font-medium max-[650px]:hidden`,children:D}),(0,W.jsx)(`span`,{className:`hidden font-medium whitespace-nowrap max-[650px]:inline`,children:x(`chat:focusSession.modelChipShort`)}),(0,W.jsx)(`span`,{"aria-hidden":`true`,className:`text-content-faint max-[650px]:hidden`,children:`·`}),(0,W.jsx)(`span`,{className:`shrink-0 text-content-muted max-[650px]:hidden`,children:A?$(x,r||i[0]):`—`}),(0,W.jsx)(p,{size:14,className:`shrink-0 text-content-muted max-[650px]:hidden`,"aria-hidden":`true`})]}),children:[(0,W.jsxs)(`div`,{className:`model-effort-model flex flex-col gap-1 p-1.5 pb-2`,children:[(0,W.jsx)(`span`,{className:`px-0.5 text-xs font-medium text-content-muted`,children:x(`chat:focusSession.toolbarModel`)}),(0,W.jsxs)(wt,{defaultValue:e,filter:(e,t,n)=>+!![e,...n||[]].join(` `).toLowerCase().includes(t.trim().toLowerCase()),className:`rounded-sm! border border-stroke-soft bg-transparent p-0`,"aria-label":x(`chat:focusSession.currentChatModel`),children:[t.length>6&&(0,W.jsx)(Tt,{placeholder:x(`chat:focusSession.searchModels`)}),(0,W.jsxs)(Et,{className:`max-h-56`,children:[(0,W.jsx)(Dt,{className:`py-4 text-xs text-content-muted`,children:t.length?x(`chat:focusSession.noMatchingModels`):x(`chat:focusSession.noModelsAvailable`)}),!w&&e&&(0,W.jsx)(Ot,{children:(0,W.jsx)(kt,{value:e,"data-checked":!0,disabled:!0,children:(0,W.jsx)(`span`,{className:`min-w-0 truncate`,children:D})})}),k.map(([t,r])=>(0,W.jsx)(Ot,{heading:t,children:r.map(t=>{let r=L(t.label,T);return(0,W.jsx)(kt,{value:t.key,keywords:[t.label,t.providerName],"data-checked":t.key===e,disabled:l||S,onSelect:()=>{t.key!==e&&n(t.key)},children:(0,W.jsxs)(`span`,{className:`flex min-w-0 flex-col`,title:t.label,children:[(0,W.jsx)(`span`,{className:`wrap-anywhere`,children:r}),r!==t.label&&(0,W.jsx)(`span`,{className:`truncate text-xs text-content-muted`,children:t.label})]})},t.key)})},t))]})]})]}),A&&(0,W.jsx)(je,{className:`border-t border-stroke-soft p-1.5 pt-2`,title:x(`chat:focusSession.thinkingLevelTitle`),levels:i,value:r,labelFor:e=>$(x,e),onCommit:async e=>{C(!0);try{await c(e)}finally{C(!1)}},disabled:N,ariaLabel:x(`chat:focusSession.currentThinkingLevel`),trailing:v?(0,W.jsx)(`span`,{className:`shrink-0 text-xs text-content-faint`,children:x(`chat:focusSession.thinkingModelDefault`)}):y?(0,W.jsx)(`button`,{type:`button`,className:`shrink-0 cursor-pointer rounded-sm text-xs text-content-muted underline-offset-2 hover:text-content hover:underline focus-visible:outline-2 focus-visible:outline-focus`,onClick:y,children:x(`chat:focusSession.thinkingReset`)}):void 0}),d&&(0,W.jsx)(`p`,{className:`px-2 pt-1 pb-2 text-xs leading-4 text-content-muted`,role:`status`,children:x(`chat:focusSession.runtimeSelectionDeferred`)}),(!A||i.length===1)&&(0,W.jsx)(`p`,{className:`border-t border-stroke-soft px-2 pt-2 pb-1.5 text-xs leading-relaxed text-content-muted`,role:`status`,children:A?x(`chat:focusSession.thinkingLevelFixed`,{level:j}):M}),h]})}export{Fe as a,we as c,fe as d,me as f,ne as g,ie as h,Ie as i,Se as l,ae as m,Rt as n,Ae as o,ye as p,$ as r,xe as s,Lt as t,Ee as u};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{a as e,r as t}from"./rolldown-runtime-B0Z9INg1.js";import{i as n,n as r,r as i}from"./vendor-react-DwNgTV1j.js";import{t as a}from"./use-i18n-
|
|
1
|
+
import{a as e,r as t}from"./rolldown-runtime-B0Z9INg1.js";import{i as n,n as r,r as i}from"./vendor-react-DwNgTV1j.js";import{t as a}from"./use-i18n-CrMP8KP1.js";import{t as o}from"./createLucideIcon-Cd-3GVxJ.js";import{t as s}from"./x-07u4-129.js";import{t as c}from"./utils-C8uzG5AZ.js";import{t as l}from"./button-CCcCN8tE.js";import{a as u,s as d}from"./events-fUNyYQhT.js";import{t as f}from"./esm-DCV8yILT.js";var p=o(`file-diff`,[[`path`,{d:`M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z`,key:`1oefj6`}],[`path`,{d:`M9 10h6`,key:`9gxzsh`}],[`path`,{d:`M12 13V7`,key:`h0r20n`}],[`path`,{d:`M9 17h6`,key:`r8uit2`}]]),m=e(n(),1),h=e(r(),1);function g(e){let t=String(e||``).trim().split(` `)[0];if(t.startsWith(`"`)&&t.endsWith(`"`))try{t=JSON.parse(t)}catch{}return t===`/dev/null`?``:t.replace(/^[ab]\//,``)}function _(e){let t=e.match(/^diff --git "a\/(.+)" "b\/(.+)"$/);if(t)return g(`b/${t[2]}`);let n=e.match(/^diff --git a\/(.+) b\/(.+)$/);return n?g(`b/${n[2]}`):``}function v(){return{lineNumber:null,text:``,tone:`empty`}}function y(e){let t=e.match(/^@@\s+-(\d+)(?:,\d+)?\s+\+(\d+)(?:,\d+)?\s+@@/);return{oldLine:Number(t?.[1])||0,newLine:Number(t?.[2])||0}}function b(e){let t=String(e||``).replace(/\r\n/g,`
|
|
2
2
|
`).split(`
|
|
3
3
|
`),n=[],r=null,i=null,a=0,o=0,s=[],c=[],l=()=>{if(!i||!s.length&&!c.length)return;let e=Math.max(s.length,c.length);for(let t=0;t<e;t+=1){let e=s[t],n=c[t];i.rows.push({kind:`pair`,old:e?{lineNumber:e.lineNumber,text:e.text,tone:`deleted`}:v(),next:n?{lineNumber:n.lineNumber,text:n.text,tone:`added`}:v()})}s=[],c=[]},u=()=>{l(),i=null},d=()=>{u(),r&&=(r.path=r.newPath||r.oldPath||r.path,n.push(r),null)};for(let e of t){if(e.startsWith(`diff --git `)){d(),r={oldPath:``,newPath:``,path:_(e),metadata:[],hunks:[]};continue}if(r){if(e.startsWith(`@@ `)){u();let t=y(e);a=t.oldLine,o=t.newLine,i={header:e,rows:[]},r.hunks.push(i);continue}if(i){if(e.startsWith(`-`))s.push({lineNumber:a,text:e.slice(1)}),a+=1;else if(e.startsWith(`+`))c.push({lineNumber:o,text:e.slice(1)}),o+=1;else if(l(),e.startsWith(` `)){let t=e.slice(1);i.rows.push({kind:`pair`,old:{lineNumber:a,text:t,tone:`context`},next:{lineNumber:o,text:t,tone:`context`}}),a+=1,o+=1}else e.startsWith(`\\ `)&&i.rows.push({kind:`meta`,text:e.slice(2)});continue}e.startsWith(`--- `)?r.oldPath=g(e.slice(4)):e.startsWith(`+++ `)?r.newPath=g(e.slice(4)):e.trim()&&r.metadata.push(e)}}return d(),n}var x=/[\p{L}\p{N}_$]/u;function S(e,t){let n=Array.from(e),r=Array.from(t);if(!n.length||!r.length)return null;let i=0;for(;i<n.length&&i<r.length&&n[i]===r[i];)i+=1;let a=n.length,o=r.length;for(;a>i&&o>i&&n[a-1]===r[o-1];)--a,--o;if(i===a&&i===o)return null;for(;i>0&&x.test(n[i-1])&&x.test(n[i]??r[i]??``);)--i;for(;a<n.length&&a>0&&x.test(n[a])&&x.test(n[a-1]);)a+=1;for(;o<r.length&&o>0&&x.test(r[o])&&x.test(r[o-1]);)o+=1;return Math.max(a-i,o-i)/Math.max(n.length,r.length)>.7?null:{start:i,oldEnd:a,newEnd:o}}function C(e){let t=[];for(let n of e.hunks){t.push({kind:`header`,text:n.header});let e=0;for(;e<n.rows.length;){let r=n.rows[e];if(r.kind===`meta`){t.push({kind:`meta`,text:r.text}),e+=1;continue}if(r.old.tone===`context`){t.push({kind:`line`,tone:`context`,oldLine:r.old.lineNumber,newLine:r.next.lineNumber,text:r.next.text,mark:null}),e+=1;continue}let i=[];for(;e<n.rows.length;){let t=n.rows[e];if(t.kind!==`pair`||t.old.tone===`context`)break;i.push(t),e+=1}let a=i.map(e=>e.old.tone===`deleted`&&e.next.tone===`added`?S(e.old.text,e.next.text):null);i.forEach((e,n)=>{if(e.old.tone!==`deleted`)return;let r=a[n];t.push({kind:`line`,tone:`deleted`,oldLine:e.old.lineNumber,newLine:null,text:e.old.text,mark:r?[r.start,r.oldEnd]:null})}),i.forEach((e,n)=>{if(e.next.tone!==`added`)return;let r=a[n];t.push({kind:`line`,tone:`added`,oldLine:null,newLine:e.next.lineNumber,text:e.next.text,mark:r?[r.start,r.newEnd]:null})})}}return t}function w(e,t,n=``){let[r,i]=(0,m.useState)(null),a=(0,m.useRef)({identity:n,position:e||{top:0,left:0}});a.current={identity:n,position:e||{top:0,left:0}};let o=(0,m.useRef)(t);return o.current=t,(0,m.useLayoutEffect)(()=>{if(!r)return;let e=a.current.position,t=!0,i=null,s=()=>{a.current.identity===n&&!t&&r.isConnected&&r.clientHeight>0&&o.current({top:r.scrollTop,left:r.scrollLeft})},c=()=>{i=null,t&&(r.scrollTo({top:e.top,left:e.left,behavior:`instant`}),Math.abs(r.scrollTop-e.top)<1&&Math.abs(r.scrollLeft-e.left)<1&&(t=!1))},l=()=>{t&&i===null&&(i=requestAnimationFrame(c))},f=()=>{t=!1,s()};c();let p=new ResizeObserver(l);p.observe(r);for(let e of r.children)p.observe(e);return r.addEventListener(`scroll`,s),r.addEventListener(`wheel`,f,{passive:!0}),r.addEventListener(`pointerdown`,f),r.addEventListener(`keydown`,f),window.addEventListener(u,s),window.addEventListener(d,s),()=>{s(),p.disconnect(),i!==null&&cancelAnimationFrame(i),r.removeEventListener(`scroll`,s),r.removeEventListener(`wheel`,f),r.removeEventListener(`pointerdown`,f),r.removeEventListener(`keydown`,f),window.removeEventListener(u,s),window.removeEventListener(d,s)}},[r,n]),{element:r,ref:i}}var T=t({GitDiffDialog:()=>L,InlineGitDiff:()=>R}),E=i();function D({side:e,cell:t}){let n=t.tone===`deleted`?`−`:t.tone===`added`?`+`:` `;return(0,E.jsxs)(`div`,{className:`git-diff-cell grid min-w-0 min-h-[24px] grid-cols-[44px_20px_minmax(0,1fr)] border-b border-stroke-soft font-mono text-[12px] leading-[1.6] tabular-nums [&.next]:border-l [&.next]:border-l-stroke [&.deleted]:bg-[var(--danger-soft)] [&.added]:bg-[var(--success-soft)] [&.deleted]:shadow-[inset_2px_0_var(--danger)] [&.added]:shadow-[inset_2px_0_var(--success)] [&.empty]:bg-surface-subtle [&.context]:bg-code [&_code]:block [&_code]:min-w-0 [&_code]:p-[3px_8px_3px_2px] [&_code]:text-[var(--text)] [&_code]:font-[inherit] [&_code]:whitespace-pre-wrap [&_code]:[overflow-wrap:anywhere] ${e} ${t.tone}`,children:[(0,E.jsx)(`span`,{className:`block border-r border-stroke-soft p-[3px_8px_3px_4px] text-right text-code-gutter select-none`,children:t.lineNumber??``}),(0,E.jsx)(`span`,{className:`git-diff-line-marker [.git-diff-cell.deleted_&]:text-[var(--danger)] [.git-diff-cell.added_&]:text-[var(--success)] block [padding:3px_4px] text-[var(--text-muted)] text-center select-none`,"aria-hidden":`true`,children:t.tone===`empty`?``:n}),(0,E.jsx)(`code`,{children:t.text||`\xA0`})]})}var O={minWidth:0},k={minWidth:0,gridTemplateColumns:`minmax(0,1fr) minmax(0,1fr)`};function A({file:e,scrollElement:t,compact:n=!1}){let r=(0,m.useRef)(null),[i,a]=(0,m.useState)(0),o=(0,m.useMemo)(()=>e.hunks.flatMap((e,t)=>[{kind:`header`,hunkIndex:t,header:e.header},...e.rows.map((e,n)=>({kind:`row`,hunkIndex:t,rowIndex:n,row:e}))]),[e.hunks]);(0,m.useLayoutEffect)(()=>{let e=r.current;if(!t||!e)return;let n=()=>{let n=Math.max(0,e.getBoundingClientRect().top-t.getBoundingClientRect().top+t.scrollTop);a(e=>Math.abs(e-n)<1?e:n)};n();let i=typeof ResizeObserver>`u`?null:new ResizeObserver(n);return i?.observe(t),i?.observe(e),()=>i?.disconnect()},[t]);let s=f({useFlushSync:!1,count:o.length,getScrollElement:()=>t,estimateSize:()=>25,getItemKey:e=>{let t=o[e];return t.kind===`header`?`hunk-${t.hunkIndex}`:`row-${t.hunkIndex}-${t.rowIndex}`},measureElement:e=>Math.ceil(e.getBoundingClientRect().height),overscan:12,scrollMargin:i}),c=s.getVirtualItems();return(0,E.jsx)(`div`,{className:`relative min-w-[880px] w-full`,"data-pisper-diff-row-count":o.length,"data-diff-mode":n?`split-compact`:`split`,"data-pisper-rendered-count":c.length,ref:r,style:{height:`${s.getTotalSize()}px`,...n?O:{}},children:c.map(e=>{let t=o[e.index];return(0,E.jsx)(`div`,{className:`absolute left-0 w-full`,"data-index":e.index,ref:s.measureElement,style:{top:`${e.start-i}px`},children:t.kind===`header`?(0,E.jsx)(`div`,{className:`git-diff-hunk-header border-b border-stroke-soft bg-surface-subtle p-[4px_10px] font-mono text-[12px] text-content-muted [white-space:pre]`,children:t.header}):t.row.kind===`meta`?(0,E.jsx)(`div`,{className:`git-diff-row-meta border-b border-stroke-soft bg-surface-subtle p-[4px_10px] font-mono text-[12px] text-content-muted [white-space:pre]`,children:t.row.text}):(0,E.jsxs)(`div`,{className:`grid min-w-[880px] grid-cols-[minmax(440px,1fr)_minmax(440px,1fr)]`,style:n?k:void 0,children:[(0,E.jsx)(D,{side:`old`,cell:t.row.old}),(0,E.jsx)(D,{side:`next`,cell:t.row.next})]})},e.key)})})}var j=20;function M(e,t,n){if(!t||t[0]>=t[1])return e||`\xA0`;let r=Array.from(e);return(0,E.jsxs)(E.Fragment,{children:[r.slice(0,t[0]).join(``),(0,E.jsx)(`mark`,{className:c(`rounded-[2px] text-inherit`,n===`added`?`bg-diff-add-mark`:`bg-diff-del-mark`),children:r.slice(t[0],t[1]).join(``)}),r.slice(t[1]).join(``)]})}function N({line:e}){if(e.kind!==`line`)return(0,E.jsx)(`div`,{className:c(`git-diff-hunk-header h-5 bg-surface-subtle px-3 text-content-muted`,e.kind===`meta`&&`italic`),children:e.text});let t=e.tone===`added`?`+`:e.tone===`deleted`?`−`:` `;return(0,E.jsxs)(`div`,{className:c(`git-diff-unified-row grid h-5 grid-cols-[40px_40px_16px_max-content]`,e.tone===`added`&&`bg-diff-add`,e.tone===`deleted`&&`bg-diff-del`),"data-tone":e.tone,children:[(0,E.jsx)(`span`,{className:`pr-2 text-right text-code-gutter select-none`,children:e.oldLine??``}),(0,E.jsx)(`span`,{className:`pr-2 text-right text-code-gutter select-none`,children:e.newLine??``}),(0,E.jsx)(`span`,{"aria-hidden":`true`,className:c(`text-center select-none`,e.tone===`added`&&`text-st-done`,e.tone===`deleted`&&`text-st-fail`),children:t}),(0,E.jsx)(`code`,{className:`pr-4 font-[inherit] text-content`,children:e.tone===`context`?e.text||`\xA0`:M(e.text,e.mark,e.tone)})]})}function P({file:e,scrollElement:t}){let n=(0,m.useRef)(null),[r,i]=(0,m.useState)(0),a=(0,m.useMemo)(()=>C(e),[e]),o=(0,m.useMemo)(()=>a.reduce((e,t)=>Math.max(e,Array.from(t.text.replace(/\t/g,` `)).length),0),[a]);(0,m.useLayoutEffect)(()=>{let e=n.current;if(!t||!e)return;let r=()=>{let n=Math.max(0,e.getBoundingClientRect().top-t.getBoundingClientRect().top+t.scrollTop);i(e=>Math.abs(e-n)<1?e:n)};r();let a=typeof ResizeObserver>`u`?null:new ResizeObserver(r);return a?.observe(t),a?.observe(e),()=>a?.disconnect()},[t]);let s=f({useFlushSync:!1,count:a.length,getScrollElement:()=>t,estimateSize:()=>j,overscan:24,scrollMargin:r}),c=s.getVirtualItems();return(0,E.jsx)(`div`,{ref:n,className:`relative font-mono text-[12px] leading-5 tabular-nums [tab-size:4] whitespace-pre`,"data-pisper-diff-row-count":a.length,"data-diff-mode":`unified`,style:{height:`${s.getTotalSize()}px`,minWidth:`calc(${o}ch + 112px)`},children:c.map(e=>(0,E.jsx)(`div`,{className:`absolute left-0 w-full`,style:{top:`${e.start-r}px`},children:(0,E.jsx)(N,{line:a[e.index]})},e.key))})}function F(e){let t=e.path.replace(/\\/g,`/`),n=t.split(`/`),r=n.pop()||t,i=0,a=0;for(let t of e.hunks)for(let e of t.rows)e.kind===`pair`&&(e.next.tone===`added`&&(i+=1),e.old.tone===`deleted`&&(a+=1));let o=e.metadata.join(`
|
|
4
4
|
`),s=/(?:^|\n)new file mode /.test(o)||!e.oldPath&&e.newPath?`added`:/(?:^|\n)deleted file mode /.test(o)||!e.newPath&&e.oldPath?`deleted`:/(?:^|\n)rename (?:from|to) /.test(o)||e.oldPath&&e.newPath&&e.oldPath!==e.newPath?`renamed`:`modified`;return{file:e,name:r,directory:n.join(`/`),added:i,deleted:a,status:s}}function I(e){return e===`added`?`A`:e===`deleted`?`D`:e===`renamed`?`R`:`M`}function L({diff:e,truncated:t,onClose:n}){let{t:r}=a(),i=(0,m.useMemo)(()=>b(e),[e]),o=(0,m.useMemo)(()=>i.map(F),[i]),[c,u]=(0,m.useState)(0),[d,f]=(0,m.useState)(null),g=Math.min(c,Math.max(o.length-1,0)),_=o[g];(0,m.useEffect)(()=>{let e=document.body.style.overflow,t=e=>{e.key===`Escape`&&!e.defaultPrevented&&(e.preventDefault(),e.stopPropagation(),n())};return document.body.style.overflow=`hidden`,document.addEventListener(`keydown`,t),()=>{document.body.style.overflow=e,document.removeEventListener(`keydown`,t)}},[n]);let v=e=>{u(e),d?.scrollTo({top:0,left:0})};return(0,h.createPortal)((0,E.jsx)(`div`,{className:`git-diff-dialog-backdrop fixed inset-0 z-[120] grid place-items-center bg-[var(--overlay-scrim)] p-[24px] max-[760px]:p-[10px]`,role:`presentation`,onMouseDown:e=>e.target===e.currentTarget&&n(),children:(0,E.jsxs)(`section`,{className:`git-diff-dialog max-[760px]:w-[calc(100vw_-_20px)] max-[760px]:h-[calc(100vh_-_20px)] flex w-[min(1180px,calc(100vw_-_48px))] h-[min(820px,calc(100vh_-_48px))] min-w-0 min-h-0 flex-col overflow-hidden rounded-xl border border-stroke bg-solid shadow-float`,role:`dialog`,"aria-modal":`true`,"aria-label":r(`chat:focusSession.gitViewDiff`),children:[(0,E.jsxs)(`header`,{className:`git-diff-dialog-head [&_>_span:nth-child(2)]:flex [&_>_span:nth-child(2)]:min-w-0 [&_>_span:nth-child(2)]:flex-col [&_>_span:nth-child(2)]:gap-[2px] [&_strong]:text-[13px] [&_strong]:font-medium [&_small]:text-content-muted [&_small]:text-[12px] [&_small]:tabular-nums grid min-h-[52px] flex-none grid-cols-[auto_minmax(0,1fr)_auto] items-center gap-[10px] border-b border-stroke p-[8px_12px]`,children:[(0,E.jsx)(`span`,{className:`grid size-[30px] place-items-center rounded-sm border border-key-border bg-key text-content-secondary shadow-key`,children:(0,E.jsx)(p,{size:16})}),(0,E.jsxs)(`span`,{children:[(0,E.jsx)(`strong`,{children:r(`chat:focusSession.gitViewDiff`)}),(0,E.jsx)(`small`,{children:r(`chat:focusSession.gitDiffFileCount`,{count:i.length})})]}),(0,E.jsx)(l,{type:`button`,variant:`ghost`,size:`icon`,title:r(`chat:focusSession.gitCloseDiff`),"aria-label":r(`chat:focusSession.gitCloseDiff`),onClick:n,children:(0,E.jsx)(s,{size:17})})]}),o.length?(0,E.jsxs)(`div`,{className:`git-diff-layout max-[760px]:grid-rows-[minmax(112px,26vh)_minmax(0,1fr)] max-[760px]:grid-cols-[minmax(0,1fr)] grid min-w-0 min-h-0 flex-1 grid-cols-[252px_minmax(0,1fr)] overflow-hidden`,children:[(0,E.jsxs)(`nav`,{className:`git-diff-file-nav flex min-h-0 min-w-0 flex-col overflow-hidden border-r border-stroke bg-chrome max-[760px]:border-r-0 max-[760px]:border-b`,"aria-label":r(`chat:focusSession.gitDiffChangedFiles`),children:[(0,E.jsx)(`strong`,{className:`git-diff-file-nav-title flex-none p-[10px_12px_6px] text-[12px] font-medium tracking-[.02em] text-content-muted max-[760px]:[padding-block:7px_5px]`,children:r(`chat:focusSession.gitDiffChangedFiles`)}),(0,E.jsx)(`div`,{className:`git-diff-file-nav-list max-[760px]:pb-[6px] min-h-0 flex-1 overflow-x-hidden overflow-y-auto [padding:0_6px_8px]`,children:o.map((e,t)=>{let n=t===g;return(0,E.jsxs)(`button`,{type:`button`,className:`git-diff-file-nav-item grid min-h-[42px] w-full cursor-pointer grid-cols-[20px_minmax(0,1fr)_auto] items-center gap-[7px] rounded-sm border-0 bg-transparent p-[5px_7px] text-left text-content-secondary transition-colors duration-(--d-fast) hover:bg-surface-hover hover:text-foreground [&.selected]:bg-key [&.selected]:text-foreground [&.selected]:shadow-[inset_3px_0_var(--star),var(--key-shadow)] ${e.status} ${n?`selected`:``}`,title:e.file.path,"aria-current":n?`true`:void 0,onClick:()=>v(t),children:[(0,E.jsx)(`span`,{className:`git-diff-file-status text-center font-mono text-[12px] font-medium [.git-diff-file-nav-item.added_&]:text-[var(--success)] [.git-diff-file-nav-item.deleted_&]:text-[var(--danger)] [.git-diff-file-nav-item.renamed_&]:text-[var(--warning-strong)] [.git-diff-file-nav-item.modified_&]:text-content-secondary`,"aria-hidden":`true`,children:I(e.status)}),(0,E.jsxs)(`span`,{className:`git-diff-file-name [&_strong]:overflow-hidden [&_strong]:text-ellipsis [&_strong]:whitespace-nowrap [&_small]:overflow-hidden [&_small]:text-ellipsis [&_small]:whitespace-nowrap [&_strong]:text-[12px] [&_strong]:font-medium [&_small]:text-content-muted [&_small]:text-[12px] flex min-w-0 flex-col gap-[1px]`,children:[(0,E.jsx)(`strong`,{children:e.name}),e.directory&&(0,E.jsx)(`small`,{children:e.directory})]}),(0,E.jsxs)(`span`,{className:`git-diff-file-stats inline-flex items-center gap-[4px] font-mono text-[12px] tabular-nums [&_em]:[font-style:normal]`,"aria-hidden":`true`,children:[e.added>0&&(0,E.jsxs)(`em`,{className:`added [.git-diff-file-stats_&]:text-[var(--success)]`,children:[`+`,e.added]}),e.deleted>0&&(0,E.jsxs)(`em`,{className:`deleted [.git-diff-file-stats_&]:text-[var(--danger)]`,children:[`−`,e.deleted]})]})]},`${e.file.path}-${t}`)})})]}),(0,E.jsxs)(`div`,{className:`min-w-0 min-h-0 overflow-auto bg-surface-subtle p-[12px]`,ref:f,children:[t&&(0,E.jsx)(`div`,{className:`mb-[12px] rounded-sm border border-[var(--warning-border)] bg-warning-soft p-[8px_10px] text-[12px] text-warning-strong`,children:r(`chat:focusSession.gitDiffTruncated`)}),_&&(0,E.jsxs)(`section`,{className:`min-w-[880px] [overflow:clip] rounded-md border border-stroke bg-panel`,children:[(0,E.jsxs)(`header`,{className:`git-diff-file-head [&_>_svg]:text-content-muted [&_strong]:overflow-hidden [&_strong]:font-mono [&_strong]:text-[12px] [&_strong]:font-medium [&_strong]:text-ellipsis [&_strong]:whitespace-nowrap [&_small]:max-w-[300px] [&_small]:overflow-hidden [&_small]:text-content-muted [&_small]:text-[12px] [&_small]:text-ellipsis [&_small]:whitespace-nowrap sticky top-0 z-[3] grid min-h-[38px] grid-cols-[auto_minmax(0,1fr)_auto] items-center gap-[8px] border-b border-stroke bg-panel p-[7px_10px]`,children:[(0,E.jsx)(p,{size:14}),(0,E.jsx)(`strong`,{title:_.file.path,children:_.file.path}),_.file.oldPath&&_.file.newPath&&_.file.oldPath!==_.file.newPath&&(0,E.jsx)(`small`,{title:_.file.oldPath,children:_.file.oldPath})]}),_.file.metadata.length>0&&(0,E.jsx)(`div`,{className:`git-diff-file-meta border-b border-stroke-soft bg-surface-subtle p-[5px_10px] font-mono text-[12px] text-content-muted`,children:_.file.metadata.join(` · `)}),_.file.hunks.length>0?(0,E.jsxs)(E.Fragment,{children:[(0,E.jsxs)(`div`,{className:`git-diff-column-head [&_span]:p-[5px_10px] [&_span_+_span]:border-l [&_span_+_span]:border-stroke sticky top-[38px] z-[2] grid grid-cols-[1fr_1fr] border-b border-stroke bg-surface-subtle text-[12px] font-medium text-content-muted`,children:[(0,E.jsx)(`span`,{children:r(`chat:focusSession.gitDiffOriginal`)}),(0,E.jsx)(`span`,{children:r(`chat:focusSession.gitDiffModified`)})]}),(0,E.jsx)(A,{file:_.file,scrollElement:d})]}):(0,E.jsx)(`div`,{className:`[padding:28px_16px] text-[var(--text-muted)] text-[12px] text-center`,children:r(`chat:focusSession.gitDiffNoTextChanges`)})]},_.file.path)]})]}):(0,E.jsx)(`div`,{className:`min-h-0 min-w-0 flex-1 overflow-auto bg-surface-subtle p-[12px]`,children:(0,E.jsx)(`div`,{className:`rounded-md border border-stroke bg-panel p-[20px] whitespace-pre-wrap text-content-muted`,children:e||r(`chat:focusSession.gitDiffUnavailable`)})})]})}),document.body)}function R({diff:e,truncated:t,position:n,onReading:r=()=>{},mode:i=`split`,fill:o=!1}){let{t:s}=a(),l=(0,m.useMemo)(()=>b(e),[e]),{element:u,ref:d}=w(n,r);return(0,E.jsxs)(`div`,{className:o?`flex min-h-0 flex-1 flex-col`:void 0,children:[t&&(0,E.jsx)(`p`,{className:`px-3 py-2 text-xs text-content-muted`,children:s(`chat:chatMessage.filePreviewTruncated`)}),(0,E.jsx)(`div`,{ref:d,tabIndex:0,"aria-label":s(`chat:focusSession.gitViewDiff`),"data-diff-scroll":!0,className:c(`min-w-0 overflow-auto focus-visible:outline-2 focus-visible:-outline-offset-2 focus-visible:outline-focus`,o?`min-h-0 flex-1 bg-panel`:`max-h-80 border-y border-border bg-background`),children:!l.length||l.every(e=>!e.hunks.length)?(0,E.jsx)(`p`,{className:`p-3 text-xs text-content-muted`,children:s(`chat:focusSession.gitDiffNoTextChanges`)}):l.map((e,t)=>i===`unified`?(0,E.jsx)(P,{file:e,scrollElement:u},`${e.path}-${t}`):(0,E.jsx)(A,{file:e,scrollElement:u,compact:o},`${e.path}-${t}`))})]})}export{b as a,w as i,T as n,p as o,R as r,L as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as e}from"./rolldown-runtime-B0Z9INg1.js";import{i as t,r as n}from"./vendor-react-DwNgTV1j.js";import{t as r}from"./use-i18n-
|
|
1
|
+
import{a as e}from"./rolldown-runtime-B0Z9INg1.js";import{i as t,r as n}from"./vendor-react-DwNgTV1j.js";import{t as r}from"./use-i18n-CrMP8KP1.js";import{t as i}from"./arrow-down-CDGua-ue.js";import{t as a}from"./arrow-up-DST6-qVQ.js";import{n as o,t as s}from"./useCatalogProjects-BJCTVrvM.js";import{i as c,t as l}from"./workspace-order-store-Du6GVhMP.js";import{t as u}from"./pencil-U08v_vV9.js";import{t as d}from"./rotate-ccw-C0v8V77_.js";import{t as f}from"./trash-2-CNrPOoPR.js";import{t as p}from"./utils-C8uzG5AZ.js";import{n as m,t as h}from"./button-CCcCN8tE.js";import{t as g}from"./useSessionListQuery-Bfjp1ecc.js";import{s as _}from"./card-presentation-1oph2b8P.js";import{a as v,i as y,l as b,n as x,o as S,s as C,t as w}from"./dialog-CEcIiRdx.js";var T=e(t(),1),E=n(),D=`flex-none pointer-coarse:size-11 in-data-[phone-shell]:size-11`;function O({open:e,onOpenChange:t,commands:n}){let{t:O}=r(),k=g(),A=l(e=>e.rememberWorkspaces),j=l(e=>e.moveWorkspace),M=(0,T.useRef)(null),N=(0,T.useRef)(null),[P,F]=(0,T.useState)(null),[I,L]=(0,T.useState)(null),R=s(),z=(0,T.useMemo)(()=>R.map(e=>e.key),[R]);(0,T.useEffect)(()=>{e&&z.length&&A(z)},[z,e,A]),(0,T.useEffect)(()=>{if(!P)return;let e=M.current,t=t=>e?.querySelector(`[data-project-move="${t}"][data-project-key="${CSS.escape(P.key)}"]`),n=t(P.offset);(n&&!n.disabled?n:t(P.offset===-1?1:-1))?.focus(),F(null)},[P,R]),(0,T.useEffect)(()=>{I&&(L(null),!R.some(e=>e.key===I.key)&&((I.next?M.current?.querySelector(`[data-project-remove][data-project-key="${CSS.escape(I.next)}"]`):null)??N.current)?.focus())},[R,I]);let B=(e,t)=>{j(e.key,t,z),F({key:e.key,offset:t})},V=async(e,t)=>{let r=R[t+1]?.key??R[t-1]?.key??``;e.count===0?n.unregister(e):await n.remove(e),L({key:e.key,next:r})},H=!!n.busyKey,U;return U=k.isPending?(0,E.jsxs)(`p`,{role:`status`,className:`flex items-center gap-2 py-6 text-sm text-content-muted`,children:[(0,E.jsx)(m,{className:`size-4`}),O(`board:project.loading`)]}):k.error&&!k.data?(0,E.jsxs)(`div`,{role:`alert`,className:`flex flex-col items-start gap-2 py-6 text-sm`,children:[(0,E.jsx)(`p`,{className:`text-content`,children:O(`board:project.error`)}),(0,E.jsx)(h,{variant:`secondary`,size:`sm`,onClick:()=>void k.refetch(),children:O(`board:page.retry`)})]}):R.length===0?(0,E.jsxs)(`div`,{className:`flex flex-col gap-1 py-6 text-sm`,children:[(0,E.jsx)(`p`,{className:`font-medium text-content`,children:O(`board:project.empty`)}),(0,E.jsx)(`p`,{className:`text-content-muted`,children:O(`board:project.emptyHint`)})]}):(0,E.jsx)(`ul`,{ref:M,"aria-label":O(`board:project.listLabel`),className:`flex flex-col divide-y divide-stroke-soft`,"data-manage-projects":!0,children:R.map((e,t)=>{let r=n.busyKey===e.key,s=e.cwd&&e.key!==`\0`,c=e.count===0,l=O(c?`board:project.removeNamed`:`board:project.deleteWithChatsNamed`,{project:e.label});return(0,E.jsxs)(`li`,{"data-project-row":e.key,"data-project-registered-only":c||void 0,"aria-busy":r||void 0,className:`flex min-w-0 flex-wrap items-center gap-x-2 gap-y-1 py-2`,children:[(0,E.jsx)(`span`,{"aria-hidden":`true`,className:`grid size-7 flex-none place-items-center rounded-sm border border-stroke-strong bg-solid font-mono text-xs font-semibold text-content uppercase`,children:Array.from(e.label)[0]||`·`}),(0,E.jsxs)(`div`,{className:`flex min-w-0 flex-1 flex-col`,children:[(0,E.jsx)(`span`,{className:`truncate font-mono text-sm font-semibold text-content`,children:e.label}),(0,E.jsx)(`span`,{className:`truncate font-mono text-xs text-content-muted`,title:e.cwd||void 0,children:e.custom?`${O(`board:project.folderName`,{name:e.folderLabel})} · ${_(e.cwd)}`:e.cwd?_(e.cwd):``})]}),(0,E.jsx)(`span`,{className:`flex-none text-xs text-content-muted tabular-nums max-[480px]:hidden`,children:r?O(`board:project.deleting`):O(`board:project.sessions`,{count:e.count})}),(0,E.jsxs)(`span`,{className:`flex flex-none items-center max-[480px]:w-full max-[480px]:justify-end`,children:[(0,E.jsx)(h,{variant:`ghost`,size:`icon-sm`,className:D,"data-project-move":`-1`,"data-project-key":e.key,disabled:t===0,"aria-label":O(`board:project.moveUp`,{project:e.label}),title:O(`board:project.moveUp`,{project:e.label}),onClick:()=>B(e,-1),children:(0,E.jsx)(a,{"aria-hidden":`true`})}),(0,E.jsx)(h,{variant:`ghost`,size:`icon-sm`,className:D,"data-project-move":`1`,"data-project-key":e.key,disabled:t===R.length-1,"aria-label":O(`board:project.moveDown`,{project:e.label}),title:O(`board:project.moveDown`,{project:e.label}),onClick:()=>B(e,1),children:(0,E.jsx)(i,{"aria-hidden":`true`})}),s&&(0,E.jsx)(h,{variant:`ghost`,size:`icon-sm`,className:D,"aria-label":O(`board:project.renameNamed`,{project:e.label}),title:O(`board:project.renameNamed`,{project:e.label}),onClick:()=>void n.rename(e),children:(0,E.jsx)(u,{"aria-hidden":`true`})}),s&&e.custom&&(0,E.jsx)(h,{variant:`ghost`,size:`icon-sm`,className:D,"aria-label":O(`board:project.resetNamed`,{project:e.label}),title:O(`board:project.resetNamed`,{project:e.label}),onClick:()=>n.resetName(e),children:(0,E.jsx)(d,{"aria-hidden":`true`})}),(0,E.jsx)(h,{variant:`ghost`,size:`icon-sm`,className:p(D,!c&&`text-danger hover:text-danger`),disabled:H,"data-project-remove":c?`unregister`:`delete`,"data-project-key":e.key,"aria-label":l,title:l,onClick:()=>void V(e,t),children:r?(0,E.jsx)(m,{className:`size-4`}):c?(0,E.jsx)(o,{"aria-hidden":`true`}):(0,E.jsx)(f,{"aria-hidden":`true`})})]})]},e.key)})}),(0,E.jsx)(w,{open:e,onOpenChange:t,children:(0,E.jsxs)(y,{size:`wide`,scrollMode:`body`,"aria-describedby":`board-manage-projects`,onOpenAutoFocus:e=>{e.preventDefault(),N.current?.focus()},children:[(0,E.jsxs)(C,{children:[(0,E.jsx)(b,{children:O(`board:project.manageTitle`)}),(0,E.jsx)(v,{id:`board-manage-projects`,children:O(`board:project.manageDescription`)})]}),(0,E.jsx)(x,{className:`-mx-1 px-1`,children:U}),(0,E.jsxs)(S,{children:[(0,E.jsxs)(h,{variant:`outline`,size:`dialogAction`,disabled:n.picking,onClick:()=>{t(!1),n.newProject()},children:[(0,E.jsx)(c,{"aria-hidden":`true`}),O(`board:project.new`)]}),(0,E.jsx)(h,{ref:N,size:`dialogAction`,onClick:()=>t(!1),children:O(`board:project.done`)})]})]})})}export{O as ManageProjectsDialog};
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/vendor-markdown-plugins-CT5L3KA9.js","assets/rolldown-runtime-B0Z9INg1.js","assets/vendor-shiki-runtime-DM7fm4Bl.js","assets/vendor-router-CSN_DGvx.js","assets/vendor-react-DwNgTV1j.js","assets/vendor-markdown-plugins-DEcVZfaU.css"])))=>i.map(i=>d[i]);
|
|
2
|
-
import{a as e}from"./rolldown-runtime-B0Z9INg1.js";import{h as t}from"./vendor-router-CSN_DGvx.js";import{n,t as r}from"./vendor-markdown-plugins-CT5L3KA9.js";import{i,r as a}from"./vendor-react-DwNgTV1j.js";import{a as o,i as s,n as c,r as l,t as u}from"./vendor-markdown-CT6Z4fh8.js";import{n as d,r as f,t as p}from"./vendor-shiki-runtime-DM7fm4Bl.js";import{t as m}from"./use-i18n-vKUIcJX7.js";import{t as ee}from"./check-2vYc6QaP.js";import{t as te}from"./copy-DHmIFc52.js";import{t as h}from"./utils-C8uzG5AZ.js";import{t as ne}from"./button-CCcCN8tE.js";import{t as re}from"./route-context-DvWDul4T.js";var g=e(i(),1),_=[`github-dark`,`github-dark`],ie=150,ae=new Set([`text`,`txt`,`plain`,`plaintext`]),v=new Map;for(let e of d){v.set(e.id,e.id);for(let t of e.aliases??[])v.set(t,e.id)}function y(e){return typeof e==`string`?e:e.name??`custom`}function oe(e){let t=String(e||``).trim().toLowerCase();return v.get(t)??`text`}function se(e,t,n){return`${t}:${y(n[0])}:${y(n[1])}:${e.length}:${e.slice(0,64)}:${e.slice(-64)}`}var b=new Map;function x(e){let t=b.get(e);return t&&(b.delete(e),b.set(e,t)),t}function ce(e,t){for(b.delete(e),b.set(e,t);b.size>ie;){let e=b.keys().next().value;if(e===void 0)break;b.delete(e)}}var S=null,C=new Map;function w(){return S??=f({themes:[..._],langs:[],engine:p({forgiving:!0})}),S}function T(e,t){if(ae.has(t)||e.getLoadedLanguages().includes(t))return Promise.resolve();let n=d.find(e=>e.id===t);if(!n)return Promise.resolve();let r=C.get(t);return r||(r=e.loadLanguage(()=>n.import().then(e=>e.default)).catch(e=>{throw C.delete(t),e}),C.set(t,r)),r}var E=new Map;function le(){return{name:`shiki`,type:`code-highlighter`,supportsLanguage(e){return v.has(String(e||``).trim().toLowerCase())},getSupportedLanguages(){return d.map(e=>e.id)},getThemes(){return _},highlight({code:e,language:t,themes:n},r){let i=oe(t),a=se(e,i,n),o=x(a);if(o)return o;let s=E.get(a),c=!!s;return s||(s=new Set,E.set(a,s)),r&&s.add(r),c||(async()=>{try{let t=await w();await T(t,i);let r=t.getLoadedLanguages().includes(i)?i:`text`,o=t.codeToTokens(e,{lang:r,themes:{light:n[0],dark:n[1]}});ce(a,o);let s=E.get(a);if(E.delete(a),s)for(let e of s)e(o)}catch(e){E.delete(a),console.error(`[streamdown] Failed to highlight code:`,e)}})(),null}}}var ue=le(),de={cjk:n,code:ue,math:r};function fe(){let e=``,t=[];return n=>{if(n===e)return t;if(t.length>0&&n.startsWith(e)){let r=t[t.length-1],i=e.length-r.length;if(i<0||e.slice(i)!==r)return e=n,t=l(n),t;let a=l(n.slice(i)),o=[...t.slice(0,-1),...a];return e=n,t=o,o}return e=n,t=l(n),t}}var pe=100,D=new Map;function me(e){let t=D.get(e);if(t)return D.delete(e),D.set(e,t),t;let n=l(e);if(D.set(e,n),D.size>pe){let e=D.keys().next().value;e!==void 0&&D.delete(e)}return n}var O=null;function he(){return O??=t(()=>import(`./vendor-markdown-plugins-CT5L3KA9.js`).then(e=>e.O),__vite__mapDeps([0,1,2,3,4,5])),O}function ge(e){return/\$\$|\\\(|\\\[|\$[^\n$]+\$|\\begin\{/.test(e)}var k=160;function A(e,t){let n=String(e||``).match(/language-[\w-]+:(\S+)/)?.[1]||``,r=typeof t==`string`?t:``,i=r.match(/(?:^|\s)(?:title|filename|file)=(?:"([^"]+)"|'([^']+)'|(\S+))/),a=r.split(/\s+/).find(e=>e&&!e.includes(`=`)&&!/^[{[]/.test(e)&&/[/.]/.test(e));return[...(n||i?.[1]||i?.[2]||i?.[3]||a||``).replace(/[\u0000-\u001f\u007f]/g,``).trim()].slice(0,k).join(``)}var j=`https://local-file.pisper.invalid`,M=`/reveal`;function N(e){try{return decodeURIComponent(e)}catch{return e}}function P(e){return[...e].some(e=>{let t=e.codePointAt(0)||0;return t<32||t===127})}function F(e){return/^(?:[A-Za-z]:[\\/]|\/|\\\\)/.test(e)}function I(e){let t=e.match(/:(\d+)(?::(\d+))?$/);if(!t)return{path:e};let n={path:e.slice(0,-t[0].length),line:Number(t[1])};return t[2]&&(n.column=Number(t[2])),n}function L(e){try{let t=new URL(e);if(t.protocol!==`file:`||t.username||t.password||t.port)return null;let n=t.pathname;return t.hostname&&t.hostname!==`localhost`?`//${t.hostname}${n}`:/^\/[A-Za-z]:[\\/]/.test(n)?n.slice(1):n}catch{return null}}function _e(e){return!e||/^[\\/]/.test(e)||/^[A-Za-z][A-Za-z0-9+.-]*:/.test(e)?!1:!e.split(/[\\/]/).includes(`..`)}function ve(e,t){let n=e.replace(/[\\/]+$/,``);if(!n)return e.startsWith(`/`)?`/`+t.replace(/^(?:\.\/)+/,``):``;let r=e.includes(`\\`)?`\\`:`/`,i=t.replace(/^[\\/]+/,``).replace(/^(?:\.[/])+/g,``);return n+r+i}function R(e,t){let n=e.trim();if(!n||P(n))return null;let r=/^file:/i.test(n);if(!r&&/[?#]/.test(n))return null;let i=r?L(n):n;if(!i)return null;let a=I(i),o=N(a.path);if(!o||P(o))return null;let s=/^\/[A-Za-z]:[\\/]/.test(o)?o.slice(1):o;if(F(s))return{...a,path:s};if(/^[A-Za-z][A-Za-z0-9+.-]*:/.test(i)&&!a.path.includes(`.`)||!t)return null;let c=t.trim();if(!F(c)||P(c)||!_e(o))return null;let l=ve(c,o);return F(l)?{...a,path:l}:null}function z(e){let t=new URL(M,j);return t.searchParams.set(`path`,e.path),e.line!==void 0&&t.searchParams.set(`line`,String(e.line)),e.column!==void 0&&t.searchParams.set(`column`,String(e.column)),t.href}function ye(e){try{let t=new URL(e);if(t.origin!==j||t.pathname!==M)return null;let n=t.searchParams.get(`path`)||``;if(!F(n)||P(n))return null;let r=Number(t.searchParams.get(`line`)),i=Number(t.searchParams.get(`column`)),a={path:n};return Number.isSafeInteger(r)&&r>0&&(a.line=r),Number.isSafeInteger(i)&&i>0&&(a.column=i),a}catch{return null}}function B(e){return/\.html?$/i.test(e)}var be=/(?:[A-Za-z]:[\\/]|\\\\|\/)[^\s<>"'`|*?()()【】「」《》,。;:、!?,;:]+?\.html?(?![\w-]|\.\w)|(?:\.[\\/])?[A-Za-z0-9_-][\w.-]*(?:[\\/][\w.-]+)*\.html?(?![\w-]|\.\w)/gi,xe=/[\w./\\-]/,V=/^[\w-]+(?:\.[\w-]+)+[\\/]/;function H(e,t){let n=R(e,t);return n&&B(n.path)?z({path:n.path}):null}function Se(e,t){let n=e.trim();return/^https?:\/\/\S+$/i.test(n)?n:/[<>"|*]/.test(n)||/\s/.test(n)&&!/^(?:[A-Za-z]:[\\/]|\/|\\\\)/.test(n)?null:H(n,t)}function Ce(e,t){let n=e.value||``,r=[],i=0;for(let e of n.matchAll(be)){let a=e.index>0&&xe.test(n[e.index-1])||V.test(e[0])?null:H(e[0],t);a&&(e.index>i&&r.push({type:`text`,value:n.slice(i,e.index)}),r.push({type:`link`,url:a,children:[{type:`text`,value:e[0]}]}),i=e.index+e[0].length)}return r.length?(i<n.length&&r.push({type:`text`,value:n.slice(i)}),r):[e]}function we(e){return t=>{let n=t=>{t.children&&=t.children.flatMap(t=>{if(t.type===`link`||t.type===`linkReference`)return[t];if(t.type===`text`)return Ce(t,e);if(t.type===`inlineCode`){let n=Se(t.value||``,e);return n?[{type:`link`,url:n,children:[t]}]:[t]}return n(t),[t]})};n(t)}}function Te(e){return t=>{let n=t=>{if(t.type===`link`&&typeof t.url==`string`){let n=R(t.url,e);n&&(t.url=z(n))}for(let e of t.children||[])n(e)};n(t)}}async function U(e){let t=await fetch(`/api/desktop/reveal-path`,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify({path:e})}),n={};try{n=await t.json()}catch{}if(!t.ok)throw Error(n.error||`HTTP ${t.status}`);return n.revealed===!0}var W=class extends Error{reason;constructor(e){super(`local-reveal:${e}`),this.reason=e,this.name=`LocalPathRevealError`}};async function G(e,t){if(typeof t!=`function`)throw new W(`unavailable`);let n;try{if(await Promise.race([Promise.resolve().then(()=>t(e)),new Promise((e,t)=>{n=setTimeout(()=>t(new W(`timeout`)),8e3)})])!==!0)throw new W(`failed`)}finally{clearTimeout(n)}}var K=a(),q=(0,g.createContext)(null),Ee={a:Ae,code:Fe,img:je,strong:Me,table:Ne},De=!1,Oe={linkMode:`text-only`};function J(e,t){window.dispatchEvent(new CustomEvent(re,{detail:{message:e,tone:t}}))}function Y(e){return typeof e==`string`||typeof e==`number`?String(e):Array.isArray(e)?e.map(Y).join(``):(0,g.isValidElement)(e)?Y(e.props.children):``}function ke(e){return String(e||``).match(/language-([\w-]+)/)?.[1]||`text`}function X({file:e}){return(0,K.jsx)(`span`,{className:`max-w-[min(360px,45vw)] truncate px-1.5 font-mono text-xs text-content-secondary`,title:e,"data-code-file":!0,children:e})}function Z(e){if(navigator.clipboard?.writeText)return navigator.clipboard.writeText(e);let t=document.createElement(`textarea`);return t.value=e,t.setAttribute(`readonly`,``),t.style.position=`fixed`,t.style.opacity=`0`,document.body.append(t),t.select(),document.execCommand(`copy`),t.remove(),Promise.resolve()}function Ae({children:e,node:t,className:n,href:r,...i}){let{t:a}=m(),[o,s]=(0,g.useState)(!1),[c,l]=(0,g.useState)(``),u=(0,g.useContext)(q),d=Y(e).trim()?e:r;if(!r)return(0,K.jsx)(`span`,{className:h(`markdown-link`,n),children:d});let f=ye(r);if(f){let e=!!u&&B(f.path),t=a(e?`common:markdownMessage.openHtmlPreview`:`common:markdownMessage.revealLocalPath`,{path:f.path}),r=async()=>{if(s(!0),l(``),e)try{await u?.(f.path),s(!1);return}catch{}try{await G(f.path,U),J(a(`common:markdownMessage.revealLocalPathOk`,{path:f.path}),`info`)}catch(e){let t=e instanceof W&&e.reason===`unavailable`?a(`common:markdownMessage.revealLocalPathUnavailable`):e instanceof W&&e.reason===`timeout`?a(`common:markdownMessage.revealLocalPathTimeout`):a(`common:markdownMessage.revealLocalPathFailed`,{path:f.path}),n=e instanceof Error?e.message:String(e);console.error(`[markdown] 无法在文件管理器中显示本地路径。`,e),l(`${t} (${n})`),J(t,`error`)}finally{s(!1)}};return(0,K.jsxs)(K.Fragment,{children:[e?(0,K.jsx)(`a`,{className:h(`markdown-link`,n),href:`#`,"data-local-path":f.path,title:t,"aria-busy":o||void 0,onClick:e=>{e.preventDefault(),o||r()},children:d}):(0,K.jsx)(`button`,{type:`button`,className:h(`markdown-link inline cursor-pointer border-0 bg-transparent p-0 [font:inherit]`,n),"data-local-path":f.path,title:t,disabled:o,"aria-busy":o||void 0,onClick:()=>void r(),children:d}),c&&(0,K.jsxs)(`span`,{role:`alert`,className:`ml-2 text-sm text-destructive`,children:[c,` `,(0,K.jsx)(`button`,{type:`button`,className:`cursor-pointer underline underline-offset-2`,onClick:()=>{Z(f.path).then(()=>J(a(`common:markdownMessage.copied`),`info`),()=>J(a(`common:markdownMessage.copyPathFailed`),`error`))},children:a(`common:markdownMessage.copyPath`)})]})]})}return(0,K.jsx)(`a`,{...i,className:h(`markdown-link`,n),href:r,target:`_blank`,rel:`noopener noreferrer`,children:d})}function je({node:e,...t}){return(0,K.jsx)(`img`,{loading:`lazy`,...t})}function Me({node:e,...t}){return(0,K.jsx)(`strong`,{...t})}function Ne({node:e,...t}){return(0,K.jsx)(`table`,{...t})}function Q({source:e}){let{t}=m(),[n,r]=(0,g.useState)(!1),i=async()=>{try{await Z(e),r(!0),window.setTimeout(()=>r(!1),1800)}catch{r(!1)}},a=t(n?`common:markdownMessage.copied`:`common:markdownMessage.copyCode`);return(0,K.jsx)(ne,{type:`button`,variant:`ghost`,size:`icon-sm`,className:h(`size-[26px] text-[var(--code-toolbar-text)] opacity-0 transition-opacity duration-(--d-fast) hover:bg-surface-hover hover:text-foreground focus-visible:opacity-100 [[data-streamdown=code-block]:hover_&]:opacity-100 [@media(hover:none)]:opacity-100 max-[650px]:size-11 max-[650px]:opacity-100 pointer-coarse:size-11 pointer-coarse:opacity-100`,n&&`opacity-100`),"data-streamdown":`code-block-copy-button`,onClick:i,"aria-label":a,title:a,children:n?(0,K.jsx)(ee,{size:14,className:`text-success`}):(0,K.jsx)(te,{size:14})})}function Pe({language:e,source:t,file:n}){return(0,K.jsxs)(`div`,{className:`my-4 flex w-full flex-col gap-2 rounded-xl border border-border bg-sidebar p-2`,"data-incomplete":`true`,"data-language":e,"data-streamdown":`code-block`,style:{contentVisibility:`auto`,containIntrinsicSize:`auto 200px`},children:[(0,K.jsxs)(`div`,{className:`flex h-8 items-center justify-between text-muted-foreground text-xs`,"data-language":e,"data-streamdown":`code-block-header`,children:[(0,K.jsx)(`span`,{className:`ml-1 font-mono lowercase`,children:e}),(0,K.jsxs)(`span`,{className:`flex min-w-0 items-center`,children:[n&&(0,K.jsx)(X,{file:n}),(0,K.jsx)(Q,{source:t})]})]}),(0,K.jsx)(`div`,{className:`overflow-x-auto rounded-md border border-border bg-background p-4 text-sm`,"data-language":e,"data-streamdown":`code-block-body`,children:(0,K.jsx)(`pre`,{className:`bg-transparent`,children:(0,K.jsx)(`code`,{children:t.split(`
|
|
2
|
+
import{a as e}from"./rolldown-runtime-B0Z9INg1.js";import{h as t}from"./vendor-router-CSN_DGvx.js";import{n,t as r}from"./vendor-markdown-plugins-CT5L3KA9.js";import{i,r as a}from"./vendor-react-DwNgTV1j.js";import{a as o,i as s,n as c,r as l,t as u}from"./vendor-markdown-CT6Z4fh8.js";import{n as d,r as f,t as p}from"./vendor-shiki-runtime-DM7fm4Bl.js";import{t as m}from"./use-i18n-CrMP8KP1.js";import{t as ee}from"./check-2vYc6QaP.js";import{t as te}from"./copy-DHmIFc52.js";import{t as h}from"./utils-C8uzG5AZ.js";import{t as ne}from"./button-CCcCN8tE.js";import{t as re}from"./route-context-DvWDul4T.js";var g=e(i(),1),_=[`github-dark`,`github-dark`],ie=150,ae=new Set([`text`,`txt`,`plain`,`plaintext`]),v=new Map;for(let e of d){v.set(e.id,e.id);for(let t of e.aliases??[])v.set(t,e.id)}function y(e){return typeof e==`string`?e:e.name??`custom`}function oe(e){let t=String(e||``).trim().toLowerCase();return v.get(t)??`text`}function se(e,t,n){return`${t}:${y(n[0])}:${y(n[1])}:${e.length}:${e.slice(0,64)}:${e.slice(-64)}`}var b=new Map;function x(e){let t=b.get(e);return t&&(b.delete(e),b.set(e,t)),t}function ce(e,t){for(b.delete(e),b.set(e,t);b.size>ie;){let e=b.keys().next().value;if(e===void 0)break;b.delete(e)}}var S=null,C=new Map;function w(){return S??=f({themes:[..._],langs:[],engine:p({forgiving:!0})}),S}function T(e,t){if(ae.has(t)||e.getLoadedLanguages().includes(t))return Promise.resolve();let n=d.find(e=>e.id===t);if(!n)return Promise.resolve();let r=C.get(t);return r||(r=e.loadLanguage(()=>n.import().then(e=>e.default)).catch(e=>{throw C.delete(t),e}),C.set(t,r)),r}var E=new Map;function le(){return{name:`shiki`,type:`code-highlighter`,supportsLanguage(e){return v.has(String(e||``).trim().toLowerCase())},getSupportedLanguages(){return d.map(e=>e.id)},getThemes(){return _},highlight({code:e,language:t,themes:n},r){let i=oe(t),a=se(e,i,n),o=x(a);if(o)return o;let s=E.get(a),c=!!s;return s||(s=new Set,E.set(a,s)),r&&s.add(r),c||(async()=>{try{let t=await w();await T(t,i);let r=t.getLoadedLanguages().includes(i)?i:`text`,o=t.codeToTokens(e,{lang:r,themes:{light:n[0],dark:n[1]}});ce(a,o);let s=E.get(a);if(E.delete(a),s)for(let e of s)e(o)}catch(e){E.delete(a),console.error(`[streamdown] Failed to highlight code:`,e)}})(),null}}}var ue=le(),de={cjk:n,code:ue,math:r};function fe(){let e=``,t=[];return n=>{if(n===e)return t;if(t.length>0&&n.startsWith(e)){let r=t[t.length-1],i=e.length-r.length;if(i<0||e.slice(i)!==r)return e=n,t=l(n),t;let a=l(n.slice(i)),o=[...t.slice(0,-1),...a];return e=n,t=o,o}return e=n,t=l(n),t}}var pe=100,D=new Map;function me(e){let t=D.get(e);if(t)return D.delete(e),D.set(e,t),t;let n=l(e);if(D.set(e,n),D.size>pe){let e=D.keys().next().value;e!==void 0&&D.delete(e)}return n}var O=null;function he(){return O??=t(()=>import(`./vendor-markdown-plugins-CT5L3KA9.js`).then(e=>e.O),__vite__mapDeps([0,1,2,3,4,5])),O}function ge(e){return/\$\$|\\\(|\\\[|\$[^\n$]+\$|\\begin\{/.test(e)}var k=160;function A(e,t){let n=String(e||``).match(/language-[\w-]+:(\S+)/)?.[1]||``,r=typeof t==`string`?t:``,i=r.match(/(?:^|\s)(?:title|filename|file)=(?:"([^"]+)"|'([^']+)'|(\S+))/),a=r.split(/\s+/).find(e=>e&&!e.includes(`=`)&&!/^[{[]/.test(e)&&/[/.]/.test(e));return[...(n||i?.[1]||i?.[2]||i?.[3]||a||``).replace(/[\u0000-\u001f\u007f]/g,``).trim()].slice(0,k).join(``)}var j=`https://local-file.pisper.invalid`,M=`/reveal`;function N(e){try{return decodeURIComponent(e)}catch{return e}}function P(e){return[...e].some(e=>{let t=e.codePointAt(0)||0;return t<32||t===127})}function F(e){return/^(?:[A-Za-z]:[\\/]|\/|\\\\)/.test(e)}function I(e){let t=e.match(/:(\d+)(?::(\d+))?$/);if(!t)return{path:e};let n={path:e.slice(0,-t[0].length),line:Number(t[1])};return t[2]&&(n.column=Number(t[2])),n}function L(e){try{let t=new URL(e);if(t.protocol!==`file:`||t.username||t.password||t.port)return null;let n=t.pathname;return t.hostname&&t.hostname!==`localhost`?`//${t.hostname}${n}`:/^\/[A-Za-z]:[\\/]/.test(n)?n.slice(1):n}catch{return null}}function _e(e){return!e||/^[\\/]/.test(e)||/^[A-Za-z][A-Za-z0-9+.-]*:/.test(e)?!1:!e.split(/[\\/]/).includes(`..`)}function ve(e,t){let n=e.replace(/[\\/]+$/,``);if(!n)return e.startsWith(`/`)?`/`+t.replace(/^(?:\.\/)+/,``):``;let r=e.includes(`\\`)?`\\`:`/`,i=t.replace(/^[\\/]+/,``).replace(/^(?:\.[/])+/g,``);return n+r+i}function R(e,t){let n=e.trim();if(!n||P(n))return null;let r=/^file:/i.test(n);if(!r&&/[?#]/.test(n))return null;let i=r?L(n):n;if(!i)return null;let a=I(i),o=N(a.path);if(!o||P(o))return null;let s=/^\/[A-Za-z]:[\\/]/.test(o)?o.slice(1):o;if(F(s))return{...a,path:s};if(/^[A-Za-z][A-Za-z0-9+.-]*:/.test(i)&&!a.path.includes(`.`)||!t)return null;let c=t.trim();if(!F(c)||P(c)||!_e(o))return null;let l=ve(c,o);return F(l)?{...a,path:l}:null}function z(e){let t=new URL(M,j);return t.searchParams.set(`path`,e.path),e.line!==void 0&&t.searchParams.set(`line`,String(e.line)),e.column!==void 0&&t.searchParams.set(`column`,String(e.column)),t.href}function ye(e){try{let t=new URL(e);if(t.origin!==j||t.pathname!==M)return null;let n=t.searchParams.get(`path`)||``;if(!F(n)||P(n))return null;let r=Number(t.searchParams.get(`line`)),i=Number(t.searchParams.get(`column`)),a={path:n};return Number.isSafeInteger(r)&&r>0&&(a.line=r),Number.isSafeInteger(i)&&i>0&&(a.column=i),a}catch{return null}}function B(e){return/\.html?$/i.test(e)}var be=/(?:[A-Za-z]:[\\/]|\\\\|\/)[^\s<>"'`|*?()()【】「」《》,。;:、!?,;:]+?\.html?(?![\w-]|\.\w)|(?:\.[\\/])?[A-Za-z0-9_-][\w.-]*(?:[\\/][\w.-]+)*\.html?(?![\w-]|\.\w)/gi,xe=/[\w./\\-]/,V=/^[\w-]+(?:\.[\w-]+)+[\\/]/;function H(e,t){let n=R(e,t);return n&&B(n.path)?z({path:n.path}):null}function Se(e,t){let n=e.trim();return/^https?:\/\/\S+$/i.test(n)?n:/[<>"|*]/.test(n)||/\s/.test(n)&&!/^(?:[A-Za-z]:[\\/]|\/|\\\\)/.test(n)?null:H(n,t)}function Ce(e,t){let n=e.value||``,r=[],i=0;for(let e of n.matchAll(be)){let a=e.index>0&&xe.test(n[e.index-1])||V.test(e[0])?null:H(e[0],t);a&&(e.index>i&&r.push({type:`text`,value:n.slice(i,e.index)}),r.push({type:`link`,url:a,children:[{type:`text`,value:e[0]}]}),i=e.index+e[0].length)}return r.length?(i<n.length&&r.push({type:`text`,value:n.slice(i)}),r):[e]}function we(e){return t=>{let n=t=>{t.children&&=t.children.flatMap(t=>{if(t.type===`link`||t.type===`linkReference`)return[t];if(t.type===`text`)return Ce(t,e);if(t.type===`inlineCode`){let n=Se(t.value||``,e);return n?[{type:`link`,url:n,children:[t]}]:[t]}return n(t),[t]})};n(t)}}function Te(e){return t=>{let n=t=>{if(t.type===`link`&&typeof t.url==`string`){let n=R(t.url,e);n&&(t.url=z(n))}for(let e of t.children||[])n(e)};n(t)}}async function U(e){let t=await fetch(`/api/desktop/reveal-path`,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify({path:e})}),n={};try{n=await t.json()}catch{}if(!t.ok)throw Error(n.error||`HTTP ${t.status}`);return n.revealed===!0}var W=class extends Error{reason;constructor(e){super(`local-reveal:${e}`),this.reason=e,this.name=`LocalPathRevealError`}};async function G(e,t){if(typeof t!=`function`)throw new W(`unavailable`);let n;try{if(await Promise.race([Promise.resolve().then(()=>t(e)),new Promise((e,t)=>{n=setTimeout(()=>t(new W(`timeout`)),8e3)})])!==!0)throw new W(`failed`)}finally{clearTimeout(n)}}var K=a(),q=(0,g.createContext)(null),Ee={a:Ae,code:Fe,img:je,strong:Me,table:Ne},De=!1,Oe={linkMode:`text-only`};function J(e,t){window.dispatchEvent(new CustomEvent(re,{detail:{message:e,tone:t}}))}function Y(e){return typeof e==`string`||typeof e==`number`?String(e):Array.isArray(e)?e.map(Y).join(``):(0,g.isValidElement)(e)?Y(e.props.children):``}function ke(e){return String(e||``).match(/language-([\w-]+)/)?.[1]||`text`}function X({file:e}){return(0,K.jsx)(`span`,{className:`max-w-[min(360px,45vw)] truncate px-1.5 font-mono text-xs text-content-secondary`,title:e,"data-code-file":!0,children:e})}function Z(e){if(navigator.clipboard?.writeText)return navigator.clipboard.writeText(e);let t=document.createElement(`textarea`);return t.value=e,t.setAttribute(`readonly`,``),t.style.position=`fixed`,t.style.opacity=`0`,document.body.append(t),t.select(),document.execCommand(`copy`),t.remove(),Promise.resolve()}function Ae({children:e,node:t,className:n,href:r,...i}){let{t:a}=m(),[o,s]=(0,g.useState)(!1),[c,l]=(0,g.useState)(``),u=(0,g.useContext)(q),d=Y(e).trim()?e:r;if(!r)return(0,K.jsx)(`span`,{className:h(`markdown-link`,n),children:d});let f=ye(r);if(f){let e=!!u&&B(f.path),t=a(e?`common:markdownMessage.openHtmlPreview`:`common:markdownMessage.revealLocalPath`,{path:f.path}),r=async()=>{if(s(!0),l(``),e)try{await u?.(f.path),s(!1);return}catch{}try{await G(f.path,U),J(a(`common:markdownMessage.revealLocalPathOk`,{path:f.path}),`info`)}catch(e){let t=e instanceof W&&e.reason===`unavailable`?a(`common:markdownMessage.revealLocalPathUnavailable`):e instanceof W&&e.reason===`timeout`?a(`common:markdownMessage.revealLocalPathTimeout`):a(`common:markdownMessage.revealLocalPathFailed`,{path:f.path}),n=e instanceof Error?e.message:String(e);console.error(`[markdown] 无法在文件管理器中显示本地路径。`,e),l(`${t} (${n})`),J(t,`error`)}finally{s(!1)}};return(0,K.jsxs)(K.Fragment,{children:[e?(0,K.jsx)(`a`,{className:h(`markdown-link`,n),href:`#`,"data-local-path":f.path,title:t,"aria-busy":o||void 0,onClick:e=>{e.preventDefault(),o||r()},children:d}):(0,K.jsx)(`button`,{type:`button`,className:h(`markdown-link inline cursor-pointer border-0 bg-transparent p-0 [font:inherit]`,n),"data-local-path":f.path,title:t,disabled:o,"aria-busy":o||void 0,onClick:()=>void r(),children:d}),c&&(0,K.jsxs)(`span`,{role:`alert`,className:`ml-2 text-sm text-destructive`,children:[c,` `,(0,K.jsx)(`button`,{type:`button`,className:`cursor-pointer underline underline-offset-2`,onClick:()=>{Z(f.path).then(()=>J(a(`common:markdownMessage.copied`),`info`),()=>J(a(`common:markdownMessage.copyPathFailed`),`error`))},children:a(`common:markdownMessage.copyPath`)})]})]})}return(0,K.jsx)(`a`,{...i,className:h(`markdown-link`,n),href:r,target:`_blank`,rel:`noopener noreferrer`,children:d})}function je({node:e,...t}){return(0,K.jsx)(`img`,{loading:`lazy`,...t})}function Me({node:e,...t}){return(0,K.jsx)(`strong`,{...t})}function Ne({node:e,...t}){return(0,K.jsx)(`table`,{...t})}function Q({source:e}){let{t}=m(),[n,r]=(0,g.useState)(!1),i=async()=>{try{await Z(e),r(!0),window.setTimeout(()=>r(!1),1800)}catch{r(!1)}},a=t(n?`common:markdownMessage.copied`:`common:markdownMessage.copyCode`);return(0,K.jsx)(ne,{type:`button`,variant:`ghost`,size:`icon-sm`,className:h(`size-[26px] text-[var(--code-toolbar-text)] opacity-0 transition-opacity duration-(--d-fast) hover:bg-surface-hover hover:text-foreground focus-visible:opacity-100 [[data-streamdown=code-block]:hover_&]:opacity-100 [@media(hover:none)]:opacity-100 max-[650px]:size-11 max-[650px]:opacity-100 pointer-coarse:size-11 pointer-coarse:opacity-100`,n&&`opacity-100`),"data-streamdown":`code-block-copy-button`,onClick:i,"aria-label":a,title:a,children:n?(0,K.jsx)(ee,{size:14,className:`text-success`}):(0,K.jsx)(te,{size:14})})}function Pe({language:e,source:t,file:n}){return(0,K.jsxs)(`div`,{className:`my-4 flex w-full flex-col gap-2 rounded-xl border border-border bg-sidebar p-2`,"data-incomplete":`true`,"data-language":e,"data-streamdown":`code-block`,style:{contentVisibility:`auto`,containIntrinsicSize:`auto 200px`},children:[(0,K.jsxs)(`div`,{className:`flex h-8 items-center justify-between text-muted-foreground text-xs`,"data-language":e,"data-streamdown":`code-block-header`,children:[(0,K.jsx)(`span`,{className:`ml-1 font-mono lowercase`,children:e}),(0,K.jsxs)(`span`,{className:`flex min-w-0 items-center`,children:[n&&(0,K.jsx)(X,{file:n}),(0,K.jsx)(Q,{source:t})]})]}),(0,K.jsx)(`div`,{className:`overflow-x-auto rounded-md border border-border bg-background p-4 text-sm`,"data-language":e,"data-streamdown":`code-block-body`,children:(0,K.jsx)(`pre`,{className:`bg-transparent`,children:(0,K.jsx)(`code`,{children:t.split(`
|
|
3
3
|
`).map((e,t)=>(0,K.jsx)(`span`,{children:e},t))})})})]})}function Fe({children:e,className:t,node:n,metastring:r,...i}){let a=o();if(!Object.hasOwn(i,`data-block`))return(0,K.jsx)(`code`,{className:t||``,...i,children:e});let c=Y(e).replace(/\n$/,``),l=ke(t),u=A(t,r);return a?(0,K.jsx)(Pe,{language:l,source:c,file:u}):(0,K.jsxs)(s,{code:c,isIncomplete:a,language:l,lineNumbers:!1,children:[u&&(0,K.jsx)(X,{file:u}),(0,K.jsx)(Q,{source:c})]})}function Ie({children:e,className:t,streaming:n=!1,cwd:r,onOpenLocalHtml:i}){let a=String(e??``),o=(0,g.useMemo)(()=>[...Object.values(u),[Te,r||void 0],...i?[[we,r||void 0]]:[]],[r,i]),s=(0,g.useMemo)(()=>ge(a),[a]);(0,g.useEffect)(()=>{s&&he()},[s]);let[l]=(0,g.useState)(()=>fe()),d=n?l:me;return(0,K.jsx)(`div`,{className:h(`markdown-body`,n&&`markdown-streaming`,t),"aria-busy":n||void 0,children:(0,K.jsx)(q.Provider,{value:i||null,children:(0,K.jsx)(c,{className:`markdown-content space-y-0`,components:Ee,controls:De,isAnimating:n,lineNumbers:!1,mode:`streaming`,parseMarkdownIntoBlocksFn:d,plugins:de,remarkPlugins:o,remend:Oe,children:a})})})}var $=(0,g.memo)(Ie);$.displayName=`MarkdownMessage`;export{U as i,W as n,G as r,$ as t};
|