@auto-ai/agent 2.1.90 → 2.1.92

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.
Files changed (105) hide show
  1. package/dist/404/index.html +1 -1
  2. package/dist/404.html +1 -1
  3. package/dist/_next/static/{v7b7kpIIWrJ_TrI3XvYpK → IV9dkeTt0V-ZE8jl01i6B}/_buildManifest.js +1 -1
  4. package/dist/_next/static/IV9dkeTt0V-ZE8jl01i6B/_ssgManifest.js +1 -0
  5. package/dist/_next/static/chunks/091dc4a67d911a93.js +1 -0
  6. package/dist/_next/static/chunks/0b5fd45c6d5ed376.js +1 -0
  7. package/dist/_next/static/chunks/0c059f531456fce2.js +1 -0
  8. package/dist/_next/static/chunks/15734e910215c5c7.js +1 -0
  9. package/dist/_next/static/chunks/1f4af280db551c9d.js +1 -0
  10. package/dist/_next/static/chunks/2b6b9fdaaa345603.js +1 -0
  11. package/dist/_next/static/chunks/34b34d02b7d6b4cb.js +1 -0
  12. package/dist/_next/static/chunks/3740042834e8f1fa.js +1 -0
  13. package/dist/_next/static/chunks/3a17a1f5303a1c2c.js +1 -0
  14. package/dist/_next/static/chunks/40268f8e3ff0314e.js +1 -0
  15. package/dist/_next/static/chunks/4247f46093e522c6.js +1 -0
  16. package/dist/_next/static/chunks/4456351ffa1be45f.js +1 -0
  17. package/dist/_next/static/chunks/{2fa3e4168e941aef.js → 52e2164e45febae6.js} +1 -1
  18. package/dist/_next/static/chunks/620e3011cd69dfc9.js +1 -0
  19. package/dist/_next/static/chunks/67c7406790a840c1.js +1 -0
  20. package/dist/_next/static/chunks/6831f547a9403a0f.js +1 -0
  21. package/dist/_next/static/chunks/763710bf823861a8.js +1 -0
  22. package/dist/_next/static/chunks/76a71d344cc15a9f.js +1 -0
  23. package/dist/_next/static/chunks/7988d5ea63356e10.js +1 -0
  24. package/dist/_next/static/chunks/8c0da143ceae2767.js +1 -0
  25. package/dist/_next/static/chunks/8d0a29ce5f05a73d.js +1 -0
  26. package/dist/_next/static/chunks/{e99db8276524ccf5.js → 8dc694eabda7878d.js} +1 -1
  27. package/dist/_next/static/chunks/91adb7bdb9870c6a.js +1 -0
  28. package/dist/_next/static/chunks/ad4ba491cf12423f.js +5 -0
  29. package/dist/_next/static/chunks/c889d3f6eb8ab09e.css +1 -0
  30. package/dist/_next/static/chunks/ce0cac88dd992956.css +4 -0
  31. package/dist/_next/static/chunks/d9726d84bd7d40ff.js +1 -0
  32. package/dist/_next/static/chunks/e4675b3a8b7605e4.js +1 -0
  33. package/dist/_next/static/chunks/ebcd85ff4a1db0dc.js +5 -0
  34. package/dist/_next/static/chunks/{turbopack-8a0e770cd106af0c.js → turbopack-030a42d60560a927.js} +1 -1
  35. package/dist/_next/static/chunks/{turbopack-cd5b40c9e0ee1fe0.js → turbopack-3d84668fefd38b4b.js} +1 -1
  36. package/dist/_next/static/chunks/{turbopack-25a49bf58581b314.js → turbopack-8b41433c9a94981f.js} +1 -1
  37. package/dist/agent-office/accents.js +28 -0
  38. package/dist/agent-office/api.js +142 -0
  39. package/dist/agent-office/list.js +79 -0
  40. package/dist/agent-office/main.js +38 -0
  41. package/dist/agent-office/officeController.js +13 -0
  42. package/dist/agent-office/ui.js +264 -0
  43. package/dist/agent-office.html +307 -0
  44. package/dist/index.html +1 -1
  45. package/dist/index.txt +29 -19
  46. package/dist/manage/about/index.html +2 -0
  47. package/dist/manage/about/index.txt +37 -0
  48. package/dist/manage/add-account/basic/index.html +2 -0
  49. package/dist/manage/add-account/basic/index.txt +39 -0
  50. package/dist/manage/add-account/index.html +2 -1
  51. package/dist/manage/add-account/index.txt +34 -27
  52. package/dist/manage/add-account/prompt/index.html +2 -0
  53. package/dist/manage/add-account/prompt/index.txt +40 -0
  54. package/dist/manage/agent-teams/index.html +2 -2
  55. package/dist/manage/agent-teams/index.txt +34 -26
  56. package/dist/manage/env/index.html +2 -2
  57. package/dist/manage/env/index.txt +34 -26
  58. package/dist/manage/general/index.html +2 -0
  59. package/dist/manage/general/index.txt +37 -0
  60. package/dist/manage/index.html +1 -0
  61. package/dist/manage/index.txt +33 -0
  62. package/dist/manage/mcp/index.html +2 -2
  63. package/dist/manage/mcp/index.txt +34 -26
  64. package/dist/manage/permissions/index.html +2 -0
  65. package/dist/manage/permissions/index.txt +37 -0
  66. package/dist/manage/skills/index.html +2 -2
  67. package/dist/manage/skills/index.txt +34 -26
  68. package/dist/manage/task/index.html +1 -0
  69. package/dist/manage/task/index.txt +38 -0
  70. package/dist/manage/teams/index.html +1 -0
  71. package/dist/manage/teams/index.txt +37 -0
  72. package/dist/manage/tools/index.html +2 -2
  73. package/dist/manage/tools/index.txt +34 -26
  74. package/dist/ws-test.html +1151 -30
  75. package/package.json +6 -6
  76. package/dist/_next/static/chunks/01037955b0804f69.js +0 -1
  77. package/dist/_next/static/chunks/071c2b2eece424b8.js +0 -1
  78. package/dist/_next/static/chunks/19d949d5c8e7fc66.js +0 -1
  79. package/dist/_next/static/chunks/39dac725d46ff2cf.js +0 -5
  80. package/dist/_next/static/chunks/3a00f465f3afdd13.js +0 -1
  81. package/dist/_next/static/chunks/43c3e97de0c89c14.js +0 -1
  82. package/dist/_next/static/chunks/479bb32e1848b26b.js +0 -1
  83. package/dist/_next/static/chunks/573efa1cd3d0872c.js +0 -1
  84. package/dist/_next/static/chunks/6a8dfef8eb153262.js +0 -1
  85. package/dist/_next/static/chunks/6ea69f45a19b4f00.js +0 -1
  86. package/dist/_next/static/chunks/75622a4fe3b7b015.js +0 -1
  87. package/dist/_next/static/chunks/80a811d77e9d2ba6.js +0 -1
  88. package/dist/_next/static/chunks/8508beba62ed11df.js +0 -1
  89. package/dist/_next/static/chunks/8915ded29d610342.js +0 -1
  90. package/dist/_next/static/chunks/93e645e175860ad2.js +0 -1
  91. package/dist/_next/static/chunks/9597a4f1aa937100.js +0 -1
  92. package/dist/_next/static/chunks/9923762f97969b52.css +0 -4
  93. package/dist/_next/static/chunks/9c9c063cb0b2e562.js +0 -1
  94. package/dist/_next/static/chunks/a32559d6604a11fb.js +0 -5
  95. package/dist/_next/static/chunks/a6c743f3d7975ca2.css +0 -1
  96. package/dist/_next/static/chunks/ab6655809333a412.js +0 -1
  97. package/dist/_next/static/chunks/acb68dccafc14ac1.js +0 -1
  98. package/dist/_next/static/chunks/b1e8db918a2dcc7c.js +0 -1
  99. package/dist/_next/static/chunks/ca3c520aa0575c69.js +0 -1
  100. package/dist/_next/static/chunks/cdd193032944dfed.js +0 -1
  101. package/dist/_next/static/chunks/d9cb9883957b864c.js +0 -1
  102. package/dist/_next/static/v7b7kpIIWrJ_TrI3XvYpK/_ssgManifest.js +0 -1
  103. package/dist/manage/agent/index.html +0 -2
  104. package/dist/manage/agent/index.txt +0 -32
  105. /package/dist/_next/static/{v7b7kpIIWrJ_TrI3XvYpK → IV9dkeTt0V-ZE8jl01i6B}/_clientMiddlewareManifest.json +0 -0
@@ -1,3 +1,3 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,{otherChunks:["static/chunks/17722e3ac4e00587.js","static/chunks/2fa3e4168e941aef.js"],runtimeModuleIds:[10783,14550]}]),(()=>{let e;if(!Array.isArray(globalThis.TURBOPACK))return;let t="/app/_next/",r=new WeakMap;function n(e,t){this.m=e,this.e=t}let o=n.prototype,i=Object.prototype.hasOwnProperty,l="undefined"!=typeof Symbol&&Symbol.toStringTag;function s(e,t,r){i.call(e,t)||Object.defineProperty(e,t,r)}function u(e,t){let r=e[t];return r||(r=a(t),e[t]=r),r}function a(e){return{exports:{},error:void 0,id:e,namespaceObject:void 0}}function c(e,t){s(e,"__esModule",{value:!0}),l&&s(e,l,{value:"Module"});let r=0;for(;r<t.length;){let n=t[r++],o=t[r++];"function"==typeof t[r]?s(e,n,{get:o,set:t[r++],enumerable:!0}):s(e,n,{get:o,enumerable:!0})}Object.seal(e)}o.s=function(e,t){let r,n;null!=t?n=(r=u(this.c,t)).exports:(r=this.m,n=this.e),r.namespaceObject=n,c(n,e)},o.j=function(e,t){var n,o;let l,s,a;null!=t?s=(l=u(this.c,t)).exports:(l=this.m,s=this.e);let c=(n=l,o=s,(a=r.get(n))||(r.set(n,a=[]),n.exports=n.namespaceObject=new Proxy(o,{get(e,t){if(i.call(e,t)||"default"===t||"__esModule"===t)return Reflect.get(e,t);for(let e of a){let r=Reflect.get(e,t);if(void 0!==r)return r}},ownKeys(e){let t=Reflect.ownKeys(e);for(let e of a)for(let r of Reflect.ownKeys(e))"default"===r||t.includes(r)||t.push(r);return t}})),a);"object"==typeof e&&null!==e&&c.push(e)},o.v=function(e,t){(null!=t?u(this.c,t):this.m).exports=e},o.n=function(e,t){let r;(r=null!=t?u(this.c,t):this.m).exports=r.namespaceObject=e};let f=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,p=[null,f({}),f([]),f(f)];function h(e,t,r){let n=[],o=-1;for(let t=e;("object"==typeof t||"function"==typeof t)&&!p.includes(t);t=f(t))for(let r of Object.getOwnPropertyNames(t))n.push(r,function(e,t){return()=>e[t]}(e,r)),-1===o&&"default"===r&&(o=n.length-1);return r&&o>=0||(o>=0?n[o]=()=>e:n.push("default",()=>e)),c(t,n),t}function d(){let e,t;return{promise:new Promise((r,n)=>{t=n,e=r}),resolve:e,reject:t}}o.i=function(e){let t=M(e,this.m);if(t.namespaceObject)return t.namespaceObject;let r=t.exports;return t.namespaceObject=h(r,"function"==typeof r?function(...e){return r.apply(this,e)}:Object.create(null),r&&r.__esModule)},o.A=function(e){return this.r(e)(this.i.bind(this))},o.t="function"==typeof require?require:function(){throw Error("Unexpected use of runtime require")},o.r=function(e){return M(e,this.m).exports},o.f=function(e){function t(t){if(i.call(e,t))return e[t].module();let r=Error(`Cannot find module '${t}'`);throw r.code="MODULE_NOT_FOUND",r}return t.keys=()=>Object.keys(e),t.resolve=t=>{if(i.call(e,t))return e[t].id();let r=Error(`Cannot find module '${t}'`);throw r.code="MODULE_NOT_FOUND",r},t.import=async e=>await t(e),t};let m=Symbol("turbopack queues"),b=Symbol("turbopack exports"),y=Symbol("turbopack error");function O(e){e&&1!==e.status&&(e.status=1,e.forEach(e=>e.queueCount--),e.forEach(e=>e.queueCount--?e.queueCount++:e()))}o.a=function(e,t){let r=this.m,n=t?Object.assign([],{status:-1}):void 0,o=new Set,{resolve:i,reject:l,promise:s}=d(),u=Object.assign(s,{[b]:r.exports,[m]:e=>{n&&e(n),o.forEach(e),u.catch(()=>{})}}),a={get:()=>u,set(e){e!==u&&(u[b]=e)}};Object.defineProperty(r,"exports",a),Object.defineProperty(r,"namespaceObject",a),e(function(e){let t=e.map(e=>{if(null!==e&&"object"==typeof e){if(m in e)return e;if(null!=e&&"object"==typeof e&&"then"in e&&"function"==typeof e.then){let t=Object.assign([],{status:0}),r={[b]:{},[m]:e=>e(t)};return e.then(e=>{r[b]=e,O(t)},e=>{r[y]=e,O(t)}),r}}return{[b]:e,[m]:()=>{}}}),r=()=>t.map(e=>{if(e[y])throw e[y];return e[b]}),{promise:i,resolve:l}=d(),s=Object.assign(()=>l(r),{queueCount:0});function u(e){e!==n&&!o.has(e)&&(o.add(e),e&&0===e.status&&(s.queueCount++,e.push(s)))}return t.map(e=>e[m](u)),s.queueCount?i:r()},function(e){e?l(u[y]=e):i(u[b]),O(n)}),n&&-1===n.status&&(n.status=0)};let g=function(e){let t=new URL(e,"x:/"),r={};for(let e in t)r[e]=t[e];for(let t in r.href=e,r.pathname=e.replace(/[?#].*/,""),r.origin=r.protocol="",r.toString=r.toJSON=(...t)=>e,r)Object.defineProperty(this,t,{enumerable:!0,configurable:!0,value:r[t]})};function w(e,t){throw Error(`Invariant: ${t(e)}`)}g.prototype=URL.prototype,o.U=g,o.z=function(e){throw Error("dynamic usage of require is not supported")},o.g=globalThis;let R=n.prototype;var j=function(e){return e[e.Runtime=0]="Runtime",e[e.Parent=1]="Parent",e[e.Update=2]="Update",e}(j||{});let C=new Map;o.M=C;let _=new Map,U=new Map;async function k(e,t,r){let n;if("string"==typeof r)return $(e,t,T(r));let o=r.included||[],i=o.map(e=>!!C.has(e)||_.get(e));if(i.length>0&&i.every(e=>e))return void await Promise.all(i);let l=r.moduleChunks||[],s=l.map(e=>U.get(e)).filter(e=>e);if(s.length>0){if(s.length===l.length)return void await Promise.all(s);let r=new Set;for(let e of l)U.has(e)||r.add(e);for(let n of r){let r=$(e,t,T(n));U.set(n,r),s.push(r)}n=Promise.all(s)}else{for(let o of(n=$(e,t,T(r.path)),l))U.has(o)||U.set(o,n)}for(let e of o)_.has(e)||_.set(e,n);await n}R.l=function(e){return k(1,this.m.id,e)};let v=Promise.resolve(void 0),P=new WeakMap;function $(t,r,n){let o=e.loadChunkCached(t,n),i=P.get(o);if(void 0===i){let e=P.set.bind(P,o,v);i=o.then(e).catch(e=>{let o;switch(t){case 0:o=`as a runtime dependency of chunk ${r}`;break;case 1:o=`from module ${r}`;break;case 2:o="from an HMR update";break;default:w(t,e=>`Unknown source type: ${e}`)}throw Error(`Failed to load chunk ${n} ${o}${e?`: ${e}`:""}`,e?{cause:e}:void 0)}),P.set(o,i)}return i}function T(e){return`${t}${e.split("/").map(e=>encodeURIComponent(e)).join("/")}`}R.L=function(e){return $(1,this.m.id,e)},R.R=function(e){let t=this.r(e);return t?.default??t},R.P=function(e){return`/ROOT/${e??""}`},R.b=function(e){let t=new Blob([`self.TURBOPACK_WORKER_LOCATION = ${JSON.stringify(location.origin)};
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,{otherChunks:["static/chunks/17722e3ac4e00587.js","static/chunks/52e2164e45febae6.js"],runtimeModuleIds:[10783,14550]}]),(()=>{let e;if(!Array.isArray(globalThis.TURBOPACK))return;let t="/app/_next/",r=new WeakMap;function n(e,t){this.m=e,this.e=t}let o=n.prototype,i=Object.prototype.hasOwnProperty,l="undefined"!=typeof Symbol&&Symbol.toStringTag;function s(e,t,r){i.call(e,t)||Object.defineProperty(e,t,r)}function u(e,t){let r=e[t];return r||(r=a(t),e[t]=r),r}function a(e){return{exports:{},error:void 0,id:e,namespaceObject:void 0}}function c(e,t){s(e,"__esModule",{value:!0}),l&&s(e,l,{value:"Module"});let r=0;for(;r<t.length;){let n=t[r++],o=t[r++];"function"==typeof t[r]?s(e,n,{get:o,set:t[r++],enumerable:!0}):s(e,n,{get:o,enumerable:!0})}Object.seal(e)}o.s=function(e,t){let r,n;null!=t?n=(r=u(this.c,t)).exports:(r=this.m,n=this.e),r.namespaceObject=n,c(n,e)},o.j=function(e,t){var n,o;let l,s,a;null!=t?s=(l=u(this.c,t)).exports:(l=this.m,s=this.e);let c=(n=l,o=s,(a=r.get(n))||(r.set(n,a=[]),n.exports=n.namespaceObject=new Proxy(o,{get(e,t){if(i.call(e,t)||"default"===t||"__esModule"===t)return Reflect.get(e,t);for(let e of a){let r=Reflect.get(e,t);if(void 0!==r)return r}},ownKeys(e){let t=Reflect.ownKeys(e);for(let e of a)for(let r of Reflect.ownKeys(e))"default"===r||t.includes(r)||t.push(r);return t}})),a);"object"==typeof e&&null!==e&&c.push(e)},o.v=function(e,t){(null!=t?u(this.c,t):this.m).exports=e},o.n=function(e,t){let r;(r=null!=t?u(this.c,t):this.m).exports=r.namespaceObject=e};let f=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,p=[null,f({}),f([]),f(f)];function h(e,t,r){let n=[],o=-1;for(let t=e;("object"==typeof t||"function"==typeof t)&&!p.includes(t);t=f(t))for(let r of Object.getOwnPropertyNames(t))n.push(r,function(e,t){return()=>e[t]}(e,r)),-1===o&&"default"===r&&(o=n.length-1);return r&&o>=0||(o>=0?n[o]=()=>e:n.push("default",()=>e)),c(t,n),t}function d(){let e,t;return{promise:new Promise((r,n)=>{t=n,e=r}),resolve:e,reject:t}}o.i=function(e){let t=M(e,this.m);if(t.namespaceObject)return t.namespaceObject;let r=t.exports;return t.namespaceObject=h(r,"function"==typeof r?function(...e){return r.apply(this,e)}:Object.create(null),r&&r.__esModule)},o.A=function(e){return this.r(e)(this.i.bind(this))},o.t="function"==typeof require?require:function(){throw Error("Unexpected use of runtime require")},o.r=function(e){return M(e,this.m).exports},o.f=function(e){function t(t){if(i.call(e,t))return e[t].module();let r=Error(`Cannot find module '${t}'`);throw r.code="MODULE_NOT_FOUND",r}return t.keys=()=>Object.keys(e),t.resolve=t=>{if(i.call(e,t))return e[t].id();let r=Error(`Cannot find module '${t}'`);throw r.code="MODULE_NOT_FOUND",r},t.import=async e=>await t(e),t};let m=Symbol("turbopack queues"),b=Symbol("turbopack exports"),y=Symbol("turbopack error");function O(e){e&&1!==e.status&&(e.status=1,e.forEach(e=>e.queueCount--),e.forEach(e=>e.queueCount--?e.queueCount++:e()))}o.a=function(e,t){let r=this.m,n=t?Object.assign([],{status:-1}):void 0,o=new Set,{resolve:i,reject:l,promise:s}=d(),u=Object.assign(s,{[b]:r.exports,[m]:e=>{n&&e(n),o.forEach(e),u.catch(()=>{})}}),a={get:()=>u,set(e){e!==u&&(u[b]=e)}};Object.defineProperty(r,"exports",a),Object.defineProperty(r,"namespaceObject",a),e(function(e){let t=e.map(e=>{if(null!==e&&"object"==typeof e){if(m in e)return e;if(null!=e&&"object"==typeof e&&"then"in e&&"function"==typeof e.then){let t=Object.assign([],{status:0}),r={[b]:{},[m]:e=>e(t)};return e.then(e=>{r[b]=e,O(t)},e=>{r[y]=e,O(t)}),r}}return{[b]:e,[m]:()=>{}}}),r=()=>t.map(e=>{if(e[y])throw e[y];return e[b]}),{promise:i,resolve:l}=d(),s=Object.assign(()=>l(r),{queueCount:0});function u(e){e!==n&&!o.has(e)&&(o.add(e),e&&0===e.status&&(s.queueCount++,e.push(s)))}return t.map(e=>e[m](u)),s.queueCount?i:r()},function(e){e?l(u[y]=e):i(u[b]),O(n)}),n&&-1===n.status&&(n.status=0)};let g=function(e){let t=new URL(e,"x:/"),r={};for(let e in t)r[e]=t[e];for(let t in r.href=e,r.pathname=e.replace(/[?#].*/,""),r.origin=r.protocol="",r.toString=r.toJSON=(...t)=>e,r)Object.defineProperty(this,t,{enumerable:!0,configurable:!0,value:r[t]})};function w(e,t){throw Error(`Invariant: ${t(e)}`)}g.prototype=URL.prototype,o.U=g,o.z=function(e){throw Error("dynamic usage of require is not supported")},o.g=globalThis;let R=n.prototype;var j=function(e){return e[e.Runtime=0]="Runtime",e[e.Parent=1]="Parent",e[e.Update=2]="Update",e}(j||{});let C=new Map;o.M=C;let _=new Map,U=new Map;async function k(e,t,r){let n;if("string"==typeof r)return $(e,t,T(r));let o=r.included||[],i=o.map(e=>!!C.has(e)||_.get(e));if(i.length>0&&i.every(e=>e))return void await Promise.all(i);let l=r.moduleChunks||[],s=l.map(e=>U.get(e)).filter(e=>e);if(s.length>0){if(s.length===l.length)return void await Promise.all(s);let r=new Set;for(let e of l)U.has(e)||r.add(e);for(let n of r){let r=$(e,t,T(n));U.set(n,r),s.push(r)}n=Promise.all(s)}else{for(let o of(n=$(e,t,T(r.path)),l))U.has(o)||U.set(o,n)}for(let e of o)_.has(e)||_.set(e,n);await n}R.l=function(e){return k(1,this.m.id,e)};let v=Promise.resolve(void 0),P=new WeakMap;function $(t,r,n){let o=e.loadChunkCached(t,n),i=P.get(o);if(void 0===i){let e=P.set.bind(P,o,v);i=o.then(e).catch(e=>{let o;switch(t){case 0:o=`as a runtime dependency of chunk ${r}`;break;case 1:o=`from module ${r}`;break;case 2:o="from an HMR update";break;default:w(t,e=>`Unknown source type: ${e}`)}throw Error(`Failed to load chunk ${n} ${o}${e?`: ${e}`:""}`,e?{cause:e}:void 0)}),P.set(o,i)}return i}function T(e){return`${t}${e.split("/").map(e=>encodeURIComponent(e)).join("/")}`}R.L=function(e){return $(1,this.m.id,e)},R.R=function(e){let t=this.r(e);return t?.default??t},R.P=function(e){return`/ROOT/${e??""}`},R.b=function(e){let t=new Blob([`self.TURBOPACK_WORKER_LOCATION = ${JSON.stringify(location.origin)};
2
2
  self.TURBOPACK_NEXT_CHUNK_URLS = ${JSON.stringify(e.reverse().map(T),null,2)};
3
3
  importScripts(...self.TURBOPACK_NEXT_CHUNK_URLS.map(c => self.TURBOPACK_WORKER_LOCATION + c).reverse());`],{type:"text/javascript"});return URL.createObjectURL(t)};let A=/\.js(?:\?[^#]*)?(?:#.*)?$/,S=/\.css(?:\?[^#]*)?(?:#.*)?$/;function E(e){return S.test(e)}o.w=function(t,r,n){return e.loadWebAssembly(1,this.m.id,t,r,n)},o.u=function(t,r){return e.loadWebAssemblyModule(1,this.m.id,t,r)};let K={};o.c=K;let M=(e,t)=>{let r=K[e];if(r){if(r.error)throw r.error;return r}return x(e,j.Parent,t.id)};function x(e,t,r){let o=C.get(e);"function"!=typeof o&&function(e,t,r){let n;switch(t){case 0:n=`as a runtime entry of chunk ${r}`;break;case 1:n=`because it was required from module ${r}`;break;case 2:n="because of an HMR update";break;default:w(t,e=>`Unknown source type: ${e}`)}throw Error(`Module ${e} was instantiated ${n}, but the module factory is not available. It might have been deleted in an HMR update.`)}(e,t,r);let i=a(e),l=i.exports;K[e]=i;let s=new n(i,l);try{o(s,i,l)}catch(e){throw i.error=e,e}return i.namespaceObject&&i.exports!==i.namespaceObject&&h(i.exports,i.namespaceObject),i}function N(r){let n,o=function(e){if("string"==typeof e)return e;let r=decodeURIComponent(("undefined"!=typeof TURBOPACK_NEXT_CHUNK_URLS?TURBOPACK_NEXT_CHUNK_URLS.pop():e.getAttribute("src")).replace(/[?#].*$/,""));return r.startsWith(t)?r.slice(t.length):r}(r[0]);return 2===r.length?n=r[1]:(n=void 0,!function(e,t,r,n){let o=1;for(;o<e.length;){let t=e[o],n=o+1;for(;n<e.length&&"function"!=typeof e[n];)n++;if(n===e.length)throw Error("malformed chunk format, expected a factory function");if(!r.has(t)){let i=e[n];for(Object.defineProperty(i,"name",{value:"__TURBOPACK__module__evaluation__"});o<n;o++)t=e[o],r.set(t,i)}o=n+1}}(r,0,C)),e.registerChunk(o,n)}let L=new Map;(()=>{function t(e){let t=L.get(e);if(!t){let r,n;t={resolved:!1,loadingStarted:!1,promise:new Promise((e,t)=>{r=e,n=t}),resolve:()=>{t.resolved=!0,r()},reject:n},L.set(e,t)}return t}e={async registerChunk(e,r){if(t(T(e)).resolve(),null!=r){for(let e of r.otherChunks)t(T("string"==typeof e?e:e.path));if(await Promise.all(r.otherChunks.map(t=>k(0,e,t))),r.runtimeModuleIds.length>0)for(let t of r.runtimeModuleIds)!function(e,t){let r=K[t];if(r){if(r.error)throw r.error;return}x(t,j.Runtime,e)}(e,t)}},loadChunkCached:(e,r)=>(function(e,r){let n=t(r);if(n.loadingStarted)return n.promise;if(e===j.Runtime)return n.loadingStarted=!0,E(r)&&n.resolve(),n.promise;if("function"==typeof importScripts)if(E(r));else if(A.test(r))self.TURBOPACK_NEXT_CHUNK_URLS.push(r),importScripts(TURBOPACK_WORKER_LOCATION+r);else throw Error(`can't infer type of chunk from URL ${r} in worker`);else{let e=decodeURI(r);if(E(r))if(document.querySelectorAll(`link[rel=stylesheet][href="${r}"],link[rel=stylesheet][href^="${r}?"],link[rel=stylesheet][href="${e}"],link[rel=stylesheet][href^="${e}?"]`).length>0)n.resolve();else{let e=document.createElement("link");e.rel="stylesheet",e.href=r,e.onerror=()=>{n.reject()},e.onload=()=>{n.resolve()},document.head.appendChild(e)}else if(A.test(r)){let t=document.querySelectorAll(`script[src="${r}"],script[src^="${r}?"],script[src="${e}"],script[src^="${e}?"]`);if(t.length>0)for(let e of Array.from(t))e.addEventListener("error",()=>{n.reject()});else{let e=document.createElement("script");e.src=r,e.onerror=()=>{n.reject()},document.head.appendChild(e)}}else throw Error(`can't infer type of chunk from URL ${r}`)}return n.loadingStarted=!0,n.promise})(e,r),async loadWebAssembly(e,t,r,n,o){let i=fetch(T(r)),{instance:l}=await WebAssembly.instantiateStreaming(i,o);return l.exports},async loadWebAssemblyModule(e,t,r,n){let o=fetch(T(r));return await WebAssembly.compileStreaming(o)}}})();let B=globalThis.TURBOPACK;globalThis.TURBOPACK={push:N},B.forEach(N)})();
@@ -1,3 +1,3 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,{otherChunks:["static/chunks/e60ef129113f6e24.js","static/chunks/2fa3e4168e941aef.js"],runtimeModuleIds:[10783,30984]}]),(()=>{let e;if(!Array.isArray(globalThis.TURBOPACK))return;let t="/app/_next/",r=new WeakMap;function n(e,t){this.m=e,this.e=t}let o=n.prototype,i=Object.prototype.hasOwnProperty,l="undefined"!=typeof Symbol&&Symbol.toStringTag;function s(e,t,r){i.call(e,t)||Object.defineProperty(e,t,r)}function u(e,t){let r=e[t];return r||(r=a(t),e[t]=r),r}function a(e){return{exports:{},error:void 0,id:e,namespaceObject:void 0}}function c(e,t){s(e,"__esModule",{value:!0}),l&&s(e,l,{value:"Module"});let r=0;for(;r<t.length;){let n=t[r++],o=t[r++];"function"==typeof t[r]?s(e,n,{get:o,set:t[r++],enumerable:!0}):s(e,n,{get:o,enumerable:!0})}Object.seal(e)}o.s=function(e,t){let r,n;null!=t?n=(r=u(this.c,t)).exports:(r=this.m,n=this.e),r.namespaceObject=n,c(n,e)},o.j=function(e,t){var n,o;let l,s,a;null!=t?s=(l=u(this.c,t)).exports:(l=this.m,s=this.e);let c=(n=l,o=s,(a=r.get(n))||(r.set(n,a=[]),n.exports=n.namespaceObject=new Proxy(o,{get(e,t){if(i.call(e,t)||"default"===t||"__esModule"===t)return Reflect.get(e,t);for(let e of a){let r=Reflect.get(e,t);if(void 0!==r)return r}},ownKeys(e){let t=Reflect.ownKeys(e);for(let e of a)for(let r of Reflect.ownKeys(e))"default"===r||t.includes(r)||t.push(r);return t}})),a);"object"==typeof e&&null!==e&&c.push(e)},o.v=function(e,t){(null!=t?u(this.c,t):this.m).exports=e},o.n=function(e,t){let r;(r=null!=t?u(this.c,t):this.m).exports=r.namespaceObject=e};let f=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,p=[null,f({}),f([]),f(f)];function h(e,t,r){let n=[],o=-1;for(let t=e;("object"==typeof t||"function"==typeof t)&&!p.includes(t);t=f(t))for(let r of Object.getOwnPropertyNames(t))n.push(r,function(e,t){return()=>e[t]}(e,r)),-1===o&&"default"===r&&(o=n.length-1);return r&&o>=0||(o>=0?n[o]=()=>e:n.push("default",()=>e)),c(t,n),t}function d(){let e,t;return{promise:new Promise((r,n)=>{t=n,e=r}),resolve:e,reject:t}}o.i=function(e){let t=M(e,this.m);if(t.namespaceObject)return t.namespaceObject;let r=t.exports;return t.namespaceObject=h(r,"function"==typeof r?function(...e){return r.apply(this,e)}:Object.create(null),r&&r.__esModule)},o.A=function(e){return this.r(e)(this.i.bind(this))},o.t="function"==typeof require?require:function(){throw Error("Unexpected use of runtime require")},o.r=function(e){return M(e,this.m).exports},o.f=function(e){function t(t){if(i.call(e,t))return e[t].module();let r=Error(`Cannot find module '${t}'`);throw r.code="MODULE_NOT_FOUND",r}return t.keys=()=>Object.keys(e),t.resolve=t=>{if(i.call(e,t))return e[t].id();let r=Error(`Cannot find module '${t}'`);throw r.code="MODULE_NOT_FOUND",r},t.import=async e=>await t(e),t};let m=Symbol("turbopack queues"),b=Symbol("turbopack exports"),y=Symbol("turbopack error");function O(e){e&&1!==e.status&&(e.status=1,e.forEach(e=>e.queueCount--),e.forEach(e=>e.queueCount--?e.queueCount++:e()))}o.a=function(e,t){let r=this.m,n=t?Object.assign([],{status:-1}):void 0,o=new Set,{resolve:i,reject:l,promise:s}=d(),u=Object.assign(s,{[b]:r.exports,[m]:e=>{n&&e(n),o.forEach(e),u.catch(()=>{})}}),a={get:()=>u,set(e){e!==u&&(u[b]=e)}};Object.defineProperty(r,"exports",a),Object.defineProperty(r,"namespaceObject",a),e(function(e){let t=e.map(e=>{if(null!==e&&"object"==typeof e){if(m in e)return e;if(null!=e&&"object"==typeof e&&"then"in e&&"function"==typeof e.then){let t=Object.assign([],{status:0}),r={[b]:{},[m]:e=>e(t)};return e.then(e=>{r[b]=e,O(t)},e=>{r[y]=e,O(t)}),r}}return{[b]:e,[m]:()=>{}}}),r=()=>t.map(e=>{if(e[y])throw e[y];return e[b]}),{promise:i,resolve:l}=d(),s=Object.assign(()=>l(r),{queueCount:0});function u(e){e!==n&&!o.has(e)&&(o.add(e),e&&0===e.status&&(s.queueCount++,e.push(s)))}return t.map(e=>e[m](u)),s.queueCount?i:r()},function(e){e?l(u[y]=e):i(u[b]),O(n)}),n&&-1===n.status&&(n.status=0)};let g=function(e){let t=new URL(e,"x:/"),r={};for(let e in t)r[e]=t[e];for(let t in r.href=e,r.pathname=e.replace(/[?#].*/,""),r.origin=r.protocol="",r.toString=r.toJSON=(...t)=>e,r)Object.defineProperty(this,t,{enumerable:!0,configurable:!0,value:r[t]})};function w(e,t){throw Error(`Invariant: ${t(e)}`)}g.prototype=URL.prototype,o.U=g,o.z=function(e){throw Error("dynamic usage of require is not supported")},o.g=globalThis;let R=n.prototype;var j=function(e){return e[e.Runtime=0]="Runtime",e[e.Parent=1]="Parent",e[e.Update=2]="Update",e}(j||{});let C=new Map;o.M=C;let _=new Map,U=new Map;async function k(e,t,r){let n;if("string"==typeof r)return $(e,t,T(r));let o=r.included||[],i=o.map(e=>!!C.has(e)||_.get(e));if(i.length>0&&i.every(e=>e))return void await Promise.all(i);let l=r.moduleChunks||[],s=l.map(e=>U.get(e)).filter(e=>e);if(s.length>0){if(s.length===l.length)return void await Promise.all(s);let r=new Set;for(let e of l)U.has(e)||r.add(e);for(let n of r){let r=$(e,t,T(n));U.set(n,r),s.push(r)}n=Promise.all(s)}else{for(let o of(n=$(e,t,T(r.path)),l))U.has(o)||U.set(o,n)}for(let e of o)_.has(e)||_.set(e,n);await n}R.l=function(e){return k(1,this.m.id,e)};let v=Promise.resolve(void 0),P=new WeakMap;function $(t,r,n){let o=e.loadChunkCached(t,n),i=P.get(o);if(void 0===i){let e=P.set.bind(P,o,v);i=o.then(e).catch(e=>{let o;switch(t){case 0:o=`as a runtime dependency of chunk ${r}`;break;case 1:o=`from module ${r}`;break;case 2:o="from an HMR update";break;default:w(t,e=>`Unknown source type: ${e}`)}throw Error(`Failed to load chunk ${n} ${o}${e?`: ${e}`:""}`,e?{cause:e}:void 0)}),P.set(o,i)}return i}function T(e){return`${t}${e.split("/").map(e=>encodeURIComponent(e)).join("/")}`}R.L=function(e){return $(1,this.m.id,e)},R.R=function(e){let t=this.r(e);return t?.default??t},R.P=function(e){return`/ROOT/${e??""}`},R.b=function(e){let t=new Blob([`self.TURBOPACK_WORKER_LOCATION = ${JSON.stringify(location.origin)};
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,{otherChunks:["static/chunks/e60ef129113f6e24.js","static/chunks/52e2164e45febae6.js"],runtimeModuleIds:[10783,30984]}]),(()=>{let e;if(!Array.isArray(globalThis.TURBOPACK))return;let t="/app/_next/",r=new WeakMap;function n(e,t){this.m=e,this.e=t}let o=n.prototype,i=Object.prototype.hasOwnProperty,l="undefined"!=typeof Symbol&&Symbol.toStringTag;function s(e,t,r){i.call(e,t)||Object.defineProperty(e,t,r)}function u(e,t){let r=e[t];return r||(r=a(t),e[t]=r),r}function a(e){return{exports:{},error:void 0,id:e,namespaceObject:void 0}}function c(e,t){s(e,"__esModule",{value:!0}),l&&s(e,l,{value:"Module"});let r=0;for(;r<t.length;){let n=t[r++],o=t[r++];"function"==typeof t[r]?s(e,n,{get:o,set:t[r++],enumerable:!0}):s(e,n,{get:o,enumerable:!0})}Object.seal(e)}o.s=function(e,t){let r,n;null!=t?n=(r=u(this.c,t)).exports:(r=this.m,n=this.e),r.namespaceObject=n,c(n,e)},o.j=function(e,t){var n,o;let l,s,a;null!=t?s=(l=u(this.c,t)).exports:(l=this.m,s=this.e);let c=(n=l,o=s,(a=r.get(n))||(r.set(n,a=[]),n.exports=n.namespaceObject=new Proxy(o,{get(e,t){if(i.call(e,t)||"default"===t||"__esModule"===t)return Reflect.get(e,t);for(let e of a){let r=Reflect.get(e,t);if(void 0!==r)return r}},ownKeys(e){let t=Reflect.ownKeys(e);for(let e of a)for(let r of Reflect.ownKeys(e))"default"===r||t.includes(r)||t.push(r);return t}})),a);"object"==typeof e&&null!==e&&c.push(e)},o.v=function(e,t){(null!=t?u(this.c,t):this.m).exports=e},o.n=function(e,t){let r;(r=null!=t?u(this.c,t):this.m).exports=r.namespaceObject=e};let f=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,p=[null,f({}),f([]),f(f)];function h(e,t,r){let n=[],o=-1;for(let t=e;("object"==typeof t||"function"==typeof t)&&!p.includes(t);t=f(t))for(let r of Object.getOwnPropertyNames(t))n.push(r,function(e,t){return()=>e[t]}(e,r)),-1===o&&"default"===r&&(o=n.length-1);return r&&o>=0||(o>=0?n[o]=()=>e:n.push("default",()=>e)),c(t,n),t}function d(){let e,t;return{promise:new Promise((r,n)=>{t=n,e=r}),resolve:e,reject:t}}o.i=function(e){let t=M(e,this.m);if(t.namespaceObject)return t.namespaceObject;let r=t.exports;return t.namespaceObject=h(r,"function"==typeof r?function(...e){return r.apply(this,e)}:Object.create(null),r&&r.__esModule)},o.A=function(e){return this.r(e)(this.i.bind(this))},o.t="function"==typeof require?require:function(){throw Error("Unexpected use of runtime require")},o.r=function(e){return M(e,this.m).exports},o.f=function(e){function t(t){if(i.call(e,t))return e[t].module();let r=Error(`Cannot find module '${t}'`);throw r.code="MODULE_NOT_FOUND",r}return t.keys=()=>Object.keys(e),t.resolve=t=>{if(i.call(e,t))return e[t].id();let r=Error(`Cannot find module '${t}'`);throw r.code="MODULE_NOT_FOUND",r},t.import=async e=>await t(e),t};let m=Symbol("turbopack queues"),b=Symbol("turbopack exports"),y=Symbol("turbopack error");function O(e){e&&1!==e.status&&(e.status=1,e.forEach(e=>e.queueCount--),e.forEach(e=>e.queueCount--?e.queueCount++:e()))}o.a=function(e,t){let r=this.m,n=t?Object.assign([],{status:-1}):void 0,o=new Set,{resolve:i,reject:l,promise:s}=d(),u=Object.assign(s,{[b]:r.exports,[m]:e=>{n&&e(n),o.forEach(e),u.catch(()=>{})}}),a={get:()=>u,set(e){e!==u&&(u[b]=e)}};Object.defineProperty(r,"exports",a),Object.defineProperty(r,"namespaceObject",a),e(function(e){let t=e.map(e=>{if(null!==e&&"object"==typeof e){if(m in e)return e;if(null!=e&&"object"==typeof e&&"then"in e&&"function"==typeof e.then){let t=Object.assign([],{status:0}),r={[b]:{},[m]:e=>e(t)};return e.then(e=>{r[b]=e,O(t)},e=>{r[y]=e,O(t)}),r}}return{[b]:e,[m]:()=>{}}}),r=()=>t.map(e=>{if(e[y])throw e[y];return e[b]}),{promise:i,resolve:l}=d(),s=Object.assign(()=>l(r),{queueCount:0});function u(e){e!==n&&!o.has(e)&&(o.add(e),e&&0===e.status&&(s.queueCount++,e.push(s)))}return t.map(e=>e[m](u)),s.queueCount?i:r()},function(e){e?l(u[y]=e):i(u[b]),O(n)}),n&&-1===n.status&&(n.status=0)};let g=function(e){let t=new URL(e,"x:/"),r={};for(let e in t)r[e]=t[e];for(let t in r.href=e,r.pathname=e.replace(/[?#].*/,""),r.origin=r.protocol="",r.toString=r.toJSON=(...t)=>e,r)Object.defineProperty(this,t,{enumerable:!0,configurable:!0,value:r[t]})};function w(e,t){throw Error(`Invariant: ${t(e)}`)}g.prototype=URL.prototype,o.U=g,o.z=function(e){throw Error("dynamic usage of require is not supported")},o.g=globalThis;let R=n.prototype;var j=function(e){return e[e.Runtime=0]="Runtime",e[e.Parent=1]="Parent",e[e.Update=2]="Update",e}(j||{});let C=new Map;o.M=C;let _=new Map,U=new Map;async function k(e,t,r){let n;if("string"==typeof r)return $(e,t,T(r));let o=r.included||[],i=o.map(e=>!!C.has(e)||_.get(e));if(i.length>0&&i.every(e=>e))return void await Promise.all(i);let l=r.moduleChunks||[],s=l.map(e=>U.get(e)).filter(e=>e);if(s.length>0){if(s.length===l.length)return void await Promise.all(s);let r=new Set;for(let e of l)U.has(e)||r.add(e);for(let n of r){let r=$(e,t,T(n));U.set(n,r),s.push(r)}n=Promise.all(s)}else{for(let o of(n=$(e,t,T(r.path)),l))U.has(o)||U.set(o,n)}for(let e of o)_.has(e)||_.set(e,n);await n}R.l=function(e){return k(1,this.m.id,e)};let v=Promise.resolve(void 0),P=new WeakMap;function $(t,r,n){let o=e.loadChunkCached(t,n),i=P.get(o);if(void 0===i){let e=P.set.bind(P,o,v);i=o.then(e).catch(e=>{let o;switch(t){case 0:o=`as a runtime dependency of chunk ${r}`;break;case 1:o=`from module ${r}`;break;case 2:o="from an HMR update";break;default:w(t,e=>`Unknown source type: ${e}`)}throw Error(`Failed to load chunk ${n} ${o}${e?`: ${e}`:""}`,e?{cause:e}:void 0)}),P.set(o,i)}return i}function T(e){return`${t}${e.split("/").map(e=>encodeURIComponent(e)).join("/")}`}R.L=function(e){return $(1,this.m.id,e)},R.R=function(e){let t=this.r(e);return t?.default??t},R.P=function(e){return`/ROOT/${e??""}`},R.b=function(e){let t=new Blob([`self.TURBOPACK_WORKER_LOCATION = ${JSON.stringify(location.origin)};
2
2
  self.TURBOPACK_NEXT_CHUNK_URLS = ${JSON.stringify(e.reverse().map(T),null,2)};
3
3
  importScripts(...self.TURBOPACK_NEXT_CHUNK_URLS.map(c => self.TURBOPACK_WORKER_LOCATION + c).reverse());`],{type:"text/javascript"});return URL.createObjectURL(t)};let A=/\.js(?:\?[^#]*)?(?:#.*)?$/,S=/\.css(?:\?[^#]*)?(?:#.*)?$/;function E(e){return S.test(e)}o.w=function(t,r,n){return e.loadWebAssembly(1,this.m.id,t,r,n)},o.u=function(t,r){return e.loadWebAssemblyModule(1,this.m.id,t,r)};let K={};o.c=K;let M=(e,t)=>{let r=K[e];if(r){if(r.error)throw r.error;return r}return x(e,j.Parent,t.id)};function x(e,t,r){let o=C.get(e);"function"!=typeof o&&function(e,t,r){let n;switch(t){case 0:n=`as a runtime entry of chunk ${r}`;break;case 1:n=`because it was required from module ${r}`;break;case 2:n="because of an HMR update";break;default:w(t,e=>`Unknown source type: ${e}`)}throw Error(`Module ${e} was instantiated ${n}, but the module factory is not available. It might have been deleted in an HMR update.`)}(e,t,r);let i=a(e),l=i.exports;K[e]=i;let s=new n(i,l);try{o(s,i,l)}catch(e){throw i.error=e,e}return i.namespaceObject&&i.exports!==i.namespaceObject&&h(i.exports,i.namespaceObject),i}function N(r){let n,o=function(e){if("string"==typeof e)return e;let r=decodeURIComponent(("undefined"!=typeof TURBOPACK_NEXT_CHUNK_URLS?TURBOPACK_NEXT_CHUNK_URLS.pop():e.getAttribute("src")).replace(/[?#].*$/,""));return r.startsWith(t)?r.slice(t.length):r}(r[0]);return 2===r.length?n=r[1]:(n=void 0,!function(e,t,r,n){let o=1;for(;o<e.length;){let t=e[o],n=o+1;for(;n<e.length&&"function"!=typeof e[n];)n++;if(n===e.length)throw Error("malformed chunk format, expected a factory function");if(!r.has(t)){let i=e[n];for(Object.defineProperty(i,"name",{value:"__TURBOPACK__module__evaluation__"});o<n;o++)t=e[o],r.set(t,i)}o=n+1}}(r,0,C)),e.registerChunk(o,n)}let L=new Map;(()=>{function t(e){let t=L.get(e);if(!t){let r,n;t={resolved:!1,loadingStarted:!1,promise:new Promise((e,t)=>{r=e,n=t}),resolve:()=>{t.resolved=!0,r()},reject:n},L.set(e,t)}return t}e={async registerChunk(e,r){if(t(T(e)).resolve(),null!=r){for(let e of r.otherChunks)t(T("string"==typeof e?e:e.path));if(await Promise.all(r.otherChunks.map(t=>k(0,e,t))),r.runtimeModuleIds.length>0)for(let t of r.runtimeModuleIds)!function(e,t){let r=K[t];if(r){if(r.error)throw r.error;return}x(t,j.Runtime,e)}(e,t)}},loadChunkCached:(e,r)=>(function(e,r){let n=t(r);if(n.loadingStarted)return n.promise;if(e===j.Runtime)return n.loadingStarted=!0,E(r)&&n.resolve(),n.promise;if("function"==typeof importScripts)if(E(r));else if(A.test(r))self.TURBOPACK_NEXT_CHUNK_URLS.push(r),importScripts(TURBOPACK_WORKER_LOCATION+r);else throw Error(`can't infer type of chunk from URL ${r} in worker`);else{let e=decodeURI(r);if(E(r))if(document.querySelectorAll(`link[rel=stylesheet][href="${r}"],link[rel=stylesheet][href^="${r}?"],link[rel=stylesheet][href="${e}"],link[rel=stylesheet][href^="${e}?"]`).length>0)n.resolve();else{let e=document.createElement("link");e.rel="stylesheet",e.href=r,e.onerror=()=>{n.reject()},e.onload=()=>{n.resolve()},document.head.appendChild(e)}else if(A.test(r)){let t=document.querySelectorAll(`script[src="${r}"],script[src^="${r}?"],script[src="${e}"],script[src^="${e}?"]`);if(t.length>0)for(let e of Array.from(t))e.addEventListener("error",()=>{n.reject()});else{let e=document.createElement("script");e.src=r,e.onerror=()=>{n.reject()},document.head.appendChild(e)}}else throw Error(`can't infer type of chunk from URL ${r}`)}return n.loadingStarted=!0,n.promise})(e,r),async loadWebAssembly(e,t,r,n,o){let i=fetch(T(r)),{instance:l}=await WebAssembly.instantiateStreaming(i,o);return l.exports},async loadWebAssemblyModule(e,t,r,n){let o=fetch(T(r));return await WebAssembly.compileStreaming(o)}}})();let B=globalThis.TURBOPACK;globalThis.TURBOPACK={push:N},B.forEach(N)})();
@@ -0,0 +1,28 @@
1
+ /** 选中工位显示器高亮色 */
2
+ export const MONITOR_SELECTED = '#0a84ff'
3
+
4
+ /** Agent 识别色带 */
5
+ export const AGENT_ACCENT_COLORS = [
6
+ '#22d3c5',
7
+ '#4da3ff',
8
+ '#8b5cf6',
9
+ '#e84855',
10
+ '#f5c518',
11
+ '#c5e84c',
12
+ ]
13
+
14
+ const KNOWN_ACCENTS = {
15
+ dev: '#22d3c5',
16
+ edr: '#4da3ff',
17
+ qihoo: '#8b5cf6',
18
+ }
19
+
20
+ /** 根据 agent id 分配色带 */
21
+ export function accentColorForId(id) {
22
+ const key = String(id || '').trim().toLowerCase()
23
+ if (KNOWN_ACCENTS[key]) return KNOWN_ACCENTS[key]
24
+ const s = String(id || 'a')
25
+ let h = 0
26
+ for (let i = 0; i < s.length; i++) h = (h + s.charCodeAt(i) * 17) % AGENT_ACCENT_COLORS.length
27
+ return AGENT_ACCENT_COLORS[h]
28
+ }
@@ -0,0 +1,142 @@
1
+ /** Agent CRUD API;列表/写操作上下文固定用已存在的默认 agent */
2
+ export const DEFAULT_CONTEXT_AGENT = 'qihoo'
3
+
4
+ /** 解析 API 基址:与 ws-test 一致,支持 apiBase 输入或当前 origin */
5
+ export function httpOriginForApi() {
6
+ try {
7
+ const params = new URLSearchParams(window.location.search)
8
+ const fromQuery = params.get('apiBase')
9
+ if (fromQuery && String(fromQuery).trim()) {
10
+ return String(fromQuery).trim().replace(/\/$/, '')
11
+ }
12
+ } catch {
13
+ /* ignore */
14
+ }
15
+ return window.location.origin
16
+ }
17
+
18
+ /** 构建 agent 列表 API 地址 */
19
+ export function buildAgentsListUrl(contextAgent) {
20
+ const u = new URL('/api/agents', httpOriginForApi() + '/')
21
+ u.searchParams.set('agent', contextAgent || DEFAULT_CONTEXT_AGENT)
22
+ return u.toString()
23
+ }
24
+
25
+ /** 构建单个 agent REST 地址 */
26
+ export function buildAgentItemUrl(id, contextAgent) {
27
+ const u = new URL(
28
+ '/api/agents/' + encodeURIComponent(String(id || '').trim()),
29
+ httpOriginForApi() + '/',
30
+ )
31
+ u.searchParams.set('agent', contextAgent || DEFAULT_CONTEXT_AGENT)
32
+ return u.toString()
33
+ }
34
+
35
+ /** 校验 agent id:字母数字下划线中划线,1~64 */
36
+ export function isValidAgentIdInput(id) {
37
+ return /^[a-zA-Z0-9_-]{1,64}$/.test(String(id || '').trim())
38
+ }
39
+
40
+ /** 基于已有 agent.json 构造 PATCH config,仅更新 whentouse;effort 为 null 时不写入 */
41
+ export function buildAgentConfigPatch(baseConfig, whentouse) {
42
+ const c = baseConfig && typeof baseConfig === 'object' ? baseConfig : {}
43
+ const env = c.env && typeof c.env === 'object' && !Array.isArray(c.env) ? c.env : {}
44
+ const patch = {
45
+ tools: Array.isArray(c.tools) ? c.tools.map(String) : [],
46
+ disallowedTools: Array.isArray(c.disallowedTools)
47
+ ? c.disallowedTools.map(String)
48
+ : [],
49
+ mcpServers: Array.isArray(c.mcpServers) ? c.mcpServers.map(String) : [],
50
+ skills: Array.isArray(c.skills) ? c.skills.map(String) : [],
51
+ agentTeams: Array.isArray(c.agentTeams) ? c.agentTeams.map(String) : [],
52
+ model: typeof c.model === 'string' ? c.model : '',
53
+ background: c.background === true,
54
+ isolation: typeof c.isolation === 'string' ? c.isolation : '',
55
+ whentouse: typeof whentouse === 'string' ? whentouse : '',
56
+ env,
57
+ }
58
+ if (typeof c.effort === 'string' || typeof c.effort === 'number') {
59
+ patch.effort = c.effort
60
+ }
61
+ return patch
62
+ }
63
+
64
+ /** 拉取 agent 列表 */
65
+ export async function fetchAgentsList(contextAgent) {
66
+ const r = await fetch(buildAgentsListUrl(contextAgent))
67
+ const body = await r.json().catch(() => ({}))
68
+ if (!r.ok) {
69
+ throw new Error(body.message || body.error || r.statusText)
70
+ }
71
+ return Array.isArray(body.agents) ? body.agents : []
72
+ }
73
+
74
+ /** 拉取单个 agent 详情 */
75
+ export async function fetchAgentDetail(id, contextAgent) {
76
+ const r = await fetch(buildAgentItemUrl(id, contextAgent))
77
+ const body = await r.json().catch(() => ({}))
78
+ if (!r.ok) {
79
+ throw new Error(body.message || body.error || r.statusText)
80
+ }
81
+ return body.agent || { id }
82
+ }
83
+
84
+ /** 删除 agent;qihoo 不可删 */
85
+ export async function deleteAgent(id, contextAgent) {
86
+ const agentId = String(id || '').trim()
87
+ if (!agentId) throw new Error('缺少 agent id')
88
+ if (agentId === DEFAULT_CONTEXT_AGENT) {
89
+ throw new Error('默认 Agent(' + DEFAULT_CONTEXT_AGENT + ')不可删除')
90
+ }
91
+ const r = await fetch(buildAgentItemUrl(agentId, contextAgent), { method: 'DELETE' })
92
+ const body = await r.json().catch(() => ({}))
93
+ if (!r.ok) {
94
+ throw new Error(body.message || body.error || r.statusText)
95
+ }
96
+ }
97
+
98
+ /** 保存 agent(新建或编辑):whentouse + agent.md */
99
+ export async function saveAgent(params) {
100
+ const { id, whentouse, prompt, isEdit, baseConfig, contextAgent } = params
101
+ if (isEdit) {
102
+ const patchRes = await fetch(buildAgentItemUrl(id, contextAgent), {
103
+ method: 'PATCH',
104
+ headers: { 'content-type': 'application/json; charset=utf-8' },
105
+ body: JSON.stringify({
106
+ prompt,
107
+ config: buildAgentConfigPatch(baseConfig, whentouse),
108
+ }),
109
+ })
110
+ const patchBody = await patchRes.json().catch(() => ({}))
111
+ if (!patchRes.ok) {
112
+ throw new Error(patchBody.message || patchBody.error || patchRes.statusText)
113
+ }
114
+ return id
115
+ }
116
+
117
+ const createRes = await fetch(buildAgentsListUrl(contextAgent), {
118
+ method: 'POST',
119
+ headers: { 'content-type': 'application/json; charset=utf-8' },
120
+ body: JSON.stringify({ name: id, prompt }),
121
+ })
122
+ const createBody = await createRes.json().catch(() => ({}))
123
+ if (!createRes.ok) {
124
+ throw new Error(createBody.message || createBody.error || createRes.statusText)
125
+ }
126
+
127
+ const cfgBody = await fetchAgentDetail(id, contextAgent)
128
+ const baseCfg =
129
+ cfgBody.config && typeof cfgBody.config === 'object' ? cfgBody.config : null
130
+ const patchRes = await fetch(buildAgentItemUrl(id, contextAgent), {
131
+ method: 'PATCH',
132
+ headers: { 'content-type': 'application/json; charset=utf-8' },
133
+ body: JSON.stringify({
134
+ config: buildAgentConfigPatch(baseCfg, whentouse),
135
+ }),
136
+ })
137
+ const patchBody = await patchRes.json().catch(() => ({}))
138
+ if (!patchRes.ok) {
139
+ throw new Error(patchBody.message || patchBody.error || patchRes.statusText)
140
+ }
141
+ return id
142
+ }
@@ -0,0 +1,79 @@
1
+ import { accentColorForId } from './accents.js'
2
+
3
+ function truncate(text, max) {
4
+ const s = String(text || '').replace(/\s+/g, ' ').trim()
5
+ if (!s) return '暂无使用说明'
6
+ return s.length <= max ? s : s.slice(0, max - 1) + '…'
7
+ }
8
+
9
+ /** Agent 列表渲染 */
10
+ export class AgentList {
11
+ constructor(container, onPick) {
12
+ this.container = container
13
+ this.onPick = onPick
14
+ }
15
+
16
+ render(agents, selectedId) {
17
+ if (!this.container) return
18
+ this.container.innerHTML = ''
19
+
20
+ if (!agents.length) {
21
+ const empty = document.createElement('div')
22
+ empty.className = 'agent-list-empty'
23
+ empty.textContent = '暂无 Agent,点击右上角「新建 Agent」创建'
24
+ this.container.appendChild(empty)
25
+ return
26
+ }
27
+
28
+ const ul = document.createElement('ul')
29
+ ul.className = 'agent-list'
30
+ ul.setAttribute('role', 'list')
31
+
32
+ for (let i = 0; i < agents.length; i++) {
33
+ const row = agents[i]
34
+ const id = String(row.id || '').trim()
35
+ if (!id) continue
36
+
37
+ const li = document.createElement('li')
38
+ const btn = document.createElement('button')
39
+ btn.type = 'button'
40
+ btn.className = 'agent-list-item' + (selectedId === id ? ' is-selected' : '')
41
+ btn.setAttribute('aria-pressed', selectedId === id ? 'true' : 'false')
42
+
43
+ const accent = document.createElement('span')
44
+ accent.className = 'agent-list-accent'
45
+ accent.style.background = accentColorForId(id)
46
+
47
+ const body = document.createElement('span')
48
+ body.className = 'agent-list-body'
49
+
50
+ const title = document.createElement('span')
51
+ title.className = 'agent-list-id'
52
+ title.textContent = id
53
+
54
+ const desc = document.createElement('span')
55
+ desc.className = 'agent-list-desc'
56
+ desc.textContent = truncate(row.whentouse, 80)
57
+
58
+ body.appendChild(title)
59
+ body.appendChild(desc)
60
+
61
+ const arrow = document.createElement('span')
62
+ arrow.className = 'agent-list-arrow'
63
+ arrow.textContent = '›'
64
+
65
+ btn.appendChild(accent)
66
+ btn.appendChild(body)
67
+ btn.appendChild(arrow)
68
+
69
+ btn.addEventListener('click', () => {
70
+ if (this.onPick) this.onPick(id)
71
+ })
72
+
73
+ li.appendChild(btn)
74
+ ul.appendChild(li)
75
+ }
76
+
77
+ this.container.appendChild(ul)
78
+ }
79
+ }
@@ -0,0 +1,38 @@
1
+ import { OfficeController } from './officeController.js'
2
+ import { AgentList } from './list.js'
3
+ import { OfficeUI } from './ui.js'
4
+
5
+ /** Agent 列表页入口 */
6
+ async function main() {
7
+ const app = document.getElementById('officeApp')
8
+ const listRoot = document.getElementById('agentListRoot')
9
+ if (!app || !listRoot) return
10
+
11
+ const controller = new OfficeController()
12
+ const list = new AgentList(listRoot, (id) => controller.selectAgent(id))
13
+
14
+ const ui = new OfficeUI(app, controller, list, {
15
+ onAgentsLoaded(agents) {
16
+ const subtitle = document.getElementById('officeSubtitle')
17
+ if (subtitle) {
18
+ subtitle.textContent = String(agents.length) + ' 个 Agent · 点击列表项管理'
19
+ }
20
+ list.render(agents, controller.selectedId)
21
+ },
22
+ })
23
+
24
+ controller.onSelect = (id) => ui.onSelect(id)
25
+
26
+ try {
27
+ await ui.refreshAgents()
28
+ await ui.handleUrlAgentParam()
29
+ } catch (e) {
30
+ ui.showToast('加载 Agent 失败: ' + String(e), true)
31
+ const subtitle = document.getElementById('officeSubtitle')
32
+ if (subtitle) subtitle.textContent = '加载失败'
33
+ }
34
+ }
35
+
36
+ main().catch((e) => {
37
+ console.error(e)
38
+ })
@@ -0,0 +1,13 @@
1
+ /** Agent 列表页轻量状态:仅维护当前选中项 */
2
+ export class OfficeController {
3
+ constructor() {
4
+ this.selectedId = null
5
+ this.onSelect = null
6
+ }
7
+
8
+ /** 选中或取消选中 Agent,并通知 UI */
9
+ selectAgent(id) {
10
+ this.selectedId = id || null
11
+ if (this.onSelect) this.onSelect(this.selectedId)
12
+ }
13
+ }
@@ -0,0 +1,264 @@
1
+ import {
2
+ DEFAULT_CONTEXT_AGENT,
3
+ fetchAgentsList,
4
+ fetchAgentDetail,
5
+ saveAgent,
6
+ deleteAgent,
7
+ isValidAgentIdInput,
8
+ } from './api.js'
9
+
10
+ /** 列表页 + 侧栏 CRUD */
11
+ export class OfficeUI {
12
+ constructor(root, controller, list, hooks) {
13
+ this.root = root
14
+ this.controller = controller
15
+ this.list = list
16
+ this.hooks = hooks || {}
17
+ this.contextAgent = DEFAULT_CONTEXT_AGENT
18
+ this.agents = []
19
+ this.editingId = null
20
+ this.baseConfig = null
21
+ this.mode = 'idle'
22
+
23
+ this.panelEl = root.querySelector('#officePanel')
24
+ this.panelTitleEl = root.querySelector('#officePanelTitle')
25
+ this.panelMetaEl = root.querySelector('#officePanelMeta')
26
+ this.formEl = root.querySelector('#officeAgentForm')
27
+ this.idInput = root.querySelector('#officeAgentId')
28
+ this.whenInput = root.querySelector('#officeAgentWhen')
29
+ this.promptInput = root.querySelector('#officeAgentPrompt')
30
+ this.btnNew = root.querySelector('#btnOfficeNewAgent')
31
+ this.btnSave = root.querySelector('#btnOfficeSave')
32
+ this.btnDelete = root.querySelector('#btnOfficeDelete')
33
+ this.btnWorkbench = root.querySelector('#btnOfficeWorkbench')
34
+ this.btnClose = root.querySelector('#btnOfficePanelClose')
35
+ this.toastEl = root.querySelector('#officeToast')
36
+
37
+ this.bindEvents()
38
+ this.hidePanel()
39
+ }
40
+
41
+ bindEvents() {
42
+ if (this.btnNew) {
43
+ this.btnNew.addEventListener('click', () => this.showCreateForm())
44
+ }
45
+ if (this.btnClose) {
46
+ this.btnClose.addEventListener('click', () => {
47
+ this.hidePanel()
48
+ this.controller.selectAgent(null)
49
+ this.clearUrlAgentParam()
50
+ })
51
+ }
52
+ if (this.btnSave) {
53
+ this.btnSave.addEventListener('click', () => void this.submitForm())
54
+ }
55
+ if (this.btnDelete) {
56
+ this.btnDelete.addEventListener('click', () => void this.handleDelete())
57
+ }
58
+ if (this.btnWorkbench) {
59
+ this.btnWorkbench.addEventListener('click', () => {
60
+ const id = this.editingId || (this.idInput ? this.idInput.value.trim() : '')
61
+ if (!id) return
62
+ window.location.href = '/ws-test.html?agent=' + encodeURIComponent(id)
63
+ })
64
+ }
65
+ }
66
+
67
+ showToast(msg, isError) {
68
+ if (!this.toastEl) return
69
+ this.toastEl.textContent = msg
70
+ this.toastEl.classList.toggle('is-error', !!isError)
71
+ this.toastEl.classList.add('is-visible')
72
+ clearTimeout(this._toastTimer)
73
+ this._toastTimer = setTimeout(() => {
74
+ this.toastEl.classList.remove('is-visible')
75
+ }, 3200)
76
+ }
77
+
78
+ hidePanel() {
79
+ if (this.panelEl) this.panelEl.classList.remove('is-open')
80
+ this.editingId = null
81
+ this.baseConfig = null
82
+ this.mode = 'idle'
83
+ this.list.render(this.agents, null)
84
+ }
85
+
86
+ showPanelForAgent(id) {
87
+ if (!this.panelEl) return
88
+ this.panelEl.classList.add('is-open')
89
+ this.list.render(this.agents, id)
90
+ void this.loadAgentIntoForm(id)
91
+ }
92
+
93
+ showCreateForm() {
94
+ if (!this.panelEl || !this.formEl) return
95
+ this.panelEl.classList.add('is-open')
96
+ this.mode = 'create'
97
+ this.editingId = null
98
+ this.baseConfig = null
99
+ if (this.panelTitleEl) this.panelTitleEl.textContent = '新建 Agent'
100
+ if (this.panelMetaEl) this.panelMetaEl.textContent = '创建后可从列表进入工作台'
101
+ if (this.idInput) {
102
+ this.idInput.value = ''
103
+ this.idInput.readOnly = false
104
+ }
105
+ if (this.whenInput) this.whenInput.value = ''
106
+ if (this.promptInput) this.promptInput.value = ''
107
+ if (this.btnDelete) this.btnDelete.disabled = true
108
+ if (this.btnWorkbench) this.btnWorkbench.disabled = true
109
+ this.list.render(this.agents, null)
110
+ }
111
+
112
+ async loadAgentIntoForm(id) {
113
+ const agentId = String(id || '').trim()
114
+ if (!agentId) return
115
+ this.mode = 'edit'
116
+ this.editingId = agentId
117
+ if (this.panelTitleEl) this.panelTitleEl.textContent = 'Agent · ' + agentId
118
+ if (this.panelMetaEl) this.panelMetaEl.textContent = '加载中…'
119
+ if (this.btnDelete) {
120
+ this.btnDelete.disabled = agentId === DEFAULT_CONTEXT_AGENT
121
+ }
122
+ if (this.btnWorkbench) this.btnWorkbench.disabled = false
123
+ try {
124
+ const agent = await fetchAgentDetail(agentId, this.contextAgent)
125
+ this.baseConfig =
126
+ agent.config && typeof agent.config === 'object' ? agent.config : null
127
+ if (this.idInput) {
128
+ this.idInput.value = agentId
129
+ this.idInput.readOnly = true
130
+ }
131
+ const whentouse =
132
+ agent.config && typeof agent.config.whentouse === 'string'
133
+ ? agent.config.whentouse
134
+ : typeof agent.whentouse === 'string'
135
+ ? agent.whentouse
136
+ : ''
137
+ if (this.whenInput) this.whenInput.value = whentouse
138
+ if (this.promptInput) {
139
+ this.promptInput.value = typeof agent.prompt === 'string' ? agent.prompt : ''
140
+ }
141
+ if (this.panelMetaEl) {
142
+ this.panelMetaEl.textContent =
143
+ '共 ' + String(this.agents.length) + ' 个 Agent · 上下文:' + this.contextAgent
144
+ }
145
+ } catch (e) {
146
+ if (this.panelMetaEl) this.panelMetaEl.textContent = '加载失败'
147
+ this.showToast('加载 Agent 失败: ' + String(e), true)
148
+ }
149
+ }
150
+
151
+ async refreshAgents() {
152
+ this.agents = await fetchAgentsList(this.contextAgent)
153
+ this.list.render(this.agents, this.controller.selectedId)
154
+ if (this.hooks.onAgentsLoaded) this.hooks.onAgentsLoaded(this.agents)
155
+ return this.agents
156
+ }
157
+
158
+ async submitForm() {
159
+ const isEdit = this.mode === 'edit' && !!this.editingId
160
+ const id = isEdit
161
+ ? this.editingId
162
+ : this.idInput
163
+ ? this.idInput.value.trim()
164
+ : ''
165
+ const whentouse = this.whenInput ? this.whenInput.value : ''
166
+ const prompt = this.promptInput ? this.promptInput.value : ''
167
+ if (!isEdit && !isValidAgentIdInput(id)) {
168
+ this.showToast('Agent ID 仅支持字母、数字、下划线和中划线,长度 1~64', true)
169
+ return
170
+ }
171
+ try {
172
+ await saveAgent({
173
+ id,
174
+ whentouse,
175
+ prompt,
176
+ isEdit,
177
+ baseConfig: this.baseConfig,
178
+ contextAgent: this.contextAgent,
179
+ })
180
+ await this.refreshAgents()
181
+ this.mode = 'edit'
182
+ this.editingId = id
183
+ if (this.idInput) {
184
+ this.idInput.value = id
185
+ this.idInput.readOnly = true
186
+ }
187
+ if (this.btnDelete) this.btnDelete.disabled = id === DEFAULT_CONTEXT_AGENT
188
+ if (this.btnWorkbench) this.btnWorkbench.disabled = false
189
+ if (this.panelTitleEl) this.panelTitleEl.textContent = 'Agent · ' + id
190
+ this.controller.selectAgent(id)
191
+ this.syncUrlAgentParam(id)
192
+ this.showToast(isEdit ? '已保存' : '已创建')
193
+ } catch (e) {
194
+ this.showToast((isEdit ? '保存失败: ' : '创建失败: ') + String(e), true)
195
+ }
196
+ }
197
+
198
+ async handleDelete() {
199
+ const id = this.editingId
200
+ if (!id || id === DEFAULT_CONTEXT_AGENT) return
201
+ if (!window.confirm('确定删除 Agent「' + id + '」?此操作不可恢复。')) return
202
+ try {
203
+ await deleteAgent(id, this.contextAgent)
204
+ await this.refreshAgents()
205
+ this.hidePanel()
206
+ this.clearUrlAgentParam()
207
+ this.showToast('已删除')
208
+ } catch (e) {
209
+ this.showToast('删除失败: ' + String(e), true)
210
+ }
211
+ }
212
+
213
+ async handleUrlAgentParam() {
214
+ let param = ''
215
+ try {
216
+ param = new URLSearchParams(window.location.search).get('agent') || ''
217
+ } catch {
218
+ return
219
+ }
220
+ const id = String(param).trim()
221
+ if (!id) return
222
+
223
+ const exists = this.agents.some((a) => String(a.id) === id)
224
+ if (!exists) {
225
+ this.showToast('agent 不存在,请先创建', true)
226
+ this.clearUrlAgentParam()
227
+ return
228
+ }
229
+
230
+ this.controller.selectAgent(id)
231
+ this.showPanelForAgent(id)
232
+ }
233
+
234
+ syncUrlAgentParam(id) {
235
+ try {
236
+ const u = new URL(window.location.href)
237
+ u.searchParams.set('agent', id)
238
+ window.history.replaceState(null, '', u.pathname + u.search)
239
+ } catch {
240
+ /* ignore */
241
+ }
242
+ }
243
+
244
+ clearUrlAgentParam() {
245
+ try {
246
+ const u = new URL(window.location.href)
247
+ u.searchParams.delete('agent')
248
+ const qs = u.searchParams.toString()
249
+ window.history.replaceState(null, '', u.pathname + (qs ? '?' + qs : ''))
250
+ } catch {
251
+ /* ignore */
252
+ }
253
+ }
254
+
255
+ onSelect(id) {
256
+ if (!id) {
257
+ this.hidePanel()
258
+ this.clearUrlAgentParam()
259
+ return
260
+ }
261
+ this.showPanelForAgent(id)
262
+ this.syncUrlAgentParam(id)
263
+ }
264
+ }