blade-code 0.7.5 → 0.7.7

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 (89) hide show
  1. package/dist/blade.js +2 -2
  2. package/dist/{chunk-38h3yh6z.js → chunk-0b3m5qn6.js} +1 -1
  3. package/dist/chunk-0y895nft.js +9 -0
  4. package/dist/chunk-2j3tb2dm.js +1 -0
  5. package/dist/chunk-2n8a87ds.js +2 -0
  6. package/dist/{chunk-gjf2d2yg.js → chunk-2qckpa16.js} +1 -1
  7. package/dist/chunk-3fcze972.js +1 -0
  8. package/dist/{chunk-pvxp2gzr.js → chunk-4n7fsts0.js} +1 -1
  9. package/dist/chunk-54vk4tw8.js +615 -0
  10. package/dist/{chunk-qxvp127d.js → chunk-5xjj88wd.js} +1 -1
  11. package/dist/{chunk-ay3rhhx8.js → chunk-6087cgst.js} +1 -1
  12. package/dist/{chunk-rtn0rb16.js → chunk-60se4kxq.js} +2 -2
  13. package/dist/chunk-6cry51vb.js +9 -0
  14. package/dist/{chunk-cyxb6fxe.js → chunk-6y58y4rx.js} +1 -1
  15. package/dist/chunk-778h8815.js +26 -0
  16. package/dist/{chunk-0rw4tdqy.js → chunk-7e5hzpmp.js} +1 -1
  17. package/dist/chunk-89j9pm90.js +24 -0
  18. package/dist/{chunk-jf48kahn.js → chunk-8e0rv3j5.js} +3 -3
  19. package/dist/chunk-8p98nt9v.js +151 -0
  20. package/dist/chunk-94vj1hjp.js +1 -0
  21. package/dist/{chunk-e21htmg4.js → chunk-9ad7tt9s.js} +1 -1
  22. package/dist/chunk-c6rtexw1.js +4 -0
  23. package/dist/chunk-c8cxeve8.js +1 -0
  24. package/dist/{chunk-jsn8476q.js → chunk-d61d6m07.js} +2 -2
  25. package/dist/chunk-ebcmqx1k.js +2 -0
  26. package/dist/chunk-gsn659hw.js +1 -0
  27. package/dist/chunk-h79044h0.js +3 -0
  28. package/dist/chunk-kppxkh33.js +1 -0
  29. package/dist/{chunk-373pmz70.js → chunk-p7rf3zp8.js} +1 -1
  30. package/dist/chunk-ptt8s7nd.js +6 -0
  31. package/dist/chunk-qnh7np1s.js +6 -0
  32. package/dist/chunk-ran4gsmy.js +1 -0
  33. package/dist/chunk-swyvd7hd.js +1 -0
  34. package/dist/chunk-t9zdypqp.js +2 -0
  35. package/dist/chunk-v61bja34.js +2 -0
  36. package/dist/{chunk-bmcc85nj.js → chunk-w1m1ehs1.js} +1 -1
  37. package/dist/chunk-x1khkevy.js +1563 -0
  38. package/dist/chunk-x24ddbhs.js +6 -0
  39. package/dist/{chunk-a8znntss.js → chunk-x466sb8s.js} +2 -2
  40. package/dist/{chunk-n969rv4v.js → chunk-yyw9bbfd.js} +1 -1
  41. package/dist/{chunk-kfg3vx5z.js → chunk-zet4zjc3.js} +1 -1
  42. package/dist/web/assets/{CodeBlockHighlighter-C86flFwh.js → CodeBlockHighlighter-C1cp8dDv.js} +1 -1
  43. package/dist/web/assets/FilePreview-B2anY2d1.js +7 -0
  44. package/dist/web/assets/{MarkdownRenderer-BQoiQTDd.js → MarkdownRenderer-BVfRG88x.js} +1 -1
  45. package/dist/web/assets/McpModal-BVvb-dzr.js +5 -0
  46. package/dist/web/assets/SettingsModal-aseVv-gp.js +1 -0
  47. package/dist/web/assets/{SettingsStore-CfDjhOkS.js → SettingsStore-B87y64B4.js} +1 -1
  48. package/dist/web/assets/SkillsModal-BXYaF2KK.js +1 -0
  49. package/dist/web/assets/{TerminalPanel-Cs16_6ew.js → TerminalPanel-B-NRhOXN.js} +1 -1
  50. package/dist/web/assets/index-9kl44E8k.js +9 -0
  51. package/dist/web/assets/index-CUVe9dGs.css +1 -0
  52. package/dist/web/assets/{useRequest-BJp539HQ.js → useRequest-DITGl55G.js} +1 -1
  53. package/dist/web/assets/{vendor-icons-DlzC8I7m.js → vendor-icons-BuFpOlRn.js} +84 -29
  54. package/dist/web/assets/{vendor-markdown-DIcugY1e.js → vendor-markdown-Bo4W9Tae.js} +1 -1
  55. package/dist/web/assets/vendor-radix-CESj0OOY.js +45 -0
  56. package/dist/web/assets/{vendor-react-Dm1xU4bP.js → vendor-react-BalntB5F.js} +2 -2
  57. package/dist/web/index.html +2 -2
  58. package/package.json +1 -1
  59. package/dist/chunk-1vngdr7p.js +0 -1
  60. package/dist/chunk-5smacbk0.js +0 -24
  61. package/dist/chunk-63dzf6hr.js +0 -2
  62. package/dist/chunk-7pcm8vy5.js +0 -615
  63. package/dist/chunk-8ea9h3mb.js +0 -151
  64. package/dist/chunk-8w1hd9ct.js +0 -1534
  65. package/dist/chunk-98jpdmgc.js +0 -9
  66. package/dist/chunk-aevyre2t.js +0 -1
  67. package/dist/chunk-apb1p5q4.js +0 -1
  68. package/dist/chunk-b4hmtjec.js +0 -1
  69. package/dist/chunk-c3yn8ds8.js +0 -6
  70. package/dist/chunk-cqrg2pp7.js +0 -1
  71. package/dist/chunk-cw125vv3.js +0 -6
  72. package/dist/chunk-g1eb7f4q.js +0 -1
  73. package/dist/chunk-jfykets9.js +0 -6
  74. package/dist/chunk-k4behavv.js +0 -2
  75. package/dist/chunk-kssr4fbg.js +0 -1
  76. package/dist/chunk-rkhhzc4r.js +0 -26
  77. package/dist/chunk-vhc1yr3v.js +0 -1
  78. package/dist/chunk-w1zb8zac.js +0 -3
  79. package/dist/chunk-yaj4nmmp.js +0 -4
  80. package/dist/chunk-yz2jztga.js +0 -7
  81. package/dist/chunk-zye2s6f0.js +0 -2
  82. package/dist/web/assets/FilePreview-evNzCuVx.js +0 -7
  83. package/dist/web/assets/McpModal-BT9OivhK.js +0 -5
  84. package/dist/web/assets/SettingsModal-CDRcorCS.js +0 -1
  85. package/dist/web/assets/SkillsModal-DCPaqoOe.js +0 -1
  86. package/dist/web/assets/dialog-C8VDk-ma.js +0 -1
  87. package/dist/web/assets/index-9t-WxRrl.js +0 -10
  88. package/dist/web/assets/index-Bu13aXyE.css +0 -1
  89. package/dist/web/assets/vendor-radix-CfxBc_4-.js +0 -45
@@ -1 +0,0 @@
1
- import{r as n,j as e}from"./vendor-react-Dm1xU4bP.js";import{D as U,a as z,b as K}from"./dialog-C8VDk-ma.js";import{c as b,u as J,a as Q}from"./index-9t-WxRrl.js";import{u as V}from"./SettingsStore-CfDjhOkS.js";import{X as P,i as M,E as G,m as _,d as W,e as X}from"./vendor-icons-DlzC8I7m.js";import"./vendor-markdown-DIcugY1e.js";import"./vendor-monaco-w6PwaWGP.js";import"./vendor-radix-CfxBc_4-.js";const L={id:"custom",name:"Custom (OpenAI Compatible)",icon:"🔌",description:"Any OpenAI-compatible API",envVars:[],bladeProvider:"openai-compatible"};function Y({open:p,onOpenChange:c,onSave:u}){const[E,d]=n.useState([L]),[x,s]=n.useState([]),[r,j]=n.useState("custom"),[o,i]=n.useState({bladeProvider:"openai-compatible",baseUrl:"",apiKey:"",modelId:"",name:""}),[y,N]=n.useState(!1),[w,v]=n.useState(!1),[k,S]=n.useState(!1);n.useEffect(()=>{p&&fetch("/providers").then(a=>a.json()).then(a=>d([L,...a])).catch(a=>console.error("Failed to load providers:",a))},[p]),n.useEffect(()=>{r&&r!=="custom"?fetch(`/providers/${r}/models`).then(a=>a.json()).then(a=>s(a)).catch(a=>console.error("Failed to load models:",a)):s([])},[r]);const F=a=>{j(a.id),i({...o,bladeProvider:a.bladeProvider,baseUrl:a.defaultBaseUrl||"",modelId:"",name:""}),N(!1)},A=()=>{!o.modelId||!o.apiKey||(u({...o,name:o.name||o.modelId}),i({bladeProvider:"openai-compatible",baseUrl:"",apiKey:"",modelId:"",name:""}),j("custom"),c(!1))},h=E.find(a=>a.id===r),B=x.find(a=>a.id===o.modelId),C=!(r==="custom")&&x.length>0,I=o.modelId&&o.apiKey;return e.jsx(U,{open:p,onOpenChange:c,children:e.jsxs(z,{className:"sm:max-w-[480px] p-0 overflow-hidden gap-0 bg-white dark:bg-[#09090b] border border-[#E5E7EB] dark:border-zinc-800 rounded-xl [&>button]:hidden","aria-describedby":void 0,children:[e.jsx(K,{className:"sr-only",children:"Add Model"}),e.jsxs("div",{className:"p-6 flex flex-col gap-6",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsx("h2",{className:"text-base font-semibold text-[#111827] dark:text-[#E5E5E5] font-mono",children:"Add Model"}),e.jsx("button",{onClick:()=>c(!1),className:"text-[#9CA3AF] hover:text-[#111827] dark:text-[#71717a] dark:hover:text-[#E5E5E5] transition-colors",children:e.jsx(P,{className:"h-4 w-4"})})]}),e.jsxs("div",{className:"flex flex-col gap-4",children:[e.jsxs("div",{className:"flex flex-col gap-2",children:[e.jsx("label",{className:"text-[13px] text-[#6B7280] dark:text-[#a1a1aa] font-mono",children:"Provider"}),e.jsxs("div",{className:"relative",children:[e.jsxs("button",{type:"button",onClick:()=>N(!y),className:"w-full bg-[#F3F4F6] dark:bg-[#18181b] border border-[#E5E7EB] dark:border-[#27272a] rounded-md px-3 py-2.5 text-sm text-[#111827] dark:text-[#E5E5E5] font-mono flex items-center justify-between hover:bg-[#E5E7EB] dark:hover:bg-[#27272a] transition-colors",children:[e.jsxs("span",{className:"flex items-center gap-2",children:[e.jsx("span",{children:h==null?void 0:h.icon}),e.jsx("span",{children:h==null?void 0:h.name})]}),e.jsx(M,{className:"h-4 w-4 text-[#9CA3AF] dark:text-[#71717a]"})]}),y&&e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"fixed inset-0 z-40",onClick:()=>N(!1)}),e.jsx("div",{className:"absolute top-full left-0 right-0 mt-1 bg-white dark:bg-[#18181b] border border-[#E5E7EB] dark:border-zinc-800 rounded-md py-1 z-50 max-h-64 overflow-y-auto shadow-lg",children:E.map(a=>e.jsx("button",{type:"button",className:b("w-full text-left px-3 py-2 text-sm font-mono hover:bg-[#F3F4F6] dark:hover:bg-[#27272a] transition-colors",r===a.id?"text-[#111827] dark:text-[#E5E5E5] bg-[#F3F4F6] dark:bg-[#27272a]":"text-[#6B7280] dark:text-[#a1a1aa]"),onClick:()=>F(a),children:e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("span",{children:a.icon}),e.jsx("span",{className:"font-medium",children:a.name})]})},a.id))})]})]})]}),e.jsxs("div",{className:"flex flex-col gap-2",children:[e.jsx("label",{className:"text-[13px] text-[#6B7280] dark:text-[#a1a1aa] font-mono",children:"Base URL"}),e.jsx("input",{type:"text",value:o.baseUrl,onChange:a=>i({...o,baseUrl:a.target.value}),placeholder:(h==null?void 0:h.defaultBaseUrl)||"https://api.openai.com/v1",className:"w-full bg-[#F3F4F6] dark:bg-[#18181b] border border-[#E5E7EB] dark:border-[#27272a] rounded-md px-3 py-2.5 text-sm text-[#111827] dark:text-[#E5E5E5] font-mono placeholder:text-[#9CA3AF] dark:placeholder:text-[#71717a] focus:outline-none focus:ring-1 focus:ring-[#D1D5DB] dark:focus:ring-zinc-600"})]}),e.jsxs("div",{className:"flex flex-col gap-2",children:[e.jsx("label",{className:"text-[13px] text-[#6B7280] dark:text-[#a1a1aa] font-mono",children:"API Key"}),e.jsxs("div",{className:"relative",children:[e.jsx("input",{type:k?"text":"password",value:o.apiKey,onChange:a=>i({...o,apiKey:a.target.value}),placeholder:"sk-........................",className:"w-full bg-[#F3F4F6] dark:bg-[#18181b] border border-[#E5E7EB] dark:border-[#27272a] rounded-md px-3 py-2.5 pr-10 text-sm text-[#111827] dark:text-[#E5E5E5] font-mono placeholder:text-[#9CA3AF] dark:placeholder:text-[#71717a] focus:outline-none focus:ring-1 focus:ring-[#D1D5DB] dark:focus:ring-zinc-600"}),e.jsx("button",{type:"button",onClick:()=>S(!k),className:"absolute right-3 top-1/2 -translate-y-1/2 text-[#9CA3AF] hover:text-[#111827] dark:text-[#71717a] dark:hover:text-[#E5E5E5] transition-colors",children:k?e.jsx(G,{className:"h-4 w-4"}):e.jsx(_,{className:"h-4 w-4"})})]})]}),e.jsxs("div",{className:"flex flex-col gap-2",children:[e.jsx("label",{className:"text-[13px] text-[#6B7280] dark:text-[#a1a1aa] font-mono",children:"Model ID"}),C&&e.jsxs("div",{className:"relative",children:[e.jsxs("button",{type:"button",onClick:()=>v(!w),className:"w-full bg-[#F3F4F6] dark:bg-[#18181b] border border-[#E5E7EB] dark:border-[#27272a] rounded-md px-3 py-2.5 text-sm text-[#111827] dark:text-[#E5E5E5] font-mono flex items-center justify-between hover:bg-[#E5E7EB] dark:hover:bg-[#27272a] transition-colors",children:[(B==null?void 0:B.name)||o.modelId||"Select model",e.jsx(M,{className:"h-4 w-4 text-[#9CA3AF] dark:text-[#71717a]"})]}),w&&e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"fixed inset-0 z-40",onClick:()=>v(!1)}),e.jsx("div",{className:"absolute top-full left-0 right-0 mt-1 bg-white dark:bg-[#18181b] border border-[#E5E7EB] dark:border-zinc-800 rounded-md py-1 z-50 max-h-48 overflow-y-auto shadow-lg",children:x.map(a=>e.jsx("button",{type:"button",className:b("w-full text-left px-3 py-2 text-sm font-mono hover:bg-[#F3F4F6] dark:hover:bg-[#27272a] transition-colors",o.modelId===a.id?"text-[#111827] dark:text-[#E5E5E5] bg-[#F3F4F6] dark:bg-[#27272a]":"text-[#6B7280] dark:text-[#a1a1aa]"),onClick:()=>{i({...o,modelId:a.id,name:a.name}),v(!1)},children:a.name},a.id))})]})]}),e.jsx("input",{type:"text",value:o.modelId,onChange:a=>i({...o,modelId:a.target.value,name:a.target.value}),placeholder:"gpt-4o, claude-3-opus, deepseek-chat, etc.",className:"w-full bg-[#F3F4F6] dark:bg-[#18181b] border border-[#E5E7EB] dark:border-[#27272a] rounded-md px-3 py-2.5 text-sm text-[#111827] dark:text-[#E5E5E5] font-mono placeholder:text-[#9CA3AF] dark:placeholder:text-[#71717a] focus:outline-none focus:ring-1 focus:ring-[#D1D5DB] dark:focus:ring-zinc-600"}),C&&e.jsx("p",{className:"text-[12px] text-[#9CA3AF] dark:text-[#71717a] font-mono",children:"You can select a listed model or type a custom model ID."})]})]}),e.jsxs("div",{className:"flex items-center gap-3 pt-2",children:[e.jsx("button",{type:"button",onClick:()=>c(!1),className:"flex-1 px-4 py-2 rounded-md text-sm text-[#6B7280] dark:text-[#a1a1aa] font-mono hover:bg-[#F3F4F6] dark:hover:bg-[#18181b] transition-colors",children:"Cancel"}),e.jsx("button",{type:"button",onClick:A,disabled:!I,className:"flex-1 px-4 py-2 rounded-md text-sm text-white font-semibold font-mono bg-[#16A34A] hover:bg-[#15803d] disabled:opacity-50 disabled:cursor-not-allowed transition-colors",children:"Save Model"})]})]})]})})}function q({open:p,onOpenChange:c,model:u,onSave:E}){const[d,x]=n.useState({baseUrl:"",apiKey:"",model:""}),[s,r]=n.useState(!1);n.useEffect(()=>{u&&x({baseUrl:u.baseUrl||"",apiKey:u.apiKey||"",model:u.model||""})},[u]);const j=()=>{!u||!d.model||(E(u.id,{baseUrl:d.baseUrl||void 0,apiKey:d.apiKey||void 0,model:d.model}),c(!1))},o=d.model;return e.jsx(U,{open:p,onOpenChange:c,children:e.jsxs(z,{className:"sm:max-w-[480px] p-0 overflow-hidden gap-0 bg-white dark:bg-[#09090b] border border-[#E5E7EB] dark:border-zinc-800 rounded-xl [&>button]:hidden","aria-describedby":void 0,children:[e.jsx(K,{className:"sr-only",children:"Edit Model"}),e.jsxs("div",{className:"p-6 flex flex-col gap-6",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsx("h2",{className:"text-base font-semibold text-[#111827] dark:text-[#E5E5E5] font-mono",children:"Edit Model"}),e.jsx("button",{onClick:()=>c(!1),className:"text-[#9CA3AF] hover:text-[#111827] dark:text-[#71717a] dark:hover:text-[#E5E5E5] transition-colors",children:e.jsx(P,{className:"h-4 w-4"})})]}),e.jsxs("div",{className:"flex flex-col gap-4",children:[e.jsxs("div",{className:"flex flex-col gap-2",children:[e.jsx("label",{className:"text-[13px] text-[#6B7280] dark:text-[#a1a1aa] font-mono",children:"Model ID"}),e.jsx("input",{type:"text",value:d.model,onChange:i=>x({...d,model:i.target.value}),placeholder:"gpt-4o, claude-3-opus, etc.",className:"w-full bg-[#F3F4F6] dark:bg-[#18181b] border border-[#E5E7EB] dark:border-[#27272a] rounded-md px-3 py-2.5 text-sm text-[#111827] dark:text-[#E5E5E5] font-mono placeholder:text-[#9CA3AF] dark:placeholder:text-[#71717a] focus:outline-none focus:ring-1 focus:ring-[#D1D5DB] dark:focus:ring-zinc-600"})]}),e.jsxs("div",{className:"flex flex-col gap-2",children:[e.jsx("label",{className:"text-[13px] text-[#6B7280] dark:text-[#a1a1aa] font-mono",children:"Base URL"}),e.jsx("input",{type:"text",value:d.baseUrl,onChange:i=>x({...d,baseUrl:i.target.value}),placeholder:"https://api.openai.com/v1",className:"w-full bg-[#F3F4F6] dark:bg-[#18181b] border border-[#E5E7EB] dark:border-[#27272a] rounded-md px-3 py-2.5 text-sm text-[#111827] dark:text-[#E5E5E5] font-mono placeholder:text-[#9CA3AF] dark:placeholder:text-[#71717a] focus:outline-none focus:ring-1 focus:ring-[#D1D5DB] dark:focus:ring-zinc-600"})]}),e.jsxs("div",{className:"flex flex-col gap-2",children:[e.jsx("label",{className:"text-[13px] text-[#6B7280] dark:text-[#a1a1aa] font-mono",children:"API Key"}),e.jsxs("div",{className:"relative",children:[e.jsx("input",{type:s?"text":"password",value:d.apiKey,onChange:i=>x({...d,apiKey:i.target.value}),placeholder:"Leave empty to keep current key",className:"w-full bg-[#F3F4F6] dark:bg-[#18181b] border border-[#E5E7EB] dark:border-[#27272a] rounded-md px-3 py-2.5 pr-10 text-sm text-[#111827] dark:text-[#E5E5E5] font-mono placeholder:text-[#9CA3AF] dark:placeholder:text-[#71717a] focus:outline-none focus:ring-1 focus:ring-[#D1D5DB] dark:focus:ring-zinc-600"}),e.jsx("button",{type:"button",onClick:()=>r(!s),className:"absolute right-3 top-1/2 -translate-y-1/2 text-[#9CA3AF] hover:text-[#111827] dark:text-[#71717a] dark:hover:text-[#E5E5E5] transition-colors",children:s?e.jsx(G,{className:"h-4 w-4"}):e.jsx(_,{className:"h-4 w-4"})})]})]})]}),e.jsxs("div",{className:"flex items-center gap-3 pt-2",children:[e.jsx("button",{type:"button",onClick:()=>c(!1),className:"flex-1 px-4 py-2 rounded-md text-sm text-[#6B7280] dark:text-[#a1a1aa] font-mono hover:bg-[#F3F4F6] dark:hover:bg-[#18181b] transition-colors",children:"Cancel"}),e.jsx("button",{type:"button",onClick:j,disabled:!o,className:"flex-1 px-4 py-2 rounded-md text-sm text-white font-semibold font-mono bg-[#16A34A] hover:bg-[#15803d] disabled:opacity-50 disabled:cursor-not-allowed transition-colors",children:"Save Changes"})]})]})]})})}const Z={"openai-compatible":{bg:"#10a37f",label:"OA"},anthropic:{bg:"#d97757",label:"A"},gemini:{bg:"#4285f4",label:"G"},"azure-openai":{bg:"#0078d4",label:"Az"},"gpt-openai-platform":{bg:"#10a37f",label:"GP"}};function de(){var O;const{isSettingsOpen:p,toggleSettings:c,isSidebarOpen:u,setSidebarOpen:E}=J(),{configuredModels:d,loadModels:x}=Q(),s=V(),[r,j]=n.useState("general"),[o,i]=n.useState(!1),[y,N]=n.useState(null),[w,v]=n.useState(null),[k,S]=n.useState(""),[F,A]=n.useState("all"),h=[{value:"general",label:"General"},{value:"models",label:"Models"},{value:"shortcuts",label:"Shortcuts"}],D=n.useMemo(()=>[{action:"Open command palette",combo:["Ctrl","K"],scope:"Global"},{action:"New chat",combo:["Ctrl","N"],scope:"Chat"},{action:"Focus input",combo:["Ctrl","L"],scope:"Chat"},{action:"Toggle sidebar",combo:["Ctrl","B"],scope:"Layout"},{action:"Search history",combo:["Ctrl","H"],scope:"History"}],[]).filter(t=>{const l=t.action.toLowerCase().includes(k.toLowerCase()),m=F==="all"||t.scope.toLowerCase()===F;return l&&m}),C=d.reduce((t,l)=>{const m=l.provider||"unknown";return t[m]||(t[m]=[]),t[m].push(l),t},{});n.useEffect(()=>{p&&(x(),s.loadSettings())},[p,x,s.loadSettings]);const I=async t=>{try{if(!(await fetch("/models",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({provider:t.bladeProvider,name:t.name||t.modelId,model:t.modelId,baseUrl:t.baseUrl||void 0,apiKey:t.apiKey||void 0})})).ok)throw new Error("Failed to save model");await x()}catch(l){console.error("Failed to save model:",l)}},a=async t=>{try{if(!(await fetch(`/models/${t}`,{method:"DELETE"})).ok)throw new Error("Failed to delete model");await x()}catch(l){console.error("Failed to delete model:",l)}},$=async(t,l)=>{try{if(!(await fetch(`/models/${t}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(l)})).ok)throw new Error("Failed to update model");await x()}catch(m){console.error("Failed to update model:",m)}},H=t=>{N(y===t?null:t)};return e.jsxs(e.Fragment,{children:[e.jsx(U,{open:p,onOpenChange:c,children:e.jsxs(z,{className:"sm:max-w-[800px] h-[600px] p-0 overflow-hidden gap-0 bg-white dark:bg-[#09090b] border border-[#E5E7EB] dark:border-zinc-800 rounded-xl flex flex-col","aria-describedby":void 0,hideCloseButton:!0,children:[e.jsx(K,{className:"sr-only",children:"Settings"}),e.jsxs("div",{className:"flex h-full",children:[e.jsx("div",{className:"w-[200px] h-full bg-[#F3F4F6] dark:bg-[#18181b] p-6 flex flex-col gap-2",children:h.map(t=>e.jsx("button",{onClick:()=>j(t.value),className:b("w-full text-left px-3 py-2 rounded-md text-sm font-mono transition-colors",r===t.value?"bg-[#E5E7EB] dark:bg-[#27272a] text-[#111827] dark:text-[#E5E5E5] font-medium":"text-[#6B7280] hover:text-[#111827] hover:bg-[#E5E7EB]/60 dark:text-[#a1a1aa] dark:hover:text-[#E5E5E5] dark:hover:bg-[#27272a]/50"),children:t.label},t.value))}),e.jsxs("div",{className:"flex-1 p-8 flex flex-col gap-6 overflow-hidden",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsx("h2",{className:"text-lg font-semibold text-[#111827] dark:text-[#E5E5E5] font-mono",children:r==="general"?"Settings":(O=h.find(t=>t.value===r))==null?void 0:O.label}),e.jsx("button",{onClick:c,className:"h-8 w-8 rounded-md text-[#9CA3AF] hover:text-[#111827] hover:bg-[#E5E7EB] dark:text-[#71717a] dark:hover:text-[#E5E5E5] dark:hover:bg-[#27272a] transition-colors flex items-center justify-center",children:e.jsx(P,{className:"h-4 w-4"})})]}),r==="models"&&e.jsxs("div",{className:"flex flex-col gap-6 flex-1 min-h-0 overflow-hidden",children:[e.jsx("p",{className:"text-[13px] text-[#6B7280] dark:text-[#a1a1aa] font-mono shrink-0",children:"Configure API keys and model settings for different providers."}),e.jsx("div",{className:"flex-1 overflow-y-auto min-h-0",children:e.jsxs("div",{className:"flex flex-col gap-2 pr-2",children:[Object.entries(C).map(([t,l])=>{const m=Z[t]||{bg:"#71717a",label:"?"},T=l.some(f=>f.apiKey),R=y===t;return e.jsxs("div",{className:"w-full bg-[#F3F4F6] dark:bg-[#18181b] rounded-lg overflow-hidden",children:[e.jsxs("button",{onClick:()=>H(t),className:"w-full p-4 flex items-center justify-between hover:bg-[#E5E7EB] dark:hover:bg-[#1f1f23] transition-colors",children:[e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("div",{className:"w-8 h-8 rounded flex items-center justify-center text-white text-xs font-bold",style:{backgroundColor:m.bg},children:m.label}),e.jsxs("div",{className:"flex flex-col gap-0.5 text-left",children:[e.jsx("span",{className:"text-sm font-semibold text-[#111827] dark:text-[#E5E5E5] font-mono capitalize",children:t.replace(/-/g," ")}),e.jsxs("span",{className:"text-xs text-[#9CA3AF] dark:text-[#71717a] font-mono",children:[l.length," model",l.length>1?"s":""]})]})]}),e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("span",{className:b("text-xs font-mono",T?"text-[#16A34A]":"text-[#9CA3AF] dark:text-[#71717a]"),children:T?"● Connected":"○ Not Connected"}),e.jsx(M,{className:b("h-4 w-4 text-[#9CA3AF] dark:text-[#71717a] transition-transform",R&&"rotate-180")})]})]}),R&&e.jsx("div",{className:"border-t border-[#E5E7EB] dark:border-zinc-800",children:l.map(f=>e.jsxs("div",{className:"px-4 py-3 flex items-center justify-between hover:bg-[#E5E7EB] dark:hover:bg-[#1f1f23] group",children:[e.jsxs("div",{className:"flex flex-col gap-0.5 flex-1 min-w-0",children:[e.jsx("span",{className:"text-sm text-[#111827] dark:text-[#E5E5E5] font-mono truncate",children:f.model}),e.jsx("span",{className:"text-xs text-[#9CA3AF] dark:text-[#71717a] font-mono truncate",children:f.baseUrl||"Default URL"})]}),e.jsxs("div",{className:"flex items-center gap-2 opacity-0 group-hover:opacity-100 transition-opacity",children:[e.jsx("button",{onClick:()=>v(f),className:"p-1.5 text-[#9CA3AF] hover:text-[#111827] hover:bg-[#E5E7EB] dark:text-[#71717a] dark:hover:text-[#E5E5E5] dark:hover:bg-[#27272a] rounded transition-colors",children:e.jsx(W,{className:"h-3.5 w-3.5"})}),e.jsx("button",{onClick:()=>a(f.id),className:"p-1.5 text-[#9CA3AF] hover:text-red-500 hover:bg-[#E5E7EB] dark:text-[#71717a] dark:hover:text-red-400 dark:hover:bg-[#27272a] rounded transition-colors",children:e.jsx(X,{className:"h-3.5 w-3.5"})})]})]},f.id))})]},t)}),Object.keys(C).length===0&&e.jsx("div",{className:"text-center py-8 text-[#9CA3AF] dark:text-[#71717a] text-sm font-mono",children:"No models configured yet"})]})}),e.jsx("button",{onClick:()=>i(!0),className:"w-full py-3 rounded-md text-[#6B7280] dark:text-[#a1a1aa] text-[13px] font-mono hover:bg-[#F3F4F6] dark:bg-[#18181b] transition-colors shrink-0",children:"+ Add New Model"})]}),r==="general"&&e.jsxs("div",{className:"flex flex-col gap-6 overflow-y-auto pr-2",children:[e.jsxs("div",{className:"space-y-3",children:[e.jsx("h3",{className:"text-[14px] text-[#111827] dark:text-[#E5E5E5] font-mono font-semibold",children:"General"}),e.jsxs("div",{className:"flex items-center justify-between py-2",children:[e.jsxs("div",{className:"flex flex-col gap-1",children:[e.jsx("span",{className:"text-[13px] text-[#6B7280] dark:text-[#a1a1aa] font-mono",children:"Response Language"}),e.jsx("span",{className:"text-[11px] text-[#9CA3AF] dark:text-[#71717a] font-mono",children:"AI will respond in this language"})]}),e.jsxs("select",{value:s.language,onChange:t=>s.updateSettings({language:t.target.value}),className:"h-8 bg-[#F3F4F6] dark:bg-[#18181b] text-[#111827] dark:text-[#E5E5E5] text-[12px] font-mono rounded-md px-3 border border-[#E5E7EB] dark:border-[#27272a]",children:[e.jsx("option",{value:"en-US",children:"English (US)"}),e.jsx("option",{value:"zh-CN",children:"简体中文"}),e.jsx("option",{value:"zh-TW",children:"繁體中文"}),e.jsx("option",{value:"ja-JP",children:"日本語"}),e.jsx("option",{value:"ko-KR",children:"한국어"}),e.jsx("option",{value:"es-ES",children:"Español"}),e.jsx("option",{value:"fr-FR",children:"Français"}),e.jsx("option",{value:"de-DE",children:"Deutsch"}),e.jsx("option",{value:"pt-BR",children:"Português (BR)"}),e.jsx("option",{value:"ru-RU",children:"Русский"})]})]}),e.jsxs("div",{className:"flex items-center justify-between py-2",children:[e.jsx("span",{className:"text-[13px] text-[#6B7280] dark:text-[#a1a1aa] font-mono",children:"Auto-save sessions"}),e.jsx(g,{enabled:s.autoSaveSessions,onChange:t=>s.updateSettings({autoSaveSessions:t})})]})]}),e.jsxs("div",{className:"space-y-3",children:[e.jsx("h3",{className:"text-[14px] text-[#111827] dark:text-[#E5E5E5] font-mono font-semibold",children:"Appearance"}),e.jsxs("div",{className:"flex items-center justify-between py-2",children:[e.jsx("span",{className:"text-[13px] text-[#6B7280] dark:text-[#a1a1aa] font-mono",children:"Theme Preference"}),e.jsx("div",{className:"flex items-center gap-2 bg-[#F3F4F6] dark:bg-[#18181b] border border-[#E5E7EB] dark:border-[#27272a] rounded-md p-1",children:["dark","light","system"].map(t=>e.jsx("button",{onClick:()=>s.updateSettings({uiTheme:t}),className:b("px-3 py-1 rounded text-[12px] font-mono transition-colors",s.uiTheme===t?"bg-[#E5E7EB] dark:bg-[#27272a] text-[#111827] dark:text-[#E5E5E5]":"text-[#9CA3AF] dark:text-[#71717a] hover:text-[#111827] dark:hover:text-[#E5E5E5]"),children:t==="dark"?"Dark":t==="light"?"Light":"System"},t))})]}),e.jsxs("div",{className:"flex items-center justify-between py-2",children:[e.jsx("span",{className:"text-[13px] text-[#6B7280] dark:text-[#a1a1aa] font-mono",children:"Compact sidebar"}),e.jsx(g,{enabled:!u,onChange:t=>E(!t)})]}),e.jsxs("div",{className:"flex items-center justify-between py-2",children:[e.jsxs("div",{className:"flex flex-col gap-1",children:[e.jsx("span",{className:"text-[13px] text-[#6B7280] dark:text-[#a1a1aa] font-mono",children:"Code theme"}),e.jsx("span",{className:"text-[11px] text-[#9CA3AF] dark:text-[#71717a] font-mono",children:"Syntax highlighting colors"})]}),e.jsxs("select",{value:s.theme,onChange:t=>s.updateSettings({theme:t.target.value}),className:"h-8 bg-[#F3F4F6] dark:bg-[#18181b] text-[#111827] dark:text-[#E5E5E5] text-[12px] font-mono rounded-md px-3 border border-[#E5E7EB] dark:border-[#27272a]",children:[e.jsx("option",{value:"dracula",children:"Dracula"}),e.jsx("option",{value:"monokai",children:"Monokai"}),e.jsx("option",{value:"nord",children:"Nord"}),e.jsx("option",{value:"tokyo-night",children:"Tokyo Night"}),e.jsx("option",{value:"one-dark",children:"One Dark"}),e.jsx("option",{value:"catppuccin",children:"Catppuccin"}),e.jsx("option",{value:"gruvbox",children:"Gruvbox"}),e.jsx("option",{value:"github",children:"GitHub"}),e.jsx("option",{value:"solarized-light",children:"Solarized Light"}),e.jsx("option",{value:"solarized-dark",children:"Solarized Dark"}),e.jsx("option",{value:"ayu-dark",children:"Ayu Dark"}),e.jsx("option",{value:"rose-pine",children:"Rose Pine"}),e.jsx("option",{value:"kanagawa",children:"Kanagawa"})]})]})]}),e.jsxs("div",{className:"space-y-3",children:[e.jsx("h3",{className:"text-[14px] text-[#111827] dark:text-[#E5E5E5] font-mono font-semibold",children:"Notifications"}),e.jsxs("div",{className:"flex items-center justify-between py-2",children:[e.jsx("span",{className:"text-[13px] text-[#6B7280] dark:text-[#a1a1aa] font-mono",children:"Build finished"}),e.jsx(g,{enabled:s.notifyBuild,onChange:t=>s.updateSettings({notifyBuild:t})})]}),e.jsxs("div",{className:"flex items-center justify-between py-2",children:[e.jsx("span",{className:"text-[13px] text-[#6B7280] dark:text-[#a1a1aa] font-mono",children:"Errors only"}),e.jsx(g,{enabled:s.notifyErrors,onChange:t=>s.updateSettings({notifyErrors:t})})]}),e.jsxs("div",{className:"flex items-center justify-between py-2",children:[e.jsx("span",{className:"text-[13px] text-[#6B7280] dark:text-[#a1a1aa] font-mono",children:"System sounds"}),e.jsx(g,{enabled:s.notifySounds,onChange:t=>s.updateSettings({notifySounds:t})})]})]}),e.jsxs("div",{className:"space-y-3",children:[e.jsx("h3",{className:"text-[14px] text-[#111827] dark:text-[#E5E5E5] font-mono font-semibold",children:"Privacy"}),e.jsxs("div",{className:"flex items-center justify-between py-2",children:[e.jsx("span",{className:"text-[13px] text-[#6B7280] dark:text-[#a1a1aa] font-mono",children:"Telemetry"}),e.jsx(g,{enabled:s.privacyTelemetry,onChange:t=>s.updateSettings({privacyTelemetry:t})})]}),e.jsxs("div",{className:"flex items-center justify-between py-2",children:[e.jsx("span",{className:"text-[13px] text-[#6B7280] dark:text-[#a1a1aa] font-mono",children:"Crash reports"}),e.jsx(g,{enabled:s.privacyCrash,onChange:t=>s.updateSettings({privacyCrash:t})})]})]})]}),r==="shortcuts"&&e.jsxs("div",{className:"flex flex-col gap-4 flex-1 min-h-0 overflow-hidden",children:[e.jsxs("div",{className:"flex items-center gap-3 shrink-0",children:[e.jsx("input",{value:k,onChange:t=>S(t.target.value),placeholder:"Search actions...",className:"flex-1 h-9 bg-[#F3F4F6] dark:bg-[#18181b] border border-[#E5E7EB] dark:border-[#27272a] rounded-md px-3 text-[12px] text-[#111827] dark:text-[#E5E5E5] font-mono"}),e.jsxs("select",{value:F,onChange:t=>A(t.target.value),className:"h-9 bg-[#F3F4F6] dark:bg-[#18181b] border border-[#E5E7EB] dark:border-[#27272a] rounded-md px-3 text-[12px] text-[#111827] dark:text-[#E5E5E5] font-mono",children:[e.jsx("option",{value:"all",children:"All scopes"}),e.jsx("option",{value:"global",children:"Global"}),e.jsx("option",{value:"chat",children:"Chat"}),e.jsx("option",{value:"layout",children:"Layout"}),e.jsx("option",{value:"history",children:"History"})]}),e.jsx("button",{onClick:()=>{S(""),A("all")},className:"h-9 px-3 rounded-md bg-[#E5E7EB] dark:bg-[#27272a] text-[#111827] dark:text-[#E5E5E5] text-[12px] font-mono font-semibold",children:"Reset"})]}),e.jsxs("div",{className:"flex-1 min-h-0 overflow-y-auto border border-[#E5E7EB] dark:border-[#27272a] rounded-lg bg-[#E5E7EB] dark:bg-[#111827]",children:[e.jsxs("div",{className:"grid grid-cols-[1fr_180px_120px] gap-2 px-3 py-2 bg-white dark:bg-[#0C0C0C] text-[12px] text-[#6B7280] dark:text-[#94a3b8] font-mono font-semibold",children:[e.jsx("span",{children:"Action"}),e.jsx("span",{children:"Shortcut"}),e.jsx("span",{children:"Scope"})]}),D.map((t,l)=>e.jsxs("div",{className:b("grid grid-cols-[1fr_180px_120px] gap-2 px-3 py-2 text-[13px] font-mono",l%2===0?"bg-[#E5E7EB] dark:bg-[#111827]":"bg-white dark:bg-[#0C0C0C]"),children:[e.jsx("span",{className:"text-[#111827] dark:text-[#E5E5E5]",children:t.action}),e.jsx("div",{className:"flex items-center gap-1",children:t.combo.map(m=>e.jsx("span",{className:"px-2 py-0.5 rounded bg-[#F3F4F6] dark:bg-[#18181b] text-[#111827] dark:text-[#E5E5E5] text-[12px] font-mono font-semibold",children:m},m))}),e.jsx("span",{className:"text-[#6B7280] dark:text-[#94a3b8] text-[12px]",children:t.scope})]},`${t.action}-${t.scope}`)),D.length===0&&e.jsx("div",{className:"px-3 py-6 text-center text-[12px] text-[#6B7280] dark:text-[#94a3b8] font-mono",children:"No shortcuts found."})]})]})]})]})]})}),e.jsx(Y,{open:o,onOpenChange:i,onSave:I}),e.jsx(q,{open:!!w,onOpenChange:t=>!t&&v(null),model:w,onSave:$})]})}function g({enabled:p,onChange:c}){return e.jsx("button",{onClick:()=>c(!p),className:b("w-10 h-5 rounded-full px-0.5 flex items-center transition-colors",p?"bg-[#22C55E]":"bg-[#E5E7EB] dark:bg-[#27272a]"),children:e.jsx("span",{className:b("h-4 w-4 rounded-full transition-transform",p?"translate-x-5 bg-white":"translate-x-0 bg-white dark:bg-[#a1a1aa]")})})}export{de as SettingsModal};
@@ -1 +0,0 @@
1
- import{r as o,j as e}from"./vendor-react-Dm1xU4bP.js";import{D as I,a as D,b as T}from"./dialog-C8VDk-ma.js";import{u as q,c as h}from"./index-9t-WxRrl.js";import{e as v}from"./useRequest-BJp539HQ.js";import{P as M,R as z,X as R,e as H}from"./vendor-icons-DlzC8I7m.js";import"./vendor-markdown-DIcugY1e.js";import"./vendor-monaco-w6PwaWGP.js";import"./vendor-radix-CfxBc_4-.js";const J=async()=>{const a=await fetch("/skills");if(!a.ok)throw new Error("Failed to fetch skills");return a.json()},$=async()=>{const a=await fetch("/skills/catalog");if(!a.ok)throw new Error("Failed to fetch catalog");return a.json()};function se(){const{isSkillsOpen:a,toggleSkills:r}=q(),[d,c]=o.useState(null),[f,n]=o.useState(""),[p,u]=o.useState(!1),[C,i]=o.useState(!1),[F,x]=o.useState("confirm"),[w,m]=o.useState(null),[k,j]=o.useState(null),{data:b=[],loading:E,run:g}=v(J,{refreshDeps:[a],ready:a,onSuccess:t=>{t.length>0&&!d&&c(t[0].id)}}),{data:s=[]}=v($,{refreshDeps:[a],ready:a}),{runAsync:y}=v(async t=>{await fetch(`/skills/${encodeURIComponent(t)}`,{method:"DELETE"})},{manual:!0,onSuccess:g}),{runAsync:A,loading:S}=v(async(t,N)=>{if(!(await fetch(`/skills/${encodeURIComponent(t)}/toggle`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({enabled:N})})).ok)throw new Error("Failed to toggle skill")},{manual:!0,onSuccess:g}),O=b.filter(t=>t.name.toLowerCase().includes(f.toLowerCase())),l=o.useMemo(()=>b.find(t=>t.id===d)??b[0],[b,d]),L=()=>{u(!0)},P=t=>{j(t),m(null),x("confirm"),i(!0)},U=async()=>{if(k){x("installing"),m(null);try{const t=await fetch("/skills/install",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(k)}),N=await t.json().catch(()=>({}));if(!t.ok||N.success===!1)throw new Error(N.error||"Failed to install skill");await g(),i(!1),u(!1)}catch(t){m(t instanceof Error?t.message:"Failed to install skill"),x("failed")}}};return e.jsxs(o.Fragment,{children:[e.jsx(I,{open:a,onOpenChange:r,children:e.jsxs(D,{className:"sm:max-w-[820px] h-[620px] p-0 overflow-hidden gap-0 bg-white dark:bg-[#09090b] border border-[#E5E7EB] dark:border-zinc-800 rounded-xl flex flex-col","aria-describedby":void 0,hideCloseButton:!0,children:[e.jsx(T,{className:"sr-only",children:"Skills"}),e.jsx("div",{className:"flex h-full min-h-0",children:e.jsxs("div",{className:"flex-1 p-8 flex flex-col gap-5 min-h-0",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsx("h2",{className:"text-lg font-semibold text-[#111827] dark:text-[#E5E5E5] font-mono",children:"Skills"}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsxs("button",{onClick:L,className:"h-8 px-3 rounded-md bg-[#E5E7EB] text-[#111827] dark:bg-[#27272a] dark:text-[#E5E5E5] text-xs font-mono font-semibold flex items-center gap-1 hover:bg-[#D1D5DB] dark:hover:bg-[#32323a]",children:[e.jsx(M,{className:"h-3.5 w-3.5"}),"Install skill"]}),e.jsx("button",{onClick:g,className:"h-8 w-8 rounded-md text-[#9CA3AF] hover:text-[#111827] hover:bg-[#E5E7EB] dark:text-[#71717a] dark:hover:text-[#E5E5E5] dark:hover:bg-[#27272a] transition-colors flex items-center justify-center",disabled:E,children:e.jsx(z,{className:h("h-4 w-4",E&&"animate-spin")})}),e.jsx("button",{onClick:r,className:"h-8 w-8 rounded-md text-[#9CA3AF] hover:text-[#111827] hover:bg-[#E5E7EB] dark:text-[#71717a] dark:hover:text-[#E5E5E5] dark:hover:bg-[#27272a] transition-colors flex items-center justify-center",children:e.jsx(R,{className:"h-4 w-4"})})]})]}),e.jsxs("div",{className:"flex gap-5 flex-1 min-h-0 overflow-hidden",children:[e.jsxs("div",{className:"w-[220px] flex flex-col gap-3 min-h-0 overflow-hidden",children:[e.jsx("div",{className:"text-sm font-mono font-semibold text-[#111827] dark:text-[#E5E5E5] shrink-0",children:"Installed"}),e.jsx("input",{value:f,onChange:t=>n(t.target.value),placeholder:"Search skills...",className:"h-8 rounded-md bg-[#F3F4F6] dark:bg-[#18181b] px-3 text-[12px] text-[#111827] dark:text-[#E5E5E5] font-mono placeholder:text-[#9CA3AF] dark:placeholder:text-[#71717a] border border-transparent focus:outline-none focus:border-[#E5E7EB] dark:focus:border-[#27272a] shrink-0"}),e.jsxs("div",{className:"flex flex-col gap-2 overflow-y-auto flex-1 min-h-0 pr-1",children:[O.length===0&&!E&&e.jsx("div",{className:"text-center py-8 text-[#9CA3AF] dark:text-[#71717a] text-sm font-mono",children:"No skills installed"}),O.map(t=>e.jsxs("button",{onClick:()=>c(t.id),className:h("text-left rounded-lg px-3 py-2 flex flex-col gap-1 transition-colors",t.id===d?"bg-[#E5E7EB] dark:bg-[#111827]":"bg-white dark:bg-[#0C0C0C] hover:bg-[#F3F4F6] dark:hover:bg-[#18181b]"),children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsx("span",{className:"text-[13px] font-mono font-semibold text-[#111827] dark:text-[#E5E5E5]",children:t.name}),e.jsx("span",{className:h("text-[11px] font-mono font-semibold",t.enabled?"text-[#16A34A] dark:text-[#22C55E]":"text-[#f59e0b]"),children:t.enabled?"Enabled":"Disabled"})]}),e.jsx("span",{className:"text-[11px] font-mono text-[#6B7280] dark:text-[#94a3b8] truncate",children:t.description||"No description"})]},t.id))]})]}),l?e.jsxs("div",{className:"flex-1 flex flex-col gap-3 overflow-y-auto pr-2 min-h-0 overflow-hidden",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsx("span",{className:"text-base font-mono font-semibold text-[#111827] dark:text-[#E5E5E5]",children:l.name}),e.jsxs("span",{className:"text-xs font-mono text-[#9CA3AF] dark:text-[#71717a]",children:["v",l.version]})]}),e.jsx("p",{className:"text-[12px] font-mono text-[#6B7280] dark:text-[#94a3b8]",children:l.description||"No description available"}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("button",{onClick:()=>A(l.name,!l.enabled),disabled:S,className:h("h-7 px-3 rounded-md text-[11px] font-mono font-semibold",l.enabled?"bg-[#E5E7EB] text-[#111827] hover:bg-[#D1D5DB] dark:bg-[#27272a] dark:text-[#E5E5E5] dark:hover:bg-[#32323a]":"bg-[#16A34A] text-white hover:bg-[#15803D] dark:bg-[#22C55E] dark:text-[#0C0C0C] dark:hover:bg-[#1ea34b]",S&&"opacity-60 cursor-not-allowed"),children:S?"Saving...":l.enabled?"Disable":"Enable"}),e.jsx("button",{disabled:!0,title:"Editing not supported yet",className:"h-7 px-3 rounded-md bg-[#F3F4F6] dark:bg-[#18181b] text-[#111827] dark:text-[#E5E5E5] text-[11px] font-mono font-semibold opacity-60 cursor-not-allowed",children:"Edit"}),e.jsxs("button",{onClick:()=>y(l.name),className:"h-7 px-3 rounded-md bg-[#F3F4F6] dark:bg-[#18181b] text-[#ef4444] text-[11px] font-mono font-semibold flex items-center gap-1",children:[e.jsx(H,{className:"h-3 w-3"}),"Uninstall"]})]}),e.jsx("div",{className:"h-px bg-[#E5E7EB] dark:bg-[#1f2937]"}),e.jsxs("div",{className:"flex flex-col gap-2",children:[e.jsx("span",{className:"text-sm font-mono font-semibold text-[#111827] dark:text-[#E5E5E5]",children:"Details"}),e.jsxs("div",{className:"grid grid-cols-2 gap-2 text-[12px] font-mono",children:[e.jsx("span",{className:"text-[#9CA3AF] dark:text-[#71717a]",children:"Provider"}),e.jsx("span",{className:"text-[#111827] dark:text-[#E5E5E5]",children:l.provider}),e.jsx("span",{className:"text-[#9CA3AF] dark:text-[#71717a]",children:"Location"}),e.jsx("span",{className:"text-[#111827] dark:text-[#E5E5E5] truncate",children:l.location})]})]}),l.capabilities.length>0&&e.jsxs(e.Fragment,{children:[e.jsx("span",{className:"text-sm font-mono font-semibold text-[#111827] dark:text-[#E5E5E5]",children:"Capabilities"}),e.jsx("div",{className:"flex flex-wrap gap-2",children:l.capabilities.map(t=>e.jsx("span",{className:"px-2 py-1 rounded-md bg-[#F3F4F6] dark:bg-[#18181b] text-[11px] font-mono text-[#111827] dark:text-[#E5E5E5]",children:t},t))})]}),l.allowedTools.length>0&&e.jsxs(e.Fragment,{children:[e.jsxs("span",{className:"text-sm font-mono font-semibold text-[#111827] dark:text-[#E5E5E5]",children:["Allowed Tools (",l.allowedTools.length,")"]}),e.jsx("div",{className:"flex flex-wrap gap-2",children:l.allowedTools.map(t=>e.jsx("span",{className:"px-2 py-1 rounded-md bg-[#F3F4F6] dark:bg-[#18181b] text-[11px] font-mono text-[#111827] dark:text-[#E5E5E5]",children:t},t))})]})]}):e.jsx("div",{className:"flex-1 flex items-center justify-center",children:e.jsx("span",{className:"text-[#9CA3AF] dark:text-[#71717a] text-sm font-mono",children:"Select a skill to view details"})})]})]})})]})}),e.jsx(G,{open:p,catalog:s,installed:b.map(t=>t.name),onOpenChange:u,onInstall:P}),e.jsx(Q,{open:C,status:F,error:w,onCancel:()=>i(!1),onConfirm:U,onRetry:()=>x("confirm")})]})}function B({active:a,children:r,onClick:d}){return e.jsx("button",{onClick:d,className:h("px-3 py-1 rounded text-[12px] font-mono font-semibold transition-colors",a?"bg-[#E5E7EB] text-[#111827] dark:bg-[#27272a] dark:text-[#E5E5E5]":"text-[#6B7280] dark:text-[#a1a1aa]"),children:r})}function G({open:a,onOpenChange:r,onInstall:d,catalog:c,installed:f}){const[n,p]=o.useState("catalog"),[u,C]=o.useState(""),[i,F]=o.useState(null),[x,w]=o.useState(""),[m,k]=o.useState(""),j=c.filter(s=>s.name.toLowerCase().includes(u.toLowerCase())),b=()=>{if(n==="catalog"){if(!i)return;d({source:"catalog",name:i});return}if(n==="repo"){if(!x)return;d({source:"repo",url:x});return}m&&d({source:"local",path:m})},E=i?f.includes(i):!1,g=n==="catalog"&&(!i||E)||n==="repo"&&!x||n==="local"&&!m;return e.jsx(I,{open:a,onOpenChange:r,children:e.jsxs(D,{className:"sm:max-w-[540px] p-0 overflow-hidden gap-0 bg-white dark:bg-[#09090b] border border-[#E5E7EB] dark:border-zinc-800 rounded-xl","aria-describedby":void 0,hideCloseButton:!0,children:[e.jsx(T,{className:"sr-only",children:"Install Skill"}),e.jsxs("div",{className:"p-6 flex flex-col gap-4",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsx("h3",{className:"text-base font-semibold text-[#111827] dark:text-[#E5E5E5] font-mono",children:"Install Skill"}),e.jsx("button",{onClick:()=>r(!1),className:"h-8 w-8 rounded-md text-[#9CA3AF] hover:text-[#111827] hover:bg-[#E5E7EB] dark:text-[#71717a] dark:hover:text-[#E5E5E5] dark:hover:bg-[#27272a] transition-colors flex items-center justify-center",children:e.jsx(R,{className:"h-4 w-4"})})]}),e.jsxs("div",{className:"flex items-center gap-2 p-1 rounded-md bg-[#F3F4F6] dark:bg-[#18181b] w-fit",children:[e.jsx(B,{active:n==="catalog",onClick:()=>p("catalog"),children:"Catalog"}),e.jsx(B,{active:n==="repo",onClick:()=>p("repo"),children:"Repo"}),e.jsx(B,{active:n==="local",onClick:()=>p("local"),children:"Local"})]}),e.jsxs("div",{className:"flex flex-col gap-3",children:[n==="catalog"&&e.jsxs(e.Fragment,{children:[e.jsx("input",{value:u,onChange:s=>C(s.target.value),placeholder:"Search catalog...",className:"h-8 rounded-md bg-[#F3F4F6] dark:bg-[#18181b] px-3 text-[12px] text-[#111827] dark:text-[#E5E5E5] font-mono placeholder:text-[#9CA3AF] dark:placeholder:text-[#71717a] border border-transparent focus:outline-none focus:border-[#E5E7EB] dark:focus:border-[#27272a]"}),e.jsxs("div",{className:"flex flex-col gap-2 max-h-[240px] overflow-y-auto",children:[j.length===0&&e.jsx("div",{className:"text-center py-6 text-[#9CA3AF] dark:text-[#71717a] text-sm font-mono",children:"No skills found"}),j.map(s=>{const y=f.includes(s.name),A=i===s.name;return e.jsxs("button",{onClick:()=>F(s.name),className:h("rounded-lg px-3 py-2 flex flex-col gap-1 text-left transition-colors",A?"bg-[#E5E7EB] dark:bg-[#111827]":"bg-white dark:bg-[#0C0C0C] hover:bg-[#F3F4F6] dark:hover:bg-[#18181b]"),children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsx("span",{className:"text-[13px] font-mono font-semibold text-[#111827] dark:text-[#E5E5E5]",children:s.name}),e.jsx("span",{className:h("text-[10px] font-mono px-2 py-0.5 rounded",s.tag==="Official"?"bg-[#22C55E]/20 text-[#16A34A] dark:text-[#22C55E]":"bg-[#3b82f6]/20 text-[#3b82f6]"),children:s.tag})]}),e.jsx("span",{className:"text-[11px] font-mono text-[#6B7280] dark:text-[#94a3b8]",children:s.description}),e.jsxs("span",{className:"text-[10px] font-mono text-[#9CA3AF] dark:text-[#71717a]",children:["by ",s.author]}),y&&e.jsx("span",{className:"text-[10px] font-mono text-[#16A34A] dark:text-[#22C55E]",children:"Installed"})]},s.name)})]})]}),n==="repo"&&e.jsxs("div",{className:"flex flex-col gap-2",children:[e.jsx("span",{className:"text-[12px] font-mono text-[#6B7280] dark:text-[#a1a1aa]",children:"GitHub URL"}),e.jsx("input",{value:x,onChange:s=>w(s.target.value),placeholder:"https://github.com/org/skill",className:"h-8 rounded-md bg-[#F3F4F6] dark:bg-[#18181b] px-3 text-[12px] text-[#111827] dark:text-[#E5E5E5] font-mono placeholder:text-[#9CA3AF] dark:placeholder:text-[#71717a] border border-transparent focus:outline-none focus:border-[#E5E7EB] dark:focus:border-[#27272a]"}),e.jsx("span",{className:"inline-flex w-fit px-2 py-0.5 rounded bg-[#F3F4F6] dark:bg-[#18181b] text-[11px] font-mono text-[#6B7280] dark:text-[#94a3b8]",children:"Private repo supported (backend support required)"})]}),n==="local"&&e.jsxs("div",{className:"flex flex-col gap-2",children:[e.jsx("span",{className:"text-[12px] font-mono text-[#6B7280] dark:text-[#a1a1aa]",children:"Local path"}),e.jsx("input",{value:m,onChange:s=>k(s.target.value),placeholder:"/Users/bytedance/skills/my-skill",className:"h-8 rounded-md bg-[#F3F4F6] dark:bg-[#18181b] px-3 text-[12px] text-[#111827] dark:text-[#E5E5E5] font-mono placeholder:text-[#9CA3AF] dark:placeholder:text-[#71717a] border border-transparent focus:outline-none focus:border-[#E5E7EB] dark:focus:border-[#27272a]"})]})]}),e.jsxs("div",{className:"flex items-center justify-end gap-2 pt-2",children:[e.jsx("button",{onClick:()=>r(!1),className:"h-7 px-3 rounded-md bg-[#F3F4F6] dark:bg-[#18181b] text-[#111827] dark:text-[#E5E5E5] text-[11px] font-mono font-semibold",children:"Cancel"}),e.jsx("button",{onClick:b,disabled:g,className:h("h-7 px-3 rounded-md text-[11px] font-mono font-semibold",g?"bg-[#E5E7EB] text-[#9CA3AF] cursor-not-allowed dark:bg-[#27272a] dark:text-[#71717a]":"bg-[#16A34A] text-white dark:bg-[#22C55E] dark:text-[#0C0C0C]"),children:"Install"})]})]})]})})}function Q({open:a,status:r,error:d,onCancel:c,onConfirm:f,onRetry:n}){return e.jsx(I,{open:a,onOpenChange:p=>!p&&c(),children:e.jsxs(D,{className:"sm:max-w-[320px] p-0 overflow-hidden gap-0 bg-white dark:bg-[#09090b] border border-[#E5E7EB] dark:border-zinc-800 rounded-xl","aria-describedby":void 0,hideCloseButton:!0,children:[e.jsx(T,{className:"sr-only",children:"Install Status"}),e.jsxs("div",{className:"p-5 flex flex-col gap-3",children:[r==="confirm"&&e.jsxs(e.Fragment,{children:[e.jsx("h4",{className:"text-sm font-mono font-semibold text-[#111827] dark:text-[#E5E5E5]",children:"Confirm Install"}),e.jsx("p",{className:"text-[12px] font-mono text-[#6B7280] dark:text-[#94a3b8]",children:"Install selected skill?"}),e.jsxs("div",{className:"flex items-center justify-end gap-2",children:[e.jsx("button",{onClick:c,className:"h-6 px-2.5 rounded-md bg-[#F3F4F6] dark:bg-[#18181b] text-[#111827] dark:text-[#E5E5E5] text-[11px] font-mono font-semibold",children:"Cancel"}),e.jsx("button",{onClick:f,className:"h-6 px-2.5 rounded-md bg-[#16A34A] text-white dark:bg-[#22C55E] dark:text-[#0C0C0C] text-[11px] font-mono font-semibold",children:"Install"})]})]}),r==="installing"&&e.jsxs(e.Fragment,{children:[e.jsx("h4",{className:"text-sm font-mono font-semibold text-[#111827] dark:text-[#E5E5E5]",children:"Installing"}),e.jsx("p",{className:"text-[12px] font-mono text-[#6B7280] dark:text-[#94a3b8]",children:"Downloading and verifying…"}),e.jsx("div",{className:"h-1.5 rounded-full bg-[#E5E7EB] dark:bg-[#18181b] overflow-hidden",children:e.jsx("div",{className:"h-full w-[45%] bg-[#16A34A] dark:bg-[#22C55E]"})}),e.jsx("span",{className:"text-[11px] font-mono text-[#9CA3AF] dark:text-[#71717a]",children:"~35%"}),e.jsx("button",{onClick:c,className:"self-end h-6 px-2.5 rounded-md bg-[#F3F4F6] dark:bg-[#18181b] text-[#111827] dark:text-[#E5E5E5] text-[11px] font-mono font-semibold",children:"Hide"})]}),r==="failed"&&e.jsxs(e.Fragment,{children:[e.jsx("h4",{className:"text-sm font-mono font-semibold text-[#111827] dark:text-[#E5E5E5]",children:"Install Failed"}),e.jsx("p",{className:"text-[12px] font-mono text-[#f87171]",children:d||"Installation failed."}),e.jsx("p",{className:"text-[11px] font-mono text-[#6B7280] dark:text-[#94a3b8]",children:"Check access and try again."}),e.jsxs("div",{className:"flex items-center justify-end gap-2",children:[e.jsx("button",{onClick:c,className:"h-6 px-2.5 rounded-md bg-[#F3F4F6] dark:bg-[#18181b] text-[#111827] dark:text-[#E5E5E5] text-[11px] font-mono font-semibold",children:"Close"}),e.jsx("button",{onClick:n,className:"h-6 px-2.5 rounded-md bg-[#16A34A] text-white dark:bg-[#22C55E] dark:text-[#0C0C0C] text-[11px] font-mono font-semibold",children:"Retry"})]})]})]})]})})}export{se as SkillsModal};
@@ -1 +0,0 @@
1
- import{r as o,j as a}from"./vendor-react-Dm1xU4bP.js";import{q as f,r as g,s as d,t as u,u as i,O as l,D as r}from"./vendor-radix-CfxBc_4-.js";import{c as n}from"./index-9t-WxRrl.js";import{X as x}from"./vendor-icons-DlzC8I7m.js";const k=f,y=g,c=o.forwardRef(({className:t,...e},s)=>a.jsx(l,{ref:s,className:n("fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",t),...e}));c.displayName=l.displayName;const N=o.forwardRef(({className:t,children:e,hideCloseButton:s,...m},p)=>a.jsxs(y,{children:[a.jsx(c,{}),a.jsxs(d,{ref:p,className:n("fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg",t),...m,children:[e,!s&&a.jsxs(u,{className:"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground",children:[a.jsx(x,{className:"h-4 w-4"}),a.jsx("span",{className:"sr-only",children:"Close"})]})]})]}));N.displayName=d.displayName;const b=o.forwardRef(({className:t,...e},s)=>a.jsx(i,{ref:s,className:n("text-lg font-semibold leading-none tracking-tight",t),...e}));b.displayName=i.displayName;const j=o.forwardRef(({className:t,...e},s)=>a.jsx(r,{ref:s,className:n("text-sm text-muted-foreground",t),...e}));j.displayName=r.displayName;export{k as D,N as a,b};
@@ -1,10 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/vendor-xterm-9CEnUXvW.css"])))=>i.map(i=>d[i]);
2
- var Ws=Object.defineProperty;var Hs=(t,e,s)=>e in t?Ws(t,e,{enumerable:!0,configurable:!0,writable:!0,value:s}):t[e]=s;var nt=(t,e,s)=>Hs(t,typeof e!="symbol"?e+"":e,s);import{r as p,j as l,R as Ze,i as Qs}from"./vendor-react-Dm1xU4bP.js";import{_ as Oe}from"./vendor-markdown-DIcugY1e.js";import{S as Js,R as ps,V as Ks,C as Ys,a as xs,b as Xs,P as en,c as bs,d as tn,T as sn,e as ys,f as nn,g as rn,h as an}from"./vendor-radix-CfxBc_4-.js";import{P as Bt,T as Pt,S as $t,a as Dt,b as Zt,C as on,c as ln,X as dn,d as cn,e as un,G as fn,F as hn,f as gn,g as ct,L as Qe,h as mn,i as Ve,j as pn,k as xn,l as vs,H as bn}from"./vendor-icons-DlzC8I7m.js";import"./vendor-monaco-w6PwaWGP.js";function ks(t){var e,s,n="";if(typeof t=="string"||typeof t=="number")n+=t;else if(typeof t=="object")if(Array.isArray(t)){var r=t.length;for(e=0;e<r;e++)t[e]&&(s=ks(t[e]))&&(n&&(n+=" "),n+=s)}else for(s in t)t[s]&&(n&&(n+=" "),n+=s);return n}function ws(){for(var t,e,s=0,n="",r=arguments.length;s<r;s++)(t=arguments[s])&&(e=ks(t))&&(n&&(n+=" "),n+=e);return n}const Lt=t=>typeof t=="boolean"?`${t}`:t===0?"0":t,Ut=ws,yn=(t,e)=>s=>{var n;if((e==null?void 0:e.variants)==null)return Ut(t,s==null?void 0:s.class,s==null?void 0:s.className);const{variants:r,defaultVariants:a}=e,o=Object.keys(r).map(c=>{const u=s==null?void 0:s[c],f=a==null?void 0:a[c];if(u===null)return null;const g=Lt(u)||Lt(f);return r[c][g]}),i=s&&Object.entries(s).reduce((c,u)=>{let[f,g]=u;return g===void 0||(c[f]=g),c},{}),d=e==null||(n=e.compoundVariants)===null||n===void 0?void 0:n.reduce((c,u)=>{let{class:f,className:g,...h}=u;return Object.entries(h).every(m=>{let[b,y]=m;return Array.isArray(y)?y.includes({...a,...i}[b]):{...a,...i}[b]===y})?[...c,f,g]:c},[]);return Ut(t,o,d,s==null?void 0:s.class,s==null?void 0:s.className)},St="-",vn=t=>{const e=wn(t),{conflictingClassGroups:s,conflictingClassGroupModifiers:n}=t;return{getClassGroupId:o=>{const i=o.split(St);return i[0]===""&&i.length!==1&&i.shift(),_s(i,e)||kn(o)},getConflictingClassGroupIds:(o,i)=>{const d=s[o]||[];return i&&n[o]?[...d,...n[o]]:d}}},_s=(t,e)=>{var o;if(t.length===0)return e.classGroupId;const s=t[0],n=e.nextPart.get(s),r=n?_s(t.slice(1),n):void 0;if(r)return r;if(e.validators.length===0)return;const a=t.join(St);return(o=e.validators.find(({validator:i})=>i(a)))==null?void 0:o.classGroupId},Vt=/^\[(.+)\]$/,kn=t=>{if(Vt.test(t)){const e=Vt.exec(t)[1],s=e==null?void 0:e.substring(0,e.indexOf(":"));if(s)return"arbitrary.."+s}},wn=t=>{const{theme:e,prefix:s}=t,n={nextPart:new Map,validators:[]};return Cn(Object.entries(t.classGroups),s).forEach(([a,o])=>{ut(o,n,a,e)}),n},ut=(t,e,s,n)=>{t.forEach(r=>{if(typeof r=="string"){const a=r===""?e:qt(e,r);a.classGroupId=s;return}if(typeof r=="function"){if(_n(r)){ut(r(n),e,s,n);return}e.validators.push({validator:r,classGroupId:s});return}Object.entries(r).forEach(([a,o])=>{ut(o,qt(e,a),s,n)})})},qt=(t,e)=>{let s=t;return e.split(St).forEach(n=>{s.nextPart.has(n)||s.nextPart.set(n,{nextPart:new Map,validators:[]}),s=s.nextPart.get(n)}),s},_n=t=>t.isThemeGetter,Cn=(t,e)=>e?t.map(([s,n])=>{const r=n.map(a=>typeof a=="string"?e+a:typeof a=="object"?Object.fromEntries(Object.entries(a).map(([o,i])=>[e+o,i])):a);return[s,r]}):t,Sn=t=>{if(t<1)return{get:()=>{},set:()=>{}};let e=0,s=new Map,n=new Map;const r=(a,o)=>{s.set(a,o),e++,e>t&&(e=0,n=s,s=new Map)};return{get(a){let o=s.get(a);if(o!==void 0)return o;if((o=n.get(a))!==void 0)return r(a,o),o},set(a,o){s.has(a)?s.set(a,o):r(a,o)}}},Cs="!",En=t=>{const{separator:e,experimentalParseClassName:s}=t,n=e.length===1,r=e[0],a=e.length,o=i=>{const d=[];let c=0,u=0,f;for(let y=0;y<i.length;y++){let v=i[y];if(c===0){if(v===r&&(n||i.slice(y,y+a)===e)){d.push(i.slice(u,y)),u=y+a;continue}if(v==="/"){f=y;continue}}v==="["?c++:v==="]"&&c--}const g=d.length===0?i:i.substring(u),h=g.startsWith(Cs),m=h?g.substring(1):g,b=f&&f>u?f-u:void 0;return{modifiers:d,hasImportantModifier:h,baseClassName:m,maybePostfixModifierPosition:b}};return s?i=>s({className:i,parseClassName:o}):o},jn=t=>{if(t.length<=1)return t;const e=[];let s=[];return t.forEach(n=>{n[0]==="["?(e.push(...s.sort(),n),s=[]):s.push(n)}),e.push(...s.sort()),e},In=t=>({cache:Sn(t.cacheSize),parseClassName:En(t),...vn(t)}),Nn=/\s+/,Tn=(t,e)=>{const{parseClassName:s,getClassGroupId:n,getConflictingClassGroupIds:r}=e,a=[],o=t.trim().split(Nn);let i="";for(let d=o.length-1;d>=0;d-=1){const c=o[d],{modifiers:u,hasImportantModifier:f,baseClassName:g,maybePostfixModifierPosition:h}=s(c);let m=!!h,b=n(m?g.substring(0,h):g);if(!b){if(!m){i=c+(i.length>0?" "+i:i);continue}if(b=n(g),!b){i=c+(i.length>0?" "+i:i);continue}m=!1}const y=jn(u).join(":"),v=f?y+Cs:y,I=v+b;if(a.includes(I))continue;a.push(I);const q=r(b,m);for(let Q=0;Q<q.length;++Q){const $=q[Q];a.push(v+$)}i=c+(i.length>0?" "+i:i)}return i};function An(){let t=0,e,s,n="";for(;t<arguments.length;)(e=arguments[t++])&&(s=Ss(e))&&(n&&(n+=" "),n+=s);return n}const Ss=t=>{if(typeof t=="string")return t;let e,s="";for(let n=0;n<t.length;n++)t[n]&&(e=Ss(t[n]))&&(s&&(s+=" "),s+=e);return s};function Mn(t,...e){let s,n,r,a=o;function o(d){const c=e.reduce((u,f)=>f(u),t());return s=In(c),n=s.cache.get,r=s.cache.set,a=i,i(d)}function i(d){const c=n(d);if(c)return c;const u=Tn(d,s);return r(d,u),u}return function(){return a(An.apply(null,arguments))}}const P=t=>{const e=s=>s[t]||[];return e.isThemeGetter=!0,e},Es=/^\[(?:([a-z-]+):)?(.+)\]$/i,Fn=/^\d+\/\d+$/,Rn=new Set(["px","full","screen"]),On=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,zn=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,Bn=/^(rgba?|hsla?|hwb|(ok)?(lab|lch))\(.+\)$/,Pn=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,$n=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,fe=t=>Ie(t)||Rn.has(t)||Fn.test(t),xe=t=>ze(t,"length",Wn),Ie=t=>!!t&&!Number.isNaN(Number(t)),rt=t=>ze(t,"number",Ie),Pe=t=>!!t&&Number.isInteger(Number(t)),Dn=t=>t.endsWith("%")&&Ie(t.slice(0,-1)),N=t=>Es.test(t),be=t=>On.test(t),Zn=new Set(["length","size","percentage"]),Ln=t=>ze(t,Zn,js),Un=t=>ze(t,"position",js),Vn=new Set(["image","url"]),qn=t=>ze(t,Vn,Qn),Gn=t=>ze(t,"",Hn),$e=()=>!0,ze=(t,e,s)=>{const n=Es.exec(t);return n?n[1]?typeof e=="string"?n[1]===e:e.has(n[1]):s(n[2]):!1},Wn=t=>zn.test(t)&&!Bn.test(t),js=()=>!1,Hn=t=>Pn.test(t),Qn=t=>$n.test(t),Jn=()=>{const t=P("colors"),e=P("spacing"),s=P("blur"),n=P("brightness"),r=P("borderColor"),a=P("borderRadius"),o=P("borderSpacing"),i=P("borderWidth"),d=P("contrast"),c=P("grayscale"),u=P("hueRotate"),f=P("invert"),g=P("gap"),h=P("gradientColorStops"),m=P("gradientColorStopPositions"),b=P("inset"),y=P("margin"),v=P("opacity"),I=P("padding"),q=P("saturate"),Q=P("scale"),$=P("sepia"),D=P("skew"),X=P("space"),J=P("translate"),V=()=>["auto","contain","none"],G=()=>["auto","hidden","clip","visible","scroll"],ne=()=>["auto",N,e],S=()=>[N,e],Z=()=>["",fe,xe],z=()=>["auto",Ie,N],K=()=>["bottom","center","left","left-bottom","left-top","right","right-bottom","right-top","top"],se=()=>["solid","dashed","dotted","double","none"],ee=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],L=()=>["start","end","center","between","around","evenly","stretch"],re=()=>["","0",N],Ce=()=>["auto","avoid","all","avoid-page","page","left","right","column"],Y=()=>[Ie,N];return{cacheSize:500,separator:":",theme:{colors:[$e],spacing:[fe,xe],blur:["none","",be,N],brightness:Y(),borderColor:[t],borderRadius:["none","","full",be,N],borderSpacing:S(),borderWidth:Z(),contrast:Y(),grayscale:re(),hueRotate:Y(),invert:re(),gap:S(),gradientColorStops:[t],gradientColorStopPositions:[Dn,xe],inset:ne(),margin:ne(),opacity:Y(),padding:S(),saturate:Y(),scale:Y(),sepia:re(),skew:Y(),space:S(),translate:S()},classGroups:{aspect:[{aspect:["auto","square","video",N]}],container:["container"],columns:[{columns:[be]}],"break-after":[{"break-after":Ce()}],"break-before":[{"break-before":Ce()}],"break-inside":[{"break-inside":["auto","avoid","avoid-page","avoid-column"]}],"box-decoration":[{"box-decoration":["slice","clone"]}],box:[{box:["border","content"]}],display:["block","inline-block","inline","flex","inline-flex","table","inline-table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row-group","table-row","flow-root","grid","inline-grid","contents","list-item","hidden"],float:[{float:["right","left","none","start","end"]}],clear:[{clear:["left","right","both","none","start","end"]}],isolation:["isolate","isolation-auto"],"object-fit":[{object:["contain","cover","fill","none","scale-down"]}],"object-position":[{object:[...K(),N]}],overflow:[{overflow:G()}],"overflow-x":[{"overflow-x":G()}],"overflow-y":[{"overflow-y":G()}],overscroll:[{overscroll:V()}],"overscroll-x":[{"overscroll-x":V()}],"overscroll-y":[{"overscroll-y":V()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:[b]}],"inset-x":[{"inset-x":[b]}],"inset-y":[{"inset-y":[b]}],start:[{start:[b]}],end:[{end:[b]}],top:[{top:[b]}],right:[{right:[b]}],bottom:[{bottom:[b]}],left:[{left:[b]}],visibility:["visible","invisible","collapse"],z:[{z:["auto",Pe,N]}],basis:[{basis:ne()}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["wrap","wrap-reverse","nowrap"]}],flex:[{flex:["1","auto","initial","none",N]}],grow:[{grow:re()}],shrink:[{shrink:re()}],order:[{order:["first","last","none",Pe,N]}],"grid-cols":[{"grid-cols":[$e]}],"col-start-end":[{col:["auto",{span:["full",Pe,N]},N]}],"col-start":[{"col-start":z()}],"col-end":[{"col-end":z()}],"grid-rows":[{"grid-rows":[$e]}],"row-start-end":[{row:["auto",{span:[Pe,N]},N]}],"row-start":[{"row-start":z()}],"row-end":[{"row-end":z()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":["auto","min","max","fr",N]}],"auto-rows":[{"auto-rows":["auto","min","max","fr",N]}],gap:[{gap:[g]}],"gap-x":[{"gap-x":[g]}],"gap-y":[{"gap-y":[g]}],"justify-content":[{justify:["normal",...L()]}],"justify-items":[{"justify-items":["start","end","center","stretch"]}],"justify-self":[{"justify-self":["auto","start","end","center","stretch"]}],"align-content":[{content:["normal",...L(),"baseline"]}],"align-items":[{items:["start","end","center","baseline","stretch"]}],"align-self":[{self:["auto","start","end","center","stretch","baseline"]}],"place-content":[{"place-content":[...L(),"baseline"]}],"place-items":[{"place-items":["start","end","center","baseline","stretch"]}],"place-self":[{"place-self":["auto","start","end","center","stretch"]}],p:[{p:[I]}],px:[{px:[I]}],py:[{py:[I]}],ps:[{ps:[I]}],pe:[{pe:[I]}],pt:[{pt:[I]}],pr:[{pr:[I]}],pb:[{pb:[I]}],pl:[{pl:[I]}],m:[{m:[y]}],mx:[{mx:[y]}],my:[{my:[y]}],ms:[{ms:[y]}],me:[{me:[y]}],mt:[{mt:[y]}],mr:[{mr:[y]}],mb:[{mb:[y]}],ml:[{ml:[y]}],"space-x":[{"space-x":[X]}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":[X]}],"space-y-reverse":["space-y-reverse"],w:[{w:["auto","min","max","fit","svw","lvw","dvw",N,e]}],"min-w":[{"min-w":[N,e,"min","max","fit"]}],"max-w":[{"max-w":[N,e,"none","full","min","max","fit","prose",{screen:[be]},be]}],h:[{h:[N,e,"auto","min","max","fit","svh","lvh","dvh"]}],"min-h":[{"min-h":[N,e,"min","max","fit","svh","lvh","dvh"]}],"max-h":[{"max-h":[N,e,"min","max","fit","svh","lvh","dvh"]}],size:[{size:[N,e,"auto","min","max","fit"]}],"font-size":[{text:["base",be,xe]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:["thin","extralight","light","normal","medium","semibold","bold","extrabold","black",rt]}],"font-family":[{font:[$e]}],"fvn-normal":["normal-nums"],"fvn-ordinal":["ordinal"],"fvn-slashed-zero":["slashed-zero"],"fvn-figure":["lining-nums","oldstyle-nums"],"fvn-spacing":["proportional-nums","tabular-nums"],"fvn-fraction":["diagonal-fractions","stacked-fractions"],tracking:[{tracking:["tighter","tight","normal","wide","wider","widest",N]}],"line-clamp":[{"line-clamp":["none",Ie,rt]}],leading:[{leading:["none","tight","snug","normal","relaxed","loose",fe,N]}],"list-image":[{"list-image":["none",N]}],"list-style-type":[{list:["none","disc","decimal",N]}],"list-style-position":[{list:["inside","outside"]}],"placeholder-color":[{placeholder:[t]}],"placeholder-opacity":[{"placeholder-opacity":[v]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"text-color":[{text:[t]}],"text-opacity":[{"text-opacity":[v]}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...se(),"wavy"]}],"text-decoration-thickness":[{decoration:["auto","from-font",fe,xe]}],"underline-offset":[{"underline-offset":["auto",fe,N]}],"text-decoration-color":[{decoration:[t]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:S()}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",N]}],whitespace:[{whitespace:["normal","nowrap","pre","pre-line","pre-wrap","break-spaces"]}],break:[{break:["normal","words","all","keep"]}],hyphens:[{hyphens:["none","manual","auto"]}],content:[{content:["none",N]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-opacity":[{"bg-opacity":[v]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:[...K(),Un]}],"bg-repeat":[{bg:["no-repeat",{repeat:["","x","y","round","space"]}]}],"bg-size":[{bg:["auto","cover","contain",Ln]}],"bg-image":[{bg:["none",{"gradient-to":["t","tr","r","br","b","bl","l","tl"]},qn]}],"bg-color":[{bg:[t]}],"gradient-from-pos":[{from:[m]}],"gradient-via-pos":[{via:[m]}],"gradient-to-pos":[{to:[m]}],"gradient-from":[{from:[h]}],"gradient-via":[{via:[h]}],"gradient-to":[{to:[h]}],rounded:[{rounded:[a]}],"rounded-s":[{"rounded-s":[a]}],"rounded-e":[{"rounded-e":[a]}],"rounded-t":[{"rounded-t":[a]}],"rounded-r":[{"rounded-r":[a]}],"rounded-b":[{"rounded-b":[a]}],"rounded-l":[{"rounded-l":[a]}],"rounded-ss":[{"rounded-ss":[a]}],"rounded-se":[{"rounded-se":[a]}],"rounded-ee":[{"rounded-ee":[a]}],"rounded-es":[{"rounded-es":[a]}],"rounded-tl":[{"rounded-tl":[a]}],"rounded-tr":[{"rounded-tr":[a]}],"rounded-br":[{"rounded-br":[a]}],"rounded-bl":[{"rounded-bl":[a]}],"border-w":[{border:[i]}],"border-w-x":[{"border-x":[i]}],"border-w-y":[{"border-y":[i]}],"border-w-s":[{"border-s":[i]}],"border-w-e":[{"border-e":[i]}],"border-w-t":[{"border-t":[i]}],"border-w-r":[{"border-r":[i]}],"border-w-b":[{"border-b":[i]}],"border-w-l":[{"border-l":[i]}],"border-opacity":[{"border-opacity":[v]}],"border-style":[{border:[...se(),"hidden"]}],"divide-x":[{"divide-x":[i]}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":[i]}],"divide-y-reverse":["divide-y-reverse"],"divide-opacity":[{"divide-opacity":[v]}],"divide-style":[{divide:se()}],"border-color":[{border:[r]}],"border-color-x":[{"border-x":[r]}],"border-color-y":[{"border-y":[r]}],"border-color-s":[{"border-s":[r]}],"border-color-e":[{"border-e":[r]}],"border-color-t":[{"border-t":[r]}],"border-color-r":[{"border-r":[r]}],"border-color-b":[{"border-b":[r]}],"border-color-l":[{"border-l":[r]}],"divide-color":[{divide:[r]}],"outline-style":[{outline:["",...se()]}],"outline-offset":[{"outline-offset":[fe,N]}],"outline-w":[{outline:[fe,xe]}],"outline-color":[{outline:[t]}],"ring-w":[{ring:Z()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:[t]}],"ring-opacity":[{"ring-opacity":[v]}],"ring-offset-w":[{"ring-offset":[fe,xe]}],"ring-offset-color":[{"ring-offset":[t]}],shadow:[{shadow:["","inner","none",be,Gn]}],"shadow-color":[{shadow:[$e]}],opacity:[{opacity:[v]}],"mix-blend":[{"mix-blend":[...ee(),"plus-lighter","plus-darker"]}],"bg-blend":[{"bg-blend":ee()}],filter:[{filter:["","none"]}],blur:[{blur:[s]}],brightness:[{brightness:[n]}],contrast:[{contrast:[d]}],"drop-shadow":[{"drop-shadow":["","none",be,N]}],grayscale:[{grayscale:[c]}],"hue-rotate":[{"hue-rotate":[u]}],invert:[{invert:[f]}],saturate:[{saturate:[q]}],sepia:[{sepia:[$]}],"backdrop-filter":[{"backdrop-filter":["","none"]}],"backdrop-blur":[{"backdrop-blur":[s]}],"backdrop-brightness":[{"backdrop-brightness":[n]}],"backdrop-contrast":[{"backdrop-contrast":[d]}],"backdrop-grayscale":[{"backdrop-grayscale":[c]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[u]}],"backdrop-invert":[{"backdrop-invert":[f]}],"backdrop-opacity":[{"backdrop-opacity":[v]}],"backdrop-saturate":[{"backdrop-saturate":[q]}],"backdrop-sepia":[{"backdrop-sepia":[$]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":[o]}],"border-spacing-x":[{"border-spacing-x":[o]}],"border-spacing-y":[{"border-spacing-y":[o]}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["none","all","","colors","opacity","shadow","transform",N]}],duration:[{duration:Y()}],ease:[{ease:["linear","in","out","in-out",N]}],delay:[{delay:Y()}],animate:[{animate:["none","spin","ping","pulse","bounce",N]}],transform:[{transform:["","gpu","none"]}],scale:[{scale:[Q]}],"scale-x":[{"scale-x":[Q]}],"scale-y":[{"scale-y":[Q]}],rotate:[{rotate:[Pe,N]}],"translate-x":[{"translate-x":[J]}],"translate-y":[{"translate-y":[J]}],"skew-x":[{"skew-x":[D]}],"skew-y":[{"skew-y":[D]}],"transform-origin":[{origin:["center","top","top-right","right","bottom-right","bottom","bottom-left","left","top-left",N]}],accent:[{accent:["auto",t]}],appearance:[{appearance:["none","auto"]}],cursor:[{cursor:["auto","default","pointer","wait","text","move","help","not-allowed","none","context-menu","progress","cell","crosshair","vertical-text","alias","copy","no-drop","grab","grabbing","all-scroll","col-resize","row-resize","n-resize","e-resize","s-resize","w-resize","ne-resize","nw-resize","se-resize","sw-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","zoom-in","zoom-out",N]}],"caret-color":[{caret:[t]}],"pointer-events":[{"pointer-events":["none","auto"]}],resize:[{resize:["none","y","x",""]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scroll-m":[{"scroll-m":S()}],"scroll-mx":[{"scroll-mx":S()}],"scroll-my":[{"scroll-my":S()}],"scroll-ms":[{"scroll-ms":S()}],"scroll-me":[{"scroll-me":S()}],"scroll-mt":[{"scroll-mt":S()}],"scroll-mr":[{"scroll-mr":S()}],"scroll-mb":[{"scroll-mb":S()}],"scroll-ml":[{"scroll-ml":S()}],"scroll-p":[{"scroll-p":S()}],"scroll-px":[{"scroll-px":S()}],"scroll-py":[{"scroll-py":S()}],"scroll-ps":[{"scroll-ps":S()}],"scroll-pe":[{"scroll-pe":S()}],"scroll-pt":[{"scroll-pt":S()}],"scroll-pr":[{"scroll-pr":S()}],"scroll-pb":[{"scroll-pb":S()}],"scroll-pl":[{"scroll-pl":S()}],"snap-align":[{snap:["start","end","center","align-none"]}],"snap-stop":[{snap:["normal","always"]}],"snap-type":[{snap:["none","x","y","both"]}],"snap-strictness":[{snap:["mandatory","proximity"]}],touch:[{touch:["auto","none","manipulation"]}],"touch-x":[{"touch-pan":["x","left","right"]}],"touch-y":[{"touch-pan":["y","up","down"]}],"touch-pz":["touch-pinch-zoom"],select:[{select:["none","text","all","auto"]}],"will-change":[{"will-change":["auto","scroll","contents","transform",N]}],fill:[{fill:[t,"none"]}],"stroke-w":[{stroke:[fe,xe,rt]}],stroke:[{stroke:[t,"none"]}],sr:["sr-only","not-sr-only"],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","start","end","top","right","bottom","left"],"inset-x":["right","left"],"inset-y":["top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mt","mr","mb","ml"],mx:["mr","ml"],my:["mt","mb"],size:["w","h"],"font-size":["leading"],"fvn-normal":["fvn-ordinal","fvn-slashed-zero","fvn-figure","fvn-spacing","fvn-fraction"],"fvn-ordinal":["fvn-normal"],"fvn-slashed-zero":["fvn-normal"],"fvn-figure":["fvn-normal"],"fvn-spacing":["fvn-normal"],"fvn-fraction":["fvn-normal"],"line-clamp":["display","overflow"],rounded:["rounded-s","rounded-e","rounded-t","rounded-r","rounded-b","rounded-l","rounded-ss","rounded-se","rounded-ee","rounded-es","rounded-tl","rounded-tr","rounded-br","rounded-bl"],"rounded-s":["rounded-ss","rounded-es"],"rounded-e":["rounded-se","rounded-ee"],"rounded-t":["rounded-tl","rounded-tr"],"rounded-r":["rounded-tr","rounded-br"],"rounded-b":["rounded-br","rounded-bl"],"rounded-l":["rounded-tl","rounded-bl"],"border-spacing":["border-spacing-x","border-spacing-y"],"border-w":["border-w-s","border-w-e","border-w-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-r","border-w-l"],"border-w-y":["border-w-t","border-w-b"],"border-color":["border-color-s","border-color-e","border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-r","border-color-l"],"border-color-y":["border-color-t","border-color-b"],"scroll-m":["scroll-mx","scroll-my","scroll-ms","scroll-me","scroll-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-mr","scroll-ml"],"scroll-my":["scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-pr","scroll-pl"],"scroll-py":["scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]}}},Kn=Mn(Jn);function B(...t){return Kn(ws(t))}const Yn=yn("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",{variants:{variant:{default:"bg-primary text-primary-foreground hover:bg-primary/90",destructive:"bg-destructive text-destructive-foreground hover:bg-destructive/90",outline:"border border-input bg-background hover:bg-accent hover:text-accent-foreground",secondary:"bg-secondary text-secondary-foreground hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-10 px-4 py-2",sm:"h-9 rounded-md px-3",lg:"h-11 rounded-md px-8",icon:"h-10 w-10"}},defaultVariants:{variant:"default",size:"default"}}),Ue=p.forwardRef(({className:t,variant:e,size:s,asChild:n=!1,...r},a)=>{const o=n?Js:"button";return l.jsx(o,{className:B(Yn({variant:e,size:s,className:t})),ref:a,...r})});Ue.displayName="Button";const ae="",Xn=t=>Array.isArray(t)?t:t==null?"":typeof t=="string"?t:JSON.stringify(t),er=t=>typeof t=="string"?t:t.filter(e=>e.type==="text").map(e=>e.text).join(`
3
- `),tr=()=>{const t=new Date,e=String(t.getFullYear()).slice(-2),s=String(t.getMonth()+1).padStart(2,"0"),n=String(t.getDate()).padStart(2,"0"),r=String(t.getHours()).padStart(2,"0"),a=String(t.getMinutes()).padStart(2,"0");return`Session ${e}-${s}-${n} ${r}:${a}`},le={listSessions:async()=>{const t=await fetch(`${ae}/sessions`);if(!t.ok)throw new Error("Failed to load sessions");return t.json()},createSession:async(t,e)=>{const s=await fetch(`${ae}/sessions`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({projectPath:t,title:e||tr()})});if(!s.ok)throw new Error("Failed to create session");return s.json()},deleteSession:async t=>{if(!(await fetch(`${ae}/sessions/${t}`,{method:"DELETE"})).ok)throw new Error("Failed to delete session")},updateSession:async(t,e)=>{if(!(await fetch(`${ae}/sessions/${t}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({title:e})})).ok)throw new Error("Failed to update session")},getMessages:async t=>{const e=await fetch(`${ae}/sessions/${t}/message`);if(!e.ok)throw new Error("Failed to load messages");const s=await e.json(),n=Date.now();return s.map((r,a)=>{const o=Xn(r.content),i=er(o),d=r.role==="tool"?{kind:"tool_result",toolCallId:r.tool_call_id,toolName:r.name,output:i}:r.metadata;return{id:r.id||`history-${a}-${n}`,role:r.role,content:o,timestamp:n,metadata:d,tool_call_id:r.tool_call_id,name:r.name,tool_calls:r.tool_calls,thinkingContent:r.thinkingContent}})},sendMessage:async(t,e,s)=>{const n=await fetch(`${ae}/sessions/${t}/message`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({...e,permissionMode:s})});if(!n.ok)throw new Error("Failed to send message");return n.json()},abortSession:async t=>{await fetch(`${ae}/sessions/${t}/abort`,{method:"POST"})},subscribeEvents:(t,e,s)=>{const n=(s==null?void 0:s.maxRetries)??5,r=s==null?void 0:s.onConnectionChange;let a=null,o=0,i=null,d=!1,c=Date.now(),u=null;const f=()=>{d||(a=new EventSource(`${ae}/sessions/${t}/events`),a.onopen=()=>{o=0,c=Date.now(),r==null||r(!0),u=setInterval(()=>{Date.now()-c>45e3&&(console.warn("SSE heartbeat timeout, reconnecting..."),a==null||a.close(),h())},15e3)},a.onmessage=m=>{try{const b=JSON.parse(m.data);if(c=Date.now(),b.type==="heartbeat"||b.type==="connected")return;e(b)}catch(b){console.error("Failed to parse SSE event:",m.data,b)}},a.onerror=()=>{d||(console.error("SSE connection error"),r==null||r(!1),g(),h())})},g=()=>{u&&(clearInterval(u),u=null),a==null||a.close(),a=null},h=()=>{if(d||o>=n){o>=n&&console.error(`SSE max retries (${n}) reached, giving up`);return}o++;const m=Math.min(1e3*Math.pow(2,o-1),3e4);console.log(`SSE reconnecting in ${m}ms (attempt ${o}/${n})`),i=setTimeout(f,m)};return f(),()=>{d=!0,i&&(clearTimeout(i),i=null),g(),r==null||r(!1)}},respondPermission:async(t,e,s)=>{if(!(await fetch(`${ae}/permissions/${e}?sessionId=${t}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(s)})).ok)throw new Error("Failed to respond to permission")},respondToConfirmation:async(t,e,s)=>{if(!(await fetch(`${ae}/sessions/${t}/confirmation/${e}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({approved:s})})).ok)throw new Error("Failed to respond to confirmation")},respondToQuestion:async(t,e,s)=>{if(!(await fetch(`${ae}/sessions/${t}/question/${e}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({answers:s})})).ok)throw new Error("Failed to respond to question")},getGitInfo:async()=>{const t=await fetch(`${ae}/suggestions/git-info`);if(!t.ok)throw new Error("Failed to get git info");return t.json()}},Gt=t=>{let e;const s=new Set,n=(c,u)=>{const f=typeof c=="function"?c(e):c;if(!Object.is(f,e)){const g=e;e=u??(typeof f!="object"||f===null)?f:Object.assign({},e,f),s.forEach(h=>h(e,g))}},r=()=>e,i={setState:n,getState:r,getInitialState:()=>d,subscribe:c=>(s.add(c),()=>s.delete(c))},d=e=t(n,r,i);return i},sr=t=>t?Gt(t):Gt,nr=t=>t;function rr(t,e=nr){const s=Ze.useSyncExternalStore(t.subscribe,Ze.useCallback(()=>e(t.getState()),[t,e]),Ze.useCallback(()=>e(t.getInitialState()),[t,e]));return Ze.useDebugValue(s),s}const Wt=t=>{const e=sr(t),s=n=>rr(e,n);return Object.assign(s,e),s},Et=t=>t?Wt(t):Wt,jt=Et(t=>({isSidebarOpen:!0,toggleSidebar:()=>t(e=>({isSidebarOpen:!e.isSidebarOpen})),setSidebarOpen:e=>t({isSidebarOpen:e}),isFilePreviewOpen:!1,toggleFilePreview:()=>t(e=>({isFilePreviewOpen:!e.isFilePreviewOpen})),setFilePreviewOpen:e=>t({isFilePreviewOpen:e}),isSettingsOpen:!1,toggleSettings:()=>t(e=>({isSettingsOpen:!e.isSettingsOpen})),isMcpOpen:!1,toggleMcp:()=>t(e=>({isMcpOpen:!e.isMcpOpen})),isSkillsOpen:!1,toggleSkills:()=>t(e=>({isSkillsOpen:!e.isSkillsOpen})),isTerminalOpen:!1,toggleTerminal:()=>t(e=>({isTerminalOpen:!e.isTerminalOpen}))})),Se=()=>({textBefore:"",toolCalls:[],textAfter:"",thinkingContent:"",tasks:[],subagent:null,confirmation:null,question:null}),ar=(t,e)=>({messages:[],setMessages:s=>t({messages:s}),addMessage:s=>t(n=>({messages:[...n.messages,s]})),updateMessage:(s,n)=>t(r=>({messages:r.messages.map(a=>a.id===s?{...a,...n}:a)})),appendDelta:(s,n,r)=>t(a=>({messages:a.messages.map(o=>{if(o.id!==s)return o;const i=o.agentContent||Se();return r==="before"?{...o,agentContent:{...i,textBefore:i.textBefore+n}}:{...o,agentContent:{...i,textAfter:i.textAfter+n}}})})),appendToolCall:(s,n)=>t(r=>({messages:r.messages.map(a=>{if(a.id!==s)return a;const o=a.agentContent||Se();return{...a,agentContent:{...o,toolCalls:[...o.toolCalls,n]}}})})),updateToolCall:(s,n,r)=>t(a=>({messages:a.messages.map(o=>{if(o.id!==s)return o;const i=o.agentContent;return i?{...o,agentContent:{...i,toolCalls:i.toolCalls.map(d=>d.toolCallId===n?{...d,...r}:d)}}:o})})),appendThinking:(s,n)=>t(r=>({messages:r.messages.map(a=>{if(a.id!==s)return a;const o=a.agentContent||Se();return{...a,agentContent:{...o,thinkingContent:o.thinkingContent+n}}})})),setConfirmation:(s,n)=>t(r=>({messages:r.messages.map(a=>{if(a.id!==s)return a;const o=a.agentContent||Se();return{...a,agentContent:{...o,confirmation:n}}})})),setQuestion:(s,n)=>t(r=>({messages:r.messages.map(a=>{if(a.id!==s)return a;const o=a.agentContent||Se();return{...a,agentContent:{...o,question:n}}})})),setSubagent:(s,n)=>t(r=>({messages:r.messages.map(a=>{if(a.id!==s)return a;const o=a.agentContent||Se();return{...a,agentContent:{...o,subagent:n}}})})),setTasks:(s,n)=>t(r=>({messages:r.messages.map(a=>{if(a.id!==s)return a;const o=a.agentContent||Se();return{...a,agentContent:{...o,tasks:n}}})})),replaceTemp:(s,n)=>t(r=>{const a=r.messages.findIndex(i=>i.content===s&&i.role==="user");if(a===-1)return r;const o=[...r.messages];return o[a]=n,{messages:o}})});var O;(function(t){t.assertEqual=r=>{};function e(r){}t.assertIs=e;function s(r){throw new Error}t.assertNever=s,t.arrayToEnum=r=>{const a={};for(const o of r)a[o]=o;return a},t.getValidEnumValues=r=>{const a=t.objectKeys(r).filter(i=>typeof r[r[i]]!="number"),o={};for(const i of a)o[i]=r[i];return t.objectValues(o)},t.objectValues=r=>t.objectKeys(r).map(function(a){return r[a]}),t.objectKeys=typeof Object.keys=="function"?r=>Object.keys(r):r=>{const a=[];for(const o in r)Object.prototype.hasOwnProperty.call(r,o)&&a.push(o);return a},t.find=(r,a)=>{for(const o of r)if(a(o))return o},t.isInteger=typeof Number.isInteger=="function"?r=>Number.isInteger(r):r=>typeof r=="number"&&Number.isFinite(r)&&Math.floor(r)===r;function n(r,a=" | "){return r.map(o=>typeof o=="string"?`'${o}'`:o).join(a)}t.joinValues=n,t.jsonStringifyReplacer=(r,a)=>typeof a=="bigint"?a.toString():a})(O||(O={}));var Ht;(function(t){t.mergeShapes=(e,s)=>({...e,...s})})(Ht||(Ht={}));const _=O.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),ye=t=>{switch(typeof t){case"undefined":return _.undefined;case"string":return _.string;case"number":return Number.isNaN(t)?_.nan:_.number;case"boolean":return _.boolean;case"function":return _.function;case"bigint":return _.bigint;case"symbol":return _.symbol;case"object":return Array.isArray(t)?_.array:t===null?_.null:t.then&&typeof t.then=="function"&&t.catch&&typeof t.catch=="function"?_.promise:typeof Map<"u"&&t instanceof Map?_.map:typeof Set<"u"&&t instanceof Set?_.set:typeof Date<"u"&&t instanceof Date?_.date:_.object;default:return _.unknown}},x=O.arrayToEnum(["invalid_type","invalid_literal","custom","invalid_union","invalid_union_discriminator","invalid_enum_value","unrecognized_keys","invalid_arguments","invalid_return_type","invalid_date","invalid_string","too_small","too_big","invalid_intersection_types","not_multiple_of","not_finite"]);class me extends Error{get errors(){return this.issues}constructor(e){super(),this.issues=[],this.addIssue=n=>{this.issues=[...this.issues,n]},this.addIssues=(n=[])=>{this.issues=[...this.issues,...n]};const s=new.target.prototype;Object.setPrototypeOf?Object.setPrototypeOf(this,s):this.__proto__=s,this.name="ZodError",this.issues=e}format(e){const s=e||function(a){return a.message},n={_errors:[]},r=a=>{for(const o of a.issues)if(o.code==="invalid_union")o.unionErrors.map(r);else if(o.code==="invalid_return_type")r(o.returnTypeError);else if(o.code==="invalid_arguments")r(o.argumentsError);else if(o.path.length===0)n._errors.push(s(o));else{let i=n,d=0;for(;d<o.path.length;){const c=o.path[d];d===o.path.length-1?(i[c]=i[c]||{_errors:[]},i[c]._errors.push(s(o))):i[c]=i[c]||{_errors:[]},i=i[c],d++}}};return r(this),n}static assert(e){if(!(e instanceof me))throw new Error(`Not a ZodError: ${e}`)}toString(){return this.message}get message(){return JSON.stringify(this.issues,O.jsonStringifyReplacer,2)}get isEmpty(){return this.issues.length===0}flatten(e=s=>s.message){const s={},n=[];for(const r of this.issues)if(r.path.length>0){const a=r.path[0];s[a]=s[a]||[],s[a].push(e(r))}else n.push(e(r));return{formErrors:n,fieldErrors:s}}get formErrors(){return this.flatten()}}me.create=t=>new me(t);const ft=(t,e)=>{let s;switch(t.code){case x.invalid_type:t.received===_.undefined?s="Required":s=`Expected ${t.expected}, received ${t.received}`;break;case x.invalid_literal:s=`Invalid literal value, expected ${JSON.stringify(t.expected,O.jsonStringifyReplacer)}`;break;case x.unrecognized_keys:s=`Unrecognized key(s) in object: ${O.joinValues(t.keys,", ")}`;break;case x.invalid_union:s="Invalid input";break;case x.invalid_union_discriminator:s=`Invalid discriminator value. Expected ${O.joinValues(t.options)}`;break;case x.invalid_enum_value:s=`Invalid enum value. Expected ${O.joinValues(t.options)}, received '${t.received}'`;break;case x.invalid_arguments:s="Invalid function arguments";break;case x.invalid_return_type:s="Invalid function return type";break;case x.invalid_date:s="Invalid date";break;case x.invalid_string:typeof t.validation=="object"?"includes"in t.validation?(s=`Invalid input: must include "${t.validation.includes}"`,typeof t.validation.position=="number"&&(s=`${s} at one or more positions greater than or equal to ${t.validation.position}`)):"startsWith"in t.validation?s=`Invalid input: must start with "${t.validation.startsWith}"`:"endsWith"in t.validation?s=`Invalid input: must end with "${t.validation.endsWith}"`:O.assertNever(t.validation):t.validation!=="regex"?s=`Invalid ${t.validation}`:s="Invalid";break;case x.too_small:t.type==="array"?s=`Array must contain ${t.exact?"exactly":t.inclusive?"at least":"more than"} ${t.minimum} element(s)`:t.type==="string"?s=`String must contain ${t.exact?"exactly":t.inclusive?"at least":"over"} ${t.minimum} character(s)`:t.type==="number"?s=`Number must be ${t.exact?"exactly equal to ":t.inclusive?"greater than or equal to ":"greater than "}${t.minimum}`:t.type==="bigint"?s=`Number must be ${t.exact?"exactly equal to ":t.inclusive?"greater than or equal to ":"greater than "}${t.minimum}`:t.type==="date"?s=`Date must be ${t.exact?"exactly equal to ":t.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(t.minimum))}`:s="Invalid input";break;case x.too_big:t.type==="array"?s=`Array must contain ${t.exact?"exactly":t.inclusive?"at most":"less than"} ${t.maximum} element(s)`:t.type==="string"?s=`String must contain ${t.exact?"exactly":t.inclusive?"at most":"under"} ${t.maximum} character(s)`:t.type==="number"?s=`Number must be ${t.exact?"exactly":t.inclusive?"less than or equal to":"less than"} ${t.maximum}`:t.type==="bigint"?s=`BigInt must be ${t.exact?"exactly":t.inclusive?"less than or equal to":"less than"} ${t.maximum}`:t.type==="date"?s=`Date must be ${t.exact?"exactly":t.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(t.maximum))}`:s="Invalid input";break;case x.custom:s="Invalid input";break;case x.invalid_intersection_types:s="Intersection results could not be merged";break;case x.not_multiple_of:s=`Number must be a multiple of ${t.multipleOf}`;break;case x.not_finite:s="Number must be finite";break;default:s=e.defaultError,O.assertNever(t)}return{message:s}};let or=ft;function ir(){return or}const lr=t=>{const{data:e,path:s,errorMaps:n,issueData:r}=t,a=[...s,...r.path||[]],o={...r,path:a};if(r.message!==void 0)return{...r,path:a,message:r.message};let i="";const d=n.filter(c=>!!c).slice().reverse();for(const c of d)i=c(o,{data:e,defaultError:i}).message;return{...r,path:a,message:i}};function w(t,e){const s=ir(),n=lr({issueData:e,data:t.data,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,s,s===ft?void 0:ft].filter(r=>!!r)});t.common.issues.push(n)}class te{constructor(){this.value="valid"}dirty(){this.value==="valid"&&(this.value="dirty")}abort(){this.value!=="aborted"&&(this.value="aborted")}static mergeArray(e,s){const n=[];for(const r of s){if(r.status==="aborted")return j;r.status==="dirty"&&e.dirty(),n.push(r.value)}return{status:e.value,value:n}}static async mergeObjectAsync(e,s){const n=[];for(const r of s){const a=await r.key,o=await r.value;n.push({key:a,value:o})}return te.mergeObjectSync(e,n)}static mergeObjectSync(e,s){const n={};for(const r of s){const{key:a,value:o}=r;if(a.status==="aborted"||o.status==="aborted")return j;a.status==="dirty"&&e.dirty(),o.status==="dirty"&&e.dirty(),a.value!=="__proto__"&&(typeof o.value<"u"||r.alwaysSet)&&(n[a.value]=o.value)}return{status:e.value,value:n}}}const j=Object.freeze({status:"aborted"}),Le=t=>({status:"dirty",value:t}),ie=t=>({status:"valid",value:t}),Qt=t=>t.status==="aborted",Jt=t=>t.status==="dirty",Ne=t=>t.status==="valid",Je=t=>typeof Promise<"u"&&t instanceof Promise;var C;(function(t){t.errToObj=e=>typeof e=="string"?{message:e}:e||{},t.toString=e=>typeof e=="string"?e:e==null?void 0:e.message})(C||(C={}));class ce{constructor(e,s,n,r){this._cachedPath=[],this.parent=e,this.data=s,this._path=n,this._key=r}get path(){return this._cachedPath.length||(Array.isArray(this._key)?this._cachedPath.push(...this._path,...this._key):this._cachedPath.push(...this._path,this._key)),this._cachedPath}}const Kt=(t,e)=>{if(Ne(e))return{success:!0,data:e.value};if(!t.common.issues.length)throw new Error("Validation failed but no issues detected.");return{success:!1,get error(){if(this._error)return this._error;const s=new me(t.common.issues);return this._error=s,this._error}}};function T(t){if(!t)return{};const{errorMap:e,invalid_type_error:s,required_error:n,description:r}=t;if(e&&(s||n))throw new Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);return e?{errorMap:e,description:r}:{errorMap:(o,i)=>{const{message:d}=t;return o.code==="invalid_enum_value"?{message:d??i.defaultError}:typeof i.data>"u"?{message:d??n??i.defaultError}:o.code!=="invalid_type"?{message:i.defaultError}:{message:d??s??i.defaultError}},description:r}}class F{get description(){return this._def.description}_getType(e){return ye(e.data)}_getOrReturnCtx(e,s){return s||{common:e.parent.common,data:e.data,parsedType:ye(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}_processInputParams(e){return{status:new te,ctx:{common:e.parent.common,data:e.data,parsedType:ye(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}}_parseSync(e){const s=this._parse(e);if(Je(s))throw new Error("Synchronous parse encountered promise.");return s}_parseAsync(e){const s=this._parse(e);return Promise.resolve(s)}parse(e,s){const n=this.safeParse(e,s);if(n.success)return n.data;throw n.error}safeParse(e,s){const n={common:{issues:[],async:(s==null?void 0:s.async)??!1,contextualErrorMap:s==null?void 0:s.errorMap},path:(s==null?void 0:s.path)||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:ye(e)},r=this._parseSync({data:e,path:n.path,parent:n});return Kt(n,r)}"~validate"(e){var n,r;const s={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:ye(e)};if(!this["~standard"].async)try{const a=this._parseSync({data:e,path:[],parent:s});return Ne(a)?{value:a.value}:{issues:s.common.issues}}catch(a){(r=(n=a==null?void 0:a.message)==null?void 0:n.toLowerCase())!=null&&r.includes("encountered")&&(this["~standard"].async=!0),s.common={issues:[],async:!0}}return this._parseAsync({data:e,path:[],parent:s}).then(a=>Ne(a)?{value:a.value}:{issues:s.common.issues})}async parseAsync(e,s){const n=await this.safeParseAsync(e,s);if(n.success)return n.data;throw n.error}async safeParseAsync(e,s){const n={common:{issues:[],contextualErrorMap:s==null?void 0:s.errorMap,async:!0},path:(s==null?void 0:s.path)||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:ye(e)},r=this._parse({data:e,path:n.path,parent:n}),a=await(Je(r)?r:Promise.resolve(r));return Kt(n,a)}refine(e,s){const n=r=>typeof s=="string"||typeof s>"u"?{message:s}:typeof s=="function"?s(r):s;return this._refinement((r,a)=>{const o=e(r),i=()=>a.addIssue({code:x.custom,...n(r)});return typeof Promise<"u"&&o instanceof Promise?o.then(d=>d?!0:(i(),!1)):o?!0:(i(),!1)})}refinement(e,s){return this._refinement((n,r)=>e(n)?!0:(r.addIssue(typeof s=="function"?s(n,r):s),!1))}_refinement(e){return new Me({schema:this,typeName:E.ZodEffects,effect:{type:"refinement",refinement:e}})}superRefine(e){return this._refinement(e)}constructor(e){this.spa=this.safeParseAsync,this._def=e,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(this),this.superRefine=this.superRefine.bind(this),this.optional=this.optional.bind(this),this.nullable=this.nullable.bind(this),this.nullish=this.nullish.bind(this),this.array=this.array.bind(this),this.promise=this.promise.bind(this),this.or=this.or.bind(this),this.and=this.and.bind(this),this.transform=this.transform.bind(this),this.brand=this.brand.bind(this),this.default=this.default.bind(this),this.catch=this.catch.bind(this),this.describe=this.describe.bind(this),this.pipe=this.pipe.bind(this),this.readonly=this.readonly.bind(this),this.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this),this["~standard"]={version:1,vendor:"zod",validate:s=>this["~validate"](s)}}optional(){return ke.create(this,this._def)}nullable(){return Fe.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return de.create(this)}promise(){return tt.create(this,this._def)}or(e){return Ye.create([this,e],this._def)}and(e){return Xe.create(this,e,this._def)}transform(e){return new Me({...T(this._def),schema:this,typeName:E.ZodEffects,effect:{type:"transform",transform:e}})}default(e){const s=typeof e=="function"?e:()=>e;return new xt({...T(this._def),innerType:this,defaultValue:s,typeName:E.ZodDefault})}brand(){return new Ar({typeName:E.ZodBranded,type:this,...T(this._def)})}catch(e){const s=typeof e=="function"?e:()=>e;return new bt({...T(this._def),innerType:this,catchValue:s,typeName:E.ZodCatch})}describe(e){const s=this.constructor;return new s({...this._def,description:e})}pipe(e){return It.create(this,e)}readonly(){return yt.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}}const dr=/^c[^\s-]{8,}$/i,cr=/^[0-9a-z]+$/,ur=/^[0-9A-HJKMNP-TV-Z]{26}$/i,fr=/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/i,hr=/^[a-z0-9_-]{21}$/i,gr=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,mr=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,pr=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,xr="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$";let at;const br=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,yr=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/(3[0-2]|[12]?[0-9])$/,vr=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/,kr=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,wr=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,_r=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,Is="((\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\d|30)|(02)-(0[1-9]|1\\d|2[0-8])))",Cr=new RegExp(`^${Is}$`);function Ns(t){let e="[0-5]\\d";t.precision?e=`${e}\\.\\d{${t.precision}}`:t.precision==null&&(e=`${e}(\\.\\d+)?`);const s=t.precision?"+":"?";return`([01]\\d|2[0-3]):[0-5]\\d(:${e})${s}`}function Sr(t){return new RegExp(`^${Ns(t)}$`)}function Er(t){let e=`${Is}T${Ns(t)}`;const s=[];return s.push(t.local?"Z?":"Z"),t.offset&&s.push("([+-]\\d{2}:?\\d{2})"),e=`${e}(${s.join("|")})`,new RegExp(`^${e}$`)}function jr(t,e){return!!((e==="v4"||!e)&&br.test(t)||(e==="v6"||!e)&&vr.test(t))}function Ir(t,e){if(!gr.test(t))return!1;try{const[s]=t.split(".");if(!s)return!1;const n=s.replace(/-/g,"+").replace(/_/g,"/").padEnd(s.length+(4-s.length%4)%4,"="),r=JSON.parse(atob(n));return!(typeof r!="object"||r===null||"typ"in r&&(r==null?void 0:r.typ)!=="JWT"||!r.alg||e&&r.alg!==e)}catch{return!1}}function Nr(t,e){return!!((e==="v4"||!e)&&yr.test(t)||(e==="v6"||!e)&&kr.test(t))}class ge extends F{_parse(e){if(this._def.coerce&&(e.data=String(e.data)),this._getType(e)!==_.string){const a=this._getOrReturnCtx(e);return w(a,{code:x.invalid_type,expected:_.string,received:a.parsedType}),j}const n=new te;let r;for(const a of this._def.checks)if(a.kind==="min")e.data.length<a.value&&(r=this._getOrReturnCtx(e,r),w(r,{code:x.too_small,minimum:a.value,type:"string",inclusive:!0,exact:!1,message:a.message}),n.dirty());else if(a.kind==="max")e.data.length>a.value&&(r=this._getOrReturnCtx(e,r),w(r,{code:x.too_big,maximum:a.value,type:"string",inclusive:!0,exact:!1,message:a.message}),n.dirty());else if(a.kind==="length"){const o=e.data.length>a.value,i=e.data.length<a.value;(o||i)&&(r=this._getOrReturnCtx(e,r),o?w(r,{code:x.too_big,maximum:a.value,type:"string",inclusive:!0,exact:!0,message:a.message}):i&&w(r,{code:x.too_small,minimum:a.value,type:"string",inclusive:!0,exact:!0,message:a.message}),n.dirty())}else if(a.kind==="email")pr.test(e.data)||(r=this._getOrReturnCtx(e,r),w(r,{validation:"email",code:x.invalid_string,message:a.message}),n.dirty());else if(a.kind==="emoji")at||(at=new RegExp(xr,"u")),at.test(e.data)||(r=this._getOrReturnCtx(e,r),w(r,{validation:"emoji",code:x.invalid_string,message:a.message}),n.dirty());else if(a.kind==="uuid")fr.test(e.data)||(r=this._getOrReturnCtx(e,r),w(r,{validation:"uuid",code:x.invalid_string,message:a.message}),n.dirty());else if(a.kind==="nanoid")hr.test(e.data)||(r=this._getOrReturnCtx(e,r),w(r,{validation:"nanoid",code:x.invalid_string,message:a.message}),n.dirty());else if(a.kind==="cuid")dr.test(e.data)||(r=this._getOrReturnCtx(e,r),w(r,{validation:"cuid",code:x.invalid_string,message:a.message}),n.dirty());else if(a.kind==="cuid2")cr.test(e.data)||(r=this._getOrReturnCtx(e,r),w(r,{validation:"cuid2",code:x.invalid_string,message:a.message}),n.dirty());else if(a.kind==="ulid")ur.test(e.data)||(r=this._getOrReturnCtx(e,r),w(r,{validation:"ulid",code:x.invalid_string,message:a.message}),n.dirty());else if(a.kind==="url")try{new URL(e.data)}catch{r=this._getOrReturnCtx(e,r),w(r,{validation:"url",code:x.invalid_string,message:a.message}),n.dirty()}else a.kind==="regex"?(a.regex.lastIndex=0,a.regex.test(e.data)||(r=this._getOrReturnCtx(e,r),w(r,{validation:"regex",code:x.invalid_string,message:a.message}),n.dirty())):a.kind==="trim"?e.data=e.data.trim():a.kind==="includes"?e.data.includes(a.value,a.position)||(r=this._getOrReturnCtx(e,r),w(r,{code:x.invalid_string,validation:{includes:a.value,position:a.position},message:a.message}),n.dirty()):a.kind==="toLowerCase"?e.data=e.data.toLowerCase():a.kind==="toUpperCase"?e.data=e.data.toUpperCase():a.kind==="startsWith"?e.data.startsWith(a.value)||(r=this._getOrReturnCtx(e,r),w(r,{code:x.invalid_string,validation:{startsWith:a.value},message:a.message}),n.dirty()):a.kind==="endsWith"?e.data.endsWith(a.value)||(r=this._getOrReturnCtx(e,r),w(r,{code:x.invalid_string,validation:{endsWith:a.value},message:a.message}),n.dirty()):a.kind==="datetime"?Er(a).test(e.data)||(r=this._getOrReturnCtx(e,r),w(r,{code:x.invalid_string,validation:"datetime",message:a.message}),n.dirty()):a.kind==="date"?Cr.test(e.data)||(r=this._getOrReturnCtx(e,r),w(r,{code:x.invalid_string,validation:"date",message:a.message}),n.dirty()):a.kind==="time"?Sr(a).test(e.data)||(r=this._getOrReturnCtx(e,r),w(r,{code:x.invalid_string,validation:"time",message:a.message}),n.dirty()):a.kind==="duration"?mr.test(e.data)||(r=this._getOrReturnCtx(e,r),w(r,{validation:"duration",code:x.invalid_string,message:a.message}),n.dirty()):a.kind==="ip"?jr(e.data,a.version)||(r=this._getOrReturnCtx(e,r),w(r,{validation:"ip",code:x.invalid_string,message:a.message}),n.dirty()):a.kind==="jwt"?Ir(e.data,a.alg)||(r=this._getOrReturnCtx(e,r),w(r,{validation:"jwt",code:x.invalid_string,message:a.message}),n.dirty()):a.kind==="cidr"?Nr(e.data,a.version)||(r=this._getOrReturnCtx(e,r),w(r,{validation:"cidr",code:x.invalid_string,message:a.message}),n.dirty()):a.kind==="base64"?wr.test(e.data)||(r=this._getOrReturnCtx(e,r),w(r,{validation:"base64",code:x.invalid_string,message:a.message}),n.dirty()):a.kind==="base64url"?_r.test(e.data)||(r=this._getOrReturnCtx(e,r),w(r,{validation:"base64url",code:x.invalid_string,message:a.message}),n.dirty()):O.assertNever(a);return{status:n.value,value:e.data}}_regex(e,s,n){return this.refinement(r=>e.test(r),{validation:s,code:x.invalid_string,...C.errToObj(n)})}_addCheck(e){return new ge({...this._def,checks:[...this._def.checks,e]})}email(e){return this._addCheck({kind:"email",...C.errToObj(e)})}url(e){return this._addCheck({kind:"url",...C.errToObj(e)})}emoji(e){return this._addCheck({kind:"emoji",...C.errToObj(e)})}uuid(e){return this._addCheck({kind:"uuid",...C.errToObj(e)})}nanoid(e){return this._addCheck({kind:"nanoid",...C.errToObj(e)})}cuid(e){return this._addCheck({kind:"cuid",...C.errToObj(e)})}cuid2(e){return this._addCheck({kind:"cuid2",...C.errToObj(e)})}ulid(e){return this._addCheck({kind:"ulid",...C.errToObj(e)})}base64(e){return this._addCheck({kind:"base64",...C.errToObj(e)})}base64url(e){return this._addCheck({kind:"base64url",...C.errToObj(e)})}jwt(e){return this._addCheck({kind:"jwt",...C.errToObj(e)})}ip(e){return this._addCheck({kind:"ip",...C.errToObj(e)})}cidr(e){return this._addCheck({kind:"cidr",...C.errToObj(e)})}datetime(e){return typeof e=="string"?this._addCheck({kind:"datetime",precision:null,offset:!1,local:!1,message:e}):this._addCheck({kind:"datetime",precision:typeof(e==null?void 0:e.precision)>"u"?null:e==null?void 0:e.precision,offset:(e==null?void 0:e.offset)??!1,local:(e==null?void 0:e.local)??!1,...C.errToObj(e==null?void 0:e.message)})}date(e){return this._addCheck({kind:"date",message:e})}time(e){return typeof e=="string"?this._addCheck({kind:"time",precision:null,message:e}):this._addCheck({kind:"time",precision:typeof(e==null?void 0:e.precision)>"u"?null:e==null?void 0:e.precision,...C.errToObj(e==null?void 0:e.message)})}duration(e){return this._addCheck({kind:"duration",...C.errToObj(e)})}regex(e,s){return this._addCheck({kind:"regex",regex:e,...C.errToObj(s)})}includes(e,s){return this._addCheck({kind:"includes",value:e,position:s==null?void 0:s.position,...C.errToObj(s==null?void 0:s.message)})}startsWith(e,s){return this._addCheck({kind:"startsWith",value:e,...C.errToObj(s)})}endsWith(e,s){return this._addCheck({kind:"endsWith",value:e,...C.errToObj(s)})}min(e,s){return this._addCheck({kind:"min",value:e,...C.errToObj(s)})}max(e,s){return this._addCheck({kind:"max",value:e,...C.errToObj(s)})}length(e,s){return this._addCheck({kind:"length",value:e,...C.errToObj(s)})}nonempty(e){return this.min(1,C.errToObj(e))}trim(){return new ge({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new ge({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new ge({...this._def,checks:[...this._def.checks,{kind:"toUpperCase"}]})}get isDatetime(){return!!this._def.checks.find(e=>e.kind==="datetime")}get isDate(){return!!this._def.checks.find(e=>e.kind==="date")}get isTime(){return!!this._def.checks.find(e=>e.kind==="time")}get isDuration(){return!!this._def.checks.find(e=>e.kind==="duration")}get isEmail(){return!!this._def.checks.find(e=>e.kind==="email")}get isURL(){return!!this._def.checks.find(e=>e.kind==="url")}get isEmoji(){return!!this._def.checks.find(e=>e.kind==="emoji")}get isUUID(){return!!this._def.checks.find(e=>e.kind==="uuid")}get isNANOID(){return!!this._def.checks.find(e=>e.kind==="nanoid")}get isCUID(){return!!this._def.checks.find(e=>e.kind==="cuid")}get isCUID2(){return!!this._def.checks.find(e=>e.kind==="cuid2")}get isULID(){return!!this._def.checks.find(e=>e.kind==="ulid")}get isIP(){return!!this._def.checks.find(e=>e.kind==="ip")}get isCIDR(){return!!this._def.checks.find(e=>e.kind==="cidr")}get isBase64(){return!!this._def.checks.find(e=>e.kind==="base64")}get isBase64url(){return!!this._def.checks.find(e=>e.kind==="base64url")}get minLength(){let e=null;for(const s of this._def.checks)s.kind==="min"&&(e===null||s.value>e)&&(e=s.value);return e}get maxLength(){let e=null;for(const s of this._def.checks)s.kind==="max"&&(e===null||s.value<e)&&(e=s.value);return e}}ge.create=t=>new ge({checks:[],typeName:E.ZodString,coerce:(t==null?void 0:t.coerce)??!1,...T(t)});function Tr(t,e){const s=(t.toString().split(".")[1]||"").length,n=(e.toString().split(".")[1]||"").length,r=s>n?s:n,a=Number.parseInt(t.toFixed(r).replace(".","")),o=Number.parseInt(e.toFixed(r).replace(".",""));return a%o/10**r}class Te extends F{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(e){if(this._def.coerce&&(e.data=Number(e.data)),this._getType(e)!==_.number){const a=this._getOrReturnCtx(e);return w(a,{code:x.invalid_type,expected:_.number,received:a.parsedType}),j}let n;const r=new te;for(const a of this._def.checks)a.kind==="int"?O.isInteger(e.data)||(n=this._getOrReturnCtx(e,n),w(n,{code:x.invalid_type,expected:"integer",received:"float",message:a.message}),r.dirty()):a.kind==="min"?(a.inclusive?e.data<a.value:e.data<=a.value)&&(n=this._getOrReturnCtx(e,n),w(n,{code:x.too_small,minimum:a.value,type:"number",inclusive:a.inclusive,exact:!1,message:a.message}),r.dirty()):a.kind==="max"?(a.inclusive?e.data>a.value:e.data>=a.value)&&(n=this._getOrReturnCtx(e,n),w(n,{code:x.too_big,maximum:a.value,type:"number",inclusive:a.inclusive,exact:!1,message:a.message}),r.dirty()):a.kind==="multipleOf"?Tr(e.data,a.value)!==0&&(n=this._getOrReturnCtx(e,n),w(n,{code:x.not_multiple_of,multipleOf:a.value,message:a.message}),r.dirty()):a.kind==="finite"?Number.isFinite(e.data)||(n=this._getOrReturnCtx(e,n),w(n,{code:x.not_finite,message:a.message}),r.dirty()):O.assertNever(a);return{status:r.value,value:e.data}}gte(e,s){return this.setLimit("min",e,!0,C.toString(s))}gt(e,s){return this.setLimit("min",e,!1,C.toString(s))}lte(e,s){return this.setLimit("max",e,!0,C.toString(s))}lt(e,s){return this.setLimit("max",e,!1,C.toString(s))}setLimit(e,s,n,r){return new Te({...this._def,checks:[...this._def.checks,{kind:e,value:s,inclusive:n,message:C.toString(r)}]})}_addCheck(e){return new Te({...this._def,checks:[...this._def.checks,e]})}int(e){return this._addCheck({kind:"int",message:C.toString(e)})}positive(e){return this._addCheck({kind:"min",value:0,inclusive:!1,message:C.toString(e)})}negative(e){return this._addCheck({kind:"max",value:0,inclusive:!1,message:C.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:0,inclusive:!0,message:C.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:0,inclusive:!0,message:C.toString(e)})}multipleOf(e,s){return this._addCheck({kind:"multipleOf",value:e,message:C.toString(s)})}finite(e){return this._addCheck({kind:"finite",message:C.toString(e)})}safe(e){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:C.toString(e)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:C.toString(e)})}get minValue(){let e=null;for(const s of this._def.checks)s.kind==="min"&&(e===null||s.value>e)&&(e=s.value);return e}get maxValue(){let e=null;for(const s of this._def.checks)s.kind==="max"&&(e===null||s.value<e)&&(e=s.value);return e}get isInt(){return!!this._def.checks.find(e=>e.kind==="int"||e.kind==="multipleOf"&&O.isInteger(e.value))}get isFinite(){let e=null,s=null;for(const n of this._def.checks){if(n.kind==="finite"||n.kind==="int"||n.kind==="multipleOf")return!0;n.kind==="min"?(s===null||n.value>s)&&(s=n.value):n.kind==="max"&&(e===null||n.value<e)&&(e=n.value)}return Number.isFinite(s)&&Number.isFinite(e)}}Te.create=t=>new Te({checks:[],typeName:E.ZodNumber,coerce:(t==null?void 0:t.coerce)||!1,...T(t)});class qe extends F{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte}_parse(e){if(this._def.coerce)try{e.data=BigInt(e.data)}catch{return this._getInvalidInput(e)}if(this._getType(e)!==_.bigint)return this._getInvalidInput(e);let n;const r=new te;for(const a of this._def.checks)a.kind==="min"?(a.inclusive?e.data<a.value:e.data<=a.value)&&(n=this._getOrReturnCtx(e,n),w(n,{code:x.too_small,type:"bigint",minimum:a.value,inclusive:a.inclusive,message:a.message}),r.dirty()):a.kind==="max"?(a.inclusive?e.data>a.value:e.data>=a.value)&&(n=this._getOrReturnCtx(e,n),w(n,{code:x.too_big,type:"bigint",maximum:a.value,inclusive:a.inclusive,message:a.message}),r.dirty()):a.kind==="multipleOf"?e.data%a.value!==BigInt(0)&&(n=this._getOrReturnCtx(e,n),w(n,{code:x.not_multiple_of,multipleOf:a.value,message:a.message}),r.dirty()):O.assertNever(a);return{status:r.value,value:e.data}}_getInvalidInput(e){const s=this._getOrReturnCtx(e);return w(s,{code:x.invalid_type,expected:_.bigint,received:s.parsedType}),j}gte(e,s){return this.setLimit("min",e,!0,C.toString(s))}gt(e,s){return this.setLimit("min",e,!1,C.toString(s))}lte(e,s){return this.setLimit("max",e,!0,C.toString(s))}lt(e,s){return this.setLimit("max",e,!1,C.toString(s))}setLimit(e,s,n,r){return new qe({...this._def,checks:[...this._def.checks,{kind:e,value:s,inclusive:n,message:C.toString(r)}]})}_addCheck(e){return new qe({...this._def,checks:[...this._def.checks,e]})}positive(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:C.toString(e)})}negative(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:C.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:C.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:C.toString(e)})}multipleOf(e,s){return this._addCheck({kind:"multipleOf",value:e,message:C.toString(s)})}get minValue(){let e=null;for(const s of this._def.checks)s.kind==="min"&&(e===null||s.value>e)&&(e=s.value);return e}get maxValue(){let e=null;for(const s of this._def.checks)s.kind==="max"&&(e===null||s.value<e)&&(e=s.value);return e}}qe.create=t=>new qe({checks:[],typeName:E.ZodBigInt,coerce:(t==null?void 0:t.coerce)??!1,...T(t)});class ht extends F{_parse(e){if(this._def.coerce&&(e.data=!!e.data),this._getType(e)!==_.boolean){const n=this._getOrReturnCtx(e);return w(n,{code:x.invalid_type,expected:_.boolean,received:n.parsedType}),j}return ie(e.data)}}ht.create=t=>new ht({typeName:E.ZodBoolean,coerce:(t==null?void 0:t.coerce)||!1,...T(t)});class Ke extends F{_parse(e){if(this._def.coerce&&(e.data=new Date(e.data)),this._getType(e)!==_.date){const a=this._getOrReturnCtx(e);return w(a,{code:x.invalid_type,expected:_.date,received:a.parsedType}),j}if(Number.isNaN(e.data.getTime())){const a=this._getOrReturnCtx(e);return w(a,{code:x.invalid_date}),j}const n=new te;let r;for(const a of this._def.checks)a.kind==="min"?e.data.getTime()<a.value&&(r=this._getOrReturnCtx(e,r),w(r,{code:x.too_small,message:a.message,inclusive:!0,exact:!1,minimum:a.value,type:"date"}),n.dirty()):a.kind==="max"?e.data.getTime()>a.value&&(r=this._getOrReturnCtx(e,r),w(r,{code:x.too_big,message:a.message,inclusive:!0,exact:!1,maximum:a.value,type:"date"}),n.dirty()):O.assertNever(a);return{status:n.value,value:new Date(e.data.getTime())}}_addCheck(e){return new Ke({...this._def,checks:[...this._def.checks,e]})}min(e,s){return this._addCheck({kind:"min",value:e.getTime(),message:C.toString(s)})}max(e,s){return this._addCheck({kind:"max",value:e.getTime(),message:C.toString(s)})}get minDate(){let e=null;for(const s of this._def.checks)s.kind==="min"&&(e===null||s.value>e)&&(e=s.value);return e!=null?new Date(e):null}get maxDate(){let e=null;for(const s of this._def.checks)s.kind==="max"&&(e===null||s.value<e)&&(e=s.value);return e!=null?new Date(e):null}}Ke.create=t=>new Ke({checks:[],coerce:(t==null?void 0:t.coerce)||!1,typeName:E.ZodDate,...T(t)});class Yt extends F{_parse(e){if(this._getType(e)!==_.symbol){const n=this._getOrReturnCtx(e);return w(n,{code:x.invalid_type,expected:_.symbol,received:n.parsedType}),j}return ie(e.data)}}Yt.create=t=>new Yt({typeName:E.ZodSymbol,...T(t)});class Xt extends F{_parse(e){if(this._getType(e)!==_.undefined){const n=this._getOrReturnCtx(e);return w(n,{code:x.invalid_type,expected:_.undefined,received:n.parsedType}),j}return ie(e.data)}}Xt.create=t=>new Xt({typeName:E.ZodUndefined,...T(t)});class es extends F{_parse(e){if(this._getType(e)!==_.null){const n=this._getOrReturnCtx(e);return w(n,{code:x.invalid_type,expected:_.null,received:n.parsedType}),j}return ie(e.data)}}es.create=t=>new es({typeName:E.ZodNull,...T(t)});class ts extends F{constructor(){super(...arguments),this._any=!0}_parse(e){return ie(e.data)}}ts.create=t=>new ts({typeName:E.ZodAny,...T(t)});class gt extends F{constructor(){super(...arguments),this._unknown=!0}_parse(e){return ie(e.data)}}gt.create=t=>new gt({typeName:E.ZodUnknown,...T(t)});class we extends F{_parse(e){const s=this._getOrReturnCtx(e);return w(s,{code:x.invalid_type,expected:_.never,received:s.parsedType}),j}}we.create=t=>new we({typeName:E.ZodNever,...T(t)});class ss extends F{_parse(e){if(this._getType(e)!==_.undefined){const n=this._getOrReturnCtx(e);return w(n,{code:x.invalid_type,expected:_.void,received:n.parsedType}),j}return ie(e.data)}}ss.create=t=>new ss({typeName:E.ZodVoid,...T(t)});class de extends F{_parse(e){const{ctx:s,status:n}=this._processInputParams(e),r=this._def;if(s.parsedType!==_.array)return w(s,{code:x.invalid_type,expected:_.array,received:s.parsedType}),j;if(r.exactLength!==null){const o=s.data.length>r.exactLength.value,i=s.data.length<r.exactLength.value;(o||i)&&(w(s,{code:o?x.too_big:x.too_small,minimum:i?r.exactLength.value:void 0,maximum:o?r.exactLength.value:void 0,type:"array",inclusive:!0,exact:!0,message:r.exactLength.message}),n.dirty())}if(r.minLength!==null&&s.data.length<r.minLength.value&&(w(s,{code:x.too_small,minimum:r.minLength.value,type:"array",inclusive:!0,exact:!1,message:r.minLength.message}),n.dirty()),r.maxLength!==null&&s.data.length>r.maxLength.value&&(w(s,{code:x.too_big,maximum:r.maxLength.value,type:"array",inclusive:!0,exact:!1,message:r.maxLength.message}),n.dirty()),s.common.async)return Promise.all([...s.data].map((o,i)=>r.type._parseAsync(new ce(s,o,s.path,i)))).then(o=>te.mergeArray(n,o));const a=[...s.data].map((o,i)=>r.type._parseSync(new ce(s,o,s.path,i)));return te.mergeArray(n,a)}get element(){return this._def.type}min(e,s){return new de({...this._def,minLength:{value:e,message:C.toString(s)}})}max(e,s){return new de({...this._def,maxLength:{value:e,message:C.toString(s)}})}length(e,s){return new de({...this._def,exactLength:{value:e,message:C.toString(s)}})}nonempty(e){return this.min(1,e)}}de.create=(t,e)=>new de({type:t,minLength:null,maxLength:null,exactLength:null,typeName:E.ZodArray,...T(e)});function je(t){if(t instanceof W){const e={};for(const s in t.shape){const n=t.shape[s];e[s]=ke.create(je(n))}return new W({...t._def,shape:()=>e})}else return t instanceof de?new de({...t._def,type:je(t.element)}):t instanceof ke?ke.create(je(t.unwrap())):t instanceof Fe?Fe.create(je(t.unwrap())):t instanceof Ee?Ee.create(t.items.map(e=>je(e))):t}class W extends F{constructor(){super(...arguments),this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(this._cached!==null)return this._cached;const e=this._def.shape(),s=O.objectKeys(e);return this._cached={shape:e,keys:s},this._cached}_parse(e){if(this._getType(e)!==_.object){const c=this._getOrReturnCtx(e);return w(c,{code:x.invalid_type,expected:_.object,received:c.parsedType}),j}const{status:n,ctx:r}=this._processInputParams(e),{shape:a,keys:o}=this._getCached(),i=[];if(!(this._def.catchall instanceof we&&this._def.unknownKeys==="strip"))for(const c in r.data)o.includes(c)||i.push(c);const d=[];for(const c of o){const u=a[c],f=r.data[c];d.push({key:{status:"valid",value:c},value:u._parse(new ce(r,f,r.path,c)),alwaysSet:c in r.data})}if(this._def.catchall instanceof we){const c=this._def.unknownKeys;if(c==="passthrough")for(const u of i)d.push({key:{status:"valid",value:u},value:{status:"valid",value:r.data[u]}});else if(c==="strict")i.length>0&&(w(r,{code:x.unrecognized_keys,keys:i}),n.dirty());else if(c!=="strip")throw new Error("Internal ZodObject error: invalid unknownKeys value.")}else{const c=this._def.catchall;for(const u of i){const f=r.data[u];d.push({key:{status:"valid",value:u},value:c._parse(new ce(r,f,r.path,u)),alwaysSet:u in r.data})}}return r.common.async?Promise.resolve().then(async()=>{const c=[];for(const u of d){const f=await u.key,g=await u.value;c.push({key:f,value:g,alwaysSet:u.alwaysSet})}return c}).then(c=>te.mergeObjectSync(n,c)):te.mergeObjectSync(n,d)}get shape(){return this._def.shape()}strict(e){return C.errToObj,new W({...this._def,unknownKeys:"strict",...e!==void 0?{errorMap:(s,n)=>{var a,o;const r=((o=(a=this._def).errorMap)==null?void 0:o.call(a,s,n).message)??n.defaultError;return s.code==="unrecognized_keys"?{message:C.errToObj(e).message??r}:{message:r}}}:{}})}strip(){return new W({...this._def,unknownKeys:"strip"})}passthrough(){return new W({...this._def,unknownKeys:"passthrough"})}extend(e){return new W({...this._def,shape:()=>({...this._def.shape(),...e})})}merge(e){return new W({unknownKeys:e._def.unknownKeys,catchall:e._def.catchall,shape:()=>({...this._def.shape(),...e._def.shape()}),typeName:E.ZodObject})}setKey(e,s){return this.augment({[e]:s})}catchall(e){return new W({...this._def,catchall:e})}pick(e){const s={};for(const n of O.objectKeys(e))e[n]&&this.shape[n]&&(s[n]=this.shape[n]);return new W({...this._def,shape:()=>s})}omit(e){const s={};for(const n of O.objectKeys(this.shape))e[n]||(s[n]=this.shape[n]);return new W({...this._def,shape:()=>s})}deepPartial(){return je(this)}partial(e){const s={};for(const n of O.objectKeys(this.shape)){const r=this.shape[n];e&&!e[n]?s[n]=r:s[n]=r.optional()}return new W({...this._def,shape:()=>s})}required(e){const s={};for(const n of O.objectKeys(this.shape))if(e&&!e[n])s[n]=this.shape[n];else{let a=this.shape[n];for(;a instanceof ke;)a=a._def.innerType;s[n]=a}return new W({...this._def,shape:()=>s})}keyof(){return Ts(O.objectKeys(this.shape))}}W.create=(t,e)=>new W({shape:()=>t,unknownKeys:"strip",catchall:we.create(),typeName:E.ZodObject,...T(e)});W.strictCreate=(t,e)=>new W({shape:()=>t,unknownKeys:"strict",catchall:we.create(),typeName:E.ZodObject,...T(e)});W.lazycreate=(t,e)=>new W({shape:t,unknownKeys:"strip",catchall:we.create(),typeName:E.ZodObject,...T(e)});class Ye extends F{_parse(e){const{ctx:s}=this._processInputParams(e),n=this._def.options;function r(a){for(const i of a)if(i.result.status==="valid")return i.result;for(const i of a)if(i.result.status==="dirty")return s.common.issues.push(...i.ctx.common.issues),i.result;const o=a.map(i=>new me(i.ctx.common.issues));return w(s,{code:x.invalid_union,unionErrors:o}),j}if(s.common.async)return Promise.all(n.map(async a=>{const o={...s,common:{...s.common,issues:[]},parent:null};return{result:await a._parseAsync({data:s.data,path:s.path,parent:o}),ctx:o}})).then(r);{let a;const o=[];for(const d of n){const c={...s,common:{...s.common,issues:[]},parent:null},u=d._parseSync({data:s.data,path:s.path,parent:c});if(u.status==="valid")return u;u.status==="dirty"&&!a&&(a={result:u,ctx:c}),c.common.issues.length&&o.push(c.common.issues)}if(a)return s.common.issues.push(...a.ctx.common.issues),a.result;const i=o.map(d=>new me(d));return w(s,{code:x.invalid_union,unionErrors:i}),j}}get options(){return this._def.options}}Ye.create=(t,e)=>new Ye({options:t,typeName:E.ZodUnion,...T(e)});function mt(t,e){const s=ye(t),n=ye(e);if(t===e)return{valid:!0,data:t};if(s===_.object&&n===_.object){const r=O.objectKeys(e),a=O.objectKeys(t).filter(i=>r.indexOf(i)!==-1),o={...t,...e};for(const i of a){const d=mt(t[i],e[i]);if(!d.valid)return{valid:!1};o[i]=d.data}return{valid:!0,data:o}}else if(s===_.array&&n===_.array){if(t.length!==e.length)return{valid:!1};const r=[];for(let a=0;a<t.length;a++){const o=t[a],i=e[a],d=mt(o,i);if(!d.valid)return{valid:!1};r.push(d.data)}return{valid:!0,data:r}}else return s===_.date&&n===_.date&&+t==+e?{valid:!0,data:t}:{valid:!1}}class Xe extends F{_parse(e){const{status:s,ctx:n}=this._processInputParams(e),r=(a,o)=>{if(Qt(a)||Qt(o))return j;const i=mt(a.value,o.value);return i.valid?((Jt(a)||Jt(o))&&s.dirty(),{status:s.value,value:i.data}):(w(n,{code:x.invalid_intersection_types}),j)};return n.common.async?Promise.all([this._def.left._parseAsync({data:n.data,path:n.path,parent:n}),this._def.right._parseAsync({data:n.data,path:n.path,parent:n})]).then(([a,o])=>r(a,o)):r(this._def.left._parseSync({data:n.data,path:n.path,parent:n}),this._def.right._parseSync({data:n.data,path:n.path,parent:n}))}}Xe.create=(t,e,s)=>new Xe({left:t,right:e,typeName:E.ZodIntersection,...T(s)});class Ee extends F{_parse(e){const{status:s,ctx:n}=this._processInputParams(e);if(n.parsedType!==_.array)return w(n,{code:x.invalid_type,expected:_.array,received:n.parsedType}),j;if(n.data.length<this._def.items.length)return w(n,{code:x.too_small,minimum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),j;!this._def.rest&&n.data.length>this._def.items.length&&(w(n,{code:x.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),s.dirty());const a=[...n.data].map((o,i)=>{const d=this._def.items[i]||this._def.rest;return d?d._parse(new ce(n,o,n.path,i)):null}).filter(o=>!!o);return n.common.async?Promise.all(a).then(o=>te.mergeArray(s,o)):te.mergeArray(s,a)}get items(){return this._def.items}rest(e){return new Ee({...this._def,rest:e})}}Ee.create=(t,e)=>{if(!Array.isArray(t))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new Ee({items:t,typeName:E.ZodTuple,rest:null,...T(e)})};class et extends F{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){const{status:s,ctx:n}=this._processInputParams(e);if(n.parsedType!==_.object)return w(n,{code:x.invalid_type,expected:_.object,received:n.parsedType}),j;const r=[],a=this._def.keyType,o=this._def.valueType;for(const i in n.data)r.push({key:a._parse(new ce(n,i,n.path,i)),value:o._parse(new ce(n,n.data[i],n.path,i)),alwaysSet:i in n.data});return n.common.async?te.mergeObjectAsync(s,r):te.mergeObjectSync(s,r)}get element(){return this._def.valueType}static create(e,s,n){return s instanceof F?new et({keyType:e,valueType:s,typeName:E.ZodRecord,...T(n)}):new et({keyType:ge.create(),valueType:e,typeName:E.ZodRecord,...T(s)})}}class ns extends F{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){const{status:s,ctx:n}=this._processInputParams(e);if(n.parsedType!==_.map)return w(n,{code:x.invalid_type,expected:_.map,received:n.parsedType}),j;const r=this._def.keyType,a=this._def.valueType,o=[...n.data.entries()].map(([i,d],c)=>({key:r._parse(new ce(n,i,n.path,[c,"key"])),value:a._parse(new ce(n,d,n.path,[c,"value"]))}));if(n.common.async){const i=new Map;return Promise.resolve().then(async()=>{for(const d of o){const c=await d.key,u=await d.value;if(c.status==="aborted"||u.status==="aborted")return j;(c.status==="dirty"||u.status==="dirty")&&s.dirty(),i.set(c.value,u.value)}return{status:s.value,value:i}})}else{const i=new Map;for(const d of o){const c=d.key,u=d.value;if(c.status==="aborted"||u.status==="aborted")return j;(c.status==="dirty"||u.status==="dirty")&&s.dirty(),i.set(c.value,u.value)}return{status:s.value,value:i}}}}ns.create=(t,e,s)=>new ns({valueType:e,keyType:t,typeName:E.ZodMap,...T(s)});class Ge extends F{_parse(e){const{status:s,ctx:n}=this._processInputParams(e);if(n.parsedType!==_.set)return w(n,{code:x.invalid_type,expected:_.set,received:n.parsedType}),j;const r=this._def;r.minSize!==null&&n.data.size<r.minSize.value&&(w(n,{code:x.too_small,minimum:r.minSize.value,type:"set",inclusive:!0,exact:!1,message:r.minSize.message}),s.dirty()),r.maxSize!==null&&n.data.size>r.maxSize.value&&(w(n,{code:x.too_big,maximum:r.maxSize.value,type:"set",inclusive:!0,exact:!1,message:r.maxSize.message}),s.dirty());const a=this._def.valueType;function o(d){const c=new Set;for(const u of d){if(u.status==="aborted")return j;u.status==="dirty"&&s.dirty(),c.add(u.value)}return{status:s.value,value:c}}const i=[...n.data.values()].map((d,c)=>a._parse(new ce(n,d,n.path,c)));return n.common.async?Promise.all(i).then(d=>o(d)):o(i)}min(e,s){return new Ge({...this._def,minSize:{value:e,message:C.toString(s)}})}max(e,s){return new Ge({...this._def,maxSize:{value:e,message:C.toString(s)}})}size(e,s){return this.min(e,s).max(e,s)}nonempty(e){return this.min(1,e)}}Ge.create=(t,e)=>new Ge({valueType:t,minSize:null,maxSize:null,typeName:E.ZodSet,...T(e)});class rs extends F{get schema(){return this._def.getter()}_parse(e){const{ctx:s}=this._processInputParams(e);return this._def.getter()._parse({data:s.data,path:s.path,parent:s})}}rs.create=(t,e)=>new rs({getter:t,typeName:E.ZodLazy,...T(e)});class pt extends F{_parse(e){if(e.data!==this._def.value){const s=this._getOrReturnCtx(e);return w(s,{received:s.data,code:x.invalid_literal,expected:this._def.value}),j}return{status:"valid",value:e.data}}get value(){return this._def.value}}pt.create=(t,e)=>new pt({value:t,typeName:E.ZodLiteral,...T(e)});function Ts(t,e){return new Ae({values:t,typeName:E.ZodEnum,...T(e)})}class Ae extends F{_parse(e){if(typeof e.data!="string"){const s=this._getOrReturnCtx(e),n=this._def.values;return w(s,{expected:O.joinValues(n),received:s.parsedType,code:x.invalid_type}),j}if(this._cache||(this._cache=new Set(this._def.values)),!this._cache.has(e.data)){const s=this._getOrReturnCtx(e),n=this._def.values;return w(s,{received:s.data,code:x.invalid_enum_value,options:n}),j}return ie(e.data)}get options(){return this._def.values}get enum(){const e={};for(const s of this._def.values)e[s]=s;return e}get Values(){const e={};for(const s of this._def.values)e[s]=s;return e}get Enum(){const e={};for(const s of this._def.values)e[s]=s;return e}extract(e,s=this._def){return Ae.create(e,{...this._def,...s})}exclude(e,s=this._def){return Ae.create(this.options.filter(n=>!e.includes(n)),{...this._def,...s})}}Ae.create=Ts;class as extends F{_parse(e){const s=O.getValidEnumValues(this._def.values),n=this._getOrReturnCtx(e);if(n.parsedType!==_.string&&n.parsedType!==_.number){const r=O.objectValues(s);return w(n,{expected:O.joinValues(r),received:n.parsedType,code:x.invalid_type}),j}if(this._cache||(this._cache=new Set(O.getValidEnumValues(this._def.values))),!this._cache.has(e.data)){const r=O.objectValues(s);return w(n,{received:n.data,code:x.invalid_enum_value,options:r}),j}return ie(e.data)}get enum(){return this._def.values}}as.create=(t,e)=>new as({values:t,typeName:E.ZodNativeEnum,...T(e)});class tt extends F{unwrap(){return this._def.type}_parse(e){const{ctx:s}=this._processInputParams(e);if(s.parsedType!==_.promise&&s.common.async===!1)return w(s,{code:x.invalid_type,expected:_.promise,received:s.parsedType}),j;const n=s.parsedType===_.promise?s.data:Promise.resolve(s.data);return ie(n.then(r=>this._def.type.parseAsync(r,{path:s.path,errorMap:s.common.contextualErrorMap})))}}tt.create=(t,e)=>new tt({type:t,typeName:E.ZodPromise,...T(e)});class Me extends F{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===E.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(e){const{status:s,ctx:n}=this._processInputParams(e),r=this._def.effect||null,a={addIssue:o=>{w(n,o),o.fatal?s.abort():s.dirty()},get path(){return n.path}};if(a.addIssue=a.addIssue.bind(a),r.type==="preprocess"){const o=r.transform(n.data,a);if(n.common.async)return Promise.resolve(o).then(async i=>{if(s.value==="aborted")return j;const d=await this._def.schema._parseAsync({data:i,path:n.path,parent:n});return d.status==="aborted"?j:d.status==="dirty"||s.value==="dirty"?Le(d.value):d});{if(s.value==="aborted")return j;const i=this._def.schema._parseSync({data:o,path:n.path,parent:n});return i.status==="aborted"?j:i.status==="dirty"||s.value==="dirty"?Le(i.value):i}}if(r.type==="refinement"){const o=i=>{const d=r.refinement(i,a);if(n.common.async)return Promise.resolve(d);if(d instanceof Promise)throw new Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return i};if(n.common.async===!1){const i=this._def.schema._parseSync({data:n.data,path:n.path,parent:n});return i.status==="aborted"?j:(i.status==="dirty"&&s.dirty(),o(i.value),{status:s.value,value:i.value})}else return this._def.schema._parseAsync({data:n.data,path:n.path,parent:n}).then(i=>i.status==="aborted"?j:(i.status==="dirty"&&s.dirty(),o(i.value).then(()=>({status:s.value,value:i.value}))))}if(r.type==="transform")if(n.common.async===!1){const o=this._def.schema._parseSync({data:n.data,path:n.path,parent:n});if(!Ne(o))return j;const i=r.transform(o.value,a);if(i instanceof Promise)throw new Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:s.value,value:i}}else return this._def.schema._parseAsync({data:n.data,path:n.path,parent:n}).then(o=>Ne(o)?Promise.resolve(r.transform(o.value,a)).then(i=>({status:s.value,value:i})):j);O.assertNever(r)}}Me.create=(t,e,s)=>new Me({schema:t,typeName:E.ZodEffects,effect:e,...T(s)});Me.createWithPreprocess=(t,e,s)=>new Me({schema:e,effect:{type:"preprocess",transform:t},typeName:E.ZodEffects,...T(s)});class ke extends F{_parse(e){return this._getType(e)===_.undefined?ie(void 0):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}}ke.create=(t,e)=>new ke({innerType:t,typeName:E.ZodOptional,...T(e)});class Fe extends F{_parse(e){return this._getType(e)===_.null?ie(null):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}}Fe.create=(t,e)=>new Fe({innerType:t,typeName:E.ZodNullable,...T(e)});class xt extends F{_parse(e){const{ctx:s}=this._processInputParams(e);let n=s.data;return s.parsedType===_.undefined&&(n=this._def.defaultValue()),this._def.innerType._parse({data:n,path:s.path,parent:s})}removeDefault(){return this._def.innerType}}xt.create=(t,e)=>new xt({innerType:t,typeName:E.ZodDefault,defaultValue:typeof e.default=="function"?e.default:()=>e.default,...T(e)});class bt extends F{_parse(e){const{ctx:s}=this._processInputParams(e),n={...s,common:{...s.common,issues:[]}},r=this._def.innerType._parse({data:n.data,path:n.path,parent:{...n}});return Je(r)?r.then(a=>({status:"valid",value:a.status==="valid"?a.value:this._def.catchValue({get error(){return new me(n.common.issues)},input:n.data})})):{status:"valid",value:r.status==="valid"?r.value:this._def.catchValue({get error(){return new me(n.common.issues)},input:n.data})}}removeCatch(){return this._def.innerType}}bt.create=(t,e)=>new bt({innerType:t,typeName:E.ZodCatch,catchValue:typeof e.catch=="function"?e.catch:()=>e.catch,...T(e)});class os extends F{_parse(e){if(this._getType(e)!==_.nan){const n=this._getOrReturnCtx(e);return w(n,{code:x.invalid_type,expected:_.nan,received:n.parsedType}),j}return{status:"valid",value:e.data}}}os.create=t=>new os({typeName:E.ZodNaN,...T(t)});class Ar extends F{_parse(e){const{ctx:s}=this._processInputParams(e),n=s.data;return this._def.type._parse({data:n,path:s.path,parent:s})}unwrap(){return this._def.type}}class It extends F{_parse(e){const{status:s,ctx:n}=this._processInputParams(e);if(n.common.async)return(async()=>{const a=await this._def.in._parseAsync({data:n.data,path:n.path,parent:n});return a.status==="aborted"?j:a.status==="dirty"?(s.dirty(),Le(a.value)):this._def.out._parseAsync({data:a.value,path:n.path,parent:n})})();{const r=this._def.in._parseSync({data:n.data,path:n.path,parent:n});return r.status==="aborted"?j:r.status==="dirty"?(s.dirty(),{status:"dirty",value:r.value}):this._def.out._parseSync({data:r.value,path:n.path,parent:n})}}static create(e,s){return new It({in:e,out:s,typeName:E.ZodPipeline})}}class yt extends F{_parse(e){const s=this._def.innerType._parse(e),n=r=>(Ne(r)&&(r.value=Object.freeze(r.value)),r);return Je(s)?s.then(r=>n(r)):n(s)}unwrap(){return this._def.innerType}}yt.create=(t,e)=>new yt({innerType:t,typeName:E.ZodReadonly,...T(e)});var E;(function(t){t.ZodString="ZodString",t.ZodNumber="ZodNumber",t.ZodNaN="ZodNaN",t.ZodBigInt="ZodBigInt",t.ZodBoolean="ZodBoolean",t.ZodDate="ZodDate",t.ZodSymbol="ZodSymbol",t.ZodUndefined="ZodUndefined",t.ZodNull="ZodNull",t.ZodAny="ZodAny",t.ZodUnknown="ZodUnknown",t.ZodNever="ZodNever",t.ZodVoid="ZodVoid",t.ZodArray="ZodArray",t.ZodObject="ZodObject",t.ZodUnion="ZodUnion",t.ZodDiscriminatedUnion="ZodDiscriminatedUnion",t.ZodIntersection="ZodIntersection",t.ZodTuple="ZodTuple",t.ZodRecord="ZodRecord",t.ZodMap="ZodMap",t.ZodSet="ZodSet",t.ZodFunction="ZodFunction",t.ZodLazy="ZodLazy",t.ZodLiteral="ZodLiteral",t.ZodEnum="ZodEnum",t.ZodEffects="ZodEffects",t.ZodNativeEnum="ZodNativeEnum",t.ZodOptional="ZodOptional",t.ZodNullable="ZodNullable",t.ZodDefault="ZodDefault",t.ZodCatch="ZodCatch",t.ZodPromise="ZodPromise",t.ZodBranded="ZodBranded",t.ZodPipeline="ZodPipeline",t.ZodReadonly="ZodReadonly"})(E||(E={}));const M=ge.create,Nt=Te.create,he=ht.create,vt=gt.create;we.create;const Tt=de.create,oe=W.create,At=Ye.create;Xe.create;Ee.create;const Mt=et.create,is=pt.create,Be=Ae.create;tt.create;ke.create;Fe.create;const As=Be(["default","autoEdit","yolo","plan"]),He={DEFAULT:"default",AUTO_EDIT:"autoEdit",PLAN:"plan"},Ms=Be(["user","assistant","system","tool"]),Mr=At([oe({type:is("text"),text:M()}),oe({type:is("image_url"),image_url:oe({url:M()})})]);oe({id:M(),role:Ms,content:At([M(),Tt(Mr)]),timestamp:Nt(),metadata:Mt(vt()).optional(),thinkingContent:M().optional(),tool_call_id:M().optional(),name:M().optional(),tool_calls:vt().optional()});oe({sessionId:M(),projectPath:M(),title:M().optional(),gitBranch:M().optional(),messageCount:Nt(),firstMessageTime:M(),lastMessageTime:M(),hasErrors:he(),filePath:M().optional()});oe({type:M(),properties:Mt(vt())});oe({content:M(),permissionMode:As.optional(),attachments:Tt(oe({type:Be(["file","image","url"]),path:M().optional(),url:M().optional(),content:M().optional(),mimeType:M().optional(),name:M().optional()})).optional()});oe({messageId:M(),role:Ms,content:M(),timestamp:M()});oe({approved:he(),remember:he().optional(),scope:Be(["once","session"]).optional(),targetMode:As.optional(),feedback:M().optional(),answers:Mt(At([M(),Tt(M())])).optional()});oe({id:M(),name:M(),provider:M(),model:M(),baseUrl:M().optional(),apiKey:M().optional(),maxContextTokens:Nt().optional()});Be(["vs-dark","vs-light","hc-black"]);const Fr=Be(["light","dark","system"]),Rr=oe({language:M(),theme:M(),uiTheme:Fr,autoSaveSessions:he(),notifyBuild:he(),notifyErrors:he(),notifySounds:he(),privacyTelemetry:he(),privacyCrash:he()});Rr.partial();const Fs=Et(t=>({currentModelId:null,currentMode:He.DEFAULT,configuredModels:[],availableModels:[],isLoading:!1,error:null,loadModels:async()=>{t({isLoading:!0,error:null});try{const e=await fetch("/models");if(!e.ok)throw new Error("Failed to load models");const s=await e.json(),n=s.current;t({currentModelId:(n==null?void 0:n.id)||null,configuredModels:s.configured||[],availableModels:s.available||[],isLoading:!1})}catch(e){t({error:e.message,isLoading:!1})}},setCurrentModel:async e=>{try{if(!(await fetch("/configs",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({updates:{currentModelId:e},options:{scope:"global"}})})).ok)throw new Error("Failed to set model");t({currentModelId:e})}catch(s){t({error:s.message})}},setMode:e=>t({currentMode:e})})),ot="__temp__",kt={inputTokens:0,outputTokens:0,totalTokens:0,maxContextTokens:128e3,isDefaultMaxTokens:!0},Or=2166136261,zr=16777619;function wt(t){return t==null?"":typeof t=="string"?t:typeof t=="number"||typeof t=="boolean"?String(t):Array.isArray(t)?`[${t.map(e=>wt(e)).join(",")}]`:typeof t=="object"?`{${Object.entries(t).sort(([s],[n])=>s.localeCompare(n)).map(([s,n])=>`${JSON.stringify(s)}:${wt(n)}`).join(",")}}`:JSON.stringify(t)}function Rs(t){let e=Or>>>0;for(let s=0;s<t.length;s+=1)e^=t.charCodeAt(s),e=Math.imul(e,zr);return(e>>>0).toString(16)}function Os(t){return typeof t=="string"?t:wt(t??{})}function Br(t){return t==="completed"?"completed":t==="failed"?"failed":"running"}function _t({explicitId:t,messageId:e,toolName:s,argumentsValue:n,toolKind:r,output:a}){if(t)return t;const o=[e||"unknown-message",s||"Unknown",Os(n),r||"",a||""].join("|");return`tool-${Rs(o)}`}function Ft({explicitId:t,sessionId:e,messageId:s,agentType:n,description:r,summary:a}){if(t)return t;if(e)return e;const o=[s||"unknown-message",n||"subagent",r||"",a||""].join("|");return`subagent-${Rs(o)}`}const Pr=()=>({textBefore:"",toolCalls:[],textAfter:"",thinkingContent:"",tasks:[],subagent:null,confirmation:null,question:null}),$r=(t,e)=>{if(!e||typeof e!="object"||!("subtaskRef"in e))return null;const s=e.subtaskRef;return!s||typeof s!="object"?null:{id:Ft({explicitId:typeof s.subagentId=="string"?s.subagentId:void 0,sessionId:s.childSessionId,messageId:t,agentType:s.agentType,description:s.description,summary:s.summary}),type:s.agentType||"subagent",description:s.description||s.summary||"",status:Br(s.status),startTime:Date.now(),sessionId:s.childSessionId}};function De(t){return typeof t=="string"?t:t.filter(e=>e.type==="text").map(e=>e.text).join(`
4
- `)}function zs(t){var n,r,a;const e=[];let s=null;for(const o of t)if(o.role==="user"||o.role==="system")s&&(e.push(s),s=null),e.push({id:o.id,role:o.role,content:o.content,timestamp:o.timestamp||Date.now(),metadata:o.metadata});else if(o.role==="assistant"){s&&e.push(s);const i=o.metadata,d=Pr();if(d.textBefore=De(o.content),o.thinkingContent&&(d.thinkingContent=o.thinkingContent),d.subagent=$r(o.id,i),o.tool_calls&&Array.isArray(o.tool_calls))for(const c of o.tool_calls){const u=((n=c.function)==null?void 0:n.name)||"Unknown",f=Os((r=c.function)==null?void 0:r.arguments),g={toolCallId:_t({explicitId:c.id,messageId:o.id,toolName:u,argumentsValue:(a=c.function)==null?void 0:a.arguments}),toolName:u,arguments:f,status:"running",startTime:Date.now()};d.toolCalls.push(g)}s={id:o.id,role:"assistant",content:De(o.content),timestamp:o.timestamp||Date.now(),metadata:i,agentContent:d}}else if(o.role==="tool"&&s&&s.agentContent){const i=o,d=o.metadata,c=i.tool_call_id||(d==null?void 0:d.toolCallId),u=i.name||(d==null?void 0:d.toolName)||"Tool",f=s.agentContent.toolCalls.find(g=>g.toolCallId===c);f?(f.output=De(o.content),f.status="success",(!f.toolName||f.toolName==="Unknown")&&(f.toolName=u)):s.agentContent.toolCalls.push({toolCallId:_t({explicitId:c,messageId:s.id,toolName:u,output:De(o.content)}),toolName:u,output:De(o.content),status:"success",startTime:Date.now()})}return s&&e.push(s),e}const Dr=t=>{var s;const e=[];t.content.trim()&&e.push({type:"text",text:t.content});for(const n of t.attachments??[])n.type==="image"&&e.push({type:"image_url",image_url:{url:n.content}});return e.length===0?t.content:e.length===1&&((s=e[0])==null?void 0:s.type)==="text"?e[0].text:e},Zr=(t,e)=>({sessions:[],currentSessionId:null,isTemporarySession:!1,isLoading:!1,error:null,setSessions:s=>t({sessions:s}),addSession:s=>t(n=>({sessions:[...n.sessions,s]})),removeSession:s=>t(n=>({sessions:n.sessions.filter(r=>r.sessionId!==s),currentSessionId:n.currentSessionId===s?null:n.currentSessionId,messages:n.currentSessionId===s?[]:n.messages})),setCurrentSession:s=>t({currentSessionId:s,isTemporarySession:!1}),setTemporarySession:s=>t({isTemporarySession:s}),setLoading:s=>t({isLoading:s}),setError:s=>t({error:s}),clearError:()=>t({error:null}),startTemporarySession:()=>t({currentSessionId:ot,isTemporarySession:!0,messages:[],tokenUsage:{...kt},error:null}),loadSessions:async()=>{t({isLoading:!0,error:null});try{const s=await le.listSessions();t({sessions:s,isLoading:!1})}catch(s){t({error:s.message,isLoading:!1})}},selectSession:async s=>{t({isLoading:!0,error:null,currentSessionId:s,isTemporarySession:!1});try{const n=await le.getMessages(s),r=zs(n);t({messages:r,isLoading:!1,tokenUsage:{...kt}}),e().currentSessionId===s&&e().subscribeToEvents(s)}catch(n){t({error:n.message,isLoading:!1})}},deleteSession:async s=>{try{await le.deleteSession(s),t(n=>({sessions:n.sessions.filter(r=>r.sessionId!==s),currentSessionId:n.currentSessionId===s?null:n.currentSessionId,messages:n.currentSessionId===s?[]:n.messages}))}catch(n){t({error:n.message})}},sendMessage:async s=>{const{currentSessionId:n,isTemporarySession:r,isStreaming:a,subscribeToEvents:o,addSession:i,addMessage:d}=e();let c=n;if(r||!n||n===ot)try{const u=await le.createSession();i(u),t({currentSessionId:u.sessionId,isTemporarySession:!1}),c=u.sessionId}catch(u){t({error:u.message});return}if(!c||c===ot){t({error:"Failed to create session"});return}d({id:`temp-${Date.now()}`,role:"user",content:Dr(s),timestamp:Date.now()}),t({isStreaming:!0,error:null,recoveredSteeringCount:a?e().recoveredSteeringCount:0}),a||o(c);try{const{currentMode:u}=Fs.getState(),f=await le.sendMessage(c,s,u);t({currentRunId:f.runId,pendingSteeringCount:f.status==="steering_queued"||f.status==="follow_up_queued"?Math.max(0,f.queued??1):e().pendingSteeringCount})}catch(u){t({error:u.message,isStreaming:!1})}},abortSession:async()=>{const{currentSessionId:s,unsubscribeFromEvents:n}=e();if(n(),t({isStreaming:!1,currentRunId:null,pendingSteeringCount:0}),s)try{await le.abortSession(s)}catch{}}}),Lr={flushTimeout:80};class Ur{constructor(e){nt(this,"config");nt(this,"channels",new Map);this.config={...Lr,...e}}append(e,s,n){let r=this.channels.get(e);r||(r={buffer:"",timer:null,flushFn:null},this.channels.set(e,r)),r.buffer+=s,r.flushFn=n,r.timer||(r.timer=setTimeout(()=>{this.flushChannel(e)},this.config.flushTimeout))}flushChannel(e){const s=this.channels.get(e);if(!s||!s.buffer)return;const n=s.buffer,r=s.flushFn;s.buffer="",s.timer&&(clearTimeout(s.timer),s.timer=null),r==null||r(n)}drainAll(){for(const[e]of this.channels)this.flushChannel(e);this.channels.clear()}reset(){for(const[,e]of this.channels)e.timer&&clearTimeout(e.timer);this.channels.clear()}}const ve=new Ur,Re=()=>({textBefore:"",toolCalls:[],textAfter:"",thinkingContent:"",tasks:[],subagent:null,confirmation:null,question:null}),Vr=(t,e,s)=>{const{currentAssistantMessageId:n,messages:r,addMessage:a,startAgentResponse:o}=t();if(n&&!n.startsWith("call_"))return n;if(s){const u=r.find(f=>f.id===s&&f.role==="assistant");if(u)return o(u.id),u.id}const i=r[r.length-1];if((i==null?void 0:i.role)==="assistant")return i.id;const d=s||`assistant-${Date.now()}`,c={id:d,role:"assistant",content:"",timestamp:Date.now(),agentContent:Re()};return a(c),o(d),e(u=>({messages:u.messages.map(f=>f.id===d?{...f,agentContent:{...f.agentContent||Re()}}:f)})),d},qr=(t,e,s)=>{const{currentSessionId:n,addMessage:r,startAgentResponse:a,messages:o,updateMessage:i}=e();if(t.sessionId!==n)return;const d=t.messageId,c=t.role||"assistant",u=o.find(g=>g.id===d),f={id:d,role:c,content:t.content||"",timestamp:Date.now(),agentContent:c==="assistant"?Re():void 0};u?i(d,{role:c,content:f.content,agentContent:c==="assistant"?{...u.agentContent||Re()}:void 0}):r(f),c==="assistant"&&a(d)},Gr=(t,e,s)=>{const{currentSessionId:n,appendDelta:r,currentAssistantMessageId:a,hasToolCalls:o,addMessage:i,startAgentResponse:d}=e();if(t.sessionId!==n)return;const c=t.messageId,u=t.delta;if(!a){const g={id:c,role:"assistant",content:"",timestamp:Date.now(),agentContent:Re()};i(g),d(c),s(h=>({messages:h.messages.map(m=>m.id===c?{...m,agentContent:{...m.agentContent||Re(),textBefore:u}}:m)}));return}r(a,u,o?"after":"before")},Wr=(t,e)=>{const{currentSessionId:s,updateMessage:n,messages:r}=e();if(t.sessionId!==s)return;const a=t.messageId,o=r.find(i=>i.id===a);if(o!=null&&o.agentContent){const{textBefore:i,textAfter:d}=o.agentContent;n(a,{content:i+d})}},Hr=(t,e)=>{const{currentSessionId:s,appendThinking:n,currentAssistantMessageId:r}=e();t.sessionId===s&&r&&n(r,t.delta)},Qr=()=>{},Jr=(t,e,s)=>{const{currentSessionId:n,appendToolCall:r,setHasToolCalls:a,setSubagent:o}=e();if(t.sessionId!==n)return;const i=Vr(e,s,t.messageId||t.toolCallId);if(!i)return;a(!0);const d=t.toolName||"Unknown",c=t.arguments;let u,f="",g;if(d==="Task")try{const m=JSON.parse(c);u=m.subagent_type,f=m.description||m.query||u||"",g=m.subagent_session_id}catch{}if(u){o(i,{id:Ft({explicitId:t.toolCallId,sessionId:g,messageId:i,agentType:u,description:f}),type:u,description:f,status:"running",startTime:Date.now(),sessionId:g,output:"",thinking:""});return}const h={toolCallId:_t({explicitId:t.toolCallId,messageId:i,toolName:d,argumentsValue:c,toolKind:t.toolKind}),toolName:d,arguments:c,toolKind:t.toolKind,status:"running",startTime:Date.now()};r(i,h)},Kr=(t,e,s)=>{var v,I,q,Q;const{currentSessionId:n,updateToolCall:r,messages:a}=e();if(t.sessionId!==n)return;const o=t.toolCallId;if(!o)return;const i=a.find($=>{var D;return(D=$.agentContent)==null?void 0:D.toolCalls.some(X=>X.toolCallId===o)});console.log("[handleToolResult]",{toolCallId:o,foundMessage:!!i,messageId:i==null?void 0:i.id,toolCallsInMessage:(v=i==null?void 0:i.agentContent)==null?void 0:v.toolCalls.map($=>$.toolCallId),success:t.success});const d=t.messageId||(i==null?void 0:i.id)||((I=[...a].reverse().find($=>$.role==="assistant"))==null?void 0:I.id);if(!d){console.log("[handleToolResult] No targetMessageId found!");return}const c=t.output,u=t.summary||(c&&c.trim()?c.trim().split(`
5
- `)[0].slice(0,120):t.success?"执行成功":"执行失败");console.log("[handleToolResult] Updating tool call",{targetMessageId:d,toolCallId:o,status:t.success?"success":"error"}),r(d,o,{status:t.success?"success":"error",summary:u,output:c,metadata:t.metadata});const f=a.find($=>$.id===d);((Q=(q=f==null?void 0:f.agentContent)==null?void 0:q.subagent)==null?void 0:Q.id)===o&&s($=>({messages:$.messages.map(D=>{var X;return D.id!==d||!((X=D.agentContent)!=null&&X.subagent)?D:{...D,agentContent:{...D.agentContent,subagent:{...D.agentContent.subagent,status:t.success?"completed":"failed"}}}})}));const g=t.metadata,h=g&&typeof g.subagentSessionId=="string"?g.subagentSessionId:void 0,m=g&&typeof g.subagentStatus=="string"?g.subagentStatus:void 0,b=g&&typeof g.subagentType=="string"?g.subagentType:void 0,y=g&&typeof g.subagentSummary=="string"?g.subagentSummary:void 0;h&&m&&s($=>({messages:$.messages.map(D=>{if(D.id!==d)return D;const X=D.metadata??{},J=X.subtaskRef,V={...J??{},childSessionId:h,agentType:b||(typeof(J==null?void 0:J.agentType)=="string"?J.agentType:"subagent"),status:m,summary:y||(typeof(J==null?void 0:J.summary)=="string"?J.summary:"")};return{...D,metadata:{...X,subtaskRef:V}}})}))},Yr=(t,e)=>{const{currentSessionId:s,updateTokenUsage:n,setMaxContextTokens:r}=e();t.sessionId===s&&(n({inputTokens:t.inputTokens,outputTokens:t.outputTokens,totalTokens:t.totalTokens}),t.maxContextTokens&&r(t.maxContextTokens,!1))},Xr=(t,e)=>{const{currentSessionId:s,setTasks:n,currentAssistantMessageId:r}=e();if(t.sessionId!==s||!r)return;const a=t.tasks||[];n(r,a)},ea=(t,e)=>{const{currentSessionId:s,setSubagent:n,currentAssistantMessageId:r}=e();if(t.sessionId!==s||!r)return;const a={id:Ft({explicitId:t.subagentId,sessionId:t.subagentSessionId,messageId:r,agentType:t.type,description:t.description}),type:t.type||"unknown",description:t.description||"",status:"running",startTime:Date.now()};n(r,a)},ta=(t,e,s)=>{var c,u,f;const{currentSessionId:n,currentAssistantMessageId:r,messages:a}=e();if(t.sessionId!==n)return;const o=t.subagentSessionId,i=o?(c=a.find(g=>{var h,m;return((m=(h=g.agentContent)==null?void 0:h.subagent)==null?void 0:m.sessionId)===o}))==null?void 0:c.id:r||((u=[...a].reverse().find(g=>{var h;return(h=g.agentContent)==null?void 0:h.subagent}))==null?void 0:u.id);if(!i)return;const d=a.find(g=>g.id===i);(f=d==null?void 0:d.agentContent)!=null&&f.subagent&&s(g=>({messages:g.messages.map(h=>{var m;return h.id!==i||!((m=h.agentContent)!=null&&m.subagent)?h:{...h,agentContent:{...h.agentContent,subagent:{...h.agentContent.subagent,sessionId:h.agentContent.subagent.sessionId||o,currentTool:t.toolName}}}})}))},sa=(t,e,s)=>{var c,u,f;const{currentSessionId:n,currentAssistantMessageId:r,messages:a}=e();if(t.sessionId!==n)return;const o=t.delta;if(!o)return;const i=t.subagentSessionId,d=i?((c=a.find(g=>{var h,m;return((m=(h=g.agentContent)==null?void 0:h.subagent)==null?void 0:m.sessionId)===i}))==null?void 0:c.id)||((u=a.find(g=>{var h,m;return((m=(h=g.agentContent)==null?void 0:h.subagent)==null?void 0:m.status)==="running"}))==null?void 0:u.id):r||((f=[...a].reverse().find(g=>{var h;return(h=g.agentContent)==null?void 0:h.subagent}))==null?void 0:f.id);d&&s(g=>({messages:g.messages.map(h=>{var m;return h.id!==d||!((m=h.agentContent)!=null&&m.subagent)?h:{...h,agentContent:{...h.agentContent,subagent:{...h.agentContent.subagent,sessionId:h.agentContent.subagent.sessionId||i,output:(h.agentContent.subagent.output||"")+o}}}})}))},na=(t,e,s)=>{var c,u,f;const{currentSessionId:n,currentAssistantMessageId:r,messages:a}=e();if(t.sessionId!==n)return;const o=t.delta;if(!o)return;const i=t.subagentSessionId,d=i?((c=a.find(g=>{var h,m;return((m=(h=g.agentContent)==null?void 0:h.subagent)==null?void 0:m.sessionId)===i}))==null?void 0:c.id)||((u=a.find(g=>{var h,m;return((m=(h=g.agentContent)==null?void 0:h.subagent)==null?void 0:m.status)==="running"}))==null?void 0:u.id):r||((f=[...a].reverse().find(g=>{var h;return(h=g.agentContent)==null?void 0:h.subagent}))==null?void 0:f.id);d&&s(g=>({messages:g.messages.map(h=>{var m;return h.id!==d||!((m=h.agentContent)!=null&&m.subagent)?h:{...h,agentContent:{...h.agentContent,subagent:{...h.agentContent.subagent,sessionId:h.agentContent.subagent.sessionId||i,thinking:(h.agentContent.subagent.thinking||"")+o}}}})}))},ra=(t,e,s)=>{var c,u,f,g;const{currentSessionId:n,currentAssistantMessageId:r,messages:a}=e();if(t.sessionId!==n)return;const o=t.subagentSessionId,i=o?((c=a.find(h=>{var m,b;return((b=(m=h.agentContent)==null?void 0:m.subagent)==null?void 0:b.sessionId)===o}))==null?void 0:c.id)||((u=a.find(h=>{var m,b;return((b=(m=h.agentContent)==null?void 0:m.subagent)==null?void 0:b.status)==="running"}))==null?void 0:u.id):r||((f=[...a].reverse().find(h=>{var m;return(m=h.agentContent)==null?void 0:m.subagent}))==null?void 0:f.id);if(!i)return;const d=a.find(h=>h.id===i);(g=d==null?void 0:d.agentContent)!=null&&g.subagent&&s(h=>({messages:h.messages.map(m=>{var b;return m.id!==i||!((b=m.agentContent)!=null&&b.subagent)?m:{...m,agentContent:{...m.agentContent,subagent:{...m.agentContent.subagent,sessionId:m.agentContent.subagent.sessionId||o,status:t.success?"completed":"failed"}}}})}))},aa=(t,e,s)=>{var f,g,h;const{currentSessionId:n,currentAssistantMessageId:r,messages:a}=e();if(t.sessionId!==n)return;const o=t.toolCallId,i=t.toolName;if(!o||!i)return;const d=t.subagentSessionId,c=d?((f=a.find(m=>{var b,y;return((y=(b=m.agentContent)==null?void 0:b.subagent)==null?void 0:y.sessionId)===d}))==null?void 0:f.id)||((g=a.find(m=>{var b,y;return((y=(b=m.agentContent)==null?void 0:b.subagent)==null?void 0:y.status)==="running"}))==null?void 0:g.id):r||((h=[...a].reverse().find(m=>{var b;return(b=m.agentContent)==null?void 0:b.subagent}))==null?void 0:h.id);if(!c)return;const u={toolCallId:o,toolName:i,arguments:t.arguments,toolKind:t.toolKind,status:"running",startTime:Date.now()};s(m=>({messages:m.messages.map(b=>{var v;if(b.id!==c||!((v=b.agentContent)!=null&&v.subagent))return b;const y=b.agentContent.subagent.toolCalls||[];return y.some(I=>I.toolCallId===o)?b:{...b,agentContent:{...b.agentContent,subagent:{...b.agentContent.subagent,sessionId:b.agentContent.subagent.sessionId||d,toolCalls:[...y,u]}}}})}))},oa=(t,e,s)=>{var h,m,b;const{currentSessionId:n,currentAssistantMessageId:r,messages:a}=e();if(t.sessionId!==n)return;const o=t.toolCallId;if(!o)return;const i=t.subagentSessionId,d=i?((h=a.find(y=>{var v,I;return((I=(v=y.agentContent)==null?void 0:v.subagent)==null?void 0:I.sessionId)===i}))==null?void 0:h.id)||((m=a.find(y=>{var v,I;return((I=(v=y.agentContent)==null?void 0:v.subagent)==null?void 0:I.status)==="running"}))==null?void 0:m.id):r||((b=[...a].reverse().find(y=>{var v;return(v=y.agentContent)==null?void 0:v.subagent}))==null?void 0:b.id);if(!d)return;const c=t.output,u=t.success===!0,f=u?"success":"error",g=t.summary||(c&&c.trim()?c.trim().split(`
6
- `)[0].slice(0,120):u?"执行成功":"执行失败");s(y=>({messages:y.messages.map(v=>{var Q;if(v.id!==d||!((Q=v.agentContent)!=null&&Q.subagent))return v;const q=(v.agentContent.subagent.toolCalls||[]).map($=>$.toolCallId===o?{...$,status:f,summary:g,output:c,metadata:t.metadata}:$);return{...v,agentContent:{...v.agentContent,subagent:{...v.agentContent.subagent,sessionId:v.agentContent.subagent.sessionId||i,toolCalls:q}}}})}))},ia=(t,e,s)=>{const{currentSessionId:n,setConfirmation:r,messages:a}=e();if(t.sessionId!==n)return;const o=[...a].reverse().find(c=>c.role==="assistant");if(!o)return;const i=t.details,d=t.toolName||(i==null?void 0:i.toolName)||"Edit";r(o.id,{toolCallId:t.requestId||"",toolName:d,description:t.description,diff:(i==null?void 0:i.details)||(i==null?void 0:i.diff)||"",status:"pending"}),s({agentPhase:"waiting_permission"})},la=(t,e,s)=>{var c;const{currentSessionId:n,messages:r,setConfirmation:a}=e();if(t.sessionId!==n)return;const o=t.requestId,i=r.find(u=>{var f,g;return((g=(f=u.agentContent)==null?void 0:f.confirmation)==null?void 0:g.toolCallId)===o}),d=(c=i==null?void 0:i.agentContent)==null?void 0:c.confirmation;i&&(d==null?void 0:d.status)==="pending"&&a(i.id,{...d,status:"denied"}),s({agentPhase:"running",error:"Permission request timed out"})},da=(t,e,s)=>{t.sessionId===e().currentSessionId&&s({agentPhase:"running"})},ca=(t,e,s)=>{t.sessionId===e().currentSessionId&&s({agentPhase:"compacting"})},ua=(t,e,s)=>{t.sessionId===e().currentSessionId&&s({agentPhase:"running"})},fa=(t,e,s)=>{t.sessionId===e().currentSessionId&&s({agentPhase:"switching_model"})},ha=(t,e)=>{const{currentSessionId:s,setQuestion:n,currentAssistantMessageId:r}=e();t.sessionId===s&&r&&n(r,{toolCallId:t.toolCallId,questions:t.questions,status:"pending"})},ga=(t,e)=>{const{currentSessionId:s,endAgentResponse:n}=e();t.sessionId===s&&n()},ma=(t,e,s)=>{const{currentSessionId:n,endAgentResponse:r}=e();t.sessionId===n&&(s({agentPhase:"error",error:t.error||"An error occurred"}),r())},pa=(t,e,s)=>{const{currentSessionId:n}=e();t.sessionId===n&&(t.status==="idle"?s({isStreaming:!1,agentPhase:"idle"}):t.status==="running"?s({agentPhase:"running"}):t.status==="error"&&s({agentPhase:"error"}))},xa=(t,e,s)=>{const{currentSessionId:n,endAgentResponse:r}=e();t.sessionId===n&&(s(a=>({isStreaming:!1,agentPhase:"idle",messages:a.messages.map(o=>{var i;return!((i=o.agentContent)!=null&&i.subagent)||o.agentContent.subagent.status!=="running"?o:{...o,agentContent:{...o.agentContent,subagent:{...o.agentContent.subagent,status:"failed"}}}})})),r())},ls=(t,e,s)=>{t.sessionId===e().currentSessionId&&s({pendingSteeringCount:typeof t.queued=="number"?Math.max(0,t.queued):1})},ba=(t,e,s)=>{t.sessionId===e().currentSessionId&&s({pendingSteeringCount:typeof t.queued=="number"?Math.max(0,t.queued):0,recoveredSteeringCount:typeof t.recovered=="number"?Math.max(0,t.recovered):e().recoveredSteeringCount})},ya=(t,e,s)=>{t.sessionId===e().currentSessionId&&s({agentPhase:"running",recoveredSteeringCount:typeof t.recovered=="number"?Math.max(0,t.recovered):e().recoveredSteeringCount})},it={"message.created":qr,"message.delta":Gr,"message.complete":Wr,"thinking.delta":Hr,"thinking.completed":Qr,"tool.start":Jr,"tool.result":Kr,"token.usage":Yr,"task.updated":Xr,"subagent.start":ea,"subagent.update":ta,"subagent.delta":sa,"subagent.thinking.delta":na,"subagent.tool.start":aa,"subagent.tool.result":oa,"subagent.complete":ra,"permission.asked":ia,"permission.timeout":la,"turn.started":da,"compaction.started":ca,"compaction.completed":ua,"model.fallback":fa,"question.required":ha,"session.completed":ga,"session.error":ma,"session.status":pa,"run.cancelled":xa,"steering.queued":ls,"follow_up.queued":ls,"follow_up.started":ya,"steering.applied":ba},va=new Set(["message.delta","thinking.delta","subagent.delta","subagent.thinking.delta"]),ka=new Set(["message.complete","thinking.completed","session.completed","session.error","run.cancelled"]),We=(t,e,s)=>{var n,r,a;return s?((n=t.find(o=>{var i,d;return((d=(i=o.agentContent)==null?void 0:i.subagent)==null?void 0:d.sessionId)===s}))==null?void 0:n.id)||((r=t.find(o=>{var i,d;return((d=(i=o.agentContent)==null?void 0:i.subagent)==null?void 0:d.status)==="running"}))==null?void 0:r.id):e||((a=[...t].reverse().find(o=>{var i;return(i=o.agentContent)==null?void 0:i.subagent}))==null?void 0:a.id)},ds=(t,e)=>s=>{if(va.has(s.type)||console.log("[SSE Event]",s.type,s.properties),ka.has(s.type)){ve.drainAll();const r=it[s.type];r&&r(s.properties,t,e);return}if(s.type==="message.delta"){const r=s.properties,{currentSessionId:a,currentAssistantMessageId:o,hasToolCalls:i}=t();if(r.sessionId!==a)return;const d=r.messageId||o,c=r.delta;if(!o){const g=it["message.delta"];g&&g(r,t,e);return}const u=i?"after":"before",f=`content:${d}:${u}`;ve.append(f,c,g=>{const{appendDelta:h}=t();d&&h(d,g,u)});return}if(s.type==="thinking.delta"){const r=s.properties,{currentSessionId:a,currentAssistantMessageId:o}=t();if(r.sessionId!==a||!o)return;const i=r.delta,d=o,c=`thinking:${d}`;ve.append(c,i,u=>{const{appendThinking:f}=t();d&&f(d,u)});return}if(s.type==="subagent.delta"){const r=s.properties,{currentSessionId:a}=t();if(r.sessionId!==a)return;const o=r.delta;if(!o)return;const i=r.subagentSessionId||"",d=`subagent:${i}`,{currentAssistantMessageId:c,messages:u}=t(),f=We(u,c,i);ve.append(d,o,g=>{const{currentAssistantMessageId:h,messages:m}=t(),b=f||We(m,h,i);b&&e(y=>({messages:y.messages.map(v=>{var I;return v.id!==b||!((I=v.agentContent)!=null&&I.subagent)?v:{...v,agentContent:{...v.agentContent,subagent:{...v.agentContent.subagent,sessionId:v.agentContent.subagent.sessionId||i,output:(v.agentContent.subagent.output||"")+g}}}})}))});return}if(s.type==="subagent.thinking.delta"){const r=s.properties,{currentSessionId:a}=t();if(r.sessionId!==a)return;const o=r.delta;if(!o)return;const i=r.subagentSessionId||"",d=`subagent-thinking:${i}`,{currentAssistantMessageId:c,messages:u}=t(),f=We(u,c,i);ve.append(d,o,g=>{const{currentAssistantMessageId:h,messages:m}=t(),b=f||We(m,h,i);b&&e(y=>({messages:y.messages.map(v=>{var I;return v.id!==b||!((I=v.agentContent)!=null&&I.subagent)?v:{...v,agentContent:{...v.agentContent,subagent:{...v.agentContent.subagent,sessionId:v.agentContent.subagent.sessionId||i,thinking:(v.agentContent.subagent.thinking||"")+g}}}})}))});return}const n=it[s.type];n&&n(s.properties,t,e)},wa=(t,e)=>({isStreaming:!1,agentPhase:"idle",currentRunId:null,pendingSteeringCount:0,recoveredSteeringCount:0,eventUnsubscribe:null,currentAssistantMessageId:null,hasToolCalls:!1,setStreaming:s=>t({isStreaming:s}),setAgentPhase:s=>t({agentPhase:s}),setRunId:s=>t({currentRunId:s}),setCurrentAssistantMessageId:s=>t({currentAssistantMessageId:s}),setHasToolCalls:s=>t({hasToolCalls:s}),startAgentResponse:s=>{t({currentAssistantMessageId:s,hasToolCalls:!1,isStreaming:!0,agentPhase:"running"})},endAgentResponse:()=>{ve.drainAll(),t({currentAssistantMessageId:null,hasToolCalls:!1,isStreaming:!1,agentPhase:"idle",currentRunId:null,pendingSteeringCount:0})},subscribeToEvents:s=>{const{eventUnsubscribe:n}=e();n&&n(),ve.reset();const r=ds(e,t),a=le.subscribeEvents(s,r);t({eventUnsubscribe:a})},unsubscribeFromEvents:()=>{const{eventUnsubscribe:s}=e();s&&(ve.drainAll(),s(),t({eventUnsubscribe:null}))},handleEvent:s=>{ds(e,t)(s)}}),_a=t=>({tokenUsage:kt,updateTokenUsage:e=>t(s=>({tokenUsage:{...s.tokenUsage,...e}})),setMaxContextTokens:(e,s=!1)=>t(n=>({tokenUsage:{...n.tokenUsage,maxContextTokens:e,isDefaultMaxTokens:s}}))}),_e=Et()((...t)=>({...Zr(...t),...ar(...t),...wa(...t),..._a(...t)})),Rt=p.forwardRef(({className:t,children:e,...s},n)=>l.jsxs(ps,{ref:n,className:B("relative overflow-hidden",t),...s,children:[l.jsx(Ks,{className:"h-full w-full rounded-[inherit] [&>div]:!block !overflow-auto",children:e}),l.jsx(Bs,{}),l.jsx(Ys,{})]}));Rt.displayName=ps.displayName;const Bs=p.forwardRef(({className:t,orientation:e="vertical",...s},n)=>l.jsx(xs,{ref:n,orientation:e,className:B("flex touch-none select-none transition-colors",e==="vertical"&&"h-full w-2.5 border-l border-l-transparent p-[1px]",e==="horizontal"&&"h-2.5 flex-col border-t border-t-transparent p-[1px]",t),...s,children:l.jsx(Xs,{className:"relative flex-1 rounded-full bg-border"})}));Bs.displayName=xs.displayName;function Ca({className:t}){const{toggleSettings:e,toggleSidebar:s,isSidebarOpen:n,isTerminalOpen:r,toggleTerminal:a,toggleMcp:o,toggleSkills:i}=jt(),{sessions:d,currentSessionId:c,selectSession:u,startTemporarySession:f,deleteSession:g,loadSessions:h}=_e(),[m,b]=p.useState(null),[y,v]=p.useState(""),[I,q]=p.useState(null),$=(()=>{const S=new Date;S.setHours(0,0,0,0);const Z=new Date(S);Z.setDate(Z.getDate()-1);const z=[],K=new Map;for(const U of d)U&&!K.has(U.sessionId)&&K.set(U.sessionId,U);const se=Array.from(K.values()),ee=U=>{const pe=(U==null?void 0:U.lastMessageTime)||(U==null?void 0:U.firstMessageTime)||0;return new Date(pe)},L=(U,pe)=>ee(pe).getTime()-ee(U).getTime(),re=se.filter(U=>ee(U)>=S).sort(L),Ce=se.filter(U=>{const pe=ee(U);return pe>=Z&&pe<S}).sort(L),Y=se.filter(U=>ee(U)<Z).sort(L);return re.length>0&&z.push({label:"TODAY",sessions:re}),Ce.length>0&&z.push({label:"YESTERDAY",sessions:Ce}),Y.length>0&&z.push({label:"OLDER",sessions:Y}),z})(),D=S=>{if(S.title)return S.title;const Z=S.firstMessageTime||S.lastMessageTime;if(Z){const z=new Date(Z);if(!Number.isNaN(z.getTime())){const K=String(z.getFullYear()).slice(-2),se=String(z.getMonth()+1).padStart(2,"0"),ee=String(z.getDate()).padStart(2,"0"),L=String(z.getHours()).padStart(2,"0"),re=String(z.getMinutes()).padStart(2,"0");return`Session ${K}-${se}-${ee} ${L}:${re}`}}return`Session ${S.sessionId.slice(0,6)}`},X=()=>{f()},J=async(S,Z)=>{S.stopPropagation(),await g(Z)},V=(S,Z)=>{S.stopPropagation(),b(Z.sessionId),v(D(Z))},G=async S=>{if(!y.trim()){b(null);return}try{await fetch(`/sessions/${S}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({title:y.trim()})}),b(null),await h()}catch(Z){console.error("Failed to rename session:",Z)}},ne=()=>{b(null),v("")};return n?l.jsxs("div",{className:B("h-screen flex flex-col bg-[#F9FAFB] dark:bg-[#09090b] w-[260px]",t),children:[l.jsxs("div",{className:"p-6 flex flex-col gap-8",children:[l.jsxs("div",{className:"flex items-center justify-between",children:[l.jsxs("div",{className:"flex items-center gap-3",children:[l.jsx("div",{className:"h-7 w-7 rounded-lg bg-[#16A34A] dark:bg-[#22C55E] flex items-center justify-center",children:l.jsx("div",{className:"w-2 h-2 bg-black rounded-full"})}),l.jsx("span",{className:"font-semibold text-base text-[#111827] dark:text-[#E5E5E5]",children:"Blade"})]}),l.jsx("button",{onClick:s,className:"h-6 w-6 rounded bg-[#F3F4F6] text-[#6B7280] hover:text-[#111827] dark:bg-[#18181b] dark:text-[#71717a] dark:hover:text-[#E5E5E5] flex items-center justify-center transition-colors",children:l.jsx(on,{className:"h-3 w-3"})})]}),l.jsxs("div",{className:"flex flex-col gap-2",children:[l.jsxs("button",{onClick:X,className:"w-full h-10 rounded-md bg-[#16A34A] hover:bg-[#15803D] dark:bg-[#22C55E] dark:hover:bg-[#16A34A] text-white font-semibold text-sm font-mono flex items-center gap-3 px-3 transition-colors",children:[l.jsx(Bt,{className:"h-4 w-4 stroke-[3]"}),"New Chat"]}),l.jsxs("button",{onClick:a,className:B("w-full h-10 rounded-md font-medium text-sm font-mono flex items-center gap-3 px-3 transition-colors",r?"bg-[#F3F4F6] text-[#111827] dark:bg-[#18181b] dark:text-[#E5E5E5]":"bg-[#F3F4F6] text-[#16A34A] hover:bg-[#E5E7EB] dark:bg-[#18181b] dark:text-[#22C55E] dark:hover:bg-[#27272a]"),children:[l.jsx(Pt,{className:B("h-4 w-4",r?"text-[#16A34A] dark:text-[#22C55E]":"")}),"Terminal"]})]})]}),l.jsx(Rt,{className:"flex-1 px-0",children:l.jsxs("div",{className:"flex flex-col",children:[$.map((S,Z)=>l.jsxs("div",{children:[l.jsx("div",{className:B("px-3 pb-2 text-[11px] text-[#6B7280] dark:text-[#52525b] font-mono",Z===0?"pt-3":"pt-4"),children:S.label}),S.sessions.map(z=>{const K=z.sessionId===c,se=m===z.sessionId,ee=I===z.sessionId;return se?l.jsxs("div",{className:"w-full h-[34px] flex items-center gap-2 px-3 bg-[#F3F4F6] dark:bg-[#27272a]",children:[l.jsx("input",{type:"text",value:y,onChange:L=>v(L.target.value),onKeyDown:L=>{L.key==="Enter"&&G(z.sessionId),L.key==="Escape"&&ne()},autoFocus:!0,className:"flex-1 bg-white dark:bg-[#18181b] text-[13px] text-[#111827] dark:text-[#E5E5E5] font-mono px-2 py-1 rounded outline-none focus:ring-1 focus:ring-[#22C55E]"}),l.jsx("button",{onClick:()=>G(z.sessionId),className:"p-1 text-[#22C55E] hover:bg-[#E5E7EB] dark:hover:bg-[#18181b] rounded",children:l.jsx(ln,{className:"h-3 w-3"})}),l.jsx("button",{onClick:ne,className:"p-1 text-[#9CA3AF] dark:text-[#71717a] hover:bg-[#E5E7EB] dark:hover:bg-[#18181b] rounded",children:l.jsx(dn,{className:"h-3 w-3"})})]},z.sessionId):l.jsxs("div",{onMouseEnter:()=>q(z.sessionId),onMouseLeave:()=>q(null),className:B("w-full h-[34px] flex items-center gap-2 px-3 transition-colors group cursor-pointer",K?"bg-[#E5E7EB] dark:bg-[#27272a]":"hover:bg-[#F3F4F6] dark:hover:bg-[#18181b]"),onClick:()=>u(z.sessionId),children:[l.jsx("div",{className:B("w-1.5 h-1.5 rounded-full shrink-0",K?"bg-[#16A34A] dark:bg-[#22C55E] shadow-[0_0_4px_rgba(34,197,94,0.4)]":"border border-[#D1D5DB] dark:border-[#52525b]")}),l.jsx("span",{className:B("text-[13px] font-mono truncate text-left flex-1",K?"text-[#111827] dark:text-[#E5E5E5]":"text-[#6B7280] dark:text-[#a1a1aa]"),children:D(z)}),ee&&l.jsxs("div",{className:"flex items-center gap-1",children:[l.jsx("button",{onClick:L=>V(L,z),className:"p-1 text-[#9CA3AF] hover:text-[#111827] hover:bg-[#E5E7EB] dark:text-[#71717a] dark:hover:text-[#E5E5E5] dark:hover:bg-[#27272a] rounded transition-colors",children:l.jsx(cn,{className:"h-3 w-3"})}),l.jsx("button",{onClick:L=>J(L,z.sessionId),className:"p-1 text-[#9CA3AF] hover:text-red-500 hover:bg-[#F3F4F6] dark:text-[#71717a] dark:hover:text-red-400 dark:hover:bg-[#27272a] rounded transition-colors",children:l.jsx(un,{className:"h-3 w-3"})})]})]},z.sessionId)})]},S.label)),d.length===0&&l.jsx("div",{className:"px-3 py-8 text-center text-[13px] text-[#6B7280] dark:text-[#52525b] font-mono",children:"No chat history"})]})}),l.jsxs("div",{className:"p-6 flex flex-col gap-4",children:[l.jsxs("div",{className:"border-t border-[#E5E7EB] dark:border-[#1f2937] pt-4 flex flex-col gap-2",children:[l.jsxs("button",{onClick:i,className:"w-full h-10 rounded-md text-[#6B7280] hover:text-[#111827] hover:bg-[#F3F4F6] dark:text-[#a1a1aa] dark:hover:text-[#E5E5E5] dark:hover:bg-[#18181b] font-normal text-sm font-mono flex items-center gap-3 px-3 transition-colors",children:[l.jsx($t,{className:"h-4 w-4 text-[#9CA3AF] dark:text-[#71717a]"}),"Skills"]}),l.jsxs("button",{onClick:o,className:"w-full h-10 rounded-md text-[#6B7280] hover:text-[#111827] hover:bg-[#F3F4F6] dark:text-[#a1a1aa] dark:hover:text-[#E5E5E5] dark:hover:bg-[#18181b] font-normal text-sm font-mono flex items-center gap-3 px-3 transition-colors",children:[l.jsx(Dt,{className:"h-4 w-4 text-[#9CA3AF] dark:text-[#71717a]"}),"MCP"]}),l.jsxs("button",{onClick:e,className:"w-full h-10 rounded-md text-[#6B7280] hover:text-[#111827] hover:bg-[#F3F4F6] dark:text-[#a1a1aa] dark:hover:text-[#E5E5E5] dark:hover:bg-[#18181b] font-normal text-sm font-mono flex items-center gap-3 px-3 transition-colors",children:[l.jsx(Zt,{className:"h-4 w-4 text-[#9CA3AF] dark:text-[#71717a]"}),"Settings"]})]}),l.jsxs("div",{className:"flex items-center gap-3 pt-4 border-t border-[#E5E7EB] dark:border-[#27272a]",children:[l.jsx("div",{className:"h-7 w-7 rounded-lg bg-[#E5E7EB] dark:bg-[#27272a] flex items-center justify-center",children:l.jsx("div",{className:"w-2 h-2 bg-[#111827] dark:bg-[#E5E5E5] rounded-full"})}),l.jsxs("div",{className:"flex flex-col gap-0.5",children:[l.jsx("span",{className:"text-[13px] text-[#111827] dark:text-[#E5E5E5] font-mono",children:"User"}),l.jsx("span",{className:"text-[11px] text-[#16A34A] dark:text-[#22C55E] font-mono",children:"Connected"})]})]})]})]}):l.jsxs("div",{className:B("h-screen flex flex-col bg-[#F9FAFB] dark:bg-[#09090b] items-center py-6 gap-2 w-[64px]",t),children:[l.jsx("div",{className:"h-7 w-7 rounded-lg bg-[#16A34A] dark:bg-[#22C55E] flex items-center justify-center cursor-pointer",onClick:s,children:l.jsx("div",{className:"w-2 h-2 bg-black rounded-full"})}),l.jsx("button",{onClick:X,className:"mt-6 h-10 w-10 rounded-md bg-[#16A34A] hover:bg-[#15803D] dark:bg-[#22C55E] dark:hover:bg-[#16A34A] text-white flex items-center justify-center transition-colors",children:l.jsx(Bt,{className:"h-4 w-4 stroke-[3]"})}),l.jsx("button",{onClick:a,className:B("h-10 w-10 rounded-md flex items-center justify-center transition-colors",r?"bg-[#F3F4F6] text-[#111827] dark:bg-[#18181b] dark:text-[#E5E5E5]":"bg-[#F3F4F6] text-[#16A34A] hover:bg-[#E5E7EB] dark:bg-[#18181b] dark:text-[#22C55E] dark:hover:bg-[#27272a]"),children:l.jsx(Pt,{className:B("h-4 w-4",r?"text-[#16A34A] dark:text-[#22C55E]":"")})}),l.jsx("div",{className:"flex-1"}),l.jsx("div",{className:"w-8 h-px bg-[#E5E7EB] dark:bg-[#1f2937] my-2"}),l.jsx("button",{onClick:i,className:"h-10 w-10 rounded-md text-[#9CA3AF] hover:text-[#111827] hover:bg-[#F3F4F6] dark:text-[#71717a] dark:hover:text-[#E5E5E5] dark:hover:bg-[#18181b] flex items-center justify-center transition-colors",children:l.jsx($t,{className:"h-4 w-4"})}),l.jsx("button",{onClick:o,className:"h-10 w-10 rounded-md text-[#9CA3AF] hover:text-[#111827] hover:bg-[#F3F4F6] dark:text-[#71717a] dark:hover:text-[#E5E5E5] dark:hover:bg-[#18181b] flex items-center justify-center transition-colors",children:l.jsx(Dt,{className:"h-4 w-4"})}),l.jsx("button",{onClick:e,className:"h-10 w-10 rounded-md text-[#9CA3AF] hover:text-[#111827] hover:bg-[#F3F4F6] dark:text-[#71717a] dark:hover:text-[#E5E5E5] dark:hover:bg-[#18181b] flex items-center justify-center transition-colors",children:l.jsx(Zt,{className:"h-4 w-4"})}),l.jsx("div",{className:"mt-4",children:l.jsx("div",{className:"h-7 w-7 rounded-lg bg-[#E5E7EB] dark:bg-[#27272a] flex items-center justify-center",children:l.jsx("div",{className:"w-2 h-2 bg-[#111827] dark:bg-[#E5E5E5] rounded-full"})})})]})}const Sa=p.lazy(()=>Oe(()=>import("./SettingsModal-CDRcorCS.js"),[]).then(t=>({default:t.SettingsModal}))),Ea=p.lazy(()=>Oe(()=>import("./FilePreview-evNzCuVx.js"),[]).then(t=>({default:t.FilePreview}))),ja=p.lazy(()=>Oe(()=>import("./TerminalPanel-Cs16_6ew.js"),__vite__mapDeps([0])).then(t=>({default:t.TerminalPanel}))),Ia=p.lazy(()=>Oe(()=>import("./McpModal-BT9OivhK.js"),[]).then(t=>({default:t.McpModal}))),Na=p.lazy(()=>Oe(()=>import("./SkillsModal-DCPaqoOe.js"),[]).then(t=>({default:t.SkillsModal}))),Ta=t=>{if(t.startsWith("/Users/")){const e=t.split("/");if(e.length>=3)return"~/"+e.slice(3).join("/")}return t};function Aa({children:t}){const{isSidebarOpen:e,isFilePreviewOpen:s,isSettingsOpen:n,isMcpOpen:r,isSkillsOpen:a,isTerminalOpen:o,toggleFilePreview:i}=jt(),{currentSessionId:d,sessions:c}=_e(),[u,f]=p.useState(null),g=p.useMemo(()=>{if(!d)return"No session";const h=c.find(m=>m.sessionId===d);return h!=null&&h.projectPath?Ta(h.projectPath):"New session"},[d,c]);return p.useEffect(()=>{(async()=>{try{const m=await le.getGitInfo();f(m.branch)}catch{f(null)}})()},[d]),l.jsxs("div",{className:"flex h-screen overflow-hidden",children:[l.jsx("div",{className:B("transition-all duration-300 ease-in-out",e?"w-[260px]":"w-[64px]","overflow-hidden"),children:l.jsx("div",{className:B("transition-all duration-300 ease-in-out",e?"w-[260px]":"w-[64px]"),children:l.jsx(Ca,{})})}),l.jsxs("div",{className:"flex-1 flex flex-col min-w-0",children:[l.jsxs("header",{className:"h-16 border-b border-[#E5E7EB] dark:border-zinc-800 flex items-center px-8 gap-4 bg-white dark:bg-[#09090b] z-10",children:[l.jsxs("div",{className:"flex items-center gap-3",children:[l.jsx("span",{className:"font-normal text-sm text-[#6B7280] dark:text-zinc-500 font-mono truncate max-w-md",title:g,children:g}),u&&l.jsxs("span",{className:"flex items-center gap-1 text-xs text-[#6B7280] dark:text-zinc-300 bg-[#F3F4F6] dark:bg-zinc-800/50 px-2 py-0.5 rounded",children:[l.jsx(fn,{className:"h-3 w-3"}),u]})]}),l.jsx("div",{className:"ml-auto",children:l.jsx(Ue,{variant:"ghost",size:"icon",onClick:i,className:B(s&&"bg-accent","text-[#9CA3AF] hover:text-[#111827] dark:text-zinc-500 dark:hover:text-zinc-300"),children:l.jsx(hn,{className:"h-4 w-4"})})})]}),l.jsxs("main",{className:"flex-1 overflow-hidden relative flex",children:[l.jsx("div",{className:"flex-1 flex flex-col min-w-0 relative",children:t}),s&&l.jsx(p.Suspense,{fallback:null,children:l.jsx(Ea,{})})]})]}),n&&l.jsx(p.Suspense,{fallback:null,children:l.jsx(Sa,{})}),r&&l.jsx(p.Suspense,{fallback:null,children:l.jsx(Ia,{})}),a&&l.jsx(p.Suspense,{fallback:null,children:l.jsx(Na,{})}),o&&l.jsx(p.Suspense,{fallback:null,children:l.jsx(ja,{})})]})}const cs=tn,us=sn,Ct=p.forwardRef(({className:t,align:e="center",sideOffset:s=4,...n},r)=>l.jsx(en,{children:l.jsx(bs,{ref:r,align:e,sideOffset:s,className:B("z-50 w-72 rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-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 origin-[--radix-popover-content-transform-origin]",t),...n})}));Ct.displayName=bs.displayName;const Ps=p.forwardRef(({className:t,...e},s)=>l.jsx("textarea",{className:B("flex min-h-[80px] w-full rounded-md border border-input bg-background px-3 py-2 text-base ring-offset-background placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",t),ref:s,...e}));Ps.displayName="Textarea";const Ma=(t,e)=>{const s=[...t.matchAll(/(?:^|\s)(@(?:"[^"]*"|(?:[^\\ ]|\\ )*))/g)];for(const n of s){const r=n[1],a=n.index+(n[0].length-r.length),o=a+r.length;if(e>=a&&e<=o){let i=r.slice(1),d=!1;return i.startsWith('"')&&(d=!0,i=i.slice(1),i.endsWith('"')&&(i=i.slice(0,-1))),{hasQuery:!0,query:i,startIndex:a,endIndex:o,quoted:d}}}return{hasQuery:!1,query:"",startIndex:-1,endIndex:-1,quoted:!1}},Fa=(t,e,s={})=>{const{debounceDelay:n=200,maxSuggestions:r=15}=s,[a,o]=p.useState([]),[i,d]=p.useState(0),[c,u]=p.useState(!1),f=p.useMemo(()=>e===void 0?{hasQuery:!1,query:"",startIndex:-1,endIndex:-1,quoted:!1}:Ma(t,e),[t,e]);p.useEffect(()=>{if(!f.hasQuery){o([]),u(!1);return}let m=!1;u(!0);const y=setTimeout(async()=>{try{const v=await fetch(`/suggestions/files?q=${encodeURIComponent(f.query)}&limit=${r}`);if(!v.ok)throw new Error("Failed to fetch suggestions");const I=await v.json();m||o(I)}catch(v){console.error("Failed to fetch file suggestions:",v),m||o([])}finally{m||u(!1)}},n);return()=>{m=!0,clearTimeout(y)}},[f.hasQuery,f.query,n,r]),p.useEffect(()=>{d(0)},[a]);const g=p.useCallback(()=>{d(m=>(m+1)%Math.max(a.length,1))},[a.length]),h=p.useCallback(()=>{d(m=>(m-1+a.length)%Math.max(a.length,1))},[a.length]);return{...f,suggestions:a,selectedIndex:i,loading:c,setSelectedIndex:d,selectNext:g,selectPrevious:h}},Ra=(t,e=!1)=>t.includes(" ")||e?`@"${t}"`:`@${t}`,Oa=(t,e,s)=>{if(!e.hasQuery)return{newInput:t,newCursorPos:t.length};const n=Ra(s,e.quoted),r=t.slice(0,e.startIndex),a=t.slice(e.endIndex),o=r+n+" "+a,i=e.startIndex+n.length+1;return{newInput:o,newCursorPos:i}};function za(){const[t,e]=p.useState([]),[s,n]=p.useState(-1),r=p.useRef(""),a=p.useCallback(c=>{c.trim()&&(e(u=>u[u.length-1]===c?u:[...u,c]),n(-1),r.current="")},[]),o=p.useCallback(c=>{if(t.length===0)return null;s===-1&&(r.current=c);const u=s===-1?t.length-1:Math.max(0,s-1);return n(u),t[u]??null},[t,s]),i=p.useCallback(()=>{if(s===-1)return null;const c=s+1;return c>=t.length?(n(-1),r.current):(n(c),t[c]??null)},[t,s]),d=p.useCallback(()=>{n(-1),r.current=""},[]);return{addToHistory:a,getPrevious:o,getNext:i,reset:d,historyIndex:s}}const Ba=(t,e)=>{if(!t.startsWith("/"))return{hasQuery:!1,query:"",startIndex:-1,endIndex:-1};const s=t.indexOf(" "),n=s===-1?t.length:s;return e<=n?{hasQuery:!0,query:t.slice(1,e),startIndex:0,endIndex:e}:{hasQuery:!1,query:"",startIndex:-1,endIndex:-1}},Pa=(t,e,s={})=>{const{debounceDelay:n=150}=s,[r,a]=p.useState([]),[o,i]=p.useState(0),[d,c]=p.useState(!1),u=p.useMemo(()=>e===void 0?{hasQuery:!1,query:"",startIndex:-1,endIndex:-1}:Ba(t,e),[t,e]);p.useEffect(()=>{if(!u.hasQuery){a([]),c(!1);return}let h=!1;c(!0);const b=setTimeout(async()=>{try{const y=await fetch(`/suggestions/commands?q=${encodeURIComponent(u.query)}`);if(!y.ok)throw new Error("Failed to fetch suggestions");const v=await y.json();h||a(v)}catch(y){console.error("Failed to fetch command suggestions:",y),h||a([])}finally{h||c(!1)}},n);return()=>{h=!0,clearTimeout(b)}},[u.hasQuery,u.query,n]),p.useEffect(()=>{i(0)},[r]);const f=p.useCallback(()=>{i(h=>(h+1)%Math.max(r.length,1))},[r.length]),g=p.useCallback(()=>{i(h=>(h-1+r.length)%Math.max(r.length,1))},[r.length]);return{...u,suggestions:r,selectedIndex:o,loading:d,setSelectedIndex:i,selectNext:f,selectPrevious:g}},$a=(t,e,s)=>{if(!e.hasQuery)return{newInput:t,newCursorPos:t.length};const n=t.slice(e.endIndex),r=s.command+" "+n.trimStart(),a=s.command.length+1;return{newInput:r,newCursorPos:a}},Da=t=>typeof t=="object"&&"command"in t,fs=({type:t,suggestions:e,selectedIndex:s,loading:n,onSelect:r,onHover:a,visible:o})=>{const i=p.useRef(null),d=p.useRef(null);if(p.useEffect(()=>{if(d.current&&i.current){const u=i.current,f=d.current,g=u.getBoundingClientRect(),h=f.getBoundingClientRect();h.bottom>g.bottom?u.scrollTop+=h.bottom-g.bottom+4:h.top<g.top&&(u.scrollTop-=g.top-h.top+4)}},[s]),!o||e.length===0&&!n)return null;const c=t==="command"?gn:ct;return l.jsx("div",{className:"absolute bottom-full left-0 right-0 mb-2 z-50",children:l.jsxs("div",{className:"mx-4 bg-white dark:bg-zinc-900 border border-[#E5E7EB] dark:border-zinc-700 rounded-lg shadow-xl overflow-hidden",children:[l.jsxs("div",{className:"flex items-center gap-2 px-3 py-2 border-b border-[#E5E7EB] dark:border-zinc-800 text-xs text-[#6B7280] dark:text-zinc-400",children:[l.jsx(c,{className:"h-3.5 w-3.5"}),l.jsx("span",{children:t==="command"?"Commands":"Files"}),n&&l.jsx(Qe,{className:"h-3 w-3 animate-spin ml-auto"})]}),l.jsx("div",{ref:i,className:"max-h-64 overflow-y-auto py-1",children:e.length===0&&n?l.jsx("div",{className:"px-3 py-4 text-center text-[#6B7280] dark:text-zinc-500 text-sm",children:"Loading..."}):e.length===0?l.jsx("div",{className:"px-3 py-4 text-center text-[#6B7280] dark:text-zinc-500 text-sm",children:"No matches found"}):e.map((u,f)=>{const g=f===s,h=Da(u);return l.jsx("button",{ref:g?d:null,className:B("w-full text-left px-3 py-2 flex items-start gap-3 transition-colors",g?"bg-[#E5E7EB] text-[#111827] dark:bg-zinc-800 dark:text-zinc-100":"text-[#6B7280] hover:bg-[#F3F4F6] hover:text-[#111827] dark:text-zinc-400 dark:hover:bg-zinc-800/50 dark:hover:text-zinc-300"),onClick:()=>r(f),onMouseEnter:()=>a(f),children:h?l.jsx(l.Fragment,{children:l.jsxs("div",{className:"flex-1 min-w-0",children:[l.jsxs("div",{className:"flex items-center gap-2",children:[l.jsx("span",{className:"font-mono text-sm text-blue-600 dark:text-blue-400",children:u.command}),u.argumentHint&&l.jsx("span",{className:"text-xs text-[#9CA3AF] dark:text-zinc-500 font-mono",children:u.argumentHint})]}),l.jsx("p",{className:"text-xs text-[#9CA3AF] dark:text-zinc-500 mt-0.5 truncate",children:u.description})]})}):l.jsxs("div",{className:"flex items-center gap-2 min-w-0",children:[l.jsx(ct,{className:"h-4 w-4 flex-shrink-0 text-[#9CA3AF] dark:text-zinc-500"}),l.jsx("span",{className:"font-mono text-sm truncate",children:u})]})},h?u.command:u)})}),l.jsxs("div",{className:"px-3 py-1.5 border-t border-[#E5E7EB] dark:border-zinc-800 text-xs text-[#9CA3AF] dark:text-zinc-500 flex items-center gap-4",children:[l.jsxs("span",{children:[l.jsx("kbd",{className:"px-1.5 py-0.5 bg-[#E5E7EB] dark:bg-zinc-800 rounded text-[#6B7280] dark:text-zinc-400",children:"↑↓"})," ","Navigate"]}),l.jsxs("span",{children:[l.jsx("kbd",{className:"px-1.5 py-0.5 bg-[#E5E7EB] dark:bg-zinc-800 rounded text-[#6B7280] dark:text-zinc-400",children:"Tab"})," ","Select"]}),l.jsxs("span",{children:[l.jsx("kbd",{className:"px-1.5 py-0.5 bg-[#E5E7EB] dark:bg-zinc-800 rounded text-[#6B7280] dark:text-zinc-400",children:"Esc"})," ","Close"]})]})]})})},hs=[{value:He.DEFAULT,label:"Default"},{value:He.AUTO_EDIT,label:"Auto Edit"},{value:He.PLAN,label:"Plan"}];function Za({onSend:t,onAbort:e,disabled:s,isStreaming:n,pendingSteeringCount:r=0,recoveredSteeringCount:a=0}){var zt;const[o,i]=p.useState(""),[d,c]=p.useState([]),[u,f]=p.useState(void 0),[g,h]=p.useState(!1),[m,b]=p.useState(!1),y=p.useRef(null),v=p.useRef(null),{currentModelId:I,configuredModels:q,loadModels:Q,setCurrentModel:$,currentMode:D,setMode:X}=Fs(),{setMaxContextTokens:J}=_e(),V=Pa(o,u),G=Fa(o,u),ne=za(),S=V.hasQuery&&V.suggestions.length>0,Z=G.hasQuery&&G.suggestions.length>0,z=S||Z;p.useEffect(()=>{Q()},[Q]),p.useEffect(()=>{if(q.length===0)return;const k=q.find(R=>R.id===I);if(k){const R=!!k.maxContextTokens,A=k.maxContextTokens||128e3;J(A,!R)}},[I,q,J]);const K=p.useCallback(()=>{!o.trim()&&d.length===0||s||(o.trim()&&ne.addToHistory(o),t({content:o,attachments:d}),i(""),c([]),f(void 0))},[d,o,s,t,ne]),se=p.useCallback(k=>{c(R=>R.filter(A=>A.id!==k))},[]),ee=p.useCallback(k=>new Promise((R,A)=>{const H=new FileReader;H.onload=()=>{if(typeof H.result!="string"){A(new Error("Failed to read image"));return}R({id:typeof crypto<"u"&&typeof crypto.randomUUID=="function"?crypto.randomUUID():`${Date.now()}-${Math.random().toString(36).slice(2,8)}`,name:k.name,mimeType:k.type,dataUrl:H.result})},H.onerror=()=>A(H.error??new Error("Failed to read image")),H.readAsDataURL(k)}),[]),L=p.useCallback(async k=>{if(k.length===0)return;const R=await Promise.all(k.map(A=>ee(A)));c(A=>[...A,...R])},[ee]),re=p.useCallback(async k=>{const R=Array.from(k.target.files??[]).filter(A=>A.type.startsWith("image/"));await L(R),k.target.value=""},[L]),Ce=p.useCallback(async k=>{const R=Array.from(k.clipboardData.items).filter(A=>A.type.startsWith("image/")).map(A=>A.getAsFile()).filter(A=>A!==null);R.length!==0&&(k.preventDefault(),await L(R))},[L]),Y=p.useCallback(k=>{const R=V.suggestions[k];if(!R)return;const{newInput:A,newCursorPos:H}=$a(o,V,R);i(A),f(H),requestAnimationFrame(()=>{y.current&&(y.current.focus(),y.current.setSelectionRange(H,H))})},[o,V]),U=p.useCallback(k=>{const R=G.suggestions[k];if(!R)return;const{newInput:A,newCursorPos:H}=Oa(o,G,R);i(A),f(H),requestAnimationFrame(()=>{y.current&&(y.current.focus(),y.current.setSelectionRange(H,H))})},[o,G]),pe=p.useCallback(k=>{if(S){if(k.key==="ArrowDown"){k.preventDefault(),V.selectNext();return}if(k.key==="ArrowUp"){k.preventDefault(),V.selectPrevious();return}if(k.key==="Tab"||k.key==="Enter"&&!k.shiftKey){k.preventDefault(),Y(V.selectedIndex);return}if(k.key==="Escape"){k.preventDefault(),f(void 0);return}}if(Z){if(k.key==="ArrowDown"){k.preventDefault(),G.selectNext();return}if(k.key==="ArrowUp"){k.preventDefault(),G.selectPrevious();return}if(k.key==="Tab"||k.key==="Enter"&&!k.shiftKey){k.preventDefault(),U(G.selectedIndex);return}if(k.key==="Escape"){k.preventDefault(),f(void 0);return}}if(k.key==="Enter"&&!k.shiftKey){k.preventDefault(),K();return}if(k.key==="ArrowUp"&&!k.shiftKey){const R=k.target,A=R.selectionStart===0&&R.selectionEnd===0,H=!o.includes(`
7
- `);if(A||H){const ue=ne.getPrevious(o);ue!==null&&(k.preventDefault(),i(ue),requestAnimationFrame(()=>{y.current&&y.current.setSelectionRange(ue.length,ue.length)}))}return}if(k.key==="ArrowDown"&&!k.shiftKey){const R=k.target,A=R.selectionStart===o.length&&R.selectionEnd===o.length,H=!o.includes(`
8
- `);if((A||H)&&ne.historyIndex!==-1){const ue=ne.getNext();ue!==null&&(k.preventDefault(),i(ue),requestAnimationFrame(()=>{y.current&&y.current.setSelectionRange(ue.length,ue.length)}))}}},[S,Z,V,G,Y,U,K,o,ne]),Us=p.useCallback(k=>{i(k.target.value),f(k.target.selectionStart)},[]),Ot=p.useCallback(k=>{const R=k.target;f(R.selectionStart)},[]);p.useEffect(()=>{y.current&&(y.current.style.height="inherit",y.current.style.height=`${Math.min(y.current.scrollHeight,200)}px`)},[o]);const st=q.find(k=>k.id===I),Vs=(st==null?void 0:st.model)||I||"Select Model",qs=((zt=hs.find(k=>k.value===D))==null?void 0:zt.label)||"Default",Gs=!!o.trim()||d.length>0;return l.jsx("div",{className:"py-4 border-t border-[#E5E7EB] dark:border-zinc-800 bg-white dark:bg-[#09090b]",children:l.jsxs("div",{className:"px-4 w-full md:px-6",children:[l.jsxs("div",{className:"relative border border-[#E5E7EB] dark:border-zinc-800 rounded-lg shadow-sm bg-white dark:bg-zinc-950/50 focus-within:border-[#D1D5DB] dark:focus-within:border-zinc-600 focus-within:ring-1 focus-within:ring-[#D1D5DB] dark:focus-within:ring-zinc-600 transition-all duration-200 flex flex-col min-h-[88px]",children:[l.jsx(fs,{type:"command",suggestions:V.suggestions,selectedIndex:V.selectedIndex,loading:V.loading,onSelect:Y,onHover:V.setSelectedIndex,visible:S}),l.jsx(fs,{type:"file",suggestions:G.suggestions,selectedIndex:G.selectedIndex,loading:G.loading,onSelect:U,onHover:G.setSelectedIndex,visible:Z&&!S}),l.jsx(Ps,{ref:y,value:o,onChange:Us,onKeyDown:pe,onPaste:Ce,onSelect:Ot,onClick:Ot,placeholder:n?"Add guidance to steer the active turn...":"Type @ for files, / for commands...",className:"flex-1 w-full resize-none border-0 bg-transparent py-4 px-4 focus-visible:ring-0 focus-visible:ring-offset-0 focus:outline-none text-[#111827] dark:text-zinc-300 placeholder:text-[#9CA3AF] dark:placeholder:text-zinc-600",disabled:s}),n&&l.jsxs("div",{className:"px-4 pb-2 text-[11px] font-mono text-amber-600 dark:text-amber-400",children:["Active turn is steerable",r>0?` · ${r} queued`:" · Enter sends guidance"]}),a>0&&l.jsxs("div",{className:"px-4 pb-2 text-[11px] font-mono text-cyan-600 dark:text-cyan-400",children:["Recovered ",a," queued instruction",a===1?"":"s"," after restart"]}),d.length>0&&l.jsx("div",{className:"flex flex-wrap gap-2 px-4 pb-2",children:d.map(k=>l.jsxs("div",{className:"relative rounded-md overflow-hidden border border-[#E5E7EB] dark:border-zinc-800 bg-[#F9FAFB] dark:bg-zinc-900",children:[l.jsx("img",{src:k.dataUrl,alt:k.name,className:"object-cover w-20 h-20"}),l.jsx("button",{type:"button",onClick:()=>se(k.id),className:"absolute top-1 right-1 rounded bg-black/70 px-1.5 py-0.5 text-[10px] text-white",children:"Remove"})]},k.id))}),l.jsxs("div",{className:"flex justify-between items-center p-3 mt-auto",children:[l.jsxs("div",{className:"flex gap-2 items-center",children:[l.jsx("input",{ref:v,type:"file",accept:"image/*",multiple:!0,className:"hidden",onChange:re}),l.jsx(Ue,{type:"button",variant:"ghost",size:"icon",onClick:()=>{var k;return(k=v.current)==null?void 0:k.click()},className:"h-8 w-8 text-[#9CA3AF] hover:text-[#111827] hover:bg-[#E5E7EB] dark:text-zinc-500 dark:hover:text-zinc-300 dark:hover:bg-zinc-800/50",children:l.jsx(mn,{className:"w-4 h-4"})}),l.jsxs(cs,{open:g,onOpenChange:h,children:[l.jsx(us,{asChild:!0,children:l.jsxs("button",{className:"flex items-center gap-1 text-xs text-[#6B7280] hover:text-[#111827] px-2 py-1 rounded hover:bg-[#E5E7EB] dark:text-zinc-500 dark:hover:text-zinc-200 dark:hover:bg-zinc-800/50 cursor-pointer transition-colors",children:[Vs,l.jsx(Ve,{className:"w-3 h-3"})]})}),l.jsx(Ct,{className:"w-64 p-2 bg-white dark:bg-zinc-900 border border-[#E5E7EB] dark:border-zinc-700",align:"start",children:l.jsx("div",{className:"overflow-y-auto max-h-72",children:q.length===0?l.jsx("div",{className:"text-xs text-[#6B7280] dark:text-zinc-500 px-2 py-2",children:"No models configured"}):Object.entries(q.reduce((k,R)=>{const A=R.provider||"unknown";return k[A]||(k[A]=[]),k[A].push(R),k},{})).map(([k,R])=>l.jsxs("div",{className:"mb-2",children:[l.jsx("div",{className:"text-xs text-[#6B7280] dark:text-zinc-500 px-2 py-1 capitalize",children:k.replace(/-/g," ")}),R.map(A=>l.jsx("button",{className:`w-full text-left px-2 py-1.5 text-sm rounded hover:bg-[#E5E7EB] dark:hover:bg-zinc-800 transition-colors ${A.id===I?"bg-[#E5E7EB] text-[#111827] dark:bg-zinc-800 dark:text-zinc-100":"text-[#6B7280] dark:text-zinc-400"}`,onClick:()=>{$(A.id),h(!1)},children:A.model},A.id))]},k))})})]}),l.jsxs(cs,{open:m,onOpenChange:b,children:[l.jsx(us,{asChild:!0,children:l.jsxs("button",{className:"flex items-center gap-1 text-xs text-[#6B7280] hover:text-[#111827] px-2 py-1 rounded hover:bg-[#E5E7EB] dark:text-zinc-500 dark:hover:text-zinc-200 dark:hover:bg-zinc-800/50 cursor-pointer transition-colors",children:[qs,l.jsx(Ve,{className:"w-3 h-3"})]})}),l.jsx(Ct,{className:"w-40 p-1 bg-white dark:bg-zinc-900 border border-[#E5E7EB] dark:border-zinc-700",align:"start",children:l.jsx("div",{className:"flex flex-col gap-0.5",children:hs.map(k=>l.jsx("button",{className:`w-full text-left px-2 py-1.5 text-xs rounded hover:bg-[#E5E7EB] dark:hover:bg-zinc-800 transition-colors ${D===k.value?"bg-[#E5E7EB] text-[#111827] dark:bg-zinc-800 dark:text-zinc-100":"text-[#6B7280] dark:text-zinc-400"}`,onClick:()=>{X(k.value),b(!1)},children:k.label},k.value))})})]})]}),l.jsxs("div",{className:"flex gap-2 items-center",children:[n&&l.jsx(Ue,{size:"icon",onClick:e,title:"Stop active turn",className:"w-8 h-8 text-white bg-red-500 hover:bg-red-600",children:l.jsx(pn,{className:"w-3 h-3"})}),l.jsx(Ue,{size:"icon",onClick:K,disabled:!Gs||s||z,title:n?"Steer active turn":"Send message",className:"h-8 w-8 bg-[#111827] text-white hover:bg-[#0F172A] disabled:bg-[#E5E7EB] disabled:text-[#9CA3AF] dark:bg-zinc-100 dark:text-zinc-900 dark:hover:bg-white dark:disabled:bg-zinc-800 dark:disabled:text-zinc-600",children:l.jsx(xn,{className:"w-4 h-4"})})]})]})]}),l.jsx("div",{className:"text-center text-xs text-[#6B7280] dark:text-zinc-600 mt-3 font-mono",children:"Blade can make mistakes. Please check important information."})]})})}const La=p.lazy(()=>Oe(()=>import("./MarkdownRenderer-BQoiQTDd.js"),[]).then(t=>({default:t.MarkdownRenderer})));function Ua(){return l.jsx("div",{className:"flex h-8 w-8 shrink-0 select-none items-center justify-center rounded-lg bg-[#22C55E]",children:l.jsx("span",{className:"text-sm font-bold text-black",children:"B"})})}function Va(){return l.jsx("div",{className:"flex h-8 w-8 shrink-0 select-none items-center justify-center rounded-full bg-[#E5E7EB] dark:bg-white",children:l.jsx("span",{className:"text-sm font-medium text-[#111827] dark:text-zinc-800",children:"U"})})}function gs(t){let e=t;return e=e.replace(/<system-reminder>[\s\S]*?<\/system-reminder>/g,""),e=e.replace(/<file path="[^"]*">[\s\S]*?<\/file>/g,""),e=e.replace(/<attached_files>[\s\S]*?<\/attached_files>/g,""),e=e.trim(),e}function qa(t){if(typeof t=="string")return{text:gs(t),images:[]};const e=t.filter(n=>n.type==="text").map(n=>n.text).join(`
9
- `),s=t.filter(n=>n.type==="image_url").map(n=>n.image_url.url);return{text:gs(e),images:s}}function $s(t){return typeof t=="string"?t:t.filter(e=>e.type==="text").map(e=>e.text).join(`
10
- `)}function lt({content:t,syntaxHighlight:e=!0}){return l.jsx(p.Suspense,{fallback:l.jsx("pre",{className:"text-[14px] text-[#111827] dark:text-[#E5E5E5] font-mono whitespace-pre-wrap",children:t}),children:l.jsx(La,{content:t,syntaxHighlight:e})})}function Ds({status:t}){if(!t)return null;const e={running:"bg-[#FEF3C7] text-[#92400E] dark:bg-[#F59E0B]/20 dark:text-[#FBBF24]",success:"bg-[#DCFCE7] text-[#15803D] dark:bg-[#22C55E]/20 dark:text-[#22C55E]",error:"bg-[#FEE2E2] text-[#b91c1c] dark:bg-[#EF4444]/20 dark:text-[#fca5a5]",pending:"bg-[#E5E7EB] text-[#6B7280] dark:bg-[#27272a] dark:text-[#a1a1aa]",info:"bg-[#DBEAFE] text-[#1D4ED8] dark:bg-[#3B82F6]/20 dark:text-[#60A5FA]"},s={running:"Running",success:"Success",error:"Error",pending:"Pending",info:"Info"};return l.jsx("span",{className:B("text-[11px] px-2 py-0.5 rounded-full font-mono",e[t]),children:s[t]})}function Ga(t){if(!t)return"";if(typeof t=="string")try{return JSON.stringify(JSON.parse(t),null,2)}catch{return t}return JSON.stringify(t,null,2)}function Wa({tool:t}){const[e,s]=p.useState(!1),n=Ga(t.arguments);return l.jsxs("div",{className:"bg-white dark:bg-[#18181b] border border-[#E5E7EB] dark:border-[#27272a] rounded-lg overflow-hidden",children:[l.jsxs("button",{onClick:()=>s(r=>!r),className:"w-full flex items-center justify-between px-3 py-2 bg-[#F9FAFB] dark:bg-transparent hover:bg-[#F3F4F6] dark:hover:bg-[#1f1f23] transition-colors",children:[l.jsxs("div",{className:"flex gap-2 items-center min-w-0",children:[e?l.jsx(Ve,{className:"h-4 w-4 text-[#9CA3AF] dark:text-[#71717a] shrink-0"}):l.jsx(vs,{className:"h-4 w-4 text-[#9CA3AF] dark:text-[#71717a] shrink-0"}),l.jsx("span",{className:"text-[12px] text-[#111827] dark:text-[#E5E5E5] font-mono shrink-0",children:t.toolName}),t.summary&&l.jsx("span",{className:"text-[11px] text-[#6B7280] dark:text-[#71717a] font-mono truncate",children:t.summary})]}),l.jsx(Ds,{status:t.status})]}),e&&l.jsxs("div",{className:"px-3 py-2 space-y-2 border-t border-[#E5E7EB] dark:border-[#27272a]",children:[n&&l.jsxs("div",{className:"space-y-1",children:[l.jsx("div",{className:"text-[11px] text-[#6B7280] dark:text-[#71717a] font-mono",children:"Arguments"}),l.jsx("pre",{className:"text-[11px] text-[#374151] dark:text-[#d4d4d8] bg-[#F3F4F6] dark:bg-[#111113] border border-[#E5E7EB] dark:border-[#27272a] rounded-md p-2 overflow-x-auto whitespace-pre-wrap font-mono max-h-[120px] overflow-y-auto",children:n})]}),t.output&&l.jsxs("div",{className:"space-y-1",children:[l.jsx("div",{className:"text-[11px] text-[#6B7280] dark:text-[#71717a] font-mono",children:"Output"}),l.jsx("pre",{className:"text-[11px] text-[#374151] dark:text-[#d4d4d8] bg-[#F3F4F6] dark:bg-[#111113] border border-[#E5E7EB] dark:border-[#27272a] rounded-md p-2 overflow-x-auto whitespace-pre-wrap font-mono max-h-[120px] overflow-y-auto",children:t.output.length>500?t.output.slice(0,500)+"...":t.output})]})]})]})}function Zs({toolCalls:t}){return t.length===0?null:l.jsx("div",{className:"space-y-2",children:t.map(e=>l.jsx(Wa,{tool:e},e.toolCallId))})}function Ha({content:t}){const[e,s]=p.useState(!1);return t?l.jsxs("div",{className:"bg-[#F9FAFB] dark:bg-[#18181b] border border-[#E5E7EB] dark:border-[#27272a] rounded-lg overflow-hidden",children:[l.jsxs("button",{onClick:()=>s(n=>!n),className:"w-full flex items-center gap-2 px-3 py-2 hover:bg-[#F3F4F6] dark:hover:bg-[#1f1f23] transition-colors",children:[e?l.jsx(Ve,{className:"h-4 w-4 text-[#9CA3AF] dark:text-[#71717a]"}):l.jsx(vs,{className:"h-4 w-4 text-[#9CA3AF] dark:text-[#71717a]"}),l.jsx("span",{className:"text-[12px] text-[#6B7280] dark:text-[#71717a] font-mono",children:"Thought"})]}),e&&l.jsx("div",{className:"px-3 py-2 border-t border-[#E5E7EB] dark:border-[#27272a]",children:l.jsx("pre",{className:"text-[11px] text-[#6B7280] dark:text-[#a1a1aa] whitespace-pre-wrap font-mono",children:t})})]}):null}function Qa({tasks:t}){if(t.length===0)return null;const e=t.filter(n=>n.status==="completed").length,s=e===t.length;return l.jsx("div",{className:"bg-[#F9FAFB] dark:bg-[#18181b] border border-[#E5E7EB] dark:border-[#27272a] rounded-lg px-3 py-2",children:l.jsx("div",{className:"flex gap-2 items-center",children:l.jsx("span",{className:"text-[12px] text-[#6B7280] dark:text-[#71717a] font-mono",children:s?"✓ All tasks done":`Tasks: ${e}/${t.length}`})})})}function Ja({toolCalls:t}){const{setFilePreviewOpen:e}=jt(),s=p.useMemo(()=>{const r=new Map,a=["Write","SearchReplace","Edit"];for(const o of t){if(o.status!=="success")continue;const i=o.metadata,d=i==null?void 0:i.file_path;d&&a.includes(o.toolName)&&r.set(d,{path:d,toolName:o.toolName})}return Array.from(r.values())},[t]);if(s.length===0)return null;const n=()=>{e(!0)};return l.jsxs("div",{className:"bg-[#F9FAFB] dark:bg-[#18181b] border border-[#E5E7EB] dark:border-[#27272a] rounded-lg px-3 py-2",children:[l.jsxs("div",{className:"text-[11px] text-[#6B7280] dark:text-[#71717a] font-mono mb-1.5",children:["Changed files (",s.length,")"]}),l.jsx("div",{className:"flex flex-wrap gap-1.5",children:s.map(({path:r})=>{const a=r.split("/").pop()||r;return l.jsxs("button",{onClick:n,className:"flex items-center gap-1 px-2 py-1 text-[11px] font-mono bg-[#E5E7EB] dark:bg-[#27272a] text-[#374151] dark:text-[#d4d4d8] rounded hover:bg-[#D1D5DB] dark:hover:bg-[#3f3f46] transition-colors",title:r,children:[l.jsx(ct,{className:"w-3 h-3"}),a]},r)})})]})}function Ka({subagent:t}){const[e,s]=p.useState(null),[n,r]=p.useState(!1),[a,o]=p.useState(null);if(!t)return null;const i=t.status==="running",d=e!==null?e:i,c=t.toolCalls||a||[],u=t.output||t.thinking||c.length>0||t.sessionId;return p.useEffect(()=>{if(!d||i||!t.sessionId||a!==null||t.toolCalls&&t.toolCalls.length>0)return;let f=!0;return r(!0),le.getMessages(t.sessionId).then(g=>{var b,y;if(!f)return;const h=zs(g),m=new Map;for(const v of h)if((y=(b=v.agentContent)==null?void 0:b.toolCalls)!=null&&y.length)for(const I of v.agentContent.toolCalls)m.has(I.toolCallId)||m.set(I.toolCallId,I);o(Array.from(m.values()))}).finally(()=>{f&&r(!1)}),()=>{f=!1}},[d,i,t.sessionId,t.toolCalls,a]),l.jsxs("div",{className:"bg-[#F9FAFB] dark:bg-[#18181b] border border-[#E5E7EB] dark:border-[#27272a] rounded-lg px-3 py-2",children:[l.jsxs("button",{type:"button",onClick:()=>s(!d),className:"flex gap-2 justify-between items-center w-full transition-opacity cursor-pointer hover:opacity-80",children:[l.jsxs("div",{className:"flex gap-2 items-center",children:[i&&l.jsx(Qe,{className:"h-3 w-3 animate-spin text-[#6B7280]"}),l.jsxs("span",{className:"text-[12px] text-[#6B7280] dark:text-[#71717a] font-mono",children:[t.type,": ",t.description]}),l.jsx(Ds,{status:t.status==="completed"?"success":t.status==="failed"?"error":"running"})]}),u&&l.jsx(Ve,{className:B("h-3.5 w-3.5 text-[#6B7280] transition-transform",d&&"rotate-180")})]}),d&&l.jsxs("div",{className:"mt-2 space-y-2",children:[(t.output||t.thinking)&&l.jsxs(l.Fragment,{children:[t.output&&l.jsx("pre",{className:"text-[11px] text-[#374151] dark:text-[#d4d4d8] bg-[#F3F4F6] dark:bg-[#111113] border border-[#E5E7EB] dark:border-[#27272a] rounded-md p-2 overflow-x-auto whitespace-pre-wrap font-mono max-h-[160px] overflow-y-auto",children:t.output}),t.thinking&&l.jsx("pre",{className:"text-[11px] text-[#6B7280] dark:text-[#a1a1aa] bg-[#F3F4F6] dark:bg-[#111113] border border-[#E5E7EB] dark:border-[#27272a] rounded-md p-2 overflow-x-auto whitespace-pre-wrap font-mono max-h-[120px] overflow-y-auto",children:t.thinking})]}),n&&l.jsxs("div",{className:"flex items-center gap-2 text-[11px] text-[#6B7280] dark:text-[#71717a] font-mono",children:[l.jsx(Qe,{className:"w-3 h-3 animate-spin"}),"Loading subagent logs..."]}),!n&&c.length>0&&l.jsx(Zs,{toolCalls:c})]})]})}function Ya({confirmation:t,messageId:e}){const[s,n]=p.useState(!1),{currentSessionId:r,setConfirmation:a}=_e();if(!t)return null;const o=async(i,d)=>{if(!(!r||s)){n(!0);try{await le.respondPermission(r,t.toolCallId,{approved:i,scope:d}),a(e,{...t,status:i?"approved":"denied"})}catch{a(e,{...t,status:i?"approved":"denied"})}finally{n(!1)}}};return t.status!=="pending"?null:l.jsxs("div",{className:"bg-white dark:bg-[#18181b] border border-[#E5E7EB] dark:border-[#27272a] rounded-lg p-4 space-y-3",children:[l.jsxs("div",{className:"text-[13px] text-[#111827] dark:text-[#E5E5E5] font-mono",children:["Permission required: ",t.toolName]}),l.jsx("div",{className:"text-[12px] text-[#6B7280] dark:text-[#a1a1aa] font-mono",children:t.description}),t.diff&&l.jsx("pre",{className:"text-[11px] text-[#374151] dark:text-[#d4d4d8] bg-[#F3F4F6] dark:bg-[#111113] border border-[#E5E7EB] dark:border-[#27272a] rounded-md p-2 overflow-x-auto whitespace-pre-wrap font-mono max-h-[200px] overflow-y-auto",children:t.diff}),l.jsxs("div",{className:"flex gap-2",children:[l.jsx("button",{onClick:()=>o(!0,"once"),disabled:s,className:"px-3 py-1.5 text-[12px] font-mono bg-[#22C55E] text-white rounded-md hover:bg-[#16A34A] disabled:opacity-50",children:"Once"}),l.jsx("button",{onClick:()=>o(!0,"session"),disabled:s,className:"px-3 py-1.5 text-[12px] font-mono bg-[#3B82F6] text-white rounded-md hover:bg-[#2563EB] disabled:opacity-50",children:"Session"}),l.jsx("button",{onClick:()=>o(!1),disabled:s,className:"px-3 py-1.5 text-[12px] font-mono bg-[#EF4444] text-white rounded-md hover:bg-[#DC2626] disabled:opacity-50",children:"Deny"})]})]})}function Xa({question:t}){const[e,s]=p.useState({}),[n,r]=p.useState(!1),{currentSessionId:a}=_e();if(!t)return null;const o=async()=>{if(!(!a||n)){r(!0);try{await le.respondToQuestion(a,t.toolCallId,e)}finally{r(!1)}}};return t.status!=="pending"?l.jsx("div",{className:"bg-[#F9FAFB] dark:bg-[#18181b] border border-[#E5E7EB] dark:border-[#27272a] rounded-lg px-3 py-2",children:l.jsx("div",{className:"text-[12px] text-[#6B7280] dark:text-[#71717a] font-mono",children:"Questions answered"})}):l.jsxs("div",{className:"bg-white dark:bg-[#18181b] border border-[#E5E7EB] dark:border-[#27272a] rounded-lg p-4 space-y-4",children:[t.questions.map((i,d)=>l.jsxs("div",{className:"space-y-2",children:[l.jsx("div",{className:"text-[13px] text-[#111827] dark:text-[#E5E5E5] font-mono",children:i.question}),l.jsx("div",{className:"space-y-1",children:i.options.map((c,u)=>l.jsxs("button",{onClick:()=>{if(i.multiSelect){const f=e[i.header]||[],g=f.includes(c.label)?f.filter(h=>h!==c.label):[...f,c.label];s({...e,[i.header]:g})}else s({...e,[i.header]:c.label})},className:B("w-full text-left px-3 py-2 rounded-md border text-[12px] font-mono transition-colors","border-[#E5E7EB] dark:border-[#27272a]",(i.multiSelect?(e[i.header]||[]).includes(c.label):e[i.header]===c.label)?"bg-[#DCFCE7] text-[#166534] dark:bg-[#22C55E]/20 dark:text-[#E5E5E5]":"bg-[#F9FAFB] text-[#6B7280] dark:bg-[#111113] dark:text-[#a1a1aa]"),children:[l.jsx("div",{children:c.label}),l.jsx("div",{className:"text-[11px] text-[#9CA3AF] dark:text-[#71717a] mt-1",children:c.description})]},u))})]},d)),l.jsx("button",{onClick:o,disabled:n,className:"px-3 py-1.5 text-[12px] font-mono bg-[#22C55E] text-white rounded-md hover:bg-[#16A34A] disabled:opacity-50",children:"Submit"})]})}function eo({message:t}){const e=t.agentContent,{isStreaming:s,currentAssistantMessageId:n}=_e(),r=n===t.id;if(!e){const v=$s(t.content);return v?l.jsx(lt,{content:v}):null}const{textBefore:a,toolCalls:o,textAfter:i,thinkingContent:d,tasks:c,subagent:u,confirmation:f,question:g}=e;if(!(a||o.length>0||i||d||c.length>0||u||f||g)&&r&&s)return l.jsxs("div",{className:"flex items-center gap-2 text-[#6B7280] dark:text-[#71717a]",children:[l.jsx(Qe,{className:"w-4 h-4 animate-spin"}),l.jsx("span",{className:"text-[12px] font-mono",children:"Thinking..."})]});const b=o.length>0&&o.every(v=>v.status==="success"||v.status==="error")&&(!r||!s),y=!r||!s;return l.jsxs("div",{className:"space-y-3",children:[d&&l.jsx(Ha,{content:d}),a&&l.jsx(lt,{content:a,syntaxHighlight:y}),c.length>0&&l.jsx(Qa,{tasks:c}),u&&l.jsx(Ka,{subagent:u}),l.jsx(Zs,{toolCalls:o}),f&&l.jsx(Ya,{confirmation:f,messageId:t.id}),g&&l.jsx(Xa,{question:g}),b&&l.jsx(Ja,{toolCalls:o}),i&&l.jsx(lt,{content:i,syntaxHighlight:y})]})}function to({message:t,showAvatar:e=!0}){const s=t.role==="user";if(t.role==="system"){const r=$s(t.content);return l.jsx("div",{className:"flex justify-center p-2 w-full",children:l.jsx("div",{className:"text-xs text-[#6B7280] dark:text-[#71717a] bg-[#F3F4F6] dark:bg-[#18181b] px-3 py-1 rounded-full font-mono",children:r})})}if(s){const{text:r,images:a}=qa(t.content);return l.jsxs("div",{className:"flex gap-4 justify-end p-4 w-full",children:[l.jsxs("div",{className:"bg-[#F3F4F6] dark:bg-[#27272a] rounded-lg px-4 py-3 max-w-[85%]",children:[r&&l.jsx("p",{className:"text-[14px] text-[#111827] dark:text-[#E5E5E5] font-mono leading-relaxed whitespace-pre-wrap",children:r}),a.length>0&&l.jsx("div",{className:B("grid gap-2",a.length===1?"grid-cols-1 mt-0":"grid-cols-2 mt-3"),children:a.map((o,i)=>l.jsx("img",{src:o,alt:`attachment-${i+1}`,className:"max-h-64 w-full rounded-md object-cover"},`${o}-${i}`))})]}),l.jsx(Va,{})]})}return l.jsxs("div",{className:B("flex gap-4 justify-start w-full",e?"p-4":"px-4 pt-0 pb-3"),children:[e?l.jsx(Ua,{}):l.jsx("div",{className:"w-8 shrink-0"}),l.jsx("div",{className:"overflow-hidden flex-1 min-w-0",children:l.jsx(eo,{message:t})})]})}const so=p.memo(to),dt=120,ms=80;function no({messages:t,isLoading:e}){const s=p.useRef(null),n=p.useRef(t.length),[r,a]=p.useState(dt);p.useEffect(()=>{s.current&&s.current.scrollIntoView({behavior:"smooth"})},[t]),p.useEffect(()=>{const c=n.current;n.current=t.length,a(u=>u>=c&&t.length>c?t.length:Math.min(Math.max(u,dt),t.length||dt))},[t.length]);const o=Math.max(t.length-r,0),i=o,d=p.useMemo(()=>t.slice(i),[t,i]);return t.length===0&&!e?l.jsx("div",{className:"flex-1 flex items-center justify-center",children:l.jsxs("div",{className:"text-center text-[#6B7280] dark:text-zinc-500",children:[l.jsx("div",{className:"text-4xl mb-4",children:"🗡️"}),l.jsx("div",{className:"text-lg font-medium",children:"Welcome to Blade"}),l.jsx("div",{className:"text-sm mt-1",children:"Start a conversation to begin"})]})}):l.jsx(Rt,{className:"flex-1 h-full",children:l.jsxs("div",{className:"flex flex-col pb-4 w-full px-4 md:px-6",children:[o>0&&l.jsx("div",{className:"flex justify-center py-3",children:l.jsxs("button",{type:"button",onClick:()=>a(c=>Math.min(t.length,c+ms)),className:"rounded-md border border-[#E5E7EB] bg-white px-3 py-1.5 text-[12px] font-mono text-[#6B7280] transition-colors hover:bg-[#F3F4F6] hover:text-[#111827] dark:border-[#27272a] dark:bg-[#111113] dark:text-[#a1a1aa] dark:hover:bg-[#18181b] dark:hover:text-[#E5E5E5]",children:["Show ",Math.min(o,ms)," earlier messages"]})}),d.map((c,u)=>{const f=i+u,g=f>0?t[f-1]:null,h=!g||g.role!==c.role||g.role==="user";return l.jsx(so,{message:c,showAvatar:h},c.id||`msg-${f}`)}),e&&l.jsxs("div",{className:"flex w-full gap-4 p-4 justify-start",children:[l.jsx("div",{className:"flex h-8 w-8 shrink-0 select-none items-center justify-center rounded-lg bg-[#22C55E]",children:l.jsx("div",{className:"w-2 h-2 rounded-full bg-black"})}),l.jsxs("div",{className:"flex items-center gap-1 text-[#9CA3AF] dark:text-zinc-400",children:[l.jsx("span",{className:"animate-pulse",children:"●"}),l.jsx("span",{className:"animate-pulse delay-100",children:"●"}),l.jsx("span",{className:"animate-pulse delay-200",children:"●"})]})]}),l.jsx("div",{ref:s})]})})}const ro=nn,ao=rn,oo=an,Ls=p.forwardRef(({className:t,sideOffset:e=4,...s},n)=>l.jsx(ys,{ref:n,sideOffset:e,className:B("z-50 overflow-hidden rounded-md border bg-popover px-3 py-1.5 text-sm text-popover-foreground shadow-md 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 origin-[--radix-tooltip-content-transform-origin]",t),...s}));Ls.displayName=ys.displayName;const io={running:"Generating...",compacting:"Compacting context...",switching_model:"Switching model...",waiting_permission:"Waiting for permission...",error:"Run failed",idle:""};function lo(){const{tokenUsage:t,isStreaming:e,agentPhase:s}=_e(),n=io[s],r=t.maxContextTokens>0?Math.round(t.totalTokens/t.maxContextTokens*100):0,a=o=>o>=1e6?`${(o/1e6).toFixed(1)}M`:o>=1e3?`${(o/1e3).toFixed(1)}K`:o.toString();return l.jsxs("div",{className:"flex items-center gap-4 px-4 py-2 border-t border-[#E5E7EB] dark:border-zinc-800 bg-white dark:bg-zinc-950/50 text-xs text-[#6B7280] dark:text-zinc-500",children:[l.jsxs("div",{className:"flex items-center gap-2",children:[l.jsx("span",{className:"text-[#6B7280] dark:text-zinc-400",children:"Tokens:"}),l.jsxs("span",{className:B(r>80&&"text-yellow-500",r>95&&"text-red-500"),children:[a(t.totalTokens)," /"," ",a(t.maxContextTokens)]}),t.isDefaultMaxTokens&&l.jsx(ro,{children:l.jsxs(ao,{children:[l.jsx(oo,{asChild:!0,children:l.jsx(bn,{className:"h-3 w-3 text-[#9CA3AF] dark:text-zinc-500 cursor-help"})}),l.jsx(Ls,{side:"top",className:"max-w-[220px]",children:l.jsx("p",{className:"text-xs",children:"Token limit is estimated. It updates when the model reports its context size."})})]})}),l.jsx("div",{className:"w-20 h-1.5 bg-[#E5E7EB] dark:bg-zinc-800 rounded-full overflow-hidden",children:l.jsx("div",{className:B("h-full transition-all duration-300",r>95?"bg-red-500":r>80?"bg-yellow-500":"bg-green-500"),style:{width:`${Math.min(r,100)}%`}})}),l.jsxs("span",{className:"text-[#9CA3AF] dark:text-zinc-600",children:["(",r,"%)"]})]}),l.jsx("div",{className:"flex-1"}),e&&n&&l.jsxs("div",{className:"flex items-center gap-2",children:[l.jsx("span",{className:"w-2 h-2 rounded-full bg-green-500 animate-pulse"}),l.jsx("span",{children:n})]})]})}function co(){const{messages:t,currentSessionId:e,isStreaming:s,pendingSteeringCount:n,recoveredSteeringCount:r,isLoading:a,error:o,loadSessions:i,sendMessage:d,abortSession:c,startTemporarySession:u,clearError:f,unsubscribeFromEvents:g}=_e();p.useEffect(()=>{i()},[i]),p.useEffect(()=>{e||u()},[e,u]),p.useEffect(()=>()=>{g()},[g]);const h=async b=>{await d({content:b.content,attachments:b.attachments.map(y=>({type:"image",content:y.dataUrl,mimeType:y.mimeType,name:y.name}))})},m=()=>{c()};return l.jsxs("div",{className:"flex flex-col h-full",children:[o&&l.jsxs("div",{className:"bg-[#FEE2E2] border border-[#FCA5A5] text-[#b91c1c] dark:bg-[#3f1d1d] dark:border-[#7f1d1d] dark:text-[#fca5a5] px-4 py-2 text-[13px] font-mono flex items-center justify-between",children:[l.jsx("span",{children:o}),l.jsx("button",{onClick:f,className:"text-[#b91c1c] hover:text-[#7f1d1d] dark:text-[#fca5a5] dark:hover:text-[#fecaca]",children:"✕"})]}),l.jsx(no,{messages:t,isLoading:a}),l.jsx(Za,{onSend:h,onAbort:m,disabled:a,isStreaming:s,pendingSteeringCount:n,recoveredSteeringCount:r}),l.jsx(lo,{})]})}function uo(){return l.jsx(Aa,{children:l.jsx(co,{})})}Qs.createRoot(document.getElementById("root")).render(l.jsx(Ze.StrictMode,{children:l.jsx(uo,{})}));export{Ue as B,Fs as a,_e as b,B as c,Et as d,jt as u};