@vantran-se/openchamber-web 2.0.1 → 2.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (60) hide show
  1. package/dist/assets/{CodeMirrorCommentWidgets-ntXIbhV2.js → CodeMirrorCommentWidgets-B82Oye3V.js} +1 -1
  2. package/dist/assets/{DiffView-CjxUovbM.js → DiffView-DJLmWn6Z.js} +1 -1
  3. package/dist/assets/{FilesView-DFWD0RQR.js → FilesView-DjksmZRo.js} +1 -1
  4. package/dist/assets/{GitView-BWa7e5vw.js → GitView-DiUsUIgr.js} +1 -1
  5. package/dist/assets/{GuestAttachDialog-DdOuyZzp.js → GuestAttachDialog-CYwWYLr3.js} +1 -1
  6. package/dist/assets/{GuestSurfacePane-DDfzid3U.js → GuestSurfacePane-CmctyRI4.js} +1 -1
  7. package/dist/assets/{JsonTreeView-3sGwqexh.js → JsonTreeView-DOHHcbgJ.js} +1 -1
  8. package/dist/assets/{LinearIssuesView-C6dpIdjw.js → LinearIssuesView-DaqnylcV.js} +1 -1
  9. package/dist/assets/{MarkdownImageGallery-Q7YR_tl4.js → MarkdownImageGallery-HJNvWt7L.js} +1 -1
  10. package/dist/assets/{MarkdownRendererImpl-DxDV56bL.js → MarkdownRendererImpl-nDZRGg2I.js} +1 -1
  11. package/dist/assets/{OnboardingScreen-rK4Stg__.js → OnboardingScreen-C2B5Bsof.js} +1 -1
  12. package/dist/assets/{PatchDiff-DS-IMU1j.js → PatchDiff-C4FLBjpt.js} +1 -1
  13. package/dist/assets/{PierreDiffViewer-DW23KWKZ.js → PierreDiffViewer-C_1S9c9n.js} +1 -1
  14. package/dist/assets/{PlanView-BCk_VobP.js → PlanView-_eZvb-G5.js} +1 -1
  15. package/dist/assets/{PluginPane-BPP1dbck.js → PluginPane-sM8fcZIV.js} +1 -1
  16. package/dist/assets/{SettingsView-kMmrpn43.js → SettingsView-BRfr46hb.js} +1 -1
  17. package/dist/assets/{SettingsWindow-BpvD6IYQ.js → SettingsWindow-CcUDwQHg.js} +1 -1
  18. package/dist/assets/{SubmoduleDiffSummary-BLttSS1X.js → SubmoduleDiffSummary-CrN1ZGwl.js} +1 -1
  19. package/dist/assets/{ToolOutputDialog-CtqDqbyr.js → ToolOutputDialog-Cij4jI09.js} +1 -1
  20. package/dist/assets/{ToolPartDiffPreview-5FcKdyRy.js → ToolPartDiffPreview-BXzwQ-JY.js} +1 -1
  21. package/dist/assets/{VirtualizedFileDiff-C763hNCR.js → VirtualizedFileDiff-DSWTLJNH.js} +1 -1
  22. package/dist/assets/{WalkthroughView-lap5btCF.js → WalkthroughView-CpUUgY8H.js} +1 -1
  23. package/dist/assets/{appThemeRegistry-u4zw1l0B.js → appThemeRegistry-B5tHTkR8.js} +1 -1
  24. package/dist/assets/{commitAndPush-CwGJfJG-.js → commitAndPush-D7D8qV8p.js} +1 -1
  25. package/dist/assets/{computeVirtualFileMetrics-DW5jjX4n.js → computeVirtualFileMetrics-cq9uQ30i.js} +1 -1
  26. package/dist/assets/{de-CndEg67T.js → de-CUO1-KqF.js} +1 -1
  27. package/dist/assets/{es-DglvPlaC.js → es-BlbC6sGJ.js} +1 -1
  28. package/dist/assets/{fr-DejPCpbS.js → fr-D2nwe_0W.js} +1 -1
  29. package/dist/assets/{index-C2r64QfD.js → index-BQOoYIOu.js} +1 -1
  30. package/dist/assets/{isDiffPlainText-D47a6hMP.js → isDiffPlainText-D0obJ2p8.js} +1 -1
  31. package/dist/assets/{isFilePlainText-B-mGgeKl.js → isFilePlainText-DB3_rjyW.js} +1 -1
  32. package/dist/assets/{ja-CVpQawCd.js → ja-CA7vnDsZ.js} +1 -1
  33. package/dist/assets/{ko-Bw446h9j.js → ko-Chy6a9l-.js} +1 -1
  34. package/dist/assets/{main-oreqDsOV.js → main-B9JFK3vF.js} +4 -4
  35. package/dist/assets/{main-Bz4WWXbr.js → main-Bhiqnrhd.js} +2 -2
  36. package/dist/assets/{markdownCore-D2e5sp9y.js → markdownCore-tfqOFaBd.js} +1 -1
  37. package/dist/assets/{miniChat-D1v2gsBI.js → miniChat-B0UOL5zA.js} +2 -2
  38. package/dist/assets/{mobile-DBj3lCf2.js → mobile-BJppFIEo.js} +2 -2
  39. package/dist/assets/{patchFileDiff-BpeUOV91.js → patchFileDiff-Db6KuwCP.js} +1 -1
  40. package/dist/assets/{pl-BYNlPdhm.js → pl-CTR5A_1P.js} +1 -1
  41. package/dist/assets/{pt-BR-CL-Yfv9H.js → pt-BR-BE1O1KEx.js} +1 -1
  42. package/dist/assets/{renderElectronMiniChatApp-DVtfEB2z.js → renderElectronMiniChatApp-Yz5sfoFh.js} +2 -2
  43. package/dist/assets/{renderMobileApp-DFp9-xbG.js → renderMobileApp-QQ-yB8aY.js} +3 -3
  44. package/dist/assets/{runtimeEndpointReset-CsIpUep1.js → runtimeEndpointReset-DKDdzRzm.js} +3 -3
  45. package/dist/assets/{scheduledTasksApi-B5OHVpPM.js → scheduledTasksApi-C5sCuNqf.js} +1 -1
  46. package/dist/assets/{shikiHighlight-DNm2Z_Jc.js → shikiHighlight-xURoo5t_.js} +1 -1
  47. package/dist/assets/{textMateThemeFromAppTheme-DGF2kG7g.js → textMateThemeFromAppTheme-BZLGuYTU.js} +1 -1
  48. package/dist/assets/{tr-DzmbxLy-.js → tr-Bh5vK6cW.js} +1 -1
  49. package/dist/assets/{uk-C7vQnwro.js → uk-CLDkZFy_.js} +1 -1
  50. package/dist/assets/{useAppFontEffects-Ci3FEaPf.js → useAppFontEffects-BxrtCnfR.js} +48 -48
  51. package/dist/assets/{useInlineCommentController-CuUuakrt.js → useInlineCommentController-CeXuR-SR.js} +1 -1
  52. package/dist/assets/{useRootScrollLock-CQIsyERq.js → useRootScrollLock-DgWxezc1.js} +2 -2
  53. package/dist/assets/{vendor-codemirror-language-data-CQa7_1cr.js → vendor-codemirror-language-data-DOuaQUZ0.js} +2 -2
  54. package/dist/assets/{web-components-B6tKQyJN.js → web-components-63H1h21j.js} +1 -1
  55. package/dist/assets/{zh-CN-Cl0srS-z.js → zh-CN-DODgcmYj.js} +1 -1
  56. package/dist/assets/{zh-TW-DtII5bDb.js → zh-TW-ByNfIwLA.js} +1 -1
  57. package/dist/index.html +1 -1
  58. package/dist/mini-chat.html +1 -1
  59. package/dist/mobile.html +1 -1
  60. package/package.json +1 -1
@@ -1 +1 @@
1
- import{j as a}from"./vendor-react-BUCujlKS.js";import{I as l,a as I}from"./useInlineCommentController-CuUuakrt.js";function E(g){const{drafts:x,editingDraftId:d,commentText:o,onTextChange:r,selection:n,isDragging:u,fileLabel:s,newWidgetId:f,mapDraftToRange:p,onSave:m,onCancel:c,onEdit:C,onDelete:h}=g,t=[];for(const e of x){const i=p(e);if(e.id===d){t.push({afterLine:i.end,id:`edit-${e.id}`,content:a.jsx(l,{initialText:o,onTextChange:r,fileLabel:s,lineRange:i,isEditing:!0,onSave:m,onCancel:c},`edit-${e.id}`)});continue}t.push({afterLine:i.end,id:`card-${e.id}`,content:a.jsx(I,{draft:e,onEdit:()=>C(e),onDelete:()=>h(e)},`card-${e.id}`)})}if(n&&!d&&!u){const e={...n,start:Math.min(n.start,n.end),end:Math.max(n.start,n.end)};t.push({afterLine:e.end,id:f,content:a.jsx(l,{initialText:o,onTextChange:r,fileLabel:s,lineRange:e,isEditing:!1,onSave:m,onCancel:c},f)})}return t}export{E as b};
1
+ import{j as a}from"./vendor-react-BUCujlKS.js";import{I as l,a as I}from"./useInlineCommentController-CeXuR-SR.js";function E(g){const{drafts:x,editingDraftId:d,commentText:o,onTextChange:r,selection:n,isDragging:u,fileLabel:s,newWidgetId:f,mapDraftToRange:p,onSave:m,onCancel:c,onEdit:C,onDelete:h}=g,t=[];for(const e of x){const i=p(e);if(e.id===d){t.push({afterLine:i.end,id:`edit-${e.id}`,content:a.jsx(l,{initialText:o,onTextChange:r,fileLabel:s,lineRange:i,isEditing:!0,onSave:m,onCancel:c},`edit-${e.id}`)});continue}t.push({afterLine:i.end,id:`card-${e.id}`,content:a.jsx(I,{draft:e,onEdit:()=>C(e),onDelete:()=>h(e)},`card-${e.id}`)})}if(n&&!d&&!u){const e={...n,start:Math.min(n.start,n.end),end:Math.max(n.start,n.end)};t.push({afterLine:e.end,id:f,content:a.jsx(l,{initialText:o,onTextChange:r,fileLabel:s,lineRange:e,isEditing:!1,onSave:m,onCancel:c},f)})}return t}export{E as b};
@@ -1,4 +1,4 @@
1
- import{R as i,f as tt,j as n}from"./vendor-react-BUCujlKS.js";import{u as me,O as Fe,B as Ln,a as De,G as Mn}from"./index-CvLgnuNI.js";import{c as Tn,b as Bn,u as In,a as Pn,B as _n,C as On,P as Gt,h as zn,e as Kn,g as Gn,i as Hn,f as $n}from"./patchFileDiff-BpeUOV91.js";import{c as qn,b as Wn,i as Un,u as Jn,a as Xn,d as Yn,S as Qn}from"./SubmoduleDiffSummary-BLttSS1X.js";import{f as qe,B as ke,I as z,h as Ae,_ as en,ai as Zn,K as ae,aj as es,bj as ts,J as ns,ak as ss,am as rs,z as Ht,k as is,d9 as tn,t as $e,kX as os,az as et,kM as nn,kY as as,aA as sn,gV as ls,ax as Ze,ay as cs,c8 as rn,at as us,av as ds,aw as fs,as as ms}from"./useAppFontEffects-Ci3FEaPf.js";import{j as ps,f as hs}from"./runtimeEndpointReset-CsIpUep1.js";import{P as gs}from"./PierreDiffViewer-DW23KWKZ.js";import{u as xs,v as ys,g as ws,W as bs}from"./main-oreqDsOV.js";import{p as js}from"./VirtualizedFileDiff-C763hNCR.js";import"./vendor-scheduler-7OC5HNn7.js";import"./vendor-zod-Gea9uBlY.js";import"./vendor-vite-runtime-DD1OZmLC.js";import"./vendor-zustand-BAGL70zf.js";import"./vendor-opencode-client-_BAHQo4R.js";import"./vendor-simplewebauthn-browser-VDA66rT_.js";import"./vendor-base-ui-CsXYnR5c.js";import"./vendor-floating-ui-utils-D6FqdtJt.js";import"./vendor-floating-ui-react-dom-DxYCWdHj.js";import"./vendor-floating-ui-dom-BTvzWks8.js";import"./vendor-floating-ui-core-PuGzNPnN.js";import"./vendor-use-sync-external-store-D6wYuSt-.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-framer-motion-Bq3iTZ6r.js";import"./vendor-motion-dom-DcCgeG69.js";import"./vendor-motion-utils-BGh8QBgx.js";import"./vendor-tanstack-react-virtual-ClYN8CzB.js";import"./vendor-tanstack-virtual-core-BewVQryB.js";import"./contextPanelEmbeddedChat-CirXEPJq.js";import"./vendor-sonner-DFyL3AvE.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-codemirror-language-BgPj_McA.js";import"./vendor-lezer-common-B3-cUCR_.js";import"./vendor-codemirror-state-C9awkmn-.js";import"./vendor-marijn-find-cluster-break-DXwl3gUT.js";import"./vendor-codemirror-view-CiLROUVV.js";import"./vendor-style-mod-NZ5MEPvj.js";import"./vendor-w3c-keyname-Vcq4gwWv.js";import"./vendor-crelt-C8TCjufn.js";import"./vendor-lezer-highlight-CDMHUZ74.js";import"./vendor-codemirror-lang-javascript-Cc2ZYbgX.js";import"./vendor-lezer-javascript-D7Tj24ot.js";import"./vendor-lezer-lr-bhwg1HMg.js";import"./vendor-codemirror-autocomplete-DzPz9Wgq.js";import"./vendor-codemirror-lang-json-CMBS2tG9.js";import"./vendor-lezer-json-Iaex0UN-.js";import"./vendor-codemirror-lang-css-O0cZX78y.js";import"./vendor-lezer-css-C5xB6jxd.js";import"./vendor-codemirror-lang-html-CfgK872x.js";import"./vendor-lezer-html-C0I1p52t.js";import"./vendor-codemirror-lang-markdown-BPGOH9ye.js";import"./vendor-lezer-markdown-C6g-d6P3.js";import"./vendor-codemirror-language-data-CQa7_1cr.js";import"./vendor-codemirror-lang-python-HahnQaAS.js";import"./vendor-lezer-python-CvuFxeZl.js";import"./vendor-codemirror-commands-B7H_j0iU.js";import"./vendor-legendapp-list-BuBPBC3R.js";import"./vendor-tailwind-merge-CPcsbTWB.js";import"./vendor-fuse.js-Dw8P0qyA.js";import"./GuestAttachDialog-DdOuyZzp.js";import"./PluginPane-BPP1dbck.js";import"./web-components-B6tKQyJN.js";import"./computeVirtualFileMetrics-DW5jjX4n.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-BmJyTmjJ.js";import"./vendor-pierre-theming-C6Z4M5_u.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"./Virtualizer-D_a8gKmg.js";import"./useInlineCommentController-CuUuakrt.js";import"./appThemeRegistry-u4zw1l0B.js";import"./textMateThemeFromAppTheme-DGF2kG7g.js";import"./vendor-katex-CHD9BdDO.js";import"./useRootScrollLock-CQIsyERq.js";import"./scheduledTasksApi-B5OHVpPM.js";import"./vendor-cron-parser-CjvYVigk.js";import"./vendor-luxon-BZ0puJYg.js";import"./isDiffPlainText-D47a6hMP.js";import"./vendor-diff-C3JhlQdm.js";const vs=i.memo(function(e){const s=tt.c(13),{index:c,staged:y,busyHunk:p,disabled:b,onAction:v}=e,{t:F}=qe();let l;s[0]!==y?(l=y?["unstage"]:["discard","stage"],s[0]=y,s[1]=l):l=s[1];const j=l;let N;s[2]===Symbol.for("react.memo_cache_sentinel")?(N={top:"var(--oc-hunk-action-offset, 0.25rem)"},s[2]=N):N=s[2];let f;s[3]!==j||s[4]!==p||s[5]!==b||s[6]!==c||s[7]!==v||s[8]!==F?(f=n.jsx("div",{className:"pointer-events-auto flex items-center gap-0.5 rounded-full border border-[var(--interactive-border)]/45 bg-[var(--surface-background)]/95 px-1 py-0.5 shadow-sm backdrop-blur-md",children:j.map(w=>{const D=F(w==="stage"?"diffView.hunk.stageTitle":w==="unstage"?"diffView.hunk.unstageTitle":"diffView.hunk.discardTitle",{index:c+1}),_=p?.index===c&&p.action===w;return n.jsx(ke,{variant:"ghost",size:"xs",className:Ae("rounded-full bg-transparent text-muted-foreground hover:bg-transparent hover:text-foreground",w==="discard"&&"text-[var(--status-error)] hover:text-[var(--status-error)]",w==="stage"&&"text-[var(--status-success)] hover:text-[var(--status-success)]"),disabled:b||p!==null,title:D,"aria-label":D,onPointerDown:Ss,onClick:m=>{m.stopPropagation(),v(c,w)},children:n.jsx(z,{name:_?"loader-4":w==="stage"?"add":"arrow-go-back",className:Ae(w==="stage"?"size-4":"size-3.5",_&&"animate-spin")})},w)})}),s[3]=j,s[4]=p,s[5]=b,s[6]=c,s[7]=v,s[8]=F,s[9]=f):f=s[9];let V;return s[10]!==c||s[11]!==f?(V=n.jsx("div",{className:"pointer-events-none absolute right-3 z-20",style:N,"data-hunk-actions":c,children:f}),s[10]=c,s[11]=f,s[12]=V):V=s[12],V});function Ss(o){return o.stopPropagation()}const $t=(o,e)=>{if(e.length===0)return null;let s=null,c=null;for(const p of e)p.top<=o?(!s||p.top>s.top)&&(s=p):(!c||p.top<c.top)&&(c=p);const y=s??c;return y?{path:y.path,topOffset:y.top-o}:null},ks=(o,e,s,c)=>Math.min(Math.max(0,c),Math.max(0,o+s-e)),qt=o=>{if(!o)return null;const e=o.split(`
1
+ import{R as i,f as tt,j as n}from"./vendor-react-BUCujlKS.js";import{u as me,O as Fe,B as Ln,a as De,G as Mn}from"./index-CvLgnuNI.js";import{c as Tn,b as Bn,u as In,a as Pn,B as _n,C as On,P as Gt,h as zn,e as Kn,g as Gn,i as Hn,f as $n}from"./patchFileDiff-Db6KuwCP.js";import{c as qn,b as Wn,i as Un,u as Jn,a as Xn,d as Yn,S as Qn}from"./SubmoduleDiffSummary-CrN1ZGwl.js";import{f as qe,B as ke,I as z,h as Ae,_ as en,ai as Zn,K as ae,aj as es,bj as ts,J as ns,ak as ss,am as rs,z as Ht,k as is,d9 as tn,t as $e,kX as os,az as et,kM as nn,kY as as,aA as sn,gV as ls,ax as Ze,ay as cs,c8 as rn,at as us,av as ds,aw as fs,as as ms}from"./useAppFontEffects-BxrtCnfR.js";import{j as ps,f as hs}from"./runtimeEndpointReset-DKDdzRzm.js";import{P as gs}from"./PierreDiffViewer-C_1S9c9n.js";import{u as xs,v as ys,g as ws,W as bs}from"./main-B9JFK3vF.js";import{p as js}from"./VirtualizedFileDiff-DSWTLJNH.js";import"./vendor-scheduler-7OC5HNn7.js";import"./vendor-zod-Gea9uBlY.js";import"./vendor-vite-runtime-DD1OZmLC.js";import"./vendor-zustand-BAGL70zf.js";import"./vendor-opencode-client-_BAHQo4R.js";import"./vendor-simplewebauthn-browser-VDA66rT_.js";import"./vendor-base-ui-CsXYnR5c.js";import"./vendor-floating-ui-utils-D6FqdtJt.js";import"./vendor-floating-ui-react-dom-DxYCWdHj.js";import"./vendor-floating-ui-dom-BTvzWks8.js";import"./vendor-floating-ui-core-PuGzNPnN.js";import"./vendor-use-sync-external-store-D6wYuSt-.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-framer-motion-Bq3iTZ6r.js";import"./vendor-motion-dom-DcCgeG69.js";import"./vendor-motion-utils-BGh8QBgx.js";import"./vendor-tanstack-react-virtual-ClYN8CzB.js";import"./vendor-tanstack-virtual-core-BewVQryB.js";import"./contextPanelEmbeddedChat-CirXEPJq.js";import"./vendor-sonner-DFyL3AvE.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-codemirror-language-BgPj_McA.js";import"./vendor-lezer-common-B3-cUCR_.js";import"./vendor-codemirror-state-C9awkmn-.js";import"./vendor-marijn-find-cluster-break-DXwl3gUT.js";import"./vendor-codemirror-view-CiLROUVV.js";import"./vendor-style-mod-NZ5MEPvj.js";import"./vendor-w3c-keyname-Vcq4gwWv.js";import"./vendor-crelt-C8TCjufn.js";import"./vendor-lezer-highlight-CDMHUZ74.js";import"./vendor-codemirror-lang-javascript-Cc2ZYbgX.js";import"./vendor-lezer-javascript-D7Tj24ot.js";import"./vendor-lezer-lr-bhwg1HMg.js";import"./vendor-codemirror-autocomplete-DzPz9Wgq.js";import"./vendor-codemirror-lang-json-CMBS2tG9.js";import"./vendor-lezer-json-Iaex0UN-.js";import"./vendor-codemirror-lang-css-O0cZX78y.js";import"./vendor-lezer-css-C5xB6jxd.js";import"./vendor-codemirror-lang-html-CfgK872x.js";import"./vendor-lezer-html-C0I1p52t.js";import"./vendor-codemirror-lang-markdown-BPGOH9ye.js";import"./vendor-lezer-markdown-C6g-d6P3.js";import"./vendor-codemirror-language-data-DOuaQUZ0.js";import"./vendor-codemirror-lang-python-HahnQaAS.js";import"./vendor-lezer-python-CvuFxeZl.js";import"./vendor-codemirror-commands-B7H_j0iU.js";import"./vendor-legendapp-list-BuBPBC3R.js";import"./vendor-tailwind-merge-CPcsbTWB.js";import"./vendor-fuse.js-Dw8P0qyA.js";import"./GuestAttachDialog-CYwWYLr3.js";import"./PluginPane-sM8fcZIV.js";import"./web-components-63H1h21j.js";import"./computeVirtualFileMetrics-cq9uQ30i.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-BmJyTmjJ.js";import"./vendor-pierre-theming-C6Z4M5_u.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"./Virtualizer-D_a8gKmg.js";import"./useInlineCommentController-CeXuR-SR.js";import"./appThemeRegistry-B5tHTkR8.js";import"./textMateThemeFromAppTheme-BZLGuYTU.js";import"./vendor-katex-CHD9BdDO.js";import"./useRootScrollLock-DgWxezc1.js";import"./scheduledTasksApi-C5sCuNqf.js";import"./vendor-cron-parser-CjvYVigk.js";import"./vendor-luxon-BZ0puJYg.js";import"./isDiffPlainText-D0obJ2p8.js";import"./vendor-diff-C3JhlQdm.js";const vs=i.memo(function(e){const s=tt.c(13),{index:c,staged:y,busyHunk:p,disabled:b,onAction:v}=e,{t:F}=qe();let l;s[0]!==y?(l=y?["unstage"]:["discard","stage"],s[0]=y,s[1]=l):l=s[1];const j=l;let N;s[2]===Symbol.for("react.memo_cache_sentinel")?(N={top:"var(--oc-hunk-action-offset, 0.25rem)"},s[2]=N):N=s[2];let f;s[3]!==j||s[4]!==p||s[5]!==b||s[6]!==c||s[7]!==v||s[8]!==F?(f=n.jsx("div",{className:"pointer-events-auto flex items-center gap-0.5 rounded-full border border-[var(--interactive-border)]/45 bg-[var(--surface-background)]/95 px-1 py-0.5 shadow-sm backdrop-blur-md",children:j.map(w=>{const D=F(w==="stage"?"diffView.hunk.stageTitle":w==="unstage"?"diffView.hunk.unstageTitle":"diffView.hunk.discardTitle",{index:c+1}),_=p?.index===c&&p.action===w;return n.jsx(ke,{variant:"ghost",size:"xs",className:Ae("rounded-full bg-transparent text-muted-foreground hover:bg-transparent hover:text-foreground",w==="discard"&&"text-[var(--status-error)] hover:text-[var(--status-error)]",w==="stage"&&"text-[var(--status-success)] hover:text-[var(--status-success)]"),disabled:b||p!==null,title:D,"aria-label":D,onPointerDown:Ss,onClick:m=>{m.stopPropagation(),v(c,w)},children:n.jsx(z,{name:_?"loader-4":w==="stage"?"add":"arrow-go-back",className:Ae(w==="stage"?"size-4":"size-3.5",_&&"animate-spin")})},w)})}),s[3]=j,s[4]=p,s[5]=b,s[6]=c,s[7]=v,s[8]=F,s[9]=f):f=s[9];let V;return s[10]!==c||s[11]!==f?(V=n.jsx("div",{className:"pointer-events-none absolute right-3 z-20",style:N,"data-hunk-actions":c,children:f}),s[10]=c,s[11]=f,s[12]=V):V=s[12],V});function Ss(o){return o.stopPropagation()}const $t=(o,e)=>{if(e.length===0)return null;let s=null,c=null;for(const p of e)p.top<=o?(!s||p.top>s.top)&&(s=p):(!c||p.top<c.top)&&(c=p);const y=s??c;return y?{path:y.path,topOffset:y.top-o}:null},ks=(o,e,s,c)=>Math.min(Math.max(0,c),Math.max(0,o+s-e)),qt=o=>{if(!o)return null;const e=o.split(`
2
2
  `);let s=null;for(const c of e){const y=c.match(/^@@\s*-\d+(?:,\d+)?\s+\+(\d+)(?:,\d+)?\s*@@/);if(y){const p=Number.parseInt(y[1]??"",10);s=Number.isFinite(p)&&p>=1?p:null;continue}if(s!==null){if(c.startsWith(" ")){s+=1;continue}if(c.startsWith("+"))return s;if(c.startsWith("-"))return Math.max(1,s)}}return null},Ns=1100,Cs=15e3,Wt=500,Ut=300,on=1e6,Ct=3,Rs=o=>o<=6?o:o<=12?6:o<=25?4:2,Jt={status:"loading"},Fs=3,Ds=i.memo(()=>{const o=tt.c(4),{t:e}=qe();let s;o[0]!==e?(s=e("diffView.binary.unavailable"),o[0]=e,o[1]=s):s=o[1];let c;return o[2]!==s?(c=n.jsx("div",{className:"rounded-lg border border-border/60 bg-background px-3 py-2",children:n.jsx("div",{className:"typography-meta text-muted-foreground",children:s})}),o[2]=s,o[3]=c):c=o[3],c}),an={"?":{code:"?",color:"var(--status-info)",descriptionKey:"diffView.change.untracked"},A:{code:"A",color:"var(--status-success)",descriptionKey:"diffView.change.new"},D:{code:"D",color:"var(--status-error)",descriptionKey:"diffView.change.deleted"},R:{code:"R",color:"var(--status-info)",descriptionKey:"diffView.change.renamed"},C:{code:"C",color:"var(--status-info)",descriptionKey:"diffView.change.copied"},M:{code:"M",color:"var(--status-warning)",descriptionKey:"diffView.change.modified"}},As=an.M,Es=o=>{const e=o.index?.trim(),s=o.working_dir?.trim();return e&&e!=="?"?e.charAt(0):s?s.charAt(0):e?.charAt(0)||s?.charAt(0)||"M"},ln=o=>{const e=Es(o);return an[e]??As},Vs=o=>{const{index:e,working_dir:s}=o;return e==="A"||s==="A"||e==="?"||s==="?"},Xt=o=>{const e=o.index?.trim();return!!(e&&e!=="?")},Yt=o=>!!o.working_dir?.trim()||o.index==="?",Ls=(o,e)=>ls(o,e),Qt=o=>(o||"").replace(/\\/g,"/").replace(/\/+$/,""),Zt=(o,e)=>{const s=o.split(`
3
3
  `),c=e.split(`
4
4
  `),y=Math.min(s.length,c.length);for(let p=0;p<y;p+=1)if(s[p]!==c[p])return p+1;return c.length>s.length?s.length+1:s.length>c.length?Math.max(1,c.length):1},Ms=o=>o==="added"?"A":o==="deleted"?"D":"M",Rt=(o,e,s)=>Hn(e)?{original:"",modified:"",isBinary:!0,patch:e,contextMode:s}:{original:"",modified:"",patch:e,fileDiff:$n(o,e),contextMode:s},cn=(o,e,s)=>{const c=o??0,y=e??0;return!c&&!y?null:n.jsxs("span",{className:Ae("typography-meta flex items-center gap-1 text-xs whitespace-nowrap","flex-shrink-0",s?.className),children:[c?n.jsxs("span",{style:{color:"var(--status-success)"},children:["+",c]}):null,y?n.jsxs("span",{style:{color:"var(--status-error)"},children:["-",y]}):null]})},Ts=i.memo(o=>{const e=tt.c(68),{scope:s,workingCount:c,stagedCount:y,turnCount:p,branchCount:b,commitCount:v,prCount:F,showCommitOption:l,showBranchOption:j,onScopeChange:N}=o,{t:f}=qe(),[V,w]=i.useState(!1),D=s==="pr"?F??0:s==="staged"?y:s==="turn"?p:s==="branch"?b??0:s==="commit"?v??0:c;let _;e[0]!==s||e[1]!==f?(_=f(s==="pr"?"session.githubIntegration.tabs.pullRequests":s==="staged"?"diffView.scope.staged":s==="turn"?"diffView.scope.lastTurn":s==="branch"?"diffView.scope.branch":s==="commit"?"commitComparison.mode":"diffView.scope.changed"),e[0]=s,e[1]=f,e[2]=_):_=e[2];const m=_;let be;e[3]!==f?(be=f("diffView.scope.selectorAria"),e[3]=f,e[4]=be):be=e[4];let Z;e[5]!==D?(Z=n.jsxs("span",{className:"diff-toolbar__scope-count",children:[": ",D]}),e[5]=D,e[6]=Z):Z=e[6];let ee;e[7]!==m||e[8]!==Z?(ee=n.jsxs("span",{className:"whitespace-nowrap",children:[m,Z]}),e[7]=m,e[8]=Z,e[9]=ee):ee=e[9];let Ne;e[10]===Symbol.for("react.memo_cache_sentinel")?(Ne=n.jsx(z,{name:"arrow-down-s",className:"size-4 flex-shrink-0 opacity-60"}),e[10]=Ne):Ne=e[10];let q;e[11]!==be||e[12]!==ee?(q=n.jsx(us,{asChild:!0,children:n.jsxs("button",{type:"button",className:"flex h-7 flex-shrink-0 items-center gap-1.5 rounded-md px-2 typography-ui-label font-semibold text-foreground outline-none hover:bg-interactive-hover focus-visible:ring-2 focus-visible:ring-ring","aria-label":be,children:[ee,Ne]})}),e[11]=be,e[12]=ee,e[13]=q):q=e[13];let x;e[14]!==N?(x=H=>{(H==="working"||H==="staged"||H==="turn"||H==="branch"||H==="commit"||H==="pr")&&(N?.(H),w(!1))},e[14]=N,e[15]=x):x=e[15];let P;e[16]!==f?(P=f("diffView.scope.changed"),e[16]=f,e[17]=P):P=e[17];let W;e[18]!==P?(W=n.jsx("span",{children:P}),e[18]=P,e[19]=W):W=e[19];let le;e[20]!==c?(le=n.jsx("span",{className:"typography-meta text-muted-foreground",children:c}),e[20]=c,e[21]=le):le=e[21];let te;e[22]!==le||e[23]!==W?(te=n.jsx(Ze,{value:"working",children:n.jsxs("span",{className:"flex min-w-0 flex-1 items-center justify-between gap-3",children:[W,le]})}),e[22]=le,e[23]=W,e[24]=te):te=e[24];let pe;e[25]!==f?(pe=f("diffView.scope.staged"),e[25]=f,e[26]=pe):pe=e[26];let ne;e[27]!==pe?(ne=n.jsx("span",{children:pe}),e[27]=pe,e[28]=ne):ne=e[28];let he;e[29]!==y?(he=n.jsx("span",{className:"typography-meta text-muted-foreground",children:y}),e[29]=y,e[30]=he):he=e[30];let J;e[31]!==ne||e[32]!==he?(J=n.jsx(Ze,{value:"staged",children:n.jsxs("span",{className:"flex min-w-0 flex-1 items-center justify-between gap-3",children:[ne,he]})}),e[31]=ne,e[32]=he,e[33]=J):J=e[33];let I;e[34]!==f?(I=f("diffView.scope.lastTurn"),e[34]=f,e[35]=I):I=e[35];let se;e[36]!==I?(se=n.jsx("span",{children:I}),e[36]=I,e[37]=se):se=e[37];let X;e[38]!==p?(X=n.jsx("span",{className:"typography-meta text-muted-foreground",children:p}),e[38]=p,e[39]=X):X=e[39];let K;e[40]!==se||e[41]!==X?(K=n.jsx(Ze,{value:"turn",children:n.jsxs("span",{className:"flex min-w-0 flex-1 items-center justify-between gap-3",children:[se,X]})}),e[40]=se,e[41]=X,e[42]=K):K=e[42];let je;e[43]!==b||e[44]!==j||e[45]!==f?(je=j?n.jsx(Ze,{value:"branch",children:n.jsxs("span",{className:"flex min-w-0 flex-1 items-center justify-between gap-3",children:[n.jsx("span",{children:f("diffView.scope.branch")}),n.jsx("span",{className:"typography-meta text-muted-foreground",children:b??"…"})]})}):null,e[43]=b,e[44]=j,e[45]=f,e[46]=je):je=e[46];let A;e[47]!==v||e[48]!==l||e[49]!==f?(A=l&&n.jsx(Ze,{value:"commit",children:n.jsxs("span",{className:"flex min-w-0 flex-1 items-center justify-between gap-3",children:[n.jsx("span",{children:f("commitComparison.mode")}),n.jsx("span",{className:"typography-meta text-muted-foreground",children:v??"…"})]})}),e[47]=v,e[48]=l,e[49]=f,e[50]=A):A=e[50];let G;e[51]!==F||e[52]!==l||e[53]!==f?(G=l&&n.jsx(Ze,{value:"pr",children:n.jsxs("span",{className:"flex min-w-0 flex-1 items-center justify-between gap-3",children:[n.jsx("span",{children:f("session.githubIntegration.tabs.pullRequests")}),n.jsx("span",{className:"typography-meta text-muted-foreground",children:F??"…"})]})}),e[51]=F,e[52]=l,e[53]=f,e[54]=G):G=e[54];let C;e[55]!==s||e[56]!==te||e[57]!==J||e[58]!==K||e[59]!==je||e[60]!==A||e[61]!==G||e[62]!==x?(C=n.jsx(ds,{align:"start",className:"w-40",children:n.jsxs(fs,{value:s,onValueChange:x,children:[te,J,K,je,A,G]})}),e[55]=s,e[56]=te,e[57]=J,e[58]=K,e[59]=je,e[60]=A,e[61]=G,e[62]=x,e[63]=C):C=e[63];let ce;return e[64]!==V||e[65]!==C||e[66]!==q?(ce=n.jsxs(ms,{open:V,onOpenChange:w,children:[q,C]}),e[64]=V,e[65]=C,e[66]=q,e[67]=ce):ce=e[67],ce}),Bs=i.memo(o=>{const e=tt.c(11),{changedFiles:s,selectedFile:c,onSelectFile:y}=o,{t:p}=qe();if(s.length===0)return null;let b;if(e[0]!==s||e[1]!==y||e[2]!==c||e[3]!==p){let F;e[5]!==y||e[6]!==c||e[7]!==p?(F=l=>{const j=ln(l),N=c===l.path;return n.jsx("li",{children:n.jsxs("button",{type:"button",onClick:()=>y(l.path),className:Ae("flex w-full items-center gap-2 rounded-md px-2 py-1.5 text-left transition-colors",N?"bg-interactive-selection text-interactive-selection-foreground":"text-muted-foreground hover:bg-interactive-hover hover:text-foreground"),children:[n.jsx(sn,{filePath:l.path,className:"h-3.5 w-3.5 flex-shrink-0"}),n.jsx("span",{className:"typography-micro font-semibold w-4 text-center uppercase",style:{color:j.color},title:p(j.descriptionKey),"aria-label":p(j.descriptionKey),children:j.code}),n.jsx("span",{className:"min-w-0 flex-1 truncate typography-meta",style:{direction:"rtl",textAlign:"left",unicodeBidi:"plaintext"},title:l.path,children:l.path}),cn(l.insertions,l.deletions)]})},l.path)},e[5]=y,e[6]=c,e[7]=p,e[8]=F):F=e[8],b=s.map(F),e[0]=s,e[1]=y,e[2]=c,e[3]=p,e[4]=b}else b=e[4];let v;return e[9]!==b?(v=n.jsx(rn,{outerClassName:"flex-1 min-h-0",className:"px-2 py-2",children:n.jsx("ul",{className:"flex flex-col gap-1",children:b})}),e[9]=b,e[10]=v):v=e[10],v}),Is=i.memo(o=>{const e=tt.c(20),{filePath:s,diff:c,renderSideBySide:y}=o,{t:p}=qe(),b=c.original.length>0,v=c.modified.length>0,F=y?"flex flex-row gap-6 items-start justify-center":"flex flex-col gap-4 items-center",l=y?"flex flex-col items-center gap-2 flex-1 min-w-0":"flex flex-col items-center gap-2";let j;e[0]===Symbol.for("react.memo_cache_sentinel")?(j={contain:"layout"},e[0]=j):j=e[0];let N;e[1]!==c.original||e[2]!==s||e[3]!==b||e[4]!==l||e[5]!==y||e[6]!==p?(N=b&&n.jsxs("div",{className:l,children:[n.jsx("span",{className:"typography-meta text-muted-foreground font-medium",children:p("diffView.image.original")}),n.jsx("img",{src:c.original,alt:p("diffView.image.originalAlt",{path:s}),className:y?"max-w-full max-h-[70vh] object-contain":"max-w-full object-contain",style:{imageRendering:"auto"}})]}),e[1]=c.original,e[2]=s,e[3]=b,e[4]=l,e[5]=y,e[6]=p,e[7]=N):N=e[7];let f;e[8]!==c.modified||e[9]!==s||e[10]!==v||e[11]!==b||e[12]!==l||e[13]!==y||e[14]!==p?(f=v&&n.jsxs("div",{className:l,children:[n.jsx("span",{className:"typography-meta text-muted-foreground font-medium",children:p(b?"diffView.image.modified":"diffView.image.new")}),n.jsx("img",{src:c.modified,alt:p("diffView.image.modifiedAlt",{path:s}),className:y?"max-w-full max-h-[70vh] object-contain":"max-w-full object-contain",style:{imageRendering:"auto"}})]}),e[8]=c.modified,e[9]=s,e[10]=v,e[11]=b,e[12]=l,e[13]=y,e[14]=p,e[15]=f):f=e[15];let V;return e[16]!==F||e[17]!==N||e[18]!==f?(V=n.jsx("div",{className:"w-full overflow-auto p-4",style:j,children:n.jsxs("div",{className:F,children:[N,f]})}),e[16]=F,e[17]=N,e[18]=f,e[19]=V):V=e[19],V}),Ps=i.memo(o=>{const e=tt.c(23),{filePath:s,diff:c,staged:y,renderSideBySide:p,wrapLines:b,hunkActions:v,onExpandContextRequest:F,pendingContextExpansion:l,contextLoading:j}=o;let N;e[0]!==s?(N=cs(s)||"text",e[0]=s,e[1]=N):N=e[1];const f=N;if(c.submodule){let D;return e[2]!==c.submodule||e[3]!==y?(D=n.jsx(Qn,{state:c.submodule,staged:y}),e[2]=c.submodule,e[3]=y,e[4]=D):D=e[4],D}if(c.isBinary){let D;return e[5]===Symbol.for("react.memo_cache_sentinel")?(D=n.jsx(Ds,{}),e[5]=D):D=e[5],D}if(et(s)){let D;return e[6]!==c||e[7]!==s||e[8]!==p?(D=n.jsx(Is,{filePath:s,diff:c,renderSideBySide:p}),e[6]=c,e[7]=s,e[8]=p,e[9]=D):D=e[9],D}let V;e[10]===Symbol.for("react.memo_cache_sentinel")?(V={contain:"layout"},e[10]=V):V=e[10];let w;return e[11]!==j||e[12]!==c.fileDiff||e[13]!==c.modified||e[14]!==c.original||e[15]!==s||e[16]!==v||e[17]!==f||e[18]!==F||e[19]!==l||e[20]!==p||e[21]!==b?(w=n.jsx("div",{className:"w-full",style:V,children:n.jsx(gs,{original:c.original,modified:c.modified,fileDiff:c.fileDiff,language:f,fileName:s,renderSideBySide:p,wrapLines:b,layout:"inline",hunkActions:v,onExpandContextRequest:F,pendingContextExpansion:l,contextLoading:j})}),e[11]=j,e[12]=c.fileDiff,e[13]=c.modified,e[14]=c.original,e[15]=s,e[16]=v,e[17]=f,e[18]=F,e[19]=l,e[20]=p,e[21]=b,e[22]=w):w=e[22],w}),_s=i.memo(({visible:o=!0,directory:e,file:s,layout:c,wrapLines:y,isSelected:p,isExpanded:b,isMounted:v,onSelect:F,onExpandedChange:l,registerSectionRef:j,showOpenInEditorAction:N=!1,isOpeningInEditor:f=!1,onOpenInEditor:V,staged:w=!1,loadFullFiles:D=!1,initialDiffData:_=null,comparisonDiff:m,onRetryComparisonDiff:be,loadFullComparisonDiff:Z,readOnlyActions:ee=!1,hunkActionsEnabled:Ne=!1,contentRevision:q=0})=>{const{t:x}=qe(),{git:P}=en(),W=ae(i.useCallback(g=>g.directories.get(e)?.diffCache.get(s.path)??null,[e,s.path])),le=ae(g=>g.setDiff),te=ae(g=>g.fetchStatus),pe=me(g=>g.setDiffFileLayout),[ne,he]=i.useState(0),[J,I]=i.useState(null),[se,X]=i.useState(!1),[K,je]=i.useState(null),A=K!==null&&K.source===m?K.result:m,G=!!e&&!_&&(!m||!!Z),C=i.useMemo(()=>A?A.status==="error"?{kind:"error",message:A.message}:null:J,[A,J]),ce=A?A.status==="loading":se,[H,lt]=i.useState(null),Be=i.useRef(!1),[Ie,nt]=i.useState(null),[ct,xt]=i.useState(!1),[st,Pe]=i.useState(null),[We,_e]=i.useState(null),[a,Ee]=i.useState(null),re=D||a!==null;i.useEffect(()=>{if(!a||!Z||!m||m.status!=="ready"||K?.source===m)return;let g=!1;return Z(s.path).then(M=>{if(!g){if(M.status==="error"){$e.error(M.message),Ee(null);return}je({source:m,result:M})}}),()=>{g=!0}},[a,s.path,K,Z,m]);const ge=i.useRef(null),Ve=i.useRef(null),Oe=i.useMemo(()=>ln(s),[s]),Ue=c==="side-by-side",ze=re?"full":"patch",ve=`${s.index}:${s.working_dir}:${s.insertions}:${s.deletions}`,ue=Ne&&!ee&&!_&&!A&&!et(s.path),Je=JSON.stringify([De(),e,s.path,w,ve,ne,q]),U=Ie?.scope===Je?Ie.patch:null,de=Ie?.scope===Je?Ie.submodule:null,ie=i.useMemo(()=>A?A.status==="ready"?A.data:null:_||(w?We:st||(W?{original:W.original,modified:W.modified,isBinary:W.isBinary,submodule:W.submodule,contextMode:"full"}:null)),[A,W,_,st,w,We]),Xe=ie?.contextMode===ze,rt=i.useCallback(g=>{Ve.current=g,j(s.path,g)},[s.path,j]),Ke=i.useCallback(g=>{l(s.path,g)},[s.path,l]),Ye=i.useCallback(()=>{F(s.path)},[s.path,F]),ut=i.useRef({fileStatusKey:ve,staged:w});i.useEffect(()=>{if(!o)return;const g=ut.current;g.fileStatusKey===ve&&g.staged===w||(ut.current={fileStatusKey:ve,staged:w},w?_e(null):Pe(null),I(null),ge.current=null)},[ve,w,o]);const[yt,wt]=i.useState(q),xe=yt===q;i.useEffect(()=>{xe||(I(null),ge.current=null)},[xe]),i.useEffect(()=>{if(!o||!b||!v||J)return;if(!e||A||_||ie&&Xe&&xe&&(!ue||U!==null)){ge.current=null,X(!1);return}const g=`${e}::${s.path}::${w?"staged":"unstaged"}::${ve}::${ze}::${ne}::${q}`;if(ge.current===g)return;ge.current=g,I(null),X(!0);let M=!1;const ye=De(),we=re?on:Ct,O=et(s.path)?P.getGitFileDiff(e,{path:s.path,staged:w}):!re&&U!==null?Promise.resolve({diff:U,submodule:de}):P.getGitDiff(e,{path:s.path,staged:w,contextLines:we}),Ge=ue&&re&&U===null?P.getGitDiff(e,{path:s.path,staged:w,contextLines:Ct}).then(E=>E.diff):Promise.resolve(U),ft=Promise.all([O,Ge]),mt=Cs;let it;const bt=new Promise((E,ot)=>{it=setTimeout(()=>ot(new Error(`Timed out after ${mt}ms`)),mt)});return Promise.race([ft,bt]).then(([E,ot])=>{if(M||ye!==De())return;const L="diff"in E&&!re?E.diff:ot;if(ue&&re&&L!==null&&/^@@\s/m.test(L)&&"diff"in E&&E.diff!==L&&!zn(E.diff,L))throw nt(null),new Error(x("diffView.hunk.unavailable"));if(ue&&L!==null&&nt({scope:Je,patch:L,submodule:E.submodule}),"diff"in E){const Y={...Rt(s.path,E.diff,ze),submodule:E.submodule};w?_e(Y):Pe(Y)}else{const Y={original:E.original??"",modified:E.modified??"",isBinary:E.isBinary,submodule:E.submodule,contextMode:"full"};w?_e(Y):le(e,s.path,Y,ye)}wt(q),X(!1)}).catch(E=>{if(!(M||ye!==De())){if(X(!1),E instanceof Mn){I({kind:"unavailable",reason:E.reason}),E.reason==="path_not_found"&&te(e,P,{force:!0,silent:!0});return}I({kind:"error",message:E instanceof Error?E.message:String(E)})}}).finally(()=>clearTimeout(it)),()=>{M=!0,clearTimeout(it),ge.current===g&&(ge.current=null)}},[U,de,q,ue,xe,Je,A,ze,ie,Xe,ne,e,te,s.path,ve,P,_,b,v,re,J,le,w,x,o]);const Le=i.useCallback(()=>{Ke(!b),Ye()},[Ke,Ye,b]),oe=i.useCallback(()=>{I(null),nt(null),Pe(null),_e(null),ge.current=null,he(g=>g+1)},[]),$=i.useCallback(async(g,M)=>{if(!e||!ue||ce||C||Be.current||H!==null)return;const ye=U?Kn(U,g):null;if(!ye){$e.error(x("diffView.hunk.unavailable"));return}if(w&&M!=="unstage"||!w&&M==="unstage")return;Be.current=!0;const we=De();lt({index:g,action:M});try{const O=M==="stage"?P.stageGitHunk:M==="unstage"?P.unstageGitHunk:P.revertGitHunk;if(!O){$e.error(x("diffView.hunk.unsupported"));return}if(await O(e,s.path,ye),we!==De())return;oe(),tn.requestGitRefresh({directory:e,paths:[s.path]}),await te(e,P)}catch(O){if(we!==De())return;oe(),$e.error(O instanceof Error&&O.message?O.message:x("diffView.hunk.unavailable"))}finally{Be.current=!1,lt(O=>O?.index===g&&O.action===M?null:O)}},[U,ue,ce,C,e,te,s.path,P,H,oe,w,x]),Se=i.useMemo(()=>ue&&U!==null?Gn(U):[],[U,ue]),Ce=i.useCallback(g=>n.jsx(vs,{index:g,staged:w,busyHunk:H,disabled:ce||!!C,onAction:$}),[C,$,H,ce,w]),dt=i.useMemo(()=>Se.length>0?{anchors:Se,render:Ce}:void 0,[Se,Ce]);return n.jsxs("div",{ref:rt,className:"scroll-mt-9 border-b border-[var(--interactive-border)]/40 last:border-b-0",children:[n.jsx("div",{className:"sticky top-0 z-30 border-b border-[var(--interactive-border)]/35 bg-[var(--surface-elevated)]/90 backdrop-blur-md supports-[backdrop-filter]:bg-[var(--surface-elevated)]/80",children:n.jsxs("div",{role:"button",tabIndex:0,onClick:Le,onKeyDown:g=>{g.target===g.currentTarget&&(g.key==="Enter"||g.key===" ")&&(g.preventDefault(),Le())},className:Ae("cursor-pointer","group/header relative grid min-h-9 w-full min-w-0 grid-cols-[minmax(0,1fr)_auto] items-center gap-2 overflow-hidden px-3 py-2","bg-transparent","text-muted-foreground hover:text-foreground",p?"bg-[var(--interactive-selection)]/35":null),children:[n.jsx("div",{className:"absolute inset-0 pointer-events-none group-hover/header:bg-[var(--interactive-hover)]/50"}),n.jsxs("div",{className:"relative flex min-w-0 flex-1 items-center gap-2",children:[n.jsx("span",{className:"flex size-5 items-center justify-center opacity-70 group-hover/header:opacity-100",children:b?n.jsx(z,{name:"arrow-down-s",className:"size-4"}):n.jsx(z,{name:"arrow-right-s",className:"size-4"})}),n.jsx("span",{className:"typography-micro font-semibold leading-none w-4 text-center uppercase",style:{color:Oe.color},title:x(Oe.descriptionKey),"aria-label":x(Oe.descriptionKey),children:Oe.code}),n.jsx("span",{className:"min-w-0 flex-1 overflow-hidden typography-ui-label",title:s.path,children:n.jsxs("span",{className:"flex min-w-0 items-center gap-2",children:[n.jsx(sn,{filePath:s.path,className:"h-3.5 w-3.5 flex-shrink-0 align-middle"}),(()=>{const g=s.path.lastIndexOf("/");if(g===-1)return n.jsx("span",{className:"block min-w-0 truncate typography-ui-label text-foreground",style:{direction:"rtl",textAlign:"left",unicodeBidi:"plaintext"},children:s.path});const M=s.path.slice(0,g),ye=s.path.slice(g+1);return n.jsxs("span",{className:"flex min-w-0 items-baseline overflow-hidden",children:[n.jsx("span",{className:"min-w-0 truncate typography-ui-label text-muted-foreground",style:{direction:"rtl",textAlign:"left",unicodeBidi:"plaintext"},children:M}),n.jsxs("span",{className:"flex-shrink-0 typography-ui-label",children:[n.jsx("span",{className:"text-muted-foreground",children:"/"}),n.jsx("span",{className:"text-foreground",children:ye})]})]})})()]})})]}),n.jsxs("div",{className:"relative flex shrink-0 items-center justify-self-end gap-2",children:[cn(s.insertions,s.deletions),N&&V?n.jsx(ke,{variant:"ghost",size:"sm",className:"h-5 w-5 p-0 opacity-70 hover:opacity-100",title:x("diffView.actions.openFileInEditorAtChange"),onClick:g=>{g.stopPropagation(),V(s.path,ie)},disabled:f,children:f?n.jsx(z,{name:"loader-4",className:"size-3.5 animate-spin"}):n.jsx(z,{name:"edit",className:"size-3.5"})}):null,n.jsx(nn,{mode:Ue?"side-by-side":"unified",onModeChange:g=>{const M=g==="side-by-side"?"side-by-side":"inline";pe(s.path,M)},className:"opacity-70"})]})]})}),b&&n.jsxs("div",{className:"relative bg-background overflow-hidden",children:[!v&&!C?n.jsx("div",{className:"h-40 border border-border/40 bg-background/40"}):null,C?.kind==="unavailable"?n.jsxs("div",{className:"flex flex-col items-center gap-2 px-4 py-8 text-sm text-muted-foreground",children:[n.jsx("div",{className:"typography-ui-label font-semibold text-foreground",children:C.reason==="nested_repository"?x("diffView.unavailable.nestedRepositoryTitle"):C.reason==="untracked_directory"?x("diffView.unavailable.untrackedDirectoryTitle"):x("diffView.unavailable.missingTitle")}),n.jsx("div",{className:"typography-meta text-muted-foreground max-w-[32rem] text-center",children:C.reason==="nested_repository"?x("diffView.unavailable.nestedRepositoryDescription"):C.reason==="untracked_directory"?x("diffView.unavailable.untrackedDirectoryDescription"):x("diffView.unavailable.missingDescription")}),C.reason==="path_not_found"?n.jsx("button",{type:"button",className:"typography-ui-label text-primary hover:underline",onClick:oe,children:x("diffView.actions.retry")}):null]}):null,C?.kind==="error"?n.jsxs("div",{className:"flex flex-col items-center gap-2 px-4 py-8 text-sm text-muted-foreground",children:[n.jsx("div",{className:"typography-ui-label font-semibold text-foreground",children:x("diffView.state.failedToLoadDiff")}),n.jsx("div",{className:"typography-meta text-muted-foreground max-w-[32rem] text-center",children:C.message}),n.jsx("button",{type:"button",className:"typography-ui-label text-primary hover:underline",onClick:()=>A?be?.():oe(),children:x("diffView.actions.retry")})]}):null,v&&ce&&!ie&&!C?n.jsxs("div",{className:"flex items-center justify-center gap-2 px-4 py-8 text-sm text-muted-foreground",children:[n.jsx(z,{name:"loader-4",className:"size-4 animate-spin"}),x("diffView.state.loadingDiff")]}):null,v&&ie&&!ct&&s.insertions+s.deletions>Wt?n.jsxs("div",{className:"flex flex-col items-center gap-2 px-4 py-8 text-sm text-muted-foreground",children:[n.jsx("div",{className:"typography-ui-label font-semibold text-foreground",children:x("diffView.state.largeDiff",{count:s.insertions+s.deletions})}),n.jsx("div",{className:"typography-meta text-muted-foreground",children:x("diffView.state.largeDiffDescription")}),n.jsx("button",{type:"button",className:"typography-ui-label text-primary hover:underline",onClick:()=>xt(!0),children:x("diffView.actions.renderAnyway")})]}):null,v&&ie&&(ct||s.insertions+s.deletions<=Wt)?n.jsx(n.Fragment,{children:n.jsx(Ps,{filePath:s.path,diff:ie,staged:w,renderSideBySide:Ue,wrapLines:y,hunkActions:dt,onExpandContextRequest:G?Ee:void 0,pendingContextExpansion:a,contextLoading:a!==null&&ie.contextMode!=="full"&&!C})}):null]})]})}),io=({visible:o=!0,hideStackedFileSidebar:e=!1,stackedDefaultCollapsedAll:s=!1,pinSelectedFileHeaderToTopOnNavigate:c=!1,showOpenInEditorAction:y=!1,diffScope:p="all",onDiffScopeChange:b,targetFilePath:v=null,flushContent:F=!1})=>{const{t:l}=qe(),{git:j,files:N}=en(),f=Zn(),V=ae(t=>t.runtimeKey),{rootIsGitRepo:w,gitDirectory:D,nestedRepos:_}=es(f??null,{enabled:o}),m=D??f,be=me(t=>t.openContextSurface),Z=xs(t=>t.requestSource),{screenWidth:ee,isMobile:Ne}=ts(),q=ns(m??null),x=ss(m??null),P=rs(m??null),W=ae(t=>t.setActiveDirectory),le=ae(t=>t.ensureStatus),te=ae(t=>t.selectNestedRepo),pe=ae(t=>t.fetchStatus),ne=ae(t=>t.fetchBranches),he=ae(t=>t.clearDiffCache),J=ae(t=>t.setDiff),[I,se]=i.useState(null),[X,K]=i.useState(!1),[je,A]=i.useState(null),[G,C]=i.useState(()=>new Set),[ce,H]=i.useState(()=>new Set),[lt,Be]=i.useState(0),[Ie,nt]=i.useState(()=>new Map),[ct,xt]=i.useState(0),[st,Pe]=i.useState(!1),[We,_e]=i.useState(!1),[a,Ee]=i.useState(p);i.useEffect(()=>{Ee(p)},[p]);const re=me(t=>t.pendingDiffFile),ge=me(t=>t.pendingDiffStaged),Ve=me(t=>t.pendingDiffScope),Oe=me(t=>t.setPendingDiffFile),Ue=me(t=>t.diffLayoutPreference),ze=me(t=>t.diffFileLayout),ve=me(t=>t.setDiffFileLayout),ue=me(t=>t.diffWrapLines),Je=me(t=>t.setDiffWrapLines),U=me(t=>t.openContextFileAtLine),de=Ht(t=>t.currentSessionId),ie=is(a==="turn"?de??"":"",f??void 0),Xe=ue,rt=a==="staged"?!0:a==="working"?!1:null,Ke=rt??X,Ye=Ne||ee<=768,ut=!!de&&a!=="turn"&&a!=="commit"&&a!=="pr"&&!Ye&&!Fe(),yt=a!=="turn"&&!Ye&&!Fe(),wt=!e&&!Ye&&ee>=1024,xe=i.useRef(null),Le=i.useRef(new Map),oe=i.useRef(null),$=i.useRef(null),Se=i.useRef(!1),Ce=i.useRef(null),dt=i.useRef(null),g=i.useRef(null),M=i.useRef(null),ye=i.useCallback(()=>{const t=xe.current;if(!t)return null;const r=t.getBoundingClientRect().top,u=[];for(const[d,h]of Le.current)h&&u.push({path:d,top:h.getBoundingClientRect().top});return $t(r,u)},[]),we=i.useCallback(()=>{oe.current=null,Se.current=!1,A(null),$.current!==null&&(window.cancelAnimationFrame($.current),$.current=null)},[]),O=i.useCallback(t=>{C(r=>{if(r.has(t))return r;const u=new Set(r);return u.add(t),u})},[]),[Ge,ft]=i.useState([]),mt=ie.length>0?ie[ie.length-1].id:"";i.useEffect(()=>{if(a!=="turn"||!de||!o)return;let t=!1;return Ln.getSessionTurnDiff(de,{directory:f??void 0}).then(r=>{t||ft(r.map(u=>({file:u.file,patch:u.patch,status:u.status,additions:u.additions,deletions:u.deletions})))}).catch(r=>{t||(console.warn("[diff-view] turn diff unavailable:",r instanceof Error?r.message:r),ft([]))}),()=>{t=!0}},[a,de,mt,f,o]);const it=i.useMemo(()=>{const t=new Map;for(const r of Ge)if(r.file){if(typeof r.patch=="string"){t.set(r.file,Rt(r.file,r.patch,"patch"));continue}t.set(r.file,{original:r.before??"",modified:r.after??"",contextMode:"full"})}return t},[Ge]),bt=i.useMemo(()=>x?.files?x.files.filter(Yt).length:0,[x]),E=i.useMemo(()=>x?.files?x.files.filter(Xt).length:0,[x]),ot=Ge.length,L=x?.current??null,Y=Tn(m??null,L,o&&a==="pr"&&!Fe()),Me=Y.selectedSource,Te=Bn(m??null,L,o&&a==="commit"&&!Fe()),He=Te.selectedCommit?.hash??null;i.useEffect(()=>{(a==="commit"||a==="pr")&&Fe()&&(Ee("working"),b?.("working"))},[a,b]);const Qe=ae(t=>m?t.directories.get(m)?.branches??null:null),un=ae(t=>m?t.directories.get(m)?.isLoadingBranches??!1:!1),dn=i.useCallback(()=>{m&&ne(m,j)},[m,ne,j]),fn=qn(m??null,o&&q!==!1,un,!!Qe,dn,Fs),Ft=i.useMemo(()=>{const t=x?.tracking?.trim().split("/")[0];return(t&&Qe?.defaultBranches?.[t])??Qe?.defaultBranches?.origin??null},[Qe,x?.tracking]),Dt=!Fe()&&Wn(L,Ft),mn=x!==null,At=Fe()||fn||Un(L,Ft,mn,Qe!==null),pn=In(t=>t.setOverride),{base:Re,resolved:hn,revision:Et}=Pn(m??null,L,o&&Dt&&a==="branch"),[gn,xn]=i.useState(0);i.useEffect(()=>{const t=Yn(a,!At);t!==a&&(Ee(t),t==="working"&&b?.("working"))},[a,At,b]);const yn=i.useMemo(()=>a==="pr"?Me:a==="commit"&&He?{kind:"commit",hash:He}:a==="branch"&&Re&&L?{kind:"branch",baseRef:Re,headRef:L}:null,[a,Re,L,He,Me]),T=Jn(m??null,yn,o&&!Fe(),a==="branch"?Et:""),{fetchDiff:Vt,fetchFullFile:Lt}=T,Mt=a==="commit"?T.files:null,Tt=a==="commit"?T.error:null,pt=a==="branch"?T.files:null,Bt=a==="branch"?T.error:null,It=T.files?a==="pr"?JSON.stringify([T.key,T.revision]):T.key:null,wn=i.useMemo(()=>a==="branch"||a==="commit"||a==="pr"?Array.from(G).sort().join("\0"):"",[a,G]),jt=i.useCallback(async(t,r=!1)=>{try{const u=await Vt(t,r?on:Ct);return{status:"ready",data:Rt(t,u.diff,r?"full":"patch")}}catch(u){return{status:"error",message:u instanceof Error?u.message:l("diffView.state.failedToLoadDiff")}}},[Vt,l]),Pt=i.useCallback(async t=>{try{const{original:r,modified:u}=await Lt(t),d=js({name:t,contents:r},{name:t,contents:u});return{status:"ready",data:{original:r,modified:u,fileDiff:d,contextMode:"full"}}}catch(r){return{status:"error",message:r instanceof Error?r.message:l("diffView.state.failedToLoadDiff")}}},[Lt,l]),bn=i.useMemo(()=>a==="branch"||a==="commit"?t=>jt(t,!0):a==="pr"?Pt:void 0,[a,jt,Pt]),jn=Xn(It,o?wn:"",It?jt:null,Jt,JSON.stringify([a==="branch"?Et:"",a==="pr"?T.revision:0,gn])),vn=pt?.length??null,k=i.useMemo(()=>{if(a==="commit"||a==="pr")return(T.files??[]).map(d=>({path:d.path,index:"",working_dir:d.status,insertions:d.insertions,deletions:d.deletions,isNew:d.status==="A"}));if(a==="branch")return(pt??[]).map(d=>({path:d.path,index:"",working_dir:d.status,insertions:0,deletions:0,isNew:d.status==="A"})).sort((d,h)=>d.path.localeCompare(h.path));if(a==="turn")return Ge.map(d=>({path:d.file??"",index:"",working_dir:Ms(d.status),insertions:d.additions??0,deletions:d.deletions??0,isNew:d.status==="added"})).filter(d=>d.path).sort((d,h)=>d.path.localeCompare(h.path));if(!x?.files)return[];const t=x.diffStats,r=a==="staged"?Xt:a==="working"?Yt:()=>!0,u=d=>{const h=t?.staged?.[d],R=t?.working?.[d];return a==="staged"?{insertions:h?.insertions??0,deletions:h?.deletions??0}:a==="working"?{insertions:R?.insertions??0,deletions:R?.deletions??0}:{insertions:(h?.insertions??0)+(R?.insertions??0),deletions:(h?.deletions??0)+(R?.deletions??0)}};return x.files.filter(r).map(d=>{const h=u(d.path);return{...d,insertions:h.insertions,deletions:h.deletions,isNew:Vs(d)}}).sort((d,h)=>d.path.localeCompare(h.path))},[a,pt,T.files,Ge,x]),vt=i.useMemo(()=>k.map(t=>t.path).join("\0"),[k]);i.useEffect(()=>{const t=vt?vt.split("\0"):[],r=new Set(t),u=`${m??""}:${a}:${s?"collapsed":"default"}`,d=dt.current!==u;dt.current=u,C(h=>{if(d){const B=s?0:Rs(t.length);return new Set(t.slice(0,B))}let R=!1;const S=new Set;for(const B of h){if(!r.has(B)){R=!0;continue}S.add(B)}return R?S:h}),H(h=>{if(d)return new Set;let R=!1;const S=new Set;for(const B of h){if(!r.has(B)){R=!0;continue}S.add(B)}return R?S:h})},[a,vt,m,s]);const _t=i.useCallback(()=>{if(Ce.current=null,!o)return;const t=xe.current;if(!t)return;const r=t.getBoundingClientRect(),u=r.top-Ut,d=r.bottom+Ut,h={},R=[];for(const[S,B]of Le.current){if(!B)continue;const Q=B.getBoundingClientRect();R.push({path:S,top:Q.top}),G.has(S)&&(Q.bottom<u||Q.top>d||(h[S]=!0))}g.current=$t(r.top,R),H(S=>{let B=!1;const Q=new Set(S);for(const at of Object.keys(h))Q.has(at)||(Q.add(at),B=!0);return B?Q:S})},[G,o]),fe=i.useCallback(()=>{o&&(typeof window>"u"||Ce.current===null&&(Ce.current=window.requestAnimationFrame(_t)))},[_t,o]);i.useEffect(()=>{const t=xe.current;if(!(!o||!t))return fe(),t.addEventListener("scroll",fe,{passive:!0}),window.addEventListener("resize",fe),()=>{t.removeEventListener("scroll",fe),window.removeEventListener("resize",fe),Ce.current!==null&&(window.cancelAnimationFrame(Ce.current),Ce.current=null)}},[k,G,fe,o]);const St=i.useCallback(t=>{const r=ze[t.path];if(r)return r;if(Ue==="inline")return"inline";if(Ue==="side-by-side")return"side-by-side";const u=ee<Ns;return t.isNew||u?"inline":"side-by-side"},[ze,Ue,ee]),Ot=i.useMemo(()=>k.length===0?null:k.every(t=>St(t)==="side-by-side")?"side-by-side":"inline",[k,St]);i.useEffect(()=>{o&&m&&(W(m),le(m,j))},[m,W,le,j,o]);const ht=JSON.stringify([V,m]),kt=i.useRef({scope:ht,paths:new Set,dirty:!1,unscoped:!1}),zt=i.useRef(o);i.useEffect(()=>{const t=o&&!zt.current;if(zt.current=o,kt.current.scope!==ht&&(kt.current={scope:ht,paths:new Set,dirty:!1,unscoped:!1}),!m)return;const r=(d,h)=>{d.length&&(M.current=ye()??g.current,he(m,d),nt(R=>{const S=new Map(R);for(const B of d)S.set(B,(S.get(B)??0)+1);return S})),h&&xt(R=>R+1),pe(m,j,{silent:!0})},u=kt.current;return o&&(t||u.dirty)&&(r([...u.paths],u.unscoped),u.paths.clear(),u.dirty=!1,u.unscoped=!1),tn.onGitRefreshHint(d=>{if(Qt(d.directory)!==Qt(m))return;const h=d.paths??[],R=h.length===0;if(!o){u.dirty=!0,u.unscoped||=R;for(const S of h)u.paths.add(S);return}r(h,R)})},[ye,he,m,pe,j,ht,o]),i.useLayoutEffect(()=>{const t=M.current;if(!t)return;M.current=null;const r=xe.current,u=Le.current.get(t.path);if(!r||!u)return;const d=r.getBoundingClientRect().top,h=u.getBoundingClientRect().top-d;r.scrollTop=ks(r.scrollTop,t.topOffset,h,r.scrollHeight-r.clientHeight),g.current=t},[Ie]),i.useEffect(()=>{!o||a!=="all"&&!Ve||re&&(Ve&&Ee(Ve),se(re),K(Ve==="staged"||!Ve&&ge),Oe(null),Se.current=!0,oe.current=re,O(re),Be(t=>t+1))},[a,O,re,Ve,ge,Oe,o]),i.useEffect(()=>{if(a==="all")return;const t=v?.trim();t&&(se(t),K(a==="staged"),Se.current=!0,oe.current=t,O(t),Be(r=>r+1))},[a,O,v]),i.useEffect(()=>{if(!I)return;k.some(r=>r.path===I)||(se(null),K(!1))},[k,I]);const Sn=i.useCallback((t,r)=>{const u=Le.current;r?u.set(t,r):u.delete(t),fe()},[fe]),kn=i.useCallback((t,r)=>{we(),C(u=>{const d=u.has(t);if(r===d)return u;const h=new Set(u);return r?h.add(t):h.delete(t),h}),r||H(u=>{if(!u.has(t))return u;const d=new Set(u);return d.delete(t),d}),fe()},[we,fe]),Nn=i.useCallback(()=>{we(),C(t=>t.size>0?new Set:new Set(k.map(r=>r.path))),H(new Set),fe()},[we,k,fe]),Cn=i.useCallback(async t=>{if(!de)return;const r=Ht.getState().getDirectoryForSession(de)||f||"";if(!r){$e.error(l("diffView.reviewDialog.toast.noSessionDirectory"));return}_e(!0);try{await os({originalSessionID:de,directory:r,providerID:t.providerID,modelID:t.modelID,agent:t.agent||void 0,variant:t.variant||void 0,generateHandoff:t.generateHandoff,returnAfterHandoffRequest:t.generateHandoff,autoReview:t.autoReview}),Pe(!1)}catch(u){console.error("[review-flow] failed to start review flow",u),$e.error(u instanceof Error?u.message:l("diffView.reviewDialog.toast.startFailed"))}finally{_e(!1)}},[de,f,l]),gt=i.useCallback(t=>{const r=Le.current.get(t),u=xe.current;if(!r||!u)return!1;const d=r.getBoundingClientRect().top-u.getBoundingClientRect().top;return u.scrollTo({top:u.scrollTop+d,behavior:"auto"}),!0},[]);i.useEffect(()=>{const t=oe.current;if(!o||!t)return;let r=0;const u=20;let d=!1;const h=(S=!0)=>{d||(d=!0,oe.current=null,Se.current=!1,S&&A(null),$.current!==null&&(window.cancelAnimationFrame($.current),$.current=null))},R=()=>{if(d){$.current=null;return}const S=oe.current;if(!S){h(),$.current=null;return}if(!gt(S)){r+=1,r<u?$.current=window.requestAnimationFrame(R):(h(),$.current=null);return}if(c&&Se.current){A(S),h(!1);return}h()};return $.current=window.requestAnimationFrame(R),()=>{d=!0,$.current!==null&&(window.cancelAnimationFrame($.current),$.current=null)}},[c,lt,gt,o]);const Rn=i.useCallback(t=>{},[]),Nt=i.useCallback(t=>{we(),se(t),K(!1),Se.current=!0,oe.current=t,O(t),Be(r=>r+1),gt(t)},[we,O,gt]);i.useEffect(()=>{const t=r=>{if(!o||!r.altKey||r.metaKey||r.ctrlKey||r.shiftKey||r.key!=="ArrowDown"&&r.key!=="ArrowUp")return;const u=r.target;if(u instanceof HTMLElement&&(u.isContentEditable||u.tagName==="INPUT"||u.tagName==="TEXTAREA"||u.closest('[role="dialog"]'))||k.length===0)return;const d=r.key==="ArrowDown"?1:-1,h=I?k.findIndex(B=>B.path===I):-1,R=h===-1?d>0?0:k.length-1:h+d,S=k[R];S&&(r.preventDefault(),Nt(S.path))};return window.addEventListener("keydown",t),()=>window.removeEventListener("keydown",t)},[k,I,Nt,o]);const Fn=i.useCallback(t=>{const r=t==="side-by-side"?"side-by-side":"inline";k.forEach(u=>{ve(u.path,r)})},[k,ve]),[Dn,Kt]=i.useState(null),An=i.useCallback(async(t,r)=>{if(!m||!t)return;Kt(t);const u=De();try{let d=null;if(r?.patch&&!r.isBinary&&!et(t)?d=qt(r.patch):r&&r.contextMode==="full"&&!r.isBinary&&!et(t)&&(d=Zt(r.original,r.modified)),d===null)try{const Q=await j.getGitDiff(m,{path:t,staged:Ke,contextLines:3});d=qt(Q.diff)}catch{d=null}let h=r;if(d===null||!h){const Q=await j.getGitFileDiff(m,{path:t,staged:Ke}),at={original:Q.original??"",modified:Q.modified??"",isBinary:Q.isBinary,submodule:Q.submodule};h=at,Ke||J(m,t,at,u)}const R=d??(h.isBinary||et(t)?1:Zt(h.original,h.modified)),S=Ls(m,t),B=await ys(N,S,{directory:m});if(!B.ok){$e.error(ws(B.reason));return}U(m,S,R,1)}finally{Kt(d=>d===t?null:d)}},[Ke,m,N,j,U,J]),En=()=>{if(!m)return null;const t=r=>rt!==null?rt:X&&r===I;return n.jsxs("div",{className:Ae("flex min-w-0 flex-1 min-h-0 h-full",F?"gap-0":"gap-3 px-3 pb-3 pt-2"),children:[wt&&n.jsxs("section",{className:"hidden lg:flex w-72 flex-col rounded-xl border border-border/60 bg-background/70 overflow-hidden",children:[n.jsxs("div",{className:"flex items-center justify-between px-3 py-1.5 border-b border-border/40",children:[n.jsx("span",{className:"typography-ui-header font-semibold text-foreground",children:l("diffView.section.files")}),n.jsx("span",{className:"typography-meta text-muted-foreground",children:k.length})]}),n.jsx(Bs,{changedFiles:k,selectedFile:null,onSelectFile:Nt})]}),n.jsx("div",{className:"relative flex-1 min-w-0 min-h-0 h-full",children:n.jsx(rn,{ref:xe,outerClassName:"min-h-0 h-full",className:"[overflow-anchor:none] pb-16",disableHorizontal:!0,observeMutations:!1,preventOverscroll:!0,"data-diff-virtual-root":!0,children:n.jsx("div",{className:"flex flex-col [overflow-anchor:none]","data-diff-virtual-content":!0,children:k.map(r=>n.jsx(_s,{visible:o,directory:m,file:r,layout:St(r),wrapLines:Xe,isSelected:!1,isExpanded:G.has(r.path),isMounted:ce.has(r.path)||r.path===je,onSelect:Rn,onExpandedChange:kn,registerSectionRef:Sn,showOpenInEditorAction:y&&a!=="turn",isOpeningInEditor:Dn===r.path,onOpenInEditor:(u,d)=>{An(u,d)},staged:t(r.path),readOnlyActions:a==="branch"||a==="commit"||a==="pr",hunkActionsEnabled:a==="all"||a==="working"||a==="staged",contentRevision:ct,comparisonDiff:a==="branch"||a==="commit"||a==="pr"?jn.get(r.path)??Jt:void 0,onRetryComparisonDiff:()=>xn(u=>u+1),loadFullComparisonDiff:bn,initialDiffData:a==="turn"?it.get(r.path)??null:null},`${De()}:${m}:${r.path}:${Ie.get(r.path)??0}`))})})})]})},Vn=()=>{if(!m)return n.jsx("div",{className:"flex flex-1 items-center justify-center text-sm text-muted-foreground",children:l("diffView.state.selectSessionDirectory")});if(a!=="turn"&&P&&!x)return n.jsxs("div",{className:"flex flex-1 items-center justify-center gap-2 text-sm text-muted-foreground",children:[n.jsx(z,{name:"loader-4",className:"size-4 animate-spin"}),l("diffView.state.loadingRepositoryStatus")]});if(a!=="turn"&&q===!1)return n.jsx("div",{className:"flex flex-1 items-center justify-center text-sm text-muted-foreground",children:l("diffView.state.notGitRepository")});if(a==="pr"){if(!Me||T.error)return n.jsxs("div",{className:"flex flex-1 flex-col items-center justify-center gap-3 p-6 text-center",children:[n.jsx("p",{className:"typography-meta text-muted-foreground",children:T.error??Y.error??(Y.loading?l("session.githubPrPicker.loading.pullRequests"):l("pullRequestComparison.select"))}),(T.error||Y.error)&&n.jsx(ke,{variant:"outline",size:"sm",onClick:()=>{Me?T.refresh():Y.refresh()},children:l("diffView.actions.retry")}),!Me&&!Y.loading&&n.jsx(Gt,{comparison:Y})]});if(!T.files)return n.jsxs("div",{className:"flex flex-1 items-center justify-center gap-2 typography-meta text-muted-foreground",children:[n.jsx(z,{name:"loader-4",className:"size-4 animate-spin"}),l("diffView.state.loadingDiff")]})}if(a==="commit"){if(Tt)return n.jsxs("div",{className:"flex flex-1 flex-col items-center justify-center gap-3 p-6 text-center",children:[n.jsx("p",{className:"typography-meta text-muted-foreground",children:Tt}),n.jsx(ke,{variant:"outline",size:"sm",onClick:()=>{T.refresh()},children:l("diffView.actions.retry")})]});if(!He&&!Te.loading)return n.jsx("div",{className:"flex flex-1 items-center justify-center text-sm text-muted-foreground",children:Te.error??l("commitComparison.noCommits")});if(!Mt)return n.jsxs("div",{className:"flex flex-1 items-center justify-center gap-2 text-sm text-muted-foreground",children:[n.jsx(z,{name:"loader-4",className:"size-4 animate-spin"}),l("diffView.state.loadingDiff")]})}if(a==="branch"){if(!hn)return n.jsxs("div",{className:"flex flex-1 items-center justify-center gap-2 text-sm text-muted-foreground",children:[n.jsx(z,{name:"loader-4",className:"size-4 animate-spin"}),l("diffView.branch.resolvingBase")]});if(!Re)return n.jsxs("div",{className:"flex flex-1 flex-col items-center justify-center gap-3 px-6 text-center",children:[n.jsx(z,{name:"git-branch",className:"size-6 text-muted-foreground"}),n.jsx("div",{className:"typography-ui-label font-semibold text-foreground",children:l("diffView.branch.noBaseTitle")}),n.jsx("div",{className:"max-w-sm typography-micro text-muted-foreground",children:l("gitView.pr.toast.baseBranchRequired")})]});if(Bt)return n.jsxs("div",{className:"flex flex-1 flex-col items-center justify-center gap-3 px-6 text-center",children:[n.jsx("div",{className:"typography-ui-label font-semibold text-foreground",children:l("diffView.branch.loadError")}),n.jsx("div",{className:"max-w-sm typography-micro text-muted-foreground",children:Bt}),n.jsx(ke,{variant:"outline",size:"sm",onClick:()=>{T.refresh()},children:l("diffView.actions.retry")})]});if(pt===null)return n.jsxs("div",{className:"flex flex-1 items-center justify-center gap-2 text-sm text-muted-foreground",children:[n.jsx(z,{name:"loader-4",className:"size-4 animate-spin"}),l("diffView.branch.loadingFiles")]})}return k.length===0?n.jsx("div",{className:"flex flex-1 items-center justify-center text-sm text-muted-foreground",children:a==="turn"?l("diffView.state.noLastTurnChanges"):a==="pr"?l("walkthrough.blocked.emptyDiff.description"):a==="commit"?l("commitComparison.emptyDiff"):a==="branch"&&Re?l("diffView.branch.empty",{base:hs(Re)}):l("diffView.state.cleanWorkingTree")}):En()};return n.jsxs("div",{className:"flex h-full flex-col overflow-hidden bg-background",children:[n.jsxs("div",{className:"@container/diff-toolbar flex min-w-0 items-center gap-2 px-3 py-2 bg-background",children:[w===!1&&Array.isArray(_)&&_.length>0?n.jsx(ps,{repositories:_,selectedRepository:D??null,onSelectRepository:t=>{f&&te(f,t)},repositoryRoot:f??void 0}):null,!Ne&&(a!=="all"?n.jsx(Ts,{scope:a,workingCount:bt,stagedCount:E,turnCount:ot,branchCount:vn,commitCount:a==="commit"?Mt?.length??null:null,prCount:a==="pr"?T.files?.length??null:null,showCommitOption:!Fe(),showBranchOption:Dt,onScopeChange:t=>{Ee(t),b?.(t)}}):n.jsx("div",{className:"flex items-center gap-1 rounded-md px-2 py-1 text-muted-foreground shrink-0",children:n.jsx("span",{className:"typography-ui-label font-semibold text-foreground",children:P&&!x?l("diffView.state.loadingChanges"):k.length===1?l("diffView.summary.changedFilesSingle",{count:k.length}):l("diffView.summary.changedFilesPlural",{count:k.length})})})),a==="branch"&&n.jsx(_n,{branches:Qe?.all??[],currentBranch:L,base:Re,onSelect:t=>{m&&L&&pn(m,L,t)}},JSON.stringify([m,L])),a==="commit"&&n.jsx(On,{commits:Te.commits,selectedHash:He,loading:Te.loading,error:Te.error,onSelect:Te.select,onRefresh:()=>{Te.refresh()}},JSON.stringify([m,L])),a==="pr"&&n.jsxs(n.Fragment,{children:[n.jsx(Gt,{comparison:Y},JSON.stringify([V,m,L])),Me&&n.jsx(ke,{variant:"ghost",size:"sm",disabled:T.loading,"aria-label":l("session.githubIssuePicker.actions.refresh"),title:l("session.githubIssuePicker.actions.refresh"),onClick:()=>{T.refresh()},children:n.jsx(z,{name:"refresh",className:"size-4"})})]}),k.length>0&&n.jsxs(ke,{variant:"ghost",size:"sm",onClick:Nn,className:Ae("diff-toolbar__expand-button h-7 flex-shrink-0 gap-1 px-1.5 text-muted-foreground hover:text-foreground","ml-auto"),title:G.size>0?l("diffView.actions.collapseAll"):l("diffView.actions.expandAll"),children:[n.jsx(z,{name:"expand-up-down",className:"size-4"}),n.jsx("span",{className:"diff-toolbar__expand-label typography-ui-label",children:G.size>0?l("diffView.actions.collapseAll"):l("diffView.actions.expandAll")})]}),k.length>0&&ut&&n.jsxs(ke,{variant:"default",size:"sm",onClick:()=>Pe(!0),disabled:We,className:"diff-toolbar__review-button h-7 flex-shrink-0 gap-1.5 px-2","aria-label":l("diffView.actions.reviewAria"),children:[We?n.jsx(z,{name:"loader-4",className:"size-4 animate-spin"}):n.jsx(z,{name:"search-eye",className:"size-4"}),n.jsx("span",{className:"diff-toolbar__review-label typography-ui-label",children:l("diffView.actions.review")})]}),k.length>0&&yt&&n.jsxs(ke,{variant:"outline",size:"sm",onClick:()=>{const t=m??"";Z(t,a==="pr"&&Me?Me:a==="commit"&&He?{kind:"commit",hash:He}:a==="branch"&&Re&&L?{kind:"branch",baseRef:Re,headRef:L}:{kind:"working-tree",scope:a==="staged"||a==="working"?a:"all"}),be(f??t,"walkthrough")},className:Ae("diff-toolbar__walkthrough-button h-7 flex-shrink-0 gap-1.5 px-2",bs),"aria-label":l("walkthrough.action.open"),children:[n.jsx(z,{name:"route",className:"size-4"}),n.jsx("span",{className:"diff-toolbar__walkthrough-label typography-ui-label",children:l("walkthrough.action.open")})]}),k.length>0&&n.jsx(ke,{variant:"ghost",size:"sm",onClick:()=>Je(!ue),className:Ae("h-5 w-5 p-0 transition-opacity",Xe?"text-foreground opacity-100":"text-muted-foreground opacity-60 hover:opacity-100"),title:l(Xe?"diffView.actions.disableLineWrap":"diffView.actions.enableLineWrap"),children:n.jsx(z,{name:"text-wrap",className:"size-4"})}),Ot&&n.jsx(nn,{mode:Ot==="side-by-side"?"side-by-side":"unified",onModeChange:Fn})]}),n.jsx(as,{open:st,onOpenChange:Pe,projectDirectory:m??null,submitting:We,onConfirm:Cn}),Vn()]})};export{io as DiffView,_s as MultiFileDiffEntry};
@@ -1,4 +1,4 @@
1
- import{f as Re,R as i,c as Ei,j as r,r as ht}from"./vendor-react-BUCujlKS.js";import{a as tt,h as en,Y as Mo,Z as Do,_ as zo,$ as Lo,v as et,u as mt,e1 as Ao,I as Vi,B as Io,a3 as Pi,e as Oo,d$ as Bo,a2 as $o,e0 as _o}from"./index-CvLgnuNI.js";import{f as st,z as Mi,ai as sa,cf as Wo,h as W,kw as Uo,g5 as Ko,X as Fs,B as I,I as E,kx as Ho,aA as Ns,gV as qo,gT as Go,_ as Xo,T as Jo,bj as Yo,K as Zo,ak as Qo,cA as el,eF as Di,ix as tl,gr as sl,t as re,l as zi,ay as Kr,ct as bs,d9 as rl,b as nl,ky as ys,c1 as il,az as Hr,kz as qr,cu as Li,cv as Ai,kA as Ii,kB as Oi,kC as al,kD as ol,kE as ll,hy as cl,kF as ul,kG as dl,kH as fl,c2 as ra,c3 as na,c4 as ia,c5 as aa,c6 as oa,c7 as la,as as tn,at as sn,av as rn,bh as ur,c8 as Gr,aB as ar,cp as Xr,ae as Mt,af as Dt,ag as zt,b$ as ml,c0 as hl,g as fr,bi as pl,cz as gl}from"./useAppFontEffects-Ci3FEaPf.js";import{at as xl,Y as vl,Z as wl,_ as bl,$ as yl,a0 as jl}from"./runtimeEndpointReset-CsIpUep1.js";import{c as Bi,s as Nl,P as js,C as Sl}from"./shikiHighlight-DNm2Z_Jc.js";import{a as Fl}from"./vendor-codemirror-state-C9awkmn-.js";import{E as Lt}from"./vendor-codemirror-view-CiLROUVV.js";import{V as Cl,J as kl,F as Rl}from"./JsonTreeView-3sGwqexh.js";import{ensurePierreThemeRegistered as $i,getResolvedShikiTheme as Tl}from"./appThemeRegistry-u4zw1l0B.js";import{V as El,W as Vl}from"./Virtualizer-CZlLSacm.js";import{V as Pl}from"./Virtualizer-D_a8gKmg.js";import{a as Ml,u as or,b as Dl,c as zl,h as Ll,i as Al,j as Il}from"./scheduledTasksApi-B5OHVpPM.js";import{D as Ol}from"./vendor-react-drawio-Ct3Q0DsD.js";import{I as Bl,u as $l,n as _l}from"./useInlineCommentController-CuUuakrt.js";import{b as Wl}from"./CodeMirrorCommentWidgets-ntXIbhV2.js";import"./vendor-scheduler-7OC5HNn7.js";import"./vendor-zod-Gea9uBlY.js";import"./vendor-vite-runtime-DD1OZmLC.js";import"./vendor-zustand-BAGL70zf.js";import"./vendor-opencode-client-_BAHQo4R.js";import"./vendor-simplewebauthn-browser-VDA66rT_.js";import"./vendor-base-ui-CsXYnR5c.js";import"./vendor-floating-ui-utils-D6FqdtJt.js";import"./vendor-floating-ui-react-dom-DxYCWdHj.js";import"./vendor-floating-ui-dom-BTvzWks8.js";import"./vendor-floating-ui-core-PuGzNPnN.js";import"./vendor-use-sync-external-store-D6wYuSt-.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-framer-motion-Bq3iTZ6r.js";import"./vendor-motion-dom-DcCgeG69.js";import"./vendor-motion-utils-BGh8QBgx.js";import"./vendor-tanstack-react-virtual-ClYN8CzB.js";import"./vendor-tanstack-virtual-core-BewVQryB.js";import"./contextPanelEmbeddedChat-CirXEPJq.js";import"./vendor-sonner-DFyL3AvE.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-codemirror-language-BgPj_McA.js";import"./vendor-lezer-common-B3-cUCR_.js";import"./vendor-lezer-highlight-CDMHUZ74.js";import"./vendor-style-mod-NZ5MEPvj.js";import"./vendor-codemirror-lang-javascript-Cc2ZYbgX.js";import"./vendor-lezer-javascript-D7Tj24ot.js";import"./vendor-lezer-lr-bhwg1HMg.js";import"./vendor-codemirror-autocomplete-DzPz9Wgq.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-CMBS2tG9.js";import"./vendor-lezer-json-Iaex0UN-.js";import"./vendor-codemirror-lang-css-O0cZX78y.js";import"./vendor-lezer-css-C5xB6jxd.js";import"./vendor-codemirror-lang-html-CfgK872x.js";import"./vendor-lezer-html-C0I1p52t.js";import"./vendor-codemirror-lang-markdown-BPGOH9ye.js";import"./vendor-lezer-markdown-C6g-d6P3.js";import"./vendor-codemirror-language-data-CQa7_1cr.js";import"./vendor-codemirror-lang-python-HahnQaAS.js";import"./vendor-lezer-python-CvuFxeZl.js";import"./vendor-codemirror-commands-B7H_j0iU.js";import"./vendor-legendapp-list-BuBPBC3R.js";import"./vendor-tailwind-merge-CPcsbTWB.js";import"./vendor-fuse.js-Dw8P0qyA.js";import"./GuestAttachDialog-DdOuyZzp.js";import"./PluginPane-BPP1dbck.js";import"./vendor-codemirror-search-BmS-GmcX.js";import"./vendor-replit-codemirror-vim-B2DJlAhT.js";import"./vendor-replit-codemirror-vim-core-FHzKdNUS.js";import"./web-components-B6tKQyJN.js";import"./computeVirtualFileMetrics-DW5jjX4n.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-BmJyTmjJ.js";import"./vendor-pierre-theming-C6Z4M5_u.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-B-mGgeKl.js";import"./textMateThemeFromAppTheme-DGF2kG7g.js";function _i(n){const e=Re.c(41),{containerRef:t,filePath:a,fileContent:w}=n,{t:f}=st(),v=Mi(Yl),d=Mi(Jl),x=sa(),g=Wo(Xl),[m,b]=i.useState(null),[y,C]=i.useState(""),[N,F]=i.useState(!1),p=i.useRef(!1),l=i.useRef(null),T=i.useRef(null),[R,M]=i.useState(null);let D;e[0]===Symbol.for("react.memo_cache_sentinel")?(D=()=>{b(null),C(""),F(!1),p.current=!1,T.current=null,M(null)},e[0]=D):D=e[0];const L=D;let k,V;e[1]!==t?(k=()=>{const K=t.current;if(!K)return;const ie=()=>{if(p.current)return;const ae=window.getSelection(),fe=ae?.toString().trim()??"";if(!ae||!fe||ae.rangeCount===0){L();return}const me=ae.getRangeAt(0);if(!K.contains(me.commonAncestorContainer)){L();return}const ce=me.getBoundingClientRect();T.current=me.cloneRange(),C(fe),b({x:ce.left+ce.width/2,y:ce.top-10})},_=ae=>{l.current?.contains(ae.target)||p.current&&L()};return document.addEventListener("selectionchange",ie),document.addEventListener("pointerdown",_),()=>{document.removeEventListener("selectionchange",ie),document.removeEventListener("pointerdown",_)}},V=[t,L],e[1]=t,e[2]=k,e[3]=V):(k=e[2],V=e[3]),i.useEffect(k,V);let z;e[4]!==w?(z=K=>{const ie=he=>w.slice(0,he).split(`
1
+ import{f as Re,R as i,c as Ei,j as r,r as ht}from"./vendor-react-BUCujlKS.js";import{a as tt,h as en,Y as Mo,Z as Do,_ as zo,$ as Lo,v as et,u as mt,e1 as Ao,I as Vi,B as Io,a3 as Pi,e as Oo,d$ as Bo,a2 as $o,e0 as _o}from"./index-CvLgnuNI.js";import{f as st,z as Mi,ai as sa,cf as Wo,h as W,kw as Uo,g5 as Ko,X as Fs,B as I,I as E,kx as Ho,aA as Ns,gV as qo,gT as Go,_ as Xo,T as Jo,bj as Yo,K as Zo,ak as Qo,cA as el,eF as Di,ix as tl,gr as sl,t as re,l as zi,ay as Kr,ct as bs,d9 as rl,b as nl,ky as ys,c1 as il,az as Hr,kz as qr,cu as Li,cv as Ai,kA as Ii,kB as Oi,kC as al,kD as ol,kE as ll,hy as cl,kF as ul,kG as dl,kH as fl,c2 as ra,c3 as na,c4 as ia,c5 as aa,c6 as oa,c7 as la,as as tn,at as sn,av as rn,bh as ur,c8 as Gr,aB as ar,cp as Xr,ae as Mt,af as Dt,ag as zt,b$ as ml,c0 as hl,g as fr,bi as pl,cz as gl}from"./useAppFontEffects-BxrtCnfR.js";import{at as xl,Y as vl,Z as wl,_ as bl,$ as yl,a0 as jl}from"./runtimeEndpointReset-DKDdzRzm.js";import{c as Bi,s as Nl,P as js,C as Sl}from"./shikiHighlight-xURoo5t_.js";import{a as Fl}from"./vendor-codemirror-state-C9awkmn-.js";import{E as Lt}from"./vendor-codemirror-view-CiLROUVV.js";import{V as Cl,J as kl,F as Rl}from"./JsonTreeView-DOHHcbgJ.js";import{ensurePierreThemeRegistered as $i,getResolvedShikiTheme as Tl}from"./appThemeRegistry-B5tHTkR8.js";import{V as El,W as Vl}from"./Virtualizer-CZlLSacm.js";import{V as Pl}from"./Virtualizer-D_a8gKmg.js";import{a as Ml,u as or,b as Dl,c as zl,h as Ll,i as Al,j as Il}from"./scheduledTasksApi-C5sCuNqf.js";import{D as Ol}from"./vendor-react-drawio-Ct3Q0DsD.js";import{I as Bl,u as $l,n as _l}from"./useInlineCommentController-CeXuR-SR.js";import{b as Wl}from"./CodeMirrorCommentWidgets-B82Oye3V.js";import"./vendor-scheduler-7OC5HNn7.js";import"./vendor-zod-Gea9uBlY.js";import"./vendor-vite-runtime-DD1OZmLC.js";import"./vendor-zustand-BAGL70zf.js";import"./vendor-opencode-client-_BAHQo4R.js";import"./vendor-simplewebauthn-browser-VDA66rT_.js";import"./vendor-base-ui-CsXYnR5c.js";import"./vendor-floating-ui-utils-D6FqdtJt.js";import"./vendor-floating-ui-react-dom-DxYCWdHj.js";import"./vendor-floating-ui-dom-BTvzWks8.js";import"./vendor-floating-ui-core-PuGzNPnN.js";import"./vendor-use-sync-external-store-D6wYuSt-.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-framer-motion-Bq3iTZ6r.js";import"./vendor-motion-dom-DcCgeG69.js";import"./vendor-motion-utils-BGh8QBgx.js";import"./vendor-tanstack-react-virtual-ClYN8CzB.js";import"./vendor-tanstack-virtual-core-BewVQryB.js";import"./contextPanelEmbeddedChat-CirXEPJq.js";import"./vendor-sonner-DFyL3AvE.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-codemirror-language-BgPj_McA.js";import"./vendor-lezer-common-B3-cUCR_.js";import"./vendor-lezer-highlight-CDMHUZ74.js";import"./vendor-style-mod-NZ5MEPvj.js";import"./vendor-codemirror-lang-javascript-Cc2ZYbgX.js";import"./vendor-lezer-javascript-D7Tj24ot.js";import"./vendor-lezer-lr-bhwg1HMg.js";import"./vendor-codemirror-autocomplete-DzPz9Wgq.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-CMBS2tG9.js";import"./vendor-lezer-json-Iaex0UN-.js";import"./vendor-codemirror-lang-css-O0cZX78y.js";import"./vendor-lezer-css-C5xB6jxd.js";import"./vendor-codemirror-lang-html-CfgK872x.js";import"./vendor-lezer-html-C0I1p52t.js";import"./vendor-codemirror-lang-markdown-BPGOH9ye.js";import"./vendor-lezer-markdown-C6g-d6P3.js";import"./vendor-codemirror-language-data-DOuaQUZ0.js";import"./vendor-codemirror-lang-python-HahnQaAS.js";import"./vendor-lezer-python-CvuFxeZl.js";import"./vendor-codemirror-commands-B7H_j0iU.js";import"./vendor-legendapp-list-BuBPBC3R.js";import"./vendor-tailwind-merge-CPcsbTWB.js";import"./vendor-fuse.js-Dw8P0qyA.js";import"./GuestAttachDialog-CYwWYLr3.js";import"./PluginPane-sM8fcZIV.js";import"./vendor-codemirror-search-BmS-GmcX.js";import"./vendor-replit-codemirror-vim-B2DJlAhT.js";import"./vendor-replit-codemirror-vim-core-FHzKdNUS.js";import"./web-components-63H1h21j.js";import"./computeVirtualFileMetrics-cq9uQ30i.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-BmJyTmjJ.js";import"./vendor-pierre-theming-C6Z4M5_u.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-DB3_rjyW.js";import"./textMateThemeFromAppTheme-BZLGuYTU.js";function _i(n){const e=Re.c(41),{containerRef:t,filePath:a,fileContent:w}=n,{t:f}=st(),v=Mi(Yl),d=Mi(Jl),x=sa(),g=Wo(Xl),[m,b]=i.useState(null),[y,C]=i.useState(""),[N,F]=i.useState(!1),p=i.useRef(!1),l=i.useRef(null),T=i.useRef(null),[R,M]=i.useState(null);let D;e[0]===Symbol.for("react.memo_cache_sentinel")?(D=()=>{b(null),C(""),F(!1),p.current=!1,T.current=null,M(null)},e[0]=D):D=e[0];const L=D;let k,V;e[1]!==t?(k=()=>{const K=t.current;if(!K)return;const ie=()=>{if(p.current)return;const ae=window.getSelection(),fe=ae?.toString().trim()??"";if(!ae||!fe||ae.rangeCount===0){L();return}const me=ae.getRangeAt(0);if(!K.contains(me.commonAncestorContainer)){L();return}const ce=me.getBoundingClientRect();T.current=me.cloneRange(),C(fe),b({x:ce.left+ce.width/2,y:ce.top-10})},_=ae=>{l.current?.contains(ae.target)||p.current&&L()};return document.addEventListener("selectionchange",ie),document.addEventListener("pointerdown",_),()=>{document.removeEventListener("selectionchange",ie),document.removeEventListener("pointerdown",_)}},V=[t,L],e[1]=t,e[2]=k,e[3]=V):(k=e[2],V=e[3]),i.useEffect(k,V);let z;e[4]!==w?(z=K=>{const ie=he=>w.slice(0,he).split(`
2
2
  `).length,_=ql,ae=(he,ve)=>{for(const Ee of _(he)){const ye=w.indexOf(Ee,ve);if(ye>=0)return ye}return-1},fe=K.length>=8?w.indexOf(K):-1;if(fe>=0){const he=ie(fe);return{start:he,end:he+K.split(`
3
3
  `).length-1}}const me=K.split(`
4
4
  `).map(Hl).filter(Boolean);if(me.length===0)return null;const ce=ae(me[0],0);if(ce<0)return null;const be=ie(ce);if(me.length===1)return{start:be,end:be};const xe=ae(me[me.length-1],ce);return xe<0?null:{start:be,end:Math.max(be,ie(xe))}},e[4]=w,e[5]=z):z=e[5];const B=z;let U;e[6]===Symbol.for("react.memo_cache_sentinel")?(U=()=>{const K=T.current;if(!K){M(null);return}M(Uo(K))},e[6]=U):U=e[6];const Z=U;let te,ee;e[7]!==N?(te=()=>{if(!N)return;let K=null;const ie=()=>{K===null&&(K=window.requestAnimationFrame(()=>{K=null,Z()}))};return document.addEventListener("scroll",ie,{capture:!0,passive:!0}),window.addEventListener("resize",ie),()=>{K!==null&&window.cancelAnimationFrame(K),document.removeEventListener("scroll",ie,{capture:!0}),window.removeEventListener("resize",ie)}},ee=[N,Z],e[7]=N,e[8]=te,e[9]=ee):(te=e[8],ee=e[9]),i.useEffect(te,ee);let q;e[10]!==y?(q=()=>{y&&(F(!0),p.current=!0,Z(),window.getSelection()?.removeAllRanges())},e[10]=y,e[11]=q):q=e[11];const G=q;let X;e[12]!==g||e[13]!==v||e[14]!==x||e[15]!==a||e[16]!==d||e[17]!==B||e[18]!==y?(X=K=>{const ie=v??(d?"draft":null);if(!y||!ie||!x){L();return}const _=B(y);g({directory:x,sessionKey:ie},{source:"file-quote",fileLabel:a,startLine:_?.start??0,endLine:_?.end??0,code:y,language:"",text:K.trim()}),L(),queueMicrotask(Kl)},e[12]=g,e[13]=v,e[14]=x,e[15]=a,e[16]=d,e[17]=B,e[18]=y,e[19]=X):X=e[19];const H=X;if(!m)return null;let Q;e[20]!==N||e[21]!==B||e[22]!==y?(Q=N?B(y):null,e[20]=N,e[21]=B,e[22]=y,e[23]=Q):Q=e[23];const _e=Q;let ne;e[24]!==m.x||e[25]!==m.y?(ne={left:m.x,top:m.y,transform:"translate(-50%, -100%)"},e[24]=m.x,e[25]=m.y,e[26]=ne):ne=e[26];let Te;e[27]!==N||e[28]!==R?(Te=N&&R&&R.length>0?Ei.createPortal(r.jsx("div",{className:"pointer-events-none fixed inset-0 z-40",children:R.map(Ul)}),document.body):null,e[27]=N,e[28]=R,e[29]=Te):Te=e[29];let De;e[30]!==N||e[31]!==a||e[32]!==_e||e[33]!==G||e[34]!==H||e[35]!==f?(De=N?r.jsx("div",{className:"w-[min(420px,80vw)]",children:r.jsx(Bl,{fileLabel:a,lineRange:_e?{start:_e.start,end:_e.end}:void 0,onSave:H,onCancel:L})}):r.jsx("div",{className:W("flex items-center whitespace-nowrap","oc-glass-popover rounded-full border border-[var(--interactive-border)]","shadow-[0_4px_16px_-4px_rgb(0_0_0_/_0.12)]","p-1"),children:r.jsx("button",{type:"button",onClick:G,className:W("px-3.5 py-1.5 rounded-full","text-sm font-medium","text-foreground","hover:bg-[var(--interactive-hover)]","transition-colors duration-150"),title:f("chat.textSelection.title.commentOnSelection"),children:f("chat.textSelection.actions.comment")})}),e[30]=N,e[31]=a,e[32]=_e,e[33]=G,e[34]=H,e[35]=f,e[36]=De):De=e[36];let ze;return e[37]!==ne||e[38]!==Te||e[39]!==De?(ze=Ei.createPortal(r.jsxs("div",{ref:l,className:"fixed z-50",style:ne,children:[Te,De]}),document.body),e[37]=ne,e[38]=Te,e[39]=De,e[40]=ze):ze=e[40],ze}function Ul(n,e){return r.jsx("div",{className:"oc-chat-comment-rect absolute",style:{left:n.left,top:n.top,width:n.width,height:n.height}},e)}function Kl(){Ko()}function Hl(n){return n.trim()}function ql(n){const e=n.trim();return[e,e.slice(0,32),e.split(" ").slice(0,4).join(" ")].filter(Gl)}function Gl(n){return n.length>=8}function Xl(n){return n.addDraft}function Jl(n){return n.newSessionDraft?.open}function Yl(n){return n.currentSessionId}const Zl=(n,e)=>{if(!e)return null;const t=Number.parseInt(n.trim(),10);return!Number.isFinite(t)||t<1?null:Math.min(t,e.state.doc.lines)},Wi=(n,e)=>{const t=n.state.doc.lineAt(e.main.head);return{lineNumber:t.number,character:e.main.head-t.from+1,selection:e}},Ui=(n,e,t)=>{const a=n.state.doc.line(e),w=Math.max(1,Math.min(t,a.length+1)),f=a.from+w-1;n.dispatch({selection:Fl.cursor(f),effects:Lt.scrollIntoView(f,{y:"center"})})};function Ql({open:n,onOpenChange:e,view:t,variant:a="overlay"}){const{t:w}=st(),[f,v]=i.useState(""),d=i.useRef(null),x=i.useRef(!1),g=i.useRef(null),m=i.useRef(null),b=i.useMemo(()=>Zl(f,t),[f,t]);i.useEffect(()=>{!n||!t||(x.current=!1,d.current=Wi(t,t.state.selection),v(""))},[n,t]),i.useEffect(()=>{n&&window.requestAnimationFrame(()=>{m.current?.focus(),m.current?.select()})},[n]),i.useEffect(()=>{if(!(!n||!t||!d.current)){if(b===null){const{selection:p}=d.current;t.dispatch({selection:p,effects:Lt.scrollIntoView(p.main.from,{y:"center"})});return}Ui(t,b,d.current.character)}},[b,n,t]);const y=i.useCallback(()=>{if(!t||x.current||!d.current)return;const{selection:p}=d.current;t.dispatch({selection:p,effects:Lt.scrollIntoView(p.main.from,{y:"center"})})},[t]),C=i.useCallback(p=>{p||y(),e(p)},[e,y]),N=i.useCallback(()=>{!t||b===null||!d.current||(x.current=!0,Ui(t,b,d.current.character),e(!1),t.focus())},[b,e,t]);i.useEffect(()=>{if(!n)return;const p=T=>{const R=g.current,M=T.target;!R||!(M instanceof Node)||R.contains(M)||C(!1)},l=T=>{T.key==="Escape"&&(T.preventDefault(),C(!1))};return document.addEventListener("pointerdown",p,!0),document.addEventListener("keydown",l,!0),()=>{document.removeEventListener("pointerdown",p,!0),document.removeEventListener("keydown",l,!0)}},[C,n,a]);const F=i.useMemo(()=>{if(!t)return w("goToLineDialog.helper.editorUnavailable");if(b===null){const p=d.current??Wi(t,t.state.selection);return w("goToLineDialog.helper.currentLineRange",{current:p.lineNumber,max:t.state.doc.lines})}return w("goToLineDialog.helper.goToLine",{line:b})},[b,w,t]);return a==="inline"?n?r.jsxs("div",{ref:g,className:"ml-1 flex h-6 items-center gap-1",children:[r.jsx(Fs,{ref:m,type:"number",min:1,step:1,inputMode:"numeric",value:f,onChange:p=>v(p.target.value),onKeyDown:p=>{p.key==="Enter"&&(p.preventDefault(),N())},placeholder:w("goToLineDialog.field.linePlaceholderShort"),className:"h-6 w-20 rounded-md border-border/70 bg-transparent px-2 typography-meta"}),r.jsx(I,{variant:"outline",size:"xs",onClick:N,disabled:!t||b===null,className:"h-6 px-2",children:w("goToLineDialog.actions.go")})]}):null:r.jsx("div",{ref:g,className:W("absolute left-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",n?"pointer-events-auto translate-y-0 opacity-100":"pointer-events-none -translate-y-1 opacity-0"),children:r.jsxs("div",{className:"min-w-0",children:[r.jsx(Fs,{ref:m,type:"number",min:1,step:1,inputMode:"numeric",value:f,onChange:p=>v(p.target.value),onKeyDown:p=>{p.key==="Enter"&&(p.preventDefault(),N())},placeholder:w("goToLineDialog.field.linePlaceholder"),className:"h-8 w-full rounded-md border-border/70 bg-surface-elevated/60 typography-ui-label"}),r.jsx("div",{className:"mt-2 rounded-md bg-primary/15 px-3 py-1.5 typography-ui-label text-foreground/95",children:F})]})})}const ec=(n,e)=>{const t=e.trim().toLowerCase(),a=[];if(!t)return a;const w=n.toLowerCase();let f=0;for(;;){const v=w.indexOf(t,f);if(v===-1)break;a.push({start:v,end:v+t.length}),f=v+t.length}return a},mr="data-md-find",Jr="data-md-find-current",ca="rounded-[2px] bg-status-warning/30 text-foreground",tc="rounded-[2px] bg-status-warning/60 text-foreground",sc=120,rc=n=>n instanceof Element&&n.hasAttribute(mr),nc=n=>n.target instanceof Element&&n.target.hasAttribute(mr)?!0:[...n.addedNodes].some(e=>rc(e)),ua=n=>{const e=new Set;n.querySelectorAll(`mark[${mr}]`).forEach(t=>{const a=t.parentNode;a&&(a.replaceChild(document.createTextNode(t.textContent??""),t),e.add(a))}),e.forEach(t=>t.normalize())},ic=(n,e)=>{ua(n);const t=e.trim().toLowerCase();if(!t)return[];const a=[],w=document.createTreeWalker(n,NodeFilter.SHOW_TEXT,{acceptNode(v){const d=v.parentElement;return!d||d.closest("svg, script, style")?NodeFilter.FILTER_REJECT:NodeFilter.FILTER_ACCEPT}}),f=[];for(;w.nextNode();){const v=w.currentNode;v instanceof Text&&f.push(v)}for(const v of f){const d=v.nodeValue??"";if(!d)continue;const x=ec(d,t);if(x.length===0)continue;const g=v.parentNode;if(!g)continue;const m=document.createDocumentFragment();let b=0;for(const y of x){y.start>b&&m.appendChild(document.createTextNode(d.slice(b,y.start)));const C=document.createElement("mark");C.setAttribute(mr,""),C.className=ca,C.textContent=d.slice(y.start,y.end),m.appendChild(C),a.push(C),b=y.end}b<d.length&&m.appendChild(document.createTextNode(d.slice(b))),g.replaceChild(m,v)}return a},Ki=({containerRef:n,open:e,onOpenChange:t,focusNonce:a,className:w})=>{const{t:f}=st(),[v,d]=i.useState(""),[x,g]=i.useState(0),[m,b]=i.useState(0),y=i.useRef(null),C=i.useRef([]),N=i.useRef(v);N.current=v;const F=i.useRef(null),p=i.useRef(null),l=i.useCallback((k,V=!1)=>{const z=n.current;if(!z){C.current=[],g(0),b(0);return}C.current=ic(z,k);const B=C.current.length;g(B),b(U=>!V||B===0?0:Math.min(U,B-1))},[n]),T=i.useCallback((k,V=!1)=>{F.current&&clearTimeout(F.current),F.current=setTimeout(()=>{F.current=null,l(k,V)},sc)},[l]);i.useEffect(()=>()=>{F.current&&clearTimeout(F.current)},[]);const R=i.useCallback(()=>{t(!1);const k=p.current;p.current=null,k?.isConnected&&k.focus()},[t]);i.useEffect(()=>{const k=n.current;if(!e||!k)return;const V=new MutationObserver(z=>{!N.current.trim()||!z.some(U=>!nc(U))||T(N.current,!0)});return V.observe(k,{childList:!0,subtree:!0,characterData:!0}),()=>{V.disconnect(),ua(k)}},[n,e,T]),i.useEffect(()=>{if(!e)return;const k=document.activeElement;k instanceof HTMLElement&&!p.current&&(p.current=k),y.current?.focus()},[e]),i.useEffect(()=>{e&&a>0&&(y.current?.focus(),y.current?.select())},[e,a]),i.useEffect(()=>{const k=n.current;if(!k||(k.querySelectorAll(`mark[${Jr}]`).forEach(z=>{z.removeAttribute(Jr),z.className=ca}),x===0))return;const V=C.current[Math.min(Math.max(m,0),x-1)];V&&(V.setAttribute(Jr,""),V.className=tc,V.scrollIntoView({block:"nearest"}))},[n,m,x]);const M=i.useCallback(()=>{b(k=>x===0?0:(k+1)%x)},[x]),D=i.useCallback(()=>{b(k=>x===0?0:(k-1+x)%x)},[x]),L=i.useCallback(k=>{k.key==="Enter"?(k.preventDefault(),k.shiftKey?D():M()):k.key==="Escape"&&(k.preventDefault(),R())},[R,M,D]);return e?r.jsxs("div",{className:W("absolute right-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",w),children:[r.jsx(E,{name:"search",className:"ml-0.5 size-3.5 text-muted-foreground"}),r.jsx(Fs,{ref:y,value:v,onChange:k=>{d(k.target.value),T(k.target.value)},onKeyDown:L,placeholder:f("filesView.preview.find.placeholder"),"aria-label":f("filesView.preview.find.placeholder"),className:"h-7 w-40 rounded-md px-2 py-0 text-sm md:w-56"}),r.jsx("span",{className:"min-w-12 px-1 text-center typography-micro text-muted-foreground tabular-nums","aria-live":"polite","aria-label":x>0?f("filesView.preview.find.countAria",{current:m+1,total:x}):f("filesView.preview.find.noMatches"),children:v.trim()&&x===0?f("filesView.preview.find.noMatches"):x>0?`${m+1}/${x}`:""}),r.jsx(I,{type:"button",variant:"ghost",size:"sm",className:"size-6 p-0 text-muted-foreground",onClick:D,title:f("filesView.preview.find.previousAria"),"aria-label":f("filesView.preview.find.previousAria"),disabled:x===0,children:r.jsx(E,{name:"arrow-up",className:"size-3.5"})}),r.jsx(I,{type:"button",variant:"ghost",size:"sm",className:"size-6 p-0 text-muted-foreground",onClick:M,title:f("filesView.preview.find.nextAria"),"aria-label":f("filesView.preview.find.nextAria"),disabled:x===0,children:r.jsx(E,{name:"arrow-down",className:"size-3.5"})}),r.jsx(I,{type:"button",variant:"ghost",size:"sm",className:"size-6 p-0 text-muted-foreground",onClick:R,title:f("filesView.preview.find.closeAria"),"aria-label":f("filesView.preview.find.closeAria"),children:r.jsx(E,{name:"close",className:"size-3.5"})})]}):null},ac=n=>{let e=!0;return{poll:async()=>{if(!e||n.isDirty())return!1;const t=n.getLoadedContent(),a=n.getLoadedRevision();try{const w=await n.readContent();if(!e||n.isDirty()||a!==n.getLoadedRevision())return!1;if(w===t)return!0;const f=await n.readContent();return!e||n.isDirty()||f!==w||a!==n.getLoadedRevision()?!1:(n.applyContent(w),!0)}catch{return!1}},dispose:()=>{e=!1}}},oc=1,lc=(n,e)=>e.size!==n.size||e.mtimeMs!==void 0&&n.mtimeMs!==void 0&&Math.abs(e.mtimeMs-n.mtimeMs)>=oc;function Hi(){const n=Re.c(8),[e]=ht.useState(cc),t=ht.useRef(!1);let a;n[0]!==e?(a=x=>{if(x==null){e.cleanUp(),t.current=!1;return}t.current||(t.current=!0,e.setup(x,x.firstElementChild??void 0))},n[0]=e,n[1]=a):a=n[1];const w=a;let f,v;n[2]!==e?(f=()=>()=>{t.current=!1,e.cleanUp()},v=[e],n[2]=e,n[3]=f,n[4]=v):(f=n[3],v=n[4]),ht.useLayoutEffect(f,v);let d;return n[5]!==w||n[6]!==e?(d={virtualizer:e,setScroller:w},n[5]=w,n[6]=e,n[7]=d):d=n[7],d}function cc(){return new Pl}const rs=new Map,uc=100;function lr(n){const[e,t]=ht.useState(null),a=ht.useRef(null),w=ht.useRef(null),f=ht.useRef(null),v=ht.useCallback((d,x)=>{d&&x instanceof Cl&&(f.current={key:n,file:x,node:d});const g=a.current,m=w.current,b=()=>{a.current===g&&(g?.(),m?.())};x?queueMicrotask(b):b()},[n]);return ht.useLayoutEffect(()=>{if(!e||!n)return;const d=rs.get(n)??{top:0,left:0};let x=!0;const g=()=>f.current?.key===n?f.current.file:null,m=l=>f.current?.key===n?f.current.node.shadowRoot?.querySelector(`[data-line][data-line-index="${l-1}"]`):null,b=()=>{C.disconnect(),N.disconnect()},y=()=>{if(!x)return;const l=g(),T=d.line&&l?.getLinePosition(d.line.number),R=d.line&&m(d.line.number);let M=d.top;d.line&&T&&(M=(l?.top??0)+T.top-d.line.offset),d.line&&R&&(M=e.scrollTop+R.getBoundingClientRect().top-e.getBoundingClientRect().top-d.line.offset),e.scrollTop=M,e.scrollLeft=d.left,(!d.line||R)&&Math.abs(e.scrollTop-M)<1&&Math.abs(e.scrollLeft-d.left)<1&&(x=!1,b())},C=new ResizeObserver(y),N=new MutationObserver(()=>{if(x){for(const l of e.children)C.observe(l);y()}});C.observe(e);for(const l of e.children)C.observe(l);N.observe(e,{childList:!0,subtree:!0});const F=()=>{if(x)return;const l=g(),T=l?.getNumericScrollAnchor(e.scrollTop-(l.top??0)),R=T&&m(T.lineNumber),M=R?R.getBoundingClientRect().top-e.getBoundingClientRect().top:null;if(rs.delete(n),rs.set(n,{top:e.scrollTop,left:e.scrollLeft,line:T&&M!==null&&M>=0&&M<e.clientHeight?{number:T.lineNumber,offset:M}:void 0}),rs.size>uc){const D=rs.keys().next().value;D!==void 0&&rs.delete(D)}},p=()=>{x=!1,b()};return a.current=y,w.current=F,y(),e.addEventListener("scroll",F,{passive:!0}),e.addEventListener("wheel",p,{passive:!0}),e.addEventListener("touchstart",p,{passive:!0}),e.addEventListener("pointerdown",p,{passive:!0}),e.addEventListener("keydown",p),()=>{a.current=null,w.current=null,f.current?.key===n&&(f.current=null),b(),e.removeEventListener("scroll",F),e.removeEventListener("wheel",p),e.removeEventListener("touchstart",p),e.removeEventListener("pointerdown",p),e.removeEventListener("keydown",p)}},[n,e]),{setScroller:t,restore:v}}function dc(n){return!(!n.autoSaveEnabled||!n.isDirty||!n.canWrite||n.isSaving||n.fileLoading||n.isNonEditableBinary||!n.selectedFilePath||n.loadedFilePath!==n.selectedFilePath)}function fc(n){return n.selectedFilePath?n.isDirty?!(n.fileLoading||n.loadedFilePath!==n.selectedFilePath||n.isNonEditableBinary||n.draftContent===""&&n.fileContent!==""&&n.loadedFilePath!==n.selectedFilePath):!0:!1}const da=2e5,mc=n=>{let e=0,t=0;for(let a=0;a<n.length;a++)n.charCodeAt(a)===10&&(a>0&&n.charCodeAt(a-1)===13?e++:t++);return e>t?`\r
@@ -1,4 +1,4 @@
1
- import{R as l,r as ve,j as t,f as jt}from"./vendor-react-BUCujlKS.js";import{f as nt,z as rt,a7 as Bt,kZ as _n,dy as qt,cI as Yt,t as v,I as T,as as Ls,at as Os,au as Rr,av as As,d4 as zs,d5 as Gs,d6 as _s,d7 as $s,c$ as Qt,d0 as Xt,B as W,k_ as $n,k$ as Hn,c2 as mt,c3 as ht,c4 as gt,c5 as ft,c6 as bt,X as gr,ae as Zt,af as es,ag as ts,l0 as Wn,h as Se,l1 as Un,l2 as Kn,l3 as Jn,l4 as qn,bh as Yn,ay as Qn,ce as Xn,l5 as Zn,l6 as ea,l7 as ta,l8 as sa,l9 as ra,la as na,lb as aa,c8 as Br,cj as ia,ck as oa,cl as la,cm as ca,cn as da,cr as ua,ch as ma,cg as ha,lc as ga,cq as fa,c7 as Ts,fl as pa,_ as xa,ai as wa,aj as ya,J as ba,ak as va,bO as ja,ld as Ca,al as Na,le as Sa,lf as ka,am as Va,lg as Ia,K as Pa,cc as Fa,k2 as Ra,lh as Ba,l as Da,cs as Ea,g as Ma,d9 as Ta,ar as fr,a9 as La,li as Oa,lj as Ds}from"./useAppFontEffects-Ci3FEaPf.js";import{a as Aa,b as za}from"./main-oreqDsOV.js";import{ao as Ga,X as _a,k as $a,au as Ha}from"./runtimeEndpointReset-CsIpUep1.js";import{u as pr}from"./vendor-zustand-BAGL70zf.js";import{h as Wa,u as Ft}from"./index-CvLgnuNI.js";import{C as Ua,a as Ka,D as Ja,p as xr}from"./commitAndPush-CwGJfJG-.js";import{P as qa}from"./PierreDiffViewer-DW23KWKZ.js";import"./vendor-scheduler-7OC5HNn7.js";import"./vendor-zod-Gea9uBlY.js";import"./vendor-simplewebauthn-browser-VDA66rT_.js";import"./vendor-vite-runtime-DD1OZmLC.js";import"./vendor-base-ui-CsXYnR5c.js";import"./vendor-floating-ui-utils-D6FqdtJt.js";import"./vendor-floating-ui-react-dom-DxYCWdHj.js";import"./vendor-floating-ui-dom-BTvzWks8.js";import"./vendor-floating-ui-core-PuGzNPnN.js";import"./vendor-use-sync-external-store-D6wYuSt-.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-framer-motion-Bq3iTZ6r.js";import"./vendor-motion-dom-DcCgeG69.js";import"./vendor-motion-utils-BGh8QBgx.js";import"./vendor-tanstack-react-virtual-ClYN8CzB.js";import"./vendor-tanstack-virtual-core-BewVQryB.js";import"./contextPanelEmbeddedChat-CirXEPJq.js";import"./vendor-sonner-DFyL3AvE.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-codemirror-language-BgPj_McA.js";import"./vendor-lezer-common-B3-cUCR_.js";import"./vendor-codemirror-state-C9awkmn-.js";import"./vendor-marijn-find-cluster-break-DXwl3gUT.js";import"./vendor-codemirror-view-CiLROUVV.js";import"./vendor-style-mod-NZ5MEPvj.js";import"./vendor-w3c-keyname-Vcq4gwWv.js";import"./vendor-crelt-C8TCjufn.js";import"./vendor-lezer-highlight-CDMHUZ74.js";import"./vendor-codemirror-lang-javascript-Cc2ZYbgX.js";import"./vendor-lezer-javascript-D7Tj24ot.js";import"./vendor-lezer-lr-bhwg1HMg.js";import"./vendor-codemirror-autocomplete-DzPz9Wgq.js";import"./vendor-codemirror-lang-json-CMBS2tG9.js";import"./vendor-lezer-json-Iaex0UN-.js";import"./vendor-codemirror-lang-css-O0cZX78y.js";import"./vendor-lezer-css-C5xB6jxd.js";import"./vendor-codemirror-lang-html-CfgK872x.js";import"./vendor-lezer-html-C0I1p52t.js";import"./vendor-codemirror-lang-markdown-BPGOH9ye.js";import"./vendor-lezer-markdown-C6g-d6P3.js";import"./vendor-codemirror-language-data-CQa7_1cr.js";import"./vendor-codemirror-lang-python-HahnQaAS.js";import"./vendor-lezer-python-CvuFxeZl.js";import"./vendor-codemirror-commands-B7H_j0iU.js";import"./vendor-legendapp-list-BuBPBC3R.js";import"./vendor-tailwind-merge-CPcsbTWB.js";import"./vendor-fuse.js-Dw8P0qyA.js";import"./vendor-katex-CHD9BdDO.js";import"./useRootScrollLock-CQIsyERq.js";import"./scheduledTasksApi-B5OHVpPM.js";import"./PluginPane-BPP1dbck.js";import"./vendor-cron-parser-CjvYVigk.js";import"./vendor-luxon-BZ0puJYg.js";import"./GuestAttachDialog-DdOuyZzp.js";import"./vendor-opencode-client-_BAHQo4R.js";import"./web-components-B6tKQyJN.js";import"./computeVirtualFileMetrics-DW5jjX4n.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-BmJyTmjJ.js";import"./vendor-pierre-theming-C6Z4M5_u.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"./VirtualizedFileDiff-C763hNCR.js";import"./isDiffPlainText-D47a6hMP.js";import"./vendor-diff-C3JhlQdm.js";import"./Virtualizer-D_a8gKmg.js";import"./useInlineCommentController-CuUuakrt.js";import"./appThemeRegistry-u4zw1l0B.js";import"./textMateThemeFromAppTheme-DGF2kG7g.js";const Dr="gitmojiCache",Ya=1e3*60*60*24*7,Er="1",Qa="https://raw.githubusercontent.com/carloscuesta/gitmoji/master/packages/gitmojis/src/gitmojis.json",Mr=o=>{if(!o||typeof o!="object")return!1;const e=o;return typeof e.emoji=="string"&&typeof e.code=="string"&&typeof e.description=="string"},Es=()=>{if(typeof window>"u")return null;try{const o=window.localStorage.getItem(Dr);if(!o)return null;const e=JSON.parse(o);return!e||e.version!==Er||typeof e.fetchedAt!="number"||!Array.isArray(e.gitmojis)?null:{gitmojis:e.gitmojis.filter(Mr),fetchedAt:e.fetchedAt,version:e.version}}catch{return null}},Xa=o=>{if(!(typeof window>"u"))try{const e={gitmojis:o,fetchedAt:Date.now(),version:Er};window.localStorage.setItem(Dr,JSON.stringify(e))}catch{return}},wr=o=>Date.now()-o.fetchedAt<Ya;let Kt=null;const Rt=new Set,yr=async()=>{if(Kt)return Kt;const o=(async()=>{try{const e=await fetch(Qa);if(!e.ok)throw new Error(`Failed to load gitmojis: ${e.statusText}`);const i=await e.json(),m=Array.isArray(i.gitmojis)?i.gitmojis.filter(Mr):[];return Xa(m),Rt.forEach(N=>N(m)),m}catch(e){console.warn("Failed to load gitmoji list:",e);const i=[];return Rt.forEach(m=>m(i)),i}finally{Kt=null}})();return Kt=o,o},Za=o=>{const[e,i]=l.useState(()=>o?Es()?.gitmojis??[]:[]),[m,N]=l.useState(!1),f=l.useRef(o);f.current=o,l.useEffect(()=>{if(!o){Rt.delete(i),i([]),N(!1);return}const x=Es();if(x&&(i(x.gitmojis),wr(x)))return;Rt.add(i),N(!0);let g=!1;return yr().finally(()=>{!g&&f.current&&N(!1)}),()=>{g=!0,Rt.delete(i)}},[o]);const p=l.useCallback(async()=>{if(!f.current)return[];if(e.length>0)return e;const x=Es();return x&&wr(x)?x.gitmojis:yr()},[e]);return{gitmojis:e,isLoading:m,ensureLoaded:p}},Ct=async(o,e)=>{const i=await Wa(`/api/git/integrate/${o}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});if(!i.ok){const m=await i.json().catch(()=>null);throw new Error(m?.error||`Git integrate request failed: ${i.statusText}`)}return i.json()};async function Pt(o){return Ct("plan",o)}async function ei(o){return Ct("conflict-details",{tempWorktreePath:o})}async function ti(o){return(await Ct("cherry-pick-status",{tempWorktreePath:o})).inProgress}async function si(o){return Ct("run",{plan:o})}async function ri(o){await Ct("abort",{state:o})}async function ni(o){return Ct("continue",{state:o})}const ai=({repoRoot:o,sourceBranch:e,worktreeMetadata:i,localBranches:m,defaultTargetBranch:N,refreshKey:f,onRefresh:p,showHeader:x=!0})=>{const{t:g}=nt(),w=rt(h=>h.currentSessionId),[E,b]=ve.useState(!1),[V,O]=ve.useState(""),S=ve.useRef(null),z=ve.useMemo(()=>Bt(m,V,h=>[h]),[m,V]),[C,y]=ve.useState(N);ve.useEffect(()=>{y(N)},[N]),ve.useEffect(()=>{if(E){const h=setTimeout(()=>{S.current?.focus()},0);return()=>clearTimeout(h)}},[E]);const D=!!(o&&e&&C&&C!=="HEAD"&&e!==C),[k,R]=ve.useState({kind:"idle"}),[P,F]=ve.useState(!1),[r,Y]=ve.useState([]),B=ve.useMemo(()=>w?`openchamber.integrate.conflict:${w}`:null,[w]);ve.useEffect(()=>{if(!B||typeof window>"u")return;const h=window.localStorage.getItem(B);if(!h)return;let d=!1;try{const I=JSON.parse(h);if(!I?.tempWorktreePath||I.repoRoot!==o){window.localStorage.removeItem(B);return}(async()=>{const A=await ti(I.tempWorktreePath).catch(()=>!1);if(d)return;if(!A){window.localStorage.removeItem(B);return}const q=await ei(I.tempWorktreePath).catch(()=>null);d||q&&R({kind:"conflict",state:I,details:q})})()}catch{window.localStorage.removeItem(B)}return()=>{d=!0}},[B,o]),ve.useEffect(()=>{if(!D){R({kind:"idle"});return}let h=!1;return R({kind:"loading"}),(async()=>{try{const d=await Pt({repoRoot:o,sourceBranch:e,targetBranch:C});if(h)return;if(R({kind:"ready",plan:d}),d.commits.length>0){const A=d.commits.slice(-50).reverse(),q=await _n(o,A);h||(Y(q),F(!1))}else h||(Y([]),F(!1))}catch{h||R({kind:"idle"})}})(),()=>{h=!0}},[D,o,e,C,f]);const u=ve.useCallback(h=>{w&&rt.getState().setWorktreeMetadata(w,{...i,createdFromBranch:h})},[w,i]),M=rt(h=>h.openNewSessionDraft),te=ve.useCallback(async h=>{const d=await qt("git.integrate.cherrypick.resolve.visible",{current_commit:h.state.currentCommit,target_branch:h.state.targetBranch}),I=await qt("git.integrate.cherrypick.resolve.instructions",{repo_root:h.state.repoRoot,temp_worktree_path:h.state.tempWorktreePath,source_branch:h.state.sourceBranch,target_branch:h.state.targetBranch,current_commit:h.state.currentCommit}),A=`Cherry-pick conflict context (JSON)
1
+ import{R as l,r as ve,j as t,f as jt}from"./vendor-react-BUCujlKS.js";import{f as nt,z as rt,a7 as Bt,kZ as _n,dy as qt,cI as Yt,t as v,I as T,as as Ls,at as Os,au as Rr,av as As,d4 as zs,d5 as Gs,d6 as _s,d7 as $s,c$ as Qt,d0 as Xt,B as W,k_ as $n,k$ as Hn,c2 as mt,c3 as ht,c4 as gt,c5 as ft,c6 as bt,X as gr,ae as Zt,af as es,ag as ts,l0 as Wn,h as Se,l1 as Un,l2 as Kn,l3 as Jn,l4 as qn,bh as Yn,ay as Qn,ce as Xn,l5 as Zn,l6 as ea,l7 as ta,l8 as sa,l9 as ra,la as na,lb as aa,c8 as Br,cj as ia,ck as oa,cl as la,cm as ca,cn as da,cr as ua,ch as ma,cg as ha,lc as ga,cq as fa,c7 as Ts,fl as pa,_ as xa,ai as wa,aj as ya,J as ba,ak as va,bO as ja,ld as Ca,al as Na,le as Sa,lf as ka,am as Va,lg as Ia,K as Pa,cc as Fa,k2 as Ra,lh as Ba,l as Da,cs as Ea,g as Ma,d9 as Ta,ar as fr,a9 as La,li as Oa,lj as Ds}from"./useAppFontEffects-BxrtCnfR.js";import{a as Aa,b as za}from"./main-B9JFK3vF.js";import{ao as Ga,X as _a,k as $a,au as Ha}from"./runtimeEndpointReset-DKDdzRzm.js";import{u as pr}from"./vendor-zustand-BAGL70zf.js";import{h as Wa,u as Ft}from"./index-CvLgnuNI.js";import{C as Ua,a as Ka,D as Ja,p as xr}from"./commitAndPush-D7D8qV8p.js";import{P as qa}from"./PierreDiffViewer-C_1S9c9n.js";import"./vendor-scheduler-7OC5HNn7.js";import"./vendor-zod-Gea9uBlY.js";import"./vendor-simplewebauthn-browser-VDA66rT_.js";import"./vendor-vite-runtime-DD1OZmLC.js";import"./vendor-base-ui-CsXYnR5c.js";import"./vendor-floating-ui-utils-D6FqdtJt.js";import"./vendor-floating-ui-react-dom-DxYCWdHj.js";import"./vendor-floating-ui-dom-BTvzWks8.js";import"./vendor-floating-ui-core-PuGzNPnN.js";import"./vendor-use-sync-external-store-D6wYuSt-.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-framer-motion-Bq3iTZ6r.js";import"./vendor-motion-dom-DcCgeG69.js";import"./vendor-motion-utils-BGh8QBgx.js";import"./vendor-tanstack-react-virtual-ClYN8CzB.js";import"./vendor-tanstack-virtual-core-BewVQryB.js";import"./contextPanelEmbeddedChat-CirXEPJq.js";import"./vendor-sonner-DFyL3AvE.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-codemirror-language-BgPj_McA.js";import"./vendor-lezer-common-B3-cUCR_.js";import"./vendor-codemirror-state-C9awkmn-.js";import"./vendor-marijn-find-cluster-break-DXwl3gUT.js";import"./vendor-codemirror-view-CiLROUVV.js";import"./vendor-style-mod-NZ5MEPvj.js";import"./vendor-w3c-keyname-Vcq4gwWv.js";import"./vendor-crelt-C8TCjufn.js";import"./vendor-lezer-highlight-CDMHUZ74.js";import"./vendor-codemirror-lang-javascript-Cc2ZYbgX.js";import"./vendor-lezer-javascript-D7Tj24ot.js";import"./vendor-lezer-lr-bhwg1HMg.js";import"./vendor-codemirror-autocomplete-DzPz9Wgq.js";import"./vendor-codemirror-lang-json-CMBS2tG9.js";import"./vendor-lezer-json-Iaex0UN-.js";import"./vendor-codemirror-lang-css-O0cZX78y.js";import"./vendor-lezer-css-C5xB6jxd.js";import"./vendor-codemirror-lang-html-CfgK872x.js";import"./vendor-lezer-html-C0I1p52t.js";import"./vendor-codemirror-lang-markdown-BPGOH9ye.js";import"./vendor-lezer-markdown-C6g-d6P3.js";import"./vendor-codemirror-language-data-DOuaQUZ0.js";import"./vendor-codemirror-lang-python-HahnQaAS.js";import"./vendor-lezer-python-CvuFxeZl.js";import"./vendor-codemirror-commands-B7H_j0iU.js";import"./vendor-legendapp-list-BuBPBC3R.js";import"./vendor-tailwind-merge-CPcsbTWB.js";import"./vendor-fuse.js-Dw8P0qyA.js";import"./vendor-katex-CHD9BdDO.js";import"./useRootScrollLock-DgWxezc1.js";import"./scheduledTasksApi-C5sCuNqf.js";import"./PluginPane-sM8fcZIV.js";import"./vendor-cron-parser-CjvYVigk.js";import"./vendor-luxon-BZ0puJYg.js";import"./GuestAttachDialog-CYwWYLr3.js";import"./vendor-opencode-client-_BAHQo4R.js";import"./web-components-63H1h21j.js";import"./computeVirtualFileMetrics-cq9uQ30i.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-BmJyTmjJ.js";import"./vendor-pierre-theming-C6Z4M5_u.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"./VirtualizedFileDiff-DSWTLJNH.js";import"./isDiffPlainText-D0obJ2p8.js";import"./vendor-diff-C3JhlQdm.js";import"./Virtualizer-D_a8gKmg.js";import"./useInlineCommentController-CeXuR-SR.js";import"./appThemeRegistry-B5tHTkR8.js";import"./textMateThemeFromAppTheme-BZLGuYTU.js";const Dr="gitmojiCache",Ya=1e3*60*60*24*7,Er="1",Qa="https://raw.githubusercontent.com/carloscuesta/gitmoji/master/packages/gitmojis/src/gitmojis.json",Mr=o=>{if(!o||typeof o!="object")return!1;const e=o;return typeof e.emoji=="string"&&typeof e.code=="string"&&typeof e.description=="string"},Es=()=>{if(typeof window>"u")return null;try{const o=window.localStorage.getItem(Dr);if(!o)return null;const e=JSON.parse(o);return!e||e.version!==Er||typeof e.fetchedAt!="number"||!Array.isArray(e.gitmojis)?null:{gitmojis:e.gitmojis.filter(Mr),fetchedAt:e.fetchedAt,version:e.version}}catch{return null}},Xa=o=>{if(!(typeof window>"u"))try{const e={gitmojis:o,fetchedAt:Date.now(),version:Er};window.localStorage.setItem(Dr,JSON.stringify(e))}catch{return}},wr=o=>Date.now()-o.fetchedAt<Ya;let Kt=null;const Rt=new Set,yr=async()=>{if(Kt)return Kt;const o=(async()=>{try{const e=await fetch(Qa);if(!e.ok)throw new Error(`Failed to load gitmojis: ${e.statusText}`);const i=await e.json(),m=Array.isArray(i.gitmojis)?i.gitmojis.filter(Mr):[];return Xa(m),Rt.forEach(N=>N(m)),m}catch(e){console.warn("Failed to load gitmoji list:",e);const i=[];return Rt.forEach(m=>m(i)),i}finally{Kt=null}})();return Kt=o,o},Za=o=>{const[e,i]=l.useState(()=>o?Es()?.gitmojis??[]:[]),[m,N]=l.useState(!1),f=l.useRef(o);f.current=o,l.useEffect(()=>{if(!o){Rt.delete(i),i([]),N(!1);return}const x=Es();if(x&&(i(x.gitmojis),wr(x)))return;Rt.add(i),N(!0);let g=!1;return yr().finally(()=>{!g&&f.current&&N(!1)}),()=>{g=!0,Rt.delete(i)}},[o]);const p=l.useCallback(async()=>{if(!f.current)return[];if(e.length>0)return e;const x=Es();return x&&wr(x)?x.gitmojis:yr()},[e]);return{gitmojis:e,isLoading:m,ensureLoaded:p}},Ct=async(o,e)=>{const i=await Wa(`/api/git/integrate/${o}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});if(!i.ok){const m=await i.json().catch(()=>null);throw new Error(m?.error||`Git integrate request failed: ${i.statusText}`)}return i.json()};async function Pt(o){return Ct("plan",o)}async function ei(o){return Ct("conflict-details",{tempWorktreePath:o})}async function ti(o){return(await Ct("cherry-pick-status",{tempWorktreePath:o})).inProgress}async function si(o){return Ct("run",{plan:o})}async function ri(o){await Ct("abort",{state:o})}async function ni(o){return Ct("continue",{state:o})}const ai=({repoRoot:o,sourceBranch:e,worktreeMetadata:i,localBranches:m,defaultTargetBranch:N,refreshKey:f,onRefresh:p,showHeader:x=!0})=>{const{t:g}=nt(),w=rt(h=>h.currentSessionId),[E,b]=ve.useState(!1),[V,O]=ve.useState(""),S=ve.useRef(null),z=ve.useMemo(()=>Bt(m,V,h=>[h]),[m,V]),[C,y]=ve.useState(N);ve.useEffect(()=>{y(N)},[N]),ve.useEffect(()=>{if(E){const h=setTimeout(()=>{S.current?.focus()},0);return()=>clearTimeout(h)}},[E]);const D=!!(o&&e&&C&&C!=="HEAD"&&e!==C),[k,R]=ve.useState({kind:"idle"}),[P,F]=ve.useState(!1),[r,Y]=ve.useState([]),B=ve.useMemo(()=>w?`openchamber.integrate.conflict:${w}`:null,[w]);ve.useEffect(()=>{if(!B||typeof window>"u")return;const h=window.localStorage.getItem(B);if(!h)return;let d=!1;try{const I=JSON.parse(h);if(!I?.tempWorktreePath||I.repoRoot!==o){window.localStorage.removeItem(B);return}(async()=>{const A=await ti(I.tempWorktreePath).catch(()=>!1);if(d)return;if(!A){window.localStorage.removeItem(B);return}const q=await ei(I.tempWorktreePath).catch(()=>null);d||q&&R({kind:"conflict",state:I,details:q})})()}catch{window.localStorage.removeItem(B)}return()=>{d=!0}},[B,o]),ve.useEffect(()=>{if(!D){R({kind:"idle"});return}let h=!1;return R({kind:"loading"}),(async()=>{try{const d=await Pt({repoRoot:o,sourceBranch:e,targetBranch:C});if(h)return;if(R({kind:"ready",plan:d}),d.commits.length>0){const A=d.commits.slice(-50).reverse(),q=await _n(o,A);h||(Y(q),F(!1))}else h||(Y([]),F(!1))}catch{h||R({kind:"idle"})}})(),()=>{h=!0}},[D,o,e,C,f]);const u=ve.useCallback(h=>{w&&rt.getState().setWorktreeMetadata(w,{...i,createdFromBranch:h})},[w,i]),M=rt(h=>h.openNewSessionDraft),te=ve.useCallback(async h=>{const d=await qt("git.integrate.cherrypick.resolve.visible",{current_commit:h.state.currentCommit,target_branch:h.state.targetBranch}),I=await qt("git.integrate.cherrypick.resolve.instructions",{repo_root:h.state.repoRoot,temp_worktree_path:h.state.tempWorktreePath,source_branch:h.state.sourceBranch,target_branch:h.state.targetBranch,current_commit:h.state.currentCommit}),A=`Cherry-pick conflict context (JSON)
2
2
  ${JSON.stringify({repoRoot:h.state.repoRoot,tempWorktreePath:h.state.tempWorktreePath,sourceBranch:h.state.sourceBranch,targetBranch:h.state.targetBranch,currentCommit:h.state.currentCommit,remainingCommits:h.state.remainingCommits,statusPorcelain:h.details.statusPorcelain,unmergedFiles:h.details.unmergedFiles,currentPatchMeta:h.details.currentPatchMeta,currentPatch:h.details.currentPatch,diff:h.details.diff},null,2)}`;return{visibleText:d,instructionsText:I,payloadText:A}},[]),U=Yt(h=>h.setPendingInputText),G=Yt(h=>h.setPendingSyntheticParts),_=ve.useCallback(async(h,d)=>{const I=await te(h);if(d){M({directoryOverride:h.state.tempWorktreePath,initialPrompt:I.visibleText,syntheticParts:[{text:I.instructionsText,synthetic:!0},{text:I.payloadText,synthetic:!0}]});return}if(!w){v.error(g("gitView.integrate.noActiveSession"),{description:g("gitView.integrate.noActiveSessionDescription")});return}U(I.visibleText,"replace"),G([{text:I.instructionsText,synthetic:!0},{text:I.payloadText,synthetic:!0}])},[w,te,M,U,G,g]),X=ve.useCallback(async()=>{if(k.kind==="ready"){if(k.plan.commits.length===0){v.message(g("gitView.integrate.noCommitsToMoveToast"));return}R({kind:"running",plan:k.plan});try{const h=await si(k.plan);if(h.kind==="success"){v.success(g("gitView.integrate.commitsMovedToast"),{description:h.moved===1?g("gitView.integrate.commitsMovedDescriptionSingle",{count:h.moved,branch:k.plan.targetBranch}):g("gitView.integrate.commitsMovedDescriptionPlural",{count:h.moved,branch:k.plan.targetBranch})});const d=await Pt(k.plan);R({kind:"ready",plan:d}),p?.();return}h.kind==="conflict"&&(v.error(g("gitView.integrate.cherryPickConflictToast"),{description:g("gitView.integrate.cherryPickConflictDescription")}),R({kind:"conflict",state:h.state,details:h.details}),B&&typeof window<"u"&&window.localStorage.setItem(B,JSON.stringify(h.state)))}catch(h){const d=h instanceof Error?h.message:String(h);v.error(g("gitView.integrate.failedToMoveToast"),{description:d});const I=await Pt({repoRoot:o,sourceBranch:e,targetBranch:C}).catch(()=>null);R(I?{kind:"ready",plan:I}:{kind:"idle"})}}},[k,p,o,e,C,B,g]),$=ve.useCallback(async()=>{if(k.kind==="conflict")try{await ri(k.state),v.message(g("gitView.integrate.cherryPickAbortedToast")),B&&typeof window<"u"&&window.localStorage.removeItem(B)}finally{const h=await Pt({repoRoot:o,sourceBranch:e,targetBranch:C}).catch(()=>null);R(h?{kind:"ready",plan:h}:{kind:"idle"})}},[k,o,e,C,B,g]),le=ve.useCallback(async()=>{if(k.kind==="conflict")try{const h=await ni(k.state);if(h.kind==="success"){v.success(g("gitView.integrate.cherryPickFinishedToast"));const d=await Pt({repoRoot:o,sourceBranch:e,targetBranch:C}).catch(()=>null);R(d?{kind:"ready",plan:d}:{kind:"idle"}),B&&typeof window<"u"&&window.localStorage.removeItem(B),p?.();return}h.kind==="conflict"&&(R({kind:"conflict",state:h.state,details:h.details}),B&&typeof window<"u"&&window.localStorage.setItem(B,JSON.stringify(h.state)))}catch(h){const d=h instanceof Error?h.message:String(h);v.error(g("gitView.integrate.cherryPickContinueFailedToast"),{description:d})}},[k,o,e,C,p,B,g]);return!o||!e?null:t.jsxs("section",{className:"border-0 bg-transparent rounded-none",children:[x?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(T,{name:"split-cells-horizontal",className:"size-4 text-muted-foreground"}),t.jsx("h3",{className:"typography-ui-header font-semibold text-foreground truncate",children:g("gitView.integrate.title")}),k.kind==="ready"&&k.plan.commits.length>0?t.jsx("span",{className:"typography-meta text-muted-foreground truncate",children:g("gitView.integrate.toMoveCount",{count:k.plan.commits.length})}):null]}),t.jsx("div",{className:"flex items-center gap-2",children:k.kind==="loading"||k.kind==="running"?t.jsx(T,{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:g("gitView.integrate.moveCommits")}),t.jsxs("div",{className:"typography-micro text-muted-foreground truncate",children:[e," → ",C]})]}),t.jsx("div",{className:"flex-1"}),t.jsxs(Ls,{open:E,onOpenChange:b,children:[t.jsx(Os,{asChild:!0,children:t.jsxs("button",{type:"button",className:Rr({size:"default"}),children:[g("gitView.integrate.target"),t.jsx("span",{className:"max-w-[160px] truncate font-mono text-xs text-muted-foreground",children:C}),t.jsx(T,{name:"arrow-down-s",className:"size-4 opacity-60"})]})}),t.jsx(As,{align:"end",className:"w-72 p-0 max-h-[var(--available-height)] flex flex-col overflow-hidden",children:t.jsxs(zs,{className:"h-full min-h-0",shouldFilter:!1,children:[t.jsx(Gs,{ref:S,placeholder:g("gitView.branch.searchPlaceholder"),value:V,onValueChange:O,onKeyDown:h=>h.stopPropagation()}),t.jsxs(_s,{className:"h-full min-h-0",scrollbarClassName:"overlay-scrollbar--flush overlay-scrollbar--dense overlay-scrollbar--zero",disableHorizontal:!0,children:[t.jsx($s,{children:g("gitView.branch.empty")}),t.jsx(Qt,{heading:g("gitView.branch.localBranches"),children:z.map(h=>t.jsx(Xt,{value:h,onSelect:()=>{y(h),u(h),b(!1),O("")},children:h},h))})]})]})})]}),k.kind==="ready"?t.jsx(W,{size:"sm",onClick:()=>{X()},disabled:!D||k.plan.commits.length===0,children:g("gitView.integrate.move")}):k.kind==="loading"?t.jsx(W,{size:"sm",variant:"outline",disabled:!0,children:g("gitView.integrate.checking")}):k.kind==="running"?t.jsx(W,{size:"sm",variant:"outline",disabled:!0,children:g("gitView.integrate.moving")}):null]}),k.kind==="ready"&&k.plan.commits.length===0&&t.jsx("div",{className:"typography-meta text-muted-foreground",children:g("gitView.integrate.noCommitsToMove")}),k.kind==="ready"&&k.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:[g("gitView.integrate.commitsToMove"),t.jsxs("span",{className:"text-muted-foreground",children:[" (",k.plan.commits.length,")"]})]}),r.length>0&&k.plan.commits.length>5&&t.jsx("button",{type:"button",onClick:()=>F(h=>!h),className:"typography-micro text-muted-foreground hover:text-foreground",children:g(P?"gitView.integrate.showLess":"gitView.integrate.showAll")})]}),t.jsxs("div",{className:"space-y-1",children:[(P?r:r.slice(0,5)).map(h=>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:h.short}),t.jsx("span",{className:"typography-meta text-muted-foreground truncate",children:h.subject||h.sha})]},h.sha)),r.length===0&&t.jsx("div",{className:"typography-meta text-muted-foreground",children:g("gitView.integrate.previewUnavailable")}),k.plan.commits.length>r.length&&t.jsx("div",{className:"typography-micro text-muted-foreground/70",children:g("gitView.integrate.showingFirstCommits",{count:r.length})})]})]}),k.kind==="conflict"&&t.jsxs("div",{className:"rounded-md border border-border/60 bg-background/60 p-3 space-y-2",children:[t.jsx("div",{className:"typography-meta text-foreground",children:g("gitView.integrate.conflictsInFiles",{count:k.details.unmergedFiles.length})}),t.jsxs("div",{className:"typography-micro text-muted-foreground/80",children:[g("gitView.integrate.currentCommit"),": ",t.jsx("span",{className:"font-mono",children:k.state.currentCommit.slice(0,7)})]}),t.jsxs("div",{className:"flex flex-wrap gap-1.5",children:[k.details.unmergedFiles.slice(0,6).map(h=>t.jsx("span",{className:"font-mono text-xs px-2 py-0.5 rounded bg-muted/40 text-muted-foreground",children:h},h)),k.details.unmergedFiles.length>6&&t.jsx("span",{className:"text-xs text-muted-foreground",children:g("gitView.integrate.moreFiles",{count:k.details.unmergedFiles.length-6})})]}),t.jsxs("div",{className:"flex items-center gap-2 pt-1",children:[t.jsx(W,{size:"sm",variant:"ghost",className:"typography-meta",onClick:()=>{$()},children:g("gitView.operation.abort")}),t.jsxs(W,{size:"sm",variant:"secondary",className:"typography-meta gap-1",disabled:!w,onClick:()=>{_({state:k.state,details:k.details},!1)},children:[t.jsx(T,{name:"sparkling",className:"size-3.5"}),g("gitView.integrate.currentSession")]}),t.jsxs(W,{size:"sm",variant:"secondary",className:"typography-meta gap-1",onClick:()=>{_({state:k.state,details:k.details},!0)},children:[t.jsx(T,{name:"sparkling",className:"size-3.5"}),g("gitView.integrate.newSession")]}),t.jsx(W,{size:"sm",className:"typography-meta",onClick:()=>{le()},children:g("gitView.operation.continue")})]})]})]})]})},ii=({open:o,onOpenChange:e,directory:i,hasUncommittedChanges:m,hasStagedChanges:N=!1,uncommittedFileCount:f,onChanged:p})=>{const{t:x}=nt(),[g,w]=l.useState([]),[E,b]=l.useState(!1),[V,O]=l.useState(""),[S,z]=l.useState(""),[C,y]=l.useState(null),[D,k]=l.useState({}),R=l.useCallback(async()=>{if(i){b(!0);try{const u=await $n(i);w(u.stashes),k({})}catch(u){v.error(u instanceof Error?u.message:x("gitView.stashes.toast.loadFailed"))}finally{b(!1)}}},[i,x]);l.useEffect(()=>{o&&R()},[R,o]),l.useEffect(()=>{if(!o||!i||g.length===0)return;let u=!1;const M=g.map(te=>te.ref);return Hn(i,M).then(te=>{u||k(te.counts)}).catch(()=>{}),()=>{u=!0}},[i,o,g]);const P=l.useMemo(()=>Bt(g,V,u=>[u.message,u.ref,u.relativeTime]),[V,g]),F=l.useCallback(async u=>{await R(),await p?.(u)},[R,p]),r=async()=>{if(!(!i||C)){y("create");try{const u=await Wn(i,{message:S.trim()||void 0});u.created?(v.success(x("gitView.stashes.toast.created")),z("")):v.info(x("gitView.stashes.toast.noChanges")),await F({affectsIndex:!!(u.created&&N)})}catch(u){v.error(u instanceof Error?u.message:x("gitView.stashes.toast.createFailed"))}finally{y(null)}}},Y=async(u,M)=>{if(!(!i||C)&&!(M==="drop"&&!window.confirm(x("gitView.stashes.confirm.drop",{ref:u.ref})))){y(`${M}:${u.ref}`);try{M==="apply"&&await Un(i,{ref:u.ref}),M==="pop"&&await Kn(i,{ref:u.ref}),M==="drop"&&await Jn(i,{ref:u.ref});const te=M==="apply"?"gitView.stashes.toast.applySuccess":M==="pop"?"gitView.stashes.toast.popSuccess":"gitView.stashes.toast.dropSuccess";v.success(x(te)),await F({affectsIndex:M!=="drop"})}catch(te){const U=M==="apply"?"gitView.stashes.toast.applyFailed":M==="pop"?"gitView.stashes.toast.popFailed":"gitView.stashes.toast.dropFailed";v.error(te instanceof Error?te.message:x(U)),await F({affectsIndex:M!=="drop"})}finally{y(null)}}},B=C!==null;return t.jsx(mt,{open:o,onOpenChange:e,children:t.jsxs(ht,{className:"max-w-2xl max-h-[70vh] flex flex-col",children:[t.jsxs(gt,{children:[t.jsxs(ft,{className:"flex items-center gap-2",children:[t.jsx(T,{name:"archive-stack",className:"h-5 w-5"}),x("gitView.stashes.title")]}),t.jsx(bt,{children:x("gitView.stashes.description")})]}),t.jsxs("div",{className:"mt-2 rounded-lg border border-border/60 bg-[var(--surface-elevated)] p-3",children:[t.jsxs("div",{className:"flex flex-col gap-2 sm:flex-row",children:[t.jsx(gr,{value:S,onChange:u=>z(u.target.value),placeholder:x("gitView.stashes.messagePlaceholder"),disabled:B||!m,className:"flex-1"}),t.jsxs(W,{onClick:r,disabled:!m||B||!i,children:[C==="create"?t.jsx(T,{name:"loader-4",className:"size-4 animate-spin"}):t.jsx(T,{name:"inbox-archive",className:"size-4"}),x("gitView.stashes.actions.stashCurrentWithCount",{count:f})]})]}),t.jsx("p",{className:"typography-meta mt-2 text-muted-foreground",children:x("gitView.stashes.includeUntrackedHint")})]}),t.jsxs("div",{className:"relative mt-2",children:[t.jsx(T,{name:"search",className:"absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-muted-foreground"}),t.jsx(gr,{value:V,onChange:u=>O(u.target.value),placeholder:x("gitView.stashes.searchPlaceholder"),className:"pl-9"})]}),t.jsx("div",{className:"flex-1 overflow-y-auto",children:E?t.jsx("div",{className:"flex items-center justify-center py-10 text-muted-foreground",children:t.jsx(T,{name:"loader-4",className:"size-5 animate-spin"})}):P.length===0?t.jsx("div",{className:"py-8 text-center text-muted-foreground",children:x(V?"gitView.stashes.empty.search":"gitView.stashes.empty.list")}):P.map((u,M)=>t.jsxs("div",{className:"group flex items-center gap-2 rounded py-1.5 transition-colors hover:bg-interactive-hover/30",children:[t.jsxs("div",{className:"min-w-0 flex-1 pl-2",children:[t.jsx("p",{className:"typography-small truncate text-foreground",children:u.message||x("gitView.stashes.untitled")}),t.jsxs("p",{className:"typography-meta truncate text-muted-foreground",children:[t.jsxs(Zt,{children:[t.jsx(es,{asChild:!0,children:t.jsx("span",{children:M===0&&!V.trim()?x("gitView.stashes.latestLabel"):x("gitView.stashes.itemNumber",{number:M+1})})}),t.jsx(ts,{sideOffset:6,children:u.ref})]})," · ",u.relativeTime," · ",typeof D[u.ref]=="number"?x("gitView.stashes.fileCount",{count:D[u.ref]}):x("gitView.stashes.fileCountLoading")]})]}),t.jsxs("div",{className:"mr-2 flex shrink-0 items-center gap-1 opacity-100 sm:opacity-0 sm:group-hover:opacity-100",children:[t.jsx(Ms,{label:x("gitView.stashes.actions.apply"),loading:C===`apply:${u.ref}`,onClick:()=>Y(u,"apply"),disabled:B,children:t.jsx(T,{name:"inbox-unarchive",className:"size-4"})}),t.jsx(Ms,{label:x("gitView.stashes.actions.pop"),loading:C===`pop:${u.ref}`,onClick:()=>Y(u,"pop"),disabled:B,children:t.jsx(T,{name:"inbox-unarchive-fill",className:"size-4"})}),t.jsx(Ms,{label:x("gitView.stashes.actions.drop"),loading:C===`drop:${u.ref}`,onClick:()=>Y(u,"drop"),disabled:B,destructive:!0,children:t.jsx(T,{name:"delete-bin",className:"size-4"})})]})]},u.ref))})]})})},Ms=o=>{const e=jt.c(17),{label:i,loading:m,disabled:N,destructive:f,onClick:p,children:x}=o,g=m||void 0,w=f?"text-[var(--status-error)] hover:text-[var(--status-error)]":"text-muted-foreground hover:text-foreground";let E;e[0]!==w?(E=Se("flex h-6 w-6 items-center justify-center transition-colors disabled:opacity-50",w),e[0]=w,e[1]=E):E=e[1];let b;e[2]!==x||e[3]!==m?(b=m?t.jsx(T,{name:"loader-4",className:"size-4 animate-spin"}):x,e[2]=x,e[3]=m,e[4]=b):b=e[4];let V;e[5]!==N||e[6]!==i||e[7]!==p||e[8]!==g||e[9]!==E||e[10]!==b?(V=t.jsx(es,{asChild:!0,children:t.jsx("button",{type:"button","aria-label":i,"aria-busy":g,className:E,onClick:p,disabled:N,children:b})}),e[5]=N,e[6]=i,e[7]=p,e[8]=g,e[9]=E,e[10]=b,e[11]=V):V=e[11];let O;e[12]!==i?(O=t.jsx(ts,{sideOffset:6,children:i}),e[12]=i,e[13]=O):O=e[13];let S;return e[14]!==V||e[15]!==O?(S=t.jsxs(Zt,{children:[V,O]}),e[14]=V,e[15]=O,e[16]=S):S=e[16],S},oi=o=>{const e=jt.c(16),{onOpenStashes:i}=o,{t:m}=nt();let N;e[0]===Symbol.for("react.memo_cache_sentinel")?(N=t.jsx(T,{name:"git-commit",className:"size-10 text-muted-foreground/70 mb-4"}),e[0]=N):N=e[0];let f;e[1]!==m?(f=m("gitView.empty.cleanTitle"),e[1]=m,e[2]=f):f=e[2];let p;e[3]!==f?(p=t.jsx("p",{className:"typography-ui-label font-semibold text-foreground mb-1",children:f}),e[3]=f,e[4]=p):p=e[4];let x;e[5]!==m?(x=m("gitView.empty.cleanDescription"),e[5]=m,e[6]=x):x=e[6];let g;e[7]!==x?(g=t.jsx("p",{className:"typography-meta text-muted-foreground mb-4",children:x}),e[7]=x,e[8]=g):g=e[8];let w;e[9]!==i||e[10]!==m?(w=i?t.jsxs(W,{type:"button",variant:"outline",size:"sm",onClick:i,className:"gap-1.5",children:[t.jsx(T,{name:"archive-stack",className:"size-4"}),m("gitView.stashes.title")]}):null,e[9]=i,e[10]=m,e[11]=w):w=e[11];let E;return e[12]!==p||e[13]!==g||e[14]!==w?(E=t.jsxs("div",{className:"flex flex-col items-center justify-center py-10 px-4 text-center",children:[N,p,g,w]}),e[12]=p,e[13]=g,e[14]=w,e[15]=E):E=e[15],E},ut=8,li=o=>{const e=jt.c(18),{laned:i,totalLanes:m,isExpanded:N}=o,{lane:f,color:p,connectors:x}=i,w=Math.max(m,f+1)*ut+ut/2,E=l.useRef(null),b=l.useRef(null);let V;e[0]!==p||e[1]!==x||e[2]!==f||e[3]!==w?(V=()=>{const y=E.current,D=b.current;if(!y||!D)return;const k=y.offsetHeight;if(k===0)return;const R=window.devicePixelRatio||1;D.width=w*R,D.height=k*R;const P=D.getContext("2d");if(!P)return;P.scale(R,R),P.clearRect(0,0,w,k);const F=k/2,r=f*ut+ut/2,Y=getComputedStyle(D),B=Y.getPropertyValue("--surface-muted-foreground").trim()||Y.color,u=U=>{if(!U.startsWith("var("))return U;const G=U.slice(4,-1).trim();return Y.getPropertyValue(G).trim()||B},M=[...x].sort(di);for(const U of M){const G=U.fromLane*ut+ut/2,_=U.toLane*ut+ut/2,X=U.type==="passing"?.72:U.type==="branch-out"||U.type==="merge-in"?.95:1;P.beginPath(),P.strokeStyle=u(U.color),P.globalAlpha=X,P.lineWidth=1.25,P.lineCap="round";e:switch(U.type){case"passing":case"commit-lane":{P.moveTo(G,0),P.lineTo(G,k);break e}case"top-stub":{P.moveTo(G,0),P.lineTo(G,F);break e}case"bottom-stub":{P.moveTo(G,F),P.lineTo(G,k);break e}case"branch-out":{const $=(F+k)/2;P.moveTo(r,F),P.bezierCurveTo(r,$,_,$,_,k);break e}case"merge-in":{const $=F/2;P.moveTo(G,0),P.bezierCurveTo(G,$,r,$,r,F);break e}default:continue}P.stroke(),P.globalAlpha=1}const te=Y.getPropertyValue("--background").trim()||Y.getPropertyValue("--surface-background").trim();P.beginPath(),P.arc(r,F,4,0,Math.PI*2),P.fillStyle=u(p),P.fill(),P.beginPath(),P.arc(r,F,5,0,Math.PI*2),P.strokeStyle=te||B,P.lineWidth=2,P.stroke()},e[0]=p,e[1]=x,e[2]=f,e[3]=w,e[4]=V):V=e[4];let O;e[5]!==p||e[6]!==x||e[7]!==N||e[8]!==f||e[9]!==i||e[10]!==m||e[11]!==w?(O=[i,f,p,x,m,N,w],e[5]=p,e[6]=x,e[7]=N,e[8]=f,e[9]=i,e[10]=m,e[11]=w,e[12]=O):O=e[12],l.useLayoutEffect(V,O);let S;e[13]!==w?(S={width:w,height:"100%",position:"relative",flexShrink:0,overflow:"hidden"},e[13]=w,e[14]=S):S=e[14];let z;e[15]===Symbol.for("react.memo_cache_sentinel")?(z=t.jsx("canvas",{ref:b,style:{position:"absolute",inset:0,width:"100%",height:"100%",display:"block"}}),e[15]=z):z=e[15];let C;return e[16]!==S?(C=t.jsx("div",{ref:E,style:S,children:z}),e[16]=S,e[17]=C):C=e[17],C};function ci(o){return o==="branch-out"||o==="merge-in"}function di(o,e){const i=ci;return(i(o.type)?1:0)-(i(e.type)?1:0)}const br=15e3,vr=500,jr=12,Cr=8*1024*1024,Nr=o=>typeof o=="string"?0:(o.original?.length??0)+(o.modified?.length??0),Sr=o=>{if(o.size<=jr){let N=0;for(const f of o.values())N+=Nr(f);if(N<=Cr)return o}const e=Array.from(o.entries()).reverse(),i=new Map;let m=0;for(const[N,f]of e){if(i.size>=jr)continue;const p=Nr(f);m+p>Cr&&i.size>0||(i.set(N,f),m+=p)}return new Map(Array.from(i.entries()).reverse())};function kr(o,e){const i=new Date(o);return Number.isNaN(i.getTime())?o:Xn(i,e,{year:"numeric",month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"})}function ui(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 mi(o){return o?o.split(",").map(e=>e.trim()).filter(Boolean).map(e=>{const i=e.startsWith("HEAD ->");return{label:i?e.replace("HEAD -> ",""):e.replace("tag: ",""),isHead:i,isTag:e.startsWith("tag: ")}}):[]}const hi=l.memo(({entry:o,mode:e="history",laned:i,totalLanes:m,isExpanded:N,onToggle:f,files:p,isLoadingFiles:x,onCopyHash:g,directory:w,onConflict:E,onActionSuccess:b})=>{const{t:V}=nt(),O=Ft(d=>d.timeFormatPreference),S=e==="graph",[z,C]=l.useState(null),[y,D]=l.useState(!1),[k,R]=l.useState(""),[P,F]=l.useState(null),[r,Y]=l.useState(new Set),[B,u]=l.useState(new Map),[M,te]=l.useState(new Set),U=async()=>{if(w){C("checkout");try{await aa(w,o.hash),v.success(V("gitView.history.actions.detachedHead")),b?.()}catch(d){v.error(String(d.message))}finally{C(null)}}},G=async()=>{if(!(!w||!k.trim())){C("createBranch");try{await Zn(w,k.trim(),o.hash),D(!1),R(""),b?.()}catch(d){v.error(String(d.message))}finally{C(null)}}},_=async()=>{if(w){C("cherryPick");try{const d=await na(w,o.hash);d.conflict?E?.({conflict:!0,conflictFiles:d.conflictFiles,operation:"cherry-pick"}):b?.()}catch(d){v.error(String(d.message))}finally{C(null)}}},X=async()=>{if(w){C("revert");try{const d=await ra(w,o.hash);d.conflict?E?.({conflict:!0,conflictFiles:d.conflictFiles,operation:"revert"}):b?.()}catch(d){v.error(String(d.message))}finally{C(null)}}},$=async(d,I=!1)=>{if(!(!w||z!==null)){C("reset");try{await ea(w,o.hash,d,I),b?.()}catch(A){v.error(String(A.message))}finally{C(null)}}},le=async()=>{if(!P)return;const d=P;switch(F(null),d){case"checkout":return U();case"cherryPick":return _();case"revert":return X();case"merge":return ae();case"rebase":return ce();case"resetSoft":return $("soft");case"resetMixed":return $("mixed");case"resetHard":return $("hard",!0)}},ae=async()=>{if(w){C("merge");try{const d=await sa(w,{branch:o.hash});d.conflict?E?.({conflict:!0,conflictFiles:d.conflictFiles,operation:"merge"}):b?.()}catch(d){v.error(String(d.message))}finally{C(null)}}},ce=async()=>{if(w){C("rebase");try{const d=await ta(w,{onto:o.hash});d.conflict?E?.({conflict:!0,conflictFiles:d.conflictFiles,operation:"rebase"}):b?.()}catch(d){v.error(String(d.message))}finally{C(null)}}},ie=l.useCallback(async d=>{const I=d.path;if(!w){u(A=>new Map(A).set(I,"error"));return}u(A=>Sr(new Map(A).set(I,"loading")));try{const A=qn(w,o.hash,d.path,!1),q=new Promise((se,J)=>{setTimeout(()=>J(new Error(`Timed out after ${br}ms`)),br)}),ne=await Promise.race([A,q]);u(se=>Sr(new Map(se).set(I,ne)))}catch{u(A=>new Map(A).set(I,"error"))}},[w,o.hash]),h=l.useCallback(async d=>{const I=d.path;if(d.changeType==="R"||d.isBinary){Y(se=>{const J=new Set(se);return J.has(I)?J.delete(I):J.add(I),J});return}const A=B.get(I);if(r.has(I)&&A&&A!=="error"){Y(se=>{const J=new Set(se);return J.delete(I),J});return}Y(se=>{const J=new Set(se);return J.add(I),J}),!(A&&A!=="error"||d.insertions+d.deletions>vr&&!M.has(I))&&await ie(d)},[B,M,ie,r]);return t.jsxs("li",{children:[t.jsxs("button",{type:"button",onClick:f,className:Se("w-full flex items-start gap-3 px-3 py-2 text-left transition-colors",S?"hover:bg-[var(--interactive-hover)]/40":N?"bg-sidebar/90":"hover:bg-sidebar/40"),children:[S&&i&&m!==void 0?t.jsx("div",{className:"-my-2 shrink-0 self-stretch",children:t.jsx(li,{laned:i,totalLanes:m,isExpanded:N})}):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:[S?(()=>{const d=mi(o.refs);return d.length>0?t.jsx("div",{className:"flex flex-wrap gap-1 mb-0.5",children:d.map(I=>t.jsx("span",{className:Se("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:kr(o.date,O),children:kr(o.date,O)})]}),t.jsx("span",{className:"shrink-0",children:"·"}),t.jsx("code",{className:"shrink-0 font-mono",children:o.hash.slice(0,8)}),t.jsxs(Zt,{children:[t.jsx(es,{asChild:!0,children:t.jsx(W,{variant:"ghost",size:"sm",className:"h-5 px-1 shrink-0",onClick:d=>{d.stopPropagation(),g(o.hash)},children:t.jsx(T,{name:"file-copy",className:"size-3"})})}),t.jsx(ts,{sideOffset:8,children:V("gitView.history.copySha")})]})]})]})]}),N&&t.jsxs("div",{className:"px-3 pb-2 pl-8 border-t border-border/40",children:[S&&P?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:V(`gitView.history.actions.${P}Confirm`)}),t.jsxs(W,{variant:"destructive",size:"xs",className:"h-6 shrink-0",disabled:z!==null,onClick:d=>{d.stopPropagation(),le()},children:[z!==null?t.jsx(T,{name:"loader-4",className:"size-3 animate-spin mr-1"}):null,V("gitView.history.actions.confirmButton")]}),t.jsx(W,{variant:"ghost",size:"xs",className:"h-6 shrink-0",disabled:z!==null,onClick:d=>{d.stopPropagation(),F(null)},children:V("gitView.history.actions.cancelButton")})]}):S?t.jsxs("div",{className:"flex flex-wrap items-center gap-1.5 py-2 border-b border-border/30 mb-2",children:[t.jsx(W,{variant:"outline",size:"xs",className:"h-6",disabled:z!==null,onClick:d=>{d.stopPropagation(),F("checkout")},children:V("gitView.history.actions.checkout")}),y?t.jsxs("div",{className:"flex items-center gap-1",children:[t.jsx("input",{autoFocus:!0,value:k,onChange:d=>R(d.target.value),onKeyDown:d=>{d.key==="Enter"&&G(),d.key==="Escape"&&(D(!1),R(""))},placeholder:V("gitView.history.actions.createBranchPlaceholder"),className:"h-6 text-xs px-2 rounded border border-border/60 bg-background min-w-0 w-32"}),t.jsxs(W,{variant:"outline",size:"xs",className:"h-6",disabled:!k.trim()||z!==null,onClick:d=>{d.stopPropagation(),G()},children:[z==="createBranch"?t.jsx(T,{name:"loader-4",className:"size-3 animate-spin mr-1"}):null,V("gitView.history.actions.createBranchConfirm")]})]}):t.jsx(W,{variant:"outline",size:"xs",className:"h-6",onClick:d=>{d.stopPropagation(),D(!0)},children:V("gitView.history.actions.createBranch")}),t.jsx(W,{variant:"outline",size:"xs",className:"h-6",disabled:z!==null,onClick:d=>{d.stopPropagation(),F("cherryPick")},children:V("gitView.history.actions.cherryPick")}),t.jsx(W,{variant:"outline",size:"xs",className:"h-6",disabled:z!==null,onClick:d=>{d.stopPropagation(),F("revert")},children:V("gitView.history.actions.revert")}),t.jsxs(Ls,{children:[t.jsx(Os,{asChild:!0,children:t.jsxs(W,{variant:"outline",size:"xs",className:"h-6",disabled:z!==null,onClick:d=>d.stopPropagation(),children:[z==="reset"?t.jsx(T,{name:"loader-4",className:"size-3 animate-spin mr-1"}):null,V("gitView.history.actions.reset")]})}),t.jsx(As,{align:"start",className:"min-w-max",children:["soft","mixed","hard"].map(d=>t.jsx(Yn,{disabled:z!==null,onSelect:I=>{I.stopPropagation(),F(`reset${d.charAt(0).toUpperCase()+d.slice(1)}`)},children:V(`gitView.history.actions.reset${d.charAt(0).toUpperCase()+d.slice(1)}`)},d))})]}),t.jsx(W,{variant:"outline",size:"xs",className:"h-6",disabled:z!==null,onClick:d=>{d.stopPropagation(),F("merge")},children:V("gitView.history.actions.merge")}),t.jsx(W,{variant:"outline",size:"xs",className:"h-6",disabled:z!==null,onClick:d=>{d.stopPropagation(),F("rebase")},children:V("gitView.history.actions.rebase")})]}):null,x?t.jsxs("div",{className:"flex items-center gap-2 py-2",children:[t.jsx(T,{name:"loader-4",className:"size-4 animate-spin text-muted-foreground"}),t.jsx("span",{className:"typography-micro text-muted-foreground",children:V("gitView.history.loadingFiles")})]}):p.length===0?t.jsx("p",{className:"typography-micro text-muted-foreground py-2",children:V("gitView.history.noFiles")}):t.jsx("ul",{className:"space-y-0.5 py-2",children:p.map(d=>t.jsxs("li",{children:[t.jsxs("button",{type:"button",onClick:()=>h(d),className:Se("w-full flex items-center gap-2 typography-micro text-left cursor-pointer transition-colors rounded px-1",r.has(d.path)?"bg-sidebar/90":"hover:bg-sidebar/40"),children:[t.jsx("span",{className:Se("font-semibold w-3 text-center shrink-0",ui(d.changeType)),children:d.changeType}),t.jsx("span",{className:"truncate text-foreground min-w-0",title:d.path,children:d.path}),!d.isBinary&&t.jsxs("span",{className:"shrink-0",children:[t.jsxs("span",{style:{color:"var(--status-success)"},children:["+",d.insertions]}),t.jsx("span",{className:"text-muted-foreground mx-0.5",children:"/"}),t.jsxs("span",{style:{color:"var(--status-error)"},children:["-",d.deletions]})]}),d.isBinary&&t.jsx("span",{className:"typography-micro text-muted-foreground shrink-0",children:V("gitView.history.binary")}),t.jsx(T,{name:r.has(d.path)?"arrow-down-s":"arrow-right-s",className:"size-3 shrink-0 text-muted-foreground"})]}),r.has(d.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:d.changeType==="R"?t.jsx("div",{className:"px-3 py-2 text-sm text-muted-foreground",children:V("gitView.history.renamedNoDiff")}):d.isBinary?t.jsx("div",{className:"px-3 py-2 text-sm text-muted-foreground",children:V("gitView.history.binaryNoDiff")}):(()=>{const I=d.insertions+d.deletions;if(!M.has(d.path)&&I>vr)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:V("gitView.history.largeDiffTitle",{count:I})}),t.jsx("div",{className:"typography-meta text-muted-foreground",children:V("gitView.history.largeDiffDescription")}),t.jsx(W,{type:"button",variant:"ghost",size:"xs",className:"h-6 px-0 text-primary hover:bg-transparent hover:underline",onClick:()=>{te(q=>new Set(q).add(d.path)),ie(d)},children:V("gitView.history.renderDiffAnyway")})]});const A=B.get(d.path);return A==="loading"||A===void 0?t.jsx("div",{className:"px-3 py-2 text-sm text-muted-foreground",children:V("gitView.history.loadingDiff")}):A==="error"?t.jsx("button",{type:"button",onClick:()=>h(d),className:"w-full text-left px-3 py-2 text-sm text-muted-foreground hover:bg-[var(--interactive-hover)] transition-colors",children:V("gitView.history.diffError")}):t.jsx(qa,{original:A.original,modified:A.modified,language:Qn(d.path)||"",fileName:d.path,renderSideBySide:!1,layout:"inline",enableComments:!1})})()})]},d.path))})]})]})}),Vr=["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 Jt(o){return Vr[o%Vr.length]}function gi(o){if(o.length===0)return[];const e=[],i=[];for(let m=0;m<o.length;m++){const N=o[m],f=[];for(let S=0;S<e.length;S++)e[S]===N.hash&&f.push(S);let p=f.length>0?f[0]:-1;if(p===-1){const S=e.indexOf(null);S!==-1?p=S:(p=e.length,e.push(null))}const x=f.slice(1),g=Jt(p),w=e[p]===N.hash,E=N.parents.length>0;E?e[p]=N.parents[0]:e[p]=null;const b=[],V=new Set;for(let S=1;S<N.parents.length;S++){const z=N.parents[S],C=e.indexOf(z);if(C!==-1)b.push(C);else{const y=e.indexOf(null);if(y!==-1)e[y]=z,b.push(y),V.add(y);else{const D=e.length;e.push(z),b.push(D),V.add(D)}}}const O=[];w&&E?O.push({fromLane:p,toLane:p,color:g,type:"commit-lane"}):w&&!E?O.push({fromLane:p,toLane:p,color:g,type:"top-stub"}):!w&&E&&O.push({fromLane:p,toLane:p,color:g,type:"bottom-stub"});for(const S of x)O.push({fromLane:S,toLane:p,color:Jt(S),type:"merge-in"}),e[S]=null;for(const S of b)O.push({fromLane:p,toLane:S,color:Jt(S),type:"branch-out"});for(let S=0;S<e.length;S++)e[S]!==null&&S!==p&&(V.has(S)||O.push({fromLane:S,toLane:S,color:Jt(S),type:"passing"}));i.push({commit:N,lane:p,color:g,connectors:O})}return i}const fi=[{labelKey:"gitView.history.logSize25",value:25},{labelKey:"gitView.history.logSize50",value:50},{labelKey:"gitView.history.logSize100",value:100}],pi=o=>{const e=jt.c(84),{mode:i,log:m,isLogLoading:N,logMaxCount:f,onLogMaxCountChange:p,expandedCommitHashes:x,onToggleCommit:g,commitFilesMap:w,loadingCommitHashes:E,onCopyHash:b,directory:V,showHeader:O,contentMaxHeightClassName:S,branchDivider:z,onConflict:C,onActionSuccess:y}=o,D=i===void 0?"history":i,k=O===void 0?!0:O,R=S===void 0?"max-h-[50vh]":S,P=z===void 0?null:z,{t:F}=nt(),[r,Y]=l.useState(!0),B=D==="graph";let u;e[0]!==B||e[1]!==m?(u=B&&m?gi(m.all):[],e[0]=B,e[1]=m,e[2]=u):u=e[2];const M=u;let te;e[3]!==M?(te=Math.max(1,...M.map(xi)),e[3]=M,e[4]=te):te=e[4];const U=te;let G;e[5]!==M?(G=new Map(M.map(wi)),e[5]=M,e[6]=G):G=e[6];const _=G;if(!m)return null;const X=P!==null&&P.insertBeforeIndex>0&&P.insertBeforeIndex<m.all.length,$=P!==null&&P.insertBeforeIndex===m.all.length,le=X||$;let ae;e[7]!==P||e[8]!==X||e[9]!==$||e[10]!==m.all?(ae=X?m.all.slice(0,P.insertBeforeIndex):$?m.all:[],e[7]=P,e[8]=X,e[9]=$,e[10]=m.all,e[11]=ae):ae=e[11];const ce=ae;let ie;if(e[12]!==P||e[13]!==w||e[14]!==R||e[15]!==V||e[16]!==x||e[17]!==X||e[18]!==le||e[19]!==B||e[20]!==N||e[21]!==_||e[22]!==E||e[23]!==m.all||e[24]!==f||e[25]!==U||e[26]!==D||e[27]!==y||e[28]!==C||e[29]!==b||e[30]!==p||e[31]!==g||e[32]!==F||e[33]!==ce){const K=X?m.all.slice(P.insertBeforeIndex):[];let de;e[35]!==P?.direction?(de=P?.direction==="down"?t.jsx(T,{name:"arrow-down-s",className:"size-3.5"}):t.jsx(T,{name:"arrow-up",className:"size-3.5"}),e[35]=P?.direction,e[36]=de):de=e[36];const ke=de;let ye;e[37]!==w||e[38]!==V||e[39]!==x||e[40]!==B||e[41]!==_||e[42]!==E||e[43]!==U||e[44]!==D||e[45]!==y||e[46]!==C||e[47]!==b||e[48]!==g?(ye=Re=>t.jsx("ul",{className:"divide-y divide-border/60",children:Re.map(ue=>t.jsx(hi,{entry:ue,mode:D,laned:B?_.get(ue.hash):void 0,totalLanes:B?U:void 0,isExpanded:x.has(ue.hash),onToggle:()=>g(ue.hash),files:w.get(ue.hash)??[],isLoadingFiles:E.has(ue.hash),onCopyHash:b,directory:V,onConflict:C,onActionSuccess:y},ue.hash))}),e[37]=w,e[38]=V,e[39]=x,e[40]=B,e[41]=_,e[42]=E,e[43]=U,e[44]=D,e[45]=y,e[46]=C,e[47]=b,e[48]=g,e[49]=ye):ye=e[49];const me=ye;let xe;e[50]!==N||e[51]!==m.all.length||e[52]!==f||e[53]!==p||e[54]!==F?(xe=m.all.length>=f?t.jsx("div",{className:"flex justify-center py-2 border-t border-border/40",children:t.jsx(W,{type:"button",variant:"ghost",size:"xs",onClick:()=>p(f+25),disabled:N,className:"px-3 text-muted-foreground hover:text-foreground",children:N?t.jsxs("span",{className:"flex items-center gap-1",children:[t.jsx(T,{name:"loader-4",className:"size-3 animate-spin"}),F("gitView.history.loadingMore")]}):F("gitView.history.loadMore")})}):null,e[50]=N,e[51]=m.all.length,e[52]=f,e[53]=p,e[54]=F,e[55]=xe):xe=e[55];const Ve=xe;ie=t.jsx(Br,{outerClassName:`min-h-0 ${R}`,className:"h-full w-full",children:m.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")})}):le&&P?t.jsxs(t.Fragment,{children:[t.jsxs("div",{className:"flex flex-col gap-0",children:[ce.length>0?t.jsx("div",{className:"rounded-xl border border-border/60 bg-background/70 overflow-hidden",children:me(ce)}):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:P.branchName,children:P.branchName}),ke]}),t.jsx("span",{className:"h-px flex-1 bg-border/60"})]}),K.length>0?t.jsx("div",{className:"rounded-xl border border-border/60 bg-background/70 overflow-hidden",children:me(K)}):null]}),Ve]}):t.jsxs(t.Fragment,{children:[me(m.all),Ve]})}),e[12]=P,e[13]=w,e[14]=R,e[15]=V,e[16]=x,e[17]=X,e[18]=le,e[19]=B,e[20]=N,e[21]=_,e[22]=E,e[23]=m.all,e[24]=f,e[25]=U,e[26]=D,e[27]=y,e[28]=C,e[29]=b,e[30]=p,e[31]=g,e[32]=F,e[33]=ce,e[34]=ie}else ie=e[34];const h=ie;if(!k){if(le){let de;return e[56]!==h?(de=t.jsx("section",{className:"h-full min-h-0",children:h}),e[56]=h,e[57]=de):de=e[57],de}let K;return e[58]!==h?(K=t.jsx("section",{className:"h-full min-h-0 rounded-xl border border-border/60 bg-background/70 overflow-hidden",children:h}),e[58]=h,e[59]=K):K=e[59],K}let d;e[60]!==F?(d=F("gitView.history.title"),e[60]=F,e[61]=d):d=e[61];let I;e[62]!==d?(I=t.jsx("h3",{className:"typography-ui-header font-semibold text-foreground",children:d}),e[62]=d,e[63]=I):I=e[63];let A;e[64]!==N||e[65]!==r||e[66]!==f||e[67]!==p||e[68]!==F?(A=r&&t.jsx("div",{onClick:yi,onPointerDown:bi,children:t.jsxs(ia,{value:String(f),onValueChange:K=>p(Number(K)),disabled:N,children:[t.jsx(oa,{size:"sm",className:"w-auto",disabled:N,children:t.jsx(la,{placeholder:F("gitView.history.commitsPlaceholder")})}),t.jsx(ca,{children:fi.map(K=>t.jsx(da,{value:String(K.value),children:F(K.labelKey)},K.value))})]})}),e[64]=N,e[65]=r,e[66]=f,e[67]=p,e[68]=F,e[69]=A):A=e[69];let q;e[70]!==r?(q=r?t.jsx(T,{name:"arrow-up-s",className:"size-4 text-muted-foreground"}):t.jsx(T,{name:"arrow-down-s",className:"size-4 text-muted-foreground"}),e[70]=r,e[71]=q):q=e[71];let ne;e[72]!==A||e[73]!==q?(ne=t.jsxs("div",{className:"flex items-center gap-2",children:[A,q]}),e[72]=A,e[73]=q,e[74]=ne):ne=e[74];let se;e[75]!==I||e[76]!==ne?(se=t.jsxs(ua,{className:"flex w-full items-center justify-between px-3 h-10 hover:bg-transparent",children:[I,ne]}),e[75]=I,e[76]=ne,e[77]=se):se=e[77];let J;e[78]!==h?(J=t.jsx(ma,{children:h}),e[78]=h,e[79]=J):J=e[79];let we;return e[80]!==r||e[81]!==se||e[82]!==J?(we=t.jsxs(ha,{open:r,onOpenChange:Y,className:"rounded-xl border border-border/60 bg-background/70 overflow-hidden",children:[se,J]}),e[80]=r,e[81]=se,e[82]=J,e[83]=we):we=e[83],we};function xi(o){return o.lane+1}function wi(o){return[o.commit.hash,o]}function yi(o){return o.stopPropagation()}function bi(o){return o.stopPropagation()}const vi=o=>{const e=jt.c(148),{open:i,onOpenChange:m,conflictFiles:N,directory:f,operation:p,onAbort:x,onClearState:g}=o;let w;e[0]!==N?(w=N===void 0?[]:N,e[0]=N,e[1]=w):w=e[1];const E=w,{t:b}=nt(),V=rt(ji),O=rt(Ci),S=Yt(Ni),z=Yt(Si),[C,y]=l.useState(!1),[D,k]=l.useState(null),[R,P]=l.useState(null);let F,r;e[2]!==f||e[3]!==i||e[4]!==b?(F=()=>{!i||!f||(y(!0),P(null),k(null),ga(f).then(ee=>{k(ee)}).catch(ee=>{const he=ee instanceof Error?ee.message:b("gitView.conflict.loadFailed");P(he)}).finally(()=>{y(!1)}))},r=[i,f,b],e[2]=f,e[3]=i,e[4]=b,e[5]=F,e[6]=r):(F=e[5],r=e[6]),l.useEffect(F,r);let Y;e[7]!==D||e[8]!==f||e[9]!==p?(Y=async()=>{if(!D)return null;const ee=p==="merge"?"merge":"rebase",he=D.headInfo||(p==="merge"?"MERGE_HEAD":"REBASE_HEAD"),Be=p==="merge"?"git commit --no-edit":"git rebase --continue",ge=await qt("git.conflict.resolve.visible",{operation_label:ee,head_ref:he}),Ne=await qt("git.conflict.resolve.instructions",{operation_label:ee,directory:f,operation:p,head_info:D.headInfo||"N/A",continue_cmd:Be}),Ie=`${ee} conflict context (JSON)
3
3
  ${JSON.stringify({directory:f,operation:D.operation,headInfo:D.headInfo,statusPorcelain:D.statusPorcelain,unmergedFiles:D.unmergedFiles,diff:D.diff},null,2)}`;return{visibleText:ge,instructionsText:Ne,payloadText:Ie}},e[7]=D,e[8]=f,e[9]=p,e[10]=Y):Y=e[10];const B=Y;let u;e[11]!==x||e[12]!==m?(u=()=>{x(),m(!1)},e[11]=x,e[12]=m,e[13]=u):u=e[13];const M=u;let te;e[14]!==g||e[15]!==m?(te=()=>{g?.(),m(!1)},e[14]=g,e[15]=m,e[16]=te):te=e[16];const U=te;let G;e[17]!==B||e[18]!==O||e[19]!==g||e[20]!==m||e[21]!==S||e[22]!==z||e[23]!==b?(G=async()=>{const ee=await B();if(!ee){v.error(b("gitView.conflict.noDetailsAvailable"));return}if(!O){v.error(b("gitView.conflict.noActiveSession"),{description:b("gitView.conflict.noActiveSessionDescription")});return}S(ee.visibleText,"replace"),z([{text:ee.instructionsText,synthetic:!0},{text:ee.payloadText,synthetic:!0}]),g?.(),m(!1)},e[17]=B,e[18]=O,e[19]=g,e[20]=m,e[21]=S,e[22]=z,e[23]=b,e[24]=G):G=e[24];const _=G;let X;e[25]!==B||e[26]!==f||e[27]!==g||e[28]!==m||e[29]!==V||e[30]!==b?(X=async()=>{const ee=await B();if(!ee){v.error(b("gitView.conflict.noDetailsAvailable"));return}V({directoryOverride:f,initialPrompt:ee.visibleText,syntheticParts:[{text:ee.instructionsText,synthetic:!0},{text:ee.payloadText,synthetic:!0}]}),g?.(),m(!1)},e[25]=B,e[26]=f,e[27]=g,e[28]=m,e[29]=V,e[30]=b,e[31]=X):X=e[31];const $=X;let le,ae,ce,ie,h,d,I,A,q,ne,se,J,we,K,de,ke,ye,me,xe,Ve,Re,ue;if(e[32]!==D||e[33]!==E||e[34]!==O||e[35]!==M||e[36]!==U||e[37]!==_||e[38]!==$||e[39]!==C||e[40]!==R||e[41]!==m||e[42]!==i||e[43]!==p||e[44]!==b){const ee=b(p==="merge"?"gitView.operation.merge":"gitView.operation.rebase"),he=D?.unmergedFiles||E;ce=mt,Re=i,ue=m,ae=ht,Ve="max-w-md w-[calc(100vw-2rem)]",K="flex flex-col gap-4 overflow-hidden";let Be;e[67]===Symbol.for("react.memo_cache_sentinel")?(Be=t.jsx(T,{name:"alert",className:"size-5 shrink-0 text-[var(--status-warning)]"}),e[67]=Be):Be=e[67];const ge=t.jsxs("div",{className:"flex items-center gap-2",children:[Be,t.jsx(ft,{children:b("gitView.conflict.detectedTitle",{operation:ee})})]});let Ne;e[68]!==p||e[69]!==b?(Ne=b("gitView.conflict.detectedDescription",{operation:p}),e[68]=p,e[69]=b,e[70]=Ne):Ne=e[70];let Ie;e[71]!==Ne?(Ie=t.jsx(bt,{children:Ne}),e[71]=Ne,e[72]=Ie):Ie=e[72],e[73]!==ge||e[74]!==Ie?(de=t.jsxs(gt,{children:[ge,Ie]}),e[73]=ge,e[74]=Ie,e[75]=de):de=e[75],e[76]!==C||e[77]!==b?(ke=C&&t.jsxs("div",{className:"flex items-center justify-center gap-2 py-4 text-muted-foreground",children:[t.jsx(T,{name:"loader-4",className:"size-4 animate-spin"}),t.jsx("span",{className:"typography-meta",children:b("gitView.conflict.loading")})]}),e[76]=C,e[77]=b,e[78]=ke):ke=e[78],e[79]!==R||e[80]!==b?(ye=R&&t.jsx("div",{className:"rounded-lg bg-[var(--status-error-bg)] p-3 text-[var(--status-error)] typography-meta break-words",children:b("gitView.conflict.errorLoadingDetails",{message:R})}),e[79]=R,e[80]=b,e[81]=ye):ye=e[81],e[82]!==he||e[83]!==b?(me=he.length>0&&t.jsxs("div",{className:"space-y-2 overflow-hidden",children:[t.jsxs("div",{className:"flex items-center justify-between",children:[t.jsx("p",{className:"typography-meta text-muted-foreground",children:b("gitView.conflict.conflictedFiles")}),t.jsx("span",{className:"typography-micro px-1.5 py-0.5 rounded bg-[var(--surface-elevated)] text-muted-foreground",children:he.length})]}),t.jsx("div",{className:"bg-[var(--surface-elevated)] rounded-lg p-3 max-h-40 overflow-y-auto overflow-x-hidden",children:t.jsx("ul",{className:"space-y-1",children:he.map(ki)})})]}),e[82]=he,e[83]=b,e[84]=me):me=e[84],e[85]!==D||e[86]!==b?(xe=D?.headInfo&&t.jsxs("div",{className:"space-y-1 overflow-hidden",children:[t.jsx("p",{className:"typography-meta text-muted-foreground",children:b("gitView.conflict.headInfo")}),t.jsx("div",{className:"typography-micro text-foreground font-mono bg-[var(--surface-elevated)] rounded-lg p-3 max-h-24 overflow-y-auto break-words whitespace-pre-wrap",children:D.headInfo})]}),e[85]=D,e[86]=b,e[87]=xe):xe=e[87],se="flex flex-col gap-2 pt-2";let Te;e[88]!==$?(Te=()=>{$()},e[88]=$,e[89]=Te):Te=e[89];const oe=C||!D;let Pe;e[90]!==C?(Pe=C?t.jsx(T,{name:"loader-4",className:"size-4 animate-spin"}):t.jsx(T,{name:"add",className:"size-4"}),e[90]=C,e[91]=Pe):Pe=e[91];let Fe;e[92]!==b?(Fe=b("gitView.conflict.resolveNewSession"),e[92]=b,e[93]=Fe):Fe=e[93],e[94]!==Te||e[95]!==oe||e[96]!==Pe||e[97]!==Fe?(J=t.jsxs(W,{variant:"default",onClick:Te,disabled:oe,className:"w-full gap-2",children:[Pe,Fe]}),e[94]=Te,e[95]=oe,e[96]=Pe,e[97]=Fe,e[98]=J):J=e[98];let De;e[99]!==_?(De=()=>{_()},e[99]=_,e[100]=De):De=e[100];const We=C||!D||!O;let Le;e[101]!==C?(Le=C?t.jsx(T,{name:"loader-4",className:"size-4 animate-spin"}):t.jsx(T,{name:"chat-1",className:"size-4"}),e[101]=C,e[102]=Le):Le=e[102];let Q;e[103]!==b?(Q=b("gitView.conflict.resolveCurrentSession"),e[103]=b,e[104]=Q):Q=e[104],e[105]!==De||e[106]!==We||e[107]!==Le||e[108]!==Q?(we=t.jsxs(W,{variant:"outline",onClick:De,disabled:We,className:"w-full gap-2",children:[Le,Q]}),e[105]=De,e[106]=We,e[107]=Le,e[108]=Q,e[109]=we):we=e[109],q="flex gap-2 pt-1";let fe;e[110]!==b?(fe=b("gitView.conflict.continueLater"),e[110]=b,e[111]=fe):fe=e[111],e[112]!==U||e[113]!==fe?(ne=t.jsx(W,{variant:"ghost",size:"sm",onClick:U,className:"flex-1",children:fe}),e[112]=U,e[113]=fe,e[114]=ne):ne=e[114],le=W,ie="destructive",h="sm",d=M,I="flex-1",A=b("gitView.conflict.abortOperation",{operation:ee}),e[32]=D,e[33]=E,e[34]=O,e[35]=M,e[36]=U,e[37]=_,e[38]=$,e[39]=C,e[40]=R,e[41]=m,e[42]=i,e[43]=p,e[44]=b,e[45]=le,e[46]=ae,e[47]=ce,e[48]=ie,e[49]=h,e[50]=d,e[51]=I,e[52]=A,e[53]=q,e[54]=ne,e[55]=se,e[56]=J,e[57]=we,e[58]=K,e[59]=de,e[60]=ke,e[61]=ye,e[62]=me,e[63]=xe,e[64]=Ve,e[65]=Re,e[66]=ue}else le=e[45],ae=e[46],ce=e[47],ie=e[48],h=e[49],d=e[50],I=e[51],A=e[52],q=e[53],ne=e[54],se=e[55],J=e[56],we=e[57],K=e[58],de=e[59],ke=e[60],ye=e[61],me=e[62],xe=e[63],Ve=e[64],Re=e[65],ue=e[66];let _e;e[115]!==le||e[116]!==ie||e[117]!==h||e[118]!==d||e[119]!==I||e[120]!==A?(_e=t.jsx(le,{variant:ie,size:h,onClick:d,className:I,children:A}),e[115]=le,e[116]=ie,e[117]=h,e[118]=d,e[119]=I,e[120]=A,e[121]=_e):_e=e[121];let Ae;e[122]!==q||e[123]!==ne||e[124]!==_e?(Ae=t.jsxs("div",{className:q,children:[ne,_e]}),e[122]=q,e[123]=ne,e[124]=_e,e[125]=Ae):Ae=e[125];let je;e[126]!==se||e[127]!==J||e[128]!==we||e[129]!==Ae?(je=t.jsxs("div",{className:se,children:[J,we,Ae]}),e[126]=se,e[127]=J,e[128]=we,e[129]=Ae,e[130]=je):je=e[130];let be;e[131]!==K||e[132]!==de||e[133]!==ke||e[134]!==ye||e[135]!==me||e[136]!==xe||e[137]!==je?(be=t.jsxs("div",{className:K,children:[de,ke,ye,me,xe,je]}),e[131]=K,e[132]=de,e[133]=ke,e[134]=ye,e[135]=me,e[136]=xe,e[137]=je,e[138]=be):be=e[138];let Ce;e[139]!==ae||e[140]!==Ve||e[141]!==be?(Ce=t.jsx(ae,{className:Ve,children:be}),e[139]=ae,e[140]=Ve,e[141]=be,e[142]=Ce):Ce=e[142];let Me;return e[143]!==ce||e[144]!==Re||e[145]!==ue||e[146]!==Ce?(Me=t.jsx(ce,{open:Re,onOpenChange:ue,children:Ce}),e[143]=ce,e[144]=Re,e[145]=ue,e[146]=Ce,e[147]=Me):Me=e[147],Me};function ji(o){return o.openNewSessionDraft}function Ci(o){return o.currentSessionId}function Ni(o){return o.setPendingInputText}function Si(o){return o.setPendingSyntheticParts}function ki(o){return t.jsx("li",{className:"typography-micro text-foreground font-mono truncate block",title:o,children:o},o)}const Vi=({open:o,onOpenChange:e,operation:i,targetBranch:m,onConfirm:N})=>{const{t:f}=nt(),[p,x]=l.useState(!0),[g,w]=l.useState(!1),E=f(i==="merge"?"gitView.operation.merge":"gitView.operation.rebase"),b=async()=>{w(!0);try{await N(p),e(!1)}catch(O){const S=O instanceof Error?O.message:`Failed to ${i}`;v.error(S)}finally{w(!1)}},V=()=>{g||e(!1)};return t.jsx(mt,{open:o,onOpenChange:g?void 0:e,children:t.jsxs(ht,{className:"max-w-md",children:[t.jsxs(gt,{children:[t.jsxs("div",{className:"flex items-center gap-2",children:[t.jsx(T,{name:"alert",className:"size-5 text-[var(--status-warning)]"}),t.jsx(ft,{children:f("gitView.stash.title")})]}),t.jsx(bt,{children:f("gitView.stash.description",{operation:i})})]}),t.jsxs("div",{className:"py-2",children:[t.jsx("p",{className:"typography-meta text-muted-foreground mb-3",children:f("gitView.stash.thisWill")}),t.jsxs("ol",{className:"list-decimal list-inside space-y-1 typography-meta text-foreground",children:[t.jsx("li",{children:f("gitView.stash.stepStash")}),t.jsxs("li",{children:[f(i==="merge"?"gitView.operation.merge":"gitView.operation.rebase")," ",f(i==="merge"?"gitView.stash.mergeWith":"gitView.stash.rebaseOnto")," ",t.jsx("span",{className:"font-mono text-primary",children:m})]}),p&&t.jsx("li",{children:f("gitView.stash.stepRestore")})]})]}),t.jsxs("div",{className:"flex items-center gap-2 py-2",children:[t.jsx(fa,{checked:p,onChange:x,disabled:g,ariaLabel:f("gitView.stash.restoreAria")}),t.jsx("span",{className:"typography-ui-label text-foreground cursor-pointer select-none",onClick:()=>!g&&x(!p),children:f("gitView.stash.restoreAfterOperation",{operation:i})})]}),t.jsxs(Ts,{className:"gap-2",children:[t.jsx(W,{variant:"ghost",size:"sm",onClick:V,disabled:g,children:f("gitView.common.cancel")}),t.jsx(W,{variant:"default",size:"sm",onClick:b,disabled:g,className:"gap-1.5",children:g?t.jsxs(t.Fragment,{children:[t.jsx(T,{name:"loader-4",className:"size-4 animate-spin"}),f("gitView.common.processing")]}):f("gitView.stash.confirmButton",{operation:E})})]})]})})},Ii=({mergeInProgress:o,rebaseInProgress:e,onContinue:i,onAbort:m,onResolveWithAI:N,conflictCount:f=0,isLoading:p=!1})=>{const{t:x}=nt(),[g,w]=l.useState(null),E=o&&o.head,b=e&&(e.headName||e.onto),V=E?"merge":b?"rebase":null;if(!V)return null;const O=async()=>{w("continue");try{await i()}finally{w(null)}},S=async()=>{w("abort");try{await m()}finally{w(null)}},z=g!==null,C=f>0,y=x(V==="merge"?"gitView.operation.merge":"gitView.operation.rebase");let D="";o?D=o.message?x("gitView.operation.mergingMessage",{message:o.message}):x("gitView.operation.mergeInProgressWithHead",{head:o.head}):e&&(D=e.headName?x("gitView.operation.rebasingOnto",{headName:e.headName,onto:e.onto||""}):x("gitView.operation.rebaseInProgress"));const k=C?f===1?x("gitView.operation.inProgressTitleOneConflict",{operation:y,count:f}):x("gitView.operation.inProgressTitleManyConflicts",{operation:y,count:f}):x("gitView.operation.inProgressTitle",{operation:y}),R=x(C?"gitView.operation.resolveConflictsHint":"gitView.operation.readyToContinueHint");return t.jsx("div",{className:"mx-4 mt-3 overflow-hidden rounded-lg border border-[var(--status-warning-border)]",children:t.jsxs("div",{className:"flex flex-col gap-3 p-3",children:[t.jsxs("div",{className:"min-w-0",children:[t.jsx("p",{className:"typography-label text-[var(--status-warning)]",children:k}),D&&t.jsx("p",{className:"typography-micro break-words text-muted-foreground",children:D})]}),t.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-2",children:[t.jsx("p",{className:"typography-micro min-w-0 flex-1 text-muted-foreground",children:R}),t.jsxs("div",{className:"flex shrink-0 items-center gap-1.5",children:[t.jsxs(W,{variant:"ghost",size:"sm",onClick:S,disabled:z||p,className:"gap-1.5",children:[g==="abort"?t.jsx(T,{name:"loader-4",className:"size-4 animate-spin"}):t.jsx(T,{name:"close",className:"size-4"}),x("gitView.operation.abort")]}),C?N&&t.jsx(W,{variant:"default",size:"sm",onClick:N,disabled:z||p,children:x("gitView.operation.resolveWithAi")}):t.jsxs(W,{variant:"default",size:"sm",onClick:O,disabled:z||p,className:"gap-1.5",children:[g==="continue"?t.jsx(T,{name:"loader-4",className:"size-4 animate-spin"}):t.jsx(T,{name:"check",className:"size-4"}),x("gitView.operation.continue")]})]})]})]})})},Pi=o=>{const e=jt.c(104),{currentBranch:i,localBranches:m,remoteBranches:N,onMerge:f,onRebase:p,disabled:x,isOperating:g,operationLogs:w,onOperationComplete:E,mode:b,defaultTargetBranch:V}=o,O=x===void 0?!1:x,S=g===void 0?!1:g,z=w===void 0?[]:w,C=b===void 0?"dialog":b,{t:y}=nt(),[D,k]=l.useState(!1),[R,P]=l.useState("merge"),[F,r]=l.useState(null),[Y,B]=l.useState(!1),[u,M]=l.useState(""),te=l.useRef(null),U=l.useRef(null),G=O||S,_=i||y("gitView.branch.currentBranchFallback"),X=z.length>0&&z.every(Fi),$=z.some(Ri);let le;e[0]===Symbol.for("react.memo_cache_sentinel")?(le=()=>{U.current&&(U.current.scrollTop=U.current.scrollHeight)},e[0]=le):le=e[0],l.useEffect(le,[z]);let ae;e[1]!==N?(ae=new Set(N.map(Bi).filter(Boolean)),e[1]=N,e[2]=ae):ae=e[2];const ce=ae;let ie;if(e[3]!==u||e[4]!==i||e[5]!==m||e[6]!==ce){let Q;e[8]!==i||e[9]!==ce?(Q=Oe=>Oe!==i&&!ce.has(Oe),e[8]=i,e[9]=ce,e[10]=Q):Q=e[10];const fe=m.filter(Q);ie=Bt(fe,u,Di),e[3]=u,e[4]=i,e[5]=m,e[6]=ce,e[7]=ie}else ie=e[7];const h=ie;let d;e[11]!==u||e[12]!==N?(d=Bt(N,u,Ei),e[11]=u,e[12]=N,e[13]=d):d=e[13];const I=d;let A;e[14]!==V||e[15]!==m||e[16]!==N?(A=()=>V&&(N.includes(V)||m.includes(V))?V:null,e[14]=V,e[15]=m,e[16]=N,e[17]=A):A=e[17];const q=A;let ne;e[18]!==q||e[19]!==k?(ne=()=>{k(!0),r(q()),P("merge"),M("")},e[18]=q,e[19]=k,e[20]=ne):ne=e[20];const se=ne;let J;e[21]===Symbol.for("react.memo_cache_sentinel")?(J=Q=>{r(Q),B(!1),M("")},e[21]=J):J=e[21];const we=J;let K;e[22]!==f||e[23]!==p||e[24]!==R||e[25]!==F?(K=()=>{F&&(R==="merge"?f(F):p(F))},e[22]=f,e[23]=p,e[24]=R,e[25]=F,e[26]=K):K=e[26];const de=K;let ke;e[27]!==S||e[28]!==k?(ke=()=>{S||(r(null),P("merge"),M(""),k(!1))},e[27]=S,e[28]=k,e[29]=ke):ke=e[29];const ye=ke,me=()=>{S&&!X||(X&&E?.(),r(null),P("merge"),M(""),k(!1))};let xe,Ve;e[30]!==Y?(xe=()=>{Y||M("")},Ve=[Y],e[30]=Y,e[31]=xe,e[32]=Ve):(xe=e[31],Ve=e[32]),l.useEffect(xe,Ve);let Re,ue;e[33]!==C||e[34]!==q||e[35]!==F?(Re=()=>{C==="dialog"||F||r(q())},ue=[C,q,F],e[33]=C,e[34]=q,e[35]=F,e[36]=Re,e[37]=ue):(Re=e[36],ue=e[37]),l.useEffect(Re,ue);const je=S?t.jsxs("div",{className:"space-y-3",children:[t.jsx("div",{ref:U,className:"rounded-lg border border-border bg-muted/30 p-3 max-h-48 overflow-y-auto",children:t.jsx("div",{className:"space-y-2",children:z.map(Mi)})}),X?C==="dialog"?t.jsx(Ts,{children:t.jsx(W,{variant:"default",size:"sm",onClick:me,children:y($?"gitView.common.close":"gitView.common.done")})}):t.jsx("div",{className:"flex justify-end",children:t.jsx(W,{variant:"default",size:"sm",onClick:me,children:y($?"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:y("gitView.branch.operation")}),t.jsxs("div",{className:"grid grid-cols-2 gap-3",children:[t.jsxs("button",{type:"button",onClick:()=>P("merge"),className:Se("flex flex-col items-start gap-1 rounded-lg border p-3 text-left transition-colors",R==="merge"?"border-border bg-interactive-selection text-interactive-selection-foreground":"border-border hover:border-border/80 hover:bg-interactive-hover"),children:[t.jsxs("div",{className:"flex items-center gap-2",children:[t.jsx(T,{name:"git-merge",className:Se("size-4",R==="merge"?"text-inherit":"text-muted-foreground")}),t.jsx("span",{className:Se("typography-ui-label",R==="merge"?"text-foreground":"text-muted-foreground"),children:y("gitView.operation.merge")})]}),t.jsx("p",{className:"typography-micro text-muted-foreground",children:y("gitView.branch.mergeDescription")})]}),t.jsxs("button",{type:"button",onClick:()=>P("rebase"),className:Se("flex flex-col items-start gap-1 rounded-lg border p-3 text-left transition-colors",R==="rebase"?"border-border bg-interactive-selection text-interactive-selection-foreground":"border-border hover:border-border/80 hover:bg-interactive-hover"),children:[t.jsxs("div",{className:"flex items-center gap-2",children:[t.jsx(T,{name:"git-branch",className:Se("size-4",R==="rebase"?"text-inherit":"text-muted-foreground")}),t.jsx("span",{className:Se("typography-ui-label",R==="rebase"?"text-foreground":"text-muted-foreground"),children:y("gitView.operation.rebase")})]}),t.jsx("p",{className:"typography-micro text-muted-foreground",children:y("gitView.branch.rebaseDescription")})]})]})]}),t.jsxs("div",{className:"flex flex-col gap-3",children:[t.jsx("p",{className:"typography-meta text-muted-foreground",children:R==="merge"?y("gitView.branch.branchToMergeInto",{branch:_}):y("gitView.branch.branchToRebaseOnto")}),t.jsxs(Ls,{open:Y,onOpenChange:B,modal:!1,children:[t.jsx(Os,{asChild:!0,children:t.jsxs("button",{type:"button",className:Se(Rr({size:"default"}),"w-full"),children:[t.jsx("span",{className:Se("truncate",!F&&"text-muted-foreground"),children:F||y("gitView.branch.selectBranch")}),t.jsx(T,{name:"arrow-down-s",className:"size-4 opacity-60 shrink-0"})]})}),t.jsx(As,{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(zs,{className:"h-full min-h-0",shouldFilter:!1,children:[t.jsx(Gs,{ref:te,placeholder:y("gitView.branch.searchPlaceholder"),value:u,onValueChange:M,onKeyDown:Ti}),t.jsxs(_s,{className:"h-full min-h-0",disableHorizontal:!0,children:[t.jsx($s,{children:y("gitView.branch.empty")}),h.length>0&&t.jsx(Qt,{heading:y("gitView.branch.localBranches"),children:h.map(Q=>t.jsx(Xt,{onSelect:()=>we(Q),children:t.jsx("span",{className:"typography-ui-label text-foreground truncate",children:Q})},`local-${Q}`))}),h.length>0&&I.length>0?t.jsx(pa,{}):null,I.length>0&&t.jsx(Qt,{heading:y("gitView.branch.remoteBranches"),children:I.map(Q=>t.jsx(Xt,{onSelect:()=>we(Q),children:t.jsx("span",{className:"typography-ui-label text-foreground truncate",children:Q})},`remote-${Q}`))})]})]})})]})]}),F?t.jsx("div",{className:"rounded-lg bg-muted/50 p-3",children:t.jsx("p",{className:"typography-meta text-muted-foreground",children:R==="merge"?t.jsxs(t.Fragment,{children:[y("gitView.branch.summaryMergePrefix")," ",t.jsx("span",{className:"font-mono text-foreground",children:F})," ",y("gitView.branch.summaryMergeInfix")," ",t.jsx("span",{className:"font-mono text-foreground",children:_})]}):t.jsxs(t.Fragment,{children:[y("gitView.branch.summaryRebasePrefix")," ",t.jsx("span",{className:"font-mono text-foreground",children:_})," ",y("gitView.branch.summaryRebaseInfix")," ",t.jsx("span",{className:"font-mono text-foreground",children:F})]})})}):null,C==="dialog"?t.jsxs(Ts,{className:"gap-2 pt-1",children:[t.jsx(W,{variant:"ghost",size:"sm",onClick:ye,children:y("gitView.common.cancel")}),t.jsx(W,{variant:"default",size:"sm",onClick:de,disabled:!F,className:"gap-1.5",children:R==="merge"?t.jsxs(t.Fragment,{children:[t.jsx(T,{name:"git-merge",className:"size-4"}),y("gitView.operation.merge")]}):t.jsxs(t.Fragment,{children:[t.jsx(T,{name:"git-branch",className:"size-4"}),y("gitView.operation.rebase")]})})]}):t.jsxs("div",{className:"flex items-center gap-2 pt-1",children:[t.jsx(W,{variant:"destructive",size:"sm",onClick:ye,disabled:G,children:y("gitView.common.reset")}),t.jsx("div",{className:"flex-1"}),t.jsx(W,{variant:"default",size:"sm",onClick:de,disabled:G||!F,children:y(R==="merge"?"gitView.operation.merge":"gitView.operation.rebase")})]})]});if(C==="bare")return je;if(C==="inline"){let Q;e[38]!==y?(Q=y("gitView.branch.updateTitle"),e[38]=y,e[39]=Q):Q=e[39];let fe;e[40]!==Q?(fe=t.jsx("div",{className:"typography-ui-header font-semibold text-foreground",children:Q}),e[40]=Q,e[41]=fe):fe=e[41];let Oe;e[42]!==y?(Oe=y("gitView.branch.updateDescriptionPrefix"),e[42]=y,e[43]=Oe):Oe=e[43];let et;e[44]!==_?(et=t.jsx("span",{className:"font-mono text-foreground",children:_}),e[44]=_,e[45]=et):et=e[45];let $e;e[46]!==Oe||e[47]!==et?($e=t.jsxs("div",{className:"typography-micro text-muted-foreground",children:[Oe," ",et,"."]}),e[46]=Oe,e[47]=et,e[48]=$e):$e=e[48];let Ue;e[49]!==fe||e[50]!==$e?(Ue=t.jsx("header",{className:"border-b border-border/40 px-0 py-3",children:t.jsxs("div",{className:"space-y-1",children:[fe,$e]})}),e[49]=fe,e[50]=$e,e[51]=Ue):Ue=e[51];let He;e[52]!==je?(He=t.jsx("div",{className:"pt-3",children:je}),e[52]=je,e[53]=He):He=e[53];let pt;return e[54]!==Ue||e[55]!==He?(pt=t.jsxs("section",{className:"border-0 bg-transparent rounded-none",children:[Ue,He]}),e[54]=Ue,e[55]=He,e[56]=pt):pt=e[56],pt}let be;e[57]!==S?(be=S?t.jsx(T,{name:"loader-4",className:"size-4 animate-spin"}):t.jsx(T,{name:"git-merge",className:"size-4"}),e[57]=S,e[58]=be):be=e[58];let Ce;e[59]!==y?(Ce=y("gitView.branch.mergeRebase"),e[59]=y,e[60]=Ce):Ce=e[60];let Me;e[61]!==Ce?(Me=t.jsx("span",{children:Ce}),e[61]=Ce,e[62]=Me):Me=e[62];let ee;e[63]!==se||e[64]!==G||e[65]!==be||e[66]!==Me?(ee=t.jsx(es,{asChild:!0,children:t.jsxs(W,{variant:"outline",size:"sm",className:"gap-1.5",onClick:se,disabled:G,children:[be,Me]})}),e[63]=se,e[64]=G,e[65]=be,e[66]=Me,e[67]=ee):ee=e[67];let he;e[68]!==y?(he=y("gitView.branch.mergeRebaseTooltip"),e[68]=y,e[69]=he):he=e[69];let Be;e[70]!==he?(Be=t.jsx(ts,{sideOffset:8,children:he}),e[70]=he,e[71]=Be):Be=e[71];let ge;e[72]!==ee||e[73]!==Be?(ge=t.jsxs(Zt,{children:[ee,Be]}),e[72]=ee,e[73]=Be,e[74]=ge):ge=e[74];let Ne;e[75]!==me||e[76]!==k?(Ne=Q=>{Q?k(!0):me()},e[75]=me,e[76]=k,e[77]=Ne):Ne=e[77];let Ie;e[78]!==y?(Ie=y("gitView.branch.updateTitle"),e[78]=y,e[79]=Ie):Ie=e[79];let Te;e[80]!==Ie?(Te=t.jsx(ft,{children:Ie}),e[80]=Ie,e[81]=Te):Te=e[81];let oe;e[82]!==$||e[83]!==S||e[84]!==R||e[85]!==X||e[86]!==y||e[87]!==_?(oe=S?y(X?$?"gitView.branch.operationFailed":"gitView.branch.operationCompleted":R==="merge"?"gitView.branch.mergingInProgress":"gitView.branch.rebasingInProgress"):t.jsxs(t.Fragment,{children:[y("gitView.branch.dialogDescriptionPrefix")," ",t.jsx("span",{className:"font-mono text-foreground",children:_}),"."]}),e[82]=$,e[83]=S,e[84]=R,e[85]=X,e[86]=y,e[87]=_,e[88]=oe):oe=e[88];let Pe;e[89]!==oe?(Pe=t.jsx(bt,{children:oe}),e[89]=oe,e[90]=Pe):Pe=e[90];let Fe;e[91]!==Te||e[92]!==Pe?(Fe=t.jsxs(gt,{children:[Te,Pe]}),e[91]=Te,e[92]=Pe,e[93]=Fe):Fe=e[93];let De;e[94]!==je||e[95]!==Fe?(De=t.jsxs(ht,{className:"max-w-md",children:[Fe,je]}),e[94]=je,e[95]=Fe,e[96]=De):De=e[96];let We;e[97]!==D||e[98]!==Ne||e[99]!==De?(We=t.jsx(mt,{open:D,onOpenChange:Ne,children:De}),e[97]=D,e[98]=Ne,e[99]=De,e[100]=We):We=e[100];let Le;return e[101]!==ge||e[102]!==We?(Le=t.jsxs(t.Fragment,{children:[ge,We]}),e[101]=ge,e[102]=We,e[103]=Le):Le=e[103],Le};function Fi(o){return o.status==="done"||o.status==="error"}function Ri(o){return o.status==="error"}function Bi(o){return o.slice(o.indexOf("/")+1)}function Di(o){return[o]}function Ei(o){return[o]}function Mi(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(T,{name:"loader-4",className:"size-3.5 animate-spin text-primary"}),o.status==="done"&&t.jsx(T,{name:"check",className:"size-3.5 text-success"}),o.status==="error"&&t.jsx(T,{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:Se("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 Ti(o){return o.stopPropagation()}const Li=({runMutation:o,onMutationComplete:e,onMutationError:i,onPathsComplete:m,scheduleFlush:N})=>{const f=[];let p=!1;return{enqueue:g=>{const w=f[f.length-1];if(w?.directory===g.directory&&w.direction===g.direction){g.paths.forEach(E=>w.paths.add(E));return}f.push(g)},flush:()=>{if(p)return;const g=f.shift();if(!g)return;p=!0;const w={directory:g.directory,direction:g.direction,paths:Array.from(g.paths),rollback:g.rollback};(async()=>{try{await o(w),e(w)}catch(E){i(w,E)}finally{m(w.paths),p=!1,f.length>0&&N()}})()},clear:()=>{f.length=0},size:()=>f.length,isRunning:()=>p}},Oi=15e3,Ai=40,zi=20,Ir={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:"},Pr=(o,e)=>{const i=o.toLowerCase(),m=/^([a-z]+)(?:\(.*\))?!?:/,N=i.match(m);if(N){const x=N[1],g=Ir[x];if(g)return e.find(w=>w.code===g)||null}const f=i.split(" ")[0],p=Ir[f];return p&&e.find(x=>x.code===p)||null},Gi=20,yt=new Map,_i=(o,e)=>{if(yt.delete(o),yt.set(o,e),yt.size>Gi){const i=yt.keys().next().value;i!==void 0&&yt.delete(i)}},Ze=o=>(o||"").replace(/\\/g,"/").replace(/\/+$/,""),Fr=o=>{const e=o.index?.trim();return!!(e&&e!=="?")},$i=o=>{const e=o.working_dir?.trim(),i=o.index?.trim();return!!(e||i==="?")},cc=({isActive:o})=>{const{t:e}=nt(),{git:i}=xa(),m=wa(),[N,f]=l.useState(null),[p,x]=l.useState(null),g=rt(s=>s.currentSessionId),w=rt(s=>s.newSessionDraft),E=rt(s=>s.setDraftBootstrapPendingDirectory),b=rt(s=>s.worktreeMetadata),V=rt(s=>s.availableWorktrees),O=Ze(m),S=l.useMemo(()=>{if(!O)return;const s=V.find(n=>Ze(n.path)===O);if(s)return s;for(const n of b.values())if(Ze(n.path)===O)return n},[V,O,b]),z=l.useMemo(()=>{if(g)return b.get(g)??S;if(w?.open)return S},[g,S,w?.open,b]),{profiles:C,globalIdentity:y,defaultGitIdentityId:D,loadProfiles:k,loadGlobalIdentity:R,loadDefaultGitIdentityId:P}=Ga(pr(s=>({profiles:s.profiles,globalIdentity:s.globalIdentity,defaultGitIdentityId:s.defaultGitIdentityId,loadProfiles:s.loadProfiles,loadGlobalIdentity:s.loadGlobalIdentity,loadDefaultGitIdentityId:s.loadDefaultGitIdentityId}))),{rootIsGitRepo:F,gitDirectory:r,nestedRepos:Y}=ya(m??null,{enabled:o}),B=ba(r??null),u=va(r??null),M=ja(s=>g?s.getAttachment(g):void 0),te=M?Ca(M):[],U=M&&!M.degraded&&!M.legacy?M.worktreeRoot??void 0:void 0,G=Aa(m,z,u?.current??void 0),_=Na(r??null),X=Sa(r??null),$=ka(r??null),le=Va(r??null),ae=Ia(r??null),{setActiveDirectory:ce,ensureAll:ie,fetchStatus:h,fetchBranches:d,fetchLog:I,setLogMaxCount:A,fetchIdentity:q,prefetchDiffs:ne,clearDiffCache:se,moveStatusPathsOptimistically:J,restoreStatus:we,bumpIndexRevision:K,ensureNestedRepos:de,selectNestedRepo:ke}=Pa(pr(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}))),ye=Ft(s=>s.isMobile),me=Ft(s=>s.openContextDiff),xe=Ft(s=>s.openContextSurface),Ve=u?.current??null,Re=Fa(s=>!r||!Ve?null:Ra(s.entries,r,Ve)),ue=Ft(s=>s.navigateToDiff),_e=l.useRef(null),Ae=l.useRef(null),je=l.useRef(null),be=l.useRef(!0);l.useEffect(()=>()=>{be.current=!1},[]);const Ce=l.useCallback(()=>{_e.current!==null&&(window.clearTimeout(_e.current),_e.current=null)},[]),Me=l.useCallback(s=>{Ce(),_e.current=window.setTimeout(()=>{_e.current=null,Ze(s)===Ze(r)&&h(s,i,{silent:!0})},Oi)},[Ce,r,h,i]);l.useEffect(()=>Ce,[Ce]);const ee=l.useCallback(()=>{Ae.current!==null&&(window.clearTimeout(Ae.current),Ae.current=null)},[]),he=l.useCallback(()=>{Ae.current===null&&(Ae.current=window.setTimeout(()=>{Ae.current=null,je.current?.()},0))},[]),Be=l.useCallback(async(s,n,a)=>{if(n==="stage"){if(i.stageGitFiles){await i.stageGitFiles(s,a);return}await Promise.all(a.map(c=>i.stageGitFile(s,c)));return}if(i.unstageGitFiles){await i.unstageGitFiles(s,a);return}await Promise.all(a.map(c=>i.unstageGitFile(s,c)))},[i]),ge=l.useMemo(()=>Li({runMutation:({directory:s,direction:n,paths:a})=>Be(s,n,a),onMutationComplete:({directory:s})=>{K(s),Me(s)},onMutationError:({directory:s,direction:n,rollback:a},c)=>{a?.(),K(s),Me(s);const j=e(n==="stage"?"gitView.toast.stageFileFailed":"gitView.toast.unstageFileFailed");v.error(c instanceof Error?c.message:j)},onPathsComplete:s=>{Ys(n=>{const a=new Set(n);return s.forEach(c=>a.delete(c)),a})},scheduleFlush:he}),[K,Be,he,Me,e]);l.useEffect(()=>(je.current=ge.flush,()=>{je.current=null}),[ge]),l.useEffect(()=>()=>ge.clear(),[ge]),l.useEffect(()=>ee,[ee]),l.useEffect(()=>{if(!o)return;if(!m){f(null);return}const s=Ze(m)??m;f({directory:s,status:null});let n=!1,a=null;const c=async()=>{try{const j=await Oa(m);if(n)return;f({directory:s,status:j.status}),j.status==="pending"&&(a=window.setTimeout(()=>{c()},500))}catch{n||f({directory:s,status:null})}};return c(),()=>{n=!0,a!==null&&window.clearTimeout(a)}},[o,m]);const Ne=Ze(w?.bootstrapPendingDirectory??null),Ie=!!(m&&Ne&&Ne===Ze(m)),Te=Ba(m??null),oe=Ze(m),Pe=N?.directory===oe?N.status:null,Fe=!!(m&&(Te||Pe==="pending"||Ie&&w?.pendingWorktreeRequestId)),De=!!(oe&&p?.directory===oe);l.useEffect(()=>{if(!oe)return;if(Pe==="failed"){E(null),x(n=>n?.directory===oe?null:n);return}if(Fe){x(n=>n?.directory===oe&&n.status==="refreshing"?n:{directory:oe,status:"refreshing"});return}if(p?.directory!==oe||p.status!=="refreshing"||!r||!i)return;let s=!1;return h(r,i,{force:!0,silent:!0,throwOnError:!0}).then(()=>{s||x(n=>n?.directory===oe?null:n)}).catch(()=>{s||x(n=>n?.directory===oe?{...n,status:"failed"}:n)}),()=>{s=!0}},[h,i,r,Fe,oe,Pe,p,E]);const We=Fe||De,Le=De&&p?.status==="failed",Q=l.useMemo(()=>r?yt.get(r)??null:null,[r]),fe=Da(s=>s.settingsGitmojiEnabled),[Oe,et]=l.useState(null),{gitmojis:$e}=Za(fe);l.useEffect(()=>{const s=U||G?.projectDirectory;if(!s){et(null);return}let n=!1;return Ea(s).then(a=>{if(n)return;const c=a.trim();et(c&&c!=="HEAD"?c:null)}).catch(()=>{n||et(null)}),()=>{n=!0}},[U,G?.projectDirectory]);const[Ue,He]=l.useState(Q?.commitMessage??""),[pt,Tr]=l.useState([]),[Lr,ss]=l.useState(!1),Hs=l.useRef(null),[Ws,Dt]=l.useState(null),[Or,rs]=l.useState(!1),[Us,Ks]=l.useState(null),[Ye,Ar]=l.useState(25),[zr,Js]=l.useState(!1),{triggerFireworks:Gr}=za(),qs=l.useRef(new Map),Et=l.useRef(0),ns=l.useCallback(()=>{Et.current+=1,be.current&&Js(!0)},[]),as=l.useCallback(()=>{Et.current=Math.max(0,Et.current-1),be.current&&Et.current===0&&Js(!1)},[]),[is,Mt]=l.useState(new Set),[_r,Ys]=l.useState(new Set),[os,Qs]=l.useState(!1),[$r,Hr]=l.useState(0),[Wr,Xs]=l.useState(!1),[ls,cs]=l.useState(Q?.generatedHighlights??[]),Ur=_r.size>0||ge.size()>0||ge.isRunning(),Zs=l.useCallback(()=>{const s=Hs.current;s&&requestAnimationFrame(()=>{requestAnimationFrame(()=>{s.scrollTo({top:s.scrollHeight,behavior:"smooth"})})})},[]),ds=U||G?.projectDirectory||null,us=u?.current||null,Kr=l.useMemo(()=>{const s=u?.tracking;return s?s.startsWith("origin/"):!0},[u?.tracking]),er=l.useMemo(()=>{const s=G?.createdFromBranch,n=typeof s=="string"?s.trim():"",a=typeof u?.current=="string"?u.current.trim():"",c=typeof Oe=="string"?Oe.trim():"";return n?n===a&&n.startsWith("opencode/")&&c.length>0&&c!==n?c:n:c||a||"HEAD"},[G?.createdFromBranch,u,Oe]),Tt=l.useCallback(()=>{cs([])},[]),[ms,Jr]=l.useState(new Set),[Lt,qr]=l.useState(new Map),[Ot,hs]=l.useState(new Set),gs=l.useRef(Lt),Nt=l.useRef(Ot),[Yr,vt]=l.useState(null),[xt,fs]=l.useState(null),[tr,sr]=l.useState(""),[Ee,At]=l.useState(null),[Qr,rr]=l.useState(!1),[Xr,nr]=l.useState(!1),[ps,xs]=l.useState([]),[Zr,ar]=l.useState(null),[ir,ws]=l.useState(null),[en,zt]=l.useState([]),[tn,Qe]=l.useState(!1),[sn,tt]=l.useState([]),[Gt,st]=l.useState("merge"),[rn,ys]=l.useState(null),[bs,or]=l.useState(!1),[vs,nn]=l.useState(100),[an,on]=l.useState(0),Xe=l.useMemo(()=>g?`openchamber.conflict:${g}`:null,[g]),at=l.useCallback((s,n,a)=>{if(!Xe||typeof window>"u")return;const c={directory:s,conflictFiles:n,operation:a};window.localStorage.setItem(Xe,JSON.stringify(c))},[Xe]),Ke=l.useCallback(()=>{!Xe||typeof window>"u"||window.localStorage.removeItem(Xe)},[Xe]);l.useEffect(()=>{if(!Xe||typeof window>"u"||!r)return;const s=window.localStorage.getItem(Xe);if(s)try{const n=JSON.parse(s);if(n.directory!==r){window.localStorage.removeItem(Xe);return}tt(n.conflictFiles??[]),st(n.operation??"merge"),Qe(!0)}catch{window.localStorage.removeItem(Xe)}},[Xe,r]);const[ln,js]=l.useState(!1),[_t,St]=l.useState(null),[Cs,lr]=l.useState("merge"),[Ns,cr]=l.useState(""),cn=l.useCallback(s=>{Ma(s).then(n=>{if(n.ok){v.success(e("gitView.toast.commitHashCopied"));return}v.error(e("gitView.toast.copyFailed"))})},[e]),dn=l.useCallback(s=>{Jr(n=>{const a=new Set(n);return a.has(s)?a.delete(s):a.add(s),a})},[]);l.useEffect(()=>{gs.current=Lt},[Lt]),l.useEffect(()=>{Nt.current=Ot},[Ot]),l.useEffect(()=>{if(!r||!i)return;const s=Array.from(ms).filter(a=>!gs.current.has(a)&&!Nt.current.has(a));if(s.length===0)return;let n=!1;return hs(a=>{const c=new Set(a);for(const j of s)c.add(j);return Nt.current=c,c}),Promise.all(s.map(a=>i.getCommitFiles(r,a).then(c=>({hash:a,files:c.files})).catch(c=>(console.error("Failed to fetch commit files:",c),{hash:a,files:[]})))).then(a=>{n||(qr(c=>{const j=new Map(c);for(const{hash:L,files:Z}of a)j.set(L,Z);return gs.current=j,j}),hs(c=>{const j=new Set(c);for(const{hash:L}of a)j.delete(L);return Nt.current=j,j}))}),()=>{n=!0,hs(a=>{let c=!1;const j=new Set(a);for(const L of s)j.delete(L)&&(c=!0);return c?(Nt.current=j,j):a})}},[ms,r,i]),l.useEffect(()=>{if(!r)return;const s=yt.get(r)??null;He(s?.commitMessage??""),cs(s?.generatedHighlights??[])},[r]),l.useEffect(()=>{r&&_i(r,{directory:r,commitMessage:Ue,generatedHighlights:ls})},[Ue,r,ls]),l.useEffect(()=>{o&&(k(),R(),P())},[o,k,R,P]),l.useEffect(()=>{if(!o)return;if(!r||!i?.getRemoteUrl||B!==!0){fs(null);return}let s=!1;return i.getRemoteUrl(r).then(n=>{s||fs(n)}).catch(()=>{s||fs(null)}),()=>{s=!0}},[o,r,i,B]);const $t=l.useCallback(async()=>{if(!r||!i?.getRemotes||B!==!0){xs([]);return}try{const s=await i.getRemotes(r);be.current&&xs(s)}catch{be.current&&xs([])}},[r,i,B]);l.useEffect(()=>{o&&$t()},[o,$t]),l.useEffect(()=>{o&&m&&r&&(ce(m),ie(r,i))},[o,m,r,ce,ie,i]),l.useEffect(()=>{if(o&&r)return Ta.onGitRefreshHint(s=>{Ze(s.directory)===Ze(r)&&(s.paths?.length&&se(r,s.paths),h(r,i,{silent:!0}))})},[o,se,r,h,i]);const re=l.useCallback(async(s=!0)=>{if(r)try{await Promise.all([h(r,i),d(r,i)])}catch(n){if(s){const a=n instanceof Error?n.message:e("gitView.toast.refreshRepositoryFailed");v.error(a)}}},[r,i,h,d,e]),pe=l.useCallback(async()=>{r&&await I(r,i,Ye)},[r,i,I,Ye]),Ss=l.useCallback(async()=>{r&&await q(r,i)},[r,i,q]);l.useEffect(()=>{if(!o||!r||!i?.hasLocalIdentity||B!==!0)return;const s=typeof D=="string"?D.trim():"";if(!s||s==="global"||qs.current.get(r)===s)return;let a=!1;return(async()=>{try{const j=await i.hasLocalIdentity?.(r);if(a||j===!0)return;ns(),await i.setGitIdentity(r,s),qs.current.set(r,s),await Ss()}catch(j){console.warn("Failed to auto-apply default git identity:",j)}finally{a||as()}})(),()=>{a=!0}},[o,ns,r,D,as,i,B,Ss]);const it=l.useMemo(()=>u?[...u.files??[]].sort((n,a)=>n.path.localeCompare(a.path)):[],[u]),Je=l.useMemo(()=>it.filter(Fr),[it]),ks=l.useMemo(()=>it.filter($i),[it]);l.useEffect(()=>{if(!o||!r||it.length===0)return;const s=[],n=new Set,a=j=>{!j||n.has(j)||(n.add(j),s.push(j))};if(Je.forEach(j=>a(j.path)),pt.forEach(a),it.slice(0,zi).forEach(j=>a(j.path)),s.length===0)return;const c=window.setTimeout(()=>{ne(r,i,s,{maxFiles:Ai})},120);return()=>{window.clearTimeout(c)}},[o,it,r,i,ne,Je,pt]);const Vs=s=>s?.pushed[0]?.remote||u?.tracking?.split("/")[0]||ze.find(n=>n.name==="origin")?.name||ze[0]?.name||"origin",dr=async(s,n)=>{if(r){Dt(s);try{const a=c=>{const j=`${c.name}/`,L=u?.tracking?.startsWith(j)?u.tracking.slice(j.length):void 0;return{remote:c.name,branch:L,rebase:!0}};if(s==="fetch"){if(!n)throw new Error("No remote available for fetch");await i.gitFetch(r,{remote:n.name}),v.success(e("gitView.toast.fetchedFromRemote",{name:n.name}))}else if(s==="pull"){if(!n)throw new Error("No remote available for pull");const c=await i.gitPull(r,a(n));v.success(c.files.length===1?e("gitView.toast.pulledFilesSingle",{count:c.files.length,name:n.name}):e("gitView.toast.pulledFilesPlural",{count:c.files.length,name:n.name}))}else if(s==="push"){const c=await i.gitPush(r);v.success(c.pushed.length>0?e("gitView.toast.pushedToUpstream",{name:Vs(c)}):e("gitView.toast.alreadyUpToDate"))}else if(s==="sync"){if(!n)throw new Error("No remote available for sync");let c=0;const j=await xr({git:i,directory:r,remote:n,dirtyWorktreeError:e("gitView.toast.commitOrStashBeforeSync"),onPulled:H=>{c=H.files.length}}),L=j.pushed.length>0,Z=Vs(j);c>0&&L&&Z===n.name?v.success(c===1?e("gitView.toast.syncedPulledSingleAndPushed",{count:c,name:n.name}):e("gitView.toast.syncedPulledPluralAndPushed",{count:c,name:n.name})):(c>0&&v.success(c===1?e("gitView.toast.pulledFilesSingle",{count:c,name:n.name}):e("gitView.toast.pulledFilesPlural",{count:c,name:n.name})),L&&v.success(e("gitView.toast.pushedToUpstream",{name:Z})),c===0&&!L&&v.success(e("gitView.toast.alreadyUpToDate")))}await re(!1),await pe()}catch(a){const c=a instanceof Error?a.message:e("gitView.toast.syncActionFailed",{action:s==="sync"?e("gitView.sync.syncChanges"):s==="pull"?e("gitView.sync.pull"):s});v.error(c)}finally{Dt(null)}}},un=l.useCallback(async s=>{if(!r)return;const n=s.name.trim();if(!n){v.error(e("gitView.toast.remoteNameRequired"));return}if(n==="origin"){v.error(e("gitView.toast.cannotRemoveOriginRemote"));return}ar(n);try{await i.removeRemote(r,{remote:n}),v.success(e("gitView.toast.removedRemote",{name:n})),await Promise.all([re(!1),$t()])}catch(a){const c=a instanceof Error?a.message:`Failed to remove ${n}`;v.error(c)}finally{ar(null)}},[r,i,$t,re,e]),ur=async(s={})=>{if(!r)return;if(!Ue.trim()){v.error(e("gitView.toast.enterCommitMessage"));return}const n=Je.map(c=>c.path).sort();if(n.length===0){v.error(e("gitView.toast.stageFileToCommit"));return}const a=s.pushAfter?"commitAndPush":"commit";Ks(a);try{if(await i.createGitCommit(r,Ue.trim(),{files:n,stageFiles:[]}),K(r),v.success(e("gitView.toast.commitCreated")),He(""),Tt(),await re(),s.pushAfter){const c=u?.tracking?.split("/")[0],j=ze.find(L=>L.name===c)??ze[0];if(!j)throw new Error(e("mobile.changes.noRemote"));Dt("sync"),await xr({git:i,directory:r,remote:j,dirtyWorktreeError:e("gitView.toast.commitOrStashBeforeSync"),onPushed:L=>{v.success(e("gitView.toast.pushedToUpstream",{name:Vs(L)})),Gr()}}),await re(!1)}else await re(!1);await pe(),Hr(c=>c+1)}catch(c){const j=c instanceof Error?c.message:e("gitView.toast.createCommitFailed");v.error(j)}finally{Ks(null),s.pushAfter&&Dt(null)}},mn=l.useCallback(async()=>{if(!r)return;const s=Je.map(n=>n.path).sort();if(s.length===0){v.error(e("gitView.toast.stageFileToDescribe"));return}console.error("[git-generation][browser] generate button clicked",{directory:r,selectedFiles:s.length}),Xs(!0);try{const{message:n}=await fr(r,s),a=n.subject?.trim()??"",c=Array.isArray(n.highlights)?n.highlights:[];if(a){let j=a;if(fe&&$e.length>0){const L=Pr(a,$e);if(L){const{code:Z,emoji:H}=L;!a.startsWith(Z)&&!a.startsWith(H)&&(j=`${Z} ${a}`)}}He(j)}cs(c),Zs()}catch(n){console.error("[git-generation][browser] GitView generate handler failed",{message:n instanceof Error?n.message:String(n),error:n});const a=n instanceof Error?n.message:e("gitView.toast.generateCommitMessageFailed");v.error(a)}finally{Xs(!1)}},[r,Je,fe,$e,Zs,e]),Is=s=>s.reason==="attention"?`${s.attentionReason} in progress`:s.reason==="missing"?"worktree is missing":"worktree is invalid",hn=async(s,n)=>{if(!r||!u)return;const a=Ds(M);if(a.length>0){v.error(e("gitView.toast.cannotCreateBranch",{reason:Is(a[0])}));return}const c=u.current??null,j=n?.name??"origin";try{await i.createBranch(r,s,c??"HEAD"),v.success(e("gitView.toast.createdBranch",{name:s})),await i.checkoutBranch(r,s);let L=!1;try{await i.gitPush(r,{remote:j,branch:s,options:["--set-upstream"]}),L=!0}catch(Z){const H=Z instanceof Error?Z.message:`Unable to push new branch to ${j}.`;v.warning(e("gitView.toast.branchCreatedLocally"),{description:t.jsxs("span",{className:"text-foreground/80 dark:text-foreground/70",children:["Upstream setup failed: ",H]})})}await re(),await pe(),L&&v.success(e("gitView.toast.upstreamSet",{branch:s,remote:j}))}catch(L){const Z=L instanceof Error?L.message:e("gitView.toast.createBranchFailed");throw v.error(Z),L}},gn=async(s,n)=>{if(!r)return;const a=Ds(M);if(a.length>0){v.error(e("gitView.toast.cannotRenameBranch",{reason:Is(a[0])}));return}try{await i.renameBranch(r,s,n),v.success(e("gitView.toast.renamedBranch",{oldName:s,newName:n})),await re(),await pe()}catch(c){const j=c instanceof Error?c.message:e("gitView.toast.renameBranchFailed",{oldName:s,newName:n});v.error(j)}},fn=async s=>{if(!r)return;const n=Ds(M);if(n.length>0){v.error(e("gitView.toast.cannotCheckout",{reason:Is(n[0])}));return}const a=s.replace(/^remotes\//,"");if(u?.current!==a){if((u?.files?.length??0)>0){St(a);return}await Ps(a)}},Ps=async s=>{if(!r)return;const n=s;try{const a=await i.checkoutBranch(r,n);v.success(e("gitView.toast.checkedOut",{name:a?.branch||n})),await re(),await pe()}catch(a){const c=a instanceof Error?a.message:e("gitView.toast.checkoutFailed",{name:n});v.error(c)}},pn=async s=>{if(r){ns();try{await i.setGitIdentity(r,s.id),v.success(e("gitView.toast.appliedIdentity",{name:s.name})),await Ss()}catch(n){const a=n instanceof Error?n.message:e("gitView.toast.applyIdentityFailed");v.error(a)}finally{as()}}},kt=l.useMemo(()=>_?.all?_.all.filter(s=>!s.startsWith("remotes/")).sort():[],[_]),ot=l.useMemo(()=>_?.all?_.all.filter(s=>s.startsWith("remotes/")).map(s=>s.replace(/^remotes\//,"")).sort():[],[_]),ze=l.useMemo(()=>{if(ps.length>0)return ps;const s=new Set,n=u?.tracking?.trim();n&&n.includes("/")&&s.add(n.split("/")[0]);for(const a of ot){const c=a.indexOf("/");c>0&&s.add(a.slice(0,c))}return s.size===0&&xt&&s.add("origin"),Array.from(s).map(a=>({name:a,fetchUrl:xt??"",pushUrl:xt??""}))},[ps,ot,xt,u?.tracking]),lt=u?.current??null,mr=l.useMemo(()=>{const s=u?.tracking?.trim().split("/")[0];return(s&&_?.defaultBranches?.[s])??_?.defaultBranches?.origin},[_,u?.tracking]),wt=l.useMemo(()=>_a({remoteNames:new Set(ze.map(s=>s.name)),localBranches:kt,worktreeCreatedFromBranch:G?.createdFromBranch,rootBranchHint:Oe,defaultBranch:mr,headBranch:lt}),[lt,mr,ze,kt,Oe,G?.createdFromBranch]),xn=l.useMemo(()=>ze.map(a=>a.name).map(a=>`${a}/${wt}`).find(a=>ot.includes(a))??wt,[wt,ze,ot]),wn=l.useMemo(()=>{const s=new Map;y&&s.set(y.id,y);let n=null;if(xt)try{let a=xt.trim();a.startsWith("git@")&&(a=`https://${a.slice(4).replace(":","/")}`),a.endsWith(".git")&&(a=a.slice(0,-4));const c=new URL(a);n=c.hostname+c.pathname}catch{}for(const a of C){if(a.authType!=="token"){s.set(a.id,a);continue}const c=a.host;if(!c){s.set(a.id,a);continue}if(!c.includes("/")){s.set(a.id,a);continue}n&&n===c&&s.set(a.id,a)}return Array.from(s.values())},[C,y,xt]),yn=l.useMemo(()=>{if($?.userName&&$?.userEmail){const s=C.find(n=>n.userName===$.userName&&n.userEmail===$.userEmail);return s||(y&&y.userName===$.userName&&y.userEmail===$.userEmail?y:{id:"local-config",name:$.userName,userName:$.userName,userEmail:$.userEmail,sshKey:$.sshCommand?.replace("ssh -i ","")??null,color:"info",icon:"user"})}return y??null},[$,C,y]),bn=Je.length,vn=le||Ws!==null||Us!==null,jn=!!(G&&ds&&us&&Kr),hr=!!lt,ct=jn&&ds&&us&&G?{repoRoot:ds,sourceBranch:us,worktreeMetadata:G}:null;l.useEffect(()=>{if(!r||!i||!X?.all?.length||!lt||!wt||lt===wt){vt(null);return}let s=!1;return(async()=>{try{const a=await i.getGitLog(r,{from:wt,to:"HEAD",maxCount:Ye});if(s)return;const c=new Set((a?.all??[]).map(L=>L.hash).filter(L=>typeof L=="string"&&L.length>0));if(c.size===0){vt(null);return}const j=X.all.findIndex(L=>!c.has(L.hash));if(j===0){vt(null);return}if(j===-1){vt({insertBeforeIndex:X.all.length,branchName:lt,direction:"up"});return}vt({insertBeforeIndex:j,branchName:lt,direction:"up"})}catch{s||vt(null)}})(),()=>{s=!0}},[wt,lt,r,i,X,Ye]),l.useEffect(()=>{ys(null)},[r]),l.useEffect(()=>{if(Ee!=="graph"||!r){Ee!=="graph"&&ys(null);return}let s=!1;return or(!0),i.getGitLog(r,{maxCount:vs,all:!0}).then(n=>{s||ys(n)}).catch(n=>{console.error("Failed to fetch graph log:",n)}).finally(()=>{s||or(!1)}),()=>{s=!0}},[Ee,r,vs,an,i]);const Vt=l.useCallback((s,n)=>{if(!r||s.length===0)return;const a=Array.from(new Set(s));Ys(j=>{const L=new Set(j);return a.forEach(Z=>L.add(Z)),L});const c=J(r,a,n);ge.enqueue({directory:r,direction:n,paths:new Set(a),rollback:()=>we(r,c)}),he()},[r,ge,J,we,he]),Fs=l.useCallback(async s=>{if(r){Mt(n=>{const a=new Set(n);return a.add(s),a});try{await i.revertGitFile(r,s,{scope:"working"}),v.success(e("gitView.toast.revertedFile",{path:s})),await re(!1)}catch(n){const a=n instanceof Error?n.message:e("gitView.toast.revertFailed");v.error(a)}finally{Mt(n=>{const a=new Set(n);return a.delete(s),a})}}},[r,re,i,e]),It=l.useCallback(async(s,n,a="all")=>{if(!r||s.length===0)return;const c=Array.from(new Set(s));if(os||c.some(H=>is.has(H)))return;const j=new Set(Je.map(H=>H.path)),L=a==="all"&&c.some(H=>j.has(H));n&&Qs(!0),Mt(H=>{const qe=new Set(H);return c.forEach(Bs=>qe.add(Bs)),qe});const Z=[];try{if(await Promise.all(c.map(async H=>{try{await i.revertGitFile(r,H,{scope:a})}catch(qe){Z.push({path:H,message:qe instanceof Error?qe.message:e("gitView.toast.revertFailed")})}})),L&&Z.length<c.length&&K(r),await re(!1),Z.length===0)v.success(c.length===1?e("gitView.toast.revertedFilesSingle",{count:c.length}):e("gitView.toast.revertedFilesPlural",{count:c.length}));else if(Z.length===c.length)v.error(Z[0]?.message||e("gitView.toast.revertFailed"));else{const H=c.length-Z.length;v.warning(H===1?e("gitView.toast.revertedSomeSingle",{success:H,failed:Z.length}):e("gitView.toast.revertedSomePlural",{success:H,failed:Z.length}))}}finally{Mt(H=>{const qe=new Set(H);return c.forEach(Bs=>qe.delete(Bs)),qe}),n&&Qs(!1)}},[K,r,i,os,re,is,Je,e]),Cn=l.useCallback(async s=>{await It(s,!0)},[It]),Nn=l.useCallback(async s=>{await It(s,!1,"working")},[It]),Rs=l.useCallback((s,n)=>{if(m&&!ye){me(m,s,n);return}ue(s,n)},[m,ye,ue,me]),Sn=l.useCallback(()=>rs(!0),[]),kn=l.useMemo(()=>{const s=[];return Je.length>0&&s.push({id:"staged",title:e("gitView.changes.stagedTitle"),entries:Je,statsScope:"staged",actionSymbol:"-",actionAllLabel:e("gitView.changes.unstageAllAria"),getActionLabel:n=>e("gitView.changes.unstageFileAria",{path:n}),onActionFile:n=>{Vt([n],"unstage")},onActionAll:n=>{Vt(n,"unstage")},onViewDiff:n=>Rs(n,!0),onRevertFile:Fs,showRevertActions:!1,accent:!0}),ks.length>0&&s.push({id:"unstaged",title:e("gitView.changes.title"),entries:ks,statsScope:"working",actionSymbol:"+",actionAllLabel:e("gitView.changes.stageAllAria"),getActionLabel:n=>e("gitView.changes.stageFileAria",{path:n}),onActionFile:n=>{Vt([n],"stage")},onActionAll:n=>{Vt(n,"stage")},onViewDiff:n=>Rs(n,!1),onRevertFile:Fs}),s},[Fs,Rs,Vt,Je,e,ks]),Vn=l.useCallback(s=>{if(s.length===0)return;const n=s.map(a=>a.trim()).filter(Boolean);if(n.length===0){Tt();return}He(a=>{const c=a.trim(),j=c.length>0?`
4
4