@senpi/runtime 3.0.117 → 3.0.122

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 (321) hide show
  1. package/README.md +16 -0
  2. package/dist/actions/action-events.d.ts +7 -21
  3. package/dist/actions/action-events.d.ts.map +1 -1
  4. package/dist/actions/action-events.js +26 -54
  5. package/dist/actions/action-events.js.map +1 -1
  6. package/dist/actions/action-runtime-module.d.ts.map +1 -1
  7. package/dist/actions/action-runtime-module.js +7 -38
  8. package/dist/actions/action-runtime-module.js.map +1 -1
  9. package/dist/actions/close-position/close-position.action.d.ts.map +1 -1
  10. package/dist/actions/close-position/close-position.action.js +15 -122
  11. package/dist/actions/close-position/close-position.action.js.map +1 -1
  12. package/dist/actions/decision-engine.d.ts.map +1 -1
  13. package/dist/actions/decision-engine.js +2 -15
  14. package/dist/actions/decision-engine.js.map +1 -1
  15. package/dist/actions/event-derivation.d.ts +2 -71
  16. package/dist/actions/event-derivation.d.ts.map +1 -1
  17. package/dist/actions/event-derivation.js +8 -251
  18. package/dist/actions/event-derivation.js.map +1 -1
  19. package/dist/actions/open-position/open-position.action.d.ts +2 -17
  20. package/dist/actions/open-position/open-position.action.d.ts.map +1 -1
  21. package/dist/actions/open-position/open-position.action.js +56 -162
  22. package/dist/actions/open-position/open-position.action.js.map +1 -1
  23. package/dist/actions/position-tracker/position-tracker.action.d.ts +1 -2
  24. package/dist/actions/position-tracker/position-tracker.action.d.ts.map +1 -1
  25. package/dist/actions/position-tracker/position-tracker.action.js +17 -62
  26. package/dist/actions/position-tracker/position-tracker.action.js.map +1 -1
  27. package/dist/actions/store/types.d.ts +2 -9
  28. package/dist/actions/store/types.d.ts.map +1 -1
  29. package/dist/actions/store/types.js.map +1 -1
  30. package/dist/actions/types.d.ts +0 -13
  31. package/dist/actions/types.d.ts.map +1 -1
  32. package/dist/actions/types.js +0 -13
  33. package/dist/actions/types.js.map +1 -1
  34. package/dist/cli/guide-commands.d.ts.map +1 -1
  35. package/dist/cli/guide-commands.js +16 -11
  36. package/dist/cli/guide-commands.js.map +1 -1
  37. package/dist/cli/senpi-commands.d.ts.map +1 -1
  38. package/dist/cli/senpi-commands.js +18 -7
  39. package/dist/cli/senpi-commands.js.map +1 -1
  40. package/dist/constants/dsl/index.d.ts +17 -6
  41. package/dist/constants/dsl/index.d.ts.map +1 -1
  42. package/dist/constants/dsl/index.js +17 -6
  43. package/dist/constants/dsl/index.js.map +1 -1
  44. package/dist/dsl/engine/floors.d.ts +25 -1
  45. package/dist/dsl/engine/floors.d.ts.map +1 -1
  46. package/dist/dsl/engine/floors.js +38 -6
  47. package/dist/dsl/engine/floors.js.map +1 -1
  48. package/dist/dsl/engine/index.d.ts +1 -1
  49. package/dist/dsl/engine/index.d.ts.map +1 -1
  50. package/dist/dsl/engine/index.js +1 -1
  51. package/dist/dsl/engine/index.js.map +1 -1
  52. package/dist/dsl/engine/round.d.ts +22 -2
  53. package/dist/dsl/engine/round.d.ts.map +1 -1
  54. package/dist/dsl/engine/round.js +78 -5
  55. package/dist/dsl/engine/round.js.map +1 -1
  56. package/dist/dsl/engine/tick.d.ts.map +1 -1
  57. package/dist/dsl/engine/tick.js +31 -16
  58. package/dist/dsl/engine/tick.js.map +1 -1
  59. package/dist/dsl/engine-client/event-mapping.d.ts.map +1 -1
  60. package/dist/dsl/engine-client/event-mapping.js +0 -14
  61. package/dist/dsl/engine-client/event-mapping.js.map +1 -1
  62. package/dist/dsl/events/build-closed-event.d.ts +1 -16
  63. package/dist/dsl/events/build-closed-event.d.ts.map +1 -1
  64. package/dist/dsl/events/build-closed-event.js +0 -6
  65. package/dist/dsl/events/build-closed-event.js.map +1 -1
  66. package/dist/dsl/events/handlers.d.ts +0 -7
  67. package/dist/dsl/events/handlers.d.ts.map +1 -1
  68. package/dist/dsl/events/handlers.js +7 -37
  69. package/dist/dsl/events/handlers.js.map +1 -1
  70. package/dist/dsl/events/initial-state.d.ts +1 -1
  71. package/dist/dsl/events/initial-state.d.ts.map +1 -1
  72. package/dist/dsl/events/initial-state.js +4 -7
  73. package/dist/dsl/events/initial-state.js.map +1 -1
  74. package/dist/dsl/monitor/create-monitor.d.ts +2 -6
  75. package/dist/dsl/monitor/create-monitor.d.ts.map +1 -1
  76. package/dist/dsl/monitor/create-monitor.js +9 -15
  77. package/dist/dsl/monitor/create-monitor.js.map +1 -1
  78. package/dist/dsl/monitor/dsl-failure-events.d.ts +0 -2
  79. package/dist/dsl/monitor/dsl-failure-events.d.ts.map +1 -1
  80. package/dist/dsl/monitor/dsl-failure-events.js +1 -2
  81. package/dist/dsl/monitor/dsl-failure-events.js.map +1 -1
  82. package/dist/dsl/monitor/exchange-sync.d.ts +8 -3
  83. package/dist/dsl/monitor/exchange-sync.d.ts.map +1 -1
  84. package/dist/dsl/monitor/exchange-sync.js +16 -4
  85. package/dist/dsl/monitor/exchange-sync.js.map +1 -1
  86. package/dist/dsl/monitor/process-one-position.d.ts +0 -1
  87. package/dist/dsl/monitor/process-one-position.d.ts.map +1 -1
  88. package/dist/dsl/monitor/process-one-position.js +113 -62
  89. package/dist/dsl/monitor/process-one-position.js.map +1 -1
  90. package/dist/dsl/plugin/index.d.ts +10 -12
  91. package/dist/dsl/plugin/index.d.ts.map +1 -1
  92. package/dist/dsl/plugin/index.js +14 -12
  93. package/dist/dsl/plugin/index.js.map +1 -1
  94. package/dist/health/types.d.ts +0 -13
  95. package/dist/health/types.d.ts.map +1 -1
  96. package/dist/health/types.js +0 -12
  97. package/dist/health/types.js.map +1 -1
  98. package/dist/index.d.ts +4 -27
  99. package/dist/index.d.ts.map +1 -1
  100. package/dist/index.js +206 -257
  101. package/dist/index.js.map +1 -1
  102. package/dist/runtime/action-registry.d.ts.map +1 -1
  103. package/dist/runtime/action-registry.js +3 -4
  104. package/dist/runtime/action-registry.js.map +1 -1
  105. package/dist/runtime/auto-update/coordinator.d.ts +16 -0
  106. package/dist/runtime/auto-update/coordinator.d.ts.map +1 -1
  107. package/dist/runtime/auto-update/coordinator.js +129 -13
  108. package/dist/runtime/auto-update/coordinator.js.map +1 -1
  109. package/dist/runtime/auto-update/run-update-command.d.ts.map +1 -1
  110. package/dist/runtime/auto-update/run-update-command.js +18 -14
  111. package/dist/runtime/auto-update/run-update-command.js.map +1 -1
  112. package/dist/runtime/auto-update/types.d.ts +17 -1
  113. package/dist/runtime/auto-update/types.d.ts.map +1 -1
  114. package/dist/runtime/auto-update/types.js +11 -0
  115. package/dist/runtime/auto-update/types.js.map +1 -1
  116. package/dist/runtime/boot-skip.d.ts +73 -0
  117. package/dist/runtime/boot-skip.d.ts.map +1 -0
  118. package/dist/runtime/boot-skip.js +113 -0
  119. package/dist/runtime/boot-skip.js.map +1 -0
  120. package/dist/runtime/create-runtime-context.d.ts +2 -0
  121. package/dist/runtime/create-runtime-context.d.ts.map +1 -1
  122. package/dist/runtime/create-runtime-context.js +1 -0
  123. package/dist/runtime/create-runtime-context.js.map +1 -1
  124. package/dist/runtime/domain-events.d.ts.map +1 -1
  125. package/dist/runtime/domain-events.js +0 -7
  126. package/dist/runtime/domain-events.js.map +1 -1
  127. package/dist/runtime/lifecycle-events.d.ts +43 -10
  128. package/dist/runtime/lifecycle-events.d.ts.map +1 -1
  129. package/dist/runtime/lifecycle-events.js +83 -12
  130. package/dist/runtime/lifecycle-events.js.map +1 -1
  131. package/dist/runtime/lifecycle-reaper.d.ts +202 -0
  132. package/dist/runtime/lifecycle-reaper.d.ts.map +1 -0
  133. package/dist/runtime/lifecycle-reaper.js +390 -0
  134. package/dist/runtime/lifecycle-reaper.js.map +1 -0
  135. package/dist/runtime/reconcile-run.d.ts +3 -13
  136. package/dist/runtime/reconcile-run.d.ts.map +1 -1
  137. package/dist/runtime/reconcile-run.js +3 -4
  138. package/dist/runtime/reconcile-run.js.map +1 -1
  139. package/dist/runtime/reconcile-state.d.ts +0 -8
  140. package/dist/runtime/reconcile-state.d.ts.map +1 -1
  141. package/dist/runtime/reconcile-state.js +1 -4
  142. package/dist/runtime/reconcile-state.js.map +1 -1
  143. package/dist/runtime/run.d.ts +5 -1
  144. package/dist/runtime/run.d.ts.map +1 -1
  145. package/dist/runtime/run.js +1 -0
  146. package/dist/runtime/run.js.map +1 -1
  147. package/dist/runtime/runtime-schema.js +3 -3
  148. package/dist/runtime/runtime-schema.js.map +1 -1
  149. package/dist/runtime/runtime.d.ts +2 -1
  150. package/dist/runtime/runtime.d.ts.map +1 -1
  151. package/dist/runtime/runtime.js +4 -27
  152. package/dist/runtime/runtime.js.map +1 -1
  153. package/dist/runtime/supervisor/long-running-supervisor.d.ts +0 -13
  154. package/dist/runtime/supervisor/long-running-supervisor.d.ts.map +1 -1
  155. package/dist/runtime/supervisor/long-running-supervisor.js +0 -1
  156. package/dist/runtime/supervisor/long-running-supervisor.js.map +1 -1
  157. package/dist/runtime/update-apply-deps.d.ts +23 -2
  158. package/dist/runtime/update-apply-deps.d.ts.map +1 -1
  159. package/dist/runtime/update-apply-deps.js +11 -5
  160. package/dist/runtime/update-apply-deps.js.map +1 -1
  161. package/dist/runtime/validate-dsl-position-tracking.d.ts.map +1 -1
  162. package/dist/runtime/validate-dsl-position-tracking.js +1 -2
  163. package/dist/runtime/validate-dsl-position-tracking.js.map +1 -1
  164. package/dist/runtime-api/handlers/ingest-signals.d.ts.map +1 -1
  165. package/dist/runtime-api/handlers/ingest-signals.js +0 -1
  166. package/dist/runtime-api/handlers/ingest-signals.js.map +1 -1
  167. package/dist/runtime-api/handlers/types.d.ts +0 -5
  168. package/dist/runtime-api/handlers/types.d.ts.map +1 -1
  169. package/dist/runtime-api/intake/intake-events.d.ts +1 -1
  170. package/dist/runtime-api/intake/intake-events.d.ts.map +1 -1
  171. package/dist/runtime-api/intake/intake-events.js +3 -9
  172. package/dist/runtime-api/intake/intake-events.js.map +1 -1
  173. package/dist/runtime-api/intake/intake-mount.d.ts.map +1 -1
  174. package/dist/runtime-api/intake/intake-mount.js +19 -4
  175. package/dist/runtime-api/intake/intake-mount.js.map +1 -1
  176. package/dist/runtime-api/intake/process-error-post.d.ts +1 -6
  177. package/dist/runtime-api/intake/process-error-post.d.ts.map +1 -1
  178. package/dist/runtime-api/intake/process-error-post.js +1 -5
  179. package/dist/runtime-api/intake/process-error-post.js.map +1 -1
  180. package/dist/runtime-api/intake/process-signal-post.d.ts +1 -7
  181. package/dist/runtime-api/intake/process-signal-post.d.ts.map +1 -1
  182. package/dist/runtime-api/intake/process-signal-post.js +0 -5
  183. package/dist/runtime-api/intake/process-signal-post.js.map +1 -1
  184. package/dist/runtime-api/intake/scaffold-error-router.js.map +1 -1
  185. package/dist/runtime-api/intake/scanner-launcher.d.ts.map +1 -1
  186. package/dist/runtime-api/intake/scanner-launcher.js +0 -15
  187. package/dist/runtime-api/intake/scanner-launcher.js.map +1 -1
  188. package/dist/runtime-api/intake/types.d.ts +0 -55
  189. package/dist/runtime-api/intake/types.d.ts.map +1 -1
  190. package/dist/runtime-api/routes/signals.d.ts +0 -2
  191. package/dist/runtime-api/routes/signals.d.ts.map +1 -1
  192. package/dist/runtime-api/routes/signals.js +1 -5
  193. package/dist/runtime-api/routes/signals.js.map +1 -1
  194. package/dist/runtime-api/routes/signals.schema.d.ts +0 -43
  195. package/dist/runtime-api/routes/signals.schema.d.ts.map +1 -1
  196. package/dist/runtime-api/routes/signals.schema.js +0 -43
  197. package/dist/runtime-api/routes/signals.schema.js.map +1 -1
  198. package/dist/runtime-api/server.d.ts +1 -7
  199. package/dist/runtime-api/server.d.ts.map +1 -1
  200. package/dist/runtime-api/server.js +0 -1
  201. package/dist/runtime-api/server.js.map +1 -1
  202. package/dist/scanners/engine/engine.d.ts +1 -22
  203. package/dist/scanners/engine/engine.d.ts.map +1 -1
  204. package/dist/scanners/engine/engine.js +11 -78
  205. package/dist/scanners/engine/engine.js.map +1 -1
  206. package/dist/scanners/engine/lifecycle.d.ts +1 -7
  207. package/dist/scanners/engine/lifecycle.d.ts.map +1 -1
  208. package/dist/scanners/events.d.ts +0 -4
  209. package/dist/scanners/events.d.ts.map +1 -1
  210. package/dist/scanners/events.js +0 -2
  211. package/dist/scanners/events.js.map +1 -1
  212. package/dist/scanners/external/scaffold/delivery.py +25 -194
  213. package/dist/scanners/external/scaffold/scaffold.py +31 -172
  214. package/dist/scanners/external/scaffold/senpi_mcp.py +8 -150
  215. package/dist/scanners/external-scanner-receiver.d.ts +0 -17
  216. package/dist/scanners/external-scanner-receiver.d.ts.map +1 -1
  217. package/dist/scanners/external-scanner-receiver.js +0 -8
  218. package/dist/scanners/external-scanner-receiver.js.map +1 -1
  219. package/dist/scanners/runtime-module.d.ts +0 -1
  220. package/dist/scanners/runtime-module.d.ts.map +1 -1
  221. package/dist/scanners/runtime-module.js +9 -66
  222. package/dist/scanners/runtime-module.js.map +1 -1
  223. package/dist/skills-manager/manifest.d.ts.map +1 -1
  224. package/dist/skills-manager/manifest.js +1 -0
  225. package/dist/skills-manager/manifest.js.map +1 -1
  226. package/dist/skills-manager/skills-manifest.json +1 -0
  227. package/dist/telemetry/attributes.d.ts +0 -20
  228. package/dist/telemetry/attributes.d.ts.map +1 -1
  229. package/dist/telemetry/attributes.js +0 -24
  230. package/dist/telemetry/attributes.js.map +1 -1
  231. package/dist/telemetry/event-builders.d.ts +6 -81
  232. package/dist/telemetry/event-builders.d.ts.map +1 -1
  233. package/dist/telemetry/event-builders.js +17 -141
  234. package/dist/telemetry/event-builders.js.map +1 -1
  235. package/dist/telemetry/event-store.d.ts +0 -6
  236. package/dist/telemetry/event-store.d.ts.map +1 -1
  237. package/dist/telemetry/event-store.js +8 -12
  238. package/dist/telemetry/event-store.js.map +1 -1
  239. package/dist/telemetry/metrics.d.ts +2 -14
  240. package/dist/telemetry/metrics.d.ts.map +1 -1
  241. package/dist/telemetry/metrics.js +4 -19
  242. package/dist/telemetry/metrics.js.map +1 -1
  243. package/dist/telemetry/spans/redact-pii.d.ts.map +1 -1
  244. package/dist/telemetry/spans/redact-pii.js +2 -18
  245. package/dist/telemetry/spans/redact-pii.js.map +1 -1
  246. package/dist/telemetry/tracing.d.ts +0 -9
  247. package/dist/telemetry/tracing.d.ts.map +1 -1
  248. package/dist/telemetry/tracing.js +0 -36
  249. package/dist/telemetry/tracing.js.map +1 -1
  250. package/dist/types/dsl/index.d.ts +1 -12
  251. package/dist/types/dsl/index.d.ts.map +1 -1
  252. package/dist/types/runtime.d.ts +8 -0
  253. package/dist/types/runtime.d.ts.map +1 -1
  254. package/dist/types/scanner.d.ts +0 -15
  255. package/dist/types/scanner.d.ts.map +1 -1
  256. package/dist/utils/event-catalog.d.ts +91 -166
  257. package/dist/utils/event-catalog.d.ts.map +1 -1
  258. package/dist/utils/event-catalog.js +13 -18
  259. package/dist/utils/event-catalog.js.map +1 -1
  260. package/dist/utils/keyed-mutex.d.ts +3 -2
  261. package/dist/utils/keyed-mutex.d.ts.map +1 -1
  262. package/dist/utils/keyed-mutex.js +3 -2
  263. package/dist/utils/keyed-mutex.js.map +1 -1
  264. package/dist/utils/logger.d.ts +1 -4
  265. package/dist/utils/logger.d.ts.map +1 -1
  266. package/dist/utils/logger.js.map +1 -1
  267. package/dist/validate/recipe-checks.d.ts.map +1 -1
  268. package/dist/validate/recipe-checks.js +2 -2
  269. package/dist/validate/recipe-checks.js.map +1 -1
  270. package/openclaw.plugin.json +5 -1
  271. package/package.json +1 -1
  272. package/dist/actions/skipped-signal-results.d.ts +0 -25
  273. package/dist/actions/skipped-signal-results.d.ts.map +0 -1
  274. package/dist/actions/skipped-signal-results.js +0 -71
  275. package/dist/actions/skipped-signal-results.js.map +0 -1
  276. package/dist/runtime-api/intake/ingest-request.d.ts +0 -17
  277. package/dist/runtime-api/intake/ingest-request.d.ts.map +0 -1
  278. package/dist/runtime-api/intake/ingest-request.js +0 -34
  279. package/dist/runtime-api/intake/ingest-request.js.map +0 -1
  280. package/dist/runtime-api/intake/scaffold-tick-router.d.ts +0 -39
  281. package/dist/runtime-api/intake/scaffold-tick-router.d.ts.map +0 -1
  282. package/dist/runtime-api/intake/scaffold-tick-router.js +0 -122
  283. package/dist/runtime-api/intake/scaffold-tick-router.js.map +0 -1
  284. package/dist/scanners/external/scaffold/tick_facts.py +0 -130
  285. package/dist/scanners/external/scaffold/ulid.py +0 -58
  286. package/dist/telemetry/live-telemetry.d.ts +0 -238
  287. package/dist/telemetry/live-telemetry.d.ts.map +0 -1
  288. package/dist/telemetry/live-telemetry.js +0 -853
  289. package/dist/telemetry/live-telemetry.js.map +0 -1
  290. package/dist/telemetry/scanner-stats.d.ts +0 -143
  291. package/dist/telemetry/scanner-stats.d.ts.map +0 -1
  292. package/dist/telemetry/scanner-stats.js +0 -426
  293. package/dist/telemetry/scanner-stats.js.map +0 -1
  294. package/dist/telemetry/scanner-tick-feed.d.ts +0 -87
  295. package/dist/telemetry/scanner-tick-feed.d.ts.map +0 -1
  296. package/dist/telemetry/scanner-tick-feed.js +0 -48
  297. package/dist/telemetry/scanner-tick-feed.js.map +0 -1
  298. package/dist/telemetry/strategy-topology.d.ts +0 -99
  299. package/dist/telemetry/strategy-topology.d.ts.map +0 -1
  300. package/dist/telemetry/strategy-topology.js +0 -93
  301. package/dist/telemetry/strategy-topology.js.map +0 -1
  302. package/dist/telemetry/telemetry-publisher.d.ts +0 -63
  303. package/dist/telemetry/telemetry-publisher.d.ts.map +0 -1
  304. package/dist/telemetry/telemetry-publisher.js +0 -229
  305. package/dist/telemetry/telemetry-publisher.js.map +0 -1
  306. package/dist/telemetry/tick-frame.d.ts +0 -212
  307. package/dist/telemetry/tick-frame.d.ts.map +0 -1
  308. package/dist/telemetry/tick-frame.js +0 -421
  309. package/dist/telemetry/tick-frame.js.map +0 -1
  310. package/dist/telemetry/timeline-buffer.d.ts +0 -95
  311. package/dist/telemetry/timeline-buffer.d.ts.map +0 -1
  312. package/dist/telemetry/timeline-buffer.js +0 -237
  313. package/dist/telemetry/timeline-buffer.js.map +0 -1
  314. package/dist/utils/telemetry-required-log.d.ts +0 -60
  315. package/dist/utils/telemetry-required-log.d.ts.map +0 -1
  316. package/dist/utils/telemetry-required-log.js +0 -105
  317. package/dist/utils/telemetry-required-log.js.map +0 -1
  318. package/dist/utils/ulid.d.ts +0 -9
  319. package/dist/utils/ulid.d.ts.map +0 -1
  320. package/dist/utils/ulid.js +0 -43
  321. package/dist/utils/ulid.js.map +0 -1
@@ -16,10 +16,53 @@ import { EVENT_NAME, eventAttrs } from "../../utils/event-catalog.js";
16
16
  */
17
17
  const CHECK_NOW_REASON = {
18
18
  ran: "Check completed.",
19
+ failed: "The check ran and failed.",
19
20
  alreadyRunning: "A check is already in flight; no second check was started.",
20
21
  disabledInConfig: "Auto-update is turned off in config; no check was run.",
21
22
  coordinatorStopped: "The auto-update coordinator is not running; no check was run.",
22
23
  };
24
+ /**
25
+ * Charset OpenClaw's plugin-spec parser accepts for an npm dist-tag
26
+ * (`src/infra/npm-registry-spec.ts`). A composed `<name>@<tag>` spec is
27
+ * interpolated into a shell string by the injected update command, so a tag
28
+ * outside this charset must be rejected before the spec is composed.
29
+ */
30
+ const SAFE_DIST_TAG = /^[A-Za-z0-9][A-Za-z0-9._-]*$/;
31
+ /**
32
+ * Values on the {@link SAFE_DIST_TAG} charset that npm resolves as a semver
33
+ * version or range rather than as a dist-tag: `3`, `3.0`, `3.0.114`, `v3.0.114`,
34
+ * `1.x`, and the same shapes with a prerelease or build suffix. Range-shaped
35
+ * operators (`^`, `>=`, `~`) are already outside the charset.
36
+ *
37
+ * A range resolves to every matching version, so `npm view <name>@<range> version`
38
+ * succeeds and prints one version per line — a value no semver parser accepts.
39
+ * An exact version resolves to a single version and pins the box. Neither is a
40
+ * dist-tag: npm refuses to publish a dist-tag of either shape, so neither can
41
+ * name a line that exists on the registry.
42
+ *
43
+ * The first segment may be an `x` wildcard, so a wildcard-only range is covered.
44
+ * A tag that merely starts with digits (`3x`, `2preview`) or contains them
45
+ * (`preview.1`, `preview2`) is not this shape and stays accepted.
46
+ */
47
+ const VERSION_OR_RANGE_SHAPED_DIST_TAG = /^v?(?:\d+|[xX])(?:\.(?:\d+|[xX]))*(?:[-+][A-Za-z0-9.-]*)?$/;
48
+ /**
49
+ * Why a configured `distTag` is unusable, or `null` when it is a usable dist-tag.
50
+ * The sentence completes "autoUpdate.distTag <value> ...".
51
+ */
52
+ function distTagRejectionReason(distTag) {
53
+ if (!SAFE_DIST_TAG.test(distTag))
54
+ return "is not a valid npm dist-tag.";
55
+ if (VERSION_OR_RANGE_SHAPED_DIST_TAG.test(distTag)) {
56
+ return ("is a semver version or range, not a dist-tag. The key names an npm dist-tag " +
57
+ "(for example `preview`); to follow the default line, omit the key.");
58
+ }
59
+ return null;
60
+ }
61
+ /** Cap a registry-supplied string before it reaches a log line or an event body. */
62
+ function summarizeForLog(value, maxLength = 120) {
63
+ const collapsed = value.replace(/\s+/g, " ").trim();
64
+ return collapsed.length > maxLength ? `${collapsed.slice(0, maxLength)}…` : collapsed;
65
+ }
23
66
  /**
24
67
  * Central lifecycle manager for the plugin auto-update feature.
25
68
  *
@@ -70,7 +113,7 @@ export class AutoUpdateCoordinator {
70
113
  logger.info(`[senpi-auto-update] disabled by config (pluginEnabled=${String(this.options.enabled)}, configEnabled=${String(config.enabled)})`);
71
114
  return;
72
115
  }
73
- logger.info(`[senpi-auto-update] starting | localVersion=${this.options.currentVersion} package=${this.options.packageName} mode=${config.mode} pollInterval=${config.pollIntervalMinutes}m startupDelay=${config.startupDelaySeconds}s failureBackoff=${config.failureBackoffMinutes}m maxBackoff=${config.maxBackoffMinutes}m`);
116
+ logger.info(`[senpi-auto-update] starting | localVersion=${this.options.currentVersion} package=${this.options.packageName} distTag=${config.distTag === undefined ? "none" : JSON.stringify(config.distTag)} mode=${config.mode} pollInterval=${config.pollIntervalMinutes}m startupDelay=${config.startupDelaySeconds}s failureBackoff=${config.failureBackoffMinutes}m maxBackoff=${config.maxBackoffMinutes}m`);
74
117
  const preflight = evaluatePreflight({
75
118
  configuredMode: config.mode,
76
119
  canUpdatePlugin: this.options.canUpdatePlugin ?? true,
@@ -139,7 +182,18 @@ export class AutoUpdateCoordinator {
139
182
  return { outcome: "disabled", reason };
140
183
  }
141
184
  this.options.logger.info("[senpi-auto-update] forced check requested");
185
+ // `tick` swallows its own errors so the poll keeps its cadence, so the only
186
+ // way to tell a completed check from a failed one is whether it counted a
187
+ // failure. Reporting "ran" either way tells an operator testing a config
188
+ // change that it worked when nothing reached the registry.
189
+ const failuresBefore = this.snapshot.consecutiveFailures;
142
190
  await this.tick(this.runToken);
191
+ if (this.snapshot.consecutiveFailures > failuresBefore) {
192
+ return {
193
+ outcome: "failed",
194
+ reason: this.snapshot.lastError ?? CHECK_NOW_REASON.failed,
195
+ };
196
+ }
143
197
  return { outcome: "ran", reason: CHECK_NOW_REASON.ran };
144
198
  }
145
199
  /** Schedule the next `tick` after `delayMs`, guarded by stop/token checks. */
@@ -236,18 +290,75 @@ export class AutoUpdateCoordinator {
236
290
  // A telemetry-side failure must never disturb the auto-update tick.
237
291
  }
238
292
  }
293
+ /**
294
+ * npm spec both the version poll and the install use: the package name, or
295
+ * `<name>@<distTag>` when a release line is configured.
296
+ *
297
+ * The tag is operator config, so it is checked here rather than in the
298
+ * constructor: an unusable tag fails the tick, which lets the existing
299
+ * backoff bound the retries and leaves the box recoverable by a config fix
300
+ * instead of a process restart.
301
+ *
302
+ * Rejection is a failed check, not a quiet skip: it emits the same
303
+ * `check_failed` event the registry-side failures emit, so the rejected value
304
+ * reaches telemetry rather than only the box's log.
305
+ *
306
+ * @throws When `distTag` is set to a value that is not a valid npm dist-tag.
307
+ */
308
+ resolveUpdateSpec(state) {
309
+ const { distTag } = this.options.config;
310
+ if (distTag === undefined)
311
+ return this.options.packageName;
312
+ const reason = distTagRejectionReason(distTag);
313
+ if (reason) {
314
+ const message = `[senpi-auto-update] autoUpdate.distTag ${JSON.stringify(distTag)} ${reason} ` +
315
+ `No version check and no install will run until it is corrected.`;
316
+ this.options.logger.warn(message);
317
+ const error = new Error(message);
318
+ this.emitEvent(EVENT_NAME.autoUpdateCheckFailed, "error", {
319
+ body: `Version check failed: rejected autoUpdate.distTag ${JSON.stringify(distTag)} — ${reason}`,
320
+ attributes: eventAttrs({
321
+ "senpi.auto_update.consecutive_failures": state.consecutiveFailures + 1,
322
+ }),
323
+ error,
324
+ });
325
+ throw error;
326
+ }
327
+ return `${this.options.packageName}@${distTag}`;
328
+ }
239
329
  /** Core update logic: fetch latest version, classify, and take action. */
240
330
  async runTick(state) {
241
331
  const { logger } = this.options;
332
+ // Stamped before the tag is resolved so a rejected tag reads as "checked
333
+ // just now and failed", not as "stopped polling a while ago".
242
334
  state.lastCheckedAt = new Date().toISOString();
243
- logger.info(`[senpi-auto-update] fetching latest version from npm | package=${this.options.packageName} localVersion=${this.options.currentVersion}`);
335
+ const spec = this.resolveUpdateSpec(state);
336
+ logger.info(`[senpi-auto-update] fetching latest version from npm | spec=${spec} localVersion=${this.options.currentVersion}`);
244
337
  let latest;
245
338
  try {
246
- latest = await this.versionSource.getLatestVersion(this.options.packageName);
339
+ latest = await this.versionSource.getLatestVersion(spec);
247
340
  }
248
341
  catch (error) {
249
342
  this.emitEvent(EVENT_NAME.autoUpdateCheckFailed, "error", {
250
- body: `Version check failed for ${this.options.packageName}: ${formatErr(error)}`,
343
+ body: `Version check failed for ${spec}: ${formatErr(error)}`,
344
+ attributes: eventAttrs({
345
+ "senpi.auto_update.consecutive_failures": state.consecutiveFailures + 1,
346
+ }),
347
+ error,
348
+ });
349
+ throw error;
350
+ }
351
+ // A resolved value `parseSemver` cannot read has no comparable version in it.
352
+ // `classifyUpdate` would answer `none` for it, which is indistinguishable from
353
+ // "already up to date", so the check fails here instead: the value never
354
+ // reaches the snapshot, the failure is counted, and the backoff applies.
355
+ if (!parseSemver(latest)) {
356
+ const message = `[senpi-auto-update] version check for ${spec} resolved to a value that is not a semver version: ` +
357
+ `${JSON.stringify(summarizeForLog(latest))}`;
358
+ logger.warn(message);
359
+ const error = new Error(message);
360
+ this.emitEvent(EVENT_NAME.autoUpdateCheckFailed, "error", {
361
+ body: message,
251
362
  attributes: eventAttrs({
252
363
  "senpi.auto_update.consecutive_failures": state.consecutiveFailures + 1,
253
364
  }),
@@ -273,7 +384,7 @@ export class AutoUpdateCoordinator {
273
384
  return;
274
385
  }
275
386
  if (updateType === "major") {
276
- await this.handleMajorAvailable(state, latest);
387
+ await this.handleMajorAvailable(state, latest, spec);
277
388
  return;
278
389
  }
279
390
  if (!this.isAllowedByPolicy(updateType)) {
@@ -282,14 +393,14 @@ export class AutoUpdateCoordinator {
282
393
  return;
283
394
  }
284
395
  if (state.effectiveMode !== "auto-apply") {
285
- await this.logUpdateAvailable(state, latest, updateType);
396
+ await this.logUpdateAvailable(state, latest, updateType, spec);
286
397
  return;
287
398
  }
288
399
  if (state.lastAppliedVersion === latest) {
289
400
  this.handleAlreadyAppliedAwaitingRestart(state, latest);
290
401
  return;
291
402
  }
292
- await this.runUpdateTransaction(state, latest, updateType);
403
+ await this.runUpdateTransaction(state, latest, updateType, spec);
293
404
  }
294
405
  /**
295
406
  * `currentVersion` is a compile-time constant frozen for the life of the
@@ -324,7 +435,7 @@ export class AutoUpdateCoordinator {
324
435
  return this.options.config.allowMinor;
325
436
  return false;
326
437
  }
327
- async handleMajorAvailable(state, latest) {
438
+ async handleMajorAvailable(state, latest, spec) {
328
439
  if (state.lastNotifiedMajorVersion === latest) {
329
440
  this.snapshot = this.buildSnapshot("healthy", `major-seen:${latest}`);
330
441
  return;
@@ -338,11 +449,11 @@ export class AutoUpdateCoordinator {
338
449
  });
339
450
  this.options.logger.info(`[senpi-auto-update] Senpi update available: v${latest} (major). ` +
340
451
  `Auto-update will not apply major versions. ` +
341
- `Review changelog and run: openclaw plugins update ${this.options.packageName}`);
452
+ `Review changelog and run: openclaw plugins update ${spec}`);
342
453
  state.lastNotifiedMajorVersion = latest;
343
454
  this.snapshot = this.buildSnapshot("healthy", `major-notified:${latest}`);
344
455
  }
345
- async logUpdateAvailable(state, latest, kind) {
456
+ async logUpdateAvailable(state, latest, kind, spec) {
346
457
  if (state.lastNotifiedUpdateVersion === latest) {
347
458
  this.snapshot = this.buildSnapshot("healthy", `update-seen:${kind}:${latest}`);
348
459
  return;
@@ -356,7 +467,7 @@ export class AutoUpdateCoordinator {
356
467
  });
357
468
  this.options.logger.info(`[senpi-auto-update] Senpi update available: v${latest} (${kind}). ` +
358
469
  `Auto-update mode is notify-only. ` +
359
- `Run: openclaw plugins update ${this.options.packageName}`);
470
+ `Run: openclaw plugins update ${spec}`);
360
471
  state.lastNotifiedUpdateVersion = latest;
361
472
  this.snapshot = this.buildSnapshot("healthy", `update-notified:${kind}:${latest}`);
362
473
  }
@@ -378,13 +489,13 @@ export class AutoUpdateCoordinator {
378
489
  * possible, log that a manual restart is needed and return.
379
490
  * 4. When capable: trigger the config-file bump for gateway restart.
380
491
  */
381
- async runUpdateTransaction(state, latest, kind) {
492
+ async runUpdateTransaction(state, latest, kind, spec) {
382
493
  state.lastAttemptAt = new Date().toISOString();
383
494
  this.options.logger.info(`[senpi-auto-update] Senpi auto-update in progress: ${this.options.currentVersion} -> ${latest} (${kind}).`);
384
495
  // Step 1: run the package update. Throw (to tick's catch) on failure so
385
496
  // runtimes stay up and lastAppliedVersion is never advanced for this version.
386
497
  try {
387
- await this.runUpdateCommand(this.options.packageName);
498
+ await this.runUpdateCommand(spec);
388
499
  }
389
500
  catch (err) {
390
501
  const reason = formatErr(err);
@@ -483,6 +594,11 @@ export class AutoUpdateCoordinator {
483
594
  health,
484
595
  currentVersion: this.options.currentVersion,
485
596
  latestVersion: state.latestVersionLastSeen || this.options.currentVersion,
597
+ // Only present when a line is configured, so a box on the default line
598
+ // reports the same shape it always did.
599
+ ...(this.options.config.distTag === undefined
600
+ ? {}
601
+ : { distTag: this.options.config.distTag }),
486
602
  lastCheckedAt: state.lastCheckedAt || null,
487
603
  lastAction,
488
604
  lastError: lastError
@@ -1 +1 @@
1
- {"version":3,"file":"coordinator.js","sourceRoot":"","sources":["../../../src/runtime/auto-update/coordinator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"coordinator.js","sourceRoot":"","sources":["../../../src/runtime/auto-update/coordinator.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"run-update-command.d.ts","sourceRoot":"","sources":["../../../src/runtime/auto-update/run-update-command.ts"],"names":[],"mappings":"AAwBA,wBAAsB,wBAAwB,CAC5C,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,IAAI,CAAC,CAqBf"}
1
+ {"version":3,"file":"run-update-command.d.ts","sourceRoot":"","sources":["../../../src/runtime/auto-update/run-update-command.ts"],"names":[],"mappings":"AA6BA,wBAAsB,wBAAwB,CAC5C,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,IAAI,CAAC,CAqBf"}
@@ -1,25 +1,29 @@
1
1
  /**
2
2
  * Custom `runUpdateCommand` for `AutoUpdateCoordinator`.
3
3
  *
4
- * Runs `openclaw plugins update <packageName>` via `sh -lc` so the
5
- * interactive confirmation prompt is auto-answered with `yes`. The
6
- * `packageName` arg is whatever the coordinator resolved from
7
- * `resolvePackageName()` (e.g. `@senpi-ai/runtime` in prod,
8
- * `@senpi/runtime` on the dev channel) — keeping this consistent with the
9
- * version-source poll ensures the install and the version check follow the
10
- * same npm channel.
4
+ * Runs `openclaw plugins update <spec>` via `sh -lc` so the interactive
5
+ * confirmation prompt is auto-answered with `yes`. The `packageName` arg is
6
+ * the spec the coordinator composed: the name resolved by
7
+ * `resolvePackageName()` (e.g. `@senpi-ai/runtime` in prod, `@senpi/runtime`
8
+ * on the dev channel), optionally suffixed with `@<dist-tag>`. Keeping this
9
+ * consistent with the version-source poll ensures the install and the version
10
+ * check follow the same npm package and the same release line.
11
11
  */
12
12
  import { runCommand } from "./command-runner.js";
13
13
  /**
14
- * Conservative scoped-npm name pattern.
14
+ * Conservative npm spec pattern: `<name>` or `<name>@<selector>`.
15
15
  *
16
- * `packageName` is always read from this package's own `package.json` (or
17
- * the prod fallback) before reaching here, so it is never user-controlled.
18
- * This guard is defense-in-depth against a malformed `package.json` shipping
19
- * a name that contains shell metacharacters and slipping into the `sh -lc`
20
- * invocation below.
16
+ * The name part is read from this package's own `package.json` (or the prod
17
+ * fallback), so it is never user-controlled; the selector part comes from
18
+ * `autoUpdate.distTag` in the plugin config, so it is. Both reach the `sh -lc`
19
+ * invocation below, which makes this the shell boundary for the whole spec.
20
+ *
21
+ * A leading `@` requires a scope separator and a package part, so a bare
22
+ * scope such as `@preview` is not a name. The selector charset is the one
23
+ * OpenClaw's plugin-spec parser accepts for a dist-tag, so a spec that passes
24
+ * here is also a spec `openclaw plugins update` can resolve.
21
25
  */
22
- const SAFE_NPM_NAME = /^@?[A-Za-z0-9._-]+(\/[A-Za-z0-9._-]+)?$/;
26
+ const SAFE_NPM_NAME = /^(?:@[A-Za-z0-9._-]+\/)?[A-Za-z0-9._-]+(?:@[A-Za-z0-9][A-Za-z0-9._-]*)?$/;
23
27
  export async function runOpenClawPluginsUpdate(packageName) {
24
28
  if (!SAFE_NPM_NAME.test(packageName)) {
25
29
  throw new Error(`runOpenClawPluginsUpdate: unsafe package name ${JSON.stringify(packageName)}`);
@@ -1 +1 @@
1
- {"version":3,"file":"run-update-command.js","sourceRoot":"","sources":["../../../src/runtime/auto-update/run-update-command.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEjD;;;;;;;;GAQG;AACH,MAAM,aAAa,GAAG,yCAAyC,CAAC;AAEhE,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,WAAmB;IAEnB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;QACrC,MAAM,IAAI,KAAK,CACb,iDAAiD,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE,CAC/E,CAAC;IACJ,CAAC;IACD,2EAA2E;IAC3E,2EAA2E;IAC3E,qEAAqE;IACrE,2EAA2E;IAC3E,sEAAsE;IACtE,MAAM,MAAM,GAAG,MAAM,UAAU,CAC7B,IAAI,EACJ,CAAC,KAAK,EAAE,kCAAkC,WAAW,GAAG,CAAC,EACzD,EAAE,SAAS,EAAE,OAAO,EAAE,CACvB,CAAC;IACF,IAAI,MAAM,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CACb,MAAM,CAAC,MAAM,IAAI,4CAA4C,MAAM,CAAC,IAAI,EAAE,CAC3E,CAAC;IACJ,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"run-update-command.js","sourceRoot":"","sources":["../../../src/runtime/auto-update/run-update-command.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEjD;;;;;;;;;;;;GAYG;AACH,MAAM,aAAa,GACjB,0EAA0E,CAAC;AAE7E,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,WAAmB;IAEnB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;QACrC,MAAM,IAAI,KAAK,CACb,iDAAiD,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE,CAC/E,CAAC;IACJ,CAAC;IACD,2EAA2E;IAC3E,2EAA2E;IAC3E,qEAAqE;IACrE,2EAA2E;IAC3E,sEAAsE;IACtE,MAAM,MAAM,GAAG,MAAM,UAAU,CAC7B,IAAI,EACJ,CAAC,KAAK,EAAE,kCAAkC,WAAW,GAAG,CAAC,EACzD,EAAE,SAAS,EAAE,OAAO,EAAE,CACvB,CAAC;IACF,IAAI,MAAM,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CACb,MAAM,CAAC,MAAM,IAAI,4CAA4C,MAAM,CAAC,IAAI,EAAE,CAC3E,CAAC;IACJ,CAAC;AACH,CAAC"}
@@ -21,6 +21,12 @@ export interface AutoUpdateConfig {
21
21
  allowMajor: boolean;
22
22
  failureBackoffMinutes: number;
23
23
  maxBackoffMinutes: number;
24
+ /**
25
+ * npm dist-tag the updater follows instead of the default release line.
26
+ * Absent means the default line (`latest`). The tag is not validated here;
27
+ * the coordinator rejects an unusable one (see `coordinator.ts`).
28
+ */
29
+ distTag?: string;
24
30
  /** Internal key written by the auto-updater to trigger gateway restart via config reload. */
25
31
  lastRestartTrigger?: string;
26
32
  }
@@ -74,6 +80,13 @@ export interface AutoUpdateSnapshot {
74
80
  health: AutoUpdateHealth;
75
81
  currentVersion: string;
76
82
  latestVersion: string;
83
+ /**
84
+ * The configured {@link AutoUpdateConfig.distTag}, absent on a box that follows
85
+ * the default release line. Reported next to `currentVersion` / `latestVersion`
86
+ * so an operator can see which line resolved the version the box is comparing
87
+ * against, without shell access to the box.
88
+ */
89
+ distTag?: string;
77
90
  lastCheckedAt: string | null;
78
91
  lastAction: string;
79
92
  lastError: string | null;
@@ -91,8 +104,11 @@ export interface AutoUpdateSnapshot {
91
104
  * - `ran` — a full check cycle was executed and has finished.
92
105
  * - `already-running` — a cycle was already in flight, so no second one was started.
93
106
  * - `disabled` — the coordinator is stopped or auto-update is off; nothing was run or armed.
107
+ * - `failed` — a check ran and failed. The tick swallows its own errors so the
108
+ * poll keeps its cadence, so without this a caller cannot tell a completed
109
+ * check from one that never reached the registry.
94
110
  */
95
- export type AutoUpdateCheckNowOutcome = "ran" | "already-running" | "disabled";
111
+ export type AutoUpdateCheckNowOutcome = "ran" | "already-running" | "disabled" | "failed";
96
112
  /** Result of a forced {@link AutoUpdateCoordinator.checkNow} call. */
97
113
  export interface AutoUpdateCheckNowResult {
98
114
  outcome: AutoUpdateCheckNowOutcome;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/runtime/auto-update/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/runtime/auto-update/types.ts"],"names":[],"mappings":"AAAA,sFAAsF;AACtF,MAAM,MAAM,cAAc,GAAG,aAAa,GAAG,YAAY,CAAC;AAE1D,oFAAoF;AACpF,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,CAAC;AAElE,0EAA0E;AAC1E,MAAM,MAAM,iBAAiB,GAAG,SAAS,GAAG,SAAS,GAAG,aAAa,CAAC;AAEtE;;;;;GAKG;AACH,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,cAAc,CAAC;IACrB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,UAAU,EAAE,OAAO,CAAC;IACpB,UAAU,EAAE,OAAO,CAAC;IACpB,yEAAyE;IACzE,UAAU,EAAE,OAAO,CAAC;IACpB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,iBAAiB,EAAE,MAAM,CAAC;IAC1B;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,6FAA6F;IAC7F,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED;;;;;GAKG;AACH,MAAM,WAAW,eAAe;IAC9B,sBAAsB,EAAE,MAAM,CAAC;IAC/B,qBAAqB,EAAE,MAAM,CAAC;IAC9B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,yBAAyB,CAAC,EAAE,MAAM,CAAC;IACnC,gCAAgC,CAAC,EAAE,MAAM,CAAC;IAC1C,mBAAmB,EAAE,MAAM,CAAC;IAC5B,aAAa,EAAE,cAAc,CAAC;IAC9B,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,wBAAwB,EAAE,MAAM,EAAE,CAAC;IACnC,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,sBAAsB,CAAC,EAAE,MAAM,CAAC;CACjC;AAED;;;;;GAKG;AACH,MAAM,WAAW,yBAAyB;IACxC,EAAE,EAAE,OAAO,CAAC;IACZ,aAAa,EAAE,cAAc,CAAC;IAC9B,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,gFAAgF;AAChF,MAAM,MAAM,gBAAgB,GAAG,SAAS,GAAG,UAAU,GAAG,WAAW,GAAG,UAAU,CAAC;AAEjF;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,OAAO,CAAC;IACjB,cAAc,EAAE,cAAc,CAAC;IAC/B,aAAa,EAAE,cAAc,CAAC;IAC9B,MAAM,EAAE,gBAAgB,CAAC;IACzB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB;;;;;OAKG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,wBAAwB,EAAE,MAAM,EAAE,CAAC;IACnC,oBAAoB,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,sBAAsB,EAAE,MAAM,GAAG,IAAI,CAAC;CACvC;AAED;;;;;;;;;GASG;AACH,MAAM,MAAM,yBAAyB,GAAG,KAAK,GAAG,iBAAiB,GAAG,UAAU,GAAG,QAAQ,CAAC;AAE1F,sEAAsE;AACtE,MAAM,WAAW,wBAAwB;IACvC,OAAO,EAAE,yBAAyB,CAAC;IACnC,+EAA+E;IAC/E,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,0EAA0E;AAC1E,eAAO,MAAM,sBAAsB,2BAA2B,CAAC;AAqB/D;;;;;;;;;GASG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,OAAO,GAAG,gBAAgB,CAuBxE;AAED;;;GAGG;AACH,wBAAgB,4BAA4B,CAC1C,cAAc,EAAE,MAAM,EACtB,aAAa,EAAE,cAAc,GAC5B,eAAe,CAUjB"}
@@ -9,6 +9,13 @@ function toFinite(value, fallback) {
9
9
  function clamp(value, min, max) {
10
10
  return Math.min(max, Math.max(min, value));
11
11
  }
12
+ /** Trimmed string, or `undefined` for a non-string or an all-whitespace value. */
13
+ function toTrimmedString(value) {
14
+ if (typeof value !== "string")
15
+ return undefined;
16
+ const trimmed = value.trim();
17
+ return trimmed.length > 0 ? trimmed : undefined;
18
+ }
12
19
  /**
13
20
  * Parse and normalise the raw `autoUpdate` config block from the plugin config.
14
21
  *
@@ -35,6 +42,10 @@ export function resolveAutoUpdateConfig(value) {
35
42
  allowMajor: false,
36
43
  failureBackoffMinutes: clamp(toFinite(raw.failureBackoffMinutes, 15), 1, 24 * 60),
37
44
  maxBackoffMinutes: clamp(toFinite(raw.maxBackoffMinutes, 60), 1, 7 * 24 * 60),
45
+ // Characters are not checked here: an unusable tag must surface as a loud
46
+ // runtime failure the operator can see, not as a silent fall back to the
47
+ // default release line.
48
+ distTag: toTrimmedString(raw.distTag),
38
49
  lastRestartTrigger: typeof raw.lastRestartTrigger === "string" ? raw.lastRestartTrigger : undefined,
39
50
  };
40
51
  }
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/runtime/auto-update/types.ts"],"names":[],"mappings":"AA+GA,0EAA0E;AAC1E,MAAM,CAAC,MAAM,sBAAsB,GAAG,wBAAwB,CAAC;AAE/D,SAAS,MAAM,CAAC,KAAc,EAAE,QAAiB;IAC/C,OAAO,OAAO,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC;AACvD,CAAC;AAED,SAAS,QAAQ,CAAC,KAAc,EAAE,QAAgB;IAChD,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC;AAChF,CAAC;AAED,SAAS,KAAK,CAAC,KAAa,EAAE,GAAW,EAAE,GAAW;IACpD,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;AAC7C,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,uBAAuB,CAAC,KAAc;IACpD,MAAM,GAAG,GAAG,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QACrE,CAAC,CAAE,KAAiC;QACpC,CAAC,CAAC,EAAE,CAAC;IAEP,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,KAAK,aAAa,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,YAAY,CAAC;IACvE,OAAO;QACL,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC;QAClC,IAAI;QACJ,mBAAmB,EAAE,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,mBAAmB,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC;QAC7E,mBAAmB,EAAE,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,mBAAmB,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC;QAC9E,UAAU,EAAE,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC;QACxC,UAAU,EAAE,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC;QACxC,2BAA2B;QAC3B,UAAU,EAAE,KAAK;QACjB,qBAAqB,EAAE,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,qBAAqB,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC;QACjF,iBAAiB,EAAE,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,iBAAiB,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC;QAC7E,kBAAkB,EAAE,OAAO,GAAG,CAAC,kBAAkB,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,CAAC,SAAS;KACpG,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,4BAA4B,CAC1C,cAAsB,EACtB,aAA6B;IAE7B,OAAO;QACL,sBAAsB,EAAE,cAAc;QACtC,qBAAqB,EAAE,cAAc;QACrC,aAAa,EAAE,EAAE;QACjB,mBAAmB,EAAE,CAAC;QACtB,aAAa;QACb,iBAAiB,EAAE,SAAS;QAC5B,wBAAwB,EAAE,EAAE;KAC7B,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/runtime/auto-update/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,73 @@
1
+ /**
2
+ * Which registered runtimes a restart should NOT boot: the ones whose strategy the platform says is
3
+ * dead. Every gateway restart (a rollout included) re-booted every registry entry, closed wallets
4
+ * and all — the 3.0.104 rollout re-scaffolded 34 runtimes on CLOSED wallets in one night: scanners
5
+ * that scan, log and POST for money that left days ago. One `strategy_list` read at boot, and a dead
6
+ * wallet's entry is left registered but not started.
7
+ *
8
+ * Fail-OPEN: a read that failed or timed out (`null`), or a wallet the answer does not carry, boots
9
+ * as before. A transient read must never keep a live strategy down.
10
+ */
11
+ import type { InstalledRuntimeEntry } from "./strategy-registry.js";
12
+ /**
13
+ * Bound on the boot status read. It runs before the boot loop, so a hung MCP server would otherwise
14
+ * hold every runtime on the box — live ones included — for the transport's own read timeout. Past
15
+ * this, the read counts as failed and everything boots.
16
+ */
17
+ export declare const BOOT_STATUS_READ_TIMEOUT_MS = 10000;
18
+ /**
19
+ * Whether a registry wallet can be looked up at all. A row without one — missing, blank, or not a
20
+ * 40-hex address — has an unknowable strategy lifecycle: boot starts it, the lifecycle reaper never
21
+ * judges it, and `runtime list` renders its lifecycle `unknown`.
22
+ */
23
+ export declare function isTrackableWallet(wallet: string | undefined): wallet is string;
24
+ /**
25
+ * The addresses to ask `strategy_list` about for a set of registry rows: trackable only, trimmed,
26
+ * lower-cased and de-duplicated.
27
+ *
28
+ * Lower-cased because the backend's filter is case-SENSITIVE: strategy-manager's `FetchStrategies`
29
+ * runs `strategyWalletAddress: { in: [...] }` on a plain text column, nothing on the way lower-cases
30
+ * the input, and every stored address is lower-case. The registry keeps `strategy.wallet` verbatim
31
+ * from the YAML, so a checksummed row sent as-is comes back missing while its strategy is live —
32
+ * harmless for boot (a missing wallet boots) but a false "wallet absent" for anything that acts on
33
+ * absence.
34
+ */
35
+ export declare function trackableWalletKeys(entries: ReadonlyArray<{
36
+ id?: string;
37
+ wallet?: string;
38
+ }>): string[];
39
+ export interface SkippedDeadWallet {
40
+ entry: InstalledRuntimeEntry;
41
+ status: string;
42
+ }
43
+ /** The slice of a `strategy_list` row this module reads. */
44
+ export interface WalletStatusRow {
45
+ strategyWalletAddress: string;
46
+ status: string;
47
+ }
48
+ export type BootStatusRead = {
49
+ ok: true;
50
+ statuses: Map<string, string>;
51
+ } | {
52
+ ok: false;
53
+ reason: "timeout" | "error";
54
+ message: string;
55
+ };
56
+ /**
57
+ * One bounded status read over the registered wallets. The deadline covers the whole read — a
58
+ * self-managed client's connect included — not just the tool call. Keys are lower-cased addresses;
59
+ * rows without an address are dropped rather than keyed on "".
60
+ */
61
+ export declare function readBootWalletStatuses(wallets: readonly string[], read: (wallets: string[], signal: AbortSignal) => Promise<readonly WalletStatusRow[]>, timeoutMs?: number): Promise<BootStatusRead>;
62
+ export declare function partitionByWalletStatus(entries: readonly InstalledRuntimeEntry[], statusByWallet: ReadonlyMap<string, string> | null): {
63
+ boot: InstalledRuntimeEntry[];
64
+ skipped: SkippedDeadWallet[];
65
+ };
66
+ /**
67
+ * What `runtime list` says about an entry boot left down. Starts with "stopped" on purpose: that is
68
+ * the prefix every existing reader keys "not running" on (skills `_cli.runtime_running`, the
69
+ * portfolio health rollup), and the rest says why, so nobody narrates it as a crash to fix or a
70
+ * runtime to restart.
71
+ */
72
+ export declare function bootSkippedStatusLabel(status: string): string;
73
+ //# sourceMappingURL=boot-skip.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"boot-skip.d.ts","sourceRoot":"","sources":["../../src/runtime/boot-skip.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAEpE;;;;GAIG;AACH,eAAO,MAAM,2BAA2B,QAAS,CAAC;AAUlD;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,IAAI,MAAM,CAE9E;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,aAAa,CAAC;IAAE,EAAE,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,GAAG,MAAM,EAAE,CAMtG;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,qBAAqB,CAAC;IAC7B,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,4DAA4D;AAC5D,MAAM,WAAW,eAAe;IAC9B,qBAAqB,EAAE,MAAM,CAAC;IAC9B,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,MAAM,cAAc,GACtB;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE,GAC3C;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAEhE;;;;GAIG;AACH,wBAAsB,sBAAsB,CAC1C,OAAO,EAAE,SAAS,MAAM,EAAE,EAC1B,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,WAAW,KAAK,OAAO,CAAC,SAAS,eAAe,EAAE,CAAC,EACrF,SAAS,GAAE,MAAoC,GAC9C,OAAO,CAAC,cAAc,CAAC,CAuBzB;AAQD,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,SAAS,qBAAqB,EAAE,EACzC,cAAc,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,GACjD;IAAE,IAAI,EAAE,qBAAqB,EAAE,CAAC;IAAC,OAAO,EAAE,iBAAiB,EAAE,CAAA;CAAE,CAUjE;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAE7D"}