sealclaw 2026.9.21 → 2026.9.22

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 (26) hide show
  1. package/dist/build-info.json +2 -2
  2. package/dist/cli-startup-metadata.json +1 -1
  3. package/dist/control-ui/assets/{agents-BY4aXME8.js → agents-B3eGrySi.js} +2 -2
  4. package/dist/control-ui/assets/{channels-D-QByuhk.js → channels-CuNr3x8S.js} +2 -2
  5. package/dist/control-ui/assets/{cron-BgVlNDdc.js → cron-CS9cgBJT.js} +2 -2
  6. package/dist/control-ui/assets/{cron-task-list-D2nXZpo2.js → cron-task-list-CU6ybcB9.js} +2 -2
  7. package/dist/control-ui/assets/{debug-CuGSEgIy.js → debug-DR6YkUV-.js} +2 -2
  8. package/dist/control-ui/assets/{filespace-DicgLi9K.js → filespace-jYEFvxIi.js} +2 -2
  9. package/dist/control-ui/assets/{index-CwOuBWjW.js → index-BTFXLjRb.js} +9 -9
  10. package/dist/control-ui/assets/{instances-uGReSAlG.js → instances-BXXkA07m.js} +2 -2
  11. package/dist/control-ui/assets/{nodes-DmSj9fyO.js → nodes-CJ48zMNM.js} +2 -2
  12. package/dist/control-ui/assets/{pdf-9NuP_4_b.js → pdf-DyX3XLCf.js} +2 -2
  13. package/dist/control-ui/assets/{pdf.worker-C3u58bx7.js → pdf.worker-BbbExAx6.js} +2 -2
  14. package/dist/control-ui/assets/{plugins-DlhMPMhL.js → plugins-B5NdnLkj.js} +2 -2
  15. package/dist/control-ui/assets/request-Cif3b33V.js +2 -0
  16. package/dist/control-ui/assets/{sessions-ltqOEThv.js → sessions-C0-Brdmh.js} +2 -2
  17. package/dist/control-ui/assets/{skill-center-T5345ywM.js → skill-center-B0-YuHLe.js} +2 -2
  18. package/dist/control-ui/assets/{skill-publish-DAkF1LGc.js → skill-publish-C7InyITi.js} +2 -2
  19. package/dist/control-ui/assets/{skills-CPiV0PPn.js → skills-DBun6Ded.js} +2 -2
  20. package/dist/control-ui/assets/{workspace-browser-B3o_ElYg.js → workspace-browser-oC_m4pwR.js} +2 -2
  21. package/dist/control-ui/index.html +2 -2
  22. package/dist/extensions/xicheng-bi/index.js +1 -1
  23. package/dist/plugin-sdk/.boundary-entry-shims.stamp +1 -1
  24. package/dist/postinstall-inventory.json +18 -18
  25. package/package.json +1 -1
  26. package/dist/control-ui/assets/request-C_ZSS118.js +0 -2
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "2026.9.21",
2
+ "version": "2026.9.22",
3
3
  "commit": "8144028249cb1d1f113fea3cd3a0a10da0c90052",
4
- "builtAt": "2026-09-23T15:19:58.062Z"
4
+ "builtAt": "2026-09-23T15:51:09.242Z"
5
5
  }
@@ -17,5 +17,5 @@
17
17
  ],
18
18
  "channelCatalogSignature": "2486ee9b3fd7fac8857db84a09b530a10eec0dbb",
19
19
  "rootHelpBundleSignature": "3dfec2096c9435c4992ee4ffe46db09a4d4e99ad",
20
- "rootHelpText": "\n🦞 SealClaw 2026.9.21 (8144028) — Your config is valid, your assumptions are not.\n\nUsage: openclaw [options] [command]\n\nOptions:\n --container <name> Run the CLI inside a running Podman/Docker container\n named <name> (default: env OPENCLAW_CONTAINER)\n --dev Dev profile: isolate state under ~/.openclaw-dev, default\n gateway port 19001, and shift derived ports\n (browser/canvas)\n -h, --help Display help for command\n --log-level <level> Global log level override for file + console\n (silent|fatal|error|warn|info|debug|trace)\n --no-color Disable ANSI colors\n --profile <name> Use a named profile (isolates\n OPENCLAW_STATE_DIR/OPENCLAW_CONFIG_PATH under\n ~/.openclaw-<name>)\n -V, --version output the version number\n\nCommands:\n Hint: commands suffixed with * have subcommands. Run <command> --help for details.\n acp * Agent Control Protocol tools\n agent Run one agent turn via the Gateway\n agents * Manage isolated agents (workspaces, auth, routing)\n approvals * Manage exec approvals (gateway or node host)\n backup * Create and verify local backup archives for OpenClaw\n state\n capability * Run provider-backed inference commands (fallback alias:\n infer)\n channels * Manage connected chat channels (Telegram, Discord, etc.)\n clawbot * Legacy clawbot command aliases\n commitments * List and manage inferred follow-up commitments\n completion Generate shell completion script\n config * Non-interactive config helpers\n (get/set/unset/file/validate). Default: starts guided\n setup.\n configure Interactive configuration for credentials, channels,\n gateway, and agent defaults\n crestodian Run a ring-zero setup or repair request\n cron * Manage cron jobs via the Gateway scheduler\n daemon * Gateway service (legacy alias)\n dashboard Open the Control UI with your current token\n devices * Device pairing + token management\n directory * Lookup contact and group IDs (self, peers, groups) for\n supported chat channels\n dns * DNS helpers for wide-area discovery (Tailscale + CoreDNS)\n docs Search the live OpenClaw docs\n doctor Health checks + quick fixes for the gateway and channels\n exec-policy * Show or synchronize requested exec policy with host\n approvals\n gateway * Run, inspect, and query the WebSocket Gateway\n health Fetch health from the running gateway\n help Display help for command\n hooks * Manage internal agent hooks\n infer * Run provider-backed inference commands\n logs Tail gateway file logs via RPC\n mcp * Manage OpenClaw MCP config and channel bridge\n memory Search, inspect, and reindex memory files\n message * Send, read, and manage messages\n migrate * Import state from another agent system\n models * Discover, scan, and configure models\n node * Run and manage the headless node host service\n nodes * Manage gateway-owned node pairing and node commands\n officecli-cli Install and run OfficeCLI\n onboard Interactive onboarding for gateway, workspace, and skills\n pairing * Secure DM pairing (approve inbound requests)\n plugins * Manage OpenClaw plugins\n proxy * Run the OpenClaw debug proxy and inspect captured traffic\n qr Generate mobile pairing QR/setup code\n reset Reset local config/state (keeps the CLI installed)\n sandbox * Manage sandbox containers for agent isolation\n secrets * Secrets runtime reload controls\n security * Security tools and local config audits\n sessions * List stored conversation sessions\n setup Initialize local config and agent workspace\n skills * List and inspect available skills\n status Show channel health and recent session recipients\n system * System events, heartbeat, and presence\n tasks * Inspect durable background task state\n uninstall Uninstall the gateway service + local data (CLI remains)\n update * Update OpenClaw and inspect update channel status\n webhooks * Webhook helpers and integrations\n\nExamples:\n openclaw models --help\n Show detailed help for the models command.\n openclaw channels login --verbose\n Link personal WhatsApp Web and show QR + connection logs.\n openclaw message send --target +15555550123 --message \"Hi\" --json\n Send via your web session and print JSON result.\n openclaw gateway --port 18789\n Run the WebSocket Gateway locally.\n openclaw --dev gateway\n Run a dev Gateway (isolated state/config) on ws://127.0.0.1:19001.\n openclaw gateway --force\n Kill anything bound to the default gateway port, then start it.\n openclaw gateway ...\n Gateway control via WebSocket.\n openclaw agent --to +15555550123 --message \"Run summary\" --deliver\n Talk directly to the agent using the Gateway; optionally send the WhatsApp reply.\n openclaw message send --channel telegram --target @mychat --message \"Hi\"\n Send via your Telegram bot.\n\nDocs: https://docs.openclaw.ai/cli\n\n"
20
+ "rootHelpText": "\n🦞 SealClaw 2026.9.22 (8144028) — Give me a workspace and I'll give you fewer tabs, fewer toggles, and more oxygen.\n\nUsage: openclaw [options] [command]\n\nOptions:\n --container <name> Run the CLI inside a running Podman/Docker container\n named <name> (default: env OPENCLAW_CONTAINER)\n --dev Dev profile: isolate state under ~/.openclaw-dev, default\n gateway port 19001, and shift derived ports\n (browser/canvas)\n -h, --help Display help for command\n --log-level <level> Global log level override for file + console\n (silent|fatal|error|warn|info|debug|trace)\n --no-color Disable ANSI colors\n --profile <name> Use a named profile (isolates\n OPENCLAW_STATE_DIR/OPENCLAW_CONFIG_PATH under\n ~/.openclaw-<name>)\n -V, --version output the version number\n\nCommands:\n Hint: commands suffixed with * have subcommands. Run <command> --help for details.\n acp * Agent Control Protocol tools\n agent Run one agent turn via the Gateway\n agents * Manage isolated agents (workspaces, auth, routing)\n approvals * Manage exec approvals (gateway or node host)\n backup * Create and verify local backup archives for OpenClaw\n state\n capability * Run provider-backed inference commands (fallback alias:\n infer)\n channels * Manage connected chat channels (Telegram, Discord, etc.)\n clawbot * Legacy clawbot command aliases\n commitments * List and manage inferred follow-up commitments\n completion Generate shell completion script\n config * Non-interactive config helpers\n (get/set/unset/file/validate). Default: starts guided\n setup.\n configure Interactive configuration for credentials, channels,\n gateway, and agent defaults\n crestodian Run a ring-zero setup or repair request\n cron * Manage cron jobs via the Gateway scheduler\n daemon * Gateway service (legacy alias)\n dashboard Open the Control UI with your current token\n devices * Device pairing + token management\n directory * Lookup contact and group IDs (self, peers, groups) for\n supported chat channels\n dns * DNS helpers for wide-area discovery (Tailscale + CoreDNS)\n docs Search the live OpenClaw docs\n doctor Health checks + quick fixes for the gateway and channels\n exec-policy * Show or synchronize requested exec policy with host\n approvals\n gateway * Run, inspect, and query the WebSocket Gateway\n health Fetch health from the running gateway\n help Display help for command\n hooks * Manage internal agent hooks\n infer * Run provider-backed inference commands\n logs Tail gateway file logs via RPC\n mcp * Manage OpenClaw MCP config and channel bridge\n memory Search, inspect, and reindex memory files\n message * Send, read, and manage messages\n migrate * Import state from another agent system\n models * Discover, scan, and configure models\n node * Run and manage the headless node host service\n nodes * Manage gateway-owned node pairing and node commands\n officecli-cli Install and run OfficeCLI\n onboard Interactive onboarding for gateway, workspace, and skills\n pairing * Secure DM pairing (approve inbound requests)\n plugins * Manage OpenClaw plugins\n proxy * Run the OpenClaw debug proxy and inspect captured traffic\n qr Generate mobile pairing QR/setup code\n reset Reset local config/state (keeps the CLI installed)\n sandbox * Manage sandbox containers for agent isolation\n secrets * Secrets runtime reload controls\n security * Security tools and local config audits\n sessions * List stored conversation sessions\n setup Initialize local config and agent workspace\n skills * List and inspect available skills\n status Show channel health and recent session recipients\n system * System events, heartbeat, and presence\n tasks * Inspect durable background task state\n uninstall Uninstall the gateway service + local data (CLI remains)\n update * Update OpenClaw and inspect update channel status\n webhooks * Webhook helpers and integrations\n\nExamples:\n openclaw models --help\n Show detailed help for the models command.\n openclaw channels login --verbose\n Link personal WhatsApp Web and show QR + connection logs.\n openclaw message send --target +15555550123 --message \"Hi\" --json\n Send via your web session and print JSON result.\n openclaw gateway --port 18789\n Run the WebSocket Gateway locally.\n openclaw --dev gateway\n Run a dev Gateway (isolated state/config) on ws://127.0.0.1:19001.\n openclaw gateway --force\n Kill anything bound to the default gateway port, then start it.\n openclaw gateway ...\n Gateway control via WebSocket.\n openclaw agent --to +15555550123 --message \"Run summary\" --deliver\n Talk directly to the agent using the Gateway; optionally send the WhatsApp reply.\n openclaw message send --channel telegram --target @mychat --message \"Hi\"\n Send via your Telegram bot.\n\nDocs: https://docs.openclaw.ai/cli\n\n"
21
21
  }
@@ -1,4 +1,4 @@
1
- import{a as e,n as t}from"./lit-BpL4H2cG.js";import{t as n}from"./string-coerce-_7w9q4Tr.js";import{n as r,t as i}from"./directive-Ckb1BD7Q.js";import{$ as a,A as o,B as s,E as c,F as l,H as u,I as d,J as f,L as p,M as m,N as h,O as g,P as _,R as v,U as y,V as ee,W as b,X as x,c as S,ct as C,h as w,j as te,k as T,o as E,q as D,s as O,u as ne,ut as k,z as A}from"./index-CwOuBWjW.js";import{r as re}from"./channel-config-extras-DA53eIxW.js";import{i as j,n as M,r as N,t as ie}from"./skills-shared-BBT67HQZ.js";var ae=i(class extends r{constructor(){super(...arguments),this.key=t}render(e,t){return this.key=e,t}update(e,[t,n]){return t!==this.key&&(x(e),this.key=t),n}});function oe(n){var r,i,a,o,c,u,f,m,h,g,y,ee,b;let{agent:x,configForm:S,agentFilesList:C,configLoading:w,configSaving:te,configDirty:E,onConfigReload:D,onConfigSave:O,onModelChange:ne,onModelFallbacksChange:k,onSelectPanel:re}=n,j=!!(n.defaultId&&x.id===n.defaultId),M=d(S,x.id),N=x.model,ie=(C&&C.agentId===x.id?C.workspace:null)||((r=M.entry)==null?void 0:r.workspace)||((i=M.defaults)==null?void 0:i.workspace)||x.workspace||`default`,ae=(a=M.entry)!=null&&a.model?A((o=M.entry)==null?void 0:o.model):(c=M.defaults)!=null&&c.model?A((u=M.defaults)==null?void 0:u.model):A(N),oe=p(x.agentRuntime),se=A(((f=M.defaults)==null?void 0:f.model)??N),ce=s((m=M.entry)==null?void 0:m.model),P=s((h=M.defaults)==null?void 0:h.model)||(se===`-`?null:_(se))||(S?null:s(N)),le=ce??P??null,F=j?le:ce,I=v((g=M.entry)==null?void 0:g.model)??v((y=M.defaults)==null?void 0:y.model)??(S?null:v(N))??[],L=Array.isArray((ee=M.entry)==null?void 0:ee.skills)?(b=M.entry)==null?void 0:b.skills:null,ue=(L==null?void 0:L.length)??null,R=!S||w||te,de=e=>{let t=I.filter((t,n)=>n!==e);k(x.id,t)};return e`
1
+ import{a as e,n as t}from"./lit-BpL4H2cG.js";import{t as n}from"./string-coerce-_7w9q4Tr.js";import{n as r,t as i}from"./directive-Ckb1BD7Q.js";import{$ as a,A as o,B as s,E as c,F as l,H as u,I as d,J as f,L as p,M as m,N as h,O as g,P as _,R as v,U as y,V as ee,W as b,X as x,c as S,ct as C,h as w,j as te,k as T,o as E,q as D,s as O,u as ne,ut as k,z as A}from"./index-BTFXLjRb.js";import{r as re}from"./channel-config-extras-DA53eIxW.js";import{i as j,n as M,r as N,t as ie}from"./skills-shared-BBT67HQZ.js";var ae=i(class extends r{constructor(){super(...arguments),this.key=t}render(e,t){return this.key=e,t}update(e,[t,n]){return t!==this.key&&(x(e),this.key=t),n}});function oe(n){var r,i,a,o,c,u,f,m,h,g,y,ee,b;let{agent:x,configForm:S,agentFilesList:C,configLoading:w,configSaving:te,configDirty:E,onConfigReload:D,onConfigSave:O,onModelChange:ne,onModelFallbacksChange:k,onSelectPanel:re}=n,j=!!(n.defaultId&&x.id===n.defaultId),M=d(S,x.id),N=x.model,ie=(C&&C.agentId===x.id?C.workspace:null)||((r=M.entry)==null?void 0:r.workspace)||((i=M.defaults)==null?void 0:i.workspace)||x.workspace||`default`,ae=(a=M.entry)!=null&&a.model?A((o=M.entry)==null?void 0:o.model):(c=M.defaults)!=null&&c.model?A((u=M.defaults)==null?void 0:u.model):A(N),oe=p(x.agentRuntime),se=A(((f=M.defaults)==null?void 0:f.model)??N),ce=s((m=M.entry)==null?void 0:m.model),P=s((h=M.defaults)==null?void 0:h.model)||(se===`-`?null:_(se))||(S?null:s(N)),le=ce??P??null,F=j?le:ce,I=v((g=M.entry)==null?void 0:g.model)??v((y=M.defaults)==null?void 0:y.model)??(S?null:v(N))??[],L=Array.isArray((ee=M.entry)==null?void 0:ee.skills)?(b=M.entry)==null?void 0:b.skills:null,ue=(L==null?void 0:L.length)??null,R=!S||w||te,de=e=>{let t=I.filter((t,n)=>n!==e);k(x.id,t)};return e`
2
2
  <section class="card">
3
3
  <div class="card-title">Overview</div>
4
4
  <div class="card-sub">Workspace paths and identity metadata.</div>
@@ -999,4 +999,4 @@ Please report this to https://github.com/markedjs/marked.`,e){let e=`<p>An error
999
999
  `)}
1000
1000
  </div>
1001
1001
  `}export{wn as renderAgents};
1002
- //# sourceMappingURL=agents-BY4aXME8.js.map
1002
+ //# sourceMappingURL=agents-B3eGrySi.js.map
@@ -1,4 +1,4 @@
1
- import{a as e,n as t}from"./lit-BpL4H2cG.js";import{Q as n,Z as r,ct as i,lt as a,m as o,p as s}from"./index-CwOuBWjW.js";import{n as c,t as l}from"./channel-config-extras-DA53eIxW.js";function u(e,t){let r=e;for(let e of t){if(!r)return null;let t=n(r);if(t===`object`){let t=r.properties??{};if(typeof e==`string`&&t[e]){r=t[e];continue}let n=r.additionalProperties;if(typeof e==`string`&&n&&typeof n==`object`){r=n;continue}return null}if(t===`array`){if(typeof e!=`number`)return null;r=(Array.isArray(r.items)?r.items[0]:r.items)??null;continue}return null}return r}function d(e,t){return c(e,t)??{}}var f=[`groupPolicy`,`streamMode`,`dmPolicy`];function p(t){let n=f.flatMap(e=>e in t?[[e,t[e]]]:[]);return n.length===0?null:e`
1
+ import{a as e,n as t}from"./lit-BpL4H2cG.js";import{Q as n,Z as r,ct as i,lt as a,m as o,p as s}from"./index-BTFXLjRb.js";import{n as c,t as l}from"./channel-config-extras-DA53eIxW.js";function u(e,t){let r=e;for(let e of t){if(!r)return null;let t=n(r);if(t===`object`){let t=r.properties??{};if(typeof e==`string`&&t[e]){r=t[e];continue}let n=r.additionalProperties;if(typeof e==`string`&&n&&typeof n==`object`){r=n;continue}return null}if(t===`array`){if(typeof e!=`number`)return null;r=(Array.isArray(r.items)?r.items[0]:r.items)??null;continue}return null}return r}function d(e,t){return c(e,t)??{}}var f=[`groupPolicy`,`streamMode`,`dmPolicy`];function p(t){let n=f.flatMap(e=>e in t?[[e,t[e]]]:[]);return n.length===0?null:e`
2
2
  <div class="status-list" style="margin-top: 12px;">
3
3
  ${n.map(([t,n])=>e`
4
4
  <div>
@@ -346,4 +346,4 @@ ${n.snapshot?JSON.stringify(n.snapshot,null,2):`尚无快照。`}
346
346
  </div>
347
347
  </div>
348
348
  `}export{P as renderChannels};
349
- //# sourceMappingURL=channels-D-QByuhk.js.map
349
+ //# sourceMappingURL=channels-CuNr3x8S.js.map
@@ -1,4 +1,4 @@
1
- import{a as e,n as t}from"./lit-BpL4H2cG.js";import{G as n,J as r,T as i,ct as a,ot as o,s,tt as c,u as l,w as u}from"./index-CwOuBWjW.js";function d(){return[{value:`ok`,label:`成功`},{value:`error`,label:`错误`},{value:`skipped`,label:`已跳过`}]}function f(){return[{value:`delivered`,label:`已投递`},{value:`not-delivered`,label:`未投递`},{value:`unknown`,label:`未知`},{value:`not-requested`,label:`未请求`}]}function p(e,t,n){let r=new Set(e);return n?r.add(t):r.delete(t),Array.from(r)}function m(e,t){return e.length===0?t:e.length<=2?e.join(`, `):`${e[0]} +${e.length-1}`}function h(e){var t;let n=[`last`,...e.channels.filter(Boolean)],r=(t=e.form.deliveryChannel)==null?void 0:t.trim();r&&!n.includes(r)&&n.push(r);let i=new Set;return n.filter(e=>i.has(e)?!1:(i.add(e),!0))}function g(e,t){var n,r;if(t===`last`)return`last`;let i=(n=e.channelMeta)==null?void 0:n.find(e=>e.id===t);return i!=null&&i.label?i.label:((r=e.channelLabels)==null?void 0:r[t])??t}function _(t){return e`
1
+ import{a as e,n as t}from"./lit-BpL4H2cG.js";import{G as n,J as r,T as i,ct as a,ot as o,s,tt as c,u as l,w as u}from"./index-BTFXLjRb.js";function d(){return[{value:`ok`,label:`成功`},{value:`error`,label:`错误`},{value:`skipped`,label:`已跳过`}]}function f(){return[{value:`delivered`,label:`已投递`},{value:`not-delivered`,label:`未投递`},{value:`unknown`,label:`未知`},{value:`not-requested`,label:`未请求`}]}function p(e,t,n){let r=new Set(e);return n?r.add(t):r.delete(t),Array.from(r)}function m(e,t){return e.length===0?t:e.length<=2?e.join(`, `):`${e[0]} +${e.length-1}`}function h(e){var t;let n=[`last`,...e.channels.filter(Boolean)],r=(t=e.form.deliveryChannel)==null?void 0:t.trim();r&&!n.includes(r)&&n.push(r);let i=new Set;return n.filter(e=>i.has(e)?!1:(i.add(e),!0))}function g(e,t){var n,r;if(t===`last`)return`last`;let i=(n=e.channelMeta)==null?void 0:n.find(e=>e.id===t);return i!=null&&i.label?i.label:((r=e.channelLabels)==null?void 0:r[t])??t}function _(t){return e`
2
2
  <div class="field cron-filter-dropdown" data-filter=${t.id}>
3
3
  <span>${t.title}</span>
4
4
  <details class="cron-filter-dropdown__details">
@@ -960,4 +960,4 @@ import{a as e,n as t}from"./lit-BpL4H2cG.js";import{G as n,J as r,T as i,ct as a
960
960
  </div>
961
961
  </div>
962
962
  `}export{T as renderCron};
963
- //# sourceMappingURL=cron-BgVlNDdc.js.map
963
+ //# sourceMappingURL=cron-CS9cgBJT.js.map
@@ -1,4 +1,4 @@
1
- import{a as e,n as t}from"./lit-BpL4H2cG.js";import{S as n,Y as r,lt as i,ot as a,q as o}from"./index-CwOuBWjW.js";var s=`万能玺虾`;function c(e){if(e==null||!Number.isFinite(e)||e<0)return`未知`;if(e<1e3)return`${Math.round(e)} 毫秒`;let t=Math.round(e/1e3);if(t<60)return`${t} 秒`;let n=Math.round(t/60);if(n<60)return`${n} 分钟`;let r=Math.round(n/60);return r<24?`${r} 小时`:`${Math.round(r/24)} 天`}function l(e){let t=e.schedule;return t.kind===`at`?`指定时间 ${a(Date.parse(t.at))}`:t.kind===`every`?`每 ${c(t.everyMs)}`:`${t.expr}${t.tz?` (${t.tz})`:``}`}function u(e){let t=e.payload;if(t.kind===`agentTurn`){var n;return((n=t.model)==null?void 0:n.trim())||`自动选择`}return`系统事件`}function d(e){var t,n;if((t=e.description)!=null&&t.trim())return e.description.trim();let r=e.payload;if(r.kind===`agentTurn`){var i;return((i=r.message)==null?void 0:i.trim())??``}return((n=r.text)==null?void 0:n.trim())??``}function f(t){var n,r;let i=(n=t.state)==null?void 0:n.lastStatus;return typeof((r=t.state)==null?void 0:r.runningAtMs)==`number`?e`<span class="ctl-pill ctl-pill--running">${`进行中`}</span>`:t.deleteAfterRun&&!t.enabled||!t.enabled?e`<span class="ctl-pill ctl-pill--muted">${`已暂停`}</span>`:i===`ok`?e`<span class="ctl-pill ctl-pill--ok">${`上次成功`}</span>`:i===`error`?e`<span class="ctl-pill ctl-pill--error">${`上次失败`}</span>`:i===`skipped`?e`<span class="ctl-pill ctl-pill--muted">${`已跳过`}</span>`:e`<span class="ctl-pill ctl-pill--muted">${`未运行`}</span>`}function p(e){var t;let n=(t=e.state)==null?void 0:t.nextRunAtMs;if(!e.enabled||!n)return`—`;let r=n-Date.now();if(r<=0)return`即将运行`;let i=Math.round(r/1e3);if(i<60)return`1 分钟内`;let a=Math.round(i/60);if(a<60)return`${a} 分钟后`;let o=Math.round(a/60);return o<48?`${o} 小时后`:`${Math.round(o/24)} 天后`}function m(r,i){let a=i.skills?n({value:r,data:i.skills}):null;return a?e`<div class="ctl-card__desc" title=${r}>
1
+ import{a as e,n as t}from"./lit-BpL4H2cG.js";import{S as n,Y as r,lt as i,ot as a,q as o}from"./index-BTFXLjRb.js";var s=`万能玺虾`;function c(e){if(e==null||!Number.isFinite(e)||e<0)return`未知`;if(e<1e3)return`${Math.round(e)} 毫秒`;let t=Math.round(e/1e3);if(t<60)return`${t} 秒`;let n=Math.round(t/60);if(n<60)return`${n} 分钟`;let r=Math.round(n/60);return r<24?`${r} 小时`:`${Math.round(r/24)} 天`}function l(e){let t=e.schedule;return t.kind===`at`?`指定时间 ${a(Date.parse(t.at))}`:t.kind===`every`?`每 ${c(t.everyMs)}`:`${t.expr}${t.tz?` (${t.tz})`:``}`}function u(e){let t=e.payload;if(t.kind===`agentTurn`){var n;return((n=t.model)==null?void 0:n.trim())||`自动选择`}return`系统事件`}function d(e){var t,n;if((t=e.description)!=null&&t.trim())return e.description.trim();let r=e.payload;if(r.kind===`agentTurn`){var i;return((i=r.message)==null?void 0:i.trim())??``}return((n=r.text)==null?void 0:n.trim())??``}function f(t){var n,r;let i=(n=t.state)==null?void 0:n.lastStatus;return typeof((r=t.state)==null?void 0:r.runningAtMs)==`number`?e`<span class="ctl-pill ctl-pill--running">${`进行中`}</span>`:t.deleteAfterRun&&!t.enabled||!t.enabled?e`<span class="ctl-pill ctl-pill--muted">${`已暂停`}</span>`:i===`ok`?e`<span class="ctl-pill ctl-pill--ok">${`上次成功`}</span>`:i===`error`?e`<span class="ctl-pill ctl-pill--error">${`上次失败`}</span>`:i===`skipped`?e`<span class="ctl-pill ctl-pill--muted">${`已跳过`}</span>`:e`<span class="ctl-pill ctl-pill--muted">${`未运行`}</span>`}function p(e){var t;let n=(t=e.state)==null?void 0:t.nextRunAtMs;if(!e.enabled||!n)return`—`;let r=n-Date.now();if(r<=0)return`即将运行`;let i=Math.round(r/1e3);if(i<60)return`1 分钟内`;let a=Math.round(i/60);if(a<60)return`${a} 分钟后`;let o=Math.round(a/60);return o<48?`${o} 小时后`:`${Math.round(o/24)} 天后`}function m(r,i){let a=i.skills?n({value:r,data:i.skills}):null;return a?e`<div class="ctl-card__desc" title=${r}>
2
2
  <span class="ctl-card__skill-tag">${o.zap}<span>${a.label}</span></span
3
3
  >${a.rest?e`<span class="ctl-card__skill-rest">${a.rest}</span>`:t}
4
4
  </div>`:e`<div class="ctl-card__desc" title=${r}>${r}</div>`}function h(n,r){let i=r.openMenuJobId===n.id,a=d(n);return e`
@@ -223,4 +223,4 @@ import{a as e,n as t}from"./lit-BpL4H2cG.js";import{S as n,Y as r,lt as i,ot as
223
223
  </div>
224
224
  </openclaw-modal-dialog>
225
225
  `}export{w as renderCronTaskList};
226
- //# sourceMappingURL=cron-task-list-D2nXZpo2.js.map
226
+ //# sourceMappingURL=cron-task-list-CU6ybcB9.js.map
@@ -1,4 +1,4 @@
1
- import{a as e,n as t}from"./lit-BpL4H2cG.js";import{l as n}from"./index-CwOuBWjW.js";function r(r){let i=r.status&&typeof r.status==`object`?r.status.securityAudit:null,a=(i==null?void 0:i.summary)??null,o=(a==null?void 0:a.critical)??0,s=(a==null?void 0:a.warn)??0,c=(a==null?void 0:a.info)??0,l=o>0?`danger`:s>0?`warn`:`success`,u=o>0?`${String(o)} 个严重问题`:s>0?`${String(s)} 个警告`:`无严重问题`;return e`
1
+ import{a as e,n as t}from"./lit-BpL4H2cG.js";import{l as n}from"./index-BTFXLjRb.js";function r(r){let i=r.status&&typeof r.status==`object`?r.status.securityAudit:null,a=(i==null?void 0:i.summary)??null,o=(a==null?void 0:a.critical)??0,s=(a==null?void 0:a.warn)??0,c=(a==null?void 0:a.info)??0,l=o>0?`danger`:s>0?`warn`:`success`,u=o>0?`${String(o)} 个严重问题`:s>0?`${String(s)} 个警告`:`无严重问题`;return e`
2
2
  <section class="grid">
3
3
  <div class="card">
4
4
  <div class="row" style="justify-content: space-between;">
@@ -93,4 +93,4 @@ ${n(t.payload)}</pre
93
93
  `}
94
94
  </section>
95
95
  `}export{r as renderDebug};
96
- //# sourceMappingURL=debug-CuGSEgIy.js.map
96
+ //# sourceMappingURL=debug-DR6YkUV-.js.map
@@ -1,4 +1,4 @@
1
- import{a as e,n as t}from"./lit-BpL4H2cG.js";import{q as n}from"./index-CwOuBWjW.js";function r(e){return e<1024?`${e} B`:e<1024*1024?`${(e/1024).toFixed(1)} KB`:`${(e/(1024*1024)).toFixed(1)} MB`}function i(e){let t=Date.now()-e,n=Math.floor(t/6e4);if(n<1)return`刚刚`;if(n<60)return`${n} 分钟前`;let r=Math.floor(n/60);if(r<24)return`${r} 小时前`;let i=Math.floor(r/24);if(i<7)return`${i} 天前`;let a=new Date(e);return`${a.getMonth()+1}/${a.getDate()}`}function a(e){let t=e.lastIndexOf(`.`),n=t>=0?e.slice(t+1).toLowerCase():``;return[`png`,`jpg`,`jpeg`,`gif`,`webp`,`svg`,`ico`,`bmp`].includes(n)?`filespace__file-icon--image`:[`ts`,`tsx`,`js`,`jsx`].includes(n)?`filespace__file-icon--js`:[`py`].includes(n)?`filespace__file-icon--py`:[`md`,`txt`].includes(n)?`filespace__file-icon--doc`:[`json`,`yaml`,`yml`,`toml`].includes(n)?`filespace__file-icon--config`:[`csv`,`xlsx`,`xls`].includes(n)?`filespace__file-icon--csv`:[`rs`,`go`,`sh`,`bash`,`zsh`].includes(n)?`filespace__file-icon--code`:`filespace__file-icon--default`}function o(e){let t=e.lastIndexOf(`.`),r=t>=0?e.slice(t+1).toLowerCase():``;return[`png`,`jpg`,`jpeg`,`gif`,`webp`,`svg`,`ico`,`bmp`].includes(r)?n.image:[`ts`,`tsx`,`js`,`jsx`,`py`,`rs`,`go`,`sh`,`bash`,`json`,`yaml`,`yml`,`toml`].includes(r)?n.fileCode:n.fileText}function s(e,t){let n=e??[],r=[];for(let e of n){let n=t.length>0&&e.sessionLabel.toLowerCase().includes(t),i=e=>e.name.toLowerCase().includes(t)||e.path.toLowerCase().includes(t),a=!t||n?e.outputFiles:e.outputFiles.filter(i),o=!t||n?e.refFiles:e.refFiles.filter(i),s=a.length+o.length;s>0&&r.push({...e,outputFiles:a,refFiles:o,total:s})}return r}function c(c){let{loading:l,error:u,data:d,search:f,collapsed:p,connected:m}=c,h=f.trim().toLowerCase(),g=s(d,h),_=g.reduce((e,t)=>e+t.total,0),v=(n,s)=>{let l=a(s.name),u=o(s.name),d=s.size==null?null:r(s.size),f=s.updatedAtMs==null?null:i(s.updatedAtMs);return e`
1
+ import{a as e,n as t}from"./lit-BpL4H2cG.js";import{q as n}from"./index-BTFXLjRb.js";function r(e){return e<1024?`${e} B`:e<1024*1024?`${(e/1024).toFixed(1)} KB`:`${(e/(1024*1024)).toFixed(1)} MB`}function i(e){let t=Date.now()-e,n=Math.floor(t/6e4);if(n<1)return`刚刚`;if(n<60)return`${n} 分钟前`;let r=Math.floor(n/60);if(r<24)return`${r} 小时前`;let i=Math.floor(r/24);if(i<7)return`${i} 天前`;let a=new Date(e);return`${a.getMonth()+1}/${a.getDate()}`}function a(e){let t=e.lastIndexOf(`.`),n=t>=0?e.slice(t+1).toLowerCase():``;return[`png`,`jpg`,`jpeg`,`gif`,`webp`,`svg`,`ico`,`bmp`].includes(n)?`filespace__file-icon--image`:[`ts`,`tsx`,`js`,`jsx`].includes(n)?`filespace__file-icon--js`:[`py`].includes(n)?`filespace__file-icon--py`:[`md`,`txt`].includes(n)?`filespace__file-icon--doc`:[`json`,`yaml`,`yml`,`toml`].includes(n)?`filespace__file-icon--config`:[`csv`,`xlsx`,`xls`].includes(n)?`filespace__file-icon--csv`:[`rs`,`go`,`sh`,`bash`,`zsh`].includes(n)?`filespace__file-icon--code`:`filespace__file-icon--default`}function o(e){let t=e.lastIndexOf(`.`),r=t>=0?e.slice(t+1).toLowerCase():``;return[`png`,`jpg`,`jpeg`,`gif`,`webp`,`svg`,`ico`,`bmp`].includes(r)?n.image:[`ts`,`tsx`,`js`,`jsx`,`py`,`rs`,`go`,`sh`,`bash`,`json`,`yaml`,`yml`,`toml`].includes(r)?n.fileCode:n.fileText}function s(e,t){let n=e??[],r=[];for(let e of n){let n=t.length>0&&e.sessionLabel.toLowerCase().includes(t),i=e=>e.name.toLowerCase().includes(t)||e.path.toLowerCase().includes(t),a=!t||n?e.outputFiles:e.outputFiles.filter(i),o=!t||n?e.refFiles:e.refFiles.filter(i),s=a.length+o.length;s>0&&r.push({...e,outputFiles:a,refFiles:o,total:s})}return r}function c(c){let{loading:l,error:u,data:d,search:f,collapsed:p,connected:m}=c,h=f.trim().toLowerCase(),g=s(d,h),_=g.reduce((e,t)=>e+t.total,0),v=(n,s)=>{let l=a(s.name),u=o(s.name),d=s.size==null?null:r(s.size),f=s.updatedAtMs==null?null:i(s.updatedAtMs);return e`
2
2
  <div
3
3
  class="filespace__file"
4
4
  @click=${()=>c.onOpenFile(n.agentId,s.path)}
@@ -113,4 +113,4 @@ import{a as e,n as t}from"./lit-BpL4H2cG.js";import{q as n}from"./index-CwOuBWjW
113
113
  `}</div>
114
114
  </div>
115
115
  `}export{c as renderFileSpace};
116
- //# sourceMappingURL=filespace-DicgLi9K.js.map
116
+ //# sourceMappingURL=filespace-jYEFvxIi.js.map