@agent-spaces/server 0.3.65 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/adapters/agent-runtime.js +8 -0
- package/dist/adapters/codex-function-tool-bridge.js +152 -0
- package/dist/adapters/codex-runtime.js +23 -4
- package/dist/adapters/git.js +25 -3
- package/dist/adapters/hermes-runtime.js +813 -0
- package/dist/adapters/langchain-runtime.js +384 -21
- package/dist/adapters/oh-my-pi-runtime.js +858 -0
- package/dist/adapters/open-agent-sdk-runtime.js +202 -5
- package/dist/adapters/open-agent-sdk-runtime.test.js +35 -0
- package/dist/agents/agent-message-parts.js +52 -2
- package/dist/agents/issue-task-controller.js +71 -2
- package/dist/agents/pull-request-agent.js +115 -0
- package/dist/agents/scheduler-agent.js +1 -1
- package/dist/agents/title-generator-agent.js +120 -0
- package/dist/app.js +61 -4
- package/dist/middleware/auth.js +1 -1
- package/dist/package.json +2 -1
- package/dist/routes/agent-sse.js +70 -6
- package/dist/routes/channel.js +23 -2
- package/dist/routes/chat-run.js +191 -0
- package/dist/routes/chat.js +142 -0
- package/dist/routes/command.js +16 -0
- package/dist/routes/data.js +189 -0
- package/dist/routes/git.js +10 -1
- package/dist/routes/import.js +199 -0
- package/dist/routes/issue.js +17 -5
- package/dist/routes/notification.js +10 -0
- package/dist/routes/plugin.js +69 -0
- package/dist/routes/version.js +95 -0
- package/dist/routes/workflow-hook.js +71 -0
- package/dist/routes/workflow.js +282 -7
- package/dist/routes/workspace.js +13 -4
- package/dist/routes/worktree.js +93 -0
- package/dist/services/agent.js +123 -36
- package/dist/services/ai-text.js +185 -0
- package/dist/services/builtin-tools/index.js +1 -0
- package/dist/services/builtin-tools/workflow-editor-tools.js +509 -0
- package/dist/services/builtin-tools/workflow-exec-tools.js +320 -0
- package/dist/services/chat.js +134 -0
- package/dist/services/command-process-manager.js +16 -0
- package/dist/services/execution-manager.js +1346 -0
- package/dist/services/generated-title.js +59 -0
- package/dist/services/gitignore.js +22 -18
- package/dist/services/interaction-manager.js +114 -0
- package/dist/services/issue-retry.js +25 -0
- package/dist/services/notification-center.js +9 -0
- package/dist/services/output-style.js +8 -1
- package/dist/services/plugin.js +257 -0
- package/dist/services/prompt-template.js +8 -1
- package/dist/services/pty.js +20 -0
- package/dist/services/search.js +16 -6
- package/dist/services/skill.js +2 -0
- package/dist/services/version.js +69 -0
- package/dist/services/workflow-command-runner.js +24 -0
- package/dist/services/workflow-trigger-service.js +137 -0
- package/dist/services/workflow.js +219 -39
- package/dist/services/workspace.js +23 -1
- package/dist/services/worktree.js +207 -0
- package/dist/storage/agent-store.js +8 -0
- package/dist/storage/chat-store.js +151 -0
- package/dist/storage/database-store.js +6 -0
- package/dist/storage/json-store.js +2 -1
- package/dist/storage/kanban-store.js +6 -0
- package/dist/storage/workflow-store.js +386 -22
- package/dist/storage/worktree-store.js +33 -0
- package/dist/web/404.html +1 -1
- package/dist/web/__next.__PAGE__.txt +4 -4
- package/dist/web/__next._full.txt +21 -21
- package/dist/web/__next._head.txt +4 -4
- package/dist/web/__next._index.txt +13 -13
- package/dist/web/__next._tree.txt +2 -2
- package/dist/web/_next/static/chunks/{08x85faoz58i7.js → 0-92u-tiuy40a.js} +4 -4
- package/dist/web/_next/static/chunks/{0db14450oqzhg.js → 0-yizd8osmas2.js} +1 -1
- package/dist/web/_next/static/chunks/0.ln~3mnv8.69.js +1 -0
- package/dist/web/_next/static/chunks/{11cchuwoupmbf.js → 01y3e9pemva7b.js} +10 -10
- package/dist/web/_next/static/chunks/02l~tmzrgny.~.js +1 -0
- package/dist/web/_next/static/chunks/03f1bwuynjdmk.js +1 -0
- package/dist/web/_next/static/chunks/04cb4kc9r2pd1.js +1 -0
- package/dist/web/_next/static/chunks/04de6ha5_e3pp.js +1 -0
- package/dist/web/_next/static/chunks/09he0p79ov1rn.js +1 -0
- package/dist/web/_next/static/chunks/09vpocs4zuc8h.js +1 -0
- package/dist/web/_next/static/chunks/0_o2exgr0e_nh.js +1 -0
- package/dist/web/_next/static/chunks/{0xbaakj0dfc0..js → 0_y9nskc-xt2k.js} +1 -1
- package/dist/web/_next/static/chunks/0clnj-1fi6u8j.js +3 -0
- package/dist/web/_next/static/chunks/0gv40by0zzxs_.js +1 -0
- package/dist/web/_next/static/chunks/0iusr8y88.kjg.js +1 -0
- package/dist/web/_next/static/chunks/{0-a.-hl3wv99k.js → 0j-8418fxvkd1.js} +1 -1
- package/dist/web/_next/static/chunks/0j.wxxyoclma5.js +1 -0
- package/dist/web/_next/static/chunks/{0.6b64sy0g5.3.js → 0jq.16sozqik..js} +1 -1
- package/dist/web/_next/static/chunks/0jw8xdk_fpnp0.css +1 -0
- package/dist/web/_next/static/chunks/0l1lkd-wcotma.js +1 -0
- package/dist/web/_next/static/chunks/{0u6h-hqc_i52e.js → 0ncxf_zr4n839.js} +1 -1
- package/dist/web/_next/static/chunks/0ndo7um~v7vco.js +1 -0
- package/dist/web/_next/static/chunks/0ngk.~kan8wq_.js +1 -0
- package/dist/web/_next/static/chunks/0ppr271hz0xoq.js +1 -0
- package/dist/web/_next/static/chunks/0rt9bofnn6qvn.js +1 -0
- package/dist/web/_next/static/chunks/0t64.9jd00hio.js +3 -0
- package/dist/web/_next/static/chunks/0taui9--5n6-5.js +1 -0
- package/dist/web/_next/static/chunks/0ty39169lh~z3.js +1 -0
- package/dist/web/_next/static/chunks/0v8nof~waedlu.js +1 -0
- package/dist/web/_next/static/chunks/{0-pi.67w.ymsr.js → 0vcfoagnpf.aw.js} +1 -1
- package/dist/web/_next/static/chunks/{0vis~lx0nxgn-.js → 0wwwq.gyyz0vg.js} +3 -3
- package/dist/web/_next/static/chunks/0x5lak8yz7pm7.js +1 -0
- package/dist/web/_next/static/chunks/0xon_.4-o0_zq.js +7 -0
- package/dist/web/_next/static/chunks/0zjnrbt7inime.js +1 -0
- package/dist/web/_next/static/chunks/0zwebpitvpuv1.js +1 -0
- package/dist/web/_next/static/chunks/0~02o4g-o6n~m.js +1 -0
- package/dist/web/_next/static/chunks/{0w7.tb29958zj.js → 0~fjezp.k4qk3.js} +1 -1
- package/dist/web/_next/static/chunks/0~sh93re1-_rp.js +1 -0
- package/dist/web/_next/static/chunks/10_niiq0k6o-p.js +5 -0
- package/dist/web/_next/static/chunks/12tjr0_2ccrtq.js +2 -0
- package/dist/web/_next/static/chunks/12x5.go_x9mfk.js +1 -0
- package/dist/web/_next/static/chunks/{0l2w0qz1ea7ql.js → 12~5dk9i9d16t.js} +2 -2
- package/dist/web/_next/static/chunks/13iye4rv5p31b.js +1 -0
- package/dist/web/_next/static/chunks/{01~quun6sefgl.js → 13~y-b.b9rrw4.js} +1 -1
- package/dist/web/_next/static/chunks/151wzhb5q0lo5.js +1 -0
- package/dist/web/_not-found/__next._full.txt +19 -19
- package/dist/web/_not-found/__next._head.txt +4 -4
- package/dist/web/_not-found/__next._index.txt +13 -13
- package/dist/web/_not-found/__next._not-found.__PAGE__.txt +2 -2
- package/dist/web/_not-found/__next._not-found.txt +3 -3
- package/dist/web/_not-found/__next._tree.txt +2 -2
- package/dist/web/_not-found.html +1 -1
- package/dist/web/_not-found.txt +19 -19
- package/dist/web/index.html +1 -1
- package/dist/web/index.txt +21 -21
- package/dist/web/login/__next._full.txt +21 -21
- package/dist/web/login/__next._head.txt +4 -4
- package/dist/web/login/__next._index.txt +13 -13
- package/dist/web/login/__next._tree.txt +2 -2
- package/dist/web/login/__next.login.__PAGE__.txt +4 -4
- package/dist/web/login/__next.login.txt +3 -3
- package/dist/web/login.html +1 -1
- package/dist/web/login.txt +21 -21
- package/dist/web/settings/__next._full.txt +23 -23
- package/dist/web/settings/__next._head.txt +4 -4
- package/dist/web/settings/__next._index.txt +13 -13
- package/dist/web/settings/__next._tree.txt +2 -2
- package/dist/web/settings/__next.settings.__PAGE__.txt +4 -4
- package/dist/web/settings/__next.settings.txt +5 -5
- package/dist/web/settings/agents/__next._full.txt +23 -23
- package/dist/web/settings/agents/__next._head.txt +4 -4
- package/dist/web/settings/agents/__next._index.txt +13 -13
- package/dist/web/settings/agents/__next._tree.txt +2 -2
- package/dist/web/settings/agents/__next.settings.agents.__PAGE__.txt +4 -4
- package/dist/web/settings/agents/__next.settings.agents.txt +3 -3
- package/dist/web/settings/agents/__next.settings.txt +5 -5
- package/dist/web/settings/agents.html +1 -1
- package/dist/web/settings/agents.txt +23 -23
- package/dist/web/settings/mcps/__next._full.txt +23 -23
- package/dist/web/settings/mcps/__next._head.txt +4 -4
- package/dist/web/settings/mcps/__next._index.txt +13 -13
- package/dist/web/settings/mcps/__next._tree.txt +2 -2
- package/dist/web/settings/mcps/__next.settings.mcps.__PAGE__.txt +4 -4
- package/dist/web/settings/mcps/__next.settings.mcps.txt +3 -3
- package/dist/web/settings/mcps/__next.settings.txt +5 -5
- package/dist/web/settings/mcps.html +1 -1
- package/dist/web/settings/mcps.txt +23 -23
- package/dist/web/settings/models/__next._full.txt +23 -23
- package/dist/web/settings/models/__next._head.txt +4 -4
- package/dist/web/settings/models/__next._index.txt +13 -13
- package/dist/web/settings/models/__next._tree.txt +2 -2
- package/dist/web/settings/models/__next.settings.models.__PAGE__.txt +4 -4
- package/dist/web/settings/models/__next.settings.models.txt +3 -3
- package/dist/web/settings/models/__next.settings.txt +5 -5
- package/dist/web/settings/models.html +1 -1
- package/dist/web/settings/models.txt +23 -23
- package/dist/web/settings/output-styles/__next._full.txt +23 -23
- package/dist/web/settings/output-styles/__next._head.txt +4 -4
- package/dist/web/settings/output-styles/__next._index.txt +13 -13
- package/dist/web/settings/output-styles/__next._tree.txt +2 -2
- package/dist/web/settings/output-styles/__next.settings.output-styles.__PAGE__.txt +4 -4
- package/dist/web/settings/output-styles/__next.settings.output-styles.txt +3 -3
- package/dist/web/settings/output-styles/__next.settings.txt +5 -5
- package/dist/web/settings/output-styles.html +1 -1
- package/dist/web/settings/output-styles.txt +23 -23
- package/dist/web/settings/prompts/__next._full.txt +23 -23
- package/dist/web/settings/prompts/__next._head.txt +4 -4
- package/dist/web/settings/prompts/__next._index.txt +13 -13
- package/dist/web/settings/prompts/__next._tree.txt +2 -2
- package/dist/web/settings/prompts/__next.settings.prompts.__PAGE__.txt +4 -4
- package/dist/web/settings/prompts/__next.settings.prompts.txt +3 -3
- package/dist/web/settings/prompts/__next.settings.txt +5 -5
- package/dist/web/settings/prompts.html +1 -1
- package/dist/web/settings/prompts.txt +23 -23
- package/dist/web/settings/providers/__next._full.txt +23 -23
- package/dist/web/settings/providers/__next._head.txt +4 -4
- package/dist/web/settings/providers/__next._index.txt +13 -13
- package/dist/web/settings/providers/__next._tree.txt +2 -2
- package/dist/web/settings/providers/__next.settings.providers.__PAGE__.txt +4 -4
- package/dist/web/settings/providers/__next.settings.providers.txt +3 -3
- package/dist/web/settings/providers/__next.settings.txt +5 -5
- package/dist/web/settings/providers.html +1 -1
- package/dist/web/settings/providers.txt +23 -23
- package/dist/web/settings/skills/__next._full.txt +23 -23
- package/dist/web/settings/skills/__next._head.txt +4 -4
- package/dist/web/settings/skills/__next._index.txt +13 -13
- package/dist/web/settings/skills/__next._tree.txt +2 -2
- package/dist/web/settings/skills/__next.settings.skills.__PAGE__.txt +4 -4
- package/dist/web/settings/skills/__next.settings.skills.txt +3 -3
- package/dist/web/settings/skills/__next.settings.txt +5 -5
- package/dist/web/settings/skills.html +1 -1
- package/dist/web/settings/skills.txt +23 -23
- package/dist/web/settings/tools/__next._full.txt +23 -23
- package/dist/web/settings/tools/__next._head.txt +4 -4
- package/dist/web/settings/tools/__next._index.txt +13 -13
- package/dist/web/settings/tools/__next._tree.txt +2 -2
- package/dist/web/settings/tools/__next.settings.tools.__PAGE__.txt +4 -4
- package/dist/web/settings/tools/__next.settings.tools.txt +3 -3
- package/dist/web/settings/tools/__next.settings.txt +5 -5
- package/dist/web/settings/tools.html +1 -1
- package/dist/web/settings/tools.txt +23 -23
- package/dist/web/settings.html +1 -1
- package/dist/web/settings.txt +23 -23
- package/dist/web/workflows/__next._full.txt +22 -22
- package/dist/web/workflows/__next._head.txt +4 -4
- package/dist/web/workflows/__next._index.txt +13 -13
- package/dist/web/workflows/__next._tree.txt +2 -2
- package/dist/web/workflows/__next.workflows.__PAGE__.txt +4 -4
- package/dist/web/workflows/__next.workflows.txt +3 -3
- package/dist/web/workflows.html +1 -1
- package/dist/web/workflows.txt +22 -22
- package/dist/web/workspace/_/__next._full.txt +20 -20
- package/dist/web/workspace/_/__next._head.txt +4 -4
- package/dist/web/workspace/_/__next._index.txt +13 -13
- package/dist/web/workspace/_/__next._tree.txt +2 -2
- package/dist/web/workspace/_/__next.workspace.$d$id.__PAGE__.txt +3 -3
- package/dist/web/workspace/_/__next.workspace.$d$id.txt +3 -3
- package/dist/web/workspace/_/__next.workspace.txt +3 -3
- package/dist/web/workspace/_.html +1 -1
- package/dist/web/workspace/_.txt +20 -20
- package/dist/web/workspaces/__next._full.txt +21 -21
- package/dist/web/workspaces/__next._head.txt +4 -4
- package/dist/web/workspaces/__next._index.txt +13 -13
- package/dist/web/workspaces/__next._tree.txt +2 -2
- package/dist/web/workspaces/__next.workspaces.__PAGE__.txt +4 -4
- package/dist/web/workspaces/__next.workspaces.txt +3 -3
- package/dist/web/workspaces.html +1 -1
- package/dist/web/workspaces.txt +21 -21
- package/dist/ws/agent-prompt.js +36 -3
- package/dist/ws/agent-runner.js +30 -18
- package/dist/ws/chat-handler.js +89 -0
- package/dist/ws/connection-manager.js +49 -2
- package/dist/ws/execution-channels.js +88 -0
- package/dist/ws/handler.js +32 -5
- package/dist/ws/message-parts.js +130 -12
- package/dist/ws/terminal-handler.js +26 -0
- package/package.json +13 -1
- package/public/avatars/user.jpg +0 -0
- package/dist/web/_next/static/chunks/0-v_p6j5u3_9l.js +0 -1
- package/dist/web/_next/static/chunks/0.-x29t-8gk0r.js +0 -1
- package/dist/web/_next/static/chunks/0.l5e8~r7_0~p.js +0 -1
- package/dist/web/_next/static/chunks/0.n~yfwf4~6w-.js +0 -1
- package/dist/web/_next/static/chunks/00-syqzi-6zxr.js +0 -1
- package/dist/web/_next/static/chunks/02j4sr9psucf-.js +0 -1
- package/dist/web/_next/static/chunks/06si8l0doqe8p.js +0 -1
- package/dist/web/_next/static/chunks/08kfx8on9oty~.js +0 -1
- package/dist/web/_next/static/chunks/08ugbvzr20drp.js +0 -2
- package/dist/web/_next/static/chunks/0_cqojbge48kq.js +0 -5
- package/dist/web/_next/static/chunks/0d6~~lv0-6kex.js +0 -3
- package/dist/web/_next/static/chunks/0gdwop9cnpmtu.js +0 -1
- package/dist/web/_next/static/chunks/0ghx3j_.-gdyd.js +0 -1
- package/dist/web/_next/static/chunks/0kbvoxla7f751.js +0 -1
- package/dist/web/_next/static/chunks/0paaat8y96ayc.js +0 -7
- package/dist/web/_next/static/chunks/0pq318f8xgafg.js +0 -1
- package/dist/web/_next/static/chunks/0t6s8of0qr6nc.js +0 -1
- package/dist/web/_next/static/chunks/0xt-8wk21gs7g.js +0 -1
- package/dist/web/_next/static/chunks/0yd.m1afqg.2t.js +0 -3
- package/dist/web/_next/static/chunks/0yhbr8hl09b-5.js +0 -1
- package/dist/web/_next/static/chunks/0z~vqzbm_q371.js +0 -1
- package/dist/web/_next/static/chunks/0~~_ltu6dx_ch.js +0 -1
- package/dist/web/_next/static/chunks/12oxcgyhpaxw~.js +0 -1
- package/dist/web/_next/static/chunks/1452eibz62gs6.css +0 -1
- package/dist/web/_next/static/chunks/16zlreiems5cn.js +0 -1
- package/dist/web/_next/static/chunks/18awqjk9-o5m0.js +0 -1
- /package/dist/web/_next/static/{x4-CsKe6qUQyFDWVtfvUg → rGXyAK8rgod1NjF3bLZAY}/_buildManifest.js +0 -0
- /package/dist/web/_next/static/{x4-CsKe6qUQyFDWVtfvUg → rGXyAK8rgod1NjF3bLZAY}/_clientMiddlewareManifest.js +0 -0
- /package/dist/web/_next/static/{x4-CsKe6qUQyFDWVtfvUg → rGXyAK8rgod1NjF3bLZAY}/_ssgManifest.js +0 -0
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,188815,e=>{"use strict";var t=e.i(344180),a=e.i(764556),r=e.i(465458),n=e.i(681622),s=e.i(344118),l=e.i(650654),i=e.i(953700);e.s(["SearchSelect",0,function({value:e,onChange:o,options:d,placeholder:c="Select...",searchPlaceholder:u="Search...",allowCustom:m=!0,className:p}){let h=(0,a.useRef)(null),[x,f]=(0,a.useState)(!1),[g,v]=(0,a.useState)("");(0,a.useEffect)(()=>{let e=e=>{h.current&&!h.current.contains(e.target)&&f(!1)};return x&&document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)},[x]);let b=d.filter(e=>(e.label??e.value).toLowerCase().includes(g.toLowerCase())),y=d.some(e=>e.value.toLowerCase()===g.toLowerCase()),w=d.find(t=>t.value===e),k=e&&!d.some(t=>t.value===e),j=e=>{o(e),f(!1),v("")};return(0,t.jsxs)("div",{ref:h,className:(0,r.cn)("relative",p),children:[(0,t.jsxs)("button",{type:"button",onClick:()=>{f(!0),v("")},className:(0,r.cn)("flex h-8 w-full items-center justify-between gap-2 rounded-lg border border-input bg-transparent px-2.5 text-sm outline-none hover:bg-muted/50 focus-visible:border-ring dark:bg-input/30"),children:[(0,t.jsx)("span",{className:(0,r.cn)("truncate",!e&&"text-muted-foreground"),children:w?w.label??w.value:k?e:c}),(0,t.jsx)(l.ChevronDown,{className:"size-3.5 shrink-0 opacity-50"})]}),x&&(0,t.jsxs)("div",{className:"absolute inset-x-0 top-full z-50 mt-1 rounded-lg border bg-popover p-1 shadow-md",children:[(0,t.jsx)(n.Input,{value:g,onChange:e=>v(e.target.value),placeholder:u,className:"h-7 text-xs",onKeyDown:e=>{"Enter"===e.key&&m&&g.trim()&&(e.preventDefault(),j(g.trim())),"Escape"===e.key&&f(!1)},autoFocus:!0}),(0,t.jsxs)("div",{className:"mt-1 max-h-48 overflow-y-auto",children:[b.map(a=>(0,t.jsxs)("button",{type:"button",className:(0,r.cn)("flex w-full items-center gap-2 rounded-md px-2 py-1.5 text-xs hover:bg-muted/50",e===a.value&&"bg-muted"),onClick:()=>j(a.value),children:[(0,t.jsx)(s.Check,{className:(0,r.cn)("size-3 shrink-0",e===a.value?"opacity-100":"opacity-0")}),(0,t.jsx)("span",{className:"truncate",children:a.label??a.value})]},a.value)),m&&g.trim()&&!y&&(0,t.jsxs)("button",{type:"button",className:"flex w-full items-center gap-2 rounded-md px-2 py-1.5 text-xs text-primary hover:bg-muted/50 cursor-pointer",onClick:()=>j(g.trim()),children:[(0,t.jsx)(i.Plus,{className:"size-3 shrink-0"}),(0,t.jsxs)("span",{className:"truncate",children:['Use "',g.trim(),'"']})]}),!b.length&&!g.trim()&&(0,t.jsx)("div",{className:"px-2 py-1.5 text-xs text-muted-foreground",children:"No results"})]})]})]})}])},325443,946899,e=>{"use strict";let t=(0,e.i(433721).default)("bot",[["path",{d:"M12 8V4H8",key:"hb8ula"}],["rect",{width:"16",height:"12",x:"4",y:"8",rx:"2",key:"enze0r"}],["path",{d:"M2 14h2",key:"vft8re"}],["path",{d:"M20 14h2",key:"4cs60a"}],["path",{d:"M15 13v2",key:"1xurst"}],["path",{d:"M9 13v2",key:"rq6x2g"}]]);e.s(["default",0,t],946899),e.s(["Bot",0,t],325443)},562918,928542,e=>{"use strict";var t=e.i(370383),a=e.i(969490);function r(e){return(0,a.useRenderElement)(e.defaultTagName??"div",e,e)}e.s(["useRender",0,r],928542);var n=e.i(294237),s=e.i(465458);let l=(0,n.cva)("group/badge inline-flex h-5 w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-4xl border border-transparent px-2 py-0.5 text-xs font-medium whitespace-nowrap transition-all focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&>svg]:pointer-events-none [&>svg]:size-3!",{variants:{variant:{default:"bg-primary text-primary-foreground [a]:hover:bg-primary/80",secondary:"bg-secondary text-secondary-foreground [a]:hover:bg-secondary/80",destructive:"bg-destructive/10 text-destructive focus-visible:ring-destructive/20 dark:bg-destructive/20 dark:focus-visible:ring-destructive/40 [a]:hover:bg-destructive/20",outline:"border-border text-foreground [a]:hover:bg-muted [a]:hover:text-muted-foreground",ghost:"hover:bg-muted hover:text-muted-foreground dark:hover:bg-muted/50",link:"text-primary underline-offset-4 hover:underline"}},defaultVariants:{variant:"default"}});e.s(["Badge",0,function({className:e,variant:a="default",render:n,...i}){return r({defaultTagName:"span",props:(0,t.mergeProps)({className:(0,s.cn)(l({variant:a}),e)},i),render:n,state:{slot:"badge",variant:a}})}],562918)},368942,e=>{"use strict";let t=(0,e.i(816709).create)((e,t)=>({models:[],providers:[],loaded:!1,ensure:async()=>{if(!t().loaded)try{let[t,a]=await Promise.all([fetch("/api/models").then(e=>e.json()),fetch("/api/providers").then(e=>e.json())]);e({models:t,providers:a,loaded:!0})}catch{}},addModel:t=>e(e=>({models:[...e.models,t]})),updateModel:t=>e(e=>({models:e.models.map(e=>e.id===t.id?t:e)})),removeModel:t=>e(e=>({models:e.models.filter(e=>e.id!==t)})),addProvider:t=>e(e=>({providers:[...e.providers,t]})),updateProvider:t=>e(e=>({providers:e.providers.map(e=>e.id===t.id?t:e)})),removeProvider:t=>e(e=>({providers:e.providers.filter(e=>e.id!==t)}))}));e.s(["useLLMStore",0,t])},451534,680422,e=>{"use strict";let t=(0,e.i(433721).default)("folder-open",[["path",{d:"m6 14 1.5-2.9A2 2 0 0 1 9.24 10H20a2 2 0 0 1 1.94 2.5l-1.54 6a2 2 0 0 1-1.95 1.5H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H18a2 2 0 0 1 2 2v2",key:"usdka0"}]]);e.s(["default",0,t],680422),e.s(["FolderOpen",0,t],451534)},426022,e=>{"use strict";let t=(0,e.i(433721).default)("message-square",[["path",{d:"M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z",key:"18887p"}]]);e.s(["MessageSquare",0,t],426022)},227634,e=>{"use strict";let t=(0,e.i(433721).default)("hash",[["line",{x1:"4",x2:"20",y1:"9",y2:"9",key:"4lhtct"}],["line",{x1:"4",x2:"20",y1:"15",y2:"15",key:"vyu0kd"}],["line",{x1:"10",x2:"8",y1:"3",y2:"21",key:"1ggp8o"}],["line",{x1:"16",x2:"14",y1:"3",y2:"21",key:"weycgp"}]]);e.s(["Hash",0,t],227634)},943997,e=>{"use strict";let t=(0,e.i(433721).default)("database",[["ellipse",{cx:"12",cy:"5",rx:"9",ry:"3",key:"msslwz"}],["path",{d:"M3 5V19A9 3 0 0 0 21 19V5",key:"1wlel7"}],["path",{d:"M3 12A9 3 0 0 0 21 12",key:"mv7ke4"}]]);e.s(["Database",0,t],943997)},159619,839374,e=>{"use strict";let t=(0,e.i(433721).default)("copy",[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]]);e.s(["default",0,t],839374),e.s(["Copy",0,t],159619)},788010,e=>{"use strict";var t=e.i(344180),a=e.i(465458);e.s(["Textarea",0,function({className:e,...r}){return(0,t.jsx)("textarea",{"data-slot":"textarea",className:(0,a.cn)("flex field-sizing-content min-h-16 w-full rounded-lg border border-input bg-transparent px-2.5 py-2 text-base transition-colors outline-none placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:bg-input/50 disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 md:text-sm dark:bg-input/30 dark:disabled:bg-input/80 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40",e),...r})}])},189131,e=>{"use strict";var t=e.i(764556);let a=t.createContext(void 0);e.s(["useDirection",0,function(){let e=t.useContext(a);return e?.direction??"ltr"}])},137340,288556,e=>{"use strict";let t=(0,e.i(433721).default)("trash-2",[["path",{d:"M10 11v6",key:"nco0om"}],["path",{d:"M14 11v6",key:"outv1u"}],["path",{d:"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6",key:"miytrc"}],["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2",key:"e791ji"}]]);e.s(["default",0,t],288556),e.s(["Trash2",0,t],137340)},953700,e=>{"use strict";let t=(0,e.i(433721).default)("plus",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]]);e.s(["Plus",0,t],953700)},355819,e=>{"use strict";let t=(0,e.i(816709).create)((e,t)=>({agents:[],loaded:!1,loading:!1,ensure:async()=>{let{loaded:a,loading:r}=t();if(!a&&!r){e({loading:!0});try{let t=await fetch("/api/agents/presets");if(!t.ok)return;let a=await t.json();e({agents:a,loaded:!0})}catch{}finally{e({loading:!1})}}},toggleEnabled:async a=>{let r=t().agents.find(e=>e.id===a);if(!r)return;let n=!r.enabled;e(e=>({agents:e.agents.map(e=>e.id===a?{...e,enabled:n}:e)}));try{(await fetch(`/api/agents/presets/${a}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({...r,enabled:n})})).ok||e(e=>({agents:e.agents.map(e=>e.id===a?{...e,enabled:r.enabled}:e)}))}catch{e(e=>({agents:e.agents.map(e=>e.id===a?{...e,enabled:r.enabled}:e)}))}}}));e.s(["findAgentById",0,function(e){return t.getState().agents.find(t=>t.id===e)},"useAgentStore",0,t])},394394,e=>{"use strict";var t=e.i(764556);let a=t.createContext(void 0),r={disableStyleElements:!1};e.s(["useCSPContext",0,function(){return t.useContext(a)??r}])},464111,e=>{"use strict";e.s(["clamp",0,function(e,t=Number.MIN_SAFE_INTEGER,a=Number.MAX_SAFE_INTEGER){return Math.max(t,Math.min(e,a))}])},191118,e=>{"use strict";var t,a,r,n,s,l=e.i(344180);e.s([],556166),e.i(556166),e.i(8890);var i=e.i(764556),o=e.i(29905),d=e.i(232449),c=e.i(267805);let u=i.createContext(void 0);function m(){let e=i.useContext(u);if(void 0===e)throw Error((0,c.default)(53));return e}var p=e.i(969490);let h=((t={}).scrollAreaCornerHeight="--scroll-area-corner-height",t.scrollAreaCornerWidth="--scroll-area-corner-width",t);function x(e,t,a){if(!e)return 0;let r=getComputedStyle(e),n="x"===a?"Inline":"Block";return"x"===a&&"margin"===t?2*parseFloat(r[`${t}InlineStart`]):parseFloat(r[`${t}${n}Start`])+parseFloat(r[`${t}${n}End`])}let f=((a={}).orientation="data-orientation",a.hovering="data-hovering",a.scrolling="data-scrolling",a.hasOverflowX="data-has-overflow-x",a.hasOverflowY="data-has-overflow-y",a.overflowXStart="data-overflow-x-start",a.overflowXEnd="data-overflow-x-end",a.overflowYStart="data-overflow-y-start",a.overflowYEnd="data-overflow-y-end",a),g="base-ui-disable-scrollbar";var v=e.i(139236);let b=((r={}).scrolling="data-scrolling",r.hasOverflowX="data-has-overflow-x",r.hasOverflowY="data-has-overflow-y",r.overflowXStart="data-overflow-x-start",r.overflowXEnd="data-overflow-x-end",r.overflowYStart="data-overflow-y-start",r.overflowYEnd="data-overflow-y-end",r),y={hasOverflowX:e=>e?{[b.hasOverflowX]:""}:null,hasOverflowY:e=>e?{[b.hasOverflowY]:""}:null,overflowXStart:e=>e?{[b.overflowXStart]:""}:null,overflowXEnd:e=>e?{[b.overflowXEnd]:""}:null,overflowYStart:e=>e?{[b.overflowYStart]:""}:null,overflowYEnd:e=>e?{[b.overflowYEnd]:""}:null,cornerHidden:()=>null};var w=e.i(410421),k=e.i(394394);let j={x:0,y:0},S={width:0,height:0},N={xStart:!1,xEnd:!1,yStart:!1,yEnd:!1},C={x:!0,y:!0,corner:!0},D=i.forwardRef(function(e,t){let a,{render:r,className:n,overflowEdgeThreshold:s,style:c,...m}=e,b=function(e){if("number"==typeof e){let t=Math.max(0,e);return{xStart:t,xEnd:t,yStart:t,yEnd:t}}return{xStart:Math.max(0,e?.xStart||0),xEnd:Math.max(0,e?.xEnd||0),yStart:Math.max(0,e?.yStart||0),yEnd:Math.max(0,e?.yEnd||0)}}(s),D=(0,v.useBaseUiId)(),T=(0,d.useTimeout)(),P=(0,d.useTimeout)(),{nonce:E,disableStyleElements:M}=(0,k.useCSPContext)(),[A,z]=i.useState(!1),[O,I]=i.useState(!1),[R,L]=i.useState(!1),[K,B]=i.useState(!1),[H,U]=i.useState(!1),[W,$]=i.useState(S),[X,Y]=i.useState(S),[V,_]=i.useState(N),[F,q]=i.useState(C),G=i.useRef(null),Q=i.useRef(null),J=i.useRef(null),Z=i.useRef(null),ee=i.useRef(null),et=i.useRef(null),ea=i.useRef(null),er=i.useRef(!1),en=i.useRef(0),es=i.useRef(0),el=i.useRef(0),ei=i.useRef(0),eo=i.useRef("vertical"),ed=i.useRef(j),ec=(0,o.useStableCallback)(e=>{let t=e.x-ed.current.x,a=e.y-ed.current.y;ed.current=e,0!==a&&(L(!0),T.start(500,()=>{L(!1)})),0!==t&&(I(!0),P.start(500,()=>{I(!1)}))}),eu=(0,o.useStableCallback)(e=>{0===e.button&&(er.current=!0,en.current=e.clientY,es.current=e.clientX,eo.current=e.currentTarget.getAttribute(f.orientation),Q.current&&(el.current=Q.current.scrollTop,ei.current=Q.current.scrollLeft),ee.current&&"vertical"===eo.current&&ee.current.setPointerCapture(e.pointerId),et.current&&"horizontal"===eo.current&&et.current.setPointerCapture(e.pointerId))}),em=(0,o.useStableCallback)(e=>{if(!er.current)return;let t=e.clientY-en.current,a=e.clientX-es.current;if(Q.current){let r=Q.current.scrollHeight,n=Q.current.clientHeight,s=Q.current.scrollWidth,l=Q.current.clientWidth;if(ee.current&&J.current&&"vertical"===eo.current){let a=x(J.current,"padding","y"),s=x(ee.current,"margin","y"),l=ee.current.offsetHeight,i=J.current.offsetHeight-l-a-s;Q.current.scrollTop=el.current+t/i*(r-n),e.preventDefault(),L(!0),T.start(500,()=>{L(!1)})}if(et.current&&Z.current&&"horizontal"===eo.current){let t=x(Z.current,"padding","x"),r=x(et.current,"margin","x"),n=et.current.offsetWidth,i=Z.current.offsetWidth-n-t-r;Q.current.scrollLeft=ei.current+a/i*(s-l),e.preventDefault(),I(!0),P.start(500,()=>{I(!1)})}}}),ep=(0,o.useStableCallback)(e=>{er.current=!1,ee.current&&"vertical"===eo.current&&ee.current.releasePointerCapture(e.pointerId),et.current&&"horizontal"===eo.current&&et.current.releasePointerCapture(e.pointerId)});function eh(e){B("touch"===e.pointerType)}function ex(e){eh(e),"touch"!==e.pointerType&&z((0,w.contains)(G.current,e.target))}let ef=i.useMemo(()=>({scrolling:O||R,hasOverflowX:!F.x,hasOverflowY:!F.y,overflowXStart:V.xStart,overflowXEnd:V.xEnd,overflowYStart:V.yStart,overflowYEnd:V.yEnd,cornerHidden:F.corner}),[O,R,F.x,F.y,F.corner,V]),eg={role:"presentation",onPointerEnter:ex,onPointerMove:ex,onPointerDown:eh,onPointerLeave(){z(!1)},style:{position:"relative",[h.scrollAreaCornerHeight]:`${W.height}px`,[h.scrollAreaCornerWidth]:`${W.width}px`}},ev=(0,p.useRenderElement)("div",e,{state:ef,ref:[t,G],props:[eg,m],stateAttributesMapping:y}),eb=i.useMemo(()=>({handlePointerDown:eu,handlePointerMove:em,handlePointerUp:ep,handleScroll:ec,cornerSize:W,setCornerSize:$,thumbSize:X,setThumbSize:Y,hasMeasuredScrollbar:H,setHasMeasuredScrollbar:U,touchModality:K,cornerRef:ea,scrollingX:O,setScrollingX:I,scrollingY:R,setScrollingY:L,hovering:A,setHovering:z,viewportRef:Q,rootRef:G,scrollbarYRef:J,scrollbarXRef:Z,thumbYRef:ee,thumbXRef:et,rootId:D,hiddenState:F,setHiddenState:q,overflowEdges:V,setOverflowEdges:_,viewportState:ef,overflowEdgeThreshold:b}),[eu,em,ep,ec,W,X,H,K,O,I,R,L,A,z,D,F,V,ef,b]);return(0,l.jsxs)(u.Provider,{value:eb,children:[!M&&(a=E,(0,l.jsx)("style",{nonce:a,href:g,precedence:"base-ui:low",children:`.${g}{scrollbar-width:none}.${g}::-webkit-scrollbar{display:none}`})),ev]})});var T=e.i(277642),P=e.i(454889);let E=i.createContext(void 0);var M=e.i(189131),A=e.i(464111);let z=((n={}).scrollAreaOverflowXStart="--scroll-area-overflow-x-start",n.scrollAreaOverflowXEnd="--scroll-area-overflow-x-end",n.scrollAreaOverflowYStart="--scroll-area-overflow-y-start",n.scrollAreaOverflowYEnd="--scroll-area-overflow-y-end",n);function O(e,t){if(t<=0)return 0;let a=(0,A.clamp)(e,0,t),r=t-a,n=a<=1,s=r<=1;return n&&s?a<=r?0:t:n?0:s?t:a}let I=!1,R=i.forwardRef(function(e,t){let{render:a,className:r,style:n,...s}=e,{viewportRef:c,scrollbarYRef:u,scrollbarXRef:h,thumbYRef:f,thumbXRef:v,cornerRef:b,cornerSize:w,setCornerSize:k,setThumbSize:j,rootId:S,setHiddenState:N,hiddenState:C,setHasMeasuredScrollbar:D,handleScroll:R,setHovering:L,setOverflowEdges:K,overflowEdges:B,overflowEdgeThreshold:H,scrollingX:U,scrollingY:W}=m(),$=(0,M.useDirection)(),X=i.useRef(!0),Y=i.useRef([NaN,NaN,NaN,NaN]),V=(0,d.useTimeout)(),_=(0,d.useTimeout)(),F=(0,o.useStableCallback)(()=>{var e;let t,a,r=c.current,n=u.current,s=h.current,l=f.current,i=v.current,o=b.current;if(!r)return;let d=r.scrollHeight,m=r.scrollWidth,p=r.clientHeight,g=r.clientWidth,y=r.scrollTop,S=r.scrollLeft,C=Y.current,T=Number.isNaN(C[0]);if(C[0]=p,C[1]=d,C[2]=g,C[3]=m,T&&D(!0),0===d||0===m)return;let P=(t=(e=r).clientHeight>=e.scrollHeight,{y:t,x:a=e.clientWidth>=e.scrollWidth,corner:t||a}),E=P.y,M=P.x,I=g/m,R=p/d,L=Math.max(0,m-g),B=Math.max(0,d-p),U=0,W=0;!M&&(U=O("rtl"===$?(0,A.clamp)(-S,0,L):(0,A.clamp)(S,0,L),L),W=L-U);let X=E?0:(0,A.clamp)(y,0,B),V=E?0:O(X,B),_=E?0:B-V,F=M?0:g,q=E?0:p,G=0,Q=0;M||E||(G=n?.offsetWidth||0,Q=s?.offsetHeight||0);let J=0===w.width&&0===w.height,Z=J?G:0,ee=J?Q:0,et=x(s,"padding","x"),ea=x(n,"padding","y"),er=x(i,"margin","x"),en=x(l,"margin","y"),es=F-et-er,el=q-ea-en,ei=s?Math.min(s.offsetWidth-Z,es):es,eo=n?Math.min(n.offsetHeight-ee,el):el,ed=Math.max(16,ei*I),ec=Math.max(16,eo*R);if(j(e=>e.height===ec&&e.width===ed?e:{width:ed,height:ec}),n&&l){let e=n.offsetHeight-ec-ea-en,t=d-p,a=Math.min(e,Math.max(0,(0===t?0:y/t)*e));l.style.transform=`translate3d(0,${a}px,0)`}if(s&&i){let e=s.offsetWidth-ed-et-er,t=m-g,a=0===t?0:S/t,r="rtl"===$?(0,A.clamp)(a*e,-e,0):(0,A.clamp)(a*e,0,e);i.style.transform=`translate3d(${r}px,0,0)`}for(let[e,t]of[[z.scrollAreaOverflowXStart,U],[z.scrollAreaOverflowXEnd,W],[z.scrollAreaOverflowYStart,V],[z.scrollAreaOverflowYEnd,_]])r.style.setProperty(e,`${t}px`);o&&(M||E?k({width:0,height:0}):M||E||k({width:G,height:Q})),N(e=>{var t,a;return t=e,a=P,t.y===a.y&&t.x===a.x&&t.corner===a.corner?t:a});let eu={xStart:!M&&U>H.xStart,xEnd:!M&&W>H.xEnd,yStart:!E&&V>H.yStart,yEnd:!E&&_>H.yEnd};K(e=>e.xStart===eu.xStart&&e.xEnd===eu.xEnd&&e.yStart===eu.yStart&&e.yEnd===eu.yEnd?e:eu)});function q(){X.current=!1}(0,T.useIsoLayoutEffect)(()=>{c.current&&(I||P.isWebKit||("u">typeof CSS&&"registerProperty"in CSS&&[z.scrollAreaOverflowXStart,z.scrollAreaOverflowXEnd,z.scrollAreaOverflowYStart,z.scrollAreaOverflowYEnd].forEach(e=>{try{CSS.registerProperty({name:e,syntax:"<length>",inherits:!1,initialValue:"0px"})}catch{}}),I=!0))},[c]),(0,T.useIsoLayoutEffect)(()=>{queueMicrotask(F)},[F,C,$]),(0,T.useIsoLayoutEffect)(()=>{c.current?.matches(":hover")&&L(!0)},[c,L]),i.useEffect(()=>{let e=c.current;if("u"<typeof ResizeObserver||!e)return;let t=!1,a=new ResizeObserver(()=>{if(!t){t=!0;let a=Y.current;if(a[0]===e.clientHeight&&a[1]===e.scrollHeight&&a[2]===e.clientWidth&&a[3]===e.scrollWidth)return}F()});return a.observe(e),_.start(0,()=>{let t=e.getAnimations({subtree:!0});0!==t.length&&Promise.allSettled(t.map(e=>e.finished)).then(F).catch(()=>{})}),()=>{a.disconnect(),_.clear()}},[F,c,_]);let G={role:"presentation",...S&&{"data-id":`${S}-viewport`},tabIndex:C.x&&C.y?-1:0,className:g,style:{overflow:"scroll"},onScroll(){c.current&&(F(),X.current||R({x:c.current.scrollLeft,y:c.current.scrollTop}),V.start(100,()=>{X.current=!0}))},onWheel:q,onTouchMove:q,onPointerMove:q,onPointerEnter:q,onKeyDown:q},Q=i.useMemo(()=>({scrolling:U||W,hasOverflowX:!C.x,hasOverflowY:!C.y,overflowXStart:B.xStart,overflowXEnd:B.xEnd,overflowYStart:B.yStart,overflowYEnd:B.yEnd,cornerHidden:C.corner}),[U,W,C.x,C.y,C.corner,B]),J=(0,p.useRenderElement)("div",e,{ref:[t,c],state:Q,props:[G,s],stateAttributesMapping:y}),Z=i.useMemo(()=>({computeThumbPosition:F}),[F]);return(0,l.jsx)(E.Provider,{value:Z,children:J})});var L=e.i(422561);let K=i.createContext(void 0),B=((s={}).scrollAreaThumbHeight="--scroll-area-thumb-height",s.scrollAreaThumbWidth="--scroll-area-thumb-width",s),H=i.forwardRef(function(e,t){let{render:a,className:r,orientation:n="vertical",keepMounted:s=!1,style:o,...d}=e,{hovering:c,scrollingX:u,scrollingY:f,hiddenState:g,overflowEdges:v,scrollbarYRef:b,scrollbarXRef:k,viewportRef:j,thumbYRef:S,thumbXRef:N,handlePointerDown:C,handlePointerUp:D,rootId:T,thumbSize:P,hasMeasuredScrollbar:E}=m(),A={hovering:c,scrolling:{horizontal:u,vertical:f}[n],orientation:n,hasOverflowX:!g.x,hasOverflowY:!g.y,overflowXStart:v.xStart,overflowXEnd:v.xEnd,overflowYStart:v.yStart,overflowYEnd:v.yEnd,cornerHidden:g.corner},z=(0,M.useDirection)();i.useEffect(()=>{let e=j.current,t="vertical"===n?b.current:k.current;if(t)return(0,L.addEventListener)(t,"wheel",function(a){if(e&&t&&!a.ctrlKey){if(a.preventDefault(),"vertical"===n){if(0===e.scrollTop&&a.deltaY<0)return}else if(0===e.scrollLeft&&a.deltaX<0)return;if("vertical"===n){if(e.scrollTop===e.scrollHeight-e.clientHeight&&a.deltaY>0)return}else if(e.scrollLeft===e.scrollWidth-e.clientWidth&&a.deltaX>0)return;"vertical"===n?e.scrollTop+=a.deltaY:e.scrollLeft+=a.deltaX}},{passive:!1})},[n,k,b,j]);let O={...T&&{"data-id":`${T}-scrollbar`},onPointerDown(e){if(0!==e.button)return;let t=(0,w.getTarget)(e.nativeEvent),a="vertical"===n?S.current:N.current;if(!(a&&(0,w.contains)(a,t))&&j.current){if(S.current&&b.current&&"vertical"===n){let t=x(S.current,"margin","y"),a=x(b.current,"padding","y"),r=S.current.offsetHeight,n=b.current.getBoundingClientRect(),s=e.clientY-n.top-r/2-a+t/2,l=j.current.scrollHeight,i=j.current.clientHeight,o=b.current.offsetHeight-r-a-t;j.current.scrollTop=s/o*(l-i)}if(N.current&&k.current&&"horizontal"===n){let t,a=x(N.current,"margin","x"),r=x(k.current,"padding","x"),n=N.current.offsetWidth,s=k.current.getBoundingClientRect(),l=e.clientX-s.left-n/2-r+a/2,i=j.current.scrollWidth,o=j.current.clientWidth,d=l/(k.current.offsetWidth-n-r-a);"rtl"===z?(t=(1-d)*(i-o),j.current.scrollLeft<=0&&(t=-t)):t=d*(i-o),j.current.scrollLeft=t}C(e)}},onPointerUp:D,style:{position:"absolute",touchAction:"none",WebkitUserSelect:"none",userSelect:"none",visibility:E||s?void 0:"hidden",..."vertical"===n&&{top:0,bottom:`var(${h.scrollAreaCornerHeight})`,insetInlineEnd:0,[B.scrollAreaThumbHeight]:`${P.height}px`},..."horizontal"===n&&{insetInlineStart:0,insetInlineEnd:`var(${h.scrollAreaCornerWidth})`,bottom:0,[B.scrollAreaThumbWidth]:`${P.width}px`}}},I=(0,p.useRenderElement)("div",e,{ref:[t,"vertical"===n?b:k],state:A,props:[O,d],stateAttributesMapping:y}),R=i.useMemo(()=>({orientation:n}),[n]),H="vertical"===n?g.y:g.x;return s||!H?(0,l.jsx)(K.Provider,{value:R,children:I}):null}),U=i.forwardRef(function(e,t){let{render:a,className:r,style:n,...s}=e,l=i.useRef(null),{computeThumbPosition:o}=function(){let e=i.useContext(E);if(void 0===e)throw Error((0,c.default)(55));return e}(),{viewportState:d}=m();return(0,T.useIsoLayoutEffect)(()=>{if("u"<typeof ResizeObserver)return;let e=!1,t=new ResizeObserver(()=>{if(!e){e=!0;return}o()});return l.current&&t.observe(l.current),()=>{t.disconnect()}},[o]),(0,p.useRenderElement)("div",e,{ref:[t,l],state:d,stateAttributesMapping:y,props:[{role:"presentation",style:{minWidth:"fit-content"}},s]})}),W=i.forwardRef(function(e,t){let{render:a,className:r,style:n,...s}=e,{thumbYRef:l,thumbXRef:o,handlePointerDown:d,handlePointerMove:u,handlePointerUp:h,setScrollingX:x,setScrollingY:f,hasMeasuredScrollbar:g}=m(),{orientation:v}=function(){let e=i.useContext(K);if(void 0===e)throw Error((0,c.default)(54));return e}();return(0,p.useRenderElement)("div",e,{ref:[t,"vertical"===v?l:o],state:{orientation:v},props:[{onPointerDown:d,onPointerMove:u,onPointerUp(e){"vertical"===v&&f(!1),"horizontal"===v&&x(!1),h(e)},style:{visibility:g?void 0:"hidden",..."vertical"===v&&{height:`var(${B.scrollAreaThumbHeight})`},..."horizontal"===v&&{width:`var(${B.scrollAreaThumbWidth})`}}},s]})}),$=i.forwardRef(function(e,t){let{render:a,className:r,style:n,...s}=e,{cornerRef:l,cornerSize:i,hiddenState:o}=m(),d=(0,p.useRenderElement)("div",e,{ref:[t,l],props:[{style:{position:"absolute",bottom:0,insetInlineEnd:0,width:i.width,height:i.height}},s]});return o.corner?null:d});e.s(["Content",0,U,"Corner",0,$,"Root",0,D,"Scrollbar",0,H,"Thumb",0,W,"Viewport",0,R],787180);var X=e.i(787180),X=X,Y=e.i(465458);function V({className:e,orientation:t="vertical",...a}){return(0,l.jsx)(X.Scrollbar,{"data-slot":"scroll-area-scrollbar","data-orientation":t,orientation:t,className:(0,Y.cn)("flex touch-none p-px transition-colors select-none data-horizontal:h-2.5 data-horizontal:flex-col data-horizontal:border-t data-horizontal:border-t-transparent data-vertical:h-full data-vertical:w-2.5 data-vertical:border-l data-vertical:border-l-transparent",e),...a,children:(0,l.jsx)(X.Thumb,{"data-slot":"scroll-area-thumb",className:"relative flex-1 rounded-full bg-border"})})}e.s(["ScrollArea",0,function({className:e,children:t,...a}){return(0,l.jsxs)(X.Root,{"data-slot":"scroll-area",className:(0,Y.cn)("relative overflow-hidden",e),...a,children:[(0,l.jsx)(X.Viewport,{"data-slot":"scroll-area-viewport",className:"size-full rounded-[inherit] transition-[color,box-shadow] outline-none focus-visible:ring-[3px] focus-visible:ring-ring/50 focus-visible:outline-1",children:t}),(0,l.jsx)(V,{}),(0,l.jsx)(X.Corner,{})]})}],191118)},611176,e=>{"use strict";var t=e.i(344180),a=e.i(764556),r=e.i(465458),n=e.i(523592),s=e.i(355819);let l=[[/generativelanguage\.googleapis\.com/i,"gemini"],[/aiplatform\.googleapis\.com/i,"google"],[/api\.anthropic\.com/i,"anthropic"],[/api\.openai\.com/i,"openai"],[/api\.deepseek\.com/i,"deepseek"],[/open\.bigmodel\.cn/i,"zhipu"],[/api\.moonshot\.cn/i,"kimi"],[/dashscope\.aliyuncs\.com/i,"alibaba"],[/dashscope\.com/i,"alibaba"],[/aip\.baidubce\.com/i,"baidu"],[/ark\.cn-beijing\.volces\.com/i,"doubao"],[/api\.coze\./i,"doubao"],[/api\.minimax\.chat/i,"minimax"],[/api\.minimaxi\.com/i,"minimax"],[/api\.mistral\.ai/i,"mistral"],[/api\.groq\.com/i,"xai"],[/api\.x\.ai/i,"xai"],[/openrouter\.ai/i,"openrouter"],[/api\.siliconflow\.cn/i,"siliconflow"],[/localhost.*11434/i,"ollama"],[/127\.0\.0\.1.*11434/i,"ollama"],[/api\.cohere\./i,"cohere"],[/api-inference\.huggingface\.co/i,"huggingface"],[/openai\.azure\.com/i,"azure"],[/\.openai\.azure\.com/i,"azure"],[/bedrock-runtime\..*\.amazonaws\.com/i,"aws"],[/api\.huawei\./i,"huawei"],[/hunyuan\.tencentcloudapi\.com/i,"tencent"],[/api\.01\.ai/i,"yi"],[/api\.stepfun\.com/i,"stepfun"],[/api\.novita\.ai/i,"novita"],[/integrate\.api\.nvidia\.com/i,"nvidia"],[/api\.cloudflare\.com\/client\/v4\/accounts/i,"cloudflare"],[/meta\.llama/i,"meta"]];e.s(["AgentIcon",0,function({agentId:e,name:i,avatarUrl:o,apiBase:d,className:c,onClick:u}){let m,p=(0,s.useAgentStore)(e=>e.agents),[h,x]=(0,a.useState)(!1),[f,g]=(0,a.useState)(!1),v=e?p.find(t=>t.id===e):void 0,b=i||v?.name||e||"?",y=o??v?.avatarUrl,w=d??v?.apiBase,k=!h&&(0,n.resolveServerAssetUrl)(y)||(f?"":(m=function(e){if(!e)return"";for(let[t,a]of l)if(t.test(e))return a;return""}(w))?(0,n.resolveServerAssetUrl)(`/static/provider-icons/${m}.svg`):"");(0,a.useEffect)(()=>{x(!1),g(!1)},[y,w]);let j=b.charAt(0).toUpperCase();return(0,t.jsx)("div",{onClick:u,className:(0,r.cn)("flex items-center justify-center overflow-hidden rounded-lg bg-muted shrink-0",k&&"bg-transparent",!u&&"pointer-events-none",u&&"cursor-pointer hover:opacity-80 transition-opacity",c),children:k?(0,t.jsx)("img",{src:k,alt:b,className:"size-full object-cover rounded-[inherit]",onError:()=>{!h&&y?x(!0):g(!0)}}):(0,t.jsx)("span",{className:"text-xs font-semibold select-none",children:j})})}])},444433,e=>{"use strict";e.s(["BUILT_IN_AGENT_TOOLS",0,[{name:"CreateCurrentChannelIssue",label:"Create Current Issue",description:"Create and bind an issue for the current channel."},{name:"ViewCurrentChannelIssue",label:"View Current Issue",description:"View the issue and comments bound to the current channel."},{name:"AddCurrentChannelComment",label:"Add Current Comment",description:"Add a comment to the issue bound to the current channel."},{name:"ReadTerminalOutput",label:"Read Terminal Output",description:"Read paginated terminal output by session ID. Defaults to the newest 100 lines."},{name:"ListQuickCommands",label:"List Quick Commands",description:"List all quick commands for a workspace with their running status."},{name:"RunQuickCommand",label:"Run Quick Command",description:"Start a quick command by its ID. Returns the terminal session ID."},{name:"StopQuickCommand",label:"Stop Quick Command",description:"Stop a running quick command by its ID."},{name:"ListDatabases",label:"List Databases",description:"List knowledge base databases in the workspace and their IDs."},{name:"ListDatabaseNodes",label:"List Database Nodes",description:"List knowledge base nodes under a path, optionally filtered by title."},{name:"SearchDatabaseNodes",label:"Search Database Nodes",description:"Search knowledge base nodes by title or content under a path."},{name:"QueryDatabaseVectors",label:"Query Database Vectors",description:"Search knowledge base nodes by vector similarity using the database-bound embedding model."},{name:"ReadDatabaseNode",label:"Read Database Node",description:"Read knowledge base node metadata and content by ID."},{name:"ListDatabaseNodeVersions",label:"List Database Versions",description:"List content version history and diffs for a knowledge base node by ID."},{name:"CreateDatabaseNode",label:"Create Database Node",description:"Create a knowledge base node under a parent path or parent ID."},{name:"WriteDatabaseNode",label:"Write Database Node",description:"Insert, replace, or overwrite knowledge base node content by ID."},{name:"DeleteDatabaseNode",label:"Delete Database Node",description:"Trash or permanently delete a knowledge base node and its descendants."},{name:"MoveDatabaseNode",label:"Move Database Node",description:"Move a knowledge base node or directory to another parent path or ID."},{name:"UpdateDatabaseNodeMeta",label:"Update Database Meta",description:"Update knowledge base node metadata such as title, icon, cover, parent, or trash state."},{name:"ListKanbanBoards",label:"List Kanban Boards",description:"List Kanban boards in the workspace."},{name:"ViewKanbanBoard",label:"View Kanban Board",description:"View Kanban board metadata, columns, and tasks."},{name:"CreateKanbanBoard",label:"Create Kanban Board",description:"Create the workspace Kanban board."},{name:"UpdateKanbanBoard",label:"Update Kanban Board",description:"Update Kanban board metadata, columns, or tasks."},{name:"DeleteKanbanBoard",label:"Delete Kanban Board",description:"Delete the workspace Kanban board with its columns and tasks."}]])},683640,184591,e=>{"use strict";let t=(0,e.i(433721).default)("terminal",[["path",{d:"M12 19h8",key:"baeox8"}],["path",{d:"m4 17 6-6-6-6",key:"1yngyt"}]]);e.s(["default",0,t],184591),e.s(["Terminal",0,t],683640)},267624,e=>{"use strict";let t=(0,e.i(433721).default)("layout-grid",[["rect",{width:"7",height:"7",x:"3",y:"3",rx:"1",key:"1g98yp"}],["rect",{width:"7",height:"7",x:"14",y:"3",rx:"1",key:"6d4xhi"}],["rect",{width:"7",height:"7",x:"14",y:"14",rx:"1",key:"nxv5o0"}],["rect",{width:"7",height:"7",x:"3",y:"14",rx:"1",key:"1bb6yr"}]]);e.s(["LayoutGrid",0,t],267624)},113519,212068,119211,e=>{"use strict";var t=e.i(344180),a=e.i(764556),r=e.i(244073),n=e.i(444433),s=e.i(209988),l=e.i(260218),i=e.i(681622),o=e.i(191118),d=e.i(227634),c=e.i(683640),u=e.i(943997),m=e.i(267624),p=e.i(887354);let h=(0,e.i(433721).default)("wrench",[["path",{d:"M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.106-3.105c.32-.322.863-.22.983.218a6 6 0 0 1-8.259 7.057l-7.91 7.91a1 1 0 0 1-2.999-3l7.91-7.91a6 6 0 0 1 7.057-8.259c.438.12.54.662.219.984z",key:"1ngwbx"}]]);e.s(["default",0,h],212068),e.s(["Wrench",0,h],119211);var x=e.i(465458);let f={channel:{keys:["CreateCurrentChannelIssue","ViewCurrentChannelIssue","AddCurrentChannelComment"],icon:d.Hash},terminal:{keys:["ReadTerminalOutput","ListQuickCommands","RunQuickCommand","StopQuickCommand"],icon:c.Terminal},database:{keys:["ListDatabases","ListDatabaseNodes","SearchDatabaseNodes","QueryDatabaseVectors","ReadDatabaseNode","ListDatabaseNodeVersions","CreateDatabaseNode","WriteDatabaseNode","DeleteDatabaseNode","MoveDatabaseNode","UpdateDatabaseNodeMeta"],icon:u.Database},kanban:{keys:["ListKanbanBoards","ViewKanbanBoard","CreateKanbanBoard","UpdateKanbanBoard","DeleteKanbanBoard"],icon:m.LayoutGrid}},g=n.BUILT_IN_AGENT_TOOLS??[];e.s(["ToolsDialog",0,function({open:e,onOpenChange:n,standalone:d,selectable:c,selectedTools:u,onSelectedToolsChange:m}){let v=(0,r.useTranslations)("tools"),[b,y]=(0,a.useState)(""),[w,k]=(0,a.useState)("all"),[j,S]=(0,a.useState)(null),[N,C]=(0,a.useState)(new Set),D=c?new Set(u??N):new Set,T=e=>{let t=new Set(D);t.has(e)?t.delete(e):t.add(e),m?m(g.map(e=>e.name).filter(e=>t.has(e))):C(t)},P=(0,a.useMemo)(()=>{let e=g;if("all"!==w){let t=new Set(f[w]?.keys??[]);e=e.filter(e=>t.has(e.name))}if(b.trim()){let t=b.toLowerCase();e=e.filter(e=>e.label.toLowerCase().includes(t)||e.description.toLowerCase().includes(t))}return e},[w,b]),E=(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)(s.DialogHeader,{className:"shrink-0",children:[(0,t.jsx)(s.DialogTitle,{children:v("title")}),(0,t.jsx)(s.DialogDescription,{className:"sr-only",children:v("title")})]}),(0,t.jsxs)("div",{className:"flex-1 min-h-0 flex flex-col md:flex-row gap-4 pt-2",children:[(0,t.jsxs)("div",{className:"hidden md:flex w-44 shrink-0 flex-col gap-1",children:[(0,t.jsxs)(l.Button,{variant:"all"===w?"secondary":"ghost",size:"sm",className:"justify-start",onClick:()=>k("all"),children:[(0,t.jsx)(h,{className:"size-3.5 mr-1.5"}),v("filterAll")]}),Object.entries(f).map(([e,{icon:a}])=>(0,t.jsxs)(l.Button,{variant:w===e?"secondary":"ghost",size:"sm",className:"justify-start",onClick:()=>k(e),children:[(0,t.jsx)(a,{className:"size-3.5 mr-1.5"}),v(`categories.${e}`)]},e))]}),(0,t.jsxs)("div",{className:"flex-1 min-w-0 flex flex-col gap-3",children:[(0,t.jsxs)("div",{className:"flex md:hidden flex-col gap-2",children:[(0,t.jsxs)("div",{className:"relative",children:[(0,t.jsx)(p.Search,{className:"size-3.5 absolute left-2.5 top-1/2 -translate-y-1/2 text-muted-foreground"}),(0,t.jsx)(i.Input,{value:b,onChange:e=>y(e.target.value),placeholder:v("search"),className:"pl-8"})]}),(0,t.jsxs)("div",{className:"flex items-center gap-1.5 overflow-x-auto pb-1",children:[(0,t.jsx)("button",{type:"button",className:(0,x.cn)("shrink-0 px-2.5 py-1 rounded-md text-xs font-medium transition-colors","all"===w?"bg-muted":"text-muted-foreground hover:text-foreground","cursor-pointer"),onClick:()=>k("all"),children:v("filterAll")}),Object.entries(f).map(([e])=>(0,t.jsx)("button",{type:"button",className:(0,x.cn)("shrink-0 px-2.5 py-1 rounded-md text-xs font-medium transition-colors",w===e?"bg-muted":"text-muted-foreground hover:text-foreground","cursor-pointer"),onClick:()=>k(e),children:v(`categories.${e}`)},e))]})]}),(0,t.jsxs)("div",{className:"hidden md:block relative",children:[(0,t.jsx)(p.Search,{className:"size-3.5 absolute left-2.5 top-1/2 -translate-y-1/2 text-muted-foreground"}),(0,t.jsx)(i.Input,{value:b,onChange:e=>y(e.target.value),placeholder:v("search"),className:"pl-8"})]}),c&&P.length>0&&(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[(0,t.jsx)("span",{className:"text-xs text-muted-foreground",children:v("enabledCount",{count:P.filter(e=>D.has(e.name)).length,total:P.length})}),(0,t.jsx)(l.Button,{variant:"ghost",size:"sm",className:"h-6 text-xs",onClick:()=>{let e=P.every(e=>D.has(e.name)),t=new Set(D);e?P.forEach(e=>t.delete(e.name)):P.forEach(e=>t.add(e.name)),m?m(g.map(e=>e.name).filter(e=>t.has(e))):C(t)},children:P.every(e=>D.has(e.name))?v("deselectAll"):v("selectAll")})]}),(0,t.jsx)(o.ScrollArea,{className:"flex-1",children:0===P.length?(0,t.jsx)("div",{className:"flex items-center justify-center py-12 text-muted-foreground text-sm",children:v("empty")}):(0,t.jsx)("div",{className:"grid grid-cols-1 gap-2 pr-2",children:P.map(e=>(0,t.jsx)("div",{className:"rounded-lg border border-border bg-background px-3 py-2 hover:bg-accent/30 transition-colors cursor-pointer",onClick:()=>{c?T(e.name):S(e)},children:(0,t.jsxs)("div",{className:"flex items-start gap-2",children:[c&&(0,t.jsx)("input",{type:"checkbox",checked:D.has(e.name),onChange:()=>T(e.name),onClick:e=>e.stopPropagation(),className:"mt-0.5 size-3.5 shrink-0"}),(0,t.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,t.jsx)("span",{className:"block text-xs font-medium",children:e.label}),(0,t.jsx)("span",{className:"block text-[11px] text-muted-foreground line-clamp-2",children:e.description})]}),c&&(0,t.jsx)("button",{type:"button",className:"shrink-0 text-muted-foreground hover:text-foreground cursor-pointer",onClick:t=>{t.stopPropagation(),S(e)},children:(0,t.jsx)(p.Search,{className:"size-3"})})]})},e.name))})})]})]})]});return(0,t.jsxs)(t.Fragment,{children:[d&&e&&(0,t.jsx)("div",{className:"h-full flex flex-col",children:E}),!d&&(0,t.jsx)(s.Dialog,{open:e,onOpenChange:n,children:(0,t.jsx)(s.DialogContent,{className:"!w-[80vw] !max-w-[80vw] !h-[80vh] flex flex-col",children:E})}),(0,t.jsx)(s.Dialog,{open:!!j,onOpenChange:e=>{e||S(null)},children:(0,t.jsxs)(s.DialogContent,{children:[(0,t.jsxs)(s.DialogHeader,{children:[(0,t.jsx)(s.DialogTitle,{children:j?.label}),(0,t.jsx)(s.DialogDescription,{className:"font-mono text-xs text-muted-foreground",children:j?.name})]}),(0,t.jsx)("div",{className:"py-2",children:(0,t.jsx)("p",{className:"text-sm text-muted-foreground",children:j?.description})})]})})]})}],113519)},415360,656744,e=>{"use strict";let t=(0,e.i(433721).default)("sparkles",[["path",{d:"M11.017 2.814a1 1 0 0 1 1.966 0l1.051 5.558a2 2 0 0 0 1.594 1.594l5.558 1.051a1 1 0 0 1 0 1.966l-5.558 1.051a2 2 0 0 0-1.594 1.594l-1.051 5.558a1 1 0 0 1-1.966 0l-1.051-5.558a2 2 0 0 0-1.594-1.594l-5.558-1.051a1 1 0 0 1 0-1.966l5.558-1.051a2 2 0 0 0 1.594-1.594z",key:"1s2grr"}],["path",{d:"M20 2v4",key:"1rf3ol"}],["path",{d:"M22 4h-4",key:"gwowj6"}],["circle",{cx:"4",cy:"20",r:"2",key:"6kqj1y"}]]);e.s(["default",0,t],656744),e.s(["Sparkles",0,t],415360)},511588,e=>{"use strict";let t=(0,e.i(433721).default)("wand-sparkles",[["path",{d:"m21.64 3.64-1.28-1.28a1.21 1.21 0 0 0-1.72 0L2.36 18.64a1.21 1.21 0 0 0 0 1.72l1.28 1.28a1.2 1.2 0 0 0 1.72 0L21.64 5.36a1.2 1.2 0 0 0 0-1.72",key:"ul74o6"}],["path",{d:"m14 7 3 3",key:"1r5n42"}],["path",{d:"M5 6v4",key:"ilb8ba"}],["path",{d:"M19 14v4",key:"blhpug"}],["path",{d:"M10 2v2",key:"7u0qdc"}],["path",{d:"M7 8H3",key:"zfb6yr"}],["path",{d:"M21 16h-4",key:"1cnmox"}],["path",{d:"M11 3H9",key:"1obp7u"}]]);e.s(["WandSparkles",0,t],511588)},673478,e=>{"use strict";let t=(0,e.i(433721).default)("cpu",[["path",{d:"M12 20v2",key:"1lh1kg"}],["path",{d:"M12 2v2",key:"tus03m"}],["path",{d:"M17 20v2",key:"1rnc9c"}],["path",{d:"M17 2v2",key:"11trls"}],["path",{d:"M2 12h2",key:"1t8f8n"}],["path",{d:"M2 17h2",key:"7oei6x"}],["path",{d:"M2 7h2",key:"asdhe0"}],["path",{d:"M20 12h2",key:"1q8mjw"}],["path",{d:"M20 17h2",key:"1fpfkl"}],["path",{d:"M20 7h2",key:"1o8tra"}],["path",{d:"M7 20v2",key:"4gnj0m"}],["path",{d:"M7 2v2",key:"1i4yhu"}],["rect",{x:"4",y:"4",width:"16",height:"16",rx:"2",key:"1vbyd7"}],["rect",{x:"8",y:"8",width:"8",height:"8",rx:"1",key:"z9xiuo"}]]);e.s(["Cpu",0,t],673478)},965322,282180,e=>{"use strict";var t=e.i(344180),a=e.i(764556),r=e.i(244073),n=e.i(355819),s=e.i(260218),l=e.i(788010),i=e.i(209988),o=e.i(444433);let d=[{value:"anthropic-messages",labelKey:"anthropicMessages"},{value:"openai-chat-completions",labelKey:"openaiChatCompletions"},{value:"openai-responses",labelKey:"openaiResponses"},{value:"openai-responses-to-anthropic-messages",labelKey:"openaiResponsesToAnthropic"},{value:"openai-chat-completions-to-anthropic-messages",labelKey:"openaiChatToAnthropic"},{value:"gemini-generate-content",labelKey:"geminiGenerateContent"}],c=[{value:"claude-code",labelKey:"claudeCode"},{value:"open-agent-sdk",labelKey:"openAgentSdk"},{value:"codex",labelKey:"codex"},{value:"langchain",labelKey:"langchain"}],u=["agent","scheduler","task_creator","bot"],m=(o.BUILT_IN_AGENT_TOOLS??[]).map(e=>e.name),p=new Set(["openai-responses-to-anthropic-messages","openai-chat-completions-to-anthropic-messages"]);function h(e){return{mcpServers:Object.fromEntries(e.map(e=>[e,{}]))}}function x(e){return e.map(e=>({name:`${e}.md`,content:`# ${e}
|
|
2
|
-
`}))}let f={agent:{name:"Agent",role:"agent",description:"通用 Agent,可在 workflow 中承担任意执行节点",avatarUrl:"",runtimeKind:"claude-code",modelProvider:"anthropic-messages",modelId:"claude-sonnet-4-6",apiBase:"",apiKey:"",workingDir:"",mcps:h([]),skills:x(["coding","debugging","testing"]),tools:m,systemPrompt:"你是通用 Agent。根据 issue 和当前任务上下文完成被分配的工作,遵循项目规范,必要时修改代码、运行验证,并清晰汇报结果。",outputStyle:"",temperature:.3,maxTokens:8192,enabled:!0},scheduler:{name:"Scheduler",role:"scheduler",description:"任务调度者,负责任务分发和协调",avatarUrl:"",runtimeKind:"claude-code",modelProvider:"anthropic-messages",modelId:"claude-sonnet-4-6",apiBase:"",apiKey:"",workingDir:"",mcps:h([]),skills:x(["planning","task-split"]),tools:m,systemPrompt:"你是调度者 Agent。负责接收用户任务,分析任务类型,分发给合适的执行者。你需要跟踪任务状态,确保所有子任务按时完成。",outputStyle:"",temperature:.3,maxTokens:4096,enabled:!0},task_creator:{name:"Task Creator",role:"task_creator",description:"任务创建者,负责把 issue 拆成可执行任务",avatarUrl:"",runtimeKind:"claude-code",modelProvider:"anthropic-messages",modelId:"claude-sonnet-4-6",apiBase:"",apiKey:"",workingDir:"",mcps:h([]),skills:x(["planning","task-split"]),tools:m,systemPrompt:"你是任务创建者 Agent。负责读取 issue 上下文,把需求拆分为少量可执行任务,并用系统工具写入任务列表。只创建真正需要独立执行的任务,避免把细碎步骤拆成任务。",outputStyle:"",temperature:.3,maxTokens:4096,enabled:!0},bot:{name:"Bot Agent",role:"bot",description:"消息机器人,负责处理外部聊天平台中的用户消息",avatarUrl:"",runtimeKind:"claude-code",modelProvider:"anthropic-messages",modelId:"claude-sonnet-4-6",apiBase:"",apiKey:"",workingDir:"",mcps:{},skills:[],tools:m,systemPrompt:"你是 Agent Spaces 的消息机器人。你会简洁回答来自外部聊天平台的用户消息。不要执行危险操作;需要用户提供更多信息时直接询问。",outputStyle:"",temperature:.3,maxTokens:4096,enabled:!0}};function g(e){var t,a;return{...e,name:e.name||"New Agent",description:e.description||"",avatarUrl:e.avatarUrl||"",runtimeKind:e.runtimeKind||"open-agent-sdk",modelProvider:e.modelProvider||"",modelId:e.modelId||"claude-sonnet-4-6",apiBase:e.apiBase||"",apiKey:e.apiKey||"",workingDir:e.workingDir||"",mcps:(t=e.mcps)||{},skills:Array.isArray(a=e.skills)?a.map(e=>"string"==typeof e?{name:e.endsWith(".md")?e:`${e}.md`}:e):[],tools:function(e){if(!Array.isArray(e))return m;let t=new Set((o.BUILT_IN_AGENT_TOOLS??[]).map(e=>e.name));return e.filter(e=>t.has(e))}(e.tools),systemPrompt:e.systemPrompt||"",outputStyle:e.outputStyle||"",temperature:e.temperature??.3,maxTokens:e.maxTokens??4096,enabled:e.enabled??!0}}function v(e){let{id:t,...a}=e;return{...a,modelProvider:a.modelProvider||void 0}}function b(e){return{id:`draft-${e}-${Date.now()}`,...f[e],mcps:structuredClone(f[e].mcps),skills:f[e].skills.map(e=>({...e})),tools:[...f[e].tools]}}function y(e){return e.id.startsWith("draft-")}function w(e){return!!(e&&p.has(e))}function k({icon:e,title:a,children:r}){return(0,t.jsxs)("div",{className:"flex flex-col gap-2.5",children:[(0,t.jsxs)("div",{className:"flex items-center gap-1.5 text-xs font-medium text-muted-foreground uppercase tracking-wider",children:[e,a]}),r]})}function j({label:e,children:a}){return(0,t.jsxs)("div",{className:"flex flex-col gap-1",children:[(0,t.jsx)("label",{className:"text-xs text-muted-foreground",children:e}),a]})}function S({icon:e,title:a,action:r}){return(0,t.jsxs)("div",{className:"flex items-center justify-between gap-2 text-xs font-medium text-muted-foreground uppercase tracking-wider",children:[(0,t.jsxs)("div",{className:"flex items-center gap-1.5 min-w-0",children:[e,(0,t.jsx)("span",{className:"truncate",children:a})]}),r?(0,t.jsx)("div",{className:"shrink-0",children:r}):null]})}e.s(["FieldGroup",0,j,"PROVIDER_OPTIONS",0,d,"ROLE_COLORS",0,{agent:"bg-gray-500/10 text-gray-600 border-gray-200",scheduler:"bg-blue-500/10 text-blue-600 border-blue-200",task_creator:"bg-green-500/10 text-green-600 border-green-200",bot:"bg-cyan-500/10 text-cyan-600 border-cyan-200"},"ROLE_OPTIONS",0,u,"RUNTIME_OPTIONS",0,c,"Section",0,k,"SectionHeader",0,S,"isAnthropicBridgeProvider",0,w,"isDraftAgent",0,y,"newAgentDraft",0,b,"newEmptyAgent",0,function(){return{id:`draft-empty-${Date.now()}`,name:"",role:"agent",description:"",avatarUrl:"",runtimeKind:"claude-code",modelProvider:"",modelId:"",apiBase:"",apiKey:"",workingDir:"",mcps:{},skills:[],tools:m,systemPrompt:"",outputStyle:"",temperature:.3,maxTokens:4096,enabled:!0}},"normalizeAgent",0,g,"serializeAgent",0,v],282180);var N=e.i(368942),C=e.i(611176),D=e.i(681622),T=e.i(188815),P=e.i(465458),E=e.i(972846),M=e.i(673478),A=e.i(433721);let z=(0,A.default)("plug-zap",[["path",{d:"M6.3 20.3a2.4 2.4 0 0 0 3.4 0L12 18l-6-6-2.3 2.3a2.4 2.4 0 0 0 0 3.4Z",key:"goz73y"}],["path",{d:"m2 22 3-3",key:"19mgm9"}],["path",{d:"M7.5 13.5 10 11",key:"7xgeeb"}],["path",{d:"M10.5 16.5 13 14",key:"10btkg"}],["path",{d:"m18 3-4 4h6l-4 4",key:"16psg9"}]]);var O=e.i(451534),I=e.i(119211),R=e.i(415360),L=e.i(426022);let K=(0,A.default)("sliders-vertical",[["path",{d:"M10 8h4",key:"1sr2af"}],["path",{d:"M12 21v-9",key:"17s77i"}],["path",{d:"M12 8V3",key:"13r4qs"}],["path",{d:"M17 16h4",key:"h1uq16"}],["path",{d:"M19 12V3",key:"o1uvq1"}],["path",{d:"M19 21v-5",key:"qua636"}],["path",{d:"M3 14h4",key:"bcjad9"}],["path",{d:"M5 10V3",key:"cb8scm"}],["path",{d:"M5 21v-7",key:"1w1uti"}]]);var B=e.i(129981),H=e.i(511588),U=e.i(344118),W=e.i(613812),$=e.i(113519);function X({agent:e,roleOptions:n,testing:u,testResult:m,onChange:p,onMcpChange:h,onAddSkillFiles:x,onRemoveSkill:f,onTestConnection:g}){let v=(0,r.useTranslations)("agent"),[b,y]=(0,a.useState)(()=>JSON.stringify(e.mcps,null,2)),[w,A]=(0,a.useState)(null),[Y,V]=(0,a.useState)([]),[_,F]=(0,a.useState)(!1),[q,G]=(0,a.useState)(""),[Q,J]=(0,a.useState)(!1),[Z,ee]=(0,a.useState)(""),[et,ea]=(0,a.useState)(null),[er,en]=(0,a.useState)(!1),[es,el]=(0,a.useState)(!1),[ei,eo]=(0,a.useState)(""),{models:ed,providers:ec,ensure:eu}=(0,N.useLLMStore)(),em=ed.filter(e=>!e.embedding);(0,a.useEffect)(()=>{eu()},[eu]),(0,a.useEffect)(()=>{y(JSON.stringify(e.mcps,null,2))},[e.mcps]);let ep=(0,a.useCallback)(e=>{p("apiBase",e.apiBase),p("apiKey",e.apiKey);let t=em.filter(t=>t.provider===e.name).map(e=>({value:e.modelId,label:e.name}));V(t),t.length>0&&p("modelId",t[0].value)},[em,p]),eh=async e=>{if(!e?.length)return;let t=Array.from(e).filter(e=>e.name.toLowerCase().endsWith(".md"));x(await Promise.all(t.map(async e=>({name:e.name,content:await e.text()}))))},ex=async()=>{let t=q.trim();if(t){J(!0),ea(null);try{let a=await fetch("/api/agents/presets/optimize-prompt",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({prompt:t,currentPrompt:e.systemPrompt})}),r=await a.json();if(!a.ok)throw Error(r.error||"Failed to optimize prompt");ee(r.systemPrompt?.trim()||""),eo(e.systemPrompt),F(!1),en(!0)}catch(e){ea(e instanceof Error?e.message:"优化提示词失败")}finally{J(!1)}}},ef=e=>{F(e),e||Q||(G(""),ea(null))};return(0,t.jsxs)("div",{className:"flex flex-col gap-5 p-5",children:[(0,t.jsxs)(k,{icon:(0,t.jsx)(L.MessageSquare,{className:"size-3.5"}),title:v("detail.basic"),children:[(0,t.jsxs)("div",{className:"flex items-start gap-4",children:[(0,t.jsxs)("div",{className:"flex flex-col items-center gap-1.5",children:[(0,t.jsx)(C.AgentIcon,{name:e.name,avatarUrl:e.avatarUrl,apiBase:e.apiBase,className:"size-16 rounded-xl border border-input"}),(0,t.jsxs)("label",{className:"text-[10px] text-primary cursor-pointer hover:underline",children:[v("detail.uploadAvatar"),(0,t.jsx)("input",{type:"file",accept:"image/*",className:"hidden",onChange:async e=>{let t=e.target.files?.[0];if(!t)return;let a=new FileReader;a.onload=async()=>{try{let e=await fetch("/api/upload/avatar",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({dataUrl:a.result,filename:t.name})}),r=await e.json();r.url&&p("avatarUrl",r.url)}catch{}},a.readAsDataURL(t),e.target.value=""}})]}),e.avatarUrl&&(0,t.jsx)("button",{type:"button",className:"text-[10px] text-destructive hover:underline cursor-pointer",onClick:()=>p("avatarUrl",""),children:v("detail.removeAvatar")})]}),(0,t.jsxs)("div",{className:"flex flex-1 flex-col gap-2.5",children:[(0,t.jsx)(j,{label:v("detail.name"),children:(0,t.jsx)(D.Input,{value:e.name,onChange:e=>p("name",e.target.value)})}),(0,t.jsx)(j,{label:v("detail.role"),children:(0,t.jsx)("select",{value:e.role,onChange:e=>p("role",e.target.value),className:"h-8 w-full rounded-lg border border-input bg-transparent px-2.5 text-sm outline-none focus-visible:border-ring dark:bg-input/30",children:n.map(e=>(0,t.jsx)("option",{value:e,children:e},e))})})]})]}),(0,t.jsx)(j,{label:v("detail.description"),children:(0,t.jsx)(D.Input,{value:e.description,onChange:e=>p("description",e.target.value)})}),(0,t.jsx)(j,{label:v("detail.agentRuntime"),children:(0,t.jsx)(T.SearchSelect,{value:e.runtimeKind??"",onChange:e=>p("runtimeKind",e),options:c.map(e=>({value:e.value,label:v(`runtime.${e.labelKey}`)})),placeholder:v("detail.runtimePlaceholder"),searchPlaceholder:v("detail.runtimeSearchPlaceholder"),allowCustom:!1})})]}),(0,t.jsx)(k,{icon:(0,t.jsx)(O.FolderOpen,{className:"size-3.5"}),title:v("detail.workingDirectory"),children:(0,t.jsx)(D.Input,{value:e.workingDir,onChange:e=>p("workingDir",e.target.value),placeholder:v("detail.workingDirPlaceholder")})}),(0,t.jsxs)("div",{className:"flex flex-col gap-2.5",children:[(0,t.jsx)(S,{icon:(0,t.jsx)(R.Sparkles,{className:"size-3.5"}),title:v("detail.systemPrompt"),action:(0,t.jsxs)(s.Button,{type:"button",variant:"ghost",size:"sm",className:"h-6 px-2 text-xs",onClick:()=>F(!0),children:[(0,t.jsx)(H.WandSparkles,{className:"size-3.5"}),v("detail.optimizePrompt")]})}),(0,t.jsx)(l.Textarea,{value:e.systemPrompt,onChange:e=>p("systemPrompt",e.target.value),placeholder:v("detail.systemPromptPlaceholder"),className:"min-h-24 text-xs"})]}),(0,t.jsx)(k,{icon:(0,t.jsx)(R.Sparkles,{className:"size-3.5"}),title:v("detail.outputStyle"),children:(0,t.jsx)(l.Textarea,{value:e.outputStyle,onChange:e=>p("outputStyle",e.target.value),placeholder:v("detail.outputStylePlaceholder"),className:"min-h-24 text-xs"})}),(0,t.jsxs)(k,{icon:(0,t.jsx)(I.Wrench,{className:"size-3.5"}),title:v("detail.mcpServers"),children:[(0,t.jsx)(l.Textarea,{value:b,onChange:e=>(e=>{y(e);try{let t=JSON.parse(e);if(!t||"object"!=typeof t||Array.isArray(t))throw Error("MCP config must be a JSON object");A(null),h(t)}catch(e){A(e instanceof Error?e.message:"Invalid JSON")}})(e.target.value),placeholder:'{\n "mcpServers": {}\n}',className:"min-h-28 font-mono text-xs"}),w&&(0,t.jsx)("div",{className:"text-xs text-destructive",children:w})]}),(0,t.jsxs)(k,{icon:(0,t.jsx)(I.Wrench,{className:"size-3.5"}),title:v("detail.tools"),children:[(0,t.jsx)(s.Button,{variant:"outline",size:"sm",className:"w-full",onClick:()=>el(!0),children:v("detail.enabledToolsCount",{count:e.tools.length,total:(o.BUILT_IN_AGENT_TOOLS??[]).length})}),(0,t.jsx)($.ToolsDialog,{open:es,onOpenChange:el,selectable:!0,selectedTools:e.tools,onSelectedToolsChange:e=>p("tools",e)})]}),(0,t.jsxs)(k,{icon:(0,t.jsx)(M.Cpu,{className:"size-3.5"}),title:v("detail.skills"),children:[(0,t.jsx)("div",{className:"mb-2 flex flex-wrap gap-1.5",children:e.skills.map((e,a)=>(0,t.jsxs)("span",{className:"inline-flex items-center gap-1 rounded-md border px-2 py-0.5 text-xs font-medium text-foreground",children:[e.name,(0,t.jsx)("button",{type:"button",onClick:()=>f(a),className:"hover:text-destructive cursor-pointer",children:(0,t.jsx)(E.X,{className:"size-2.5"})})]},a))}),(0,t.jsxs)("label",{className:"flex h-8 cursor-pointer items-center justify-center gap-2 rounded-lg border border-dashed border-input text-xs text-muted-foreground hover:bg-muted/50",children:[(0,t.jsx)(B.Upload,{className:"size-3.5"}),v("detail.uploadSkills"),(0,t.jsx)("input",{type:"file",accept:".md,text/markdown",multiple:!0,className:"hidden",onChange:e=>{eh(e.target.files),e.target.value=""}})]})]}),(0,t.jsxs)(k,{icon:(0,t.jsx)(K,{className:"size-3.5"}),title:v("detail.model"),children:[(0,t.jsxs)("div",{className:"space-y-2.5",children:[(0,t.jsx)(j,{label:v("detail.provider"),children:(0,t.jsx)(T.SearchSelect,{value:ec.find(t=>t.apiBase===e.apiBase&&t.apiKey===e.apiKey)?.name||"",onChange:e=>{let t=ec.find(t=>t.name===e);t&&ep(t)},options:ec.map(e=>({value:e.name,label:e.name})),placeholder:v("detail.providerPlaceholder"),searchPlaceholder:v("detail.providerSearchPlaceholder"),allowCustom:!1})}),(0,t.jsx)(j,{label:v("detail.modelField"),children:(0,t.jsx)(T.SearchSelect,{value:e.modelId,onChange:e=>p("modelId",e),options:Y.length>0?Y:[{value:e.modelId||"",label:e.modelId||v("detail.selectProviderFirst")}],placeholder:v("detail.modelPlaceholder"),searchPlaceholder:v("detail.modelSearchPlaceholder")})}),(0,t.jsx)(j,{label:v("detail.apiMessageType"),children:(0,t.jsx)(T.SearchSelect,{value:e.modelProvider||"",onChange:e=>p("modelProvider",e),options:d.map(e=>({value:e.value,label:v(`provider.${e.labelKey}`)})),placeholder:v("detail.apiMessageTypePlaceholder"),searchPlaceholder:v("detail.apiMessageTypeSearchPlaceholder"),allowCustom:!1})}),(0,t.jsx)(j,{label:v("detail.apiBase"),children:(0,t.jsx)(D.Input,{value:e.apiBase,onChange:e=>p("apiBase",e.target.value),placeholder:v("detail.apiBasePlaceholder"),className:"h-7 text-xs"})}),(0,t.jsx)(j,{label:v("detail.apiKey"),children:(0,t.jsx)(D.Input,{type:"password",value:e.apiKey,onChange:e=>p("apiKey",e.target.value),placeholder:v("detail.apiKeyPlaceholder"),className:"h-7 text-xs"})})]}),(0,t.jsxs)("div",{className:"flex items-center justify-between gap-3",children:[(0,t.jsx)("div",{className:"text-xs text-muted-foreground",children:v("detail.validateHelper")}),(0,t.jsxs)(s.Button,{type:"button",variant:"outline",size:"sm",onClick:g,disabled:u||!e.apiBase||!e.apiKey||!e.modelId,children:[(0,t.jsx)(z,{className:"size-3.5"}),u?v("detail.testing"):v("detail.test")]})]}),m&&(0,t.jsxs)("div",{className:(0,P.cn)("rounded-md border px-3 py-2 text-xs",m.success?"border-green-500/30 bg-green-500/10 text-green-700":"border-destructive/30 bg-destructive/10 text-destructive"),children:[m.message,m.debug&&(0,t.jsxs)("div",{className:"mt-2 space-y-1 font-mono text-[10px] opacity-80",children:[m.debug.status&&(0,t.jsxs)("div",{children:[v("debug.status")," ",m.debug.status]}),m.debug.provider&&(0,t.jsxs)("div",{children:[v("debug.provider")," ",m.debug.provider]}),m.debug.requestUrl&&(0,t.jsxs)("div",{children:[v("debug.url")," ",m.debug.requestUrl]}),m.debug.model&&(0,t.jsxs)("div",{children:[v("debug.model")," ",m.debug.model]}),m.debug.responseBody&&(0,t.jsxs)("div",{className:"max-h-20 overflow-auto whitespace-pre-wrap",children:[v("debug.body")," ",m.debug.responseBody]})]})]}),(0,t.jsxs)("div",{className:"grid grid-cols-2 gap-3",children:[(0,t.jsx)(j,{label:v("detail.temperature"),children:(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("input",{type:"range",min:0,max:2,step:.1,value:e.temperature,onChange:e=>p("temperature",parseFloat(e.target.value)),className:"flex-1"}),(0,t.jsx)("span",{className:"w-8 text-right font-mono text-xs",children:e.temperature})]})}),(0,t.jsx)(j,{label:v("detail.maxTokens"),children:(0,t.jsx)(D.Input,{type:"number",value:e.maxTokens,onChange:e=>p("maxTokens",parseInt(e.target.value)||0),className:"h-7 text-xs"})})]})]}),(0,t.jsx)(i.Dialog,{open:_,onOpenChange:ef,children:(0,t.jsxs)(i.DialogContent,{className:"sm:max-w-lg",children:[(0,t.jsxs)(i.DialogHeader,{children:[(0,t.jsx)(i.DialogTitle,{children:v("detail.optimizePrompt")}),(0,t.jsx)(i.DialogDescription,{children:v("detail.optimizePromptDescription")})]}),(0,t.jsx)(l.Textarea,{value:q,onChange:e=>G(e.target.value),placeholder:v("detail.optimizePromptPlaceholder"),className:"min-h-32 text-sm"}),et&&(0,t.jsx)("div",{className:"rounded-md border border-destructive/30 bg-destructive/10 px-3 py-2 text-xs text-destructive",children:et}),(0,t.jsxs)(i.DialogFooter,{children:[(0,t.jsx)(s.Button,{variant:"outline",onClick:()=>ef(!1),disabled:Q,children:v("detail.cancel")}),(0,t.jsx)(s.Button,{onClick:ex,disabled:Q||!q.trim(),children:Q?v("detail.optimizing"):v("detail.optimizeConfirm")})]})]})}),(0,t.jsx)(i.Dialog,{open:er,onOpenChange:en,children:(0,t.jsxs)(i.DialogContent,{className:"!w-[min(92vw,1200px)] !max-w-[min(92vw,1200px)] !h-[85vh] flex flex-col gap-0 overflow-hidden p-0",children:[(0,t.jsxs)(i.DialogHeader,{className:"border-b px-4 py-3",children:[(0,t.jsx)(i.DialogTitle,{children:v("detail.optimizePreviewTitle")}),(0,t.jsx)(i.DialogDescription,{children:v("detail.optimizePreviewDescription")})]}),(0,t.jsxs)("div",{className:"grid min-h-0 flex-1 grid-cols-1 lg:grid-cols-2",children:[(0,t.jsx)("div",{className:"min-h-0 border-b lg:border-b-0 lg:border-r",children:(0,t.jsx)(W.DiffViewer,{oldContent:ei,newContent:Z,path:"system-prompt.md"})}),(0,t.jsxs)("div",{className:"flex min-h-0 flex-col border-t lg:border-t-0",children:[(0,t.jsxs)("div",{className:"border-b px-4 py-3",children:[(0,t.jsx)("div",{className:"text-xs font-medium uppercase tracking-wider text-muted-foreground",children:v("detail.optimizeRequest")}),(0,t.jsx)("div",{className:"mt-2 whitespace-pre-wrap text-sm text-foreground",children:q})]}),(0,t.jsxs)("div",{className:"flex-1 min-h-0 overflow-auto px-4 py-3",children:[(0,t.jsx)("div",{className:"mb-2 text-xs font-medium uppercase tracking-wider text-muted-foreground",children:v("detail.optimizedPrompt")}),(0,t.jsx)("pre",{className:"whitespace-pre-wrap text-sm leading-6 text-foreground",children:Z})]})]})]}),(0,t.jsxs)(i.DialogFooter,{className:"border-t m-1",children:[(0,t.jsxs)(s.Button,{variant:"outline",onClick:()=>en(!1),children:[(0,t.jsx)(E.X,{className:"size-3.5"}),v("detail.cancel")]}),(0,t.jsxs)(s.Button,{onClick:()=>{Z.trim()&&(p("systemPrompt",Z),en(!1),ee(""),eo(""),G(""))},children:[(0,t.jsx)(U.Check,{className:"size-3.5"}),v("detail.applyOptimizedPrompt")]})]})]})})]})}let Y=(0,a.forwardRef)(function({agent:e,roleOptions:o=u,onSaved:d,onBack:c,showFooter:m=!0,autoOpenGenerate:p=!1,presetBasePath:h="/api/agents/presets"},x){let f=(0,r.useTranslations)("agent"),k=(0,r.useTranslations)("common"),[j,S]=(0,a.useState)({...e}),[N,C]=(0,a.useState)(!1),[D,T]=(0,a.useState)(!1),[P,E]=(0,a.useState)(null),[M,A]=(0,a.useState)(null),[z,O]=(0,a.useState)(0),[I,R]=(0,a.useState)(p),[L,K]=(0,a.useState)(""),[B,H]=(0,a.useState)(!1);(0,a.useImperativeHandle)(x,()=>({reset(){S(t=>{if(!t)return{...e};let{modelProvider:a,modelId:r,apiBase:n,apiKey:s,runtimeKind:l}=t;return{...e,modelProvider:a,modelId:r,apiBase:n,apiKey:s,runtimeKind:l}}),E(null),O(e=>e+1)},openGenerate(){R(!0)}}));let U=async()=>{if(j){C(!0),A(null);try{let e=y(j),t=v(j),a=await fetch(e?h:`${h}/${j.id}`,{method:e?"POST":"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(e?t:j)});if(!a.ok)throw Error(await a.text());let r=await a.json(),s=g(r);"/api/agents/presets"===h&&n.useAgentStore.setState(t=>({agents:e?[...t.agents,r]:t.agents.map(e=>e.id===r.id?r:e)})),d(s)}catch{A(f("error.saveFailed"))}finally{C(!1)}}},W=async()=>{if(j){T(!0),E(null),A(null);try{let e=await fetch(`${h}/test-connection`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(j)}),t=await e.json();E({success:!!t.success,message:t.message||t.error||f("error.connectionTestFailed"),debug:t.debug?{...t.debug,status:e.status}:{status:e.status}})}catch(e){E({success:!1,message:e instanceof Error?e.message:f("error.connectionTestFailed")})}finally{T(!1)}}},$=async()=>{let e=L.trim();if(e){H(!0),A(null);try{let t=await fetch(`${h}/generate`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({prompt:e})}),a=await t.json();if(!t.ok)throw Error(a.error||"Failed to generate agent");let r=j??b(o[0]??"agent"),n={...r,name:a.name?.trim()||r.name,description:a.description?.trim()||r.description,systemPrompt:a.systemPrompt?.trim()||r.systemPrompt};S(n),R(!1),K(""),E(null)}catch(e){A(e instanceof Error?e.message:"智能创建 Agent 失败")}finally{H(!1)}}};return(0,t.jsxs)(t.Fragment,{children:[M&&(0,t.jsx)("div",{className:"mx-5 mt-4 rounded-md border border-destructive/30 bg-destructive/10 px-3 py-2 text-xs text-destructive",children:M}),(0,t.jsx)("div",{className:"flex-1 overflow-y-auto",children:(0,t.jsx)(X,{agent:j,roleOptions:o,testing:D,testResult:P,onChange:(e,t)=>{S(a=>a?"modelProvider"===e?{...a,modelProvider:t,runtimeKind:w(t)?"claude-code":a.runtimeKind}:"runtimeKind"===e?{...a,runtimeKind:t}:{...a,[e]:t}:a)},onMcpChange:e=>{S(t=>t?{...t,mcps:e}:t)},onAddSkillFiles:e=>{if(!j)return;let t=new Set(j.skills.map(e=>e.name));S(a=>a?{...a,skills:[...a.skills.filter(t=>!e.some(e=>e.name===t.name)),...e.filter(e=>e.name&&!t.has(e.name)),...e.filter(e=>t.has(e.name))]}:a)},onRemoveSkill:e=>{j&&S(t=>t?{...t,skills:t.skills.filter((t,a)=>a!==e)}:t)},onTestConnection:W},`${j.id}-${z}`)}),m&&(0,t.jsxs)("div",{className:"flex justify-end gap-2 border-t px-5 py-3",children:[(0,t.jsx)(s.Button,{variant:"outline",size:"sm",onClick:c,disabled:N,children:k("cancel")}),(0,t.jsx)(s.Button,{size:"sm",onClick:U,disabled:N,children:k(N?"saving":"save")})]}),(0,t.jsx)(i.Dialog,{open:I,onOpenChange:R,children:(0,t.jsxs)(i.DialogContent,{className:"sm:max-w-lg",children:[(0,t.jsxs)(i.DialogHeader,{children:[(0,t.jsx)(i.DialogTitle,{children:"智能创建 Agent"}),(0,t.jsx)(i.DialogDescription,{children:"输入 Agent 的职责、使用场景和约束,系统会生成名称、描述和 Markdown 系统提示。"})]}),(0,t.jsx)(l.Textarea,{value:L,onChange:e=>K(e.target.value),placeholder:"例如:创建一个代码评审 Agent,专注发现 TypeScript/React 项目中的缺陷、回归风险和缺失测试。",className:"min-h-32 text-sm"}),(0,t.jsxs)(i.DialogFooter,{children:[(0,t.jsx)(s.Button,{variant:"outline",onClick:()=>R(!1),disabled:B,children:k("cancel")}),(0,t.jsx)(s.Button,{onClick:$,disabled:B||!L.trim(),children:B?"生成中...":"生成"})]})]})})]})});e.s(["AgentEditor",0,Y],965322)}]);
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,177053,e=>{"use strict";var t=e.i(344180),n=e.i(523592);{let e=window.fetch,t="__api_patched__";window[t]||(window[t]=!0,window.fetch=function(t,r){if("string"==typeof t&&t.startsWith("/api/")){let e=(0,n.getActiveServerUrl)();e&&(t=`${e}${t}`)}return e.call(window,t,r)})}var r=e.i(764556),a=e.i(799543),s=e.i(437122),i=e.i(233297),o=e.i(286117);e.s(["AuthGuard",0,function({children:e}){let n=(0,a.usePathname)(),l=(0,a.useRouter)(),[c,d]=(0,r.useState)(!1),u=(0,o.isLoginPath)(n);return((0,r.useEffect)(()=>{if(u)return void d(!0);if(!(0,s.isAuthenticated)())return void(0,i.tauriNavigate)(l,"/login",!0);let e=(0,s.getToken)();fetch("/api/auth/check",{headers:null!==e?{Authorization:`Bearer ${e}`}:{}}).then(e=>401===e.status||403===e.status?((0,s.removeToken)(),(0,i.tauriNavigate)(l,"/login",!0),null):e.ok?e.json():{authenticated:!0}).then(e=>{null!==e&&(e.authenticated?d(!0):((0,s.removeToken)(),(0,i.tauriNavigate)(l,"/login",!0)))}).catch(()=>d(!0))},[u,l]),u||c)?(0,t.jsx)(t.Fragment,{children:e}):null}],177053)},640376,e=>{"use strict";let t=(0,e.i(816709).create)((e,t)=>({open:!1,commands:[],setOpen:t=>e({open:t}),toggle:()=>e(e=>({open:!e.open})),register:n=>(e(e=>e.commands.some(e=>e.id===n.id)?e:{commands:[...e.commands,n]}),()=>t().unregister(n.id)),registerMany:t=>{let n=new Set(t.map(e=>e.id));return e(e=>({commands:[...e.commands.filter(e=>!n.has(e.id)),...t]})),()=>e(e=>({commands:e.commands.filter(e=>!n.has(e.id))}))},unregister:t=>e(e=>({commands:e.commands.filter(e=>e.id!==t)}))}));e.s(["useCommandPalette",0,t])},478189,(e,t,n)=>{"use strict";t.exports="/__open-stack-frame-in-editor"},994876,e=>{"use strict";var t=e.i(344180),n=e.i(799543),r=e.i(764556),a=e.i(370383),s=e.i(928542),i=e.i(294237),o=e.i(564822),l=e.i(465458),c=e.i(260218),d=e.i(681622);e.i(362962);var u=e.i(14452);e.i(613087);var m=e.i(638322),p=e.i(651850),p=p;let f="sidebar_state",h=r.createContext(null);function g(){let e=r.useContext(h);if(!e)throw Error("useSidebar must be used within a SidebarProvider.");return e}function x({defaultOpen:e=!0,open:n,onOpenChange:a,className:s,style:i,children:c,...d}){let u=(0,o.useIsMobile)(),[m,p]=r.useState(!1),[g,v]=r.useState(e),b=n??g;r.useEffect(()=>{if(void 0!==n)return;let e=document.cookie.match(RegExp(`(?:^|; )${f}=([^;]*)`));e&&v("true"===e[1])},[n]);let w=r.useCallback(e=>{let t="function"==typeof e?e(b):e;a?a(t):v(t),document.cookie=`${f}=${t}; path=/; max-age=604800`},[a,b]),j=r.useCallback(()=>u?p(e=>!e):w(e=>!e),[u,w,p]);r.useEffect(()=>{let e=e=>{"b"===e.key&&(e.metaKey||e.ctrlKey)&&(e.preventDefault(),j())};return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[j]);let y=b||u&&m?"expanded":"collapsed",N=r.useMemo(()=>({state:y,open:b,setOpen:w,isMobile:u,openMobile:m,setOpenMobile:p,toggleSidebar:j}),[y,b,w,u,m,p,j]);return(0,t.jsx)(h.Provider,{value:N,children:(0,t.jsx)("div",{"data-slot":"sidebar-wrapper",style:{"--sidebar-width":"16rem","--sidebar-width-icon":"3rem",...i},className:(0,l.cn)("group/sidebar-wrapper flex min-h-svh w-full has-data-[variant=inset]:bg-sidebar",s),...d,children:c})})}function v({side:e="left",variant:n="sidebar",collapsible:r="offcanvas",className:a,children:s,dir:i,...o}){let{isMobile:c,state:d,openMobile:m,setOpenMobile:p}=g();return"none"===r?(0,t.jsx)("div",{"data-slot":"sidebar",className:(0,l.cn)("flex h-full w-(--sidebar-width) flex-col bg-sidebar text-sidebar-foreground",a),...o,children:s}):c?(0,t.jsx)(u.Sheet,{open:m,onOpenChange:p,...o,children:(0,t.jsxs)(u.SheetContent,{dir:i,"data-sidebar":"sidebar","data-slot":"sidebar","data-mobile":"true",className:"w-(--sidebar-width) bg-sidebar p-0 text-sidebar-foreground [&>button]:hidden",style:{"--sidebar-width":"18rem"},side:e,children:[(0,t.jsxs)(u.SheetHeader,{className:"sr-only",children:[(0,t.jsx)(u.SheetTitle,{children:"Sidebar"}),(0,t.jsx)(u.SheetDescription,{children:"Displays the mobile sidebar."})]}),(0,t.jsx)("div",{className:"flex h-full w-full flex-col",children:s})]})}):(0,t.jsxs)("div",{className:"group peer hidden text-sidebar-foreground md:block","data-state":d,"data-collapsible":"collapsed"===d?r:"","data-variant":n,"data-side":e,"data-slot":"sidebar",children:[(0,t.jsx)("div",{"data-slot":"sidebar-gap",className:(0,l.cn)("relative w-(--sidebar-width) bg-transparent transition-[width] duration-200 ease-linear","group-data-[collapsible=offcanvas]:w-0","group-data-[side=right]:rotate-180","floating"===n||"inset"===n?"group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4)))]":"group-data-[collapsible=icon]:w-(--sidebar-width-icon)")}),(0,t.jsx)("div",{"data-slot":"sidebar-container","data-side":e,className:(0,l.cn)("fixed inset-y-0 z-10 hidden h-svh w-(--sidebar-width) transition-[left,right,width] duration-200 ease-linear data-[side=left]:left-0 data-[side=left]:group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)] data-[side=right]:right-0 data-[side=right]:group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)] md:flex","floating"===n||"inset"===n?"group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4))+2px)]":"group-data-[collapsible=icon]:w-(--sidebar-width-icon) group-data-[side=left]:border-r group-data-[side=right]:border-l",a),...o,children:(0,t.jsx)("div",{"data-sidebar":"sidebar","data-slot":"sidebar-inner",className:"flex size-full flex-col overflow-hidden group-data-[variant=floating]:rounded-xl group-data-[variant=floating]:bg-transparent",children:s})})]})}function b({className:e,onClick:n,...r}){let{toggleSidebar:a}=g();return(0,t.jsxs)(c.Button,{"data-sidebar":"trigger","data-slot":"sidebar-trigger",variant:"ghost",size:"icon-sm",className:(0,l.cn)(e),onClick:e=>{n?.(e),a()},...r,children:[(0,t.jsx)(p.default,{}),(0,t.jsx)("span",{className:"sr-only",children:"Toggle Sidebar"})]})}function w({className:e,...n}){return(0,t.jsx)("main",{"data-slot":"sidebar-inset",className:(0,l.cn)("relative flex w-full flex-1 flex-col bg-background md:peer-data-[variant=inset]:m-2 md:peer-data-[variant=inset]:ml-0 md:peer-data-[variant=inset]:rounded-xl md:peer-data-[variant=inset]:shadow-sm md:peer-data-[variant=inset]:peer-data-[state=collapsed]:ml-2",e),...n})}function j({className:e,...n}){return(0,t.jsx)("div",{"data-slot":"sidebar-header","data-sidebar":"header",className:(0,l.cn)("flex flex-col gap-2 p-2 shrink-0",e),...n})}function y({className:e,...n}){return(0,t.jsx)("div",{"data-slot":"sidebar-footer","data-sidebar":"footer",className:(0,l.cn)("flex flex-col gap-2 p-2 shrink-0",e),...n})}function N({className:e,...n}){return(0,t.jsx)("div",{"data-slot":"sidebar-content","data-sidebar":"content",className:(0,l.cn)("flex min-h-0 flex-1 flex-col gap-0 overflow-auto group-data-[collapsible=icon]:overflow-hidden",e),...n})}function k({className:e,...n}){return(0,t.jsx)("ul",{"data-slot":"sidebar-menu","data-sidebar":"menu",className:(0,l.cn)("flex w-full min-w-0 flex-col gap-0",e),...n})}function S({className:e,...n}){return(0,t.jsx)("li",{"data-slot":"sidebar-menu-item","data-sidebar":"menu-item",className:(0,l.cn)("group/menu-item relative",e),...n})}let C=(0,i.cva)("peer/menu-button group/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left text-sm ring-sidebar-ring outline-hidden transition-[width,height,padding] group-has-data-[sidebar=menu-action]/menu-item:pr-8 group-data-[collapsible=icon]:size-8! group-data-[collapsible=icon]:p-2! hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-open:hover:bg-sidebar-accent data-open:hover:text-sidebar-accent-foreground data-active:bg-sidebar-accent data-active:font-medium data-active:text-sidebar-accent-foreground [&_svg]:size-4 [&_svg]:shrink-0 [&>span:last-child]:truncate",{variants:{variant:{default:"hover:bg-sidebar-accent hover:text-sidebar-accent-foreground",outline:"bg-background shadow-[0_0_0_1px_hsl(var(--sidebar-border))] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground hover:shadow-[0_0_0_1px_hsl(var(--sidebar-accent))]"},size:{default:"h-8 text-sm",sm:"h-7 text-xs",lg:"h-12 text-sm group-data-[collapsible=icon]:p-0!"}},defaultVariants:{variant:"default",size:"default"}});function E({render:e,isActive:n=!1,variant:r="default",size:i="default",tooltip:o,className:c,...d}){let{isMobile:u,state:p}=g(),f=(0,s.useRender)({defaultTagName:"button",props:(0,a.mergeProps)({className:(0,l.cn)(C({variant:r,size:i}),c)},d),render:o?(0,t.jsx)(m.TooltipTrigger,{render:e}):e,state:{slot:"sidebar-menu-button",sidebar:"menu-button",size:i,active:n}});return o?("string"==typeof o&&(o={children:o}),(0,t.jsxs)(m.Tooltip,{children:[f,(0,t.jsx)(m.TooltipContent,{side:"right",align:"center",hidden:"collapsed"!==p||u,...o})]})):f}function D({className:e,...n}){return(0,t.jsx)("ul",{"data-slot":"sidebar-menu-sub","data-sidebar":"menu-sub",className:(0,l.cn)("mx-3.5 flex min-w-0 translate-x-px flex-col gap-1 border-l border-sidebar-border px-2.5 py-0.5 group-data-[collapsible=icon]:hidden",e),...n})}function I({render:e,size:t="md",isActive:n=!1,className:r,...i}){return(0,s.useRender)({defaultTagName:"a",props:(0,a.mergeProps)({className:(0,l.cn)("flex h-7 min-w-0 -translate-x-px items-center gap-2 overflow-hidden rounded-md px-2 text-sidebar-foreground ring-sidebar-ring outline-hidden group-data-[collapsible=icon]:hidden hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[size=md]:text-sm data-[size=sm]:text-xs data-active:bg-sidebar-accent data-active:text-sidebar-accent-foreground [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0 [&>svg]:text-sidebar-accent-foreground",r)},i),render:e,state:{slot:"sidebar-menu-sub-button",sidebar:"menu-sub-button",size:t,active:n}})}var M=e.i(244073),T=e.i(233297),P=e.i(341807),z=e.i(411649),A=e.i(451534),O=e.i(939760),L=e.i(325443),_=e.i(990336),R=e.i(100559),$=e.i(962562),F=e.i(137340),W=e.i(244644),B=e.i(327962),U=e.i(415360),H=e.i(426022),K=e.i(191202),V=e.i(433721);let q=(0,V.default)("panel-left-close",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M9 3v18",key:"fh3hqa"}],["path",{d:"m16 15-3-3 3-3",key:"14y99z"}]]);var X=e.i(227634),G=e.i(592039),J=e.i(164202),Y=e.i(119211),Z=e.i(683640),Q=e.i(324216),ee=e.i(588591),et=e.i(86477),en=e.i(549705),er=e.i(238300),ea=e.i(625873),es=e.i(756638),ei=e.i(841734),eo=e.i(22906),el=e.i(887836),ec=e.i(209988),ed=e.i(191118),eu=e.i(226624),em=e.i(917955),ep=e.i(188815),ef=e.i(129981),eh=e.i(953700),eg=e.i(111343),ex=e.i(401058);let ev=(0,V.default)("arrow-right-left",[["path",{d:"m16 3 4 4-4 4",key:"1x1c3m"}],["path",{d:"M20 7H4",key:"zbl0bi"}],["path",{d:"m8 21-4-4 4-4",key:"h9nckh"}],["path",{d:"M4 17h16",key:"g4d7ey"}]]);var eb=e.i(816709),ew=e.i(437122);let ej=(0,eb.create)(e=>({hooks:[],selectedName:null,loading:!1,fetchHooks:async t=>{e({loading:!0});try{let n=await (0,ew.fetchWithAuth)(`/api/workspaces/${t}/hooks`),r=await n.json();e({hooks:r,loading:!1})}catch{e({loading:!1})}},createHook:async(t,n)=>{let r={name:n,enabled:!0,hooks:{PreToolUse:[],PostToolUse:[]}};await (0,ew.fetchWithAuth)(`/api/workspaces/${t}/hooks`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(r)}),e(e=>({hooks:[...e.hooks,r],selectedName:n}))},updateHook:async(t,n,r)=>{await (0,ew.fetchWithAuth)(`/api/workspaces/${t}/hooks/${n}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(r)}),e(e=>({hooks:e.hooks.map(e=>e.name===n?r:e)}))},deleteHook:async(t,n)=>{await (0,ew.fetchWithAuth)(`/api/workspaces/${t}/hooks/${n}`,{method:"DELETE"}),e(e=>({hooks:e.hooks.filter(e=>e.name!==n),selectedName:e.selectedName===n?null:e.selectedName}))},uploadHook:async(t,n)=>{let r=await (0,ew.fetchWithAuth)(`/api/workspaces/${t}/hooks/upload`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({content:n})}),a=await r.json();e(e=>({hooks:[...e.hooks,a],selectedName:a.name}))},applyToWorkspace:async(e,t,n)=>{await (0,ew.fetchWithAuth)(`/api/workspaces/${e}/hooks/${t}/apply`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({targetWorkspaceId:n})})},setSelectedName:t=>e({selectedName:t}),reset:()=>e({hooks:[],selectedName:null,loading:!1})}));var ey=e.i(361031);e.i(462506);let eN=(0,el.default)(()=>e.A(863812).then(e=>e.default),{loadableGenerated:{modules:[158480]},ssr:!1,loading:()=>(0,t.jsx)("div",{className:"flex items-center justify-center h-full text-muted-foreground text-sm",children:"Loading editor..."})});function ek({open:e,onOpenChange:n,standalone:a}){(0,M.useTranslations)();let{hooks:s,selectedName:i,loading:o,fetchHooks:u,createHook:m,updateHook:p,deleteHook:f,uploadHook:h,applyToWorkspace:g,setSelectedName:x}=ej(),{workspaces:v}=(0,ey.useWorkspaceStore)(),b=v[0]?.id,[w,j]=(0,r.useState)(""),[y,N]=(0,r.useState)(""),[k,S]=(0,r.useState)(!1),[C,E]=(0,r.useState)(!1),[D,I]=(0,r.useState)(!1);(0,r.useEffect)(()=>{e&&b&&u(b)},[e,b,u]);let T=s.find(e=>e.name===i);(0,r.useEffect)(()=>{T?(j(JSON.stringify(T,null,2)),I(!1)):j("")},[T]);let P=(0,r.useCallback)(async()=>{if(b&&i)try{let e=JSON.parse(w);await p(b,i,e),I(!1)}catch(e){console.error("Invalid JSON:",e instanceof Error?e.message:String(e))}},[b,i,w,p]),z=(0,r.useCallback)(async()=>{b&&y.trim()&&(await m(b,y.trim()),N(""),S(!1))},[b,y,m]),A=(0,r.useCallback)(async()=>{b&&i&&await f(b,i)},[b,i,f]),O=(0,r.useCallback)(()=>{let e=document.createElement("input");e.type="file",e.accept=".json",e.onchange=async e=>{let t=e.target.files?.[0];if(!t||!b)return;let n=await t.text();await h(b,n)},e.click()},[b,h]),L=(0,r.useCallback)(async e=>{b&&i&&(await g(b,i,e),E(!1))},[b,i,g]),_=(0,r.useCallback)(async(e,t)=>{if(!b)return;let n=s.find(t=>t.name===e);n&&await p(b,e,{...n,enabled:t})},[b,s,p]),R=(0,t.jsxs)("div",{className:"flex h-[500px]",children:[(0,t.jsxs)("div",{className:"w-52 border-r flex flex-col",children:[(0,t.jsxs)("div",{className:"p-2 border-b flex gap-1",children:[(0,t.jsx)(c.Button,{size:"sm",variant:"ghost",className:"h-7 w-7 p-0",onClick:()=>S(!0),children:(0,t.jsx)(eh.Plus,{className:"size-3.5"})}),(0,t.jsx)(c.Button,{size:"sm",variant:"ghost",className:"h-7 w-7 p-0",onClick:O,children:(0,t.jsx)(ef.Upload,{className:"size-3.5"})})]}),k&&(0,t.jsxs)("div",{className:"p-2 border-b flex gap-1",children:[(0,t.jsx)(d.Input,{value:y,onChange:e=>N(e.target.value),placeholder:"hook name",className:"h-7 text-xs",onKeyDown:e=>"Enter"===e.key&&z(),autoFocus:!0}),(0,t.jsx)(c.Button,{size:"sm",className:"h-7 text-xs",onClick:z,children:"OK"})]}),(0,t.jsx)(ed.ScrollArea,{className:"flex-1",children:o?(0,t.jsx)("div",{className:"p-3 text-xs text-muted-foreground",children:"Loading..."}):0===s.length?(0,t.jsx)("div",{className:"p-3 text-xs text-muted-foreground",children:"No hooks"}):s.map(e=>(0,t.jsxs)("div",{className:(0,l.cn)("flex items-center gap-2 px-3 py-1.5 cursor-pointer text-xs hover:bg-accent",i===e.name&&"bg-accent"),onClick:()=>x(e.name),children:[(0,t.jsx)(eu.Switch,{checked:e.enabled,onCheckedChange:t=>_(e.name,t),className:"scale-75",onClick:e=>e.stopPropagation()}),(0,t.jsx)("span",{className:"truncate flex-1",children:e.name})]},e.name))})]}),(0,t.jsx)("div",{className:"flex-1 flex flex-col",children:T?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{className:"flex items-center justify-between px-3 py-1.5 border-b",children:[(0,t.jsx)("span",{className:"text-xs font-medium",children:T.name}),(0,t.jsxs)("div",{className:"flex gap-1",children:[(0,t.jsxs)(c.Button,{size:"sm",variant:"ghost",className:"h-7 text-xs gap-1",onClick:()=>E(!0),children:[(0,t.jsx)(ev,{className:"size-3"}),"Apply"]}),(0,t.jsxs)(c.Button,{size:"sm",variant:"ghost",className:"h-7 text-xs gap-1",onClick:P,disabled:!D,children:[(0,t.jsx)(eg.Save,{className:"size-3"}),"Save"]}),(0,t.jsxs)(em.DropdownMenu,{children:[(0,t.jsx)(em.DropdownMenuTrigger,{children:(0,t.jsx)(c.Button,{size:"sm",variant:"ghost",className:"h-7 w-7 p-0",children:(0,t.jsx)(ex.MoreVertical,{className:"size-3"})})}),(0,t.jsx)(em.DropdownMenuContent,{align:"end",children:(0,t.jsxs)(em.DropdownMenuItem,{className:"text-destructive text-xs",onClick:A,children:[(0,t.jsx)(F.Trash2,{className:"size-3 mr-1"})," Delete"]})})]})]})]}),C&&(0,t.jsxs)("div",{className:"px-3 py-2 border-b bg-muted/50",children:[(0,t.jsx)("div",{className:"text-xs mb-1",children:"Apply to workspace:"}),(0,t.jsx)(ep.SearchSelect,{options:v.filter(e=>e.id!==b).map(e=>({value:e.id,label:e.name})),value:"",onChange:L,placeholder:"Select workspace..."})]}),(0,t.jsx)("div",{className:"flex-1",children:(0,t.jsx)(eN,{height:"100%",language:"json",theme:"vs-dark",value:w,onChange:e=>{j(e||""),I(!0)},options:{minimap:{enabled:!1},fontSize:12,lineNumbers:"on",scrollBeyondLastLine:!1,wordWrap:"on"}})})]}):(0,t.jsx)("div",{className:"flex items-center justify-center h-full text-sm text-muted-foreground",children:"Select a hook to edit"})})]});return a?R:(0,t.jsx)(ec.Dialog,{open:e,onOpenChange:n,children:(0,t.jsxs)(ec.DialogContent,{className:"!max-w-[80vw] p-0 overflow-hidden",children:[(0,t.jsxs)(ec.DialogHeader,{className:"px-4 pt-4",children:[(0,t.jsx)(ec.DialogTitle,{children:"Hooks"}),(0,t.jsx)(ec.DialogDescription,{children:"Manage per-tool-call hooks for this workspace"})]}),R]})})}var eS=e.i(996652),eC=e.i(460578),eE=e.i(611176),eD=e.i(887354),eI=e.i(989484),eM=e.i(973370),eT=e.i(977694),eP=e.i(239340);let ez=(0,el.default)(()=>e.A(863812).then(e=>e.default),{loadableGenerated:{modules:[158480]},ssr:!1,loading:()=>(0,t.jsx)("div",{className:"flex items-center justify-center h-full text-muted-foreground text-sm",children:"Loading editor..."})});function eA({open:e,onOpenChange:n}){let a=(0,M.useTranslations)("agentCommands"),s=(0,M.useTranslations)("common"),[i,o]=(0,r.useState)([]),[u,m]=(0,r.useState)([]),[p,f]=(0,r.useState)(!1),[h,g]=(0,r.useState)(""),[x,v]=(0,r.useState)(""),[b,w]=(0,r.useState)(""),[j,y]=(0,r.useState)(!1),[N,k]=(0,r.useState)([]),[S,C]=(0,r.useState)(null),[E,D]=(0,r.useState)(!1),[I,T]=(0,r.useState)(""),[P,z]=(0,r.useState)(""),[A,O]=(0,r.useState)(""),[L,_]=(0,r.useState)(""),[R,$]=(0,r.useState)(!1),[W,B]=(0,r.useState)(null),[U,H]=(0,r.useState)([]),[K,V]=(0,r.useState)(!1),q=(0,r.useCallback)(async()=>{try{let e=await fetch("/api/agent-commands/agents");if(e.ok){let t=await e.json();o(t),t.length>0&&!x&&O(t[0].agentId)}}catch{}},[x]),X=(0,r.useCallback)(async()=>{f(!0);try{let e=await fetch("/api/agent-commands/all");e.ok&&m(await e.json())}catch{}f(!1)},[]);(0,r.useEffect)(()=>{e&&(q(),X())},[e,q,X]);let G=Array.from(new Set(u.map(e=>e.group).filter(Boolean))),J=u.filter(e=>{if(h){let t=h.toLowerCase();if(!e.name.toLowerCase().includes(t)&&!e.content.toLowerCase().includes(t))return!1}if(x&&e.agentId!==x)return!1;if(b){if("__none__"===b){if(e.group)return!1}else if(e.group!==b)return!1}return!0}),Y=async()=>{if(0===N.length)return;let e=x||(i.length>0?i[0].agentId:"");if(e){if(1===N.length){let t=await N[0].file.text(),n=N[0].file.name.replace(/\.(md|txt|markdown)$/i,"");k([]),y(!1),C(null),D(!0),T(n),_(t),O(e),z("");return}for(let t of N){let n=await t.file.text(),r=t.file.name.replace(/\.(md|txt|markdown)$/i,"");await fetch(`/api/agent-commands/${e}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:r,content:n})})}k([]),y(!1),X()}},Z=()=>{C(null),D(!1),T(""),_(""),z("")},Q=async()=>{if(I.trim()&&L.trim()&&A){$(!0);try{S?(await fetch(`/api/agent-commands/${A}/${S.name}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({content:L,group:P})})).ok&&(Z(),X()):(await fetch(`/api/agent-commands/${A}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:I,content:L,group:P||void 0})})).ok&&(Z(),X())}catch{}$(!1)}},ee=async e=>{try{let t=e.group?`?group=${encodeURIComponent(e.group)}`:"";(await fetch(`/api/agent-commands/${e.agentId}/${e.name}${t}`,{method:"DELETE"})).ok&&X()}catch{}},et=async()=>{if(W&&0!==U.length){V(!0);try{await fetch(`/api/agent-commands/${W.agentId}/${W.name}/apply`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({group:W.group,agentIds:U})}),B(null),X()}catch{}V(!1)}},en=e&&!S&&!E&&!W,er=(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(ec.DialogHeader,{children:(0,t.jsx)("div",{className:"flex items-center justify-between pr-8",children:(0,t.jsxs)("div",{className:"hidden md:block",children:[(0,t.jsx)(ec.DialogTitle,{children:a("title")}),(0,t.jsx)(ec.DialogDescription,{children:a("description")})]})})}),(0,t.jsxs)("div",{className:"flex items-center gap-2 ml-auto shrink-0",children:[(0,t.jsxs)(eS.Popover,{open:j,onOpenChange:y,children:[(0,t.jsx)(eS.PopoverTrigger,{render:(0,t.jsxs)(c.Button,{variant:"outline",size:"sm",children:[(0,t.jsx)(ef.Upload,{className:"size-3.5 mr-1"}),a("import")]})}),(0,t.jsx)(eS.PopoverContent,{className:"w-80",align:"end",children:(0,t.jsxs)("div",{className:"space-y-3",children:[(0,t.jsx)("p",{className:"text-sm font-medium",children:a("importTitle")}),(0,t.jsx)(eC.FileUpload,{value:N,onChange:k,accept:{"text/markdown":[".md",".txt"],"":[".md",".txt"]},placeholder:a("importPlaceholder"),maxFiles:10}),(0,t.jsx)(c.Button,{size:"sm",onClick:Y,disabled:0===N.length,className:"w-full",children:a("importConfirm")})]})})]}),(0,t.jsxs)(c.Button,{variant:"outline",size:"sm",onClick:()=>{C(null),D(!0),T(""),_(""),z(""),O(x||(i.length>0?i[0].agentId:""))},children:[(0,t.jsx)(eh.Plus,{className:"size-3.5 mr-1"}),a("create")]})]}),(0,t.jsxs)("div",{className:"flex flex-1 min-h-0 gap-4 pt-2",children:[(0,t.jsx)(ed.ScrollArea,{className:"hidden md:block w-44 shrink-0",children:(0,t.jsxs)("div",{className:"flex flex-col gap-3 pr-2",children:[(0,t.jsx)("div",{className:"space-y-1",children:(0,t.jsxs)(c.Button,{variant:x||b?"ghost":"secondary",size:"sm",className:"w-full justify-start",onClick:()=>{v(""),w("")},children:[(0,t.jsx)(eI.FileText,{className:"size-3.5 mr-1.5"}),a("allAgents")]})}),i.length>0&&(0,t.jsxs)("div",{className:"space-y-1",children:[(0,t.jsx)("p",{className:"text-xs font-medium text-muted-foreground px-2",children:a("selectAgent")}),i.map(e=>(0,t.jsxs)(c.Button,{variant:x===e.agentId?"secondary":"ghost",size:"sm",className:"w-full justify-start",onClick:()=>{v(e.agentId),w("")},children:[(0,t.jsx)(eE.AgentIcon,{agentId:e.agentId,name:e.agentName,avatarUrl:e.avatarUrl,className:"size-4 mr-1.5 rounded-full"}),(0,t.jsx)("span",{className:"truncate",children:e.agentName}),(0,t.jsx)("span",{className:"ml-auto text-xs text-muted-foreground",children:e.commandCount})]},e.agentId))]}),G.length>0&&(0,t.jsxs)("div",{className:"space-y-1",children:[(0,t.jsx)("p",{className:"text-xs font-medium text-muted-foreground px-2",children:a("filterGroups")}),G.map(e=>(0,t.jsxs)(c.Button,{variant:b===e?"secondary":"ghost",size:"sm",className:"w-full justify-start",onClick:()=>{w(b===e?"":e),v("")},children:[(0,t.jsx)(eM.Folder,{className:"size-3.5 mr-1.5"}),(0,t.jsx)("span",{className:"truncate",children:e})]},e)),u.some(e=>!e.group)&&(0,t.jsxs)(c.Button,{variant:"__none__"===b?"secondary":"ghost",size:"sm",className:"w-full justify-start",onClick:()=>{w("__none__"===b?"":"__none__"),v("")},children:[(0,t.jsx)(eI.FileText,{className:"size-3.5 mr-1.5"}),a("filterNoGroup")]})]})]})}),(0,t.jsxs)("div",{className:"flex-1 min-w-0 flex flex-col gap-3 min-h-0",children:[(0,t.jsxs)("div",{className:"flex md:hidden flex-col gap-2",children:[(0,t.jsxs)("div",{className:"relative",children:[(0,t.jsx)(eD.Search,{className:"size-3.5 absolute left-2.5 top-1/2 -translate-y-1/2 text-muted-foreground"}),(0,t.jsx)(d.Input,{value:h,onChange:e=>g(e.target.value),placeholder:a("search"),className:"pl-8"})]}),(0,t.jsxs)("div",{className:"flex items-center gap-2 overflow-x-auto",children:[(0,t.jsx)("button",{className:(0,l.cn)("px-2.5 py-1 rounded-md text-xs font-medium transition-colors shrink-0 border",x||b?"border-input text-muted-foreground":"bg-muted border-muted"),onClick:()=>{v(""),w("")},children:a("allAgents")}),i.slice(0,5).map(e=>(0,t.jsx)("button",{className:(0,l.cn)("px-2.5 py-1 rounded-md text-xs font-medium transition-colors shrink-0 border",x===e.agentId?"bg-muted border-muted":"border-input text-muted-foreground"),onClick:()=>{v(e.agentId),w("")},children:e.agentName},e.agentId))]})]}),(0,t.jsxs)("div",{className:"hidden md:block relative",children:[(0,t.jsx)(eD.Search,{className:"size-3.5 absolute left-2.5 top-1/2 -translate-y-1/2 text-muted-foreground"}),(0,t.jsx)(d.Input,{value:h,onChange:e=>g(e.target.value),placeholder:a("search"),className:"pl-8"})]}),(0,t.jsx)(ed.ScrollArea,{className:"flex-1 min-h-0",children:p?(0,t.jsx)("div",{className:"flex items-center justify-center py-12 text-muted-foreground text-sm",children:s("loading")}):0===J.length?(0,t.jsx)("div",{className:"flex items-center justify-center py-12 text-muted-foreground text-sm",children:a("empty")}):(0,t.jsx)("div",{className:"grid grid-cols-1 gap-3 pr-2",children:J.map(e=>{var n;let r;return(0,t.jsx)("div",{className:"rounded-xl border border-border bg-background p-4 hover:bg-accent/30 transition-colors cursor-pointer",onClick:()=>{C(e),D(!1),T(e.name),_(e.content),z(e.group),O(e.agentId)},children:(0,t.jsxs)("div",{className:"flex items-start justify-between gap-3",children:[(0,t.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,t.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,t.jsx)("span",{className:"font-medium text-sm",children:e.name}),e.group&&(0,t.jsx)("span",{className:"text-[10px] px-1.5 py-0.5 rounded-full bg-primary/10 text-primary font-medium",children:e.group}),!x&&(0,t.jsx)(eE.AgentIcon,{agentId:e.agentId,name:e.agentName||e.agentId,avatarUrl:(n=e.agentId,r=i.find(e=>e.agentId===n),r?.avatarUrl),className:"size-4 rounded-full"})]}),(0,t.jsx)("p",{className:"text-xs text-muted-foreground mt-1 line-clamp-2",children:e.content.slice(0,120).replace(/^#\s+/,"")})]}),(0,t.jsxs)("div",{className:"flex items-center gap-1 shrink-0",onClick:e=>e.stopPropagation(),children:[(0,t.jsxs)(c.Button,{variant:"outline",size:"sm",className:"h-6 px-1.5 text-xs",onClick:()=>{B(e),H([])},children:[(0,t.jsx)(eT.Rocket,{className:"size-3 mr-0.5"}),a("apply")]}),(0,t.jsxs)(em.DropdownMenu,{children:[(0,t.jsx)(em.DropdownMenuTrigger,{render:(0,t.jsx)(c.Button,{variant:"ghost",size:"icon",className:"size-7"}),children:(0,t.jsx)(ex.MoreVertical,{className:"size-3.5"})}),(0,t.jsx)(em.DropdownMenuContent,{align:"end",children:(0,t.jsxs)(em.DropdownMenuItem,{className:"text-destructive focus:text-destructive",onClick:()=>ee(e),children:[(0,t.jsx)(F.Trash2,{className:"size-3.5 mr-1.5"}),a("delete")]})})]})]})]})},`${e.agentId}-${e.group}-${e.name}`)})})})]})]})]});return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(ec.Dialog,{open:en,onOpenChange:n,children:(0,t.jsx)(ec.DialogContent,{className:"!w-[80vw] !max-w-[80vw] !h-[80vh] flex flex-col",children:er})}),(0,t.jsx)(ec.Dialog,{open:!!S||E,onOpenChange:e=>{e||Z()},children:(0,t.jsxs)(ec.DialogContent,{className:"!w-[80vw] !max-w-[80vw] !h-[80vh] flex flex-col",children:[(0,t.jsx)(ec.DialogHeader,{children:(0,t.jsxs)("div",{className:"flex items-center justify-between pr-8",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)(ec.DialogTitle,{children:S?a("editTitle",{name:S.name}):a("createTitle")}),(0,t.jsx)(ec.DialogDescription,{children:a("editDescription")})]}),(0,t.jsxs)(c.Button,{size:"sm",onClick:Q,disabled:R||!I.trim()||!L.trim(),children:[(0,t.jsx)(eg.Save,{className:"size-3.5 mr-1"}),s("save")]})]})}),(0,t.jsxs)("div",{className:"flex items-center gap-2 pb-2",children:[(0,t.jsx)(d.Input,{value:I,onChange:e=>T(e.target.value),placeholder:a("namePlaceholder"),disabled:!!S,className:"flex-1"}),(0,t.jsx)(d.Input,{value:P,onChange:e=>z(e.target.value),placeholder:a("groupPlaceholder"),className:"w-40"})]}),(0,t.jsx)("div",{className:"flex-1 min-h-0",children:(0,t.jsx)(ez,{height:"100%",language:"markdown",value:L,onChange:e=>_(e||""),theme:"vs-dark",options:{fontSize:13,minimap:{enabled:!1},scrollBeyondLastLine:!1,padding:{top:8},renderLineHighlight:"gutter",wordWrap:"on"}})})]})}),(0,t.jsx)(eP.AgentPickerDialog,{open:!!W,onClose:()=>B(null),onConfirm:et,title:a("applyTitle",{name:W?.name||""}),description:a("applyDescription"),agents:i.map(e=>({id:e.agentId,name:e.agentName,avatarUrl:e.avatarUrl})),selected:U,onToggle:e=>H(t=>t.includes(e)?t.filter(t=>t!==e):[...t,e]),cancelText:s("cancel"),confirmText:a("applyConfirm",{count:U.length}),loading:K})]})}var eO=e.i(113519),eL=e.i(256186),e_=e.i(650654),eR=e.i(249673),e$=e.i(315775),eF=e.i(267624);function eW({routes:e}){let{state:a,isMobile:s,setOpenMobile:i}=g(),o="collapsed"===a,[c,d]=(0,r.useState)(new Set),u=(0,n.useRouter)(),m=(0,M.useTranslations)("common"),p=e=>{s&&i(!1),(0,T.tauriNavigate)(u,e)};return(0,t.jsx)(k,{children:e.map(e=>{let n=!o&&c.has(e.id),r=!!e.subs?.length,a=r||!!e.onAdd;return(0,t.jsx)(S,{children:a?o?(0,t.jsxs)(eS.Popover,{children:[(0,t.jsx)(eS.PopoverTrigger,{render:(0,t.jsx)(E,{className:"justify-center text-muted-foreground hover:bg-sidebar-muted hover:text-foreground",tooltip:e.title}),children:e.icon}),(0,t.jsxs)(eS.PopoverContent,{side:"right",sideOffset:8,className:"w-56 p-1.5",children:[(0,t.jsx)("div",{className:"px-2 py-1.5 text-xs font-semibold text-muted-foreground mb-1",children:e.title}),e.subs?.map(n=>(0,t.jsxs)("div",{className:"group/sub relative flex items-center",children:[n.onClick?(0,t.jsxs)("button",{type:"button",onClick:n.onClick,className:"flex w-full items-center gap-2 rounded-md px-2 py-1.5 text-sm text-muted-foreground hover:bg-accent hover:text-accent-foreground cursor-pointer",children:[n.icon,n.title]}):(0,t.jsxs)("button",{type:"button",onClick:()=>p(n.link),className:"flex w-full items-center gap-2 rounded-md px-2 py-1.5 text-sm text-muted-foreground hover:bg-accent hover:text-accent-foreground cursor-pointer",children:[n.icon,n.title]}),n.menuItems&&n.menuItems.length>0&&(0,t.jsxs)(em.DropdownMenu,{children:[(0,t.jsx)(em.DropdownMenuTrigger,{className:"absolute right-1 flex items-center justify-center rounded-md p-0.5 opacity-0 group-hover/sub:opacity-100 hover:bg-accent transition-opacity cursor-pointer",onClick:e=>e.stopPropagation(),children:(0,t.jsx)(e$.MoreHorizontal,{className:"size-3.5 text-muted-foreground"})}),(0,t.jsx)(em.DropdownMenuContent,{align:"end",side:"right",children:n.menuItems.map(e=>(0,t.jsxs)(em.DropdownMenuItem,{variant:e.variant,onClick:e.onClick,children:[e.icon,e.label]},e.label))})]})]},`${e.id}-${n.title}`)),e.onAdd&&(0,t.jsxs)("button",{type:"button",onClick:e.onAdd,className:"flex w-full items-center gap-2 rounded-md px-2 py-1.5 text-sm text-muted-foreground hover:bg-accent hover:text-accent-foreground mt-0.5 cursor-pointer",children:[(0,t.jsx)(eh.Plus,{className:"size-3.5"}),e.addLabel??m("add")]}),e.manageLink&&(0,t.jsxs)("button",{type:"button",onClick:()=>p(e.manageLink),className:"flex w-full items-center gap-2 rounded-md px-2 py-1.5 text-sm text-muted-foreground hover:bg-accent hover:text-accent-foreground mt-0.5 cursor-pointer",children:[(0,t.jsx)(eF.LayoutGrid,{className:"size-3.5"}),m("manage")]})]})]}):(0,t.jsxs)(eL.Collapsible,{open:n,onOpenChange:t=>d(n=>{let r=new Set(n);return t?r.add(e.id):r.delete(e.id),r}),className:"w-full",children:[(0,t.jsxs)(eL.CollapsibleTrigger,{render:(0,t.jsx)(E,{className:(0,l.cn)("group/hdr flex flex-1 items-center rounded-lg px-2 transition-colors",n?"bg-sidebar-muted text-foreground":"text-muted-foreground hover:bg-sidebar-muted hover:text-foreground")}),children:[e.icon,(0,t.jsx)("span",{className:"ml-2 flex-1 text-sm font-medium",children:e.title}),r&&(0,t.jsx)("span",{children:n?(0,t.jsx)(eR.ChevronUp,{className:"size-4"}):(0,t.jsx)(e_.ChevronDown,{className:"size-4"})})]}),(0,t.jsx)(eL.CollapsibleContent,{children:(0,t.jsxs)(D,{className:"my-1 ml-3.5",children:[e.subs?.map(n=>(0,t.jsx)(S,{className:"h-auto",children:(0,t.jsxs)("div",{className:"group/sub relative flex items-center",children:[(0,t.jsx)(I,{render:n.onClick?(0,t.jsx)("button",{type:"button",onClick:n.onClick,className:"flex w-full items-center rounded-md px-4 py-1.5 text-sm font-medium text-muted-foreground hover:bg-sidebar-muted hover:text-foreground cursor-pointer"}):(0,t.jsx)("button",{type:"button",onClick:()=>p(n.link),className:"flex w-full items-center rounded-md px-4 py-1.5 text-sm font-medium text-muted-foreground hover:bg-sidebar-muted hover:text-foreground cursor-pointer"}),children:n.title}),n.menuItems&&n.menuItems.length>0&&(0,t.jsxs)(em.DropdownMenu,{children:[(0,t.jsx)(em.DropdownMenuTrigger,{className:"absolute right-1 flex items-center justify-center rounded-md p-0.5 opacity-0 group-hover/sub:opacity-100 hover:bg-sidebar-muted transition-opacity cursor-pointer",onClick:e=>e.stopPropagation(),children:(0,t.jsx)(e$.MoreHorizontal,{className:"size-3.5 text-muted-foreground"})}),(0,t.jsx)(em.DropdownMenuContent,{align:"end",side:"right",children:n.menuItems.map(e=>(0,t.jsxs)(em.DropdownMenuItem,{variant:e.variant,onClick:e.onClick,children:[e.icon,e.label]},e.label))})]})]})},`${e.id}-${n.title}`)),e.onAdd&&(0,t.jsx)(S,{children:(0,t.jsxs)("button",{type:"button",onClick:e.onAdd,className:"flex w-full items-center gap-2 rounded-md px-4 py-1.5 text-sm font-medium text-muted-foreground hover:bg-sidebar-muted hover:text-foreground cursor-pointer",children:[(0,t.jsx)(eh.Plus,{className:"size-3.5"}),e.addLabel??m("add")]})}),e.manageLink&&(0,t.jsx)(S,{children:(0,t.jsxs)("button",{type:"button",onClick:()=>p(e.manageLink),className:"flex w-full items-center gap-2 rounded-md px-4 py-1.5 text-sm font-medium text-muted-foreground hover:bg-sidebar-muted hover:text-foreground cursor-pointer",children:[(0,t.jsx)(eF.LayoutGrid,{className:"size-3.5"}),m("manage")]})})]})})]}):(0,t.jsxs)(E,{tooltip:e.title,render:(0,t.jsx)("button",{type:"button",onClick:()=>p(e.link),className:(0,l.cn)("flex items-center rounded-lg px-2 transition-colors cursor-pointer text-muted-foreground hover:bg-sidebar-muted hover:text-foreground",o&&"justify-center")}),children:[e.icon,!o&&(0,t.jsx)("span",{className:"ml-2 text-sm font-medium",children:e.title})]})},e.id)})})}var eB=e.i(36539),eB=eB,eU=e.i(875350),eH=e.i(506037),eK=e.i(487122),eV=e.i(238153),eq=e.i(492421),eX=e.i(632713),eG=e.i(539392),eJ=e.i(516467);function eY(e,t){let n=(0,eJ.toDate)(e)-(0,eJ.toDate)(t);return n<0?-1:n>0?1:n}var eZ=e.i(511518),eQ=e.i(731285),e0=e.i(936765);function e1(e,t){return function(e,t,n){var r;let a,s=(0,eq.getDefaultOptions)(),i=n?.locale??s.locale??eV.defaultLocale,o=eY(e,t);if(isNaN(o))throw RangeError("Invalid time value");let l=Object.assign({},n,{addSuffix:n?.addSuffix,comparison:o}),[c,d]=(0,eG.normalizeDates)(n?.in,...o>0?[t,e]:[e,t]),u=(r=void 0,e=>{let t=(r?Math[r]:Math.trunc)(e);return 0===t?0:t})(((0,eJ.toDate)(d)-(0,eJ.toDate)(c))/1e3),m=Math.round((u-((0,eX.getTimezoneOffsetInMilliseconds)(d)-(0,eX.getTimezoneOffsetInMilliseconds)(c))/1e3)/60);if(m<2)if(n?.includeSeconds)if(u<5)return i.formatDistance("lessThanXSeconds",5,l);else if(u<10)return i.formatDistance("lessThanXSeconds",10,l);else if(u<20)return i.formatDistance("lessThanXSeconds",20,l);else if(u<40)return i.formatDistance("halfAMinute",0,l);else if(u<60)return i.formatDistance("lessThanXMinutes",1,l);else return i.formatDistance("xMinutes",1,l);else if(0===m)return i.formatDistance("lessThanXMinutes",1,l);else return i.formatDistance("xMinutes",m,l);if(m<45)return i.formatDistance("xMinutes",m,l);if(m<90)return i.formatDistance("aboutXHours",1,l);if(m<eZ.minutesInDay){let e=Math.round(m/60);return i.formatDistance("aboutXHours",e,l)}if(m<2520)return i.formatDistance("xDays",1,l);else if(m<eZ.minutesInMonth){let e=Math.round(m/eZ.minutesInDay);return i.formatDistance("xDays",e,l)}else if(m<2*eZ.minutesInMonth)return a=Math.round(m/eZ.minutesInMonth),i.formatDistance("aboutXMonths",a,l);if((a=function(e,t){var n;let r,a,[s,i,o]=(0,eG.normalizeDates)(void 0,e,e,t),l=eY(i,o),c=Math.abs((0,eQ.differenceInCalendarMonths)(i,o));if(c<1)return 0;1===i.getMonth()&&i.getDate()>27&&i.setDate(30),i.setMonth(i.getMonth()-l*c);let d=eY(i,o)===-l;+(r=(0,eJ.toDate)(s,void 0),n=void 0,(a=(0,eJ.toDate)(r,n?.in)).setHours(23,59,59,999),a)==+(0,e0.endOfMonth)(r,void 0)&&1===c&&1===eY(s,o)&&(d=!1);let u=l*(c-d);return 0===u?0:u}(d,c))<12){let e=Math.round(m/eZ.minutesInMonth);return i.formatDistance("xMonths",e,l)}{let e=a%12,t=Math.trunc(a/12);return e<3?i.formatDistance("aboutXYears",t,l):e<9?i.formatDistance("overXYears",t,l):i.formatDistance("almostXYears",t+1,l)}}(e,(0,eK.constructFrom)(e,Date.now()),t)}let e2=(0,V.default)("check-check",[["path",{d:"M18 6 7 17l-5-5",key:"116fxf"}],["path",{d:"m22 10-7.5 7.5L13 16",key:"ke71qq"}]]),e5={issue_completed:"✓",issue_failed:"✕",task_completed:"✓",task_failed:"✕"},e3={issue_completed:"text-green-600 bg-green-100 dark:bg-green-900/30 dark:text-green-400",issue_failed:"text-red-600 bg-red-100 dark:bg-red-900/30 dark:text-red-400",task_completed:"text-green-600 bg-green-100 dark:bg-green-900/30 dark:text-green-400",task_failed:"text-red-600 bg-red-100 dark:bg-red-900/30 dark:text-red-400"};function e4({open:e,onOpenChange:n,workspaceId:a,initialNotification:s}){let i=(0,M.useTranslations)("sidebar.notifications"),o=(0,eH.useNotificationStore)(e=>e.notifications),d=(0,eH.useNotificationStore)(e=>e.markRead),u=(0,eH.useNotificationStore)(e=>e.markAllRead),m=(0,eH.useNotificationStore)(e=>e.clearAll),[p,f]=(0,r.useState)(null),h=s&&!p?s:p;return(0,t.jsx)(ec.Dialog,{open:e,onOpenChange:e=>{e||f(null),n(e)},children:(0,t.jsxs)(ec.DialogContent,{className:"sm:max-w-lg max-h-[80vh] flex flex-col gap-0 overflow-hidden p-0",children:[(0,t.jsx)(ec.DialogHeader,{className:"px-6 py-4 border-b shrink-0",children:(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(ec.DialogTitle,{children:i("centerTitle")}),o.some(e=>!e.read)&&(0,t.jsx)("span",{className:"inline-flex items-center justify-center size-5 rounded-full bg-blue-500 text-[10px] font-medium text-white",children:o.filter(e=>!e.read).length})]}),o.some(e=>!e.read)&&(0,t.jsxs)(c.Button,{variant:"ghost",size:"sm",className:"h-7 text-xs gap-1",onClick:()=>u(a),children:[(0,t.jsx)(e2,{className:"size-3.5"}),i("markAllRead")]})]})}),(0,t.jsx)("div",{className:"min-h-0 flex-1 overflow-y-auto",children:h?(0,t.jsxs)("div",{className:"px-6 py-4",children:[(0,t.jsxs)("div",{className:(0,l.cn)("inline-flex items-center gap-1.5 px-2 py-0.5 rounded-full text-xs font-medium mb-3",e3[h.type]??""),children:[e5[h.type]??""," ",h.type]}),(0,t.jsx)("h3",{className:"text-lg font-semibold mb-2",children:h.title}),h.description&&(0,t.jsx)("p",{className:"text-sm text-muted-foreground mb-3",children:h.description}),(0,t.jsx)("p",{className:"text-xs text-muted-foreground",children:e1(new Date(h.createdAt),{addSuffix:!0})}),Object.keys(h.data).length>0&&(0,t.jsx)("pre",{className:"mt-3 text-xs bg-muted rounded p-3 overflow-auto",children:JSON.stringify(h.data,null,2)})]}):0===o.length?(0,t.jsx)("div",{className:"px-6 py-12 text-center text-sm text-muted-foreground",children:i("empty")}):(0,t.jsx)("div",{className:"divide-y",children:o.map(e=>(0,t.jsxs)("button",{className:(0,l.cn)("flex w-full items-start gap-3 px-6 py-3.5 text-left hover:bg-accent/50 transition-colors",!e.read&&"bg-accent/30"),onClick:()=>{e.read||d(a,e.id),f(e)},children:[(0,t.jsx)("div",{className:(0,l.cn)("mt-1 size-2 rounded-full shrink-0",e.read?"bg-transparent":"bg-blue-500")}),(0,t.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,t.jsx)("p",{className:"text-sm font-medium truncate",children:e.title}),e.description&&(0,t.jsx)("p",{className:"text-xs text-muted-foreground line-clamp-1 mt-0.5",children:e.description}),(0,t.jsx)("p",{className:"text-xs text-muted-foreground mt-1",children:e1(new Date(e.createdAt),{addSuffix:!0})})]})]},e.id))})}),o.length>0&&(0,t.jsx)("div",{className:"px-6 py-3 border-t shrink-0 flex justify-end",children:(0,t.jsxs)(c.Button,{variant:"ghost",size:"sm",className:"h-7 text-xs gap-1 text-destructive",onClick:()=>{m(a),n(!1)},children:[(0,t.jsx)(eU.Trash2Icon,{className:"size-3.5"}),i("clearAll")]})})]})})}function e6({workspaceId:e}){let n=(0,M.useTranslations)("sidebar.notifications"),a=(0,eH.useNotificationStore)(e=>e.notifications),s=(0,eH.useNotificationStore)(e=>e.markRead),i=(0,eH.useNotificationStore)(e=>e.clearAll),o=a.filter(e=>!e.read).length,[d,u]=(0,r.useState)(!1),[m,p]=(0,r.useState)(!1),[f,h]=(0,r.useState)(null),g=a.slice(0,5);return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)(eS.Popover,{open:d,onOpenChange:u,children:[(0,t.jsxs)(eS.PopoverTrigger,{render:(0,t.jsx)(c.Button,{variant:"ghost",size:"icon",className:"rounded-full relative","aria-label":n("openAriaLabel")}),children:[(0,t.jsx)(eB.default,{className:"size-5"}),o>0&&(0,t.jsx)("span",{className:"absolute -top-0.5 -right-0.5 flex size-4 items-center justify-center rounded-full bg-red-500 text-[10px] font-medium text-white",children:o>9?"9+":o})]}),(0,t.jsxs)(eS.PopoverContent,{side:"right",className:"w-80 max-h-[70dvh] my-6 p-0",align:"start",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between px-4 py-3 border-b",children:[(0,t.jsx)("span",{className:"text-sm font-semibold",children:n("title")}),a.length>0&&(0,t.jsx)("div",{className:"flex gap-1",children:(0,t.jsx)(c.Button,{variant:"ghost",size:"icon",className:"size-7",onClick:()=>i(e),title:n("clearAll"),children:(0,t.jsx)(eU.Trash2Icon,{className:"size-3.5"})})})]}),(0,t.jsx)(ed.ScrollArea,{className:"max-h-[50dvh] overflow-hidden",children:0===g.length?(0,t.jsx)("div",{className:"px-4 py-8 text-center text-sm text-muted-foreground",children:n("empty")}):(0,t.jsx)("div",{className:"divide-y",children:g.map(n=>(0,t.jsxs)("button",{className:(0,l.cn)("flex w-full items-start gap-3 px-4 py-3 text-left hover:bg-accent/50 transition-colors",!n.read&&"bg-accent/30"),onClick:()=>{n.read||s(e,n.id),h(n),p(!0)},children:[(0,t.jsx)("div",{className:(0,l.cn)("mt-1 size-2 rounded-full shrink-0",n.read?"bg-transparent":"bg-blue-500")}),(0,t.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,t.jsx)("p",{className:"text-sm font-medium truncate",children:n.title}),n.description&&(0,t.jsx)("p",{className:"text-xs text-muted-foreground line-clamp-2 mt-0.5",children:n.description}),(0,t.jsx)("p",{className:"text-xs text-muted-foreground mt-1",children:e1(new Date(n.createdAt),{addSuffix:!0})})]})]},n.id))})}),a.length>5&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("div",{className:"border-t"}),(0,t.jsx)("button",{className:"w-full px-4 py-2.5 text-sm text-muted-foreground hover:text-primary hover:bg-accent/30 transition-colors cursor-pointer",onClick:()=>{h(null),u(!1),p(!0)},children:n("viewAll")})]})]})]}),(0,t.jsx)(e4,{open:m,onOpenChange:p,workspaceId:e,initialNotification:f})]})}var e8=e.i(344118);let e9=(0,V.default)("chevrons-up-down",[["path",{d:"m7 15 5 5 5-5",key:"1hf1tw"}],["path",{d:"m7 9 5-5 5 5",key:"sgt6xg"}]]);var e7=e.i(210),te=e.i(523592);function tt({open:e,onOpenChange:n,editingId:a,servers:s,onSave:i}){let o=(0,M.useTranslations)("sidebar"),l=(0,M.useTranslations)("common"),[u,m]=r.useState(""),[p,f]=r.useState(""),[h,g]=r.useState("");return r.useEffect(()=>{if(e&&a){let e=s.find(e=>e.id===a);e&&(m(e.name),f(e.url),g(e.secret||""))}else e&&(m(""),f(""),g(""))},[e,a,s]),(0,t.jsx)(ec.Dialog,{open:e,onOpenChange:n,children:(0,t.jsxs)(ec.DialogContent,{children:[(0,t.jsxs)(ec.DialogHeader,{children:[(0,t.jsx)(ec.DialogTitle,{children:o(a?"server.editServer":"server.addServer")}),(0,t.jsx)(ec.DialogDescription,{children:o(a?"server.editDescription":"server.addDescription")})]}),(0,t.jsxs)("div",{className:"space-y-4 py-2",children:[(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsx)("label",{className:"text-sm font-medium",children:l("name")}),(0,t.jsx)(d.Input,{value:u,onChange:e=>m(e.target.value),placeholder:"My Server"})]}),(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsx)("label",{className:"text-sm font-medium",children:o("server.url")}),(0,t.jsx)(d.Input,{value:p,onChange:e=>f(e.target.value),placeholder:"http://192.168.1.100:3100",onKeyDown:e=>"Enter"===e.key&&e.preventDefault()})]}),(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsx)("label",{className:"text-sm font-medium",children:o("server.secret")}),(0,t.jsx)(d.Input,{type:"password",value:h,onChange:e=>g(e.target.value),placeholder:o("server.secretPlaceholder"),onKeyDown:e=>"Enter"===e.key&&e.preventDefault()})]})]}),(0,t.jsxs)(ec.DialogFooter,{children:[(0,t.jsx)(c.Button,{variant:"outline",onClick:()=>n(!1),children:l("cancel")}),(0,t.jsx)(c.Button,{onClick:()=>{if(!u.trim()||!p.trim())return;let e=p.trim().replace(/\/$/,"");/^https?:\/\//.test(e)||(e="http://"+e),a?i(s.map(t=>t.id===a?{...t,name:u.trim(),url:e,secret:h.trim()||void 0}:t)):i([...s,{id:Date.now().toString(),name:u.trim(),url:e,secret:h.trim()||void 0}]),n(!1)},disabled:!u.trim()||!p.trim(),children:l(a?"save":"add")})]})]})})}var tn=e.i(894920),tr=e.i(691223);function ta(){let{isMobile:e}=g(),n=(0,M.useTranslations)("sidebar"),[a,s]=r.useState(te.loadServers),[i,o]=r.useState(te.loadActiveId),[l,c]=r.useState(!1),[d,u]=r.useState(null),[m,p]=r.useState(!1),f=a.find(e=>e.id===i)||a[0],h=r.useCallback(e=>{tr.useEditorStore.getState().resetEditorState(),o(e.id),(0,te.saveActiveId)(e.id),(0,te.setActiveServerCookie)(e.url),window.location.href="/"},[]),x=r.useCallback(e=>{if("default"===e)return;let t=a.filter(t=>t.id!==e);if(s(t),(0,te.saveServers)(t),i===e){let e=t.find(e=>"default"===e.id)||t[0];e&&h(e)}},[i,a,h]);return f?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(k,{children:(0,t.jsx)(S,{children:(0,t.jsxs)(em.DropdownMenu,{children:[(0,t.jsxs)(em.DropdownMenuTrigger,{render:(0,t.jsx)(E,{size:"lg",className:"data-[state=open]:bg-sidebar-accent data-[state=open]:text-sidebar-accent-foreground"}),children:[(0,t.jsx)("div",{className:"flex aspect-square size-8 items-center justify-center rounded-lg bg-background text-foreground",children:(0,t.jsx)(R.Server,{className:"size-4"})}),(0,t.jsxs)("div",{className:"grid flex-1 text-left text-sm leading-tight",children:[(0,t.jsx)("span",{className:"truncate font-semibold",children:f.name}),(0,t.jsx)("span",{className:"truncate text-xs text-muted-foreground",children:f.url.replace(/^https?:\/\//,"")})]}),(0,t.jsx)(e9,{className:"ml-auto"})]}),(0,t.jsxs)(em.DropdownMenuContent,{className:"w-(--radix-dropdown-menu-trigger-width) min-w-56 rounded-lg mb-4",align:"start",side:e?"bottom":"right",sideOffset:4,children:[(0,t.jsx)(em.DropdownMenuGroup,{children:(0,t.jsx)(em.DropdownMenuLabel,{className:"text-xs text-muted-foreground",children:n("server.servers")})}),a.map(e=>(0,t.jsxs)(em.DropdownMenuItem,{onClick:()=>h(e),className:"gap-2 p-2",children:[(0,t.jsx)("div",{className:"flex size-6 items-center justify-center rounded-sm border",children:(0,t.jsx)(R.Server,{className:"size-3.5 shrink-0"})}),(0,t.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,t.jsx)("div",{className:"text-sm truncate",children:e.name}),(0,t.jsx)("div",{className:"text-xs text-muted-foreground truncate",children:e.url})]}),e.id===i&&(0,t.jsx)(e8.Check,{className:"size-4 text-primary shrink-0"})]},e.id)),(0,t.jsx)(em.DropdownMenuSeparator,{}),(0,t.jsxs)(em.DropdownMenuItem,{className:"gap-2 p-2",onClick:()=>{u(null),c(!0)},children:[(0,t.jsx)("div",{className:"flex size-6 items-center justify-center rounded-md border bg-background",children:(0,t.jsx)(eh.Plus,{className:"size-4"})}),(0,t.jsx)("div",{className:"font-medium text-muted-foreground",children:n("server.addServer")})]}),(0,t.jsxs)(em.DropdownMenuItem,{className:"gap-2 p-2",onClick:()=>p(!0),children:[(0,t.jsx)("div",{className:"flex size-6 items-center justify-center rounded-md border bg-background",children:(0,t.jsx)(e7.Settings2,{className:"size-4"})}),(0,t.jsx)("div",{className:"font-medium text-muted-foreground",children:n("server.manageServers")})]})]})]})})}),(0,t.jsx)(tt,{open:l,onOpenChange:c,editingId:d,servers:a,onSave:e=>{s(e),(0,te.saveServers)(e);let t=d?e.find(e=>e.id===d):e[e.length-1];d&&t&&d===i&&(0,te.setActiveServerCookie)(t.url)}}),(0,t.jsx)(tn.ServerManagerDialog,{open:m,onOpenChange:p,servers:a,activeId:i,onUpdate:e=>{s(e),(0,te.saveServers)(e);let t=e.find(e=>e.id===i);t&&(0,te.setActiveServerCookie)(t.url)},onRemove:x,onSwitch:h})]}):null}var ts=e.i(524),ti=e.i(640376),to=e.i(31807),tl=e.i(327964),tc=e.i(250226),td=e.i(286117);function tu(e){return`/workspace/${e}`}function tm(){let{state:e,toggleSidebar:a}=g(),s=(0,n.usePathname)(),i=(0,n.useRouter)(),c=(0,M.useTranslations)("sidebar"),d=(0,M.useTranslations)("common"),u="collapsed"===e,m=(0,td.isWorkspacePath)(s),p=(0,o.useIsMobile)(),f=(0,td.workspaceIdFromLocation)(s,window.location.search),h=(0,ey.useWorkspaceStore)(e=>e.workspaces),x=(0,ey.useWorkspaceStore)(e=>e.setWorkspaces),w=(0,ey.useWorkspaceStore)(e=>e.upsertWorkspace),k=(0,ey.useWorkspaceStore)(e=>e.removeWorkspace),[S,C]=(0,r.useState)(!1),[E,D]=(0,r.useState)(!1),[I,V]=(0,r.useState)(!1),[el,ec]=(0,r.useState)(!1),[ed,eu]=(0,r.useState)(!1),[em,ep]=(0,r.useState)(!1),[ef,eh]=(0,r.useState)(!1),[eg,ex]=(0,r.useState)(!1),[ev,eb]=(0,r.useState)(!1),[ew,ej]=(0,r.useState)(!1),[eN,eS]=(0,r.useState)(!1),[eC,eE]=(0,r.useState)(!1),[eD,eI]=(0,r.useState)(null),[eM,eT]=(0,r.useState)(void 0),eP=(0,r.useCallback)(()=>{fetch("/api/workspaces").then(e=>e.json()).then(x).catch(()=>{})},[x]);(0,r.useEffect)(()=>{eP()},[eP]),(0,r.useEffect)(()=>{let e=()=>a(),t=e=>{let t=e.detail,n={agents:"/settings/agents",skills:"/settings/skills",prompts:"/settings/prompts","output-styles":"/settings/output-styles",mcps:"/settings/mcps",models:"/settings/models",providers:"/settings/providers",hooks:"/settings",commands:"/settings",settings:"/settings"};if(p&&n[t])return void i.push(n[t]);let r={agents:C,skills:eu,prompts:ep,"output-styles":eh,mcps:ex,models:V,providers:ec,hooks:eb,commands:ej,tools:eS,settings:D};r[t]&&r[t](!0)};return window.addEventListener("toggle-sidebar",e),window.addEventListener("open-dialog",t),()=>{window.removeEventListener("toggle-sidebar",e),window.removeEventListener("open-dialog",t)}},[a,p]);let ez=(0,ti.useCommandPalette)(e=>e.registerMany);(0,r.useEffect)(()=>{let e=(e,t)=>{p||!t?i.push(e):t(!0)};return ez([{id:"toggle-sidebar",label:"Toggle Sidebar",group:"View",icon:q,action:()=>a()},{id:"latest-channel",label:"Open Latest Channel",group:"Navigation",icon:X.Hash,action:()=>{let{channels:e,setActiveChannel:t}=to.useChannelStore.getState();e.length>0&&(t(e[e.length-1].id),tc.useMobilePanelStore.getState().setActivePanel("chat"))}},{id:"latest-issue",label:"Open Latest Issue",group:"Navigation",icon:G.CircleDot,action:()=>{let{issues:e,setActiveIssue:t}=tl.useIssueStore.getState();e.length>0&&(t(e[e.length-1].id),tc.useMobilePanelStore.getState().setActivePanel("issue-detail"))}},{id:"open-settings",label:"Open General Settings",group:"Settings",icon:O.Settings,action:()=>e("/settings",D)},{id:"open-agents",label:"Open Agent Settings",group:"Settings",icon:L.Bot,action:()=>e("/settings/agents",C)},{id:"open-skills",label:"Open Skills Settings",group:"Settings",icon:U.Sparkles,action:()=>e("/settings/skills",eu)},{id:"open-prompts",label:"Open Prompt Settings",group:"Settings",icon:H.MessageSquare,action:()=>e("/settings/prompts",ep)},{id:"open-output-styles",label:"Open Output Style Settings",group:"Settings",icon:$.Pencil,action:()=>e("/settings/output-styles",eh)},{id:"open-mcps",label:"Open MCP Settings",group:"Settings",icon:K.Plug,action:()=>e("/settings/mcps",ex)},{id:"open-models",label:"Open Model Settings",group:"Settings",icon:_.Brain,action:()=>{p?i.push("/settings/models"):(eT(void 0),V(!0))}},{id:"open-providers",label:"Open Provider Settings",group:"Settings",icon:R.Server,action:()=>e("/settings/providers",ec)},{id:"open-hooks",label:"Open Hook Settings",group:"Settings",icon:J.Zap,action:()=>{p?i.push("/settings"):eb(!0)}},{id:"open-commands",label:"Open Agent Commands",group:"Settings",icon:Z.Terminal,action:()=>{p?i.push("/settings"):ej(!0)}},{id:"open-tools",label:"Open Tools Settings",group:"Settings",icon:Y.Wrench,action:()=>{p?i.push("/settings/tools"):eS(!0)}},{id:"open-workflows",label:"Open Workflow Settings",group:"Navigation",icon:B.GitBranch,action:()=>{i.push("/workflows")}}])},[ez,a,p]);let eL=async e=>{if(eD){let t=await fetch(`/api/workspaces/${eD.id}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});w(await t.json())}else{let t=await fetch("/api/workspaces",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});w(await t.json())}},e_=async e=>{if(await fetch(`/api/workspaces/${e.id}`,{method:"DELETE"}),k(e.id),f===e.id){let t=h.filter(t=>t.id!==e.id);(0,T.tauriNavigate)(i,t.length>0?tu(t[0].id):"/")}},eR=[{id:"home",title:c("nav.home"),icon:(0,t.jsx)(z.Home,{className:"size-4"}),link:"/"},{id:"workspaces",title:c("nav.workspaces"),icon:(0,t.jsx)(A.FolderOpen,{className:"size-4"}),link:"/",onAdd:()=>{eI(null),eE(!0)},addLabel:c("nav.addWorkspace"),manageLink:"/workspaces",subs:[...h.map(e=>({title:e.name,link:tu(e.id),icon:(0,t.jsx)(A.FolderOpen,{className:"size-4"}),menuItems:[{label:d("edit"),icon:(0,t.jsx)($.Pencil,{className:"size-3.5"}),onClick:()=>{eI(e),eE(!0)}},{label:d("open"),icon:(0,t.jsx)(W.FolderSearch,{className:"size-3.5"}),onClick:()=>fetch(`/api/workspaces/${e.id}/reveal`,{method:"POST"})},{label:d("delete"),icon:(0,t.jsx)(F.Trash2,{className:"size-3.5"}),variant:"destructive",onClick:()=>e_(e)}]}))]},{id:"workflows",title:c("nav.workflows"),icon:(0,t.jsx)(B.GitBranch,{className:"size-4"}),link:"/workflows"},{id:"settings",title:c("nav.settings"),icon:(0,t.jsx)(O.Settings,{className:"size-4"}),link:"#",subs:p?[{title:c("nav.general"),link:"/settings",icon:(0,t.jsx)(Y.Wrench,{className:"size-3.5"})},{title:c("nav.agents"),link:"/settings/agents",icon:(0,t.jsx)(L.Bot,{className:"size-3.5"})},{title:c("nav.skills"),link:"/settings/skills",icon:(0,t.jsx)(U.Sparkles,{className:"size-3.5"})},{title:c("nav.prompts"),link:"/settings/prompts",icon:(0,t.jsx)(H.MessageSquare,{className:"size-3.5"})},{title:c("nav.outputStyles"),link:"/settings/output-styles",icon:(0,t.jsx)($.Pencil,{className:"size-3.5"})},{title:c("nav.mcps"),link:"/settings/mcps",icon:(0,t.jsx)(K.Plug,{className:"size-3.5"})},{title:c("nav.tools"),link:"/settings/tools",icon:(0,t.jsx)(Y.Wrench,{className:"size-3.5"})},{title:c("nav.models"),link:"/settings/models",icon:(0,t.jsx)(_.Brain,{className:"size-3.5"})},{title:c("nav.providers"),link:"/settings/providers",icon:(0,t.jsx)(R.Server,{className:"size-3.5"})}]:[{title:c("nav.general"),link:"#",icon:(0,t.jsx)(Y.Wrench,{className:"size-3.5"}),onClick:()=>D(!0)},{title:c("nav.agents"),link:"#",icon:(0,t.jsx)(L.Bot,{className:"size-3.5"}),onClick:()=>C(!0)},{title:c("nav.skills"),link:"#",icon:(0,t.jsx)(U.Sparkles,{className:"size-3.5"}),onClick:()=>eu(!0)},{title:c("nav.prompts"),link:"#",icon:(0,t.jsx)(H.MessageSquare,{className:"size-3.5"}),onClick:()=>ep(!0)},{title:c("nav.outputStyles"),link:"#",icon:(0,t.jsx)($.Pencil,{className:"size-3.5"}),onClick:()=>eh(!0)},{title:c("nav.mcps"),link:"#",icon:(0,t.jsx)(K.Plug,{className:"size-3.5"}),onClick:()=>ex(!0)},{title:c("nav.tools"),link:"#",icon:(0,t.jsx)(Y.Wrench,{className:"size-3.5"}),onClick:()=>eS(!0)},{title:c("nav.models"),link:"#",icon:(0,t.jsx)(_.Brain,{className:"size-3.5"}),onClick:()=>{eT(void 0),V(!0)}},{title:c("nav.providers"),link:"#",icon:(0,t.jsx)(R.Server,{className:"size-3.5"}),onClick:()=>ec(!0)},{title:c("nav.hooks"),link:"#",icon:(0,t.jsx)(J.Zap,{className:"size-3.5"}),onClick:()=>eb(!0)},{title:c("nav.commands"),link:"#",icon:(0,t.jsx)(Z.Terminal,{className:"size-3.5"}),onClick:()=>ej(!0)}]}];return(0,t.jsxs)(v,{variant:"floating",collapsible:"icon",className:(0,l.cn)("overflow-hidden",m&&"bg-[#f2f3f5] dark:bg-[#0f1117]"),children:[(0,t.jsxs)(j,{className:(0,l.cn)("flex shrink-0 rounded-xl border border-border bg-card mx-2 mt-2 px-3 py-2.5 shadow-[0_1px_3px_rgba(0,0,0,0.04)]",u?"flex-row items-center justify-between gap-y-4 md:flex-col md:items-center md:justify-center":"flex-row items-center justify-between"),children:[(0,t.jsx)("a",{href:"#",className:"flex items-center gap-2",children:(0,t.jsx)(Q.UserIcon,{size:u?"sm":"md"})}),(0,t.jsxs)(P.motion.div,{className:(0,l.cn)("flex items-center gap-2",u?"flex-row md:flex-col-reverse":"flex-row"),initial:{opacity:0},animate:{opacity:1},transition:{duration:.8},children:[(0,t.jsx)(e6,{workspaceId:f??""}),(0,t.jsx)(b,{})]},u?"header-collapsed":"header-expanded")]}),(0,t.jsx)(N,{className:"min-h-0 overflow-y-auto group-data-[collapsible=icon]:overflow-y-auto gap-2 mx-2 my-2 rounded-xl border border-border bg-card p-2 shadow-[0_1px_3px_rgba(0,0,0,0.04)]",children:(0,t.jsx)(eW,{routes:eR})}),(0,t.jsx)(y,{className:"shrink-0 mx-2 mb-2 rounded-xl border border-border bg-card p-2 shadow-[0_1px_3px_rgba(0,0,0,0.04)]",children:(0,t.jsx)(ta,{})}),(0,t.jsx)(ee.AgentDialog,{open:S,onOpenChange:C}),(0,t.jsx)(ea.SkillsDialog,{open:ed,onOpenChange:eu}),(0,t.jsx)(es.PromptsDialog,{open:em,onOpenChange:ep}),(0,t.jsx)(ei.OutputStylesDialog,{open:ef,onOpenChange:eh}),(0,t.jsx)(eo.McpsDialog,{open:eg,onOpenChange:ex}),(0,t.jsx)(ek,{open:ev,onOpenChange:eb}),(0,t.jsx)(eA,{open:ew,onOpenChange:ej}),(0,t.jsx)(eO.ToolsDialog,{open:eN,onOpenChange:eS}),(0,t.jsx)(er.SettingsDialog,{open:E,onOpenChange:D}),(0,t.jsx)(et.ModelsDialog,{open:I,onOpenChange:V,initialProvider:eM}),(0,t.jsx)(en.ProvidersDialog,{open:el,onOpenChange:ec,onAddModel:e=>{eT(e),V(!0)}}),(0,t.jsx)(ts.WorkspaceDialog,{open:eC,onOpenChange:eE,workspace:eD,onSubmit:eL})]})}var tp=p;function tf(){let e=(0,ey.useWorkspaceStore)(e=>e.workspaces),{toggleSidebar:r}=g(),a=(0,n.useRouter)(),s=(0,n.usePathname)(),i=(0,n.useSearchParams)(),o=(0,td.workspaceIdFromLocation)(s,i.toString());return(0,t.jsxs)("div",{className:"flex items-center h-12 px-3 bg-transparent overflow-x-auto shrink-0",children:[(0,t.jsx)("button",{onClick:()=>r(),className:"flex items-center justify-center size-8 rounded-lg text-muted-foreground hover:bg-accent/50 transition-colors shrink-0 md:hidden cursor-pointer",children:(0,t.jsx)(tp.default,{size:16})}),(0,t.jsx)("div",{className:"flex items-center gap-1 rounded-xl p-1",children:e.map(e=>(0,t.jsx)("button",{onClick:()=>{var t;return(0,T.tauriNavigate)(a,(t=e.id,`/workspace/${t}`))},className:(0,l.cn)("flex items-center gap-1.5 px-3.5 h-7 text-[13px] font-medium rounded-lg transition-all whitespace-nowrap",o===e.id?"bg-primary text-primary-foreground shadow-[rgba(0,0,0,0.08)_0px_4px_6px]":"text-muted-foreground hover:text-foreground hover:bg-accent/50"),children:(0,t.jsx)("span",{className:"max-w-[160px] truncate",children:e.name})},e.id))})]})}e.i(8890);var th=e.i(478189);function tg(){let[e,t]=(0,r.useState)(!1),[n,a]=(0,r.useState)(!1);return(0,r.useEffect)(()=>{a(!0)},[]),(0,r.useEffect)(()=>{if(!e)return;let n=e=>{e.preventDefault(),e.stopPropagation();let n=e.target;if(!(n instanceof HTMLElement))return;let r=function(e){let t=e.closest("[data-inspector-relative-path]");if(t?.dataset.inspectorRelativePath)return{relativePath:t.dataset.inspectorRelativePath,lineNumber:t.dataset.inspectorLine??"1",columnNumber:t.dataset.inspectorColumn??"1"};let n=function e(t){if(!t)return;let n=Object.keys(t).find(e=>e.startsWith("__reactFiber$")||e.startsWith("__reactInternalInstance$"));return n?t[n]:e(t.parentElement)}(e);for(;n;){let e=n._debugSource??n._debugOwner?._debugSource;if(e?.fileName&&e.lineNumber)return{absolutePath:e.fileName,lineNumber:String(e.lineNumber),columnNumber:String(e.columnNumber??1)};n=n.return??void 0}}(n);console.debug("[react-dev-inspector] native click",r),t(!1),r?(e=>{if(!e)return;let t="codeInfo"in e?e.codeInfo:e,{lineNumber:n,columnNumber:r,relativePath:a,absolutePath:s}=t,i=!!a,o=i?a:s;if(!o)return console.error("[react-dev-inspector] Cannot open editor without source fileName",t);let l=i?`${th.default}/relative`:th.default;fetch(`${l}?${new URLSearchParams({fileName:o,lineNumber:n,colNumber:r})}`)})(r):console.warn("[react-dev-inspector] no React source info found",n)};return window.addEventListener("click",n,!0),()=>window.removeEventListener("click",n,!0)},[e]),null}e.s(["AppShell",0,function({children:e}){let a=(0,n.usePathname)(),[s,i]=(0,r.useState)(()=>{let e=localStorage.getItem("showWorkspaceTabs");return null===e||"false"!==e});return((0,r.useEffect)(()=>{let e=e=>i(e.detail);return window.addEventListener("workspace-tabs-visibility",e),()=>window.removeEventListener("workspace-tabs-visibility",e)},[]),(0,td.isLoginPath)(a))?(0,t.jsx)(t.Fragment,{children:e}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(tg,{}),(0,t.jsxs)(x,{className:"h-[var(--app-content-height)] min-h-0 bg-[#f2f3f5] dark:bg-[#0f1117]",children:[(0,t.jsx)(tm,{}),(0,t.jsxs)(w,{className:"!bg-transparent",children:[s&&(0,t.jsx)(tf,{}),e]})]})]})}],994876)},984642,e=>{"use strict";var t=e.i(344180),n=e.i(640376),r=e.i(683640),a=e.i(417092);e.s(["ConsolePanel",0,function(){let e=(0,n.useCommandPalette)(e=>e.toggle),s=(0,n.useCommandPalette)(e=>e.open);return(0,t.jsx)(a.FloatingBall,{lsKey:"console-panel:pos",onClick:e,visible:!s,style:{background:"#3b82f6",color:"white",boxShadow:"0 4px 12px rgba(59,130,246,0.4)"},children:(0,t.jsx)(r.Terminal,{size:18})})}])},694819,e=>{"use strict";var t=e.i(764556),n=e.i(515104);function r(){let e=document.documentElement,t=window.visualViewport,r=(0,n.isNativeEnvironment)()&&/Android/i.test(navigator.userAgent)?window.__agentSpacesNativeInsets?.top??0:0,a=t?.height??window.innerHeight,s=t?Math.max(0,window.innerHeight-t.height-t.offsetTop):0,i=Math.max(s,(0,n.isNativeEnvironment)()&&/Android/i.test(navigator.userAgent)?window.__agentSpacesNativeInsets?.keyboard??0:0),o=s>0?a:Math.max(0,window.innerHeight-i),l=Math.max(0,o-r);e.style.setProperty("--app-viewport-height",`${o}px`),e.style.setProperty("--app-content-height",`${l}px`),e.style.setProperty("--keyboard-inset-height",`${i}px`),e.style.setProperty("--app-top-inset",`${r}px`)}e.s(["ViewportInsets",0,function(){return(0,t.useEffect)(()=>{r();let e=e=>(function(e){if(!(e instanceof HTMLElement&&e.matches("input, textarea, [contenteditable='true'], [contenteditable='']")))return;let t=()=>{r(),e.scrollIntoView({block:"nearest",inline:"nearest"})};t(),window.setTimeout(t,60),window.setTimeout(t,180),window.setTimeout(t,360)})(e.target),t=window.visualViewport;return t?.addEventListener("resize",r),t?.addEventListener("scroll",r),window.addEventListener("resize",r),window.addEventListener("orientationchange",r),window.addEventListener("agent-spaces-native-insets",r),document.addEventListener("focusin",e),()=>{t?.removeEventListener("resize",r),t?.removeEventListener("scroll",r),window.removeEventListener("resize",r),window.removeEventListener("orientationchange",r),window.removeEventListener("agent-spaces-native-insets",r),document.removeEventListener("focusin",e)}},[]),null}])},701341,e=>{"use strict";var t=e.i(344180),n=e.i(764556),r=e.i(515104);async function a(e){if(!(0,r.isFlutterEnvironment)())return;let t=window.__flutterBridge;if(t?.invoke)try{await t.invoke("setZoom",{scale:e/100})}catch{}}e.s(["ZoomWrapper",0,function({children:e}){return(0,n.useEffect)(()=>{let e=localStorage.getItem("pageZoom");if(e){let t=Number(e);t>=50&&t<=200&&a(t)}let t=e=>{let t=e.detail;"number"==typeof t&&t>=50&&t<=200&&a(t)};return window.addEventListener("zoom-change",t),()=>window.removeEventListener("zoom-change",t)},[]),(0,t.jsx)(t.Fragment,{children:e})}])},698679,e=>{"use strict";let t,n,r;var a,s,i,o,l,c,d,u,m,p=e.i(344180),f=e.i(764556),h=/[\\\/_+.#"@\[\(\{&]/,g=/[\\\/_+.#"@\[\(\{&]/g,x=/[\s-]/,v=/[\s-]/g;function b(e){return e.toLowerCase().replace(v," ")}function w(e,t,{checkForDefaultPrevented:n=!0}={}){return function(r){if(e?.(r),!1===n||!r.defaultPrevented)return t?.(r)}}function j(e,t){if("function"==typeof e)return e(t);null!=e&&(e.current=t)}function y(...e){return t=>{let n=!1,r=e.map(e=>{let r=j(e,t);return n||"function"!=typeof r||(n=!0),r});if(n)return()=>{for(let t=0;t<r.length;t++){let n=r[t];"function"==typeof n?n():j(e[t],null)}}}}function N(...e){return f.useCallback(y(...e),e)}"u">typeof window&&window.document&&window.document.createElement;var k=globalThis?.document?f.useLayoutEffect:()=>{},S=f[" useId ".trim().toString()]||(()=>void 0),C=0;function E(e){let[t,n]=f.useState(S());return k(()=>{e||n(e=>e??String(C++))},[e]),e||(t?`radix-${t}`:"")}f[" useEffectEvent ".trim().toString()],f[" useInsertionEffect ".trim().toString()];var D=f[" useInsertionEffect ".trim().toString()]||k;Symbol("RADIX:SYNC_STATE");var I=e.i(106206);function M(e){var t;let n,r=(t=e,(n=f.forwardRef((e,t)=>{let{children:n,...r}=e;if(f.isValidElement(n)){var a;let e,s,i=(a=n,(s=(e=Object.getOwnPropertyDescriptor(a.props,"ref")?.get)&&"isReactWarning"in e&&e.isReactWarning)?a.ref:(s=(e=Object.getOwnPropertyDescriptor(a,"ref")?.get)&&"isReactWarning"in e&&e.isReactWarning)?a.props.ref:a.props.ref||a.ref),o=function(e,t){let n={...t};for(let r in t){let a=e[r],s=t[r];/^on[A-Z]/.test(r)?a&&s?n[r]=(...e)=>{let t=s(...e);return a(...e),t}:a&&(n[r]=a):"style"===r?n[r]={...a,...s}:"className"===r&&(n[r]=[a,s].filter(Boolean).join(" "))}return{...e,...n}}(r,n.props);return n.type!==f.Fragment&&(o.ref=t?y(t,i):i),f.cloneElement(n,o)}return f.Children.count(n)>1?f.Children.only(null):null})).displayName=`${t}.SlotClone`,n),a=f.forwardRef((e,t)=>{let{children:n,...a}=e,s=f.Children.toArray(n),i=s.find(P);if(i){let e=i.props.children,n=s.map(t=>t!==i?t:f.Children.count(e)>1?f.Children.only(null):f.isValidElement(e)?e.props.children:null);return(0,p.jsx)(r,{...a,ref:t,children:f.isValidElement(e)?f.cloneElement(e,void 0,n):null})}return(0,p.jsx)(r,{...a,ref:t,children:n})});return a.displayName=`${e}.Slot`,a}var T=Symbol("radix.slottable");function P(e){return f.isValidElement(e)&&"function"==typeof e.type&&"__radixId"in e.type&&e.type.__radixId===T}var z=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"].reduce((e,t)=>{let n=M(`Primitive.${t}`),r=f.forwardRef((e,r)=>{let{asChild:a,...s}=e;return"u">typeof window&&(window[Symbol.for("radix-ui")]=!0),(0,p.jsx)(a?n:t,{...s,ref:r})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{});function A(e){let t=f.useRef(e);return f.useEffect(()=>{t.current=e}),f.useMemo(()=>(...e)=>t.current?.(...e),[])}var O="dismissableLayer.update",L=f.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set}),_=f.forwardRef((e,t)=>{let{disableOutsidePointerEvents:n=!1,onEscapeKeyDown:r,onPointerDownOutside:a,onFocusOutside:s,onInteractOutside:i,onDismiss:o,...l}=e,c=f.useContext(L),[d,m]=f.useState(null),h=d?.ownerDocument??globalThis?.document,[,g]=f.useState({}),x=N(t,e=>m(e)),v=Array.from(c.layers),[b]=[...c.layersWithOutsidePointerEventsDisabled].slice(-1),j=v.indexOf(b),y=d?v.indexOf(d):-1,k=c.layersWithOutsidePointerEventsDisabled.size>0,S=y>=j,C=function(e,t=globalThis?.document){let n=A(e),r=f.useRef(!1),a=f.useRef(()=>{});return f.useEffect(()=>{let e=e=>{if(e.target&&!r.current){let r=function(){$("dismissableLayer.pointerDownOutside",n,s,{discrete:!0})},s={originalEvent:e};"touch"===e.pointerType?(t.removeEventListener("click",a.current),a.current=r,t.addEventListener("click",a.current,{once:!0})):r()}else t.removeEventListener("click",a.current);r.current=!1},s=window.setTimeout(()=>{t.addEventListener("pointerdown",e)},0);return()=>{window.clearTimeout(s),t.removeEventListener("pointerdown",e),t.removeEventListener("click",a.current)}},[t,n]),{onPointerDownCapture:()=>r.current=!0}}(e=>{let t=e.target,n=[...c.branches].some(e=>e.contains(t));S&&!n&&(a?.(e),i?.(e),e.defaultPrevented||o?.())},h),E=function(e,t=globalThis?.document){let n=A(e),r=f.useRef(!1);return f.useEffect(()=>{let e=e=>{e.target&&!r.current&&$("dismissableLayer.focusOutside",n,{originalEvent:e},{discrete:!1})};return t.addEventListener("focusin",e),()=>t.removeEventListener("focusin",e)},[t,n]),{onFocusCapture:()=>r.current=!0,onBlurCapture:()=>r.current=!1}}(e=>{let t=e.target;![...c.branches].some(e=>e.contains(t))&&(s?.(e),i?.(e),e.defaultPrevented||o?.())},h);return!function(e,t=globalThis?.document){let n=A(e);f.useEffect(()=>{let e=e=>{"Escape"===e.key&&n(e)};return t.addEventListener("keydown",e,{capture:!0}),()=>t.removeEventListener("keydown",e,{capture:!0})},[n,t])}(e=>{y===c.layers.size-1&&(r?.(e),!e.defaultPrevented&&o&&(e.preventDefault(),o()))},h),f.useEffect(()=>{if(d)return n&&(0===c.layersWithOutsidePointerEventsDisabled.size&&(u=h.body.style.pointerEvents,h.body.style.pointerEvents="none"),c.layersWithOutsidePointerEventsDisabled.add(d)),c.layers.add(d),R(),()=>{n&&1===c.layersWithOutsidePointerEventsDisabled.size&&(h.body.style.pointerEvents=u)}},[d,h,n,c]),f.useEffect(()=>()=>{d&&(c.layers.delete(d),c.layersWithOutsidePointerEventsDisabled.delete(d),R())},[d,c]),f.useEffect(()=>{let e=()=>g({});return document.addEventListener(O,e),()=>document.removeEventListener(O,e)},[]),(0,p.jsx)(z.div,{...l,ref:x,style:{pointerEvents:k?S?"auto":"none":void 0,...e.style},onFocusCapture:w(e.onFocusCapture,E.onFocusCapture),onBlurCapture:w(e.onBlurCapture,E.onBlurCapture),onPointerDownCapture:w(e.onPointerDownCapture,C.onPointerDownCapture)})});function R(){let e=new CustomEvent(O);document.dispatchEvent(e)}function $(e,t,n,{discrete:r}){let a=n.originalEvent.target,s=new CustomEvent(e,{bubbles:!1,cancelable:!0,detail:n});if(t&&a.addEventListener(e,t,{once:!0}),r)a&&I.flushSync(()=>a.dispatchEvent(s));else a.dispatchEvent(s)}_.displayName="DismissableLayer",f.forwardRef((e,t)=>{let n=f.useContext(L),r=f.useRef(null),a=N(t,r);return f.useEffect(()=>{let e=r.current;if(e)return n.branches.add(e),()=>{n.branches.delete(e)}},[n.branches]),(0,p.jsx)(z.div,{...e,ref:a})}).displayName="DismissableLayerBranch";var F="focusScope.autoFocusOnMount",W="focusScope.autoFocusOnUnmount",B={bubbles:!1,cancelable:!0},U=f.forwardRef((e,t)=>{let{loop:n=!1,trapped:r=!1,onMountAutoFocus:a,onUnmountAutoFocus:s,...i}=e,[o,l]=f.useState(null),c=A(a),d=A(s),u=f.useRef(null),m=N(t,e=>l(e)),h=f.useRef({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;f.useEffect(()=>{if(r){let e=function(e){if(h.paused||!o)return;let t=e.target;o.contains(t)?u.current=t:V(u.current,{select:!0})},t=function(e){if(h.paused||!o)return;let t=e.relatedTarget;null!==t&&(o.contains(t)||V(u.current,{select:!0}))};document.addEventListener("focusin",e),document.addEventListener("focusout",t);let n=new MutationObserver(function(e){if(document.activeElement===document.body)for(let t of e)t.removedNodes.length>0&&V(o)});return o&&n.observe(o,{childList:!0,subtree:!0}),()=>{document.removeEventListener("focusin",e),document.removeEventListener("focusout",t),n.disconnect()}}},[r,o,h.paused]),f.useEffect(()=>{if(o){q.add(h);let e=document.activeElement;if(!o.contains(e)){let t=new CustomEvent(F,B);o.addEventListener(F,c),o.dispatchEvent(t),t.defaultPrevented||(function(e,{select:t=!1}={}){let n=document.activeElement;for(let r of e)if(V(r,{select:t}),document.activeElement!==n)return}(H(o).filter(e=>"A"!==e.tagName),{select:!0}),document.activeElement===e&&V(o))}return()=>{o.removeEventListener(F,c),setTimeout(()=>{let t=new CustomEvent(W,B);o.addEventListener(W,d),o.dispatchEvent(t),t.defaultPrevented||V(e??document.body,{select:!0}),o.removeEventListener(W,d),q.remove(h)},0)}}},[o,c,d,h]);let g=f.useCallback(e=>{if(!n&&!r||h.paused)return;let t="Tab"===e.key&&!e.altKey&&!e.ctrlKey&&!e.metaKey,a=document.activeElement;if(t&&a){var s;let t,r=e.currentTarget,[i,o]=[K(t=H(s=r),s),K(t.reverse(),s)];i&&o?e.shiftKey||a!==o?e.shiftKey&&a===i&&(e.preventDefault(),n&&V(o,{select:!0})):(e.preventDefault(),n&&V(i,{select:!0})):a===r&&e.preventDefault()}},[n,r,h.paused]);return(0,p.jsx)(z.div,{tabIndex:-1,...i,ref:m,onKeyDown:g})});function H(e){let t=[],n=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:e=>{let t="INPUT"===e.tagName&&"hidden"===e.type;return e.disabled||e.hidden||t?NodeFilter.FILTER_SKIP:e.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;n.nextNode();)t.push(n.currentNode);return t}function K(e,t){for(let n of e)if(!function(e,{upTo:t}){if("hidden"===getComputedStyle(e).visibility)return!0;for(;e&&(void 0===t||e!==t);){if("none"===getComputedStyle(e).display)return!0;e=e.parentElement}return!1}(n,{upTo:t}))return n}function V(e,{select:t=!1}={}){if(e&&e.focus){var n;let r=document.activeElement;e.focus({preventScroll:!0}),e!==r&&(n=e)instanceof HTMLInputElement&&"select"in n&&t&&e.select()}}U.displayName="FocusScope";var q=(r=[],{add(e){let t=r[0];e!==t&&t?.pause(),(r=X(r,e)).unshift(e)},remove(e){r=X(r,e),r[0]?.resume()}});function X(e,t){let n=[...e],r=n.indexOf(t);return -1!==r&&n.splice(r,1),n}var G=f.forwardRef((e,t)=>{let{container:n,...r}=e,[a,s]=f.useState(!1);k(()=>s(!0),[]);let i=n||a&&globalThis?.document?.body;return i?I.default.createPortal((0,p.jsx)(z.div,{...r,ref:t}),i):null});G.displayName="Portal";var J=e=>{var t;let n,r,{present:a,children:s}=e,i=function(e){var t,n;let[r,a]=f.useState(),s=f.useRef(null),i=f.useRef(e),o=f.useRef("none"),[l,c]=(t=e?"mounted":"unmounted",n={mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}},f.useReducer((e,t)=>n[e][t]??e,t));return f.useEffect(()=>{let e=Y(s.current);o.current="mounted"===l?e:"none"},[l]),k(()=>{let t=s.current,n=i.current;if(n!==e){let r=o.current,a=Y(t);e?c("MOUNT"):"none"===a||t?.display==="none"?c("UNMOUNT"):n&&r!==a?c("ANIMATION_OUT"):c("UNMOUNT"),i.current=e}},[e,c]),k(()=>{if(r){let e,t=r.ownerDocument.defaultView??window,n=n=>{let a=Y(s.current).includes(CSS.escape(n.animationName));if(n.target===r&&a&&(c("ANIMATION_END"),!i.current)){let n=r.style.animationFillMode;r.style.animationFillMode="forwards",e=t.setTimeout(()=>{"forwards"===r.style.animationFillMode&&(r.style.animationFillMode=n)})}},a=e=>{e.target===r&&(o.current=Y(s.current))};return r.addEventListener("animationstart",a),r.addEventListener("animationcancel",n),r.addEventListener("animationend",n),()=>{t.clearTimeout(e),r.removeEventListener("animationstart",a),r.removeEventListener("animationcancel",n),r.removeEventListener("animationend",n)}}c("ANIMATION_END")},[r,c]),{isPresent:["mounted","unmountSuspended"].includes(l),ref:f.useCallback(e=>{s.current=e?getComputedStyle(e):null,a(e)},[])}}(a),o="function"==typeof s?s({present:i.isPresent}):f.Children.only(s),l=N(i.ref,(t=o,(r=(n=Object.getOwnPropertyDescriptor(t.props,"ref")?.get)&&"isReactWarning"in n&&n.isReactWarning)?t.ref:(r=(n=Object.getOwnPropertyDescriptor(t,"ref")?.get)&&"isReactWarning"in n&&n.isReactWarning)?t.props.ref:t.props.ref||t.ref));return"function"==typeof s||i.isPresent?f.cloneElement(o,{ref:l}):null};function Y(e){return e?.animationName||"none"}J.displayName="Presence";var Z=0;function Q(){let e=document.createElement("span");return e.setAttribute("data-radix-focus-guard",""),e.tabIndex=0,e.style.outline="none",e.style.opacity="0",e.style.position="fixed",e.style.pointerEvents="none",e}var ee=e.i(824627),et="right-scroll-bar-position",en="width-before-scroll-bar";function er(e,t){return"function"==typeof e?e(t):e&&(e.current=t),e}var ea="u">typeof window?f.useLayoutEffect:f.useEffect,es=new WeakMap,ei=(void 0===a&&(a={}),(void 0===s&&(s=function(e){return e}),i=[],o=!1,l={read:function(){if(o)throw Error("Sidecar: could not `read` from an `assigned` medium. `read` could be used only with `useMedium`.");return i.length?i[i.length-1]:null},useMedium:function(e){var t=s(e,o);return i.push(t),function(){i=i.filter(function(e){return e!==t})}},assignSyncMedium:function(e){for(o=!0;i.length;){var t=i;i=[],t.forEach(e)}i={push:function(t){return e(t)},filter:function(){return i}}},assignMedium:function(e){o=!0;var t=[];if(i.length){var n=i;i=[],n.forEach(e),t=i}var r=function(){var n=t;t=[],n.forEach(e)},a=function(){return Promise.resolve().then(r)};a(),i={push:function(e){t.push(e),a()},filter:function(e){return t=t.filter(e),i}}}}).options=(0,ee.__assign)({async:!0,ssr:!1},a),l),eo=function(){},el=f.forwardRef(function(e,t){var n,r,a,s,i=f.useRef(null),o=f.useState({onScrollCapture:eo,onWheelCapture:eo,onTouchMoveCapture:eo}),l=o[0],c=o[1],d=e.forwardProps,u=e.children,m=e.className,p=e.removeScrollBar,h=e.enabled,g=e.shards,x=e.sideCar,v=e.noRelative,b=e.noIsolation,w=e.inert,j=e.allowPinchZoom,y=e.as,N=e.gapMode,k=(0,ee.__rest)(e,["forwardProps","children","className","removeScrollBar","enabled","shards","sideCar","noRelative","noIsolation","inert","allowPinchZoom","as","gapMode"]),S=(n=[i,t],r=function(e){return n.forEach(function(t){return er(t,e)})},(a=(0,f.useState)(function(){return{value:null,callback:r,facade:{get current(){return a.value},set current(value){var e=a.value;e!==value&&(a.value=value,a.callback(value,e))}}}})[0]).callback=r,s=a.facade,ea(function(){var e=es.get(s);if(e){var t=new Set(e),r=new Set(n),a=s.current;t.forEach(function(e){r.has(e)||er(e,null)}),r.forEach(function(e){t.has(e)||er(e,a)})}es.set(s,n)},[n]),s),C=(0,ee.__assign)((0,ee.__assign)({},k),l);return f.createElement(f.Fragment,null,h&&f.createElement(x,{sideCar:ei,removeScrollBar:p,shards:g,noRelative:v,noIsolation:b,inert:w,setCallbacks:c,allowPinchZoom:!!j,lockRef:i,gapMode:N}),d?f.cloneElement(f.Children.only(u),(0,ee.__assign)((0,ee.__assign)({},C),{ref:S})):f.createElement(void 0===y?"div":y,(0,ee.__assign)({},C,{className:m,ref:S}),u))});el.defaultProps={enabled:!0,removeScrollBar:!0,inert:!1},el.classNames={fullWidth:en,zeroRight:et};var ec=function(e){var t=e.sideCar,n=(0,ee.__rest)(e,["sideCar"]);if(!t)throw Error("Sidecar: please provide `sideCar` property to import the right car");var r=t.read();if(!r)throw Error("Sidecar medium not found");return f.createElement(r,(0,ee.__assign)({},n))};ec.isSideCarExport=!0;var ed=function(){var e=0,t=null;return{add:function(n){if(0==e&&(t=function(){if(!document)return null;var e=document.createElement("style");e.type="text/css";var t=m||("u">typeof __webpack_nonce__?__webpack_nonce__:void 0);return t&&e.setAttribute("nonce",t),e}())){var r,a;(r=t).styleSheet?r.styleSheet.cssText=n:r.appendChild(document.createTextNode(n)),a=t,(document.head||document.getElementsByTagName("head")[0]).appendChild(a)}e++},remove:function(){--e||!t||(t.parentNode&&t.parentNode.removeChild(t),t=null)}}},eu=function(){var e=ed();return function(t,n){f.useEffect(function(){return e.add(t),function(){e.remove()}},[t&&n])}},em=function(){var e=eu();return function(t){return e(t.styles,t.dynamic),null}},ep={left:0,top:0,right:0,gap:0},ef=function(e){return parseInt(e||"",10)||0},eh=function(e){var t=window.getComputedStyle(document.body),n=t["padding"===e?"paddingLeft":"marginLeft"],r=t["padding"===e?"paddingTop":"marginTop"],a=t["padding"===e?"paddingRight":"marginRight"];return[ef(n),ef(r),ef(a)]},eg=function(e){if(void 0===e&&(e="margin"),"u"<typeof window)return ep;var t=eh(e),n=document.documentElement.clientWidth,r=window.innerWidth;return{left:t[0],top:t[1],right:t[2],gap:Math.max(0,r-n+t[2]-t[0])}},ex=em(),ev="data-scroll-locked",eb=function(e,t,n,r){var a=e.left,s=e.top,i=e.right,o=e.gap;return void 0===n&&(n="margin"),"\n .".concat("with-scroll-bars-hidden"," {\n overflow: hidden ").concat(r,";\n padding-right: ").concat(o,"px ").concat(r,";\n }\n body[").concat(ev,"] {\n overflow: hidden ").concat(r,";\n overscroll-behavior: contain;\n ").concat([t&&"position: relative ".concat(r,";"),"margin"===n&&"\n padding-left: ".concat(a,"px;\n padding-top: ").concat(s,"px;\n padding-right: ").concat(i,"px;\n margin-left:0;\n margin-top:0;\n margin-right: ").concat(o,"px ").concat(r,";\n "),"padding"===n&&"padding-right: ".concat(o,"px ").concat(r,";")].filter(Boolean).join(""),"\n }\n \n .").concat(et," {\n right: ").concat(o,"px ").concat(r,";\n }\n \n .").concat(en," {\n margin-right: ").concat(o,"px ").concat(r,";\n }\n \n .").concat(et," .").concat(et," {\n right: 0 ").concat(r,";\n }\n \n .").concat(en," .").concat(en," {\n margin-right: 0 ").concat(r,";\n }\n \n body[").concat(ev,"] {\n ").concat("--removed-body-scroll-bar-size",": ").concat(o,"px;\n }\n")},ew=function(){var e=parseInt(document.body.getAttribute(ev)||"0",10);return isFinite(e)?e:0},ej=function(){f.useEffect(function(){return document.body.setAttribute(ev,(ew()+1).toString()),function(){var e=ew()-1;e<=0?document.body.removeAttribute(ev):document.body.setAttribute(ev,e.toString())}},[])},ey=function(e){var t=e.noRelative,n=e.noImportant,r=e.gapMode,a=void 0===r?"margin":r;ej();var s=f.useMemo(function(){return eg(a)},[a]);return f.createElement(ex,{styles:eb(s,!t,a,n?"":"!important")})},eN=!1;if("u">typeof window)try{var ek=Object.defineProperty({},"passive",{get:function(){return eN=!0,!0}});window.addEventListener("test",ek,ek),window.removeEventListener("test",ek,ek)}catch(e){eN=!1}var eS=!!eN&&{passive:!1},eC=function(e,t){if(!(e instanceof Element))return!1;var n=window.getComputedStyle(e);return"hidden"!==n[t]&&(n.overflowY!==n.overflowX||"TEXTAREA"===e.tagName||"visible"!==n[t])},eE=function(e,t){var n=t.ownerDocument,r=t;do{if("u">typeof ShadowRoot&&r instanceof ShadowRoot&&(r=r.host),eD(e,r)){var a=eI(e,r);if(a[1]>a[2])return!0}r=r.parentNode}while(r&&r!==n.body)return!1},eD=function(e,t){return"v"===e?eC(t,"overflowY"):eC(t,"overflowX")},eI=function(e,t){return"v"===e?[t.scrollTop,t.scrollHeight,t.clientHeight]:[t.scrollLeft,t.scrollWidth,t.clientWidth]},eM=function(e,t,n,r,a){var s,i=(s=window.getComputedStyle(t).direction,"h"===e&&"rtl"===s?-1:1),o=i*r,l=n.target,c=t.contains(l),d=!1,u=o>0,m=0,p=0;do{if(!l)break;var f=eI(e,l),h=f[0],g=f[1]-f[2]-i*h;(h||g)&&eD(e,l)&&(m+=g,p+=h);var x=l.parentNode;l=x&&x.nodeType===Node.DOCUMENT_FRAGMENT_NODE?x.host:x}while(!c&&l!==document.body||c&&(t.contains(l)||t===l))return u&&(a&&1>Math.abs(m)||!a&&o>m)?d=!0:!u&&(a&&1>Math.abs(p)||!a&&-o>p)&&(d=!0),d},eT=function(e){return"changedTouches"in e?[e.changedTouches[0].clientX,e.changedTouches[0].clientY]:[0,0]},eP=function(e){return[e.deltaX,e.deltaY]},ez=function(e){return e&&"current"in e?e.current:e},eA=0,eO=[];let eL=(c=function(e){var t=f.useRef([]),n=f.useRef([0,0]),r=f.useRef(),a=f.useState(eA++)[0],s=f.useState(em)[0],i=f.useRef(e);f.useEffect(function(){i.current=e},[e]),f.useEffect(function(){if(e.inert){document.body.classList.add("block-interactivity-".concat(a));var t=(0,ee.__spreadArray)([e.lockRef.current],(e.shards||[]).map(ez),!0).filter(Boolean);return t.forEach(function(e){return e.classList.add("allow-interactivity-".concat(a))}),function(){document.body.classList.remove("block-interactivity-".concat(a)),t.forEach(function(e){return e.classList.remove("allow-interactivity-".concat(a))})}}},[e.inert,e.lockRef.current,e.shards]);var o=f.useCallback(function(e,t){if("touches"in e&&2===e.touches.length||"wheel"===e.type&&e.ctrlKey)return!i.current.allowPinchZoom;var a,s=eT(e),o=n.current,l="deltaX"in e?e.deltaX:o[0]-s[0],c="deltaY"in e?e.deltaY:o[1]-s[1],d=e.target,u=Math.abs(l)>Math.abs(c)?"h":"v";if("touches"in e&&"h"===u&&"range"===d.type)return!1;var m=window.getSelection(),p=m&&m.anchorNode;if(p&&(p===d||p.contains(d)))return!1;var f=eE(u,d);if(!f)return!0;if(f?a=u:(a="v"===u?"h":"v",f=eE(u,d)),!f)return!1;if(!r.current&&"changedTouches"in e&&(l||c)&&(r.current=a),!a)return!0;var h=r.current||a;return eM(h,t,e,"h"===h?l:c,!0)},[]),l=f.useCallback(function(e){if(eO.length&&eO[eO.length-1]===s){var n="deltaY"in e?eP(e):eT(e),r=t.current.filter(function(t){var r;return t.name===e.type&&(t.target===e.target||e.target===t.shadowParent)&&(r=t.delta,r[0]===n[0]&&r[1]===n[1])})[0];if(r&&r.should){e.cancelable&&e.preventDefault();return}if(!r){var a=(i.current.shards||[]).map(ez).filter(Boolean).filter(function(t){return t.contains(e.target)});(a.length>0?o(e,a[0]):!i.current.noIsolation)&&e.cancelable&&e.preventDefault()}}},[]),c=f.useCallback(function(e,n,r,a){var s={name:e,delta:n,target:r,should:a,shadowParent:function(e){for(var t=null;null!==e;)e instanceof ShadowRoot&&(t=e.host,e=e.host),e=e.parentNode;return t}(r)};t.current.push(s),setTimeout(function(){t.current=t.current.filter(function(e){return e!==s})},1)},[]),d=f.useCallback(function(e){n.current=eT(e),r.current=void 0},[]),u=f.useCallback(function(t){c(t.type,eP(t),t.target,o(t,e.lockRef.current))},[]),m=f.useCallback(function(t){c(t.type,eT(t),t.target,o(t,e.lockRef.current))},[]);f.useEffect(function(){return eO.push(s),e.setCallbacks({onScrollCapture:u,onWheelCapture:u,onTouchMoveCapture:m}),document.addEventListener("wheel",l,eS),document.addEventListener("touchmove",l,eS),document.addEventListener("touchstart",d,eS),function(){eO=eO.filter(function(e){return e!==s}),document.removeEventListener("wheel",l,eS),document.removeEventListener("touchmove",l,eS),document.removeEventListener("touchstart",d,eS)}},[]);var p=e.removeScrollBar,h=e.inert;return f.createElement(f.Fragment,null,h?f.createElement(s,{styles:"\n .block-interactivity-".concat(a," {pointer-events: none;}\n .allow-interactivity-").concat(a," {pointer-events: all;}\n")}):null,p?f.createElement(ey,{noRelative:e.noRelative,gapMode:e.gapMode}):null)},ei.useMedium(c),ec);var e_=f.forwardRef(function(e,t){return f.createElement(el,(0,ee.__assign)({},e,{ref:t,sideCar:eL}))});e_.classNames=el.classNames;var eR=new WeakMap,e$=new WeakMap,eF={},eW=0,eB=function(e){return e&&(e.host||eB(e.parentNode))},eU=function(e,t,n,r){var a=(Array.isArray(e)?e:[e]).map(function(e){if(t.contains(e))return e;var n=eB(e);return n&&t.contains(n)?n:(console.error("aria-hidden",e,"in not contained inside",t,". Doing nothing"),null)}).filter(function(e){return!!e});eF[n]||(eF[n]=new WeakMap);var s=eF[n],i=[],o=new Set,l=new Set(a),c=function(e){!e||o.has(e)||(o.add(e),c(e.parentNode))};a.forEach(c);var d=function(e){!e||l.has(e)||Array.prototype.forEach.call(e.children,function(e){if(o.has(e))d(e);else try{var t=e.getAttribute(r),a=null!==t&&"false"!==t,l=(eR.get(e)||0)+1,c=(s.get(e)||0)+1;eR.set(e,l),s.set(e,c),i.push(e),1===l&&a&&e$.set(e,!0),1===c&&e.setAttribute(n,"true"),a||e.setAttribute(r,"true")}catch(t){console.error("aria-hidden: cannot operate on ",e,t)}})};return d(t),o.clear(),eW++,function(){i.forEach(function(e){var t=eR.get(e)-1,a=s.get(e)-1;eR.set(e,t),s.set(e,a),t||(e$.has(e)||e.removeAttribute(r),e$.delete(e)),a||e.removeAttribute(n)}),--eW||(eR=new WeakMap,eR=new WeakMap,e$=new WeakMap,eF={})}},eH=function(e,t,n){void 0===n&&(n="data-aria-hidden");var r=Array.from(Array.isArray(e)?e:[e]),a=t||("u"<typeof document?null:(Array.isArray(e)?e[0]:e).ownerDocument.body);return a?(r.push.apply(r,Array.from(a.querySelectorAll("[aria-live], script"))),eU(r,a,n,"aria-hidden")):function(){return null}},eK="Dialog",[eV,eq]=function(e,t=[]){let n=[],r=()=>{let t=n.map(e=>f.createContext(e));return function(n){let r=n?.[e]||t;return f.useMemo(()=>({[`__scope${e}`]:{...n,[e]:r}}),[n,r])}};return r.scopeName=e,[function(t,r){let a=f.createContext(r),s=n.length;n=[...n,r];let i=t=>{let{scope:n,children:r,...i}=t,o=n?.[e]?.[s]||a,l=f.useMemo(()=>i,Object.values(i));return(0,p.jsx)(o.Provider,{value:l,children:r})};return i.displayName=t+"Provider",[i,function(n,i){let o=i?.[e]?.[s]||a,l=f.useContext(o);if(l)return l;if(void 0!==r)return r;throw Error(`\`${n}\` must be used within \`${t}\``)}]},function(...e){let t=e[0];if(1===e.length)return t;let n=()=>{let n=e.map(e=>({useScope:e(),scopeName:e.scopeName}));return function(e){let r=n.reduce((t,{useScope:n,scopeName:r})=>{let a=n(e)[`__scope${r}`];return{...t,...a}},{});return f.useMemo(()=>({[`__scope${t.scopeName}`]:r}),[r])}};return n.scopeName=t.scopeName,n}(r,...t)]}(eK),[eX,eG]=eV(eK),eJ=e=>{let{__scopeDialog:t,children:n,open:r,defaultOpen:a,onOpenChange:s,modal:i=!0}=e,o=f.useRef(null),l=f.useRef(null),[c,d]=function({prop:e,defaultProp:t,onChange:n=()=>{},caller:r}){let[a,s,i]=function({defaultProp:e,onChange:t}){let[n,r]=f.useState(e),a=f.useRef(n),s=f.useRef(t);return D(()=>{s.current=t},[t]),f.useEffect(()=>{a.current!==n&&(s.current?.(n),a.current=n)},[n,a]),[n,r,s]}({defaultProp:t,onChange:n}),o=void 0!==e,l=o?e:a;{let t=f.useRef(void 0!==e);f.useEffect(()=>{let e=t.current;if(e!==o){let t=o?"controlled":"uncontrolled";console.warn(`${r} is changing from ${e?"controlled":"uncontrolled"} to ${t}. Components should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled value for the lifetime of the component.`)}t.current=o},[o,r])}return[l,f.useCallback(t=>{if(o){let n="function"==typeof t?t(e):t;n!==e&&i.current?.(n)}else s(t)},[o,e,s,i])]}({prop:r,defaultProp:a??!1,onChange:s,caller:eK});return(0,p.jsx)(eX,{scope:t,triggerRef:o,contentRef:l,contentId:E(),titleId:E(),descriptionId:E(),open:c,onOpenChange:d,onOpenToggle:f.useCallback(()=>d(e=>!e),[d]),modal:i,children:n})};eJ.displayName=eK;var eY="DialogTrigger";f.forwardRef((e,t)=>{let{__scopeDialog:n,...r}=e,a=eG(eY,n),s=N(t,a.triggerRef);return(0,p.jsx)(z.button,{type:"button","aria-haspopup":"dialog","aria-expanded":a.open,"aria-controls":a.contentId,"data-state":ta(a.open),...r,ref:s,onClick:w(e.onClick,a.onOpenToggle)})}).displayName=eY;var eZ="DialogPortal",[eQ,e0]=eV(eZ,{forceMount:void 0}),e1=e=>{let{__scopeDialog:t,forceMount:n,children:r,container:a}=e,s=eG(eZ,t);return(0,p.jsx)(eQ,{scope:t,forceMount:n,children:f.Children.map(r,e=>(0,p.jsx)(J,{present:n||s.open,children:(0,p.jsx)(G,{asChild:!0,container:a,children:e})}))})};e1.displayName=eZ;var e2="DialogOverlay",e5=f.forwardRef((e,t)=>{let n=e0(e2,e.__scopeDialog),{forceMount:r=n.forceMount,...a}=e,s=eG(e2,e.__scopeDialog);return s.modal?(0,p.jsx)(J,{present:r||s.open,children:(0,p.jsx)(e4,{...a,ref:t})}):null});e5.displayName=e2;var e3=M("DialogOverlay.RemoveScroll"),e4=f.forwardRef((e,t)=>{let{__scopeDialog:n,...r}=e,a=eG(e2,n);return(0,p.jsx)(e_,{as:e3,allowPinchZoom:!0,shards:[a.contentRef],children:(0,p.jsx)(z.div,{"data-state":ta(a.open),...r,ref:t,style:{pointerEvents:"auto",...r.style}})})}),e6="DialogContent",e8=f.forwardRef((e,t)=>{let n=e0(e6,e.__scopeDialog),{forceMount:r=n.forceMount,...a}=e,s=eG(e6,e.__scopeDialog);return(0,p.jsx)(J,{present:r||s.open,children:s.modal?(0,p.jsx)(e9,{...a,ref:t}):(0,p.jsx)(e7,{...a,ref:t})})});e8.displayName=e6;var e9=f.forwardRef((e,t)=>{let n=eG(e6,e.__scopeDialog),r=f.useRef(null),a=N(t,n.contentRef,r);return f.useEffect(()=>{let e=r.current;if(e)return eH(e)},[]),(0,p.jsx)(te,{...e,ref:a,trapFocus:n.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:w(e.onCloseAutoFocus,e=>{e.preventDefault(),n.triggerRef.current?.focus()}),onPointerDownOutside:w(e.onPointerDownOutside,e=>{let t=e.detail.originalEvent,n=0===t.button&&!0===t.ctrlKey;(2===t.button||n)&&e.preventDefault()}),onFocusOutside:w(e.onFocusOutside,e=>e.preventDefault())})}),e7=f.forwardRef((e,t)=>{let n=eG(e6,e.__scopeDialog),r=f.useRef(!1),a=f.useRef(!1);return(0,p.jsx)(te,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:t=>{e.onCloseAutoFocus?.(t),t.defaultPrevented||(r.current||n.triggerRef.current?.focus(),t.preventDefault()),r.current=!1,a.current=!1},onInteractOutside:t=>{e.onInteractOutside?.(t),t.defaultPrevented||(r.current=!0,"pointerdown"===t.detail.originalEvent.type&&(a.current=!0));let s=t.target;n.triggerRef.current?.contains(s)&&t.preventDefault(),"focusin"===t.detail.originalEvent.type&&a.current&&t.preventDefault()}})}),te=f.forwardRef((e,t)=>{let{__scopeDialog:n,trapFocus:r,onOpenAutoFocus:a,onCloseAutoFocus:s,...i}=e,o=eG(e6,n),l=f.useRef(null),c=N(t,l);return f.useEffect(()=>{let e=document.querySelectorAll("[data-radix-focus-guard]");return document.body.insertAdjacentElement("afterbegin",e[0]??Q()),document.body.insertAdjacentElement("beforeend",e[1]??Q()),Z++,()=>{1===Z&&document.querySelectorAll("[data-radix-focus-guard]").forEach(e=>e.remove()),Z--}},[]),(0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)(U,{asChild:!0,loop:!0,trapped:r,onMountAutoFocus:a,onUnmountAutoFocus:s,children:(0,p.jsx)(_,{role:"dialog",id:o.contentId,"aria-describedby":o.descriptionId,"aria-labelledby":o.titleId,"data-state":ta(o.open),...i,ref:c,onDismiss:()=>o.onOpenChange(!1)})}),(0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)(tl,{titleId:o.titleId}),(0,p.jsx)(tc,{contentRef:l,descriptionId:o.descriptionId})]})]})}),tt="DialogTitle";f.forwardRef((e,t)=>{let{__scopeDialog:n,...r}=e,a=eG(tt,n);return(0,p.jsx)(z.h2,{id:a.titleId,...r,ref:t})}).displayName=tt;var tn="DialogDescription";f.forwardRef((e,t)=>{let{__scopeDialog:n,...r}=e,a=eG(tn,n);return(0,p.jsx)(z.p,{id:a.descriptionId,...r,ref:t})}).displayName=tn;var tr="DialogClose";function ta(e){return e?"open":"closed"}f.forwardRef((e,t)=>{let{__scopeDialog:n,...r}=e,a=eG(tr,n);return(0,p.jsx)(z.button,{type:"button",...r,ref:t,onClick:w(e.onClick,()=>a.onOpenChange(!1))})}).displayName=tr;var ts="DialogTitleWarning",[ti,to]=(d={contentName:e6,titleName:tt,docsSlug:"dialog"},t=f.createContext(d),(n=e=>{let{children:n,...r}=e,a=f.useMemo(()=>r,Object.values(r));return(0,p.jsx)(t.Provider,{value:a,children:n})}).displayName=ts+"Provider",[n,function(e){let n=f.useContext(t);if(n)return n;if(void 0!==d)return d;throw Error(`\`${e}\` must be used within \`${ts}\``)}]),tl=({titleId:e})=>{let t=to(ts),n=`\`${t.contentName}\` requires a \`${t.titleName}\` for the component to be accessible for screen reader users.
|
|
2
|
-
|
|
3
|
-
If you want to hide the \`${t.titleName}\`, you can wrap it with our VisuallyHidden component.
|
|
4
|
-
|
|
5
|
-
For more information, see https://radix-ui.com/primitives/docs/components/${t.docsSlug}`;return f.useEffect(()=>{e&&(document.getElementById(e)||console.error(n))},[n,e]),null},tc=({contentRef:e,descriptionId:t})=>{let n=to("DialogDescriptionWarning"),r=`Warning: Missing \`Description\` or \`aria-describedby={undefined}\` for {${n.contentName}}.`;return f.useEffect(()=>{let n=e.current?.getAttribute("aria-describedby");t&&n&&(document.getElementById(t)||console.warn(r))},[r,e,t]),null},td='[cmdk-group=""]',tu='[cmdk-group-items=""]',tm='[cmdk-item=""]',tp=`${tm}:not([aria-disabled="true"])`,tf="cmdk-item-select",th="data-value",tg=(e,t,n)=>{var r;return r=e,function e(t,n,r,a,s,i,o){if(i===n.length)return s===t.length?1:.99;var l=`${s},${i}`;if(void 0!==o[l])return o[l];for(var c,d,u,m,p=a.charAt(i),f=r.indexOf(p,s),b=0;f>=0;)(c=e(t,n,r,a,f+1,i+1,o))>b&&(f===s?c*=1:h.test(t.charAt(f-1))?(c*=.8,(u=t.slice(s,f-1).match(g))&&s>0&&(c*=Math.pow(.999,u.length))):x.test(t.charAt(f-1))?(c*=.9,(m=t.slice(s,f-1).match(v))&&s>0&&(c*=Math.pow(.999,m.length))):(c*=.17,s>0&&(c*=Math.pow(.999,f-s))),t.charAt(f)!==n.charAt(i)&&(c*=.9999)),(c<.1&&r.charAt(f-1)===a.charAt(i+1)||a.charAt(i+1)===a.charAt(i)&&r.charAt(f-1)!==a.charAt(i))&&.1*(d=e(t,n,r,a,f+1,i+2,o))>c&&(c=.1*d),c>b&&(b=c),f=r.indexOf(p,f+1);return o[l]=b,b}(r=n&&n.length>0?`${r+" "+n.join(" ")}`:r,t,b(r),b(t),0,0,{})},tx=f.createContext(void 0),tv=f.createContext(void 0),tb=f.createContext(void 0),tw=f.forwardRef((e,t)=>{let n=tM(()=>{var t,n;return{search:"",value:null!=(n=null!=(t=e.value)?t:e.defaultValue)?n:"",selectedItemId:void 0,filtered:{count:0,items:new Map,groups:new Set}}}),r=tM(()=>new Set),a=tM(()=>new Map),s=tM(()=>new Map),i=tM(()=>new Set),o=tD(e),{label:l,children:c,value:d,onValueChange:u,filter:m,shouldFilter:p,loop:h,disablePointerSelection:g=!1,vimBindings:x=!0,...v}=e,b=E(),w=E(),j=E(),y=f.useRef(null),N=tz();tI(()=>{if(void 0!==d){let e=d.trim();n.current.value=e,k.emit()}},[d]),tI(()=>{N(6,T)},[]);let k=f.useMemo(()=>({subscribe:e=>(i.current.add(e),()=>i.current.delete(e)),snapshot:()=>n.current,setState:(e,t,r)=>{var a,s,i,l;if(!Object.is(n.current[e],t)){if(n.current[e]=t,"search"===e)M(),D(),N(1,I);else if("value"===e){if(document.activeElement.hasAttribute("cmdk-input")||document.activeElement.hasAttribute("cmdk-root")){let e=document.getElementById(j);e?e.focus():null==(a=document.getElementById(b))||a.focus()}if(N(7,()=>{var e;n.current.selectedItemId=null==(e=P())?void 0:e.id,k.emit()}),r||N(5,T),(null==(s=o.current)?void 0:s.value)!==void 0){null==(l=(i=o.current).onValueChange)||l.call(i,null!=t?t:"");return}}k.emit()}},emit:()=>{i.current.forEach(e=>e())}}),[]),S=f.useMemo(()=>({value:(e,t,r)=>{var a;t!==(null==(a=s.current.get(e))?void 0:a.value)&&(s.current.set(e,{value:t,keywords:r}),n.current.filtered.items.set(e,C(t,r)),N(2,()=>{D(),k.emit()}))},item:(e,t)=>(r.current.add(e),t&&(a.current.has(t)?a.current.get(t).add(e):a.current.set(t,new Set([e]))),N(3,()=>{M(),D(),n.current.value||I(),k.emit()}),()=>{s.current.delete(e),r.current.delete(e),n.current.filtered.items.delete(e);let t=P();N(4,()=>{M(),(null==t?void 0:t.getAttribute("id"))===e&&I(),k.emit()})}),group:e=>(a.current.has(e)||a.current.set(e,new Set),()=>{s.current.delete(e),a.current.delete(e)}),filter:()=>o.current.shouldFilter,label:l||e["aria-label"],getDisablePointerSelection:()=>o.current.disablePointerSelection,listId:b,inputId:j,labelId:w,listInnerRef:y}),[]);function C(e,t){var r,a;let s=null!=(a=null==(r=o.current)?void 0:r.filter)?a:tg;return e?s(e,n.current.search,t):0}function D(){if(!n.current.search||!1===o.current.shouldFilter)return;let e=n.current.filtered.items,t=[];n.current.filtered.groups.forEach(n=>{let r=a.current.get(n),s=0;r.forEach(t=>{s=Math.max(e.get(t),s)}),t.push([n,s])});let r=y.current;A().sort((t,n)=>{var r,a;let s=t.getAttribute("id"),i=n.getAttribute("id");return(null!=(r=e.get(i))?r:0)-(null!=(a=e.get(s))?a:0)}).forEach(e=>{let t=e.closest(tu);t?t.appendChild(e.parentElement===t?e:e.closest(`${tu} > *`)):r.appendChild(e.parentElement===r?e:e.closest(`${tu} > *`))}),t.sort((e,t)=>t[1]-e[1]).forEach(e=>{var t;let n=null==(t=y.current)?void 0:t.querySelector(`${td}[${th}="${encodeURIComponent(e[0])}"]`);null==n||n.parentElement.appendChild(n)})}function I(){let e=A().find(e=>"true"!==e.getAttribute("aria-disabled")),t=null==e?void 0:e.getAttribute(th);k.setState("value",t||void 0)}function M(){var e,t,i,l;if(!n.current.search||!1===o.current.shouldFilter){n.current.filtered.count=r.current.size;return}n.current.filtered.groups=new Set;let c=0;for(let a of r.current){let r=C(null!=(t=null==(e=s.current.get(a))?void 0:e.value)?t:"",null!=(l=null==(i=s.current.get(a))?void 0:i.keywords)?l:[]);n.current.filtered.items.set(a,r),r>0&&c++}for(let[e,t]of a.current)for(let r of t)if(n.current.filtered.items.get(r)>0){n.current.filtered.groups.add(e);break}n.current.filtered.count=c}function T(){var e,t,n;let r=P();r&&((null==(e=r.parentElement)?void 0:e.firstChild)===r&&(null==(n=null==(t=r.closest(td))?void 0:t.querySelector('[cmdk-group-heading=""]'))||n.scrollIntoView({block:"nearest"})),r.scrollIntoView({block:"nearest"}))}function P(){var e;return null==(e=y.current)?void 0:e.querySelector(`${tm}[aria-selected="true"]`)}function A(){var e;return Array.from((null==(e=y.current)?void 0:e.querySelectorAll(tp))||[])}function O(e){let t=A()[e];t&&k.setState("value",t.getAttribute(th))}function L(e){var t;let n=P(),r=A(),a=r.findIndex(e=>e===n),s=r[a+e];null!=(t=o.current)&&t.loop&&(s=a+e<0?r[r.length-1]:a+e===r.length?r[0]:r[a+e]),s&&k.setState("value",s.getAttribute(th))}function _(e){let t=P(),n=null==t?void 0:t.closest(td),r;for(;n&&!r;)r=null==(n=e>0?function(e,t){let n=e.nextElementSibling;for(;n;){if(n.matches(t))return n;n=n.nextElementSibling}}(n,td):function(e,t){let n=e.previousElementSibling;for(;n;){if(n.matches(t))return n;n=n.previousElementSibling}}(n,td))?void 0:n.querySelector(tp);r?k.setState("value",r.getAttribute(th)):L(e)}let R=()=>O(A().length-1),$=e=>{e.preventDefault(),e.metaKey?R():e.altKey?_(1):L(1)},F=e=>{e.preventDefault(),e.metaKey?O(0):e.altKey?_(-1):L(-1)};return f.createElement(z.div,{ref:t,tabIndex:-1,...v,"cmdk-root":"",onKeyDown:e=>{var t;null==(t=v.onKeyDown)||t.call(v,e);let n=e.nativeEvent.isComposing||229===e.keyCode;if(!(e.defaultPrevented||n))switch(e.key){case"n":case"j":x&&e.ctrlKey&&$(e);break;case"ArrowDown":$(e);break;case"p":case"k":x&&e.ctrlKey&&F(e);break;case"ArrowUp":F(e);break;case"Home":e.preventDefault(),O(0);break;case"End":e.preventDefault(),R();break;case"Enter":{e.preventDefault();let t=P();if(t){let e=new Event(tf);t.dispatchEvent(e)}}}}},f.createElement("label",{"cmdk-label":"",htmlFor:S.inputId,id:S.labelId,style:tO},l),tA(e,e=>f.createElement(tv.Provider,{value:k},f.createElement(tx.Provider,{value:S},e))))}),tj=f.forwardRef((e,t)=>{var n,r;let a=E(),s=f.useRef(null),i=f.useContext(tb),o=f.useContext(tx),l=tD(e),c=null!=(r=null==(n=l.current)?void 0:n.forceMount)?r:null==i?void 0:i.forceMount;tI(()=>{if(!c)return o.item(a,null==i?void 0:i.id)},[c]);let d=tP(a,s,[e.value,e.children,s],e.keywords),u=f.useContext(tv),m=tT(e=>e.value&&e.value===d.current),p=tT(e=>!!c||!1===o.filter()||!e.search||e.filtered.items.get(a)>0);function h(){var e,t;g(),null==(t=(e=l.current).onSelect)||t.call(e,d.current)}function g(){u.setState("value",d.current,!0)}if(f.useEffect(()=>{let t=s.current;if(!(!t||e.disabled))return t.addEventListener(tf,h),()=>t.removeEventListener(tf,h)},[p,e.onSelect,e.disabled]),!p)return null;let{disabled:x,value:v,onSelect:b,forceMount:w,keywords:j,...N}=e;return f.createElement(z.div,{ref:y(s,t),...N,id:a,"cmdk-item":"",role:"option","aria-disabled":!!x,"aria-selected":!!m,"data-disabled":!!x,"data-selected":!!m,onPointerMove:x||o.getDisablePointerSelection()?void 0:g,onClick:x?void 0:h},e.children)}),ty=f.forwardRef((e,t)=>{let{heading:n,children:r,forceMount:a,...s}=e,i=E(),o=f.useRef(null),l=f.useRef(null),c=E(),d=f.useContext(tx),u=tT(e=>!!a||!1===d.filter()||!e.search||e.filtered.groups.has(i));tI(()=>d.group(i),[]),tP(i,o,[e.value,e.heading,l]);let m=f.useMemo(()=>({id:i,forceMount:a}),[a]);return f.createElement(z.div,{ref:y(o,t),...s,"cmdk-group":"",role:"presentation",hidden:!u||void 0},n&&f.createElement("div",{ref:l,"cmdk-group-heading":"","aria-hidden":!0,id:c},n),tA(e,e=>f.createElement("div",{"cmdk-group-items":"",role:"group","aria-labelledby":n?c:void 0},f.createElement(tb.Provider,{value:m},e))))}),tN=f.forwardRef((e,t)=>{let{alwaysRender:n,...r}=e,a=f.useRef(null),s=tT(e=>!e.search);return n||s?f.createElement(z.div,{ref:y(a,t),...r,"cmdk-separator":"",role:"separator"}):null}),tk=f.forwardRef((e,t)=>{let{onValueChange:n,...r}=e,a=null!=e.value,s=f.useContext(tv),i=tT(e=>e.search),o=tT(e=>e.selectedItemId),l=f.useContext(tx);return f.useEffect(()=>{null!=e.value&&s.setState("search",e.value)},[e.value]),f.createElement(z.input,{ref:t,...r,"cmdk-input":"",autoComplete:"off",autoCorrect:"off",spellCheck:!1,"aria-autocomplete":"list",role:"combobox","aria-expanded":!0,"aria-controls":l.listId,"aria-labelledby":l.labelId,"aria-activedescendant":o,id:l.inputId,type:"text",value:a?e.value:i,onChange:e=>{a||s.setState("search",e.target.value),null==n||n(e.target.value)}})}),tS=f.forwardRef((e,t)=>{let{children:n,label:r="Suggestions",...a}=e,s=f.useRef(null),i=f.useRef(null),o=tT(e=>e.selectedItemId),l=f.useContext(tx);return f.useEffect(()=>{if(i.current&&s.current){let e=i.current,t=s.current,n,r=new ResizeObserver(()=>{n=requestAnimationFrame(()=>{let n=e.offsetHeight;t.style.setProperty("--cmdk-list-height",n.toFixed(1)+"px")})});return r.observe(e),()=>{cancelAnimationFrame(n),r.unobserve(e)}}},[]),f.createElement(z.div,{ref:y(s,t),...a,"cmdk-list":"",role:"listbox",tabIndex:-1,"aria-activedescendant":o,"aria-label":r,id:l.listId},tA(e,e=>f.createElement("div",{ref:y(i,l.listInnerRef),"cmdk-list-sizer":""},e)))}),tC=f.forwardRef((e,t)=>{let{open:n,onOpenChange:r,overlayClassName:a,contentClassName:s,container:i,...o}=e;return f.createElement(eJ,{open:n,onOpenChange:r},f.createElement(e1,{container:i},f.createElement(e5,{"cmdk-overlay":"",className:a}),f.createElement(e8,{"aria-label":e.label,"cmdk-dialog":"",className:s},f.createElement(tw,{ref:t,...o}))))}),tE=Object.assign(tw,{List:tS,Item:tj,Input:tk,Group:ty,Separator:tN,Dialog:tC,Empty:f.forwardRef((e,t)=>tT(e=>0===e.filtered.count)?f.createElement(z.div,{ref:t,...e,"cmdk-empty":"",role:"presentation"}):null),Loading:f.forwardRef((e,t)=>{let{progress:n,children:r,label:a="Loading...",...s}=e;return f.createElement(z.div,{ref:t,...s,"cmdk-loading":"",role:"progressbar","aria-valuenow":n,"aria-valuemin":0,"aria-valuemax":100,"aria-label":a},tA(e,e=>f.createElement("div",{"aria-hidden":!0},e)))})});function tD(e){let t=f.useRef(e);return tI(()=>{t.current=e}),t}var tI="u"<typeof window?f.useEffect:f.useLayoutEffect;function tM(e){let t=f.useRef();return void 0===t.current&&(t.current=e()),t}function tT(e){let t=f.useContext(tv),n=()=>e(t.snapshot());return f.useSyncExternalStore(t.subscribe,n,n)}function tP(e,t,n,r=[]){let a=f.useRef(),s=f.useContext(tx);return tI(()=>{var i;let o=(()=>{var e;for(let t of n){if("string"==typeof t)return t.trim();if("object"==typeof t&&"current"in t)return t.current?null==(e=t.current.textContent)?void 0:e.trim():a.current}})(),l=r.map(e=>e.trim());s.value(e,o,l),null==(i=t.current)||i.setAttribute(th,o),a.current=o}),a}var tz=()=>{let[e,t]=f.useState(),n=tM(()=>new Map);return tI(()=>{n.current.forEach(e=>e()),n.current=new Map},[e]),(e,r)=>{n.current.set(e,r),t({})}};function tA({asChild:e,children:t},n){let r;return e&&f.isValidElement(t)?f.cloneElement("function"==typeof(r=t.type)?r(t.props):"render"in r?r.render(t.props):t,{ref:t.ref},n(t.props.children)):n(t)}var tO={position:"absolute",width:"1px",height:"1px",padding:"0",margin:"-1px",overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",borderWidth:"0"},tL=e.i(465458),t_=e.i(209988),tR=e.i(294237);function t$({className:e,...t}){return(0,p.jsx)("div",{"data-slot":"input-group",role:"group",className:(0,tL.cn)("group/input-group relative flex h-8 w-full min-w-0 items-center rounded-lg border border-input transition-colors outline-none in-data-[slot=combobox-content]:focus-within:border-inherit in-data-[slot=combobox-content]:focus-within:ring-0 has-disabled:bg-input/50 has-disabled:opacity-50 has-[[data-slot=input-group-control]:focus-visible]:border-ring has-[[data-slot=input-group-control]:focus-visible]:ring-3 has-[[data-slot=input-group-control]:focus-visible]:ring-ring/50 has-[[data-slot][aria-invalid=true]]:border-destructive has-[[data-slot][aria-invalid=true]]:ring-3 has-[[data-slot][aria-invalid=true]]:ring-destructive/20 has-[>[data-align=block-end]]:h-auto has-[>[data-align=block-end]]:flex-col has-[>[data-align=block-start]]:h-auto has-[>[data-align=block-start]]:flex-col has-[>textarea]:h-auto dark:bg-input/30 dark:has-disabled:bg-input/80 dark:has-[[data-slot][aria-invalid=true]]:ring-destructive/40 has-[>[data-align=block-end]]:[&>input]:pt-3 has-[>[data-align=block-start]]:[&>input]:pb-3 has-[>[data-align=inline-end]]:[&>input]:pr-1.5 has-[>[data-align=inline-start]]:[&>input]:pl-1.5",e),...t})}e.i(260218),e.i(681622),e.i(788010);let tF=(0,tR.cva)("flex h-auto cursor-text items-center justify-center gap-2 py-1.5 text-sm font-medium text-muted-foreground select-none group-data-[disabled=true]/input-group:opacity-50 [&>kbd]:rounded-[calc(var(--radius)-5px)] [&>svg:not([class*='size-'])]:size-4",{variants:{align:{"inline-start":"order-first pl-2 has-[>button]:ml-[-0.3rem] has-[>kbd]:ml-[-0.15rem]","inline-end":"order-last pr-2 has-[>button]:mr-[-0.3rem] has-[>kbd]:mr-[-0.15rem]","block-start":"order-first w-full justify-start px-2.5 pt-2 group-has-[>input]/input-group:pt-2 [.border-b]:pb-2","block-end":"order-last w-full justify-start px-2.5 pb-2 group-has-[>input]/input-group:pb-2 [.border-t]:pt-2"}},defaultVariants:{align:"inline-start"}});function tW({className:e,align:t="inline-start",...n}){return(0,p.jsx)("div",{role:"group","data-slot":"input-group-addon","data-align":t,className:(0,tL.cn)(tF({align:t}),e),onClick:e=>{e.target.closest("button")||e.currentTarget.parentElement?.querySelector("input")?.focus()},...n})}(0,tR.cva)("flex items-center gap-2 text-sm shadow-none",{variants:{size:{xs:"h-6 gap-1 rounded-[calc(var(--radius)-3px)] px-1.5 [&>svg:not([class*='size-'])]:size-3.5",sm:"","icon-xs":"size-6 rounded-[calc(var(--radius)-3px)] p-0 has-[>svg]:p-0","icon-sm":"size-8 p-0 has-[>svg]:p-0"}},defaultVariants:{size:"xs"}});var tB=e.i(367914);function tU({className:e,...t}){return(0,p.jsx)(tE,{"data-slot":"command",className:(0,tL.cn)("flex size-full flex-col overflow-hidden rounded-xl! bg-popover p-1 text-popover-foreground",e),...t})}function tH({title:e="Command Palette",description:t="Search for a command to run...",children:n,className:r,showCloseButton:a=!1,...s}){return(0,p.jsxs)(t_.Dialog,{...s,children:[(0,p.jsxs)(t_.DialogHeader,{className:"sr-only",children:[(0,p.jsx)(t_.DialogTitle,{children:e}),(0,p.jsx)(t_.DialogDescription,{children:t})]}),(0,p.jsx)(t_.DialogContent,{className:(0,tL.cn)("overflow-hidden rounded-xl! p-0",r),showCloseButton:a,children:n})]})}function tK({className:e,...t}){return(0,p.jsx)("div",{"data-slot":"command-input-wrapper",className:"p-1 pb-0",children:(0,p.jsxs)(t$,{className:"h-8! rounded-lg! border-input/30 bg-input/30 shadow-none! *:data-[slot=input-group-addon]:pl-2!",children:[(0,p.jsx)(tE.Input,{"data-slot":"command-input",className:(0,tL.cn)("w-full text-sm outline-hidden disabled:cursor-not-allowed disabled:opacity-50",e),...t}),(0,p.jsx)(tW,{children:(0,p.jsx)(tB.SearchIcon,{className:"size-4 shrink-0 opacity-50"})})]})})}function tV({className:e,...t}){return(0,p.jsx)(tE.List,{"data-slot":"command-list",className:(0,tL.cn)("no-scrollbar max-h-72 scroll-py-1 overflow-x-hidden overflow-y-auto outline-none",e),...t})}function tq({className:e,...t}){return(0,p.jsx)(tE.Empty,{"data-slot":"command-empty",className:(0,tL.cn)("py-6 text-center text-sm",e),...t})}function tX({className:e,...t}){return(0,p.jsx)(tE.Group,{"data-slot":"command-group",className:(0,tL.cn)("overflow-hidden p-1 text-foreground **:[[cmdk-group-heading]]:px-2 **:[[cmdk-group-heading]]:py-1.5 **:[[cmdk-group-heading]]:text-xs **:[[cmdk-group-heading]]:font-medium **:[[cmdk-group-heading]]:text-muted-foreground",e),...t})}function tG({className:e,children:t,...n}){return(0,p.jsx)(tE.Item,{"data-slot":"command-item",className:(0,tL.cn)("group/command-item relative flex w-full cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none in-data-[slot=dialog-content]:rounded-lg! data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50 hover:bg-muted data-selected:text-foreground [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 data-selected:*:[svg]:text-foreground",e),...n,children:t})}function tJ({className:e,...t}){return(0,p.jsx)("span",{"data-slot":"command-shortcut",className:(0,tL.cn)("ml-auto text-xs tracking-widest text-muted-foreground group-data-selected/command-item:text-foreground",e),...t})}var tY=e.i(640376),tZ=e.i(227634),tQ=e.i(938306),t0=e.i(31807);let t1={prefix:"channel",aliases:["ch","c"],label:"Channel",icon:tZ.Hash,search:e=>{let{channels:t,setActiveChannel:n}=t0.useChannelStore.getState(),r=e.toLowerCase();return t.filter(e=>e.name.toLowerCase().includes(r)).map(e=>({id:e.id,label:e.name,description:e.type,icon:tQ.MessageCircle,action:()=>n(e.id)}))}};var t2=e.i(592039),t5=e.i(511800),t3=e.i(327964);let t4={prefix:"issue",aliases:["i","bug"],label:"Issue",icon:t2.CircleDot,search:e=>{let{issues:t,setActiveIssue:n}=t3.useIssueStore.getState(),r=e.toLowerCase();return t.filter(e=>e.title.toLowerCase().includes(r)||e.description?.toLowerCase().includes(r)).map(e=>({id:e.id,label:e.title,description:e.status,icon:t5.AlertCircle,action:()=>n(e.id)}))}};var t6=e.i(984178),t8=e.i(381253),t9=e.i(691223),t7=e.i(437122);let ne=new Set(["ts","tsx","js","jsx","py","rs","go","java","c","cpp","h","css","scss","html","json","yaml","yml","md","sql","sh"]),nt={prefix:"file",aliases:["f","open"],label:"File",icon:t6.FileIcon,search:async e=>{let{openFile:t}=t9.useEditorStore.getState(),{workspaceId:n}=t0.useChannelStore.getState();if(!n)return[];let r=await (0,t7.fetchWithAuth)(`/api/workspaces/${n}/search/files?q=${encodeURIComponent(e)}`);return r.ok?((await r.json()).results??[]).map(e=>{var r;let a;return{id:e.path,label:e.name,description:e.path,icon:(r=e.path,a=r.split(".").pop()?.toLowerCase()??"",ne.has(a)?t8.FileCode:t6.FileIcon),action:()=>t(n,e.path)}}):[]}};var nn=e.i(451534);let nr=(0,e.i(433721).default)("briefcase",[["path",{d:"M16 20V4a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v16",key:"jecpp"}],["rect",{width:"20",height:"14",x:"2",y:"6",rx:"2",key:"i6l2r4"}]]);var na=e.i(361031),ns=e.i(233297);let ni={prefix:"workspace",aliases:["w","ws"],label:"Workspace",icon:nn.FolderOpen,search:e=>{let{workspaces:t}=na.useWorkspaceStore.getState(),n=e.toLowerCase();return t.filter(e=>e.name.toLowerCase().includes(n)||e.boundDirs.some(e=>e.toLowerCase().includes(n))).map(e=>({id:e.id,label:e.name,description:e.boundDirs[0],icon:nr,action:()=>{let t=(0,ns.toStaticHref)(`/workspace/${e.id}`);window.location.href=t}}))}};var no=e.i(100559),nl=e.i(882469),nc=e.i(523592);let nd=[t1,t4,nt,ni,{prefix:"server",aliases:["s","sv"],label:"Server",icon:no.Server,search:e=>{let t=(0,nc.loadServers)(),n=(0,nc.loadActiveId)(),r=e.toLowerCase();return t.filter(e=>e.name.toLowerCase().includes(r)||e.url.toLowerCase().includes(r)).map(e=>({id:e.id,label:e.name+(e.id===n?" (active)":""),description:e.url,icon:nl.Globe,action:()=>{t9.useEditorStore.getState().resetEditorState(),(0,nc.saveActiveId)(e.id),(0,nc.setActiveServerCookie)(e.url),window.location.reload()}}))}}];function nu(e){for(let t of nd)for(let n of[t.prefix,...t.aliases])if(e===n+" "||e.startsWith(n+" "))return{provider:t,keyword:e.slice(n.length+1)};return null}var nm=e.i(244073);e.s(["CommandPalette",0,function(){let e=(0,nm.useTranslations)("commandPalette"),{open:t,setOpen:n,toggle:r,commands:a}=(0,tY.useCommandPalette)(),[s,i]=(0,f.useState)("");(0,f.useEffect)(()=>{let e=e=>{(e.metaKey||e.ctrlKey)&&"k"===e.key&&(e.preventDefault(),r())};return document.addEventListener("keydown",e),()=>document.removeEventListener("keydown",e)},[r]),(0,f.useEffect)(()=>{if(!t){i("");let e=document.querySelector("[cmdk-input]");e&&(e.value="")}},[t]);let o=(0,f.useMemo)(()=>nu(s),[s]),[l,c]=(0,f.useState)([]),[d,u]=(0,f.useState)(!1);(0,f.useEffect)(()=>{let e=nu(s);if(!e){c([]),u(!1);return}let t=e.provider.search(e.keyword);if(t instanceof Promise){u(!0);let e=!1;return t.then(t=>{e||c(t)}).finally(()=>{e||u(!1)}),()=>{e=!0}}c(t),u(!1)},[s]);let m=(0,f.useMemo)(()=>{let e=new Map;for(let t of a){let n=e.get(t.group)??[];n.push(t),e.set(t.group,n)}return e},[a]),h=(0,f.useMemo)(()=>nd.map(e=>({id:`hint:${e.prefix}`,label:e.prefix,description:[...e.aliases].join(", "),icon:e.icon})),[]),g=!!o;return(0,p.jsx)(tH,{open:t,onOpenChange:n,title:e("title"),description:e("description"),children:(0,p.jsxs)(tU,{shouldFilter:!o,children:[(0,p.jsx)(tK,{placeholder:e("placeholder"),value:s,onValueChange:i}),(0,p.jsxs)(tV,{children:[(0,p.jsx)(tq,{children:e("empty")}),g&&(0,p.jsx)(tX,{heading:o.provider.label,children:d?(0,p.jsx)("div",{className:"px-2 py-4 text-center text-sm text-muted-foreground",children:"..."}):0===l.length?(0,p.jsx)("div",{className:"px-2 py-4 text-center text-sm text-muted-foreground",children:e("noResults")}):l.slice(0,10).map(e=>(0,p.jsxs)(tG,{value:e.label,onSelect:()=>{n(!1),e.action()},children:[e.icon&&(0,p.jsx)(e.icon,{className:"size-4 shrink-0"}),(0,p.jsx)("span",{className:"truncate min-w-0",children:e.label}),e.description&&(0,p.jsx)("span",{className:"ml-auto shrink-0 text-xs text-muted-foreground truncate max-w-[200px]",children:e.description})]},e.id))}),!o&&(0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)(tX,{heading:"Search",children:h.map(e=>(0,p.jsxs)(tG,{value:e.label,className:"[&>svg:last-child]:hidden!",onSelect:()=>i(e.label+" "),children:[e.icon&&(0,p.jsx)(e.icon,{className:"size-4 shrink-0"}),(0,p.jsx)("span",{className:"truncate min-w-0",children:e.label}),e.description&&(0,p.jsx)("span",{className:"ml-auto text-xs text-muted-foreground text-right shrink-0",children:e.description})]},e.id))}),[...m.entries()].map(([e,t])=>(0,p.jsx)(tX,{heading:e,children:t.map(e=>(0,p.jsxs)(tG,{value:e.label,onSelect:()=>{n(!1),e.action()},children:[e.icon&&(0,p.jsx)(e.icon,{className:"size-4 shrink-0"}),(0,p.jsx)("span",{className:"truncate min-w-0",children:e.label}),e.shortcut&&(0,p.jsx)(tJ,{children:e.shortcut})]},e.id))},e))]})]})]})})}],698679)}]);
|