@lawpath-tech/openclaw 2026.2.21-5 → 2026.2.21-7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (105) hide show
  1. package/dist/{agents-CuMsK_DS.js → agents-7Q8UpA5j.js} +4 -4
  2. package/dist/{agents.config-e_xeppAS.js → agents.config-B15zpZGt.js} +1 -1
  3. package/dist/{agents.config-BXoIfujZ.js → agents.config-CwEtNKiI.js} +1 -1
  4. package/dist/{audio-preflight-DSln0Zsg.js → audio-preflight-ZIJNGHIM.js} +4 -4
  5. package/dist/{auth-choice-Cds0pSuL.js → auth-choice-Budhs7AA.js} +1 -1
  6. package/dist/{auth-choice-B45xiAZ_.js → auth-choice-DFbnmkw5.js} +1 -1
  7. package/dist/{banner-BrBNvO5B.js → banner-DxWInoxb.js} +1 -1
  8. package/dist/build-info.json +3 -3
  9. package/dist/bundled/boot-md/handler.js +6 -6
  10. package/dist/bundled/session-memory/handler.js +6 -6
  11. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  12. package/dist/{channel-options-HIUzORO6.js → channel-options-DWLeOUBy.js} +1 -1
  13. package/dist/{channel-options-K4gVRVl0.js → channel-options-W6nGSLO0.js} +1 -1
  14. package/dist/{channel-web-BhQMRa2x.js → channel-web-CJyeVI48.js} +1 -1
  15. package/dist/{channels-cli-SwsUfdhN.js → channels-cli-BvtSTQfF.js} +4 -4
  16. package/dist/{channels-cli-RbZdgktP.js → channels-cli-C33gfn1H.js} +4 -4
  17. package/dist/{chrome-_026ohiG.js → chrome-HMhmjNaM.js} +7 -7
  18. package/dist/{cli-DCtguEMl.js → cli-A46q0zpY.js} +1 -1
  19. package/dist/{cli-DZR34VYb.js → cli-XcEs8KK_.js} +1 -1
  20. package/dist/{command-registry-CuwwryVI.js → command-registry-BNqpshUx.js} +9 -9
  21. package/dist/{completion-cli-Cq8iP9Aw.js → completion-cli-CIFG5xWV.js} +1 -1
  22. package/dist/{completion-cli-CHvR27lh.js → completion-cli-Ceqiqhkn.js} +2 -2
  23. package/dist/{config-cli-Ci5S1iD4.js → config-cli-CXWx88no.js} +1 -1
  24. package/dist/{config-cli-BwShV3v6.js → config-cli-eyAbRY_5.js} +1 -1
  25. package/dist/{configure-DPlBhyXy.js → configure-DVaPAS_m.js} +3 -3
  26. package/dist/{configure-D_1pz9E3.js → configure-bWqFA3HM.js} +3 -3
  27. package/dist/{deliver-CChv42uL.js → deliver-CjITvpSg.js} +1 -1
  28. package/dist/{doctor-completion-BJIw8vai.js → doctor-completion-5E2ZEWx5.js} +1 -1
  29. package/dist/{doctor-completion-BfrgA2mV.js → doctor-completion-9UfiLRPo.js} +1 -1
  30. package/dist/entry.js +1 -1
  31. package/dist/extensionAPI.js +1 -1
  32. package/dist/{gateway-cli-BeBfQrbx.js → gateway-cli-DZa4pL87.js} +14 -9
  33. package/dist/{gateway-cli-yqwgOF3f.js → gateway-cli-_LSIHPmW.js} +14 -9
  34. package/dist/{health-BTIp89si.js → health-Bj5SETXV.js} +1 -1
  35. package/dist/{health-CKF0OJ25.js → health-CCZhny3_.js} +1 -1
  36. package/dist/{hooks-cli-Cjs7SuB4.js → hooks-cli-BSS-5THm.js} +2 -2
  37. package/dist/{hooks-cli-BKn8RjUM.js → hooks-cli-Bmqf1lky.js} +2 -2
  38. package/dist/{image-B9TdLqUC.js → image-DtRcO0W5.js} +1 -1
  39. package/dist/index.js +6 -6
  40. package/dist/llm-slug-generator.js +6 -6
  41. package/dist/{models-C08NQUuO.js → models-DxDVtTQ_.js} +2 -2
  42. package/dist/{models-cli-COXYLQjz.js → models-cli--9ogIpnA.js} +2 -2
  43. package/dist/{models-cli-uJJpIivJ.js → models-cli-B3OGW16o.js} +3 -3
  44. package/dist/{onboard-CnHHrRkg.js → onboard-Bf3Du6Lh.js} +2 -2
  45. package/dist/{onboard-D9sqU2kW.js → onboard-Bx0l-ThR.js} +2 -2
  46. package/dist/{onboard-channels-DFdGULvK.js → onboard-channels-DnVJfSLM.js} +1 -1
  47. package/dist/{onboard-channels-FyoGJoRI.js → onboard-channels-kZWwETyO.js} +1 -1
  48. package/dist/{onboarding-ys5PK2iC.js → onboarding-BulXrKLU.js} +3 -3
  49. package/dist/{onboarding-BMdfhdc1.js → onboarding-BwpIqFy7.js} +3 -3
  50. package/dist/{onboarding.finalize-DGwRmQPQ.js → onboarding.finalize-BMjuATUX.js} +5 -5
  51. package/dist/{onboarding.finalize-Czj9rIDx.js → onboarding.finalize-DKPzqhHG.js} +6 -6
  52. package/dist/{pi-embedded-CQ9C6y-Z.js → pi-embedded-BvySB0sN.js} +18 -9
  53. package/dist/{pi-embedded-BFfZiGJD.js → pi-embedded-DXyDVB4-.js} +32 -23
  54. package/dist/{pi-embedded-helpers-Mzn8kkGx.js → pi-embedded-helpers-YPvzHDpd.js} +4 -4
  55. package/dist/{plugin-registry-Bm3oXtZ_.js → plugin-registry-BaocjXe1.js} +1 -1
  56. package/dist/{plugin-registry-CbLd0SuX.js → plugin-registry-DBbZIWU8.js} +1 -1
  57. package/dist/plugin-sdk/{channel-web-BijwJ-sy.js → channel-web-DHH_bts_.js} +1 -1
  58. package/dist/plugin-sdk/index.js +2 -2
  59. package/dist/plugin-sdk/{reply-7CRdEEVf.js → reply-Ctmq0UrQ.js} +18 -9
  60. package/dist/plugin-sdk/{web-DbfteoVI.js → web-D1aGJ2Sm.js} +2 -2
  61. package/dist/{plugins-cli-D9kYnV70.js → plugins-cli-DB5K4VPo.js} +2 -2
  62. package/dist/{plugins-cli-CuZ9yeLM.js → plugins-cli-s8CoSlEa.js} +2 -2
  63. package/dist/{program-DnLmcYvI.js → program-1YJsHnzE.js} +7 -7
  64. package/dist/{program-context-BFlDtZ7u.js → program-context-1gnu7TsY.js} +17 -17
  65. package/dist/{prompt-select-styled-vecx8TWe.js → prompt-select-styled-CZjpMPcG.js} +4 -4
  66. package/dist/{prompt-select-styled-ByfdmSdC.js → prompt-select-styled-DHscKoJh.js} +4 -4
  67. package/dist/{provider-auth-helpers-D5aiUDUx.js → provider-auth-helpers-BADMU-gY.js} +1 -1
  68. package/dist/{provider-auth-helpers-CDiCEf5I.js → provider-auth-helpers-DTztOrzV.js} +1 -1
  69. package/dist/{push-apns-CIFN_ehC.js → push-apns-B3AqbUSc.js} +1 -1
  70. package/dist/{push-apns-DnQI6P_1.js → push-apns-CxOD57Cj.js} +1 -1
  71. package/dist/{pw-ai-BE9RDOQB.js → pw-ai-CgdTTLSx.js} +1 -1
  72. package/dist/{register.agent-m9s6Wdxg.js → register.agent-AEomswlU.js} +6 -6
  73. package/dist/{register.agent-BAb4XSav.js → register.agent-Do_Gd0GT.js} +5 -5
  74. package/dist/{register.configure-lUHQYgJj.js → register.configure-CjqsbKAa.js} +6 -6
  75. package/dist/{register.configure-CH9nyxsf.js → register.configure-eUF_ZUCV.js} +6 -6
  76. package/dist/{register.maintenance-D6b4iNV5.js → register.maintenance-DYOC2Zvi.js} +8 -8
  77. package/dist/{register.maintenance-BZ5w5uEj.js → register.maintenance-abhqOe8J.js} +7 -7
  78. package/dist/{register.message-DrqsD-cs.js → register.message-CjR1KXY8.js} +2 -2
  79. package/dist/{register.message-BNwoWgh6.js → register.message-DMy_CNDU.js} +2 -2
  80. package/dist/{register.onboard-CWGIbeMt.js → register.onboard-BBd_n0-D.js} +4 -4
  81. package/dist/{register.onboard-BJC-pkiP.js → register.onboard-Cc24eL4m.js} +4 -4
  82. package/dist/{register.setup-B2Q7oNUf.js → register.setup-B3NPY8uf.js} +4 -4
  83. package/dist/{register.setup-Cyy-u_LT.js → register.setup-C9e2P0Ve.js} +4 -4
  84. package/dist/{register.status-health-sessions-CbFmRZ23.js → register.status-health-sessions-Bah8_vHz.js} +3 -3
  85. package/dist/{register.status-health-sessions-XToqPPob.js → register.status-health-sessions-CBsUg8MP.js} +3 -3
  86. package/dist/{register.subclis-kiCDYnvk.js → register.subclis-B7MsoFZQ.js} +9 -9
  87. package/dist/{reply-BLgYvx8K.js → reply-CzyQ7_dW.js} +18 -9
  88. package/dist/{run-main-ClQN17NG.js → run-main-DVjbTOri.js} +14 -14
  89. package/dist/{runner-DU6rPdbF.js → runner-C4xlUAR9.js} +1 -1
  90. package/dist/{server-node-events-D8mdarwc.js → server-node-events-DW1wcD9u.js} +2 -2
  91. package/dist/{server-node-events-CtGYZ4NX.js → server-node-events-Lfb6LBpF.js} +2 -2
  92. package/dist/{session-dirs-CLp_APkW.js → session-dirs-C8HpuvAC.js} +1 -1
  93. package/dist/{session-dirs-qa1wz8KY.js → session-dirs-Co80nucN.js} +1 -1
  94. package/dist/{status-DlprmiLH.js → status-B88vffEy.js} +2 -2
  95. package/dist/{status-CUi6ZcuM.js → status-C9mzS9f-.js} +2 -2
  96. package/dist/{status-B0DTmnlx.js → status-CpRINy6s.js} +1 -1
  97. package/dist/{status-BpU9At8G.js → status-M-5d2BWR.js} +1 -1
  98. package/dist/{subagent-registry-DoLtM6tb.js → subagent-registry-wQzxRrPx.js} +18 -9
  99. package/dist/{update-cli-eHwjFIY5.js → update-cli-ChjFReVc.js} +8 -8
  100. package/dist/{update-cli-DDK1P0nj.js → update-cli-DPQq4Xxx.js} +7 -7
  101. package/dist/{web-DPUOYear.js → web-CwxAht8t.js} +6 -6
  102. package/dist/{web-BNiJyHah.js → web-F3oNAXT3.js} +1 -1
  103. package/dist/{web-w_Wqd8mO.js → web-LbWfo0bk.js} +2 -2
  104. package/dist/{web-gOkp0QXS.js → web-yhRvp7S-.js} +1 -1
  105. package/package.json +1 -1
@@ -13,7 +13,7 @@ import "./client-DrK7aLru.js";
13
13
  import "./call-mR3kLwRx.js";
14
14
  import "./message-channel-CVHJDItx.js";
15
15
  import "./pairing-token-Byh6drgn.js";
16
- import "./subagent-registry-DoLtM6tb.js";
16
+ import "./subagent-registry-wQzxRrPx.js";
17
17
  import "./sessions-CPk6B4FT.js";
18
18
  import "./tokens-ANnYrShl.js";
19
19
  import "./plugins-Dhh2a3qc.js";
@@ -104,8 +104,8 @@ import "./daemon-runtime-DAGH3gDr.js";
104
104
  import "./runtime-guard-Cs_ClFhP.js";
105
105
  import "./systemd-BrybH4HV.js";
106
106
  import "./service-DcFI40_W.js";
107
- import "./health-CKF0OJ25.js";
108
- import "./onboarding-ys5PK2iC.js";
107
+ import "./health-CCZhny3_.js";
108
+ import "./onboarding-BulXrKLU.js";
109
109
  import "./shared-CoT9ivCt.js";
110
110
  import "./auth-token-ED-ILVvP.js";
111
111
  import { n as logConfigUpdated, t as formatConfigPath } from "./logging-PVQxLC6I.js";
@@ -113,7 +113,7 @@ import "./openai-model-default-C6iwMU4X.js";
113
113
  import "./model-picker-CpR4F3Tp.js";
114
114
  import "./systemd-linger-B8oXYjfA.js";
115
115
  import "./onboard-custom-zhlfzOTA.js";
116
- import { t as onboardCommand } from "./onboard-D9sqU2kW.js";
116
+ import { t as onboardCommand } from "./onboard-Bx0l-ThR.js";
117
117
  import JSON5 from "json5";
118
118
  import fs from "node:fs/promises";
119
119
 
@@ -14,7 +14,7 @@ import "./client-DrK7aLru.js";
14
14
  import "./call-mR3kLwRx.js";
15
15
  import "./message-channel-CVHJDItx.js";
16
16
  import "./pairing-token-Byh6drgn.js";
17
- import "./subagent-registry-DoLtM6tb.js";
17
+ import "./subagent-registry-wQzxRrPx.js";
18
18
  import "./sessions-CPk6B4FT.js";
19
19
  import "./tokens-ANnYrShl.js";
20
20
  import "./plugins-Dhh2a3qc.js";
@@ -108,8 +108,8 @@ import "./service-DcFI40_W.js";
108
108
  import "./diagnostics-CqEodocN.js";
109
109
  import "./table-C9BoE_4p.js";
110
110
  import "./audit-Ufqowicf.js";
111
- import { n as statusCommand } from "./status-DlprmiLH.js";
112
- import { r as healthCommand } from "./health-CKF0OJ25.js";
111
+ import { n as statusCommand } from "./status-B88vffEy.js";
112
+ import { r as healthCommand } from "./health-CCZhny3_.js";
113
113
  import "./update-check-DfBZVR4k.js";
114
114
  import "./dm-policy-shared-BAXKVTCe.js";
115
115
  import "./node-service-B1F4gM4E.js";
@@ -1,7 +1,7 @@
1
1
  import "./paths-B4BZAPZh.js";
2
2
  import { B as theme, P as setVerbose, k as info, z as isRich } from "./utils-BlC2Fskb.js";
3
3
  import "./thinking-EAliFiVK.js";
4
- import { E as resolveSessionModelRef, ur as lookupContextTokens, y as classifySessionKey } from "./reply-BLgYvx8K.js";
4
+ import { E as resolveSessionModelRef, ur as lookupContextTokens, y as classifySessionKey } from "./reply-CzyQ7_dW.js";
5
5
  import { S as parseAgentSessionKey } from "./session-key-DCt45XZa.js";
6
6
  import "./registry-Dygi7Azw.js";
7
7
  import { f as defaultRuntime } from "./subsystem-8bY95KEB.js";
@@ -114,8 +114,8 @@ import "./service-CJGWS46r.js";
114
114
  import "./diagnostics-CSOaBA1c.js";
115
115
  import "./table-i7J9YlN5.js";
116
116
  import "./audit-Ds8DFz-h.js";
117
- import { t as statusCommand } from "./status-CUi6ZcuM.js";
118
- import { r as healthCommand } from "./health-BTIp89si.js";
117
+ import { t as statusCommand } from "./status-C9mzS9f-.js";
118
+ import { r as healthCommand } from "./health-Bj5SETXV.js";
119
119
  import "./update-check-B-fJT8wY.js";
120
120
  import "./dm-policy-shared-r2f9qumo.js";
121
121
  import "./node-service-Da4wpz30.js";
@@ -49,7 +49,7 @@ const entries = [
49
49
  description: "Run, inspect, and query the WebSocket Gateway",
50
50
  hasSubcommands: true,
51
51
  register: async (program) => {
52
- (await import("./gateway-cli-BeBfQrbx.js")).registerGatewayCli(program);
52
+ (await import("./gateway-cli-DZa4pL87.js")).registerGatewayCli(program);
53
53
  }
54
54
  },
55
55
  {
@@ -81,7 +81,7 @@ const entries = [
81
81
  description: "Discover, scan, and configure models",
82
82
  hasSubcommands: true,
83
83
  register: async (program) => {
84
- (await import("./models-cli-uJJpIivJ.js")).registerModelsCli(program);
84
+ (await import("./models-cli-B3OGW16o.js")).registerModelsCli(program);
85
85
  }
86
86
  },
87
87
  {
@@ -161,7 +161,7 @@ const entries = [
161
161
  description: "Manage internal agent hooks",
162
162
  hasSubcommands: true,
163
163
  register: async (program) => {
164
- (await import("./hooks-cli-Cjs7SuB4.js")).registerHooksCli(program);
164
+ (await import("./hooks-cli-BSS-5THm.js")).registerHooksCli(program);
165
165
  }
166
166
  },
167
167
  {
@@ -193,7 +193,7 @@ const entries = [
193
193
  description: "Secure DM pairing (approve inbound requests)",
194
194
  hasSubcommands: true,
195
195
  register: async (program) => {
196
- const { registerPluginCliCommands } = await import("./cli-DCtguEMl.js");
196
+ const { registerPluginCliCommands } = await import("./cli-A46q0zpY.js");
197
197
  registerPluginCliCommands(program, await loadConfig());
198
198
  (await import("./pairing-cli-DUHT9L51.js")).registerPairingCli(program);
199
199
  }
@@ -203,8 +203,8 @@ const entries = [
203
203
  description: "Manage OpenClaw plugins and extensions",
204
204
  hasSubcommands: true,
205
205
  register: async (program) => {
206
- (await import("./plugins-cli-CuZ9yeLM.js")).registerPluginsCli(program);
207
- const { registerPluginCliCommands } = await import("./cli-DCtguEMl.js");
206
+ (await import("./plugins-cli-s8CoSlEa.js")).registerPluginsCli(program);
207
+ const { registerPluginCliCommands } = await import("./cli-A46q0zpY.js");
208
208
  registerPluginCliCommands(program, await loadConfig());
209
209
  }
210
210
  },
@@ -213,7 +213,7 @@ const entries = [
213
213
  description: "Manage connected chat channels (Telegram, Discord, etc.)",
214
214
  hasSubcommands: true,
215
215
  register: async (program) => {
216
- (await import("./channels-cli-RbZdgktP.js")).registerChannelsCli(program);
216
+ (await import("./channels-cli-C33gfn1H.js")).registerChannelsCli(program);
217
217
  }
218
218
  },
219
219
  {
@@ -245,7 +245,7 @@ const entries = [
245
245
  description: "Update OpenClaw and inspect update channel status",
246
246
  hasSubcommands: true,
247
247
  register: async (program) => {
248
- (await import("./update-cli-eHwjFIY5.js")).registerUpdateCli(program);
248
+ (await import("./update-cli-ChjFReVc.js")).registerUpdateCli(program);
249
249
  }
250
250
  },
251
251
  {
@@ -253,7 +253,7 @@ const entries = [
253
253
  description: "Generate shell completion script",
254
254
  hasSubcommands: false,
255
255
  register: async (program) => {
256
- (await import("./completion-cli-CHvR27lh.js").then((n) => n.n)).registerCompletionCli(program);
256
+ (await import("./completion-cli-Ceqiqhkn.js").then((n) => n.n)).registerCompletionCli(program);
257
257
  }
258
258
  }
259
259
  ];
@@ -22291,7 +22291,7 @@ async function runWithImageModelFallback(params) {
22291
22291
  function createDefaultDeps() {
22292
22292
  return {
22293
22293
  sendMessageWhatsApp: async (...args) => {
22294
- const { sendMessageWhatsApp } = await import("./web-w_Wqd8mO.js");
22294
+ const { sendMessageWhatsApp } = await import("./web-LbWfo0bk.js");
22295
22295
  return await sendMessageWhatsApp(...args);
22296
22296
  },
22297
22297
  sendMessageTelegram: async (...args) => {
@@ -33355,8 +33355,10 @@ function createSlackMessageHandler(params) {
33355
33355
  });
33356
33356
  const threadTsResolver = createSlackThreadTsResolver({ client: ctx.app.client });
33357
33357
  const appMentionRetryKeys = /* @__PURE__ */ new Map();
33358
+ const appMentionDispatchedKeys = /* @__PURE__ */ new Map();
33358
33359
  const pruneAppMentionRetryKeys = (now) => {
33359
33360
  for (const [key, expiresAt] of appMentionRetryKeys) if (expiresAt <= now) appMentionRetryKeys.delete(key);
33361
+ for (const [key, expiresAt] of appMentionDispatchedKeys) if (expiresAt <= now) appMentionDispatchedKeys.delete(key);
33360
33362
  };
33361
33363
  const rememberAppMentionRetryKey = (key) => {
33362
33364
  const now = Date.now();
@@ -33402,13 +33404,17 @@ function createSlackMessageHandler(params) {
33402
33404
  }
33403
33405
  });
33404
33406
  const seenMessageKey = buildSeenMessageKey(last.message.channel, last.message.ts);
33405
- if (!prepared) {
33406
- const hasMessageSource = entries.some((entry) => entry.opts.source === "message");
33407
- const hasAppMentionSource = entries.some((entry) => entry.opts.source === "app_mention");
33408
- if (seenMessageKey && hasMessageSource && !hasAppMentionSource) rememberAppMentionRetryKey(seenMessageKey);
33409
- return;
33407
+ if (!prepared) return;
33408
+ if (seenMessageKey) {
33409
+ pruneAppMentionRetryKeys(Date.now());
33410
+ if (last.opts.source === "app_mention") appMentionDispatchedKeys.set(seenMessageKey, Date.now() + APP_MENTION_RETRY_TTL_MS);
33411
+ else if (last.opts.source === "message" && appMentionDispatchedKeys.has(seenMessageKey)) {
33412
+ appMentionDispatchedKeys.delete(seenMessageKey);
33413
+ appMentionRetryKeys.delete(seenMessageKey);
33414
+ return;
33415
+ }
33416
+ appMentionRetryKeys.delete(seenMessageKey);
33410
33417
  }
33411
- if (seenMessageKey) appMentionRetryKeys.delete(seenMessageKey);
33412
33418
  if (entries.length > 1) {
33413
33419
  const ids = entries.map((entry) => entry.message.ts).filter(Boolean);
33414
33420
  if (ids.length > 0) {
@@ -33427,7 +33433,9 @@ function createSlackMessageHandler(params) {
33427
33433
  if (opts.source === "message" && message.type !== "message") return;
33428
33434
  if (opts.source === "message" && message.subtype && message.subtype !== "file_share" && message.subtype !== "bot_message") return;
33429
33435
  const seenMessageKey = buildSeenMessageKey(message.channel, message.ts);
33430
- if (seenMessageKey && ctx.markMessageSeen(message.channel, message.ts)) {
33436
+ const wasSeen = seenMessageKey ? ctx.markMessageSeen(message.channel, message.ts) : false;
33437
+ if (seenMessageKey && opts.source === "message" && !wasSeen) rememberAppMentionRetryKey(seenMessageKey);
33438
+ if (seenMessageKey && wasSeen) {
33431
33439
  if (opts.source !== "app_mention" || !consumeAppMentionRetryKey(seenMessageKey)) return;
33432
33440
  }
33433
33441
  const resolvedMessage = await threadTsResolver.resolve({
@@ -40893,7 +40901,7 @@ function loadWebLoginQr() {
40893
40901
  return webLoginQrPromise;
40894
40902
  }
40895
40903
  function loadWebChannel() {
40896
- webChannelPromise ??= import("./web-w_Wqd8mO.js");
40904
+ webChannelPromise ??= import("./web-LbWfo0bk.js");
40897
40905
  return webChannelPromise;
40898
40906
  }
40899
40907
  function loadWhatsAppActions() {
@@ -58148,6 +58156,7 @@ function resolveSessionLane(key) {
58148
58156
  }
58149
58157
  function resolveGlobalLane(lane) {
58150
58158
  const cleaned = lane?.trim();
58159
+ if (cleaned === CommandLane.Cron) return CommandLane.Nested;
58151
58160
  return cleaned ? cleaned : CommandLane.Main;
58152
58161
  }
58153
58162
  function resolveEmbeddedSessionLane(key) {
@@ -13,7 +13,7 @@ import "./client-DrK7aLru.js";
13
13
  import "./call-mR3kLwRx.js";
14
14
  import "./message-channel-CVHJDItx.js";
15
15
  import "./pairing-token-Byh6drgn.js";
16
- import "./subagent-registry-DoLtM6tb.js";
16
+ import "./subagent-registry-wQzxRrPx.js";
17
17
  import "./sessions-CPk6B4FT.js";
18
18
  import "./tokens-ANnYrShl.js";
19
19
  import "./plugins-Dhh2a3qc.js";
@@ -101,9 +101,9 @@ import { t as ensureOpenClawCliOnPath } from "./path-env-Co_fin1B.js";
101
101
  import "./catalog-Da8o-cxw.js";
102
102
  import "./note-DDecZomM.js";
103
103
  import "./plugin-auto-enable-Ccy8kRB0.js";
104
- import { t as ensurePluginRegistryLoaded } from "./plugin-registry-Bm3oXtZ_.js";
104
+ import { t as ensurePluginRegistryLoaded } from "./plugin-registry-BaocjXe1.js";
105
105
  import { t as assertSupportedRuntime } from "./runtime-guard-Cs_ClFhP.js";
106
- import { t as emitCliBanner } from "./banner-BrBNvO5B.js";
106
+ import { t as emitCliBanner } from "./banner-DxWInoxb.js";
107
107
  import "./doctor-config-flow-DnW1UlVT.js";
108
108
  import { n as ensureConfigReady } from "./config-guard-BWUTKaUN.js";
109
109
  import process$1 from "node:process";
@@ -118,7 +118,7 @@ const routeHealth = {
118
118
  const verbose = getVerboseFlag(argv, { includeDebug: true });
119
119
  const timeoutMs = getPositiveIntFlagValue(argv, "--timeout");
120
120
  if (timeoutMs === null) return false;
121
- const { healthCommand } = await import("./health-CKF0OJ25.js").then((n) => n.i);
121
+ const { healthCommand } = await import("./health-CCZhny3_.js").then((n) => n.i);
122
122
  await healthCommand({
123
123
  json,
124
124
  timeoutMs,
@@ -138,7 +138,7 @@ const routeStatus = {
138
138
  const verbose = getVerboseFlag(argv, { includeDebug: true });
139
139
  const timeoutMs = getPositiveIntFlagValue(argv, "--timeout");
140
140
  if (timeoutMs === null) return false;
141
- const { statusCommand } = await import("./status-DlprmiLH.js").then((n) => n.t);
141
+ const { statusCommand } = await import("./status-B88vffEy.js").then((n) => n.t);
142
142
  await statusCommand({
143
143
  json,
144
144
  deep,
@@ -172,7 +172,7 @@ const routeAgentsList = {
172
172
  run: async (argv) => {
173
173
  const json = hasFlag(argv, "--json");
174
174
  const bindings = hasFlag(argv, "--bindings");
175
- const { agentsListCommand } = await import("./agents-CuMsK_DS.js").then((n) => n.t);
175
+ const { agentsListCommand } = await import("./agents-7Q8UpA5j.js").then((n) => n.t);
176
176
  await agentsListCommand({
177
177
  json,
178
178
  bindings
@@ -243,7 +243,7 @@ const routes = [
243
243
  const pathArg = getCommandPositionals(argv)[2];
244
244
  if (!pathArg) return false;
245
245
  const json = hasFlag(argv, "--json");
246
- const { runConfigGet } = await import("./config-cli-Ci5S1iD4.js");
246
+ const { runConfigGet } = await import("./config-cli-CXWx88no.js");
247
247
  await runConfigGet({
248
248
  path: pathArg,
249
249
  json
@@ -256,7 +256,7 @@ const routes = [
256
256
  run: async (argv) => {
257
257
  const pathArg = getCommandPositionals(argv)[2];
258
258
  if (!pathArg) return false;
259
- const { runConfigUnset } = await import("./config-cli-Ci5S1iD4.js");
259
+ const { runConfigUnset } = await import("./config-cli-CXWx88no.js");
260
260
  await runConfigUnset({ path: pathArg });
261
261
  return true;
262
262
  }
@@ -270,7 +270,7 @@ const routes = [
270
270
  const local = hasFlag(argv, "--local");
271
271
  const json = hasFlag(argv, "--json");
272
272
  const plain = hasFlag(argv, "--plain");
273
- const { modelsListCommand } = await import("./models-C08NQUuO.js").then((n) => n.t);
273
+ const { modelsListCommand } = await import("./models-DxDVtTQ_.js").then((n) => n.t);
274
274
  await modelsListCommand({
275
275
  all,
276
276
  local,
@@ -301,7 +301,7 @@ const routes = [
301
301
  const plain = hasFlag(argv, "--plain");
302
302
  const check = hasFlag(argv, "--check");
303
303
  const probe = hasFlag(argv, "--probe");
304
- const { modelsStatusCommand } = await import("./models-C08NQUuO.js").then((n) => n.t);
304
+ const { modelsStatusCommand } = await import("./models-DxDVtTQ_.js").then((n) => n.t);
305
305
  await modelsStatusCommand({
306
306
  json,
307
307
  plain,
@@ -379,7 +379,7 @@ async function runCli(argv = process$1.argv) {
379
379
  assertSupportedRuntime();
380
380
  if (await tryRouteCli(normalizedArgv)) return;
381
381
  enableConsoleCapture();
382
- const { buildProgram } = await import("./program-DnLmcYvI.js");
382
+ const { buildProgram } = await import("./program-1YJsHnzE.js");
383
383
  const program = buildProgram();
384
384
  installUnhandledRejectionHandler();
385
385
  process$1.on("uncaughtException", (error) => {
@@ -392,10 +392,10 @@ async function runCli(argv = process$1.argv) {
392
392
  const { getProgramContext } = await import("./program-context-5q-A0wbP.js").then((n) => n.n);
393
393
  const ctx = getProgramContext(program);
394
394
  if (ctx) {
395
- const { registerCoreCliByName } = await import("./command-registry-CuwwryVI.js").then((n) => n.t);
395
+ const { registerCoreCliByName } = await import("./command-registry-BNqpshUx.js").then((n) => n.t);
396
396
  await registerCoreCliByName(program, ctx, primary, parseArgv);
397
397
  }
398
- const { registerSubCliByName } = await import("./register.subclis-kiCDYnvk.js").then((n) => n.a);
398
+ const { registerSubCliByName } = await import("./register.subclis-B7MsoFZQ.js").then((n) => n.a);
399
399
  await registerSubCliByName(program, primary);
400
400
  }
401
401
  if (!shouldSkipPluginCommandRegistration({
@@ -403,7 +403,7 @@ async function runCli(argv = process$1.argv) {
403
403
  primary,
404
404
  hasBuiltinPrimary: primary !== null && program.commands.some((command) => command.name() === primary)
405
405
  })) {
406
- const { registerPluginCliCommands } = await import("./cli-DCtguEMl.js");
406
+ const { registerPluginCliCommands } = await import("./cli-A46q0zpY.js");
407
407
  const { loadConfig } = await import("./config-D-Tvm4yj.js").then((n) => n.t);
408
408
  registerPluginCliCommands(program, loadConfig());
409
409
  }
@@ -4,7 +4,7 @@ import { t as normalizeChatType } from "./chat-type-C_KiWNAH.js";
4
4
  import { _ as kindFromMime, d as detectMime, h as isAudioFileName, p as getFileExtension } from "./image-ops-DSHe7MDO.js";
5
5
  import { A as normalizeProviderId, L as normalizeGoogleModelId, i as resolveApiKeyForProvider, r as requireApiKey, y as resolveOpenClawAgentDir } from "./model-auth-3yb_4VXX.js";
6
6
  import { d as DEFAULT_IMESSAGE_ATTACHMENT_ROOTS, f as isInboundPathAllowed, m as resolveIMessageAttachmentRoots, n as loadConfig, p as mergeInboundPathRoots } from "./config-CScuPNjn.js";
7
- import { S as ensureOpenClawModelsJson, t as describeImageWithModel } from "./image-B9TdLqUC.js";
7
+ import { S as ensureOpenClawModelsJson, t as describeImageWithModel } from "./image-DtRcO0W5.js";
8
8
  import { n as collectProviderApiKeysForExecution, r as executeWithApiKeyRotation, t as parseGeminiAuth } from "./gemini-auth-cD8BrH5d.js";
9
9
  import { n as fetchWithTimeout } from "./fetch-timeout-DL3f_O53.js";
10
10
  import { i as fetchRemoteMedia, n as getDefaultMediaLocalRoots, o as fetchWithSsrFGuard, r as MediaFetchError } from "./local-roots-DxIZcL-f.js";
@@ -1,7 +1,7 @@
1
1
  import "./paths-B4BZAPZh.js";
2
2
  import "./utils-BlC2Fskb.js";
3
3
  import "./thinking-EAliFiVK.js";
4
- import { At as agentCommand, C as loadSessionEntry, It as resolveOutboundTarget, Rt as createOutboundSendDeps, T as resolveGatewaySessionStoreTarget, dt as requestHeartbeatNow, vr as enqueueSystemEvent, w as pruneLegacyStoreKeys } from "./reply-BLgYvx8K.js";
4
+ import { At as agentCommand, C as loadSessionEntry, It as resolveOutboundTarget, Rt as createOutboundSendDeps, T as resolveGatewaySessionStoreTarget, dt as requestHeartbeatNow, vr as enqueueSystemEvent, w as pruneLegacyStoreKeys } from "./reply-CzyQ7_dW.js";
5
5
  import { c as normalizeMainKey } from "./session-key-DCt45XZa.js";
6
6
  import "./registry-Dygi7Azw.js";
7
7
  import { f as defaultRuntime } from "./subsystem-8bY95KEB.js";
@@ -102,7 +102,7 @@ import "./control-service-FOBhD0N3.js";
102
102
  import "./stagger-B6VQyn1F.js";
103
103
  import "./channel-selection-C27fdBDC.js";
104
104
  import "./pi-tools.policy-B3nJHwWp.js";
105
- import { c as parseMessageWithAttachments, l as formatForLog, r as registerApnsToken, s as normalizeRpcAttachmentsToChatAttachments } from "./push-apns-CIFN_ehC.js";
105
+ import { c as parseMessageWithAttachments, l as formatForLog, r as registerApnsToken, s as normalizeRpcAttachmentsToChatAttachments } from "./push-apns-B3AqbUSc.js";
106
106
  import { randomUUID } from "node:crypto";
107
107
 
108
108
  //#region src/gateway/server-node-events.ts
@@ -14,7 +14,7 @@ import "./client-DrK7aLru.js";
14
14
  import "./call-mR3kLwRx.js";
15
15
  import "./message-channel-CVHJDItx.js";
16
16
  import "./pairing-token-Byh6drgn.js";
17
- import { C as agentCommand, D as createOutboundSendDeps, bn as enqueueSystemEvent, cn as requestHeartbeatNow, ct as resolveOutboundTarget } from "./subagent-registry-DoLtM6tb.js";
17
+ import { C as agentCommand, D as createOutboundSendDeps, bn as enqueueSystemEvent, cn as requestHeartbeatNow, ct as resolveOutboundTarget } from "./subagent-registry-wQzxRrPx.js";
18
18
  import { d as updateSessionStore } from "./sessions-CPk6B4FT.js";
19
19
  import "./tokens-ANnYrShl.js";
20
20
  import { r as normalizeChannelId } from "./plugins-Dhh2a3qc.js";
@@ -98,7 +98,7 @@ import "./onboard-helpers-BYflTvTz.js";
98
98
  import "./prompt-style-DwCXob2h.js";
99
99
  import "./pairing-labels-D5pZ7KsY.js";
100
100
  import "./pi-tools.policy-C4HlSnsO.js";
101
- import { c as parseMessageWithAttachments, l as formatForLog, r as registerApnsToken, s as normalizeRpcAttachmentsToChatAttachments } from "./push-apns-DnQI6P_1.js";
101
+ import { c as parseMessageWithAttachments, l as formatForLog, r as registerApnsToken, s as normalizeRpcAttachmentsToChatAttachments } from "./push-apns-CxOD57Cj.js";
102
102
  import { randomUUID } from "node:crypto";
103
103
 
104
104
  //#region src/gateway/server-node-events.ts
@@ -1,5 +1,5 @@
1
1
  import { h as pathExists } from "./utils-BlC2Fskb.js";
2
- import { K as trimLogTail } from "./reply-BLgYvx8K.js";
2
+ import { K as trimLogTail } from "./reply-CzyQ7_dW.js";
3
3
  import { t as runCommandWithTimeout } from "./exec-BmMB8-Xs.js";
4
4
  import { n as resolveControlUiDistIndexHealth, r as resolveControlUiDistIndexPathForRoot } from "./control-ui-assets-CjH2ywP0.js";
5
5
  import { c as DEFAULT_PACKAGE_CHANNEL, f as isBetaTag, l as DEV_BRANCH, n as compareSemverStrings, o as detectPackageManager$1, p as isStableTag, u as channelToNpmTag } from "./update-check-B-fJT8wY.js";
@@ -1,6 +1,6 @@
1
1
  import { nt as pathExists } from "./entry.js";
2
2
  import { t as runCommandWithTimeout } from "./exec-CBKBIMpA.js";
3
- import { bt as trimLogTail } from "./subagent-registry-DoLtM6tb.js";
3
+ import { bt as trimLogTail } from "./subagent-registry-wQzxRrPx.js";
4
4
  import { n as resolveControlUiDistIndexHealth, r as resolveControlUiDistIndexPathForRoot } from "./control-ui-assets-BC2GSxMJ.js";
5
5
  import { c as DEFAULT_PACKAGE_CHANNEL, f as isBetaTag, l as DEV_BRANCH, n as compareSemverStrings, o as detectPackageManager$1, p as isStableTag, u as channelToNpmTag } from "./update-check-DfBZVR4k.js";
6
6
  import os from "node:os";
@@ -9,7 +9,7 @@ import { c as resolveAgentWorkspaceDir } from "./agent-scope-DhajVyRS.js";
9
9
  import { t as buildWorkspaceSkillStatus } from "./skills-status-BECHKy03.js";
10
10
  import { H as VERSION, i as loadConfig, o as readConfigFileSnapshot } from "./config-D-Tvm4yj.js";
11
11
  import { n as callGateway, t as buildGatewayConnectionDetails } from "./call-mR3kLwRx.js";
12
- import { $ as sha256HexPrefix, Cn as peekSystemEvents, an as buildChannelAccountSnapshot, en as loadProviderUsageSummary, in as buildChannelSummary, on as formatChannelAllowFrom, tn as formatUsageReportLines, vt as readRestartSentinel, yt as summarizeRestartSentinel } from "./subagent-registry-DoLtM6tb.js";
12
+ import { $ as sha256HexPrefix, Cn as peekSystemEvents, an as buildChannelAccountSnapshot, en as loadProviderUsageSummary, in as buildChannelSummary, on as formatChannelAllowFrom, tn as formatUsageReportLines, vt as readRestartSentinel, yt as summarizeRestartSentinel } from "./subagent-registry-wQzxRrPx.js";
13
13
  import { F as resolveMainSessionKey, j as resolveFreshSessionTotalTokens, o as loadSessionStore } from "./sessions-CPk6B4FT.js";
14
14
  import { n as listChannelPlugins } from "./plugins-Dhh2a3qc.js";
15
15
  import { o as getTailnetHostname, s as readTailscaleStatusJson } from "./tailscale-BxzsxqAY.js";
@@ -29,7 +29,7 @@ import { t as formatRuntimeStatusWithDetails } from "./runtime-status-D6c3G7my.j
29
29
  import { t as readLastGatewayErrorLine } from "./diagnostics-CqEodocN.js";
30
30
  import { t as renderTable } from "./table-C9BoE_4p.js";
31
31
  import { a as resolveGatewayProbeAuth$1, c as probeGateway, t as runSecurityAudit } from "./audit-Ufqowicf.js";
32
- import { o as resolveHeartbeatSummaryForAgent, t as formatHealthChannelLines } from "./health-CKF0OJ25.js";
32
+ import { o as resolveHeartbeatSummaryForAgent, t as formatHealthChannelLines } from "./health-CCZhny3_.js";
33
33
  import { g as resolveUpdateChannelDisplay, i as formatGitInstallLabel, m as normalizeUpdateChannel, t as checkUpdateStatus } from "./update-check-DfBZVR4k.js";
34
34
  import { t as resolveNodeService } from "./node-service-B1F4gM4E.js";
35
35
  import { n as redactSecrets, t as formatGatewayAuthUsed } from "./format-B0yJsjEo.js";
@@ -1,6 +1,6 @@
1
1
  import { u as resolveGatewayPort } from "./paths-B4BZAPZh.js";
2
2
  import { B as theme, k as info, z as isRich } from "./utils-BlC2Fskb.js";
3
- import { E as resolveSessionModelRef, G as summarizeRestartSentinel, W as readRestartSentinel, a as buildChannelSummary, b as listAgentsForGateway, bt as loadProviderUsageSummary, o as buildChannelAccountSnapshot, qt as sha256HexPrefix, s as formatChannelAllowFrom, ur as lookupContextTokens, xr as peekSystemEvents, xt as formatUsageReportLines, y as classifySessionKey } from "./reply-BLgYvx8K.js";
3
+ import { E as resolveSessionModelRef, G as summarizeRestartSentinel, W as readRestartSentinel, a as buildChannelSummary, b as listAgentsForGateway, bt as loadProviderUsageSummary, o as buildChannelAccountSnapshot, qt as sha256HexPrefix, s as formatChannelAllowFrom, ur as lookupContextTokens, xr as peekSystemEvents, xt as formatUsageReportLines, y as classifySessionKey } from "./reply-CzyQ7_dW.js";
4
4
  import { S as parseAgentSessionKey } from "./session-key-DCt45XZa.js";
5
5
  import { t as resolveOpenClawPackageRoot } from "./openclaw-root-BM-yQZH6.js";
6
6
  import { n as runExec } from "./exec-BmMB8-Xs.js";
@@ -28,7 +28,7 @@ import { t as formatRuntimeStatusWithDetails } from "./runtime-status-BHt4ST_m.j
28
28
  import { t as readLastGatewayErrorLine } from "./diagnostics-CSOaBA1c.js";
29
29
  import { t as renderTable } from "./table-i7J9YlN5.js";
30
30
  import { a as resolveGatewayProbeAuth$1, c as probeGateway, t as runSecurityAudit } from "./audit-Ds8DFz-h.js";
31
- import { a as resolveHeartbeatSummaryForAgent, t as formatHealthChannelLines } from "./health-BTIp89si.js";
31
+ import { a as resolveHeartbeatSummaryForAgent, t as formatHealthChannelLines } from "./health-Bj5SETXV.js";
32
32
  import { g as resolveUpdateChannelDisplay, i as formatGitInstallLabel, m as normalizeUpdateChannel, t as checkUpdateStatus } from "./update-check-B-fJT8wY.js";
33
33
  import { t as resolveNodeService } from "./node-service-Da4wpz30.js";
34
34
  import { n as redactSecrets, t as formatGatewayAuthUsed } from "./format-DNqZrSx7.js";
@@ -1,7 +1,7 @@
1
1
  import { o as createSubsystemLogger } from "./entry.js";
2
2
  import { D as resolveDefaultAgentWorkspaceDir, c as resolveAgentWorkspaceDir, l as resolveDefaultAgentId } from "./agent-scope-DhajVyRS.js";
3
3
  import { i as loadConfig } from "./config-D-Tvm4yj.js";
4
- import { g as loadOpenClawPlugins, h as createPluginLoaderLogger } from "./subagent-registry-DoLtM6tb.js";
4
+ import { g as loadOpenClawPlugins, h as createPluginLoaderLogger } from "./subagent-registry-wQzxRrPx.js";
5
5
 
6
6
  //#region src/plugins/status.ts
7
7
  const log = createSubsystemLogger("plugins");
@@ -1,4 +1,4 @@
1
- import { gt as loadOpenClawPlugins, ht as createPluginLoaderLogger } from "./reply-BLgYvx8K.js";
1
+ import { gt as loadOpenClawPlugins, ht as createPluginLoaderLogger } from "./reply-CzyQ7_dW.js";
2
2
  import { t as createSubsystemLogger } from "./subsystem-8bY95KEB.js";
3
3
  import { D as resolveDefaultAgentWorkspaceDir, c as resolveAgentWorkspaceDir, l as resolveDefaultAgentId } from "./agent-scope-CU-9CR31.js";
4
4
  import { i as loadConfig } from "./config-B-7OnHKY.js";
@@ -44105,7 +44105,7 @@ function isVoiceChannelType(type) {
44105
44105
  function createDefaultDeps() {
44106
44106
  return {
44107
44107
  sendMessageWhatsApp: async (...args) => {
44108
- const { sendMessageWhatsApp } = await import("./web-BNiJyHah.js");
44108
+ const { sendMessageWhatsApp } = await import("./web-F3oNAXT3.js");
44109
44109
  return await sendMessageWhatsApp(...args);
44110
44110
  },
44111
44111
  sendMessageTelegram: async (...args) => {
@@ -54473,8 +54473,10 @@ function createSlackMessageHandler(params) {
54473
54473
  });
54474
54474
  const threadTsResolver = createSlackThreadTsResolver({ client: ctx.app.client });
54475
54475
  const appMentionRetryKeys = /* @__PURE__ */ new Map();
54476
+ const appMentionDispatchedKeys = /* @__PURE__ */ new Map();
54476
54477
  const pruneAppMentionRetryKeys = (now) => {
54477
54478
  for (const [key, expiresAt] of appMentionRetryKeys) if (expiresAt <= now) appMentionRetryKeys.delete(key);
54479
+ for (const [key, expiresAt] of appMentionDispatchedKeys) if (expiresAt <= now) appMentionDispatchedKeys.delete(key);
54478
54480
  };
54479
54481
  const rememberAppMentionRetryKey = (key) => {
54480
54482
  const now = Date.now();
@@ -54520,13 +54522,17 @@ function createSlackMessageHandler(params) {
54520
54522
  }
54521
54523
  });
54522
54524
  const seenMessageKey = buildSeenMessageKey(last.message.channel, last.message.ts);
54523
- if (!prepared) {
54524
- const hasMessageSource = entries.some((entry) => entry.opts.source === "message");
54525
- const hasAppMentionSource = entries.some((entry) => entry.opts.source === "app_mention");
54526
- if (seenMessageKey && hasMessageSource && !hasAppMentionSource) rememberAppMentionRetryKey(seenMessageKey);
54527
- return;
54525
+ if (!prepared) return;
54526
+ if (seenMessageKey) {
54527
+ pruneAppMentionRetryKeys(Date.now());
54528
+ if (last.opts.source === "app_mention") appMentionDispatchedKeys.set(seenMessageKey, Date.now() + APP_MENTION_RETRY_TTL_MS);
54529
+ else if (last.opts.source === "message" && appMentionDispatchedKeys.has(seenMessageKey)) {
54530
+ appMentionDispatchedKeys.delete(seenMessageKey);
54531
+ appMentionRetryKeys.delete(seenMessageKey);
54532
+ return;
54533
+ }
54534
+ appMentionRetryKeys.delete(seenMessageKey);
54528
54535
  }
54529
- if (seenMessageKey) appMentionRetryKeys.delete(seenMessageKey);
54530
54536
  if (entries.length > 1) {
54531
54537
  const ids = entries.map((entry) => entry.message.ts).filter(Boolean);
54532
54538
  if (ids.length > 0) {
@@ -54545,7 +54551,9 @@ function createSlackMessageHandler(params) {
54545
54551
  if (opts.source === "message" && message.type !== "message") return;
54546
54552
  if (opts.source === "message" && message.subtype && message.subtype !== "file_share" && message.subtype !== "bot_message") return;
54547
54553
  const seenMessageKey = buildSeenMessageKey(message.channel, message.ts);
54548
- if (seenMessageKey && ctx.markMessageSeen(message.channel, message.ts)) {
54554
+ const wasSeen = seenMessageKey ? ctx.markMessageSeen(message.channel, message.ts) : false;
54555
+ if (seenMessageKey && opts.source === "message" && !wasSeen) rememberAppMentionRetryKey(seenMessageKey);
54556
+ if (seenMessageKey && wasSeen) {
54549
54557
  if (opts.source !== "app_mention" || !consumeAppMentionRetryKey(seenMessageKey)) return;
54550
54558
  }
54551
54559
  const resolvedMessage = await threadTsResolver.resolve({
@@ -59460,7 +59468,7 @@ function loadWebLoginQr() {
59460
59468
  return webLoginQrPromise;
59461
59469
  }
59462
59470
  function loadWebChannel() {
59463
- webChannelPromise ??= import("./web-BNiJyHah.js");
59471
+ webChannelPromise ??= import("./web-F3oNAXT3.js");
59464
59472
  return webChannelPromise;
59465
59473
  }
59466
59474
  function loadWhatsAppActions() {
@@ -64031,6 +64039,7 @@ function resolveSessionLane(key) {
64031
64039
  }
64032
64040
  function resolveGlobalLane(lane) {
64033
64041
  const cleaned = lane?.trim();
64042
+ if (cleaned === CommandLane.Cron) return CommandLane.Nested;
64034
64043
  return cleaned ? cleaned : CommandLane.Main;
64035
64044
  }
64036
64045
  function resolveEmbeddedSessionLane(key) {
@@ -16,7 +16,7 @@ import "./client-DrK7aLru.js";
16
16
  import "./call-mR3kLwRx.js";
17
17
  import "./message-channel-CVHJDItx.js";
18
18
  import "./pairing-token-Byh6drgn.js";
19
- import { bt as trimLogTail } from "./subagent-registry-DoLtM6tb.js";
19
+ import { bt as trimLogTail } from "./subagent-registry-wQzxRrPx.js";
20
20
  import "./sessions-CPk6B4FT.js";
21
21
  import "./tokens-ANnYrShl.js";
22
22
  import "./plugins-Dhh2a3qc.js";
@@ -111,10 +111,10 @@ import "./npm-registry-spec-DkaZNHAW.js";
111
111
  import "./skill-scanner-Cb7mXGIR.js";
112
112
  import "./installs-DDy4Ij7L.js";
113
113
  import "./channels-status-issues-CmHZBwQD.js";
114
- import "./register.subclis-kiCDYnvk.js";
115
- import "./command-registry-CuwwryVI.js";
114
+ import "./register.subclis-B7MsoFZQ.js";
115
+ import "./command-registry-BNqpshUx.js";
116
116
  import "./program-context-5q-A0wbP.js";
117
- import { r as installCompletion } from "./completion-cli-CHvR27lh.js";
117
+ import { r as installCompletion } from "./completion-cli-Ceqiqhkn.js";
118
118
  import "./daemon-runtime-DAGH3gDr.js";
119
119
  import { r as parseSemver } from "./runtime-guard-Cs_ClFhP.js";
120
120
  import "./systemd-BrybH4HV.js";
@@ -124,19 +124,19 @@ import "./systemd-hints-HNQfjwXm.js";
124
124
  import { a as terminateStaleGatewayPids, i as renderRestartDiagnostics, o as waitForGatewayHealthyRestart, r as runDaemonRestart, s as runDaemonInstall } from "./daemon-cli-2S8yGYK9.js";
125
125
  import "./diagnostics-CqEodocN.js";
126
126
  import { t as renderTable } from "./table-C9BoE_4p.js";
127
- import "./health-CKF0OJ25.js";
127
+ import "./health-CCZhny3_.js";
128
128
  import "./control-ui-assets-BC2GSxMJ.js";
129
129
  import { a as resolveNpmChannelTag, c as DEFAULT_PACKAGE_CHANNEL, d as formatUpdateChannelLabel, g as resolveUpdateChannelDisplay, h as resolveEffectiveUpdateChannel, m as normalizeUpdateChannel, n as compareSemverStrings, r as fetchNpmTagVersion, s as DEFAULT_GIT_CHANNEL, t as checkUpdateStatus, u as channelToNpmTag } from "./update-check-DfBZVR4k.js";
130
130
  import "./dm-policy-shared-BAXKVTCe.js";
131
131
  import { i as resolveUpdateAvailability, n as formatUpdateOneLiner, t as formatUpdateAvailableHint } from "./status.update-CWpLMm6c.js";
132
- import { a as detectGlobalInstallManagerForRoot, c as readPackageName, i as detectGlobalInstallManagerByPresence, l as readPackageVersion, n as runGatewayUpdate, o as globalInstallArgs, r as cleanupGlobalRenameDirs, s as resolveGlobalPackageRoot } from "./session-dirs-qa1wz8KY.js";
132
+ import { a as detectGlobalInstallManagerForRoot, c as readPackageName, i as detectGlobalInstallManagerByPresence, l as readPackageVersion, n as runGatewayUpdate, o as globalInstallArgs, r as cleanupGlobalRenameDirs, s as resolveGlobalPackageRoot } from "./session-dirs-Co80nucN.js";
133
133
  import "./logging-PVQxLC6I.js";
134
134
  import { n as updateNpmInstalledPlugins, t as syncPluginsForUpdateChannel } from "./update-ChO83Ek6.js";
135
135
  import "./doctor-config-flow-DnW1UlVT.js";
136
136
  import "./systemd-linger-B8oXYjfA.js";
137
137
  import "./health-format-DkjSgkDx.js";
138
- import { n as doctorCommand, t as selectStyled } from "./prompt-select-styled-vecx8TWe.js";
139
- import { r as ensureCompletionCacheExists, t as checkShellCompletionStatus } from "./doctor-completion-BJIw8vai.js";
138
+ import { n as doctorCommand, t as selectStyled } from "./prompt-select-styled-CZjpMPcG.js";
139
+ import { r as ensureCompletionCacheExists, t as checkShellCompletionStatus } from "./doctor-completion-5E2ZEWx5.js";
140
140
  import { spawn, spawnSync } from "node:child_process";
141
141
  import os from "node:os";
142
142
  import path from "node:path";
@@ -1,7 +1,7 @@
1
1
  import { g as resolveStateDir, u as resolveGatewayPort } from "./paths-B4BZAPZh.js";
2
2
  import { B as theme, h as pathExists } from "./utils-BlC2Fskb.js";
3
3
  import "./thinking-EAliFiVK.js";
4
- import { K as trimLogTail } from "./reply-BLgYvx8K.js";
4
+ import { K as trimLogTail } from "./reply-CzyQ7_dW.js";
5
5
  import { t as resolveOpenClawPackageRoot } from "./openclaw-root-BM-yQZH6.js";
6
6
  import "./registry-Dygi7Azw.js";
7
7
  import { f as defaultRuntime } from "./subsystem-8bY95KEB.js";
@@ -106,7 +106,7 @@ import { c as resolveGatewayLaunchAgentLabel, d as resolveGatewaySystemdServiceN
106
106
  import "./channel-selection-C27fdBDC.js";
107
107
  import "./pi-tools.policy-B3nJHwWp.js";
108
108
  import { r as parseSemver } from "./runtime-guard-BYGIYhEa.js";
109
- import "./program-context-BFlDtZ7u.js";
109
+ import "./program-context-1gnu7TsY.js";
110
110
  import "./catalog-C7TxlaHu.js";
111
111
  import "./skills-status-ChEU_N3z.js";
112
112
  import { n as inheritOptionFromParent } from "./command-options-BtDai3oC.js";
@@ -117,7 +117,7 @@ import "./npm-registry-spec-DVXqd4Pf.js";
117
117
  import "./skill-scanner-CMBwwxis.js";
118
118
  import "./installs-B9skpWIo.js";
119
119
  import "./channels-status-issues-B6NZcV45.js";
120
- import { r as installCompletion } from "./completion-cli-Cq8iP9Aw.js";
120
+ import { r as installCompletion } from "./completion-cli-CIFG5xWV.js";
121
121
  import "./daemon-runtime-D5lkiu2O.js";
122
122
  import "./systemd-Dq5fANx0.js";
123
123
  import { t as resolveGatewayService } from "./service-CJGWS46r.js";
@@ -126,19 +126,19 @@ import "./systemd-hints-Bp-mYSEW.js";
126
126
  import { a as terminateStaleGatewayPids, i as renderRestartDiagnostics, o as waitForGatewayHealthyRestart, r as runDaemonRestart, s as runDaemonInstall } from "./daemon-cli-CUFMfxyL.js";
127
127
  import "./diagnostics-CSOaBA1c.js";
128
128
  import { t as renderTable } from "./table-i7J9YlN5.js";
129
- import "./health-BTIp89si.js";
129
+ import "./health-Bj5SETXV.js";
130
130
  import "./control-ui-assets-CjH2ywP0.js";
131
131
  import { a as resolveNpmChannelTag, c as DEFAULT_PACKAGE_CHANNEL, d as formatUpdateChannelLabel, g as resolveUpdateChannelDisplay, h as resolveEffectiveUpdateChannel, m as normalizeUpdateChannel, n as compareSemverStrings, r as fetchNpmTagVersion, s as DEFAULT_GIT_CHANNEL, t as checkUpdateStatus, u as channelToNpmTag } from "./update-check-B-fJT8wY.js";
132
132
  import "./dm-policy-shared-r2f9qumo.js";
133
133
  import { i as resolveUpdateAvailability, n as formatUpdateOneLiner, t as formatUpdateAvailableHint } from "./status.update-DVoPom_t.js";
134
- import { a as detectGlobalInstallManagerForRoot, c as readPackageName, i as detectGlobalInstallManagerByPresence, l as readPackageVersion, n as runGatewayUpdate, o as globalInstallArgs, r as cleanupGlobalRenameDirs, s as resolveGlobalPackageRoot } from "./session-dirs-CLp_APkW.js";
134
+ import { a as detectGlobalInstallManagerForRoot, c as readPackageName, i as detectGlobalInstallManagerByPresence, l as readPackageVersion, n as runGatewayUpdate, o as globalInstallArgs, r as cleanupGlobalRenameDirs, s as resolveGlobalPackageRoot } from "./session-dirs-C8HpuvAC.js";
135
135
  import "./logging-DNqMaj3H.js";
136
136
  import { n as updateNpmInstalledPlugins, t as syncPluginsForUpdateChannel } from "./update-BS8h2lwA.js";
137
137
  import "./doctor-config-flow-J7UQwIGB.js";
138
138
  import "./systemd-linger-zXWRcQMp.js";
139
139
  import "./health-format-D6i_RyWd.js";
140
- import { n as doctorCommand, t as selectStyled } from "./prompt-select-styled-ByfdmSdC.js";
141
- import { r as ensureCompletionCacheExists, t as checkShellCompletionStatus } from "./doctor-completion-BfrgA2mV.js";
140
+ import { n as doctorCommand, t as selectStyled } from "./prompt-select-styled-DHscKoJh.js";
141
+ import { r as ensureCompletionCacheExists, t as checkShellCompletionStatus } from "./doctor-completion-9UfiLRPo.js";
142
142
  import os from "node:os";
143
143
  import path from "node:path";
144
144
  import fs from "node:fs/promises";