@auto-ai/agent 2.1.97 → 2.1.98
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/404/index.html +1 -1
- package/dist/404.html +1 -1
- package/dist/_next/static/chunks/{dfa1d01a3980836a.js → 442d298f96035d5d.js} +1 -1
- package/dist/_next/static/chunks/{52b5f438315e1669.js → 91c478c455e6fe7d.js} +1 -1
- package/dist/_next/static/chunks/ef1e3e3691ffdba4.js +1 -0
- package/dist/_next/static/chunks/fedb1cd789e83a36.js +1 -0
- package/dist/index.html +1 -1
- package/dist/index.txt +4 -4
- package/dist/manage/about/index.html +2 -2
- package/dist/manage/about/index.txt +7 -7
- package/dist/manage/add-account/basic/index.html +2 -2
- package/dist/manage/add-account/basic/index.txt +9 -9
- package/dist/manage/add-account/index.html +2 -2
- package/dist/manage/add-account/index.txt +9 -9
- package/dist/manage/add-account/prompt/index.html +2 -2
- package/dist/manage/add-account/prompt/index.txt +9 -9
- package/dist/manage/agent-teams/index.html +2 -2
- package/dist/manage/agent-teams/index.txt +9 -9
- package/dist/manage/env/index.html +2 -2
- package/dist/manage/env/index.txt +9 -9
- package/dist/manage/general/index.html +2 -2
- package/dist/manage/general/index.txt +7 -7
- package/dist/manage/index.html +1 -1
- package/dist/manage/index.txt +4 -4
- package/dist/manage/mcp/index.html +2 -2
- package/dist/manage/mcp/index.txt +9 -9
- package/dist/manage/permissions/index.html +2 -2
- package/dist/manage/permissions/index.txt +7 -7
- package/dist/manage/skills/index.html +2 -2
- package/dist/manage/skills/index.txt +9 -9
- package/dist/manage/task/index.html +2 -2
- package/dist/manage/task/index.txt +7 -7
- package/dist/manage/teams/index.html +1 -1
- package/dist/manage/teams/index.txt +6 -6
- package/dist/manage/tools/index.html +2 -2
- package/dist/manage/tools/index.txt +9 -9
- package/dist/ws-test.html +1 -1
- package/lib/launcher-env.js +2 -1
- package/mcps-runtime/claude-tuitui/.mcp.json +2 -2
- package/package.json +6 -6
- package/dist/_next/static/chunks/7cdc032fa6c9ed66.js +0 -1
- package/dist/_next/static/chunks/8febd4f373e343fe.js +0 -1
- /package/dist/_next/static/{Y0q5wZJWOYM0DHKGzws1i → cTHBIunE3OANgRkUnrMUo}/_buildManifest.js +0 -0
- /package/dist/_next/static/{Y0q5wZJWOYM0DHKGzws1i → cTHBIunE3OANgRkUnrMUo}/_clientMiddlewareManifest.json +0 -0
- /package/dist/_next/static/{Y0q5wZJWOYM0DHKGzws1i → cTHBIunE3OANgRkUnrMUo}/_ssgManifest.js +0 -0
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
"mcpServers": {
|
|
3
3
|
"tuitui": {
|
|
4
4
|
"command": "node",
|
|
5
|
-
"args": ["${
|
|
5
|
+
"args": ["${WS_AGENTS_ROOT}/mcps-runtime/claude-tuitui/server/boot.mjs"],
|
|
6
6
|
"env": {
|
|
7
7
|
"TUITUI_APP_ID": "${TUITUI_APP_ID}",
|
|
8
8
|
"TUITUI_APP_SECRET": "${TUITUI_APP_SECRET}",
|
|
9
|
-
"TUITUI_STATE_DIR": "${
|
|
9
|
+
"TUITUI_STATE_DIR": "${WS_AGENTS_ROOT}/mcps-runtime/claude-tuitui/.state",
|
|
10
10
|
"TUITUI_DM_POLICY": "allowlist",
|
|
11
11
|
"TUITUI_GROUP_POLICY": "allowlist",
|
|
12
12
|
"TUITUI_REQUIRE_MENTION": "true",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@auto-ai/agent",
|
|
3
|
-
"version": "2.1.
|
|
3
|
+
"version": "2.1.98",
|
|
4
4
|
"description": "Auto AI Agent 网关 CLI(WebSocket,独立二进制,无需 Bun)",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"maintainers": [
|
|
@@ -25,11 +25,11 @@
|
|
|
25
25
|
"node": ">=18"
|
|
26
26
|
},
|
|
27
27
|
"optionalDependencies": {
|
|
28
|
-
"@auto-ai/agent-linux-x64": "2.1.
|
|
29
|
-
"@auto-ai/agent-linux-arm64": "2.1.
|
|
30
|
-
"@auto-ai/agent-darwin-x64": "2.1.
|
|
31
|
-
"@auto-ai/agent-darwin-arm64": "2.1.
|
|
32
|
-
"@auto-ai/agent-win-x64": "2.1.
|
|
28
|
+
"@auto-ai/agent-linux-x64": "2.1.98",
|
|
29
|
+
"@auto-ai/agent-linux-arm64": "2.1.98",
|
|
30
|
+
"@auto-ai/agent-darwin-x64": "2.1.98",
|
|
31
|
+
"@auto-ai/agent-darwin-arm64": "2.1.98",
|
|
32
|
+
"@auto-ai/agent-win-x64": "2.1.98"
|
|
33
33
|
},
|
|
34
34
|
"scripts": {
|
|
35
35
|
"prepare": "node ../../scripts/sync-launcher-env.js",
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,93479,e=>{"use strict";e.s(["Input",()=>l]);var t=e.i(18050),a=e.i(75157);function l(e){let{className:l,type:s="text",size:r="default",...n}=e;return(0,t.jsx)("input",{type:s,"data-slot":"input","data-size":r,className:(0,a.cn)("h-8 w-full appearance-none rounded-md border border-solid border-border bg-transparent px-3 text-base outline-none transition-[color,box-shadow,border-color] duration-150 ease-in-out placeholder:text-muted-foreground hover:border-[#e0e0e0] focus-visible:border-[var(--border-focus)] focus-visible:[box-shadow:var(--ring-focus-sm)] read-only:focus-visible:border-border read-only:focus-visible:[box-shadow:none] disabled:cursor-not-allowed disabled:opacity-50 disabled:focus-visible:border-border disabled:focus-visible:[box-shadow:none] data-[size=default]:h-8 data-[size=lg]:h-10 data-[size=sm]:h-7",l),...n})}},24687,e=>{"use strict";e.s(["Textarea",()=>l]);var t=e.i(18050),a=e.i(75157);function l(e){let{className:l,...s}=e;return(0,t.jsx)("textarea",{"data-slot":"textarea",className:(0,a.cn)("flex min-h-20 w-full rounded-md border border-solid border-border bg-transparent px-3 py-2 text-sm outline-none transition-[color,box-shadow,border-color] duration-150 ease-in-out placeholder:text-muted-foreground hover:border-[#e0e0e0] focus-visible:border-[var(--border-focus)] focus-visible:[box-shadow:var(--ring-focus-sm)] read-only:focus-visible:border-border read-only:focus-visible:[box-shadow:none] disabled:cursor-not-allowed disabled:opacity-50 disabled:focus-visible:border-border disabled:focus-visible:[box-shadow:none]",l),...s})}},53925,e=>{"use strict";e.s(["ResourceImportDialog",()=>u],53925);var t=e.i(18050),a=e.i(71645),l=e.i(72064),s=e.i(75157),r=e.i(19455);function n(e){return e<1024?"".concat(e," B"):e<1048576?"".concat((e/1024).toFixed(1)," KB"):"".concat((e/1048576).toFixed(1)," MB")}function i(e){let{uploadUrl:i,accept:o,disabled:d=!1,multiple:c=!1,maxFileSize:u=0x3200000,autoUpload:m=!1,method:p="POST",transport:x="xhr",fieldName:f="file",headers:b,extraFormData:h,autoRetryTimes:g=0,autoRetryDelayMs:v=800,selectionOnly:y=!1,className:C,emptyTitle:j="点击或拖拽文件到此处",emptyHint:w="支持上传文件",onFilesChange:N,onUploadSuccess:k,onUploadError:S,onValidationError:T}=e,A=a.useId(),R=a.useRef(null),E=a.useRef(new Map),M=a.useRef(new Map),P=a.useRef([]),[U,I]=a.useState(!1),[z,B]=a.useState([]),O=a.useMemo(()=>o?o.split(",").map(e=>e.trim().toLowerCase()).filter(Boolean):[],[o]);a.useEffect(()=>{P.current=z,null==N||N(z)},[z,N]),a.useEffect(()=>()=>{for(let e of E.current.values())e.abort();for(let e of M.current.values())e.abort();for(let e of P.current)e.previewUrl&&URL.revokeObjectURL(e.previewUrl)},[]);let D=a.useCallback((e,t)=>{B(a=>a.map(a=>a.id===e?{...a,...t}:a))},[]),L=a.useCallback(async(e,t)=>{let a=P.current.find(t=>t.id===e);if(!a||d)return;D(e,{status:t>0?"retrying":"uploading",progress:0,error:"",retryCount:t});let l=new FormData;if(h)for(let[e,t]of Object.entries(h))l.append(e,t);l.append(f,a.file);try{let t="";if("fetch"===x){let a=new AbortController;M.current.set(e,a);let s=await fetch(i,{method:p,headers:b,body:l,signal:a.signal}),r=await s.text();try{t=r?JSON.parse(r):""}catch(e){t=r}if(!s.ok)throw Error("上传失败:".concat(s.status," ").concat(s.statusText))}else t=await new Promise((t,a)=>{let s=new XMLHttpRequest;if(E.current.set(e,s),s.open(p,i,!0),b)for(let[e,t]of Object.entries(b))s.setRequestHeader(e,t);s.upload.onprogress=t=>{if(!t.lengthComputable)return;let a=Math.min(100,Math.round(t.loaded/t.total*100));D(e,{progress:a})},s.onerror=()=>a(Error("网络异常,上传失败")),s.onabort=()=>a(Error("__ABORTED__")),s.onload=()=>{s.status>=200&&s.status<300?t(function(e){let t=e.responseText||"";try{return JSON.parse(t)}catch(e){return t}}(s)):a(Error("上传失败:".concat(s.status," ").concat(s.statusText)))},s.send(l)});D(e,{status:"success",progress:100,error:""});let a=P.current.find(t=>t.id===e);a&&(null==k||k(a,t))}catch(s){let a=s instanceof Error?s.message:String(s);if("__ABORTED__"===a)return void D(e,{status:"selected",progress:0,error:""});if(t<g){D(e,{status:"retrying",error:"重试中(".concat(t+1,"/").concat(g,")")}),await new Promise(e=>window.setTimeout(e,v)),await L(e,t+1);return}D(e,{status:"error",error:a});let l=P.current.find(t=>t.id===e);l&&(null==S||S(l,a))}finally{E.current.delete(e),M.current.delete(e)}},[v,g,d,h,f,b,p,S,k,x,D,i]),_=a.useCallback(e=>{L(e,0)},[L]),F=a.useCallback(e=>{var t,a;null==(t=E.current.get(e))||t.abort(),null==(a=M.current.get(e))||a.abort()},[]),K=a.useCallback(()=>{for(let e of P.current)("selected"===e.status||"error"===e.status)&&_(e.id)},[_]),V=a.useCallback(e=>{if(d||!e.length)return;let t=new Set(P.current.map(e=>"".concat(e.file.name,"::").concat(e.file.size))),a=[];for(let l of e){let e="".concat(l.name,"::").concat(l.size);if(!t.has(e)){if(!function(e,t){if(!t.length)return!0;let a=e.name.toLowerCase(),l=(e.type||"").toLowerCase();return t.some(e=>e.startsWith(".")?a.endsWith(e):e.endsWith("/*")?l.startsWith("".concat(e.slice(0,-1))):l===e)}(l,O)){null==T||T("文件类型不支持:".concat(l.name));continue}if(l.size>u){null==T||T("文件过大(最大 ".concat(n(u),"):").concat(l.name));continue}t.add(e),a.push({id:"".concat(Date.now(),"-").concat(Math.random().toString(36).slice(2,8)),file:l,status:"selected",progress:0,error:"",retryCount:0,previewUrl:l.type.startsWith("image/")?URL.createObjectURL(l):""})}}if(!a.length)return;let l=c?[...P.current,...a]:[a[a.length-1]];if(!c)for(let e of P.current)e.previewUrl&&URL.revokeObjectURL(e.previewUrl);if(B(l),m&&!y)for(let e of a)_(e.id)},[O,m,d,u,c,T,y,_]),H=a.useCallback(e=>{let t=e.target.files;t&&(V(Array.from(t)),e.target.value="")},[V]),J=a.useCallback(e=>{var t;e.preventDefault(),e.stopPropagation(),I(!1),d||V(Array.from(null!=(t=e.dataTransfer.files)?t:[]))},[V,d]);return(0,t.jsxs)("div",{className:(0,s.cn)("flex min-h-0 w-full flex-col gap-3",C),children:[(0,t.jsx)("input",{ref:R,id:A,type:"file",hidden:!0,accept:o,multiple:c,disabled:d,onChange:H}),(0,t.jsxs)("label",{htmlFor:A,onDragOver:e=>{e.preventDefault(),d||I(!0)},onDragLeave:e=>{e.preventDefault(),I(!1)},onDrop:J,className:(0,s.cn)("flex min-h-[124px] cursor-pointer flex-col items-center justify-center gap-1 rounded-lg border border-dashed border-[var(--ds-border)] px-4 py-6 text-center transition-colors hover:border-[var(--ds-border-hover)] hover:bg-[var(--ds-main-tint)]",U&&"bg-[var(--ds-accent)]/5 border-[var(--ds-accent)]",d&&"cursor-not-allowed opacity-60"),children:[(0,t.jsx)(l.default,{name:"Upload",size:20,className:"text-[var(--ds-muted)]"}),(0,t.jsx)("div",{className:"text-base text-[var(--ds-text)]",children:j}),(0,t.jsx)("div",{className:"text-sm text-[var(--ds-muted)]",children:w})]}),z.length?(0,t.jsx)("div",{className:"space-y-2",children:z.map(e=>(0,t.jsx)("div",{className:"rounded-md border border-[var(--ds-border)] p-2.5",children:(0,t.jsxs)("div",{className:"flex items-start justify-between gap-3",children:[(0,t.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,t.jsx)("div",{className:"truncate text-base text-[var(--ds-text)]",children:e.file.name}),(0,t.jsx)("div",{className:"text-sm text-[var(--ds-muted)]",children:n(e.file.size)}),e.previewUrl?(0,t.jsx)("img",{src:e.previewUrl,alt:e.file.name,className:"mt-2 h-14 w-14 rounded object-cover"}):null,"uploading"===e.status||"retrying"===e.status?(0,t.jsx)("div",{className:"mt-2 h-1.5 w-full overflow-hidden rounded bg-[var(--ds-main-tint)]",children:(0,t.jsx)("div",{className:"h-full bg-[var(--ds-accent)] transition-all",style:{width:"".concat(e.progress,"%")}})}):null,"error"===e.status?(0,t.jsx)("div",{className:"mt-1 text-sm text-[var(--ds-danger)]",children:e.error||"上传失败"}):null]}),y?null:(0,t.jsxs)("div",{className:"flex items-center gap-1",children:["success"===e.status?(0,t.jsx)(l.default,{name:"CheckCircle2",size:16,className:"text-[var(--ds-accent)]"}):null,"selected"===e.status||"error"===e.status?(0,t.jsxs)(r.Button,{type:"button",size:"sm",variant:"outline",disabled:d,onClick:()=>_(e.id),children:["error"===e.status?(0,t.jsx)(l.default,{name:"RefreshCw",size:14,className:"mr-1"}):null,"error"===e.status?"重试":"上传"]}):null,"uploading"===e.status||"retrying"===e.status?(0,t.jsxs)(r.Button,{type:"button",size:"sm",variant:"outline",onClick:()=>F(e.id),children:[(0,t.jsx)(l.default,{name:"XCircle",size:14,className:"mr-1"}),"取消"]}):null]})]})},e.id))}):null,!y&&!m&&z.some(e=>"selected"===e.status||"error"===e.status)?(0,t.jsx)("div",{className:"flex justify-end",children:(0,t.jsx)(r.Button,{type:"button",size:"sm",onClick:K,disabled:d,children:"上传"})}):null]})}var o=e.i(76639),d=e.i(13354),c=e.i(29250);function u(e){let{open:l,onOpenChange:s,title:n,description:u,uploadUrl:m,resetKey:p}=e,[x,f]=(0,a.useState)(!1),[b,h]=(0,a.useState)(null),g=(0,a.useCallback)(()=>{s(!1),h(null)},[s]),v=(0,a.useCallback)(async()=>{if(!b)return void d.appToast.info("请先选择 zip 文件");let e=new FormData;e.append("file",b),f(!0);try{let t=await (0,c.bridgeFetch)(m,{method:"POST",body:e}),a=Number(t.imported||0),l=Number(t.overwritten||0),s=Array.isArray(t.rejected)?t.rejected.length:0;d.appToast.success("导入完成:导入 ".concat(a,",覆盖 ").concat(l)+(s>0?",拒绝 ".concat(s):"")),g()}catch(e){d.appToast.error("导入失败:".concat(e instanceof Error?e.message:String(e)))}finally{f(!1)}},[g,b,m]);return(0,t.jsx)(o.Dialog,{open:l,onOpenChange:e=>{s(e),e||h(null)},children:(0,t.jsxs)(o.DialogContent,{className:"flex min-h-[320px] max-w-[560px] flex-col",children:[(0,t.jsxs)(o.DialogHeader,{children:[(0,t.jsxs)("div",{children:[(0,t.jsx)(o.DialogTitle,{children:n}),(0,t.jsx)(o.DialogDescription,{children:u})]}),(0,t.jsx)(o.DialogClose,{className:"sidebar-icon-btn","aria-label":"关闭",onClick:g,children:"✕"})]}),(0,t.jsxs)("div",{className:"m-3 flex flex-1 flex-col gap-3",children:[(0,t.jsx)(i,{uploadUrl:m,accept:".zip,application/zip",maxFileSize:0x3200000,multiple:!1,disabled:x,selectionOnly:!0,emptyTitle:"点击或拖拽 zip 文件到此处",emptyHint:"支持 .zip 格式,最大 50MB",onFilesChange:e=>{var t,a;h(null!=(a=null==(t=e[0])?void 0:t.file)?a:null)},onValidationError:e=>{d.appToast.info(e)}},"".concat(l?"open":"closed","-").concat(null!=p?p:m)),(0,t.jsxs)("div",{className:"mt-auto flex justify-end pt-2",children:[(0,t.jsx)(r.Button,{className:"mr-[12px]",type:"button",variant:"plain-outline",size:"lg",onClick:g,children:"取消"}),(0,t.jsx)(r.Button,{type:"button",size:"lg",variant:"default",disabled:x||null==b,onClick:()=>void v(),children:x?"导入中…":"确定"})]})]})]})})}},94197,e=>{"use strict";e.s(["IconTooltipButton",()=>i]);var t=e.i(18050),a=e.i(72064),l=e.i(19455),s=e.i(46798),r=e.i(75157);let n={muted:"text-[var(--ds-muted)] hover:text-[var(--ds-text)]",danger:"text-red-600 hover:text-red-800 [&_svg]:!text-red-600 hover:[&_svg]:!text-red-800"};function i(e){let{icon:i,label:o,ariaLabel:d,tone:c="muted",disabled:u,className:m,iconClassName:p,onClick:x}=e;return(0,t.jsx)(s.TooltipProvider,{delayDuration:150,children:(0,t.jsxs)(s.Tooltip,{children:[(0,t.jsx)(s.TooltipTrigger,{asChild:!0,children:(0,t.jsx)(l.Button,{type:"button",variant:"plain",size:"icon",className:(0,r.cn)("h-8 w-8",n[c],m),disabled:u,"aria-label":null!=d?d:o,onClick:x,children:(0,t.jsx)(a.default,{name:i,size:16,className:p})})}),(0,t.jsx)(s.TooltipContent,{side:"bottom",align:"center",children:o})]})})}},56708,e=>{"use strict";e.s(["ManageChromeHeaderActions",()=>i,"ManageFeatureChrome",()=>n]);var t=e.i(18050),a=e.i(71645),l=e.i(74080),s=e.i(72064);let r=(0,a.createContext)(null);function n(e){let{title:l,description:n,children:i,showTitle:o=!0,headerIcon:d}=e,[c,u]=(0,a.useState)(null);return(0,t.jsxs)("div",{className:"manage-page-wrap flex min-h-0 flex-1 flex-col",children:[(0,t.jsxs)("div",{className:"manage-page-header flex shrink-0 items-start justify-between gap-[var(--space-4)] pb-[var(--space-4)]",children:[o?(0,t.jsxs)("div",{className:"manage-page-title-block flex items-center",children:[d&&(0,t.jsx)("div",{className:"mr-3 rounded-md bg-[var(--green-light)] px-4 py-3",children:(0,t.jsx)(s.default,{name:d,size:24,className:"text-[var(--green-dark)]",strokeWidth:1.5})}),(0,t.jsxs)("div",{className:"pt-3",children:[(0,t.jsx)("h1",{className:"manage-page-title",children:l}),(0,t.jsx)("p",{className:"manage-page-desc",children:n})]})]}):null,(0,t.jsx)("div",{ref:u,className:"manage-page-header-actions self-start"})]}),(0,t.jsx)("div",{className:"manage-page-body flex min-h-0 min-w-0 flex-1 flex-col",children:(0,t.jsx)(r.Provider,{value:c,children:i})})]})}function i(e){let{children:t}=e,s=(0,a.useContext)(r);return(0,a.useSyncExternalStore)(()=>()=>{},()=>!0,()=>!1)&&s?(0,l.createPortal)(t,s):null}},92715,85413,e=>{"use strict";e.s(["AppTable",()=>m],92715);var t=e.i(18050);e.s(["Empty",()=>s],85413);var a=e.i(75157),l=e.i(72064);function s(e){let{text:s="暂无数据",className:r}=e;return(0,t.jsxs)("div",{className:(0,a.cn)("flex min-h-[180px] w-full flex-col items-center justify-center gap-2 py-4 text-base text-[var(--ds-muted)]",r),role:"status","aria-live":"polite",children:[(0,t.jsx)(l.default,{name:"NoData",size:80,color:"var(--ds-muted)",className:"opacity-90"}),(0,t.jsx)("span",{children:s})]})}var r=e.i(71645);let n=r.forwardRef((e,l)=>{let{className:s,...r}=e;return(0,t.jsx)("div",{className:"relative w-full overflow-auto",children:(0,t.jsx)("table",{ref:l,className:(0,a.cn)("w-full caption-bottom border-collapse text-sm",s),...r})})});n.displayName="Table";let i=r.forwardRef((e,l)=>{let{className:s,...r}=e;return(0,t.jsx)("thead",{ref:l,className:(0,a.cn)("[&_tr]:table [&_tr]:w-full [&_tr]:table-fixed [&_tr]:border-b",s),...r})});i.displayName="TableHeader";let o=r.forwardRef((e,l)=>{let{className:s,viewportFit:n=!0,viewportReserveBottom:i=16,viewportPaginationReserve:o=0,style:d,...c}=e,u=r.useRef(null),m=r.useCallback(e=>{u.current=e,"function"==typeof l?l(e):l&&(l.current=e)},[l]),[p,x]=r.useState(void 0);return r.useLayoutEffect(()=>{var e,t;if(!n)return void x(void 0);let a=()=>{var e,t;let a=u.current;if(!a)return;let l=a.getBoundingClientRect().top;x(Math.max(80,Math.floor((null!=(t=null==(e=window.visualViewport)?void 0:e.height)?t:window.innerHeight)-l-(i+o))))};a();let l=new ResizeObserver(()=>{a()});try{l.observe(document.body)}catch(e){}return window.addEventListener("resize",a),null==(e=window.visualViewport)||e.addEventListener("resize",a),null==(t=window.visualViewport)||t.addEventListener("scroll",a),window.addEventListener("scroll",a,!0),()=>{var e,t;l.disconnect(),window.removeEventListener("resize",a),null==(e=window.visualViewport)||e.removeEventListener("resize",a),null==(t=window.visualViewport)||t.removeEventListener("scroll",a),window.removeEventListener("scroll",a,!0)}},[n,i,o]),(0,t.jsx)("tbody",{ref:m,className:(0,a.cn)("block overflow-y-auto [&_tr:last-child]:border-b-0 [&_tr:last-child_td]:border-b-0 [&_tr]:table [&_tr]:w-full [&_tr]:table-fixed",s),style:n&&void 0!==p?{...d,maxHeight:p}:d,...c})});o.displayName="TableBody";let d=r.forwardRef((e,l)=>{let{className:s,hoverable:r=!0,...n}=e;return(0,t.jsx)("tr",{ref:l,className:(0,a.cn)("border-b transition-colors [&>td]:transition-colors data-[state=selected]:[&>td]:!bg-[var(--ds-item-active)]",r&&"group/table-row",s),...n})});d.displayName="TableRow";let c=r.forwardRef((e,l)=>{let{className:s,...r}=e;return(0,t.jsx)("th",{ref:l,className:(0,a.cn)("h-10 border-b border-[var(--border-subtle)] bg-[var(--surface-2)] px-3 text-left align-middle text-[14px] font-medium !text-[var(--ds-text)] text-muted-foreground",s),...r})});c.displayName="TableHead";let u=r.forwardRef((e,l)=>{let{className:s,...r}=e;return(0,t.jsx)("td",{ref:l,className:(0,a.cn)("border-x-0 border-b border-t-0 border-solid border-[var(--border-subtle)] p-3 align-middle text-base transition-colors group-has-[td:hover]/table-row:!bg-[var(--ds-item-hover)]",s),...r})});function m(e){let{rows:l,columns:r,getRowKey:m,className:p,rowClassName:x,headerRowClassName:f,emptyText:b,emptyNode:h,bodyProps:g}=e;return(0,t.jsx)("div",{className:(0,a.cn)("overflow-hidden border border-[var(--ds-border)]",p),children:(0,t.jsxs)(n,{children:[(0,t.jsx)(i,{children:(0,t.jsx)(d,{className:(0,a.cn)("bg-[var(--ds-main-tint)] hover:bg-[var(--ds-main-tint)]",f),children:r.map(e=>(0,t.jsx)(c,{className:e.headerClassName,children:e.title},e.key))})}),(0,t.jsx)(o,{...g,children:l.length?l.map(e=>(0,t.jsx)(d,{className:"function"==typeof x?x(e):x,children:r.map(a=>(0,t.jsx)(u,{className:a.cellClassName,children:a.render(e)},a.key))},m(e))):(0,t.jsx)(d,{hoverable:!1,children:(0,t.jsx)(u,{colSpan:r.length,className:"py-6",children:null!=h?h:(0,t.jsx)(s,{text:b})})})})]})})}u.displayName="TableCell"},62427,e=>{"use strict";e.s(["deleteRuntimeMcp",()=>c,"deleteRuntimeSkill",()=>h,"deleteRuntimeTool",()=>d,"exportRuntimeMcpUrl",()=>m,"exportRuntimeSkillUrl",()=>g,"exportRuntimeToolUrl",()=>u,"importRuntimeMcp",()=>x,"importRuntimeTool",()=>p,"installCloudSkill",()=>y,"listAgentTeams",()=>n,"listCloudSkillCatalog",()=>v,"listMcpServers",()=>l,"listRuntimeMcpPackages",()=>o,"listRuntimeTools",()=>i,"listSkills",()=>r,"listTools",()=>s,"loadRemoteMcpJson",()=>f,"saveRemoteMcpJson",()=>b]);var t=e.i(29250),a=e.i(36845);async function l(e,l,s){let r=await (0,t.get)((0,a.buildMcpServersListUrl)(e,l,s));return{servers:Array.isArray(r.servers)?r.servers:[]}}async function s(e,l,s){let r=await (0,t.get)((0,a.buildToolsListUrl)(e,l,s));return{tools:Array.isArray(r.tools)?r.tools:[]}}async function r(e,l,s){let r=await (0,t.get)((0,a.getSkillsList)(e,l,s));return{skills:Array.isArray(r.skills)?r.skills:[]}}async function n(e,l,s){let r=await (0,t.get)((0,a.buildAgentTeamsListUrl)(e,l,s));return{teamAgentTypes:Array.isArray(r.teamAgentTypes)?r.teamAgentTypes:[],agentTeams:Array.isArray(r.agentTeams)?r.agentTeams:[]}}async function i(e,l,s){let r=await (0,t.get)((0,a.buildToolsRuntimeFilesUrl)(e,l,s));return{runtimeToolsDir:"string"==typeof r.runtimeToolsDir?r.runtimeToolsDir:"",items:Array.isArray(r.items)?r.items.filter(e=>!!(e&&e.id)):[]}}async function o(e,l,s){let r=await (0,t.get)((0,a.buildMcpRuntimeFilesUrl)(e,l,s));return{mcpRuntimeDir:"string"==typeof r.mcpRuntimeDir?r.mcpRuntimeDir:"",items:Array.isArray(r.items)?r.items.filter(e=>!!(e&&e.id)):[]}}async function d(e,l,s,r){return(0,t.del)((0,a.buildToolsRuntimeDeleteUrl)(e,l,s,r))}async function c(e,l,s,r){return(0,t.del)((0,a.buildMcpRuntimeDeleteUrl)(e,l,s,r))}function u(e,t,l,s){return(0,a.buildToolsRuntimeExportUrl)(e,t,l,s)}function m(e,t,l,s){return(0,a.buildMcpRuntimeExportUrl)(e,t,l,s)}async function p(e,l,s,r){let n=new FormData;return n.append("file",r),(0,t.post)((0,a.buildToolsRuntimeImportUrl)(e,l,s),n,{type:"file"})}async function x(e,l,s,r){let n=new FormData;return n.append("file",r),(0,t.post)((0,a.buildMcpRuntimeImportUrl)(e,l,s),n,{type:"file"})}async function f(e,l,s){return(0,t.get)((0,a.buildRemoteMcpJsonUrl)(e,l,s))}async function b(e,l,s,r){await (0,t.post)((0,a.buildRemoteMcpJsonUrl)(e,l,s),{content:r})}async function h(e,l,s,r){return(0,t.del)((0,a.buildSkillsRuntimeDeleteUrl)(e,l,s,r))}function g(e,t,l,s){return(0,a.buildSkillsRuntimeExportUrl)(e,t,l,s)}async function v(e,l,s,r,n,i){let o=await (0,t.get)((0,a.buildCloudSkillCatalogUrl)(e,l,s,r,n,i));return{items:Array.isArray(o.items)?o.items:[],totalPages:Number(o.totalPages||0)}}async function y(e,l,s,r){await (0,t.post)((0,a.buildCloudSkillInstallUrl)(e,l,s),{id:r})}},94055,e=>{"use strict";e.s(["AccentSwitch",()=>z],94055);var t=e.i(18050);e.s(["Root",()=>E,"Thumb",()=>M],39606),e.s([],37751),e.i(37751),e.i(47167);var a=e.i(71645),l=e.i(94349),s=e.i(76477),r=e.i(26292),n=e.i(977),i=e.i(62372),o=e.i(17514),d=e.i(27601),c=e.i(19805),u=e.i(89879),m=e.i(91730),p=e.i(67805);let x=a.createContext(void 0),f=function(e){return e.disabled="data-disabled",e.valid="data-valid",e.invalid="data-invalid",e.touched="data-touched",e.dirty="data-dirty",e.filled="data-filled",e.focused="data-focused",e}({}),b={valid:null,touched:!1,dirty:!1,filled:!1,focused:!1},h={disabled:!1,...b},g=function(e){return e.checked="data-checked",e.unchecked="data-unchecked",e.disabled="data-disabled",e.readonly="data-readonly",e.required="data-required",e.valid="data-valid",e.invalid="data-invalid",e.touched="data-touched",e.dirty="data-dirty",e.filled="data-filled",e.focused="data-focused",e}({}),v={valid:e=>null===e?null:e?{[f.valid]:""}:{[f.invalid]:""},checked:e=>e?{[g.checked]:""}:{[g.unchecked]:""}},y=a.createContext({invalid:void 0,name:void 0,validityData:{state:{badInput:!1,customError:!1,patternMismatch:!1,rangeOverflow:!1,rangeUnderflow:!1,stepMismatch:!1,tooLong:!1,tooShort:!1,typeMismatch:!1,valid:null,valueMissing:!1},errors:[],error:"",value:"",initialValue:null},setValidityData:o.NOOP,disabled:void 0,touched:b.touched,setTouched:o.NOOP,dirty:b.dirty,setDirty:o.NOOP,filled:b.filled,setFilled:o.NOOP,focused:b.focused,setFocused:o.NOOP,validate:()=>null,validationMode:"onSubmit",validationDebounceTime:0,shouldValidateOnChange:()=>!1,state:h,markedDirtyRef:{current:!1},registerFieldControl:o.NOOP,validation:{getValidationProps:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:o.EMPTY_OBJECT;return e},getInputValidationProps:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:o.EMPTY_OBJECT;return e},inputRef:{current:null},commit:async()=>{}}});function C(){let e=!(arguments.length>0)||void 0===arguments[0]||arguments[0],t=a.useContext(y);if(t.setValidityData===o.NOOP&&!e)throw Error((0,p.default)(28));return t}let j=a.createContext({formRef:{current:{fields:new Map}},errors:{},clearErrors:o.NOOP,validationMode:"onSubmit",submitAttemptedRef:{current:!1}}),w=a.createContext({controlId:void 0,registerControlId:o.NOOP,labelId:void 0,setLabelId:o.NOOP,messageIds:[],setMessageIds:o.NOOP,getDescriptionProps:e=>e});function N(){return a.useContext(w)}var k=e.i(30628),S=e.i(29315),T=e.i(5963),A=e.i(3404),R=e.i(19904);let E=a.forwardRef(function(e,p){let{checked:f,className:b,defaultChecked:h,"aria-labelledby":g,form:y,id:w,inputRef:E,name:M,nativeButton:P=!1,onCheckedChange:U,readOnly:I=!1,required:z=!1,disabled:B=!1,render:O,uncheckedValue:D,value:L,style:_,...F}=e,{clearErrors:K}=a.useContext(j),{state:V,setTouched:H,setDirty:J,validityData:W,setFilled:Y,setFocused:q,shouldValidateOnChange:Z,validationMode:X,disabled:G,name:$,validation:Q}=C(),{labelId:ee}=N(),et=G||B,ea=null!=$?$:M,el=(0,s.useStableCallback)(U),es=a.useRef(null),er=(0,r.useMergedRefs)(es,E,Q.inputRef),en=a.useRef(null),ei=(0,u.useBaseUiId)(),eo=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},{id:t,implicit:l=!1,controlRef:r}=e,{controlId:i,registerControlId:d}=N(),c=(0,u.useBaseUiId)(t),m=l?i:void 0,p=(0,k.useRefWithInit)(()=>Symbol("labelable-control")),x=a.useRef(!1),f=a.useRef(null!=t),b=(0,s.useStableCallback)(()=>{x.current&&d!==o.NOOP&&(x.current=!1,d(p.current,void 0))});return(0,n.useIsoLayoutEffect)(()=>{let e;if(d!==o.NOOP){if(l){let a=null==r?void 0:r.current;e=(0,S.isElement)(a)&&null!=a.closest("label")?null!=t?t:null:null!=m?m:c}else if(null!=t)f.current=!0,e=t;else{if(!f.current)return void b();e=c}if(void 0===e)return void b();x.current=!0,d(p.current,e)}},[t,r,m,d,l,c,p,b]),a.useEffect(()=>b,[b]),null!=i?i:c}({id:w,implicit:!1,controlRef:en}),ed=P?void 0:eo,[ec,eu]=(0,l.useControlled)({controlled:f,default:!!h,name:"Switch",state:"checked"});!function(e,t){let{enabled:l=!0,getValue:s,id:r,value:i}=t,{registerFieldControl:o}=C(),d=a.useRef(null);d.current||(d.current=Symbol()),(0,n.useIsoLayoutEffect)(()=>{let t=d.current;if(t&&l)return o(t,{controlRef:e,getValue:s,id:r,value:i}),()=>{o(t,void 0)}},[e,l,s,r,o,i])}(en,{id:ei,value:ec}),(0,n.useIsoLayoutEffect)(()=>{es.current&&Y(es.current.checked)},[es,Y]),(0,R.useValueChanged)(ec,()=>{K(ea),J(ec!==W.initialValue),Y(ec),Z()?Q.commit(ec):Q.commit(ec,!0)});let{getButtonProps:em,buttonRef:ep}=(0,m.useButton)({disabled:et,native:P}),ex=function(e,t,l){var s;let r=!(arguments.length>3)||void 0===arguments[3]||arguments[3],i=arguments.length>4?arguments[4]:void 0,[o,d]=a.useState(),c=(0,u.useBaseUiId)(i?"".concat(i,"-label"):void 0),m=null!=(s=null!=e?e:t)?s:o;return(0,n.useIsoLayoutEffect)(()=>{let a=e||t||!r?void 0:function(e,t){let a=function(e){if(!e)return;let t=e.parentElement;if(t&&"LABEL"===t.tagName)return t;let a=e.id;if(a){let t=e.nextElementSibling;if(t&&t.htmlFor===a)return t}let l=e.labels;return l&&l[0]}(e);if(a)return!a.id&&t&&(a.id=t),a.id||void 0}(l.current,c);o!==a&&d(a)}),m}(g,ee,es,!P,ed),ef=a.useMemo(()=>(0,c.mergeProps)({checked:ec,disabled:et,form:y,id:ed,name:ea,required:z,style:ea?i.visuallyHiddenInput:i.visuallyHidden,tabIndex:-1,type:"checkbox","aria-hidden":!0,ref:er,onChange(e){if(e.nativeEvent.defaultPrevented)return;if(I)return void e.preventDefault();let t=e.currentTarget.checked,a=(0,T.createChangeEventDetails)(A.REASONS.none,e.nativeEvent);null==el||el(t,a),a.isCanceled||eu(t)},onFocus(){var e;null==(e=en.current)||e.focus()}},Q.getInputValidationProps,void 0!==L?{value:L}:o.EMPTY_OBJECT),[ec,et,y,er,ed,ea,el,I,z,eu,Q,L]),eb=a.useMemo(()=>({...V,checked:ec,disabled:et,readOnly:I,required:z}),[V,ec,et,I,z]),eh=(0,d.useRenderElement)("span",e,{state:eb,ref:[p,en,ep],props:[{id:P?eo:ei,role:"switch","aria-checked":ec,"aria-readonly":I||void 0,"aria-required":z||void 0,"aria-labelledby":ex,onFocus(){et||q(!0)},onBlur(){let e=es.current;e&&!et&&(H(!0),q(!1),"onBlur"===X&&Q.commit(e.checked))},onClick(e){var t;I||et||(e.preventDefault(),null==(t=es.current)||t.dispatchEvent(new PointerEvent("click",{bubbles:!0,shiftKey:e.shiftKey,ctrlKey:e.ctrlKey,altKey:e.altKey,metaKey:e.metaKey})))}},Q.getValidationProps,F,em],stateAttributesMapping:v});return(0,t.jsxs)(x.Provider,{value:eb,children:[eh,!ec&&ea&&void 0!==D&&(0,t.jsx)("input",{type:"hidden",form:y,name:ea,value:D}),(0,t.jsx)("input",{...ef,suppressHydrationWarning:!0})]})}),M=a.forwardRef(function(e,t){let{render:l,className:s,style:r,...n}=e,{state:i}=C(),o=function(){let e=a.useContext(x);if(void 0===e)throw Error((0,p.default)(63));return e}(),c={...i,...o};return(0,d.useRenderElement)("span",e,{state:c,ref:t,stateAttributesMapping:v,props:n})});var P=e.i(39606),P=P,U=e.i(75157);function I(e){let{className:a,thumbClassName:l,...s}=e;return(0,t.jsx)(P.Root,{"data-slot":"switch",className:(0,U.cn)("shadow-xs focus-visible:ring-ring/50 dark:data-[unchecked]:bg-input/80 peer inline-flex h-5 w-9 shrink-0 cursor-pointer items-center rounded-full border border-transparent bg-input outline-none transition-colors focus-visible:border-ring focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 data-[checked]:bg-primary",a),...s,children:(0,t.jsx)(P.Thumb,{className:(0,U.cn)("pointer-events-none block size-4 rounded-full bg-background ring-0 transition-transform will-change-transform data-[checked]:translate-x-4 data-[unchecked]:translate-x-0.5 data-[checked]:bg-primary-foreground",l)})})}function z(e){let{className:a,thumbClassName:l,...s}=e;return(0,t.jsx)(I,{className:(0,U.cn)("focus-visible:border-[var(--ds-accent)]/50 focus-visible:ring-[var(--ds-accent)]/35 data-[checked]:border-[var(--ds-accent)] data-[checked]:bg-[var(--ds-accent)]",a),thumbClassName:(0,U.cn)("data-[checked]:bg-white",l),...s})}},98083,e=>{"use strict";e.s(["AgentManageView",()=>c],98083);var t=e.i(18050),a=e.i(71645),l=e.i(19455),s=e.i(13354),r=e.i(75157),n=e.i(24687);function i(e){let{value:a,onChange:l,loading:s=!1,className:i}=e;return(0,t.jsx)("div",{className:(0,r.cn)("flex min-h-[200px] flex-col",i),children:s?(0,t.jsx)("div",{className:"tool-files-state py-4",children:"加载 agent.md…"}):(0,t.jsx)(n.Textarea,{className:(0,r.cn)("agent-md-editor min-h-[110px] resize-y focus-visible:ring-1 focus-visible:ring-ring"),spellCheck:!1,value:a,onChange:e=>l(e.target.value),placeholder:"编辑当前 Agent 的提示词(agent.md)"})})}var o=e.i(87243),d=e.i(82136);function c(){let{agentMdText:e,setAgentMdText:r,agentLoading:n,loadAgentPrompt:c,saveAgentPrompt:u}=function(e){let{currentAgent:t}=(0,o.useSession)(),[l,r]=(0,a.useState)(!1),[n,i]=(0,a.useState)(""),c=(0,a.useCallback)(async()=>{r(!0);try{let e=await (0,d.loadAgentPrompt)(t());i(e)}catch(e){s.appToast.error("加载 agent.md 失败:".concat(e instanceof Error?e.message:String(e)))}finally{r(!1)}},[t]),u=(0,a.useCallback)(async e=>{await (0,d.saveAgentPrompt)(t(),n),(null==e?void 0:e.silent)||s.appToast.success("已保存 agent.md。")},[t,n]);return(0,a.useEffect)(()=>{c()},[c,void 0]),{agentMdText:n,setAgentMdText:i,agentLoading:l,loadAgentPrompt:c,saveAgentPrompt:u}}(),[m,p]=(0,a.useState)(!1),x=(0,a.useCallback)(async()=>{p(!0);try{await u()}catch(e){s.appToast.error("保存失败:".concat(e instanceof Error?e.message:String(e)))}finally{p(!1)}},[u]);return(0,t.jsxs)("div",{className:"manage-page-content flex min-h-0 flex-1 flex-col rounded-xl border bg-[#fff] shadow-[var(--shadow-md)]",children:[(0,t.jsx)("div",{className:"flex min-h-0 flex-1 flex-col p-4",children:(0,t.jsx)(i,{value:e,onChange:r,loading:n,className:"min-h-0 flex-1"})}),(0,t.jsxs)("div",{className:"flex shrink-0 justify-end gap-2 border-t border-[var(--ds-border)] px-4 py-3",children:[(0,t.jsx)(l.Button,{type:"button",variant:"plain-outline",size:"lg",disabled:n||m,onClick:()=>void c(),children:"取消"}),(0,t.jsx)(l.Button,{type:"button",size:"lg",disabled:n||m,onClick:()=>void x(),children:"保存"})]})]})}},51459,e=>{"use strict";e.s(["AgentTeamsManageView",()=>p],51459);var t=e.i(18050),a=e.i(71645),l=e.i(65934),s=e.i(87243),r=e.i(50711),n=e.i(94055),i=e.i(92715),o=e.i(85413),d=e.i(75157);function c(e){let{saveBusy:a,pickerFilteredRows:l,pickerLoading:s,pickerSelected:r,onPickerToggle:c}=e,u=[{key:"name",title:"名称",headerClassName:"text-base text-[var(--ds-muted)]",cellClassName:"w-[140px] text-base text-[var(--ds-text)]",render:e=>{var t;return null!=(t=e.displayName)?t:e.id}},{key:"description",title:"详情",headerClassName:"text-base text-[var(--ds-muted)]",cellClassName:"text-base text-[var(--ds-text)]",render:e=>{var t;return null!=(t=e.description)?t:"-"}},{key:"enabled",title:"启用/未启用",headerClassName:"w-64 text-right text-base text-[var(--ds-muted)]",cellClassName:"w-[72px] py-2 text-right align-middle",render:e=>(0,t.jsx)("span",{className:"inline-flex justify-end",children:(0,t.jsx)(n.AccentSwitch,{checked:r.includes(e.id),onCheckedChange:t=>c(e.id,t),disabled:a,"aria-label":"启用 ".concat(e.label)})})}];return(0,t.jsx)("div",{className:"flex min-h-0 min-w-0 flex-1 flex-col gap-4",children:(0,t.jsx)("div",{className:(0,d.cn)("flex min-h-0 flex-1 flex-col overflow-hidden rounded-xl border bg-[#fff] p-[24px] shadow-[var(--shadow-md)]","border-[var(--ds-border)]"),children:(0,t.jsx)("div",{className:"min-h-0 min-w-0 flex-1 overflow-y-auto",children:s?(0,t.jsx)("p",{className:"px-1 py-4 text-center text-base text-[var(--ds-muted)]",children:"加载中…"}):l.length?(0,t.jsx)(i.AppTable,{rows:l,columns:u,getRowKey:e=>e.id,className:"border-0",rowClassName:"border-[var(--ds-border)]",headerRowClassName:"border-[var(--ds-border)]"}):(0,t.jsx)("div",{className:"py-6",children:(0,t.jsx)(o.Empty,{})})})})})}var u=e.i(13354),m=e.i(62427);function p(){let e=(0,l.useAppStore)(e=>e.wsUrl),n=(0,l.useAppStore)(e=>e.apiBase),i=(0,l.useAppStore)(e=>e.agentId),o=(0,l.useAppStore)(e=>e.agentConfig),d=(0,l.useAppStore)(e=>e.setAgentConfig),{currentAgent:p,loadAgentConfig:x}=(0,s.useSession)(),f=(0,r.usePersistAgentConfigField)("agentTeams"),b=o.agentTeams,h=(0,a.useMemo)(()=>[...b].sort().join("\0"),[b]),[g,v]=(0,a.useState)([]),[y,C]=(0,a.useState)([]),[j,w]=(0,a.useState)(!1),[N,k]=(0,a.useState)(!1);(0,a.useEffect)(()=>{x()},[x]),(0,a.useEffect)(()=>{C([...b])},[h,b]),(0,a.useEffect)(()=>{w(!0),v([]),(0,m.listAgentTeams)(e,n,p()).then(e=>{var t,a;v((null!=(a=null!=(t=e.teamAgentTypes)?t:e.agentTeams)?a:[]).map(e=>{var t,a,l,s,r,n;return{id:null!=(a=null!=(t=e.agentType)?t:e.name)?a:"",label:null!=(s=null!=(l=e.agentType)?l:e.name)?s:"",displayName:null!=(n=null!=(r=e.name)?r:e.agentType)?n:"",description:e.description}}).filter(e=>e.id.length>0))}).catch(e=>{v([]),u.appToast.error("加载可选 Agent Team 失败:".concat(e instanceof Error?e.message:String(e)))}).finally(()=>{w(!1)})},[e,n,i,p]);let S=(0,a.useCallback)(async(e,t)=>{k(!0);try{await f(e,{silent:t})}finally{k(!1)}},[f]),T=(0,a.useCallback)((e,t)=>{let a=l.useAppStore.getState(),s=new Set(a.agentConfig.agentTeams);t?s.add(e):s.delete(e);let r=[...s].sort();C(r),d({...a.agentConfig,agentTeams:r}),S(r,!0)},[d,S]);return(0,t.jsx)(c,{saveBusy:N,pickerFilteredRows:g,pickerLoading:j,pickerSelected:y,onPickerToggle:T})}},62849,e=>{"use strict";e.s(["EnvManageView",()=>h],62849);var t=e.i(18050),a=e.i(71645),l=e.i(65934),s=e.i(87243),r=e.i(19455),n=e.i(94197),i=e.i(93479),o=e.i(67327);let d={"Base URL":"ANTHROPIC_BASE_URL","Deployment Name":"ANTHROPIC_DEPLOYMENT_NAME","API Key":"ANTHROPIC_API_KEY"};var c=e.i(13354),u=e.i(82136);let m="AZURE_OPENAI_BASE_URL",p="AZURE_OPENAI_DEPLOYMENT_NAME",x="AZURE_OPENAI_API_KEY";function f(){return"undefined"!=typeof crypto&&"randomUUID"in crypto?crypto.randomUUID():"r-".concat(Date.now(),"-").concat(Math.random())}function b(e){return Object.keys(e).sort().map(t=>{var a;return{id:f(),key:t,value:null!=(a=e[t])?a:""}})}function h(){var e,h,g;let v=(0,l.useAppStore)(e=>e.wsUrl),y=(0,l.useAppStore)(e=>e.apiBase),C=(0,l.useAppStore)(e=>e.agentConfig),j=(0,l.useAppStore)(e=>e.setAgentConfig),w=(0,l.useAppStore)(e=>e.bridgeReady),N=(0,l.useAppStore)(e=>e.setStatus),{currentAgent:k,loadAgentConfig:S}=(0,s.useSession)(),{sendReloadAgentConfig:T}=(0,o.useWebSocketSender)(),[A,R]=(0,a.useState)(!0),[E,M]=(0,a.useState)(!1),[P,U]=(0,a.useState)([]),I=(0,a.useMemo)(()=>{let e={};for(let a of P){var t;let l=String(a.key||"").trim();l&&(e[l]=String(null!=(t=a.value)?t:""))}return e},[P]),z=(0,a.useMemo)(()=>new Set([m,p,x]),[]),B=(0,a.useMemo)(()=>P.filter(e=>{let t=String(e.key||"").trim();return!z.has(t)}),[P,z]);(0,a.useEffect)(()=>{R(!0),S().finally(()=>{R(!1)})},[S]),(0,a.useEffect)(()=>{U(b({...C.env}))},[C.env]);let O=(0,a.useCallback)((e,t)=>{U(a=>a.map(a=>a.id===e?{...a,...t}:a))},[]),D=(0,a.useCallback)(e=>{U(t=>t.filter(t=>t.id!==e))},[]),L=(0,a.useCallback)((e,t)=>{let a=String(e||"").trim();a&&U(e=>{let l=e.findIndex(e=>String(e.key||"").trim()===a);if(l>=0){let a=[...e];return a[l]={...a[l],value:t},a}return[...e,{id:f(),key:a,value:t}]})},[]),_=(0,a.useCallback)(()=>{U(e=>[...e,{id:f(),key:"",value:""}])},[]),F=(0,a.useCallback)(()=>{U(b({...C.env}))},[C.env]),K=(0,a.useCallback)(async()=>{let e=function(e){let t={},a=new Set;for(let s of e){var l;let e=String(s.key||"").trim(),r=String(null!=(l=s.value)?l:"");if(r.trim()||e){if(!/^[A-Za-z_][A-Za-z0-9_]*$/.test(e))return{ok:!1,message:"环境变量名不合法:".concat(e,"(仅允许字母/数字/下划线,且不能数字开头)")};if(a.has(e))return{ok:!1,message:"存在重复环境变量名:".concat(e)};a.add(d[e]||e),t[e]=r}}return{ok:!0,env:t}}(P);if(!e.ok)return void c.appToast.info(e.message);M(!0);try{var t,a,s,r;let n=l.useAppStore.getState();await (0,u.saveAgentConfig)(v,y,k(),{tools:n.agentConfig.tools.slice(),disallowedTools:n.agentConfig.disallowedTools.slice(),mcpServers:n.agentConfig.mcpServers.slice(),skills:n.agentConfig.skills.slice(),agentTeams:n.agentConfig.agentTeams.slice(),model:n.agentConfig.model,rules:n.agentConfig.rules.slice(),effort:null!=(t=n.agentConfig.effort)?t:null,background:null!=(a=n.agentConfig.background)&&a,isolation:null!=(s=n.agentConfig.isolation)?s:"",whentouse:null!=(r=n.agentConfig.whentouse)?r:"",env:e.env}),j({...n.agentConfig,env:{...e.env}}),l.useAppStore.getState().wsConnected&&T(),N("环境变量已保存"+(l.useAppStore.getState().wsConnected?",已请求 worker 重新加载配置":""),w?"ready":""),c.appToast.success(l.useAppStore.getState().wsConnected?"已保存到 agent.json,并已请求 worker 重新加载配置。":"已保存到 agent.json。重连 WebSocket 后子进程环境将同步。")}catch(e){c.appToast.error("保存环境变量失败:".concat(e instanceof Error?e.message:String(e)))}finally{M(!1)}},[P,v,y,k,j,T,N,w]);return(0,t.jsxs)("div",{className:"flex min-h-0 flex-1 flex-col overflow-hidden rounded-xl border border-[var(--ds-border)] bg-[#fff] shadow-[var(--shadow-md)]",children:[(0,t.jsx)("div",{className:"shrink-0 border-b border-[var(--ds-border)] px-4 py-4",children:(0,t.jsx)("p",{className:"mt-1 text-sm text-[var(--ds-muted)]",children:"仅影响当前 agent 的 session 子进程环境"})}),(0,t.jsx)("div",{className:"min-h-0 flex-1 overflow-y-auto px-4 py-4",children:A?(0,t.jsx)("div",{className:"py-8 text-center text-base text-[var(--ds-muted)]",children:"加载中…"}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("div",{className:"mt-0 flex items-start justify-between gap-3",children:(0,t.jsx)("div",{children:(0,t.jsx)("h3",{className:"text-base font-semibold text-[var(--ds-text)]",children:"模型配置"})})}),(0,t.jsxs)("div",{className:"mt-3 divide-y divide-[var(--ds-border)]",children:[(0,t.jsxs)("div",{className:"grid items-center gap-3 py-3",style:{gridTemplateColumns:"240px 1fr"},children:[(0,t.jsx)("label",{className:"inline-flex h-10 items-center rounded-md border border-[var(--ds-border)] px-3 text-base text-[var(--ds-text)]",htmlFor:"azure-base-url",children:"Base URL"}),(0,t.jsx)(i.Input,{id:"azure-base-url",type:"text",spellCheck:!1,autoComplete:"off",placeholder:"https://example.openai.azure.com",className:"h-10 border-[var(--ds-border)] bg-[var(--ds-bg)] text-base placeholder:text-[var(--text-placeholder)]",value:null!=(e=I[m])?e:"",onChange:e=>L(m,e.target.value)})]}),(0,t.jsxs)("div",{className:"grid items-center gap-3 py-3",style:{gridTemplateColumns:"240px 1fr"},children:[(0,t.jsx)("label",{className:"inline-flex h-10 items-center rounded-md border border-[var(--ds-border)] px-3 text-base text-[var(--ds-text)]",htmlFor:"azure-deployment-name",children:"Deployment Name"}),(0,t.jsx)(i.Input,{id:"azure-deployment-name",type:"text",spellCheck:!1,autoComplete:"off",placeholder:"gpt-4o",className:"h-10 border-[var(--ds-border)] bg-[var(--ds-bg)] text-base placeholder:text-[var(--text-placeholder)]",value:null!=(h=I[p])?h:"",onChange:e=>L(p,e.target.value)})]}),(0,t.jsxs)("div",{className:"grid items-center gap-3 py-3",style:{gridTemplateColumns:"240px 1fr"},children:[(0,t.jsx)("label",{className:"inline-flex h-10 items-center rounded-md border border-[var(--ds-border)] px-3 text-base text-[var(--ds-text)]",htmlFor:"azure-api-key px-3",children:"API Key"}),(0,t.jsx)(i.Input,{id:"azure-api-key",type:"password",spellCheck:!1,autoComplete:"off",placeholder:"请输入 API Key",className:"h-10 border-[var(--ds-border)] bg-[var(--ds-bg)] text-base placeholder:text-[var(--text-placeholder)]",value:null!=(g=I[x])?g:"",onChange:e=>L(x,e.target.value)})]})]}),(0,t.jsx)("h3",{className:"mb-4 mt-8 text-base font-semibold text-[var(--ds-text)]",children:"自定义设置"}),(0,t.jsx)("div",{className:"mt-5",children:(0,t.jsx)(r.Button,{type:"button",variant:"outline",size:"lg",disabled:A||E,onClick:_,children:"新增变量"})}),(0,t.jsxs)("div",{className:"mb-2 mt-5 grid gap-2 text-sm text-[var(--ds-muted)]",style:{gridTemplateColumns:"1fr 1fr auto"},children:[(0,t.jsx)("span",{children:"KEY"}),(0,t.jsx)("span",{children:"VALUE"}),(0,t.jsx)("span",{children:"操作"})]}),(0,t.jsx)("div",{className:"flex flex-col gap-2",children:B.length?B.map(e=>(0,t.jsxs)("div",{className:"grid gap-2",style:{gridTemplateColumns:"1fr 1fr auto"},children:[(0,t.jsx)(i.Input,{type:"text",spellCheck:!1,autoComplete:"off",placeholder:"例如 API_KEY",className:"h-10 border-[var(--ds-border)] bg-[var(--ds-bg)] text-base placeholder:text-[var(--text-placeholder)]",value:e.key,onChange:t=>O(e.id,{key:t.target.value})}),(0,t.jsx)(i.Input,{type:"text",spellCheck:!1,autoComplete:"off",placeholder:"value",className:"h-10 border-[var(--ds-border)] bg-[var(--ds-bg)] text-base placeholder:text-[var(--text-placeholder)]",value:e.value,onChange:t=>O(e.id,{value:t.target.value})}),(0,t.jsx)(n.IconTooltipButton,{icon:"Trash2",label:"删除",tone:"danger",ariaLabel:"删除 ".concat(e.key),onClick:()=>D(e.id)})]},e.id)):(0,t.jsx)("div",{className:"rounded-md border border-dashed border-[var(--ds-border)] py-8 text-center text-base text-[var(--ds-muted)]",children:"(暂无变量,点击「新增变量」)"})})]})}),(0,t.jsxs)("div",{className:"flex shrink-0 justify-end gap-[12px] border-t border-[var(--ds-border)] px-4 py-3",children:[(0,t.jsx)(r.Button,{type:"button",variant:"plain-outline",size:"lg",disabled:A||E,onClick:F,children:"取消"}),(0,t.jsx)(r.Button,{type:"button",size:"lg",disabled:A||E,onClick:()=>void K(),children:"保存"})]})]})}},28583,e=>{"use strict";e.s(["ToolsManageView",()=>C],28583);var t=e.i(18050),a=e.i(71645),l=e.i(65934),s=e.i(87243),r=e.i(13354),n=e.i(50711),i=e.i(19455),o=e.i(94055),d=e.i(94197),c=e.i(51419),u=e.i(92715);function m(e){let{items:a,saveBusy:l,onToggle:s,onExport:r,onRemove:n,className:i}=e,c=[{key:"name",title:"名称",headerClassName:"text-base",cellClassName:"text-base",render:e=>e.name},{key:"description",title:"详情",headerClassName:"text-base",cellClassName:"text-base",render:e=>e.description||"-"},{key:"enabled",title:"启用/未启用",headerClassName:"text-base",cellClassName:"whitespace-nowrap text-base text-[var(--ds-text)]",render:e=>(0,t.jsx)("span",{className:"inline-flex items-center gap-2",children:(0,t.jsx)(o.AccentSwitch,{checked:!!e.enabled,disabled:l,onCheckedChange:t=>s(e.name,t),"aria-label":"".concat(e.enabled?"禁用":"启用"," ").concat(e.name)})})},{key:"actions",title:"操作",headerClassName:"w-[128px] text-base",cellClassName:"w-[128px]",render:e=>(0,t.jsxs)("div",{className:"inline-flex items-center justify-end gap-1",children:[(0,t.jsx)(d.IconTooltipButton,{icon:"Download",label:"导出",ariaLabel:"导出 ".concat(e.name),disabled:l,onClick:()=>r(e.name)}),(0,t.jsx)(d.IconTooltipButton,{icon:"Trash2",label:"删除",tone:"danger",ariaLabel:"删除 ".concat(e.name),disabled:l,onClick:()=>{n(e.name)}})]})}];return(0,t.jsx)(u.AppTable,{rows:a,columns:c,getRowKey:e=>"tools:".concat(e.name),className:i})}var p=e.i(36845),x=e.i(53925);function f(e){let{open:a,onOpenChange:l,wsUrl:s,apiBase:r,agent:n}=e;return(0,t.jsx)(x.ResourceImportDialog,{open:a,onOpenChange:l,title:"导入工具 zip",description:"选择一个 zip 文件并导入到 tools-runtime。",uploadUrl:(0,p.buildToolsRuntimeImportUrl)(s,r,n),resetKey:n})}var b=e.i(68499),h=e.i(72064),g=e.i(56708),v=e.i(62427);let y=[{value:"basic",label:"系统工具"},{value:"installed",label:"自定义工具"}];function C(){let e=(0,l.useAppStore)(e=>e.wsUrl),p=(0,l.useAppStore)(e=>e.apiBase),x=(0,l.useAppStore)(e=>e.agentConfig),C=(0,l.useAppStore)(e=>e.setAgentConfig),{currentAgent:j,loadAgentConfig:w}=(0,s.useSession)(),N=(0,n.usePersistAgentConfigField)("tools"),k=x.tools,S=(0,a.useMemo)(()=>[...k].sort().join("\0"),[k]),[T,A]=(0,a.useState)([]),[R,E]=(0,a.useState)([]),[M,P]=(0,a.useState)(!1),[U,I]=(0,a.useState)(!1),[z,B]=(0,a.useState)("basic"),[O,D]=(0,a.useState)(!1);(0,a.useEffect)(()=>{w()},[w]);let L=(0,a.useCallback)(async(e,t)=>{I(!0);try{await N(e,{silent:t})}finally{I(!1)}},[N]),_=(0,a.useCallback)(async()=>{A([]),P(!0);try{var t;let a=null!=(t=(await (0,v.listTools)(e,p,j())).tools)?t:[];A(a.map(e=>{var t,a;return{...e,id:e.name,label:(e.displayName&&e.displayName!==e.name?"".concat(e.displayName," · "):"")+e.name,description:null!=(a=null!=(t=e.description)?t:e.searchHint)?a:""}}))}catch(e){A([]),r.appToast.error("加载失败:".concat(e instanceof Error?e.message:String(e)))}finally{P(!1)}},[e,p,j]),F=(0,a.useCallback)(async t=>{if(await (0,b.confirmAlertDialog)({title:"确认删除工具包?",description:"工具名:".concat(t),confirmText:"删除",cancelText:"取消"}))try{await (0,v.deleteRuntimeTool)(e,p,j(),t);let a=k.filter(e=>e!==t);E(e=>e.filter(e=>e!==t)),C({...x,tools:a}),await L(a,!0),await _()}catch(e){r.appToast.error("删除失败:".concat(e instanceof Error?e.message:String(e)))}},[e,p,j,k,x,C,L,_]),K=(0,a.useCallback)(t=>{window.open((0,v.exportRuntimeToolUrl)(e,p,j(),t),"_blank","noopener")},[e,p,j]);(0,a.useEffect)(()=>{("basic"===z||"installed"===z)&&_()},[z,_]),(0,a.useEffect)(()=>{"basic"===z&&E([...k])},[z,k,S]);let V=(0,a.useCallback)(e=>{let t=[...new Set(e)].sort();C({...x,tools:t}),L(t,!0)},[x,C,L]),H=(0,a.useCallback)((e,t)=>{let a=t?[...new Set([...k,e])].sort():k.filter(t=>t!==e).sort();C({...x,tools:a}),L(a,!0)},[k,x,C,L]),J=(0,a.useMemo)(()=>T.filter(e=>!0===e.isRuntime).slice().sort((e,t)=>e.label.localeCompare(t.label)).map(e=>({name:e.id,description:e.description||"",enabled:k.includes(e.id)})),[T,k]),W=[{key:"name",title:"名称",headerClassName:"text-base text-[var(--ds-muted)]",cellClassName:"text-base text-[var(--ds-text)]",render:e=>e.label},{key:"description",title:"详情",headerClassName:"text-base text-[var(--ds-muted)]",cellClassName:"text-base text-[var(--ds-text)]",render:e=>e.description||"-"},{key:"enabled",title:"启用/未启用",headerClassName:"w-14 w-[112px] text-base text-[var(--ds-muted)]",cellClassName:"w-[112px] align-middle",render:e=>(0,t.jsx)("span",{className:"inline-flex justify-end",children:(0,t.jsx)(o.AccentSwitch,{checked:R.includes(e.id),disabled:U,onCheckedChange:t=>{let a=t?[...new Set([...R,e.id])]:R.filter(t=>t!==e.id);E(a),V(a)},"aria-label":"选择 ".concat(e.label)})})},{key:"actions",title:"操作",headerClassName:"w-14 w-[72px] text-base text-[var(--ds-muted)]",cellClassName:"w-[72px] align-middle",render:e=>(0,t.jsx)("span",{className:"inline-flex justify-end",children:(0,t.jsx)(d.IconTooltipButton,{icon:"Trash2",label:"删除",tone:"danger",disabled:U,ariaLabel:"删除 ".concat(e.label),onClick:()=>F(e.id)})})}];return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(g.ManageChromeHeaderActions,{children:(0,t.jsxs)(i.Button,{id:"btnAgentPickerToolImport",type:"button",variant:"plain-outline",size:"lg",className:"inline-flex items-center justify-center gap-1.5",onClick:()=>D(!0),children:[(0,t.jsx)(h.default,{name:"Import",size:16,className:"align-middle"}),"导入自定义工具"]})}),(0,t.jsxs)(c.AppTabs,{tabs:y,value:z,listVariant:"line",onChange:e=>B(e),children:[(0,t.jsx)(c.AppTabsPanel,{value:"basic",children:(0,t.jsx)("div",{className:"flex min-h-0 flex-1 flex-col gap-3",children:(0,t.jsx)("div",{className:"min-h-0",children:M?(0,t.jsx)("p",{className:"px-3 py-6 text-center text-base text-[var(--ds-muted)]",children:"加载中…"}):(0,t.jsx)(u.AppTable,{rows:T,columns:W,getRowKey:e=>e.id})})})}),(0,t.jsx)(c.AppTabsPanel,{value:"installed",children:(0,t.jsx)(m,{items:J,saveBusy:U,onToggle:H,onExport:K,onRemove:F})})]}),(0,t.jsx)(f,{open:O,onOpenChange:e=>{D(e),e||_()},wsUrl:e,apiBase:p,agent:j()})]})}},55242,e=>{"use strict";e.s(["AppDialog",()=>r]);var t=e.i(18050),a=e.i(71645),l=e.i(76639),s=e.i(75157);function r(e){let{open:r,onOpenChange:n,title:i,children:o,footer:d,width:c="max-w-3xl",minHeight:u}=e,m=(0,a.useId)();return(0,t.jsx)(l.Dialog,{open:r,onOpenChange:n,children:(0,t.jsxs)(l.DialogContent,{"aria-labelledby":m,className:(0,s.cn)(c,u?"!min-h-[--min-h]":""),style:u?{"--min-h":u}:void 0,children:[(0,t.jsxs)(l.DialogHeader,{children:[(0,t.jsx)(l.DialogTitle,{id:m,children:i}),(0,t.jsx)(l.DialogClose,{"aria-label":"关闭"})]}),(0,t.jsx)(l.DialogBody,{className:"!px-4 !py-3",children:o}),d?(0,t.jsx)("div",{className:"flex flex-shrink-0 justify-end gap-2 border-t border-[var(--ds-border)] bg-[var(--ds-sidebar)] px-4 py-3",children:d}):null]})})}},89530,e=>{"use strict";e.s(["McpManageView",()=>j],89530);var t=e.i(18050),a=e.i(71645),l=e.i(65934),s=e.i(87243),r=e.i(13354),n=e.i(50711),i=e.i(51419),o=e.i(55242),d=e.i(92715),c=e.i(19455),u=e.i(94055),m=e.i(94197);function p(e){let{items:a,saveBusy:l,onToggleStatus:s,className:r}=e,n=[{key:"name",title:"名称",headerClassName:"text-base",cellClassName:"text-base",render:e=>e.label||e.name},{key:"description",title:"详情",headerClassName:"text-base",cellClassName:"text-base",render:e=>e.description||"-"},{key:"source",title:"来源",headerClassName:"text-base",cellClassName:"text-base",render:()=>"远程"},{key:"status",title:"状态",headerClassName:"text-base",cellClassName:"whitespace-nowrap py-2 align-middle",render:e=>s?(0,t.jsx)("span",{className:"inline-flex items-center justify-end gap-2 text-base text-[var(--ds-text)]",children:(0,t.jsx)(u.AccentSwitch,{checked:!e.disabled,disabled:l,onCheckedChange:t=>{s(e.name,t)},"aria-label":"".concat(e.disabled?"启用":"禁用"," ").concat(e.name)})}):(0,t.jsx)("span",{className:"text-base text-[var(--ds-text)]",children:e.installed?"已安装":"未安装"})}];return(0,t.jsx)(d.AppTable,{rows:a,columns:n,getRowKey:e=>"mcp:".concat(e.name),className:r})}var x=e.i(36845),f=e.i(53925);function b(e){let{open:a,onOpenChange:l,wsUrl:s,apiBase:r,agent:n}=e;return(0,t.jsx)(f.ResourceImportDialog,{open:a,onOpenChange:l,title:"导入 MCP zip",description:"选择一个 zip 文件并导入到 mcp-runtime。",uploadUrl:(0,x.buildMcpRuntimeImportUrl)(s,r,n),resetKey:n})}var h=e.i(68499),g=e.i(72064),v=e.i(56708),y=e.i(62427);let C=[{value:"basic",label:"本地MCP"},{value:"installed",label:"远程MCP"}];function j(){let e=(0,l.useAppStore)(e=>e.wsUrl),x=(0,l.useAppStore)(e=>e.apiBase),f=(0,l.useAppStore)(e=>e.agentConfig),j=(0,l.useAppStore)(e=>e.setAgentConfig),{currentAgent:w,loadAgentConfig:N}=(0,s.useSession)(),k=(0,n.usePersistAgentConfigField)("mcpServers"),S=f.mcpServers,T=(0,a.useMemo)(()=>[...S].sort().join("\0"),[S]),[A,R]=(0,a.useState)([]),[E,M]=(0,a.useState)([]),[P,U]=(0,a.useState)(!1),[I,z]=(0,a.useState)(!1),[B,O]=(0,a.useState)("basic"),[D,L]=(0,a.useState)(!1),[_,F]=(0,a.useState)(!1),[K,V]=(0,a.useState)(""),[H,J]=(0,a.useState)(!1);(0,a.useEffect)(()=>{N()},[N]);let W=(0,a.useCallback)(async(e,t)=>{z(!0);try{await k(e,{silent:t})}finally{z(!1)}},[k]),Y=(0,a.useCallback)(async()=>{R([]),U(!0);try{var t;let a=null!=(t=(await (0,y.listMcpServers)(e,x,w())).servers)?t:[];R(a.map(e=>{var t,a,l;return{...e,id:e.name,label:e.name+(e.disabled?"(已禁用)":""),description:null!=(a=null!=(t=e.description)?t:e.source)?a:"",source:null!=(l=e.source)?l:"",installed:!!e.installed}}))}catch(e){R([]),r.appToast.error("加载失败:".concat(e instanceof Error?e.message:String(e)))}finally{U(!1)}},[e,x,w]),q=(0,a.useCallback)(async t=>{var a;let l=A.find(e=>e.id===t),s=null!=(a=null==l?void 0:l.source)?a:"";if("runtime"!==s&&"remote"!==s)return void r.appToast.error("基础MCP不可删除");if(await (0,h.confirmAlertDialog)({title:"确认删除 MCP?",description:"服务器名:".concat(t),confirmText:"删除",cancelText:"取消"}))try{if("remote"===s){let a=await (0,y.loadRemoteMcpJson)(e,x,w()),l={};try{l=JSON.parse(String(a.content||"{}"))}catch(e){l={mcpServers:{}}}(!l.mcpServers||Array.isArray(l.mcpServers)||"object"!=typeof l.mcpServers)&&(l.mcpServers={}),delete l.mcpServers[t],await (0,y.saveRemoteMcpJson)(e,x,w(),JSON.stringify(l,null,2))}else await (0,y.deleteRuntimeMcp)(e,x,w(),t);let a=S.filter(e=>e!==t);M(e=>e.filter(e=>e!==t)),j({...f,mcpServers:a}),await W(a,!0),await Y()}catch(e){r.appToast.error("删除失败:".concat(e instanceof Error?e.message:String(e)))}},[A,e,x,w,S,f,j,W,Y]);(0,a.useEffect)(()=>{("basic"===B||"installed"===B)&&Y()},[B,Y]),(0,a.useEffect)(()=>{("basic"===B||"installed"===B)&&M([...S])},[B,S,T]);let Z=(0,a.useCallback)(async e=>{let t=[...new Set(e)].sort();j({...f,mcpServers:t}),await W(t,!0)},[f,j,W]),X=(0,a.useCallback)(async(e,t)=>{let a=t?[...new Set([...E,e])]:E.filter(t=>t!==e);M(a);try{await Z(a)}catch(e){M(E),r.appToast.error("切换启用状态失败: ".concat(e))}},[E,Z]),G=(0,a.useMemo)(()=>A.filter(e=>"remote"!==e.source).slice().sort((e,t)=>e.id.localeCompare(t.id)),[A]),$=(0,a.useMemo)(()=>A.filter(e=>"remote"===e.source).slice().sort((e,t)=>{let a=+!E.includes(e.id),l=+!E.includes(t.id);return a!==l?a-l:e.id.localeCompare(t.id)}).map(e=>({...e,name:e.id,label:e.label,description:e.description||"",installed:!0,source:e.source,disabled:!E.includes(e.id)})),[A,E]),Q=(0,a.useCallback)(t=>{window.open((0,y.exportRuntimeMcpUrl)(e,x,w(),t),"_blank","noopener")},[e,x,w]),ee=(0,a.useCallback)(async(e,t)=>{let a=t?[...new Set([...E,e])]:E.filter(t=>t!==e);M(a);try{await Z(a)}catch(e){M(E),r.appToast.error("切换启用状态失败: ".concat(e))}},[E,Z]),et=(0,a.useCallback)(()=>{F(!0),V(""),get(buildRemoteMcpJsonUrl(e,x,w())).then(e=>{V("string"==typeof e.content?e.content:"")}).catch(e=>{r.appToast.error("加载 mcp.json 失败:".concat(e instanceof Error?e.message:String(e))),F(!1)})},[e,x,w]),ea=(0,a.useCallback)(async()=>{J(!0);try{await post(buildRemoteMcpJsonUrl(e,x,w()),{content:K}),r.appToast.success("已保存全局 mcp.json。"),F(!1)}catch(e){r.appToast.error("保存 mcp.json 失败:".concat(e instanceof Error?e.message:String(e)))}finally{J(!1)}},[e,x,w,K]),el=[{key:"name",title:"名称",headerClassName:"text-base text-[var(--ds-muted)]",cellClassName:"text-base text-[var(--ds-text)]",render:e=>e.label},{key:"description",title:"详情",headerClassName:"text-base text-[var(--ds-muted)]",cellClassName:"text-base text-[var(--ds-text)]",render:e=>e.description||"-"},{key:"enabled",title:"启用/未启用",headerClassName:"w-14 w-[112px] text-right text-base text-[var(--ds-muted)]",cellClassName:"w-[112px] py-2 text-right align-middle",render:e=>(0,t.jsx)("span",{className:"inline-flex justify-end",children:(0,t.jsx)(u.AccentSwitch,{checked:E.includes(e.id),disabled:I,onCheckedChange:t=>{X(e.id,t)},"aria-label":"选择 ".concat(e.label)})})},{key:"actions",title:"操作",headerClassName:"w-[128px] text-base text-[var(--ds-muted)]",cellClassName:"w-[128px]",render:e=>{var a;let l=null!=(a=e.source)?a:"",s="runtime"===l,r="runtime"===l||"remote"===l;return(0,t.jsxs)("div",{className:"inline-flex items-center justify-end gap-1",children:[(0,t.jsx)(m.IconTooltipButton,{icon:"Download",label:s?"导出":"仅 runtime MCP 支持导出",ariaLabel:"导出 ".concat(e.label),disabled:I||!s,onClick:()=>Q(e.id)}),(0,t.jsx)(m.IconTooltipButton,{icon:"Trash2",label:r?"删除":"基础MCP不可删除",tone:"danger",ariaLabel:"删除 ".concat(e.label),disabled:I||!r,onClick:()=>{q(e.id)},iconClassName:"text-red-500"})]})}}];return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(v.ManageChromeHeaderActions,{children:(0,t.jsxs)("div",{className:"flex flex-wrap items-center",children:[(0,t.jsxs)(c.Button,{type:"button",variant:"plain-outline",size:"lg",onClick:et,className:"mr-[12px]",children:[(0,t.jsx)(g.default,{name:"Edit",size:16,className:"align-middle"}),"编辑全局MCP"]}),(0,t.jsxs)(c.Button,{id:"btnAgentImportMcp",type:"button",variant:"plain-outline",size:"lg",className:"inline-flex items-center justify-center gap-1.5",onClick:()=>L(!0),children:[(0,t.jsx)(g.default,{name:"Import",size:16,className:"align-middle"}),"导入MCP"]})]})}),(0,t.jsxs)(i.AppTabs,{tabs:C,value:B,listVariant:"line",onChange:e=>O(e),children:[(0,t.jsx)(i.AppTabsPanel,{value:"basic",children:(0,t.jsx)("div",{className:"flex min-h-0 flex-1 flex-col gap-3",children:(0,t.jsx)("div",{className:"min-h-0",children:P?(0,t.jsx)("p",{className:"px-3 py-6 text-center text-base text-[var(--ds-muted)]",children:"加载中…"}):(0,t.jsx)(d.AppTable,{rows:G,columns:el,getRowKey:e=>e.id})})})}),(0,t.jsx)(i.AppTabsPanel,{value:"installed",children:(0,t.jsx)(p,{items:$,saveBusy:I,onToggleStatus:ee})})]}),(0,t.jsx)(b,{open:D,onOpenChange:e=>{L(e),e||Y()},wsUrl:e,apiBase:x,agent:w()}),(0,t.jsx)(o.AppDialog,{open:_,onOpenChange:F,title:"编辑全局MCP",width:"max-w-4xl",minHeight:"420px",footer:(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(c.Button,{type:"button",variant:"plain-outline",size:"lg",disabled:H,onClick:()=>F(!1),children:"取消"}),(0,t.jsx)(c.Button,{type:"button",size:"lg",disabled:H,onClick:()=>void ea(),children:"保存"})]}),children:(0,t.jsx)("textarea",{className:"focus-visible:ring-[var(--ds-accent)]/30 min-h-[320px] w-full resize-y rounded-md border border-[var(--ds-border)] bg-[var(--ds-bg)] p-3 text-base leading-6 text-[var(--ds-text)] outline-none focus-visible:ring-2",spellCheck:!1,value:K,onChange:e=>V(e.target.value)})})]})}},47079,e=>{"use strict";e.s(["SkillsManageView",()=>T],47079);var t=e.i(18050),a=e.i(71645),l=e.i(65934),s=e.i(87243),r=e.i(13354),n=e.i(50711),i=e.i(51419),o=e.i(92715),d=e.i(19455),c=e.i(94055),u=e.i(94197),m=e.i(72064),p=e.i(93479),x=e.i(75157);function f(e){let{className:a,...l}=e;return(0,t.jsx)("nav",{role:"navigation","aria-label":"pagination","data-slot":"pagination",className:(0,x.cn)("flex w-full justify-end",a),...l})}let b=a.forwardRef((e,a)=>{let{className:l,...s}=e;return(0,t.jsx)("ul",{ref:a,"data-slot":"pagination-content",className:(0,x.cn)("flex flex-row flex-wrap items-center justify-end gap-1",l),...s})});b.displayName="PaginationContent";let h=a.forwardRef((e,a)=>{let{className:l,...s}=e;return(0,t.jsx)("li",{ref:a,"data-slot":"pagination-item",className:(0,x.cn)("",l),...s})});h.displayName="PaginationItem",a.forwardRef((e,a)=>{let{className:l,isActive:s,size:r="icon",...n}=e;return(0,t.jsx)("a",{ref:a,"aria-current":s?"page":void 0,"data-slot":"pagination-link","data-active":s?"true":void 0,className:(0,x.cn)((0,d.buttonVariants)({variant:s?"outline":"ghost",size:r}),l),...n})}).displayName="PaginationLink";var g=e.i(62427);function v(e){let{active:l,wsUrl:s,apiBase:n,agent:i,onAfterInstall:c,className:u}=e,[x,v]=(0,a.useState)(""),[y,C]=(0,a.useState)(1),[j,w]=(0,a.useState)(0),[N,k]=(0,a.useState)([]),[S,T]=(0,a.useState)(!1),[A,R]=(0,a.useState)(""),[E,M]=(0,a.useState)({}),P=(0,a.useRef)(0),U=(0,a.useCallback)(async()=>{let e=++P.current;T(!0),R("");try{let t=await (0,g.listCloudSkillCatalog)(s,n,i,x,y,10);if(e!==P.current)return;let a=Array.isArray(t.items)?t.items:[],l=[];for(let e of a)e&&"object"==typeof e&&e.id&&l.push({id:String(e.id),title:String(e.title||""),skillName:String(e.skillName||""),description:"string"==typeof e.description?e.description:"",installed:!!e.installed});k(l),w(t.totalPages)}catch(t){if(e!==P.current)return;k([]),w(0),R(t instanceof Error?t.message:String(t))}finally{e===P.current&&T(!1)}},[s,n,i,x,y]);(0,a.useEffect)(()=>{if(!l){v(""),C(1),w(0),k([]),R(""),M({}),P.current+=1;return}U()},[l,U]);let I=(0,a.useMemo)(()=>{if(S)return"加载中…";if(A)return"加载失败:".concat(A);let e=N.reduce((e,t)=>e+ +!!t.installed,0);return"已安装 ".concat(e," 项")},[S,A,N]),z=(0,a.useCallback)(async(e,t)=>{M(t=>({...t,[e]:!0}));try{await (0,g.installCloudSkill)(s,n,i,e),r.appToast.success("云端技能已安装:".concat(t)),await U(),null==c||c()}catch(e){r.appToast.error("安装失败:".concat(e instanceof Error?e.message:String(e)))}finally{M(t=>{let a={...t};return delete a[e],a})}},[s,n,i,U,c]),B=(0,a.useCallback)(e=>{C(1),v(e)},[]);if(!l)return null;let O=j>0?"第 ".concat(y,"/").concat(j," 页"):"第 0/0 页",D=S||y<=1,L=S||j<=0||y>=j,_=[{key:"name",title:"名称",headerClassName:"text-base",cellClassName:"text-base text-[var(--ds-text)]",render:e=>e.skillName?"".concat(e.skillName):e.id},{key:"description",title:"详情",headerClassName:"text-base",cellClassName:"text-base text-[var(--ds-text)]",render:e=>(0,t.jsxs)(t.Fragment,{children:[e.title,e.description?" — ".concat(e.description):""]})},{key:"status",title:"状态",headerClassName:"text-base",cellClassName:"whitespace-nowrap text-base text-[var(--ds-text)]",render:e=>e.installed?"已安装":"未安装"},{key:"actions",title:"操作",headerClassName:"w-[96px] text-right text-base",cellClassName:"w-[116px] text-right",render:e=>{let a=!!E[e.id],l=!!e.installed;return!a&&l?"-":(0,t.jsx)(d.Button,{type:"button",size:"sm",variant:"outline",disabled:a||l,onClick:()=>void z(e.id,e.title||e.skillName||e.id),children:a?"安装中…":l?"已安装":"安装"})}}];return(0,t.jsx)("div",{className:u,children:(0,t.jsxs)("div",{className:"flex flex-col gap-3",children:[(0,t.jsx)(p.Input,{type:"search",value:x,onChange:e=>B(e.target.value),placeholder:"搜索云端技能…",className:"h-10 border-[var(--ds-border)] bg-[var(--ds-bg)] text-base"}),(0,t.jsx)("div",{className:"text-sm text-[var(--ds-muted)]",children:I}),(0,t.jsx)(o.AppTable,{rows:N,columns:_,getRowKey:e=>e.id,className:"min-h-0 flex-1 rounded-md",bodyProps:{viewportPaginationReserve:64},emptyNode:S?(0,t.jsx)("p",{className:"text-center text-base",children:"加载中…"}):void 0}),(0,t.jsx)(f,{className:"mx-0 w-full",children:(0,t.jsxs)(b,{className:"w-full flex-wrap justify-end gap-2",children:[(0,t.jsx)(h,{children:(0,t.jsxs)(d.Button,{type:"button",variant:"outline",size:"sm",disabled:D,className:"gap-1",onClick:()=>C(e=>Math.max(1,e-1)),"aria-label":"上一页",children:[(0,t.jsx)(m.default,{name:"ChevronLeft",size:16,className:"shrink-0"}),"上一页"]})}),(0,t.jsx)(h,{children:(0,t.jsx)("span",{className:"flex h-9 min-w-[6.5rem] items-center justify-center text-sm text-[var(--ds-muted)]",children:O})}),(0,t.jsx)(h,{children:(0,t.jsxs)(d.Button,{type:"button",variant:"outline",size:"sm",disabled:L,className:"gap-1",onClick:()=>C(e=>e+1),"aria-label":"下一页",children:["下一页",(0,t.jsx)(m.default,{name:"ChevronRight",size:16,className:"shrink-0",strokeWidth:1})]})})]})})]})})}var y=e.i(36845),C=e.i(53925);function j(e){let{open:a,onOpenChange:l,wsUrl:s,apiBase:r,agent:n}=e;return(0,t.jsx)(C.ResourceImportDialog,{open:a,onOpenChange:l,title:"导入 Skill zip",description:"选择一个 zip 文件并导入到 skills-runtime。",uploadUrl:(0,y.buildSkillsRuntimeImportUrl)(s,r,n),resetKey:n})}function w(e){let{items:a,saveBusy:l,onToggleEnabled:s,onExport:r,onRemove:n,className:i}=e,d=[{key:"name",title:"名称",headerClassName:"text-base",cellClassName:"text-base",render:e=>e.name},{key:"description",title:"详情",headerClassName:"text-base",cellClassName:"text-base",render:e=>e.description||"-"},{key:"status",title:"状态",headerClassName:"w-[160px] text-base",cellClassName:"w-[160px] text-base text-[var(--ds-text)]",render:()=>"已安装"},{key:"enabled",title:"启用/未启用",headerClassName:"w-[160px] text-right text-base",cellClassName:"w-[160px] py-2 text-right align-middle",render:e=>(0,t.jsx)("span",{className:"inline-flex items-center justify-end gap-2",children:(0,t.jsx)(c.AccentSwitch,{checked:e.enabled,disabled:l,onCheckedChange:t=>s(e.name,t),"aria-label":"".concat(e.enabled?"禁用":"启用"," ").concat(e.name)})})},{key:"actions",title:"操作",headerClassName:"w-[128px] text-base",cellClassName:"w-[128px]",render:e=>(0,t.jsxs)("div",{className:"inline-flex items-center justify-end gap-1",children:[(0,t.jsx)(u.IconTooltipButton,{icon:"Download",label:"导出",ariaLabel:"导出 ".concat(e.name),disabled:l,onClick:()=>r(e.name)}),(0,t.jsx)(u.IconTooltipButton,{icon:"Trash2",label:"删除",tone:"danger",ariaLabel:"删除 ".concat(e.name),disabled:l,onClick:()=>{n(e.name)}})]})}];return(0,t.jsx)(o.AppTable,{rows:a,columns:d,getRowKey:e=>"skills:".concat(e.name),className:i})}var N=e.i(68499),k=e.i(56708);let S=[{value:"basic",label:"基础Skill"},{value:"installed",label:"已安装Skill"},{value:"cloud_catalog",label:"Skill商店"}];function T(){let e=(0,l.useAppStore)(e=>e.wsUrl),p=(0,l.useAppStore)(e=>e.apiBase),x=(0,l.useAppStore)(e=>e.agentConfig),f=(0,l.useAppStore)(e=>e.setAgentConfig),{currentAgent:b,loadAgentConfig:h}=(0,s.useSession)(),y=(0,n.usePersistAgentConfigField)("skills"),C=x.skills,T=(0,a.useMemo)(()=>[...C].sort().join("\0"),[C]),[A,R]=(0,a.useState)([]),[E,M]=(0,a.useState)([]),[P,U]=(0,a.useState)(!1),[I,z]=(0,a.useState)(!1),[B,O]=(0,a.useState)("basic"),[D,L]=(0,a.useState)(!1);(0,a.useEffect)(()=>{h()},[h]);let _=(0,a.useCallback)(async(e,t)=>{z(!0);try{await y(e,{silent:t})}finally{z(!1)}},[y]),F=(0,a.useCallback)(async()=>{R([]),U(!0);try{var t;let a=null!=(t=(await (0,g.listSkills)(e,p,b())).skills)?t:[];R(a.map(e=>{var t,a;return{...e,id:e.name,label:"".concat(e.name),description:null!=(a=null!=(t=e.description)?t:e.whenToUse)?a:"",isRuntime:!!e.isRuntime}}))}catch(e){R([]),r.appToast.error("加载失败:".concat(e instanceof Error?e.message:String(e)))}finally{U(!1)}},[e,p,b]),K=(0,a.useCallback)(async t=>{let a=A.find(e=>e.id===t);if(!(null==a?void 0:a.isRuntime))return void r.appToast.info("仅 skills-runtime 中的技能可删除");if(await (0,N.confirmAlertDialog)({title:"确认删除 Skill 包?",description:"Skill:".concat(t),confirmText:"删除",cancelText:"取消"}))try{await (0,g.deleteRuntimeSkill)(e,p,b(),t);let a=C.filter(e=>e!==t);M(e=>e.filter(e=>e!==t)),f({...x,skills:a}),await _(a,!0),await F()}catch(e){r.appToast.error("删除失败:".concat(e instanceof Error?e.message:String(e)))}},[A,e,p,b,C,x,f,_,F]);(0,a.useEffect)(()=>{("basic"===B||"installed"===B)&&F()},[B,F]);let V=(0,a.useCallback)(()=>{F()},[F]);(0,a.useEffect)(()=>{"basic"===B&&M([...C])},[B,C,T]);let H=(0,a.useCallback)(e=>{let t=[...new Set(e)].sort();f({...x,skills:t}),_(t,!0)},[x,f,_]),J=(0,a.useMemo)(()=>A.filter(e=>!e.isRuntime),[A]),W=(0,a.useMemo)(()=>A.filter(e=>!0===e.isRuntime).slice().sort((e,t)=>e.label.localeCompare(t.label)).map(e=>({name:e.id,installed:!0,description:e.description||"",enabled:C.includes(e.id)})),[A,C]),Y=(0,a.useCallback)((e,t)=>{let a=t?[...new Set([...C,e])].sort():C.filter(t=>t!==e);f({...x,skills:a}),M(a),_(a,!0)},[C,x,f,_]),q=(0,a.useCallback)(t=>{window.open((0,g.exportRuntimeSkillUrl)(e,p,b(),t),"_blank","noopener")},[e,p,b]),Z=[{key:"name",title:"名称",headerClassName:"text-base text-[var(--ds-muted)]",cellClassName:"text-base text-[var(--ds-text)]",render:e=>e.label},{key:"description",title:"详情",headerClassName:"text-base text-[var(--ds-muted)]",cellClassName:"text-base text-[var(--ds-text)]",render:e=>e.description||"-"},{key:"enabled",title:"启用/未启用",headerClassName:"w-[72px] text-right text-base text-[var(--ds-muted)]",cellClassName:"w-[72px] py-2 text-right align-middle",render:e=>(0,t.jsx)("span",{className:"inline-flex justify-end",children:(0,t.jsx)(c.AccentSwitch,{checked:E.includes(e.id),disabled:I,onCheckedChange:t=>{let a=t?[...new Set([...E,e.id])]:E.filter(t=>t!==e.id);M(a),H(a)},"aria-label":"选择 ".concat(e.label)})})},{key:"actions",title:"操作",headerClassName:"w-[72px] text-right text-base text-[var(--ds-muted)]",cellClassName:"w-[72px] py-2 text-right align-middle",render:e=>(0,t.jsx)("span",{className:"inline-flex justify-end",children:(0,t.jsx)(u.IconTooltipButton,{icon:"Trash2",label:"删除",tone:"danger",disabled:I,ariaLabel:"删除 ".concat(e.label),onClick:()=>{K(e.id)}})})}];return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(k.ManageChromeHeaderActions,{children:(0,t.jsxs)(d.Button,{id:"btnAgentImportSkill",type:"button",variant:"plain-outline",size:"lg",className:"inline-flex items-center justify-center gap-1.5",onClick:()=>L(!0),children:[(0,t.jsx)(m.default,{name:"Import",size:16,className:"align-middle"}),"导入Skill"]})}),(0,t.jsxs)(i.AppTabs,{tabs:S,value:B,listVariant:"line",onChange:e=>O(e),children:[(0,t.jsx)(i.AppTabsPanel,{value:"basic",children:(0,t.jsx)("div",{className:"flex min-h-0 flex-1 flex-col gap-3",children:(0,t.jsx)("div",{className:"min-h-0",children:P?(0,t.jsx)("p",{className:"px-3 py-6 text-center text-base text-[var(--ds-muted)]",children:"加载中…"}):(0,t.jsx)(o.AppTable,{rows:J,columns:Z,getRowKey:e=>e.id})})})}),(0,t.jsx)(i.AppTabsPanel,{value:"installed",children:(0,t.jsx)(w,{items:W,saveBusy:I,onToggleEnabled:Y,onExport:q,onRemove:K})}),(0,t.jsx)(i.AppTabsPanel,{value:"cloud_catalog",className:"flex min-h-0 flex-1 flex-col",children:(0,t.jsx)(v,{active:"cloud_catalog"===B,wsUrl:e,apiBase:p,agent:b(),onAfterInstall:V,className:"min-h-0 flex-1"})})]}),(0,t.jsx)(j,{open:D,onOpenChange:e=>{L(e),e||F()},wsUrl:e,apiBase:p,agent:b()})]})}},69230,e=>{"use strict";e.s(["SettingsRouteBoundary",()=>i]);var t=e.i(18050),a=e.i(22016),l=e.i(18566),s=e.i(82787),r=e.i(97249),n=e.i(65934);function i(e){let{children:i}=e,o=(0,l.usePathname)(),d=(0,n.useAppStore)(e=>e.agentId),c=(0,r.buildAppNavHref)(s.MANAGE_DEFAULT_HREF,{ensureAgent:!0,agent:d});return o&&!(0,s.isManageRouteEnabled)((0,r.normalizeAppPathname)(o))?(0,t.jsxs)("div",{className:"manage-page-wrap flex min-h-0 flex-1 flex-col",children:[(0,t.jsx)("div",{className:"manage-page-header flex shrink-0 items-start justify-between gap-4 pb-4",children:(0,t.jsxs)("div",{className:"manage-page-title-block",children:[(0,t.jsx)("h1",{className:"manage-page-title",children:"页面不可用"}),(0,t.jsx)("p",{className:"manage-page-desc",children:"当前设置页未开放或已被禁用。"})]})}),(0,t.jsx)("div",{className:"manage-page-body flex min-h-0 min-w-0 flex-1 flex-col items-center justify-center gap-3 text-sm text-[var(--ds-muted)]",children:(0,t.jsx)(a.default,{className:"text-zinc-900 underline underline-offset-4",href:c,children:"返回默认设置页"})})]}):(0,t.jsx)(t.Fragment,{children:i})}}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,24687,e=>{"use strict";e.s(["Textarea",()=>o]);var a=e.i(18050),s=e.i(75157);function o(e){let{className:o,...r}=e;return(0,a.jsx)("textarea",{"data-slot":"textarea",className:(0,s.cn)("flex min-h-20 w-full rounded-md border border-solid border-border bg-transparent px-3 py-2 text-sm outline-none transition-[color,box-shadow,border-color] duration-150 ease-in-out placeholder:text-muted-foreground hover:border-[#e0e0e0] focus-visible:border-[var(--border-focus)] focus-visible:[box-shadow:var(--ring-focus-sm)] read-only:focus-visible:border-border read-only:focus-visible:[box-shadow:none] disabled:cursor-not-allowed disabled:opacity-50 disabled:focus-visible:border-border disabled:focus-visible:[box-shadow:none]",o),...r})}},98083,e=>{"use strict";e.s(["AgentManageView",()=>c],98083);var a=e.i(18050),s=e.i(71645),o=e.i(19455),r=e.i(13354),t=e.i(75157),i=e.i(24687);function n(e){let{value:s,onChange:o,loading:r=!1,className:n}=e;return(0,a.jsx)("div",{className:(0,t.cn)("flex min-h-[200px] flex-col",n),children:r?(0,a.jsx)("div",{className:"tool-files-state py-4",children:"加载 agent.md…"}):(0,a.jsx)(i.Textarea,{className:(0,t.cn)("agent-md-editor min-h-[110px] resize-y focus-visible:ring-1 focus-visible:ring-ring"),spellCheck:!1,value:s,onChange:e=>o(e.target.value),placeholder:"编辑当前 Agent 的提示词(agent.md)"})})}var l=e.i(87243),d=e.i(82136);function c(){let{agentMdText:e,setAgentMdText:t,agentLoading:i,loadAgentPrompt:c,saveAgentPrompt:u}=function(e){let{currentAgent:a}=(0,l.useSession)(),[o,t]=(0,s.useState)(!1),[i,n]=(0,s.useState)(""),c=(0,s.useCallback)(async()=>{t(!0);try{let e=await (0,d.loadAgentPrompt)(a());n(e)}catch(e){r.appToast.error("加载 agent.md 失败:".concat(e instanceof Error?e.message:String(e)))}finally{t(!1)}},[a]),u=(0,s.useCallback)(async e=>{await (0,d.saveAgentPrompt)(a(),i),(null==e?void 0:e.silent)||r.appToast.success("已保存 agent.md。")},[a,i]);return(0,s.useEffect)(()=>{c()},[c,void 0]),{agentMdText:i,setAgentMdText:n,agentLoading:o,loadAgentPrompt:c,saveAgentPrompt:u}}(),[b,f]=(0,s.useState)(!1),x=(0,s.useCallback)(async()=>{f(!0);try{await u()}catch(e){r.appToast.error("保存失败:".concat(e instanceof Error?e.message:String(e)))}finally{f(!1)}},[u]);return(0,a.jsxs)("div",{className:"manage-page-content flex min-h-0 flex-1 flex-col rounded-xl border bg-[#fff] shadow-[var(--shadow-md)]",children:[(0,a.jsx)("div",{className:"flex min-h-0 flex-1 flex-col p-4",children:(0,a.jsx)(n,{value:e,onChange:t,loading:i,className:"min-h-0 flex-1"})}),(0,a.jsxs)("div",{className:"flex shrink-0 justify-end gap-2 border-t border-[var(--ds-border)] px-4 py-3",children:[(0,a.jsx)(o.Button,{type:"button",variant:"plain-outline",size:"lg",disabled:i||b,onClick:()=>void c(),children:"取消"}),(0,a.jsx)(o.Button,{type:"button",size:"lg",disabled:i||b,onClick:()=>void x(),children:"保存"})]})]})}}]);
|
/package/dist/_next/static/{Y0q5wZJWOYM0DHKGzws1i → cTHBIunE3OANgRkUnrMUo}/_buildManifest.js
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|