@openclaw-cloud/agent-controller 3.0.0-beta.2 → 3.0.0-beta.20

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 (166) hide show
  1. package/bin/agent-controller.js +5 -9
  2. package/dist/api.d.ts +16 -0
  3. package/dist/api.js.map +1 -1
  4. package/dist/commands/agent-update-cli.js +23 -38
  5. package/dist/commands/agent-update-cli.js.map +1 -1
  6. package/dist/commands/backup-cli.js +6 -4
  7. package/dist/commands/backup-cli.js.map +1 -1
  8. package/dist/commands/bootstrap.d.ts +10 -1
  9. package/dist/commands/bootstrap.js +33 -73
  10. package/dist/commands/bootstrap.js.map +1 -1
  11. package/dist/commands/channel-server.js +4 -3
  12. package/dist/commands/channel-server.js.map +1 -1
  13. package/dist/commands/heartbeat-cli.js +2 -6
  14. package/dist/commands/heartbeat-cli.js.map +1 -1
  15. package/dist/commands/install-deps.d.ts +10 -0
  16. package/dist/commands/install-deps.js +33 -43
  17. package/dist/commands/install-deps.js.map +1 -1
  18. package/dist/commands/knowledge-sync-cli.js +6 -4
  19. package/dist/commands/knowledge-sync-cli.js.map +1 -1
  20. package/dist/commands/plugin-update-cli.js +4 -8
  21. package/dist/commands/plugin-update-cli.js.map +1 -1
  22. package/dist/commands/self-update.d.ts +1 -0
  23. package/dist/commands/self-update.js +76 -37
  24. package/dist/commands/self-update.js.map +1 -1
  25. package/dist/commands/update-skills.js +7 -6
  26. package/dist/commands/update-skills.js.map +1 -1
  27. package/dist/config-file.d.ts +24 -0
  28. package/dist/config-file.js +56 -20
  29. package/dist/config-file.js.map +1 -1
  30. package/dist/config.d.ts +4 -0
  31. package/dist/config.js +12 -0
  32. package/dist/config.js.map +1 -1
  33. package/dist/connection.d.ts +4 -0
  34. package/dist/connection.js +50 -5
  35. package/dist/connection.js.map +1 -1
  36. package/dist/handlers/agent-update.d.ts +4 -0
  37. package/dist/handlers/agent-update.js +16 -44
  38. package/dist/handlers/agent-update.js.map +1 -1
  39. package/dist/handlers/deploy.d.ts +1 -2
  40. package/dist/handlers/deploy.js +4 -20
  41. package/dist/handlers/deploy.js.map +1 -1
  42. package/dist/handlers/diagnostics.js +0 -12
  43. package/dist/handlers/diagnostics.js.map +1 -1
  44. package/dist/handlers/file-delete.js +4 -5
  45. package/dist/handlers/file-delete.js.map +1 -1
  46. package/dist/handlers/file-write.js +4 -4
  47. package/dist/handlers/file-write.js.map +1 -1
  48. package/dist/handlers/knowledge-sync.js +2 -14
  49. package/dist/handlers/knowledge-sync.js.map +1 -1
  50. package/dist/handlers/memory.d.ts +11 -1
  51. package/dist/handlers/memory.js.map +1 -1
  52. package/dist/handlers/onboarding.d.ts +1 -2
  53. package/dist/handlers/onboarding.js +3 -20
  54. package/dist/handlers/onboarding.js.map +1 -1
  55. package/dist/handlers/package-install.js +1 -1
  56. package/dist/handlers/package-install.js.map +1 -1
  57. package/dist/handlers/pair.js +0 -12
  58. package/dist/handlers/pair.js.map +1 -1
  59. package/dist/handlers/restart.d.ts +1 -2
  60. package/dist/handlers/restart.js +3 -8
  61. package/dist/handlers/restart.js.map +1 -1
  62. package/dist/handlers/slack-event.d.ts +13 -0
  63. package/dist/handlers/slack-event.js +40 -0
  64. package/dist/handlers/slack-event.js.map +1 -0
  65. package/dist/handlers/stop.js +0 -7
  66. package/dist/handlers/stop.js.map +1 -1
  67. package/dist/handlers/telegram-webhook.js +3 -22
  68. package/dist/handlers/telegram-webhook.js.map +1 -1
  69. package/dist/handlers/update-config.js +4 -13
  70. package/dist/handlers/update-config.js.map +1 -1
  71. package/dist/heartbeat.d.ts +7 -1
  72. package/dist/heartbeat.js +35 -6
  73. package/dist/heartbeat.js.map +1 -1
  74. package/dist/index.d.ts +0 -8
  75. package/dist/index.js +87 -119
  76. package/dist/index.js.map +1 -1
  77. package/dist/lockfile.js +2 -1
  78. package/dist/lockfile.js.map +1 -1
  79. package/dist/platform/linux.js +6 -5
  80. package/dist/platform/linux.js.map +1 -1
  81. package/dist/platform/macos.js +3 -2
  82. package/dist/platform/macos.js.map +1 -1
  83. package/dist/platform/windows.js +3 -2
  84. package/dist/platform/windows.js.map +1 -1
  85. package/dist/providers/claude-code/channel-server.js +2 -1
  86. package/dist/providers/claude-code/channel-server.js.map +1 -1
  87. package/dist/providers/claude-code/settings-writer.d.ts +3 -2
  88. package/dist/providers/claude-code/settings-writer.js +6 -15
  89. package/dist/providers/claude-code/settings-writer.js.map +1 -1
  90. package/dist/providers/index.d.ts +13 -0
  91. package/dist/providers/index.js +25 -0
  92. package/dist/providers/index.js.map +1 -1
  93. package/dist/providers/openclaw/gateway-adapter.js +2 -0
  94. package/dist/providers/openclaw/gateway-adapter.js.map +1 -1
  95. package/dist/providers/openclaw/gateway-client.js +6 -1
  96. package/dist/providers/openclaw/gateway-client.js.map +1 -1
  97. package/dist/providers/openclaw/index.js +11 -13
  98. package/dist/providers/openclaw/index.js.map +1 -1
  99. package/dist/slack-relay-server.d.ts +48 -0
  100. package/dist/slack-relay-server.js +197 -0
  101. package/dist/slack-relay-server.js.map +1 -0
  102. package/dist/types.d.ts +16 -1
  103. package/dist/utils/anthropic-auth.d.ts +14 -0
  104. package/dist/utils/anthropic-auth.js +24 -0
  105. package/dist/utils/anthropic-auth.js.map +1 -1
  106. package/dist/utils/apply-config.d.ts +65 -12
  107. package/dist/utils/apply-config.js +295 -100
  108. package/dist/utils/apply-config.js.map +1 -1
  109. package/dist/utils/claude-env.d.ts +6 -0
  110. package/dist/utils/claude-env.js +29 -28
  111. package/dist/utils/claude-env.js.map +1 -1
  112. package/dist/utils/config-merge-paths.d.ts +15 -1
  113. package/dist/utils/config-merge-paths.js +17 -3
  114. package/dist/utils/config-merge-paths.js.map +1 -1
  115. package/dist/utils/deploy-type.d.ts +16 -0
  116. package/dist/utils/deploy-type.js +34 -0
  117. package/dist/utils/deploy-type.js.map +1 -0
  118. package/dist/utils/env.d.ts +0 -1
  119. package/dist/utils/env.js +0 -8
  120. package/dist/utils/env.js.map +1 -1
  121. package/dist/utils/exec.d.ts +11 -0
  122. package/dist/utils/exec.js +47 -1
  123. package/dist/utils/exec.js.map +1 -1
  124. package/dist/utils/gateway-restart-handler.d.ts +6 -2
  125. package/dist/utils/gateway-restart-handler.js +11 -2
  126. package/dist/utils/gateway-restart-handler.js.map +1 -1
  127. package/dist/utils/gateway-restart.d.ts +7 -0
  128. package/dist/utils/gateway-restart.js +12 -4
  129. package/dist/utils/gateway-restart.js.map +1 -1
  130. package/dist/utils/knowledge-graph.d.ts +13 -1
  131. package/dist/utils/knowledge-graph.js +75 -29
  132. package/dist/utils/knowledge-graph.js.map +1 -1
  133. package/dist/utils/legacy-mcp-servers.d.ts +12 -0
  134. package/dist/utils/legacy-mcp-servers.js +37 -0
  135. package/dist/utils/legacy-mcp-servers.js.map +1 -0
  136. package/dist/utils/log-collector.js +2 -1
  137. package/dist/utils/log-collector.js.map +1 -1
  138. package/dist/utils/openclaw-ops.d.ts +45 -3
  139. package/dist/utils/openclaw-ops.js +94 -15
  140. package/dist/utils/openclaw-ops.js.map +1 -1
  141. package/dist/utils/openclaw-stack-update.d.ts +31 -0
  142. package/dist/utils/openclaw-stack-update.js +50 -0
  143. package/dist/utils/openclaw-stack-update.js.map +1 -0
  144. package/dist/utils/package-install.js +4 -12
  145. package/dist/utils/package-install.js.map +1 -1
  146. package/dist/utils/package-version.d.ts +10 -0
  147. package/dist/utils/package-version.js +18 -0
  148. package/dist/utils/package-version.js.map +1 -0
  149. package/dist/utils/parse-id-at-version.d.ts +15 -0
  150. package/dist/utils/parse-id-at-version.js +22 -0
  151. package/dist/utils/parse-id-at-version.js.map +1 -0
  152. package/dist/utils/plugin-reconcile.d.ts +46 -0
  153. package/dist/utils/plugin-reconcile.js +201 -0
  154. package/dist/utils/plugin-reconcile.js.map +1 -0
  155. package/dist/utils/response.js +1 -0
  156. package/dist/utils/response.js.map +1 -1
  157. package/dist/utils/write-home-files.d.ts +27 -0
  158. package/dist/utils/write-home-files.js +72 -0
  159. package/dist/utils/write-home-files.js.map +1 -0
  160. package/dist/utils/write-workspace-files.d.ts +1 -1
  161. package/dist/utils/write-workspace-files.js +19 -7
  162. package/dist/utils/write-workspace-files.js.map +1 -1
  163. package/dist/workspace.d.ts +11 -0
  164. package/dist/workspace.js +20 -0
  165. package/dist/workspace.js.map +1 -1
  166. package/package.json +9 -4
@@ -1 +1 @@
1
- {"version":3,"file":"knowledge-graph.js","sourceRoot":"","sources":["../../src/utils/knowledge-graph.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"knowledge-graph.js","sourceRoot":"","sources":["../../src/utils/knowledge-graph.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Lift a legacy flat `mcpServers` map at the root of a config file into the
3
+ * canonical nested `mcp.servers`. Existing nested entries win; the flat key is
4
+ * removed. Mutates `fileConfig` in place and returns true when anything moved.
5
+ *
6
+ * OpenClaw's CLI switched to strict schema validation that rejects the unknown
7
+ * top-level `mcpServers` key, so leaving it behind crashes the gateway on
8
+ * startup. The same migration runs against openclaw.json (both at startup and
9
+ * on the scoped-merge path) and against ~/.claude/settings.json, which is why
10
+ * it lives here instead of being copy-pasted into each of them.
11
+ */
12
+ export declare function migrateLegacyMcpServers(fileConfig: Record<string, unknown>, logPrefix: string): boolean;
@@ -0,0 +1,37 @@
1
+ function asPlainObject(v) {
2
+ return typeof v === 'object' && v !== null && !Array.isArray(v)
3
+ ? v
4
+ : null;
5
+ }
6
+ /**
7
+ * Lift a legacy flat `mcpServers` map at the root of a config file into the
8
+ * canonical nested `mcp.servers`. Existing nested entries win; the flat key is
9
+ * removed. Mutates `fileConfig` in place and returns true when anything moved.
10
+ *
11
+ * OpenClaw's CLI switched to strict schema validation that rejects the unknown
12
+ * top-level `mcpServers` key, so leaving it behind crashes the gateway on
13
+ * startup. The same migration runs against openclaw.json (both at startup and
14
+ * on the scoped-merge path) and against ~/.claude/settings.json, which is why
15
+ * it lives here instead of being copy-pasted into each of them.
16
+ */
17
+ export function migrateLegacyMcpServers(fileConfig, logPrefix) {
18
+ const flat = asPlainObject(fileConfig.mcpServers);
19
+ if (!flat)
20
+ return false;
21
+ const mcp = asPlainObject(fileConfig.mcp) ?? {};
22
+ const nested = asPlainObject(mcp.servers) ?? {};
23
+ for (const [name, value] of Object.entries(flat)) {
24
+ if (!(name in nested)) {
25
+ nested[name] = value;
26
+ console.log(`${logPrefix} MIGRATED legacy mcpServers.${name} → mcp.servers.${name}`);
27
+ }
28
+ else {
29
+ console.warn(`${logPrefix} MIGRATION SKIP: mcp.servers.${name} already exists, dropping legacy flat entry`);
30
+ }
31
+ }
32
+ mcp.servers = nested;
33
+ fileConfig.mcp = mcp;
34
+ delete fileConfig.mcpServers;
35
+ return true;
36
+ }
37
+ //# sourceMappingURL=legacy-mcp-servers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"legacy-mcp-servers.js","sourceRoot":"","sources":["../../src/utils/legacy-mcp-servers.ts"],"names":[],"mappings":"AAAA,SAAS,aAAa,CAAC,CAAU;IAC/B,OAAO,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QAC7D,CAAC,CAAE,CAA6B;QAChC,CAAC,CAAC,IAAI,CAAC;AACX,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,uBAAuB,CACrC,UAAmC,EACnC,SAAiB;IAEjB,MAAM,IAAI,GAAG,aAAa,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;IAClD,IAAI,CAAC,IAAI;QAAE,OAAO,KAAK,CAAC;IAExB,MAAM,GAAG,GAAG,aAAa,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;IAChD,MAAM,MAAM,GAAG,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;IAEhD,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QACjD,IAAI,CAAC,CAAC,IAAI,IAAI,MAAM,CAAC,EAAE,CAAC;YACtB,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;YACrB,OAAO,CAAC,GAAG,CAAC,GAAG,SAAS,+BAA+B,IAAI,kBAAkB,IAAI,EAAE,CAAC,CAAC;QACvF,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,IAAI,CACV,GAAG,SAAS,gCAAgC,IAAI,6CAA6C,CAC9F,CAAC;QACJ,CAAC;IACH,CAAC;IAED,GAAG,CAAC,OAAO,GAAG,MAAM,CAAC;IACrB,UAAU,CAAC,GAAG,GAAG,GAAG,CAAC;IACrB,OAAO,UAAU,CAAC,UAAU,CAAC;IAC7B,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -1,3 +1,4 @@
1
+ import { toErrorMessage } from './response.js';
1
2
  export class LogCollector {
2
3
  buffer = [];
3
4
  timer = null;
@@ -39,7 +40,7 @@ export class LogCollector {
39
40
  if (this.buffer.length > 500) {
40
41
  this.buffer.splice(500);
41
42
  }
42
- console.error('[log-collector] flush failed:', err instanceof Error ? err.message : err);
43
+ console.error('[log-collector] flush failed:', toErrorMessage(err));
43
44
  }
44
45
  }
45
46
  async shutdown() {
@@ -1 +1 @@
1
- {"version":3,"file":"log-collector.js","sourceRoot":"","sources":["../../src/utils/log-collector.ts"],"names":[],"mappings":"AAUA,MAAM,OAAO,YAAY;IACf,MAAM,GAAe,EAAE,CAAC;IACxB,KAAK,GAA0B,IAAI,CAAC;IAC3B,eAAe,CAAS;IACxB,YAAY,CAAS;IACrB,GAAG,CAAW;IAE/B,YAAY,GAAa,EAAE,IAA0D;QACnF,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,eAAe,GAAG,IAAI,EAAE,eAAe,IAAI,IAAI,CAAC;QACrD,IAAI,CAAC,YAAY,GAAG,IAAI,EAAE,YAAY,IAAI,EAAE,CAAC;QAC7C,IAAI,CAAC,UAAU,EAAE,CAAC;IACpB,CAAC;IAED,IAAI,CACF,SAAiB,EACjB,KAA0C,EAC1C,OAAe,EACf,QAAkC;QAElC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;YACf,SAAS;YACT,KAAK;YACL,OAAO;YACP,QAAQ;YACR,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACpC,CAAC,CAAC;QACH,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YAC5C,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QAC/B,CAAC;IACH,CAAC;IAED,KAAK,CAAC,KAAK;QACT,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM;YAAE,OAAO;QAChC,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACpC,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,0BAA0B,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;YAChF,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;gBACZ,MAAM,IAAI,KAAK,CAAC,QAAQ,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;YACxC,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,kDAAkD;YAClD,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC,CAAC;YAC9B,gDAAgD;YAChD,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;gBAC7B,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAC1B,CAAC;YACD,OAAO,CAAC,KAAK,CAAC,+BAA+B,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QAC3F,CAAC;IACH,CAAC;IAED,KAAK,CAAC,QAAQ;QACZ,IAAI,IAAI,CAAC,KAAK;YAAE,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC1C,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;IACrB,CAAC;IAEO,UAAU;QAChB,IAAI,CAAC,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;QACnF,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;IACrB,CAAC;CACF"}
1
+ {"version":3,"file":"log-collector.js","sourceRoot":"","sources":["../../src/utils/log-collector.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAU/C,MAAM,OAAO,YAAY;IACf,MAAM,GAAe,EAAE,CAAC;IACxB,KAAK,GAA0B,IAAI,CAAC;IAC3B,eAAe,CAAS;IACxB,YAAY,CAAS;IACrB,GAAG,CAAW;IAE/B,YAAY,GAAa,EAAE,IAA0D;QACnF,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,eAAe,GAAG,IAAI,EAAE,eAAe,IAAI,IAAI,CAAC;QACrD,IAAI,CAAC,YAAY,GAAG,IAAI,EAAE,YAAY,IAAI,EAAE,CAAC;QAC7C,IAAI,CAAC,UAAU,EAAE,CAAC;IACpB,CAAC;IAED,IAAI,CACF,SAAiB,EACjB,KAA0C,EAC1C,OAAe,EACf,QAAkC;QAElC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;YACf,SAAS;YACT,KAAK;YACL,OAAO;YACP,QAAQ;YACR,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACpC,CAAC,CAAC;QACH,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YAC5C,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QAC/B,CAAC;IACH,CAAC;IAED,KAAK,CAAC,KAAK;QACT,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM;YAAE,OAAO;QAChC,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACpC,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,0BAA0B,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;YAChF,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;gBACZ,MAAM,IAAI,KAAK,CAAC,QAAQ,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;YACxC,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,kDAAkD;YAClD,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC,CAAC;YAC9B,gDAAgD;YAChD,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;gBAC7B,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAC1B,CAAC;YACD,OAAO,CAAC,KAAK,CAAC,+BAA+B,EAAE,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC;QACtE,CAAC;IACH,CAAC;IAED,KAAK,CAAC,QAAQ;QACZ,IAAI,IAAI,CAAC,KAAK;YAAE,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC1C,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;IACrB,CAAC;IAEO,UAAU;QAChB,IAAI,CAAC,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;QACnF,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;IACrB,CAAC;CACF"}
@@ -11,15 +11,46 @@ export interface InstalledPlugin {
11
11
  id: string;
12
12
  version: string;
13
13
  }
14
+ /**
15
+ * Reads installed plugins from `<stateDir>/openclaw.json` directly.
16
+ *
17
+ * Why prefer the config file over the CLI: the WS `plugin_update` handler
18
+ * (and `agent-update`) writes `plugins.installs.<id>.{spec, version,
19
+ * resolvedVersion}` into the openclaw config; openclaw watches the file
20
+ * and reloads. So the config file is the canonical "what's installed"
21
+ * record — there is no separate package directory we need to enumerate.
22
+ *
23
+ * Reading the file avoids:
24
+ * - 30s-cadence `openclaw plugins list --json` fork+execs from the
25
+ * heartbeat loop, AND
26
+ * - dependency on a specific openclaw CLI version exposing that
27
+ * subcommand at all (older runtimes silently failed → empty list).
28
+ *
29
+ * Returns an empty array on missing file, malformed JSON, or absent
30
+ * `plugins.installs` — heartbeat callers don't want to crash on partial
31
+ * config. Prefers `resolvedVersion` (the post-install actual version)
32
+ * over `version` (the requested spec) when both are present.
33
+ */
34
+ export declare function listInstalledPluginsFromConfig(): Promise<InstalledPlugin[]>;
14
35
  /**
15
36
  * Reads the installed plugin list via `openclaw plugins list --json`.
16
37
  * Throws on exec failure or malformed JSON, including a stdout snippet so
17
38
  * operators can debug from the agent log.
39
+ *
40
+ * 60-second timeout: the CLI has been observed to take 30s+ on cold
41
+ * boot when openclaw warms up its plugin scanner, and a tighter cap
42
+ * caused spurious failures from the heartbeat / installPlugins paths.
18
43
  */
19
44
  export declare function listInstalledPlugins(): Promise<InstalledPlugin[]>;
20
45
  /**
21
46
  * Install a specific openclaw runtime version globally.
22
47
  * Skip-fast when `openclaw --version` already matches.
48
+ *
49
+ * `--force` is required: a previous install often leaves the
50
+ * `/usr/local/bin/openclaw` symlink owned by a different user (or
51
+ * untracked by the new package metadata), which makes a plain
52
+ * `npm install -g openclaw@<v>` fail with `EEXIST: file already exists`.
53
+ * The flag tells npm to overwrite the existing link instead of bailing.
23
54
  */
24
55
  export declare function installOpenclaw(version: string): Promise<boolean>;
25
56
  /**
@@ -38,9 +69,20 @@ export interface InstallPluginsResult {
38
69
  }>;
39
70
  }
40
71
  /**
41
- * Install several plugins sequentially. One CLI lookup of the installed list
42
- * is shared across the whole loop; per-plugin failures are recorded but do
43
- * not abort the rest of the batch (poison-pill protection).
72
+ * Install several plugins sequentially. One inventory probe via
73
+ * `openclaw plugins list --json` is shared across the whole loop;
74
+ * per-plugin failures are recorded but do not abort the rest of the
75
+ * batch (poison-pill protection).
76
+ *
77
+ * Why CLI not config-file: the config file's `plugins.installs` block
78
+ * is incomplete in practice (bundled / compat-discovered plugins are
79
+ * absent, and openclaw itself sometimes rewrites the file without
80
+ * preserving installs), so a config-driven skip-cache under-reports
81
+ * what's actually loaded and forces every install to re-run with
82
+ * `--force`. The CLI is the source of truth.
83
+ *
84
+ * If the CLI throws we still try every install — the per-plugin
85
+ * `installPlugin --force` will overwrite cleanly.
44
86
  */
45
87
  export declare function installPlugins(plugins: Array<{
46
88
  id: string;
@@ -8,8 +8,11 @@
8
8
  *
9
9
  * NEVER import 'process.env.X' here — use config from '../config.js'.
10
10
  */
11
+ import fs from 'node:fs/promises';
12
+ import path from 'node:path';
11
13
  import { execAsync } from './exec.js';
12
14
  import { config } from '../config.js';
15
+ import { toErrorMessage } from './response.js';
13
16
  const OPENCLAW_PACKAGE = 'openclaw';
14
17
  export const AC_PACKAGE = '@openclaw-cloud/agent-controller';
15
18
  // ---------------------------------------------------------------------------
@@ -32,11 +35,11 @@ export async function withEaccesRetry(fn, label) {
32
35
  return await fn();
33
36
  }
34
37
  catch (retryErr) {
35
- console.error(`${label} failed after permission fix:`, retryErr instanceof Error ? retryErr.message : retryErr);
38
+ console.error(`${label} failed after permission fix:`, toErrorMessage(retryErr));
36
39
  throw retryErr;
37
40
  }
38
41
  }
39
- console.error(`${label} failed:`, err instanceof Error ? err.message : err);
42
+ console.error(`${label} failed:`, toErrorMessage(err));
40
43
  throw err;
41
44
  }
42
45
  }
@@ -54,7 +57,7 @@ export async function getOpenclawVersion() {
54
57
  stdout = await execAsync('openclaw --version', 10_000);
55
58
  }
56
59
  catch (err) {
57
- const msg = err instanceof Error ? err.message : String(err);
60
+ const msg = toErrorMessage(err);
58
61
  throw new Error(`openclaw --version failed: ${msg}`);
59
62
  }
60
63
  // Match a SemVer-like token; tolerate prefixes like "openclaw v1.2.3"
@@ -64,18 +67,80 @@ export async function getOpenclawVersion() {
64
67
  }
65
68
  return match[0];
66
69
  }
70
+ /**
71
+ * Reads installed plugins from `<stateDir>/openclaw.json` directly.
72
+ *
73
+ * Why prefer the config file over the CLI: the WS `plugin_update` handler
74
+ * (and `agent-update`) writes `plugins.installs.<id>.{spec, version,
75
+ * resolvedVersion}` into the openclaw config; openclaw watches the file
76
+ * and reloads. So the config file is the canonical "what's installed"
77
+ * record — there is no separate package directory we need to enumerate.
78
+ *
79
+ * Reading the file avoids:
80
+ * - 30s-cadence `openclaw plugins list --json` fork+execs from the
81
+ * heartbeat loop, AND
82
+ * - dependency on a specific openclaw CLI version exposing that
83
+ * subcommand at all (older runtimes silently failed → empty list).
84
+ *
85
+ * Returns an empty array on missing file, malformed JSON, or absent
86
+ * `plugins.installs` — heartbeat callers don't want to crash on partial
87
+ * config. Prefers `resolvedVersion` (the post-install actual version)
88
+ * over `version` (the requested spec) when both are present.
89
+ */
90
+ export async function listInstalledPluginsFromConfig() {
91
+ const configPath = path.join(config.stateDir, 'openclaw.json');
92
+ let raw;
93
+ try {
94
+ raw = await fs.readFile(configPath, 'utf-8');
95
+ }
96
+ catch {
97
+ return [];
98
+ }
99
+ let parsed;
100
+ try {
101
+ parsed = JSON.parse(raw);
102
+ }
103
+ catch {
104
+ return [];
105
+ }
106
+ const plugins = parsed?.plugins;
107
+ if (!plugins || typeof plugins !== 'object')
108
+ return [];
109
+ const installs = plugins.installs;
110
+ if (!installs || typeof installs !== 'object')
111
+ return [];
112
+ const out = [];
113
+ for (const [id, value] of Object.entries(installs)) {
114
+ if (!id || !value || typeof value !== 'object')
115
+ continue;
116
+ const v = value;
117
+ const version = typeof v.resolvedVersion === 'string' && v.resolvedVersion.length > 0
118
+ ? v.resolvedVersion
119
+ : typeof v.version === 'string' && v.version.length > 0
120
+ ? v.version
121
+ : null;
122
+ if (!version)
123
+ continue;
124
+ out.push({ id, version });
125
+ }
126
+ return out;
127
+ }
67
128
  /**
68
129
  * Reads the installed plugin list via `openclaw plugins list --json`.
69
130
  * Throws on exec failure or malformed JSON, including a stdout snippet so
70
131
  * operators can debug from the agent log.
132
+ *
133
+ * 60-second timeout: the CLI has been observed to take 30s+ on cold
134
+ * boot when openclaw warms up its plugin scanner, and a tighter cap
135
+ * caused spurious failures from the heartbeat / installPlugins paths.
71
136
  */
72
137
  export async function listInstalledPlugins() {
73
138
  let stdout;
74
139
  try {
75
- stdout = await execAsync('openclaw plugins list --json', 15_000);
140
+ stdout = await execAsync('openclaw plugins list --json', 60_000);
76
141
  }
77
142
  catch (err) {
78
- const msg = err instanceof Error ? err.message : String(err);
143
+ const msg = toErrorMessage(err);
79
144
  throw new Error(`openclaw plugins list --json failed: ${msg}`);
80
145
  }
81
146
  let parsed;
@@ -83,7 +148,7 @@ export async function listInstalledPlugins() {
83
148
  parsed = JSON.parse(stdout);
84
149
  }
85
150
  catch (err) {
86
- const msg = err instanceof Error ? err.message : String(err);
151
+ const msg = toErrorMessage(err);
87
152
  throw new Error(`openclaw plugins list --json returned invalid JSON (${msg}): ${stdout.slice(0, 200)}`);
88
153
  }
89
154
  // Accept either a top-level array or { plugins: [...] }
@@ -114,6 +179,12 @@ export async function listInstalledPlugins() {
114
179
  /**
115
180
  * Install a specific openclaw runtime version globally.
116
181
  * Skip-fast when `openclaw --version` already matches.
182
+ *
183
+ * `--force` is required: a previous install often leaves the
184
+ * `/usr/local/bin/openclaw` symlink owned by a different user (or
185
+ * untracked by the new package metadata), which makes a plain
186
+ * `npm install -g openclaw@<v>` fail with `EEXIST: file already exists`.
187
+ * The flag tells npm to overwrite the existing link instead of bailing.
117
188
  */
118
189
  export async function installOpenclaw(version) {
119
190
  let current = null;
@@ -126,7 +197,7 @@ export async function installOpenclaw(version) {
126
197
  if (current === version) {
127
198
  return false;
128
199
  }
129
- await withEaccesRetry(() => execAsync(`npm install -g ${OPENCLAW_PACKAGE}@${version}`, 120_000), `npm install -g ${OPENCLAW_PACKAGE}@${version}`);
200
+ await withEaccesRetry(() => execAsync(`npm install -g ${OPENCLAW_PACKAGE}@${version} --force`, 120_000), `npm install -g ${OPENCLAW_PACKAGE}@${version}`);
130
201
  return true;
131
202
  }
132
203
  /**
@@ -144,9 +215,20 @@ export async function installPlugin(id, version, alreadyInstalled) {
144
215
  return true;
145
216
  }
146
217
  /**
147
- * Install several plugins sequentially. One CLI lookup of the installed list
148
- * is shared across the whole loop; per-plugin failures are recorded but do
149
- * not abort the rest of the batch (poison-pill protection).
218
+ * Install several plugins sequentially. One inventory probe via
219
+ * `openclaw plugins list --json` is shared across the whole loop;
220
+ * per-plugin failures are recorded but do not abort the rest of the
221
+ * batch (poison-pill protection).
222
+ *
223
+ * Why CLI not config-file: the config file's `plugins.installs` block
224
+ * is incomplete in practice (bundled / compat-discovered plugins are
225
+ * absent, and openclaw itself sometimes rewrites the file without
226
+ * preserving installs), so a config-driven skip-cache under-reports
227
+ * what's actually loaded and forces every install to re-run with
228
+ * `--force`. The CLI is the source of truth.
229
+ *
230
+ * If the CLI throws we still try every install — the per-plugin
231
+ * `installPlugin --force` will overwrite cleanly.
150
232
  */
151
233
  export async function installPlugins(plugins) {
152
234
  const result = { installed: [], skipped: [], failed: [] };
@@ -157,10 +239,7 @@ export async function installPlugins(plugins) {
157
239
  inventory = await listInstalledPlugins();
158
240
  }
159
241
  catch (err) {
160
- // If we cannot read the inventory we still try to install — the CLI's
161
- // own --force will overwrite. Record the read failure as the first
162
- // diagnostic context but don't abort.
163
- console.warn('listInstalledPlugins failed; proceeding without skip-cache:', err instanceof Error ? err.message : err);
242
+ console.warn('listInstalledPlugins failed; proceeding without skip-cache:', toErrorMessage(err));
164
243
  }
165
244
  for (const p of plugins) {
166
245
  if (!p || typeof p.id !== 'string' || typeof p.version !== 'string' || !p.id || !p.version) {
@@ -175,7 +254,7 @@ export async function installPlugins(plugins) {
175
254
  result.skipped.push(p.id);
176
255
  }
177
256
  catch (err) {
178
- const msg = err instanceof Error ? err.message : String(err);
257
+ const msg = toErrorMessage(err);
179
258
  result.failed.push({ id: p.id, error: msg });
180
259
  }
181
260
  }
@@ -1 +1 @@
1
- {"version":3,"file":"openclaw-ops.js","sourceRoot":"","sources":["../../src/utils/openclaw-ops.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"openclaw-ops.js","sourceRoot":"","sources":["../../src/utils/openclaw-ops.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ import { type InstallPluginsResult } from './openclaw-ops.js';
2
+ export interface OpenclawStackUpdateOptions {
3
+ /** openclaw runtime version to install. Omit to only touch plugins. */
4
+ version?: string;
5
+ plugins?: Array<{
6
+ id: string;
7
+ version: string;
8
+ }>;
9
+ /**
10
+ * Prefix for the emitted logCollector events (`self_update`, `agent_update`,
11
+ * `agent_update_cli`). Kept per-caller so backend log queries can still tell
12
+ * a self-update apart from an agent-update.
13
+ */
14
+ eventPrefix: string;
15
+ /** Extra fields merged into every emitted event (e.g. `{ commandId }`). */
16
+ meta?: Record<string, unknown>;
17
+ }
18
+ export interface OpenclawStackUpdateResult {
19
+ runtimeChanged: boolean;
20
+ pluginSummary?: InstallPluginsResult;
21
+ /** True only when a restart was attempted AND succeeded. */
22
+ gatewayRestarted: boolean;
23
+ /** Set when a restart was attempted and failed (best-effort — not fatal). */
24
+ restartError?: string;
25
+ }
26
+ /**
27
+ * Throws whatever `installOpenclaw` / `installPlugins` throw — per-plugin
28
+ * failures are reported inside `pluginSummary`, not raised. A failed gateway
29
+ * restart is never thrown: the install already landed, so it is a warning.
30
+ */
31
+ export declare function runOpenclawStackUpdate(opts: OpenclawStackUpdateOptions): Promise<OpenclawStackUpdateResult>;
@@ -0,0 +1,50 @@
1
+ import { installOpenclaw, installPlugins } from './openclaw-ops.js';
2
+ import { restartGateway } from './gateway-restart.js';
3
+ import { logCollector } from '../connection.js';
4
+ import { toErrorMessage } from './response.js';
5
+ /**
6
+ * Throws whatever `installOpenclaw` / `installPlugins` throw — per-plugin
7
+ * failures are reported inside `pluginSummary`, not raised. A failed gateway
8
+ * restart is never thrown: the install already landed, so it is a warning.
9
+ */
10
+ export async function runOpenclawStackUpdate(opts) {
11
+ const { version, plugins, eventPrefix, meta = {} } = opts;
12
+ const push = (event, level, msg, data = {}) => {
13
+ logCollector?.push(`${eventPrefix}_${event}`, level, msg, { ...meta, ...data });
14
+ };
15
+ let runtimeChanged = false;
16
+ if (version) {
17
+ runtimeChanged = await installOpenclaw(version);
18
+ push(runtimeChanged ? 'runtime_installed' : 'runtime_skipped', 'info', runtimeChanged
19
+ ? `openclaw runtime installed at ${version}`
20
+ : `openclaw runtime already at ${version}`, { version });
21
+ }
22
+ let pluginSummary;
23
+ if (plugins?.length) {
24
+ push('plugin_install_start', 'info', `Installing ${plugins.length} plugin(s)`, {
25
+ pluginCount: plugins.length,
26
+ });
27
+ pluginSummary = await installPlugins(plugins);
28
+ push('plugin_install_done', pluginSummary.failed.length > 0 ? 'warn' : 'info', `Plugin install complete: ${pluginSummary.installed.length} installed, ` +
29
+ `${pluginSummary.skipped.length} skipped, ${pluginSummary.failed.length} failed`, {
30
+ installed: pluginSummary.installed,
31
+ skipped: pluginSummary.skipped,
32
+ failed: pluginSummary.failed,
33
+ });
34
+ }
35
+ // One restart per invocation, no matter how many things changed.
36
+ const anyChanged = runtimeChanged || (pluginSummary?.installed.length ?? 0) > 0;
37
+ if (!anyChanged)
38
+ return { runtimeChanged, pluginSummary, gatewayRestarted: false };
39
+ try {
40
+ await restartGateway();
41
+ push('gateway_restarted', 'info', 'Gateway restarted after openclaw stack update');
42
+ return { runtimeChanged, pluginSummary, gatewayRestarted: true };
43
+ }
44
+ catch (err) {
45
+ const error = toErrorMessage(err);
46
+ push('gateway_restart_failed', 'warn', `Gateway restart after openclaw stack update failed: ${error}`, { error });
47
+ return { runtimeChanged, pluginSummary, gatewayRestarted: false, restartError: error };
48
+ }
49
+ }
50
+ //# sourceMappingURL=openclaw-stack-update.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openclaw-stack-update.js","sourceRoot":"","sources":["../../src/utils/openclaw-stack-update.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { exec } from 'node:child_process';
1
+ import { execAsync } from './exec.js';
2
2
  import { toErrorMessage } from './response.js';
3
3
  // ---------------------------------------------------------------------------
4
4
  // Shared package-install module — used by:
@@ -30,16 +30,6 @@ export function buildInstallCommand(manager, pkg) {
30
30
  return `pip install ${pkg}`;
31
31
  }
32
32
  }
33
- function execPackage(cmd, timeoutMs) {
34
- return new Promise((resolve, reject) => {
35
- exec(cmd, { timeout: timeoutMs }, (error) => {
36
- if (error)
37
- reject(error);
38
- else
39
- resolve();
40
- });
41
- });
42
- }
43
33
  /**
44
34
  * Install a single package via the named manager. Validates the package
45
35
  * name against the allowlist regex first; never reaches the shell with an
@@ -50,7 +40,9 @@ export async function installOnePackage(manager, pkg, timeoutMs = INSTALL_TIMEOU
50
40
  return { ok: false, error: 'Invalid package name: contains disallowed characters' };
51
41
  }
52
42
  try {
53
- await execPackage(buildInstallCommand(manager, pkg), timeoutMs);
43
+ // execAsync, not a local wrapper: its 16MB maxBuffer is what keeps a
44
+ // chatty `npm install -g` from failing with ERR_CHILD_PROCESS_STDOUT_MAXBUFFER.
45
+ await execAsync(buildInstallCommand(manager, pkg), timeoutMs);
54
46
  return { ok: true };
55
47
  }
56
48
  catch (err) {
@@ -1 +1 @@
1
- {"version":3,"file":"package-install.js","sourceRoot":"","sources":["../../src/utils/package-install.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAE/C,8EAA8E;AAC9E,2CAA2C;AAC3C,oDAAoD;AACpD,gDAAgD;AAChD,EAAE;AACF,0EAA0E;AAC1E,wEAAwE;AACxE,sEAAsE;AACtE,iEAAiE;AACjE,8EAA8E;AAE9E,MAAM,CAAC,MAAM,kBAAkB,GAAG,OAAO,CAAC,CAAC,kBAAkB;AAE7D;;;;GAIG;AACH,MAAM,oBAAoB,GAAG,iCAAiC,CAAC;AAI/D,MAAM,UAAU,iBAAiB,CAAC,IAAY;IAC5C,OAAO,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACzC,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,OAAuB,EAAE,GAAW;IACtE,QAAQ,OAAO,EAAE,CAAC;QAChB,KAAK,KAAK;YACR,OAAO,sBAAsB,GAAG,EAAE,CAAC;QACrC,KAAK,KAAK;YACR,OAAO,kBAAkB,GAAG,EAAE,CAAC;QACjC,KAAK,KAAK;YACR,OAAO,eAAe,GAAG,EAAE,CAAC;IAChC,CAAC;AACH,CAAC;AAED,SAAS,WAAW,CAAC,GAAW,EAAE,SAAiB;IACjD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,IAAI,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,CAAC,KAAK,EAAE,EAAE;YAC1C,IAAI,KAAK;gBAAE,MAAM,CAAC,KAAK,CAAC,CAAC;;gBACpB,OAAO,EAAE,CAAC;QACjB,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAOD;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,OAAuB,EACvB,GAAW,EACX,YAAoB,kBAAkB;IAEtC,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC;QAC5B,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,sDAAsD,EAAE,CAAC;IACtF,CAAC;IACD,IAAI,CAAC;QACH,MAAM,WAAW,CAAC,mBAAmB,CAAC,OAAO,EAAE,GAAG,CAAC,EAAE,SAAS,CAAC,CAAC;QAChE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;IACtB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC;IACnD,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"package-install.js","sourceRoot":"","sources":["../../src/utils/package-install.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAE/C,8EAA8E;AAC9E,2CAA2C;AAC3C,oDAAoD;AACpD,gDAAgD;AAChD,EAAE;AACF,0EAA0E;AAC1E,wEAAwE;AACxE,sEAAsE;AACtE,iEAAiE;AACjE,8EAA8E;AAE9E,MAAM,CAAC,MAAM,kBAAkB,GAAG,OAAO,CAAC,CAAC,kBAAkB;AAE7D;;;;GAIG;AACH,MAAM,oBAAoB,GAAG,iCAAiC,CAAC;AAI/D,MAAM,UAAU,iBAAiB,CAAC,IAAY;IAC5C,OAAO,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACzC,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,OAAuB,EAAE,GAAW;IACtE,QAAQ,OAAO,EAAE,CAAC;QAChB,KAAK,KAAK;YACR,OAAO,sBAAsB,GAAG,EAAE,CAAC;QACrC,KAAK,KAAK;YACR,OAAO,kBAAkB,GAAG,EAAE,CAAC;QACjC,KAAK,KAAK;YACR,OAAO,eAAe,GAAG,EAAE,CAAC;IAChC,CAAC;AACH,CAAC;AAOD;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,OAAuB,EACvB,GAAW,EACX,YAAoB,kBAAkB;IAEtC,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC;QAC5B,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,sDAAsD,EAAE,CAAC;IACtF,CAAC;IACD,IAAI,CAAC;QACH,qEAAqE;QACrE,gFAAgF;QAChF,MAAM,SAAS,CAAC,mBAAmB,CAAC,OAAO,EAAE,GAAG,CAAC,EAAE,SAAS,CAAC,CAAC;QAC9D,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;IACtB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC;IACnD,CAAC;AACH,CAAC"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Version from the package's own package.json.
3
+ *
4
+ * Read via `createRequire` rather than a JSON import so the compiled output
5
+ * stays plain ESM. The relative depth (`../..`) is correct from both
6
+ * `dist/utils/` and `src/utils/` — three call sites used to hand-roll this with
7
+ * three different depths, which is exactly the kind of thing that breaks
8
+ * silently when a file moves.
9
+ */
10
+ export declare function getPackageVersion(): string;
@@ -0,0 +1,18 @@
1
+ import { createRequire } from 'node:module';
2
+ import { fileURLToPath } from 'node:url';
3
+ import { dirname, join } from 'node:path';
4
+ const _require = createRequire(import.meta.url);
5
+ /**
6
+ * Version from the package's own package.json.
7
+ *
8
+ * Read via `createRequire` rather than a JSON import so the compiled output
9
+ * stays plain ESM. The relative depth (`../..`) is correct from both
10
+ * `dist/utils/` and `src/utils/` — three call sites used to hand-roll this with
11
+ * three different depths, which is exactly the kind of thing that breaks
12
+ * silently when a file moves.
13
+ */
14
+ export function getPackageVersion() {
15
+ const pkgPath = join(dirname(fileURLToPath(import.meta.url)), '../../package.json');
16
+ return _require(pkgPath).version;
17
+ }
18
+ //# sourceMappingURL=package-version.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"package-version.js","sourceRoot":"","sources":["../../src/utils/package-version.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAE1C,MAAM,QAAQ,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAEhD;;;;;;;;GAQG;AACH,MAAM,UAAU,iBAAiB;IAC/B,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,oBAAoB,CAAC,CAAC;IACpF,OAAQ,QAAQ,CAAC,OAAO,CAAyB,CAAC,OAAO,CAAC;AAC5D,CAAC"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Split a CLI token like `@scope/pkg@1.2.3` into `{ id, version }`, or null if
3
+ * it isn't one. Splits at the LAST `@` so scoped npm names survive, and rejects
4
+ * a leading `@` so a bare `@scope/name` (no version) doesn't parse as
5
+ * `{ id: '', version: 'scope/name' }`.
6
+ *
7
+ * Shared by the `plugin-update` and `agent-update` CLIs, which each had their
8
+ * own byte-identical copy. Kept out of openclaw-ops.ts on purpose: this is a
9
+ * pure parser, and openclaw-ops is the module every test mocks wholesale
10
+ * because it shells out.
11
+ */
12
+ export declare function parseIdAtVersion(token: string): {
13
+ id: string;
14
+ version: string;
15
+ } | null;
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Split a CLI token like `@scope/pkg@1.2.3` into `{ id, version }`, or null if
3
+ * it isn't one. Splits at the LAST `@` so scoped npm names survive, and rejects
4
+ * a leading `@` so a bare `@scope/name` (no version) doesn't parse as
5
+ * `{ id: '', version: 'scope/name' }`.
6
+ *
7
+ * Shared by the `plugin-update` and `agent-update` CLIs, which each had their
8
+ * own byte-identical copy. Kept out of openclaw-ops.ts on purpose: this is a
9
+ * pure parser, and openclaw-ops is the module every test mocks wholesale
10
+ * because it shells out.
11
+ */
12
+ export function parseIdAtVersion(token) {
13
+ const at = token.lastIndexOf('@');
14
+ if (at <= 0)
15
+ return null;
16
+ const id = token.slice(0, at).trim();
17
+ const version = token.slice(at + 1).trim();
18
+ if (!id || !version)
19
+ return null;
20
+ return { id, version };
21
+ }
22
+ //# sourceMappingURL=parse-id-at-version.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse-id-at-version.js","sourceRoot":"","sources":["../../src/utils/parse-id-at-version.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAa;IAC5C,MAAM,EAAE,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IAClC,IAAI,EAAE,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IACzB,MAAM,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IACrC,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAC3C,IAAI,CAAC,EAAE,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC;IACjC,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC;AACzB,CAAC"}