@jingyi0605/codingns 0.7.0 → 0.7.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 (81) hide show
  1. package/dist/public/assets/{AdaptiveButlerPage-B8mg25ze.js → AdaptiveButlerPage-174Mg-9X.js} +1 -1
  2. package/dist/public/assets/{App-C2lNmeKL.js → App-BRupl2Ul.js} +3 -3
  3. package/dist/public/assets/{BootstrapPage-CAVA-a8h.js → BootstrapPage-BKzDRWtn.js} +1 -1
  4. package/dist/public/assets/ConversationPage-BLQXBsBc.js +6 -0
  5. package/dist/public/assets/{DesktopDetachPreviewPage-B37DUL15.js → DesktopDetachPreviewPage-DtHzSQOX.js} +1 -1
  6. package/dist/public/assets/{DesktopWindowPage-CDA6l7lm.js → DesktopWindowPage-ppc3h5sO.js} +1 -1
  7. package/dist/public/assets/{FileContextPanel-CMGTtAB6.js → FileContextPanel-h0kvRbSR.js} +1 -1
  8. package/dist/public/assets/GitSidebar-TlaPNhxG.js +6 -0
  9. package/dist/public/assets/{MobileCreateSessionSheet-THIrIzJ3.js → MobileCreateSessionSheet-Bp4xOKdt.js} +1 -1
  10. package/dist/public/assets/{MobileTopHeaderFrame-D-X7pVnV.js → MobileTopHeaderFrame-BawK1vUE.js} +1 -1
  11. package/dist/public/assets/{MobileWorkspaceSwitcherHeader-Cczi7RYu.js → MobileWorkspaceSwitcherHeader-CWPXAMoX.js} +1 -1
  12. package/dist/public/assets/{RelayConnectEntryPage-D417tgWj.js → RelayConnectEntryPage-B0-OBZXu.js} +1 -1
  13. package/dist/public/assets/{ServerSettingsModal-BdTxbRbU.js → ServerSettingsModal-P_pcDvyR.js} +1 -1
  14. package/dist/public/assets/{SessionIndexPage-D5iefVcc.js → SessionIndexPage-r8AZ0pJv.js} +1 -1
  15. package/dist/public/assets/{SettingsPage-iCFe_DHP.js → SettingsPage-B-uNuML1.js} +1 -1
  16. package/dist/public/assets/{TerminalManagerPanel-CtldwWz8.js → TerminalManagerPanel-Bkgr9ZNV.js} +1 -1
  17. package/dist/public/assets/{TerminalPage-DAzQTmQC.js → TerminalPage-BpFpA3My.js} +1 -1
  18. package/dist/public/assets/{TerminalRuntimeFallbackModal-DLOhAvaq.js → TerminalRuntimeFallbackModal-D_BUt6HD.js} +1 -1
  19. package/dist/public/assets/ToolFilesPage-BE9-iHL0.js +1 -0
  20. package/dist/public/assets/ToolGitPage-ChUkwKgK.js +1 -0
  21. package/dist/public/assets/ToolProcessesPage-C4dli_mi.js +1 -0
  22. package/dist/public/assets/{ToolsHomePage-rU3V8mmh.js → ToolsHomePage-ZmcEotg4.js} +1 -1
  23. package/dist/public/assets/{WorkbenchLandingPage-BudM2C69.js → WorkbenchLandingPage-DZzbQZHt.js} +1 -1
  24. package/dist/public/assets/WorkbenchLayout-Cht6Un5X.js +244 -0
  25. package/dist/public/assets/{WorkbenchModal-DMQutm1x.js → WorkbenchModal-CAj_TqWW.js} +1 -1
  26. package/dist/public/assets/WorkbenchShellRoute-DzbO05cD.js +1 -0
  27. package/dist/public/assets/{WorkspaceDebugDetailPage-CHqo-uDf.js → WorkspaceDebugDetailPage-qku5AzZQ.js} +1 -1
  28. package/dist/public/assets/{WorkspaceDetailPage-CGkAH1W-.js → WorkspaceDetailPage-BtrSsZVP.js} +1 -1
  29. package/dist/public/assets/{WorkspaceHomePage-CfuPVITd.js → WorkspaceHomePage-BhekFDSu.js} +1 -1
  30. package/dist/public/assets/{client-runtime-manager-CKbtaemV.js → client-runtime-manager-CgogHxt0.js} +1 -1
  31. package/dist/public/assets/file-tree-icon-CLfk31E7.js +3 -0
  32. package/dist/public/assets/index-CkkzIvxs.css +1 -0
  33. package/dist/public/assets/index-DvkfRpBe.js +42 -0
  34. package/dist/public/assets/{login-direct-candidate-resolver-DjJMbqB7.js → login-direct-candidate-resolver-DvJnjQCi.js} +1 -1
  35. package/dist/public/assets/{model-switch-api-T55eW6D4.js → model-switch-api-Dps4yN2t.js} +1 -1
  36. package/dist/public/assets/{preferences-service-BTKBl5xM.js → preferences-service-ohVuseA-.js} +1 -1
  37. package/dist/public/assets/realtime-client-CIci6rCd.js +1 -0
  38. package/dist/public/assets/{relay-entry-sdeFnTbY.js → relay-entry-WiotM2TL.js} +1 -1
  39. package/dist/public/assets/styles-DkbkRgWw.css +1 -0
  40. package/dist/public/assets/{terminal-runtime-meta-Cvt1ID92.js → terminal-runtime-meta-C3Mr0zW5.js} +1 -1
  41. package/dist/public/assets/{useRegisteredDebugTemplates-O-ymgLd9.js → useRegisteredDebugTemplates-DVQBPV-V.js} +1 -1
  42. package/dist/public/index.html +2 -2
  43. package/dist/server/modules/git/git-controller.d.ts +3 -1
  44. package/dist/server/modules/git/git-controller.js +9 -2
  45. package/dist/server/modules/git/git-controller.js.map +1 -1
  46. package/dist/server/modules/git/git-read-service.js +2 -1
  47. package/dist/server/modules/git/git-read-service.js.map +1 -1
  48. package/dist/server/modules/git/git-remote-credential-service.d.ts +1 -0
  49. package/dist/server/modules/git/git-remote-credential-service.js +4 -0
  50. package/dist/server/modules/git/git-remote-credential-service.js.map +1 -1
  51. package/dist/server/modules/git/types.d.ts +1 -0
  52. package/dist/server/modules/provider/codex-model-options.js +14 -15
  53. package/dist/server/modules/provider/codex-model-options.js.map +1 -1
  54. package/dist/server/modules/provider/provider-discovery-helper-process.js +2 -1
  55. package/dist/server/modules/provider/provider-discovery-helper-process.js.map +1 -1
  56. package/dist/server/server/create-server.js +1 -1
  57. package/dist/server/server/create-server.js.map +1 -1
  58. package/node_modules/@codingns/session-sync-core/dist/patch-builder.d.ts +6 -0
  59. package/node_modules/@codingns/session-sync-core/dist/patch-builder.js +398 -0
  60. package/node_modules/@codingns/session-sync-core/dist/patch-builder.js.map +1 -1
  61. package/node_modules/@codingns/session-sync-core/dist/providers/codex.js +47 -4
  62. package/node_modules/@codingns/session-sync-core/dist/providers/codex.js.map +1 -1
  63. package/node_modules/@codingns/session-sync-core/dist/runtime/codex-runtime.js +32 -4
  64. package/node_modules/@codingns/session-sync-core/dist/runtime/codex-runtime.js.map +1 -1
  65. package/package.json +5 -1
  66. package/dist/public/assets/ConversationPage-B6BGOX4C.js +0 -6
  67. package/dist/public/assets/GitSidebar--DCqBiGL.js +0 -6
  68. package/dist/public/assets/ToolFilesPage-D7thcDEv.js +0 -1
  69. package/dist/public/assets/ToolGitPage-uPRsxdcn.js +0 -1
  70. package/dist/public/assets/ToolProcessesPage-B1uOk0Ef.js +0 -1
  71. package/dist/public/assets/WorkbenchLayout-Dybarc1V.js +0 -244
  72. package/dist/public/assets/WorkbenchShellRoute-Cy4WBbzq.js +0 -1
  73. package/dist/public/assets/file-tree-icon-Bc0KADEl.js +0 -3
  74. package/dist/public/assets/index-DNRyROOG.css +0 -1
  75. package/dist/public/assets/index-oGylLBIX.js +0 -42
  76. package/dist/public/assets/realtime-client-ww7MnbTD.js +0 -1
  77. package/dist/public/assets/styles-BjPytabP.css +0 -1
  78. package/dist/server/modules/channels/wechat-claw-client.d.ts +0 -51
  79. package/dist/server/modules/channels/wechat-claw-client.js +0 -245
  80. package/dist/server/modules/channels/wechat-claw-client.js.map +0 -1
  81. /package/dist/public/assets/{styles-lhQGDlPF.js → styles-JKFlsYFv.js} +0 -0
@@ -1,6 +0,0 @@
1
- import{b as l,t as n,j as e,A as Bn}from"./index-oGylLBIX.js";import{u as Ri,e as wi,f as Ai,g as jn}from"./App-C2lNmeKL.js";import{u as Pi,ac as st,b as Cn,bp as Nn,w as Di,bq as Li,br as _i,bg as Fi,bs as vn,bt as Oi,bu as Sn,bv as ki,bj as Gi,bw as $i,bi as Bi,bx as Ui,bh as Un,by as Vi,bo as Wi,bz as Tn,Z as zi,c as Ki,bA as Ii,bB as Xi}from"./WorkbenchLayout-Dybarc1V.js";import{S as qi,y as Yi,z as Zi,e as Ji}from"./model-switch-api-T55eW6D4.js";import{F as Qi,r as Ft,a as Ot}from"./file-tree-icon-Bc0KADEl.js";import{W as Oe}from"./WorkbenchModal-DMQutm1x.js";import"./window-BVUB8gMK.js";import"./event-DvH9tcej.js";import"./relay-entry-sdeFnTbY.js";const Rt=56,Mn=28,wt=72,at=8,En=960,Hn=60*1e3,Rn=20,wn=9,An=9,At=68,F=12,rt=8,kt=260,es=120,Pt=6e4,ot={authMode:"none",username:"",password:"",token:"",rememberOnHost:!1};function Ms({className:a,workspaceId:i,panelActive:u=!0,externalWindowMode:h=!1,workbenchShellOverrides:d}){const j=Ri(),f=wi(),x=Pi(),{subscribeGitSnapshot:b,requestGitRefresh:v,addGitSnapshotListener:E,requestNavigationRefresh:S,selectWorkspace:T,upsertNavigationSession:p}={...x,...d},[r,m]=l.useState(null),[y,R]=l.useState(null),[C,M]=l.useState([]),[_,w]=l.useState(0),[I,ie]=l.useState(null),[he,ct]=l.useState(!1),[$,ge]=l.useState(null),[se,X]=l.useState(null),[fe,pe]=l.useState(""),[$e,B]=l.useState(!1),[N,A]=l.useState(!1),[Zn,Vt]=l.useState([]),[ee,Wt]=l.useState(!0),[te,W]=l.useState(!1),[O,Jn]=l.useState(()=>typeof window<"u"?window.innerWidth<=En:!1),[ut,U]=l.useState([]),[be,z]=l.useState(null),[xe,ae]=l.useState("unstaged"),[ye,q]=l.useState(null),[re,Y]=l.useState(null),[Qn,dt]=l.useState(!1),[ei,mt]=l.useState(null),[ti,Be]=l.useState(!1),[zt,Ue]=l.useState(null),[D,je]=l.useState(null),[Kt,Ce]=l.useState(null),[ni,Ne]=l.useState(!1),[ve,oe]=l.useState(null),[ne,ht]=l.useState(!1),[ii,Se]=l.useState(!1),[si,It]=l.useState([]),[ps,Xt]=l.useState(!1),[Ve,gt]=l.useState(new Set),[ai,Te]=l.useState(new Map),[We,qt]=l.useState(null),[ri,Me]=l.useState(!1),[P,Z]=l.useState(ot),[Yt,ze]=l.useState("generic"),[Zt,Ke]=l.useState(null),[k,ft]=l.useState(null),[G,pt]=l.useState(null),[Jt,Qt]=l.useState(Rt),[bt,xt]=l.useState(!1),[en,Ee]=l.useState(null),[oi,He]=l.useState(null),tn=l.useRef(null),nn=l.useRef(null),sn=l.useRef(null),an=l.useRef(null),rn=l.useRef(null),on=l.useRef(null),yt=l.useRef(null),Re=l.useRef(new Map),Ie=l.useRef(new Map),we=l.useRef(0),ln=l.useRef(u),cn=l.useRef(u),Xe=l.useRef(null),{showToast:H}=Ai(),un=f.isDesktop&&!O;l.useEffect(()=>{st("git_sidebar.props",{workspaceId:i,externalWindowMode:h})},[h,i]),l.useEffect(()=>{cn.current=u},[u]),l.useEffect(()=>{Vt([]),Wt(!0),w(0),ie(null),ct(!1),X(null),pe(""),W(!1),U([]),z(null),ae("unstaged"),q(null),Y(null),dt(!1),mt(null),Be(!1),Ue(null),je(null),Ce(null),Ne(!1),oe(null),ht(!1),Se(!1),It([]),gt(new Set),Te(new Map),qt(null),Me(!1),Z(ot),ze("generic"),Ke(null),ft(null),pt(null),xt(!1),Qt(Rt),Ee(null),He(null),Ie.current.clear(),Re.current.clear()},[i]),l.useEffect(()=>{function t(){Jn(window.innerWidth<=En)}return t(),window.addEventListener("resize",t),()=>{window.removeEventListener("resize",t)}},[]),l.useEffect(()=>{if(!bt)return;const t=document.body.style.cursor,s=document.body.style.userSelect;document.body.style.cursor="row-resize",document.body.style.userSelect="none";function o(g){fn(g.clientY)}function c(){xt(!1)}return window.addEventListener("pointermove",o),window.addEventListener("pointerup",c),()=>{document.body.style.cursor=t,document.body.style.userSelect=s,window.removeEventListener("pointermove",o),window.removeEventListener("pointerup",c)}},[bt]),l.useEffect(()=>{var c,g;if(!(i!=null&&i.trim())){Xe.current=null,m(null),R(null),M([]),w(0),ie(null),ge(null),B(!1);return}const t=i.trim(),s=Cn(ke(t),Hn),o=Lt(s);if(st("git_sidebar.snapshot",{workspaceId:t,cached:o,cachedHistoryCount:((c=s==null?void 0:s.history)==null?void 0:c.length)??0,cachedChangedCount:((g=s==null?void 0:s.status)==null?void 0:g.changes.length)??0}),o&&s){jt(s,t),B(!1);return}Xe.current=null,Nn(ke(t)),m(null),R(null),M([]),w(0),ie(null),ge(null),B(!0)},[i]),l.useEffect(()=>{if(i!=null&&i.trim())return E(t=>{var s,o,c;t.workspaceId===i.trim()&&(st("git_sidebar.snapshot_received",{workspaceId:t.workspaceId,changedCount:((s=t.status)==null?void 0:s.changes.length)??0,historyCount:t.history.length,branchCount:(((o=t.branches)==null?void 0:o.local.length)??0)+(((c=t.branches)==null?void 0:c.remote.length)??0)}),jt(t,t.workspaceId),B(!1))})},[E,i]),l.useEffect(()=>{if(!(i!=null&&i.trim()))return;const t=i.trim(),s=Cn(ke(t),Hn),o=Lt(s)?(s==null?void 0:s.revision)??null:null;b(t,{knownRevision:o}),cn.current&&K()},[v,b,i]),l.useEffect(()=>{const t=ln.current;ln.current=u,i!=null&&i.trim()&&!t&&u&&v(i.trim(),{knownRevision:y})},[u,v,y,i]),l.useEffect(()=>{const t=i==null?void 0:i.trim();if(!t||Xe.current!==t)return;const s={revision:y,status:r,history:C,historyTotalCount:_,historyNextCursor:I,branches:$};if(!Lt(s)){Nn(ke(t));return}Di(ke(t),s)},[$,C,I,_,y,r,i]),l.useEffect(()=>{if(!r||!se)return;r.changes.find(s=>s.path===se)||X(null)},[se,r]),l.useEffect(()=>{os(an.current)},[fe]),l.useEffect(()=>{O||(U([]),z(null),q(null),Ke(null))},[O]),l.useEffect(()=>{if(!r){U([]);return}const t=new Set(r.changes.map(s=>s.path));U(s=>s.filter(o=>t.has(o)))},[r]);function li(){const t=sn.current;if(!t)return;t.querySelectorAll(".git-tree-shell").forEach(o=>{o.scrollTop=0})}function jt(t,s){Xe.current=(s==null?void 0:s.trim())??(i==null?void 0:i.trim())??null,R(typeof t.revision=="string"?t.revision:null),m(t.status),M(Array.isArray(t.history)?t.history:[]),w(typeof t.historyTotalCount=="number"?t.historyTotalCount:0),ie(typeof t.historyNextCursor=="string"?t.historyNextCursor:null),ge(t.branches??null)}function K(t){i!=null&&i.trim()&&(B(!0),st("git_sidebar.refresh_requested",{workspaceId:i.trim(),resetTreeScroll:!1}),v(i.trim(),{knownRevision:y}))}async function Ct(t){if(!(i!=null&&i.trim()))return;const s=i.trim();B(!0);try{const[o,c,g]=await Promise.all([Fi(s),vn(s,Rn,null),Oi(s)]);jt({status:o,history:c.items,historyTotalCount:c.totalCount,historyNextCursor:c.nextCursor,branches:g}),v(s),t!=null&&t.resetTreeScroll&&requestAnimationFrame(()=>{li()})}catch(o){H({title:L(o,n("git.panelLoadFailed")),tone:"error"})}finally{B(!1)}}async function qe(){if(!(!i||!I||he)){ct(!0);try{const t=await vn(i,Rn,I);M(s=>{const o=new Set(s.map(g=>g.commitHash)),c=t.items.filter(g=>!o.has(g.commitHash));return[...s,...c]}),w(t.totalCount),ie(t.nextCursor)}catch(t){H({title:L(t,n("git.panelLoadFailed")),tone:"error"})}finally{ct(!1)}}}function ci(t){if(!ee||he||!I)return;const s=t.currentTarget;s.scrollHeight-s.scrollTop-s.clientHeight<=40&&qe()}async function ui(){if(i){A(!0);try{const t=await _i(i,"ai");pe(t.validation.normalizedDraft.subject||t.draft.subject)}catch(t){H({title:L(t,n("git.draftFailed")),tone:"error"})}finally{A(!1)}}}async function Ye(t,s){if(i&&t.length){A(!0);try{const o=s?await $i(i,t):await Bi(i,t);m(o),X(t[t.length-1]??null),U(c=>c.filter(g=>!t.includes(g))),z(null),K()}catch(o){B(!1),H({title:L(o,n("git.stageFailed")),tone:"error"})}finally{A(!1)}}}async function Nt(t){if(i&&t.length){A(!0);try{const s=await Vi(i,t);m(s),t.includes(se??"")&&X(null),U(o=>o.filter(c=>!t.includes(c))),z(null),K()}catch(s){B(!1),H({title:L(s,n("git.discardFailed")),tone:"error"})}finally{A(!1)}}}async function di(){if(!(!i||!fe.trim())){A(!0);try{await ki(i,ss(fe)),H({title:n("git.commitSuccess"),tone:"success"}),pe(""),X(null),K()}catch(t){H({title:L(t,n("git.commitFailed")),tone:"error"})}finally{A(!1)}}}async function mi(){if(i!=null&&i.trim()){A(!0),B(!0);try{const t=await Li(i.trim());m(t),M([]),w(0),ie(null),ge(null),H({title:n("git.initSuccess"),tone:"success"}),K()}catch(t){H({title:L(t,n("git.initFailed")),tone:"error"})}finally{A(!1),B(!1)}}}function Ze(t){Z(ds(We)),Me(!0),hi(t)}async function hi(t){const s=i==null?void 0:i.trim();if(!s){ze("generic");return}try{const o=await Sn(s);if((i==null?void 0:i.trim())!==s)return;ze(hs(o,t))}catch{if((i==null?void 0:i.trim())!==s)return;ze("generic")}}function gi(){const t=ms(P),s=Yt==="github"?n("git.remoteAuthGithubPatPlaceholder"):n("shell.clonePasswordPlaceholder");if(P.authMode==="basic"){if(!P.username.trim()){H({title:n("shell.cloneUsernamePlaceholder"),tone:"error"});return}if(!P.password){H({title:s,tone:"error"});return}}if(P.authMode==="token"&&!P.token){H({title:n("shell.cloneTokenPlaceholder"),tone:"error"});return}qt(t),Me(!1),H({title:t?n("git.remoteAuthSaved"):n("git.remoteAuthCleared"),description:t&&P.rememberOnHost?n("git.remoteAuthRememberHint"):void 0,tone:"success"})}async function dn(){if(i){Xt(!0);try{const t=await Sn(i);if(t.length===0){H({title:n("git.noRemotes"),tone:"error"});return}if(t.length===1){mn([t[0].name]);return}It(t),gt(new Set),Te(new Map),Se(!0)}catch(t){H({title:L(t,n("git.remoteFailed")),tone:"error"})}finally{Xt(!1)}}}async function mn(t){if(!i||t.length===0)return;A(!0),Te(new Map);const s=new Map;let o=!1;try{for(const c of t)try{const g=await Tn(i,"push",c,We,P.rememberOnHost);s.set(c,{ok:!0,summary:g.summary})}catch(g){if(o=!0,s.set(c,{ok:!1,summary:L(g,n("git.remoteFailed"))}),Te(new Map(s)),Gn(g)){Ze(c);return}}Te(s),K(),o||(H({title:n("git.pushAllSuccess",{count:String(t.length)}),tone:"success"}),Se(!1))}finally{A(!1)}}async function vt(t){if(i){if(t==="push"){W(!1),dn();return}A(!0);try{const s=await Tn(i,t,void 0,We,P.rememberOnHost);H({title:s.summary,tone:"success"}),W(!1),K()}catch(s){if(Gn(s)){Ze();return}H({title:L(s,n("git.remoteFailed")),tone:"error"})}finally{A(!1)}}}async function le(){if(i){A(!0);try{const t=await Ui(i);pe(t.commitSubject??""),H({title:t.summary||n("git.undoLastCommitSuccess"),tone:"success"}),W(!1),K()}catch(t){H({title:L(t,n("git.undoLastCommitFailed")),tone:"error"})}finally{A(!1)}}}async function fi(t){if(i){A(!0);try{const s=await Ii(i,t,!1);ge(s),W(!1),K()}catch(s){H({title:L(s,n("git.branchFailed")),tone:"error"})}finally{A(!1)}}}async function St(t){const s=i==null?void 0:i.trim();if(!s)throw new Error(n("git.panelLoadFailed"));const o=Ie.current.get(t);if(o)return o;const c=await Xi(s,t);return Ie.current.set(t,c),c}async function Ae(t){Y(null),q(null),mt(t),Ue(null);const s=Ie.current.get(t)??null;if(je(s),Be(!s),s)return;const o=we.current+1;we.current=o;try{const c=await St(t);if(we.current!==o)return;je(c)}catch(c){if(we.current!==o)return;Ue(L(c,n("git.commitDetailLoadFailed"))),je(null)}finally{we.current===o&&Be(!1)}}function pi(){mt(null),Be(!1),Ue(null),je(null)}async function Pe(t){try{const s=await St(t);await V(s.versionLabel,n("git.copyCommitVersionSuccess"))}catch(s){H({title:L(s,n("git.commitDetailLoadFailed")),tone:"error"})}}function De(t){Y(null),q(null),Ce(t),oe(null),Ne(!0)}function bi(t){var o;const s=((o=C[0])==null?void 0:o.commitHash)===t.commitHash&&t.commitKind==="local";return[{id:`view-changes:${t.commitHash}`,label:n("git.viewCommitChanges"),onSelect:()=>void Ae(t.commitHash)},{id:`copy-hash:${t.commitHash}`,label:n("git.copyCommitHash"),onSelect:()=>void V(t.commitHash,n("git.copyCommitHashSuccess"))},{id:`copy-message:${t.commitHash}`,label:n("git.copyCommitMessage"),onSelect:()=>void V(me(t),n("git.copyCommitMessageSuccess"))},{id:`copy-version:${t.commitHash}`,label:n("git.copyCommitVersion"),onSelect:()=>void Pe(t.commitHash)},{id:`explain:${t.commitHash}`,label:n("git.explainCommitAction"),onSelect:()=>De(t.commitHash)},...s?[{id:`undo:${t.commitHash}`,label:n("git.undoLastCommit"),disabled:N,onSelect:()=>void le()}]:[]]}async function hn(t){Y(null),q(null),await Wi(bi(t))}async function xi(){var t,s;if(!(!i||!Kt||!ve||ne)){ht(!0);try{const o=await St(Kt),c=await Yi({workspaceId:i,provider:ve,content:rs(o),clientRequestId:((s=(t=globalThis.crypto)==null?void 0:t.randomUUID)==null?void 0:s.call(t))??`git-explain-${Date.now()}-${Math.random().toString(16).slice(2)}`,permissionMode:zi()}),g=c.session??await Zi(c.sessionId);p(g),S(),T(g.workspaceId),j(Ki(g.workspaceId,g.sessionId)),Ne(!1),Ce(null),oe(null),H({title:n("git.explainCommitStarted"),tone:"success"})}catch(o){H({title:L(o,n("git.explainCommitFailed")),tone:"error"})}finally{ht(!1)}}}function Je(t){Vt(s=>s.includes(t)?s.filter(o=>o!==t):[...s,t])}const yi=450;function gn(t){const s=Date.now(),o=tn.current;return tn.current={filePath:t,timestamp:s},(o==null?void 0:o.filePath)===t&&s-o.timestamp<=yi}async function Qe(t,s){if(s.binary){H({title:n("git.binaryDiff"),tone:"info"});return}if(s.status==="A"||s.status==="?")He(null),Ee(t);else if(i)try{const o=await Gi(i,t,s.staged);He(o.content),Ee(t)}catch{He(null),Ee(t)}}function et(t){X(t),z(null),U(s=>s.includes(t)?s.filter(o=>o!==t):[...s,t])}function fn(t){const s=nn.current;if(!s||!Number.isFinite(t))return;const o=s.getBoundingClientRect(),c=o.height-at;if(!Number.isFinite(o.top)||!Number.isFinite(o.height)||c<=0)return;const g=(t-o.top-at/2)/c*100;if(!Number.isFinite(g))return;const Fe=Math.max(Mn,Math.min(wt,Math.round(g)));Qt(Fe)}function ji(t){t.preventDefault(),fn(t.clientY),xt(!0)}const Le=(r==null?void 0:r.changes)??[],J=Le.filter(t=>Gt(t,"staged")),ce=Le.filter(t=>Gt(t,"unstaged")),pn=On(J,"staged"),bn=On(ce,"unstaged"),tt=new Set(Zn),nt=new Set(ut),ue=kn(ut,Le,"staged"),de=kn(ut,Le,"unstaged"),Tt=Le.length===0&&((r==null?void 0:r.snapshot.ahead)??0)>0,Ci=J.length>0&&fe.trim().length>0,it=($==null?void 0:$.currentBranch)??(r==null?void 0:r.snapshot.branch)??n("common.unknown"),Mt=We!==null,_e=Yt==="github",Ni=_e?n("git.remoteAuthDescriptionGithub"):n("git.remoteAuthDescription"),vi=_e?n("git.remoteAuthGithubPatLabel"):n("shell.clonePasswordLabel"),Si=_e?n("git.remoteAuthGithubPatPlaceholder"):n("shell.clonePasswordPlaceholder"),Ti=_e?n("git.remoteAuthGithubUsernamePlaceholder"):n("shell.cloneUsernamePlaceholder"),Et=Number.isFinite(Jt)?Jt:Rt,Mi=ee?`minmax(120px, ${Et}fr) ${at}px minmax(140px, ${100-Et}fr)`:`minmax(120px, 1fr) ${at}px auto`,Ei=cs(r);l.useEffect(()=>{be==="staged"&&ue.length===0&&z(null),be==="unstaged"&&de.length===0&&z(null)},[be,ue.length,de.length]),l.useEffect(()=>{if(!O)return;const t=ce.length>0?"unstaged":J.length>0?"staged":"history";ae(s=>s==="unstaged"&&ce.length>0||s==="staged"&&J.length>0?s:t)},[O,J.length,ce.length]),l.useEffect(()=>{ye&&(C.some(t=>t.commitHash===ye)||q(null))},[C,ye]),l.useEffect(()=>{re&&(C.some(t=>t.commitHash===re)||Y(null))},[re,C]),l.useEffect(()=>{O&&xe!=="history"&&te&&W(!1)},[O,te,xe]),l.useLayoutEffect(()=>{if(O||!te){ft(null);return}function t(){const o=rn.current,c=on.current;!o||!c||typeof window>"u"||ft($n(o.getBoundingClientRect(),{width:c.getBoundingClientRect().width||kt,height:c.getBoundingClientRect().height||c.scrollHeight||0},{width:window.innerWidth,height:window.innerHeight}))}t();const s=window.requestAnimationFrame(t);return window.addEventListener("resize",t),window.addEventListener("scroll",t,!0),()=>{window.cancelAnimationFrame(s),window.removeEventListener("resize",t),window.removeEventListener("scroll",t,!0)}},[N,$==null?void 0:$.local.length,it,O,te,Mt]);const Q=ye??re;l.useLayoutEffect(()=>{if(!Q){pt(null);return}const t=Q;function s(){const c=Re.current.get(t)??null,g=yt.current;!c||!g||typeof window>"u"||pt($n(c.getBoundingClientRect(),{width:g.getBoundingClientRect().width||kt,height:g.getBoundingClientRect().height||g.scrollHeight||0},{width:window.innerWidth,height:window.innerHeight}))}s();const o=window.requestAnimationFrame(s);return window.addEventListener("resize",s),window.addEventListener("scroll",s,!0),()=>{window.cancelAnimationFrame(o),window.removeEventListener("resize",s),window.removeEventListener("scroll",s,!0)}},[Q,C.length]),l.useEffect(()=>{if(!Q||typeof document>"u")return;const t=Q;function s(o){const c=o.target;if(!(c instanceof Node))return;const g=Re.current.get(t)??null,Fe=yt.current;g!=null&&g.contains(c)||Fe!=null&&Fe.contains(c)||(q(null),Y(null))}return document.addEventListener("pointerdown",s),()=>{document.removeEventListener("pointerdown",s)}},[Q]);async function V(t,s){var o;try{if(f.isDesktop&&(await f.bridge.writeClipboardText(t)).ok){H({title:s,tone:"success"});return}if(typeof navigator<"u"&&((o=navigator.clipboard)!=null&&o.writeText)){await navigator.clipboard.writeText(t),H({title:s,tone:"success"});return}if(as(t)){H({title:s,tone:"success"});return}}catch{H({title:n("common.copyContentFailed"),tone:"error"})}}async function xn(t,s){typeof window<"u"&&!window.confirm(n("git.discardConfirm",{path:s}))||await Nt(t)}function yn(t){const s=(t==null?void 0:t.desktopFloating)===!0&&!O,o=s?{top:(k==null?void 0:k.top)??F,left:(k==null?void 0:k.left)??F,maxHeight:k==null?void 0:k.maxHeight,transformOrigin:(k==null?void 0:k.transformOrigin)??"top right"}:void 0,c=e.jsxs("div",{ref:s?on:void 0,className:"git-operations-menu","data-floating":s?"true":"false",style:o,children:[e.jsxs("div",{className:"git-menu-section",children:[e.jsx("span",{className:"git-menu-caption",children:n("git.currentBranch")}),e.jsx("strong",{className:"git-menu-branch",children:it})]}),e.jsxs("div",{className:"git-menu-section",children:[e.jsx("span",{className:"git-menu-caption",children:n("git.remoteAuthStatusLabel")}),e.jsxs("div",{className:"git-menu-branch-list",children:[e.jsx("strong",{className:"git-menu-branch",children:Mt?n("git.remoteAuthConfigured"):n("git.remoteAuthNotConfigured")}),e.jsx("button",{className:"git-menu-item",type:"button",disabled:N,onClick:()=>Ze(),children:e.jsx("span",{children:n("git.remoteAuthAction")})})]})]}),e.jsxs("div",{className:"git-menu-section",children:[e.jsx("span",{className:"git-menu-caption",children:n("git.branchTitle")}),e.jsx("div",{className:"git-menu-branch-list",children:$==null?void 0:$.local.map(g=>e.jsx("button",{className:"git-menu-item",type:"button",disabled:N||g.current,onClick:()=>void fi(g.name),children:e.jsx("span",{children:g.current?`${n("git.switchBranch")} ${g.name}`:`${n("git.switchBranchTo")} ${g.name}`})},g.name))})]}),e.jsxs("div",{className:"git-menu-section",children:[e.jsx("button",{className:"git-menu-item",type:"button",disabled:N,onClick:()=>{W(!1),dt(!0)},children:e.jsx("span",{children:n("git.viewAllVersions")})}),e.jsx("button",{className:"git-menu-item",type:"button",disabled:N,onClick:()=>void vt("fetch"),children:e.jsx("span",{children:n("git.fetch")})}),e.jsx("button",{className:"git-menu-item",type:"button",disabled:N,onClick:()=>void vt("pull"),children:e.jsx("span",{children:n("git.pull")})}),e.jsx("button",{className:"git-menu-item",type:"button",disabled:N,onClick:()=>void vt("push"),children:e.jsx("span",{children:n("git.push")})}),e.jsx("button",{className:"git-menu-item",type:"button",disabled:N,onClick:()=>void le(),children:e.jsx("span",{children:n("git.undoLastCommit")})}),e.jsx("button",{className:"git-menu-item",type:"button",disabled:N||$e,onClick:()=>void Ct({resetTreeScroll:!0}),children:e.jsx("span",{children:n("git.refresh")})})]})]});return s?typeof document>"u"?null:jn.createPortal(c,document.body):c}function Ht(t,s){if(s){Re.current.set(t,s);return}Re.current.delete(t)}function Hi(){var o;if(!Q||typeof document>"u")return null;const t=C.find(c=>c.commitHash===Q);if(!t)return null;const s=((o=C[0])==null?void 0:o.commitHash)===t.commitHash&&t.commitKind==="local";return jn.createPortal(e.jsx("div",{ref:yt,className:"git-history-entry-menu","data-floating":"true",style:{top:(G==null?void 0:G.top)??F,left:(G==null?void 0:G.left)??F,maxHeight:G==null?void 0:G.maxHeight,transformOrigin:(G==null?void 0:G.transformOrigin)??"top right"},children:e.jsx(ns,{item:t,canUndo:s,actioning:N,onViewCommitChanges:c=>void Ae(c),onCopyCommitHash:c=>void V(c,n("git.copyCommitHashSuccess")),onCopyCommitMessage:c=>void V(me(c),n("git.copyCommitMessageSuccess")),onCopyCommitVersion:c=>void Pe(c),onExplainCommitChange:c=>void De(c),onUndoLastCommit:()=>void le()})}),document.body)}return r&&!Ei?e.jsx("section",{className:["conversation-panel","surface-card","git-sidebar",a].filter(Boolean).join(" "),"data-testid":"git-sidebar",children:e.jsxs("section",{className:"git-card git-scaffold-section git-disabled-state",children:[e.jsxs("div",{className:"git-disabled-copy",children:[e.jsx("h3",{children:n("git.uninitializedTitle")}),e.jsx("p",{children:n("git.uninitializedDescription")})]}),e.jsx("div",{className:"git-primary-actions",children:e.jsx("button",{className:"primary-button git-primary-submit",type:"button",onClick:()=>void mi(),disabled:N||$e||!i,children:N?n("git.initInProgress"):n("git.initRepository")})})]})}):e.jsxs("section",{className:["conversation-panel","surface-card","git-sidebar",a].filter(Boolean).join(" "),"data-testid":"git-sidebar",children:[e.jsxs("section",{className:"git-card git-scaffold-section",children:[e.jsxs("div",{className:"git-editor-row",children:[e.jsx("textarea",{ref:an,rows:1,value:fe,onChange:t=>pe(In(t.target.value)),onKeyDown:t=>{t.key==="Enter"&&t.preventDefault()},placeholder:n("git.commitSubjectPlaceholder")}),e.jsx("button",{className:"git-icon-button",type:"button","aria-label":n("git.generateDraft"),title:n("git.generateDraft"),onClick:()=>void ui(),disabled:N||$e,children:e.jsx(fs,{})})]}),e.jsxs("div",{className:"git-primary-actions",children:[e.jsx("button",{className:"secondary-button",type:"button",onClick:()=>void Ct({resetTreeScroll:!0}),disabled:N||$e||!i,children:n("git.refreshNow")}),e.jsx("button",{className:"primary-button git-primary-submit",type:"button",onClick:()=>{if(Tt){dn();return}di()},disabled:N||!Tt&&!Ci,children:Tt?n("git.pushNow"):n("git.commitNow")})]})]}),O?e.jsxs("div",{className:"git-mobile-sections",children:[e.jsx(Dt,{title:n("git.stagedChangesTitle"),count:J.length,expanded:xe==="staged",onToggle:()=>ae("staged"),children:e.jsx(Dn,{title:n("git.stagedChangesTitle"),nodes:pn,collapsedTreePathSet:tt,onToggleTreePath:Je,onToggleMobileSelection:et,selectedMobilePathSet:nt,selectedTargets:ue,actioning:N,variant:"staged",swipeRowState:Zt,onSwipeRowChange:Ke,onStageToggle:Ye,onDiscardWithConfirm:xn,onClearSelectedTargets:()=>U(t=>t.filter(s=>!ue.includes(s))),onPreviewFile:Qe})}),e.jsx(Dt,{title:n("git.changesTitle"),count:ce.length,expanded:xe==="unstaged",onToggle:()=>ae("unstaged"),children:e.jsx(Dn,{title:n("git.changesTitle"),nodes:bn,collapsedTreePathSet:tt,onToggleTreePath:Je,onToggleMobileSelection:et,selectedMobilePathSet:nt,selectedTargets:de,actioning:N,variant:"unstaged",swipeRowState:Zt,onSwipeRowChange:Ke,onStageToggle:Ye,onDiscardWithConfirm:xn,onClearSelectedTargets:()=>U(t=>t.filter(s=>!de.includes(s))),onPreviewFile:Qe})}),e.jsxs(Dt,{title:n("git.recentVersionsTitle"),count:_,expanded:xe==="history",onToggle:()=>ae("history"),trailingContent:e.jsx("span",{className:"badge",children:it}),headerAction:e.jsx("button",{className:"git-icon-button git-mobile-section-action",type:"button","aria-label":n("git.operationMenu"),title:n("git.operationMenu"),"aria-expanded":te,onClick:()=>{ae("history"),W(t=>!t)},disabled:N,children:e.jsx(Ge,{})}),children:[te?e.jsx("div",{className:"git-mobile-operations-shell",children:yn()}):null,e.jsx(ts,{history:C,historyLoadingMore:he,hasMore:!!I,actioning:N,openCommitHash:ye,onMenuTriggerRef:Ht,onToggleMenu:t=>q(s=>s===t?null:t),onViewCommitChanges:t=>void Ae(t),onCopyCommitHash:t=>void V(t,n("git.copyCommitHashSuccess")),onCopyCommitMessage:t=>void V(me(t),n("git.copyCommitMessageSuccess")),onCopyCommitVersion:t=>void Pe(t),onExplainCommitChange:t=>void De(t),onUndoLastCommit:()=>void le(),onLoadMore:()=>void qe()})]})]}):e.jsxs("div",{ref:nn,className:"git-content-split",style:{gridTemplateRows:Mi},children:[e.jsx("section",{className:"git-card git-tree-panel",children:e.jsxs("div",{ref:sn,className:"git-tree-panel-body",children:[J.length>0?e.jsx(Pn,{title:n("git.stagedChangesTitle"),count:J.length,nodes:pn,selectedPath:se,collapsedTreePathSet:tt,onToggleTreePath:Je,onSelectFile:X,onPreviewFile:(t,s)=>{gn(t)&&Qe(t,s)},onToggleMobileSelection:et,onStageToggle:Ye,onDiscard:Nt,actioning:N,variant:"staged",isMobileViewport:O,selectedMobilePathSet:nt,selectedTargets:ue,mobileActionMenuOpen:be==="staged",onToggleMobileActionMenu:()=>z(t=>t==="staged"?null:"staged"),onClearSelectedTargets:()=>U(t=>t.filter(s=>!ue.includes(s)))}):null,e.jsx(Pn,{title:n("git.changesTitle"),count:ce.length,nodes:bn,selectedPath:se,collapsedTreePathSet:tt,onToggleTreePath:Je,onSelectFile:X,onPreviewFile:(t,s)=>{gn(t)&&Qe(t,s)},onToggleMobileSelection:et,onStageToggle:Ye,onDiscard:Nt,actioning:N,variant:"unstaged",isMobileViewport:O,selectedMobilePathSet:nt,selectedTargets:de,mobileActionMenuOpen:be==="unstaged",onToggleMobileActionMenu:()=>z(t=>t==="unstaged"?null:"unstaged"),onClearSelectedTargets:()=>U(t=>t.filter(s=>!de.includes(s)))})]})}),e.jsx("button",{className:"git-panel-divider",type:"button",role:"separator","aria-label":n("git.resizePanels"),"aria-orientation":"horizontal","aria-valuemin":Mn,"aria-valuemax":wt,"aria-valuenow":ee?Et:wt,"data-dragging":bt,onPointerDown:ji,children:e.jsx("span",{className:"git-panel-divider-handle","aria-hidden":"true"})}),e.jsxs("section",{className:"git-card git-history-section",children:[e.jsxs("div",{className:"git-history-topbar",children:[e.jsxs("button",{className:"git-section-toggle",type:"button","aria-expanded":ee,"aria-label":ee?n("git.collapseRecentVersions"):n("git.expandRecentVersions"),onClick:()=>Wt(t=>!t),children:[e.jsxs("span",{className:"git-section-toggle-main",children:[e.jsx(lt,{expanded:ee}),e.jsx("span",{children:n("git.recentVersionsTitle")})]}),e.jsx("span",{className:"workbench-section-counter",children:_})]}),e.jsxs("div",{className:"git-history-actions",children:[e.jsx("span",{className:"badge",children:it}),e.jsx("button",{className:"git-icon-button",type:"button",ref:rn,"aria-label":n("git.operationMenu"),title:n("git.operationMenu"),onClick:()=>W(t=>!t),disabled:N,children:e.jsx(Ge,{})}),te?yn({desktopFloating:!0}):null]})]}),ee?e.jsx(_n,{history:C,historyLoadingMore:he,hasMore:!!I,actioning:N,openCommitHash:re,useNativeContextMenu:un,onMenuTriggerRef:Ht,onScroll:ci,onToggleMenu:t=>{if(un){const s=C.find(o=>o.commitHash===t);s&&hn(s);return}Y(s=>s===t?null:t)},onOpenContextMenu:t=>void hn(t),onViewCommitChanges:t=>void Ae(t),onCopyCommitHash:t=>void V(t,n("git.copyCommitHashSuccess")),onCopyCommitMessage:t=>void V(me(t),n("git.copyCommitMessageSuccess")),onCopyCommitVersion:t=>void Pe(t),onExplainCommitChange:t=>void De(t),onUndoLastCommit:()=>void le(),onLoadMore:()=>void qe()}):null]})]}),e.jsxs(Oe,{open:ii,title:n("git.selectRemoteTitle"),description:n("git.selectRemoteDesc"),onClose:()=>{N||Se(!1)},children:[e.jsxs("div",{className:"git-remote-auth-banner",children:[e.jsxs("div",{className:"git-remote-auth-banner-copy",children:[e.jsx("strong",{children:n("git.remoteAuthStatusLabel")}),e.jsx("span",{children:Mt?n("git.remoteAuthConfigured"):n("git.remoteAuthNotConfigured")})]}),e.jsx("button",{className:"secondary-button",type:"button",disabled:N,onClick:()=>Ze(),children:n("git.remoteAuthAction")})]}),e.jsx("div",{className:"git-remote-select-list",children:si.map(t=>{const s=Ve.has(t.name),o=ai.get(t.name);return e.jsxs("label",{className:"git-remote-item",children:[e.jsx("input",{type:"checkbox",checked:s,disabled:N,onChange:()=>{gt(c=>{const g=new Set(c);return g.has(t.name)?g.delete(t.name):g.add(t.name),g})}}),e.jsxs("span",{className:"git-remote-item-body",children:[e.jsx("span",{className:"git-remote-name",children:t.name}),e.jsx("span",{className:"git-remote-url",children:t.pushUrl}),o&&e.jsx("span",{className:`git-remote-result ${o.ok?"ok":"err"}`,children:o.summary})]})]},t.name)})}),e.jsxs("div",{className:"git-remote-actions",children:[e.jsx("button",{className:"secondary-button",type:"button",disabled:N,onClick:()=>Se(!1),children:n("common.close")}),e.jsx("button",{className:"primary-button",type:"button",disabled:N||Ve.size===0,onClick:()=>void mn(Array.from(Ve)),children:N?n("git.pushing"):n("git.pushSelected",{count:String(Ve.size)})})]})]}),e.jsxs(Oe,{open:ri,title:n("git.remoteAuthTitle"),description:Ni,onClose:()=>{N||Me(!1)},children:[e.jsxs("div",{className:"workbench-clone-form",children:[e.jsxs("label",{className:"workbench-modal-field",children:[e.jsx("span",{children:n("shell.cloneAuthModeLabel")}),e.jsxs("select",{value:P.authMode,disabled:N,onChange:t=>Z(s=>({...s,authMode:t.target.value})),children:[e.jsx("option",{value:"none",children:n("shell.cloneAuthModeNone")}),e.jsx("option",{value:"basic",children:n("shell.cloneAuthModeBasic")}),e.jsx("option",{value:"token",children:n("shell.cloneAuthModeToken")})]})]}),P.authMode==="basic"?e.jsxs(e.Fragment,{children:[e.jsxs("label",{className:"workbench-modal-field",children:[e.jsx("span",{children:n("shell.cloneUsernameLabel")}),e.jsx("input",{type:"text",value:P.username,placeholder:Ti,autoComplete:"username",onChange:t=>Z(s=>({...s,username:t.target.value}))})]}),e.jsxs("label",{className:"workbench-modal-field",children:[e.jsx("span",{children:vi}),e.jsx("input",{type:"password",value:P.password,placeholder:Si,autoComplete:"current-password",onChange:t=>Z(s=>({...s,password:t.target.value}))})]})]}):null,P.authMode==="token"?e.jsxs(e.Fragment,{children:[e.jsxs("label",{className:"workbench-modal-field",children:[e.jsx("span",{children:n("shell.cloneUsernameLabel")}),e.jsx("input",{type:"text",value:P.username,placeholder:n("shell.cloneTokenUsernamePlaceholder"),autoComplete:"username",onChange:t=>Z(s=>({...s,username:t.target.value}))})]}),e.jsxs("label",{className:"workbench-modal-field",children:[e.jsx("span",{children:n("shell.cloneTokenLabel")}),e.jsx("input",{type:"password",value:P.token,placeholder:n("shell.cloneTokenPlaceholder"),autoComplete:"current-password",onChange:t=>Z(s=>({...s,token:t.target.value}))})]})]}):null,_e?e.jsx("p",{className:"git-remote-auth-hint",children:n("git.remoteAuthGithubPatHint")}):null,P.authMode!=="none"?e.jsxs("label",{className:"settings-checkbox git-remote-auth-remember-toggle",children:[e.jsx("input",{type:"checkbox",checked:P.rememberOnHost,onChange:t=>Z(s=>({...s,rememberOnHost:t.target.checked}))}),e.jsx("span",{children:n("git.remoteAuthRemember")})]}):null,e.jsx("p",{className:"git-remote-auth-hint",children:n("git.remoteAuthSessionHint")})]}),e.jsxs("div",{className:"git-remote-actions",children:[e.jsx("button",{className:"secondary-button",type:"button",disabled:N,onClick:()=>Me(!1),children:n("common.close")}),e.jsx("button",{className:"primary-button",type:"button",disabled:N,onClick:gi,children:n("git.remoteAuthSave")})]})]}),e.jsx(Oe,{open:Qn,title:n("git.viewAllVersions"),description:n("git.viewAllVersionsDescription",{count:String(_)}),onClose:()=>dt(!1),children:e.jsx(_n,{history:C,historyLoadingMore:he,hasMore:!!I,actioning:N,openCommitHash:re,className:"git-history-modal-list",onMenuTriggerRef:Ht,onToggleMenu:t=>Y(s=>s===t?null:t),onViewCommitChanges:t=>void Ae(t),onCopyCommitHash:t=>void V(t,n("git.copyCommitHashSuccess")),onCopyCommitMessage:t=>void V(me(t),n("git.copyCommitMessageSuccess")),onCopyCommitVersion:t=>void Pe(t),onExplainCommitChange:t=>void De(t),onUndoLastCommit:()=>void le(),onLoadMore:()=>void qe()})}),e.jsx(Oe,{open:ei!==null,className:"git-commit-detail-modal",title:(D==null?void 0:D.subject)||n("git.commitDetailTitle"),description:D?n("git.commitDetailDescription",{hash:D.shortHash}):n("git.commitDetailLoading"),onClose:pi,children:ti?e.jsx("div",{className:"git-commit-detail-state",children:e.jsx("p",{children:n("git.commitDetailLoading")})}):zt?e.jsx("div",{className:"git-commit-detail-state is-error",children:e.jsx("p",{children:zt})}):D?e.jsxs("div",{className:"git-commit-detail-shell",children:[e.jsxs("div",{className:"git-commit-detail-meta-grid",children:[e.jsxs("div",{className:"git-commit-detail-meta-card",children:[e.jsx("span",{children:n("git.commitVersionLabel")}),e.jsx("strong",{children:D.versionLabel})]}),e.jsxs("div",{className:"git-commit-detail-meta-card",children:[e.jsx("span",{children:n("git.commitHashLabel")}),e.jsx("strong",{children:D.commitHash})]}),e.jsxs("div",{className:"git-commit-detail-meta-card",children:[e.jsx("span",{children:n("git.commitAuthorLabel")}),e.jsx("strong",{children:D.authorName})]}),e.jsxs("div",{className:"git-commit-detail-meta-card",children:[e.jsx("span",{children:n("git.commitTimeLabel")}),e.jsx("strong",{children:ls(D.authoredAt)})]})]}),e.jsxs("section",{className:"git-commit-detail-section",children:[e.jsx("div",{className:"git-commit-detail-section-header",children:e.jsx("h3",{children:n("git.commitMessageLabel")})}),e.jsx("pre",{className:"git-commit-detail-message",children:me(D)})]}),e.jsxs("section",{className:"git-commit-detail-section",children:[e.jsxs("div",{className:"git-commit-detail-section-header",children:[e.jsx("h3",{children:n("git.changedFilesTitle")}),e.jsx("span",{className:"workbench-section-counter",children:D.changedFiles.length})]}),e.jsx("div",{className:"git-commit-detail-file-list",children:D.changedFiles.map(t=>e.jsxs("div",{className:"git-commit-detail-file-item",children:[e.jsx("span",{className:"git-commit-detail-file-status","data-status":t.status,children:t.status}),e.jsxs("div",{className:"git-commit-detail-file-copy",children:[e.jsx("strong",{children:t.path}),t.oldPath?e.jsx("span",{children:n("git.renamedFromLabel",{path:t.oldPath})}):null]})]},`${t.status}:${t.oldPath??""}:${t.path}`))})]}),e.jsxs("section",{className:"git-commit-detail-section",children:[e.jsxs("div",{className:"git-commit-detail-section-header",children:[e.jsx("h3",{children:n("git.commitDiffLabel")}),D.diffTruncated?e.jsx("span",{className:"git-commit-detail-truncated",children:n("git.diffTruncated")}):null]}),e.jsx("pre",{className:"git-commit-detail-diff",children:D.diffContent||n("git.emptyDiff")})]})]}):e.jsx("div",{className:"git-commit-detail-state",children:e.jsx("p",{children:n("git.commitDetailEmpty")})})}),e.jsx(Oe,{open:ni,className:"git-explain-provider-modal",title:n("git.explainCommitTitle"),description:n("git.explainCommitDescription"),onClose:()=>{ne||(Ne(!1),Ce(null),oe(null))},children:e.jsxs("div",{className:"git-explain-provider-shell",children:[e.jsx(qi,{workspaceId:i,selectedProvider:ve,pendingProvider:ne?ve:null,disabled:ne,onSelect:t=>oe(t)}),e.jsxs("div",{className:"git-explain-provider-actions",children:[e.jsx("button",{type:"button",className:"secondary-button",disabled:ne,onClick:()=>{Ne(!1),Ce(null),oe(null)},children:n("common.cancel")}),e.jsx("button",{type:"button",className:"primary-button",disabled:!ve||ne,onClick:()=>void xi(),children:ne?n("conversation.sendingState"):n("git.startExplainCommit")})]})]})}),e.jsx(Qi,{workspaceId:i,filePath:en,open:en!==null,onClose:()=>{Ee(null),He(null)},onSaved:async()=>{await Ct({resetTreeScroll:!0})},diffContent:oi}),Hi()]})}function Pn({title:a,count:i,nodes:u,selectedPath:h,collapsedTreePathSet:d,onToggleTreePath:j,onSelectFile:f,onPreviewFile:x,onToggleMobileSelection:b,onStageToggle:v,onDiscard:E,actioning:S,variant:T,isMobileViewport:p,selectedMobilePathSet:r,selectedTargets:m,mobileActionMenuOpen:y,onToggleMobileActionMenu:R,onClearSelectedTargets:C}){const M=Un(),_=Ut(u),w=T==="staged"?n("git.unstageAll"):n("git.stageAll");return e.jsxs("section",{className:"git-tree-group","data-variant":T,children:[e.jsxs("div",{className:"git-section-header git-tree-group-header",children:[e.jsx("h3",{children:a}),e.jsxs("div",{className:"git-tree-group-actions",children:[e.jsx("span",{className:"workbench-section-counter",children:i}),!p&&_.length>0?e.jsxs(e.Fragment,{children:[e.jsx("button",{className:"git-icon-button",type:"button","aria-label":w,title:w,onClick:()=>void v(_,T==="staged"),disabled:S,children:e.jsx($t,{staged:T==="staged"})}),T==="unstaged"?e.jsx("button",{className:"git-icon-button danger",type:"button","aria-label":n("git.discardAll"),title:n("git.discardAll"),onClick:()=>void E(_),disabled:S,children:e.jsx(Bt,{})}):null]}):null,p&&m.length>0?e.jsx("button",{className:"git-icon-button",type:"button","aria-label":n("git.operationMenu"),title:n("git.operationMenu"),onClick:R,disabled:S,children:e.jsx(Ge,{})}):null]}),p&&y?e.jsxs("div",{className:"git-selection-menu",children:[e.jsxs("div",{className:"git-menu-section",children:[e.jsx("span",{className:"git-menu-caption",children:n("git.selectedFiles")}),e.jsx("strong",{className:"git-menu-branch",children:m.length})]}),e.jsxs("div",{className:"git-menu-section",children:[e.jsx("button",{className:"git-menu-item",type:"button",disabled:S,onClick:()=>void v(m,T==="staged"),children:e.jsx("span",{children:T==="staged"?n("git.unstage"):n("git.stage")})}),T==="unstaged"?e.jsx("button",{className:"git-menu-item",type:"button",disabled:S,onClick:()=>void E(m),children:e.jsx("span",{children:n("git.discard")})}):null,e.jsx("button",{className:"git-menu-item",type:"button",disabled:S,onClick:C,children:e.jsx("span",{children:n("git.clearSelection")})})]})]}):null]}),e.jsx("div",{ref:M,className:"git-tree-shell",role:"tree","aria-label":a,"data-scrollbar-autohide":"true",children:u.length?Wn({nodes:u,depth:0,collapsedTreePathSet:d,selectedPath:h,onToggleTreePath:j,onSelectFile:f,onPreviewFile:x,onToggleMobileSelection:b,onStageToggle:v,onDiscard:E,actioning:S,variant:T,isMobileViewport:p,selectedMobilePathSet:r}):e.jsx("p",{className:"git-tree-status",children:n("git.noChanges")})})]})}function Dt({title:a,count:i,expanded:u,onToggle:h,trailingContent:d,headerAction:j,children:f}){return e.jsxs("section",{className:"git-mobile-section","data-expanded":u,children:[e.jsxs("div",{className:"git-mobile-section-header",children:[e.jsxs("button",{className:"git-mobile-section-toggle",type:"button","aria-expanded":u,onClick:h,children:[e.jsxs("span",{className:"git-mobile-section-toggle-main",children:[e.jsx(lt,{expanded:u}),e.jsx("h3",{children:a})]}),e.jsxs("span",{className:"git-mobile-section-toggle-meta",children:[d,e.jsx("span",{className:"workbench-section-counter",children:i})]})]}),j?e.jsx("div",{className:"git-mobile-section-header-action",children:j}):null]}),u?e.jsx("div",{className:"git-mobile-section-body",children:f}):null]})}function Dn({title:a,nodes:i,collapsedTreePathSet:u,onToggleTreePath:h,onToggleMobileSelection:d,selectedMobilePathSet:j,selectedTargets:f,actioning:x,variant:b,swipeRowState:v,onSwipeRowChange:E,onStageToggle:S,onDiscardWithConfirm:T,onClearSelectedTargets:p,onPreviewFile:r}){return e.jsxs("div",{className:"git-mobile-record-shell",children:[f.length>0?e.jsxs("div",{className:"git-mobile-selection-toolbar",children:[e.jsxs("span",{className:"git-mobile-selection-count",children:[n("git.selectedFiles")," ",f.length]}),e.jsxs("div",{className:"git-mobile-selection-actions",children:[e.jsx("button",{type:"button",className:"secondary-button",disabled:x,onClick:()=>void S(f,b==="staged"),children:b==="staged"?n("git.unstage"):n("git.stage")}),b==="unstaged"?e.jsx("button",{type:"button",className:"secondary-button workbench-danger-button",disabled:x,onClick:()=>void T(f,`${f.length}`),children:n("git.discard")}):null,e.jsx("button",{type:"button",className:"secondary-button",disabled:x,onClick:p,children:n("git.clearSelection")})]})]}):null,e.jsx("div",{className:"git-mobile-record-list",role:"tree","aria-label":a,children:i.length?Vn({nodes:i,depth:0,collapsedTreePathSet:u,onToggleTreePath:h,onToggleMobileSelection:d,selectedMobilePathSet:j,actioning:x,variant:b,swipeRowState:v,onSwipeRowChange:E,onStageToggle:S,onDiscardWithConfirm:T,onPreviewFile:r}):e.jsx("p",{className:"git-tree-status",children:n("git.noChanges")})})]})}function Vn({nodes:a,depth:i,collapsedTreePathSet:u,onToggleTreePath:h,onToggleMobileSelection:d,selectedMobilePathSet:j,actioning:f,variant:x,swipeRowState:b,onSwipeRowChange:v,onStageToggle:E,onDiscardWithConfirm:S,onPreviewFile:T}){return a.map(p=>{if(p.kind==="directory"){const y=!u.has(p.path),R=Ut(p.children),C=`directory:${p.path}`;return e.jsxs("div",{className:"git-mobile-record-branch",children:[e.jsx(Ln,{rowKey:C,openState:(b==null?void 0:b.path)===C?b.direction:null,onOpenStateChange:M=>v(M?{path:C,direction:M}:null),trailingActions:R.length>0?[{label:x==="staged"?n("git.unstage"):n("git.stage"),tone:"accent",onPress:()=>void E(R,x==="staged")},...x==="unstaged"?[{label:n("git.discard"),tone:"danger",onPress:()=>void S(R,p.path)}]:[]]:null,children:e.jsxs("button",{className:"git-mobile-record git-mobile-record-directory",type:"button",style:{paddingInlineStart:`${wn+i*An}px`},onClick:()=>h(p.path),children:[e.jsxs("span",{className:"git-mobile-record-leading",children:[e.jsx("span",{className:"git-tree-chevron","data-expanded":y,children:e.jsx(lt,{expanded:y})}),e.jsx("span",{className:"git-mobile-record-title",children:p.name})]}),e.jsx("span",{className:"git-mobile-record-meta",children:R.length})]})}),y?e.jsx("div",{className:"git-mobile-record-children",role:"group",children:Vn({nodes:p.children,depth:i+1,collapsedTreePathSet:u,onToggleTreePath:h,onToggleMobileSelection:d,selectedMobilePathSet:j,actioning:f,variant:x,swipeRowState:b,onSwipeRowChange:v,onStageToggle:E,onDiscardWithConfirm:S,onPreviewFile:T})}):null]},C)}const r=`file:${p.path}`,m=j.has(p.path);return e.jsx(Ln,{rowKey:r,openState:(b==null?void 0:b.path)===r?b.direction:null,onOpenStateChange:y=>v(y?{path:r,direction:y}:null),trailingActions:[{label:n("git.preview"),tone:"neutral",onPress:()=>T(p.change.path,p.change)},{label:x==="staged"?n("git.unstage"):n("git.stage"),tone:"accent",onPress:()=>void E([p.change.path],x==="staged")},...x==="unstaged"?[{label:n("git.discard"),tone:"danger",onPress:()=>void S([p.change.path],p.path)}]:[]],children:e.jsxs("div",{className:"git-mobile-record git-mobile-record-file","data-active":m,style:{paddingInlineStart:`${wn+i*An}px`},children:[e.jsx("input",{className:"git-tree-select-checkbox",type:"checkbox",checked:m,"aria-label":`${n("git.selectFile")} ${p.name}`,onChange:()=>d(p.change.path)}),e.jsxs("button",{className:"git-mobile-record-file-main",type:"button",onClick:()=>d(p.change.path),children:[e.jsx("span",{className:"git-tree-file-icon","data-kind":Ot(p.name),"aria-hidden":"true",children:Ft(p.name)}),e.jsxs("span",{className:"git-mobile-record-copy",children:[e.jsx("span",{className:"git-mobile-record-title",children:p.name}),e.jsx("span",{className:"git-mobile-record-path",children:p.path})]}),e.jsx("span",{className:"git-status-badge","data-status":p.status,children:p.status})]})]})},r)})}function Ln({rowKey:a,openState:i,onOpenStateChange:u,trailingActions:h,children:d}){const j=Ji(),f=l.useRef(null),[x,b]=l.useState(0),v=((h==null?void 0:h.length)??0)*At;l.useEffect(()=>{i||b(0)},[i,a]);const E=x!==0?x:i==="trailing"?-v:0;function S(m){var y,R;m.button===0&&(f.current={pointerId:m.pointerId,startX:m.clientX},(R=(y=m.currentTarget).setPointerCapture)==null||R.call(y,m.pointerId))}function T(m){const y=f.current;if(!y||y.pointerId!==m.pointerId)return;const R=v>0?v+10:0,C=Math.max(-R,Math.min(0,m.clientX-y.startX));b(C)}function p(m){var R,C;const y=f.current;if(!(!y||y.pointerId!==m.pointerId)){if((C=(R=m.currentTarget).releasePointerCapture)==null||C.call(R,m.pointerId),f.current=null,x<=-44&&(h!=null&&h.length)){j.trigger("gesture"),u("trailing"),b(0);return}u(null),b(0)}}function r(m){var R,C;const y=f.current;!y||y.pointerId!==m.pointerId||((C=(R=m.currentTarget).releasePointerCapture)==null||C.call(R,m.pointerId),f.current=null,b(0))}return e.jsxs("div",{className:"git-mobile-swipe-row","data-open-state":i??"closed","data-dragging":x!==0,children:[h==null?void 0:h.map((m,y)=>e.jsx("button",{type:"button",className:"git-mobile-swipe-action trailing","data-tone":m.tone,style:{right:y*At,width:At},onClick:()=>{j.trigger(m.tone==="danger"?"warning":"action"),u(null),m.onPress()},children:m.label},`trailing-${y}`)),e.jsx("div",{className:"git-mobile-swipe-content",style:{transform:`translateX(${E}px)`},onPointerDown:S,onPointerMove:T,onPointerUp:p,onPointerCancel:r,children:d})]})}function ts({history:a,historyLoadingMore:i,hasMore:u,actioning:h,openCommitHash:d,onMenuTriggerRef:j,onToggleMenu:f,onViewCommitChanges:x,onCopyCommitHash:b,onCopyCommitMessage:v,onCopyCommitVersion:E,onExplainCommitChange:S,onUndoLastCommit:T,onLoadMore:p}){return a.length?e.jsxs("div",{className:"git-mobile-history-list",children:[a.map(r=>e.jsx("article",{className:"git-mobile-history-entry","data-kind":r.commitKind,children:e.jsxs("div",{className:"git-mobile-history-entry-main",children:[e.jsx("span",{className:"git-history-marker","data-kind":r.commitKind,"aria-hidden":"true"}),e.jsxs("div",{className:"git-mobile-history-copy",children:[e.jsxs("div",{className:"git-history-title-row",children:[e.jsx("strong",{title:r.subject,children:r.subject}),e.jsx("span",{className:"git-history-kind-badge","data-kind":r.commitKind,children:Xn(r.commitKind)})]}),r.refs.length>0?e.jsx("div",{className:"git-history-ref-list",children:r.refs.map(m=>e.jsx("span",{className:"git-history-ref-pill","data-kind":m.kind,"data-remote-index":String(qn(m.remoteName)),children:m.name},`${r.commitHash}:${m.kind}:${m.name}`))}):null,e.jsxs("div",{className:"git-history-meta",children:[e.jsx("span",{className:"git-history-hash",children:r.commitHash.slice(0,8)}),e.jsx("span",{children:r.authorName}),e.jsx("time",{dateTime:r.authoredAt,children:Yn(r.authoredAt)})]})]}),e.jsx("button",{type:"button",className:"git-icon-button",ref:m=>j(r.commitHash,m),"aria-label":n("git.historyItemMenu"),onClick:()=>f(r.commitHash),children:e.jsx(Ge,{})})]})},r.commitHash)),u?e.jsx("button",{type:"button",className:"secondary-button git-mobile-history-more",disabled:i,onClick:p,children:i?`${n("git.refreshNow")}...`:n("common.loadMore")}):null]}):e.jsx("p",{className:"git-tree-status",children:n("git.noHistory")})}function _n({history:a,historyLoadingMore:i,hasMore:u,actioning:h,openCommitHash:d,className:j,useNativeContextMenu:f=!1,onMenuTriggerRef:x,onScroll:b,onToggleMenu:v,onOpenContextMenu:E,onViewCommitChanges:S,onCopyCommitHash:T,onCopyCommitMessage:p,onCopyCommitVersion:r,onExplainCommitChange:m,onUndoLastCommit:y,onLoadMore:R}){const C=Un();return a.length?e.jsxs("div",{ref:C,className:["git-history-list",j].filter(Boolean).join(" "),onScroll:b,"data-scrollbar-autohide":"true",children:[a.map(M=>{const _=d===M.commitHash;return e.jsxs("article",{className:"git-history-entry","data-kind":M.commitKind,"data-menu-open":_?"true":"false",onContextMenu:w=>{!f||!E||(w.preventDefault(),w.stopPropagation(),E(M))},children:[e.jsx("span",{className:"git-history-marker","data-kind":M.commitKind,"aria-hidden":"true"}),e.jsxs("div",{className:"git-history-body",children:[e.jsxs("div",{className:"git-history-title-row",children:[e.jsx("strong",{title:M.subject,children:M.subject}),e.jsxs("div",{className:"git-history-title-actions",children:[e.jsx("span",{className:"git-history-kind-badge","data-kind":M.commitKind,children:Xn(M.commitKind)}),f?null:e.jsx("button",{type:"button",className:"git-icon-button git-history-more",ref:w=>x(M.commitHash,w),"aria-label":n("git.historyItemMenu"),onClick:()=>{v(M.commitHash)},children:e.jsx(Ge,{})})]})]}),M.refs.length>0?e.jsx("div",{className:"git-history-ref-list",children:M.refs.map(w=>e.jsx("span",{className:"git-history-ref-pill","data-kind":w.kind,"data-remote-index":String(qn(w.remoteName)),children:w.name},`${M.commitHash}:${w.kind}:${w.name}`))}):null,e.jsxs("div",{className:"git-history-meta",children:[e.jsx("span",{className:"git-history-hash",children:M.commitHash.slice(0,8)}),e.jsx("span",{children:M.authorName}),e.jsx("time",{dateTime:M.authoredAt,children:Yn(M.authoredAt)})]})]})]},M.commitHash)}),i?e.jsxs("p",{className:"git-history-loading",children:[n("git.refreshNow"),"..."]}):null,u?e.jsx("button",{type:"button",className:"secondary-button git-mobile-history-more",disabled:i,onClick:R,children:i?`${n("git.refreshNow")}...`:n("common.loadMore")}):null]}):e.jsx("p",{className:"status-text",children:n("git.noHistory")})}function ns({item:a,canUndo:i,actioning:u,onViewCommitChanges:h,onCopyCommitHash:d,onCopyCommitMessage:j,onCopyCommitVersion:f,onExplainCommitChange:x,onUndoLastCommit:b}){return e.jsxs(e.Fragment,{children:[e.jsx("button",{type:"button",className:"git-menu-item",onClick:()=>h(a.commitHash),children:e.jsx("span",{children:n("git.viewCommitChanges")})}),e.jsx("button",{type:"button",className:"git-menu-item",onClick:()=>d(a.commitHash),children:e.jsx("span",{children:n("git.copyCommitHash")})}),e.jsx("button",{type:"button",className:"git-menu-item",onClick:()=>j(a),children:e.jsx("span",{children:n("git.copyCommitMessage")})}),e.jsx("button",{type:"button",className:"git-menu-item",onClick:()=>f(a.commitHash),children:e.jsx("span",{children:n("git.copyCommitVersion")})}),e.jsx("button",{type:"button",className:"git-menu-item",onClick:()=>x(a.commitHash),children:e.jsx("span",{children:n("git.explainCommitAction")})}),i?e.jsx("button",{type:"button",className:"git-menu-item",disabled:u,onClick:b,children:e.jsx("span",{children:n("git.undoLastCommit")})}):null]})}function Wn({nodes:a,depth:i,collapsedTreePathSet:u,selectedPath:h,onToggleTreePath:d,onSelectFile:j,onPreviewFile:f,onToggleMobileSelection:x,onStageToggle:b,onDiscard:v,actioning:E,variant:S,isMobileViewport:T,selectedMobilePathSet:p}){return a.map(r=>{if(r.kind==="directory"){const R=!u.has(r.path),C=Ut(r.children),M=`${S==="staged"?n("git.unstage"):n("git.stage")} ${r.path}`,_=`${n("git.discard")} ${r.path}`;return e.jsxs("div",{className:"git-tree-node",children:[e.jsxs("div",{className:"git-tree-row",role:"treeitem","aria-expanded":R,children:[e.jsxs("button",{className:"git-tree-trigger",type:"button",style:{paddingInlineStart:`${6+i*8}px`},onClick:()=>d(r.path),children:[e.jsx("span",{className:"git-tree-chevron","data-expanded":R,children:e.jsx(lt,{expanded:R})}),e.jsx("span",{className:"git-tree-label git-tree-label-directory",children:r.name})]}),!T&&C.length>0?e.jsxs("div",{className:"git-row-actions",children:[e.jsx("button",{className:"git-icon-button",type:"button","aria-label":M,title:M,onClick:()=>void b(C,S==="staged"),disabled:E,children:e.jsx($t,{staged:S==="staged"})}),S==="unstaged"?e.jsx("button",{className:"git-icon-button danger",type:"button","aria-label":_,title:_,onClick:()=>void v(C),disabled:E,children:e.jsx(Bt,{})}):null]}):null]}),R?e.jsx("div",{className:"git-tree-children",role:"group",children:Wn({nodes:r.children,depth:i+1,collapsedTreePathSet:u,selectedPath:h,onToggleTreePath:d,onSelectFile:j,onPreviewFile:f,onToggleMobileSelection:x,onStageToggle:b,onDiscard:v,actioning:E,variant:S,isMobileViewport:T,selectedMobilePathSet:p})}):null]},`directory:${r.path}`)}const m=p.has(r.path),y=T?m:h===r.path;return T?e.jsxs("div",{className:"git-tree-row",role:"treeitem","data-active":y,"data-mobile":"true",children:[e.jsx("input",{className:"git-tree-select-checkbox",type:"checkbox",checked:m,"aria-label":`${n("git.selectFile")} ${r.name}`,onChange:()=>x(r.change.path)}),e.jsxs("button",{className:"git-tree-file-button",type:"button","data-active":y,"data-mobile":"true",style:{paddingInlineStart:`${18+i*8}px`},onClick:()=>x(r.change.path),children:[e.jsx("span",{className:"git-tree-file-icon","data-kind":Ot(r.name),"aria-hidden":"true",children:Ft(r.name)}),e.jsx("span",{className:"git-tree-label-wrap",children:e.jsx("span",{className:"git-tree-label",children:r.name})}),e.jsx("span",{className:"git-tree-file-meta",children:e.jsx("span",{className:"git-status-badge","data-status":r.status,children:r.status})})]})]},`file:${r.path}`):e.jsxs("div",{className:"git-tree-row",role:"treeitem","data-active":y,children:[e.jsxs("button",{className:"git-tree-file-button",type:"button","data-active":y,style:{paddingInlineStart:`${18+i*8}px`},onClick:()=>{j(r.change.path),f&&f(r.change.path,r.change)},children:[e.jsx("span",{className:"git-tree-file-icon","data-kind":Ot(r.name),"aria-hidden":"true",children:Ft(r.name)}),e.jsx("span",{className:"git-tree-label-wrap",children:e.jsx("span",{className:"git-tree-label",children:r.name})}),e.jsx("span",{className:"git-tree-file-meta",children:e.jsx("span",{className:"git-status-badge","data-status":r.status,children:r.status})})]}),e.jsxs("div",{className:"git-row-actions",children:[e.jsx("button",{className:"git-icon-button",type:"button","aria-label":r.variant==="staged"?n("git.unstage"):n("git.stage"),title:r.variant==="staged"?n("git.unstage"):n("git.stage"),onClick:()=>void b([r.change.path],r.variant==="staged"),disabled:E,children:e.jsx($t,{staged:r.variant==="staged"})}),S==="unstaged"?e.jsx("button",{className:"git-icon-button danger",type:"button","aria-label":n("git.discard"),title:n("git.discard"),onClick:()=>void v([r.change.path]),disabled:E,children:e.jsx(Bt,{})}):null]})]},`file:${r.path}`)})}function Fn(a,i){return{kind:"directory",name:a,path:i,children:new Map}}function On(a,i){const u=Fn("","");for(const h of a){const d=h.path.replace(/\\/g,"/"),j=d.split("/").filter(Boolean);let f=u;j.forEach((x,b)=>{const v=j.slice(0,b+1).join("/");if(b===j.length-1){f.children.set(`file:${v}`,{kind:"file",name:x,path:d,change:h,status:is(h,i),variant:i});return}const E=`directory:${v}`,S=f.children.get(E);if(S&&S.kind==="directory"){f=S;return}const T=Fn(x,v);f.children.set(E,T),f=T})}return Kn(zn([...u.children.values()]))}function zn(a){return[...a].sort((i,u)=>i.kind!==u.kind?i.kind==="directory"?-1:1:i.name.localeCompare(u.name,"zh-CN")).map(i=>i.kind==="directory"?{kind:"directory",name:i.name,path:i.path,children:zn([...i.children.values()])}:i)}function Kn(a){return a.map(i=>{var f;if(i.kind!=="directory")return i;const u=Kn(i.children);let h=i.name,d=i.path,j=u;for(;j.length===1&&((f=j[0])==null?void 0:f.kind)==="directory";){const x=j[0];h=`${h}/${x.name}`,d=x.path,j=x.children}return{kind:"directory",name:h,path:d,children:j}})}function kn(a,i,u){const h=new Set(a);return i.filter(d=>Gt(d,u)&&h.has(d.path)).map(d=>d.path)}function Ut(a){const i=[],u=new Set;function h(d){if(d.kind==="file"){u.has(d.path)||(u.add(d.path),i.push(d.path));return}d.children.forEach(h)}return a.forEach(h),i}function Gt(a,i){return i==="staged"?!!a.stagedStatus:!!a.worktreeStatus}function is(a,i){return i==="staged"?a.stagedStatus??a.status:a.worktreeStatus??a.status}function ss(a){return{subject:In(a).trim(),body:null,footer:null,source:"manual"}}function In(a){return a.replace(/[\r\n]+/g," ")}function as(a){if(typeof document>"u"||typeof document.execCommand!="function")return!1;const i=document.createElement("textarea");i.value=a,i.setAttribute("readonly","true"),i.style.position="fixed",i.style.top="-9999px",i.style.left="-9999px",i.style.opacity="0",document.body.appendChild(i),i.focus(),i.select();try{return document.execCommand("copy")}catch{return!1}finally{document.body.removeChild(i)}}function me(a){const i=a.subject.trim(),u=a.body.trim();return u?`${i}
2
-
3
- ${u}`:i}function rs(a){const i=a.changedFiles.map(d=>`- [${d.status}] ${d.path}${d.oldPath?` (from ${d.oldPath})`:""}`).join(`
4
- `),u=a.diffContent.length>Pt?a.diffContent.slice(0,Pt):a.diffContent,h=a.diffContent.length>Pt||a.diffTruncated?`
5
- 注意:diff 内容过长,下面已经截断,只分析可见部分,同时明确指出可能遗漏的区域。`:"";return["请你分析下面这个 Git 提交。","输出要求:","1. 先用 3 到 5 句话说明这次改动的核心目的。","2. 按文件说明关键改动点,不要泛泛而谈。","3. 指出潜在风险、边界情况和可能的回归点。","4. 如果提交信息写得差,给出一条更合适的中文提交说明。","",`版本号:${a.versionLabel}`,`Commit Hash:${a.commitHash}`,`提交标题:${a.subject}`,`提交作者:${a.authorName} <${a.authorEmail}>`,`提交时间:${a.authoredAt}`,"","变更文件:",i||"- 无",h,"","Diff:",u||"(empty diff)"].join(`
6
- `)}function os(a){if(!a)return;a.style.height="0px";const i=Math.min(Math.max(a.scrollHeight,34),120);a.style.height=`${i}px`,a.style.overflowY=a.scrollHeight>120?"auto":"hidden"}function Xn(a){switch(a){case"local":return n("git.historyKindLocal");case"remote":return n("git.historyKindRemote");default:return n("git.historyKindShared")}}function qn(a){if(!a)return 0;let i=0;for(const u of a)i=i*33+u.charCodeAt(0)>>>0;return i%6}function ls(a){const i=Date.parse(a);return Number.isNaN(i)?a:new Intl.DateTimeFormat("zh-CN",{month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",hour12:!1}).format(i)}function L(a,i){return a instanceof Bn?us(a)??a.message:typeof a=="object"&&a&&"message"in a?a.message:i}function ke(a){return`git-sidebar.snapshot.${a}`}function Lt(a){return a?!!(a.status||a.branches||a.history.length>0||a.historyTotalCount>0||a.historyNextCursor||a.revision):!1}function cs(a){return a?a.snapshot.enabled!==!1:!0}function us(a){switch(a.errorCode){case"UNAUTHORIZED":return n("git.errors.unauthorized");case"WORKSPACE_NOT_FOUND":return n("git.errors.workspaceNotFound");case"INVALID_WORKSPACE":return n("git.errors.invalidWorkspace");case"NOT_GIT_REPOSITORY":return n("git.errors.notGitRepository");case"GIT_REPO_NOT_FOUND":return n("git.errors.repoNotFound");case"PATH_OUT_OF_WORKSPACE":return n("git.errors.pathOutOfWorkspace");case"INVALID_TARGET":return n("git.errors.invalidTarget");case"NOT_STAGED":return n("git.errors.notStaged");case"EMPTY_STAGED_CHANGES":return n("git.errors.emptyStagedChanges");case"BRANCH_CONFLICT":return n("git.errors.branchConflict");case"BRANCH_NOT_FOUND":return n("git.errors.branchNotFound");case"REMOTE_NOT_FOUND":return n("git.errors.remoteNotFound");case"GIT_REMOTE_AUTH_FAILED":return n("git.errors.remoteAuthFailed");case"GIT_PUSH_FAILED":return n("git.errors.pushFailed");case"GIT_PULL_FAILED":return n("git.errors.pullFailed");case"GIT_REMOTE_FAILED":return n("git.errors.remoteFailed");case"GIT_COMMAND_TIMEOUT":return n("git.errors.commandTimeout");case"GIT_INIT_FAILED":return n("git.errors.initFailed");case"GIT_DISCARD_FAILED":return n("git.discardFailed");case"GIT_UNDO_FAILED":return n("git.undoLastCommitFailed");default:return null}}function Gn(a){return a instanceof Bn&&a.errorCode==="GIT_REMOTE_AUTH_FAILED"}function ds(a){return!a||!a.mode||a.mode==="none"?ot:a.mode==="basic"?{authMode:"basic",username:a.username??"",password:a.password??"",token:"",rememberOnHost:!1}:a.mode==="token"?{authMode:"token",username:a.username??"",password:"",token:a.token??"",rememberOnHost:!1}:ot}function ms(a){return a.authMode==="none"?null:a.authMode==="basic"?{mode:"basic",username:a.username.trim(),password:a.password}:{mode:"token",username:a.username.trim()||void 0,token:a.token}}function hs(a,i){const u=a.find(d=>d.name===i)??a.find(d=>d.name==="origin")??a[0];if(!u)return"generic";const h=u.pushUrl||u.fetchUrl;return gs(h)?"github":"generic"}function gs(a){const i=(a==null?void 0:a.trim().toLowerCase())??"";return i.startsWith("https://github.com/")||i.startsWith("http://github.com/")||i.startsWith("ssh://git@github.com/")||i.startsWith("git@github.com:")}function $n(a,i,u){const h=Math.max(0,u.width),d=Math.max(0,u.height),j=Math.max(0,d-F*2),f=Math.max(0,h-F*2),x=Math.min(Math.max(i.width||kt,0),f),b=Math.max(0,d-a.bottom-rt-F),v=Math.max(0,a.top-rt-F),E=b<i.height&&v>b,T=_t(Math.max(E?v:b,es),0,j),p=Math.min(Math.max(i.height,0),T),r=E?a.top-rt-p:a.bottom+rt,m=Math.max(F,d-F-p),y=Math.max(F,h-F-x);return{top:_t(r,F,m),left:_t(a.right-x,F,y),maxHeight:Math.max(0,T),transformOrigin:`${E?"bottom":"top"} right`}}function _t(a,i,u){return!Number.isFinite(a)||u<i?i:Math.min(Math.max(a,i),u)}function lt({expanded:a}){return e.jsx("svg",{className:"git-chevron-icon",width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",style:{transform:a?"rotate(0deg)":"rotate(-90deg)"},"aria-hidden":"true",children:e.jsx("polyline",{points:"6 9 12 15 18 9"})})}function $t({staged:a}){return a?e.jsx("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2","aria-hidden":"true",children:e.jsx("path",{d:"M5 12h14"})}):e.jsxs("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2","aria-hidden":"true",children:[e.jsx("path",{d:"M12 5v14"}),e.jsx("path",{d:"M5 12h14"})]})}function Bt(){return e.jsxs("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2","aria-hidden":"true",children:[e.jsx("path",{d:"M10 7L6 11l4 4",strokeLinecap:"round",strokeLinejoin:"round"}),e.jsx("path",{d:"M7 11h7c3.87 0 7 3.13 7 7 0 1.9-.76 3.63-2 4.89",strokeLinecap:"round",strokeLinejoin:"round"})]})}function fs(){return e.jsx("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2","aria-hidden":"true",children:e.jsx("path",{d:"M12 3l1.9 5.1L19 10l-5.1 1.9L12 17l-1.9-5.1L5 10l5.1-1.9L12 3z"})})}function Ge(){return e.jsxs("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":"true",children:[e.jsx("circle",{cx:"5",cy:"12",r:"1.8"}),e.jsx("circle",{cx:"12",cy:"12",r:"1.8"}),e.jsx("circle",{cx:"19",cy:"12",r:"1.8"})]})}function Yn(a){try{return new Intl.DateTimeFormat("zh-CN",{month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit"}).format(new Date(a))}catch{return a}}export{Ms as GitSidebar,$n as resolveGitOperationsMenuPosition};
@@ -1 +0,0 @@
1
- import{j as e,t}from"./index-oGylLBIX.js";import{u as l,c,n as p}from"./WorkbenchLayout-Dybarc1V.js";import{N as m}from"./App-C2lNmeKL.js";import"./model-switch-api-T55eW6D4.js";import"./window-BVUB8gMK.js";import"./event-DvH9tcej.js";import"./WorkbenchModal-DMQutm1x.js";import"./relay-entry-sdeFnTbY.js";function b(){const{currentWorkspaceId:s,currentSessionId:a,navigationGroups:i}=l();if(!s)return e.jsx("main",{className:"mobile-feature-page mobile-page-scroll-root",children:e.jsxs("article",{className:"mobile-feature-empty surface-card",children:[e.jsx("h1",{children:t("shell.filesEntry")}),e.jsx("p",{children:t("shell.toolsWorkspaceRequiredBody")})]})});const o=i.flatMap(r=>r.sessions).find(r=>r.sessionId===a&&r.workspaceId===s),n=o?c(s,o.sessionId):p(s);return e.jsx(m,{to:`${n}?toolPanel=files`,replace:!0})}export{b as ToolFilesPage};
@@ -1 +0,0 @@
1
- import{j as e,t}from"./index-oGylLBIX.js";import{u as c,c as l,n as p}from"./WorkbenchLayout-Dybarc1V.js";import{N as m}from"./App-C2lNmeKL.js";import"./model-switch-api-T55eW6D4.js";import"./window-BVUB8gMK.js";import"./event-DvH9tcej.js";import"./WorkbenchModal-DMQutm1x.js";import"./relay-entry-sdeFnTbY.js";function I(){const{currentWorkspaceId:s,currentSessionId:a,navigationGroups:i}=c();if(!s)return e.jsx("main",{className:"mobile-feature-page mobile-page-scroll-root",children:e.jsxs("article",{className:"mobile-feature-empty surface-card",children:[e.jsx("h1",{children:t("shell.gitEntry")}),e.jsx("p",{children:t("shell.toolsWorkspaceRequiredBody")})]})});const o=i.flatMap(r=>r.sessions).find(r=>r.sessionId===a&&r.workspaceId===s),n=o?l(s,o.sessionId):p(s);return e.jsx(m,{to:`${n}?toolPanel=git`,replace:!0})}export{I as ToolGitPage};
@@ -1 +0,0 @@
1
- import{j as e,t}from"./index-oGylLBIX.js";import{u as c,c as l,n as p}from"./WorkbenchLayout-Dybarc1V.js";import{N as m}from"./App-C2lNmeKL.js";import"./model-switch-api-T55eW6D4.js";import"./window-BVUB8gMK.js";import"./event-DvH9tcej.js";import"./WorkbenchModal-DMQutm1x.js";import"./relay-entry-sdeFnTbY.js";function I(){const{currentWorkspaceId:s,currentSessionId:a,navigationGroups:i}=c();if(!s)return e.jsx("main",{className:"mobile-feature-page mobile-page-scroll-root",children:e.jsxs("article",{className:"mobile-feature-empty surface-card",children:[e.jsx("h1",{children:t("shell.terminalManagerEntry")}),e.jsx("p",{children:t("shell.toolsWorkspaceRequiredBody")})]})});const o=i.flatMap(r=>r.sessions).find(r=>r.sessionId===a&&r.workspaceId===s),n=o?l(s,o.sessionId):p(s);return e.jsx(m,{to:`${n}?toolPanel=processes`,replace:!0})}export{I as ToolProcessesPage};