@vantran-se/openchamber-web 2.4.0 → 2.4.1
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/dist/assets/{AboutDialog-Dh2Z6Rpo.js → AboutDialog-BItSBkkK.js} +1 -1
- package/dist/assets/{ArchiveView-31PVMzC2.js → ArchiveView-CEGi3y1V.js} +1 -1
- package/dist/assets/{ChangedPathLabel-CbXts83B.js → ChangedPathLabel-CQNGnF-T.js} +1 -1
- package/dist/assets/{CommandPalette-DzOIUvyX.js → CommandPalette-DWX1HV4m.js} +1 -1
- package/dist/assets/{DiffView-C6UN20mH.js → DiffView-Be1Xoy_F.js} +1 -1
- package/dist/assets/{FilesView-V9SCRZ9-.js → FilesView-DONPk8-K.js} +1 -1
- package/dist/assets/{GitView-RJHLEROE.js → GitView-D10y-u46.js} +1 -1
- package/dist/assets/{GuestSurfacePane-C9dmI3Di.js → GuestSurfacePane-Cot0OO7x.js} +1 -1
- package/dist/assets/{HelpDialog-DyGX9_8h.js → HelpDialog-Bw836_tH.js} +1 -1
- package/dist/assets/{InProgressOperationBanner-B3oEOw3O.js → InProgressOperationBanner-saAihIub.js} +1 -1
- package/dist/assets/{IntegrationsCatalogView-CwBk0nb-.js → IntegrationsCatalogView-BtdMeTHf.js} +1 -1
- package/dist/assets/{JsonTreeView-BnV3bUfi.js → JsonTreeView-BOQC0uTM.js} +1 -1
- package/dist/assets/{MarkdownRendererImpl-DwFPVpAe.js → MarkdownRendererImpl-CuZntPVf.js} +1 -1
- package/dist/assets/{MemoryDebugPanel-DwNkGEQI.js → MemoryDebugPanel-BZgSuf-z.js} +1 -1
- package/dist/assets/{OnboardingScreen-CLGQ5tGv.js → OnboardingScreen-Bx2h2w69.js} +1 -1
- package/dist/assets/{OpenCodeStatusDialog-D7ZnJOuR.js → OpenCodeStatusDialog-N9JgIC1p.js} +1 -1
- package/dist/assets/{PatchDiff-BriSysUP.js → PatchDiff-Ca_Ci2CX.js} +1 -1
- package/dist/assets/{PierreDiffViewer-ToKfUZsI.js → PierreDiffViewer-Ck0P8Q2W.js} +1 -1
- package/dist/assets/{PlanView-YOnwcP8k.js → PlanView-dx70wKWR.js} +1 -1
- package/dist/assets/{ProjectActionsDialog-C3u320eT.js → ProjectActionsDialog-BS20dYCJ.js} +1 -1
- package/dist/assets/{PullRequestComparisonSelector-Cvng5foj.js → PullRequestComparisonSelector-DOW9_VlK.js} +1 -1
- package/dist/assets/{RunOverview-CX4EWbX4.js → RunOverview-DtxjzGnX.js} +1 -1
- package/dist/assets/{ScheduledTasksDialog-Cg0llpjw.js → ScheduledTasksDialog-HcypGtky.js} +1 -1
- package/dist/assets/{SettingsView-C5MS7v4D.js → SettingsView-IBrGwDoM.js} +1 -1
- package/dist/assets/{SettingsWindow-ZCLlBZBD.js → SettingsWindow-Bugr9Hmx.js} +1 -1
- package/dist/assets/{SourceBoardView-DeQ_gjii.js → SourceBoardView-BD5rmib8.js} +1 -1
- package/dist/assets/{SpaceAccessDialog-MzV-zdo9.js → SpaceAccessDialog-BYhp5gfB.js} +1 -1
- package/dist/assets/{SpaceApplyDialog-DDxyMT0_.js → SpaceApplyDialog-CC0axZal.js} +1 -1
- package/dist/assets/{SpaceRow-sK_fpiHu.js → SpaceRow-DDWTQgfP.js} +1 -1
- package/dist/assets/{SpaceSetupOutput-DXkmiL2Y.js → SpaceSetupOutput-BqurG7V4.js} +1 -1
- package/dist/assets/{SpacesView-DZNEvbJ7.js → SpacesView-Bcbb9aXY.js} +1 -1
- package/dist/assets/{SubmoduleDiffSummary-E0GcoYiO.js → SubmoduleDiffSummary-BS1PSa4l.js} +1 -1
- package/dist/assets/{ToolOutputDialog-CKl9iGaM.js → ToolOutputDialog-DXWQ17Fv.js} +1 -1
- package/dist/assets/{ToolPartDiffPreview-CRANc7sQ.js → ToolPartDiffPreview-DXRs6cSg.js} +1 -1
- package/dist/assets/{UsageStatsView-np-Qgyn0.js → UsageStatsView-DFVydqMY.js} +1 -1
- package/dist/assets/{Virtualizer-CgLU97RO.js → Virtualizer-B8rX50qD.js} +1 -1
- package/dist/assets/{WalkthroughView-oJlQ42QA.js → WalkthroughView-CECS5lDs.js} +1 -1
- package/dist/assets/{WorktreesView-XC8e1Gxk.js → WorktreesView-FH0uzPQG.js} +1 -1
- package/dist/assets/{appThemeRegistry-DsBAd3cG.js → appThemeRegistry-CnS_OWEL.js} +1 -1
- package/dist/assets/{computeVirtualFileMetrics-tFBUWYu1.js → computeVirtualFileMetrics-rZJ-MSfY.js} +1 -1
- package/dist/assets/{decorate-N1FIdwTF.js → decorate-Bbbyq0tX.js} +1 -1
- package/dist/assets/{flexokiTheme-qbTuJgIP.js → flexokiTheme-DECIbITo.js} +1 -1
- package/dist/assets/{index-DppcIt7q.js → index-DElZNtel.js} +1 -1
- package/dist/assets/{initializeSharedPreferences-Cfgz92Al.js → initializeSharedPreferences-C5qncsHs.js} +1 -1
- package/dist/assets/{install-iZ64WEBd.js → install-D-H6uk7D.js} +1 -1
- package/dist/assets/{isDiffPlainText-DxiX2X7Q.js → isDiffPlainText-DMFSMXcK.js} +1 -1
- package/dist/assets/{isFilePlainText-y0Pch-hF.js → isFilePlainText-BQGSJxcX.js} +1 -1
- package/dist/assets/{main-BggWUmia.js → main-CcnDurk6.js} +4 -4
- package/dist/assets/{main-CcAbEyCv.js → main-DMdUGpFx.js} +2 -2
- package/dist/assets/{markdownCore-P3Pd8JpY.js → markdownCore-BwFkWhmZ.js} +1 -1
- package/dist/assets/{miniChat-iJHNCDmk.js → miniChat-B8DW3cmv.js} +2 -2
- package/dist/assets/{mobile-C1tleU1e.js → mobile-Caqsx1Op.js} +2 -2
- package/dist/assets/{moveWorkspacePath-CUn1SV66.js → moveWorkspacePath-By4gjwmW.js} +1 -1
- package/dist/assets/{parseDiffFromFile-Phw3Q2Mh.js → parseDiffFromFile-C9ASoy7R.js} +1 -1
- package/dist/assets/{pierreDiffTint-J7FoDbyq.js → pierreDiffTint-IfgQ6oty.js} +1 -1
- package/dist/assets/{relocateRestoredSession-Ch0D1a0g.js → relocateRestoredSession-DBWTClOj.js} +1 -1
- package/dist/assets/{renderElectronMiniChatApp-QPvTS_hc.js → renderElectronMiniChatApp-C5irgP-w.js} +2 -2
- package/dist/assets/{renderMobileApp-Ci_S1TJm.js → renderMobileApp-DnyN_ARh.js} +3 -3
- package/dist/assets/{restartOpenCode-BE2HLPm1.js → restartOpenCode-VU-OEAvZ.js} +1 -1
- package/dist/assets/{runtimeEndpointReset-DcZoNIpr.js → runtimeEndpointReset-BJUtkqal.js} +3 -3
- package/dist/assets/{selectionMarkdown-Dw3ME6dV.js → selectionMarkdown-DV_HvvmZ.js} +1 -1
- package/dist/assets/{shikiHighlight-3Hs_1ia3.js → shikiHighlight-BKmAuapa.js} +1 -1
- package/dist/assets/{space-apply-CvoK3fqX.js → space-apply-Br_BRuH8.js} +1 -1
- package/dist/assets/{space-close-B_kflt9L.js → space-close-D_1iLJrX.js} +1 -1
- package/dist/assets/{spaceNetwork-ClSGQtiE.js → spaceNetwork-Dcj-qJy-.js} +1 -1
- package/dist/assets/{textMateThemeFromAppTheme-kAREvDjp.js → textMateThemeFromAppTheme-Bye_bpEL.js} +1 -1
- package/dist/assets/{useAppFontEffects-BZrjCfFw.js → useAppFontEffects-d9vsRNKm.js} +13 -13
- package/dist/assets/{useCallableModelProviders-CpxZpJTR.js → useCallableModelProviders-8CrUkERW.js} +1 -1
- package/dist/assets/{useDiffFindSurface-D6svD0Z1.js → useDiffFindSurface-sw5jZ-9V.js} +1 -1
- package/dist/assets/{useInlineCommentController-CV8dwlO7.js → useInlineCommentController-Cw5IRM5Y.js} +1 -1
- package/dist/assets/{useMarkdownLocalAssets-D0S_fJEu.js → useMarkdownLocalAssets-D3a1j44d.js} +1 -1
- package/dist/assets/{useRootScrollLock-5OfQ_8IH.js → useRootScrollLock-BWsNuapq.js} +2 -2
- package/dist/assets/{useWalkthroughReview-CxCd3Z0I.js → useWalkthroughReview-D7I1H6_J.js} +1 -1
- package/dist/assets/{vendor-codemirror-language-data-DsRKCbVv.js → vendor-codemirror-language-data-DP_Bh3S8.js} +2 -2
- package/dist/index.html +1 -1
- package/dist/mini-chat.html +1 -1
- package/dist/mobile.html +1 -1
- package/package.json +1 -1
- package/server/index.js +2 -1
- package/server/lib/guests/service-registry.js +3 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{R as r,j as n,f as we,r as Mt,c as nu}from"./vendor-react-BUCujlKS.js";import{aK as su,k as hr,ae as Jo,b6 as ru,av as iu,b7 as au,b8 as ou,ap as lu,at as cu,ao as Oe,a5 as tt,u as Be,b9 as uu,b5 as pr,t as vo,ba as wo,bb as ui,bc as du,bd as fu,b4 as Zo,b3 as mu,be as hu,ac as pu,bf as gu,bg as _t,bh as vu}from"./katex.min-u4DtE8E5.js";import{u as $e,y as xs,B as I,N as q,az as wu,ay as xu,as as bu,at as yu,av as ju,I as E,gh as Nu,gi as yi,gj as Su,bl as Ni,bm as Cu,gk as Fu,ef as ku,gl as Eu,dp as Bn,el as gr,gm as Ru,gn as Tu,b7 as Mu,aG as Pu,aF as Vu,aE as Du,fZ as zu,aD as di,b5 as Lu,d8 as Au,A as H,fD as Iu,fC as Ou,aa as xo,go as Bu,aI as $u,dr as Wu,gp as cr,a1 as bo,bT as fi,gq as ps,P as Uu,a5 as Ku,gr as gs,dD as _u,gs as mi,gt as yo,gu as jo,gv as No,gw as So,gx as Gu,gy as Hu,gz as qu,df as Xu,gA as Yu,aK as Ju,gB as Zu,dq as Co,gC as Qu,t as Qo,q as el,D as tl,l as nl,F as sl,o as rl,aR as vr,aS as wr,aT as xr,aU as On,n as hi,aV as ur,aW as pi,V as Gt,W as Ht,X as qt,es as il,am as ed,ap as td,bg as al,gD as nd,gE as sd,gF as rd,ep as ol,eo as ll,aA as br,eq as id,gG as ad,gH as od,gI as ld,gJ as cd,gK as ud,gL as dd,gM as fd,gN as md}from"./useAppFontEffects-BZrjCfFw.js";import{s as hd,c as Fo,P as Ln,C as pd}from"./flexokiTheme-qbTuJgIP.js";import{a as cl,E as gd,i as ul,S as dl,R as ji,l as vd}from"./vendor-codemirror-state-Dek9sMtw.js";import{E as nt,k as Si,f as wd,j as xd,m as bd,g as yd,V as jd,G as Nd}from"./vendor-codemirror-view-B66jUSmE.js";import{v as Sd,z as Cd,A as Fd,B as kd}from"./vendor-codemirror-language-DyL0aCoH.js";import{D as Ed,a as Rd,m as Td,b as Md,G as Pd}from"./moveWorkspacePath-CUn1SV66.js";import{a9 as Vd,$ as Dd,aa as zd,ab as Ld,Q as Ad}from"./runtimeEndpointReset-DcZoNIpr.js";import{c as Id,b as Od,u as ko,F as Eo}from"./useMarkdownLocalAssets-D0S_fJEu.js";import{V as Bd,J as $d,F as Wd}from"./JsonTreeView-BnV3bUfi.js";import{s as Ud}from"./shikiHighlight-3Hs_1ia3.js";import{ensurePierreThemeRegistered as Ro,getResolvedShikiTheme as Kd}from"./appThemeRegistry-DsBAd3cG.js";import{V as _d,W as Gd}from"./Virtualizer-BP6uuKe_.js";import{V as Hd}from"./Virtualizer-CgLU97RO.js";import{D as qd}from"./vendor-react-drawio-Ct3Q0DsD.js";import{e as Xd,h as Yd}from"./vendor-codemirror-search-BKAwkhkm.js";import{a as Jd,b as Zd}from"./vendor-codemirror-autocomplete-CIqXJolH.js";import{p as Qd}from"./parseDiffFromFile-Phw3Q2Mh.js";import{o as ef,s as tf}from"./vendor-zod-DDir2TeQ.js";import{u as nf,n as sf}from"./useInlineCommentController-CV8dwlO7.js";import{c as rf}from"./scheduledTasksApi-FZ9stPNl.js";import"./vendor-scheduler-7OC5HNn7.js";import"./vendor-vite-runtime-DD1OZmLC.js";import"./vendor-zustand-BAGL70zf.js";import"./vendor-opencode-client-h8RufjAw.js";import"./vendor-base-ui-CPKyhvxM.js";import"./vendor-floating-ui-utils-D6FqdtJt.js";import"./vendor-floating-ui-dom-BTvzWks8.js";import"./vendor-floating-ui-core-PuGzNPnN.js";import"./vendor-floating-ui-react-dom-DxYCWdHj.js";import"./vendor-use-sync-external-store-D6wYuSt-.js";import"./vendor-simplewebauthn-browser-VDA66rT_.js";import"./vendor-class-variance-authority-5VPnzWs2.js";import"./vendor-clsx-B-dksMZM.js";import"./vendor-dnd-kit-core-BZknOX2w.js";import"./vendor-dnd-kit-utilities-B_MdXhJC.js";import"./vendor-dnd-kit-accessibility-BHxJPORy.js";import"./vendor-dnd-kit-sortable-CsEagZ81.js";import"./vendor-tanstack-react-virtual-Bmi0tTrf.js";import"./vendor-tanstack-virtual-core-CdGDGrnp.js";import"./vendor-framer-motion-DxDVhOLc.js";import"./vendor-motion-dom-HXPOMxb7.js";import"./vendor-motion-utils-BGh8QBgx.js";import"./vendor-codemirror-commands-dar6chwA.js";import"./vendor-lezer-common-B3-cUCR_.js";import"./vendor-lezer-highlight-CDMHUZ74.js";import"./vendor-codemirror-lang-javascript-Cem6LjJ8.js";import"./vendor-lezer-javascript-D7Tj24ot.js";import"./vendor-lezer-lr-bhwg1HMg.js";import"./vendor-style-mod-NZ5MEPvj.js";import"./vendor-codemirror-streamparser-CmlTsbN2.js";import"./vendor-marijn-find-cluster-break-DXwl3gUT.js";import"./vendor-w3c-keyname-Vcq4gwWv.js";import"./vendor-crelt-C8TCjufn.js";import"./vendor-codemirror-lang-json-C9rLLO0q.js";import"./vendor-lezer-json-Iaex0UN-.js";import"./vendor-codemirror-lang-css-9qjxcVkg.js";import"./vendor-lezer-css-C5xB6jxd.js";import"./vendor-codemirror-lang-html-D7VQUxeE.js";import"./vendor-lezer-html-C0I1p52t.js";import"./vendor-codemirror-lang-markdown-Cikh4w2I.js";import"./vendor-lezer-markdown-C6g-d6P3.js";import"./vendor-codemirror-language-data-DsRKCbVv.js";import"./vendor-codemirror-lang-python-DVl8-2Op.js";import"./vendor-lezer-python-CvuFxeZl.js";import"./vendor-sonner-DFyL3AvE.js";import"./vendor-capacitor-core-B4EWRrHz.js";import"./vendor-cmdk-DgLInKvT.js";import"./vendor-radix-ui-react-dialog-B94Bt2qq.js";import"./vendor-radix-ui-primitive-Dc_FVRD7.js";import"./vendor-radix-ui-react-compose-refs-DcAh5WdT.js";import"./vendor-radix-ui-react-context-Czxm7Z62.js";import"./vendor-radix-ui-react-id-f5BLKEVw.js";import"./vendor-radix-ui-react-use-layout-effect-D_3IhJdJ.js";import"./vendor-radix-ui-react-use-controllable-state-BFT5YmkA.js";import"./vendor-radix-ui-react-dismissable-layer-D7kXcwgJ.js";import"./vendor-radix-ui-react-primitive-DhVoX9SD.js";import"./vendor-radix-ui-react-slot-BQgQOasS.js";import"./vendor-radix-ui-react-use-callback-ref-BZPnuXAC.js";import"./vendor-radix-ui-react-use-escape-keydown-oph88g-F.js";import"./vendor-radix-ui-react-focus-scope-CiaxW4dD.js";import"./vendor-radix-ui-react-portal-BMJYHWck.js";import"./vendor-radix-ui-react-presence-CNxf-uq4.js";import"./vendor-radix-ui-react-focus-guards-B6qJXYua.js";import"./vendor-react-remove-scroll-DO7dCTnK.js";import"./vendor-tslib-De9GV7Vy.js";import"./vendor-react-remove-scroll-bar-BcFYyj3E.js";import"./vendor-react-style-singleton-q6EMHnwf.js";import"./vendor-get-nonce-C-Z93AgS.js";import"./vendor-use-sidecar-zDC0RhA3.js";import"./vendor-use-callback-ref-D3RC8gqK.js";import"./vendor-aria-hidden-DvXkyWUv.js";import"./vendor-legendapp-list-D2O6oUGf.js";import"./vendor-tailwind-merge-CPcsbTWB.js";import"./vendor-fuse.js-Dw8P0qyA.js";import"./vendor-replit-codemirror-vim-CKWqK1yR.js";import"./vendor-replit-codemirror-vim-core-FHzKdNUS.js";import"./computeVirtualFileMetrics-tFBUWYu1.js";import"./vendor-shiki-Bbf2GEcE.js";import"./vendor-shikijs-core-CGM_jqPK.js";import"./vendor-shikijs-types-CPSbSeK6.js";import"./vendor-shikijs-vscode-textmate-BgLrS_2D.js";import"./vendor-hast-util-to-html-BKBhbTDb.js";import"./vendor-html-void-elements-CkdplsNl.js";import"./vendor-property-information-rJCbAzvX.js";import"./vendor-zwitch-C2o2j-tx.js";import"./vendor-stringify-entities-CsH1VEn9.js";import"./vendor-character-entities-legacy-BpoLgcEt.js";import"./vendor-character-entities-html4-D7taRCQ7.js";import"./vendor-ccount-c2V3InAJ.js";import"./vendor-comma-separated-tokens-D8TqSuIK.js";import"./vendor-space-separated-tokens-DD3iYX1K.js";import"./vendor-hast-util-whitespace-D4Wp6AEg.js";import"./vendor-shikijs-engine-oniguruma-DPWuIF1G.js";import"./themeResolver-yJ9XpNMI.js";import"./vendor-pierre-theming-Dgp7B_O4.js";import"./vendor-shikijs-engine-javascript-Cme4830A.js";import"./vendor-oniguruma-to-es-DLBnFDCE.js";import"./vendor-oniguruma-parser-C0D4_9rT.js";import"./vendor-regex-BBWcyTkg.js";import"./vendor-regex-utilities-2BQyy0xI.js";import"./vendor-regex-recursion-JU4mF-dD.js";import"./vendor-shikijs-transformers-CZWsLLKm.js";import"./isFilePlainText-y0Pch-hF.js";import"./vendor-strip-json-comments-5dJlOkP1.js";import"./textMateThemeFromAppTheme-kAREvDjp.js";import"./vendor-diff-C3JhlQdm.js";const af=(i,e)=>{if(!e)return null;const a=Number.parseInt(i.trim(),10);return!Number.isFinite(a)||a<1?null:Math.min(a,e.state.doc.lines)},To=(i,e)=>{const a=i.state.doc.lineAt(e.main.head);return{lineNumber:a.number,character:e.main.head-a.from+1,selection:e}},Mo=(i,e,a)=>{const s=i.state.doc.line(e),c=Math.max(1,Math.min(a,s.length+1)),d=s.from+c-1;i.dispatch({selection:cl.cursor(d),effects:nt.scrollIntoView(d,{y:"center"})})};function of({open:i,onOpenChange:e,viewRef:a,variant:s="overlay"}){const{t:c}=$e(),d=a.current,[g,f]=r.useState(""),p=r.useRef(null),j=r.useRef(!1),v=r.useRef(null),w=r.useRef(null),b=r.useMemo(()=>af(g,d),[g,d]);r.useEffect(()=>{!i||!d||(j.current=!1,p.current=To(d,d.state.selection),f(""))},[i,d]),r.useEffect(()=>{i&&window.requestAnimationFrame(()=>{w.current?.focus(),w.current?.select()})},[i]),r.useEffect(()=>{if(!(!i||!d||!p.current)){if(b===null){const{selection:C}=p.current;d.dispatch({selection:C,effects:nt.scrollIntoView(C.main.from,{y:"center"})});return}Mo(d,b,p.current.character)}},[b,i,d]);const N=r.useCallback(()=>{if(!d||j.current||!p.current)return;const{selection:C}=p.current;d.dispatch({selection:C,effects:nt.scrollIntoView(C.main.from,{y:"center"})})},[d]),R=r.useRef(i);r.useEffect(()=>{R.current&&!i&&N(),R.current=i},[i,N]);const S=r.useCallback(C=>{C||N(),e(C)},[e,N]),F=r.useCallback(()=>{!d||b===null||!p.current||(j.current=!0,Mo(d,b,p.current.character),e(!1),d.focus())},[b,e,d]);r.useEffect(()=>{if(!i)return;const C=D=>{const h=v.current,O=D.target;!h||!(O instanceof Element)||h.contains(O)||O.closest("[data-go-to-line-toggle]")||S(!1)},V=D=>{D.key==="Escape"&&(D.preventDefault(),S(!1))};return document.addEventListener("pointerdown",C,!0),document.addEventListener("keydown",V,!0),()=>{document.removeEventListener("pointerdown",C,!0),document.removeEventListener("keydown",V,!0)}},[S,i,s]);const T=r.useMemo(()=>{if(!d)return c("goToLineDialog.helper.editorUnavailable");if(b===null){const C=p.current??To(d,d.state.selection);return c("goToLineDialog.helper.currentLineRange",{current:C.lineNumber,max:d.state.doc.lines})}return c("goToLineDialog.helper.goToLine",{line:b})},[b,c,d]);return s==="inline"?i?n.jsxs("div",{ref:v,"data-editor-overlay":!0,className:"ms-1 flex h-6 items-center gap-1",children:[n.jsx(xs,{ref:w,type:"number",min:1,step:1,inputMode:"numeric",value:g,onChange:C=>f(C.target.value),onKeyDown:C=>{C.key==="Enter"&&(C.preventDefault(),F())},placeholder:c("goToLineDialog.field.linePlaceholderShort"),className:"h-6 w-20 rounded-md border-border/70 bg-transparent px-2 typography-meta"}),n.jsx(I,{variant:"outline",size:"xs",onClick:F,disabled:!d||b===null,className:"h-6 px-2",children:c("goToLineDialog.actions.go")})]}):null:n.jsx("div",{ref:v,"data-editor-overlay":!0,className:q("absolute inset-s-3 top-3 z-40 w-[min(32rem,calc(100%-1.5rem))] rounded-xl border border-[var(--interactive-border)] bg-[color:color-mix(in_srgb,var(--surface-elevated)_94%,transparent)] p-2.5 shadow-lg backdrop-blur-sm transition-all",i?"pointer-events-auto translate-y-0 opacity-100":"pointer-events-none -translate-y-1 opacity-0"),children:n.jsxs("div",{className:"min-w-0",children:[n.jsx(xs,{ref:w,type:"number",min:1,step:1,inputMode:"numeric",value:g,onChange:C=>f(C.target.value),onKeyDown:C=>{C.key==="Enter"&&(C.preventDefault(),F())},placeholder:c("goToLineDialog.field.linePlaceholder"),className:"h-8 w-full rounded-md border-border/70 bg-surface-elevated/60 typography-ui-label"}),n.jsx("div",{className:"mt-2 rounded-md bg-primary/15 px-3 py-1.5 typography-ui-label text-foreground/95",children:T})]})})}const lf=new Map(Object.entries({FunctionDeclaration:"function",FunctionDefinition:"function",FunctionItem:"function",FunctionDecl:"function",MethodDeclaration:"method",MethodDecl:"method",ClassDeclaration:"class",ClassDefinition:"class",InterfaceDeclaration:"class",StructItem:"class",TraitItem:"class",ImplItem:"class",TypeAliasDeclaration:"type",EnumDeclaration:"type",EnumItem:"type",TypeSpec:"type",ModItem:"module"})),cf=new Map([["VariableDeclaration","function"],["PropertyDeclaration","method"]]),uf=new Set(["ArrowFunction","FunctionExpression"]),df=new Set(["VariableDefinition","PropertyDefinition","TypeDefinition","VariableName","DefName","FieldName","BoundIdentifier","TypeIdentifier"]),fl=/^(?:ATXHeading|SetextHeading)([1-6])$/,ml=(i,e)=>{for(let a=i.firstChild;a;a=a.nextSibling)if(e.has(a.name))return a;return null},ff=i=>{if(fl.test(i.name))return"heading";const e=lf.get(i.name);if(e)return e;const a=cf.get(i.name);return a&&ml(i,uf)?a:null},mf=(i,e)=>i.doc.lineAt(e.from).text.replace(/^\s{0,3}#{1,6}\s*/,"").replace(/\s+#+\s*$/,"").trim(),hf=(i,e=200)=>{const a=Sd(i,i.doc.length,e);if(!a)return[];const s=[],c=[];return a.iterate({enter:d=>{const g=ff(d.node);if(!g)return;let f,p;if(g==="heading")f=mf(i,d.node),p=d.from;else{const v=ml(d.node,df);if(!v)return;f=i.sliceDoc(v.from,v.to),p=v.from}if(!f)return;for(;c.length>0&&c[c.length-1]<=d.from;)c.pop();const j=g==="heading"?Number(fl.exec(d.name)?.[1]??1)-1:c.length;s.push({name:f,kind:g,line:i.doc.lineAt(p).number,from:p,depth:j}),g!=="heading"&&c.push(d.to)}}),s},pf={function:"braces",method:"braces",class:"box-3",type:"code-box",module:"folder-3",heading:"text"},gf="data-document-symbols-toggle";function Po({open:i,onOpenChange:e,viewRef:a}){const{t:s}=$e(),c=a.current,d=r.useRef(null),[g,f]=r.useState([]),[p,j]=r.useState("");r.useEffect(()=>{i&&(j(""),f(c?hf(c.state):[]))},[i,c]);const v=r.useCallback(()=>{e(!1),c?.focus()},[e,c]);r.useEffect(()=>{if(!i)return;const b=N=>{const R=N.target;!(R instanceof Element)||!d.current||d.current.contains(R)||R.closest(`[${gf}]`)||e(!1)};return document.addEventListener("pointerdown",b,!0),()=>document.removeEventListener("pointerdown",b,!0)},[e,i]);const w=r.useCallback(b=>{c&&c.dispatch({selection:cl.cursor(b.from),effects:nt.scrollIntoView(b.from,{y:"center"})}),v()},[v,c]);return i?n.jsx("div",{ref:d,"data-editor-overlay":!0,className:"absolute inset-s-3 top-3 z-40 w-[min(28rem,calc(100%-1.5rem))] overflow-hidden rounded-xl border border-[var(--interactive-border)] bg-[var(--surface-elevated)] shadow-lg",onKeyDown:b=>{b.key==="Escape"&&(b.preventDefault(),b.stopPropagation(),v())},children:n.jsxs(wu,{loop:!0,filter:(b,N)=>b.split("\0")[0].toLowerCase().includes(N.trim().toLowerCase())?1:0,className:"[&_[cmdk-item]]:px-2 [&_[cmdk-item]]:py-1 [&_[cmdk-item]]:typography-meta",children:[n.jsx(xu,{autoFocus:!0,value:p,onValueChange:j,placeholder:s("filesView.symbols.placeholder"),"aria-label":s("filesView.symbols.placeholder")}),n.jsxs(bu,{className:"max-h-[min(20rem,calc(100vh-16rem))]",children:[n.jsx(yu,{className:"px-3 py-4 typography-meta text-muted-foreground",children:g.length===0?s("filesView.symbols.noneInFile"):s("filesView.symbols.noMatches")}),g.map(b=>n.jsxs(ju,{value:`${b.name}\0${b.from}`,onSelect:()=>w(b),className:"gap-2",children:[n.jsxs("span",{className:"flex min-w-0 flex-1 items-center gap-2",style:{paddingInlineStart:`${b.depth*12}px`},children:[n.jsx(E,{name:pf[b.kind],className:"size-3.5 shrink-0 text-muted-foreground"}),n.jsx("span",{className:"min-w-0 truncate text-foreground",children:b.name})]}),n.jsx("span",{className:"shrink-0 tabular-nums text-muted-foreground",children:b.line})]},`${b.from}:${b.name}`))]})]})}):null}const vf=(i,e)=>{const a=e.trim().toLowerCase(),s=[];if(!a)return s;const c=i.toLowerCase();let d=0;for(;;){const g=c.indexOf(a,d);if(g===-1)break;s.push({start:g,end:g+a.length}),d=g+a.length}return s},jr="data-md-find",gi="data-md-find-current",hl="rounded-[2px] bg-status-warning/30 text-foreground",wf="rounded-[2px] bg-status-warning/60 text-foreground",xf=120,bf=i=>i instanceof Element&&i.hasAttribute(jr),yf=i=>i.target instanceof Element&&i.target.hasAttribute(jr)?!0:[...i.addedNodes].some(e=>bf(e)),pl=i=>{const e=new Set;i.querySelectorAll(`mark[${jr}]`).forEach(a=>{const s=a.parentNode;s&&(s.replaceChild(document.createTextNode(a.textContent??""),a),e.add(s))}),e.forEach(a=>a.normalize())},jf=(i,e)=>{pl(i);const a=e.trim().toLowerCase();if(!a)return[];const s=[],c=document.createTreeWalker(i,NodeFilter.SHOW_TEXT,{acceptNode(g){const f=g.parentElement;return!f||f.closest("svg, script, style")?NodeFilter.FILTER_REJECT:NodeFilter.FILTER_ACCEPT}}),d=[];for(;c.nextNode();){const g=c.currentNode;g instanceof Text&&d.push(g)}for(const g of d){const f=g.nodeValue??"";if(!f)continue;const p=vf(f,a);if(p.length===0)continue;const j=g.parentNode;if(!j)continue;const v=document.createDocumentFragment();let w=0;for(const b of p){b.start>w&&v.appendChild(document.createTextNode(f.slice(w,b.start)));const N=document.createElement("mark");N.setAttribute(jr,""),N.className=hl,N.textContent=f.slice(b.start,b.end),v.appendChild(N),s.push(N),w=b.end}w<f.length&&v.appendChild(document.createTextNode(f.slice(w))),j.replaceChild(v,g)}return s},Vo=({containerRef:i,open:e,onOpenChange:a,focusNonce:s,className:c})=>{const{t:d}=$e(),[g,f]=r.useState(""),[p,j]=r.useState(0),[v,w]=r.useState(0),b=r.useRef(null),N=r.useRef([]),R=r.useRef(g);R.current=g;const S=r.useRef(null),F=r.useRef(null),T=r.useCallback((M,B=!1)=>{const A=i.current;if(!A){N.current=[],j(0),w(0);return}N.current=jf(A,M);const $=N.current.length;j($),w(re=>!B||$===0?0:Math.min(re,$-1))},[i]),C=r.useCallback((M,B=!1)=>{S.current&&clearTimeout(S.current),S.current=setTimeout(()=>{S.current=null,T(M,B)},xf)},[T]);r.useEffect(()=>()=>{S.current&&clearTimeout(S.current)},[]);const V=r.useCallback(()=>{a(!1);const M=F.current;F.current=null,M?.isConnected&&M.focus()},[a]);r.useEffect(()=>{const M=i.current;if(!e||!M)return;const B=new MutationObserver(A=>{!R.current.trim()||!A.some(re=>!yf(re))||C(R.current,!0)});return B.observe(M,{childList:!0,subtree:!0,characterData:!0}),()=>{B.disconnect(),pl(M)}},[i,e,C]),r.useEffect(()=>{if(!e)return;const M=document.activeElement;M instanceof HTMLElement&&!F.current&&(F.current=M),b.current?.focus()},[e]),r.useEffect(()=>{e&&s>0&&(b.current?.focus(),b.current?.select())},[e,s]),r.useEffect(()=>{const M=i.current;if(!M||(M.querySelectorAll(`mark[${gi}]`).forEach(A=>{A.removeAttribute(gi),A.className=hl}),p===0))return;const B=N.current[Math.min(Math.max(v,0),p-1)];B&&(B.setAttribute(gi,""),B.className=wf,B.scrollIntoView({block:"nearest"}))},[i,v,p]);const D=r.useCallback(()=>{w(M=>p===0?0:(M+1)%p)},[p]),h=r.useCallback(()=>{w(M=>p===0?0:(M-1+p)%p)},[p]),O=r.useCallback(M=>{M.key==="Enter"?(M.preventDefault(),M.shiftKey?h():D()):M.key==="Escape"&&(M.preventDefault(),V())},[V,D,h]);return e?n.jsxs("div",{className:q("absolute inset-e-3 top-3 z-10 flex items-center gap-1 rounded-lg border border-border/60 bg-[var(--surface-elevated)] px-1.5 py-1 shadow-lg",c),children:[n.jsx(E,{name:"search",className:"ms-0.5 size-3.5 text-muted-foreground"}),n.jsx(xs,{ref:b,value:g,onChange:M=>{f(M.target.value),C(M.target.value)},onKeyDown:O,placeholder:d("filesView.preview.find.placeholder"),"aria-label":d("filesView.preview.find.placeholder"),className:"h-7 w-40 rounded-md px-2 py-0 text-sm md:w-56"}),n.jsx("span",{className:"min-w-12 px-1 text-center typography-micro text-muted-foreground tabular-nums","aria-live":"polite","aria-label":p>0?d("filesView.preview.find.countAria",{current:v+1,total:p}):d("filesView.preview.find.noMatches"),children:g.trim()&&p===0?d("filesView.preview.find.noMatches"):p>0?`${v+1}/${p}`:""}),n.jsx(I,{type:"button",variant:"ghost",size:"sm",className:"size-6 p-0 text-muted-foreground",onClick:h,title:d("filesView.preview.find.previousAria"),"aria-label":d("filesView.preview.find.previousAria"),disabled:p===0,children:n.jsx(E,{name:"arrow-up",className:"size-3.5"})}),n.jsx(I,{type:"button",variant:"ghost",size:"sm",className:"size-6 p-0 text-muted-foreground",onClick:D,title:d("filesView.preview.find.nextAria"),"aria-label":d("filesView.preview.find.nextAria"),disabled:p===0,children:n.jsx(E,{name:"arrow-down",className:"size-3.5"})}),n.jsx(I,{type:"button",variant:"ghost",size:"sm",className:"size-6 p-0 text-muted-foreground",onClick:V,title:d("filesView.preview.find.closeAria"),"aria-label":d("filesView.preview.find.closeAria"),children:n.jsx(E,{name:"close",className:"size-3.5"})})]}):null},Nf=1,Do=({stat:i,showsFailure:e,sawMissing:a,hasUnsavedChanges:s,moving:c})=>i==="missing"?s||c?"none":"show-missing":i==="failed"?"none":e?a?"reload":"none":"check-changes",Sf=(i,e)=>e.size!==i.size||e.mtimeMs!==void 0&&i.mtimeMs!==void 0&&Math.abs(e.mtimeMs-i.mtimeMs)>=Nf,Cf=({selectedPath:i,targetPath:e,targetShown:a,targetSettled:s,showsText:c,canEdit:d,textViewMode:g})=>i!==e?a?"wait":"select-target":s?c?g==="edit"?"jump":d?"show-editor":"end":"end":"wait";function zo(){const i=we.c(8),[e]=Mt.useState(Ff),a=Mt.useRef(!1);let s;i[0]!==e?(s=p=>{if(p==null){e.cleanUp(),a.current=!1;return}a.current||(a.current=!0,e.setup(p,p.firstElementChild??void 0))},i[0]=e,i[1]=s):s=i[1];const c=s;let d,g;i[2]!==e?(d=()=>()=>{a.current=!1,e.cleanUp()},g=[e],i[2]=e,i[3]=d,i[4]=g):(d=i[3],g=i[4]),Mt.useLayoutEffect(d,g);let f;return i[5]!==c||i[6]!==e?(f={virtualizer:e,setScroller:c},i[5]=c,i[6]=e,i[7]=f):f=i[7],f}function Ff(){return new Hd}const An=new Map,kf=100;function dr(i){const[e,a]=Mt.useState(null),s=Mt.useRef(null),c=Mt.useRef(null),d=Mt.useRef(null),g=Mt.useCallback((f,p)=>{f&&p instanceof Bd&&(d.current={key:i,file:p,node:f});const j=s.current,v=c.current,w=()=>{s.current===j&&(j?.(),v?.())};p?queueMicrotask(w):w()},[i]);return Mt.useLayoutEffect(()=>{if(!e||!i)return;const f=An.get(i)??{top:0,left:0};let p=!0;const j=()=>d.current?.key===i?d.current.file:null,v=T=>d.current?.key===i?d.current.node.shadowRoot?.querySelector(`[data-line][data-line-index="${T-1}"]`):null,w=()=>{N.disconnect(),R.disconnect()},b=()=>{if(!p)return;const T=j(),C=f.line&&T?.getLinePosition(f.line.number),V=f.line&&v(f.line.number);let D=f.top;f.line&&C&&(D=(T?.top??0)+C.top-f.line.offset),f.line&&V&&(D=e.scrollTop+V.getBoundingClientRect().top-e.getBoundingClientRect().top-f.line.offset),e.scrollTop=D,e.scrollLeft=f.left,(!f.line||V)&&Math.abs(e.scrollTop-D)<1&&Math.abs(e.scrollLeft-f.left)<1&&(p=!1,w())},N=new ResizeObserver(b),R=new MutationObserver(()=>{if(p){for(const T of e.children)N.observe(T);b()}});N.observe(e);for(const T of e.children)N.observe(T);R.observe(e,{childList:!0,subtree:!0});const S=()=>{if(p)return;const T=j(),C=T?.getNumericScrollAnchor(e.scrollTop-(T.top??0)),V=C&&v(C.lineNumber),D=V?V.getBoundingClientRect().top-e.getBoundingClientRect().top:null;if(An.delete(i),An.set(i,{top:e.scrollTop,left:e.scrollLeft,line:C&&D!==null&&D>=0&&D<e.clientHeight?{number:C.lineNumber,offset:D}:void 0}),An.size>kf){const h=An.keys().next().value;h!==void 0&&An.delete(h)}},F=()=>{p=!1,w()};return s.current=b,c.current=S,b(),e.addEventListener("scroll",S,{passive:!0}),e.addEventListener("wheel",F,{passive:!0}),e.addEventListener("touchstart",F,{passive:!0}),e.addEventListener("pointerdown",F,{passive:!0}),e.addEventListener("keydown",F),()=>{s.current=null,c.current=null,d.current?.key===i&&(d.current=null),w(),e.removeEventListener("scroll",S),e.removeEventListener("wheel",F),e.removeEventListener("touchstart",F),e.removeEventListener("pointerdown",F),e.removeEventListener("keydown",F)}},[i,e]),{setScroller:a,restore:g}}function Ef(i){return!(!i.autoSaveEnabled||!i.isDirty||!i.canWrite||i.isSaving||i.fileLoading||i.isNonEditableBinary||i.wouldEmptyFile||!i.selectedFilePath||i.loadedFilePath!==i.selectedFilePath)}function Rf(i){return i.selectedFilePath?i.isDirty?!(i.fileLoading||i.loadedFilePath!==i.selectedFilePath||i.isNonEditableBinary||i.draftContent===""&&i.fileContent!==""&&i.loadedFilePath!==i.selectedFilePath):!0:!1}const gl=2e5,Tf=i=>{let e=0,a=0;for(let s=0;s<i.length;s++)i.charCodeAt(s)===10&&(s>0&&i.charCodeAt(s-1)===13?e++:a++);return e>a?`\r
|
|
1
|
+
import{R as r,j as n,f as we,r as Mt,c as nu}from"./vendor-react-BUCujlKS.js";import{aK as su,k as hr,ae as Jo,b6 as ru,av as iu,b7 as au,b8 as ou,ap as lu,at as cu,ao as Oe,a5 as tt,u as Be,b9 as uu,b5 as pr,t as vo,ba as wo,bb as ui,bc as du,bd as fu,b4 as Zo,b3 as mu,be as hu,ac as pu,bf as gu,bg as _t,bh as vu}from"./katex.min-u4DtE8E5.js";import{u as $e,y as xs,B as I,N as q,az as wu,ay as xu,as as bu,at as yu,av as ju,I as E,gh as Nu,gi as yi,gj as Su,bl as Ni,bm as Cu,gk as Fu,ef as ku,gl as Eu,dp as Bn,el as gr,gm as Ru,gn as Tu,b7 as Mu,aG as Pu,aF as Vu,aE as Du,fZ as zu,aD as di,b5 as Lu,d8 as Au,A as H,fD as Iu,fC as Ou,aa as xo,go as Bu,aI as $u,dr as Wu,gp as cr,a1 as bo,bT as fi,gq as ps,P as Uu,a5 as Ku,gr as gs,dD as _u,gs as mi,gt as yo,gu as jo,gv as No,gw as So,gx as Gu,gy as Hu,gz as qu,df as Xu,gA as Yu,aK as Ju,gB as Zu,dq as Co,gC as Qu,t as Qo,q as el,D as tl,l as nl,F as sl,o as rl,aR as vr,aS as wr,aT as xr,aU as On,n as hi,aV as ur,aW as pi,V as Gt,W as Ht,X as qt,es as il,am as ed,ap as td,bg as al,gD as nd,gE as sd,gF as rd,ep as ol,eo as ll,aA as br,eq as id,gG as ad,gH as od,gI as ld,gJ as cd,gK as ud,gL as dd,gM as fd,gN as md}from"./useAppFontEffects-d9vsRNKm.js";import{s as hd,c as Fo,P as Ln,C as pd}from"./flexokiTheme-DECIbITo.js";import{a as cl,E as gd,i as ul,S as dl,R as ji,l as vd}from"./vendor-codemirror-state-Dek9sMtw.js";import{E as nt,k as Si,f as wd,j as xd,m as bd,g as yd,V as jd,G as Nd}from"./vendor-codemirror-view-B66jUSmE.js";import{v as Sd,z as Cd,A as Fd,B as kd}from"./vendor-codemirror-language-DyL0aCoH.js";import{D as Ed,a as Rd,m as Td,b as Md,G as Pd}from"./moveWorkspacePath-By4gjwmW.js";import{a9 as Vd,$ as Dd,aa as zd,ab as Ld,Q as Ad}from"./runtimeEndpointReset-BJUtkqal.js";import{c as Id,b as Od,u as ko,F as Eo}from"./useMarkdownLocalAssets-D3a1j44d.js";import{V as Bd,J as $d,F as Wd}from"./JsonTreeView-BOQC0uTM.js";import{s as Ud}from"./shikiHighlight-BKmAuapa.js";import{ensurePierreThemeRegistered as Ro,getResolvedShikiTheme as Kd}from"./appThemeRegistry-CnS_OWEL.js";import{V as _d,W as Gd}from"./Virtualizer-BP6uuKe_.js";import{V as Hd}from"./Virtualizer-B8rX50qD.js";import{D as qd}from"./vendor-react-drawio-Ct3Q0DsD.js";import{e as Xd,h as Yd}from"./vendor-codemirror-search-BKAwkhkm.js";import{a as Jd,b as Zd}from"./vendor-codemirror-autocomplete-CIqXJolH.js";import{p as Qd}from"./parseDiffFromFile-C9ASoy7R.js";import{o as ef,s as tf}from"./vendor-zod-DDir2TeQ.js";import{u as nf,n as sf}from"./useInlineCommentController-Cw5IRM5Y.js";import{c as rf}from"./scheduledTasksApi-FZ9stPNl.js";import"./vendor-scheduler-7OC5HNn7.js";import"./vendor-vite-runtime-DD1OZmLC.js";import"./vendor-zustand-BAGL70zf.js";import"./vendor-opencode-client-h8RufjAw.js";import"./vendor-base-ui-CPKyhvxM.js";import"./vendor-floating-ui-utils-D6FqdtJt.js";import"./vendor-floating-ui-dom-BTvzWks8.js";import"./vendor-floating-ui-core-PuGzNPnN.js";import"./vendor-floating-ui-react-dom-DxYCWdHj.js";import"./vendor-use-sync-external-store-D6wYuSt-.js";import"./vendor-simplewebauthn-browser-VDA66rT_.js";import"./vendor-class-variance-authority-5VPnzWs2.js";import"./vendor-clsx-B-dksMZM.js";import"./vendor-dnd-kit-core-BZknOX2w.js";import"./vendor-dnd-kit-utilities-B_MdXhJC.js";import"./vendor-dnd-kit-accessibility-BHxJPORy.js";import"./vendor-dnd-kit-sortable-CsEagZ81.js";import"./vendor-tanstack-react-virtual-Bmi0tTrf.js";import"./vendor-tanstack-virtual-core-CdGDGrnp.js";import"./vendor-framer-motion-DxDVhOLc.js";import"./vendor-motion-dom-HXPOMxb7.js";import"./vendor-motion-utils-BGh8QBgx.js";import"./vendor-codemirror-commands-dar6chwA.js";import"./vendor-lezer-common-B3-cUCR_.js";import"./vendor-lezer-highlight-CDMHUZ74.js";import"./vendor-codemirror-lang-javascript-Cem6LjJ8.js";import"./vendor-lezer-javascript-D7Tj24ot.js";import"./vendor-lezer-lr-bhwg1HMg.js";import"./vendor-style-mod-NZ5MEPvj.js";import"./vendor-codemirror-streamparser-CmlTsbN2.js";import"./vendor-marijn-find-cluster-break-DXwl3gUT.js";import"./vendor-w3c-keyname-Vcq4gwWv.js";import"./vendor-crelt-C8TCjufn.js";import"./vendor-codemirror-lang-json-C9rLLO0q.js";import"./vendor-lezer-json-Iaex0UN-.js";import"./vendor-codemirror-lang-css-9qjxcVkg.js";import"./vendor-lezer-css-C5xB6jxd.js";import"./vendor-codemirror-lang-html-D7VQUxeE.js";import"./vendor-lezer-html-C0I1p52t.js";import"./vendor-codemirror-lang-markdown-Cikh4w2I.js";import"./vendor-lezer-markdown-C6g-d6P3.js";import"./vendor-codemirror-language-data-DP_Bh3S8.js";import"./vendor-codemirror-lang-python-DVl8-2Op.js";import"./vendor-lezer-python-CvuFxeZl.js";import"./vendor-sonner-DFyL3AvE.js";import"./vendor-capacitor-core-B4EWRrHz.js";import"./vendor-cmdk-DgLInKvT.js";import"./vendor-radix-ui-react-dialog-B94Bt2qq.js";import"./vendor-radix-ui-primitive-Dc_FVRD7.js";import"./vendor-radix-ui-react-compose-refs-DcAh5WdT.js";import"./vendor-radix-ui-react-context-Czxm7Z62.js";import"./vendor-radix-ui-react-id-f5BLKEVw.js";import"./vendor-radix-ui-react-use-layout-effect-D_3IhJdJ.js";import"./vendor-radix-ui-react-use-controllable-state-BFT5YmkA.js";import"./vendor-radix-ui-react-dismissable-layer-D7kXcwgJ.js";import"./vendor-radix-ui-react-primitive-DhVoX9SD.js";import"./vendor-radix-ui-react-slot-BQgQOasS.js";import"./vendor-radix-ui-react-use-callback-ref-BZPnuXAC.js";import"./vendor-radix-ui-react-use-escape-keydown-oph88g-F.js";import"./vendor-radix-ui-react-focus-scope-CiaxW4dD.js";import"./vendor-radix-ui-react-portal-BMJYHWck.js";import"./vendor-radix-ui-react-presence-CNxf-uq4.js";import"./vendor-radix-ui-react-focus-guards-B6qJXYua.js";import"./vendor-react-remove-scroll-DO7dCTnK.js";import"./vendor-tslib-De9GV7Vy.js";import"./vendor-react-remove-scroll-bar-BcFYyj3E.js";import"./vendor-react-style-singleton-q6EMHnwf.js";import"./vendor-get-nonce-C-Z93AgS.js";import"./vendor-use-sidecar-zDC0RhA3.js";import"./vendor-use-callback-ref-D3RC8gqK.js";import"./vendor-aria-hidden-DvXkyWUv.js";import"./vendor-legendapp-list-D2O6oUGf.js";import"./vendor-tailwind-merge-CPcsbTWB.js";import"./vendor-fuse.js-Dw8P0qyA.js";import"./vendor-replit-codemirror-vim-CKWqK1yR.js";import"./vendor-replit-codemirror-vim-core-FHzKdNUS.js";import"./computeVirtualFileMetrics-rZJ-MSfY.js";import"./vendor-shiki-Bbf2GEcE.js";import"./vendor-shikijs-core-CGM_jqPK.js";import"./vendor-shikijs-types-CPSbSeK6.js";import"./vendor-shikijs-vscode-textmate-BgLrS_2D.js";import"./vendor-hast-util-to-html-BKBhbTDb.js";import"./vendor-html-void-elements-CkdplsNl.js";import"./vendor-property-information-rJCbAzvX.js";import"./vendor-zwitch-C2o2j-tx.js";import"./vendor-stringify-entities-CsH1VEn9.js";import"./vendor-character-entities-legacy-BpoLgcEt.js";import"./vendor-character-entities-html4-D7taRCQ7.js";import"./vendor-ccount-c2V3InAJ.js";import"./vendor-comma-separated-tokens-D8TqSuIK.js";import"./vendor-space-separated-tokens-DD3iYX1K.js";import"./vendor-hast-util-whitespace-D4Wp6AEg.js";import"./vendor-shikijs-engine-oniguruma-DPWuIF1G.js";import"./themeResolver-yJ9XpNMI.js";import"./vendor-pierre-theming-Dgp7B_O4.js";import"./vendor-shikijs-engine-javascript-Cme4830A.js";import"./vendor-oniguruma-to-es-DLBnFDCE.js";import"./vendor-oniguruma-parser-C0D4_9rT.js";import"./vendor-regex-BBWcyTkg.js";import"./vendor-regex-utilities-2BQyy0xI.js";import"./vendor-regex-recursion-JU4mF-dD.js";import"./vendor-shikijs-transformers-CZWsLLKm.js";import"./isFilePlainText-BQGSJxcX.js";import"./vendor-strip-json-comments-5dJlOkP1.js";import"./textMateThemeFromAppTheme-Bye_bpEL.js";import"./vendor-diff-C3JhlQdm.js";const af=(i,e)=>{if(!e)return null;const a=Number.parseInt(i.trim(),10);return!Number.isFinite(a)||a<1?null:Math.min(a,e.state.doc.lines)},To=(i,e)=>{const a=i.state.doc.lineAt(e.main.head);return{lineNumber:a.number,character:e.main.head-a.from+1,selection:e}},Mo=(i,e,a)=>{const s=i.state.doc.line(e),c=Math.max(1,Math.min(a,s.length+1)),d=s.from+c-1;i.dispatch({selection:cl.cursor(d),effects:nt.scrollIntoView(d,{y:"center"})})};function of({open:i,onOpenChange:e,viewRef:a,variant:s="overlay"}){const{t:c}=$e(),d=a.current,[g,f]=r.useState(""),p=r.useRef(null),j=r.useRef(!1),v=r.useRef(null),w=r.useRef(null),b=r.useMemo(()=>af(g,d),[g,d]);r.useEffect(()=>{!i||!d||(j.current=!1,p.current=To(d,d.state.selection),f(""))},[i,d]),r.useEffect(()=>{i&&window.requestAnimationFrame(()=>{w.current?.focus(),w.current?.select()})},[i]),r.useEffect(()=>{if(!(!i||!d||!p.current)){if(b===null){const{selection:C}=p.current;d.dispatch({selection:C,effects:nt.scrollIntoView(C.main.from,{y:"center"})});return}Mo(d,b,p.current.character)}},[b,i,d]);const N=r.useCallback(()=>{if(!d||j.current||!p.current)return;const{selection:C}=p.current;d.dispatch({selection:C,effects:nt.scrollIntoView(C.main.from,{y:"center"})})},[d]),R=r.useRef(i);r.useEffect(()=>{R.current&&!i&&N(),R.current=i},[i,N]);const S=r.useCallback(C=>{C||N(),e(C)},[e,N]),F=r.useCallback(()=>{!d||b===null||!p.current||(j.current=!0,Mo(d,b,p.current.character),e(!1),d.focus())},[b,e,d]);r.useEffect(()=>{if(!i)return;const C=D=>{const h=v.current,O=D.target;!h||!(O instanceof Element)||h.contains(O)||O.closest("[data-go-to-line-toggle]")||S(!1)},V=D=>{D.key==="Escape"&&(D.preventDefault(),S(!1))};return document.addEventListener("pointerdown",C,!0),document.addEventListener("keydown",V,!0),()=>{document.removeEventListener("pointerdown",C,!0),document.removeEventListener("keydown",V,!0)}},[S,i,s]);const T=r.useMemo(()=>{if(!d)return c("goToLineDialog.helper.editorUnavailable");if(b===null){const C=p.current??To(d,d.state.selection);return c("goToLineDialog.helper.currentLineRange",{current:C.lineNumber,max:d.state.doc.lines})}return c("goToLineDialog.helper.goToLine",{line:b})},[b,c,d]);return s==="inline"?i?n.jsxs("div",{ref:v,"data-editor-overlay":!0,className:"ms-1 flex h-6 items-center gap-1",children:[n.jsx(xs,{ref:w,type:"number",min:1,step:1,inputMode:"numeric",value:g,onChange:C=>f(C.target.value),onKeyDown:C=>{C.key==="Enter"&&(C.preventDefault(),F())},placeholder:c("goToLineDialog.field.linePlaceholderShort"),className:"h-6 w-20 rounded-md border-border/70 bg-transparent px-2 typography-meta"}),n.jsx(I,{variant:"outline",size:"xs",onClick:F,disabled:!d||b===null,className:"h-6 px-2",children:c("goToLineDialog.actions.go")})]}):null:n.jsx("div",{ref:v,"data-editor-overlay":!0,className:q("absolute inset-s-3 top-3 z-40 w-[min(32rem,calc(100%-1.5rem))] rounded-xl border border-[var(--interactive-border)] bg-[color:color-mix(in_srgb,var(--surface-elevated)_94%,transparent)] p-2.5 shadow-lg backdrop-blur-sm transition-all",i?"pointer-events-auto translate-y-0 opacity-100":"pointer-events-none -translate-y-1 opacity-0"),children:n.jsxs("div",{className:"min-w-0",children:[n.jsx(xs,{ref:w,type:"number",min:1,step:1,inputMode:"numeric",value:g,onChange:C=>f(C.target.value),onKeyDown:C=>{C.key==="Enter"&&(C.preventDefault(),F())},placeholder:c("goToLineDialog.field.linePlaceholder"),className:"h-8 w-full rounded-md border-border/70 bg-surface-elevated/60 typography-ui-label"}),n.jsx("div",{className:"mt-2 rounded-md bg-primary/15 px-3 py-1.5 typography-ui-label text-foreground/95",children:T})]})})}const lf=new Map(Object.entries({FunctionDeclaration:"function",FunctionDefinition:"function",FunctionItem:"function",FunctionDecl:"function",MethodDeclaration:"method",MethodDecl:"method",ClassDeclaration:"class",ClassDefinition:"class",InterfaceDeclaration:"class",StructItem:"class",TraitItem:"class",ImplItem:"class",TypeAliasDeclaration:"type",EnumDeclaration:"type",EnumItem:"type",TypeSpec:"type",ModItem:"module"})),cf=new Map([["VariableDeclaration","function"],["PropertyDeclaration","method"]]),uf=new Set(["ArrowFunction","FunctionExpression"]),df=new Set(["VariableDefinition","PropertyDefinition","TypeDefinition","VariableName","DefName","FieldName","BoundIdentifier","TypeIdentifier"]),fl=/^(?:ATXHeading|SetextHeading)([1-6])$/,ml=(i,e)=>{for(let a=i.firstChild;a;a=a.nextSibling)if(e.has(a.name))return a;return null},ff=i=>{if(fl.test(i.name))return"heading";const e=lf.get(i.name);if(e)return e;const a=cf.get(i.name);return a&&ml(i,uf)?a:null},mf=(i,e)=>i.doc.lineAt(e.from).text.replace(/^\s{0,3}#{1,6}\s*/,"").replace(/\s+#+\s*$/,"").trim(),hf=(i,e=200)=>{const a=Sd(i,i.doc.length,e);if(!a)return[];const s=[],c=[];return a.iterate({enter:d=>{const g=ff(d.node);if(!g)return;let f,p;if(g==="heading")f=mf(i,d.node),p=d.from;else{const v=ml(d.node,df);if(!v)return;f=i.sliceDoc(v.from,v.to),p=v.from}if(!f)return;for(;c.length>0&&c[c.length-1]<=d.from;)c.pop();const j=g==="heading"?Number(fl.exec(d.name)?.[1]??1)-1:c.length;s.push({name:f,kind:g,line:i.doc.lineAt(p).number,from:p,depth:j}),g!=="heading"&&c.push(d.to)}}),s},pf={function:"braces",method:"braces",class:"box-3",type:"code-box",module:"folder-3",heading:"text"},gf="data-document-symbols-toggle";function Po({open:i,onOpenChange:e,viewRef:a}){const{t:s}=$e(),c=a.current,d=r.useRef(null),[g,f]=r.useState([]),[p,j]=r.useState("");r.useEffect(()=>{i&&(j(""),f(c?hf(c.state):[]))},[i,c]);const v=r.useCallback(()=>{e(!1),c?.focus()},[e,c]);r.useEffect(()=>{if(!i)return;const b=N=>{const R=N.target;!(R instanceof Element)||!d.current||d.current.contains(R)||R.closest(`[${gf}]`)||e(!1)};return document.addEventListener("pointerdown",b,!0),()=>document.removeEventListener("pointerdown",b,!0)},[e,i]);const w=r.useCallback(b=>{c&&c.dispatch({selection:cl.cursor(b.from),effects:nt.scrollIntoView(b.from,{y:"center"})}),v()},[v,c]);return i?n.jsx("div",{ref:d,"data-editor-overlay":!0,className:"absolute inset-s-3 top-3 z-40 w-[min(28rem,calc(100%-1.5rem))] overflow-hidden rounded-xl border border-[var(--interactive-border)] bg-[var(--surface-elevated)] shadow-lg",onKeyDown:b=>{b.key==="Escape"&&(b.preventDefault(),b.stopPropagation(),v())},children:n.jsxs(wu,{loop:!0,filter:(b,N)=>b.split("\0")[0].toLowerCase().includes(N.trim().toLowerCase())?1:0,className:"[&_[cmdk-item]]:px-2 [&_[cmdk-item]]:py-1 [&_[cmdk-item]]:typography-meta",children:[n.jsx(xu,{autoFocus:!0,value:p,onValueChange:j,placeholder:s("filesView.symbols.placeholder"),"aria-label":s("filesView.symbols.placeholder")}),n.jsxs(bu,{className:"max-h-[min(20rem,calc(100vh-16rem))]",children:[n.jsx(yu,{className:"px-3 py-4 typography-meta text-muted-foreground",children:g.length===0?s("filesView.symbols.noneInFile"):s("filesView.symbols.noMatches")}),g.map(b=>n.jsxs(ju,{value:`${b.name}\0${b.from}`,onSelect:()=>w(b),className:"gap-2",children:[n.jsxs("span",{className:"flex min-w-0 flex-1 items-center gap-2",style:{paddingInlineStart:`${b.depth*12}px`},children:[n.jsx(E,{name:pf[b.kind],className:"size-3.5 shrink-0 text-muted-foreground"}),n.jsx("span",{className:"min-w-0 truncate text-foreground",children:b.name})]}),n.jsx("span",{className:"shrink-0 tabular-nums text-muted-foreground",children:b.line})]},`${b.from}:${b.name}`))]})]})}):null}const vf=(i,e)=>{const a=e.trim().toLowerCase(),s=[];if(!a)return s;const c=i.toLowerCase();let d=0;for(;;){const g=c.indexOf(a,d);if(g===-1)break;s.push({start:g,end:g+a.length}),d=g+a.length}return s},jr="data-md-find",gi="data-md-find-current",hl="rounded-[2px] bg-status-warning/30 text-foreground",wf="rounded-[2px] bg-status-warning/60 text-foreground",xf=120,bf=i=>i instanceof Element&&i.hasAttribute(jr),yf=i=>i.target instanceof Element&&i.target.hasAttribute(jr)?!0:[...i.addedNodes].some(e=>bf(e)),pl=i=>{const e=new Set;i.querySelectorAll(`mark[${jr}]`).forEach(a=>{const s=a.parentNode;s&&(s.replaceChild(document.createTextNode(a.textContent??""),a),e.add(s))}),e.forEach(a=>a.normalize())},jf=(i,e)=>{pl(i);const a=e.trim().toLowerCase();if(!a)return[];const s=[],c=document.createTreeWalker(i,NodeFilter.SHOW_TEXT,{acceptNode(g){const f=g.parentElement;return!f||f.closest("svg, script, style")?NodeFilter.FILTER_REJECT:NodeFilter.FILTER_ACCEPT}}),d=[];for(;c.nextNode();){const g=c.currentNode;g instanceof Text&&d.push(g)}for(const g of d){const f=g.nodeValue??"";if(!f)continue;const p=vf(f,a);if(p.length===0)continue;const j=g.parentNode;if(!j)continue;const v=document.createDocumentFragment();let w=0;for(const b of p){b.start>w&&v.appendChild(document.createTextNode(f.slice(w,b.start)));const N=document.createElement("mark");N.setAttribute(jr,""),N.className=hl,N.textContent=f.slice(b.start,b.end),v.appendChild(N),s.push(N),w=b.end}w<f.length&&v.appendChild(document.createTextNode(f.slice(w))),j.replaceChild(v,g)}return s},Vo=({containerRef:i,open:e,onOpenChange:a,focusNonce:s,className:c})=>{const{t:d}=$e(),[g,f]=r.useState(""),[p,j]=r.useState(0),[v,w]=r.useState(0),b=r.useRef(null),N=r.useRef([]),R=r.useRef(g);R.current=g;const S=r.useRef(null),F=r.useRef(null),T=r.useCallback((M,B=!1)=>{const A=i.current;if(!A){N.current=[],j(0),w(0);return}N.current=jf(A,M);const $=N.current.length;j($),w(re=>!B||$===0?0:Math.min(re,$-1))},[i]),C=r.useCallback((M,B=!1)=>{S.current&&clearTimeout(S.current),S.current=setTimeout(()=>{S.current=null,T(M,B)},xf)},[T]);r.useEffect(()=>()=>{S.current&&clearTimeout(S.current)},[]);const V=r.useCallback(()=>{a(!1);const M=F.current;F.current=null,M?.isConnected&&M.focus()},[a]);r.useEffect(()=>{const M=i.current;if(!e||!M)return;const B=new MutationObserver(A=>{!R.current.trim()||!A.some(re=>!yf(re))||C(R.current,!0)});return B.observe(M,{childList:!0,subtree:!0,characterData:!0}),()=>{B.disconnect(),pl(M)}},[i,e,C]),r.useEffect(()=>{if(!e)return;const M=document.activeElement;M instanceof HTMLElement&&!F.current&&(F.current=M),b.current?.focus()},[e]),r.useEffect(()=>{e&&s>0&&(b.current?.focus(),b.current?.select())},[e,s]),r.useEffect(()=>{const M=i.current;if(!M||(M.querySelectorAll(`mark[${gi}]`).forEach(A=>{A.removeAttribute(gi),A.className=hl}),p===0))return;const B=N.current[Math.min(Math.max(v,0),p-1)];B&&(B.setAttribute(gi,""),B.className=wf,B.scrollIntoView({block:"nearest"}))},[i,v,p]);const D=r.useCallback(()=>{w(M=>p===0?0:(M+1)%p)},[p]),h=r.useCallback(()=>{w(M=>p===0?0:(M-1+p)%p)},[p]),O=r.useCallback(M=>{M.key==="Enter"?(M.preventDefault(),M.shiftKey?h():D()):M.key==="Escape"&&(M.preventDefault(),V())},[V,D,h]);return e?n.jsxs("div",{className:q("absolute inset-e-3 top-3 z-10 flex items-center gap-1 rounded-lg border border-border/60 bg-[var(--surface-elevated)] px-1.5 py-1 shadow-lg",c),children:[n.jsx(E,{name:"search",className:"ms-0.5 size-3.5 text-muted-foreground"}),n.jsx(xs,{ref:b,value:g,onChange:M=>{f(M.target.value),C(M.target.value)},onKeyDown:O,placeholder:d("filesView.preview.find.placeholder"),"aria-label":d("filesView.preview.find.placeholder"),className:"h-7 w-40 rounded-md px-2 py-0 text-sm md:w-56"}),n.jsx("span",{className:"min-w-12 px-1 text-center typography-micro text-muted-foreground tabular-nums","aria-live":"polite","aria-label":p>0?d("filesView.preview.find.countAria",{current:v+1,total:p}):d("filesView.preview.find.noMatches"),children:g.trim()&&p===0?d("filesView.preview.find.noMatches"):p>0?`${v+1}/${p}`:""}),n.jsx(I,{type:"button",variant:"ghost",size:"sm",className:"size-6 p-0 text-muted-foreground",onClick:h,title:d("filesView.preview.find.previousAria"),"aria-label":d("filesView.preview.find.previousAria"),disabled:p===0,children:n.jsx(E,{name:"arrow-up",className:"size-3.5"})}),n.jsx(I,{type:"button",variant:"ghost",size:"sm",className:"size-6 p-0 text-muted-foreground",onClick:D,title:d("filesView.preview.find.nextAria"),"aria-label":d("filesView.preview.find.nextAria"),disabled:p===0,children:n.jsx(E,{name:"arrow-down",className:"size-3.5"})}),n.jsx(I,{type:"button",variant:"ghost",size:"sm",className:"size-6 p-0 text-muted-foreground",onClick:V,title:d("filesView.preview.find.closeAria"),"aria-label":d("filesView.preview.find.closeAria"),children:n.jsx(E,{name:"close",className:"size-3.5"})})]}):null},Nf=1,Do=({stat:i,showsFailure:e,sawMissing:a,hasUnsavedChanges:s,moving:c})=>i==="missing"?s||c?"none":"show-missing":i==="failed"?"none":e?a?"reload":"none":"check-changes",Sf=(i,e)=>e.size!==i.size||e.mtimeMs!==void 0&&i.mtimeMs!==void 0&&Math.abs(e.mtimeMs-i.mtimeMs)>=Nf,Cf=({selectedPath:i,targetPath:e,targetShown:a,targetSettled:s,showsText:c,canEdit:d,textViewMode:g})=>i!==e?a?"wait":"select-target":s?c?g==="edit"?"jump":d?"show-editor":"end":"end":"wait";function zo(){const i=we.c(8),[e]=Mt.useState(Ff),a=Mt.useRef(!1);let s;i[0]!==e?(s=p=>{if(p==null){e.cleanUp(),a.current=!1;return}a.current||(a.current=!0,e.setup(p,p.firstElementChild??void 0))},i[0]=e,i[1]=s):s=i[1];const c=s;let d,g;i[2]!==e?(d=()=>()=>{a.current=!1,e.cleanUp()},g=[e],i[2]=e,i[3]=d,i[4]=g):(d=i[3],g=i[4]),Mt.useLayoutEffect(d,g);let f;return i[5]!==c||i[6]!==e?(f={virtualizer:e,setScroller:c},i[5]=c,i[6]=e,i[7]=f):f=i[7],f}function Ff(){return new Hd}const An=new Map,kf=100;function dr(i){const[e,a]=Mt.useState(null),s=Mt.useRef(null),c=Mt.useRef(null),d=Mt.useRef(null),g=Mt.useCallback((f,p)=>{f&&p instanceof Bd&&(d.current={key:i,file:p,node:f});const j=s.current,v=c.current,w=()=>{s.current===j&&(j?.(),v?.())};p?queueMicrotask(w):w()},[i]);return Mt.useLayoutEffect(()=>{if(!e||!i)return;const f=An.get(i)??{top:0,left:0};let p=!0;const j=()=>d.current?.key===i?d.current.file:null,v=T=>d.current?.key===i?d.current.node.shadowRoot?.querySelector(`[data-line][data-line-index="${T-1}"]`):null,w=()=>{N.disconnect(),R.disconnect()},b=()=>{if(!p)return;const T=j(),C=f.line&&T?.getLinePosition(f.line.number),V=f.line&&v(f.line.number);let D=f.top;f.line&&C&&(D=(T?.top??0)+C.top-f.line.offset),f.line&&V&&(D=e.scrollTop+V.getBoundingClientRect().top-e.getBoundingClientRect().top-f.line.offset),e.scrollTop=D,e.scrollLeft=f.left,(!f.line||V)&&Math.abs(e.scrollTop-D)<1&&Math.abs(e.scrollLeft-f.left)<1&&(p=!1,w())},N=new ResizeObserver(b),R=new MutationObserver(()=>{if(p){for(const T of e.children)N.observe(T);b()}});N.observe(e);for(const T of e.children)N.observe(T);R.observe(e,{childList:!0,subtree:!0});const S=()=>{if(p)return;const T=j(),C=T?.getNumericScrollAnchor(e.scrollTop-(T.top??0)),V=C&&v(C.lineNumber),D=V?V.getBoundingClientRect().top-e.getBoundingClientRect().top:null;if(An.delete(i),An.set(i,{top:e.scrollTop,left:e.scrollLeft,line:C&&D!==null&&D>=0&&D<e.clientHeight?{number:C.lineNumber,offset:D}:void 0}),An.size>kf){const h=An.keys().next().value;h!==void 0&&An.delete(h)}},F=()=>{p=!1,w()};return s.current=b,c.current=S,b(),e.addEventListener("scroll",S,{passive:!0}),e.addEventListener("wheel",F,{passive:!0}),e.addEventListener("touchstart",F,{passive:!0}),e.addEventListener("pointerdown",F,{passive:!0}),e.addEventListener("keydown",F),()=>{s.current=null,c.current=null,d.current?.key===i&&(d.current=null),w(),e.removeEventListener("scroll",S),e.removeEventListener("wheel",F),e.removeEventListener("touchstart",F),e.removeEventListener("pointerdown",F),e.removeEventListener("keydown",F)}},[i,e]),{setScroller:a,restore:g}}function Ef(i){return!(!i.autoSaveEnabled||!i.isDirty||!i.canWrite||i.isSaving||i.fileLoading||i.isNonEditableBinary||i.wouldEmptyFile||!i.selectedFilePath||i.loadedFilePath!==i.selectedFilePath)}function Rf(i){return i.selectedFilePath?i.isDirty?!(i.fileLoading||i.loadedFilePath!==i.selectedFilePath||i.isNonEditableBinary||i.draftContent===""&&i.fileContent!==""&&i.loadedFilePath!==i.selectedFilePath):!0:!1}const gl=2e5,Tf=i=>{let e=0,a=0;for(let s=0;s<i.length;s++)i.charCodeAt(s)===10&&(s>0&&i.charCodeAt(s-1)===13?e++:a++);return e>a?`\r
|
|
2
2
|
`:`
|
|
3
3
|
`},vl=i=>i.replace(/\r\n/g,`
|
|
4
4
|
`).replace(/\r/g,`
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{R as i,r as he,j as t,f as Ht}from"./vendor-react-BUCujlKS.js";import{u as it,G as at,L as _t,fH as Na,aL as Or,fb as Tr,A as p,I as _,aR as Js,aS as Ys,be as on,aT as Qs,az as Xs,ay as Zs,as as er,at as tr,au as os,av as ls,B as K,fI as ka,fJ as Va,t as ht,q as mt,D as ft,l as gt,F as jt,y as Er,V as us,W as ds,X as hs,fK as Ra,N as fe,fL as Ia,fM as Pa,fN as Fa,fO as Da,aU as Ba,bT as Ma,c5 as Aa,fP as Oa,fQ as Ta,fR as Ea,fS as La,fT as za,fU as Ga,fV as _a,n as ln,cc as Ha,ca as $a,c9 as Wa,cb as Ua,c3 as Ka,C as qa,o as qs,fW as Ja,z as cs,fX as be,fe as Ya,fj as Qa,fY as Xa,b7 as Za,aE as ei,fZ as ti,dA as Lr,b3 as si,bd as ri,b5 as ni,dx as ai,f_ as ii,b6 as oi,f$ as li,fi as ci,ej as ui,g0 as di,aD as hi,b8 as mi,g1 as fi,fg as gi,b9 as zr,ah as ns,bb as Gr,ba as _r,eX as pi,g2 as xi,a1 as yi,g3 as wi,aA as bi,P as vi,g4 as Hr,fd as ji,g5 as Ci,g6 as $r,cQ as Si,g7 as Ni,g8 as ki,g9 as Vi,ga as $s,gb as Ri,fp as Et,gc as Wr}from"./useAppFontEffects-BZrjCfFw.js";import{u as Ii,b as Pi}from"./main-BggWUmia.js";import{f as Fi,g as Di,h as Bi,$ as Mi,a0 as Ai,R as Oi,a1 as Ti,X as Ei,V as Li,a2 as zi,a3 as Ws,a4 as Gi,N as _i,a5 as Hi,Y as $i,a6 as Wi,a7 as Ui,a8 as Ki}from"./runtimeEndpointReset-DcZoNIpr.js";import{u as Ur}from"./vendor-zustand-BAGL70zf.js";import{k as qi,u as zt,a_ as Ji,n as Ke,a5 as ut}from"./katex.min-u4DtE8E5.js";import{R as Yi,I as Qi,C as Xi,a as Zi,b as eo,D as to}from"./InProgressOperationBanner-B3oEOw3O.js";import{P as so}from"./PierreDiffViewer-ToKfUZsI.js";import"./vendor-scheduler-7OC5HNn7.js";import"./vendor-base-ui-CPKyhvxM.js";import"./vendor-floating-ui-utils-D6FqdtJt.js";import"./vendor-floating-ui-dom-BTvzWks8.js";import"./vendor-floating-ui-core-PuGzNPnN.js";import"./vendor-floating-ui-react-dom-DxYCWdHj.js";import"./vendor-use-sync-external-store-D6wYuSt-.js";import"./vendor-zod-DDir2TeQ.js";import"./vendor-simplewebauthn-browser-VDA66rT_.js";import"./vendor-vite-runtime-DD1OZmLC.js";import"./vendor-class-variance-authority-5VPnzWs2.js";import"./vendor-clsx-B-dksMZM.js";import"./vendor-dnd-kit-core-BZknOX2w.js";import"./vendor-dnd-kit-utilities-B_MdXhJC.js";import"./vendor-dnd-kit-accessibility-BHxJPORy.js";import"./vendor-dnd-kit-sortable-CsEagZ81.js";import"./vendor-tanstack-react-virtual-Bmi0tTrf.js";import"./vendor-tanstack-virtual-core-CdGDGrnp.js";import"./vendor-framer-motion-DxDVhOLc.js";import"./vendor-motion-dom-HXPOMxb7.js";import"./vendor-motion-utils-BGh8QBgx.js";import"./vendor-codemirror-commands-dar6chwA.js";import"./vendor-codemirror-state-Dek9sMtw.js";import"./vendor-marijn-find-cluster-break-DXwl3gUT.js";import"./vendor-codemirror-view-B66jUSmE.js";import"./vendor-style-mod-NZ5MEPvj.js";import"./vendor-w3c-keyname-Vcq4gwWv.js";import"./vendor-crelt-C8TCjufn.js";import"./vendor-codemirror-language-DyL0aCoH.js";import"./vendor-lezer-common-B3-cUCR_.js";import"./vendor-lezer-highlight-CDMHUZ74.js";import"./vendor-codemirror-streamparser-CmlTsbN2.js";import"./vendor-codemirror-lang-javascript-Cem6LjJ8.js";import"./vendor-lezer-javascript-D7Tj24ot.js";import"./vendor-lezer-lr-bhwg1HMg.js";import"./vendor-codemirror-autocomplete-CIqXJolH.js";import"./vendor-codemirror-lang-json-C9rLLO0q.js";import"./vendor-lezer-json-Iaex0UN-.js";import"./vendor-codemirror-lang-css-9qjxcVkg.js";import"./vendor-lezer-css-C5xB6jxd.js";import"./vendor-codemirror-lang-html-D7VQUxeE.js";import"./vendor-lezer-html-C0I1p52t.js";import"./vendor-codemirror-lang-markdown-Cikh4w2I.js";import"./vendor-lezer-markdown-C6g-d6P3.js";import"./vendor-codemirror-language-data-DsRKCbVv.js";import"./vendor-codemirror-lang-python-DVl8-2Op.js";import"./vendor-lezer-python-CvuFxeZl.js";import"./vendor-sonner-DFyL3AvE.js";import"./vendor-capacitor-core-B4EWRrHz.js";import"./vendor-cmdk-DgLInKvT.js";import"./vendor-radix-ui-react-dialog-B94Bt2qq.js";import"./vendor-radix-ui-primitive-Dc_FVRD7.js";import"./vendor-radix-ui-react-compose-refs-DcAh5WdT.js";import"./vendor-radix-ui-react-context-Czxm7Z62.js";import"./vendor-radix-ui-react-id-f5BLKEVw.js";import"./vendor-radix-ui-react-use-layout-effect-D_3IhJdJ.js";import"./vendor-radix-ui-react-use-controllable-state-BFT5YmkA.js";import"./vendor-radix-ui-react-dismissable-layer-D7kXcwgJ.js";import"./vendor-radix-ui-react-primitive-DhVoX9SD.js";import"./vendor-radix-ui-react-slot-BQgQOasS.js";import"./vendor-radix-ui-react-use-callback-ref-BZPnuXAC.js";import"./vendor-radix-ui-react-use-escape-keydown-oph88g-F.js";import"./vendor-radix-ui-react-focus-scope-CiaxW4dD.js";import"./vendor-radix-ui-react-portal-BMJYHWck.js";import"./vendor-radix-ui-react-presence-CNxf-uq4.js";import"./vendor-radix-ui-react-focus-guards-B6qJXYua.js";import"./vendor-react-remove-scroll-DO7dCTnK.js";import"./vendor-tslib-De9GV7Vy.js";import"./vendor-react-remove-scroll-bar-BcFYyj3E.js";import"./vendor-react-style-singleton-q6EMHnwf.js";import"./vendor-get-nonce-C-Z93AgS.js";import"./vendor-use-sidecar-zDC0RhA3.js";import"./vendor-use-callback-ref-D3RC8gqK.js";import"./vendor-aria-hidden-DvXkyWUv.js";import"./vendor-legendapp-list-D2O6oUGf.js";import"./vendor-tailwind-merge-CPcsbTWB.js";import"./vendor-fuse.js-Dw8P0qyA.js";import"./useRootScrollLock-5OfQ_8IH.js";import"./moveWorkspacePath-CUn1SV66.js";import"./vendor-opencode-client-h8RufjAw.js";import"./ChangedPathLabel-CbXts83B.js";import"./parseDiffFromFile-Phw3Q2Mh.js";import"./computeVirtualFileMetrics-tFBUWYu1.js";import"./vendor-shiki-Bbf2GEcE.js";import"./vendor-shikijs-core-CGM_jqPK.js";import"./vendor-shikijs-types-CPSbSeK6.js";import"./vendor-shikijs-vscode-textmate-BgLrS_2D.js";import"./vendor-hast-util-to-html-BKBhbTDb.js";import"./vendor-html-void-elements-CkdplsNl.js";import"./vendor-property-information-rJCbAzvX.js";import"./vendor-zwitch-C2o2j-tx.js";import"./vendor-stringify-entities-CsH1VEn9.js";import"./vendor-character-entities-legacy-BpoLgcEt.js";import"./vendor-character-entities-html4-D7taRCQ7.js";import"./vendor-ccount-c2V3InAJ.js";import"./vendor-comma-separated-tokens-D8TqSuIK.js";import"./vendor-space-separated-tokens-DD3iYX1K.js";import"./vendor-hast-util-whitespace-D4Wp6AEg.js";import"./vendor-shikijs-engine-oniguruma-DPWuIF1G.js";import"./themeResolver-yJ9XpNMI.js";import"./vendor-pierre-theming-Dgp7B_O4.js";import"./vendor-shikijs-engine-javascript-Cme4830A.js";import"./vendor-oniguruma-to-es-DLBnFDCE.js";import"./vendor-oniguruma-parser-C0D4_9rT.js";import"./vendor-regex-BBWcyTkg.js";import"./vendor-regex-utilities-2BQyy0xI.js";import"./vendor-regex-recursion-JU4mF-dD.js";import"./vendor-shikijs-transformers-CZWsLLKm.js";import"./vendor-diff-C3JhlQdm.js";import"./isDiffPlainText-DxiX2X7Q.js";import"./pierreDiffTint-J7FoDbyq.js";import"./Virtualizer-CgLU97RO.js";import"./useInlineCommentController-CV8dwlO7.js";import"./appThemeRegistry-DsBAd3cG.js";import"./textMateThemeFromAppTheme-kAREvDjp.js";const cn="gitmojiCache",ro=1e3*60*60*24*7,un="1",no="https://raw.githubusercontent.com/carloscuesta/gitmoji/master/packages/gitmojis/src/gitmojis.json",dn=o=>{if(!o||typeof o!="object")return!1;const e=o;return typeof e.emoji=="string"&&typeof e.code=="string"&&typeof e.description=="string"},Us=()=>{if(typeof window>"u")return null;try{const o=window.localStorage.getItem(cn);if(!o)return null;const e=JSON.parse(o);return!e||e.version!==un||typeof e.fetchedAt!="number"||!Array.isArray(e.gitmojis)?null:{gitmojis:e.gitmojis.filter(dn),fetchedAt:e.fetchedAt,version:e.version}}catch{return null}},ao=o=>{if(!(typeof window>"u"))try{const e={gitmojis:o,fetchedAt:Date.now(),version:un};window.localStorage.setItem(cn,JSON.stringify(e))}catch{return}},Kr=o=>Date.now()-o.fetchedAt<ro;let as=null;const Gt=new Set,qr=async()=>{if(as)return as;const o=(async()=>{try{const e=await fetch(no);if(!e.ok)throw new Error(`Failed to load gitmojis: ${e.statusText}`);const n=await e.json(),h=Array.isArray(n.gitmojis)?n.gitmojis.filter(dn):[];return ao(h),Gt.forEach(x=>x(h)),h}catch(e){console.warn("Failed to load gitmoji list:",e);const n=[];return Gt.forEach(h=>h(n)),n}finally{as=null}})();return as=o,o},io=o=>{const[e,n]=i.useState(()=>o?Us()?.gitmojis??[]:[]),[h,x]=i.useState(!1),g=i.useRef(o);g.current=o,i.useEffect(()=>{if(!o){Gt.delete(n),n([]),x(!1);return}const m=Us();if(m&&(n(m.gitmojis),Kr(m)))return;Gt.add(n),x(!0);let f=!1;return qr().finally(()=>{!f&&g.current&&x(!1)}),()=>{f=!0,Gt.delete(n)}},[o]);const y=i.useCallback(async()=>{if(!g.current)return[];if(e.length>0)return e;const m=Us();return m&&Kr(m)?m.gitmojis:qr()},[e]);return{gitmojis:e,isLoading:h,ensureLoaded:y}},Ct=async(o,e)=>{const n=await qi(`/api/git/integrate/${o}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});if(!n.ok){const h=await n.json().catch(()=>null);throw new Error(h?.error||`Git integrate request failed: ${n.statusText}`)}return n.json()};async function Lt(o){return Ct("plan",o)}async function oo(o){return Ct("conflict-details",{tempWorktreePath:o})}async function lo(o){return(await Ct("cherry-pick-status",{tempWorktreePath:o})).inProgress}async function co(o){return Ct("run",{plan:o})}async function uo(o){await Ct("abort",{state:o})}async function ho(o){return Ct("continue",{state:o})}const mo=({repoRoot:o,sourceBranch:e,worktreeMetadata:n,localBranches:h,defaultTargetBranch:x,refreshKey:g,onRefresh:y,showHeader:m=!0})=>{const{t:f}=it(),w=at(d=>d.currentSessionId),[M,O]=he.useState(!1),[k,T]=he.useState(""),C=he.useRef(null),z=he.useMemo(()=>_t(h,k,d=>[d]),[h,k]),[P,b]=he.useState(x);he.useEffect(()=>{b(x)},[x]),he.useEffect(()=>{if(M){const d=setTimeout(()=>{C.current?.focus()},0);return()=>clearTimeout(d)}},[M]);const H=!!(o&&e&&P&&P!=="HEAD"&&e!==P),[S,D]=he.useState({kind:"idle"}),[V,F]=he.useState(!1),[G,Z]=he.useState([]),A=he.useMemo(()=>w?`openchamber.integrate.conflict:${w}`:null,[w]);he.useEffect(()=>{if(!A||typeof window>"u")return;const d=window.localStorage.getItem(A);if(!d)return;let c=!1;try{const I=JSON.parse(d);if(!I?.tempWorktreePath||I.repoRoot!==o){window.localStorage.removeItem(A);return}(async()=>{const L=await lo(I.tempWorktreePath).catch(()=>!1);if(c)return;if(!L){window.localStorage.removeItem(A);return}const re=await oo(I.tempWorktreePath).catch(()=>null);c||re&&D({kind:"conflict",state:I,details:re})})()}catch{window.localStorage.removeItem(A)}return()=>{c=!0}},[A,o]),he.useEffect(()=>{if(!H){D({kind:"idle"});return}let d=!1;return D({kind:"loading"}),(async()=>{try{const c=await Lt({repoRoot:o,sourceBranch:e,targetBranch:P});if(d)return;if(D({kind:"ready",plan:c}),c.commits.length>0){const L=c.commits.slice(-50).reverse(),re=await Na(o,L);d||(Z(re),F(!1))}else d||(Z([]),F(!1))}catch{d||D({kind:"idle"})}})(),()=>{d=!0}},[H,o,e,P,g]);const R=he.useCallback(d=>{w&&at.getState().setWorktreeMetadata(w,{...n,createdFromBranch:d})},[w,n]),E=at(d=>d.openNewSessionDraft),a=he.useCallback(async d=>{const c=await Or("git.integrate.cherrypick.resolve.visible",{current_commit:d.state.currentCommit,target_branch:d.state.targetBranch}),I=await Or("git.integrate.cherrypick.resolve.instructions",{repo_root:d.state.repoRoot,temp_worktree_path:d.state.tempWorktreePath,source_branch:d.state.sourceBranch,target_branch:d.state.targetBranch,current_commit:d.state.currentCommit}),L=`Cherry-pick conflict context (JSON)
|
|
1
|
+
import{R as i,r as he,j as t,f as Ht}from"./vendor-react-BUCujlKS.js";import{u as it,G as at,L as _t,fH as Na,aL as Or,fb as Tr,A as p,I as _,aR as Js,aS as Ys,be as on,aT as Qs,az as Xs,ay as Zs,as as er,at as tr,au as os,av as ls,B as K,fI as ka,fJ as Va,t as ht,q as mt,D as ft,l as gt,F as jt,y as Er,V as us,W as ds,X as hs,fK as Ra,N as fe,fL as Ia,fM as Pa,fN as Fa,fO as Da,aU as Ba,bT as Ma,c5 as Aa,fP as Oa,fQ as Ta,fR as Ea,fS as La,fT as za,fU as Ga,fV as _a,n as ln,cc as Ha,ca as $a,c9 as Wa,cb as Ua,c3 as Ka,C as qa,o as qs,fW as Ja,z as cs,fX as be,fe as Ya,fj as Qa,fY as Xa,b7 as Za,aE as ei,fZ as ti,dA as Lr,b3 as si,bd as ri,b5 as ni,dx as ai,f_ as ii,b6 as oi,f$ as li,fi as ci,ej as ui,g0 as di,aD as hi,b8 as mi,g1 as fi,fg as gi,b9 as zr,ah as ns,bb as Gr,ba as _r,eX as pi,g2 as xi,a1 as yi,g3 as wi,aA as bi,P as vi,g4 as Hr,fd as ji,g5 as Ci,g6 as $r,cQ as Si,g7 as Ni,g8 as ki,g9 as Vi,ga as $s,gb as Ri,fp as Et,gc as Wr}from"./useAppFontEffects-d9vsRNKm.js";import{u as Ii,b as Pi}from"./main-CcnDurk6.js";import{f as Fi,g as Di,h as Bi,$ as Mi,a0 as Ai,R as Oi,a1 as Ti,X as Ei,V as Li,a2 as zi,a3 as Ws,a4 as Gi,N as _i,a5 as Hi,Y as $i,a6 as Wi,a7 as Ui,a8 as Ki}from"./runtimeEndpointReset-BJUtkqal.js";import{u as Ur}from"./vendor-zustand-BAGL70zf.js";import{k as qi,u as zt,a_ as Ji,n as Ke,a5 as ut}from"./katex.min-u4DtE8E5.js";import{R as Yi,I as Qi,C as Xi,a as Zi,b as eo,D as to}from"./InProgressOperationBanner-saAihIub.js";import{P as so}from"./PierreDiffViewer-Ck0P8Q2W.js";import"./vendor-scheduler-7OC5HNn7.js";import"./vendor-base-ui-CPKyhvxM.js";import"./vendor-floating-ui-utils-D6FqdtJt.js";import"./vendor-floating-ui-dom-BTvzWks8.js";import"./vendor-floating-ui-core-PuGzNPnN.js";import"./vendor-floating-ui-react-dom-DxYCWdHj.js";import"./vendor-use-sync-external-store-D6wYuSt-.js";import"./vendor-zod-DDir2TeQ.js";import"./vendor-simplewebauthn-browser-VDA66rT_.js";import"./vendor-vite-runtime-DD1OZmLC.js";import"./vendor-class-variance-authority-5VPnzWs2.js";import"./vendor-clsx-B-dksMZM.js";import"./vendor-dnd-kit-core-BZknOX2w.js";import"./vendor-dnd-kit-utilities-B_MdXhJC.js";import"./vendor-dnd-kit-accessibility-BHxJPORy.js";import"./vendor-dnd-kit-sortable-CsEagZ81.js";import"./vendor-tanstack-react-virtual-Bmi0tTrf.js";import"./vendor-tanstack-virtual-core-CdGDGrnp.js";import"./vendor-framer-motion-DxDVhOLc.js";import"./vendor-motion-dom-HXPOMxb7.js";import"./vendor-motion-utils-BGh8QBgx.js";import"./vendor-codemirror-commands-dar6chwA.js";import"./vendor-codemirror-state-Dek9sMtw.js";import"./vendor-marijn-find-cluster-break-DXwl3gUT.js";import"./vendor-codemirror-view-B66jUSmE.js";import"./vendor-style-mod-NZ5MEPvj.js";import"./vendor-w3c-keyname-Vcq4gwWv.js";import"./vendor-crelt-C8TCjufn.js";import"./vendor-codemirror-language-DyL0aCoH.js";import"./vendor-lezer-common-B3-cUCR_.js";import"./vendor-lezer-highlight-CDMHUZ74.js";import"./vendor-codemirror-streamparser-CmlTsbN2.js";import"./vendor-codemirror-lang-javascript-Cem6LjJ8.js";import"./vendor-lezer-javascript-D7Tj24ot.js";import"./vendor-lezer-lr-bhwg1HMg.js";import"./vendor-codemirror-autocomplete-CIqXJolH.js";import"./vendor-codemirror-lang-json-C9rLLO0q.js";import"./vendor-lezer-json-Iaex0UN-.js";import"./vendor-codemirror-lang-css-9qjxcVkg.js";import"./vendor-lezer-css-C5xB6jxd.js";import"./vendor-codemirror-lang-html-D7VQUxeE.js";import"./vendor-lezer-html-C0I1p52t.js";import"./vendor-codemirror-lang-markdown-Cikh4w2I.js";import"./vendor-lezer-markdown-C6g-d6P3.js";import"./vendor-codemirror-language-data-DP_Bh3S8.js";import"./vendor-codemirror-lang-python-DVl8-2Op.js";import"./vendor-lezer-python-CvuFxeZl.js";import"./vendor-sonner-DFyL3AvE.js";import"./vendor-capacitor-core-B4EWRrHz.js";import"./vendor-cmdk-DgLInKvT.js";import"./vendor-radix-ui-react-dialog-B94Bt2qq.js";import"./vendor-radix-ui-primitive-Dc_FVRD7.js";import"./vendor-radix-ui-react-compose-refs-DcAh5WdT.js";import"./vendor-radix-ui-react-context-Czxm7Z62.js";import"./vendor-radix-ui-react-id-f5BLKEVw.js";import"./vendor-radix-ui-react-use-layout-effect-D_3IhJdJ.js";import"./vendor-radix-ui-react-use-controllable-state-BFT5YmkA.js";import"./vendor-radix-ui-react-dismissable-layer-D7kXcwgJ.js";import"./vendor-radix-ui-react-primitive-DhVoX9SD.js";import"./vendor-radix-ui-react-slot-BQgQOasS.js";import"./vendor-radix-ui-react-use-callback-ref-BZPnuXAC.js";import"./vendor-radix-ui-react-use-escape-keydown-oph88g-F.js";import"./vendor-radix-ui-react-focus-scope-CiaxW4dD.js";import"./vendor-radix-ui-react-portal-BMJYHWck.js";import"./vendor-radix-ui-react-presence-CNxf-uq4.js";import"./vendor-radix-ui-react-focus-guards-B6qJXYua.js";import"./vendor-react-remove-scroll-DO7dCTnK.js";import"./vendor-tslib-De9GV7Vy.js";import"./vendor-react-remove-scroll-bar-BcFYyj3E.js";import"./vendor-react-style-singleton-q6EMHnwf.js";import"./vendor-get-nonce-C-Z93AgS.js";import"./vendor-use-sidecar-zDC0RhA3.js";import"./vendor-use-callback-ref-D3RC8gqK.js";import"./vendor-aria-hidden-DvXkyWUv.js";import"./vendor-legendapp-list-D2O6oUGf.js";import"./vendor-tailwind-merge-CPcsbTWB.js";import"./vendor-fuse.js-Dw8P0qyA.js";import"./useRootScrollLock-BWsNuapq.js";import"./moveWorkspacePath-By4gjwmW.js";import"./vendor-opencode-client-h8RufjAw.js";import"./ChangedPathLabel-CQNGnF-T.js";import"./parseDiffFromFile-C9ASoy7R.js";import"./computeVirtualFileMetrics-rZJ-MSfY.js";import"./vendor-shiki-Bbf2GEcE.js";import"./vendor-shikijs-core-CGM_jqPK.js";import"./vendor-shikijs-types-CPSbSeK6.js";import"./vendor-shikijs-vscode-textmate-BgLrS_2D.js";import"./vendor-hast-util-to-html-BKBhbTDb.js";import"./vendor-html-void-elements-CkdplsNl.js";import"./vendor-property-information-rJCbAzvX.js";import"./vendor-zwitch-C2o2j-tx.js";import"./vendor-stringify-entities-CsH1VEn9.js";import"./vendor-character-entities-legacy-BpoLgcEt.js";import"./vendor-character-entities-html4-D7taRCQ7.js";import"./vendor-ccount-c2V3InAJ.js";import"./vendor-comma-separated-tokens-D8TqSuIK.js";import"./vendor-space-separated-tokens-DD3iYX1K.js";import"./vendor-hast-util-whitespace-D4Wp6AEg.js";import"./vendor-shikijs-engine-oniguruma-DPWuIF1G.js";import"./themeResolver-yJ9XpNMI.js";import"./vendor-pierre-theming-Dgp7B_O4.js";import"./vendor-shikijs-engine-javascript-Cme4830A.js";import"./vendor-oniguruma-to-es-DLBnFDCE.js";import"./vendor-oniguruma-parser-C0D4_9rT.js";import"./vendor-regex-BBWcyTkg.js";import"./vendor-regex-utilities-2BQyy0xI.js";import"./vendor-regex-recursion-JU4mF-dD.js";import"./vendor-shikijs-transformers-CZWsLLKm.js";import"./vendor-diff-C3JhlQdm.js";import"./isDiffPlainText-DMFSMXcK.js";import"./pierreDiffTint-IfgQ6oty.js";import"./Virtualizer-B8rX50qD.js";import"./useInlineCommentController-Cw5IRM5Y.js";import"./appThemeRegistry-CnS_OWEL.js";import"./textMateThemeFromAppTheme-Bye_bpEL.js";const cn="gitmojiCache",ro=1e3*60*60*24*7,un="1",no="https://raw.githubusercontent.com/carloscuesta/gitmoji/master/packages/gitmojis/src/gitmojis.json",dn=o=>{if(!o||typeof o!="object")return!1;const e=o;return typeof e.emoji=="string"&&typeof e.code=="string"&&typeof e.description=="string"},Us=()=>{if(typeof window>"u")return null;try{const o=window.localStorage.getItem(cn);if(!o)return null;const e=JSON.parse(o);return!e||e.version!==un||typeof e.fetchedAt!="number"||!Array.isArray(e.gitmojis)?null:{gitmojis:e.gitmojis.filter(dn),fetchedAt:e.fetchedAt,version:e.version}}catch{return null}},ao=o=>{if(!(typeof window>"u"))try{const e={gitmojis:o,fetchedAt:Date.now(),version:un};window.localStorage.setItem(cn,JSON.stringify(e))}catch{return}},Kr=o=>Date.now()-o.fetchedAt<ro;let as=null;const Gt=new Set,qr=async()=>{if(as)return as;const o=(async()=>{try{const e=await fetch(no);if(!e.ok)throw new Error(`Failed to load gitmojis: ${e.statusText}`);const n=await e.json(),h=Array.isArray(n.gitmojis)?n.gitmojis.filter(dn):[];return ao(h),Gt.forEach(x=>x(h)),h}catch(e){console.warn("Failed to load gitmoji list:",e);const n=[];return Gt.forEach(h=>h(n)),n}finally{as=null}})();return as=o,o},io=o=>{const[e,n]=i.useState(()=>o?Us()?.gitmojis??[]:[]),[h,x]=i.useState(!1),g=i.useRef(o);g.current=o,i.useEffect(()=>{if(!o){Gt.delete(n),n([]),x(!1);return}const m=Us();if(m&&(n(m.gitmojis),Kr(m)))return;Gt.add(n),x(!0);let f=!1;return qr().finally(()=>{!f&&g.current&&x(!1)}),()=>{f=!0,Gt.delete(n)}},[o]);const y=i.useCallback(async()=>{if(!g.current)return[];if(e.length>0)return e;const m=Us();return m&&Kr(m)?m.gitmojis:qr()},[e]);return{gitmojis:e,isLoading:h,ensureLoaded:y}},Ct=async(o,e)=>{const n=await qi(`/api/git/integrate/${o}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});if(!n.ok){const h=await n.json().catch(()=>null);throw new Error(h?.error||`Git integrate request failed: ${n.statusText}`)}return n.json()};async function Lt(o){return Ct("plan",o)}async function oo(o){return Ct("conflict-details",{tempWorktreePath:o})}async function lo(o){return(await Ct("cherry-pick-status",{tempWorktreePath:o})).inProgress}async function co(o){return Ct("run",{plan:o})}async function uo(o){await Ct("abort",{state:o})}async function ho(o){return Ct("continue",{state:o})}const mo=({repoRoot:o,sourceBranch:e,worktreeMetadata:n,localBranches:h,defaultTargetBranch:x,refreshKey:g,onRefresh:y,showHeader:m=!0})=>{const{t:f}=it(),w=at(d=>d.currentSessionId),[M,O]=he.useState(!1),[k,T]=he.useState(""),C=he.useRef(null),z=he.useMemo(()=>_t(h,k,d=>[d]),[h,k]),[P,b]=he.useState(x);he.useEffect(()=>{b(x)},[x]),he.useEffect(()=>{if(M){const d=setTimeout(()=>{C.current?.focus()},0);return()=>clearTimeout(d)}},[M]);const H=!!(o&&e&&P&&P!=="HEAD"&&e!==P),[S,D]=he.useState({kind:"idle"}),[V,F]=he.useState(!1),[G,Z]=he.useState([]),A=he.useMemo(()=>w?`openchamber.integrate.conflict:${w}`:null,[w]);he.useEffect(()=>{if(!A||typeof window>"u")return;const d=window.localStorage.getItem(A);if(!d)return;let c=!1;try{const I=JSON.parse(d);if(!I?.tempWorktreePath||I.repoRoot!==o){window.localStorage.removeItem(A);return}(async()=>{const L=await lo(I.tempWorktreePath).catch(()=>!1);if(c)return;if(!L){window.localStorage.removeItem(A);return}const re=await oo(I.tempWorktreePath).catch(()=>null);c||re&&D({kind:"conflict",state:I,details:re})})()}catch{window.localStorage.removeItem(A)}return()=>{c=!0}},[A,o]),he.useEffect(()=>{if(!H){D({kind:"idle"});return}let d=!1;return D({kind:"loading"}),(async()=>{try{const c=await Lt({repoRoot:o,sourceBranch:e,targetBranch:P});if(d)return;if(D({kind:"ready",plan:c}),c.commits.length>0){const L=c.commits.slice(-50).reverse(),re=await Na(o,L);d||(Z(re),F(!1))}else d||(Z([]),F(!1))}catch{d||D({kind:"idle"})}})(),()=>{d=!0}},[H,o,e,P,g]);const R=he.useCallback(d=>{w&&at.getState().setWorktreeMetadata(w,{...n,createdFromBranch:d})},[w,n]),E=at(d=>d.openNewSessionDraft),a=he.useCallback(async d=>{const c=await Or("git.integrate.cherrypick.resolve.visible",{current_commit:d.state.currentCommit,target_branch:d.state.targetBranch}),I=await Or("git.integrate.cherrypick.resolve.instructions",{repo_root:d.state.repoRoot,temp_worktree_path:d.state.tempWorktreePath,source_branch:d.state.sourceBranch,target_branch:d.state.targetBranch,current_commit:d.state.currentCommit}),L=`Cherry-pick conflict context (JSON)
|
|
2
2
|
${JSON.stringify({repoRoot:d.state.repoRoot,tempWorktreePath:d.state.tempWorktreePath,sourceBranch:d.state.sourceBranch,targetBranch:d.state.targetBranch,currentCommit:d.state.currentCommit,remainingCommits:d.state.remainingCommits,statusPorcelain:d.details.statusPorcelain,unmergedFiles:d.details.unmergedFiles,currentPatchMeta:d.details.currentPatchMeta,currentPatch:d.details.currentPatch,diff:d.details.diff},null,2)}`;return{visibleText:c,instructionsText:I,payloadText:L}},[]),Y=Tr(d=>d.setPendingInputText),q=Tr(d=>d.setPendingSyntheticParts),J=he.useCallback(async(d,c)=>{const I=await a(d);if(c){E({directoryOverride:d.state.tempWorktreePath,initialPrompt:I.visibleText,syntheticParts:[{text:I.instructionsText,synthetic:!0},{text:I.payloadText,synthetic:!0}]});return}if(!w){p.error(f("gitView.integrate.noActiveSession"),{description:f("gitView.integrate.noActiveSessionDescription")});return}Y(I.visibleText,"replace"),q([{text:I.instructionsText,synthetic:!0},{text:I.payloadText,synthetic:!0}])},[w,a,E,Y,q,f]),j=he.useCallback(async()=>{if(S.kind==="ready"){if(S.plan.commits.length===0){p.message(f("gitView.integrate.noCommitsToMoveToast"));return}D({kind:"running",plan:S.plan});try{const d=await co(S.plan);if(d.kind==="success"){p.success(f("gitView.integrate.commitsMovedToast"),{description:d.moved===1?f("gitView.integrate.commitsMovedDescriptionSingle",{count:d.moved,branch:S.plan.targetBranch}):f("gitView.integrate.commitsMovedDescriptionPlural",{count:d.moved,branch:S.plan.targetBranch})});const c=await Lt(S.plan);D({kind:"ready",plan:c}),y?.();return}d.kind==="conflict"&&(p.error(f("gitView.integrate.cherryPickConflictToast"),{description:f("gitView.integrate.cherryPickConflictDescription")}),D({kind:"conflict",state:d.state,details:d.details}),A&&typeof window<"u"&&window.localStorage.setItem(A,JSON.stringify(d.state)))}catch(d){const c=d instanceof Error?d.message:String(d);p.error(f("gitView.integrate.failedToMoveToast"),{description:c});const I=await Lt({repoRoot:o,sourceBranch:e,targetBranch:P}).catch(()=>null);D(I?{kind:"ready",plan:I}:{kind:"idle"})}}},[S,y,o,e,P,A,f]),U=he.useCallback(async()=>{if(S.kind==="conflict")try{await uo(S.state),p.message(f("gitView.integrate.cherryPickAbortedToast")),A&&typeof window<"u"&&window.localStorage.removeItem(A)}finally{const d=await Lt({repoRoot:o,sourceBranch:e,targetBranch:P}).catch(()=>null);D(d?{kind:"ready",plan:d}:{kind:"idle"})}},[S,o,e,P,A,f]),te=he.useCallback(async()=>{if(S.kind==="conflict")try{const d=await ho(S.state);if(d.kind==="success"){p.success(f("gitView.integrate.cherryPickFinishedToast"));const c=await Lt({repoRoot:o,sourceBranch:e,targetBranch:P}).catch(()=>null);D(c?{kind:"ready",plan:c}:{kind:"idle"}),A&&typeof window<"u"&&window.localStorage.removeItem(A),y?.();return}d.kind==="conflict"&&(D({kind:"conflict",state:d.state,details:d.details}),A&&typeof window<"u"&&window.localStorage.setItem(A,JSON.stringify(d.state)))}catch(d){const c=d instanceof Error?d.message:String(d);p.error(f("gitView.integrate.cherryPickContinueFailedToast"),{description:c})}},[S,o,e,P,y,A,f]);return!o||!e?null:t.jsxs("section",{className:"border-0 bg-transparent rounded-none",children:[m?t.jsxs("div",{className:"px-0 py-3 border-b border-border/40 flex items-center justify-between gap-2",children:[t.jsxs("div",{className:"flex items-center gap-2 min-w-0",children:[t.jsx(_,{name:"split-cells-horizontal",className:"size-4 text-muted-foreground"}),t.jsx("h3",{className:"typography-ui-header font-semibold text-foreground truncate",children:f("gitView.integrate.title")}),S.kind==="ready"&&S.plan.commits.length>0?t.jsx("span",{className:"typography-meta text-muted-foreground truncate",children:f("gitView.integrate.toMoveCount",{count:S.plan.commits.length})}):null]}),t.jsx("div",{className:"flex items-center gap-2",children:S.kind==="loading"||S.kind==="running"?t.jsx(_,{name:"loader-4",className:"size-4 animate-spin text-muted-foreground"}):null})]}):null,t.jsxs("div",{className:"flex flex-col gap-3 py-3",children:[t.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[t.jsxs("div",{className:"min-w-0",children:[t.jsx("div",{className:"typography-ui-label text-foreground",children:f("gitView.integrate.moveCommits")}),t.jsxs("div",{className:"typography-micro text-muted-foreground truncate",children:[e," → ",P]})]}),t.jsx("div",{className:"flex-1"}),t.jsxs(Js,{open:M,onOpenChange:O,children:[t.jsx(Ys,{asChild:!0,children:t.jsxs("button",{type:"button",className:on({size:"default"}),children:[f("gitView.integrate.target"),t.jsx("span",{className:"max-w-[160px] truncate font-mono text-xs text-muted-foreground",children:P}),t.jsx(_,{name:"arrow-down-s",className:"size-4 opacity-60"})]})}),t.jsx(Qs,{align:"end",className:"w-72 p-0 max-h-[var(--available-height)] flex flex-col overflow-hidden",children:t.jsxs(Xs,{className:"h-full min-h-0",shouldFilter:!1,children:[t.jsx(Zs,{ref:C,placeholder:f("gitView.branch.searchPlaceholder"),value:k,onValueChange:T,onKeyDown:d=>d.stopPropagation()}),t.jsxs(er,{className:"h-full min-h-0",scrollbarClassName:"overlay-scrollbar--flush overlay-scrollbar--dense overlay-scrollbar--zero",disableHorizontal:!0,children:[t.jsx(tr,{children:f("gitView.branch.empty")}),t.jsx(os,{heading:f("gitView.branch.localBranches"),children:z.map(d=>t.jsx(ls,{value:d,onSelect:()=>{b(d),R(d),O(!1),T("")},children:d},d))})]})]})})]}),S.kind==="ready"?t.jsx(K,{size:"sm",onClick:()=>{j()},disabled:!H||S.plan.commits.length===0,children:f("gitView.integrate.move")}):S.kind==="loading"?t.jsx(K,{size:"sm",variant:"outline",disabled:!0,children:f("gitView.integrate.checking")}):S.kind==="running"?t.jsx(K,{size:"sm",variant:"outline",disabled:!0,children:f("gitView.integrate.moving")}):null]}),S.kind==="ready"&&S.plan.commits.length===0&&t.jsx("div",{className:"typography-meta text-muted-foreground",children:f("gitView.integrate.noCommitsToMove")}),S.kind==="ready"&&S.plan.commits.length>0&&t.jsxs("div",{className:"space-y-2",children:[t.jsxs("div",{className:"flex items-center justify-between gap-2",children:[t.jsxs("div",{className:"typography-meta text-foreground",children:[f("gitView.integrate.commitsToMove"),t.jsxs("span",{className:"text-muted-foreground",children:[" (",S.plan.commits.length,")"]})]}),G.length>0&&S.plan.commits.length>5&&t.jsx("button",{type:"button",onClick:()=>F(d=>!d),className:"typography-micro text-muted-foreground hover:text-foreground",children:f(V?"gitView.integrate.showLess":"gitView.integrate.showAll")})]}),t.jsxs("div",{className:"space-y-1",children:[(V?G:G.slice(0,5)).map(d=>t.jsxs("div",{className:"flex items-baseline gap-2 min-w-0",children:[t.jsx("span",{className:"font-mono text-xs text-muted-foreground flex-shrink-0",children:d.short}),t.jsx("span",{className:"typography-meta text-muted-foreground truncate",children:d.subject||d.sha})]},d.sha)),G.length===0&&t.jsx("div",{className:"typography-meta text-muted-foreground",children:f("gitView.integrate.previewUnavailable")}),S.plan.commits.length>G.length&&t.jsx("div",{className:"typography-micro text-muted-foreground/70",children:f("gitView.integrate.showingFirstCommits",{count:G.length})})]})]}),S.kind==="conflict"&&t.jsxs("div",{className:"rounded-md oc-tile p-3 space-y-2",children:[t.jsx("div",{className:"typography-meta text-foreground",children:f("gitView.integrate.conflictsInFiles",{count:S.details.unmergedFiles.length})}),t.jsxs("div",{className:"typography-micro text-muted-foreground/80",children:[f("gitView.integrate.currentCommit"),": ",t.jsx("span",{className:"font-mono",children:S.state.currentCommit.slice(0,7)})]}),t.jsxs("div",{className:"flex flex-wrap gap-1.5",children:[S.details.unmergedFiles.slice(0,6).map(d=>t.jsx("span",{className:"font-mono text-xs px-2 py-0.5 rounded oc-tile-inset text-muted-foreground",children:d},d)),S.details.unmergedFiles.length>6&&t.jsx("span",{className:"text-xs text-muted-foreground",children:f("gitView.integrate.moreFiles",{count:S.details.unmergedFiles.length-6})})]}),t.jsxs("div",{className:"flex items-center gap-2 pt-1",children:[t.jsx(K,{size:"sm",variant:"ghost",className:"typography-meta",onClick:()=>{U()},children:f("gitView.operation.abort")}),t.jsxs(K,{size:"sm",variant:"secondary",className:"typography-meta gap-1",disabled:!w,onClick:()=>{J({state:S.state,details:S.details},!1)},children:[t.jsx(_,{name:"sparkling",className:"size-3.5"}),f("gitView.integrate.currentSession")]}),t.jsxs(K,{size:"sm",variant:"secondary",className:"typography-meta gap-1",onClick:()=>{J({state:S.state,details:S.details},!0)},children:[t.jsx(_,{name:"sparkling",className:"size-3.5"}),f("gitView.integrate.newSession")]}),t.jsx(K,{size:"sm",className:"typography-meta",onClick:()=>{te()},children:f("gitView.operation.continue")})]})]})]})]})},fo=({open:o,onOpenChange:e,directory:n,hasUncommittedChanges:h,hasStagedChanges:x=!1,uncommittedFileCount:g,onChanged:y})=>{const{t:m}=it(),[f,w]=i.useState([]),[M,O]=i.useState(!1),[k,T]=i.useState(""),[C,z]=i.useState(""),[P,b]=i.useState(null),[H,S]=i.useState({}),D=i.useCallback(async()=>{if(n){O(!0);try{const R=await ka(n);w(R.stashes),S({})}catch(R){p.error(R instanceof Error?R.message:m("gitView.stashes.toast.loadFailed"))}finally{O(!1)}}},[n,m]);i.useEffect(()=>{o&&D()},[D,o]),i.useEffect(()=>{if(!o||!n||f.length===0)return;let R=!1;const E=f.map(a=>a.ref);return Va(n,E).then(a=>{R||S(a.counts)}).catch(()=>{}),()=>{R=!0}},[n,o,f]);const V=i.useMemo(()=>_t(f,k,R=>[R.message,R.ref,R.relativeTime]),[k,f]),F=i.useCallback(async R=>{await D(),await y?.(R)},[D,y]),G=async()=>{if(!(!n||P)){b("create");try{const R=await Ra(n,{message:C.trim()||void 0});R.created?(p.success(m("gitView.stashes.toast.created")),z("")):p.info(m("gitView.stashes.toast.noChanges")),await F({affectsIndex:!!(R.created&&x)})}catch(R){p.error(R instanceof Error?R.message:m("gitView.stashes.toast.createFailed"))}finally{b(null)}}},Z=async(R,E)=>{if(!(!n||P)&&!(E==="drop"&&!window.confirm(m("gitView.stashes.confirm.drop",{ref:R.ref})))){b(`${E}:${R.ref}`);try{E==="apply"&&await Ia(n,{ref:R.ref}),E==="pop"&&await Pa(n,{ref:R.ref}),E==="drop"&&await Fa(n,{ref:R.ref});const a=E==="apply"?"gitView.stashes.toast.applySuccess":E==="pop"?"gitView.stashes.toast.popSuccess":"gitView.stashes.toast.dropSuccess";p.success(m(a)),await F({affectsIndex:E!=="drop"})}catch(a){const Y=E==="apply"?"gitView.stashes.toast.applyFailed":E==="pop"?"gitView.stashes.toast.popFailed":"gitView.stashes.toast.dropFailed";p.error(a instanceof Error?a.message:m(Y)),await F({affectsIndex:E!=="drop"})}finally{b(null)}}},A=P!==null;return t.jsx(ht,{open:o,onOpenChange:e,children:t.jsxs(mt,{className:"max-w-2xl max-h-[70vh] flex flex-col",children:[t.jsxs(ft,{children:[t.jsxs(gt,{className:"flex items-center gap-2",children:[t.jsx(_,{name:"archive-stack",className:"size-4 text-muted-foreground"}),m("gitView.stashes.title")]}),t.jsx(jt,{children:m("gitView.stashes.description")})]}),t.jsxs("div",{className:"flex flex-col gap-1.5",children:[t.jsxs("div",{className:"flex flex-col gap-2 sm:flex-row",children:[t.jsx(Er,{value:C,onChange:R=>z(R.target.value),placeholder:m("gitView.stashes.messagePlaceholder"),disabled:A||!h,className:"flex-1"}),t.jsxs(K,{onClick:G,disabled:!h||A||!n,children:[P==="create"?t.jsx(_,{name:"loader-4",className:"size-4 animate-spin"}):t.jsx(_,{name:"inbox-archive",className:"size-4"}),m("gitView.stashes.actions.stashCurrentWithCount",{count:g})]})]}),t.jsx("p",{className:"typography-micro text-muted-foreground",children:m("gitView.stashes.includeUntrackedHint")})]}),t.jsx("div",{className:"-mx-5 border-t border-border/60"}),t.jsxs("div",{className:"relative",children:[t.jsx(_,{name:"search",className:"absolute inset-s-2.5 top-1/2 size-3.5 -translate-y-1/2 text-muted-foreground"}),t.jsx(Er,{value:k,onChange:R=>T(R.target.value),placeholder:m("gitView.stashes.searchPlaceholder"),className:"ps-8"})]}),t.jsx("div",{className:"flex-1 overflow-y-auto",children:M?t.jsx("div",{className:"flex items-center justify-center py-10 text-muted-foreground",children:t.jsx(_,{name:"loader-4",className:"size-5 animate-spin"})}):V.length===0?t.jsx("div",{className:"py-8 text-center text-muted-foreground",children:m(k?"gitView.stashes.empty.search":"gitView.stashes.empty.list")}):V.map((R,E)=>t.jsxs("div",{className:"group -mx-2 flex items-center gap-2 rounded-md px-2 py-1.5 transition-colors hover:bg-interactive-hover",children:[t.jsxs("div",{className:"min-w-0 flex-1",children:[t.jsx("p",{className:"typography-ui-label truncate text-foreground",children:R.message||m("gitView.stashes.untitled")}),t.jsxs("p",{className:"typography-micro truncate text-muted-foreground",children:[t.jsxs(us,{children:[t.jsx(ds,{asChild:!0,children:t.jsx("span",{children:E===0&&!k.trim()?m("gitView.stashes.latestLabel"):m("gitView.stashes.itemNumber",{number:E+1})})}),t.jsx(hs,{sideOffset:6,children:R.ref})]})," · ",R.relativeTime," · ",typeof H[R.ref]=="number"?m("gitView.stashes.fileCount",{count:H[R.ref]}):m("gitView.stashes.fileCountLoading")]})]}),t.jsxs("div",{className:"flex shrink-0 items-center gap-0.5 opacity-100 sm:opacity-0 sm:group-hover:opacity-100",children:[t.jsx(Ks,{label:m("gitView.stashes.actions.apply"),loading:P===`apply:${R.ref}`,onClick:()=>Z(R,"apply"),disabled:A,children:t.jsx(_,{name:"inbox-unarchive",className:"size-3.5"})}),t.jsx(Ks,{label:m("gitView.stashes.actions.pop"),loading:P===`pop:${R.ref}`,onClick:()=>Z(R,"pop"),disabled:A,children:t.jsx(_,{name:"inbox-unarchive-fill",className:"size-3.5"})}),t.jsx(Ks,{label:m("gitView.stashes.actions.drop"),loading:P===`drop:${R.ref}`,onClick:()=>Z(R,"drop"),disabled:A,destructive:!0,children:t.jsx(_,{name:"delete-bin",className:"size-3.5"})})]})]},R.ref))})]})})},Ks=o=>{const e=Ht.c(17),{label:n,loading:h,disabled:x,destructive:g,onClick:y,children:m}=o,f=h||void 0,w=g?"text-[var(--status-error)] hover:text-[var(--status-error)]":"text-muted-foreground hover:text-foreground";let M;e[0]!==w?(M=fe("flex size-6 items-center justify-center rounded-md transition-colors hover:bg-interactive-hover disabled:opacity-50",w),e[0]=w,e[1]=M):M=e[1];let O;e[2]!==m||e[3]!==h?(O=h?t.jsx(_,{name:"loader-4",className:"size-3.5 animate-spin"}):m,e[2]=m,e[3]=h,e[4]=O):O=e[4];let k;e[5]!==x||e[6]!==n||e[7]!==y||e[8]!==f||e[9]!==M||e[10]!==O?(k=t.jsx(ds,{asChild:!0,children:t.jsx("button",{type:"button","aria-label":n,"aria-busy":f,className:M,onClick:y,disabled:x,children:O})}),e[5]=x,e[6]=n,e[7]=y,e[8]=f,e[9]=M,e[10]=O,e[11]=k):k=e[11];let T;e[12]!==n?(T=t.jsx(hs,{sideOffset:6,children:n}),e[12]=n,e[13]=T):T=e[13];let C;return e[14]!==k||e[15]!==T?(C=t.jsxs(us,{children:[k,T]}),e[14]=k,e[15]=T,e[16]=C):C=e[16],C},go=o=>{const e=Ht.c(16),{onOpenStashes:n}=o,{t:h}=it();let x;e[0]===Symbol.for("react.memo_cache_sentinel")?(x=t.jsx(_,{name:"git-commit",className:"size-10 text-muted-foreground/70 mb-4"}),e[0]=x):x=e[0];let g;e[1]!==h?(g=h("gitView.empty.cleanTitle"),e[1]=h,e[2]=g):g=e[2];let y;e[3]!==g?(y=t.jsx("p",{className:"typography-ui-label font-semibold text-foreground mb-1",children:g}),e[3]=g,e[4]=y):y=e[4];let m;e[5]!==h?(m=h("gitView.empty.cleanDescription"),e[5]=h,e[6]=m):m=e[6];let f;e[7]!==m?(f=t.jsx("p",{className:"typography-meta text-muted-foreground mb-4",children:m}),e[7]=m,e[8]=f):f=e[8];let w;e[9]!==n||e[10]!==h?(w=n?t.jsxs(K,{type:"button",variant:"outline",size:"sm",onClick:n,className:"gap-1.5",children:[t.jsx(_,{name:"archive-stack",className:"size-4"}),h("gitView.stashes.title")]}):null,e[9]=n,e[10]=h,e[11]=w):w=e[11];let M;return e[12]!==y||e[13]!==f||e[14]!==w?(M=t.jsxs("div",{className:"flex flex-col items-center justify-center py-10 px-4 text-center",children:[x,y,f,w]}),e[12]=y,e[13]=f,e[14]=w,e[15]=M):M=e[15],M},nt=8,po=o=>{const e=Ht.c(18),{laned:n,totalLanes:h,isExpanded:x}=o,{lane:g,color:y,connectors:m}=n,w=Math.max(h,g+1)*nt+nt/2,M=i.useRef(null),O=i.useRef(null);let k;e[0]!==y||e[1]!==m||e[2]!==g||e[3]!==w?(k=()=>{const b=M.current,H=O.current;if(!b||!H)return;const S=b.offsetHeight;if(S===0)return;const D=window.devicePixelRatio||1;H.width=w*D,H.height=S*D;const V=H.getContext("2d");if(!V)return;V.scale(D,D),V.clearRect(0,0,w,S);const F=S/2,G=g*nt+nt/2,Z=getComputedStyle(H),A=Z.getPropertyValue("--surface-muted-foreground").trim()||Z.color,R=Y=>{if(!Y.startsWith("var("))return Y;const q=Y.slice(4,-1).trim();return Z.getPropertyValue(q).trim()||A},E=[...m].sort(yo);for(const Y of E){const q=Y.fromLane*nt+nt/2,J=Y.toLane*nt+nt/2,j=Y.type==="passing"?.72:Y.type==="branch-out"||Y.type==="merge-in"?.95:1;V.beginPath(),V.strokeStyle=R(Y.color),V.globalAlpha=j,V.lineWidth=1.25,V.lineCap="round";e:switch(Y.type){case"passing":case"commit-lane":{V.moveTo(q,0),V.lineTo(q,S);break e}case"top-stub":{V.moveTo(q,0),V.lineTo(q,F);break e}case"bottom-stub":{V.moveTo(q,F),V.lineTo(q,S);break e}case"branch-out":{const U=(F+S)/2;V.moveTo(G,F),V.bezierCurveTo(G,U,J,U,J,S);break e}case"merge-in":{const U=F/2;V.moveTo(q,0),V.bezierCurveTo(q,U,G,U,G,F);break e}default:continue}V.stroke(),V.globalAlpha=1}const a=Z.getPropertyValue("--background").trim()||Z.getPropertyValue("--surface-background").trim();V.beginPath(),V.arc(G,F,4,0,Math.PI*2),V.fillStyle=R(y),V.fill(),V.beginPath(),V.arc(G,F,5,0,Math.PI*2),V.strokeStyle=a||A,V.lineWidth=2,V.stroke()},e[0]=y,e[1]=m,e[2]=g,e[3]=w,e[4]=k):k=e[4];let T;e[5]!==y||e[6]!==m||e[7]!==x||e[8]!==g||e[9]!==n||e[10]!==h||e[11]!==w?(T=[n,g,y,m,h,x,w],e[5]=y,e[6]=m,e[7]=x,e[8]=g,e[9]=n,e[10]=h,e[11]=w,e[12]=T):T=e[12],i.useLayoutEffect(k,T);let C;e[13]!==w?(C={width:w,height:"100%",position:"relative",flexShrink:0,overflow:"hidden"},e[13]=w,e[14]=C):C=e[14];let z;e[15]===Symbol.for("react.memo_cache_sentinel")?(z=t.jsx("canvas",{ref:O,style:{position:"absolute",inset:0,width:"100%",height:"100%",display:"block"}}),e[15]=z):z=e[15];let P;return e[16]!==C?(P=t.jsx("div",{ref:M,style:C,children:z}),e[16]=C,e[17]=P):P=e[17],P};function xo(o){return o==="branch-out"||o==="merge-in"}function yo(o,e){const n=xo;return(n(o.type)?1:0)-(n(e.type)?1:0)}const Jr=15e3,Yr=500,Qr=12,Xr=8*1024*1024,vt="h-6 text-foreground/80 hover:bg-transparent hover:text-foreground",Zr=o=>typeof o=="string"?0:(o.original?.length??0)+(o.modified?.length??0),en=o=>{if(o.size<=Qr){let x=0;for(const g of o.values())x+=Zr(g);if(x<=Xr)return o}const e=Array.from(o.entries()).reverse(),n=new Map;let h=0;for(const[x,g]of e){if(n.size>=Qr)continue;const y=Zr(g);h+y>Xr&&n.size>0||(n.set(x,g),h+=y)}return new Map(Array.from(n.entries()).reverse())};function tn(o,e){const n=new Date(o);return Number.isNaN(n.getTime())?o:Aa(n,e,{year:"numeric",month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"})}function wo(o){switch(o){case"A":return"text-[var(--status-success)]";case"D":return"text-[var(--status-error)]";case"M":return"text-[var(--status-warning)]";case"R":return"text-[var(--status-info)]";default:return"text-muted-foreground"}}function bo(o){return o?o.split(",").map(e=>e.trim()).filter(Boolean).map(e=>{const n=e.startsWith("HEAD ->");return{label:n?e.replace("HEAD -> ",""):e.replace("tag: ",""),isHead:n,isTag:e.startsWith("tag: ")}}):[]}const vo=i.memo(({entry:o,mode:e="history",laned:n,totalLanes:h,isExpanded:x,onToggle:g,files:y,isLoadingFiles:m,onCopyHash:f,directory:w,onConflict:M,onActionSuccess:O})=>{const{t:k}=it(),T=zt(c=>c.timeFormatPreference),C=e==="graph",[z,P]=i.useState(null),[b,H]=i.useState(!1),[S,D]=i.useState(""),[V,F]=i.useState(null),[G,Z]=i.useState(new Set),[A,R]=i.useState(new Map),[E,a]=i.useState(new Set),Y=async()=>{if(w){P("checkout");try{await _a(w,o.hash),p.success(k("gitView.history.actions.detachedHead")),O?.()}catch(c){p.error(String(c.message))}finally{P(null)}}},q=async()=>{if(!(!w||!S.trim())){P("createBranch");try{await Oa(w,S.trim(),o.hash),H(!1),D(""),O?.()}catch(c){p.error(String(c.message))}finally{P(null)}}},J=async()=>{if(w){P("cherryPick");try{const c=await Ga(w,o.hash);c.conflict?M?.({conflict:!0,conflictFiles:c.conflictFiles,operation:"cherry-pick"}):O?.()}catch(c){p.error(String(c.message))}finally{P(null)}}},j=async()=>{if(w){P("revert");try{const c=await za(w,o.hash);c.conflict?M?.({conflict:!0,conflictFiles:c.conflictFiles,operation:"revert"}):O?.()}catch(c){p.error(String(c.message))}finally{P(null)}}},U=async(c,I=!1)=>{if(!(!w||z!==null)){P("reset");try{await Ta(w,o.hash,c,I),O?.()}catch(L){p.error(String(L.message))}finally{P(null)}}},te=async()=>{if(!V)return;const c=V;switch(F(null),c){case"checkout":return Y();case"cherryPick":return J();case"revert":return j();case"merge":return oe();case"rebase":return xe();case"resetSoft":return U("soft");case"resetMixed":return U("mixed");case"resetHard":return U("hard",!0)}},oe=async()=>{if(w){P("merge");try{const c=await La(w,{branch:o.hash});c.conflict?M?.({conflict:!0,conflictFiles:c.conflictFiles,operation:"merge"}):O?.()}catch(c){p.error(String(c.message))}finally{P(null)}}},xe=async()=>{if(w){P("rebase");try{const c=await Ea(w,{onto:o.hash});c.conflict?M?.({conflict:!0,conflictFiles:c.conflictFiles,operation:"rebase"}):O?.()}catch(c){p.error(String(c.message))}finally{P(null)}}},me=i.useCallback(async c=>{const I=c.path;if(!w){R(L=>new Map(L).set(I,"error"));return}R(L=>en(new Map(L).set(I,"loading")));try{const L=Da(w,o.hash,c.path,!1),re=new Promise((ce,ee)=>{setTimeout(()=>ee(new Error(`Timed out after ${Jr}ms`)),Jr)}),de=await Promise.race([L,re]);R(ce=>en(new Map(ce).set(I,de)))}catch{R(L=>new Map(L).set(I,"error"))}},[w,o.hash]),d=i.useCallback(async c=>{const I=c.path;if(c.changeType==="R"||c.isBinary){Z(ce=>{const ee=new Set(ce);return ee.has(I)?ee.delete(I):ee.add(I),ee});return}const L=A.get(I);if(G.has(I)&&L&&L!=="error"){Z(ce=>{const ee=new Set(ce);return ee.delete(I),ee});return}Z(ce=>{const ee=new Set(ce);return ee.add(I),ee}),!(L&&L!=="error"||c.insertions+c.deletions>Yr&&!E.has(I))&&await me(c)},[A,E,me,G]);return t.jsxs("li",{children:[t.jsxs("button",{type:"button",onClick:g,className:fe("w-full flex items-start gap-3 px-3 py-2 text-start transition-colors",C?"hover:bg-[var(--interactive-hover)]/40":x?"oc-tile-inset":"oc-tile-hover"),children:[C&&n&&h!==void 0?t.jsx("div",{className:"-my-2 shrink-0 self-stretch",children:t.jsx(po,{laned:n,totalLanes:h,isExpanded:x})}):t.jsx("div",{className:"h-2 w-2 translate-y-2 rounded-full shrink-0",style:{backgroundColor:"var(--status-success)"},"aria-hidden":!0}),t.jsxs("div",{className:"min-w-0 flex-1",children:[C?(()=>{const c=bo(o.refs);return c.length>0?t.jsx("div",{className:"flex flex-wrap gap-1 mb-0.5",children:c.map(I=>t.jsx("span",{className:fe("inline-flex items-center px-1.5 py-0 typography-micro rounded font-medium",I.isHead?"bg-[var(--chart-1)] text-[var(--primary-foreground)]":I.isTag?"bg-[var(--chart-5)] text-[var(--primary-foreground)]":"bg-[var(--interactive-hover)] text-[var(--foreground)]"),children:I.label},I.label))}):null})():null,t.jsx("p",{className:"typography-ui-label font-medium text-foreground line-clamp-1",children:o.message}),t.jsxs("div",{className:"flex items-center gap-1 typography-meta text-muted-foreground",children:[t.jsxs("div",{className:"flex items-center gap-1 min-w-0 truncate",children:[t.jsx("span",{className:"truncate min-w-[3ch]",title:o.author_name,children:o.author_name}),t.jsx("span",{className:"shrink-0",children:"·"}),t.jsx("span",{className:"truncate min-w-0",title:tn(o.date,T),children:tn(o.date,T)})]}),t.jsx("span",{className:"shrink-0",children:"·"}),t.jsx("code",{className:"shrink-0 font-mono",children:o.hash.slice(0,8)}),t.jsxs(us,{children:[t.jsx(ds,{asChild:!0,children:t.jsx(K,{variant:"ghost",size:"sm",className:"h-5 px-1 shrink-0",onClick:c=>{c.stopPropagation(),f(o.hash)},children:t.jsx(_,{name:"file-copy",className:"size-3"})})}),t.jsx(hs,{sideOffset:8,children:k("gitView.history.copySha")})]})]})]})]}),x&&t.jsxs("div",{className:"oc-tile-inset px-3 pb-2 ps-8",children:[C&&V?t.jsxs("div",{className:"flex items-center gap-2 py-2 border-b border-border/30 mb-2",children:[t.jsx("span",{className:"typography-micro text-muted-foreground flex-1 min-w-0",children:k(`gitView.history.actions.${V}Confirm`)}),t.jsxs(K,{variant:"destructive",size:"xs",className:"h-6 shrink-0",disabled:z!==null,onClick:c=>{c.stopPropagation(),te()},children:[z!==null?t.jsx(_,{name:"loader-4",className:"size-3 animate-spin me-1"}):null,k("gitView.history.actions.confirmButton")]}),t.jsx(K,{variant:"ghost",size:"xs",className:"h-6 shrink-0",disabled:z!==null,onClick:c=>{c.stopPropagation(),F(null)},children:k("gitView.history.actions.cancelButton")})]}):C?t.jsxs("div",{className:"flex flex-wrap items-center gap-1.5 py-2 border-b border-border/30 mb-2",children:[t.jsx(K,{variant:"outline",size:"xs",className:"h-6",disabled:z!==null,onClick:c=>{c.stopPropagation(),F("checkout")},children:k("gitView.history.actions.checkout")}),b?t.jsxs("div",{className:"flex items-center gap-1",children:[t.jsx("input",{autoFocus:!0,value:S,onChange:c=>D(c.target.value),onKeyDown:c=>{c.key==="Enter"&&q(),c.key==="Escape"&&(H(!1),D(""))},placeholder:k("gitView.history.actions.createBranchPlaceholder"),className:"oc-raised oc-field h-6 text-xs px-2 rounded bg-surface-elevated outline-none min-w-0 w-32"}),t.jsxs(K,{variant:"outline",size:"xs",className:"h-6",disabled:!S.trim()||z!==null,onClick:c=>{c.stopPropagation(),q()},children:[z==="createBranch"?t.jsx(_,{name:"loader-4",className:"size-3 animate-spin me-1"}):null,k("gitView.history.actions.createBranchConfirm")]})]}):t.jsx(K,{variant:"ghost",size:"xs",className:vt,onClick:c=>{c.stopPropagation(),H(!0)},children:k("gitView.history.actions.createBranch")}),t.jsx(K,{variant:"ghost",size:"xs",className:vt,disabled:z!==null,onClick:c=>{c.stopPropagation(),F("cherryPick")},children:k("gitView.history.actions.cherryPick")}),t.jsx(K,{variant:"ghost",size:"xs",className:vt,disabled:z!==null,onClick:c=>{c.stopPropagation(),F("revert")},children:k("gitView.history.actions.revert")}),t.jsxs(Js,{children:[t.jsx(Ys,{asChild:!0,children:t.jsxs(K,{variant:"ghost",size:"xs",className:vt,disabled:z!==null,onClick:c=>c.stopPropagation(),children:[z==="reset"?t.jsx(_,{name:"loader-4",className:"size-3 animate-spin me-1"}):null,k("gitView.history.actions.reset")]})}),t.jsx(Qs,{align:"start",className:"min-w-max",children:["soft","mixed","hard"].map(c=>t.jsx(Ba,{disabled:z!==null,onSelect:I=>{I.stopPropagation(),F(`reset${c.charAt(0).toUpperCase()+c.slice(1)}`)},children:k(`gitView.history.actions.reset${c.charAt(0).toUpperCase()+c.slice(1)}`)},c))})]}),t.jsx(K,{variant:"ghost",size:"xs",className:vt,disabled:z!==null,onClick:c=>{c.stopPropagation(),F("merge")},children:k("gitView.history.actions.merge")}),t.jsx(K,{variant:"ghost",size:"xs",className:vt,disabled:z!==null,onClick:c=>{c.stopPropagation(),F("rebase")},children:k("gitView.history.actions.rebase")})]}):null,m?t.jsxs("div",{className:"flex items-center gap-2 py-2",children:[t.jsx(_,{name:"loader-4",className:"size-4 animate-spin text-muted-foreground"}),t.jsx("span",{className:"typography-micro text-muted-foreground",children:k("gitView.history.loadingFiles")})]}):y.length===0?t.jsx("p",{className:"typography-micro text-muted-foreground py-2",children:k("gitView.history.noFiles")}):t.jsx("ul",{className:"space-y-0.5 py-2",children:y.map(c=>t.jsxs("li",{children:[t.jsxs("button",{type:"button",onClick:()=>d(c),className:"oc-tile-hover w-full flex items-center gap-2 typography-micro text-start cursor-pointer rounded px-1",children:[t.jsx("span",{className:fe("font-semibold w-3 text-center shrink-0",wo(c.changeType)),children:c.changeType}),t.jsx("span",{className:"truncate text-foreground min-w-0",title:c.path,children:c.path}),!c.isBinary&&t.jsxs("span",{className:"shrink-0",children:[t.jsxs("span",{style:{color:"var(--status-success)"},children:["+",c.insertions]}),t.jsx("span",{className:"text-muted-foreground mx-0.5",children:"/"}),t.jsxs("span",{style:{color:"var(--status-error)"},children:["-",c.deletions]})]}),c.isBinary&&t.jsx("span",{className:"typography-micro text-muted-foreground shrink-0",children:k("gitView.history.binary")}),t.jsx(_,{name:G.has(c.path)?"arrow-down-s":"arrow-right-s",className:"size-3 shrink-0 text-muted-foreground"})]}),G.has(c.path)&&t.jsx("div",{className:"max-h-[400px] overflow-y-auto rounded border border-border/40 mx-2 mb-1","data-diff-virtual-root":!0,"data-diff-virtual-content":!0,children:c.changeType==="R"?t.jsx("div",{className:"px-3 py-2 text-sm text-muted-foreground",children:k("gitView.history.renamedNoDiff")}):c.isBinary?t.jsx("div",{className:"px-3 py-2 text-sm text-muted-foreground",children:k("gitView.history.binaryNoDiff")}):(()=>{const I=c.insertions+c.deletions;if(!E.has(c.path)&&I>Yr)return t.jsxs("div",{className:"flex flex-col items-start gap-1 px-3 py-2 text-sm text-muted-foreground",children:[t.jsx("div",{className:"typography-ui-label font-semibold text-foreground",children:k("gitView.history.largeDiffTitle",{count:I})}),t.jsx("div",{className:"typography-meta text-muted-foreground",children:k("gitView.history.largeDiffDescription")}),t.jsx(K,{type:"button",variant:"ghost",size:"xs",className:"h-6 px-0 text-primary hover:bg-transparent hover:underline",onClick:()=>{a(re=>new Set(re).add(c.path)),me(c)},children:k("gitView.history.renderDiffAnyway")})]});const L=A.get(c.path);return L==="loading"||L===void 0?t.jsx("div",{className:"px-3 py-2 text-sm text-muted-foreground",children:k("gitView.history.loadingDiff")}):L==="error"?t.jsx("button",{type:"button",onClick:()=>d(c),className:"w-full text-start px-3 py-2 text-sm text-muted-foreground hover:bg-[var(--interactive-hover)] transition-colors",children:k("gitView.history.diffError")}):t.jsx(so,{original:L.original,modified:L.modified,language:Ma(c.path)||"",fileName:c.path,renderSideBySide:!1,layout:"inline",enableComments:!1})})()})]},c.path))})]})]})}),sn=["var(--chart-1)","var(--chart-2)","var(--chart-3)","var(--chart-4)","var(--chart-5)","var(--syntax-keyword)","var(--syntax-string)","var(--status-info)"];function is(o){return sn[o%sn.length]}function jo(o){if(o.length===0)return[];const e=[],n=[];for(let h=0;h<o.length;h++){const x=o[h],g=[];for(let C=0;C<e.length;C++)e[C]===x.hash&&g.push(C);let y=g.length>0?g[0]:-1;if(y===-1){const C=e.indexOf(null);C!==-1?y=C:(y=e.length,e.push(null))}const m=g.slice(1),f=is(y),w=e[y]===x.hash,M=x.parents.length>0;M?e[y]=x.parents[0]:e[y]=null;const O=[],k=new Set;for(let C=1;C<x.parents.length;C++){const z=x.parents[C],P=e.indexOf(z);if(P!==-1)O.push(P);else{const b=e.indexOf(null);if(b!==-1)e[b]=z,O.push(b),k.add(b);else{const H=e.length;e.push(z),O.push(H),k.add(H)}}}const T=[];w&&M?T.push({fromLane:y,toLane:y,color:f,type:"commit-lane"}):w&&!M?T.push({fromLane:y,toLane:y,color:f,type:"top-stub"}):!w&&M&&T.push({fromLane:y,toLane:y,color:f,type:"bottom-stub"});for(const C of m)T.push({fromLane:C,toLane:y,color:is(C),type:"merge-in"}),e[C]=null;for(const C of O)T.push({fromLane:y,toLane:C,color:is(C),type:"branch-out"});for(let C=0;C<e.length;C++)e[C]!==null&&C!==y&&(k.has(C)||T.push({fromLane:C,toLane:C,color:is(C),type:"passing"}));n.push({commit:x,lane:y,color:f,connectors:T})}return n}const Co=[{labelKey:"gitView.history.logSize25",value:25},{labelKey:"gitView.history.logSize50",value:50},{labelKey:"gitView.history.logSize100",value:100}],So=o=>{const e=Ht.c(84),{mode:n,log:h,isLogLoading:x,logMaxCount:g,onLogMaxCountChange:y,expandedCommitHashes:m,onToggleCommit:f,commitFilesMap:w,loadingCommitHashes:M,onCopyHash:O,directory:k,showHeader:T,contentMaxHeightClassName:C,branchDivider:z,onConflict:P,onActionSuccess:b}=o,H=n===void 0?"history":n,S=T===void 0?!0:T,D=C===void 0?"max-h-[50vh]":C,V=z===void 0?null:z,{t:F}=it(),[G,Z]=i.useState(!0),A=H==="graph";let R;e[0]!==A||e[1]!==h?(R=A&&h?jo(h.all):[],e[0]=A,e[1]=h,e[2]=R):R=e[2];const E=R;let a;e[3]!==E?(a=Math.max(1,...E.map(No)),e[3]=E,e[4]=a):a=e[4];const Y=a;let q;e[5]!==E?(q=new Map(E.map(ko)),e[5]=E,e[6]=q):q=e[6];const J=q;if(!h)return null;const j=V!==null&&V.insertBeforeIndex>0&&V.insertBeforeIndex<h.all.length,U=V!==null&&V.insertBeforeIndex===h.all.length,te=j||U;let oe;e[7]!==V||e[8]!==j||e[9]!==U||e[10]!==h.all?(oe=j?h.all.slice(0,V.insertBeforeIndex):U?h.all:[],e[7]=V,e[8]=j,e[9]=U,e[10]=h.all,e[11]=oe):oe=e[11];const xe=oe;let me;if(e[12]!==V||e[13]!==w||e[14]!==D||e[15]!==k||e[16]!==m||e[17]!==j||e[18]!==te||e[19]!==A||e[20]!==x||e[21]!==J||e[22]!==M||e[23]!==h.all||e[24]!==g||e[25]!==Y||e[26]!==H||e[27]!==b||e[28]!==P||e[29]!==O||e[30]!==y||e[31]!==f||e[32]!==F||e[33]!==xe){const X=j?h.all.slice(V.insertBeforeIndex):[];let ae;e[35]!==V?.direction?(ae=V?.direction==="down"?t.jsx(_,{name:"arrow-down-s",className:"size-3.5"}):t.jsx(_,{name:"arrow-up",className:"size-3.5"}),e[35]=V?.direction,e[36]=ae):ae=e[36];const De=ae;let ve;e[37]!==w||e[38]!==k||e[39]!==m||e[40]!==A||e[41]!==J||e[42]!==M||e[43]!==Y||e[44]!==H||e[45]!==b||e[46]!==P||e[47]!==O||e[48]!==f?(ve=St=>t.jsx("ul",{className:"divide-y divide-border/60",children:St.map(le=>t.jsx(vo,{entry:le,mode:H,laned:A?J.get(le.hash):void 0,totalLanes:A?Y:void 0,isExpanded:m.has(le.hash),onToggle:()=>f(le.hash),files:w.get(le.hash)??[],isLoadingFiles:M.has(le.hash),onCopyHash:O,directory:k,onConflict:P,onActionSuccess:b},le.hash))}),e[37]=w,e[38]=k,e[39]=m,e[40]=A,e[41]=J,e[42]=M,e[43]=Y,e[44]=H,e[45]=b,e[46]=P,e[47]=O,e[48]=f,e[49]=ve):ve=e[49];const ke=ve;let je;e[50]!==x||e[51]!==h.all.length||e[52]!==g||e[53]!==y||e[54]!==F?(je=h.all.length>=g?t.jsx("div",{className:"flex justify-center py-2 border-t border-border/40",children:t.jsx(K,{type:"button",variant:"ghost",size:"xs",onClick:()=>y(g+25),disabled:x,className:"px-3 text-muted-foreground hover:text-foreground",children:x?t.jsxs("span",{className:"flex items-center gap-1",children:[t.jsx(_,{name:"loader-4",className:"size-3 animate-spin"}),F("gitView.history.loadingMore")]}):F("gitView.history.loadMore")})}):null,e[50]=x,e[51]=h.all.length,e[52]=g,e[53]=y,e[54]=F,e[55]=je):je=e[55];const Be=je;me=t.jsx(ln,{outerClassName:`min-h-0 ${D}`,className:"h-full w-full",children:h.all.length===0?t.jsx("div",{className:"flex h-full items-center justify-center p-4",children:t.jsx("p",{className:"typography-ui-label text-muted-foreground",children:F("gitView.history.noCommits")})}):te&&V?t.jsxs(t.Fragment,{children:[t.jsxs("div",{className:"flex flex-col gap-0",children:[xe.length>0?t.jsx("div",{className:"rounded-xl oc-tile overflow-hidden",children:ke(xe)}):null,t.jsxs("div",{className:"flex items-center gap-2 px-3 py-1.5","aria-hidden":!0,children:[t.jsx("span",{className:"h-px flex-1 bg-border/60"}),t.jsxs("span",{className:"inline-flex max-w-[80%] items-center gap-1 typography-micro text-muted-foreground",children:[t.jsx("span",{className:"truncate",title:V.branchName,children:V.branchName}),De]}),t.jsx("span",{className:"h-px flex-1 bg-border/60"})]}),X.length>0?t.jsx("div",{className:"rounded-xl oc-tile overflow-hidden",children:ke(X)}):null]}),Be]}):t.jsxs(t.Fragment,{children:[ke(h.all),Be]})}),e[12]=V,e[13]=w,e[14]=D,e[15]=k,e[16]=m,e[17]=j,e[18]=te,e[19]=A,e[20]=x,e[21]=J,e[22]=M,e[23]=h.all,e[24]=g,e[25]=Y,e[26]=H,e[27]=b,e[28]=P,e[29]=O,e[30]=y,e[31]=f,e[32]=F,e[33]=xe,e[34]=me}else me=e[34];const d=me;if(!S){if(te){let ae;return e[56]!==d?(ae=t.jsx("section",{className:"h-full min-h-0",children:d}),e[56]=d,e[57]=ae):ae=e[57],ae}let X;return e[58]!==d?(X=t.jsx("section",{className:"h-full min-h-0 rounded-xl oc-tile overflow-hidden",children:d}),e[58]=d,e[59]=X):X=e[59],X}let c;e[60]!==F?(c=F("gitView.history.title"),e[60]=F,e[61]=c):c=e[61];let I;e[62]!==c?(I=t.jsx("h3",{className:"typography-ui-header font-semibold text-foreground",children:c}),e[62]=c,e[63]=I):I=e[63];let L;e[64]!==x||e[65]!==G||e[66]!==g||e[67]!==y||e[68]!==F?(L=G&&t.jsx("div",{onClick:Vo,onPointerDown:Ro,children:t.jsxs(Ha,{value:String(g),onValueChange:X=>y(Number(X)),disabled:x,children:[t.jsx($a,{className:"w-auto",disabled:x,children:t.jsx(Wa,{placeholder:F("gitView.history.commitsPlaceholder")})}),t.jsx(Ua,{children:Co.map(X=>t.jsx(Ka,{value:String(X.value),children:F(X.labelKey)},X.value))})]})}),e[64]=x,e[65]=G,e[66]=g,e[67]=y,e[68]=F,e[69]=L):L=e[69];let re;e[70]!==G?(re=G?t.jsx(_,{name:"arrow-up-s",className:"size-4 text-muted-foreground"}):t.jsx(_,{name:"arrow-down-s",className:"size-4 text-muted-foreground"}),e[70]=G,e[71]=re):re=e[71];let de;e[72]!==L||e[73]!==re?(de=t.jsxs("div",{className:"flex items-center gap-2",children:[L,re]}),e[72]=L,e[73]=re,e[74]=de):de=e[74];let ce;e[75]!==I||e[76]!==de?(ce=t.jsxs(Fi,{className:"flex w-full items-center justify-between px-3 h-10 hover:bg-transparent",children:[I,de]}),e[75]=I,e[76]=de,e[77]=ce):ce=e[77];let ee;e[78]!==d?(ee=t.jsx(Di,{children:d}),e[78]=d,e[79]=ee):ee=e[79];let ne;return e[80]!==G||e[81]!==ce||e[82]!==ee?(ne=t.jsxs(Bi,{open:G,onOpenChange:Z,className:"rounded-xl oc-tile overflow-hidden",children:[ce,ee]}),e[80]=G,e[81]=ce,e[82]=ee,e[83]=ne):ne=e[83],ne};function No(o){return o.lane+1}function ko(o){return[o.commit.hash,o]}function Vo(o){return o.stopPropagation()}function Ro(o){return o.stopPropagation()}const Io=({open:o,onOpenChange:e,operation:n,targetBranch:h,onConfirm:x})=>{const{t:g}=it(),[y,m]=i.useState(!0),[f,w]=i.useState(!1),M=g(n==="merge"?"gitView.operation.merge":"gitView.operation.rebase"),O=async()=>{w(!0);try{await x(y),e(!1)}catch(T){const C=T instanceof Error?T.message:`Failed to ${n}`;p.error(C)}finally{w(!1)}},k=()=>{f||e(!1)};return t.jsx(ht,{open:o,onOpenChange:f?void 0:e,children:t.jsxs(mt,{className:"max-w-md",children:[t.jsxs(ft,{children:[t.jsxs("div",{className:"flex items-center gap-2",children:[t.jsx(_,{name:"alert",className:"size-5 text-[var(--status-warning)]"}),t.jsx(gt,{children:g("gitView.stash.title")})]}),t.jsx(jt,{children:g("gitView.stash.description",{operation:n})})]}),t.jsxs("div",{className:"py-2",children:[t.jsx("p",{className:"typography-meta text-muted-foreground mb-3",children:g("gitView.stash.thisWill")}),t.jsxs("ol",{className:"list-decimal list-inside space-y-1 typography-meta text-foreground",children:[t.jsx("li",{children:g("gitView.stash.stepStash")}),t.jsxs("li",{children:[g(n==="merge"?"gitView.operation.merge":"gitView.operation.rebase")," ",g(n==="merge"?"gitView.stash.mergeWith":"gitView.stash.rebaseOnto")," ",t.jsx("span",{className:"font-mono text-primary",children:h})]}),y&&t.jsx("li",{children:g("gitView.stash.stepRestore")})]})]}),t.jsxs("div",{className:"flex items-center gap-2 py-2",children:[t.jsx(qa,{checked:y,onChange:m,disabled:f,ariaLabel:g("gitView.stash.restoreAria")}),t.jsx("span",{className:"typography-ui-label text-foreground cursor-pointer select-none",onClick:()=>!f&&m(!y),children:g("gitView.stash.restoreAfterOperation",{operation:n})})]}),t.jsxs(qs,{className:"gap-2",children:[t.jsx(K,{variant:"ghost",size:"sm",onClick:k,disabled:f,children:g("gitView.common.cancel")}),t.jsx(K,{variant:"default",size:"sm",onClick:O,disabled:f,className:"gap-1.5",children:f?t.jsxs(t.Fragment,{children:[t.jsx(_,{name:"loader-4",className:"size-4 animate-spin"}),g("gitView.common.processing")]}):g("gitView.stash.confirmButton",{operation:M})})]})]})})},Po=o=>{const e=Ht.c(100),{currentBranch:n,localBranches:h,remoteBranches:x,onMerge:g,onRebase:y,disabled:m,isOperating:f,operationLogs:w,onOperationComplete:M,mode:O,defaultTargetBranch:k}=o,T=m===void 0?!1:m,C=f===void 0?!1:f,z=w===void 0?[]:w,P=O===void 0?"dialog":O,{t:b}=it(),[H,S]=i.useState(!1),[D,V]=i.useState("merge"),[F,G]=i.useState(null),[Z,A]=i.useState(!1),[R,E]=i.useState(""),a=i.useRef(null),Y=i.useRef(null),q=T||C,J=n||b("gitView.branch.currentBranchFallback"),j=z.length>0&&z.every(Fo),U=z.some(Do);let te;e[0]===Symbol.for("react.memo_cache_sentinel")?(te=()=>{Y.current&&(Y.current.scrollTop=Y.current.scrollHeight)},e[0]=te):te=e[0],i.useEffect(te,[z]);let oe;if(e[1]!==R||e[2]!==n||e[3]!==h){let Q;e[5]!==n?(Q=ye=>ye!==n,e[5]=n,e[6]=Q):Q=e[6];const pe=h.filter(Q);oe=_t(pe,R,Bo),e[1]=R,e[2]=n,e[3]=h,e[4]=oe}else oe=e[4];const xe=oe;let me;e[7]!==R||e[8]!==x?(me=_t(x,R,Mo),e[7]=R,e[8]=x,e[9]=me):me=e[9];const d=me;let c;e[10]!==k||e[11]!==h||e[12]!==x?(c=()=>{if(!k)return null;const Q=x.find(pe=>pe.label===k);return Q||(h.includes(k)?{kind:"local",branch:k,label:k}:null)},e[10]=k,e[11]=h,e[12]=x,e[13]=c):c=e[13];const I=c;let L;e[14]!==I||e[15]!==S?(L=()=>{S(!0),G(I()),V("merge"),E("")},e[14]=I,e[15]=S,e[16]=L):L=e[16];const re=L;let de;e[17]===Symbol.for("react.memo_cache_sentinel")?(de=Q=>{G(Q),A(!1),E("")},e[17]=de):de=e[17];const ce=de;let ee;e[18]!==g||e[19]!==y||e[20]!==D||e[21]!==F?(ee=()=>{F&&(D==="merge"?g(F):y(F))},e[18]=g,e[19]=y,e[20]=D,e[21]=F,e[22]=ee):ee=e[22];const ne=ee;let X;e[23]!==C||e[24]!==S?(X=()=>{C||(G(null),V("merge"),E(""),S(!1))},e[23]=C,e[24]=S,e[25]=X):X=e[25];const ae=X,De=()=>{C&&!j||(j&&M?.(),G(null),V("merge"),E(""),S(!1))};let ve,ke;e[26]!==Z?(ve=()=>{Z||E("")},ke=[Z],e[26]=Z,e[27]=ve,e[28]=ke):(ve=e[27],ke=e[28]),i.useEffect(ve,ke);let je,Be;e[29]!==P||e[30]!==I||e[31]!==F?(je=()=>{P==="dialog"||F||G(I())},Be=[P,I,F],e[29]=P,e[30]=I,e[31]=F,e[32]=je,e[33]=Be):(je=e[32],Be=e[33]),i.useEffect(je,Be);const Le=C?t.jsxs("div",{className:"space-y-3",children:[t.jsx("div",{ref:Y,className:"rounded-lg oc-tile p-3 max-h-48 overflow-y-auto",children:t.jsx("div",{className:"space-y-2",children:z.map(Ao)})}),j?P==="dialog"?t.jsx(qs,{children:t.jsx(K,{variant:"default",size:"sm",onClick:De,children:b(U?"gitView.common.close":"gitView.common.done")})}):t.jsx("div",{className:"flex justify-end",children:t.jsx(K,{variant:"default",size:"sm",onClick:De,children:b(U?"gitView.common.close":"gitView.common.done")})}):null]}):t.jsxs("div",{className:"space-y-4",children:[t.jsxs("div",{className:"space-y-3",children:[t.jsx("p",{className:"typography-meta text-muted-foreground",children:b("gitView.branch.operation")}),t.jsxs("div",{className:"grid grid-cols-2 gap-3",children:[t.jsxs("button",{type:"button",onClick:()=>V("merge"),className:fe("flex flex-col items-start gap-1 rounded-lg p-3 text-start",D==="merge"?"bg-interactive-selection text-interactive-selection-foreground":"oc-tile oc-tile-hover"),children:[t.jsxs("div",{className:"flex items-center gap-2",children:[t.jsx(_,{name:"git-merge",className:fe("size-4",D==="merge"?"text-inherit":"text-muted-foreground")}),t.jsx("span",{className:fe("typography-ui-label",D==="merge"?"text-foreground":"text-muted-foreground"),children:b("gitView.operation.merge")})]}),t.jsx("p",{className:"typography-micro text-muted-foreground",children:b("gitView.branch.mergeDescription")})]}),t.jsxs("button",{type:"button",onClick:()=>V("rebase"),className:fe("flex flex-col items-start gap-1 rounded-lg p-3 text-start",D==="rebase"?"bg-interactive-selection text-interactive-selection-foreground":"oc-tile oc-tile-hover"),children:[t.jsxs("div",{className:"flex items-center gap-2",children:[t.jsx(_,{name:"git-branch",className:fe("size-4",D==="rebase"?"text-inherit":"text-muted-foreground")}),t.jsx("span",{className:fe("typography-ui-label",D==="rebase"?"text-foreground":"text-muted-foreground"),children:b("gitView.operation.rebase")})]}),t.jsx("p",{className:"typography-micro text-muted-foreground",children:b("gitView.branch.rebaseDescription")})]})]})]}),t.jsxs("div",{className:"flex flex-col gap-3",children:[t.jsx("p",{className:"typography-meta text-muted-foreground",children:D==="merge"?b("gitView.branch.branchToMergeInto",{branch:J}):b("gitView.branch.branchToRebaseOnto")}),t.jsxs(Js,{open:Z,onOpenChange:A,modal:!1,children:[t.jsx(Ys,{asChild:!0,children:t.jsxs("button",{type:"button",className:fe(on({size:"default"}),"w-full"),children:[t.jsx("span",{className:fe("truncate",!F&&"text-muted-foreground"),children:F?.label||b("gitView.branch.selectBranch")}),t.jsx(_,{name:"arrow-down-s",className:"size-4 opacity-60 shrink-0"})]})}),t.jsx(Qs,{align:"start",sideOffset:6,className:"w-[var(--anchor-width)] p-0 max-h-[min(var(--available-height),24rem)] flex flex-col overflow-hidden",children:t.jsxs(Xs,{className:"h-full min-h-0",shouldFilter:!1,children:[t.jsx(Zs,{ref:a,placeholder:b("gitView.branch.searchPlaceholder"),value:R,onValueChange:E,onKeyDown:Oo}),t.jsxs(er,{className:"h-full min-h-0",disableHorizontal:!0,children:[t.jsx(tr,{children:b("gitView.branch.empty")}),xe.length>0&&t.jsx(os,{heading:b("gitView.branch.localBranches"),children:xe.map(Q=>t.jsx(ls,{onSelect:()=>ce({kind:"local",branch:Q,label:Q}),children:t.jsx("span",{className:"typography-ui-label text-foreground truncate",children:Q})},`local-${Q}`))}),xe.length>0&&d.length>0?t.jsx(Ja,{}):null,d.length>0&&t.jsx(os,{heading:b("gitView.branch.remoteBranches"),children:d.map(Q=>t.jsx(ls,{onSelect:()=>ce(Q),children:t.jsx("span",{className:"typography-ui-label text-foreground truncate",children:Q.label})},`remote-${Q.label}`))})]})]})})]})]}),F?t.jsx("div",{className:"rounded-lg oc-tile p-3",children:t.jsx("p",{className:"typography-meta text-muted-foreground",children:D==="merge"?t.jsxs(t.Fragment,{children:[b("gitView.branch.summaryMergePrefix")," ",t.jsx("span",{className:"font-mono text-foreground",children:F.label})," ",b("gitView.branch.summaryMergeInfix")," ",t.jsx("span",{className:"font-mono text-foreground",children:J})]}):t.jsxs(t.Fragment,{children:[b("gitView.branch.summaryRebasePrefix")," ",t.jsx("span",{className:"font-mono text-foreground",children:J})," ",b("gitView.branch.summaryRebaseInfix")," ",t.jsx("span",{className:"font-mono text-foreground",children:F.label})]})})}):null,P==="dialog"?t.jsxs(qs,{className:"gap-2 pt-1",children:[t.jsx(K,{variant:"ghost",size:"sm",onClick:ae,children:b("gitView.common.cancel")}),t.jsx(K,{variant:"default",size:"sm",onClick:ne,disabled:!F,className:"gap-1.5",children:D==="merge"?t.jsxs(t.Fragment,{children:[t.jsx(_,{name:"git-merge",className:"size-4"}),b("gitView.operation.merge")]}):t.jsxs(t.Fragment,{children:[t.jsx(_,{name:"git-branch",className:"size-4"}),b("gitView.operation.rebase")]})})]}):t.jsxs("div",{className:"flex items-center gap-2 pt-1",children:[t.jsx(K,{variant:"destructive",size:"sm",onClick:ae,disabled:q,children:b("gitView.common.reset")}),t.jsx("div",{className:"flex-1"}),t.jsx(K,{variant:"default",size:"sm",onClick:ne,disabled:q||!F,children:b(D==="merge"?"gitView.operation.merge":"gitView.operation.rebase")})]})]});if(P==="bare")return Le;if(P==="inline"){let Q;e[34]!==b?(Q=b("gitView.branch.updateTitle"),e[34]=b,e[35]=Q):Q=e[35];let pe;e[36]!==Q?(pe=t.jsx("div",{className:"typography-ui-header font-semibold text-foreground",children:Q}),e[36]=Q,e[37]=pe):pe=e[37];let ye;e[38]!==b?(ye=b("gitView.branch.updateDescriptionPrefix"),e[38]=b,e[39]=ye):ye=e[39];let $e;e[40]!==J?($e=t.jsx("span",{className:"font-mono text-foreground",children:J}),e[40]=J,e[41]=$e):$e=e[41];let Ce;e[42]!==ye||e[43]!==$e?(Ce=t.jsxs("div",{className:"typography-micro text-muted-foreground",children:[ye," ",$e,"."]}),e[42]=ye,e[43]=$e,e[44]=Ce):Ce=e[44];let We;e[45]!==pe||e[46]!==Ce?(We=t.jsx("header",{className:"border-b border-border/40 px-0 py-3",children:t.jsxs("div",{className:"space-y-1",children:[pe,Ce]})}),e[45]=pe,e[46]=Ce,e[47]=We):We=e[47];let Se;e[48]!==Le?(Se=t.jsx("div",{className:"pt-3",children:Le}),e[48]=Le,e[49]=Se):Se=e[49];let Re;return e[50]!==We||e[51]!==Se?(Re=t.jsxs("section",{className:"border-0 bg-transparent rounded-none",children:[We,Se]}),e[50]=We,e[51]=Se,e[52]=Re):Re=e[52],Re}let qe;e[53]!==C?(qe=C?t.jsx(cs,{className:"size-4"}):t.jsx(_,{name:"git-merge",className:"size-4"}),e[53]=C,e[54]=qe):qe=e[54];let ze;e[55]!==b?(ze=b("gitView.branch.mergeRebase"),e[55]=b,e[56]=ze):ze=e[56];let Ge;e[57]!==ze?(Ge=t.jsx("span",{children:ze}),e[57]=ze,e[58]=Ge):Ge=e[58];let Je;e[59]!==re||e[60]!==q||e[61]!==qe||e[62]!==Ge?(Je=t.jsx(ds,{asChild:!0,children:t.jsxs(K,{variant:"outline",size:"sm",className:"gap-1.5",onClick:re,disabled:q,children:[qe,Ge]})}),e[59]=re,e[60]=q,e[61]=qe,e[62]=Ge,e[63]=Je):Je=e[63];let Ve;e[64]!==b?(Ve=b("gitView.branch.mergeRebaseTooltip"),e[64]=b,e[65]=Ve):Ve=e[65];let Me;e[66]!==Ve?(Me=t.jsx(hs,{sideOffset:8,children:Ve}),e[66]=Ve,e[67]=Me):Me=e[67];let $;e[68]!==Je||e[69]!==Me?($=t.jsxs(us,{children:[Je,Me]}),e[68]=Je,e[69]=Me,e[70]=$):$=e[70];let Ye;e[71]!==De||e[72]!==S?(Ye=Q=>{Q?S(!0):De()},e[71]=De,e[72]=S,e[73]=Ye):Ye=e[73];let _e;e[74]!==b?(_e=b("gitView.branch.updateTitle"),e[74]=b,e[75]=_e):_e=e[75];let Qe;e[76]!==_e?(Qe=t.jsx(gt,{children:_e}),e[76]=_e,e[77]=Qe):Qe=e[77];let Ae;e[78]!==U||e[79]!==C||e[80]!==D||e[81]!==j||e[82]!==b||e[83]!==J?(Ae=C?b(j?U?"gitView.branch.operationFailed":"gitView.branch.operationCompleted":D==="merge"?"gitView.branch.mergingInProgress":"gitView.branch.rebasingInProgress"):t.jsxs(t.Fragment,{children:[b("gitView.branch.dialogDescriptionPrefix")," ",t.jsx("span",{className:"font-mono text-foreground",children:J}),"."]}),e[78]=U,e[79]=C,e[80]=D,e[81]=j,e[82]=b,e[83]=J,e[84]=Ae):Ae=e[84];let Xe;e[85]!==Ae?(Xe=t.jsx(jt,{children:Ae}),e[85]=Ae,e[86]=Xe):Xe=e[86];let Oe;e[87]!==Qe||e[88]!==Xe?(Oe=t.jsxs(ft,{children:[Qe,Xe]}),e[87]=Qe,e[88]=Xe,e[89]=Oe):Oe=e[89];let Ze;e[90]!==Le||e[91]!==Oe?(Ze=t.jsxs(mt,{className:"max-w-md",children:[Oe,Le]}),e[90]=Le,e[91]=Oe,e[92]=Ze):Ze=e[92];let He;e[93]!==H||e[94]!==Ye||e[95]!==Ze?(He=t.jsx(ht,{open:H,onOpenChange:Ye,children:Ze}),e[93]=H,e[94]=Ye,e[95]=Ze,e[96]=He):He=e[96];let ot;return e[97]!==$||e[98]!==He?(ot=t.jsxs(t.Fragment,{children:[$,He]}),e[97]=$,e[98]=He,e[99]=ot):ot=e[99],ot};function Fo(o){return o.status==="done"||o.status==="error"}function Do(o){return o.status==="error"}function Bo(o){return[o]}function Mo(o){return[o.label,o.branch,o.remote]}function Ao(o,e){return t.jsxs("div",{className:"flex items-start gap-2",children:[t.jsxs("div",{className:"mt-0.5 shrink-0",children:[o.status==="running"&&t.jsx(cs,{className:"size-3.5 text-primary"}),o.status==="done"&&t.jsx(_,{name:"check",className:"size-3.5 text-success"}),o.status==="error"&&t.jsx(_,{name:"close",className:"size-3.5 text-destructive"}),o.status==="pending"&&t.jsx("div",{className:"size-3.5 rounded-full border border-muted-foreground/30"})]}),t.jsx("span",{className:fe("typography-micro",o.status==="error"&&"text-destructive",o.status==="done"&&"text-muted-foreground",o.status==="running"&&"text-foreground",o.status==="pending"&&"text-muted-foreground/60"),children:o.message})]},e)}function Oo(o){return o.stopPropagation()}const To=/^[0-9a-f]{40}(?:[0-9a-f]{24})?$/i,Eo=(o,e)=>{const n=[...o].sort((h,x)=>x.length-h.length);return e.flatMap(h=>{const x=n.find(y=>h.startsWith(`${y}/`));if(!x)return[];const g=h.slice(x.length+1);return g?[{kind:"remote",branch:g,destinationRef:`refs/remotes/${x}/${g}`,label:h,remote:x,sourceRef:`refs/heads/${g}`}]:[]})},Lo=async({directory:o,git:e,runPlannedFetch:n,target:h})=>{if(h.kind==="local")return h.branch;await n(h);const g=(await e.getGitLog(o,{to:h.destinationRef,maxCount:1})).latest?.hash.trim();if(!g||!To.test(g))throw new be("invalid-terminal-state");return g},zo=({runMutation:o,onMutationComplete:e,onMutationError:n,onPathsComplete:h,scheduleFlush:x})=>{const g=[];let y=!1;return{enqueue:f=>{const w=g[g.length-1];if(w?.directory===f.directory&&w.direction===f.direction){f.paths.forEach(M=>w.paths.add(M));return}g.push(f)},flush:()=>{if(y)return;const f=g.shift();if(!f)return;y=!0;const w={directory:f.directory,direction:f.direction,paths:Array.from(f.paths),rollback:f.rollback};(async()=>{try{await o(w),e(w)}catch(M){n(w,M)}finally{h(w.paths),y=!1,g.length>0&&x()}})()},clear:()=>{g.length=0},size:()=>g.length,isRunning:()=>y}},Go=(o,e,n)=>Ya(o,e,h=>Ji(h)&&Qa(h,n)),_o=(o,e,n,h)=>Xa(o,e,n,x=>({id:"local-config",name:x.userName,...x,color:"info",icon:"user"}),h),Ho=(o,e,n,h)=>{if(e){const x=n.filter(g=>e.startsWith(`${g}/`)&&e.length>g.length+1).sort((g,y)=>y.length-g.length)[0];if(x)return{remoteName:x,destinationRef:`refs/heads/${e.slice(x.length+1)}`}}return h?{remoteName:h,destinationRef:`refs/heads/${o}`}:null},$o=15e3,Wo=40,Uo=20,Ko=2,rn={feat:":sparkles:",feature:":sparkles:",fix:":bug:",bug:":bug:",hotfix:":ambulance:",docs:":memo:",documentation:":memo:",style:":lipstick:",refactor:":recycle:",perf:":zap:",performance:":zap:",test:":white_check_mark:",tests:":white_check_mark:",build:":construction_worker:",ci:":green_heart:",chore:":wrench:",revert:":rewind:",wip:":construction:",security:":lock:",release:":bookmark:",merge:":twisted_rightwards_arrows:",mv:":truck:",move:":truck:",rename:":truck:",remove:":fire:",delete:":fire:",add:":sparkles:",create:":sparkles:",implement:":sparkles:",update:":recycle:",improve:":zap:",optimize:":zap:",upgrade:":arrow_up:",downgrade:":arrow_down:",deploy:":rocket:",init:":tada:",initial:":tada:"},nn=(o,e)=>{const n=o.toLowerCase(),h=/^([a-z]+)(?:\(.*\))?!?:/,x=n.match(h);if(x){const m=x[1],f=rn[m];if(f)return e.find(w=>w.code===f)||null}const g=n.split(" ")[0],y=rn[g];return y&&e.find(m=>m.code===y)||null},qo=20,dt=new Map,Jo=(o,e)=>{if(dt.delete(o),dt.set(o,e),dt.size>qo){const n=dt.keys().next().value;n!==void 0&&dt.delete(n)}},an=o=>{const e=o.index?.trim();return!!(e&&e!=="?")},Yo=o=>{const e=o.working_dir?.trim(),n=o.index?.trim();return!!(e||n==="?")},hu=({isActive:o})=>{const{t:e}=it(),{git:n,sourceControl:h,runtime:x}=Za(),g=ei(),y=Mi(),m=ti(y,g)??void 0,f=Ai(),[w,M]=i.useState(null),[O,k]=i.useState(null),T=at(s=>s.currentSessionId),C=at(s=>s.newSessionDraft),z=at(s=>s.setDraftBootstrapPendingDirectory),P=at(s=>s.worktreeMetadata),b=at(s=>s.availableWorktrees),H=Ke(m),S=i.useMemo(()=>{if(H)return Lr(b,H)??Lr(P.values(),H)},[b,H,P]),D=i.useMemo(()=>{if(T)return P.get(T)??S;if(C?.open)return S},[T,S,C?.open,P]),{profiles:V,globalIdentity:F,defaultGitIdentityId:G,loadProfiles:Z,loadGlobalIdentity:A,loadDefaultGitIdentityId:R}=Oi(Ur(s=>({profiles:s.profiles,globalIdentity:s.globalIdentity,defaultGitIdentityId:s.defaultGitIdentityId,loadProfiles:s.loadProfiles,loadGlobalIdentity:s.loadGlobalIdentity,loadDefaultGitIdentityId:s.loadDefaultGitIdentityId}))),{rootIsGitRepo:E,gitDirectory:a,nestedRepos:Y,repositoryOptions:q}=si(m??null,{enabled:o,recheckOnOpen:!0}),J=ri(a??null),j=ni(a??null),U=Ti({directory:a,branch:j?.current,chooseContributor:f.choose}),te=Ei(a,n,h),oe=ai(s=>T?s.getAttachment(T):void 0),xe=oe?ii(oe):[],me=oe&&!oe.degraded&&!oe.legacy?oe.worktreeRoot??void 0:void 0,d=Ii(m,D,j?.current??void 0),c=oi(a??null),I=li(a??null),L=ci(a??null),re=ui(a??null),de=di(a??null),{setActiveDirectory:ce,ensureAll:ee,fetchStatus:ne,fetchBranches:X,fetchLog:ae,setLogMaxCount:De,fetchIdentity:ve,prefetchDiffs:ke,clearDiffCache:je,moveStatusPathsOptimistically:Be,restoreStatus:St,bumpIndexRevision:le,ensureNestedRepos:Le,selectNestedRepo:qe}=hi(Ur(s=>({setActiveDirectory:s.setActiveDirectory,ensureAll:s.ensureAll,fetchStatus:s.fetchStatus,fetchBranches:s.fetchBranches,fetchLog:s.fetchLog,setLogMaxCount:s.setLogMaxCount,fetchIdentity:s.fetchIdentity,prefetchDiffs:s.prefetchDiffs,clearDiffCache:s.clearDiffCache,moveStatusPathsOptimistically:s.moveStatusPathsOptimistically,restoreStatus:s.restoreStatus,bumpIndexRevision:s.bumpIndexRevision,ensureNestedRepos:s.ensureNestedRepos,selectNestedRepo:s.selectNestedRepo}))),ze=zt(s=>s.isMobile),Ge=zt(s=>s.openContextDiff),Je=zt(s=>s.openContextPanelTab),[Ve,Me]=i.useState([]),$=mi(a,h,o),[Ye,_e]=i.useState(!1),Qe=i.useMemo(()=>{const s=$.read;return!s?.binding||$.status!=="ready"||s.binding.state==="bound"?null:fi(s.binding)?e("gitView.identity.configChanged"):e("gitView.context.needsAttention")},[$.read,$.status,e]),Ae=$.read?.binding?.remotes[0]?.name??$.read?.repository.remotes.find(s=>s.name==="origin")?.name??$.read?.repository.remotes[0]?.name??"",Xe=i.useCallback(s=>{const r=$.read?.repository.remotes.find(l=>l.name===Ae);return r?Li(s,gi(r.fetch.displayUrl)):{applicable:!0}},[$.read,Ae]),Oe=zr(s=>s.entries),Ze=zr(s=>s.refreshIdentityAccounts),He=ns(s=>s.beginActiveContextsLoad),ot=ns(s=>s.commitActiveContexts),Q=ns(s=>s.releaseActiveContexts),pe=i.useId();i.useEffect(()=>{if(!o||!m)return;const s=$.scope.runtimeKey,r=He(s,m,pe);return ot(s,m,pe,r,$.contexts.filter(l=>Gr(Oe[_r(l)],l).connected)),()=>{Q(s,m,pe)}},[He,$.contexts,$.scope.runtimeKey,ot,m,o,Q,Oe,pe]);const ye=$.contexts[0]??null,$e=j?.current??null,Ce=ns(s=>!$e||!ye||!Gr(Oe[_r(ye)],ye).connected?null:pi(s.entries,ye,$e)),We=zt(s=>s.navigateToDiff),Se=i.useRef(null),Re=i.useRef(null),ms=i.useRef(null),Nt=i.useRef(!0);i.useEffect(()=>()=>{Nt.current=!1},[]);const $t=i.useCallback(()=>{Se.current!==null&&(window.clearTimeout(Se.current),Se.current=null)},[]),fs=i.useCallback(s=>{$t(),Se.current=window.setTimeout(()=>{Se.current=null,Ke(s)===Ke(a)&&ne(s,n,{silent:!0})},$o)},[$t,a,ne,n]);i.useEffect(()=>$t,[$t]);const sr=i.useCallback(()=>{Re.current!==null&&(window.clearTimeout(Re.current),Re.current=null)},[]),Wt=i.useCallback(()=>{Re.current===null&&(Re.current=window.setTimeout(()=>{Re.current=null,ms.current?.()},0))},[]),rr=i.useCallback(async(s,r,l)=>{if(r==="stage"){if(n.stageGitFiles){await n.stageGitFiles(s,l);return}await Promise.all(l.map(u=>n.stageGitFile(s,u)));return}if(n.unstageGitFiles){await n.unstageGitFiles(s,l);return}await Promise.all(l.map(u=>n.unstageGitFile(s,u)))},[n]),et=i.useMemo(()=>zo({runMutation:({directory:s,direction:r,paths:l})=>rr(s,r,l),onMutationComplete:({directory:s})=>{le(s),fs(s)},onMutationError:({directory:s,direction:r,rollback:l},u)=>{l?.(),le(s),fs(s);const N=e(r==="stage"?"gitView.toast.stageFileFailed":"gitView.toast.unstageFileFailed");p.error(u instanceof Error?u.message:N)},onPathsComplete:s=>{fr(r=>{const l=new Set(r);return s.forEach(u=>l.delete(u)),l})},scheduleFlush:Wt}),[le,rr,Wt,fs,e]);i.useEffect(()=>(ms.current=et.flush,()=>{ms.current=null}),[et]),i.useEffect(()=>()=>et.clear(),[et]),i.useEffect(()=>sr,[sr]),i.useEffect(()=>{if(!o)return;if(!m){M(null);return}const s=Ke(m)??m;M({directory:s,status:null});let r=!1,l=null;const u=async()=>{try{const N=await ki(m);if(r)return;M({directory:s,status:N.status}),N.status==="pending"&&(l=window.setTimeout(()=>{u()},500))}catch{r||M({directory:s,status:null})}};return u(),()=>{r=!0,l!==null&&window.clearTimeout(l)}},[o,m]);const nr=Ke(C?.bootstrapPendingDirectory??null),hn=!!(m&&nr&&nr===Ke(m)),mn=xi(m??null),we=Ke(m),gs=w?.directory===we?w.status:null,ps=!!(m&&(mn||gs==="pending"||hn&&C?.pendingWorktreeRequestId)),ar=!!(we&&O?.directory===we);i.useEffect(()=>{if(!we)return;if(gs==="failed"){z(null),k(r=>r?.directory===we?null:r);return}if(ps){k(r=>r?.directory===we&&r.status==="refreshing"?r:{directory:we,status:"refreshing"});return}if(O?.directory!==we||O.status!=="refreshing"||!a||!n)return;let s=!1;return ne(a,n,{force:!0,silent:!0,throwOnError:!0}).then(()=>{s||k(r=>r?.directory===we?null:r)}).catch(()=>{s||k(r=>r?.directory===we?{...r,status:"failed"}:r)}),()=>{s=!0}},[ne,n,a,ps,we,gs,O,z]);const fn=ps||ar,xs=ar&&O?.status==="failed",ir=i.useMemo(()=>a?dt.get(a)??null:null,[a]),kt=yi(s=>s.settingsGitmojiEnabled),[Vt,ys]=i.useState(null),{gitmojis:pt}=io(kt);i.useEffect(()=>{const s=me||d?.projectDirectory;if(!s){ys(null);return}let r=!1;return wi(s).then(l=>{if(r)return;const u=l.trim();ys(u&&u!=="HEAD"?u:null)}).catch(()=>{r||ys(null)}),()=>{r=!0}},[me,d?.projectDirectory]);const[Rt,xt]=i.useState(ir?.commitMessage??""),[or,gn]=i.useState([]),[pn,ws]=i.useState(!1),lr=i.useRef(null),[cr,Ut]=i.useState(null),[xn,bs]=i.useState(!1),[ur,dr]=i.useState(null),[Ie,yn]=i.useState(25),[wn,hr]=i.useState(!1),{triggerFireworks:bn}=Pi(),mr=i.useRef(new Map),Kt=i.useRef(0),vs=i.useCallback(()=>{Kt.current+=1,Nt.current&&hr(!0)},[]),js=i.useCallback(()=>{Kt.current=Math.max(0,Kt.current-1),Nt.current&&Kt.current===0&&hr(!1)},[]),[Cs,qt]=i.useState(new Set),[vn,fr]=i.useState(new Set),[Ss,gr]=i.useState(!1),[jn,Cn]=i.useState(0),[Sn,pr]=i.useState(!1),[Ns,ks]=i.useState(ir?.generatedHighlights??[]),Nn=vn.size>0||et.size()>0||et.isRunning(),xr=i.useCallback(()=>{const s=lr.current;s&&requestAnimationFrame(()=>{requestAnimationFrame(()=>{s.scrollTo({top:s.scrollHeight,behavior:"smooth"})})})},[]),Vs=me||d?.projectDirectory||null,Rs=j?.current||null,kn=i.useMemo(()=>{const s=j?.tracking;return s?s.startsWith("origin/"):!0},[j?.tracking]),yr=i.useMemo(()=>{const s=d?.createdFromBranch,r=typeof s=="string"?s.trim():"",l=typeof j?.current=="string"?j.current.trim():"",u=typeof Vt=="string"?Vt.trim():"";return r?r===l&&r.startsWith("opencode/")&&u.length>0&&u!==r?u:r:u||l||"HEAD"},[d?.createdFromBranch,j,Vt]),Jt=i.useCallback(()=>{ks([])},[]),[Is,Vn]=i.useState(new Set),[Yt,Rn]=i.useState(new Map),[Qt,Ps]=i.useState(new Set),Fs=i.useRef(Yt),It=i.useRef(Qt),[In,yt]=i.useState(null),[wr,br]=i.useState(""),[ge,Xt]=i.useState(null),[Pn,vr]=i.useState(!1),[Fn,jr]=i.useState(!1),[Dn,Cr]=i.useState(null),[Sr,Nr]=i.useState(null),[Bn,Zt]=i.useState([]),[Mn,wt]=i.useState(!1),[An,Pt]=i.useState([]),[es,Ft]=i.useState("merge"),[On,Ds]=i.useState(null),[Bs,kr]=i.useState(!1),[Ms,Tn]=i.useState(100),[En,Ln]=i.useState(0),Pe=i.useMemo(()=>T?`openchamber.conflict:${T}`:null,[T]),Vr=i.useCallback((s,r,l)=>{if(!Pe||typeof window>"u")return;const u={directory:s,conflictFiles:r,operation:l};window.localStorage.setItem(Pe,JSON.stringify(u))},[Pe]),Fe=i.useCallback(()=>{!Pe||typeof window>"u"||window.localStorage.removeItem(Pe)},[Pe]),Ue=i.useCallback((s,r)=>{Pt(s),Ft(r),wt(!0),a&&Vr(a,s,r)},[a,Vr]);i.useEffect(()=>{if(!Pe||typeof window>"u"||!a)return;const s=window.localStorage.getItem(Pe);if(s)try{const r=JSON.parse(s);if(r.directory!==a){window.localStorage.removeItem(Pe);return}Pt(r.conflictFiles??[]),Ft(r.operation??"merge"),wt(!0)}catch{window.localStorage.removeItem(Pe)}},[Pe,a]);const[zn,Rr]=i.useState(!1),[ts,Dt]=i.useState(null),[As,Gn]=i.useState("merge"),[Os,_n]=i.useState(""),[Ts,Hn]=i.useState(""),$n=i.useCallback(s=>{bi(s).then(r=>{if(r.ok){p.success(e("gitView.toast.commitHashCopied"));return}p.error(e("gitView.toast.copyFailed"))})},[e]),Wn=i.useCallback(s=>{Vn(r=>{const l=new Set(r);return l.has(s)?l.delete(s):l.add(s),l})},[]);i.useEffect(()=>{Fs.current=Yt},[Yt]),i.useEffect(()=>{It.current=Qt},[Qt]),i.useEffect(()=>{if(!a||!n)return;const s=Array.from(Is).filter(l=>!Fs.current.has(l)&&!It.current.has(l));if(s.length===0)return;let r=!1;return Ps(l=>{const u=new Set(l);for(const N of s)u.add(N);return It.current=u,u}),Promise.all(s.map(l=>n.getCommitFiles(a,l).then(u=>({hash:l,files:u.files})).catch(u=>(console.error("Failed to fetch commit files:",u),{hash:l,files:[]})))).then(l=>{r||(Rn(u=>{const N=new Map(u);for(const{hash:v,files:B}of l)N.set(v,B);return Fs.current=N,N}),Ps(u=>{const N=new Set(u);for(const{hash:v}of l)N.delete(v);return It.current=N,N}))}),()=>{r=!0,Ps(l=>{let u=!1;const N=new Set(l);for(const v of s)N.delete(v)&&(u=!0);return u?(It.current=N,N):l})}},[Is,a,n]),i.useEffect(()=>{if(!a)return;const s=dt.get(a)??null;xt(s?.commitMessage??""),ks(s?.generatedHighlights??[])},[a]),i.useEffect(()=>{a&&Jo(a,{directory:a,commitMessage:Rt,generatedHighlights:Ns})},[Rt,a,Ns]),i.useEffect(()=>{o&&(Z(),A(),R())},[o,Z,A,R]);const ss=i.useCallback(async()=>{if(!a||!n?.getRemotes||J!==!0){Me([]);return}try{const s=await n.getRemotes(a);Nt.current&&Me(s)}catch{Nt.current&&Me([])}},[a,n,J]);i.useEffect(()=>{o&&ss()},[o,ss]),i.useEffect(()=>{o&&m&&a&&(ce(m),ee(a,n))},[o,m,a,ce,ee,n]),i.useEffect(()=>{if(o&&a)return vi.onGitRefreshHint(s=>{Ke(s.directory)===Ke(a)&&(s.paths?.length&&je(a,s.paths),ne(a,n,{silent:!0}))})},[o,je,a,ne,n]);const se=i.useCallback(async(s=!0)=>{if(a)try{await Promise.all([ne(a,n),X(a,n)])}catch(r){if(s){const l=r instanceof Error?r.message:e("gitView.toast.refreshRepositoryFailed");p.error(l)}}},[a,n,ne,X,e]),ue=i.useCallback(async()=>{a&&await ae(a,n,Ie)},[a,n,ae,Ie]),lt=i.useCallback(async s=>{if(!a)return;const r=Promise.allSettled([X(a,n),ue()]);s&&r.then(s),await ne(a,n).catch(()=>{})},[a,n,X,ne,ue]),Es=i.useCallback(async()=>{a&&await ve(a,n)},[a,n,ve]);i.useEffect(()=>{if(!o||!a||!n?.hasLocalIdentity||J!==!0)return;const s=typeof G=="string"?G.trim():"";if(!s||s==="global")return;const r=ut(),l=JSON.stringify([r,a]);if(mr.current.get(l)===s)return;let N=!1,v=!1;return(async()=>{try{const W=await n.hasLocalIdentity?.(a);if(N||ut()!==r||W===!0||(vs(),v=!0,await n.setGitIdentity(a,s),N||ut()!==r))return;mr.current.set(l,s),await Es()}catch(W){!N&&ut()===r&&console.warn("Failed to auto-apply default git identity:",W)}finally{v&&js()}})(),()=>{N=!0}},[o,vs,a,G,js,n,J,Es]);const tt=i.useMemo(()=>j?[...j.files??[]].sort((r,l)=>r.path.localeCompare(l.path)):[],[j]),Ne=i.useMemo(()=>tt.filter(an),[tt]),Ls=i.useMemo(()=>tt.filter(Yo),[tt]);i.useEffect(()=>{if(!o||!a||tt.length===0)return;const s=[],r=new Set,l=N=>{!N||r.has(N)||(r.add(N),s.push(N))};if(Ne.forEach(N=>l(N.path)),or.forEach(l),tt.slice(0,Uo).forEach(N=>l(N.path)),s.length===0)return;const u=window.setTimeout(()=>{ke(a,n,s,{maxFiles:Wo})},120);return()=>{window.clearTimeout(u)}},[o,tt,a,n,ke,Ne,or]);const Bt=async(s,r,l=!1)=>{if(!a)return;const u=te.start();if(!u)return;Ut(s);const N=e(s==="fetch"?"gitView.sync.fetch":s==="pull"?"gitView.sync.pull":s==="publish"?"gitView.publish.title":"gitView.sync.syncChanges");let v=null;try{if(s==="sync"||s==="publish"){const B=await U.prepare(s==="publish"?"push":"sync",{forceChoose:l,onOperation:u.onOperation});v=Ri(await B())}else if(r&&j)await $r({action:s,directory:a,remoteName:r.name,status:j,sourceControl:h,git:n,onOperation:u.onOperation});else throw new be("tracking-required");if(!u.isCurrent())return;s==="fetch"&&r?p.success(e("gitView.toast.fetchedFromRemote",{name:r.name})):s==="pull"&&r?p.success(e("gitView.toast.pulledFromRemote",{name:r.name})):s==="sync"?p.success(v?.kind==="up-to-date"?e("gitView.toast.alreadyUpToDate"):v?.kind==="pulled"?e("gitView.toast.pulledFromRemote",{name:v.remoteName}):v?.kind==="pushed"?e("gitView.toast.pushedToUpstream",{name:v.remoteName}):e("gitView.toast.syncedChanges")):s==="publish"&&p.success(e("gitView.publish.succeeded")),await lt()}catch(B){if(B instanceof Et||B instanceof Wr){if(B instanceof Et&&B.read.availability==="available"&&p.error(e("gitView.toast.syncActionFailed",{action:N}),{description:B.message||void 0}),u.isCurrent()&&await lt(),u.isCurrent()&&B instanceof Et&&B.read.availability==="available"&&B.read.operation.state==="conflicted"&&B.read.operation.error.code==="CONFLICT"){const Ee=((await n.getGitStatus(a).catch(()=>null))?.files??[]).filter(Ws).map(Sa=>Sa.path);Ee.length>0&&Ue(Ee,"merge")}return}if(B instanceof be&&B.code==="stale-runtime")return;if(B instanceof be&&U.errorMessage(B)){p.info(U.errorMessage(B));return}await lt();const W=B instanceof be?B.code==="contributor-publish-cancelled-after-update"?e("gitView.toast.contributorPublishCancelledAfterUpdate"):B.code==="contributor-publish-cancelled"?e("gitView.toast.contributorPublishCancelled"):e("gitView.toast.syncActionFailed",{action:N}):B instanceof Error?B.message:e("gitView.toast.syncActionFailed",{action:N});p.error(W)}finally{u.finish(),u.isCurrent()&&Ut(null)}},Un=i.useCallback(async s=>{if(!a)return;const r=s.name.trim();if(!r){p.error(e("gitView.toast.remoteNameRequired"));return}if(r==="origin"){p.error(e("gitView.toast.cannotRemoveOriginRemote"));return}Cr(r);try{await n.removeRemote(a,{remote:r}),p.success(e("gitView.toast.removedRemote",{name:r})),await Promise.all([se(!1),ss()])}catch(l){const u=l instanceof Error?l.message:`Failed to remove ${r}`;p.error(u)}finally{Cr(null)}},[a,n,ss,se,e]),Ir=async(s={})=>{if(!a)return;if(!Rt.trim()){p.error(e("gitView.toast.enterCommitMessage"));return}const r=Ne.map(v=>v.path).sort();if(r.length===0){p.error(e("gitView.toast.stageFileToCommit"));return}const l=s.pushAfter?"commitAndPush":"commit";dr(l);let u=null,N="pending";try{if(await n.createGitCommit(a,Rt.trim(),{files:r,stageFiles:[]}),N="local",le(a),le(a),p.success(e("gitView.toast.commitCreated")),xt(""),Jt(),s.pushAfter){if(u=te.start(),!u){p.warning(e("gitView.publish.commitKept")),await lt();return}const v=await U.prepare("push",{onOperation:u.onOperation});Ut("publish"),await v(),N="published",p.success(e("gitView.publish.succeeded")),bn()}await lt(()=>Cn(v=>v+1))}catch(v){if(s.pushAfter&&N==="local"&&p.warning(e("gitView.publish.commitKept")),v instanceof Et||v instanceof Wr){v instanceof Et&&v.read.availability==="available"&&p.error(e("gitView.toast.pushFailed"),{description:v.message||void 0}),await lt();return}if(v instanceof be&&v.code==="stale-runtime")return;if(v instanceof be&&U.errorMessage(v)){p.info(U.errorMessage(v));return}s.pushAfter&&await lt();const B=v instanceof be?v.code==="contributor-publish-cancelled-after-update"?e("gitView.toast.contributorPublishCancelledAfterUpdate"):v.code==="contributor-publish-cancelled"?e("gitView.toast.contributorPublishCancelled"):e("gitView.toast.syncActionFailed",{action:e("gitView.sync.syncChanges")}):v instanceof Error?v.message:e("gitView.toast.createCommitFailed");p.error(B)}finally{u?.finish(),dr(null),s.pushAfter&&Ut(null)}},Kn=i.useCallback(async()=>{if(!a)return;const s=Ne.map(r=>r.path).sort();if(s.length===0){p.error(e("gitView.toast.stageFileToDescribe"));return}console.error("[git-generation][browser] generate button clicked",{directory:a,selectedFiles:s.length}),pr(!0);try{const{message:r}=await Hr(a,s),l=r.subject?.trim()??"",u=Array.isArray(r.highlights)?r.highlights:[];if(l){let N=l;if(kt&&pt.length>0){const v=nn(l,pt);if(v){const{code:B,emoji:W}=v;!l.startsWith(B)&&!l.startsWith(W)&&(N=`${B} ${l}`)}}xt(N)}ks(u),xr()}catch(r){console.error("[git-generation][browser] GitView generate handler failed",{message:r instanceof Error?r.message:String(r),error:r});const l=r instanceof Error?r.message:e("gitView.toast.generateCommitMessageFailed");p.error(l)}finally{pr(!1)}},[a,Ne,kt,pt,xr,e]),zs=s=>s.reason==="attention"?`${s.attentionReason} in progress`:s.reason==="missing"?"worktree is missing":"worktree is invalid",qn=async s=>{if(!a||!j)return;const r=$s(oe);if(r.length>0){p.error(e("gitView.toast.cannotCreateBranch",{reason:zs(r[0])}));return}const l=j.current??null;try{await n.createBranch(a,s,l??"HEAD"),p.success(e("gitView.toast.createdBranch",{name:s})),await n.checkoutBranch(a,s),await se(),await ue()}catch(u){if(u instanceof be&&u.code==="stale-runtime")return;const N=u instanceof Error?u.message:e("gitView.toast.createBranchFailed");throw p.error(N),u}},Jn=async(s,r)=>{if(!a)return;const l=$s(oe);if(l.length>0){p.error(e("gitView.toast.cannotRenameBranch",{reason:zs(l[0])}));return}try{await n.renameBranch(a,s,r),p.success(e("gitView.toast.renamedBranch",{oldName:s,newName:r})),await se(),await ue()}catch(u){const N=u instanceof Error?u.message:e("gitView.toast.renameBranchFailed",{oldName:s,newName:r});p.error(N)}},Yn=async s=>{if(!a)return;const r=$s(oe);if(r.length>0){p.error(e("gitView.toast.cannotCheckout",{reason:zs(r[0])}));return}const l=s.replace(/^remotes\//,"");if(j?.current!==l){if((j?.files?.length??0)>0){Dt(l);return}await Gs(l)}},Gs=async s=>{if(!a)return;const r=s;try{const l=await n.checkoutBranch(a,r);p.success(e("gitView.toast.checkedOut",{name:l?.branch||r})),await se(),await ue()}catch(l){const u=l instanceof Error?l.message:e("gitView.toast.checkoutFailed",{name:r});p.error(u)}},Qn=async s=>{if(!a)return;const r=ut();vs();try{const l=await Ki({directory:a,identity:s,remoteName:Ae||null},{git:n,sourceControl:h});if(ut()!==r)return;l.status==="failed"?p.error(e("gitView.toast.applyIdentityFailed")):p.success(e("gitView.toast.appliedIdentity",{name:Vi(s,e)})),await Es()}catch(l){if(ut()!==r)return;const u=l instanceof Error?l.message:e("gitView.toast.applyIdentityFailed");p.error(u)}finally{js()}},Mt=i.useMemo(()=>c?.all?c.all.filter(s=>!s.startsWith("remotes/")).sort():[],[c]),At=i.useMemo(()=>c?.all?c.all.filter(s=>s.startsWith("remotes/")).map(s=>s.replace(/^remotes\//,"")).sort():[],[c]),Xn=i.useMemo(()=>Eo(Ve.map(s=>s.name),At),[Ve,At]),st=j?.current??null,Pr=i.useMemo(()=>{const s=$.contexts[0]?.primaryRemote;return s?c?.defaultBranches?.[s]:void 0},[$.contexts,c]),ct=i.useMemo(()=>zi({remoteNames:new Set($.contexts[0]?.primaryRemote?[$.contexts[0].primaryRemote]:[]),knownRemoteNames:new Set($.read?.repository.remotes.map(s=>s.name)??[]),localBranches:Mt,worktreeCreatedFromBranch:d?.createdFromBranch,rootBranchHint:Vt,defaultBranch:Pr,headBranch:st,fallbackToConventional:!1}),[st,Pr,$.contexts,Mt,$.read,Vt,d?.createdFromBranch]),Zn=i.useMemo(()=>{const s=$.contexts[0]?.primaryRemote,r=s?`${s}/${ct}`:null;return r&&At.includes(r)?r:ct},[ct,$.contexts,At]),Fr=ji(),ea=i.useMemo(()=>Go(V,F,Fr),[V,F,Fr]),Dr=$.read?$.read.binding?.providers.find(s=>s.readiness==="ready")?.accountId??null:void 0,ta=i.useMemo(()=>_o(V,F,L,Dr),[Dr,L,V,F]),sa=Ne.length,ra=re||cr!==null||ur!==null,na=!!(d&&Vs&&Rs&&kn),Br=!!st,rt=na&&Vs&&Rs&&d?{repoRoot:Vs,sourceBranch:Rs,worktreeMetadata:d}:null;i.useEffect(()=>{if(!a||!n||!I?.all?.length||!st||!ct||st===ct){yt(null);return}let s=!1;return(async()=>{try{const l=await n.getGitLog(a,{from:ct,to:"HEAD",maxCount:Ie});if(s)return;const u=new Set((l?.all??[]).map(v=>v.hash).filter(v=>typeof v=="string"&&v.length>0));if(u.size===0){yt(null);return}const N=I.all.findIndex(v=>!u.has(v.hash));if(N===0){yt(null);return}if(N===-1){yt({insertBeforeIndex:I.all.length,branchName:st,direction:"up"});return}yt({insertBeforeIndex:N,branchName:st,direction:"up"})}catch{s||yt(null)}})(),()=>{s=!0}},[ct,st,a,n,I,Ie]),i.useEffect(()=>{Ds(null)},[a]),i.useEffect(()=>{if(ge!=="graph"||!a){ge!=="graph"&&Ds(null);return}let s=!1;return kr(!0),n.getGitLog(a,{maxCount:Ms,all:!0}).then(r=>{s||Ds(r)}).catch(r=>{console.error("Failed to fetch graph log:",r)}).finally(()=>{s||kr(!1)}),()=>{s=!0}},[ge,a,Ms,En,n]);const Ot=i.useCallback((s,r)=>{if(!a||s.length===0)return;const l=Array.from(new Set(s));fr(N=>{const v=new Set(N);return l.forEach(B=>v.add(B)),v});const u=Be(a,l,r);et.enqueue({directory:a,direction:r,paths:new Set(l),rollback:()=>St(a,u)}),Wt()},[a,et,Be,St,Wt]),_s=i.useCallback(async s=>{if(a){qt(r=>{const l=new Set(r);return l.add(s),l});try{await n.revertGitFile(a,s,{scope:"working"}),p.success(e("gitView.toast.revertedFile",{path:s})),await se(!1)}catch(r){const l=r instanceof Error?r.message:e("gitView.toast.revertFailed");p.error(l)}finally{qt(r=>{const l=new Set(r);return l.delete(s),l})}}},[a,se,n,e]),Tt=i.useCallback(async(s,r,l="all")=>{if(!a||s.length===0)return;const u=Array.from(new Set(s));if(Ss||u.some(W=>Cs.has(W)))return;const N=new Set(Ne.map(W=>W.path)),v=l==="all"&&u.some(W=>N.has(W));r&&gr(!0),qt(W=>{const ie=new Set(W);return u.forEach(Ee=>ie.add(Ee)),ie});const B=[];try{if(await Ci(u,Ko,async W=>{try{await n.revertGitFile(a,W,{scope:l})}catch(ie){B.push({path:W,message:ie instanceof Error?ie.message:e("gitView.toast.revertFailed")})}}),v&&B.length<u.length&&le(a),await se(!1),B.length===0)p.success(u.length===1?e("gitView.toast.revertedFilesSingle",{count:u.length}):e("gitView.toast.revertedFilesPlural",{count:u.length}));else if(B.length===u.length)p.error(B[0]?.message||e("gitView.toast.revertFailed"));else{const W=u.length-B.length;p.warning(W===1?e("gitView.toast.revertedSomeSingle",{success:W,failed:B.length}):e("gitView.toast.revertedSomePlural",{success:W,failed:B.length}))}}finally{qt(W=>{const ie=new Set(W);return u.forEach(Ee=>ie.delete(Ee)),ie}),r&&gr(!1)}},[le,a,n,Ss,se,Cs,Ne,e]),aa=i.useCallback(async s=>{await Tt(s,!0)},[Tt]),ia=i.useCallback(async s=>{await Tt(s,!1,"working")},[Tt]),Hs=i.useCallback((s,r)=>{if(g&&!ze){Ge(g,s,r);return}We(s,r)},[g,ze,We,Ge]),oa=i.useCallback(()=>bs(!0),[]),la=i.useMemo(()=>{const s=[];return Ne.length>0&&s.push({id:"staged",title:e("gitView.changes.stagedTitle"),entries:Ne,statsScope:"staged",actionSymbol:"-",actionAllLabel:e("gitView.changes.unstageAllAria"),getActionLabel:r=>e("gitView.changes.unstageFileAria",{path:r}),onActionFile:r=>{Ot([r],"unstage")},onActionAll:r=>{Ot(r,"unstage")},onViewDiff:r=>Hs(r,!0),onRevertFile:_s,showRevertActions:!1,accent:!0}),Ls.length>0&&s.push({id:"unstaged",title:e("gitView.changes.title"),entries:Ls,statsScope:"working",actionSymbol:"+",actionAllLabel:e("gitView.changes.stageAllAria"),getActionLabel:r=>e("gitView.changes.stageFileAria",{path:r}),onActionFile:r=>{Ot([r],"stage")},onActionAll:r=>{Ot(r,"stage")},onViewDiff:r=>Hs(r,!1),onRevertFile:_s}),s},[_s,Hs,Ot,Ne,e,Ls]),ca=i.useCallback(s=>{if(s.length===0)return;const r=s.map(l=>l.trim()).filter(Boolean);if(r.length===0){Jt();return}xt(l=>{const u=l.trim(),N=u.length>0?`
|
|
3
3
|
|
|
4
4
|
`:"";return`${u}${N}${r.join(`
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{R as i,j as u}from"./vendor-react-BUCujlKS.js";import{bk as Q,u as _,bl as ee,bm as te,N as S,B as q,aA as ne,bn as re,bo as L}from"./useAppFontEffects-BZrjCfFw.js";import{ab as se,ac as ie,ad as oe,ae as ce,af as ae}from"./katex.min-u4DtE8E5.js";import"./vendor-scheduler-7OC5HNn7.js";import"./vendor-base-ui-CPKyhvxM.js";import"./vendor-floating-ui-utils-D6FqdtJt.js";import"./vendor-floating-ui-dom-BTvzWks8.js";import"./vendor-floating-ui-core-PuGzNPnN.js";import"./vendor-floating-ui-react-dom-DxYCWdHj.js";import"./vendor-use-sync-external-store-D6wYuSt-.js";import"./vendor-zod-DDir2TeQ.js";import"./vendor-simplewebauthn-browser-VDA66rT_.js";import"./vendor-vite-runtime-DD1OZmLC.js";import"./vendor-zustand-BAGL70zf.js";import"./vendor-class-variance-authority-5VPnzWs2.js";import"./vendor-clsx-B-dksMZM.js";import"./vendor-dnd-kit-core-BZknOX2w.js";import"./vendor-dnd-kit-utilities-B_MdXhJC.js";import"./vendor-dnd-kit-accessibility-BHxJPORy.js";import"./vendor-dnd-kit-sortable-CsEagZ81.js";import"./vendor-tanstack-react-virtual-Bmi0tTrf.js";import"./vendor-tanstack-virtual-core-CdGDGrnp.js";import"./vendor-framer-motion-DxDVhOLc.js";import"./vendor-motion-dom-HXPOMxb7.js";import"./vendor-motion-utils-BGh8QBgx.js";import"./vendor-codemirror-commands-dar6chwA.js";import"./vendor-codemirror-state-Dek9sMtw.js";import"./vendor-marijn-find-cluster-break-DXwl3gUT.js";import"./vendor-codemirror-view-B66jUSmE.js";import"./vendor-style-mod-NZ5MEPvj.js";import"./vendor-w3c-keyname-Vcq4gwWv.js";import"./vendor-crelt-C8TCjufn.js";import"./vendor-codemirror-language-DyL0aCoH.js";import"./vendor-lezer-common-B3-cUCR_.js";import"./vendor-lezer-highlight-CDMHUZ74.js";import"./vendor-codemirror-streamparser-CmlTsbN2.js";import"./vendor-codemirror-lang-javascript-Cem6LjJ8.js";import"./vendor-lezer-javascript-D7Tj24ot.js";import"./vendor-lezer-lr-bhwg1HMg.js";import"./vendor-codemirror-autocomplete-CIqXJolH.js";import"./vendor-codemirror-lang-json-C9rLLO0q.js";import"./vendor-lezer-json-Iaex0UN-.js";import"./vendor-codemirror-lang-css-9qjxcVkg.js";import"./vendor-lezer-css-C5xB6jxd.js";import"./vendor-codemirror-lang-html-D7VQUxeE.js";import"./vendor-lezer-html-C0I1p52t.js";import"./vendor-codemirror-lang-markdown-Cikh4w2I.js";import"./vendor-lezer-markdown-C6g-d6P3.js";import"./vendor-codemirror-language-data-DsRKCbVv.js";import"./vendor-codemirror-lang-python-DVl8-2Op.js";import"./vendor-lezer-python-CvuFxeZl.js";import"./vendor-sonner-DFyL3AvE.js";import"./vendor-capacitor-core-B4EWRrHz.js";import"./vendor-cmdk-DgLInKvT.js";import"./vendor-radix-ui-react-dialog-B94Bt2qq.js";import"./vendor-radix-ui-primitive-Dc_FVRD7.js";import"./vendor-radix-ui-react-compose-refs-DcAh5WdT.js";import"./vendor-radix-ui-react-context-Czxm7Z62.js";import"./vendor-radix-ui-react-id-f5BLKEVw.js";import"./vendor-radix-ui-react-use-layout-effect-D_3IhJdJ.js";import"./vendor-radix-ui-react-use-controllable-state-BFT5YmkA.js";import"./vendor-radix-ui-react-dismissable-layer-D7kXcwgJ.js";import"./vendor-radix-ui-react-primitive-DhVoX9SD.js";import"./vendor-radix-ui-react-slot-BQgQOasS.js";import"./vendor-radix-ui-react-use-callback-ref-BZPnuXAC.js";import"./vendor-radix-ui-react-use-escape-keydown-oph88g-F.js";import"./vendor-radix-ui-react-focus-scope-CiaxW4dD.js";import"./vendor-radix-ui-react-portal-BMJYHWck.js";import"./vendor-radix-ui-react-presence-CNxf-uq4.js";import"./vendor-radix-ui-react-focus-guards-B6qJXYua.js";import"./vendor-react-remove-scroll-DO7dCTnK.js";import"./vendor-tslib-De9GV7Vy.js";import"./vendor-react-remove-scroll-bar-BcFYyj3E.js";import"./vendor-react-style-singleton-q6EMHnwf.js";import"./vendor-get-nonce-C-Z93AgS.js";import"./vendor-use-sidecar-zDC0RhA3.js";import"./vendor-use-callback-ref-D3RC8gqK.js";import"./vendor-aria-hidden-DvXkyWUv.js";import"./vendor-legendapp-list-D2O6oUGf.js";import"./vendor-tailwind-merge-CPcsbTWB.js";import"./vendor-fuse.js-Dw8P0qyA.js";import"./vendor-opencode-client-h8RufjAw.js";const ue=1,le=8e3,de=6e4,he={refreshAuth:ie,clearUrlAuthToken:se,openSocket:s=>oe(ce().websocket(`/api/guests/${s}/surface/ws`)),isPaused:()=>document.visibilityState==="hidden"||!navigator.onLine,onWake:s=>(window.addEventListener("online",s),document.addEventListener("visibilitychange",s),()=>{window.removeEventListener("online",s),document.removeEventListener("visibilitychange",s)})};class pe{constructor(r,n,c=he){this.guestId=r,this.handlers=n,this.dependencies=c}socket=null;pendingFrame=null;reconnectTimer=null;wakeCleanup=null;failures=0;generation=0;disposed=!1;ended=!1;start(){this.handlers.onConnection({status:"connecting"}),this.connect()}dispose(){this.disposed=!0,this.generation+=1,this.cancelReconnect();const r=this.socket;if(this.socket=null,r)try{r.close()}catch{}}ack(r){this.send({type:"ack",seq:r})}sendInput(r){return r.length===0?!1:this.send({type:"input",events:r})}release(){this.send({type:"release"})}resize(r,n){this.send({type:"resize",width:r,height:n})}requestClipboard(r){this.send({type:"clipboard-read",id:r})}send(r){const n=this.socket;if(!n||n.readyState!==ue)return!1;try{return n.send(JSON.stringify(r)),!0}catch{return!1}}async connect(){if(this.disposed||this.ended)return;const r=this.generation;try{await this.dependencies.refreshAuth()}catch{this.scheduleReconnect();return}if(r!==this.generation||this.disposed)return;let n;try{n=this.dependencies.openSocket(this.guestId)}catch{this.scheduleReconnect();return}n.binaryType="arraybuffer",this.socket=n;let c=!1;n.onopen=()=>{this.socket===n&&(c=!0,this.failures=0,this.pendingFrame=null,this.handlers.onConnection({status:"open"}))},n.onmessage=p=>{this.socket===n&&this.handleMessage(p.data)},n.onerror=()=>{},n.onclose=()=>{this.socket===n&&(this.socket=null,this.pendingFrame=null,!(this.disposed||this.ended)&&(c||this.dependencies.clearUrlAuthToken(),this.scheduleReconnect()))}}handleMessage(r){if(r instanceof ArrayBuffer){const c=this.pendingFrame;if(this.pendingFrame=null,!c)return;this.handlers.onFrame({...c,bytes:r});return}let n;try{const c=Q.safeParse(JSON.parse(r));if(!c.success)return;n=c.data}catch{return}switch(n.type){case"hello":this.handlers.onViewer?.(n.viewerId);return;case"frame":this.pendingFrame={seq:n.seq,width:n.width,height:n.height,mime:n.mime,agentActive:n.agentActive},n.title&&(this.pendingFrame.title=n.title);return;case"control":this.handlers.onControl({controller:n.controller,mine:n.mine});return;case"resized":this.handlers.onResized?.({width:n.width,height:n.height});return;case"clipboard":this.handlers.onClipboard?.(n.id,n.text);return;case"error":this.handlers.onError?.(n.code,n.message);return;case"ended":this.ended=!0,this.cancelReconnect(),this.handlers.onConnection({status:"ended",reason:n.reason});return}}retry(){this.disposed||(this.ended=!1,this.failures=0,this.handlers.onConnection({status:"connecting"}),this.connect())}scheduleReconnect(){if(this.reconnectTimer||this.disposed||this.ended)return;this.failures+=1;const r=this.dependencies.isPaused()?de:Math.min(500*2**Math.min(this.failures-1,10),le);this.handlers.onConnection({status:"reconnecting",attempt:this.failures});const n=()=>{this.dependencies.isPaused()||(this.cancelReconnect(),this.connect())};this.wakeCleanup=this.dependencies.onWake(n),this.reconnectTimer=setTimeout(n,r)}cancelReconnect(){this.reconnectTimer&&(clearTimeout(this.reconnectTimer),this.reconnectTimer=null),this.wakeCleanup?.(),this.wakeCleanup=null}}const me=250,F=s=>({alt:s.altKey,ctrl:s.ctrlKey,meta:s.metaKey,shift:s.shiftKey}),fe=s=>(s.metaKey||s.ctrlKey)&&!s.altKey&&s.key.toLowerCase()==="c",ge=s=>(s.metaKey||s.ctrlKey)&&!s.altKey&&s.key.toLowerCase()==="v",Vt=({mode:s})=>{const{t:r}=_(),n=ae(s),c=ee(t=>t.guests.find(e=>e.id===n)??null),p=c!==null&&te(c)&&c.service?.surface===!0,w=i.useRef(null),b=i.useRef(null),l=i.useRef(null),k=i.useRef(null),y=i.useRef([]),m=i.useRef(null),T=i.useRef(0),C=i.useRef(!1),R=i.useRef({controller:"none",mine:!1}),[d,U]=i.useState({status:"connecting"}),[h,W]=i.useState({controller:"none",mine:!1}),A=i.useCallback(t=>{R.current=t,W(t)},[]),[I,$]=i.useState(""),[V,X]=i.useState(!1),[f,K]=i.useState(!1),[M,j]=i.useState(!1),E=i.useCallback(async t=>{const e=b.current,o=l.current;if(!(!e||!o))try{const a=await createImageBitmap(new Blob([t.bytes],{type:t.mime}));(e.width!==t.width||e.height!==t.height)&&(e.width=t.width,e.height=t.height),e.getContext("2d")?.drawImage(a,0,0,t.width,t.height),a.close(),k.current={width:t.width,height:t.height},K(!0),$(t.title??""),X(t.agentActive)}catch{}finally{o.ack(t.seq)}},[]);i.useEffect(()=>{if(!p)return;let t=null;const e=new pe(n,{onViewer:o=>{t&&L(n,t),t=o,re(n,o)},onFrame:o=>{E(o)},onControl:A,onConnection:U,onClipboard:(o,a)=>{ne(a)}});return l.current=e,e.start(),()=>{t&&L(n,t),e.dispose(),l.current===e&&(l.current=null),m.current!==null&&cancelAnimationFrame(m.current),m.current=null,y.current=[],k.current=null,K(!1)}},[p,E,n,A]),i.useEffect(()=>{const t=w.current;if(!t||!p)return;let e=null;const o=new ResizeObserver(a=>{const g=a[0];if(!g)return;const{width:v,height:Z}=g.contentRect;e&&clearTimeout(e),e=setTimeout(()=>{e=null;const D=window.devicePixelRatio||1,z=Math.round(v*D),O=Math.round(Z*D);z>0&&O>0&&l.current?.resize(z,O)},me)});return o.observe(t),()=>{o.disconnect(),e&&clearTimeout(e)}},[p]);const x=i.useCallback(t=>{y.current.push(t),m.current===null&&(m.current=requestAnimationFrame(()=>{m.current=null;const e=y.current;y.current=[],l.current?.sendInput(e),C.current&&(C.current=!1,T.current+=1,l.current?.requestClipboard(`copy-${T.current}`))}))},[]),N=i.useCallback(t=>{const e=b.current,o=k.current;if(!e||!o)return null;const a=e.getBoundingClientRect();if(a.width===0||a.height===0)return null;const g=(t.clientX-a.left)/a.width*o.width,v=(t.clientY-a.top)/a.height*o.height;return{x:Math.round(g),y:Math.round(v)}},[]),P=t=>e=>{if(!f||t==="move"&&e.buttons===0&&!(R.current.controller==="user"&&R.current.mine))return;const o=N(e);o&&(t==="down"?(w.current?.focus(),e.currentTarget.setPointerCapture(e.pointerId)):t==="up"&&e.currentTarget.hasPointerCapture(e.pointerId)&&e.currentTarget.releasePointerCapture(e.pointerId),e.preventDefault(),x({type:"pointer",action:t,x:o.x,y:o.y,button:t==="move"?-1:e.button,buttons:e.buttons,modifiers:F(e)}))},G=t=>{if(!f)return;const e=N(t);e&&(t.preventDefault(),x({type:"wheel",x:e.x,y:e.y,deltaX:t.deltaX,deltaY:t.deltaY,modifiers:F(t)}))},B=t=>e=>{f&&(ge(e)||(e.preventDefault(),e.stopPropagation(),t==="down"&&fe(e)&&(C.current=!0),x({type:"key",action:t,key:e.key,code:e.code,modifiers:F(e)})))},Y=t=>{if(!f)return;const e=t.clipboardData.getData("text/plain");t.preventDefault(),e&&x({type:"text",text:e})},H=()=>{l.current?.release()};if(!c)return null;if(!p)return u.jsx("div",{className:"flex h-full items-center justify-center px-6 text-sm text-muted-foreground",children:r("contextPanel.surface.unavailable")});const J=d.status==="connecting"?"contextPanel.surface.status.connecting":d.status==="reconnecting"?"contextPanel.surface.status.reconnecting":d.status==="ended"?`contextPanel.surface.ended.${d.reason}`:h.controller==="user"?h.mine?"contextPanel.surface.status.youControl":"contextPanel.surface.status.otherControls":h.controller==="agent"||V?"contextPanel.surface.status.agentWorking":M?"contextPanel.surface.status.readyFocused":"contextPanel.surface.status.ready";return u.jsxs("div",{className:"flex h-full flex-col bg-[var(--surface-background)]",children:[u.jsxs("div",{className:"flex h-8 shrink-0 items-center gap-2 border-b border-border px-3",children:[u.jsx("span",{className:"typography-meta min-w-0 flex-1 truncate text-foreground",title:I||c.name,children:I||c.name}),u.jsx("span",{className:S("typography-meta shrink-0 truncate",h.controller==="user"&&h.mine?"text-foreground":"text-muted-foreground"),"aria-live":"polite",children:r(J)}),h.controller==="user"&&h.mine?u.jsx(q,{size:"xs",variant:"outline",onClick:H,children:r("contextPanel.surface.handBack")}):null,d.status==="ended"?u.jsx(q,{size:"xs",variant:"outline",onClick:()=>l.current?.retry(),children:r("contextPanel.surface.retry")}):null]}),u.jsxs("div",{ref:w,tabIndex:0,role:"application","aria-label":r("contextPanel.surface.canvasAria",{name:c.name}),"data-terminal-owner":`surface:${n}`,className:S("relative flex min-h-0 flex-1 items-center justify-center overflow-hidden outline-none",M?"ring-1 ring-inset ring-[var(--interactive-selection-border)]":""),onFocus:()=>j(!0),onBlur:()=>j(!1),onKeyDown:B("down"),onKeyUp:B("up"),onPaste:Y,children:[u.jsx("canvas",{ref:b,className:S("max-h-full max-w-full",f?"block":"hidden",h.controller==="user"&&!h.mine?"cursor-not-allowed":"cursor-default"),onPointerDown:P("down"),onPointerMove:P("move"),onPointerUp:P("up"),onWheel:G,onContextMenu:t=>t.preventDefault()}),!f||d.status!=="open"?u.jsx("div",{className:"absolute inset-0 flex items-center justify-center px-6 text-center text-sm text-muted-foreground",children:r(d.status==="ended"?`contextPanel.surface.ended.${d.reason}`:d.status==="reconnecting"?"contextPanel.surface.status.reconnecting":"contextPanel.surface.status.connecting")}):null]})]})};export{Vt as GuestSurfacePane};
|
|
1
|
+
import{R as i,j as u}from"./vendor-react-BUCujlKS.js";import{bk as Q,u as _,bl as ee,bm as te,N as S,B as q,aA as ne,bn as re,bo as L}from"./useAppFontEffects-d9vsRNKm.js";import{ab as se,ac as ie,ad as oe,ae as ce,af as ae}from"./katex.min-u4DtE8E5.js";import"./vendor-scheduler-7OC5HNn7.js";import"./vendor-base-ui-CPKyhvxM.js";import"./vendor-floating-ui-utils-D6FqdtJt.js";import"./vendor-floating-ui-dom-BTvzWks8.js";import"./vendor-floating-ui-core-PuGzNPnN.js";import"./vendor-floating-ui-react-dom-DxYCWdHj.js";import"./vendor-use-sync-external-store-D6wYuSt-.js";import"./vendor-zod-DDir2TeQ.js";import"./vendor-simplewebauthn-browser-VDA66rT_.js";import"./vendor-vite-runtime-DD1OZmLC.js";import"./vendor-zustand-BAGL70zf.js";import"./vendor-class-variance-authority-5VPnzWs2.js";import"./vendor-clsx-B-dksMZM.js";import"./vendor-dnd-kit-core-BZknOX2w.js";import"./vendor-dnd-kit-utilities-B_MdXhJC.js";import"./vendor-dnd-kit-accessibility-BHxJPORy.js";import"./vendor-dnd-kit-sortable-CsEagZ81.js";import"./vendor-tanstack-react-virtual-Bmi0tTrf.js";import"./vendor-tanstack-virtual-core-CdGDGrnp.js";import"./vendor-framer-motion-DxDVhOLc.js";import"./vendor-motion-dom-HXPOMxb7.js";import"./vendor-motion-utils-BGh8QBgx.js";import"./vendor-codemirror-commands-dar6chwA.js";import"./vendor-codemirror-state-Dek9sMtw.js";import"./vendor-marijn-find-cluster-break-DXwl3gUT.js";import"./vendor-codemirror-view-B66jUSmE.js";import"./vendor-style-mod-NZ5MEPvj.js";import"./vendor-w3c-keyname-Vcq4gwWv.js";import"./vendor-crelt-C8TCjufn.js";import"./vendor-codemirror-language-DyL0aCoH.js";import"./vendor-lezer-common-B3-cUCR_.js";import"./vendor-lezer-highlight-CDMHUZ74.js";import"./vendor-codemirror-streamparser-CmlTsbN2.js";import"./vendor-codemirror-lang-javascript-Cem6LjJ8.js";import"./vendor-lezer-javascript-D7Tj24ot.js";import"./vendor-lezer-lr-bhwg1HMg.js";import"./vendor-codemirror-autocomplete-CIqXJolH.js";import"./vendor-codemirror-lang-json-C9rLLO0q.js";import"./vendor-lezer-json-Iaex0UN-.js";import"./vendor-codemirror-lang-css-9qjxcVkg.js";import"./vendor-lezer-css-C5xB6jxd.js";import"./vendor-codemirror-lang-html-D7VQUxeE.js";import"./vendor-lezer-html-C0I1p52t.js";import"./vendor-codemirror-lang-markdown-Cikh4w2I.js";import"./vendor-lezer-markdown-C6g-d6P3.js";import"./vendor-codemirror-language-data-DP_Bh3S8.js";import"./vendor-codemirror-lang-python-DVl8-2Op.js";import"./vendor-lezer-python-CvuFxeZl.js";import"./vendor-sonner-DFyL3AvE.js";import"./vendor-capacitor-core-B4EWRrHz.js";import"./vendor-cmdk-DgLInKvT.js";import"./vendor-radix-ui-react-dialog-B94Bt2qq.js";import"./vendor-radix-ui-primitive-Dc_FVRD7.js";import"./vendor-radix-ui-react-compose-refs-DcAh5WdT.js";import"./vendor-radix-ui-react-context-Czxm7Z62.js";import"./vendor-radix-ui-react-id-f5BLKEVw.js";import"./vendor-radix-ui-react-use-layout-effect-D_3IhJdJ.js";import"./vendor-radix-ui-react-use-controllable-state-BFT5YmkA.js";import"./vendor-radix-ui-react-dismissable-layer-D7kXcwgJ.js";import"./vendor-radix-ui-react-primitive-DhVoX9SD.js";import"./vendor-radix-ui-react-slot-BQgQOasS.js";import"./vendor-radix-ui-react-use-callback-ref-BZPnuXAC.js";import"./vendor-radix-ui-react-use-escape-keydown-oph88g-F.js";import"./vendor-radix-ui-react-focus-scope-CiaxW4dD.js";import"./vendor-radix-ui-react-portal-BMJYHWck.js";import"./vendor-radix-ui-react-presence-CNxf-uq4.js";import"./vendor-radix-ui-react-focus-guards-B6qJXYua.js";import"./vendor-react-remove-scroll-DO7dCTnK.js";import"./vendor-tslib-De9GV7Vy.js";import"./vendor-react-remove-scroll-bar-BcFYyj3E.js";import"./vendor-react-style-singleton-q6EMHnwf.js";import"./vendor-get-nonce-C-Z93AgS.js";import"./vendor-use-sidecar-zDC0RhA3.js";import"./vendor-use-callback-ref-D3RC8gqK.js";import"./vendor-aria-hidden-DvXkyWUv.js";import"./vendor-legendapp-list-D2O6oUGf.js";import"./vendor-tailwind-merge-CPcsbTWB.js";import"./vendor-fuse.js-Dw8P0qyA.js";import"./vendor-opencode-client-h8RufjAw.js";const ue=1,le=8e3,de=6e4,he={refreshAuth:ie,clearUrlAuthToken:se,openSocket:s=>oe(ce().websocket(`/api/guests/${s}/surface/ws`)),isPaused:()=>document.visibilityState==="hidden"||!navigator.onLine,onWake:s=>(window.addEventListener("online",s),document.addEventListener("visibilitychange",s),()=>{window.removeEventListener("online",s),document.removeEventListener("visibilitychange",s)})};class pe{constructor(r,n,c=he){this.guestId=r,this.handlers=n,this.dependencies=c}socket=null;pendingFrame=null;reconnectTimer=null;wakeCleanup=null;failures=0;generation=0;disposed=!1;ended=!1;start(){this.handlers.onConnection({status:"connecting"}),this.connect()}dispose(){this.disposed=!0,this.generation+=1,this.cancelReconnect();const r=this.socket;if(this.socket=null,r)try{r.close()}catch{}}ack(r){this.send({type:"ack",seq:r})}sendInput(r){return r.length===0?!1:this.send({type:"input",events:r})}release(){this.send({type:"release"})}resize(r,n){this.send({type:"resize",width:r,height:n})}requestClipboard(r){this.send({type:"clipboard-read",id:r})}send(r){const n=this.socket;if(!n||n.readyState!==ue)return!1;try{return n.send(JSON.stringify(r)),!0}catch{return!1}}async connect(){if(this.disposed||this.ended)return;const r=this.generation;try{await this.dependencies.refreshAuth()}catch{this.scheduleReconnect();return}if(r!==this.generation||this.disposed)return;let n;try{n=this.dependencies.openSocket(this.guestId)}catch{this.scheduleReconnect();return}n.binaryType="arraybuffer",this.socket=n;let c=!1;n.onopen=()=>{this.socket===n&&(c=!0,this.failures=0,this.pendingFrame=null,this.handlers.onConnection({status:"open"}))},n.onmessage=p=>{this.socket===n&&this.handleMessage(p.data)},n.onerror=()=>{},n.onclose=()=>{this.socket===n&&(this.socket=null,this.pendingFrame=null,!(this.disposed||this.ended)&&(c||this.dependencies.clearUrlAuthToken(),this.scheduleReconnect()))}}handleMessage(r){if(r instanceof ArrayBuffer){const c=this.pendingFrame;if(this.pendingFrame=null,!c)return;this.handlers.onFrame({...c,bytes:r});return}let n;try{const c=Q.safeParse(JSON.parse(r));if(!c.success)return;n=c.data}catch{return}switch(n.type){case"hello":this.handlers.onViewer?.(n.viewerId);return;case"frame":this.pendingFrame={seq:n.seq,width:n.width,height:n.height,mime:n.mime,agentActive:n.agentActive},n.title&&(this.pendingFrame.title=n.title);return;case"control":this.handlers.onControl({controller:n.controller,mine:n.mine});return;case"resized":this.handlers.onResized?.({width:n.width,height:n.height});return;case"clipboard":this.handlers.onClipboard?.(n.id,n.text);return;case"error":this.handlers.onError?.(n.code,n.message);return;case"ended":this.ended=!0,this.cancelReconnect(),this.handlers.onConnection({status:"ended",reason:n.reason});return}}retry(){this.disposed||(this.ended=!1,this.failures=0,this.handlers.onConnection({status:"connecting"}),this.connect())}scheduleReconnect(){if(this.reconnectTimer||this.disposed||this.ended)return;this.failures+=1;const r=this.dependencies.isPaused()?de:Math.min(500*2**Math.min(this.failures-1,10),le);this.handlers.onConnection({status:"reconnecting",attempt:this.failures});const n=()=>{this.dependencies.isPaused()||(this.cancelReconnect(),this.connect())};this.wakeCleanup=this.dependencies.onWake(n),this.reconnectTimer=setTimeout(n,r)}cancelReconnect(){this.reconnectTimer&&(clearTimeout(this.reconnectTimer),this.reconnectTimer=null),this.wakeCleanup?.(),this.wakeCleanup=null}}const me=250,F=s=>({alt:s.altKey,ctrl:s.ctrlKey,meta:s.metaKey,shift:s.shiftKey}),fe=s=>(s.metaKey||s.ctrlKey)&&!s.altKey&&s.key.toLowerCase()==="c",ge=s=>(s.metaKey||s.ctrlKey)&&!s.altKey&&s.key.toLowerCase()==="v",Vt=({mode:s})=>{const{t:r}=_(),n=ae(s),c=ee(t=>t.guests.find(e=>e.id===n)??null),p=c!==null&&te(c)&&c.service?.surface===!0,w=i.useRef(null),b=i.useRef(null),l=i.useRef(null),k=i.useRef(null),y=i.useRef([]),m=i.useRef(null),T=i.useRef(0),C=i.useRef(!1),R=i.useRef({controller:"none",mine:!1}),[d,U]=i.useState({status:"connecting"}),[h,W]=i.useState({controller:"none",mine:!1}),A=i.useCallback(t=>{R.current=t,W(t)},[]),[I,$]=i.useState(""),[V,X]=i.useState(!1),[f,K]=i.useState(!1),[M,j]=i.useState(!1),E=i.useCallback(async t=>{const e=b.current,o=l.current;if(!(!e||!o))try{const a=await createImageBitmap(new Blob([t.bytes],{type:t.mime}));(e.width!==t.width||e.height!==t.height)&&(e.width=t.width,e.height=t.height),e.getContext("2d")?.drawImage(a,0,0,t.width,t.height),a.close(),k.current={width:t.width,height:t.height},K(!0),$(t.title??""),X(t.agentActive)}catch{}finally{o.ack(t.seq)}},[]);i.useEffect(()=>{if(!p)return;let t=null;const e=new pe(n,{onViewer:o=>{t&&L(n,t),t=o,re(n,o)},onFrame:o=>{E(o)},onControl:A,onConnection:U,onClipboard:(o,a)=>{ne(a)}});return l.current=e,e.start(),()=>{t&&L(n,t),e.dispose(),l.current===e&&(l.current=null),m.current!==null&&cancelAnimationFrame(m.current),m.current=null,y.current=[],k.current=null,K(!1)}},[p,E,n,A]),i.useEffect(()=>{const t=w.current;if(!t||!p)return;let e=null;const o=new ResizeObserver(a=>{const g=a[0];if(!g)return;const{width:v,height:Z}=g.contentRect;e&&clearTimeout(e),e=setTimeout(()=>{e=null;const D=window.devicePixelRatio||1,z=Math.round(v*D),O=Math.round(Z*D);z>0&&O>0&&l.current?.resize(z,O)},me)});return o.observe(t),()=>{o.disconnect(),e&&clearTimeout(e)}},[p]);const x=i.useCallback(t=>{y.current.push(t),m.current===null&&(m.current=requestAnimationFrame(()=>{m.current=null;const e=y.current;y.current=[],l.current?.sendInput(e),C.current&&(C.current=!1,T.current+=1,l.current?.requestClipboard(`copy-${T.current}`))}))},[]),N=i.useCallback(t=>{const e=b.current,o=k.current;if(!e||!o)return null;const a=e.getBoundingClientRect();if(a.width===0||a.height===0)return null;const g=(t.clientX-a.left)/a.width*o.width,v=(t.clientY-a.top)/a.height*o.height;return{x:Math.round(g),y:Math.round(v)}},[]),P=t=>e=>{if(!f||t==="move"&&e.buttons===0&&!(R.current.controller==="user"&&R.current.mine))return;const o=N(e);o&&(t==="down"?(w.current?.focus(),e.currentTarget.setPointerCapture(e.pointerId)):t==="up"&&e.currentTarget.hasPointerCapture(e.pointerId)&&e.currentTarget.releasePointerCapture(e.pointerId),e.preventDefault(),x({type:"pointer",action:t,x:o.x,y:o.y,button:t==="move"?-1:e.button,buttons:e.buttons,modifiers:F(e)}))},G=t=>{if(!f)return;const e=N(t);e&&(t.preventDefault(),x({type:"wheel",x:e.x,y:e.y,deltaX:t.deltaX,deltaY:t.deltaY,modifiers:F(t)}))},B=t=>e=>{f&&(ge(e)||(e.preventDefault(),e.stopPropagation(),t==="down"&&fe(e)&&(C.current=!0),x({type:"key",action:t,key:e.key,code:e.code,modifiers:F(e)})))},Y=t=>{if(!f)return;const e=t.clipboardData.getData("text/plain");t.preventDefault(),e&&x({type:"text",text:e})},H=()=>{l.current?.release()};if(!c)return null;if(!p)return u.jsx("div",{className:"flex h-full items-center justify-center px-6 text-sm text-muted-foreground",children:r("contextPanel.surface.unavailable")});const J=d.status==="connecting"?"contextPanel.surface.status.connecting":d.status==="reconnecting"?"contextPanel.surface.status.reconnecting":d.status==="ended"?`contextPanel.surface.ended.${d.reason}`:h.controller==="user"?h.mine?"contextPanel.surface.status.youControl":"contextPanel.surface.status.otherControls":h.controller==="agent"||V?"contextPanel.surface.status.agentWorking":M?"contextPanel.surface.status.readyFocused":"contextPanel.surface.status.ready";return u.jsxs("div",{className:"flex h-full flex-col bg-[var(--surface-background)]",children:[u.jsxs("div",{className:"flex h-8 shrink-0 items-center gap-2 border-b border-border px-3",children:[u.jsx("span",{className:"typography-meta min-w-0 flex-1 truncate text-foreground",title:I||c.name,children:I||c.name}),u.jsx("span",{className:S("typography-meta shrink-0 truncate",h.controller==="user"&&h.mine?"text-foreground":"text-muted-foreground"),"aria-live":"polite",children:r(J)}),h.controller==="user"&&h.mine?u.jsx(q,{size:"xs",variant:"outline",onClick:H,children:r("contextPanel.surface.handBack")}):null,d.status==="ended"?u.jsx(q,{size:"xs",variant:"outline",onClick:()=>l.current?.retry(),children:r("contextPanel.surface.retry")}):null]}),u.jsxs("div",{ref:w,tabIndex:0,role:"application","aria-label":r("contextPanel.surface.canvasAria",{name:c.name}),"data-terminal-owner":`surface:${n}`,className:S("relative flex min-h-0 flex-1 items-center justify-center overflow-hidden outline-none",M?"ring-1 ring-inset ring-[var(--interactive-selection-border)]":""),onFocus:()=>j(!0),onBlur:()=>j(!1),onKeyDown:B("down"),onKeyUp:B("up"),onPaste:Y,children:[u.jsx("canvas",{ref:b,className:S("max-h-full max-w-full",f?"block":"hidden",h.controller==="user"&&!h.mine?"cursor-not-allowed":"cursor-default"),onPointerDown:P("down"),onPointerMove:P("move"),onPointerUp:P("up"),onWheel:G,onContextMenu:t=>t.preventDefault()}),!f||d.status!=="open"?u.jsx("div",{className:"absolute inset-0 flex items-center justify-center px-6 text-center text-sm text-muted-foreground",children:r(d.status==="ended"?`contextPanel.surface.ended.${d.reason}`:d.status==="reconnecting"?"contextPanel.surface.status.reconnecting":"contextPanel.surface.status.connecting")}):null]})]})};export{Vt as GuestSurfacePane};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{f as z,j as i,R as W}from"./vendor-react-BUCujlKS.js";import{u as B,am as N,an as M,ao as L,ap as $,I as P,t as U,q as V,l as G,F as J,D as Q,n as X}from"./useAppFontEffects-BZrjCfFw.js";import{u as O}from"./katex.min-u4DtE8E5.js";import"./vendor-scheduler-7OC5HNn7.js";import"./vendor-base-ui-CPKyhvxM.js";import"./vendor-floating-ui-utils-D6FqdtJt.js";import"./vendor-floating-ui-dom-BTvzWks8.js";import"./vendor-floating-ui-core-PuGzNPnN.js";import"./vendor-floating-ui-react-dom-DxYCWdHj.js";import"./vendor-use-sync-external-store-D6wYuSt-.js";import"./vendor-zod-DDir2TeQ.js";import"./vendor-simplewebauthn-browser-VDA66rT_.js";import"./vendor-vite-runtime-DD1OZmLC.js";import"./vendor-zustand-BAGL70zf.js";import"./vendor-class-variance-authority-5VPnzWs2.js";import"./vendor-clsx-B-dksMZM.js";import"./vendor-dnd-kit-core-BZknOX2w.js";import"./vendor-dnd-kit-utilities-B_MdXhJC.js";import"./vendor-dnd-kit-accessibility-BHxJPORy.js";import"./vendor-dnd-kit-sortable-CsEagZ81.js";import"./vendor-tanstack-react-virtual-Bmi0tTrf.js";import"./vendor-tanstack-virtual-core-CdGDGrnp.js";import"./vendor-framer-motion-DxDVhOLc.js";import"./vendor-motion-dom-HXPOMxb7.js";import"./vendor-motion-utils-BGh8QBgx.js";import"./vendor-codemirror-commands-dar6chwA.js";import"./vendor-codemirror-state-Dek9sMtw.js";import"./vendor-marijn-find-cluster-break-DXwl3gUT.js";import"./vendor-codemirror-view-B66jUSmE.js";import"./vendor-style-mod-NZ5MEPvj.js";import"./vendor-w3c-keyname-Vcq4gwWv.js";import"./vendor-crelt-C8TCjufn.js";import"./vendor-codemirror-language-DyL0aCoH.js";import"./vendor-lezer-common-B3-cUCR_.js";import"./vendor-lezer-highlight-CDMHUZ74.js";import"./vendor-codemirror-streamparser-CmlTsbN2.js";import"./vendor-codemirror-lang-javascript-Cem6LjJ8.js";import"./vendor-lezer-javascript-D7Tj24ot.js";import"./vendor-lezer-lr-bhwg1HMg.js";import"./vendor-codemirror-autocomplete-CIqXJolH.js";import"./vendor-codemirror-lang-json-C9rLLO0q.js";import"./vendor-lezer-json-Iaex0UN-.js";import"./vendor-codemirror-lang-css-9qjxcVkg.js";import"./vendor-lezer-css-C5xB6jxd.js";import"./vendor-codemirror-lang-html-D7VQUxeE.js";import"./vendor-lezer-html-C0I1p52t.js";import"./vendor-codemirror-lang-markdown-Cikh4w2I.js";import"./vendor-lezer-markdown-C6g-d6P3.js";import"./vendor-codemirror-language-data-DsRKCbVv.js";import"./vendor-codemirror-lang-python-DVl8-2Op.js";import"./vendor-lezer-python-CvuFxeZl.js";import"./vendor-sonner-DFyL3AvE.js";import"./vendor-capacitor-core-B4EWRrHz.js";import"./vendor-cmdk-DgLInKvT.js";import"./vendor-radix-ui-react-dialog-B94Bt2qq.js";import"./vendor-radix-ui-primitive-Dc_FVRD7.js";import"./vendor-radix-ui-react-compose-refs-DcAh5WdT.js";import"./vendor-radix-ui-react-context-Czxm7Z62.js";import"./vendor-radix-ui-react-id-f5BLKEVw.js";import"./vendor-radix-ui-react-use-layout-effect-D_3IhJdJ.js";import"./vendor-radix-ui-react-use-controllable-state-BFT5YmkA.js";import"./vendor-radix-ui-react-dismissable-layer-D7kXcwgJ.js";import"./vendor-radix-ui-react-primitive-DhVoX9SD.js";import"./vendor-radix-ui-react-slot-BQgQOasS.js";import"./vendor-radix-ui-react-use-callback-ref-BZPnuXAC.js";import"./vendor-radix-ui-react-use-escape-keydown-oph88g-F.js";import"./vendor-radix-ui-react-focus-scope-CiaxW4dD.js";import"./vendor-radix-ui-react-portal-BMJYHWck.js";import"./vendor-radix-ui-react-presence-CNxf-uq4.js";import"./vendor-radix-ui-react-focus-guards-B6qJXYua.js";import"./vendor-react-remove-scroll-DO7dCTnK.js";import"./vendor-tslib-De9GV7Vy.js";import"./vendor-react-remove-scroll-bar-BcFYyj3E.js";import"./vendor-react-style-singleton-q6EMHnwf.js";import"./vendor-get-nonce-C-Z93AgS.js";import"./vendor-use-sidecar-zDC0RhA3.js";import"./vendor-use-callback-ref-D3RC8gqK.js";import"./vendor-aria-hidden-DvXkyWUv.js";import"./vendor-legendapp-list-D2O6oUGf.js";import"./vendor-tailwind-merge-CPcsbTWB.js";import"./vendor-fuse.js-Dw8P0qyA.js";import"./vendor-opencode-client-h8RufjAw.js";const R=(e,t,w)=>N($(e,t),w),Ti=()=>{const e=z.c(47),{t}=B(),w=O(Y),T=O(Z),s=O(ee);let l,a,p,c,m,d,g,y,h,r,u,f;if(e[0]!==w||e[1]!==T||e[2]!==s||e[3]!==t){const q=[{categoryKey:"helpDialog.section.navigationCommands",column:"left",items:[{id:"open_command_palette",descriptionKey:"helpDialog.item.openCommandPalette",icon:"command",keys:""},{id:"open_help",descriptionKey:"helpDialog.item.showKeyboardShortcuts",icon:"question",keys:""},{id:"toggle_sidebar",descriptionKey:"helpDialog.item.toggleSessionSidebar",icon:"layout-left",keys:""},{id:"add_selection_to_chat",descriptionKey:"helpDialog.item.addSelectionToChat",icon:"add",keys:""},{id:"cycle_agent",keys:"",descriptionKey:"helpDialog.item.cycleAgent",icon:"ai-agent"},{id:"open_model_selector",descriptionKey:"helpDialog.item.openModelSelector",icon:"ai-generate-2",keys:""},{keys:["↑↓"],descriptionKey:"helpDialog.item.navigateModels",icon:"ai-generate-2"},{keys:["←→"],descriptionKey:"helpDialog.item.adjustThinkingMode",icon:"brain-ai-3"},{id:"cycle_thinking_variant",descriptionKey:"helpDialog.item.cycleThinkingVariant",icon:"brain-ai-3",keys:""},{keys:[N("mod+shift+alt+n")],descriptionKey:"helpDialog.item.newWindow",icon:"window"}]},{categoryKey:"helpDialog.section.sessionManagement",column:"right",items:[{id:"new_chat",descriptionKey:"helpDialog.item.createNewSession",icon:"add",keys:""},{id:"new_chat_worktree",descriptionKey:"helpDialog.item.createNewWorktreeDraft",icon:"git-branch",keys:""},{id:"open_draft_project_picker",icon:"folder",keys:""},{id:"open_draft_worktree_picker",icon:"git-branch",keys:""},{id:"open_session_list",icon:"list-unordered",keys:""},{id:"focus_input",descriptionKey:"helpDialog.item.focusChatInput",icon:"text",keys:""},{id:"toggle_prompt_navigator",descriptionKey:"helpDialog.item.togglePromptNavigator",icon:"list-unordered",keys:""},{id:"abort_run",descriptionKey:"helpDialog.item.abortActiveRun",icon:"close-circle",keys:""},{id:"background_session_work",icon:"arrow-up-double",keys:""}]},{categoryKey:"helpDialog.section.panels",column:"right",items:[{id:"toggle_terminal",descriptionKey:"helpDialog.item.toggleTerminalDock",icon:"window",keys:""},{id:"toggle_terminal_expanded",descriptionKey:"helpDialog.item.toggleTerminalExpanded",icon:"window",keys:""},{keys:[`${N(M("switch_context_surface",s))} + 1...0`],descriptionKey:"helpDialog.item.switchContextSurface",icon:"layout-right"},{keys:[`${N(M("switch_session_tab",s))} + 1...9`],descriptionKey:"helpDialog.item.switchSessionTab",icon:"layout-right"}]},{categoryKey:"helpDialog.section.interface",column:"left",items:[{id:"cycle_theme",descriptionKey:"helpDialog.item.cycleTheme",icon:"palette",keys:""},{id:"toggle_services_menu",descriptionKey:"helpDialog.item.toggleServicesMenu",icon:"stack",keys:""},{id:"toggle_source_board",descriptionKey:"helpDialog.item.toggleSourceBoard",icon:"git-pull-request",keys:""},{id:"open_project_actions",descriptionKey:"helpDialog.item.openProjectActions",icon:"play",keys:""},{id:"open_settings",descriptionKey:"helpDialog.item.openSettings",icon:"settings-3",keys:""}]}],F=n=>i.jsxs("div",{children:[i.jsx("h3",{className:"typography-meta font-semibold text-muted-foreground uppercase tracking-wider mb-2",children:t(n.categoryKey)}),i.jsx("div",{className:"space-y-1",children:n.items.map(o=>{const H=o.id?L(o.id):void 0,C=o.descriptionKey??(H?.customizable?H.settingsLabelKey:void 0);if(!C||o.id&&!$(o.id,s))return null;const A=o.id?R(o.id,s,t("settings.openchamber.keyboardShortcuts.unassigned")):Array.isArray(o.keys)?o.keys:o.keys.split(" / ");return i.jsxs("div",{className:"flex items-center gap-3 py-1 px-2",children:[i.jsxs("div",{className:"flex min-w-0 items-center gap-2",children:[o.icon&&i.jsx(P,{name:o.icon,className:"h-3.5 w-3.5 shrink-0 text-muted-foreground"}),i.jsx("span",{className:"typography-meta",children:t(C)})]}),i.jsx("div",{"aria-hidden":!0,className:"min-w-4 flex-1 border-b border-dotted border-border"}),i.jsx("div",{className:"flex shrink-0 items-center gap-1",children:(Array.isArray(A)?A:[A]).map((E,I)=>i.jsxs(W.Fragment,{children:[I>0&&i.jsx("span",{className:"typography-meta text-muted-foreground mx-1",children:t("helpDialog.keyCombiner.or")}),i.jsx("kbd",{className:"inline-flex items-center gap-1 px-1.5 py-0.5 typography-meta bg-muted rounded border border-border/20",children:E})]},`${E}-${I}`))})]},o.id||C)})})]},n.categoryKey);p=U,u=w,f=T,a=V,h="max-w-6xl w-[min(72rem,calc(100vw-1.5rem))] max-h-[calc(100dvh-2rem)] flex flex-col overflow-hidden";let S;e[16]===Symbol.for("react.memo_cache_sentinel")?(S=i.jsx(P,{name:"command",className:"h-5 w-5"}),e[16]=S):S=e[16];let D;e[17]!==t?(D=t("helpDialog.title"),e[17]=t,e[18]=D):D=e[18];let b;e[19]!==D?(b=i.jsxs(G,{className:"flex items-center gap-2",children:[S,D]}),e[19]=D,e[20]=b):b=e[20];let K;e[21]!==t?(K=t("helpDialog.description"),e[21]=t,e[22]=K):K=e[22];let j;e[23]!==K?(j=i.jsx(J,{children:K}),e[23]=K,e[24]=j):j=e[24],e[25]!==b||e[26]!==j?(r=i.jsxs(Q,{children:[b,j]}),e[25]=b,e[26]=j,e[27]=r):r=e[27],l=X,d="flex-1 min-h-0 mt-3",g="pe-1",y=!0,c="grid grid-cols-1 gap-x-12 gap-y-4 lg:grid-cols-2",m=["left","right"].map(n=>i.jsxs("div",{className:"space-y-4",children:[q.filter(o=>o.column===n).map(F),n==="right"&&i.jsxs("ul",{className:"space-y-0.5 px-2 typography-meta text-muted-foreground",children:[i.jsxs("li",{children:["• ",t("helpDialog.proTips.commandPalette",{shortcut:R("open_command_palette",s,t("settings.openchamber.keyboardShortcuts.unassigned"))})]}),i.jsxs("li",{children:["• ",t("helpDialog.proTips.recentSessions")]}),i.jsxs("li",{children:["• ",t("helpDialog.proTips.leaderSequences")]})]})]},n)),e[0]=w,e[1]=T,e[2]=s,e[3]=t,e[4]=l,e[5]=a,e[6]=p,e[7]=c,e[8]=m,e[9]=d,e[10]=g,e[11]=y,e[12]=h,e[13]=r,e[14]=u,e[15]=f}else l=e[4],a=e[5],p=e[6],c=e[7],m=e[8],d=e[9],g=e[10],y=e[11],h=e[12],r=e[13],u=e[14],f=e[15];let x;e[28]!==c||e[29]!==m?(x=i.jsx("div",{className:c,children:m}),e[28]=c,e[29]=m,e[30]=x):x=e[30];let _;e[31]!==l||e[32]!==d||e[33]!==g||e[34]!==y||e[35]!==x?(_=i.jsx(l,{outerClassName:d,className:g,disableHorizontal:y,children:x}),e[31]=l,e[32]=d,e[33]=g,e[34]=y,e[35]=x,e[36]=_):_=e[36];let k;e[37]!==a||e[38]!==_||e[39]!==h||e[40]!==r?(k=i.jsxs(a,{className:h,children:[r,_]}),e[37]=a,e[38]=_,e[39]=h,e[40]=r,e[41]=k):k=e[41];let v;return e[42]!==p||e[43]!==k||e[44]!==u||e[45]!==f?(v=i.jsx(p,{open:u,onOpenChange:f,children:k}),e[42]=p,e[43]=k,e[44]=u,e[45]=f,e[46]=v):v=e[46],v};function Y(e){return e.isHelpDialogOpen}function Z(e){return e.setHelpDialogOpen}function ee(e){return e.shortcutOverrides}export{Ti as HelpDialog};
|
|
1
|
+
import{f as z,j as i,R as W}from"./vendor-react-BUCujlKS.js";import{u as B,am as N,an as M,ao as L,ap as $,I as P,t as U,q as V,l as G,F as J,D as Q,n as X}from"./useAppFontEffects-d9vsRNKm.js";import{u as O}from"./katex.min-u4DtE8E5.js";import"./vendor-scheduler-7OC5HNn7.js";import"./vendor-base-ui-CPKyhvxM.js";import"./vendor-floating-ui-utils-D6FqdtJt.js";import"./vendor-floating-ui-dom-BTvzWks8.js";import"./vendor-floating-ui-core-PuGzNPnN.js";import"./vendor-floating-ui-react-dom-DxYCWdHj.js";import"./vendor-use-sync-external-store-D6wYuSt-.js";import"./vendor-zod-DDir2TeQ.js";import"./vendor-simplewebauthn-browser-VDA66rT_.js";import"./vendor-vite-runtime-DD1OZmLC.js";import"./vendor-zustand-BAGL70zf.js";import"./vendor-class-variance-authority-5VPnzWs2.js";import"./vendor-clsx-B-dksMZM.js";import"./vendor-dnd-kit-core-BZknOX2w.js";import"./vendor-dnd-kit-utilities-B_MdXhJC.js";import"./vendor-dnd-kit-accessibility-BHxJPORy.js";import"./vendor-dnd-kit-sortable-CsEagZ81.js";import"./vendor-tanstack-react-virtual-Bmi0tTrf.js";import"./vendor-tanstack-virtual-core-CdGDGrnp.js";import"./vendor-framer-motion-DxDVhOLc.js";import"./vendor-motion-dom-HXPOMxb7.js";import"./vendor-motion-utils-BGh8QBgx.js";import"./vendor-codemirror-commands-dar6chwA.js";import"./vendor-codemirror-state-Dek9sMtw.js";import"./vendor-marijn-find-cluster-break-DXwl3gUT.js";import"./vendor-codemirror-view-B66jUSmE.js";import"./vendor-style-mod-NZ5MEPvj.js";import"./vendor-w3c-keyname-Vcq4gwWv.js";import"./vendor-crelt-C8TCjufn.js";import"./vendor-codemirror-language-DyL0aCoH.js";import"./vendor-lezer-common-B3-cUCR_.js";import"./vendor-lezer-highlight-CDMHUZ74.js";import"./vendor-codemirror-streamparser-CmlTsbN2.js";import"./vendor-codemirror-lang-javascript-Cem6LjJ8.js";import"./vendor-lezer-javascript-D7Tj24ot.js";import"./vendor-lezer-lr-bhwg1HMg.js";import"./vendor-codemirror-autocomplete-CIqXJolH.js";import"./vendor-codemirror-lang-json-C9rLLO0q.js";import"./vendor-lezer-json-Iaex0UN-.js";import"./vendor-codemirror-lang-css-9qjxcVkg.js";import"./vendor-lezer-css-C5xB6jxd.js";import"./vendor-codemirror-lang-html-D7VQUxeE.js";import"./vendor-lezer-html-C0I1p52t.js";import"./vendor-codemirror-lang-markdown-Cikh4w2I.js";import"./vendor-lezer-markdown-C6g-d6P3.js";import"./vendor-codemirror-language-data-DP_Bh3S8.js";import"./vendor-codemirror-lang-python-DVl8-2Op.js";import"./vendor-lezer-python-CvuFxeZl.js";import"./vendor-sonner-DFyL3AvE.js";import"./vendor-capacitor-core-B4EWRrHz.js";import"./vendor-cmdk-DgLInKvT.js";import"./vendor-radix-ui-react-dialog-B94Bt2qq.js";import"./vendor-radix-ui-primitive-Dc_FVRD7.js";import"./vendor-radix-ui-react-compose-refs-DcAh5WdT.js";import"./vendor-radix-ui-react-context-Czxm7Z62.js";import"./vendor-radix-ui-react-id-f5BLKEVw.js";import"./vendor-radix-ui-react-use-layout-effect-D_3IhJdJ.js";import"./vendor-radix-ui-react-use-controllable-state-BFT5YmkA.js";import"./vendor-radix-ui-react-dismissable-layer-D7kXcwgJ.js";import"./vendor-radix-ui-react-primitive-DhVoX9SD.js";import"./vendor-radix-ui-react-slot-BQgQOasS.js";import"./vendor-radix-ui-react-use-callback-ref-BZPnuXAC.js";import"./vendor-radix-ui-react-use-escape-keydown-oph88g-F.js";import"./vendor-radix-ui-react-focus-scope-CiaxW4dD.js";import"./vendor-radix-ui-react-portal-BMJYHWck.js";import"./vendor-radix-ui-react-presence-CNxf-uq4.js";import"./vendor-radix-ui-react-focus-guards-B6qJXYua.js";import"./vendor-react-remove-scroll-DO7dCTnK.js";import"./vendor-tslib-De9GV7Vy.js";import"./vendor-react-remove-scroll-bar-BcFYyj3E.js";import"./vendor-react-style-singleton-q6EMHnwf.js";import"./vendor-get-nonce-C-Z93AgS.js";import"./vendor-use-sidecar-zDC0RhA3.js";import"./vendor-use-callback-ref-D3RC8gqK.js";import"./vendor-aria-hidden-DvXkyWUv.js";import"./vendor-legendapp-list-D2O6oUGf.js";import"./vendor-tailwind-merge-CPcsbTWB.js";import"./vendor-fuse.js-Dw8P0qyA.js";import"./vendor-opencode-client-h8RufjAw.js";const R=(e,t,w)=>N($(e,t),w),Ti=()=>{const e=z.c(47),{t}=B(),w=O(Y),T=O(Z),s=O(ee);let l,a,p,c,m,d,g,y,h,r,u,f;if(e[0]!==w||e[1]!==T||e[2]!==s||e[3]!==t){const q=[{categoryKey:"helpDialog.section.navigationCommands",column:"left",items:[{id:"open_command_palette",descriptionKey:"helpDialog.item.openCommandPalette",icon:"command",keys:""},{id:"open_help",descriptionKey:"helpDialog.item.showKeyboardShortcuts",icon:"question",keys:""},{id:"toggle_sidebar",descriptionKey:"helpDialog.item.toggleSessionSidebar",icon:"layout-left",keys:""},{id:"add_selection_to_chat",descriptionKey:"helpDialog.item.addSelectionToChat",icon:"add",keys:""},{id:"cycle_agent",keys:"",descriptionKey:"helpDialog.item.cycleAgent",icon:"ai-agent"},{id:"open_model_selector",descriptionKey:"helpDialog.item.openModelSelector",icon:"ai-generate-2",keys:""},{keys:["↑↓"],descriptionKey:"helpDialog.item.navigateModels",icon:"ai-generate-2"},{keys:["←→"],descriptionKey:"helpDialog.item.adjustThinkingMode",icon:"brain-ai-3"},{id:"cycle_thinking_variant",descriptionKey:"helpDialog.item.cycleThinkingVariant",icon:"brain-ai-3",keys:""},{keys:[N("mod+shift+alt+n")],descriptionKey:"helpDialog.item.newWindow",icon:"window"}]},{categoryKey:"helpDialog.section.sessionManagement",column:"right",items:[{id:"new_chat",descriptionKey:"helpDialog.item.createNewSession",icon:"add",keys:""},{id:"new_chat_worktree",descriptionKey:"helpDialog.item.createNewWorktreeDraft",icon:"git-branch",keys:""},{id:"open_draft_project_picker",icon:"folder",keys:""},{id:"open_draft_worktree_picker",icon:"git-branch",keys:""},{id:"open_session_list",icon:"list-unordered",keys:""},{id:"focus_input",descriptionKey:"helpDialog.item.focusChatInput",icon:"text",keys:""},{id:"toggle_prompt_navigator",descriptionKey:"helpDialog.item.togglePromptNavigator",icon:"list-unordered",keys:""},{id:"abort_run",descriptionKey:"helpDialog.item.abortActiveRun",icon:"close-circle",keys:""},{id:"background_session_work",icon:"arrow-up-double",keys:""}]},{categoryKey:"helpDialog.section.panels",column:"right",items:[{id:"toggle_terminal",descriptionKey:"helpDialog.item.toggleTerminalDock",icon:"window",keys:""},{id:"toggle_terminal_expanded",descriptionKey:"helpDialog.item.toggleTerminalExpanded",icon:"window",keys:""},{keys:[`${N(M("switch_context_surface",s))} + 1...0`],descriptionKey:"helpDialog.item.switchContextSurface",icon:"layout-right"},{keys:[`${N(M("switch_session_tab",s))} + 1...9`],descriptionKey:"helpDialog.item.switchSessionTab",icon:"layout-right"}]},{categoryKey:"helpDialog.section.interface",column:"left",items:[{id:"cycle_theme",descriptionKey:"helpDialog.item.cycleTheme",icon:"palette",keys:""},{id:"toggle_services_menu",descriptionKey:"helpDialog.item.toggleServicesMenu",icon:"stack",keys:""},{id:"toggle_source_board",descriptionKey:"helpDialog.item.toggleSourceBoard",icon:"git-pull-request",keys:""},{id:"open_project_actions",descriptionKey:"helpDialog.item.openProjectActions",icon:"play",keys:""},{id:"open_settings",descriptionKey:"helpDialog.item.openSettings",icon:"settings-3",keys:""}]}],F=n=>i.jsxs("div",{children:[i.jsx("h3",{className:"typography-meta font-semibold text-muted-foreground uppercase tracking-wider mb-2",children:t(n.categoryKey)}),i.jsx("div",{className:"space-y-1",children:n.items.map(o=>{const H=o.id?L(o.id):void 0,C=o.descriptionKey??(H?.customizable?H.settingsLabelKey:void 0);if(!C||o.id&&!$(o.id,s))return null;const A=o.id?R(o.id,s,t("settings.openchamber.keyboardShortcuts.unassigned")):Array.isArray(o.keys)?o.keys:o.keys.split(" / ");return i.jsxs("div",{className:"flex items-center gap-3 py-1 px-2",children:[i.jsxs("div",{className:"flex min-w-0 items-center gap-2",children:[o.icon&&i.jsx(P,{name:o.icon,className:"h-3.5 w-3.5 shrink-0 text-muted-foreground"}),i.jsx("span",{className:"typography-meta",children:t(C)})]}),i.jsx("div",{"aria-hidden":!0,className:"min-w-4 flex-1 border-b border-dotted border-border"}),i.jsx("div",{className:"flex shrink-0 items-center gap-1",children:(Array.isArray(A)?A:[A]).map((E,I)=>i.jsxs(W.Fragment,{children:[I>0&&i.jsx("span",{className:"typography-meta text-muted-foreground mx-1",children:t("helpDialog.keyCombiner.or")}),i.jsx("kbd",{className:"inline-flex items-center gap-1 px-1.5 py-0.5 typography-meta bg-muted rounded border border-border/20",children:E})]},`${E}-${I}`))})]},o.id||C)})})]},n.categoryKey);p=U,u=w,f=T,a=V,h="max-w-6xl w-[min(72rem,calc(100vw-1.5rem))] max-h-[calc(100dvh-2rem)] flex flex-col overflow-hidden";let S;e[16]===Symbol.for("react.memo_cache_sentinel")?(S=i.jsx(P,{name:"command",className:"h-5 w-5"}),e[16]=S):S=e[16];let D;e[17]!==t?(D=t("helpDialog.title"),e[17]=t,e[18]=D):D=e[18];let b;e[19]!==D?(b=i.jsxs(G,{className:"flex items-center gap-2",children:[S,D]}),e[19]=D,e[20]=b):b=e[20];let K;e[21]!==t?(K=t("helpDialog.description"),e[21]=t,e[22]=K):K=e[22];let j;e[23]!==K?(j=i.jsx(J,{children:K}),e[23]=K,e[24]=j):j=e[24],e[25]!==b||e[26]!==j?(r=i.jsxs(Q,{children:[b,j]}),e[25]=b,e[26]=j,e[27]=r):r=e[27],l=X,d="flex-1 min-h-0 mt-3",g="pe-1",y=!0,c="grid grid-cols-1 gap-x-12 gap-y-4 lg:grid-cols-2",m=["left","right"].map(n=>i.jsxs("div",{className:"space-y-4",children:[q.filter(o=>o.column===n).map(F),n==="right"&&i.jsxs("ul",{className:"space-y-0.5 px-2 typography-meta text-muted-foreground",children:[i.jsxs("li",{children:["• ",t("helpDialog.proTips.commandPalette",{shortcut:R("open_command_palette",s,t("settings.openchamber.keyboardShortcuts.unassigned"))})]}),i.jsxs("li",{children:["• ",t("helpDialog.proTips.recentSessions")]}),i.jsxs("li",{children:["• ",t("helpDialog.proTips.leaderSequences")]})]})]},n)),e[0]=w,e[1]=T,e[2]=s,e[3]=t,e[4]=l,e[5]=a,e[6]=p,e[7]=c,e[8]=m,e[9]=d,e[10]=g,e[11]=y,e[12]=h,e[13]=r,e[14]=u,e[15]=f}else l=e[4],a=e[5],p=e[6],c=e[7],m=e[8],d=e[9],g=e[10],y=e[11],h=e[12],r=e[13],u=e[14],f=e[15];let x;e[28]!==c||e[29]!==m?(x=i.jsx("div",{className:c,children:m}),e[28]=c,e[29]=m,e[30]=x):x=e[30];let _;e[31]!==l||e[32]!==d||e[33]!==g||e[34]!==y||e[35]!==x?(_=i.jsx(l,{outerClassName:d,className:g,disableHorizontal:y,children:x}),e[31]=l,e[32]=d,e[33]=g,e[34]=y,e[35]=x,e[36]=_):_=e[36];let k;e[37]!==a||e[38]!==_||e[39]!==h||e[40]!==r?(k=i.jsxs(a,{className:h,children:[r,_]}),e[37]=a,e[38]=_,e[39]=h,e[40]=r,e[41]=k):k=e[41];let v;return e[42]!==p||e[43]!==k||e[44]!==u||e[45]!==f?(v=i.jsx(p,{open:u,onOpenChange:f,children:k}),e[42]=p,e[43]=k,e[44]=u,e[45]=f,e[46]=v):v=e[46],v};function Y(e){return e.isHelpDialogOpen}function Z(e){return e.setHelpDialogOpen}function ee(e){return e.shortcutOverrides}export{Ti as HelpDialog};
|