@cuongtran001/kanna 1.5.2 → 1.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (66) hide show
  1. package/dist/client/assets/{arc-Bq6a9goH.js → arc-CzfkMOyX.js} +1 -1
  2. package/dist/client/assets/{architectureDiagram-3BPJPVTR-CdA0OuJG.js → architectureDiagram-3BPJPVTR-BkSWnZYt.js} +1 -1
  3. package/dist/client/assets/{blockDiagram-GPEHLZMM-DV4ECYgR.js → blockDiagram-GPEHLZMM-KF-OkAaC.js} +1 -1
  4. package/dist/client/assets/{c4Diagram-AAUBKEIU-BomX96KH.js → c4Diagram-AAUBKEIU-BLgQcqWJ.js} +1 -1
  5. package/dist/client/assets/channel-DJxgNZ8E.js +1 -0
  6. package/dist/client/assets/{chunk-2J33WTMH-CL2DtB23.js → chunk-2J33WTMH-Bu_l1D9V.js} +1 -1
  7. package/dist/client/assets/{chunk-4BX2VUAB-CQvSm1Ai.js → chunk-4BX2VUAB-Do76PmGb.js} +1 -1
  8. package/dist/client/assets/{chunk-55IACEB6-CZ0wAe3a.js → chunk-55IACEB6-BUizCEvC.js} +1 -1
  9. package/dist/client/assets/{chunk-727SXJPM-DDREvaK8.js → chunk-727SXJPM-BCos-OHm.js} +1 -1
  10. package/dist/client/assets/{chunk-AQP2D5EJ-DxR-HxYU.js → chunk-AQP2D5EJ-nw55LD3j.js} +1 -1
  11. package/dist/client/assets/{chunk-FMBD7UC4-CwabQtiL.js → chunk-FMBD7UC4-Cwk0xY3O.js} +1 -1
  12. package/dist/client/assets/{chunk-ND2GUHAM-D4KbNrmX.js → chunk-ND2GUHAM-BUw901P5.js} +1 -1
  13. package/dist/client/assets/{chunk-QZHKN3VN-DlsMQbw8.js → chunk-QZHKN3VN-yTMY28Kv.js} +1 -1
  14. package/dist/client/assets/classDiagram-4FO5ZUOK-Bx0YWw9k.js +1 -0
  15. package/dist/client/assets/classDiagram-v2-Q7XG4LA2-Bx0YWw9k.js +1 -0
  16. package/dist/client/assets/{cose-bilkent-S5V4N54A-hd0IPj-R.js → cose-bilkent-S5V4N54A-D9JxqTfY.js} +1 -1
  17. package/dist/client/assets/{dagre-BM42HDAG-BPGEFDnK.js → dagre-BM42HDAG-CDHH6dJx.js} +1 -1
  18. package/dist/client/assets/{diagram-2AECGRRQ-BQK6d5cN.js → diagram-2AECGRRQ-PI8PyPnL.js} +1 -1
  19. package/dist/client/assets/{diagram-5GNKFQAL-Cs4nRk8c.js → diagram-5GNKFQAL-D12IUad-.js} +1 -1
  20. package/dist/client/assets/{diagram-KO2AKTUF-Zu8Qftjy.js → diagram-KO2AKTUF-Lmpld31w.js} +1 -1
  21. package/dist/client/assets/{diagram-LMA3HP47-CGMXqcr0.js → diagram-LMA3HP47-G66-DNb2.js} +1 -1
  22. package/dist/client/assets/{diagram-OG6HWLK6-3CKdnXFu.js → diagram-OG6HWLK6-BeJNGehV.js} +1 -1
  23. package/dist/client/assets/{erDiagram-TEJ5UH35-CwQa8PYO.js → erDiagram-TEJ5UH35-CsjtRplH.js} +1 -1
  24. package/dist/client/assets/{flowDiagram-I6XJVG4X-qxkwwEpd.js → flowDiagram-I6XJVG4X-CKSYgb2V.js} +1 -1
  25. package/dist/client/assets/{ganttDiagram-6RSMTGT7-Cn3fgBf5.js → ganttDiagram-6RSMTGT7-Dg0Do0Xq.js} +1 -1
  26. package/dist/client/assets/{gitGraphDiagram-PVQCEYII-Cq_vgpL_.js → gitGraphDiagram-PVQCEYII-DLwg19MP.js} +1 -1
  27. package/dist/client/assets/{index-DCnURLSJ.js → index-BTDhLUJP.js} +1 -1
  28. package/dist/client/assets/index-CLR8vLMk.css +32 -0
  29. package/dist/client/assets/{index-CYHsV-mI.js → index-Dg6ZB4fk.js} +2 -2
  30. package/dist/client/assets/{infoDiagram-5YYISTIA-BHk-9W3O.js → infoDiagram-5YYISTIA-v80oWRqg.js} +1 -1
  31. package/dist/client/assets/{ishikawaDiagram-YF4QCWOH-C-sqLEuL.js → ishikawaDiagram-YF4QCWOH-dRf3S1TY.js} +1 -1
  32. package/dist/client/assets/{journeyDiagram-JHISSGLW-DADIP2Y6.js → journeyDiagram-JHISSGLW-CWhBGjCT.js} +1 -1
  33. package/dist/client/assets/{kanban-definition-UN3LZRKU-CuyGKx3m.js → kanban-definition-UN3LZRKU-COMmEU3b.js} +1 -1
  34. package/dist/client/assets/{linear-DKjGbPaB.js → linear-DP76uIp5.js} +1 -1
  35. package/dist/client/assets/{mermaid.core-ByeoRGla.js → mermaid.core--eJrxZFH.js} +4 -4
  36. package/dist/client/assets/{mindmap-definition-RKZ34NQL-CkpIebpm.js → mindmap-definition-RKZ34NQL-CHUBPHpv.js} +1 -1
  37. package/dist/client/assets/{pieDiagram-4H26LBE5-Cp020h3L.js → pieDiagram-4H26LBE5-Dt_AhcwE.js} +1 -1
  38. package/dist/client/assets/{quadrantDiagram-W4KKPZXB-BtveddLO.js → quadrantDiagram-W4KKPZXB-Bx1Uoprd.js} +1 -1
  39. package/dist/client/assets/{requirementDiagram-4Y6WPE33-BB6TxXOe.js → requirementDiagram-4Y6WPE33-C0NjoFx_.js} +1 -1
  40. package/dist/client/assets/{sankeyDiagram-5OEKKPKP-WDPpk1GZ.js → sankeyDiagram-5OEKKPKP-V4td1Guo.js} +1 -1
  41. package/dist/client/assets/{sequenceDiagram-3UESZ5HK-xCbWgVUK.js → sequenceDiagram-3UESZ5HK-SIlzqlbo.js} +1 -1
  42. package/dist/client/assets/{stateDiagram-AJRCARHV-BaAG8wt2.js → stateDiagram-AJRCARHV-c6a1Gdlq.js} +1 -1
  43. package/dist/client/assets/stateDiagram-v2-BHNVJYJU-CLqBX2iP.js +1 -0
  44. package/dist/client/assets/{timeline-definition-PNZ67QCA-CuUGC2Ht.js → timeline-definition-PNZ67QCA-DfAWt7-v.js} +1 -1
  45. package/dist/client/assets/{vennDiagram-CIIHVFJN-U7GRzwqO.js → vennDiagram-CIIHVFJN-HWptvUiV.js} +1 -1
  46. package/dist/client/assets/{wardley-L42UT6IY-Coh5UbId.js → wardley-L42UT6IY-CNME8tnb.js} +1 -1
  47. package/dist/client/assets/{wardleyDiagram-YWT4CUSO-D1NEqYCP.js → wardleyDiagram-YWT4CUSO-Ds9BnIal.js} +1 -1
  48. package/dist/client/assets/{xychartDiagram-2RQKCTM6-Bg_y8ehy.js → xychartDiagram-2RQKCTM6-CvKeYggJ.js} +1 -1
  49. package/dist/client/index.html +2 -2
  50. package/package.json +6 -1
  51. package/src/server/kanna-mcp.test.ts +121 -0
  52. package/src/server/kanna-mcp.ts +120 -0
  53. package/src/server/loop-template.test.ts +0 -20
  54. package/src/server/loop-template.ts +12 -13
  55. package/src/server/structured-doc-io.adapter.test.ts +34 -0
  56. package/src/server/structured-doc-io.adapter.ts +24 -0
  57. package/src/shared/structured-doc/markdown.test.ts +139 -0
  58. package/src/shared/structured-doc/markdown.ts +190 -0
  59. package/src/shared/structured-doc/registry.test.ts +19 -0
  60. package/src/shared/structured-doc/registry.ts +20 -0
  61. package/src/shared/structured-doc/types.ts +79 -0
  62. package/dist/client/assets/channel-C7_JZ1Lv.js +0 -1
  63. package/dist/client/assets/classDiagram-4FO5ZUOK-D5RNeSzF.js +0 -1
  64. package/dist/client/assets/classDiagram-v2-Q7XG4LA2-D5RNeSzF.js +0 -1
  65. package/dist/client/assets/index-BTfLcPfx.css +0 -32
  66. package/dist/client/assets/stateDiagram-v2-BHNVJYJU-BU6NIrIr.js +0 -1
@@ -768,7 +768,7 @@ For more information, see https://radix-ui.com/primitives/docs/components/${t.do
768
768
  `)!==n.readPathDeny.join(`
769
769
  `)&&(w.readPathDeny=y),x.join(`
770
770
  `)!==n.writePathDeny.join(`
771
- `)&&(w.writePathDeny=x),Object.keys(w).length===0?null:w}function g(){r(m())}function b(){r(null)}return c.jsxs(c.Fragment,{children:[c.jsx(Yo,{open:e,onOpenChange:y=>{y||i()},children:c.jsxs(So,{className:"max-w-2xl",children:[c.jsxs(Xo,{children:["Permissions — ",t]}),c.jsxs(Aa,{className:"space-y-5",children:[c.jsxs("div",{className:"space-y-2",children:[c.jsx("div",{className:"text-sm font-medium",children:"Default action"}),c.jsxs("div",{className:"text-xs text-muted-foreground",children:["Behaviour when a tool call has no explicit allow/deny rule. ",c.jsx("strong",{children:"auto-allow"})," bypasses prompts and runs untrusted shell commands without supervision — use a worktree."]}),c.jsx(Hs,{value:s,onValueChange:p,options:[{value:"ask",label:"Ask"},{value:"auto-allow",label:"Auto-allow (unsafe)"},{value:"auto-deny",label:"Auto-deny"}]})]}),c.jsxs("div",{className:"space-y-2",children:[c.jsx("div",{className:"text-sm font-medium",children:"Read-path deny list"}),c.jsx("div",{className:"text-xs text-muted-foreground",children:"One glob per line. The model cannot read paths matching any entry. Defaults shown below — edit to add or remove."}),c.jsx("textarea",{value:o,onChange:y=>f.getState().setReadDenyText(y.target.value),rows:8,className:"w-full rounded-md border border-border bg-background px-3 py-2 font-mono text-xs",spellCheck:!1})]}),c.jsxs("div",{className:"space-y-2",children:[c.jsx("div",{className:"text-sm font-medium",children:"Write-path deny list"}),c.jsx("div",{className:"text-xs text-muted-foreground",children:"One glob per line. The model cannot edit or write paths matching any entry."}),c.jsx("textarea",{value:a,onChange:y=>f.getState().setWriteDenyText(y.target.value),rows:8,className:"w-full rounded-md border border-border bg-background px-3 py-2 font-mono text-xs",spellCheck:!1})]})]}),c.jsxs(yu,{className:"justify-between",children:[c.jsx(je,{variant:"ghost",onClick:b,children:"Reset to defaults"}),c.jsxs("div",{className:"flex gap-2",children:[c.jsx(je,{variant:"ghost",onClick:i,children:"Cancel"}),c.jsx(je,{onClick:g,children:"Apply"})]})]})]})}),c.jsx(Yo,{open:l,onOpenChange:y=>{y||(f.getState().setConfirmUnsafeOpen(!1),f.getState().setPendingDefaultAction(null))},children:c.jsxs(So,{className:"max-w-md",children:[c.jsx(Xo,{children:"Enable auto-allow for this chat?"}),c.jsxs(Aa,{className:"space-y-3 text-sm",children:[c.jsx("p",{children:"Auto-allow disables tool-call prompts. The model can run shell commands, write files, and edit code without asking. Read/write deny lists still apply."}),c.jsx("p",{className:"text-warning",children:"Use a worktree for risky tasks."})]}),c.jsxs(yu,{className:"justify-end gap-2",children:[c.jsx(je,{variant:"ghost",onClick:()=>{f.getState().setConfirmUnsafeOpen(!1),f.getState().setPendingDefaultAction(null)},children:"Cancel"}),c.jsx(je,{variant:"destructive",onClick:()=>{const y=f.getState();u&&y.setDefaultAction(u),y.setConfirmUnsafeOpen(!1),y.setPendingDefaultAction(null)},children:"Enable auto-allow"})]})]})})]})}const hge={defaultAction:"ask",bash:{autoAllowVerbs:["ls","pwd","git status","git diff","git log"]},readPathDeny:["~/.ssh","~/.aws","~/.gcp","~/.config/gh","~/.claude","~/.kanna","~/Library/Keychains","/etc/shadow","/etc/sudoers","~/.gnupg","~/.gitconfig","**/.git/config","~/.npmrc","~/.netrc","~/.docker/config.json","**/.env","**/.env.*","**/credentials*","**/*.pem","**/*.key","**/id_rsa*","**/id_ed25519*"],writePathDeny:["/etc/**","/usr/**","/System/**","~/.ssh/**","~/.aws/**","~/.config/gh/**","~/.claude/**","~/.kanna/**","~/.gnupg/**","~/.gitconfig","**/.git/config"],toolDenyList:[{tool:"mcp__kanna__bash",pattern:"rm\\s+-rf\\s+(/|~|\\$HOME)(?:\\b|$|\\s)"},{tool:"mcp__kanna__bash",pattern:"git\\s+push\\b.*--force"}],toolAllowList:[]},wr={setTimeout(e,t){return window.setTimeout(e,t)},clearTimeout(e){window.clearTimeout(e)},setInterval(e,t){return window.setInterval(e,t)},clearInterval(e){window.clearInterval(e)},requestAnimationFrame(e){return window.requestAnimationFrame(e)},cancelAnimationFrame(e){window.cancelAnimationFrame(e)}},hn=_.forwardRef(({className:e,type:t,...n},r)=>c.jsx("input",{ref:r,type:t,className:pe("flex w-full rounded-lg border border-border bg-background px-3 py-2 text-sm text-foreground outline-none placeholder:text-muted-foreground focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:cursor-not-allowed disabled:opacity-50",e),...n}));hn.displayName="Input";const mK=_.createContext(null);function pge({children:e,ports:t={}}){const n=t.timer??wr,[r,i]=_.useState(null),[s,o]=_.useState(""),a=_.useRef(null);_.useEffect(()=>{(r==null?void 0:r.kind)==="prompt"&&(o(r.options.initialValue??""),n.setTimeout(()=>{var x,w;(x=a.current)==null||x.focus(),(w=a.current)==null||w.select()},0))},[r,n]);const l=_.useCallback(()=>{i(null),o("")},[]),u=_.useCallback(()=>{r&&(r.kind==="confirm"?r.resolve(!1):r.kind==="prompt"?r.resolve(null):r.resolve(),l())},[l,r]),f=_.useCallback(()=>{r&&(r.kind==="confirm"?r.resolve(!0):r.kind==="prompt"?r.resolve(s.trim()||null):r.resolve(),l())},[l,r,s]),p=_.useCallback(x=>new Promise(w=>{i({kind:"confirm",options:x,resolve:w})}),[]),m=_.useCallback(x=>new Promise(w=>{i({kind:"prompt",options:x,resolve:w})}),[]),g=_.useCallback(x=>new Promise(w=>{i({kind:"alert",options:x,resolve:w})}),[]),b=_.useMemo(()=>({confirm:p,prompt:m,alert:g}),[g,p,m]);let y="Confirm";return r&&(r.kind==="alert"?y=r.options.closeLabel??"OK":"confirmLabel"in r.options&&(y=r.options.confirmLabel??"Confirm")),c.jsxs(mK.Provider,{value:b,children:[e,c.jsx(Yo,{open:r!==null,onOpenChange:x=>{x||!r||u()},children:c.jsx(So,{size:"sm",onKeyDown:x=>{x.key!=="Enter"||x.shiftKey||!r||r.kind!=="confirm"||(x.preventDefault(),f())},children:r?c.jsxs(c.Fragment,{children:[c.jsxs(Aa,{className:"space-y-4",children:[c.jsx(Xo,{children:r.options.title}),r.options.description?c.jsx(yv,{children:r.options.description}):null,r.kind==="prompt"?c.jsx(hn,{ref:a,type:"text",value:s,onChange:x=>o(x.target.value),onKeyDown:x=>{x.key==="Enter"&&(x.preventDefault(),f())},placeholder:r.options.placeholder}):null]}),c.jsxs(yu,{children:[c.jsx(je,{variant:"ghost",size:"sm",onClick:u,className:r.kind==="alert"?"hidden":void 0,children:"cancelLabel"in r.options?r.options.cancelLabel??"Cancel":"Cancel"}),c.jsx(je,{variant:r.kind==="confirm"?r.options.confirmVariant??"default":"secondary",size:"sm",onClick:f,disabled:r.kind==="prompt"&&!s.trim(),children:y})]})]}):null})})]})}function p_(){const e=_.useContext(mK);if(!e)throw new Error("useAppDialog must be used within AppDialogProvider");return e}const BI=_.forwardRef(({className:e,...t},n)=>c.jsx("div",{ref:n,className:pe("bg-card text-card-foreground",e),...t}));BI.displayName="Card";const UI=_.forwardRef(({className:e,...t},n)=>c.jsx("div",{ref:n,className:pe("flex flex-col space-y-1.5 p-2",e),...t}));UI.displayName="CardHeader";const gK=_.forwardRef(({className:e,...t},n)=>c.jsx("h3",{ref:n,className:pe("text-2xl font-semibold leading-none tracking-tight",e),...t}));gK.displayName="CardTitle";const vK=_.forwardRef(({className:e,...t},n)=>c.jsx("p",{ref:n,className:pe("text-sm text-muted-foreground",e),...t}));vK.displayName="CardDescription";const HI=_.forwardRef(({className:e,...t},n)=>c.jsx("div",{ref:n,className:pe("p-6 pt-0",e),...t}));HI.displayName="CardContent";const mge=_.forwardRef(({className:e,...t},n)=>c.jsx("div",{ref:n,className:pe("flex items-center p-6 pt-0",e),...t}));mge.displayName="CardFooter";const gge={info:{dotVar:"var(--info)",bgClass:"bg-info/[0.06]"},warning:{dotVar:"var(--warning)",bgClass:"bg-warning/[0.06]"},success:{dotVar:"var(--success)",bgClass:"bg-success/[0.06]"},error:{dotVar:"var(--destructive)",bgClass:"bg-destructive/[0.06]"}};function vge({variant:e,children:t,dot:n=!0,className:r}){const i=gge[e];return c.jsxs("div",{role:"status",className:pe("flex flex-wrap items-center justify-center gap-x-2 gap-y-1 border-b border-border px-4 py-2 text-xs leading-tight",i.bgClass,r),children:[n?c.jsx("span",{"aria-hidden":"true",className:"inline-block size-1.5 shrink-0 rounded-full",style:{backgroundColor:i.dotVar}}):null,t]})}const bge="modulepreload",yge=function(e){return"/"+e},oF={},Z=function(t,n,r){let i=Promise.resolve();if(n&&n.length>0){let o=function(u){return Promise.all(u.map(f=>Promise.resolve(f).then(p=>({status:"fulfilled",value:p}),p=>({status:"rejected",reason:p}))))};document.getElementsByTagName("link");const a=document.querySelector("meta[property=csp-nonce]"),l=(a==null?void 0:a.nonce)||(a==null?void 0:a.getAttribute("nonce"));i=o(n.map(u=>{if(u=yge(u),u in oF)return;oF[u]=!0;const f=u.endsWith(".css"),p=f?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${u}"]${p}`))return;const m=document.createElement("link");if(m.rel=f?"stylesheet":bge,f||(m.as="script"),m.crossOrigin="",m.href=u,l&&m.setAttribute("nonce",l),document.head.appendChild(m),f)return new Promise((g,b)=>{m.addEventListener("load",g),m.addEventListener("error",()=>b(new Error(`Unable to preload CSS for ${u}`)))})}))}function s(o){const a=new Event("vite:preloadError",{cancelable:!0});if(a.payload=o,window.dispatchEvent(a),!a.defaultPrevented)throw o}return i.then(o=>{for(const a of o||[])a.status==="rejected"&&s(a.reason);return t().catch(s)})},xge=_.lazy(()=>Z(()=>import("./index-DCnURLSJ.js"),[]).then(e=>({default:e.Toaster})));function _ge(){return c.jsx(_.Suspense,{fallback:null,children:c.jsx(xge,{position:"bottom-right",theme:"system",closeButton:!0,duration:6e3})})}const Sge="1.5.2",wge={version:Sge},Yr="Kanna",aF="kanna",Cge=".kanna",kge=".kanna-dev",Ege="KANNA_RUNTIME_PROFILE",WI=`kanna/${wge.version}`,Nge="[kanna]",Tge=`~/${Yr}`;function fk(){const e=Reflect.get(globalThis,"process");return e==null?void 0:e.env}function Age(e=fk()){var t;return((t=e==null?void 0:e[Ege])==null?void 0:t.trim().toLowerCase())==="dev"?"dev":"prod"}function Rge(e=fk()){return Age(e)==="dev"?kge:Cge}function Mge(e=fk()){return`~/${Rge(e)}`}function jge(e=fk()){return`${Mge(e)}/keybindings.json`}function yS(e){return e?`${aF} ${e}`:aF}const bK="always",yK="funk",Oge=[{value:"blow",label:"Blow"},{value:"bottle",label:"Bottle"},{value:"frog",label:"Frog"},{value:"funk",label:"Funk"},{value:"glass",label:"Glass"},{value:"ping",label:"Ping"},{value:"pop",label:"Pop"},{value:"purr",label:"Purr"},{value:"tink",label:"Tink"}];function Ige(e){switch(e){case"never":case"unfocused":case"always":return e;default:return bK}}function Pge(e){switch(e){case"blow":case"bottle":case"frog":case"funk":case"glass":case"ping":case"pop":case"purr":case"tink":return e;default:return yK}}const Nh=tr()(e=>({chatSoundPreference:bK,chatSoundId:yK,setChatSoundPreference:t=>e({chatSoundPreference:Ige(t)}),setChatSoundId:t=>e({chatSoundId:Pge(t)})})),Lge={blow:"/chat-sounds/Blow.mp3",bottle:"/chat-sounds/Bottle.mp3",frog:"/chat-sounds/Frog.mp3",funk:"/chat-sounds/Funk.mp3",glass:"/chat-sounds/Glass.mp3",ping:"/chat-sounds/Ping.mp3",pop:"/chat-sounds/Pop.mp3",purr:"/chat-sounds/Purr.mp3",tink:"/chat-sounds/Tink.mp3"};function Dge(e=Et){return e.getVisibilityState()!=="visible"||!e.hasFocus()}function $ge(e){const t=new Audio(Lge[e]);return t.preload="auto",t.play()}async function SR(e,t,n=wr){if(t<=0)return;const r=Array.from({length:t},(i,s)=>new Promise(o=>{n.setTimeout(()=>{$ge(e).catch(()=>{}).finally(()=>o())},s*90)}));await Promise.all(r)}function zge(e,t=Et){return e==="never"?!1:e==="always"?!0:Dge(t)}function Fge(e){return e.projectGroups.reduce((t,n)=>t+n.chats.reduce((r,i)=>r+(i.unread?1:0)+(i.status==="waiting_for_user"?1:0),0),0)}function lF(e){let t=0;const n=new Set;for(const r of e.projectGroups)for(const i of r.chats)i.unread&&(t+=1),i.status==="waiting_for_user"&&n.add(i.chatId);return{unreadCount:t,waitingChatIds:n}}function Bge(e,t){if(!e)return 0;const n=lF(e),r=lF(t),i=Math.max(0,r.unreadCount-n.unreadCount);let s=0;for(const o of r.waitingChatIds)n.waitingChatIds.has(o)||(s+=1);return i+s}function xh({tooltip:e,children:t,className:n,inline:r=!1,side:i}){const s=pe("truncate",n);return c.jsx(h_,{children:c.jsxs(ks,{children:[c.jsx(Es,{asChild:!0,children:r?c.jsx("span",{className:s,children:t}):c.jsx("div",{className:s,children:t})}),c.jsx(ms,{side:i,children:e})]})})}function oc({label:e,children:t,side:n}){return c.jsx(h_,{children:c.jsxs(ks,{children:[c.jsx(Es,{asChild:!0,children:t}),c.jsx(ms,{side:n,children:e})]})})}function wR(e){return e.split(/[\s_-]+/).filter(Boolean).map(t=>t.charAt(0).toUpperCase()+t.slice(1).toLowerCase()).join(" ")}const Uge=[/^(?:\/usr\/bin\/env\s+)?(?:\/bin\/)?(?:bash|zsh|sh)\s+(?:-[a-zA-Z]*c|-c)\s+(['"])([\s\S]*)\1$/,/^(?:\/usr\/bin\/env\s+)?(?:\/bin\/)?(?:bash|zsh|sh)\s+(?:-[a-zA-Z]*c|-c)\s+(.+)$/,/^(?:\/usr\/bin\/env\s+)?(?:cmd(?:\.exe)?)\s+\/c\s+(['"])([\s\S]*)\1$/i,/^(?:\/usr\/bin\/env\s+)?(?:cmd(?:\.exe)?)\s+\/c\s+(.+)$/i,/^(?:\/usr\/bin\/env\s+)?(?:powershell(?:\.exe)?|pwsh)\s+(?:-NoProfile\s+)?-Command\s+(['"])([\s\S]*)\1$/i,/^(?:\/usr\/bin\/env\s+)?(?:powershell(?:\.exe)?|pwsh)\s+(?:-NoProfile\s+)?-Command\s+(.+)$/i];function xK(e){const t=e.trim();for(const n of Uge){const r=t.match(n);if(!r)continue;const i=(r[2]??r[1]??"").trim();if(i)return i}return t}function VI(e){return e.split("/").pop()||e}const Hge=1440*6e4;function Wge(e,t){if(e===void 0)return null;const n=Math.max(0,t-e),r=6e4,i=60*r,s=Hge,o=7*s;return n<r?"now":n<i?`${Math.floor(n/r)}m`:n<s?`${Math.floor(n/i)}h`:n<o?`${Math.floor(n/s)}d`:`${Math.floor(n/o)}w`}function Vge(e){return e.lastMessageAt??e._creationTime}const KI=1e3,Pw=60*KI,qm=60*Pw,XT=24*qm;function ba(e){const t=Math.max(0,e);if(t<Pw)return`${Math.floor(t/KI)}s`;if(t<qm)return`${Math.floor(t/Pw)}m`;if(t<XT){const i=Math.floor(t/qm),s=Math.floor(t%qm/Pw);return s===0?`${i}h`:`${i}h ${s}m`}const n=Math.floor(t/XT),r=Math.floor(t%XT/qm);return r===0?`${n}d`:`${n}d ${r}h`}function CR(e){const t=Math.max(0,e);if(t>=qm)return ba(t);const n=Math.floor(t/KI),r=Math.floor(n/60),i=n%60;return`${r}:${i.toString().padStart(2,"0")}`}function kR(e){switch(e){case"idle":return"Idle";case"starting":return"Starting";case"running":return"Running";case"waiting_for_user":return"Waiting";case"failed":return"Failed"}}function cF(e){switch(e){case"running":return"active";case"waiting_for_user":return"attention";case"failed":return"destructive";case"idle":case"starting":default:return"muted"}}function uF(e){switch(e){case"active":return"text-emerald-500 dark:text-emerald-400";case"attention":return"text-amber-500 dark:text-amber-400";case"destructive":return"text-destructive";case"muted":default:return"text-muted-foreground"}}function GI(e){const t=e+"CollectionProvider",[n,r]=Lu(t),[i,s]=n(t,{collectionRef:{current:null},itemMap:new Map}),o=y=>{const{scope:x,children:w}=y,k=Wn.useRef(null),C=Wn.useRef(new Map).current;return c.jsx(i,{scope:x,itemMap:C,collectionRef:k,children:w})};o.displayName=t;const a=e+"CollectionSlot",l=tp(a),u=Wn.forwardRef((y,x)=>{const{scope:w,children:k}=y,C=s(a,w),E=Qn(x,C.collectionRef);return c.jsx(l,{ref:E,children:k})});u.displayName=a;const f=e+"CollectionItemSlot",p="data-radix-collection-item",m=tp(f),g=Wn.forwardRef((y,x)=>{const{scope:w,children:k,...C}=y,E=Wn.useRef(null),A=Qn(x,E),N=s(f,w);return Wn.useEffect(()=>(N.itemMap.set(E,{ref:E,...C}),()=>void N.itemMap.delete(E))),c.jsx(m,{[p]:"",ref:A,children:k})});g.displayName=f;function b(y){const x=s(e+"CollectionConsumer",y);return Wn.useCallback(()=>{const k=x.collectionRef.current;if(!k)return[];const C=Array.from(k.querySelectorAll(`[${p}]`));return Array.from(x.itemMap.values()).sort((N,M)=>C.indexOf(N.ref.current)-C.indexOf(M.ref.current))},[x.collectionRef,x.itemMap])}return[{Provider:o,Slot:u,ItemSlot:g},b,r]}var Kge=_.createContext(void 0);function qI(e){const t=_.useContext(Kge);return e||t||"ltr"}var QT="rovingFocusGroup.onEntryFocus",Gge={bubbles:!1,cancelable:!0},m_="RovingFocusGroup",[ER,_K,qge]=GI(m_),[Yge,SK]=Lu(m_,[qge]),[Xge,Qge]=Yge(m_),wK=_.forwardRef((e,t)=>c.jsx(ER.Provider,{scope:e.__scopeRovingFocusGroup,children:c.jsx(ER.Slot,{scope:e.__scopeRovingFocusGroup,children:c.jsx(Jge,{...e,ref:t})})}));wK.displayName=m_;var Jge=_.forwardRef((e,t)=>{const{__scopeRovingFocusGroup:n,orientation:r,loop:i=!1,dir:s,currentTabStopId:o,defaultCurrentTabStopId:a,onCurrentTabStopIdChange:l,onEntryFocus:u,preventScrollOnEntryFocus:f=!1,...p}=e,m=_.useRef(null),g=Qn(t,m),b=qI(s),[y,x]=Fg({prop:o,defaultProp:a??null,onChange:l,caller:m_}),[w,k]=_.useState(!1),C=ul(u),E=_K(n),A=_.useRef(!1),[N,M]=_.useState(0);return _.useEffect(()=>{const j=m.current;if(j)return j.addEventListener(QT,C),()=>j.removeEventListener(QT,C)},[C]),c.jsx(Xge,{scope:n,orientation:r,dir:b,loop:i,currentTabStopId:y,onItemFocus:_.useCallback(j=>x(j),[x]),onItemShiftTab:_.useCallback(()=>k(!0),[]),onFocusableItemAdd:_.useCallback(()=>M(j=>j+1),[]),onFocusableItemRemove:_.useCallback(()=>M(j=>j-1),[]),children:c.jsx(Tn.div,{tabIndex:w||N===0?-1:0,"data-orientation":r,...p,ref:g,style:{outline:"none",...e.style},onMouseDown:it(e.onMouseDown,()=>{A.current=!0}),onFocus:it(e.onFocus,j=>{const I=!A.current;if(j.target===j.currentTarget&&I&&!w){const z=new CustomEvent(QT,Gge);if(j.currentTarget.dispatchEvent(z),!z.defaultPrevented){const F=E().filter(B=>B.focusable),O=F.find(B=>B.active),P=F.find(B=>B.id===y),U=[O,P,...F].filter(Boolean).map(B=>B.ref.current);EK(U,f)}}A.current=!1}),onBlur:it(e.onBlur,()=>k(!1))})})}),CK="RovingFocusGroupItem",kK=_.forwardRef((e,t)=>{const{__scopeRovingFocusGroup:n,focusable:r=!0,active:i=!1,tabStopId:s,children:o,...a}=e,l=pu(),u=s||l,f=Qge(CK,n),p=f.currentTabStopId===u,m=_K(n),{onFocusableItemAdd:g,onFocusableItemRemove:b,currentTabStopId:y}=f;return _.useEffect(()=>{if(r)return g(),()=>b()},[r,g,b]),c.jsx(ER.ItemSlot,{scope:n,id:u,focusable:r,active:i,children:c.jsx(Tn.span,{tabIndex:p?0:-1,"data-orientation":f.orientation,...a,ref:t,onMouseDown:it(e.onMouseDown,x=>{r?f.onItemFocus(u):x.preventDefault()}),onFocus:it(e.onFocus,()=>f.onItemFocus(u)),onKeyDown:it(e.onKeyDown,x=>{if(x.key==="Tab"&&x.shiftKey){f.onItemShiftTab();return}if(x.target!==x.currentTarget)return;const w=tve(x,f.orientation,f.dir);if(w!==void 0){if(x.metaKey||x.ctrlKey||x.altKey||x.shiftKey)return;x.preventDefault();let C=m().filter(E=>E.focusable).map(E=>E.ref.current);if(w==="last")C.reverse();else if(w==="prev"||w==="next"){w==="prev"&&C.reverse();const E=C.indexOf(x.currentTarget);C=f.loop?nve(C,E+1):C.slice(E+1)}setTimeout(()=>EK(C))}}),children:typeof o=="function"?o({isCurrentTabStop:p,hasTabStop:y!=null}):o})})});kK.displayName=CK;var Zge={ArrowLeft:"prev",ArrowUp:"prev",ArrowRight:"next",ArrowDown:"next",PageUp:"first",Home:"first",PageDown:"last",End:"last"};function eve(e,t){return t!=="rtl"?e:e==="ArrowLeft"?"ArrowRight":e==="ArrowRight"?"ArrowLeft":e}function tve(e,t,n){const r=eve(e.key,n);if(!(t==="vertical"&&["ArrowLeft","ArrowRight"].includes(r))&&!(t==="horizontal"&&["ArrowUp","ArrowDown"].includes(r)))return Zge[r]}function EK(e,t=!1){const n=document.activeElement;for(const r of e)if(r===n||(r.focus({preventScroll:t}),document.activeElement!==n))return}function nve(e,t){return e.map((n,r)=>e[(t+r)%e.length])}var rve=wK,ive=kK,NR=["Enter"," "],sve=["ArrowDown","PageUp","Home"],NK=["ArrowUp","PageDown","End"],ove=[...sve,...NK],ave={ltr:[...NR,"ArrowRight"],rtl:[...NR,"ArrowLeft"]},lve={ltr:["ArrowLeft"],rtl:["ArrowRight"]},g_="Menu",[Jy,cve,uve]=GI(g_),[kp,TK]=Lu(g_,[uve,kf,SK]),hk=kf(),AK=SK(),[dve,Ep]=kp(g_),[fve,v_]=kp(g_),RK=e=>{const{__scopeMenu:t,open:n=!1,children:r,dir:i,onOpenChange:s,modal:o=!0}=e,a=hk(t),[l,u]=_.useState(null),f=_.useRef(!1),p=ul(s),m=qI(i);return _.useEffect(()=>{const g=()=>{f.current=!0,document.addEventListener("pointerdown",b,{capture:!0,once:!0}),document.addEventListener("pointermove",b,{capture:!0,once:!0})},b=()=>f.current=!1;return document.addEventListener("keydown",g,{capture:!0}),()=>{document.removeEventListener("keydown",g,{capture:!0}),document.removeEventListener("pointerdown",b,{capture:!0}),document.removeEventListener("pointermove",b,{capture:!0})}},[]),c.jsx(ak,{...a,children:c.jsx(dve,{scope:t,open:n,onOpenChange:p,content:l,onContentChange:u,children:c.jsx(fve,{scope:t,onClose:_.useCallback(()=>p(!1),[p]),isUsingKeyboardRef:f,dir:m,modal:o,children:r})})})};RK.displayName=g_;var hve="MenuAnchor",YI=_.forwardRef((e,t)=>{const{__scopeMenu:n,...r}=e,i=hk(n);return c.jsx(d_,{...i,...r,ref:t})});YI.displayName=hve;var XI="MenuPortal",[pve,MK]=kp(XI,{forceMount:void 0}),jK=e=>{const{__scopeMenu:t,forceMount:n,children:r,container:i}=e,s=Ep(XI,t);return c.jsx(pve,{scope:t,forceMount:n,children:c.jsx(La,{present:n||s.open,children:c.jsx(bv,{asChild:!0,container:i,children:r})})})};jK.displayName=XI;var ka="MenuContent",[mve,QI]=kp(ka),OK=_.forwardRef((e,t)=>{const n=MK(ka,e.__scopeMenu),{forceMount:r=n.forceMount,...i}=e,s=Ep(ka,e.__scopeMenu),o=v_(ka,e.__scopeMenu);return c.jsx(Jy.Provider,{scope:e.__scopeMenu,children:c.jsx(La,{present:r||s.open,children:c.jsx(Jy.Slot,{scope:e.__scopeMenu,children:o.modal?c.jsx(gve,{...i,ref:t}):c.jsx(vve,{...i,ref:t})})})})}),gve=_.forwardRef((e,t)=>{const n=Ep(ka,e.__scopeMenu),r=_.useRef(null),i=Qn(t,r);return _.useEffect(()=>{const s=r.current;if(s)return ek(s)},[]),c.jsx(JI,{...e,ref:i,trapFocus:n.open,disableOutsidePointerEvents:n.open,disableOutsideScroll:!0,onFocusOutside:it(e.onFocusOutside,s=>s.preventDefault(),{checkForDefaultPrevented:!1}),onDismiss:()=>n.onOpenChange(!1)})}),vve=_.forwardRef((e,t)=>{const n=Ep(ka,e.__scopeMenu);return c.jsx(JI,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,disableOutsideScroll:!1,onDismiss:()=>n.onOpenChange(!1)})}),bve=tp("MenuContent.ScrollLock"),JI=_.forwardRef((e,t)=>{const{__scopeMenu:n,loop:r=!1,trapFocus:i,onOpenAutoFocus:s,onCloseAutoFocus:o,disableOutsidePointerEvents:a,onEntryFocus:l,onEscapeKeyDown:u,onPointerDownOutside:f,onFocusOutside:p,onInteractOutside:m,onDismiss:g,disableOutsideScroll:b,...y}=e,x=Ep(ka,n),w=v_(ka,n),k=hk(n),C=AK(n),E=cve(n),[A,N]=_.useState(null),M=_.useRef(null),j=Qn(t,M,x.onContentChange),I=_.useRef(0),z=_.useRef(""),F=_.useRef(0),O=_.useRef(null),P=_.useRef("right"),W=_.useRef(0),U=b?c_:_.Fragment,B=b?{as:bve,allowPinchZoom:!0}:void 0,K=Y=>{var ce,ge;const G=z.current+Y,D=E().filter(ne=>!ne.disabled),Q=document.activeElement,ae=(ce=D.find(ne=>ne.ref.current===Q))==null?void 0:ce.textValue,re=D.map(ne=>ne.textValue),he=Rve(re,G,ae),ue=(ge=D.find(ne=>ne.textValue===he))==null?void 0:ge.ref.current;(function ne(le){z.current=le,window.clearTimeout(I.current),le!==""&&(I.current=window.setTimeout(()=>ne(""),1e3))})(G),ue&&setTimeout(()=>ue.focus())};_.useEffect(()=>()=>window.clearTimeout(I.current),[]),J1();const V=_.useCallback(Y=>{var D,Q;return P.current===((D=O.current)==null?void 0:D.side)&&jve(Y,(Q=O.current)==null?void 0:Q.area)},[]);return c.jsx(mve,{scope:n,searchRef:z,onItemEnter:_.useCallback(Y=>{V(Y)&&Y.preventDefault()},[V]),onItemLeave:_.useCallback(Y=>{var G;V(Y)||((G=M.current)==null||G.focus(),N(null))},[V]),onTriggerLeave:_.useCallback(Y=>{V(Y)&&Y.preventDefault()},[V]),pointerGraceTimerRef:F,onPointerGraceIntentChange:_.useCallback(Y=>{O.current=Y},[]),children:c.jsx(U,{...B,children:c.jsx(l_,{asChild:!0,trapped:i,onMountAutoFocus:it(s,Y=>{var G;Y.preventDefault(),(G=M.current)==null||G.focus({preventScroll:!0})}),onUnmountAutoFocus:o,children:c.jsx(vv,{asChild:!0,disableOutsidePointerEvents:a,onEscapeKeyDown:u,onPointerDownOutside:f,onFocusOutside:p,onInteractOutside:m,onDismiss:g,children:c.jsx(rve,{asChild:!0,...C,dir:w.dir,orientation:"vertical",loop:r,currentTabStopId:A,onCurrentTabStopIdChange:N,onEntryFocus:it(l,Y=>{w.isUsingKeyboardRef.current||Y.preventDefault()}),preventScrollOnEntryFocus:!0,children:c.jsx(lk,{role:"menu","aria-orientation":"vertical","data-state":YK(x.open),"data-radix-menu-content":"",dir:w.dir,...k,...y,ref:j,style:{outline:"none",...y.style},onKeyDown:it(y.onKeyDown,Y=>{const D=Y.target.closest("[data-radix-menu-content]")===Y.currentTarget,Q=Y.ctrlKey||Y.altKey||Y.metaKey,ae=Y.key.length===1;D&&(Y.key==="Tab"&&Y.preventDefault(),!Q&&ae&&K(Y.key));const re=M.current;if(Y.target!==re||!ove.includes(Y.key))return;Y.preventDefault();const ue=E().filter(ce=>!ce.disabled).map(ce=>ce.ref.current);NK.includes(Y.key)&&ue.reverse(),Tve(ue)}),onBlur:it(e.onBlur,Y=>{Y.currentTarget.contains(Y.target)||(window.clearTimeout(I.current),z.current="")}),onPointerMove:it(e.onPointerMove,Zy(Y=>{const G=Y.target,D=W.current!==Y.clientX;if(Y.currentTarget.contains(G)&&D){const Q=Y.clientX>W.current?"right":"left";P.current=Q,W.current=Y.clientX}}))})})})})})})});OK.displayName=ka;var yve="MenuGroup",ZI=_.forwardRef((e,t)=>{const{__scopeMenu:n,...r}=e;return c.jsx(Tn.div,{role:"group",...r,ref:t})});ZI.displayName=yve;var xve="MenuLabel",IK=_.forwardRef((e,t)=>{const{__scopeMenu:n,...r}=e;return c.jsx(Tn.div,{...r,ref:t})});IK.displayName=xve;var jC="MenuItem",dF="menu.itemSelect",pk=_.forwardRef((e,t)=>{const{disabled:n=!1,onSelect:r,...i}=e,s=_.useRef(null),o=v_(jC,e.__scopeMenu),a=QI(jC,e.__scopeMenu),l=Qn(t,s),u=_.useRef(!1),f=()=>{const p=s.current;if(!n&&p){const m=new CustomEvent(dF,{bubbles:!0,cancelable:!0});p.addEventListener(dF,g=>r==null?void 0:r(g),{once:!0}),Z9(p,m),m.defaultPrevented?u.current=!1:o.onClose()}};return c.jsx(PK,{...i,ref:l,disabled:n,onClick:it(e.onClick,f),onPointerDown:p=>{var m;(m=e.onPointerDown)==null||m.call(e,p),u.current=!0},onPointerUp:it(e.onPointerUp,p=>{var m;u.current||(m=p.currentTarget)==null||m.click()}),onKeyDown:it(e.onKeyDown,p=>{const m=a.searchRef.current!=="";n||m&&p.key===" "||NR.includes(p.key)&&(p.currentTarget.click(),p.preventDefault())})})});pk.displayName=jC;var PK=_.forwardRef((e,t)=>{const{__scopeMenu:n,disabled:r=!1,textValue:i,...s}=e,o=QI(jC,n),a=AK(n),l=_.useRef(null),u=Qn(t,l),[f,p]=_.useState(!1),[m,g]=_.useState("");return _.useEffect(()=>{const b=l.current;b&&g((b.textContent??"").trim())},[s.children]),c.jsx(Jy.ItemSlot,{scope:n,disabled:r,textValue:i??m,children:c.jsx(ive,{asChild:!0,...a,focusable:!r,children:c.jsx(Tn.div,{role:"menuitem","data-highlighted":f?"":void 0,"aria-disabled":r||void 0,"data-disabled":r?"":void 0,...s,ref:u,onPointerMove:it(e.onPointerMove,Zy(b=>{r?o.onItemLeave(b):(o.onItemEnter(b),b.defaultPrevented||b.currentTarget.focus({preventScroll:!0}))})),onPointerLeave:it(e.onPointerLeave,Zy(b=>o.onItemLeave(b))),onFocus:it(e.onFocus,()=>p(!0)),onBlur:it(e.onBlur,()=>p(!1))})})})}),_ve="MenuCheckboxItem",LK=_.forwardRef((e,t)=>{const{checked:n=!1,onCheckedChange:r,...i}=e;return c.jsx(BK,{scope:e.__scopeMenu,checked:n,children:c.jsx(pk,{role:"menuitemcheckbox","aria-checked":OC(n)?"mixed":n,...i,ref:t,"data-state":tP(n),onSelect:it(i.onSelect,()=>r==null?void 0:r(OC(n)?!0:!n),{checkForDefaultPrevented:!1})})})});LK.displayName=_ve;var DK="MenuRadioGroup",[Sve,wve]=kp(DK,{value:void 0,onValueChange:()=>{}}),$K=_.forwardRef((e,t)=>{const{value:n,onValueChange:r,...i}=e,s=ul(r);return c.jsx(Sve,{scope:e.__scopeMenu,value:n,onValueChange:s,children:c.jsx(ZI,{...i,ref:t})})});$K.displayName=DK;var zK="MenuRadioItem",FK=_.forwardRef((e,t)=>{const{value:n,...r}=e,i=wve(zK,e.__scopeMenu),s=n===i.value;return c.jsx(BK,{scope:e.__scopeMenu,checked:s,children:c.jsx(pk,{role:"menuitemradio","aria-checked":s,...r,ref:t,"data-state":tP(s),onSelect:it(r.onSelect,()=>{var o;return(o=i.onValueChange)==null?void 0:o.call(i,n)},{checkForDefaultPrevented:!1})})})});FK.displayName=zK;var eP="MenuItemIndicator",[BK,Cve]=kp(eP,{checked:!1}),UK=_.forwardRef((e,t)=>{const{__scopeMenu:n,forceMount:r,...i}=e,s=Cve(eP,n);return c.jsx(La,{present:r||OC(s.checked)||s.checked===!0,children:c.jsx(Tn.span,{...i,ref:t,"data-state":tP(s.checked)})})});UK.displayName=eP;var kve="MenuSeparator",HK=_.forwardRef((e,t)=>{const{__scopeMenu:n,...r}=e;return c.jsx(Tn.div,{role:"separator","aria-orientation":"horizontal",...r,ref:t})});HK.displayName=kve;var Eve="MenuArrow",WK=_.forwardRef((e,t)=>{const{__scopeMenu:n,...r}=e,i=hk(n);return c.jsx(ck,{...i,...r,ref:t})});WK.displayName=Eve;var Nve="MenuSub",[o9e,VK]=kp(Nve),Zb="MenuSubTrigger",KK=_.forwardRef((e,t)=>{const n=Ep(Zb,e.__scopeMenu),r=v_(Zb,e.__scopeMenu),i=VK(Zb,e.__scopeMenu),s=QI(Zb,e.__scopeMenu),o=_.useRef(null),{pointerGraceTimerRef:a,onPointerGraceIntentChange:l}=s,u={__scopeMenu:e.__scopeMenu},f=_.useCallback(()=>{o.current&&window.clearTimeout(o.current),o.current=null},[]);return _.useEffect(()=>f,[f]),_.useEffect(()=>{const p=a.current;return()=>{window.clearTimeout(p),l(null)}},[a,l]),c.jsx(YI,{asChild:!0,...u,children:c.jsx(PK,{id:i.triggerId,"aria-haspopup":"menu","aria-expanded":n.open,"aria-controls":i.contentId,"data-state":YK(n.open),...e,ref:wI(t,i.onTriggerChange),onClick:p=>{var m;(m=e.onClick)==null||m.call(e,p),!(e.disabled||p.defaultPrevented)&&(p.currentTarget.focus(),n.open||n.onOpenChange(!0))},onPointerMove:it(e.onPointerMove,Zy(p=>{s.onItemEnter(p),!p.defaultPrevented&&!e.disabled&&!n.open&&!o.current&&(s.onPointerGraceIntentChange(null),o.current=window.setTimeout(()=>{n.onOpenChange(!0),f()},100))})),onPointerLeave:it(e.onPointerLeave,Zy(p=>{var g,b;f();const m=(g=n.content)==null?void 0:g.getBoundingClientRect();if(m){const y=(b=n.content)==null?void 0:b.dataset.side,x=y==="right",w=x?-5:5,k=m[x?"left":"right"],C=m[x?"right":"left"];s.onPointerGraceIntentChange({area:[{x:p.clientX+w,y:p.clientY},{x:k,y:m.top},{x:C,y:m.top},{x:C,y:m.bottom},{x:k,y:m.bottom}],side:y}),window.clearTimeout(a.current),a.current=window.setTimeout(()=>s.onPointerGraceIntentChange(null),300)}else{if(s.onTriggerLeave(p),p.defaultPrevented)return;s.onPointerGraceIntentChange(null)}})),onKeyDown:it(e.onKeyDown,p=>{var g;const m=s.searchRef.current!=="";e.disabled||m&&p.key===" "||ave[r.dir].includes(p.key)&&(n.onOpenChange(!0),(g=n.content)==null||g.focus(),p.preventDefault())})})})});KK.displayName=Zb;var GK="MenuSubContent",qK=_.forwardRef((e,t)=>{const n=MK(ka,e.__scopeMenu),{forceMount:r=n.forceMount,...i}=e,s=Ep(ka,e.__scopeMenu),o=v_(ka,e.__scopeMenu),a=VK(GK,e.__scopeMenu),l=_.useRef(null),u=Qn(t,l);return c.jsx(Jy.Provider,{scope:e.__scopeMenu,children:c.jsx(La,{present:r||s.open,children:c.jsx(Jy.Slot,{scope:e.__scopeMenu,children:c.jsx(JI,{id:a.contentId,"aria-labelledby":a.triggerId,...i,ref:u,align:"start",side:o.dir==="rtl"?"left":"right",disableOutsidePointerEvents:!1,disableOutsideScroll:!1,trapFocus:!1,onOpenAutoFocus:f=>{var p;o.isUsingKeyboardRef.current&&((p=l.current)==null||p.focus()),f.preventDefault()},onCloseAutoFocus:f=>f.preventDefault(),onFocusOutside:it(e.onFocusOutside,f=>{f.target!==a.trigger&&s.onOpenChange(!1)}),onEscapeKeyDown:it(e.onEscapeKeyDown,f=>{o.onClose(),f.preventDefault()}),onKeyDown:it(e.onKeyDown,f=>{var g;const p=f.currentTarget.contains(f.target),m=lve[o.dir].includes(f.key);p&&m&&(s.onOpenChange(!1),(g=a.trigger)==null||g.focus(),f.preventDefault())})})})})})});qK.displayName=GK;function YK(e){return e?"open":"closed"}function OC(e){return e==="indeterminate"}function tP(e){return OC(e)?"indeterminate":e?"checked":"unchecked"}function Tve(e){const t=document.activeElement;for(const n of e)if(n===t||(n.focus(),document.activeElement!==t))return}function Ave(e,t){return e.map((n,r)=>e[(t+r)%e.length])}function Rve(e,t,n){const i=t.length>1&&Array.from(t).every(u=>u===t[0])?t[0]:t,s=n?e.indexOf(n):-1;let o=Ave(e,Math.max(s,0));i.length===1&&(o=o.filter(u=>u!==n));const l=o.find(u=>u.toLowerCase().startsWith(i.toLowerCase()));return l!==n?l:void 0}function Mve(e,t){const{x:n,y:r}=e;let i=!1;for(let s=0,o=t.length-1;s<t.length;o=s++){const a=t[s],l=t[o],u=a.x,f=a.y,p=l.x,m=l.y;f>r!=m>r&&n<(p-u)*(r-f)/(m-f)+u&&(i=!i)}return i}function jve(e,t){if(!t)return!1;const n={x:e.clientX,y:e.clientY};return Mve(n,t)}function Zy(e){return t=>t.pointerType==="mouse"?e(t):void 0}var Ove=RK,Ive=YI,Pve=jK,Lve=OK,Dve=ZI,$ve=IK,zve=pk,Fve=LK,Bve=$K,Uve=FK,Hve=UK,Wve=HK,Vve=WK,Kve=KK,Gve=qK,nP="ContextMenu",[qve]=Lu(nP,[TK]),Xs=TK(),[Yve,XK]=qve(nP),QK=e=>{const{__scopeContextMenu:t,children:n,onOpenChange:r,dir:i,modal:s=!0}=e,[o,a]=_.useState(!1),l=Xs(t),u=ul(r),f=_.useCallback(p=>{a(p),u(p)},[u]);return c.jsx(Yve,{scope:t,open:o,onOpenChange:f,modal:s,children:c.jsx(Ove,{...l,dir:i,open:o,onOpenChange:f,modal:s,children:n})})};QK.displayName=nP;var JK="ContextMenuTrigger",ZK=_.forwardRef((e,t)=>{const{__scopeContextMenu:n,disabled:r=!1,...i}=e,s=XK(JK,n),o=Xs(n),a=_.useRef({x:0,y:0}),l=_.useRef({getBoundingClientRect:()=>DOMRect.fromRect({width:0,height:0,...a.current})}),u=_.useRef(0),f=_.useCallback(()=>window.clearTimeout(u.current),[]),p=m=>{a.current={x:m.clientX,y:m.clientY},s.onOpenChange(!0)};return _.useEffect(()=>f,[f]),_.useEffect(()=>void(r&&f()),[r,f]),c.jsxs(c.Fragment,{children:[c.jsx(Ive,{...o,virtualRef:l}),c.jsx(Tn.span,{"data-state":s.open?"open":"closed","data-disabled":r?"":void 0,...i,ref:t,style:{WebkitTouchCallout:"none",...e.style},onContextMenu:r?e.onContextMenu:it(e.onContextMenu,m=>{f(),p(m),m.preventDefault()}),onPointerDown:r?e.onPointerDown:it(e.onPointerDown,xS(m=>{f(),u.current=window.setTimeout(()=>p(m),700)})),onPointerMove:r?e.onPointerMove:it(e.onPointerMove,xS(f)),onPointerCancel:r?e.onPointerCancel:it(e.onPointerCancel,xS(f)),onPointerUp:r?e.onPointerUp:it(e.onPointerUp,xS(f))})]})});ZK.displayName=JK;var Xve="ContextMenuPortal",eG=e=>{const{__scopeContextMenu:t,...n}=e,r=Xs(t);return c.jsx(Pve,{...r,...n})};eG.displayName=Xve;var tG="ContextMenuContent",nG=_.forwardRef((e,t)=>{const{__scopeContextMenu:n,...r}=e,i=XK(tG,n),s=Xs(n),o=_.useRef(!1);return c.jsx(Lve,{...s,...r,ref:t,side:"right",sideOffset:2,align:"start",onCloseAutoFocus:a=>{var l;(l=e.onCloseAutoFocus)==null||l.call(e,a),!a.defaultPrevented&&o.current&&a.preventDefault(),o.current=!1},onInteractOutside:a=>{var l;(l=e.onInteractOutside)==null||l.call(e,a),!a.defaultPrevented&&!i.modal&&(o.current=!0)},style:{...e.style,"--radix-context-menu-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-context-menu-content-available-width":"var(--radix-popper-available-width)","--radix-context-menu-content-available-height":"var(--radix-popper-available-height)","--radix-context-menu-trigger-width":"var(--radix-popper-anchor-width)","--radix-context-menu-trigger-height":"var(--radix-popper-anchor-height)"}})});nG.displayName=tG;var Qve="ContextMenuGroup",Jve=_.forwardRef((e,t)=>{const{__scopeContextMenu:n,...r}=e,i=Xs(n);return c.jsx(Dve,{...i,...r,ref:t})});Jve.displayName=Qve;var Zve="ContextMenuLabel",ebe=_.forwardRef((e,t)=>{const{__scopeContextMenu:n,...r}=e,i=Xs(n);return c.jsx($ve,{...i,...r,ref:t})});ebe.displayName=Zve;var tbe="ContextMenuItem",rG=_.forwardRef((e,t)=>{const{__scopeContextMenu:n,...r}=e,i=Xs(n);return c.jsx(zve,{...i,...r,ref:t})});rG.displayName=tbe;var nbe="ContextMenuCheckboxItem",rbe=_.forwardRef((e,t)=>{const{__scopeContextMenu:n,...r}=e,i=Xs(n);return c.jsx(Fve,{...i,...r,ref:t})});rbe.displayName=nbe;var ibe="ContextMenuRadioGroup",sbe=_.forwardRef((e,t)=>{const{__scopeContextMenu:n,...r}=e,i=Xs(n);return c.jsx(Bve,{...i,...r,ref:t})});sbe.displayName=ibe;var obe="ContextMenuRadioItem",abe=_.forwardRef((e,t)=>{const{__scopeContextMenu:n,...r}=e,i=Xs(n);return c.jsx(Uve,{...i,...r,ref:t})});abe.displayName=obe;var lbe="ContextMenuItemIndicator",cbe=_.forwardRef((e,t)=>{const{__scopeContextMenu:n,...r}=e,i=Xs(n);return c.jsx(Hve,{...i,...r,ref:t})});cbe.displayName=lbe;var ube="ContextMenuSeparator",iG=_.forwardRef((e,t)=>{const{__scopeContextMenu:n,...r}=e,i=Xs(n);return c.jsx(Wve,{...i,...r,ref:t})});iG.displayName=ube;var dbe="ContextMenuArrow",fbe=_.forwardRef((e,t)=>{const{__scopeContextMenu:n,...r}=e,i=Xs(n);return c.jsx(Vve,{...i,...r,ref:t})});fbe.displayName=dbe;var hbe="ContextMenuSubTrigger",pbe=_.forwardRef((e,t)=>{const{__scopeContextMenu:n,...r}=e,i=Xs(n);return c.jsx(Kve,{...i,...r,ref:t})});pbe.displayName=hbe;var mbe="ContextMenuSubContent",gbe=_.forwardRef((e,t)=>{const{__scopeContextMenu:n,...r}=e,i=Xs(n);return c.jsx(Gve,{...i,...r,ref:t,style:{...e.style,"--radix-context-menu-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-context-menu-content-available-width":"var(--radix-popper-available-width)","--radix-context-menu-content-available-height":"var(--radix-popper-available-height)","--radix-context-menu-trigger-width":"var(--radix-popper-anchor-width)","--radix-context-menu-trigger-height":"var(--radix-popper-anchor-height)"}})});gbe.displayName=mbe;function xS(e){return t=>t.pointerType!=="mouse"?e(t):void 0}var vbe=QK,bbe=ZK,ybe=eG,sG=nG,oG=rG,aG=iG;const lG=_.createContext(null);function Np({onOpenChange:e,...t}){const[n,r]=_.useState(0),i=_.useCallback(()=>{r(s=>s+1),e==null||e(!1)},[e]);return c.jsx(lG.Provider,{value:i,children:c.jsx(vbe,{onOpenChange:e,...t},n)})}const Tp=bbe,Ef=_.forwardRef(({className:e,...t},n)=>c.jsx(ybe,{children:c.jsx(sG,{ref:n,className:pe("z-50 min-w-[170px] overflow-hidden rounded-xl border border-border bg-background p-1 shadow-lg outline-hidden animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95",e),...t})}));Ef.displayName=sG.displayName;const Er=_.forwardRef(({className:e,onSelect:t,...n},r)=>{const i=_.useContext(lG);return c.jsx(oG,{ref:r,className:pe("relative flex cursor-default select-none items-center gap-2.5 rounded-lg px-3 py-2 text-xs font-medium text-foreground outline-hidden transition-colors hover:bg-muted focus:bg-muted data-[disabled]:pointer-events-none data-[disabled]:opacity-50",e),onSelect:s=>{t==null||t(s),i==null||i()},...n})});Er.displayName=oG.displayName;const cG=_.forwardRef(({className:e,...t},n)=>c.jsx(aG,{ref:n,className:pe("-mx-1 my-1 h-px bg-border",e),...t}));cG.displayName=aG.displayName;var mk="Popover",[uG]=Lu(mk,[kf]),b_=kf(),[xbe,Nf]=uG(mk),dG=e=>{const{__scopePopover:t,children:n,open:r,defaultOpen:i,onOpenChange:s,modal:o=!1}=e,a=b_(t),l=_.useRef(null),[u,f]=_.useState(!1),[p,m]=Fg({prop:r,defaultProp:i??!1,onChange:s,caller:mk});return c.jsx(ak,{...a,children:c.jsx(xbe,{scope:t,contentId:pu(),triggerRef:l,open:p,onOpenChange:m,onOpenToggle:_.useCallback(()=>m(g=>!g),[m]),hasCustomAnchor:u,onCustomAnchorAdd:_.useCallback(()=>f(!0),[]),onCustomAnchorRemove:_.useCallback(()=>f(!1),[]),modal:o,children:n})})};dG.displayName=mk;var fG="PopoverAnchor",_be=_.forwardRef((e,t)=>{const{__scopePopover:n,...r}=e,i=Nf(fG,n),s=b_(n),{onCustomAnchorAdd:o,onCustomAnchorRemove:a}=i;return _.useEffect(()=>(o(),()=>a()),[o,a]),c.jsx(d_,{...s,...r,ref:t})});_be.displayName=fG;var hG="PopoverTrigger",pG=_.forwardRef((e,t)=>{const{__scopePopover:n,...r}=e,i=Nf(hG,n),s=b_(n),o=Qn(t,i.triggerRef),a=c.jsx(Tn.button,{type:"button","aria-haspopup":"dialog","aria-expanded":i.open,"aria-controls":i.contentId,"data-state":yG(i.open),...r,ref:o,onClick:it(e.onClick,i.onOpenToggle)});return i.hasCustomAnchor?a:c.jsx(d_,{asChild:!0,...s,children:a})});pG.displayName=hG;var rP="PopoverPortal",[Sbe,wbe]=uG(rP,{forceMount:void 0}),mG=e=>{const{__scopePopover:t,forceMount:n,children:r,container:i}=e,s=Nf(rP,t);return c.jsx(Sbe,{scope:t,forceMount:n,children:c.jsx(La,{present:n||s.open,children:c.jsx(bv,{asChild:!0,container:i,children:r})})})};mG.displayName=rP;var Hg="PopoverContent",gG=_.forwardRef((e,t)=>{const n=wbe(Hg,e.__scopePopover),{forceMount:r=n.forceMount,...i}=e,s=Nf(Hg,e.__scopePopover);return c.jsx(La,{present:r||s.open,children:s.modal?c.jsx(kbe,{...i,ref:t}):c.jsx(Ebe,{...i,ref:t})})});gG.displayName=Hg;var Cbe=tp("PopoverContent.RemoveScroll"),kbe=_.forwardRef((e,t)=>{const n=Nf(Hg,e.__scopePopover),r=_.useRef(null),i=Qn(t,r),s=_.useRef(!1);return _.useEffect(()=>{const o=r.current;if(o)return ek(o)},[]),c.jsx(c_,{as:Cbe,allowPinchZoom:!0,children:c.jsx(vG,{...e,ref:i,trapFocus:n.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:it(e.onCloseAutoFocus,o=>{var a;o.preventDefault(),s.current||(a=n.triggerRef.current)==null||a.focus()}),onPointerDownOutside:it(e.onPointerDownOutside,o=>{const a=o.detail.originalEvent,l=a.button===0&&a.ctrlKey===!0,u=a.button===2||l;s.current=u},{checkForDefaultPrevented:!1}),onFocusOutside:it(e.onFocusOutside,o=>o.preventDefault(),{checkForDefaultPrevented:!1})})})}),Ebe=_.forwardRef((e,t)=>{const n=Nf(Hg,e.__scopePopover),r=_.useRef(!1),i=_.useRef(!1);return c.jsx(vG,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:s=>{var o,a;(o=e.onCloseAutoFocus)==null||o.call(e,s),s.defaultPrevented||(r.current||(a=n.triggerRef.current)==null||a.focus(),s.preventDefault()),r.current=!1,i.current=!1},onInteractOutside:s=>{var l,u;(l=e.onInteractOutside)==null||l.call(e,s),s.defaultPrevented||(r.current=!0,s.detail.originalEvent.type==="pointerdown"&&(i.current=!0));const o=s.target;((u=n.triggerRef.current)==null?void 0:u.contains(o))&&s.preventDefault(),s.detail.originalEvent.type==="focusin"&&i.current&&s.preventDefault()}})}),vG=_.forwardRef((e,t)=>{const{__scopePopover:n,trapFocus:r,onOpenAutoFocus:i,onCloseAutoFocus:s,disableOutsidePointerEvents:o,onEscapeKeyDown:a,onPointerDownOutside:l,onFocusOutside:u,onInteractOutside:f,...p}=e,m=Nf(Hg,n),g=b_(n);return J1(),c.jsx(l_,{asChild:!0,loop:!0,trapped:r,onMountAutoFocus:i,onUnmountAutoFocus:s,children:c.jsx(vv,{asChild:!0,disableOutsidePointerEvents:o,onInteractOutside:f,onEscapeKeyDown:a,onPointerDownOutside:l,onFocusOutside:u,onDismiss:()=>m.onOpenChange(!1),children:c.jsx(lk,{"data-state":yG(m.open),role:"dialog",id:m.contentId,...g,...p,ref:t,style:{...p.style,"--radix-popover-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-popover-content-available-width":"var(--radix-popper-available-width)","--radix-popover-content-available-height":"var(--radix-popper-available-height)","--radix-popover-trigger-width":"var(--radix-popper-anchor-width)","--radix-popover-trigger-height":"var(--radix-popper-anchor-height)"}})})})}),bG="PopoverClose",Nbe=_.forwardRef((e,t)=>{const{__scopePopover:n,...r}=e,i=Nf(bG,n);return c.jsx(Tn.button,{type:"button",...r,ref:t,onClick:it(e.onClick,()=>i.onOpenChange(!1))})});Nbe.displayName=bG;var Tbe="PopoverArrow",Abe=_.forwardRef((e,t)=>{const{__scopePopover:n,...r}=e,i=b_(n);return c.jsx(ck,{...i,...r,ref:t})});Abe.displayName=Tbe;function yG(e){return e?"open":"closed"}var Rbe=dG,Mbe=pG,jbe=mG,xG=gG;const Tf=Rbe,Af=Mbe,$u=_.forwardRef(({className:e,align:t="center",sideOffset:n=4,ports:r={},...i},s)=>{const o=r.dom??Et;return c.jsx(jbe,{children:c.jsx(xG,{ref:s,align:t,sideOffset:n,[kC]:"",onCloseAutoFocus:a=>{var l;a.preventDefault(),o.dispatchCustomWindowEvent(AI),(l=i.onCloseAutoFocus)==null||l.call(i,a)},className:pe("z-50 w-72 rounded-xl border border-border bg-background p-4 shadow-lg outline-hidden animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",e),...i})})});$u.displayName=xG.displayName;const TR=en("StackActionsPopover",()=>e=>({open:!1,setOpen:t=>e({open:t})}));function Obe({editorLabel:e,starred:t,onCopyPath:n,onShowArchived:r,onOpenInFinder:i,onOpenInEditor:s,onToggleStar:o,onHide:a,children:l}){return c.jsxs(Np,{children:[c.jsx(Tp,{asChild:!0,children:l}),c.jsxs(Ef,{children:[c.jsxs(Er,{onSelect:u=>{u.stopPropagation(),o()},children:[t?c.jsx(Lde,{className:"h-3.5 w-3.5"}):c.jsx(O9,{className:"h-3.5 w-3.5"}),c.jsx("span",{className:"text-xs font-medium",children:t?"Unstar project":"Star project"})]}),c.jsxs(Er,{onSelect:u=>{u.stopPropagation(),n()},children:[c.jsx(cl,{className:"h-3.5 w-3.5"}),c.jsx("span",{className:"text-xs font-medium",children:"Copy Path"})]}),c.jsxs(Er,{onSelect:u=>{u.stopPropagation(),r()},children:[c.jsx(uI,{className:"h-3.5 w-3.5"}),c.jsx("span",{className:"text-xs font-medium",children:"Show Archived"})]}),c.jsxs(Er,{onSelect:u=>{u.stopPropagation(),i()},children:[c.jsx(Y1,{className:"h-3.5 w-3.5"}),c.jsx("span",{className:"text-xs font-medium",children:"Show in Finder"})]}),c.jsxs(Er,{onSelect:u=>{u.stopPropagation(),s()},children:[c.jsx(dI,{className:"h-3.5 w-3.5"}),c.jsxs("span",{className:"text-xs font-medium",children:["Open in ",e]})]}),c.jsxs(Er,{onSelect:u=>{u.stopPropagation(),a()},className:"text-destructive hover:bg-destructive/10 focus:bg-destructive/10",children:[c.jsx(Rce,{className:"h-3.5 w-3.5"}),c.jsx("span",{className:"text-xs font-medium",children:"Hide"})]})]})]})}function Ibe({canFork:e,onRename:t,onOpenInFinder:n,onFork:r,onArchive:i,onDelete:s,onEditPermissions:o,children:a}){return c.jsxs(Np,{children:[c.jsx(Tp,{asChild:!0,children:a}),c.jsxs(Ef,{children:[c.jsxs(Er,{onSelect:l=>{l.preventDefault(),t()},children:[c.jsx(wf,{className:"h-3.5 w-3.5"}),c.jsx("span",{className:"text-xs font-medium",children:"Rename"})]}),c.jsxs(Er,{onSelect:l=>{l.preventDefault(),n()},children:[c.jsx(Y1,{className:"h-3.5 w-3.5"}),c.jsx("span",{className:"text-xs font-medium",children:"Open in Finder"})]}),c.jsxs(Er,{disabled:!e,onSelect:l=>{l.preventDefault(),e&&r()},children:[c.jsx(j9,{className:"h-3.5 w-3.5"}),c.jsx("span",{className:"text-xs font-medium",children:"Fork"})]}),o?c.jsxs(Er,{onSelect:l=>{l.preventDefault(),o()},children:[c.jsx(vI,{className:"h-3.5 w-3.5"}),c.jsx("span",{className:"text-xs font-medium",children:"Permissions…"})]}):null,c.jsxs(Er,{onSelect:l=>{l.preventDefault(),i()},children:[c.jsx(uI,{className:"h-3.5 w-3.5"}),c.jsx("span",{className:"text-xs font-medium",children:"Archive"})]}),c.jsxs(Er,{onSelect:l=>{l.preventDefault(),s()},className:"text-destructive dark:text-red-400 hover:bg-destructive/10 focus:bg-destructive/10 dark:hover:bg-red-500/20 dark:focus:bg-red-500/20",children:[c.jsx(Pu,{className:"h-3.5 w-3.5"}),c.jsx("span",{className:"text-xs font-medium",children:"Delete"})]})]})]})}function Pbe({stackTitle:e,onRename:t,onEditMembers:n,onDelete:r,children:i}){const s=TR.useScopedStore(l=>l.open),o=TR.useScopedStore(l=>l.setOpen);function a(l){return()=>{o(!1),l()}}return c.jsxs(Tf,{open:s,onOpenChange:o,children:[c.jsx(Af,{asChild:!0,children:i}),c.jsxs($u,{align:"end",sideOffset:4,className:"w-44 p-1",role:"menu","aria-label":`Actions for ${e}`,children:[c.jsxs("button",{type:"button",role:"menuitem",onClick:a(t),className:"flex w-full items-center gap-2 rounded-sm px-2 py-1.5 text-left text-xs font-medium hover:bg-muted focus-visible:bg-muted outline-hidden",children:[c.jsx(wf,{className:"h-3.5 w-3.5"}),c.jsx("span",{children:"Rename"})]}),c.jsxs("button",{type:"button",role:"menuitem",onClick:a(n),className:"flex w-full items-center gap-2 rounded-sm px-2 py-1.5 text-left text-xs font-medium hover:bg-muted focus-visible:bg-muted outline-hidden",children:[c.jsx(P9,{className:"h-3.5 w-3.5"}),c.jsx("span",{children:"Edit members"})]}),c.jsxs("button",{type:"button",role:"menuitem",onClick:a(r),className:"flex w-full items-center gap-2 rounded-sm px-2 py-1.5 text-left text-xs font-medium text-destructive dark:text-red-400 hover:bg-destructive/10 focus-visible:bg-destructive/10 dark:hover:bg-red-500/20 dark:focus-visible:bg-red-500/20 outline-hidden",children:[c.jsx(Pu,{className:"h-3.5 w-3.5"}),c.jsxs("span",{children:["Delete ",e]})]})]})]})}function Lbe({stackTitle:e,onRename:t,onEditMembers:n,onDelete:r,children:i}){return c.jsx(TR.Provider,{init:{},children:c.jsx(Pbe,{stackTitle:e,onRename:t,onEditMembers:n,onDelete:r,children:i})})}function Dbe({stackTitle:e,onRename:t,onEditMembers:n,onDelete:r,children:i}){return c.jsxs(Np,{children:[c.jsx(Tp,{asChild:!0,children:i}),c.jsxs(Ef,{children:[c.jsxs(Er,{onSelect:s=>{s.preventDefault(),t()},children:[c.jsx(wf,{className:"h-3.5 w-3.5"}),c.jsx("span",{className:"text-xs font-medium",children:"Rename"})]}),c.jsxs(Er,{onSelect:s=>{s.preventDefault(),n()},children:[c.jsx(P9,{className:"h-3.5 w-3.5"}),c.jsx("span",{className:"text-xs font-medium",children:"Edit members"})]}),c.jsxs(Er,{onSelect:s=>{s.preventDefault(),r()},className:"text-destructive dark:text-red-400 hover:bg-destructive/10 focus:bg-destructive/10 dark:hover:bg-red-500/20 dark:focus:bg-red-500/20",children:[c.jsx(Pu,{className:"h-3.5 w-3.5"}),c.jsxs("span",{className:"text-xs font-medium",children:["Delete ",e]})]})]})]})}function $be(e){return e.status==="running"||e.status==="starting"?"warning":e.status==="waiting_for_user"?"info":e.status==="failed"?"destructive":e.unread?"success":null}function zbe(e){switch(e){case"warning":return"bg-warning";case"info":return"bg-info";case"success":return"bg-success";case"destructive":return"bg-destructive";default:return""}}function Fbe(e){switch(e){case"warning":return"text-warning";case"info":return"text-info";case"success":return"text-success";case"destructive":return"text-destructive";default:return"text-muted-foreground"}}function Bbe(e){switch(e){case"active":return{glyph:"●",tone:"text-success",title:"Claude PTY session active"};case"warming":return{glyph:"◐",tone:"text-warning",title:"Claude PTY session warming"};case"idle":return{glyph:"○",tone:"text-muted-foreground",title:"Claude PTY session idle"};case"cooling":return{glyph:"◌",tone:"text-muted-foreground",title:"Claude PTY session cooling down"};case"cold":default:return null}}function Ube({chat:e,activeChatId:t,nowMs:n,shortcutHint:r=null,showShortcutHint:i=!1,onSelectChat:s,onRenameChat:o,onOpenInFinder:a,onForkChat:l,onArchiveChat:u,onDeleteChat:f,onEditPermissions:p}){const m=(e.status==="running"||e.status==="waiting_for_user")&&e.stateEnteredAt!=null,g=m&&e.stateEnteredAt!=null?`${kR(e.status)} ${CR(n-e.stateEnteredAt)}`:ba(n-(e.lastMessageAt??e._creationTime)),b=i&&r?r:g,y=i&&!!r,x=Gfe(e.chatId),w=t===x,k=$be(e);let C;e.canFork?C="w-12":m?C="w-12 md:w-20":C="w-6 md:w-14";let E=null;b&&(y?E=c.jsx("span",{className:"hidden md:flex absolute inset-0 items-center justify-end pr-0.5 text-[11px] text-foreground transition-opacity duration-150 group-hover:opacity-0",children:c.jsx(hK,{className:"h-4 min-w-4 rounded-sm border-border/50 bg-transparent px-1 text-[10px]",children:r})}):E=c.jsx("span",{className:pe("hidden md:flex absolute inset-0 items-center justify-end pr-1 text-[11px] tabular-nums transition-opacity duration-150 group-hover:opacity-0 whitespace-nowrap",m?Fbe(k):"text-muted-foreground"),children:b}));const A=c.jsxs("div",{"data-chat-id":x,className:pe("group flex items-center gap-2 pl-2 pr-1 py-1.5 rounded-md cursor-pointer transition-colors duration-150",w?"bg-muted":"hover:bg-muted/40"),onClick:()=>s(e.chatId),children:[c.jsx("span",{className:"relative flex h-3.5 w-3.5 shrink-0 items-center justify-center","aria-hidden":!0,children:k?c.jsx("span",{className:pe("h-2 w-2 rounded-full",zbe(k))}):null}),(()=>{const N=Bbe(e.sessionState);return N?c.jsx(oc,{label:N.title,children:c.jsx("span",{className:pe("shrink-0 text-[10px] leading-none",N.tone),"aria-label":N.title,children:N.glyph})}):null})(),e.hasPolicyOverride?c.jsx(vI,{className:"size-3 shrink-0 text-warning","aria-label":"Per-chat permission override active"}):null,c.jsx("span",{className:pe("truncate flex-1 text-sm",w?"text-foreground font-medium":"text-foreground/90",e.status==="idle"&&!e.unread&&!w?"text-muted-foreground":""),children:e.title}),c.jsxs("div",{className:pe("relative h-6 shrink-0",C),children:[E,c.jsxs("div",{className:pe("absolute inset-0 flex items-center justify-end gap-0 transition-opacity duration-150",b?"opacity-100 md:opacity-0 md:group-hover:opacity-100":"opacity-100"),children:[e.canFork?c.jsx(je,{variant:"ghost",size:"icon",className:"h-6 w-6 cursor-pointer rounded-sm hover:!bg-transparent !border-0",onClick:N=>{N.stopPropagation(),l(e.chatId)},title:"Fork chat",children:c.jsx(j9,{className:"size-3.5"})}):null,c.jsx(je,{variant:"ghost",size:"icon",className:"h-6 w-6 cursor-pointer rounded-sm hover:!bg-transparent !border-0",onClick:N=>{N.stopPropagation(),u(e.chatId)},title:"Archive chat",children:c.jsx(uI,{className:"size-3.5"})})]})]})]},e._id);return c.jsx(Ibe,{canFork:e.canFork,onRename:()=>o(e.chatId),onOpenInFinder:()=>a(e.localPath),onFork:()=>l(e.chatId),onArchive:()=>u(e.chatId),onDelete:()=>f(e.chatId),onEditPermissions:p?()=>p(e.chatId):void 0,children:A})}const Hbe=_.memo(Ube);function Wbe(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return _.useMemo(()=>r=>{t.forEach(i=>i(r))},t)}const gk=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u";function Sv(e){const t=Object.prototype.toString.call(e);return t==="[object Window]"||t==="[object global]"}function iP(e){return"nodeType"in e}function Co(e){var t,n;return e?Sv(e)?e:iP(e)&&(t=(n=e.ownerDocument)==null?void 0:n.defaultView)!=null?t:window:window}function sP(e){const{Document:t}=Co(e);return e instanceof t}function y_(e){return Sv(e)?!1:e instanceof Co(e).HTMLElement}function _G(e){return e instanceof Co(e).SVGElement}function wv(e){return e?Sv(e)?e.document:iP(e)?sP(e)?e:y_(e)||_G(e)?e.ownerDocument:document:document:document}const ac=gk?_.useLayoutEffect:_.useEffect;function oP(e){const t=_.useRef(e);return ac(()=>{t.current=e}),_.useCallback(function(){for(var n=arguments.length,r=new Array(n),i=0;i<n;i++)r[i]=arguments[i];return t.current==null?void 0:t.current(...r)},[])}function Vbe(){const e=_.useRef(null),t=_.useCallback((r,i)=>{e.current=setInterval(r,i)},[]),n=_.useCallback(()=>{e.current!==null&&(clearInterval(e.current),e.current=null)},[]);return[t,n]}function ex(e,t){t===void 0&&(t=[e]);const n=_.useRef(e);return ac(()=>{n.current!==e&&(n.current=e)},t),n}function x_(e,t){const n=_.useRef();return _.useMemo(()=>{const r=e(n.current);return n.current=r,r},[...t])}function IC(e){const t=oP(e),n=_.useRef(null),r=_.useCallback(i=>{i!==n.current&&(t==null||t(i,n.current)),n.current=i},[]);return[n,r]}function AR(e){const t=_.useRef();return _.useEffect(()=>{t.current=e},[e]),t.current}let JT={};function __(e,t){return _.useMemo(()=>{if(t)return t;const n=JT[e]==null?0:JT[e]+1;return JT[e]=n,e+"-"+n},[e,t])}function SG(e){return function(t){for(var n=arguments.length,r=new Array(n>1?n-1:0),i=1;i<n;i++)r[i-1]=arguments[i];return r.reduce((s,o)=>{const a=Object.entries(o);for(const[l,u]of a){const f=s[l];f!=null&&(s[l]=f+e*u)}return s},{...t})}}const lg=SG(1),PC=SG(-1);function Kbe(e){return"clientX"in e&&"clientY"in e}function aP(e){if(!e)return!1;const{KeyboardEvent:t}=Co(e.target);return t&&e instanceof t}function Gbe(e){if(!e)return!1;const{TouchEvent:t}=Co(e.target);return t&&e instanceof t}function RR(e){if(Gbe(e)){if(e.touches&&e.touches.length){const{clientX:t,clientY:n}=e.touches[0];return{x:t,y:n}}else if(e.changedTouches&&e.changedTouches.length){const{clientX:t,clientY:n}=e.changedTouches[0];return{x:t,y:n}}}return Kbe(e)?{x:e.clientX,y:e.clientY}:null}const tx=Object.freeze({Translate:{toString(e){if(!e)return;const{x:t,y:n}=e;return"translate3d("+(t?Math.round(t):0)+"px, "+(n?Math.round(n):0)+"px, 0)"}},Scale:{toString(e){if(!e)return;const{scaleX:t,scaleY:n}=e;return"scaleX("+t+") scaleY("+n+")"}},Transform:{toString(e){if(e)return[tx.Translate.toString(e),tx.Scale.toString(e)].join(" ")}},Transition:{toString(e){let{property:t,duration:n,easing:r}=e;return t+" "+n+"ms "+r}}}),fF="a,frame,iframe,input:not([type=hidden]):not(:disabled),select:not(:disabled),textarea:not(:disabled),button:not(:disabled),*[tabindex]";function qbe(e){return e.matches(fF)?e:e.querySelector(fF)}const Ybe={display:"none"};function Xbe(e){let{id:t,value:n}=e;return Wn.createElement("div",{id:t,style:Ybe},n)}function Qbe(e){let{id:t,announcement:n,ariaLiveType:r="assertive"}=e;const i={position:"fixed",top:0,left:0,width:1,height:1,margin:-1,border:0,padding:0,overflow:"hidden",clip:"rect(0 0 0 0)",clipPath:"inset(100%)",whiteSpace:"nowrap"};return Wn.createElement("div",{id:t,style:i,role:"status","aria-live":r,"aria-atomic":!0},n)}function Jbe(){const[e,t]=_.useState("");return{announce:_.useCallback(r=>{r!=null&&t(r)},[]),announcement:e}}const wG=_.createContext(null);function Zbe(e){const t=_.useContext(wG);_.useEffect(()=>{if(!t)throw new Error("useDndMonitor must be used within a children of <DndContext>");return t(e)},[e,t])}function eye(){const[e]=_.useState(()=>new Set),t=_.useCallback(r=>(e.add(r),()=>e.delete(r)),[e]);return[_.useCallback(r=>{let{type:i,event:s}=r;e.forEach(o=>{var a;return(a=o[i])==null?void 0:a.call(o,s)})},[e]),t]}const tye={draggable:`
771
+ `)&&(w.writePathDeny=x),Object.keys(w).length===0?null:w}function g(){r(m())}function b(){r(null)}return c.jsxs(c.Fragment,{children:[c.jsx(Yo,{open:e,onOpenChange:y=>{y||i()},children:c.jsxs(So,{className:"max-w-2xl",children:[c.jsxs(Xo,{children:["Permissions — ",t]}),c.jsxs(Aa,{className:"space-y-5",children:[c.jsxs("div",{className:"space-y-2",children:[c.jsx("div",{className:"text-sm font-medium",children:"Default action"}),c.jsxs("div",{className:"text-xs text-muted-foreground",children:["Behaviour when a tool call has no explicit allow/deny rule. ",c.jsx("strong",{children:"auto-allow"})," bypasses prompts and runs untrusted shell commands without supervision — use a worktree."]}),c.jsx(Hs,{value:s,onValueChange:p,options:[{value:"ask",label:"Ask"},{value:"auto-allow",label:"Auto-allow (unsafe)"},{value:"auto-deny",label:"Auto-deny"}]})]}),c.jsxs("div",{className:"space-y-2",children:[c.jsx("div",{className:"text-sm font-medium",children:"Read-path deny list"}),c.jsx("div",{className:"text-xs text-muted-foreground",children:"One glob per line. The model cannot read paths matching any entry. Defaults shown below — edit to add or remove."}),c.jsx("textarea",{value:o,onChange:y=>f.getState().setReadDenyText(y.target.value),rows:8,className:"w-full rounded-md border border-border bg-background px-3 py-2 font-mono text-xs",spellCheck:!1})]}),c.jsxs("div",{className:"space-y-2",children:[c.jsx("div",{className:"text-sm font-medium",children:"Write-path deny list"}),c.jsx("div",{className:"text-xs text-muted-foreground",children:"One glob per line. The model cannot edit or write paths matching any entry."}),c.jsx("textarea",{value:a,onChange:y=>f.getState().setWriteDenyText(y.target.value),rows:8,className:"w-full rounded-md border border-border bg-background px-3 py-2 font-mono text-xs",spellCheck:!1})]})]}),c.jsxs(yu,{className:"justify-between",children:[c.jsx(je,{variant:"ghost",onClick:b,children:"Reset to defaults"}),c.jsxs("div",{className:"flex gap-2",children:[c.jsx(je,{variant:"ghost",onClick:i,children:"Cancel"}),c.jsx(je,{onClick:g,children:"Apply"})]})]})]})}),c.jsx(Yo,{open:l,onOpenChange:y=>{y||(f.getState().setConfirmUnsafeOpen(!1),f.getState().setPendingDefaultAction(null))},children:c.jsxs(So,{className:"max-w-md",children:[c.jsx(Xo,{children:"Enable auto-allow for this chat?"}),c.jsxs(Aa,{className:"space-y-3 text-sm",children:[c.jsx("p",{children:"Auto-allow disables tool-call prompts. The model can run shell commands, write files, and edit code without asking. Read/write deny lists still apply."}),c.jsx("p",{className:"text-warning",children:"Use a worktree for risky tasks."})]}),c.jsxs(yu,{className:"justify-end gap-2",children:[c.jsx(je,{variant:"ghost",onClick:()=>{f.getState().setConfirmUnsafeOpen(!1),f.getState().setPendingDefaultAction(null)},children:"Cancel"}),c.jsx(je,{variant:"destructive",onClick:()=>{const y=f.getState();u&&y.setDefaultAction(u),y.setConfirmUnsafeOpen(!1),y.setPendingDefaultAction(null)},children:"Enable auto-allow"})]})]})})]})}const hge={defaultAction:"ask",bash:{autoAllowVerbs:["ls","pwd","git status","git diff","git log"]},readPathDeny:["~/.ssh","~/.aws","~/.gcp","~/.config/gh","~/.claude","~/.kanna","~/Library/Keychains","/etc/shadow","/etc/sudoers","~/.gnupg","~/.gitconfig","**/.git/config","~/.npmrc","~/.netrc","~/.docker/config.json","**/.env","**/.env.*","**/credentials*","**/*.pem","**/*.key","**/id_rsa*","**/id_ed25519*"],writePathDeny:["/etc/**","/usr/**","/System/**","~/.ssh/**","~/.aws/**","~/.config/gh/**","~/.claude/**","~/.kanna/**","~/.gnupg/**","~/.gitconfig","**/.git/config"],toolDenyList:[{tool:"mcp__kanna__bash",pattern:"rm\\s+-rf\\s+(/|~|\\$HOME)(?:\\b|$|\\s)"},{tool:"mcp__kanna__bash",pattern:"git\\s+push\\b.*--force"}],toolAllowList:[]},wr={setTimeout(e,t){return window.setTimeout(e,t)},clearTimeout(e){window.clearTimeout(e)},setInterval(e,t){return window.setInterval(e,t)},clearInterval(e){window.clearInterval(e)},requestAnimationFrame(e){return window.requestAnimationFrame(e)},cancelAnimationFrame(e){window.cancelAnimationFrame(e)}},hn=_.forwardRef(({className:e,type:t,...n},r)=>c.jsx("input",{ref:r,type:t,className:pe("flex w-full rounded-lg border border-border bg-background px-3 py-2 text-sm text-foreground outline-none placeholder:text-muted-foreground focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:cursor-not-allowed disabled:opacity-50",e),...n}));hn.displayName="Input";const mK=_.createContext(null);function pge({children:e,ports:t={}}){const n=t.timer??wr,[r,i]=_.useState(null),[s,o]=_.useState(""),a=_.useRef(null);_.useEffect(()=>{(r==null?void 0:r.kind)==="prompt"&&(o(r.options.initialValue??""),n.setTimeout(()=>{var x,w;(x=a.current)==null||x.focus(),(w=a.current)==null||w.select()},0))},[r,n]);const l=_.useCallback(()=>{i(null),o("")},[]),u=_.useCallback(()=>{r&&(r.kind==="confirm"?r.resolve(!1):r.kind==="prompt"?r.resolve(null):r.resolve(),l())},[l,r]),f=_.useCallback(()=>{r&&(r.kind==="confirm"?r.resolve(!0):r.kind==="prompt"?r.resolve(s.trim()||null):r.resolve(),l())},[l,r,s]),p=_.useCallback(x=>new Promise(w=>{i({kind:"confirm",options:x,resolve:w})}),[]),m=_.useCallback(x=>new Promise(w=>{i({kind:"prompt",options:x,resolve:w})}),[]),g=_.useCallback(x=>new Promise(w=>{i({kind:"alert",options:x,resolve:w})}),[]),b=_.useMemo(()=>({confirm:p,prompt:m,alert:g}),[g,p,m]);let y="Confirm";return r&&(r.kind==="alert"?y=r.options.closeLabel??"OK":"confirmLabel"in r.options&&(y=r.options.confirmLabel??"Confirm")),c.jsxs(mK.Provider,{value:b,children:[e,c.jsx(Yo,{open:r!==null,onOpenChange:x=>{x||!r||u()},children:c.jsx(So,{size:"sm",onKeyDown:x=>{x.key!=="Enter"||x.shiftKey||!r||r.kind!=="confirm"||(x.preventDefault(),f())},children:r?c.jsxs(c.Fragment,{children:[c.jsxs(Aa,{className:"space-y-4",children:[c.jsx(Xo,{children:r.options.title}),r.options.description?c.jsx(yv,{children:r.options.description}):null,r.kind==="prompt"?c.jsx(hn,{ref:a,type:"text",value:s,onChange:x=>o(x.target.value),onKeyDown:x=>{x.key==="Enter"&&(x.preventDefault(),f())},placeholder:r.options.placeholder}):null]}),c.jsxs(yu,{children:[c.jsx(je,{variant:"ghost",size:"sm",onClick:u,className:r.kind==="alert"?"hidden":void 0,children:"cancelLabel"in r.options?r.options.cancelLabel??"Cancel":"Cancel"}),c.jsx(je,{variant:r.kind==="confirm"?r.options.confirmVariant??"default":"secondary",size:"sm",onClick:f,disabled:r.kind==="prompt"&&!s.trim(),children:y})]})]}):null})})]})}function p_(){const e=_.useContext(mK);if(!e)throw new Error("useAppDialog must be used within AppDialogProvider");return e}const BI=_.forwardRef(({className:e,...t},n)=>c.jsx("div",{ref:n,className:pe("bg-card text-card-foreground",e),...t}));BI.displayName="Card";const UI=_.forwardRef(({className:e,...t},n)=>c.jsx("div",{ref:n,className:pe("flex flex-col space-y-1.5 p-2",e),...t}));UI.displayName="CardHeader";const gK=_.forwardRef(({className:e,...t},n)=>c.jsx("h3",{ref:n,className:pe("text-2xl font-semibold leading-none tracking-tight",e),...t}));gK.displayName="CardTitle";const vK=_.forwardRef(({className:e,...t},n)=>c.jsx("p",{ref:n,className:pe("text-sm text-muted-foreground",e),...t}));vK.displayName="CardDescription";const HI=_.forwardRef(({className:e,...t},n)=>c.jsx("div",{ref:n,className:pe("p-6 pt-0",e),...t}));HI.displayName="CardContent";const mge=_.forwardRef(({className:e,...t},n)=>c.jsx("div",{ref:n,className:pe("flex items-center p-6 pt-0",e),...t}));mge.displayName="CardFooter";const gge={info:{dotVar:"var(--info)",bgClass:"bg-info/[0.06]"},warning:{dotVar:"var(--warning)",bgClass:"bg-warning/[0.06]"},success:{dotVar:"var(--success)",bgClass:"bg-success/[0.06]"},error:{dotVar:"var(--destructive)",bgClass:"bg-destructive/[0.06]"}};function vge({variant:e,children:t,dot:n=!0,className:r}){const i=gge[e];return c.jsxs("div",{role:"status",className:pe("flex flex-wrap items-center justify-center gap-x-2 gap-y-1 border-b border-border px-4 py-2 text-xs leading-tight",i.bgClass,r),children:[n?c.jsx("span",{"aria-hidden":"true",className:"inline-block size-1.5 shrink-0 rounded-full",style:{backgroundColor:i.dotVar}}):null,t]})}const bge="modulepreload",yge=function(e){return"/"+e},oF={},Z=function(t,n,r){let i=Promise.resolve();if(n&&n.length>0){let o=function(u){return Promise.all(u.map(f=>Promise.resolve(f).then(p=>({status:"fulfilled",value:p}),p=>({status:"rejected",reason:p}))))};document.getElementsByTagName("link");const a=document.querySelector("meta[property=csp-nonce]"),l=(a==null?void 0:a.nonce)||(a==null?void 0:a.getAttribute("nonce"));i=o(n.map(u=>{if(u=yge(u),u in oF)return;oF[u]=!0;const f=u.endsWith(".css"),p=f?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${u}"]${p}`))return;const m=document.createElement("link");if(m.rel=f?"stylesheet":bge,f||(m.as="script"),m.crossOrigin="",m.href=u,l&&m.setAttribute("nonce",l),document.head.appendChild(m),f)return new Promise((g,b)=>{m.addEventListener("load",g),m.addEventListener("error",()=>b(new Error(`Unable to preload CSS for ${u}`)))})}))}function s(o){const a=new Event("vite:preloadError",{cancelable:!0});if(a.payload=o,window.dispatchEvent(a),!a.defaultPrevented)throw o}return i.then(o=>{for(const a of o||[])a.status==="rejected"&&s(a.reason);return t().catch(s)})},xge=_.lazy(()=>Z(()=>import("./index-BTDhLUJP.js"),[]).then(e=>({default:e.Toaster})));function _ge(){return c.jsx(_.Suspense,{fallback:null,children:c.jsx(xge,{position:"bottom-right",theme:"system",closeButton:!0,duration:6e3})})}const Sge="1.6.0",wge={version:Sge},Yr="Kanna",aF="kanna",Cge=".kanna",kge=".kanna-dev",Ege="KANNA_RUNTIME_PROFILE",WI=`kanna/${wge.version}`,Nge="[kanna]",Tge=`~/${Yr}`;function fk(){const e=Reflect.get(globalThis,"process");return e==null?void 0:e.env}function Age(e=fk()){var t;return((t=e==null?void 0:e[Ege])==null?void 0:t.trim().toLowerCase())==="dev"?"dev":"prod"}function Rge(e=fk()){return Age(e)==="dev"?kge:Cge}function Mge(e=fk()){return`~/${Rge(e)}`}function jge(e=fk()){return`${Mge(e)}/keybindings.json`}function yS(e){return e?`${aF} ${e}`:aF}const bK="always",yK="funk",Oge=[{value:"blow",label:"Blow"},{value:"bottle",label:"Bottle"},{value:"frog",label:"Frog"},{value:"funk",label:"Funk"},{value:"glass",label:"Glass"},{value:"ping",label:"Ping"},{value:"pop",label:"Pop"},{value:"purr",label:"Purr"},{value:"tink",label:"Tink"}];function Ige(e){switch(e){case"never":case"unfocused":case"always":return e;default:return bK}}function Pge(e){switch(e){case"blow":case"bottle":case"frog":case"funk":case"glass":case"ping":case"pop":case"purr":case"tink":return e;default:return yK}}const Nh=tr()(e=>({chatSoundPreference:bK,chatSoundId:yK,setChatSoundPreference:t=>e({chatSoundPreference:Ige(t)}),setChatSoundId:t=>e({chatSoundId:Pge(t)})})),Lge={blow:"/chat-sounds/Blow.mp3",bottle:"/chat-sounds/Bottle.mp3",frog:"/chat-sounds/Frog.mp3",funk:"/chat-sounds/Funk.mp3",glass:"/chat-sounds/Glass.mp3",ping:"/chat-sounds/Ping.mp3",pop:"/chat-sounds/Pop.mp3",purr:"/chat-sounds/Purr.mp3",tink:"/chat-sounds/Tink.mp3"};function Dge(e=Et){return e.getVisibilityState()!=="visible"||!e.hasFocus()}function $ge(e){const t=new Audio(Lge[e]);return t.preload="auto",t.play()}async function SR(e,t,n=wr){if(t<=0)return;const r=Array.from({length:t},(i,s)=>new Promise(o=>{n.setTimeout(()=>{$ge(e).catch(()=>{}).finally(()=>o())},s*90)}));await Promise.all(r)}function zge(e,t=Et){return e==="never"?!1:e==="always"?!0:Dge(t)}function Fge(e){return e.projectGroups.reduce((t,n)=>t+n.chats.reduce((r,i)=>r+(i.unread?1:0)+(i.status==="waiting_for_user"?1:0),0),0)}function lF(e){let t=0;const n=new Set;for(const r of e.projectGroups)for(const i of r.chats)i.unread&&(t+=1),i.status==="waiting_for_user"&&n.add(i.chatId);return{unreadCount:t,waitingChatIds:n}}function Bge(e,t){if(!e)return 0;const n=lF(e),r=lF(t),i=Math.max(0,r.unreadCount-n.unreadCount);let s=0;for(const o of r.waitingChatIds)n.waitingChatIds.has(o)||(s+=1);return i+s}function xh({tooltip:e,children:t,className:n,inline:r=!1,side:i}){const s=pe("truncate",n);return c.jsx(h_,{children:c.jsxs(ks,{children:[c.jsx(Es,{asChild:!0,children:r?c.jsx("span",{className:s,children:t}):c.jsx("div",{className:s,children:t})}),c.jsx(ms,{side:i,children:e})]})})}function oc({label:e,children:t,side:n}){return c.jsx(h_,{children:c.jsxs(ks,{children:[c.jsx(Es,{asChild:!0,children:t}),c.jsx(ms,{side:n,children:e})]})})}function wR(e){return e.split(/[\s_-]+/).filter(Boolean).map(t=>t.charAt(0).toUpperCase()+t.slice(1).toLowerCase()).join(" ")}const Uge=[/^(?:\/usr\/bin\/env\s+)?(?:\/bin\/)?(?:bash|zsh|sh)\s+(?:-[a-zA-Z]*c|-c)\s+(['"])([\s\S]*)\1$/,/^(?:\/usr\/bin\/env\s+)?(?:\/bin\/)?(?:bash|zsh|sh)\s+(?:-[a-zA-Z]*c|-c)\s+(.+)$/,/^(?:\/usr\/bin\/env\s+)?(?:cmd(?:\.exe)?)\s+\/c\s+(['"])([\s\S]*)\1$/i,/^(?:\/usr\/bin\/env\s+)?(?:cmd(?:\.exe)?)\s+\/c\s+(.+)$/i,/^(?:\/usr\/bin\/env\s+)?(?:powershell(?:\.exe)?|pwsh)\s+(?:-NoProfile\s+)?-Command\s+(['"])([\s\S]*)\1$/i,/^(?:\/usr\/bin\/env\s+)?(?:powershell(?:\.exe)?|pwsh)\s+(?:-NoProfile\s+)?-Command\s+(.+)$/i];function xK(e){const t=e.trim();for(const n of Uge){const r=t.match(n);if(!r)continue;const i=(r[2]??r[1]??"").trim();if(i)return i}return t}function VI(e){return e.split("/").pop()||e}const Hge=1440*6e4;function Wge(e,t){if(e===void 0)return null;const n=Math.max(0,t-e),r=6e4,i=60*r,s=Hge,o=7*s;return n<r?"now":n<i?`${Math.floor(n/r)}m`:n<s?`${Math.floor(n/i)}h`:n<o?`${Math.floor(n/s)}d`:`${Math.floor(n/o)}w`}function Vge(e){return e.lastMessageAt??e._creationTime}const KI=1e3,Pw=60*KI,qm=60*Pw,XT=24*qm;function ba(e){const t=Math.max(0,e);if(t<Pw)return`${Math.floor(t/KI)}s`;if(t<qm)return`${Math.floor(t/Pw)}m`;if(t<XT){const i=Math.floor(t/qm),s=Math.floor(t%qm/Pw);return s===0?`${i}h`:`${i}h ${s}m`}const n=Math.floor(t/XT),r=Math.floor(t%XT/qm);return r===0?`${n}d`:`${n}d ${r}h`}function CR(e){const t=Math.max(0,e);if(t>=qm)return ba(t);const n=Math.floor(t/KI),r=Math.floor(n/60),i=n%60;return`${r}:${i.toString().padStart(2,"0")}`}function kR(e){switch(e){case"idle":return"Idle";case"starting":return"Starting";case"running":return"Running";case"waiting_for_user":return"Waiting";case"failed":return"Failed"}}function cF(e){switch(e){case"running":return"active";case"waiting_for_user":return"attention";case"failed":return"destructive";case"idle":case"starting":default:return"muted"}}function uF(e){switch(e){case"active":return"text-emerald-500 dark:text-emerald-400";case"attention":return"text-amber-500 dark:text-amber-400";case"destructive":return"text-destructive";case"muted":default:return"text-muted-foreground"}}function GI(e){const t=e+"CollectionProvider",[n,r]=Lu(t),[i,s]=n(t,{collectionRef:{current:null},itemMap:new Map}),o=y=>{const{scope:x,children:w}=y,k=Wn.useRef(null),C=Wn.useRef(new Map).current;return c.jsx(i,{scope:x,itemMap:C,collectionRef:k,children:w})};o.displayName=t;const a=e+"CollectionSlot",l=tp(a),u=Wn.forwardRef((y,x)=>{const{scope:w,children:k}=y,C=s(a,w),E=Qn(x,C.collectionRef);return c.jsx(l,{ref:E,children:k})});u.displayName=a;const f=e+"CollectionItemSlot",p="data-radix-collection-item",m=tp(f),g=Wn.forwardRef((y,x)=>{const{scope:w,children:k,...C}=y,E=Wn.useRef(null),A=Qn(x,E),N=s(f,w);return Wn.useEffect(()=>(N.itemMap.set(E,{ref:E,...C}),()=>void N.itemMap.delete(E))),c.jsx(m,{[p]:"",ref:A,children:k})});g.displayName=f;function b(y){const x=s(e+"CollectionConsumer",y);return Wn.useCallback(()=>{const k=x.collectionRef.current;if(!k)return[];const C=Array.from(k.querySelectorAll(`[${p}]`));return Array.from(x.itemMap.values()).sort((N,M)=>C.indexOf(N.ref.current)-C.indexOf(M.ref.current))},[x.collectionRef,x.itemMap])}return[{Provider:o,Slot:u,ItemSlot:g},b,r]}var Kge=_.createContext(void 0);function qI(e){const t=_.useContext(Kge);return e||t||"ltr"}var QT="rovingFocusGroup.onEntryFocus",Gge={bubbles:!1,cancelable:!0},m_="RovingFocusGroup",[ER,_K,qge]=GI(m_),[Yge,SK]=Lu(m_,[qge]),[Xge,Qge]=Yge(m_),wK=_.forwardRef((e,t)=>c.jsx(ER.Provider,{scope:e.__scopeRovingFocusGroup,children:c.jsx(ER.Slot,{scope:e.__scopeRovingFocusGroup,children:c.jsx(Jge,{...e,ref:t})})}));wK.displayName=m_;var Jge=_.forwardRef((e,t)=>{const{__scopeRovingFocusGroup:n,orientation:r,loop:i=!1,dir:s,currentTabStopId:o,defaultCurrentTabStopId:a,onCurrentTabStopIdChange:l,onEntryFocus:u,preventScrollOnEntryFocus:f=!1,...p}=e,m=_.useRef(null),g=Qn(t,m),b=qI(s),[y,x]=Fg({prop:o,defaultProp:a??null,onChange:l,caller:m_}),[w,k]=_.useState(!1),C=ul(u),E=_K(n),A=_.useRef(!1),[N,M]=_.useState(0);return _.useEffect(()=>{const j=m.current;if(j)return j.addEventListener(QT,C),()=>j.removeEventListener(QT,C)},[C]),c.jsx(Xge,{scope:n,orientation:r,dir:b,loop:i,currentTabStopId:y,onItemFocus:_.useCallback(j=>x(j),[x]),onItemShiftTab:_.useCallback(()=>k(!0),[]),onFocusableItemAdd:_.useCallback(()=>M(j=>j+1),[]),onFocusableItemRemove:_.useCallback(()=>M(j=>j-1),[]),children:c.jsx(Tn.div,{tabIndex:w||N===0?-1:0,"data-orientation":r,...p,ref:g,style:{outline:"none",...e.style},onMouseDown:it(e.onMouseDown,()=>{A.current=!0}),onFocus:it(e.onFocus,j=>{const I=!A.current;if(j.target===j.currentTarget&&I&&!w){const z=new CustomEvent(QT,Gge);if(j.currentTarget.dispatchEvent(z),!z.defaultPrevented){const F=E().filter(B=>B.focusable),O=F.find(B=>B.active),P=F.find(B=>B.id===y),U=[O,P,...F].filter(Boolean).map(B=>B.ref.current);EK(U,f)}}A.current=!1}),onBlur:it(e.onBlur,()=>k(!1))})})}),CK="RovingFocusGroupItem",kK=_.forwardRef((e,t)=>{const{__scopeRovingFocusGroup:n,focusable:r=!0,active:i=!1,tabStopId:s,children:o,...a}=e,l=pu(),u=s||l,f=Qge(CK,n),p=f.currentTabStopId===u,m=_K(n),{onFocusableItemAdd:g,onFocusableItemRemove:b,currentTabStopId:y}=f;return _.useEffect(()=>{if(r)return g(),()=>b()},[r,g,b]),c.jsx(ER.ItemSlot,{scope:n,id:u,focusable:r,active:i,children:c.jsx(Tn.span,{tabIndex:p?0:-1,"data-orientation":f.orientation,...a,ref:t,onMouseDown:it(e.onMouseDown,x=>{r?f.onItemFocus(u):x.preventDefault()}),onFocus:it(e.onFocus,()=>f.onItemFocus(u)),onKeyDown:it(e.onKeyDown,x=>{if(x.key==="Tab"&&x.shiftKey){f.onItemShiftTab();return}if(x.target!==x.currentTarget)return;const w=tve(x,f.orientation,f.dir);if(w!==void 0){if(x.metaKey||x.ctrlKey||x.altKey||x.shiftKey)return;x.preventDefault();let C=m().filter(E=>E.focusable).map(E=>E.ref.current);if(w==="last")C.reverse();else if(w==="prev"||w==="next"){w==="prev"&&C.reverse();const E=C.indexOf(x.currentTarget);C=f.loop?nve(C,E+1):C.slice(E+1)}setTimeout(()=>EK(C))}}),children:typeof o=="function"?o({isCurrentTabStop:p,hasTabStop:y!=null}):o})})});kK.displayName=CK;var Zge={ArrowLeft:"prev",ArrowUp:"prev",ArrowRight:"next",ArrowDown:"next",PageUp:"first",Home:"first",PageDown:"last",End:"last"};function eve(e,t){return t!=="rtl"?e:e==="ArrowLeft"?"ArrowRight":e==="ArrowRight"?"ArrowLeft":e}function tve(e,t,n){const r=eve(e.key,n);if(!(t==="vertical"&&["ArrowLeft","ArrowRight"].includes(r))&&!(t==="horizontal"&&["ArrowUp","ArrowDown"].includes(r)))return Zge[r]}function EK(e,t=!1){const n=document.activeElement;for(const r of e)if(r===n||(r.focus({preventScroll:t}),document.activeElement!==n))return}function nve(e,t){return e.map((n,r)=>e[(t+r)%e.length])}var rve=wK,ive=kK,NR=["Enter"," "],sve=["ArrowDown","PageUp","Home"],NK=["ArrowUp","PageDown","End"],ove=[...sve,...NK],ave={ltr:[...NR,"ArrowRight"],rtl:[...NR,"ArrowLeft"]},lve={ltr:["ArrowLeft"],rtl:["ArrowRight"]},g_="Menu",[Jy,cve,uve]=GI(g_),[kp,TK]=Lu(g_,[uve,kf,SK]),hk=kf(),AK=SK(),[dve,Ep]=kp(g_),[fve,v_]=kp(g_),RK=e=>{const{__scopeMenu:t,open:n=!1,children:r,dir:i,onOpenChange:s,modal:o=!0}=e,a=hk(t),[l,u]=_.useState(null),f=_.useRef(!1),p=ul(s),m=qI(i);return _.useEffect(()=>{const g=()=>{f.current=!0,document.addEventListener("pointerdown",b,{capture:!0,once:!0}),document.addEventListener("pointermove",b,{capture:!0,once:!0})},b=()=>f.current=!1;return document.addEventListener("keydown",g,{capture:!0}),()=>{document.removeEventListener("keydown",g,{capture:!0}),document.removeEventListener("pointerdown",b,{capture:!0}),document.removeEventListener("pointermove",b,{capture:!0})}},[]),c.jsx(ak,{...a,children:c.jsx(dve,{scope:t,open:n,onOpenChange:p,content:l,onContentChange:u,children:c.jsx(fve,{scope:t,onClose:_.useCallback(()=>p(!1),[p]),isUsingKeyboardRef:f,dir:m,modal:o,children:r})})})};RK.displayName=g_;var hve="MenuAnchor",YI=_.forwardRef((e,t)=>{const{__scopeMenu:n,...r}=e,i=hk(n);return c.jsx(d_,{...i,...r,ref:t})});YI.displayName=hve;var XI="MenuPortal",[pve,MK]=kp(XI,{forceMount:void 0}),jK=e=>{const{__scopeMenu:t,forceMount:n,children:r,container:i}=e,s=Ep(XI,t);return c.jsx(pve,{scope:t,forceMount:n,children:c.jsx(La,{present:n||s.open,children:c.jsx(bv,{asChild:!0,container:i,children:r})})})};jK.displayName=XI;var ka="MenuContent",[mve,QI]=kp(ka),OK=_.forwardRef((e,t)=>{const n=MK(ka,e.__scopeMenu),{forceMount:r=n.forceMount,...i}=e,s=Ep(ka,e.__scopeMenu),o=v_(ka,e.__scopeMenu);return c.jsx(Jy.Provider,{scope:e.__scopeMenu,children:c.jsx(La,{present:r||s.open,children:c.jsx(Jy.Slot,{scope:e.__scopeMenu,children:o.modal?c.jsx(gve,{...i,ref:t}):c.jsx(vve,{...i,ref:t})})})})}),gve=_.forwardRef((e,t)=>{const n=Ep(ka,e.__scopeMenu),r=_.useRef(null),i=Qn(t,r);return _.useEffect(()=>{const s=r.current;if(s)return ek(s)},[]),c.jsx(JI,{...e,ref:i,trapFocus:n.open,disableOutsidePointerEvents:n.open,disableOutsideScroll:!0,onFocusOutside:it(e.onFocusOutside,s=>s.preventDefault(),{checkForDefaultPrevented:!1}),onDismiss:()=>n.onOpenChange(!1)})}),vve=_.forwardRef((e,t)=>{const n=Ep(ka,e.__scopeMenu);return c.jsx(JI,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,disableOutsideScroll:!1,onDismiss:()=>n.onOpenChange(!1)})}),bve=tp("MenuContent.ScrollLock"),JI=_.forwardRef((e,t)=>{const{__scopeMenu:n,loop:r=!1,trapFocus:i,onOpenAutoFocus:s,onCloseAutoFocus:o,disableOutsidePointerEvents:a,onEntryFocus:l,onEscapeKeyDown:u,onPointerDownOutside:f,onFocusOutside:p,onInteractOutside:m,onDismiss:g,disableOutsideScroll:b,...y}=e,x=Ep(ka,n),w=v_(ka,n),k=hk(n),C=AK(n),E=cve(n),[A,N]=_.useState(null),M=_.useRef(null),j=Qn(t,M,x.onContentChange),I=_.useRef(0),z=_.useRef(""),F=_.useRef(0),O=_.useRef(null),P=_.useRef("right"),W=_.useRef(0),U=b?c_:_.Fragment,B=b?{as:bve,allowPinchZoom:!0}:void 0,K=Y=>{var ce,ge;const G=z.current+Y,D=E().filter(ne=>!ne.disabled),Q=document.activeElement,ae=(ce=D.find(ne=>ne.ref.current===Q))==null?void 0:ce.textValue,re=D.map(ne=>ne.textValue),he=Rve(re,G,ae),ue=(ge=D.find(ne=>ne.textValue===he))==null?void 0:ge.ref.current;(function ne(le){z.current=le,window.clearTimeout(I.current),le!==""&&(I.current=window.setTimeout(()=>ne(""),1e3))})(G),ue&&setTimeout(()=>ue.focus())};_.useEffect(()=>()=>window.clearTimeout(I.current),[]),J1();const V=_.useCallback(Y=>{var D,Q;return P.current===((D=O.current)==null?void 0:D.side)&&jve(Y,(Q=O.current)==null?void 0:Q.area)},[]);return c.jsx(mve,{scope:n,searchRef:z,onItemEnter:_.useCallback(Y=>{V(Y)&&Y.preventDefault()},[V]),onItemLeave:_.useCallback(Y=>{var G;V(Y)||((G=M.current)==null||G.focus(),N(null))},[V]),onTriggerLeave:_.useCallback(Y=>{V(Y)&&Y.preventDefault()},[V]),pointerGraceTimerRef:F,onPointerGraceIntentChange:_.useCallback(Y=>{O.current=Y},[]),children:c.jsx(U,{...B,children:c.jsx(l_,{asChild:!0,trapped:i,onMountAutoFocus:it(s,Y=>{var G;Y.preventDefault(),(G=M.current)==null||G.focus({preventScroll:!0})}),onUnmountAutoFocus:o,children:c.jsx(vv,{asChild:!0,disableOutsidePointerEvents:a,onEscapeKeyDown:u,onPointerDownOutside:f,onFocusOutside:p,onInteractOutside:m,onDismiss:g,children:c.jsx(rve,{asChild:!0,...C,dir:w.dir,orientation:"vertical",loop:r,currentTabStopId:A,onCurrentTabStopIdChange:N,onEntryFocus:it(l,Y=>{w.isUsingKeyboardRef.current||Y.preventDefault()}),preventScrollOnEntryFocus:!0,children:c.jsx(lk,{role:"menu","aria-orientation":"vertical","data-state":YK(x.open),"data-radix-menu-content":"",dir:w.dir,...k,...y,ref:j,style:{outline:"none",...y.style},onKeyDown:it(y.onKeyDown,Y=>{const D=Y.target.closest("[data-radix-menu-content]")===Y.currentTarget,Q=Y.ctrlKey||Y.altKey||Y.metaKey,ae=Y.key.length===1;D&&(Y.key==="Tab"&&Y.preventDefault(),!Q&&ae&&K(Y.key));const re=M.current;if(Y.target!==re||!ove.includes(Y.key))return;Y.preventDefault();const ue=E().filter(ce=>!ce.disabled).map(ce=>ce.ref.current);NK.includes(Y.key)&&ue.reverse(),Tve(ue)}),onBlur:it(e.onBlur,Y=>{Y.currentTarget.contains(Y.target)||(window.clearTimeout(I.current),z.current="")}),onPointerMove:it(e.onPointerMove,Zy(Y=>{const G=Y.target,D=W.current!==Y.clientX;if(Y.currentTarget.contains(G)&&D){const Q=Y.clientX>W.current?"right":"left";P.current=Q,W.current=Y.clientX}}))})})})})})})});OK.displayName=ka;var yve="MenuGroup",ZI=_.forwardRef((e,t)=>{const{__scopeMenu:n,...r}=e;return c.jsx(Tn.div,{role:"group",...r,ref:t})});ZI.displayName=yve;var xve="MenuLabel",IK=_.forwardRef((e,t)=>{const{__scopeMenu:n,...r}=e;return c.jsx(Tn.div,{...r,ref:t})});IK.displayName=xve;var jC="MenuItem",dF="menu.itemSelect",pk=_.forwardRef((e,t)=>{const{disabled:n=!1,onSelect:r,...i}=e,s=_.useRef(null),o=v_(jC,e.__scopeMenu),a=QI(jC,e.__scopeMenu),l=Qn(t,s),u=_.useRef(!1),f=()=>{const p=s.current;if(!n&&p){const m=new CustomEvent(dF,{bubbles:!0,cancelable:!0});p.addEventListener(dF,g=>r==null?void 0:r(g),{once:!0}),Z9(p,m),m.defaultPrevented?u.current=!1:o.onClose()}};return c.jsx(PK,{...i,ref:l,disabled:n,onClick:it(e.onClick,f),onPointerDown:p=>{var m;(m=e.onPointerDown)==null||m.call(e,p),u.current=!0},onPointerUp:it(e.onPointerUp,p=>{var m;u.current||(m=p.currentTarget)==null||m.click()}),onKeyDown:it(e.onKeyDown,p=>{const m=a.searchRef.current!=="";n||m&&p.key===" "||NR.includes(p.key)&&(p.currentTarget.click(),p.preventDefault())})})});pk.displayName=jC;var PK=_.forwardRef((e,t)=>{const{__scopeMenu:n,disabled:r=!1,textValue:i,...s}=e,o=QI(jC,n),a=AK(n),l=_.useRef(null),u=Qn(t,l),[f,p]=_.useState(!1),[m,g]=_.useState("");return _.useEffect(()=>{const b=l.current;b&&g((b.textContent??"").trim())},[s.children]),c.jsx(Jy.ItemSlot,{scope:n,disabled:r,textValue:i??m,children:c.jsx(ive,{asChild:!0,...a,focusable:!r,children:c.jsx(Tn.div,{role:"menuitem","data-highlighted":f?"":void 0,"aria-disabled":r||void 0,"data-disabled":r?"":void 0,...s,ref:u,onPointerMove:it(e.onPointerMove,Zy(b=>{r?o.onItemLeave(b):(o.onItemEnter(b),b.defaultPrevented||b.currentTarget.focus({preventScroll:!0}))})),onPointerLeave:it(e.onPointerLeave,Zy(b=>o.onItemLeave(b))),onFocus:it(e.onFocus,()=>p(!0)),onBlur:it(e.onBlur,()=>p(!1))})})})}),_ve="MenuCheckboxItem",LK=_.forwardRef((e,t)=>{const{checked:n=!1,onCheckedChange:r,...i}=e;return c.jsx(BK,{scope:e.__scopeMenu,checked:n,children:c.jsx(pk,{role:"menuitemcheckbox","aria-checked":OC(n)?"mixed":n,...i,ref:t,"data-state":tP(n),onSelect:it(i.onSelect,()=>r==null?void 0:r(OC(n)?!0:!n),{checkForDefaultPrevented:!1})})})});LK.displayName=_ve;var DK="MenuRadioGroup",[Sve,wve]=kp(DK,{value:void 0,onValueChange:()=>{}}),$K=_.forwardRef((e,t)=>{const{value:n,onValueChange:r,...i}=e,s=ul(r);return c.jsx(Sve,{scope:e.__scopeMenu,value:n,onValueChange:s,children:c.jsx(ZI,{...i,ref:t})})});$K.displayName=DK;var zK="MenuRadioItem",FK=_.forwardRef((e,t)=>{const{value:n,...r}=e,i=wve(zK,e.__scopeMenu),s=n===i.value;return c.jsx(BK,{scope:e.__scopeMenu,checked:s,children:c.jsx(pk,{role:"menuitemradio","aria-checked":s,...r,ref:t,"data-state":tP(s),onSelect:it(r.onSelect,()=>{var o;return(o=i.onValueChange)==null?void 0:o.call(i,n)},{checkForDefaultPrevented:!1})})})});FK.displayName=zK;var eP="MenuItemIndicator",[BK,Cve]=kp(eP,{checked:!1}),UK=_.forwardRef((e,t)=>{const{__scopeMenu:n,forceMount:r,...i}=e,s=Cve(eP,n);return c.jsx(La,{present:r||OC(s.checked)||s.checked===!0,children:c.jsx(Tn.span,{...i,ref:t,"data-state":tP(s.checked)})})});UK.displayName=eP;var kve="MenuSeparator",HK=_.forwardRef((e,t)=>{const{__scopeMenu:n,...r}=e;return c.jsx(Tn.div,{role:"separator","aria-orientation":"horizontal",...r,ref:t})});HK.displayName=kve;var Eve="MenuArrow",WK=_.forwardRef((e,t)=>{const{__scopeMenu:n,...r}=e,i=hk(n);return c.jsx(ck,{...i,...r,ref:t})});WK.displayName=Eve;var Nve="MenuSub",[o9e,VK]=kp(Nve),Zb="MenuSubTrigger",KK=_.forwardRef((e,t)=>{const n=Ep(Zb,e.__scopeMenu),r=v_(Zb,e.__scopeMenu),i=VK(Zb,e.__scopeMenu),s=QI(Zb,e.__scopeMenu),o=_.useRef(null),{pointerGraceTimerRef:a,onPointerGraceIntentChange:l}=s,u={__scopeMenu:e.__scopeMenu},f=_.useCallback(()=>{o.current&&window.clearTimeout(o.current),o.current=null},[]);return _.useEffect(()=>f,[f]),_.useEffect(()=>{const p=a.current;return()=>{window.clearTimeout(p),l(null)}},[a,l]),c.jsx(YI,{asChild:!0,...u,children:c.jsx(PK,{id:i.triggerId,"aria-haspopup":"menu","aria-expanded":n.open,"aria-controls":i.contentId,"data-state":YK(n.open),...e,ref:wI(t,i.onTriggerChange),onClick:p=>{var m;(m=e.onClick)==null||m.call(e,p),!(e.disabled||p.defaultPrevented)&&(p.currentTarget.focus(),n.open||n.onOpenChange(!0))},onPointerMove:it(e.onPointerMove,Zy(p=>{s.onItemEnter(p),!p.defaultPrevented&&!e.disabled&&!n.open&&!o.current&&(s.onPointerGraceIntentChange(null),o.current=window.setTimeout(()=>{n.onOpenChange(!0),f()},100))})),onPointerLeave:it(e.onPointerLeave,Zy(p=>{var g,b;f();const m=(g=n.content)==null?void 0:g.getBoundingClientRect();if(m){const y=(b=n.content)==null?void 0:b.dataset.side,x=y==="right",w=x?-5:5,k=m[x?"left":"right"],C=m[x?"right":"left"];s.onPointerGraceIntentChange({area:[{x:p.clientX+w,y:p.clientY},{x:k,y:m.top},{x:C,y:m.top},{x:C,y:m.bottom},{x:k,y:m.bottom}],side:y}),window.clearTimeout(a.current),a.current=window.setTimeout(()=>s.onPointerGraceIntentChange(null),300)}else{if(s.onTriggerLeave(p),p.defaultPrevented)return;s.onPointerGraceIntentChange(null)}})),onKeyDown:it(e.onKeyDown,p=>{var g;const m=s.searchRef.current!=="";e.disabled||m&&p.key===" "||ave[r.dir].includes(p.key)&&(n.onOpenChange(!0),(g=n.content)==null||g.focus(),p.preventDefault())})})})});KK.displayName=Zb;var GK="MenuSubContent",qK=_.forwardRef((e,t)=>{const n=MK(ka,e.__scopeMenu),{forceMount:r=n.forceMount,...i}=e,s=Ep(ka,e.__scopeMenu),o=v_(ka,e.__scopeMenu),a=VK(GK,e.__scopeMenu),l=_.useRef(null),u=Qn(t,l);return c.jsx(Jy.Provider,{scope:e.__scopeMenu,children:c.jsx(La,{present:r||s.open,children:c.jsx(Jy.Slot,{scope:e.__scopeMenu,children:c.jsx(JI,{id:a.contentId,"aria-labelledby":a.triggerId,...i,ref:u,align:"start",side:o.dir==="rtl"?"left":"right",disableOutsidePointerEvents:!1,disableOutsideScroll:!1,trapFocus:!1,onOpenAutoFocus:f=>{var p;o.isUsingKeyboardRef.current&&((p=l.current)==null||p.focus()),f.preventDefault()},onCloseAutoFocus:f=>f.preventDefault(),onFocusOutside:it(e.onFocusOutside,f=>{f.target!==a.trigger&&s.onOpenChange(!1)}),onEscapeKeyDown:it(e.onEscapeKeyDown,f=>{o.onClose(),f.preventDefault()}),onKeyDown:it(e.onKeyDown,f=>{var g;const p=f.currentTarget.contains(f.target),m=lve[o.dir].includes(f.key);p&&m&&(s.onOpenChange(!1),(g=a.trigger)==null||g.focus(),f.preventDefault())})})})})})});qK.displayName=GK;function YK(e){return e?"open":"closed"}function OC(e){return e==="indeterminate"}function tP(e){return OC(e)?"indeterminate":e?"checked":"unchecked"}function Tve(e){const t=document.activeElement;for(const n of e)if(n===t||(n.focus(),document.activeElement!==t))return}function Ave(e,t){return e.map((n,r)=>e[(t+r)%e.length])}function Rve(e,t,n){const i=t.length>1&&Array.from(t).every(u=>u===t[0])?t[0]:t,s=n?e.indexOf(n):-1;let o=Ave(e,Math.max(s,0));i.length===1&&(o=o.filter(u=>u!==n));const l=o.find(u=>u.toLowerCase().startsWith(i.toLowerCase()));return l!==n?l:void 0}function Mve(e,t){const{x:n,y:r}=e;let i=!1;for(let s=0,o=t.length-1;s<t.length;o=s++){const a=t[s],l=t[o],u=a.x,f=a.y,p=l.x,m=l.y;f>r!=m>r&&n<(p-u)*(r-f)/(m-f)+u&&(i=!i)}return i}function jve(e,t){if(!t)return!1;const n={x:e.clientX,y:e.clientY};return Mve(n,t)}function Zy(e){return t=>t.pointerType==="mouse"?e(t):void 0}var Ove=RK,Ive=YI,Pve=jK,Lve=OK,Dve=ZI,$ve=IK,zve=pk,Fve=LK,Bve=$K,Uve=FK,Hve=UK,Wve=HK,Vve=WK,Kve=KK,Gve=qK,nP="ContextMenu",[qve]=Lu(nP,[TK]),Xs=TK(),[Yve,XK]=qve(nP),QK=e=>{const{__scopeContextMenu:t,children:n,onOpenChange:r,dir:i,modal:s=!0}=e,[o,a]=_.useState(!1),l=Xs(t),u=ul(r),f=_.useCallback(p=>{a(p),u(p)},[u]);return c.jsx(Yve,{scope:t,open:o,onOpenChange:f,modal:s,children:c.jsx(Ove,{...l,dir:i,open:o,onOpenChange:f,modal:s,children:n})})};QK.displayName=nP;var JK="ContextMenuTrigger",ZK=_.forwardRef((e,t)=>{const{__scopeContextMenu:n,disabled:r=!1,...i}=e,s=XK(JK,n),o=Xs(n),a=_.useRef({x:0,y:0}),l=_.useRef({getBoundingClientRect:()=>DOMRect.fromRect({width:0,height:0,...a.current})}),u=_.useRef(0),f=_.useCallback(()=>window.clearTimeout(u.current),[]),p=m=>{a.current={x:m.clientX,y:m.clientY},s.onOpenChange(!0)};return _.useEffect(()=>f,[f]),_.useEffect(()=>void(r&&f()),[r,f]),c.jsxs(c.Fragment,{children:[c.jsx(Ive,{...o,virtualRef:l}),c.jsx(Tn.span,{"data-state":s.open?"open":"closed","data-disabled":r?"":void 0,...i,ref:t,style:{WebkitTouchCallout:"none",...e.style},onContextMenu:r?e.onContextMenu:it(e.onContextMenu,m=>{f(),p(m),m.preventDefault()}),onPointerDown:r?e.onPointerDown:it(e.onPointerDown,xS(m=>{f(),u.current=window.setTimeout(()=>p(m),700)})),onPointerMove:r?e.onPointerMove:it(e.onPointerMove,xS(f)),onPointerCancel:r?e.onPointerCancel:it(e.onPointerCancel,xS(f)),onPointerUp:r?e.onPointerUp:it(e.onPointerUp,xS(f))})]})});ZK.displayName=JK;var Xve="ContextMenuPortal",eG=e=>{const{__scopeContextMenu:t,...n}=e,r=Xs(t);return c.jsx(Pve,{...r,...n})};eG.displayName=Xve;var tG="ContextMenuContent",nG=_.forwardRef((e,t)=>{const{__scopeContextMenu:n,...r}=e,i=XK(tG,n),s=Xs(n),o=_.useRef(!1);return c.jsx(Lve,{...s,...r,ref:t,side:"right",sideOffset:2,align:"start",onCloseAutoFocus:a=>{var l;(l=e.onCloseAutoFocus)==null||l.call(e,a),!a.defaultPrevented&&o.current&&a.preventDefault(),o.current=!1},onInteractOutside:a=>{var l;(l=e.onInteractOutside)==null||l.call(e,a),!a.defaultPrevented&&!i.modal&&(o.current=!0)},style:{...e.style,"--radix-context-menu-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-context-menu-content-available-width":"var(--radix-popper-available-width)","--radix-context-menu-content-available-height":"var(--radix-popper-available-height)","--radix-context-menu-trigger-width":"var(--radix-popper-anchor-width)","--radix-context-menu-trigger-height":"var(--radix-popper-anchor-height)"}})});nG.displayName=tG;var Qve="ContextMenuGroup",Jve=_.forwardRef((e,t)=>{const{__scopeContextMenu:n,...r}=e,i=Xs(n);return c.jsx(Dve,{...i,...r,ref:t})});Jve.displayName=Qve;var Zve="ContextMenuLabel",ebe=_.forwardRef((e,t)=>{const{__scopeContextMenu:n,...r}=e,i=Xs(n);return c.jsx($ve,{...i,...r,ref:t})});ebe.displayName=Zve;var tbe="ContextMenuItem",rG=_.forwardRef((e,t)=>{const{__scopeContextMenu:n,...r}=e,i=Xs(n);return c.jsx(zve,{...i,...r,ref:t})});rG.displayName=tbe;var nbe="ContextMenuCheckboxItem",rbe=_.forwardRef((e,t)=>{const{__scopeContextMenu:n,...r}=e,i=Xs(n);return c.jsx(Fve,{...i,...r,ref:t})});rbe.displayName=nbe;var ibe="ContextMenuRadioGroup",sbe=_.forwardRef((e,t)=>{const{__scopeContextMenu:n,...r}=e,i=Xs(n);return c.jsx(Bve,{...i,...r,ref:t})});sbe.displayName=ibe;var obe="ContextMenuRadioItem",abe=_.forwardRef((e,t)=>{const{__scopeContextMenu:n,...r}=e,i=Xs(n);return c.jsx(Uve,{...i,...r,ref:t})});abe.displayName=obe;var lbe="ContextMenuItemIndicator",cbe=_.forwardRef((e,t)=>{const{__scopeContextMenu:n,...r}=e,i=Xs(n);return c.jsx(Hve,{...i,...r,ref:t})});cbe.displayName=lbe;var ube="ContextMenuSeparator",iG=_.forwardRef((e,t)=>{const{__scopeContextMenu:n,...r}=e,i=Xs(n);return c.jsx(Wve,{...i,...r,ref:t})});iG.displayName=ube;var dbe="ContextMenuArrow",fbe=_.forwardRef((e,t)=>{const{__scopeContextMenu:n,...r}=e,i=Xs(n);return c.jsx(Vve,{...i,...r,ref:t})});fbe.displayName=dbe;var hbe="ContextMenuSubTrigger",pbe=_.forwardRef((e,t)=>{const{__scopeContextMenu:n,...r}=e,i=Xs(n);return c.jsx(Kve,{...i,...r,ref:t})});pbe.displayName=hbe;var mbe="ContextMenuSubContent",gbe=_.forwardRef((e,t)=>{const{__scopeContextMenu:n,...r}=e,i=Xs(n);return c.jsx(Gve,{...i,...r,ref:t,style:{...e.style,"--radix-context-menu-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-context-menu-content-available-width":"var(--radix-popper-available-width)","--radix-context-menu-content-available-height":"var(--radix-popper-available-height)","--radix-context-menu-trigger-width":"var(--radix-popper-anchor-width)","--radix-context-menu-trigger-height":"var(--radix-popper-anchor-height)"}})});gbe.displayName=mbe;function xS(e){return t=>t.pointerType!=="mouse"?e(t):void 0}var vbe=QK,bbe=ZK,ybe=eG,sG=nG,oG=rG,aG=iG;const lG=_.createContext(null);function Np({onOpenChange:e,...t}){const[n,r]=_.useState(0),i=_.useCallback(()=>{r(s=>s+1),e==null||e(!1)},[e]);return c.jsx(lG.Provider,{value:i,children:c.jsx(vbe,{onOpenChange:e,...t},n)})}const Tp=bbe,Ef=_.forwardRef(({className:e,...t},n)=>c.jsx(ybe,{children:c.jsx(sG,{ref:n,className:pe("z-50 min-w-[170px] overflow-hidden rounded-xl border border-border bg-background p-1 shadow-lg outline-hidden animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95",e),...t})}));Ef.displayName=sG.displayName;const Er=_.forwardRef(({className:e,onSelect:t,...n},r)=>{const i=_.useContext(lG);return c.jsx(oG,{ref:r,className:pe("relative flex cursor-default select-none items-center gap-2.5 rounded-lg px-3 py-2 text-xs font-medium text-foreground outline-hidden transition-colors hover:bg-muted focus:bg-muted data-[disabled]:pointer-events-none data-[disabled]:opacity-50",e),onSelect:s=>{t==null||t(s),i==null||i()},...n})});Er.displayName=oG.displayName;const cG=_.forwardRef(({className:e,...t},n)=>c.jsx(aG,{ref:n,className:pe("-mx-1 my-1 h-px bg-border",e),...t}));cG.displayName=aG.displayName;var mk="Popover",[uG]=Lu(mk,[kf]),b_=kf(),[xbe,Nf]=uG(mk),dG=e=>{const{__scopePopover:t,children:n,open:r,defaultOpen:i,onOpenChange:s,modal:o=!1}=e,a=b_(t),l=_.useRef(null),[u,f]=_.useState(!1),[p,m]=Fg({prop:r,defaultProp:i??!1,onChange:s,caller:mk});return c.jsx(ak,{...a,children:c.jsx(xbe,{scope:t,contentId:pu(),triggerRef:l,open:p,onOpenChange:m,onOpenToggle:_.useCallback(()=>m(g=>!g),[m]),hasCustomAnchor:u,onCustomAnchorAdd:_.useCallback(()=>f(!0),[]),onCustomAnchorRemove:_.useCallback(()=>f(!1),[]),modal:o,children:n})})};dG.displayName=mk;var fG="PopoverAnchor",_be=_.forwardRef((e,t)=>{const{__scopePopover:n,...r}=e,i=Nf(fG,n),s=b_(n),{onCustomAnchorAdd:o,onCustomAnchorRemove:a}=i;return _.useEffect(()=>(o(),()=>a()),[o,a]),c.jsx(d_,{...s,...r,ref:t})});_be.displayName=fG;var hG="PopoverTrigger",pG=_.forwardRef((e,t)=>{const{__scopePopover:n,...r}=e,i=Nf(hG,n),s=b_(n),o=Qn(t,i.triggerRef),a=c.jsx(Tn.button,{type:"button","aria-haspopup":"dialog","aria-expanded":i.open,"aria-controls":i.contentId,"data-state":yG(i.open),...r,ref:o,onClick:it(e.onClick,i.onOpenToggle)});return i.hasCustomAnchor?a:c.jsx(d_,{asChild:!0,...s,children:a})});pG.displayName=hG;var rP="PopoverPortal",[Sbe,wbe]=uG(rP,{forceMount:void 0}),mG=e=>{const{__scopePopover:t,forceMount:n,children:r,container:i}=e,s=Nf(rP,t);return c.jsx(Sbe,{scope:t,forceMount:n,children:c.jsx(La,{present:n||s.open,children:c.jsx(bv,{asChild:!0,container:i,children:r})})})};mG.displayName=rP;var Hg="PopoverContent",gG=_.forwardRef((e,t)=>{const n=wbe(Hg,e.__scopePopover),{forceMount:r=n.forceMount,...i}=e,s=Nf(Hg,e.__scopePopover);return c.jsx(La,{present:r||s.open,children:s.modal?c.jsx(kbe,{...i,ref:t}):c.jsx(Ebe,{...i,ref:t})})});gG.displayName=Hg;var Cbe=tp("PopoverContent.RemoveScroll"),kbe=_.forwardRef((e,t)=>{const n=Nf(Hg,e.__scopePopover),r=_.useRef(null),i=Qn(t,r),s=_.useRef(!1);return _.useEffect(()=>{const o=r.current;if(o)return ek(o)},[]),c.jsx(c_,{as:Cbe,allowPinchZoom:!0,children:c.jsx(vG,{...e,ref:i,trapFocus:n.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:it(e.onCloseAutoFocus,o=>{var a;o.preventDefault(),s.current||(a=n.triggerRef.current)==null||a.focus()}),onPointerDownOutside:it(e.onPointerDownOutside,o=>{const a=o.detail.originalEvent,l=a.button===0&&a.ctrlKey===!0,u=a.button===2||l;s.current=u},{checkForDefaultPrevented:!1}),onFocusOutside:it(e.onFocusOutside,o=>o.preventDefault(),{checkForDefaultPrevented:!1})})})}),Ebe=_.forwardRef((e,t)=>{const n=Nf(Hg,e.__scopePopover),r=_.useRef(!1),i=_.useRef(!1);return c.jsx(vG,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:s=>{var o,a;(o=e.onCloseAutoFocus)==null||o.call(e,s),s.defaultPrevented||(r.current||(a=n.triggerRef.current)==null||a.focus(),s.preventDefault()),r.current=!1,i.current=!1},onInteractOutside:s=>{var l,u;(l=e.onInteractOutside)==null||l.call(e,s),s.defaultPrevented||(r.current=!0,s.detail.originalEvent.type==="pointerdown"&&(i.current=!0));const o=s.target;((u=n.triggerRef.current)==null?void 0:u.contains(o))&&s.preventDefault(),s.detail.originalEvent.type==="focusin"&&i.current&&s.preventDefault()}})}),vG=_.forwardRef((e,t)=>{const{__scopePopover:n,trapFocus:r,onOpenAutoFocus:i,onCloseAutoFocus:s,disableOutsidePointerEvents:o,onEscapeKeyDown:a,onPointerDownOutside:l,onFocusOutside:u,onInteractOutside:f,...p}=e,m=Nf(Hg,n),g=b_(n);return J1(),c.jsx(l_,{asChild:!0,loop:!0,trapped:r,onMountAutoFocus:i,onUnmountAutoFocus:s,children:c.jsx(vv,{asChild:!0,disableOutsidePointerEvents:o,onInteractOutside:f,onEscapeKeyDown:a,onPointerDownOutside:l,onFocusOutside:u,onDismiss:()=>m.onOpenChange(!1),children:c.jsx(lk,{"data-state":yG(m.open),role:"dialog",id:m.contentId,...g,...p,ref:t,style:{...p.style,"--radix-popover-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-popover-content-available-width":"var(--radix-popper-available-width)","--radix-popover-content-available-height":"var(--radix-popper-available-height)","--radix-popover-trigger-width":"var(--radix-popper-anchor-width)","--radix-popover-trigger-height":"var(--radix-popper-anchor-height)"}})})})}),bG="PopoverClose",Nbe=_.forwardRef((e,t)=>{const{__scopePopover:n,...r}=e,i=Nf(bG,n);return c.jsx(Tn.button,{type:"button",...r,ref:t,onClick:it(e.onClick,()=>i.onOpenChange(!1))})});Nbe.displayName=bG;var Tbe="PopoverArrow",Abe=_.forwardRef((e,t)=>{const{__scopePopover:n,...r}=e,i=b_(n);return c.jsx(ck,{...i,...r,ref:t})});Abe.displayName=Tbe;function yG(e){return e?"open":"closed"}var Rbe=dG,Mbe=pG,jbe=mG,xG=gG;const Tf=Rbe,Af=Mbe,$u=_.forwardRef(({className:e,align:t="center",sideOffset:n=4,ports:r={},...i},s)=>{const o=r.dom??Et;return c.jsx(jbe,{children:c.jsx(xG,{ref:s,align:t,sideOffset:n,[kC]:"",onCloseAutoFocus:a=>{var l;a.preventDefault(),o.dispatchCustomWindowEvent(AI),(l=i.onCloseAutoFocus)==null||l.call(i,a)},className:pe("z-50 w-72 rounded-xl border border-border bg-background p-4 shadow-lg outline-hidden animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",e),...i})})});$u.displayName=xG.displayName;const TR=en("StackActionsPopover",()=>e=>({open:!1,setOpen:t=>e({open:t})}));function Obe({editorLabel:e,starred:t,onCopyPath:n,onShowArchived:r,onOpenInFinder:i,onOpenInEditor:s,onToggleStar:o,onHide:a,children:l}){return c.jsxs(Np,{children:[c.jsx(Tp,{asChild:!0,children:l}),c.jsxs(Ef,{children:[c.jsxs(Er,{onSelect:u=>{u.stopPropagation(),o()},children:[t?c.jsx(Lde,{className:"h-3.5 w-3.5"}):c.jsx(O9,{className:"h-3.5 w-3.5"}),c.jsx("span",{className:"text-xs font-medium",children:t?"Unstar project":"Star project"})]}),c.jsxs(Er,{onSelect:u=>{u.stopPropagation(),n()},children:[c.jsx(cl,{className:"h-3.5 w-3.5"}),c.jsx("span",{className:"text-xs font-medium",children:"Copy Path"})]}),c.jsxs(Er,{onSelect:u=>{u.stopPropagation(),r()},children:[c.jsx(uI,{className:"h-3.5 w-3.5"}),c.jsx("span",{className:"text-xs font-medium",children:"Show Archived"})]}),c.jsxs(Er,{onSelect:u=>{u.stopPropagation(),i()},children:[c.jsx(Y1,{className:"h-3.5 w-3.5"}),c.jsx("span",{className:"text-xs font-medium",children:"Show in Finder"})]}),c.jsxs(Er,{onSelect:u=>{u.stopPropagation(),s()},children:[c.jsx(dI,{className:"h-3.5 w-3.5"}),c.jsxs("span",{className:"text-xs font-medium",children:["Open in ",e]})]}),c.jsxs(Er,{onSelect:u=>{u.stopPropagation(),a()},className:"text-destructive hover:bg-destructive/10 focus:bg-destructive/10",children:[c.jsx(Rce,{className:"h-3.5 w-3.5"}),c.jsx("span",{className:"text-xs font-medium",children:"Hide"})]})]})]})}function Ibe({canFork:e,onRename:t,onOpenInFinder:n,onFork:r,onArchive:i,onDelete:s,onEditPermissions:o,children:a}){return c.jsxs(Np,{children:[c.jsx(Tp,{asChild:!0,children:a}),c.jsxs(Ef,{children:[c.jsxs(Er,{onSelect:l=>{l.preventDefault(),t()},children:[c.jsx(wf,{className:"h-3.5 w-3.5"}),c.jsx("span",{className:"text-xs font-medium",children:"Rename"})]}),c.jsxs(Er,{onSelect:l=>{l.preventDefault(),n()},children:[c.jsx(Y1,{className:"h-3.5 w-3.5"}),c.jsx("span",{className:"text-xs font-medium",children:"Open in Finder"})]}),c.jsxs(Er,{disabled:!e,onSelect:l=>{l.preventDefault(),e&&r()},children:[c.jsx(j9,{className:"h-3.5 w-3.5"}),c.jsx("span",{className:"text-xs font-medium",children:"Fork"})]}),o?c.jsxs(Er,{onSelect:l=>{l.preventDefault(),o()},children:[c.jsx(vI,{className:"h-3.5 w-3.5"}),c.jsx("span",{className:"text-xs font-medium",children:"Permissions…"})]}):null,c.jsxs(Er,{onSelect:l=>{l.preventDefault(),i()},children:[c.jsx(uI,{className:"h-3.5 w-3.5"}),c.jsx("span",{className:"text-xs font-medium",children:"Archive"})]}),c.jsxs(Er,{onSelect:l=>{l.preventDefault(),s()},className:"text-destructive dark:text-red-400 hover:bg-destructive/10 focus:bg-destructive/10 dark:hover:bg-red-500/20 dark:focus:bg-red-500/20",children:[c.jsx(Pu,{className:"h-3.5 w-3.5"}),c.jsx("span",{className:"text-xs font-medium",children:"Delete"})]})]})]})}function Pbe({stackTitle:e,onRename:t,onEditMembers:n,onDelete:r,children:i}){const s=TR.useScopedStore(l=>l.open),o=TR.useScopedStore(l=>l.setOpen);function a(l){return()=>{o(!1),l()}}return c.jsxs(Tf,{open:s,onOpenChange:o,children:[c.jsx(Af,{asChild:!0,children:i}),c.jsxs($u,{align:"end",sideOffset:4,className:"w-44 p-1",role:"menu","aria-label":`Actions for ${e}`,children:[c.jsxs("button",{type:"button",role:"menuitem",onClick:a(t),className:"flex w-full items-center gap-2 rounded-sm px-2 py-1.5 text-left text-xs font-medium hover:bg-muted focus-visible:bg-muted outline-hidden",children:[c.jsx(wf,{className:"h-3.5 w-3.5"}),c.jsx("span",{children:"Rename"})]}),c.jsxs("button",{type:"button",role:"menuitem",onClick:a(n),className:"flex w-full items-center gap-2 rounded-sm px-2 py-1.5 text-left text-xs font-medium hover:bg-muted focus-visible:bg-muted outline-hidden",children:[c.jsx(P9,{className:"h-3.5 w-3.5"}),c.jsx("span",{children:"Edit members"})]}),c.jsxs("button",{type:"button",role:"menuitem",onClick:a(r),className:"flex w-full items-center gap-2 rounded-sm px-2 py-1.5 text-left text-xs font-medium text-destructive dark:text-red-400 hover:bg-destructive/10 focus-visible:bg-destructive/10 dark:hover:bg-red-500/20 dark:focus-visible:bg-red-500/20 outline-hidden",children:[c.jsx(Pu,{className:"h-3.5 w-3.5"}),c.jsxs("span",{children:["Delete ",e]})]})]})]})}function Lbe({stackTitle:e,onRename:t,onEditMembers:n,onDelete:r,children:i}){return c.jsx(TR.Provider,{init:{},children:c.jsx(Pbe,{stackTitle:e,onRename:t,onEditMembers:n,onDelete:r,children:i})})}function Dbe({stackTitle:e,onRename:t,onEditMembers:n,onDelete:r,children:i}){return c.jsxs(Np,{children:[c.jsx(Tp,{asChild:!0,children:i}),c.jsxs(Ef,{children:[c.jsxs(Er,{onSelect:s=>{s.preventDefault(),t()},children:[c.jsx(wf,{className:"h-3.5 w-3.5"}),c.jsx("span",{className:"text-xs font-medium",children:"Rename"})]}),c.jsxs(Er,{onSelect:s=>{s.preventDefault(),n()},children:[c.jsx(P9,{className:"h-3.5 w-3.5"}),c.jsx("span",{className:"text-xs font-medium",children:"Edit members"})]}),c.jsxs(Er,{onSelect:s=>{s.preventDefault(),r()},className:"text-destructive dark:text-red-400 hover:bg-destructive/10 focus:bg-destructive/10 dark:hover:bg-red-500/20 dark:focus:bg-red-500/20",children:[c.jsx(Pu,{className:"h-3.5 w-3.5"}),c.jsxs("span",{className:"text-xs font-medium",children:["Delete ",e]})]})]})]})}function $be(e){return e.status==="running"||e.status==="starting"?"warning":e.status==="waiting_for_user"?"info":e.status==="failed"?"destructive":e.unread?"success":null}function zbe(e){switch(e){case"warning":return"bg-warning";case"info":return"bg-info";case"success":return"bg-success";case"destructive":return"bg-destructive";default:return""}}function Fbe(e){switch(e){case"warning":return"text-warning";case"info":return"text-info";case"success":return"text-success";case"destructive":return"text-destructive";default:return"text-muted-foreground"}}function Bbe(e){switch(e){case"active":return{glyph:"●",tone:"text-success",title:"Claude PTY session active"};case"warming":return{glyph:"◐",tone:"text-warning",title:"Claude PTY session warming"};case"idle":return{glyph:"○",tone:"text-muted-foreground",title:"Claude PTY session idle"};case"cooling":return{glyph:"◌",tone:"text-muted-foreground",title:"Claude PTY session cooling down"};case"cold":default:return null}}function Ube({chat:e,activeChatId:t,nowMs:n,shortcutHint:r=null,showShortcutHint:i=!1,onSelectChat:s,onRenameChat:o,onOpenInFinder:a,onForkChat:l,onArchiveChat:u,onDeleteChat:f,onEditPermissions:p}){const m=(e.status==="running"||e.status==="waiting_for_user")&&e.stateEnteredAt!=null,g=m&&e.stateEnteredAt!=null?`${kR(e.status)} ${CR(n-e.stateEnteredAt)}`:ba(n-(e.lastMessageAt??e._creationTime)),b=i&&r?r:g,y=i&&!!r,x=Gfe(e.chatId),w=t===x,k=$be(e);let C;e.canFork?C="w-12":m?C="w-12 md:w-20":C="w-6 md:w-14";let E=null;b&&(y?E=c.jsx("span",{className:"hidden md:flex absolute inset-0 items-center justify-end pr-0.5 text-[11px] text-foreground transition-opacity duration-150 group-hover:opacity-0",children:c.jsx(hK,{className:"h-4 min-w-4 rounded-sm border-border/50 bg-transparent px-1 text-[10px]",children:r})}):E=c.jsx("span",{className:pe("hidden md:flex absolute inset-0 items-center justify-end pr-1 text-[11px] tabular-nums transition-opacity duration-150 group-hover:opacity-0 whitespace-nowrap",m?Fbe(k):"text-muted-foreground"),children:b}));const A=c.jsxs("div",{"data-chat-id":x,className:pe("group flex items-center gap-2 pl-2 pr-1 py-1.5 rounded-md cursor-pointer transition-colors duration-150",w?"bg-muted":"hover:bg-muted/40"),onClick:()=>s(e.chatId),children:[c.jsx("span",{className:"relative flex h-3.5 w-3.5 shrink-0 items-center justify-center","aria-hidden":!0,children:k?c.jsx("span",{className:pe("h-2 w-2 rounded-full",zbe(k))}):null}),(()=>{const N=Bbe(e.sessionState);return N?c.jsx(oc,{label:N.title,children:c.jsx("span",{className:pe("shrink-0 text-[10px] leading-none",N.tone),"aria-label":N.title,children:N.glyph})}):null})(),e.hasPolicyOverride?c.jsx(vI,{className:"size-3 shrink-0 text-warning","aria-label":"Per-chat permission override active"}):null,c.jsx("span",{className:pe("truncate flex-1 text-sm",w?"text-foreground font-medium":"text-foreground/90",e.status==="idle"&&!e.unread&&!w?"text-muted-foreground":""),children:e.title}),c.jsxs("div",{className:pe("relative h-6 shrink-0",C),children:[E,c.jsxs("div",{className:pe("absolute inset-0 flex items-center justify-end gap-0 transition-opacity duration-150",b?"opacity-100 md:opacity-0 md:group-hover:opacity-100":"opacity-100"),children:[e.canFork?c.jsx(je,{variant:"ghost",size:"icon",className:"h-6 w-6 cursor-pointer rounded-sm hover:!bg-transparent !border-0",onClick:N=>{N.stopPropagation(),l(e.chatId)},title:"Fork chat",children:c.jsx(j9,{className:"size-3.5"})}):null,c.jsx(je,{variant:"ghost",size:"icon",className:"h-6 w-6 cursor-pointer rounded-sm hover:!bg-transparent !border-0",onClick:N=>{N.stopPropagation(),u(e.chatId)},title:"Archive chat",children:c.jsx(uI,{className:"size-3.5"})})]})]})]},e._id);return c.jsx(Ibe,{canFork:e.canFork,onRename:()=>o(e.chatId),onOpenInFinder:()=>a(e.localPath),onFork:()=>l(e.chatId),onArchive:()=>u(e.chatId),onDelete:()=>f(e.chatId),onEditPermissions:p?()=>p(e.chatId):void 0,children:A})}const Hbe=_.memo(Ube);function Wbe(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return _.useMemo(()=>r=>{t.forEach(i=>i(r))},t)}const gk=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u";function Sv(e){const t=Object.prototype.toString.call(e);return t==="[object Window]"||t==="[object global]"}function iP(e){return"nodeType"in e}function Co(e){var t,n;return e?Sv(e)?e:iP(e)&&(t=(n=e.ownerDocument)==null?void 0:n.defaultView)!=null?t:window:window}function sP(e){const{Document:t}=Co(e);return e instanceof t}function y_(e){return Sv(e)?!1:e instanceof Co(e).HTMLElement}function _G(e){return e instanceof Co(e).SVGElement}function wv(e){return e?Sv(e)?e.document:iP(e)?sP(e)?e:y_(e)||_G(e)?e.ownerDocument:document:document:document}const ac=gk?_.useLayoutEffect:_.useEffect;function oP(e){const t=_.useRef(e);return ac(()=>{t.current=e}),_.useCallback(function(){for(var n=arguments.length,r=new Array(n),i=0;i<n;i++)r[i]=arguments[i];return t.current==null?void 0:t.current(...r)},[])}function Vbe(){const e=_.useRef(null),t=_.useCallback((r,i)=>{e.current=setInterval(r,i)},[]),n=_.useCallback(()=>{e.current!==null&&(clearInterval(e.current),e.current=null)},[]);return[t,n]}function ex(e,t){t===void 0&&(t=[e]);const n=_.useRef(e);return ac(()=>{n.current!==e&&(n.current=e)},t),n}function x_(e,t){const n=_.useRef();return _.useMemo(()=>{const r=e(n.current);return n.current=r,r},[...t])}function IC(e){const t=oP(e),n=_.useRef(null),r=_.useCallback(i=>{i!==n.current&&(t==null||t(i,n.current)),n.current=i},[]);return[n,r]}function AR(e){const t=_.useRef();return _.useEffect(()=>{t.current=e},[e]),t.current}let JT={};function __(e,t){return _.useMemo(()=>{if(t)return t;const n=JT[e]==null?0:JT[e]+1;return JT[e]=n,e+"-"+n},[e,t])}function SG(e){return function(t){for(var n=arguments.length,r=new Array(n>1?n-1:0),i=1;i<n;i++)r[i-1]=arguments[i];return r.reduce((s,o)=>{const a=Object.entries(o);for(const[l,u]of a){const f=s[l];f!=null&&(s[l]=f+e*u)}return s},{...t})}}const lg=SG(1),PC=SG(-1);function Kbe(e){return"clientX"in e&&"clientY"in e}function aP(e){if(!e)return!1;const{KeyboardEvent:t}=Co(e.target);return t&&e instanceof t}function Gbe(e){if(!e)return!1;const{TouchEvent:t}=Co(e.target);return t&&e instanceof t}function RR(e){if(Gbe(e)){if(e.touches&&e.touches.length){const{clientX:t,clientY:n}=e.touches[0];return{x:t,y:n}}else if(e.changedTouches&&e.changedTouches.length){const{clientX:t,clientY:n}=e.changedTouches[0];return{x:t,y:n}}}return Kbe(e)?{x:e.clientX,y:e.clientY}:null}const tx=Object.freeze({Translate:{toString(e){if(!e)return;const{x:t,y:n}=e;return"translate3d("+(t?Math.round(t):0)+"px, "+(n?Math.round(n):0)+"px, 0)"}},Scale:{toString(e){if(!e)return;const{scaleX:t,scaleY:n}=e;return"scaleX("+t+") scaleY("+n+")"}},Transform:{toString(e){if(e)return[tx.Translate.toString(e),tx.Scale.toString(e)].join(" ")}},Transition:{toString(e){let{property:t,duration:n,easing:r}=e;return t+" "+n+"ms "+r}}}),fF="a,frame,iframe,input:not([type=hidden]):not(:disabled),select:not(:disabled),textarea:not(:disabled),button:not(:disabled),*[tabindex]";function qbe(e){return e.matches(fF)?e:e.querySelector(fF)}const Ybe={display:"none"};function Xbe(e){let{id:t,value:n}=e;return Wn.createElement("div",{id:t,style:Ybe},n)}function Qbe(e){let{id:t,announcement:n,ariaLiveType:r="assertive"}=e;const i={position:"fixed",top:0,left:0,width:1,height:1,margin:-1,border:0,padding:0,overflow:"hidden",clip:"rect(0 0 0 0)",clipPath:"inset(100%)",whiteSpace:"nowrap"};return Wn.createElement("div",{id:t,style:i,role:"status","aria-live":r,"aria-atomic":!0},n)}function Jbe(){const[e,t]=_.useState("");return{announce:_.useCallback(r=>{r!=null&&t(r)},[]),announcement:e}}const wG=_.createContext(null);function Zbe(e){const t=_.useContext(wG);_.useEffect(()=>{if(!t)throw new Error("useDndMonitor must be used within a children of <DndContext>");return t(e)},[e,t])}function eye(){const[e]=_.useState(()=>new Set),t=_.useCallback(r=>(e.add(r),()=>e.delete(r)),[e]);return[_.useCallback(r=>{let{type:i,event:s}=r;e.forEach(o=>{var a;return(a=o[i])==null?void 0:a.call(o,s)})},[e]),t]}const tye={draggable:`
772
772
  To pick up a draggable item, press the space bar.
773
773
  While dragging, use the arrow keys to move the item.
774
774
  Press space again to drop the item in its new position, or press escape to cancel.
@@ -2684,7 +2684,7 @@ XID_Start XIDS`.split(/\s/).map(e=>[zk(e),e])),ANe=new Map([["s",ki(383)],[ki(38
2684
2684
  |(?![\\s\\S])))+`,"m"),alias:i,inside:{line:{pattern:/(.)(?=[\s\S]).*(?:\r\n?|\n)?/,lookbehind:!0},prefix:{pattern:/[\s\S]/,alias:/\w+/.exec(n)[0]}}}}),Object.defineProperty(e.languages.diff,"PREFIXES",{value:t})})(Prism);const xg=/^(\d+(?:\.\d+)?)px$/,In={BOTH:3,COLUMN:2,NO_STATUS:0,ROW:1};let uc=class Nee extends es{constructor(n=In.NO_STATUS,r=1,i,s){super(s);H(this,"__colSpan");H(this,"__rowSpan");H(this,"__headerState");H(this,"__width");H(this,"__backgroundColor");H(this,"__verticalAlign");this.__colSpan=r,this.__rowSpan=1,this.__headerState=n,this.__width=i,this.__backgroundColor=null,this.__verticalAlign=void 0}static getType(){return"tablecell"}static clone(n){return new Nee(n.__headerState,n.__colSpan,n.__width,n.__key)}afterCloneFrom(n){super.afterCloneFrom(n),this.__rowSpan=n.__rowSpan,this.__backgroundColor=n.__backgroundColor,this.__verticalAlign=n.__verticalAlign,this.__colSpan=n.__colSpan,this.__headerState=n.__headerState,this.__width=n.__width}static importDOM(){return{td:n=>({conversion:IU,priority:0}),th:n=>({conversion:IU,priority:0})}}static importJSON(n){return xo().updateFromJSON(n)}updateFromJSON(n){return super.updateFromJSON(n).setHeaderStyles(n.headerState).setColSpan(n.colSpan||1).setRowSpan(n.rowSpan||1).setWidth(n.width||void 0).setBackgroundColor(n.backgroundColor||null).setVerticalAlign(n.verticalAlign||void 0)}createDOM(n){const r=document.createElement(this.getTag());return this.__width&&(r.style.width=`${this.__width}px`),this.__colSpan>1&&(r.colSpan=this.__colSpan),this.__rowSpan>1&&(r.rowSpan=this.__rowSpan),this.__backgroundColor!==null&&(r.style.backgroundColor=this.__backgroundColor),Nj(this.__verticalAlign)&&(r.style.verticalAlign=this.__verticalAlign),ii(r,n.theme.tableCell,this.hasHeader()&&n.theme.tableCellHeader),r}exportDOM(n){const r=super.exportDOM(n);if(Pt(r.element)){const i=r.element;i.setAttribute("data-temporary-table-cell-lexical-key",this.getKey()),i.style.border="1px solid black",this.__colSpan>1&&(i.colSpan=this.__colSpan),this.__rowSpan>1&&(i.rowSpan=this.__rowSpan),i.style.width=`${this.getWidth()||75}px`,i.style.verticalAlign=this.getVerticalAlign()||"top",i.style.textAlign="start",this.__backgroundColor===null&&this.hasHeader()&&(i.style.backgroundColor="#f2f3f5")}return r}exportJSON(){return{...super.exportJSON(),...Nj(this.__verticalAlign)&&{verticalAlign:this.__verticalAlign},backgroundColor:this.getBackgroundColor(),colSpan:this.__colSpan,headerState:this.__headerState,rowSpan:this.__rowSpan,width:this.getWidth()}}getColSpan(){return this.getLatest().__colSpan}setColSpan(n){const r=this.getWritable();return r.__colSpan=n,r}getRowSpan(){return this.getLatest().__rowSpan}setRowSpan(n){const r=this.getWritable();return r.__rowSpan=n,r}getTag(){return this.hasHeader()?"th":"td"}setHeaderStyles(n,r=In.BOTH){const i=this.getWritable();return i.__headerState=n&r|i.__headerState&~r,i}getHeaderStyles(){return this.getLatest().__headerState}setWidth(n){const r=this.getWritable();return r.__width=n,r}getWidth(){return this.getLatest().__width}getBackgroundColor(){return this.getLatest().__backgroundColor}setBackgroundColor(n){const r=this.getWritable();return r.__backgroundColor=n,r}getVerticalAlign(){return this.getLatest().__verticalAlign}setVerticalAlign(n){const r=this.getWritable();return r.__verticalAlign=n||void 0,r}toggleHeaderStyle(n){const r=this.getWritable();return(r.__headerState&n)===n?r.__headerState-=n:r.__headerState+=n,r}hasHeaderState(n){return(this.getHeaderStyles()&n)===n}hasHeader(){return this.getLatest().__headerState!==In.NO_STATUS}updateDOM(n){return n.__headerState!==this.__headerState||n.__width!==this.__width||n.__colSpan!==this.__colSpan||n.__rowSpan!==this.__rowSpan||n.__backgroundColor!==this.__backgroundColor||n.__verticalAlign!==this.__verticalAlign}isShadowRoot(){return!0}collapseAtStart(){return!0}canBeEmpty(){return!1}canIndent(){return!1}};function Nj(e){return e==="middle"||e==="bottom"}function IU(e){const t=e,n=e.nodeName.toLowerCase();let r;xg.test(t.style.width)&&(r=parseFloat(t.style.width));let i=In.NO_STATUS;if(n==="th"){const y=t.getAttribute("scope");if(y==="col")i=In.COLUMN;else if(y==="row")i=In.ROW;else{const x=t.parentElement,w=Pt(x)&&x.nodeName.toLowerCase()==="tr"&&Pt(x.parentElement)&&(x.parentElement.nodeName.toLowerCase()==="thead"||x.rowIndex===0),k=t.cellIndex===0;w&&(i|=In.ROW),k&&(i|=In.COLUMN),i===In.NO_STATUS&&(i=In.ROW)}}const s=xo(i,t.colSpan,r);s.__rowSpan=t.rowSpan;const o=t.style.backgroundColor;o!==""&&(s.__backgroundColor=o);const a=t.style.verticalAlign;Nj(a)&&(s.__verticalAlign=a);const l=t.style,u=(l&&l.textDecoration||"").split(" "),f=l.fontWeight==="700"||l.fontWeight==="bold",p=u.includes("line-through"),m=l.fontStyle==="italic",g=u.includes("underline"),b=l.color;return{after:y=>{const x=[];let w=null;const k=()=>{if(w){const C=w.getFirstChild();gi(C)&&w.getChildrenSize()===1&&C.remove()}};for(const C of y)if(HJ(C)||Ie(C)||gi(C)){if(Ie(C)&&(f&&C.toggleFormat("bold"),p&&C.toggleFormat("strikethrough"),m&&C.toggleFormat("italic"),g&&C.toggleFormat("underline"),b)){const E=C.getStyle();E.includes("color:")||C.setStyle(E+`color: ${b};`)}w?w.append(C):(w=Ft().append(C),x.push(w))}else x.push(C),k(),w=null;return k(),x.length===0&&x.push(Ft()),x},node:s}}function xo(e=In.NO_STATUS,t=1,n){return vi(new uc(e,t,n))}function _t(e){return e instanceof uc}const kIe=gt("INSERT_TABLE_COMMAND");function It(e,...t){const n=new URL("https://lexical.dev/docs/error"),r=new URLSearchParams;r.append("code",e);for(const i of t)r.append("v",i);throw n.search=r.toString(),Error(`Minified Lexical error #${e}; visit ${n.toString()} for the full message or use the non-minified dev environment for full errors and additional helpful warnings.`)}let zp=class Tee extends es{constructor(n,r){super(r);H(this,"__height");this.__height=n}static getType(){return"tablerow"}static clone(n){return new Tee(n.__height,n.__key)}afterCloneFrom(n){super.afterCloneFrom(n),this.__height=n.__height}static importDOM(){return{tr:n=>({conversion:EIe,priority:0})}}static importJSON(n){return yf().updateFromJSON(n)}updateFromJSON(n){return super.updateFromJSON(n).setHeight(n.height)}exportJSON(){const n=this.getHeight();return{...super.exportJSON(),...n===void 0?void 0:{height:n}}}createDOM(n){const r=document.createElement("tr");return this.__height&&(r.style.height=`${this.__height}px`),ii(r,n.theme.tableRow),r}extractWithChild(n,r,i){return i==="html"}isShadowRoot(){return!0}setHeight(n){const r=this.getWritable();return r.__height=n,r}getHeight(){return this.getLatest().__height}updateDOM(n){return n.__height!==this.__height}canBeEmpty(){return!1}canIndent(){return!1}};function EIe(e){const t=e;let n;return xg.test(t.style.height)&&(n=parseFloat(t.style.height)),{after:r=>C1(r,_t),node:yf(n)}}function yf(e){return vi(new zp(e))}function vr(e){return e instanceof zp}function NIe(e,t,n=!0){const r=W_();for(let i=0;i<e;i++){const s=yf();for(let o=0;o<t;o++){let a=In.NO_STATUS;typeof n=="object"?(i===0&&n.rows&&(a|=In.ROW),o===0&&n.columns&&(a|=In.COLUMN)):n&&(i===0&&(a|=In.ROW),o===0&&(a|=In.COLUMN));const l=xo(a),u=Ft();u.append(Yn()),l.append(u),s.append(l)}r.append(s)}return r}function TIe(e){const t=Yt(e,n=>_r(n));if(_r(t))return t;throw new Error("Expected table cell to be inside of table.")}const Tj=(e,t)=>e===In.BOTH||e===t?t:In.NO_STATUS;function AIe(e,t=!0){const[,,n]=Yl(e),[r,i]=Ia(n,e,e),s=r[0].length,{startRow:o}=i;let a=null;if(t){const l=o+e.__rowSpan-1,u=r[l],f=yf();for(let m=0;m<s;m++){const{cell:g,startRow:b}=u[m];if(b+g.__rowSpan-1<=l){const y=u[m].cell.__headerState,x=Tj(y,In.COLUMN);f.append(xo(x).append(Ft()))}else g.setRowSpan(g.__rowSpan+1)}const p=n.getChildAtIndex(l);vr(p)||It(256),p.insertAfter(f),a=f}else{const l=o,u=r[l],f=yf();for(let m=0;m<s;m++){const{cell:g,startRow:b}=u[m];if(b===l){const y=u[m].cell.__headerState,x=Tj(y,In.COLUMN);f.append(xo(x).append(Ft()))}else g.setRowSpan(g.__rowSpan+1)}const p=n.getChildAtIndex(l);vr(p)||It(257),p.insertBefore(f),a=f}return a}function RIe(e,t=!0,n=!0){const[,,r]=Yl(e),[i,s]=Ia(r,e,e),o=i.length,{startColumn:a}=s,l=t?a+e.__colSpan-1:a-1,u=r.getFirstChild();vr(u)||It(120);let f=null;function p(b=In.NO_STATUS){const y=xo(b).append(Ft());return f===null&&(f=y),y}let m=u;e:for(let b=0;b<o;b++){if(b!==0){const A=m.getNextSibling();vr(A)||It(121),m=A}const y=i[b],x=y[l<0?0:l].cell.__headerState,w=Tj(x,In.ROW);if(l<0){Aee(m,p(w));continue}const{cell:k,startColumn:C,startRow:E}=y[l];if(C+k.__colSpan-1<=l){let A=k,N=E,M=l;for(;N!==b&&A.__rowSpan>1;){if(M-=k.__colSpan,!(M>=0)){m.append(p(w));continue e}{const{cell:j,startRow:I}=y[M];A=j,N=I}}A.insertAfter(p(w))}else k.setColSpan(k.__colSpan+1)}f!==null&&n&&MIe(f);const g=r.getColWidths();if(g){const b=[...g],y=l<0?0:l,x=b[y];b.splice(y,0,x),r.setColWidths(b)}return f}function MIe(e){const t=e.getFirstDescendant();t==null?e.selectStart():t.getParentOrThrow().selectStart()}function Aee(e,t){const n=e.getFirstChild();n!==null?n.insertBefore(t):e.append(t)}function jIe(e){if(e.length===0)return null;const t=TIe(e[0]),[n]=fu(t,null,null);let r=1/0,i=-1/0,s=1/0,o=-1/0;const a=new Set;for(const g of n)for(const b of g){if(!b||!b.cell)continue;const y=b.cell.getKey();if(!a.has(y)&&e.some(x=>x.is(b.cell))){a.add(y);const x=b.startRow,w=b.startColumn,k=b.cell.__rowSpan||1,C=b.cell.__colSpan||1;r=Math.min(r,x),i=Math.max(i,x+k-1),s=Math.min(s,w),o=Math.max(o,w+C-1)}}if(r===1/0||s===1/0)return null;const l=i-r+1,u=o-s+1,f=n[r][s];if(!f.cell)return null;const p=f.cell;p.setColSpan(u),p.setRowSpan(l);const m=new Set([p.getKey()]);for(let g=r;g<=i;g++)for(let b=s;b<=o;b++){const y=n[g][b];if(!y.cell)continue;const x=y.cell,w=x.getKey();m.has(w)||(m.add(w),OIe(x)||p.append(...x.getChildren()),x.remove())}return p.getChildrenSize()===0&&p.append(Ft()),p}function OIe(e){if(e.getChildrenSize()!==1)return!1;const t=e.getFirstChildOrThrow();return!(!Da(t)||!t.isEmpty())}function IIe(e){const[t,n,r]=Yl(e),i=t.__colSpan,s=t.__rowSpan;if(i===1&&s===1)return;const[o,a]=Ia(r,t,t),{startColumn:l,startRow:u}=a,f=t.__headerState&In.COLUMN,p=Array.from({length:i},(b,y)=>{let x=f;for(let w=0;x!==0&&w<o.length;w++)x&=o[w][y+l].cell.__headerState;return x}),m=t.__headerState&In.ROW,g=Array.from({length:s},(b,y)=>{let x=m;for(let w=0;x!==0&&w<o[0].length;w++)x&=o[y+u][w].cell.__headerState;return x});if(i>1){for(let b=1;b<i;b++)t.insertAfter(xo(p[b]|g[0]).append(Ft()));t.setColSpan(1)}if(s>1){let b;for(let y=1;y<s;y++){const x=u+y,w=o[x];b=(b||n).getNextSibling(),vr(b)||It(125);let k=null;for(let C=0;C<l;C++){const E=w[C],A=E.cell;E.startRow===x&&(k=A),A.__colSpan>1&&(C+=A.__colSpan-1)}if(k===null)for(let C=i-1;C>=0;C--)Aee(b,xo(p[C]|g[y]).append(Ft()));else for(let C=i-1;C>=0;C--)k.insertAfter(xo(p[C]|g[y]).append(Ft()))}t.setRowSpan(1)}}function Ia(e,t,n){const[r,i,s]=fu(e,t,n);return i===null&&It(207),s===null&&It(208),[r,i,s]}function fu(e,t,n){const r=[];let i=null,s=null;function o(l){let u=r[l];return u===void 0&&(r[l]=u=[]),u}const a=e.getChildren();for(let l=0;l<a.length;l++){const u=a[l];vr(u)||It(209);const f=o(l);for(let p=u.getFirstChild(),m=0;p!=null;p=p.getNextSibling()){for(_t(p)||It(147);f[m]!==void 0;)m++;const g={cell:p,startColumn:m,startRow:l},{__rowSpan:b,__colSpan:y}=p;for(let x=0;x<b&&!(l+x>=a.length);x++){const w=o(l+x);for(let k=0;k<y;k++)w[m+k]=g}t!==null&&i===null&&t.is(p)&&(i=g),n!==null&&s===null&&n.is(p)&&(s=g)}}return[r,i,s]}function Yl(e){let t;if(e instanceof uc)t=e;else if("__type"in e){const i=Yt(e,_t);_t(i)||It(148),t=i}else{const i=Yt(e.getNode(),_t);_t(i)||It(148),t=i}const n=t.getParent();vr(n)||It(149);const r=n.getParent();return _r(r)||It(210),[t,n,r]}function A1(e,t,n){let r,i=Math.min(t.startColumn,n.startColumn),s=Math.min(t.startRow,n.startRow),o=Math.max(t.startColumn+t.cell.__colSpan-1,n.startColumn+n.cell.__colSpan-1),a=Math.max(t.startRow+t.cell.__rowSpan-1,n.startRow+n.cell.__rowSpan-1);do{r=!1;for(let l=0;l<e.length;l++)for(let u=0;u<e[0].length;u++){const f=e[l][u];if(!f)continue;const p=f.startColumn+f.cell.__colSpan-1,m=f.startRow+f.cell.__rowSpan-1,g=f.startColumn<=o&&p>=i,b=f.startRow<=a&&m>=s;if(g&&b){const y=Math.min(i,f.startColumn),x=Math.max(o,p),w=Math.min(s,f.startRow),k=Math.max(a,m);y===i&&x===o&&w===s&&k===a||(i=y,o=x,s=w,a=k,r=!0)}}}while(r);return{maxColumn:o,maxRow:a,minColumn:i,minRow:s}}function PU(e){const[t,,n]=Yl(e),r=n.getChildren(),i=r.length,s=r[0].getChildren().length,o=new Array(i);for(let a=0;a<i;a++)o[a]=new Array(s);for(let a=0;a<i;a++){const l=r[a].getChildren();let u=0;for(let f=0;f<l.length;f++){for(;o[a][u];)u++;const p=l[f],m=p.__rowSpan||1,g=p.__colSpan||1;for(let b=0;b<m;b++)for(let y=0;y<g;y++)o[a+b][u+y]=p;if(t===p)return{colSpan:g,columnIndex:u,rowIndex:a,rowSpan:m};u+=g}}return null}function LU(e){const[[t,n,r,i],[s,o,a,l]]=["anchor","focus"].map(u=>{const f=e[u].getNode(),p=Yt(f,_t);_t(p)||It(238,u,f.getKey(),f.getType());const m=p.getParent();vr(m)||It(239,u);const g=m.getParent();return _r(g)||It(240,u),[f,p,m,g]});return i.is(l)||It(241),{anchorCell:n,anchorNode:t,anchorRow:r,anchorTable:i,focusCell:o,focusNode:s,focusRow:a,focusTable:l}}let Ree=class Mee{constructor(t,n,r){H(this,"tableKey");H(this,"anchor");H(this,"focus");H(this,"_cachedNodes");H(this,"dirty");this.anchor=n,this.focus=r,n._selection=this,r._selection=this,this._cachedNodes=null,this.dirty=!1,this.tableKey=t}getStartEndPoints(){return[this.anchor,this.focus]}isValid(){if(this.tableKey==="root"||this.anchor.key==="root"||this.anchor.type!=="element"||this.focus.key==="root"||this.focus.type!=="element")return!1;const t=mr(this.tableKey),n=mr(this.anchor.key),r=mr(this.focus.key);return t!==null&&n!==null&&r!==null}isBackward(){return this.focus.isBefore(this.anchor)}getCachedNodes(){return this._cachedNodes}setCachedNodes(t){this._cachedNodes=t}is(t){return xr(t)&&this.tableKey===t.tableKey&&this.anchor.is(t.anchor)&&this.focus.is(t.focus)}set(t,n,r){this.dirty=this.dirty||t!==this.tableKey||n!==this.anchor.key||r!==this.focus.key,this.tableKey=t,this.anchor.key=n,this.focus.key=r,this._cachedNodes=null}clone(){return new Mee(this.tableKey,wo(this.anchor.key,this.anchor.offset,this.anchor.type),wo(this.focus.key,this.focus.offset,this.focus.type))}isCollapsed(){return!1}extract(){return this.getNodes()}insertRawText(t){}insertText(){}hasFormat(t){let n=0;this.getNodes().filter(_t).forEach(i=>{const s=i.getFirstChild();Da(s)&&(n|=s.getTextFormat())});const r=gf[t];return(n&r)!==0}insertNodes(t){const n=this.focus.getNode();be(n)||It(151),vf(n.select(0,n.getChildrenSize())).insertNodes(t)}getShape(){const{anchorCell:t,focusCell:n}=LU(this),r=PU(t);r===null&&It(153);const i=PU(n);i===null&&It(155);const s=Math.min(r.columnIndex,i.columnIndex),o=Math.max(r.columnIndex+r.colSpan-1,i.columnIndex+i.colSpan-1),a=Math.min(r.rowIndex,i.rowIndex),l=Math.max(r.rowIndex+r.rowSpan-1,i.rowIndex+i.rowSpan-1);return{fromX:Math.min(s,o),fromY:Math.min(a,l),toX:Math.max(s,o),toY:Math.max(a,l)}}getNodes(){if(!this.isValid())return[];const t=this._cachedNodes;if(t!==null)return t;const{anchorTable:n,anchorCell:r,focusCell:i}=LU(this),s=i.getParents()[1];if(s!==n){if(n.isParentOf(i)){const x=s.getParent();x==null&&It(159),this.set(this.tableKey,i.getKey(),x.getKey())}else{const x=n.getParent();x==null&&It(158),this.set(this.tableKey,x.getKey(),i.getKey())}return this.getNodes()}const[o,a,l]=Ia(n,r,i),{minColumn:u,maxColumn:f,minRow:p,maxRow:m}=A1(o,a,l),g=new Map([[n.getKey(),n]]);let b=null;for(let x=p;x<=m;x++)for(let w=u;w<=f;w++){const{cell:k}=o[x][w],C=k.getParent();vr(C)||It(160),C!==b&&(g.set(C.getKey(),C),b=C),g.has(k.getKey())||LIe(k,E=>{g.set(E.getKey(),E)})}const y=Array.from(g.values());return hp()||(this._cachedNodes=y),y}getTextContent(){const t=this.getNodes().filter(r=>_t(r));let n="";for(let r=0;r<t.length;r++){const i=t[r],s=i.__parent,o=(t[r+1]||{}).__parent;n+=i.getTextContent()+(o!==s?`
2685
2685
  `:" ")}return n}};function xr(e){return e instanceof Ree}function PIe(){const e=wo("root",0,"element"),t=wo("root",0,"element");return new Ree("root",e,t)}function Aj(e,t,n){e.getKey(),t.getKey(),n.getKey();const r=ze(),i=xr(r)?r.clone():PIe();return i.set(e.getKey(),t.getKey(),n.getKey()),i}function LIe(e,t){const n=[[e]];for(let r=n.at(-1);r!==void 0&&n.length>0;r=n.at(-1)){const i=r.pop();i===void 0?n.pop():t(i)!==!1&&be(i)&&n.push(i.getChildren())}}function jee(e,t=Nr()){const n=mr(e);_r(n)||It(231,e);const r=Mu(n,t.getElementByKey(e));return r===null&&It(232,e),{tableElement:r,tableNode:n}}let DIe=class{constructor(){H(this,"observers");H(this,"nextFocus");H(this,"shouldCheckSelectionForTable");this.observers=new Map,this.nextFocus=null,this.shouldCheckSelectionForTable=null}setNextFocus(t){this.nextFocus=t}getAndClearNextFocus(){const{nextFocus:t}=this;return t!==null&&(this.nextFocus=null),t}setShouldCheckSelectionForTable(t){this.shouldCheckSelectionForTable=t}getAndClearShouldCheckSelectionForTable(){const{shouldCheckSelectionForTable:t}=this;return t?(this.shouldCheckSelectionForTable=null,t):null}},$Ie=class{constructor(t,n){H(this,"focusX");H(this,"focusY");H(this,"listenersToRemove");H(this,"table");H(this,"isHighlightingCells");H(this,"anchorX");H(this,"anchorY");H(this,"tableNodeKey");H(this,"anchorCell");H(this,"focusCell");H(this,"anchorCellNodeKey");H(this,"focusCellNodeKey");H(this,"editor");H(this,"tableSelection");H(this,"hasHijackedSelectionStyles");H(this,"isSelecting");H(this,"pointerType");H(this,"abortController");H(this,"listenerOptions");this.isHighlightingCells=!1,this.anchorX=-1,this.anchorY=-1,this.focusX=-1,this.focusY=-1,this.listenersToRemove=new Set,this.tableNodeKey=n,this.editor=t,this.table={columns:0,domRows:[],rows:0},this.tableSelection=null,this.anchorCellNodeKey=null,this.focusCellNodeKey=null,this.anchorCell=null,this.focusCell=null,this.hasHijackedSelectionStyles=!1,this.isSelecting=!1,this.pointerType=null,this.abortController=new AbortController,this.listenerOptions={signal:this.abortController.signal},this.trackTable()}getTable(){return this.table}removeListeners(){this.abortController.abort("removeListeners"),Array.from(this.listenersToRemove).forEach(t=>t()),this.listenersToRemove.clear()}$lookup(){return jee(this.tableNodeKey,this.editor)}trackTable(){const t=new MutationObserver(n=>{this.editor.getEditorState().read(()=>{let r=!1;for(let o=0;o<n.length;o++){const a=n[o].target.nodeName;if(a==="TABLE"||a==="TBODY"||a==="THEAD"||a==="TR"){r=!0;break}}if(!r)return;const{tableNode:i,tableElement:s}=this.$lookup();this.table=Sg(i,s)},{editor:this.editor})});this.editor.getEditorState().read(()=>{const{tableNode:n,tableElement:r}=this.$lookup();this.table=Sg(n,r),t.observe(r,{attributes:!0,childList:!0,subtree:!0})},{editor:this.editor})}$clearHighlight(t=!0){const n=this.editor;this.isHighlightingCells=!1,this.anchorX=-1,this.anchorY=-1,this.focusX=-1,this.focusY=-1,this.tableSelection=null,this.anchorCellNodeKey=null,this.focusCellNodeKey=null,this.anchorCell=null,this.focusCell=null,this.hasHijackedSelectionStyles=!1,this.$enableHighlightStyle();const{tableNode:r,tableElement:i}=this.$lookup();sw(n,Sg(r,i),null),t&&ze()!==null&&(Sr(null),n.dispatchCommand(Gl,void 0))}$enableHighlightStyle(){const t=this.editor,{tableElement:n}=this.$lookup();rc(n,t._config.theme.tableSelection),n.classList.remove("disable-selection"),this.hasHijackedSelectionStyles=!1}$disableHighlightStyle(){const{tableElement:t}=this.$lookup();ii(t,this.editor._config.theme.tableSelection),this.hasHijackedSelectionStyles=!0}$updateTableTableSelection(t){if(t!==null){t.tableKey!==this.tableNodeKey&&It(233,t.tableKey,this.tableNodeKey);const n=this.editor;this.tableSelection=t,this.isHighlightingCells=!0,this.$disableHighlightStyle(),this.updateDOMSelection(),sw(n,this.table,this.tableSelection)}else this.$clearHighlight()}updateDOMSelection(){if(this.anchorCell!==null&&this.focusCell!==null){const t=ts(this.editor._window);t&&t.rangeCount>0&&t.removeAllRanges()}}$setFocusCellForSelection(t,n=!1){const r=this.editor,{tableNode:i}=this.$lookup(),s=t.x,o=t.y;if(this.focusCell=t,!this.isHighlightingCells&&(n||this.anchorX!==s||this.anchorY!==o||this.tableSelection!=null&&this.anchorCellNodeKey!=null)&&(this.isHighlightingCells=!0,this.$disableHighlightStyle()),this.focusX!==-1&&this.focusY!==-1&&s===this.focusX&&o===this.focusY)return!1;if(this.focusX=s,this.focusY=o,this.isHighlightingCells){const a=Mj(i,t.elem);if(this.tableSelection!=null&&this.anchorCellNodeKey!=null){let l=a;if(l===null&&n&&(l=i.getCellNodeFromCords(s,o,this.table)),l!==null){const u=this.$getAnchorTableCellOrThrow();return this.focusCellNodeKey=l.getKey(),this.tableSelection=Aj(i,u,l),Sr(this.tableSelection),r.dispatchCommand(Gl,void 0),sw(r,this.table,this.tableSelection),!0}}}return!1}$getAnchorTableCell(){return this.anchorCellNodeKey?mr(this.anchorCellNodeKey):null}$getAnchorTableCellOrThrow(){const t=this.$getAnchorTableCell();return t===null&&It(234),t}$getFocusTableCell(){return this.focusCellNodeKey?mr(this.focusCellNodeKey):null}$getFocusTableCellOrThrow(){const t=this.$getFocusTableCell();return t===null&&It(235),t}$setAnchorCellForSelection(t){this.isHighlightingCells=!1,this.anchorCell=t,this.anchorX=t.x,this.anchorY=t.y,this.focusX=-1,this.focusY=-1,this.focusCell=null,this.focusCellNodeKey=null;const{tableNode:n}=this.$lookup(),r=Mj(n,t.elem);if(r!==null){const i=r.getKey();this.tableSelection!=null?(this.tableSelection=this.tableSelection.clone(),this.tableSelection.set(n.getKey(),i,i)):this.tableSelection=Aj(n,r,r),this.anchorCellNodeKey=i}}$formatCells(t){const n=ze();xr(n)||It(236);const r=TL(),i=r.anchor,s=r.focus,o=n.getNodes().filter(_t);o.length>0||It(237);const a=o[0].getFirstChild(),l=Da(a)?a.getFormatFlags(t,null):null;o.forEach(u=>{i.set(u.getKey(),0,"element"),s.set(u.getKey(),u.getChildrenSize(),"element"),r.formatText(t,l)}),Sr(n),this.editor.dispatchCommand(Gl,void 0)}$clearText(){const{editor:t}=this,n=mr(this.tableNodeKey);if(!_r(n))throw new Error("Expected TableNode.");const r=ze();xr(r)||It(253);const i=r.getNodes().filter(_t),s=n.getFirstChild(),o=n.getLastChild();if(i.length>0&&s!==null&&o!==null&&vr(s)&&vr(o)&&i[0]===s.getFirstChild()&&i[i.length-1]===o.getLastChild()){n.selectPrevious();const a=n.getParent();return n.remove(),void(Ni(a)&&a.isEmpty()&&t.dispatchCommand(up,void 0))}i.forEach(a=>{if(be(a)){const l=Ft(),u=Yn();l.append(u),a.append(l),a.getChildren().forEach(f=>{f!==l&&f.remove()})}}),sw(t,this.table,null),Sr(null),t.dispatchCommand(Gl,void 0)}};const _g="__lexicalTableSelection";function kh(e){return Pt(e)&&e.nodeName==="TABLE"}function Mu(e,t){if(!t)return t;const n=kh(t)?t:t.querySelector("table");return kh(n)||It(341,e.constructor.name,e.getType(),e.getKey(),t.nodeName),n}function gE(e){return e._window}function Hx(e,t){for(let n=t,r=null;n!==null;n=n.getParent()){if(e.is(n))return r;_t(n)&&(r=n)}return null}const zIe=[[Gk,"down"],[Kk,"up"],[xL,"backward"],[yL,"forward"]],FIe=[tv,dp,af],BIe=[_L,SL];function UIe(e,t){return e.registerRootListener(n=>{if(n===null)return;const r=e._window;if(r===null)return;const i=s=>{const o=s.target;if(s.button!==0||!ml(o)||!n.contains(o))return;const a=(function(l){const u=R1(l);if(u===null)return null;let f=u.elem;for(;f!=null;){if(f.nodeName==="TABLE"&&_g in f&&f[_g])return{cellElement:u,tableElement:f,tableObserver:f[_g]};f=f.parentNode}return null})(o);e.update(()=>{if(xr(ze())){for(const[p]of t.observers.values())p.$clearHighlight(!1);Sr(null),e.dispatchCommand(Gl,void 0)}if(!a)return;const{tableObserver:l,tableElement:u,cellElement:f}=a;(function(p,m,g,b,y,x){const w=p._window;if(!w)return;const k=A=>{if(y.isSelecting)return;y.isSelecting=!0,A!==null&&y.anchorCell===null&&p.update(()=>{y.$setAnchorCellForSelection(A)});const N=()=>{y.isSelecting=!1,w.removeEventListener("pointerup",N),w.removeEventListener("pointermove",M)},M=j=>{if(!(F=>!(1&~F.buttons))(j)&&y.isSelecting)return y.isSelecting=!1,w.removeEventListener("pointerup",N),void w.removeEventListener("pointermove",M);if(!ml(j.target))return;let I=null;const z=!(lc||b.contains(j.target));if(z)I=$U(b,j.target);else for(const F of document.elementsFromPoint(j.clientX,j.clientY))if(I=$U(b,F),I)break;if(I){const F=I;y.anchorCell===null&&p.update(()=>{y.$setAnchorCellForSelection(F)}),y.focusCell!==null&&I.elem===y.focusCell.elem||(x.setNextFocus({focusCell:I,override:z,tableKey:y.tableNodeKey}),p.dispatchCommand(Gl,void 0))}};w.addEventListener("pointerup",N,y.listenerOptions),w.addEventListener("pointermove",M,y.listenerOptions)};y.pointerType=m.pointerType;const C=Py(y.tableNodeKey),E=bo();if(lc&&m.shiftKey&&Jc(E,C)&&(Ne(E)||xr(E))){const A=E.anchor.getNode(),N=Hx(C,E.anchor.getNode());N?(y.$setAnchorCellForSelection(Oh(y,N)),y.$setFocusCellForSelection(g),su(m)):(C.isBefore(A)?C.selectStart():C.selectEnd()).anchor.set(E.anchor.key,E.anchor.offset,E.anchor.type)}else m.pointerType!=="touch"&&y.$setAnchorCellForSelection(g);k(g)})(e,s,f,u,l,t)})};return r.addEventListener("pointerdown",i),()=>{r.removeEventListener("pointerdown",i)}})}function HIe(e,t,n,r,i){const s=n.getRootElement(),o=gE(n);s!==null&&o!==null||It(246);const a=new $Ie(n,e.getKey()),l=Mu(e,t);(function(m,g){DU(m)!==null&&It(205),m[_g]=g})(l,a),a.listenersToRemove.add(()=>(function(m,g){DU(m)===g&&delete m[_g]})(l,a));const u=m=>{m.detail>=3&&ml(m.target)&&R1(m.target)!==null&&m.preventDefault()};l.addEventListener("mousedown",u,a.listenerOptions),a.listenersToRemove.add(()=>{l.removeEventListener("mousedown",u)});for(const[m,g]of zIe)a.listenersToRemove.add(n.registerCommand(m,b=>Pee(n,b,g,e,a,i),xs));a.listenersToRemove.add(n.registerCommand(qk,m=>{const g=ze();if(xr(g)){const b=Hx(e,g.focus.getNode());if(b!==null)return su(m),b.selectEnd(),!0}return!1},xs));const f=m=>()=>{const g=ze();if(!Jc(g,e))return!1;if(xr(g))return a.$clearText(),!0;if(Ne(g)){if(!_t(Hx(e,g.anchor.getNode())))return!1;const b=g.anchor.getNode(),y=g.focus.getNode(),x=e.isParentOf(b),w=e.isParentOf(y);if(x&&!w||w&&!x)return a.$clearText(),!0;const k=Yt(g.anchor.getNode(),E=>be(E)),C=k&&Yt(k,E=>be(E)&&_t(E.getParent()));if(!be(C)||!be(k))return!1;if(m===dp&&C.getPreviousSibling()===null)return!0}return!1};for(const m of FIe)a.listenersToRemove.add(n.registerCommand(m,f(m),xs));const p=m=>{const g=ze();if(!xr(g)&&!Ne(g))return!1;const b=e.isParentOf(g.anchor.getNode());if(b!==e.isParentOf(g.focus.getNode())){const y=b?"anchor":"focus",x=b?"focus":"anchor",{key:w,offset:k,type:C}=g[x];return e[g[y].isBefore(g[x])?"selectPrevious":"selectNext"]()[x].set(w,k,C),!1}return!!Jc(g,e)&&!!xr(g)&&(m&&(m.preventDefault(),m.stopPropagation()),a.$clearText(),!0)};for(const m of BIe)a.listenersToRemove.add(n.registerCommand(m,p,xs));return a.listenersToRemove.add(n.registerCommand(Xk,m=>{const g=ze();if(g){if(!xr(g)&&!Ne(g))return!1;_j(n,ql(m,ClipboardEvent)?m:null,sD(g));const b=p(m);return Ne(g)?(g.removeText(),!0):b}return!1},xs)),a.listenersToRemove.add(n.registerCommand(du,m=>{const g=ze();if(!Jc(g,e))return!1;if(xr(g))return a.$formatCells(m),!0;if(Ne(g)){const b=Yt(g.anchor.getNode(),y=>_t(y));if(!_t(b))return!1}return!1},xs)),a.listenersToRemove.add(n.registerCommand(YQ,m=>{const g=ze();if(!xr(g)||!Jc(g,e))return!1;const b=g.anchor.getNode(),y=g.focus.getNode();if(!_t(b)||!_t(y))return!1;if((function(j,I){if(xr(j)){const z=j.anchor.getNode(),F=j.focus.getNode();if(I&&z&&F){const[O]=Ia(I,z,F);return z.getKey()===O[0][0].cell.getKey()&&F.getKey()===O[O.length-1].at(-1).cell.getKey()}}return!1})(g,e))return e.setFormat(m),!0;const[x,w,k]=Ia(e,b,y),C=Math.max(w.startRow+w.cell.__rowSpan-1,k.startRow+k.cell.__rowSpan-1),E=Math.max(w.startColumn+w.cell.__colSpan-1,k.startColumn+k.cell.__colSpan-1),A=Math.min(w.startRow,k.startRow),N=Math.min(w.startColumn,k.startColumn),M=new Set;for(let j=A;j<=C;j++)for(let I=N;I<=E;I++){const z=x[j][I].cell;if(M.has(z))continue;M.add(z),z.setFormat(m);const F=z.getChildren();for(let O=0;O<F.length;O++){const P=F[O];be(P)&&!P.isInline()&&P.setFormat(m)}}return!0},xs)),a.listenersToRemove.add(n.registerCommand(Yh,m=>{const g=ze();if(!Jc(g,e))return!1;if(xr(g))return a.$clearHighlight(),!1;if(Ne(g)){const b=Yt(g.anchor.getNode(),y=>_t(y));if(!_t(b))return!1;if(typeof m=="string"){const y=FU(n,g,e);if(y)return zU(y,e,[Yn(m)]),!0}}return!1},xs)),r&&a.listenersToRemove.add(n.registerCommand(O_,m=>{const g=ze();if(!Ne(g)||!g.isCollapsed()||!Jc(g,e))return!1;const b=oy(g.anchor.getNode());return!(b===null||!e.is(lv(b)))&&(su(m),(function(y,x){const w=x==="next"?"getNextSibling":"getPreviousSibling",k=x==="next"?"getFirstChild":"getLastChild",C=y[w]();if(be(C))return C.selectEnd();const E=Yt(y,vr);E===null&&It(247);for(let N=E[w]();vr(N);N=N[w]()){const M=N[k]();if(be(M))return M.selectEnd()}const A=Yt(E,_r);A===null&&It(248),x==="next"?A.selectNext():A.selectPrevious()})(b,m.shiftKey?"previous":"next"),!0)},xs)),a.listenersToRemove.add(n.registerCommand(QQ,m=>e.isSelected(),xs)),a.listenersToRemove.add(n.registerCommand(up,()=>{const m=ze();if(!Ne(m)||!m.isCollapsed()||!Jc(m,e))return!1;const g=FU(n,m,e);return!!g&&(zU(g,e),!0)},xs)),a}function WIe(e,t){const n=ze(),r=bo(),i=e.getAndClearNextFocus();if(i!==null){const{tableKey:a,focusCell:l}=i,u=e.observers.get(a);u||It(335,a);const[f]=u;if(xr(n)&&n.tableKey===f.tableNodeKey)return(l.x!==f.focusX||l.y!==f.focusY)&&(f.$setFocusCellForSelection(l),!0);if(f.anchorCell!==null&&f.anchorCellNodeKey!==null&&l.elem!==f.anchorCell.elem&&f.tableSelection!==null)return f.$setFocusCellForSelection(l,!0),!0}const s=e.getAndClearShouldCheckSelectionForTable();if(s&&Ne(r)&&Ne(n)&&n.isCollapsed()){const a=Py(s),l=n.anchor.getNode(),u=a.getFirstChild(),f=oy(l);if(f!==null&&vr(u)){const p=u.getFirstChild();if(_t(p)&&a.is(Yt(f,m=>m.is(a)||m.is(p))))return p.selectStart(),!0}}xr(n)&&(function(a,l){const u=gE(a),f=bo();if(!l.is(f))return;const p=Py(l.tableKey),m=ts(u);if(m&&m.anchorNode&&m.focusNode){const g=Ys(m.focusNode),b=g&&!p.isParentOf(g),y=Ys(m.anchorNode),x=y&&p.isParentOf(y);if(b&&x&&m.rangeCount>0){const w=ORe(m,a);w&&(w.anchor.set(p.getKey(),l.isBackward()?p.getChildrenSize():0,"element"),m.removeAllRanges(),Sr(w))}}})(t,n),Ne(n)&&(function(a,l){const u=bo(),{anchor:f,focus:p}=a,m=f.getNode(),g=p.getNode(),b=oy(m),y=oy(g),x=b?lv(b):null,w=y?lv(y):null,k=a.isBackward(),C=b&&y&&x&&w&&x.is(w),E=w&&(!x||x.isParentOf(w)),A=x&&(!w||w.isParentOf(x));if(E){const N=a.clone(),[M]=Ia(w,y,y),j=M[0][0].cell,I=M[M.length-1].at(-1).cell;N.focus.set(k?j.getKey():I.getKey(),k?0:I.getChildrenSize(),"element"),Sr(N)}else if(A){const N=a.clone(),[M]=Ia(x,b,b),j=M[0][0].cell,I=M[M.length-1].at(-1).cell;N.anchor.set(k?I.getKey():j.getKey(),k?I.getChildrenSize():0,"element"),Sr(N)}else if(C){const N=l.observers.get(x.getKey());N||It(335,x.getKey());const[M]=N;if(b.is(y)||(M.$setAnchorCellForSelection(Oh(M,b)),M.$setFocusCellForSelection(Oh(M,y),!0)),M.pointerType==="touch"&&M.isSelecting&&a.isCollapsed()&&Ne(u)&&u.isCollapsed()){const j=oy(u.anchor.getNode());j&&!j.is(y)&&(M.$setAnchorCellForSelection(Oh(M,j)),M.$setFocusCellForSelection(Oh(M,y),!0),M.pointerType=null)}}})(n,e);const o=Array.from(e.observers.entries()).map(([a,[l]])=>({tableNode:Py(a),tableObserver:l}));for(const{tableNode:a,tableObserver:l}of o)VIe(t,a,l);return!1}function VIe(e,t,n){const r=ze(),i=bo();r&&!r.is(i)&&(xr(r)||xr(i))&&n.tableSelection&&!n.tableSelection.is(i)&&(xr(r)&&r.tableKey===n.tableNodeKey?n.$updateTableTableSelection(r):!xr(r)&&xr(i)&&i.tableKey===n.tableNodeKey&&n.$updateTableTableSelection(null)),n.hasHijackedSelectionStyles&&!t.isSelected()?(function(s,o){o.$enableHighlightStyle(),Rj(o.table,a=>{const l=a.elem;a.highlighted=!1,Iee(s,a),l.getAttribute("style")||l.removeAttribute("style")})})(e,n):!n.hasHijackedSelectionStyles&&t.isSelected()&&(function(s,o){o.$disableHighlightStyle(),Rj(o.table,a=>{a.highlighted=!0,Oee(s,a)})})(e,n)}function DU(e){return e[_g]||null}function R1(e){let t=e;for(;t!=null;){const n=t.nodeName;if(n==="TD"||n==="TH"){const r=t._cell;return r===void 0?null:r}t=t.parentNode}return null}function $U(e,t){if(!e.contains(t))return null;let n=null;for(let r=t;r!=null;r=r.parentNode){if(r===e)return n;const i=r.nodeName;i!=="TD"&&i!=="TH"||(n=r._cell||null)}return null}function Sg(e,t){const n=[],r={columns:0,domRows:n,rows:0};let i=Mu(e,t).querySelector("tr"),s=0,o=0;for(n.length=0;i!=null;){const a=i.nodeName;if(a==="TD"||a==="TH"){const f={elem:i,hasBackgroundColor:i.style.backgroundColor!=="",highlighted:!1,x:s,y:o};i._cell=f;let p=n[o];p===void 0&&(p=n[o]=[]),p[s]=f}else{const f=i.firstChild;if(f!=null){i=f;continue}}const l=i.nextSibling;if(l!=null){s++,i=l;continue}const u=i.parentNode;if(u!=null){const f=u.nextSibling;if(f==null)break;o++,s=0,i=f}}return r.columns=s+1,r.rows=o+1,r}function sw(e,t,n){const r=new Set(n?n.getNodes():[]);Rj(t,(i,s)=>{const o=i.elem;r.has(s)?(i.highlighted=!0,Oee(e,i)):(i.highlighted=!1,Iee(e,i),o.getAttribute("style")||o.removeAttribute("style"))})}function Rj(e,t){const{domRows:n}=e;for(let r=0;r<n.length;r++){const i=n[r];if(i)for(let s=0;s<i.length;s++){const o=i[s];if(!o)continue;const a=Ys(o.elem);a!==null&&t(o,a,{x:s,y:r})}}}const KIe=(e,t,n,r,i)=>{const s=i==="forward";switch(i){case"backward":case"forward":return n!==(s?e.table.columns-1:0)?aw(t.getCellNodeFromCordsOrThrow(n+(s?1:-1),r,e.table),s):r!==(s?e.table.rows-1:0)?aw(t.getCellNodeFromCordsOrThrow(s?0:e.table.columns-1,r+(s?1:-1),e.table),s):s?t.selectNext():t.selectPrevious(),!0;case"up":return r!==0?aw(t.getCellNodeFromCordsOrThrow(n,r-1,e.table),!1):t.selectPrevious(),!0;case"down":return r!==e.table.rows-1?aw(t.getCellNodeFromCordsOrThrow(n,r+1,e.table),!0):t.selectNext(),!0;default:return!1}};function dA(e,t){let n,r;if(t.startColumn===e.minColumn)n="minColumn";else{if(t.startColumn+t.cell.__colSpan-1!==e.maxColumn)return null;n="maxColumn"}if(t.startRow===e.minRow)r="minRow";else{if(t.startRow+t.cell.__rowSpan-1!==e.maxRow)return null;r="maxRow"}return[n,r]}function ow([e,t]){return[e==="minColumn"?"maxColumn":"minColumn",t==="minRow"?"maxRow":"minRow"]}function Om(e,t,[n,r]){const i=t[r],s=e[i];s===void 0&&It(250,r,String(i));const o=t[n],a=s[o];return a===void 0&&It(250,n,String(o)),a}function GIe(e,t,n,r,i){const s=A1(t,n,r),o=(function(N,M){const{minColumn:j,maxColumn:I,minRow:z,maxRow:F}=M;let O=1,P=1,W=1,U=1;const B=N[z],K=N[F];for(let V=j;V<=I;V++)O=Math.max(O,B[V].cell.__rowSpan),U=Math.max(U,K[V].cell.__rowSpan);for(let V=z;V<=F;V++)P=Math.max(P,N[V][j].cell.__colSpan),W=Math.max(W,N[V][I].cell.__colSpan);return{bottomSpan:U,leftSpan:P,rightSpan:W,topSpan:O}})(t,s),{topSpan:a,leftSpan:l,bottomSpan:u,rightSpan:f}=o,p=(function(N,M){const j=dA(N,M);return j===null&&It(249,M.cell.getKey()),j})(s,n),[m,g]=ow(p);let b=s[m],y=s[g];i==="forward"?b+=m==="maxColumn"?1:l:i==="backward"?b-=m==="minColumn"?1:f:i==="down"?y+=g==="maxRow"?1:a:i==="up"&&(y-=g==="minRow"?1:u);const x=t[y];if(x===void 0)return!1;const w=x[b];if(w===void 0)return!1;const[k,C]=(function(N,M,j){const I=A1(N,M,j),z=dA(I,M);if(z)return[Om(N,I,z),Om(N,I,ow(z))];const F=dA(I,j);if(F)return[Om(N,I,ow(F)),Om(N,I,F)];const O=["minColumn","minRow"];return[Om(N,I,O),Om(N,I,ow(O))]})(t,n,w),E=Oh(e,k.cell),A=Oh(e,C.cell);return e.$setAnchorCellForSelection(E),e.$setFocusCellForSelection(A,!0),!0}function Jc(e,t){if(Ne(e)||xr(e)){const n=t.isParentOf(e.anchor.getNode()),r=t.isParentOf(e.focus.getNode());return n&&r}return!1}function aw(e,t){t?e.selectStart():e.selectEnd()}function Oee(e,t){const n=t.elem,r=e._config.theme;_t(Ys(n))||It(131),ii(n,r.tableCellSelected)}function Iee(e,t){const n=t.elem;_t(Ys(n))||It(131);const r=e._config.theme;rc(n,r.tableCellSelected)}function oy(e){const t=Yt(e,_t);return _t(t)?t:null}function lv(e){const t=Yt(e,_r);return _r(t)?t:null}function qIe(e,t,n,r,i,s,o){const a=Oa(n.focus,i?"previous":"next");if(XL(a))return!1;let l=a;for(const x of $x(a).iterNodeCarets("shadowRoot")){if(!ja(x)||!be(x.origin))return!1;l=x}const u=l.getParentAtCaret();if(!_t(u))return!1;const f=u,p=(function(x){for(const w of $x(x).iterNodeCarets("root")){const{origin:k}=w;if(_t(k)){if(Ns(w))return Ri(k,x.direction)}else if(!vr(k))break}return null})(ar(f,l.direction)),m=Yt(f,_r);if(!m||!m.is(s))return!1;const g=e.getElementByKey(f.getKey()),b=R1(g);if(!g||!b)return!1;const y=XIe(e,m);if(o.table=y,p)if(r==="extend"){const x=R1(e.getElementByKey(p.origin.getKey()));if(!x)return!1;o.$setAnchorCellForSelection(b),o.$setFocusCellForSelection(x,!0)}else{const x=Ti(p);Ca(n.anchor,x),Ca(n.focus,x)}else if(r==="extend")o.$setAnchorCellForSelection(b),o.$setFocusCellForSelection(b,!0);else{const x=(function(w){const k=mp(w);return Ns(k)?Ti(k):w})(ar(m,a.direction));Ca(n.anchor,x),Ca(n.focus,x)}return su(t),!0}function Pee(e,t,n,r,i,s){if((n==="up"||n==="down")&&(function(a){const l=a.getRootElement();return l?l.hasAttribute("aria-controls")&&l.getAttribute("aria-controls")==="typeahead-menu":!1})(e))return!1;const o=ze();if(!Jc(o,r)){if(Ne(o)){if(n==="backward"){if(o.focus.offset>0)return!1;const a=(function(u){for(let f=u,p=u;p!==null;f=p,p=p.getParent())if(be(p)){if(p!==f&&p.getFirstChild()!==f)return null;if(!p.isInline())return p}return null})(o.focus.getNode());if(!a)return!1;const l=a.getPreviousSibling();return!!_r(l)&&(su(t),t.shiftKey?o.focus.set(l.getParentOrThrow().getKey(),l.getIndexWithinParent(),"element"):l.selectEnd(),!0)}if(t.shiftKey&&(n==="up"||n==="down")){const a=o.focus.getNode();if(!o.isCollapsed()&&(n==="up"&&!o.isBackward()||n==="down"&&o.isBackward())){let l=Yt(a,g=>_r(g));if(_t(l)&&(l=Yt(l,_r)),l!==r||!l)return!1;const u=n==="down"?l.getNextSibling():l.getPreviousSibling();if(!u)return!1;let f=0;n==="up"&&be(u)&&(f=u.getChildrenSize());let p=u;n==="up"&&be(u)&&(p=u.getLastChild()||u,f=Ie(p)?p.getTextContentSize():0);const m=o.clone();return m.focus.set(p.getKey(),f,Ie(p)?"text":"element"),Sr(m),su(t),!0}if(Zi(a)){const l=n==="up"?o.getNodes()[o.getNodes().length-1]:o.getNodes()[0];if(l&&Hx(r,l)!==null){const u=r.getFirstDescendant(),f=r.getLastDescendant();if(!u||!f)return!1;const[p]=Yl(u),[m]=Yl(f),g=r.getCordsFromCellNode(p,i.table),b=r.getCordsFromCellNode(m,i.table),y=r.getDOMCellFromCordsOrThrow(g.x,g.y,i.table),x=r.getDOMCellFromCordsOrThrow(b.x,b.y,i.table);return i.$setAnchorCellForSelection(y),i.$setFocusCellForSelection(x,!0),!0}return!1}{let l=Yt(a,f=>be(f)&&!f.isInline());if(_t(l)&&(l=Yt(l,_r)),!l)return!1;const u=n==="down"?l.getNextSibling():l.getPreviousSibling();if(_r(u)&&i.tableNodeKey===u.getKey()){const f=u.getFirstDescendant(),p=u.getLastDescendant();if(!f||!p)return!1;const[m]=Yl(f),[g]=Yl(p),b=o.clone();return b.focus.set((n==="up"?m:g).getKey(),n==="up"?0:g.getChildrenSize(),"element"),su(t),Sr(b),!0}}}}return n==="down"&&M1(e)&&s.setShouldCheckSelectionForTable(r.getKey()),!1}if(Ne(o)){if(n==="backward"||n==="forward")return qIe(e,t,o,t.shiftKey?"extend":"move",n==="backward",r,i);if(o.isCollapsed()){const{anchor:a,focus:l}=o,u=Yt(a.getNode(),_t),f=Yt(l.getNode(),_t);if(!_t(u)||!u.is(f))return!1;const p=lv(u);if(p!==r&&p!=null){const k=Mu(p,e.getElementByKey(p.getKey()));if(k!=null)return i.table=Sg(p,k),Pee(e,t,n,p,i,s)}const m=e.getElementByKey(u.__key),g=e.getElementByKey(a.key);if(g==null||m==null)return!1;let b;if(a.type==="element")b=g.getBoundingClientRect();else{const k=ts(gE(e));if(k===null||k.rangeCount===0)return!1;b=k.getRangeAt(0).getBoundingClientRect()}const y=n==="up"?u.getFirstChild():u.getLastChild();if(y==null)return!1;const x=e.getElementByKey(y.__key);if(x==null)return!1;const w=x.getBoundingClientRect();if(n==="up"?w.top>b.top-b.height:b.bottom+b.height>w.bottom){su(t);const k=r.getCordsFromCellNode(u,i.table);if(!t.shiftKey)return KIe(i,r,k.x,k.y,n);{const C=r.getDOMCellFromCordsOrThrow(k.x,k.y,i.table);i.$setAnchorCellForSelection(C),i.$setFocusCellForSelection(C,!0)}return!0}}}else if(xr(o)){const{anchor:a,focus:l,tableKey:u}=o;if(u!==r.getKey())return!1;const f=Yt(a.getNode(),_t),p=Yt(l.getNode(),_t),[m]=o.getNodes();_r(m)||It(251);const g=Mu(m,e.getElementByKey(m.getKey()));if(!_t(f)||!_t(p)||!_r(m)||g==null)return!1;i.$updateTableTableSelection(o);const b=Sg(m,g),y=r.getCordsFromCellNode(f,b),x=r.getDOMCellFromCordsOrThrow(y.x,y.y,b);if(i.$setAnchorCellForSelection(x),su(t),t.shiftKey){const[w,k,C]=Ia(r,f,p);return GIe(i,w,k,C,n)}return p.selectEnd(),!0}return!1}function su(e){e.preventDefault(),e.stopImmediatePropagation(),e.stopPropagation()}function zU(e,t,n){const r=Ft();e==="first"?t.insertBefore(r):t.insertAfter(r),r.append(...n||[]),r.selectEnd()}function FU(e,t,n){const r=n.getParent();if(!r)return;const i=ts(gE(e));if(!i)return;const s=i.anchorNode,o=e.getElementByKey(r.getKey()),a=Mu(n,e.getElementByKey(n.getKey()));if(!s||!o||!a||!o.contains(s)||a.contains(s))return;const l=Yt(t.anchor.getNode(),k=>_t(k));if(!l)return;const u=Yt(l,k=>_r(k));if(!_r(u)||!u.is(n))return;const[f,p]=Ia(n,l,l),m=f[0][0],g=f[f.length-1][f[0].length-1],{startRow:b,startColumn:y}=p,x=b===m.startRow&&y===m.startColumn,w=b===g.startRow&&y===g.startColumn;return x?"first":w?"last":void 0}function Oh(e,t){const{tableNode:n}=e.$lookup(),r=n.getCordsFromCellNode(t,e.table);return n.getDOMCellFromCordsOrThrow(r.x,r.y,e.table)}function Mj(e,t,n){return Hx(e,Ys(t,n))}function BU(e,t,n){const r=e.querySelector("colgroup");if(!r)return;const i=[];for(let s=0;s<t;s++){const o=document.createElement("col"),a=n&&n[s];a&&(o.style.width=`${a}px`),i.push(o)}r.replaceChildren(...i)}function UU(e,t,n){if(!t.theme.tableAlignment)return;const r=[],i=[];for(const s of["center","right"]){const o=t.theme.tableAlignment[s];o&&(s===n?i:r).push(o)}rc(e,...r),ii(e,...i)}const jj=new WeakSet;function M1(e=Nr()){return jj.has(e)}function YIe(e,t){t?jj.add(e):jj.delete(e)}let ju=class Lee extends es{constructor(n){super(n);H(this,"__rowStriping");H(this,"__frozenColumnCount");H(this,"__frozenRowCount");H(this,"__colWidths");this.__rowStriping=!1,this.__frozenColumnCount=0,this.__frozenRowCount=0,this.__colWidths=void 0}static getType(){return"table"}getColWidths(){return this.getLatest().__colWidths}setColWidths(n){const r=this.getWritable();return r.__colWidths=n,r}static clone(n){return new Lee(n.__key)}afterCloneFrom(n){super.afterCloneFrom(n),this.__colWidths=n.__colWidths,this.__rowStriping=n.__rowStriping,this.__frozenColumnCount=n.__frozenColumnCount,this.__frozenRowCount=n.__frozenRowCount}static importDOM(){return{table:n=>({conversion:QIe,priority:1})}}static importJSON(n){return W_().updateFromJSON(n)}updateFromJSON(n){return super.updateFromJSON(n).setRowStriping(n.rowStriping||!1).setFrozenColumns(n.frozenColumnCount||0).setFrozenRows(n.frozenRowCount||0).setColWidths(n.colWidths)}exportJSON(){return{...super.exportJSON(),colWidths:this.getColWidths(),frozenColumnCount:this.__frozenColumnCount?this.__frozenColumnCount:void 0,frozenRowCount:this.__frozenRowCount?this.__frozenRowCount:void 0,rowStriping:this.__rowStriping?this.__rowStriping:void 0}}extractWithChild(n,r,i){return i==="html"}getDOMSlot(n){const r=kh(n)?n:n.querySelector("table");return kh(r)||It(229),super.getDOMSlot(n).withElement(r).withAfter(r.querySelector("colgroup"))}createDOM(n,r){const i=document.createElement("table");this.__style&&lf(i.style,this.__style);const s=document.createElement("colgroup");if(i.appendChild(s),sMe(s),ii(i,n.theme.table),this.updateTableElement(null,i,n),M1(r)){const o=document.createElement("div"),a=n.theme.tableScrollableWrapper;return a?ii(o,a):o.style.overflowX="auto",o.appendChild(i),this.updateTableWrapper(null,o,i,n),o}return i}updateTableWrapper(n,r,i,s){this.__frozenColumnCount!==(n?n.__frozenColumnCount:0)&&(function(o,a,l,u){u>0?(ii(o,l.theme.tableFrozenColumn),a.setAttribute("data-lexical-frozen-column","true")):(rc(o,l.theme.tableFrozenColumn),a.removeAttribute("data-lexical-frozen-column"))})(r,i,s,this.__frozenColumnCount),this.__frozenRowCount!==(n?n.__frozenRowCount:0)&&(function(o,a,l,u){u>0?(ii(o,l.theme.tableFrozenRow),a.setAttribute("data-lexical-frozen-row","true")):(rc(o,l.theme.tableFrozenRow),a.removeAttribute("data-lexical-frozen-row"))})(r,i,s,this.__frozenRowCount)}updateTableElement(n,r,i){this.__style!==(n?n.__style:"")&&lf(r.style,this.__style,n?n.__style:""),this.__rowStriping!==(!!n&&n.__rowStriping)&&(function(a,l,u){u?(ii(a,l.theme.tableRowStriping),a.setAttribute("data-lexical-row-striping","true")):(rc(a,l.theme.tableRowStriping),a.removeAttribute("data-lexical-row-striping"))})(r,i,this.__rowStriping);const s=n?n.getColumnCount():0,o=n?n.__colWidths:void 0;this.getColumnCount()===s&&this.getColWidths()===o||BU(r,this.getColumnCount(),this.getColWidths()),UU(r,i,this.getFormatType())}updateDOM(n,r,i){const s=Mu(this,r);return r===s===M1()||(Pt(o=r)&&o.nodeName==="DIV"&&this.updateTableWrapper(n,r,s,i),this.updateTableElement(n,s,i),!1);var o}scaleDOMColWidths(n,r){const i=this.getColWidths();i&&BU(Mu(this,n),this.getColumnCount(),i.map(s=>s*r))}exportDOM(n){const r=super.exportDOM(n),{element:i}=r;return{after:s=>{if(r.after&&(s=r.after(s)),!kh(s)&&Pt(s)&&(s=s.querySelector("table")),!kh(s))return null;UU(s,n._config,this.getFormatType());const[o]=fu(this,null,null),a=new Map;for(const p of o)for(const m of p){const g=m.cell.getKey();a.has(g)||a.set(g,{colSpan:m.cell.getColSpan(),startColumn:m.startColumn})}const l=new Set;for(const p of s.querySelectorAll(":scope > tr > [data-temporary-table-cell-lexical-key]")){const m=p.getAttribute("data-temporary-table-cell-lexical-key");if(m){const g=a.get(m);if(p.removeAttribute("data-temporary-table-cell-lexical-key"),g){a.delete(m);for(let b=0;b<g.colSpan;b++)l.add(b+g.startColumn)}}}const u=s.querySelector(":scope > colgroup");if(u){const p=Array.from(s.querySelectorAll(":scope > colgroup > col")).filter((m,g)=>l.has(g));u.replaceChildren(...p)}const f=s.querySelectorAll(":scope > tr");if(f.length>0){const p=document.createElement("tbody");for(const m of f)p.appendChild(m);s.append(p)}return s},element:!kh(i)&&Pt(i)?i.querySelector("table"):i}}canBeEmpty(){return!1}isShadowRoot(){return!0}getCordsFromCellNode(n,r){const{rows:i,domRows:s}=r;for(let o=0;o<i;o++){const a=s[o];if(a!=null)for(let l=0;l<a.length;l++){const u=a[l];if(u==null)continue;const{elem:f}=u,p=Mj(this,f);if(p!==null&&n.is(p))return{x:l,y:o}}}throw new Error("Cell not found in table.")}getDOMCellFromCords(n,r,i){const{domRows:s}=i,o=s[r];if(o==null)return null;const a=o[n<o.length?n:o.length-1];return a??null}getDOMCellFromCordsOrThrow(n,r,i){const s=this.getDOMCellFromCords(n,r,i);if(!s)throw new Error("Cell not found at cords.");return s}getCellNodeFromCords(n,r,i){const s=this.getDOMCellFromCords(n,r,i);if(s==null)return null;const o=Ys(s.elem);return _t(o)?o:null}getCellNodeFromCordsOrThrow(n,r,i){const s=this.getCellNodeFromCords(n,r,i);if(!s)throw new Error("Node at cords not TableCellNode.");return s}getRowStriping(){return!!this.getLatest().__rowStriping}setRowStriping(n){const r=this.getWritable();return r.__rowStriping=n,r}setFrozenColumns(n){const r=this.getWritable();return r.__frozenColumnCount=n,r}getFrozenColumns(){return this.getLatest().__frozenColumnCount}setFrozenRows(n){const r=this.getWritable();return r.__frozenRowCount=n,r}getFrozenRows(){return this.getLatest().__frozenRowCount}canSelectBefore(){return!0}canIndent(){return!1}getColumnCount(){const n=this.getFirstChild();if(!n)return 0;let r=0;return n.getChildren().forEach(i=>{_t(i)&&(r+=i.getColSpan())}),r}};function XIe(e,t){const n=e.getElementByKey(t.getKey());return n===null&&It(230),Sg(t,n)}function QIe(e){const t=W_();e.hasAttribute("data-lexical-row-striping")&&t.setRowStriping(!0),e.hasAttribute("data-lexical-frozen-column")&&t.setFrozenColumns(1),e.hasAttribute("data-lexical-frozen-row")&&t.setFrozenRows(1);const n=e.querySelector(":scope > colgroup");if(n){let r=[];for(const i of n.querySelectorAll(":scope > col")){let s=i.style.width||"";if(!xg.test(s)&&(s=i.getAttribute("width")||"",!/^\d+$/.test(s))){r=void 0;break}r.push(parseFloat(s))}r&&t.setColWidths(r)}return{after:r=>C1(r,vr),node:t}}function W_(){return vi(new ju)}function _r(e){return e instanceof ju}function JIe(e){vr(e.getParent())?e.isEmpty()&&e.append(Ft()):e.remove()}function ZIe(e){_r(e.getParent())?oZ(e,_t):e.remove()}function ePe(e){oZ(e,vr);const[t]=fu(e,null,null),n=t.reduce((o,a)=>Math.max(o,a.length),0),r=e.getChildren();for(let o=0;o<t.length;++o){const a=r[o];if(!a)continue;vr(a)||It(254,a.constructor.name,a.getType());const l=t[o].reduce((u,f)=>f?1+u:u,0);if(l!==n)for(let u=l;u<n;++u){const f=xo();f.append(Ft()),a.append(f)}}const i=e.getColWidths(),s=e.getColumnCount();if(i&&i.length!==s){let o;if(s<i.length)o=i.slice(0,s);else if(i.length>0){const a=i[i.length-1];o=[...i,...Array(s-i.length).fill(a)]}e.setColWidths(o)}}function tPe(e){if(e.detail<3||!ml(e.target))return!1;const t=Ys(e.target);if(t===null)return!1;const n=Yt(t,r=>be(r)&&!r.isInline());return n===null?!1:!!_t(n.getParent())&&(n.select(0),!0)}function nPe(){const e=ze();if(!Ne(e))return!1;const t=lv(e.anchor.getNode());if(t===null)return!1;const n=Fn();if(!n.is(t.getParent())||n.getChildrenSize()!==1)return!1;const[r]=fu(t,null,null);if(r.length===0||r[0].length===0)return!1;const i=r[0][0];if(!i||!i.cell)return!1;const s=r[r.length-1],o=s[s.length-1];if(!o||!o.cell)return!1;const a=Aj(t,i.cell,o.cell);return Sr(a),!0}function rPe(e){return e.registerNodeTransform(uc,t=>{if(t.getColSpan()>1||t.getRowSpan()>1){const[,,n]=Yl(t),[r]=Ia(n,t,t),i=r.length,s=r[0].length;let o=n.getFirstChild();vr(o)||It(175);const a=[];for(let l=0;l<i;l++){l!==0&&(o=o.getNextSibling(),vr(o)||It(175));let u=null;for(let f=0;f<s;f++){const p=r[l][f],m=p.cell;if(p.startRow===l&&p.startColumn===f)u=m,a.push(m);else if(m.getColSpan()>1||m.getRowSpan()>1){_t(m)||It(176);const g=xo(m.__headerState);u!==null?u.insertAfter(g):CMe(o,g)}}}for(const l of a)l.setColSpan(1),l.setRowSpan(1)}})}function iPe(e,t=!0){const n=new DIe,r=(i,s,o)=>{const a=Mu(i,o),l=HIe(i,a,e,t,n);n.observers.set(s,[l,a])};return Mi(UIe(e,n),e.registerCommand(Gl,()=>WIe(n,e),xs),e.registerMutationListener(ju,i=>{e.getEditorState().read(()=>{for(const[s,o]of i){const a=n.observers.get(s);if(o==="created"||o==="updated"){const{tableNode:l,tableElement:u}=jee(s);a===void 0?r(l,s,u):u!==a[1]&&(a[0].removeListeners(),n.observers.delete(s),r(l,s,u))}else o==="destroyed"&&a!==void 0&&(a[0].removeListeners(),n.observers.delete(s))}},{editor:e})},{skipInitialization:!1}),()=>{for(const[,[i]]of n.observers)i.removeListeners()})}function sPe(e,t){e.hasNodes([ju])||It(255);const{hasNestedTables:n=Ru(!1)}=t??{};return Mi(e.registerCommand(kIe,r=>(function({rows:i,columns:s,includeHeaders:o},a){const l=ze()||bo();if(!l||!Ne(l)||!a&&lv(l.anchor.getNode()))return!1;const u=NIe(Number(i),Number(s),o);sZ(u);const f=u.getFirstDescendant();return Ie(f)&&f.select(),!0})(r,n.peek()),qt),e.registerCommand(FQ,(r,i)=>e===i&&(function(s,o){const{nodes:a,selection:l}=s;if(!a.some(p=>_r(p)||vMe(p).some(m=>_r(m.node))))return!1;const u=xr(l),f=Ne(l);return f&&Yt(l.anchor.getNode(),p=>_t(p))!==null&&Yt(l.focus.getNode(),p=>_t(p))!==null||u?a.length===1&&_r(a[0])?(function(p,m){const g=m.getStartEndPoints(),b=xr(m);if(g===null)return!1;const[y,x]=g,[w,k,C]=Yl(y),E=Yt(x.getNode(),Q=>_t(Q));if(!(_t(w)&&_t(E)&&vr(k)&&_r(C)))return!1;const[A,N,M]=Ia(C,w,E),[j]=fu(p,null,null),I=A.length,z=I>0?A[0].length:0;let F=N.startRow,O=N.startColumn,P=j.length,W=P>0?j[0].length:0;if(b){const Q=A1(A,N,M),ae=Q.maxRow-Q.minRow+1,re=Q.maxColumn-Q.minColumn+1;F=Q.minRow,O=Q.minColumn,P=Math.min(P,ae),W=Math.min(W,re)}let U=!1;const B=Math.min(I,F+P)-1,K=Math.min(z,O+W)-1,V=new Set;for(let Q=F;Q<=B;Q++)for(let ae=O;ae<=K;ae++){const re=A[Q][ae];V.has(re.cell.getKey())||re.cell.__rowSpan===1&&re.cell.__colSpan===1||(IIe(re.cell),V.add(re.cell.getKey()),U=!0)}let[Y]=fu(C.getWritable(),null,null);const G=P-I+F;for(let Q=0;Q<G;Q++)AIe(Y[I-1][0].cell);const D=W-z+O;for(let Q=0;Q<D;Q++)RIe(Y[0][z-1].cell,!0,!1);[Y]=fu(C.getWritable(),null,null);for(let Q=F;Q<F+P;Q++)for(let ae=O;ae<O+W;ae++){const re=Q-F,he=ae-O,ue=j[re][he];if(ue.startRow!==re||ue.startColumn!==he)continue;const ce=ue.cell;if(ce.__rowSpan!==1||ce.__colSpan!==1){const te=[],we=Math.min(Q+ce.__rowSpan,F+P)-1,se=Math.min(ae+ce.__colSpan,O+W)-1;for(let Pe=Q;Pe<=we;Pe++)for(let Fe=ae;Fe<=se;Fe++){const ht=Y[Pe][Fe];te.push(ht.cell)}jIe(te),U=!0}const{cell:ge}=Y[Q][ae],ne=ce.getBackgroundColor();ne!=null&&ge.setBackgroundColor(ne);const le=ge.getChildren();ce.getChildren().forEach(te=>{Ie(te)&&Ft().append(te),ge.append(te)}),le.forEach(te=>te.remove())}if(b&&U){const[Q]=fu(C.getWritable(),null,null);Q[N.startRow][N.startColumn].cell.selectEnd()}return!0})(a[0],l):!(f&&o.peek()&&!(function(p){return!!(xr(p)&&!p.focus.getNode().is(p.anchor.getNode())||Ne(p)&&_t(p.anchor.getNode())&&!p.anchor.getNode().is(p.focus.getNode()))})(l)):!1})(r,n),qt),e.registerCommand(kL,nPe,Sa),e.registerCommand(Vk,tPe,qt),e.registerNodeTransform(ju,ePe),e.registerNodeTransform(zp,ZIe),e.registerNodeTransform(uc,JIe))}const oPe={build:(e,t,n)=>Wu(t),config:{hasCellBackgroundColor:!0,hasCellMerge:!0,hasHorizontalScroll:!0,hasNestedTables:!1,hasTabHandler:!0},name:"@lexical/table/Table",nodes:()=>[ju,zp,uc],register(e,t,n){const r=n.getOutput();return Mi(ps(()=>{const i=r.hasHorizontalScroll.value;M1(e)!==i&&(YIe(e,i),e.update(PRe))}),sPe(e,r),ps(()=>iPe(e,r.hasTabHandler.value)),ps(()=>r.hasCellMerge.value?void 0:rPe(e)),ps(()=>r.hasCellBackgroundColor.value?void 0:e.registerNodeTransform(uc,i=>{i.getBackgroundColor()!==null&&i.setBackgroundColor(null)})))}};function aPe(e){const t=[];let n=null;const r=()=>{if(n!==null){const i=n.getFirstChild();gi(i)&&n.getChildrenSize()===1&&i.remove()}};for(const i of e)HJ(i)||Ie(i)||gi(i)?n!==null?n.append(i):(n=Ft().append(i),t.push(n)):(r(),t.push(i),n=null);return r(),t.length===0&&t.push(Ft()),t}const lPe=[{$import:(e,t)=>{const n=W_();t.hasAttribute("data-lexical-row-striping")&&n.setRowStriping(!0),t.hasAttribute("data-lexical-frozen-column")&&n.setFrozenColumns(1),t.hasAttribute("data-lexical-frozen-row")&&n.setFrozenRows(1);const r=t.querySelector(":scope > colgroup");if(r){let i=[];for(const s of r.querySelectorAll(":scope > col")){let o=s.style.width||"";if(!xg.test(o)&&(o=s.getAttribute("width")||"",!/^\d+$/.test(o))){i=void 0;break}i.push(parseFloat(o))}i&&n.setColWidths(i)}return[n.splice(0,0,C1(e.$importChildren(t),vr))]},match:mi.tag("table"),name:"@lexical/table/table"},{$import:(e,t)=>[yf(xg.test(t.style.height)?parseFloat(t.style.height):void 0).splice(0,0,C1(e.$importChildren(t),_t))],match:mi.tag("tr"),name:"@lexical/table/tr"},{$import:(e,t)=>{const n=t.nodeName==="TH",r=xg.test(t.style.width)?parseFloat(t.style.width):void 0;let i=In.NO_STATUS;if(n){const b=t.getAttribute("scope");if(b==="col")i=In.COLUMN;else if(b==="row")i=In.ROW;else{const y=t.parentElement,x=ZRe(y)&&(y.parentElement&&y.parentElement.nodeName==="THEAD"||y.rowIndex===0),w=t.cellIndex===0;x&&(i|=In.ROW),w&&(i|=In.COLUMN),i===In.NO_STATUS&&(i=In.ROW)}}const s=xo(i,t.colSpan,r);s.__rowSpan=t.rowSpan;const o=t.style.backgroundColor;o!==""&&(s.__backgroundColor=o);const a=t.style.verticalAlign;(function(b){return b==="middle"||b==="bottom"})(a)&&(s.__verticalAlign=a);const l=e.get(Bx),u=l|(function(b){let y=0;const x=b.fontWeight;x!=="700"&&x!=="bold"||(y|=Ex),b.fontStyle==="italic"&&(y|=Nx);const w=(b.textDecoration||"").split(" ");return w.includes("underline")&&(y|=OM),w.includes("line-through")&&(y|=Tx),y})(t.style),f=e.get(fj),p=t.style.color,m=p?{...f,color:p}:f,g=[];return u!==l&&g.push(sv(Bx,u)),m!==f&&g.push(sv(fj,m)),[s.splice(0,0,aPe(e.$importChildren(t,{context:g})))]},match:mi.tag("td","th"),name:"@lexical/table/cell"}];Hu(jf,{rules:lPe});function Oj(e){const t=e.trim(),n=t.startsWith("|")?t.slice(1):t;return(n.endsWith("|")?n.slice(0,-1):n).split("|").map(i=>i.trim())}function cPe(e){const t=Oj(e);return t.length>0&&t.every(n=>/^:?-+:?$/.test(n.trim())&&n.trim().length>=1)}const uPe={type:"multiline-element",dependencies:[ju,zp,uc],regExpStart:/^\|?[^|]*\|.*$/,regExpEnd:{optional:!0,regExp:/^\x00$/},handleImportAfterStartMatch({lines:e,rootNode:t,startLineIndex:n}){const r=e[n];if(r===void 0)return null;const i=e[n+1];if(i===void 0||!cPe(i))return null;const s=Oj(r),o=s.length,a=[];let l=n+1;for(let p=n+2;p<e.length;p++){const m=e[p];if(m===void 0||!m.trim().includes("|")&&m.trim()!==""||m.trim()==="")break;a.push(Oj(m)),l=p}const u=W_(),f=yf();for(let p=0;p<o;p++){const m=xo(In.ROW),g=Ft(),b=s[p]??"";g.append(Yn(b)),m.append(g),f.append(m)}u.append(f);for(const p of a){const m=yf();for(let g=0;g<o;g++){const b=xo(In.NO_STATUS),y=Ft(),x=p[g]??"";y.append(Yn(x)),b.append(y),m.append(b)}u.append(m)}return t.append(u),[!0,l]},replace(e,t,n,r,i,s){return!1},export(e,t){if(!_r(e))return null;const n=e.getChildren();if(n.length===0)return null;const r=[];return n.forEach((i,s)=>{if(!vr(i))return;const o=i.getChildren(),a=o.map(l=>_t(l)?t(l).trim():"");r.push(`| ${a.join(" | ")} |`),s===0&&r.push(`| ${o.map(()=>"---").join(" | ")} |`)}),r.join(`
2686
2686
  `)}},Dee=[uPe,JOe,...kee],dPe={paragraph:"break-words mt-5 mb-3 first:mt-0 last:mb-0",quote:"my-2 mt-5 mb-3 first:mt-0 last:mb-0 border-l-2 border-border/80 pl-2 text-muted-foreground",heading:{h1:"text-[20px] font-normal leading-tight mt-5 mb-3 first:mt-0 last:mb-0",h2:"text-[18px] font-normal leading-tight mt-5 mb-3 first:mt-0 last:mb-0",h3:"text-[16px] font-normal leading-tight mt-5 mb-3 first:mt-0 last:mb-0",h4:"text-[16px] font-normal leading-tight mt-5 mb-3 first:mt-0 last:mb-0",h5:"text-[16px] font-normal leading-tight mt-5 mb-3 first:mt-0 last:mb-0",h6:"text-[16px] font-normal leading-tight mt-5 mb-3 first:mt-0 last:mb-0"},list:{ul:"list-disc ml-5 my-2",ol:"list-decimal ml-5 my-2",listitem:"my-0.5",nested:{listitem:"list-none"}},link:"text-primary underline underline-offset-2",text:{bold:"font-semibold",italic:"italic",strikethrough:"line-through",code:"break-all px-1 bg-border/60 py-0.5 rounded text-sm"},code:"block text-xs whitespace-pre"};function fPe(e){throw e}function lD(e){return{namespace:e.namespace,theme:dPe,nodes:[...e.nodes],editable:e.editable??!0,onError:fPe}}function hPe(e,t){var n,r,i,s,o,a,l,u,f,p,m,g,b;return{...e,...t,terminal:{...e.terminal,...t.terminal},editor:{...e.editor,...t.editor},providerDefaults:{claude:{...e.providerDefaults.claude,...(n=t.providerDefaults)==null?void 0:n.claude,modelOptions:{...e.providerDefaults.claude.modelOptions,...(i=(r=t.providerDefaults)==null?void 0:r.claude)==null?void 0:i.modelOptions}},codex:{...e.providerDefaults.codex,...(s=t.providerDefaults)==null?void 0:s.codex,modelOptions:{...e.providerDefaults.codex.modelOptions,...(a=(o=t.providerDefaults)==null?void 0:o.codex)==null?void 0:a.modelOptions}},openrouter:{...e.providerDefaults.openrouter,...(l=t.providerDefaults)==null?void 0:l.openrouter,modelOptions:{}}},cloudflareTunnel:{...e.cloudflareTunnel,...t.cloudflareTunnel},claudeAuth:{tokens:((u=t.claudeAuth)==null?void 0:u.tokens)??e.claudeAuth.tokens,concurrencyDefault:((f=t.claudeAuth)==null?void 0:f.concurrencyDefault)??e.claudeAuth.concurrencyDefault},auth:{...e.auth,...t.auth},uploads:{...e.uploads,...t.uploads},subagents:e.subagents,customMcpServers:e.customMcpServers,customModels:e.customModels,textSnippets:e.textSnippets,claudeDriver:{preference:((p=t.claudeDriver)==null?void 0:p.preference)??e.claudeDriver.preference,lifecycle:{...e.claudeDriver.lifecycle,...(m=t.claudeDriver)==null?void 0:m.lifecycle}},globalPromptAppend:t.globalPromptAppend??e.globalPromptAppend,subagentRuntime:{runTimeoutMs:((g=t.subagentRuntime)==null?void 0:g.runTimeoutMs)??e.subagentRuntime.runTimeoutMs,defaultLoopSubagentId:((b=t.subagentRuntime)==null?void 0:b.defaultLoopSubagentId)!==void 0?t.subagentRuntime.defaultLoopSubagentId:e.subagentRuntime.defaultLoopSubagentId}}}const Hr=tr()(e=>({settings:null,hydrationStatus:"idle",setHydrationStatus:t=>e({hydrationStatus:t}),setFromServer:t=>e({settings:t,hydrationStatus:"ready"}),applyOptimisticPatch:t=>e(n=>({settings:n.settings?hPe(n.settings,t):n.settings}))})),pPe=[],mPe=e=>{var t;return((t=e.settings)==null?void 0:t.customMcpServers)??pPe},gPe=[],V_=e=>{var t;return((t=e.settings)==null?void 0:t.customModels)??gPe},vPe=[],$ee=e=>{var t;return((t=e.settings)==null?void 0:t.textSnippets)??vPe},zee=_.createContext(void 0),bPe=e=>e==="light"||e==="dark"||e==="system";function yPe(e){return e==="dark"?"black-translucent":"default"}function HU(e,t,n){n.upsertHeadMeta(e,t)}function WU(e,t=Et){const n=t.getComputedBackgroundColor();n&&HU("theme-color",n,t),HU("apple-mobile-web-app-status-bar-style",yPe(e),t),t.setDocumentElementColorScheme(e)}const aC=(e=Et)=>e.matchesMediaQuery("(prefers-color-scheme: dark)")?"dark":"light",VU=(e,t=Et)=>{const n=e==="system"?aC(t):e;t.toggleDocumentElementClass("dark",n==="dark")},xPe=()=>{var t;const e=(t=Hr.getState().settings)==null?void 0:t.theme;return e&&bPe(e)?e:"system"};function _Pe({children:e,dom:t=Et}){const n=Hr(a=>{var l;return(l=a.settings)==null?void 0:l.theme}),r=Hr(a=>a.applyOptimisticPatch),[i,s]=_.useState(xPe);_.useEffect(()=>{!n||n===i||s(n)},[n,i]),_.useEffect(()=>{VU(i,t)},[i,t]),_.useEffect(()=>{const a=i==="system"?aC(t):i;WU(a,t)},[i,t]),_.useEffect(()=>{if(i==="system")return t.addMediaQueryListener("(prefers-color-scheme: dark)",()=>{VU("system",t),WU(aC(t),t)})},[i,t]);const o=_.useMemo(()=>{const a=i==="system"?aC(t):i;return{theme:i,resolvedTheme:a,setTheme:l=>{s(l),r({theme:l})}}},[r,i,t]);return c.jsx(zee.Provider,{value:o,children:e})}function vE(){const e=_.useContext(zee);if(!e)throw new Error("useTheme must be used within ThemeProvider");return e}const Ij=en("HighlightedCode",()=>e=>({highlighted:null,setHighlighted:t=>e({highlighted:t})})),SPe=200*1024,wPe={ts:"typescript",typescript:"typescript",tsx:"tsx",js:"javascript",javascript:"javascript",jsx:"jsx",py:"python",python:"python",go:"go",golang:"go",rs:"rust",rust:"rust",java:"java",rb:"ruby",ruby:"ruby",sh:"bash",bash:"bash",zsh:"bash",shell:"bash",yml:"yaml",yaml:"yaml",css:"css",scss:"scss",html:"html",xml:"xml",json:"json",json5:"json5",md:"markdown",markdown:"markdown",sql:"sql",cpp:"cpp","c++":"cpp",c:"c",h:"c",swift:"swift",kt:"kotlin",kotlin:"kotlin",php:"php",toml:"toml",dockerfile:"dockerfile",diff:"diff",patch:"diff",vue:"vue",svelte:"svelte"};function CPe(e){return wPe[e.toLowerCase()]??null}const kPe=/^<pre[^>]*>/,EPe=/<\/pre>\s*$/,NPe=/^<code[^>]*>/,TPe=/<\/code>\s*$/;function APe(e){return e.replace(kPe,"").replace(EPe,"").replace(NPe,"").replace(TPe,"")}function RPe({source:e,lang:t}){const{resolvedTheme:n}=vE(),r=n==="dark"?"github-dark":"github-light",i=CPe(t),s=i!==null&&e.length<=SPe,o=Ij.useScopedStore(f=>f.highlighted),a=Ij.useScopedStore(f=>f.setHighlighted);_.useEffect(()=>{if(!s||i===null)return;let f=!1;return Z(()=>Promise.resolve().then(()=>XX),void 0).then(async p=>{if(f)return;const m=await p.codeToHtml(e,{lang:i,theme:r});f||a({source:e,theme:r,lang:i,html:APe(m)})}).catch(()=>{vo.warn("[transcript] Shiki unavailable; falling back to plain code")}),()=>{f=!0}},[s,e,i,r,a]);const l=i??t.toLowerCase();return o!==null&&o.source===e&&o.theme===r&&o.lang===i?c.jsx("code",{className:`block text-xs whitespace-pre language-${l} shiki-highlighted`,dangerouslySetInnerHTML:{__html:o.html}}):c.jsx("code",{className:`block text-xs whitespace-pre language-${l}`,children:e})}function ay({source:e,lang:t}){return c.jsx(Ij.Provider,{init:void 0,children:c.jsx(RPe,{source:e,lang:t})})}const Pj=en("MessageCodeBlock",()=>e=>({copied:!1,setCopied:t=>e({copied:t})}));function MPe({source:e,lang:t,ports:n={}}){const r=Pj.useScopedStore(l=>l.copied),i=Pj.useScopedStore(l=>l.setCopied),s=n.clipboard??yl,o=n.timer??wr,a=_.useCallback(async()=>{await s.writeText(e),i(!0),o.setTimeout(()=>i(!1),2e3)},[e,i,s,o]);return c.jsxs("div",{className:"relative overflow-x-auto max-w-full min-w-0 no-code-highlight group/pre",children:[c.jsx("pre",{className:"min-w-0 rounded-xl py-2.5 px-3.5",children:t?c.jsx(ay,{source:e,lang:t}):c.jsx("code",{className:"block text-xs whitespace-pre",children:e})}),c.jsx(je,{variant:"ghost",size:"icon","aria-label":r?"Copied":"Copy code",className:pe("absolute top-[35px] -translate-y-[50%] -translate-x-[1px] rounded-md right-1.5 h-11 w-11 md:h-8 md:w-8 text-muted-foreground opacity-100 md:opacity-0 md:group-hover/pre:opacity-100 transition-opacity [@media(hover:none)]:!opacity-100",!r&&"hover:text-foreground",r&&"hover:!bg-transparent hover:!border-transparent"),onClick:a,children:r?c.jsx(qs,{className:"h-4 w-4 text-success"}):c.jsx(cl,{className:"h-4 w-4"})})]})}function Fee({source:e,lang:t,ports:n}){return c.jsx(Pj.Provider,{init:void 0,children:c.jsx(MPe,{source:e,lang:t,ports:n})})}const jPe=[$v,Dv,Vu,gc,Lv,H_,Of,hE,ju,zp,uc];let Bee=0;function Di(){return String(Bee++)}function Uee(e){if(oD(e)){const n=e.getTag(),r=yd(e),i={h1:"text-[20px] font-normal leading-tight mt-5 mb-3 first:mt-0 last:mb-0",h2:"text-[18px] font-normal leading-tight mt-5 mb-3 first:mt-0 last:mb-0",h3:"text-[16px] font-normal leading-tight mt-5 mb-3 first:mt-0 last:mb-0",h4:"text-[16px] font-normal leading-tight mt-5 mb-3 first:mt-0 last:mb-0",h5:"text-[16px] font-normal leading-tight mt-5 mb-3 first:mt-0 last:mb-0",h6:"text-[16px] font-normal leading-tight mt-5 mb-3 first:mt-0 last:mb-0"},s=i[n]??i.h1,o=Di();switch(n){case"h1":return c.jsx("h1",{className:s,children:r},o);case"h2":return c.jsx("h2",{className:s,children:r},o);case"h3":return c.jsx("h3",{className:s,children:r},o);case"h4":return c.jsx("h4",{className:s,children:r},o);case"h5":return c.jsx("h5",{className:s,children:r},o);default:return c.jsx("h6",{className:s,children:r},o)}}if(Ux(e))return c.jsx("blockquote",{className:"my-2 mt-5 mb-3 first:mt-0 last:mb-0 border-l-2 border-border/80 pl-2 text-muted-foreground",children:yd(e)},Di());if(Da(e))return c.jsx("p",{className:"break-words mt-5 mb-3 first:mt-0 last:mb-0",children:yd(e)},Di());if(U_(e)){const n=e.getLanguage()??"",r=e.getChildren().map(i=>Ie(i)||ov(i)?i.getTextContent():gi(i)?`
2687
- `:"").join("");return c.jsx(Fee,{source:r,lang:n},Di())}if(Ot(e)){const n=e.getListType(),r=yd(e),i=Di();return n==="number"?c.jsx("ol",{className:"list-decimal ml-5 my-2",children:r},i):c.jsx("ul",{className:"list-disc ml-5 my-2",children:r},i)}if(Nn(e)){const n=e.getChecked(),r=yd(e),i=Di();return n!==void 0?c.jsxs("li",{className:"my-0.5 list-none flex items-start gap-1.5",children:[c.jsx("input",{type:"checkbox",readOnly:!0,checked:n,className:"mt-[3px] shrink-0"}),c.jsx("span",{children:r})]},i):c.jsx("li",{className:"my-0.5",children:r},i)}if(ho(e)||$d(e)){const n=e.getURL();return c.jsx("a",{href:n,className:"transition-all underline decoration-2 text-logo decoration-logo/50 hover:text-logo/70 dark:text-logo dark:decoration-logo/70 dark:hover:text-logo/60 dark:hover:decoration-logo/40",target:"_blank",rel:"noopener noreferrer",children:yd(e)},Di())}if(_r(e)){const n=e.getChildren(),r=n[0],i=r!==void 0&&vr(r)&&r.getChildren().every(a=>_t(a)&&(a.getHeaderStyles()&In.ROW)!==0),s=i?r:void 0,o=i?n.slice(1):n;return c.jsx("div",{className:"border border-border rounded-xl overflow-x-auto",children:c.jsxs("table",{className:"table-auto min-w-full divide-y divide-border bg-background",children:[s!==void 0&&c.jsx("thead",{children:c.jsx("tr",{children:s.getChildren().map(a=>c.jsx("th",{className:"text-left text-xs uppercase text-muted-foreground tracking-wider p-2 pl-0 first:pl-3 bg-muted dark:bg-card [&_*]:font-semibold",children:yd(a)},Di()))})}),c.jsx("tbody",{className:"divide-y divide-border",children:o.map(a=>vr(a)?c.jsx("tr",{children:a.getChildren().map(l=>_t(l)?c.jsx("td",{className:"text-left p-2 pl-0 first:pl-3 [&_*]:font-normal",children:yd(l)},Di()):null)},Di()):null)})]})},Di())}if(gi(e))return c.jsx("br",{},Di());if(Ie(e))return OPe(e);if(ov(e))return c.jsx("code",{className:"break-all px-1 bg-border/60 py-0.5 rounded text-sm",children:e.getTextContent()},Di());const t=e.getTextContent();return t?c.jsx("span",{children:t},Di()):null}function OPe(e){const t=e.getFormat(),n=e.getTextContent(),r=(t&Ex)!==0,i=(t&Nx)!==0,s=(t&Tx)!==0,o=(t&fL)!==0;let a=n;return o?c.jsx("code",{className:"break-all px-1 bg-border/60 py-0.5 rounded text-sm",children:n},Di()):(s&&(a=c.jsx("del",{className:"line-through",children:a},Di())),i&&(a=c.jsx("em",{className:"italic",children:a},Di())),r&&(a=c.jsx("strong",{className:"font-semibold",children:a},Di())),!r&&!i&&!s?n:a)}function yd(e){return e.getChildren().map(Uee)}function IPe(){Bee=0;const t=Fn().getChildren();return c.jsx(c.Fragment,{children:t.map(Uee)})}function Ou(e,t=Dee){const n=JJ(lD({namespace:"kanna-md-renderer",nodes:jPe,editable:!1}));return n.update(()=>{Eee(e,t,void 0,!0)},{discrete:!0}),n.getEditorState().read(()=>IPe())}const lC=new Map;function PPe(e){return`${e.id}|${e.contentUrl}|${e.size??0}`}function LPe(e,t){return t.type==="setLoadState"?{...e,loadState:t.payload}:{lastKey:t.newKey,loadState:lC.get(t.newKey)??{status:"loading"}}}function K_(e){const t=PPe(e),n=lC.get(t),[{loadState:r,lastKey:i},s]=_.useReducer(LPe,{loadState:n??{status:"loading"},lastKey:t}),o=_.useRef(t);return o.current=t,i!==t&&s({type:"resetForKey",newKey:t}),_.useEffect(()=>{if(n&&n.status!=="loading")return;let a=!1;const l=t;return uL(e.contentUrl,sQ).then(u=>{if(a||o.current!==l)return;const f={status:"ready",content:u.content,truncated:u.truncated};lC.set(l,f),s({payload:f,type:"setLoadState"})}).catch(u=>{if(a||o.current!==l)return;const p={status:"error",message:u instanceof Error?u.message:"Unable to load preview."};lC.set(l,p),s({payload:p,type:"setLoadState"})}),()=>{a=!0}},[n,t,e.contentUrl]),r}function DPe({source:e}){const t=K_(e);return t.status==="loading"?c.jsxs("div",{className:"p-4 text-sm text-muted-foreground",children:[c.jsx("div",{className:"prose hidden"})," Loading…"]}):t.status==="error"?c.jsx("div",{className:"p-4 text-sm text-destructive",children:t.message}):c.jsxs("div",{className:"space-y-2 p-3",children:[t.truncated?c.jsx("div",{className:"rounded-xl border border-border bg-background px-3 py-2 text-xs text-muted-foreground",children:"Preview truncated to 1024 KB."}):null,c.jsx("div",{className:"prose prose-sm prose-invert max-w-none rounded-xl border border-border bg-background p-4",children:Ou(t.content)})]})}const Lj=en("TableBody",e=>t=>({state:e.initialState,setState:n=>t({state:n})})),cC=new Map;function Hee(e){return`${e.id}|${e.contentUrl}|${e.size??0}|${e.mimeType}`}function $Pe({source:e}){const t=Hee(e),n=cC.get(t),r=Lj.useScopedStore(f=>f.state),i=Lj.useScopedStore(f=>f.setState),s=_.useRef(t);if(s.current=t,_.useEffect(()=>{if(n&&n.status!=="loading")return;const f=e.mimeType==="text/tab-separated-values"?" ":",";let p=!1;const m=t;return uL(e.contentUrl,sQ).then(g=>{if(p||s.current!==m)return;const b={status:"ready",table:bAe(g.content,f),truncated:g.truncated};cC.set(m,b),i(b)}).catch(g=>{if(p||s.current!==m)return;const b={status:"error",message:g instanceof Error?g.message:"Unable to load preview."};cC.set(m,b),i(b)}),()=>{p=!0}},[n,t,e.contentUrl,e.mimeType,i]),r.status==="loading")return c.jsxs("div",{className:"p-4 text-sm text-muted-foreground",children:[c.jsx("table",{className:"sr-only"})," Loading…"]});if(r.status==="error")return c.jsxs("div",{className:"p-4 text-sm text-destructive",children:[c.jsx("table",{className:"sr-only"})," ",r.message]});const{table:o}=r,[a,...l]=o.rows,u=[r.truncated?"Preview truncated to 1024 KB.":null,o.truncatedRows?`Showing first ${o.rows.length} of ${o.rowCount} rows.`:null,o.truncatedColumns?`Showing first ${NM} of ${o.columnCount} columns.`:null].filter(Boolean);return c.jsxs("div",{className:"space-y-2 p-3",children:[u.length?c.jsx("div",{className:"rounded-xl border border-border bg-background px-3 py-2 text-xs text-muted-foreground",children:u.join(" ")}):null,c.jsx("div",{className:"overflow-x-auto rounded-xl border border-border bg-background",children:c.jsxs("table",{className:"min-w-full border-collapse text-xs",children:[a?c.jsx("thead",{className:"sticky top-0 bg-muted",children:c.jsx("tr",{children:a.map((f,p)=>c.jsx("th",{className:"border-b border-border px-3 py-2 text-left font-medium",children:f||" "},p))})}):null,c.jsx("tbody",{children:l.map((f,p)=>c.jsx("tr",{className:"odd:bg-background even:bg-muted/20",children:f.map((m,g)=>c.jsx("td",{className:"max-w-[320px] border-b border-border px-3 py-2 align-top",children:c.jsx("div",{className:"whitespace-pre-wrap break-words",children:m||" "})},g))},p))})]})})]})}function zPe({source:e}){const t=Hee(e),n=cC.get(t);return c.jsx(Lj.Provider,{init:{initialState:n??{status:"loading"}},children:c.jsx($Pe,{source:e})})}function FPe({source:e}){const t=K_(e);return t.status==="loading"?c.jsxs("div",{className:"p-4 text-sm text-muted-foreground",children:[c.jsx("pre",{className:"sr-only"})," Loading…"]}):t.status==="error"?c.jsxs("div",{className:"p-4 text-sm text-destructive",children:[c.jsx("pre",{className:"sr-only"})," ",t.message]}):c.jsxs("div",{className:"space-y-2 p-3",children:[t.truncated?c.jsx(BPe,{children:"Preview truncated to 1024 KB."}):null,c.jsx("pre",{className:"whitespace-pre-wrap break-words rounded-xl border border-border bg-background p-3 text-xs",children:t.content})]})}function BPe({children:e}){return c.jsx("div",{className:"rounded-xl border border-border bg-background px-3 py-2 text-xs text-muted-foreground",children:e})}function UPe({source:e}){const t=K_(e),n=_.useMemo(()=>t.status==="ready"?vAe(t.content):"",[t]);return t.status==="loading"?c.jsxs("div",{className:"p-4 text-sm text-muted-foreground",children:[c.jsx("pre",{className:"sr-only"})," Loading…"]}):t.status==="error"?c.jsxs("div",{className:"p-4 text-sm text-destructive",children:[c.jsx("pre",{className:"sr-only"})," ",t.message]}):c.jsxs("div",{className:"space-y-2 p-3",children:[t.truncated?c.jsx("div",{className:"rounded-xl border border-border bg-background px-3 py-2 text-xs text-muted-foreground",children:"Preview truncated to 1024 KB."}):null,c.jsx("pre",{className:"whitespace-pre-wrap break-words rounded-xl border border-border bg-background p-3 text-xs",children:n})]})}function HPe({source:e}){return c.jsxs("div",{className:"flex h-full flex-col items-stretch justify-center gap-3 p-4",children:[c.jsx("div",{className:"text-sm font-medium text-foreground",children:e.displayName}),c.jsx("audio",{src:e.contentUrl,controls:!0,preload:"metadata",className:"w-full"})]})}function WPe({source:e}){return c.jsx("div",{className:"flex h-full items-center justify-center bg-black/40 p-2",children:c.jsx("video",{src:e.contentUrl,controls:!0,playsInline:!0,preload:"metadata",className:"max-h-[60dvh] w-full rounded-xl"})})}const Dj=en("CodeBody",()=>e=>({highlighted:null,setHighlighted:t=>e({highlighted:t})})),VPe=200*1024;function KPe(e){const t=e.lastIndexOf(".");if(t<0)return"text";const n=e.slice(t+1).toLowerCase();return{ts:"typescript",tsx:"tsx",js:"javascript",jsx:"jsx",py:"python",go:"go",rs:"rust",java:"java",rb:"ruby",sh:"bash",zsh:"bash",yml:"yaml",yaml:"yaml",css:"css",scss:"scss",html:"html",json:"json",md:"markdown",sql:"sql",cpp:"cpp",c:"c",h:"c",swift:"swift",kt:"kotlin",php:"php",toml:"toml"}[n]??"text"}function GPe({source:e}){const t=K_(e),n=t.status==="ready"&&t.content.length<=VPe,r=n?`${e.id}|${e.contentUrl}|${e.size??0}|${t.content.length}`:null,i=Dj.useScopedStore(o=>o.highlighted),s=Dj.useScopedStore(o=>o.setHighlighted);return _.useEffect(()=>{if(!n||t.status!=="ready"||r===null)return;let o=!1;const a=r;return Z(()=>Promise.resolve().then(()=>XX),void 0).then(async l=>{if(o)return;const u=await l.codeToHtml(t.content,{lang:KPe(e.fileName),theme:"github-dark"});o||s({key:a,html:u})}).catch(()=>{vo.warn("[file-preview] Shiki unavailable; falling back to plain text")}),()=>{o=!0}},[n,r,t,e.fileName,s]),t.status==="loading"?c.jsxs("div",{className:"p-4 text-sm text-muted-foreground",children:[c.jsx("pre",{className:"sr-only"})," Loading…"]}):t.status==="error"?c.jsxs("div",{className:"p-4 text-sm text-destructive",children:[c.jsx("pre",{className:"sr-only"})," ",t.message]}):i&&i.key===r?c.jsx("div",{className:"overflow-x-auto p-3 text-xs",dangerouslySetInnerHTML:{__html:i.html}}):c.jsxs("div",{className:"space-y-2 p-3",children:[t.truncated?c.jsx("div",{className:"rounded-xl border border-border bg-background px-3 py-2 text-xs text-muted-foreground",children:"Preview truncated to 1024 KB."}):null,c.jsx("pre",{className:"whitespace-pre-wrap break-words rounded-xl border border-border bg-background p-3 text-xs",children:t.content})]})}function qPe({source:e}){return c.jsx(Dj.Provider,{init:void 0,children:c.jsx(GPe,{source:e})})}const fh=en("MermaidZoomModal",()=>e=>({scale:1,offset:{x:0,y:0},drag:null,setScale:t=>e({scale:t}),setOffset:t=>e({offset:t}),setDrag:t=>e({drag:t})}));function YPe({svg:e,onClose:t,ports:n}){const r=(n==null?void 0:n.dom)??Et,i=fh.useScopedStore(b=>b.scale),s=fh.useScopedStore(b=>b.offset),o=fh.useScopedStore(b=>b.drag),a=fh.useScopedStore(b=>b.setScale),l=fh.useScopedStore(b=>b.setOffset),u=fh.useScopedStore(b=>b.setDrag);_.useEffect(()=>{const b=y=>{y.key==="Escape"&&t()};return r.addWindowListener("keydown",b)},[t,r]);const f=b=>Math.min(8,Math.max(.25,b)),p=b=>{u({x:b.clientX-s.x,y:b.clientY-s.y})},m=b=>{o&&l({x:b.clientX-o.x,y:b.clientY-o.y})},g=()=>u(null);return Ks.createPortal(c.jsxs("div",{className:"fixed inset-0 z-[100] flex flex-col bg-background/95",role:"dialog","aria-modal":"true","aria-label":"Diagram zoom view",children:[c.jsxs("div",{className:"flex justify-end gap-1 p-2",children:[c.jsx(je,{variant:"ghost",size:"icon","aria-label":"Zoom out",className:"h-9 w-9",onClick:()=>a(f(i-.25)),children:c.jsx(R9,{className:"h-4 w-4"})}),c.jsx(je,{variant:"ghost",size:"icon","aria-label":"Zoom in",className:"h-9 w-9",onClick:()=>a(f(i+.25)),children:c.jsx(_o,{className:"h-4 w-4"})}),c.jsx(je,{variant:"ghost",size:"icon","aria-label":"Reset view",className:"h-9 w-9",onClick:()=>{a(1),l({x:0,y:0})},children:c.jsx(lde,{className:"h-4 w-4"})}),c.jsx(je,{variant:"ghost",size:"icon","aria-label":"Close",className:"h-9 w-9",onClick:t,children:c.jsx(Zo,{className:"h-4 w-4"})})]}),c.jsx("div",{className:"flex-1 overflow-hidden touch-none cursor-grab active:cursor-grabbing",onPointerDown:p,onPointerMove:m,onPointerUp:g,onPointerLeave:g,children:c.jsx("div",{"data-mermaid-stage":!0,className:"w-full h-full flex items-center justify-center",style:{transform:`translate(${s.x}px, ${s.y}px) scale(${i})`},dangerouslySetInnerHTML:{__html:e}})})]}),r.getBodyElement())}function XPe({svg:e,onClose:t,ports:n}){return c.jsx(fh.Provider,{init:void 0,children:c.jsx(YPe,{svg:e,onClose:t,ports:n})})}const qc=en("MermaidDiagram",()=>e=>({renderState:{status:"loading"},showSource:!1,zoomOpen:!1,copied:!1,setRenderState:t=>e({renderState:t}),setShowSource:t=>e({showSource:t}),setZoomOpen:t=>e({zoomOpen:t}),setCopied:t=>e({copied:t})}));let fA=null;function QPe(){return fA||(fA=Z(()=>import("./mermaid.core-ByeoRGla.js").then(e=>e.bm),[]).then(e=>e.default)),fA}function JPe({source:e,ports:t}){const{resolvedTheme:n}=vE(),r=n==="dark"?"dark":"default",i=qc.useScopedStore(w=>w.renderState),s=i.status==="error"?i.message:void 0,o=qc.useScopedStore(w=>w.showSource),a=qc.useScopedStore(w=>w.zoomOpen),l=qc.useScopedStore(w=>w.copied),u=qc.useScopedStore(w=>w.setRenderState),f=qc.useScopedStore(w=>w.setShowSource),p=qc.useScopedStore(w=>w.setZoomOpen),m=qc.useScopedStore(w=>w.setCopied),b=`mermaid-${_.useId().replace(/[^a-zA-Z0-9_-]/g,"")}`,y=_.useCallback(()=>p(!1),[p]),x=async()=>{await((t==null?void 0:t.clipboard)??yl).writeText(e),m(!0),((t==null?void 0:t.timer)??wr).setTimeout(()=>m(!1),2e3)};return _.useEffect(()=>{let w=!1;return QPe().then(async k=>{k.initialize({startOnLoad:!1,securityLevel:"strict",theme:r});const{svg:C}=await k.render(b,e);w||u({status:"ready",svg:C})}).catch(k=>{const C=iAe(k).message;w||u({status:"error",message:C})}),()=>{w=!0}},[e,r,b,u]),i.status==="error"?c.jsxs("div",{className:"my-3",children:[c.jsxs("div",{className:"flex items-start gap-1.5 text-xs text-destructive mb-1",children:[c.jsx(ep,{className:"size-3.5 shrink-0 mt-px"}),c.jsxs("span",{children:["Couldn't render this Mermaid diagram",s?c.jsxs("span",{className:"text-muted-foreground",children:[" — ",s]}):null]})]}),c.jsx(W2,{source:e})]}):i.status==="loading"?c.jsx("div",{className:"relative group/mermaid",children:c.jsx(W2,{source:e})}):o?c.jsxs("div",{className:"relative group/mermaid",children:[c.jsx(W2,{source:e}),c.jsx(KU,{showSource:o,onToggleSource:()=>f(!o),onCopy:x,copied:l,onZoom:void 0})]}):c.jsxs("div",{className:"relative group/mermaid my-3",children:[c.jsx("div",{className:"flex justify-center overflow-x-auto",dangerouslySetInnerHTML:{__html:i.svg}}),c.jsx(KU,{showSource:o,onToggleSource:()=>f(!o),onCopy:x,copied:l,onZoom:()=>p(!0)}),a&&c.jsx(XPe,{svg:i.svg,onClose:y})]})}function Wee({source:e,ports:t}){return c.jsx(qc.Provider,{init:void 0,children:c.jsx(JPe,{source:e,ports:t})})}function KU({showSource:e,onToggleSource:t,onCopy:n,copied:r,onZoom:i}){return c.jsxs("div",{className:"absolute top-1.5 right-1.5 flex gap-1 opacity-100 md:opacity-0 md:group-hover/mermaid:opacity-100 transition-opacity [@media(hover:none)]:!opacity-100",children:[i&&!e&&c.jsx(je,{variant:"ghost",size:"icon","aria-label":"Zoom diagram",className:"h-8 w-8 rounded-md text-muted-foreground hover:text-foreground",onClick:i,children:c.jsx(Oue,{className:"h-4 w-4"})}),c.jsx(je,{variant:"ghost",size:"icon","aria-label":e?"View rendered diagram":"View diagram source",className:"h-8 w-8 rounded-md text-muted-foreground hover:text-foreground",onClick:t,children:c.jsx(fR,{className:"h-4 w-4"})}),c.jsx(je,{variant:"ghost",size:"icon","aria-label":r?"Copied":"Copy diagram source",className:pe("h-8 w-8 rounded-md text-muted-foreground",!r&&"hover:text-foreground",r&&"hover:!bg-transparent"),onClick:n,children:r?c.jsx(qs,{className:"h-4 w-4 text-success"}):c.jsx(cl,{className:"h-4 w-4"})})]})}function ZPe({source:e}){const t=K_(e);return t.status==="loading"?c.jsxs("div",{className:"p-4 text-sm text-muted-foreground",children:[c.jsx("div",{className:"hidden"})," Loading…"]}):t.status==="error"?c.jsx("div",{className:"p-4 text-sm text-destructive",children:t.message}):c.jsx("div",{className:"p-4",children:c.jsx(Wee,{source:t.content})})}async function eLe(e,t={}){const n=t.dom??Et,r=t.clipboard??yl,i=nLe(e.contentUrl,n);if(n.isWebShareSupported())try{return await n.webShare({title:e.displayName,url:i}),"shared"}catch(s){if(s instanceof DOMException&&s.name==="AbortError")return"shared"}try{return await r.writeText(i),"copied"}catch{return"failed"}}function tLe(e,t={}){(t.dom??Et).triggerDownload(e.contentUrl,e.fileName)}function nLe(e,t){return new URL(e,t.getBaseURI()||t.getHref()).toString()}const $j=en("SheetBody",()=>e=>({dy:0,setDy:t=>e({dy:t})}));function Fp({source:e,open:t,onOpenChange:n}){const r=_.useCallback(()=>n(!1),[n]);return c.jsx(Yo,{open:t&&e!==null,onOpenChange:n,children:c.jsx(So,{size:"lg",className:"inset-0 h-[100dvh] max-h-none w-full max-w-none translate-x-0 translate-y-0 rounded-none p-0 md:inset-auto md:left-1/2 md:top-1/2 md:h-auto md:max-h-[90dvh] md:w-auto md:max-w-3xl md:-translate-x-1/2 md:-translate-y-1/2 md:rounded-2xl",children:e?c.jsx(aLe,{source:e,onClose:r}):null})})}const rLe=120,iLe=.5;function sLe({startY:e,lastY:t,lastT:n,endY:r,now:i}){const s=r-e,o=Math.max(1,i-n),a=(r-t)/o;return s>rLe||a>iLe}function oLe({source:e,onClose:t}){const n=cLe(e),r=$j.useScopedStore(p=>p.dy),i=$j.useScopedStore(p=>p.setDy),s=_.useRef(null),o=_.useCallback(p=>{s.current={y:p.clientY,lastY:p.clientY,lastT:Date.now()};try{p.currentTarget.setPointerCapture(p.pointerId)}catch{}},[]),a=_.useCallback(p=>{if(!s.current)return;const m=p.clientY-s.current.y;m<0||(s.current.lastY=p.clientY,s.current.lastT=Date.now(),i(m))},[i]),l=_.useCallback(p=>{const m=s.current;s.current=null;try{p.currentTarget.releasePointerCapture(p.pointerId)}catch{}m&&(sLe({startY:m.y,lastY:m.lastY,lastT:m.lastT,endY:p.clientY,now:Date.now()})?t():i(0))},[t,i]),u=_.useCallback(()=>{eLe(e)},[e]),f=_.useCallback(()=>tLe(e),[e]);return c.jsxs("div",{className:"flex min-h-0 flex-1 flex-col",style:r>0?{transform:`translateY(${r}px)`,transition:"none"}:void 0,children:[c.jsxs("div",{onPointerDown:o,onPointerMove:a,onPointerUp:l,onPointerCancel:l,className:"border-b border-border px-4 py-3 touch-none",children:[c.jsx("div",{className:"mx-auto mb-2 h-1 w-12 rounded-full bg-muted md:hidden",role:"button","aria-label":"Drag down to close"}),c.jsx(Xo,{className:"truncate text-base",children:e.displayName}),c.jsx(yv,{className:"truncate text-xs",children:n})]}),c.jsx("div",{className:"min-h-0 flex-1 overflow-y-auto overscroll-contain touch-pan-y [-webkit-overflow-scrolling:touch]",role:"region","aria-label":"File preview",children:_.createElement(lLe(e),{source:e})},e.id),c.jsxs("div",{className:"flex items-center justify-end gap-2 border-t border-border px-4 py-3",children:[c.jsxs(je,{type:"button",variant:"outline",onClick:u,children:[c.jsx(wde,{className:"mr-2 h-4 w-4"}),"Share"]}),e.origin==="offer_download"?c.jsxs(je,{type:"button",onClick:f,children:[c.jsx(fI,{className:"mr-2 h-4 w-4"}),"Download"]}):null]})]})}function aLe({source:e,onClose:t}){return c.jsx($j.Provider,{init:void 0,children:c.jsx(oLe,{source:e,onClose:t})})}function lLe(e){const t={id:e.id,displayName:e.displayName,mimeType:e.mimeType,size:e.size??0,contentUrl:e.contentUrl,relativePath:e.relativePath??""},n=Op(t);return n==="image"?OAe:n==="pdf"?O6:n==="audio"?HPe:n==="video"?WPe:n==="table"?zPe:n==="markdown"?DPe:n==="json"?UPe:n==="mermaid"?ZPe:n==="code"?qPe:Mv(t).kind==="external"?O6:FPe}function cLe(e){const t={id:e.id,displayName:e.displayName,mimeType:e.mimeType,size:e.size??0,contentUrl:e.contentUrl,relativePath:e.relativePath??""},n=Op(t),r=T_(n,e.mimeType),i=e.size?` · ${Ip(e.size)}`:"";return`${r}${i}`}function zv(e,t){return{id:e.id,contentUrl:e.contentUrl,displayName:e.displayName,fileName:e.displayName,relativePath:e.relativePath,mimeType:e.mimeType,size:e.size,origin:t}}const ic=_.forwardRef(({className:e,...t},n)=>c.jsx("textarea",{"data-gramm":"false","data-gramm_editor":"false","data-enable-grammarly":"false","data-1p-ignore":!0,autoComplete:"off",className:pe("flex w-full rounded-lg border border-border bg-background px-2.5 py-2 text-sm placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50",e),ref:n,...t}));ic.displayName="Textarea";const uLe=new Set(["changes","history"]),dLe=new Set(["public","private"]),fLe=new Set(["branches","pull_requests"]);function hLe(e){return uLe.has(e)}function pLe(e){return dLe.has(e)}function mLe(e){return fLe.has(e)}const lw={};function GU(e){return!e.isCollapsed&&!e.hasPreviewAttachment&&e.patch===void 0&&e.patchError===void 0&&!e.isPatchLoading}function gLe(e,t){return!e||!t.mimeType||typeof t.size!="number"||t.changeType==="deleted"||!t.mimeType.startsWith("image/")&&t.mimeType!=="application/pdf"?null:{id:`diff:${t.path}`,kind:t.mimeType.startsWith("image/")?"image":"file",displayName:t.path.split("/").pop()??t.path,absolutePath:t.path,relativePath:t.path,contentUrl:`/api/projects/${e}/files/${encodeURIComponent(t.path)}/content`,mimeType:t.mimeType,size:t.size}}function Vee(e){return e.isUntracked}function vLe(e){return Vee(e)?e.path.includes("/"):!1}function hA(e){return c.jsxs(ks,{delayDuration:0,children:[c.jsx(Es,{asChild:!0,children:c.jsx("button",{type:"button","aria-label":e.label,onClick:e.onClick,className:pe("flex h-11 w-11 md:h-7 md:w-7 shrink-0 items-center justify-center rounded-md text-muted-foreground transition-colors hover:bg-accent hover:text-foreground",e.active&&"bg-accent text-foreground"),children:e.children})}),c.jsx(ms,{children:e.label})]})}function Kee({checked:e,mixed:t=!1,label:n,className:r,onClick:i}){let s;return t?s=c.jsx(R9,{className:"h-3 w-3",strokeWidth:3}):e?s=c.jsx(qs,{className:"h-3 w-3",strokeWidth:3}):s=null,c.jsx("button",{type:"button","aria-label":n??(e?"Exclude file from commit":"Include file in commit"),"aria-checked":t?"mixed":e,"aria-pressed":t?"mixed":e,onClick:o=>{o.stopPropagation(),i()},className:pe("flex size-4.5 shrink-0 items-center justify-center rounded border transition-colors",e||t?"border-foreground bg-foreground text-background":"border-border bg-background text-transparent",r),children:s})}function cD(e){const t=Date.parse(e);if(!Number.isFinite(t))return"";const n=Date.now()-t,r=6e4,i=60*r,s=24*i,o=7*s,a=30*s,l=365*s;return n<r?"just now":n<i?`${Math.round(n/r)}m ago`:n<s?`${Math.round(n/i)}hr ago`:n<o?`${Math.round(n/s)}d ago`:n<a?`${Math.round(n/o)}wk ago`:n<l?`${Math.round(n/a)}mo ago`:`${Math.round(n/l)}yr ago`}function bLe(e){return e?`Last fetched ${cD(e)}`:"No local fetch recorded"}function yLe({entry:e,isPendingPush:t=!1,ports:n}){const r=(n==null?void 0:n.dom)??Et,i=cD(e.authoredAt),s=!!e.githubUrl;let o;return e.tags.length>0?o=c.jsxs("div",{className:"flex shrink-0 flex-wrap justify-end gap-1",children:[e.tags.map(a=>c.jsx("span",{className:"inline-flex items-center rounded-full bg-muted border border-border px-2 py-0.5 text-[11px]",children:a},a)),t?c.jsx("span",{className:"inline-flex items-center rounded-full bg-muted border border-border px-2 py-0.5 text-[11px]",children:c.jsx(Ky,{className:"size-3"})}):null]}):t?o=c.jsx("div",{className:"flex shrink-0 flex-wrap justify-end gap-1",children:c.jsx("span",{className:"inline-flex items-center rounded-full bg-muted border border-border px-2 py-0.5 text-[11px]",children:c.jsx(Ky,{className:"size-3"})})}):o=null,c.jsxs("button",{type:"button",disabled:!s,onClick:()=>{e.githubUrl&&r.openWindow(e.githubUrl,"_blank","noopener,noreferrer")},className:pe("flex w-full items-start gap-3 rounded-lg border border-border bg-background pl-3 pr-2 py-2 text-left transition-colors",s?"hover:bg-accent":"cursor-default opacity-60"),children:[c.jsxs("div",{className:"min-w-0 flex-1",children:[c.jsx("div",{className:"truncate text-sm font-medium text-foreground",children:e.summary}),e.description?c.jsx("div",{className:"mt-1 line-clamp-2 whitespace-pre-wrap text-xs text-muted-foreground",children:e.description}):null,c.jsxs("div",{className:"mt-1 flex min-w-0 items-center gap-1 text-xs text-muted-foreground",children:[e.authorName?c.jsx("span",{className:"truncate",children:e.authorName}):null,e.authorName&&i?c.jsx("span",{"aria-hidden":"true",children:"•"}):null,i?c.jsx("span",{children:i}):null]})]}),o]})}function qU(e){switch(e.kind){case"local":return 0;case"pull_request":return 1;case"remote":default:return 2}}function xLe(e){const t=new Map;for(const n of e){const r=t.get(n.name);(!r||qU(n)<qU(r))&&t.set(n.name,n)}return t}function _Le(e,t){const n=xLe([...e.local,...e.pullRequests,...e.remote]);t&&n.delete(t);const r=new Set,i=e.defaultBranchName?n.get(e.defaultBranchName):void 0;i&&r.add(i.name);const s=e.recent.map(a=>n.get(a.name)??a).filter(a=>!!a&&!r.has(a.name));for(const a of s)r.add(a.name);const o=[...n.values()].filter(a=>!r.has(a.name)).sort((a,l)=>a.displayName.localeCompare(l.displayName));return{defaultBranch:i,recent:s,other:o}}function SLe({open:e,onOpenChange:t,onGetGitHubPublishInfo:n,onCheckGitHubRepoAvailability:r,onPublish:i,ports:s}){const o=(s==null?void 0:s.timer)??wr,a=at(P=>P.publishInfo),l=at(P=>P.isLoadingPublishInfo),u=at(P=>P.publishOwner),f=at(P=>P.publishName),p=at(P=>P.publishVisibility),m=at(P=>P.publishDescription),g=at(P=>P.publishAvailability),b=at(P=>P.isCheckingPublishAvailability),y=at(P=>P.isPublishing),x=at(P=>P.setPublishInfo),w=at(P=>P.setIsLoadingPublishInfo),k=at(P=>P.setPublishOwner),C=at(P=>P.setPublishName),E=at(P=>P.setPublishVisibility),A=at(P=>P.setPublishDescription),N=at(P=>P.setPublishAvailability),M=at(P=>P.setIsCheckingPublishAvailability),j=at(P=>P.setIsPublishing);_.useEffect(()=>{if(!e)return;let P=!1;return w(!0),N(null),n().then(W=>{P||(x(W),k(W.owners[0]??W.activeAccountLogin??""),C(W.suggestedRepoName),E("private"),A(""))}).finally(()=>{P||w(!1)}),()=>{P=!0}},[n,e,N,A,x,w,C,k,E]),_.useEffect(()=>{if(!e||!(a!=null&&a.ghInstalled)||!a.authenticated)return;const P=u.trim(),W=f.trim();if(!P||!W){N(null);return}let U=!1;M(!0);const B=o.setTimeout(()=>{r({owner:P,name:W}).then(K=>{U||N(K)}).finally(()=>{U||M(!1)})},250);return()=>{U=!0,o.clearTimeout(B)}},[a==null?void 0:a.authenticated,a==null?void 0:a.ghInstalled,f,r,e,u,N,M,o]);async function I(){if(!(!u.trim()||!f.trim())){j(!0);try{const P=await i({owner:u.trim(),name:f.trim(),visibility:p,description:m});Ji(P)&&P.ok&&t(!1)}finally{j(!1)}}}const z=!!(a!=null&&a.ghInstalled&&a.authenticated&&u.trim()&&f.trim()&&(g!=null&&g.available)&&!b&&!y);let F;b?F=c.jsx("div",{className:"pointer-events-none absolute inset-y-0 right-3 flex items-center text-muted-foreground",children:c.jsx(Ln,{className:"size-4 animate-spin"})}):g?F=c.jsx("div",{className:"absolute inset-y-0 right-2 flex items-center",children:c.jsxs(ks,{delayDuration:0,children:[c.jsx(Es,{asChild:!0,children:c.jsx("button",{type:"button",tabIndex:-1,"aria-label":g.message,className:pe("flex size-6 items-center justify-center rounded-md",g.available?"text-success":"text-destructive"),children:g.available?c.jsx(qs,{className:"size-4"}):c.jsx(ep,{className:"size-4"})})}),c.jsx(ms,{children:g.message})]})}):F=null;let O;return l?O=c.jsxs("div",{className:"flex items-center gap-2 text-sm text-muted-foreground",children:[c.jsx(Ln,{className:"size-4 animate-spin"}),c.jsx("span",{children:"Checking GitHub CLI…"})]}):a&&!a.ghInstalled?O=c.jsxs("div",{className:"space-y-2 text-sm text-muted-foreground",children:[c.jsx("p",{children:"GitHub CLI is not installed."}),c.jsx("div",{className:"rounded-lg border border-border px-3 py-2 font-mono text-xs text-foreground",children:"brew install gh"}),c.jsx("p",{children:"Then run:"}),c.jsx("div",{className:"rounded-lg border border-border px-3 py-2 font-mono text-xs text-foreground",children:"gh auth login"})]}):a&&!a.authenticated?O=c.jsxs("div",{className:"space-y-2 text-sm text-muted-foreground",children:[c.jsx("p",{children:"GitHub CLI is installed but not signed in."}),c.jsx("div",{className:"rounded-lg border border-border px-3 py-2 font-mono text-xs text-foreground",children:"gh auth login"})]}):O=c.jsxs(c.Fragment,{children:[c.jsx("div",{className:"space-y-2",children:c.jsxs(xa,{value:u,onValueChange:k,children:[c.jsx(Vo,{className:"pl-[11px] [&>span]:flex [&>span]:items-center [&>span]:gap-2",children:c.jsx(tl,{placeholder:"Select owner"})}),c.jsx(Ko,{children:((a==null?void 0:a.owners)??[]).map(P=>c.jsx(hi,{value:P,children:c.jsxs("span",{className:"flex items-center gap-2",children:[P===(a==null?void 0:a.activeAccountLogin)?c.jsx(Q1,{className:"size-4 text-muted-foreground"}):c.jsx(Gle,{className:"size-4 text-muted-foreground"}),c.jsx("span",{className:"pl-[1px]",children:P})]})},P))})]})}),c.jsx("div",{className:"space-y-2",children:c.jsxs("div",{className:"relative",children:[c.jsx(hn,{value:f,onChange:P=>C(P.target.value),placeholder:"my-repo",className:"pl-9 pr-10"}),c.jsx(Xue,{className:"pointer-events-none absolute inset-y-0 left-3 my-auto size-4 text-muted-foreground"}),F]})}),c.jsx("div",{className:"space-y-2",children:c.jsxs("div",{className:"relative",children:[c.jsx(a_,{className:"pointer-events-none absolute left-3 top-3 size-4 text-muted-foreground"}),c.jsx(ic,{value:m,onChange:P=>A(P.target.value),rows:3,placeholder:"Optional description",className:"pl-9 outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background"})]})}),c.jsx("div",{className:"space-y-2",children:c.jsxs(xa,{value:p,onValueChange:P=>{pLe(P)&&E(P)},children:[c.jsx(Vo,{className:"pl-[11px] [&>span]:flex [&>span]:items-center [&>span]:gap-2",children:c.jsx(tl,{placeholder:"Select visibility"})}),c.jsxs(Ko,{children:[c.jsx(hi,{value:"private",children:c.jsxs("span",{className:"flex items-center gap-2",children:[c.jsx(Aue,{className:"size-4 text-muted-foreground"}),c.jsx("span",{className:"pl-[1px]",children:"Private"})]})}),c.jsx(hi,{value:"public",children:c.jsxs("span",{className:"flex items-center gap-2",children:[c.jsx(pue,{className:"size-4 text-muted-foreground"}),c.jsx("span",{className:"pl-[1px]",children:"Public"})]})})]})]})})]}),c.jsx(Yo,{open:e,onOpenChange:t,children:c.jsxs(So,{size:"sm",className:"max-w-[min(92vw,475px)]",children:[c.jsxs(Aa,{className:"space-y-2 px-4 pb-4 pt-4",children:[c.jsxs("div",{className:"space-y-1",children:[c.jsx(Xo,{children:"Push to GitHub"}),c.jsx(yv,{children:"Create a GitHub repository from this local project using GitHub CLI."})]}),O]}),c.jsxs(yu,{children:[c.jsx(je,{variant:"ghost",size:"sm",onClick:()=>t(!1),children:"Cancel"}),c.jsx(je,{size:"sm",disabled:!z,onClick:()=>void I(),children:y?c.jsxs(c.Fragment,{children:[c.jsx(Ln,{className:"mr-1.5 size-3.5 animate-spin"}),"Publishing…"]}):"Push to GitHub"})]})]})})}function Gee({value:e,onChange:t,placeholder:n,disabled:r,trailingAction:i}){return c.jsxs("div",{className:"relative",children:[c.jsx(sg,{className:"pointer-events-none absolute left-2 top-1/2 h-3.5 w-3.5 -translate-y-1/2 text-muted-foreground"}),c.jsx(hn,{value:e,onChange:s=>t(s.target.value),placeholder:n,className:pe("h-9 pl-7 text-sm",i?"pr-14":void 0),disabled:r}),i?c.jsx("div",{className:"absolute right-1 top-1/2 -translate-y-1/2",children:i}):null]})}function Ih({title:e,entries:t,emptyLabel:n,selectedName:r,disabled:i,stickyTitle:s=!1,onSelect:o}){return t.length===0&&!n?null:c.jsxs("div",{className:"space-y-1",children:[c.jsx("div",{className:pe("px-1 py-1 text-[11px] font-medium uppercase tracking-[0.08em] text-muted-foreground",s&&"sticky top-0 z-10 bg-background"),children:e}),t.length===0?c.jsx("div",{className:"px-1 py-1 text-xs text-muted-foreground",children:n}):t.map(a=>{const l=r===a.name;return c.jsxs("button",{type:"button",disabled:i,onClick:()=>o(a),className:pe("flex w-full items-start gap-2 rounded-lg px-2 py-2 text-left transition-colors disabled:opacity-60",l?"bg-accent text-foreground":"hover:bg-accent"),children:[a.kind==="pull_request"?c.jsx(k9,{className:"mt-0.5 h-3.5 w-3.5 shrink-0 text-muted-foreground"}):c.jsx(lu,{className:"mt-0.5 h-3.5 w-3.5 shrink-0 text-muted-foreground"}),c.jsxs("div",{className:"min-w-0 flex-1",children:[c.jsxs("div",{className:"flex w-full items-center gap-3",children:[c.jsx("div",{className:"min-w-0 flex-1 overflow-hidden whitespace-nowrap text-sm text-foreground",children:a.displayName}),a.updatedAt?c.jsx("div",{className:"ml-auto shrink-0 text-right text-[11px] text-muted-foreground",children:cD(a.updatedAt)}):null]}),a.kind==="pull_request"&&a.description||a.headLabel?c.jsx("div",{className:"truncate text-xs text-muted-foreground",children:a.kind==="pull_request"?a.description??a.headLabel??a.name:a.headLabel??void 0}):null]})]},a.id)})]})}function wLe({open:e,onOpenChange:t,branchList:n,currentBranchName:r,onPreviewMergeBranch:i,onMergeBranch:s}){const o=at(U=>U.mergeBranchQuery),a=at(U=>U.mergeBranchSelectedName),l=at(U=>U.mergePreview),u=at(U=>U.mergePreviewError),f=at(U=>U.isMergePreviewLoading),p=at(U=>U.isMergeBranching),m=at(U=>U.setMergeBranchQuery),g=at(U=>U.setMergeBranchSelectedName),b=at(U=>U.setMergePreview),y=at(U=>U.setMergePreviewError),x=at(U=>U.setIsMergePreviewLoading),w=at(U=>U.setIsMergeBranching),k=at(U=>U.resetMergeBranchModal),C=at(U=>U.resetMergePreview),E=_.useMemo(()=>n?_Le(n,r):{defaultBranch:void 0,recent:[],other:[]},[n,r]),A=o.trim().toLowerCase(),N=_.useCallback(U=>A?[U.displayName,U.name,U.description,U.prTitle,U.headLabel].some(B=>B==null?void 0:B.toLowerCase().includes(A)):!0,[A]),M=E.defaultBranch&&N(E.defaultBranch)?E.defaultBranch:void 0,j=E.recent.filter(N),I=E.other.filter(N),z=_.useMemo(()=>a?[E.defaultBranch,...E.recent,...E.other].find(U=>U!==void 0&&U.name===a)??null:null,[E.defaultBranch,E.other,E.recent,a]);_.useEffect(()=>{e||k()},[e,k]),_.useEffect(()=>{if(!e||!z){C();return}let U=!1;return b(null),y(null),x(!0),i(z).then(B=>{U||b(B)}).catch(B=>{U||y(B instanceof Error?B.message:String(B))}).finally(()=>{U||x(!1)}),()=>{U=!0}},[i,e,C,z,x,b,y]);const F=!z||!l||f||p||l.status!=="mergeable";async function O(){if(!(!z||F)){w(!0);try{const U=await s(z);U!=null&&U.ok&&t(!1)}finally{w(!1)}}}let P;l?l.status==="up_to_date"?P=c.jsx(qs,{className:"mt-1 size-3.5 shrink-0 text-success"}):l.status==="conflicts"?P=c.jsx(ep,{className:"mt-1 size-3.5 shrink-0 text-warning"}):l.status==="mergeable"?P=c.jsx(C9,{className:"mt-1 size-3.5 shrink-0 text-muted-foreground"}):P=c.jsx(ep,{className:"mt-1 size-3.5 shrink-0 text-destructive"}):P=null;let W;return z?f?W=c.jsxs("div",{className:"flex items-center gap-2 text-sm text-muted-foreground",children:[c.jsx(Ln,{className:"size-3.5 animate-spin"}),c.jsx("span",{children:"Checking merge preview…"})]}):u?W=c.jsx("div",{className:"text-sm text-destructive",children:u}):l?W=c.jsxs("div",{className:"flex items-start gap-2",children:[P,c.jsxs("div",{className:"min-w-0 space-y-1",children:[c.jsx("div",{className:"text-sm font-medium text-foreground",children:l.message}),l.detail?c.jsx("div",{className:"line-clamp-2 whitespace-pre-wrap text-xs text-muted-foreground",children:l.detail}):null]})]}):W=c.jsx("div",{className:"text-sm text-muted-foreground",children:"Preview unavailable."}):W=c.jsx("div",{className:"text-sm text-muted-foreground",children:"Select a branch to preview the merge."}),c.jsx(Yo,{open:e,onOpenChange:t,children:c.jsxs(So,{size:"sm",className:"max-w-[min(92vw,475px)]",children:[c.jsxs(Aa,{className:"flex min-h-0 flex-col gap-3 px-4 pb-4 pt-4",children:[c.jsxs("div",{className:"space-y-1",children:[c.jsxs(Xo,{children:["Merge into ",r??"current branch"]}),c.jsx(yv,{children:"Choose a branch to continue."})]}),c.jsx(Gee,{value:o,onChange:m,placeholder:"Search branches"}),c.jsxs("div",{className:"max-h-[375px] space-y-3 overflow-y-auto pr-1",children:[c.jsx(Ih,{title:"Default Branch",entries:M?[M]:[],emptyLabel:"No default branch available.",selectedName:a,onSelect:U=>g(U.name)}),c.jsx(Ih,{title:"Recent Branches",entries:j,emptyLabel:"No recent branches.",selectedName:a,onSelect:U=>g(U.name)}),c.jsx(Ih,{title:"Other Branches",entries:I,emptyLabel:"No other branches match this search.",selectedName:a,onSelect:U=>g(U.name)})]}),c.jsx("div",{className:"px-2",children:W})]}),c.jsx(yu,{children:c.jsxs("div",{className:"flex min-w-0 w-full items-center justify-end gap-2",children:[c.jsx(je,{variant:"ghost",size:"sm",onClick:()=>t(!1),children:"Cancel"}),c.jsx(je,{className:"max-w-full min-w-0",size:"sm",disabled:F,onClick:()=>void O(),children:p?c.jsxs(c.Fragment,{children:[c.jsx(Ln,{className:"mr-1.5 h-3.5 w-3.5 animate-spin"}),"Merging…"]}):c.jsx("span",{className:"block max-w-full truncate",children:"Merge"})})]})})]})})}function CLe({currentBranchName:e,onListBranches:t,onPreviewMergeBranch:n,onMergeBranch:r,onCheckoutBranch:i,onCreateBranch:s}){const o=at(G=>G.branchSwitcherOpen),a=at(G=>G.mergeModalOpen),l=at(G=>G.branchSwitcherIsLoading),u=at(G=>G.branchSwitcherIsMutating),f=at(G=>G.branchSwitcherQuery),p=at(G=>G.branchSwitcherEntryView),m=at(G=>G.branchList),g=at(G=>G.branchSwitcherError),b=at(G=>G.setBranchSwitcherOpen),y=at(G=>G.setMergeModalOpen),x=at(G=>G.setBranchSwitcherIsLoading),w=at(G=>G.setBranchSwitcherIsMutating),k=at(G=>G.setBranchSwitcherQuery),C=at(G=>G.setBranchSwitcherEntryView),E=at(G=>G.setBranchList),A=at(G=>G.setBranchSwitcherError);_.useEffect(()=>{o&&(x(!0),A(null),t().then(G=>E(G)).catch(G=>{A(G instanceof Error?G.message:String(G))}).finally(()=>{x(!1)}))},[t,o,E,A,x]);const N=f.trim().toLowerCase(),M=G=>G.filter(D=>N?[D.displayName,D.name,D.description,D.prTitle,D.headLabel].some(Q=>Q==null?void 0:Q.toLowerCase().includes(N)):!0),j=(m==null?void 0:m.currentBranchName)??e,I=new Set(((m==null?void 0:m.pullRequests)??[]).map(G=>G.headRefName??G.name)),z=M((m==null?void 0:m.recent)??[]).filter(G=>G.name!==j),F=M((m==null?void 0:m.local)??[]).filter(G=>G.name!==j),O=M((m==null?void 0:m.remote)??[]).filter(G=>G.name!==j&&!I.has(G.name)),P=M((m==null?void 0:m.pullRequests)??[]).filter(G=>G.name!==j),W=(m==null?void 0:m.pullRequests.length)??0;async function U(G){w(!0);try{await i(G),b(!1),k(""),C("branches")}finally{w(!1)}}async function B(){w(!0);try{await s(),b(!1),k(""),C("branches")}finally{w(!1)}}function K(){b(!1),y(!0)}let V;(m==null?void 0:m.pullRequestsStatus)==="error"?V=m.pullRequestsError??"Could not load pull requests.":(m==null?void 0:m.pullRequestsStatus)==="unavailable"?V="Pull requests unavailable for this repository.":V="No open pull requests.";let Y;return l?Y=c.jsxs("div",{className:"flex items-center justify-center gap-2 py-6 text-sm text-muted-foreground",children:[c.jsx(Ln,{className:"h-4 w-4 animate-spin"}),c.jsx("span",{children:"Loading branches…"})]}):g?Y=c.jsx("div",{className:"rounded-lg border border-border px-3 py-2 text-sm text-muted-foreground",children:g}):p==="pull_requests"?Y=c.jsx(Ih,{title:"Open PRs",entries:P,emptyLabel:V,disabled:u,stickyTitle:!0,onSelect:G=>{U(G)}}):Y=c.jsxs("div",{className:"space-y-3",children:[c.jsx(Ih,{title:"Recent",entries:z,emptyLabel:"No recent branches.",disabled:u,stickyTitle:!0,onSelect:G=>{U(G)}}),c.jsx(Ih,{title:"Local",entries:F,emptyLabel:"No local branches.",disabled:u,stickyTitle:!0,onSelect:G=>{U(G)}}),c.jsx(Ih,{title:"Remote",entries:O,emptyLabel:"No remote branches.",disabled:u,stickyTitle:!0,onSelect:G=>{U(G)}})]}),c.jsxs(Tf,{open:o,onOpenChange:b,children:[c.jsx(Af,{asChild:!0,children:c.jsxs("button",{type:"button",className:"flex min-w-0 max-w-full items-center gap-1 rounded-md px-1.5 py-1 text-sm transition-colors hover:bg-accent hover:text-foreground","aria-label":"Open branch switcher",children:[c.jsx(lu,{className:"h-3.5 w-3.5 shrink-0"}),c.jsx("span",{className:"truncate",children:e??"Detached HEAD"}),c.jsx(gv,{className:"h-3.5 w-3.5 shrink-0"})]})}),c.jsx($u,{align:"start",className:"w-[320px] p-2",children:c.jsxs("div",{className:"space-y-2",children:[c.jsx(Gee,{value:f,onChange:k,placeholder:p==="pull_requests"?"Search pull requests":"Search branches",disabled:l||u,trailingAction:c.jsx(je,{variant:"ghost",size:"sm",onClick:()=>void B(),disabled:l||u,className:"h-7 px-2 text-xs hover:!bg-transparent hover:!border-border/0",children:"+ New"})}),c.jsx(Hs,{value:p,onValueChange:G=>{mLe(G)&&C(G)},size:"sm",className:"w-full",optionClassName:"flex-1 justify-center",options:[{value:"branches",label:"Branches"},{value:"pull_requests",label:`Open PRs ${W}`}]}),c.jsx("div",{className:"max-h-[420px] overflow-y-auto pr-1.5 -mr-[8px]",children:Y}),j?c.jsx(je,{variant:"default",size:"sm",disabled:l||u||!!g,onClick:K,className:"h-9 w-full justify-center rounded-lg px-3 text-sm",children:c.jsxs("span",{className:"block max-w-full truncate",children:[c.jsx(cue,{className:"mr-1.5 inline h-3.5 w-3.5 shrink-0"}),"Merge branch into ",j,"..."]})}):null]})}),c.jsx(wLe,{open:a,onOpenChange:y,branchList:m,currentBranchName:j,onPreviewMergeBranch:n,onMergeBranch:r})]})}function kLe({file:e,rootRef:t,projectId:n,isCollapsed:r,isChecked:i,editorLabel:s,diffRenderMode:o,wrapLines:a,onToggleCollapsed:l,onToggleChecked:u,fileActions:f,patch:p,patchError:m,isPatchLoading:g,onLoadPatch:b,ports:y}){const x=(y==null?void 0:y.dom)??Et,w=Vee(e),k=vLe(e),C=EM.useScopedStore(K=>K.selectedAttachmentId),E=EM.useScopedStore(K=>K.setSelectedAttachmentId),A=_.useRef(null),N=_.useRef(null),{sentinelRef:M,isStuck:j}=sAe({rootRef:t,disabled:r}),I=_.useMemo(()=>gLe(n,e),[e,n]),z=I!==null,F=GU({isCollapsed:r,hasPreviewAttachment:z,patch:p,patchError:m,isPatchLoading:g});_.useEffect(()=>{if(!F)return;const K=`${e.path}\0${e.patchDigest}`;N.current!==K&&(N.current=K,b(e.path).catch(()=>{}))},[e.patchDigest,e.path,b,F]);function O(K){if(Mv(K).openInNewTab){x.openWindow(new URL(K.contentUrl,x.getOrigin()).toString(),"_blank","noopener,noreferrer");return}E(K.id)}function P(K){K.preventDefault(),K.stopPropagation();const V=K.currentTarget.getBoundingClientRect();A.current&&x.dispatchContextMenuEvent(A.current,V.left+V.width/2,V.bottom)}function W(){if(!r){l();return}if(z||p!==void 0){l();return}if(g)return;if(!(m!==void 0||GU({isCollapsed:!1,hasPreviewAttachment:z,patch:p,patchError:m,isPatchLoading:g}))){l();return}b(e.path).then(()=>{l()}).catch(()=>{})}let U;g&&r&&!I?U=c.jsx(Ln,{className:"h-3.5 w-3.5 shrink-0 animate-spin"}):r?U=c.jsx(gv,{className:"h-3.5 w-3.5 shrink-0"}):U=c.jsx(y9,{className:"h-3.5 w-3.5 shrink-0"});let B;return I?B=c.jsx("div",{className:"flex justify-center p-3",children:I.kind==="image"?c.jsx(Hk,{attachment:I,onClick:()=>O(I)}):c.jsx(qo,{attachment:I,onClick:()=>O(I)})}):g?B=c.jsxs("div",{className:"flex items-center justify-center px-3 py-8 text-sm text-muted-foreground",children:[c.jsx(Ln,{className:"mr-2 h-4 w-4 animate-spin"}),"Loading diff..."]}):m?B=c.jsx("div",{className:"px-3 py-4 text-sm text-destructive",children:m}):p!==void 0?B=c.jsx(nAe,{patch:p,options:{diffStyle:o,disableFileHeader:!0,disableBackground:!1,overflow:a?"wrap":"scroll",lineDiffType:"word",diffIndicators:"classic"}}):B=c.jsx("div",{className:"px-3 py-4 text-sm text-muted-foreground",children:"Diff unavailable."}),c.jsxs(Np,{children:[c.jsx(Tp,{asChild:!0,children:c.jsxs("div",{ref:A,className:"relative rounded-lg border border-border bg-background",children:[r?null:c.jsx("div",{ref:M,className:"pointer-events-none absolute inset-x-0 top-0 h-px","aria-hidden":"true"}),c.jsxs("div",{role:"button",tabIndex:0,onClick:W,onKeyDown:K=>{K.key!=="Enter"&&K.key!==" "||(K.preventDefault(),W())},className:pe("group/header sticky top-0 z-20 flex cursor-pointer items-center justify-between gap-3 bg-background pl-[7px] pr-2.5 py-1.5 text-[13px] text-muted-foreground transition-colors hover:bg-accent hover:text-foreground",!r&&!j&&"rounded-t-[calc(theme(borderRadius.lg)-1px)]",r&&"rounded-[calc(theme(borderRadius.lg)-1px)]",!r&&"border-b border-border/50"),children:[c.jsxs("div",{className:"flex min-w-0 items-center",children:[c.jsx(Kee,{checked:i,onClick:u}),c.jsx("div",{className:"min-w-0 truncate select-none ml-2 mr-1",children:e.path})]}),c.jsxs("div",{className:"flex shrink-0 items-center gap-2 select-none",children:[c.jsxs("span",{className:"whitespace-nowrap text-xs font-mono",children:[e.additions>0?c.jsxs("span",{className:"text-success",children:["+",e.additions]}):null,e.deletions>0?c.jsxs("span",{className:e.additions>0?"ml-2 text-destructive":"text-destructive",children:["-",e.deletions]}):null]}),c.jsx("button",{type:"button","aria-label":`Open actions for ${e.path}`,onClick:P,className:"flex h-5 w-5 shrink-0 items-center justify-center rounded-sm text-muted-foreground transition-colors hover:bg-accent hover:text-foreground",children:c.jsx(Gy,{className:"h-3.5 w-3.5 shrink-0"})}),U]})]}),r?null:c.jsx("div",{className:"kanna-diff-patch overflow-hidden rounded-b-[calc(theme(borderRadius.lg)-1px)] pb-[1px]",children:B}),c.jsx(Fp,{source:I&&C===I.id?zv(I,"user_attachment"):null,open:I!==null&&C===I.id,onOpenChange:K=>!K&&E(null)})]},e.path)}),c.jsxs(Ef,{children:[c.jsxs(Er,{onSelect:K=>{K.stopPropagation(),f.onOpenFile(e.path)},children:[c.jsx(dI,{className:"h-3.5 w-3.5"}),c.jsxs("span",{className:"text-xs font-medium",children:["Open in ",s]})]}),c.jsxs(Er,{onSelect:K=>{K.stopPropagation(),f.onOpenInFinder(e.path)},children:[c.jsx(Y1,{className:"h-3.5 w-3.5"}),c.jsx("span",{className:"text-xs font-medium",children:"Open in Finder"})]}),c.jsxs(Er,{onSelect:K=>{K.stopPropagation(),f.onDiscardFile(e.path)},className:"text-destructive hover:bg-destructive/10 focus:bg-destructive/10",children:[c.jsx(Pu,{className:"h-3.5 w-3.5"}),c.jsx("span",{className:"text-xs font-medium",children:"Discard Changes"})]}),c.jsxs(Er,{disabled:!w,onSelect:K=>{K.stopPropagation(),w&&f.onIgnoreFile(e.path)},children:[c.jsx(vz,{className:"h-3.5 w-3.5"}),c.jsx("span",{className:"text-xs font-medium",children:"Ignore File"})]}),c.jsxs(Er,{disabled:!k,onSelect:K=>{K.stopPropagation(),k&&f.onIgnoreFolder(e.path)},children:[c.jsx(vz,{className:"h-3.5 w-3.5"}),c.jsx("span",{className:"text-xs font-medium",children:"Ignore folder..."})]}),c.jsx(cG,{}),c.jsxs(Er,{onSelect:K=>{K.stopPropagation(),f.onCopyFilePath(e.path)},children:[c.jsx(cl,{className:"h-3.5 w-3.5"}),c.jsx("span",{className:"text-xs font-medium",children:"Copy File Path"})]}),c.jsxs(Er,{onSelect:K=>{K.stopPropagation(),f.onCopyRelativePath(e.path)},children:[c.jsx(cl,{className:"h-3.5 w-3.5"}),c.jsx("span",{className:"text-xs font-medium",children:"Copy Relative Path"})]})]})]})}function ELe({projectId:e,diffs:t,editorLabel:n,diffRenderMode:r,wrapLines:i,onOpenFile:s,onOpenInFinder:o,onDiscardFile:a,onIgnoreFile:l,onIgnoreFolder:u,onCopyFilePath:f,onCopyRelativePath:p,onListBranches:m,onPreviewMergeBranch:g,onMergeBranch:b,onCheckoutBranch:y,onCreateBranch:x,onGenerateCommitMessage:w,onInitializeGit:k,onGetGitHubPublishInfo:C,onCheckGitHubRepoAvailability:E,onSetupGitHub:A,onCommit:N,onSyncWithRemote:M,onLoadPatch:j,onDiffRenderModeChange:I,onWrapLinesChange:z,ports:F}){var At;const O=(F==null?void 0:F.dom)??Et,P=_.useMemo(()=>({onOpenFile:s,onOpenInFinder:o,onDiscardFile:a,onIgnoreFile:l,onIgnoreFolder:u,onCopyFilePath:f,onCopyRelativePath:p}),[s,o,a,l,u,f,p]),W=t.files.length>0,U=at(ke=>ke.isGenerating),B=at(ke=>ke.commitModeInFlight),K=at(ke=>ke.isSyncing),V=at(ke=>ke.isGitHubPublishModalOpen),Y=at(ke=>ke.patchesByPath),G=at(ke=>ke.patchErrorsByPath),D=at(ke=>ke.loadingPatchPaths),Q=at(ke=>ke.setIsGenerating),ae=at(ke=>ke.setCommitModeInFlight),re=at(ke=>ke.setIsSyncing),he=at(ke=>ke.setIsGitHubPublishModalOpen),ue=at(ke=>ke.reconcilePatches),ce=at(ke=>ke.setPatchLoading),ge=at(ke=>ke.clearPatchLoading),ne=at(ke=>ke.clearPatchError),le=at(ke=>ke.setPatchResult),te=at(ke=>ke.setPatchError),we=_.useRef(null),se=_.useRef(null),Pe=_.useRef({}),Fe=_.useMemo(()=>t.files.map(ke=>ke.path),[t.files]),ht=_.useMemo(()=>Fe.join("\0"),[Fe]),Dn=W?"changes":"history",on=uo(ke=>{var Ct;return e?((Ct=ke.projectUi[e])==null?void 0:Ct.viewMode)??Dn:Dn}),pn=uo(ke=>{var Ct;return e?((Ct=ke.projectUi[e])==null?void 0:Ct.collapsedPaths)??lw:lw}),nn=uo(ke=>{var Ct;return e?((Ct=ke.projectUi[e])==null?void 0:Ct.summary)??"":""}),Nt=uo(ke=>{var Ct;return e?((Ct=ke.projectUi[e])==null?void 0:Ct.description)??"":""}),Bt=uo(ke=>ke.reconcileCollapsedPaths),xn=uo(ke=>ke.toggleCollapsedPath),St=uo(ke=>ke.setViewMode),Cn=uo(ke=>ke.setCommitDraft),_n=uo(ke=>ke.clearCommitDraft),dn=qS(ke=>e?ke.checkedPathsByProjectId[e]??lw:lw),rt=qS(ke=>ke.reconcileProject),kt=qS(ke=>ke.setChecked),fn=qS(ke=>ke.setAllChecked),Xt=_.useRef(W);_.useEffect(()=>{e&&Bt(e,Fe)},[Fe,ht,e,Bt]),_.useEffect(()=>{const ke=Object.fromEntries(t.files.map(Vn=>[Vn.path,Vn.patchDigest]));ue(Fe,Vn=>Pe.current[Vn]===ke[Vn]),Pe.current=ke},[t.files,Fe,ht,ue]),_.useEffect(()=>{e&&rt(e,Fe)},[Fe,ht,e,rt]),_.useEffect(()=>{if(!e)return;if(Xt.current!==W){St(e,W?"changes":"history"),Xt.current=W;return}Xt.current=W},[W,e,St]);const Lt=_.useMemo(()=>t.files.filter(ke=>dn[ke.path]??!0).map(ke=>ke.path),[dn,t.files]),Gt=Lt.length,Qt=t.files.length>0&&Gt===t.files.length,Ut=Gt>0&&Gt<t.files.length,Wt=nn.trim(),Jt=Wt.length>0,Be=B!==null,Ue=U||Be,st=((At=t.branchHistory)==null?void 0:At.entries)??[],lt=t.behindCount??0,Ke=t.aheadCount??0,ot=t.hasUpstream===!0,Dt=t.hasUpstream===!1&&!!t.branchName,$t=t.hasOriginRemote===!0,zt=t.branchName?t.branchName.split("/").map(ke=>encodeURIComponent(ke)).join("/"):null;let Zt;Dt?Zt="publish":lt>0?Zt="pull":Zt="fetch";const bt=t.originRepoSlug&&zt?`https://github.com/${t.originRepoSlug}/compare/${zt}?expand=1`:null,ee=!!(ot&&bt&&t.branchName&&t.branchName!==t.defaultBranchName),Ae=t.status==="ready"&&Gt>0&&!Ue,He=t.status==="ready"&&Gt>0&&Jt&&!Ue,Ge=$t?"commit_and_push":"commit_only",Ze=t.branchName??"current branch";async function ft(ke){if(He){ae(ke);try{const Ct=await N({paths:Lt,summary:Wt,description:Nt.trim(),mode:ke});(Ct!=null&&Ct.ok||Ct!=null&&Ct.localCommitCreated)&&e&&_n(e)}finally{ae(null)}}}async function wt(){if(Ae){Q(!0);try{const ke=await w({paths:Lt});e&&Cn(e,{summary:ke.subject,description:ke.body})}finally{Q(!1)}}}function Ye(ke){if(!(!(ke.metaKey||ke.ctrlKey)||ke.key!=="Enter")){if(ke.preventDefault(),Jt){ft(Ge);return}wt()}}async function Vt(ke=Zt){if(!(t.status!=="ready"||K)){re(!0);try{await M(ke)}finally{re(!1)}}}const Xe=_.useCallback(async ke=>{var Ir;const{patchesByPath:Ct,loadingPatchPaths:Vn}=at.getState();if(Ct[ke]!==void 0||Vn[ke])return Ct[ke]??"";ce(ke),ne(ke);try{const Tr=await j(ke);le(ke,Tr);const de=(Ir=t.files.find(nt=>nt.path===ke))==null?void 0:Ir.patchDigest;return de&&(Pe.current={...Pe.current,[ke]:de}),Tr}catch(Tr){const de=Tr instanceof Error?Tr.message:String(Tr);throw te(ke,de),Tr}finally{ge(ke)}},[ne,ge,t.files,j,te,ce,le]),Tt=_.useCallback(ke=>ke.path,[]),ln=_.useCallback(({item:ke})=>{const Ct=pn[ke.path]??!0,Vn=dn[ke.path]??!0;return c.jsx("div",{className:"pb-1.5",children:c.jsx(EM.Provider,{init:void 0,children:c.jsx(kLe,{file:ke,rootRef:we,projectId:e,isCollapsed:Ct,isChecked:Vn,editorLabel:n,diffRenderMode:r,wrapLines:i,onToggleCollapsed:()=>{e&&xn(e,ke.path)},onToggleChecked:()=>{e&&kt(e,ke.path,!Vn)},fileActions:P,patch:Y[ke.path],patchError:G[ke.path],isPatchLoading:!!D[ke.path],onLoadPatch:Xe,ports:F})})})},[dn,pn,r,n,P,Xe,D,G,Y,F,e,kt,xn,i]);_.useEffect(()=>{var Ct,Vn;const ke=(Vn=(Ct=se.current)==null?void 0:Ct.getScrollableNode)==null?void 0:Vn.call(Ct);we.current=ke instanceof HTMLElement?ke:null},[on,t.files.length]);let Or;Ut?Or="Select all files for commit":Qt?Or="Unselect all files from commit":Or="Select all files for commit";let br;t.status==="ready"?$t?Zt==="publish"?br=c.jsxs(je,{variant:"ghost",size:"sm",onClick:()=>void Vt(),disabled:K,className:"h-7 gap-1.5 px-2 text-xs hover:!bg-transparent hover:!border-border/0",children:[K?c.jsx(Ln,{className:"h-3.5 w-3.5 animate-spin"}):c.jsx(Mw,{className:"h-3.5 w-3.5"}),c.jsx("span",{children:"Publish Branch"})]}):br=c.jsxs("div",{className:"flex items-center gap-1",children:[Zt==="fetch"?c.jsxs(ks,{delayDuration:0,children:[c.jsx(Es,{asChild:!0,children:c.jsxs(je,{variant:"ghost",size:"sm",onClick:()=>void Vt(),disabled:K,className:"h-7 gap-1.5 px-2 text-xs hover:!bg-transparent hover:!border-border/0",children:[K?c.jsx(Ln,{className:"h-3.5 w-3.5 animate-spin"}):c.jsx(gI,{className:"h-3.5 w-3.5"}),c.jsx("span",{children:"Fetch"})]})}),c.jsx(ms,{children:bLe(t.lastFetchedAt)})]}):c.jsxs(je,{variant:"ghost",size:"sm",onClick:()=>void Vt(),disabled:K,className:"h-7 gap-1.5 px-2 text-xs hover:!bg-transparent hover:!border-border/0",children:[K?c.jsx(Ln,{className:"h-3.5 w-3.5 animate-spin"}):c.jsx(fI,{className:"h-3.5 w-3.5"}),c.jsx("span",{children:"Pull"}),c.jsx("span",{className:"inline-flex min-w-4 items-center justify-center rounded-full bg-muted px-1 text-[10px] text-muted-foreground",children:lt})]}),ot&&Ke>0?c.jsxs(je,{variant:"default",size:"sm",onClick:()=>void Vt("push"),disabled:K,className:"h-7 gap-1.5 px-2 text-xs",children:[K?c.jsx(Ln,{className:"h-3.5 w-3.5 animate-spin"}):c.jsx(Mw,{className:"h-3.5 w-3.5"}),c.jsx("span",{children:"Push"}),c.jsx("span",{className:"inline-flex min-w-4 items-center justify-center rounded-full bg-primary-foreground/15 px-1 text-[10px] text-primary-foreground",children:Ke})]}):null,ee&&bt?c.jsxs(je,{variant:"ghost",size:"sm",onClick:()=>{O.openWindow(bt,"_blank","noopener,noreferrer")},className:"h-7 gap-1.5 px-2 text-xs hover:!bg-transparent hover:!border-border/0",children:[c.jsx(k9,{className:"h-3.5 w-3.5"}),c.jsx("span",{children:"PR"})]}):null]}):br=c.jsxs(je,{variant:"default",size:"sm",onClick:()=>he(!0),className:"h-7 gap-1.5 px-3 text-xs",children:[c.jsx(fue,{className:"h-3.5 w-3.5"}),c.jsx("span",{children:"Push to GitHub"})]}):br=null;let nr;t.status==="no_repo"?nr=c.jsx("div",{className:"flex h-full items-center justify-center px-6 py-3 text-center",children:c.jsxs("div",{className:"flex max-w-[280px] flex-col items-center gap-3",children:[c.jsx("p",{className:"text-sm text-muted-foreground",children:"Initialize git here to start tracking branches, diffs, and history."}),c.jsx(je,{size:"sm",onClick:()=>void k(),children:"Init Git"})]})}):on==="history"?st.length===0?nr=c.jsx("div",{className:"flex h-full items-center justify-center px-6 py-3 text-center",children:c.jsxs("p",{className:"text-sm text-muted-foreground",children:["No recent commits on ",t.branchName??"this branch","."]})}):nr=c.jsx("div",{className:"h-full overflow-y-auto [scrollbar-gutter:stable] space-y-1.5 p-1.5",children:st.map((ke,Ct)=>c.jsx(yLe,{entry:ke,isPendingPush:Ct<Ke,ports:F},ke.sha))}):t.files.length===0?nr=c.jsx("div",{className:"flex h-full items-center justify-center px-6 py-3 text-center",children:c.jsx("p",{className:"text-sm text-muted-foreground",children:"No file changes."})}):nr=null;let Fr;Jt?Be?Fr=c.jsx(Ln,{strokeWidth:2.5,className:"size-3 shrink-0 animate-spin"}):Ge==="commit_and_push"&&t.hasUpstream?Fr=c.jsx(Mw,{strokeWidth:2.5,className:"size-3 shrink-0"}):Ge==="commit_and_push"?Fr=c.jsx(C9,{strokeWidth:2.5,className:"size-3 shrink-0"}):Fr=c.jsx(qs,{strokeWidth:2.5,className:"size-3 shrink-0"}):U?Fr=c.jsx(Ln,{strokeWidth:2.5,className:"size-3 shrink-0 animate-spin"}):Fr=c.jsx(que,{strokeWidth:2.5,className:"size-3 shrink-0"});let Bn;return Jt?Be?Bn=B==="commit_only"?"Committing...":"Committing & Pushing...":Ge==="commit_only"?Bn=c.jsxs(c.Fragment,{children:["Commit to ",c.jsx(lu,{strokeWidth:2.5,className:"mr-[4.5px] ml-0.5 inline size-3 "}),Ze]}):t.hasUpstream?Bn=c.jsxs(c.Fragment,{children:["Commit & push to ",c.jsx(lu,{strokeWidth:2.5,className:"mr-[4.5px] ml-0.5 inline size-3 "}),Ze]}):Bn=c.jsxs(c.Fragment,{children:["Commit & publish ",c.jsx(lu,{strokeWidth:2.5,className:"mr-[4.5px] ml-0.5 inline size-3 "}),Ze]}):U?Bn="Generating...":Bn=c.jsxs(c.Fragment,{children:["Generate message for ",c.jsx(lu,{strokeWidth:2.5,className:"mr-[4.5px] ml-0.5 inline size-3 "}),Ze]}),c.jsx("div",{className:"h-full min-h-0 border-l border-border bg-background md:min-w-[370px]",children:c.jsxs("div",{className:"flex h-full min-h-0 flex-col",children:[c.jsxs("div",{className:"flex shrink-0 items-center gap-2 border-b border-border pl-2.5 pr-2 py-2",children:[c.jsx("div",{className:"flex min-w-0 flex-1 items-center gap-2",children:c.jsx(CLe,{currentBranchName:t.branchName,onListBranches:m,onPreviewMergeBranch:g,onMergeBranch:b,onCheckoutBranch:y,onCreateBranch:x})}),br]}),c.jsxs("div",{className:"relative min-h-0 flex-1",children:[c.jsx("div",{className:"sticky top-0 z-30 pl-[14px] pr-[12px] pt-[6px] bg-gradient-to-b from-background to-transparent",children:c.jsx("div",{className:"relative h-[40px] flex min-w-0 items-center justify-center gap-[13px]",children:c.jsxs("div",{className:"flex min-w-0 flex-1 items-center justify-between gap-[13px] relative",children:[on==="changes"?c.jsxs("div",{className:"flex items-center gap-2 text-[11px] text-muted-foreground/70",children:[c.jsx(Kee,{checked:Qt,mixed:Ut,label:Or,onClick:()=>{!e||t.files.length===0||fn(e,Fe,Ut?!0:!Qt)}}),c.jsxs("span",{children:[Gt," files"]})]}):c.jsx("div",{}),c.jsx("div",{className:"pointer-events-none absolute left-1/2 -translate-x-1/2 top-1/2 -translate-y-1/2",children:c.jsx("div",{className:"pointer-events-auto",children:c.jsx(Hs,{value:on,onValueChange:ke=>{e&&hLe(ke)&&St(e,ke)},size:"sm",optionClassName:"flex-1 justify-center",options:[{value:"changes",label:"Changes"},{value:"history",label:"History"}]})})}),on==="changes"?c.jsxs("div",{className:"flex items-center gap-1",children:[c.jsx(hA,{label:"Unified diff",active:r==="unified",onClick:()=>I("unified"),children:c.jsx(fde,{className:"h-4 w-4"})}),c.jsx(hA,{label:"Side-by-side diff",active:r==="split",onClick:()=>I("split"),children:c.jsx(vce,{className:"h-4 w-4"})}),c.jsx(hA,{label:i?"Disable word wrap":"Enable word wrap",active:i,onClick:()=>z(!i),children:c.jsx(Ude,{className:"h-4 w-4"})})]}):c.jsx("div",{})]})})}),c.jsxs("div",{className:"h-full min-h-0",children:[nr,t.status!=="no_repo"&&on!=="history"&&t.files.length>0&&c.jsxs("div",{className:"relative h-full min-h-0",children:[c.jsx(vY,{ref:se,data:t.files,keyExtractor:Tt,renderItem:ln,extraData:{collapsedPaths:pn,checkedPaths:dn,patchesByPath:Y,patchErrorsByPath:G,loadingPatchPaths:D,diffRenderMode:r,wrapLines:i},estimatedItemSize:44,className:"h-full overflow-y-auto [scrollbar-gutter:stable] p-1.5",contentContainerStyle:{paddingBottom:on==="changes"?220:40}}),on==="changes"?c.jsxs("div",{className:"pointer-events-none absolute inset-x-0 bottom-0 py-1 pb-6 z-30",children:[c.jsx("div",{className:"absolute inset-x-0 bottom-0 top-0 bg-gradient-to-t from-background to-transparent"}),c.jsx("div",{className:"pointer-events-auto relative",children:c.jsxs("div",{className:"space-y-0 rounded-xl mx-auto max-w-[700px]",children:[c.jsx(hn,{value:nn,onChange:ke=>{e&&Cn(e,{summary:ke.target.value,description:Nt})},onKeyDown:Ye,placeholder:"Commit message (override)",className:"rounded-t-xl rounded-b-none px-3",disabled:Ue||t.status!=="ready"}),c.jsx(ic,{value:Nt,onChange:ke=>{e&&Cn(e,{summary:nn,description:ke.target.value})},onKeyDown:Ye,placeholder:"Description",rows:5,className:"-mt-px rounded-t-none rounded-b-xl px-3 outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background mb-2",disabled:Ue||t.status!=="ready"}),c.jsx("div",{className:"w-full flex flex-row",children:c.jsxs(Np,{children:[c.jsx(Tp,{asChild:!0,children:c.jsx(je,{type:"button",className:"-mt-px w-full rounded-xl",disabled:Jt?!He:!Ae,onClick:()=>{if(Jt){ft(Ge);return}wt()},children:c.jsxs("span",{className:"flex min-w-0 items-center gap-1.5",children:[Fr,c.jsx("span",{className:"min-w-0 truncate text-left",children:Bn})]})})}),t.hasUpstream?c.jsx(Ef,{children:c.jsx(Er,{disabled:!Jt||!He,onSelect:ke=>{ke.stopPropagation(),ft("commit_only")},children:"Commit Only"})}):null]})})]})})]}):null]})]})]}),c.jsx(SLe,{open:V,onOpenChange:he,onGetGitHubPublishInfo:C,onCheckGitHubRepoAvailability:E,onPublish:A,ports:F})]})})}const NLe=_.memo(ELe);function TLe(e,t){const n=getComputedStyle(e),r=parseFloat(n.fontSize);return t*r}function ALe(e,t){const n=getComputedStyle(e.ownerDocument.body),r=parseFloat(n.fontSize);return t*r}function RLe(e){return e/100*window.innerHeight}function MLe(e){return e/100*window.innerWidth}function jLe(e){switch(typeof e){case"number":return[e,"px"];case"string":{const t=parseFloat(e);return e.endsWith("%")?[t,"%"]:e.endsWith("px")?[t,"px"]:e.endsWith("rem")?[t,"rem"]:e.endsWith("em")?[t,"em"]:e.endsWith("vh")?[t,"vh"]:e.endsWith("vw")?[t,"vw"]:[t,"%"]}}}function ly({groupSize:e,panelElement:t,styleProp:n}){let r;const[i,s]=jLe(n);switch(s){case"%":{r=i/100*e;break}case"px":{r=i;break}case"rem":{r=ALe(t,i);break}case"em":{r=TLe(t,i);break}case"vh":{r=RLe(i);break}case"vw":{r=MLe(i);break}}return r}function go(e){return parseFloat(e.toFixed(3))}function cv({group:e}){const{orientation:t,panels:n}=e;return n.reduce((r,i)=>(r+=t==="horizontal"?i.element.offsetWidth:i.element.offsetHeight,r),0)}function zj(e){const{panels:t}=e,n=cv({group:e});return n===0?t.map(r=>({groupResizeBehavior:r.panelConstraints.groupResizeBehavior,collapsedSize:0,collapsible:r.panelConstraints.collapsible===!0,defaultSize:void 0,disabled:r.panelConstraints.disabled,minSize:0,maxSize:100,panelId:r.id})):t.map(r=>{const{element:i,panelConstraints:s}=r;let o=0;if(s.collapsedSize!==void 0){const f=ly({groupSize:n,panelElement:i,styleProp:s.collapsedSize});o=go(f/n*100)}let a;if(s.defaultSize!==void 0){const f=ly({groupSize:n,panelElement:i,styleProp:s.defaultSize});a=go(f/n*100)}let l=0;if(s.minSize!==void 0){const f=ly({groupSize:n,panelElement:i,styleProp:s.minSize});l=go(f/n*100)}let u=100;if(s.maxSize!==void 0){const f=ly({groupSize:n,panelElement:i,styleProp:s.maxSize});u=go(f/n*100)}return{groupResizeBehavior:s.groupResizeBehavior,collapsedSize:o,collapsible:s.collapsible===!0,defaultSize:a,disabled:s.disabled,minSize:l,maxSize:u,panelId:r.id}})}function pr(e,t="Assertion error"){if(!e)throw Error(t)}function Fj(e,t){return Array.from(t).sort(e==="horizontal"?OLe:ILe)}function OLe(e,t){const n=e.element.offsetLeft-t.element.offsetLeft;return n!==0?n:e.element.offsetWidth-t.element.offsetWidth}function ILe(e,t){const n=e.element.offsetTop-t.element.offsetTop;return n!==0?n:e.element.offsetHeight-t.element.offsetHeight}function qee(e){return e!==null&&typeof e=="object"&&"nodeType"in e&&e.nodeType===Node.ELEMENT_NODE}function Yee(e,t){return{x:e.x>=t.left&&e.x<=t.right?0:Math.min(Math.abs(e.x-t.left),Math.abs(e.x-t.right)),y:e.y>=t.top&&e.y<=t.bottom?0:Math.min(Math.abs(e.y-t.top),Math.abs(e.y-t.bottom))}}function PLe({orientation:e,rects:t,targetRect:n}){const r={x:n.x+n.width/2,y:n.y+n.height/2};let i,s=Number.MAX_VALUE;for(const o of t){const{x:a,y:l}=Yee(r,o),u=e==="horizontal"?a:l;u<s&&(s=u,i=o)}return pr(i,"No rect found"),i}let cw;function LLe(){return cw===void 0&&(typeof matchMedia=="function"?cw=!!matchMedia("(pointer:coarse)").matches:cw=!1),cw}function Xee(e){const{element:t,orientation:n,panels:r,separators:i}=e,s=Fj(n,Array.from(t.children).filter(qee).map(b=>({element:b}))).map(({element:b})=>b),o=[];let a=!1,l=!1,u=-1,f=-1,p=0,m,g=[];{let b=-1;for(const y of s)y.hasAttribute("data-panel")&&(b++,y.ariaDisabled===null&&(p++,u===-1&&(u=b),f=b))}if(p>1){let b=-1;for(const y of s)if(y.hasAttribute("data-panel")){b++;const x=r.find(w=>w.element===y);if(x){if(m){const w=m.element.getBoundingClientRect(),k=y.getBoundingClientRect();let C;if(l){const E=n==="horizontal"?new DOMRect(w.right,w.top,0,w.height):new DOMRect(w.left,w.bottom,w.width,0),A=n==="horizontal"?new DOMRect(k.left,k.top,0,k.height):new DOMRect(k.left,k.top,k.width,0);switch(g.length){case 0:{C=[E,A];break}case 1:{const N=g[0],M=PLe({orientation:n,rects:[w,k],targetRect:N.element.getBoundingClientRect()});C=[N,M===w?A:E];break}default:{C=g;break}}}else g.length?C=g:C=[n==="horizontal"?new DOMRect(w.right,k.top,k.left-w.right,k.height):new DOMRect(k.left,w.bottom,k.width,k.top-w.bottom)];for(const E of C){let A="width"in E?E:E.element.getBoundingClientRect();const N=LLe()?e.resizeTargetMinimumSize.coarse:e.resizeTargetMinimumSize.fine;if(A.width<N){const j=N-A.width;A=new DOMRect(A.x-j/2,A.y,A.width+j,A.height)}if(A.height<N){const j=N-A.height;A=new DOMRect(A.x,A.y-j/2,A.width,A.height+j)}const M=b<=u||b>f;!a&&!M&&o.push({group:e,groupSize:cv({group:e}),panels:[m,x],separator:"width"in E?void 0:E,rect:A}),a=!1}}l=!1,m=x,g=[]}}else if(y.hasAttribute("data-separator")){y.ariaDisabled!==null&&(a=!0);const x=i.find(w=>w.element===y);x?g.push(x):(m=void 0,g=[])}else l=!0}return o}var Qd,OW;let Qee=(OW=class{constructor(){mt(this,Qd,{})}addListener(t,n){const r=oe(this,Qd)[t];return r===void 0?oe(this,Qd)[t]=[n]:r.includes(n)||r.push(n),()=>{this.removeListener(t,n)}}emit(t,n){const r=oe(this,Qd)[t];if(r!==void 0)if(r.length===1)r[0].call(null,n);else{let i=!1,s=null;const o=Array.from(r);for(let a=0;a<o.length;a++){const l=o[a];try{l.call(null,n)}catch(u){s===null&&(i=!0,s=u)}}if(i)throw s}}removeAllListeners(){Qe(this,Qd,{})}removeListener(t,n){const r=oe(this,Qd)[t];if(r!==void 0){const i=r.indexOf(n);i>=0&&r.splice(i,1)}}},Qd=new WeakMap,OW),Xl=new Map;const Jee=new Qee;function DLe(e){Xl=new Map(Xl),Xl.delete(e)}function YU(e,t){for(const[n]of Xl)if(n.id===e)return n}function cf(e,t){for(const[n,r]of Xl)if(n.id===e)return r;if(t)throw Error(`Could not find data for Group with id ${e}`)}function Bp(){return Xl}function uD(e,t){return Jee.addListener("groupChange",n=>{n.group.id===e&&t(n)})}function Iu(e,t){const n=Xl.get(e);Xl=new Map(Xl),Xl.set(e,t),Jee.emit("groupChange",{group:e,prev:n,next:t})}function $Le(e,t,n){let r,i={x:1/0,y:1/0};for(const s of t){const o=Yee(n,s.rect);switch(e){case"horizontal":{o.x<=i.x&&(r=s,i=o);break}case"vertical":{o.y<=i.y&&(r=s,i=o);break}}}return r?{distance:i,hitRegion:r}:void 0}function zLe(e){return e!==null&&typeof e=="object"&&"nodeType"in e&&e.nodeType===Node.DOCUMENT_FRAGMENT_NODE}function FLe(e,t){if(e===t)throw new Error("Cannot compare node with itself");const n={a:JU(e),b:JU(t)};let r;for(;n.a.at(-1)===n.b.at(-1);)r=n.a.pop(),n.b.pop();pr(r,"Stacking order can only be calculated for elements with a common ancestor");const i={a:QU(XU(n.a)),b:QU(XU(n.b))};if(i.a===i.b){const s=r.childNodes,o={a:n.a.at(-1),b:n.b.at(-1)};let a=s.length;for(;a--;){const l=s[a];if(l===o.a)return 1;if(l===o.b)return-1}}return Math.sign(i.a-i.b)}const BLe=/\b(?:position|zIndex|opacity|transform|webkitTransform|mixBlendMode|filter|webkitFilter|isolation)\b/;function ULe(e){const t=getComputedStyle(Zee(e)??e).display;return t==="flex"||t==="inline-flex"}function HLe(e){const t=getComputedStyle(e);return!!(t.position==="fixed"||t.zIndex!=="auto"&&(t.position!=="static"||ULe(e))||+t.opacity<1||"transform"in t&&t.transform!=="none"||"webkitTransform"in t&&t.webkitTransform!=="none"||"mixBlendMode"in t&&t.mixBlendMode!=="normal"||"filter"in t&&t.filter!=="none"||"webkitFilter"in t&&t.webkitFilter!=="none"||"isolation"in t&&t.isolation==="isolate"||BLe.test(t.willChange)||t.webkitOverflowScrolling==="touch")}function XU(e){let t=e.length;for(;t--;){const n=e[t];if(pr(n,"Missing node"),HLe(n))return n}return null}function QU(e){return e&&Number(getComputedStyle(e).zIndex)||0}function JU(e){const t=[];for(;e;)t.push(e),e=Zee(e);return t}function Zee(e){const{parentNode:t}=e;return zLe(t)?t.host:t}function WLe(e,t){return e.x<t.x+t.width&&e.x+e.width>t.x&&e.y<t.y+t.height&&e.y+e.height>t.y}function VLe({groupElement:e,hitRegion:t,pointerEventTarget:n}){if(!qee(n)||n.contains(e)||e.contains(n))return!0;if(FLe(n,e)>0){let r=n;for(;r;){if(r.contains(e))return!0;if(WLe(r.getBoundingClientRect(),t))return!1;r=r.parentElement}}return!0}function dD(e,t){const n=[];return t.forEach((r,i)=>{if(i.disabled)return;const s=Xee(i),o=$Le(i.orientation,s,{x:e.clientX,y:e.clientY});o&&o.distance.x<=0&&o.distance.y<=0&&VLe({groupElement:i.element,hitRegion:o.hitRegion.rect,pointerEventTarget:e.target})&&n.push(o.hitRegion)}),n}function KLe(e,t){if(e.length!==t.length)return!1;for(let n=0;n<e.length;n++)if(e[n]!=t[n])return!1;return!0}function Bs(e,t,n=0){return Math.abs(go(e)-go(t))<=n}function Ll(e,t){return Bs(e,t)?0:e>t?1:-1}function Zm({overrideDisabledPanels:e,panelConstraints:t,prevSize:n,size:r}){const{collapsedSize:i=0,collapsible:s,disabled:o,maxSize:a=100,minSize:l=0}=t;if(o&&!e)return n;if(Ll(r,l)<0)if(s){const u=(i+l)/2;Ll(r,u)<0?r=i:r=l}else r=l;return r=Math.min(a,r),r=go(r),r}function Wx({delta:e,initialLayout:t,panelConstraints:n,pivotIndices:r,prevLayout:i,trigger:s}){if(Bs(e,0))return t;const o=s==="imperative-api",a=Object.values(t),l=Object.values(i),u=[...a],[f,p]=r;pr(f!=null,"Invalid first pivot index"),pr(p!=null,"Invalid second pivot index");let m=0;switch(s){case"keyboard":{{const y=e<0?p:f,x=n[y];pr(x,`Panel constraints not found for index ${y}`);const{collapsedSize:w=0,collapsible:k,minSize:C=0}=x;if(k){const E=a[y];if(pr(E!=null,`Previous layout not found for panel index ${y}`),Bs(E,w)){const A=C-E;Ll(A,Math.abs(e))>0&&(e=e<0?0-A:A)}}}{const y=e<0?f:p,x=n[y];pr(x,`No panel constraints found for index ${y}`);const{collapsedSize:w=0,collapsible:k,minSize:C=0}=x;if(k){const E=a[y];if(pr(E!=null,`Previous layout not found for panel index ${y}`),Bs(E,C)){const A=E-w;Ll(A,Math.abs(e))>0&&(e=e<0?0-A:A)}}}break}default:{const y=e<0?p:f,x=n[y];pr(x,`Panel constraints not found for index ${y}`);const w=a[y],{collapsible:k,collapsedSize:C,minSize:E}=x;if(k&&Ll(w,E)<0)if(e>0){const A=E-C,N=A/2,M=w+e;Ll(M,E)<0&&(e=Ll(e,N)<=0?0:A)}else{const A=E-C,N=100-A/2,M=w-e;Ll(M,E)<0&&(e=Ll(100+e,N)>0?0:-A)}break}}{const y=e<0?1:-1;let x=e<0?p:f,w=0;for(;;){const C=a[x];pr(C!=null,`Previous layout not found for panel index ${x}`);const E=Zm({overrideDisabledPanels:o,panelConstraints:n[x],prevSize:C,size:100})-C;if(w+=E,x+=y,x<0||x>=n.length)break}const k=Math.min(Math.abs(e),Math.abs(w));e=e<0?0-k:k}{let y=e<0?f:p;for(;y>=0&&y<n.length;){const x=Math.abs(e)-Math.abs(m),w=a[y];pr(w!=null,`Previous layout not found for panel index ${y}`);const k=w-x,C=Zm({overrideDisabledPanels:o,panelConstraints:n[y],prevSize:w,size:k});if(!Bs(w,C)&&(m+=w-C,u[y]=C,m.toFixed(3).localeCompare(Math.abs(e).toFixed(3),void 0,{numeric:!0})>=0))break;e<0?y--:y++}}if(KLe(l,u))return i;{const y=e<0?p:f,x=a[y];pr(x!=null,`Previous layout not found for panel index ${y}`);const w=x+m,k=Zm({overrideDisabledPanels:o,panelConstraints:n[y],prevSize:x,size:w});if(u[y]=k,!Bs(k,w)){let C=w-k,E=e<0?p:f;for(;E>=0&&E<n.length;){const A=u[E];pr(A!=null,`Previous layout not found for panel index ${E}`);const N=A+C,M=Zm({overrideDisabledPanels:o,panelConstraints:n[E],prevSize:A,size:N});if(Bs(A,M)||(C-=M-A,u[E]=M),Bs(C,0))break;e>0?E--:E++}}}const g=Object.values(u).reduce((y,x)=>x+y,0);if(!Bs(g,100,.1))return i;const b=Object.keys(i);return u.reduce((y,x,w)=>(y[b[w]]=x,y),{})}function vp(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(const n in e)if(t[n]===void 0||Ll(e[n],t[n])!==0)return!1;return!0}function bp({layout:e,panelConstraints:t}){const n=Object.values(e),r=[...n],i=r.reduce((a,l)=>a+l,0);if(r.length!==t.length)throw Error(`Invalid ${t.length} panel layout: ${r.map(a=>`${a}%`).join(", ")}`);if(!Bs(i,100)&&r.length>0)for(let a=0;a<t.length;a++){const l=r[a];pr(l!=null,`No layout data found for index ${a}`);const u=100/i*l;r[a]=u}let s=0;for(let a=0;a<t.length;a++){const l=n[a];pr(l!=null,`No layout data found for index ${a}`);const u=r[a];pr(u!=null,`No layout data found for index ${a}`);const f=Zm({overrideDisabledPanels:!0,panelConstraints:t[a],prevSize:l,size:u});u!=f&&(s+=u-f,r[a]=f)}if(!Bs(s,0))for(let a=0;a<t.length;a++){const l=r[a];pr(l!=null,`No layout data found for index ${a}`);const u=l+s,f=Zm({overrideDisabledPanels:!0,panelConstraints:t[a],prevSize:l,size:u});if(l!==f&&(s-=f-l,r[a]=f,Bs(s,0)))break}const o=Object.keys(e);return r.reduce((a,l,u)=>(a[o[u]]=l,a),{})}function ete({groupId:e,panelId:t}){const n=()=>{const a=Bp();for(const[l,{defaultLayoutDeferred:u,derivedPanelConstraints:f,layout:p,groupSize:m,separatorToPanels:g}]of a)if(l.id===e)return{defaultLayoutDeferred:u,derivedPanelConstraints:f,group:l,groupSize:m,layout:p,separatorToPanels:g};throw Error(`Group ${e} not found`)},r=()=>{const a=n().derivedPanelConstraints.find(l=>l.panelId===t);if(a!==void 0)return a;throw Error(`Panel constraints not found for Panel ${t}`)},i=()=>{const a=n().group.panels.find(l=>l.id===t);if(a!==void 0)return a;throw Error(`Layout not found for Panel ${t}`)},s=()=>{const a=n().layout[t];if(a!==void 0)return a;throw Error(`Layout not found for Panel ${t}`)},o=a=>{const l=s();if(a===l)return;const{defaultLayoutDeferred:u,derivedPanelConstraints:f,group:p,groupSize:m,layout:g,separatorToPanels:b}=n(),y=p.panels.findIndex(C=>C.id===t),x=y===p.panels.length-1,w=Wx({delta:x?l-a:a-l,initialLayout:g,panelConstraints:f,pivotIndices:x?[y-1,y]:[y,y+1],prevLayout:g,trigger:"imperative-api"}),k=bp({layout:w,panelConstraints:f});vp(g,k)||Iu(p,{defaultLayoutDeferred:u,derivedPanelConstraints:f,groupSize:m,layout:k,separatorToPanels:b})};return{collapse:()=>{const{collapsible:a,collapsedSize:l}=r(),{mutableValues:u}=i(),f=s();a&&f!==l&&(u.expandToSize=f,o(l))},expand:()=>{const{collapsible:a,collapsedSize:l,minSize:u}=r(),{mutableValues:f}=i(),p=s();if(a&&p===l){let m=f.expandToSize??u;m===0&&(m=1),o(m)}},getSize:()=>{const{group:a}=n(),l=s(),{element:u}=i(),f=a.orientation==="horizontal"?u.offsetWidth:u.offsetHeight;return{asPercentage:l,inPixels:f}},isCollapsed:()=>{const{collapsible:a,collapsedSize:l}=r(),u=s();return a&&Bs(l,u)},resize:a=>{const{group:l}=n(),{element:u}=i(),f=cv({group:l}),p=ly({groupSize:f,panelElement:u,styleProp:a}),m=go(p/f*100);o(m)}}}function ZU(e){if(e.defaultPrevented)return;const t=Bp();dD(e,t).forEach(n=>{if(n.separator){const r=n.panels.find(i=>i.panelConstraints.defaultSize!==void 0);if(r){const i=r.panelConstraints.defaultSize,s=ete({groupId:n.group.id,panelId:r.id});s&&i!==void 0&&(s.resize(i),e.preventDefault())}}})}function uC(e){const t=Bp();for(const[n]of t)if(n.separators.some(r=>r.element===e))return n;throw Error("Could not find parent Group for separator element")}function tte({groupId:e}){const t=()=>{const n=Bp();for(const[r,i]of n)if(r.id===e)return{group:r,...i};throw Error(`Could not find Group with id "${e}"`)};return{getLayout(){const{defaultLayoutDeferred:n,layout:r}=t();return n?{}:r},setLayout(n){const{defaultLayoutDeferred:r,derivedPanelConstraints:i,group:s,groupSize:o,layout:a,separatorToPanels:l}=t(),u=bp({layout:n,panelConstraints:i});return r?a:(vp(a,u)||Iu(s,{defaultLayoutDeferred:r,derivedPanelConstraints:i,groupSize:o,layout:u,separatorToPanels:l}),u)}}}function sh(e,t){const n=uC(e),r=cf(n.id,!0),i=n.separators.find(f=>f.element===e);pr(i,"Matching separator not found");const s=r.separatorToPanels.get(i);pr(s,"Matching panels not found");const o=s.map(f=>n.panels.indexOf(f)),a=tte({groupId:n.id}).getLayout(),l=Wx({delta:t,initialLayout:a,panelConstraints:r.derivedPanelConstraints,pivotIndices:o,prevLayout:a,trigger:"keyboard"}),u=bp({layout:l,panelConstraints:r.derivedPanelConstraints});vp(a,u)||Iu(n,{defaultLayoutDeferred:r.defaultLayoutDeferred,derivedPanelConstraints:r.derivedPanelConstraints,groupSize:r.groupSize,layout:u,separatorToPanels:r.separatorToPanels})}function eH(e){if(e.defaultPrevented)return;const t=e.currentTarget,n=uC(t);if(!n.disabled)switch(e.key){case"ArrowDown":{e.preventDefault(),n.orientation==="vertical"&&sh(t,5);break}case"ArrowLeft":{e.preventDefault(),n.orientation==="horizontal"&&sh(t,-5);break}case"ArrowRight":{e.preventDefault(),n.orientation==="horizontal"&&sh(t,5);break}case"ArrowUp":{e.preventDefault(),n.orientation==="vertical"&&sh(t,-5);break}case"End":{e.preventDefault(),sh(t,100);break}case"Enter":{e.preventDefault();const r=uC(t),i=cf(r.id,!0),{derivedPanelConstraints:s,layout:o,separatorToPanels:a}=i,l=r.separators.find(m=>m.element===t);pr(l,"Matching separator not found");const u=a.get(l);pr(u,"Matching panels not found");const f=u[0],p=s.find(m=>m.panelId===f.id);if(pr(p,"Panel metadata not found"),p.collapsible){const m=o[f.id],g=p.collapsedSize===m?r.mutableState.expandedPanelSizes[f.id]??p.minSize:p.collapsedSize;sh(t,g-m)}break}case"F6":{e.preventDefault();const r=uC(t).separators.map(o=>o.element),i=Array.from(r).findIndex(o=>o===e.currentTarget);pr(i!==null,"Index not found");const s=e.shiftKey?i>0?i-1:r.length-1:i+1<r.length?i+1:0;r[s].focus({preventScroll:!0});break}case"Home":{e.preventDefault(),sh(t,-100);break}}}let wg={cursorFlags:0,state:"inactive"};const fD=new Qee;function yp(){return wg}function GLe(e){return fD.addListener("change",e)}function qLe(e){const t=wg,n={...wg};n.cursorFlags=e,wg=n,fD.emit("change",{prev:t,next:n})}function Cg(e){const t=wg;wg=e,fD.emit("change",{prev:t,next:e})}function tH(e){if(e.defaultPrevented||e.pointerType==="mouse"&&e.button>0)return;const t=Bp(),n=dD(e,t),r=new Map;let i=!1;n.forEach(s=>{s.separator&&(i||(i=!0,s.separator.element.focus({preventScroll:!0})));const o=t.get(s.group);o&&r.set(s.group,o.layout)}),Cg({cursorFlags:0,hitRegions:n,initialLayoutMap:r,pointerDownAtPoint:{x:e.clientX,y:e.clientY},state:"active"}),n.length&&e.preventDefault()}const YLe=e=>e,pA=()=>{},nte=1,rte=2,ite=4,ste=8,nH=3,rH=12;let uw;function iH(){return uw===void 0&&(uw=!1,typeof window<"u"&&(window.navigator.userAgent.includes("Chrome")||window.navigator.userAgent.includes("Firefox"))&&(uw=!0)),uw}function XLe({cursorFlags:e,groups:t,state:n}){let r=0,i=0;switch(n){case"active":case"hover":t.forEach(s=>{if(!s.mutableState.disableCursor)switch(s.orientation){case"horizontal":{r++;break}case"vertical":{i++;break}}})}if(!(r===0&&i===0)){switch(n){case"active":{if(e&&iH()){const s=(e&nte)!==0,o=(e&rte)!==0,a=(e&ite)!==0,l=(e&ste)!==0;if(s)return a?"se-resize":l?"ne-resize":"e-resize";if(o)return a?"sw-resize":l?"nw-resize":"w-resize";if(a)return"s-resize";if(l)return"n-resize"}break}}return iH()?r>0&&i>0?"move":r>0?"ew-resize":"ns-resize":r>0&&i>0?"grab":r>0?"col-resize":"row-resize"}}const sH=new WeakMap;function hD(e){if(e.defaultView===null||e.defaultView===void 0)return;let{prevStyle:t,styleSheet:n}=sH.get(e)??{};n===void 0&&(n=new e.defaultView.CSSStyleSheet,e.adoptedStyleSheets&&e.adoptedStyleSheets.push(n));const r=yp();switch(r.state){case"active":case"hover":{const i=XLe({cursorFlags:r.cursorFlags,groups:r.hitRegions.map(o=>o.group),state:r.state}),s=`*, *:hover {cursor: ${i} !important; }`;if(t===s)return;t=s,i?n.cssRules.length===0?n.insertRule(s):n.replaceSync(s):n.cssRules.length===1&&n.deleteRule(0);break}case"inactive":{t=void 0,n.cssRules.length===1&&n.deleteRule(0);break}}sH.set(e,{prevStyle:t,styleSheet:n})}function ote({document:e,event:t,hitRegions:n,initialLayoutMap:r,mountedGroups:i,pointerDownAtPoint:s,prevCursorFlags:o}){let a=0;n.forEach(u=>{const{group:f,groupSize:p}=u,{orientation:m,panels:g}=f,{disableCursor:b}=f.mutableState;let y=0;s?m==="horizontal"?y=(t.clientX-s.x)/p*100:y=(t.clientY-s.y)/p*100:m==="horizontal"?y=t.clientX<0?-100:100:y=t.clientY<0?-100:100;const x=r.get(f),w=i.get(f);if(!x||!w)return;const{defaultLayoutDeferred:k,derivedPanelConstraints:C,groupSize:E,layout:A,separatorToPanels:N}=w;if(C&&A&&N){const M=Wx({delta:y,initialLayout:x,panelConstraints:C,pivotIndices:u.panels.map(j=>g.indexOf(j)),prevLayout:A,trigger:"mouse-or-touch"});if(vp(M,A)){if(y!==0&&!b)switch(m){case"horizontal":{a|=y<0?nte:rte;break}case"vertical":{a|=y<0?ite:ste;break}}}else Iu(u.group,{defaultLayoutDeferred:k,derivedPanelConstraints:C,groupSize:E,layout:M,separatorToPanels:N})}});let l=0;t.movementX===0?l|=o&nH:l|=a&nH,t.movementY===0?l|=o&rH:l|=a&rH,qLe(l),hD(e)}function oH(e){const t=Bp(),n=yp();switch(n.state){case"active":ote({document:e.currentTarget,event:e,hitRegions:n.hitRegions,initialLayoutMap:n.initialLayoutMap,mountedGroups:t,prevCursorFlags:n.cursorFlags})}}function aH(e){if(e.defaultPrevented)return;const t=yp(),n=Bp();switch(t.state){case"active":{if(e.buttons===0){Cg({cursorFlags:0,state:"inactive"}),t.hitRegions.forEach(r=>{const i=cf(r.group.id,!0);Iu(r.group,i)});return}ote({document:e.currentTarget,event:e,hitRegions:t.hitRegions,initialLayoutMap:t.initialLayoutMap,mountedGroups:n,pointerDownAtPoint:t.pointerDownAtPoint,prevCursorFlags:t.cursorFlags});break}default:{const r=dD(e,n);r.length===0?t.state!=="inactive"&&Cg({cursorFlags:0,state:"inactive"}):Cg({cursorFlags:0,hitRegions:r,state:"hover"}),hD(e.currentTarget);break}}}function lH(e){if(e.relatedTarget instanceof HTMLIFrameElement)switch(yp().state){case"hover":Cg({cursorFlags:0,state:"inactive"})}}function cH(e){if(e.defaultPrevented||e.pointerType==="mouse"&&e.button>0)return;const t=yp();switch(t.state){case"active":Cg({cursorFlags:0,state:"inactive"}),t.hitRegions.length>0&&(hD(e.currentTarget),t.hitRegions.forEach(n=>{const r=cf(n.group.id,!0);Iu(n.group,r)}),e.preventDefault())}}function uH(e){let t=0,n=0;const r={};for(const s of e)if(s.defaultSize!==void 0){t++;const o=go(s.defaultSize);n+=o,r[s.panelId]=o}else r[s.panelId]=void 0;const i=e.length-t;if(i!==0){const s=go((100-n)/i);for(const o of e)o.defaultSize===void 0&&(r[o.panelId]=s)}return r}function QLe(e,t,n){if(!n[0])return;const r=e.panels.find(l=>l.element===t);if(!r||!r.onResize)return;const i=cv({group:e}),s=e.orientation==="horizontal"?r.element.offsetWidth:r.element.offsetHeight,o=r.mutableValues.prevSize,a={asPercentage:go(s/i*100),inPixels:s};r.mutableValues.prevSize=a,r.onResize(a,r.id,o)}function JLe(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(const n in e)if(e[n]!==t[n])return!1;return!0}function ZLe({group:e,nextGroupSize:t,prevGroupSize:n,prevLayout:r}){if(n<=0||t<=0||n===t)return r;let i=0,s=0,o=!1;const a=new Map,l=[];for(const p of e.panels){const m=r[p.id]??0;switch(p.panelConstraints.groupResizeBehavior){case"preserve-pixel-size":{o=!0;const g=m/100*n,b=go(g/t*100);a.set(p.id,b),i+=b;break}case"preserve-relative-size":default:{l.push(p.id),s+=m;break}}}if(!o||l.length===0)return r;const u=100-i,f={...r};if(a.forEach((p,m)=>{f[m]=p}),s>0)for(const p of l){const m=r[p]??0;f[p]=go(m/s*u)}else{const p=go(u/l.length);for(const m of l)f[m]=p}return f}function eDe(e,t){const n=e.map(i=>i.id),r=Object.keys(t);if(n.length!==r.length)return!1;for(const i of n)if(!r.includes(i))return!1;return!0}const Im=new Map;function tDe(e){let t=!0;pr(e.element.ownerDocument.defaultView,"Cannot register an unmounted Group");const n=e.element.ownerDocument.defaultView.ResizeObserver,r=new Set,i=new Set,s=new n(b=>{for(const y of b){const{borderBoxSize:x,target:w}=y;if(w===e.element){if(t){const k=cv({group:e});if(k===0)return;const C=cf(e.id);if(!C)return;const E=zj(e),A=C.defaultLayoutDeferred?uH(E):C.layout,N=ZLe({group:e,nextGroupSize:k,prevGroupSize:C.groupSize,prevLayout:A}),M=bp({layout:N,panelConstraints:E});if(!C.defaultLayoutDeferred&&vp(C.layout,M)&&JLe(C.derivedPanelConstraints,E)&&C.groupSize===k)return;Iu(e,{defaultLayoutDeferred:!1,derivedPanelConstraints:E,groupSize:k,layout:M,separatorToPanels:C.separatorToPanels})}}else QLe(e,w,x)}});s.observe(e.element),e.panels.forEach(b=>{pr(!r.has(b.id),`Panel ids must be unique; id "${b.id}" was used more than once`),r.add(b.id),b.onResize&&s.observe(b.element)});const o=cv({group:e}),a=zj(e),l=e.panels.map(({id:b})=>b).join(",");let u=e.mutableState.defaultLayout;u&&(eDe(e.panels,u)||(u=void 0));const f=e.mutableState.layouts[l]??u??uH(a),p=bp({layout:f,panelConstraints:a}),m=e.element.ownerDocument;Im.set(m,(Im.get(m)??0)+1);const g=new Map;return Xee(e).forEach(b=>{b.separator&&g.set(b.separator,b.panels)}),Iu(e,{defaultLayoutDeferred:o===0,derivedPanelConstraints:a,groupSize:o,layout:p,separatorToPanels:g}),e.separators.forEach(b=>{pr(!i.has(b.id),`Separator ids must be unique; id "${b.id}" was used more than once`),i.add(b.id),b.element.addEventListener("keydown",eH)}),Im.get(m)===1&&(m.addEventListener("dblclick",ZU,!0),m.addEventListener("pointerdown",tH,!0),m.addEventListener("pointerleave",oH),m.addEventListener("pointermove",aH),m.addEventListener("pointerout",lH),m.addEventListener("pointerup",cH,!0)),function(){t=!1,Im.set(m,Math.max(0,(Im.get(m)??0)-1)),DLe(e),e.separators.forEach(b=>{b.element.removeEventListener("keydown",eH)}),Im.get(m)||(m.removeEventListener("dblclick",ZU,!0),m.removeEventListener("pointerdown",tH,!0),m.removeEventListener("pointerleave",oH),m.removeEventListener("pointermove",aH),m.removeEventListener("pointerout",lH),m.removeEventListener("pointerup",cH,!0)),s.disconnect()}}function nDe(){const[e,t]=_.useState({}),n=_.useCallback(()=>t({}),[]);return[e,n]}function pD(e){const t=_.useId();return`${e??t}`}const Up=typeof window<"u"?_.useLayoutEffect:_.useEffect;function Dy(e){const t=_.useRef(e);return Up(()=>{t.current=e},[e]),_.useCallback((...n)=>{var r;return(r=t.current)==null?void 0:r.call(t,...n)},[t])}function mD(...e){return Dy(t=>{e.forEach(n=>{if(n)switch(typeof n){case"function":{n(t);break}case"object":{n.current=t;break}}})})}function gD(e){const t=_.useRef({...e});return Up(()=>{for(const n in e)t.current[n]=e[n]},[e]),t.current}const ate=_.createContext(null);function rDe(e,t){const n=_.useRef({getLayout:()=>({}),setLayout:YLe});_.useImperativeHandle(t,()=>n.current,[]),Up(()=>{Object.assign(n.current,tte({groupId:e}))})}function lte({children:e,className:t,defaultLayout:n,disableCursor:r,disabled:i,elementRef:s,groupRef:o,id:a,onLayoutChange:l,onLayoutChanged:u,orientation:f="horizontal",resizeTargetMinimumSize:p={coarse:20,fine:10},style:m,...g}){const b=_.useRef({onLayoutChange:{},onLayoutChanged:{}}),y=Dy(F=>{vp(b.current.onLayoutChange,F)||(b.current.onLayoutChange=F,l==null||l(F))}),x=Dy(F=>{vp(b.current.onLayoutChanged,F)||(b.current.onLayoutChanged=F,u==null||u(F))}),w=pD(a),k=_.useRef(null),[C,E]=nDe(),A=_.useRef({lastExpandedPanelSizes:{},layouts:{},panels:[],resizeTargetMinimumSize:p,separators:[]}),N=mD(k,s);rDe(w,o);const M=Dy((F,O)=>{const P=yp(),W=YU(F),U=cf(F);if(U){let B=!1;switch(P.state){case"active":{B=P.hitRegions.some(K=>K.group===W);break}}return{flexGrow:U.layout[O]??1,pointerEvents:B?"none":void 0}}return{flexGrow:(n==null?void 0:n[O])??1}}),j=gD({defaultLayout:n,disableCursor:r}),I=_.useMemo(()=>({get disableCursor(){return!!j.disableCursor},getPanelStyles:M,id:w,orientation:f,registerPanel:F=>{const O=A.current;return O.panels=Fj(f,[...O.panels,F]),E(),()=>{O.panels=O.panels.filter(P=>P!==F),E()}},registerSeparator:F=>{const O=A.current;return O.separators=Fj(f,[...O.separators,F]),E(),()=>{O.separators=O.separators.filter(P=>P!==F),E()}},togglePanelDisabled:(F,O)=>{const P=A.current.panels.find(B=>B.id===F);P&&(P.panelConstraints.disabled=O);const W=YU(w),U=cf(w);W&&U&&Iu(W,{...U,derivedPanelConstraints:zj(W)})},toggleSeparatorDisabled:(F,O)=>{const P=A.current.separators.find(W=>W.id===F);P&&(P.disabled=O)}}),[M,w,E,f,j]),z=_.useRef(null);return Up(()=>{const F=k.current;if(F===null)return;const O=A.current;let P;if(j.defaultLayout!==void 0&&Object.keys(j.defaultLayout).length===O.panels.length){P={};for(const G of O.panels){const D=j.defaultLayout[G.id];D!==void 0&&(P[G.id]=D)}}const W={disabled:!!i,element:F,id:w,mutableState:{defaultLayout:P,disableCursor:!!j.disableCursor,expandedPanelSizes:A.current.lastExpandedPanelSizes,layouts:A.current.layouts},orientation:f,panels:O.panels,resizeTargetMinimumSize:O.resizeTargetMinimumSize,separators:O.separators};z.current=W;const U=tDe(W),{defaultLayoutDeferred:B,derivedPanelConstraints:K,layout:V}=cf(W.id,!0);!B&&K.length>0&&(y(V),x(V));const Y=uD(w,G=>{const{defaultLayoutDeferred:D,derivedPanelConstraints:Q,layout:ae}=G.next;if(D||Q.length===0)return;const re=W.panels.map(({id:ue})=>ue).join(",");W.mutableState.layouts[re]=ae,Q.forEach(ue=>{if(ue.collapsible){const{layout:ce}=G.prev??{};if(ce){const ge=Bs(ue.collapsedSize,ae[ue.panelId]),ne=Bs(ue.collapsedSize,ce[ue.panelId]);ge&&!ne&&(W.mutableState.expandedPanelSizes[ue.panelId]=ce[ue.panelId])}}});const he=yp().state!=="active";y(ae),he&&x(ae)});return()=>{z.current=null,U(),Y()}},[i,w,x,y,f,C,j]),_.useEffect(()=>{const F=z.current;F&&(F.mutableState.defaultLayout=n,F.mutableState.disableCursor=!!r)}),c.jsx(ate.Provider,{value:I,children:c.jsx("div",{...g,className:t,"data-group":!0,"data-testid":w,id:w,ref:N,style:{height:"100%",width:"100%",overflow:"hidden",...m,display:"flex",flexDirection:f==="horizontal"?"row":"column",flexWrap:"nowrap",touchAction:f==="horizontal"?"pan-y":"pan-x"},children:e})})}lte.displayName="Group";function vD(){const e=_.useContext(ate);return pr(e,"Group Context not found; did you render a Panel or Separator outside of a Group?"),e}function iDe(e,t){const{id:n}=vD(),r=_.useRef({collapse:pA,expand:pA,getSize:()=>({asPercentage:0,inPixels:0}),isCollapsed:()=>!1,resize:pA});_.useImperativeHandle(t,()=>r.current,[]),Up(()=>{Object.assign(r.current,ete({groupId:n,panelId:e}))})}function cte({children:e,className:t,collapsedSize:n="0%",collapsible:r=!1,defaultSize:i,disabled:s,elementRef:o,groupResizeBehavior:a="preserve-relative-size",id:l,maxSize:u="100%",minSize:f="0%",onResize:p,panelRef:m,style:g,...b}){const y=!!l,x=pD(l),w=gD({disabled:s}),k=_.useRef(null),C=mD(k,o),{getPanelStyles:E,id:A,orientation:N,registerPanel:M,togglePanelDisabled:j}=vD(),I=p!==null,z=Dy((O,P,W)=>{p==null||p(O,l,W)});Up(()=>{const O=k.current;if(O!==null){const P={element:O,id:x,idIsStable:y,mutableValues:{expandToSize:void 0,prevSize:void 0},onResize:I?z:void 0,panelConstraints:{groupResizeBehavior:a,collapsedSize:n,collapsible:r,defaultSize:i,disabled:w.disabled,maxSize:u,minSize:f}};return M(P)}},[a,n,r,i,I,x,y,u,f,z,M,w]),_.useEffect(()=>{j(x,!!s)},[s,x,j]),iDe(x,m);const F=_.useSyncExternalStore(O=>uD(A,O),()=>JSON.stringify(E(A,x)),()=>JSON.stringify(E(A,x)));return c.jsx("div",{...b,"aria-disabled":s||void 0,"data-panel":!0,"data-testid":x,id:x,ref:C,style:{...sDe,display:"flex",flexBasis:0,flexShrink:1,overflow:"visible",...JSON.parse(F)},children:c.jsx("div",{className:t,style:{maxHeight:"100%",maxWidth:"100%",flexGrow:1,overflow:"auto",...g,touchAction:N==="horizontal"?"pan-y":"pan-x"},children:e})})}cte.displayName="Panel";const sDe={minHeight:0,maxHeight:"100%",height:"auto",minWidth:0,maxWidth:"100%",width:"auto",border:"none",borderWidth:0,padding:0,margin:0};function oDe({layout:e,panelConstraints:t,panelId:n,panelIndex:r}){let i,s;const o=e[n],a=t.find(l=>l.panelId===n);if(a){const l=a.maxSize,u=a.collapsible?a.collapsedSize:a.minSize,f=[r,r+1];s=bp({layout:Wx({delta:u-o,initialLayout:e,panelConstraints:t,pivotIndices:f,prevLayout:e}),panelConstraints:t})[n],i=bp({layout:Wx({delta:l-o,initialLayout:e,panelConstraints:t,pivotIndices:f,prevLayout:e}),panelConstraints:t})[n]}return{valueControls:n,valueMax:i,valueMin:s,valueNow:o}}function ute({children:e,className:t,disabled:n,elementRef:r,id:i,style:s,...o}){const a=pD(i),l=gD({disabled:n}),[u,f]=_.useState({}),[p,m]=_.useState("inactive"),g=_.useRef(null),b=mD(g,r),{disableCursor:y,id:x,orientation:w,registerSeparator:k,toggleSeparatorDisabled:C}=vD(),E=w==="horizontal"?"vertical":"horizontal";Up(()=>{const N=g.current;if(N!==null){const M={disabled:l.disabled,element:N,id:a},j=k(M),I=GLe(F=>{m(F.next.state!=="inactive"&&F.next.hitRegions.some(O=>O.separator===M)?F.next.state:"inactive")}),z=uD(x,F=>{const{derivedPanelConstraints:O,layout:P,separatorToPanels:W}=F.next,U=W.get(M);if(U){const B=U[0],K=U.indexOf(B);f(oDe({layout:P,panelConstraints:O,panelId:B.id,panelIndex:K}))}});return()=>{I(),z(),j()}}},[x,a,k,l]),_.useEffect(()=>{C(a,!!n)},[n,a,C]);let A;return n&&!y&&(A="not-allowed"),c.jsx("div",{...o,"aria-controls":u.valueControls,"aria-disabled":n||void 0,"aria-orientation":E,"aria-valuemax":u.valueMax,"aria-valuemin":u.valueMin,"aria-valuenow":u.valueNow,children:e,className:t,"data-separator":n?"disabled":p,"data-testid":a,id:a,ref:b,role:"separator",style:{flexBasis:"auto",cursor:A,...s,flexGrow:0,flexShrink:0,touchAction:"none"},tabIndex:n?void 0:0})}ute.displayName="Separator";const bD=({className:e,...t})=>c.jsx(lte,{className:pe("flex h-full w-full",e),...t}),Vx=e=>c.jsx(cte,{...e}),yD=({withHandle:e,orientation:t,disabled:n,className:r,...i})=>c.jsx(ute,{disabled:n,className:pe("relative flex items-center justify-center bg-transparent focus-visible:outline-none",t==="vertical"?"h-2 w-full -my-1 cursor-row-resize":"h-full w-2 -mx-1 cursor-col-resize",e&&(t==="vertical"?"before:absolute before:inset-x-0 before:top-1/2 before:h-0.5 before:-translate-y-1/2 before:bg-border":"before:absolute before:inset-y-0 before:left-1/2 before:w-px before:-translate-x-1/2 before:bg-border"),r),...i,children:c.jsx("span",{className:"sr-only",children:t==="vertical"?"Resize rows":"Resize columns"})});function dte(e,t,n){const r=typeof e.maxTokens=="number"&&Number.isFinite(e.maxTokens)?e.maxTokens:null,i=r&&r>0?Math.min(100,e.usedTokens/r*100):null,s=r!==null?Math.max(0,Math.round(r-e.usedTokens)):null,o=i!==null?Math.max(0,100-i):null;return{...e,compactsAutomatically:e.compactsAutomatically||n,maxTokens:r??void 0,remainingTokens:s,usedPercentage:i,remainingPercentage:o,updatedAt:t}}function aDe(e){const t=e.some(n=>n.kind==="compact_boundary"||n.kind==="compact_summary"||n.kind==="context_cleared");for(let n=e.length-1;n>=0;n-=1){const r=e[n];if(r&&!(r.kind!=="context_window_updated"||r.usage.usedTokens<=0))return dte(r.usage,new Date(r.createdAt).toISOString(),t)}return null}function lDe(e,t){return!e||t===null||!Number.isFinite(t)||t<=0?e:dte({...e,maxTokens:t},e.updatedAt,e.compactsAutomatically)}function xd(e){return e===void 0||!Number.isFinite(e)||e<0?0:e}function cDe(e,t){let n=0,r=0,i=0,s=0;for(const a of e){if(a.kind!=="result")continue;const l=a.usage;l&&(n+=xd(l.inputTokens),r+=xd(l.outputTokens),i+=xd(l.cachedInputTokens)),s+=xd(a.costUsd??(l==null?void 0:l.costUsd))}for(const a of t){const l=a.usage;l&&(n+=xd(l.inputTokens),r+=xd(l.outputTokens),i+=xd(l.cachedInputTokens),s+=xd(l.costUsd))}if(n===0&&r===0&&i===0&&s===0)return null;const o=n>0?i/n*100:null;return{inputTokens:n,outputTokens:r,cachedTokens:i,costUsd:s,cacheHitPercentage:o}}function uDe(e){return!Number.isFinite(e)||e<=0?"$0.00":e<.01?"<$0.01":`$${e.toFixed(2)}`}function po(e){return e==null||!Number.isFinite(e)?"0":e<1e3?`${Math.round(e)}`:e<1e4?`${(e/1e3).toFixed(1).replace(/\.0$/,"")}k`:e<1e6?`${Math.round(e/1e3)}k`:`${(e/1e6).toFixed(1).replace(/\.0$/,"")}m`}function dDe(e={}){return(e.dom??Et).getInnerWidth()}const Xn=tr()(e=>({typedEmptyStateText:"",isEmptyStateTypingComplete:!1,setTypedEmptyStateText:t=>e({typedEmptyStateText:t}),setIsEmptyStateTypingComplete:t=>e({isEmptyStateTypingComplete:t}),resetEmptyStateTyping:()=>e({typedEmptyStateText:"",isEmptyStateTypingComplete:!1}),isPageFileDragActive:!1,setIsPageFileDragActive:t=>e({isPageFileDragActive:t}),layoutWidth:0,setLayoutWidth:t=>e({layoutWidth:t}),inputHeight:148,setInputHeight:t=>e({inputHeight:t}),viewportWidth:dDe(),setViewportWidth:t=>e({viewportWidth:t}),fixedTerminalHeight:0,setFixedTerminalHeight:t=>e({fixedTerminalHeight:t}),showScrollToBottom:!1,setShowScrollToBottom:t=>e({showScrollToBottom:t}),toolGroupExpanded:{},setToolGroupExpanded:t=>e(n=>({toolGroupExpanded:t(n.toolGroupExpanded)})),resetToolGroupExpanded:()=>e({toolGroupExpanded:{}}),localLinkMenuTarget:null,setLocalLinkMenuTarget:t=>e({localLinkMenuTarget:t}),diffRenderMode:"unified",wrapDiffLines:!1,setDiffRenderMode:t=>e({diffRenderMode:t}),setWrapDiffLines:t=>e({wrapDiffLines:t}),terminalFocusRequestVersion:0,incrementTerminalFocusRequestVersion:()=>e(t=>({terminalFocusRequestVersion:t.terminalFocusRequestVersion+1}))})),xD=[68,32];function fDe(){return{isVisible:!1,mainSizes:[...xD],terminals:[],nextTerminalIndex:0}}function hDe(e,t){return e[t]??fDe()}function mA(e){if(e.length===0)return[];const t=e.reduce((n,r)=>n+Math.max(r,0),0);return!Number.isFinite(t)||t<=0?Array.from({length:e.length},()=>100/e.length):e.map(n=>Math.max(n,0)/t*100)}function pDe(e){let t=e,n="";do n=String.fromCharCode(65+t%26)+n,t=Math.floor(t/26)-1;while(t>=0);return`Terminal ${n}`}function mDe(e){if(e.length===0)return e;const t=e.length+1;return e.map(n=>({...n,size:n.size*e.length/t}))}function Pm(e,t,n){return{...e,[t]:n(hDe(e,t))}}const Rd=tr()(Rv(e=>({projects:{},addTerminal:(t,n)=>e(r=>({projects:Pm(r.projects,t,i=>{var l,u;const s=mDe(i.terminals),o={id:((u=(l=globalThis.crypto)==null?void 0:l.randomUUID)==null?void 0:u.call(l))??`terminal-${Date.now()}-${i.nextTerminalIndex}`,title:pDe(i.nextTerminalIndex),size:100/(s.length+1)},a=n?Math.max(s.findIndex(f=>f.id===n)+1,0):s.length;return{...i,isVisible:!0,nextTerminalIndex:i.nextTerminalIndex+1,terminals:[...s.slice(0,a),o,...s.slice(a)]}})})),removeTerminal:(t,n)=>e(r=>({projects:Pm(r.projects,t,i=>{const s=i.terminals.filter(a=>a.id!==n);if(s.length===0)return{...i,isVisible:!1,terminals:[]};const o=mA(s.map(a=>a.size));return{...i,terminals:s.map((a,l)=>({...a,size:o[l]??100/s.length}))}})})),toggleVisibility:t=>e(n=>({projects:Pm(n.projects,t,r=>({...r,isVisible:r.terminals.length>0?!r.isVisible:!1}))})),resetMainSizes:t=>e(n=>({projects:Pm(n.projects,t,r=>({...r,mainSizes:[...xD]}))})),setMainSizes:(t,n)=>e(r=>{if(n.length!==2)return r;const[i=50,s=50]=mA(n),o=[i,s];return{projects:Pm(r.projects,t,a=>({...a,mainSizes:o}))}}),setTerminalSizes:(t,n)=>e(r=>({projects:Pm(r.projects,t,i=>{if(n.length!==i.terminals.length)return i;const s=mA(n);return{...i,terminals:i.terminals.map((o,a)=>({...o,size:s[a]??o.size}))}})})),clearProject:t=>e(n=>{const{[t]:r,...i}=n.projects;return{projects:i}})}),{name:"terminal-layouts",version:1})),gDe={isVisible:!1,mainSizes:[...xD],terminals:[],nextTerminalIndex:0},vDe=35;function bDe(e,t){return!Number.isFinite(e)||e<=0||!Number.isFinite(t)||t<=0?0:e*(t/100)}function yDe(e,t){const n=bDe(e,t);return n>=0&&n<vDe}const bE=350,xDe=[.4,0,.2,1],_De=8,dH=1e-6;function SDe(e,t,n){const r=1-e;return 3*r*r*e*t+3*r*e*e*n+e*e*e}function wDe(e,t,n){const r=1-e;return 3*r*r*e*t+3*r*e*e*n+e*e*e}function CDe(e,t,n){const r=1-e;return 3*r*r*t+6*r*e*(n-t)+3*e*e*(1-n)}function kDe(e,t,n){let r=e;for(let i=0;i<_De;i+=1){const s=SDe(r,t,n)-e;if(Math.abs(s)<dH)return r;const o=CDe(r,t,n);if(Math.abs(o)<dH)break;r-=s/o}return r}function EDe(e){if(e<=0)return 0;if(e>=1)return 1;const[t,n,r,i]=xDe,s=kDe(e,t,r);return wDe(s,n,i)}function fte(e,t,n){const r=EDe(n);return[e[0]+(t[0]-e[0])*r,e[1]+(t[1]-e[1])*r]}function NDe({projectId:e,shouldRenderRightSidebarLayout:t,showRightSidebar:n,rightSidebarSize:r,ports:i}){const s=(i==null?void 0:i.timer)??wr,o=_.useRef(null),a=_.useRef(null),l=_.useRef(null),u=_.useRef(null),f=_.useRef(null),p=_.useRef(!1),m=_.useRef(null),g=_.useRef(!1),b=_.useRef(!1);return _.useEffect(()=>()=>{u.current!==null&&s.cancelAnimationFrame(u.current),f.current!==null&&s.clearTimeout(f.current)},[s]),_.useLayoutEffect(()=>{var I,z,F,O,P,W;if(!t){u.current!==null&&(s.cancelAnimationFrame(u.current),u.current=null),f.current!==null&&(s.clearTimeout(f.current),f.current=null),p.current=!1;return}const y=o.current;if(!y)return;u.current!==null&&(s.cancelAnimationFrame(u.current),u.current=null),f.current!==null&&(s.clearTimeout(f.current),f.current=null);const x=m.current,w=x!==null&&x!==e,k=n&&!b.current,C=!g.current,E=n?[100-r,r]:[100,0],A=w||C&&n,N=k||C?[100,0]:[y.getLayout().workspace??E[0],y.getLayout().rightSidebar??E[1]];if(m.current=e,g.current=t,b.current=n,A||Math.abs(N[0]-E[0])<.1&&Math.abs(N[1]-E[1])<.1){y.setLayout({workspace:E[0],rightSidebar:E[1]}),(I=a.current)==null||I.setAttribute("data-right-sidebar-open",n?"true":"false"),(z=l.current)==null||z.setAttribute("data-right-sidebar-open",n?"true":"false"),(F=l.current)==null||F.setAttribute("data-right-sidebar-animated","false");return}p.current=!0,(O=a.current)==null||O.setAttribute("data-right-sidebar-open",n?"true":"false"),(P=l.current)==null||P.setAttribute("data-right-sidebar-open",n?"true":"false"),(W=l.current)==null||W.setAttribute("data-right-sidebar-animated","true"),y.setLayout({workspace:N[0],rightSidebar:N[1]});const M=performance.now(),j=U=>{const B=Math.min(1,(U-M)/bE),K=fte(N,E,B);if(y.setLayout({workspace:K[0],rightSidebar:K[1]}),B<1){u.current=s.requestAnimationFrame(j);return}y.setLayout({workspace:E[0],rightSidebar:E[1]}),u.current=null,f.current=s.setTimeout(()=>{p.current=!1,f.current=null},0)};u.current=s.requestAnimationFrame(j)},[e,r,t,n,s]),_.useEffect(()=>{t||(g.current=!1,b.current=!1)},[t]),{isAnimating:p,panelGroupRef:o,sidebarPanelRef:a,sidebarVisualRef:l}}function TDe(e){return e.visibilityState==="visible"?e.activeChatId:null}function ADe(e){e.socket.setFocusedChat(TDe({activeChatId:e.activeChatId,visibilityState:e.visibilityState}))}function RDe({socket:e,activeChatId:t,ports:n}){const r=(n==null?void 0:n.dom)??Et;_.useEffect(()=>{const i=()=>{ADe({socket:e,activeChatId:t,visibilityState:r.getVisibilityState()})};i();const s=r.addDocumentListener("visibilitychange",i),o=r.addWindowListener("pagehide",i),a=r.addWindowListener("pageshow",i);return()=>{s(),o(),a(),e.setFocusedChat(null)}},[e,t,r])}const MDe={dom:Et,timer:wr};function jDe({rootRef:e,fallbackRef:t,enabled:n,canCancel:r,ports:i=MDe}){const{dom:s,timer:o}=i;_.useEffect(()=>{if(!n)return;let a=0,l=null;const u=k=>{const C=k instanceof Element?k:null,E=e.current,A=t.current;if(Kz({trigger:"pointer",activeElement:s.getActiveElement(),pointerStartTarget:l,pointerEndTarget:C,root:E,fallback:A,hasActiveOverlay:s.hasFocusOverlay(),hasActiveSelection:Cpe(s.getSelection())})!=="restore"){l=null;return}A==null||A.focus({preventScroll:!0}),l=null},f=k=>{o.cancelAnimationFrame(a),l=k.target instanceof Element?k.target:null},p=k=>{o.cancelAnimationFrame(a),a=o.requestAnimationFrame(()=>{u(k.target)})},m=()=>{l=null;const k=t.current;!k||k.disabled||k.focus({preventScroll:!0})},g=k=>{if(k.key!=="Escape")return;const C=t.current;Kz({trigger:"escape",activeElement:s.getActiveElement(),fallback:C,hasActiveOverlay:s.hasFocusOverlay(),canCancel:r,defaultPrevented:k.defaultPrevented})==="escape-focus"&&(k.preventDefault(),C==null||C.focus({preventScroll:!0}))},b=s.addWindowCaptureListener("pointerdown",f),y=s.addWindowCaptureListener("pointerup",p),x=s.addWindowCaptureListener("keydown",g),w=s.addWindowCustomListener(AI,m);return()=>{o.cancelAnimationFrame(a),b(),y(),x(),w()}},[r,s,n,t,e,o])}function ODe(e){const t=e.previousProjectId!==null&&e.previousProjectId!==e.projectId,n=e.previousProjectId===null&&e.projectId!==null;return!t&&!n&&e.showTerminalPane&&!e.wasTerminalVisible}function IDe({previousProjectId:e,projectId:t,previousShouldRenderTerminalLayout:n,previousShowTerminalPane:r,showTerminalPane:i,terminalLayout:s,liveLayout:o}){const a=e!==null&&e!==t,l=i&&!r,u=!n,f=e===null&&t!==null,p=i?s.mainSizes:[100,0];return{currentLayout:l||u?[100,0]:o,shouldSkipAnimation:a||f&&u,targetLayout:p}}function PDe({chatInputRef:e,projectId:t,shouldRenderTerminalLayout:n,showTerminalPane:r,terminalLayout:i,ports:s}){const o=(s==null?void 0:s.timer)??wr,a=_.useRef(null),l=_.useRef(null),u=_.useRef(null),f=_.useRef(null),p=_.useRef(null),m=_.useRef(!1),g=_.useRef(null),b=_.useRef(!1),y=_.useRef(!1),x=_.useRef(!1),w=Xn(C=>C.terminalFocusRequestVersion),k=Xn(C=>C.incrementTerminalFocusRequestVersion);return _.useEffect(()=>{var A;const C=g.current,E=x.current;ODe({previousProjectId:C,projectId:t,showTerminalPane:r,wasTerminalVisible:E})&&k(),C!==null&&C===t&&!r&&E&&((A=e.current)==null||A.focus({preventScroll:!0})),x.current=r,g.current=t},[e,k,t,r]),_.useEffect(()=>()=>{f.current!==null&&o.cancelAnimationFrame(f.current),p.current!==null&&o.clearTimeout(p.current)},[o]),_.useLayoutEffect(()=>{var z,F,O,P,W,U;if(!n){f.current!==null&&(o.cancelAnimationFrame(f.current),f.current=null),p.current!==null&&(o.clearTimeout(p.current),p.current=null),m.current=!1;return}const C=a.current;if(!C)return;f.current!==null&&(o.cancelAnimationFrame(f.current),f.current=null),p.current!==null&&(o.clearTimeout(p.current),p.current=null);const E=g.current,{currentLayout:A,shouldSkipAnimation:N,targetLayout:M}=IDe({previousProjectId:E,projectId:t,previousShouldRenderTerminalLayout:b.current,previousShowTerminalPane:y.current,showTerminalPane:r,terminalLayout:i,liveLayout:[C.getLayout().chat??i.mainSizes[0],C.getLayout().terminal??i.mainSizes[1]]});if(b.current=n,y.current=r,N||Math.abs(A[0]-M[0])<.1&&Math.abs(A[1]-M[1])<.1){C.setLayout({chat:M[0],terminal:M[1]}),(z=l.current)==null||z.setAttribute("data-terminal-open",r?"true":"false"),(F=u.current)==null||F.setAttribute("data-terminal-open",r?"true":"false"),(O=u.current)==null||O.setAttribute("data-terminal-animated","false");return}m.current=!0,(P=l.current)==null||P.setAttribute("data-terminal-open",r?"true":"false"),(W=u.current)==null||W.setAttribute("data-terminal-open",r?"true":"false"),(U=u.current)==null||U.setAttribute("data-terminal-animated","true"),C.setLayout({chat:A[0],terminal:A[1]});const j=performance.now(),I=B=>{const K=Math.min(1,(B-j)/bE),V=fte(A,M,K);if(C.setLayout({chat:V[0],terminal:V[1]}),K<1){f.current=o.requestAnimationFrame(I);return}C.setLayout({chat:M[0],terminal:M[1]}),f.current=null,p.current=o.setTimeout(()=>{m.current=!1,p.current=null},0)};f.current=o.requestAnimationFrame(I)},[t,n,r,i,o]),_.useEffect(()=>{n||(b.current=!1,y.current=!1)},[n]),{isAnimating:m,mainPanelGroupRef:a,terminalFocusRequestVersion:w,terminalPanelRef:l,terminalVisualRef:u}}const fH=e=>Symbol.iterator in e,hH=e=>"entries"in e,pH=(e,t)=>{const n=e instanceof Map?e:new Map(e.entries()),r=t instanceof Map?t:new Map(t.entries());if(n.size!==r.size)return!1;for(const[i,s]of n)if(!r.has(i)||!Object.is(s,r.get(i)))return!1;return!0},LDe=(e,t)=>{const n=e[Symbol.iterator](),r=t[Symbol.iterator]();let i=n.next(),s=r.next();for(;!i.done&&!s.done;){if(!Object.is(i.value,s.value))return!1;i=n.next(),s=r.next()}return!!i.done&&!!s.done};function DDe(e,t){return Object.is(e,t)?!0:typeof e!="object"||e===null||typeof t!="object"||t===null||Object.getPrototypeOf(e)!==Object.getPrototypeOf(t)?!1:fH(e)&&fH(t)?hH(e)&&hH(t)?pH(e,t):LDe(e,t):pH({entries:()=>Object.entries(e)},{entries:()=>Object.entries(t)})}function kg(e){const t=Wn.useRef(void 0);return n=>{const r=e(n);return DDe(t.current,r)?t.current:t.current=r}}function Ub(){var e;return((e=Hr.getState().settings)==null?void 0:e.customModels)??[]}const $y="__new__";function Lm(e,t){var o,a;const n=(o=e==null?void 0:e.modelOptions)==null?void 0:o.reasoningEffort;let r;zC(n)?r=n:zC(e==null?void 0:e.effort)?r=e.effort:r=Wo.reasoningEffort;const i=Uxe(e==null?void 0:e.model,void 0,t),s=mP(i,(a=e==null?void 0:e.modelOptions)==null?void 0:a.contextWindow,t);return{model:i,modelOptions:{reasoningEffort:!KG(i,t)&&r==="max"?"high":r,contextWindow:s},planMode:!!(e!=null&&e.planMode)}}function dw(e,t){var i,s;const n=(i=e==null?void 0:e.modelOptions)==null?void 0:i.reasoningEffort;let r;return FC(n)?r=n:FC(e==null?void 0:e.effort)?r=e.effort:r=of.reasoningEffort,{model:Hxe(e==null?void 0:e.model,void 0,t),modelOptions:{reasoningEffort:r,fastMode:typeof((s=e==null?void 0:e.modelOptions)==null?void 0:s.fastMode)=="boolean"?e.modelOptions.fastMode:of.fastMode},planMode:!!(e!=null&&e.planMode)}}function $De(){return{claude:{model:"claude-opus-4-7",modelOptions:{...Wo},planMode:!1},codex:{model:"gpt-5.5",modelOptions:{...of},planMode:!1},openrouter:{model:yk,modelOptions:{},planMode:!1}}}function zDe(e,t){return e.reasoningEffort===t.reasoningEffort&&e.contextWindow===t.contextWindow}function FDe(e,t){return e.reasoningEffort===t.reasoningEffort&&e.fastMode===t.fastMode}function BDe(e,t){return e.claude.model===t.claude.model&&e.claude.planMode===t.claude.planMode&&zDe(e.claude.modelOptions,t.claude.modelOptions)&&e.codex.model===t.codex.model&&e.codex.planMode===t.codex.planMode&&FDe(e.codex.modelOptions,t.codex.modelOptions)&&e.openrouter.model===t.openrouter.model&&e.openrouter.planMode===t.openrouter.planMode}function UDe(e,t){if(t===void 0){vo.info(`[chat-preferences] ${e}`);return}vo.info(`[chat-preferences] ${e}`,t)}function zy(e,t){if(e==="claude"){const r=t.claude;return{provider:"claude",model:r.model,modelOptions:{...r.modelOptions},planMode:r.planMode}}if(e==="openrouter"){const r=t.openrouter;return{provider:"openrouter",model:r.model,modelOptions:{...r.modelOptions},planMode:r.planMode}}const n=t.codex;return{provider:"codex",model:n.model,modelOptions:{...n.modelOptions},planMode:n.planMode}}function Bj(e){return e.provider==="claude"?{provider:"claude",model:e.model,modelOptions:{...e.modelOptions},planMode:e.planMode}:e.provider==="openrouter"?{provider:"openrouter",model:e.model,modelOptions:{...e.modelOptions},planMode:e.planMode}:{provider:"codex",model:e.model,modelOptions:{...e.modelOptions},planMode:e.planMode}}function hte(e){return e.providerHint?zy(e.providerHint,e.providerDefaults):e.defaultProvider==="last_used"?e.sourceState?Bj(e.sourceState):zy("claude",e.providerDefaults):zy(e.defaultProvider,e.providerDefaults)}function pte(e,t){const n=e.chatStates[t];return n||hte({defaultProvider:e.defaultProvider,providerDefaults:e.providerDefaults,legacyComposerState:e.legacyComposerState})}function fw(e,t,n){const r=pte(e,t);return{chatStates:{...e.chatStates,[t]:n(r)}}}const Ws=tr()(Rv((e,t)=>({defaultProvider:"last_used",providerDefaults:$De(),chatStates:{},legacyComposerState:{provider:"claude",model:"claude-opus-4-7",modelOptions:{...Wo},planMode:!1},setDefaultProvider:n=>e({defaultProvider:n}),applyServerDefaults:(n,r)=>e(i=>{if(i.defaultProvider===n&&BDe(i.providerDefaults,r))return{defaultProvider:n,providerDefaults:r};const{[$y]:o,...a}=i.chatStates;return{defaultProvider:n,providerDefaults:r,chatStates:a}}),setProviderDefaultModel:(n,r)=>e(i=>{const s=Ub();return n==="claude"?{providerDefaults:{...i.providerDefaults,[n]:Lm({...i.providerDefaults.claude,model:r},s)}}:n==="openrouter"?{providerDefaults:{...i.providerDefaults,[n]:{...i.providerDefaults.openrouter,model:r}}}:{providerDefaults:{...i.providerDefaults,[n]:dw({...i.providerDefaults.codex,model:r},s)}}}),setProviderDefaultModelOptions:(n,r)=>e(i=>{const s=Ub();if(n==="claude"){const a=r;return{providerDefaults:{...i.providerDefaults,[n]:Lm({...i.providerDefaults.claude,modelOptions:{...i.providerDefaults.claude.modelOptions,...a}},s)}}}if(n==="openrouter")return{providerDefaults:{...i.providerDefaults,[n]:{...i.providerDefaults.openrouter,modelOptions:{}}}};const o=r;return{providerDefaults:{...i.providerDefaults,[n]:dw({...i.providerDefaults.codex,modelOptions:{...i.providerDefaults.codex.modelOptions,...o}},s)}}}),setProviderDefaultPlanMode:(n,r)=>e(i=>({providerDefaults:{...i.providerDefaults,[n]:{...i.providerDefaults[n],planMode:r}}})),getComposerState:n=>Bj(pte(t(),n)),initializeComposerForChat:(n,r)=>e(i=>{if(i.chatStates[n])return i;const s=hte({defaultProvider:i.defaultProvider,providerDefaults:i.providerDefaults,sourceState:r==null?void 0:r.sourceState,legacyComposerState:i.legacyComposerState,providerHint:r==null?void 0:r.providerHint});return UDe("initializeComposerForChat",{chatId:n,composerState:s}),{chatStates:{...i.chatStates,[n]:s}}}),setComposerState:(n,r)=>e(i=>{const s=Ub();return{chatStates:{...i.chatStates,[n]:r.provider==="claude"?{provider:"claude",model:Lm(r,s).model,modelOptions:Lm(r,s).modelOptions,planMode:r.planMode}:Bj(r)}}}),setChatComposerProvider:(n,r)=>e(i=>fw(i,n,()=>zy(r,i.providerDefaults))),setChatComposerModel:(n,r)=>e(i=>fw(i,n,s=>{const o=Ub();if(s.provider==="claude"){const a=Lm({...s,model:r},o);return{provider:"claude",model:a.model,modelOptions:a.modelOptions,planMode:s.planMode}}return s.provider==="openrouter"?{provider:"openrouter",model:r,modelOptions:{},planMode:s.planMode}:{provider:"codex",model:r,modelOptions:dw({...s,model:r},o).modelOptions,planMode:s.planMode}})),setChatComposerModelOptions:(n,r)=>e(i=>fw(i,n,s=>{const o=Ub();if(s.provider==="claude"){const l=r;return{provider:"claude",model:s.model,modelOptions:Lm({...s,modelOptions:{...s.modelOptions,...l}},o).modelOptions,planMode:s.planMode}}if(s.provider==="openrouter")return{provider:"openrouter",model:s.model,modelOptions:{},planMode:s.planMode};const a=r;return{provider:"codex",model:s.model,modelOptions:dw({...s,modelOptions:{...s.modelOptions,...a}},o).modelOptions,planMode:s.planMode}})),setChatComposerPlanMode:(n,r)=>e(i=>fw(i,n,s=>({...s,planMode:r}))),resetChatComposerFromProvider:(n,r)=>e(i=>({chatStates:{...i.chatStates,[n]:zy(r,i.providerDefaults)}}))}),{name:"chat-preferences-state",version:1,partialize:e=>({chatStates:e.chatStates,legacyComposerState:e.legacyComposerState})}));function HDe(e){return e===void 0?null:typeof e=="string"?e?{text:e}:null:e.text||e.lexicalState?e:null}const Uj=tr()(Rv((e,t)=>({drafts:{},attachmentDrafts:{},setDraft:(n,r,i)=>e(s=>{let o;if(typeof r=="string"){if(!r){const{[n]:a,...l}=s.drafts;return{drafts:l}}o={text:r}}else{const a=i??"";if(!a){const{[n]:l,...u}=s.drafts;return{drafts:u}}o={text:a,lexicalState:r}}return{drafts:{...s.drafts,[n]:o}}}),clearDraft:n=>e(r=>{const{[n]:i,...s}=r.drafts;return{drafts:s}}),getDraft:n=>HDe(t().drafts[n]),setAttachmentDrafts:(n,r)=>e(i=>{if(r.length===0){const{[n]:s,...o}=i.attachmentDrafts;return{attachmentDrafts:o}}return{attachmentDrafts:{...i.attachmentDrafts,[n]:r}}}),clearAttachmentDrafts:n=>e(r=>{const{[n]:i,...s}=r.attachmentDrafts;return{attachmentDrafts:s}}),getAttachmentDrafts:n=>t().attachmentDrafts[n]??[]}),{name:"chat-input-drafts"})),_D=tr()(e=>({byChatId:{},loadingByChatId:{},setForChat:(t,n)=>e(r=>({byChatId:{...r.byChatId,[t]:n}})),setLoadingForChat:(t,n)=>e(r=>(r.loadingByChatId[t]??!1)===n?r:{loadingByChatId:{...r.loadingByChatId,[t]:n}}),clear:t=>e(n=>{const r=t in n.byChatId,i=t in n.loadingByChatId;if(!r&&!i)return n;const{[t]:s,...o}=n.byChatId,{[t]:a,...l}=n.loadingByChatId;return{byChatId:o,loadingByChatId:l}})}));function WDe(e){return{autoResumeOnRateLimit:!!(e!=null&&e.autoResumeOnRateLimit)}}const Hj=tr()(Rv(e=>({autoResumeOnRateLimit:!1,setAutoResumeOnRateLimit:t=>e({autoResumeOnRateLimit:t})}),{name:"kanna-preferences",version:1,migrate:e=>WDe(e)})),VDe="kanna",KDe=`mcp__${VDe}__preview_file`;function oh(e){return Ji(e)?e:null}function Hb(e){if(typeof e!="string")return e;try{return JSON.parse(e)}catch{return e}}function GDe(e){let t;Ji(e)&&"content"in e&&Array.isArray(e.content)?t=e.content:Array.isArray(e)?t=e:t=[];const n=[];for(const r of t)if(!(!r||typeof r!="object"||!("type"in r))){if(r.type==="text"&&"text"in r&&typeof r.text=="string"){n.push({type:"text",text:r.text});continue}if(r.type==="image"){if("data"in r&&typeof r.data=="string"){n.push({type:"image",data:r.data,mimeType:"mimeType"in r&&typeof r.mimeType=="string"?r.mimeType:void 0});continue}"source"in r&&r.source&&typeof r.source=="object"&&"type"in r.source&&r.source.type==="base64"&&"data"in r.source&&typeof r.source.data=="string"&&n.push({type:"image",data:r.source.data,mimeType:"media_type"in r.source&&typeof r.source.media_type=="string"?r.source.media_type:void 0})}}return n}function hw(e){let t;if(Ji(e)&&"content"in e&&Array.isArray(e.content)?t=e.content:Array.isArray(e)?t=e:t=null,!t)return null;const n=[];for(const r of t)r&&typeof r=="object"&&"type"in r&&r.type==="text"&&"text"in r&&typeof r.text=="string"&&n.push(r.text);return n.length>0?n.join(""):null}function qDe(e,t){var r;const n=Hb(t);switch(e.toolKind){case"ask_user_question":{const i=hw(n),s=i!==null?Hb(i):n,o=oh(s),a=oh(o==null?void 0:o.answers)??(o||{}),l={};for(const[u,f]of Object.entries(a))Array.isArray(f)?l[u]=f.map(p=>String(p)):Ji(f)&&Array.isArray(f.answers)?l[u]=f.answers.map(p=>String(p)):f==null||f===""?l[u]=[]:l[u]=[String(f)];return{answers:l,...(o==null?void 0:o.discarded)===!0?{discarded:!0}:{}}}case"exit_plan_mode":{const i=hw(n),s=i!==null?Hb(i):n,o=oh(s);return{confirmed:typeof(o==null?void 0:o.confirmed)=="boolean"?o.confirmed:void 0,clearContext:typeof(o==null?void 0:o.clearContext)=="boolean"?o.clearContext:void 0,message:typeof(o==null?void 0:o.message)=="string"?o.message:void 0,...(o==null?void 0:o.discarded)===!0?{discarded:!0}:{}}}case"offer_download":{const i=hw(n),s=i?Hb(i):n,o=oh(s);let a;return typeof(o==null?void 0:o.displayName)=="string"?a=o.displayName:typeof(o==null?void 0:o.fileName)=="string"?a=o.fileName:a="",{contentUrl:typeof(o==null?void 0:o.contentUrl)=="string"?o.contentUrl:"",relativePath:typeof(o==null?void 0:o.relativePath)=="string"?o.relativePath:"",fileName:typeof(o==null?void 0:o.fileName)=="string"?o.fileName:"",displayName:a,size:typeof(o==null?void 0:o.size)=="number"?o.size:0,...typeof(o==null?void 0:o.mimeType)=="string"?{mimeType:o.mimeType}:{}}}case"preview_file":{const i=hw(n),s=i?Hb(i):n,o=oh(s);let a;return typeof(o==null?void 0:o.displayName)=="string"?a=o.displayName:typeof(o==null?void 0:o.fileName)=="string"?a=o.fileName:a="",{contentUrl:typeof(o==null?void 0:o.contentUrl)=="string"?o.contentUrl:"",relativePath:typeof(o==null?void 0:o.relativePath)=="string"?o.relativePath:"",fileName:typeof(o==null?void 0:o.fileName)=="string"?o.fileName:"",displayName:a,size:typeof(o==null?void 0:o.size)=="number"?o.size:0,mimeType:typeof(o==null?void 0:o.mimeType)=="string"?o.mimeType:"application/octet-stream"}}case"image_generation":{const i=oh(n);return{contentUrl:typeof(i==null?void 0:i.contentUrl)=="string"?i.contentUrl:"",relativePath:typeof(i==null?void 0:i.relativePath)=="string"?i.relativePath:"",fileName:typeof(i==null?void 0:i.fileName)=="string"?i.fileName:""}}case"workflow":{const i=typeof t=="string"?t:"";return{taskId:(r=i.match(/Task ID:\s*(\S+)/))==null?void 0:r[1],text:i}}case"read_file":{if(typeof n=="string")return n;const i=GDe(n);if(i.length>0)return{content:i.flatMap(o=>o.type==="text"?[o.text]:[]).join(""),blocks:i};const s=oh(n);return{content:typeof(s==null?void 0:s.content)=="string"?s.content:JSON.stringify(n,null,2)}}default:return n}}function YDe(e){return e.kind==="tool"}function mte(e){return new Date(e).toISOString()}function Pi(e){return{id:e._id,messageId:e.messageId,timestamp:mte(e.createdAt),hidden:e.hidden}}function XDe(e){return{id:e._id,messageId:e.messageId,hidden:e.hidden,kind:"tool",toolKind:e.tool.toolKind,toolName:e.tool.toolName,toolId:e.tool.toolId,input:e.tool.input,timestamp:mte(e.createdAt)}}function QDe(e){if(e.debugRaw)try{const t=JSON.parse(e.debugRaw);return(t==null?void 0:t.tool_use_result)??void 0}catch{return}}function Dl(e){return typeof e=="number"?e:void 0}function pw(e){return typeof e=="string"?e:void 0}function JDe(e){if(!Ji(e))return;const t=e,n={readCount:Dl(t.readCount),searchCount:Dl(t.searchCount),bashCount:Dl(t.bashCount),editFileCount:Dl(t.editFileCount),linesAdded:Dl(t.linesAdded),linesRemoved:Dl(t.linesRemoved),otherToolCount:Dl(t.otherToolCount)};return Object.values(n).some(r=>r!==void 0)?n:void 0}function ZDe(e){if(!e.debugRaw)return;let t;try{t=JSON.parse(e.debugRaw).toolUseResult}catch{return}if(!Ji(t))return;const n=t,r={agentId:pw(n.agentId),agentType:pw(n.agentType),status:pw(n.status),totalTokens:Dl(n.totalTokens),totalDurationMs:Dl(n.totalDurationMs),totalToolUseCount:Dl(n.totalToolUseCount),toolStats:JDe(n.toolStats),content:pw(n.content)};return r.agentId!==void 0||r.agentType!==void 0||r.totalTokens!==void 0||r.totalDurationMs!==void 0||r.status!==void 0?r:void 0}function yE(e){const t=new Map,n=[];for(const r of e)switch(r.kind){case"user_prompt":n.push({...Pi(r),kind:"user_prompt",content:r.content,attachments:r.attachments??[],steered:r.steered,autoContinue:r.autoContinue});break;case"system_init":n.push({...Pi(r),kind:"system_init",provider:r.provider,model:r.model,tools:r.tools,agents:r.agents,slashCommands:r.slashCommands,mcpServers:r.mcpServers,debugRaw:r.debugRaw});break;case"account_info":n.push({...Pi(r),kind:"account_info",accountInfo:r.accountInfo});break;case"assistant_text":n.push({...Pi(r),kind:"assistant_text",text:r.text});break;case"assistant_thinking":n.push({...Pi(r),kind:"assistant_thinking",text:r.text,signature:r.signature});break;case"api_error":n.push({...Pi(r),kind:"api_error",status:r.status,text:r.text,requestId:r.requestId});break;case"policy_refusal":n.push({...Pi(r),kind:"policy_refusal",text:r.text,requestId:r.requestId});break;case"tool_call":{const i=XDe(r);t.set(r.tool.toolId,{hydrated:i,normalized:r.tool}),YDe(i)&&n.push(i);break}case"tool_result":{const i=t.get(r.toolId);if(i){const s=i.normalized.toolKind==="ask_user_question"||i.normalized.toolKind==="exit_plan_mode"?QDe(r)??r.content:r.content;i.normalized.toolKind==="subagent_task"?i.hydrated.result=ZDe(r):i.hydrated.result=qDe(i.normalized,s),i.hydrated.rawResult=s,i.hydrated.isError=r.isError,r.persisted&&(i.hydrated.persisted=r.persisted)}break}case"result":n.push({...Pi(r),kind:"result",success:!r.isError,cancelled:r.subtype==="cancelled",result:r.result,durationMs:r.durationMs,costUsd:r.costUsd});break;case"status":n.push({...Pi(r),kind:"status",status:r.status});break;case"context_window_updated":n.push({...Pi(r),kind:"context_window_updated",usage:r.usage});break;case"compact_boundary":n.push({...Pi(r),kind:"compact_boundary"});break;case"compact_summary":n.push({...Pi(r),kind:"compact_summary",summary:r.summary});break;case"context_cleared":n.push({...Pi(r),kind:"context_cleared"});break;case"interrupted":n.push({...Pi(r),kind:"interrupted"});break;case"memory_loaded":n.push({...Pi(r),kind:"memory_loaded",path:r.path});break;case"auto_continue_prompt":n.push({...Pi(r),kind:"auto_continue_prompt",scheduleId:r.scheduleId});break;case"pending_tool_request":n.push({...Pi(r),kind:"pending_tool_request",toolRequestId:r.toolRequestId,toolName:r.toolName,arguments:r.arguments});break;case"tool_request_resolved":break;default:n.push({...Pi(r),kind:"unknown",json:JSON.stringify(r,null,2)});break}return n}function gte(e){return e.kind==="tool"}const e5e=["AskUserQuestion","ExitPlanMode","TodoWrite"],t5e=new Set(["TodoWrite"]);function n5e(e,t){for(let n=e.length-1;n>=0;n-=1){const r=e[n];if(gte(r)&&r.toolName===t&&!r.result)return r.id}return null}function r5e(e,t){for(let n=e.length-1;n>=0;n-=1){const r=e[n];if(gte(r)&&r.toolName===t)return r.id}return null}function i5e(e){const t={};for(const n of e5e)t[n]=t5e.has(n)?r5e(e,n):n5e(e,n);return t}function s5e(e){return e==="starting"||e==="running"||e==="waiting_for_user"}function o5e(e){return e==="starting"||e==="running"||e==="waiting_for_user"}const SD="pushDeviceId";function vte(e={}){return(e.storage??pc).getItem(SD)}function a5e(e,t={}){(t.storage??pc).setItem(SD,e)}function l5e(e={}){(e.storage??pc).removeItem(SD)}function c5e(e,t){return!(!t.isSupported()||!e.isServiceWorkerSupported()||!e.isPushManagerSupported())}function u5e(e){if(e.isSecureContext())return!0;const t=e.getHostname();return t==="localhost"||t==="127.0.0.1"||t==="::1"}function wD(e={}){const t=e.dom??Et,n=e.notification??dQ;if(!c5e(t,n))return{state:"unsupported"};if(!u5e(t))return{state:"insecure-context"};switch(n.getPermission()){case"granted":return{state:"granted"};case"denied":return{state:"denied"};default:return{state:"default"}}}function d5e(e){if(typeof Buffer<"u")return new Uint8Array(Buffer.from(e,"base64url"));const t="=".repeat((4-e.length%4)%4),n=(e+t).replace(/-/g,"+").replace(/_/g,"/"),r=atob(n),i=new Uint8Array(r.length);for(let s=0;s<r.length;s+=1)i[s]=r.charCodeAt(s);return i}function f5e(e){const t=e||"";return/iPhone|iPad/i.test(t)?"iPhone / iPad":/Android/i.test(t)?"Android":/Macintosh/i.test(t)?"Mac":/Windows/i.test(t)?"Windows PC":t||"Browser"}async function h5e(e){const t=e.dom??Et,n=e.notification??dQ,r=wD({dom:t,notification:n});if(r.state==="unsupported")throw new Error("Push not supported in this browser");if(r.state==="insecure-context")throw new Error("Push requires a secure context (HTTPS)");if(r.state==="denied")throw new Error("Notification permission previously denied");if(await n.requestPermission()!=="granted")throw new Error("Notification permission was not granted");const s=await t.registerServiceWorker("/sw.js");await t.getReadyServiceWorkerRegistration();const o=await s.pushManager.subscribe({userVisibleOnly:!0,applicationServerKey:d5e(e.vapidPublicKey)}),a=o.toJSON(),l=a.endpoint??o.endpoint,u=a.keys??{};if(!l||!u.p256dh||!u.auth)throw new Error("Subscription returned without endpoint or keys");const f=t.getUserAgent()??"",{id:p}=await e.sendToServer({subscription:{endpoint:l,keys:{p256dh:u.p256dh,auth:u.auth}},label:f5e(f),userAgent:f});return p}async function p5e(e){const r=await(await(e.dom??Et).getReadyServiceWorkerRegistration()).pushManager.getSubscription();r&&await r.unsubscribe(),await e.sendToServer(e.pushDeviceId)}const m5e={CONNECTING:WebSocket.CONNECTING,OPEN:WebSocket.OPEN,CLOSING:WebSocket.CLOSING,CLOSED:WebSocket.CLOSED,create(e){return new WebSocket(e)}},g5e=25e3,v5e=15e3,b5e=4e3,mH="kanna:profile-send-to-starting";class y5e{constructor(t,n={}){H(this,"url");H(this,"ws",null);H(this,"started",!1);H(this,"reconnectTimer",null);H(this,"reconnectDelayMs",750);H(this,"subscriptions",new Map);H(this,"pending",new Map);H(this,"outboundQueue",[]);H(this,"statusListeners",new Set);H(this,"heartbeatTimer",null);H(this,"pingTimeoutTimer",null);H(this,"pingPromise",null);H(this,"lastOpenAt",0);H(this,"lastMessageAt",0);H(this,"reconnectImmediatelyOnClose",!1);H(this,"serviceWorkerCleanup",null);H(this,"dom");H(this,"timer");H(this,"localStore");H(this,"sessStore");H(this,"wsBridge");H(this,"handleWindowFocus",()=>{this.ensureHealthyConnection()});H(this,"handleVisibilityChange",()=>{if(this.dom.getVisibilityState()==="visible"){this.startHeartbeat(),this.ensureHealthyConnection();return}this.stopHeartbeat()});H(this,"handleOnline",()=>{this.ensureHealthyConnection()});this.url=t,this.dom=n.dom??Et,this.timer=n.timer??wr,this.localStore=n.localStorage??pc,this.sessStore=n.sessionStorage??_k,this.wsBridge=n.webSocket??m5e}start(){this.started||(this.started=!0,this.serviceWorkerCleanup=this.dom.addServiceWorkerMessageListener(t=>{const n=t.data;(n==null?void 0:n.type)==="kanna.navigate"&&typeof n.url=="string"&&this.dom.setHref(n.url)}),this.dom.addWindowListener("focus",this.handleWindowFocus),this.dom.addWindowListener("online",this.handleOnline),this.dom.addDocumentListener("visibilitychange",this.handleVisibilityChange),this.connect())}dispose(){var t;this.started=!1,this.reconnectTimer&&(this.timer.clearTimeout(this.reconnectTimer),this.reconnectTimer=null),this.stopHeartbeat(),this.clearPingState(),this.serviceWorkerCleanup&&(this.serviceWorkerCleanup(),this.serviceWorkerCleanup=null),(t=this.ws)==null||t.close(),this.ws=null;for(const n of this.pending.values())n.reject(new Error("Socket disposed"));this.pending.clear()}onStatus(t){return this.statusListeners.add(t),t(this.getStatus()),()=>{this.statusListeners.delete(t)}}subscribe(t,n,r){const i=bh(),s={topic:t,listener:n,eventListener:r};return this.subscriptions.set(i,s),this.enqueue({v:1,type:"subscribe",id:i,topic:t}),()=>{this.subscriptions.delete(i),this.enqueue({v:1,type:"unsubscribe",id:i})}}subscribeTerminal(t,n){const r=bh(),i={type:"terminal",terminalId:t},s={topic:i,listener:n.onSnapshot,eventListener:n.onEvent};return this.subscriptions.set(r,s),this.enqueue({v:1,type:"subscribe",id:r,topic:i}),()=>{this.subscriptions.delete(r),this.enqueue({v:1,type:"unsubscribe",id:r})}}command(t){const n=bh(),r={v:1,type:"command",id:n,command:t};return new Promise((i,s)=>{this.pending.set(n,{resolve:i,reject:s}),this.enqueue(r)})}setFocusedChat(t){const n=bh();this.enqueue({v:1,type:"command",id:n,command:{type:"push.setFocusedChat",chatId:t}})}ensureHealthyConnection(){const t=this.wsBridge;return!this.ws||this.ws.readyState===t.CLOSED||this.ws.readyState===t.CLOSING?(this.reconnectNow(),Promise.resolve()):this.ws.readyState===t.CONNECTING||!this.isConnectionStale()?Promise.resolve():this.sendPing()}isSendToStartingProfilingEnabled(){try{return this.sessStore.getItem(mH)==="1"||this.localStore.getItem(mH)==="1"}catch{return!1}}connect(){this.started&&(this.emitStatus("connecting"),this.ws=this.wsBridge.create(this.url),this.ws.addEventListener("open",()=>{this.reconnectDelayMs=750,this.reconnectImmediatelyOnClose=!1,this.lastOpenAt=Date.now(),this.lastMessageAt=this.lastOpenAt,this.emitStatus("connected"),this.startHeartbeat();for(const[n,r]of this.subscriptions.entries())this.sendNow({v:1,type:"subscribe",id:n,topic:r.topic});for(;this.outboundQueue.length>0;){const n=this.outboundQueue.shift();n&&this.sendNow(n)}const t=vte();t&&this.sendNow({v:1,type:"command",id:bh(),command:{type:"push.identifyDevice",pushDeviceId:t}})}),this.ws.addEventListener("message",t=>{var o,a;this.lastMessageAt=Date.now();const n=performance.now(),r=t instanceof MessageEvent?t.data:void 0,i=String(r);let s;try{s=JSON.parse(i)}catch{return}if(this.isSendToStartingProfilingEnabled()&&s.type==="snapshot"&&s.snapshot.type==="chat"&&((o=s.snapshot.data)==null?void 0:o.runtime.status)==="starting"&&vo.debug("[kanna/send->starting][client-ws]",{stage:"socket_message_received",receivedAt:n,payloadBytes:i.length,chatId:s.snapshot.data.runtime.chatId,status:s.snapshot.data.runtime.status,messageCount:s.snapshot.data.messages.length}),this.isSendToStartingProfilingEnabled()&&s.type==="ack"&&vo.debug("[kanna/send->starting][client-ws]",{stage:"socket_ack_received",receivedAt:n,payloadBytes:i.length,commandId:s.id}),s.type==="snapshot"){const l=this.subscriptions.get(s.id);l==null||l.listener(s.snapshot.data);return}if(s.type==="event"){const l=this.subscriptions.get(s.id);(a=l==null?void 0:l.eventListener)==null||a.call(l,s.event);return}if(s.type==="ack"){const l=this.pending.get(s.id);if(!l)return;this.pending.delete(s.id),l.resolve(s.result);return}if(s.type==="error"){if(!s.id){vo.error(Nge,s.message);return}const l=this.pending.get(s.id);if(!l)return;this.pending.delete(s.id),l.reject(new Error(s.message))}}),this.ws.addEventListener("close",()=>{if(!this.started)return;const t=this.reconnectImmediatelyOnClose;this.reconnectImmediatelyOnClose=!1,this.stopHeartbeat(),this.clearPingState(),this.emitStatus("disconnected");for(const n of this.pending.values())n.reject(new Error("Disconnected"));if(this.pending.clear(),t){this.connect();return}this.scheduleReconnect()}))}scheduleReconnect(){this.reconnectTimer===null&&(this.reconnectTimer=this.timer.setTimeout(()=>{this.reconnectTimer=null,this.connect(),this.reconnectDelayMs=Math.min(this.reconnectDelayMs*2,5e3)},this.reconnectDelayMs))}getStatus(){var n,r;const t=this.wsBridge;return((n=this.ws)==null?void 0:n.readyState)===t.OPEN?"connected":((r=this.ws)==null?void 0:r.readyState)===t.CONNECTING?"connecting":"disconnected"}emitStatus(t){for(const n of this.statusListeners)n(t)}isConnectionStale(){const t=Math.max(this.lastMessageAt,this.lastOpenAt);return t>0&&Date.now()-t>=g5e}sendPing(){if(this.pingPromise)return this.pingPromise;const t=this.command({type:"system.ping"}).then(()=>{this.clearPingState()}).catch(n=>{throw this.clearPingState(),this.reconnectNow(),n});return this.pingTimeoutTimer=this.timer.setTimeout(()=>{this.clearPingState(),this.reconnectNow()},b5e),this.pingPromise=t,t}reconnectNow(){const t=this.wsBridge;if(this.reconnectTimer!==null&&(this.timer.clearTimeout(this.reconnectTimer),this.reconnectTimer=null),!this.ws||this.ws.readyState===t.CLOSED){this.connect();return}this.ws.readyState!==t.CONNECTING&&(this.reconnectImmediatelyOnClose=!0,this.ws.close())}startHeartbeat(){this.dom.getVisibilityState()==="visible"&&this.heartbeatTimer===null&&(this.heartbeatTimer=this.timer.setInterval(()=>{var n;if(this.dom.getVisibilityState()!=="visible"){this.stopHeartbeat();return}const t=this.wsBridge;((n=this.ws)==null?void 0:n.readyState)===t.OPEN&&this.ensureHealthyConnection()},v5e))}stopHeartbeat(){this.heartbeatTimer!==null&&(this.timer.clearInterval(this.heartbeatTimer),this.heartbeatTimer=null)}clearPingState(){this.pingTimeoutTimer!==null&&(this.timer.clearTimeout(this.pingTimeoutTimer),this.pingTimeoutTimer=null),this.pingPromise=null}enqueue(t){var r;const n=this.wsBridge;if(((r=this.ws)==null?void 0:r.readyState)===n.OPEN){this.sendNow(t);return}this.outboundQueue.push(t)}sendNow(t){var n;(n=this.ws)==null||n.send(JSON.stringify(t))}}const x5e=[],xE=tr()(e=>({byChat:{},setRuns:(t,n)=>e(r=>({byChat:{...r.byChat,[t]:n}}))}));function CD(e){return t=>t.byChat[e]??x5e}const bte=[],yte=tr()(e=>({runs:bte,setRuns:t=>e({runs:t})}));function _5e(e){return e.runs??bte}const S5e=[],mw=tr()(e=>({models:S5e,status:"idle",error:null,setLoading:()=>e({status:"loading",error:null}),setModels:t=>e({models:t,status:"ready",error:null}),setError:t=>e({status:"error",error:t})}));function w5e(e,t){const n=[...e];for(const r of t){const i=n[n.length-1];r.kind==="context_window_updated"&&(i==null?void 0:i.kind)==="context_window_updated"?n[n.length-1]=r:n.push(r)}return n}function C5e(e,t,n){let r=e.messages,i=e.runtime,s={};for(const o of t)if(o.kind==="entries.append"){const a=new Set(r.map(p=>p._id)),l=new Map(o.entries.filter(p=>a.has(p._id)).map(p=>[p._id,p])),u=l.size>0?r.map(p=>l.get(p._id)??p):r,f=o.entries.filter(p=>!a.has(p._id));r=f.length>0?w5e(u,f):u}else o.kind==="runtime.set"?i=o.runtime:o.kind==="sections.set"?s={...s,...o.sections}:r=[...r.filter(a=>a.kind!=="pending_tool_request"),...o.entries];return{...e,...s,runtime:i,messages:r,seq:n}}const k5e=[],E5e=[],N5e={},T5e={starredProjectGroups:[],projectGroups:[],stacks:[]};function A5e(e={}){return(e.storage??_k).getItem("kanna:ui-update-restart")}const ve=tr()(e=>({sidebarData:T5e,optimisticSidebarProjectOrder:null,localProjects:null,updateSnapshot:null,uiRestartPhase:A5e(),chatSnapshot:null,olderHistoryEntries:E5e,isHistoryLoading:!1,historyCursor:null,hasOlderHistory:!1,projectDiffSnapshots:N5e,keybindings:null,appSettings:null,pushConfig:null,llmProvider:null,connectionStatus:"connecting",sidebarReady:!1,localProjectsReady:!1,chatReady:!1,selectedProjectId:null,sidebarOpen:!1,sidebarCollapsed:!1,addProjectModalOpen:!1,commandError:null,startingLocalPath:null,pendingChatId:null,optimisticUserPrompts:k5e,optimisticProcessing:null,focusEpoch:0,chatResyncNonce:0,setSidebarData:t=>e({sidebarData:t}),setOptimisticSidebarProjectOrder:t=>e(n=>({optimisticSidebarProjectOrder:typeof t=="function"?t(n.optimisticSidebarProjectOrder):t})),setLocalProjects:t=>e({localProjects:t}),setUpdateSnapshot:t=>e({updateSnapshot:t}),setUiRestartPhase:t=>e({uiRestartPhase:t}),setChatSnapshot:t=>e(n=>({chatSnapshot:typeof t=="function"?t(n.chatSnapshot):t})),setOlderHistoryEntries:t=>e(n=>({olderHistoryEntries:typeof t=="function"?t(n.olderHistoryEntries):t})),setIsHistoryLoading:t=>e({isHistoryLoading:t}),setHistoryCursor:t=>e({historyCursor:t}),setHasOlderHistory:t=>e({hasOlderHistory:t}),setProjectDiffSnapshots:t=>e(n=>({projectDiffSnapshots:typeof t=="function"?t(n.projectDiffSnapshots):t})),setKeybindings:t=>e({keybindings:t}),setAppSettings:t=>e({appSettings:t}),setPushConfig:t=>e({pushConfig:t}),setLlmProvider:t=>e({llmProvider:t}),setConnectionStatus:t=>e({connectionStatus:t}),setSidebarReady:t=>e({sidebarReady:t}),setLocalProjectsReady:t=>e({localProjectsReady:t}),setChatReady:t=>e({chatReady:t}),setSelectedProjectId:t=>e({selectedProjectId:t}),setSidebarOpen:t=>e({sidebarOpen:t}),setSidebarCollapsed:t=>e({sidebarCollapsed:t}),setAddProjectModalOpen:t=>e({addProjectModalOpen:t}),setCommandError:t=>e({commandError:t}),setStartingLocalPath:t=>e({startingLocalPath:t}),setPendingChatId:t=>e({pendingChatId:t}),setOptimisticUserPrompts:t=>e(n=>({optimisticUserPrompts:typeof t=="function"?t(n.optimisticUserPrompts):t})),setOptimisticProcessing:t=>e(n=>({optimisticProcessing:typeof t=="function"?t(n.optimisticProcessing):t})),incrementFocusEpoch:()=>e(t=>({focusEpoch:t.focusEpoch+1})),applyChatOpsEvent:(t,n)=>{let r="stale";return e(i=>{const s=i.chatSnapshot;return!s||n.chatId!==t||s.runtime.chatId!==n.chatId?(r="stale",{}):s.seq===void 0?(r="gap",{}):n.toSeq<=s.seq?(r="stale",{}):n.fromSeq>s.seq+1?(r="gap",{}):(r="applied",{chatSnapshot:C5e(s,n.ops,n.toSeq)})}),r},bumpChatResyncNonce:()=>e(t=>({chatResyncNonce:t.chatResyncNonce+1}))}));async function kD(e,t=mc){const n=await t.getJson("/auth/status",{cache:"no-store",signal:e});return n.ok?n.data:{}}async function R5e(e,t=mc){const n={password:e.password};return e.next&&(n.next=e.next),(await t.postJson("/auth/login",n)).ok}async function M5e(e=mc){await e.postJson("/auth/logout",{})}function j5e(e,t){const n=["claude","codex","openrouter"];for(const r of n)if(e[r]!==t[r])return!1;return!0}function O5e(e,t){return e===t?!0:!e||!t?!1:e.chatId===t.chatId&&e.projectId===t.projectId&&e.localPath===t.localPath&&e.title===t.title&&e.status===t.status&&e.isDraining===t.isDraining&&e.provider===t.provider&&e.planMode===t.planMode&&j5e(e.sessionTokensByProvider,t.sessionTokensByProvider)}function I5e(e,t){return e===t?!0:!e||!t||e.length!==t.length?!1:e.every((n,r)=>{var i;return n._id===((i=t[r])==null?void 0:i._id)})}function P5e(e,t){return t.length===0?e:e.map(n=>n.id!=="openrouter"?n:{...n,models:t.map(r=>({id:r.id,label:r.label,supportsEffort:!1}))})}function L5e(e,t){return e===t?!0:!e||!t||e.length!==t.length?!1:e.every((n,r)=>{var i;return n.id===((i=t[r])==null?void 0:i.id)})}function D5e(e,t){return e===t?!0:!e||!t?!1:e.hasOlder===t.hasOlder&&e.olderCursor===t.olderCursor&&e.recentLimit===t.recentLimit}function $5e(e,t){return e.id===t.id&&e.content===t.content&&e.createdAt===t.createdAt&&e.provider===t.provider&&e.model===t.model&&e.planMode===t.planMode&&JSON.stringify(e.modelOptions)===JSON.stringify(t.modelOptions)&&z5e(e.attachments,t.attachments)}function z5e(e,t){return e===t?!0:e.length!==t.length?!1:e.every((n,r)=>{const i=t[r];return!!i&&n.id===i.id&&n.kind===i.kind&&n.displayName===i.displayName&&n.absolutePath===i.absolutePath&&n.relativePath===i.relativePath&&n.contentUrl===i.contentUrl&&n.mimeType===i.mimeType&&n.size===i.size})}function F5e(e,t){return e===t?!0:!e||!t||e.length!==t.length?!1:e.every((n,r)=>$5e(n,t[r]))}function B5e(e,t){var s,o;if(e===t)return!0;if(!e||!t||e.status!==t.status||e.branchName!==t.branchName||e.defaultBranchName!==t.defaultBranchName||e.hasOriginRemote!==t.hasOriginRemote||e.originRepoSlug!==t.originRepoSlug||e.hasUpstream!==t.hasUpstream||e.aheadCount!==t.aheadCount||e.behindCount!==t.behindCount||e.lastFetchedAt!==t.lastFetchedAt)return!1;const n=((s=e.branchHistory)==null?void 0:s.entries)??[],r=((o=t.branchHistory)==null?void 0:o.entries)??[];return n.length!==r.length||!n.every((a,l)=>{const u=r[l];return!!u&&a.sha===u.sha&&a.summary===u.summary&&a.description===u.description&&a.authorName===u.authorName&&a.authoredAt===u.authoredAt&&a.githubUrl===u.githubUrl&&a.tags.length===u.tags.length&&a.tags.every((f,p)=>f===u.tags[p])})||e.files.length!==t.files.length?!1:e.files.every((a,l)=>{const u=t.files[l];return!!u&&a.path===u.path&&a.changeType===u.changeType&&a.isUntracked===u.isUntracked&&a.additions===u.additions&&a.deletions===u.deletions&&a.patchDigest===u.patchDigest&&a.mimeType===u.mimeType&&a.size===u.size})}function U5e(e,t){return!!(e&&e.status!=="unknown"&&t&&t.status==="unknown"&&t.files.length===0)}function H5e(e,t){if(e===t)return!0;if(!e||!t)return!1;const n=Object.keys(e),r=Object.keys(t);return n.length!==r.length?!1:n.every(i=>{const s=e[i],o=t[i];return!s||!o?!1:s.state===o.state&&s.scheduledAt===o.scheduledAt&&s.resetAt===o.resetAt&&s.detectedAt===o.detectedAt&&s.tz===o.tz})}function W5e(e,t){if(e===t)return!0;if(!e||!t)return!1;const n=Object.keys(e),r=Object.keys(t);return n.length!==r.length?!1:n.every(i=>{const s=e[i],o=t[i];return!s||!o?!1:s.state===o.state&&s.url===o.url&&s.error===o.error&&s.port===o.port&&s.activatedAt===o.activatedAt&&s.stoppedAt===o.stoppedAt})}function V5e(e,t){if(e===t)return!0;if(!e||!t)return!1;const n=Object.keys(e),r=Object.keys(t);return n.length!==r.length?!1:n.every(i=>{var a,l,u,f,p,m;const s=e[i],o=t[i];return!s||!o?!1:s.status===o.status&&s.entries.length===o.entries.length&&(s.finalText??"")===(o.finalText??"")&&(((a=s.pendingTool)==null?void 0:a.toolUseId)??null)===(((l=o.pendingTool)==null?void 0:l.toolUseId)??null)&&(((u=s.usage)==null?void 0:u.outputTokens)??null)===(((f=o.usage)==null?void 0:f.outputTokens)??null)&&s.finishedAt===o.finishedAt&&(((p=s.error)==null?void 0:p.code)??null)===(((m=o.error)==null?void 0:m.code)??null)})}function K5e(e,t){if(e===t)return!0;if(e.armed!==t.armed||e.rows.length!==t.rows.length||!e.rows.every((s,o)=>{const a=t.rows[o];return a!=null&&s.runId===a.runId&&s.status===a.status&&s.label===a.label}))return!1;const r=e.rateLimit,i=t.rateLimit;return r==null!=(i==null)?!1:r&&i?r.resetAt===i.resetAt&&r.scheduled===i.scheduled:!0}function G5e(e,t){return e===t?!0:!e||!t?!1:O5e(e.runtime,t.runtime)&&F5e(e.queuedMessages,t.queuedMessages)&&I5e(e.messages,t.messages)&&D5e(e.history,t.history)&&L5e(e.availableProviders,t.availableProviders)&&H5e(e.schedules,t.schedules)&&e.liveScheduleId===t.liveScheduleId&&W5e(e.tunnels,t.tunnels)&&e.liveTunnelId===t.liveTunnelId&&V5e(e.subagentRuns,t.subagentRuns)&&K5e(e.loopProgress,t.loopProgress)}function gH(e,t){const n=new Map;for(const r of e)n.set(r._id,r);for(const r of t)n.set(r._id,r);return[...n.values()]}function q5e(e){for(let t=e.length-1;t>=0;t-=1){const n=e[t];if((n==null?void 0:n.kind)==="user_prompt"&&n.content.trim().length>0)return n.content}return null}const vH="__new_chat__",xte="lever-theme",_te="chat-sound-preferences",Ste="terminal-preferences",wte="chat-preferences";function gA(e,t){const n=t.getItem(e);if(!n)return null;try{const r=JSON.parse(n);return Ji(r.state)?r.state:null}catch{return null}}function Y5e(e){const t={},n=e.getItem(xte);(n==="light"||n==="dark"||n==="system")&&(t.theme=n);const r=gA(_te,e);((r==null?void 0:r.chatSoundPreference)==="never"||(r==null?void 0:r.chatSoundPreference)==="unfocused"||(r==null?void 0:r.chatSoundPreference)==="always")&&(t.chatSoundPreference=r.chatSoundPreference),((r==null?void 0:r.chatSoundId)==="blow"||(r==null?void 0:r.chatSoundId)==="bottle"||(r==null?void 0:r.chatSoundId)==="frog"||(r==null?void 0:r.chatSoundId)==="funk"||(r==null?void 0:r.chatSoundId)==="glass"||(r==null?void 0:r.chatSoundId)==="ping"||(r==null?void 0:r.chatSoundId)==="pop"||(r==null?void 0:r.chatSoundId)==="purr"||(r==null?void 0:r.chatSoundId)==="tink")&&(t.chatSoundId=r.chatSoundId);const i=gA(Ste,e);if(i){t.terminal={},typeof i.scrollbackLines=="number"&&(t.terminal.scrollbackLines=i.scrollbackLines),typeof i.minColumnWidth=="number"&&(t.terminal.minColumnWidth=i.minColumnWidth);const o={};(i.editorPreset==="cursor"||i.editorPreset==="vscode"||i.editorPreset==="xcode"||i.editorPreset==="windsurf"||i.editorPreset==="custom")&&(o.preset=i.editorPreset),typeof i.editorCommandTemplate=="string"&&(o.commandTemplate=i.editorCommandTemplate),Object.keys(o).length>0&&(t.editor=o)}const s=gA(wte,e);if(((s==null?void 0:s.defaultProvider)==="last_used"||(s==null?void 0:s.defaultProvider)==="claude"||(s==null?void 0:s.defaultProvider)==="codex")&&(t.defaultProvider=s.defaultProvider),Ji(s==null?void 0:s.providerDefaults)){const o=s.providerDefaults;t.providerDefaults=o}return t.browserSettingsMigrated=!0,Object.keys(t).length>1?t:null}function X5e(e){e.removeItem(xte),e.removeItem(_te),e.removeItem(Ste),e.removeItem(wte)}function Wb(e){Hr.getState().setFromServer(e);const t=zs.getState();t.setScrollbackLines(e.terminal.scrollbackLines),t.setMinColumnWidth(e.terminal.minColumnWidth),t.setEditorPreset(e.editor.preset),t.setEditorCommandTemplate(e.editor.commandTemplate);const n=Nh.getState();n.setChatSoundPreference(e.chatSoundPreference),n.setChatSoundId(e.chatSoundId),Ws.getState().applyServerDefaults(e.defaultProvider,e.providerDefaults)}function Q5e(e){return JSON.stringify({id:e.id,kind:e.kind,displayName:e.displayName,relativePath:e.relativePath,mimeType:e.mimeType,size:e.size,contentUrl:e.contentUrl})}function ED(e,t=[]){return JSON.stringify({content:e,attachments:t.map(Q5e)})}function J5e(e,t){return e.reduce((n,r)=>r.kind!=="user_prompt"?n:n+(ED(r.content,r.attachments??[])===t?1:0),0)}function Z5e(e,t,n){const r=new Map;for(const i of n){if(i.kind!=="user_prompt")continue;const s=ED(i.content,i.attachments??[]);r.set(s,(r.get(s)??0)+1)}return e.filter(i=>i.scopeId!==t?!0:(r.get(i.signature)??0)<i.requiredMatchCount)}function e3e(e,t,n){return e.some(r=>r.id===t)?e.filter(r=>r.id!==t):e}const t3e=200,n3e=500;function bH(e,t){var r;const n=e.find(i=>i.chats.some(s=>s.chatId===t));return n?((r=n.chats.find(i=>i.chatId!==t))==null?void 0:r.chatId)??null:null}function yH(e,t){if(!(t!=null&&t.length)||e.length<=1)return e;const n=new Map(e.map((o,a)=>[o.groupKey,a])),r=new Set,i=t.map(o=>{if(r.has(o))return null;r.add(o);const a=n.get(o);return a===void 0?null:e[a]}).filter(o=>!!o);if(i.length===0)return e;const s=[...i,...e.filter(o=>!r.has(o.groupKey))];return s.every((o,a)=>o===e[a])?e:s}function r3e(e){const t=e??Et;return t.getVisibilityState()==="visible"&&t.hasFocus()}function i3e(e){const t=e.getHref(),n=t.startsWith("https://")?"wss:":"ws:",r=new URL(t);return`${n}//${r.host}/ws`}function s3e(e){const t=_.useMemo(()=>new y5e(i3e(e.dom),e),[]);return _.useEffect(()=>(t.start(),()=>{t.dispose()}),[t]),t}const xH="kanna:profile-send-to-starting";function o3e(e,t){try{return e.getItem(xH)==="1"||t.getItem(xH)==="1"}catch{return!1}}function Cte(e){return Number((performance.now()-e).toFixed(1))}function _d(e,t,n,r=_k,i=pc){!e||!o3e(r,i)||vo.debug("[kanna/send->starting][client]",{traceId:e.traceId,stage:t,elapsedMs:Cte(e.startedAt),serverChatId:e.serverChatId,routeChatIdAtSend:e.routeChatIdAtSend,...n})}function a3e(e){var t,n;return(e==null?void 0:e.provider)==="claude"&&e.model&&((t=e.modelOptions)!=null&&t.claude)?{provider:"claude",model:e.model,modelOptions:{reasoningEffort:e.modelOptions.claude.reasoningEffort??"high",contextWindow:e.modelOptions.claude.contextWindow??"200k"},planMode:!!e.planMode}:(e==null?void 0:e.provider)==="codex"&&e.model&&((n=e.modelOptions)!=null&&n.codex)?{provider:"codex",model:e.model,modelOptions:{reasoningEffort:e.modelOptions.codex.reasoningEffort??"high",fastMode:e.modelOptions.codex.fastMode??!1},planMode:!!e.planMode}:null}function l3e(e,t){var n;return t?((n=e.find(r=>r.chats.some(i=>i.chatId===t)))==null?void 0:n.groupKey)??null:null}function c3e(e,t){return e==="awaiting_disconnect"&&t==="disconnected"?"awaiting_server_ready":"none"}function u3e(e,t){return t==="updating"||t==="restart_pending"?{active:!0,label:"Installing update"}:e==="awaiting_disconnect"||e==="awaiting_server_ready"?{active:!0,label:"Re-deploying Kanna"}:{active:!1,label:""}}const d3e=30,ND="kanna:ui-update-restart",kte="kanna:last-update-reload-request";function f3e(e){return e+d3e}function h3e(e,t){return t>0?t:e}function _H(e){return e.getItem(ND)}function p3e(e,t){t.setItem(ND,e)}function m3e(e){e.removeItem(ND)}function g3e(e,t){return e?String(e)!==t:!1}function v3e(e){return e.getItem(kte)}function b3e(e,t){t.setItem(kte,String(e))}async function y3e(e){const t=await kD(e);return Object.keys(t).length>0}function x3e(e){const t=e.selectedProjectId??e.sidebarProjectId??null;return t?{kind:"project_id",projectId:t}:e.fallbackLocalProjectPath?{kind:"local_path",localPath:e.fallbackLocalProjectPath}:null}function _3e(e,t){return!e||!t?null:e.runtime.chatId!==t?(e.runtime.chatId,e.runtime.provider,null):e}function S3e(e,t={}){var wl,to,ta;const n=t.localStore??pc,r=t.sessStore??_k,i=t.dom??Et,s=t.timer??wr,o=t.clipboard??yl,a=Sf(),l=s3e({dom:i,timer:s,localStorage:n,sessionStorage:r}),u=p_(),f=ve(q=>q.sidebarData),p=ve(q=>q.optimisticSidebarProjectOrder),m=ve(q=>q.localProjects),g=ve(q=>q.updateSnapshot),b=ve(q=>q.uiRestartPhase),y=_.useCallback(q=>{p3e(q,r),ve.getState().setUiRestartPhase(q)},[r]),x=_.useCallback(()=>{m3e(r),ve.getState().setUiRestartPhase(null)},[r]),w=ve(q=>q.chatSnapshot),k=ve(q=>q.chatResyncNonce),C=ve(q=>q.olderHistoryEntries),E=ve(q=>q.isHistoryLoading),A=ve(q=>q.historyCursor),N=ve(q=>q.hasOlderHistory),M=ve(q=>q.projectDiffSnapshots),j=ve(q=>q.keybindings),I=ve(q=>q.appSettings),z=ve(q=>q.pushConfig),F=ve(q=>q.llmProvider),O=ve(q=>q.connectionStatus),P=ve(q=>q.sidebarReady),W=ve(q=>q.localProjectsReady),U=ve(q=>q.chatReady),B=ve(q=>q.selectedProjectId),K=ve(q=>q.sidebarOpen),V=ve(q=>q.sidebarCollapsed),Y=ve(q=>q.addProjectModalOpen),G=ve(q=>q.commandError),D=ve(q=>q.startingLocalPath),Q=ve(q=>q.pendingChatId),ae=ve(q=>q.optimisticUserPrompts),re=ve(q=>q.optimisticProcessing),he=ve(q=>q.focusEpoch),ue=_.useRef(new Map),ce=Uj(kg(q=>Object.keys(q.drafts).sort())),ge=Uj(kg(q=>Object.keys(q.attachmentDrafts).sort())),ne=_.useRef(0),le=_.useRef(null),te=_.useRef({projectId:null,diffs:null}),we=E_e(zs(q=>q.editorPreset)),se=_.useMemo(()=>yH(f.projectGroups,p),[p,f.projectGroups]),Pe=_.useRef(se);_.useLayoutEffect(()=>{Pe.current=se});const Fe=_.useMemo(()=>se===f.projectGroups?f:{...f,projectGroups:se},[f,se]);_.useEffect(()=>l.onStatus(q=>ve.getState().setConnectionStatus(q)),[l]),_.useEffect(()=>l.subscribe({type:"sidebar"},q=>{const J=ve.getState();J.setSidebarData(q),J.setOptimisticSidebarProjectOrder(ye=>ye&&yH(q.projectGroups,ye)===q.projectGroups?null:ye),J.setSidebarReady(!0),J.setCommandError(null)}),[l]),_.useEffect(()=>{if(O!=="connected")return;const q=[...new Set([...ce,...ge])].sort();l.command({type:"chat.setDraftProtection",chatIds:q}).catch(J=>{ve.getState().setCommandError(J instanceof Error?J.message:String(J))})},[ge,O,ce,l]),_.useEffect(()=>l.subscribe({type:"local-projects"},q=>{const J=ve.getState();J.setLocalProjects(q),J.setLocalProjectsReady(!0),J.setCommandError(null)}),[l]),_.useEffect(()=>l.subscribe({type:"update"},q=>{const J=ve.getState();J.setUpdateSnapshot(q),J.setCommandError(null)}),[l]),_.useEffect(()=>{O==="connected"&&l.command({type:"update.check",force:!0}).catch(q=>{ve.getState().setCommandError(q instanceof Error?q.message:String(q))})},[O,l]),_.useEffect(()=>{const q=g==null?void 0:g.reloadRequestedAt;g3e(q,v3e(r))&&q&&(b3e(q,r),y("awaiting_disconnect"))},[y,r,g==null?void 0:g.reloadRequestedAt]),_.useEffect(()=>{const q=_H(r);c3e(q,O)==="awaiting_server_ready"&&y("awaiting_server_ready")},[O,y,r]),_.useEffect(()=>{if(_H(r)!=="awaiting_server_ready")return;let q=!1,J=null;const ye=async()=>{try{if(await y3e()){if(q)return;x(),i.reload();return}}catch{}q||(J=s.setTimeout(()=>{ye()},500))};return ye(),()=>{q=!0,J!==null&&s.clearTimeout(J)}},[x,O,i,r,s]),_.useEffect(()=>{function q(){g!=null&&g.lastCheckedAt&&(Date.now()-g.lastCheckedAt<=3600*1e3||l.command({type:"update.check"}).catch(J=>{ve.getState().setCommandError(J instanceof Error?J.message:String(J))}))}return i.addWindowListener("focus",q)},[i,l,g==null?void 0:g.lastCheckedAt]),_.useEffect(()=>l.subscribe({type:"keybindings"},q=>{const J=ve.getState();J.setKeybindings(q),J.setCommandError(null)}),[l]),_.useEffect(()=>l.subscribe({type:"app-settings"},q=>{const J=ve.getState();J.setAppSettings(q),Wb(q),J.setCommandError(null)}),[l]),_.useEffect(()=>l.subscribe({type:"push-config"},q=>{ve.getState().setPushConfig(q)}),[l]),_.useEffect(()=>l.subscribe({type:"pty-instances"},q=>{cu.getState().applySnapshot(q.instances)},q=>{q.type==="pty-instances.added"?cu.getState().applyDiff({op:"added",instance:q.instance}):q.type==="pty-instances.updated"?cu.getState().applyDiff({op:"updated",instance:q.instance}):cu.getState().applyDiff({op:"removed",chatId:q.chatId})}),[l]);const ht=_.useCallback(async()=>{try{Hr.getState().setHydrationStatus("loading");const q=await l.command({type:"settings.readAppSettings"}),J=ve.getState();J.setAppSettings(q),Wb(q),J.setCommandError(null)}catch(q){Hr.getState().setHydrationStatus("error"),ve.getState().setCommandError(q instanceof Error?q.message:String(q))}},[l]),Dn=_.useCallback(async(q,J)=>{try{await l.command({type:"chat.setPolicyOverride",chatId:q,policyOverride:J}),ve.getState().setCommandError(null)}catch(ye){throw ve.getState().setCommandError(ye instanceof Error?ye.message:String(ye)),ye}},[l]),on=_.useCallback(async q=>{try{Hr.getState().applyOptimisticPatch(q);const J=await l.command({type:"settings.writeAppSettingsPatch",patch:q}),ye=ve.getState();ye.setAppSettings(J),Wb(J),ye.setCommandError(null)}catch(J){throw ve.getState().setCommandError(J instanceof Error?J.message:String(J)),await ht(),J}},[ht,l]),pn=_.useCallback(async q=>{try{await l.command({type:"settings.testMcpServer",id:q}),ve.getState().setCommandError(null)}catch(J){throw ve.getState().setCommandError(J instanceof Error?J.message:String(J)),J}},[l]),nn=_.useCallback(async q=>{try{const J=await l.command({type:"settings.startMcpOAuth",id:q});return ve.getState().setCommandError(null),J}catch(J){const ye=J instanceof Error?J.message:String(J);return ve.getState().setCommandError(ye),{ok:!1,error:ye}}},[l]),Nt=_.useCallback(async(q,J)=>{try{const ye=await l.command({type:"settings.completeMcpOAuth",id:q,callbackUrl:J});return ve.getState().setCommandError(null),ye}catch(ye){const Je=ye instanceof Error?ye.message:String(ye);return ve.getState().setCommandError(Je),{ok:!1,error:Je}}},[l]),Bt=_.useCallback(async q=>{try{Hr.getState().applyOptimisticPatch({cloudflareTunnel:q});const J=await l.command({type:"appSettings.setCloudflareTunnel",patch:q}),ye=ve.getState();ye.setAppSettings(J),Wb(J),ye.setCommandError(null)}catch(J){throw ve.getState().setCommandError(J instanceof Error?J.message:String(J)),await ht(),J}},[ht,l]),xn=_.useCallback(async q=>{try{Hr.getState().applyOptimisticPatch({claudeAuth:q});const J=await l.command({type:"appSettings.setClaudeAuth",patch:q}),ye=ve.getState();ye.setAppSettings(J),Wb(J),ye.setCommandError(null)}catch(J){throw ve.getState().setCommandError(J instanceof Error?J.message:String(J)),await ht(),J}},[ht,l]),St=_.useCallback(async q=>await l.command({type:"appSettings.testOAuthToken",token:q}),[l]),Cn=_.useCallback(async()=>{try{const q=await l.command({type:"settings.readLlmProvider"}),J=ve.getState();J.setLlmProvider(q),J.setCommandError(null)}catch(q){ve.getState().setCommandError(q instanceof Error?q.message:String(q))}},[l]),_n=_.useCallback(async q=>{try{const J=await l.command({type:"settings.writeLlmProvider",provider:q.provider,apiKey:q.apiKey,model:q.model,baseUrl:q.baseUrl}),ye=ve.getState();ye.setLlmProvider(J),ye.setCommandError(null)}catch(J){throw ve.getState().setCommandError(J instanceof Error?J.message:String(J)),J}},[l]),dn=_.useCallback(async q=>await l.command({type:"settings.validateLlmProvider",provider:q.provider,apiKey:q.apiKey,model:q.model,baseUrl:q.baseUrl}),[l]);_.useEffect(()=>{O==="connected"&&ht()},[O,ht]),_.useEffect(()=>{if(O!=="connected")return;mw.getState().setLoading(),l.command({type:"settings.listOpenRouterModels"}).then(J=>{mw.getState().setModels(J)}).catch(J=>{const ye=J instanceof Error?J.message:String(J);mw.getState().setError(ye)})},[O,l]),_.useEffect(()=>{if(O!=="connected"||(I==null?void 0:I.browserSettingsMigrated)!==!1)return;const q=Y5e(n);q&&on(q).then(()=>X5e(n)).catch(()=>{})},[I==null?void 0:I.browserSettingsMigrated,O,on,n]),_.useEffect(()=>{O==="connected"&&Cn()},[O,Cn]),_.useEffect(()=>{function q(){ve.getState().incrementFocusEpoch()}const J=i.addWindowListener("focus",q),ye=i.addDocumentListener("visibilitychange",q);return()=>{J(),ye()}},[i]),_.useEffect(()=>{if(!e){ve.getState().setChatSnapshot(null),ve.getState().setChatReady(!0);return}++ne.current,Pe.current.length,Pe.current.reduce((J,ye)=>J+ye.chats.length,0),ve.getState().setChatSnapshot(null),ve.getState().setChatReady(!1);const q=l.subscribe({type:"chat",chatId:e,recentLimit:t3e},J=>{if(J!=null&&J.runtime.chatId){const Je=[...ue.current.values()].filter(Se=>Se.serverChatId===J.runtime.chatId).sort((Se,$)=>$.startedAt-Se.startedAt)[0];Je&&Je.snapshotAt===void 0&&(Je.snapshotAt=performance.now(),_d(Je,"chat_snapshot_received",{status:J.runtime.status,messageCount:J.messages.length},r,n))}ve.getState().setChatSnapshot(Je=>{const Se=G5e(Je,J);return J==null||J.runtime.chatId,J==null||J.runtime.provider,J==null||J.runtime.status,J==null||J.messages.length,Se?Je&&J&&Je.seq!==J.seq?{...Je,seq:J.seq}:Je:J});const ye=ve.getState();if(ye.setHistoryCursor((J==null?void 0:J.history.olderCursor)??null),ye.setHasOlderHistory((J==null?void 0:J.history.hasOlder)??!1),ye.setChatReady(!0),ye.setCommandError(null),J){const Je=_D.getState();Je.setForChat(J.runtime.chatId,J.slashCommands??[]),Je.setLoadingForChat(J.runtime.chatId,J.slashCommandsLoading??!1)}},J=>{if(J.type!=="chat.ops"||J.chatId!==e)return;ve.getState().applyChatOpsEvent(e,J)==="gap"&&(J.fromSeq,J.toSeq,ve.getState().bumpChatResyncNonce())});return()=>{Pe.current.length,Pe.current.reduce((J,ye)=>J+ye.chats.length,0),q()}},[e,n,r,l,k]),_.useEffect(()=>{if(e)return l.subscribe({type:"workflows",chatId:e},q=>{xE.getState().setRuns(q.chatId,q.runs)})},[e,l]),_.useEffect(()=>l.subscribe({type:"orch-runs"},q=>{yte.getState().setRuns(q.runs)}),[l]),_.useEffect(()=>{if(B)return;const q=se[0];q&&ve.getState().setSelectedProjectId(q.groupKey)},[B,se]),_.useEffect(()=>{if(!e||!P||!U)return;if(se.some(J=>J.chats.some(ye=>ye.chatId===e))){Q===e&&ve.getState().setPendingChatId(null);return}Q!==e&&a("/")},[e,U,a,Q,se,P]),_.useEffect(()=>{w&&(ve.getState().setSelectedProjectId(w.runtime.projectId),Q===w.runtime.chatId&&ve.getState().setPendingChatId(null))},[w,Q]),_.useEffect(()=>{if(!e||!P||!r3e(i))return;const q=se.flatMap(J=>J.chats).find(J=>J.chatId===e);q!=null&&q.unread&&l.command({type:"chat.markRead",chatId:e}).catch(J=>{ve.getState().setCommandError(J instanceof Error?J.message:String(J))})},[e,i,he,se,P,l]),_.useEffect(()=>{const q=ve.getState();q.setOlderHistoryEntries([]),q.setIsHistoryLoading(!1),q.setHistoryCursor(null),q.setHasOlderHistory(!1)},[e]);const rt=_.useMemo(()=>_3e(w,e),[e,w]),kt=_.useMemo(()=>(rt==null?void 0:rt.runtime.projectId)??l3e(se,e)??B,[e,rt==null?void 0:rt.runtime.projectId,B,se]),fn=_.useMemo(()=>{const q=kt?M[kt]??null:null;return kt&&q?(te.current={projectId:kt,diffs:q},q):kt&&te.current.projectId===kt?te.current.diffs:q},[kt,M]);_.useEffect(()=>kt?l.subscribe({type:"project-git",projectId:kt},J=>{ve.getState().setProjectDiffSnapshots(ye=>{const Je=J??null;return U5e(ye[kt]??null,Je)||B5e(ye[kt]??null,Je)?ye:{...ye,[kt]:Je}}),ve.getState().setCommandError(null)}):void 0,[kt,l]),_.useEffect(()=>{w==null||w.runtime.chatId,w==null||w.runtime.provider,rt==null||rt.runtime.chatId,rt==null||rt.runtime.provider},[e,rt,w,Q]);const Xt=_.useMemo(()=>gH(C,(rt==null?void 0:rt.messages)??[]),[rt==null?void 0:rt.messages,C]),Lt=e??vH,Gt=_.useMemo(()=>ae.filter(q=>q.scopeId===Lt).map(q=>q.entry),[Lt,ae]),Qt=_.useMemo(()=>[...Xt,...Gt],[Gt,Xt]),Ut=_.useMemo(()=>yE(Qt),[Qt]),Wt=_.useMemo(()=>q5e(Ut),[Ut]),Jt=_.useMemo(()=>i5e(Ut),[Ut]),Be=(rt==null?void 0:rt.runtime)??null,Ue=(rt==null?void 0:rt.queuedMessages)??[],lt=((re==null?void 0:re.scopeId)===Lt&&(!Be||Be.status==="idle")?"starting":null)??(Be==null?void 0:Be.status)??null,Ke=(rt==null?void 0:rt.availableProviders)??ix,ot=mw(kg(q=>q.models)),Dt=_.useMemo(()=>P5e(Ke,ot),[Ke,ot]),$t=o5e(lt??void 0),zt=s5e(lt??void 0),Zt=(Be==null?void 0:Be.isDraining)??!1,bt=((wl=m==null?void 0:m.projects[0])==null?void 0:wl.localPath)??null,ee=(Be==null?void 0:Be.localPath)??bt??((to=se[0])==null?void 0:to.localPath),Ae=!!(B??(Be==null?void 0:Be.projectId)??((ta=se[0])==null?void 0:ta.groupKey)??bt);_.useEffect(()=>{(re==null?void 0:re.scopeId)===Lt&&Be!=null&&Be.status&&Be.status!=="idle"&&ve.getState().setOptimisticProcessing(null)},[re,Lt,Be==null?void 0:Be.status]),_.useEffect(()=>{if(!(re!=null&&re.ackedAt)||re.scopeId!==Lt||Be!=null&&Be.status&&Be.status!=="idle")return;const q=re.ackedAt,J=s.setTimeout(()=>{ve.getState().setOptimisticProcessing(ye=>(ye==null?void 0:ye.scopeId)===Lt&&ye.ackedAt===q?null:ye)},300);return()=>s.clearTimeout(J)},[re,Lt,Be==null?void 0:Be.status,s]),_.useEffect(()=>{if(!e||(Be==null?void 0:Be.status)!=="starting")return;const q=[...ue.current.values()].filter(J=>J.serverChatId===e).sort((J,ye)=>ye.startedAt-J.startedAt)[0];!q||q.startingStatusAt!==void 0||(q.startingStatusAt=performance.now(),_d(q,"runtime_status_starting",{status:Be.status},r,n))},[e,n,Be==null?void 0:Be.status,r]),_.useEffect(()=>{if(!e||!Be||Be.status==="starting")return;const q=[...ue.current.values()].filter(J=>J.serverChatId===e).sort((J,ye)=>ye.startedAt-J.startedAt)[0];!q||q.startingRenderedAt!==void 0||(_d(q,"starting_not_observed",{status:Be.status},r,n),ue.current.delete(q.traceId))},[e,n,Be,r]),_.useLayoutEffect(()=>{if(!e||(Be==null?void 0:Be.status)!=="starting"){le.current=null;return}const q=[...ue.current.values()].filter(J=>J.serverChatId===e).sort((J,ye)=>ye.startedAt-J.startedAt)[0];q&&le.current!==q.traceId&&(le.current=q.traceId,q.startingRenderedAt=performance.now(),_d(q,"starting_render_committed",{totalMs:Cte(q.startedAt)},r,n),ue.current.delete(q.traceId))},[e,n,Be==null?void 0:Be.status,r]),_.useEffect(()=>{ve.getState().setOptimisticUserPrompts(q=>{const J=Z5e(q,Lt,Xt);return J.length===q.length&&J.every((ye,Je)=>ye===q[Je])?q:J})},[Lt,Xt]);const He=_.useCallback(async()=>{if(!(!e||!A||E||!N)){ve.getState().setIsHistoryLoading(!0);try{const q=await l.command({type:"chat.loadHistory",chatId:e,beforeCursor:A,limit:n3e}),J=ve.getState();J.setOlderHistoryEntries(ye=>gH(q.messages,ye)),J.setHistoryCursor(q.olderCursor),J.setHasOlderHistory(q.hasOlder),J.setCommandError(null)}catch(q){const J=q instanceof Error?q.message:String(q);ve.getState().setCommandError(J)}finally{ve.getState().setIsHistoryLoading(!1)}}},[e,N,A,E,l]),Ge=_.useCallback(async q=>{const J=Ws.getState(),ye=e?J.getComposerState(e):J.getComposerState($y),Je=await l.command({type:"chat.create",projectId:q});J.initializeComposerForChat(Je.chatId,{sourceState:ye});const Se=ve.getState();Se.setSelectedProjectId(q),Se.setPendingChatId(Je.chatId),a(`/chat/${Je.chatId}`),Se.setSidebarOpen(!1),Se.setCommandError(null)},[e,a,l]),Ze=_.useCallback(async q=>q.kind==="project_id"?{projectId:q.projectId}:q.kind==="local_path"?{projectId:(await l.command({type:"project.open",localPath:q.localPath})).projectId,localPath:q.localPath}:{projectId:(await l.command(q.project.mode==="new"?{type:"project.create",localPath:q.project.localPath,title:q.project.title}:{type:"project.open",localPath:q.project.localPath})).projectId,localPath:q.project.localPath},[l]),ft=_.useCallback(async q=>{try{let J;q.kind==="project_id"?J=null:q.kind==="local_path"?J=q.localPath:J=q.project.localPath,J&&ve.getState().setStartingLocalPath(J);const{projectId:ye}=await Ze(q);await Ge(ye)}catch(J){ve.getState().setCommandError(J instanceof Error?J.message:String(J))}finally{ve.getState().setStartingLocalPath(null)}},[Ge,Ze]),wt=_.useCallback(async q=>{await ft({kind:"project_id",projectId:q})},[ft]),Ye=_.useCallback(async q=>{try{const J=await l.command({type:"chat.fork",chatId:q.chatId}),ye=Ws.getState();ye.initializeComposerForChat(J.chatId,{sourceState:ye.getComposerState(q.chatId)});const Je=ve.getState();Je.setPendingChatId(J.chatId),a(`/chat/${J.chatId}`),Je.setSidebarOpen(!1),Je.setCommandError(null)}catch(J){ve.getState().setCommandError(J instanceof Error?J.message:String(J))}},[a,l]),Vt=_.useCallback(async q=>{await ft({kind:"local_path",localPath:q})},[ft]),Xe=_.useCallback(async q=>{await ft({kind:"project_request",project:q})},[ft]),Tt=_.useCallback(async q=>{try{await l.command({type:"update.check",force:q==null?void 0:q.force}),ve.getState().setCommandError(null)}catch(J){ve.getState().setCommandError(J instanceof Error?J.message:String(J))}},[l]),ln=_.useCallback(async q=>{y("awaiting_disconnect");try{const J=await l.command({type:"update.install",version:q});if(!J.ok){x(),ve.getState().setCommandError(null),await u.alert({title:J.userTitle??"Update failed",description:J.userMessage??"Kanna could not install the update. Try again later.",closeLabel:"OK"});return}if(J.ok&&J.action==="reload"){i.reload();return}ve.getState().setCommandError(null)}catch(J){x(),ve.getState().setCommandError(J instanceof Error?J.message:String(J))}},[x,u,i,y,l]),Or=_.useCallback(async()=>{y("awaiting_disconnect");try{const q=await l.command({type:"update.reload"});if(!q.ok){x(),ve.getState().setCommandError(null),await u.alert({title:q.userTitle??"Re-deploy failed",description:q.userMessage??"Kanna could not re-deploy. Try again later.",closeLabel:"OK"});return}if(q.action==="reload"){i.reload();return}ve.getState().setCommandError(null)}catch(q){x(),ve.getState().setCommandError(q instanceof Error?q.message:String(q))}},[x,u,i,y,l]),br=_.useCallback(async()=>{try{await M5e(),ve.getState().setCommandError(null),i.reload()}catch(q){ve.getState().setCommandError(q instanceof Error?q.message:String(q))}},[i]),nr=_.useCallback(async(q,J)=>{var Cl;const ye=(J==null?void 0:J.attachments)??[],Je=bh(),Se=bh(),$=ED(q,ye),Ee=e??vH;ve.getState().setOptimisticProcessing({scopeId:Ee,ackedAt:null});const Ht={traceId:Se,optimisticId:Je,startedAt:performance.now(),serverChatId:e,routeChatIdAtSend:e,contentPreview:q.slice(0,80)};ue.current.set(Se,Ht),_d(Ht,"handle_send_called",{optimisticScopeId:Ee,attachments:ye.length,contentLength:q.length,contentPreview:Ht.contentPreview},r,n);const yi=J5e(Xt,$)+ae.filter(lr=>lr.scopeId===Ee&&lr.signature===$).length+1;ve.getState().setOptimisticUserPrompts(lr=>[...lr,{id:Je,scopeId:Ee,signature:$,requiredMatchCount:yi,entry:{_id:`optimistic:${Je}`,kind:"user_prompt",content:q,attachments:ye,createdAt:Date.now()}}]),_d(Ht,"optimistic_prompt_added",{optimisticId:Je,optimisticScopeId:Ee},r,n);try{let lr=B??((Cl=se[0])==null?void 0:Cl.groupKey)??null;if(!e&&!lr&&bt&&(lr=(await l.command({type:"project.open",localPath:bt})).projectId,ve.getState().setSelectedProjectId(lr)),!e&&!lr)throw new Error("Open a project first");const Ms=Hj.getState().autoResumeOnRateLimit,rs=await l.command({type:"chat.send",chatId:e??void 0,projectId:e?void 0:lr??void 0,clientTraceId:Se,provider:J==null?void 0:J.provider,content:q,attachments:ye,model:J==null?void 0:J.model,modelOptions:J==null?void 0:J.modelOptions,planMode:J==null?void 0:J.planMode,autoResumeOnRateLimit:Ms});if(Ht.ackAt=performance.now(),Ht.serverChatId=rs.chatId??Ht.serverChatId,rs.queued?(ve.getState().setOptimisticUserPrompts(js=>e3e(js,Je,{queued:!0})),ve.getState().setOptimisticProcessing(null)):ve.getState().setOptimisticProcessing(js=>js&&{scopeId:!e&&rs.chatId?rs.chatId:js.scopeId,ackedAt:performance.now()}),_d(Ht,"chat_send_ack_received",{resultChatId:rs.chatId??null,queued:rs.queued??!1},r,n),!e&&rs.chatId){ve.getState().setOptimisticUserPrompts(Ha=>Ha.map(If=>If.id===Je?{...If,scopeId:rs.chatId}:If));const js=Ws.getState();js.setComposerState(rs.chatId,a3e(J)??js.getComposerState($y)),ve.getState().setPendingChatId(rs.chatId),a(`/chat/${rs.chatId}`)}ve.getState().setCommandError(null)}catch(lr){throw ve.getState().setOptimisticUserPrompts(Ms=>Ms.filter(rs=>rs.id!==Je)),ve.getState().setOptimisticProcessing(null),_d(Ht,"handle_send_failed",{error:lr instanceof Error?lr.message:String(lr)},r,n),ue.current.delete(Se),ve.getState().setCommandError(lr instanceof Error?lr.message:String(lr)),lr}},[e,bt,n,a,ae,B,Xt,r,se,l]),Fr=_.useCallback(async q=>{if(!e)return;const J=e;ve.getState().setOptimisticProcessing({scopeId:J,ackedAt:null});try{await l.command({type:"message.steer",chatId:e,queuedMessageId:q}),ve.getState().setOptimisticProcessing(ye=>(ye==null?void 0:ye.scopeId)===J?{scopeId:J,ackedAt:performance.now()}:ye),ve.getState().setCommandError(null)}catch(ye){ve.getState().setOptimisticProcessing(null),ve.getState().setCommandError(ye instanceof Error?ye.message:String(ye))}},[e,l]),Bn=_.useCallback(async q=>{if(e)try{await l.command({type:"message.dequeue",chatId:e,queuedMessageId:q}),ve.getState().setCommandError(null)}catch(J){ve.getState().setCommandError(J instanceof Error?J.message:String(J))}},[e,l]),At=_.useCallback(async()=>{if(e)try{await l.command({type:"chat.cancel",chatId:e})}catch(q){ve.getState().setCommandError(q instanceof Error?q.message:String(q))}},[e,l]),ke=_.useCallback(async()=>{if(e)try{await l.command({type:"chat.stopDraining",chatId:e})}catch(q){ve.getState().setCommandError(q instanceof Error?q.message:String(q))}},[e,l]),Ct=_.useCallback(async q=>{const J=await u.prompt({title:"Rename Chat",initialValue:q.title,confirmLabel:"Rename"});if(!(!J||J===q.title))try{await l.command({type:"chat.rename",chatId:q.chatId,title:J}),ve.getState().setCommandError(null)}catch(ye){ve.getState().setCommandError(ye instanceof Error?ye.message:String(ye))}},[u,l]),Vn=_.useCallback(async q=>{if(await u.confirm({title:"Delete Chat",description:`Delete "${q.title}"? This cannot be undone.`,confirmLabel:"Delete",confirmVariant:"destructive"}))try{if(await l.command({type:"chat.delete",chatId:q.chatId}),q.chatId===e){const ye=bH(se,q.chatId);a(ye?`/chat/${ye}`:"/")}}catch(ye){ve.getState().setCommandError(ye instanceof Error?ye.message:String(ye))}},[e,u,a,se,l]),Ir=_.useCallback(async q=>{try{if(await l.command({type:"chat.archive",chatId:q.chatId}),q.chatId===e){const J=bH(se,q.chatId);a(J?`/chat/${J}`:"/")}ve.getState().setCommandError(null)}catch(J){ve.getState().setCommandError(J instanceof Error?J.message:String(J))}},[e,a,se,l]),Tr=_.useCallback(async q=>{try{ve.getState().setPendingChatId(q),await l.command({type:"chat.unarchive",chatId:q}),a(`/chat/${q}`),ve.getState().setCommandError(null)}catch(J){ve.getState().setPendingChatId(null),ve.getState().setCommandError(J instanceof Error?J.message:String(J))}},[a,l]),de=_.useCallback(async q=>{try{await l.command({type:"project.remove",projectId:q}),Rd.getState().clearProject(q),uo.getState().clearProject(q),(Be==null?void 0:Be.projectId)===q&&a("/"),ve.getState().setCommandError(null)}catch(J){ve.getState().setCommandError(J instanceof Error?J.message:String(J))}},[a,Be,l]),nt=_.useCallback(async(q,J)=>{try{await l.command({type:"project.setStar",projectId:q,starred:J}),ve.getState().setCommandError(null)}catch(ye){ve.getState().setCommandError(ye instanceof Error?ye.message:String(ye))}},[l]),yt=_.useCallback(async q=>{ve.getState().setOptimisticSidebarProjectOrder(q);try{await l.command({type:"sidebar.reorderProjectGroups",projectIds:q}),ve.getState().setCommandError(null)}catch(J){ve.getState().setOptimisticSidebarProjectOrder(null),ve.getState().setCommandError(J instanceof Error?J.message:String(J))}},[l]),rn=_.useCallback(async(q,J)=>{try{await l.command({type:"stack.create",title:q,projectIds:J}),ve.getState().setCommandError(null)}catch(ye){ve.getState().setCommandError(ye instanceof Error?ye.message:String(ye))}},[l]),$n=_.useCallback(async(q,J)=>{try{await l.command({type:"stack.rename",stackId:q,title:J}),ve.getState().setCommandError(null)}catch(ye){ve.getState().setCommandError(ye instanceof Error?ye.message:String(ye))}},[l]),mn=_.useCallback(async q=>{try{await l.command({type:"stack.remove",stackId:q}),ve.getState().setCommandError(null)}catch(J){ve.getState().setCommandError(J instanceof Error?J.message:String(J))}},[l]),zn=_.useCallback(async(q,J)=>{try{await l.command({type:"stack.addProject",stackId:q,projectId:J}),ve.getState().setCommandError(null)}catch(ye){ve.getState().setCommandError(ye instanceof Error?ye.message:String(ye))}},[l]),si=_.useCallback(async(q,J)=>{try{await l.command({type:"stack.removeProject",stackId:q,projectId:J}),ve.getState().setCommandError(null)}catch(ye){ve.getState().setCommandError(ye instanceof Error?ye.message:String(ye))}},[l]),Rs=_.useCallback(async(q,J,ye)=>{try{const Je=Ws.getState(),Se=e?Je.getComposerState(e):Je.getComposerState($y),$=await l.command({type:"chat.create",projectId:q,stackId:J,stackBindings:ye});Je.initializeComposerForChat($.chatId,{sourceState:Se});const Ee=ve.getState();Ee.setSelectedProjectId(q),Ee.setPendingChatId($.chatId),a(`/chat/${$.chatId}`),Ee.setSidebarOpen(!1),Ee.setCommandError(null)}catch(Je){ve.getState().setCommandError(Je instanceof Error?Je.message:String(Je))}},[e,a,l]),Rt=_.useCallback(async q=>{try{const J=await l.command({type:"stack.listWorktrees",projectId:q});return ve.getState().setCommandError(null),J.worktrees}catch(J){return ve.getState().setCommandError(J instanceof Error?J.message:String(J)),[]}},[l]),Mn=_.useCallback(async()=>await l.command({type:"sessions.importClaude"}),[l]),Pn=_.useCallback(async q=>{const J=zs.getState();ve.getState().setCommandError(null),await l.command({type:"system.openExternal",...q,editor:q.action==="open_editor"?q.editor??{preset:J.editorPreset,commandTemplate:J.editorCommandTemplate}:void 0})},[l]),Jn=_.useCallback(async(q,J)=>{var Je,Se;const ye=(Be==null?void 0:Be.localPath)??((Je=m==null?void 0:m.projects[0])==null?void 0:Je.localPath)??((Se=se[0])==null?void 0:Se.localPath);if(ye)try{await Pn({action:q,localPath:ye,editor:J})}catch($){ve.getState().setCommandError($ instanceof Error?$.message:String($))}},[m==null?void 0:m.projects,Pn,Be==null?void 0:Be.localPath,se]),$a=_.useCallback(async q=>{try{await o.writeText(q),ve.getState().setCommandError(null)}catch(J){ve.getState().setCommandError(J instanceof Error?J.message:String(J))}},[o]),za=_.useCallback(async(q,J="open_editor",ye)=>{try{await Pn({action:J,localPath:q.path,line:q.line,column:q.column,editor:ye})}catch(Je){ve.getState().setCommandError(Je instanceof Error?Je.message:String(Je))}},[Pn]),No=_.useCallback(async(q,J)=>{try{await Pn({action:q,localPath:J})}catch(ye){ve.getState().setCommandError(ye instanceof Error?ye.message:String(ye))}},[Pn]),xl=_.useCallback(()=>{var J;const q=x3e({selectedProjectId:B,sidebarProjectId:(J=se[0])==null?void 0:J.groupKey,fallbackLocalProjectPath:bt});if(q){ft(q);return}a("/")},[bt,a,B,se,ft]),Fa=_.useCallback(()=>ve.getState().setSidebarOpen(!0),[]),Zs=_.useCallback(()=>ve.getState().setSidebarOpen(!1),[]),bi=_.useCallback(()=>ve.getState().setSidebarCollapsed(!0),[]),_l=_.useCallback(()=>ve.getState().setSidebarCollapsed(!1),[]),vc=_.useCallback(()=>ve.getState().setAddProjectModalOpen(!0),[]),Sl=_.useCallback(()=>ve.getState().setAddProjectModalOpen(!1),[]),To=_.useCallback(async(q,J,ye)=>{if(e)try{await l.command({type:"chat.respondTool",chatId:e,toolUseId:q,result:{questions:J,answers:ye}})}catch(Je){ve.getState().setCommandError(Je instanceof Error?Je.message:String(Je))}},[e,l]),Ba=_.useCallback(async(q,J,ye,Je)=>{if(e){J&&Ws.getState().setChatComposerPlanMode(e,!1);try{await l.command({type:"chat.respondTool",chatId:e,toolUseId:q,result:{confirmed:J,...ye?{clearContext:!0}:{},...Je?{message:Je}:{}}})}catch(Se){ve.getState().setCommandError(Se instanceof Error?Se.message:String(Se))}}},[e,l]),bc=_.useCallback(async(q,J,ye,Je)=>{if(e)try{await l.command({type:"chat.respondSubagentTool",chatId:e,runId:q,toolUseId:J,result:{questions:ye,answers:Je}})}catch(Se){ve.getState().setCommandError(Se instanceof Error?Se.message:String(Se))}},[e,l]),eo=_.useCallback(async(q,J,ye)=>{if(e)try{await l.command({type:"chat.respondSubagentTool",chatId:e,runId:q,toolUseId:J,result:ye})}catch(Je){ve.getState().setCommandError(Je instanceof Error?Je.message:String(Je))}},[e,l]),qu=_.useCallback(async(q,J)=>{if(e)try{await l.command({type:"chat.toolRequestAnswer",chatId:e,toolRequestId:q,decision:J})}catch(ye){ve.getState().setCommandError(ye instanceof Error?ye.message:String(ye))}},[e,l]),Ua=u3e(b,g==null?void 0:g.status);return{socket:l,activeChatId:e,activeProjectId:kt,sidebarData:Fe,localProjects:m,updateSnapshot:g,chatSnapshot:w,chatDiffSnapshot:fn,keybindings:j,appSettings:I,pushConfig:z,llmProvider:F,connectionStatus:O,sidebarReady:P,uiRestartActive:Ua.active,uiRestartLabel:Ua.label,localProjectsReady:W,commandError:G,startingLocalPath:D,sidebarOpen:K,sidebarCollapsed:V,messages:Ut,queuedMessages:Ue,previousPrompt:Wt,latestToolIds:Jt,runtime:Be,runtimeStatus:lt,isHistoryLoading:E,hasOlderHistory:N,availableProviders:Dt,isProcessing:$t,canCancel:zt,isDraining:Zt,navbarLocalPath:ee,editorLabel:we,hasSelectedProject:Ae,addProjectModalOpen:Y,openSidebar:Fa,closeSidebar:Zs,collapseSidebar:bi,expandSidebar:_l,openAddProjectModal:vc,closeAddProjectModal:Sl,loadOlderHistory:He,handleCreateChat:wt,handleForkChat:Ye,handleOpenLocalProject:Vt,handleCreateProject:Xe,handleCheckForUpdates:Tt,handleInstallUpdate:ln,handleForceReload:Or,handleReadAppSettings:ht,handleWriteAppSettings:on,handleTestMcpServer:pn,handleStartMcpOAuth:nn,handleCompleteMcpOAuth:Nt,handleSetChatPolicyOverride:Dn,handleWriteCloudflareTunnel:Bt,handleWriteClaudeAuth:xn,handleTestOAuthToken:St,handleReadLlmProvider:Cn,handleWriteLlmProvider:_n,handleValidateLlmProvider:dn,handleSignOut:br,handleSend:nr,handleSteerQueuedMessage:Fr,handleRemoveQueuedMessage:Bn,handleCancel:At,handleStopDraining:ke,handleRenameChat:Ct,handleArchiveChat:Ir,handleOpenArchivedChat:Tr,handleDeleteChat:Vn,handleHideProject:de,handleToggleProjectStar:nt,handleReorderProjectGroups:yt,stacks:Fe.stacks,handleCreateStack:rn,handleRenameStack:$n,handleRemoveStack:mn,handleAddProjectToStack:zn,handleRemoveProjectFromStack:si,handleCreateStackChat:Rs,handleListStackWorktrees:Rt,importClaudeSessions:Mn,handleCopyPath:$a,handleOpenExternal:Jn,handleOpenExternalPath:No,handleOpenLocalLink:za,handleCompose:xl,handleAskUserQuestion:To,handleExitPlanMode:Ba,handleSubagentAskUserQuestion:bc,handleSubagentExitPlanMode:eo,handleToolRequestAnswer:qu}}const Wj=en("KannaTranscript",()=>e=>({toolGroupExpanded:{},setToolGroupExpanded:(t,n)=>e(r=>r.toolGroupExpanded[t]===n?r:{toolGroupExpanded:{...r.toolGroupExpanded,[t]:n}})})),w3e=new Set([".c",".cc",".cfg",".conf",".cpp",".cs",".css",".diff",".env",".go",".graphql",".h",".hpp",".html",".ini",".java",".js",".json",".jsonc",".jsx",".kt",".log",".lua",".md",".mjs",".patch",".php",".pl",".properties",".py",".rb",".rs",".scss",".sh",".sql",".swift",".toml",".ts",".tsx",".txt",".vue",".xml",".yaml",".yml",".zsh"]),C3e=new Set([".gitignore",".npmrc",".prettierrc",".python-version",".ruby-version",".tool-versions","Dockerfile","Gemfile","Makefile","Procfile"]);function gw(e){if(!e)return;const t=Number.parseInt(e,10);return Number.isFinite(t)&&t>0?t:void 0}function SH(e){var r,i;const t=/^(?<path>\/.+?)#L(?<line>\d+)(?:C(?<column>\d+))?$/.exec(e);if((r=t==null?void 0:t.groups)!=null&&r.path)return{path:t.groups.path,line:gw(t.groups.line),column:gw(t.groups.column)};const n=/^(?<path>\/.+?):(?<line>\d+)(?::(?<column>\d+))?$/.exec(e);return(i=n==null?void 0:n.groups)!=null&&i.path?{path:n.groups.path,line:gw(n.groups.line),column:gw(n.groups.column)}:e.startsWith("/")?{path:e}:null}function k3e(e,t=Et){if(!e)return null;const n=e.trim();if(!n||/^(mailto:|ftp:|file:)/i.test(n))return null;if(/^https?:/i.test(n))try{const r=new URL(n);return r.origin!==t.getOrigin()||!r.pathname.startsWith("/")?null:SH(`${r.pathname}${r.hash}`)}catch{return null}return SH(n)}function E3e(e){const t=e.split(/[\\/]/);for(;t.length>0&&t[t.length-1]==="";)t.pop();const n=t.length>0?t[t.length-1]:e;if(C3e.has(n))return!0;const r=n.lastIndexOf(".");if(r<0)return!0;const i=n.slice(r).toLowerCase();return w3e.has(i)}const N3e=["/Users/","/home/","/private/","/tmp/","/var/","/opt/","/root/"];function T3e(e){return e?e.startsWith("file://")?!0:N3e.some(t=>e.startsWith(t)):!1}function Ete(e){let t=e;if(t.startsWith("file://"))try{t=decodeURIComponent(new URL(t).pathname)}catch{t=t.slice(7)}return`/api/local-file?path=${encodeURIComponent(t)}`}function tf(e,t){if(!e)return"";if(t){const n=t.endsWith("/")?t:`${t}/`;if(e.startsWith(n))return e.slice(n.length);if(e===t)return""}return e.replace(/^\/home\/user\/workspace\//,"")}const wH=/<thinking>([\s\S]*?)<\/thinking>/gi;function A3e(e){const t=[];let n=0;wH.lastIndex=0;let r;for(;(r=wH.exec(e))!==null;){if(r.index>n){const o=e.slice(n,r.index);o.length>0&&t.push({kind:"text",content:o})}t.push({kind:"thinking",content:r[1]??""}),n=r.index+r[0].length}const i=e.slice(n),s=i.search(/<thinking>/i);if(s!==-1){const o=i.slice(0,s);o.length>0&&t.push({kind:"text",content:o});const a=i.slice(s+10);t.push({kind:"thinking",content:a})}else i.length>0&&t.push({kind:"text",content:i});return R3e(t)}function R3e(e){const t=[];for(const n of e){const r=t[t.length-1];n.kind==="text"&&r&&r.kind==="text"?r.content+=n.content:t.push(n)}return t}const M3e=/^[ \t]*(`{3,}|~{3,})/,j3e=/https?:\/\/[^\s<>)\]'"]+/g,O3e=new RegExp("(?<![a-zA-Z0-9_])((?:PR|pull\\s+request|merge\\s+request|MR|issue|fix(?:es|ed)?|close[sd]?|resolve[sd]?|bug|task|ticket|story)\\s+)?#(\\d+)","gi"),I3e=/[.,;:!?)\]]+$/;function P3e(e){if(!e.includes("#")||!e.includes("http"))return e;const t=e.split(`
2687
+ `:"").join("");return c.jsx(Fee,{source:r,lang:n},Di())}if(Ot(e)){const n=e.getListType(),r=yd(e),i=Di();return n==="number"?c.jsx("ol",{className:"list-decimal ml-5 my-2",children:r},i):c.jsx("ul",{className:"list-disc ml-5 my-2",children:r},i)}if(Nn(e)){const n=e.getChecked(),r=yd(e),i=Di();return n!==void 0?c.jsxs("li",{className:"my-0.5 list-none flex items-start gap-1.5",children:[c.jsx("input",{type:"checkbox",readOnly:!0,checked:n,className:"mt-[3px] shrink-0"}),c.jsx("span",{children:r})]},i):c.jsx("li",{className:"my-0.5",children:r},i)}if(ho(e)||$d(e)){const n=e.getURL();return c.jsx("a",{href:n,className:"transition-all underline decoration-2 text-logo decoration-logo/50 hover:text-logo/70 dark:text-logo dark:decoration-logo/70 dark:hover:text-logo/60 dark:hover:decoration-logo/40",target:"_blank",rel:"noopener noreferrer",children:yd(e)},Di())}if(_r(e)){const n=e.getChildren(),r=n[0],i=r!==void 0&&vr(r)&&r.getChildren().every(a=>_t(a)&&(a.getHeaderStyles()&In.ROW)!==0),s=i?r:void 0,o=i?n.slice(1):n;return c.jsx("div",{className:"border border-border rounded-xl overflow-x-auto",children:c.jsxs("table",{className:"table-auto min-w-full divide-y divide-border bg-background",children:[s!==void 0&&c.jsx("thead",{children:c.jsx("tr",{children:s.getChildren().map(a=>c.jsx("th",{className:"text-left text-xs uppercase text-muted-foreground tracking-wider p-2 pl-0 first:pl-3 bg-muted dark:bg-card [&_*]:font-semibold",children:yd(a)},Di()))})}),c.jsx("tbody",{className:"divide-y divide-border",children:o.map(a=>vr(a)?c.jsx("tr",{children:a.getChildren().map(l=>_t(l)?c.jsx("td",{className:"text-left p-2 pl-0 first:pl-3 [&_*]:font-normal",children:yd(l)},Di()):null)},Di()):null)})]})},Di())}if(gi(e))return c.jsx("br",{},Di());if(Ie(e))return OPe(e);if(ov(e))return c.jsx("code",{className:"break-all px-1 bg-border/60 py-0.5 rounded text-sm",children:e.getTextContent()},Di());const t=e.getTextContent();return t?c.jsx("span",{children:t},Di()):null}function OPe(e){const t=e.getFormat(),n=e.getTextContent(),r=(t&Ex)!==0,i=(t&Nx)!==0,s=(t&Tx)!==0,o=(t&fL)!==0;let a=n;return o?c.jsx("code",{className:"break-all px-1 bg-border/60 py-0.5 rounded text-sm",children:n},Di()):(s&&(a=c.jsx("del",{className:"line-through",children:a},Di())),i&&(a=c.jsx("em",{className:"italic",children:a},Di())),r&&(a=c.jsx("strong",{className:"font-semibold",children:a},Di())),!r&&!i&&!s?n:a)}function yd(e){return e.getChildren().map(Uee)}function IPe(){Bee=0;const t=Fn().getChildren();return c.jsx(c.Fragment,{children:t.map(Uee)})}function Ou(e,t=Dee){const n=JJ(lD({namespace:"kanna-md-renderer",nodes:jPe,editable:!1}));return n.update(()=>{Eee(e,t,void 0,!0)},{discrete:!0}),n.getEditorState().read(()=>IPe())}const lC=new Map;function PPe(e){return`${e.id}|${e.contentUrl}|${e.size??0}`}function LPe(e,t){return t.type==="setLoadState"?{...e,loadState:t.payload}:{lastKey:t.newKey,loadState:lC.get(t.newKey)??{status:"loading"}}}function K_(e){const t=PPe(e),n=lC.get(t),[{loadState:r,lastKey:i},s]=_.useReducer(LPe,{loadState:n??{status:"loading"},lastKey:t}),o=_.useRef(t);return o.current=t,i!==t&&s({type:"resetForKey",newKey:t}),_.useEffect(()=>{if(n&&n.status!=="loading")return;let a=!1;const l=t;return uL(e.contentUrl,sQ).then(u=>{if(a||o.current!==l)return;const f={status:"ready",content:u.content,truncated:u.truncated};lC.set(l,f),s({payload:f,type:"setLoadState"})}).catch(u=>{if(a||o.current!==l)return;const p={status:"error",message:u instanceof Error?u.message:"Unable to load preview."};lC.set(l,p),s({payload:p,type:"setLoadState"})}),()=>{a=!0}},[n,t,e.contentUrl]),r}function DPe({source:e}){const t=K_(e);return t.status==="loading"?c.jsxs("div",{className:"p-4 text-sm text-muted-foreground",children:[c.jsx("div",{className:"prose hidden"})," Loading…"]}):t.status==="error"?c.jsx("div",{className:"p-4 text-sm text-destructive",children:t.message}):c.jsxs("div",{className:"space-y-2 p-3",children:[t.truncated?c.jsx("div",{className:"rounded-xl border border-border bg-background px-3 py-2 text-xs text-muted-foreground",children:"Preview truncated to 1024 KB."}):null,c.jsx("div",{className:"prose prose-sm prose-invert max-w-none rounded-xl border border-border bg-background p-4",children:Ou(t.content)})]})}const Lj=en("TableBody",e=>t=>({state:e.initialState,setState:n=>t({state:n})})),cC=new Map;function Hee(e){return`${e.id}|${e.contentUrl}|${e.size??0}|${e.mimeType}`}function $Pe({source:e}){const t=Hee(e),n=cC.get(t),r=Lj.useScopedStore(f=>f.state),i=Lj.useScopedStore(f=>f.setState),s=_.useRef(t);if(s.current=t,_.useEffect(()=>{if(n&&n.status!=="loading")return;const f=e.mimeType==="text/tab-separated-values"?" ":",";let p=!1;const m=t;return uL(e.contentUrl,sQ).then(g=>{if(p||s.current!==m)return;const b={status:"ready",table:bAe(g.content,f),truncated:g.truncated};cC.set(m,b),i(b)}).catch(g=>{if(p||s.current!==m)return;const b={status:"error",message:g instanceof Error?g.message:"Unable to load preview."};cC.set(m,b),i(b)}),()=>{p=!0}},[n,t,e.contentUrl,e.mimeType,i]),r.status==="loading")return c.jsxs("div",{className:"p-4 text-sm text-muted-foreground",children:[c.jsx("table",{className:"sr-only"})," Loading…"]});if(r.status==="error")return c.jsxs("div",{className:"p-4 text-sm text-destructive",children:[c.jsx("table",{className:"sr-only"})," ",r.message]});const{table:o}=r,[a,...l]=o.rows,u=[r.truncated?"Preview truncated to 1024 KB.":null,o.truncatedRows?`Showing first ${o.rows.length} of ${o.rowCount} rows.`:null,o.truncatedColumns?`Showing first ${NM} of ${o.columnCount} columns.`:null].filter(Boolean);return c.jsxs("div",{className:"space-y-2 p-3",children:[u.length?c.jsx("div",{className:"rounded-xl border border-border bg-background px-3 py-2 text-xs text-muted-foreground",children:u.join(" ")}):null,c.jsx("div",{className:"overflow-x-auto rounded-xl border border-border bg-background",children:c.jsxs("table",{className:"min-w-full border-collapse text-xs",children:[a?c.jsx("thead",{className:"sticky top-0 bg-muted",children:c.jsx("tr",{children:a.map((f,p)=>c.jsx("th",{className:"border-b border-border px-3 py-2 text-left font-medium",children:f||" "},p))})}):null,c.jsx("tbody",{children:l.map((f,p)=>c.jsx("tr",{className:"odd:bg-background even:bg-muted/20",children:f.map((m,g)=>c.jsx("td",{className:"max-w-[320px] border-b border-border px-3 py-2 align-top",children:c.jsx("div",{className:"whitespace-pre-wrap break-words",children:m||" "})},g))},p))})]})})]})}function zPe({source:e}){const t=Hee(e),n=cC.get(t);return c.jsx(Lj.Provider,{init:{initialState:n??{status:"loading"}},children:c.jsx($Pe,{source:e})})}function FPe({source:e}){const t=K_(e);return t.status==="loading"?c.jsxs("div",{className:"p-4 text-sm text-muted-foreground",children:[c.jsx("pre",{className:"sr-only"})," Loading…"]}):t.status==="error"?c.jsxs("div",{className:"p-4 text-sm text-destructive",children:[c.jsx("pre",{className:"sr-only"})," ",t.message]}):c.jsxs("div",{className:"space-y-2 p-3",children:[t.truncated?c.jsx(BPe,{children:"Preview truncated to 1024 KB."}):null,c.jsx("pre",{className:"whitespace-pre-wrap break-words rounded-xl border border-border bg-background p-3 text-xs",children:t.content})]})}function BPe({children:e}){return c.jsx("div",{className:"rounded-xl border border-border bg-background px-3 py-2 text-xs text-muted-foreground",children:e})}function UPe({source:e}){const t=K_(e),n=_.useMemo(()=>t.status==="ready"?vAe(t.content):"",[t]);return t.status==="loading"?c.jsxs("div",{className:"p-4 text-sm text-muted-foreground",children:[c.jsx("pre",{className:"sr-only"})," Loading…"]}):t.status==="error"?c.jsxs("div",{className:"p-4 text-sm text-destructive",children:[c.jsx("pre",{className:"sr-only"})," ",t.message]}):c.jsxs("div",{className:"space-y-2 p-3",children:[t.truncated?c.jsx("div",{className:"rounded-xl border border-border bg-background px-3 py-2 text-xs text-muted-foreground",children:"Preview truncated to 1024 KB."}):null,c.jsx("pre",{className:"whitespace-pre-wrap break-words rounded-xl border border-border bg-background p-3 text-xs",children:n})]})}function HPe({source:e}){return c.jsxs("div",{className:"flex h-full flex-col items-stretch justify-center gap-3 p-4",children:[c.jsx("div",{className:"text-sm font-medium text-foreground",children:e.displayName}),c.jsx("audio",{src:e.contentUrl,controls:!0,preload:"metadata",className:"w-full"})]})}function WPe({source:e}){return c.jsx("div",{className:"flex h-full items-center justify-center bg-black/40 p-2",children:c.jsx("video",{src:e.contentUrl,controls:!0,playsInline:!0,preload:"metadata",className:"max-h-[60dvh] w-full rounded-xl"})})}const Dj=en("CodeBody",()=>e=>({highlighted:null,setHighlighted:t=>e({highlighted:t})})),VPe=200*1024;function KPe(e){const t=e.lastIndexOf(".");if(t<0)return"text";const n=e.slice(t+1).toLowerCase();return{ts:"typescript",tsx:"tsx",js:"javascript",jsx:"jsx",py:"python",go:"go",rs:"rust",java:"java",rb:"ruby",sh:"bash",zsh:"bash",yml:"yaml",yaml:"yaml",css:"css",scss:"scss",html:"html",json:"json",md:"markdown",sql:"sql",cpp:"cpp",c:"c",h:"c",swift:"swift",kt:"kotlin",php:"php",toml:"toml"}[n]??"text"}function GPe({source:e}){const t=K_(e),n=t.status==="ready"&&t.content.length<=VPe,r=n?`${e.id}|${e.contentUrl}|${e.size??0}|${t.content.length}`:null,i=Dj.useScopedStore(o=>o.highlighted),s=Dj.useScopedStore(o=>o.setHighlighted);return _.useEffect(()=>{if(!n||t.status!=="ready"||r===null)return;let o=!1;const a=r;return Z(()=>Promise.resolve().then(()=>XX),void 0).then(async l=>{if(o)return;const u=await l.codeToHtml(t.content,{lang:KPe(e.fileName),theme:"github-dark"});o||s({key:a,html:u})}).catch(()=>{vo.warn("[file-preview] Shiki unavailable; falling back to plain text")}),()=>{o=!0}},[n,r,t,e.fileName,s]),t.status==="loading"?c.jsxs("div",{className:"p-4 text-sm text-muted-foreground",children:[c.jsx("pre",{className:"sr-only"})," Loading…"]}):t.status==="error"?c.jsxs("div",{className:"p-4 text-sm text-destructive",children:[c.jsx("pre",{className:"sr-only"})," ",t.message]}):i&&i.key===r?c.jsx("div",{className:"overflow-x-auto p-3 text-xs",dangerouslySetInnerHTML:{__html:i.html}}):c.jsxs("div",{className:"space-y-2 p-3",children:[t.truncated?c.jsx("div",{className:"rounded-xl border border-border bg-background px-3 py-2 text-xs text-muted-foreground",children:"Preview truncated to 1024 KB."}):null,c.jsx("pre",{className:"whitespace-pre-wrap break-words rounded-xl border border-border bg-background p-3 text-xs",children:t.content})]})}function qPe({source:e}){return c.jsx(Dj.Provider,{init:void 0,children:c.jsx(GPe,{source:e})})}const fh=en("MermaidZoomModal",()=>e=>({scale:1,offset:{x:0,y:0},drag:null,setScale:t=>e({scale:t}),setOffset:t=>e({offset:t}),setDrag:t=>e({drag:t})}));function YPe({svg:e,onClose:t,ports:n}){const r=(n==null?void 0:n.dom)??Et,i=fh.useScopedStore(b=>b.scale),s=fh.useScopedStore(b=>b.offset),o=fh.useScopedStore(b=>b.drag),a=fh.useScopedStore(b=>b.setScale),l=fh.useScopedStore(b=>b.setOffset),u=fh.useScopedStore(b=>b.setDrag);_.useEffect(()=>{const b=y=>{y.key==="Escape"&&t()};return r.addWindowListener("keydown",b)},[t,r]);const f=b=>Math.min(8,Math.max(.25,b)),p=b=>{u({x:b.clientX-s.x,y:b.clientY-s.y})},m=b=>{o&&l({x:b.clientX-o.x,y:b.clientY-o.y})},g=()=>u(null);return Ks.createPortal(c.jsxs("div",{className:"fixed inset-0 z-[100] flex flex-col bg-background/95",role:"dialog","aria-modal":"true","aria-label":"Diagram zoom view",children:[c.jsxs("div",{className:"flex justify-end gap-1 p-2",children:[c.jsx(je,{variant:"ghost",size:"icon","aria-label":"Zoom out",className:"h-9 w-9",onClick:()=>a(f(i-.25)),children:c.jsx(R9,{className:"h-4 w-4"})}),c.jsx(je,{variant:"ghost",size:"icon","aria-label":"Zoom in",className:"h-9 w-9",onClick:()=>a(f(i+.25)),children:c.jsx(_o,{className:"h-4 w-4"})}),c.jsx(je,{variant:"ghost",size:"icon","aria-label":"Reset view",className:"h-9 w-9",onClick:()=>{a(1),l({x:0,y:0})},children:c.jsx(lde,{className:"h-4 w-4"})}),c.jsx(je,{variant:"ghost",size:"icon","aria-label":"Close",className:"h-9 w-9",onClick:t,children:c.jsx(Zo,{className:"h-4 w-4"})})]}),c.jsx("div",{className:"flex-1 overflow-hidden touch-none cursor-grab active:cursor-grabbing",onPointerDown:p,onPointerMove:m,onPointerUp:g,onPointerLeave:g,children:c.jsx("div",{"data-mermaid-stage":!0,className:"w-full h-full flex items-center justify-center",style:{transform:`translate(${s.x}px, ${s.y}px) scale(${i})`},dangerouslySetInnerHTML:{__html:e}})})]}),r.getBodyElement())}function XPe({svg:e,onClose:t,ports:n}){return c.jsx(fh.Provider,{init:void 0,children:c.jsx(YPe,{svg:e,onClose:t,ports:n})})}const qc=en("MermaidDiagram",()=>e=>({renderState:{status:"loading"},showSource:!1,zoomOpen:!1,copied:!1,setRenderState:t=>e({renderState:t}),setShowSource:t=>e({showSource:t}),setZoomOpen:t=>e({zoomOpen:t}),setCopied:t=>e({copied:t})}));let fA=null;function QPe(){return fA||(fA=Z(()=>import("./mermaid.core--eJrxZFH.js").then(e=>e.bm),[]).then(e=>e.default)),fA}function JPe({source:e,ports:t}){const{resolvedTheme:n}=vE(),r=n==="dark"?"dark":"default",i=qc.useScopedStore(w=>w.renderState),s=i.status==="error"?i.message:void 0,o=qc.useScopedStore(w=>w.showSource),a=qc.useScopedStore(w=>w.zoomOpen),l=qc.useScopedStore(w=>w.copied),u=qc.useScopedStore(w=>w.setRenderState),f=qc.useScopedStore(w=>w.setShowSource),p=qc.useScopedStore(w=>w.setZoomOpen),m=qc.useScopedStore(w=>w.setCopied),b=`mermaid-${_.useId().replace(/[^a-zA-Z0-9_-]/g,"")}`,y=_.useCallback(()=>p(!1),[p]),x=async()=>{await((t==null?void 0:t.clipboard)??yl).writeText(e),m(!0),((t==null?void 0:t.timer)??wr).setTimeout(()=>m(!1),2e3)};return _.useEffect(()=>{let w=!1;return QPe().then(async k=>{k.initialize({startOnLoad:!1,securityLevel:"strict",theme:r});const{svg:C}=await k.render(b,e);w||u({status:"ready",svg:C})}).catch(k=>{const C=iAe(k).message;w||u({status:"error",message:C})}),()=>{w=!0}},[e,r,b,u]),i.status==="error"?c.jsxs("div",{className:"my-3",children:[c.jsxs("div",{className:"flex items-start gap-1.5 text-xs text-destructive mb-1",children:[c.jsx(ep,{className:"size-3.5 shrink-0 mt-px"}),c.jsxs("span",{children:["Couldn't render this Mermaid diagram",s?c.jsxs("span",{className:"text-muted-foreground",children:[" — ",s]}):null]})]}),c.jsx(W2,{source:e})]}):i.status==="loading"?c.jsx("div",{className:"relative group/mermaid",children:c.jsx(W2,{source:e})}):o?c.jsxs("div",{className:"relative group/mermaid",children:[c.jsx(W2,{source:e}),c.jsx(KU,{showSource:o,onToggleSource:()=>f(!o),onCopy:x,copied:l,onZoom:void 0})]}):c.jsxs("div",{className:"relative group/mermaid my-3",children:[c.jsx("div",{className:"flex justify-center overflow-x-auto",dangerouslySetInnerHTML:{__html:i.svg}}),c.jsx(KU,{showSource:o,onToggleSource:()=>f(!o),onCopy:x,copied:l,onZoom:()=>p(!0)}),a&&c.jsx(XPe,{svg:i.svg,onClose:y})]})}function Wee({source:e,ports:t}){return c.jsx(qc.Provider,{init:void 0,children:c.jsx(JPe,{source:e,ports:t})})}function KU({showSource:e,onToggleSource:t,onCopy:n,copied:r,onZoom:i}){return c.jsxs("div",{className:"absolute top-1.5 right-1.5 flex gap-1 opacity-100 md:opacity-0 md:group-hover/mermaid:opacity-100 transition-opacity [@media(hover:none)]:!opacity-100",children:[i&&!e&&c.jsx(je,{variant:"ghost",size:"icon","aria-label":"Zoom diagram",className:"h-8 w-8 rounded-md text-muted-foreground hover:text-foreground",onClick:i,children:c.jsx(Oue,{className:"h-4 w-4"})}),c.jsx(je,{variant:"ghost",size:"icon","aria-label":e?"View rendered diagram":"View diagram source",className:"h-8 w-8 rounded-md text-muted-foreground hover:text-foreground",onClick:t,children:c.jsx(fR,{className:"h-4 w-4"})}),c.jsx(je,{variant:"ghost",size:"icon","aria-label":r?"Copied":"Copy diagram source",className:pe("h-8 w-8 rounded-md text-muted-foreground",!r&&"hover:text-foreground",r&&"hover:!bg-transparent"),onClick:n,children:r?c.jsx(qs,{className:"h-4 w-4 text-success"}):c.jsx(cl,{className:"h-4 w-4"})})]})}function ZPe({source:e}){const t=K_(e);return t.status==="loading"?c.jsxs("div",{className:"p-4 text-sm text-muted-foreground",children:[c.jsx("div",{className:"hidden"})," Loading…"]}):t.status==="error"?c.jsx("div",{className:"p-4 text-sm text-destructive",children:t.message}):c.jsx("div",{className:"p-4",children:c.jsx(Wee,{source:t.content})})}async function eLe(e,t={}){const n=t.dom??Et,r=t.clipboard??yl,i=nLe(e.contentUrl,n);if(n.isWebShareSupported())try{return await n.webShare({title:e.displayName,url:i}),"shared"}catch(s){if(s instanceof DOMException&&s.name==="AbortError")return"shared"}try{return await r.writeText(i),"copied"}catch{return"failed"}}function tLe(e,t={}){(t.dom??Et).triggerDownload(e.contentUrl,e.fileName)}function nLe(e,t){return new URL(e,t.getBaseURI()||t.getHref()).toString()}const $j=en("SheetBody",()=>e=>({dy:0,setDy:t=>e({dy:t})}));function Fp({source:e,open:t,onOpenChange:n}){const r=_.useCallback(()=>n(!1),[n]);return c.jsx(Yo,{open:t&&e!==null,onOpenChange:n,children:c.jsx(So,{size:"lg",className:"inset-0 h-[100dvh] max-h-none w-full max-w-none translate-x-0 translate-y-0 rounded-none p-0 md:inset-auto md:left-1/2 md:top-1/2 md:h-auto md:max-h-[90dvh] md:w-auto md:max-w-3xl md:-translate-x-1/2 md:-translate-y-1/2 md:rounded-2xl",children:e?c.jsx(aLe,{source:e,onClose:r}):null})})}const rLe=120,iLe=.5;function sLe({startY:e,lastY:t,lastT:n,endY:r,now:i}){const s=r-e,o=Math.max(1,i-n),a=(r-t)/o;return s>rLe||a>iLe}function oLe({source:e,onClose:t}){const n=cLe(e),r=$j.useScopedStore(p=>p.dy),i=$j.useScopedStore(p=>p.setDy),s=_.useRef(null),o=_.useCallback(p=>{s.current={y:p.clientY,lastY:p.clientY,lastT:Date.now()};try{p.currentTarget.setPointerCapture(p.pointerId)}catch{}},[]),a=_.useCallback(p=>{if(!s.current)return;const m=p.clientY-s.current.y;m<0||(s.current.lastY=p.clientY,s.current.lastT=Date.now(),i(m))},[i]),l=_.useCallback(p=>{const m=s.current;s.current=null;try{p.currentTarget.releasePointerCapture(p.pointerId)}catch{}m&&(sLe({startY:m.y,lastY:m.lastY,lastT:m.lastT,endY:p.clientY,now:Date.now()})?t():i(0))},[t,i]),u=_.useCallback(()=>{eLe(e)},[e]),f=_.useCallback(()=>tLe(e),[e]);return c.jsxs("div",{className:"flex min-h-0 flex-1 flex-col",style:r>0?{transform:`translateY(${r}px)`,transition:"none"}:void 0,children:[c.jsxs("div",{onPointerDown:o,onPointerMove:a,onPointerUp:l,onPointerCancel:l,className:"border-b border-border px-4 py-3 touch-none",children:[c.jsx("div",{className:"mx-auto mb-2 h-1 w-12 rounded-full bg-muted md:hidden",role:"button","aria-label":"Drag down to close"}),c.jsx(Xo,{className:"truncate text-base",children:e.displayName}),c.jsx(yv,{className:"truncate text-xs",children:n})]}),c.jsx("div",{className:"min-h-0 flex-1 overflow-y-auto overscroll-contain touch-pan-y [-webkit-overflow-scrolling:touch]",role:"region","aria-label":"File preview",children:_.createElement(lLe(e),{source:e})},e.id),c.jsxs("div",{className:"flex items-center justify-end gap-2 border-t border-border px-4 py-3",children:[c.jsxs(je,{type:"button",variant:"outline",onClick:u,children:[c.jsx(wde,{className:"mr-2 h-4 w-4"}),"Share"]}),e.origin==="offer_download"?c.jsxs(je,{type:"button",onClick:f,children:[c.jsx(fI,{className:"mr-2 h-4 w-4"}),"Download"]}):null]})]})}function aLe({source:e,onClose:t}){return c.jsx($j.Provider,{init:void 0,children:c.jsx(oLe,{source:e,onClose:t})})}function lLe(e){const t={id:e.id,displayName:e.displayName,mimeType:e.mimeType,size:e.size??0,contentUrl:e.contentUrl,relativePath:e.relativePath??""},n=Op(t);return n==="image"?OAe:n==="pdf"?O6:n==="audio"?HPe:n==="video"?WPe:n==="table"?zPe:n==="markdown"?DPe:n==="json"?UPe:n==="mermaid"?ZPe:n==="code"?qPe:Mv(t).kind==="external"?O6:FPe}function cLe(e){const t={id:e.id,displayName:e.displayName,mimeType:e.mimeType,size:e.size??0,contentUrl:e.contentUrl,relativePath:e.relativePath??""},n=Op(t),r=T_(n,e.mimeType),i=e.size?` · ${Ip(e.size)}`:"";return`${r}${i}`}function zv(e,t){return{id:e.id,contentUrl:e.contentUrl,displayName:e.displayName,fileName:e.displayName,relativePath:e.relativePath,mimeType:e.mimeType,size:e.size,origin:t}}const ic=_.forwardRef(({className:e,...t},n)=>c.jsx("textarea",{"data-gramm":"false","data-gramm_editor":"false","data-enable-grammarly":"false","data-1p-ignore":!0,autoComplete:"off",className:pe("flex w-full rounded-lg border border-border bg-background px-2.5 py-2 text-sm placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50",e),ref:n,...t}));ic.displayName="Textarea";const uLe=new Set(["changes","history"]),dLe=new Set(["public","private"]),fLe=new Set(["branches","pull_requests"]);function hLe(e){return uLe.has(e)}function pLe(e){return dLe.has(e)}function mLe(e){return fLe.has(e)}const lw={};function GU(e){return!e.isCollapsed&&!e.hasPreviewAttachment&&e.patch===void 0&&e.patchError===void 0&&!e.isPatchLoading}function gLe(e,t){return!e||!t.mimeType||typeof t.size!="number"||t.changeType==="deleted"||!t.mimeType.startsWith("image/")&&t.mimeType!=="application/pdf"?null:{id:`diff:${t.path}`,kind:t.mimeType.startsWith("image/")?"image":"file",displayName:t.path.split("/").pop()??t.path,absolutePath:t.path,relativePath:t.path,contentUrl:`/api/projects/${e}/files/${encodeURIComponent(t.path)}/content`,mimeType:t.mimeType,size:t.size}}function Vee(e){return e.isUntracked}function vLe(e){return Vee(e)?e.path.includes("/"):!1}function hA(e){return c.jsxs(ks,{delayDuration:0,children:[c.jsx(Es,{asChild:!0,children:c.jsx("button",{type:"button","aria-label":e.label,onClick:e.onClick,className:pe("flex h-11 w-11 md:h-7 md:w-7 shrink-0 items-center justify-center rounded-md text-muted-foreground transition-colors hover:bg-accent hover:text-foreground",e.active&&"bg-accent text-foreground"),children:e.children})}),c.jsx(ms,{children:e.label})]})}function Kee({checked:e,mixed:t=!1,label:n,className:r,onClick:i}){let s;return t?s=c.jsx(R9,{className:"h-3 w-3",strokeWidth:3}):e?s=c.jsx(qs,{className:"h-3 w-3",strokeWidth:3}):s=null,c.jsx("button",{type:"button","aria-label":n??(e?"Exclude file from commit":"Include file in commit"),"aria-checked":t?"mixed":e,"aria-pressed":t?"mixed":e,onClick:o=>{o.stopPropagation(),i()},className:pe("flex size-4.5 shrink-0 items-center justify-center rounded border transition-colors",e||t?"border-foreground bg-foreground text-background":"border-border bg-background text-transparent",r),children:s})}function cD(e){const t=Date.parse(e);if(!Number.isFinite(t))return"";const n=Date.now()-t,r=6e4,i=60*r,s=24*i,o=7*s,a=30*s,l=365*s;return n<r?"just now":n<i?`${Math.round(n/r)}m ago`:n<s?`${Math.round(n/i)}hr ago`:n<o?`${Math.round(n/s)}d ago`:n<a?`${Math.round(n/o)}wk ago`:n<l?`${Math.round(n/a)}mo ago`:`${Math.round(n/l)}yr ago`}function bLe(e){return e?`Last fetched ${cD(e)}`:"No local fetch recorded"}function yLe({entry:e,isPendingPush:t=!1,ports:n}){const r=(n==null?void 0:n.dom)??Et,i=cD(e.authoredAt),s=!!e.githubUrl;let o;return e.tags.length>0?o=c.jsxs("div",{className:"flex shrink-0 flex-wrap justify-end gap-1",children:[e.tags.map(a=>c.jsx("span",{className:"inline-flex items-center rounded-full bg-muted border border-border px-2 py-0.5 text-[11px]",children:a},a)),t?c.jsx("span",{className:"inline-flex items-center rounded-full bg-muted border border-border px-2 py-0.5 text-[11px]",children:c.jsx(Ky,{className:"size-3"})}):null]}):t?o=c.jsx("div",{className:"flex shrink-0 flex-wrap justify-end gap-1",children:c.jsx("span",{className:"inline-flex items-center rounded-full bg-muted border border-border px-2 py-0.5 text-[11px]",children:c.jsx(Ky,{className:"size-3"})})}):o=null,c.jsxs("button",{type:"button",disabled:!s,onClick:()=>{e.githubUrl&&r.openWindow(e.githubUrl,"_blank","noopener,noreferrer")},className:pe("flex w-full items-start gap-3 rounded-lg border border-border bg-background pl-3 pr-2 py-2 text-left transition-colors",s?"hover:bg-accent":"cursor-default opacity-60"),children:[c.jsxs("div",{className:"min-w-0 flex-1",children:[c.jsx("div",{className:"truncate text-sm font-medium text-foreground",children:e.summary}),e.description?c.jsx("div",{className:"mt-1 line-clamp-2 whitespace-pre-wrap text-xs text-muted-foreground",children:e.description}):null,c.jsxs("div",{className:"mt-1 flex min-w-0 items-center gap-1 text-xs text-muted-foreground",children:[e.authorName?c.jsx("span",{className:"truncate",children:e.authorName}):null,e.authorName&&i?c.jsx("span",{"aria-hidden":"true",children:"•"}):null,i?c.jsx("span",{children:i}):null]})]}),o]})}function qU(e){switch(e.kind){case"local":return 0;case"pull_request":return 1;case"remote":default:return 2}}function xLe(e){const t=new Map;for(const n of e){const r=t.get(n.name);(!r||qU(n)<qU(r))&&t.set(n.name,n)}return t}function _Le(e,t){const n=xLe([...e.local,...e.pullRequests,...e.remote]);t&&n.delete(t);const r=new Set,i=e.defaultBranchName?n.get(e.defaultBranchName):void 0;i&&r.add(i.name);const s=e.recent.map(a=>n.get(a.name)??a).filter(a=>!!a&&!r.has(a.name));for(const a of s)r.add(a.name);const o=[...n.values()].filter(a=>!r.has(a.name)).sort((a,l)=>a.displayName.localeCompare(l.displayName));return{defaultBranch:i,recent:s,other:o}}function SLe({open:e,onOpenChange:t,onGetGitHubPublishInfo:n,onCheckGitHubRepoAvailability:r,onPublish:i,ports:s}){const o=(s==null?void 0:s.timer)??wr,a=at(P=>P.publishInfo),l=at(P=>P.isLoadingPublishInfo),u=at(P=>P.publishOwner),f=at(P=>P.publishName),p=at(P=>P.publishVisibility),m=at(P=>P.publishDescription),g=at(P=>P.publishAvailability),b=at(P=>P.isCheckingPublishAvailability),y=at(P=>P.isPublishing),x=at(P=>P.setPublishInfo),w=at(P=>P.setIsLoadingPublishInfo),k=at(P=>P.setPublishOwner),C=at(P=>P.setPublishName),E=at(P=>P.setPublishVisibility),A=at(P=>P.setPublishDescription),N=at(P=>P.setPublishAvailability),M=at(P=>P.setIsCheckingPublishAvailability),j=at(P=>P.setIsPublishing);_.useEffect(()=>{if(!e)return;let P=!1;return w(!0),N(null),n().then(W=>{P||(x(W),k(W.owners[0]??W.activeAccountLogin??""),C(W.suggestedRepoName),E("private"),A(""))}).finally(()=>{P||w(!1)}),()=>{P=!0}},[n,e,N,A,x,w,C,k,E]),_.useEffect(()=>{if(!e||!(a!=null&&a.ghInstalled)||!a.authenticated)return;const P=u.trim(),W=f.trim();if(!P||!W){N(null);return}let U=!1;M(!0);const B=o.setTimeout(()=>{r({owner:P,name:W}).then(K=>{U||N(K)}).finally(()=>{U||M(!1)})},250);return()=>{U=!0,o.clearTimeout(B)}},[a==null?void 0:a.authenticated,a==null?void 0:a.ghInstalled,f,r,e,u,N,M,o]);async function I(){if(!(!u.trim()||!f.trim())){j(!0);try{const P=await i({owner:u.trim(),name:f.trim(),visibility:p,description:m});Ji(P)&&P.ok&&t(!1)}finally{j(!1)}}}const z=!!(a!=null&&a.ghInstalled&&a.authenticated&&u.trim()&&f.trim()&&(g!=null&&g.available)&&!b&&!y);let F;b?F=c.jsx("div",{className:"pointer-events-none absolute inset-y-0 right-3 flex items-center text-muted-foreground",children:c.jsx(Ln,{className:"size-4 animate-spin"})}):g?F=c.jsx("div",{className:"absolute inset-y-0 right-2 flex items-center",children:c.jsxs(ks,{delayDuration:0,children:[c.jsx(Es,{asChild:!0,children:c.jsx("button",{type:"button",tabIndex:-1,"aria-label":g.message,className:pe("flex size-6 items-center justify-center rounded-md",g.available?"text-success":"text-destructive"),children:g.available?c.jsx(qs,{className:"size-4"}):c.jsx(ep,{className:"size-4"})})}),c.jsx(ms,{children:g.message})]})}):F=null;let O;return l?O=c.jsxs("div",{className:"flex items-center gap-2 text-sm text-muted-foreground",children:[c.jsx(Ln,{className:"size-4 animate-spin"}),c.jsx("span",{children:"Checking GitHub CLI…"})]}):a&&!a.ghInstalled?O=c.jsxs("div",{className:"space-y-2 text-sm text-muted-foreground",children:[c.jsx("p",{children:"GitHub CLI is not installed."}),c.jsx("div",{className:"rounded-lg border border-border px-3 py-2 font-mono text-xs text-foreground",children:"brew install gh"}),c.jsx("p",{children:"Then run:"}),c.jsx("div",{className:"rounded-lg border border-border px-3 py-2 font-mono text-xs text-foreground",children:"gh auth login"})]}):a&&!a.authenticated?O=c.jsxs("div",{className:"space-y-2 text-sm text-muted-foreground",children:[c.jsx("p",{children:"GitHub CLI is installed but not signed in."}),c.jsx("div",{className:"rounded-lg border border-border px-3 py-2 font-mono text-xs text-foreground",children:"gh auth login"})]}):O=c.jsxs(c.Fragment,{children:[c.jsx("div",{className:"space-y-2",children:c.jsxs(xa,{value:u,onValueChange:k,children:[c.jsx(Vo,{className:"pl-[11px] [&>span]:flex [&>span]:items-center [&>span]:gap-2",children:c.jsx(tl,{placeholder:"Select owner"})}),c.jsx(Ko,{children:((a==null?void 0:a.owners)??[]).map(P=>c.jsx(hi,{value:P,children:c.jsxs("span",{className:"flex items-center gap-2",children:[P===(a==null?void 0:a.activeAccountLogin)?c.jsx(Q1,{className:"size-4 text-muted-foreground"}):c.jsx(Gle,{className:"size-4 text-muted-foreground"}),c.jsx("span",{className:"pl-[1px]",children:P})]})},P))})]})}),c.jsx("div",{className:"space-y-2",children:c.jsxs("div",{className:"relative",children:[c.jsx(hn,{value:f,onChange:P=>C(P.target.value),placeholder:"my-repo",className:"pl-9 pr-10"}),c.jsx(Xue,{className:"pointer-events-none absolute inset-y-0 left-3 my-auto size-4 text-muted-foreground"}),F]})}),c.jsx("div",{className:"space-y-2",children:c.jsxs("div",{className:"relative",children:[c.jsx(a_,{className:"pointer-events-none absolute left-3 top-3 size-4 text-muted-foreground"}),c.jsx(ic,{value:m,onChange:P=>A(P.target.value),rows:3,placeholder:"Optional description",className:"pl-9 outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background"})]})}),c.jsx("div",{className:"space-y-2",children:c.jsxs(xa,{value:p,onValueChange:P=>{pLe(P)&&E(P)},children:[c.jsx(Vo,{className:"pl-[11px] [&>span]:flex [&>span]:items-center [&>span]:gap-2",children:c.jsx(tl,{placeholder:"Select visibility"})}),c.jsxs(Ko,{children:[c.jsx(hi,{value:"private",children:c.jsxs("span",{className:"flex items-center gap-2",children:[c.jsx(Aue,{className:"size-4 text-muted-foreground"}),c.jsx("span",{className:"pl-[1px]",children:"Private"})]})}),c.jsx(hi,{value:"public",children:c.jsxs("span",{className:"flex items-center gap-2",children:[c.jsx(pue,{className:"size-4 text-muted-foreground"}),c.jsx("span",{className:"pl-[1px]",children:"Public"})]})})]})]})})]}),c.jsx(Yo,{open:e,onOpenChange:t,children:c.jsxs(So,{size:"sm",className:"max-w-[min(92vw,475px)]",children:[c.jsxs(Aa,{className:"space-y-2 px-4 pb-4 pt-4",children:[c.jsxs("div",{className:"space-y-1",children:[c.jsx(Xo,{children:"Push to GitHub"}),c.jsx(yv,{children:"Create a GitHub repository from this local project using GitHub CLI."})]}),O]}),c.jsxs(yu,{children:[c.jsx(je,{variant:"ghost",size:"sm",onClick:()=>t(!1),children:"Cancel"}),c.jsx(je,{size:"sm",disabled:!z,onClick:()=>void I(),children:y?c.jsxs(c.Fragment,{children:[c.jsx(Ln,{className:"mr-1.5 size-3.5 animate-spin"}),"Publishing…"]}):"Push to GitHub"})]})]})})}function Gee({value:e,onChange:t,placeholder:n,disabled:r,trailingAction:i}){return c.jsxs("div",{className:"relative",children:[c.jsx(sg,{className:"pointer-events-none absolute left-2 top-1/2 h-3.5 w-3.5 -translate-y-1/2 text-muted-foreground"}),c.jsx(hn,{value:e,onChange:s=>t(s.target.value),placeholder:n,className:pe("h-9 pl-7 text-sm",i?"pr-14":void 0),disabled:r}),i?c.jsx("div",{className:"absolute right-1 top-1/2 -translate-y-1/2",children:i}):null]})}function Ih({title:e,entries:t,emptyLabel:n,selectedName:r,disabled:i,stickyTitle:s=!1,onSelect:o}){return t.length===0&&!n?null:c.jsxs("div",{className:"space-y-1",children:[c.jsx("div",{className:pe("px-1 py-1 text-[11px] font-medium uppercase tracking-[0.08em] text-muted-foreground",s&&"sticky top-0 z-10 bg-background"),children:e}),t.length===0?c.jsx("div",{className:"px-1 py-1 text-xs text-muted-foreground",children:n}):t.map(a=>{const l=r===a.name;return c.jsxs("button",{type:"button",disabled:i,onClick:()=>o(a),className:pe("flex w-full items-start gap-2 rounded-lg px-2 py-2 text-left transition-colors disabled:opacity-60",l?"bg-accent text-foreground":"hover:bg-accent"),children:[a.kind==="pull_request"?c.jsx(k9,{className:"mt-0.5 h-3.5 w-3.5 shrink-0 text-muted-foreground"}):c.jsx(lu,{className:"mt-0.5 h-3.5 w-3.5 shrink-0 text-muted-foreground"}),c.jsxs("div",{className:"min-w-0 flex-1",children:[c.jsxs("div",{className:"flex w-full items-center gap-3",children:[c.jsx("div",{className:"min-w-0 flex-1 overflow-hidden whitespace-nowrap text-sm text-foreground",children:a.displayName}),a.updatedAt?c.jsx("div",{className:"ml-auto shrink-0 text-right text-[11px] text-muted-foreground",children:cD(a.updatedAt)}):null]}),a.kind==="pull_request"&&a.description||a.headLabel?c.jsx("div",{className:"truncate text-xs text-muted-foreground",children:a.kind==="pull_request"?a.description??a.headLabel??a.name:a.headLabel??void 0}):null]})]},a.id)})]})}function wLe({open:e,onOpenChange:t,branchList:n,currentBranchName:r,onPreviewMergeBranch:i,onMergeBranch:s}){const o=at(U=>U.mergeBranchQuery),a=at(U=>U.mergeBranchSelectedName),l=at(U=>U.mergePreview),u=at(U=>U.mergePreviewError),f=at(U=>U.isMergePreviewLoading),p=at(U=>U.isMergeBranching),m=at(U=>U.setMergeBranchQuery),g=at(U=>U.setMergeBranchSelectedName),b=at(U=>U.setMergePreview),y=at(U=>U.setMergePreviewError),x=at(U=>U.setIsMergePreviewLoading),w=at(U=>U.setIsMergeBranching),k=at(U=>U.resetMergeBranchModal),C=at(U=>U.resetMergePreview),E=_.useMemo(()=>n?_Le(n,r):{defaultBranch:void 0,recent:[],other:[]},[n,r]),A=o.trim().toLowerCase(),N=_.useCallback(U=>A?[U.displayName,U.name,U.description,U.prTitle,U.headLabel].some(B=>B==null?void 0:B.toLowerCase().includes(A)):!0,[A]),M=E.defaultBranch&&N(E.defaultBranch)?E.defaultBranch:void 0,j=E.recent.filter(N),I=E.other.filter(N),z=_.useMemo(()=>a?[E.defaultBranch,...E.recent,...E.other].find(U=>U!==void 0&&U.name===a)??null:null,[E.defaultBranch,E.other,E.recent,a]);_.useEffect(()=>{e||k()},[e,k]),_.useEffect(()=>{if(!e||!z){C();return}let U=!1;return b(null),y(null),x(!0),i(z).then(B=>{U||b(B)}).catch(B=>{U||y(B instanceof Error?B.message:String(B))}).finally(()=>{U||x(!1)}),()=>{U=!0}},[i,e,C,z,x,b,y]);const F=!z||!l||f||p||l.status!=="mergeable";async function O(){if(!(!z||F)){w(!0);try{const U=await s(z);U!=null&&U.ok&&t(!1)}finally{w(!1)}}}let P;l?l.status==="up_to_date"?P=c.jsx(qs,{className:"mt-1 size-3.5 shrink-0 text-success"}):l.status==="conflicts"?P=c.jsx(ep,{className:"mt-1 size-3.5 shrink-0 text-warning"}):l.status==="mergeable"?P=c.jsx(C9,{className:"mt-1 size-3.5 shrink-0 text-muted-foreground"}):P=c.jsx(ep,{className:"mt-1 size-3.5 shrink-0 text-destructive"}):P=null;let W;return z?f?W=c.jsxs("div",{className:"flex items-center gap-2 text-sm text-muted-foreground",children:[c.jsx(Ln,{className:"size-3.5 animate-spin"}),c.jsx("span",{children:"Checking merge preview…"})]}):u?W=c.jsx("div",{className:"text-sm text-destructive",children:u}):l?W=c.jsxs("div",{className:"flex items-start gap-2",children:[P,c.jsxs("div",{className:"min-w-0 space-y-1",children:[c.jsx("div",{className:"text-sm font-medium text-foreground",children:l.message}),l.detail?c.jsx("div",{className:"line-clamp-2 whitespace-pre-wrap text-xs text-muted-foreground",children:l.detail}):null]})]}):W=c.jsx("div",{className:"text-sm text-muted-foreground",children:"Preview unavailable."}):W=c.jsx("div",{className:"text-sm text-muted-foreground",children:"Select a branch to preview the merge."}),c.jsx(Yo,{open:e,onOpenChange:t,children:c.jsxs(So,{size:"sm",className:"max-w-[min(92vw,475px)]",children:[c.jsxs(Aa,{className:"flex min-h-0 flex-col gap-3 px-4 pb-4 pt-4",children:[c.jsxs("div",{className:"space-y-1",children:[c.jsxs(Xo,{children:["Merge into ",r??"current branch"]}),c.jsx(yv,{children:"Choose a branch to continue."})]}),c.jsx(Gee,{value:o,onChange:m,placeholder:"Search branches"}),c.jsxs("div",{className:"max-h-[375px] space-y-3 overflow-y-auto pr-1",children:[c.jsx(Ih,{title:"Default Branch",entries:M?[M]:[],emptyLabel:"No default branch available.",selectedName:a,onSelect:U=>g(U.name)}),c.jsx(Ih,{title:"Recent Branches",entries:j,emptyLabel:"No recent branches.",selectedName:a,onSelect:U=>g(U.name)}),c.jsx(Ih,{title:"Other Branches",entries:I,emptyLabel:"No other branches match this search.",selectedName:a,onSelect:U=>g(U.name)})]}),c.jsx("div",{className:"px-2",children:W})]}),c.jsx(yu,{children:c.jsxs("div",{className:"flex min-w-0 w-full items-center justify-end gap-2",children:[c.jsx(je,{variant:"ghost",size:"sm",onClick:()=>t(!1),children:"Cancel"}),c.jsx(je,{className:"max-w-full min-w-0",size:"sm",disabled:F,onClick:()=>void O(),children:p?c.jsxs(c.Fragment,{children:[c.jsx(Ln,{className:"mr-1.5 h-3.5 w-3.5 animate-spin"}),"Merging…"]}):c.jsx("span",{className:"block max-w-full truncate",children:"Merge"})})]})})]})})}function CLe({currentBranchName:e,onListBranches:t,onPreviewMergeBranch:n,onMergeBranch:r,onCheckoutBranch:i,onCreateBranch:s}){const o=at(G=>G.branchSwitcherOpen),a=at(G=>G.mergeModalOpen),l=at(G=>G.branchSwitcherIsLoading),u=at(G=>G.branchSwitcherIsMutating),f=at(G=>G.branchSwitcherQuery),p=at(G=>G.branchSwitcherEntryView),m=at(G=>G.branchList),g=at(G=>G.branchSwitcherError),b=at(G=>G.setBranchSwitcherOpen),y=at(G=>G.setMergeModalOpen),x=at(G=>G.setBranchSwitcherIsLoading),w=at(G=>G.setBranchSwitcherIsMutating),k=at(G=>G.setBranchSwitcherQuery),C=at(G=>G.setBranchSwitcherEntryView),E=at(G=>G.setBranchList),A=at(G=>G.setBranchSwitcherError);_.useEffect(()=>{o&&(x(!0),A(null),t().then(G=>E(G)).catch(G=>{A(G instanceof Error?G.message:String(G))}).finally(()=>{x(!1)}))},[t,o,E,A,x]);const N=f.trim().toLowerCase(),M=G=>G.filter(D=>N?[D.displayName,D.name,D.description,D.prTitle,D.headLabel].some(Q=>Q==null?void 0:Q.toLowerCase().includes(N)):!0),j=(m==null?void 0:m.currentBranchName)??e,I=new Set(((m==null?void 0:m.pullRequests)??[]).map(G=>G.headRefName??G.name)),z=M((m==null?void 0:m.recent)??[]).filter(G=>G.name!==j),F=M((m==null?void 0:m.local)??[]).filter(G=>G.name!==j),O=M((m==null?void 0:m.remote)??[]).filter(G=>G.name!==j&&!I.has(G.name)),P=M((m==null?void 0:m.pullRequests)??[]).filter(G=>G.name!==j),W=(m==null?void 0:m.pullRequests.length)??0;async function U(G){w(!0);try{await i(G),b(!1),k(""),C("branches")}finally{w(!1)}}async function B(){w(!0);try{await s(),b(!1),k(""),C("branches")}finally{w(!1)}}function K(){b(!1),y(!0)}let V;(m==null?void 0:m.pullRequestsStatus)==="error"?V=m.pullRequestsError??"Could not load pull requests.":(m==null?void 0:m.pullRequestsStatus)==="unavailable"?V="Pull requests unavailable for this repository.":V="No open pull requests.";let Y;return l?Y=c.jsxs("div",{className:"flex items-center justify-center gap-2 py-6 text-sm text-muted-foreground",children:[c.jsx(Ln,{className:"h-4 w-4 animate-spin"}),c.jsx("span",{children:"Loading branches…"})]}):g?Y=c.jsx("div",{className:"rounded-lg border border-border px-3 py-2 text-sm text-muted-foreground",children:g}):p==="pull_requests"?Y=c.jsx(Ih,{title:"Open PRs",entries:P,emptyLabel:V,disabled:u,stickyTitle:!0,onSelect:G=>{U(G)}}):Y=c.jsxs("div",{className:"space-y-3",children:[c.jsx(Ih,{title:"Recent",entries:z,emptyLabel:"No recent branches.",disabled:u,stickyTitle:!0,onSelect:G=>{U(G)}}),c.jsx(Ih,{title:"Local",entries:F,emptyLabel:"No local branches.",disabled:u,stickyTitle:!0,onSelect:G=>{U(G)}}),c.jsx(Ih,{title:"Remote",entries:O,emptyLabel:"No remote branches.",disabled:u,stickyTitle:!0,onSelect:G=>{U(G)}})]}),c.jsxs(Tf,{open:o,onOpenChange:b,children:[c.jsx(Af,{asChild:!0,children:c.jsxs("button",{type:"button",className:"flex min-w-0 max-w-full items-center gap-1 rounded-md px-1.5 py-1 text-sm transition-colors hover:bg-accent hover:text-foreground","aria-label":"Open branch switcher",children:[c.jsx(lu,{className:"h-3.5 w-3.5 shrink-0"}),c.jsx("span",{className:"truncate",children:e??"Detached HEAD"}),c.jsx(gv,{className:"h-3.5 w-3.5 shrink-0"})]})}),c.jsx($u,{align:"start",className:"w-[320px] p-2",children:c.jsxs("div",{className:"space-y-2",children:[c.jsx(Gee,{value:f,onChange:k,placeholder:p==="pull_requests"?"Search pull requests":"Search branches",disabled:l||u,trailingAction:c.jsx(je,{variant:"ghost",size:"sm",onClick:()=>void B(),disabled:l||u,className:"h-7 px-2 text-xs hover:!bg-transparent hover:!border-border/0",children:"+ New"})}),c.jsx(Hs,{value:p,onValueChange:G=>{mLe(G)&&C(G)},size:"sm",className:"w-full",optionClassName:"flex-1 justify-center",options:[{value:"branches",label:"Branches"},{value:"pull_requests",label:`Open PRs ${W}`}]}),c.jsx("div",{className:"max-h-[420px] overflow-y-auto pr-1.5 -mr-[8px]",children:Y}),j?c.jsx(je,{variant:"default",size:"sm",disabled:l||u||!!g,onClick:K,className:"h-9 w-full justify-center rounded-lg px-3 text-sm",children:c.jsxs("span",{className:"block max-w-full truncate",children:[c.jsx(cue,{className:"mr-1.5 inline h-3.5 w-3.5 shrink-0"}),"Merge branch into ",j,"..."]})}):null]})}),c.jsx(wLe,{open:a,onOpenChange:y,branchList:m,currentBranchName:j,onPreviewMergeBranch:n,onMergeBranch:r})]})}function kLe({file:e,rootRef:t,projectId:n,isCollapsed:r,isChecked:i,editorLabel:s,diffRenderMode:o,wrapLines:a,onToggleCollapsed:l,onToggleChecked:u,fileActions:f,patch:p,patchError:m,isPatchLoading:g,onLoadPatch:b,ports:y}){const x=(y==null?void 0:y.dom)??Et,w=Vee(e),k=vLe(e),C=EM.useScopedStore(K=>K.selectedAttachmentId),E=EM.useScopedStore(K=>K.setSelectedAttachmentId),A=_.useRef(null),N=_.useRef(null),{sentinelRef:M,isStuck:j}=sAe({rootRef:t,disabled:r}),I=_.useMemo(()=>gLe(n,e),[e,n]),z=I!==null,F=GU({isCollapsed:r,hasPreviewAttachment:z,patch:p,patchError:m,isPatchLoading:g});_.useEffect(()=>{if(!F)return;const K=`${e.path}\0${e.patchDigest}`;N.current!==K&&(N.current=K,b(e.path).catch(()=>{}))},[e.patchDigest,e.path,b,F]);function O(K){if(Mv(K).openInNewTab){x.openWindow(new URL(K.contentUrl,x.getOrigin()).toString(),"_blank","noopener,noreferrer");return}E(K.id)}function P(K){K.preventDefault(),K.stopPropagation();const V=K.currentTarget.getBoundingClientRect();A.current&&x.dispatchContextMenuEvent(A.current,V.left+V.width/2,V.bottom)}function W(){if(!r){l();return}if(z||p!==void 0){l();return}if(g)return;if(!(m!==void 0||GU({isCollapsed:!1,hasPreviewAttachment:z,patch:p,patchError:m,isPatchLoading:g}))){l();return}b(e.path).then(()=>{l()}).catch(()=>{})}let U;g&&r&&!I?U=c.jsx(Ln,{className:"h-3.5 w-3.5 shrink-0 animate-spin"}):r?U=c.jsx(gv,{className:"h-3.5 w-3.5 shrink-0"}):U=c.jsx(y9,{className:"h-3.5 w-3.5 shrink-0"});let B;return I?B=c.jsx("div",{className:"flex justify-center p-3",children:I.kind==="image"?c.jsx(Hk,{attachment:I,onClick:()=>O(I)}):c.jsx(qo,{attachment:I,onClick:()=>O(I)})}):g?B=c.jsxs("div",{className:"flex items-center justify-center px-3 py-8 text-sm text-muted-foreground",children:[c.jsx(Ln,{className:"mr-2 h-4 w-4 animate-spin"}),"Loading diff..."]}):m?B=c.jsx("div",{className:"px-3 py-4 text-sm text-destructive",children:m}):p!==void 0?B=c.jsx(nAe,{patch:p,options:{diffStyle:o,disableFileHeader:!0,disableBackground:!1,overflow:a?"wrap":"scroll",lineDiffType:"word",diffIndicators:"classic"}}):B=c.jsx("div",{className:"px-3 py-4 text-sm text-muted-foreground",children:"Diff unavailable."}),c.jsxs(Np,{children:[c.jsx(Tp,{asChild:!0,children:c.jsxs("div",{ref:A,className:"relative rounded-lg border border-border bg-background",children:[r?null:c.jsx("div",{ref:M,className:"pointer-events-none absolute inset-x-0 top-0 h-px","aria-hidden":"true"}),c.jsxs("div",{role:"button",tabIndex:0,onClick:W,onKeyDown:K=>{K.key!=="Enter"&&K.key!==" "||(K.preventDefault(),W())},className:pe("group/header sticky top-0 z-20 flex cursor-pointer items-center justify-between gap-3 bg-background pl-[7px] pr-2.5 py-1.5 text-[13px] text-muted-foreground transition-colors hover:bg-accent hover:text-foreground",!r&&!j&&"rounded-t-[calc(theme(borderRadius.lg)-1px)]",r&&"rounded-[calc(theme(borderRadius.lg)-1px)]",!r&&"border-b border-border/50"),children:[c.jsxs("div",{className:"flex min-w-0 items-center",children:[c.jsx(Kee,{checked:i,onClick:u}),c.jsx("div",{className:"min-w-0 truncate select-none ml-2 mr-1",children:e.path})]}),c.jsxs("div",{className:"flex shrink-0 items-center gap-2 select-none",children:[c.jsxs("span",{className:"whitespace-nowrap text-xs font-mono",children:[e.additions>0?c.jsxs("span",{className:"text-success",children:["+",e.additions]}):null,e.deletions>0?c.jsxs("span",{className:e.additions>0?"ml-2 text-destructive":"text-destructive",children:["-",e.deletions]}):null]}),c.jsx("button",{type:"button","aria-label":`Open actions for ${e.path}`,onClick:P,className:"flex h-5 w-5 shrink-0 items-center justify-center rounded-sm text-muted-foreground transition-colors hover:bg-accent hover:text-foreground",children:c.jsx(Gy,{className:"h-3.5 w-3.5 shrink-0"})}),U]})]}),r?null:c.jsx("div",{className:"kanna-diff-patch overflow-hidden rounded-b-[calc(theme(borderRadius.lg)-1px)] pb-[1px]",children:B}),c.jsx(Fp,{source:I&&C===I.id?zv(I,"user_attachment"):null,open:I!==null&&C===I.id,onOpenChange:K=>!K&&E(null)})]},e.path)}),c.jsxs(Ef,{children:[c.jsxs(Er,{onSelect:K=>{K.stopPropagation(),f.onOpenFile(e.path)},children:[c.jsx(dI,{className:"h-3.5 w-3.5"}),c.jsxs("span",{className:"text-xs font-medium",children:["Open in ",s]})]}),c.jsxs(Er,{onSelect:K=>{K.stopPropagation(),f.onOpenInFinder(e.path)},children:[c.jsx(Y1,{className:"h-3.5 w-3.5"}),c.jsx("span",{className:"text-xs font-medium",children:"Open in Finder"})]}),c.jsxs(Er,{onSelect:K=>{K.stopPropagation(),f.onDiscardFile(e.path)},className:"text-destructive hover:bg-destructive/10 focus:bg-destructive/10",children:[c.jsx(Pu,{className:"h-3.5 w-3.5"}),c.jsx("span",{className:"text-xs font-medium",children:"Discard Changes"})]}),c.jsxs(Er,{disabled:!w,onSelect:K=>{K.stopPropagation(),w&&f.onIgnoreFile(e.path)},children:[c.jsx(vz,{className:"h-3.5 w-3.5"}),c.jsx("span",{className:"text-xs font-medium",children:"Ignore File"})]}),c.jsxs(Er,{disabled:!k,onSelect:K=>{K.stopPropagation(),k&&f.onIgnoreFolder(e.path)},children:[c.jsx(vz,{className:"h-3.5 w-3.5"}),c.jsx("span",{className:"text-xs font-medium",children:"Ignore folder..."})]}),c.jsx(cG,{}),c.jsxs(Er,{onSelect:K=>{K.stopPropagation(),f.onCopyFilePath(e.path)},children:[c.jsx(cl,{className:"h-3.5 w-3.5"}),c.jsx("span",{className:"text-xs font-medium",children:"Copy File Path"})]}),c.jsxs(Er,{onSelect:K=>{K.stopPropagation(),f.onCopyRelativePath(e.path)},children:[c.jsx(cl,{className:"h-3.5 w-3.5"}),c.jsx("span",{className:"text-xs font-medium",children:"Copy Relative Path"})]})]})]})}function ELe({projectId:e,diffs:t,editorLabel:n,diffRenderMode:r,wrapLines:i,onOpenFile:s,onOpenInFinder:o,onDiscardFile:a,onIgnoreFile:l,onIgnoreFolder:u,onCopyFilePath:f,onCopyRelativePath:p,onListBranches:m,onPreviewMergeBranch:g,onMergeBranch:b,onCheckoutBranch:y,onCreateBranch:x,onGenerateCommitMessage:w,onInitializeGit:k,onGetGitHubPublishInfo:C,onCheckGitHubRepoAvailability:E,onSetupGitHub:A,onCommit:N,onSyncWithRemote:M,onLoadPatch:j,onDiffRenderModeChange:I,onWrapLinesChange:z,ports:F}){var At;const O=(F==null?void 0:F.dom)??Et,P=_.useMemo(()=>({onOpenFile:s,onOpenInFinder:o,onDiscardFile:a,onIgnoreFile:l,onIgnoreFolder:u,onCopyFilePath:f,onCopyRelativePath:p}),[s,o,a,l,u,f,p]),W=t.files.length>0,U=at(ke=>ke.isGenerating),B=at(ke=>ke.commitModeInFlight),K=at(ke=>ke.isSyncing),V=at(ke=>ke.isGitHubPublishModalOpen),Y=at(ke=>ke.patchesByPath),G=at(ke=>ke.patchErrorsByPath),D=at(ke=>ke.loadingPatchPaths),Q=at(ke=>ke.setIsGenerating),ae=at(ke=>ke.setCommitModeInFlight),re=at(ke=>ke.setIsSyncing),he=at(ke=>ke.setIsGitHubPublishModalOpen),ue=at(ke=>ke.reconcilePatches),ce=at(ke=>ke.setPatchLoading),ge=at(ke=>ke.clearPatchLoading),ne=at(ke=>ke.clearPatchError),le=at(ke=>ke.setPatchResult),te=at(ke=>ke.setPatchError),we=_.useRef(null),se=_.useRef(null),Pe=_.useRef({}),Fe=_.useMemo(()=>t.files.map(ke=>ke.path),[t.files]),ht=_.useMemo(()=>Fe.join("\0"),[Fe]),Dn=W?"changes":"history",on=uo(ke=>{var Ct;return e?((Ct=ke.projectUi[e])==null?void 0:Ct.viewMode)??Dn:Dn}),pn=uo(ke=>{var Ct;return e?((Ct=ke.projectUi[e])==null?void 0:Ct.collapsedPaths)??lw:lw}),nn=uo(ke=>{var Ct;return e?((Ct=ke.projectUi[e])==null?void 0:Ct.summary)??"":""}),Nt=uo(ke=>{var Ct;return e?((Ct=ke.projectUi[e])==null?void 0:Ct.description)??"":""}),Bt=uo(ke=>ke.reconcileCollapsedPaths),xn=uo(ke=>ke.toggleCollapsedPath),St=uo(ke=>ke.setViewMode),Cn=uo(ke=>ke.setCommitDraft),_n=uo(ke=>ke.clearCommitDraft),dn=qS(ke=>e?ke.checkedPathsByProjectId[e]??lw:lw),rt=qS(ke=>ke.reconcileProject),kt=qS(ke=>ke.setChecked),fn=qS(ke=>ke.setAllChecked),Xt=_.useRef(W);_.useEffect(()=>{e&&Bt(e,Fe)},[Fe,ht,e,Bt]),_.useEffect(()=>{const ke=Object.fromEntries(t.files.map(Vn=>[Vn.path,Vn.patchDigest]));ue(Fe,Vn=>Pe.current[Vn]===ke[Vn]),Pe.current=ke},[t.files,Fe,ht,ue]),_.useEffect(()=>{e&&rt(e,Fe)},[Fe,ht,e,rt]),_.useEffect(()=>{if(!e)return;if(Xt.current!==W){St(e,W?"changes":"history"),Xt.current=W;return}Xt.current=W},[W,e,St]);const Lt=_.useMemo(()=>t.files.filter(ke=>dn[ke.path]??!0).map(ke=>ke.path),[dn,t.files]),Gt=Lt.length,Qt=t.files.length>0&&Gt===t.files.length,Ut=Gt>0&&Gt<t.files.length,Wt=nn.trim(),Jt=Wt.length>0,Be=B!==null,Ue=U||Be,st=((At=t.branchHistory)==null?void 0:At.entries)??[],lt=t.behindCount??0,Ke=t.aheadCount??0,ot=t.hasUpstream===!0,Dt=t.hasUpstream===!1&&!!t.branchName,$t=t.hasOriginRemote===!0,zt=t.branchName?t.branchName.split("/").map(ke=>encodeURIComponent(ke)).join("/"):null;let Zt;Dt?Zt="publish":lt>0?Zt="pull":Zt="fetch";const bt=t.originRepoSlug&&zt?`https://github.com/${t.originRepoSlug}/compare/${zt}?expand=1`:null,ee=!!(ot&&bt&&t.branchName&&t.branchName!==t.defaultBranchName),Ae=t.status==="ready"&&Gt>0&&!Ue,He=t.status==="ready"&&Gt>0&&Jt&&!Ue,Ge=$t?"commit_and_push":"commit_only",Ze=t.branchName??"current branch";async function ft(ke){if(He){ae(ke);try{const Ct=await N({paths:Lt,summary:Wt,description:Nt.trim(),mode:ke});(Ct!=null&&Ct.ok||Ct!=null&&Ct.localCommitCreated)&&e&&_n(e)}finally{ae(null)}}}async function wt(){if(Ae){Q(!0);try{const ke=await w({paths:Lt});e&&Cn(e,{summary:ke.subject,description:ke.body})}finally{Q(!1)}}}function Ye(ke){if(!(!(ke.metaKey||ke.ctrlKey)||ke.key!=="Enter")){if(ke.preventDefault(),Jt){ft(Ge);return}wt()}}async function Vt(ke=Zt){if(!(t.status!=="ready"||K)){re(!0);try{await M(ke)}finally{re(!1)}}}const Xe=_.useCallback(async ke=>{var Ir;const{patchesByPath:Ct,loadingPatchPaths:Vn}=at.getState();if(Ct[ke]!==void 0||Vn[ke])return Ct[ke]??"";ce(ke),ne(ke);try{const Tr=await j(ke);le(ke,Tr);const de=(Ir=t.files.find(nt=>nt.path===ke))==null?void 0:Ir.patchDigest;return de&&(Pe.current={...Pe.current,[ke]:de}),Tr}catch(Tr){const de=Tr instanceof Error?Tr.message:String(Tr);throw te(ke,de),Tr}finally{ge(ke)}},[ne,ge,t.files,j,te,ce,le]),Tt=_.useCallback(ke=>ke.path,[]),ln=_.useCallback(({item:ke})=>{const Ct=pn[ke.path]??!0,Vn=dn[ke.path]??!0;return c.jsx("div",{className:"pb-1.5",children:c.jsx(EM.Provider,{init:void 0,children:c.jsx(kLe,{file:ke,rootRef:we,projectId:e,isCollapsed:Ct,isChecked:Vn,editorLabel:n,diffRenderMode:r,wrapLines:i,onToggleCollapsed:()=>{e&&xn(e,ke.path)},onToggleChecked:()=>{e&&kt(e,ke.path,!Vn)},fileActions:P,patch:Y[ke.path],patchError:G[ke.path],isPatchLoading:!!D[ke.path],onLoadPatch:Xe,ports:F})})})},[dn,pn,r,n,P,Xe,D,G,Y,F,e,kt,xn,i]);_.useEffect(()=>{var Ct,Vn;const ke=(Vn=(Ct=se.current)==null?void 0:Ct.getScrollableNode)==null?void 0:Vn.call(Ct);we.current=ke instanceof HTMLElement?ke:null},[on,t.files.length]);let Or;Ut?Or="Select all files for commit":Qt?Or="Unselect all files from commit":Or="Select all files for commit";let br;t.status==="ready"?$t?Zt==="publish"?br=c.jsxs(je,{variant:"ghost",size:"sm",onClick:()=>void Vt(),disabled:K,className:"h-7 gap-1.5 px-2 text-xs hover:!bg-transparent hover:!border-border/0",children:[K?c.jsx(Ln,{className:"h-3.5 w-3.5 animate-spin"}):c.jsx(Mw,{className:"h-3.5 w-3.5"}),c.jsx("span",{children:"Publish Branch"})]}):br=c.jsxs("div",{className:"flex items-center gap-1",children:[Zt==="fetch"?c.jsxs(ks,{delayDuration:0,children:[c.jsx(Es,{asChild:!0,children:c.jsxs(je,{variant:"ghost",size:"sm",onClick:()=>void Vt(),disabled:K,className:"h-7 gap-1.5 px-2 text-xs hover:!bg-transparent hover:!border-border/0",children:[K?c.jsx(Ln,{className:"h-3.5 w-3.5 animate-spin"}):c.jsx(gI,{className:"h-3.5 w-3.5"}),c.jsx("span",{children:"Fetch"})]})}),c.jsx(ms,{children:bLe(t.lastFetchedAt)})]}):c.jsxs(je,{variant:"ghost",size:"sm",onClick:()=>void Vt(),disabled:K,className:"h-7 gap-1.5 px-2 text-xs hover:!bg-transparent hover:!border-border/0",children:[K?c.jsx(Ln,{className:"h-3.5 w-3.5 animate-spin"}):c.jsx(fI,{className:"h-3.5 w-3.5"}),c.jsx("span",{children:"Pull"}),c.jsx("span",{className:"inline-flex min-w-4 items-center justify-center rounded-full bg-muted px-1 text-[10px] text-muted-foreground",children:lt})]}),ot&&Ke>0?c.jsxs(je,{variant:"default",size:"sm",onClick:()=>void Vt("push"),disabled:K,className:"h-7 gap-1.5 px-2 text-xs",children:[K?c.jsx(Ln,{className:"h-3.5 w-3.5 animate-spin"}):c.jsx(Mw,{className:"h-3.5 w-3.5"}),c.jsx("span",{children:"Push"}),c.jsx("span",{className:"inline-flex min-w-4 items-center justify-center rounded-full bg-primary-foreground/15 px-1 text-[10px] text-primary-foreground",children:Ke})]}):null,ee&&bt?c.jsxs(je,{variant:"ghost",size:"sm",onClick:()=>{O.openWindow(bt,"_blank","noopener,noreferrer")},className:"h-7 gap-1.5 px-2 text-xs hover:!bg-transparent hover:!border-border/0",children:[c.jsx(k9,{className:"h-3.5 w-3.5"}),c.jsx("span",{children:"PR"})]}):null]}):br=c.jsxs(je,{variant:"default",size:"sm",onClick:()=>he(!0),className:"h-7 gap-1.5 px-3 text-xs",children:[c.jsx(fue,{className:"h-3.5 w-3.5"}),c.jsx("span",{children:"Push to GitHub"})]}):br=null;let nr;t.status==="no_repo"?nr=c.jsx("div",{className:"flex h-full items-center justify-center px-6 py-3 text-center",children:c.jsxs("div",{className:"flex max-w-[280px] flex-col items-center gap-3",children:[c.jsx("p",{className:"text-sm text-muted-foreground",children:"Initialize git here to start tracking branches, diffs, and history."}),c.jsx(je,{size:"sm",onClick:()=>void k(),children:"Init Git"})]})}):on==="history"?st.length===0?nr=c.jsx("div",{className:"flex h-full items-center justify-center px-6 py-3 text-center",children:c.jsxs("p",{className:"text-sm text-muted-foreground",children:["No recent commits on ",t.branchName??"this branch","."]})}):nr=c.jsx("div",{className:"h-full overflow-y-auto [scrollbar-gutter:stable] space-y-1.5 p-1.5",children:st.map((ke,Ct)=>c.jsx(yLe,{entry:ke,isPendingPush:Ct<Ke,ports:F},ke.sha))}):t.files.length===0?nr=c.jsx("div",{className:"flex h-full items-center justify-center px-6 py-3 text-center",children:c.jsx("p",{className:"text-sm text-muted-foreground",children:"No file changes."})}):nr=null;let Fr;Jt?Be?Fr=c.jsx(Ln,{strokeWidth:2.5,className:"size-3 shrink-0 animate-spin"}):Ge==="commit_and_push"&&t.hasUpstream?Fr=c.jsx(Mw,{strokeWidth:2.5,className:"size-3 shrink-0"}):Ge==="commit_and_push"?Fr=c.jsx(C9,{strokeWidth:2.5,className:"size-3 shrink-0"}):Fr=c.jsx(qs,{strokeWidth:2.5,className:"size-3 shrink-0"}):U?Fr=c.jsx(Ln,{strokeWidth:2.5,className:"size-3 shrink-0 animate-spin"}):Fr=c.jsx(que,{strokeWidth:2.5,className:"size-3 shrink-0"});let Bn;return Jt?Be?Bn=B==="commit_only"?"Committing...":"Committing & Pushing...":Ge==="commit_only"?Bn=c.jsxs(c.Fragment,{children:["Commit to ",c.jsx(lu,{strokeWidth:2.5,className:"mr-[4.5px] ml-0.5 inline size-3 "}),Ze]}):t.hasUpstream?Bn=c.jsxs(c.Fragment,{children:["Commit & push to ",c.jsx(lu,{strokeWidth:2.5,className:"mr-[4.5px] ml-0.5 inline size-3 "}),Ze]}):Bn=c.jsxs(c.Fragment,{children:["Commit & publish ",c.jsx(lu,{strokeWidth:2.5,className:"mr-[4.5px] ml-0.5 inline size-3 "}),Ze]}):U?Bn="Generating...":Bn=c.jsxs(c.Fragment,{children:["Generate message for ",c.jsx(lu,{strokeWidth:2.5,className:"mr-[4.5px] ml-0.5 inline size-3 "}),Ze]}),c.jsx("div",{className:"h-full min-h-0 border-l border-border bg-background md:min-w-[370px]",children:c.jsxs("div",{className:"flex h-full min-h-0 flex-col",children:[c.jsxs("div",{className:"flex shrink-0 items-center gap-2 border-b border-border pl-2.5 pr-2 py-2",children:[c.jsx("div",{className:"flex min-w-0 flex-1 items-center gap-2",children:c.jsx(CLe,{currentBranchName:t.branchName,onListBranches:m,onPreviewMergeBranch:g,onMergeBranch:b,onCheckoutBranch:y,onCreateBranch:x})}),br]}),c.jsxs("div",{className:"relative min-h-0 flex-1",children:[c.jsx("div",{className:"sticky top-0 z-30 pl-[14px] pr-[12px] pt-[6px] bg-gradient-to-b from-background to-transparent",children:c.jsx("div",{className:"relative h-[40px] flex min-w-0 items-center justify-center gap-[13px]",children:c.jsxs("div",{className:"flex min-w-0 flex-1 items-center justify-between gap-[13px] relative",children:[on==="changes"?c.jsxs("div",{className:"flex items-center gap-2 text-[11px] text-muted-foreground/70",children:[c.jsx(Kee,{checked:Qt,mixed:Ut,label:Or,onClick:()=>{!e||t.files.length===0||fn(e,Fe,Ut?!0:!Qt)}}),c.jsxs("span",{children:[Gt," files"]})]}):c.jsx("div",{}),c.jsx("div",{className:"pointer-events-none absolute left-1/2 -translate-x-1/2 top-1/2 -translate-y-1/2",children:c.jsx("div",{className:"pointer-events-auto",children:c.jsx(Hs,{value:on,onValueChange:ke=>{e&&hLe(ke)&&St(e,ke)},size:"sm",optionClassName:"flex-1 justify-center",options:[{value:"changes",label:"Changes"},{value:"history",label:"History"}]})})}),on==="changes"?c.jsxs("div",{className:"flex items-center gap-1",children:[c.jsx(hA,{label:"Unified diff",active:r==="unified",onClick:()=>I("unified"),children:c.jsx(fde,{className:"h-4 w-4"})}),c.jsx(hA,{label:"Side-by-side diff",active:r==="split",onClick:()=>I("split"),children:c.jsx(vce,{className:"h-4 w-4"})}),c.jsx(hA,{label:i?"Disable word wrap":"Enable word wrap",active:i,onClick:()=>z(!i),children:c.jsx(Ude,{className:"h-4 w-4"})})]}):c.jsx("div",{})]})})}),c.jsxs("div",{className:"h-full min-h-0",children:[nr,t.status!=="no_repo"&&on!=="history"&&t.files.length>0&&c.jsxs("div",{className:"relative h-full min-h-0",children:[c.jsx(vY,{ref:se,data:t.files,keyExtractor:Tt,renderItem:ln,extraData:{collapsedPaths:pn,checkedPaths:dn,patchesByPath:Y,patchErrorsByPath:G,loadingPatchPaths:D,diffRenderMode:r,wrapLines:i},estimatedItemSize:44,className:"h-full overflow-y-auto [scrollbar-gutter:stable] p-1.5",contentContainerStyle:{paddingBottom:on==="changes"?220:40}}),on==="changes"?c.jsxs("div",{className:"pointer-events-none absolute inset-x-0 bottom-0 py-1 pb-6 z-30",children:[c.jsx("div",{className:"absolute inset-x-0 bottom-0 top-0 bg-gradient-to-t from-background to-transparent"}),c.jsx("div",{className:"pointer-events-auto relative",children:c.jsxs("div",{className:"space-y-0 rounded-xl mx-auto max-w-[700px]",children:[c.jsx(hn,{value:nn,onChange:ke=>{e&&Cn(e,{summary:ke.target.value,description:Nt})},onKeyDown:Ye,placeholder:"Commit message (override)",className:"rounded-t-xl rounded-b-none px-3",disabled:Ue||t.status!=="ready"}),c.jsx(ic,{value:Nt,onChange:ke=>{e&&Cn(e,{summary:nn,description:ke.target.value})},onKeyDown:Ye,placeholder:"Description",rows:5,className:"-mt-px rounded-t-none rounded-b-xl px-3 outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background mb-2",disabled:Ue||t.status!=="ready"}),c.jsx("div",{className:"w-full flex flex-row",children:c.jsxs(Np,{children:[c.jsx(Tp,{asChild:!0,children:c.jsx(je,{type:"button",className:"-mt-px w-full rounded-xl",disabled:Jt?!He:!Ae,onClick:()=>{if(Jt){ft(Ge);return}wt()},children:c.jsxs("span",{className:"flex min-w-0 items-center gap-1.5",children:[Fr,c.jsx("span",{className:"min-w-0 truncate text-left",children:Bn})]})})}),t.hasUpstream?c.jsx(Ef,{children:c.jsx(Er,{disabled:!Jt||!He,onSelect:ke=>{ke.stopPropagation(),ft("commit_only")},children:"Commit Only"})}):null]})})]})})]}):null]})]})]}),c.jsx(SLe,{open:V,onOpenChange:he,onGetGitHubPublishInfo:C,onCheckGitHubRepoAvailability:E,onPublish:A,ports:F})]})})}const NLe=_.memo(ELe);function TLe(e,t){const n=getComputedStyle(e),r=parseFloat(n.fontSize);return t*r}function ALe(e,t){const n=getComputedStyle(e.ownerDocument.body),r=parseFloat(n.fontSize);return t*r}function RLe(e){return e/100*window.innerHeight}function MLe(e){return e/100*window.innerWidth}function jLe(e){switch(typeof e){case"number":return[e,"px"];case"string":{const t=parseFloat(e);return e.endsWith("%")?[t,"%"]:e.endsWith("px")?[t,"px"]:e.endsWith("rem")?[t,"rem"]:e.endsWith("em")?[t,"em"]:e.endsWith("vh")?[t,"vh"]:e.endsWith("vw")?[t,"vw"]:[t,"%"]}}}function ly({groupSize:e,panelElement:t,styleProp:n}){let r;const[i,s]=jLe(n);switch(s){case"%":{r=i/100*e;break}case"px":{r=i;break}case"rem":{r=ALe(t,i);break}case"em":{r=TLe(t,i);break}case"vh":{r=RLe(i);break}case"vw":{r=MLe(i);break}}return r}function go(e){return parseFloat(e.toFixed(3))}function cv({group:e}){const{orientation:t,panels:n}=e;return n.reduce((r,i)=>(r+=t==="horizontal"?i.element.offsetWidth:i.element.offsetHeight,r),0)}function zj(e){const{panels:t}=e,n=cv({group:e});return n===0?t.map(r=>({groupResizeBehavior:r.panelConstraints.groupResizeBehavior,collapsedSize:0,collapsible:r.panelConstraints.collapsible===!0,defaultSize:void 0,disabled:r.panelConstraints.disabled,minSize:0,maxSize:100,panelId:r.id})):t.map(r=>{const{element:i,panelConstraints:s}=r;let o=0;if(s.collapsedSize!==void 0){const f=ly({groupSize:n,panelElement:i,styleProp:s.collapsedSize});o=go(f/n*100)}let a;if(s.defaultSize!==void 0){const f=ly({groupSize:n,panelElement:i,styleProp:s.defaultSize});a=go(f/n*100)}let l=0;if(s.minSize!==void 0){const f=ly({groupSize:n,panelElement:i,styleProp:s.minSize});l=go(f/n*100)}let u=100;if(s.maxSize!==void 0){const f=ly({groupSize:n,panelElement:i,styleProp:s.maxSize});u=go(f/n*100)}return{groupResizeBehavior:s.groupResizeBehavior,collapsedSize:o,collapsible:s.collapsible===!0,defaultSize:a,disabled:s.disabled,minSize:l,maxSize:u,panelId:r.id}})}function pr(e,t="Assertion error"){if(!e)throw Error(t)}function Fj(e,t){return Array.from(t).sort(e==="horizontal"?OLe:ILe)}function OLe(e,t){const n=e.element.offsetLeft-t.element.offsetLeft;return n!==0?n:e.element.offsetWidth-t.element.offsetWidth}function ILe(e,t){const n=e.element.offsetTop-t.element.offsetTop;return n!==0?n:e.element.offsetHeight-t.element.offsetHeight}function qee(e){return e!==null&&typeof e=="object"&&"nodeType"in e&&e.nodeType===Node.ELEMENT_NODE}function Yee(e,t){return{x:e.x>=t.left&&e.x<=t.right?0:Math.min(Math.abs(e.x-t.left),Math.abs(e.x-t.right)),y:e.y>=t.top&&e.y<=t.bottom?0:Math.min(Math.abs(e.y-t.top),Math.abs(e.y-t.bottom))}}function PLe({orientation:e,rects:t,targetRect:n}){const r={x:n.x+n.width/2,y:n.y+n.height/2};let i,s=Number.MAX_VALUE;for(const o of t){const{x:a,y:l}=Yee(r,o),u=e==="horizontal"?a:l;u<s&&(s=u,i=o)}return pr(i,"No rect found"),i}let cw;function LLe(){return cw===void 0&&(typeof matchMedia=="function"?cw=!!matchMedia("(pointer:coarse)").matches:cw=!1),cw}function Xee(e){const{element:t,orientation:n,panels:r,separators:i}=e,s=Fj(n,Array.from(t.children).filter(qee).map(b=>({element:b}))).map(({element:b})=>b),o=[];let a=!1,l=!1,u=-1,f=-1,p=0,m,g=[];{let b=-1;for(const y of s)y.hasAttribute("data-panel")&&(b++,y.ariaDisabled===null&&(p++,u===-1&&(u=b),f=b))}if(p>1){let b=-1;for(const y of s)if(y.hasAttribute("data-panel")){b++;const x=r.find(w=>w.element===y);if(x){if(m){const w=m.element.getBoundingClientRect(),k=y.getBoundingClientRect();let C;if(l){const E=n==="horizontal"?new DOMRect(w.right,w.top,0,w.height):new DOMRect(w.left,w.bottom,w.width,0),A=n==="horizontal"?new DOMRect(k.left,k.top,0,k.height):new DOMRect(k.left,k.top,k.width,0);switch(g.length){case 0:{C=[E,A];break}case 1:{const N=g[0],M=PLe({orientation:n,rects:[w,k],targetRect:N.element.getBoundingClientRect()});C=[N,M===w?A:E];break}default:{C=g;break}}}else g.length?C=g:C=[n==="horizontal"?new DOMRect(w.right,k.top,k.left-w.right,k.height):new DOMRect(k.left,w.bottom,k.width,k.top-w.bottom)];for(const E of C){let A="width"in E?E:E.element.getBoundingClientRect();const N=LLe()?e.resizeTargetMinimumSize.coarse:e.resizeTargetMinimumSize.fine;if(A.width<N){const j=N-A.width;A=new DOMRect(A.x-j/2,A.y,A.width+j,A.height)}if(A.height<N){const j=N-A.height;A=new DOMRect(A.x,A.y-j/2,A.width,A.height+j)}const M=b<=u||b>f;!a&&!M&&o.push({group:e,groupSize:cv({group:e}),panels:[m,x],separator:"width"in E?void 0:E,rect:A}),a=!1}}l=!1,m=x,g=[]}}else if(y.hasAttribute("data-separator")){y.ariaDisabled!==null&&(a=!0);const x=i.find(w=>w.element===y);x?g.push(x):(m=void 0,g=[])}else l=!0}return o}var Qd,OW;let Qee=(OW=class{constructor(){mt(this,Qd,{})}addListener(t,n){const r=oe(this,Qd)[t];return r===void 0?oe(this,Qd)[t]=[n]:r.includes(n)||r.push(n),()=>{this.removeListener(t,n)}}emit(t,n){const r=oe(this,Qd)[t];if(r!==void 0)if(r.length===1)r[0].call(null,n);else{let i=!1,s=null;const o=Array.from(r);for(let a=0;a<o.length;a++){const l=o[a];try{l.call(null,n)}catch(u){s===null&&(i=!0,s=u)}}if(i)throw s}}removeAllListeners(){Qe(this,Qd,{})}removeListener(t,n){const r=oe(this,Qd)[t];if(r!==void 0){const i=r.indexOf(n);i>=0&&r.splice(i,1)}}},Qd=new WeakMap,OW),Xl=new Map;const Jee=new Qee;function DLe(e){Xl=new Map(Xl),Xl.delete(e)}function YU(e,t){for(const[n]of Xl)if(n.id===e)return n}function cf(e,t){for(const[n,r]of Xl)if(n.id===e)return r;if(t)throw Error(`Could not find data for Group with id ${e}`)}function Bp(){return Xl}function uD(e,t){return Jee.addListener("groupChange",n=>{n.group.id===e&&t(n)})}function Iu(e,t){const n=Xl.get(e);Xl=new Map(Xl),Xl.set(e,t),Jee.emit("groupChange",{group:e,prev:n,next:t})}function $Le(e,t,n){let r,i={x:1/0,y:1/0};for(const s of t){const o=Yee(n,s.rect);switch(e){case"horizontal":{o.x<=i.x&&(r=s,i=o);break}case"vertical":{o.y<=i.y&&(r=s,i=o);break}}}return r?{distance:i,hitRegion:r}:void 0}function zLe(e){return e!==null&&typeof e=="object"&&"nodeType"in e&&e.nodeType===Node.DOCUMENT_FRAGMENT_NODE}function FLe(e,t){if(e===t)throw new Error("Cannot compare node with itself");const n={a:JU(e),b:JU(t)};let r;for(;n.a.at(-1)===n.b.at(-1);)r=n.a.pop(),n.b.pop();pr(r,"Stacking order can only be calculated for elements with a common ancestor");const i={a:QU(XU(n.a)),b:QU(XU(n.b))};if(i.a===i.b){const s=r.childNodes,o={a:n.a.at(-1),b:n.b.at(-1)};let a=s.length;for(;a--;){const l=s[a];if(l===o.a)return 1;if(l===o.b)return-1}}return Math.sign(i.a-i.b)}const BLe=/\b(?:position|zIndex|opacity|transform|webkitTransform|mixBlendMode|filter|webkitFilter|isolation)\b/;function ULe(e){const t=getComputedStyle(Zee(e)??e).display;return t==="flex"||t==="inline-flex"}function HLe(e){const t=getComputedStyle(e);return!!(t.position==="fixed"||t.zIndex!=="auto"&&(t.position!=="static"||ULe(e))||+t.opacity<1||"transform"in t&&t.transform!=="none"||"webkitTransform"in t&&t.webkitTransform!=="none"||"mixBlendMode"in t&&t.mixBlendMode!=="normal"||"filter"in t&&t.filter!=="none"||"webkitFilter"in t&&t.webkitFilter!=="none"||"isolation"in t&&t.isolation==="isolate"||BLe.test(t.willChange)||t.webkitOverflowScrolling==="touch")}function XU(e){let t=e.length;for(;t--;){const n=e[t];if(pr(n,"Missing node"),HLe(n))return n}return null}function QU(e){return e&&Number(getComputedStyle(e).zIndex)||0}function JU(e){const t=[];for(;e;)t.push(e),e=Zee(e);return t}function Zee(e){const{parentNode:t}=e;return zLe(t)?t.host:t}function WLe(e,t){return e.x<t.x+t.width&&e.x+e.width>t.x&&e.y<t.y+t.height&&e.y+e.height>t.y}function VLe({groupElement:e,hitRegion:t,pointerEventTarget:n}){if(!qee(n)||n.contains(e)||e.contains(n))return!0;if(FLe(n,e)>0){let r=n;for(;r;){if(r.contains(e))return!0;if(WLe(r.getBoundingClientRect(),t))return!1;r=r.parentElement}}return!0}function dD(e,t){const n=[];return t.forEach((r,i)=>{if(i.disabled)return;const s=Xee(i),o=$Le(i.orientation,s,{x:e.clientX,y:e.clientY});o&&o.distance.x<=0&&o.distance.y<=0&&VLe({groupElement:i.element,hitRegion:o.hitRegion.rect,pointerEventTarget:e.target})&&n.push(o.hitRegion)}),n}function KLe(e,t){if(e.length!==t.length)return!1;for(let n=0;n<e.length;n++)if(e[n]!=t[n])return!1;return!0}function Bs(e,t,n=0){return Math.abs(go(e)-go(t))<=n}function Ll(e,t){return Bs(e,t)?0:e>t?1:-1}function Zm({overrideDisabledPanels:e,panelConstraints:t,prevSize:n,size:r}){const{collapsedSize:i=0,collapsible:s,disabled:o,maxSize:a=100,minSize:l=0}=t;if(o&&!e)return n;if(Ll(r,l)<0)if(s){const u=(i+l)/2;Ll(r,u)<0?r=i:r=l}else r=l;return r=Math.min(a,r),r=go(r),r}function Wx({delta:e,initialLayout:t,panelConstraints:n,pivotIndices:r,prevLayout:i,trigger:s}){if(Bs(e,0))return t;const o=s==="imperative-api",a=Object.values(t),l=Object.values(i),u=[...a],[f,p]=r;pr(f!=null,"Invalid first pivot index"),pr(p!=null,"Invalid second pivot index");let m=0;switch(s){case"keyboard":{{const y=e<0?p:f,x=n[y];pr(x,`Panel constraints not found for index ${y}`);const{collapsedSize:w=0,collapsible:k,minSize:C=0}=x;if(k){const E=a[y];if(pr(E!=null,`Previous layout not found for panel index ${y}`),Bs(E,w)){const A=C-E;Ll(A,Math.abs(e))>0&&(e=e<0?0-A:A)}}}{const y=e<0?f:p,x=n[y];pr(x,`No panel constraints found for index ${y}`);const{collapsedSize:w=0,collapsible:k,minSize:C=0}=x;if(k){const E=a[y];if(pr(E!=null,`Previous layout not found for panel index ${y}`),Bs(E,C)){const A=E-w;Ll(A,Math.abs(e))>0&&(e=e<0?0-A:A)}}}break}default:{const y=e<0?p:f,x=n[y];pr(x,`Panel constraints not found for index ${y}`);const w=a[y],{collapsible:k,collapsedSize:C,minSize:E}=x;if(k&&Ll(w,E)<0)if(e>0){const A=E-C,N=A/2,M=w+e;Ll(M,E)<0&&(e=Ll(e,N)<=0?0:A)}else{const A=E-C,N=100-A/2,M=w-e;Ll(M,E)<0&&(e=Ll(100+e,N)>0?0:-A)}break}}{const y=e<0?1:-1;let x=e<0?p:f,w=0;for(;;){const C=a[x];pr(C!=null,`Previous layout not found for panel index ${x}`);const E=Zm({overrideDisabledPanels:o,panelConstraints:n[x],prevSize:C,size:100})-C;if(w+=E,x+=y,x<0||x>=n.length)break}const k=Math.min(Math.abs(e),Math.abs(w));e=e<0?0-k:k}{let y=e<0?f:p;for(;y>=0&&y<n.length;){const x=Math.abs(e)-Math.abs(m),w=a[y];pr(w!=null,`Previous layout not found for panel index ${y}`);const k=w-x,C=Zm({overrideDisabledPanels:o,panelConstraints:n[y],prevSize:w,size:k});if(!Bs(w,C)&&(m+=w-C,u[y]=C,m.toFixed(3).localeCompare(Math.abs(e).toFixed(3),void 0,{numeric:!0})>=0))break;e<0?y--:y++}}if(KLe(l,u))return i;{const y=e<0?p:f,x=a[y];pr(x!=null,`Previous layout not found for panel index ${y}`);const w=x+m,k=Zm({overrideDisabledPanels:o,panelConstraints:n[y],prevSize:x,size:w});if(u[y]=k,!Bs(k,w)){let C=w-k,E=e<0?p:f;for(;E>=0&&E<n.length;){const A=u[E];pr(A!=null,`Previous layout not found for panel index ${E}`);const N=A+C,M=Zm({overrideDisabledPanels:o,panelConstraints:n[E],prevSize:A,size:N});if(Bs(A,M)||(C-=M-A,u[E]=M),Bs(C,0))break;e>0?E--:E++}}}const g=Object.values(u).reduce((y,x)=>x+y,0);if(!Bs(g,100,.1))return i;const b=Object.keys(i);return u.reduce((y,x,w)=>(y[b[w]]=x,y),{})}function vp(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(const n in e)if(t[n]===void 0||Ll(e[n],t[n])!==0)return!1;return!0}function bp({layout:e,panelConstraints:t}){const n=Object.values(e),r=[...n],i=r.reduce((a,l)=>a+l,0);if(r.length!==t.length)throw Error(`Invalid ${t.length} panel layout: ${r.map(a=>`${a}%`).join(", ")}`);if(!Bs(i,100)&&r.length>0)for(let a=0;a<t.length;a++){const l=r[a];pr(l!=null,`No layout data found for index ${a}`);const u=100/i*l;r[a]=u}let s=0;for(let a=0;a<t.length;a++){const l=n[a];pr(l!=null,`No layout data found for index ${a}`);const u=r[a];pr(u!=null,`No layout data found for index ${a}`);const f=Zm({overrideDisabledPanels:!0,panelConstraints:t[a],prevSize:l,size:u});u!=f&&(s+=u-f,r[a]=f)}if(!Bs(s,0))for(let a=0;a<t.length;a++){const l=r[a];pr(l!=null,`No layout data found for index ${a}`);const u=l+s,f=Zm({overrideDisabledPanels:!0,panelConstraints:t[a],prevSize:l,size:u});if(l!==f&&(s-=f-l,r[a]=f,Bs(s,0)))break}const o=Object.keys(e);return r.reduce((a,l,u)=>(a[o[u]]=l,a),{})}function ete({groupId:e,panelId:t}){const n=()=>{const a=Bp();for(const[l,{defaultLayoutDeferred:u,derivedPanelConstraints:f,layout:p,groupSize:m,separatorToPanels:g}]of a)if(l.id===e)return{defaultLayoutDeferred:u,derivedPanelConstraints:f,group:l,groupSize:m,layout:p,separatorToPanels:g};throw Error(`Group ${e} not found`)},r=()=>{const a=n().derivedPanelConstraints.find(l=>l.panelId===t);if(a!==void 0)return a;throw Error(`Panel constraints not found for Panel ${t}`)},i=()=>{const a=n().group.panels.find(l=>l.id===t);if(a!==void 0)return a;throw Error(`Layout not found for Panel ${t}`)},s=()=>{const a=n().layout[t];if(a!==void 0)return a;throw Error(`Layout not found for Panel ${t}`)},o=a=>{const l=s();if(a===l)return;const{defaultLayoutDeferred:u,derivedPanelConstraints:f,group:p,groupSize:m,layout:g,separatorToPanels:b}=n(),y=p.panels.findIndex(C=>C.id===t),x=y===p.panels.length-1,w=Wx({delta:x?l-a:a-l,initialLayout:g,panelConstraints:f,pivotIndices:x?[y-1,y]:[y,y+1],prevLayout:g,trigger:"imperative-api"}),k=bp({layout:w,panelConstraints:f});vp(g,k)||Iu(p,{defaultLayoutDeferred:u,derivedPanelConstraints:f,groupSize:m,layout:k,separatorToPanels:b})};return{collapse:()=>{const{collapsible:a,collapsedSize:l}=r(),{mutableValues:u}=i(),f=s();a&&f!==l&&(u.expandToSize=f,o(l))},expand:()=>{const{collapsible:a,collapsedSize:l,minSize:u}=r(),{mutableValues:f}=i(),p=s();if(a&&p===l){let m=f.expandToSize??u;m===0&&(m=1),o(m)}},getSize:()=>{const{group:a}=n(),l=s(),{element:u}=i(),f=a.orientation==="horizontal"?u.offsetWidth:u.offsetHeight;return{asPercentage:l,inPixels:f}},isCollapsed:()=>{const{collapsible:a,collapsedSize:l}=r(),u=s();return a&&Bs(l,u)},resize:a=>{const{group:l}=n(),{element:u}=i(),f=cv({group:l}),p=ly({groupSize:f,panelElement:u,styleProp:a}),m=go(p/f*100);o(m)}}}function ZU(e){if(e.defaultPrevented)return;const t=Bp();dD(e,t).forEach(n=>{if(n.separator){const r=n.panels.find(i=>i.panelConstraints.defaultSize!==void 0);if(r){const i=r.panelConstraints.defaultSize,s=ete({groupId:n.group.id,panelId:r.id});s&&i!==void 0&&(s.resize(i),e.preventDefault())}}})}function uC(e){const t=Bp();for(const[n]of t)if(n.separators.some(r=>r.element===e))return n;throw Error("Could not find parent Group for separator element")}function tte({groupId:e}){const t=()=>{const n=Bp();for(const[r,i]of n)if(r.id===e)return{group:r,...i};throw Error(`Could not find Group with id "${e}"`)};return{getLayout(){const{defaultLayoutDeferred:n,layout:r}=t();return n?{}:r},setLayout(n){const{defaultLayoutDeferred:r,derivedPanelConstraints:i,group:s,groupSize:o,layout:a,separatorToPanels:l}=t(),u=bp({layout:n,panelConstraints:i});return r?a:(vp(a,u)||Iu(s,{defaultLayoutDeferred:r,derivedPanelConstraints:i,groupSize:o,layout:u,separatorToPanels:l}),u)}}}function sh(e,t){const n=uC(e),r=cf(n.id,!0),i=n.separators.find(f=>f.element===e);pr(i,"Matching separator not found");const s=r.separatorToPanels.get(i);pr(s,"Matching panels not found");const o=s.map(f=>n.panels.indexOf(f)),a=tte({groupId:n.id}).getLayout(),l=Wx({delta:t,initialLayout:a,panelConstraints:r.derivedPanelConstraints,pivotIndices:o,prevLayout:a,trigger:"keyboard"}),u=bp({layout:l,panelConstraints:r.derivedPanelConstraints});vp(a,u)||Iu(n,{defaultLayoutDeferred:r.defaultLayoutDeferred,derivedPanelConstraints:r.derivedPanelConstraints,groupSize:r.groupSize,layout:u,separatorToPanels:r.separatorToPanels})}function eH(e){if(e.defaultPrevented)return;const t=e.currentTarget,n=uC(t);if(!n.disabled)switch(e.key){case"ArrowDown":{e.preventDefault(),n.orientation==="vertical"&&sh(t,5);break}case"ArrowLeft":{e.preventDefault(),n.orientation==="horizontal"&&sh(t,-5);break}case"ArrowRight":{e.preventDefault(),n.orientation==="horizontal"&&sh(t,5);break}case"ArrowUp":{e.preventDefault(),n.orientation==="vertical"&&sh(t,-5);break}case"End":{e.preventDefault(),sh(t,100);break}case"Enter":{e.preventDefault();const r=uC(t),i=cf(r.id,!0),{derivedPanelConstraints:s,layout:o,separatorToPanels:a}=i,l=r.separators.find(m=>m.element===t);pr(l,"Matching separator not found");const u=a.get(l);pr(u,"Matching panels not found");const f=u[0],p=s.find(m=>m.panelId===f.id);if(pr(p,"Panel metadata not found"),p.collapsible){const m=o[f.id],g=p.collapsedSize===m?r.mutableState.expandedPanelSizes[f.id]??p.minSize:p.collapsedSize;sh(t,g-m)}break}case"F6":{e.preventDefault();const r=uC(t).separators.map(o=>o.element),i=Array.from(r).findIndex(o=>o===e.currentTarget);pr(i!==null,"Index not found");const s=e.shiftKey?i>0?i-1:r.length-1:i+1<r.length?i+1:0;r[s].focus({preventScroll:!0});break}case"Home":{e.preventDefault(),sh(t,-100);break}}}let wg={cursorFlags:0,state:"inactive"};const fD=new Qee;function yp(){return wg}function GLe(e){return fD.addListener("change",e)}function qLe(e){const t=wg,n={...wg};n.cursorFlags=e,wg=n,fD.emit("change",{prev:t,next:n})}function Cg(e){const t=wg;wg=e,fD.emit("change",{prev:t,next:e})}function tH(e){if(e.defaultPrevented||e.pointerType==="mouse"&&e.button>0)return;const t=Bp(),n=dD(e,t),r=new Map;let i=!1;n.forEach(s=>{s.separator&&(i||(i=!0,s.separator.element.focus({preventScroll:!0})));const o=t.get(s.group);o&&r.set(s.group,o.layout)}),Cg({cursorFlags:0,hitRegions:n,initialLayoutMap:r,pointerDownAtPoint:{x:e.clientX,y:e.clientY},state:"active"}),n.length&&e.preventDefault()}const YLe=e=>e,pA=()=>{},nte=1,rte=2,ite=4,ste=8,nH=3,rH=12;let uw;function iH(){return uw===void 0&&(uw=!1,typeof window<"u"&&(window.navigator.userAgent.includes("Chrome")||window.navigator.userAgent.includes("Firefox"))&&(uw=!0)),uw}function XLe({cursorFlags:e,groups:t,state:n}){let r=0,i=0;switch(n){case"active":case"hover":t.forEach(s=>{if(!s.mutableState.disableCursor)switch(s.orientation){case"horizontal":{r++;break}case"vertical":{i++;break}}})}if(!(r===0&&i===0)){switch(n){case"active":{if(e&&iH()){const s=(e&nte)!==0,o=(e&rte)!==0,a=(e&ite)!==0,l=(e&ste)!==0;if(s)return a?"se-resize":l?"ne-resize":"e-resize";if(o)return a?"sw-resize":l?"nw-resize":"w-resize";if(a)return"s-resize";if(l)return"n-resize"}break}}return iH()?r>0&&i>0?"move":r>0?"ew-resize":"ns-resize":r>0&&i>0?"grab":r>0?"col-resize":"row-resize"}}const sH=new WeakMap;function hD(e){if(e.defaultView===null||e.defaultView===void 0)return;let{prevStyle:t,styleSheet:n}=sH.get(e)??{};n===void 0&&(n=new e.defaultView.CSSStyleSheet,e.adoptedStyleSheets&&e.adoptedStyleSheets.push(n));const r=yp();switch(r.state){case"active":case"hover":{const i=XLe({cursorFlags:r.cursorFlags,groups:r.hitRegions.map(o=>o.group),state:r.state}),s=`*, *:hover {cursor: ${i} !important; }`;if(t===s)return;t=s,i?n.cssRules.length===0?n.insertRule(s):n.replaceSync(s):n.cssRules.length===1&&n.deleteRule(0);break}case"inactive":{t=void 0,n.cssRules.length===1&&n.deleteRule(0);break}}sH.set(e,{prevStyle:t,styleSheet:n})}function ote({document:e,event:t,hitRegions:n,initialLayoutMap:r,mountedGroups:i,pointerDownAtPoint:s,prevCursorFlags:o}){let a=0;n.forEach(u=>{const{group:f,groupSize:p}=u,{orientation:m,panels:g}=f,{disableCursor:b}=f.mutableState;let y=0;s?m==="horizontal"?y=(t.clientX-s.x)/p*100:y=(t.clientY-s.y)/p*100:m==="horizontal"?y=t.clientX<0?-100:100:y=t.clientY<0?-100:100;const x=r.get(f),w=i.get(f);if(!x||!w)return;const{defaultLayoutDeferred:k,derivedPanelConstraints:C,groupSize:E,layout:A,separatorToPanels:N}=w;if(C&&A&&N){const M=Wx({delta:y,initialLayout:x,panelConstraints:C,pivotIndices:u.panels.map(j=>g.indexOf(j)),prevLayout:A,trigger:"mouse-or-touch"});if(vp(M,A)){if(y!==0&&!b)switch(m){case"horizontal":{a|=y<0?nte:rte;break}case"vertical":{a|=y<0?ite:ste;break}}}else Iu(u.group,{defaultLayoutDeferred:k,derivedPanelConstraints:C,groupSize:E,layout:M,separatorToPanels:N})}});let l=0;t.movementX===0?l|=o&nH:l|=a&nH,t.movementY===0?l|=o&rH:l|=a&rH,qLe(l),hD(e)}function oH(e){const t=Bp(),n=yp();switch(n.state){case"active":ote({document:e.currentTarget,event:e,hitRegions:n.hitRegions,initialLayoutMap:n.initialLayoutMap,mountedGroups:t,prevCursorFlags:n.cursorFlags})}}function aH(e){if(e.defaultPrevented)return;const t=yp(),n=Bp();switch(t.state){case"active":{if(e.buttons===0){Cg({cursorFlags:0,state:"inactive"}),t.hitRegions.forEach(r=>{const i=cf(r.group.id,!0);Iu(r.group,i)});return}ote({document:e.currentTarget,event:e,hitRegions:t.hitRegions,initialLayoutMap:t.initialLayoutMap,mountedGroups:n,pointerDownAtPoint:t.pointerDownAtPoint,prevCursorFlags:t.cursorFlags});break}default:{const r=dD(e,n);r.length===0?t.state!=="inactive"&&Cg({cursorFlags:0,state:"inactive"}):Cg({cursorFlags:0,hitRegions:r,state:"hover"}),hD(e.currentTarget);break}}}function lH(e){if(e.relatedTarget instanceof HTMLIFrameElement)switch(yp().state){case"hover":Cg({cursorFlags:0,state:"inactive"})}}function cH(e){if(e.defaultPrevented||e.pointerType==="mouse"&&e.button>0)return;const t=yp();switch(t.state){case"active":Cg({cursorFlags:0,state:"inactive"}),t.hitRegions.length>0&&(hD(e.currentTarget),t.hitRegions.forEach(n=>{const r=cf(n.group.id,!0);Iu(n.group,r)}),e.preventDefault())}}function uH(e){let t=0,n=0;const r={};for(const s of e)if(s.defaultSize!==void 0){t++;const o=go(s.defaultSize);n+=o,r[s.panelId]=o}else r[s.panelId]=void 0;const i=e.length-t;if(i!==0){const s=go((100-n)/i);for(const o of e)o.defaultSize===void 0&&(r[o.panelId]=s)}return r}function QLe(e,t,n){if(!n[0])return;const r=e.panels.find(l=>l.element===t);if(!r||!r.onResize)return;const i=cv({group:e}),s=e.orientation==="horizontal"?r.element.offsetWidth:r.element.offsetHeight,o=r.mutableValues.prevSize,a={asPercentage:go(s/i*100),inPixels:s};r.mutableValues.prevSize=a,r.onResize(a,r.id,o)}function JLe(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(const n in e)if(e[n]!==t[n])return!1;return!0}function ZLe({group:e,nextGroupSize:t,prevGroupSize:n,prevLayout:r}){if(n<=0||t<=0||n===t)return r;let i=0,s=0,o=!1;const a=new Map,l=[];for(const p of e.panels){const m=r[p.id]??0;switch(p.panelConstraints.groupResizeBehavior){case"preserve-pixel-size":{o=!0;const g=m/100*n,b=go(g/t*100);a.set(p.id,b),i+=b;break}case"preserve-relative-size":default:{l.push(p.id),s+=m;break}}}if(!o||l.length===0)return r;const u=100-i,f={...r};if(a.forEach((p,m)=>{f[m]=p}),s>0)for(const p of l){const m=r[p]??0;f[p]=go(m/s*u)}else{const p=go(u/l.length);for(const m of l)f[m]=p}return f}function eDe(e,t){const n=e.map(i=>i.id),r=Object.keys(t);if(n.length!==r.length)return!1;for(const i of n)if(!r.includes(i))return!1;return!0}const Im=new Map;function tDe(e){let t=!0;pr(e.element.ownerDocument.defaultView,"Cannot register an unmounted Group");const n=e.element.ownerDocument.defaultView.ResizeObserver,r=new Set,i=new Set,s=new n(b=>{for(const y of b){const{borderBoxSize:x,target:w}=y;if(w===e.element){if(t){const k=cv({group:e});if(k===0)return;const C=cf(e.id);if(!C)return;const E=zj(e),A=C.defaultLayoutDeferred?uH(E):C.layout,N=ZLe({group:e,nextGroupSize:k,prevGroupSize:C.groupSize,prevLayout:A}),M=bp({layout:N,panelConstraints:E});if(!C.defaultLayoutDeferred&&vp(C.layout,M)&&JLe(C.derivedPanelConstraints,E)&&C.groupSize===k)return;Iu(e,{defaultLayoutDeferred:!1,derivedPanelConstraints:E,groupSize:k,layout:M,separatorToPanels:C.separatorToPanels})}}else QLe(e,w,x)}});s.observe(e.element),e.panels.forEach(b=>{pr(!r.has(b.id),`Panel ids must be unique; id "${b.id}" was used more than once`),r.add(b.id),b.onResize&&s.observe(b.element)});const o=cv({group:e}),a=zj(e),l=e.panels.map(({id:b})=>b).join(",");let u=e.mutableState.defaultLayout;u&&(eDe(e.panels,u)||(u=void 0));const f=e.mutableState.layouts[l]??u??uH(a),p=bp({layout:f,panelConstraints:a}),m=e.element.ownerDocument;Im.set(m,(Im.get(m)??0)+1);const g=new Map;return Xee(e).forEach(b=>{b.separator&&g.set(b.separator,b.panels)}),Iu(e,{defaultLayoutDeferred:o===0,derivedPanelConstraints:a,groupSize:o,layout:p,separatorToPanels:g}),e.separators.forEach(b=>{pr(!i.has(b.id),`Separator ids must be unique; id "${b.id}" was used more than once`),i.add(b.id),b.element.addEventListener("keydown",eH)}),Im.get(m)===1&&(m.addEventListener("dblclick",ZU,!0),m.addEventListener("pointerdown",tH,!0),m.addEventListener("pointerleave",oH),m.addEventListener("pointermove",aH),m.addEventListener("pointerout",lH),m.addEventListener("pointerup",cH,!0)),function(){t=!1,Im.set(m,Math.max(0,(Im.get(m)??0)-1)),DLe(e),e.separators.forEach(b=>{b.element.removeEventListener("keydown",eH)}),Im.get(m)||(m.removeEventListener("dblclick",ZU,!0),m.removeEventListener("pointerdown",tH,!0),m.removeEventListener("pointerleave",oH),m.removeEventListener("pointermove",aH),m.removeEventListener("pointerout",lH),m.removeEventListener("pointerup",cH,!0)),s.disconnect()}}function nDe(){const[e,t]=_.useState({}),n=_.useCallback(()=>t({}),[]);return[e,n]}function pD(e){const t=_.useId();return`${e??t}`}const Up=typeof window<"u"?_.useLayoutEffect:_.useEffect;function Dy(e){const t=_.useRef(e);return Up(()=>{t.current=e},[e]),_.useCallback((...n)=>{var r;return(r=t.current)==null?void 0:r.call(t,...n)},[t])}function mD(...e){return Dy(t=>{e.forEach(n=>{if(n)switch(typeof n){case"function":{n(t);break}case"object":{n.current=t;break}}})})}function gD(e){const t=_.useRef({...e});return Up(()=>{for(const n in e)t.current[n]=e[n]},[e]),t.current}const ate=_.createContext(null);function rDe(e,t){const n=_.useRef({getLayout:()=>({}),setLayout:YLe});_.useImperativeHandle(t,()=>n.current,[]),Up(()=>{Object.assign(n.current,tte({groupId:e}))})}function lte({children:e,className:t,defaultLayout:n,disableCursor:r,disabled:i,elementRef:s,groupRef:o,id:a,onLayoutChange:l,onLayoutChanged:u,orientation:f="horizontal",resizeTargetMinimumSize:p={coarse:20,fine:10},style:m,...g}){const b=_.useRef({onLayoutChange:{},onLayoutChanged:{}}),y=Dy(F=>{vp(b.current.onLayoutChange,F)||(b.current.onLayoutChange=F,l==null||l(F))}),x=Dy(F=>{vp(b.current.onLayoutChanged,F)||(b.current.onLayoutChanged=F,u==null||u(F))}),w=pD(a),k=_.useRef(null),[C,E]=nDe(),A=_.useRef({lastExpandedPanelSizes:{},layouts:{},panels:[],resizeTargetMinimumSize:p,separators:[]}),N=mD(k,s);rDe(w,o);const M=Dy((F,O)=>{const P=yp(),W=YU(F),U=cf(F);if(U){let B=!1;switch(P.state){case"active":{B=P.hitRegions.some(K=>K.group===W);break}}return{flexGrow:U.layout[O]??1,pointerEvents:B?"none":void 0}}return{flexGrow:(n==null?void 0:n[O])??1}}),j=gD({defaultLayout:n,disableCursor:r}),I=_.useMemo(()=>({get disableCursor(){return!!j.disableCursor},getPanelStyles:M,id:w,orientation:f,registerPanel:F=>{const O=A.current;return O.panels=Fj(f,[...O.panels,F]),E(),()=>{O.panels=O.panels.filter(P=>P!==F),E()}},registerSeparator:F=>{const O=A.current;return O.separators=Fj(f,[...O.separators,F]),E(),()=>{O.separators=O.separators.filter(P=>P!==F),E()}},togglePanelDisabled:(F,O)=>{const P=A.current.panels.find(B=>B.id===F);P&&(P.panelConstraints.disabled=O);const W=YU(w),U=cf(w);W&&U&&Iu(W,{...U,derivedPanelConstraints:zj(W)})},toggleSeparatorDisabled:(F,O)=>{const P=A.current.separators.find(W=>W.id===F);P&&(P.disabled=O)}}),[M,w,E,f,j]),z=_.useRef(null);return Up(()=>{const F=k.current;if(F===null)return;const O=A.current;let P;if(j.defaultLayout!==void 0&&Object.keys(j.defaultLayout).length===O.panels.length){P={};for(const G of O.panels){const D=j.defaultLayout[G.id];D!==void 0&&(P[G.id]=D)}}const W={disabled:!!i,element:F,id:w,mutableState:{defaultLayout:P,disableCursor:!!j.disableCursor,expandedPanelSizes:A.current.lastExpandedPanelSizes,layouts:A.current.layouts},orientation:f,panels:O.panels,resizeTargetMinimumSize:O.resizeTargetMinimumSize,separators:O.separators};z.current=W;const U=tDe(W),{defaultLayoutDeferred:B,derivedPanelConstraints:K,layout:V}=cf(W.id,!0);!B&&K.length>0&&(y(V),x(V));const Y=uD(w,G=>{const{defaultLayoutDeferred:D,derivedPanelConstraints:Q,layout:ae}=G.next;if(D||Q.length===0)return;const re=W.panels.map(({id:ue})=>ue).join(",");W.mutableState.layouts[re]=ae,Q.forEach(ue=>{if(ue.collapsible){const{layout:ce}=G.prev??{};if(ce){const ge=Bs(ue.collapsedSize,ae[ue.panelId]),ne=Bs(ue.collapsedSize,ce[ue.panelId]);ge&&!ne&&(W.mutableState.expandedPanelSizes[ue.panelId]=ce[ue.panelId])}}});const he=yp().state!=="active";y(ae),he&&x(ae)});return()=>{z.current=null,U(),Y()}},[i,w,x,y,f,C,j]),_.useEffect(()=>{const F=z.current;F&&(F.mutableState.defaultLayout=n,F.mutableState.disableCursor=!!r)}),c.jsx(ate.Provider,{value:I,children:c.jsx("div",{...g,className:t,"data-group":!0,"data-testid":w,id:w,ref:N,style:{height:"100%",width:"100%",overflow:"hidden",...m,display:"flex",flexDirection:f==="horizontal"?"row":"column",flexWrap:"nowrap",touchAction:f==="horizontal"?"pan-y":"pan-x"},children:e})})}lte.displayName="Group";function vD(){const e=_.useContext(ate);return pr(e,"Group Context not found; did you render a Panel or Separator outside of a Group?"),e}function iDe(e,t){const{id:n}=vD(),r=_.useRef({collapse:pA,expand:pA,getSize:()=>({asPercentage:0,inPixels:0}),isCollapsed:()=>!1,resize:pA});_.useImperativeHandle(t,()=>r.current,[]),Up(()=>{Object.assign(r.current,ete({groupId:n,panelId:e}))})}function cte({children:e,className:t,collapsedSize:n="0%",collapsible:r=!1,defaultSize:i,disabled:s,elementRef:o,groupResizeBehavior:a="preserve-relative-size",id:l,maxSize:u="100%",minSize:f="0%",onResize:p,panelRef:m,style:g,...b}){const y=!!l,x=pD(l),w=gD({disabled:s}),k=_.useRef(null),C=mD(k,o),{getPanelStyles:E,id:A,orientation:N,registerPanel:M,togglePanelDisabled:j}=vD(),I=p!==null,z=Dy((O,P,W)=>{p==null||p(O,l,W)});Up(()=>{const O=k.current;if(O!==null){const P={element:O,id:x,idIsStable:y,mutableValues:{expandToSize:void 0,prevSize:void 0},onResize:I?z:void 0,panelConstraints:{groupResizeBehavior:a,collapsedSize:n,collapsible:r,defaultSize:i,disabled:w.disabled,maxSize:u,minSize:f}};return M(P)}},[a,n,r,i,I,x,y,u,f,z,M,w]),_.useEffect(()=>{j(x,!!s)},[s,x,j]),iDe(x,m);const F=_.useSyncExternalStore(O=>uD(A,O),()=>JSON.stringify(E(A,x)),()=>JSON.stringify(E(A,x)));return c.jsx("div",{...b,"aria-disabled":s||void 0,"data-panel":!0,"data-testid":x,id:x,ref:C,style:{...sDe,display:"flex",flexBasis:0,flexShrink:1,overflow:"visible",...JSON.parse(F)},children:c.jsx("div",{className:t,style:{maxHeight:"100%",maxWidth:"100%",flexGrow:1,overflow:"auto",...g,touchAction:N==="horizontal"?"pan-y":"pan-x"},children:e})})}cte.displayName="Panel";const sDe={minHeight:0,maxHeight:"100%",height:"auto",minWidth:0,maxWidth:"100%",width:"auto",border:"none",borderWidth:0,padding:0,margin:0};function oDe({layout:e,panelConstraints:t,panelId:n,panelIndex:r}){let i,s;const o=e[n],a=t.find(l=>l.panelId===n);if(a){const l=a.maxSize,u=a.collapsible?a.collapsedSize:a.minSize,f=[r,r+1];s=bp({layout:Wx({delta:u-o,initialLayout:e,panelConstraints:t,pivotIndices:f,prevLayout:e}),panelConstraints:t})[n],i=bp({layout:Wx({delta:l-o,initialLayout:e,panelConstraints:t,pivotIndices:f,prevLayout:e}),panelConstraints:t})[n]}return{valueControls:n,valueMax:i,valueMin:s,valueNow:o}}function ute({children:e,className:t,disabled:n,elementRef:r,id:i,style:s,...o}){const a=pD(i),l=gD({disabled:n}),[u,f]=_.useState({}),[p,m]=_.useState("inactive"),g=_.useRef(null),b=mD(g,r),{disableCursor:y,id:x,orientation:w,registerSeparator:k,toggleSeparatorDisabled:C}=vD(),E=w==="horizontal"?"vertical":"horizontal";Up(()=>{const N=g.current;if(N!==null){const M={disabled:l.disabled,element:N,id:a},j=k(M),I=GLe(F=>{m(F.next.state!=="inactive"&&F.next.hitRegions.some(O=>O.separator===M)?F.next.state:"inactive")}),z=uD(x,F=>{const{derivedPanelConstraints:O,layout:P,separatorToPanels:W}=F.next,U=W.get(M);if(U){const B=U[0],K=U.indexOf(B);f(oDe({layout:P,panelConstraints:O,panelId:B.id,panelIndex:K}))}});return()=>{I(),z(),j()}}},[x,a,k,l]),_.useEffect(()=>{C(a,!!n)},[n,a,C]);let A;return n&&!y&&(A="not-allowed"),c.jsx("div",{...o,"aria-controls":u.valueControls,"aria-disabled":n||void 0,"aria-orientation":E,"aria-valuemax":u.valueMax,"aria-valuemin":u.valueMin,"aria-valuenow":u.valueNow,children:e,className:t,"data-separator":n?"disabled":p,"data-testid":a,id:a,ref:b,role:"separator",style:{flexBasis:"auto",cursor:A,...s,flexGrow:0,flexShrink:0,touchAction:"none"},tabIndex:n?void 0:0})}ute.displayName="Separator";const bD=({className:e,...t})=>c.jsx(lte,{className:pe("flex h-full w-full",e),...t}),Vx=e=>c.jsx(cte,{...e}),yD=({withHandle:e,orientation:t,disabled:n,className:r,...i})=>c.jsx(ute,{disabled:n,className:pe("relative flex items-center justify-center bg-transparent focus-visible:outline-none",t==="vertical"?"h-2 w-full -my-1 cursor-row-resize":"h-full w-2 -mx-1 cursor-col-resize",e&&(t==="vertical"?"before:absolute before:inset-x-0 before:top-1/2 before:h-0.5 before:-translate-y-1/2 before:bg-border":"before:absolute before:inset-y-0 before:left-1/2 before:w-px before:-translate-x-1/2 before:bg-border"),r),...i,children:c.jsx("span",{className:"sr-only",children:t==="vertical"?"Resize rows":"Resize columns"})});function dte(e,t,n){const r=typeof e.maxTokens=="number"&&Number.isFinite(e.maxTokens)?e.maxTokens:null,i=r&&r>0?Math.min(100,e.usedTokens/r*100):null,s=r!==null?Math.max(0,Math.round(r-e.usedTokens)):null,o=i!==null?Math.max(0,100-i):null;return{...e,compactsAutomatically:e.compactsAutomatically||n,maxTokens:r??void 0,remainingTokens:s,usedPercentage:i,remainingPercentage:o,updatedAt:t}}function aDe(e){const t=e.some(n=>n.kind==="compact_boundary"||n.kind==="compact_summary"||n.kind==="context_cleared");for(let n=e.length-1;n>=0;n-=1){const r=e[n];if(r&&!(r.kind!=="context_window_updated"||r.usage.usedTokens<=0))return dte(r.usage,new Date(r.createdAt).toISOString(),t)}return null}function lDe(e,t){return!e||t===null||!Number.isFinite(t)||t<=0?e:dte({...e,maxTokens:t},e.updatedAt,e.compactsAutomatically)}function xd(e){return e===void 0||!Number.isFinite(e)||e<0?0:e}function cDe(e,t){let n=0,r=0,i=0,s=0;for(const a of e){if(a.kind!=="result")continue;const l=a.usage;l&&(n+=xd(l.inputTokens),r+=xd(l.outputTokens),i+=xd(l.cachedInputTokens)),s+=xd(a.costUsd??(l==null?void 0:l.costUsd))}for(const a of t){const l=a.usage;l&&(n+=xd(l.inputTokens),r+=xd(l.outputTokens),i+=xd(l.cachedInputTokens),s+=xd(l.costUsd))}if(n===0&&r===0&&i===0&&s===0)return null;const o=n>0?i/n*100:null;return{inputTokens:n,outputTokens:r,cachedTokens:i,costUsd:s,cacheHitPercentage:o}}function uDe(e){return!Number.isFinite(e)||e<=0?"$0.00":e<.01?"<$0.01":`$${e.toFixed(2)}`}function po(e){return e==null||!Number.isFinite(e)?"0":e<1e3?`${Math.round(e)}`:e<1e4?`${(e/1e3).toFixed(1).replace(/\.0$/,"")}k`:e<1e6?`${Math.round(e/1e3)}k`:`${(e/1e6).toFixed(1).replace(/\.0$/,"")}m`}function dDe(e={}){return(e.dom??Et).getInnerWidth()}const Xn=tr()(e=>({typedEmptyStateText:"",isEmptyStateTypingComplete:!1,setTypedEmptyStateText:t=>e({typedEmptyStateText:t}),setIsEmptyStateTypingComplete:t=>e({isEmptyStateTypingComplete:t}),resetEmptyStateTyping:()=>e({typedEmptyStateText:"",isEmptyStateTypingComplete:!1}),isPageFileDragActive:!1,setIsPageFileDragActive:t=>e({isPageFileDragActive:t}),layoutWidth:0,setLayoutWidth:t=>e({layoutWidth:t}),inputHeight:148,setInputHeight:t=>e({inputHeight:t}),viewportWidth:dDe(),setViewportWidth:t=>e({viewportWidth:t}),fixedTerminalHeight:0,setFixedTerminalHeight:t=>e({fixedTerminalHeight:t}),showScrollToBottom:!1,setShowScrollToBottom:t=>e({showScrollToBottom:t}),toolGroupExpanded:{},setToolGroupExpanded:t=>e(n=>({toolGroupExpanded:t(n.toolGroupExpanded)})),resetToolGroupExpanded:()=>e({toolGroupExpanded:{}}),localLinkMenuTarget:null,setLocalLinkMenuTarget:t=>e({localLinkMenuTarget:t}),diffRenderMode:"unified",wrapDiffLines:!1,setDiffRenderMode:t=>e({diffRenderMode:t}),setWrapDiffLines:t=>e({wrapDiffLines:t}),terminalFocusRequestVersion:0,incrementTerminalFocusRequestVersion:()=>e(t=>({terminalFocusRequestVersion:t.terminalFocusRequestVersion+1}))})),xD=[68,32];function fDe(){return{isVisible:!1,mainSizes:[...xD],terminals:[],nextTerminalIndex:0}}function hDe(e,t){return e[t]??fDe()}function mA(e){if(e.length===0)return[];const t=e.reduce((n,r)=>n+Math.max(r,0),0);return!Number.isFinite(t)||t<=0?Array.from({length:e.length},()=>100/e.length):e.map(n=>Math.max(n,0)/t*100)}function pDe(e){let t=e,n="";do n=String.fromCharCode(65+t%26)+n,t=Math.floor(t/26)-1;while(t>=0);return`Terminal ${n}`}function mDe(e){if(e.length===0)return e;const t=e.length+1;return e.map(n=>({...n,size:n.size*e.length/t}))}function Pm(e,t,n){return{...e,[t]:n(hDe(e,t))}}const Rd=tr()(Rv(e=>({projects:{},addTerminal:(t,n)=>e(r=>({projects:Pm(r.projects,t,i=>{var l,u;const s=mDe(i.terminals),o={id:((u=(l=globalThis.crypto)==null?void 0:l.randomUUID)==null?void 0:u.call(l))??`terminal-${Date.now()}-${i.nextTerminalIndex}`,title:pDe(i.nextTerminalIndex),size:100/(s.length+1)},a=n?Math.max(s.findIndex(f=>f.id===n)+1,0):s.length;return{...i,isVisible:!0,nextTerminalIndex:i.nextTerminalIndex+1,terminals:[...s.slice(0,a),o,...s.slice(a)]}})})),removeTerminal:(t,n)=>e(r=>({projects:Pm(r.projects,t,i=>{const s=i.terminals.filter(a=>a.id!==n);if(s.length===0)return{...i,isVisible:!1,terminals:[]};const o=mA(s.map(a=>a.size));return{...i,terminals:s.map((a,l)=>({...a,size:o[l]??100/s.length}))}})})),toggleVisibility:t=>e(n=>({projects:Pm(n.projects,t,r=>({...r,isVisible:r.terminals.length>0?!r.isVisible:!1}))})),resetMainSizes:t=>e(n=>({projects:Pm(n.projects,t,r=>({...r,mainSizes:[...xD]}))})),setMainSizes:(t,n)=>e(r=>{if(n.length!==2)return r;const[i=50,s=50]=mA(n),o=[i,s];return{projects:Pm(r.projects,t,a=>({...a,mainSizes:o}))}}),setTerminalSizes:(t,n)=>e(r=>({projects:Pm(r.projects,t,i=>{if(n.length!==i.terminals.length)return i;const s=mA(n);return{...i,terminals:i.terminals.map((o,a)=>({...o,size:s[a]??o.size}))}})})),clearProject:t=>e(n=>{const{[t]:r,...i}=n.projects;return{projects:i}})}),{name:"terminal-layouts",version:1})),gDe={isVisible:!1,mainSizes:[...xD],terminals:[],nextTerminalIndex:0},vDe=35;function bDe(e,t){return!Number.isFinite(e)||e<=0||!Number.isFinite(t)||t<=0?0:e*(t/100)}function yDe(e,t){const n=bDe(e,t);return n>=0&&n<vDe}const bE=350,xDe=[.4,0,.2,1],_De=8,dH=1e-6;function SDe(e,t,n){const r=1-e;return 3*r*r*e*t+3*r*e*e*n+e*e*e}function wDe(e,t,n){const r=1-e;return 3*r*r*e*t+3*r*e*e*n+e*e*e}function CDe(e,t,n){const r=1-e;return 3*r*r*t+6*r*e*(n-t)+3*e*e*(1-n)}function kDe(e,t,n){let r=e;for(let i=0;i<_De;i+=1){const s=SDe(r,t,n)-e;if(Math.abs(s)<dH)return r;const o=CDe(r,t,n);if(Math.abs(o)<dH)break;r-=s/o}return r}function EDe(e){if(e<=0)return 0;if(e>=1)return 1;const[t,n,r,i]=xDe,s=kDe(e,t,r);return wDe(s,n,i)}function fte(e,t,n){const r=EDe(n);return[e[0]+(t[0]-e[0])*r,e[1]+(t[1]-e[1])*r]}function NDe({projectId:e,shouldRenderRightSidebarLayout:t,showRightSidebar:n,rightSidebarSize:r,ports:i}){const s=(i==null?void 0:i.timer)??wr,o=_.useRef(null),a=_.useRef(null),l=_.useRef(null),u=_.useRef(null),f=_.useRef(null),p=_.useRef(!1),m=_.useRef(null),g=_.useRef(!1),b=_.useRef(!1);return _.useEffect(()=>()=>{u.current!==null&&s.cancelAnimationFrame(u.current),f.current!==null&&s.clearTimeout(f.current)},[s]),_.useLayoutEffect(()=>{var I,z,F,O,P,W;if(!t){u.current!==null&&(s.cancelAnimationFrame(u.current),u.current=null),f.current!==null&&(s.clearTimeout(f.current),f.current=null),p.current=!1;return}const y=o.current;if(!y)return;u.current!==null&&(s.cancelAnimationFrame(u.current),u.current=null),f.current!==null&&(s.clearTimeout(f.current),f.current=null);const x=m.current,w=x!==null&&x!==e,k=n&&!b.current,C=!g.current,E=n?[100-r,r]:[100,0],A=w||C&&n,N=k||C?[100,0]:[y.getLayout().workspace??E[0],y.getLayout().rightSidebar??E[1]];if(m.current=e,g.current=t,b.current=n,A||Math.abs(N[0]-E[0])<.1&&Math.abs(N[1]-E[1])<.1){y.setLayout({workspace:E[0],rightSidebar:E[1]}),(I=a.current)==null||I.setAttribute("data-right-sidebar-open",n?"true":"false"),(z=l.current)==null||z.setAttribute("data-right-sidebar-open",n?"true":"false"),(F=l.current)==null||F.setAttribute("data-right-sidebar-animated","false");return}p.current=!0,(O=a.current)==null||O.setAttribute("data-right-sidebar-open",n?"true":"false"),(P=l.current)==null||P.setAttribute("data-right-sidebar-open",n?"true":"false"),(W=l.current)==null||W.setAttribute("data-right-sidebar-animated","true"),y.setLayout({workspace:N[0],rightSidebar:N[1]});const M=performance.now(),j=U=>{const B=Math.min(1,(U-M)/bE),K=fte(N,E,B);if(y.setLayout({workspace:K[0],rightSidebar:K[1]}),B<1){u.current=s.requestAnimationFrame(j);return}y.setLayout({workspace:E[0],rightSidebar:E[1]}),u.current=null,f.current=s.setTimeout(()=>{p.current=!1,f.current=null},0)};u.current=s.requestAnimationFrame(j)},[e,r,t,n,s]),_.useEffect(()=>{t||(g.current=!1,b.current=!1)},[t]),{isAnimating:p,panelGroupRef:o,sidebarPanelRef:a,sidebarVisualRef:l}}function TDe(e){return e.visibilityState==="visible"?e.activeChatId:null}function ADe(e){e.socket.setFocusedChat(TDe({activeChatId:e.activeChatId,visibilityState:e.visibilityState}))}function RDe({socket:e,activeChatId:t,ports:n}){const r=(n==null?void 0:n.dom)??Et;_.useEffect(()=>{const i=()=>{ADe({socket:e,activeChatId:t,visibilityState:r.getVisibilityState()})};i();const s=r.addDocumentListener("visibilitychange",i),o=r.addWindowListener("pagehide",i),a=r.addWindowListener("pageshow",i);return()=>{s(),o(),a(),e.setFocusedChat(null)}},[e,t,r])}const MDe={dom:Et,timer:wr};function jDe({rootRef:e,fallbackRef:t,enabled:n,canCancel:r,ports:i=MDe}){const{dom:s,timer:o}=i;_.useEffect(()=>{if(!n)return;let a=0,l=null;const u=k=>{const C=k instanceof Element?k:null,E=e.current,A=t.current;if(Kz({trigger:"pointer",activeElement:s.getActiveElement(),pointerStartTarget:l,pointerEndTarget:C,root:E,fallback:A,hasActiveOverlay:s.hasFocusOverlay(),hasActiveSelection:Cpe(s.getSelection())})!=="restore"){l=null;return}A==null||A.focus({preventScroll:!0}),l=null},f=k=>{o.cancelAnimationFrame(a),l=k.target instanceof Element?k.target:null},p=k=>{o.cancelAnimationFrame(a),a=o.requestAnimationFrame(()=>{u(k.target)})},m=()=>{l=null;const k=t.current;!k||k.disabled||k.focus({preventScroll:!0})},g=k=>{if(k.key!=="Escape")return;const C=t.current;Kz({trigger:"escape",activeElement:s.getActiveElement(),fallback:C,hasActiveOverlay:s.hasFocusOverlay(),canCancel:r,defaultPrevented:k.defaultPrevented})==="escape-focus"&&(k.preventDefault(),C==null||C.focus({preventScroll:!0}))},b=s.addWindowCaptureListener("pointerdown",f),y=s.addWindowCaptureListener("pointerup",p),x=s.addWindowCaptureListener("keydown",g),w=s.addWindowCustomListener(AI,m);return()=>{o.cancelAnimationFrame(a),b(),y(),x(),w()}},[r,s,n,t,e,o])}function ODe(e){const t=e.previousProjectId!==null&&e.previousProjectId!==e.projectId,n=e.previousProjectId===null&&e.projectId!==null;return!t&&!n&&e.showTerminalPane&&!e.wasTerminalVisible}function IDe({previousProjectId:e,projectId:t,previousShouldRenderTerminalLayout:n,previousShowTerminalPane:r,showTerminalPane:i,terminalLayout:s,liveLayout:o}){const a=e!==null&&e!==t,l=i&&!r,u=!n,f=e===null&&t!==null,p=i?s.mainSizes:[100,0];return{currentLayout:l||u?[100,0]:o,shouldSkipAnimation:a||f&&u,targetLayout:p}}function PDe({chatInputRef:e,projectId:t,shouldRenderTerminalLayout:n,showTerminalPane:r,terminalLayout:i,ports:s}){const o=(s==null?void 0:s.timer)??wr,a=_.useRef(null),l=_.useRef(null),u=_.useRef(null),f=_.useRef(null),p=_.useRef(null),m=_.useRef(!1),g=_.useRef(null),b=_.useRef(!1),y=_.useRef(!1),x=_.useRef(!1),w=Xn(C=>C.terminalFocusRequestVersion),k=Xn(C=>C.incrementTerminalFocusRequestVersion);return _.useEffect(()=>{var A;const C=g.current,E=x.current;ODe({previousProjectId:C,projectId:t,showTerminalPane:r,wasTerminalVisible:E})&&k(),C!==null&&C===t&&!r&&E&&((A=e.current)==null||A.focus({preventScroll:!0})),x.current=r,g.current=t},[e,k,t,r]),_.useEffect(()=>()=>{f.current!==null&&o.cancelAnimationFrame(f.current),p.current!==null&&o.clearTimeout(p.current)},[o]),_.useLayoutEffect(()=>{var z,F,O,P,W,U;if(!n){f.current!==null&&(o.cancelAnimationFrame(f.current),f.current=null),p.current!==null&&(o.clearTimeout(p.current),p.current=null),m.current=!1;return}const C=a.current;if(!C)return;f.current!==null&&(o.cancelAnimationFrame(f.current),f.current=null),p.current!==null&&(o.clearTimeout(p.current),p.current=null);const E=g.current,{currentLayout:A,shouldSkipAnimation:N,targetLayout:M}=IDe({previousProjectId:E,projectId:t,previousShouldRenderTerminalLayout:b.current,previousShowTerminalPane:y.current,showTerminalPane:r,terminalLayout:i,liveLayout:[C.getLayout().chat??i.mainSizes[0],C.getLayout().terminal??i.mainSizes[1]]});if(b.current=n,y.current=r,N||Math.abs(A[0]-M[0])<.1&&Math.abs(A[1]-M[1])<.1){C.setLayout({chat:M[0],terminal:M[1]}),(z=l.current)==null||z.setAttribute("data-terminal-open",r?"true":"false"),(F=u.current)==null||F.setAttribute("data-terminal-open",r?"true":"false"),(O=u.current)==null||O.setAttribute("data-terminal-animated","false");return}m.current=!0,(P=l.current)==null||P.setAttribute("data-terminal-open",r?"true":"false"),(W=u.current)==null||W.setAttribute("data-terminal-open",r?"true":"false"),(U=u.current)==null||U.setAttribute("data-terminal-animated","true"),C.setLayout({chat:A[0],terminal:A[1]});const j=performance.now(),I=B=>{const K=Math.min(1,(B-j)/bE),V=fte(A,M,K);if(C.setLayout({chat:V[0],terminal:V[1]}),K<1){f.current=o.requestAnimationFrame(I);return}C.setLayout({chat:M[0],terminal:M[1]}),f.current=null,p.current=o.setTimeout(()=>{m.current=!1,p.current=null},0)};f.current=o.requestAnimationFrame(I)},[t,n,r,i,o]),_.useEffect(()=>{n||(b.current=!1,y.current=!1)},[n]),{isAnimating:m,mainPanelGroupRef:a,terminalFocusRequestVersion:w,terminalPanelRef:l,terminalVisualRef:u}}const fH=e=>Symbol.iterator in e,hH=e=>"entries"in e,pH=(e,t)=>{const n=e instanceof Map?e:new Map(e.entries()),r=t instanceof Map?t:new Map(t.entries());if(n.size!==r.size)return!1;for(const[i,s]of n)if(!r.has(i)||!Object.is(s,r.get(i)))return!1;return!0},LDe=(e,t)=>{const n=e[Symbol.iterator](),r=t[Symbol.iterator]();let i=n.next(),s=r.next();for(;!i.done&&!s.done;){if(!Object.is(i.value,s.value))return!1;i=n.next(),s=r.next()}return!!i.done&&!!s.done};function DDe(e,t){return Object.is(e,t)?!0:typeof e!="object"||e===null||typeof t!="object"||t===null||Object.getPrototypeOf(e)!==Object.getPrototypeOf(t)?!1:fH(e)&&fH(t)?hH(e)&&hH(t)?pH(e,t):LDe(e,t):pH({entries:()=>Object.entries(e)},{entries:()=>Object.entries(t)})}function kg(e){const t=Wn.useRef(void 0);return n=>{const r=e(n);return DDe(t.current,r)?t.current:t.current=r}}function Ub(){var e;return((e=Hr.getState().settings)==null?void 0:e.customModels)??[]}const $y="__new__";function Lm(e,t){var o,a;const n=(o=e==null?void 0:e.modelOptions)==null?void 0:o.reasoningEffort;let r;zC(n)?r=n:zC(e==null?void 0:e.effort)?r=e.effort:r=Wo.reasoningEffort;const i=Uxe(e==null?void 0:e.model,void 0,t),s=mP(i,(a=e==null?void 0:e.modelOptions)==null?void 0:a.contextWindow,t);return{model:i,modelOptions:{reasoningEffort:!KG(i,t)&&r==="max"?"high":r,contextWindow:s},planMode:!!(e!=null&&e.planMode)}}function dw(e,t){var i,s;const n=(i=e==null?void 0:e.modelOptions)==null?void 0:i.reasoningEffort;let r;return FC(n)?r=n:FC(e==null?void 0:e.effort)?r=e.effort:r=of.reasoningEffort,{model:Hxe(e==null?void 0:e.model,void 0,t),modelOptions:{reasoningEffort:r,fastMode:typeof((s=e==null?void 0:e.modelOptions)==null?void 0:s.fastMode)=="boolean"?e.modelOptions.fastMode:of.fastMode},planMode:!!(e!=null&&e.planMode)}}function $De(){return{claude:{model:"claude-opus-4-7",modelOptions:{...Wo},planMode:!1},codex:{model:"gpt-5.5",modelOptions:{...of},planMode:!1},openrouter:{model:yk,modelOptions:{},planMode:!1}}}function zDe(e,t){return e.reasoningEffort===t.reasoningEffort&&e.contextWindow===t.contextWindow}function FDe(e,t){return e.reasoningEffort===t.reasoningEffort&&e.fastMode===t.fastMode}function BDe(e,t){return e.claude.model===t.claude.model&&e.claude.planMode===t.claude.planMode&&zDe(e.claude.modelOptions,t.claude.modelOptions)&&e.codex.model===t.codex.model&&e.codex.planMode===t.codex.planMode&&FDe(e.codex.modelOptions,t.codex.modelOptions)&&e.openrouter.model===t.openrouter.model&&e.openrouter.planMode===t.openrouter.planMode}function UDe(e,t){if(t===void 0){vo.info(`[chat-preferences] ${e}`);return}vo.info(`[chat-preferences] ${e}`,t)}function zy(e,t){if(e==="claude"){const r=t.claude;return{provider:"claude",model:r.model,modelOptions:{...r.modelOptions},planMode:r.planMode}}if(e==="openrouter"){const r=t.openrouter;return{provider:"openrouter",model:r.model,modelOptions:{...r.modelOptions},planMode:r.planMode}}const n=t.codex;return{provider:"codex",model:n.model,modelOptions:{...n.modelOptions},planMode:n.planMode}}function Bj(e){return e.provider==="claude"?{provider:"claude",model:e.model,modelOptions:{...e.modelOptions},planMode:e.planMode}:e.provider==="openrouter"?{provider:"openrouter",model:e.model,modelOptions:{...e.modelOptions},planMode:e.planMode}:{provider:"codex",model:e.model,modelOptions:{...e.modelOptions},planMode:e.planMode}}function hte(e){return e.providerHint?zy(e.providerHint,e.providerDefaults):e.defaultProvider==="last_used"?e.sourceState?Bj(e.sourceState):zy("claude",e.providerDefaults):zy(e.defaultProvider,e.providerDefaults)}function pte(e,t){const n=e.chatStates[t];return n||hte({defaultProvider:e.defaultProvider,providerDefaults:e.providerDefaults,legacyComposerState:e.legacyComposerState})}function fw(e,t,n){const r=pte(e,t);return{chatStates:{...e.chatStates,[t]:n(r)}}}const Ws=tr()(Rv((e,t)=>({defaultProvider:"last_used",providerDefaults:$De(),chatStates:{},legacyComposerState:{provider:"claude",model:"claude-opus-4-7",modelOptions:{...Wo},planMode:!1},setDefaultProvider:n=>e({defaultProvider:n}),applyServerDefaults:(n,r)=>e(i=>{if(i.defaultProvider===n&&BDe(i.providerDefaults,r))return{defaultProvider:n,providerDefaults:r};const{[$y]:o,...a}=i.chatStates;return{defaultProvider:n,providerDefaults:r,chatStates:a}}),setProviderDefaultModel:(n,r)=>e(i=>{const s=Ub();return n==="claude"?{providerDefaults:{...i.providerDefaults,[n]:Lm({...i.providerDefaults.claude,model:r},s)}}:n==="openrouter"?{providerDefaults:{...i.providerDefaults,[n]:{...i.providerDefaults.openrouter,model:r}}}:{providerDefaults:{...i.providerDefaults,[n]:dw({...i.providerDefaults.codex,model:r},s)}}}),setProviderDefaultModelOptions:(n,r)=>e(i=>{const s=Ub();if(n==="claude"){const a=r;return{providerDefaults:{...i.providerDefaults,[n]:Lm({...i.providerDefaults.claude,modelOptions:{...i.providerDefaults.claude.modelOptions,...a}},s)}}}if(n==="openrouter")return{providerDefaults:{...i.providerDefaults,[n]:{...i.providerDefaults.openrouter,modelOptions:{}}}};const o=r;return{providerDefaults:{...i.providerDefaults,[n]:dw({...i.providerDefaults.codex,modelOptions:{...i.providerDefaults.codex.modelOptions,...o}},s)}}}),setProviderDefaultPlanMode:(n,r)=>e(i=>({providerDefaults:{...i.providerDefaults,[n]:{...i.providerDefaults[n],planMode:r}}})),getComposerState:n=>Bj(pte(t(),n)),initializeComposerForChat:(n,r)=>e(i=>{if(i.chatStates[n])return i;const s=hte({defaultProvider:i.defaultProvider,providerDefaults:i.providerDefaults,sourceState:r==null?void 0:r.sourceState,legacyComposerState:i.legacyComposerState,providerHint:r==null?void 0:r.providerHint});return UDe("initializeComposerForChat",{chatId:n,composerState:s}),{chatStates:{...i.chatStates,[n]:s}}}),setComposerState:(n,r)=>e(i=>{const s=Ub();return{chatStates:{...i.chatStates,[n]:r.provider==="claude"?{provider:"claude",model:Lm(r,s).model,modelOptions:Lm(r,s).modelOptions,planMode:r.planMode}:Bj(r)}}}),setChatComposerProvider:(n,r)=>e(i=>fw(i,n,()=>zy(r,i.providerDefaults))),setChatComposerModel:(n,r)=>e(i=>fw(i,n,s=>{const o=Ub();if(s.provider==="claude"){const a=Lm({...s,model:r},o);return{provider:"claude",model:a.model,modelOptions:a.modelOptions,planMode:s.planMode}}return s.provider==="openrouter"?{provider:"openrouter",model:r,modelOptions:{},planMode:s.planMode}:{provider:"codex",model:r,modelOptions:dw({...s,model:r},o).modelOptions,planMode:s.planMode}})),setChatComposerModelOptions:(n,r)=>e(i=>fw(i,n,s=>{const o=Ub();if(s.provider==="claude"){const l=r;return{provider:"claude",model:s.model,modelOptions:Lm({...s,modelOptions:{...s.modelOptions,...l}},o).modelOptions,planMode:s.planMode}}if(s.provider==="openrouter")return{provider:"openrouter",model:s.model,modelOptions:{},planMode:s.planMode};const a=r;return{provider:"codex",model:s.model,modelOptions:dw({...s,modelOptions:{...s.modelOptions,...a}},o).modelOptions,planMode:s.planMode}})),setChatComposerPlanMode:(n,r)=>e(i=>fw(i,n,s=>({...s,planMode:r}))),resetChatComposerFromProvider:(n,r)=>e(i=>({chatStates:{...i.chatStates,[n]:zy(r,i.providerDefaults)}}))}),{name:"chat-preferences-state",version:1,partialize:e=>({chatStates:e.chatStates,legacyComposerState:e.legacyComposerState})}));function HDe(e){return e===void 0?null:typeof e=="string"?e?{text:e}:null:e.text||e.lexicalState?e:null}const Uj=tr()(Rv((e,t)=>({drafts:{},attachmentDrafts:{},setDraft:(n,r,i)=>e(s=>{let o;if(typeof r=="string"){if(!r){const{[n]:a,...l}=s.drafts;return{drafts:l}}o={text:r}}else{const a=i??"";if(!a){const{[n]:l,...u}=s.drafts;return{drafts:u}}o={text:a,lexicalState:r}}return{drafts:{...s.drafts,[n]:o}}}),clearDraft:n=>e(r=>{const{[n]:i,...s}=r.drafts;return{drafts:s}}),getDraft:n=>HDe(t().drafts[n]),setAttachmentDrafts:(n,r)=>e(i=>{if(r.length===0){const{[n]:s,...o}=i.attachmentDrafts;return{attachmentDrafts:o}}return{attachmentDrafts:{...i.attachmentDrafts,[n]:r}}}),clearAttachmentDrafts:n=>e(r=>{const{[n]:i,...s}=r.attachmentDrafts;return{attachmentDrafts:s}}),getAttachmentDrafts:n=>t().attachmentDrafts[n]??[]}),{name:"chat-input-drafts"})),_D=tr()(e=>({byChatId:{},loadingByChatId:{},setForChat:(t,n)=>e(r=>({byChatId:{...r.byChatId,[t]:n}})),setLoadingForChat:(t,n)=>e(r=>(r.loadingByChatId[t]??!1)===n?r:{loadingByChatId:{...r.loadingByChatId,[t]:n}}),clear:t=>e(n=>{const r=t in n.byChatId,i=t in n.loadingByChatId;if(!r&&!i)return n;const{[t]:s,...o}=n.byChatId,{[t]:a,...l}=n.loadingByChatId;return{byChatId:o,loadingByChatId:l}})}));function WDe(e){return{autoResumeOnRateLimit:!!(e!=null&&e.autoResumeOnRateLimit)}}const Hj=tr()(Rv(e=>({autoResumeOnRateLimit:!1,setAutoResumeOnRateLimit:t=>e({autoResumeOnRateLimit:t})}),{name:"kanna-preferences",version:1,migrate:e=>WDe(e)})),VDe="kanna",KDe=`mcp__${VDe}__preview_file`;function oh(e){return Ji(e)?e:null}function Hb(e){if(typeof e!="string")return e;try{return JSON.parse(e)}catch{return e}}function GDe(e){let t;Ji(e)&&"content"in e&&Array.isArray(e.content)?t=e.content:Array.isArray(e)?t=e:t=[];const n=[];for(const r of t)if(!(!r||typeof r!="object"||!("type"in r))){if(r.type==="text"&&"text"in r&&typeof r.text=="string"){n.push({type:"text",text:r.text});continue}if(r.type==="image"){if("data"in r&&typeof r.data=="string"){n.push({type:"image",data:r.data,mimeType:"mimeType"in r&&typeof r.mimeType=="string"?r.mimeType:void 0});continue}"source"in r&&r.source&&typeof r.source=="object"&&"type"in r.source&&r.source.type==="base64"&&"data"in r.source&&typeof r.source.data=="string"&&n.push({type:"image",data:r.source.data,mimeType:"media_type"in r.source&&typeof r.source.media_type=="string"?r.source.media_type:void 0})}}return n}function hw(e){let t;if(Ji(e)&&"content"in e&&Array.isArray(e.content)?t=e.content:Array.isArray(e)?t=e:t=null,!t)return null;const n=[];for(const r of t)r&&typeof r=="object"&&"type"in r&&r.type==="text"&&"text"in r&&typeof r.text=="string"&&n.push(r.text);return n.length>0?n.join(""):null}function qDe(e,t){var r;const n=Hb(t);switch(e.toolKind){case"ask_user_question":{const i=hw(n),s=i!==null?Hb(i):n,o=oh(s),a=oh(o==null?void 0:o.answers)??(o||{}),l={};for(const[u,f]of Object.entries(a))Array.isArray(f)?l[u]=f.map(p=>String(p)):Ji(f)&&Array.isArray(f.answers)?l[u]=f.answers.map(p=>String(p)):f==null||f===""?l[u]=[]:l[u]=[String(f)];return{answers:l,...(o==null?void 0:o.discarded)===!0?{discarded:!0}:{}}}case"exit_plan_mode":{const i=hw(n),s=i!==null?Hb(i):n,o=oh(s);return{confirmed:typeof(o==null?void 0:o.confirmed)=="boolean"?o.confirmed:void 0,clearContext:typeof(o==null?void 0:o.clearContext)=="boolean"?o.clearContext:void 0,message:typeof(o==null?void 0:o.message)=="string"?o.message:void 0,...(o==null?void 0:o.discarded)===!0?{discarded:!0}:{}}}case"offer_download":{const i=hw(n),s=i?Hb(i):n,o=oh(s);let a;return typeof(o==null?void 0:o.displayName)=="string"?a=o.displayName:typeof(o==null?void 0:o.fileName)=="string"?a=o.fileName:a="",{contentUrl:typeof(o==null?void 0:o.contentUrl)=="string"?o.contentUrl:"",relativePath:typeof(o==null?void 0:o.relativePath)=="string"?o.relativePath:"",fileName:typeof(o==null?void 0:o.fileName)=="string"?o.fileName:"",displayName:a,size:typeof(o==null?void 0:o.size)=="number"?o.size:0,...typeof(o==null?void 0:o.mimeType)=="string"?{mimeType:o.mimeType}:{}}}case"preview_file":{const i=hw(n),s=i?Hb(i):n,o=oh(s);let a;return typeof(o==null?void 0:o.displayName)=="string"?a=o.displayName:typeof(o==null?void 0:o.fileName)=="string"?a=o.fileName:a="",{contentUrl:typeof(o==null?void 0:o.contentUrl)=="string"?o.contentUrl:"",relativePath:typeof(o==null?void 0:o.relativePath)=="string"?o.relativePath:"",fileName:typeof(o==null?void 0:o.fileName)=="string"?o.fileName:"",displayName:a,size:typeof(o==null?void 0:o.size)=="number"?o.size:0,mimeType:typeof(o==null?void 0:o.mimeType)=="string"?o.mimeType:"application/octet-stream"}}case"image_generation":{const i=oh(n);return{contentUrl:typeof(i==null?void 0:i.contentUrl)=="string"?i.contentUrl:"",relativePath:typeof(i==null?void 0:i.relativePath)=="string"?i.relativePath:"",fileName:typeof(i==null?void 0:i.fileName)=="string"?i.fileName:""}}case"workflow":{const i=typeof t=="string"?t:"";return{taskId:(r=i.match(/Task ID:\s*(\S+)/))==null?void 0:r[1],text:i}}case"read_file":{if(typeof n=="string")return n;const i=GDe(n);if(i.length>0)return{content:i.flatMap(o=>o.type==="text"?[o.text]:[]).join(""),blocks:i};const s=oh(n);return{content:typeof(s==null?void 0:s.content)=="string"?s.content:JSON.stringify(n,null,2)}}default:return n}}function YDe(e){return e.kind==="tool"}function mte(e){return new Date(e).toISOString()}function Pi(e){return{id:e._id,messageId:e.messageId,timestamp:mte(e.createdAt),hidden:e.hidden}}function XDe(e){return{id:e._id,messageId:e.messageId,hidden:e.hidden,kind:"tool",toolKind:e.tool.toolKind,toolName:e.tool.toolName,toolId:e.tool.toolId,input:e.tool.input,timestamp:mte(e.createdAt)}}function QDe(e){if(e.debugRaw)try{const t=JSON.parse(e.debugRaw);return(t==null?void 0:t.tool_use_result)??void 0}catch{return}}function Dl(e){return typeof e=="number"?e:void 0}function pw(e){return typeof e=="string"?e:void 0}function JDe(e){if(!Ji(e))return;const t=e,n={readCount:Dl(t.readCount),searchCount:Dl(t.searchCount),bashCount:Dl(t.bashCount),editFileCount:Dl(t.editFileCount),linesAdded:Dl(t.linesAdded),linesRemoved:Dl(t.linesRemoved),otherToolCount:Dl(t.otherToolCount)};return Object.values(n).some(r=>r!==void 0)?n:void 0}function ZDe(e){if(!e.debugRaw)return;let t;try{t=JSON.parse(e.debugRaw).toolUseResult}catch{return}if(!Ji(t))return;const n=t,r={agentId:pw(n.agentId),agentType:pw(n.agentType),status:pw(n.status),totalTokens:Dl(n.totalTokens),totalDurationMs:Dl(n.totalDurationMs),totalToolUseCount:Dl(n.totalToolUseCount),toolStats:JDe(n.toolStats),content:pw(n.content)};return r.agentId!==void 0||r.agentType!==void 0||r.totalTokens!==void 0||r.totalDurationMs!==void 0||r.status!==void 0?r:void 0}function yE(e){const t=new Map,n=[];for(const r of e)switch(r.kind){case"user_prompt":n.push({...Pi(r),kind:"user_prompt",content:r.content,attachments:r.attachments??[],steered:r.steered,autoContinue:r.autoContinue});break;case"system_init":n.push({...Pi(r),kind:"system_init",provider:r.provider,model:r.model,tools:r.tools,agents:r.agents,slashCommands:r.slashCommands,mcpServers:r.mcpServers,debugRaw:r.debugRaw});break;case"account_info":n.push({...Pi(r),kind:"account_info",accountInfo:r.accountInfo});break;case"assistant_text":n.push({...Pi(r),kind:"assistant_text",text:r.text});break;case"assistant_thinking":n.push({...Pi(r),kind:"assistant_thinking",text:r.text,signature:r.signature});break;case"api_error":n.push({...Pi(r),kind:"api_error",status:r.status,text:r.text,requestId:r.requestId});break;case"policy_refusal":n.push({...Pi(r),kind:"policy_refusal",text:r.text,requestId:r.requestId});break;case"tool_call":{const i=XDe(r);t.set(r.tool.toolId,{hydrated:i,normalized:r.tool}),YDe(i)&&n.push(i);break}case"tool_result":{const i=t.get(r.toolId);if(i){const s=i.normalized.toolKind==="ask_user_question"||i.normalized.toolKind==="exit_plan_mode"?QDe(r)??r.content:r.content;i.normalized.toolKind==="subagent_task"?i.hydrated.result=ZDe(r):i.hydrated.result=qDe(i.normalized,s),i.hydrated.rawResult=s,i.hydrated.isError=r.isError,r.persisted&&(i.hydrated.persisted=r.persisted)}break}case"result":n.push({...Pi(r),kind:"result",success:!r.isError,cancelled:r.subtype==="cancelled",result:r.result,durationMs:r.durationMs,costUsd:r.costUsd});break;case"status":n.push({...Pi(r),kind:"status",status:r.status});break;case"context_window_updated":n.push({...Pi(r),kind:"context_window_updated",usage:r.usage});break;case"compact_boundary":n.push({...Pi(r),kind:"compact_boundary"});break;case"compact_summary":n.push({...Pi(r),kind:"compact_summary",summary:r.summary});break;case"context_cleared":n.push({...Pi(r),kind:"context_cleared"});break;case"interrupted":n.push({...Pi(r),kind:"interrupted"});break;case"memory_loaded":n.push({...Pi(r),kind:"memory_loaded",path:r.path});break;case"auto_continue_prompt":n.push({...Pi(r),kind:"auto_continue_prompt",scheduleId:r.scheduleId});break;case"pending_tool_request":n.push({...Pi(r),kind:"pending_tool_request",toolRequestId:r.toolRequestId,toolName:r.toolName,arguments:r.arguments});break;case"tool_request_resolved":break;default:n.push({...Pi(r),kind:"unknown",json:JSON.stringify(r,null,2)});break}return n}function gte(e){return e.kind==="tool"}const e5e=["AskUserQuestion","ExitPlanMode","TodoWrite"],t5e=new Set(["TodoWrite"]);function n5e(e,t){for(let n=e.length-1;n>=0;n-=1){const r=e[n];if(gte(r)&&r.toolName===t&&!r.result)return r.id}return null}function r5e(e,t){for(let n=e.length-1;n>=0;n-=1){const r=e[n];if(gte(r)&&r.toolName===t)return r.id}return null}function i5e(e){const t={};for(const n of e5e)t[n]=t5e.has(n)?r5e(e,n):n5e(e,n);return t}function s5e(e){return e==="starting"||e==="running"||e==="waiting_for_user"}function o5e(e){return e==="starting"||e==="running"||e==="waiting_for_user"}const SD="pushDeviceId";function vte(e={}){return(e.storage??pc).getItem(SD)}function a5e(e,t={}){(t.storage??pc).setItem(SD,e)}function l5e(e={}){(e.storage??pc).removeItem(SD)}function c5e(e,t){return!(!t.isSupported()||!e.isServiceWorkerSupported()||!e.isPushManagerSupported())}function u5e(e){if(e.isSecureContext())return!0;const t=e.getHostname();return t==="localhost"||t==="127.0.0.1"||t==="::1"}function wD(e={}){const t=e.dom??Et,n=e.notification??dQ;if(!c5e(t,n))return{state:"unsupported"};if(!u5e(t))return{state:"insecure-context"};switch(n.getPermission()){case"granted":return{state:"granted"};case"denied":return{state:"denied"};default:return{state:"default"}}}function d5e(e){if(typeof Buffer<"u")return new Uint8Array(Buffer.from(e,"base64url"));const t="=".repeat((4-e.length%4)%4),n=(e+t).replace(/-/g,"+").replace(/_/g,"/"),r=atob(n),i=new Uint8Array(r.length);for(let s=0;s<r.length;s+=1)i[s]=r.charCodeAt(s);return i}function f5e(e){const t=e||"";return/iPhone|iPad/i.test(t)?"iPhone / iPad":/Android/i.test(t)?"Android":/Macintosh/i.test(t)?"Mac":/Windows/i.test(t)?"Windows PC":t||"Browser"}async function h5e(e){const t=e.dom??Et,n=e.notification??dQ,r=wD({dom:t,notification:n});if(r.state==="unsupported")throw new Error("Push not supported in this browser");if(r.state==="insecure-context")throw new Error("Push requires a secure context (HTTPS)");if(r.state==="denied")throw new Error("Notification permission previously denied");if(await n.requestPermission()!=="granted")throw new Error("Notification permission was not granted");const s=await t.registerServiceWorker("/sw.js");await t.getReadyServiceWorkerRegistration();const o=await s.pushManager.subscribe({userVisibleOnly:!0,applicationServerKey:d5e(e.vapidPublicKey)}),a=o.toJSON(),l=a.endpoint??o.endpoint,u=a.keys??{};if(!l||!u.p256dh||!u.auth)throw new Error("Subscription returned without endpoint or keys");const f=t.getUserAgent()??"",{id:p}=await e.sendToServer({subscription:{endpoint:l,keys:{p256dh:u.p256dh,auth:u.auth}},label:f5e(f),userAgent:f});return p}async function p5e(e){const r=await(await(e.dom??Et).getReadyServiceWorkerRegistration()).pushManager.getSubscription();r&&await r.unsubscribe(),await e.sendToServer(e.pushDeviceId)}const m5e={CONNECTING:WebSocket.CONNECTING,OPEN:WebSocket.OPEN,CLOSING:WebSocket.CLOSING,CLOSED:WebSocket.CLOSED,create(e){return new WebSocket(e)}},g5e=25e3,v5e=15e3,b5e=4e3,mH="kanna:profile-send-to-starting";class y5e{constructor(t,n={}){H(this,"url");H(this,"ws",null);H(this,"started",!1);H(this,"reconnectTimer",null);H(this,"reconnectDelayMs",750);H(this,"subscriptions",new Map);H(this,"pending",new Map);H(this,"outboundQueue",[]);H(this,"statusListeners",new Set);H(this,"heartbeatTimer",null);H(this,"pingTimeoutTimer",null);H(this,"pingPromise",null);H(this,"lastOpenAt",0);H(this,"lastMessageAt",0);H(this,"reconnectImmediatelyOnClose",!1);H(this,"serviceWorkerCleanup",null);H(this,"dom");H(this,"timer");H(this,"localStore");H(this,"sessStore");H(this,"wsBridge");H(this,"handleWindowFocus",()=>{this.ensureHealthyConnection()});H(this,"handleVisibilityChange",()=>{if(this.dom.getVisibilityState()==="visible"){this.startHeartbeat(),this.ensureHealthyConnection();return}this.stopHeartbeat()});H(this,"handleOnline",()=>{this.ensureHealthyConnection()});this.url=t,this.dom=n.dom??Et,this.timer=n.timer??wr,this.localStore=n.localStorage??pc,this.sessStore=n.sessionStorage??_k,this.wsBridge=n.webSocket??m5e}start(){this.started||(this.started=!0,this.serviceWorkerCleanup=this.dom.addServiceWorkerMessageListener(t=>{const n=t.data;(n==null?void 0:n.type)==="kanna.navigate"&&typeof n.url=="string"&&this.dom.setHref(n.url)}),this.dom.addWindowListener("focus",this.handleWindowFocus),this.dom.addWindowListener("online",this.handleOnline),this.dom.addDocumentListener("visibilitychange",this.handleVisibilityChange),this.connect())}dispose(){var t;this.started=!1,this.reconnectTimer&&(this.timer.clearTimeout(this.reconnectTimer),this.reconnectTimer=null),this.stopHeartbeat(),this.clearPingState(),this.serviceWorkerCleanup&&(this.serviceWorkerCleanup(),this.serviceWorkerCleanup=null),(t=this.ws)==null||t.close(),this.ws=null;for(const n of this.pending.values())n.reject(new Error("Socket disposed"));this.pending.clear()}onStatus(t){return this.statusListeners.add(t),t(this.getStatus()),()=>{this.statusListeners.delete(t)}}subscribe(t,n,r){const i=bh(),s={topic:t,listener:n,eventListener:r};return this.subscriptions.set(i,s),this.enqueue({v:1,type:"subscribe",id:i,topic:t}),()=>{this.subscriptions.delete(i),this.enqueue({v:1,type:"unsubscribe",id:i})}}subscribeTerminal(t,n){const r=bh(),i={type:"terminal",terminalId:t},s={topic:i,listener:n.onSnapshot,eventListener:n.onEvent};return this.subscriptions.set(r,s),this.enqueue({v:1,type:"subscribe",id:r,topic:i}),()=>{this.subscriptions.delete(r),this.enqueue({v:1,type:"unsubscribe",id:r})}}command(t){const n=bh(),r={v:1,type:"command",id:n,command:t};return new Promise((i,s)=>{this.pending.set(n,{resolve:i,reject:s}),this.enqueue(r)})}setFocusedChat(t){const n=bh();this.enqueue({v:1,type:"command",id:n,command:{type:"push.setFocusedChat",chatId:t}})}ensureHealthyConnection(){const t=this.wsBridge;return!this.ws||this.ws.readyState===t.CLOSED||this.ws.readyState===t.CLOSING?(this.reconnectNow(),Promise.resolve()):this.ws.readyState===t.CONNECTING||!this.isConnectionStale()?Promise.resolve():this.sendPing()}isSendToStartingProfilingEnabled(){try{return this.sessStore.getItem(mH)==="1"||this.localStore.getItem(mH)==="1"}catch{return!1}}connect(){this.started&&(this.emitStatus("connecting"),this.ws=this.wsBridge.create(this.url),this.ws.addEventListener("open",()=>{this.reconnectDelayMs=750,this.reconnectImmediatelyOnClose=!1,this.lastOpenAt=Date.now(),this.lastMessageAt=this.lastOpenAt,this.emitStatus("connected"),this.startHeartbeat();for(const[n,r]of this.subscriptions.entries())this.sendNow({v:1,type:"subscribe",id:n,topic:r.topic});for(;this.outboundQueue.length>0;){const n=this.outboundQueue.shift();n&&this.sendNow(n)}const t=vte();t&&this.sendNow({v:1,type:"command",id:bh(),command:{type:"push.identifyDevice",pushDeviceId:t}})}),this.ws.addEventListener("message",t=>{var o,a;this.lastMessageAt=Date.now();const n=performance.now(),r=t instanceof MessageEvent?t.data:void 0,i=String(r);let s;try{s=JSON.parse(i)}catch{return}if(this.isSendToStartingProfilingEnabled()&&s.type==="snapshot"&&s.snapshot.type==="chat"&&((o=s.snapshot.data)==null?void 0:o.runtime.status)==="starting"&&vo.debug("[kanna/send->starting][client-ws]",{stage:"socket_message_received",receivedAt:n,payloadBytes:i.length,chatId:s.snapshot.data.runtime.chatId,status:s.snapshot.data.runtime.status,messageCount:s.snapshot.data.messages.length}),this.isSendToStartingProfilingEnabled()&&s.type==="ack"&&vo.debug("[kanna/send->starting][client-ws]",{stage:"socket_ack_received",receivedAt:n,payloadBytes:i.length,commandId:s.id}),s.type==="snapshot"){const l=this.subscriptions.get(s.id);l==null||l.listener(s.snapshot.data);return}if(s.type==="event"){const l=this.subscriptions.get(s.id);(a=l==null?void 0:l.eventListener)==null||a.call(l,s.event);return}if(s.type==="ack"){const l=this.pending.get(s.id);if(!l)return;this.pending.delete(s.id),l.resolve(s.result);return}if(s.type==="error"){if(!s.id){vo.error(Nge,s.message);return}const l=this.pending.get(s.id);if(!l)return;this.pending.delete(s.id),l.reject(new Error(s.message))}}),this.ws.addEventListener("close",()=>{if(!this.started)return;const t=this.reconnectImmediatelyOnClose;this.reconnectImmediatelyOnClose=!1,this.stopHeartbeat(),this.clearPingState(),this.emitStatus("disconnected");for(const n of this.pending.values())n.reject(new Error("Disconnected"));if(this.pending.clear(),t){this.connect();return}this.scheduleReconnect()}))}scheduleReconnect(){this.reconnectTimer===null&&(this.reconnectTimer=this.timer.setTimeout(()=>{this.reconnectTimer=null,this.connect(),this.reconnectDelayMs=Math.min(this.reconnectDelayMs*2,5e3)},this.reconnectDelayMs))}getStatus(){var n,r;const t=this.wsBridge;return((n=this.ws)==null?void 0:n.readyState)===t.OPEN?"connected":((r=this.ws)==null?void 0:r.readyState)===t.CONNECTING?"connecting":"disconnected"}emitStatus(t){for(const n of this.statusListeners)n(t)}isConnectionStale(){const t=Math.max(this.lastMessageAt,this.lastOpenAt);return t>0&&Date.now()-t>=g5e}sendPing(){if(this.pingPromise)return this.pingPromise;const t=this.command({type:"system.ping"}).then(()=>{this.clearPingState()}).catch(n=>{throw this.clearPingState(),this.reconnectNow(),n});return this.pingTimeoutTimer=this.timer.setTimeout(()=>{this.clearPingState(),this.reconnectNow()},b5e),this.pingPromise=t,t}reconnectNow(){const t=this.wsBridge;if(this.reconnectTimer!==null&&(this.timer.clearTimeout(this.reconnectTimer),this.reconnectTimer=null),!this.ws||this.ws.readyState===t.CLOSED){this.connect();return}this.ws.readyState!==t.CONNECTING&&(this.reconnectImmediatelyOnClose=!0,this.ws.close())}startHeartbeat(){this.dom.getVisibilityState()==="visible"&&this.heartbeatTimer===null&&(this.heartbeatTimer=this.timer.setInterval(()=>{var n;if(this.dom.getVisibilityState()!=="visible"){this.stopHeartbeat();return}const t=this.wsBridge;((n=this.ws)==null?void 0:n.readyState)===t.OPEN&&this.ensureHealthyConnection()},v5e))}stopHeartbeat(){this.heartbeatTimer!==null&&(this.timer.clearInterval(this.heartbeatTimer),this.heartbeatTimer=null)}clearPingState(){this.pingTimeoutTimer!==null&&(this.timer.clearTimeout(this.pingTimeoutTimer),this.pingTimeoutTimer=null),this.pingPromise=null}enqueue(t){var r;const n=this.wsBridge;if(((r=this.ws)==null?void 0:r.readyState)===n.OPEN){this.sendNow(t);return}this.outboundQueue.push(t)}sendNow(t){var n;(n=this.ws)==null||n.send(JSON.stringify(t))}}const x5e=[],xE=tr()(e=>({byChat:{},setRuns:(t,n)=>e(r=>({byChat:{...r.byChat,[t]:n}}))}));function CD(e){return t=>t.byChat[e]??x5e}const bte=[],yte=tr()(e=>({runs:bte,setRuns:t=>e({runs:t})}));function _5e(e){return e.runs??bte}const S5e=[],mw=tr()(e=>({models:S5e,status:"idle",error:null,setLoading:()=>e({status:"loading",error:null}),setModels:t=>e({models:t,status:"ready",error:null}),setError:t=>e({status:"error",error:t})}));function w5e(e,t){const n=[...e];for(const r of t){const i=n[n.length-1];r.kind==="context_window_updated"&&(i==null?void 0:i.kind)==="context_window_updated"?n[n.length-1]=r:n.push(r)}return n}function C5e(e,t,n){let r=e.messages,i=e.runtime,s={};for(const o of t)if(o.kind==="entries.append"){const a=new Set(r.map(p=>p._id)),l=new Map(o.entries.filter(p=>a.has(p._id)).map(p=>[p._id,p])),u=l.size>0?r.map(p=>l.get(p._id)??p):r,f=o.entries.filter(p=>!a.has(p._id));r=f.length>0?w5e(u,f):u}else o.kind==="runtime.set"?i=o.runtime:o.kind==="sections.set"?s={...s,...o.sections}:r=[...r.filter(a=>a.kind!=="pending_tool_request"),...o.entries];return{...e,...s,runtime:i,messages:r,seq:n}}const k5e=[],E5e=[],N5e={},T5e={starredProjectGroups:[],projectGroups:[],stacks:[]};function A5e(e={}){return(e.storage??_k).getItem("kanna:ui-update-restart")}const ve=tr()(e=>({sidebarData:T5e,optimisticSidebarProjectOrder:null,localProjects:null,updateSnapshot:null,uiRestartPhase:A5e(),chatSnapshot:null,olderHistoryEntries:E5e,isHistoryLoading:!1,historyCursor:null,hasOlderHistory:!1,projectDiffSnapshots:N5e,keybindings:null,appSettings:null,pushConfig:null,llmProvider:null,connectionStatus:"connecting",sidebarReady:!1,localProjectsReady:!1,chatReady:!1,selectedProjectId:null,sidebarOpen:!1,sidebarCollapsed:!1,addProjectModalOpen:!1,commandError:null,startingLocalPath:null,pendingChatId:null,optimisticUserPrompts:k5e,optimisticProcessing:null,focusEpoch:0,chatResyncNonce:0,setSidebarData:t=>e({sidebarData:t}),setOptimisticSidebarProjectOrder:t=>e(n=>({optimisticSidebarProjectOrder:typeof t=="function"?t(n.optimisticSidebarProjectOrder):t})),setLocalProjects:t=>e({localProjects:t}),setUpdateSnapshot:t=>e({updateSnapshot:t}),setUiRestartPhase:t=>e({uiRestartPhase:t}),setChatSnapshot:t=>e(n=>({chatSnapshot:typeof t=="function"?t(n.chatSnapshot):t})),setOlderHistoryEntries:t=>e(n=>({olderHistoryEntries:typeof t=="function"?t(n.olderHistoryEntries):t})),setIsHistoryLoading:t=>e({isHistoryLoading:t}),setHistoryCursor:t=>e({historyCursor:t}),setHasOlderHistory:t=>e({hasOlderHistory:t}),setProjectDiffSnapshots:t=>e(n=>({projectDiffSnapshots:typeof t=="function"?t(n.projectDiffSnapshots):t})),setKeybindings:t=>e({keybindings:t}),setAppSettings:t=>e({appSettings:t}),setPushConfig:t=>e({pushConfig:t}),setLlmProvider:t=>e({llmProvider:t}),setConnectionStatus:t=>e({connectionStatus:t}),setSidebarReady:t=>e({sidebarReady:t}),setLocalProjectsReady:t=>e({localProjectsReady:t}),setChatReady:t=>e({chatReady:t}),setSelectedProjectId:t=>e({selectedProjectId:t}),setSidebarOpen:t=>e({sidebarOpen:t}),setSidebarCollapsed:t=>e({sidebarCollapsed:t}),setAddProjectModalOpen:t=>e({addProjectModalOpen:t}),setCommandError:t=>e({commandError:t}),setStartingLocalPath:t=>e({startingLocalPath:t}),setPendingChatId:t=>e({pendingChatId:t}),setOptimisticUserPrompts:t=>e(n=>({optimisticUserPrompts:typeof t=="function"?t(n.optimisticUserPrompts):t})),setOptimisticProcessing:t=>e(n=>({optimisticProcessing:typeof t=="function"?t(n.optimisticProcessing):t})),incrementFocusEpoch:()=>e(t=>({focusEpoch:t.focusEpoch+1})),applyChatOpsEvent:(t,n)=>{let r="stale";return e(i=>{const s=i.chatSnapshot;return!s||n.chatId!==t||s.runtime.chatId!==n.chatId?(r="stale",{}):s.seq===void 0?(r="gap",{}):n.toSeq<=s.seq?(r="stale",{}):n.fromSeq>s.seq+1?(r="gap",{}):(r="applied",{chatSnapshot:C5e(s,n.ops,n.toSeq)})}),r},bumpChatResyncNonce:()=>e(t=>({chatResyncNonce:t.chatResyncNonce+1}))}));async function kD(e,t=mc){const n=await t.getJson("/auth/status",{cache:"no-store",signal:e});return n.ok?n.data:{}}async function R5e(e,t=mc){const n={password:e.password};return e.next&&(n.next=e.next),(await t.postJson("/auth/login",n)).ok}async function M5e(e=mc){await e.postJson("/auth/logout",{})}function j5e(e,t){const n=["claude","codex","openrouter"];for(const r of n)if(e[r]!==t[r])return!1;return!0}function O5e(e,t){return e===t?!0:!e||!t?!1:e.chatId===t.chatId&&e.projectId===t.projectId&&e.localPath===t.localPath&&e.title===t.title&&e.status===t.status&&e.isDraining===t.isDraining&&e.provider===t.provider&&e.planMode===t.planMode&&j5e(e.sessionTokensByProvider,t.sessionTokensByProvider)}function I5e(e,t){return e===t?!0:!e||!t||e.length!==t.length?!1:e.every((n,r)=>{var i;return n._id===((i=t[r])==null?void 0:i._id)})}function P5e(e,t){return t.length===0?e:e.map(n=>n.id!=="openrouter"?n:{...n,models:t.map(r=>({id:r.id,label:r.label,supportsEffort:!1}))})}function L5e(e,t){return e===t?!0:!e||!t||e.length!==t.length?!1:e.every((n,r)=>{var i;return n.id===((i=t[r])==null?void 0:i.id)})}function D5e(e,t){return e===t?!0:!e||!t?!1:e.hasOlder===t.hasOlder&&e.olderCursor===t.olderCursor&&e.recentLimit===t.recentLimit}function $5e(e,t){return e.id===t.id&&e.content===t.content&&e.createdAt===t.createdAt&&e.provider===t.provider&&e.model===t.model&&e.planMode===t.planMode&&JSON.stringify(e.modelOptions)===JSON.stringify(t.modelOptions)&&z5e(e.attachments,t.attachments)}function z5e(e,t){return e===t?!0:e.length!==t.length?!1:e.every((n,r)=>{const i=t[r];return!!i&&n.id===i.id&&n.kind===i.kind&&n.displayName===i.displayName&&n.absolutePath===i.absolutePath&&n.relativePath===i.relativePath&&n.contentUrl===i.contentUrl&&n.mimeType===i.mimeType&&n.size===i.size})}function F5e(e,t){return e===t?!0:!e||!t||e.length!==t.length?!1:e.every((n,r)=>$5e(n,t[r]))}function B5e(e,t){var s,o;if(e===t)return!0;if(!e||!t||e.status!==t.status||e.branchName!==t.branchName||e.defaultBranchName!==t.defaultBranchName||e.hasOriginRemote!==t.hasOriginRemote||e.originRepoSlug!==t.originRepoSlug||e.hasUpstream!==t.hasUpstream||e.aheadCount!==t.aheadCount||e.behindCount!==t.behindCount||e.lastFetchedAt!==t.lastFetchedAt)return!1;const n=((s=e.branchHistory)==null?void 0:s.entries)??[],r=((o=t.branchHistory)==null?void 0:o.entries)??[];return n.length!==r.length||!n.every((a,l)=>{const u=r[l];return!!u&&a.sha===u.sha&&a.summary===u.summary&&a.description===u.description&&a.authorName===u.authorName&&a.authoredAt===u.authoredAt&&a.githubUrl===u.githubUrl&&a.tags.length===u.tags.length&&a.tags.every((f,p)=>f===u.tags[p])})||e.files.length!==t.files.length?!1:e.files.every((a,l)=>{const u=t.files[l];return!!u&&a.path===u.path&&a.changeType===u.changeType&&a.isUntracked===u.isUntracked&&a.additions===u.additions&&a.deletions===u.deletions&&a.patchDigest===u.patchDigest&&a.mimeType===u.mimeType&&a.size===u.size})}function U5e(e,t){return!!(e&&e.status!=="unknown"&&t&&t.status==="unknown"&&t.files.length===0)}function H5e(e,t){if(e===t)return!0;if(!e||!t)return!1;const n=Object.keys(e),r=Object.keys(t);return n.length!==r.length?!1:n.every(i=>{const s=e[i],o=t[i];return!s||!o?!1:s.state===o.state&&s.scheduledAt===o.scheduledAt&&s.resetAt===o.resetAt&&s.detectedAt===o.detectedAt&&s.tz===o.tz})}function W5e(e,t){if(e===t)return!0;if(!e||!t)return!1;const n=Object.keys(e),r=Object.keys(t);return n.length!==r.length?!1:n.every(i=>{const s=e[i],o=t[i];return!s||!o?!1:s.state===o.state&&s.url===o.url&&s.error===o.error&&s.port===o.port&&s.activatedAt===o.activatedAt&&s.stoppedAt===o.stoppedAt})}function V5e(e,t){if(e===t)return!0;if(!e||!t)return!1;const n=Object.keys(e),r=Object.keys(t);return n.length!==r.length?!1:n.every(i=>{var a,l,u,f,p,m;const s=e[i],o=t[i];return!s||!o?!1:s.status===o.status&&s.entries.length===o.entries.length&&(s.finalText??"")===(o.finalText??"")&&(((a=s.pendingTool)==null?void 0:a.toolUseId)??null)===(((l=o.pendingTool)==null?void 0:l.toolUseId)??null)&&(((u=s.usage)==null?void 0:u.outputTokens)??null)===(((f=o.usage)==null?void 0:f.outputTokens)??null)&&s.finishedAt===o.finishedAt&&(((p=s.error)==null?void 0:p.code)??null)===(((m=o.error)==null?void 0:m.code)??null)})}function K5e(e,t){if(e===t)return!0;if(e.armed!==t.armed||e.rows.length!==t.rows.length||!e.rows.every((s,o)=>{const a=t.rows[o];return a!=null&&s.runId===a.runId&&s.status===a.status&&s.label===a.label}))return!1;const r=e.rateLimit,i=t.rateLimit;return r==null!=(i==null)?!1:r&&i?r.resetAt===i.resetAt&&r.scheduled===i.scheduled:!0}function G5e(e,t){return e===t?!0:!e||!t?!1:O5e(e.runtime,t.runtime)&&F5e(e.queuedMessages,t.queuedMessages)&&I5e(e.messages,t.messages)&&D5e(e.history,t.history)&&L5e(e.availableProviders,t.availableProviders)&&H5e(e.schedules,t.schedules)&&e.liveScheduleId===t.liveScheduleId&&W5e(e.tunnels,t.tunnels)&&e.liveTunnelId===t.liveTunnelId&&V5e(e.subagentRuns,t.subagentRuns)&&K5e(e.loopProgress,t.loopProgress)}function gH(e,t){const n=new Map;for(const r of e)n.set(r._id,r);for(const r of t)n.set(r._id,r);return[...n.values()]}function q5e(e){for(let t=e.length-1;t>=0;t-=1){const n=e[t];if((n==null?void 0:n.kind)==="user_prompt"&&n.content.trim().length>0)return n.content}return null}const vH="__new_chat__",xte="lever-theme",_te="chat-sound-preferences",Ste="terminal-preferences",wte="chat-preferences";function gA(e,t){const n=t.getItem(e);if(!n)return null;try{const r=JSON.parse(n);return Ji(r.state)?r.state:null}catch{return null}}function Y5e(e){const t={},n=e.getItem(xte);(n==="light"||n==="dark"||n==="system")&&(t.theme=n);const r=gA(_te,e);((r==null?void 0:r.chatSoundPreference)==="never"||(r==null?void 0:r.chatSoundPreference)==="unfocused"||(r==null?void 0:r.chatSoundPreference)==="always")&&(t.chatSoundPreference=r.chatSoundPreference),((r==null?void 0:r.chatSoundId)==="blow"||(r==null?void 0:r.chatSoundId)==="bottle"||(r==null?void 0:r.chatSoundId)==="frog"||(r==null?void 0:r.chatSoundId)==="funk"||(r==null?void 0:r.chatSoundId)==="glass"||(r==null?void 0:r.chatSoundId)==="ping"||(r==null?void 0:r.chatSoundId)==="pop"||(r==null?void 0:r.chatSoundId)==="purr"||(r==null?void 0:r.chatSoundId)==="tink")&&(t.chatSoundId=r.chatSoundId);const i=gA(Ste,e);if(i){t.terminal={},typeof i.scrollbackLines=="number"&&(t.terminal.scrollbackLines=i.scrollbackLines),typeof i.minColumnWidth=="number"&&(t.terminal.minColumnWidth=i.minColumnWidth);const o={};(i.editorPreset==="cursor"||i.editorPreset==="vscode"||i.editorPreset==="xcode"||i.editorPreset==="windsurf"||i.editorPreset==="custom")&&(o.preset=i.editorPreset),typeof i.editorCommandTemplate=="string"&&(o.commandTemplate=i.editorCommandTemplate),Object.keys(o).length>0&&(t.editor=o)}const s=gA(wte,e);if(((s==null?void 0:s.defaultProvider)==="last_used"||(s==null?void 0:s.defaultProvider)==="claude"||(s==null?void 0:s.defaultProvider)==="codex")&&(t.defaultProvider=s.defaultProvider),Ji(s==null?void 0:s.providerDefaults)){const o=s.providerDefaults;t.providerDefaults=o}return t.browserSettingsMigrated=!0,Object.keys(t).length>1?t:null}function X5e(e){e.removeItem(xte),e.removeItem(_te),e.removeItem(Ste),e.removeItem(wte)}function Wb(e){Hr.getState().setFromServer(e);const t=zs.getState();t.setScrollbackLines(e.terminal.scrollbackLines),t.setMinColumnWidth(e.terminal.minColumnWidth),t.setEditorPreset(e.editor.preset),t.setEditorCommandTemplate(e.editor.commandTemplate);const n=Nh.getState();n.setChatSoundPreference(e.chatSoundPreference),n.setChatSoundId(e.chatSoundId),Ws.getState().applyServerDefaults(e.defaultProvider,e.providerDefaults)}function Q5e(e){return JSON.stringify({id:e.id,kind:e.kind,displayName:e.displayName,relativePath:e.relativePath,mimeType:e.mimeType,size:e.size,contentUrl:e.contentUrl})}function ED(e,t=[]){return JSON.stringify({content:e,attachments:t.map(Q5e)})}function J5e(e,t){return e.reduce((n,r)=>r.kind!=="user_prompt"?n:n+(ED(r.content,r.attachments??[])===t?1:0),0)}function Z5e(e,t,n){const r=new Map;for(const i of n){if(i.kind!=="user_prompt")continue;const s=ED(i.content,i.attachments??[]);r.set(s,(r.get(s)??0)+1)}return e.filter(i=>i.scopeId!==t?!0:(r.get(i.signature)??0)<i.requiredMatchCount)}function e3e(e,t,n){return e.some(r=>r.id===t)?e.filter(r=>r.id!==t):e}const t3e=200,n3e=500;function bH(e,t){var r;const n=e.find(i=>i.chats.some(s=>s.chatId===t));return n?((r=n.chats.find(i=>i.chatId!==t))==null?void 0:r.chatId)??null:null}function yH(e,t){if(!(t!=null&&t.length)||e.length<=1)return e;const n=new Map(e.map((o,a)=>[o.groupKey,a])),r=new Set,i=t.map(o=>{if(r.has(o))return null;r.add(o);const a=n.get(o);return a===void 0?null:e[a]}).filter(o=>!!o);if(i.length===0)return e;const s=[...i,...e.filter(o=>!r.has(o.groupKey))];return s.every((o,a)=>o===e[a])?e:s}function r3e(e){const t=e??Et;return t.getVisibilityState()==="visible"&&t.hasFocus()}function i3e(e){const t=e.getHref(),n=t.startsWith("https://")?"wss:":"ws:",r=new URL(t);return`${n}//${r.host}/ws`}function s3e(e){const t=_.useMemo(()=>new y5e(i3e(e.dom),e),[]);return _.useEffect(()=>(t.start(),()=>{t.dispose()}),[t]),t}const xH="kanna:profile-send-to-starting";function o3e(e,t){try{return e.getItem(xH)==="1"||t.getItem(xH)==="1"}catch{return!1}}function Cte(e){return Number((performance.now()-e).toFixed(1))}function _d(e,t,n,r=_k,i=pc){!e||!o3e(r,i)||vo.debug("[kanna/send->starting][client]",{traceId:e.traceId,stage:t,elapsedMs:Cte(e.startedAt),serverChatId:e.serverChatId,routeChatIdAtSend:e.routeChatIdAtSend,...n})}function a3e(e){var t,n;return(e==null?void 0:e.provider)==="claude"&&e.model&&((t=e.modelOptions)!=null&&t.claude)?{provider:"claude",model:e.model,modelOptions:{reasoningEffort:e.modelOptions.claude.reasoningEffort??"high",contextWindow:e.modelOptions.claude.contextWindow??"200k"},planMode:!!e.planMode}:(e==null?void 0:e.provider)==="codex"&&e.model&&((n=e.modelOptions)!=null&&n.codex)?{provider:"codex",model:e.model,modelOptions:{reasoningEffort:e.modelOptions.codex.reasoningEffort??"high",fastMode:e.modelOptions.codex.fastMode??!1},planMode:!!e.planMode}:null}function l3e(e,t){var n;return t?((n=e.find(r=>r.chats.some(i=>i.chatId===t)))==null?void 0:n.groupKey)??null:null}function c3e(e,t){return e==="awaiting_disconnect"&&t==="disconnected"?"awaiting_server_ready":"none"}function u3e(e,t){return t==="updating"||t==="restart_pending"?{active:!0,label:"Installing update"}:e==="awaiting_disconnect"||e==="awaiting_server_ready"?{active:!0,label:"Re-deploying Kanna"}:{active:!1,label:""}}const d3e=30,ND="kanna:ui-update-restart",kte="kanna:last-update-reload-request";function f3e(e){return e+d3e}function h3e(e,t){return t>0?t:e}function _H(e){return e.getItem(ND)}function p3e(e,t){t.setItem(ND,e)}function m3e(e){e.removeItem(ND)}function g3e(e,t){return e?String(e)!==t:!1}function v3e(e){return e.getItem(kte)}function b3e(e,t){t.setItem(kte,String(e))}async function y3e(e){const t=await kD(e);return Object.keys(t).length>0}function x3e(e){const t=e.selectedProjectId??e.sidebarProjectId??null;return t?{kind:"project_id",projectId:t}:e.fallbackLocalProjectPath?{kind:"local_path",localPath:e.fallbackLocalProjectPath}:null}function _3e(e,t){return!e||!t?null:e.runtime.chatId!==t?(e.runtime.chatId,e.runtime.provider,null):e}function S3e(e,t={}){var wl,to,ta;const n=t.localStore??pc,r=t.sessStore??_k,i=t.dom??Et,s=t.timer??wr,o=t.clipboard??yl,a=Sf(),l=s3e({dom:i,timer:s,localStorage:n,sessionStorage:r}),u=p_(),f=ve(q=>q.sidebarData),p=ve(q=>q.optimisticSidebarProjectOrder),m=ve(q=>q.localProjects),g=ve(q=>q.updateSnapshot),b=ve(q=>q.uiRestartPhase),y=_.useCallback(q=>{p3e(q,r),ve.getState().setUiRestartPhase(q)},[r]),x=_.useCallback(()=>{m3e(r),ve.getState().setUiRestartPhase(null)},[r]),w=ve(q=>q.chatSnapshot),k=ve(q=>q.chatResyncNonce),C=ve(q=>q.olderHistoryEntries),E=ve(q=>q.isHistoryLoading),A=ve(q=>q.historyCursor),N=ve(q=>q.hasOlderHistory),M=ve(q=>q.projectDiffSnapshots),j=ve(q=>q.keybindings),I=ve(q=>q.appSettings),z=ve(q=>q.pushConfig),F=ve(q=>q.llmProvider),O=ve(q=>q.connectionStatus),P=ve(q=>q.sidebarReady),W=ve(q=>q.localProjectsReady),U=ve(q=>q.chatReady),B=ve(q=>q.selectedProjectId),K=ve(q=>q.sidebarOpen),V=ve(q=>q.sidebarCollapsed),Y=ve(q=>q.addProjectModalOpen),G=ve(q=>q.commandError),D=ve(q=>q.startingLocalPath),Q=ve(q=>q.pendingChatId),ae=ve(q=>q.optimisticUserPrompts),re=ve(q=>q.optimisticProcessing),he=ve(q=>q.focusEpoch),ue=_.useRef(new Map),ce=Uj(kg(q=>Object.keys(q.drafts).sort())),ge=Uj(kg(q=>Object.keys(q.attachmentDrafts).sort())),ne=_.useRef(0),le=_.useRef(null),te=_.useRef({projectId:null,diffs:null}),we=E_e(zs(q=>q.editorPreset)),se=_.useMemo(()=>yH(f.projectGroups,p),[p,f.projectGroups]),Pe=_.useRef(se);_.useLayoutEffect(()=>{Pe.current=se});const Fe=_.useMemo(()=>se===f.projectGroups?f:{...f,projectGroups:se},[f,se]);_.useEffect(()=>l.onStatus(q=>ve.getState().setConnectionStatus(q)),[l]),_.useEffect(()=>l.subscribe({type:"sidebar"},q=>{const J=ve.getState();J.setSidebarData(q),J.setOptimisticSidebarProjectOrder(ye=>ye&&yH(q.projectGroups,ye)===q.projectGroups?null:ye),J.setSidebarReady(!0),J.setCommandError(null)}),[l]),_.useEffect(()=>{if(O!=="connected")return;const q=[...new Set([...ce,...ge])].sort();l.command({type:"chat.setDraftProtection",chatIds:q}).catch(J=>{ve.getState().setCommandError(J instanceof Error?J.message:String(J))})},[ge,O,ce,l]),_.useEffect(()=>l.subscribe({type:"local-projects"},q=>{const J=ve.getState();J.setLocalProjects(q),J.setLocalProjectsReady(!0),J.setCommandError(null)}),[l]),_.useEffect(()=>l.subscribe({type:"update"},q=>{const J=ve.getState();J.setUpdateSnapshot(q),J.setCommandError(null)}),[l]),_.useEffect(()=>{O==="connected"&&l.command({type:"update.check",force:!0}).catch(q=>{ve.getState().setCommandError(q instanceof Error?q.message:String(q))})},[O,l]),_.useEffect(()=>{const q=g==null?void 0:g.reloadRequestedAt;g3e(q,v3e(r))&&q&&(b3e(q,r),y("awaiting_disconnect"))},[y,r,g==null?void 0:g.reloadRequestedAt]),_.useEffect(()=>{const q=_H(r);c3e(q,O)==="awaiting_server_ready"&&y("awaiting_server_ready")},[O,y,r]),_.useEffect(()=>{if(_H(r)!=="awaiting_server_ready")return;let q=!1,J=null;const ye=async()=>{try{if(await y3e()){if(q)return;x(),i.reload();return}}catch{}q||(J=s.setTimeout(()=>{ye()},500))};return ye(),()=>{q=!0,J!==null&&s.clearTimeout(J)}},[x,O,i,r,s]),_.useEffect(()=>{function q(){g!=null&&g.lastCheckedAt&&(Date.now()-g.lastCheckedAt<=3600*1e3||l.command({type:"update.check"}).catch(J=>{ve.getState().setCommandError(J instanceof Error?J.message:String(J))}))}return i.addWindowListener("focus",q)},[i,l,g==null?void 0:g.lastCheckedAt]),_.useEffect(()=>l.subscribe({type:"keybindings"},q=>{const J=ve.getState();J.setKeybindings(q),J.setCommandError(null)}),[l]),_.useEffect(()=>l.subscribe({type:"app-settings"},q=>{const J=ve.getState();J.setAppSettings(q),Wb(q),J.setCommandError(null)}),[l]),_.useEffect(()=>l.subscribe({type:"push-config"},q=>{ve.getState().setPushConfig(q)}),[l]),_.useEffect(()=>l.subscribe({type:"pty-instances"},q=>{cu.getState().applySnapshot(q.instances)},q=>{q.type==="pty-instances.added"?cu.getState().applyDiff({op:"added",instance:q.instance}):q.type==="pty-instances.updated"?cu.getState().applyDiff({op:"updated",instance:q.instance}):cu.getState().applyDiff({op:"removed",chatId:q.chatId})}),[l]);const ht=_.useCallback(async()=>{try{Hr.getState().setHydrationStatus("loading");const q=await l.command({type:"settings.readAppSettings"}),J=ve.getState();J.setAppSettings(q),Wb(q),J.setCommandError(null)}catch(q){Hr.getState().setHydrationStatus("error"),ve.getState().setCommandError(q instanceof Error?q.message:String(q))}},[l]),Dn=_.useCallback(async(q,J)=>{try{await l.command({type:"chat.setPolicyOverride",chatId:q,policyOverride:J}),ve.getState().setCommandError(null)}catch(ye){throw ve.getState().setCommandError(ye instanceof Error?ye.message:String(ye)),ye}},[l]),on=_.useCallback(async q=>{try{Hr.getState().applyOptimisticPatch(q);const J=await l.command({type:"settings.writeAppSettingsPatch",patch:q}),ye=ve.getState();ye.setAppSettings(J),Wb(J),ye.setCommandError(null)}catch(J){throw ve.getState().setCommandError(J instanceof Error?J.message:String(J)),await ht(),J}},[ht,l]),pn=_.useCallback(async q=>{try{await l.command({type:"settings.testMcpServer",id:q}),ve.getState().setCommandError(null)}catch(J){throw ve.getState().setCommandError(J instanceof Error?J.message:String(J)),J}},[l]),nn=_.useCallback(async q=>{try{const J=await l.command({type:"settings.startMcpOAuth",id:q});return ve.getState().setCommandError(null),J}catch(J){const ye=J instanceof Error?J.message:String(J);return ve.getState().setCommandError(ye),{ok:!1,error:ye}}},[l]),Nt=_.useCallback(async(q,J)=>{try{const ye=await l.command({type:"settings.completeMcpOAuth",id:q,callbackUrl:J});return ve.getState().setCommandError(null),ye}catch(ye){const Je=ye instanceof Error?ye.message:String(ye);return ve.getState().setCommandError(Je),{ok:!1,error:Je}}},[l]),Bt=_.useCallback(async q=>{try{Hr.getState().applyOptimisticPatch({cloudflareTunnel:q});const J=await l.command({type:"appSettings.setCloudflareTunnel",patch:q}),ye=ve.getState();ye.setAppSettings(J),Wb(J),ye.setCommandError(null)}catch(J){throw ve.getState().setCommandError(J instanceof Error?J.message:String(J)),await ht(),J}},[ht,l]),xn=_.useCallback(async q=>{try{Hr.getState().applyOptimisticPatch({claudeAuth:q});const J=await l.command({type:"appSettings.setClaudeAuth",patch:q}),ye=ve.getState();ye.setAppSettings(J),Wb(J),ye.setCommandError(null)}catch(J){throw ve.getState().setCommandError(J instanceof Error?J.message:String(J)),await ht(),J}},[ht,l]),St=_.useCallback(async q=>await l.command({type:"appSettings.testOAuthToken",token:q}),[l]),Cn=_.useCallback(async()=>{try{const q=await l.command({type:"settings.readLlmProvider"}),J=ve.getState();J.setLlmProvider(q),J.setCommandError(null)}catch(q){ve.getState().setCommandError(q instanceof Error?q.message:String(q))}},[l]),_n=_.useCallback(async q=>{try{const J=await l.command({type:"settings.writeLlmProvider",provider:q.provider,apiKey:q.apiKey,model:q.model,baseUrl:q.baseUrl}),ye=ve.getState();ye.setLlmProvider(J),ye.setCommandError(null)}catch(J){throw ve.getState().setCommandError(J instanceof Error?J.message:String(J)),J}},[l]),dn=_.useCallback(async q=>await l.command({type:"settings.validateLlmProvider",provider:q.provider,apiKey:q.apiKey,model:q.model,baseUrl:q.baseUrl}),[l]);_.useEffect(()=>{O==="connected"&&ht()},[O,ht]),_.useEffect(()=>{if(O!=="connected")return;mw.getState().setLoading(),l.command({type:"settings.listOpenRouterModels"}).then(J=>{mw.getState().setModels(J)}).catch(J=>{const ye=J instanceof Error?J.message:String(J);mw.getState().setError(ye)})},[O,l]),_.useEffect(()=>{if(O!=="connected"||(I==null?void 0:I.browserSettingsMigrated)!==!1)return;const q=Y5e(n);q&&on(q).then(()=>X5e(n)).catch(()=>{})},[I==null?void 0:I.browserSettingsMigrated,O,on,n]),_.useEffect(()=>{O==="connected"&&Cn()},[O,Cn]),_.useEffect(()=>{function q(){ve.getState().incrementFocusEpoch()}const J=i.addWindowListener("focus",q),ye=i.addDocumentListener("visibilitychange",q);return()=>{J(),ye()}},[i]),_.useEffect(()=>{if(!e){ve.getState().setChatSnapshot(null),ve.getState().setChatReady(!0);return}++ne.current,Pe.current.length,Pe.current.reduce((J,ye)=>J+ye.chats.length,0),ve.getState().setChatSnapshot(null),ve.getState().setChatReady(!1);const q=l.subscribe({type:"chat",chatId:e,recentLimit:t3e},J=>{if(J!=null&&J.runtime.chatId){const Je=[...ue.current.values()].filter(Se=>Se.serverChatId===J.runtime.chatId).sort((Se,$)=>$.startedAt-Se.startedAt)[0];Je&&Je.snapshotAt===void 0&&(Je.snapshotAt=performance.now(),_d(Je,"chat_snapshot_received",{status:J.runtime.status,messageCount:J.messages.length},r,n))}ve.getState().setChatSnapshot(Je=>{const Se=G5e(Je,J);return J==null||J.runtime.chatId,J==null||J.runtime.provider,J==null||J.runtime.status,J==null||J.messages.length,Se?Je&&J&&Je.seq!==J.seq?{...Je,seq:J.seq}:Je:J});const ye=ve.getState();if(ye.setHistoryCursor((J==null?void 0:J.history.olderCursor)??null),ye.setHasOlderHistory((J==null?void 0:J.history.hasOlder)??!1),ye.setChatReady(!0),ye.setCommandError(null),J){const Je=_D.getState();Je.setForChat(J.runtime.chatId,J.slashCommands??[]),Je.setLoadingForChat(J.runtime.chatId,J.slashCommandsLoading??!1)}},J=>{if(J.type!=="chat.ops"||J.chatId!==e)return;ve.getState().applyChatOpsEvent(e,J)==="gap"&&(J.fromSeq,J.toSeq,ve.getState().bumpChatResyncNonce())});return()=>{Pe.current.length,Pe.current.reduce((J,ye)=>J+ye.chats.length,0),q()}},[e,n,r,l,k]),_.useEffect(()=>{if(e)return l.subscribe({type:"workflows",chatId:e},q=>{xE.getState().setRuns(q.chatId,q.runs)})},[e,l]),_.useEffect(()=>l.subscribe({type:"orch-runs"},q=>{yte.getState().setRuns(q.runs)}),[l]),_.useEffect(()=>{if(B)return;const q=se[0];q&&ve.getState().setSelectedProjectId(q.groupKey)},[B,se]),_.useEffect(()=>{if(!e||!P||!U)return;if(se.some(J=>J.chats.some(ye=>ye.chatId===e))){Q===e&&ve.getState().setPendingChatId(null);return}Q!==e&&a("/")},[e,U,a,Q,se,P]),_.useEffect(()=>{w&&(ve.getState().setSelectedProjectId(w.runtime.projectId),Q===w.runtime.chatId&&ve.getState().setPendingChatId(null))},[w,Q]),_.useEffect(()=>{if(!e||!P||!r3e(i))return;const q=se.flatMap(J=>J.chats).find(J=>J.chatId===e);q!=null&&q.unread&&l.command({type:"chat.markRead",chatId:e}).catch(J=>{ve.getState().setCommandError(J instanceof Error?J.message:String(J))})},[e,i,he,se,P,l]),_.useEffect(()=>{const q=ve.getState();q.setOlderHistoryEntries([]),q.setIsHistoryLoading(!1),q.setHistoryCursor(null),q.setHasOlderHistory(!1)},[e]);const rt=_.useMemo(()=>_3e(w,e),[e,w]),kt=_.useMemo(()=>(rt==null?void 0:rt.runtime.projectId)??l3e(se,e)??B,[e,rt==null?void 0:rt.runtime.projectId,B,se]),fn=_.useMemo(()=>{const q=kt?M[kt]??null:null;return kt&&q?(te.current={projectId:kt,diffs:q},q):kt&&te.current.projectId===kt?te.current.diffs:q},[kt,M]);_.useEffect(()=>kt?l.subscribe({type:"project-git",projectId:kt},J=>{ve.getState().setProjectDiffSnapshots(ye=>{const Je=J??null;return U5e(ye[kt]??null,Je)||B5e(ye[kt]??null,Je)?ye:{...ye,[kt]:Je}}),ve.getState().setCommandError(null)}):void 0,[kt,l]),_.useEffect(()=>{w==null||w.runtime.chatId,w==null||w.runtime.provider,rt==null||rt.runtime.chatId,rt==null||rt.runtime.provider},[e,rt,w,Q]);const Xt=_.useMemo(()=>gH(C,(rt==null?void 0:rt.messages)??[]),[rt==null?void 0:rt.messages,C]),Lt=e??vH,Gt=_.useMemo(()=>ae.filter(q=>q.scopeId===Lt).map(q=>q.entry),[Lt,ae]),Qt=_.useMemo(()=>[...Xt,...Gt],[Gt,Xt]),Ut=_.useMemo(()=>yE(Qt),[Qt]),Wt=_.useMemo(()=>q5e(Ut),[Ut]),Jt=_.useMemo(()=>i5e(Ut),[Ut]),Be=(rt==null?void 0:rt.runtime)??null,Ue=(rt==null?void 0:rt.queuedMessages)??[],lt=((re==null?void 0:re.scopeId)===Lt&&(!Be||Be.status==="idle")?"starting":null)??(Be==null?void 0:Be.status)??null,Ke=(rt==null?void 0:rt.availableProviders)??ix,ot=mw(kg(q=>q.models)),Dt=_.useMemo(()=>P5e(Ke,ot),[Ke,ot]),$t=o5e(lt??void 0),zt=s5e(lt??void 0),Zt=(Be==null?void 0:Be.isDraining)??!1,bt=((wl=m==null?void 0:m.projects[0])==null?void 0:wl.localPath)??null,ee=(Be==null?void 0:Be.localPath)??bt??((to=se[0])==null?void 0:to.localPath),Ae=!!(B??(Be==null?void 0:Be.projectId)??((ta=se[0])==null?void 0:ta.groupKey)??bt);_.useEffect(()=>{(re==null?void 0:re.scopeId)===Lt&&Be!=null&&Be.status&&Be.status!=="idle"&&ve.getState().setOptimisticProcessing(null)},[re,Lt,Be==null?void 0:Be.status]),_.useEffect(()=>{if(!(re!=null&&re.ackedAt)||re.scopeId!==Lt||Be!=null&&Be.status&&Be.status!=="idle")return;const q=re.ackedAt,J=s.setTimeout(()=>{ve.getState().setOptimisticProcessing(ye=>(ye==null?void 0:ye.scopeId)===Lt&&ye.ackedAt===q?null:ye)},300);return()=>s.clearTimeout(J)},[re,Lt,Be==null?void 0:Be.status,s]),_.useEffect(()=>{if(!e||(Be==null?void 0:Be.status)!=="starting")return;const q=[...ue.current.values()].filter(J=>J.serverChatId===e).sort((J,ye)=>ye.startedAt-J.startedAt)[0];!q||q.startingStatusAt!==void 0||(q.startingStatusAt=performance.now(),_d(q,"runtime_status_starting",{status:Be.status},r,n))},[e,n,Be==null?void 0:Be.status,r]),_.useEffect(()=>{if(!e||!Be||Be.status==="starting")return;const q=[...ue.current.values()].filter(J=>J.serverChatId===e).sort((J,ye)=>ye.startedAt-J.startedAt)[0];!q||q.startingRenderedAt!==void 0||(_d(q,"starting_not_observed",{status:Be.status},r,n),ue.current.delete(q.traceId))},[e,n,Be,r]),_.useLayoutEffect(()=>{if(!e||(Be==null?void 0:Be.status)!=="starting"){le.current=null;return}const q=[...ue.current.values()].filter(J=>J.serverChatId===e).sort((J,ye)=>ye.startedAt-J.startedAt)[0];q&&le.current!==q.traceId&&(le.current=q.traceId,q.startingRenderedAt=performance.now(),_d(q,"starting_render_committed",{totalMs:Cte(q.startedAt)},r,n),ue.current.delete(q.traceId))},[e,n,Be==null?void 0:Be.status,r]),_.useEffect(()=>{ve.getState().setOptimisticUserPrompts(q=>{const J=Z5e(q,Lt,Xt);return J.length===q.length&&J.every((ye,Je)=>ye===q[Je])?q:J})},[Lt,Xt]);const He=_.useCallback(async()=>{if(!(!e||!A||E||!N)){ve.getState().setIsHistoryLoading(!0);try{const q=await l.command({type:"chat.loadHistory",chatId:e,beforeCursor:A,limit:n3e}),J=ve.getState();J.setOlderHistoryEntries(ye=>gH(q.messages,ye)),J.setHistoryCursor(q.olderCursor),J.setHasOlderHistory(q.hasOlder),J.setCommandError(null)}catch(q){const J=q instanceof Error?q.message:String(q);ve.getState().setCommandError(J)}finally{ve.getState().setIsHistoryLoading(!1)}}},[e,N,A,E,l]),Ge=_.useCallback(async q=>{const J=Ws.getState(),ye=e?J.getComposerState(e):J.getComposerState($y),Je=await l.command({type:"chat.create",projectId:q});J.initializeComposerForChat(Je.chatId,{sourceState:ye});const Se=ve.getState();Se.setSelectedProjectId(q),Se.setPendingChatId(Je.chatId),a(`/chat/${Je.chatId}`),Se.setSidebarOpen(!1),Se.setCommandError(null)},[e,a,l]),Ze=_.useCallback(async q=>q.kind==="project_id"?{projectId:q.projectId}:q.kind==="local_path"?{projectId:(await l.command({type:"project.open",localPath:q.localPath})).projectId,localPath:q.localPath}:{projectId:(await l.command(q.project.mode==="new"?{type:"project.create",localPath:q.project.localPath,title:q.project.title}:{type:"project.open",localPath:q.project.localPath})).projectId,localPath:q.project.localPath},[l]),ft=_.useCallback(async q=>{try{let J;q.kind==="project_id"?J=null:q.kind==="local_path"?J=q.localPath:J=q.project.localPath,J&&ve.getState().setStartingLocalPath(J);const{projectId:ye}=await Ze(q);await Ge(ye)}catch(J){ve.getState().setCommandError(J instanceof Error?J.message:String(J))}finally{ve.getState().setStartingLocalPath(null)}},[Ge,Ze]),wt=_.useCallback(async q=>{await ft({kind:"project_id",projectId:q})},[ft]),Ye=_.useCallback(async q=>{try{const J=await l.command({type:"chat.fork",chatId:q.chatId}),ye=Ws.getState();ye.initializeComposerForChat(J.chatId,{sourceState:ye.getComposerState(q.chatId)});const Je=ve.getState();Je.setPendingChatId(J.chatId),a(`/chat/${J.chatId}`),Je.setSidebarOpen(!1),Je.setCommandError(null)}catch(J){ve.getState().setCommandError(J instanceof Error?J.message:String(J))}},[a,l]),Vt=_.useCallback(async q=>{await ft({kind:"local_path",localPath:q})},[ft]),Xe=_.useCallback(async q=>{await ft({kind:"project_request",project:q})},[ft]),Tt=_.useCallback(async q=>{try{await l.command({type:"update.check",force:q==null?void 0:q.force}),ve.getState().setCommandError(null)}catch(J){ve.getState().setCommandError(J instanceof Error?J.message:String(J))}},[l]),ln=_.useCallback(async q=>{y("awaiting_disconnect");try{const J=await l.command({type:"update.install",version:q});if(!J.ok){x(),ve.getState().setCommandError(null),await u.alert({title:J.userTitle??"Update failed",description:J.userMessage??"Kanna could not install the update. Try again later.",closeLabel:"OK"});return}if(J.ok&&J.action==="reload"){i.reload();return}ve.getState().setCommandError(null)}catch(J){x(),ve.getState().setCommandError(J instanceof Error?J.message:String(J))}},[x,u,i,y,l]),Or=_.useCallback(async()=>{y("awaiting_disconnect");try{const q=await l.command({type:"update.reload"});if(!q.ok){x(),ve.getState().setCommandError(null),await u.alert({title:q.userTitle??"Re-deploy failed",description:q.userMessage??"Kanna could not re-deploy. Try again later.",closeLabel:"OK"});return}if(q.action==="reload"){i.reload();return}ve.getState().setCommandError(null)}catch(q){x(),ve.getState().setCommandError(q instanceof Error?q.message:String(q))}},[x,u,i,y,l]),br=_.useCallback(async()=>{try{await M5e(),ve.getState().setCommandError(null),i.reload()}catch(q){ve.getState().setCommandError(q instanceof Error?q.message:String(q))}},[i]),nr=_.useCallback(async(q,J)=>{var Cl;const ye=(J==null?void 0:J.attachments)??[],Je=bh(),Se=bh(),$=ED(q,ye),Ee=e??vH;ve.getState().setOptimisticProcessing({scopeId:Ee,ackedAt:null});const Ht={traceId:Se,optimisticId:Je,startedAt:performance.now(),serverChatId:e,routeChatIdAtSend:e,contentPreview:q.slice(0,80)};ue.current.set(Se,Ht),_d(Ht,"handle_send_called",{optimisticScopeId:Ee,attachments:ye.length,contentLength:q.length,contentPreview:Ht.contentPreview},r,n);const yi=J5e(Xt,$)+ae.filter(lr=>lr.scopeId===Ee&&lr.signature===$).length+1;ve.getState().setOptimisticUserPrompts(lr=>[...lr,{id:Je,scopeId:Ee,signature:$,requiredMatchCount:yi,entry:{_id:`optimistic:${Je}`,kind:"user_prompt",content:q,attachments:ye,createdAt:Date.now()}}]),_d(Ht,"optimistic_prompt_added",{optimisticId:Je,optimisticScopeId:Ee},r,n);try{let lr=B??((Cl=se[0])==null?void 0:Cl.groupKey)??null;if(!e&&!lr&&bt&&(lr=(await l.command({type:"project.open",localPath:bt})).projectId,ve.getState().setSelectedProjectId(lr)),!e&&!lr)throw new Error("Open a project first");const Ms=Hj.getState().autoResumeOnRateLimit,rs=await l.command({type:"chat.send",chatId:e??void 0,projectId:e?void 0:lr??void 0,clientTraceId:Se,provider:J==null?void 0:J.provider,content:q,attachments:ye,model:J==null?void 0:J.model,modelOptions:J==null?void 0:J.modelOptions,planMode:J==null?void 0:J.planMode,autoResumeOnRateLimit:Ms});if(Ht.ackAt=performance.now(),Ht.serverChatId=rs.chatId??Ht.serverChatId,rs.queued?(ve.getState().setOptimisticUserPrompts(js=>e3e(js,Je,{queued:!0})),ve.getState().setOptimisticProcessing(null)):ve.getState().setOptimisticProcessing(js=>js&&{scopeId:!e&&rs.chatId?rs.chatId:js.scopeId,ackedAt:performance.now()}),_d(Ht,"chat_send_ack_received",{resultChatId:rs.chatId??null,queued:rs.queued??!1},r,n),!e&&rs.chatId){ve.getState().setOptimisticUserPrompts(Ha=>Ha.map(If=>If.id===Je?{...If,scopeId:rs.chatId}:If));const js=Ws.getState();js.setComposerState(rs.chatId,a3e(J)??js.getComposerState($y)),ve.getState().setPendingChatId(rs.chatId),a(`/chat/${rs.chatId}`)}ve.getState().setCommandError(null)}catch(lr){throw ve.getState().setOptimisticUserPrompts(Ms=>Ms.filter(rs=>rs.id!==Je)),ve.getState().setOptimisticProcessing(null),_d(Ht,"handle_send_failed",{error:lr instanceof Error?lr.message:String(lr)},r,n),ue.current.delete(Se),ve.getState().setCommandError(lr instanceof Error?lr.message:String(lr)),lr}},[e,bt,n,a,ae,B,Xt,r,se,l]),Fr=_.useCallback(async q=>{if(!e)return;const J=e;ve.getState().setOptimisticProcessing({scopeId:J,ackedAt:null});try{await l.command({type:"message.steer",chatId:e,queuedMessageId:q}),ve.getState().setOptimisticProcessing(ye=>(ye==null?void 0:ye.scopeId)===J?{scopeId:J,ackedAt:performance.now()}:ye),ve.getState().setCommandError(null)}catch(ye){ve.getState().setOptimisticProcessing(null),ve.getState().setCommandError(ye instanceof Error?ye.message:String(ye))}},[e,l]),Bn=_.useCallback(async q=>{if(e)try{await l.command({type:"message.dequeue",chatId:e,queuedMessageId:q}),ve.getState().setCommandError(null)}catch(J){ve.getState().setCommandError(J instanceof Error?J.message:String(J))}},[e,l]),At=_.useCallback(async()=>{if(e)try{await l.command({type:"chat.cancel",chatId:e})}catch(q){ve.getState().setCommandError(q instanceof Error?q.message:String(q))}},[e,l]),ke=_.useCallback(async()=>{if(e)try{await l.command({type:"chat.stopDraining",chatId:e})}catch(q){ve.getState().setCommandError(q instanceof Error?q.message:String(q))}},[e,l]),Ct=_.useCallback(async q=>{const J=await u.prompt({title:"Rename Chat",initialValue:q.title,confirmLabel:"Rename"});if(!(!J||J===q.title))try{await l.command({type:"chat.rename",chatId:q.chatId,title:J}),ve.getState().setCommandError(null)}catch(ye){ve.getState().setCommandError(ye instanceof Error?ye.message:String(ye))}},[u,l]),Vn=_.useCallback(async q=>{if(await u.confirm({title:"Delete Chat",description:`Delete "${q.title}"? This cannot be undone.`,confirmLabel:"Delete",confirmVariant:"destructive"}))try{if(await l.command({type:"chat.delete",chatId:q.chatId}),q.chatId===e){const ye=bH(se,q.chatId);a(ye?`/chat/${ye}`:"/")}}catch(ye){ve.getState().setCommandError(ye instanceof Error?ye.message:String(ye))}},[e,u,a,se,l]),Ir=_.useCallback(async q=>{try{if(await l.command({type:"chat.archive",chatId:q.chatId}),q.chatId===e){const J=bH(se,q.chatId);a(J?`/chat/${J}`:"/")}ve.getState().setCommandError(null)}catch(J){ve.getState().setCommandError(J instanceof Error?J.message:String(J))}},[e,a,se,l]),Tr=_.useCallback(async q=>{try{ve.getState().setPendingChatId(q),await l.command({type:"chat.unarchive",chatId:q}),a(`/chat/${q}`),ve.getState().setCommandError(null)}catch(J){ve.getState().setPendingChatId(null),ve.getState().setCommandError(J instanceof Error?J.message:String(J))}},[a,l]),de=_.useCallback(async q=>{try{await l.command({type:"project.remove",projectId:q}),Rd.getState().clearProject(q),uo.getState().clearProject(q),(Be==null?void 0:Be.projectId)===q&&a("/"),ve.getState().setCommandError(null)}catch(J){ve.getState().setCommandError(J instanceof Error?J.message:String(J))}},[a,Be,l]),nt=_.useCallback(async(q,J)=>{try{await l.command({type:"project.setStar",projectId:q,starred:J}),ve.getState().setCommandError(null)}catch(ye){ve.getState().setCommandError(ye instanceof Error?ye.message:String(ye))}},[l]),yt=_.useCallback(async q=>{ve.getState().setOptimisticSidebarProjectOrder(q);try{await l.command({type:"sidebar.reorderProjectGroups",projectIds:q}),ve.getState().setCommandError(null)}catch(J){ve.getState().setOptimisticSidebarProjectOrder(null),ve.getState().setCommandError(J instanceof Error?J.message:String(J))}},[l]),rn=_.useCallback(async(q,J)=>{try{await l.command({type:"stack.create",title:q,projectIds:J}),ve.getState().setCommandError(null)}catch(ye){ve.getState().setCommandError(ye instanceof Error?ye.message:String(ye))}},[l]),$n=_.useCallback(async(q,J)=>{try{await l.command({type:"stack.rename",stackId:q,title:J}),ve.getState().setCommandError(null)}catch(ye){ve.getState().setCommandError(ye instanceof Error?ye.message:String(ye))}},[l]),mn=_.useCallback(async q=>{try{await l.command({type:"stack.remove",stackId:q}),ve.getState().setCommandError(null)}catch(J){ve.getState().setCommandError(J instanceof Error?J.message:String(J))}},[l]),zn=_.useCallback(async(q,J)=>{try{await l.command({type:"stack.addProject",stackId:q,projectId:J}),ve.getState().setCommandError(null)}catch(ye){ve.getState().setCommandError(ye instanceof Error?ye.message:String(ye))}},[l]),si=_.useCallback(async(q,J)=>{try{await l.command({type:"stack.removeProject",stackId:q,projectId:J}),ve.getState().setCommandError(null)}catch(ye){ve.getState().setCommandError(ye instanceof Error?ye.message:String(ye))}},[l]),Rs=_.useCallback(async(q,J,ye)=>{try{const Je=Ws.getState(),Se=e?Je.getComposerState(e):Je.getComposerState($y),$=await l.command({type:"chat.create",projectId:q,stackId:J,stackBindings:ye});Je.initializeComposerForChat($.chatId,{sourceState:Se});const Ee=ve.getState();Ee.setSelectedProjectId(q),Ee.setPendingChatId($.chatId),a(`/chat/${$.chatId}`),Ee.setSidebarOpen(!1),Ee.setCommandError(null)}catch(Je){ve.getState().setCommandError(Je instanceof Error?Je.message:String(Je))}},[e,a,l]),Rt=_.useCallback(async q=>{try{const J=await l.command({type:"stack.listWorktrees",projectId:q});return ve.getState().setCommandError(null),J.worktrees}catch(J){return ve.getState().setCommandError(J instanceof Error?J.message:String(J)),[]}},[l]),Mn=_.useCallback(async()=>await l.command({type:"sessions.importClaude"}),[l]),Pn=_.useCallback(async q=>{const J=zs.getState();ve.getState().setCommandError(null),await l.command({type:"system.openExternal",...q,editor:q.action==="open_editor"?q.editor??{preset:J.editorPreset,commandTemplate:J.editorCommandTemplate}:void 0})},[l]),Jn=_.useCallback(async(q,J)=>{var Je,Se;const ye=(Be==null?void 0:Be.localPath)??((Je=m==null?void 0:m.projects[0])==null?void 0:Je.localPath)??((Se=se[0])==null?void 0:Se.localPath);if(ye)try{await Pn({action:q,localPath:ye,editor:J})}catch($){ve.getState().setCommandError($ instanceof Error?$.message:String($))}},[m==null?void 0:m.projects,Pn,Be==null?void 0:Be.localPath,se]),$a=_.useCallback(async q=>{try{await o.writeText(q),ve.getState().setCommandError(null)}catch(J){ve.getState().setCommandError(J instanceof Error?J.message:String(J))}},[o]),za=_.useCallback(async(q,J="open_editor",ye)=>{try{await Pn({action:J,localPath:q.path,line:q.line,column:q.column,editor:ye})}catch(Je){ve.getState().setCommandError(Je instanceof Error?Je.message:String(Je))}},[Pn]),No=_.useCallback(async(q,J)=>{try{await Pn({action:q,localPath:J})}catch(ye){ve.getState().setCommandError(ye instanceof Error?ye.message:String(ye))}},[Pn]),xl=_.useCallback(()=>{var J;const q=x3e({selectedProjectId:B,sidebarProjectId:(J=se[0])==null?void 0:J.groupKey,fallbackLocalProjectPath:bt});if(q){ft(q);return}a("/")},[bt,a,B,se,ft]),Fa=_.useCallback(()=>ve.getState().setSidebarOpen(!0),[]),Zs=_.useCallback(()=>ve.getState().setSidebarOpen(!1),[]),bi=_.useCallback(()=>ve.getState().setSidebarCollapsed(!0),[]),_l=_.useCallback(()=>ve.getState().setSidebarCollapsed(!1),[]),vc=_.useCallback(()=>ve.getState().setAddProjectModalOpen(!0),[]),Sl=_.useCallback(()=>ve.getState().setAddProjectModalOpen(!1),[]),To=_.useCallback(async(q,J,ye)=>{if(e)try{await l.command({type:"chat.respondTool",chatId:e,toolUseId:q,result:{questions:J,answers:ye}})}catch(Je){ve.getState().setCommandError(Je instanceof Error?Je.message:String(Je))}},[e,l]),Ba=_.useCallback(async(q,J,ye,Je)=>{if(e){J&&Ws.getState().setChatComposerPlanMode(e,!1);try{await l.command({type:"chat.respondTool",chatId:e,toolUseId:q,result:{confirmed:J,...ye?{clearContext:!0}:{},...Je?{message:Je}:{}}})}catch(Se){ve.getState().setCommandError(Se instanceof Error?Se.message:String(Se))}}},[e,l]),bc=_.useCallback(async(q,J,ye,Je)=>{if(e)try{await l.command({type:"chat.respondSubagentTool",chatId:e,runId:q,toolUseId:J,result:{questions:ye,answers:Je}})}catch(Se){ve.getState().setCommandError(Se instanceof Error?Se.message:String(Se))}},[e,l]),eo=_.useCallback(async(q,J,ye)=>{if(e)try{await l.command({type:"chat.respondSubagentTool",chatId:e,runId:q,toolUseId:J,result:ye})}catch(Je){ve.getState().setCommandError(Je instanceof Error?Je.message:String(Je))}},[e,l]),qu=_.useCallback(async(q,J)=>{if(e)try{await l.command({type:"chat.toolRequestAnswer",chatId:e,toolRequestId:q,decision:J})}catch(ye){ve.getState().setCommandError(ye instanceof Error?ye.message:String(ye))}},[e,l]),Ua=u3e(b,g==null?void 0:g.status);return{socket:l,activeChatId:e,activeProjectId:kt,sidebarData:Fe,localProjects:m,updateSnapshot:g,chatSnapshot:w,chatDiffSnapshot:fn,keybindings:j,appSettings:I,pushConfig:z,llmProvider:F,connectionStatus:O,sidebarReady:P,uiRestartActive:Ua.active,uiRestartLabel:Ua.label,localProjectsReady:W,commandError:G,startingLocalPath:D,sidebarOpen:K,sidebarCollapsed:V,messages:Ut,queuedMessages:Ue,previousPrompt:Wt,latestToolIds:Jt,runtime:Be,runtimeStatus:lt,isHistoryLoading:E,hasOlderHistory:N,availableProviders:Dt,isProcessing:$t,canCancel:zt,isDraining:Zt,navbarLocalPath:ee,editorLabel:we,hasSelectedProject:Ae,addProjectModalOpen:Y,openSidebar:Fa,closeSidebar:Zs,collapseSidebar:bi,expandSidebar:_l,openAddProjectModal:vc,closeAddProjectModal:Sl,loadOlderHistory:He,handleCreateChat:wt,handleForkChat:Ye,handleOpenLocalProject:Vt,handleCreateProject:Xe,handleCheckForUpdates:Tt,handleInstallUpdate:ln,handleForceReload:Or,handleReadAppSettings:ht,handleWriteAppSettings:on,handleTestMcpServer:pn,handleStartMcpOAuth:nn,handleCompleteMcpOAuth:Nt,handleSetChatPolicyOverride:Dn,handleWriteCloudflareTunnel:Bt,handleWriteClaudeAuth:xn,handleTestOAuthToken:St,handleReadLlmProvider:Cn,handleWriteLlmProvider:_n,handleValidateLlmProvider:dn,handleSignOut:br,handleSend:nr,handleSteerQueuedMessage:Fr,handleRemoveQueuedMessage:Bn,handleCancel:At,handleStopDraining:ke,handleRenameChat:Ct,handleArchiveChat:Ir,handleOpenArchivedChat:Tr,handleDeleteChat:Vn,handleHideProject:de,handleToggleProjectStar:nt,handleReorderProjectGroups:yt,stacks:Fe.stacks,handleCreateStack:rn,handleRenameStack:$n,handleRemoveStack:mn,handleAddProjectToStack:zn,handleRemoveProjectFromStack:si,handleCreateStackChat:Rs,handleListStackWorktrees:Rt,importClaudeSessions:Mn,handleCopyPath:$a,handleOpenExternal:Jn,handleOpenExternalPath:No,handleOpenLocalLink:za,handleCompose:xl,handleAskUserQuestion:To,handleExitPlanMode:Ba,handleSubagentAskUserQuestion:bc,handleSubagentExitPlanMode:eo,handleToolRequestAnswer:qu}}const Wj=en("KannaTranscript",()=>e=>({toolGroupExpanded:{},setToolGroupExpanded:(t,n)=>e(r=>r.toolGroupExpanded[t]===n?r:{toolGroupExpanded:{...r.toolGroupExpanded,[t]:n}})})),w3e=new Set([".c",".cc",".cfg",".conf",".cpp",".cs",".css",".diff",".env",".go",".graphql",".h",".hpp",".html",".ini",".java",".js",".json",".jsonc",".jsx",".kt",".log",".lua",".md",".mjs",".patch",".php",".pl",".properties",".py",".rb",".rs",".scss",".sh",".sql",".swift",".toml",".ts",".tsx",".txt",".vue",".xml",".yaml",".yml",".zsh"]),C3e=new Set([".gitignore",".npmrc",".prettierrc",".python-version",".ruby-version",".tool-versions","Dockerfile","Gemfile","Makefile","Procfile"]);function gw(e){if(!e)return;const t=Number.parseInt(e,10);return Number.isFinite(t)&&t>0?t:void 0}function SH(e){var r,i;const t=/^(?<path>\/.+?)#L(?<line>\d+)(?:C(?<column>\d+))?$/.exec(e);if((r=t==null?void 0:t.groups)!=null&&r.path)return{path:t.groups.path,line:gw(t.groups.line),column:gw(t.groups.column)};const n=/^(?<path>\/.+?):(?<line>\d+)(?::(?<column>\d+))?$/.exec(e);return(i=n==null?void 0:n.groups)!=null&&i.path?{path:n.groups.path,line:gw(n.groups.line),column:gw(n.groups.column)}:e.startsWith("/")?{path:e}:null}function k3e(e,t=Et){if(!e)return null;const n=e.trim();if(!n||/^(mailto:|ftp:|file:)/i.test(n))return null;if(/^https?:/i.test(n))try{const r=new URL(n);return r.origin!==t.getOrigin()||!r.pathname.startsWith("/")?null:SH(`${r.pathname}${r.hash}`)}catch{return null}return SH(n)}function E3e(e){const t=e.split(/[\\/]/);for(;t.length>0&&t[t.length-1]==="";)t.pop();const n=t.length>0?t[t.length-1]:e;if(C3e.has(n))return!0;const r=n.lastIndexOf(".");if(r<0)return!0;const i=n.slice(r).toLowerCase();return w3e.has(i)}const N3e=["/Users/","/home/","/private/","/tmp/","/var/","/opt/","/root/"];function T3e(e){return e?e.startsWith("file://")?!0:N3e.some(t=>e.startsWith(t)):!1}function Ete(e){let t=e;if(t.startsWith("file://"))try{t=decodeURIComponent(new URL(t).pathname)}catch{t=t.slice(7)}return`/api/local-file?path=${encodeURIComponent(t)}`}function tf(e,t){if(!e)return"";if(t){const n=t.endsWith("/")?t:`${t}/`;if(e.startsWith(n))return e.slice(n.length);if(e===t)return""}return e.replace(/^\/home\/user\/workspace\//,"")}const wH=/<thinking>([\s\S]*?)<\/thinking>/gi;function A3e(e){const t=[];let n=0;wH.lastIndex=0;let r;for(;(r=wH.exec(e))!==null;){if(r.index>n){const o=e.slice(n,r.index);o.length>0&&t.push({kind:"text",content:o})}t.push({kind:"thinking",content:r[1]??""}),n=r.index+r[0].length}const i=e.slice(n),s=i.search(/<thinking>/i);if(s!==-1){const o=i.slice(0,s);o.length>0&&t.push({kind:"text",content:o});const a=i.slice(s+10);t.push({kind:"thinking",content:a})}else i.length>0&&t.push({kind:"text",content:i});return R3e(t)}function R3e(e){const t=[];for(const n of e){const r=t[t.length-1];n.kind==="text"&&r&&r.kind==="text"?r.content+=n.content:t.push(n)}return t}const M3e=/^[ \t]*(`{3,}|~{3,})/,j3e=/https?:\/\/[^\s<>)\]'"]+/g,O3e=new RegExp("(?<![a-zA-Z0-9_])((?:PR|pull\\s+request|merge\\s+request|MR|issue|fix(?:es|ed)?|close[sd]?|resolve[sd]?|bug|task|ticket|story)\\s+)?#(\\d+)","gi"),I3e=/[.,;:!?)\]]+$/;function P3e(e){if(!e.includes("#")||!e.includes("http"))return e;const t=e.split(`
2688
2688
  `);let n=!1,r=!1;const i=[];for(const s of t){if(M3e.test(s)){n=!n,i.push(s);continue}if(n){i.push(s);continue}const o=L3e(s);o!==s&&(r=!0),i.push(o)}return r?i.join(`
2689
2689
  `):e}function L3e(e){if(!e.includes("#")||!e.includes("http"))return e;const t=[],n=new RegExp(j3e.source,"g");let r;for(;(r=n.exec(e))!==null;){let u=r[0];const f=u.match(I3e);f&&(u=u.slice(0,-f[0].length)),t.push({start:r.index,end:r.index+u.length,url:u})}if(t.length===0)return e;const i=[],s=new RegExp(O3e.source,"gi");for(;(r=s.exec(e))!==null;){const u=e.slice(0,r.index);u.lastIndexOf("[")>u.lastIndexOf("]")||i.push({start:r.index,end:r.index+r[0].length,full:r[0],num:r[2]??""})}if(i.length===0)return e;const o=new Map;for(const u of i){const f=t.find(m=>{try{const{pathname:g,search:b}=new URL(m.url),y=g+b;return new RegExp(`(?:/|\\.|-|=)${u.num}(?:[/?&#]|$)`).test(y)}catch{return!1}});if(f){o.set(u.start,f.url);continue}const p=t.find(m=>m.start>u.end);if(p){const m=e.slice(u.end,p.start);!/[.!?]\s/.test(m)&&m.length<200&&o.set(u.start,p.url)}}if(o.size===0)return e;const a=i.filter(u=>o.has(u.start)).sort((u,f)=>f.start-u.start);let l=e;for(const u of a){const f=o.get(u.start);l=`${l.slice(0,u.start)}[${u.full}](${f})${l.slice(u.end)}`}return l}const Vj=en("ThinkingBlock",()=>e=>({expanded:!1,setExpanded:t=>e({expanded:t})}));function D3e({content:e}){const t=Vj.useScopedStore(i=>i.expanded),n=Vj.useScopedStore(i=>i.setExpanded),r=e.trim();return r.length===0?null:c.jsxs("div",{className:"my-3 first:mt-0 last:mb-0",children:[c.jsxs("button",{type:"button",onClick:()=>n(!t),"aria-expanded":t,className:"group/thinking flex items-center gap-1.5 text-xs text-muted-foreground hover:text-foreground transition-colors cursor-pointer",children:[c.jsx(Rw,{className:"h-3.5 w-3.5"}),c.jsx("span",{className:"font-medium uppercase tracking-wider",children:"Thinking"}),c.jsx(Ta,{className:pe("h-3.5 w-3.5 transition-transform duration-200",t&&"rotate-90")})]}),t&&c.jsx("div",{className:"mt-2 border-l-2 border-muted-foreground/20 pl-3 text-sm text-muted-foreground italic prose prose-sm dark:prose-invert max-w-[70ch]",children:Ou(r)})]})}const _E=_.memo(({content:e})=>c.jsx(Vj.Provider,{init:void 0,children:c.jsx(D3e,{content:e})}));class Kx extends Uu{constructor(n,r,i,s,o=Et){super(s);H(this,"__mentionKind");H(this,"__value");H(this,"__label");H(this,"__dom");this.__mentionKind=n,this.__value=r,this.__label=i,this.__dom=o}static getType(){return"kanna-mention"}static clone(n){return new Kx(n.__mentionKind,n.__value,n.__label,n.__key,n.__dom)}static importJSON(n){return Kj({mentionKind:n.mentionKind,value:n.value,label:n.label})}exportJSON(){return{type:Kx.getType(),version:1,mentionKind:this.__mentionKind,value:this.__value,label:this.__label}}createDOM(n,r){const i=this.__dom.createElement("span");return i.dataset.lexicalDecorator="true",i}updateDOM(){return!1}isInline(){return!0}isKeyboardSelectable(){return!0}getTextContent(){return this.__mentionKind==="agent"?`@agent/${this.__value}`:`@${this.__value}`}decorate(n,r){const i=this.__label;return this.__mentionKind==="agent"?c.jsx("span",{className:pe("inline-flex items-center rounded px-1 text-sm","bg-primary/10 text-primary border border-primary/20"),children:i}):c.jsx("span",{className:pe("inline-flex items-center rounded px-1 text-sm","bg-muted text-muted-foreground border border-border"),children:i})}}function Kj(e){return vi(new Kx(e.mentionKind,e.value,e.label))}class Gx extends Uu{constructor(n,r,i,s=Et){super(i);H(this,"__commandName");H(this,"__hasArgument");H(this,"__dom");this.__commandName=n,this.__hasArgument=r,this.__dom=s}static getType(){return"kanna-slash-command"}static clone(n){return new Gx(n.__commandName,n.__hasArgument,n.__key,n.__dom)}static importJSON(n){return Nte({commandName:n.commandName,hasArgument:n.hasArgument})}exportJSON(){return{type:Gx.getType(),version:1,commandName:this.__commandName,hasArgument:this.__hasArgument}}createDOM(n,r){const i=this.__dom.createElement("span");return i.dataset.lexicalDecorator="true",i}updateDOM(){return!1}isInline(){return!0}isKeyboardSelectable(){return!0}getTextContent(){return this.__hasArgument?`/${this.__commandName} `:`/${this.__commandName}`}decorate(n,r){return c.jsx("span",{className:pe("inline-flex items-center rounded px-1 text-sm font-mono","bg-muted text-muted-foreground border border-border"),children:`/${this.__commandName}`})}}function Nte(e){return vi(new Gx(e.commandName,e.hasArgument))}class uv extends Uu{constructor(n,r,i=Et){super(r);H(this,"__attachment");H(this,"__dom");this.__attachment=n,this.__dom=i}static getType(){return"kanna-attachment"}static clone(n){return new uv(n.__attachment,n.__key,n.__dom)}static importJSON(n){return TD(n.attachment)}getAttachment(){return this.getLatest().__attachment}isInline(){return!0}isKeyboardSelectable(){return!0}getTextContent(){return""}createDOM(n,r){return this.__dom.createElement("span")}updateDOM(){return!1}exportJSON(){return{type:uv.getType(),version:1,attachment:this.__attachment}}decorate(n,r){const i=this.getLatest().__attachment;return i.kind==="image"&&i.contentUrl?c.jsx(Hk,{attachment:i,size:"composer"}):c.jsx(qo,{attachment:i})}}function TD(e){return vi(new uv(e))}function $3e(){return YRe(uv)}class xf extends Uu{constructor(n,r,i=Et){super(r);H(this,"__source");H(this,"__dom");this.__source=n,this.__dom=i}static getType(){return"kanna-mermaid"}static clone(n){return new xf(n.__source,n.__key,n.__dom)}static importJSON(n){return Tte(n.source)}exportJSON(){return{type:xf.getType(),version:1,source:this.__source}}createDOM(n,r){return this.__dom.createElement("div")}updateDOM(){return!1}isInline(){return!1}getTextContent(){return this.__source}decorate(n,r){return c.jsx(Wee,{source:this.__source})}}function Tte(e){return vi(new xf(e))}function z3e(e){return e instanceof xf}function F3e(e,t=28){if(e.length<=t)return e;const n="…",r=e.lastIndexOf("."),i=r>0&&e.length-r<=6,s=i?e.slice(r):"",o=i?e.slice(0,r):e,a=t-n.length-s.length;if(a<=2){const f=t-n.length,p=Math.ceil(f/2),m=Math.floor(f/2);return`${e.slice(0,p)}${n}${e.slice(e.length-m)}`}const l=Math.ceil(a/2),u=a-l;return`${o.slice(0,l)}${n}${o.slice(o.length-u)}${s}`}const cy=en("LocalFileLinkCard",()=>e=>({probe:{kind:"loading"},previewOpen:!1,setProbe:t=>e({probe:t}),setPreviewOpen:t=>e({previewOpen:t})}));function B3e(e){const t=e.lastIndexOf("/");return t>=0?e.slice(t+1):e}function U3e({path:e,linkText:t}){const n=_.useMemo(()=>Ete(e),[e]),r=cy.useScopedStore(N=>N.probe),i=cy.useScopedStore(N=>N.previewOpen),s=cy.useScopedStore(N=>N.setProbe),o=cy.useScopedStore(N=>N.setPreviewOpen);_.useEffect(()=>{const N=new AbortController;return cL(n,{signal:N.signal}).then(M=>{N.signal.aborted||s(M)}),()=>N.abort()},[n,s]);const a=B3e(e),l=t||a,u=F3e(l,28),f=r.kind==="ready"?r.mimeType:"application/octet-stream",p=r.kind==="ready"?r.size:0,m={id:`local-file-${n}`,kind:"file",displayName:u,absolutePath:e,relativePath:e,contentUrl:n,mimeType:f,size:p};if(r.kind==="missing")return c.jsx("span",{className:"inline-flex align-bottom","data-testid":"local-file-link",children:c.jsx(qo,{attachment:m,disabledReason:"File no longer available"})});const g=Op(m),b=T_(g,f),y=p>0?Ip(p):null,x=r.kind==="loading",w=r.kind==="error";let k;x?k=c.jsx("span",{className:"text-muted-foreground",children:"Fetching…"}):w?k=c.jsx("span",{className:"text-muted-foreground",children:"Unable to load"}):k=c.jsxs(c.Fragment,{children:[b,y?c.jsxs(c.Fragment,{children:[" · ",c.jsx("span",{className:"tabular-nums",children:y})]}):null]});const C=r.kind==="ready"?Mv(m):null,E=C!==null&&!C.openInNewTab,A=[E?"Preview":"Download",l,b,y].filter(N=>!!N);return E?c.jsxs(c.Fragment,{children:[c.jsx("span",{className:"inline-flex align-bottom","data-testid":"local-file-link",children:c.jsx(qo,{attachment:m,onClick:()=>o(!0),meta:k,ariaLabel:A.join(", ")})}),c.jsx(Fp,{source:i?zv(m,"local_file_link"):null,open:i,onOpenChange:o})]}):c.jsx("span",{className:"inline-flex align-bottom","data-testid":"local-file-link",children:c.jsx(qo,{attachment:m,href:n,download:a,meta:k,ariaLabel:A.join(", ")})})}function H3e({path:e,linkText:t}){return c.jsx(cy.Provider,{init:void 0,children:c.jsx(U3e,{path:e,linkText:t})})}class _f extends Uu{constructor(n,r,i,s,o=Et){super(s);H(this,"__path");H(this,"__line");H(this,"__column");H(this,"__dom");this.__path=n,this.__line=r,this.__column=i,this.__dom=o}static getType(){return"kanna-local-file-link"}static clone(n){return new _f(n.__path,n.__line,n.__column,n.__key,n.__dom)}static importJSON(n){return Ate({path:n.path,line:n.line,column:n.column})}exportJSON(){const n={type:_f.getType(),version:1,path:this.__path};return this.__line!==void 0&&(n.line=this.__line),this.__column!==void 0&&(n.column=this.__column),n}createDOM(n,r){return this.__dom.createElement("span")}updateDOM(){return!1}isInline(){return!0}getTextContent(){return this.__path}decorate(n,r){const i=this.__line!==void 0?`${this.__path}:${this.__line}${this.__column!==void 0?`:${this.__column}`:""}`:void 0;return c.jsx(H3e,{path:this.__path,linkText:i})}}function Ate(e){return vi(new _f(e.path,e.line,e.column))}function W3e(e){return e instanceof _f}class qx extends Uu{constructor(n,r,i=Et){super(r);H(this,"__content");H(this,"__dom");this.__content=n,this.__dom=i}static getType(){return"kanna-thinking"}static clone(n){return new qx(n.__content,n.__key,n.__dom)}static importJSON(n){return V3e(n.content)}exportJSON(){return{type:qx.getType(),version:1,content:this.__content}}createDOM(n,r){return this.__dom.createElement("div")}updateDOM(){return!1}isInline(){return!1}getTextContent(){return this.__content}decorate(n,r){return c.jsx(_E,{content:this.__content})}}function V3e(e){return vi(new qx(e))}const K3e=[Kx,Gx,uv],G3e=[xf,_f,qx],q3e=/^[ \t]*(`{3,})[ \t]*mermaid[ \t]*$/i,CH=/^[ \t]*`{3,}[ \t]*$/,Y3e={type:"multiline-element",dependencies:[xf],regExpStart:q3e,regExpEnd:{optional:!0,regExp:CH},handleImportAfterStartMatch({lines:e,rootNode:t,startLineIndex:n,startMatch:r}){const s=(r[1]??"```").length,o=new RegExp(`^[ \\t]\`{${s},}[ \\t]*$`),a=[];let l=n;for(let p=n+1;p<e.length;p++){const m=e[p];if(m===void 0)break;if(CH.test(m)||o.test(m)){l=p;break}a.push(m),l=p}const u=a.join(`
2690
2690
  `),f=Tte(u);return t.append(f),[!0,l]},replace(e,t,n,r,i,s){return!1},export(e){return e instanceof xf?`\`\`\`mermaid