@senpi/runtime 3.0.94 → 3.0.96

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.
@@ -22,7 +22,7 @@
22
22
  * damage afterwards.
23
23
  */
24
24
  import { resolveEffectiveConfig } from "./effective-config.js";
25
- import { buildUpdateReport, } from "./update-report.js";
25
+ import { buildUpdateReport, diffRecipes, } from "./update-report.js";
26
26
  /** Codes this module raises. Distinct from validate's set: these are update-time decisions. */
27
27
  export const UPDATE_CODE = {
28
28
  walletChanged: "E_UPDATE_WALLET_CHANGED",
@@ -57,7 +57,18 @@ function scannerNames(config) {
57
57
  */
58
58
  function externalScannerNames(config) {
59
59
  return (config.scanners ?? [])
60
- .filter((s) => String(s.type) === "external_scanner")
60
+ .filter((s) => {
61
+ const scanner = s;
62
+ if (String(scanner.type) !== "external_scanner")
63
+ return false;
64
+ // The SAME predicate `selectScanners` uses (intake-mount.ts): an external scanner missing
65
+ // `path` or `entrypoint` is skipped by the launcher, so it occupies no index and cannot
66
+ // orphan anything. Counting it here would model a different sequence from the one the state
67
+ // directories are named after — and the mismatch is silent in the dangerous direction:
68
+ // filling in a stub's `path` later shifts every scanner below it while this check, seeing
69
+ // the same names in the same order, reports no move at all.
70
+ return Boolean(scanner.path) && Boolean(scanner.entrypoint);
71
+ })
61
72
  .map((s) => String(s.name));
62
73
  }
63
74
  /**
@@ -184,6 +195,7 @@ export function planUpdate(inputs) {
184
195
  openPositions: inputs.openPositions,
185
196
  closedGates: inputs.closedGates,
186
197
  exitPresetChanged: exitPresetChanged(inputs.current, inputs.next),
198
+ changedFields: diffRecipes(inputs.current, inputs.next),
187
199
  ...(slotsOf(inputs.next) !== undefined ? { slots: slotsOf(inputs.next) } : {}),
188
200
  }),
189
201
  };
@@ -1 +1 @@
1
- {"version":3,"file":"update-plan.js","sourceRoot":"","sources":["../../src/runtime/update-plan.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"update-plan.js","sourceRoot":"","sources":["../../src/runtime/update-plan.ts"],"names":[],"mappings":"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"}
@@ -32,7 +32,9 @@ export interface UpdateGatewayContext extends UpdateHandlerDeps {
32
32
  * planning. Present together or not at all — recording without swapping, or the reverse, is not a
33
33
  * coherent half-state to offer.
34
34
  */
35
- applyToRuntime?(runtimeId: string, next: RuntimeConfig, recipe: RecipeSource): Promise<void>;
35
+ applyToRuntime?(runtimeId: string, next: RuntimeConfig, recipe: RecipeSource): Promise<void | {
36
+ scannersUnwired?: string;
37
+ }>;
36
38
  writeRegistry?(runtimeId: string, recipe: RecipeSource): Promise<void>;
37
39
  /**
38
40
  * Called once an apply has FULLY succeeded — swapped and recorded.
@@ -1 +1 @@
1
- {"version":3,"file":"update-register.d.ts","sourceRoot":"","sources":["../../src/runtime/update-register.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAIH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAGL,KAAK,YAAY,EAEjB,KAAK,iBAAiB,EACvB,MAAM,qBAAqB,CAAC;AAG7B;;;;;;;GAOG;AACH,MAAM,WAAW,oBAAqB,SAAQ,iBAAiB;IAC7D;;;;;;;OAOG;IACH,cAAc,CAAC,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7F,aAAa,CAAC,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACvE;;;;;;;OAOG;IACH,SAAS,CAAC,CAAC,IAAI,EAAE;QACf,SAAS,EAAE,MAAM,CAAC;QAClB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,MAAM,EAAE,YAAY,CAAC;QACrB,cAAc,EAAE,YAAY,CAAC;QAC7B,iBAAiB,EAAE,OAAO,CAAC;QAC3B,aAAa,EAAE,MAAM,CAAC;QACtB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,GAAG,IAAI,CAAC;CACV;AAED,UAAU,UAAU;IAClB,qBAAqB,CACnB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,CAAC,GAAG,EAAE;QACb,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACjC,OAAO,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;KACpE,KAAK,OAAO,CAAC,IAAI,CAAC,EACnB,IAAI,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GACxB,IAAI,CAAC;CACT;AAsDD,wBAAgB,2BAA2B,CAAC,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE,oBAAoB,GAAG,IAAI,CA8HhG"}
1
+ {"version":3,"file":"update-register.d.ts","sourceRoot":"","sources":["../../src/runtime/update-register.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAIH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAGL,KAAK,YAAY,EAEjB,KAAK,iBAAiB,EACvB,MAAM,qBAAqB,CAAC;AAG7B;;;;;;;GAOG;AACH,MAAM,WAAW,oBAAqB,SAAQ,iBAAiB;IAC7D;;;;;;;OAOG;IACH,cAAc,CAAC,CACb,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,aAAa,EACnB,MAAM,EAAE,YAAY,GACnB,OAAO,CAAC,IAAI,GAAG;QAAE,eAAe,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAChD,aAAa,CAAC,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACvE;;;;;;;OAOG;IACH,SAAS,CAAC,CAAC,IAAI,EAAE;QACf,SAAS,EAAE,MAAM,CAAC;QAClB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,MAAM,EAAE,YAAY,CAAC;QACrB,cAAc,EAAE,YAAY,CAAC;QAC7B,iBAAiB,EAAE,OAAO,CAAC;QAC3B,aAAa,EAAE,MAAM,CAAC;QACtB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,GAAG,IAAI,CAAC;CACV;AAED,UAAU,UAAU;IAClB,qBAAqB,CACnB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,CAAC,GAAG,EAAE;QACb,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACjC,OAAO,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;KACpE,KAAK,OAAO,CAAC,IAAI,CAAC,EACnB,IAAI,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GACxB,IAAI,CAAC;CACT;AAsDD,wBAAgB,2BAA2B,CAAC,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE,oBAAoB,GAAG,IAAI,CA8HhG"}
@@ -1 +1 @@
1
- {"version":3,"file":"update-register.js","sourceRoot":"","sources":["../../src/runtime/update-register.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"update-register.js","sourceRoot":"","sources":["../../src/runtime/update-register.ts"],"names":[],"mappings":"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"}
@@ -66,12 +66,24 @@ export interface UpdateReportInputs {
66
66
  /**
67
67
  * The two recipes describe the same strategy.
68
68
  *
69
- * Not the same as "nothing to do": an apply still rebuilds the components, and every external
70
- * scanner re-reads its entrypoint on the next spawn, which is how a pure code change reaches a
71
- * running strategy. The report has to say that, because "no changes" over a recipe the user just
72
- * edited the scanner beside it reads as "your edit did nothing".
69
+ * Not the same as "nothing to do": an apply rebuilds the components AND restarts the external
70
+ * scanner children, which is how a pure code change reaches a running strategy — a scanner reads
71
+ * its entrypoint at spawn, so the restart is the delivery. The report has to say that, because
72
+ * "no changes" over a recipe the user just edited the scanner beside reads as "your edit did
73
+ * nothing".
73
74
  */
74
75
  recipeUnchanged?: boolean;
76
+ /** Every leaf this update moves. Empty when the two recipes agree. */
77
+ changedFields?: readonly ChangedField[];
78
+ /**
79
+ * Set when the recipe applied but the external scanner children could not be restarted.
80
+ *
81
+ * The apply succeeded — the new configuration is live in-process — so this is not a failure. But
82
+ * the outgoing children were already stopped, so for a strategy whose entries come from an
83
+ * external scanner it is a silent trading halt, and a report that says only "Updated" would be
84
+ * the last thing anyone read before wondering why nothing traded.
85
+ */
86
+ scannersUnwired?: string;
75
87
  }
76
88
  export interface UpdateReport extends UpdateReportInputs {
77
89
  /** Notes present after the update that were not present before — the newly-ineffective fields. */
@@ -84,6 +96,23 @@ export interface UpdateReport extends UpdateReportInputs {
84
96
  */
85
97
  slotHeadroom?: number;
86
98
  }
99
+ /** One leaf of the recipe that this update moves. */
100
+ export interface ChangedField {
101
+ /** Dotted path, with named list entries keyed by name rather than index. */
102
+ path: string;
103
+ kind: "changed" | "added" | "removed";
104
+ before?: unknown;
105
+ after?: unknown;
106
+ }
107
+ /**
108
+ * Every leaf the new recipe moves, relative to the running one.
109
+ *
110
+ * The report used to describe consequences — masked fields, clamped values, open positions — and
111
+ * never the change itself, so a plan over a recipe that altered eleven fields rendered identically
112
+ * to a plan over an unchanged one. For a verb that plans by default so a human can check the change
113
+ * before committing it, that left nothing to check.
114
+ */
115
+ export declare function diffRecipes(before: unknown, after: unknown): ChangedField[];
87
116
  export declare function buildUpdateReport(inputs: UpdateReportInputs): UpdateReport;
88
117
  /**
89
118
  * The human rendering. Ordered by what a reader needs first: what changed, then what it will not
@@ -1 +1 @@
1
- {"version":3,"file":"update-report.d.ts","sourceRoot":"","sources":["../../src/runtime/update-report.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAE5E,yFAAyF;AACzF,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,4CAA4C;IAC5C,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC;IACb,gGAAgG;IAChG,cAAc,EAAE,OAAO,CAAC;CACzB;AAED,qFAAqF;AACrF,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,6FAA6F;IAC7F,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,eAAe,CAAC;IACxB,KAAK,EAAE,eAAe,CAAC;IACvB,aAAa,EAAE,SAAS,gBAAgB,EAAE,CAAC;IAC3C,+DAA+D;IAC/D,WAAW,EAAE,SAAS,YAAY,EAAE,CAAC;IACrC,0EAA0E;IAC1E,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,yFAAyF;IACzF,iBAAiB,EAAE,OAAO,CAAC;IAC3B;;;;;;;OAOG;IACH,aAAa,CAAC,EAAE,SAAS,OAAO,EAAE,CAAC;IACnC;;;;;;;OAOG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,WAAW,YAAa,SAAQ,kBAAkB;IACtD,kGAAkG;IAClG,gBAAgB,EAAE,aAAa,EAAE,CAAC;IAClC;;;;;OAKG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAUD,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,kBAAkB,GAAG,YAAY,CAY1E;AAiBD;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,CAqG/D"}
1
+ {"version":3,"file":"update-report.d.ts","sourceRoot":"","sources":["../../src/runtime/update-report.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAE5E,yFAAyF;AACzF,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,4CAA4C;IAC5C,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC;IACb,gGAAgG;IAChG,cAAc,EAAE,OAAO,CAAC;CACzB;AAED,qFAAqF;AACrF,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,6FAA6F;IAC7F,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,eAAe,CAAC;IACxB,KAAK,EAAE,eAAe,CAAC;IACvB,aAAa,EAAE,SAAS,gBAAgB,EAAE,CAAC;IAC3C,+DAA+D;IAC/D,WAAW,EAAE,SAAS,YAAY,EAAE,CAAC;IACrC,0EAA0E;IAC1E,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,yFAAyF;IACzF,iBAAiB,EAAE,OAAO,CAAC;IAC3B;;;;;;;OAOG;IACH,aAAa,CAAC,EAAE,SAAS,OAAO,EAAE,CAAC;IACnC;;;;;;;;OAQG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,sEAAsE;IACtE,aAAa,CAAC,EAAE,SAAS,YAAY,EAAE,CAAC;IACxC;;;;;;;OAOG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,YAAa,SAAQ,kBAAkB;IACtD,kGAAkG;IAClG,gBAAgB,EAAE,aAAa,EAAE,CAAC;IAClC;;;;;OAKG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,qDAAqD;AACrD,MAAM,WAAW,YAAY;IAC3B,4EAA4E;IAC5E,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,SAAS,GAAG,OAAO,GAAG,SAAS,CAAC;IACtC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAiDD;;;;;;;GAOG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,GAAG,YAAY,EAAE,CAI3E;AAUD,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,kBAAkB,GAAG,YAAY,CAY1E;AAiBD;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,CAgI/D"}
@@ -23,6 +23,63 @@
23
23
  * it was handed. That keeps the whole thing golden-file testable, and it means `--dry-run` and a
24
24
  * real apply produce the identical document apart from {@link UpdateReport.applied}.
25
25
  */
26
+ /**
27
+ * Values are rendered back to the reader, and a resolved recipe can carry a credential — a
28
+ * notification token, an API key pulled in from `${VAR}`. Printing "what changed" must not be the
29
+ * thing that prints a secret into a terminal and a CI log, so anything whose key looks like one is
30
+ * reported as changed without its value.
31
+ */
32
+ const SECRETISH = /(token|secret|password|passwd|api[-_]?key|private[-_]?key|credential|auth)/i;
33
+ const isObj = (v) => typeof v === "object" && v !== null && !Array.isArray(v);
34
+ /** `name`-keyed where the list has names (scanners, actions); index-keyed otherwise. */
35
+ function listKey(entry, index) {
36
+ const name = isObj(entry) ? entry["name"] : undefined;
37
+ return typeof name === "string" && name.length > 0 ? name : String(index);
38
+ }
39
+ function walk(before, after, path, out) {
40
+ if (Object.is(before, after))
41
+ return;
42
+ if (Array.isArray(before) && Array.isArray(after)) {
43
+ const keys = [];
44
+ const b = new Map();
45
+ const a = new Map();
46
+ before.forEach((v, i) => { const k = listKey(v, i); b.set(k, v); keys.push(k); });
47
+ after.forEach((v, i) => { const k = listKey(v, i); a.set(k, v); if (!keys.includes(k))
48
+ keys.push(k); });
49
+ for (const k of keys)
50
+ walk(b.get(k), a.get(k), `${path}[${k}]`, out);
51
+ return;
52
+ }
53
+ if (isObj(before) && isObj(after)) {
54
+ for (const k of new Set([...Object.keys(before), ...Object.keys(after)])) {
55
+ walk(before[k], after[k], path ? `${path}.${k}` : k, out);
56
+ }
57
+ return;
58
+ }
59
+ const redact = SECRETISH.test(path);
60
+ if (before === undefined) {
61
+ out.push({ path, kind: "added", ...(redact ? {} : { after }) });
62
+ }
63
+ else if (after === undefined) {
64
+ out.push({ path, kind: "removed", ...(redact ? {} : { before }) });
65
+ }
66
+ else if (JSON.stringify(before) !== JSON.stringify(after)) {
67
+ out.push({ path, kind: "changed", ...(redact ? {} : { before, after }) });
68
+ }
69
+ }
70
+ /**
71
+ * Every leaf the new recipe moves, relative to the running one.
72
+ *
73
+ * The report used to describe consequences — masked fields, clamped values, open positions — and
74
+ * never the change itself, so a plan over a recipe that altered eleven fields rendered identically
75
+ * to a plan over an unchanged one. For a verb that plans by default so a human can check the change
76
+ * before committing it, that left nothing to check.
77
+ */
78
+ export function diffRecipes(before, after) {
79
+ const out = [];
80
+ walk(before, after, "", out);
81
+ return out.sort((x, y) => x.path.localeCompare(y.path));
82
+ }
26
83
  function noteKey(n) {
27
84
  // `authored` is part of the identity, and that is the headline case rather than a detail: a user
28
85
  // who edits `trading_risk: moderate` to `aggressive` while `default_leverage` masks it has changed
@@ -65,6 +122,25 @@ export function renderUpdateReport(report) {
65
122
  // means "this was a plan". The distinction is the difference between editing again and
66
123
  // trusting the plan.
67
124
  `Dry run for ${report.runtimeId} — nothing has been applied.`);
125
+ // First, because it is what the reader came for: a plan that does not name the change cannot be
126
+ // checked against the intent behind it.
127
+ const changed = report.changedFields ?? [];
128
+ if (changed.length > 0) {
129
+ const SHOWN = 40;
130
+ const fmt = (v) => v === undefined ? "(hidden)" : typeof v === "string" ? v : JSON.stringify(v);
131
+ out.push("", changed.length === 1 ? "This changes 1 field:" : `This changes ${changed.length} fields:`);
132
+ for (const c of changed.slice(0, SHOWN)) {
133
+ if (c.kind === "added")
134
+ out.push(` + ${c.path}: ${fmt(c.after)}`);
135
+ else if (c.kind === "removed")
136
+ out.push(` - ${c.path} (was ${fmt(c.before)})`);
137
+ else
138
+ out.push(` ${c.path}: ${fmt(c.before)} → ${fmt(c.after)}`);
139
+ }
140
+ if (changed.length > SHOWN) {
141
+ out.push(` … and ${changed.length - SHOWN} more`);
142
+ }
143
+ }
68
144
  if (report.newlyIneffective.length > 0) {
69
145
  out.push("", "These fields have no effect as written:");
70
146
  for (const n of report.newlyIneffective) {
@@ -106,9 +182,9 @@ export function renderUpdateReport(report) {
106
182
  }
107
183
  if (report.recipeUnchanged === true) {
108
184
  out.push("", report.applied
109
- ? "The recipe is unchanged. Components were rebuilt, so any edited scanner code is now live."
110
- : "The recipe is unchanged. Applying would still rebuild the components, which is how edited " +
111
- "scanner code reaches a running strategy.");
185
+ ? "The recipe is unchanged. Components were rebuilt and the external scanners restarted, so any edited scanner code is now live."
186
+ : "The recipe is unchanged. Applying would still rebuild the components and restart the " +
187
+ "external scanners, which is how edited scanner code reaches a running strategy.");
112
188
  }
113
189
  if (report.applyBlockers && report.applyBlockers.length > 0) {
114
190
  out.push("", report.applied ? "Applied despite:" : "This plan cannot be applied until:");
@@ -124,6 +200,9 @@ export function renderUpdateReport(report) {
124
200
  if (report.closedGates.length === 0) {
125
201
  out.push("", "Guardrail state not checked — each gate is derived from live venue history, and reading them", "turns a plan into a network round trip per gate. Thresholds apply on the next signal either way.");
126
202
  }
203
+ if (report.applied && report.scannersUnwired !== undefined) {
204
+ out.push("", "WARNING — the recipe applied, but this runtime's external scanners are NOT running:", ` ${report.scannersUnwired}`, " No signals will arrive until they are restarted. Check `openclaw senpi scanner`.");
205
+ }
127
206
  if (report.applied) {
128
207
  // Both of these look like regressions in the minute after an update and are neither.
129
208
  out.push("", "Expected for the next minute or so: scanners read `unknown` until each reports in, and risk", "gates may briefly refuse on a cold connection. Neither is a fault.");
@@ -1 +1 @@
1
- {"version":3,"file":"update-report.js","sourceRoot":"","sources":["../../src/runtime/update-report.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAoEH,SAAS,OAAO,CAAC,CAAgB;IAC/B,iGAAiG;IACjG,mGAAmG;IACnG,kGAAkG;IAClG,+CAA+C;IAC/C,OAAO,GAAG,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,YAAY,IAAI,EAAE,KAAK,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC;AAClG,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,MAA0B;IAC1D,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;IAC7D,MAAM,gBAAgB,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAChD,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAClF,CAAC;IACF,OAAO;QACL,GAAG,MAAM;QACT,gBAAgB;QAChB,GAAG,CAAC,MAAM,CAAC,KAAK,KAAK,SAAS;YAC5B,CAAC,CAAC,EAAE,YAAY,EAAE,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,aAAa,CAAC,MAAM,EAAE;YAC9D,CAAC,CAAC,EAAE,CAAC;KACR,CAAC;AACJ,CAAC;AAED,SAAS,KAAK,CAAC,CAAS;IACtB,gGAAgG;IAChG,gGAAgG;IAChG,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1D,OAAO,CAAC,CAAC,cAAc,CAAC,OAAO,EAAE,EAAE,qBAAqB,EAAE,MAAM,EAAE,CAAC,CAAC;AACtE,CAAC;AAED,SAAS,YAAY,CAAC,CAAmB;IACvC,MAAM,KAAK,GAAG,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,CAAC;IAClF,OAAO,CACL,KAAK,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;QAChD,SAAS,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,WAAW,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,OAAO,KAAK,GAAG,CACpG,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAAC,MAAoB;IACrD,MAAM,GAAG,GAAa,EAAE,CAAC;IACzB,GAAG,CAAC,IAAI,CACN,MAAM,CAAC,OAAO;QACZ,CAAC,CAAC,WAAW,MAAM,CAAC,SAAS,GAAG;QAChC,CAAC,CAAC,0FAA0F;YAC1F,4FAA4F;YAC5F,uFAAuF;YACvF,qBAAqB;YACrB,eAAe,MAAM,CAAC,SAAS,8BAA8B,CAClE,CAAC;IAEF,IAAI,MAAM,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,yCAAyC,CAAC,CAAC;QACxD,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,gBAAgB,EAAE,CAAC;YACxC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;QAC5C,CAAC;IACH,CAAC;IAED,gGAAgG;IAChG,4CAA4C;IAC5C,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;IACtG,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CACvC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAChE,CAAC;IACF,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,6BAA6B,CAAC,CAAC;QAC5C,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;YACxB,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,KAAK,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;QAC5F,CAAC;IACH,CAAC;IAED,IAAI,MAAM,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpC,0FAA0F;QAC1F,+FAA+F;QAC/F,GAAG,CAAC,IAAI,CACN,EAAE,EACF,MAAM,CAAC,iBAAiB;YACtB,CAAC,CAAC,iDAAiD,MAAM,CAAC,aAAa,CAAC,MAAM,0DAA0D;YACxI,CAAC,CAAC,GAAG,MAAM,CAAC,aAAa,CAAC,MAAM,+CAA+C,CAClF,CAAC;QACF,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,aAAa;YAAE,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;QAChE,IAAI,MAAM,CAAC,iBAAiB,EAAE,CAAC;YAC7B,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,uFAAuF,CAAC,CAAC;QACxG,CAAC;IACH,CAAC;SAAM,IAAI,MAAM,CAAC,iBAAiB,EAAE,CAAC;QACpC,uFAAuF;QACvF,qFAAqF;QACrF,6FAA6F;QAC7F,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,0EAA0E,CAAC,CAAC;IAC3F,CAAC;IAED,IAAI,MAAM,CAAC,YAAY,KAAK,SAAS,IAAI,MAAM,CAAC,YAAY,GAAG,CAAC,EAAE,CAAC;QACjE,MAAM,IAAI,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC;QAClC,GAAG,CAAC,IAAI,CACN,EAAE,EACF,sBAAsB,IAAI,KAAK,MAAM,CAAC,KAAK,wBAAwB,MAAM,CAAC,aAAa,CAAC,MAAM,SAAS;YACrG,wBAAwB,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,GAAG,IAAI,kBAAkB,GAAG,CAC1F,CAAC;IACJ,CAAC;IAED,IAAI,MAAM,CAAC,eAAe,KAAK,IAAI,EAAE,CAAC;QACpC,GAAG,CAAC,IAAI,CACN,EAAE,EACF,MAAM,CAAC,OAAO;YACZ,CAAC,CAAC,2FAA2F;YAC7F,CAAC,CAAC,4FAA4F;gBAC5F,0CAA0C,CAC/C,CAAC;IACJ,CAAC;IAED,IAAI,MAAM,CAAC,aAAa,IAAI,MAAM,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5D,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,oCAAoC,CAAC,CAAC;QACzF,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,aAAa,EAAE,CAAC;YACrC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;QAC1C,CAAC;IACH,CAAC;IAED,IAAI,MAAM,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAClC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,yEAAyE,CAAC,CAAC;QACxF,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,WAAW;YAAE,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;IAC5E,CAAC;IAED,IAAI,MAAM,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACpC,GAAG,CAAC,IAAI,CACN,EAAE,EACF,8FAA8F,EAC9F,kGAAkG,CACnG,CAAC;IACJ,CAAC;IAED,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,qFAAqF;QACrF,GAAG,CAAC,IAAI,CACN,EAAE,EACF,6FAA6F,EAC7F,oEAAoE,CACrE,CAAC;IACJ,CAAC;IAED,OAAO,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACxB,CAAC"}
1
+ {"version":3,"file":"update-report.js","sourceRoot":"","sources":["../../src/runtime/update-report.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@
2
2
  "id": "runtime",
3
3
  "name": "Senpi Runtime",
4
4
  "description": "Senpi runtime plugin for OpenClaw. Orchestrates scanners, LLM-based trade decisions, and a DSL trailing stop-loss exit engine.",
5
- "version": "3.0.94",
5
+ "version": "3.0.96",
6
6
  "commandAliases": [
7
7
  {
8
8
  "name": "senpi"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@senpi/runtime",
3
- "version": "3.0.94",
3
+ "version": "3.0.96",
4
4
  "description": "Senpi runtime plugin for OpenClaw",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",