@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.
- package/README.md +16 -0
- package/dist/actions/action-events.d.ts +7 -21
- package/dist/actions/action-events.d.ts.map +1 -1
- package/dist/actions/action-events.js +26 -54
- package/dist/actions/action-events.js.map +1 -1
- package/dist/actions/action-runtime-module.d.ts.map +1 -1
- package/dist/actions/action-runtime-module.js +7 -38
- package/dist/actions/action-runtime-module.js.map +1 -1
- package/dist/actions/close-position/close-position.action.d.ts.map +1 -1
- package/dist/actions/close-position/close-position.action.js +15 -122
- package/dist/actions/close-position/close-position.action.js.map +1 -1
- package/dist/actions/decision-engine.d.ts.map +1 -1
- package/dist/actions/decision-engine.js +2 -15
- package/dist/actions/decision-engine.js.map +1 -1
- package/dist/actions/event-derivation.d.ts +2 -71
- package/dist/actions/event-derivation.d.ts.map +1 -1
- package/dist/actions/event-derivation.js +8 -251
- package/dist/actions/event-derivation.js.map +1 -1
- package/dist/actions/open-position/open-position.action.d.ts +2 -17
- package/dist/actions/open-position/open-position.action.d.ts.map +1 -1
- package/dist/actions/open-position/open-position.action.js +56 -162
- package/dist/actions/open-position/open-position.action.js.map +1 -1
- package/dist/actions/position-tracker/position-tracker.action.d.ts +1 -2
- package/dist/actions/position-tracker/position-tracker.action.d.ts.map +1 -1
- package/dist/actions/position-tracker/position-tracker.action.js +17 -62
- package/dist/actions/position-tracker/position-tracker.action.js.map +1 -1
- package/dist/actions/store/types.d.ts +2 -9
- package/dist/actions/store/types.d.ts.map +1 -1
- package/dist/actions/store/types.js.map +1 -1
- package/dist/actions/types.d.ts +0 -13
- package/dist/actions/types.d.ts.map +1 -1
- package/dist/actions/types.js +0 -13
- package/dist/actions/types.js.map +1 -1
- package/dist/cli/guide-commands.d.ts.map +1 -1
- package/dist/cli/guide-commands.js +16 -11
- package/dist/cli/guide-commands.js.map +1 -1
- package/dist/cli/senpi-commands.d.ts.map +1 -1
- package/dist/cli/senpi-commands.js +18 -7
- package/dist/cli/senpi-commands.js.map +1 -1
- package/dist/constants/dsl/index.d.ts +17 -6
- package/dist/constants/dsl/index.d.ts.map +1 -1
- package/dist/constants/dsl/index.js +17 -6
- package/dist/constants/dsl/index.js.map +1 -1
- package/dist/dsl/engine/floors.d.ts +25 -1
- package/dist/dsl/engine/floors.d.ts.map +1 -1
- package/dist/dsl/engine/floors.js +38 -6
- package/dist/dsl/engine/floors.js.map +1 -1
- package/dist/dsl/engine/index.d.ts +1 -1
- package/dist/dsl/engine/index.d.ts.map +1 -1
- package/dist/dsl/engine/index.js +1 -1
- package/dist/dsl/engine/index.js.map +1 -1
- package/dist/dsl/engine/round.d.ts +22 -2
- package/dist/dsl/engine/round.d.ts.map +1 -1
- package/dist/dsl/engine/round.js +78 -5
- package/dist/dsl/engine/round.js.map +1 -1
- package/dist/dsl/engine/tick.d.ts.map +1 -1
- package/dist/dsl/engine/tick.js +31 -16
- package/dist/dsl/engine/tick.js.map +1 -1
- package/dist/dsl/engine-client/event-mapping.d.ts.map +1 -1
- package/dist/dsl/engine-client/event-mapping.js +0 -14
- package/dist/dsl/engine-client/event-mapping.js.map +1 -1
- package/dist/dsl/events/build-closed-event.d.ts +1 -16
- package/dist/dsl/events/build-closed-event.d.ts.map +1 -1
- package/dist/dsl/events/build-closed-event.js +0 -6
- package/dist/dsl/events/build-closed-event.js.map +1 -1
- package/dist/dsl/events/handlers.d.ts +0 -7
- package/dist/dsl/events/handlers.d.ts.map +1 -1
- package/dist/dsl/events/handlers.js +7 -37
- package/dist/dsl/events/handlers.js.map +1 -1
- package/dist/dsl/events/initial-state.d.ts +1 -1
- package/dist/dsl/events/initial-state.d.ts.map +1 -1
- package/dist/dsl/events/initial-state.js +4 -7
- package/dist/dsl/events/initial-state.js.map +1 -1
- package/dist/dsl/monitor/create-monitor.d.ts +2 -6
- package/dist/dsl/monitor/create-monitor.d.ts.map +1 -1
- package/dist/dsl/monitor/create-monitor.js +9 -15
- package/dist/dsl/monitor/create-monitor.js.map +1 -1
- package/dist/dsl/monitor/dsl-failure-events.d.ts +0 -2
- package/dist/dsl/monitor/dsl-failure-events.d.ts.map +1 -1
- package/dist/dsl/monitor/dsl-failure-events.js +1 -2
- package/dist/dsl/monitor/dsl-failure-events.js.map +1 -1
- package/dist/dsl/monitor/exchange-sync.d.ts +8 -3
- package/dist/dsl/monitor/exchange-sync.d.ts.map +1 -1
- package/dist/dsl/monitor/exchange-sync.js +16 -4
- package/dist/dsl/monitor/exchange-sync.js.map +1 -1
- package/dist/dsl/monitor/process-one-position.d.ts +0 -1
- package/dist/dsl/monitor/process-one-position.d.ts.map +1 -1
- package/dist/dsl/monitor/process-one-position.js +113 -62
- package/dist/dsl/monitor/process-one-position.js.map +1 -1
- package/dist/dsl/plugin/index.d.ts +10 -12
- package/dist/dsl/plugin/index.d.ts.map +1 -1
- package/dist/dsl/plugin/index.js +14 -12
- package/dist/dsl/plugin/index.js.map +1 -1
- package/dist/health/types.d.ts +0 -13
- package/dist/health/types.d.ts.map +1 -1
- package/dist/health/types.js +0 -12
- package/dist/health/types.js.map +1 -1
- package/dist/index.d.ts +4 -27
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +206 -257
- package/dist/index.js.map +1 -1
- package/dist/runtime/action-registry.d.ts.map +1 -1
- package/dist/runtime/action-registry.js +3 -4
- package/dist/runtime/action-registry.js.map +1 -1
- package/dist/runtime/auto-update/coordinator.d.ts +16 -0
- package/dist/runtime/auto-update/coordinator.d.ts.map +1 -1
- package/dist/runtime/auto-update/coordinator.js +129 -13
- package/dist/runtime/auto-update/coordinator.js.map +1 -1
- package/dist/runtime/auto-update/run-update-command.d.ts.map +1 -1
- package/dist/runtime/auto-update/run-update-command.js +18 -14
- package/dist/runtime/auto-update/run-update-command.js.map +1 -1
- package/dist/runtime/auto-update/types.d.ts +17 -1
- package/dist/runtime/auto-update/types.d.ts.map +1 -1
- package/dist/runtime/auto-update/types.js +11 -0
- package/dist/runtime/auto-update/types.js.map +1 -1
- package/dist/runtime/boot-skip.d.ts +73 -0
- package/dist/runtime/boot-skip.d.ts.map +1 -0
- package/dist/runtime/boot-skip.js +113 -0
- package/dist/runtime/boot-skip.js.map +1 -0
- package/dist/runtime/create-runtime-context.d.ts +2 -0
- package/dist/runtime/create-runtime-context.d.ts.map +1 -1
- package/dist/runtime/create-runtime-context.js +1 -0
- package/dist/runtime/create-runtime-context.js.map +1 -1
- package/dist/runtime/domain-events.d.ts.map +1 -1
- package/dist/runtime/domain-events.js +0 -7
- package/dist/runtime/domain-events.js.map +1 -1
- package/dist/runtime/lifecycle-events.d.ts +43 -10
- package/dist/runtime/lifecycle-events.d.ts.map +1 -1
- package/dist/runtime/lifecycle-events.js +83 -12
- package/dist/runtime/lifecycle-events.js.map +1 -1
- package/dist/runtime/lifecycle-reaper.d.ts +202 -0
- package/dist/runtime/lifecycle-reaper.d.ts.map +1 -0
- package/dist/runtime/lifecycle-reaper.js +390 -0
- package/dist/runtime/lifecycle-reaper.js.map +1 -0
- package/dist/runtime/reconcile-run.d.ts +3 -13
- package/dist/runtime/reconcile-run.d.ts.map +1 -1
- package/dist/runtime/reconcile-run.js +3 -4
- package/dist/runtime/reconcile-run.js.map +1 -1
- package/dist/runtime/reconcile-state.d.ts +0 -8
- package/dist/runtime/reconcile-state.d.ts.map +1 -1
- package/dist/runtime/reconcile-state.js +1 -4
- package/dist/runtime/reconcile-state.js.map +1 -1
- package/dist/runtime/run.d.ts +5 -1
- package/dist/runtime/run.d.ts.map +1 -1
- package/dist/runtime/run.js +1 -0
- package/dist/runtime/run.js.map +1 -1
- package/dist/runtime/runtime-schema.js +3 -3
- package/dist/runtime/runtime-schema.js.map +1 -1
- package/dist/runtime/runtime.d.ts +2 -1
- package/dist/runtime/runtime.d.ts.map +1 -1
- package/dist/runtime/runtime.js +4 -27
- package/dist/runtime/runtime.js.map +1 -1
- package/dist/runtime/supervisor/long-running-supervisor.d.ts +0 -13
- package/dist/runtime/supervisor/long-running-supervisor.d.ts.map +1 -1
- package/dist/runtime/supervisor/long-running-supervisor.js +0 -1
- package/dist/runtime/supervisor/long-running-supervisor.js.map +1 -1
- package/dist/runtime/update-apply-deps.d.ts +23 -2
- package/dist/runtime/update-apply-deps.d.ts.map +1 -1
- package/dist/runtime/update-apply-deps.js +11 -5
- package/dist/runtime/update-apply-deps.js.map +1 -1
- package/dist/runtime/validate-dsl-position-tracking.d.ts.map +1 -1
- package/dist/runtime/validate-dsl-position-tracking.js +1 -2
- package/dist/runtime/validate-dsl-position-tracking.js.map +1 -1
- package/dist/runtime-api/handlers/ingest-signals.d.ts.map +1 -1
- package/dist/runtime-api/handlers/ingest-signals.js +0 -1
- package/dist/runtime-api/handlers/ingest-signals.js.map +1 -1
- package/dist/runtime-api/handlers/types.d.ts +0 -5
- package/dist/runtime-api/handlers/types.d.ts.map +1 -1
- package/dist/runtime-api/intake/intake-events.d.ts +1 -1
- package/dist/runtime-api/intake/intake-events.d.ts.map +1 -1
- package/dist/runtime-api/intake/intake-events.js +3 -9
- package/dist/runtime-api/intake/intake-events.js.map +1 -1
- package/dist/runtime-api/intake/intake-mount.d.ts.map +1 -1
- package/dist/runtime-api/intake/intake-mount.js +19 -4
- package/dist/runtime-api/intake/intake-mount.js.map +1 -1
- package/dist/runtime-api/intake/process-error-post.d.ts +1 -6
- package/dist/runtime-api/intake/process-error-post.d.ts.map +1 -1
- package/dist/runtime-api/intake/process-error-post.js +1 -5
- package/dist/runtime-api/intake/process-error-post.js.map +1 -1
- package/dist/runtime-api/intake/process-signal-post.d.ts +1 -7
- package/dist/runtime-api/intake/process-signal-post.d.ts.map +1 -1
- package/dist/runtime-api/intake/process-signal-post.js +0 -5
- package/dist/runtime-api/intake/process-signal-post.js.map +1 -1
- package/dist/runtime-api/intake/scaffold-error-router.js.map +1 -1
- package/dist/runtime-api/intake/scanner-launcher.d.ts.map +1 -1
- package/dist/runtime-api/intake/scanner-launcher.js +0 -15
- package/dist/runtime-api/intake/scanner-launcher.js.map +1 -1
- package/dist/runtime-api/intake/types.d.ts +0 -55
- package/dist/runtime-api/intake/types.d.ts.map +1 -1
- package/dist/runtime-api/routes/signals.d.ts +0 -2
- package/dist/runtime-api/routes/signals.d.ts.map +1 -1
- package/dist/runtime-api/routes/signals.js +1 -5
- package/dist/runtime-api/routes/signals.js.map +1 -1
- package/dist/runtime-api/routes/signals.schema.d.ts +0 -43
- package/dist/runtime-api/routes/signals.schema.d.ts.map +1 -1
- package/dist/runtime-api/routes/signals.schema.js +0 -43
- package/dist/runtime-api/routes/signals.schema.js.map +1 -1
- package/dist/runtime-api/server.d.ts +1 -7
- package/dist/runtime-api/server.d.ts.map +1 -1
- package/dist/runtime-api/server.js +0 -1
- package/dist/runtime-api/server.js.map +1 -1
- package/dist/scanners/engine/engine.d.ts +1 -22
- package/dist/scanners/engine/engine.d.ts.map +1 -1
- package/dist/scanners/engine/engine.js +11 -78
- package/dist/scanners/engine/engine.js.map +1 -1
- package/dist/scanners/engine/lifecycle.d.ts +1 -7
- package/dist/scanners/engine/lifecycle.d.ts.map +1 -1
- package/dist/scanners/events.d.ts +0 -4
- package/dist/scanners/events.d.ts.map +1 -1
- package/dist/scanners/events.js +0 -2
- package/dist/scanners/events.js.map +1 -1
- package/dist/scanners/external/scaffold/delivery.py +25 -194
- package/dist/scanners/external/scaffold/scaffold.py +31 -172
- package/dist/scanners/external/scaffold/senpi_mcp.py +8 -150
- package/dist/scanners/external-scanner-receiver.d.ts +0 -17
- package/dist/scanners/external-scanner-receiver.d.ts.map +1 -1
- package/dist/scanners/external-scanner-receiver.js +0 -8
- package/dist/scanners/external-scanner-receiver.js.map +1 -1
- package/dist/scanners/runtime-module.d.ts +0 -1
- package/dist/scanners/runtime-module.d.ts.map +1 -1
- package/dist/scanners/runtime-module.js +9 -66
- package/dist/scanners/runtime-module.js.map +1 -1
- package/dist/skills-manager/manifest.d.ts.map +1 -1
- package/dist/skills-manager/manifest.js +1 -0
- package/dist/skills-manager/manifest.js.map +1 -1
- package/dist/skills-manager/skills-manifest.json +1 -0
- package/dist/telemetry/attributes.d.ts +0 -20
- package/dist/telemetry/attributes.d.ts.map +1 -1
- package/dist/telemetry/attributes.js +0 -24
- package/dist/telemetry/attributes.js.map +1 -1
- package/dist/telemetry/event-builders.d.ts +6 -81
- package/dist/telemetry/event-builders.d.ts.map +1 -1
- package/dist/telemetry/event-builders.js +17 -141
- package/dist/telemetry/event-builders.js.map +1 -1
- package/dist/telemetry/event-store.d.ts +0 -6
- package/dist/telemetry/event-store.d.ts.map +1 -1
- package/dist/telemetry/event-store.js +8 -12
- package/dist/telemetry/event-store.js.map +1 -1
- package/dist/telemetry/metrics.d.ts +2 -14
- package/dist/telemetry/metrics.d.ts.map +1 -1
- package/dist/telemetry/metrics.js +4 -19
- package/dist/telemetry/metrics.js.map +1 -1
- package/dist/telemetry/spans/redact-pii.d.ts.map +1 -1
- package/dist/telemetry/spans/redact-pii.js +2 -18
- package/dist/telemetry/spans/redact-pii.js.map +1 -1
- package/dist/telemetry/tracing.d.ts +0 -9
- package/dist/telemetry/tracing.d.ts.map +1 -1
- package/dist/telemetry/tracing.js +0 -36
- package/dist/telemetry/tracing.js.map +1 -1
- package/dist/types/dsl/index.d.ts +1 -12
- package/dist/types/dsl/index.d.ts.map +1 -1
- package/dist/types/runtime.d.ts +8 -0
- package/dist/types/runtime.d.ts.map +1 -1
- package/dist/types/scanner.d.ts +0 -15
- package/dist/types/scanner.d.ts.map +1 -1
- package/dist/utils/event-catalog.d.ts +91 -166
- package/dist/utils/event-catalog.d.ts.map +1 -1
- package/dist/utils/event-catalog.js +13 -18
- package/dist/utils/event-catalog.js.map +1 -1
- package/dist/utils/keyed-mutex.d.ts +3 -2
- package/dist/utils/keyed-mutex.d.ts.map +1 -1
- package/dist/utils/keyed-mutex.js +3 -2
- package/dist/utils/keyed-mutex.js.map +1 -1
- package/dist/utils/logger.d.ts +1 -4
- package/dist/utils/logger.d.ts.map +1 -1
- package/dist/utils/logger.js.map +1 -1
- package/dist/validate/recipe-checks.d.ts.map +1 -1
- package/dist/validate/recipe-checks.js +2 -2
- package/dist/validate/recipe-checks.js.map +1 -1
- package/openclaw.plugin.json +5 -1
- package/package.json +1 -1
- package/dist/actions/skipped-signal-results.d.ts +0 -25
- package/dist/actions/skipped-signal-results.d.ts.map +0 -1
- package/dist/actions/skipped-signal-results.js +0 -71
- package/dist/actions/skipped-signal-results.js.map +0 -1
- package/dist/runtime-api/intake/ingest-request.d.ts +0 -17
- package/dist/runtime-api/intake/ingest-request.d.ts.map +0 -1
- package/dist/runtime-api/intake/ingest-request.js +0 -34
- package/dist/runtime-api/intake/ingest-request.js.map +0 -1
- package/dist/runtime-api/intake/scaffold-tick-router.d.ts +0 -39
- package/dist/runtime-api/intake/scaffold-tick-router.d.ts.map +0 -1
- package/dist/runtime-api/intake/scaffold-tick-router.js +0 -122
- package/dist/runtime-api/intake/scaffold-tick-router.js.map +0 -1
- package/dist/scanners/external/scaffold/tick_facts.py +0 -130
- package/dist/scanners/external/scaffold/ulid.py +0 -58
- package/dist/telemetry/live-telemetry.d.ts +0 -238
- package/dist/telemetry/live-telemetry.d.ts.map +0 -1
- package/dist/telemetry/live-telemetry.js +0 -853
- package/dist/telemetry/live-telemetry.js.map +0 -1
- package/dist/telemetry/scanner-stats.d.ts +0 -143
- package/dist/telemetry/scanner-stats.d.ts.map +0 -1
- package/dist/telemetry/scanner-stats.js +0 -426
- package/dist/telemetry/scanner-stats.js.map +0 -1
- package/dist/telemetry/scanner-tick-feed.d.ts +0 -87
- package/dist/telemetry/scanner-tick-feed.d.ts.map +0 -1
- package/dist/telemetry/scanner-tick-feed.js +0 -48
- package/dist/telemetry/scanner-tick-feed.js.map +0 -1
- package/dist/telemetry/strategy-topology.d.ts +0 -99
- package/dist/telemetry/strategy-topology.d.ts.map +0 -1
- package/dist/telemetry/strategy-topology.js +0 -93
- package/dist/telemetry/strategy-topology.js.map +0 -1
- package/dist/telemetry/telemetry-publisher.d.ts +0 -63
- package/dist/telemetry/telemetry-publisher.d.ts.map +0 -1
- package/dist/telemetry/telemetry-publisher.js +0 -229
- package/dist/telemetry/telemetry-publisher.js.map +0 -1
- package/dist/telemetry/tick-frame.d.ts +0 -212
- package/dist/telemetry/tick-frame.d.ts.map +0 -1
- package/dist/telemetry/tick-frame.js +0 -421
- package/dist/telemetry/tick-frame.js.map +0 -1
- package/dist/telemetry/timeline-buffer.d.ts +0 -95
- package/dist/telemetry/timeline-buffer.d.ts.map +0 -1
- package/dist/telemetry/timeline-buffer.js +0 -237
- package/dist/telemetry/timeline-buffer.js.map +0 -1
- package/dist/utils/telemetry-required-log.d.ts +0 -60
- package/dist/utils/telemetry-required-log.d.ts.map +0 -1
- package/dist/utils/telemetry-required-log.js +0 -105
- package/dist/utils/telemetry-required-log.js.map +0 -1
- package/dist/utils/ulid.d.ts +0 -9
- package/dist/utils/ulid.d.ts.map +0 -1
- package/dist/utils/ulid.js +0 -43
- 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
|
-
|
|
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(
|
|
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 ${
|
|
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 ${
|
|
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 ${
|
|
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(
|
|
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":"
|
|
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 <
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
* `resolvePackageName()` (e.g. `@senpi-ai/runtime` in prod,
|
|
8
|
-
*
|
|
9
|
-
* version-source poll ensures the install and the version
|
|
10
|
-
* same npm
|
|
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
|
|
14
|
+
* Conservative npm spec pattern: `<name>` or `<name>@<selector>`.
|
|
15
15
|
*
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
*
|
|
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 =
|
|
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
|
|
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":"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,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,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
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/runtime/auto-update/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -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+
|
|
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"}
|