agentworkshop 0.7.14 → 0.7.16

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 (35) hide show
  1. package/.AgentWorkShop/prompts/host-tools.json +819 -755
  2. package/.output/.AgentWorkShop/prompts/host-tools.json +819 -755
  3. package/.output/nitro.json +1 -1
  4. package/.output/public/_nuxt/builds/latest.json +1 -1
  5. package/.output/public/_nuxt/builds/meta/cf0a8831-4514-493d-ad5a-4e371a089ef9.json +1 -0
  6. package/.output/server/chunks/_/nitro.mjs +885 -725
  7. package/.output/server/chunks/_/nitro.mjs.map +1 -1
  8. package/.output/server/chunks/routes/api/workshop/dcw/index.post.mjs +1 -1
  9. package/.output/server/chunks/routes/api/workshop/dcw/index.post.mjs.map +1 -1
  10. package/.output/server/chunks/routes/api/workshop/index3.post.mjs +1 -1
  11. package/.output/server/chunks/routes/api/workshop/index3.post.mjs.map +1 -1
  12. package/.output/server/package.json +1 -1
  13. package/package.json +1 -1
  14. package/scripts/_dbg-harness-ui-e2e.py +23 -13
  15. package/scripts/_dbg-opslog-agent-e2e.mjs +191 -0
  16. package/scripts/aw-expose.mjs +159 -0
  17. package/server/api/workshop/daq/index.post.ts +1 -1
  18. package/server/api/workshop/dcw/lines/index.post.ts +1 -1
  19. package/server/data/daqs.json +471 -61
  20. package/server/data/dcw-lines.json +49 -0
  21. package/server/data/dcw-products.json +49 -0
  22. package/server/data/dcw-recipes.json +64 -0
  23. package/server/data/dcw-rollback.json +239 -6
  24. package/server/data/dcw-runs.json +162 -142
  25. package/server/data/dcw-writes.json +156 -0
  26. package/server/data/dcws.json +363 -217
  27. package/server/data/line-runs.json +41 -11
  28. package/server/data/scene-layouts.json +11 -0
  29. package/server/plugins/workshop.ts +9 -0
  30. package/server/services/workshop/agents/agent-badge.ts +38 -0
  31. package/server/services/workshop/agents/host-tool-bridge.ts +622 -612
  32. package/server/services/workshop/agents/industrial-tools.ts +139 -4
  33. package/server/services/workshop/daq/drivers.ts +25 -5
  34. package/server/services/workshop/dcw/recipe-rollback-manager.ts +8 -6
  35. package/.output/public/_nuxt/builds/meta/23c30854-f9e1-4651-bc3a-b695ef5faca4.json +0 -1
@@ -1167,7 +1167,7 @@ var unseal = async (_crypto, sealed, password, options) => {
1167
1167
  return null;
1168
1168
  };
1169
1169
 
1170
- function o(n){throw new Error(`${n} is not implemented yet!`)}let i$1 = class i extends EventEmitter{__unenv__={};readableEncoding=null;readableEnded=true;readableFlowing=false;readableHighWaterMark=0;readableLength=0;readableObjectMode=false;readableAborted=false;readableDidRead=false;closed=false;errored=null;readable=false;destroyed=false;static from(e,t){return new i(t)}constructor(e){super();}_read(e){}read(e){}setEncoding(e){return this}pause(){return this}resume(){return this}isPaused(){return true}unpipe(e){return this}unshift(e,t){}wrap(e){return this}push(e,t){return false}_destroy(e,t){this.removeAllListeners();}destroy(e){return this.destroyed=true,this._destroy(e),this}pipe(e,t){return {}}compose(e,t){throw new Error("Method not implemented.")}[Symbol.asyncDispose](){return this.destroy(),Promise.resolve()}async*[Symbol.asyncIterator](){throw o("Readable.asyncIterator")}iterator(e){throw o("Readable.iterator")}map(e,t){throw o("Readable.map")}filter(e,t){throw o("Readable.filter")}forEach(e,t){throw o("Readable.forEach")}reduce(e,t,r){throw o("Readable.reduce")}find(e,t){throw o("Readable.find")}findIndex(e,t){throw o("Readable.findIndex")}some(e,t){throw o("Readable.some")}toArray(e){throw o("Readable.toArray")}every(e,t){throw o("Readable.every")}flatMap(e,t){throw o("Readable.flatMap")}drop(e,t){throw o("Readable.drop")}take(e,t){throw o("Readable.take")}asIndexedPairs(e){throw o("Readable.asIndexedPairs")}};let l$1 = class l extends EventEmitter{__unenv__={};writable=true;writableEnded=false;writableFinished=false;writableHighWaterMark=0;writableLength=0;writableObjectMode=false;writableCorked=0;closed=false;errored=null;writableNeedDrain=false;writableAborted=false;destroyed=false;_data;_encoding="utf8";constructor(e){super();}pipe(e,t){return {}}_write(e,t,r){if(this.writableEnded){r&&r();return}if(this._data===void 0)this._data=e;else {const s=typeof this._data=="string"?Buffer$1.from(this._data,this._encoding||t||"utf8"):this._data,a=typeof e=="string"?Buffer$1.from(e,t||this._encoding||"utf8"):e;this._data=Buffer$1.concat([s,a]);}this._encoding=t,r&&r();}_writev(e,t){}_destroy(e,t){}_final(e){}write(e,t,r){const s=typeof t=="string"?this._encoding:"utf8",a=typeof t=="function"?t:typeof r=="function"?r:void 0;return this._write(e,s,a),true}setDefaultEncoding(e){return this}end(e,t,r){const s=typeof e=="function"?e:typeof t=="function"?t:typeof r=="function"?r:void 0;if(this.writableEnded)return s&&s(),this;const a=e===s?void 0:e;if(a){const u=t===s?void 0:t;this.write(a,u);}return this.writableEnded=true,this.writableFinished=true,this.emit("close"),this.emit("finish"),s&&s(),this}cork(){}uncork(){}destroy(e){return this.destroyed=true,delete this._data,this.removeAllListeners(),this}compose(e,t){throw new Error("Method not implemented.")}[Symbol.asyncDispose](){return Promise.resolve()}};const c$1=class c{allowHalfOpen=true;_destroy;constructor(e=new i$1,t=new l$1){Object.assign(this,e),Object.assign(this,t),this._destroy=m(e._destroy,t._destroy);}};function _(){return Object.assign(c$1.prototype,i$1.prototype),Object.assign(c$1.prototype,l$1.prototype),c$1}function m(...n){return function(...e){for(const t of n)t(...e);}}const g$s=_();class A extends g$s{__unenv__={};bufferSize=0;bytesRead=0;bytesWritten=0;connecting=false;destroyed=false;pending=false;localAddress="";localPort=0;remoteAddress="";remoteFamily="";remotePort=0;autoSelectFamilyAttemptedAddresses=[];readyState="readOnly";constructor(e){super();}write(e,t,r){return false}connect(e,t,r){return this}end(e,t,r){return this}setEncoding(e){return this}pause(){return this}resume(){return this}setTimeout(e,t){return this}setNoDelay(e){return this}setKeepAlive(e,t){return this}address(){return {}}unref(){return this}ref(){return this}destroySoon(){this.destroy();}resetAndDestroy(){const e=new Error("ERR_SOCKET_CLOSED");return e.code="ERR_SOCKET_CLOSED",this.destroy(e),this}}class y extends i$1{aborted=false;httpVersion="1.1";httpVersionMajor=1;httpVersionMinor=1;complete=true;connection;socket;headers={};trailers={};method="GET";url="/";statusCode=200;statusMessage="";closed=false;errored=null;readable=false;constructor(e){super(),this.socket=this.connection=e||new A;}get rawHeaders(){const e=this.headers,t=[];for(const r in e)if(Array.isArray(e[r]))for(const s of e[r])t.push(r,s);else t.push(r,e[r]);return t}get rawTrailers(){return []}setTimeout(e,t){return this}get headersDistinct(){return p$1(this.headers)}get trailersDistinct(){return p$1(this.trailers)}}function p$1(n){const e={};for(const[t,r]of Object.entries(n))t&&(e[t]=(Array.isArray(r)?r:[r]).filter(Boolean));return e}class w extends l$1{statusCode=200;statusMessage="";upgrading=false;chunkedEncoding=false;shouldKeepAlive=false;useChunkedEncodingByDefault=false;sendDate=false;finished=false;headersSent=false;strictContentLength=false;connection=null;socket=null;req;_headers={};constructor(e){super(),this.req=e;}assignSocket(e){e._httpMessage=this,this.socket=e,this.connection=e,this.emit("socket",e),this._flush();}_flush(){this.flushHeaders();}detachSocket(e){}writeContinue(e){}writeHead(e,t,r){e&&(this.statusCode=e),typeof t=="string"&&(this.statusMessage=t,t=void 0);const s=r||t;if(s&&!Array.isArray(s))for(const a in s)this.setHeader(a,s[a]);return this.headersSent=true,this}writeProcessing(){}setTimeout(e,t){return this}appendHeader(e,t){e=e.toLowerCase();const r=this._headers[e],s=[...Array.isArray(r)?r:[r],...Array.isArray(t)?t:[t]].filter(Boolean);return this._headers[e]=s.length>1?s:s[0],this}setHeader(e,t){return this._headers[e.toLowerCase()]=t,this}setHeaders(e){for(const[t,r]of Object.entries(e))this.setHeader(t,r);return this}getHeader(e){return this._headers[e.toLowerCase()]}getHeaders(){return this._headers}getHeaderNames(){return Object.keys(this._headers)}hasHeader(e){return e.toLowerCase()in this._headers}removeHeader(e){delete this._headers[e.toLowerCase()];}addTrailers(e){}flushHeaders(){}writeEarlyHints(e,t){typeof t=="function"&&t();}}const E=(()=>{const n=function(){};return n.prototype=Object.create(null),n})();function R(n={}){const e=new E,t=Array.isArray(n)||H(n)?n:Object.entries(n);for(const[r,s]of t)if(s){if(e[r]===void 0){e[r]=s;continue}e[r]=[...Array.isArray(e[r])?e[r]:[e[r]],...Array.isArray(s)?s:[s]];}return e}function H(n){return typeof n?.entries=="function"}function v(n={}){if(n instanceof Headers)return n;const e=new Headers;for(const[t,r]of Object.entries(n))if(r!==void 0){if(Array.isArray(r)){for(const s of r)e.append(t,String(s));continue}e.set(t,String(r));}return e}const S=new Set([101,204,205,304]);async function b(n,e){const t=new y,r=new w(t);t.url=e.url?.toString()||"/";let s;if(!t.url.startsWith("/")){const d=new URL(t.url);s=d.host,t.url=d.pathname+d.search+d.hash;}t.method=e.method||"GET",t.headers=R(e.headers||{}),t.headers.host||(t.headers.host=e.host||s||"localhost"),t.connection.encrypted=t.connection.encrypted||e.protocol==="https",t.body=e.body||null,t.__unenv__=e.context,await n(t,r);let a=r._data;(S.has(r.statusCode)||t.method.toUpperCase()==="HEAD")&&(a=null,delete r._headers["content-length"]);const u={status:r.statusCode,statusText:r.statusMessage,headers:r._headers,body:a};return t.destroy(),r.destroy(),u}async function C(n,e,t={}){try{const r=await b(n,{url:e,...t});return new Response(r.body,{status:r.status,statusText:r.statusText,headers:v(r.headers)})}catch(r){return new Response(r.toString(),{status:Number.parseInt(r.statusCode||r.code)||500,statusText:r.statusText})}}
1170
+ function o(n){throw new Error(`${n} is not implemented yet!`)}let i$1 = class i extends EventEmitter{__unenv__={};readableEncoding=null;readableEnded=true;readableFlowing=false;readableHighWaterMark=0;readableLength=0;readableObjectMode=false;readableAborted=false;readableDidRead=false;closed=false;errored=null;readable=false;destroyed=false;static from(e,t){return new i(t)}constructor(e){super();}_read(e){}read(e){}setEncoding(e){return this}pause(){return this}resume(){return this}isPaused(){return true}unpipe(e){return this}unshift(e,t){}wrap(e){return this}push(e,t){return false}_destroy(e,t){this.removeAllListeners();}destroy(e){return this.destroyed=true,this._destroy(e),this}pipe(e,t){return {}}compose(e,t){throw new Error("Method not implemented.")}[Symbol.asyncDispose](){return this.destroy(),Promise.resolve()}async*[Symbol.asyncIterator](){throw o("Readable.asyncIterator")}iterator(e){throw o("Readable.iterator")}map(e,t){throw o("Readable.map")}filter(e,t){throw o("Readable.filter")}forEach(e,t){throw o("Readable.forEach")}reduce(e,t,r){throw o("Readable.reduce")}find(e,t){throw o("Readable.find")}findIndex(e,t){throw o("Readable.findIndex")}some(e,t){throw o("Readable.some")}toArray(e){throw o("Readable.toArray")}every(e,t){throw o("Readable.every")}flatMap(e,t){throw o("Readable.flatMap")}drop(e,t){throw o("Readable.drop")}take(e,t){throw o("Readable.take")}asIndexedPairs(e){throw o("Readable.asIndexedPairs")}};let l$1 = class l extends EventEmitter{__unenv__={};writable=true;writableEnded=false;writableFinished=false;writableHighWaterMark=0;writableLength=0;writableObjectMode=false;writableCorked=0;closed=false;errored=null;writableNeedDrain=false;writableAborted=false;destroyed=false;_data;_encoding="utf8";constructor(e){super();}pipe(e,t){return {}}_write(e,t,r){if(this.writableEnded){r&&r();return}if(this._data===void 0)this._data=e;else {const s=typeof this._data=="string"?Buffer$1.from(this._data,this._encoding||t||"utf8"):this._data,a=typeof e=="string"?Buffer$1.from(e,t||this._encoding||"utf8"):e;this._data=Buffer$1.concat([s,a]);}this._encoding=t,r&&r();}_writev(e,t){}_destroy(e,t){}_final(e){}write(e,t,r){const s=typeof t=="string"?this._encoding:"utf8",a=typeof t=="function"?t:typeof r=="function"?r:void 0;return this._write(e,s,a),true}setDefaultEncoding(e){return this}end(e,t,r){const s=typeof e=="function"?e:typeof t=="function"?t:typeof r=="function"?r:void 0;if(this.writableEnded)return s&&s(),this;const a=e===s?void 0:e;if(a){const u=t===s?void 0:t;this.write(a,u);}return this.writableEnded=true,this.writableFinished=true,this.emit("close"),this.emit("finish"),s&&s(),this}cork(){}uncork(){}destroy(e){return this.destroyed=true,delete this._data,this.removeAllListeners(),this}compose(e,t){throw new Error("Method not implemented.")}[Symbol.asyncDispose](){return Promise.resolve()}};const c$1=class c{allowHalfOpen=true;_destroy;constructor(e=new i$1,t=new l$1){Object.assign(this,e),Object.assign(this,t),this._destroy=m(e._destroy,t._destroy);}};function _(){return Object.assign(c$1.prototype,i$1.prototype),Object.assign(c$1.prototype,l$1.prototype),c$1}function m(...n){return function(...e){for(const t of n)t(...e);}}const g$t=_();class A extends g$t{__unenv__={};bufferSize=0;bytesRead=0;bytesWritten=0;connecting=false;destroyed=false;pending=false;localAddress="";localPort=0;remoteAddress="";remoteFamily="";remotePort=0;autoSelectFamilyAttemptedAddresses=[];readyState="readOnly";constructor(e){super();}write(e,t,r){return false}connect(e,t,r){return this}end(e,t,r){return this}setEncoding(e){return this}pause(){return this}resume(){return this}setTimeout(e,t){return this}setNoDelay(e){return this}setKeepAlive(e,t){return this}address(){return {}}unref(){return this}ref(){return this}destroySoon(){this.destroy();}resetAndDestroy(){const e=new Error("ERR_SOCKET_CLOSED");return e.code="ERR_SOCKET_CLOSED",this.destroy(e),this}}class y extends i$1{aborted=false;httpVersion="1.1";httpVersionMajor=1;httpVersionMinor=1;complete=true;connection;socket;headers={};trailers={};method="GET";url="/";statusCode=200;statusMessage="";closed=false;errored=null;readable=false;constructor(e){super(),this.socket=this.connection=e||new A;}get rawHeaders(){const e=this.headers,t=[];for(const r in e)if(Array.isArray(e[r]))for(const s of e[r])t.push(r,s);else t.push(r,e[r]);return t}get rawTrailers(){return []}setTimeout(e,t){return this}get headersDistinct(){return p$1(this.headers)}get trailersDistinct(){return p$1(this.trailers)}}function p$1(n){const e={};for(const[t,r]of Object.entries(n))t&&(e[t]=(Array.isArray(r)?r:[r]).filter(Boolean));return e}class w extends l$1{statusCode=200;statusMessage="";upgrading=false;chunkedEncoding=false;shouldKeepAlive=false;useChunkedEncodingByDefault=false;sendDate=false;finished=false;headersSent=false;strictContentLength=false;connection=null;socket=null;req;_headers={};constructor(e){super(),this.req=e;}assignSocket(e){e._httpMessage=this,this.socket=e,this.connection=e,this.emit("socket",e),this._flush();}_flush(){this.flushHeaders();}detachSocket(e){}writeContinue(e){}writeHead(e,t,r){e&&(this.statusCode=e),typeof t=="string"&&(this.statusMessage=t,t=void 0);const s=r||t;if(s&&!Array.isArray(s))for(const a in s)this.setHeader(a,s[a]);return this.headersSent=true,this}writeProcessing(){}setTimeout(e,t){return this}appendHeader(e,t){e=e.toLowerCase();const r=this._headers[e],s=[...Array.isArray(r)?r:[r],...Array.isArray(t)?t:[t]].filter(Boolean);return this._headers[e]=s.length>1?s:s[0],this}setHeader(e,t){return this._headers[e.toLowerCase()]=t,this}setHeaders(e){for(const[t,r]of Object.entries(e))this.setHeader(t,r);return this}getHeader(e){return this._headers[e.toLowerCase()]}getHeaders(){return this._headers}getHeaderNames(){return Object.keys(this._headers)}hasHeader(e){return e.toLowerCase()in this._headers}removeHeader(e){delete this._headers[e.toLowerCase()];}addTrailers(e){}flushHeaders(){}writeEarlyHints(e,t){typeof t=="function"&&t();}}const E=(()=>{const n=function(){};return n.prototype=Object.create(null),n})();function R(n={}){const e=new E,t=Array.isArray(n)||H(n)?n:Object.entries(n);for(const[r,s]of t)if(s){if(e[r]===void 0){e[r]=s;continue}e[r]=[...Array.isArray(e[r])?e[r]:[e[r]],...Array.isArray(s)?s:[s]];}return e}function H(n){return typeof n?.entries=="function"}function v(n={}){if(n instanceof Headers)return n;const e=new Headers;for(const[t,r]of Object.entries(n))if(r!==void 0){if(Array.isArray(r)){for(const s of r)e.append(t,String(s));continue}e.set(t,String(r));}return e}const S=new Set([101,204,205,304]);async function b(n,e){const t=new y,r=new w(t);t.url=e.url?.toString()||"/";let s;if(!t.url.startsWith("/")){const d=new URL(t.url);s=d.host,t.url=d.pathname+d.search+d.hash;}t.method=e.method||"GET",t.headers=R(e.headers||{}),t.headers.host||(t.headers.host=e.host||s||"localhost"),t.connection.encrypted=t.connection.encrypted||e.protocol==="https",t.body=e.body||null,t.__unenv__=e.context,await n(t,r);let a=r._data;(S.has(r.statusCode)||t.method.toUpperCase()==="HEAD")&&(a=null,delete r._headers["content-length"]);const u={status:r.statusCode,statusText:r.statusMessage,headers:r._headers,body:a};return t.destroy(),r.destroy(),u}async function C(n,e,t={}){try{const r=await b(n,{url:e,...t});return new Response(r.body,{status:r.status,statusText:r.statusText,headers:v(r.headers)})}catch(r){return new Response(r.toString(),{status:Number.parseInt(r.statusCode||r.code)||500,statusText:r.statusText})}}
1171
1171
 
1172
1172
  function hasProp(obj, prop) {
1173
1173
  try {
@@ -5106,7 +5106,7 @@ function _expandFromEnv(value) {
5106
5106
  const _inlineRuntimeConfig = {
5107
5107
  "app": {
5108
5108
  "baseURL": "/",
5109
- "buildId": "23c30854-f9e1-4651-bc3a-b695ef5faca4",
5109
+ "buildId": "cf0a8831-4514-493d-ad5a-4e371a089ef9",
5110
5110
  "buildAssetsDir": "/_nuxt/",
5111
5111
  "cdnURL": ""
5112
5112
  },
@@ -5136,7 +5136,7 @@ const _inlineRuntimeConfig = {
5136
5136
  "public": {
5137
5137
  "appName": "AgentWorkShop",
5138
5138
  "appTitle": "AgentWorkShop",
5139
- "version": "0.7.14",
5139
+ "version": "0.7.16",
5140
5140
  "description": "基于 Nuxt 4 的配置驱动运行范式",
5141
5141
  "mode": "dev",
5142
5142
  "apiBase": "/api",
@@ -6596,7 +6596,7 @@ function hostLoggerFallback() {
6596
6596
  return globalThis.__awPluginHost?.logger ?? console
6597
6597
  }
6598
6598
 
6599
- const g$r = globalThis;
6599
+ const g$s = globalThis;
6600
6600
 
6601
6601
  function log$t() {
6602
6602
  return {
@@ -6671,7 +6671,7 @@ function discoverPluginDirs(cwd = process.cwd()) {
6671
6671
  * 装载插件宿主(idempotent;nitro 启动期调用一次)。
6672
6672
  */
6673
6673
  async function initPluginHost({ cwd = process.cwd(), packageRoot } = {}) {
6674
- if (g$r.__awPluginHost) return g$r.__awPluginHost
6674
+ if (g$s.__awPluginHost) return g$s.__awPluginHost
6675
6675
  const logger = log$t();
6676
6676
  const homeDir = modePaths(cwd).homeDir;
6677
6677
  const host = {
@@ -6689,7 +6689,7 @@ async function initPluginHost({ cwd = process.cwd(), packageRoot } = {}) {
6689
6689
  packageRoot,
6690
6690
  logger,
6691
6691
  };
6692
- g$r.__awPluginHost = host;
6692
+ g$s.__awPluginHost = host;
6693
6693
 
6694
6694
  // 有效配置(只读面;引擎/模式解析从运行根动态加载)
6695
6695
  let config = null;
@@ -7004,32 +7004,32 @@ function ensureStateWatcher(host) {
7004
7004
 
7005
7005
  /** 单例访问(未初始化返回 null —— 桥接点据此快速 no-op) */
7006
7006
  function getPluginHost() {
7007
- return g$r.__awPluginHost ?? null
7007
+ return g$s.__awPluginHost ?? null
7008
7008
  }
7009
7009
 
7010
7010
  /** scene-events 桥:全部无频道实时事件 → 插件 event:<type> */
7011
7011
  function emitPluginEvent(type, payload) {
7012
- void g$r.__awPluginHost?.bus.emit(`event:${type}`, payload);
7012
+ void g$s.__awPluginHost?.bus.emit(`event:${type}`, payload);
7013
7013
  }
7014
7014
 
7015
7015
  /** DAQ 下发级采样钩子(与 WS daq.reading 同点、同节拍语义) */
7016
7016
  function emitDaqSample(payload) {
7017
- void g$r.__awPluginHost?.bus.emit('daq:sample', payload);
7017
+ void g$s.__awPluginHost?.bus.emit('daq:sample', payload);
7018
7018
  }
7019
7019
 
7020
7020
  /** 帧观察钩子(v2 多形态信号;载荷只含元数据/指标/预览,不含 blob) */
7021
7021
  function emitDaqFrame(payload) {
7022
- void g$r.__awPluginHost?.bus.emit('daq:frame', payload);
7022
+ void g$s.__awPluginHost?.bus.emit('daq:frame', payload);
7023
7023
  }
7024
7024
 
7025
7025
  /** 写控 ACK 后观察钩子 */
7026
7026
  function emitDcwWrite(payload) {
7027
- void g$r.__awPluginHost?.bus.emit('dcw:write', payload);
7027
+ void g$s.__awPluginHost?.bus.emit('dcw:write', payload);
7028
7028
  }
7029
7029
 
7030
7030
  /** 产线启停钩子 */
7031
7031
  function emitLineLifecycle(kind, payload) {
7032
- void g$r.__awPluginHost?.bus.emit(kind, payload);
7032
+ void g$s.__awPluginHost?.bus.emit(kind, payload);
7033
7033
  }
7034
7034
 
7035
7035
  /** 客户端脚本读取(免鉴权只读端点用;越界路径拒绝) */
@@ -7098,10 +7098,10 @@ const host = /*#__PURE__*/Object.freeze(/*#__PURE__*/Object.defineProperty({
7098
7098
  }, Symbol.toStringTag, { value: 'Module' }));
7099
7099
 
7100
7100
  const AEP_VERSION$1 = 1;
7101
- const g$q = globalThis;
7101
+ const g$r = globalThis;
7102
7102
  function peers() {
7103
7103
  var _a;
7104
- return (_a = g$q.__sceneEventPeers) != null ? _a : g$q.__sceneEventPeers = /* @__PURE__ */ new Set();
7104
+ return (_a = g$r.__sceneEventPeers) != null ? _a : g$r.__sceneEventPeers = /* @__PURE__ */ new Set();
7105
7105
  }
7106
7106
  function setPeerVisibleLines(peer, visible) {
7107
7107
  peer.__awVisibleLines = visible;
@@ -7160,13 +7160,13 @@ const sceneEvents = /*#__PURE__*/Object.freeze(/*#__PURE__*/Object.definePropert
7160
7160
  unregisterScenePeer: unregisterScenePeer
7161
7161
  }, Symbol.toStringTag, { value: 'Module' }));
7162
7162
 
7163
- const g$p = globalThis;
7163
+ const g$q = globalThis;
7164
7164
  function bindOpsRepos(repos) {
7165
- g$p.__opsRepos = repos;
7165
+ g$q.__opsRepos = repos;
7166
7166
  }
7167
7167
  function getOps() {
7168
7168
  var _a;
7169
- return (_a = g$p.__opsRepos) != null ? _a : null;
7169
+ return (_a = g$q.__opsRepos) != null ? _a : null;
7170
7170
  }
7171
7171
  function audit(entry) {
7172
7172
  var _a;
@@ -7913,10 +7913,10 @@ const settings = /*#__PURE__*/Object.freeze(/*#__PURE__*/Object.defineProperty({
7913
7913
  workshopSettings: workshopSettings
7914
7914
  }, Symbol.toStringTag, { value: 'Module' }));
7915
7915
 
7916
- const g$o = globalThis;
7916
+ const g$p = globalThis;
7917
7917
  function registry$3() {
7918
7918
  var _a;
7919
- return (_a = g$o.__awBackupRegistry) != null ? _a : g$o.__awBackupRegistry = /* @__PURE__ */ new Map();
7919
+ return (_a = g$p.__awBackupRegistry) != null ? _a : g$p.__awBackupRegistry = /* @__PURE__ */ new Map();
7920
7920
  }
7921
7921
  const backupRegistry = {
7922
7922
  /** 打开点登记主连接(key = resolve 后的库文件路径) */
@@ -7931,7 +7931,7 @@ const backupRegistry = {
7931
7931
  }
7932
7932
  };
7933
7933
 
7934
- const g$n = globalThis;
7934
+ const g$o = globalThis;
7935
7935
  const DB_FILES = ["workshop.sqlite", "users.sqlite", "daq-timeseries.sqlite"];
7936
7936
  async function backupOne(src, target) {
7937
7937
  const db = backupRegistry.get(src);
@@ -7979,13 +7979,13 @@ async function backupOnce(dataDir) {
7979
7979
  }
7980
7980
  }
7981
7981
  console.log("[backup] \u5FEB\u7167\u5B8C\u6210 \u2192", backupDir);
7982
- g$n.__awBackupLastAt = (/* @__PURE__ */ new Date()).toISOString();
7982
+ g$o.__awBackupLastAt = (/* @__PURE__ */ new Date()).toISOString();
7983
7983
  }
7984
7984
  function backupPlugin() {
7985
7985
  var _a, _b;
7986
7986
  const backupCfg = backupSettings();
7987
7987
  if (backupCfg.disabled) return;
7988
- if (g$n.__awBackupTimer) return;
7988
+ if (g$o.__awBackupTimer) return;
7989
7989
  const dataDir = ensureDataDir();
7990
7990
  const first = setTimeout(() => {
7991
7991
  try {
@@ -8004,7 +8004,7 @@ function backupPlugin() {
8004
8004
  });
8005
8005
  }, hours * 36e5);
8006
8006
  (_b = timer.unref) == null ? void 0 : _b.call(timer);
8007
- g$n.__awBackupTimer = timer;
8007
+ g$o.__awBackupTimer = timer;
8008
8008
  }
8009
8009
 
8010
8010
  const LEVELS = { debug: 10, info: 20, warn: 30, error: 40 };
@@ -8051,10 +8051,10 @@ function createLogger(scope) {
8051
8051
 
8052
8052
  const log$s = createLogger("daq.infra");
8053
8053
  const execFileAsync = promisify(execFile);
8054
- const g$m = globalThis;
8054
+ const g$n = globalThis;
8055
8055
  function state$1() {
8056
8056
  var _a;
8057
- return (_a = g$m.__daqInfra) != null ? _a : g$m.__daqInfra = {
8057
+ return (_a = g$n.__daqInfra) != null ? _a : g$n.__daqInfra = {
8058
8058
  cfg: { startInfrastructure: "auto", mqtt: { host: "127.0.0.1", port: 1883 }, timescale: { host: "127.0.0.1", port: 5432, user: "postgres", password: "awshop", database: "awshop" } },
8059
8059
  status: { mqttOnline: false, tsdbOnline: false, objectStoreOnline: false, degraded: true, warning: "", startedBy: "none", lastCheckAt: (/* @__PURE__ */ new Date()).toISOString() }
8060
8060
  };
@@ -8739,7 +8739,7 @@ function tsToMs(v) {
8739
8739
  }
8740
8740
 
8741
8741
  const log$q = createLogger("daq.tsdb");
8742
- const g$l = globalThis;
8742
+ const g$m = globalThis;
8743
8743
  function makeFallback$1(reason) {
8744
8744
  const dev = new SqliteTimeSeriesAdapter();
8745
8745
  dev.init();
@@ -8748,7 +8748,7 @@ function makeFallback$1(reason) {
8748
8748
  }
8749
8749
  const tsdbReady = (() => {
8750
8750
  var _a;
8751
- const st = (_a = g$l.__daqTsdbState) != null ? _a : g$l.__daqTsdbState = {};
8751
+ const st = (_a = g$m.__daqTsdbState) != null ? _a : g$m.__daqTsdbState = {};
8752
8752
  if (!st.current) {
8753
8753
  const url = process.env.DAQ_TSDB_URL;
8754
8754
  if (!url) {
@@ -8762,8 +8762,8 @@ const tsdbReady = (() => {
8762
8762
  () => log$q.info("[daq-tsdb] TimescaleDB \u5C31\u7EEA:", url.replace(/\/\/[^@]*@/, "//***@")),
8763
8763
  (err) => {
8764
8764
  var _a2;
8765
- if (((_a2 = g$l.__daqTsdbState) == null ? void 0 : _a2.current) === adapter) {
8766
- g$l.__daqTsdbState.current = makeFallback$1(err instanceof Error ? err.message : String(err));
8765
+ if (((_a2 = g$m.__daqTsdbState) == null ? void 0 : _a2.current) === adapter) {
8766
+ g$m.__daqTsdbState.current = makeFallback$1(err instanceof Error ? err.message : String(err));
8767
8767
  }
8768
8768
  }
8769
8769
  );
@@ -8773,7 +8773,7 @@ const tsdbReady = (() => {
8773
8773
  })();
8774
8774
  function getTsdb() {
8775
8775
  var _a;
8776
- const st = (_a = g$l.__daqTsdbState) != null ? _a : g$l.__daqTsdbState = {};
8776
+ const st = (_a = g$m.__daqTsdbState) != null ? _a : g$m.__daqTsdbState = {};
8777
8777
  let cur = st.current;
8778
8778
  if (!cur) {
8779
8779
  cur = new SqliteTimeSeriesAdapter();
@@ -8785,7 +8785,7 @@ function getTsdb() {
8785
8785
  }
8786
8786
  async function rebuildTsdb(online, url) {
8787
8787
  var _a, _b, _c;
8788
- const st = (_a = g$l.__daqTsdbState) != null ? _a : g$l.__daqTsdbState = {};
8788
+ const st = (_a = g$m.__daqTsdbState) != null ? _a : g$m.__daqTsdbState = {};
8789
8789
  const swap = (next) => {
8790
8790
  var _a2;
8791
8791
  const old = st.current;
@@ -8899,7 +8899,7 @@ class MinioObjectAdapter {
8899
8899
  }
8900
8900
 
8901
8901
  const log$p = createLogger("daq.objectstore");
8902
- const g$k = globalThis;
8902
+ const g$l = globalThis;
8903
8903
  function parseObjectStoreUrl(url) {
8904
8904
  try {
8905
8905
  const u = new URL(url);
@@ -8923,7 +8923,7 @@ function makeFallback(reason) {
8923
8923
  }
8924
8924
  function getObjectStore() {
8925
8925
  var _a;
8926
- const st = (_a = g$k.__daqObjectStoreState) != null ? _a : g$k.__daqObjectStoreState = {};
8926
+ const st = (_a = g$l.__daqObjectStoreState) != null ? _a : g$l.__daqObjectStoreState = {};
8927
8927
  let cur = st.current;
8928
8928
  if (!cur) {
8929
8929
  cur = new DiskObjectAdapter();
@@ -8935,7 +8935,7 @@ function getObjectStore() {
8935
8935
  }
8936
8936
  async function rebuildObjectStore(online, url) {
8937
8937
  var _a, _b, _c;
8938
- const st = (_a = g$k.__daqObjectStoreState) != null ? _a : g$k.__daqObjectStoreState = {};
8938
+ const st = (_a = g$l.__daqObjectStoreState) != null ? _a : g$l.__daqObjectStoreState = {};
8939
8939
  const swap = (next) => {
8940
8940
  var _a2;
8941
8941
  const old = st.current;
@@ -9130,37 +9130,37 @@ class MqttQueueAdapter {
9130
9130
  }
9131
9131
 
9132
9132
  const log$m = createLogger("daq.queue");
9133
- const g$j = globalThis;
9133
+ const g$k = globalThis;
9134
9134
  async function getDaqQueue() {
9135
- if (!g$j.__daqQueue) {
9136
- g$j.__daqQueue = new InProcQueueAdapter();
9137
- await g$j.__daqQueue.init();
9135
+ if (!g$k.__daqQueue) {
9136
+ g$k.__daqQueue = new InProcQueueAdapter();
9137
+ await g$k.__daqQueue.init();
9138
9138
  log$m.info("[daq-queue] \u8FDB\u7A0B\u5185 mock \u961F\u5217\u5C31\u7EEA(\u542F\u52A8\u63D2\u4EF6\u5C06\u6309 infra \u72B6\u6001\u88C5\u914D MQTT)");
9139
9139
  }
9140
- return g$j.__daqQueue;
9140
+ return g$k.__daqQueue;
9141
9141
  }
9142
9142
  async function rebuildDaqQueue(online, url) {
9143
9143
  var _a, _b, _c;
9144
- await ((_b = (_a = g$j.__daqQueue) == null ? void 0 : _a.close) == null ? void 0 : _b.call(_a));
9144
+ await ((_b = (_a = g$k.__daqQueue) == null ? void 0 : _a.close) == null ? void 0 : _b.call(_a));
9145
9145
  if (!online || !url) {
9146
- if (((_c = g$j.__daqQueue) == null ? void 0 : _c.backend) !== "inproc") {
9147
- g$j.__daqQueue = new InProcQueueAdapter();
9148
- await g$j.__daqQueue.init();
9146
+ if (((_c = g$k.__daqQueue) == null ? void 0 : _c.backend) !== "inproc") {
9147
+ g$k.__daqQueue = new InProcQueueAdapter();
9148
+ await g$k.__daqQueue.init();
9149
9149
  log$m.warn("[daq-queue] \u964D\u7EA7\u8FDB\u7A0B\u5185\u961F\u5217");
9150
9150
  }
9151
- return g$j.__daqQueue;
9151
+ return g$k.__daqQueue;
9152
9152
  }
9153
9153
  try {
9154
9154
  const adapter = new MqttQueueAdapter(url);
9155
9155
  await adapter.init();
9156
- g$j.__daqQueue = adapter;
9156
+ g$k.__daqQueue = adapter;
9157
9157
  log$m.info("[daq-queue] MQTT \u961F\u5217\u5C31\u7EEA:", url);
9158
9158
  return adapter;
9159
9159
  } catch (err) {
9160
9160
  log$m.error("[daq-queue] MQTT \u521D\u59CB\u5316\u5931\u8D25,\u56DE\u9000\u8FDB\u7A0B\u5185\u961F\u5217:", err instanceof Error ? err.message : err);
9161
- g$j.__daqQueue = new InProcQueueAdapter();
9162
- await g$j.__daqQueue.init();
9163
- return g$j.__daqQueue;
9161
+ g$k.__daqQueue = new InProcQueueAdapter();
9162
+ await g$k.__daqQueue.init();
9163
+ return g$k.__daqQueue;
9164
9164
  }
9165
9165
  }
9166
9166
 
@@ -9718,10 +9718,10 @@ const hashPhase = (id) => {
9718
9718
  for (const c of id) h = (h * 31 + c.charCodeAt(0)) % 628;
9719
9719
  return h;
9720
9720
  };
9721
- const g$i = globalThis;
9721
+ const g$j = globalThis;
9722
9722
  function mockStates() {
9723
9723
  var _a2;
9724
- return (_a2 = g$i.__daqMockStates) != null ? _a2 : g$i.__daqMockStates = /* @__PURE__ */ new Map();
9724
+ return (_a2 = g$j.__daqMockStates) != null ? _a2 : g$j.__daqMockStates = /* @__PURE__ */ new Map();
9725
9725
  }
9726
9726
  const mockDaqDriver = {
9727
9727
  kind: "mock",
@@ -9821,15 +9821,36 @@ function evictModbusConn(cfg, transport = "tcp") {
9821
9821
  function withModbusConn(conn, fn) {
9822
9822
  conn.pending++;
9823
9823
  const run = conn.tail.then(() => fn(), () => fn());
9824
- conn.tail = run.then(
9824
+ let timer;
9825
+ let dead = false;
9826
+ const guarded = Promise.race([
9827
+ run,
9828
+ new Promise((_, rej) => {
9829
+ timer = setTimeout(() => {
9830
+ dead = true;
9831
+ try {
9832
+ void conn.client.close();
9833
+ } catch {
9834
+ }
9835
+ rej(new Error("Modbus \u54CD\u5E94\u8D85\u65F6(3s)\u2014\u2014\u8FDE\u63A5\u53EF\u80FD\u534A\u5F00,\u5DF2\u4F5C\u5E9F\u91CD\u8FDE"));
9836
+ }, 3e3);
9837
+ })
9838
+ ]);
9839
+ void guarded.catch(() => {
9840
+ });
9841
+ conn.tail = guarded.then(
9825
9842
  () => {
9843
+ clearTimeout(timer);
9826
9844
  conn.pending--;
9827
9845
  },
9828
9846
  () => {
9847
+ clearTimeout(timer);
9829
9848
  conn.pending--;
9830
9849
  }
9831
- );
9832
- return run;
9850
+ ).then(() => {
9851
+ if (dead) conn.tail = Promise.resolve();
9852
+ });
9853
+ return guarded;
9833
9854
  }
9834
9855
  function modbusKey(cfg, transport = "tcp") {
9835
9856
  var _a2, _b2;
@@ -10635,11 +10656,11 @@ class DaqTemplateRegistry {
10635
10656
  }
10636
10657
  }
10637
10658
  }
10638
- const g$h = globalThis;
10659
+ const g$i = globalThis;
10639
10660
  function getDaqTemplateRegistry() {
10640
10661
  var _a;
10641
- (_a = g$h.__daqTemplateRegistry) != null ? _a : g$h.__daqTemplateRegistry = new DaqTemplateRegistry();
10642
- return g$h.__daqTemplateRegistry;
10662
+ (_a = g$i.__daqTemplateRegistry) != null ? _a : g$i.__daqTemplateRegistry = new DaqTemplateRegistry();
10663
+ return g$i.__daqTemplateRegistry;
10643
10664
  }
10644
10665
  function listDaqTemplates() {
10645
10666
  return getDaqTemplateRegistry().all();
@@ -11078,13 +11099,13 @@ const daqNode_repo = /*#__PURE__*/Object.freeze(/*#__PURE__*/Object.defineProper
11078
11099
  getDaqNodeRepo: getDaqNodeRepo
11079
11100
  }, Symbol.toStringTag, { value: 'Module' }));
11080
11101
 
11081
- const g$g = globalThis;
11102
+ const g$h = globalThis;
11082
11103
  function bindDaqHostPorts(ports) {
11083
- g$g.__daqHostPorts = ports;
11104
+ g$h.__daqHostPorts = ports;
11084
11105
  }
11085
11106
  function getDaqHostPorts() {
11086
11107
  var _a;
11087
- return (_a = g$g.__daqHostPorts) != null ? _a : null;
11108
+ return (_a = g$h.__daqHostPorts) != null ? _a : null;
11088
11109
  }
11089
11110
 
11090
11111
  const log$i = createLogger("daq.frames");
@@ -11222,10 +11243,10 @@ const qualityGate = {
11222
11243
  }
11223
11244
  };
11224
11245
  const builtin = new Map([resample, deriveMetric, zones, thumbnail, qualityGate].map((p) => [p.name, p]));
11225
- const g$f = globalThis;
11246
+ const g$g = globalThis;
11226
11247
  function registry$2() {
11227
11248
  var _a;
11228
- return (_a = g$f.__daqFrameProcessors) != null ? _a : g$f.__daqFrameProcessors = /* @__PURE__ */ new Map();
11249
+ return (_a = g$g.__daqFrameProcessors) != null ? _a : g$g.__daqFrameProcessors = /* @__PURE__ */ new Map();
11229
11250
  }
11230
11251
  function registerFrameProcessor(p) {
11231
11252
  if (builtin.has(p.name)) log$i.warn(`[daq-frames] \u63D2\u4EF6\u5904\u7406\u5668\u8986\u76D6\u5185\u7F6E:\u300C${p.name}\u300D`);
@@ -11261,7 +11282,7 @@ function daqObjectKey(nodeId, tsMs, ext) {
11261
11282
 
11262
11283
  const RETRIES = 3;
11263
11284
  const ESCALATE_SWEEP_MS = 6e4;
11264
- const g$e = globalThis;
11285
+ const g$f = globalThis;
11265
11286
  async function postWebhook(payload, url) {
11266
11287
  var _a, _b;
11267
11288
  try {
@@ -11300,7 +11321,7 @@ function notifyAlarm(payload) {
11300
11321
  }
11301
11322
  function startAlarmEscalator() {
11302
11323
  var _a;
11303
- if (g$e.__awAlarmEscalator) return;
11324
+ if (g$f.__awAlarmEscalator) return;
11304
11325
  const escalateMin = Math.max(1, daqRuntimeSettings().alarmEscalateMinutes);
11305
11326
  const timer = setInterval(() => {
11306
11327
  var _a2;
@@ -11327,7 +11348,7 @@ function startAlarmEscalator() {
11327
11348
  }
11328
11349
  }, ESCALATE_SWEEP_MS);
11329
11350
  (_a = timer.unref) == null ? void 0 : _a.call(timer);
11330
- g$e.__awAlarmEscalator = timer;
11351
+ g$f.__awAlarmEscalator = timer;
11331
11352
  }
11332
11353
  function newAlarmId() {
11333
11354
  return `al-${randomUUID$1().slice(0, 8)}`;
@@ -12213,7 +12234,7 @@ class DaqController {
12213
12234
  this.syncRuntimes();
12214
12235
  }
12215
12236
  }
12216
- const g$d = globalThis;
12237
+ const g$e = globalThis;
12217
12238
  let g_queueBackend = "inproc";
12218
12239
  function g_queueLost() {
12219
12240
  var _a;
@@ -12222,8 +12243,8 @@ function g_queueLost() {
12222
12243
  }
12223
12244
  function getDaqController() {
12224
12245
  var _a;
12225
- (_a = g$d.__daqController) != null ? _a : g$d.__daqController = new DaqController();
12226
- return g$d.__daqController;
12246
+ (_a = g$e.__daqController) != null ? _a : g$e.__daqController = new DaqController();
12247
+ return g$e.__daqController;
12227
12248
  }
12228
12249
  function bindDaqBroadcast(fn) {
12229
12250
  getDaqController().setBroadcast(fn);
@@ -12370,7 +12391,7 @@ function runRetentionSweep(db) {
12370
12391
  return out;
12371
12392
  }
12372
12393
 
12373
- const g$c = globalThis;
12394
+ const g$d = globalThis;
12374
12395
  function sweepOnce(dataDir) {
12375
12396
  const dbPath = resolve$1(dataDir, "workshop.sqlite");
12376
12397
  if (!existsSync(dbPath)) return;
@@ -12388,7 +12409,7 @@ function sweepOnce(dataDir) {
12388
12409
  function retentionPlugin() {
12389
12410
  var _a, _b;
12390
12411
  if (retentionSettings().disabled) return;
12391
- if (g$c.__awRetentionTimer) return;
12412
+ if (g$d.__awRetentionTimer) return;
12392
12413
  const dataDir = ensureDataDir();
12393
12414
  const first = setTimeout(() => {
12394
12415
  try {
@@ -12406,7 +12427,7 @@ function retentionPlugin() {
12406
12427
  }
12407
12428
  }, 24 * 36e5);
12408
12429
  (_b = timer.unref) == null ? void 0 : _b.call(timer);
12409
- g$c.__awRetentionTimer = timer;
12430
+ g$d.__awRetentionTimer = timer;
12410
12431
  }
12411
12432
 
12412
12433
  const KNOWN_DEFAULT_PASSWORDS = /* @__PURE__ */ new Set([
@@ -14594,17 +14615,34 @@ class HitlRegistryService {
14594
14615
  }
14595
14616
  }
14596
14617
  }
14597
- const g$b = globalThis;
14618
+ const g$c = globalThis;
14598
14619
  function getHitlRegistry() {
14599
14620
  var _a;
14600
- (_a = g$b.__hitlRegistry) != null ? _a : g$b.__hitlRegistry = new HitlRegistryService();
14601
- return g$b.__hitlRegistry;
14621
+ (_a = g$c.__hitlRegistry) != null ? _a : g$c.__hitlRegistry = new HitlRegistryService();
14622
+ return g$c.__hitlRegistry;
14602
14623
  }
14603
14624
  const configureHitlResolver = (fn) => getHitlRegistry().configureResolver(fn);
14604
14625
  function subscribeHitlEvents(channelId, fn) {
14605
14626
  return getHitlRegistry().subscribe(channelId, fn);
14606
14627
  }
14607
14628
 
14629
+ const g$b = globalThis;
14630
+ function configureAgentBadgeResolver(fn) {
14631
+ g$b.__awBadgeResolver = fn;
14632
+ }
14633
+ function agentBadge(agentId) {
14634
+ var _a, _b;
14635
+ try {
14636
+ return (_b = (_a = g$b.__awBadgeResolver) == null ? void 0 : _a.call(g$b, agentId)) != null ? _b : null;
14637
+ } catch {
14638
+ return null;
14639
+ }
14640
+ }
14641
+ function agentBadgeLabel(agentId) {
14642
+ const b = agentBadge(agentId);
14643
+ return b ? `${b.channelName}/${b.name}` : agentId;
14644
+ }
14645
+
14608
14646
  const DB_PATH$6 = join(ensureDataDir(), "users.sqlite");
14609
14647
  const SCHEMA_SQL = `
14610
14648
  CREATE TABLE IF NOT EXISTS users (
@@ -19527,7 +19565,7 @@ class RecipeRollBackManager {
19527
19565
  return record.status === "open" && Date.now() - Date.parse(record.setAt) > OPEN_RECORD_STALE_MS();
19528
19566
  }
19529
19567
  judge(recordId, verdict, reason, by, actor, opts) {
19530
- var _a, _b, _c, _d, _e;
19568
+ var _a, _b, _c, _d, _e, _f;
19531
19569
  const record = this.repo.byId(recordId);
19532
19570
  if (!record)
19533
19571
  throw new AppError(404, ErrorCodes.NOT_FOUND, `\u4F18\u5316\u8BB0\u5F55\u4E0D\u5B58\u5728: ${recordId}`);
@@ -19544,16 +19582,16 @@ class RecipeRollBackManager {
19544
19582
  this.emit("judged", record);
19545
19583
  recordOps({
19546
19584
  actor,
19547
- actorName: actor,
19585
+ actorName: (_b = opts == null ? void 0 : opts.actorName) != null ? _b : actor,
19548
19586
  actorKind: by,
19549
19587
  action: "optimization.judge",
19550
19588
  kind: "rollback",
19551
19589
  targetKind: "optimization",
19552
19590
  targetId: recordId,
19553
- summary: `${by === "agent" ? "Agent" : by === "user" ? "\u4EBA\u5DE5" : "\u7CFB\u7EDF"}\u5224\u5B9A ${(_b = record.nodeName) != null ? _b : record.nodeId} \u2192 ${verdict}:${reason.slice(0, 80)}`,
19554
- lineId: (_c = record.lineId) != null ? _c : "",
19555
- recipeId: (_d = record.recipeId) != null ? _d : "",
19556
- detail: { verdict, reason, takeover: (_e = opts == null ? void 0 : opts.takeover) != null ? _e : false }
19591
+ summary: `${by === "agent" ? "Agent" : by === "user" ? "\u4EBA\u5DE5" : "\u7CFB\u7EDF"}\u5224\u5B9A ${(_c = record.nodeName) != null ? _c : record.nodeId} \u2192 ${verdict}:${reason.slice(0, 80)}`,
19592
+ lineId: (_d = record.lineId) != null ? _d : "",
19593
+ recipeId: (_e = record.recipeId) != null ? _e : "",
19594
+ detail: { verdict, reason, takeover: (_f = opts == null ? void 0 : opts.takeover) != null ? _f : false }
19557
19595
  });
19558
19596
  return record;
19559
19597
  }
@@ -19561,7 +19599,7 @@ class RecipeRollBackManager {
19561
19599
  // 分级回退(全部经 controller.write 单点;动态 import 防循环)
19562
19600
  // ================================================================
19563
19601
  /** 回退一条优化记录:目标 = 该记录的 from 值(设定前基线) */
19564
- async rollbackRecord(recordId, actor, by, approvalId) {
19602
+ async rollbackRecord(recordId, actor, by, approvalId, opts) {
19565
19603
  var _a;
19566
19604
  const record = this.repo.byId(recordId);
19567
19605
  if (!record)
@@ -19571,10 +19609,10 @@ class RecipeRollBackManager {
19571
19609
  throw new AppError(409, ErrorCodes.CONFLICT, `\u8BB0\u5F55 ${recordId} \u65E0\u57FA\u7EBF\u503C(\u9996\u5199\u65E0 prevValue),\u65E0\u6CD5\u56DE\u9000`);
19572
19610
  if (by === "agent")
19573
19611
  this.checkRollbackAllowed(record.nodeId);
19574
- return this.executeRollbackWrite(record, from, actor, approvalId, void 0, by);
19612
+ return this.executeRollbackWrite(record, from, actor, approvalId, void 0, by, opts == null ? void 0 : opts.actorName);
19575
19613
  }
19576
19614
  /** 节点级单步回退:目标 = 最近稳定锚的 prevValue(撤销栈栈顶) */
19577
- async rollbackNode(nodeId, actor, by, toAnchorId) {
19615
+ async rollbackNode(nodeId, actor, by, toAnchorId, opts) {
19578
19616
  const node = getDcwNodeRepo().byId(nodeId);
19579
19617
  if (!node)
19580
19618
  throw new AppError(404, ErrorCodes.NOT_FOUND, `\u63A7\u5236\u8282\u70B9\u4E0D\u5B58\u5728: ${nodeId}`);
@@ -19597,7 +19635,8 @@ class RecipeRollBackManager {
19597
19635
  actor,
19598
19636
  void 0,
19599
19637
  toAnchorId,
19600
- by
19638
+ by,
19639
+ opts == null ? void 0 : opts.actorName
19601
19640
  );
19602
19641
  }
19603
19642
  /** 批次级回退:恢复该 run 涉及节点在 run.startedAt 之前的值(撤销这次实验) */
@@ -19648,7 +19687,7 @@ class RecipeRollBackManager {
19648
19687
  /** 判定回退的执行入口:关闭原记录(rolled-back)+ 反向下发产生新回退记录。
19649
19688
  * 状态语义:'rolled-back' 只在回读校验通过后落定;下发期间先置 'judged'(防 afterWrite 误 supersede),
19650
19689
  * 下发失败则如实停在 'judged' 并把失败原因写进 judge.reason。 */
19651
- async executeRollbackWrite(record, target, actor, approvalId, toAnchorId, by = "system") {
19690
+ async executeRollbackWrite(record, target, actor, approvalId, toAnchorId, by = "system", actorName) {
19652
19691
  var _a, _b, _c, _d;
19653
19692
  const orig = this.repo.byId(record.id);
19654
19693
  const wasOpen = (orig == null ? void 0 : orig.status) === "open";
@@ -19679,7 +19718,7 @@ class RecipeRollBackManager {
19679
19718
  this.emit("rolled-back", orig);
19680
19719
  recordOps({
19681
19720
  actor,
19682
- actorName: actor,
19721
+ actorName: actorName != null ? actorName : actor,
19683
19722
  actorKind: by === "agent" ? "agent" : by === "user" ? "user" : "system",
19684
19723
  action: "optimization.rollback",
19685
19724
  kind: "rollback",
@@ -20994,7 +21033,11 @@ ${insights.join("\n")}` : "";
20994
21033
  4. \u6539\u52A8\u8BBE\u5B9A\u540E\u7B49\u5F85\u5DE5\u827A\u54CD\u5E94(\u70ED\u60EF\u6027/\u4F20\u52A8\u60EF\u91CF)\u518D\u8BC4\u4F30,\u907F\u514D\u8FDE\u7EED\u5927\u5E45\u8C03\u6574\u3002
20995
21034
  5. \u8C03\u63A7\u95ED\u73AF:\u6BCF\u6B21\u4E0B\u53D1\u81EA\u52A8\u5F00\u4E00\u6761\u4F18\u5316\u8BB0\u5F55(open);\u89C2\u5BDF\u6570\u91C7\u540E\u7528 dcw_judge \u843D\u5224\u5B9A(keep/rollback/uncertain);
20996
21035
  \u5224 rollback \u540E\u7528 dcw_rollback \u6267\u884C\u56DE\u9000;dcw_journal \u53EF\u67E5\u8282\u70B9\u53C2\u6570\u53D8\u66F4\u53F2\u3002\u672A\u5224\u5B9A\u524D\u518D\u4E0B\u53D1,\u65E7\u8BB0\u5F55\u4F1A\u88AB\u6807\u8BB0 superseded\u3002
20997
- \u82E5\u8282\u70B9\u88AB\u4ED6\u4EBA\u7684 open \u8BB0\u5F55\u963B\u585E(\u5BF9\u65B9\u5DF2\u6D88\u5931),\u8D85\u65F6(30 \u5206\u949F)\u540E\u4F60\u53EF\u63A5\u7BA1:dcw_judge \u4F1A\u5E26\u63A5\u7BA1\u6807\u8BB0\u5165\u518C\u3002`
21036
+ \u82E5\u8282\u70B9\u88AB\u4ED6\u4EBA\u7684 open \u8BB0\u5F55\u963B\u585E(\u5BF9\u65B9\u5DF2\u6D88\u5931),\u8D85\u65F6(30 \u5206\u949F)\u540E\u4F60\u53EF\u63A5\u7BA1:dcw_judge \u4F1A\u5E26\u63A5\u7BA1\u6807\u8BB0\u5165\u518C\u3002
21037
+ 6. \u81EA\u67E5\u9762:ops_log \u67E5\u4F60\u8D1F\u8D23\u4EA7\u7EBF\u7684\u8FD0\u7EF4\u65E5\u5FD7(\u8C01/\u4F55\u65F6\u505A\u4E86\u4EC0\u4E48,\u6765\u6E90\u533A\u5206 Agent/\u7528\u6237/\u7CFB\u7EDF;
21038
+ \u53C2\u6570 line_id/node_id/kind/actor_kind/minutes/limit/mine);recipe_log \u67E5\u914D\u65B9\u4E0B\u53D1\u4E0E\u56DE\u9000\u5386\u53F2
21039
+ (recipe.apply/\u4F18\u5316\u5F00\u7A97/\u5224\u5B9A/\u56DE\u9000,\u53C2\u6570 line_id/recipe_id/minutes/limit)\u3002
21040
+ \u4F5C\u4E1A\u524D\u540E\u5404\u67E5\u4E00\u6B21,\u5373\u53EF\u5B8C\u6574\u77E5\u9053\u81EA\u5DF1\u4E0E\u56E2\u961F\u5BF9\u5F53\u524D\u8282\u70B9\u505A\u8FC7\u54EA\u4E9B\u64CD\u4F5C\u3001Recipe \u6709\u8FC7\u54EA\u4E9B\u53D8\u66F4\u3002`
20998
21041
  };
20999
21042
  }
21000
21043
  async function toolDcwControl(agentId, args) {
@@ -21040,6 +21083,8 @@ async function toolDcwControl(agentId, args) {
21040
21083
  const meta = {
21041
21084
  source: "agent",
21042
21085
  actor: agentId,
21086
+ // 人话操作者:「Channel名/成员名」——/logs 来源=Agent 与用户/系统操作可区分追溯
21087
+ actorName: agentBadgeLabel(agentId),
21043
21088
  taskId: args.task_id ? String(args.task_id) : void 0,
21044
21089
  hypothesis: args.hypothesis ? String(args.hypothesis) : ""
21045
21090
  };
@@ -21244,7 +21289,7 @@ async function toolDcwJudge(agentId, args) {
21244
21289
  return { text: `\u8BB0\u5F55 ${recordId} \u4E0D\u662F\u4F60\u53D1\u8D77\u7684\u4F18\u5316(\u53D1\u8D77\u8005:${(_d = record.agentId) != null ? _d : "\u7528\u6237"}),Agent \u4EC5\u53EF\u5224\u5B9A\u81EA\u5DF1\u7684\u8BB0\u5F55;\u4ED6\u4EBA\u8BB0\u5F55\u8BF7\u8BF7\u7528\u6237\u5728\u754C\u9762\u5224\u5B9A\u3002`, isError: true };
21245
21290
  try {
21246
21291
  const finalReason = takeover ? `[\u63A5\u7BA1\u5B64\u513F\u8BB0\u5F55,\u539F\u5C5E\u4E3B ${(_e = record.agentId) != null ? _e : "?"} \u8D85\u65F6\u672A\u5224\u5B9A] ${reason}` : reason;
21247
- const updated = rb.judge(recordId, verdict, finalReason, "agent", agentId, { takeover });
21292
+ const updated = rb.judge(recordId, verdict, finalReason, "agent", agentId, { takeover, actorName: agentBadgeLabel(agentId) });
21248
21293
  const next = verdict === "rollback" ? "\u5224\u5B9A\u5DF2\u5165\u518C;\u8BF7\u7ACB\u5373\u7528 dcw_rollback(record_id) \u6267\u884C\u56DE\u9000(\u5224\u5B9A\u4E0D\u81EA\u52A8\u6539 PLC)\u3002" : verdict === "keep" ? `\u5DF2\u5B9A\u6863\u4E3A\u5DF2\u9A8C\u8BC1\u7ECF\u9A8C${updated.recipeId ? "(\u914D\u65B9\u5DF2\u6807\u8BB0 lastGood)" : ""}\u3002` : "\u8BB0\u5F55\u4FDD\u6301 open,\u7EE7\u7EED\u89C2\u5BDF\u6216\u7B49\u4E0B\u6B21\u8BBE\u5B9A\u5173\u95ED\u3002";
21249
21294
  return { text: `\u5224\u5B9A\u5DF2\u5165\u518C:\u8BB0\u5F55 ${recordId} \u2192 ${verdict}(${reason})\u3002${next}` };
21250
21295
  } catch (err) {
@@ -21267,10 +21312,10 @@ async function toolDcwRollback(agentId, args) {
21267
21312
  const takeover = record.agentId !== agentId && rb.isStale(record);
21268
21313
  if (record.agentId !== agentId && !takeover)
21269
21314
  return { text: `\u8BB0\u5F55 ${recordId} \u4E0D\u662F\u4F60\u53D1\u8D77\u7684\u4F18\u5316(\u53D1\u8D77\u8005:${(_d = record.agentId) != null ? _d : "\u7528\u6237"}),\u56DE\u9000\u4ED6\u4EBA\u8BB0\u5F55\u8BF7\u8BF7\u7528\u6237\u5728\u6570\u91C7\u4E2D\u5FC3/\u4EA7\u7EBF\u8BE6\u60C5\u6267\u884C;\u82E5\u539F\u5C5E\u4E3B\u5DF2\u6D88\u5931(\u8D85\u65F6\u672A\u5224\u5B9A),\u53EF\u5148 dcw_judge \u63A5\u7BA1\u540E\u518D\u56DE\u9000\u3002`, isError: true };
21270
- const fresh2 = await rb.rollbackRecord(recordId, agentId, "agent");
21315
+ const fresh2 = await rb.rollbackRecord(recordId, agentId, "agent", void 0, { actorName: agentBadgeLabel(agentId) });
21271
21316
  return { text: `\u56DE\u9000\u5DF2\u6267\u884C:\u8BB0\u5F55 ${recordId} \u6807\u8BB0 rolled-back;\u4E0B\u53D1\u6062\u590D\u503C ${(_e = fresh2 == null ? void 0 : fresh2.params[0]) == null ? void 0 : _e.to}${"(\u4EE5\u56DE\u8BFB\u4E3A\u51C6)"};\u65B0\u56DE\u9000\u8BB0\u5F55 ${fresh2 == null ? void 0 : fresh2.id} \u5DF2\u5165\u518C\u3002\u8BF7 daq_query \u590D\u6D4B\u786E\u8BA4\u6062\u590D\u3002` };
21272
21317
  }
21273
- const fresh = await rb.rollbackNode(nodeId, agentId, "agent", to);
21318
+ const fresh = await rb.rollbackNode(nodeId, agentId, "agent", to, { actorName: agentBadgeLabel(agentId) });
21274
21319
  return { text: `\u8282\u70B9\u5355\u6B65\u56DE\u9000\u5DF2\u6267\u884C:\u6062\u590D\u5230\u6700\u8FD1\u7A33\u5B9A\u951A\u503C;\u65B0\u56DE\u9000\u8BB0\u5F55 ${fresh == null ? void 0 : fresh.id} \u5DF2\u5165\u518C\u3002\u8BF7 daq_query \u590D\u6D4B\u786E\u8BA4\u6062\u590D\u3002` };
21275
21320
  } catch (err) {
21276
21321
  const msg = err instanceof Error ? err.message : String(err);
@@ -21367,6 +21412,104 @@ ${sections.join("\n\n")}
21367
21412
 
21368
21413
  \u5411\u91CF=\u591A\u70B9\u5DE5\u7A0B\u91CF\u8F6E\u5ED3(\u5B8C\u6574\u70B9\u5217\u524D\u7AEF\u53EF\u67E5);\u56FE\u50CF=\u50CF\u7D20\u5728\u5BF9\u8C61\u5B58\u50A8,\u6307\u6807\u4F9B\u5224\u8BFB(brightness \u8FC7\u4F4E=\u66DD\u5149\u4E0D\u8DB3/\u906E\u6321)\u3002` };
21369
21414
  }
21415
+ function agentOpsScope(agentId) {
21416
+ const bindings = getAgentNodeBindingRepo().byAgent(agentId);
21417
+ if (bindings.length === 0) return null;
21418
+ const lineIds = /* @__PURE__ */ new Set();
21419
+ const nodeIds = /* @__PURE__ */ new Set();
21420
+ for (const b of bindings) {
21421
+ nodeIds.add(b.nodeId);
21422
+ try {
21423
+ const n = b.kind === "dcw" ? getDcwController().byId(b.nodeId) : getDaqNodeRepo().byId(b.nodeId);
21424
+ if (n == null ? void 0 : n.lineId) lineIds.add(n.lineId);
21425
+ } catch {
21426
+ }
21427
+ }
21428
+ return { lineIds: [...lineIds], nodeIds };
21429
+ }
21430
+ const OPS_ACTOR_LABEL = { agent: "Agent", user: "\u7528\u6237", system: "\u7CFB\u7EDF" };
21431
+ function fmtAuditAt(iso) {
21432
+ return iso.length >= 19 ? iso.slice(5, 19).replace("T", " ") : iso;
21433
+ }
21434
+ async function toolOpsLog(agentId, args) {
21435
+ var _a, _b, _c, _d, _e;
21436
+ const audit = (_a = getOps()) == null ? void 0 : _a.audit;
21437
+ if (!audit) return { text: "\u5BA1\u8BA1\u4ED3\u50A8\u672A\u88C5\u914D(\u670D\u52A1\u672A\u5C31\u7EEA),\u8BF7\u7A0D\u540E\u91CD\u8BD5\u3002", isError: true };
21438
+ const scope = agentOpsScope(agentId);
21439
+ if (!scope) return { text: "\u4F60\u5C1A\u672A\u7ED1\u5B9A\u4EFB\u4F55\u5DE5\u4E1A\u8282\u70B9,\u65E0\u65E5\u5FD7\u53EF\u67E5(\u65E5\u5FD7\u6743\u9650\u8DDF\u968F\u8282\u70B9\u7ED1\u5B9A)\u3002", isError: true };
21440
+ const nodeId = String((_b = args.node_id) != null ? _b : "").trim();
21441
+ const lineId = String((_c = args.line_id) != null ? _c : "").trim();
21442
+ if (nodeId && !scope.nodeIds.has(nodeId))
21443
+ return { text: `\u65E0\u6743\u67E5\u8BE2\u8282\u70B9 ${nodeId} \u7684\u65E5\u5FD7(\u4EC5\u53EF\u67E5\u81EA\u5DF1\u7ED1\u5B9A\u7684\u8282\u70B9;\u7528 my_industrial_nodes \u67E5\u770B\u7ED1\u5B9A)\u3002`, isError: true };
21444
+ if (lineId && !scope.lineIds.includes(lineId))
21445
+ return { text: `\u65E0\u6743\u67E5\u8BE2\u4EA7\u7EBF ${lineId} \u7684\u65E5\u5FD7(\u4F60\u7684\u8D1F\u8D23\u4EA7\u7EBF:${scope.lineIds.join(", ") || "(\u7ED1\u5B9A\u8282\u70B9\u5747\u672A\u5206\u914D\u4EA7\u7EBF)"})\u3002`, isError: true };
21446
+ const kind = String((_d = args.kind) != null ? _d : "").trim() || void 0;
21447
+ const actorKind = String((_e = args.actor_kind) != null ? _e : "").trim() || void 0;
21448
+ const mine = args.mine === true || args.mine === "true";
21449
+ const minutes = Number(args.minutes) || 1440;
21450
+ const limit = Math.min(Number(args.limit) || 20, 100);
21451
+ const from = new Date(Date.now() - minutes * 6e4).toISOString();
21452
+ const lines = lineId ? [lineId] : scope.lineIds;
21453
+ const byId = /* @__PURE__ */ new Map();
21454
+ for (const lid of lines) {
21455
+ for (const r of audit.query({ lineId: lid, kind, actorKind, actor: mine ? agentId : void 0, from, limit }))
21456
+ byId.set(String(r.id), r);
21457
+ }
21458
+ let rows = [...byId.values()];
21459
+ if (nodeId) rows = rows.filter((r) => r.targetId === nodeId);
21460
+ rows.sort((a, b) => String(b.at).localeCompare(String(a.at)));
21461
+ rows = rows.slice(0, limit);
21462
+ if (rows.length === 0) return { text: `\u7A97\u53E3(\u8FD1 ${minutes} \u5206\u949F)\u5185\u65E0\u5339\u914D\u65E5\u5FD7\u3002\u53EF\u8C03\u5927 minutes,\u6216\u653E\u5BBD kind/actor_kind/node_id \u8FC7\u6EE4\u3002` };
21463
+ const body = rows.map((r) => {
21464
+ var _a2;
21465
+ const src = (_a2 = OPS_ACTOR_LABEL[String(r.actorKind)]) != null ? _a2 : String(r.actorKind);
21466
+ return `- [${fmtAuditAt(String(r.at))}] \u6765\u6E90=${src} \u64CD\u4F5C\u8005=${String(r.actorName) || String(r.actor)} | ${String(r.action)} | ${String(r.summary)}`;
21467
+ });
21468
+ const scopeNote = lineId ? `\u4EA7\u7EBF ${lineId}` : `\u8D1F\u8D23\u4EA7\u7EBF ${scope.lineIds.length} \u6761`;
21469
+ return {
21470
+ text: `\u8FD0\u7EF4\u65E5\u5FD7(${scopeNote},\u8FD1 ${minutes} \u5206\u949F,${rows.length} \u6761,\u65B0\u2192\u65E7):
21471
+ ${body.join("\n")}
21472
+
21473
+ \u8BF4\u660E:\u6765\u6E90=Agent \u7684\u64CD\u4F5C\u8005\u683C\u5F0F\u4E3A\u300CChannel\u540D/\u6210\u5458\u540D\u300D;\u9700\u8981\u8282\u70B9\u7EA7\u53C2\u6570\u503C\u53D8\u66F4\u53F2\u7528 dcw_journal,\u914D\u65B9\u4E0B\u53D1/\u56DE\u9000\u4E13\u95E8\u89C6\u56FE\u7528 recipe_log\u3002`
21474
+ };
21475
+ }
21476
+ async function toolRecipeLog(agentId, args) {
21477
+ var _a, _b, _c;
21478
+ const audit = (_a = getOps()) == null ? void 0 : _a.audit;
21479
+ if (!audit) return { text: "\u5BA1\u8BA1\u4ED3\u50A8\u672A\u88C5\u914D(\u670D\u52A1\u672A\u5C31\u7EEA),\u8BF7\u7A0D\u540E\u91CD\u8BD5\u3002", isError: true };
21480
+ const scope = agentOpsScope(agentId);
21481
+ if (!scope) return { text: "\u4F60\u5C1A\u672A\u7ED1\u5B9A\u4EFB\u4F55\u5DE5\u4E1A\u8282\u70B9,\u65E0 Recipe \u5386\u53F2\u53EF\u67E5(\u6743\u9650\u8DDF\u968F\u8282\u70B9\u7ED1\u5B9A)\u3002", isError: true };
21482
+ const lineId = String((_b = args.line_id) != null ? _b : "").trim();
21483
+ if (lineId && !scope.lineIds.includes(lineId))
21484
+ return { text: `\u65E0\u6743\u67E5\u8BE2\u4EA7\u7EBF ${lineId} \u7684 Recipe \u5386\u53F2(\u4F60\u7684\u8D1F\u8D23\u4EA7\u7EBF:${scope.lineIds.join(", ") || "(\u65E0)"})\u3002`, isError: true };
21485
+ const recipeId = String((_c = args.recipe_id) != null ? _c : "").trim() || void 0;
21486
+ const minutes = Number(args.minutes) || 1440;
21487
+ const limit = Math.min(Number(args.limit) || 20, 100);
21488
+ const from = new Date(Date.now() - minutes * 6e4).toISOString();
21489
+ const lines = lineId ? [lineId] : scope.lineIds;
21490
+ const byId = /* @__PURE__ */ new Map();
21491
+ for (const lid of lines) {
21492
+ for (const kind of ["recipe", "rollback"]) {
21493
+ for (const r of audit.query({ lineId: lid, kind, recipeId, from, limit }))
21494
+ byId.set(String(r.id), r);
21495
+ }
21496
+ }
21497
+ const rows = [...byId.values()].sort((a, b) => String(b.at).localeCompare(String(a.at))).slice(0, limit);
21498
+ if (rows.length === 0) return { text: `\u7A97\u53E3(\u8FD1 ${minutes} \u5206\u949F)\u5185\u65E0\u914D\u65B9\u4E0B\u53D1/\u56DE\u9000\u8BB0\u5F55\u3002\u53EF\u8C03\u5927 minutes \u6216\u6362 line_id\u3002` };
21499
+ const body = rows.map((r) => {
21500
+ var _a2;
21501
+ const src = (_a2 = OPS_ACTOR_LABEL[String(r.actorKind)]) != null ? _a2 : String(r.actorKind);
21502
+ const action = String(r.action);
21503
+ const tag = action === "recipe.apply" ? "\u914D\u65B9\u4E0B\u53D1" : action === "optimization.open" ? "\u4F18\u5316\u5F00\u7A97" : action === "optimization.judge" ? "\u4F18\u5316\u5224\u5B9A" : action === "optimization.rollback" ? "\u56DE\u9000\u6267\u884C" : action;
21504
+ return `- [${fmtAuditAt(String(r.at))}] ${tag} \u6765\u6E90=${src} \u64CD\u4F5C\u8005=${String(r.actorName) || String(r.actor)} | ${String(r.summary)}${r.recipeId ? `(\u914D\u65B9 ${String(r.recipeId).slice(0, 8)})` : ""}`;
21505
+ });
21506
+ return {
21507
+ text: `Recipe \u53D8\u66F4\u53F2(${lineId ? `\u4EA7\u7EBF ${lineId}` : `\u8D1F\u8D23\u4EA7\u7EBF ${scope.lineIds.length} \u6761`},\u8FD1 ${minutes} \u5206\u949F,${rows.length} \u6761,\u65B0\u2192\u65E7):
21508
+ ${body.join("\n")}
21509
+
21510
+ \u8BF4\u660E:\u914D\u65B9\u4E0B\u53D1=\u6574\u6279\u53C2\u6570\u5199\u547D\u4EE4;\u4F18\u5316\u5F00\u7A97=\u5355\u6B21\u8BBE\u5B9A\u53D8\u66F4(\u542B Agent \u5047\u8BBE);\u56DE\u9000\u6267\u884C=\u5DF2\u6062\u590D\u57FA\u7EBF\u503C\u3002\u8282\u70B9\u7EA7\u53C2\u6570\u503C\u9010\u7B14\u5386\u53F2\u7528 dcw_journal(node_id)\u3002`
21511
+ };
21512
+ }
21370
21513
 
21371
21514
  const log$9 = createLogger("workshop.plugin-tools");
21372
21515
  const g = globalThis;
@@ -21532,6 +21675,10 @@ async function dispatchHostTool(ctx, req) {
21532
21675
  return toolDcwRollback(identity.agentId, args);
21533
21676
  case "dcw_journal":
21534
21677
  return toolDcwJournal(identity.agentId, args);
21678
+ case "ops_log":
21679
+ return toolOpsLog(identity.agentId, args);
21680
+ case "recipe_log":
21681
+ return toolRecipeLog(identity.agentId, args);
21535
21682
  }
21536
21683
  const ws = ctx.getWorkspace();
21537
21684
  if (!ws) {
@@ -21935,6 +22082,12 @@ ${lines.join("\n")}` };
21935
22082
  case "dcw_journal": {
21936
22083
  return toolDcwJournal(identity.agentId, args);
21937
22084
  }
22085
+ case "ops_log": {
22086
+ return toolOpsLog(identity.agentId, args);
22087
+ }
22088
+ case "recipe_log": {
22089
+ return toolRecipeLog(identity.agentId, args);
22090
+ }
21938
22091
  }
21939
22092
  return { text: `\u672A\u77E5\u5DE5\u5177: ${req.toolName}`, isError: true };
21940
22093
  } catch (err) {
@@ -30400,6 +30553,13 @@ function workshopPlugin(nitroApp) {
30400
30553
  const row = repos.channelAgents.findById(agentId);
30401
30554
  return row ? { channelId: row.channelId, agentName: row.name } : null;
30402
30555
  });
30556
+ configureAgentBadgeResolver((agentId) => {
30557
+ var _a;
30558
+ const row = repos.channelAgents.findById(agentId);
30559
+ if (!row) return null;
30560
+ const ch = repos.channels.findById(row.channelId);
30561
+ return { name: row.name, channelName: (_a = ch == null ? void 0 : ch.name) != null ? _a : row.channelId.slice(0, 8) };
30562
+ });
30403
30563
  manager.restore();
30404
30564
  void ensureAllEventRecorders(manager).catch((err) => console.error("[workshop] \u4E8B\u4EF6\u5F55\u5236\u5668\u521D\u59CB\u5316\u5931\u8D25:", err));
30405
30565
  const idleSweepMs = workshopSettings().idle_sweep_ms;
@@ -30437,1284 +30597,1284 @@ const assets = {
30437
30597
  "/_nuxt/-nb2uqVg.js": {
30438
30598
  "type": "text/javascript; charset=utf-8",
30439
30599
  "etag": "\"1d2b-jLwuC0KKuwuubw09IH7Tm1lfqoE\"",
30440
- "mtime": "2026-09-06T11:14:44.030Z",
30600
+ "mtime": "2026-09-06T13:58:23.612Z",
30441
30601
  "size": 7467,
30442
30602
  "path": "../public/_nuxt/-nb2uqVg.js"
30443
30603
  },
30444
- "/_nuxt/-6OnbLFb.js": {
30445
- "type": "text/javascript; charset=utf-8",
30446
- "etag": "\"1343-vdAf4w0aJYo+a7mW3u5aS6nVAXY\"",
30447
- "mtime": "2026-09-06T11:14:44.030Z",
30448
- "size": 4931,
30449
- "path": "../public/_nuxt/-6OnbLFb.js"
30450
- },
30451
- "/_nuxt/6vYobj4F.js": {
30452
- "type": "text/javascript; charset=utf-8",
30453
- "etag": "\"626-XI9KdnbsNv0FxC1h6cVurcJhbQI\"",
30454
- "mtime": "2026-09-06T11:14:44.030Z",
30455
- "size": 1574,
30456
- "path": "../public/_nuxt/6vYobj4F.js"
30457
- },
30458
30604
  "/_nuxt/36oeS8_R2.js": {
30459
30605
  "type": "text/javascript; charset=utf-8",
30460
30606
  "etag": "\"d6-9W7EHt23WjRGOYCN8bz9Yy0aMhg\"",
30461
- "mtime": "2026-09-06T11:14:44.030Z",
30607
+ "mtime": "2026-09-06T13:58:23.613Z",
30462
30608
  "size": 214,
30463
30609
  "path": "../public/_nuxt/36oeS8_R2.js"
30464
30610
  },
30611
+ "/_nuxt/-6OnbLFb.js": {
30612
+ "type": "text/javascript; charset=utf-8",
30613
+ "etag": "\"1343-vdAf4w0aJYo+a7mW3u5aS6nVAXY\"",
30614
+ "mtime": "2026-09-06T13:58:23.612Z",
30615
+ "size": 4931,
30616
+ "path": "../public/_nuxt/-6OnbLFb.js"
30617
+ },
30465
30618
  "/_nuxt/agents.CB9Ck7VQ.css": {
30466
30619
  "type": "text/css; charset=utf-8",
30467
30620
  "etag": "\"69c-0A32cPr+reF6RHF9gWukH5bYCzk\"",
30468
- "mtime": "2026-09-06T11:14:44.066Z",
30621
+ "mtime": "2026-09-06T13:58:23.638Z",
30469
30622
  "size": 1692,
30470
30623
  "path": "../public/_nuxt/agents.CB9Ck7VQ.css"
30471
30624
  },
30625
+ "/_nuxt/6vYobj4F.js": {
30626
+ "type": "text/javascript; charset=utf-8",
30627
+ "etag": "\"626-XI9KdnbsNv0FxC1h6cVurcJhbQI\"",
30628
+ "mtime": "2026-09-06T13:58:23.614Z",
30629
+ "size": 1574,
30630
+ "path": "../public/_nuxt/6vYobj4F.js"
30631
+ },
30472
30632
  "/_nuxt/arUY5dyq2.js": {
30473
30633
  "type": "text/javascript; charset=utf-8",
30474
30634
  "etag": "\"59f6-d7NzfWgWT2fTR2MXV0/3pKn7pms\"",
30475
- "mtime": "2026-09-06T11:14:44.059Z",
30635
+ "mtime": "2026-09-06T13:58:23.634Z",
30476
30636
  "size": 23030,
30477
30637
  "path": "../public/_nuxt/arUY5dyq2.js"
30478
30638
  },
30479
30639
  "/_nuxt/B3Psw_sL.js": {
30480
30640
  "type": "text/javascript; charset=utf-8",
30481
30641
  "etag": "\"35bb-+DrI8MnN/s50k/0E1BAPSxI6dg8\"",
30482
- "mtime": "2026-09-06T11:14:44.031Z",
30642
+ "mtime": "2026-09-06T13:58:23.614Z",
30483
30643
  "size": 13755,
30484
30644
  "path": "../public/_nuxt/B3Psw_sL.js"
30485
30645
  },
30486
30646
  "/_nuxt/B-xskWta.js": {
30487
30647
  "type": "text/javascript; charset=utf-8",
30488
30648
  "etag": "\"4842-u3DYd8BlLUn7q26s3PJm3Fvo+j4\"",
30489
- "mtime": "2026-09-06T11:14:44.031Z",
30649
+ "mtime": "2026-09-06T13:58:23.614Z",
30490
30650
  "size": 18498,
30491
30651
  "path": "../public/_nuxt/B-xskWta.js"
30492
30652
  },
30653
+ "/_nuxt/B53Mp7lD.js": {
30654
+ "type": "text/javascript; charset=utf-8",
30655
+ "etag": "\"4256-Pirq2khpmJQqhRxinPVbluoGfGI\"",
30656
+ "mtime": "2026-09-06T13:58:23.614Z",
30657
+ "size": 16982,
30658
+ "path": "../public/_nuxt/B53Mp7lD.js"
30659
+ },
30493
30660
  "/_nuxt/B5S_UyaC.js": {
30494
30661
  "type": "text/javascript; charset=utf-8",
30495
30662
  "etag": "\"2435-cVXb4Ze0vEZbXwWSHOgo7NJ59ME\"",
30496
- "mtime": "2026-09-06T11:14:44.032Z",
30663
+ "mtime": "2026-09-06T13:58:23.615Z",
30497
30664
  "size": 9269,
30498
30665
  "path": "../public/_nuxt/B5S_UyaC.js"
30499
30666
  },
30500
- "/_nuxt/B53Mp7lD.js": {
30667
+ "/_nuxt/bAFueD6a.js": {
30501
30668
  "type": "text/javascript; charset=utf-8",
30502
- "etag": "\"4256-Pirq2khpmJQqhRxinPVbluoGfGI\"",
30503
- "mtime": "2026-09-06T11:14:44.031Z",
30504
- "size": 16982,
30505
- "path": "../public/_nuxt/B53Mp7lD.js"
30669
+ "etag": "\"193d-ZYfa844YaFXfx11WB4DcqB3k/yo\"",
30670
+ "mtime": "2026-09-06T13:58:23.634Z",
30671
+ "size": 6461,
30672
+ "path": "../public/_nuxt/bAFueD6a.js"
30506
30673
  },
30507
30674
  "/_nuxt/B7wL3pDk.js": {
30508
30675
  "type": "text/javascript; charset=utf-8",
30509
30676
  "etag": "\"3d5-itnLaBVfNThToG43nVPq3jMDhq0\"",
30510
- "mtime": "2026-09-06T11:14:44.032Z",
30677
+ "mtime": "2026-09-06T13:58:23.615Z",
30511
30678
  "size": 981,
30512
30679
  "path": "../public/_nuxt/B7wL3pDk.js"
30513
30680
  },
30514
30681
  "/_nuxt/BBrRELH32.js": {
30515
30682
  "type": "text/javascript; charset=utf-8",
30516
30683
  "etag": "\"5bc-jGs6+2LpPidhbmCHZyKfmEWQxCI\"",
30517
- "mtime": "2026-09-06T11:14:44.032Z",
30684
+ "mtime": "2026-09-06T13:58:23.615Z",
30518
30685
  "size": 1468,
30519
30686
  "path": "../public/_nuxt/BBrRELH32.js"
30520
30687
  },
30521
- "/_nuxt/BBwMH_hG.js": {
30522
- "type": "text/javascript; charset=utf-8",
30523
- "etag": "\"587d-zV1IOugR08gc0LlOGMSClQfdApQ\"",
30524
- "mtime": "2026-09-06T11:14:44.032Z",
30525
- "size": 22653,
30526
- "path": "../public/_nuxt/BBwMH_hG.js"
30527
- },
30528
30688
  "/_nuxt/BbZAzXjZ2.js": {
30529
30689
  "type": "text/javascript; charset=utf-8",
30530
30690
  "etag": "\"14fe-0KLPumZNGMQ1C2rj5UA7kI1IBvY\"",
30531
- "mtime": "2026-09-06T11:14:44.036Z",
30691
+ "mtime": "2026-09-06T13:58:23.618Z",
30532
30692
  "size": 5374,
30533
30693
  "path": "../public/_nuxt/BbZAzXjZ2.js"
30534
30694
  },
30535
- "/_nuxt/bAFueD6a.js": {
30536
- "type": "text/javascript; charset=utf-8",
30537
- "etag": "\"193d-ZYfa844YaFXfx11WB4DcqB3k/yo\"",
30538
- "mtime": "2026-09-06T11:14:44.060Z",
30539
- "size": 6461,
30540
- "path": "../public/_nuxt/bAFueD6a.js"
30541
- },
30542
30695
  "/_nuxt/BcrN7QEl2.js": {
30543
30696
  "type": "text/javascript; charset=utf-8",
30544
30697
  "etag": "\"b14-CLdyddO7m6guAKfIeyReGHA6Jwg\"",
30545
- "mtime": "2026-09-06T11:14:44.037Z",
30698
+ "mtime": "2026-09-06T13:58:23.619Z",
30546
30699
  "size": 2836,
30547
30700
  "path": "../public/_nuxt/BcrN7QEl2.js"
30548
30701
  },
30549
- "/_nuxt/Bc3PiGGr.js": {
30550
- "type": "text/javascript; charset=utf-8",
30551
- "etag": "\"b0a6-an7ekHZpfAEw9EM+R3gB2d6eZHg\"",
30552
- "mtime": "2026-09-06T11:14:44.036Z",
30553
- "size": 45222,
30554
- "path": "../public/_nuxt/Bc3PiGGr.js"
30555
- },
30556
- "/_nuxt/BeIfu4N3.js": {
30702
+ "/_nuxt/BBwMH_hG.js": {
30557
30703
  "type": "text/javascript; charset=utf-8",
30558
- "etag": "\"bc89-neyoILuYLlrhO8n1ehz7UmvocMs\"",
30559
- "mtime": "2026-09-06T11:14:44.038Z",
30560
- "size": 48265,
30561
- "path": "../public/_nuxt/BeIfu4N3.js"
30704
+ "etag": "\"587d-zV1IOugR08gc0LlOGMSClQfdApQ\"",
30705
+ "mtime": "2026-09-06T13:58:23.615Z",
30706
+ "size": 22653,
30707
+ "path": "../public/_nuxt/BBwMH_hG.js"
30562
30708
  },
30563
30709
  "/_nuxt/BfGc7TJp.js": {
30564
30710
  "type": "text/javascript; charset=utf-8",
30565
30711
  "etag": "\"f5-ynAHqm+XhchZ1co7YynIGiIextg\"",
30566
- "mtime": "2026-09-06T11:14:44.038Z",
30712
+ "mtime": "2026-09-06T13:58:23.619Z",
30567
30713
  "size": 245,
30568
30714
  "path": "../public/_nuxt/BfGc7TJp.js"
30569
30715
  },
30716
+ "/_nuxt/Bc3PiGGr.js": {
30717
+ "type": "text/javascript; charset=utf-8",
30718
+ "etag": "\"b0a6-an7ekHZpfAEw9EM+R3gB2d6eZHg\"",
30719
+ "mtime": "2026-09-06T13:58:23.618Z",
30720
+ "size": 45222,
30721
+ "path": "../public/_nuxt/Bc3PiGGr.js"
30722
+ },
30570
30723
  "/_nuxt/BDUjyaF4.js": {
30571
30724
  "type": "text/javascript; charset=utf-8",
30572
30725
  "etag": "\"12149-hpS4uBcTVyjMF/ahBrfPvWSV6dM\"",
30573
- "mtime": "2026-09-06T11:14:44.033Z",
30726
+ "mtime": "2026-09-06T13:58:23.615Z",
30574
30727
  "size": 74057,
30575
30728
  "path": "../public/_nuxt/BDUjyaF4.js"
30576
30729
  },
30730
+ "/_nuxt/BeIfu4N3.js": {
30731
+ "type": "text/javascript; charset=utf-8",
30732
+ "etag": "\"bc89-neyoILuYLlrhO8n1ehz7UmvocMs\"",
30733
+ "mtime": "2026-09-06T13:58:23.619Z",
30734
+ "size": 48265,
30735
+ "path": "../public/_nuxt/BeIfu4N3.js"
30736
+ },
30577
30737
  "/_nuxt/Bmpvki7M.js": {
30578
30738
  "type": "text/javascript; charset=utf-8",
30579
30739
  "etag": "\"623-ghkdDMae0RDQxJr6vx8je/qPTRs\"",
30580
- "mtime": "2026-09-06T11:14:44.039Z",
30740
+ "mtime": "2026-09-06T13:58:23.620Z",
30581
30741
  "size": 1571,
30582
30742
  "path": "../public/_nuxt/Bmpvki7M.js"
30583
30743
  },
30584
30744
  "/_nuxt/BgOhoDTI.js": {
30585
30745
  "type": "text/javascript; charset=utf-8",
30586
30746
  "etag": "\"2543-qvpXnC+y5grUwUw+mC7meP0i3EA\"",
30587
- "mtime": "2026-09-06T11:14:44.038Z",
30747
+ "mtime": "2026-09-06T13:58:23.619Z",
30588
30748
  "size": 9539,
30589
30749
  "path": "../public/_nuxt/BgOhoDTI.js"
30590
30750
  },
30591
30751
  "/_nuxt/BFjGV-RV2.js": {
30592
30752
  "type": "text/javascript; charset=utf-8",
30593
30753
  "etag": "\"a0340-NzvTqyczSJgnuw9pjPQnLX42sAE\"",
30594
- "mtime": "2026-09-06T11:14:44.033Z",
30754
+ "mtime": "2026-09-06T13:58:23.616Z",
30595
30755
  "size": 656192,
30596
30756
  "path": "../public/_nuxt/BFjGV-RV2.js"
30597
30757
  },
30598
30758
  "/_nuxt/BGkumHZ32.js": {
30599
30759
  "type": "text/javascript; charset=utf-8",
30600
30760
  "etag": "\"14a0a8-FkCiOKvl5+p8em/4UNCrmbDN4qY\"",
30601
- "mtime": "2026-09-06T11:14:44.034Z",
30761
+ "mtime": "2026-09-06T13:58:23.616Z",
30602
30762
  "size": 1351848,
30603
30763
  "path": "../public/_nuxt/BGkumHZ32.js"
30604
30764
  },
30605
30765
  "/_nuxt/BNXfwXpE.js": {
30606
30766
  "type": "text/javascript; charset=utf-8",
30607
30767
  "etag": "\"30a-SKr3Bmmq+lyC2EG7XQ/M7P1jWog\"",
30608
- "mtime": "2026-09-06T11:14:44.034Z",
30768
+ "mtime": "2026-09-06T13:58:23.617Z",
30609
30769
  "size": 778,
30610
30770
  "path": "../public/_nuxt/BNXfwXpE.js"
30611
30771
  },
30612
30772
  "/_nuxt/BN_PdN3J.js": {
30613
30773
  "type": "text/javascript; charset=utf-8",
30614
30774
  "etag": "\"10b9b-D693oquQMdJ9uX8C5GEOl79xXOE\"",
30615
- "mtime": "2026-09-06T11:14:44.035Z",
30775
+ "mtime": "2026-09-06T13:58:23.617Z",
30616
30776
  "size": 68507,
30617
30777
  "path": "../public/_nuxt/BN_PdN3J.js"
30618
30778
  },
30619
30779
  "/_nuxt/Bp5luxkg2.js": {
30620
30780
  "type": "text/javascript; charset=utf-8",
30621
30781
  "etag": "\"3a06-wE6nRVKQRjsGzClNYT0f+LE6/Lg\"",
30622
- "mtime": "2026-09-06T11:14:44.039Z",
30782
+ "mtime": "2026-09-06T13:58:23.620Z",
30623
30783
  "size": 14854,
30624
30784
  "path": "../public/_nuxt/Bp5luxkg2.js"
30625
30785
  },
30786
+ "/_nuxt/BSSUlJnx2.js": {
30787
+ "type": "text/javascript; charset=utf-8",
30788
+ "etag": "\"5f5-t0OMayeEXY7fEaFUOlppJZZQvtM\"",
30789
+ "mtime": "2026-09-06T13:58:23.617Z",
30790
+ "size": 1525,
30791
+ "path": "../public/_nuxt/BSSUlJnx2.js"
30792
+ },
30626
30793
  "/_nuxt/BSCpFtzG.js": {
30627
30794
  "type": "text/javascript; charset=utf-8",
30628
30795
  "etag": "\"13398-3vxX1fQrPyVWKnXsEX5bmCpF/Eg\"",
30629
- "mtime": "2026-09-06T11:14:44.035Z",
30796
+ "mtime": "2026-09-06T13:58:23.617Z",
30630
30797
  "size": 78744,
30631
30798
  "path": "../public/_nuxt/BSCpFtzG.js"
30632
30799
  },
30800
+ "/_nuxt/BxPPAkGA.js": {
30801
+ "type": "text/javascript; charset=utf-8",
30802
+ "etag": "\"7ebd-9b4xLtZRNbmB3J2esDdIp2+t5sk\"",
30803
+ "mtime": "2026-09-06T13:58:23.620Z",
30804
+ "size": 32445,
30805
+ "path": "../public/_nuxt/BxPPAkGA.js"
30806
+ },
30633
30807
  "/_nuxt/BxtpDtzC.js": {
30634
30808
  "type": "text/javascript; charset=utf-8",
30635
30809
  "etag": "\"3348-NKn0ndcjz+XrgOw2f4HZ7I2TF34\"",
30636
- "mtime": "2026-09-06T11:14:44.040Z",
30810
+ "mtime": "2026-09-06T13:58:23.621Z",
30637
30811
  "size": 13128,
30638
30812
  "path": "../public/_nuxt/BxtpDtzC.js"
30639
30813
  },
30814
+ "/_nuxt/BytVi9VX2.js": {
30815
+ "type": "text/javascript; charset=utf-8",
30816
+ "etag": "\"8b9-SsapD0I/64H+tosN0JmRWjisTd0\"",
30817
+ "mtime": "2026-09-06T13:58:23.621Z",
30818
+ "size": 2233,
30819
+ "path": "../public/_nuxt/BytVi9VX2.js"
30820
+ },
30821
+ "/_nuxt/BZGNTgTQ2.js": {
30822
+ "type": "text/javascript; charset=utf-8",
30823
+ "etag": "\"53-pfqlZiZJEbPiLoDxP0PLfz2Ucmw\"",
30824
+ "mtime": "2026-09-06T13:58:23.618Z",
30825
+ "size": 83,
30826
+ "path": "../public/_nuxt/BZGNTgTQ2.js"
30827
+ },
30640
30828
  "/_nuxt/BUcmySDa2.js": {
30641
30829
  "type": "text/javascript; charset=utf-8",
30642
30830
  "etag": "\"1d27c-MrwgQiovFUP0UVtMJ1LdEF/IrEs\"",
30643
- "mtime": "2026-09-06T11:14:44.036Z",
30831
+ "mtime": "2026-09-06T13:58:23.617Z",
30644
30832
  "size": 119420,
30645
30833
  "path": "../public/_nuxt/BUcmySDa2.js"
30646
30834
  },
30647
- "/_nuxt/BxPPAkGA.js": {
30648
- "type": "text/javascript; charset=utf-8",
30649
- "etag": "\"7ebd-9b4xLtZRNbmB3J2esDdIp2+t5sk\"",
30650
- "mtime": "2026-09-06T11:14:44.040Z",
30651
- "size": 32445,
30652
- "path": "../public/_nuxt/BxPPAkGA.js"
30653
- },
30654
30835
  "/_nuxt/BrIJiJSN.js": {
30655
30836
  "type": "text/javascript; charset=utf-8",
30656
30837
  "etag": "\"50eba-EQGueVrdlEzHO7oTVt2LPxnHgRo\"",
30657
- "mtime": "2026-09-06T11:14:44.040Z",
30838
+ "mtime": "2026-09-06T13:58:23.620Z",
30658
30839
  "size": 331450,
30659
30840
  "path": "../public/_nuxt/BrIJiJSN.js"
30660
30841
  },
30661
- "/_nuxt/BSSUlJnx2.js": {
30662
- "type": "text/javascript; charset=utf-8",
30663
- "etag": "\"5f5-t0OMayeEXY7fEaFUOlppJZZQvtM\"",
30664
- "mtime": "2026-09-06T11:14:44.035Z",
30665
- "size": 1525,
30666
- "path": "../public/_nuxt/BSSUlJnx2.js"
30667
- },
30668
- "/_nuxt/BZGNTgTQ2.js": {
30842
+ "/_nuxt/C4OAdbVK2.js": {
30669
30843
  "type": "text/javascript; charset=utf-8",
30670
- "etag": "\"53-pfqlZiZJEbPiLoDxP0PLfz2Ucmw\"",
30671
- "mtime": "2026-09-06T11:14:44.036Z",
30672
- "size": 83,
30673
- "path": "../public/_nuxt/BZGNTgTQ2.js"
30844
+ "etag": "\"89e-AQFf/aV6YnDPM3edZWc1ASPluno\"",
30845
+ "mtime": "2026-09-06T13:58:23.621Z",
30846
+ "size": 2206,
30847
+ "path": "../public/_nuxt/C4OAdbVK2.js"
30674
30848
  },
30675
- "/_nuxt/BytVi9VX2.js": {
30849
+ "/_nuxt/C9f8QMp12.js": {
30676
30850
  "type": "text/javascript; charset=utf-8",
30677
- "etag": "\"8b9-SsapD0I/64H+tosN0JmRWjisTd0\"",
30678
- "mtime": "2026-09-06T11:14:44.040Z",
30679
- "size": 2233,
30680
- "path": "../public/_nuxt/BytVi9VX2.js"
30851
+ "etag": "\"1896-VcRRXhZEm21djPt3FTvlq+iUccI\"",
30852
+ "mtime": "2026-09-06T13:58:23.622Z",
30853
+ "size": 6294,
30854
+ "path": "../public/_nuxt/C9f8QMp12.js"
30681
30855
  },
30682
30856
  "/_nuxt/C3tCneTM.js": {
30683
30857
  "type": "text/javascript; charset=utf-8",
30684
30858
  "etag": "\"56ab-/6Cr6erEwmZtrhutqEU3O5P+s0A\"",
30685
- "mtime": "2026-09-06T11:14:44.041Z",
30859
+ "mtime": "2026-09-06T13:58:23.621Z",
30686
30860
  "size": 22187,
30687
30861
  "path": "../public/_nuxt/C3tCneTM.js"
30688
30862
  },
30689
- "/_nuxt/C4OAdbVK2.js": {
30690
- "type": "text/javascript; charset=utf-8",
30691
- "etag": "\"89e-AQFf/aV6YnDPM3edZWc1ASPluno\"",
30692
- "mtime": "2026-09-06T11:14:44.041Z",
30693
- "size": 2206,
30694
- "path": "../public/_nuxt/C4OAdbVK2.js"
30695
- },
30696
30863
  "/_nuxt/C6m-kenn.js": {
30697
30864
  "type": "text/javascript; charset=utf-8",
30698
30865
  "etag": "\"3914-PeLFbXPWgKtw3N2Fy1E79JcHpLU\"",
30699
- "mtime": "2026-09-06T11:14:44.042Z",
30866
+ "mtime": "2026-09-06T13:58:23.622Z",
30700
30867
  "size": 14612,
30701
30868
  "path": "../public/_nuxt/C6m-kenn.js"
30702
30869
  },
30703
- "/_nuxt/C9f8QMp12.js": {
30704
- "type": "text/javascript; charset=utf-8",
30705
- "etag": "\"1896-VcRRXhZEm21djPt3FTvlq+iUccI\"",
30706
- "mtime": "2026-09-06T11:14:44.042Z",
30707
- "size": 6294,
30708
- "path": "../public/_nuxt/C9f8QMp12.js"
30709
- },
30710
30870
  "/_nuxt/CcwJ2mrD2.js": {
30711
30871
  "type": "text/javascript; charset=utf-8",
30712
30872
  "etag": "\"5792-PEWC62IL0fC62opbFHZ+I++wvbk\"",
30713
- "mtime": "2026-09-06T11:14:44.045Z",
30873
+ "mtime": "2026-09-06T13:58:23.623Z",
30714
30874
  "size": 22418,
30715
30875
  "path": "../public/_nuxt/CcwJ2mrD2.js"
30716
30876
  },
30717
30877
  "/_nuxt/CfVAr2nf.js": {
30718
30878
  "type": "text/javascript; charset=utf-8",
30719
30879
  "etag": "\"4e58-dM+JZz9VCHehIO2I74Q45dMOZ8s\"",
30720
- "mtime": "2026-09-06T11:14:44.045Z",
30880
+ "mtime": "2026-09-06T13:58:23.623Z",
30721
30881
  "size": 20056,
30722
30882
  "path": "../public/_nuxt/CfVAr2nf.js"
30723
30883
  },
30884
+ "/_nuxt/Cj6139IM.js": {
30885
+ "type": "text/javascript; charset=utf-8",
30886
+ "etag": "\"664-bB/MABMcuh9JMyKWxZJfgs5cTRI\"",
30887
+ "mtime": "2026-09-06T13:58:23.623Z",
30888
+ "size": 1636,
30889
+ "path": "../public/_nuxt/Cj6139IM.js"
30890
+ },
30724
30891
  "/_nuxt/channel-templates.C-M5nKcC.css": {
30725
30892
  "type": "text/css; charset=utf-8",
30726
30893
  "etag": "\"846-tzs5DYP5eAKLaZTF1ToNjvfm6T8\"",
30727
- "mtime": "2026-09-06T11:14:44.066Z",
30894
+ "mtime": "2026-09-06T13:58:23.638Z",
30728
30895
  "size": 2118,
30729
30896
  "path": "../public/_nuxt/channel-templates.C-M5nKcC.css"
30730
30897
  },
30731
- "/_nuxt/Cj6139IM.js": {
30898
+ "/_nuxt/Cno6kYiO.js": {
30732
30899
  "type": "text/javascript; charset=utf-8",
30733
- "etag": "\"664-bB/MABMcuh9JMyKWxZJfgs5cTRI\"",
30734
- "mtime": "2026-09-06T11:14:44.045Z",
30735
- "size": 1636,
30736
- "path": "../public/_nuxt/Cj6139IM.js"
30900
+ "etag": "\"f2-SIBAvqBfq2ENmoMT2zz03X9uJTg\"",
30901
+ "mtime": "2026-09-06T13:58:23.623Z",
30902
+ "size": 242,
30903
+ "path": "../public/_nuxt/Cno6kYiO.js"
30737
30904
  },
30738
30905
  "/_nuxt/CNs_Ozdc.js": {
30739
30906
  "type": "text/javascript; charset=utf-8",
30740
30907
  "etag": "\"1b-1MHUJYdBtOvbvPMaiQxDXp3lHyw\"",
30741
- "mtime": "2026-09-06T11:14:44.042Z",
30908
+ "mtime": "2026-09-06T13:58:23.622Z",
30742
30909
  "size": 27,
30743
30910
  "path": "../public/_nuxt/CNs_Ozdc.js"
30744
30911
  },
30745
30912
  "/_nuxt/CKfhtOt7.js": {
30746
30913
  "type": "text/javascript; charset=utf-8",
30747
30914
  "etag": "\"9141-NLArDp1lZISfBmTeNNW/SqVqPrc\"",
30748
- "mtime": "2026-09-06T11:14:44.042Z",
30915
+ "mtime": "2026-09-06T13:58:23.622Z",
30749
30916
  "size": 37185,
30750
30917
  "path": "../public/_nuxt/CKfhtOt7.js"
30751
30918
  },
30752
- "/_nuxt/Cno6kYiO.js": {
30753
- "type": "text/javascript; charset=utf-8",
30754
- "etag": "\"f2-SIBAvqBfq2ENmoMT2zz03X9uJTg\"",
30755
- "mtime": "2026-09-06T11:14:44.046Z",
30756
- "size": 242,
30757
- "path": "../public/_nuxt/Cno6kYiO.js"
30758
- },
30759
30919
  "/_nuxt/CD1SlCoI.js": {
30760
30920
  "type": "text/javascript; charset=utf-8",
30761
30921
  "etag": "\"3d056-fwhXseR+bCarFlzAUziw8KXr3nw\"",
30762
- "mtime": "2026-09-06T11:14:44.029Z",
30922
+ "mtime": "2026-09-06T13:58:23.612Z",
30763
30923
  "size": 249942,
30764
30924
  "path": "../public/_nuxt/CD1SlCoI.js"
30765
30925
  },
30766
30926
  "/_nuxt/Cor9siSf.js": {
30767
30927
  "type": "text/javascript; charset=utf-8",
30768
30928
  "etag": "\"469c-SAQlRrJexDg1WPypDeSp4i/c4PA\"",
30769
- "mtime": "2026-09-06T11:14:44.046Z",
30929
+ "mtime": "2026-09-06T13:58:23.624Z",
30770
30930
  "size": 18076,
30771
30931
  "path": "../public/_nuxt/Cor9siSf.js"
30772
30932
  },
30773
30933
  "/_nuxt/Cr9DkD1d.js": {
30774
30934
  "type": "text/javascript; charset=utf-8",
30775
30935
  "etag": "\"21d8-zHPTdwcKv7mfPkqpZs0DVnAYG64\"",
30776
- "mtime": "2026-09-06T11:14:44.047Z",
30936
+ "mtime": "2026-09-06T13:58:23.625Z",
30777
30937
  "size": 8664,
30778
30938
  "path": "../public/_nuxt/Cr9DkD1d.js"
30779
30939
  },
30780
30940
  "/_nuxt/CUXCQXjG.js": {
30781
30941
  "type": "text/javascript; charset=utf-8",
30782
30942
  "etag": "\"18b-4es6+sDUaYZ89sbvxGRBaXHox64\"",
30783
- "mtime": "2026-09-06T11:14:44.043Z",
30943
+ "mtime": "2026-09-06T13:58:23.623Z",
30784
30944
  "size": 395,
30785
30945
  "path": "../public/_nuxt/CUXCQXjG.js"
30786
30946
  },
30787
30947
  "/_nuxt/CWKEp1wx2.js": {
30788
30948
  "type": "text/javascript; charset=utf-8",
30789
30949
  "etag": "\"555-ED/tuOi0Qdk4aSGksbI58QY+vQ8\"",
30790
- "mtime": "2026-09-06T11:14:44.044Z",
30950
+ "mtime": "2026-09-06T13:58:23.623Z",
30791
30951
  "size": 1365,
30792
30952
  "path": "../public/_nuxt/CWKEp1wx2.js"
30793
30953
  },
30794
- "/_nuxt/CYBq3kS7.js": {
30795
- "type": "text/javascript; charset=utf-8",
30796
- "etag": "\"2775-i1CFUvMXIlrlQ4JmClzdu5uWkiM\"",
30797
- "mtime": "2026-09-06T11:14:44.044Z",
30798
- "size": 10101,
30799
- "path": "../public/_nuxt/CYBq3kS7.js"
30800
- },
30801
30954
  "/_nuxt/D-Ca4BGY.js": {
30802
30955
  "type": "text/javascript; charset=utf-8",
30803
30956
  "etag": "\"d322-Ji+xNrf2m+xWgNVNTGDuV7nAR7w\"",
30804
- "mtime": "2026-09-06T11:14:44.047Z",
30957
+ "mtime": "2026-09-06T13:58:23.625Z",
30805
30958
  "size": 54050,
30806
30959
  "path": "../public/_nuxt/D-Ca4BGY.js"
30807
30960
  },
30808
- "/_nuxt/D8CqF0yy.js": {
30961
+ "/_nuxt/CYBq3kS7.js": {
30809
30962
  "type": "text/javascript; charset=utf-8",
30810
- "etag": "\"1dae-DlKVVV+fkbaFtolHiRzBO1Gjw4s\"",
30811
- "mtime": "2026-09-06T11:14:44.048Z",
30812
- "size": 7598,
30813
- "path": "../public/_nuxt/D8CqF0yy.js"
30963
+ "etag": "\"2775-i1CFUvMXIlrlQ4JmClzdu5uWkiM\"",
30964
+ "mtime": "2026-09-06T13:58:23.623Z",
30965
+ "size": 10101,
30966
+ "path": "../public/_nuxt/CYBq3kS7.js"
30814
30967
  },
30815
30968
  "/_nuxt/D1z7i2UP.js": {
30816
30969
  "type": "text/javascript; charset=utf-8",
30817
30970
  "etag": "\"3488-96j3CtrX45ueUXO7o7l3+3rcKWk\"",
30818
- "mtime": "2026-09-06T11:14:44.048Z",
30971
+ "mtime": "2026-09-06T13:58:23.625Z",
30819
30972
  "size": 13448,
30820
30973
  "path": "../public/_nuxt/D1z7i2UP.js"
30821
30974
  },
30975
+ "/_nuxt/D8CqF0yy.js": {
30976
+ "type": "text/javascript; charset=utf-8",
30977
+ "etag": "\"1dae-DlKVVV+fkbaFtolHiRzBO1Gjw4s\"",
30978
+ "mtime": "2026-09-06T13:58:23.625Z",
30979
+ "size": 7598,
30980
+ "path": "../public/_nuxt/D8CqF0yy.js"
30981
+ },
30982
+ "/_nuxt/D95h62Jn.js": {
30983
+ "type": "text/javascript; charset=utf-8",
30984
+ "etag": "\"3f5-sTPqCSaAt8a9YlLXlhRfFlOtmcQ\"",
30985
+ "mtime": "2026-09-06T13:58:23.626Z",
30986
+ "size": 1013,
30987
+ "path": "../public/_nuxt/D95h62Jn.js"
30988
+ },
30822
30989
  "/_nuxt/DA4lxCWC2.js": {
30823
30990
  "type": "text/javascript; charset=utf-8",
30824
30991
  "etag": "\"1fd9-/rwkIG2tdN0ulOA/H0Hwh783NRw\"",
30825
- "mtime": "2026-09-06T11:14:44.049Z",
30992
+ "mtime": "2026-09-06T13:58:23.626Z",
30826
30993
  "size": 8153,
30827
30994
  "path": "../public/_nuxt/DA4lxCWC2.js"
30828
30995
  },
30829
30996
  "/_nuxt/DaE5saZg.js": {
30830
30997
  "type": "text/javascript; charset=utf-8",
30831
30998
  "etag": "\"3d8b-v1n7kg5KKx0NfcuzRjI3aHnlvfg\"",
30832
- "mtime": "2026-09-06T11:14:44.052Z",
30999
+ "mtime": "2026-09-06T13:58:23.630Z",
30833
31000
  "size": 15755,
30834
31001
  "path": "../public/_nuxt/DaE5saZg.js"
30835
31002
  },
30836
31003
  "/_nuxt/dcw.rpqpOYQ8.css": {
30837
31004
  "type": "text/css; charset=utf-8",
30838
31005
  "etag": "\"2608-O6LWPYmCVMPE4w9ov0f4xG4gJg0\"",
30839
- "mtime": "2026-09-06T11:14:44.067Z",
31006
+ "mtime": "2026-09-06T13:58:23.639Z",
30840
31007
  "size": 9736,
30841
31008
  "path": "../public/_nuxt/dcw.rpqpOYQ8.css"
30842
31009
  },
30843
- "/_nuxt/D95h62Jn.js": {
30844
- "type": "text/javascript; charset=utf-8",
30845
- "etag": "\"3f5-sTPqCSaAt8a9YlLXlhRfFlOtmcQ\"",
30846
- "mtime": "2026-09-06T11:14:44.048Z",
30847
- "size": 1013,
30848
- "path": "../public/_nuxt/D95h62Jn.js"
30849
- },
30850
31010
  "/_nuxt/default.BbgdTDCk.css": {
30851
31011
  "type": "text/css; charset=utf-8",
30852
31012
  "etag": "\"2f9e-FQsP/3guV1XWiRqjZyF0yxNKLkc\"",
30853
- "mtime": "2026-09-06T11:14:44.068Z",
31013
+ "mtime": "2026-09-06T13:58:23.639Z",
30854
31014
  "size": 12190,
30855
31015
  "path": "../public/_nuxt/default.BbgdTDCk.css"
30856
31016
  },
30857
31017
  "/_nuxt/daq.6IrhVVfy.css": {
30858
31018
  "type": "text/css; charset=utf-8",
30859
31019
  "etag": "\"560c-BXFIKD9bnWhTOZ8SzFFpfkMuNHU\"",
30860
- "mtime": "2026-09-06T11:14:44.066Z",
31020
+ "mtime": "2026-09-06T13:58:23.639Z",
30861
31021
  "size": 22028,
30862
31022
  "path": "../public/_nuxt/daq.6IrhVVfy.css"
30863
31023
  },
31024
+ "/_nuxt/DGVAuScD.js": {
31025
+ "type": "text/javascript; charset=utf-8",
31026
+ "etag": "\"2406-Rl28+ZIhsU/v1Eyz4qXOmudoZrU\"",
31027
+ "mtime": "2026-09-06T13:58:23.626Z",
31028
+ "size": 9222,
31029
+ "path": "../public/_nuxt/DGVAuScD.js"
31030
+ },
30864
31031
  "/_nuxt/DeYsUzhr.js": {
30865
31032
  "type": "text/javascript; charset=utf-8",
30866
31033
  "etag": "\"287-ALaKQkZWM37K7ru31bg511e8ikI\"",
30867
- "mtime": "2026-09-06T11:14:44.052Z",
31034
+ "mtime": "2026-09-06T13:58:23.630Z",
30868
31035
  "size": 647,
30869
31036
  "path": "../public/_nuxt/DeYsUzhr.js"
30870
31037
  },
30871
31038
  "/_nuxt/DIOBYJe3.js": {
30872
31039
  "type": "text/javascript; charset=utf-8",
30873
31040
  "etag": "\"4b5-DdWaiyBS+/JejqhLG4Q7/JprP2Q\"",
30874
- "mtime": "2026-09-06T11:14:44.049Z",
31041
+ "mtime": "2026-09-06T13:58:23.627Z",
30875
31042
  "size": 1205,
30876
31043
  "path": "../public/_nuxt/DIOBYJe3.js"
30877
31044
  },
30878
- "/_nuxt/DlRO_q5L.js": {
30879
- "type": "text/javascript; charset=utf-8",
30880
- "etag": "\"1195-qIdBUxD1e9n0IIVzYKGquwyc5IM\"",
30881
- "mtime": "2026-09-06T11:14:44.054Z",
30882
- "size": 4501,
30883
- "path": "../public/_nuxt/DlRO_q5L.js"
30884
- },
30885
- "/_nuxt/DGVAuScD.js": {
30886
- "type": "text/javascript; charset=utf-8",
30887
- "etag": "\"2406-Rl28+ZIhsU/v1Eyz4qXOmudoZrU\"",
30888
- "mtime": "2026-09-06T11:14:44.049Z",
30889
- "size": 9222,
30890
- "path": "../public/_nuxt/DGVAuScD.js"
30891
- },
30892
31045
  "/_nuxt/DoLasgPj2.js": {
30893
31046
  "type": "text/javascript; charset=utf-8",
30894
31047
  "etag": "\"20cf-AD2OXvXYmQR29f4gV1ADJLRnCEA\"",
30895
- "mtime": "2026-09-06T11:14:44.054Z",
31048
+ "mtime": "2026-09-06T13:58:23.631Z",
30896
31049
  "size": 8399,
30897
31050
  "path": "../public/_nuxt/DoLasgPj2.js"
30898
31051
  },
30899
- "/_nuxt/DsUUYP292.js": {
31052
+ "/_nuxt/DlRO_q5L.js": {
30900
31053
  "type": "text/javascript; charset=utf-8",
30901
- "etag": "\"144-/n2T55jR70VIdOwiikYjqUe6HLk\"",
30902
- "mtime": "2026-09-06T11:14:44.054Z",
30903
- "size": 324,
30904
- "path": "../public/_nuxt/DsUUYP292.js"
31054
+ "etag": "\"1195-qIdBUxD1e9n0IIVzYKGquwyc5IM\"",
31055
+ "mtime": "2026-09-06T13:58:23.630Z",
31056
+ "size": 4501,
31057
+ "path": "../public/_nuxt/DlRO_q5L.js"
30905
31058
  },
30906
31059
  "/_nuxt/Dhqra7NB.js": {
30907
31060
  "type": "text/javascript; charset=utf-8",
30908
31061
  "etag": "\"c67-DJQzh47TgZoVFNIo5m4hACtSlTg\"",
30909
- "mtime": "2026-09-06T11:14:44.053Z",
31062
+ "mtime": "2026-09-06T13:58:23.630Z",
30910
31063
  "size": 3175,
30911
31064
  "path": "../public/_nuxt/Dhqra7NB.js"
30912
31065
  },
31066
+ "/_nuxt/DpojD719.js": {
31067
+ "type": "text/javascript; charset=utf-8",
31068
+ "etag": "\"29d-Fu+XH+dfF6wIVeD5drBDJvCFiPE\"",
31069
+ "mtime": "2026-09-06T13:58:23.631Z",
31070
+ "size": 669,
31071
+ "path": "../public/_nuxt/DpojD719.js"
31072
+ },
30913
31073
  "/_nuxt/Dsdy4Ua-.js": {
30914
31074
  "type": "text/javascript; charset=utf-8",
30915
31075
  "etag": "\"12dd-PxFx1uaFqb7tUPva/yyN7Y/S75I\"",
30916
- "mtime": "2026-09-06T11:14:44.055Z",
31076
+ "mtime": "2026-09-06T13:58:23.631Z",
30917
31077
  "size": 4829,
30918
31078
  "path": "../public/_nuxt/Dsdy4Ua-.js"
30919
31079
  },
30920
- "/_nuxt/DpojD719.js": {
31080
+ "/_nuxt/DsUUYP292.js": {
30921
31081
  "type": "text/javascript; charset=utf-8",
30922
- "etag": "\"29d-Fu+XH+dfF6wIVeD5drBDJvCFiPE\"",
30923
- "mtime": "2026-09-06T11:14:44.054Z",
30924
- "size": 669,
30925
- "path": "../public/_nuxt/DpojD719.js"
31082
+ "etag": "\"144-/n2T55jR70VIdOwiikYjqUe6HLk\"",
31083
+ "mtime": "2026-09-06T13:58:23.631Z",
31084
+ "size": 324,
31085
+ "path": "../public/_nuxt/DsUUYP292.js"
30926
31086
  },
30927
31087
  "/_nuxt/DNxVTfhe.js": {
30928
31088
  "type": "text/javascript; charset=utf-8",
30929
31089
  "etag": "\"28a2e-JTPo0V0NdEUiA5ubrG/aTW6Nt3s\"",
30930
- "mtime": "2026-09-06T11:14:44.050Z",
31090
+ "mtime": "2026-09-06T13:58:23.628Z",
30931
31091
  "size": 166446,
30932
31092
  "path": "../public/_nuxt/DNxVTfhe.js"
30933
31093
  },
30934
31094
  "/_nuxt/DT-Wg8r1.js": {
30935
31095
  "type": "text/javascript; charset=utf-8",
30936
31096
  "etag": "\"987d-FRY5+vZoHzByvMEFbeh2lKuBssc\"",
30937
- "mtime": "2026-09-06T11:14:44.051Z",
31097
+ "mtime": "2026-09-06T13:58:23.628Z",
30938
31098
  "size": 39037,
30939
31099
  "path": "../public/_nuxt/DT-Wg8r1.js"
30940
31100
  },
30941
31101
  "/_nuxt/DMdVWIGz.js": {
30942
31102
  "type": "text/javascript; charset=utf-8",
30943
31103
  "etag": "\"8d0ec-hRdxHHGG+yY0kPCMBGU83Zlbqqw\"",
30944
- "mtime": "2026-09-06T11:14:44.050Z",
31104
+ "mtime": "2026-09-06T13:58:23.627Z",
30945
31105
  "size": 577772,
30946
31106
  "path": "../public/_nuxt/DMdVWIGz.js"
30947
31107
  },
30948
31108
  "/_nuxt/DtBu71ev.js": {
30949
31109
  "type": "text/javascript; charset=utf-8",
30950
31110
  "etag": "\"156bf-YTCvoAR5ZNk1ZGVhmY/Bceo/GjQ\"",
30951
- "mtime": "2026-09-06T11:14:44.055Z",
31111
+ "mtime": "2026-09-06T13:58:23.631Z",
30952
31112
  "size": 87743,
30953
31113
  "path": "../public/_nuxt/DtBu71ev.js"
30954
31114
  },
30955
- "/_nuxt/DTYBfjRY.js": {
31115
+ "/_nuxt/DWcEk1ur2.js": {
30956
31116
  "type": "text/javascript; charset=utf-8",
30957
- "etag": "\"1a89-9gPrj/bgllCi+f9Gl6ze+k5zkcw\"",
30958
- "mtime": "2026-09-06T11:14:44.051Z",
30959
- "size": 6793,
30960
- "path": "../public/_nuxt/DTYBfjRY.js"
31117
+ "etag": "\"6a1f-fF/+gkQ3RswZQKIYDBEx7d8rnN8\"",
31118
+ "mtime": "2026-09-06T13:58:23.629Z",
31119
+ "size": 27167,
31120
+ "path": "../public/_nuxt/DWcEk1ur2.js"
30961
31121
  },
30962
31122
  "/_nuxt/DVoWWlUW.js": {
30963
31123
  "type": "text/javascript; charset=utf-8",
30964
31124
  "etag": "\"20de-ai6O2MghS5+OzvgVh73lqqXsK98\"",
30965
- "mtime": "2026-09-06T11:14:44.051Z",
31125
+ "mtime": "2026-09-06T13:58:23.629Z",
30966
31126
  "size": 8414,
30967
31127
  "path": "../public/_nuxt/DVoWWlUW.js"
30968
31128
  },
30969
31129
  "/_nuxt/DXRZPxGs.js": {
30970
31130
  "type": "text/javascript; charset=utf-8",
30971
31131
  "etag": "\"42-LgXLXdo9BGzBlyxqolWDOt/Ezyg\"",
30972
- "mtime": "2026-09-06T11:14:44.052Z",
31132
+ "mtime": "2026-09-06T13:58:23.629Z",
30973
31133
  "size": 66,
30974
31134
  "path": "../public/_nuxt/DXRZPxGs.js"
30975
31135
  },
30976
31136
  "/_nuxt/Dy-mxvXY2.js": {
30977
31137
  "type": "text/javascript; charset=utf-8",
30978
31138
  "etag": "\"92-oLgwL98kjyuEcvL717na1ap9Tks\"",
30979
- "mtime": "2026-09-06T11:14:44.056Z",
31139
+ "mtime": "2026-09-06T13:58:23.632Z",
30980
31140
  "size": 146,
30981
31141
  "path": "../public/_nuxt/Dy-mxvXY2.js"
30982
31142
  },
31143
+ "/_nuxt/DTYBfjRY.js": {
31144
+ "type": "text/javascript; charset=utf-8",
31145
+ "etag": "\"1a89-9gPrj/bgllCi+f9Gl6ze+k5zkcw\"",
31146
+ "mtime": "2026-09-06T13:58:23.629Z",
31147
+ "size": 6793,
31148
+ "path": "../public/_nuxt/DTYBfjRY.js"
31149
+ },
30983
31150
  "/_nuxt/E88a-JCG.js": {
30984
31151
  "type": "text/javascript; charset=utf-8",
30985
31152
  "etag": "\"2463-SRR9K/48ysJhqMUtjV+hQzbQox8\"",
30986
- "mtime": "2026-09-06T11:14:44.056Z",
31153
+ "mtime": "2026-09-06T13:58:23.632Z",
30987
31154
  "size": 9315,
30988
31155
  "path": "../public/_nuxt/E88a-JCG.js"
30989
31156
  },
30990
31157
  "/_nuxt/DyisHHzD.js": {
30991
31158
  "type": "text/javascript; charset=utf-8",
30992
31159
  "etag": "\"26637-o15U+yDwUbonOcjvC07KaBGRDho\"",
30993
- "mtime": "2026-09-06T11:14:44.056Z",
31160
+ "mtime": "2026-09-06T13:58:23.632Z",
30994
31161
  "size": 157239,
30995
31162
  "path": "../public/_nuxt/DyisHHzD.js"
30996
31163
  },
30997
31164
  "/_nuxt/eb-garamond-cyrillic-400-italic.BGIwiowF.woff2": {
30998
31165
  "type": "font/woff2",
30999
31166
  "etag": "\"3504-t17DeaJZ5CiTr/7PdWXcRgN9/Yc\"",
31000
- "mtime": "2026-09-06T11:14:44.068Z",
31167
+ "mtime": "2026-09-06T13:58:23.639Z",
31001
31168
  "size": 13572,
31002
31169
  "path": "../public/_nuxt/eb-garamond-cyrillic-400-italic.BGIwiowF.woff2"
31003
31170
  },
31004
31171
  "/_nuxt/eb-garamond-cyrillic-400-italic.BZInx2ys.woff": {
31005
31172
  "type": "font/woff",
31006
31173
  "etag": "\"3f04-1MKyFKXvChwQTK9MnbAM3SwAP/w\"",
31007
- "mtime": "2026-09-06T11:14:44.068Z",
31174
+ "mtime": "2026-09-06T13:58:23.640Z",
31008
31175
  "size": 16132,
31009
31176
  "path": "../public/_nuxt/eb-garamond-cyrillic-400-italic.BZInx2ys.woff"
31010
31177
  },
31011
31178
  "/_nuxt/eb-garamond-cyrillic-400-normal.C0kVTdou.woff": {
31012
31179
  "type": "font/woff",
31013
31180
  "etag": "\"3c88-Q5XoFKe1rGp1UkdvSR6MtPcFfgQ\"",
31014
- "mtime": "2026-09-06T11:14:44.069Z",
31181
+ "mtime": "2026-09-06T13:58:23.640Z",
31015
31182
  "size": 15496,
31016
31183
  "path": "../public/_nuxt/eb-garamond-cyrillic-400-normal.C0kVTdou.woff"
31017
31184
  },
31018
- "/_nuxt/DWcEk1ur2.js": {
31019
- "type": "text/javascript; charset=utf-8",
31020
- "etag": "\"6a1f-fF/+gkQ3RswZQKIYDBEx7d8rnN8\"",
31021
- "mtime": "2026-09-06T11:14:44.052Z",
31022
- "size": 27167,
31023
- "path": "../public/_nuxt/DWcEk1ur2.js"
31185
+ "/_nuxt/eb-garamond-cyrillic-400-normal.DDLP67lu.woff2": {
31186
+ "type": "font/woff2",
31187
+ "etag": "\"33d4-lVrdxXudnaWAAL0JfU6b+yZGpK0\"",
31188
+ "mtime": "2026-09-06T13:58:23.640Z",
31189
+ "size": 13268,
31190
+ "path": "../public/_nuxt/eb-garamond-cyrillic-400-normal.DDLP67lu.woff2"
31191
+ },
31192
+ "/_nuxt/eb-garamond-cyrillic-ext-400-italic.Bz1w3xqM.woff2": {
31193
+ "type": "font/woff2",
31194
+ "etag": "\"4620-AEmSjSDDFDLAiok0BdjqqFs2mx4\"",
31195
+ "mtime": "2026-09-06T13:58:23.640Z",
31196
+ "size": 17952,
31197
+ "path": "../public/_nuxt/eb-garamond-cyrillic-ext-400-italic.Bz1w3xqM.woff2"
31198
+ },
31199
+ "/_nuxt/eb-garamond-greek-400-italic.BamGE6QP.woff": {
31200
+ "type": "font/woff",
31201
+ "etag": "\"307c-Fmorq8T0Tyl1FByuAGfnIMJMsU0\"",
31202
+ "mtime": "2026-09-06T13:58:23.642Z",
31203
+ "size": 12412,
31204
+ "path": "../public/_nuxt/eb-garamond-greek-400-italic.BamGE6QP.woff"
31024
31205
  },
31025
31206
  "/_nuxt/eb-garamond-cyrillic-ext-400-italic.CYS3phfl.woff": {
31026
31207
  "type": "font/woff",
31027
31208
  "etag": "\"5698-6bgErOYTElI0Z3Untp+h0Xi0FGs\"",
31028
- "mtime": "2026-09-06T11:14:44.070Z",
31209
+ "mtime": "2026-09-06T13:58:23.641Z",
31029
31210
  "size": 22168,
31030
31211
  "path": "../public/_nuxt/eb-garamond-cyrillic-ext-400-italic.CYS3phfl.woff"
31031
31212
  },
31032
31213
  "/_nuxt/eb-garamond-cyrillic-ext-400-normal.o8fRvAFQ.woff2": {
31033
31214
  "type": "font/woff2",
31034
31215
  "etag": "\"419c-BgVrkDzxBAskhVuAe8ZPKrVJ2vk\"",
31035
- "mtime": "2026-09-06T11:14:44.070Z",
31216
+ "mtime": "2026-09-06T13:58:23.642Z",
31036
31217
  "size": 16796,
31037
31218
  "path": "../public/_nuxt/eb-garamond-cyrillic-ext-400-normal.o8fRvAFQ.woff2"
31038
31219
  },
31039
- "/_nuxt/eb-garamond-cyrillic-ext-400-italic.Bz1w3xqM.woff2": {
31040
- "type": "font/woff2",
31041
- "etag": "\"4620-AEmSjSDDFDLAiok0BdjqqFs2mx4\"",
31042
- "mtime": "2026-09-06T11:14:44.069Z",
31043
- "size": 17952,
31044
- "path": "../public/_nuxt/eb-garamond-cyrillic-ext-400-italic.Bz1w3xqM.woff2"
31220
+ "/_nuxt/eb-garamond-cyrillic-ext-400-normal.DG8lny6_.woff": {
31221
+ "type": "font/woff",
31222
+ "etag": "\"4fcc-Wt58DNvJEH8PhhsEwR/fAuZLZf0\"",
31223
+ "mtime": "2026-09-06T13:58:23.641Z",
31224
+ "size": 20428,
31225
+ "path": "../public/_nuxt/eb-garamond-cyrillic-ext-400-normal.DG8lny6_.woff"
31045
31226
  },
31046
31227
  "/_nuxt/eb-garamond-greek-400-normal.CVAbzS9p.woff2": {
31047
31228
  "type": "font/woff2",
31048
31229
  "etag": "\"2a00-ZNzj8SIiN3t2N23u++WhC6jE8gk\"",
31049
- "mtime": "2026-09-06T11:14:44.071Z",
31230
+ "mtime": "2026-09-06T13:58:23.643Z",
31050
31231
  "size": 10752,
31051
31232
  "path": "../public/_nuxt/eb-garamond-greek-400-normal.CVAbzS9p.woff2"
31052
31233
  },
31053
- "/_nuxt/eb-garamond-greek-400-italic.Dqr5KC66.woff2": {
31054
- "type": "font/woff2",
31055
- "etag": "\"2904-BXAeLh8O+jrT8ujKrV7WtU2zP1c\"",
31056
- "mtime": "2026-09-06T11:14:44.071Z",
31057
- "size": 10500,
31058
- "path": "../public/_nuxt/eb-garamond-greek-400-italic.Dqr5KC66.woff2"
31059
- },
31060
- "/_nuxt/eb-garamond-cyrillic-ext-400-normal.DG8lny6_.woff": {
31061
- "type": "font/woff",
31062
- "etag": "\"4fcc-Wt58DNvJEH8PhhsEwR/fAuZLZf0\"",
31063
- "mtime": "2026-09-06T11:14:44.070Z",
31064
- "size": 20428,
31065
- "path": "../public/_nuxt/eb-garamond-cyrillic-ext-400-normal.DG8lny6_.woff"
31066
- },
31067
31234
  "/_nuxt/eb-garamond-greek-400-normal.d4JlP2QH.woff": {
31068
31235
  "type": "font/woff",
31069
31236
  "etag": "\"3108-ggShwQ6kE+MAR7EEQafdmWunxHg\"",
31070
- "mtime": "2026-09-06T11:14:44.072Z",
31237
+ "mtime": "2026-09-06T13:58:23.643Z",
31071
31238
  "size": 12552,
31072
31239
  "path": "../public/_nuxt/eb-garamond-greek-400-normal.d4JlP2QH.woff"
31073
31240
  },
31074
- "/_nuxt/eb-garamond-cyrillic-400-normal.DDLP67lu.woff2": {
31241
+ "/_nuxt/eb-garamond-greek-400-italic.Dqr5KC66.woff2": {
31075
31242
  "type": "font/woff2",
31076
- "etag": "\"33d4-lVrdxXudnaWAAL0JfU6b+yZGpK0\"",
31077
- "mtime": "2026-09-06T11:14:44.069Z",
31078
- "size": 13268,
31079
- "path": "../public/_nuxt/eb-garamond-cyrillic-400-normal.DDLP67lu.woff2"
31243
+ "etag": "\"2904-BXAeLh8O+jrT8ujKrV7WtU2zP1c\"",
31244
+ "mtime": "2026-09-06T13:58:23.642Z",
31245
+ "size": 10500,
31246
+ "path": "../public/_nuxt/eb-garamond-greek-400-italic.Dqr5KC66.woff2"
31080
31247
  },
31081
31248
  "/_nuxt/eb-garamond-greek-ext-400-italic.BL1XYHtS.woff": {
31082
31249
  "type": "font/woff",
31083
31250
  "etag": "\"2304-q8ppn7qePqLys53UrEKMrGT8e6E\"",
31084
- "mtime": "2026-09-06T11:14:44.072Z",
31251
+ "mtime": "2026-09-06T13:58:23.643Z",
31085
31252
  "size": 8964,
31086
31253
  "path": "../public/_nuxt/eb-garamond-greek-ext-400-italic.BL1XYHtS.woff"
31087
31254
  },
31088
- "/_nuxt/eb-garamond-greek-400-italic.BamGE6QP.woff": {
31089
- "type": "font/woff",
31090
- "etag": "\"307c-Fmorq8T0Tyl1FByuAGfnIMJMsU0\"",
31091
- "mtime": "2026-09-06T11:14:44.071Z",
31092
- "size": 12412,
31093
- "path": "../public/_nuxt/eb-garamond-greek-400-italic.BamGE6QP.woff"
31094
- },
31095
31255
  "/_nuxt/eb-garamond-greek-ext-400-italic.CHZOQEtG.woff2": {
31096
31256
  "type": "font/woff2",
31097
31257
  "etag": "\"19d0-ppOK6AfNTXYuDEeeEMQQhOypGW8\"",
31098
- "mtime": "2026-09-06T11:14:44.072Z",
31258
+ "mtime": "2026-09-06T13:58:23.644Z",
31099
31259
  "size": 6608,
31100
31260
  "path": "../public/_nuxt/eb-garamond-greek-ext-400-italic.CHZOQEtG.woff2"
31101
31261
  },
31102
31262
  "/_nuxt/eb-garamond-greek-ext-400-normal.BaZl8BIK.woff": {
31103
31263
  "type": "font/woff",
31104
31264
  "etag": "\"20b0-FNV/ZgjupejIrGOsz4+8EYVUXHo\"",
31105
- "mtime": "2026-09-06T11:14:44.072Z",
31265
+ "mtime": "2026-09-06T13:58:23.644Z",
31106
31266
  "size": 8368,
31107
31267
  "path": "../public/_nuxt/eb-garamond-greek-ext-400-normal.BaZl8BIK.woff"
31108
31268
  },
31109
- "/_nuxt/eb-garamond-latin-400-italic.CDFyLPXJ.woff": {
31110
- "type": "font/woff",
31111
- "etag": "\"7890-VX8YYh09367bg28IWSUybEXrsDQ\"",
31112
- "mtime": "2026-09-06T11:14:44.074Z",
31113
- "size": 30864,
31114
- "path": "../public/_nuxt/eb-garamond-latin-400-italic.CDFyLPXJ.woff"
31115
- },
31116
31269
  "/_nuxt/eb-garamond-greek-ext-400-normal.K8pwR3tn.woff2": {
31117
31270
  "type": "font/woff2",
31118
31271
  "etag": "\"1940-Y3hsqG2RXMGI9hHTiI+Nv2Q4msM\"",
31119
- "mtime": "2026-09-06T11:14:44.073Z",
31272
+ "mtime": "2026-09-06T13:58:23.644Z",
31120
31273
  "size": 6464,
31121
31274
  "path": "../public/_nuxt/eb-garamond-greek-ext-400-normal.K8pwR3tn.woff2"
31122
31275
  },
31276
+ "/_nuxt/eb-garamond-latin-400-italic.CDFyLPXJ.woff": {
31277
+ "type": "font/woff",
31278
+ "etag": "\"7890-VX8YYh09367bg28IWSUybEXrsDQ\"",
31279
+ "mtime": "2026-09-06T13:58:23.644Z",
31280
+ "size": 30864,
31281
+ "path": "../public/_nuxt/eb-garamond-latin-400-italic.CDFyLPXJ.woff"
31282
+ },
31123
31283
  "/_nuxt/eb-garamond-latin-400-italic.DSEbMgZu.woff2": {
31124
31284
  "type": "font/woff2",
31125
31285
  "etag": "\"632c-iB8RNlBCm9D0APLcMJ/hIPATx+0\"",
31126
- "mtime": "2026-09-06T11:14:44.074Z",
31286
+ "mtime": "2026-09-06T13:58:23.645Z",
31127
31287
  "size": 25388,
31128
31288
  "path": "../public/_nuxt/eb-garamond-latin-400-italic.DSEbMgZu.woff2"
31129
31289
  },
31130
31290
  "/_nuxt/eb-garamond-latin-400-normal.BCNrxLz_.woff2": {
31131
31291
  "type": "font/woff2",
31132
31292
  "etag": "\"5d0c-w7FmIa34l5RBoJYmvp9lwadEvW4\"",
31133
- "mtime": "2026-09-06T11:14:44.074Z",
31293
+ "mtime": "2026-09-06T13:58:23.645Z",
31134
31294
  "size": 23820,
31135
31295
  "path": "../public/_nuxt/eb-garamond-latin-400-normal.BCNrxLz_.woff2"
31136
31296
  },
31137
31297
  "/_nuxt/eb-garamond-latin-400-normal.maQnHeKB.woff": {
31138
31298
  "type": "font/woff",
31139
31299
  "etag": "\"6fc0-tKFcVMt7ocp7dmWyG6/kxtP5mKY\"",
31140
- "mtime": "2026-09-06T11:14:44.074Z",
31300
+ "mtime": "2026-09-06T13:58:23.645Z",
31141
31301
  "size": 28608,
31142
31302
  "path": "../public/_nuxt/eb-garamond-latin-400-normal.maQnHeKB.woff"
31143
31303
  },
31144
31304
  "/_nuxt/eb-garamond-latin-ext-400-italic.DUSsnRSD.woff": {
31145
31305
  "type": "font/woff",
31146
31306
  "etag": "\"f5b8-o98RIl4uKzIPJHZZpEI+mI17K3c\"",
31147
- "mtime": "2026-09-06T11:14:44.075Z",
31307
+ "mtime": "2026-09-06T13:58:23.645Z",
31148
31308
  "size": 62904,
31149
31309
  "path": "../public/_nuxt/eb-garamond-latin-ext-400-italic.DUSsnRSD.woff"
31150
31310
  },
31151
- "/_nuxt/eb-garamond-latin-ext-400-italic.V7s3nWfX.woff2": {
31152
- "type": "font/woff2",
31153
- "etag": "\"b19c-7qms9anmdJJsBixQTHSocgV31Qk\"",
31154
- "mtime": "2026-09-06T11:14:44.076Z",
31155
- "size": 45468,
31156
- "path": "../public/_nuxt/eb-garamond-latin-ext-400-italic.V7s3nWfX.woff2"
31157
- },
31158
- "/_nuxt/eb-garamond-vietnamese-400-italic.DQ8HKnks.woff2": {
31159
- "type": "font/woff2",
31160
- "etag": "\"187c-Wj36AOh9OjwDZT5W3eeao1D/NT4\"",
31161
- "mtime": "2026-09-06T11:14:44.078Z",
31162
- "size": 6268,
31163
- "path": "../public/_nuxt/eb-garamond-vietnamese-400-italic.DQ8HKnks.woff2"
31164
- },
31165
31311
  "/_nuxt/eb-garamond-latin-ext-400-normal.o4A__6QZ.woff2": {
31166
31312
  "type": "font/woff2",
31167
31313
  "etag": "\"de84-qKZ/sgxlZLRv1TmEnWR30Cc4wfw\"",
31168
- "mtime": "2026-09-06T11:14:44.077Z",
31314
+ "mtime": "2026-09-06T13:58:23.646Z",
31169
31315
  "size": 56964,
31170
31316
  "path": "../public/_nuxt/eb-garamond-latin-ext-400-normal.o4A__6QZ.woff2"
31171
31317
  },
31318
+ "/_nuxt/eb-garamond-latin-ext-400-italic.V7s3nWfX.woff2": {
31319
+ "type": "font/woff2",
31320
+ "etag": "\"b19c-7qms9anmdJJsBixQTHSocgV31Qk\"",
31321
+ "mtime": "2026-09-06T13:58:23.645Z",
31322
+ "size": 45468,
31323
+ "path": "../public/_nuxt/eb-garamond-latin-ext-400-italic.V7s3nWfX.woff2"
31324
+ },
31172
31325
  "/_nuxt/eb-garamond-latin-ext-400-normal.B4EmgUmt.woff": {
31173
31326
  "type": "font/woff",
31174
31327
  "etag": "\"12b44-jg/K3aZca4XOngCAf1Jh47/0cj8\"",
31175
- "mtime": "2026-09-06T11:14:44.077Z",
31328
+ "mtime": "2026-09-06T13:58:23.645Z",
31176
31329
  "size": 76612,
31177
31330
  "path": "../public/_nuxt/eb-garamond-latin-ext-400-normal.B4EmgUmt.woff"
31178
31331
  },
31179
31332
  "/_nuxt/eb-garamond-vietnamese-400-italic.ORtyMVfw.woff": {
31180
31333
  "type": "font/woff",
31181
31334
  "etag": "\"1edc-XUugZ4qMSSF4m+TQLER2LLza1t0\"",
31182
- "mtime": "2026-09-06T11:14:44.078Z",
31335
+ "mtime": "2026-09-06T13:58:23.646Z",
31183
31336
  "size": 7900,
31184
31337
  "path": "../public/_nuxt/eb-garamond-vietnamese-400-italic.ORtyMVfw.woff"
31185
31338
  },
31186
31339
  "/_nuxt/eb-garamond-vietnamese-400-normal.CLvJdMEL.woff2": {
31187
31340
  "type": "font/woff2",
31188
31341
  "etag": "\"183c-arAHcc3MmJQ6+OtYVThlERUqDQQ\"",
31189
- "mtime": "2026-09-06T11:14:44.079Z",
31342
+ "mtime": "2026-09-06T13:58:23.646Z",
31190
31343
  "size": 6204,
31191
31344
  "path": "../public/_nuxt/eb-garamond-vietnamese-400-normal.CLvJdMEL.woff2"
31192
31345
  },
31346
+ "/_nuxt/eb-garamond-vietnamese-400-italic.DQ8HKnks.woff2": {
31347
+ "type": "font/woff2",
31348
+ "etag": "\"187c-Wj36AOh9OjwDZT5W3eeao1D/NT4\"",
31349
+ "mtime": "2026-09-06T13:58:23.646Z",
31350
+ "size": 6268,
31351
+ "path": "../public/_nuxt/eb-garamond-vietnamese-400-italic.DQ8HKnks.woff2"
31352
+ },
31193
31353
  "/_nuxt/eb-garamond-vietnamese-400-normal.ifvNSiWx.woff": {
31194
31354
  "type": "font/woff",
31195
31355
  "etag": "\"1e50-PGVIQbsmhTvI1h5aIhavpIQl8z4\"",
31196
- "mtime": "2026-09-06T11:14:44.079Z",
31356
+ "mtime": "2026-09-06T13:58:23.646Z",
31197
31357
  "size": 7760,
31198
31358
  "path": "../public/_nuxt/eb-garamond-vietnamese-400-normal.ifvNSiWx.woff"
31199
31359
  },
31200
31360
  "/_nuxt/ed5qX-x5.js": {
31201
31361
  "type": "text/javascript; charset=utf-8",
31202
31362
  "etag": "\"20a5-gXwZPbCWbMud5N0D6Dhhw2Str+Q\"",
31203
- "mtime": "2026-09-06T11:14:44.060Z",
31363
+ "mtime": "2026-09-06T13:58:23.635Z",
31204
31364
  "size": 8357,
31205
31365
  "path": "../public/_nuxt/ed5qX-x5.js"
31206
31366
  },
31207
- "/_nuxt/G0qIw7Gq2.js": {
31208
- "type": "text/javascript; charset=utf-8",
31209
- "etag": "\"462-s/N+VoJiDplj3GORHgaIwAR+Uqk\"",
31210
- "mtime": "2026-09-06T11:14:44.057Z",
31211
- "size": 1122,
31212
- "path": "../public/_nuxt/G0qIw7Gq2.js"
31213
- },
31214
31367
  "/_nuxt/entry.BNApuuEW.css": {
31215
31368
  "type": "text/css; charset=utf-8",
31216
31369
  "etag": "\"1ceaf-9gX5MV4ktNUjQ2iGXCff4ow8nbE\"",
31217
- "mtime": "2026-09-06T11:14:44.079Z",
31370
+ "mtime": "2026-09-06T13:58:23.646Z",
31218
31371
  "size": 118447,
31219
31372
  "path": "../public/_nuxt/entry.BNApuuEW.css"
31220
31373
  },
31221
31374
  "/_nuxt/eHYnGew0.js": {
31222
31375
  "type": "text/javascript; charset=utf-8",
31223
31376
  "etag": "\"f919-Mna7yicjedSnPxQ5bWRqIqFwv4Y\"",
31224
- "mtime": "2026-09-06T11:14:44.060Z",
31377
+ "mtime": "2026-09-06T13:58:23.635Z",
31225
31378
  "size": 63769,
31226
31379
  "path": "../public/_nuxt/eHYnGew0.js"
31227
31380
  },
31381
+ "/_nuxt/geist-cyrillic-wght-normal.BEAKL7Jp.woff2": {
31382
+ "type": "font/woff2",
31383
+ "etag": "\"3aec-5kpQSZEtAzzU5kdiuro3Zr2YR54\"",
31384
+ "mtime": "2026-09-06T13:58:23.647Z",
31385
+ "size": 15084,
31386
+ "path": "../public/_nuxt/geist-cyrillic-wght-normal.BEAKL7Jp.woff2"
31387
+ },
31228
31388
  "/_nuxt/geist-cyrillic-ext-wght-normal.DjL33-gN.woff2": {
31229
31389
  "type": "font/woff2",
31230
31390
  "etag": "\"1cfc-yYSDXNlt/tTRaj6rJo8ZMqvY7pQ\"",
31231
- "mtime": "2026-09-06T11:14:44.080Z",
31391
+ "mtime": "2026-09-06T13:58:23.647Z",
31232
31392
  "size": 7420,
31233
31393
  "path": "../public/_nuxt/geist-cyrillic-ext-wght-normal.DjL33-gN.woff2"
31234
31394
  },
31395
+ "/_nuxt/G0qIw7Gq2.js": {
31396
+ "type": "text/javascript; charset=utf-8",
31397
+ "etag": "\"462-s/N+VoJiDplj3GORHgaIwAR+Uqk\"",
31398
+ "mtime": "2026-09-06T13:58:23.632Z",
31399
+ "size": 1122,
31400
+ "path": "../public/_nuxt/G0qIw7Gq2.js"
31401
+ },
31235
31402
  "/_nuxt/geist-latin-ext-wght-normal.DC-KSUi6.woff2": {
31236
31403
  "type": "font/woff2",
31237
31404
  "etag": "\"4080-mZu3Z7sOWqglha+kefNbUA9Pp+Q\"",
31238
- "mtime": "2026-09-06T11:14:44.081Z",
31405
+ "mtime": "2026-09-06T13:58:23.647Z",
31239
31406
  "size": 16512,
31240
31407
  "path": "../public/_nuxt/geist-latin-ext-wght-normal.DC-KSUi6.woff2"
31241
31408
  },
31242
- "/_nuxt/geist-cyrillic-wght-normal.BEAKL7Jp.woff2": {
31243
- "type": "font/woff2",
31244
- "etag": "\"3aec-5kpQSZEtAzzU5kdiuro3Zr2YR54\"",
31245
- "mtime": "2026-09-06T11:14:44.080Z",
31246
- "size": 15084,
31247
- "path": "../public/_nuxt/geist-cyrillic-wght-normal.BEAKL7Jp.woff2"
31248
- },
31249
- "/_nuxt/geist-mono-cyrillic-wght-normal.DiZS0aHC.woff2": {
31409
+ "/_nuxt/geist-mono-cyrillic-ext-wght-normal.X_5orZeX.woff2": {
31250
31410
  "type": "font/woff2",
31251
- "etag": "\"328c-3kQUs7xjzfvJdLvI58iU6DHlynA\"",
31252
- "mtime": "2026-09-06T11:14:44.082Z",
31253
- "size": 12940,
31254
- "path": "../public/_nuxt/geist-mono-cyrillic-wght-normal.DiZS0aHC.woff2"
31411
+ "etag": "\"1820-nQACIwCsmkduQK2CSMidMhmLR9U\"",
31412
+ "mtime": "2026-09-06T13:58:23.647Z",
31413
+ "size": 6176,
31414
+ "path": "../public/_nuxt/geist-mono-cyrillic-ext-wght-normal.X_5orZeX.woff2"
31255
31415
  },
31256
31416
  "/_nuxt/geist-latin-wght-normal.BgDaEnEv.woff2": {
31257
31417
  "type": "font/woff2",
31258
31418
  "etag": "\"72d8-9J+D7/6th5UzRxIgoFX9awJv47A\"",
31259
- "mtime": "2026-09-06T11:14:44.081Z",
31419
+ "mtime": "2026-09-06T13:58:23.647Z",
31260
31420
  "size": 29400,
31261
31421
  "path": "../public/_nuxt/geist-latin-wght-normal.BgDaEnEv.woff2"
31262
31422
  },
31263
- "/_nuxt/geist-mono-latin-ext-wght-normal.Bwz-egvJ.woff2": {
31423
+ "/_nuxt/geist-mono-cyrillic-wght-normal.DiZS0aHC.woff2": {
31264
31424
  "type": "font/woff2",
31265
- "etag": "\"3968-BV9ZbqWHVAcipAKX5y8la3JkUQs\"",
31266
- "mtime": "2026-09-06T11:14:44.082Z",
31267
- "size": 14696,
31268
- "path": "../public/_nuxt/geist-mono-latin-ext-wght-normal.Bwz-egvJ.woff2"
31425
+ "etag": "\"328c-3kQUs7xjzfvJdLvI58iU6DHlynA\"",
31426
+ "mtime": "2026-09-06T13:58:23.647Z",
31427
+ "size": 12940,
31428
+ "path": "../public/_nuxt/geist-mono-cyrillic-wght-normal.DiZS0aHC.woff2"
31269
31429
  },
31270
31430
  "/_nuxt/geist-mono-latin-wght-normal.XN7g48iV.woff2": {
31271
31431
  "type": "font/woff2",
31272
31432
  "etag": "\"5a58-jDy+14PX7OhwqFZsiKzuRax9xZ8\"",
31273
- "mtime": "2026-09-06T11:14:44.082Z",
31433
+ "mtime": "2026-09-06T13:58:23.648Z",
31274
31434
  "size": 23128,
31275
31435
  "path": "../public/_nuxt/geist-mono-latin-wght-normal.XN7g48iV.woff2"
31276
31436
  },
31277
- "/_nuxt/geist-mono-cyrillic-ext-wght-normal.X_5orZeX.woff2": {
31437
+ "/_nuxt/geist-mono-latin-ext-wght-normal.Bwz-egvJ.woff2": {
31278
31438
  "type": "font/woff2",
31279
- "etag": "\"1820-nQACIwCsmkduQK2CSMidMhmLR9U\"",
31280
- "mtime": "2026-09-06T11:14:44.081Z",
31281
- "size": 6176,
31282
- "path": "../public/_nuxt/geist-mono-cyrillic-ext-wght-normal.X_5orZeX.woff2"
31439
+ "etag": "\"3968-BV9ZbqWHVAcipAKX5y8la3JkUQs\"",
31440
+ "mtime": "2026-09-06T13:58:23.648Z",
31441
+ "size": 14696,
31442
+ "path": "../public/_nuxt/geist-mono-latin-ext-wght-normal.Bwz-egvJ.woff2"
31283
31443
  },
31284
31444
  "/_nuxt/geist-mono-symbols2-wght-normal.CO5SzqOn.woff2": {
31285
31445
  "type": "font/woff2",
31286
31446
  "etag": "\"16b4-aZoLOGWoEYW7gmwZamfz5kTfFco\"",
31287
- "mtime": "2026-09-06T11:14:44.082Z",
31447
+ "mtime": "2026-09-06T13:58:23.648Z",
31288
31448
  "size": 5812,
31289
31449
  "path": "../public/_nuxt/geist-mono-symbols2-wght-normal.CO5SzqOn.woff2"
31290
31450
  },
31291
31451
  "/_nuxt/geist-mono-vietnamese-wght-normal.DadHysG0.woff2": {
31292
31452
  "type": "font/woff2",
31293
31453
  "etag": "\"1e10-mpU2OlFk4DakDO4paRfgJ2LHDsM\"",
31294
- "mtime": "2026-09-06T11:14:44.083Z",
31454
+ "mtime": "2026-09-06T13:58:23.648Z",
31295
31455
  "size": 7696,
31296
31456
  "path": "../public/_nuxt/geist-mono-vietnamese-wght-normal.DadHysG0.woff2"
31297
31457
  },
31298
31458
  "/_nuxt/geist-vietnamese-wght-normal.6IgcOCM7.woff2": {
31299
31459
  "type": "font/woff2",
31300
31460
  "etag": "\"1f44-6MZ7/PEEOeDVF0eHI650KpwKQV8\"",
31301
- "mtime": "2026-09-06T11:14:44.084Z",
31461
+ "mtime": "2026-09-06T13:58:23.649Z",
31302
31462
  "size": 8004,
31303
31463
  "path": "../public/_nuxt/geist-vietnamese-wght-normal.6IgcOCM7.woff2"
31304
31464
  },
31305
31465
  "/_nuxt/HclGiUj8.js": {
31306
31466
  "type": "text/javascript; charset=utf-8",
31307
31467
  "etag": "\"4bb-OjUbx7m0dPDFUkNfZ4BuUs+1sHI\"",
31308
- "mtime": "2026-09-06T11:14:44.057Z",
31468
+ "mtime": "2026-09-06T13:58:23.632Z",
31309
31469
  "size": 1211,
31310
31470
  "path": "../public/_nuxt/HclGiUj8.js"
31311
31471
  },
31312
- "/_nuxt/ibm-plex-mono-cyrillic-400-normal.BSMlKf0J.woff2": {
31313
- "type": "font/woff2",
31314
- "etag": "\"20a4-mDbzFbXDuciYuRDdYbcJkcocaWU\"",
31315
- "mtime": "2026-09-06T11:14:44.084Z",
31316
- "size": 8356,
31317
- "path": "../public/_nuxt/ibm-plex-mono-cyrillic-400-normal.BSMlKf0J.woff2"
31318
- },
31319
31472
  "/_nuxt/ibm-plex-mono-cyrillic-400-normal.CEL4l2ZJ.woff": {
31320
31473
  "type": "font/woff",
31321
31474
  "etag": "\"1c24-wpeoT2YBcqJ4hbipsoiB1m58w98\"",
31322
- "mtime": "2026-09-06T11:14:44.085Z",
31475
+ "mtime": "2026-09-06T13:58:23.649Z",
31323
31476
  "size": 7204,
31324
31477
  "path": "../public/_nuxt/ibm-plex-mono-cyrillic-400-normal.CEL4l2ZJ.woff"
31325
31478
  },
31479
+ "/_nuxt/ibm-plex-mono-cyrillic-400-normal.BSMlKf0J.woff2": {
31480
+ "type": "font/woff2",
31481
+ "etag": "\"20a4-mDbzFbXDuciYuRDdYbcJkcocaWU\"",
31482
+ "mtime": "2026-09-06T13:58:23.649Z",
31483
+ "size": 8356,
31484
+ "path": "../public/_nuxt/ibm-plex-mono-cyrillic-400-normal.BSMlKf0J.woff2"
31485
+ },
31326
31486
  "/_nuxt/ibm-plex-mono-cyrillic-500-normal.Ael50iVv.woff": {
31327
31487
  "type": "font/woff",
31328
31488
  "etag": "\"1c28-50yap58S0sLYRB2B8AEk2dq82kg\"",
31329
- "mtime": "2026-09-06T11:14:44.085Z",
31489
+ "mtime": "2026-09-06T13:58:23.650Z",
31330
31490
  "size": 7208,
31331
31491
  "path": "../public/_nuxt/ibm-plex-mono-cyrillic-500-normal.Ael50iVv.woff"
31332
31492
  },
31333
31493
  "/_nuxt/ibm-plex-mono-cyrillic-500-normal.Bq9vWWag.woff2": {
31334
31494
  "type": "font/woff2",
31335
31495
  "etag": "\"210c-yqAnW+098RkHUvQzwj27Jo9sIUc\"",
31336
- "mtime": "2026-09-06T11:14:44.086Z",
31496
+ "mtime": "2026-09-06T13:58:23.650Z",
31337
31497
  "size": 8460,
31338
31498
  "path": "../public/_nuxt/ibm-plex-mono-cyrillic-500-normal.Bq9vWWag.woff2"
31339
31499
  },
31340
- "/_nuxt/ibm-plex-mono-cyrillic-600-normal.fLZuRloM.woff": {
31341
- "type": "font/woff",
31342
- "etag": "\"1c64-t3eBraFEv1B6D+DIfK23+8/F2mA\"",
31343
- "mtime": "2026-09-06T11:14:44.086Z",
31344
- "size": 7268,
31345
- "path": "../public/_nuxt/ibm-plex-mono-cyrillic-600-normal.fLZuRloM.woff"
31346
- },
31347
31500
  "/_nuxt/ibm-plex-mono-cyrillic-600-normal.CTOM6hUh.woff2": {
31348
31501
  "type": "font/woff2",
31349
31502
  "etag": "\"2488-WHfw+ZaOHy8HhYaV0AzfKZ8dozA\"",
31350
- "mtime": "2026-09-06T11:14:44.086Z",
31503
+ "mtime": "2026-09-06T13:58:23.650Z",
31351
31504
  "size": 9352,
31352
31505
  "path": "../public/_nuxt/ibm-plex-mono-cyrillic-600-normal.CTOM6hUh.woff2"
31353
31506
  },
31507
+ "/_nuxt/ibm-plex-mono-cyrillic-600-normal.fLZuRloM.woff": {
31508
+ "type": "font/woff",
31509
+ "etag": "\"1c64-t3eBraFEv1B6D+DIfK23+8/F2mA\"",
31510
+ "mtime": "2026-09-06T13:58:23.650Z",
31511
+ "size": 7268,
31512
+ "path": "../public/_nuxt/ibm-plex-mono-cyrillic-600-normal.fLZuRloM.woff"
31513
+ },
31354
31514
  "/_nuxt/ibm-plex-mono-cyrillic-ext-400-normal.xuaO2J-f.woff2": {
31355
31515
  "type": "font/woff2",
31356
31516
  "etag": "\"1b00-w57wcK5m30ZZ4sBwsaWzlcI3F7c\"",
31357
- "mtime": "2026-09-06T11:14:44.088Z",
31517
+ "mtime": "2026-09-06T13:58:23.651Z",
31358
31518
  "size": 6912,
31359
31519
  "path": "../public/_nuxt/ibm-plex-mono-cyrillic-ext-400-normal.xuaO2J-f.woff2"
31360
31520
  },
31361
31521
  "/_nuxt/ibm-plex-mono-cyrillic-ext-400-normal.DMdlQ8Kv.woff": {
31362
31522
  "type": "font/woff",
31363
31523
  "etag": "\"16bc-GBHBT1lClOFRLkxzjkkoZV1QN+Y\"",
31364
- "mtime": "2026-09-06T11:14:44.087Z",
31524
+ "mtime": "2026-09-06T13:58:23.651Z",
31365
31525
  "size": 5820,
31366
31526
  "path": "../public/_nuxt/ibm-plex-mono-cyrillic-ext-400-normal.DMdlQ8Kv.woff"
31367
31527
  },
31368
31528
  "/_nuxt/ibm-plex-mono-cyrillic-ext-500-normal.BIfNGwUT.woff": {
31369
31529
  "type": "font/woff",
31370
31530
  "etag": "\"168c-gvDCX7ATl9g9LbPEKlQjJSXhRPw\"",
31371
- "mtime": "2026-09-06T11:14:44.088Z",
31531
+ "mtime": "2026-09-06T13:58:23.651Z",
31372
31532
  "size": 5772,
31373
31533
  "path": "../public/_nuxt/ibm-plex-mono-cyrillic-ext-500-normal.BIfNGwUT.woff"
31374
31534
  },
31375
- "/_nuxt/ibm-plex-mono-cyrillic-ext-600-normal.V-xxqcpd.woff2": {
31376
- "type": "font/woff2",
31377
- "etag": "\"1e0c-R9/TBUX2qLWGlHeC55LoggyLdII\"",
31378
- "mtime": "2026-09-06T11:14:44.089Z",
31379
- "size": 7692,
31380
- "path": "../public/_nuxt/ibm-plex-mono-cyrillic-ext-600-normal.V-xxqcpd.woff2"
31381
- },
31382
31535
  "/_nuxt/ibm-plex-mono-cyrillic-ext-500-normal.BqneJy0T.woff2": {
31383
31536
  "type": "font/woff2",
31384
31537
  "etag": "\"1b3c-pFin0Xk9XlGLhqdo1+npFJkyQ5Y\"",
31385
- "mtime": "2026-09-06T11:14:44.089Z",
31538
+ "mtime": "2026-09-06T13:58:23.651Z",
31386
31539
  "size": 6972,
31387
31540
  "path": "../public/_nuxt/ibm-plex-mono-cyrillic-ext-500-normal.BqneJy0T.woff2"
31388
31541
  },
31542
+ "/_nuxt/ibm-plex-mono-cyrillic-ext-600-normal.9HEixskS.woff": {
31543
+ "type": "font/woff",
31544
+ "etag": "\"16a0-8RgtlGopOkBt2P4jKMMd7hk+D74\"",
31545
+ "mtime": "2026-09-06T13:58:23.651Z",
31546
+ "size": 5792,
31547
+ "path": "../public/_nuxt/ibm-plex-mono-cyrillic-ext-600-normal.9HEixskS.woff"
31548
+ },
31389
31549
  "/_nuxt/ibm-plex-mono-latin-400-normal.CvHOgSBP.woff": {
31390
31550
  "type": "font/woff",
31391
31551
  "etag": "\"3358-rWMSbc9cch7FBErQpfnWcshAYFM\"",
31392
- "mtime": "2026-09-06T11:14:44.089Z",
31552
+ "mtime": "2026-09-06T13:58:23.652Z",
31393
31553
  "size": 13144,
31394
31554
  "path": "../public/_nuxt/ibm-plex-mono-latin-400-normal.CvHOgSBP.woff"
31395
31555
  },
31396
- "/_nuxt/ibm-plex-mono-latin-400-normal.DMJ8VG8y.woff2": {
31556
+ "/_nuxt/ibm-plex-mono-cyrillic-ext-600-normal.V-xxqcpd.woff2": {
31397
31557
  "type": "font/woff2",
31398
- "etag": "\"3974-u4dQDjIEo6fGXWYzx5xchAw76NM\"",
31399
- "mtime": "2026-09-06T11:14:44.090Z",
31400
- "size": 14708,
31401
- "path": "../public/_nuxt/ibm-plex-mono-latin-400-normal.DMJ8VG8y.woff2"
31558
+ "etag": "\"1e0c-R9/TBUX2qLWGlHeC55LoggyLdII\"",
31559
+ "mtime": "2026-09-06T13:58:23.651Z",
31560
+ "size": 7692,
31561
+ "path": "../public/_nuxt/ibm-plex-mono-cyrillic-ext-600-normal.V-xxqcpd.woff2"
31402
31562
  },
31403
- "/_nuxt/ibm-plex-mono-cyrillic-ext-600-normal.9HEixskS.woff": {
31563
+ "/_nuxt/ibm-plex-mono-latin-500-normal.CB9ihrfo.woff": {
31404
31564
  "type": "font/woff",
31405
- "etag": "\"16a0-8RgtlGopOkBt2P4jKMMd7hk+D74\"",
31406
- "mtime": "2026-09-06T11:14:44.089Z",
31407
- "size": 5792,
31408
- "path": "../public/_nuxt/ibm-plex-mono-cyrillic-ext-600-normal.9HEixskS.woff"
31565
+ "etag": "\"3364-S8wip5no4QO46BFh3FPzQKpIOec\"",
31566
+ "mtime": "2026-09-06T13:58:23.652Z",
31567
+ "size": 13156,
31568
+ "path": "../public/_nuxt/ibm-plex-mono-latin-500-normal.CB9ihrfo.woff"
31569
+ },
31570
+ "/_nuxt/ibm-plex-mono-latin-400-normal.DMJ8VG8y.woff2": {
31571
+ "type": "font/woff2",
31572
+ "etag": "\"3974-u4dQDjIEo6fGXWYzx5xchAw76NM\"",
31573
+ "mtime": "2026-09-06T13:58:23.652Z",
31574
+ "size": 14708,
31575
+ "path": "../public/_nuxt/ibm-plex-mono-latin-400-normal.DMJ8VG8y.woff2"
31409
31576
  },
31410
31577
  "/_nuxt/ibm-plex-mono-latin-500-normal.DSY6xOcd.woff2": {
31411
31578
  "type": "font/woff2",
31412
31579
  "etag": "\"3a28-0y8OBwGsYgQ4QBMagAznF6huTuI\"",
31413
- "mtime": "2026-09-06T11:14:44.090Z",
31580
+ "mtime": "2026-09-06T13:58:23.652Z",
31414
31581
  "size": 14888,
31415
31582
  "path": "../public/_nuxt/ibm-plex-mono-latin-500-normal.DSY6xOcd.woff2"
31416
31583
  },
31417
- "/_nuxt/ibm-plex-mono-latin-500-normal.CB9ihrfo.woff": {
31418
- "type": "font/woff",
31419
- "etag": "\"3364-S8wip5no4QO46BFh3FPzQKpIOec\"",
31420
- "mtime": "2026-09-06T11:14:44.090Z",
31421
- "size": 13156,
31422
- "path": "../public/_nuxt/ibm-plex-mono-latin-500-normal.CB9ihrfo.woff"
31423
- },
31424
31584
  "/_nuxt/ibm-plex-mono-latin-600-normal.BgSNZQsw.woff2": {
31425
31585
  "type": "font/woff2",
31426
31586
  "etag": "\"3d04-zppco6h02pIBwmMMXLe/qpaIwFI\"",
31427
- "mtime": "2026-09-06T11:14:44.091Z",
31587
+ "mtime": "2026-09-06T13:58:23.652Z",
31428
31588
  "size": 15620,
31429
31589
  "path": "../public/_nuxt/ibm-plex-mono-latin-600-normal.BgSNZQsw.woff2"
31430
31590
  },
31431
31591
  "/_nuxt/ibm-plex-mono-latin-600-normal.DWFSQ4vo.woff": {
31432
31592
  "type": "font/woff",
31433
31593
  "etag": "\"3398-D/GHpHo4zls8HLHH2boKeigB6S4\"",
31434
- "mtime": "2026-09-06T11:14:44.091Z",
31594
+ "mtime": "2026-09-06T13:58:23.653Z",
31435
31595
  "size": 13208,
31436
31596
  "path": "../public/_nuxt/ibm-plex-mono-latin-600-normal.DWFSQ4vo.woff"
31437
31597
  },
31438
31598
  "/_nuxt/ibm-plex-mono-latin-ext-400-normal.BmRBH3aV.woff2": {
31439
31599
  "type": "font/woff2",
31440
31600
  "etag": "\"3424-SvjO9SK9iRLLL61B4GuQJWQP62I\"",
31441
- "mtime": "2026-09-06T11:14:44.091Z",
31601
+ "mtime": "2026-09-06T13:58:23.653Z",
31442
31602
  "size": 13348,
31443
31603
  "path": "../public/_nuxt/ibm-plex-mono-latin-ext-400-normal.BmRBH3aV.woff2"
31444
31604
  },
31445
- "/_nuxt/ibm-plex-mono-latin-ext-500-normal.CAhNIIs5.woff2": {
31446
- "type": "font/woff2",
31447
- "etag": "\"3478-PpQvQo59iHxPLcEUBhJfmFmCPuA\"",
31448
- "mtime": "2026-09-06T11:14:44.092Z",
31449
- "size": 13432,
31450
- "path": "../public/_nuxt/ibm-plex-mono-latin-ext-500-normal.CAhNIIs5.woff2"
31451
- },
31452
31605
  "/_nuxt/ibm-plex-mono-latin-ext-400-normal.D3D2R8hC.woff": {
31453
31606
  "type": "font/woff",
31454
31607
  "etag": "\"2df8-dfJwTWMZxHyGnUuJDGfpU4w2dLs\"",
31455
- "mtime": "2026-09-06T11:14:44.092Z",
31608
+ "mtime": "2026-09-06T13:58:23.653Z",
31456
31609
  "size": 11768,
31457
31610
  "path": "../public/_nuxt/ibm-plex-mono-latin-ext-400-normal.D3D2R8hC.woff"
31458
31611
  },
31459
- "/_nuxt/ibm-plex-mono-latin-ext-500-normal.CZ70TYgx.woff": {
31460
- "type": "font/woff",
31461
- "etag": "\"2df8-73sb1BUyjMsq70ppsdZBHEqWrtE\"",
31462
- "mtime": "2026-09-06T11:14:44.093Z",
31463
- "size": 11768,
31464
- "path": "../public/_nuxt/ibm-plex-mono-latin-ext-500-normal.CZ70TYgx.woff"
31612
+ "/_nuxt/ibm-plex-mono-latin-ext-500-normal.CAhNIIs5.woff2": {
31613
+ "type": "font/woff2",
31614
+ "etag": "\"3478-PpQvQo59iHxPLcEUBhJfmFmCPuA\"",
31615
+ "mtime": "2026-09-06T13:58:23.653Z",
31616
+ "size": 13432,
31617
+ "path": "../public/_nuxt/ibm-plex-mono-latin-ext-500-normal.CAhNIIs5.woff2"
31465
31618
  },
31466
31619
  "/_nuxt/ibm-plex-mono-latin-ext-600-normal.D38SheWl.woff2": {
31467
31620
  "type": "font/woff2",
31468
31621
  "etag": "\"37f8-5XYRqKuMO2rN5QZqfj4VW8r2jSQ\"",
31469
- "mtime": "2026-09-06T11:14:44.093Z",
31622
+ "mtime": "2026-09-06T13:58:23.654Z",
31470
31623
  "size": 14328,
31471
31624
  "path": "../public/_nuxt/ibm-plex-mono-latin-ext-600-normal.D38SheWl.woff2"
31472
31625
  },
31626
+ "/_nuxt/ibm-plex-mono-latin-ext-500-normal.CZ70TYgx.woff": {
31627
+ "type": "font/woff",
31628
+ "etag": "\"2df8-73sb1BUyjMsq70ppsdZBHEqWrtE\"",
31629
+ "mtime": "2026-09-06T13:58:23.653Z",
31630
+ "size": 11768,
31631
+ "path": "../public/_nuxt/ibm-plex-mono-latin-ext-500-normal.CZ70TYgx.woff"
31632
+ },
31473
31633
  "/_nuxt/ibm-plex-mono-latin-ext-600-normal.DmB0ttJJ.woff": {
31474
31634
  "type": "font/woff",
31475
31635
  "etag": "\"2e38-fOmVENNzEJaYqxODn6K5NAbrEJk\"",
31476
- "mtime": "2026-09-06T11:14:44.094Z",
31636
+ "mtime": "2026-09-06T13:58:23.654Z",
31477
31637
  "size": 11832,
31478
31638
  "path": "../public/_nuxt/ibm-plex-mono-latin-ext-600-normal.DmB0ttJJ.woff"
31479
31639
  },
31480
31640
  "/_nuxt/ibm-plex-mono-vietnamese-400-normal.BulugwFq.woff2": {
31481
31641
  "type": "font/woff2",
31482
31642
  "etag": "\"16ec-bIkS18/YaTiWdOzfzp4pFXvLmqQ\"",
31483
- "mtime": "2026-09-06T11:14:44.094Z",
31643
+ "mtime": "2026-09-06T13:58:23.654Z",
31484
31644
  "size": 5868,
31485
31645
  "path": "../public/_nuxt/ibm-plex-mono-vietnamese-400-normal.BulugwFq.woff2"
31486
31646
  },
31487
- "/_nuxt/ibm-plex-mono-vietnamese-400-normal.DDuiU_S-.woff": {
31488
- "type": "font/woff",
31489
- "etag": "\"15f4-LdRX2sBB3T5WDAsZLCwBlsMYXPw\"",
31490
- "mtime": "2026-09-06T11:14:44.094Z",
31491
- "size": 5620,
31492
- "path": "../public/_nuxt/ibm-plex-mono-vietnamese-400-normal.DDuiU_S-.woff"
31493
- },
31494
31647
  "/_nuxt/ibm-plex-mono-vietnamese-500-normal.C8zxqsMH.woff": {
31495
31648
  "type": "font/woff",
31496
31649
  "etag": "\"15f0-mGuZIt/ndQFiw5uxmCOkhhWSxi4\"",
31497
- "mtime": "2026-09-06T11:14:44.094Z",
31650
+ "mtime": "2026-09-06T13:58:23.654Z",
31498
31651
  "size": 5616,
31499
31652
  "path": "../public/_nuxt/ibm-plex-mono-vietnamese-500-normal.C8zxqsMH.woff"
31500
31653
  },
31654
+ "/_nuxt/ibm-plex-mono-vietnamese-400-normal.DDuiU_S-.woff": {
31655
+ "type": "font/woff",
31656
+ "etag": "\"15f4-LdRX2sBB3T5WDAsZLCwBlsMYXPw\"",
31657
+ "mtime": "2026-09-06T13:58:23.654Z",
31658
+ "size": 5620,
31659
+ "path": "../public/_nuxt/ibm-plex-mono-vietnamese-400-normal.DDuiU_S-.woff"
31660
+ },
31501
31661
  "/_nuxt/ibm-plex-mono-vietnamese-500-normal.DZ4AoWbu.woff2": {
31502
31662
  "type": "font/woff2",
31503
31663
  "etag": "\"1798-7VDjg0E2ggd9c0kJDHNRh+Fu5E0\"",
31504
- "mtime": "2026-09-06T11:14:44.094Z",
31664
+ "mtime": "2026-09-06T13:58:23.654Z",
31505
31665
  "size": 6040,
31506
31666
  "path": "../public/_nuxt/ibm-plex-mono-vietnamese-500-normal.DZ4AoWbu.woff2"
31507
31667
  },
31668
+ "/_nuxt/kZl6yT-12.js": {
31669
+ "type": "text/javascript; charset=utf-8",
31670
+ "etag": "\"e9-t0VKevMurw+ruGbCV/EgmcM2dww\"",
31671
+ "mtime": "2026-09-06T13:58:23.635Z",
31672
+ "size": 233,
31673
+ "path": "../public/_nuxt/kZl6yT-12.js"
31674
+ },
31508
31675
  "/_nuxt/ibm-plex-mono-vietnamese-600-normal.D2EvbN8M.woff2": {
31509
31676
  "type": "font/woff2",
31510
31677
  "etag": "\"1b14-ylPjcMKGVc4RbTi2G25N0MSlVNo\"",
31511
- "mtime": "2026-09-06T11:14:44.095Z",
31678
+ "mtime": "2026-09-06T13:58:23.655Z",
31512
31679
  "size": 6932,
31513
31680
  "path": "../public/_nuxt/ibm-plex-mono-vietnamese-600-normal.D2EvbN8M.woff2"
31514
31681
  },
31515
- "/_nuxt/ibm-plex-mono-vietnamese-600-normal.iLQfcSjf.woff": {
31516
- "type": "font/woff",
31517
- "etag": "\"1650-9Pko0qRZ+EoISmnDaTRQ8KRGy/s\"",
31518
- "mtime": "2026-09-06T11:14:44.096Z",
31519
- "size": 5712,
31520
- "path": "../public/_nuxt/ibm-plex-mono-vietnamese-600-normal.iLQfcSjf.woff"
31521
- },
31522
31682
  "/_nuxt/kkEthL84.js": {
31523
31683
  "type": "text/javascript; charset=utf-8",
31524
31684
  "etag": "\"1c85b-rndZIGE/0sbN/dsGvCDYNjDmhrs\"",
31525
- "mtime": "2026-09-06T11:14:44.062Z",
31685
+ "mtime": "2026-09-06T13:58:23.636Z",
31526
31686
  "size": 116827,
31527
31687
  "path": "../public/_nuxt/kkEthL84.js"
31528
31688
  },
31529
- "/_nuxt/kZl6yT-12.js": {
31530
- "type": "text/javascript; charset=utf-8",
31531
- "etag": "\"e9-t0VKevMurw+ruGbCV/EgmcM2dww\"",
31532
- "mtime": "2026-09-06T11:14:44.061Z",
31533
- "size": 233,
31534
- "path": "../public/_nuxt/kZl6yT-12.js"
31689
+ "/_nuxt/ibm-plex-mono-vietnamese-600-normal.iLQfcSjf.woff": {
31690
+ "type": "font/woff",
31691
+ "etag": "\"1650-9Pko0qRZ+EoISmnDaTRQ8KRGy/s\"",
31692
+ "mtime": "2026-09-06T13:58:23.655Z",
31693
+ "size": 5712,
31694
+ "path": "../public/_nuxt/ibm-plex-mono-vietnamese-600-normal.iLQfcSjf.woff"
31535
31695
  },
31536
31696
  "/_nuxt/kZV5TQvh2.js": {
31537
31697
  "type": "text/javascript; charset=utf-8",
31538
31698
  "etag": "\"b36-HJpEm4SThB06CEAVNx2ouDQlwFw\"",
31539
- "mtime": "2026-09-06T11:14:44.061Z",
31699
+ "mtime": "2026-09-06T13:58:23.635Z",
31540
31700
  "size": 2870,
31541
31701
  "path": "../public/_nuxt/kZV5TQvh2.js"
31542
31702
  },
31543
31703
  "/_nuxt/logs.BarkrvUp.css": {
31544
31704
  "type": "text/css; charset=utf-8",
31545
31705
  "etag": "\"1635-tLGJgO7tHBNwpLhvDPHlrxrBwE0\"",
31546
- "mtime": "2026-09-06T11:14:44.096Z",
31706
+ "mtime": "2026-09-06T13:58:23.655Z",
31547
31707
  "size": 5685,
31548
31708
  "path": "../public/_nuxt/logs.BarkrvUp.css"
31549
31709
  },
31550
- "/_nuxt/monitor.CmwpEUCI.css": {
31551
- "type": "text/css; charset=utf-8",
31552
- "etag": "\"483-Lotbm40sJjjryRjOid43sPWucRw\"",
31553
- "mtime": "2026-09-06T11:14:44.096Z",
31554
- "size": 1155,
31555
- "path": "../public/_nuxt/monitor.CmwpEUCI.css"
31556
- },
31557
31710
  "/_nuxt/lO5tpDZ5.js": {
31558
31711
  "type": "text/javascript; charset=utf-8",
31559
31712
  "etag": "\"3b-z4jypkmUW9c9v+AALQ28pDyJ80A\"",
31560
- "mtime": "2026-09-06T11:14:44.062Z",
31713
+ "mtime": "2026-09-06T13:58:23.636Z",
31561
31714
  "size": 59,
31562
31715
  "path": "../public/_nuxt/lO5tpDZ5.js"
31563
31716
  },
31717
+ "/_nuxt/monitor.CmwpEUCI.css": {
31718
+ "type": "text/css; charset=utf-8",
31719
+ "etag": "\"483-Lotbm40sJjjryRjOid43sPWucRw\"",
31720
+ "mtime": "2026-09-06T13:58:23.655Z",
31721
+ "size": 1155,
31722
+ "path": "../public/_nuxt/monitor.CmwpEUCI.css"
31723
+ },
31564
31724
  "/_nuxt/niDwBOZW.js": {
31565
31725
  "type": "text/javascript; charset=utf-8",
31566
31726
  "etag": "\"12f1-JlgzqHJQENBszEGLuO9fMyRYm/E\"",
31567
- "mtime": "2026-09-06T11:14:44.062Z",
31727
+ "mtime": "2026-09-06T13:58:23.636Z",
31568
31728
  "size": 4849,
31569
31729
  "path": "../public/_nuxt/niDwBOZW.js"
31570
31730
  },
31571
- "/_nuxt/OmpTerminalPanel.B_Pl5Ynm.css": {
31572
- "type": "text/css; charset=utf-8",
31573
- "etag": "\"10d0-uLyus3YRLFfRIoYhlKCERpGIwVE\"",
31574
- "mtime": "2026-09-06T11:14:44.064Z",
31575
- "size": 4304,
31576
- "path": "../public/_nuxt/OmpTerminalPanel.B_Pl5Ynm.css"
31577
- },
31578
31731
  "/_nuxt/ORt9oDIy2.js": {
31579
31732
  "type": "text/javascript; charset=utf-8",
31580
31733
  "etag": "\"c42-g+2xQOk5SmNd8dk4LSqx7FrSVE0\"",
31581
- "mtime": "2026-09-06T11:14:44.057Z",
31734
+ "mtime": "2026-09-06T13:58:23.633Z",
31582
31735
  "size": 3138,
31583
31736
  "path": "../public/_nuxt/ORt9oDIy2.js"
31584
31737
  },
31585
- "/_nuxt/permissions.DTRtZeTw.css": {
31586
- "type": "text/css; charset=utf-8",
31587
- "etag": "\"4c8-9re0o0yfSvROlGQZhstmHhHfzlE\"",
31588
- "mtime": "2026-09-06T11:14:44.097Z",
31589
- "size": 1224,
31590
- "path": "../public/_nuxt/permissions.DTRtZeTw.css"
31591
- },
31592
- "/_nuxt/plugins.BcSEwwGb.css": {
31738
+ "/_nuxt/OmpTerminalPanel.B_Pl5Ynm.css": {
31593
31739
  "type": "text/css; charset=utf-8",
31594
- "etag": "\"a50-JjpuKXTJQUZDH3PRepA186REfG4\"",
31595
- "mtime": "2026-09-06T11:14:44.097Z",
31596
- "size": 2640,
31597
- "path": "../public/_nuxt/plugins.BcSEwwGb.css"
31740
+ "etag": "\"10d0-uLyus3YRLFfRIoYhlKCERpGIwVE\"",
31741
+ "mtime": "2026-09-06T13:58:23.637Z",
31742
+ "size": 4304,
31743
+ "path": "../public/_nuxt/OmpTerminalPanel.B_Pl5Ynm.css"
31598
31744
  },
31599
31745
  "/_nuxt/pages.CG8UJ2TK.css": {
31600
31746
  "type": "text/css; charset=utf-8",
31601
31747
  "etag": "\"22c8-H6h6Cku9xmxP27cTVttz9usOIqU\"",
31602
- "mtime": "2026-09-06T11:14:44.097Z",
31748
+ "mtime": "2026-09-06T13:58:23.655Z",
31603
31749
  "size": 8904,
31604
31750
  "path": "../public/_nuxt/pages.CG8UJ2TK.css"
31605
31751
  },
31752
+ "/_nuxt/permissions.DTRtZeTw.css": {
31753
+ "type": "text/css; charset=utf-8",
31754
+ "etag": "\"4c8-9re0o0yfSvROlGQZhstmHhHfzlE\"",
31755
+ "mtime": "2026-09-06T13:58:23.655Z",
31756
+ "size": 1224,
31757
+ "path": "../public/_nuxt/permissions.DTRtZeTw.css"
31758
+ },
31606
31759
  "/_nuxt/rqZ-1SoP.js": {
31607
31760
  "type": "text/javascript; charset=utf-8",
31608
31761
  "etag": "\"761d-n3nYYQYIxdnAu9GaImKE7k1Xy7Y\"",
31609
- "mtime": "2026-09-06T11:14:44.062Z",
31762
+ "mtime": "2026-09-06T13:58:23.637Z",
31610
31763
  "size": 30237,
31611
31764
  "path": "../public/_nuxt/rqZ-1SoP.js"
31612
31765
  },
31766
+ "/_nuxt/plugins.BcSEwwGb.css": {
31767
+ "type": "text/css; charset=utf-8",
31768
+ "etag": "\"a50-JjpuKXTJQUZDH3PRepA186REfG4\"",
31769
+ "mtime": "2026-09-06T13:58:23.656Z",
31770
+ "size": 2640,
31771
+ "path": "../public/_nuxt/plugins.BcSEwwGb.css"
31772
+ },
31613
31773
  "/_nuxt/RYFtK4qZ2.js": {
31614
31774
  "type": "text/javascript; charset=utf-8",
31615
31775
  "etag": "\"594c-ZHrAodAyz6fWAruZCqluWn052zA\"",
31616
- "mtime": "2026-09-06T11:14:44.058Z",
31776
+ "mtime": "2026-09-06T13:58:23.633Z",
31617
31777
  "size": 22860,
31618
31778
  "path": "../public/_nuxt/RYFtK4qZ2.js"
31619
31779
  },
31620
31780
  "/_nuxt/RzXYI9FM.js": {
31621
31781
  "type": "text/javascript; charset=utf-8",
31622
31782
  "etag": "\"9a6b-hWs9hqxsYAIn7EKAMQfiXbHC5bw\"",
31623
- "mtime": "2026-09-06T11:14:44.058Z",
31783
+ "mtime": "2026-09-06T13:58:23.633Z",
31624
31784
  "size": 39531,
31625
31785
  "path": "../public/_nuxt/RzXYI9FM.js"
31626
31786
  },
31627
31787
  "/_nuxt/settings.BqMF2nfj.css": {
31628
31788
  "type": "text/css; charset=utf-8",
31629
31789
  "etag": "\"14e1-XjxEHtGImiK+UJc+jkb4oOU898E\"",
31630
- "mtime": "2026-09-06T11:14:44.098Z",
31790
+ "mtime": "2026-09-06T13:58:23.656Z",
31631
31791
  "size": 5345,
31632
31792
  "path": "../public/_nuxt/settings.BqMF2nfj.css"
31633
31793
  },
31634
- "/_nuxt/tokens.BVXU1jOK.css": {
31635
- "type": "text/css; charset=utf-8",
31636
- "etag": "\"9cd-HyFySPI6yObA+8TezFmB9Sz9rak\"",
31637
- "mtime": "2026-09-06T11:14:44.098Z",
31638
- "size": 2509,
31639
- "path": "../public/_nuxt/tokens.BVXU1jOK.css"
31640
- },
31641
31794
  "/_nuxt/teams.DN0pAGGu.css": {
31642
31795
  "type": "text/css; charset=utf-8",
31643
31796
  "etag": "\"6b7-IrKbxtb/heYNEDdyXKev4JLIkpo\"",
31644
- "mtime": "2026-09-06T11:14:44.098Z",
31797
+ "mtime": "2026-09-06T13:58:23.656Z",
31645
31798
  "size": 1719,
31646
31799
  "path": "../public/_nuxt/teams.DN0pAGGu.css"
31647
31800
  },
31801
+ "/_nuxt/tokens.BVXU1jOK.css": {
31802
+ "type": "text/css; charset=utf-8",
31803
+ "etag": "\"9cd-HyFySPI6yObA+8TezFmB9Sz9rak\"",
31804
+ "mtime": "2026-09-06T13:58:23.656Z",
31805
+ "size": 2509,
31806
+ "path": "../public/_nuxt/tokens.BVXU1jOK.css"
31807
+ },
31648
31808
  "/_nuxt/town.BLrD9-WH.css": {
31649
31809
  "type": "text/css; charset=utf-8",
31650
31810
  "etag": "\"64-INqlNEwsg1I+Dzc8LaEkJCLno5o\"",
31651
- "mtime": "2026-09-06T11:14:44.098Z",
31811
+ "mtime": "2026-09-06T13:58:23.657Z",
31652
31812
  "size": 100,
31653
31813
  "path": "../public/_nuxt/town.BLrD9-WH.css"
31654
31814
  },
31655
31815
  "/_nuxt/town.C_DsNW0J.css": {
31656
31816
  "type": "text/css; charset=utf-8",
31657
31817
  "etag": "\"3b2-lx8uIK7y3f1Nkj2gMcTuak3mB/I\"",
31658
- "mtime": "2026-09-06T11:14:44.099Z",
31818
+ "mtime": "2026-09-06T13:58:23.657Z",
31659
31819
  "size": 946,
31660
31820
  "path": "../public/_nuxt/town.C_DsNW0J.css"
31661
31821
  },
31662
- "/_nuxt/TownView.BHLKAjEu.css": {
31822
+ "/_nuxt/users.D8lcLE62.css": {
31663
31823
  "type": "text/css; charset=utf-8",
31664
- "etag": "\"11b2a-iRw/kbvCuxhjwK4gMYcSwCJYIEk\"",
31665
- "mtime": "2026-09-06T11:14:44.064Z",
31666
- "size": 72490,
31667
- "path": "../public/_nuxt/TownView.BHLKAjEu.css"
31824
+ "etag": "\"2f7-vPqmiQmG+gTnKc25vyRnF3nNTy0\"",
31825
+ "mtime": "2026-09-06T13:58:23.658Z",
31826
+ "size": 759,
31827
+ "path": "../public/_nuxt/users.D8lcLE62.css"
31668
31828
  },
31669
31829
  "/_nuxt/vJ4FPb-_.js": {
31670
31830
  "type": "text/javascript; charset=utf-8",
31671
31831
  "etag": "\"496e-HYp1zkNZ5UP5CkmOCjjlTOlpRAA\"",
31672
- "mtime": "2026-09-06T11:14:44.063Z",
31832
+ "mtime": "2026-09-06T13:58:23.637Z",
31673
31833
  "size": 18798,
31674
31834
  "path": "../public/_nuxt/vJ4FPb-_.js"
31675
31835
  },
31676
- "/_nuxt/users.D8lcLE62.css": {
31677
- "type": "text/css; charset=utf-8",
31678
- "etag": "\"2f7-vPqmiQmG+gTnKc25vyRnF3nNTy0\"",
31679
- "mtime": "2026-09-06T11:14:44.099Z",
31680
- "size": 759,
31681
- "path": "../public/_nuxt/users.D8lcLE62.css"
31682
- },
31683
- "/_nuxt/workshop.CbymC2LY.css": {
31836
+ "/_nuxt/TownView.BHLKAjEu.css": {
31684
31837
  "type": "text/css; charset=utf-8",
31685
- "etag": "\"d1c-YQcbvHheVnY14BKtJSxnL4w6r4Y\"",
31686
- "mtime": "2026-09-06T11:14:44.100Z",
31687
- "size": 3356,
31688
- "path": "../public/_nuxt/workshop.CbymC2LY.css"
31838
+ "etag": "\"11b2a-iRw/kbvCuxhjwK4gMYcSwCJYIEk\"",
31839
+ "mtime": "2026-09-06T13:58:23.637Z",
31840
+ "size": 72490,
31841
+ "path": "../public/_nuxt/TownView.BHLKAjEu.css"
31689
31842
  },
31690
31843
  "/_nuxt/VLI2Zy4t.js": {
31691
31844
  "type": "text/javascript; charset=utf-8",
31692
31845
  "etag": "\"79db-1zvdkTTeWhTS0A+KbRz0/ud/ntw\"",
31693
- "mtime": "2026-09-06T11:14:44.059Z",
31846
+ "mtime": "2026-09-06T13:58:23.633Z",
31694
31847
  "size": 31195,
31695
31848
  "path": "../public/_nuxt/VLI2Zy4t.js"
31696
31849
  },
31697
- "/_nuxt/_id_.DIxEKj88.css": {
31850
+ "/_nuxt/workshop.CbymC2LY.css": {
31698
31851
  "type": "text/css; charset=utf-8",
31699
- "etag": "\"1564-kqE2azzqPk0lKOVi0vRsIBIu7UM\"",
31700
- "mtime": "2026-09-06T11:14:44.065Z",
31701
- "size": 5476,
31702
- "path": "../public/_nuxt/_id_.DIxEKj88.css"
31852
+ "etag": "\"d1c-YQcbvHheVnY14BKtJSxnL4w6r4Y\"",
31853
+ "mtime": "2026-09-06T13:58:23.658Z",
31854
+ "size": 3356,
31855
+ "path": "../public/_nuxt/workshop.CbymC2LY.css"
31703
31856
  },
31704
31857
  "/_nuxt/zVkqCZ78.js": {
31705
31858
  "type": "text/javascript; charset=utf-8",
31706
31859
  "etag": "\"e583-atAfcqj4nxxk6KUzDMuv2R/bDCg\"",
31707
- "mtime": "2026-09-06T11:14:44.064Z",
31860
+ "mtime": "2026-09-06T13:58:23.637Z",
31708
31861
  "size": 58755,
31709
31862
  "path": "../public/_nuxt/zVkqCZ78.js"
31710
31863
  },
31711
31864
  "/_nuxt/_id_.DTvjd6VN.css": {
31712
31865
  "type": "text/css; charset=utf-8",
31713
31866
  "etag": "\"36e7-Um0hcCUBU5cd8ESeOGJffLOJkG8\"",
31714
- "mtime": "2026-09-06T11:14:44.065Z",
31867
+ "mtime": "2026-09-06T13:58:23.638Z",
31715
31868
  "size": 14055,
31716
31869
  "path": "../public/_nuxt/_id_.DTvjd6VN.css"
31717
31870
  },
31871
+ "/_nuxt/_id_.DIxEKj88.css": {
31872
+ "type": "text/css; charset=utf-8",
31873
+ "etag": "\"1564-kqE2azzqPk0lKOVi0vRsIBIu7UM\"",
31874
+ "mtime": "2026-09-06T13:58:23.637Z",
31875
+ "size": 5476,
31876
+ "path": "../public/_nuxt/_id_.DIxEKj88.css"
31877
+ },
31718
31878
  "/assets/game/coin.png": {
31719
31879
  "type": "image/png",
31720
31880
  "etag": "\"1a4d-c3GA5v0R/IuKz38xkdcao4hHrX4\"",
@@ -31722,6 +31882,13 @@ const assets = {
31722
31882
  "size": 6733,
31723
31883
  "path": "../public/assets/game/coin.png"
31724
31884
  },
31885
+ "/_nuxt/_wsId_.BFyCuUwS.css": {
31886
+ "type": "text/css; charset=utf-8",
31887
+ "etag": "\"11059-fUcBwBRjCr5Nger7gVc5ZTCEb1o\"",
31888
+ "mtime": "2026-09-06T13:58:23.638Z",
31889
+ "size": 69721,
31890
+ "path": "../public/_nuxt/_wsId_.BFyCuUwS.css"
31891
+ },
31725
31892
  "/assets/game/player-sheet.png": {
31726
31893
  "type": "image/png",
31727
31894
  "etag": "\"2742-xHFqZq17XtbQVhapFMWJpVb0W5o\"",
@@ -31729,13 +31896,6 @@ const assets = {
31729
31896
  "size": 10050,
31730
31897
  "path": "../public/assets/game/player-sheet.png"
31731
31898
  },
31732
- "/_nuxt/_wsId_.BFyCuUwS.css": {
31733
- "type": "text/css; charset=utf-8",
31734
- "etag": "\"11059-fUcBwBRjCr5Nger7gVc5ZTCEb1o\"",
31735
- "mtime": "2026-09-06T11:14:44.066Z",
31736
- "size": 69721,
31737
- "path": "../public/_nuxt/_wsId_.BFyCuUwS.css"
31738
- },
31739
31899
  "/assets/game/tuxemon-town.json": {
31740
31900
  "type": "application/json",
31741
31901
  "etag": "\"fec5-uB5TWkwSxd0G5Tiupl3I0+u94XM\"",
@@ -31743,13 +31903,6 @@ const assets = {
31743
31903
  "size": 65221,
31744
31904
  "path": "../public/assets/game/tuxemon-town.json"
31745
31905
  },
31746
- "/_nuxt/builds/latest.json": {
31747
- "type": "application/json",
31748
- "etag": "\"47-5dBQJw8udKyWsyOZRKvBqAlpTTU\"",
31749
- "mtime": "2026-09-06T11:14:51.016Z",
31750
- "size": 71,
31751
- "path": "../public/_nuxt/builds/latest.json"
31752
- },
31753
31906
  "/scene/background/cyber-town-background.svg": {
31754
31907
  "type": "image/svg+xml",
31755
31908
  "etag": "\"1656-Q8xWIs77K5i5HJYRdMCDYSQhkvs\"",
@@ -31757,6 +31910,13 @@ const assets = {
31757
31910
  "size": 5718,
31758
31911
  "path": "../public/scene/background/cyber-town-background.svg"
31759
31912
  },
31913
+ "/_nuxt/builds/latest.json": {
31914
+ "type": "application/json",
31915
+ "etag": "\"47-KDIfffrORP1J75r3UP3x+/z3fs0\"",
31916
+ "mtime": "2026-09-06T13:58:29.481Z",
31917
+ "size": 71,
31918
+ "path": "../public/_nuxt/builds/latest.json"
31919
+ },
31760
31920
  "/assets/game/tuxmon-sample-32px-extruded.png": {
31761
31921
  "type": "image/png",
31762
31922
  "etag": "\"2ee08-3yTsAqzTx0djGCGVAEgUGQ1/MEg\"",
@@ -31764,12 +31924,96 @@ const assets = {
31764
31924
  "size": 192008,
31765
31925
  "path": "../public/assets/game/tuxmon-sample-32px-extruded.png"
31766
31926
  },
31767
- "/assets/game/npc/fluttaflap-sheet.png": {
31927
+ "/assets/game/devices/agv.glb": {
31928
+ "type": "model/gltf-binary",
31929
+ "etag": "\"b0ec-SGRGNfFN89F7v1GROXKGve7pQqs\"",
31930
+ "mtime": "2026-08-27T07:03:12.531Z",
31931
+ "size": 45292,
31932
+ "path": "../public/assets/game/devices/agv.glb"
31933
+ },
31934
+ "/assets/game/devices/caster.glb": {
31935
+ "type": "model/gltf-binary",
31936
+ "etag": "\"5874-Qd988sa7u1y3lgH8K/zhzRLbRbs\"",
31937
+ "mtime": "2026-08-27T07:03:12.510Z",
31938
+ "size": 22644,
31939
+ "path": "../public/assets/game/devices/caster.glb"
31940
+ },
31941
+ "/assets/game/devices/device-console.glb": {
31942
+ "type": "model/gltf-binary",
31943
+ "etag": "\"3984-GibNFJHAqtYWIxLy79rzU1HZAds\"",
31944
+ "mtime": "2026-08-26T05:23:14.559Z",
31945
+ "size": 14724,
31946
+ "path": "../public/assets/game/devices/device-console.glb"
31947
+ },
31948
+ "/assets/game/devices/device-robot-arm.glb": {
31949
+ "type": "model/gltf-binary",
31950
+ "etag": "\"37fc-uBxMDklo0SfaA6KXZIylh/S2p+c\"",
31951
+ "mtime": "2026-08-26T05:23:14.560Z",
31952
+ "size": 14332,
31953
+ "path": "../public/assets/game/devices/device-robot-arm.glb"
31954
+ },
31955
+ "/assets/game/devices/device-scanner.glb": {
31956
+ "type": "model/gltf-binary",
31957
+ "etag": "\"28e0-uKYZaLiZiCedMMozKBOFU14HUSE\"",
31958
+ "mtime": "2026-08-26T05:23:14.560Z",
31959
+ "size": 10464,
31960
+ "path": "../public/assets/game/devices/device-scanner.glb"
31961
+ },
31962
+ "/assets/game/devices/extruder.glb": {
31963
+ "type": "model/gltf-binary",
31964
+ "etag": "\"18124-H6X1eQmFDn6eONUMGU6lGdQafZ8\"",
31965
+ "mtime": "2026-08-27T07:03:12.506Z",
31966
+ "size": 98596,
31967
+ "path": "../public/assets/game/devices/extruder.glb"
31968
+ },
31969
+ "/assets/game/devices/mdo.glb": {
31970
+ "type": "model/gltf-binary",
31971
+ "etag": "\"132e4-EDslgF5+17dSukguA0eZzN4I0+o\"",
31972
+ "mtime": "2026-08-27T07:03:12.518Z",
31973
+ "size": 78564,
31974
+ "path": "../public/assets/game/devices/mdo.glb"
31975
+ },
31976
+ "/assets/game/devices/power-cabinet.glb": {
31977
+ "type": "model/gltf-binary",
31978
+ "etag": "\"54f0-KsrAxig9JTAY5SGKK3jbdJXB6fk\"",
31979
+ "mtime": "2026-08-27T07:03:12.534Z",
31980
+ "size": 21744,
31981
+ "path": "../public/assets/game/devices/power-cabinet.glb"
31982
+ },
31983
+ "/assets/game/devices/pump.glb": {
31984
+ "type": "model/gltf-binary",
31985
+ "etag": "\"4bc8-yAiKZtO+P2bBmqfRvhlxcF0oduE\"",
31986
+ "mtime": "2026-08-25T12:20:54.512Z",
31987
+ "size": 19400,
31988
+ "path": "../public/assets/game/devices/pump.glb"
31989
+ },
31990
+ "/assets/game/devices/tdo.glb": {
31991
+ "type": "model/gltf-binary",
31992
+ "etag": "\"e10c-GdMX+mG/KrSVBzy4EeAPPjFoTqM\"",
31993
+ "mtime": "2026-08-27T07:03:12.523Z",
31994
+ "size": 57612,
31995
+ "path": "../public/assets/game/devices/tdo.glb"
31996
+ },
31997
+ "/assets/game/devices/thickness-scanner.glb": {
31998
+ "type": "model/gltf-binary",
31999
+ "etag": "\"3480-WMTbMzRrl/6AJPzEIPhRW9xPugA\"",
32000
+ "mtime": "2026-08-27T07:03:12.527Z",
32001
+ "size": 13440,
32002
+ "path": "../public/assets/game/devices/thickness-scanner.glb"
32003
+ },
32004
+ "/assets/game/devices/winder.glb": {
32005
+ "type": "model/gltf-binary",
32006
+ "etag": "\"9084-N9S2enupsA8WyhEHtkIgQ+RBDV4\"",
32007
+ "mtime": "2026-08-27T07:03:12.526Z",
32008
+ "size": 36996,
32009
+ "path": "../public/assets/game/devices/winder.glb"
32010
+ },
32011
+ "/assets/game/npc/boltnu-sheet.png": {
31768
32012
  "type": "image/png",
31769
- "etag": "\"f65-ivBz79RSNtXu3px7cWEzCwMXdkg\"",
32013
+ "etag": "\"a14-8xg90l10OuRoiEEgFXx9PTGJ9rA\"",
31770
32014
  "mtime": "2026-08-25T12:20:54.513Z",
31771
- "size": 3941,
31772
- "path": "../public/assets/game/npc/fluttaflap-sheet.png"
32015
+ "size": 2580,
32016
+ "path": "../public/assets/game/npc/boltnu-sheet.png"
31773
32017
  },
31774
32018
  "/assets/game/npc/rockitten-sheet.png": {
31775
32019
  "type": "image/png",
@@ -31778,13 +32022,6 @@ const assets = {
31778
32022
  "size": 1926,
31779
32023
  "path": "../public/assets/game/npc/rockitten-sheet.png"
31780
32024
  },
31781
- "/assets/game/npc/boltnu-sheet.png": {
31782
- "type": "image/png",
31783
- "etag": "\"a14-8xg90l10OuRoiEEgFXx9PTGJ9rA\"",
31784
- "mtime": "2026-08-25T12:20:54.513Z",
31785
- "size": 2580,
31786
- "path": "../public/assets/game/npc/boltnu-sheet.png"
31787
- },
31788
32025
  "/assets/game/npc/tux-sheet.png": {
31789
32026
  "type": "image/png",
31790
32027
  "etag": "\"912-kf4+Q7EukO60VT6vlziy5RrzuUo\"",
@@ -31792,6 +32029,13 @@ const assets = {
31792
32029
  "size": 2322,
31793
32030
  "path": "../public/assets/game/npc/tux-sheet.png"
31794
32031
  },
32032
+ "/assets/game/npc/fluttaflap-sheet.png": {
32033
+ "type": "image/png",
32034
+ "etag": "\"f65-ivBz79RSNtXu3px7cWEzCwMXdkg\"",
32035
+ "mtime": "2026-08-25T12:20:54.513Z",
32036
+ "size": 3941,
32037
+ "path": "../public/assets/game/npc/fluttaflap-sheet.png"
32038
+ },
31795
32039
  "/assets/game/player/misa-back-walk.000.png": {
31796
32040
  "type": "image/png",
31797
32041
  "etag": "\"157-/Sm0qrBJSHEFTGYwuSqnzRaX3Jk\"",
@@ -31841,19 +32085,19 @@ const assets = {
31841
32085
  "size": 341,
31842
32086
  "path": "../public/assets/game/player/misa-front-walk.001.png"
31843
32087
  },
31844
- "/assets/game/player/misa-front-walk.002.png": {
32088
+ "/assets/game/player/misa-front-walk.003.png": {
31845
32089
  "type": "image/png",
31846
- "etag": "\"155-UzIsnRRYoGpmHf5w9T7CLy/0ubw\"",
32090
+ "etag": "\"155-JVYjyw5Raquze4YHeYII+iXfJx4\"",
31847
32091
  "mtime": "2026-08-25T12:20:54.515Z",
31848
32092
  "size": 341,
31849
- "path": "../public/assets/game/player/misa-front-walk.002.png"
32093
+ "path": "../public/assets/game/player/misa-front-walk.003.png"
31850
32094
  },
31851
- "/assets/game/player/misa-front-walk.003.png": {
32095
+ "/assets/game/player/misa-front-walk.002.png": {
31852
32096
  "type": "image/png",
31853
- "etag": "\"155-JVYjyw5Raquze4YHeYII+iXfJx4\"",
32097
+ "etag": "\"155-UzIsnRRYoGpmHf5w9T7CLy/0ubw\"",
31854
32098
  "mtime": "2026-08-25T12:20:54.515Z",
31855
32099
  "size": 341,
31856
- "path": "../public/assets/game/player/misa-front-walk.003.png"
32100
+ "path": "../public/assets/game/player/misa-front-walk.002.png"
31857
32101
  },
31858
32102
  "/assets/game/player/misa-front.png": {
31859
32103
  "type": "image/png",
@@ -31876,6 +32120,13 @@ const assets = {
31876
32120
  "size": 319,
31877
32121
  "path": "../public/assets/game/player/misa-left-walk.001.png"
31878
32122
  },
32123
+ "/assets/game/player/misa-left-walk.003.png": {
32124
+ "type": "image/png",
32125
+ "etag": "\"13f-1/+5Oh6upY4V8FkyK62tdXeFc7o\"",
32126
+ "mtime": "2026-08-25T12:20:54.516Z",
32127
+ "size": 319,
32128
+ "path": "../public/assets/game/player/misa-left-walk.003.png"
32129
+ },
31879
32130
  "/assets/game/player/misa-left-walk.002.png": {
31880
32131
  "type": "image/png",
31881
32132
  "etag": "\"13e-ZO/OghsjeAi+tGQq5r7slwZn0zg\"",
@@ -31883,12 +32134,12 @@ const assets = {
31883
32134
  "size": 318,
31884
32135
  "path": "../public/assets/game/player/misa-left-walk.002.png"
31885
32136
  },
31886
- "/assets/game/player/misa-left-walk.003.png": {
32137
+ "/assets/game/player/misa-left.png": {
31887
32138
  "type": "image/png",
31888
- "etag": "\"13f-1/+5Oh6upY4V8FkyK62tdXeFc7o\"",
32139
+ "etag": "\"13f-U80SqejQLrLmFSm4ifHPjYI/r5Q\"",
31889
32140
  "mtime": "2026-08-25T12:20:54.516Z",
31890
32141
  "size": 319,
31891
- "path": "../public/assets/game/player/misa-left-walk.003.png"
32142
+ "path": "../public/assets/game/player/misa-left.png"
31892
32143
  },
31893
32144
  "/assets/game/player/misa-right-walk.000.png": {
31894
32145
  "type": "image/png",
@@ -31904,13 +32155,6 @@ const assets = {
31904
32155
  "size": 302,
31905
32156
  "path": "../public/assets/game/player/misa-right-walk.001.png"
31906
32157
  },
31907
- "/assets/game/player/misa-left.png": {
31908
- "type": "image/png",
31909
- "etag": "\"13f-U80SqejQLrLmFSm4ifHPjYI/r5Q\"",
31910
- "mtime": "2026-08-25T12:20:54.516Z",
31911
- "size": 319,
31912
- "path": "../public/assets/game/player/misa-left.png"
31913
- },
31914
32158
  "/assets/game/player/misa-right-walk.002.png": {
31915
32159
  "type": "image/png",
31916
32160
  "etag": "\"12f-3fV+VP6QPPPljfYuG6yhztcSIXc\"",
@@ -31932,90 +32176,6 @@ const assets = {
31932
32176
  "size": 302,
31933
32177
  "path": "../public/assets/game/player/misa-right.png"
31934
32178
  },
31935
- "/assets/game/devices/agv.glb": {
31936
- "type": "model/gltf-binary",
31937
- "etag": "\"b0ec-SGRGNfFN89F7v1GROXKGve7pQqs\"",
31938
- "mtime": "2026-08-27T07:03:12.531Z",
31939
- "size": 45292,
31940
- "path": "../public/assets/game/devices/agv.glb"
31941
- },
31942
- "/assets/game/devices/caster.glb": {
31943
- "type": "model/gltf-binary",
31944
- "etag": "\"5874-Qd988sa7u1y3lgH8K/zhzRLbRbs\"",
31945
- "mtime": "2026-08-27T07:03:12.510Z",
31946
- "size": 22644,
31947
- "path": "../public/assets/game/devices/caster.glb"
31948
- },
31949
- "/assets/game/devices/device-console.glb": {
31950
- "type": "model/gltf-binary",
31951
- "etag": "\"3984-GibNFJHAqtYWIxLy79rzU1HZAds\"",
31952
- "mtime": "2026-08-26T05:23:14.559Z",
31953
- "size": 14724,
31954
- "path": "../public/assets/game/devices/device-console.glb"
31955
- },
31956
- "/assets/game/devices/device-robot-arm.glb": {
31957
- "type": "model/gltf-binary",
31958
- "etag": "\"37fc-uBxMDklo0SfaA6KXZIylh/S2p+c\"",
31959
- "mtime": "2026-08-26T05:23:14.560Z",
31960
- "size": 14332,
31961
- "path": "../public/assets/game/devices/device-robot-arm.glb"
31962
- },
31963
- "/assets/game/devices/device-scanner.glb": {
31964
- "type": "model/gltf-binary",
31965
- "etag": "\"28e0-uKYZaLiZiCedMMozKBOFU14HUSE\"",
31966
- "mtime": "2026-08-26T05:23:14.560Z",
31967
- "size": 10464,
31968
- "path": "../public/assets/game/devices/device-scanner.glb"
31969
- },
31970
- "/assets/game/devices/extruder.glb": {
31971
- "type": "model/gltf-binary",
31972
- "etag": "\"18124-H6X1eQmFDn6eONUMGU6lGdQafZ8\"",
31973
- "mtime": "2026-08-27T07:03:12.506Z",
31974
- "size": 98596,
31975
- "path": "../public/assets/game/devices/extruder.glb"
31976
- },
31977
- "/assets/game/devices/mdo.glb": {
31978
- "type": "model/gltf-binary",
31979
- "etag": "\"132e4-EDslgF5+17dSukguA0eZzN4I0+o\"",
31980
- "mtime": "2026-08-27T07:03:12.518Z",
31981
- "size": 78564,
31982
- "path": "../public/assets/game/devices/mdo.glb"
31983
- },
31984
- "/assets/game/devices/power-cabinet.glb": {
31985
- "type": "model/gltf-binary",
31986
- "etag": "\"54f0-KsrAxig9JTAY5SGKK3jbdJXB6fk\"",
31987
- "mtime": "2026-08-27T07:03:12.534Z",
31988
- "size": 21744,
31989
- "path": "../public/assets/game/devices/power-cabinet.glb"
31990
- },
31991
- "/assets/game/devices/pump.glb": {
31992
- "type": "model/gltf-binary",
31993
- "etag": "\"4bc8-yAiKZtO+P2bBmqfRvhlxcF0oduE\"",
31994
- "mtime": "2026-08-25T12:20:54.512Z",
31995
- "size": 19400,
31996
- "path": "../public/assets/game/devices/pump.glb"
31997
- },
31998
- "/assets/game/devices/tdo.glb": {
31999
- "type": "model/gltf-binary",
32000
- "etag": "\"e10c-GdMX+mG/KrSVBzy4EeAPPjFoTqM\"",
32001
- "mtime": "2026-08-27T07:03:12.523Z",
32002
- "size": 57612,
32003
- "path": "../public/assets/game/devices/tdo.glb"
32004
- },
32005
- "/assets/game/devices/thickness-scanner.glb": {
32006
- "type": "model/gltf-binary",
32007
- "etag": "\"3480-WMTbMzRrl/6AJPzEIPhRW9xPugA\"",
32008
- "mtime": "2026-08-27T07:03:12.527Z",
32009
- "size": 13440,
32010
- "path": "../public/assets/game/devices/thickness-scanner.glb"
32011
- },
32012
- "/assets/game/devices/winder.glb": {
32013
- "type": "model/gltf-binary",
32014
- "etag": "\"9084-N9S2enupsA8WyhEHtkIgQ+RBDV4\"",
32015
- "mtime": "2026-08-27T07:03:12.526Z",
32016
- "size": 36996,
32017
- "path": "../public/assets/game/devices/winder.glb"
32018
- },
32019
32179
  "/assets/game/character/bot.png": {
32020
32180
  "type": "image/png",
32021
32181
  "etag": "\"36fe-Ke8vj83Dinp8fFaRQQBfBsTGI/8\"",
@@ -32051,13 +32211,6 @@ const assets = {
32051
32211
  "size": 66956,
32052
32212
  "path": "../public/assets/game/character/hero-anime-2.glb"
32053
32213
  },
32054
- "/assets/game/character/hero-anime-4.glb": {
32055
- "type": "model/gltf-binary",
32056
- "etag": "\"10544-H4WjfazfTQ6hfF2SkK2BfHU27i8\"",
32057
- "mtime": "2026-08-26T05:23:14.558Z",
32058
- "size": 66884,
32059
- "path": "../public/assets/game/character/hero-anime-4.glb"
32060
- },
32061
32214
  "/assets/game/character/hero-anime-3.glb": {
32062
32215
  "type": "model/gltf-binary",
32063
32216
  "etag": "\"1057c-jREeKLYoS8AFWzuIOgOSr6CzehU\"",
@@ -32072,6 +32225,13 @@ const assets = {
32072
32225
  "size": 15159,
32073
32226
  "path": "../public/assets/game/character/knight.png"
32074
32227
  },
32228
+ "/assets/game/character/hero-anime-4.glb": {
32229
+ "type": "model/gltf-binary",
32230
+ "etag": "\"10544-H4WjfazfTQ6hfF2SkK2BfHU27i8\"",
32231
+ "mtime": "2026-08-26T05:23:14.558Z",
32232
+ "size": 66884,
32233
+ "path": "../public/assets/game/character/hero-anime-4.glb"
32234
+ },
32075
32235
  "/assets/game/character/mage.png": {
32076
32236
  "type": "image/png",
32077
32237
  "etag": "\"3832-juipuJuMJceZrarvR4w7OKgQejA\"",
@@ -32086,6 +32246,13 @@ const assets = {
32086
32246
  "size": 90468,
32087
32247
  "path": "../public/assets/game/wuwa/world-middle.png"
32088
32248
  },
32249
+ "/assets/game/wuwa/scene-map.png": {
32250
+ "type": "image/png",
32251
+ "etag": "\"682db-bU8mh8SeHPotvuaCc6PZzrWoT+A\"",
32252
+ "mtime": "2026-08-25T12:20:54.521Z",
32253
+ "size": 426715,
32254
+ "path": "../public/assets/game/wuwa/scene-map.png"
32255
+ },
32089
32256
  "/assets/game/wuwa/wu-aura.png": {
32090
32257
  "type": "image/png",
32091
32258
  "etag": "\"2055-NKWgEbJfTq5l56FGWi9WDWgBAbU\"",
@@ -32100,12 +32267,12 @@ const assets = {
32100
32267
  "size": 439185,
32101
32268
  "path": "../public/assets/game/wuwa/world-far.png"
32102
32269
  },
32103
- "/assets/game/wuwa/wu-lead.png": {
32270
+ "/assets/game/wuwa/wu-worker-0.png": {
32104
32271
  "type": "image/png",
32105
- "etag": "\"3b04-agK45Y3g7QDPns/kmkhTGYSTPDM\"",
32106
- "mtime": "2026-08-25T12:20:54.527Z",
32107
- "size": 15108,
32108
- "path": "../public/assets/game/wuwa/wu-lead.png"
32272
+ "etag": "\"3c59-fILvgyTv9TKRgrI9GQlRhaSR96U\"",
32273
+ "mtime": "2026-08-25T12:20:54.528Z",
32274
+ "size": 15449,
32275
+ "path": "../public/assets/game/wuwa/wu-worker-0.png"
32109
32276
  },
32110
32277
  "/assets/game/wuwa/wu-ring.png": {
32111
32278
  "type": "image/png",
@@ -32121,12 +32288,12 @@ const assets = {
32121
32288
  "size": 389,
32122
32289
  "path": "../public/assets/game/wuwa/wu-slash.png"
32123
32290
  },
32124
- "/assets/game/wuwa/wu-worker-0.png": {
32291
+ "/assets/game/wuwa/wu-lead.png": {
32125
32292
  "type": "image/png",
32126
- "etag": "\"3c59-fILvgyTv9TKRgrI9GQlRhaSR96U\"",
32127
- "mtime": "2026-08-25T12:20:54.528Z",
32128
- "size": 15449,
32129
- "path": "../public/assets/game/wuwa/wu-worker-0.png"
32293
+ "etag": "\"3b04-agK45Y3g7QDPns/kmkhTGYSTPDM\"",
32294
+ "mtime": "2026-08-25T12:20:54.527Z",
32295
+ "size": 15108,
32296
+ "path": "../public/assets/game/wuwa/wu-lead.png"
32130
32297
  },
32131
32298
  "/assets/game/wuwa/wu-worker-1.png": {
32132
32299
  "type": "image/png",
@@ -32142,19 +32309,12 @@ const assets = {
32142
32309
  "size": 15489,
32143
32310
  "path": "../public/assets/game/wuwa/wu-worker-2.png"
32144
32311
  },
32145
- "/assets/game/wuwa/scene-map.png": {
32146
- "type": "image/png",
32147
- "etag": "\"682db-bU8mh8SeHPotvuaCc6PZzrWoT+A\"",
32148
- "mtime": "2026-08-25T12:20:54.521Z",
32149
- "size": 426715,
32150
- "path": "../public/assets/game/wuwa/scene-map.png"
32151
- },
32152
- "/_nuxt/builds/meta/23c30854-f9e1-4651-bc3a-b695ef5faca4.json": {
32312
+ "/_nuxt/builds/meta/cf0a8831-4514-493d-ad5a-4e371a089ef9.json": {
32153
32313
  "type": "application/json",
32154
- "etag": "\"58-zVVI/HDK1hkR/DodPH6yHOKkqzo\"",
32155
- "mtime": "2026-09-06T11:14:51.017Z",
32314
+ "etag": "\"58-2uWT9zVWZNzpn9I4dGvabYAFTFo\"",
32315
+ "mtime": "2026-09-06T13:58:29.481Z",
32156
32316
  "size": 88,
32157
- "path": "../public/_nuxt/builds/meta/23c30854-f9e1-4651-bc3a-b695ef5faca4.json"
32317
+ "path": "../public/_nuxt/builds/meta/cf0a8831-4514-493d-ad5a-4e371a089ef9.json"
32158
32318
  },
32159
32319
  "/assets/game/wuwa/world-near.png": {
32160
32320
  "type": "image/png",