@auto-ai/agent 2.1.165 → 2.1.167
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/{ecaea9e9321ec538.js → 04865c74d0dcb5b6.js} +1 -1
- package/dist/_next/static/chunks/{371449b804c846f7.js → 07cd0b140a56ee30.js} +1 -1
- package/dist/_next/static/chunks/1348edc568cfb2b2.js +1 -0
- package/dist/_next/static/chunks/22fb0418205bc3b6.js +1 -0
- package/dist/_next/static/chunks/2761e463114b018c.js +1 -0
- package/dist/_next/static/chunks/345032ba59cb60d8.js +1 -0
- package/dist/_next/static/chunks/4cc4bd81c5ae0c40.js +1 -0
- package/dist/_next/static/chunks/5cdf21cf7f4c7608.js +1 -0
- package/dist/_next/static/chunks/61b3d4c00499dd14.js +1 -0
- package/dist/_next/static/chunks/{46b326fcd7b2e8ab.js → 652e486c20710ca8.js} +1 -1
- package/dist/_next/static/chunks/6ddf95b168bfbc36.js +1 -0
- package/dist/_next/static/chunks/789aab39327312c3.js +1 -0
- package/dist/_next/static/chunks/{0fa3b1f693a23b15.js → 8085c74f26fa2c4e.js} +1 -1
- package/dist/_next/static/chunks/8a1a9a399fe2d329.js +1 -0
- package/dist/_next/static/chunks/b7546ebaecffed5f.js +1 -0
- package/dist/_next/static/chunks/{a7d1ae46740fe1db.js → b7f72bcb870dda3b.js} +1 -1
- package/dist/_next/static/chunks/bdd88bcfd223f52a.js +1 -0
- package/dist/_next/static/chunks/c73f7d77cbe3f2f1.css +1 -0
- package/dist/_next/static/chunks/cd4556cbed1f8957.js +1 -0
- package/dist/_next/static/chunks/d55f4f3df263ad3d.js +1 -0
- package/dist/_next/static/chunks/{d4fd1b2f761be57f.css → fa5420e426d2de9f.css} +1 -1
- package/dist/_next/static/chunks/{799f92e88bfeb469.js → fdecc614380e597a.js} +1 -1
- package/dist/index.html +2 -2
- package/dist/index.txt +19 -19
- package/dist/manage/about/index.html +2 -2
- package/dist/manage/about/index.txt +21 -21
- package/dist/manage/env/index.html +2 -2
- package/dist/manage/env/index.txt +24 -24
- package/dist/manage/general/index.html +2 -2
- package/dist/manage/general/index.txt +21 -21
- package/dist/manage/index.html +2 -2
- package/dist/manage/index.txt +18 -18
- package/dist/manage/mcp/index.html +2 -2
- package/dist/manage/mcp/index.txt +22 -22
- package/dist/manage/permissions/index.html +2 -2
- package/dist/manage/permissions/index.txt +21 -21
- package/dist/manage/skills/index.html +2 -2
- package/dist/manage/skills/index.txt +22 -22
- package/dist/manage/task/index.html +2 -2
- package/dist/manage/task/index.txt +22 -22
- package/dist/manage/teams/index.html +2 -2
- package/dist/manage/teams/index.txt +22 -22
- package/dist/manage/tools/index.html +2 -2
- package/dist/manage/tools/index.txt +22 -22
- package/package.json +6 -6
- package/dist/_next/static/chunks/06b383e8ee499be7.js +0 -1
- package/dist/_next/static/chunks/1cb7453376657ffb.css +0 -1
- package/dist/_next/static/chunks/2014b101125849fd.js +0 -1
- package/dist/_next/static/chunks/38b035f49fa68570.js +0 -1
- package/dist/_next/static/chunks/3ddf56f78e79b076.js +0 -1
- package/dist/_next/static/chunks/489266ff75dbd7fd.js +0 -1
- package/dist/_next/static/chunks/4b1cbde821e7ad65.js +0 -1
- package/dist/_next/static/chunks/5853f68e75f5f7ab.js +0 -1
- package/dist/_next/static/chunks/5f6769a92729c6c3.js +0 -1
- package/dist/_next/static/chunks/65efa67b7efe0f72.js +0 -1
- package/dist/_next/static/chunks/73930967cfa80238.js +0 -1
- package/dist/_next/static/chunks/73e518d4b3543b8f.js +0 -1
- package/dist/_next/static/chunks/7f52fbd725b13904.js +0 -1
- package/dist/_next/static/chunks/b896987ddf6315c9.js +0 -1
- package/dist/_next/static/chunks/c79da9dd69089e4f.js +0 -1
- package/dist/_next/static/chunks/da89e354de542422.js +0 -1
- /package/dist/_next/static/{vwMrLQGLViMpdiC9eEa7U → bgHnfEbjqZYUwK_KG6A0m}/_buildManifest.js +0 -0
- /package/dist/_next/static/{vwMrLQGLViMpdiC9eEa7U → bgHnfEbjqZYUwK_KG6A0m}/_clientMiddlewareManifest.json +0 -0
- /package/dist/_next/static/{vwMrLQGLViMpdiC9eEa7U → bgHnfEbjqZYUwK_KG6A0m}/_ssgManifest.js +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,92715,e=>{"use strict";e.s(["AppTable",()=>d],92715);var t=e.i(18050),r=e.i(85413),l=e.i(71645),a=e.i(75157);let n=l.forwardRef((e,r)=>{let{className:l,...n}=e;return(0,t.jsx)("div",{className:"relative w-full overflow-auto",children:(0,t.jsx)("table",{ref:r,className:(0,a.cn)("w-full caption-bottom border-collapse",l),...n})})});n.displayName="Table";let s=l.forwardRef((e,r)=>{let{className:l,...n}=e;return(0,t.jsx)("thead",{ref:r,className:(0,a.cn)("[&_tr]:table [&_tr]:w-full [&_tr]:table-fixed [&_tr]:border-b",l),...n})});s.displayName="TableHeader";let i=l.forwardRef((e,r)=>{let{className:n,viewportFit:s=!0,viewportReserveBottom:i=16,viewportPaginationReserve:o=0,style:c,...u}=e,d=l.useRef(null),m=l.useCallback(e=>{d.current=e,"function"==typeof r?r(e):r&&(r.current=e)},[r]),[p,f]=l.useState(void 0);return l.useLayoutEffect(()=>{var e,t;if(!s)return void f(void 0);let r=()=>{var e,t;let r=d.current;if(!r)return;let l=r.getBoundingClientRect().top;f(Math.max(80,Math.floor((null!=(t=null==(e=window.visualViewport)?void 0:e.height)?t:window.innerHeight)-l-(i+o))))};r();let l=new ResizeObserver(()=>{r()});try{l.observe(document.body)}catch(e){}return window.addEventListener("resize",r),null==(e=window.visualViewport)||e.addEventListener("resize",r),null==(t=window.visualViewport)||t.addEventListener("scroll",r),window.addEventListener("scroll",r,!0),()=>{var e,t;l.disconnect(),window.removeEventListener("resize",r),null==(e=window.visualViewport)||e.removeEventListener("resize",r),null==(t=window.visualViewport)||t.removeEventListener("scroll",r),window.removeEventListener("scroll",r,!0)}},[s,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",n),style:s&&void 0!==p?{...c,maxHeight:p}:c,...u})});i.displayName="TableBody";let o=l.forwardRef((e,r)=>{let{className:l,hoverable:n=!0,...s}=e;return(0,t.jsx)("tr",{ref:r,className:(0,a.cn)("border-b transition-colors [&>td]:transition-colors data-[state=selected]:[&>td]:!bg-[var(--ds-item-active)]",n&&"group/table-row",l),...s})});o.displayName="TableRow";let c=l.forwardRef((e,r)=>{let{className:l,...n}=e;return(0,t.jsx)("th",{ref:r,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",l),...n})});c.displayName="TableHead";let u=l.forwardRef((e,r)=>{let{className:l,...n}=e;return(0,t.jsx)("td",{ref:r,className:(0,a.cn)("border-x-0 border-b border-t-0 border-solid border-[var(--border-subtle)] p-3 align-middle transition-colors group-has-[td:hover]/table-row:!bg-[var(--ds-item-hover)]",l),...n})});function d(e){let{rows:l,columns:d,getRowKey:m,className:p,rowClassName:f,headerRowClassName:b,emptyText:g,emptyNode:x,bodyProps:v}=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)(s,{children:(0,t.jsx)(o,{className:(0,a.cn)("bg-[var(--ds-main-tint)] hover:bg-[var(--ds-main-tint)]",b),children:d.map(e=>(0,t.jsx)(c,{className:e.headerClassName,children:e.title},e.key))})}),(0,t.jsx)(i,{...v,children:l.length?l.map(e=>(0,t.jsx)(o,{className:"function"==typeof f?f(e):f,children:d.map(r=>(0,t.jsx)(u,{className:r.cellClassName,children:r.render(e)},r.key))},m(e))):(0,t.jsx)(o,{hoverable:!1,children:(0,t.jsx)(u,{colSpan:d.length,className:"py-6",children:null!=x?x:(0,t.jsx)(r.Empty,{text:g})})})})]})})}u.displayName="TableCell"},62427,e=>{"use strict";e.s(["clearRuntimeMcpItemConfig",()=>w,"deleteRuntimeMcp",()=>m,"deleteRuntimeSkill",()=>j,"deleteRuntimeTool",()=>d,"exportRuntimeMcpUrl",()=>f,"exportRuntimeSkillUrl",()=>k,"exportRuntimeToolUrl",()=>p,"importRuntimeMcp",()=>g,"importRuntimeTool",()=>b,"installCloudSkill",()=>N,"listBaseSkills",()=>n,"listCloudSkillCatalog",()=>C,"listInstalledSkills",()=>s,"listInstalledTools",()=>a,"listMcpServers",()=>l,"listRuntimeMcpPackages",()=>u,"listRuntimeTools",()=>c,"loadBaseSkillMd",()=>i,"loadRemoteMcpJson",()=>x,"loadRuntimeMcpItemConfig",()=>h,"saveBaseSkillMd",()=>o,"saveRemoteMcpJson",()=>v,"saveRuntimeMcpItemConfig",()=>y]);var t=e.i(29250),r=e.i(36845);async function l(e,l,a){let n=await (0,t.get)((0,r.buildMcpServersListUrl)(e,l,a));return{servers:Array.isArray(n.servers)?n.servers:[]}}async function a(e,l,a){let n=await (0,t.get)((0,r.buildToolInstalledListUrl)(e,l,a));return{tools:Array.isArray(n.tools)?n.tools:[]}}async function n(e,l,a){let n=await (0,t.get)((0,r.buildSkillBaseListUrl)(e,l,a));return{skills:Array.isArray(n.skills)?n.skills:[]}}async function s(e,l,a){let n=await (0,t.get)((0,r.buildSkillInstalledListUrl)(e,l,a));return{skills:Array.isArray(n.skills)?n.skills:[]}}async function i(e,l,a,n){return(0,t.get)((0,r.buildBaseSkillMdUrl)(e,l,a,n))}async function o(e,l,a,n,s){await (0,t.put)((0,r.buildBaseSkillMdUrl)(e,l,a,n),{content:s})}async function c(e,l,a){let n=await (0,t.get)((0,r.buildToolsRuntimeFilesUrl)(e,l,a));return{runtimeToolsDir:"string"==typeof n.runtimeToolsDir?n.runtimeToolsDir:"",items:Array.isArray(n.items)?n.items.filter(e=>!!(e&&e.id)):[]}}async function u(e,l,a){let n=await (0,t.get)((0,r.buildMcpRuntimeFilesUrl)(e,l,a));return{mcpRuntimeDir:"string"==typeof n.mcpRuntimeDir?n.mcpRuntimeDir:"",items:Array.isArray(n.items)?n.items.filter(e=>!!(e&&e.id)):[]}}async function d(e,l,a,n){return(0,t.del)((0,r.buildToolsRuntimeDeleteUrl)(e,l,a,n))}async function m(e,l,a,n){return(0,t.del)((0,r.buildMcpRuntimeDeleteUrl)(e,l,a,n))}function p(e,t,l,a){return(0,r.buildToolsRuntimeExportUrl)(e,t,l,a)}function f(e,t,l,a){return(0,r.buildMcpRuntimeExportUrl)(e,t,l,a)}async function b(e,l,a,n){let s=new FormData;return s.append("file",n),(0,t.post)((0,r.buildToolsRuntimeImportUrl)(e,l,a),s,{type:"file"})}async function g(e,l,a,n){let s=new FormData;return s.append("file",n),(0,t.post)((0,r.buildMcpRuntimeImportUrl)(e,l,a),s,{type:"file"})}async function x(e,l,a){return(0,t.get)((0,r.buildRemoteMcpJsonUrl)(e,l,a))}async function v(e,l,a,n){await (0,t.post)((0,r.buildRemoteMcpJsonUrl)(e,l,a),{content:n})}async function h(e,l,a,n,s){return(0,t.get)((0,r.buildRuntimeMcpItemConfigUrl)(e,l,a,n,s))}async function y(e,l,a,n,s,i){await (0,t.put)((0,r.buildRuntimeMcpItemConfigUrl)(e,l,a,n,s),{server:i})}async function w(e,l,a,n,s){await (0,t.del)((0,r.buildRuntimeMcpItemConfigUrl)(e,l,a,n,s))}async function j(e,l,a,n){return(0,t.del)((0,r.buildSkillsRuntimeDeleteUrl)(e,l,a,n))}function k(e,t,l,a){return(0,r.buildSkillsRuntimeExportUrl)(e,t,l,a)}async function C(e,l,a,n,s,i){let o=await (0,t.get)((0,r.buildCloudSkillCatalogUrl)(e,l,a,n,s,i));return{items:Array.isArray(o.items)?o.items:[],totalPages:Number(o.totalPages||0)}}async function N(e,l,a,n){await (0,t.post)((0,r.buildCloudSkillInstallUrl)(e,l,a),{id:n})}},53925,e=>{"use strict";e.s(["ResourceImportDialog",()=>d],53925);var t=e.i(18050),r=e.i(71645),l=e.i(72064),a=e.i(75157),n=e.i(19455);function s(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:c=!1,multiple:u=!1,maxFileSize:d=0x3200000,autoUpload:m=!1,method:p="POST",transport:f="xhr",fieldName:b="file",headers:g,extraFormData:x,autoRetryTimes:v=0,autoRetryDelayMs:h=800,selectionOnly:y=!1,className:w,emptyTitle:j="点击或拖拽文件到此处",emptyHint:k="支持上传文件",onFilesChange:C,onUploadSuccess:N,onUploadError:R,onValidationError:T}=e,S=r.useId(),U=r.useRef(null),M=r.useRef(new Map),A=r.useRef(new Map),D=r.useRef([]),[I,E]=r.useState(!1),[z,B]=r.useState([]),L=r.useMemo(()=>o?o.split(",").map(e=>e.trim().toLowerCase()).filter(Boolean):[],[o]);r.useEffect(()=>{D.current=z,null==C||C(z)},[z,C]),r.useEffect(()=>()=>{for(let e of M.current.values())e.abort();for(let e of A.current.values())e.abort();for(let e of D.current)e.previewUrl&&URL.revokeObjectURL(e.previewUrl)},[]);let O=r.useCallback((e,t)=>{B(r=>r.map(r=>r.id===e?{...r,...t}:r))},[]),_=r.useCallback(async(e,t)=>{let r=D.current.find(t=>t.id===e);if(!r||c)return;O(e,{status:t>0?"retrying":"uploading",progress:0,error:"",retryCount:t});let l=new FormData;if(x)for(let[e,t]of Object.entries(x))l.append(e,t);l.append(b,r.file);try{let t="";if("fetch"===f){let r=new AbortController;A.current.set(e,r);let a=await fetch(i,{method:p,headers:g,body:l,signal:r.signal}),n=await a.text();try{t=n?JSON.parse(n):""}catch(e){t=n}if(!a.ok)throw Error("上传失败:".concat(a.status," ").concat(a.statusText))}else t=await new Promise((t,r)=>{let a=new XMLHttpRequest;if(M.current.set(e,a),a.open(p,i,!0),g)for(let[e,t]of Object.entries(g))a.setRequestHeader(e,t);a.upload.onprogress=t=>{if(!t.lengthComputable)return;let r=Math.min(100,Math.round(t.loaded/t.total*100));O(e,{progress:r})},a.onerror=()=>r(Error("网络异常,上传失败")),a.onabort=()=>r(Error("__ABORTED__")),a.onload=()=>{a.status>=200&&a.status<300?t(function(e){let t=e.responseText||"";try{return JSON.parse(t)}catch(e){return t}}(a)):r(Error("上传失败:".concat(a.status," ").concat(a.statusText)))},a.send(l)});O(e,{status:"success",progress:100,error:""});let r=D.current.find(t=>t.id===e);r&&(null==N||N(r,t))}catch(a){let r=a instanceof Error?a.message:String(a);if("__ABORTED__"===r)return void O(e,{status:"selected",progress:0,error:""});if(t<v){O(e,{status:"retrying",error:"重试中(".concat(t+1,"/").concat(v,")")}),await new Promise(e=>window.setTimeout(e,h)),await _(e,t+1);return}O(e,{status:"error",error:r});let l=D.current.find(t=>t.id===e);l&&(null==R||R(l,r))}finally{M.current.delete(e),A.current.delete(e)}},[h,v,c,x,b,g,p,R,N,f,O,i]),F=r.useCallback(e=>{_(e,0)},[_]),P=r.useCallback(e=>{var t,r;null==(t=M.current.get(e))||t.abort(),null==(r=A.current.get(e))||r.abort()},[]),H=r.useCallback(()=>{for(let e of D.current)("selected"===e.status||"error"===e.status)&&F(e.id)},[F]),V=r.useCallback(e=>{if(c||!e.length)return;let t=new Set(D.current.map(e=>"".concat(e.file.name,"::").concat(e.file.size))),r=[];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 r=e.name.toLowerCase(),l=(e.type||"").toLowerCase();return t.some(e=>e.startsWith(".")?r.endsWith(e):e.endsWith("/*")?l.startsWith("".concat(e.slice(0,-1))):l===e)}(l,L)){null==T||T("文件类型不支持:".concat(l.name));continue}if(l.size>d){null==T||T("文件过大(最大 ".concat(s(d),"):").concat(l.name));continue}t.add(e),r.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(!r.length)return;let l=u?[...D.current,...r]:[r[r.length-1]];if(!u)for(let e of D.current)e.previewUrl&&URL.revokeObjectURL(e.previewUrl);if(B(l),m&&!y)for(let e of r)F(e.id)},[L,m,c,d,u,T,y,F]),J=r.useCallback(e=>{let t=e.target.files;t&&(V(Array.from(t)),e.target.value="")},[V]),K=r.useCallback(e=>{var t;e.preventDefault(),e.stopPropagation(),E(!1),c||V(Array.from(null!=(t=e.dataTransfer.files)?t:[]))},[V,c]);return(0,t.jsxs)("div",{className:(0,a.cn)("flex min-h-0 w-full flex-col gap-3",w),children:[(0,t.jsx)("input",{ref:U,id:S,type:"file",hidden:!0,accept:o,multiple:u,disabled:c,onChange:J}),(0,t.jsxs)("label",{htmlFor:S,onDragOver:e=>{e.preventDefault(),c||E(!0)},onDragLeave:e=>{e.preventDefault(),E(!1)},onDrop:K,className:(0,a.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)]",I&&"bg-[var(--ds-accent)]/5 border-[var(--ds-accent)]",c&&"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-[var(--ds-text)]",children:j}),(0,t.jsx)("div",{className:"text-[var(--ds-muted)]",children:k})]}),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-[var(--ds-text)]",children:e.file.name}),(0,t.jsx)("div",{className:"text-[var(--ds-muted)]",children:s(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-[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)(n.Button,{type:"button",size:"sm",variant:"outline",disabled:c,onClick:()=>F(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)(n.Button,{type:"button",size:"sm",variant:"outline",onClick:()=>P(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)(n.Button,{type:"button",size:"sm",onClick:H,disabled:c,children:"上传"})}):null]})}var o=e.i(76639),c=e.i(13354),u=e.i(29250);function d(e){let{open:l,onOpenChange:a,title:s,description:d,uploadUrl:m,resetKey:p}=e,[f,b]=(0,r.useState)(!1),[g,x]=(0,r.useState)(null),v=(0,r.useCallback)(()=>{a(!1),x(null)},[a]),h=(0,r.useCallback)(async()=>{if(!g)return void c.appToast.info("请先选择 zip 文件");let e=new FormData;e.append("file",g),b(!0);try{let t=await (0,u.bridgeFetch)(m,{method:"POST",body:e}),r=Number(t.imported||0),l=Number(t.overwritten||0),a=Array.isArray(t.rejected)?t.rejected.length:0;c.appToast.success("导入完成:导入 ".concat(r,",覆盖 ").concat(l)+(a>0?",拒绝 ".concat(a):"")),v()}catch(e){c.appToast.error("导入失败:".concat(e instanceof Error?e.message:String(e)))}finally{b(!1)}},[v,g,m]);return(0,t.jsx)(o.Dialog,{open:l,onOpenChange:e=>{a(e),e||x(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:s}),(0,t.jsx)(o.DialogDescription,{children:d})]}),(0,t.jsx)(o.DialogClose,{className:"sidebar-icon-btn","aria-label":"关闭",onClick:v,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:f,selectionOnly:!0,emptyTitle:"点击或拖拽 zip 文件到此处",emptyHint:"支持 .zip 格式,最大 50MB",onFilesChange:e=>{var t,r;x(null!=(r=null==(t=e[0])?void 0:t.file)?r:null)},onValidationError:e=>{c.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)(n.Button,{className:"mr-[12px]",type:"button",variant:"plain-outline",size:"lg",onClick:v,children:"取消"}),(0,t.jsx)(n.Button,{type:"button",size:"lg",variant:"default",disabled:f||null==g,onClick:()=>void h(),children:f?"导入中…":"确定"})]})]})]})})}},19573,e=>{"use strict";e.s(["ToolsManageView",()=>w],19573);var t=e.i(18050),r=e.i(71645),l=e.i(65934),a=e.i(87243),n=e.i(13354),s=e.i(50711),i=e.i(19455),o=e.i(94055),c=e.i(94197),u=e.i(92715);function d(e){let{items:r,saveBusy:l,onToggle:a,onExport:n,onRemove:s,className:i}=e,d=[{key:"name",title:"名称",headerClassName:"",cellClassName:"",render:e=>e.label||e.name},{key:"description",title:"详情",headerClassName:"",cellClassName:"",render:e=>e.description||"-"},{key:"enabled",title:"启用/未启用",headerClassName:"",cellClassName:"whitespace-nowrap 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=>a(e.name,t),"aria-label":"".concat(e.enabled?"禁用":"启用"," ").concat(e.name)})})},{key:"actions",title:"操作",headerClassName:"w-[128px] ",cellClassName:"w-[128px]",render:e=>{let r=!0===e.canManage;return(0,t.jsxs)("div",{className:"inline-flex items-center justify-end gap-1",children:[(0,t.jsx)(c.IconTooltipButton,{icon:"Download",label:r?"导出":"系统内置工具不可导出",ariaLabel:"导出 ".concat(e.label||e.name),disabled:l||!r,onClick:()=>n(e.name)}),(0,t.jsx)(c.IconTooltipButton,{icon:"Trash2",label:r?"删除":"系统内置工具不可删除",tone:"danger",ariaLabel:"删除 ".concat(e.label||e.name),disabled:l||!r,onClick:()=>{s(e.name)}})]})}}];return(0,t.jsx)(u.AppTable,{rows:r,columns:d,getRowKey:e=>"tools:".concat(e.name),className:i})}var m=e.i(36845),p=e.i(53925);function f(e){let{open:r,onOpenChange:l,wsUrl:a,apiBase:n,agent:s}=e;return(0,t.jsx)(p.ResourceImportDialog,{open:r,onOpenChange:l,title:"导入工具 zip",description:"选择一个 zip 文件并导入到 tools-runtime。",uploadUrl:(0,m.buildToolsRuntimeImportUrl)(a,n,s),resetKey:s})}var b=e.i(68499),g=e.i(72064),x=e.i(56708),v=e.i(62427);function h(e){return(null!=e.packageId?String(e.packageId).trim():"")||e.name}function y(e){let t=null!=e.packageId?String(e.packageId).trim():"";return!0===e.deletable&&t.length>0}function w(){let e=(0,l.useAppStore)(e=>e.wsUrl),o=(0,l.useAppStore)(e=>e.apiBase),c=(0,l.useAppStore)(e=>e.agentConfig),u=(0,l.useAppStore)(e=>e.patchAgentConfig),{currentAgent:m,loadAgentConfig:p}=(0,a.useSession)(),w=(0,s.usePersistAgentConfigField)("tools"),j=c.tools,[k,C]=(0,r.useState)([]),[N,R]=(0,r.useState)(!1),[T,S]=(0,r.useState)(!1),[U,M]=(0,r.useState)(!1);(0,r.useEffect)(()=>{p()},[p]);let A=(0,r.useCallback)(async(e,t)=>{S(!0);try{await w(e,{silent:t})}finally{S(!1)}},[w]),D=(0,r.useCallback)(async()=>{C([]),R(!0);try{var t;let r=await (0,v.listInstalledTools)(e,o,m());C(null!=(t=r.tools)?t:[])}catch(e){C([]),n.appToast.error("加载失败:".concat(e instanceof Error?e.message:String(e)))}finally{R(!1)}},[e,o,m]);(0,r.useEffect)(()=>{D()},[D]);let I=(0,r.useCallback)(e=>k.find(t=>t.name===e),[k]),E=(0,r.useMemo)(()=>k.slice().sort((e,t)=>e.name.localeCompare(t.name)).map(e=>(function(e,t){var r,l;let a=null!=e.packageName?String(e.packageName).trim():"";return{name:e.name,label:(e.displayName&&e.displayName!==e.name?"".concat(e.displayName," · "):"")+e.name+("system"===(l=e.layer)?" [系统]":"agent"===l?" [Agent]":""),description:null!=(r=e.searchHint)?r:"",enabled:t,packageId:a,canManage:y({deletable:e.deletable,packageId:a})}})(e,j.includes(e.name))),[k,j]),z=(0,r.useCallback)(async t=>{let r=I(t);if(!r||!y({deletable:r.deletable,packageId:r.packageName}))return void n.appToast.error("系统内置工具不可删除");if(await (0,b.confirmAlertDialog)({title:"确认删除工具包?",description:"工具名:".concat(t),confirmText:"删除",cancelText:"取消"}))try{await (0,v.deleteRuntimeTool)(e,o,m(),h({packageId:r.packageName,name:r.name}));let l=j.filter(e=>e!==t);u({tools:l}),await A(l,!0),await D()}catch(e){n.appToast.error("删除失败:".concat(e instanceof Error?e.message:String(e)))}},[I,e,o,m,j,u,A,D]),B=(0,r.useCallback)(t=>{let r=I(t);if(!r||!y({deletable:r.deletable,packageId:r.packageName}))return void n.appToast.error("系统内置工具不可导出");window.open((0,v.exportRuntimeToolUrl)(e,o,m(),h({packageId:r.packageName,name:r.name})),"_blank","noopener")},[I,e,o,m]),L=(0,r.useCallback)((e,t)=>{let r=t?[...new Set([...j,e])].sort():j.filter(t=>t!==e).sort();u({tools:r}),A(r,!0)},[j,u,A]);return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(x.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:()=>M(!0),children:[(0,t.jsx)(g.default,{name:"Import",size:16,className:"align-middle"}),"导入自定义工具"]})}),N?(0,t.jsx)("p",{className:"px-3 py-6 text-center text-[var(--ds-muted)]",children:"加载中…"}):(0,t.jsx)(d,{items:E,saveBusy:T,onToggle:L,onExport:B,onRemove:z}),(0,t.jsx)(f,{open:U,onOpenChange:e=>{M(e),e||D()},wsUrl:e,apiBase:o,agent:m()})]})}}]);
|