@auto-ai/agent 2.1.209 → 2.1.211
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/safe-a/404/index.html +1 -1
- package/dist/safe-a/404.html +1 -1
- package/dist/safe-a/_next/static/chunks/16ee3f2be4586638.js +1 -0
- package/dist/safe-a/_next/static/chunks/{98a2db7a6b8d43c0.js → 42d0ae4192d72f8e.js} +1 -1
- package/dist/safe-a/_next/static/chunks/5b4c1faefda9575b.js +1 -0
- package/dist/safe-a/_next/static/chunks/6a199e5f9da2ec4e.js +1 -0
- package/dist/safe-a/_next/static/chunks/846fd48826ed3d89.js +1 -0
- package/dist/safe-a/_next/static/chunks/{54ce15edde8ce98c.js → 9971428081f87b2e.js} +1 -1
- package/dist/safe-a/_next/static/chunks/{c9204488e115fc38.js → b31fde4b83862330.js} +1 -1
- package/dist/safe-a/_next/static/chunks/b744b1f1595cffb6.js +1 -0
- package/dist/safe-a/_next/static/chunks/c7ce2c0e40c62b6b.js +1 -0
- package/dist/safe-a/_next/static/chunks/dda0af99af0e0631.css +7 -0
- package/dist/safe-a/_next/static/chunks/ece085cc915ab5e5.js +1 -0
- package/dist/safe-a/_next/static/chunks/f37854d807ee41ac.css +1 -0
- package/dist/safe-a/_next/static/chunks/{31c93ba513dea5e7.js → fd9b8164ea743aa0.js} +1 -1
- package/dist/safe-a/index.html +2 -2
- package/dist/safe-a/index.txt +19 -19
- package/dist/safe-a/manage/about/index.html +2 -2
- package/dist/safe-a/manage/about/index.txt +19 -19
- package/dist/safe-a/manage/env/index.html +2 -2
- package/dist/safe-a/manage/env/index.txt +21 -21
- package/dist/safe-a/manage/geelib/index.html +2 -2
- package/dist/safe-a/manage/geelib/index.txt +21 -21
- package/dist/safe-a/manage/general/index.html +2 -2
- package/dist/safe-a/manage/general/index.txt +19 -19
- package/dist/safe-a/manage/git/index.html +2 -2
- package/dist/safe-a/manage/git/index.txt +21 -21
- package/dist/safe-a/manage/im/index.html +2 -2
- package/dist/safe-a/manage/im/index.txt +21 -21
- package/dist/safe-a/manage/index.html +2 -2
- package/dist/safe-a/manage/index.txt +16 -16
- package/dist/safe-a/manage/library/index.html +2 -2
- package/dist/safe-a/manage/library/index.txt +19 -19
- package/dist/safe-a/manage/mcp/index.html +2 -2
- package/dist/safe-a/manage/mcp/index.txt +19 -19
- package/dist/safe-a/manage/permissions/index.html +2 -2
- package/dist/safe-a/manage/permissions/index.txt +19 -19
- package/dist/safe-a/manage/skills/index.html +2 -2
- package/dist/safe-a/manage/skills/index.txt +19 -19
- package/dist/safe-a/manage/task/index.html +2 -2
- package/dist/safe-a/manage/task/index.txt +19 -19
- package/dist/safe-a/manage/teams/index.html +2 -2
- package/dist/safe-a/manage/teams/index.txt +19 -19
- package/dist/safe-a/manage/tools/index.html +2 -2
- package/dist/safe-a/manage/tools/index.txt +19 -19
- package/package.json +6 -6
- package/dist/safe-a/_next/static/chunks/3efccd72f964d9d3.js +0 -1
- package/dist/safe-a/_next/static/chunks/4d97363bb1a6633d.js +0 -1
- package/dist/safe-a/_next/static/chunks/713b097e1a0b340b.js +0 -1
- package/dist/safe-a/_next/static/chunks/b08f1ee81b569c60.js +0 -1
- package/dist/safe-a/_next/static/chunks/bff0a34243e1f2c7.css +0 -7
- package/dist/safe-a/_next/static/chunks/d1e3d3d09ff4ed38.js +0 -1
- package/dist/safe-a/_next/static/chunks/d6c35821582ac6a8.js +0 -1
- package/dist/safe-a/_next/static/chunks/e048616a4731c6b2.js +0 -1
- package/dist/safe-a/_next/static/chunks/f0f534c89e005d26.css +0 -1
- /package/dist/safe-a/_next/static/{Y4PlJTxK6TQphwzXXWsHY → sLkb5O425Rfm5_5LxMwvi}/_buildManifest.js +0 -0
- /package/dist/safe-a/_next/static/{Y4PlJTxK6TQphwzXXWsHY → sLkb5O425Rfm5_5LxMwvi}/_clientMiddlewareManifest.json +0 -0
- /package/dist/safe-a/_next/static/{Y4PlJTxK6TQphwzXXWsHY → sLkb5O425Rfm5_5LxMwvi}/_ssgManifest.js +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,75854,e=>{"use strict";e.s(["persistAgentEnv",()=>l]);var t=e.i(18805),a=e.i(15327),r=e.i(17655),n=e.i(49377);async function l(e,l,s,i,o,c){var d,u,p,m;let f=n.useAppStore.getState(),g={tools:f.agentConfig.tools.slice(),disallowedTools:f.agentConfig.disallowedTools.slice(),mcpServers:f.agentConfig.mcpServers.slice(),skills:f.agentConfig.skills.slice(),agentTeams:f.agentConfig.agentTeams.slice(),model:f.agentConfig.model,rules:f.agentConfig.rules.slice(),effort:null!=(d=f.agentConfig.effort)?d:null,background:null!=(u=f.agentConfig.background)&&u,isolation:null!=(p=f.agentConfig.isolation)?p:"",whentouse:null!=(m=f.agentConfig.whentouse)?m:"",env:i,llmProviders:f.agentConfig.llmProviders.map(e=>({...e,models:e.models.map(e=>({...e}))})),...c},x=await (0,r.loadAgentPrompt)(e,l,s);await (0,r.saveAgentConfig)(e,l,s,g,{prompt:x}),f.setAgentConfig({...g,env:{...i}}),n.useAppStore.getState().wsConnected&&o();let h=n.useAppStore.getState();h.setStatus("环境变量已保存"+(h.wsConnected?",已请求 worker 重新加载配置":""),(0,a.resolveInfoStatusClass)(h.bridgeReady,h.wsConnected)),t.appToast.success(h.wsConnected?"已保存到 agent.json,并已请求 worker 重新加载配置。":"已保存到 agent.json。重连 WebSocket 后子进程环境将同步。")}},57100,e=>{"use strict";e.s(["composeRefs",()=>r,"useComposedRefs",()=>n]);var t=e.i(65765);function a(e,t){if("function"==typeof e)return e(t);null!=e&&(e.current=t)}function r(){for(var e=arguments.length,t=Array(e),r=0;r<e;r++)t[r]=arguments[r];return e=>{let r=!1,n=t.map(t=>{let n=a(t,e);return r||"function"!=typeof n||(r=!0),n});if(r)return()=>{for(let e=0;e<n.length;e++){let r=n[e];"function"==typeof r?r():a(t[e],null)}}}}function n(){for(var e=arguments.length,a=Array(e),n=0;n<e;n++)a[n]=arguments[n];return t.useCallback(r(...a),a)}},92371,e=>{"use strict";e.s(["Textarea",()=>r]);var t=e.i(59992),a=e.i(96745);function r(e){let{className:r,...n}=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-base outline-none transition-[color,box-shadow,border-color] duration-150 ease-in-out placeholder:text-muted-foreground hover:border-[var(--ds-color-border-hover)] 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]",r),...n})}},49091,35182,e=>{"use strict";function t(e){let t=null==e?"":String(e);return""===t?'""':/[\s#"'\\\n]/.test(t)||t!==t.trim()?'"'.concat(t.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\n/g,"\\n"),'"'):t}function a(e){let t=String(e).split(/\r?\n/),a={},r=/^\s*(?:export\s+)?([A-Za-z_][A-Za-z0-9_]*)\s*=\s*(.*)$/;for(let e=0;e<t.length;e++){let n=t[e],l=r.exec(n);l&&(a[l[1]]=function(e){let t=e.trimEnd();return t.length>=2&&'"'===t[0]&&'"'===t[t.length-1]?t.slice(1,-1).replace(/\\(.)/g,(e,t)=>"n"===t?"\n":'"'===t?'"':"\\"===t?"\\":"\\".concat(t)):t.length>=2&&"'"===t[0]&&"'"===t[t.length-1]?t.slice(1,-1):e}(l[2]))}return a}function r(e,a){let r=Array.isArray(e)?e:[],n=new Set;for(let e=0;e<r.length;e++){let t=r[e];t&&"object"==typeof t&&"string"==typeof t.key&&n.add(t.key)}let l=[];for(let e=0;e<r.length;e++){let n=r[e];if(!n||"object"!=typeof n||"string"!=typeof n.key)continue;let s=n.key;if(!Object.prototype.hasOwnProperty.call(a,s))continue;let i=a[s];null!=i&&""!==String(i).trim()&&l.push("".concat(s,"=").concat(t(String(i))))}let s=Object.keys(a).filter(e=>!n.has(e)).sort();for(let e=0;e<s.length;e++){let r=s[e],n=a[r];null!=n&&""!==String(n).trim()&&l.push("".concat(r,"=").concat(t(String(n))))}let i=l.join("\n");return i.length>0?"".concat(i,"\n"):""}e.s(["buildEnvFileContentFromForm",()=>r,"parseEnvContentToMap",()=>a],49091),e.s(["loadDemoSingleMessage",()=>c,"loadSystemEnv",()=>s,"saveSystemEnv",()=>i,"saveSystemMcpJson",()=>o],35182);var n=e.i(61293),l=e.i(10602);async function s(e,t,a){return(0,n.get)((0,l.buildSystemEnvApiUrl)(e,t,a))}async function i(e,t,a,r){await (0,n.patch)((0,l.buildSystemEnvApiUrl)(e,t,a),{content:r})}async function o(e,t,a,r){await (0,n.patch)((0,l.buildSystemMcpJsonApiUrl)(e,t,a),{content:r})}async function c(){return(0,n.get)("/api/demo/single-message")}},82735,e=>{"use strict";e.s(["AgentEnvGroupSettingsView",()=>S],82735);var t=e.i(59992),a=e.i(26162),r=e.i(84081),n=e.i(92369),l=e.i(55105),s=e.i(92371),i=e.i(72483),o=e.i(96745);let c="__empty__",d=[{value:"anthropic",label:"anthropic"},{value:"openai",label:"openai"}],u=[{value:"1",label:"启用全部 MCP 常驻会话"},{value:"0",label:"禁用"}];function p(e){let{group:a,fields:r,fieldValues:n,whentouseValue:p,onFieldChange:m,onWhentouseChange:f}=e;return(0,t.jsxs)("div",{className:"flex min-h-0 flex-1 flex-col divide-y divide-[var(--ds-color-border-default)]",children:["system"===a?(0,t.jsxs)("div",{className:"flex min-h-0 flex-1 flex-col gap-2 py-4 first:pt-0",children:[(0,t.jsx)("label",{className:"text-[var(--ds-text)]",htmlFor:"agent-env-whentouse",children:"使用时机(whentouse)"}),(0,t.jsx)(s.Textarea,{id:"agent-env-whentouse",rows:3,spellCheck:!1,autoComplete:"off",placeholder:"输入该 agent 的使用时机描述","aria-label":"agent.json whentouse",className:"min-h-[88px] flex-1 resize-none border-[var(--ds-color-border-default)] bg-[var(--ds-color-surface-default)] placeholder:text-[var(--text-placeholder)]",value:p,onChange:e=>f(e.target.value)})]}):null,r.map(e=>{let a="agent-env-field-".concat(e.key),r="string"==typeof n[e.key]?n[e.key]:"";if("LLM_PROVIDER"===e.key){let n="anthropic"===r||"openai"===r?r:"";return(0,t.jsxs)("div",{className:"flex flex-col gap-2 py-4 first:pt-0",children:[(0,t.jsx)("label",{className:"text-basic text-[var(--ds-text)]",htmlFor:a,children:e.label}),(0,t.jsxs)(i.Select,{value:n||c,onValueChange:t=>m(e.key,t===c?"":t),children:[(0,t.jsx)(i.SelectTrigger,{id:a,className:(0,o.cn)("h-10 w-full border-[var(--ds-color-border-default)] bg-[var(--ds-color-surface-default)]",!n&&"text-[var(--text-placeholder)]"),children:(0,t.jsx)(i.SelectValue,{placeholder:"请选择"})}),(0,t.jsxs)(i.SelectContent,{children:[(0,t.jsx)(i.SelectItem,{value:c,children:"请选择"}),d.map(e=>(0,t.jsx)(i.SelectItem,{value:e.value,children:e.label},e.value))]})]})]},e.key)}if("TUITUI_CHANNEL_SESSION"===e.key){let n="1"===r?"1":"0";return(0,t.jsxs)("div",{className:"flex flex-col gap-2 py-4 first:pt-0",children:[(0,t.jsx)("label",{className:"text-basic text-[var(--ds-text)]",htmlFor:a,children:e.label}),(0,t.jsxs)(i.Select,{value:n,onValueChange:t=>m(e.key,t),children:[(0,t.jsx)(i.SelectTrigger,{id:a,className:"h-10 w-full border-[var(--ds-color-border-default)] bg-[var(--ds-color-surface-default)]",children:(0,t.jsx)(i.SelectValue,{placeholder:"请选择"})}),(0,t.jsx)(i.SelectContent,{children:u.map(e=>(0,t.jsx)(i.SelectItem,{value:e.value,children:e.label},e.value))})]})]},e.key)}return(0,t.jsxs)("div",{className:"flex flex-col gap-2 py-4 first:pt-0",children:[(0,t.jsx)("label",{className:"text-[var(--ds-text)]",htmlFor:a,children:e.label}),(0,t.jsx)(l.Input,{id:a,type:"text",spellCheck:!1,autoComplete:"off",placeholder:e.placeholder,className:"h-10 border-[var(--ds-color-border-default)] bg-[var(--ds-color-surface-default)] placeholder:text-[var(--text-placeholder)]",value:r,onChange:t=>m(e.key,t.target.value)})]},e.key)})]})}var m=e.i(65765),f=e.i(18805),g=e.i(36763),x=e.i(37566);let h=["llm","git","geelib","tutui","system"];var v=e.i(75854),b=e.i(49091),y=e.i(35182),j=e.i(49377);function S(e){let{group:l}=e,{loading:s,saving:i,groupFields:o,fieldValues:c,whentouseValue:d,setField:u,setWhentouseValue:S,reset:C,save:w}=function(e){let t=(0,j.useAppStore)(e=>e.wsUrl),a=(0,j.useAppStore)(e=>e.apiBase),r=(0,j.useAppStore)(e=>e.agentConfig),{currentAgent:n,loadAgentConfig:l}=(0,g.useSession)(),{sendReloadAgentConfig:s}=(0,x.useWebSocketSender)(),[i,o]=(0,m.useState)(!0),[c,d]=(0,m.useState)(!1),[u,p]=(0,m.useState)([]),[S,C]=(0,m.useState)({}),[w,N]=(0,m.useState)({}),[k,T]=(0,m.useState)(""),E=(0,m.useMemo)(()=>(function(e){let t={};for(let e of h)t[e]=[];for(let a of e)h.includes(a.group)&&t[a.group].push(a);return t})(u)[e],[u,e]),R=(0,m.useCallback)(e=>{N(function(e,t,a){let r={};for(let n of t){let t=e[n.key];if("string"==typeof t&&t.length>0){r[n.key]=t;continue}let l=a[n.key];r[n.key]="string"==typeof l?l:""}return r}(e,E,S))},[E,S]),A=(0,m.useCallback)(e=>{T("string"==typeof e?e:"")},[]),I=(0,m.useCallback)(async()=>{try{let e=await (0,y.loadSystemEnv)(t,a,n()),r="string"==typeof e.content?e.content:"",l=function(e){if(!Array.isArray(e))return[];let t=[];for(let a of e){if(!a||"object"!=typeof a)continue;let e="string"==typeof a.key?a.key.trim():"",r="string"==typeof a.group?a.group.trim():"";e&&h.includes(r)&&t.push({key:e,group:r,label:"string"==typeof a.label&&a.label.trim()?a.label.trim():e,placeholder:"string"==typeof a.placeholder?a.placeholder:""})}return t}(e.schema),s=(0,b.parseEnvContentToMap)(r);p(l),C(function(e,t){let a={};for(let n of e){var r;a[n.key]=null!=(r=t[n.key])?r:""}return a}(l,s))}catch(e){f.appToast.error("加载环境变量表单配置失败:".concat(e instanceof Error?e.message:String(e))),p([]),C({})}},[t,a,n]),M=(0,m.useCallback)(async()=>{o(!0);try{await Promise.all([l(),I()])}finally{o(!1)}},[l,I]);(0,m.useEffect)(()=>{M()},[M]),(0,m.useEffect)(()=>{!i&&E.length&&R({...r.env})},[r.env,R,i,E.length]),(0,m.useEffect)(()=>{i||"system"!==e||A(r.whentouse)},[r.whentouse,e,i,A]);let O=(0,m.useCallback)((e,t)=>{N(a=>({...a,[e]:t}))},[]),P=(0,m.useCallback)(()=>{R({...r.env}),"system"===e&&A(r.whentouse)},[r.env,r.whentouse,e,R,A]),_=(0,m.useCallback)(async()=>{let r=function(e,t,a){let r={...e};for(let e of t){var n;let t=String(null!=(n=a[e.key])?n:"").trim();t?r[e.key]=t:delete r[e.key]}return r}(j.useAppStore.getState().agentConfig.env,E,w);d(!0);try{if("system"===e){let e=j.useAppStore.getState().agentConfig;j.useAppStore.getState().setAgentConfig({...e,whentouse:k})}await (0,v.persistAgentEnv)(t,a,n(),r,s),await l()}catch(e){f.appToast.error("保存环境变量失败:".concat(e instanceof Error?e.message:String(e)))}finally{d(!1)}},[E,w,k,e,t,a,n,s,l]);return{loading:i,saving:c,groupFields:E,fieldValues:w,whentouseValue:k,setField:O,setWhentouseValue:T,reset:P,save:_}}(l),N="system"===l||o.length>0;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 overflow-y-auto p-4",children:s?(0,t.jsx)(r.Loading,{className:"min-h-[240px]",text:"加载中…"}):N?(0,t.jsx)(p,{group:l,fields:o,fieldValues:c,whentouseValue:d,onFieldChange:u,onWhentouseChange:S}):(0,t.jsx)(a.Empty,{className:"min-h-[240px]",text:"暂无可配置项"})}),(0,t.jsxs)("div",{className:"flex shrink-0 justify-end gap-2 border-t border-[var(--ds-color-border-default)] px-4 py-3",children:[(0,t.jsx)(n.Button,{type:"button",variant:"plain-outline",size:"lg",disabled:s||i||!N,onClick:()=>C(),className:"cursor-pointer",children:"取消"}),(0,t.jsx)(n.Button,{type:"button",size:"lg",disabled:s||i||!N,onClick:()=>void w(),className:"cursor-pointer",children:i?"保存中…":"保存"})]})]})}},40751,e=>{"use strict";e.s(["AppDialog",()=>l]);var t=e.i(59992),a=e.i(65765),r=e.i(65486),n=e.i(96745);function l(e){let{open:l,onOpenChange:s,title:i,children:o,footer:c,width:d="max-w-3xl",minHeight:u}=e,p=(0,a.useId)();return(0,t.jsx)(r.Dialog,{open:l,onOpenChange:s,children:(0,t.jsxs)(r.DialogContent,{"aria-labelledby":p,className:(0,n.cn)(d,u?"!min-h-[--min-h]":""),style:u?{"--min-h":u}:void 0,children:[(0,t.jsxs)(r.DialogHeader,{children:[(0,t.jsx)(r.DialogTitle,{id:p,children:i}),(0,t.jsx)(r.DialogClose,{"aria-label":"关闭"})]}),(0,t.jsx)(r.DialogBody,{className:"!px-4 !py-3",children:o}),c?(0,t.jsx)("div",{className:"flex flex-shrink-0 justify-end gap-2 border-t border-[var(--ds-color-border-default)] bg-[var(--ds-color-surface-sidebar)] px-4 py-3",children:c}):null]})})}},13014,e=>{"use strict";e.s(["AppTable",()=>u],13014);var t=e.i(59992),a=e.i(26162),r=e.i(65765),n=e.i(96745);let l=r.forwardRef((e,a)=>{let{className:r,...l}=e;return(0,t.jsx)("div",{className:"relative w-full overflow-auto",children:(0,t.jsx)("table",{ref:a,className:(0,n.cn)("w-full caption-bottom border-collapse",r),...l})})});l.displayName="Table";let s=r.forwardRef((e,a)=>{let{className:r,...l}=e;return(0,t.jsx)("thead",{ref:a,className:(0,n.cn)("[&_tr]:table [&_tr]:w-full [&_tr]:table-fixed [&_tr]:border-b",r),...l})});s.displayName="TableHeader";let i=r.forwardRef((e,a)=>{let{className:l,viewportFit:s=!0,viewportReserveBottom:i=16,viewportPaginationReserve:o=0,style:c,...d}=e,u=r.useRef(null),p=r.useCallback(e=>{u.current=e,"function"==typeof a?a(e):a&&(a.current=e)},[a]),[m,f]=r.useState(void 0);return r.useLayoutEffect(()=>{var e,t;if(!s)return void f(void 0);let a=()=>{var e,t;let a=u.current;if(!a)return;let r=a.getBoundingClientRect().top;f(Math.max(80,Math.floor((null!=(t=null==(e=window.visualViewport)?void 0:e.height)?t:window.innerHeight)-r-(i+o))))};a();let r=new ResizeObserver(()=>{a()});try{r.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;r.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)}},[s,i,o]),(0,t.jsx)("tbody",{ref:p,className:(0,n.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",l),style:s&&void 0!==m?{...c,maxHeight:m}:c,...d})});i.displayName="TableBody";let o=r.forwardRef((e,a)=>{let{className:r,hoverable:l=!0,...s}=e;return(0,t.jsx)("tr",{ref:a,className:(0,n.cn)("border-b transition-colors [&>td]:transition-colors data-[state=selected]:[&>td]:!bg-[var(--ds-color-surface-item-active)]",l&&"group/table-row",r),...s})});o.displayName="TableRow";let c=r.forwardRef((e,a)=>{let{className:r,...l}=e;return(0,t.jsx)("th",{ref:a,className:(0,n.cn)("h-10 border-b border-[var(--ds-color-border-subtle)] bg-[var(--surface-2)] px-3 text-left align-middle text-[14px] font-medium !text-[var(--ds-text)] text-muted-foreground",r),...l})});c.displayName="TableHead";let d=r.forwardRef((e,a)=>{let{className:r,...l}=e;return(0,t.jsx)("td",{ref:a,className:(0,n.cn)("border-x-0 border-b border-t-0 border-solid border-[var(--ds-color-border-subtle)] p-3 align-middle transition-colors group-has-[td:hover]/table-row:!bg-[var(--ds-color-surface-item-hover)]",r),...l})});function u(e){let{rows:r,columns:u,getRowKey:p,className:m,rowClassName:f,headerRowClassName:g,emptyText:x,emptyNode:h,bodyProps:v}=e;return(0,t.jsx)("div",{className:(0,n.cn)("overflow-hidden border border-[var(--ds-color-border-default)]",m),children:(0,t.jsxs)(l,{children:[(0,t.jsx)(s,{children:(0,t.jsx)(o,{className:(0,n.cn)("bg-[var(--ds-color-surface-main-tint)] hover:bg-[var(--ds-color-surface-main-tint)]",g),children:u.map(e=>(0,t.jsx)(c,{className:e.headerClassName,children:e.title},e.key))})}),(0,t.jsx)(i,{...v,children:r.length?r.map(e=>(0,t.jsx)(o,{className:"function"==typeof f?f(e):f,children:u.map(a=>(0,t.jsx)(d,{className:a.cellClassName,children:a.render(e)},a.key))},p(e))):(0,t.jsx)(o,{hoverable:!1,children:(0,t.jsx)(d,{colSpan:u.length,className:"py-6",children:null!=h?h:(0,t.jsx)(a.Empty,{text:x})})})})]})})}d.displayName="TableCell"},99329,e=>{"use strict";e.s(["clearRuntimeMcpItemConfig",()=>j,"deleteRuntimeMcp",()=>p,"deleteRuntimeSkill",()=>S,"deleteRuntimeTool",()=>u,"exportRuntimeMcpUrl",()=>f,"exportRuntimeSkillUrl",()=>C,"exportRuntimeToolUrl",()=>m,"importRuntimeMcp",()=>x,"importRuntimeTool",()=>g,"installCloudSkill",()=>N,"listBaseSkills",()=>l,"listCloudSkillCatalog",()=>w,"listInstalledSkills",()=>s,"listInstalledTools",()=>n,"listMcpServers",()=>r,"listRuntimeMcpPackages",()=>d,"listRuntimeTools",()=>c,"loadBaseSkillMd",()=>i,"loadRemoteMcpJson",()=>h,"loadRuntimeMcpItemConfig",()=>b,"saveBaseSkillMd",()=>o,"saveRemoteMcpJson",()=>v,"saveRuntimeMcpItemConfig",()=>y]);var t=e.i(61293),a=e.i(10602);async function r(e,r,n){let l=await (0,t.get)((0,a.buildMcpServersListUrl)(e,r,n));return{servers:Array.isArray(l.servers)?l.servers:[]}}async function n(e,r,n){let l=await (0,t.get)((0,a.buildToolInstalledListUrl)(e,r,n));return{tools:Array.isArray(l.tools)?l.tools:[]}}async function l(e,r,n){let l=await (0,t.get)((0,a.buildSkillBaseListUrl)(e,r,n));return{skills:Array.isArray(l.skills)?l.skills:[]}}async function s(e,r,n){let l=await (0,t.get)((0,a.buildSkillInstalledListUrl)(e,r,n));return{skills:Array.isArray(l.skills)?l.skills:[]}}async function i(e,r,n,l){return(0,t.get)((0,a.buildBaseSkillMdUrl)(e,r,n,l))}async function o(e,r,n,l,s){await (0,t.put)((0,a.buildBaseSkillMdUrl)(e,r,n,l),{content:s})}async function c(e,r,n){let l=await (0,t.get)((0,a.buildToolsRuntimeFilesUrl)(e,r,n));return{runtimeToolsDir:"string"==typeof l.runtimeToolsDir?l.runtimeToolsDir:"",items:Array.isArray(l.items)?l.items.filter(e=>!!(e&&e.id)):[]}}async function d(e,r,n){let l=await (0,t.get)((0,a.buildMcpRuntimeFilesUrl)(e,r,n));return{mcpRuntimeDir:"string"==typeof l.mcpRuntimeDir?l.mcpRuntimeDir:"",items:Array.isArray(l.items)?l.items.filter(e=>!!(e&&e.id)):[]}}async function u(e,r,n,l){return(0,t.del)((0,a.buildToolsRuntimeDeleteUrl)(e,r,n,l))}async function p(e,r,n,l){return(0,t.del)((0,a.buildMcpRuntimeDeleteUrl)(e,r,n,l))}function m(e,t,r,n){return(0,a.buildToolsRuntimeExportUrl)(e,t,r,n)}function f(e,t,r,n){return(0,a.buildMcpRuntimeExportUrl)(e,t,r,n)}async function g(e,r,n,l){let s=new FormData;return s.append("file",l),(0,t.post)((0,a.buildToolsRuntimeImportUrl)(e,r,n),s,{type:"file"})}async function x(e,r,n,l){let s=new FormData;return s.append("file",l),(0,t.post)((0,a.buildMcpRuntimeImportUrl)(e,r,n),s,{type:"file"})}async function h(e,r,n){return(0,t.get)((0,a.buildRemoteMcpJsonUrl)(e,r,n))}async function v(e,r,n,l){await (0,t.post)((0,a.buildRemoteMcpJsonUrl)(e,r,n),{content:l})}async function b(e,r,n,l,s){return(0,t.get)((0,a.buildRuntimeMcpItemConfigUrl)(e,r,n,l,s))}async function y(e,r,n,l,s,i){await (0,t.put)((0,a.buildRuntimeMcpItemConfigUrl)(e,r,n,l,s),{server:i})}async function j(e,r,n,l,s){await (0,t.del)((0,a.buildRuntimeMcpItemConfigUrl)(e,r,n,l,s))}async function S(e,r,n,l){return(0,t.del)((0,a.buildSkillsRuntimeDeleteUrl)(e,r,n,l))}function C(e,t,r,n){return(0,a.buildSkillsRuntimeExportUrl)(e,t,r,n)}async function w(e,r,n,l,s,i){let o=await (0,t.get)((0,a.buildCloudSkillCatalogUrl)(e,r,n,l,s,i));return{items:Array.isArray(o.items)?o.items:[],totalPages:Number(o.totalPages||0)}}async function N(e,r,n,l){await (0,t.post)((0,a.buildCloudSkillInstallUrl)(e,r,n),{id:l})}},84919,e=>{"use strict";e.s(["ResourceImportDialog",()=>u],84919);var t=e.i(59992),a=e.i(65765),r=e.i(87655),n=e.i(96745),l=e.i(92369);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:d=!1,maxFileSize:u=0x3200000,autoUpload:p=!1,method:m="POST",transport:f="xhr",fieldName:g="file",headers:x,extraFormData:h,autoRetryTimes:v=0,autoRetryDelayMs:b=800,selectionOnly:y=!1,className:j,emptyTitle:S="点击或拖拽文件到此处",emptyHint:C="支持上传文件",onFilesChange:w,onUploadSuccess:N,onUploadError:k,onValidationError:T}=e,E=a.useId(),R=a.useRef(null),A=a.useRef(new Map),I=a.useRef(new Map),M=a.useRef([]),[O,P]=a.useState(!1),[_,L]=a.useState([]),D=a.useMemo(()=>o?o.split(",").map(e=>e.trim().toLowerCase()).filter(Boolean):[],[o]);a.useEffect(()=>{M.current=_,null==w||w(_)},[_,w]),a.useEffect(()=>()=>{for(let e of A.current.values())e.abort();for(let e of I.current.values())e.abort();for(let e of M.current)e.previewUrl&&URL.revokeObjectURL(e.previewUrl)},[]);let U=a.useCallback((e,t)=>{L(a=>a.map(a=>a.id===e?{...a,...t}:a))},[]),B=a.useCallback(async(e,t)=>{let a=M.current.find(t=>t.id===e);if(!a||c)return;U(e,{status:t>0?"retrying":"uploading",progress:0,error:"",retryCount:t});let r=new FormData;if(h)for(let[e,t]of Object.entries(h))r.append(e,t);r.append(g,a.file);try{let t="";if("fetch"===f){let a=new AbortController;I.current.set(e,a);let n=await fetch(i,{method:m,headers:x,body:r,signal:a.signal}),l=await n.text();try{t=l?JSON.parse(l):""}catch(e){t=l}if(!n.ok)throw Error("上传失败:".concat(n.status," ").concat(n.statusText))}else t=await new Promise((t,a)=>{let n=new XMLHttpRequest;if(A.current.set(e,n),n.open(m,i,!0),x)for(let[e,t]of Object.entries(x))n.setRequestHeader(e,t);n.upload.onprogress=t=>{if(!t.lengthComputable)return;let a=Math.min(100,Math.round(t.loaded/t.total*100));U(e,{progress:a})},n.onerror=()=>a(Error("网络异常,上传失败")),n.onabort=()=>a(Error("__ABORTED__")),n.onload=()=>{n.status>=200&&n.status<300?t(function(e){let t=e.responseText||"";try{return JSON.parse(t)}catch(e){return t}}(n)):a(Error("上传失败:".concat(n.status," ").concat(n.statusText)))},n.send(r)});U(e,{status:"success",progress:100,error:""});let a=M.current.find(t=>t.id===e);a&&(null==N||N(a,t))}catch(n){let a=n instanceof Error?n.message:String(n);if("__ABORTED__"===a)return void U(e,{status:"selected",progress:0,error:""});if(t<v){U(e,{status:"retrying",error:"重试中(".concat(t+1,"/").concat(v,")")}),await new Promise(e=>window.setTimeout(e,b)),await B(e,t+1);return}U(e,{status:"error",error:a});let r=M.current.find(t=>t.id===e);r&&(null==k||k(r,a))}finally{A.current.delete(e),I.current.delete(e)}},[b,v,c,h,g,x,m,k,N,f,U,i]),z=a.useCallback(e=>{B(e,0)},[B]),F=a.useCallback(e=>{var t,a;null==(t=A.current.get(e))||t.abort(),null==(a=I.current.get(e))||a.abort()},[]),V=a.useCallback(()=>{for(let e of M.current)("selected"===e.status||"error"===e.status)&&z(e.id)},[z]),W=a.useCallback(e=>{if(c||!e.length)return;let t=new Set(M.current.map(e=>"".concat(e.file.name,"::").concat(e.file.size))),a=[];for(let r of e){let e="".concat(r.name,"::").concat(r.size);if(!t.has(e)){if(!function(e,t){if(!t.length)return!0;let a=e.name.toLowerCase(),r=(e.type||"").toLowerCase();return t.some(e=>e.startsWith(".")?a.endsWith(e):e.endsWith("/*")?r.startsWith("".concat(e.slice(0,-1))):r===e)}(r,D)){null==T||T("文件类型不支持:".concat(r.name));continue}if(r.size>u){null==T||T("文件过大(最大 ".concat(s(u),"):").concat(r.name));continue}t.add(e),a.push({id:"".concat(Date.now(),"-").concat(Math.random().toString(36).slice(2,8)),file:r,status:"selected",progress:0,error:"",retryCount:0,previewUrl:r.type.startsWith("image/")?URL.createObjectURL(r):""})}}if(!a.length)return;let r=d?[...M.current,...a]:[a[a.length-1]];if(!d)for(let e of M.current)e.previewUrl&&URL.revokeObjectURL(e.previewUrl);if(L(r),p&&!y)for(let e of a)z(e.id)},[D,p,c,u,d,T,y,z]),K=a.useCallback(e=>{let t=e.target.files;t&&(W(Array.from(t)),e.target.value="")},[W]),H=a.useCallback(e=>{var t;e.preventDefault(),e.stopPropagation(),P(!1),c||W(Array.from(null!=(t=e.dataTransfer.files)?t:[]))},[W,c]);return(0,t.jsxs)("div",{className:(0,n.cn)("flex min-h-0 w-full flex-col gap-3",j),children:[(0,t.jsx)("input",{ref:R,id:E,type:"file",hidden:!0,accept:o,multiple:d,disabled:c,onChange:K}),(0,t.jsxs)("label",{htmlFor:E,onDragOver:e=>{e.preventDefault(),c||P(!0)},onDragLeave:e=>{e.preventDefault(),P(!1)},onDrop:H,className:(0,n.cn)("flex min-h-[124px] cursor-pointer flex-col items-center justify-center gap-1 rounded-lg border border-dashed border-[var(--ds-color-border-default)] px-4 py-6 text-center transition-colors hover:border-[var(--ds-color-border-hover)] hover:bg-[var(--ds-color-surface-main-tint)]",O&&"bg-[var(--ds-color-accent)]/5 border-[var(--ds-color-accent)]",c&&"cursor-not-allowed opacity-60"),children:[(0,t.jsx)(r.default,{name:"Upload",size:20,className:"text-[var(--ds-muted)]"}),(0,t.jsx)("div",{className:"text-[var(--ds-text)]",children:S}),(0,t.jsx)("div",{className:"text-[var(--ds-muted)]",children:C})]}),_.length?(0,t.jsx)("div",{className:"space-y-2",children:_.map(e=>(0,t.jsx)("div",{className:"rounded-md border border-[var(--ds-color-border-default)] 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-color-surface-main-tint)]",children:(0,t.jsx)("div",{className:"h-full bg-[var(--ds-color-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)(r.default,{name:"CheckCircle2",size:16,className:"text-[var(--ds-color-accent)]"}):null,"selected"===e.status||"error"===e.status?(0,t.jsxs)(l.Button,{type:"button",size:"sm",variant:"outline",disabled:c,onClick:()=>z(e.id),children:["error"===e.status?(0,t.jsx)(r.default,{name:"RefreshCw",size:14,className:"mr-1"}):null,"error"===e.status?"重试":"上传"]}):null,"uploading"===e.status||"retrying"===e.status?(0,t.jsxs)(l.Button,{type:"button",size:"sm",variant:"outline",onClick:()=>F(e.id),children:[(0,t.jsx)(r.default,{name:"XCircle",size:14,className:"mr-1"}),"取消"]}):null]})]})},e.id))}):null,!y&&!p&&_.some(e=>"selected"===e.status||"error"===e.status)?(0,t.jsx)("div",{className:"flex justify-end",children:(0,t.jsx)(l.Button,{type:"button",size:"sm",onClick:V,disabled:c,children:"上传"})}):null]})}var o=e.i(65486),c=e.i(18805),d=e.i(61293);function u(e){let{open:r,onOpenChange:n,title:s,description:u,uploadUrl:p,resetKey:m}=e,[f,g]=(0,a.useState)(!1),[x,h]=(0,a.useState)(null),v=(0,a.useCallback)(()=>{n(!1),h(null)},[n]),b=(0,a.useCallback)(async()=>{if(!x)return void c.appToast.info("请先选择 zip 文件");let e=new FormData;e.append("file",x),g(!0);try{let t=await (0,d.bridgeFetch)(p,{method:"POST",body:e}),a=Number(t.imported||0),r=Number(t.overwritten||0),n=Array.isArray(t.rejected)?t.rejected.length:0;c.appToast.success("导入完成:导入 ".concat(a,",覆盖 ").concat(r)+(n>0?",拒绝 ".concat(n):"")),v()}catch(e){c.appToast.error("导入失败:".concat(e instanceof Error?e.message:String(e)))}finally{g(!1)}},[v,x,p]);return(0,t.jsx)(o.Dialog,{open:r,onOpenChange:e=>{n(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:s}),(0,t.jsx)(o.DialogDescription,{children:u})]}),(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:p,accept:".zip,application/zip",maxFileSize:0x3200000,multiple:!1,disabled:f,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=>{c.appToast.info(e)}},"".concat(r?"open":"closed","-").concat(null!=m?m:p)),(0,t.jsxs)("div",{className:"mt-auto flex justify-end pt-2",children:[(0,t.jsx)(l.Button,{className:"mr-[12px]",type:"button",variant:"plain-outline",size:"lg",onClick:v,children:"取消"}),(0,t.jsx)(l.Button,{type:"button",size:"lg",variant:"default",disabled:f||null==x,onClick:()=>void b(),children:f?"导入中…":"确定"})]})]})]})})}},37549,(e,t,a)=>{"use strict";function r(e){let t={};for(let[a,r]of e.entries()){let e=t[a];void 0===e?t[a]=r:Array.isArray(e)?e.push(r):t[a]=[e,r]}return t}function n(e){return"string"==typeof e?e:("number"!=typeof e||isNaN(e))&&"boolean"!=typeof e?"":String(e)}function l(e){let t=new URLSearchParams;for(let[a,r]of Object.entries(e))if(Array.isArray(r))for(let e of r)t.append(a,n(e));else t.set(a,n(r));return t}function s(e){for(var t=arguments.length,a=Array(t>1?t-1:0),r=1;r<t;r++)a[r-1]=arguments[r];for(let t of a){for(let a of t.keys())e.delete(a);for(let[a,r]of t.entries())e.append(a,r)}return e}Object.defineProperty(a,"__esModule",{value:!0}),!function(e,t){for(var a in t)Object.defineProperty(e,a,{enumerable:!0,get:t[a]})}(a,{assign:function(){return s},searchParamsToUrlQuery:function(){return r},urlQueryToSearchParams:function(){return l}})},58020,(e,t,a)=>{"use strict";Object.defineProperty(a,"__esModule",{value:!0}),!function(e,t){for(var a in t)Object.defineProperty(e,a,{enumerable:!0,get:t[a]})}(a,{formatUrl:function(){return l},formatWithValidation:function(){return i},urlObjectKeys:function(){return s}});let r=e.r(98389)._(e.r(37549)),n=/https?|ftp|gopher|file/;function l(e){let{auth:t,hostname:a}=e,l=e.protocol||"",s=e.pathname||"",i=e.hash||"",o=e.query||"",c=!1;t=t?encodeURIComponent(t).replace(/%3A/i,":")+"@":"",e.host?c=t+e.host:a&&(c=t+(~a.indexOf(":")?"["+a+"]":a),e.port&&(c+=":"+e.port)),o&&"object"==typeof o&&(o=String(r.urlQueryToSearchParams(o)));let d=e.search||o&&"?"+o||"";return l&&!l.endsWith(":")&&(l+=":"),e.slashes||(!l||n.test(l))&&!1!==c?(c="//"+(c||""),s&&"/"!==s[0]&&(s="/"+s)):c||(c=""),i&&"#"!==i[0]&&(i="#"+i),d&&"?"!==d[0]&&(d="?"+d),""+l+c+(s=s.replace(/[?#]/g,encodeURIComponent))+(d=d.replace("#","%23"))+i}let s=["auth","hash","host","hostname","href","path","pathname","port","protocol","query","search","slashes"];function i(e){return l(e)}},6027,(e,t,a)=>{"use strict";Object.defineProperty(a,"__esModule",{value:!0}),!function(e,t){for(var a in t)Object.defineProperty(e,a,{enumerable:!0,get:t[a]})}(a,{DecodeError:function(){return g},MiddlewareNotFoundError:function(){return b},MissingStaticPage:function(){return v},NormalizeError:function(){return x},PageNotFoundError:function(){return h},SP:function(){return m},ST:function(){return f},WEB_VITALS:function(){return r},execOnce:function(){return n},getDisplayName:function(){return c},getLocationOrigin:function(){return i},getURL:function(){return o},isAbsoluteUrl:function(){return s},isResSent:function(){return d},loadGetInitialProps:function(){return p},normalizeRepeatedSlashes:function(){return u},stringifyError:function(){return y}});let r=["CLS","FCP","FID","INP","LCP","TTFB"];function n(e){let t,a=!1;return function(){for(var r=arguments.length,n=Array(r),l=0;l<r;l++)n[l]=arguments[l];return a||(a=!0,t=e(...n)),t}}let l=/^[a-zA-Z][a-zA-Z\d+\-.]*?:/,s=e=>l.test(e);function i(){let{protocol:e,hostname:t,port:a}=window.location;return e+"//"+t+(a?":"+a:"")}function o(){let{href:e}=window.location,t=i();return e.substring(t.length)}function c(e){return"string"==typeof e?e:e.displayName||e.name||"Unknown"}function d(e){return e.finished||e.headersSent}function u(e){let t=e.split("?");return t[0].replace(/\\/g,"/").replace(/\/\/+/g,"/")+(t[1]?"?"+t.slice(1).join("?"):"")}async function p(e,t){let a=t.res||t.ctx&&t.ctx.res;if(!e.getInitialProps)return t.ctx&&t.Component?{pageProps:await p(t.Component,t.ctx)}:{};let r=await e.getInitialProps(t);if(a&&d(a))return r;if(!r)throw Object.defineProperty(Error('"'+c(e)+'.getInitialProps()" should resolve to an object. But found "'+r+'" instead.'),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});return r}let m="undefined"!=typeof performance,f=m&&["mark","measure","getEntriesByName"].every(e=>"function"==typeof performance[e]);class g extends Error{}class x extends Error{}class h extends Error{constructor(e){super(),this.code="ENOENT",this.name="PageNotFoundError",this.message="Cannot find module for page: "+e}}class v extends Error{constructor(e,t){super(),this.message="Failed to load static file for page: "+e+" "+t}}class b extends Error{constructor(){super(),this.code="ENOENT",this.message="Cannot find the middleware module"}}function y(e){return JSON.stringify({message:e.message,stack:e.stack})}},74788,(e,t,a)=>{"use strict";Object.defineProperty(a,"__esModule",{value:!0}),Object.defineProperty(a,"isLocalURL",{enumerable:!0,get:function(){return l}});let r=e.r(6027),n=e.r(16612);function l(e){if(!(0,r.isAbsoluteUrl)(e))return!0;try{let t=(0,r.getLocationOrigin)(),a=new URL(e,t);return a.origin===t&&(0,n.hasBasePath)(a.pathname)}catch(e){return!1}}},5763,(e,t,a)=>{"use strict";Object.defineProperty(a,"__esModule",{value:!0}),Object.defineProperty(a,"errorOnce",{enumerable:!0,get:function(){return r}});let r=e=>{}},48579,(e,t,a)=>{"use strict";Object.defineProperty(a,"__esModule",{value:!0}),!function(e,t){for(var a in t)Object.defineProperty(e,a,{enumerable:!0,get:t[a]})}(a,{default:function(){return x},useLinkStatus:function(){return v}});let r=e.r(98389),n=e.r(59992),l=r._(e.r(65765)),s=e.r(58020),i=e.r(18858),o=e.r(30183),c=e.r(6027),d=e.r(1506);e.r(22751);let u=e.r(42831),p=e.r(74788),m=e.r(46150);e.r(5763);let f=e.r(73835);function g(e){return"string"==typeof e?e:(0,s.formatUrl)(e)}function x(e){var t;let a,r,s,[x,v]=(0,l.useOptimistic)(u.IDLE_LINK_STATUS),b=(0,l.useRef)(null),{href:y,as:j,children:S,prefetch:C=null,passHref:w,replace:N,shallow:k,scroll:T,onClick:E,onMouseEnter:R,onTouchStart:A,legacyBehavior:I=!1,onNavigate:M,ref:O,unstable_dynamicOnHover:P,..._}=e;a=S,I&&("string"==typeof a||"number"==typeof a)&&(a=(0,n.jsx)("a",{children:a}));let L=l.default.useContext(i.AppRouterContext),D=!1!==C,U=!1!==C?null===(t=C)||"auto"===t?f.FetchStrategy.PPR:f.FetchStrategy.Full:f.FetchStrategy.PPR,{href:B,as:z}=l.default.useMemo(()=>{let e=g(y);return{href:e,as:j?g(j):e}},[y,j]);I&&(r=l.default.Children.only(a));let F=I?r&&"object"==typeof r&&r.ref:O,V=l.default.useCallback(e=>(null!==L&&(b.current=(0,u.mountLinkInstance)(e,B,L,U,D,v)),()=>{b.current&&((0,u.unmountLinkForCurrentNavigation)(b.current),b.current=null),(0,u.unmountPrefetchableInstance)(e)}),[D,B,L,U,v]),W={ref:(0,o.useMergedRef)(V,F),onClick(e){I||"function"!=typeof E||E(e),I&&r.props&&"function"==typeof r.props.onClick&&r.props.onClick(e),L&&(e.defaultPrevented||function(e,t,a,r,n,s,i){let{nodeName:o}=e.currentTarget;if(!("A"===o.toUpperCase()&&function(e){let t=e.currentTarget.getAttribute("target");return t&&"_self"!==t||e.metaKey||e.ctrlKey||e.shiftKey||e.altKey||e.nativeEvent&&2===e.nativeEvent.which}(e)||e.currentTarget.hasAttribute("download"))){if(!(0,p.isLocalURL)(t)){n&&(e.preventDefault(),location.replace(t));return}if(e.preventDefault(),i){let e=!1;if(i({preventDefault:()=>{e=!0}}),e)return}l.default.startTransition(()=>{(0,m.dispatchNavigateAction)(a||t,n?"replace":"push",null==s||s,r.current)})}}(e,B,z,b,N,T,M))},onMouseEnter(e){I||"function"!=typeof R||R(e),I&&r.props&&"function"==typeof r.props.onMouseEnter&&r.props.onMouseEnter(e),L&&D&&(0,u.onNavigationIntent)(e.currentTarget,!0===P)},onTouchStart:function(e){I||"function"!=typeof A||A(e),I&&r.props&&"function"==typeof r.props.onTouchStart&&r.props.onTouchStart(e),L&&D&&(0,u.onNavigationIntent)(e.currentTarget,!0===P)}};return(0,c.isAbsoluteUrl)(z)?W.href=z:I&&!w&&("a"!==r.type||"href"in r.props)||(W.href=(0,d.addBasePath)(z)),s=I?l.default.cloneElement(r,W):(0,n.jsx)("a",{..._,...W,children:a}),(0,n.jsx)(h.Provider,{value:x,children:s})}let h=(0,l.createContext)(u.IDLE_LINK_STATUS),v=()=>(0,l.useContext)(h);("function"==typeof a.default||"object"==typeof a.default&&null!==a.default)&&void 0===a.default.__esModule&&(Object.defineProperty(a.default,"__esModule",{value:!0}),Object.assign(a.default,a),t.exports=a.default)},45617,e=>{"use strict";e.s(["HoverCard",()=>eg,"HoverCardContent",()=>eh,"HoverCardTrigger",()=>ex],45617);var t=e.i(59992);e.s(["Arrow",()=>en,"Backdrop",()=>es,"Handle",()=>eu,"Popup",()=>er,"Portal",()=>L,"Positioner",()=>Z,"Root",()=>M,"Trigger",()=>W,"Viewport",()=>ed,"createHandle",()=>ep],71323),e.s([],98546),e.i(98546),e.i(75526);var a=e.i(65765),r=e.i(49803),n=e.i(88755),l=e.i(10588),s=e.i(1068),i=e.i(93425),o=e.i(33825),c=e.i(18122);let d=a.createContext(void 0);function u(e){let t=a.useContext(d);if(void 0===t&&!e)throw Error((0,c.default)(50));return t}var p=e.i(56144),m=e.i(37737),f=e.i(5950),g=e.i(33751),x=e.i(40264),h=e.i(44018),v=e.i(38063),b=e.i(33149),y=e.i(59394),j=e.i(66673);function S(e,t,a,r){return{left:e,top:t,right:a,bottom:r,x:e,y:t,width:a-e,height:r-t}}function C(e){let t,a=[],r=1/0,n=1/0,l=-1/0,s=-1/0;for(let i of Array.from(e).sort((e,t)=>e.top-t.top)){if(r=Math.min(r,i.left),n=Math.min(n,i.top),l=Math.max(l,i.right),s=Math.max(s,i.bottom),!t||i.top-t.top>t.height/2)a.push({left:i.left,top:i.top,right:i.right,bottom:i.bottom,width:i.width,height:i.height});else{let e=a[a.length-1];e.left=Math.min(e.left,i.left),e.right=Math.max(e.right,i.right),e.bottom=Math.max(e.bottom,i.bottom),e.width=e.right-e.left,e.height=e.bottom-e.top}t=i}return{lines:a,fallback:S(r,n,l,s)}}function w(e,t,a){return e.findIndex(e=>t>e.left-2&&t<e.right+2&&a>e.top-2&&a<e.bottom+2)}function N(e){return S(e.left,e.top,e.right,e.bottom)}function k(e,t,a,r){let n=function(e,t,a){let{lines:r}=C(e.getClientRects());if(r.length<2)return;let n=w(r,t,a);return{x:t,y:a,lineIndex:-1===n?void 0:n,element:e}}(t,a,r);return e.current=n,n}let T={...v.popupStoreSelectors,instantType:(0,x.createSelector)(e=>e.instantType),hasViewport:(0,x.createSelector)(e=>e.hasViewport)};class E extends h.ReactStore{static useStore(e,t){return(0,y.usePopupStore)(e,(e,a)=>new E(t,e,a)).store}constructor(e,t,r=!1){let n=new b.PopupTriggerMap,l={...(0,v.createInitialPopupStoreState)(),instantType:void 0,hasViewport:!1,...e};l.floatingRootContext=(0,v.createPopupFloatingRootContext)(n,t,r),super(l,{popupRef:a.createRef(),onOpenChange:void 0,onOpenChangeComplete:void 0,triggerElements:n,closeDelayRef:{current:300},inlineRectCoordsRef:{current:void 0}},T),(0,f._)(this,"setOpen",(e,t)=>{var a,r,n;let l=t.reason,s=l===m.REASONS.triggerHover,i=e&&l===m.REASONS.triggerFocus,o=!e&&(l===m.REASONS.triggerPress||l===m.REASONS.escapeKey);if(t.preventUnmountOnClose=()=>{this.set("preventUnmountingOnClose",!0)},null==(a=(r=this.context).onOpenChange)||a.call(r,e,t),t.isCanceled)return;let c=t.event;e&&s&&t.trigger&&"clientX"in c&&"clientY"in c&&(null==(n=this.context.inlineRectCoordsRef.current)?void 0:n.element)!==t.trigger&&k(this.context.inlineRectCoordsRef,t.trigger,c.clientX,c.clientY),this.state.floatingRootContext.dispatchOpenChange(e,t);let d=()=>{let a={open:e};i?a.instantType="focus":o?a.instantType="dismiss":l===m.REASONS.triggerHover&&(a.instantType=void 0),(0,y.setOpenTriggerState)(a,e,t.trigger),this.update(a)};s?g.flushSync(d):d()})}}var R=e.i(74078);function A(e){let{open:r,defaultOpen:n=!1,onOpenChange:i,onOpenChangeComplete:o,actionsRef:c,handle:u,triggerId:f,defaultTriggerId:g=null,children:x}=e,h=E.useStore(null==u?void 0:u.store,{open:n,openProp:r,activeTriggerId:g,triggerIdProp:f});(0,s.useOnFirstRender)(()=>{void 0===r&&!1===h.state.open&&!0===n&&h.update({open:!0,activeTriggerId:g})}),h.useControlledProp("openProp",r),h.useControlledProp("triggerIdProp",f),h.useContextCallback("onOpenChange",i),h.useContextCallback("onOpenChangeComplete",o);let v=h.useState("open"),b=h.useState("activeTriggerId"),j=h.useState("mounted"),S=h.useState("payload");(0,y.useImplicitActiveTrigger)(h);let{forceUnmount:C}=(0,y.useOpenStateTransitions)(v,h,()=>{h.context.inlineRectCoordsRef.current=void 0});(0,l.useIsoLayoutEffect)(()=>{v&&null==b&&h.set("payload",void 0)},[h,b,v]);let w=a.useCallback(()=>{h.setOpen(!1,(0,p.createChangeEventDetails)(m.REASONS.imperativeAction))},[h]);a.useImperativeHandle(c,()=>({unmount:C,close:w}),[C,w]);let N=v||j;return(0,t.jsxs)(d.Provider,{value:h,children:[N&&(0,t.jsx)(I,{store:h}),"function"==typeof x?x({payload:S}):x]})}function I(e){var t,r;let{store:l}=e,s=l.useState("floatingRootContext"),o=(0,i.useDismiss)(s),c=null!=(t=o.reference)?t:n.EMPTY_OBJECT,d=null!=(r=o.trigger)?r:n.EMPTY_OBJECT,u=a.useMemo(()=>(0,R.mergeProps)(y.FOCUSABLE_POPUP_PROPS,o.floating),[o.floating]);return(0,y.usePopupInteractionProps)(l,{activeTriggerProps:c,inactiveTriggerProps:d,popupProps:u}),null}let M=(0,r.fastComponent)(function(e){return u(!0)?(0,t.jsx)(A,{...e}):(0,t.jsx)(o.FloatingTree,{children:(0,t.jsx)(A,{...e})})}),O=a.createContext(void 0);var P=e.i(12105);let _=a.forwardRef(function(e,r){let{children:n,container:l,className:s,render:i,style:o,...c}=e,{portalNode:d,portalSubtree:u}=(0,P.useFloatingPortalNode)({container:l,ref:r,componentProps:e,elementProps:c});return u||d?(0,t.jsxs)(a.Fragment,{children:[u,d&&g.createPortal(n,d)]}):null}),L=a.forwardRef(function(e,a){let{keepMounted:r=!1,...n}=e;return u().useState("mounted")||r?(0,t.jsx)(O.Provider,{value:r,children:(0,t.jsx)(_,{ref:a,...n})}):null});var D=e.i(29292),U=e.i(59539),B=e.i(40341),z=e.i(14928),F=e.i(99423),V=e.i(6507);let W=(0,r.fastComponentRef)(function(e,t){var r;let{render:n,className:s,delay:i,closeDelay:o,id:d,payload:p,handle:m,style:f,...g}=e,x=u(!0),h=null!=(r=null==m?void 0:m.store)?r:x;if(!h)throw Error((0,c.default)(89));let v=(0,B.useBaseUiId)(d),b=h.useState("isTriggerActive",v),j=h.useState("isOpenedByTrigger",v),S=h.useState("floatingRootContext"),C=h.context.inlineRectCoordsRef,w=a.useRef(null),N=null!=i?i:600,T=null!=o?o:300,{registerTrigger:E,isMountedByThisTrigger:R}=(0,y.useTriggerDataForwarding)(v,w,h,{payload:p});(0,l.useIsoLayoutEffect)(()=>{R&&(h.context.closeDelayRef.current=T)},[h,R,T]);let A=(0,V.useHoverReferenceInteraction)(S,{mouseOnly:!0,move:!1,handleClose:(0,z.safePolygon)(),delay:()=>({open:N,close:T}),triggerElementRef:w,isActiveTrigger:b,isClosing:()=>"ending"===h.select("transitionStatus")}),I=(0,F.useFocus)(S,{delay:N}),M=h.useState("triggerProps",R),O=function(e,t){function a(t){k(e,t.currentTarget,t.clientX,t.clientY)}return{onFocus(){e.current=void 0},onMouseEnter:a,onMouseMove:function(e){t||a(e)}}}(C,j);return(0,U.useRenderElement)("a",e,{state:{open:j},ref:[t,E,w],props:[A,I.reference,M,O,{id:v},g],stateAttributesMapping:D.triggerOpenStateMapping})}),K=a.createContext(void 0);function H(){let e=a.useContext(K);if(void 0===e)throw Error((0,c.default)(49));return e}var J=e.i(66330),Y=e.i(33984),G=e.i(73056),q=e.i(77726);let Z=a.forwardRef(function(e,r){let{render:n,className:s,anchor:i,positionMethod:d="absolute",side:p="bottom",align:m="center",sideOffset:f=0,alignOffset:g=0,collisionBoundary:x="clipping-ancestors",collisionPadding:h=5,arrowPadding:v=5,sticky:b=!1,disableAnchorTracking:y=!1,collisionAvoidance:k=Y.POPUP_COLLISION_AVOIDANCE,style:T,...E}=e,R=u(),A=function(){let e=a.useContext(O);if(void 0===e)throw Error((0,c.default)(48));return e}(),I=(0,o.useFloatingNodeId)(),M=R.useState("open"),P=R.useState("mounted"),_=R.useState("floatingRootContext"),L=R.useState("instantType"),D=R.useState("transitionStatus"),U=R.useState("hasViewport"),B=R.context.inlineRectCoordsRef,z=(0,J.useAnchorPositioning)({anchor:i,floatingRootContext:_,positionMethod:d,mounted:P,side:p,sideOffset:f,align:m,alignOffset:g,arrowPadding:v,collisionBoundary:x,collisionPadding:h,sticky:b,disableAnchorTracking:y,keepMounted:A,nodeId:I,collisionAvoidance:k,adaptiveOrigin:U?G.adaptiveOrigin:void 0,inline:{name:"inline",async fn(e){let t=e.elements.reference;if("function"!=typeof(null==t?void 0:t.getClientRects))return{};let a="contextElement"in t&&t.contextElement?t.contextElement:(0,j.isElement)(t)?t:void 0,r=B.current,n=(null==r?void 0:r.element)===t||(null==r?void 0:r.element)===a?r:void 0,l=function(e,t,a){let{lines:r,fallback:n}=C(e.getClientRects());if(r.length<2)return null;let l=null==a?void 0:a.x,s=null==a?void 0:a.y,i=t[0];if((null==a?void 0:a.lineIndex)!=null&&r[a.lineIndex])return N(r[a.lineIndex]);if(null!=l&&null!=s){let e=w(r,l,s);if(-1!==e)return N(r[e])}if(2===r.length&&r[0].left>r[1].right&&null!=l&&null!=s)return n;if("t"===i||"b"===i){let e=r[0],t=r[r.length-1],a="t"===i?e:t;return S(a.left,e.top,a.right,t.bottom)}let o="l"===i,c=r[0].left,d=r[0].right,u=o?1/0:-1/0,p=r[0],m=r[0];for(let e of r){c=Math.min(c,e.left),d=Math.max(d,e.right);let t=o?e.left:e.right;o&&t<u||!o&&t>u?(u=t,p=e,m=e):t===u&&(m=e)}return S(c,p.top,d,m.bottom)}(t,e.placement,n);if(!l||"function"!=typeof e.platform.getElementRects)return{};let s=await e.platform.getElementRects({reference:{contextElement:a,getBoundingClientRect:()=>l},floating:e.elements.floating,strategy:e.strategy});return e.rects.reference.x===s.reference.x&&e.rects.reference.y===s.reference.y&&e.rects.reference.width===s.reference.width&&e.rects.reference.height===s.reference.height?{}:{reset:{rects:s}}}}}),F=z.update;(0,l.useIsoLayoutEffect)(()=>{M&&P&&F()},[M,P,F]);let V={open:M,side:z.side,align:z.align,anchorHidden:z.anchorHidden,instant:L},W=(0,q.usePositioner)(e,V,{styles:z.positionerStyles,transitionStatus:D,props:E,refs:[r,R.useStateSetter("positionerElement")],hidden:!P,inert:!M});return(0,t.jsx)(K.Provider,{value:z,children:(0,t.jsx)(o.FloatingNode,{id:I,children:W})})});var X=e.i(58762),Q=e.i(96718),$=e.i(76382),ee=e.i(67101),et=e.i(24028);let ea={...D.popupStateMapping,...Q.transitionStatusMapping},er=a.forwardRef(function(e,t){let{className:a,render:r,style:n,...l}=e,s=u(),{side:i,align:o}=H(),c=s.useState("open"),d=s.useState("instantType"),p=s.useState("transitionStatus"),m=s.useState("popupProps"),f=s.useState("floatingRootContext");(0,$.useOpenChangeComplete)({open:c,ref:s.context.popupRef,onComplete(){if(c){var e,t;null==(e=(t=s.context).onOpenChangeComplete)||e.call(t,!0)}}});let g=(0,X.useStableCallback)(()=>s.context.closeDelayRef.current);return(0,et.useHoverFloatingInteraction)(f,{closeDelay:g}),(0,U.useRenderElement)("div",e,{state:{open:c,side:i,align:o,instant:d,transitionStatus:p},ref:[t,s.context.popupRef,s.useStateSetter("popupElement")],props:[m,(0,ee.getDisabledMountTransitionStyles)(p),l],stateAttributesMapping:ea})}),en=a.forwardRef(function(e,t){let{render:a,className:r,style:n,...l}=e,s=u(),{arrowRef:i,side:o,align:c,arrowUncentered:d,arrowStyles:p}=H(),m=s.useState("open");return(0,U.useRenderElement)("div",e,{state:{open:m,side:o,align:c,uncentered:d},ref:[i,t],props:[{style:p,"aria-hidden":!0},l],stateAttributesMapping:D.popupStateMapping})}),el={...D.popupStateMapping,...Q.transitionStatusMapping},es=a.forwardRef(function(e,t){let{render:a,className:r,style:n,...l}=e,s=u(),i=s.useState("open"),o=s.useState("mounted"),c=s.useState("transitionStatus");return(0,U.useRenderElement)("div",e,{state:{open:i,transitionStatus:c},ref:[t],props:[{role:"presentation",hidden:!o,style:{pointerEvents:"none",userSelect:"none",WebkitUserSelect:"none"}},l],stateAttributesMapping:el})}),ei=function(e){return e.popupWidth="--popup-width",e.popupHeight="--popup-height",e}({});var eo=e.i(6983);let ec={activationDirection:e=>e?{"data-activation-direction":e}:null},ed=a.forwardRef(function(e,t){let{render:a,className:r,style:n,children:l,...s}=e,i=u(),o=H(),c=i.useState("instantType"),{children:d,state:p}=(0,eo.usePopupViewport)({store:i,side:o.side,cssVars:ei,children:l}),m={activationDirection:p.activationDirection,transitioning:p.transitioning,instant:c};return(0,U.useRenderElement)("div",e,{state:m,ref:t,props:[s,{children:d}],stateAttributesMapping:ec})});class eu{open(e){let t=e?this.store.context.triggerElements.getById(e):void 0;if(e&&!t)throw Error((0,c.default)(88,e));this.store.setOpen(!0,(0,p.createChangeEventDetails)(m.REASONS.imperativeAction,void 0,t))}close(){this.store.setOpen(!1,(0,p.createChangeEventDetails)(m.REASONS.imperativeAction,void 0,void 0))}get isOpen(){return this.store.select("open")}constructor(){this.store=new E}}function ep(){return new eu}var em=e.i(71323),em=em,ef=e.i(96745);function eg(e){let{...a}=e;return(0,t.jsx)(em.Root,{"data-slot":"hover-card",...a})}function ex(e){let{...a}=e;return(0,t.jsx)(em.Trigger,{"data-slot":"hover-card-trigger",...a})}function eh(e){let{className:a,side:r="bottom",sideOffset:n=8,align:l="center",alignOffset:s=0,style:i,...o}=e;return(0,t.jsx)(em.Portal,{"data-slot":"hover-card-portal",children:(0,t.jsx)(em.Positioner,{align:l,alignOffset:s,side:r,sideOffset:n,positionMethod:"fixed",className:"isolate z-[10050]",children:(0,t.jsx)(em.Popup,{"data-slot":"hover-card-content",style:{boxShadow:"var(--shadow-md)",...i},className:(0,ef.cn)("z-[10050] box-border w-[220px] rounded-lg border border-solid border-[var(--ds-color-border-default)] bg-[var(--surface-1)] p-[16px] text-[var(--ds-text)] outline-none duration-100","origin-(--transform-origin) data-[side=bottom]:slide-in-from-top-2 data-[side=inline-end]:slide-in-from-left-2 data-[side=inline-start]:slide-in-from-right-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95",a),...o})})})}},88435,e=>{"use strict";e.s(["GeelibManageView",()=>r]);var t=e.i(59992),a=e.i(82735);function r(){return(0,t.jsx)(a.AgentEnvGroupSettingsView,{group:"geelib"})}},96502,e=>{"use strict";e.s(["GitManageView",()=>r]);var t=e.i(59992),a=e.i(82735);function r(){return(0,t.jsx)(a.AgentEnvGroupSettingsView,{group:"git"})}},22420,e=>{"use strict";e.s(["ImManageView",()=>r]);var t=e.i(59992),a=e.i(82735);function r(){return(0,t.jsx)(a.AgentEnvGroupSettingsView,{group:"tutui"})}},47284,e=>{"use strict";e.s(["ToolsManageView",()=>R],47284);var t=e.i(59992),a=e.i(65765),r=e.i(49377),n=e.i(36763),l=e.i(18805),s=e.i(41995),i=e.i(92369),o=e.i(84081),c=e.i(96214),d=e.i(85941),u=e.i(13014),p=e.i(78678),m=e.i(87655),f=e.i(55105);function g(e){let{items:r,saveBusy:n,onToggle:l,onExport:s,onRemove:i,className:o}=e,[g,x]=(0,a.useState)(""),h=(0,a.useMemo)(()=>r.filter(e=>(function(e,t){var a,r;let n=t.trim().toLowerCase();if(!n)return!0;let l="system"===e.layer?"系统":"agent"===e.layer?"Agent":"";return"".concat(e.name," ").concat(null!=(a=e.label)?a:""," ").concat(null!=(r=e.description)?r:""," ").concat(l).toLowerCase().includes(n)})(e,g)),[r,g]),v=[{key:"name",title:"名称",headerClassName:"",cellClassName:"",render:e=>{let a=e.label||e.name;return(0,t.jsxs)("span",{className:"inline-flex items-center gap-2",children:[(0,t.jsx)("span",{children:a}),(0,t.jsx)(p.StatusBadge,{tone:e.enabled?"success":"default",children:e.enabled?"启用":"未启用"})]})}},{key:"layer",title:"层级",headerClassName:"w-[88px]",cellClassName:"w-[88px] whitespace-nowrap text-[var(--ds-text)]",render:e=>"system"===e.layer?"系统":"agent"===e.layer?"Agent":"-"},{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)(c.AccentSwitch,{checked:!!e.enabled,disabled:n,onCheckedChange:t=>l(e.name,t),"aria-label":"".concat(e.enabled?"禁用":"启用"," ").concat(e.name)})})},{key:"actions",title:"操作",headerClassName:"w-[128px] ",cellClassName:"w-[128px]",render:e=>{let a=!0===e.canManage;return(0,t.jsxs)("div",{className:"inline-flex items-center justify-end gap-1",children:[(0,t.jsx)(d.IconTooltipButton,{icon:"Download",label:a?"导出":"系统内置工具不可导出",ariaLabel:"导出 ".concat(e.label||e.name),disabled:n||!a,onClick:()=>s(e.name)}),(0,t.jsx)(d.IconTooltipButton,{icon:"Trash2",label:a?"删除":"系统内置工具不可删除",tone:"danger",ariaLabel:"删除 ".concat(e.label||e.name),disabled:n||!a,onClick:()=>{i(e.name)}})]})}}],b=g.trim();return(0,t.jsxs)("div",{className:"flex flex-col gap-3",children:[(0,t.jsxs)("div",{className:"relative max-w-md",children:[(0,t.jsx)(f.Input,{type:"search",value:g,onChange:e=>x(e.target.value),placeholder:"搜索名称 / 详情 / 层级",className:"h-8 pl-8","aria-label":"搜索工具"}),(0,t.jsx)(m.default,{name:"Search",size:16,className:"pointer-events-none absolute left-2.5 top-1/2 -translate-y-1/2 text-[var(--ds-muted)]"})]}),(0,t.jsx)(u.AppTable,{rows:h,columns:v,getRowKey:e=>"tools:".concat(e.name),className:o,emptyText:b?"未找到匹配工具":void 0})]})}var x=e.i(10602),h=e.i(84919);function v(e){let{open:a,onOpenChange:r,wsUrl:n,apiBase:l,agent:s}=e;return(0,t.jsx)(h.ResourceImportDialog,{open:a,onOpenChange:r,title:"导入工具 zip",description:"选择一个 zip 文件并导入到 tools-runtime。",uploadUrl:(0,x.buildToolsRuntimeImportUrl)(n,l,s),resetKey:s})}var b=e.i(40751);let y=[["name","稳定工具名,与 agent.json.tools 白名单对应"],["call","工具执行入口"],["inputSchema","Zod schema,定义 LLM 入参"],["description","工具描述,可为 async 函数"],["prompt","返回给模型的使用说明,可为 async 函数"],["mapToolResultToToolResultBlockParam","将执行结果映射为 API tool_result 块"]],j=["包目录位于 tools-runtime/<package-name>/,包名使用 kebab-case","包根目录存在 index.js / index.cjs / index.mjs 之一,宿主不会加载源码 TS","入口导出 Tool 对象,工具 name 稳定且唯一","initWsSession 正确处理 ready / skipped / failed",'agent.json.tools 包含工具名或 "*",且未被 disallowedTools 禁用',"GET /api/tools?agent=<id> 中工具 enabled: true 且 readiness: ready"];function S(e){let{index:a,title:r,children:n,className:l}=e;return(0,t.jsxs)("section",{className:"rounded-xl border border-[var(--ds-color-border-default)] bg-[var(--surface-1)] p-4 ".concat(null!=l?l:""),children:[(0,t.jsxs)("div",{className:"mb-3 flex items-center gap-3",children:[(0,t.jsx)("span",{className:"flex size-7 shrink-0 items-center justify-center rounded-full bg-[var(--ds-color-accent)] text-base font-semibold text-[var(--surface-1)]",children:a}),(0,t.jsx)("h3",{className:"text-base font-semibold text-[var(--ds-text)]",children:r})]}),n]})}function C(e){let{open:a,onOpenChange:r}=e;return(0,t.jsx)(b.AppDialog,{open:a,onOpenChange:r,title:"工具接入说明",width:"max-w-4xl",footer:(0,t.jsx)(i.Button,{type:"button",variant:"plain-outline",size:"lg",onClick:()=>r(!1),children:"我知道了"}),children:(0,t.jsxs)("div",{className:"flex max-h-[72vh] flex-col gap-4 overflow-y-auto pr-1 text-sm text-[var(--ds-text)]",children:[(0,t.jsx)(S,{index:1,title:"概念",children:(0,t.jsxs)("div",{className:"flex items-start gap-3",children:[(0,t.jsx)("span",{className:"bg-[var(--ds-color-accent)]/10 mt-0.5 flex size-9 shrink-0 items-center justify-center rounded-lg text-[var(--ds-color-accent)]",children:(0,t.jsx)(m.default,{name:"Wrench",size:18})}),(0,t.jsxs)("p",{className:"min-w-0 leading-6 text-[var(--ds-muted)]",children:["Runtime Tool 是磁盘上的独立工具包,放在",(0,t.jsx)("code",{className:"mx-1 rounded bg-[var(--ds-color-surface-sidebar)] px-1.5 py-0.5",children:"tools-runtime/<package-name>/"}),"下。宿主与工具包只通过编译入口的导出契约通信,互不 import 对方源码。"]})]})}),(0,t.jsxs)(S,{index:2,title:"存放路径",children:[(0,t.jsx)("pre",{className:"overflow-x-auto rounded-lg bg-[var(--ds-color-surface-sidebar)] p-3 text-xs leading-5 text-[var(--ds-text)]",children:"<WS_AGENTS_ROOT>/tools-runtime/<package-name>/\n index.cjs # 必选:编译后的单文件入口\n package.json # 可选\n build.ts # 可选\n src/ # 可选,宿主不加载"}),(0,t.jsxs)("p",{className:"mt-3 leading-6 text-[var(--ds-muted)]",children:["默认 WS_AGENTS_ROOT 为项目下的",(0,t.jsx)("code",{className:"mx-1 rounded bg-[var(--ds-color-surface-sidebar)] px-1.5 py-0.5",children:".ws-agents"}),",宿主按",(0,t.jsx)("code",{className:"mx-1 rounded bg-[var(--ds-color-surface-sidebar)] px-1.5 py-0.5",children:".js > .cjs > .mjs"}),"优先级加载入口。agent 层同名包会覆盖 system 层包。"]})]}),(0,t.jsx)(S,{index:3,title:"接入方式",children:(0,t.jsxs)("div",{className:"space-y-3 text-[var(--ds-muted)]",children:[(0,t.jsxs)("p",{children:[(0,t.jsx)("span",{className:"font-medium text-[var(--ds-text)]",children:"手工放置:"}),"在 .ws-agents/tools-runtime/ 下创建包目录并完成构建,重启会话或触发 reloadDynamicTools。"]}),(0,t.jsxs)("p",{children:[(0,t.jsx)("span",{className:"font-medium text-[var(--ds-text)]",children:"Zip 导入:"}),"zip 内必须是单根目录结构,例如 my-tool/index.cjs。"]}),(0,t.jsxs)("p",{children:[(0,t.jsx)("span",{className:"font-medium text-[var(--ds-text)]",children:"内置 system 包:"}),"发布到 packages/agent/tools-runtime,用户可用 agent 层同名包覆盖。"]})]})}),(0,t.jsxs)(S,{index:4,title:"包内必须实现的契约",children:[(0,t.jsx)("p",{className:"mt-2 leading-6 text-[var(--ds-muted)]",children:"入口模块需导出至少一个 Tool 对象,可使用 default、tools 数组或命名导出。"}),(0,t.jsx)("div",{className:"mt-3 grid gap-2",children:y.map(e=>{let[a,r]=e;return(0,t.jsxs)("div",{className:"rounded-lg border border-[var(--ds-color-border-default)] bg-[var(--surface-1)] px-3 py-2",children:[(0,t.jsx)("code",{className:"text-base font-semibold text-[var(--ds-color-accent)]",children:a}),(0,t.jsx)("p",{className:"mt-1 text-base leading-5 text-[var(--ds-muted)]",children:r})]},a)})}),(0,t.jsx)("div",{className:"mt-4 rounded-lg border border-[var(--ds-color-border-default)] bg-[var(--ds-color-surface-sidebar)] p-3",children:(0,t.jsxs)("p",{className:"leading-6 text-[var(--ds-muted)]",children:["生产包推荐实现",(0,t.jsx)("code",{className:"mx-1 rounded bg-[var(--surface-1)] px-1.5 py-0.5",children:"initWsSession"}),",返回 ready 才会进入 LLM 工具列表;skipped 或 failed 不会暴露。未实现时默认 ready。"]})})]}),(0,t.jsx)(S,{index:5,title:"最小示例",children:(0,t.jsxs)("p",{className:"leading-6 text-[var(--ds-muted)]",children:["最小包通常包含 package.json、build.ts 和 src/index.ts,构建后在包根目录产出",(0,t.jsx)("code",{className:"mx-1 rounded bg-[var(--ds-color-surface-sidebar)] px-1.5 py-0.5",children:"index.cjs"}),"。若 package.json 使用",(0,t.jsx)("code",{className:"mx-1 rounded bg-[var(--ds-color-surface-sidebar)] px-1.5 py-0.5",children:"type: module"}),",优先产出 index.cjs,避免 ESM/CJS 冲突。"]})}),(0,t.jsxs)(S,{index:6,title:"在 agent 中启用",children:[(0,t.jsx)("pre",{className:"overflow-x-auto rounded-lg bg-[var(--ds-color-surface-sidebar)] p-3 text-base leading-5 text-[var(--ds-text)]",children:'{\n "tools": ["HelloTool"]\n}'}),(0,t.jsxs)("p",{className:"mt-3 leading-6 text-[var(--ds-muted)]",children:[(0,t.jsx)("code",{className:"mx-1 rounded bg-[var(--ds-color-surface-sidebar)] px-1.5 py-0.5",children:'"*"'}),"暴露全部已加载且 ready 的 runtime 工具;",(0,t.jsx)("code",{className:"mx-1 rounded bg-[var(--ds-color-surface-sidebar)] px-1.5 py-0.5",children:"[]"}),"不暴露任何 runtime 工具。MCP 工具由 mcpServers 单独控制。"]})]}),(0,t.jsxs)(S,{index:7,title:"宿主加载流程",children:[(0,t.jsx)("div",{className:"rounded-lg bg-[var(--ds-color-surface-sidebar)] p-3 text-base leading-6 text-[var(--ds-muted)]",children:"discoverRuntimePackages → dynamic import index.* → initWsSession → extractToolsFromModule → agent.json.tools 白名单过滤 → LLM 可见工具列表"}),(0,t.jsx)("p",{className:"mt-3 leading-6 text-[var(--ds-muted)]",children:"触发时机包括 WS 会话 init、reloadDynamicTools,以及带 agent 参数的 GET /api/tools。 可通过 CLAUDE_CODE_RUNTIME_TOOLS_ENABLED=0 关闭 runtime 工具。"})]}),(0,t.jsx)(S,{index:8,title:"参考实现",children:(0,t.jsxs)("div",{className:"space-y-2 leading-6 text-[var(--ds-muted)]",children:[(0,t.jsx)("p",{children:"schedule-tool:会话级 init、agent 白名单、文件持久化。"}),(0,t.jsx)("p",{children:"git-tool:环境变量驱动、ready / skipped / failed 状态。"}),(0,t.jsx)("p",{children:"code-tool:通过 buildSessionAppend 追加会话上下文。"})]})}),(0,t.jsx)(S,{index:9,title:"验收清单",children:(0,t.jsx)("ul",{className:"grid gap-2",children:j.map(e=>(0,t.jsxs)("li",{className:"flex gap-2 leading-6 text-[var(--ds-muted)]",children:[(0,t.jsx)(m.default,{name:"CheckCircle2",size:16,className:"mt-1 shrink-0 text-[var(--ds-color-accent)]"}),(0,t.jsx)("span",{children:e})]},e))})}),(0,t.jsx)(S,{index:10,title:"常见问题",children:(0,t.jsxs)("div",{className:"space-y-2 leading-6 text-[var(--ds-muted)]",children:[(0,t.jsx)("p",{children:"放了包但工具不可见:确认已构建 index.*、initWsSession 返回 ready、白名单包含工具名。"}),(0,t.jsx)("p",{children:"installed-list 有但会话 disabled:通常是 init 返回 skipped/failed,或未通过 agent 白名单。"}),(0,t.jsx)("p",{children:"同名工具冲突:agent 层覆盖 system 层;同一层内工具 name 重复时后者会被去重丢弃。"})]})})]})})}var w=e.i(28661),N=e.i(15692),k=e.i(99329);function T(e){return(null!=e.packageId?String(e.packageId).trim():"")||e.name}function E(e){let t=null!=e.packageId?String(e.packageId).trim():"";return!0===e.deletable&&t.length>0}function R(){let e=(0,r.useAppStore)(e=>e.wsUrl),c=(0,r.useAppStore)(e=>e.apiBase),d=(0,r.useAppStore)(e=>e.agentConfig),u=(0,r.useAppStore)(e=>e.patchAgentConfig),{currentAgent:p,loadAgentConfig:f}=(0,n.useSession)(),x=(0,s.usePersistAgentConfigField)("tools"),h=d.tools,[b,y]=(0,a.useState)([]),[j,S]=(0,a.useState)(!1),[R,A]=(0,a.useState)(!1),[I,M]=(0,a.useState)(!1),[O,P]=(0,a.useState)(!1);(0,a.useEffect)(()=>{f()},[f]);let _=(0,a.useCallback)(async(e,t)=>{A(!0);try{await x(e,{silent:t})}finally{A(!1)}},[x]),L=(0,a.useCallback)(async()=>{y([]),S(!0);try{var t;let a=await (0,k.listInstalledTools)(e,c,p());y(null!=(t=a.tools)?t:[])}catch(e){y([]),l.appToast.error("加载失败:".concat(e instanceof Error?e.message:String(e)))}finally{S(!1)}},[e,c,p]);(0,a.useEffect)(()=>{L()},[L]);let D=(0,a.useCallback)(e=>b.find(t=>t.name===e),[b]),U=(0,a.useMemo)(()=>b.slice().sort((e,t)=>e.name.localeCompare(t.name)).map(e=>(function(e,t){var a;let r=null!=e.packageName?String(e.packageName).trim():"";return{name:e.name,label:(e.displayName&&e.displayName!==e.name?"".concat(e.displayName," · "):"")+e.name,description:null!=(a=e.searchHint)?a:"",enabled:t,packageId:r,canManage:E({deletable:e.deletable,packageId:r}),layer:e.layer}})(e,h.includes(e.name))),[b,h]),B=(0,a.useCallback)(async t=>{let a=D(t);if(!a||!E({deletable:a.deletable,packageId:a.packageName}))return void l.appToast.error("系统内置工具不可删除");if(await (0,w.confirmAlertDialog)({title:"确认删除工具包?",description:"工具名:".concat(t),confirmText:"删除",cancelText:"取消"}))try{await (0,k.deleteRuntimeTool)(e,c,p(),T({packageId:a.packageName,name:a.name}));let r=h.filter(e=>e!==t);u({tools:r}),await _(r,!0),await L()}catch(e){l.appToast.error("删除失败:".concat(e instanceof Error?e.message:String(e)))}},[D,e,c,p,h,u,_,L]),z=(0,a.useCallback)(t=>{let a=D(t);if(!a||!E({deletable:a.deletable,packageId:a.packageName}))return void l.appToast.error("系统内置工具不可导出");window.open((0,k.exportRuntimeToolUrl)(e,c,p(),T({packageId:a.packageName,name:a.name})),"_blank","noopener")},[D,e,c,p]),F=(0,a.useCallback)((e,t)=>{let a=t?[...new Set([...h,e])].sort():h.filter(t=>t!==e).sort();u({tools:a}),_(a,!0)},[h,u,_]);return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(N.ManageChromeHeaderActions,{children:(0,t.jsxs)("div",{className:"flex flex-wrap items-center gap-3",children:[(0,t.jsxs)(i.Button,{type:"button",variant:"plain-outline",size:"lg",className:"inline-flex items-center justify-center gap-1.5",onClick:()=>M(!0),children:[(0,t.jsx)(m.default,{name:"Info",size:16,className:"align-middle"}),"工具说明"]}),(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:()=>P(!0),children:[(0,t.jsx)(m.default,{name:"Import",size:16,className:"align-middle"}),"导入自定义工具"]})]})}),j?(0,t.jsx)(o.Loading,{text:"加载中…",className:"min-h-[200px]"}):(0,t.jsx)(g,{items:U,saveBusy:R,onToggle:F,onExport:z,onRemove:B}),(0,t.jsx)(v,{open:O,onOpenChange:e=>{P(e),e||L()},wsUrl:e,apiBase:c,agent:p()}),(0,t.jsx)(C,{open:I,onOpenChange:M})]})}},73052,e=>{"use strict";e.s(["McpManageView",()=>w],73052);var t=e.i(59992),a=e.i(65765),r=e.i(49377),n=e.i(36763),l=e.i(18805),s=e.i(41995),i=e.i(40751),o=e.i(13014),c=e.i(84081),d=e.i(78678),u=e.i(92369),p=e.i(55105),m=e.i(96214),f=e.i(85941),g=e.i(10602),x=e.i(84919);function h(e){let{open:a,onOpenChange:r,wsUrl:n,apiBase:l,agent:s}=e;return(0,t.jsx)(x.ResourceImportDialog,{open:a,onOpenChange:r,title:"导入 MCP zip",description:"选择一个 zip 文件并导入到 mcp-runtime。",uploadUrl:(0,g.buildMcpRuntimeImportUrl)(n,l,s),resetKey:s})}var v=e.i(99329);function b(e){return(null!=e.packageId?String(e.packageId).trim():"")||e.id}function y(e){let{open:r,onOpenChange:n,itemId:s,source:o,wsUrl:c,apiBase:d,agent:p,onSaved:m}=e,[f,g]=(0,a.useState)(""),[x,h]=(0,a.useState)(!1),[b,y]=(0,a.useState)(!1),j="remote"===o?"remote":"runtime";(0,a.useEffect)(()=>{if(!r||!s.trim())return;let e=!1;return h(!0),g("加载中…"),(0,v.loadRuntimeMcpItemConfig)(c,d,p,s,j).then(t=>{if(e)return;let a=t.overlay;a&&"object"==typeof a&&!Array.isArray(a)?g(JSON.stringify(a,null,2)):g("{}")}).catch(t=>{e||(l.appToast.error("加载 MCP 配置失败:".concat(t instanceof Error?t.message:String(t))),n(!1))}).finally(()=>{e||h(!1)}),()=>{e=!0}},[r,s,c,d,p,j,n]);let S=(0,a.useCallback)(async()=>{let e;if(!s.trim())return;let t=f.trim();try{e=t?JSON.parse(t):{}}catch(e){l.appToast.error("JSON 解析失败:".concat(e instanceof Error?e.message:String(e)));return}if(!e||"object"!=typeof e||Array.isArray(e))return void l.appToast.error("配置必须是 JSON 对象");if("mcpServers"in e&&null!=e.mcpServers)return void l.appToast.error("请填写标准 server 配置(command/args/env),不要嵌套 mcpServers");let a=0===Object.keys(e).length;y(!0);try{a?await (0,v.clearRuntimeMcpItemConfig)(c,d,p,s,j):await (0,v.saveRuntimeMcpItemConfig)(c,d,p,s,j,e),l.appToast.success("MCP 配置已保存"),n(!1),null==m||m()}catch(e){l.appToast.error("保存失败:".concat(e instanceof Error?e.message:String(e)))}finally{y(!1)}},[s,f,c,d,p,j,n,m]);return(0,t.jsx)(i.AppDialog,{open:r,onOpenChange:n,title:"编辑 MCP 配置 · ".concat(s),width:"max-w-4xl",minHeight:"420px",footer:(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(u.Button,{type:"button",variant:"plain-outline",size:"lg",disabled:b,onClick:()=>n(!1),children:"取消"}),(0,t.jsx)(u.Button,{type:"button",size:"lg",disabled:b||x,onClick:()=>void S(),children:"保存"})]}),children:(0,t.jsx)("textarea",{className:"focus-visible:ring-[var(--ds-color-accent)]/30 min-h-[320px] w-full resize-y rounded-md border border-[var(--ds-color-border-default)] bg-[var(--ds-color-surface-default)] p-3 font-mono leading-6 text-[var(--ds-text)] outline-none focus-visible:ring-2",spellCheck:!1,value:f,disabled:x,onChange:e=>g(e.target.value)})})}var j=e.i(28661),S=e.i(87655),C=e.i(15692);function w(){let e=(0,r.useAppStore)(e=>e.wsUrl),g=(0,r.useAppStore)(e=>e.apiBase),x=(0,r.useAppStore)(e=>e.agentConfig),w=(0,r.useAppStore)(e=>e.setAgentConfig),{currentAgent:N,loadAgentConfig:k}=(0,n.useSession)(),T=(0,s.usePersistAgentConfigField)("mcpServers"),E=x.mcpServers,R=(0,a.useMemo)(()=>[...E].sort().join("\0"),[E]),[A,I]=(0,a.useState)([]),[M,O]=(0,a.useState)([]),[P,_]=(0,a.useState)(!1),[L,D]=(0,a.useState)(!1),[U,B]=(0,a.useState)(!1),[z,F]=(0,a.useState)(!1),[V,W]=(0,a.useState)(""),[K,H]=(0,a.useState)(!1),[J,Y]=(0,a.useState)(""),[G,q]=(0,a.useState)(),[Z,X]=(0,a.useState)(!1),[Q,$]=(0,a.useState)("");(0,a.useEffect)(()=>{k()},[k]);let ee=(0,a.useCallback)(async(e,t)=>{D(!0);try{await T(e,{silent:t})}finally{D(!1)}},[T]),et=(0,a.useCallback)(e=>A.find(t=>t.id===e),[A]),ea=(0,a.useCallback)(e=>{let t=et(e);Y(e),q(null==t?void 0:t.source),X(!0)},[et]),er=(0,a.useCallback)(async()=>{I([]),_(!0);try{var t;let a=await (0,v.listMcpServers)(e,g,N());I((null!=(t=a.servers)?t:[]).map(e=>{var t,a,r;return{...e,id:e.name,label:e.name,description:null!=(a=null!=(t=e.description)?t:e.source)?a:"",source:null!=(r=e.source)?r:"",installed:!!e.installed,packageId:e.packageId}}))}catch(e){I([]),l.appToast.error("加载失败:".concat(e instanceof Error?e.message:String(e)))}finally{_(!1)}},[e,g,N]),en=(0,a.useCallback)(async t=>{var a;let r=et(t),n=null!=(a=null==r?void 0:r.source)?a:"";if("runtime"!==n&&"remote"!==n)return void l.appToast.error("基础MCP不可删除");if(await (0,j.confirmAlertDialog)({title:"确认删除 MCP?",description:"服务器名:".concat(t),confirmText:"删除",cancelText:"取消"}))try{if("remote"===n){let a=await (0,v.loadRemoteMcpJson)(e,g,N()),r={};try{r=JSON.parse(String(a.content||"{}"))}catch(e){r={mcpServers:{}}}(!r.mcpServers||Array.isArray(r.mcpServers)||"object"!=typeof r.mcpServers)&&(r.mcpServers={}),delete r.mcpServers[t],await (0,v.saveRemoteMcpJson)(e,g,N(),JSON.stringify(r,null,2))}else{let a=r?b(r):t;await (0,v.deleteRuntimeMcp)(e,g,N(),a)}let a=E.filter(e=>e!==t);O(e=>e.filter(e=>e!==t)),w({...x,mcpServers:a}),await ee(a,!0),await er()}catch(e){l.appToast.error("删除失败:".concat(e instanceof Error?e.message:String(e)))}},[et,e,g,N,E,x,w,ee,er]);(0,a.useEffect)(()=>{er()},[er]),(0,a.useEffect)(()=>{O([...E])},[E,R]);let el=(0,a.useCallback)(async e=>{let t=[...new Set(e)].sort();w({...x,mcpServers:t}),await ee(t,!0)},[x,w,ee]),es=(0,a.useCallback)(async(e,t)=>{let a=t?[...new Set([...M,e])]:M.filter(t=>t!==e);O(a);try{await el(a),await er()}catch(e){O(M),l.appToast.error("切换启用状态失败: ".concat(e))}},[M,el,er]),ei=(0,a.useMemo)(()=>A.slice().sort((e,t)=>{var a,r;let n=String(null!=(a=e.source)?a:"").localeCompare(String(null!=(r=t.source)?r:""));if(0!==n)return n;let l=+!M.includes(e.id),s=+!M.includes(t.id);return l!==s?l-s:e.id.localeCompare(t.id)}),[A,M]),eo=(0,a.useMemo)(()=>ei.filter(e=>(function(e,t){var a;let r=t.trim().toLowerCase();if(!r)return!0;let n="remote"===e.source?"远程":"本地";return"".concat(e.id," ").concat(e.label," ").concat(null!=(a=e.description)?a:""," ").concat(n).toLowerCase().includes(r)})(e,Q)),[ei,Q]),ec=(0,a.useCallback)(t=>{window.open((0,v.exportRuntimeMcpUrl)(e,g,N(),b(t)),"_blank","noopener")},[e,g,N]),ed=(0,a.useCallback)(()=>{F(!0),W(""),(0,v.loadRemoteMcpJson)(e,g,N()).then(e=>{W("string"==typeof e.content?e.content:'{\n "mcpServers": {}\n}\n')}).catch(e=>{l.appToast.error("加载 mcp.json 失败:".concat(e instanceof Error?e.message:String(e))),F(!1)})},[e,g,N]),eu=(0,a.useCallback)(async()=>{let t=function(e){let t,a=e.trim();if(!a)return"请输入 JSON 配置内容";try{t=JSON.parse(a)}catch(e){return"JSON 解析失败:".concat(e instanceof Error?e.message:String(e))}if(!t||"object"!=typeof t||Array.isArray(t))return"JSON 根节点必须是对象";let r=t.mcpServers;if(!r||"object"!=typeof r||Array.isArray(r))return"mcpServers 不能为空,且需包含至少一个 server";let n=Object.keys(r).filter(e=>e.trim());if(!n.length)return"mcpServers 不能为空,且需包含至少一个 server";let l=new Set;for(let e of n){let t=e.trim();!t||l.has(t)||l.add(t)}return l.size?null:"未解析到有效的 server 名称"}(V);if(t)return void l.appToast.error(t);H(!0);try{await (0,v.saveRemoteMcpJson)(e,g,N(),V.trim()),l.appToast.success("已保存全局 mcp.json。"),F(!1),await er()}catch(e){l.appToast.error("保存 mcp.json 失败:".concat(e instanceof Error?e.message:String(e)))}finally{H(!1)}},[e,g,N,V,er]),ep=[{key:"name",title:"名称",headerClassName:" text-[var(--ds-muted)]",cellClassName:" text-[var(--ds-text)]",render:e=>(0,t.jsxs)("span",{className:"inline-flex items-center gap-2",children:[(0,t.jsx)("span",{children:e.label}),(0,t.jsx)(d.StatusBadge,{tone:e.disabled?"default":"success",children:e.disabled?"未启用":"启用"})]})},{key:"description",title:"详情",headerClassName:" text-[var(--ds-muted)]",cellClassName:" text-[var(--ds-text)]",render:e=>e.description||"-"},{key:"source",title:"来源",headerClassName:"w-[96px] text-[var(--ds-muted)]",cellClassName:"w-[96px] text-[var(--ds-text)]",render:e=>"remote"===e.source?"远程":"本地"},{key:"enabled",title:"启用/未启用",headerClassName:"w-14 w-[112px] text-right 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)(m.AccentSwitch,{checked:M.includes(e.id),disabled:L,onCheckedChange:t=>{es(e.id,t)},"aria-label":"选择 ".concat(e.label)})})},{key:"actions",title:"操作",headerClassName:"w-[168px] text-[var(--ds-muted)]",cellClassName:"w-[168px]",render:e=>{var a;let r=null!=(a=e.source)?a:"",n="runtime"===r,l="runtime"===r||"remote"===r;return(0,t.jsxs)("div",{className:"inline-flex items-center justify-end gap-1",children:[(0,t.jsx)(f.IconTooltipButton,{icon:"Download",label:n?"导出":"仅 runtime MCP 支持导出",ariaLabel:"导出 ".concat(e.label),disabled:L||!n,onClick:()=>ec(e)}),(0,t.jsx)(f.IconTooltipButton,{icon:"Edit",label:"编辑 MCP 配置",ariaLabel:"编辑 ".concat(e.label),disabled:L,onClick:()=>ea(e.id)}),(0,t.jsx)(f.IconTooltipButton,{icon:"Trash2",label:l?"删除":"基础MCP不可删除",tone:"danger",ariaLabel:"删除 ".concat(e.label),disabled:L||!l,onClick:()=>{en(e.id)},iconClassName:"text-red-500"})]})}}],em=Q.trim();return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(C.ManageChromeHeaderActions,{children:(0,t.jsxs)("div",{className:"flex flex-wrap items-center",children:[(0,t.jsxs)(u.Button,{type:"button",variant:"plain-outline",size:"lg",onClick:ed,className:"mr-[12px]",children:[(0,t.jsx)(S.default,{name:"Edit",size:16,className:"align-middle"}),"编辑远程MCP"]}),(0,t.jsxs)(u.Button,{id:"btnAgentImportMcp",type:"button",variant:"plain-outline",size:"lg",className:"inline-flex items-center justify-center gap-1.5",onClick:()=>B(!0),children:[(0,t.jsx)(S.default,{name:"Import",size:16,className:"align-middle"}),"导入本地MCP"]})]})}),(0,t.jsxs)("div",{className:"flex min-h-0 flex-1 flex-col gap-3",children:[(0,t.jsxs)("div",{className:"relative max-w-md",children:[(0,t.jsx)(p.Input,{type:"search",value:Q,onChange:e=>$(e.target.value),placeholder:"搜索名称 / 详情 / 来源",className:"h-8 pl-8","aria-label":"搜索 MCP"}),(0,t.jsx)(S.default,{name:"Search",size:16,className:"pointer-events-none absolute left-2.5 top-1/2 -translate-y-1/2 text-[var(--ds-muted)]"})]}),(0,t.jsx)("div",{className:"min-h-0",children:P?(0,t.jsx)(c.Loading,{text:"加载中",className:"min-h-[180px]"}):(0,t.jsx)(o.AppTable,{rows:eo,columns:ep,getRowKey:e=>e.id,emptyText:em?"未找到匹配 MCP":void 0})})]}),(0,t.jsx)(h,{open:U,onOpenChange:e=>{B(e),e||er()},wsUrl:e,apiBase:g,agent:N()}),(0,t.jsx)(y,{open:Z,onOpenChange:X,itemId:J,source:G,wsUrl:e,apiBase:g,agent:N(),onSaved:()=>{er(),ee(x.mcpServers,!0)}}),(0,t.jsx)(i.AppDialog,{open:z,onOpenChange:F,title:"编辑全局MCP",width:"max-w-4xl",minHeight:"420px",footer:(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(u.Button,{type:"button",variant:"plain-outline",size:"lg",disabled:K,onClick:()=>F(!1),children:"取消"}),(0,t.jsx)(u.Button,{type:"button",size:"lg",disabled:K,onClick:()=>void eu(),children:"保存"})]}),children:(0,t.jsx)("textarea",{className:"focus-visible:ring-[var(--ds-color-accent)]/30 min-h-[320px] w-full resize-y rounded-md border border-[var(--ds-color-border-default)] bg-[var(--ds-color-surface-default)] p-3 leading-6 text-[var(--ds-text)] outline-none focus-visible:ring-2",spellCheck:!1,value:V,onChange:e=>W(e.target.value)})})]})}},90293,e=>{"use strict";e.s(["SkillsManageView",()=>M],90293);var t=e.i(59992),a=e.i(65765),r=e.i(49377),n=e.i(36763),l=e.i(18805),s=e.i(41995),i=e.i(72099),o=e.i(92369),c=e.i(87655),d=e.i(13014),u=e.i(55105),p=e.i(96745);function m(e){let{className:a,...r}=e;return(0,t.jsx)("nav",{role:"navigation","aria-label":"pagination","data-slot":"pagination",className:(0,p.cn)("flex w-full justify-end",a),...r})}let f=a.forwardRef((e,a)=>{let{className:r,...n}=e;return(0,t.jsx)("ul",{ref:a,"data-slot":"pagination-content",className:(0,p.cn)("flex flex-row flex-wrap items-center justify-end gap-1",r),...n})});f.displayName="PaginationContent";let g=a.forwardRef((e,a)=>{let{className:r,...n}=e;return(0,t.jsx)("li",{ref:a,"data-slot":"pagination-item",className:(0,p.cn)("",r),...n})});g.displayName="PaginationItem",a.forwardRef((e,a)=>{let{className:r,isActive:n,size:l="icon",...s}=e;return(0,t.jsx)("a",{ref:a,"aria-current":n?"page":void 0,"data-slot":"pagination-link","data-active":n?"true":void 0,className:(0,p.cn)((0,o.buttonVariants)({variant:n?"outline":"ghost",size:l}),r),...s})}).displayName="PaginationLink";var x=e.i(99329),h=e.i(84081);function v(e){let{active:r,wsUrl:n,apiBase:s,agent:i,onAfterInstall:p,className:v}=e,[b,y]=(0,a.useState)(""),[j,S]=(0,a.useState)(1),[C,w]=(0,a.useState)(0),[N,k]=(0,a.useState)([]),[T,E]=(0,a.useState)(!1),[R,A]=(0,a.useState)({}),I=(0,a.useRef)(0),M=(0,a.useCallback)(async()=>{let e=++I.current;E(!0);try{let t=await (0,x.listCloudSkillCatalog)(n,s,i,b,j,10);if(e!==I.current)return;let a=Array.isArray(t.items)?t.items:[],r=[];for(let e of a)e&&"object"==typeof e&&e.id&&r.push({id:String(e.id),title:String(e.title||""),skillName:String(e.skillName||""),description:"string"==typeof e.description?e.description:"",installed:!!e.installed});k(r),w(t.totalPages)}catch(t){if(e!==I.current)return;k([]),w(0)}finally{e===I.current&&E(!1)}},[n,s,i,b,j]);(0,a.useEffect)(()=>{if(!r){y(""),S(1),w(0),k([]),A({}),I.current+=1;return}M()},[r,M]);let O=(0,a.useCallback)(async(e,t)=>{A(t=>({...t,[e]:!0}));try{await (0,x.installCloudSkill)(n,s,i,e),l.appToast.success("云端技能已安装:".concat(t)),await M(),null==p||p()}catch(e){l.appToast.error("安装失败:".concat(e instanceof Error?e.message:String(e)))}finally{A(t=>{let a={...t};return delete a[e],a})}},[n,s,i,M,p]),P=(0,a.useCallback)(e=>{S(1),y(e)},[]);if(!r)return null;let _=C>0?"第 ".concat(j,"/").concat(C," 页"):"第 0/0 页",L=T||j<=1,D=T||C<=0||j>=C,U=[{key:"name",title:"名称",headerClassName:"",cellClassName:" text-[var(--ds-text)]",render:e=>{let a=e.skillName||e.id;return(0,t.jsx)("span",{className:"inline-flex items-center gap-2",children:(0,t.jsx)("span",{children:a})})}},{key:"description",title:"详情",headerClassName:"",cellClassName:" text-[var(--ds-text)]",render:e=>(0,t.jsxs)(t.Fragment,{children:[e.title,e.description?" — ".concat(e.description):""]})},{key:"status",title:"状态",headerClassName:"",cellClassName:"whitespace-nowrap text-[var(--ds-text)]",render:e=>e.installed?"已安装":"未安装"},{key:"actions",title:"操作",headerClassName:"w-[96px] text-right ",cellClassName:"w-[116px] text-right",render:e=>{let a=!!R[e.id],r=!!e.installed;return!a&&r?"-":(0,t.jsx)(o.Button,{type:"button",size:"sm",variant:"outline",disabled:a||r,onClick:()=>void O(e.id,e.title||e.skillName||e.id),children:a?"安装中…":r?"已安装":"安装"})}}];return(0,t.jsx)("div",{className:v,children:(0,t.jsxs)("div",{className:"flex flex-col gap-3",children:[(0,t.jsxs)("div",{className:"relative max-w-md",children:[(0,t.jsx)(u.Input,{type:"search",value:b,onChange:e=>P(e.target.value),placeholder:"搜索名称 / 详情",className:"h-8 pl-8","aria-label":"搜索已安装 Skill"}),(0,t.jsx)(c.default,{name:"Search",size:16,className:"pointer-events-none absolute left-2.5 top-1/2 size-4 -translate-y-1/2 text-[var(--ds-muted)]","aria-hidden":!0})]}),(0,t.jsx)(d.AppTable,{rows:N,columns:U,getRowKey:e=>e.id,className:"min-h-0 flex-1 rounded-md",bodyProps:{viewportPaginationReserve:64},emptyNode:T?(0,t.jsx)(h.Loading,{text:"加载中…",className:"min-h-[200px]"}):void 0}),(0,t.jsx)(m,{className:"mx-0 w-full",children:(0,t.jsxs)(f,{className:"w-full flex-wrap justify-end gap-2",children:[(0,t.jsx)(g,{children:(0,t.jsxs)(o.Button,{type:"button",variant:"outline",size:"sm",disabled:L,className:"gap-1",onClick:()=>S(e=>Math.max(1,e-1)),"aria-label":"上一页",children:[(0,t.jsx)(c.default,{name:"ChevronLeft",size:16,className:"shrink-0"}),"上一页"]})}),(0,t.jsx)(g,{children:(0,t.jsx)("span",{className:"flex h-9 min-w-[6.5rem] items-center justify-center text-[var(--ds-muted)]",children:_})}),(0,t.jsx)(g,{children:(0,t.jsxs)(o.Button,{type:"button",variant:"outline",size:"sm",disabled:D,className:"gap-1",onClick:()=>S(e=>e+1),"aria-label":"下一页",children:["下一页",(0,t.jsx)(c.default,{name:"ChevronRight",size:16,className:"shrink-0",strokeWidth:1})]})})]})})]})})}var b=e.i(10602),y=e.i(84919);function j(e){let{open:a,onOpenChange:r,wsUrl:n,apiBase:l,agent:s}=e;return(0,t.jsx)(y.ResourceImportDialog,{open:a,onOpenChange:r,title:"导入 Skill zip",description:"选择一个 zip 文件并导入到 skills-runtime。",uploadUrl:(0,b.buildSkillsRuntimeImportUrl)(n,l,s),resetKey:s})}var S=e.i(40751);function C(e){let{open:r,onOpenChange:n,skillName:s,wsUrl:i,apiBase:c,agent:d,onSaved:u}=e,[p,m]=(0,a.useState)(""),[f,g]=(0,a.useState)(!1),[h,v]=(0,a.useState)(!1);(0,a.useEffect)(()=>{if(!r||!s.trim())return;let e=!1;return g(!0),m(""),(0,x.loadBaseSkillMd)(i,c,d,s).then(t=>{e||m("string"==typeof t.content?t.content:"")}).catch(t=>{e||(l.appToast.error("加载 SKILL.md 失败:".concat(t instanceof Error?t.message:String(t))),n(!1))}).finally(()=>{e||g(!1)}),()=>{e=!0}},[r,s,i,c,d,n]);let b=(0,a.useCallback)(async()=>{if(s.trim()){v(!0);try{await (0,x.saveBaseSkillMd)(i,c,d,s,p),l.appToast.success("SKILL.md 已保存"),n(!1),null==u||u()}catch(e){l.appToast.error("保存失败:".concat(e instanceof Error?e.message:String(e)))}finally{v(!1)}}},[s,i,c,d,p,n,u]);return(0,t.jsx)(S.AppDialog,{open:r,onOpenChange:n,title:"编辑 SKILL.md · /".concat(s),width:"max-w-4xl",minHeight:"420px",footer:(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(o.Button,{type:"button",variant:"plain-outline",size:"lg",disabled:f||h,onClick:()=>n(!1),children:"取消"}),(0,t.jsx)(o.Button,{type:"button",size:"lg",disabled:f||h,onClick:()=>void b(),children:"保存"})]}),children:f?(0,t.jsx)("p",{className:"py-6 text-center text-[var(--ds-muted)]",children:"加载中…"}):(0,t.jsx)("textarea",{className:"focus-visible:ring-[var(--ds-color-accent)]/30 min-h-[320px] w-full resize-y rounded-md border border-[var(--ds-color-border-default)] bg-[var(--ds-color-surface-default)] p-3 leading-6 text-[var(--ds-text)] outline-none focus-visible:ring-2",spellCheck:!1,value:p,placeholder:"Markdown 源码…",onChange:e=>m(e.target.value)})})}var w=e.i(96214),N=e.i(85941),k=e.i(78678);function T(e){let{items:r,saveBusy:n,onToggleEnabled:l,onEditBase:s,onExport:i,onRemove:o,className:p}=e,[m,f]=(0,a.useState)(""),g=(0,a.useMemo)(()=>r.filter(e=>(function(e,t){var a;let r=t.trim().toLowerCase();return!r||"".concat(e.name," ").concat(null!=(a=e.description)?a:"").toLowerCase().includes(r)})(e,m)),[r,m]),x=[{key:"name",title:"名称",headerClassName:"",cellClassName:"",render:e=>(0,t.jsxs)("span",{className:"inline-flex items-center gap-2",children:[(0,t.jsx)("span",{children:"/".concat(e.name)}),(0,t.jsx)(k.StatusBadge,{tone:e.enabled?"success":"default",children:e.enabled?"启用":"未启用"})]})},{key:"description",title:"详情",headerClassName:"",cellClassName:"",render:e=>e.description||"-"},{key:"status",title:"状态",headerClassName:"w-[160px] ",cellClassName:"w-[160px] text-[var(--ds-text)]",render:e=>"base"===e.source?"基础":"已安装"},{key:"enabled",title:"启用/未启用",headerClassName:"w-[160px] text-right ",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)(w.AccentSwitch,{checked:e.enabled,disabled:n,onCheckedChange:t=>l(e.name,t),"aria-label":"".concat(e.enabled?"禁用":"启用"," ").concat(e.name)})})},{key:"actions",title:"操作",headerClassName:"w-[128px] ",cellClassName:"w-[128px]",render:e=>(0,t.jsx)("div",{className:"inline-flex items-center justify-end gap-1",children:"base"===e.source?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(N.IconTooltipButton,{icon:"Edit",label:"编辑",ariaLabel:"编辑 ".concat(e.name),disabled:n,onClick:()=>s(e.name)}),(0,t.jsx)(N.IconTooltipButton,{icon:"Trash2",label:"系统技能不可删除",tone:"danger",ariaLabel:"删除 ".concat(e.name),disabled:!0})]}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(N.IconTooltipButton,{icon:"Download",label:"导出",ariaLabel:"导出 ".concat(e.name),disabled:n,onClick:()=>i(e.name)}),(0,t.jsx)(N.IconTooltipButton,{icon:"Trash2",label:"删除",tone:"danger",ariaLabel:"删除 ".concat(e.name),disabled:n,onClick:()=>{o(e.name)}})]})})}],h=m.trim();return(0,t.jsxs)("div",{className:"flex flex-col gap-3",children:[(0,t.jsxs)("div",{className:"relative max-w-md",children:[(0,t.jsx)(u.Input,{type:"search",value:m,onChange:e=>f(e.target.value),placeholder:"搜索名称 / 详情",className:"h-8 pl-8","aria-label":"搜索已安装 Skill"}),(0,t.jsx)(c.default,{name:"Search",size:16,className:"pointer-events-none absolute left-2.5 top-1/2 -translate-y-1/2 text-[var(--ds-muted)]"})]}),(0,t.jsx)(d.AppTable,{rows:g,columns:x,getRowKey:e=>"skills:".concat(e.name),className:p,emptyText:h?"无匹配的 Skill":void 0})]})}var E=e.i(28661),R=e.i(15692);function A(e,t){var a,r,n;let l=(n=null!=(r=null!=(a=e.description)?a:e.whenToUse)?r:"")?n.length>100?n.slice(0,100):n:"";return{...e,id:e.name,label:"/".concat(e.name),description:l,isRuntime:t,canManage:e.canManage}}let I=[{value:"installed",label:"已安装Skill"},{value:"cloud_catalog",label:"Skill商店"}];function M(){let e=(0,r.useAppStore)(e=>e.wsUrl),d=(0,r.useAppStore)(e=>e.apiBase),u=(0,r.useAppStore)(e=>e.agentConfig),p=(0,r.useAppStore)(e=>e.patchAgentConfig),{currentAgent:m,loadAgentConfig:f}=(0,n.useSession)(),g=(0,s.usePersistAgentConfigField)("skills"),b=u.skills,[y,S]=(0,a.useState)([]),[w,N]=(0,a.useState)([]),[k,M]=(0,a.useState)(!1),[O,P]=(0,a.useState)(!1),[_,L]=(0,a.useState)(!1),[D,U]=(0,a.useState)("installed"),[B,z]=(0,a.useState)(!1),[F,V]=(0,a.useState)(""),[W,K]=(0,a.useState)(!1);(0,a.useEffect)(()=>{f()},[f]);let H=(0,a.useCallback)(async(e,t)=>{L(!0);try{await g(e,{silent:t})}finally{L(!1)}},[g]),J=(0,a.useCallback)(async()=>{S([]),M(!0);try{var t;let a=await (0,x.listBaseSkills)(e,d,m());S((null!=(t=a.skills)?t:[]).map(e=>A(e,!1)))}catch(e){S([]),l.appToast.error("加载失败:".concat(e instanceof Error?e.message:String(e)))}finally{M(!1)}},[e,d,m]),Y=(0,a.useCallback)(async()=>{N([]),P(!0);try{var t;let a=await (0,x.listInstalledSkills)(e,d,m());N((null!=(t=a.skills)?t:[]).map(e=>A(e,!0)))}catch(e){N([]),l.appToast.error("加载失败:".concat(e instanceof Error?e.message:String(e)))}finally{P(!1)}},[e,d,m]),G=(0,a.useCallback)(async()=>{await Promise.all([J(),Y()])},[J,Y]),q=(0,a.useCallback)(async t=>{if(await (0,E.confirmAlertDialog)({title:"确认删除 Skill 包?",description:"Skill:".concat(t),confirmText:"删除",cancelText:"取消"}))try{await (0,x.deleteRuntimeSkill)(e,d,m(),t);let a=b.filter(e=>e!==t);p({skills:a}),await H(a,!0),await G()}catch(e){l.appToast.error("删除失败:".concat(e instanceof Error?e.message:String(e)))}},[e,d,m,b,p,H,G]);(0,a.useEffect)(()=>{"installed"===D&&G()},[D,G]);let Z=(0,a.useCallback)(()=>{G()},[G]),X=(0,a.useMemo)(()=>{let e=y.map(e=>({name:e.id,source:"base",description:e.description||"",enabled:b.includes(e.id)})),t=new Set(e.map(e=>e.name)),a=w.filter(e=>!t.has(e.id)).slice().sort((e,t)=>e.label.localeCompare(t.label)).map(e=>({name:e.id,source:"runtime",description:e.description||"",enabled:b.includes(e.id)}));return[...e.sort((e,t)=>e.name.localeCompare(t.name)),...a]},[y,w,b]),Q=(0,a.useCallback)((e,t)=>{let a=t?[...new Set([...b,e])].sort():b.filter(t=>t!==e);p({skills:a}),H(a,!0)},[b,p,H]),$=(0,a.useCallback)(t=>{window.open((0,x.exportRuntimeSkillUrl)(e,d,m(),t),"_blank","noopener")},[e,d,m]),ee=(0,a.useCallback)(e=>{V(e),K(!0)},[]);return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(R.ManageChromeHeaderActions,{children:(0,t.jsxs)(o.Button,{id:"btnAgentImportSkill",type:"button",variant:"plain-outline",size:"lg",className:"inline-flex items-center justify-center gap-1.5",onClick:()=>z(!0),children:[(0,t.jsx)(c.default,{name:"Import",size:16,className:"align-middle"}),"导入Skill"]})}),(0,t.jsxs)(i.AppTabs,{tabs:I,value:D,listVariant:"line",onChange:e=>U(e),children:[(0,t.jsx)(i.AppTabsPanel,{value:"installed",children:k||O?(0,t.jsx)(h.Loading,{text:"加载中…",className:"min-h-[200px]"}):(0,t.jsx)(T,{items:X,saveBusy:_,onToggleEnabled:Q,onEditBase:ee,onExport:$,onRemove:q})}),(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"===D,wsUrl:e,apiBase:d,agent:m(),enabledSkillNames:b,onAfterInstall:Z,className:"min-h-0 flex-1"})})]}),(0,t.jsx)(j,{open:B,onOpenChange:e=>{z(e),e||G()},wsUrl:e,apiBase:d,agent:m()}),(0,t.jsx)(C,{open:W,onOpenChange:K,skillName:F,wsUrl:e,apiBase:d,agent:m(),onSaved:()=>void G()})]})}},29716,e=>{"use strict";e.s(["LLM_MODEL_KEY",()=>t,"LLM_PROVIDER_ID_KEY",()=>a,"PERMISSION_MODE_EMPTY_SENTINEL",()=>i,"WS_ALLOW_TOOL_ASK_ALLOWED",()=>s,"WS_ALLOW_TOOL_ASK_KEY",()=>n,"WS_PERMISSION_MODE_ALLOWED",()=>l,"WS_PERMISSION_MODE_KEY",()=>r]);let t="LLM_MODEL",a="LLM_PROVIDER_ID",r="WS_PERMISSION_MODE",n="WS_ALLOW_TOOL_ASK",l=["acceptEdits","plan","default","dontAsk","bypassPermissions"],s=new Set(["0","1"]),i="__empty__"},57757,e=>{"use strict";e.s(["EnvManageView",()=>P],57757);var t=e.i(59992),a=e.i(65765),r=e.i(15692),n=e.i(92369),l=e.i(87655),s=e.i(84081),i=e.i(65486),o=e.i(18805),c=e.i(36763),d=e.i(37566),u=e.i(75854),p=e.i(21637),m=e.i(49377);function f(){var e,t;let a=null!=(t=null==(e=g[0])?void 0:e.defaults.modelId)?t:"";return a?[a]:[""]}let g=[{value:"anthropic",label:"Anthropic Claude",description:"适用于 Claude 官方接口,自动使用 anthropic 协议。",badge:"C",defaults:{provider:"anthropic",id:"anthropic",baseUrl:"https://api.anthropic.com",modelId:"claude-sonnet-4-5",authToken:"ANTHROPIC_API_KEY"}},{value:"openai",label:"OpenAI",description:"适用于 api.openai.com,自动使用 openai 协议。",badge:"AI",defaults:{provider:"openai",id:"openai",baseUrl:"https://api.openai.com/v1",modelId:"gpt-5.5",authToken:"OPENAI_API_KEY"}}],x=[{key:"provider",name:"服务商类型",required:!0,options:g.map(e=>({label:e.label,value:e.value}))},{key:"id",name:"名称",required:!0,placeholder:"例如 openai-main"},{key:"modelId",name:"模型 ID",required:!0,inputType:"modelIdList",placeholder:"例如 gpt-5.5"},{key:"baseUrl",name:"API地址",required:!0,placeholder:"例如 https://api.openai.com/v1"},{key:"apiKey",name:"API秘钥",required:!0,inputType:"password"},{key:"authToken",name:"authToken",inputType:"password",placeholder:"可选,例如 ANTHROPIC_API_KEY",showWhen:{field:"provider",values:["anthropic"]}}];var h=e.i(85941),v=e.i(55105),b=e.i(72483),y=e.i(96745);let j=new Map(g.map(e=>[e.value,e]));function S(e){let{titleId:a,values:r,modelIds:s,onFieldChange:i,onModelIdChange:o,onAddModelId:c,onRemoveModelId:d,onProviderSelect:u}=e,p=x.filter(e=>(function(e,t){var a;if(!e.showWhen)return!0;let r=String(null!=(a=t[e.showWhen.field])?a:"").trim();return e.showWhen.values.includes(r)})(e,r)),m=s.length>=2;return(0,t.jsx)("div",{className:"divide-y divide-[var(--ds-color-border-default)]",children:p.map(e=>{var p,f;let g="custom-env-field-".concat(e.key),x="new-provider-field-".concat(a,"-").concat(e.key),S="string"==typeof r[e.key]?r[e.key]:"";return(0,t.jsxs)("div",{className:"flex flex-col gap-2 py-4 first:pt-0",children:[(0,t.jsxs)("label",{className:"text-[var(--ds-text)]",htmlFor:g,children:[e.name,e.required?(0,t.jsx)("span",{className:"ml-0.5 text-destructive",children:"*"}):null]}),"provider"===e.key&&e.options?(0,t.jsx)("div",{className:"grid gap-3 sm:grid-cols-2",role:"radiogroup","aria-label":e.name,children:e.options.map(e=>{var a;let r="openai"===(a=e.value)||"anthropic"===a?j.get(a):void 0;if(!r)return null;let s=S===e.value;return(0,t.jsxs)(n.Button,{type:"button",variant:"plain",role:"radio","aria-checked":s,onClick:()=>u(r.value),className:(0,y.cn)("relative h-auto w-full items-start justify-start rounded-xl !border !border-solid border-[var(--ds-color-border-log)] bg-[var(--surface-1)] !p-4 text-left shadow-none transition-[border-color,background-color,box-shadow] hover:border-[var(--ds-color-accent-light)] hover:bg-[var(--ds-color-success-bg)] focus-visible:border-[var(--ds-color-accent-light)] focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[color-mix(in_srgb,var(--ds-color-accent-strong)_24%,transparent)]",s&&"border-[var(--ds-color-accent-strong)] bg-[var(--ds-color-success-bg-subtle)] text-[var(--ds-text)] shadow-[0_0_0_3px_rgba(34,185,129,.12)] hover:border-[var(--ds-color-accent-strong)] hover:bg-[var(--ds-color-success-bg-subtle)]"),children:[(0,t.jsxs)("span",{className:"flex w-full min-w-0 gap-3 pr-6",children:[(0,t.jsx)("span",{className:(0,y.cn)("flex size-8 shrink-0 items-center justify-center rounded-lg bg-[var(--ds-color-surface-default)] text-sm font-semibold text-[var(--ds-muted)]",s&&"bg-[var(--ds-color-surface-default)] text-[var(--ds-color-accent)]"),children:r.badge}),(0,t.jsxs)("span",{className:"min-w-0 flex-1",children:[(0,t.jsx)("span",{className:"block truncate text-base font-semibold text-[var(--ds-text)]",children:r.label}),(0,t.jsx)("span",{className:"mt-1 block text-sm leading-5 text-[var(--ds-muted)]",children:r.description})]})]}),s?(0,t.jsx)("span",{className:"absolute right-4 top-4 flex size-5 items-center justify-center rounded-full bg-[var(--ds-color-accent-strong)] text-white",children:(0,t.jsx)(l.default,{name:"Check",size:14,strokeWidth:2.5})}):null]},e.value)})}):e.options?(0,t.jsxs)(b.Select,{value:S,onValueChange:t=>i(e.key,t),children:[(0,t.jsx)(b.SelectTrigger,{id:g,className:(0,y.cn)("h-8 w-full max-w-none bg-[var(--ds-color-surface-default)] text-[var(--ds-text)]",e.className),children:(0,t.jsx)(b.SelectValue,{})}),(0,t.jsx)(b.SelectContent,{children:e.options.map(e=>(0,t.jsx)(b.SelectItem,{value:e.value,children:e.label},e.value))})]}):"modelIdList"===e.inputType?(0,t.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,t.jsx)("div",{children:(0,t.jsxs)(n.Button,{type:"button",variant:"plain-outline",size:"sm",className:"cursor-pointer",onClick:c,children:[(0,t.jsx)(l.default,{name:"Plus",size:14,className:"mr-1"}),"添加"]})}),s.map((a,r)=>{var n;let l="".concat(g,"-").concat(r),s="".concat(x,"-").concat(r);return(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(v.Input,{id:l,name:s,type:"text",spellCheck:!1,autoComplete:"off",placeholder:null!=(n=e.placeholder)?n:"请输入".concat(e.name),className:(0,y.cn)("border-[var(--ds-color-border-default)] bg-[var(--ds-color-surface-default)] placeholder:text-[var(--text-placeholder)]",e.className),value:a,onChange:e=>o(r,e.target.value)}),(0,t.jsx)(h.IconTooltipButton,{icon:"CircleMinus",label:"删除模型 ID",tone:"danger",disabled:!m,onClick:()=>d(r)})]},l)})]}):(0,t.jsx)(v.Input,{id:g,name:x,type:null!=(p=e.inputType)?p:"text",spellCheck:!1,autoComplete:"password"===e.inputType?"new-password":"off",placeholder:null!=(f=e.placeholder)?f:"请输入".concat(e.name),className:(0,y.cn)("border-[var(--ds-color-border-default)] bg-[var(--ds-color-surface-default)] placeholder:text-[var(--text-placeholder)]",e.className),value:S,onChange:t=>i(e.key,t.target.value)})]},e.key)})})}let C=/^[A-Za-z0-9_-]+$/,w=new Map(g.map(e=>[e.value,e]));function N(){var e;return{...Object.fromEntries(x.map(e=>{var t,a,r;return[e.key,null!=(r=null==(a=e.options)||null==(t=a[0])?void 0:t.value)?r:""]})),...null==(e=g[0])?void 0:e.defaults}}function k(e){let{open:r,onOpenChange:l,onSaved:g}=e,h=(0,a.useId)(),v=(0,m.useAppStore)(e=>e.wsUrl),b=(0,m.useAppStore)(e=>e.apiBase),{currentAgent:y,loadAgentConfig:j}=(0,c.useSession)(),{sendReloadAgentConfig:k}=(0,d.useWebSocketSender)(),[T,E]=(0,a.useState)(!0),[R,A]=(0,a.useState)(!1),[I,M]=(0,a.useState)(!1),[O,P]=(0,a.useState)(N),[_,L]=(0,a.useState)(f),D=(0,a.useCallback)(()=>{P(N()),L(f()),M(!1)},[]);(0,a.useEffect)(()=>{r&&(E(!0),D(),j().finally(()=>{E(!1)}))},[r,j,D]);let U=(0,a.useCallback)((e,t)=>{M(!0),P(a=>({...a,[e]:t}))},[]),B=(0,a.useCallback)((e,t)=>{M(!0),L(a=>a.map((a,r)=>r===e?t:a))},[]),z=(0,a.useCallback)(()=>{M(!0),L(e=>[...e,""])},[]),F=(0,a.useCallback)(e=>{M(!0),L(t=>t.length<2?t:t.filter((t,a)=>a!==e))},[]),V=(0,a.useCallback)(e=>{var t;let a=w.get(e);if(!a)return void U("provider",e);M(!0),P(e=>({...e,...a.defaults}));let r=null!=(t=a.defaults.modelId)?t:"";L(r?[r]:[""])},[U]),W=(0,a.useCallback)(async e=>{if(e)return void l(!0);(!I||await (0,p.confirmDiscardFlyoutChanges)())&&l(!1)},[I,l]),K=(0,a.useCallback)(async()=>{let e=m.useAppStore.getState().agentConfig,t=function(e,t,a){var r,n;let l=new Set(x.map(e=>e.key));for(let a of x)if(a.required){if("modelIdList"===a.inputType){if(t.some(e=>!e.trim()))return{ok:!1,message:"请填写".concat(a.name)};continue}if(!String(null!=(r=e[a.key])?r:"").trim())return{ok:!1,message:"请填写".concat(a.name)}}if(!l.has("id"))return{ok:!0};let s=String(null!=(n=e.id)?n:"").trim();return C.test(s)?a.some(e=>e.id===s)?{ok:!1,message:"服务商 ID 已存在:".concat(s)}:{ok:!0}:{ok:!1,message:"服务商 ID 仅允许字母、数字、下划线和中划线"}}(O,_,e.llmProviders);if(!t.ok)return void o.appToast.info(t.message);let a=function(e,t){var a,r,n,l,s;let i=String(null!=(a=e.id)?a:"").trim(),o=t.map(e=>e.trim()).filter(Boolean),c=null!=(r=o[0])?r:"";return{id:i,name:i,baseUrl:String(null!=(n=e.baseUrl)?n:"").trim(),apiKey:String(null!=(l=e.apiKey)?l:"").trim(),authToken:String(null!=(s=e.authToken)?s:"").trim(),provider:"anthropic"===e.provider?"anthropic":"openai",models:o.map(e=>({id:e,label:""})),defaultModel:c}}(O,_),r=[...e.llmProviders.map(e=>({...e,models:e.models.map(e=>({...e}))})),a];A(!0);try{await (0,u.persistAgentEnv)(v,b,y(),{...e.env},k,{llmProviders:r}),M(!1),await (null==g?void 0:g()),l(!1)}catch(e){o.appToast.error("保存服务商失败:".concat(e instanceof Error?e.message:String(e)))}finally{A(!1)}},[O,_,v,b,y,k,l,g]);return(0,t.jsx)(i.Dialog,{open:r,onOpenChange:e=>void W(e),children:(0,t.jsxs)(i.DialogContent,{"aria-labelledby":h,className:"max-w-4xl",children:[(0,t.jsxs)(i.DialogHeader,{children:[(0,t.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,t.jsx)(i.DialogTitle,{id:h,children:"添加模型服务商"}),(0,t.jsx)("p",{className:"m-0 ml-1 mt-2 text-sm font-normal text-[var(--ds-muted)]",children:"选择服务商类型后,系统自动匹配协议、鉴权方式和默认地址"})]}),(0,t.jsx)(i.DialogClose,{"aria-label":"关闭"})]}),(0,t.jsx)(i.DialogBody,{className:"flex min-h-[420px] flex-col overflow-hidden !py-4",children:T?(0,t.jsx)(s.Loading,{text:"加载中",showImage:!1,className:"min-h-0 flex-1"}):(0,t.jsx)("div",{className:"min-h-0 flex-1 overflow-y-auto",children:(0,t.jsx)(S,{titleId:h,values:O,modelIds:_,onFieldChange:U,onModelIdChange:B,onAddModelId:z,onRemoveModelId:F,onProviderSelect:V})})}),(0,t.jsxs)("div",{className:"flex shrink-0 justify-end gap-2 border-t border-[var(--ds-color-border-default)] bg-[var(--ds-color-surface-sidebar)] px-4 py-3",children:[(0,t.jsx)(n.Button,{type:"button",variant:"plain-outline",size:"lg",disabled:T||R,onClick:()=>void W(!1),className:"cursor-pointer",children:"取消"}),(0,t.jsx)(n.Button,{type:"button",size:"lg",disabled:T||R,onClick:()=>void K(),className:"cursor-pointer",children:R?"保存中…":"保存"})]})]})})}var T=e.i(26162),E=e.i(29716);function R(e){let{row:a,onSetDefault:r,settingDefault:l=!1,onTest:s,onEdit:i,onDelete:o}=e,c="".concat(a.baseUrl," · ").concat(a.model);return(0,t.jsxs)("article",{className:(0,y.cn)("group flex w-full items-center gap-4 rounded-xl border border-solid bg-[var(--ds-color-surface-default)] px-4 py-3.5 transition-[border-color,box-shadow]",a.isDefault?"border-[color:var(--ds-color-success)]":"border-[color:var(--ds-color-border-default)] hover:shadow-[0_2px_12px_rgba(0,0,0,0.06)]"),children:[(0,t.jsxs)("div",{className:"flex min-w-0 flex-1 items-center gap-3",children:[(0,t.jsx)("span",{className:(0,y.cn)("size-2 shrink-0 rounded-full",a.isDefault?"bg-[var(--ds-color-success)]":"bg-[var(--ds-muted)]"),"aria-hidden":"true"}),(0,t.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,t.jsxs)("h3",{className:"truncate text-base font-semibold text-[var(--ds-text)]",children:[a.name,a.isDefault?(0,t.jsx)("span",{className:"ml-2 inline-flex rounded-md bg-[color-mix(in_srgb,var(--ds-color-success)_12%,transparent)] px-1.5 py-0.5 text-xs font-medium text-[var(--ds-color-success)]",children:"默认"}):null]}),(0,t.jsx)("p",{className:"mt-1 truncate text-[var(--ds-muted)]",title:c,children:c})]})]}),(0,t.jsxs)("div",{className:"pointer-events-none invisible flex shrink-0 items-center opacity-0 transition-opacity group-focus-within:pointer-events-auto group-focus-within:visible group-focus-within:opacity-100 group-hover:pointer-events-auto group-hover:visible group-hover:opacity-100",children:[(0,t.jsx)(n.Button,{type:"button",variant:"plain",size:"sm",disabled:a.isDefault||l,className:"h-8 cursor-pointer !px-0 text-[var(--ds-text)] hover:text-[var(--ds-color-accent)] disabled:cursor-not-allowed disabled:text-[var(--ds-muted)] disabled:opacity-60",onClick:()=>r(a.id),children:l?"设置中…":"设为默认"}),s?(0,t.jsx)(n.Button,{type:"button",variant:"plain",size:"sm",className:"h-8 cursor-pointer px-2 text-[var(--ds-text)] hover:text-[var(--ds-color-accent)]",onClick:()=>s(a.id),children:"测试"}):null,i?(0,t.jsx)(h.IconTooltipButton,{icon:"Edit",label:"编辑",ariaLabel:"编辑 ".concat(a.name),onClick:()=>i(a.id)}):null,(0,t.jsx)(h.IconTooltipButton,{icon:"Trash2",label:"删除",tone:"danger",ariaLabel:"删除 ".concat(a.name),onClick:()=>o(a.id)})]})]})}function A(e,t){var a,r;let n="string"==typeof t[E.LLM_PROVIDER_ID_KEY]?t[E.LLM_PROVIDER_ID_KEY].trim():"";return n&&e.some(e=>e.id===n)?n:null!=(r=null==(a=e[0])?void 0:a.id.trim())?r:""}function I(e,t){let a=A(e,t);return e.map(e=>{let t=e.models[0];return{id:e.id,name:e.name||e.id,baseUrl:e.baseUrl,model:e.defaultModel||(null==t?void 0:t.label)||(null==t?void 0:t.id)||"",isDefault:e.id===a}})}function M(e){console.log("edit",e)}function O(){let e=(0,m.useAppStore)(e=>e.wsUrl),r=(0,m.useAppStore)(e=>e.apiBase),n=(0,m.useAppStore)(e=>e.agentConfig.llmProviders),l=(0,m.useAppStore)(e=>e.agentConfig.env),{currentAgent:s}=(0,c.useSession)(),{sendReloadAgentConfig:i}=(0,d.useWebSocketSender)(),[p,f]=(0,a.useState)(()=>I(n,l)),[g,x]=(0,a.useState)(null);(0,a.useEffect)(()=>{f(I(n,l))},[n,l]);let h=(0,a.useCallback)(async t=>{let a=m.useAppStore.getState();if(t!==A(a.agentConfig.llmProviders,a.agentConfig.env)){x(t);try{await (0,u.persistAgentEnv)(e,r,s(),{...a.agentConfig.env,[E.LLM_PROVIDER_ID_KEY]:t},i)}catch(e){o.appToast.error("设为默认失败:".concat(e instanceof Error?e.message:String(e)))}finally{x(null)}}},[e,r,s,i]),v=(0,a.useCallback)(async t=>{let a=m.useAppStore.getState(),n=a.agentConfig.llmProviders.filter(e=>e.id!==t).map(e=>({...e,models:e.models.map(e=>({...e}))}));if(n.length===a.agentConfig.llmProviders.length)return;let l={...a.agentConfig.env};if(t===A(a.agentConfig.llmProviders,a.agentConfig.env)){var c,d;let e=null!=(d=null==(c=n[0])?void 0:c.id.trim())?d:"";e?l[E.LLM_PROVIDER_ID_KEY]=e:delete l[E.LLM_PROVIDER_ID_KEY]}try{await (0,u.persistAgentEnv)(e,r,s(),l,i,{llmProviders:n})}catch(e){o.appToast.error("删除服务商失败:".concat(e instanceof Error?e.message:String(e)))}},[e,r,s,i]);return(0,t.jsx)("div",{className:"mt-4 flex flex-col gap-3",children:0===p.length?(0,t.jsx)(T.Empty,{text:"暂无服务商"}):p.map(e=>(0,t.jsx)(R,{row:e,onSetDefault:e=>void h(e),settingDefault:g===e.id,onEdit:M,onDelete:v},e.id))})}function P(){let[e,s]=(0,a.useState)(!1);return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(r.ManageChromeHeaderActions,{children:(0,t.jsx)("div",{className:"flex flex-wrap items-center",children:(0,t.jsxs)(n.Button,{type:"button",variant:"plain-outline",size:"lg",onClick:()=>s(!0),className:"mr-[12px]",children:[(0,t.jsx)(l.default,{name:"Create",size:16,className:"align-middle"}),"添加服务商"]})})}),(0,t.jsx)(O,{}),(0,t.jsx)(k,{open:e,onOpenChange:s})]})}},76302,e=>{"use strict";e.s(["SettingsRouteBoundary",()=>i]);var t=e.i(59992),a=e.i(48579),r=e.i(74548),n=e.i(28234),l=e.i(75733),s=e.i(49377);function i(e){let{children:i}=e,o=(0,r.usePathname)(),c=(0,s.useAppStore)(e=>e.agentId),d=(0,l.buildAppNavHref)(n.MANAGE_DEFAULT_HREF,{ensureAgent:!0,agent:c});return o&&!(0,n.isManageRouteEnabled)((0,l.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-[var(--ds-muted)]",children:(0,t.jsx)(a.default,{className:"text-zinc-900 underline underline-offset-4",href:d,prefetch:!1,children:"返回默认设置页"})})]}):(0,t.jsx)(t.Fragment,{children:i})}}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,49377,18636,50657,3402,e=>{"use strict";e.s(["useAppStore",()=>b],49377),e.s(["create",()=>s],18636);var t=e.i(65765);let r=e=>{let t,r=new Set,n=(e,n)=>{let o="function"==typeof e?e(t):e;if(!Object.is(o,t)){let e=t;t=(null!=n?n:"object"!=typeof o||null===o)?o:Object.assign({},t,o),r.forEach(r=>r(t,e))}},o=()=>t,s={setState:n,getState:o,getInitialState:()=>a,subscribe:e=>(r.add(e),()=>r.delete(e))},a=t=e(n,o,s);return s},n=e=>e,o=e=>{let o=(e=>e?r(e):r)(e),s=e=>(function(e){let r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:n,o=t.default.useSyncExternalStore(e.subscribe,t.default.useCallback(()=>r(e.getState()),[e,r]),t.default.useCallback(()=>r(e.getInitialState()),[e,r]));return t.default.useDebugValue(o),o})(o,e);return Object.assign(s,o),s},s=e=>e?o(e):o;e.s(["DEFAULT_AGENT_CONFIG",()=>a,"createAgentConfigSlice",()=>i],50657);let a={tools:[],disallowedTools:[],mcpServers:[],skills:[],model:"",agentTeams:[],rules:[],env:{},llmProviders:[],effort:void 0,background:!1,isolation:"",whentouse:""};function l(){return{...a,tools:[...a.tools],disallowedTools:[...a.disallowedTools],mcpServers:[...a.mcpServers],skills:[...a.skills],agentTeams:[...a.agentTeams],rules:[...a.rules],env:{...a.env},llmProviders:a.llmProviders.map(e=>({...e,models:e.models.map(e=>({...e}))}))}}let i=e=>({agentConfig:l(),setAgentConfig:t=>e({agentConfig:t}),resetAgentConfig:()=>e({agentConfig:l()}),patchAgentConfig:t=>e(e=>({agentConfig:{...e.agentConfig,...t}}))});function c(e,t){return{message:e,sourceAgent:"main",ts:"",arrivalSeq:t}}function d(e,t){for(;e.length<=t;)e.push({arrivalSeq:0})}let u={phase:"idle",retryAttempt:0,maxRetries:0,retryInMs:0,retryUntilTs:0};function m(e){if(!e||"object"!=typeof e)return;let t=e.skill;return"string"==typeof t&&t.trim()?t.trim():void 0}e.s(["createPermissionSlice",()=>p,"findMatchingPermissionRequest",()=>f,"toolContainerGroupHasPendingPermission",()=>g],3402);let p=e=>({permissionQueue:[],enqueuePermissionRequest:t=>e(e=>{var r;return e.permissionQueue.some(e=>e.requestId===t.requestId)?e:{permissionQueue:[...e.permissionQueue,{...t,skillName:null!=(r=t.skillName)?r:m(t.input),confirmState:"pending"}]}}),setPermissionConfirmState:(t,r)=>e(e=>({permissionQueue:e.permissionQueue.map(e=>e.requestId===t?{...e,confirmState:r}:e)})),dequeuePermissionRequest:t=>e(e=>({permissionQueue:e.permissionQueue.filter(e=>e.requestId!==t)})),clearPermissionQueue:()=>e({permissionQueue:[]})});function f(e,t){var r;let n=e.filter(e=>"pending"===e.confirmState);if(0===n.length)return null;let o=m(t.input),s=t.toolName.trim().toLowerCase();for(let e of n)if(o&&e.skillName&&e.skillName===o||e.toolName.trim().toLowerCase()===s&&(!o||!e.skillName))return e;return null!=(r=n[0])?r:null}function g(e,t){let r=t.filter(e=>"pending"===e.confirmState);if(0===r.length)return!1;for(let t of e.tools)if("pending"===t.status&&f(r,t))return!0;return!1}let b=s()(function(){for(var e=arguments.length,t=Array(e),r=0;r<e;r++)t[r]=arguments[r];return{...(e=>({wsUrl:"",apiBase:"",sessionId:"",agentId:"",sessionViewMode:"draft",pendingHistoryRefresh:!1,sessionHistoryLoading:!1,agentSelectionResolved:!1,agentSelectionError:null,setWsUrl:t=>e({wsUrl:t}),setApiBase:t=>e({apiBase:t}),setSessionId:t=>e({sessionId:t}),setAgentId:t=>e({agentId:t}),setSessionViewMode:t=>e({sessionViewMode:t}),setPendingHistoryRefresh:t=>e({pendingHistoryRefresh:t}),setSessionHistoryLoading:t=>e({sessionHistoryLoading:t}),setAgentSelectionResolved:t=>e({agentSelectionResolved:t}),setAgentSelectionError:t=>e({agentSelectionError:t}),selectSession:(t,r)=>e({sessionId:t,sessionViewMode:r,pendingHistoryRefresh:!1,sessionHistoryLoading:!1,sessionContextPercent:null}),startDraftSession:()=>e({sessionId:"",sessionViewMode:"draft",pendingHistoryRefresh:!1,sessionHistoryLoading:!1,sessionContextPercent:null})}))(...t),...(e=>({bridgeReady:!1,wsConnected:!1,statusText:"未连接",statusClass:"idle",apiErrorState:{...u},setBridgeReady:t=>e({bridgeReady:t}),setWsConnected:t=>e({wsConnected:t}),setStatus:function(t){let r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"idle";return e({statusText:t,statusClass:r})},setApiErrorState:t=>e({apiErrorState:t}),resetApiErrorState:()=>e({apiErrorState:{...u}}),markConnecting:()=>e({wsConnected:!1,bridgeReady:!1,statusText:"正在连接…",statusClass:"connecting"}),markConnected:()=>e({wsConnected:!0,statusText:"已连接,等待 worker ready…",statusClass:"pending"}),markReady:()=>e({bridgeReady:!0,statusText:"已就绪",statusClass:"ready"}),markDisconnected:()=>e({wsConnected:!1,bridgeReady:!1,statusText:"已断开",statusClass:"disconnected"}),markConnectionError:t=>e({statusText:t,statusClass:"err"})}))(...t),...(e=>({lastSessions:[],sessionsMeta:"加载中…",brandAgent:"agent",brand:"Claude Code测试平台",sessionContextPercent:null,currentWorkspaceAgent:null,setLastSessions:(t,r)=>e({lastSessions:t,sessionsMeta:r}),setSessionsMeta:t=>e({sessionsMeta:t}),resetSessions:function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"加载中…";return e({lastSessions:[],sessionsMeta:t})},setBrandAgent:t=>e({brandAgent:t}),setBrand:t=>e({brand:t}),setSessionContextPercent:t=>e({sessionContextPercent:t}),setCurrentWorkspaceAgent:t=>e({currentWorkspaceAgent:t})}))(...t),...p(...t),...((e,t)=>({assistantGenerating:!1,turnRunning:!1,streamBuffer:"",messagesByRun:{},sourceAgentMessages:[],turnTerminalData:null,runLifecycleData:null,queryPhase:"",pendingPrompt:"",setAssistantGenerating:t=>e({assistantGenerating:t}),setTurnRunning:t=>e({turnRunning:t}),setStreamBuffer:t=>e({streamBuffer:t}),setPendingPrompt:t=>e({pendingPrompt:t}),resetChat:()=>{t().clearPermissionQueue(),e({messagesByRun:{},sourceAgentMessages:[],assistantGenerating:!1,turnRunning:!1,streamBuffer:"",turnTerminalData:null,runLifecycleData:null,queryPhase:"",pendingPrompt:""})},applyMessageDelta:t=>e(e=>({messagesByRun:function(e,t){var r;let n=[...null!=(r=e.main)?r:[]],o=n.reduce((e,t)=>Math.max(e,t.arrivalSeq||0),0)+1;switch(t.action){case"message_added":if(void 0!==t.index&&t.index>=0){let e=c(t.message,o);t.index<=n.length?n.splice(t.index,0,e):(d(n,t.index-1),n.push(e))}else n.push(c(t.message,o));break;case"message_updated":if(void 0!==t.index&&t.index>=0){d(n,t.index);let e=n[t.index];n[t.index]=e&&void 0!==e.message?{...e,message:t.message}:c(t.message,o)}break;case"message_removed":void 0!==t.index&&t.index>=0&&n.splice(t.index,1)}return{...e,main:n}}(e.messagesByRun,t)})),setMessages:t=>e(e=>({messagesByRun:{...e.messagesByRun,main:t.map((e,t)=>c(e,t+1))},assistantGenerating:!1,turnRunning:!1})),applyRunMessageDelta:t=>e(e=>(function(e,t){let r=(t.runId||"main").trim()||"main",n=[...e.messagesByRun[r]||[]],o={message:t.message,sourceAgent:t.sourceAgent||("main"===r?"main":"unknown-agent"),ts:t.ts||"",arrivalSeq:t.arrivalSeq};switch(t.action){case"message_added":void 0!==t.index&&t.index>=0?t.index<=n.length?n.splice(t.index,0,o):(d(n,t.index-1),n.push(o)):n.push(o);break;case"message_updated":case"tool_call":case"tool_result":case"message_completed":void 0!==t.index&&t.index>=0&&(d(n,t.index),n[t.index]=o);break;case"message_removed":void 0!==t.index&&t.index>=0&&t.index<n.length&&n.splice(t.index,1)}return{messagesByRun:{...e.messagesByRun,[r]:n},assistantGenerating:!(void 0!==t.message&&function(e){if(!e||"object"!=typeof e)return!1;if("assistant"===e.type)return!0;let t=e.message;return!!t&&"object"==typeof t&&"assistant"===t.role||!1}(t.message))&&e.assistantGenerating}})({messagesByRun:e.messagesByRun,assistantGenerating:e.assistantGenerating},t)),appendSourceAgentMessage:t=>e(e=>({sourceAgentMessages:[...e.sourceAgentMessages,t]})),setTurnTerminalData:t=>e({turnTerminalData:t}),setRunLifecycleData:t=>e({runLifecycleData:t}),setQueryPhase:t=>e({queryPhase:t})}))(...t),...i(...t),...(e=>({rawLog:"",appendLog:(t,r)=>e(e=>{let n=new Date().toISOString().slice(11,23),o="[".concat(n,"] ").concat(t," ")+("string"==typeof r?r:JSON.stringify(r,null,0)),s="".concat(e.rawLog).concat(o,"\n");return{rawLog:s.length>1e6?s.slice(-1e6):s}}),clearLog:()=>e({rawLog:""})}))(...t)}})},10602,e=>{"use strict";e.s(["buildAgentApiUrl",()=>I,"buildAgentItemUrl",()=>j,"buildAgentTeamMemberUrl",()=>N,"buildAgentTeamMembersUrl",()=>E,"buildAgentTeamsListUrl",()=>A,"buildAgentsListUrl",()=>T,"buildBaseSkillMdUrl",()=>S,"buildCloudSkillCatalogUrl",()=>C,"buildCloudSkillInstallUrl",()=>L,"buildMcpRuntimeDeleteUrl",()=>Q,"buildMcpRuntimeExportUrl",()=>q,"buildMcpRuntimeFilesUrl",()=>W,"buildMcpRuntimeImportUrl",()=>$,"buildMcpServersListUrl",()=>z,"buildModelsApiUrl",()=>_,"buildRemoteMcpJsonUrl",()=>F,"buildRepoEntriesUrl",()=>X,"buildRepoFileUrl",()=>Z,"buildRepoUploadUrl",()=>Y,"buildRuntimeMcpItemConfigUrl",()=>V,"buildScheduleItemUrl",()=>et,"buildScheduleRunUrl",()=>er,"buildScheduleRunsUrl",()=>en,"buildSchedulesUrl",()=>ee,"buildSessionDeleteUrl",()=>g,"buildSessionOverridesUrl",()=>b,"buildSessionReplayUrl",()=>h,"buildSessionsListUrl",()=>f,"buildSkillBaseListUrl",()=>x,"buildSkillInstalledListUrl",()=>k,"buildSkillsRuntimeDeleteUrl",()=>R,"buildSkillsRuntimeExportUrl",()=>P,"buildSkillsRuntimeImportUrl",()=>U,"buildSystemEnvApiUrl",()=>M,"buildSystemMcpJsonApiUrl",()=>D,"buildToolInstalledListUrl",()=>y,"buildToolsListUrl",()=>v,"buildToolsRuntimeDeleteUrl",()=>H,"buildToolsRuntimeExportUrl",()=>O,"buildToolsRuntimeFilesUrl",()=>B,"buildToolsRuntimeImportUrl",()=>G,"buildWorkspaceFileDownloadUrl",()=>J,"buildWorkspaceFilesListUrl",()=>K,"buildWsUrlWithQuery",()=>eo,"defaultWsUrl",()=>m,"getSkillsList",()=>w]);var t,r,n,o=e.i(75526);let s=void 0!==o.default&&(null==(t=(null==(r=o.default.env.NEXT_PUBLIC_BRIDGE_ORIGIN)?void 0:r.trim())||(null==(n=o.default.env.BACKEND_PROXY_TARGET)?void 0:n.trim()))?void 0:t.replace(/\/+$/,""))||"http://10.224.148.221:8765";function a(){try{return new URL(s).origin}catch(e){return"http://10.224.148.221:8765"}}function l(){let e="1".trim().toLowerCase();return"1"===e||"true"===e||"yes"===e}function i(){var e;let t=null==(e=o.default.env.NEXT_PUBLIC_BRIDGE_ORIGIN)?void 0:e.trim();if(!t)return null;try{return new URL(t).origin}catch(e){return null}}function c(e){let t=new URL(e),r="https:"===t.protocol?"wss:":"ws:";return"".concat(r,"//").concat(t.host,"/ws")}let d=c(a()),u=new Set(["3000","3001","5173","5174","4173","5500","5501","8080","9527","9333"]);function m(){let e=i();if(l()){let e="https:"===window.location.protocol?"wss:":"ws:";return"".concat(e,"//").concat(window.location.host,"/ws")}if(e)return c(e);let{protocol:t,hostname:r,port:n}=window.location;if("http:"===t||"https:"===t){let e=String(n||("https:"===t?"443":"80"));return u.has(e)?d:"".concat("https:"===t?"wss:":"ws:","//").concat(r,":").concat(e,"/ws")}return d}function p(e,t){let r=t.trim().replace(/\/+$/,"");if(r)try{return new URL(r).origin}catch(e){}if(l())return window.location.origin;let n=i();if(n)return n;try{let t=e.trim().replace(/^ws:/i,"http:").replace(/^wss:/i,"https:");return new URL(t).origin}catch(e){}{let{protocol:e,hostname:t,port:r}=window.location;if("http:"===e||"https:"===e)return"".concat(e,"//").concat(t).concat(r?":".concat(r):"")}return a()}function f(e,t,r){let n=new URL("/api/sessions","".concat(p(e,t),"/"));return n.searchParams.set("agent",r),n.toString()}function g(e,t,r,n){let o=new URL("/api/sessions","".concat(p(e,t),"/"));return o.searchParams.set("sessionId",n),o.searchParams.set("agent",r),o.toString()}function b(e,t,r,n){let o=new URL("/api/sessions/overrides","".concat(p(e,t),"/"));return o.searchParams.set("agent",r),o.searchParams.set("sessionId",n),o.toString()}function h(e,t,r,n){let o=new URL("/api/sessions/replay","".concat(p(e,t),"/"));return o.searchParams.set("agent",r),o.searchParams.set("sessionId",n),o.toString()}function v(e,t,r){let n=new URL("/api/tools","".concat(p(e,t),"/"));return n.searchParams.set("agent",r),n.toString()}function y(e,t,r){let n=new URL("/api/tools/installed-list","".concat(p(e,t),"/"));return n.searchParams.set("agent",r),n.toString()}function w(e,t,r){let n=new URL("/api/skills","".concat(p(e,t),"/"));return n.searchParams.set("agent",r),n.toString()}function x(e,t,r){let n=new URL("/api/skills/base-list","".concat(p(e,t),"/"));return n.searchParams.set("agent",r),n.toString()}function k(e,t,r){let n=new URL("/api/skills/installed-list","".concat(p(e,t),"/"));return n.searchParams.set("agent",r),n.toString()}function S(e,t,r,n){let o=new URL("/api/skills/base-skill-md","".concat(p(e,t),"/"));return o.searchParams.set("agent",r),o.searchParams.set("name",n),o.toString()}function R(e,t,r,n){let o=new URL("/api/runtime/skills/file","".concat(p(e,t),"/"));return o.searchParams.set("agent",r),o.searchParams.set("file",n),o.toString()}function P(e,t,r,n){let o=new URL("/api/runtime/skills/export","".concat(p(e,t),"/"));return o.searchParams.set("agent",r),o.searchParams.set("file",n),o.toString()}function U(e,t,r){let n=new URL("/api/runtime/skills/import","".concat(p(e,t),"/"));return n.searchParams.set("agent",r),n.toString()}function C(e,t,r,n){let o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:1,s=arguments.length>5&&void 0!==arguments[5]?arguments[5]:10,a=new URL("/api/skills/cloud-catalog","".concat(p(e,t),"/"));return a.searchParams.set("agent",r),n.trim()&&a.searchParams.set("q",n.trim()),a.searchParams.set("page",String(o<1?1:o)),a.searchParams.set("pageSize",String(s<1?10:s)),a.toString()}function L(e,t,r){let n=new URL("/api/skills/cloud-install","".concat(p(e,t),"/"));return n.searchParams.set("agent",r),n.toString()}function z(e,t,r){let n=new URL("/api/mcp-servers","".concat(p(e,t),"/"));return n.searchParams.set("agent",r),n.toString()}function A(e,t,r){let n=new URL("/api/agent-teams","".concat(p(e,t),"/"));return n.searchParams.set("agent",r),n.toString()}function T(e,t){return new URL("/api/agents","".concat(p(e,t),"/")).toString()}function j(e,t,r){return new URL("/api/agents/".concat(encodeURIComponent(String(r||"").trim())),"".concat(p(e,t),"/")).toString()}function I(e,t,r){let n=new URL("/api/agents/".concat(encodeURIComponent(r)),"".concat(p(e,t),"/"));return n.searchParams.set("agent",r),n.toString()}function E(e,t,r){return new URL("/api/agents/".concat(encodeURIComponent(String(r||"").trim()),"/team-members"),"".concat(p(e,t),"/")).toString()}function N(e,t,r,n){return new URL("/api/agents/".concat(encodeURIComponent(String(r||"").trim()),"/team-members/").concat(encodeURIComponent(String(n||"").trim())),"".concat(p(e,t),"/")).toString()}function D(e,t,r){let n=new URL("/api/system/mcp-json","".concat(p(e,t),"/"));return n.searchParams.set("agent",r),n.toString()}function M(e,t,r){let n=new URL("/api/system/env","".concat(p(e,t),"/"));return n.searchParams.set("agent",r),n.toString()}function _(e,t,r){let n=new URL("/api/llm-providers","".concat(p(e,t),"/"));return n.searchParams.set("agent",r),n.toString()}function B(e,t,r){let n=new URL("/api/runtime/tools/files","".concat(p(e,t),"/"));return n.searchParams.set("agent",r),n.toString()}function O(e,t,r,n){let o=new URL("/api/runtime/tools/export","".concat(p(e,t),"/"));return o.searchParams.set("agent",r),o.searchParams.set("file",n),o.toString()}function G(e,t,r){let n=new URL("/api/runtime/tools/import","".concat(p(e,t),"/"));return n.searchParams.set("agent",r),n.toString()}function H(e,t,r,n){let o=new URL("/api/runtime/tools/file","".concat(p(e,t),"/"));return o.searchParams.set("agent",r),o.searchParams.set("file",n),o.toString()}function W(e,t,r){let n=new URL("/api/runtime/mcps/files","".concat(p(e,t),"/"));return n.searchParams.set("agent",r),n.toString()}function q(e,t,r,n){let o=new URL("/api/runtime/mcps/export","".concat(p(e,t),"/"));return o.searchParams.set("agent",r),o.searchParams.set("file",n),o.toString()}function $(e,t,r){let n=new URL("/api/runtime/mcps/import","".concat(p(e,t),"/"));return n.searchParams.set("agent",r),n.toString()}function Q(e,t,r,n){let o=new URL("/api/runtime/mcps/file","".concat(p(e,t),"/"));return o.searchParams.set("agent",r),o.searchParams.set("file",n),o.toString()}function V(e,t,r,n,o){let s=new URL("/api/runtime/mcps/item-config","".concat(p(e,t),"/"));return s.searchParams.set("agent",r),s.searchParams.set("item",n),s.searchParams.set("source",o),s.toString()}function F(e,t,r){let n=new URL("/api/mcp/remote-json","".concat(p(e,t),"/"));return n.searchParams.set("agent",r),n.toString()}function K(e,t,r,n){let o=new URL("/api/workspace/files","".concat(p(e,t),"/"));return o.searchParams.set("agent",r),o.searchParams.set("sessionId",n),o.toString()}function J(e,t,r,n){let o=new URL("/api/workspace/file","".concat(p(e,t),"/"));return o.searchParams.set("agent",r),o.searchParams.set("path",n.replace(/\\/g,"/")),o.toString()}function Y(e,t,r){let n=new URL("/api/repo/upload","".concat(p(e,t),"/"));return n.searchParams.set("agent",r),n.toString()}function X(e,t,r){let n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"",o=new URL("/api/repo/entries","".concat(p(e,t),"/"));return o.searchParams.set("agent",r),n&&o.searchParams.set("path",n),o.toString()}function Z(e,t,r,n){let o=arguments.length>4&&void 0!==arguments[4]&&arguments[4],s=new URL("/api/repo/file","".concat(p(e,t),"/"));return s.searchParams.set("agent",r),s.searchParams.set("path",n),o&&s.searchParams.set("preview","1"),s.toString()}function ee(e,t,r){let n=new URL("/api/schedules","".concat(p(e,t),"/"));return n.searchParams.set("agent",r),n.toString()}function et(e,t,r,n){let o=new URL("/api/schedules","".concat(p(e,t),"/"));return o.searchParams.set("agent",r),o.searchParams.set("id",n),o.toString()}function er(e,t,r,n){let o=new URL("/api/schedules/run","".concat(p(e,t),"/"));return o.searchParams.set("agent",r),o.searchParams.set("id",n),o.toString()}function en(e,t,r,n){let o=new URL("/api/schedules/runs","".concat(p(e,t),"/"));return o.searchParams.set("agent",r),o.searchParams.set("taskId",n),o.toString()}function eo(e,t,r){let n,o=e.trim().replace(/\/+$/,"");o||(o=m());try{n=new URL(o)}catch(e){n=new URL(d)}return n.searchParams.delete("sessionId"),n.searchParams.delete("agent"),t.trim()&&n.searchParams.set("sessionId",t.trim()),n.searchParams.set("agent",r),n.toString()}},5950,e=>{"use strict";function t(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}e.s(["_",()=>t])},61293,e=>{"use strict";e.s(["ApiError",()=>n,"bridgeFetch",()=>s,"del",()=>d,"get",()=>a,"patch",()=>i,"post",()=>l,"put",()=>c],61293);var t=e.i(5950);let r={accessToken:null};class n extends Error{constructor(e,r,n,o){super(e),(0,t._)(this,"status",void 0),(0,t._)(this,"body",void 0),(0,t._)(this,"response",void 0),this.status=r,this.body=n,this.response=o,this.name="ApiError"}}async function o(e){let t=await e.text();if(!t)return null;try{return JSON.parse(t)}catch(e){return t}}async function s(e,t){var s,a,l;let i,c,{json:d,timeout:u=3e4,raw:m=!1,body:p,...f}=null!=t?t:{},g=new Headers(null!=(s=f.headers)?s:void 0);g.has("Accept")||g.set("Accept","application/json, text/plain, */*"),void 0===d||g.has("Content-Type")||g.set("Content-Type","application/json; charset=utf-8");let b=r.accessToken;b&&!g.has("Authorization")&&g.set("Authorization","Bearer ".concat(b));let h=void 0!==d?JSON.stringify(d):p,v=null!=(a=f.signal)?a:void 0;if(!v){let e=new AbortController;v=e.signal,i=setTimeout(()=>e.abort(),u)}try{c=await fetch(e,{...f,headers:g,body:h,credentials:null!=(l=f.credentials)?l:"same-origin",signal:v})}finally{void 0!==i&&clearTimeout(i)}if(m)return c;let y=await o(c);if(!c.ok)throw new n(function(e,t){if(e&&"object"==typeof e){if("string"==typeof e.message&&e.message.trim())return e.message;if("string"==typeof e.error&&e.error.trim())return e.error}return t||"请求失败"}(y,c.statusText),c.status,y,c);return y}async function a(e,t){return s(e,{...t,method:"GET"})}async function l(e,t,r){let{type:n="json",...o}=null!=r?r:{};return"file"===n?s(e,{...o,method:"POST",body:t}):"form"===n?s(e,{...o,method:"POST",body:new URLSearchParams(t)}):s(e,{...o,method:"POST",json:t})}async function i(e,t,r){return s(e,{...r,method:"PATCH",json:t})}async function c(e,t,r){return s(e,{...r,method:"PUT",json:t})}async function d(e,t){return s(e,{...t,method:"DELETE"})}},96745,45779,e=>{"use strict";function t(){for(var e,t,r=0,n="",o=arguments.length;r<o;r++)(e=arguments[r])&&(t=function e(t){var r,n,o="";if("string"==typeof t||"number"==typeof t)o+=t;else if("object"==typeof t)if(Array.isArray(t)){var s=t.length;for(r=0;r<s;r++)t[r]&&(n=e(t[r]))&&(o&&(o+=" "),o+=n)}else for(n in t)t[n]&&(o&&(o+=" "),o+=n);return o}(e))&&(n&&(n+=" "),n+=t);return n}e.s(["cn",()=>ef],96745),e.s(["clsx",()=>t],45779);let r=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:new Map,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,r=arguments.length>2?arguments[2]:void 0;return{nextPart:e,validators:t,classGroupId:r}},n=[],o=(e,t,r)=>{if(0==e.length-t)return r.classGroupId;let n=e[t],s=r.nextPart.get(n);if(s){let r=o(e,t+1,s);if(r)return r}let a=r.validators;if(null===a)return;let l=0===t?e.join("-"):e.slice(t).join("-"),i=a.length;for(let e=0;e<i;e++){let t=a[e];if(t.validator(l))return t.classGroupId}},s=(e,t)=>{let n=r();for(let r in e)a(e[r],n,r,t);return n},a=(e,t,r,n)=>{let o=e.length;for(let s=0;s<o;s++)l(e[s],t,r,n)},l=(e,t,r,n)=>"string"==typeof e?void i(e,t,r):"function"==typeof e?void c(e,t,r,n):void d(e,t,r,n),i=(e,t,r)=>{(""===e?t:u(t,e)).classGroupId=r},c=(e,t,r,n)=>{if(m(e))return void a(e(n),t,r,n);null===t.validators&&(t.validators=[]),t.validators.push({classGroupId:r,validator:e})},d=(e,t,r,n)=>{let o=Object.entries(e),s=o.length;for(let e=0;e<s;e++){let[s,l]=o[e];a(l,u(t,s),r,n)}},u=(e,t)=>{let n=e,o=t.split("-"),s=o.length;for(let e=0;e<s;e++){let t=o[e],s=n.nextPart.get(t);s||(s=r(),n.nextPart.set(t,s)),n=s}return n},m=e=>"isThemeGetter"in e&&!0===e.isThemeGetter,p=[],f=(e,t,r,n,o)=>({modifiers:e,hasImportantModifier:t,baseClassName:r,maybePostfixModifierPosition:n,isExternal:o}),g=/\s+/,b=function(){let e,t;for(var r=arguments.length,n=Array(r),o=0;o<r;o++)n[o]=arguments[o];let s=0,a="";for(;s<n.length;)(e=n[s++])&&(t=h(e))&&(a&&(a+=" "),a+=t);return a},h=e=>{let t;if("string"==typeof e)return e;let r="";for(let n=0;n<e.length;n++)e[n]&&(t=h(e[n]))&&(r&&(r+=" "),r+=t);return r},v=[],y=e=>{let t=t=>t[e]||v;return t.isThemeGetter=!0,t},w=/^\[(?:(\w[\w-]*):)?(.+)\]$/i,x=/^\((?:(\w[\w-]*):)?(.+)\)$/i,k=/^\d+(?:\.\d+)?\/\d+(?:\.\d+)?$/,S=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,R=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,P=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,U=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,C=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,L=e=>k.test(e),z=e=>!!e&&!Number.isNaN(Number(e)),A=e=>!!e&&Number.isInteger(Number(e)),T=e=>e.endsWith("%")&&z(e.slice(0,-1)),j=e=>S.test(e),I=()=>!0,E=e=>R.test(e)&&!P.test(e),N=()=>!1,D=e=>U.test(e),M=e=>C.test(e),_=e=>!G(e)&&!K(e),B=e=>e.startsWith("@container")&&("/"===e[10]&&void 0!==e[11]||"s"===e[11]&&void 0!==e[16]&&e.startsWith("-size/",10)||"n"===e[11]&&void 0!==e[18]&&e.startsWith("-normal/",10)),O=e=>en(e,el,N),G=e=>w.test(e),H=e=>en(e,ei,E),W=e=>en(e,ec,z),q=e=>en(e,eu,I),$=e=>en(e,ed,N),Q=e=>en(e,es,N),V=e=>en(e,ea,M),F=e=>en(e,em,D),K=e=>x.test(e),J=e=>eo(e,ei),Y=e=>eo(e,ed),X=e=>eo(e,es),Z=e=>eo(e,el),ee=e=>eo(e,ea),et=e=>eo(e,em,!0),er=e=>eo(e,eu,!0),en=(e,t,r)=>{let n=w.exec(e);return!!n&&(n[1]?t(n[1]):r(n[2]))},eo=function(e,t){let r=arguments.length>2&&void 0!==arguments[2]&&arguments[2],n=x.exec(e);return!!n&&(n[1]?t(n[1]):r)},es=e=>"position"===e||"percentage"===e,ea=e=>"image"===e||"url"===e,el=e=>"length"===e||"size"===e||"bg-size"===e,ei=e=>"length"===e,ec=e=>"number"===e,ed=e=>"family-name"===e,eu=e=>"number"===e||"weight"===e,em=e=>"shadow"===e;Symbol.toStringTag;let ep=function(e){let t,r,a,l;for(var i=arguments.length,c=Array(i>1?i-1:0),d=1;d<i;d++)c[d-1]=arguments[d];let u=e=>{let n=r(e);if(n)return n;let o=((e,t)=>{let{parseClassName:r,getClassGroupId:n,getConflictingClassGroupIds:o,sortModifiers:s,postfixLookupClassGroupIds:a}=t,l=[],i=e.trim().split(g),c="";for(let e=i.length-1;e>=0;e-=1){let t,d=i[e],{isExternal:u,modifiers:m,hasImportantModifier:p,baseClassName:f,maybePostfixModifierPosition:g}=r(d);if(u){c=d+(c.length>0?" "+c:c);continue}let b=!!g;if(b){let e=(t=n(f.substring(0,g)))&&a[t]?n(f):void 0;e&&e!==t&&(t=e,b=!1)}else t=n(f);if(!t){if(!b||!(t=n(f))){c=d+(c.length>0?" "+c:c);continue}b=!1}let h=0===m.length?"":1===m.length?m[0]:s(m).join(":"),v=p?h+"!":h,y=v+t;if(l.indexOf(y)>-1)continue;l.push(y);let w=o(t,b);for(let e=0;e<w.length;++e){let t=w[e];l.push(v+t)}c=d+(c.length>0?" "+c:c)}return c})(e,t);return a(e,o),o};return l=i=>{let d;return r=(t={cache:(e=>{if(e<1)return{get:()=>void 0,set:()=>{}};let t=0,r=Object.create(null),n=Object.create(null),o=(o,s)=>{r[o]=s,++t>e&&(t=0,n=r,r=Object.create(null))};return{get(e){let t=r[e];return void 0!==t?t:void 0!==(t=n[e])?(o(e,t),t):void 0},set(e,t){e in r?r[e]=t:o(e,t)}}})((d=c.reduce((e,t)=>t(e),e())).cacheSize),parseClassName:(e=>{let{prefix:t,experimentalParseClassName:r}=e,n=e=>{let t,r=[],n=0,o=0,s=0,a=e.length;for(let l=0;l<a;l++){let a=e[l];if(0===n&&0===o){if(":"===a){r.push(e.slice(s,l)),s=l+1;continue}if("/"===a){t=l;continue}}"["===a?n++:"]"===a?n--:"("===a?o++:")"===a&&o--}let l=0===r.length?e:e.slice(s),i=l,c=!1;return l.endsWith("!")?(i=l.slice(0,-1),c=!0):l.startsWith("!")&&(i=l.slice(1),c=!0),f(r,c,i,t&&t>s?t-s:void 0)};if(t){let e=t+":",r=n;n=t=>t.startsWith(e)?r(t.slice(e.length)):f(p,!1,t,void 0,!0)}if(r){let e=n;n=t=>r({className:t,parseClassName:e})}return n})(d),sortModifiers:(e=>{let t=new Map;return e.orderSensitiveModifiers.forEach((e,r)=>{t.set(e,1e6+r)}),e=>{let r=[],n=[];for(let o=0;o<e.length;o++){let s=e[o],a="["===s[0],l=t.has(s);a||l?(n.length>0&&(n.sort(),r.push(...n),n=[]),r.push(s)):n.push(s)}return n.length>0&&(n.sort(),r.push(...n)),r}})(d),postfixLookupClassGroupIds:(e=>{let t=Object.create(null),r=e.postfixLookupClassGroups;if(r)for(let e=0;e<r.length;e++)t[r[e]]=!0;return t})(d),...(e=>{let t=(e=>{let{theme:t,classGroups:r}=e;return s(r,t)})(e),{conflictingClassGroups:r,conflictingClassGroupModifiers:a}=e;return{getClassGroupId:e=>{if(e.startsWith("[")&&e.endsWith("]")){let t;return -1===(t=e).slice(1,-1).indexOf(":")?void 0:(()=>{let e=t.slice(1,-1),r=e.indexOf(":"),n=e.slice(0,r);return n?"arbitrary.."+n:void 0})()}let r=e.split("-"),n=+(""===r[0]&&r.length>1);return o(r,n,t)},getConflictingClassGroupIds:(e,t)=>{if(t){let t=a[e],o=r[e];return t?o?((e,t)=>{let r=Array(e.length+t.length);for(let t=0;t<e.length;t++)r[t]=e[t];for(let n=0;n<t.length;n++)r[e.length+n]=t[n];return r})(o,t):t:o||n}return r[e]||n}}})(d)}).cache.get,a=t.cache.set,l=u,u(i)},function(){for(var e=arguments.length,t=Array(e),r=0;r<e;r++)t[r]=arguments[r];return l(b(...t))}}(()=>{let e=y("color"),t=y("font"),r=y("text"),n=y("font-weight"),o=y("tracking"),s=y("leading"),a=y("breakpoint"),l=y("container"),i=y("spacing"),c=y("radius"),d=y("shadow"),u=y("inset-shadow"),m=y("text-shadow"),p=y("drop-shadow"),f=y("blur"),g=y("perspective"),b=y("aspect"),h=y("ease"),v=y("animate"),w=()=>["auto","avoid","all","avoid-page","page","left","right","column"],x=()=>["center","top","bottom","left","right","top-left","left-top","top-right","right-top","bottom-right","right-bottom","bottom-left","left-bottom"],k=()=>[...x(),K,G],S=()=>["auto","hidden","clip","visible","scroll"],R=()=>["auto","contain","none"],P=()=>[K,G,i],U=()=>[L,"full","auto",...P()],C=()=>[A,"none","subgrid",K,G],E=()=>["auto",{span:["full",A,K,G]},A,K,G],N=()=>[A,"auto",K,G],D=()=>["auto","min","max","fr",K,G],M=()=>["start","end","center","between","around","evenly","stretch","baseline","center-safe","end-safe"],en=()=>["start","end","center","stretch","center-safe","end-safe"],eo=()=>["auto",...P()],es=()=>[L,"auto","full","dvw","dvh","lvw","lvh","svw","svh","min","max","fit",...P()],ea=()=>[L,"screen","full","dvw","lvw","svw","min","max","fit",...P()],el=()=>[L,"screen","full","lh","dvh","lvh","svh","min","max","fit",...P()],ei=()=>[e,K,G],ec=()=>[...x(),X,Q,{position:[K,G]}],ed=()=>["no-repeat",{repeat:["","x","y","space","round"]}],eu=()=>["auto","cover","contain",Z,O,{size:[K,G]}],em=()=>[T,J,H],ep=()=>["","none","full",c,K,G],ef=()=>["",z,J,H],eg=()=>["solid","dashed","dotted","double"],eb=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],eh=()=>[z,T,X,Q],ev=()=>["","none",f,K,G],ey=()=>["none",z,K,G],ew=()=>["none",z,K,G],ex=()=>[z,K,G],ek=()=>[L,"full",...P()];return{cacheSize:500,theme:{animate:["spin","ping","pulse","bounce"],aspect:["video"],blur:[j],breakpoint:[j],color:[I],container:[j],"drop-shadow":[j],ease:["in","out","in-out"],font:[_],"font-weight":["thin","extralight","light","normal","medium","semibold","bold","extrabold","black"],"inset-shadow":[j],leading:["none","tight","snug","normal","relaxed","loose"],perspective:["dramatic","near","normal","midrange","distant","none"],radius:[j],shadow:[j],spacing:["px",z],text:[j],"text-shadow":[j],tracking:["tighter","tight","normal","wide","wider","widest"]},classGroups:{aspect:[{aspect:["auto","square",L,G,K,b]}],container:["container"],"container-type":[{"@container":["","normal","size",K,G]}],"container-named":[B],columns:[{columns:[z,G,K,l]}],"break-after":[{"break-after":w()}],"break-before":[{"break-before":w()}],"break-inside":[{"break-inside":["auto","avoid","avoid-page","avoid-column"]}],"box-decoration":[{"box-decoration":["slice","clone"]}],box:[{box:["border","content"]}],display:["block","inline-block","inline","flex","inline-flex","table","inline-table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row-group","table-row","flow-root","grid","inline-grid","contents","list-item","hidden"],sr:["sr-only","not-sr-only"],float:[{float:["right","left","none","start","end"]}],clear:[{clear:["left","right","both","none","start","end"]}],isolation:["isolate","isolation-auto"],"object-fit":[{object:["contain","cover","fill","none","scale-down"]}],"object-position":[{object:k()}],overflow:[{overflow:S()}],"overflow-x":[{"overflow-x":S()}],"overflow-y":[{"overflow-y":S()}],overscroll:[{overscroll:R()}],"overscroll-x":[{"overscroll-x":R()}],"overscroll-y":[{"overscroll-y":R()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:U()}],"inset-x":[{"inset-x":U()}],"inset-y":[{"inset-y":U()}],start:[{"inset-s":U(),start:U()}],end:[{"inset-e":U(),end:U()}],"inset-bs":[{"inset-bs":U()}],"inset-be":[{"inset-be":U()}],top:[{top:U()}],right:[{right:U()}],bottom:[{bottom:U()}],left:[{left:U()}],visibility:["visible","invisible","collapse"],z:[{z:[A,"auto",K,G]}],basis:[{basis:[L,"full","auto",l,...P()]}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["nowrap","wrap","wrap-reverse"]}],flex:[{flex:[z,L,"auto","initial","none",G]}],grow:[{grow:["",z,K,G]}],shrink:[{shrink:["",z,K,G]}],order:[{order:[A,"first","last","none",K,G]}],"grid-cols":[{"grid-cols":C()}],"col-start-end":[{col:E()}],"col-start":[{"col-start":N()}],"col-end":[{"col-end":N()}],"grid-rows":[{"grid-rows":C()}],"row-start-end":[{row:E()}],"row-start":[{"row-start":N()}],"row-end":[{"row-end":N()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":D()}],"auto-rows":[{"auto-rows":D()}],gap:[{gap:P()}],"gap-x":[{"gap-x":P()}],"gap-y":[{"gap-y":P()}],"justify-content":[{justify:[...M(),"normal"]}],"justify-items":[{"justify-items":[...en(),"normal"]}],"justify-self":[{"justify-self":["auto",...en()]}],"align-content":[{content:["normal",...M()]}],"align-items":[{items:[...en(),{baseline:["","last"]}]}],"align-self":[{self:["auto",...en(),{baseline:["","last"]}]}],"place-content":[{"place-content":M()}],"place-items":[{"place-items":[...en(),"baseline"]}],"place-self":[{"place-self":["auto",...en()]}],p:[{p:P()}],px:[{px:P()}],py:[{py:P()}],ps:[{ps:P()}],pe:[{pe:P()}],pbs:[{pbs:P()}],pbe:[{pbe:P()}],pt:[{pt:P()}],pr:[{pr:P()}],pb:[{pb:P()}],pl:[{pl:P()}],m:[{m:eo()}],mx:[{mx:eo()}],my:[{my:eo()}],ms:[{ms:eo()}],me:[{me:eo()}],mbs:[{mbs:eo()}],mbe:[{mbe:eo()}],mt:[{mt:eo()}],mr:[{mr:eo()}],mb:[{mb:eo()}],ml:[{ml:eo()}],"space-x":[{"space-x":P()}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":P()}],"space-y-reverse":["space-y-reverse"],size:[{size:es()}],"inline-size":[{inline:["auto",...ea()]}],"min-inline-size":[{"min-inline":["auto",...ea()]}],"max-inline-size":[{"max-inline":["none",...ea()]}],"block-size":[{block:["auto",...el()]}],"min-block-size":[{"min-block":["auto",...el()]}],"max-block-size":[{"max-block":["none",...el()]}],w:[{w:[l,"screen",...es()]}],"min-w":[{"min-w":[l,"screen","none",...es()]}],"max-w":[{"max-w":[l,"screen","none","prose",{screen:[a]},...es()]}],h:[{h:["screen","lh",...es()]}],"min-h":[{"min-h":["screen","lh","none",...es()]}],"max-h":[{"max-h":["screen","lh",...es()]}],"font-size":[{text:["base",r,J,H]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:[n,er,q]}],"font-stretch":[{"font-stretch":["ultra-condensed","extra-condensed","condensed","semi-condensed","normal","semi-expanded","expanded","extra-expanded","ultra-expanded",T,G]}],"font-family":[{font:[Y,$,t]}],"font-features":[{"font-features":[G]}],"fvn-normal":["normal-nums"],"fvn-ordinal":["ordinal"],"fvn-slashed-zero":["slashed-zero"],"fvn-figure":["lining-nums","oldstyle-nums"],"fvn-spacing":["proportional-nums","tabular-nums"],"fvn-fraction":["diagonal-fractions","stacked-fractions"],tracking:[{tracking:[o,K,G]}],"line-clamp":[{"line-clamp":[z,"none",K,W]}],leading:[{leading:[s,...P()]}],"list-image":[{"list-image":["none",K,G]}],"list-style-position":[{list:["inside","outside"]}],"list-style-type":[{list:["disc","decimal","none",K,G]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"placeholder-color":[{placeholder:ei()}],"text-color":[{text:ei()}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...eg(),"wavy"]}],"text-decoration-thickness":[{decoration:[z,"from-font","auto",K,H]}],"text-decoration-color":[{decoration:ei()}],"underline-offset":[{"underline-offset":[z,"auto",K,G]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:P()}],"tab-size":[{tab:[A,K,G]}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",K,G]}],whitespace:[{whitespace:["normal","nowrap","pre","pre-line","pre-wrap","break-spaces"]}],break:[{break:["normal","words","all","keep"]}],wrap:[{wrap:["break-word","anywhere","normal"]}],hyphens:[{hyphens:["none","manual","auto"]}],content:[{content:["none",K,G]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:ec()}],"bg-repeat":[{bg:ed()}],"bg-size":[{bg:eu()}],"bg-image":[{bg:["none",{linear:[{to:["t","tr","r","br","b","bl","l","tl"]},A,K,G],radial:["",K,G],conic:[A,K,G]},ee,V]}],"bg-color":[{bg:ei()}],"gradient-from-pos":[{from:em()}],"gradient-via-pos":[{via:em()}],"gradient-to-pos":[{to:em()}],"gradient-from":[{from:ei()}],"gradient-via":[{via:ei()}],"gradient-to":[{to:ei()}],rounded:[{rounded:ep()}],"rounded-s":[{"rounded-s":ep()}],"rounded-e":[{"rounded-e":ep()}],"rounded-t":[{"rounded-t":ep()}],"rounded-r":[{"rounded-r":ep()}],"rounded-b":[{"rounded-b":ep()}],"rounded-l":[{"rounded-l":ep()}],"rounded-ss":[{"rounded-ss":ep()}],"rounded-se":[{"rounded-se":ep()}],"rounded-ee":[{"rounded-ee":ep()}],"rounded-es":[{"rounded-es":ep()}],"rounded-tl":[{"rounded-tl":ep()}],"rounded-tr":[{"rounded-tr":ep()}],"rounded-br":[{"rounded-br":ep()}],"rounded-bl":[{"rounded-bl":ep()}],"border-w":[{border:ef()}],"border-w-x":[{"border-x":ef()}],"border-w-y":[{"border-y":ef()}],"border-w-s":[{"border-s":ef()}],"border-w-e":[{"border-e":ef()}],"border-w-bs":[{"border-bs":ef()}],"border-w-be":[{"border-be":ef()}],"border-w-t":[{"border-t":ef()}],"border-w-r":[{"border-r":ef()}],"border-w-b":[{"border-b":ef()}],"border-w-l":[{"border-l":ef()}],"divide-x":[{"divide-x":ef()}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":ef()}],"divide-y-reverse":["divide-y-reverse"],"border-style":[{border:[...eg(),"hidden","none"]}],"divide-style":[{divide:[...eg(),"hidden","none"]}],"border-color":[{border:ei()}],"border-color-x":[{"border-x":ei()}],"border-color-y":[{"border-y":ei()}],"border-color-s":[{"border-s":ei()}],"border-color-e":[{"border-e":ei()}],"border-color-bs":[{"border-bs":ei()}],"border-color-be":[{"border-be":ei()}],"border-color-t":[{"border-t":ei()}],"border-color-r":[{"border-r":ei()}],"border-color-b":[{"border-b":ei()}],"border-color-l":[{"border-l":ei()}],"divide-color":[{divide:ei()}],"outline-style":[{outline:[...eg(),"none","hidden"]}],"outline-offset":[{"outline-offset":[z,K,G]}],"outline-w":[{outline:["",z,J,H]}],"outline-color":[{outline:ei()}],shadow:[{shadow:["","none",d,et,F]}],"shadow-color":[{shadow:ei()}],"inset-shadow":[{"inset-shadow":["none",u,et,F]}],"inset-shadow-color":[{"inset-shadow":ei()}],"ring-w":[{ring:ef()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:ei()}],"ring-offset-w":[{"ring-offset":[z,H]}],"ring-offset-color":[{"ring-offset":ei()}],"inset-ring-w":[{"inset-ring":ef()}],"inset-ring-color":[{"inset-ring":ei()}],"text-shadow":[{"text-shadow":["none",m,et,F]}],"text-shadow-color":[{"text-shadow":ei()}],opacity:[{opacity:[z,K,G]}],"mix-blend":[{"mix-blend":[...eb(),"plus-darker","plus-lighter"]}],"bg-blend":[{"bg-blend":eb()}],"mask-clip":[{"mask-clip":["border","padding","content","fill","stroke","view"]},"mask-no-clip"],"mask-composite":[{mask:["add","subtract","intersect","exclude"]}],"mask-image-linear-pos":[{"mask-linear":[z]}],"mask-image-linear-from-pos":[{"mask-linear-from":eh()}],"mask-image-linear-to-pos":[{"mask-linear-to":eh()}],"mask-image-linear-from-color":[{"mask-linear-from":ei()}],"mask-image-linear-to-color":[{"mask-linear-to":ei()}],"mask-image-t-from-pos":[{"mask-t-from":eh()}],"mask-image-t-to-pos":[{"mask-t-to":eh()}],"mask-image-t-from-color":[{"mask-t-from":ei()}],"mask-image-t-to-color":[{"mask-t-to":ei()}],"mask-image-r-from-pos":[{"mask-r-from":eh()}],"mask-image-r-to-pos":[{"mask-r-to":eh()}],"mask-image-r-from-color":[{"mask-r-from":ei()}],"mask-image-r-to-color":[{"mask-r-to":ei()}],"mask-image-b-from-pos":[{"mask-b-from":eh()}],"mask-image-b-to-pos":[{"mask-b-to":eh()}],"mask-image-b-from-color":[{"mask-b-from":ei()}],"mask-image-b-to-color":[{"mask-b-to":ei()}],"mask-image-l-from-pos":[{"mask-l-from":eh()}],"mask-image-l-to-pos":[{"mask-l-to":eh()}],"mask-image-l-from-color":[{"mask-l-from":ei()}],"mask-image-l-to-color":[{"mask-l-to":ei()}],"mask-image-x-from-pos":[{"mask-x-from":eh()}],"mask-image-x-to-pos":[{"mask-x-to":eh()}],"mask-image-x-from-color":[{"mask-x-from":ei()}],"mask-image-x-to-color":[{"mask-x-to":ei()}],"mask-image-y-from-pos":[{"mask-y-from":eh()}],"mask-image-y-to-pos":[{"mask-y-to":eh()}],"mask-image-y-from-color":[{"mask-y-from":ei()}],"mask-image-y-to-color":[{"mask-y-to":ei()}],"mask-image-radial":[{"mask-radial":[K,G]}],"mask-image-radial-from-pos":[{"mask-radial-from":eh()}],"mask-image-radial-to-pos":[{"mask-radial-to":eh()}],"mask-image-radial-from-color":[{"mask-radial-from":ei()}],"mask-image-radial-to-color":[{"mask-radial-to":ei()}],"mask-image-radial-shape":[{"mask-radial":["circle","ellipse"]}],"mask-image-radial-size":[{"mask-radial":[{closest:["side","corner"],farthest:["side","corner"]}]}],"mask-image-radial-pos":[{"mask-radial-at":x()}],"mask-image-conic-pos":[{"mask-conic":[z]}],"mask-image-conic-from-pos":[{"mask-conic-from":eh()}],"mask-image-conic-to-pos":[{"mask-conic-to":eh()}],"mask-image-conic-from-color":[{"mask-conic-from":ei()}],"mask-image-conic-to-color":[{"mask-conic-to":ei()}],"mask-mode":[{mask:["alpha","luminance","match"]}],"mask-origin":[{"mask-origin":["border","padding","content","fill","stroke","view"]}],"mask-position":[{mask:ec()}],"mask-repeat":[{mask:ed()}],"mask-size":[{mask:eu()}],"mask-type":[{"mask-type":["alpha","luminance"]}],"mask-image":[{mask:["none",K,G]}],filter:[{filter:["","none",K,G]}],blur:[{blur:ev()}],brightness:[{brightness:[z,K,G]}],contrast:[{contrast:[z,K,G]}],"drop-shadow":[{"drop-shadow":["","none",p,et,F]}],"drop-shadow-color":[{"drop-shadow":ei()}],grayscale:[{grayscale:["",z,K,G]}],"hue-rotate":[{"hue-rotate":[z,K,G]}],invert:[{invert:["",z,K,G]}],saturate:[{saturate:[z,K,G]}],sepia:[{sepia:["",z,K,G]}],"backdrop-filter":[{"backdrop-filter":["","none",K,G]}],"backdrop-blur":[{"backdrop-blur":ev()}],"backdrop-brightness":[{"backdrop-brightness":[z,K,G]}],"backdrop-contrast":[{"backdrop-contrast":[z,K,G]}],"backdrop-grayscale":[{"backdrop-grayscale":["",z,K,G]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[z,K,G]}],"backdrop-invert":[{"backdrop-invert":["",z,K,G]}],"backdrop-opacity":[{"backdrop-opacity":[z,K,G]}],"backdrop-saturate":[{"backdrop-saturate":[z,K,G]}],"backdrop-sepia":[{"backdrop-sepia":["",z,K,G]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":P()}],"border-spacing-x":[{"border-spacing-x":P()}],"border-spacing-y":[{"border-spacing-y":P()}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["","all","colors","opacity","shadow","transform","none",K,G]}],"transition-behavior":[{transition:["normal","discrete"]}],duration:[{duration:[z,"initial",K,G]}],ease:[{ease:["linear","initial",h,K,G]}],delay:[{delay:[z,K,G]}],animate:[{animate:["none",v,K,G]}],backface:[{backface:["hidden","visible"]}],perspective:[{perspective:[g,K,G]}],"perspective-origin":[{"perspective-origin":k()}],rotate:[{rotate:ey()}],"rotate-x":[{"rotate-x":ey()}],"rotate-y":[{"rotate-y":ey()}],"rotate-z":[{"rotate-z":ey()}],scale:[{scale:ew()}],"scale-x":[{"scale-x":ew()}],"scale-y":[{"scale-y":ew()}],"scale-z":[{"scale-z":ew()}],"scale-3d":["scale-3d"],skew:[{skew:ex()}],"skew-x":[{"skew-x":ex()}],"skew-y":[{"skew-y":ex()}],transform:[{transform:[K,G,"","none","gpu","cpu"]}],"transform-origin":[{origin:k()}],"transform-style":[{transform:["3d","flat"]}],translate:[{translate:ek()}],"translate-x":[{"translate-x":ek()}],"translate-y":[{"translate-y":ek()}],"translate-z":[{"translate-z":ek()}],"translate-none":["translate-none"],zoom:[{zoom:[A,K,G]}],accent:[{accent:ei()}],appearance:[{appearance:["none","auto"]}],"caret-color":[{caret:ei()}],"color-scheme":[{scheme:["normal","dark","light","light-dark","only-dark","only-light"]}],cursor:[{cursor:["auto","default","pointer","wait","text","move","help","not-allowed","none","context-menu","progress","cell","crosshair","vertical-text","alias","copy","no-drop","grab","grabbing","all-scroll","col-resize","row-resize","n-resize","e-resize","s-resize","w-resize","ne-resize","nw-resize","se-resize","sw-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","zoom-in","zoom-out",K,G]}],"field-sizing":[{"field-sizing":["fixed","content"]}],"pointer-events":[{"pointer-events":["auto","none"]}],resize:[{resize:["none","","y","x"]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scrollbar-thumb-color":[{"scrollbar-thumb":ei()}],"scrollbar-track-color":[{"scrollbar-track":ei()}],"scrollbar-gutter":[{"scrollbar-gutter":["auto","stable","both"]}],"scrollbar-w":[{scrollbar:["auto","thin","none"]}],"scroll-m":[{"scroll-m":P()}],"scroll-mx":[{"scroll-mx":P()}],"scroll-my":[{"scroll-my":P()}],"scroll-ms":[{"scroll-ms":P()}],"scroll-me":[{"scroll-me":P()}],"scroll-mbs":[{"scroll-mbs":P()}],"scroll-mbe":[{"scroll-mbe":P()}],"scroll-mt":[{"scroll-mt":P()}],"scroll-mr":[{"scroll-mr":P()}],"scroll-mb":[{"scroll-mb":P()}],"scroll-ml":[{"scroll-ml":P()}],"scroll-p":[{"scroll-p":P()}],"scroll-px":[{"scroll-px":P()}],"scroll-py":[{"scroll-py":P()}],"scroll-ps":[{"scroll-ps":P()}],"scroll-pe":[{"scroll-pe":P()}],"scroll-pbs":[{"scroll-pbs":P()}],"scroll-pbe":[{"scroll-pbe":P()}],"scroll-pt":[{"scroll-pt":P()}],"scroll-pr":[{"scroll-pr":P()}],"scroll-pb":[{"scroll-pb":P()}],"scroll-pl":[{"scroll-pl":P()}],"snap-align":[{snap:["start","end","center","align-none"]}],"snap-stop":[{snap:["normal","always"]}],"snap-type":[{snap:["none","x","y","both"]}],"snap-strictness":[{snap:["mandatory","proximity"]}],touch:[{touch:["auto","none","manipulation"]}],"touch-x":[{"touch-pan":["x","left","right"]}],"touch-y":[{"touch-pan":["y","up","down"]}],"touch-pz":["touch-pinch-zoom"],select:[{select:["none","text","all","auto"]}],"will-change":[{"will-change":["auto","scroll","contents","transform",K,G]}],fill:[{fill:["none",...ei()]}],"stroke-w":[{stroke:[z,J,H,W]}],stroke:[{stroke:["none",...ei()]}],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{"container-named":["container-type"],overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","inset-bs","inset-be","start","end","top","right","bottom","left"],"inset-x":["right","left"],"inset-y":["top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pbs","pbe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mbs","mbe","mt","mr","mb","ml"],mx:["mr","ml"],my:["mt","mb"],size:["w","h"],"font-size":["leading"],"fvn-normal":["fvn-ordinal","fvn-slashed-zero","fvn-figure","fvn-spacing","fvn-fraction"],"fvn-ordinal":["fvn-normal"],"fvn-slashed-zero":["fvn-normal"],"fvn-figure":["fvn-normal"],"fvn-spacing":["fvn-normal"],"fvn-fraction":["fvn-normal"],"line-clamp":["display","overflow"],rounded:["rounded-s","rounded-e","rounded-t","rounded-r","rounded-b","rounded-l","rounded-ss","rounded-se","rounded-ee","rounded-es","rounded-tl","rounded-tr","rounded-br","rounded-bl"],"rounded-s":["rounded-ss","rounded-es"],"rounded-e":["rounded-se","rounded-ee"],"rounded-t":["rounded-tl","rounded-tr"],"rounded-r":["rounded-tr","rounded-br"],"rounded-b":["rounded-br","rounded-bl"],"rounded-l":["rounded-tl","rounded-bl"],"border-spacing":["border-spacing-x","border-spacing-y"],"border-w":["border-w-x","border-w-y","border-w-s","border-w-e","border-w-bs","border-w-be","border-w-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-r","border-w-l"],"border-w-y":["border-w-t","border-w-b"],"border-color":["border-color-x","border-color-y","border-color-s","border-color-e","border-color-bs","border-color-be","border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-r","border-color-l"],"border-color-y":["border-color-t","border-color-b"],translate:["translate-x","translate-y","translate-none"],"translate-none":["translate","translate-x","translate-y","translate-z"],"scroll-m":["scroll-mx","scroll-my","scroll-ms","scroll-me","scroll-mbs","scroll-mbe","scroll-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-mr","scroll-ml"],"scroll-my":["scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pbs","scroll-pbe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-pr","scroll-pl"],"scroll-py":["scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]},postfixLookupClassGroups:["container-type"],orderSensitiveModifiers:["*","**","after","backdrop","before","details-content","file","first-letter","first-line","marker","placeholder","selection"]}});function ef(){for(var e=arguments.length,r=Array(e),n=0;n<e;n++)r[n]=arguments[n];return ep(t(r))}},92369,66673,59528,6194,58762,10588,74078,18122,41176,44308,65866,70112,88755,59539,62697,e=>{"use strict";let t;e.s(["Button",()=>ew,"buttonVariants",()=>ev],92369);var r=e.i(59992);e.i(75526);var n=e.i(65765);function o(){return"undefined"!=typeof window}function s(e){return i(e)?(e.nodeName||"").toLowerCase():"#document"}function a(e){var t;return(null==e||null==(t=e.ownerDocument)?void 0:t.defaultView)||window}function l(e){var t;return null==(t=(i(e)?e.ownerDocument:e.document)||window.document)?void 0:t.documentElement}function i(e){return!!o()&&(e instanceof Node||e instanceof a(e).Node)}function c(e){return!!o()&&(e instanceof Element||e instanceof a(e).Element)}function d(e){return!!o()&&(e instanceof HTMLElement||e instanceof a(e).HTMLElement)}function u(e){return!!o()&&"undefined"!=typeof ShadowRoot&&(e instanceof ShadowRoot||e instanceof a(e).ShadowRoot)}function m(e){let{overflow:t,overflowX:r,overflowY:n,display:o}=k(e);return/auto|scroll|overlay|hidden|clip/.test(t+n+r)&&"inline"!==o&&"contents"!==o}function p(e){return/^(table|td|th)$/.test(s(e))}function f(e){try{if(e.matches(":popover-open"))return!0}catch(e){}try{return e.matches(":modal")}catch(e){return!1}}e.s(["useButton",()=>Y],44308),e.s(["getComputedStyle",()=>k,"getContainingBlock",()=>y,"getDocumentElement",()=>l,"getFrameElement",()=>P,"getNodeName",()=>s,"getNodeScroll",()=>S,"getOverflowAncestors",()=>function e(t,r,n){var o;void 0===r&&(r=[]),void 0===n&&(n=!0);let s=function e(t){let r=R(t);return x(r)?t.ownerDocument?t.ownerDocument.body:t.body:d(r)&&m(r)?r:e(r)}(t),l=s===(null==(o=t.ownerDocument)?void 0:o.body),i=a(s);if(!l)return r.concat(s,e(s,[],n));{let t=P(i);return r.concat(i,i.visualViewport||[],m(s)?s:[],t&&n?e(t):[])}},"getParentNode",()=>R,"getWindow",()=>a,"isContainingBlock",()=>v,"isElement",()=>c,"isHTMLElement",()=>d,"isLastTraversableNode",()=>x,"isNode",()=>i,"isOverflowElement",()=>m,"isShadowRoot",()=>u,"isTableElement",()=>p,"isTopLayer",()=>f,"isWebKit",()=>w],66673);let g=/transform|translate|scale|rotate|perspective|filter/,b=/paint|layout|strict|content/,h=e=>!!e&&"none"!==e;function v(e){let t=c(e)?k(e):e;return h(t.transform)||h(t.translate)||h(t.scale)||h(t.rotate)||h(t.perspective)||!w()&&(h(t.backdropFilter)||h(t.filter))||g.test(t.willChange||"")||b.test(t.contain||"")}function y(e){let t=R(e);for(;d(t)&&!x(t);){if(v(t))return t;if(f(t))break;t=R(t)}return null}function w(){return null==t&&(t="undefined"!=typeof CSS&&CSS.supports&&CSS.supports("-webkit-backdrop-filter","none")),t}function x(e){return/^(html|body|#document)$/.test(s(e))}function k(e){return a(e).getComputedStyle(e)}function S(e){return c(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.scrollX,scrollTop:e.scrollY}}function R(e){if("html"===s(e))return e;let t=e.assignedSlot||e.parentNode||u(e)&&e.host||l(e);return u(t)?t.host:t}function P(e){return e.parent&&Object.getPrototypeOf(e.parent)?e.frameElement:null}e.s(["useStableCallback",()=>T],58762),e.s(["SafeReact",()=>U],59528);let U={...n};e.s(["useRefWithInit",()=>L],6194);let C={};function L(e,t){let r=n.useRef(C);return r.current===C&&(r.current=e(t)),r}let z=U.useInsertionEffect,A=z&&z!==U.useLayoutEffect?z:e=>e();function T(e){let t=L(j).current;return t.next=e,A(t.effect),t.trampoline}function j(){let e={next:void 0,callback:I,trampoline:function(){for(var t,r=arguments.length,n=Array(r),o=0;o<r;o++)n[o]=arguments[o];return null==(t=e.callback)?void 0:t.call(e,...n)},effect:()=>{e.callback=e.next}};return e}function I(){}e.s(["useIsoLayoutEffect",()=>E],10588);let E="undefined"!=typeof document?n.useLayoutEffect:()=>{};function N(e,t){return e&&!t?e:!e&&t?t:e||t?{...e,...t}:void 0}e.s(["makeEventPreventable",()=>$,"mergeClassNames",()=>Q,"mergeProps",()=>M,"mergePropsN",()=>_],74078);let D={};function M(e,t,r,n,o){if(!r&&!n&&!o&&!e)return B(t);let s=B(e);return t&&(s=O(s,t)),r&&(s=O(s,r)),n&&(s=O(s,n)),o&&(s=O(s,o)),s}function _(e){if(0===e.length)return D;if(1===e.length)return B(e[0]);let t=B(e[0]);for(let r=1;r<e.length;r+=1)t=O(t,e[r]);return t}function B(e){return H(e)?{...W(e,D)}:function(e){let t={...e};for(let e in t){let r=t[e];G(e,r)&&(t[e]=q(r))}return t}(e)}function O(e,t){return H(t)?W(t,e):function(e,t){if(!t)return e;for(let r in t){let n=t[r];switch(r){case"style":e[r]=N(e.style,n);break;case"className":e[r]=Q(e.className,n);break;default:G(r,n)?e[r]=function(e,t){return t?e?function(){for(var r=arguments.length,n=Array(r),o=0;o<r;o++)n[o]=arguments[o];let s=n[0];if(V(s)){$(s);let r=t(...n);return s.baseUIHandlerPrevented||null==e||e(...n),r}let a=t(...n);return null==e||e(...n),a}:q(t):e}(e[r],n):e[r]=n}}return e}(e,t)}function G(e,t){let r=e.charCodeAt(0),n=e.charCodeAt(1),o=e.charCodeAt(2);return 111===r&&110===n&&o>=65&&o<=90&&("function"==typeof t||void 0===t)}function H(e){return"function"==typeof e}function W(e,t){return H(e)?e(t):null!=e?e:D}function q(e){return e?function(){for(var t=arguments.length,r=Array(t),n=0;n<t;n++)r[n]=arguments[n];let o=r[0];return V(o)&&$(o),e(...r)}:e}function $(e){return e.preventBaseUIHandler=()=>{e.baseUIHandlerPrevented=!0},e}function Q(e,t){return t?e?t+" "+e:t:e}function V(e){return null!=e&&"object"==typeof e&&"nativeEvent"in e}e.s(["CompositeRootContext",()=>K,"useCompositeRootContext",()=>J],41176),e.s(["default",()=>F],18122);let F=function(e){for(var t=arguments.length,r=Array(t>1?t-1:0),n=1;n<t;n++)r[n-1]=arguments[n];let o=new URL("https://base-ui.com/production-error");return o.searchParams.set("code",e.toString()),r.forEach(e=>o.searchParams.append("args[]",e)),"".concat("Base UI"," error #").concat(e,"; visit ").concat(o," for the full message.")},K=n.createContext(void 0);function J(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=n.useContext(K);if(void 0===t&&!e)throw Error(F(16));return t}function Y(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},{disabled:t=!1,focusableWhenDisabled:r,tabIndex:o=0,native:s=!0,composite:a}=e,l=n.useRef(null),i=J(!0),c=null!=a?a:void 0!==i,{props:d}=function(e){let{focusableWhenDisabled:t,disabled:r,composite:o=!1,tabIndex:s=0,isNativeButton:a}=e,l=o&&!1!==t,i=o&&!1===t;return{props:n.useMemo(()=>{let e={onKeyDown(e){r&&t&&"Tab"!==e.key&&e.preventDefault()}};return o||(e.tabIndex=s,!a&&r&&(e.tabIndex=t?s:-1)),(a&&(t||l)||!a&&r)&&(e["aria-disabled"]=r),a&&(!t||i)&&(e.disabled=r),e},[o,r,t,l,i,a,s])}}({focusableWhenDisabled:r,disabled:t,composite:c,tabIndex:o,isNativeButton:s}),u=n.useCallback(()=>{let e=l.current;X(e)&&c&&t&&void 0===d.disabled&&e.disabled&&(e.disabled=!1)},[t,d.disabled,c]);return E(u,[u]),{getButtonProps:n.useCallback(function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},{onClick:r,onMouseDown:n,onKeyUp:o,onKeyDown:a,onPointerDown:l,...i}=e;return M({onClick(e){if(t)return void e.preventDefault();null==r||r(e)},onMouseDown(e){t||null==n||n(e)},onKeyDown(e){var n;if(t||($(e),null==a||a(e),e.baseUIHandlerPrevented))return;let o=e.target===e.currentTarget,l=e.currentTarget,i=X(l),d=!s&&!!((null==(n=l)?void 0:n.tagName)==="A"&&(null==n?void 0:n.href)),u=o&&(s?i:!d),m="Enter"===e.key,p=" "===e.key,f=l.getAttribute("role"),g=(null==f?void 0:f.startsWith("menuitem"))||"option"===f||"gridcell"===f;if(o&&c&&p){if(e.defaultPrevented&&g)return;e.preventDefault(),d||s&&i?(l.click(),e.preventBaseUIHandler()):u&&(null==r||r(e),e.preventBaseUIHandler());return}u&&(!s&&(p||m)&&e.preventDefault(),!s&&m&&(null==r||r(e)))},onKeyUp(e){if(!t){if($(e),null==o||o(e),e.target===e.currentTarget&&s&&c&&X(e.currentTarget)&&" "===e.key)return void e.preventDefault();!e.baseUIHandlerPrevented&&(e.target!==e.currentTarget||s||c||" "!==e.key||null==r||r(e))}},onPointerDown(e){if(t)return void e.preventDefault();null==l||l(e)}},s?{type:"button"}:{role:"button"},d,i)},[t,d,c,s]),buttonRef:T(e=>{l.current=e,u()})}}function X(e){return d(e)&&"BUTTON"===e.tagName}function Z(e,t,r,n){var o,s,a,l,i;let c=L(et).current;return o=c,s=e,a=t,l=r,i=n,(o.refs[0]!==s||o.refs[1]!==a||o.refs[2]!==l||o.refs[3]!==i)&&er(c,[e,t,r,n]),c.callback}function ee(e){var t,r;let n=L(et).current;return t=n,r=e,(t.refs.length!==r.length||t.refs.some((e,t)=>e!==r[t]))&&er(n,e),n.callback}function et(){return{callback:null,cleanup:null,refs:[]}}function er(e,t){if(e.refs=t,t.every(e=>null==e)){e.callback=null;return}e.callback=r=>{if(e.cleanup&&(e.cleanup(),e.cleanup=null),null!=r){let n=Array(t.length).fill(null);for(let e=0;e<t.length;e+=1){let o=t[e];if(null!=o)switch(typeof o){case"function":{let t=o(r);"function"==typeof t&&(n[e]=t);break}case"object":o.current=r}}e.cleanup=()=>{for(let e=0;e<t.length;e+=1){let r=t[e];if(null!=r)switch(typeof r){case"function":{let t=n[e];"function"==typeof t?t():r(null);break}case"object":r.current=null}}}}}}e.s(["useRenderElement",()=>ec],59539),e.s(["useMergedRefs",()=>Z,"useMergedRefsN",()=>ee],65866),e.s(["isReactVersionAtLeast",()=>eo],70112);let en=parseInt(n.version,10);function eo(e){return en>=e}function es(e){var t;if(!n.isValidElement(e))return null;let r=e.props;return null!=(t=en>=19?null==r?void 0:r.ref:e.ref)?t:null}function ea(){}e.s(["EMPTY_ARRAY",()=>el,"EMPTY_OBJECT",()=>ei,"NOOP",()=>ea],88755);let el=Object.freeze([]),ei=Object.freeze({});function ec(e,t){var r;let o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},s=t.render,a=function(e){var t,r;let n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},{className:o,style:s,render:a}=e,{state:l=ei,ref:i,props:c,stateAttributesMapping:d,enabled:u=!0}=n,m=u?"function"==typeof o?o(l):o:void 0,p=u?"function"==typeof s?s(l):s:void 0,f=u?function(e,t){let r={};for(let n in e){let o=e[n];if(null==t?void 0:t.hasOwnProperty(n)){let e=t[n](o);null!=e&&Object.assign(r,e);continue}!0===o?r["data-".concat(n.toLowerCase())]="":o&&(r["data-".concat(n.toLowerCase())]=o.toString())}return r}(l,d):ei,g=u&&c?Array.isArray(r=c)?_(r):M(void 0,r):void 0,b=u?null!=(t=N(f,g))?t:{}:ei;return("undefined"!=typeof document&&(u?Array.isArray(i)?b.ref=ee([b.ref,es(a),...i]):b.ref=Z(b.ref,es(a),i):Z(null,null)),u)?(void 0!==m&&(b.className=Q(b.className,m)),void 0!==p&&(b.style=N(b.style,p)),b):ei}(t,o);return!1===o.enabled?null:function(e,t,r,o){if(t){if("function"==typeof t)return t(r,o);let e=M(r,t.props);e.ref=r.ref;let s=t;return(null==s?void 0:s.$$typeof)===ed&&(s=n.Children.toArray(t)[0]),n.cloneElement(s,e)}if(e&&"string"==typeof e){var s,a;return s=e,a=r,"button"===s?(0,n.createElement)("button",{type:"button",...a,key:a.key}):"img"===s?(0,n.createElement)("img",{alt:"",...a,key:a.key}):n.createElement(s,a)}throw Error(F(8))}(e,s,a,null!=(r=o.state)?r:ei)}let ed=Symbol.for("react.lazy"),eu=n.forwardRef(function(e,t){let{render:r,className:n,disabled:o=!1,focusableWhenDisabled:s=!1,nativeButton:a=!0,style:l,...i}=e,{getButtonProps:c,buttonRef:d}=Y({disabled:o,focusableWhenDisabled:s,native:a});return ec("button",e,{state:{disabled:o},ref:[t,d],props:[i,c]})});e.s(["cva",()=>eg],62697);var em=e.i(45779);let ep=e=>"boolean"==typeof e?"".concat(e):0===e?"0":e,ef=em.clsx,eg=(e,t)=>r=>{var n;if((null==t?void 0:t.variants)==null)return ef(e,null==r?void 0:r.class,null==r?void 0:r.className);let{variants:o,defaultVariants:s}=t,a=Object.keys(o).map(e=>{let t=null==r?void 0:r[e],n=null==s?void 0:s[e];if(null===t)return null;let a=ep(t)||ep(n);return o[e][a]}),l=r&&Object.entries(r).reduce((e,t)=>{let[r,n]=t;return void 0===n||(e[r]=n),e},{});return ef(e,a,null==t||null==(n=t.compoundVariants)?void 0:n.reduce((e,t)=>{let{class:r,className:n,...o}=t;return Object.entries(o).every(e=>{let[t,r]=e;return Array.isArray(r)?r.includes({...s,...l}[t]):({...s,...l})[t]===r})?[...e,r,n]:e},[]),null==r?void 0:r.class,null==r?void 0:r.className)};var eb=e.i(96745);let eh=e=>"[&_svg:not([class*='size-']):not([width])]:".concat(e),ev=eg((0,eb.cn)("group/button inline-flex shrink-0 items-center justify-center rounded cursor-pointer !pl-[16px] !pr-[16px]","[&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg]:align-middle",eh("size-4"),"[&_svg]:stroke-current [&_svg[fill=none]_path]:fill-none [&_svg:not([fill=none])_path]:fill-current"),{variants:{variant:{default:"bg-[var(--ds-color-accent)] border-0 hover:bg-[var(--ds-color-accent-hover)]",outline:"!border !border-solid !border-[var(--ds-color-accent)] !rounded bg-[var(--surface-1)] hover:bg-[var(--surface-1)] hover:border-[var(--ds-color-accent-hover)] aria-expanded:bg-[var(--surface-1)] aria-expanded:border-[var(--ds-color-accent-hover)] dark:border-input dark:bg-input/30 dark:hover:bg-input/50",secondary:"bg-secondary hover:bg-secondary/80 aria-expanded:bg-secondary",ghost:"hover:bg-muted aria-expanded:bg-muted dark:hover:bg-muted/50",destructive:"bg-destructive/10 hover:bg-destructive/20 focus-visible:border-destructive/40 focus-visible:ring-destructive/20 dark:bg-destructive/20 dark:hover:bg-destructive/30 dark:focus-visible:ring-destructive/40",link:"underline-offset-4 hover:underline",plain:"bg-transparent border-0","plain-outline":"bg-[var(--surface-1)] !border !border-solid !border-[var(--ds-color-border-default)] !rounded hover:bg-[var(--surface-1)] hover:!border-[var(--ds-color-accent)]"},size:{default:"h-7 gap-1.5 px-2.5 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2",xs:"h-6 gap-1 rounded-[min(var(--radius-md),12px)] px-2 text-xs in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 ".concat(eh("size-3")),sm:"h-7 gap-1 rounded-[min(var(--radius-md),14px)] px-2.5 text-[14px] in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 ".concat(eh("size-3.5")),lg:"h-8 gap-1.5 px-2.5 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2",icon:"size-8 pl-[0] pr-[0]","icon-xs":"size-6 rounded-[min(var(--radius-md),10px)] in-data-[slot=button-group]:rounded-lg ".concat(eh("size-3")),"icon-sm":"size-7 rounded-[min(var(--radius-md),12px)] in-data-[slot=button-group]:rounded-lg","icon-lg":"size-9"}},defaultVariants:{variant:"default",size:"default"}}),ey={default:"text-[var(--surface-1)] hover:text-[var(--surface-1)]",outline:"text-[var(--ds-color-accent)] hover:text-[var(--ds-color-accent-hover)] aria-expanded:text-[var(--ds-color-accent-hover)]",secondary:"text-secondary-foreground aria-expanded:text-secondary-foreground",ghost:"hover:text-foreground aria-expanded:text-foreground",destructive:"text-destructive",link:"text-primary",plain:"text-[var(--ds-text)]","plain-outline":"text-[var(--ds-text)] hover:text-[var(--ds-color-accent)]"};function ew(e){let{className:t,variant:n="default",size:o="default",...s}=e,a=null!=n?n:"default",l=null!=o?o:"default",i="icon"===l?void 0:ey[a];return(0,r.jsx)(eu,{"data-slot":"button","data-size":l,className:(0,eb.cn)(ev({variant:a,size:l}),i,t),...s})}},65486,e=>{"use strict";e.s(["Dialog",()=>i,"DialogBody",()=>f,"DialogClose",()=>g,"DialogContent",()=>d,"DialogDescription",()=>p,"DialogHeader",()=>u,"DialogTitle",()=>m]);var t=e.i(59992),r=e.i(65765),n=e.i(33751),o=e.i(96745),s=e.i(87655);let a=r.createContext(null);function l(){let e=r.useContext(a);if(!e)throw Error("Dialog components must be used inside <Dialog>.");return e}function i(e){let{open:r,onOpenChange:n,children:o}=e;return(0,t.jsx)(a.Provider,{value:{open:r,onOpenChange:n},children:o})}function c(e){let{children:t}=e;return"undefined"==typeof document?null:(0,n.createPortal)(t,document.body)}function d(e){let{className:n,children:s,"aria-labelledby":a}=e,{open:i,onOpenChange:d}=l();return(r.useEffect(()=>{if(!i)return;let e=e=>{"Escape"===e.key&&d(!1)},t=document.body.style.overflow;return document.body.style.overflow="hidden",window.addEventListener("keydown",e),()=>{document.body.style.overflow=t,window.removeEventListener("keydown",e)}},[i,d]),i)?(0,t.jsxs)(c,{children:[(0,t.jsx)("div",{className:"fixed inset-0 z-[10000] animate-[backdropIn_0.2s_ease-out] bg-black/45",onClick:()=>d(!1),"aria-hidden":!0}),(0,t.jsx)("div",{className:"fixed inset-0 z-[10000] flex items-center justify-center p-4",children:(0,t.jsx)("div",{role:"dialog","aria-modal":"true","aria-labelledby":a,className:(0,o.cn)("flex max-h-[92vh] w-full max-w-[760px] animate-[modalIn_0.2s_ease-out] flex-col overflow-hidden rounded-2xl border border-[var(--ds-color-border-default)] bg-[var(--ds-color-surface-default)] shadow-[var(--shadow-lg)]",n),onClick:e=>e.stopPropagation(),children:s})})]}):null}function u(e){let{className:r,...n}=e;return(0,t.jsx)("div",{className:(0,o.cn)("flex flex-shrink-0 items-center justify-between gap-3 border-b border-[var(--ds-color-border-default)] px-4 py-[.85rem]",r),...n})}function m(e){let{className:r,...n}=e;return(0,t.jsx)("h2",{className:(0,o.cn)("m-[.15rem_.35rem_0] text-lg font-semibold text-[var(--ds-text)]",r),...n})}function p(e){let{className:r,...n}=e;return(0,t.jsx)("p",{className:(0,o.cn)("m-[.35rem_.35rem_0] text-[var(--ds-muted)]",r),...n})}function f(e){let{className:r,...n}=e;return(0,t.jsx)("div",{className:(0,o.cn)("min-h-0 flex-1 px-4 py-3",r),...n})}function g(e){let{className:r,...n}=e,{onOpenChange:a}=l();return(0,t.jsx)("button",{type:"button",className:(0,o.cn)("cursor-pointer rounded-md border-none bg-transparent px-2 pb-1 pt-2 hover:bg-[var(--ds-color-surface-item-bg-hover)]",r),onClick:e=>{var t;null==(t=n.onClick)||t.call(n,e),e.defaultPrevented||a(!1)},...n,children:(0,t.jsx)(s.default,{name:"Close",className:"size-4"})})}},28661,e=>{"use strict";e.s(["confirmAlertDialog",()=>a]);var t=e.i(59992),r=e.i(84143),n=e.i(92369),o=e.i(65486);function s(e){let{options:r,onResolve:s}=e,{title:a,description:l="",confirmText:i="确认",cancelText:c="取消"}=r;return(0,t.jsx)(o.Dialog,{open:!0,onOpenChange:e=>!e&&s(!1),children:(0,t.jsxs)(o.DialogContent,{className:"min-h-0 max-w-[460px] overflow-hidden p-0",children:[(0,t.jsx)(o.DialogHeader,{className:"mb-0 border-b border-[var(--ds-color-border-default)] px-5 pb-3 pt-5",children:(0,t.jsxs)("div",{children:[(0,t.jsx)(o.DialogTitle,{className:"m-0 text-lg font-semibold text-[var(--ds-text)]",children:a}),l?(0,t.jsx)(o.DialogDescription,{className:"m-0 mt-2 whitespace-pre-wrap leading-5 text-[var(--ds-muted)]",children:l}):null]})}),(0,t.jsxs)("div",{className:"flex justify-end gap-2 px-4 py-3",children:[(0,t.jsx)(n.Button,{type:"button",variant:"plain-outline",size:"lg",onClick:()=>s(!1),children:c}),(0,t.jsx)(n.Button,{type:"button",size:"lg",onClick:()=>s(!0),children:i})]})]})})}function a(e){return"undefined"==typeof document?Promise.resolve(!1):new Promise(n=>{let o=document.createElement("div");document.body.appendChild(o);let a=(0,r.createRoot)(o),l=!1;a.render((0,t.jsx)(s,{options:e,onResolve:e=>{l||(l=!0,a.unmount(),o.remove(),n(e))}}))})}}]);
|