@auto-ai/agent 2.1.177 → 2.1.178
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/0a7d5a51593d8c2f.js +1 -0
- package/dist/safe-a/_next/static/chunks/1721252e79141fe8.js +1 -0
- package/dist/safe-a/_next/static/chunks/{8cccc3fe71fa849b.js → 1d5160bb440a1e1b.js} +1 -1
- package/dist/safe-a/_next/static/chunks/291c07da1c127dc1.js +1 -0
- package/dist/safe-a/_next/static/chunks/2b51efee1a2b8f27.js +1 -0
- package/dist/safe-a/_next/static/chunks/4a426c156537f974.js +1 -0
- package/dist/safe-a/_next/static/chunks/502da0e2a135cc22.js +1 -0
- package/dist/safe-a/_next/static/chunks/6b646b7144f0eb9e.js +1 -0
- package/dist/safe-a/_next/static/chunks/6d5e5ac594d15dfd.js +1 -0
- package/dist/safe-a/_next/static/chunks/7145a30cb461e3ab.js +1 -0
- package/dist/safe-a/_next/static/chunks/7b13ca715faff5dc.js +1 -0
- package/dist/safe-a/_next/static/chunks/{98fff38c6425a797.css → 804376464cecbc36.css} +1 -1
- package/dist/safe-a/_next/static/chunks/812fc979171f7ded.js +1 -0
- package/dist/safe-a/_next/static/chunks/813a815fdbc5ebce.js +1 -0
- package/dist/safe-a/_next/static/chunks/86e1cbf0b14a37f8.js +1 -0
- package/dist/safe-a/_next/static/chunks/91e581bdbb23dee6.js +1 -0
- package/dist/safe-a/_next/static/chunks/9315f9edcdcc1021.js +1 -0
- package/dist/safe-a/_next/static/chunks/a279cf87db173848.js +1 -0
- package/dist/safe-a/_next/static/chunks/a844bb56dd3d3f9f.js +1 -0
- package/dist/safe-a/_next/static/chunks/a8500ff7cba0198b.js +1 -0
- package/dist/safe-a/_next/static/chunks/abdf99ba76e0f571.js +1 -0
- package/dist/safe-a/_next/static/chunks/aee78ab0977d5e85.js +1 -0
- package/dist/safe-a/_next/static/chunks/bca3533d1768ff54.css +1 -0
- package/dist/safe-a/_next/static/chunks/d2db030aed120d83.js +1 -0
- package/dist/safe-a/_next/static/chunks/d2f40ee7478ade79.js +1 -0
- package/dist/safe-a/_next/static/chunks/db2847a6d43bf625.js +1 -0
- package/dist/safe-a/_next/static/chunks/e2833182a81cd867.js +1 -0
- package/dist/safe-a/_next/static/chunks/f7757520b309e691.js +1 -0
- package/dist/safe-a/index.html +2 -2
- package/dist/safe-a/index.txt +29 -27
- package/dist/safe-a/manage/about/index.html +2 -2
- package/dist/safe-a/manage/about/index.txt +30 -29
- package/dist/safe-a/manage/env/index.html +2 -2
- package/dist/safe-a/manage/env/index.txt +33 -32
- package/dist/safe-a/manage/geelib/index.html +2 -0
- package/dist/safe-a/manage/geelib/index.txt +39 -0
- package/dist/safe-a/manage/general/index.html +2 -2
- package/dist/safe-a/manage/general/index.txt +30 -29
- package/dist/safe-a/manage/git/index.html +2 -0
- package/dist/safe-a/manage/git/index.txt +39 -0
- package/dist/safe-a/manage/im/index.html +2 -0
- package/dist/safe-a/manage/im/index.txt +39 -0
- package/dist/safe-a/manage/index.html +2 -2
- package/dist/safe-a/manage/index.txt +27 -26
- package/dist/safe-a/manage/library/index.html +2 -0
- package/dist/safe-a/manage/library/index.txt +37 -0
- package/dist/safe-a/manage/mcp/index.html +2 -2
- package/dist/safe-a/manage/mcp/index.txt +31 -30
- package/dist/safe-a/manage/permissions/index.html +2 -2
- package/dist/safe-a/manage/permissions/index.txt +30 -29
- package/dist/safe-a/manage/skills/index.html +2 -2
- package/dist/safe-a/manage/skills/index.txt +31 -30
- package/dist/safe-a/manage/system/index.html +2 -0
- package/dist/safe-a/manage/system/index.txt +39 -0
- package/dist/safe-a/manage/task/index.html +2 -2
- package/dist/safe-a/manage/task/index.txt +31 -30
- package/dist/safe-a/manage/teams/index.html +2 -2
- package/dist/safe-a/manage/teams/index.txt +31 -30
- package/dist/safe-a/manage/tools/index.html +2 -2
- package/dist/safe-a/manage/tools/index.txt +31 -30
- package/package.json +6 -6
- package/dist/safe-a/_next/static/chunks/08ce2af10358a8ab.js +0 -1
- package/dist/safe-a/_next/static/chunks/10f9223e5a712af5.css +0 -1
- package/dist/safe-a/_next/static/chunks/1acf2d9664500f51.js +0 -1
- package/dist/safe-a/_next/static/chunks/1f3da8a76b11d2aa.js +0 -1
- package/dist/safe-a/_next/static/chunks/26aeb1c7cdca0bc7.js +0 -1
- package/dist/safe-a/_next/static/chunks/3051ec76bf1f7867.js +0 -1
- package/dist/safe-a/_next/static/chunks/4a33b6b9bc52fb1a.js +0 -1
- package/dist/safe-a/_next/static/chunks/53a59aecd3e0dfb5.js +0 -1
- package/dist/safe-a/_next/static/chunks/5bad5163b6e015f5.js +0 -1
- package/dist/safe-a/_next/static/chunks/5ef8399eb6496949.js +0 -1
- package/dist/safe-a/_next/static/chunks/61b3d4c00499dd14.js +0 -1
- package/dist/safe-a/_next/static/chunks/b7f72bcb870dda3b.js +0 -1
- package/dist/safe-a/_next/static/chunks/bbf364bb7f0ab6f7.js +0 -1
- package/dist/safe-a/_next/static/chunks/bdd88bcfd223f52a.js +0 -1
- package/dist/safe-a/_next/static/chunks/eac98d693efb6a1f.js +0 -1
- package/dist/safe-a/_next/static/chunks/ec7537a65499e7a4.js +0 -1
- package/dist/safe-a/_next/static/chunks/f874690806ec289e.js +0 -1
- /package/dist/safe-a/_next/static/{FLwrlrqnZ2-ZTbuZi3z9O → gFf2rYZ98YdyRGXddQWul}/_buildManifest.js +0 -0
- /package/dist/safe-a/_next/static/{FLwrlrqnZ2-ZTbuZi3z9O → gFf2rYZ98YdyRGXddQWul}/_clientMiddlewareManifest.json +0 -0
- /package/dist/safe-a/_next/static/{FLwrlrqnZ2-ZTbuZi3z9O → gFf2rYZ98YdyRGXddQWul}/_ssgManifest.js +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,18581,(e,t,a)=>{"use strict";Object.defineProperty(a,"__esModule",{value:!0}),Object.defineProperty(a,"useMergedRef",{enumerable:!0,get:function(){return n}});let i=e.r(71645);function n(e,t){let a=(0,i.useRef)(null),n=(0,i.useRef)(null);return(0,i.useCallback)(i=>{if(null===i){let e=a.current;e&&(a.current=null,e());let t=n.current;t&&(n.current=null,t())}else e&&(a.current=l(e,i)),t&&(n.current=l(t,i))},[e,t])}function l(e,t){if("function"!=typeof e)return e.current=t,()=>{e.current=null};{let a=e(t);return"function"==typeof a?a:()=>e(null)}}("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)},88143,(e,t,a)=>{"use strict";function i(e){let{widthInt:t,heightInt:a,blurWidth:i,blurHeight:n,blurDataURL:l,objectFit:r}=e,s=i?40*i:t,o=n?40*n:a,d=s&&o?"viewBox='0 0 "+s+" "+o+"'":"";return"%3Csvg xmlns='http://www.w3.org/2000/svg' "+d+"%3E%3Cfilter id='b' color-interpolation-filters='sRGB'%3E%3CfeGaussianBlur stdDeviation='20'/%3E%3CfeColorMatrix values='1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 100 -1' result='s'/%3E%3CfeFlood x='0' y='0' width='100%25' height='100%25'/%3E%3CfeComposite operator='out' in='s'/%3E%3CfeComposite in2='SourceGraphic'/%3E%3CfeGaussianBlur stdDeviation='20'/%3E%3C/filter%3E%3Cimage width='100%25' height='100%25' x='0' y='0' preserveAspectRatio='"+(d?"none":"contain"===r?"xMidYMid":"cover"===r?"xMidYMid slice":"none")+"' style='filter: url(%23b);' href='"+l+"'/%3E%3C/svg%3E"}Object.defineProperty(a,"__esModule",{value:!0}),Object.defineProperty(a,"getImageBlurSvg",{enumerable:!0,get:function(){return i}})},87690,(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,{VALID_LOADERS:function(){return i},imageConfigDefault:function(){return n}});let i=["default","imgix","cloudinary","akamai","custom"],n={deviceSizes:[640,750,828,1080,1200,1920,2048,3840],imageSizes:[16,32,48,64,96,128,256,384],path:"/_next/image",loader:"default",loaderFile:"",domains:[],disableStaticImages:!1,minimumCacheTTL:60,formats:["image/webp"],maximumDiskCacheSize:void 0,maximumResponseBody:5e7,dangerouslyAllowSVG:!1,contentSecurityPolicy:"script-src 'none'; frame-src 'none'; sandbox;",contentDispositionType:"attachment",localPatterns:void 0,remotePatterns:[],qualities:void 0,unoptimized:!1}},8927,(e,t,a)=>{"use strict";Object.defineProperty(a,"__esModule",{value:!0}),Object.defineProperty(a,"getImgProps",{enumerable:!0,get:function(){return o}}),e.r(33525);let i=e.r(88143),n=e.r(87690),l=["-moz-initial","fill","none","scale-down",void 0];function r(e){return void 0!==e.default}function s(e){return void 0===e?e:"number"==typeof e?Number.isFinite(e)?e:NaN:"string"==typeof e&&/^[0-9]+$/.test(e)?parseInt(e,10):NaN}function o(e,t){var a,o;let d,c,u,{src:f,sizes:p,unoptimized:m=!1,priority:g=!1,loading:h,className:b,quality:x,width:v,height:y,fill:A=!1,style:j,overrideSrc:w,onLoad:C,onLoadingComplete:S,placeholder:k="empty",blurDataURL:N,fetchPriority:_,decoding:E="async",layout:O,objectFit:P,objectPosition:R,lazyBoundary:z,lazyRoot:M,...I}=e,{imgConf:T,showAltText:B,blurComplete:D,defaultLoader:L}=t,U=T||n.imageConfigDefault;if("allSizes"in U)d=U;else{let e=[...U.deviceSizes,...U.imageSizes].sort((e,t)=>e-t),t=U.deviceSizes.sort((e,t)=>e-t),i=null==(a=U.qualities)?void 0:a.sort((e,t)=>e-t);d={...U,allSizes:e,deviceSizes:t,qualities:i}}if(void 0===L)throw Object.defineProperty(Error("images.loaderFile detected but the file is missing default export.\nRead more: https://nextjs.org/docs/messages/invalid-images-config"),"__NEXT_ERROR_CODE",{value:"E163",enumerable:!1,configurable:!0});let G=I.loader||L;delete I.loader,delete I.srcSet;let F="__next_img_default"in G;if(F){if("custom"===d.loader)throw Object.defineProperty(Error('Image with src "'+f+'" is missing "loader" prop.\nRead more: https://nextjs.org/docs/messages/next-image-missing-loader'),"__NEXT_ERROR_CODE",{value:"E252",enumerable:!1,configurable:!0})}else{let e=G;G=t=>{let{config:a,...i}=t;return e(i)}}if(O){"fill"===O&&(A=!0);let e={intrinsic:{maxWidth:"100%",height:"auto"},responsive:{width:"100%",height:"auto"}}[O];e&&(j={...j,...e});let t={responsive:"100vw",fill:"100vw"}[O];t&&!p&&(p=t)}let K="",V=s(v),H=s(y);if((o=f)&&"object"==typeof o&&(r(o)||void 0!==o.src)){let e=r(f)?f.default:f;if(!e.src)throw Object.defineProperty(Error("An object should only be passed to the image component src parameter if it comes from a static image import. It must include src. Received "+JSON.stringify(e)),"__NEXT_ERROR_CODE",{value:"E460",enumerable:!1,configurable:!0});if(!e.height||!e.width)throw Object.defineProperty(Error("An object should only be passed to the image component src parameter if it comes from a static image import. It must include height and width. Received "+JSON.stringify(e)),"__NEXT_ERROR_CODE",{value:"E48",enumerable:!1,configurable:!0});if(c=e.blurWidth,u=e.blurHeight,N=N||e.blurDataURL,K=e.src,!A)if(V||H){if(V&&!H){let t=V/e.width;H=Math.round(e.height*t)}else if(!V&&H){let t=H/e.height;V=Math.round(e.width*t)}}else V=e.width,H=e.height}let q=!g&&("lazy"===h||void 0===h);(!(f="string"==typeof f?f:K)||f.startsWith("data:")||f.startsWith("blob:"))&&(m=!0,q=!1),d.unoptimized&&(m=!0),F&&!d.dangerouslyAllowSVG&&f.split("?",1)[0].endsWith(".svg")&&(m=!0);let W=s(x),Y=Object.assign(A?{position:"absolute",height:"100%",width:"100%",left:0,top:0,right:0,bottom:0,objectFit:P,objectPosition:R}:{},B?{}:{color:"transparent"},j),X=D||"empty"===k?null:"blur"===k?'url("data:image/svg+xml;charset=utf-8,'+(0,i.getImageBlurSvg)({widthInt:V,heightInt:H,blurWidth:c,blurHeight:u,blurDataURL:N||"",objectFit:Y.objectFit})+'")':'url("'+k+'")',J=l.includes(Y.objectFit)?"fill"===Y.objectFit?"100% 100%":"cover":Y.objectFit,Q=X?{backgroundSize:J,backgroundPosition:Y.objectPosition||"50% 50%",backgroundRepeat:"no-repeat",backgroundImage:X}:{},$=function(e){let{config:t,src:a,unoptimized:i,width:n,quality:l,sizes:r,loader:s}=e;if(i)return{src:a,srcSet:void 0,sizes:void 0};let{widths:o,kind:d}=function(e,t,a){let{deviceSizes:i,allSizes:n}=e;if(a){let e=/(^|\s)(1?\d?\d)vw/g,t=[];for(let i;i=e.exec(a);)t.push(parseInt(i[2]));if(t.length){let e=.01*Math.min(...t);return{widths:n.filter(t=>t>=i[0]*e),kind:"w"}}return{widths:n,kind:"w"}}return"number"!=typeof t?{widths:i,kind:"w"}:{widths:[...new Set([t,2*t].map(e=>n.find(t=>t>=e)||n[n.length-1]))],kind:"x"}}(t,n,r),c=o.length-1;return{sizes:r||"w"!==d?r:"100vw",srcSet:o.map((e,i)=>s({config:t,src:a,quality:l,width:e})+" "+("w"===d?e:i+1)+d).join(", "),src:s({config:t,src:a,quality:l,width:o[c]})}}({config:d,src:f,unoptimized:m,width:V,quality:W,sizes:p,loader:G});return{props:{...I,loading:q?"lazy":h,fetchPriority:_,width:V,height:H,decoding:E,className:b,style:{...Y,...Q},sizes:$.sizes,srcSet:$.srcSet,src:w||$.src},meta:{unoptimized:m,priority:g,placeholder:k,fill:A}}}},98879,(e,t,a)=>{"use strict";Object.defineProperty(a,"__esModule",{value:!0}),Object.defineProperty(a,"default",{enumerable:!0,get:function(){return s}});let i=e.r(71645),n="undefined"==typeof window,l=n?()=>{}:i.useLayoutEffect,r=n?()=>{}:i.useEffect;function s(e){let{headManager:t,reduceComponentsToState:a}=e;function s(){if(t&&t.mountedInstances){let n=i.Children.toArray(Array.from(t.mountedInstances).filter(Boolean));t.updateHead(a(n,e))}}if(n){var o;null==t||null==(o=t.mountedInstances)||o.add(e.children),s()}return l(()=>{var a;return null==t||null==(a=t.mountedInstances)||a.add(e.children),()=>{var a;null==t||null==(a=t.mountedInstances)||a.delete(e.children)}}),l(()=>(t&&(t._pendingUpdate=s),()=>{t&&(t._pendingUpdate=s)})),r(()=>(t&&t._pendingUpdate&&(t._pendingUpdate(),t._pendingUpdate=null),()=>{t&&t._pendingUpdate&&(t._pendingUpdate(),t._pendingUpdate=null)})),null}},58908,(e,t,a)=>{"use strict";Object.defineProperty(a,"__esModule",{value:!0}),Object.defineProperty(a,"AmpStateContext",{enumerable:!0,get:function(){return i}});let i=e.r(55682)._(e.r(71645)).default.createContext({})},15986,(e,t,a)=>{"use strict";function i(e){let{ampFirst:t=!1,hybrid:a=!1,hasQuery:i=!1}=void 0===e?{}:e;return t||a&&i}Object.defineProperty(a,"__esModule",{value:!0}),Object.defineProperty(a,"isInAmpMode",{enumerable:!0,get:function(){return i}})},25633,(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 g},defaultHead:function(){return u}});let i=e.r(55682),n=e.r(90809),l=e.r(18050),r=n._(e.r(71645)),s=i._(e.r(98879)),o=e.r(58908),d=e.r(42732),c=e.r(15986);function u(e){void 0===e&&(e=!1);let t=[(0,l.jsx)("meta",{charSet:"utf-8"},"charset")];return e||t.push((0,l.jsx)("meta",{name:"viewport",content:"width=device-width"},"viewport")),t}function f(e,t){return"string"==typeof t||"number"==typeof t?e:t.type===r.default.Fragment?e.concat(r.default.Children.toArray(t.props.children).reduce((e,t)=>"string"==typeof t||"number"==typeof t?e:e.concat(t),[])):e.concat(t)}e.r(33525);let p=["name","httpEquiv","charSet","itemProp"];function m(e,t){let{inAmpMode:a}=t;return e.reduce(f,[]).reverse().concat(u(a).reverse()).filter(function(){let e=new Set,t=new Set,a=new Set,i={};return n=>{let l=!0,r=!1;if(n.key&&"number"!=typeof n.key&&n.key.indexOf("$")>0){r=!0;let t=n.key.slice(n.key.indexOf("$")+1);e.has(t)?l=!1:e.add(t)}switch(n.type){case"title":case"base":t.has(n.type)?l=!1:t.add(n.type);break;case"meta":for(let e=0,t=p.length;e<t;e++){let t=p[e];if(n.props.hasOwnProperty(t))if("charSet"===t)a.has(t)?l=!1:a.add(t);else{let e=n.props[t],a=i[t]||new Set;("name"!==t||!r)&&a.has(e)?l=!1:(a.add(e),i[t]=a)}}}return l}}()).reverse().map((e,t)=>{let a=e.key||t;return r.default.cloneElement(e,{key:a})})}let g=function(e){let{children:t}=e,a=(0,r.useContext)(o.AmpStateContext),i=(0,r.useContext)(d.HeadManagerContext);return(0,l.jsx)(s.default,{reduceComponentsToState:m,headManager:i,inAmpMode:(0,c.isInAmpMode)(a),children:t})};("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)},18556,(e,t,a)=>{"use strict";Object.defineProperty(a,"__esModule",{value:!0}),Object.defineProperty(a,"ImageConfigContext",{enumerable:!0,get:function(){return l}});let i=e.r(55682)._(e.r(71645)),n=e.r(87690),l=i.default.createContext(n.imageConfigDefault)},65856,(e,t,a)=>{"use strict";Object.defineProperty(a,"__esModule",{value:!0}),Object.defineProperty(a,"RouterContext",{enumerable:!0,get:function(){return i}});let i=e.r(55682)._(e.r(71645)).default.createContext(null)},1948,(e,t,a)=>{"use strict";function i(e){var t;let{config:a,src:i,width:n,quality:l}=e,r=l||(null==(t=a.qualities)?void 0:t.reduce((e,t)=>Math.abs(t-75)<Math.abs(e-75)?t:e))||75;return a.path+"?url="+encodeURIComponent(i)+"&w="+n+"&q="+r+(i.startsWith("/_next/static/media/"),"")}Object.defineProperty(a,"__esModule",{value:!0}),Object.defineProperty(a,"default",{enumerable:!0,get:function(){return n}}),i.__next_img_default=!0;let n=i},5500,(e,t,a)=>{"use strict";Object.defineProperty(a,"__esModule",{value:!0}),Object.defineProperty(a,"Image",{enumerable:!0,get:function(){return y}});let i=e.r(55682),n=e.r(90809),l=e.r(18050),r=n._(e.r(71645)),s=i._(e.r(74080)),o=i._(e.r(25633)),d=e.r(8927),c=e.r(87690),u=e.r(18556);e.r(33525);let f=e.r(65856),p=i._(e.r(1948)),m=e.r(18581),g={deviceSizes:[640,750,828,1080,1200,1920,2048,3840],imageSizes:[16,32,48,64,96,128,256,384],path:"/app/_next/image/",loader:"default",dangerouslyAllowSVG:!1,unoptimized:!1};function h(e,t,a,i,n,l,r){let s=null==e?void 0:e.src;e&&e["data-loaded-src"]!==s&&(e["data-loaded-src"]=s,("decode"in e?e.decode():Promise.resolve()).catch(()=>{}).then(()=>{if(e.parentElement&&e.isConnected){if("empty"!==t&&n(!0),null==a?void 0:a.current){let t=new Event("load");Object.defineProperty(t,"target",{writable:!1,value:e});let i=!1,n=!1;a.current({...t,nativeEvent:t,currentTarget:e,target:e,isDefaultPrevented:()=>i,isPropagationStopped:()=>n,persist:()=>{},preventDefault:()=>{i=!0,t.preventDefault()},stopPropagation:()=>{n=!0,t.stopPropagation()}})}(null==i?void 0:i.current)&&i.current(e)}}))}function b(e){return r.use?{fetchPriority:e}:{fetchpriority:e}}"undefined"==typeof window&&(globalThis.__NEXT_IMAGE_IMPORTED=!0);let x=(0,r.forwardRef)((e,t)=>{let{src:a,srcSet:i,sizes:n,height:s,width:o,decoding:d,className:c,style:u,fetchPriority:f,placeholder:p,loading:g,unoptimized:x,fill:v,onLoadRef:y,onLoadingCompleteRef:A,setBlurComplete:j,setShowAltText:w,sizesInput:C,onLoad:S,onError:k,...N}=e,_=(0,r.useCallback)(e=>{e&&(k&&(e.src=e.src),e.complete&&h(e,p,y,A,j,x,C))},[a,p,y,A,j,k,x,C]),E=(0,m.useMergedRef)(t,_);return(0,l.jsx)("img",{...N,...b(f),loading:g,width:o,height:s,decoding:d,"data-nimg":v?"fill":"1",className:c,style:u,sizes:n,srcSet:i,src:a,ref:E,onLoad:e=>{h(e.currentTarget,p,y,A,j,x,C)},onError:e=>{w(!0),"empty"!==p&&j(!0),k&&k(e)}})});function v(e){let{isAppRouter:t,imgAttributes:a}=e,i={as:"image",imageSrcSet:a.srcSet,imageSizes:a.sizes,crossOrigin:a.crossOrigin,referrerPolicy:a.referrerPolicy,...b(a.fetchPriority)};return t&&s.default.preload?(s.default.preload(a.src,i),null):(0,l.jsx)(o.default,{children:(0,l.jsx)("link",{rel:"preload",href:a.srcSet?void 0:a.src,...i},"__nimg-"+a.src+a.srcSet+a.sizes)})}let y=(0,r.forwardRef)((e,t)=>{let a=(0,r.useContext)(f.RouterContext),i=(0,r.useContext)(u.ImageConfigContext),n=(0,r.useMemo)(()=>{var e;let t=g||i||c.imageConfigDefault,a=[...t.deviceSizes,...t.imageSizes].sort((e,t)=>e-t),n=t.deviceSizes.sort((e,t)=>e-t),l=null==(e=t.qualities)?void 0:e.sort((e,t)=>e-t);return{...t,allSizes:a,deviceSizes:n,qualities:l}},[i]),{onLoad:s,onLoadingComplete:o}=e,m=(0,r.useRef)(s);(0,r.useEffect)(()=>{m.current=s},[s]);let h=(0,r.useRef)(o);(0,r.useEffect)(()=>{h.current=o},[o]);let[b,y]=(0,r.useState)(!1),[A,j]=(0,r.useState)(!1),{props:w,meta:C}=(0,d.getImgProps)(e,{defaultLoader:p.default,imgConf:n,blurComplete:b,showAltText:A});return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(x,{...w,unoptimized:C.unoptimized,placeholder:C.placeholder,fill:C.fill,onLoadRef:m,onLoadingCompleteRef:h,setBlurComplete:y,setShowAltText:j,sizesInput:e.sizes,ref:t}),C.priority?(0,l.jsx)(v,{isAppRouter:!a,imgAttributes:w}):null]})});("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)},94909,(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 o},getImageProps:function(){return s}});let i=e.r(55682),n=e.r(8927),l=e.r(5500),r=i._(e.r(1948));function s(e){let{props:t}=(0,n.getImgProps)(e,{defaultLoader:r.default,imgConf:{deviceSizes:[640,750,828,1080,1200,1920,2048,3840],imageSizes:[16,32,48,64,96,128,256,384],path:"/app/_next/image/",loader:"default",dangerouslyAllowSVG:!1,unoptimized:!1}});for(let[e,a]of Object.entries(t))void 0===a&&delete t[e];return{props:t}}let o=l.Image},57688,(e,t,a)=>{t.exports=e.r(94909)},85413,e=>{"use strict";e.s(["Empty",()=>l],85413);var t=e.i(18050),a=e.i(57688);let i={src:e.i(96920).default,width:973,height:482,blurWidth:8,blurHeight:4,blurDataURL:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAECAYAAACzzX7wAAAAj0lEQVR42gGEAHv/AAAAAAATGRcXg4uIgcjJycORlJOKDxEQDAAAAAAAAAAAAAQEBANfa2Zj5fTu9ff9+/7q8u7uc3p3cgoLCwkAAAAAAEJGRELH1M/S4/jw/tD25v7U9ef+1ubf4jg8OjAAAAAAAHqBfmqxvLiisMG7rK7GvLKxxb2wpbKtoVNYVlADAwMC5U08HYgBOJwAAAAASUVORK5CYII="};var n=e.i(75157);function l(e){let{text:l="暂无数据",className:r,showImage:s=!0,imageSrc:o=i,imageAlt:d="暂无数据",imageSize:c=180,imageClassName:u}=e,f="string"==typeof o?{width:c,height:c}:{width:o.width,height:o.height};return(0,t.jsxs)("div",{className:(0,n.cn)("flex min-h-[180px] w-full flex-col items-center justify-center gap-2 py-4 text-[var(--ds-muted)]",r),role:"status","aria-live":"polite",children:[s?(0,t.jsx)("span",{className:(0,n.cn)("block shrink-0",u),style:{width:c},children:(0,t.jsx)(a.default,{src:o,alt:d,width:f.width,height:f.height,unoptimized:!0,draggable:!1,sizes:"".concat(c,"px"),className:"h-auto w-full object-contain"})}):null,(0,t.jsx)("span",{children:l})]})}},93479,e=>{"use strict";e.s(["Input",()=>i]);var t=e.i(18050),a=e.i(75157);function i(e){let{className:i,type:n="text",size:l="default",...r}=e;return(0,t.jsx)("input",{type:n,"data-slot":"input","data-size":l,className:(0,a.cn)("h-9 w-full appearance-none rounded-md border border-solid border-border bg-transparent px-3 text-sm outline-none transition-[color,box-shadow,border-color] duration-150 ease-in-out placeholder:text-muted-foreground hover:border-[var(--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] data-[size=default]:h-9 data-[size=lg]:h-10 data-[size=sm]:h-7",i),...r})}},96920,e=>{e.v("/app/_next/static/media/no-data.48c973b9.png")},51239,e=>{e.v("/app/_next/static/media/data-loading.be8d921a.png")},2839,e=>{"use strict";e.s(["Loading",()=>r],2839);var t=e.i(18050),a=e.i(57688);let i={src:e.i(51239).default,width:951,height:482,blurWidth:8,blurHeight:4,blurDataURL:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAECAYAAACzzX7wAAAAj0lEQVR42gGEAHv/AAAAAAANERAObXJwYaGko5N/gYBwDg8PCgAAAAAAAAAAAAMEBAJic2xp2+3m7fL8+P7l6ujjUlhWTAYGBgUAAAAAADM3NTG6x8LB7fr1/vD89/7f9+3+wNXNzycpKB4AAAAAAJ+qpozL2dO/0NvWx9Td2c6gzrzRpcq8u2FpZk8CAgIBCRI7kCfNfAcAAAAASUVORK5CYII="};var n=e.i(87968),l=e.i(75157);function r(e){let{text:r="加载中",className:s,showImage:o=!0,imageSrc:d=i,imageAlt:c="加载中",imageSize:u=180,imageClassName:f}=e,p="string"==typeof d?{width:u,height:u}:{width:d.width,height:d.height};return(0,t.jsxs)("div",{className:(0,l.cn)("flex min-h-[180px] w-full flex-col items-center justify-center gap-2 py-4 text-[var(--ds-muted)]",s),role:"status","aria-live":"polite",children:[o?(0,t.jsx)("span",{className:(0,l.cn)("block shrink-0",f),style:{width:u},children:(0,t.jsx)(a.default,{src:d,alt:c,width:p.width,height:p.height,unoptimized:!0,draggable:!1,sizes:"".concat(u,"px"),className:"h-auto w-full object-contain"})}):null,(0,t.jsxs)("span",{className:"flex items-center",children:[(0,t.jsx)(n.Spinner,{className:"mr-2"}),r]})]})}},55242,e=>{"use strict";e.s(["AppDialog",()=>l]);var t=e.i(18050),a=e.i(71645),i=e.i(76639),n=e.i(75157);function l(e){let{open:l,onOpenChange:r,title:s,children:o,footer:d,width:c="max-w-3xl",minHeight:u}=e,f=(0,a.useId)();return(0,t.jsx)(i.Dialog,{open:l,onOpenChange:r,children:(0,t.jsxs)(i.DialogContent,{"aria-labelledby":f,className:(0,n.cn)(c,u?"!min-h-[--min-h]":""),style:u?{"--min-h":u}:void 0,children:[(0,t.jsxs)(i.DialogHeader,{children:[(0,t.jsx)(i.DialogTitle,{id:f,children:s}),(0,t.jsx)(i.DialogClose,{"aria-label":"关闭"})]}),(0,t.jsx)(i.DialogBody,{className:"!px-4 !py-3",children:o}),d?(0,t.jsx)("div",{className:"flex flex-shrink-0 justify-end gap-2 border-t border-[var(--ds-border)] bg-[var(--ds-sidebar)] px-4 py-3",children:d}):null]})})}},39721,e=>{"use strict";e.s(["SkillsManageView",()=>P],39721);var t=e.i(18050),a=e.i(71645),i=e.i(65934),n=e.i(87243),l=e.i(13354),r=e.i(50711),s=e.i(51419),o=e.i(19455),d=e.i(72064),c=e.i(92715),u=e.i(93479),f=e.i(75157);function p(e){let{className:a,...i}=e;return(0,t.jsx)("nav",{role:"navigation","aria-label":"pagination","data-slot":"pagination",className:(0,f.cn)("flex w-full justify-end",a),...i})}let m=a.forwardRef((e,a)=>{let{className:i,...n}=e;return(0,t.jsx)("ul",{ref:a,"data-slot":"pagination-content",className:(0,f.cn)("flex flex-row flex-wrap items-center justify-end gap-1",i),...n})});m.displayName="PaginationContent";let g=a.forwardRef((e,a)=>{let{className:i,...n}=e;return(0,t.jsx)("li",{ref:a,"data-slot":"pagination-item",className:(0,f.cn)("",i),...n})});g.displayName="PaginationItem",a.forwardRef((e,a)=>{let{className:i,isActive:n,size:l="icon",...r}=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,f.cn)((0,o.buttonVariants)({variant:n?"outline":"ghost",size:l}),i),...r})}).displayName="PaginationLink";var h=e.i(62427),b=e.i(2839);function x(e){let{active:i,wsUrl:n,apiBase:r,agent:s,onAfterInstall:f,className:x}=e,[v,y]=(0,a.useState)(""),[A,j]=(0,a.useState)(1),[w,C]=(0,a.useState)(0),[S,k]=(0,a.useState)([]),[N,_]=(0,a.useState)(!1),[E,O]=(0,a.useState)(""),[P,R]=(0,a.useState)({}),z=(0,a.useRef)(0),M=(0,a.useCallback)(async()=>{let e=++z.current;_(!0),O("");try{let t=await (0,h.listCloudSkillCatalog)(n,r,s,v,A,10);if(e!==z.current)return;let a=Array.isArray(t.items)?t.items:[],i=[];for(let e of a)e&&"object"==typeof e&&e.id&&i.push({id:String(e.id),title:String(e.title||""),skillName:String(e.skillName||""),description:"string"==typeof e.description?e.description:"",installed:!!e.installed});k(i),C(t.totalPages)}catch(t){if(e!==z.current)return;k([]),C(0),O(t instanceof Error?t.message:String(t))}finally{e===z.current&&_(!1)}},[n,r,s,v,A]);(0,a.useEffect)(()=>{if(!i){y(""),j(1),C(0),k([]),O(""),R({}),z.current+=1;return}M()},[i,M]);let I=(0,a.useMemo)(()=>{if(N)return"加载中…";if(E)return"加载失败:".concat(E);let e=S.reduce((e,t)=>e+ +!!t.installed,0);return"已安装 ".concat(e," 项")},[N,E,S]),T=(0,a.useCallback)(async(e,t)=>{R(t=>({...t,[e]:!0}));try{await (0,h.installCloudSkill)(n,r,s,e),l.appToast.success("云端技能已安装:".concat(t)),await M(),null==f||f()}catch(e){l.appToast.error("安装失败:".concat(e instanceof Error?e.message:String(e)))}finally{R(t=>{let a={...t};return delete a[e],a})}},[n,r,s,M,f]);if((0,a.useCallback)(e=>{j(1),y(e)},[]),!i)return null;let B=w>0?"第 ".concat(A,"/").concat(w," 页"):"第 0/0 页",D=N||A<=1,L=N||w<=0||A>=w,U=[{key:"name",title:"名称",headerClassName:"",cellClassName:" text-[var(--ds-text)]",render:e=>e.skillName?"".concat(e.skillName):e.id},{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=!!P[e.id],i=!!e.installed;return!a&&i?"-":(0,t.jsx)(o.Button,{type:"button",size:"sm",variant:"outline",disabled:a||i,onClick:()=>void T(e.id,e.title||e.skillName||e.id),children:a?"安装中…":i?"已安装":"安装"})}}];return(0,t.jsx)("div",{className:x,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:v,onChange:e=>y(e.target.value),placeholder:"搜索名称 / 详情",className:"h-8 pl-8","aria-label":"搜索已安装 Skill"}),(0,t.jsx)(d.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)("div",{className:"text-[var(--ds-muted)]",children:I}),(0,t.jsx)(c.AppTable,{rows:S,columns:U,getRowKey:e=>e.id,className:"min-h-0 flex-1 rounded-md",bodyProps:{viewportPaginationReserve:64},emptyNode:N?(0,t.jsx)(b.Loading,{text:"加载中…",className:"min-h-[200px]"}):void 0}),(0,t.jsx)(p,{className:"mx-0 w-full",children:(0,t.jsxs)(m,{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:D,className:"gap-1",onClick:()=>j(e=>Math.max(1,e-1)),"aria-label":"上一页",children:[(0,t.jsx)(d.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:B})}),(0,t.jsx)(g,{children:(0,t.jsxs)(o.Button,{type:"button",variant:"outline",size:"sm",disabled:L,className:"gap-1",onClick:()=>j(e=>e+1),"aria-label":"下一页",children:["下一页",(0,t.jsx)(d.default,{name:"ChevronRight",size:16,className:"shrink-0",strokeWidth:1})]})})]})})]})})}var v=e.i(36845),y=e.i(53925);function A(e){let{open:a,onOpenChange:i,wsUrl:n,apiBase:l,agent:r}=e;return(0,t.jsx)(y.ResourceImportDialog,{open:a,onOpenChange:i,title:"导入 Skill zip",description:"选择一个 zip 文件并导入到 skills-runtime。",uploadUrl:(0,v.buildSkillsRuntimeImportUrl)(n,l,r),resetKey:r})}var j=e.i(55242);function w(e){let{open:i,onOpenChange:n,skillName:r,wsUrl:s,apiBase:d,agent:c,onSaved:u}=e,[f,p]=(0,a.useState)(""),[m,g]=(0,a.useState)(!1),[b,x]=(0,a.useState)(!1);(0,a.useEffect)(()=>{if(!i||!r.trim())return;let e=!1;return g(!0),p(""),(0,h.loadBaseSkillMd)(s,d,c,r).then(t=>{e||p("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}},[i,r,s,d,c,n]);let v=(0,a.useCallback)(async()=>{if(r.trim()){x(!0);try{await (0,h.saveBaseSkillMd)(s,d,c,r,f),l.appToast.success("SKILL.md 已保存"),n(!1),null==u||u()}catch(e){l.appToast.error("保存失败:".concat(e instanceof Error?e.message:String(e)))}finally{x(!1)}}},[r,s,d,c,f,n,u]);return(0,t.jsx)(j.AppDialog,{open:i,onOpenChange:n,title:"编辑 SKILL.md · /".concat(r),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:m||b,onClick:()=>n(!1),children:"取消"}),(0,t.jsx)(o.Button,{type:"button",size:"lg",disabled:m||b,onClick:()=>void v(),children:"保存"})]}),children:m?(0,t.jsx)("p",{className:"py-6 text-center text-[var(--ds-muted)]",children:"加载中…"}):(0,t.jsx)("textarea",{className:"focus-visible:ring-[var(--ds-accent)]/30 min-h-[320px] w-full resize-y rounded-md border border-[var(--ds-border)] bg-[var(--ds-bg)] p-3 leading-6 text-[var(--ds-text)] outline-none focus-visible:ring-2",spellCheck:!1,value:f,placeholder:"Markdown 源码…",onChange:e=>p(e.target.value)})})}var C=e.i(94055),S=e.i(94197);function k(e){let{items:i,saveBusy:n,onToggleEnabled:l,onEditBase:r,onExport:s,onRemove:o,className:f}=e,[p,m]=(0,a.useState)(""),g=(0,a.useMemo)(()=>i.filter(e=>(function(e,t){var a;let i=t.trim().toLowerCase();return!i||"".concat(e.name," ").concat(null!=(a=e.description)?a:"").toLowerCase().includes(i)})(e,p)),[i,p]),h=[{key:"name",title:"名称",headerClassName:"",cellClassName:"",render:e=>"/".concat(e.name)},{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)(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=>(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)(S.IconTooltipButton,{icon:"Edit",label:"编辑",ariaLabel:"编辑 ".concat(e.name),disabled:n,onClick:()=>r(e.name)}),(0,t.jsx)(S.IconTooltipButton,{icon:"Trash2",label:"系统技能不可删除",tone:"danger",ariaLabel:"删除 ".concat(e.name),disabled:!0})]}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(S.IconTooltipButton,{icon:"Download",label:"导出",ariaLabel:"导出 ".concat(e.name),disabled:n,onClick:()=>s(e.name)}),(0,t.jsx)(S.IconTooltipButton,{icon:"Trash2",label:"删除",tone:"danger",ariaLabel:"删除 ".concat(e.name),disabled:n,onClick:()=>{o(e.name)}})]})})}],b=p.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:p,onChange:e=>m(e.target.value),placeholder:"搜索名称 / 详情",className:"h-8 pl-8","aria-label":"搜索已安装 Skill"}),(0,t.jsx)(d.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)(c.AppTable,{rows:g,columns:h,getRowKey:e=>"skills:".concat(e.name),className:f,emptyText:b?"无匹配的 Skill":void 0})]})}var N=e.i(68499),_=e.i(56708);function E(e,t){var a,i,n;let l=(n=null!=(i=null!=(a=e.description)?a:e.whenToUse)?i:"")?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 O=[{value:"installed",label:"已安装Skill"},{value:"cloud_catalog",label:"Skill商店"}];function P(){let e=(0,i.useAppStore)(e=>e.wsUrl),c=(0,i.useAppStore)(e=>e.apiBase),u=(0,i.useAppStore)(e=>e.agentConfig),f=(0,i.useAppStore)(e=>e.patchAgentConfig),{currentAgent:p,loadAgentConfig:m}=(0,n.useSession)(),g=(0,r.usePersistAgentConfigField)("skills"),v=u.skills,[y,j]=(0,a.useState)([]),[C,S]=(0,a.useState)([]),[P,R]=(0,a.useState)(!1),[z,M]=(0,a.useState)(!1),[I,T]=(0,a.useState)(!1),[B,D]=(0,a.useState)("installed"),[L,U]=(0,a.useState)(!1),[G,F]=(0,a.useState)(""),[K,V]=(0,a.useState)(!1);(0,a.useEffect)(()=>{m()},[m]);let H=(0,a.useCallback)(async(e,t)=>{T(!0);try{await g(e,{silent:t})}finally{T(!1)}},[g]),q=(0,a.useCallback)(async()=>{j([]),R(!0);try{var t;let a=await (0,h.listBaseSkills)(e,c,p());j((null!=(t=a.skills)?t:[]).map(e=>E(e,!1)))}catch(e){j([]),l.appToast.error("加载失败:".concat(e instanceof Error?e.message:String(e)))}finally{R(!1)}},[e,c,p]),W=(0,a.useCallback)(async()=>{S([]),M(!0);try{var t;let a=await (0,h.listInstalledSkills)(e,c,p());S((null!=(t=a.skills)?t:[]).map(e=>E(e,!0)))}catch(e){S([]),l.appToast.error("加载失败:".concat(e instanceof Error?e.message:String(e)))}finally{M(!1)}},[e,c,p]),Y=(0,a.useCallback)(async()=>{await Promise.all([q(),W()])},[q,W]),X=(0,a.useCallback)(async t=>{if(await (0,N.confirmAlertDialog)({title:"确认删除 Skill 包?",description:"Skill:".concat(t),confirmText:"删除",cancelText:"取消"}))try{await (0,h.deleteRuntimeSkill)(e,c,p(),t);let a=v.filter(e=>e!==t);f({skills:a}),await H(a,!0),await Y()}catch(e){l.appToast.error("删除失败:".concat(e instanceof Error?e.message:String(e)))}},[e,c,p,v,f,H,Y]);(0,a.useEffect)(()=>{"installed"===B&&Y()},[B,Y]);let J=(0,a.useCallback)(()=>{Y()},[Y]),Q=(0,a.useMemo)(()=>{let e=y.map(e=>({name:e.id,source:"base",description:e.description||"",enabled:v.includes(e.id)})),t=new Set(e.map(e=>e.name)),a=C.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:v.includes(e.id)}));return[...e.sort((e,t)=>e.name.localeCompare(t.name)),...a]},[y,C,v]),$=(0,a.useCallback)((e,t)=>{let a=t?[...new Set([...v,e])].sort():v.filter(t=>t!==e);f({skills:a}),H(a,!0)},[v,f,H]),Z=(0,a.useCallback)(t=>{window.open((0,h.exportRuntimeSkillUrl)(e,c,p(),t),"_blank","noopener")},[e,c,p]),ee=(0,a.useCallback)(e=>{F(e),V(!0)},[]);return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(_.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:()=>U(!0),children:[(0,t.jsx)(d.default,{name:"Import",size:16,className:"align-middle"}),"导入Skill"]})}),(0,t.jsxs)(s.AppTabs,{tabs:O,value:B,listVariant:"line",onChange:e=>D(e),children:[(0,t.jsx)(s.AppTabsPanel,{value:"installed",children:P||z?(0,t.jsx)(b.Loading,{text:"加载中…",className:"min-h-[200px]"}):(0,t.jsx)(k,{items:Q,saveBusy:I,onToggleEnabled:$,onEditBase:ee,onExport:Z,onRemove:X})}),(0,t.jsx)(s.AppTabsPanel,{value:"cloud_catalog",className:"flex min-h-0 flex-1 flex-col",children:(0,t.jsx)(x,{active:"cloud_catalog"===B,wsUrl:e,apiBase:c,agent:p(),onAfterInstall:J,className:"min-h-0 flex-1"})})]}),(0,t.jsx)(A,{open:L,onOpenChange:e=>{U(e),e||Y()},wsUrl:e,apiBase:c,agent:p()}),(0,t.jsx)(w,{open:K,onOpenChange:V,skillName:G,wsUrl:e,apiBase:c,agent:p(),onSaved:()=>void Y()})]})}}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,36413,e=>{"use strict";e.s(["StatusBadge",()=>i],36413);var t=e.i(18050),a=e.i(25913),n=e.i(75157);let r=(0,a.cva)("inline-flex shrink-0 items-center justify-center rounded-full border px-2 py-0.5 text-xs font-medium whitespace-nowrap transition-colors focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] [&>svg]:pointer-events-none [&>svg]:size-3",{variants:{variant:{default:"border-transparent bg-primary text-primary-foreground",secondary:"border-transparent bg-secondary text-secondary-foreground",destructive:"border-transparent bg-destructive text-white",outline:"text-foreground"}},defaultVariants:{variant:"default"}});function s(e){let{className:a,variant:s,...l}=e;return(0,t.jsx)("span",{"data-slot":"badge",className:(0,n.cn)(r({variant:s}),a),...l})}let l={success:{root:"border-transparent bg-[var(--green-light)] text-[var(--green-dark)]",dot:"bg-[var(--ds-ok)]"},danger:{root:"border-transparent bg-[#fef2f2] text-[var(--ds-danger)]",dot:"bg-[var(--ds-danger)]"},default:{root:"border-transparent bg-[var(--surface-2)] text-[var(--ds-muted)]",dot:"bg-[var(--ds-muted)]"},progress:{root:"border-transparent bg-[color-mix(in_srgb,var(--blue)_12%,var(--surface-1))] text-[var(--blue)]",dot:"bg-[var(--blue)]"},warning:{root:"border-transparent bg-[color-mix(in_srgb,var(--amber)_14%,var(--surface-1))] text-[var(--amber)]",dot:"bg-[var(--amber)]"}};function i(e){let{tone:a="default",showDot:r=!0,dotClassName:i,className:o,children:c,...u}=e,d=l[a];return(0,t.jsxs)(s,{variant:"outline",className:(0,n.cn)("gap-1.5",d.root,o),...u,children:[r?(0,t.jsx)("span",{className:(0,n.cn)("size-1.5 shrink-0 rounded-full",d.dot,i),"aria-hidden":!0}):null,c]})}},55242,e=>{"use strict";e.s(["AppDialog",()=>s]);var t=e.i(18050),a=e.i(71645),n=e.i(76639),r=e.i(75157);function s(e){let{open:s,onOpenChange:l,title:i,children:o,footer:c,width:u="max-w-3xl",minHeight:d}=e,p=(0,a.useId)();return(0,t.jsx)(n.Dialog,{open:s,onOpenChange:l,children:(0,t.jsxs)(n.DialogContent,{"aria-labelledby":p,className:(0,r.cn)(u,d?"!min-h-[--min-h]":""),style:d?{"--min-h":d}:void 0,children:[(0,t.jsxs)(n.DialogHeader,{children:[(0,t.jsx)(n.DialogTitle,{id:p,children:i}),(0,t.jsx)(n.DialogClose,{"aria-label":"关闭"})]}),(0,t.jsx)(n.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-border)] bg-[var(--ds-sidebar)] px-4 py-3",children:c}):null]})})}},98183,(e,t,a)=>{"use strict";function n(e){let t={};for(let[a,n]of e.entries()){let e=t[a];void 0===e?t[a]=n:Array.isArray(e)?e.push(n):t[a]=[e,n]}return t}function r(e){return"string"==typeof e?e:("number"!=typeof e||isNaN(e))&&"boolean"!=typeof e?"":String(e)}function s(e){let t=new URLSearchParams;for(let[a,n]of Object.entries(e))if(Array.isArray(n))for(let e of n)t.append(a,r(e));else t.set(a,r(n));return t}function l(e){for(var t=arguments.length,a=Array(t>1?t-1:0),n=1;n<t;n++)a[n-1]=arguments[n];for(let t of a){for(let a of t.keys())e.delete(a);for(let[a,n]of t.entries())e.append(a,n)}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 l},searchParamsToUrlQuery:function(){return n},urlQueryToSearchParams:function(){return s}})},95057,(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 s},formatWithValidation:function(){return i},urlObjectKeys:function(){return l}});let n=e.r(90809)._(e.r(98183)),r=/https?|ftp|gopher|file/;function s(e){let{auth:t,hostname:a}=e,s=e.protocol||"",l=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(n.urlQueryToSearchParams(o)));let u=e.search||o&&"?"+o||"";return s&&!s.endsWith(":")&&(s+=":"),e.slashes||(!s||r.test(s))&&!1!==c?(c="//"+(c||""),l&&"/"!==l[0]&&(l="/"+l)):c||(c=""),i&&"#"!==i[0]&&(i="#"+i),u&&"?"!==u[0]&&(u="?"+u),""+s+c+(l=l.replace(/[?#]/g,encodeURIComponent))+(u=u.replace("#","%23"))+i}let l=["auth","hash","host","hostname","href","path","pathname","port","protocol","query","search","slashes"];function i(e){return s(e)}},18967,(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 n},execOnce:function(){return r},getDisplayName:function(){return c},getLocationOrigin:function(){return i},getURL:function(){return o},isAbsoluteUrl:function(){return l},isResSent:function(){return u},loadGetInitialProps:function(){return p},normalizeRepeatedSlashes:function(){return d},stringifyError:function(){return y}});let n=["CLS","FCP","FID","INP","LCP","TTFB"];function r(e){let t,a=!1;return function(){for(var n=arguments.length,r=Array(n),s=0;s<n;s++)r[s]=arguments[s];return a||(a=!0,t=e(...r)),t}}let s=/^[a-zA-Z][a-zA-Z\d+\-.]*?:/,l=e=>s.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 u(e){return e.finished||e.headersSent}function d(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 n=await e.getInitialProps(t);if(a&&u(a))return n;if(!n)throw Object.defineProperty(Error('"'+c(e)+'.getInitialProps()" should resolve to an object. But found "'+n+'" instead.'),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});return n}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})}},73668,(e,t,a)=>{"use strict";Object.defineProperty(a,"__esModule",{value:!0}),Object.defineProperty(a,"isLocalURL",{enumerable:!0,get:function(){return s}});let n=e.r(18967),r=e.r(52817);function s(e){if(!(0,n.isAbsoluteUrl)(e))return!0;try{let t=(0,n.getLocationOrigin)(),a=new URL(e,t);return a.origin===t&&(0,r.hasBasePath)(a.pathname)}catch(e){return!1}}},84508,(e,t,a)=>{"use strict";Object.defineProperty(a,"__esModule",{value:!0}),Object.defineProperty(a,"errorOnce",{enumerable:!0,get:function(){return n}});let n=e=>{}},22016,(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 n=e.r(90809),r=e.r(18050),s=n._(e.r(71645)),l=e.r(95057),i=e.r(8372),o=e.r(18581),c=e.r(18967),u=e.r(84395);e.r(33525);let d=e.r(91949),p=e.r(73668),m=e.r(99781);e.r(84508);let f=e.r(65165);function g(e){return"string"==typeof e?e:(0,l.formatUrl)(e)}function x(e){var t;let a,n,l,[x,v]=(0,s.useOptimistic)(d.IDLE_LINK_STATUS),b=(0,s.useRef)(null),{href:y,as:j,children:k,prefetch:C=null,passHref:S,replace:N,shallow:w,scroll:T,onClick:A,onMouseEnter:E,onTouchStart:I,legacyBehavior:M=!1,onNavigate:P,ref:B,unstable_dynamicOnHover:O,...R}=e;a=k,M&&("string"==typeof a||"number"==typeof a)&&(a=(0,r.jsx)("a",{children:a}));let D=s.default.useContext(i.AppRouterContext),z=!1!==C,L=!1!==C?null===(t=C)||"auto"===t?f.FetchStrategy.PPR:f.FetchStrategy.Full:f.FetchStrategy.PPR,{href:_,as:U}=s.default.useMemo(()=>{let e=g(y);return{href:e,as:j?g(j):e}},[y,j]);M&&(n=s.default.Children.only(a));let F=M?n&&"object"==typeof n&&n.ref:B,K=s.default.useCallback(e=>(null!==D&&(b.current=(0,d.mountLinkInstance)(e,_,D,L,z,v)),()=>{b.current&&((0,d.unmountLinkForCurrentNavigation)(b.current),b.current=null),(0,d.unmountPrefetchableInstance)(e)}),[z,_,D,L,v]),V={ref:(0,o.useMergedRef)(K,F),onClick(e){M||"function"!=typeof A||A(e),M&&n.props&&"function"==typeof n.props.onClick&&n.props.onClick(e),D&&(e.defaultPrevented||function(e,t,a,n,r,l,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)){r&&(e.preventDefault(),location.replace(t));return}if(e.preventDefault(),i){let e=!1;if(i({preventDefault:()=>{e=!0}}),e)return}s.default.startTransition(()=>{(0,m.dispatchNavigateAction)(a||t,r?"replace":"push",null==l||l,n.current)})}}(e,_,U,b,N,T,P))},onMouseEnter(e){M||"function"!=typeof E||E(e),M&&n.props&&"function"==typeof n.props.onMouseEnter&&n.props.onMouseEnter(e),D&&z&&(0,d.onNavigationIntent)(e.currentTarget,!0===O)},onTouchStart:function(e){M||"function"!=typeof I||I(e),M&&n.props&&"function"==typeof n.props.onTouchStart&&n.props.onTouchStart(e),D&&z&&(0,d.onNavigationIntent)(e.currentTarget,!0===O)}};return(0,c.isAbsoluteUrl)(U)?V.href=U:M&&!S&&("a"!==n.type||"href"in n.props)||(V.href=(0,u.addBasePath)(U)),l=M?s.default.cloneElement(n,V):(0,r.jsx)("a",{...R,...V,children:a}),(0,r.jsx)(h.Provider,{value:x,children:l})}let h=(0,s.createContext)(d.IDLE_LINK_STATUS),v=()=>(0,s.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)},3862,e=>{"use strict";e.s(["ImManageView",()=>n]);var t=e.i(18050),a=e.i(28370);function n(){return(0,t.jsx)(a.AgentEnvGroupSettingsView,{group:"tutui"})}},20378,e=>{"use strict";e.s(["GitManageView",()=>n]);var t=e.i(18050),a=e.i(28370);function n(){return(0,t.jsx)(a.AgentEnvGroupSettingsView,{group:"git"})}},42307,e=>{"use strict";e.s(["GeelibManageView",()=>n]);var t=e.i(18050),a=e.i(28370);function n(){return(0,t.jsx)(a.AgentEnvGroupSettingsView,{group:"geelib"})}},38962,e=>{"use strict";e.s(["SystemManageView",()=>n]);var t=e.i(18050),a=e.i(28370);function n(){return(0,t.jsx)(a.AgentEnvGroupSettingsView,{group:"system"})}},19573,e=>{"use strict";e.s(["ToolsManageView",()=>k],19573);var t=e.i(18050),a=e.i(71645),n=e.i(65934),r=e.i(87243),s=e.i(13354),l=e.i(50711),i=e.i(19455),o=e.i(94055),c=e.i(94197),u=e.i(92715),d=e.i(36413);function p(e){let{items:a,saveBusy:n,onToggle:r,onExport:s,onRemove:l,className:i}=e,p=[{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)(d.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)(o.AccentSwitch,{checked:!!e.enabled,disabled:n,onCheckedChange:t=>r(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)(c.IconTooltipButton,{icon:"Download",label:a?"导出":"系统内置工具不可导出",ariaLabel:"导出 ".concat(e.label||e.name),disabled:n||!a,onClick:()=>s(e.name)}),(0,t.jsx)(c.IconTooltipButton,{icon:"Trash2",label:a?"删除":"系统内置工具不可删除",tone:"danger",ariaLabel:"删除 ".concat(e.label||e.name),disabled:n||!a,onClick:()=>{l(e.name)}})]})}}];return(0,t.jsx)(u.AppTable,{rows:a,columns:p,getRowKey:e=>"tools:".concat(e.name),className:i})}var m=e.i(36845),f=e.i(53925);function g(e){let{open:a,onOpenChange:n,wsUrl:r,apiBase:s,agent:l}=e;return(0,t.jsx)(f.ResourceImportDialog,{open:a,onOpenChange:n,title:"导入工具 zip",description:"选择一个 zip 文件并导入到 tools-runtime。",uploadUrl:(0,m.buildToolsRuntimeImportUrl)(r,s,l),resetKey:l})}var x=e.i(68499),h=e.i(72064),v=e.i(56708),b=e.i(62427);function y(e){return(null!=e.packageId?String(e.packageId).trim():"")||e.name}function j(e){let t=null!=e.packageId?String(e.packageId).trim():"";return!0===e.deletable&&t.length>0}function k(){let e=(0,n.useAppStore)(e=>e.wsUrl),o=(0,n.useAppStore)(e=>e.apiBase),c=(0,n.useAppStore)(e=>e.agentConfig),u=(0,n.useAppStore)(e=>e.patchAgentConfig),{currentAgent:d,loadAgentConfig:m}=(0,r.useSession)(),f=(0,l.usePersistAgentConfigField)("tools"),k=c.tools,[C,S]=(0,a.useState)([]),[N,w]=(0,a.useState)(!1),[T,A]=(0,a.useState)(!1),[E,I]=(0,a.useState)(!1);(0,a.useEffect)(()=>{m()},[m]);let M=(0,a.useCallback)(async(e,t)=>{A(!0);try{await f(e,{silent:t})}finally{A(!1)}},[f]),P=(0,a.useCallback)(async()=>{S([]),w(!0);try{var t;let a=await (0,b.listInstalledTools)(e,o,d());S(null!=(t=a.tools)?t:[])}catch(e){S([]),s.appToast.error("加载失败:".concat(e instanceof Error?e.message:String(e)))}finally{w(!1)}},[e,o,d]);(0,a.useEffect)(()=>{P()},[P]);let B=(0,a.useCallback)(e=>C.find(t=>t.name===e),[C]),O=(0,a.useMemo)(()=>C.slice().sort((e,t)=>e.name.localeCompare(t.name)).map(e=>(function(e,t){var a;let n=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:n,canManage:j({deletable:e.deletable,packageId:n}),layer:e.layer}})(e,k.includes(e.name))),[C,k]),R=(0,a.useCallback)(async t=>{let a=B(t);if(!a||!j({deletable:a.deletable,packageId:a.packageName}))return void s.appToast.error("系统内置工具不可删除");if(await (0,x.confirmAlertDialog)({title:"确认删除工具包?",description:"工具名:".concat(t),confirmText:"删除",cancelText:"取消"}))try{await (0,b.deleteRuntimeTool)(e,o,d(),y({packageId:a.packageName,name:a.name}));let n=k.filter(e=>e!==t);u({tools:n}),await M(n,!0),await P()}catch(e){s.appToast.error("删除失败:".concat(e instanceof Error?e.message:String(e)))}},[B,e,o,d,k,u,M,P]),D=(0,a.useCallback)(t=>{let a=B(t);if(!a||!j({deletable:a.deletable,packageId:a.packageName}))return void s.appToast.error("系统内置工具不可导出");window.open((0,b.exportRuntimeToolUrl)(e,o,d(),y({packageId:a.packageName,name:a.name})),"_blank","noopener")},[B,e,o,d]),z=(0,a.useCallback)((e,t)=>{let a=t?[...new Set([...k,e])].sort():k.filter(t=>t!==e).sort();u({tools:a}),M(a,!0)},[k,u,M]);return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(v.ManageChromeHeaderActions,{children:(0,t.jsxs)(i.Button,{id:"btnAgentPickerToolImport",type:"button",variant:"plain-outline",size:"lg",className:"inline-flex items-center justify-center gap-1.5",onClick:()=>I(!0),children:[(0,t.jsx)(h.default,{name:"Import",size:16,className:"align-middle"}),"导入自定义工具"]})}),N?(0,t.jsx)("p",{className:"px-3 py-6 text-center text-[var(--ds-muted)]",children:"加载中…"}):(0,t.jsx)(p,{items:O,saveBusy:T,onToggle:z,onExport:D,onRemove:R}),(0,t.jsx)(g,{open:E,onOpenChange:e=>{I(e),e||P()},wsUrl:e,apiBase:o,agent:d()})]})}},62849,e=>{"use strict";e.s(["EnvManageView",()=>M],62849);var t=e.i(18050),a=e.i(71645),n=e.i(56708),r=e.i(19455),s=e.i(72064),l=e.i(51419),i=e.i(76639),o=e.i(93479),c=e.i(13354),u=e.i(87243),d=e.i(67327),p=e.i(44039),m=e.i(99650),f=e.i(18900),g=e.i(94606),x=e.i(75157),h=e.i(69051),v=e.i(65934),b=e.i(46412);let y=[{id:"env-zhixiao",name:"zhixiao",baseUrl:"https://claudecode-internal.geelib.360.cn",model:"MiniMax-M2.7",isDefault:!0},{id:"env-backup",name:"backup-provider",baseUrl:"https://api.anthropic.com",model:"Claude-Sonnet-4",isDefault:!1}],j=[{key:"name",name:"名称",required:!0,placeholder:"例如 OpenAI 主站"},{key:"id",name:"服务商 ID(slug)",required:!0,placeholder:"例如 openai-main"},{key:"provider",name:"协议类型",required:!0,options:[{label:"openai",value:"openai"},{label:"anthropic",value:"anthropic"}]},{key:"baseUrl",name:"接口地址",required:!0,placeholder:"例如 https://api.openai.com/v1"},{key:"apiKey",name:"API秘钥",required:!0,inputType:"password"},{key:"authToken",name:"认证变量",inputType:"password"},{key:"modelId",name:"模型 ID",required:!0,placeholder:"例如 gpt-4o"},{key:"modelLabel",name:"模型展示名(可选)"}],k="custom",C=new Set(["description"]);function S(){return Object.fromEntries(j.map(e=>{var t,a,n;return[e.key,null!=(n=null==(a=e.options)||null==(t=a[0])?void 0:t.value)?n:""]}))}function N(e){let{open:n,onOpenChange:s,onSaved:y}=e,N=(0,a.useId)(),w=(0,v.useAppStore)(e=>e.wsUrl),T=(0,v.useAppStore)(e=>e.apiBase),A=(0,v.useAppStore)(e=>e.agentConfig),{currentAgent:E,loadAgentConfig:I}=(0,u.useSession)(),{sendReloadAgentConfig:M}=(0,d.useWebSocketSender)(),[P,B]=(0,a.useState)(!0),[O,R]=(0,a.useState)(!1),[D,z]=(0,a.useState)(!1),[L,_]=(0,a.useState)([]),[U,F]=(0,a.useState)((0,p.mergeAgentEnvGroupLabels)(void 0)),[K,V]=(0,a.useState)({}),[J,G]=(0,a.useState)({}),[H,q]=(0,a.useState)(S),W=(0,a.useMemo)(()=>(0,p.schemaKeySet)(L),[L]),Q=(0,a.useMemo)(()=>(0,p.groupAgentEnvSchemaByGroup)(L),[L]).llm,Z=(0,a.useMemo)(()=>{let e=[{value:k,label:"自定义设置"}];return Q.length&&e.push({value:"llm",label:U.llm}),e},[Q.length,U.llm]),X=(0,a.useCallback)(e=>{G((0,p.buildGroupAgentEnvFieldValues)(e,Q,K));let t=S();for(let a of j)C.has(a.key)||"string"==typeof e[a.key]&&(t[a.key]=e[a.key]);q(t),z(!1)},[Q,K]),Y=(0,a.useCallback)(async()=>{try{let e=await (0,h.loadSystemEnv)(w,T,E()),t="string"==typeof e.content?e.content:"",a=(0,p.normalizeAgentEnvSchema)(e.schema),n=(0,f.parseEnvContentToMap)(t);_(a),F((0,p.mergeAgentEnvGroupLabels)(e.groupLabels)),V((0,p.buildProjectEnvFormDefaults)(a,n))}catch(e){c.appToast.error("加载环境变量表单配置失败:".concat(e instanceof Error?e.message:String(e))),_([]),V({})}},[w,T,E]);(0,a.useEffect)(()=>{n&&(B(!0),Promise.all([I(),Y()]).finally(()=>{B(!1)}))},[n,I,Y]),(0,a.useEffect)(()=>{n&&!P&&X({...A.env})},[n,A.env,X,P]);let $=(0,a.useCallback)((e,t)=>{z(!0),G(a=>({...a,[e]:t}))},[]),ee=(0,a.useCallback)((e,t)=>{z(!0),q(a=>({...a,[e]:t}))},[]),et=(0,a.useCallback)(async e=>{if(e)return void s(!0);(!D||await (0,g.confirmDiscardFlyoutChanges)())&&s(!1)},[D,s]),ea=(0,a.useCallback)(async()=>{let e=function(e){for(let a of j){var t;if(a.required&&!String(null!=(t=e[a.key])?t:"").trim())return{ok:!1,message:"请填写".concat(a.name)}}return{ok:!0}}(H);if(!e.ok)return void c.appToast.info(e.message);let t=function(e,t){let a={};for(let r of j){var n;if(C.has(r.key))continue;let s=r.key.trim(),l=String(null!=(n=e[r.key])?n:"");if(l.trim()){if(t.has(s))return{ok:!1,message:"自定义变量不能与固定表单重复:".concat(s)};a[s]=l}}return{ok:!0,env:a}}(H,W);if(!t.ok)return void c.appToast.info(t.message);let a=v.useAppStore.getState().agentConfig.env,n=(0,p.mergeGroupEnvIntoAgentEnv)(a,Q,J);n=function(e,t){let a={...e};for(let e of j){var n;if(C.has(e.key))continue;let r=e.key.trim(),s=String(null!=(n=t[e.key])?n:"").trim();s?a[r]=s:delete a[r]}return a}(n,H),R(!0);try{await (0,m.persistAgentEnv)(w,T,E(),n,M),z(!1),await (null==y?void 0:y()),s(!1)}catch(e){c.appToast.error("保存环境变量失败:".concat(e instanceof Error?e.message:String(e)))}finally{R(!1)}},[H,W,Q,J,w,T,E,M,s,y]);return(0,t.jsx)(i.Dialog,{open:n,onOpenChange:e=>void et(e),children:(0,t.jsxs)(i.DialogContent,{"aria-labelledby":N,className:"max-w-4xl",children:[(0,t.jsxs)(i.DialogHeader,{children:[(0,t.jsx)("div",{className:"min-w-0 flex-1",children:(0,t.jsx)(i.DialogTitle,{id:N,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:P?(0,t.jsx)("div",{className:"py-8 text-center text-[var(--ds-muted)]",children:"加载中…"}):(0,t.jsxs)(l.AppTabs,{tabs:Z,defaultValue:k,listVariant:"line",className:"min-h-0 flex-1",contentClassName:"min-h-0 overflow-y-auto",children:[(0,t.jsx)(l.AppTabsPanel,{value:k,children:(0,t.jsx)("div",{className:"divide-y divide-[var(--ds-border)]",children:j.map(e=>{var a,n;let r="custom-env-field-".concat(e.key),s="string"==typeof H[e.key]?H[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:r,children:[e.name,e.required?(0,t.jsx)("span",{className:"ml-0.5 text-destructive",children:"*"}):null]}),e.options?(0,t.jsx)("select",{id:r,className:(0,x.cn)("h-8 rounded-md border border-[var(--ds-border)] bg-[var(--ds-bg)] px-3 text-sm text-[var(--ds-text)] outline-none focus-visible:border-[var(--ds-accent)] focus-visible:ring-2 focus-visible:ring-[color-mix(in_srgb,var(--ds-accent)_18%,transparent)]",e.className),value:s,onChange:t=>ee(e.key,t.target.value),children:e.options.map(e=>(0,t.jsx)("option",{value:e.value,children:e.label},e.value))}):(0,t.jsx)(o.Input,{id:r,type:null!=(a=e.inputType)?a:"text",spellCheck:!1,autoComplete:"off",placeholder:null!=(n=e.placeholder)?n:"请输入".concat(e.name),className:(0,x.cn)("border-[var(--ds-border)] bg-[var(--ds-bg)] placeholder:text-[var(--text-placeholder)]",e.className),value:s,onChange:t=>ee(e.key,t.target.value)})]},e.key)})})}),Q.length?(0,t.jsx)(l.AppTabsPanel,{value:"llm",children:(0,t.jsx)(b.AgentEnvGroupForm,{fields:Q,fieldValues:J,onFieldChange:$})}):null]})}),(0,t.jsxs)("div",{className:"flex shrink-0 justify-end gap-2 border-t border-[var(--ds-border)] bg-[var(--ds-sidebar)] px-4 py-3",children:[(0,t.jsx)(r.Button,{type:"button",variant:"plain-outline",size:"lg",disabled:P||O,onClick:()=>void et(!1),className:"cursor-pointer",children:"取消"}),(0,t.jsx)(r.Button,{type:"button",size:"lg",disabled:P||O,onClick:()=>void ea(),className:"cursor-pointer",children:O?"保存中…":"保存"})]})]})})}var w=e.i(85413),T=e.i(94197),A=e.i(68499);function E(e){let{row:a,onSetDefault:n,onTest:s,onEdit:l,onDelete:i}=e,o="".concat(a.baseUrl," · ").concat(a.model);return(0,t.jsxs)("article",{className:(0,x.cn)("group flex w-full items-center gap-4 rounded-xl border border-solid bg-[var(--ds-bg)] px-4 py-3.5 transition-[border-color,box-shadow]",a.isDefault?"border-[color:var(--ds-ok)]":"border-[color:var(--ds-border)] 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,x.cn)("size-2 shrink-0 rounded-full",a.isDefault?"bg-[var(--ds-ok)]":"bg-[var(--ds-muted)]"),"aria-hidden":"true"}),(0,t.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,t.jsx)("h3",{className:"truncate font-semibold text-[var(--ds-text)]",children:a.name}),(0,t.jsx)("p",{className:"mt-1 truncate text-[var(--ds-muted)]",title:o,children:o})]})]}),(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)(r.Button,{type:"button",variant:"plain",size:"sm",disabled:a.isDefault,className:"h-8 cursor-pointer !px-0 text-[var(--ds-text)] hover:text-[var(--ds-accent)] disabled:cursor-not-allowed disabled:text-[var(--ds-muted)] disabled:opacity-60",onClick:()=>n(a.id),children:"设为默认"}),(0,t.jsx)(r.Button,{type:"button",variant:"plain",size:"sm",className:"h-8 cursor-pointer px-2 text-[var(--ds-text)] hover:text-[var(--ds-accent)]",onClick:()=>s(a.id),children:"测试"}),(0,t.jsx)(T.IconTooltipButton,{icon:"Edit",label:"编辑",ariaLabel:"编辑 ".concat(a.name),onClick:()=>l(a.id)}),(0,t.jsx)(T.IconTooltipButton,{icon:"Trash2",label:a.isDefault?"默认服务商不可删除":"删除",tone:"danger",disabled:a.isDefault,ariaLabel:"删除 ".concat(a.name),onClick:()=>i(a.id)})]})]})}function I(){let[e,n]=(0,a.useState)(()=>y.map(e=>({...e}))),r=(0,a.useCallback)(e=>{n(t=>t.map(t=>({...t,isDefault:t.id===e}))),c.appToast.success("已设为默认服务商")},[]),s=(0,a.useCallback)(t=>{var a;let n=e.find(e=>e.id===t);c.appToast.info("正在测试「".concat(null!=(a=null==n?void 0:n.name)?a:t,"」连接…"))},[e]),l=(0,a.useCallback)(t=>{var a;let n=e.find(e=>e.id===t);c.appToast.info("编辑「".concat(null!=(a=null==n?void 0:n.name)?a:t,"」功能开发中"))},[e]),i=(0,a.useCallback)(async t=>{let a=e.find(e=>e.id===t);a&&!a.isDefault&&await (0,A.confirmAlertDialog)({title:"确认删除服务商?",description:"服务商「".concat(a.name,"」将被永久删除,此操作不可恢复。"),confirmText:"删除",cancelText:"取消"})&&(n(e=>e.filter(e=>e.id!==t)),c.appToast.success("已删除服务商"))},[e]);return(0,t.jsx)("div",{className:"mt-4 flex flex-col gap-3",children:0===e.length?(0,t.jsx)(w.Empty,{text:"暂无服务商"}):e.map(e=>(0,t.jsx)(E,{row:e,onSetDefault:r,onTest:s,onEdit:l,onDelete:e=>void i(e)},e.id))})}function M(){let[e,l]=(0,a.useState)(!1);return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.ManageChromeHeaderActions,{children:(0,t.jsx)("div",{className:"flex flex-wrap items-center",children:(0,t.jsxs)(r.Button,{type:"button",variant:"plain-outline",size:"lg",onClick:()=>l(!0),className:"mr-[12px]",children:[(0,t.jsx)(s.default,{name:"Create",size:16,className:"align-middle"}),"添加服务商"]})})}),(0,t.jsx)(I,{}),(0,t.jsx)(N,{open:e,onOpenChange:l})]})}},37991,e=>{"use strict";e.s(["McpManageView",()=>C],37991);var t=e.i(18050),a=e.i(71645),n=e.i(65934),r=e.i(87243),s=e.i(13354),l=e.i(50711),i=e.i(55242),o=e.i(92715),c=e.i(2839),u=e.i(36413),d=e.i(19455),p=e.i(94055),m=e.i(94197),f=e.i(36845),g=e.i(53925);function x(e){let{open:a,onOpenChange:n,wsUrl:r,apiBase:s,agent:l}=e;return(0,t.jsx)(g.ResourceImportDialog,{open:a,onOpenChange:n,title:"导入 MCP zip",description:"选择一个 zip 文件并导入到 mcp-runtime。",uploadUrl:(0,f.buildMcpRuntimeImportUrl)(r,s,l),resetKey:l})}var h=e.i(62427);function v(e){return(null!=e.packageId?String(e.packageId).trim():"")||e.id}function b(e){let{open:n,onOpenChange:r,itemId:l,source:o,wsUrl:c,apiBase:u,agent:p,onSaved:m}=e,[f,g]=(0,a.useState)(""),[x,v]=(0,a.useState)(!1),[b,y]=(0,a.useState)(!1),j="remote"===o?"remote":"runtime";(0,a.useEffect)(()=>{if(!n||!l.trim())return;let e=!1;return v(!0),g("加载中…"),(0,h.loadRuntimeMcpItemConfig)(c,u,p,l,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||(s.appToast.error("加载 MCP 配置失败:".concat(t instanceof Error?t.message:String(t))),r(!1))}).finally(()=>{e||v(!1)}),()=>{e=!0}},[n,l,c,u,p,j,r]);let k=(0,a.useCallback)(async()=>{let e;if(!l.trim())return;let t=f.trim();try{e=t?JSON.parse(t):{}}catch(e){s.appToast.error("JSON 解析失败:".concat(e instanceof Error?e.message:String(e)));return}if(!e||"object"!=typeof e||Array.isArray(e))return void s.appToast.error("配置必须是 JSON 对象");if("mcpServers"in e&&null!=e.mcpServers)return void s.appToast.error("请填写标准 server 配置(command/args/env),不要嵌套 mcpServers");let a=0===Object.keys(e).length;y(!0);try{a?await (0,h.clearRuntimeMcpItemConfig)(c,u,p,l,j):await (0,h.saveRuntimeMcpItemConfig)(c,u,p,l,j,e),s.appToast.success("MCP 配置已保存"),r(!1),null==m||m()}catch(e){s.appToast.error("保存失败:".concat(e instanceof Error?e.message:String(e)))}finally{y(!1)}},[l,f,c,u,p,j,r,m]);return(0,t.jsx)(i.AppDialog,{open:n,onOpenChange:r,title:"编辑 MCP 配置 · ".concat(l),width:"max-w-4xl",minHeight:"420px",footer:(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(d.Button,{type:"button",variant:"plain-outline",size:"lg",disabled:b,onClick:()=>r(!1),children:"取消"}),(0,t.jsx)(d.Button,{type:"button",size:"lg",disabled:b||x,onClick:()=>void k(),children:"保存"})]}),children:(0,t.jsx)("textarea",{className:"focus-visible:ring-[var(--ds-accent)]/30 min-h-[320px] w-full resize-y rounded-md border border-[var(--ds-border)] bg-[var(--ds-bg)] p-3 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 y=e.i(68499),j=e.i(72064),k=e.i(56708);function C(){let e=(0,n.useAppStore)(e=>e.wsUrl),f=(0,n.useAppStore)(e=>e.apiBase),g=(0,n.useAppStore)(e=>e.agentConfig),C=(0,n.useAppStore)(e=>e.setAgentConfig),{currentAgent:S,loadAgentConfig:N}=(0,r.useSession)(),w=(0,l.usePersistAgentConfigField)("mcpServers"),T=g.mcpServers,A=(0,a.useMemo)(()=>[...T].sort().join("\0"),[T]),[E,I]=(0,a.useState)([]),[M,P]=(0,a.useState)([]),[B,O]=(0,a.useState)(!1),[R,D]=(0,a.useState)(!1),[z,L]=(0,a.useState)(!1),[_,U]=(0,a.useState)(!1),[F,K]=(0,a.useState)(""),[V,J]=(0,a.useState)(!1),[G,H]=(0,a.useState)(""),[q,W]=(0,a.useState)(),[Q,Z]=(0,a.useState)(!1);(0,a.useEffect)(()=>{N()},[N]);let X=(0,a.useCallback)(async(e,t)=>{D(!0);try{await w(e,{silent:t})}finally{D(!1)}},[w]),Y=(0,a.useCallback)(e=>E.find(t=>t.id===e),[E]),$=(0,a.useCallback)(e=>{let t=Y(e);H(e),W(null==t?void 0:t.source),Z(!0)},[Y]),ee=(0,a.useCallback)(async()=>{I([]),O(!0);try{var t;let a=await (0,h.listMcpServers)(e,f,S());I((null!=(t=a.servers)?t:[]).map(e=>{var t,a,n;return{...e,id:e.name,label:e.name,description:null!=(a=null!=(t=e.description)?t:e.source)?a:"",source:null!=(n=e.source)?n:"",installed:!!e.installed,packageId:e.packageId}}))}catch(e){I([]),s.appToast.error("加载失败:".concat(e instanceof Error?e.message:String(e)))}finally{O(!1)}},[e,f,S]),et=(0,a.useCallback)(async t=>{var a;let n=Y(t),r=null!=(a=null==n?void 0:n.source)?a:"";if("runtime"!==r&&"remote"!==r)return void s.appToast.error("基础MCP不可删除");if(await (0,y.confirmAlertDialog)({title:"确认删除 MCP?",description:"服务器名:".concat(t),confirmText:"删除",cancelText:"取消"}))try{if("remote"===r){let a=await (0,h.loadRemoteMcpJson)(e,f,S()),n={};try{n=JSON.parse(String(a.content||"{}"))}catch(e){n={mcpServers:{}}}(!n.mcpServers||Array.isArray(n.mcpServers)||"object"!=typeof n.mcpServers)&&(n.mcpServers={}),delete n.mcpServers[t],await (0,h.saveRemoteMcpJson)(e,f,S(),JSON.stringify(n,null,2))}else{let a=n?v(n):t;await (0,h.deleteRuntimeMcp)(e,f,S(),a)}let a=T.filter(e=>e!==t);P(e=>e.filter(e=>e!==t)),C({...g,mcpServers:a}),await X(a,!0),await ee()}catch(e){s.appToast.error("删除失败:".concat(e instanceof Error?e.message:String(e)))}},[Y,e,f,S,T,g,C,X,ee]);(0,a.useEffect)(()=>{ee()},[ee]),(0,a.useEffect)(()=>{P([...T])},[T,A]);let ea=(0,a.useCallback)(async e=>{let t=[...new Set(e)].sort();C({...g,mcpServers:t}),await X(t,!0)},[g,C,X]),en=(0,a.useCallback)(async(e,t)=>{let a=t?[...new Set([...M,e])]:M.filter(t=>t!==e);P(a);try{await ea(a),await ee()}catch(e){P(M),s.appToast.error("切换启用状态失败: ".concat(e))}},[M,ea,ee]),er=(0,a.useMemo)(()=>E.slice().sort((e,t)=>{var a,n;let r=String(null!=(a=e.source)?a:"").localeCompare(String(null!=(n=t.source)?n:""));if(0!==r)return r;let s=+!M.includes(e.id),l=+!M.includes(t.id);return s!==l?s-l:e.id.localeCompare(t.id)}),[E,M]),es=(0,a.useCallback)(t=>{window.open((0,h.exportRuntimeMcpUrl)(e,f,S(),v(t)),"_blank","noopener")},[e,f,S]),el=(0,a.useCallback)(()=>{U(!0),K(""),(0,h.loadRemoteMcpJson)(e,f,S()).then(e=>{K("string"==typeof e.content?e.content:'{\n "mcpServers": {}\n}\n')}).catch(e=>{s.appToast.error("加载 mcp.json 失败:".concat(e instanceof Error?e.message:String(e))),U(!1)})},[e,f,S]),ei=(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 n=t.mcpServers;if(!n||"object"!=typeof n||Array.isArray(n))return"mcpServers 不能为空,且需包含至少一个 server";let r=Object.keys(n).filter(e=>e.trim());if(!r.length)return"mcpServers 不能为空,且需包含至少一个 server";let s=new Set;for(let e of r){let t=e.trim();!t||s.has(t)||s.add(t)}return s.size?null:"未解析到有效的 server 名称"}(F);if(t)return void s.appToast.error(t);J(!0);try{await (0,h.saveRemoteMcpJson)(e,f,S(),F.trim()),s.appToast.success("已保存全局 mcp.json。"),U(!1),await ee()}catch(e){s.appToast.error("保存 mcp.json 失败:".concat(e instanceof Error?e.message:String(e)))}finally{J(!1)}},[e,f,S,F,ee]),eo=[{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)(u.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)(p.AccentSwitch,{checked:M.includes(e.id),disabled:R,onCheckedChange:t=>{en(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 n=null!=(a=e.source)?a:"",r="runtime"===n,s="runtime"===n||"remote"===n;return(0,t.jsxs)("div",{className:"inline-flex items-center justify-end gap-1",children:[(0,t.jsx)(m.IconTooltipButton,{icon:"Download",label:r?"导出":"仅 runtime MCP 支持导出",ariaLabel:"导出 ".concat(e.label),disabled:R||!r,onClick:()=>es(e)}),(0,t.jsx)(m.IconTooltipButton,{icon:"Edit",label:"编辑 MCP 配置",ariaLabel:"编辑 ".concat(e.label),disabled:R,onClick:()=>$(e.id)}),(0,t.jsx)(m.IconTooltipButton,{icon:"Trash2",label:s?"删除":"基础MCP不可删除",tone:"danger",ariaLabel:"删除 ".concat(e.label),disabled:R||!s,onClick:()=>{et(e.id)},iconClassName:"text-red-500"})]})}}];return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(k.ManageChromeHeaderActions,{children:(0,t.jsxs)("div",{className:"flex flex-wrap items-center",children:[(0,t.jsxs)(d.Button,{type:"button",variant:"plain-outline",size:"lg",onClick:el,className:"mr-[12px]",children:[(0,t.jsx)(j.default,{name:"Edit",size:16,className:"align-middle"}),"编辑远程MCP"]}),(0,t.jsxs)(d.Button,{id:"btnAgentImportMcp",type:"button",variant:"plain-outline",size:"lg",className:"inline-flex items-center justify-center gap-1.5",onClick:()=>L(!0),children:[(0,t.jsx)(j.default,{name:"Import",size:16,className:"align-middle"}),"导入本地MCP"]})]})}),(0,t.jsx)("div",{className:"flex min-h-0 flex-1 flex-col gap-3",children:(0,t.jsx)("div",{className:"min-h-0",children:B?(0,t.jsx)(c.Loading,{text:"加载中",className:"min-h-[180px]"}):(0,t.jsx)(o.AppTable,{rows:er,columns:eo,getRowKey:e=>e.id})})}),(0,t.jsx)(x,{open:z,onOpenChange:e=>{L(e),e||ee()},wsUrl:e,apiBase:f,agent:S()}),(0,t.jsx)(b,{open:Q,onOpenChange:Z,itemId:G,source:q,wsUrl:e,apiBase:f,agent:S(),onSaved:()=>{ee(),X(g.mcpServers,!0)}}),(0,t.jsx)(i.AppDialog,{open:_,onOpenChange:U,title:"编辑全局MCP",width:"max-w-4xl",minHeight:"420px",footer:(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(d.Button,{type:"button",variant:"plain-outline",size:"lg",disabled:V,onClick:()=>U(!1),children:"取消"}),(0,t.jsx)(d.Button,{type:"button",size:"lg",disabled:V,onClick:()=>void ei(),children:"保存"})]}),children:(0,t.jsx)("textarea",{className:"focus-visible:ring-[var(--ds-accent)]/30 min-h-[320px] w-full resize-y rounded-md border border-[var(--ds-border)] bg-[var(--ds-bg)] p-3 leading-6 text-[var(--ds-text)] outline-none focus-visible:ring-2",spellCheck:!1,value:F,onChange:e=>K(e.target.value)})})]})}},39721,e=>{"use strict";e.s(["SkillsManageView",()=>M],39721);var t=e.i(18050),a=e.i(71645),n=e.i(65934),r=e.i(87243),s=e.i(13354),l=e.i(50711),i=e.i(51419),o=e.i(19455),c=e.i(72064),u=e.i(92715),d=e.i(93479),p=e.i(75157);function m(e){let{className:a,...n}=e;return(0,t.jsx)("nav",{role:"navigation","aria-label":"pagination","data-slot":"pagination",className:(0,p.cn)("flex w-full justify-end",a),...n})}let f=a.forwardRef((e,a)=>{let{className:n,...r}=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",n),...r})});f.displayName="PaginationContent";let g=a.forwardRef((e,a)=>{let{className:n,...r}=e;return(0,t.jsx)("li",{ref:a,"data-slot":"pagination-item",className:(0,p.cn)("",n),...r})});g.displayName="PaginationItem",a.forwardRef((e,a)=>{let{className:n,isActive:r,size:s="icon",...l}=e;return(0,t.jsx)("a",{ref:a,"aria-current":r?"page":void 0,"data-slot":"pagination-link","data-active":r?"true":void 0,className:(0,p.cn)((0,o.buttonVariants)({variant:r?"outline":"ghost",size:s}),n),...l})}).displayName="PaginationLink";var x=e.i(62427),h=e.i(2839);function v(e){let{active:n,wsUrl:r,apiBase:l,agent:i,onAfterInstall:p,className:v}=e,[b,y]=(0,a.useState)(""),[j,k]=(0,a.useState)(1),[C,S]=(0,a.useState)(0),[N,w]=(0,a.useState)([]),[T,A]=(0,a.useState)(!1),[E,I]=(0,a.useState)(""),[M,P]=(0,a.useState)({}),B=(0,a.useRef)(0),O=(0,a.useCallback)(async()=>{let e=++B.current;A(!0),I("");try{let t=await (0,x.listCloudSkillCatalog)(r,l,i,b,j,10);if(e!==B.current)return;let a=Array.isArray(t.items)?t.items:[],n=[];for(let e of a)e&&"object"==typeof e&&e.id&&n.push({id:String(e.id),title:String(e.title||""),skillName:String(e.skillName||""),description:"string"==typeof e.description?e.description:"",installed:!!e.installed});w(n),S(t.totalPages)}catch(t){if(e!==B.current)return;w([]),S(0),I(t instanceof Error?t.message:String(t))}finally{e===B.current&&A(!1)}},[r,l,i,b,j]);(0,a.useEffect)(()=>{if(!n){y(""),k(1),S(0),w([]),I(""),P({}),B.current+=1;return}O()},[n,O]);let R=(0,a.useMemo)(()=>{if(T)return"加载中…";if(E)return"加载失败:".concat(E);let e=N.reduce((e,t)=>e+ +!!t.installed,0);return"已安装 ".concat(e," 项")},[T,E,N]),D=(0,a.useCallback)(async(e,t)=>{P(t=>({...t,[e]:!0}));try{await (0,x.installCloudSkill)(r,l,i,e),s.appToast.success("云端技能已安装:".concat(t)),await O(),null==p||p()}catch(e){s.appToast.error("安装失败:".concat(e instanceof Error?e.message:String(e)))}finally{P(t=>{let a={...t};return delete a[e],a})}},[r,l,i,O,p]);if((0,a.useCallback)(e=>{k(1),y(e)},[]),!n)return null;let z=C>0?"第 ".concat(j,"/").concat(C," 页"):"第 0/0 页",L=T||j<=1,_=T||C<=0||j>=C,U=[{key:"name",title:"名称",headerClassName:"",cellClassName:" text-[var(--ds-text)]",render:e=>e.skillName?"".concat(e.skillName):e.id},{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=!!M[e.id],n=!!e.installed;return!a&&n?"-":(0,t.jsx)(o.Button,{type:"button",size:"sm",variant:"outline",disabled:a||n,onClick:()=>void D(e.id,e.title||e.skillName||e.id),children:a?"安装中…":n?"已安装":"安装"})}}];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)(d.Input,{type:"search",value:b,onChange:e=>y(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)("div",{className:"text-[var(--ds-muted)]",children:R}),(0,t.jsx)(u.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:()=>k(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:z})}),(0,t.jsx)(g,{children:(0,t.jsxs)(o.Button,{type:"button",variant:"outline",size:"sm",disabled:_,className:"gap-1",onClick:()=>k(e=>e+1),"aria-label":"下一页",children:["下一页",(0,t.jsx)(c.default,{name:"ChevronRight",size:16,className:"shrink-0",strokeWidth:1})]})})]})})]})})}var b=e.i(36845),y=e.i(53925);function j(e){let{open:a,onOpenChange:n,wsUrl:r,apiBase:s,agent:l}=e;return(0,t.jsx)(y.ResourceImportDialog,{open:a,onOpenChange:n,title:"导入 Skill zip",description:"选择一个 zip 文件并导入到 skills-runtime。",uploadUrl:(0,b.buildSkillsRuntimeImportUrl)(r,s,l),resetKey:l})}var k=e.i(55242);function C(e){let{open:n,onOpenChange:r,skillName:l,wsUrl:i,apiBase:c,agent:u,onSaved:d}=e,[p,m]=(0,a.useState)(""),[f,g]=(0,a.useState)(!1),[h,v]=(0,a.useState)(!1);(0,a.useEffect)(()=>{if(!n||!l.trim())return;let e=!1;return g(!0),m(""),(0,x.loadBaseSkillMd)(i,c,u,l).then(t=>{e||m("string"==typeof t.content?t.content:"")}).catch(t=>{e||(s.appToast.error("加载 SKILL.md 失败:".concat(t instanceof Error?t.message:String(t))),r(!1))}).finally(()=>{e||g(!1)}),()=>{e=!0}},[n,l,i,c,u,r]);let b=(0,a.useCallback)(async()=>{if(l.trim()){v(!0);try{await (0,x.saveBaseSkillMd)(i,c,u,l,p),s.appToast.success("SKILL.md 已保存"),r(!1),null==d||d()}catch(e){s.appToast.error("保存失败:".concat(e instanceof Error?e.message:String(e)))}finally{v(!1)}}},[l,i,c,u,p,r,d]);return(0,t.jsx)(k.AppDialog,{open:n,onOpenChange:r,title:"编辑 SKILL.md · /".concat(l),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:()=>r(!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-accent)]/30 min-h-[320px] w-full resize-y rounded-md border border-[var(--ds-border)] bg-[var(--ds-bg)] 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 S=e.i(94055),N=e.i(94197);function w(e){let{items:n,saveBusy:r,onToggleEnabled:s,onEditBase:l,onExport:i,onRemove:o,className:p}=e,[m,f]=(0,a.useState)(""),g=(0,a.useMemo)(()=>n.filter(e=>(function(e,t){var a;let n=t.trim().toLowerCase();return!n||"".concat(e.name," ").concat(null!=(a=e.description)?a:"").toLowerCase().includes(n)})(e,m)),[n,m]),x=[{key:"name",title:"名称",headerClassName:"",cellClassName:"",render:e=>"/".concat(e.name)},{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)(S.AccentSwitch,{checked:e.enabled,disabled:r,onCheckedChange:t=>s(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:r,onClick:()=>l(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:r,onClick:()=>i(e.name)}),(0,t.jsx)(N.IconTooltipButton,{icon:"Trash2",label:"删除",tone:"danger",ariaLabel:"删除 ".concat(e.name),disabled:r,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)(d.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)(u.AppTable,{rows:g,columns:x,getRowKey:e=>"skills:".concat(e.name),className:p,emptyText:h?"无匹配的 Skill":void 0})]})}var T=e.i(68499),A=e.i(56708);function E(e,t){var a,n,r;let s=(r=null!=(n=null!=(a=e.description)?a:e.whenToUse)?n:"")?r.length>100?r.slice(0,100):r:"";return{...e,id:e.name,label:"/".concat(e.name),description:s,isRuntime:t,canManage:e.canManage}}let I=[{value:"installed",label:"已安装Skill"},{value:"cloud_catalog",label:"Skill商店"}];function M(){let e=(0,n.useAppStore)(e=>e.wsUrl),u=(0,n.useAppStore)(e=>e.apiBase),d=(0,n.useAppStore)(e=>e.agentConfig),p=(0,n.useAppStore)(e=>e.patchAgentConfig),{currentAgent:m,loadAgentConfig:f}=(0,r.useSession)(),g=(0,l.usePersistAgentConfigField)("skills"),b=d.skills,[y,k]=(0,a.useState)([]),[S,N]=(0,a.useState)([]),[M,P]=(0,a.useState)(!1),[B,O]=(0,a.useState)(!1),[R,D]=(0,a.useState)(!1),[z,L]=(0,a.useState)("installed"),[_,U]=(0,a.useState)(!1),[F,K]=(0,a.useState)(""),[V,J]=(0,a.useState)(!1);(0,a.useEffect)(()=>{f()},[f]);let G=(0,a.useCallback)(async(e,t)=>{D(!0);try{await g(e,{silent:t})}finally{D(!1)}},[g]),H=(0,a.useCallback)(async()=>{k([]),P(!0);try{var t;let a=await (0,x.listBaseSkills)(e,u,m());k((null!=(t=a.skills)?t:[]).map(e=>E(e,!1)))}catch(e){k([]),s.appToast.error("加载失败:".concat(e instanceof Error?e.message:String(e)))}finally{P(!1)}},[e,u,m]),q=(0,a.useCallback)(async()=>{N([]),O(!0);try{var t;let a=await (0,x.listInstalledSkills)(e,u,m());N((null!=(t=a.skills)?t:[]).map(e=>E(e,!0)))}catch(e){N([]),s.appToast.error("加载失败:".concat(e instanceof Error?e.message:String(e)))}finally{O(!1)}},[e,u,m]),W=(0,a.useCallback)(async()=>{await Promise.all([H(),q()])},[H,q]),Q=(0,a.useCallback)(async t=>{if(await (0,T.confirmAlertDialog)({title:"确认删除 Skill 包?",description:"Skill:".concat(t),confirmText:"删除",cancelText:"取消"}))try{await (0,x.deleteRuntimeSkill)(e,u,m(),t);let a=b.filter(e=>e!==t);p({skills:a}),await G(a,!0),await W()}catch(e){s.appToast.error("删除失败:".concat(e instanceof Error?e.message:String(e)))}},[e,u,m,b,p,G,W]);(0,a.useEffect)(()=>{"installed"===z&&W()},[z,W]);let Z=(0,a.useCallback)(()=>{W()},[W]),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=S.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,S,b]),Y=(0,a.useCallback)((e,t)=>{let a=t?[...new Set([...b,e])].sort():b.filter(t=>t!==e);p({skills:a}),G(a,!0)},[b,p,G]),$=(0,a.useCallback)(t=>{window.open((0,x.exportRuntimeSkillUrl)(e,u,m(),t),"_blank","noopener")},[e,u,m]),ee=(0,a.useCallback)(e=>{K(e),J(!0)},[]);return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(A.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:()=>U(!0),children:[(0,t.jsx)(c.default,{name:"Import",size:16,className:"align-middle"}),"导入Skill"]})}),(0,t.jsxs)(i.AppTabs,{tabs:I,value:z,listVariant:"line",onChange:e=>L(e),children:[(0,t.jsx)(i.AppTabsPanel,{value:"installed",children:M||B?(0,t.jsx)(h.Loading,{text:"加载中…",className:"min-h-[200px]"}):(0,t.jsx)(w,{items:X,saveBusy:R,onToggleEnabled:Y,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"===z,wsUrl:e,apiBase:u,agent:m(),onAfterInstall:Z,className:"min-h-0 flex-1"})})]}),(0,t.jsx)(j,{open:_,onOpenChange:e=>{U(e),e||W()},wsUrl:e,apiBase:u,agent:m()}),(0,t.jsx)(C,{open:V,onOpenChange:J,skillName:F,wsUrl:e,apiBase:u,agent:m(),onSaved:()=>void W()})]})}},69230,e=>{"use strict";e.s(["SettingsRouteBoundary",()=>i]);var t=e.i(18050),a=e.i(22016),n=e.i(18566),r=e.i(82787),s=e.i(97249),l=e.i(65934);function i(e){let{children:i}=e,o=(0,n.usePathname)(),c=(0,l.useAppStore)(e=>e.agentId),u=(0,s.buildAppNavHref)(r.MANAGE_DEFAULT_HREF,{ensureAgent:!0,agent:c});return o&&!(0,r.isManageRouteEnabled)((0,s.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:u,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,3862,t=>{"use strict";t.s(["ImManageView",()=>u]);var e=t.i(18050),i=t.i(28370);function u(){return(0,e.jsx)(i.AgentEnvGroupSettingsView,{group:"tutui"})}}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,94197,e=>{"use strict";e.s(["IconTooltipButton",()=>o]);var t=e.i(18050),r=e.i(72064),n=e.i(19455),l=e.i(46798),a=e.i(75157);let i={muted:"text-[var(--ds-muted)] hover:text-[var(--ds-text)]",danger:"text-red-600 hover:text-red-800 [&_svg]:!text-red-600 hover:[&_svg]:!text-red-800"};function o(e){let{icon:o,label:s,ariaLabel:u,tone:d="muted",disabled:c,className:f,iconClassName:p,onClick:m}=e;return(0,t.jsx)(l.TooltipProvider,{delayDuration:150,children:(0,t.jsxs)(l.Tooltip,{children:[(0,t.jsx)(l.TooltipTrigger,{asChild:!0,children:(0,t.jsx)(n.Button,{type:"button",variant:"plain",size:"icon",className:(0,a.cn)("icon-tooltip-btn","h-4 w-4 border-none p-0",i[d],f),disabled:c,"aria-label":null!=u?u:s,onClick:m,children:(0,t.jsx)(r.default,{name:o,size:16,className:p})})}),(0,t.jsx)(l.TooltipContent,{side:"bottom",align:"center",className:"",children:s})]})})}},56708,e=>{"use strict";e.s(["ManageChromeHeaderActions",()=>o,"ManageFeatureChrome",()=>i]);var t=e.i(18050),r=e.i(71645),n=e.i(74080),l=e.i(72064);let a=(0,r.createContext)(null);function i(e){let{title:n,description:i,children:o,showTitle:s=!0,headerIcon:u}=e,[d,c]=(0,r.useState)(null);return(0,t.jsxs)("div",{className:"manage-page-wrap flex min-h-0 flex-1 flex-col",children:[(0,t.jsxs)("div",{className:"manage-page-header flex shrink-0 items-start justify-between gap-[var(--space-4)] pb-[var(--space-4)]",children:[s?(0,t.jsxs)("div",{className:"manage-page-title-block flex items-center",children:[u&&(0,t.jsx)("div",{className:"mr-[16px] rounded-md bg-[var(--green-light)] px-4 py-3",children:(0,t.jsx)(l.default,{name:u,size:24,className:"text-[var(--green-dark)]",strokeWidth:1.5})}),(0,t.jsxs)("div",{className:"pt-2",children:[(0,t.jsx)("h1",{className:"manage-page-title",children:n}),(0,t.jsx)("p",{className:"manage-page-desc",children:i})]})]}):null,(0,t.jsx)("div",{ref:c,className:"manage-page-header-actions self-start"})]}),(0,t.jsx)("div",{className:"manage-page-body flex min-h-0 min-w-0 flex-1 flex-col",children:(0,t.jsx)(a.Provider,{value:d,children:o})})]})}function o(e){let{children:t}=e,l=(0,r.useContext)(a);return(0,r.useSyncExternalStore)(()=>()=>{},()=>!0,()=>!1)&&l?(0,n.createPortal)(t,l):null}},96920,e=>{e.v("/app/_next/static/media/no-data.48c973b9.png")},18581,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"useMergedRef",{enumerable:!0,get:function(){return l}});let n=e.r(71645);function l(e,t){let r=(0,n.useRef)(null),l=(0,n.useRef)(null);return(0,n.useCallback)(n=>{if(null===n){let e=r.current;e&&(r.current=null,e());let t=l.current;t&&(l.current=null,t())}else e&&(r.current=a(e,n)),t&&(l.current=a(t,n))},[e,t])}function a(e,t){if("function"!=typeof e)return e.current=t,()=>{e.current=null};{let r=e(t);return"function"==typeof r?r:()=>e(null)}}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},88143,(e,t,r)=>{"use strict";function n(e){let{widthInt:t,heightInt:r,blurWidth:n,blurHeight:l,blurDataURL:a,objectFit:i}=e,o=n?40*n:t,s=l?40*l:r,u=o&&s?"viewBox='0 0 "+o+" "+s+"'":"";return"%3Csvg xmlns='http://www.w3.org/2000/svg' "+u+"%3E%3Cfilter id='b' color-interpolation-filters='sRGB'%3E%3CfeGaussianBlur stdDeviation='20'/%3E%3CfeColorMatrix values='1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 100 -1' result='s'/%3E%3CfeFlood x='0' y='0' width='100%25' height='100%25'/%3E%3CfeComposite operator='out' in='s'/%3E%3CfeComposite in2='SourceGraphic'/%3E%3CfeGaussianBlur stdDeviation='20'/%3E%3C/filter%3E%3Cimage width='100%25' height='100%25' x='0' y='0' preserveAspectRatio='"+(u?"none":"contain"===i?"xMidYMid":"cover"===i?"xMidYMid slice":"none")+"' style='filter: url(%23b);' href='"+a+"'/%3E%3C/svg%3E"}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"getImageBlurSvg",{enumerable:!0,get:function(){return n}})},87690,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(r,{VALID_LOADERS:function(){return n},imageConfigDefault:function(){return l}});let n=["default","imgix","cloudinary","akamai","custom"],l={deviceSizes:[640,750,828,1080,1200,1920,2048,3840],imageSizes:[16,32,48,64,96,128,256,384],path:"/_next/image",loader:"default",loaderFile:"",domains:[],disableStaticImages:!1,minimumCacheTTL:60,formats:["image/webp"],maximumDiskCacheSize:void 0,maximumResponseBody:5e7,dangerouslyAllowSVG:!1,contentSecurityPolicy:"script-src 'none'; frame-src 'none'; sandbox;",contentDispositionType:"attachment",localPatterns:void 0,remotePatterns:[],qualities:void 0,unoptimized:!1}},8927,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"getImgProps",{enumerable:!0,get:function(){return s}}),e.r(33525);let n=e.r(88143),l=e.r(87690),a=["-moz-initial","fill","none","scale-down",void 0];function i(e){return void 0!==e.default}function o(e){return void 0===e?e:"number"==typeof e?Number.isFinite(e)?e:NaN:"string"==typeof e&&/^[0-9]+$/.test(e)?parseInt(e,10):NaN}function s(e,t){var r,s;let u,d,c,{src:f,sizes:p,unoptimized:m=!1,priority:g=!1,loading:h,className:v,quality:b,width:x,height:y,fill:j=!1,style:w,overrideSrc:C,onLoad:S,onLoadingComplete:A,placeholder:k="empty",blurDataURL:_,fetchPriority:E,decoding:N="async",layout:O,objectFit:P,objectPosition:T,lazyBoundary:M,lazyRoot:z,...I}=e,{imgConf:R,showAltText:D,blurComplete:F,defaultLoader:U}=t,B=R||l.imageConfigDefault;if("allSizes"in B)u=B;else{let e=[...B.deviceSizes,...B.imageSizes].sort((e,t)=>e-t),t=B.deviceSizes.sort((e,t)=>e-t),n=null==(r=B.qualities)?void 0:r.sort((e,t)=>e-t);u={...B,allSizes:e,deviceSizes:t,qualities:n}}if(void 0===U)throw Object.defineProperty(Error("images.loaderFile detected but the file is missing default export.\nRead more: https://nextjs.org/docs/messages/invalid-images-config"),"__NEXT_ERROR_CODE",{value:"E163",enumerable:!1,configurable:!0});let G=I.loader||U;delete I.loader,delete I.srcSet;let L="__next_img_default"in G;if(L){if("custom"===u.loader)throw Object.defineProperty(Error('Image with src "'+f+'" is missing "loader" prop.\nRead more: https://nextjs.org/docs/messages/next-image-missing-loader'),"__NEXT_ERROR_CODE",{value:"E252",enumerable:!1,configurable:!0})}else{let e=G;G=t=>{let{config:r,...n}=t;return e(n)}}if(O){"fill"===O&&(j=!0);let e={intrinsic:{maxWidth:"100%",height:"auto"},responsive:{width:"100%",height:"auto"}}[O];e&&(w={...w,...e});let t={responsive:"100vw",fill:"100vw"}[O];t&&!p&&(p=t)}let V="",q=o(x),H=o(y);if((s=f)&&"object"==typeof s&&(i(s)||void 0!==s.src)){let e=i(f)?f.default:f;if(!e.src)throw Object.defineProperty(Error("An object should only be passed to the image component src parameter if it comes from a static image import. It must include src. Received "+JSON.stringify(e)),"__NEXT_ERROR_CODE",{value:"E460",enumerable:!1,configurable:!0});if(!e.height||!e.width)throw Object.defineProperty(Error("An object should only be passed to the image component src parameter if it comes from a static image import. It must include height and width. Received "+JSON.stringify(e)),"__NEXT_ERROR_CODE",{value:"E48",enumerable:!1,configurable:!0});if(d=e.blurWidth,c=e.blurHeight,_=_||e.blurDataURL,V=e.src,!j)if(q||H){if(q&&!H){let t=q/e.width;H=Math.round(e.height*t)}else if(!q&&H){let t=H/e.height;q=Math.round(e.width*t)}}else q=e.width,H=e.height}let K=!g&&("lazy"===h||void 0===h);(!(f="string"==typeof f?f:V)||f.startsWith("data:")||f.startsWith("blob:"))&&(m=!0,K=!1),u.unoptimized&&(m=!0),L&&!u.dangerouslyAllowSVG&&f.split("?",1)[0].endsWith(".svg")&&(m=!0);let W=o(b),J=Object.assign(j?{position:"absolute",height:"100%",width:"100%",left:0,top:0,right:0,bottom:0,objectFit:P,objectPosition:T}:{},D?{}:{color:"transparent"},w),X=F||"empty"===k?null:"blur"===k?'url("data:image/svg+xml;charset=utf-8,'+(0,n.getImageBlurSvg)({widthInt:q,heightInt:H,blurWidth:d,blurHeight:c,blurDataURL:_||"",objectFit:J.objectFit})+'")':'url("'+k+'")',Y=a.includes(J.objectFit)?"fill"===J.objectFit?"100% 100%":"cover":J.objectFit,$=X?{backgroundSize:Y,backgroundPosition:J.objectPosition||"50% 50%",backgroundRepeat:"no-repeat",backgroundImage:X}:{},Q=function(e){let{config:t,src:r,unoptimized:n,width:l,quality:a,sizes:i,loader:o}=e;if(n)return{src:r,srcSet:void 0,sizes:void 0};let{widths:s,kind:u}=function(e,t,r){let{deviceSizes:n,allSizes:l}=e;if(r){let e=/(^|\s)(1?\d?\d)vw/g,t=[];for(let n;n=e.exec(r);)t.push(parseInt(n[2]));if(t.length){let e=.01*Math.min(...t);return{widths:l.filter(t=>t>=n[0]*e),kind:"w"}}return{widths:l,kind:"w"}}return"number"!=typeof t?{widths:n,kind:"w"}:{widths:[...new Set([t,2*t].map(e=>l.find(t=>t>=e)||l[l.length-1]))],kind:"x"}}(t,l,i),d=s.length-1;return{sizes:i||"w"!==u?i:"100vw",srcSet:s.map((e,n)=>o({config:t,src:r,quality:a,width:e})+" "+("w"===u?e:n+1)+u).join(", "),src:o({config:t,src:r,quality:a,width:s[d]})}}({config:u,src:f,unoptimized:m,width:q,quality:W,sizes:p,loader:G});return{props:{...I,loading:K?"lazy":h,fetchPriority:E,width:q,height:H,decoding:N,className:v,style:{...J,...$},sizes:Q.sizes,srcSet:Q.srcSet,src:C||Q.src},meta:{unoptimized:m,priority:g,placeholder:k,fill:j}}}},98879,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"default",{enumerable:!0,get:function(){return o}});let n=e.r(71645),l="undefined"==typeof window,a=l?()=>{}:n.useLayoutEffect,i=l?()=>{}:n.useEffect;function o(e){let{headManager:t,reduceComponentsToState:r}=e;function o(){if(t&&t.mountedInstances){let l=n.Children.toArray(Array.from(t.mountedInstances).filter(Boolean));t.updateHead(r(l,e))}}if(l){var s;null==t||null==(s=t.mountedInstances)||s.add(e.children),o()}return a(()=>{var r;return null==t||null==(r=t.mountedInstances)||r.add(e.children),()=>{var r;null==t||null==(r=t.mountedInstances)||r.delete(e.children)}}),a(()=>(t&&(t._pendingUpdate=o),()=>{t&&(t._pendingUpdate=o)})),i(()=>(t&&t._pendingUpdate&&(t._pendingUpdate(),t._pendingUpdate=null),()=>{t&&t._pendingUpdate&&(t._pendingUpdate(),t._pendingUpdate=null)})),null}},58908,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"AmpStateContext",{enumerable:!0,get:function(){return n}});let n=e.r(55682)._(e.r(71645)).default.createContext({})},15986,(e,t,r)=>{"use strict";function n(e){let{ampFirst:t=!1,hybrid:r=!1,hasQuery:n=!1}=void 0===e?{}:e;return t||r&&n}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"isInAmpMode",{enumerable:!0,get:function(){return n}})},25633,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(r,{default:function(){return g},defaultHead:function(){return c}});let n=e.r(55682),l=e.r(90809),a=e.r(18050),i=l._(e.r(71645)),o=n._(e.r(98879)),s=e.r(58908),u=e.r(42732),d=e.r(15986);function c(e){void 0===e&&(e=!1);let t=[(0,a.jsx)("meta",{charSet:"utf-8"},"charset")];return e||t.push((0,a.jsx)("meta",{name:"viewport",content:"width=device-width"},"viewport")),t}function f(e,t){return"string"==typeof t||"number"==typeof t?e:t.type===i.default.Fragment?e.concat(i.default.Children.toArray(t.props.children).reduce((e,t)=>"string"==typeof t||"number"==typeof t?e:e.concat(t),[])):e.concat(t)}e.r(33525);let p=["name","httpEquiv","charSet","itemProp"];function m(e,t){let{inAmpMode:r}=t;return e.reduce(f,[]).reverse().concat(c(r).reverse()).filter(function(){let e=new Set,t=new Set,r=new Set,n={};return l=>{let a=!0,i=!1;if(l.key&&"number"!=typeof l.key&&l.key.indexOf("$")>0){i=!0;let t=l.key.slice(l.key.indexOf("$")+1);e.has(t)?a=!1:e.add(t)}switch(l.type){case"title":case"base":t.has(l.type)?a=!1:t.add(l.type);break;case"meta":for(let e=0,t=p.length;e<t;e++){let t=p[e];if(l.props.hasOwnProperty(t))if("charSet"===t)r.has(t)?a=!1:r.add(t);else{let e=l.props[t],r=n[t]||new Set;("name"!==t||!i)&&r.has(e)?a=!1:(r.add(e),n[t]=r)}}}return a}}()).reverse().map((e,t)=>{let r=e.key||t;return i.default.cloneElement(e,{key:r})})}let g=function(e){let{children:t}=e,r=(0,i.useContext)(s.AmpStateContext),n=(0,i.useContext)(u.HeadManagerContext);return(0,a.jsx)(o.default,{reduceComponentsToState:m,headManager:n,inAmpMode:(0,d.isInAmpMode)(r),children:t})};("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},18556,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"ImageConfigContext",{enumerable:!0,get:function(){return a}});let n=e.r(55682)._(e.r(71645)),l=e.r(87690),a=n.default.createContext(l.imageConfigDefault)},65856,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"RouterContext",{enumerable:!0,get:function(){return n}});let n=e.r(55682)._(e.r(71645)).default.createContext(null)},1948,(e,t,r)=>{"use strict";function n(e){var t;let{config:r,src:n,width:l,quality:a}=e,i=a||(null==(t=r.qualities)?void 0:t.reduce((e,t)=>Math.abs(t-75)<Math.abs(e-75)?t:e))||75;return r.path+"?url="+encodeURIComponent(n)+"&w="+l+"&q="+i+(n.startsWith("/_next/static/media/"),"")}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"default",{enumerable:!0,get:function(){return l}}),n.__next_img_default=!0;let l=n},5500,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"Image",{enumerable:!0,get:function(){return y}});let n=e.r(55682),l=e.r(90809),a=e.r(18050),i=l._(e.r(71645)),o=n._(e.r(74080)),s=n._(e.r(25633)),u=e.r(8927),d=e.r(87690),c=e.r(18556);e.r(33525);let f=e.r(65856),p=n._(e.r(1948)),m=e.r(18581),g={deviceSizes:[640,750,828,1080,1200,1920,2048,3840],imageSizes:[16,32,48,64,96,128,256,384],path:"/app/_next/image/",loader:"default",dangerouslyAllowSVG:!1,unoptimized:!1};function h(e,t,r,n,l,a,i){let o=null==e?void 0:e.src;e&&e["data-loaded-src"]!==o&&(e["data-loaded-src"]=o,("decode"in e?e.decode():Promise.resolve()).catch(()=>{}).then(()=>{if(e.parentElement&&e.isConnected){if("empty"!==t&&l(!0),null==r?void 0:r.current){let t=new Event("load");Object.defineProperty(t,"target",{writable:!1,value:e});let n=!1,l=!1;r.current({...t,nativeEvent:t,currentTarget:e,target:e,isDefaultPrevented:()=>n,isPropagationStopped:()=>l,persist:()=>{},preventDefault:()=>{n=!0,t.preventDefault()},stopPropagation:()=>{l=!0,t.stopPropagation()}})}(null==n?void 0:n.current)&&n.current(e)}}))}function v(e){return i.use?{fetchPriority:e}:{fetchpriority:e}}"undefined"==typeof window&&(globalThis.__NEXT_IMAGE_IMPORTED=!0);let b=(0,i.forwardRef)((e,t)=>{let{src:r,srcSet:n,sizes:l,height:o,width:s,decoding:u,className:d,style:c,fetchPriority:f,placeholder:p,loading:g,unoptimized:b,fill:x,onLoadRef:y,onLoadingCompleteRef:j,setBlurComplete:w,setShowAltText:C,sizesInput:S,onLoad:A,onError:k,..._}=e,E=(0,i.useCallback)(e=>{e&&(k&&(e.src=e.src),e.complete&&h(e,p,y,j,w,b,S))},[r,p,y,j,w,k,b,S]),N=(0,m.useMergedRef)(t,E);return(0,a.jsx)("img",{..._,...v(f),loading:g,width:s,height:o,decoding:u,"data-nimg":x?"fill":"1",className:d,style:c,sizes:l,srcSet:n,src:r,ref:N,onLoad:e=>{h(e.currentTarget,p,y,j,w,b,S)},onError:e=>{C(!0),"empty"!==p&&w(!0),k&&k(e)}})});function x(e){let{isAppRouter:t,imgAttributes:r}=e,n={as:"image",imageSrcSet:r.srcSet,imageSizes:r.sizes,crossOrigin:r.crossOrigin,referrerPolicy:r.referrerPolicy,...v(r.fetchPriority)};return t&&o.default.preload?(o.default.preload(r.src,n),null):(0,a.jsx)(s.default,{children:(0,a.jsx)("link",{rel:"preload",href:r.srcSet?void 0:r.src,...n},"__nimg-"+r.src+r.srcSet+r.sizes)})}let y=(0,i.forwardRef)((e,t)=>{let r=(0,i.useContext)(f.RouterContext),n=(0,i.useContext)(c.ImageConfigContext),l=(0,i.useMemo)(()=>{var e;let t=g||n||d.imageConfigDefault,r=[...t.deviceSizes,...t.imageSizes].sort((e,t)=>e-t),l=t.deviceSizes.sort((e,t)=>e-t),a=null==(e=t.qualities)?void 0:e.sort((e,t)=>e-t);return{...t,allSizes:r,deviceSizes:l,qualities:a}},[n]),{onLoad:o,onLoadingComplete:s}=e,m=(0,i.useRef)(o);(0,i.useEffect)(()=>{m.current=o},[o]);let h=(0,i.useRef)(s);(0,i.useEffect)(()=>{h.current=s},[s]);let[v,y]=(0,i.useState)(!1),[j,w]=(0,i.useState)(!1),{props:C,meta:S}=(0,u.getImgProps)(e,{defaultLoader:p.default,imgConf:l,blurComplete:v,showAltText:j});return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(b,{...C,unoptimized:S.unoptimized,placeholder:S.placeholder,fill:S.fill,onLoadRef:m,onLoadingCompleteRef:h,setBlurComplete:y,setShowAltText:w,sizesInput:e.sizes,ref:t}),S.priority?(0,a.jsx)(x,{isAppRouter:!r,imgAttributes:C}):null]})});("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},94909,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(r,{default:function(){return s},getImageProps:function(){return o}});let n=e.r(55682),l=e.r(8927),a=e.r(5500),i=n._(e.r(1948));function o(e){let{props:t}=(0,l.getImgProps)(e,{defaultLoader:i.default,imgConf:{deviceSizes:[640,750,828,1080,1200,1920,2048,3840],imageSizes:[16,32,48,64,96,128,256,384],path:"/app/_next/image/",loader:"default",dangerouslyAllowSVG:!1,unoptimized:!1}});for(let[e,r]of Object.entries(t))void 0===r&&delete t[e];return{props:t}}let s=a.Image},57688,(e,t,r)=>{t.exports=e.r(94909)},85413,e=>{"use strict";e.s(["Empty",()=>a],85413);var t=e.i(18050),r=e.i(57688);let n={src:e.i(96920).default,width:973,height:482,blurWidth:8,blurHeight:4,blurDataURL:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAECAYAAACzzX7wAAAAj0lEQVR42gGEAHv/AAAAAAATGRcXg4uIgcjJycORlJOKDxEQDAAAAAAAAAAAAAQEBANfa2Zj5fTu9ff9+/7q8u7uc3p3cgoLCwkAAAAAAEJGRELH1M/S4/jw/tD25v7U9ef+1ubf4jg8OjAAAAAAAHqBfmqxvLiisMG7rK7GvLKxxb2wpbKtoVNYVlADAwMC5U08HYgBOJwAAAAASUVORK5CYII="};var l=e.i(75157);function a(e){let{text:a="暂无数据",className:i,showImage:o=!0,imageSrc:s=n,imageAlt:u="暂无数据",imageSize:d=180,imageClassName:c}=e,f="string"==typeof s?{width:d,height:d}:{width:s.width,height:s.height};return(0,t.jsxs)("div",{className:(0,l.cn)("flex min-h-[180px] w-full flex-col items-center justify-center gap-2 py-4 text-[var(--ds-muted)]",i),role:"status","aria-live":"polite",children:[o?(0,t.jsx)("span",{className:(0,l.cn)("block shrink-0",c),style:{width:d},children:(0,t.jsx)(r.default,{src:s,alt:u,width:f.width,height:f.height,unoptimized:!0,draggable:!1,sizes:"".concat(d,"px"),className:"h-auto w-full object-contain"})}):null,(0,t.jsx)("span",{children:a})]})}},93479,e=>{"use strict";e.s(["Input",()=>n]);var t=e.i(18050),r=e.i(75157);function n(e){let{className:n,type:l="text",size:a="default",...i}=e;return(0,t.jsx)("input",{type:l,"data-slot":"input","data-size":a,className:(0,r.cn)("h-9 w-full appearance-none rounded-md border border-solid border-border bg-transparent px-3 text-sm outline-none transition-[color,box-shadow,border-color] duration-150 ease-in-out placeholder:text-muted-foreground hover:border-[var(--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] data-[size=default]:h-9 data-[size=lg]:h-10 data-[size=sm]:h-7",n),...i})}},24687,e=>{"use strict";e.s(["Textarea",()=>n]);var t=e.i(18050),r=e.i(75157);function n(e){let{className:n,...l}=e;return(0,t.jsx)("textarea",{"data-slot":"textarea",className:(0,r.cn)("flex min-h-20 w-full rounded-md border border-solid border-border bg-transparent px-3 py-2 text-sm outline-none transition-[color,box-shadow,border-color] duration-150 ease-in-out placeholder:text-muted-foreground hover:border-[var(--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]",n),...l})}},20783,e=>{"use strict";e.s(["composeRefs",()=>n,"useComposedRefs",()=>l]);var t=e.i(71645);function r(e,t){if("function"==typeof e)return e(t);null!=e&&(e.current=t)}function n(){for(var e=arguments.length,t=Array(e),n=0;n<e;n++)t[n]=arguments[n];return e=>{let n=!1,l=t.map(t=>{let l=r(t,e);return n||"function"!=typeof l||(n=!0),l});if(n)return()=>{for(let e=0;e<l.length;e++){let n=l[e];"function"==typeof n?n():r(t[e],null)}}}}function l(){for(var e=arguments.length,r=Array(e),l=0;l<e;l++)r[l]=arguments[l];return t.useCallback(n(...r),r)}},18900,69051,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 r(e){let t=String(e).split(/\r?\n/),r={},n=/^\s*(?:export\s+)?([A-Za-z_][A-Za-z0-9_]*)\s*=\s*(.*)$/;for(let e=0;e<t.length;e++){let l=t[e],a=n.exec(l);a&&(r[a[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}(a[2]))}return r}function n(e,r){let n=Array.isArray(e)?e:[],l=new Set;for(let e=0;e<n.length;e++){let t=n[e];t&&"object"==typeof t&&"string"==typeof t.key&&l.add(t.key)}let a=[];for(let e=0;e<n.length;e++){let l=n[e];if(!l||"object"!=typeof l||"string"!=typeof l.key)continue;let i=l.key;if(!Object.prototype.hasOwnProperty.call(r,i))continue;let o=r[i];null!=o&&""!==String(o).trim()&&a.push("".concat(i,"=").concat(t(String(o))))}let i=Object.keys(r).filter(e=>!l.has(e)).sort();for(let e=0;e<i.length;e++){let n=i[e],l=r[n];null!=l&&""!==String(l).trim()&&a.push("".concat(n,"=").concat(t(String(l))))}let o=a.join("\n");return o.length>0?"".concat(o,"\n"):""}e.s(["buildEnvFileContentFromForm",()=>n,"parseEnvContentToMap",()=>r],18900),e.s(["loadDemoSingleMessage",()=>u,"loadSystemEnv",()=>i,"saveSystemEnv",()=>o,"saveSystemMcpJson",()=>s],69051);var l=e.i(29250),a=e.i(36845);async function i(e,t,r){return(0,l.get)((0,a.buildSystemEnvApiUrl)(e,t,r))}async function o(e,t,r,n){await (0,l.patch)((0,a.buildSystemEnvApiUrl)(e,t,r),{content:n})}async function s(e,t,r,n){await (0,l.patch)((0,a.buildSystemMcpJsonApiUrl)(e,t,r),{content:n})}async function u(){return(0,l.get)("/api/demo/single-message")}},44039,99650,e=>{"use strict";e.s(["buildGroupAgentEnvFieldValues",()=>u,"buildProjectEnvFormDefaults",()=>a,"groupAgentEnvSchemaByGroup",()=>i,"mergeAgentEnvGroupLabels",()=>l,"mergeGroupEnvIntoAgentEnv",()=>s,"normalizeAgentEnvSchema",()=>n,"schemaKeySet",()=>o],44039);let t=["llm","git","geelib","tutui","system"],r={llm:"llm设置",git:"git设置",geelib:"geelib设置",tutui:"tutui设置",system:"系统设置"};function n(e){if(!Array.isArray(e))return[];let r=[];for(let n of e){if(!n||"object"!=typeof n)continue;let e="string"==typeof n.key?n.key.trim():"",l="string"==typeof n.group?n.group.trim():"";e&&t.includes(l)&&r.push({key:e,group:l,label:"string"==typeof n.label&&n.label.trim()?n.label.trim():e,placeholder:"string"==typeof n.placeholder?n.placeholder:""})}return r}function l(e){let n={...r};if(!e||"object"!=typeof e)return n;for(let r of t){let t=e[r];"string"==typeof t&&t.trim()&&(n[r]=t.trim())}return n}function a(e,t){let r={};for(let l of e){var n;r[l.key]=null!=(n=t[l.key])?n:""}return r}function i(e){let r={};for(let e of t)r[e]=[];for(let n of e)t.includes(n.group)&&r[n.group].push(n);return r}function o(e){return new Set(e.map(e=>e.key))}function s(e,t,r){let n={...e};for(let e of t){var l;let t=String(null!=(l=r[e.key])?l:"").trim();t?n[e.key]=t:delete n[e.key]}return n}function u(e,t,r){let n={};for(let l of t){let t=e[l.key];if("string"==typeof t&&t.length>0){n[l.key]=t;continue}let a=r[l.key];n[l.key]="string"==typeof a?a:""}return n}e.s(["persistAgentEnv",()=>m],99650);var d=e.i(13354),c=e.i(70074),f=e.i(82136),p=e.i(65934);async function m(e,t,r,n,l,a){var i,o,s,u;let m=p.useAppStore.getState(),g={tools:m.agentConfig.tools.slice(),disallowedTools:m.agentConfig.disallowedTools.slice(),mcpServers:m.agentConfig.mcpServers.slice(),skills:m.agentConfig.skills.slice(),agentTeams:m.agentConfig.agentTeams.slice(),model:m.agentConfig.model,rules:m.agentConfig.rules.slice(),effort:null!=(i=m.agentConfig.effort)?i:null,background:null!=(o=m.agentConfig.background)&&o,isolation:null!=(s=m.agentConfig.isolation)?s:"",whentouse:null!=(u=m.agentConfig.whentouse)?u:"",env:n,llmProviders:m.agentConfig.llmProviders.map(e=>({...e,models:e.models.map(e=>({...e}))})),...a};await (0,f.saveAgentConfig)(e,t,r,g),m.setAgentConfig({...g,env:{...n}}),p.useAppStore.getState().wsConnected&&l();let h=p.useAppStore.getState();h.setStatus("环境变量已保存"+(h.wsConnected?",已请求 worker 重新加载配置":""),(0,c.resolveInfoStatusClass)(h.bridgeReady,h.wsConnected)),d.appToast.success(h.wsConnected?"已保存到 agent.json,并已请求 worker 重新加载配置。":"已保存到 agent.json。重连 WebSocket 后子进程环境将同步。")}},46412,e=>{"use strict";e.s(["AgentEnvGroupForm",()=>u]);var t=e.i(18050),r=e.i(93479),n=e.i(24687),l=e.i(67489),a=e.i(75157);let i="__empty__",o=[{value:"anthropic",label:"anthropic"},{value:"openai",label:"openai"}],s=[{value:"1",label:"启用全部 MCP 常驻会话"},{value:"0",label:"禁用"}];function u(e){let{group:u,fields:d,fieldValues:c,whentouseValue:f,onFieldChange:p,onWhentouseChange:m}=e;return(0,t.jsxs)("div",{className:"divide-y divide-[var(--ds-border)]",children:["system"===u?(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:"agent-env-whentouse",children:"使用时机(whentouse)"}),(0,t.jsx)(n.Textarea,{id:"agent-env-whentouse",rows:3,spellCheck:!1,autoComplete:"off",placeholder:"输入该 agent 的使用时机描述","aria-label":"agent.json whentouse",className:"min-h-[88px] resize-y border-[var(--ds-border)] bg-[var(--ds-bg)] placeholder:text-[var(--text-placeholder)]",value:f,onChange:e=>m(e.target.value)})]}):null,d.map(e=>{let n="agent-env-field-".concat(e.key),u="string"==typeof c[e.key]?c[e.key]:"";if("LLM_PROVIDER"===e.key){let r="anthropic"===u||"openai"===u?u:"";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:n,children:e.label}),(0,t.jsxs)(l.Select,{value:r||i,onValueChange:t=>p(e.key,t===i?"":t),children:[(0,t.jsx)(l.SelectTrigger,{id:n,className:(0,a.cn)("h-10 w-full border-[var(--ds-border)] bg-[var(--ds-bg)]",!r&&"text-[var(--text-placeholder)]"),children:(0,t.jsx)(l.SelectValue,{placeholder:"请选择"})}),(0,t.jsxs)(l.SelectContent,{children:[(0,t.jsx)(l.SelectItem,{value:i,children:"请选择"}),o.map(e=>(0,t.jsx)(l.SelectItem,{value:e.value,children:e.label},e.value))]})]})]},e.key)}if("TUITUI_CHANNEL_SESSION"===e.key){let r="1"===u?"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:n,children:e.label}),(0,t.jsxs)(l.Select,{value:r,onValueChange:t=>p(e.key,t),children:[(0,t.jsx)(l.SelectTrigger,{id:n,className:"h-10 w-full border-[var(--ds-border)] bg-[var(--ds-bg)]",children:(0,t.jsx)(l.SelectValue,{placeholder:"请选择"})}),(0,t.jsx)(l.SelectContent,{children:s.map(e=>(0,t.jsx)(l.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:n,children:e.label}),(0,t.jsx)(r.Input,{id:n,type:"text",spellCheck:!1,autoComplete:"off",placeholder:e.placeholder,className:"h-10 border-[var(--ds-border)] bg-[var(--ds-bg)] placeholder:text-[var(--text-placeholder)]",value:u,onChange:t=>p(e.key,t.target.value)})]},e.key)})]})}},62849,e=>{"use strict";e.s(["EnvManageView",()=>P],62849);var t=e.i(18050),r=e.i(71645),n=e.i(56708),l=e.i(19455),a=e.i(72064),i=e.i(51419),o=e.i(76639),s=e.i(93479),u=e.i(13354),d=e.i(87243),c=e.i(67327),f=e.i(44039),p=e.i(99650),m=e.i(18900),g=e.i(94606),h=e.i(75157),v=e.i(69051),b=e.i(65934),x=e.i(46412);let y=[{id:"env-zhixiao",name:"zhixiao",baseUrl:"https://claudecode-internal.geelib.360.cn",model:"MiniMax-M2.7",isDefault:!0},{id:"env-backup",name:"backup-provider",baseUrl:"https://api.anthropic.com",model:"Claude-Sonnet-4",isDefault:!1}],j=[{key:"name",name:"名称",required:!0,placeholder:"例如 OpenAI 主站"},{key:"id",name:"服务商 ID(slug)",required:!0,placeholder:"例如 openai-main"},{key:"provider",name:"协议类型",required:!0,options:[{label:"openai",value:"openai"},{label:"anthropic",value:"anthropic"}]},{key:"baseUrl",name:"接口地址",required:!0,placeholder:"例如 https://api.openai.com/v1"},{key:"apiKey",name:"API秘钥",required:!0,inputType:"password"},{key:"authToken",name:"认证变量",inputType:"password"},{key:"modelId",name:"模型 ID",required:!0,placeholder:"例如 gpt-4o"},{key:"modelLabel",name:"模型展示名(可选)"}],w="custom",C=new Set(["description"]);function S(){return Object.fromEntries(j.map(e=>{var t,r,n;return[e.key,null!=(n=null==(r=e.options)||null==(t=r[0])?void 0:t.value)?n:""]}))}function A(e){let{open:n,onOpenChange:a,onSaved:y}=e,A=(0,r.useId)(),k=(0,b.useAppStore)(e=>e.wsUrl),_=(0,b.useAppStore)(e=>e.apiBase),E=(0,b.useAppStore)(e=>e.agentConfig),{currentAgent:N,loadAgentConfig:O}=(0,d.useSession)(),{sendReloadAgentConfig:P}=(0,c.useWebSocketSender)(),[T,M]=(0,r.useState)(!0),[z,I]=(0,r.useState)(!1),[R,D]=(0,r.useState)(!1),[F,U]=(0,r.useState)([]),[B,G]=(0,r.useState)((0,f.mergeAgentEnvGroupLabels)(void 0)),[L,V]=(0,r.useState)({}),[q,H]=(0,r.useState)({}),[K,W]=(0,r.useState)(S),J=(0,r.useMemo)(()=>(0,f.schemaKeySet)(F),[F]),X=(0,r.useMemo)(()=>(0,f.groupAgentEnvSchemaByGroup)(F),[F]).llm,Y=(0,r.useMemo)(()=>{let e=[{value:w,label:"自定义设置"}];return X.length&&e.push({value:"llm",label:B.llm}),e},[X.length,B.llm]),$=(0,r.useCallback)(e=>{H((0,f.buildGroupAgentEnvFieldValues)(e,X,L));let t=S();for(let r of j)C.has(r.key)||"string"==typeof e[r.key]&&(t[r.key]=e[r.key]);W(t),D(!1)},[X,L]),Q=(0,r.useCallback)(async()=>{try{let e=await (0,v.loadSystemEnv)(k,_,N()),t="string"==typeof e.content?e.content:"",r=(0,f.normalizeAgentEnvSchema)(e.schema),n=(0,m.parseEnvContentToMap)(t);U(r),G((0,f.mergeAgentEnvGroupLabels)(e.groupLabels)),V((0,f.buildProjectEnvFormDefaults)(r,n))}catch(e){u.appToast.error("加载环境变量表单配置失败:".concat(e instanceof Error?e.message:String(e))),U([]),V({})}},[k,_,N]);(0,r.useEffect)(()=>{n&&(M(!0),Promise.all([O(),Q()]).finally(()=>{M(!1)}))},[n,O,Q]),(0,r.useEffect)(()=>{n&&!T&&$({...E.env})},[n,E.env,$,T]);let Z=(0,r.useCallback)((e,t)=>{D(!0),H(r=>({...r,[e]:t}))},[]),ee=(0,r.useCallback)((e,t)=>{D(!0),W(r=>({...r,[e]:t}))},[]),et=(0,r.useCallback)(async e=>{if(e)return void a(!0);(!R||await (0,g.confirmDiscardFlyoutChanges)())&&a(!1)},[R,a]),er=(0,r.useCallback)(async()=>{let e=function(e){for(let r of j){var t;if(r.required&&!String(null!=(t=e[r.key])?t:"").trim())return{ok:!1,message:"请填写".concat(r.name)}}return{ok:!0}}(K);if(!e.ok)return void u.appToast.info(e.message);let t=function(e,t){let r={};for(let l of j){var n;if(C.has(l.key))continue;let a=l.key.trim(),i=String(null!=(n=e[l.key])?n:"");if(i.trim()){if(t.has(a))return{ok:!1,message:"自定义变量不能与固定表单重复:".concat(a)};r[a]=i}}return{ok:!0,env:r}}(K,J);if(!t.ok)return void u.appToast.info(t.message);let r=b.useAppStore.getState().agentConfig.env,n=(0,f.mergeGroupEnvIntoAgentEnv)(r,X,q);n=function(e,t){let r={...e};for(let e of j){var n;if(C.has(e.key))continue;let l=e.key.trim(),a=String(null!=(n=t[e.key])?n:"").trim();a?r[l]=a:delete r[l]}return r}(n,K),I(!0);try{await (0,p.persistAgentEnv)(k,_,N(),n,P),D(!1),await (null==y?void 0:y()),a(!1)}catch(e){u.appToast.error("保存环境变量失败:".concat(e instanceof Error?e.message:String(e)))}finally{I(!1)}},[K,J,X,q,k,_,N,P,a,y]);return(0,t.jsx)(o.Dialog,{open:n,onOpenChange:e=>void et(e),children:(0,t.jsxs)(o.DialogContent,{"aria-labelledby":A,className:"max-w-4xl",children:[(0,t.jsxs)(o.DialogHeader,{children:[(0,t.jsx)("div",{className:"min-w-0 flex-1",children:(0,t.jsx)(o.DialogTitle,{id:A,children:"添加服务商"})}),(0,t.jsx)(o.DialogClose,{"aria-label":"关闭"})]}),(0,t.jsx)(o.DialogBody,{className:"flex min-h-[420px] flex-col overflow-hidden !py-4",children:T?(0,t.jsx)("div",{className:"py-8 text-center text-[var(--ds-muted)]",children:"加载中…"}):(0,t.jsxs)(i.AppTabs,{tabs:Y,defaultValue:w,listVariant:"line",className:"min-h-0 flex-1",contentClassName:"min-h-0 overflow-y-auto",children:[(0,t.jsx)(i.AppTabsPanel,{value:w,children:(0,t.jsx)("div",{className:"divide-y divide-[var(--ds-border)]",children:j.map(e=>{var r,n;let l="custom-env-field-".concat(e.key),a="string"==typeof K[e.key]?K[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:l,children:[e.name,e.required?(0,t.jsx)("span",{className:"ml-0.5 text-destructive",children:"*"}):null]}),e.options?(0,t.jsx)("select",{id:l,className:(0,h.cn)("h-8 rounded-md border border-[var(--ds-border)] bg-[var(--ds-bg)] px-3 text-sm text-[var(--ds-text)] outline-none focus-visible:border-[var(--ds-accent)] focus-visible:ring-2 focus-visible:ring-[color-mix(in_srgb,var(--ds-accent)_18%,transparent)]",e.className),value:a,onChange:t=>ee(e.key,t.target.value),children:e.options.map(e=>(0,t.jsx)("option",{value:e.value,children:e.label},e.value))}):(0,t.jsx)(s.Input,{id:l,type:null!=(r=e.inputType)?r:"text",spellCheck:!1,autoComplete:"off",placeholder:null!=(n=e.placeholder)?n:"请输入".concat(e.name),className:(0,h.cn)("border-[var(--ds-border)] bg-[var(--ds-bg)] placeholder:text-[var(--text-placeholder)]",e.className),value:a,onChange:t=>ee(e.key,t.target.value)})]},e.key)})})}),X.length?(0,t.jsx)(i.AppTabsPanel,{value:"llm",children:(0,t.jsx)(x.AgentEnvGroupForm,{fields:X,fieldValues:q,onFieldChange:Z})}):null]})}),(0,t.jsxs)("div",{className:"flex shrink-0 justify-end gap-2 border-t border-[var(--ds-border)] bg-[var(--ds-sidebar)] px-4 py-3",children:[(0,t.jsx)(l.Button,{type:"button",variant:"plain-outline",size:"lg",disabled:T||z,onClick:()=>void et(!1),className:"cursor-pointer",children:"取消"}),(0,t.jsx)(l.Button,{type:"button",size:"lg",disabled:T||z,onClick:()=>void er(),className:"cursor-pointer",children:z?"保存中…":"保存"})]})]})})}var k=e.i(85413),_=e.i(94197),E=e.i(68499);function N(e){let{row:r,onSetDefault:n,onTest:a,onEdit:i,onDelete:o}=e,s="".concat(r.baseUrl," · ").concat(r.model);return(0,t.jsxs)("article",{className:(0,h.cn)("group flex w-full items-center gap-4 rounded-xl border border-solid bg-[var(--ds-bg)] px-4 py-3.5 transition-[border-color,box-shadow]",r.isDefault?"border-[color:var(--ds-ok)]":"border-[color:var(--ds-border)] 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,h.cn)("size-2 shrink-0 rounded-full",r.isDefault?"bg-[var(--ds-ok)]":"bg-[var(--ds-muted)]"),"aria-hidden":"true"}),(0,t.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,t.jsx)("h3",{className:"truncate font-semibold text-[var(--ds-text)]",children:r.name}),(0,t.jsx)("p",{className:"mt-1 truncate text-[var(--ds-muted)]",title:s,children:s})]})]}),(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)(l.Button,{type:"button",variant:"plain",size:"sm",disabled:r.isDefault,className:"h-8 cursor-pointer !px-0 text-[var(--ds-text)] hover:text-[var(--ds-accent)] disabled:cursor-not-allowed disabled:text-[var(--ds-muted)] disabled:opacity-60",onClick:()=>n(r.id),children:"设为默认"}),(0,t.jsx)(l.Button,{type:"button",variant:"plain",size:"sm",className:"h-8 cursor-pointer px-2 text-[var(--ds-text)] hover:text-[var(--ds-accent)]",onClick:()=>a(r.id),children:"测试"}),(0,t.jsx)(_.IconTooltipButton,{icon:"Edit",label:"编辑",ariaLabel:"编辑 ".concat(r.name),onClick:()=>i(r.id)}),(0,t.jsx)(_.IconTooltipButton,{icon:"Trash2",label:r.isDefault?"默认服务商不可删除":"删除",tone:"danger",disabled:r.isDefault,ariaLabel:"删除 ".concat(r.name),onClick:()=>o(r.id)})]})]})}function O(){let[e,n]=(0,r.useState)(()=>y.map(e=>({...e}))),l=(0,r.useCallback)(e=>{n(t=>t.map(t=>({...t,isDefault:t.id===e}))),u.appToast.success("已设为默认服务商")},[]),a=(0,r.useCallback)(t=>{var r;let n=e.find(e=>e.id===t);u.appToast.info("正在测试「".concat(null!=(r=null==n?void 0:n.name)?r:t,"」连接…"))},[e]),i=(0,r.useCallback)(t=>{var r;let n=e.find(e=>e.id===t);u.appToast.info("编辑「".concat(null!=(r=null==n?void 0:n.name)?r:t,"」功能开发中"))},[e]),o=(0,r.useCallback)(async t=>{let r=e.find(e=>e.id===t);r&&!r.isDefault&&await (0,E.confirmAlertDialog)({title:"确认删除服务商?",description:"服务商「".concat(r.name,"」将被永久删除,此操作不可恢复。"),confirmText:"删除",cancelText:"取消"})&&(n(e=>e.filter(e=>e.id!==t)),u.appToast.success("已删除服务商"))},[e]);return(0,t.jsx)("div",{className:"mt-4 flex flex-col gap-3",children:0===e.length?(0,t.jsx)(k.Empty,{text:"暂无服务商"}):e.map(e=>(0,t.jsx)(N,{row:e,onSetDefault:l,onTest:a,onEdit:i,onDelete:e=>void o(e)},e.id))})}function P(){let[e,i]=(0,r.useState)(!1);return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.ManageChromeHeaderActions,{children:(0,t.jsx)("div",{className:"flex flex-wrap items-center",children:(0,t.jsxs)(l.Button,{type:"button",variant:"plain-outline",size:"lg",onClick:()=>i(!0),className:"mr-[12px]",children:[(0,t.jsx)(a.default,{name:"Create",size:16,className:"align-middle"}),"添加服务商"]})})}),(0,t.jsx)(O,{}),(0,t.jsx)(A,{open:e,onOpenChange:i})]})}}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
*,:before,:after{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 transparent;--tw-ring-shadow:0 0 transparent;--tw-shadow:0 0 transparent;--tw-shadow-colored:0 0 transparent;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 transparent;--tw-ring-shadow:0 0 transparent;--tw-shadow:0 0 transparent;--tw-shadow-colored:0 0 transparent;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }.theme{--font-heading:var(--font-display);--font-sans:var(--font-body);--font-mono:var(--font-mono)}:root{--background:#fff;--foreground:#0a0a0a;--card:#fff;--card-foreground:#0a0a0a;--popover:#fff;--popover-foreground:#0a0a0a;--primary:#171717;--primary-foreground:#fafafa;--secondary:#f5f5f5;--secondary-foreground:#171717;--muted:#f5f5f5;--muted-foreground:#737373;--accent:#f5f5f5;--accent-foreground:#171717;--destructive:#e40014;--destructive-foreground:#fafafa;--border:#e5e5e5;--input:#e5e5e5;--ring:#a1a1a1;--chart-1:#d4d4d4;--chart-2:#737373;--chart-3:#525252;--chart-4:#404040;--chart-5:#262626;--radius:.625rem;--sidebar:#fafafa;--sidebar-foreground:#0a0a0a;--sidebar-primary:#171717;--sidebar-primary-foreground:#fafafa;--sidebar-accent:#f5f5f5;--sidebar-accent-foreground:#171717;--sidebar-border:#e5e5e5;--sidebar-ring:#a1a1a1}@supports (color:color(display-p3 0 0 0)){:root{--background:color(display-p3 1 1 1);--foreground:color(display-p3 .0393882 .0393882 .0393882);--card:color(display-p3 1 1 1);--card-foreground:color(display-p3 .0393882 .0393882 .0393882);--popover:color(display-p3 1 1 1);--popover-foreground:color(display-p3 .0393882 .0393882 .0393882);--primary:color(display-p3 .0905274 .0905274 .0905274);--primary-foreground:color(display-p3 .980256 .980256 .980256);--secondary:color(display-p3 .960587 .960587 .960587);--secondary-foreground:color(display-p3 .0905274 .0905274 .0905274);--muted:color(display-p3 .960587 .960587 .960587);--muted-foreground:color(display-p3 .451519 .451519 .451519);--accent:color(display-p3 .960587 .960587 .960587);--accent-foreground:color(display-p3 .0905274 .0905274 .0905274);--destructive:color(display-p3 .830323 .140383 .133196);--destructive-foreground:color(display-p3 .980256 .980256 .980256);--border:color(display-p3 .898161 .898161 .898161);--input:color(display-p3 .898161 .898161 .898161);--ring:color(display-p3 .630163 .630163 .630163);--chart-1:color(display-p3 .831444 .831444 .831444);--chart-2:color(display-p3 .451519 .451519 .451519);--chart-3:color(display-p3 .321993 .321993 .321993);--chart-4:color(display-p3 .250471 .250471 .250471);--chart-5:color(display-p3 .149382 .149382 .149382);--sidebar:color(display-p3 .980256 .980256 .980256);--sidebar-foreground:color(display-p3 .0393882 .0393882 .0393882);--sidebar-primary:color(display-p3 .0905274 .0905274 .0905274);--sidebar-primary-foreground:color(display-p3 .980256 .980256 .980256);--sidebar-accent:color(display-p3 .960587 .960587 .960587);--sidebar-accent-foreground:color(display-p3 .0905274 .0905274 .0905274);--sidebar-border:color(display-p3 .898161 .898161 .898161);--sidebar-ring:color(display-p3 .630163 .630163 .630163)}}@supports (color:lab(0% 0 0)){:root{--background:lab(100% 0 0);--foreground:lab(2.75381% 0 0);--card:lab(100% 0 0);--card-foreground:lab(2.75381% 0 0);--popover:lab(100% 0 0);--popover-foreground:lab(2.75381% 0 0);--primary:lab(7.78201% -.0000149012 0);--primary-foreground:lab(98.26% 0 0);--secondary:lab(96.52% -.0000298023 .0000119209);--secondary-foreground:lab(7.78201% -.0000149012 0);--muted:lab(96.52% -.0000298023 .0000119209);--muted-foreground:lab(48.496% 0 0);--accent:lab(96.52% -.0000298023 .0000119209);--accent-foreground:lab(7.78201% -.0000149012 0);--destructive:lab(48.4493% 77.4328 61.5452);--destructive-foreground:lab(98.26% 0 0);--border:lab(90.952% 0 -.0000119209);--input:lab(90.952% 0 -.0000119209);--ring:lab(66.128% -.0000298023 .0000119209);--chart-1:lab(84.92% 0 -.0000119209);--chart-2:lab(48.496% 0 0);--chart-3:lab(34.924% 0 0);--chart-4:lab(27.036% 0 0);--chart-5:lab(15.204% 0 -.00000596046);--sidebar:lab(98.26% 0 0);--sidebar-foreground:lab(2.75381% 0 0);--sidebar-primary:lab(7.78201% -.0000149012 0);--sidebar-primary-foreground:lab(98.26% 0 0);--sidebar-accent:lab(96.52% -.0000298023 .0000119209);--sidebar-accent-foreground:lab(7.78201% -.0000149012 0);--sidebar-border:lab(90.952% 0 -.0000119209);--sidebar-ring:lab(66.128% -.0000298023 .0000119209)}}.dark{--background:#0a0a0a;--foreground:#fafafa;--card:#171717;--card-foreground:#fafafa;--popover:#171717;--popover-foreground:#fafafa;--primary:#e5e5e5;--primary-foreground:#171717;--secondary:#262626;--secondary-foreground:#fafafa;--muted:#262626;--muted-foreground:#a1a1a1;--accent:#00c37b;--accent-foreground:#fafafa;--destructive:#ff6568;--destructive-foreground:#fafafa;--border:rgba(255,255,255,.1);--input:rgba(255,255,255,.15);--ring:#737373;--chart-1:#d4d4d4;--chart-2:#737373;--chart-3:#525252;--chart-4:#404040;--chart-5:#262626;--sidebar:#171717;--sidebar-foreground:#fafafa;--sidebar-primary:#1447e6;--sidebar-primary-foreground:#fafafa;--sidebar-accent:#262626;--sidebar-accent-foreground:#fafafa;--sidebar-border:rgba(255,255,255,.1);--sidebar-ring:#737373}@supports (color:color(display-p3 0 0 0)){.dark{--background:color(display-p3 .0393882 .0393882 .0393882);--foreground:color(display-p3 .980256 .980256 .980256);--card:color(display-p3 .0905274 .0905274 .0905274);--card-foreground:color(display-p3 .980256 .980256 .980256);--popover:color(display-p3 .0905274 .0905274 .0905274);--popover-foreground:color(display-p3 .980256 .980256 .980256);--primary:color(display-p3 .898161 .898161 .898161);--primary-foreground:color(display-p3 .0905274 .0905274 .0905274);--secondary:color(display-p3 .149382 .149382 .149382);--secondary-foreground:color(display-p3 .980256 .980256 .980256);--muted:color(display-p3 .149382 .149382 .149382);--muted-foreground:color(display-p3 .630163 .630163 .630163);--accent:color(display-p3 .339841 .754462 .503519);--accent-foreground:color(display-p3 .980256 .980256 .980256);--destructive:color(display-p3 .933534 .431676 .423491);--destructive-foreground:color(display-p3 .980256 .980256 .980256);--border:color(display-p3 1 1 1/.1);--input:color(display-p3 1 1 1/.15);--ring:color(display-p3 .451519 .451519 .451519);--chart-1:color(display-p3 .831444 .831444 .831444);--chart-2:color(display-p3 .451519 .451519 .451519);--chart-3:color(display-p3 .321993 .321993 .321993);--chart-4:color(display-p3 .250471 .250471 .250471);--chart-5:color(display-p3 .149382 .149382 .149382);--sidebar:color(display-p3 .0905274 .0905274 .0905274);--sidebar-foreground:color(display-p3 .980256 .980256 .980256);--sidebar-primary:color(display-p3 .1379 .274983 .867624);--sidebar-primary-foreground:color(display-p3 .980256 .980256 .980256);--sidebar-accent:color(display-p3 .149382 .149382 .149382);--sidebar-accent-foreground:color(display-p3 .980256 .980256 .980256);--sidebar-border:color(display-p3 1 1 1/.1);--sidebar-ring:color(display-p3 .451519 .451519 .451519)}}@supports (color:lab(0% 0 0)){.dark{--background:lab(2.75381% 0 0);--foreground:lab(98.26% 0 0);--card:lab(7.78201% -.0000149012 0);--card-foreground:lab(98.26% 0 0);--popover:lab(7.78201% -.0000149012 0);--popover-foreground:lab(98.26% 0 0);--primary:lab(90.952% 0 -.0000119209);--primary-foreground:lab(7.78201% -.0000149012 0);--secondary:lab(15.204% 0 -.00000596046);--secondary-foreground:lab(98.26% 0 0);--muted:lab(15.204% 0 -.00000596046);--muted-foreground:lab(66.128% -.0000298023 .0000119209);--accent:lab(69.7395% -56.1647 24.7025);--accent-foreground:lab(98.26% 0 0);--destructive:lab(63.7053% 60.745 31.3109);--destructive-foreground:lab(98.26% 0 0);--border:lab(100% 0 0/.1);--input:lab(100% 0 0/.15);--ring:lab(48.496% 0 0);--chart-1:lab(84.92% 0 -.0000119209);--chart-2:lab(48.496% 0 0);--chart-3:lab(34.924% 0 0);--chart-4:lab(27.036% 0 0);--chart-5:lab(15.204% 0 -.00000596046);--sidebar:lab(7.78201% -.0000149012 0);--sidebar-foreground:lab(98.26% 0 0);--sidebar-primary:lab(36.9089% 35.0961 -85.6872);--sidebar-primary-foreground:lab(98.26% 0 0);--sidebar-accent:lab(15.204% 0 -.00000596046);--sidebar-accent-foreground:lab(98.26% 0 0);--sidebar-border:lab(100% 0 0/.1);--sidebar-ring:lab(48.496% 0 0)}}*{border-color:var(--border)}html{font-family:var(--font-body),ui-sans-serif,system-ui,sans-serif;font-size:16px;line-height:1.5}body{background-color:var(--background);color:var(--foreground);font-size:var(--text-base);line-height:inherit}input,textarea,select,button{font-family:inherit;font-size:inherit}.container{width:100%}@media (min-width:640px){.container{max-width:640px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1280px){.container{max-width:1280px}}@media (min-width:1536px){.container{max-width:1536px}}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.pointer-events-none{pointer-events:none}.visible{visibility:visible}.invisible{visibility:hidden}.collapse{visibility:collapse}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.inset-0{top:0;bottom:0;left:0;right:0}.inset-x-0{left:0;right:0}.-left-\[22px\]{left:-22px}.-left-\[24px\]{left:-24px}.-left-\[39px\]{left:-39px}.-left-\[40px\]{left:-40px}.-right-1\.5{right:-.375rem}.-top-0\.5{top:-.125rem}.-top-1\.5{top:-.375rem}.bottom-1{bottom:.25rem}.bottom-2{bottom:.5rem}.bottom-full{bottom:100%}.left-0{left:0}.left-2{left:.5rem}.left-2\.5{left:.625rem}.left-3{left:.75rem}.right-2{right:.5rem}.top-0{top:0}.top-0\.5{top:.125rem}.top-1{top:.25rem}.top-1\/2{top:50%}.top-2{top:.5rem}.top-6{top:1.5rem}.isolate{isolation:isolate}.z-10{z-index:10}.z-50{z-index:50}.z-\[10000\]{z-index:10000}.z-\[10001\]{z-index:10001}.z-\[10050\]{z-index:10050}.z-\[100\]{z-index:100}.z-\[1\]{z-index:1}.m-0{margin:0}.m-3{margin:.75rem}.m-\[\.15rem_\.35rem_0\]{margin:.15rem .35rem 0}.m-\[\.35rem_\.35rem_0\]{margin:.35rem .35rem 0}.m-\[\.45rem_0_0\]{margin:.45rem 0 0}.-mx-1{margin-left:-.25rem;margin-right:-.25rem}.mx-0{margin-left:0;margin-right:0}.mx-1{margin-left:.25rem;margin-right:.25rem}.mx-auto{margin-left:auto;margin-right:auto}.my-1{margin-top:.25rem;margin-bottom:.25rem}.my-2{margin-top:.5rem;margin-bottom:.5rem}.\!mr-1{margin-right:.25rem!important}.\!mt-\[1\.25rem\]{margin-top:1.25rem!important}.mb-0{margin-bottom:0}.mb-1{margin-bottom:.25rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-5{margin-bottom:1.25rem}.mb-\[-2px\]{margin-bottom:-2px}.ml-0\.5{margin-left:.125rem}.ml-1{margin-left:.25rem}.ml-2{margin-left:.5rem}.ml-auto{margin-left:auto}.mr-1{margin-right:.25rem}.mr-2{margin-right:.5rem}.mr-3{margin-right:.75rem}.mr-4{margin-right:1rem}.mr-\[12px\]{margin-right:12px}.mr-\[16px\]{margin-right:16px}.mt-0\.5{margin-top:.125rem}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-5{margin-top:1.25rem}.mt-\[0\.75rem\]{margin-top:.75rem}.mt-\[24px\]{margin-top:24px}.mt-auto{margin-top:auto}.box-border{box-sizing:border-box}.line-clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.\!block{display:block!important}.block{display:block}.inline-block{display:inline-block}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.hidden{display:none}.\!size-3\.5{width:.875rem!important;height:.875rem!important}.\!size-4{width:1rem!important;height:1rem!important}.size-1{width:.25rem;height:.25rem}.size-1\.5{width:.375rem;height:.375rem}.size-10{width:2.5rem;height:2.5rem}.size-12{width:3rem;height:3rem}.size-2{width:.5rem;height:.5rem}.size-3{width:.75rem;height:.75rem}.size-3\.5{width:.875rem;height:.875rem}.size-4{width:1rem;height:1rem}.size-5{width:1.25rem;height:1.25rem}.size-6{width:1.5rem;height:1.5rem}.size-7{width:1.75rem;height:1.75rem}.size-8{width:2rem;height:2rem}.size-9{width:2.25rem;height:2.25rem}.size-full{width:100%;height:100%}.\!h-7{height:1.75rem!important}.\!h-\[18px\]{height:18px!important}.h-1{height:.25rem}.h-1\.5{height:.375rem}.h-10{height:2.5rem}.h-11{height:2.75rem}.h-14{height:3.5rem}.h-16{height:4rem}.h-3{height:.75rem}.h-3\.5{height:.875rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-7{height:1.75rem}.h-8{height:2rem}.h-9{height:2.25rem}.h-\[14px\]{height:14px}.h-\[18px\]{height:18px}.h-\[calc\(100\%-2px\)\]{height:calc(100% - 2px)}.h-\[min\(68vh\,520px\)\]{height:min(68vh,520px)}.h-\[var\(--radix-select-trigger-height\)\]{height:var(--radix-select-trigger-height)}.h-auto{height:auto}.h-dvh{height:100dvh}.h-full{height:100%}.h-px{height:1px}.max-h-0{max-height:0}.max-h-40{max-height:10rem}.max-h-48{max-height:12rem}.max-h-96{max-height:24rem}.max-h-\[2000px\]{max-height:2000px}.max-h-\[225px\]{max-height:225px}.max-h-\[240px\]{max-height:240px}.max-h-\[300px\]{max-height:300px}.max-h-\[6000px\]{max-height:6000px}.max-h-\[92vh\]{max-height:92vh}.max-h-\[calc\(100vh-16px\)\]{max-height:calc(100vh - 16px)}.max-h-\[min\(50vh\,22rem\)\]{max-height:min(50vh,22rem)}.max-h-\[min\(50vh\,360px\)\]{max-height:min(50vh,360px)}.max-h-\[min\(68vh\,640px\)\]{max-height:min(68vh,640px)}.max-h-dvh{max-height:100dvh}.\!min-h-0{min-height:0!important}.\!min-h-\[--min-h\]{min-height:var(--min-h)!important}.min-h-0{min-height:0}.min-h-20{min-height:5rem}.min-h-5{min-height:1.25rem}.min-h-7{min-height:1.75rem}.min-h-9{min-height:2.25rem}.min-h-\[110px\]{min-height:110px}.min-h-\[120px\]{min-height:120px}.min-h-\[124px\]{min-height:124px}.min-h-\[180px\]{min-height:180px}.min-h-\[200px\]{min-height:200px}.min-h-\[220px\]{min-height:220px}.min-h-\[240px\]{min-height:240px}.min-h-\[320px\]{min-height:320px}.min-h-\[40vh\]{min-height:40vh}.min-h-\[420px\]{min-height:420px}.min-h-\[80px\]{min-height:80px}.min-h-\[88px\]{min-height:88px}.min-h-full{min-height:100%}.\!w-7{width:1.75rem!important}.\!w-\[18px\]{width:18px!important}.\!w-\[520px\]{width:520px!important}.\!w-fit{width:-moz-fit-content!important;width:fit-content!important}.w-1{width:.25rem}.w-10{width:2.5rem}.w-11{width:2.75rem}.w-14{width:3.5rem}.w-16{width:4rem}.w-24{width:6rem}.w-28{width:7rem}.w-3{width:.75rem}.w-3\.5{width:.875rem}.w-4{width:1rem}.w-5{width:1.25rem}.w-6{width:1.5rem}.w-64{width:16rem}.w-7{width:1.75rem}.w-8{width:2rem}.w-9{width:2.25rem}.w-\[100px\]{width:100px}.w-\[112px\]{width:112px}.w-\[116px\]{width:116px}.w-\[128px\]{width:128px}.w-\[140px\]{width:140px}.w-\[14px\]{width:14px}.w-\[160px\]{width:160px}.w-\[168px\]{width:168px}.w-\[172px\]{width:172px}.w-\[180px\]{width:180px}.w-\[18px\]{width:18px}.w-\[220px\]{width:220px}.w-\[260px\]{width:260px}.w-\[300px\]{width:300px}.w-\[72px\]{width:72px}.w-\[88px\]{width:88px}.w-\[96px\]{width:96px}.w-auto{width:auto}.w-fit{width:-moz-fit-content;width:fit-content}.w-full{width:100%}.w-max{width:max-content}.w-px{width:1px}.\!min-w-0{min-width:0!important}.min-w-0{min-width:0}.min-w-24{min-width:6rem}.min-w-32{min-width:8rem}.min-w-9{min-width:2.25rem}.min-w-\[120px\]{min-width:120px}.min-w-\[140px\]{min-width:140px}.min-w-\[148px\]{min-width:148px}.min-w-\[172px\]{min-width:172px}.min-w-\[180px\]{min-width:180px}.min-w-\[18px\]{min-width:18px}.min-w-\[200px\]{min-width:200px}.min-w-\[6\.5rem\]{min-width:6.5rem}.min-w-\[8rem\]{min-width:8rem}.min-w-\[96px\]{min-width:96px}.min-w-\[var\(--radix-select-trigger-width\)\]{min-width:var(--radix-select-trigger-width)}.\!max-w-\[400px\]{max-width:400px!important}.max-w-36{max-width:9rem}.max-w-3xl{max-width:48rem}.max-w-4xl{max-width:56rem}.max-w-\[120px\]{max-width:120px}.max-w-\[160px\]{max-width:160px}.max-w-\[240px\]{max-width:240px}.max-w-\[260px\]{max-width:260px}.max-w-\[300px\]{max-width:300px}.max-w-\[460px\]{max-width:460px}.max-w-\[480px\]{max-width:480px}.max-w-\[520px\]{max-width:520px}.max-w-\[560px\]{max-width:560px}.max-w-\[720px\]{max-width:720px}.max-w-\[760px\]{max-width:760px}.max-w-\[840px\]{max-width:840px}.max-w-\[920px\]{max-width:920px}.max-w-\[min\(100vw-24px\,260px\)\]{max-width:min(100vw - 24px,260px)}.max-w-\[min\(100vw-32px\,320px\)\]{max-width:min(100vw - 32px,320px)}.max-w-\[min\(360px\,90vw\)\]{max-width:min(360px,90vw)}.max-w-\[min\(540px\,100\%\)\]{max-width:min(540px,100%)}.max-w-full{max-width:100%}.max-w-md{max-width:28rem}.max-w-none{max-width:none}.max-w-xs{max-width:20rem}.\!flex-none{flex:none!important}.flex-1{flex:1}.flex-shrink-0,.shrink-0{flex-shrink:0}.caption-bottom{caption-side:bottom}.border-collapse{border-collapse:collapse}.-translate-y-1\/2{--tw-translate-y:-50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y))rotate(var(--tw-rotate))skewX(var(--tw-skew-x))skewY(var(--tw-skew-y))scaleX(var(--tw-scale-x))scaleY(var(--tw-scale-y))}.rotate-90{--tw-rotate:90deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y))rotate(var(--tw-rotate))skewX(var(--tw-skew-x))skewY(var(--tw-skew-y))scaleX(var(--tw-scale-x))scaleY(var(--tw-scale-y))}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y))rotate(var(--tw-rotate))skewX(var(--tw-skew-x))skewY(var(--tw-skew-y))scaleX(var(--tw-scale-x))scaleY(var(--tw-scale-y))}.animate-\[backdropIn_0\.2s_ease-out\]{animation:.2s ease-out backdropIn}.animate-\[modalIn_0\.2s_ease-out\]{animation:.2s ease-out modalIn}@keyframes spin{to{transform:rotate(360deg)}}.animate-spin{animation:1s linear infinite spin}.\!cursor-pointer{cursor:pointer!important}.cursor-default{cursor:default}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.resize-none{resize:none}.resize-y{resize:vertical}.resize{resize:both}.list-disc{list-style-type:disc}.list-none{list-style-type:none}.appearance-none{-webkit-appearance:none;-moz-appearance:none;appearance:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.\!justify-start{justify-content:flex-start!important}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-0{gap:0}.gap-0\.5{gap:.125rem}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-2{gap:.5rem}.gap-2\.5{gap:.625rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-5{gap:1.25rem}.gap-\[10px\]{gap:10px}.gap-\[var\(--space-4\)\]{gap:var(--space-4)}.gap-x-4{-moz-column-gap:1rem;column-gap:1rem}.gap-x-7{-moz-column-gap:1.75rem;column-gap:1.75rem}.gap-y-1\.5{row-gap:.375rem}.gap-y-4{row-gap:1rem}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.25rem*calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem*var(--tw-space-y-reverse))}.space-y-1\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.375rem*calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.375rem*var(--tw-space-y-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.5rem*calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem*var(--tw-space-y-reverse))}.space-y-2\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.625rem*calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.625rem*var(--tw-space-y-reverse))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.75rem*calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem*var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(1rem*calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem*var(--tw-space-y-reverse))}.divide-y>:not([hidden])~:not([hidden]){--tw-divide-y-reverse:0;border-top-width:calc(1px*calc(1 - var(--tw-divide-y-reverse)));border-bottom-width:calc(1px*var(--tw-divide-y-reverse))}.divide-\[var\(--ds-border\)\]>:not([hidden])~:not([hidden]){border-color:var(--ds-border)}.self-start{align-self:flex-start}.self-stretch{align-self:stretch}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-visible{overflow:visible}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.overflow-x-hidden{overflow-x:hidden}.overscroll-contain{overscroll-behavior:contain}.overscroll-y-contain{overscroll-behavior-y:contain}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.\!rounded{border-radius:.25rem!important}.\!rounded-\[10px\]{border-radius:10px!important}.\!rounded-md{border-radius:calc(var(--radius) - 2px)!important}.\!rounded-none{border-radius:0!important}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:1rem}.rounded-\[4px\]{border-radius:4px}.rounded-\[8px\]{border-radius:8px}.rounded-\[min\(var\(--radius-md\)\,10px\)\]{border-radius:min(var(--radius-md),10px)}.rounded-\[min\(var\(--radius-md\)\,12px\)\]{border-radius:min(var(--radius-md),12px)}.rounded-\[min\(var\(--radius-md\)\,14px\)\]{border-radius:min(var(--radius-md),14px)}.rounded-\[var\(--ds-radius-sm\)\]{border-radius:var(--ds-radius-sm)}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:var(--radius)}.rounded-md{border-radius:calc(var(--radius) - 2px)}.rounded-none{border-radius:0}.rounded-sm{border-radius:calc(var(--radius) - 4px)}.rounded-xl{border-radius:.75rem}.\!border{border-width:1px!important}.\!border-0{border-width:0!important}.border{border-width:1px}.border-0{border-width:0}.border-2{border-width:2px}.border-x-0{border-left-width:0;border-right-width:0}.border-b{border-bottom-width:1px}.border-l-2{border-left-width:2px}.border-r{border-right-width:1px}.border-t{border-top-width:1px}.border-t-0{border-top-width:0}.\!border-solid{border-style:solid!important}.border-solid{border-style:solid}.border-dashed{border-style:dashed}.\!border-none{border-style:none!important}.border-none{border-style:none}.\!border-\[\#1677FF\]{--tw-border-opacity:1!important;border-color:rgba(22,119,255,var(--tw-border-opacity,1))!important}.\!border-\[\#52C51A\]{--tw-border-opacity:1!important;border-color:rgba(82,197,26,var(--tw-border-opacity,1))!important}.\!border-\[\#FAAD14\]{--tw-border-opacity:1!important;border-color:rgba(250,173,20,var(--tw-border-opacity,1))!important}.\!border-\[\#FF4D50\]{--tw-border-opacity:1!important;border-color:rgba(255,77,80,var(--tw-border-opacity,1))!important}.\!border-\[\#e5e5e5\]{--tw-border-opacity:1!important;border-color:rgba(229,229,229,var(--tw-border-opacity,1))!important}.\!border-\[var\(--border-default\)\]{border-color:var(--border-default)!important}.\!border-\[var\(--ds-accent\)\]{border-color:var(--ds-accent)!important}.border-\[\#223044\]{--tw-border-opacity:1;border-color:rgba(34,48,68,var(--tw-border-opacity,1))}.border-\[\#e2e6ee\]{--tw-border-opacity:1;border-color:rgba(226,230,238,var(--tw-border-opacity,1))}.border-\[\#e4dfc8\]{--tw-border-opacity:1;border-color:rgba(228,223,200,var(--tw-border-opacity,1))}.border-\[\#efefef\]{--tw-border-opacity:1;border-color:rgba(239,239,239,var(--tw-border-opacity,1))}.border-\[color\:var\(--ds-accent\)\]{border-color:var(--ds-accent)}.border-\[color\:var\(--ds-border\)\]{border-color:var(--ds-border)}.border-\[color\:var\(--ds-ok\)\]{border-color:var(--ds-ok)}.border-\[var\(--amber\)\]{border-color:var(--amber)}.border-\[var\(--border-subtle\)\]{border-color:var(--border-subtle)}.border-\[var\(--calendar-day-today-border\)\]{border-color:var(--calendar-day-today-border)}.border-\[var\(--ds-accent\)\]{border-color:var(--ds-accent)}.border-\[var\(--ds-border\)\]{border-color:var(--ds-border)}.border-\[var\(--ds-border\,var\(--input\)\)\]{border-color:var(--ds-border,var(--input))}.border-\[var\(--green-dark\)\]{border-color:var(--green-dark)}.border-amber-500\/40{border-color:rgba(245,158,11,.4)}.border-black\/5{border-color:rgba(0,0,0,.05)}.border-black\/\[0\.06\]{border-color:rgba(0,0,0,.06)}.border-border{border-color:var(--border)}.border-destructive{border-color:var(--destructive)}.border-emerald-500\/40{border-color:rgba(16,185,129,.4)}.border-red-200{--tw-border-opacity:1;border-color:rgba(254,202,202,var(--tw-border-opacity,1))}.border-red-500\/40{border-color:rgba(239,68,68,.4)}.border-transparent{border-color:transparent}.border-white\/5{border-color:rgba(255,255,255,.05)}.border-t-\[var\(--ds-border\)\]{border-top-color:var(--ds-border)}.\!bg-\[\#E7F4FF\]{--tw-bg-opacity:1!important;background-color:rgba(231,244,255,var(--tw-bg-opacity,1))!important}.\!bg-\[\#F6FFED\]{--tw-bg-opacity:1!important;background-color:rgba(246,255,237,var(--tw-bg-opacity,1))!important}.\!bg-\[\#FFF3F1\]{--tw-bg-opacity:1!important;background-color:rgba(255,243,241,var(--tw-bg-opacity,1))!important}.\!bg-\[\#FFFBE6\]{--tw-bg-opacity:1!important;background-color:rgba(255,251,230,var(--tw-bg-opacity,1))!important}.\!bg-\[\#fbfbfc\]{--tw-bg-opacity:1!important;background-color:rgba(251,251,252,var(--tw-bg-opacity,1))!important}.\!bg-\[var\(--green-light\)\]{background-color:var(--green-light)!important}.\!bg-transparent{background-color:transparent!important}.bg-\[\#111\]{--tw-bg-opacity:1;background-color:rgba(17,17,17,var(--tw-bg-opacity,1))}.bg-\[\#e9e9e9\]{--tw-bg-opacity:1;background-color:rgba(233,233,233,var(--tw-bg-opacity,1))}.bg-\[\#efefef\]{--tw-bg-opacity:1;background-color:rgba(239,239,239,var(--tw-bg-opacity,1))}.bg-\[\#f6f7fa\]{--tw-bg-opacity:1;background-color:rgba(246,247,250,var(--tw-bg-opacity,1))}.bg-\[\#f9f9f7\]{--tw-bg-opacity:1;background-color:rgba(249,249,247,var(--tw-bg-opacity,1))}.bg-\[\#f9f9f9\]{--tw-bg-opacity:1;background-color:rgba(249,249,249,var(--tw-bg-opacity,1))}.bg-\[\#fafafa\]{--tw-bg-opacity:1;background-color:rgba(250,250,250,var(--tw-bg-opacity,1))}.bg-\[\#fbfbfc\]{--tw-bg-opacity:1;background-color:rgba(251,251,252,var(--tw-bg-opacity,1))}.bg-\[\#fef2f2\]{--tw-bg-opacity:1;background-color:rgba(254,242,242,var(--tw-bg-opacity,1))}.bg-\[\#fff\]{--tw-bg-opacity:1;background-color:rgba(255,255,255,var(--tw-bg-opacity,1))}.bg-\[color-mix\(in_srgb\,var\(--amber\)_14\%\,var\(--surface-1\)\)\]{background-color:color-mix(in srgb,var(--amber)14%,var(--surface-1))}.bg-\[color-mix\(in_srgb\,var\(--blue\)_12\%\,var\(--surface-1\)\)\]{background-color:color-mix(in srgb,var(--blue)12%,var(--surface-1))}.bg-\[rgba\(120\,30\,30\,\.07\)\]{background-color:rgba(120,30,30,.07)}.bg-\[rgba\(50\,100\,180\,\.07\)\]{background-color:rgba(50,100,180,.07)}.bg-\[var\(--amber\)\]{background-color:var(--amber)}.bg-\[var\(--blue\)\]{background-color:var(--blue)}.bg-\[var\(--border-hover\)\]{background-color:var(--border-hover)}.bg-\[var\(--calendar-day-bg\)\]{background-color:var(--calendar-day-bg)}.bg-\[var\(--calendar-day-disabled-bg\)\]{background-color:var(--calendar-day-disabled-bg)}.bg-\[var\(--calendar-day-selected-bg\)\]{background-color:var(--calendar-day-selected-bg)}.bg-\[var\(--calendar-day-selected-text\)\]{background-color:var(--calendar-day-selected-text)}.bg-\[var\(--calendar-day-today-border\)\]{background-color:var(--calendar-day-today-border)}.bg-\[var\(--ds-accent\)\]{background-color:var(--ds-accent)}.bg-\[var\(--ds-bg\)\]{background-color:var(--ds-bg)}.bg-\[var\(--ds-border\)\]{background-color:var(--ds-border)}.bg-\[var\(--ds-danger\)\]{background-color:var(--ds-danger)}.bg-\[var\(--ds-item-active\)\]{background-color:var(--ds-item-active)}.bg-\[var\(--ds-item-bg-hover\)\]{background-color:var(--ds-item-bg-hover)}.bg-\[var\(--ds-item-hover\)\]{background-color:var(--ds-item-hover)}.bg-\[var\(--ds-log-bg\)\]{background-color:var(--ds-log-bg)}.bg-\[var\(--ds-main-tint\)\]{background-color:var(--ds-main-tint)}.bg-\[var\(--ds-muted\)\]{background-color:var(--ds-muted)}.bg-\[var\(--ds-ok\)\]{background-color:var(--ds-ok)}.bg-\[var\(--ds-sidebar\)\]{background-color:var(--ds-sidebar)}.bg-\[var\(--ds-surface\)\]{background-color:var(--ds-surface)}.bg-\[var\(--green-light\)\]{background-color:var(--green-light)}.bg-\[var\(--surface-1\)\]{background-color:var(--surface-1)}.bg-\[var\(--surface-2\)\]{background-color:var(--surface-2)}.bg-amber-500\/15{background-color:rgba(245,158,11,.15)}.bg-amber-500\/5{background-color:rgba(245,158,11,.05)}.bg-background{background-color:var(--background)}.bg-black\/45{background-color:rgba(0,0,0,.45)}.bg-black\/70{background-color:rgba(0,0,0,.7)}.bg-border{background-color:var(--border)}.bg-destructive{background-color:var(--destructive)}.bg-emerald-500\/10{background-color:rgba(16,185,129,.1)}.bg-emerald-500\/15{background-color:rgba(16,185,129,.15)}.bg-emerald-500\/5{background-color:rgba(16,185,129,.05)}.bg-gray-800{--tw-bg-opacity:1;background-color:rgba(31,41,55,var(--tw-bg-opacity,1))}.bg-input{background-color:var(--input)}.bg-popover{background-color:var(--popover)}.bg-primary{background-color:var(--primary)}.bg-red-50{--tw-bg-opacity:1;background-color:rgba(254,242,242,var(--tw-bg-opacity,1))}.bg-red-500\/10{background-color:rgba(239,68,68,.1)}.bg-red-500\/15{background-color:rgba(239,68,68,.15)}.bg-red-500\/5{background-color:rgba(239,68,68,.05)}.bg-secondary{background-color:var(--secondary)}.bg-transparent{background-color:transparent}.bg-white{--tw-bg-opacity:1;background-color:rgba(255,255,255,var(--tw-bg-opacity,1))}.bg-white\/\[\.012\]{background-color:rgba(255,255,255,.01)}.object-contain{-o-object-fit:contain;object-fit:contain}.object-cover{-o-object-fit:cover;object-fit:cover}.\!p-0{padding:0!important}.\!p-3{padding:.75rem!important}.p-0{padding:0}.p-1{padding:.25rem}.p-1\.5{padding:.375rem}.p-2{padding:.5rem}.p-2\.5{padding:.625rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-5{padding:1.25rem}.p-\[\.45rem_\.75rem\]{padding:.45rem .75rem}.p-\[16px\]{padding:16px}.p-\[1rem_\.75rem\]{padding:1rem .75rem}.p-\[24px\]{padding:24px}.p-\[var\(--space-1\)\]{padding:var(--space-1)}.\!px-0{padding-left:0!important;padding-right:0!important}.\!px-1{padding-left:.25rem!important;padding-right:.25rem!important}.\!px-4{padding-left:1rem!important;padding-right:1rem!important}.\!px-5{padding-left:1.25rem!important;padding-right:1.25rem!important}.\!px-\[8px\]{padding-left:8px!important;padding-right:8px!important}.\!py-0{padding-top:0!important;padding-bottom:0!important}.\!py-3{padding-top:.75rem!important;padding-bottom:.75rem!important}.\!py-3\.5{padding-top:.875rem!important;padding-bottom:.875rem!important}.\!py-4{padding-top:1rem!important;padding-bottom:1rem!important}.px-0{padding-left:0;padding-right:0}.px-0\.5{padding-left:.125rem;padding-right:.125rem}.px-1{padding-left:.25rem;padding-right:.25rem}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.px-16{padding-left:4rem;padding-right:4rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-\[10px\]{padding-left:10px;padding-right:10px}.px-\[16px\]{padding-left:16px;padding-right:16px}.px-\[24px\]{padding-left:24px;padding-right:24px}.py-0{padding-top:0;padding-bottom:0}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-14{padding-top:3.5rem;padding-bottom:3.5rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-3\.5{padding-top:.875rem;padding-bottom:.875rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-6{padding-top:1.5rem;padding-bottom:1.5rem}.py-8{padding-top:2rem;padding-bottom:2rem}.py-\[\.85rem\]{padding-top:.85rem;padding-bottom:.85rem}.py-\[6px\]{padding-top:6px;padding-bottom:6px}.\!pl-0{padding-left:0!important}.\!pl-\[16px\]{padding-left:16px!important}.\!pr-0{padding-right:0!important}.\!pr-\[16px\]{padding-right:16px!important}.\!pt-1{padding-top:.25rem!important}.pb-1{padding-bottom:.25rem}.pb-2{padding-bottom:.5rem}.pb-2\.5{padding-bottom:.625rem}.pb-3{padding-bottom:.75rem}.pb-4{padding-bottom:1rem}.pb-\[1px\]{padding-bottom:1px}.pb-\[var\(--space-4\)\]{padding-bottom:var(--space-4)}.pl-1{padding-left:.25rem}.pl-1\.5{padding-left:.375rem}.pl-2{padding-left:.5rem}.pl-4{padding-left:1rem}.pl-6{padding-left:1.5rem}.pl-8{padding-left:2rem}.pl-9{padding-left:2.25rem}.pl-\[0\]{padding-left:0}.pr-1{padding-right:.25rem}.pr-3{padding-right:.75rem}.pr-5{padding-right:1.25rem}.pr-8{padding-right:2rem}.pr-\[0\]{padding-right:0}.pt-1{padding-top:.25rem}.pt-1\.5{padding-top:.375rem}.pt-2{padding-top:.5rem}.pt-3{padding-top:.75rem}.pt-4{padding-top:1rem}.pt-5{padding-top:1.25rem}.pt-\[16px\]{padding-top:16px}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.align-middle{vertical-align:middle}.font-mono{font-family:var(--font-mono),ui-monospace,monospace}.font-sans{font-family:var(--font-body),ui-sans-serif,system-ui,sans-serif}.\!text-base{font-size:var(--text-base)!important;line-height:1.5!important}.text-2xl{font-size:1.5rem;line-height:2rem}.text-\[0\.78rem\]{font-size:.78rem}.text-\[10\.5px\]{font-size:10.5px}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-\[12px\]{font-size:12px}.text-\[14px\]{font-size:14px}.text-\[9\.5px\]{font-size:9.5px}.text-base{font-size:var(--text-base);line-height:1.5}.text-lg{font-size:var(--text-lg);line-height:1.4}.text-sm{font-size:var(--text-sm);line-height:1.4}.text-xl{font-size:var(--text-xl);line-height:1.3}.text-xs{font-size:var(--text-xs);line-height:1.4}.\!font-normal{font-weight:400!important}.font-\[600\]{font-weight:600}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.italic{font-style:italic}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal)var(--tw-slashed-zero)var(--tw-numeric-figure)var(--tw-numeric-spacing)var(--tw-numeric-fraction)}.leading-5{line-height:1.25rem}.leading-6{line-height:1.5rem}.leading-7{line-height:1.75rem}.leading-\[1\.5\]{line-height:1.5}.leading-\[1\.6\]{line-height:1.6}.leading-none{line-height:1}.leading-relaxed{line-height:1.625}.leading-snug{line-height:1.375}.leading-tight{line-height:1.25}.tracking-wide{letter-spacing:.025em}.tracking-widest{letter-spacing:.1em}.\!text-\[\#1677FF\]{--tw-text-opacity:1!important;color:rgba(22,119,255,var(--tw-text-opacity,1))!important}.\!text-\[\#1C1E1F\]{--tw-text-opacity:1!important;color:rgba(28,30,31,var(--tw-text-opacity,1))!important}.\!text-\[\#52C51A\]{--tw-text-opacity:1!important;color:rgba(82,197,26,var(--tw-text-opacity,1))!important}.\!text-\[\#6e6e6e\]{--tw-text-opacity:1!important;color:rgba(110,110,110,var(--tw-text-opacity,1))!important}.\!text-\[\#A32D2D\]{--tw-text-opacity:1!important;color:rgba(163,45,45,var(--tw-text-opacity,1))!important}.\!text-\[\#FAAD14\]{--tw-text-opacity:1!important;color:rgba(250,173,20,var(--tw-text-opacity,1))!important}.\!text-\[\#FF4D50\]{--tw-text-opacity:1!important;color:rgba(255,77,80,var(--tw-text-opacity,1))!important}.\!text-\[\#e6e6e6\]{--tw-text-opacity:1!important;color:rgba(230,230,230,var(--tw-text-opacity,1))!important}.\!text-\[var\(--ds-text\)\]{color:var(--ds-text)!important}.\!text-zinc-700{--tw-text-opacity:1!important;color:rgba(63,63,70,var(--tw-text-opacity,1))!important}.text-\[\#252e3e\]{--tw-text-opacity:1;color:rgba(37,46,62,var(--tw-text-opacity,1))}.text-\[\#2e5a38\]{--tw-text-opacity:1;color:rgba(46,90,56,var(--tw-text-opacity,1))}.text-\[\#303a4a\]{--tw-text-opacity:1;color:rgba(48,58,74,var(--tw-text-opacity,1))}.text-\[\#343d52\]{--tw-text-opacity:1;color:rgba(52,61,82,var(--tw-text-opacity,1))}.text-\[\#353f52\]{--tw-text-opacity:1;color:rgba(53,63,82,var(--tw-text-opacity,1))}.text-\[\#3B6D11\]{--tw-text-opacity:1;color:rgba(59,109,17,var(--tw-text-opacity,1))}.text-\[\#4d80c4\]{--tw-text-opacity:1;color:rgba(77,128,196,var(--tw-text-opacity,1))}.text-\[\#535353\]{--tw-text-opacity:1;color:rgba(83,83,83,var(--tw-text-opacity,1))}.text-\[\#5a8ec4\]{--tw-text-opacity:1;color:rgba(90,142,196,var(--tw-text-opacity,1))}.text-\[\#626a77\]{--tw-text-opacity:1;color:rgba(98,106,119,var(--tw-text-opacity,1))}.text-\[\#6e2828\]{--tw-text-opacity:1;color:rgba(110,40,40,var(--tw-text-opacity,1))}.text-\[\#6e6e6e\]{--tw-text-opacity:1;color:rgba(110,110,110,var(--tw-text-opacity,1))}.text-\[\#8A8985\]{--tw-text-opacity:1;color:rgba(138,137,133,var(--tw-text-opacity,1))}.text-\[\#A32D2D\]{--tw-text-opacity:1;color:rgba(163,45,45,var(--tw-text-opacity,1))}.text-\[\#b0bac8\]{--tw-text-opacity:1;color:rgba(176,186,200,var(--tw-text-opacity,1))}.text-\[\#b4c4b9\]{--tw-text-opacity:1;color:rgba(180,196,185,var(--tw-text-opacity,1))}.text-\[var\(--amber\)\]{color:var(--amber)}.text-\[var\(--blue\)\]{color:var(--blue)}.text-\[var\(--calendar-day-disabled-text\)\]{color:var(--calendar-day-disabled-text)}.text-\[var\(--calendar-day-selected-text\)\]{color:var(--calendar-day-selected-text)}.text-\[var\(--calendar-day-text\)\]{color:var(--calendar-day-text)}.text-\[var\(--calendar-day-today-text\)\]{color:var(--calendar-day-today-text)}.text-\[var\(--ds-accent\)\]{color:var(--ds-accent)}.text-\[var\(--ds-accent\,hsl\(var\(--primary\)\)\)\]{color:var(--ds-accent,hsl(var(--primary)))}.text-\[var\(--ds-danger\)\]{color:var(--ds-danger)}.text-\[var\(--ds-muted\)\]{color:var(--ds-muted)}.text-\[var\(--ds-ok\)\]{color:var(--ds-ok)}.text-\[var\(--ds-text\)\]{color:var(--ds-text)}.text-\[var\(--green-dark\)\]{color:var(--green-dark)}.text-\[var\(--surface-1\)\]{color:var(--surface-1)}.text-\[var\(--text-placeholder\)\]{color:var(--text-placeholder)}.text-\[var\(--text-secondary\)\]{color:var(--text-secondary)}.text-\[var\(--text-tertiary\)\]{color:var(--text-tertiary)}.text-accent-foreground{color:var(--accent-foreground)}.text-amber-500{--tw-text-opacity:1;color:rgba(245,158,11,var(--tw-text-opacity,1))}.text-amber-600{--tw-text-opacity:1;color:rgba(217,119,6,var(--tw-text-opacity,1))}.text-amber-700{--tw-text-opacity:1;color:rgba(180,83,9,var(--tw-text-opacity,1))}.text-destructive{color:var(--destructive)}.text-emerald-600{--tw-text-opacity:1;color:rgba(5,150,105,var(--tw-text-opacity,1))}.text-emerald-700{--tw-text-opacity:1;color:rgba(4,120,87,var(--tw-text-opacity,1))}.text-foreground{color:var(--foreground)}.text-gray-500{--tw-text-opacity:1;color:rgba(107,114,128,var(--tw-text-opacity,1))}.text-muted-foreground{color:var(--muted-foreground)}.text-orange-600{--tw-text-opacity:1;color:rgba(234,88,12,var(--tw-text-opacity,1))}.text-popover-foreground{color:var(--popover-foreground)}.text-primary{color:var(--primary)}.text-primary-foreground{color:var(--primary-foreground)}.text-red-500{--tw-text-opacity:1;color:rgba(239,68,68,var(--tw-text-opacity,1))}.text-red-600{--tw-text-opacity:1;color:rgba(220,38,38,var(--tw-text-opacity,1))}.text-red-700{--tw-text-opacity:1;color:rgba(185,28,28,var(--tw-text-opacity,1))}.text-secondary-foreground{color:var(--secondary-foreground)}.text-white{--tw-text-opacity:1;color:rgba(255,255,255,var(--tw-text-opacity,1))}.text-zinc-400{--tw-text-opacity:1;color:rgba(161,161,170,var(--tw-text-opacity,1))}.text-zinc-500{--tw-text-opacity:1;color:rgba(113,113,122,var(--tw-text-opacity,1))}.text-zinc-700{--tw-text-opacity:1;color:rgba(63,63,70,var(--tw-text-opacity,1))}.text-zinc-900{--tw-text-opacity:1;color:rgba(24,24,27,var(--tw-text-opacity,1))}.underline{-webkit-text-decoration-line:underline;text-decoration-line:underline}.\!no-underline{-webkit-text-decoration-line:none!important;text-decoration-line:none!important}.underline-offset-4{text-underline-offset:4px}.opacity-0{opacity:0}.opacity-100{opacity:1}.opacity-40{opacity:.4}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-80{opacity:.8}.opacity-90{opacity:.9}.\!shadow-none{--tw-shadow:0 0 transparent!important;--tw-shadow-colored:0 0 transparent!important;box-shadow:var(--tw-ring-offset-shadow,0 0 transparent),var(--tw-ring-shadow,0 0 transparent),var(--tw-shadow)!important}.shadow-md{--tw-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1);--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 transparent),var(--tw-ring-shadow,0 0 transparent),var(--tw-shadow)}.shadow-none{--tw-shadow:0 0 transparent;--tw-shadow-colored:0 0 transparent;box-shadow:var(--tw-ring-offset-shadow,0 0 transparent),var(--tw-ring-shadow,0 0 transparent),var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 2px 0 rgba(0,0,0,.05);--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 transparent),var(--tw-ring-shadow,0 0 transparent),var(--tw-shadow)}.shadow-xl{--tw-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 8px 10px -6px rgba(0,0,0,.1);--tw-shadow-colored:0 20px 25px -5px var(--tw-shadow-color),0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 transparent),var(--tw-ring-shadow,0 0 transparent),var(--tw-shadow)}.shadow-\[var\(--shadow-float\)\]{--tw-shadow-color:var(--shadow-float);--tw-shadow:var(--tw-shadow-colored)}.shadow-\[var\(--shadow-lg\)\]{--tw-shadow-color:var(--shadow-lg);--tw-shadow:var(--tw-shadow-colored)}.shadow-\[var\(--shadow-md\)\]{--tw-shadow-color:var(--shadow-md);--tw-shadow:var(--tw-shadow-colored)}.shadow-\[var\(--shadow-sm\)\]{--tw-shadow-color:var(--shadow-sm);--tw-shadow:var(--tw-shadow-colored)}.outline{outline-style:solid}.ring-0{--tw-ring-offset-shadow:var(--tw-ring-inset)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset)0 0 0 calc(0px + var(--tw-ring-offset-width))var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 transparent)}.blur{--tw-blur:blur(8px);filter:var(--tw-blur)var(--tw-brightness)var(--tw-contrast)var(--tw-grayscale)var(--tw-hue-rotate)var(--tw-invert)var(--tw-saturate)var(--tw-sepia)var(--tw-drop-shadow)}.filter{filter:var(--tw-blur)var(--tw-brightness)var(--tw-contrast)var(--tw-grayscale)var(--tw-hue-rotate)var(--tw-invert)var(--tw-saturate)var(--tw-sepia)var(--tw-drop-shadow)}.transition{transition-property:color,background-color,border-color,-webkit-text-decoration-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter,backdrop-filter;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-\[background-color\,opacity\]{transition-property:background-color,opacity;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-\[border-color\,background-color\]{transition-property:border-color,background-color;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-\[border-color\,box-shadow\,background-color\]{transition-property:border-color,box-shadow,background-color;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-\[border-color\,box-shadow\]{transition-property:border-color,box-shadow;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-\[color\,box-shadow\,border-color\,background-color\]{transition-property:color,box-shadow,border-color,background-color;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-\[color\,box-shadow\,border-color\]{transition-property:color,box-shadow,border-color;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-\[stroke-dashoffset\]{transition-property:stroke-dashoffset;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-\[width\]{transition-property:width;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-all{transition-property:all;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-colors{transition-property:color,background-color,border-color,-webkit-text-decoration-color,text-decoration-color,fill,stroke;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-none{transition-property:none}.transition-opacity{transition-property:opacity;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-shadow{transition-property:box-shadow;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-transform{transition-property:transform;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.duration-100{transition-duration:.1s}.duration-150{transition-duration:.15s}.duration-200{transition-duration:.2s}.duration-300{transition-duration:.3s}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}.will-change-transform{will-change:transform}[data-slot=dropdown-menu-positioner]{border-radius:var(--radius);box-shadow:var(--shadow-float);overflow:visible}.ds-soft-shadow{box-shadow:var(--shadow-sm)}.ds-soft-shadow:hover,.ds-soft-shadow:focus-within{box-shadow:var(--shadow-composer)}.calendar-root.rdp-root{--rdp-accent-color:var(--calendar-day-selected-bg);--rdp-accent-background-color:var(--calendar-day-hover-bg);--rdp-day-height:36px;--rdp-day-width:36px;--rdp-day_button-border-radius:6px;--rdp-day_button-height:36px;--rdp-day_button-width:36px;--rdp-day_button-border:1px solid transparent;--rdp-selected-border:1px solid transparent;--rdp-today-color:var(--calendar-day-today-text);--rdp-disabled-opacity:1;--rdp-outside-opacity:1;--rdp-nav_button-height:2rem;--rdp-nav_button-width:2rem}.calendar-root .rdp-selected .rdp-day_button{background-color:var(--calendar-day-selected-bg);color:var(--calendar-day-selected-text);border-color:transparent}.calendar-root .rdp-today:not(.rdp-selected) .rdp-day_button{color:var(--calendar-day-today-text);border-color:var(--calendar-day-today-border)}.calendar-root .rdp-disabled .rdp-day_button{background-color:var(--calendar-day-disabled-bg);color:var(--calendar-day-disabled-text);opacity:1}:root{--font-body:"-apple-system, BlinkMacSystemFont, \"Segoe UI\", Helvetica Neue, PingFang SC, Hiragino Sans GB, Microsoft YaHei UI, Microsoft YaHei, Arial, sans-serif";--font-sans:var(--font-body);--font-anthropic-sans:"Anthropic Sans",system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;--font-anthropic-serif:"Anthropic Serif",Georgia,"Arial Hebrew","Noto Sans Hebrew","Times New Roman",Times,"Hiragino Sans","Yu Gothic",Meiryo,"Noto Sans CJK JP","PingFang TC","Microsoft JhengHei","Noto Sans CJK TC","PingFang SC","Microsoft YaHei","Noto Sans CJK SC","Apple SD Gothic Neo","Malgun Gothic","Noto Sans CJK KR",serif;--font-anthropic-mono:"Anthropic Mono",ui-monospace,monospace;--font-open-dyslexic:"OpenDyslexic","Comic Sans MS",ui-serif,serif;--accent:#1db887}.outline-none{outline-offset:0;outline:none}p,h1,h2,h3,h4,h5,h6{margin:0;padding:0}ul,li{margin:0;padding:0;list-style:none}[data-slot=tabs-list][data-variant=line] [data-slot=tabs-trigger][data-state=active],[data-slot=tabs-list][data-variant=line] [data-slot=tabs-trigger][data-active]:not([data-active=false]),[data-slot=tabs-list][data-variant=line] [data-slot=tabs-trigger][aria-selected=true]{color:var(--ds-main,#1db887);border-bottom:2px solid var(--ds-main,#1db887)}.placeholder\:text-\[var\(--text-placeholder\)\]::placeholder{color:var(--text-placeholder)}.placeholder\:text-muted-foreground::placeholder{color:var(--muted-foreground)}.first\:pt-0:first-child{padding-top:0}.last\:border-0:last-child{border-width:0}.hover\:\!border-0:hover{border-width:0!important}.hover\:\!border-\[\#e5e5e5\]:hover{--tw-border-opacity:1!important;border-color:rgba(229,229,229,var(--tw-border-opacity,1))!important}.hover\:\!border-\[var\(--ds-accent\)\]:hover{border-color:var(--ds-accent)!important}.hover\:border-\[color\:var\(--ds-accent\)\]:hover{border-color:var(--ds-accent)}.hover\:border-\[color\:var\(--ds-border-hover\)\]:hover{border-color:var(--ds-border-hover)}.hover\:border-\[var\(--border-hover\)\]:hover{border-color:var(--border-hover)}.hover\:border-\[var\(--calendar-day-today-border\)\]:hover{border-color:var(--calendar-day-today-border)}.hover\:border-\[var\(--ds-accent-hover\)\]:hover{border-color:var(--ds-accent-hover)}.hover\:border-\[var\(--ds-border-hover\)\]:hover{border-color:var(--ds-border-hover)}.hover\:\!bg-\[var\(--ds-item-hover\)\]:hover{background-color:var(--ds-item-hover)!important}.hover\:\!bg-\[var\(--green-light\)\]:hover{background-color:var(--green-light)!important}.hover\:\!bg-transparent:hover{background-color:transparent!important}.hover\:bg-\[\#333\]:hover{--tw-bg-opacity:1;background-color:rgba(51,51,51,var(--tw-bg-opacity,1))}.hover\:bg-\[\#fff1f1\]:hover{--tw-bg-opacity:1;background-color:rgba(255,241,241,var(--tw-bg-opacity,1))}.hover\:bg-\[var\(--calendar-day-disabled-bg\)\]:hover{background-color:var(--calendar-day-disabled-bg)}.hover\:bg-\[var\(--calendar-day-hover-bg\)\]:hover{background-color:var(--calendar-day-hover-bg)}.hover\:bg-\[var\(--calendar-day-selected-bg\)\]:hover{background-color:var(--calendar-day-selected-bg)}.hover\:bg-\[var\(--ds-accent-hover\)\]:hover{background-color:var(--ds-accent-hover)}.hover\:bg-\[var\(--ds-item-active\)\]:hover{background-color:var(--ds-item-active)}.hover\:bg-\[var\(--ds-item-bg-hover\)\]:hover{background-color:var(--ds-item-bg-hover)}.hover\:bg-\[var\(--ds-item-hover\)\]:hover{background-color:var(--ds-item-hover)}.hover\:bg-\[var\(--ds-main-tint\)\]:hover{background-color:var(--ds-main-tint)}.hover\:bg-\[var\(--green-light\)\]:hover{background-color:var(--green-light)}.hover\:bg-\[var\(--surface-1\)\]:hover{background-color:var(--surface-1)}.hover\:bg-\[var\(--surface-2\)\]:hover{background-color:var(--surface-2)}.hover\:bg-\[var\(--surface-3\)\]:hover{background-color:var(--surface-3)}.hover\:bg-accent:hover{background-color:var(--accent)}.hover\:bg-muted:hover{background-color:var(--muted)}.hover\:bg-transparent:hover{background-color:transparent}.hover\:bg-white\/70:hover{background-color:rgba(255,255,255,.7)}.hover\:\!text-\[\#cfcfcf\]:hover{--tw-text-opacity:1!important;color:rgba(207,207,207,var(--tw-text-opacity,1))!important}.hover\:\!text-\[var\(--green-dark\)\]:hover{color:var(--green-dark)!important}.hover\:text-\[\#343d52\]:hover{--tw-text-opacity:1;color:rgba(52,61,82,var(--tw-text-opacity,1))}.hover\:text-\[color\:var\(--ds-accent\)\]:hover{color:var(--ds-accent)}.hover\:text-\[var\(--calendar-day-disabled-text\)\]:hover{color:var(--calendar-day-disabled-text)}.hover\:text-\[var\(--calendar-day-hover-text\)\]:hover{color:var(--calendar-day-hover-text)}.hover\:text-\[var\(--calendar-day-selected-text\)\]:hover{color:var(--calendar-day-selected-text)}.hover\:text-\[var\(--ds-accent\)\]:hover{color:var(--ds-accent)}.hover\:text-\[var\(--ds-accent-hover\)\]:hover{color:var(--ds-accent-hover)}.hover\:text-\[var\(--ds-text\)\]:hover{color:var(--ds-text)}.hover\:text-\[var\(--green-dark\)\]:hover{color:var(--green-dark)}.hover\:text-\[var\(--surface-1\)\]:hover{color:var(--surface-1)}.hover\:text-foreground:hover{color:var(--foreground)}.hover\:text-red-800:hover{--tw-text-opacity:1;color:rgba(153,27,27,var(--tw-text-opacity,1))}.hover\:text-zinc-600:hover{--tw-text-opacity:1;color:rgba(82,82,91,var(--tw-text-opacity,1))}.hover\:text-zinc-700:hover{--tw-text-opacity:1;color:rgba(63,63,70,var(--tw-text-opacity,1))}.hover\:text-zinc-900:hover{--tw-text-opacity:1;color:rgba(24,24,27,var(--tw-text-opacity,1))}.hover\:underline:hover{-webkit-text-decoration-line:underline;text-decoration-line:underline}.hover\:\!no-underline:hover{-webkit-text-decoration-line:none!important;text-decoration-line:none!important}.hover\:\!shadow-none:hover{--tw-shadow:0 0 transparent!important;--tw-shadow-colored:0 0 transparent!important;box-shadow:var(--tw-ring-offset-shadow,0 0 transparent),var(--tw-ring-shadow,0 0 transparent),var(--tw-shadow)!important}.hover\:shadow-\[0_2px_12px_rgba\(0\,0\,0\,0\.06\)\]:hover{--tw-shadow:0 2px 12px rgba(0,0,0,.06);--tw-shadow-colored:0 2px 12px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 transparent),var(--tw-ring-shadow,0 0 transparent),var(--tw-shadow)}.hover\:shadow-\[var\(--shadow-sm\)\]:hover{--tw-shadow-color:var(--shadow-sm);--tw-shadow:var(--tw-shadow-colored)}.focus\:\!border-0:focus{border-width:0!important}.focus\:bg-\[\#fff1f1\]:focus{--tw-bg-opacity:1;background-color:rgba(255,241,241,var(--tw-bg-opacity,1))}.focus\:bg-\[var\(--ds-item-hover\)\]:focus{background-color:var(--ds-item-hover)}.focus\:bg-\[var\(--surface-2\)\]:focus{background-color:var(--surface-2)}.focus\:bg-accent:focus{background-color:var(--accent)}.focus\:text-\[var\(--ds-text\)\]:focus{color:var(--ds-text)}.focus\:text-accent-foreground:focus{color:var(--accent-foreground)}.focus\:\!shadow-none:focus{--tw-shadow:0 0 transparent!important;--tw-shadow-colored:0 0 transparent!important;box-shadow:var(--tw-ring-offset-shadow,0 0 transparent),var(--tw-ring-shadow,0 0 transparent),var(--tw-shadow)!important}.focus\:\!outline-none:focus{outline-offset:2px!important;outline:2px solid transparent!important}.focus\:outline-none:focus{outline-offset:2px;outline:2px solid transparent}.focus-visible\:\!border-0:focus-visible{border-width:0!important}.focus-visible\:\!border-\[\#e5e5e5\]:focus-visible{--tw-border-opacity:1!important;border-color:rgba(229,229,229,var(--tw-border-opacity,1))!important}.focus-visible\:border-\[var\(--amber\)\]:focus-visible{border-color:var(--amber)}.focus-visible\:border-\[var\(--border-focus\)\]:focus-visible{border-color:var(--border-focus)}.focus-visible\:border-\[var\(--ds-accent\)\]:focus-visible{border-color:var(--ds-accent)}.focus-visible\:border-\[var\(--green-dark\)\]:focus-visible{border-color:var(--green-dark)}.focus-visible\:border-destructive:focus-visible{border-color:var(--destructive)}.focus-visible\:border-ring:focus-visible{border-color:var(--ring)}.focus-visible\:\!shadow-none:focus-visible{--tw-shadow:0 0 transparent!important;--tw-shadow-colored:0 0 transparent!important;box-shadow:var(--tw-ring-offset-shadow,0 0 transparent),var(--tw-ring-shadow,0 0 transparent),var(--tw-shadow)!important}.focus-visible\:\!outline-none:focus-visible{outline-offset:2px!important;outline:2px solid transparent!important}.focus-visible\:outline-none:focus-visible{outline-offset:2px;outline:2px solid transparent}.focus-visible\:ring-0:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset)0 0 0 calc(0px + var(--tw-ring-offset-width))var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 transparent)}.focus-visible\:ring-1:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset)0 0 0 calc(1px + var(--tw-ring-offset-width))var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 transparent)}.focus-visible\:ring-2:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 transparent)}.focus-visible\:ring-\[3px\]:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset)0 0 0 calc(3px + var(--tw-ring-offset-width))var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 transparent)}.focus-visible\:ring-\[color-mix\(in_srgb\,var\(--ds-accent\)_18\%\,transparent\)\]:focus-visible{--tw-ring-color:color-mix(in srgb,var(--ds-accent)18%,transparent)}.focus-visible\:ring-\[var\(--ds-accent\)\]:focus-visible{--tw-ring-color:var(--ds-accent)}.focus-visible\:ring-ring:focus-visible{--tw-ring-color:var(--ring)}.focus-visible\:ring-offset-2:focus-visible{--tw-ring-offset-width:2px}.focus-visible\:\[box-shadow\:0_0_0_2px_rgba\(220\,38\,38\,0\.18\)\]:focus-visible{box-shadow:0 0 0 2px rgba(220,38,38,.18)}.focus-visible\:\[box-shadow\:0_0_0_2px_rgba\(255\,181\,71\,0\.25\)\]:focus-visible{box-shadow:0 0 0 2px rgba(255,181,71,.25)}.focus-visible\:\!\[box-shadow\:none\]:focus-visible{box-shadow:none!important}.focus-visible\:\[box-shadow\:var\(--ring-focus-sm\)\]:focus-visible{box-shadow:var(--ring-focus-sm)}.read-only\:focus-visible\:border-border:focus-visible:-moz-read-only{border-color:var(--border)}.read-only\:focus-visible\:border-border:focus-visible:read-only{border-color:var(--border)}.read-only\:focus-visible\:\[box-shadow\:none\]:focus-visible:-moz-read-only{box-shadow:none}.read-only\:focus-visible\:\[box-shadow\:none\]:focus-visible:read-only{box-shadow:none}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:text-\[var\(--ds-muted\)\]:disabled{color:var(--ds-muted)}.disabled\:opacity-40:disabled{opacity:.4}.disabled\:opacity-50:disabled{opacity:.5}.disabled\:opacity-60:disabled{opacity:.6}.disabled\:hover\:border-\[var\(--ds-border\,var\(--input\)\)\]:hover:disabled{border-color:var(--ds-border,var(--input))}.disabled\:hover\:bg-transparent:hover:disabled{background-color:transparent}.disabled\:focus-visible\:border-\[var\(--ds-border\,var\(--input\)\)\]:focus-visible:disabled{border-color:var(--ds-border,var(--input))}.disabled\:focus-visible\:border-border:focus-visible:disabled{border-color:var(--border)}.disabled\:focus-visible\:\[box-shadow\:none\]:focus-visible:disabled{box-shadow:none}.group:focus-within .group-focus-within\:pointer-events-auto{pointer-events:auto}.group:focus-within .group-focus-within\:visible{visibility:visible}.group:focus-within .group-focus-within\:opacity-100{opacity:1}.group:hover .group-hover\:pointer-events-auto{pointer-events:auto}.group:hover .group-hover\:visible{visibility:visible}.group:hover .group-hover\:opacity-100{opacity:1}.group\/dropdown-menu-item:focus .group-focus\/dropdown-menu-item\:text-accent-foreground{color:var(--accent-foreground)}.peer:disabled~.peer-disabled\:cursor-not-allowed{cursor:not-allowed}.peer:disabled~.peer-disabled\:opacity-70{opacity:.7}.has-\[\:disabled\]\:cursor-not-allowed:has(:disabled){cursor:not-allowed}.has-\[\:focus-visible\]\:border-\[var\(--border-focus\)\]:has(:focus-visible){border-color:var(--border-focus)}.has-\[\:disabled\]\:opacity-50:has(:disabled){opacity:.5}.has-\[\:focus-visible\]\:\[box-shadow\:var\(--ring-focus-sm\)\]:has(:focus-visible){box-shadow:var(--ring-focus-sm)}.group\/table-row:has(td:hover) .group-has-\[td\:hover\]\/table-row\:\!bg-\[var\(--ds-item-hover\)\]{background-color:var(--ds-item-hover)!important}.aria-expanded\:border-\[var\(--ds-accent-hover\)\][aria-expanded=true]{border-color:var(--ds-accent-hover)}.aria-expanded\:bg-\[var\(--surface-1\)\][aria-expanded=true]{background-color:var(--surface-1)}.aria-expanded\:bg-muted[aria-expanded=true]{background-color:var(--muted)}.aria-expanded\:bg-secondary[aria-expanded=true]{background-color:var(--secondary)}.aria-expanded\:text-\[var\(--ds-accent-hover\)\][aria-expanded=true]{color:var(--ds-accent-hover)}.aria-expanded\:text-foreground[aria-expanded=true]{color:var(--foreground)}.aria-expanded\:text-secondary-foreground[aria-expanded=true]{color:var(--secondary-foreground)}.data-\[disabled\]\:pointer-events-none[data-disabled]{pointer-events:none}.data-\[size\=default\]\:size-4[data-size=default]{width:1rem;height:1rem}.data-\[size\=sm\]\:size-3\.5[data-size=sm]{width:.875rem;height:.875rem}.data-\[size\=default\]\:h-9[data-size=default]{height:2.25rem}.data-\[size\=lg\]\:h-10[data-size=lg]{height:2.5rem}.data-\[size\=lg\]\:h-\[42px\][data-size=lg]{height:42px}.data-\[size\=sm\]\:h-7[data-size=sm]{height:1.75rem}.data-\[checked\]\:translate-x-4[data-checked]{--tw-translate-x:1rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y))rotate(var(--tw-rotate))skewX(var(--tw-skew-x))skewY(var(--tw-skew-y))scaleX(var(--tw-scale-x))scaleY(var(--tw-scale-y))}.data-\[unchecked\]\:translate-x-0\.5[data-unchecked]{--tw-translate-x:.125rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y))rotate(var(--tw-rotate))skewX(var(--tw-skew-x))skewY(var(--tw-skew-y))scaleX(var(--tw-scale-x))scaleY(var(--tw-scale-y))}.data-\[checked\]\:border-\[var\(--ds-accent\)\][data-checked]{border-color:var(--ds-accent)}.data-\[popup-open\]\:border-\[var\(--border-focus\)\][data-popup-open],.data-\[state\=open\]\:border-\[var\(--border-focus\)\][data-state=open]{border-color:var(--border-focus)}.data-\[checked\]\:bg-\[var\(--ds-accent\)\][data-checked]{background-color:var(--ds-accent)}.data-\[checked\]\:bg-primary[data-checked]{background-color:var(--primary)}.data-\[checked\]\:bg-primary-foreground[data-checked]{background-color:var(--primary-foreground)}.data-\[checked\]\:bg-white[data-checked]{--tw-bg-opacity:1;background-color:rgba(255,255,255,var(--tw-bg-opacity,1))}.data-\[state\=checked\]\:bg-\[var\(--ds-item-active\)\][data-state=checked]{background-color:var(--ds-item-active)}.data-\[active\]\:font-medium[data-active]{font-weight:500}.data-\[active\]\:text-\[var\(--ds-accent\)\][data-active]{color:var(--ds-accent)}.data-\[variant\=destructive\]\:text-destructive[data-variant=destructive]{color:var(--destructive)}.data-\[disabled\]\:opacity-50[data-disabled]{opacity:.5}.data-\[popup-open\]\:\[box-shadow\:var\(--ring-focus-sm\)\][data-popup-open],.data-\[state\=open\]\:\[box-shadow\:var\(--ring-focus-sm\)\][data-state=open]{box-shadow:var(--ring-focus-sm)}.data-\[active\]\:after\:absolute[data-active]:after{content:var(--tw-content);position:absolute}.data-\[active\]\:after\:bottom-\[-1px\][data-active]:after{content:var(--tw-content);bottom:-1px}.data-\[active\]\:after\:left-0[data-active]:after{content:var(--tw-content);left:0}.data-\[active\]\:after\:right-0[data-active]:after{content:var(--tw-content);right:0}.data-\[active\]\:after\:h-\[2px\][data-active]:after{content:var(--tw-content);height:2px}.data-\[active\]\:after\:bg-\[var\(--ds-accent\)\][data-active]:after{content:var(--tw-content);background-color:var(--ds-accent)}.data-\[active\]\:after\:content-\[\"\"\][data-active]:after{--tw-content:"";content:var(--tw-content)}.data-\[variant\=destructive\]\:focus\:text-destructive:focus[data-variant=destructive]{color:var(--destructive)}.group\/tabs-list[data-variant=pill] .group-data-\[variant\=pill\]\/tabs-list\:mb-0{margin-bottom:0}.group\/tabs-list[data-variant=pill] .group-data-\[variant\=pill\]\/tabs-list\:mr-0{margin-right:0}.group\/tabs-list[data-variant=default] .group-data-\[variant\=default\]\/tabs-list\:h-8{height:2rem}.group\/tabs-list[data-variant=pill] .group-data-\[variant\=pill\]\/tabs-list\:h-9{height:2.25rem}.group\/tabs-list[data-variant=pill] .group-data-\[variant\=pill\]\/tabs-list\:rounded-full{border-radius:9999px}.group\/tabs-list[data-variant=pill] .group-data-\[variant\=pill\]\/tabs-list\:px-5{padding-left:1.25rem;padding-right:1.25rem}.group\/tabs-list[data-variant=pill] .group-data-\[variant\=pill\]\/tabs-list\:pb-0{padding-bottom:0}.group\/tabs-list[data-variant=pill] .group-data-\[variant\=pill\]\/tabs-list\:font-semibold{font-weight:600}.group\/tabs-list[data-variant=pill] .group-data-\[variant\=pill\]\/tabs-list\:text-\[\#828282\]{--tw-text-opacity:1;color:rgba(130,130,130,var(--tw-text-opacity,1))}.group\/tabs-list[data-variant=pill] .group-data-\[variant\=pill\]\/tabs-list\:data-\[active\]\:bg-\[\#fff\][data-active]{--tw-bg-opacity:1;background-color:rgba(255,255,255,var(--tw-bg-opacity,1))}.group\/tabs-list[data-variant=pill] .group-data-\[variant\=pill\]\/tabs-list\:data-\[active\]\:font-bold[data-active]{font-weight:700}.group\/tabs-list[data-variant=pill] .group-data-\[variant\=pill\]\/tabs-list\:data-\[active\]\:text-\[\#333333\][data-active]{--tw-text-opacity:1;color:rgba(51,51,51,var(--tw-text-opacity,1))}.group\/tabs-list[data-variant=pill] .group-data-\[variant\=pill\]\/tabs-list\:data-\[active\]\:shadow-\[0_2px_10px_rgba\(15\,23\,42\,0\.08\)\][data-active]{--tw-shadow:0 2px 10px rgba(15,23,42,.08);--tw-shadow-colored:0 2px 10px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 transparent),var(--tw-ring-shadow,0 0 transparent),var(--tw-shadow)}.group\/tabs-list[data-variant=pill] .group-data-\[variant\=pill\]\/tabs-list\:data-\[active\]\:after\:\[content\:none\][data-active]:after{content:none}@media (min-width:640px){.sm\:col-span-2{grid-column:span 2/span 2}.sm\:inline{display:inline}.sm\:w-\[220px\]{width:220px}.sm\:shrink-0{flex-shrink:0}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}.sm\:items-start{align-items:flex-start}.sm\:pl-2\.5{padding-left:.625rem}.sm\:pr-2\.5{padding-right:.625rem}}@media (min-width:768px){.md\:w-\[300px\]{width:300px}.md\:flex-row{flex-direction:row}.md\:border-b-0{border-bottom-width:0}.md\:border-r{border-right-width:1px}}@media (min-width:1024px){.lg\:flex-row{flex-direction:row}.lg\:flex-nowrap{flex-wrap:nowrap}.lg\:items-start{align-items:flex-start}.lg\:justify-between{justify-content:space-between}}@media (prefers-color-scheme:dark){.dark\:border-input{border-color:var(--input)}}.\[\&\>svg\]\:pointer-events-none>svg{pointer-events:none}.\[\&\>svg\]\:size-3>svg{width:.75rem;height:.75rem}.\[\&\>td\]\:transition-colors>td{transition-property:color,background-color,border-color,-webkit-text-decoration-color,text-decoration-color,fill,stroke;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.data-\[state\=selected\]\:\[\&\>td\]\:\!bg-\[var\(--ds-item-active\)\]>td[data-state=selected]{background-color:var(--ds-item-active)!important}.\[\&_\[data-slot\=tooltip\]\]\:flex [data-slot=tooltip]{display:flex}.\[\&_\[data-slot\=tooltip\]\]\:w-full [data-slot=tooltip]{width:100%}.\[\&_\[data-slot\=tooltip\]\]\:min-w-0 [data-slot=tooltip]{min-width:0}.\[\&_\[data-slot\=tooltip\]\]\:max-w-full [data-slot=tooltip]{max-width:100%}.\[\&_path\]\:\!fill-none path{fill:none!important}.\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-4 svg:not([class*=size-]){width:1rem;height:1rem}.\[\&_svg\:not\(\[fill\=none\]\)_path\]\:fill-current svg:not([fill=none]) path{fill:currentColor}.\[\&_svg\[fill\=none\]_path\]\:fill-none svg[fill=none] path{fill:none}.\[\&_svg\]\:pointer-events-none svg{pointer-events:none}.\[\&_svg\]\:size-5 svg{width:1.25rem;height:1.25rem}.\[\&_svg\]\:shrink-0 svg{flex-shrink:0}.\[\&_svg\]\:stroke-current svg{stroke:currentColor}.\[\&_svg\]\:align-middle svg{vertical-align:middle}.\[\&_svg\]\:\!text-red-600 svg{--tw-text-opacity:1!important;color:rgba(220,38,38,var(--tw-text-opacity,1))!important}.hover\:\[\&_svg\]\:\!text-red-800 svg:hover{--tw-text-opacity:1!important;color:rgba(153,27,27,var(--tw-text-opacity,1))!important}.\[\&_svg_path\]\:\!fill-current svg path{fill:currentColor!important}.\[\&_tr\:last-child\]\:border-b-0 tr:last-child,.\[\&_tr\:last-child_td\]\:border-b-0 tr:last-child td{border-bottom-width:0}.\[\&_tr\]\:table tr{display:table}.\[\&_tr\]\:w-full tr{width:100%}.\[\&_tr\]\:table-fixed tr{table-layout:fixed}.\[\&_tr\]\:border-b tr{border-bottom-width:1px}
|