@senpi/runtime 3.0.59 → 3.0.63

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 (151) hide show
  1. package/README.md +73 -2
  2. package/dist/actions/decision-engine.d.ts +0 -2
  3. package/dist/actions/decision-engine.d.ts.map +1 -1
  4. package/dist/actions/decision-engine.js +1 -79
  5. package/dist/actions/decision-engine.js.map +1 -1
  6. package/dist/cli/deploy-render.d.ts +91 -0
  7. package/dist/cli/deploy-render.d.ts.map +1 -0
  8. package/dist/cli/deploy-render.js +216 -0
  9. package/dist/cli/deploy-render.js.map +1 -0
  10. package/dist/cli/guide-commands.d.ts.map +1 -1
  11. package/dist/cli/guide-commands.js +78 -6
  12. package/dist/cli/guide-commands.js.map +1 -1
  13. package/dist/cli/senpi-commands.d.ts +6 -1
  14. package/dist/cli/senpi-commands.d.ts.map +1 -1
  15. package/dist/cli/senpi-commands.js +244 -8
  16. package/dist/cli/senpi-commands.js.map +1 -1
  17. package/dist/cli/validate-command.d.ts.map +1 -1
  18. package/dist/cli/validate-command.js +32 -1
  19. package/dist/cli/validate-command.js.map +1 -1
  20. package/dist/deploy/deadlines.d.ts +47 -0
  21. package/dist/deploy/deadlines.d.ts.map +1 -0
  22. package/dist/deploy/deadlines.js +56 -0
  23. package/dist/deploy/deadlines.js.map +1 -0
  24. package/dist/deploy/error-text.d.ts +25 -0
  25. package/dist/deploy/error-text.d.ts.map +1 -0
  26. package/dist/deploy/error-text.js +42 -0
  27. package/dist/deploy/error-text.js.map +1 -0
  28. package/dist/deploy/funding.d.ts +87 -0
  29. package/dist/deploy/funding.d.ts.map +1 -0
  30. package/dist/deploy/funding.js +229 -0
  31. package/dist/deploy/funding.js.map +1 -0
  32. package/dist/deploy/install-gate-runner.d.ts +12 -0
  33. package/dist/deploy/install-gate-runner.d.ts.map +1 -0
  34. package/dist/deploy/install-gate-runner.js +17 -0
  35. package/dist/deploy/install-gate-runner.js.map +1 -0
  36. package/dist/deploy/job.d.ts +199 -0
  37. package/dist/deploy/job.d.ts.map +1 -0
  38. package/dist/deploy/job.js +463 -0
  39. package/dist/deploy/job.js.map +1 -0
  40. package/dist/deploy/min-budget.d.ts +68 -0
  41. package/dist/deploy/min-budget.d.ts.map +1 -0
  42. package/dist/deploy/min-budget.js +297 -0
  43. package/dist/deploy/min-budget.js.map +1 -0
  44. package/dist/deploy/orchestrator.d.ts +305 -0
  45. package/dist/deploy/orchestrator.d.ts.map +1 -0
  46. package/dist/deploy/orchestrator.js +2910 -0
  47. package/dist/deploy/orchestrator.js.map +1 -0
  48. package/dist/deploy/package.d.ts +130 -0
  49. package/dist/deploy/package.d.ts.map +1 -0
  50. package/dist/deploy/package.js +351 -0
  51. package/dist/deploy/package.js.map +1 -0
  52. package/dist/deploy/proof-gate.d.ts +82 -0
  53. package/dist/deploy/proof-gate.d.ts.map +1 -0
  54. package/dist/deploy/proof-gate.js +269 -0
  55. package/dist/deploy/proof-gate.js.map +1 -0
  56. package/dist/deploy/python-float.d.ts +34 -0
  57. package/dist/deploy/python-float.d.ts.map +1 -0
  58. package/dist/deploy/python-float.js +46 -0
  59. package/dist/deploy/python-float.js.map +1 -0
  60. package/dist/deploy/recheck-commands.d.ts +50 -0
  61. package/dist/deploy/recheck-commands.d.ts.map +1 -0
  62. package/dist/deploy/recheck-commands.js +59 -0
  63. package/dist/deploy/recheck-commands.js.map +1 -0
  64. package/dist/deploy/register.d.ts +99 -0
  65. package/dist/deploy/register.d.ts.map +1 -0
  66. package/dist/deploy/register.js +689 -0
  67. package/dist/deploy/register.js.map +1 -0
  68. package/dist/deploy/taxonomy.d.ts +24 -0
  69. package/dist/deploy/taxonomy.d.ts.map +1 -0
  70. package/dist/deploy/taxonomy.js +31 -0
  71. package/dist/deploy/taxonomy.js.map +1 -0
  72. package/dist/index.d.ts.map +1 -1
  73. package/dist/index.js +244 -132
  74. package/dist/index.js.map +1 -1
  75. package/dist/runtime/strategy-registry.d.ts +8 -0
  76. package/dist/runtime/strategy-registry.d.ts.map +1 -1
  77. package/dist/runtime/strategy-registry.js +14 -1
  78. package/dist/runtime/strategy-registry.js.map +1 -1
  79. package/dist/runtime-api/intake/intake-mount.d.ts.map +1 -1
  80. package/dist/runtime-api/intake/intake-mount.js +7 -4
  81. package/dist/runtime-api/intake/intake-mount.js.map +1 -1
  82. package/dist/scanners/implementations/market-regime.d.ts +1 -1
  83. package/dist/senpi/client.d.ts +58 -4
  84. package/dist/senpi/client.d.ts.map +1 -1
  85. package/dist/senpi/client.js +192 -15
  86. package/dist/senpi/client.js.map +1 -1
  87. package/dist/senpi/strategy-status.d.ts +32 -0
  88. package/dist/senpi/strategy-status.d.ts.map +1 -0
  89. package/dist/senpi/strategy-status.js +70 -0
  90. package/dist/senpi/strategy-status.js.map +1 -0
  91. package/dist/senpi/types.d.ts +47 -3
  92. package/dist/senpi/types.d.ts.map +1 -1
  93. package/dist/skills-manager/manifest.js +1 -1
  94. package/dist/skills-manager/skills-manifest.json +1 -1
  95. package/dist/telemetry/metrics.d.ts +23 -0
  96. package/dist/telemetry/metrics.d.ts.map +1 -1
  97. package/dist/telemetry/metrics.js +65 -0
  98. package/dist/telemetry/metrics.js.map +1 -1
  99. package/dist/types/strategy.d.ts +9 -1
  100. package/dist/types/strategy.d.ts.map +1 -1
  101. package/dist/universe/package-universe.d.ts +97 -0
  102. package/dist/universe/package-universe.d.ts.map +1 -0
  103. package/dist/universe/package-universe.js +275 -0
  104. package/dist/universe/package-universe.js.map +1 -0
  105. package/dist/validate/codes.d.ts +20 -0
  106. package/dist/validate/codes.d.ts.map +1 -1
  107. package/dist/validate/codes.js +36 -0
  108. package/dist/validate/codes.js.map +1 -1
  109. package/dist/validate/import-stage.js +5 -5
  110. package/dist/validate/import-stage.js.map +1 -1
  111. package/dist/validate/index.d.ts +1 -1
  112. package/dist/validate/index.d.ts.map +1 -1
  113. package/dist/validate/index.js.map +1 -1
  114. package/dist/validate/install-gate.d.ts.map +1 -1
  115. package/dist/validate/install-gate.js +10 -2
  116. package/dist/validate/install-gate.js.map +1 -1
  117. package/dist/validate/live-instruments.d.ts +44 -0
  118. package/dist/validate/live-instruments.d.ts.map +1 -0
  119. package/dist/validate/live-instruments.js +71 -0
  120. package/dist/validate/live-instruments.js.map +1 -0
  121. package/dist/validate/live-stage.js +5 -5
  122. package/dist/validate/live-stage.js.map +1 -1
  123. package/dist/validate/proof.d.ts +11 -1
  124. package/dist/validate/proof.d.ts.map +1 -1
  125. package/dist/validate/proof.js +7 -6
  126. package/dist/validate/proof.js.map +1 -1
  127. package/dist/validate/recipe-checks.d.ts.map +1 -1
  128. package/dist/validate/recipe-checks.js +6 -4
  129. package/dist/validate/recipe-checks.js.map +1 -1
  130. package/dist/validate/run.d.ts +5 -0
  131. package/dist/validate/run.d.ts.map +1 -1
  132. package/dist/validate/run.js +10 -1
  133. package/dist/validate/run.js.map +1 -1
  134. package/dist/validate/target.d.ts +41 -0
  135. package/dist/validate/target.d.ts.map +1 -1
  136. package/dist/validate/target.js +192 -16
  137. package/dist/validate/target.js.map +1 -1
  138. package/dist/validate/universe-stage.d.ts +71 -0
  139. package/dist/validate/universe-stage.d.ts.map +1 -0
  140. package/dist/validate/universe-stage.js +183 -0
  141. package/dist/validate/universe-stage.js.map +1 -0
  142. package/openclaw.plugin.json +1 -1
  143. package/package.json +1 -1
  144. package/dist/runtime/managed-wallet-guard.d.ts +0 -47
  145. package/dist/runtime/managed-wallet-guard.d.ts.map +0 -1
  146. package/dist/runtime/managed-wallet-guard.js +0 -106
  147. package/dist/runtime/managed-wallet-guard.js.map +0 -1
  148. package/dist/runtime/protection-nudge.d.ts +0 -67
  149. package/dist/runtime/protection-nudge.d.ts.map +0 -1
  150. package/dist/runtime/protection-nudge.js +0 -244
  151. package/dist/runtime/protection-nudge.js.map +0 -1
@@ -0,0 +1,275 @@
1
+ /**
2
+ * The live-universe instrument check (S-1, user rulings 2026-08-07: real invariants live outside
3
+ * skills). A hardcoded ticker that is not a live Hyperliquid instrument does not error at deploy:
4
+ * `market_get_asset_data` 500s, the scan skips the name, and the strategy silently trades
5
+ * nothing (the `xyz:NASDAQ` incident — the real index is `xyz:XYZ100`).
6
+ *
7
+ * It lives outside `deploy/` because it has TWO call sites and neither owns it: `senpi deploy`
8
+ * calls it pre-money (`runDeploy`), and `senpi validate` calls it at its LIVE depth
9
+ * (`validate/universe-stage.ts`), so an author learns a name is dead before funding rather than at
10
+ * the deploy refusal. Live, not static, because the verdict needs a live read and validate's
11
+ * offline depths do no I/O at all — and nothing is lost by waiting, since a proof requires a live
12
+ * run and deploy refuses a package with no proof. The two calls are not nested: deploy keeps its
13
+ * own because `strategy.yaml` is not in the proof fingerprint, so a `catalog.assets` edit is
14
+ * exactly the change a proof cannot see.
15
+ *
16
+ * TWO LAYERS, deliberately:
17
+ * - `checkPackageUniverse(pkg, deps)` is the REUSABLE contract: pure over an injected universe
18
+ * source, which it never lets throw (a failing source becomes the `unavailable` status), and its
19
+ * result carries every fact a renderer needs. Both consumers render FROM the result — they must
20
+ * not re-derive deadness, and the read-only one must not reuse the deploy builders below.
21
+ * - `buildUniverse*` are DEPLOY-path renderers: the money language ("Nothing was created",
22
+ * re-run commands) lives here, not in the result, so a read-only consumer never inherits it.
23
+ * Validate renders its own findings from the same result instead.
24
+ *
25
+ * The predicates are an exact port of skills' `validate_universe.py` (TICKER, KEY_HINT,
26
+ * NOT_TICKERS, the bare-name `xyz:` equivalence), for the same reason `instanceHasDslExit`
27
+ * mirrors `_pkg.Instance.has_dsl`: author-green must stay deploy-green. Extend either side only
28
+ * in lockstep with the other.
29
+ *
30
+ * SCOPE (deliberate): `strategy.yaml` `catalog.assets` plus each deploy INSTANCE's runtime.yaml
31
+ * `scanners[].inputs` — the set the verb installs. Dynamically-discovered tickers (derived
32
+ * universes) are out of scope by design: they are chosen at scan time from live data and cannot
33
+ * be dead-on-arrival the way a hardcoded name can.
34
+ */
35
+ import { join } from "node:path";
36
+ import { parse as parseYaml } from "yaml";
37
+ import { errorText } from "../deploy/error-text.js";
38
+ import { resumeCommand } from "../deploy/funding.js";
39
+ import { PROOF_ROUTE_NOTE, recheckBlock, validateUniversePyCommand, } from "../deploy/recheck-commands.js";
40
+ import { readRuntimeYaml } from "../deploy/package.js";
41
+ /**
42
+ * Mirror of validate_universe.py TICKER: BTC, xyz:AAPL — uppercase, ≤12 chars, optional xyz: prefix.
43
+ * JS `$` never matches before a trailing newline (python's does, which is why the python side now
44
+ * anchors with `\Z`); the one tolerated newline is stripped by `collect` before this runs.
45
+ */
46
+ const TICKER_RE = /^(xyz:)?[A-Z][A-Z0-9]{0,11}$/;
47
+ /** Mirror of KEY_HINT: only values under keys that suggest an asset list are ticker candidates. */
48
+ const KEY_HINT_RE = /(asset|universe|basket|coin|symbol|market|whitelist|sleeve|defensiv|equit|probe|allowed|watch|class|volume|metal|energ|indice|long|short)/i;
49
+ /** Mirror of NOT_TICKERS: uppercase enum-ish values that are never tickers. */
50
+ const NOT_TICKERS = new Set([
51
+ "WEEK",
52
+ "MONTH",
53
+ "DAY",
54
+ "ALL",
55
+ "ALL_TIME",
56
+ "LONG",
57
+ "SHORT",
58
+ "BUY",
59
+ "SELL",
60
+ "ASC",
61
+ "DESC",
62
+ "AND",
63
+ "OR",
64
+ "TRUE",
65
+ "FALSE",
66
+ "NONE",
67
+ "AUTO",
68
+ ]);
69
+ /**
70
+ * Mirror of validate_universe.py `_collect`: walk the value, remembering the key path, and take a
71
+ * string that is ticker-shaped, is not an enum-ish non-ticker, and sits under a key whose LEAF name
72
+ * suggests an asset list. A list keeps its parent's key path (its elements are the asset names).
73
+ *
74
+ * TRAILING-NEWLINE RULE (both sides, in lockstep — change neither alone): a YAML block scalar
75
+ * (`- |`) clip-chomps to `"BTC\n"`, so exactly ONE trailing newline is tolerated and the ticker is
76
+ * collected TRIMMED; two or more (`- |+` with a blank line) are not a ticker at all and are ignored.
77
+ * This is a deliberate convergence, not a port of either original: python's `$` matched `"BTC\n"`
78
+ * and then compared the untrimmed string against the live names (a LIVE name reported NOT LIVE),
79
+ * while this side's `$` rejected it outright (a DEAD name written that way slipped past the money
80
+ * gate). `validate_universe.py` now anchors with `\Z` and trims the same single newline here.
81
+ */
82
+ function collect(node, keyPath, file, out) {
83
+ if (Array.isArray(node)) {
84
+ for (const value of node)
85
+ collect(value, keyPath, file, out);
86
+ return;
87
+ }
88
+ if (node !== null && typeof node === "object") {
89
+ for (const [key, value] of Object.entries(node)) {
90
+ collect(value, `${keyPath}.${key}`, file, out);
91
+ }
92
+ return;
93
+ }
94
+ if (typeof node !== "string")
95
+ return;
96
+ const leaf = keyPath.split(".").pop() ?? keyPath;
97
+ // Exactly one trailing newline is stripped before every predicate — see the rule above.
98
+ const ticker = node.endsWith("\n") ? node.slice(0, -1) : node;
99
+ if (TICKER_RE.test(ticker) && !NOT_TICKERS.has(ticker) && KEY_HINT_RE.test(leaf)) {
100
+ out.push({ ticker, file, keyPath });
101
+ }
102
+ }
103
+ /** Every hardcoded ticker-shaped string in catalog.assets + each instance's scanners[].inputs. */
104
+ export function packageHardcodedTickers(pkg) {
105
+ const out = [];
106
+ collect(pkg.catalog["assets"], "catalog.assets", join(pkg.dir, "strategy.yaml"), out);
107
+ for (const inst of pkg.instances) {
108
+ const parsed = parseYaml(readRuntimeYaml(inst));
109
+ const scanners = Array.isArray(parsed?.scanners) ? parsed.scanners : [];
110
+ scanners.forEach((scanner, index) => {
111
+ if (scanner !== null && typeof scanner === "object" && !Array.isArray(scanner)) {
112
+ collect(scanner.inputs, `scanners[${index}].inputs`, inst.runtimeYamlPath, out);
113
+ }
114
+ });
115
+ }
116
+ return out;
117
+ }
118
+ /**
119
+ * Mirror of validate_universe.py `unknown_tickers`: scanners on the xyz DEX prefix bare names in
120
+ * code (`f"xyz:{token}"`), so a bare ticker is live if `T` OR `xyz:T` is; a prefixed one only as
121
+ * written. Returns ticker → every occurrence of it, so one refusal can name every place to edit.
122
+ */
123
+ export function deadTickers(occurrences, live) {
124
+ const dead = new Map();
125
+ for (const occ of occurrences) {
126
+ const t = occ.ticker;
127
+ const isLive = live.has(t) || (!t.includes(":") && live.has(`xyz:${t}`));
128
+ if (isLive)
129
+ continue;
130
+ const rows = dead.get(t) ?? [];
131
+ rows.push(occ);
132
+ dead.set(t, rows);
133
+ }
134
+ return dead;
135
+ }
136
+ /**
137
+ * The composed, reusable check: performs no I/O beyond the package's own YAML and the injected
138
+ * source, and returns a verdict any consumer can render. Deploy consumes it pre-money; validate
139
+ * consumes it read-only at its live depth.
140
+ *
141
+ * What it throws, exactly: **the injected source never throws out of here** — a rejecting or empty
142
+ * `listLiveInstruments` becomes `{ status: "unavailable" }`, which is the whole point of the
143
+ * status. Reading the package's own YAML is NOT wrapped: an instance `runtime.yaml` that has been
144
+ * deleted or made unparseable since the package loaded propagates its error. On the deploy path
145
+ * that cannot happen unobserved — `instancesWithoutDslExit` and `scannersDeclaringEnabled` parse
146
+ * the same files a few lines earlier in `runDeploy`, and `localStartRefusal` parses them at start —
147
+ * so the exposure belongs to the standalone consumer, and validate's call site CATCHES it: a
148
+ * package it could not read is reported as a check that did not run
149
+ * (`W_VALIDATE_UNIVERSE_UNCHECKED`), never as a clean one. That stayed a caller's concern rather
150
+ * than becoming a fifth status because it is NOT `unavailable` — "the live list could not be read"
151
+ * and "this package could not be read" are opposite facts — and deploy, which parses the same files
152
+ * first, has no branch that would ever reach it.
153
+ */
154
+ export async function checkPackageUniverse(pkg, deps) {
155
+ const hardcoded = packageHardcodedTickers(pkg);
156
+ if (hardcoded.length === 0)
157
+ return { status: "no-hardcoded" };
158
+ let live;
159
+ try {
160
+ live = await deps.listLiveInstruments();
161
+ }
162
+ catch (err) {
163
+ return { status: "unavailable", reason: errorText(err) };
164
+ }
165
+ if (live.length === 0) {
166
+ // A real read always contains at least the majors: empty is an unreadable list wearing a
167
+ // different hat, and unknown is never "not live".
168
+ return { status: "unavailable", reason: "the response carried no instruments" };
169
+ }
170
+ const dead = deadTickers(hardcoded, new Set(live));
171
+ if (dead.size > 0)
172
+ return { status: "dead", dead, liveCount: live.length };
173
+ return {
174
+ status: "clean",
175
+ liveCount: live.length,
176
+ checked: new Set(hardcoded.map((o) => o.ticker)).size,
177
+ };
178
+ }
179
+ /**
180
+ * The verdict as one journal line — plain words, never the union's tag name (`dead`/`unavailable`
181
+ * are internal labels, and a narration line is read by people and relayed by agents). `null` for a
182
+ * package that hardcodes nothing: there is no forward claim to make about a check that never ran.
183
+ * Carries no money language, so a read-only consumer can render it too.
184
+ */
185
+ export function describeUniverseVerdict(result) {
186
+ switch (result.status) {
187
+ case "no-hardcoded":
188
+ return null;
189
+ case "clean":
190
+ return (`checked ${result.checked} hardcoded instrument(s) against ${result.liveCount} live ` +
191
+ `Hyperliquid instruments — all live`);
192
+ case "dead":
193
+ return (`checked this package's hardcoded instruments against ${result.liveCount} live Hyperliquid ` +
194
+ `instruments — ${result.dead.size} not live`);
195
+ case "unavailable":
196
+ return `the live Hyperliquid instrument list could not be read (${result.reason})`;
197
+ }
198
+ }
199
+ /**
200
+ * The live names a hardcoded ticker was compared against — the reader's half of {@link deadTickers}.
201
+ *
202
+ * Exported because both renderers state it and neither may re-derive it: deploy's refusal and
203
+ * validate's finding must name the SAME two forms the comparison actually used, or one of them is
204
+ * telling an author to look for a name that was never checked.
205
+ */
206
+ export function checkedTickerForms(ticker) {
207
+ return ticker.includes(":") ? [ticker] : [ticker, `xyz:${ticker}`];
208
+ }
209
+ /** One offense as an instruction: the literal value, both checked forms, and every location. */
210
+ function describeDeadTicker(ticker, rows) {
211
+ const checked = checkedTickerForms(ticker).map((form) => `"${form}"`).join(" and ");
212
+ const where = rows.map((row) => `${row.file} (${row.keyPath})`).join("; ");
213
+ return `"${ticker}" — no live instrument matches ${checked}. Appears in: ${where}`;
214
+ }
215
+ /**
216
+ * Every instance directory of a package — the `senpi validate` targets a package-wide refusal has
217
+ * to offer. (`recheckBlock` de-duplicates them; two instances may legally share a directory.)
218
+ *
219
+ * The whole package, not the instances the dead names happen to sit in, and for two reasons that
220
+ * point the same way: a `catalog.assets` offence lives in `strategy.yaml` and belongs to every
221
+ * sleeve, and deploy needs EVERY instance proven before it will proceed. Validate's universe check
222
+ * is package-wide from any one of these, so the list is never wrong — only broader than the
223
+ * narrowest possible answer, which is the safe direction here.
224
+ */
225
+ function instanceDirs(pkg) {
226
+ return pkg.instances.map((inst) => inst.runtimeYamlDir);
227
+ }
228
+ /**
229
+ * ONE refusal for the whole package, D-2 shape: every dead name, its literal value, its exact
230
+ * locations, and the mechanical fix — a reader repairs the whole universe in one pass. Both
231
+ * re-check routes are named, the runtime one first: the skills tool is what the author-side skill
232
+ * teaches, and `senpi validate` is what writes the proof deploy refuses a package without — so the
233
+ * loop "fix → re-check → deploy" never moves money until green, AND can actually close.
234
+ *
235
+ * Every "nothing was created" claim here is scoped to THIS RUN, deliberately. The gate fires before
236
+ * the first read of this package's live state, so on an adopt/resume run the package may already have
237
+ * a funded wallet and an installed runtime that this refusal cannot see — an absolute "no wallet was
238
+ * funded" would be false exactly there, and the move it invites (create and fund a second wallet
239
+ * beside the live one) is the expensive one. The gate may claim what it did, never what exists. Note
240
+ * the scoping has to stay precise in the other direction too: the gate DID read one live surface (the
241
+ * instrument list it quotes a count from), so it may not claim it read nothing live.
242
+ */
243
+ export function buildUniverseNotLiveRefusal(dead, pkg, liveCount, budget) {
244
+ return (`[E_UNIVERSE_NOT_LIVE] ${dead.size} hardcoded instrument(s) in this package are not live on ` +
245
+ `Hyperliquid (checked against ${liveCount} live instruments just now). Nothing was created by ` +
246
+ `this run — reading that instrument list is all it did, and it stopped before touching or even ` +
247
+ `reading this package's own live state, so no wallet was funded and nothing was installed BY ` +
248
+ `IT, and whatever this package already had is untouched (this gate cannot see it). A dead name ` +
249
+ `does not error at runtime: the ` +
250
+ `scan skips it and the strategy silently trades nothing. Fix — replace or remove each name:\n` +
251
+ [...dead.entries()].map(([t, rows]) => ` - ${describeDeadTicker(t, rows)}`).join("\n") +
252
+ `\nEdit the package universe (the senpi-strategy-author edit path), then re-check read-only ` +
253
+ `with either route:\n` +
254
+ `${recheckBlock(instanceDirs(pkg), validateUniversePyCommand(pkg.dir))}\n` +
255
+ `${PROOF_ROUTE_NOTE} Then re-run: ` +
256
+ resumeCommand(pkg.dir, budget));
257
+ }
258
+ /**
259
+ * The fail-closed unavailability detail — deliberately CODE-LESS: a code marks a refusal, and
260
+ * this is a step that could not run. Unknown is never "not live": no instrument is named dead
261
+ * on a read that did not succeed, so the message must never look like E_UNIVERSE_NOT_LIVE.
262
+ */
263
+ export function buildUniverseUnavailableDetail(reason, pkg) {
264
+ return (`universe check failed: the live Hyperliquid instrument list could not be read (${reason}). ` +
265
+ `No instrument was declared dead — an unreadable list proves nothing about this package. ` +
266
+ `Nothing was created by this run, and nothing this package already had was touched. ` +
267
+ `Re-run once the MCP server is reachable; to check the package without deploying, take either ` +
268
+ `route:\n` +
269
+ // Both routes read the same instrument list, so both wait on the same server coming back. The
270
+ // runtime one is still worth naming first: it checks everything else about the package too, and
271
+ // it is the only route that records the proof this deploy will ask for next time.
272
+ `${recheckBlock(instanceDirs(pkg), validateUniversePyCommand(pkg.dir))}\n` +
273
+ PROOF_ROUTE_NOTE);
274
+ }
275
+ //# sourceMappingURL=package-universe.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"package-universe.js","sourceRoot":"","sources":["../../src/universe/package-universe.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,MAAM,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EACL,gBAAgB,EAChB,YAAY,EACZ,yBAAyB,GAC1B,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,eAAe,EAAsB,MAAM,sBAAsB,CAAC;AAE3E;;;;GAIG;AACH,MAAM,SAAS,GAAG,8BAA8B,CAAC;AACjD,mGAAmG;AACnG,MAAM,WAAW,GACf,4IAA4I,CAAC;AAC/I,+EAA+E;AAC/E,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC;IAC1B,MAAM;IACN,OAAO;IACP,KAAK;IACL,KAAK;IACL,UAAU;IACV,MAAM;IACN,OAAO;IACP,KAAK;IACL,MAAM;IACN,KAAK;IACL,MAAM;IACN,KAAK;IACL,IAAI;IACJ,MAAM;IACN,OAAO;IACP,MAAM;IACN,MAAM;CACP,CAAC,CAAC;AAWH;;;;;;;;;;;;GAYG;AACH,SAAS,OAAO,CAAC,IAAa,EAAE,OAAe,EAAE,IAAY,EAAE,GAAuB;IACpF,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QACxB,KAAK,MAAM,KAAK,IAAI,IAAI;YAAE,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;QAC7D,OAAO;IACT,CAAC;IACD,IAAI,IAAI,KAAK,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC9C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAA+B,CAAC,EAAE,CAAC;YAC3E,OAAO,CAAC,KAAK,EAAE,GAAG,OAAO,IAAI,GAAG,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;QACjD,CAAC;QACD,OAAO;IACT,CAAC;IACD,IAAI,OAAO,IAAI,KAAK,QAAQ;QAAE,OAAO;IACrC,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,OAAO,CAAC;IACjD,wFAAwF;IACxF,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC9D,IAAI,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACjF,GAAG,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;IACtC,CAAC;AACH,CAAC;AAED,kGAAkG;AAClG,MAAM,UAAU,uBAAuB,CAAC,GAAkB;IACxD,MAAM,GAAG,GAAuB,EAAE,CAAC;IACnC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,gBAAgB,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,eAAe,CAAC,EAAE,GAAG,CAAC,CAAC;IACtF,KAAK,MAAM,IAAI,IAAI,GAAG,CAAC,SAAS,EAAE,CAAC;QACjC,MAAM,MAAM,GAAG,SAAS,CAAC,eAAe,CAAC,IAAI,CAAC,CAAmC,CAAC;QAClF,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAE,MAAM,CAAC,QAAsB,CAAC,CAAC,CAAC,EAAE,CAAC;QACvF,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE;YAClC,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC/E,OAAO,CACJ,OAAmC,CAAC,MAAM,EAC3C,YAAY,KAAK,UAAU,EAC3B,IAAI,CAAC,eAAe,EACpB,GAAG,CACJ,CAAC;YACJ,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,WAAW,CACzB,WAA+B,EAC/B,IAAyB;IAEzB,MAAM,IAAI,GAAG,IAAI,GAAG,EAA8B,CAAC;IACnD,KAAK,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;QAC9B,MAAM,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC;QACrB,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;QACzE,IAAI,MAAM;YAAE,SAAS;QACrB,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAC/B,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACf,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;IACpB,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAgBD;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,GAAkB,EAClB,IAAuB;IAEvB,MAAM,SAAS,GAAG,uBAAuB,CAAC,GAAG,CAAC,CAAC;IAC/C,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC;IAC9D,IAAI,IAAc,CAAC;IACnB,IAAI,CAAC;QACH,IAAI,GAAG,MAAM,IAAI,CAAC,mBAAmB,EAAE,CAAC;IAC1C,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC;IAC3D,CAAC;IACD,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,yFAAyF;QACzF,kDAAkD;QAClD,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,qCAAqC,EAAE,CAAC;IAClF,CAAC;IACD,MAAM,IAAI,GAAG,WAAW,CAAC,SAAS,EAAE,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;IACnD,IAAI,IAAI,CAAC,IAAI,GAAG,CAAC;QAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC;IAC3E,OAAO;QACL,MAAM,EAAE,OAAO;QACf,SAAS,EAAE,IAAI,CAAC,MAAM;QACtB,OAAO,EAAE,IAAI,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI;KACtD,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,uBAAuB,CAAC,MAA2B;IACjE,QAAQ,MAAM,CAAC,MAAM,EAAE,CAAC;QACtB,KAAK,cAAc;YACjB,OAAO,IAAI,CAAC;QACd,KAAK,OAAO;YACV,OAAO,CACL,WAAW,MAAM,CAAC,OAAO,oCAAoC,MAAM,CAAC,SAAS,QAAQ;gBACrF,oCAAoC,CACrC,CAAC;QACJ,KAAK,MAAM;YACT,OAAO,CACL,wDAAwD,MAAM,CAAC,SAAS,oBAAoB;gBAC5F,iBAAiB,MAAM,CAAC,IAAI,CAAC,IAAI,WAAW,CAC7C,CAAC;QACJ,KAAK,aAAa;YAChB,OAAO,2DAA2D,MAAM,CAAC,MAAM,GAAG,CAAC;IACvF,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,kBAAkB,CAAC,MAAc;IAC/C,OAAO,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,OAAO,MAAM,EAAE,CAAC,CAAC;AACrE,CAAC;AAED,gGAAgG;AAChG,SAAS,kBAAkB,CAAC,MAAc,EAAE,IAAwB;IAClE,MAAM,OAAO,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACpF,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,IAAI,KAAK,GAAG,CAAC,OAAO,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC3E,OAAO,IAAI,MAAM,kCAAkC,OAAO,iBAAiB,KAAK,EAAE,CAAC;AACrF,CAAC;AAED;;;;;;;;;GASG;AACH,SAAS,YAAY,CAAC,GAAkB;IACtC,OAAO,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;AAC1D,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,2BAA2B,CACzC,IAAqC,EACrC,GAAkB,EAClB,SAAiB,EACjB,MAAe;IAEf,OAAO,CACL,yBAAyB,IAAI,CAAC,IAAI,2DAA2D;QAC7F,gCAAgC,SAAS,sDAAsD;QAC/F,gGAAgG;QAChG,8FAA8F;QAC9F,gGAAgG;QAChG,iCAAiC;QACjC,8FAA8F;QAC9F,CAAC,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,OAAO,kBAAkB,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;QACvF,6FAA6F;QAC7F,sBAAsB;QACtB,GAAG,YAAY,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,yBAAyB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI;QAC1E,GAAG,gBAAgB,gBAAgB;QACnC,aAAa,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAC/B,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,8BAA8B,CAAC,MAAc,EAAE,GAAkB;IAC/E,OAAO,CACL,kFAAkF,MAAM,KAAK;QAC7F,0FAA0F;QAC1F,qFAAqF;QACrF,+FAA+F;QAC/F,UAAU;QACV,8FAA8F;QAC9F,gGAAgG;QAChG,kFAAkF;QAClF,GAAG,YAAY,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,yBAAyB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI;QAC1E,gBAAgB,CACjB,CAAC;AACJ,CAAC"}
@@ -34,6 +34,8 @@ export declare const VALIDATE_CODE: {
34
34
  readonly noRecipe: "E_VALIDATE_NO_RECIPE";
35
35
  /** More than one recipe candidate and no conventional name to break the tie. */
36
36
  readonly ambiguousRecipe: "E_VALIDATE_AMBIGUOUS_RECIPE";
37
+ /** A `strategy.yaml` is present and will not load, so which recipe it means is unknown. */
38
+ readonly unreadableManifest: "E_VALIDATE_UNREADABLE_MANIFEST";
37
39
  /** A depth that needs a recipe was requested against a target that has none. */
38
40
  readonly needsRecipe: "E_VALIDATE_NEEDS_RECIPE";
39
41
  /** Inline recipe content with no directory to resolve a relative scanner path against. */
@@ -98,6 +100,24 @@ export declare const VALIDATE_CODE: {
98
100
  readonly unknownMcpTool: "E_VALIDATE_UNKNOWN_MCP_TOOL";
99
101
  /** A hardcoded instrument that is not tradeable. */
100
102
  readonly unknownTicker: "E_VALIDATE_UNKNOWN_TICKER";
103
+ /**
104
+ * A hardcoded instrument in the package that is not live on the exchange. Deploy's pre-money
105
+ * check, run here too — it needs one live read, which is why it belongs to this depth.
106
+ */
107
+ readonly universeNotLive: "E_VALIDATE_UNIVERSE_NOT_LIVE";
108
+ /**
109
+ * That check could not run because the PACKAGE would not read — the manifest, or an instance
110
+ * recipe. Reported rather than passed over: a green verdict covering a check that never ran is
111
+ * the failure this command exists to correct. A warning, not an error, because it is ignorance
112
+ * about the package rather than evidence of a dead name.
113
+ */
114
+ readonly universeUnchecked: "W_VALIDATE_UNIVERSE_UNCHECKED";
115
+ /**
116
+ * That check could not run because the LIVE INSTRUMENT LIST would not read. A separate code from
117
+ * the one above because the actor differs: an unreadable list is an environment fault, and an
118
+ * agent that answers it by editing the package will loop.
119
+ */
120
+ readonly universeUnavailable: "W_VALIDATE_UNIVERSE_UNAVAILABLE";
101
121
  /** An emitted signal the runtime would reject on arrival. */
102
122
  readonly signalRejected: "E_VALIDATE_SIGNAL_REJECTED";
103
123
  /** Credentials absent or partially configured. */
@@ -1 +1 @@
1
- {"version":3,"file":"codes.d.ts","sourceRoot":"","sources":["../../src/validate/codes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAE5E;;;;;GAKG;AACH,eAAO,MAAM,aAAa;IAExB,sCAAsC;;IAEtC,4FAA4F;;IAE5F,gFAAgF;;IAEhF,gFAAgF;;IAEhF,0FAA0F;;IAE1F,+DAA+D;;IAE/D,+CAA+C;;IAI/C,mCAAmC;;IAEnC,iDAAiD;;IAEjD,mEAAmE;;IAEnE,+CAA+C;;IAE/C,kEAAkE;;IAElE,sDAAsD;;IAEtD,+FAA+F;;IAE/F,+CAA+C;;IAE/C,sDAAsD;;IAEtD,uEAAuE;;IAEvE,2FAA2F;;IAE3F,4DAA4D;;IAI5D,2FAA2F;;IAE3F,4CAA4C;;IAE5C,yDAAyD;;IAEzD,mDAAmD;;IAEnD,kEAAkE;;IAElE,6FAA6F;;IAE7F,mFAAmF;;IAEnF,+FAA+F;;IAI/F,uBAAuB;;IAEvB,4DAA4D;;IAE5D,gFAAgF;;IAEhF,kGAAkG;;IAElG,wDAAwD;;IAExD,qEAAqE;;IAErE,6FAA6F;;IAE7F,oDAAoD;;IAEpD,6DAA6D;;IAE7D,kDAAkD;;IAElD,sDAAsD;;IAEtD,kFAAkF;;IAElF,uDAAuD;;IAEvD,4FAA4F;;IAE5F,4FAA4F;;IAE5F,gDAAgD;;IAEhD,sFAAsF;;IAEtF,8FAA8F;;IAE9F,sFAAsF;;IAEtF,0EAA0E;;IAE1E,mFAAmF;;IAEnF,4FAA4F;;IAI5F,kDAAkD;;IAElD,qEAAqE;;IAErE,0FAA0F;;IAE1F,uFAAuF;;CAE/E,CAAC;AAEX,gDAAgD;AAChD,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,OAAO,aAAa,CAAC,CAAC;AAE9E,8FAA8F;AAC9F,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,eAAe,CAAC;IACvB,KAAK,EAAE,KAAK,CAAC;IACb,QAAQ,EAAE,OAAO,CAAC;IAClB,mGAAmG;IACnG,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,YAAY,EAAE,gBAAgB,CA8NrE,CAAC;AAEF,wCAAwC;AACxC,eAAO,MAAM,kBAAkB,EAAE,SAAS,YAAY,EAEnC,CAAC;AAEpB;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,YAAY,GAAG,QAAQ,CAEvD;AAED,qGAAqG;AACrG,wBAAgB,aAAa,CAAC,KAAK,EAAE,eAAe,GAAG,YAAY,EAAE,CAEpE"}
1
+ {"version":3,"file":"codes.d.ts","sourceRoot":"","sources":["../../src/validate/codes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAE5E;;;;;GAKG;AACH,eAAO,MAAM,aAAa;IAExB,sCAAsC;;IAEtC,4FAA4F;;IAE5F,gFAAgF;;IAEhF,2FAA2F;;IAE3F,gFAAgF;;IAEhF,0FAA0F;;IAE1F,+DAA+D;;IAE/D,+CAA+C;;IAI/C,mCAAmC;;IAEnC,iDAAiD;;IAEjD,mEAAmE;;IAEnE,+CAA+C;;IAE/C,kEAAkE;;IAElE,sDAAsD;;IAEtD,+FAA+F;;IAE/F,+CAA+C;;IAE/C,sDAAsD;;IAEtD,uEAAuE;;IAEvE,2FAA2F;;IAE3F,4DAA4D;;IAI5D,2FAA2F;;IAE3F,4CAA4C;;IAE5C,yDAAyD;;IAEzD,mDAAmD;;IAEnD,kEAAkE;;IAElE,6FAA6F;;IAE7F,mFAAmF;;IAEnF,+FAA+F;;IAI/F,uBAAuB;;IAEvB,4DAA4D;;IAE5D,gFAAgF;;IAEhF,kGAAkG;;IAElG,wDAAwD;;IAExD,qEAAqE;;IAErE,6FAA6F;;IAE7F,oDAAoD;;IAEpD;;;OAGG;;IAEH;;;;;OAKG;;IAEH;;;;OAIG;;IAEH,6DAA6D;;IAE7D,kDAAkD;;IAElD,sDAAsD;;IAEtD,kFAAkF;;IAElF,uDAAuD;;IAEvD,4FAA4F;;IAE5F,4FAA4F;;IAE5F,gDAAgD;;IAEhD,sFAAsF;;IAEtF,8FAA8F;;IAE9F,sFAAsF;;IAEtF,0EAA0E;;IAE1E,mFAAmF;;IAEnF,4FAA4F;;IAI5F,kDAAkD;;IAElD,qEAAqE;;IAErE,0FAA0F;;IAE1F,uFAAuF;;CAE/E,CAAC;AAEX,gDAAgD;AAChD,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,OAAO,aAAa,CAAC,CAAC;AAE9E,8FAA8F;AAC9F,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,eAAe,CAAC;IACvB,KAAK,EAAE,KAAK,CAAC;IACb,QAAQ,EAAE,OAAO,CAAC;IAClB,mGAAmG;IACnG,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,YAAY,EAAE,gBAAgB,CA8OrE,CAAC;AAEF,wCAAwC;AACxC,eAAO,MAAM,kBAAkB,EAAE,SAAS,YAAY,EAEnC,CAAC;AAEpB;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,YAAY,GAAG,QAAQ,CAEvD;AAED,qGAAqG;AACrG,wBAAgB,aAAa,CAAC,KAAK,EAAE,eAAe,GAAG,YAAY,EAAE,CAEpE"}
@@ -34,6 +34,8 @@ export const VALIDATE_CODE = {
34
34
  noRecipe: "E_VALIDATE_NO_RECIPE",
35
35
  /** More than one recipe candidate and no conventional name to break the tie. */
36
36
  ambiguousRecipe: "E_VALIDATE_AMBIGUOUS_RECIPE",
37
+ /** A `strategy.yaml` is present and will not load, so which recipe it means is unknown. */
38
+ unreadableManifest: "E_VALIDATE_UNREADABLE_MANIFEST",
37
39
  /** A depth that needs a recipe was requested against a target that has none. */
38
40
  needsRecipe: "E_VALIDATE_NEEDS_RECIPE",
39
41
  /** Inline recipe content with no directory to resolve a relative scanner path against. */
@@ -101,6 +103,24 @@ export const VALIDATE_CODE = {
101
103
  unknownMcpTool: "E_VALIDATE_UNKNOWN_MCP_TOOL",
102
104
  /** A hardcoded instrument that is not tradeable. */
103
105
  unknownTicker: "E_VALIDATE_UNKNOWN_TICKER",
106
+ /**
107
+ * A hardcoded instrument in the package that is not live on the exchange. Deploy's pre-money
108
+ * check, run here too — it needs one live read, which is why it belongs to this depth.
109
+ */
110
+ universeNotLive: "E_VALIDATE_UNIVERSE_NOT_LIVE",
111
+ /**
112
+ * That check could not run because the PACKAGE would not read — the manifest, or an instance
113
+ * recipe. Reported rather than passed over: a green verdict covering a check that never ran is
114
+ * the failure this command exists to correct. A warning, not an error, because it is ignorance
115
+ * about the package rather than evidence of a dead name.
116
+ */
117
+ universeUnchecked: "W_VALIDATE_UNIVERSE_UNCHECKED",
118
+ /**
119
+ * That check could not run because the LIVE INSTRUMENT LIST would not read. A separate code from
120
+ * the one above because the actor differs: an unreadable list is an environment fault, and an
121
+ * agent that answers it by editing the package will loop.
122
+ */
123
+ universeUnavailable: "W_VALIDATE_UNIVERSE_UNAVAILABLE",
104
124
  /** An emitted signal the runtime would reject on arrival. */
105
125
  signalRejected: "E_VALIDATE_SIGNAL_REJECTED",
106
126
  /** Credentials absent or partially configured. */
@@ -159,6 +179,10 @@ export const VALIDATE_CODE_META = {
159
179
  stage: "invocation", actor: "agent", fix_kind: "choice",
160
180
  condition: "Several recipe candidates and no conventional name to break the tie.",
161
181
  },
182
+ [VALIDATE_CODE.unreadableManifest]: {
183
+ stage: "invocation", actor: "agent", fix_kind: "edit",
184
+ condition: "A strategy.yaml is present but does not load, so which recipe it names is unknown.",
185
+ },
162
186
  [VALIDATE_CODE.needsRecipe]: {
163
187
  stage: "invocation", actor: "agent", fix_kind: "command",
164
188
  condition: "A depth requiring a recipe was requested against a target that has none.",
@@ -290,6 +314,18 @@ export const VALIDATE_CODE_META = {
290
314
  stage: "live", actor: "agent", fix_kind: "lookup",
291
315
  condition: "A hardcoded instrument is not tradeable.",
292
316
  },
317
+ [VALIDATE_CODE.universeNotLive]: {
318
+ stage: "live", actor: "agent", fix_kind: "edit",
319
+ condition: "A hardcoded instrument in the package is not live on the exchange.",
320
+ },
321
+ [VALIDATE_CODE.universeUnchecked]: {
322
+ stage: "live", actor: "agent", fix_kind: "edit",
323
+ condition: "The universe check could not run because the package itself would not read.",
324
+ },
325
+ [VALIDATE_CODE.universeUnavailable]: {
326
+ stage: "live", actor: "ops", fix_kind: "command",
327
+ condition: "The universe check could not run because the live instrument list would not read.",
328
+ },
293
329
  [VALIDATE_CODE.signalRejected]: {
294
330
  stage: "live", actor: "agent", fix_kind: "edit",
295
331
  condition: "An emitted signal would be rejected by the runtime on arrival.",
@@ -1 +1 @@
1
- {"version":3,"file":"codes.js","sourceRoot":"","sources":["../../src/validate/codes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"codes.js","sourceRoot":"","sources":["../../src/validate/codes.ts"],"names":[],"mappings":"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"}
@@ -13,11 +13,11 @@
13
13
  * clean. Production spawns a process per scanner for the same reason, so this matches it.
14
14
  */
15
15
  // Via the repo's wrapper, never the stdlib module directly: OpenClaw's install gate
16
- // blocks any plugin file matching BOTH a spawn-like call AND the literal module name,
17
- // and `safe-spawn` exists to keep those bytes out of a file. Importing it directly here
18
- // shipped in 3.0.57, whose published dist the gate refuses outright — a hard failure,
19
- // not a warning, because senpi-agent's bootstrap deliberately stopped passing
20
- // --dangerously-force-unsafe-install so that exactly this regression would be loud.
16
+ // blocks any plugin file matching BOTH a spawn-like call AND the literal module name, and
17
+ // `safe-spawn` exists to keep those bytes out of the file. Importing directly here
18
+ // made `openclaw plugins install` refuse the whole plugin — caught installing on the dev
19
+ // agent, and it would have refused the released build the same way, since the wrapper's
20
+ // bootstrap deliberately does not pass --dangerously-force-unsafe-install.
21
21
  import { spawn } from "../utils/safe-spawn.js";
22
22
  import { isAbsolute, resolve } from "node:path";
23
23
  import { fileURLToPath } from "node:url";
@@ -1 +1 @@
1
- {"version":3,"file":"import-stage.js","sourceRoot":"","sources":["../../src/validate/import-stage.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"import-stage.js","sourceRoot":"","sources":["../../src/validate/import-stage.ts"],"names":[],"mappings":"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"}
@@ -11,7 +11,7 @@ export { ALL_VALIDATE_CODES, VALIDATE_CODE, VALIDATE_CODE_META, codesForStage, s
11
11
  export { findUncoveredCodes, findUnknownCodes, type CoverageOptions } from "./coverage.js";
12
12
  export { findLlmActionsWithoutModel, findMarginPctFraction, findMissingEntrypoints, findUngatedStrategy, findUnsizedStrategy, } from "./recipe-checks.js";
13
13
  export { collectRecipeFindings, type RecipeSource, type RecipeValidation, } from "./recipe.js";
14
- export { isImplemented, runValidation, type ExitCode, type ValidateOptions, type ValidateResult, type Verdict, type VerdictBasis, } from "./run.js";
14
+ export { isImplemented, runValidation, type ExitCode, type ValidateDeps, type ValidateOptions, type ValidateResult, type Verdict, type VerdictBasis, } from "./run.js";
15
15
  export { renderFinding, renderHuman, renderJson } from "./report.js";
16
16
  /**
17
17
  * What the runtime refuses to install. Wired into `senpi.installRuntime`; the boot loop
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/validate/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,YAAY,EACV,KAAK,EACL,KAAK,EACL,OAAO,EACP,eAAe,EACf,OAAO,EACP,QAAQ,EACR,eAAe,GAChB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAErD,OAAO,EACL,aAAa,EACb,KAAK,cAAc,EACnB,KAAK,WAAW,EAChB,KAAK,UAAU,EACf,KAAK,gBAAgB,GACtB,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,kBAAkB,EAClB,aAAa,EACb,kBAAkB,EAClB,aAAa,EACb,UAAU,EACV,KAAK,YAAY,EACjB,KAAK,gBAAgB,GACtB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,KAAK,eAAe,EAAE,MAAM,eAAe,CAAC;AAE3F,OAAO,EACL,0BAA0B,EAC1B,qBAAqB,EACrB,sBAAsB,EACtB,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,qBAAqB,EACrB,KAAK,YAAY,EACjB,KAAK,gBAAgB,GACtB,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,aAAa,EACb,aAAa,EACb,KAAK,QAAQ,EACb,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,OAAO,EACZ,KAAK,YAAY,GAClB,MAAM,UAAU,CAAC;AAElB,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAErE;;;GAGG;AACH,OAAO,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,KAAK,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAErG;;;;GAIG;AACH,OAAO,EACL,cAAc,EACd,kBAAkB,EAClB,WAAW,EACX,UAAU,EACV,KAAK,WAAW,EAChB,KAAK,kBAAkB,EACvB,KAAK,aAAa,EAClB,KAAK,YAAY,EACjB,KAAK,YAAY,GAClB,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,YAAY,EACZ,WAAW,EACX,kBAAkB,EAClB,UAAU,EACV,KAAK,aAAa,GACnB,MAAM,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/validate/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,YAAY,EACV,KAAK,EACL,KAAK,EACL,OAAO,EACP,eAAe,EACf,OAAO,EACP,QAAQ,EACR,eAAe,GAChB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAErD,OAAO,EACL,aAAa,EACb,KAAK,cAAc,EACnB,KAAK,WAAW,EAChB,KAAK,UAAU,EACf,KAAK,gBAAgB,GACtB,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,kBAAkB,EAClB,aAAa,EACb,kBAAkB,EAClB,aAAa,EACb,UAAU,EACV,KAAK,YAAY,EACjB,KAAK,gBAAgB,GACtB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,KAAK,eAAe,EAAE,MAAM,eAAe,CAAC;AAE3F,OAAO,EACL,0BAA0B,EAC1B,qBAAqB,EACrB,sBAAsB,EACtB,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,qBAAqB,EACrB,KAAK,YAAY,EACjB,KAAK,gBAAgB,GACtB,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,aAAa,EACb,aAAa,EACb,KAAK,QAAQ,EACb,KAAK,YAAY,EACjB,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,OAAO,EACZ,KAAK,YAAY,GAClB,MAAM,UAAU,CAAC;AAElB,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAErE;;;GAGG;AACH,OAAO,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,KAAK,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAErG;;;;GAIG;AACH,OAAO,EACL,cAAc,EACd,kBAAkB,EAClB,WAAW,EACX,UAAU,EACV,KAAK,WAAW,EAChB,KAAK,kBAAkB,EACvB,KAAK,aAAa,EAClB,KAAK,YAAY,EACjB,KAAK,YAAY,GAClB,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,YAAY,EACZ,WAAW,EACX,kBAAkB,EAClB,UAAU,EACV,KAAK,aAAa,GACnB,MAAM,mBAAmB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/validate/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAYH,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAErD,OAAO,EACL,aAAa,GAKd,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,kBAAkB,EAClB,aAAa,EACb,kBAAkB,EAClB,aAAa,EACb,UAAU,GAGX,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAwB,MAAM,eAAe,CAAC;AAE3F,OAAO,EACL,0BAA0B,EAC1B,qBAAqB,EACrB,sBAAsB,EACtB,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,qBAAqB,GAGtB,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,aAAa,EACb,aAAa,GAMd,MAAM,UAAU,CAAC;AAElB,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAErE;;;GAGG;AACH,OAAO,EAAE,sBAAsB,EAAE,gBAAgB,EAA0B,MAAM,mBAAmB,CAAC;AAErG;;;;GAIG;AACH,OAAO,EACL,cAAc,EACd,kBAAkB,EAClB,WAAW,EACX,UAAU,GAMX,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,YAAY,EACZ,WAAW,EACX,kBAAkB,EAClB,UAAU,GAEX,MAAM,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/validate/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAYH,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAErD,OAAO,EACL,aAAa,GAKd,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,kBAAkB,EAClB,aAAa,EACb,kBAAkB,EAClB,aAAa,EACb,UAAU,GAGX,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAwB,MAAM,eAAe,CAAC;AAE3F,OAAO,EACL,0BAA0B,EAC1B,qBAAqB,EACrB,sBAAsB,EACtB,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,qBAAqB,GAGtB,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,aAAa,EACb,aAAa,GAOd,MAAM,UAAU,CAAC;AAElB,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAErE;;;GAGG;AACH,OAAO,EAAE,sBAAsB,EAAE,gBAAgB,EAA0B,MAAM,mBAAmB,CAAC;AAErG;;;;GAIG;AACH,OAAO,EACL,cAAc,EACd,kBAAkB,EAClB,WAAW,EACX,UAAU,GAMX,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,YAAY,EACZ,WAAW,EACX,kBAAkB,EAClB,UAAU,GAEX,MAAM,mBAAmB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"install-gate.d.ts","sourceRoot":"","sources":["../../src/validate/install-gate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAGH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAgB1C,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,OAAO,CAAC;IACZ,mEAAmE;IACnE,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,oFAAoF;IACpF,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAgBD;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,iBAAiB,CAKvE;AAED,2FAA2F;AAC3F,eAAO,MAAM,sBAAsB,EAAE,SAAS,MAAM,EAAkB,CAAC"}
1
+ {"version":3,"file":"install-gate.d.ts","sourceRoot":"","sources":["../../src/validate/install-gate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAGH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAgB1C,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,OAAO,CAAC;IACZ,mEAAmE;IACnE,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,oFAAoF;IACpF,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAwBD;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,iBAAiB,CAKvE;AAED,2FAA2F;AAC3F,eAAO,MAAM,sBAAsB,EAAE,SAAS,MAAM,EAAkB,CAAC"}
@@ -43,11 +43,19 @@ const BLOCKING = new Set([
43
43
  *
44
44
  * The gateway's error string is often the only thing an operator or agent ever reads, so it
45
45
  * carries the same what/why/fix the findings do rather than a count and a pointer to logs.
46
+ *
47
+ * Two things ride in front of and behind that, and both are conventions of this codebase rather
48
+ * than decoration. It LEADS with the first blocking code in brackets, because every other refusal
49
+ * on this boundary does and the taught surfaces tell agents to branch on that prefix
50
+ * (`deploy/taxonomy.ts` is its one reader). And it STATES that nothing was installed: a caller told
51
+ * only that a recipe "cannot be installed" still has to guess whether a partial install is sitting
52
+ * on the box to clean up, and guessing wrong in either direction costs more than the sentence.
46
53
  */
47
54
  function render(blocking) {
48
55
  const lines = blocking.map((f) => ` • ${f.what}\n why: ${f.why}\n fix: ${f.fix}`);
49
- return (`This recipe cannot be installed — it would not trade.\n\n${lines.join("\n\n")}\n\n` +
50
- `Run \`senpi validate\` on the package for the full report.`);
56
+ return (`[${blocking[0].code}] This recipe cannot be installed — it would not trade.\n\n` +
57
+ `${lines.join("\n\n")}\n\n` +
58
+ `Nothing was installed. Run \`openclaw senpi validate\` on the package for the full report.`);
51
59
  }
52
60
  /**
53
61
  * Decide whether a parsed recipe may be installed.
@@ -1 +1 @@
1
- {"version":3,"file":"install-gate.js","sourceRoot":"","sources":["../../src/validate/install-gate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAG3C;;;;;;GAMG;AACH,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAS;IAC/B,aAAa,CAAC,OAAO;IACrB,aAAa,CAAC,OAAO;IACrB,aAAa,CAAC,iBAAiB;IAC/B,aAAa,CAAC,uBAAuB;CACtC,CAAC,CAAC;AAUH;;;;;GAKG;AACH,SAAS,MAAM,CAAC,QAAmB;IACjC,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,cAAc,CAAC,CAAC,GAAG,cAAc,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;IACzF,OAAO,CACL,4DAA4D,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM;QACpF,4DAA4D,CAC7D,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAAC,QAAmB;IAClD,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC;IACxF,OAAO,QAAQ,CAAC,MAAM,KAAK,CAAC;QAC1B,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE;QAC5B,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;AACzD,CAAC;AAED,2FAA2F;AAC3F,MAAM,CAAC,MAAM,sBAAsB,GAAsB,CAAC,GAAG,QAAQ,CAAC,CAAC"}
1
+ {"version":3,"file":"install-gate.js","sourceRoot":"","sources":["../../src/validate/install-gate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAG3C;;;;;;GAMG;AACH,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAS;IAC/B,aAAa,CAAC,OAAO;IACrB,aAAa,CAAC,OAAO;IACrB,aAAa,CAAC,iBAAiB;IAC/B,aAAa,CAAC,uBAAuB;CACtC,CAAC,CAAC;AAUH;;;;;;;;;;;;GAYG;AACH,SAAS,MAAM,CAAC,QAAmB;IACjC,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,cAAc,CAAC,CAAC,GAAG,cAAc,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;IACzF,OAAO,CACL,IAAI,QAAQ,CAAC,CAAC,CAAE,CAAC,IAAI,6DAA6D;QAClF,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM;QAC3B,4FAA4F,CAC7F,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAAC,QAAmB;IAClD,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC;IACxF,OAAO,QAAQ,CAAC,MAAM,KAAK,CAAC;QAC1B,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE;QAC5B,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;AACzD,CAAC;AAED,2FAA2F;AAC3F,MAAM,CAAC,MAAM,sBAAsB,GAAsB,CAAC,GAAG,QAAQ,CAAC,CAAC"}
@@ -0,0 +1,44 @@
1
+ /**
2
+ * Where `senpi validate` gets the exchange's live instrument list.
3
+ *
4
+ * The universe check is injected with a source rather than building one, so that the check stays
5
+ * testable and a programmatic caller can supply its own. This is the CLI's implementation of that
6
+ * source — the counterpart of `deploy/register.ts`'s `listLiveInstruments: () =>
7
+ * client.listInstrumentNames(callDeadline())`, which does the same thing on the money path.
8
+ *
9
+ * ## It is LAZY, and that is what keeps the offline depths offline
10
+ *
11
+ * Nothing is constructed and nothing is dialled until `listLiveInstruments()` is actually called,
12
+ * and the only caller is the live depth. So `--stage static` and `--stage import` reach no network
13
+ * even though the command always hands the source over — the property holds by construction rather
14
+ * than by a flag someone has to remember to set.
15
+ *
16
+ * ## It THROWS rather than returning nothing
17
+ *
18
+ * When credentials are absent, or the client cannot be reached, this raises with the reason.
19
+ * `checkPackageUniverse` turns a raising source into `{ status: "unavailable" }`, which validate
20
+ * renders as `W_VALIDATE_UNIVERSE_UNAVAILABLE` — "the check did not run, and here is why". The
21
+ * alternative — the command quietly declining to supply a source when the environment looks
22
+ * unpromising — is the dormancy this wiring exists to remove: a run that passes having never made
23
+ * the check it appears to make. Returning `[]` would be worse still: an empty list is defined
24
+ * upstream as "could not read", but nothing here should rely on a caller remembering that.
25
+ */
26
+ import { SenpiClient } from "../senpi/client.js";
27
+ import type { ValidateDeps } from "./universe-stage.js";
28
+ export interface LiveInstrumentSource {
29
+ deps: ValidateDeps;
30
+ /** Releases the connection, if one was ever opened. Never throws; safe to call unconditionally. */
31
+ close(): Promise<void>;
32
+ }
33
+ /**
34
+ * The CLI's live-instrument source. Opens nothing until asked.
35
+ *
36
+ * `env` and `connect` are injected for the tests — the credential rule and the laziness are the
37
+ * behaviour worth pinning, and neither should need a reachable MCP server to check.
38
+ */
39
+ export declare function createLiveInstrumentSource(options?: {
40
+ env?: NodeJS.ProcessEnv;
41
+ /** Builds the client. Defaults to a real self-managed `SenpiClient`. */
42
+ createClient?: () => Pick<SenpiClient, "listInstrumentNames" | "disconnect">;
43
+ }): LiveInstrumentSource;
44
+ //# sourceMappingURL=live-instruments.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"live-instruments.d.ts","sourceRoot":"","sources":["../../src/validate/live-instruments.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAYxD,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,YAAY,CAAC;IACnB,mGAAmG;IACnG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB;AAED;;;;;GAKG;AACH,wBAAgB,0BAA0B,CAAC,OAAO,GAAE;IAClD,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACxB,wEAAwE;IACxE,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC,WAAW,EAAE,qBAAqB,GAAG,YAAY,CAAC,CAAC;CACzE,GAAG,oBAAoB,CA4B5B"}