activeclaw 2026.4.6 → 2026.4.9

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 (94) hide show
  1. package/dist/{agent-o_NVopFC.js → agent-CMfazMZh.js} +1 -1
  2. package/dist/{agent-d5Dwm5Vr.js → agent-JPiOsp4w.js} +1 -1
  3. package/dist/{agents-BSbsIbCx.js → agents-BFneTNaM.js} +2 -2
  4. package/dist/{auth-choice-DPZZulXs.js → auth-choice-CBs23Eut.js} +1 -1
  5. package/dist/{auth-choice-fWWNZ0CE.js → auth-choice-LkLMeioa.js} +1 -1
  6. package/dist/build-info.json +3 -3
  7. package/dist/bundled/boot-md/handler.js +1 -1
  8. package/dist/bundled/session-memory/handler.js +1 -1
  9. package/dist/{channel-options-D3pcpSuK.js → channel-options-DbKTl72b.js} +1 -1
  10. package/dist/{channel-options-mvX8L4o1.js → channel-options-a0rwBOBp.js} +1 -1
  11. package/dist/{channels-cli-CUZNu153.js → channels-cli-2VIPyG8m.js} +4 -4
  12. package/dist/{channels-cli-D8giagPE.js → channels-cli-BG1xCXaW.js} +4 -4
  13. package/dist/{cli-BTBoxnnI.js → cli-He5MwTZv.js} +1 -1
  14. package/dist/{cli-6tWBn9Hf.js → cli-McCicHl-.js} +1 -1
  15. package/dist/{command-registry-dPZvDdl5.js → command-registry-B4XSKnqk.js} +9 -9
  16. package/dist/{compact-DpN1Nt0S.js → compact-DBxHCU3Q.js} +12 -3
  17. package/dist/{compact.runtime-BPuV_fJX.js → compact.runtime-D3MiFKq0.js} +1 -1
  18. package/dist/{compact.runtime-BFTC4NQ_.js → compact.runtime-DKQKkff5.js} +1 -1
  19. package/dist/{compact.runtime-BZd2c9ir.js → compact.runtime-DcTpLwZ5.js} +1 -1
  20. package/dist/{compact.runtime-Cdc-_-I8.js → compact.runtime-DvhVgC1j.js} +1 -1
  21. package/dist/{completion-cli-BWNkPwVM.js → completion-cli-BXlBKnlj.js} +2 -2
  22. package/dist/{completion-cli-BBsE2_OZ.js → completion-cli-C0IxNzBH.js} +1 -1
  23. package/dist/{config-cli-tykH1hkE.js → config-cli-C4ryG2Rf.js} +1 -1
  24. package/dist/{config-cli-BgEWgmJQ.js → config-cli-rH6YNttY.js} +1 -1
  25. package/dist/{configure-ODmru9jh.js → configure-BfCm4pl9.js} +3 -3
  26. package/dist/{configure-gLnacCZu.js → configure-CuFhFIhR.js} +3 -3
  27. package/dist/{doctor-completion-COnwyNVJ.js → doctor-completion-BMhNBLlZ.js} +1 -1
  28. package/dist/{doctor-completion-Dmg5bIZZ.js → doctor-completion-Bhzly0Le.js} +1 -1
  29. package/dist/entry.js +2 -2
  30. package/dist/extensionAPI.js +1 -1
  31. package/dist/{gateway-cli-bTP1IILL.js → gateway-cli-X1ZtTIn1.js} +6 -6
  32. package/dist/{gateway-cli-DYQv0bbi.js → gateway-cli-nYAUoRqi.js} +6 -6
  33. package/dist/{health-BPWpRQaJ.js → health-D22GmS6O.js} +1 -1
  34. package/dist/{health-TMNIIFvC.js → health-I2eelBJ0.js} +1 -1
  35. package/dist/{hooks-cli-BarLlSI-.js → hooks-cli-B8yce8aT.js} +2 -2
  36. package/dist/{hooks-cli-DzToC2dS.js → hooks-cli-BpGVDC8n.js} +2 -2
  37. package/dist/index.js +5 -5
  38. package/dist/llm-slug-generator.js +1 -1
  39. package/dist/{models-B2oGZOi7.js → models-BouiRS5o.js} +2 -2
  40. package/dist/{models-cli-BGxdkTHM.js → models-cli-CXzAbJ5D.js} +3 -3
  41. package/dist/{models-cli-Dr7f4M9k.js → models-cli-KmmlfVy4.js} +2 -2
  42. package/dist/{npm-resolution-rTNTkWiL.js → npm-resolution-Bn1LgQFf.js} +1 -1
  43. package/dist/{npm-resolution-CPR5hN9l.js → npm-resolution-BtQxqgSa.js} +1 -1
  44. package/dist/{onboard-CD3xyxv4.js → onboard-Cve2lx8Q.js} +2 -2
  45. package/dist/{onboard-Clal53cK.js → onboard-DUlLUrme.js} +2 -2
  46. package/dist/{onboard-channels-DoXdjnDu.js → onboard-channels-C3Fr6P4C.js} +1 -1
  47. package/dist/{onboard-channels-CIp5xU1C.js → onboard-channels-D9mYZZtF.js} +1 -1
  48. package/dist/{onboarding-x5l1g4q6.js → onboarding-B47HB8MD.js} +3 -3
  49. package/dist/{onboarding-BXIBW9kp.js → onboarding-Dj9u7X0q.js} +3 -3
  50. package/dist/{onboarding.finalize-CidZPV2S.js → onboarding.finalize-C-pR8_RE.js} +5 -5
  51. package/dist/{onboarding.finalize-B9dNdZ8n.js → onboarding.finalize-JG_vd8zz.js} +6 -6
  52. package/dist/{pi-embedded-0VIfw7tV.js → pi-embedded-XOWzcU4v.js} +12 -3
  53. package/dist/{pi-embedded-DbOc1rhk.js → pi-embedded-cW_upWzb.js} +12 -3
  54. package/dist/{plugin-registry-FMZRN3Ae.js → plugin-registry-B2Xg5cIZ.js} +1 -1
  55. package/dist/{plugin-registry-D5bAzbQy.js → plugin-registry-Cvr7jdxU.js} +1 -1
  56. package/dist/plugin-sdk/index.js +2 -2
  57. package/dist/plugin-sdk/telegram.js +2 -2
  58. package/dist/{plugins-cli-N0WJ-bcK.js → plugins-cli-B65JT-pj.js} +2 -2
  59. package/dist/{plugins-cli-Rgx--0P6.js → plugins-cli-Crxf_ppT.js} +2 -2
  60. package/dist/{program-B8-8_sev.js → program-Da383ALS.js} +6 -6
  61. package/dist/{program-context-DFu0VnTR.js → program-context-BCpzWqA0.js} +17 -17
  62. package/dist/{prompt-select-styled-BRbUYwP5.js → prompt-select-styled-CX2-E6Ws.js} +4 -4
  63. package/dist/{prompt-select-styled-CtJff3Gr.js → prompt-select-styled-DJXH3Ik2.js} +4 -4
  64. package/dist/{provider-auth-helpers-BosQdg02.js → provider-auth-helpers-3K1-dUeB.js} +1 -1
  65. package/dist/{provider-auth-helpers-DOEJVM8b.js → provider-auth-helpers-CuFWByxX.js} +1 -1
  66. package/dist/{register.agent-WN58ukFs.js → register.agent-C4BazelG.js} +5 -5
  67. package/dist/{register.agent-BLoojMSb.js → register.agent-F4PYdKIV.js} +6 -6
  68. package/dist/{register.configure-DBV1cDMO.js → register.configure-DuYlUfX0.js} +6 -6
  69. package/dist/{register.configure-iqLpf_vJ.js → register.configure-uivoHsx6.js} +6 -6
  70. package/dist/{register.maintenance--G4Ezr1u.js → register.maintenance-CncGXJcn.js} +8 -8
  71. package/dist/{register.maintenance-JmxWnFLm.js → register.maintenance-D1NhSg9p.js} +7 -7
  72. package/dist/{register.message-DMa5MRsS.js → register.message-CkSYWM9C.js} +2 -2
  73. package/dist/{register.message-B2Mo2hx9.js → register.message-pasYrjfU.js} +2 -2
  74. package/dist/{register.onboard-B89iRFyV.js → register.onboard-9kXyD5aU.js} +2 -2
  75. package/dist/{register.onboard-iNt0A322.js → register.onboard-CgARW4Sc.js} +2 -2
  76. package/dist/{register.setup-DQ-uaQd4.js → register.setup-BtmboGlC.js} +2 -2
  77. package/dist/{register.setup-CBwr4_Ob.js → register.setup-D5oaiM2k.js} +2 -2
  78. package/dist/{register.status-health-sessions-B-2y3jIc.js → register.status-health-sessions-BaiIULJw.js} +3 -3
  79. package/dist/{register.status-health-sessions-CrW3NDOK.js → register.status-health-sessions-QJWioUTw.js} +3 -3
  80. package/dist/{register.subclis-DF5yhf7D.js → register.subclis-BJi9Wx12.js} +9 -9
  81. package/dist/{reply-OIc7wENR.js → reply-9_WxyHfF.js} +12 -3
  82. package/dist/{run-main-CbzvI1iB.js → run-main--Va-DnXT.js} +14 -14
  83. package/dist/{status-XHz3g6hB.js → status-CjUDl8qO.js} +2 -2
  84. package/dist/{status-_r2NL6m9.js → status-DdFy329n.js} +2 -2
  85. package/dist/{subagent-registry-runtime-4Iq7_pTU.js → subagent-registry-runtime-CrS70feQ.js} +1 -1
  86. package/dist/{subagent-registry-runtime-CEms3TqA.js → subagent-registry-runtime-D68_xG8d.js} +1 -1
  87. package/dist/{subagent-registry-runtime-HMP_iPKA.js → subagent-registry-runtime-D8jeUc09.js} +1 -1
  88. package/dist/{subagent-registry-runtime-CqZrbR_5.js → subagent-registry-runtime-DLTR5fch.js} +1 -1
  89. package/dist/{update-cli-TBdp8aQn.js → update-cli-CTNv6NnW.js} +7 -7
  90. package/dist/{update-cli-obZZqciv.js → update-cli-Ca6a5zyc.js} +8 -8
  91. package/dist/{update-runner-DwRQE_g4.js → update-runner-CSPTpzlG.js} +1 -1
  92. package/dist/{update-runner-Dh84Ivzm.js → update-runner-DgI58_4p.js} +1 -1
  93. package/extensions/hub/src/inbound.ts +16 -0
  94. package/package.json +1 -1
@@ -2,7 +2,7 @@ import "./paths-BJV7vkaX.js";
2
2
  import { A as theme, k as isRich, p as defaultRuntime, w as setVerbose, y as info } from "./subsystem-Dk5WUhC2.js";
3
3
  import "./utils-CGU7Q77u.js";
4
4
  import { Gn as updateSessionStore, Jn as pruneStaleEntries, Mr as resolveFreshSessionTotalTokens, Wa as loadConfig, Xn as enforceSessionDiskBudget, Yn as resolveMaintenanceConfig, h as resolveConfiguredModelRef, qn as capEntryCount, zn as loadSessionStore } from "./model-selection-DU-DNNW7.js";
5
- import { At as classifySessionKey, Lt as resolveSessionModelRef, zt as lookupContextTokens } from "./reply-OIc7wENR.js";
5
+ import { At as classifySessionKey, Lt as resolveSessionModelRef, zt as lookupContextTokens } from "./reply-9_WxyHfF.js";
6
6
  import { d as resolveDefaultAgentId, r as listAgentIds } from "./agent-scope-BrJT9Gf9.js";
7
7
  import { T as parseAgentSessionKey, s as normalizeAgentId } from "./session-key-VV3RvEri.js";
8
8
  import "./openclaw-root-DbbVtnL2.js";
@@ -79,8 +79,8 @@ import "./service-kXk8K3mn.js";
79
79
  import "./diagnostics-C-VDJRVJ.js";
80
80
  import "./probe-auth-BhN3PhE1.js";
81
81
  import "./table-ByNbkdzT.js";
82
- import { t as statusCommand } from "./status-XHz3g6hB.js";
83
- import { r as healthCommand } from "./health-TMNIIFvC.js";
82
+ import { t as statusCommand } from "./status-CjUDl8qO.js";
83
+ import { r as healthCommand } from "./health-I2eelBJ0.js";
84
84
  import "./channel-account-context-D9S5HJn4.js";
85
85
  import "./audit-Cg4EdF12.js";
86
86
  import "./status.update-s77gig85.js";
@@ -15,7 +15,7 @@ import "./skills-VQO3Anke.js";
15
15
  import "./frontmatter-DAfBRAy7.js";
16
16
  import "./redact-CxtZhh9L.js";
17
17
  import "./path-alias-guards-DHv0a8uY.js";
18
- import "./compact-DpN1Nt0S.js";
18
+ import "./compact-DBxHCU3Q.js";
19
19
  import "./plugins-DRDN4jFP.js";
20
20
  import { n as resolveSessionFilePath, r as resolveSessionFilePathOptions } from "./paths-B-JdyKTL.js";
21
21
  import "./chat-envelope-t_PEbhWC.js";
@@ -81,8 +81,8 @@ import "./service-D91QofaA.js";
81
81
  import "./diagnostics-B0ei2Nxu.js";
82
82
  import "./probe-auth-CBWjkGhd.js";
83
83
  import "./table-B-mQ0pe0.js";
84
- import { n as statusCommand } from "./status-_r2NL6m9.js";
85
- import { r as healthCommand } from "./health-BPWpRQaJ.js";
84
+ import { n as statusCommand } from "./status-DdFy329n.js";
85
+ import { r as healthCommand } from "./health-D22GmS6O.js";
86
86
  import "./channel-account-context-XxNxKPcm.js";
87
87
  import "./audit-u873Aqoz.js";
88
88
  import "./status.update-BC8_WNUD.js";
@@ -65,7 +65,7 @@ const entries = [
65
65
  description: "Run, inspect, and query the WebSocket Gateway",
66
66
  hasSubcommands: true,
67
67
  register: async (program) => {
68
- (await import("./gateway-cli-bTP1IILL.js")).registerGatewayCli(program);
68
+ (await import("./gateway-cli-X1ZtTIn1.js")).registerGatewayCli(program);
69
69
  }
70
70
  },
71
71
  {
@@ -97,7 +97,7 @@ const entries = [
97
97
  description: "Discover, scan, and configure models",
98
98
  hasSubcommands: true,
99
99
  register: async (program) => {
100
- (await import("./models-cli-BGxdkTHM.js")).registerModelsCli(program);
100
+ (await import("./models-cli-CXzAbJ5D.js")).registerModelsCli(program);
101
101
  }
102
102
  },
103
103
  {
@@ -145,7 +145,7 @@ const entries = [
145
145
  description: "Manage internal agent hooks",
146
146
  hasSubcommands: true,
147
147
  register: async (program) => {
148
- (await import("./hooks-cli-DzToC2dS.js")).registerHooksCli(program);
148
+ (await import("./hooks-cli-BpGVDC8n.js")).registerHooksCli(program);
149
149
  }
150
150
  },
151
151
  {
@@ -161,7 +161,7 @@ const entries = [
161
161
  description: "Secure DM pairing (approve inbound requests)",
162
162
  hasSubcommands: true,
163
163
  register: async (program) => {
164
- const { registerPluginCliCommands } = await import("./cli-BTBoxnnI.js");
164
+ const { registerPluginCliCommands } = await import("./cli-He5MwTZv.js");
165
165
  const config = await loadValidatedConfigForPluginRegistration();
166
166
  if (config) registerPluginCliCommands(program, config);
167
167
  (await import("./pairing-cli-rMFQX66I.js")).registerPairingCli(program);
@@ -172,8 +172,8 @@ const entries = [
172
172
  description: "Manage OpenClaw plugins and extensions",
173
173
  hasSubcommands: true,
174
174
  register: async (program) => {
175
- (await import("./plugins-cli-N0WJ-bcK.js")).registerPluginsCli(program);
176
- const { registerPluginCliCommands } = await import("./cli-BTBoxnnI.js");
175
+ (await import("./plugins-cli-B65JT-pj.js")).registerPluginsCli(program);
176
+ const { registerPluginCliCommands } = await import("./cli-He5MwTZv.js");
177
177
  const config = await loadValidatedConfigForPluginRegistration();
178
178
  if (config) registerPluginCliCommands(program, config);
179
179
  }
@@ -183,7 +183,7 @@ const entries = [
183
183
  description: "Manage connected chat channels",
184
184
  hasSubcommands: true,
185
185
  register: async (program) => {
186
- (await import("./channels-cli-D8giagPE.js")).registerChannelsCli(program);
186
+ (await import("./channels-cli-BG1xCXaW.js")).registerChannelsCli(program);
187
187
  }
188
188
  },
189
189
  {
@@ -215,7 +215,7 @@ const entries = [
215
215
  description: "Update OpenClaw and inspect update channel status",
216
216
  hasSubcommands: true,
217
217
  register: async (program) => {
218
- (await import("./update-cli-obZZqciv.js")).registerUpdateCli(program);
218
+ (await import("./update-cli-Ca6a5zyc.js")).registerUpdateCli(program);
219
219
  }
220
220
  },
221
221
  {
@@ -223,7 +223,7 @@ const entries = [
223
223
  description: "Generate shell completion script",
224
224
  hasSubcommands: false,
225
225
  register: async (program) => {
226
- (await import("./completion-cli-BWNkPwVM.js").then((n) => n.n)).registerCompletionCli(program);
226
+ (await import("./completion-cli-BXlBKnlj.js").then((n) => n.n)).registerCompletionCli(program);
227
227
  }
228
228
  }
229
229
  ];
@@ -522,7 +522,16 @@ function resolveChannelModelOverride(params) {
522
522
  const providerEntries = resolveProviderEntry(modelByChannel, channel);
523
523
  if (!providerEntries) return null;
524
524
  const candidates = buildChannelCandidates(params);
525
- if (candidates.length === 0) return null;
525
+ if (candidates.length === 0) {
526
+ const wildcardModel = typeof providerEntries["*"] === "string" ? providerEntries["*"].trim() : void 0;
527
+ if (!wildcardModel) return null;
528
+ return {
529
+ channel: normalizeMessageChannel(channel) ?? channel.trim().toLowerCase(),
530
+ model: wildcardModel,
531
+ matchKey: "*",
532
+ matchSource: "wildcard"
533
+ };
534
+ }
526
535
  const match = resolveChannelEntryMatchWithFallback({
527
536
  entries: providerEntries,
528
537
  keys: candidates,
@@ -6316,7 +6325,7 @@ var LegacyContextEngine = class {
6316
6325
  }
6317
6326
  async afterTurn(_params) {}
6318
6327
  async compact(params) {
6319
- const { compactEmbeddedPiSessionDirect } = await import("./compact.runtime-BPuV_fJX.js");
6328
+ const { compactEmbeddedPiSessionDirect } = await import("./compact.runtime-D3MiFKq0.js");
6320
6329
  const runtimeContext = params.runtimeContext ?? {};
6321
6330
  const result = await compactEmbeddedPiSessionDirect({
6322
6331
  ...runtimeContext,
@@ -25095,7 +25104,7 @@ const DEFAULT_SUBAGENT_ANNOUNCE_TIMEOUT_MS = 6e4;
25095
25104
  const MAX_TIMER_SAFE_TIMEOUT_MS = 2147e6;
25096
25105
  let subagentRegistryRuntimePromise = null;
25097
25106
  function loadSubagentRegistryRuntime() {
25098
- subagentRegistryRuntimePromise ??= import("./subagent-registry-runtime-CqZrbR_5.js");
25107
+ subagentRegistryRuntimePromise ??= import("./subagent-registry-runtime-DLTR5fch.js");
25099
25108
  return subagentRegistryRuntimePromise;
25100
25109
  }
25101
25110
  const DIRECT_ANNOUNCE_TRANSIENT_RETRY_DELAYS_MS = FAST_TEST_MODE ? [
@@ -16,7 +16,7 @@ import "./skills-VQO3Anke.js";
16
16
  import "./frontmatter-DAfBRAy7.js";
17
17
  import "./redact-CxtZhh9L.js";
18
18
  import "./path-alias-guards-DHv0a8uY.js";
19
- import "./compact-DpN1Nt0S.js";
19
+ import "./compact-DBxHCU3Q.js";
20
20
  import "./plugins-DRDN4jFP.js";
21
21
  import "./paths-B-JdyKTL.js";
22
22
  import "./chat-envelope-t_PEbhWC.js";
@@ -73,7 +73,7 @@ import { t as ensureOpenClawCliOnPath } from "./path-env-BzShNuO6.js";
73
73
  import "./prompt-style-BmwLwm5B.js";
74
74
  import "./note-CNy1ZzH9.js";
75
75
  import "./issue-format-DbKknWy1.js";
76
- import { t as ensurePluginRegistryLoaded } from "./plugin-registry-FMZRN3Ae.js";
76
+ import { t as ensurePluginRegistryLoaded } from "./plugin-registry-B2Xg5cIZ.js";
77
77
  import { t as assertSupportedRuntime } from "./runtime-guard-ENMKovXj.js";
78
78
  import { t as emitCliBanner } from "./banner-Ctm-KPnO.js";
79
79
  import "./doctor-config-flow-BaPH3aqI.js";
@@ -89,7 +89,7 @@ const routeHealth = {
89
89
  const verbose = getVerboseFlag(argv, { includeDebug: true });
90
90
  const timeoutMs = getPositiveIntFlagValue(argv, "--timeout");
91
91
  if (timeoutMs === null) return false;
92
- const { healthCommand } = await import("./health-BPWpRQaJ.js").then((n) => n.i);
92
+ const { healthCommand } = await import("./health-D22GmS6O.js").then((n) => n.i);
93
93
  await healthCommand({
94
94
  json,
95
95
  timeoutMs,
@@ -109,7 +109,7 @@ const routeStatus = {
109
109
  const verbose = getVerboseFlag(argv, { includeDebug: true });
110
110
  const timeoutMs = getPositiveIntFlagValue(argv, "--timeout");
111
111
  if (timeoutMs === null) return false;
112
- const { statusCommand } = await import("./status-_r2NL6m9.js").then((n) => n.t);
112
+ const { statusCommand } = await import("./status-DdFy329n.js").then((n) => n.t);
113
113
  await statusCommand({
114
114
  json,
115
115
  deep,
@@ -148,7 +148,7 @@ const routeAgentsList = {
148
148
  run: async (argv) => {
149
149
  const json = hasFlag(argv, "--json");
150
150
  const bindings = hasFlag(argv, "--bindings");
151
- const { agentsListCommand } = await import("./agents-BSbsIbCx.js").then((n) => n.t);
151
+ const { agentsListCommand } = await import("./agents-BFneTNaM.js").then((n) => n.t);
152
152
  await agentsListCommand({
153
153
  json,
154
154
  bindings
@@ -214,7 +214,7 @@ const routes = [
214
214
  const pathArg = positionals[0];
215
215
  if (!pathArg) return false;
216
216
  const json = hasFlag(argv, "--json");
217
- const { runConfigGet } = await import("./config-cli-tykH1hkE.js");
217
+ const { runConfigGet } = await import("./config-cli-C4ryG2Rf.js");
218
218
  await runConfigGet({
219
219
  path: pathArg,
220
220
  json
@@ -229,7 +229,7 @@ const routes = [
229
229
  if (!positionals || positionals.length !== 1) return false;
230
230
  const pathArg = positionals[0];
231
231
  if (!pathArg) return false;
232
- const { runConfigUnset } = await import("./config-cli-tykH1hkE.js");
232
+ const { runConfigUnset } = await import("./config-cli-C4ryG2Rf.js");
233
233
  await runConfigUnset({ path: pathArg });
234
234
  return true;
235
235
  }
@@ -243,7 +243,7 @@ const routes = [
243
243
  const local = hasFlag(argv, "--local");
244
244
  const json = hasFlag(argv, "--json");
245
245
  const plain = hasFlag(argv, "--plain");
246
- const { modelsListCommand } = await import("./models-B2oGZOi7.js").then((n) => n.t);
246
+ const { modelsListCommand } = await import("./models-BouiRS5o.js").then((n) => n.t);
247
247
  await modelsListCommand({
248
248
  all,
249
249
  local,
@@ -274,7 +274,7 @@ const routes = [
274
274
  const plain = hasFlag(argv, "--plain");
275
275
  const check = hasFlag(argv, "--check");
276
276
  const probe = hasFlag(argv, "--probe");
277
- const { modelsStatusCommand } = await import("./models-B2oGZOi7.js").then((n) => n.t);
277
+ const { modelsStatusCommand } = await import("./models-BouiRS5o.js").then((n) => n.t);
278
278
  await modelsStatusCommand({
279
279
  json,
280
280
  plain,
@@ -363,7 +363,7 @@ async function runCli(argv = process$1.argv) {
363
363
  try {
364
364
  if (await tryRouteCli(normalizedArgv)) return;
365
365
  enableConsoleCapture();
366
- const { buildProgram } = await import("./program-B8-8_sev.js");
366
+ const { buildProgram } = await import("./program-Da383ALS.js");
367
367
  const program = buildProgram();
368
368
  installUnhandledRejectionHandler();
369
369
  process$1.on("uncaughtException", (error) => {
@@ -376,10 +376,10 @@ async function runCli(argv = process$1.argv) {
376
376
  const { getProgramContext } = await import("./program-context-Dz8VotJ1.js").then((n) => n.n);
377
377
  const ctx = getProgramContext(program);
378
378
  if (ctx) {
379
- const { registerCoreCliByName } = await import("./command-registry-dPZvDdl5.js").then((n) => n.t);
379
+ const { registerCoreCliByName } = await import("./command-registry-B4XSKnqk.js").then((n) => n.t);
380
380
  await registerCoreCliByName(program, ctx, primary, parseArgv);
381
381
  }
382
- const { registerSubCliByName } = await import("./register.subclis-DF5yhf7D.js").then((n) => n.a);
382
+ const { registerSubCliByName } = await import("./register.subclis-BJi9Wx12.js").then((n) => n.a);
383
383
  await registerSubCliByName(program, primary);
384
384
  }
385
385
  if (!shouldSkipPluginCommandRegistration({
@@ -387,8 +387,8 @@ async function runCli(argv = process$1.argv) {
387
387
  primary,
388
388
  hasBuiltinPrimary: primary !== null && program.commands.some((command) => command.name() === primary)
389
389
  })) {
390
- const { registerPluginCliCommands } = await import("./cli-BTBoxnnI.js");
391
- const { loadValidatedConfigForPluginRegistration } = await import("./register.subclis-DF5yhf7D.js").then((n) => n.a);
390
+ const { registerPluginCliCommands } = await import("./cli-He5MwTZv.js");
391
+ const { loadValidatedConfigForPluginRegistration } = await import("./register.subclis-BJi9Wx12.js").then((n) => n.a);
392
392
  const config = await loadValidatedConfigForPluginRegistration();
393
393
  if (config) registerPluginCliCommands(program, config);
394
394
  }
@@ -2,7 +2,7 @@ import { u as resolveGatewayPort } from "./paths-BJV7vkaX.js";
2
2
  import { A as theme, k as isRich, t as createSubsystemLogger, y as info } from "./subsystem-Dk5WUhC2.js";
3
3
  import { t as CONFIG_DIR } from "./utils-CGU7Q77u.js";
4
4
  import { Ja as readConfigFileSnapshot, Lr as resolveMainSessionKey, Mr as resolveFreshSessionTotalTokens, Tc as DEFAULT_PROVIDER, Wa as loadConfig, Ws as VERSION, h as resolveConfiguredModelRef, ma as sha256HexPrefix, pi as resolveChannelDefaultAccountId, qa as readBestEffortConfig, wc as DEFAULT_MODEL, zn as loadSessionStore } from "./model-selection-DU-DNNW7.js";
5
- import { At as classifySessionKey, Bt as resolveContextTokensForModel, Et as formatUsageReportLines, F as getRemoteSkillEligibility, Lt as resolveSessionModelRef, Mn as peekSystemEvents, Tt as loadProviderUsageSummary, f as buildChannelSummary, fn as readRestartSentinel, g as resolveChannelAccountEnabled, h as resolveChannelAccountConfigured, jt as listAgentsForGateway, m as formatChannelAllowFrom, p as buildChannelAccountSnapshot, pn as summarizeRestartSentinel } from "./reply-OIc7wENR.js";
5
+ import { At as classifySessionKey, Bt as resolveContextTokensForModel, Et as formatUsageReportLines, F as getRemoteSkillEligibility, Lt as resolveSessionModelRef, Mn as peekSystemEvents, Tt as loadProviderUsageSummary, f as buildChannelSummary, fn as readRestartSentinel, g as resolveChannelAccountEnabled, h as resolveChannelAccountConfigured, jt as listAgentsForGateway, m as formatChannelAllowFrom, p as buildChannelAccountSnapshot, pn as summarizeRestartSentinel } from "./reply-9_WxyHfF.js";
6
6
  import { u as resolveAgentWorkspaceDir } from "./agent-scope-BrJT9Gf9.js";
7
7
  import { T as parseAgentSessionKey } from "./session-key-VV3RvEri.js";
8
8
  import { t as resolveOpenClawPackageRoot } from "./openclaw-root-DbbVtnL2.js";
@@ -28,7 +28,7 @@ import { o as resolveGatewayLogPaths, t as resolveGatewayService } from "./servi
28
28
  import { n as formatRuntimeStatusWithDetails, t as readLastGatewayErrorLine } from "./diagnostics-C-VDJRVJ.js";
29
29
  import { r as probeGateway, t as resolveGatewayProbeAuthSafe } from "./probe-auth-BhN3PhE1.js";
30
30
  import { n as renderTable, t as getTerminalTableWidth } from "./table-ByNbkdzT.js";
31
- import { o as resolveHeartbeatSummaryForAgent, t as formatHealthChannelLines } from "./health-TMNIIFvC.js";
31
+ import { o as resolveHeartbeatSummaryForAgent, t as formatHealthChannelLines } from "./health-I2eelBJ0.js";
32
32
  import { a as formatGitInstallLabel, g as resolveUpdateChannelDisplay, m as normalizeUpdateChannel, n as checkUpdateStatus, t as resolveDefaultChannelAccountContext } from "./channel-account-context-D9S5HJn4.js";
33
33
  import { t as runSecurityAudit } from "./audit-Cg4EdF12.js";
34
34
  import { t as evaluateEntryRequirementsForCurrentPlatform } from "./entry-status-Dbi4kS4y.js";
@@ -12,7 +12,7 @@ import { a as isBundledSkillAllowed, c as resolveSkillConfig, o as isConfigPathT
12
12
  import { t as VERSION } from "./version-Bxx5bg6l.js";
13
13
  import { a as resolveBundledSkillsDir, r as loadWorkspaceSkillEntries, t as resolveSkillsInstallPreferences } from "./skills-VQO3Anke.js";
14
14
  import { f as hasBinary } from "./frontmatter-DAfBRAy7.js";
15
- import { At as formatChannelAllowFrom, Ct as formatUsageReportLines, Et as getRemoteSkillEligibility, It as peekSystemEvents, J as summarizeRestartSentinel, Mt as resolveChannelAccountEnabled, Ot as buildChannelSummary, St as loadProviderUsageSummary, jt as resolveChannelAccountConfigured, kt as buildChannelAccountSnapshot, q as readRestartSentinel } from "./compact-DpN1Nt0S.js";
15
+ import { At as formatChannelAllowFrom, Ct as formatUsageReportLines, Et as getRemoteSkillEligibility, It as peekSystemEvents, J as summarizeRestartSentinel, Mt as resolveChannelAccountEnabled, Ot as buildChannelSummary, St as loadProviderUsageSummary, jt as resolveChannelAccountConfigured, kt as buildChannelAccountSnapshot, q as readRestartSentinel } from "./compact-DBxHCU3Q.js";
16
16
  import { n as listChannelPlugins } from "./plugins-DRDN4jFP.js";
17
17
  import { c as resolveStorePath } from "./paths-B-JdyKTL.js";
18
18
  import { d as resolveContextTokensForModel, l as resolveSessionModelRef, n as classifySessionKey, r as listAgentsForGateway } from "./session-utils-5dTolcMA.js";
@@ -30,7 +30,7 @@ import { o as resolveGatewayLogPaths, t as resolveGatewayService } from "./servi
30
30
  import { a as formatPortDiagnostics, o as formatRuntimeStatusWithDetails, r as inspectPortUsage, t as readLastGatewayErrorLine } from "./diagnostics-B0ei2Nxu.js";
31
31
  import { r as probeGateway, t as resolveGatewayProbeAuthSafe } from "./probe-auth-CBWjkGhd.js";
32
32
  import { n as renderTable, t as getTerminalTableWidth } from "./table-B-mQ0pe0.js";
33
- import { o as resolveHeartbeatSummaryForAgent, t as formatHealthChannelLines } from "./health-BPWpRQaJ.js";
33
+ import { o as resolveHeartbeatSummaryForAgent, t as formatHealthChannelLines } from "./health-D22GmS6O.js";
34
34
  import { a as formatGitInstallLabel, g as resolveUpdateChannelDisplay, m as normalizeUpdateChannel, n as checkUpdateStatus, t as resolveDefaultChannelAccountContext } from "./channel-account-context-XxNxKPcm.js";
35
35
  import { t as runSecurityAudit } from "./audit-u873Aqoz.js";
36
36
  import { t as evaluateEntryRequirementsForCurrentPlatform } from "./entry-status-YppstaEp.js";
@@ -8,7 +8,7 @@ import "./github-copilot-token-CLlAnyEf.js";
8
8
  import "./boolean-C7Ct_klp.js";
9
9
  import "./env-Bhn5CLil.js";
10
10
  import "./frontmatter-CC95HXlE.js";
11
- import { A as listSubagentRunsForRequester, D as countPendingDescendantRuns, E as countActiveDescendantRuns, M as resolveRequesterForChildSession, N as shouldIgnorePostCompletionAnnounceForSession, O as countPendingDescendantRunsExcludingRun, j as replaceSubagentRunAfterSteer, k as isSubagentSessionRunActive } from "./pi-embedded-DbOc1rhk.js";
11
+ import { A as listSubagentRunsForRequester, D as countPendingDescendantRuns, E as countActiveDescendantRuns, M as resolveRequesterForChildSession, N as shouldIgnorePostCompletionAnnounceForSession, O as countPendingDescendantRunsExcludingRun, j as replaceSubagentRunAfterSteer, k as isSubagentSessionRunActive } from "./pi-embedded-cW_upWzb.js";
12
12
  import "./deliver-D2j_qrPV.js";
13
13
  import "./diagnostic-G-xDRRdG.js";
14
14
  import "./chunk-BSmRwqjw.js";
@@ -2,7 +2,7 @@ import "./paths-Mt14cg41.js";
2
2
  import "./paths-CDoTDY_s.js";
3
3
  import "./logger-Bxlcwvue.js";
4
4
  import "./model-selection-PlvJPOJ9.js";
5
- import { a as countPendingDescendantRunsExcludingRun, c as replaceSubagentRunAfterSteer, i as countPendingDescendantRuns, l as resolveRequesterForChildSession, o as isSubagentSessionRunActive, r as countActiveDescendantRuns, s as listSubagentRunsForRequester, u as shouldIgnorePostCompletionAnnounceForSession } from "./pi-embedded-0VIfw7tV.js";
5
+ import { a as countPendingDescendantRunsExcludingRun, c as replaceSubagentRunAfterSteer, i as countPendingDescendantRuns, l as resolveRequesterForChildSession, o as isSubagentSessionRunActive, r as countActiveDescendantRuns, s as listSubagentRunsForRequester, u as shouldIgnorePostCompletionAnnounceForSession } from "./pi-embedded-XOWzcU4v.js";
6
6
  import "./github-copilot-token-CxpwfC_T.js";
7
7
  import "./env-BFnrIO45.js";
8
8
  import "./deliver-DIDeQhCe.js";
@@ -15,7 +15,7 @@ import "./skills-VQO3Anke.js";
15
15
  import "./frontmatter-DAfBRAy7.js";
16
16
  import "./redact-CxtZhh9L.js";
17
17
  import "./path-alias-guards-DHv0a8uY.js";
18
- import { cn as listSubagentRunsForRequester, dn as shouldIgnorePostCompletionAnnounceForSession, in as countPendingDescendantRunsExcludingRun, ln as replaceSubagentRunAfterSteer, nn as countActiveDescendantRuns, on as isSubagentSessionRunActive, rn as countPendingDescendantRuns, un as resolveRequesterForChildSession } from "./compact-DpN1Nt0S.js";
18
+ import { cn as listSubagentRunsForRequester, dn as shouldIgnorePostCompletionAnnounceForSession, in as countPendingDescendantRunsExcludingRun, ln as replaceSubagentRunAfterSteer, nn as countActiveDescendantRuns, on as isSubagentSessionRunActive, rn as countPendingDescendantRuns, un as resolveRequesterForChildSession } from "./compact-DBxHCU3Q.js";
19
19
  import "./plugins-DRDN4jFP.js";
20
20
  import "./paths-B-JdyKTL.js";
21
21
  import "./chat-envelope-t_PEbhWC.js";
@@ -2,7 +2,7 @@ import "./paths-BJV7vkaX.js";
2
2
  import "./subsystem-Dk5WUhC2.js";
3
3
  import "./utils-CGU7Q77u.js";
4
4
  import "./model-selection-DU-DNNW7.js";
5
- import { C as listSubagentRunsForRequester, E as shouldIgnorePostCompletionAnnounceForSession, T as resolveRequesterForChildSession, _ as countActiveDescendantRuns, v as countPendingDescendantRuns, w as replaceSubagentRunAfterSteer, x as isSubagentSessionRunActive, y as countPendingDescendantRunsExcludingRun } from "./reply-OIc7wENR.js";
5
+ import { C as listSubagentRunsForRequester, E as shouldIgnorePostCompletionAnnounceForSession, T as resolveRequesterForChildSession, _ as countActiveDescendantRuns, v as countPendingDescendantRuns, w as replaceSubagentRunAfterSteer, x as isSubagentSessionRunActive, y as countPendingDescendantRunsExcludingRun } from "./reply-9_WxyHfF.js";
6
6
  import "./agent-scope-BrJT9Gf9.js";
7
7
  import "./openclaw-root-DbbVtnL2.js";
8
8
  import "./logger-m0MK99MT.js";
@@ -2,7 +2,7 @@ import { g as resolveStateDir, n as DEFAULT_GATEWAY_PORT, u as resolveGatewayPor
2
2
  import { A as theme, p as defaultRuntime } from "./subsystem-Dk5WUhC2.js";
3
3
  import { p as pathExists } from "./utils-CGU7Q77u.js";
4
4
  import { $a as writeConfigFile, Ja as readConfigFileSnapshot } from "./model-selection-DU-DNNW7.js";
5
- import { mn as trimLogTail } from "./reply-OIc7wENR.js";
5
+ import { mn as trimLogTail } from "./reply-9_WxyHfF.js";
6
6
  import "./agent-scope-BrJT9Gf9.js";
7
7
  import { t as resolveOpenClawPackageRoot } from "./openclaw-root-DbbVtnL2.js";
8
8
  import "./logger-m0MK99MT.js";
@@ -70,7 +70,7 @@ import "./prompt-Dw2SzW-X.js";
70
70
  import "./binaries-AvCyfzgx.js";
71
71
  import "./ports-BKzkl2Nt.js";
72
72
  import { r as parseSemver } from "./runtime-guard-BbTH9fjr.js";
73
- import "./program-context-DFu0VnTR.js";
73
+ import "./program-context-BCpzWqA0.js";
74
74
  import { n as inheritOptionFromParent } from "./command-options-arOgkwup.js";
75
75
  import { n as stylePromptMessage } from "./prompt-style-Dc8jJv7n.js";
76
76
  import "./note-BiaAdUTc.js";
@@ -79,7 +79,7 @@ import "./skill-scanner-djTgcKux.js";
79
79
  import "./installs-DPimnX51.js";
80
80
  import { n as formatConfigIssueLines } from "./issue-format-hszNX8Io.js";
81
81
  import "./channels-status-issues-HL-uv6_6.js";
82
- import { r as installCompletion } from "./completion-cli-BBsE2_OZ.js";
82
+ import { r as installCompletion } from "./completion-cli-C0IxNzBH.js";
83
83
  import "./gateway-install-token-CVO9K6d2.js";
84
84
  import "./tailscale-BypHVf47.js";
85
85
  import "./auth-Bu24hYWH.js";
@@ -91,8 +91,8 @@ import "./diagnostics-C-VDJRVJ.js";
91
91
  import "./inspect-0yj9c1e2.js";
92
92
  import "./probe-auth-BhN3PhE1.js";
93
93
  import { n as renderTable, t as getTerminalTableWidth } from "./table-ByNbkdzT.js";
94
- import { a as globalInstallArgs, c as readPackageName, i as detectGlobalInstallManagerForRoot, l as readPackageVersion, n as cleanupGlobalRenameDirs, o as resolveGlobalPackageRoot, r as detectGlobalInstallManagerByPresence, s as normalizePackageTagInput, t as runGatewayUpdate } from "./update-runner-Dh84Ivzm.js";
95
- import "./health-TMNIIFvC.js";
94
+ import { a as globalInstallArgs, c as readPackageName, i as detectGlobalInstallManagerForRoot, l as readPackageVersion, n as cleanupGlobalRenameDirs, o as resolveGlobalPackageRoot, r as detectGlobalInstallManagerByPresence, s as normalizePackageTagInput, t as runGatewayUpdate } from "./update-runner-DgI58_4p.js";
95
+ import "./health-I2eelBJ0.js";
96
96
  import { d as formatUpdateChannelLabel, g as resolveUpdateChannelDisplay, h as resolveEffectiveUpdateChannel, i as fetchNpmTagVersion, m as normalizeUpdateChannel, n as checkUpdateStatus, o as resolveNpmChannelTag, r as compareSemverStrings, u as channelToNpmTag } from "./channel-account-context-D9S5HJn4.js";
97
97
  import { i as resolveUpdateAvailability, n as formatUpdateOneLiner, t as formatUpdateAvailableHint } from "./status.update-s77gig85.js";
98
98
  import "./logging-4UnG2dJ0.js";
@@ -101,8 +101,8 @@ import { n as updateNpmInstalledPlugins, t as syncPluginsForUpdateChannel } from
101
101
  import "./doctor-config-flow-BcXzOsQs.js";
102
102
  import "./systemd-linger-CQCpuIm8.js";
103
103
  import "./health-format-CMtVTDKx.js";
104
- import { n as doctorCommand, t as selectStyled } from "./prompt-select-styled-CtJff3Gr.js";
105
- import { r as ensureCompletionCacheExists, t as checkShellCompletionStatus } from "./doctor-completion-COnwyNVJ.js";
104
+ import { n as doctorCommand, t as selectStyled } from "./prompt-select-styled-DJXH3Ik2.js";
105
+ import { r as ensureCompletionCacheExists, t as checkShellCompletionStatus } from "./doctor-completion-BMhNBLlZ.js";
106
106
  import os from "node:os";
107
107
  import path from "node:path";
108
108
  import fsPromises from "node:fs/promises";
@@ -17,7 +17,7 @@ import "./skills-VQO3Anke.js";
17
17
  import "./frontmatter-DAfBRAy7.js";
18
18
  import "./redact-CxtZhh9L.js";
19
19
  import "./path-alias-guards-DHv0a8uY.js";
20
- import { Y as trimLogTail } from "./compact-DpN1Nt0S.js";
20
+ import { Y as trimLogTail } from "./compact-DBxHCU3Q.js";
21
21
  import "./plugins-DRDN4jFP.js";
22
22
  import "./paths-B-JdyKTL.js";
23
23
  import "./chat-envelope-t_PEbhWC.js";
@@ -80,9 +80,9 @@ import "./skill-scanner-owyfHlsM.js";
80
80
  import "./installs-CcSbcDOj.js";
81
81
  import { n as formatConfigIssueLines } from "./issue-format-DbKknWy1.js";
82
82
  import "./channels-status-issues-CEWI6i2Y.js";
83
- import { r as installCompletion } from "./completion-cli-BWNkPwVM.js";
84
- import "./register.subclis-DF5yhf7D.js";
85
- import "./command-registry-dPZvDdl5.js";
83
+ import { r as installCompletion } from "./completion-cli-BXlBKnlj.js";
84
+ import "./register.subclis-BJi9Wx12.js";
85
+ import "./command-registry-B4XSKnqk.js";
86
86
  import "./program-context-Dz8VotJ1.js";
87
87
  import "./gateway-install-token-B7z4nya5.js";
88
88
  import { r as parseSemver } from "./runtime-guard-ENMKovXj.js";
@@ -97,8 +97,8 @@ import "./diagnostics-B0ei2Nxu.js";
97
97
  import "./inspect-CmvIDefh.js";
98
98
  import "./probe-auth-CBWjkGhd.js";
99
99
  import { n as renderTable, t as getTerminalTableWidth } from "./table-B-mQ0pe0.js";
100
- import { a as globalInstallArgs, c as readPackageName, i as detectGlobalInstallManagerForRoot, l as readPackageVersion, n as cleanupGlobalRenameDirs, o as resolveGlobalPackageRoot, r as detectGlobalInstallManagerByPresence, s as normalizePackageTagInput, t as runGatewayUpdate } from "./update-runner-DwRQE_g4.js";
101
- import "./health-BPWpRQaJ.js";
100
+ import { a as globalInstallArgs, c as readPackageName, i as detectGlobalInstallManagerForRoot, l as readPackageVersion, n as cleanupGlobalRenameDirs, o as resolveGlobalPackageRoot, r as detectGlobalInstallManagerByPresence, s as normalizePackageTagInput, t as runGatewayUpdate } from "./update-runner-CSPTpzlG.js";
101
+ import "./health-D22GmS6O.js";
102
102
  import { d as formatUpdateChannelLabel, g as resolveUpdateChannelDisplay, h as resolveEffectiveUpdateChannel, i as fetchNpmTagVersion, m as normalizeUpdateChannel, n as checkUpdateStatus, o as resolveNpmChannelTag, r as compareSemverStrings, u as channelToNpmTag } from "./channel-account-context-XxNxKPcm.js";
103
103
  import { i as resolveUpdateAvailability, n as formatUpdateOneLiner, t as formatUpdateAvailableHint } from "./status.update-BC8_WNUD.js";
104
104
  import "./logging-BHhuGbN8.js";
@@ -107,8 +107,8 @@ import { n as updateNpmInstalledPlugins, t as syncPluginsForUpdateChannel } from
107
107
  import "./doctor-config-flow-BaPH3aqI.js";
108
108
  import "./systemd-linger-CMiOvq-j.js";
109
109
  import "./health-format-CeDaLKjT.js";
110
- import { n as doctorCommand, t as selectStyled } from "./prompt-select-styled-BRbUYwP5.js";
111
- import { r as ensureCompletionCacheExists, t as checkShellCompletionStatus } from "./doctor-completion-Dmg5bIZZ.js";
110
+ import { n as doctorCommand, t as selectStyled } from "./prompt-select-styled-CX2-E6Ws.js";
111
+ import { r as ensureCompletionCacheExists, t as checkShellCompletionStatus } from "./doctor-completion-Bhzly0Le.js";
112
112
  import { spawn, spawnSync } from "node:child_process";
113
113
  import os from "node:os";
114
114
  import path from "node:path";
@@ -2,7 +2,7 @@ import { pi as resolveSecretRefValues, ua as secretRefKey } from "./auth-profile
2
2
  import { f as pathExists } from "./utils-qah6hFG0.js";
3
3
  import { t as runCommandWithTimeout } from "./exec-B-ZR6IBr.js";
4
4
  import { d as resolveSecretInputRef } from "./types.secrets-CQ90JO4F.js";
5
- import { Y as trimLogTail, at as normalizeOptionalText, ct as migrateLegacyCronPayload, lt as normalizeLegacyDeliveryInput, nt as inferLegacyName } from "./compact-DpN1Nt0S.js";
5
+ import { Y as trimLogTail, at as normalizeOptionalText, ct as migrateLegacyCronPayload, lt as normalizeLegacyDeliveryInput, nt as inferLegacyName } from "./compact-DBxHCU3Q.js";
6
6
  import { i as parseAbsoluteTimeMs, r as resolveDefaultCronStaggerMs, t as normalizeCronStaggerMs } from "./stagger-BLMcBL-k.js";
7
7
  import { d as resolveStableNodePath } from "./gateway-install-token-B7z4nya5.js";
8
8
  import { f as isBetaTag, l as DEV_BRANCH, p as isStableTag, r as compareSemverStrings, s as detectPackageManager$1, u as channelToNpmTag } from "./channel-account-context-XxNxKPcm.js";
@@ -1,6 +1,6 @@
1
1
  import { p as pathExists } from "./utils-CGU7Q77u.js";
2
2
  import { So as secretRefKey, Ta as resolveSecretRefValues } from "./model-selection-DU-DNNW7.js";
3
- import { Dn as migrateLegacyCronPayload, On as normalizeLegacyDeliveryInput, mn as trimLogTail, wn as normalizeOptionalText, xn as inferLegacyName } from "./reply-OIc7wENR.js";
3
+ import { Dn as migrateLegacyCronPayload, On as normalizeLegacyDeliveryInput, mn as trimLogTail, wn as normalizeOptionalText, xn as inferLegacyName } from "./reply-9_WxyHfF.js";
4
4
  import { t as runCommandWithTimeout } from "./exec-B8ip-O6u.js";
5
5
  import { d as resolveSecretInputRef } from "./types.secrets-ZqKzSyNC.js";
6
6
  import { i as parseAbsoluteTimeMs, r as resolveDefaultCronStaggerMs, t as normalizeCronStaggerMs } from "./stagger-BtegmH1U.js";
@@ -296,6 +296,22 @@ export async function handleHubInbound(params: {
296
296
  },
297
297
  });
298
298
 
299
+ // Passive ACK: notify Hub that this message was loaded into a live session.
300
+ // Fire-and-forget — does not block the reply dispatch path.
301
+ // Enables senders to query GET /agents/<agent>/messages/sent?session_loaded=true
302
+ // to confirm their message reached an active runtime.
303
+ // Always use localhost — Hub is at :8080 inside the container; account.url is public
304
+ const hubUrl = "http://127.0.0.1:8080";
305
+ const ackPayload = { secret: account.secret, ack_type: "session_loaded" };
306
+ console.log(
307
+ `[PASSIVE-ACK] message.messageId="${message.messageId}" account.agentId="${account.agentId}" hasSecret=${!!account.secret} hubUrl="${hubUrl}"`,
308
+ );
309
+ fetch(`${hubUrl}/agents/${account.agentId}/messages/${message.messageId}/ack`, {
310
+ method: "POST",
311
+ headers: { "Content-Type": "application/json" },
312
+ body: JSON.stringify(ackPayload),
313
+ }).catch((e) => console.log(`[PASSIVE-ACK] fetch error: ${e}`)); // log errors not silent
314
+
299
315
  const { onModelSelected, ...prefixOptions } = createReplyPrefixOptions({
300
316
  cfg: config as OpenClawConfig,
301
317
  agentId: route.agentId,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "activeclaw",
3
- "version": "2026.4.6",
3
+ "version": "2026.4.9",
4
4
  "description": "Proactive hosted-agent gateway starter with full memory indexing",
5
5
  "keywords": [
6
6
  "activeclaw",