@senpi/runtime 3.0.58 → 3.0.62

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 (226) hide show
  1. package/README.md +73 -2
  2. package/dist/actions/action-events.d.ts +3 -3
  3. package/dist/actions/action-events.d.ts.map +1 -1
  4. package/dist/actions/action-events.js +24 -16
  5. package/dist/actions/action-events.js.map +1 -1
  6. package/dist/actions/action-runtime-module.d.ts.map +1 -1
  7. package/dist/actions/action-runtime-module.js +18 -1
  8. package/dist/actions/action-runtime-module.js.map +1 -1
  9. package/dist/actions/close-position/close-position.action.d.ts.map +1 -1
  10. package/dist/actions/close-position/close-position.action.js +84 -11
  11. package/dist/actions/close-position/close-position.action.js.map +1 -1
  12. package/dist/actions/decision-engine.d.ts +0 -2
  13. package/dist/actions/decision-engine.d.ts.map +1 -1
  14. package/dist/actions/decision-engine.js +1 -79
  15. package/dist/actions/decision-engine.js.map +1 -1
  16. package/dist/actions/event-derivation.d.ts +40 -2
  17. package/dist/actions/event-derivation.d.ts.map +1 -1
  18. package/dist/actions/event-derivation.js +178 -5
  19. package/dist/actions/event-derivation.js.map +1 -1
  20. package/dist/actions/open-position/open-position.action.d.ts.map +1 -1
  21. package/dist/actions/open-position/open-position.action.js +103 -16
  22. package/dist/actions/open-position/open-position.action.js.map +1 -1
  23. package/dist/actions/position-tracker/position-tracker.action.d.ts +2 -1
  24. package/dist/actions/position-tracker/position-tracker.action.d.ts.map +1 -1
  25. package/dist/actions/position-tracker/position-tracker.action.js +47 -15
  26. package/dist/actions/position-tracker/position-tracker.action.js.map +1 -1
  27. package/dist/actions/skipped-signal-results.d.ts +16 -0
  28. package/dist/actions/skipped-signal-results.d.ts.map +1 -0
  29. package/dist/actions/skipped-signal-results.js +47 -0
  30. package/dist/actions/skipped-signal-results.js.map +1 -0
  31. package/dist/cli/deploy-render.d.ts +91 -0
  32. package/dist/cli/deploy-render.d.ts.map +1 -0
  33. package/dist/cli/deploy-render.js +216 -0
  34. package/dist/cli/deploy-render.js.map +1 -0
  35. package/dist/cli/guide-commands.d.ts.map +1 -1
  36. package/dist/cli/guide-commands.js +78 -6
  37. package/dist/cli/guide-commands.js.map +1 -1
  38. package/dist/cli/senpi-commands.d.ts +6 -1
  39. package/dist/cli/senpi-commands.d.ts.map +1 -1
  40. package/dist/cli/senpi-commands.js +164 -5
  41. package/dist/cli/senpi-commands.js.map +1 -1
  42. package/dist/cli/validate-command.d.ts.map +1 -1
  43. package/dist/cli/validate-command.js +32 -1
  44. package/dist/cli/validate-command.js.map +1 -1
  45. package/dist/deploy/deadlines.d.ts +47 -0
  46. package/dist/deploy/deadlines.d.ts.map +1 -0
  47. package/dist/deploy/deadlines.js +56 -0
  48. package/dist/deploy/deadlines.js.map +1 -0
  49. package/dist/deploy/error-text.d.ts +25 -0
  50. package/dist/deploy/error-text.d.ts.map +1 -0
  51. package/dist/deploy/error-text.js +42 -0
  52. package/dist/deploy/error-text.js.map +1 -0
  53. package/dist/deploy/funding.d.ts +87 -0
  54. package/dist/deploy/funding.d.ts.map +1 -0
  55. package/dist/deploy/funding.js +229 -0
  56. package/dist/deploy/funding.js.map +1 -0
  57. package/dist/deploy/install-gate-runner.d.ts +12 -0
  58. package/dist/deploy/install-gate-runner.d.ts.map +1 -0
  59. package/dist/deploy/install-gate-runner.js +17 -0
  60. package/dist/deploy/install-gate-runner.js.map +1 -0
  61. package/dist/deploy/job.d.ts +199 -0
  62. package/dist/deploy/job.d.ts.map +1 -0
  63. package/dist/deploy/job.js +463 -0
  64. package/dist/deploy/job.js.map +1 -0
  65. package/dist/deploy/min-budget.d.ts +68 -0
  66. package/dist/deploy/min-budget.d.ts.map +1 -0
  67. package/dist/deploy/min-budget.js +297 -0
  68. package/dist/deploy/min-budget.js.map +1 -0
  69. package/dist/deploy/orchestrator.d.ts +305 -0
  70. package/dist/deploy/orchestrator.d.ts.map +1 -0
  71. package/dist/deploy/orchestrator.js +2910 -0
  72. package/dist/deploy/orchestrator.js.map +1 -0
  73. package/dist/deploy/package.d.ts +130 -0
  74. package/dist/deploy/package.d.ts.map +1 -0
  75. package/dist/deploy/package.js +351 -0
  76. package/dist/deploy/package.js.map +1 -0
  77. package/dist/deploy/proof-gate.d.ts +82 -0
  78. package/dist/deploy/proof-gate.d.ts.map +1 -0
  79. package/dist/deploy/proof-gate.js +269 -0
  80. package/dist/deploy/proof-gate.js.map +1 -0
  81. package/dist/deploy/python-float.d.ts +34 -0
  82. package/dist/deploy/python-float.d.ts.map +1 -0
  83. package/dist/deploy/python-float.js +46 -0
  84. package/dist/deploy/python-float.js.map +1 -0
  85. package/dist/deploy/recheck-commands.d.ts +50 -0
  86. package/dist/deploy/recheck-commands.d.ts.map +1 -0
  87. package/dist/deploy/recheck-commands.js +59 -0
  88. package/dist/deploy/recheck-commands.js.map +1 -0
  89. package/dist/deploy/register.d.ts +99 -0
  90. package/dist/deploy/register.d.ts.map +1 -0
  91. package/dist/deploy/register.js +689 -0
  92. package/dist/deploy/register.js.map +1 -0
  93. package/dist/deploy/taxonomy.d.ts +24 -0
  94. package/dist/deploy/taxonomy.d.ts.map +1 -0
  95. package/dist/deploy/taxonomy.js +31 -0
  96. package/dist/deploy/taxonomy.js.map +1 -0
  97. package/dist/index.d.ts.map +1 -1
  98. package/dist/index.js +244 -132
  99. package/dist/index.js.map +1 -1
  100. package/dist/runtime/lifecycle-events.d.ts +13 -0
  101. package/dist/runtime/lifecycle-events.d.ts.map +1 -1
  102. package/dist/runtime/lifecycle-events.js +32 -0
  103. package/dist/runtime/lifecycle-events.js.map +1 -1
  104. package/dist/runtime/runtime.d.ts.map +1 -1
  105. package/dist/runtime/runtime.js +3 -1
  106. package/dist/runtime/runtime.js.map +1 -1
  107. package/dist/runtime/strategy-registry.d.ts +8 -0
  108. package/dist/runtime/strategy-registry.d.ts.map +1 -1
  109. package/dist/runtime/strategy-registry.js +14 -1
  110. package/dist/runtime/strategy-registry.js.map +1 -1
  111. package/dist/runtime/supervisor/long-running-supervisor.d.ts +8 -0
  112. package/dist/runtime/supervisor/long-running-supervisor.d.ts.map +1 -1
  113. package/dist/runtime/supervisor/long-running-supervisor.js +1 -0
  114. package/dist/runtime/supervisor/long-running-supervisor.js.map +1 -1
  115. package/dist/runtime-api/intake/intake-events.d.ts +19 -3
  116. package/dist/runtime-api/intake/intake-events.d.ts.map +1 -1
  117. package/dist/runtime-api/intake/intake-events.js +64 -2
  118. package/dist/runtime-api/intake/intake-events.js.map +1 -1
  119. package/dist/runtime-api/intake/intake-mount.d.ts.map +1 -1
  120. package/dist/runtime-api/intake/intake-mount.js +7 -4
  121. package/dist/runtime-api/intake/intake-mount.js.map +1 -1
  122. package/dist/runtime-api/intake/process-signal-post.d.ts.map +1 -1
  123. package/dist/runtime-api/intake/process-signal-post.js +7 -1
  124. package/dist/runtime-api/intake/process-signal-post.js.map +1 -1
  125. package/dist/runtime-api/intake/scanner-launcher.d.ts.map +1 -1
  126. package/dist/runtime-api/intake/scanner-launcher.js +12 -0
  127. package/dist/runtime-api/intake/scanner-launcher.js.map +1 -1
  128. package/dist/runtime-api/intake/types.d.ts +24 -0
  129. package/dist/runtime-api/intake/types.d.ts.map +1 -1
  130. package/dist/runtime-api/routes/signals.d.ts.map +1 -1
  131. package/dist/runtime-api/routes/signals.js +10 -1
  132. package/dist/runtime-api/routes/signals.js.map +1 -1
  133. package/dist/runtime-api/routes/signals.schema.d.ts +10 -0
  134. package/dist/runtime-api/routes/signals.schema.d.ts.map +1 -1
  135. package/dist/runtime-api/routes/signals.schema.js +14 -0
  136. package/dist/runtime-api/routes/signals.schema.js.map +1 -1
  137. package/dist/scanners/events.d.ts +7 -0
  138. package/dist/scanners/events.d.ts.map +1 -1
  139. package/dist/scanners/events.js.map +1 -1
  140. package/dist/scanners/external/scaffold/delivery.py +23 -12
  141. package/dist/scanners/external/scaffold/scaffold.py +55 -7
  142. package/dist/scanners/implementations/market-regime.d.ts +1 -1
  143. package/dist/scanners/runtime-module.d.ts.map +1 -1
  144. package/dist/scanners/runtime-module.js +10 -2
  145. package/dist/scanners/runtime-module.js.map +1 -1
  146. package/dist/senpi/client.d.ts +58 -4
  147. package/dist/senpi/client.d.ts.map +1 -1
  148. package/dist/senpi/client.js +192 -15
  149. package/dist/senpi/client.js.map +1 -1
  150. package/dist/senpi/strategy-status.d.ts +32 -0
  151. package/dist/senpi/strategy-status.d.ts.map +1 -0
  152. package/dist/senpi/strategy-status.js +70 -0
  153. package/dist/senpi/strategy-status.js.map +1 -0
  154. package/dist/senpi/types.d.ts +47 -3
  155. package/dist/senpi/types.d.ts.map +1 -1
  156. package/dist/skills-manager/manifest.js +1 -1
  157. package/dist/skills-manager/skills-manifest.json +1 -1
  158. package/dist/telemetry/event-builders.d.ts +45 -6
  159. package/dist/telemetry/event-builders.d.ts.map +1 -1
  160. package/dist/telemetry/event-builders.js +99 -11
  161. package/dist/telemetry/event-builders.js.map +1 -1
  162. package/dist/telemetry/metrics.d.ts +37 -2
  163. package/dist/telemetry/metrics.d.ts.map +1 -1
  164. package/dist/telemetry/metrics.js +84 -4
  165. package/dist/telemetry/metrics.js.map +1 -1
  166. package/dist/telemetry/scanner-tick-event.d.ts +32 -0
  167. package/dist/telemetry/scanner-tick-event.d.ts.map +1 -0
  168. package/dist/telemetry/scanner-tick-event.js +32 -0
  169. package/dist/telemetry/scanner-tick-event.js.map +1 -0
  170. package/dist/types/strategy.d.ts +9 -1
  171. package/dist/types/strategy.d.ts.map +1 -1
  172. package/dist/universe/package-universe.d.ts +97 -0
  173. package/dist/universe/package-universe.d.ts.map +1 -0
  174. package/dist/universe/package-universe.js +275 -0
  175. package/dist/universe/package-universe.js.map +1 -0
  176. package/dist/utils/event-catalog.d.ts +58 -0
  177. package/dist/utils/event-catalog.d.ts.map +1 -1
  178. package/dist/utils/event-catalog.js +1 -0
  179. package/dist/utils/event-catalog.js.map +1 -1
  180. package/dist/validate/codes.d.ts +20 -0
  181. package/dist/validate/codes.d.ts.map +1 -1
  182. package/dist/validate/codes.js +36 -0
  183. package/dist/validate/codes.js.map +1 -1
  184. package/dist/validate/import-stage.js +5 -5
  185. package/dist/validate/import-stage.js.map +1 -1
  186. package/dist/validate/index.d.ts +1 -1
  187. package/dist/validate/index.d.ts.map +1 -1
  188. package/dist/validate/index.js.map +1 -1
  189. package/dist/validate/install-gate.d.ts.map +1 -1
  190. package/dist/validate/install-gate.js +10 -2
  191. package/dist/validate/install-gate.js.map +1 -1
  192. package/dist/validate/live-instruments.d.ts +44 -0
  193. package/dist/validate/live-instruments.d.ts.map +1 -0
  194. package/dist/validate/live-instruments.js +71 -0
  195. package/dist/validate/live-instruments.js.map +1 -0
  196. package/dist/validate/live-stage.js +5 -5
  197. package/dist/validate/live-stage.js.map +1 -1
  198. package/dist/validate/proof.d.ts +11 -1
  199. package/dist/validate/proof.d.ts.map +1 -1
  200. package/dist/validate/proof.js +7 -6
  201. package/dist/validate/proof.js.map +1 -1
  202. package/dist/validate/recipe-checks.d.ts.map +1 -1
  203. package/dist/validate/recipe-checks.js +6 -4
  204. package/dist/validate/recipe-checks.js.map +1 -1
  205. package/dist/validate/run.d.ts +5 -0
  206. package/dist/validate/run.d.ts.map +1 -1
  207. package/dist/validate/run.js +10 -1
  208. package/dist/validate/run.js.map +1 -1
  209. package/dist/validate/target.d.ts +41 -0
  210. package/dist/validate/target.d.ts.map +1 -1
  211. package/dist/validate/target.js +192 -16
  212. package/dist/validate/target.js.map +1 -1
  213. package/dist/validate/universe-stage.d.ts +71 -0
  214. package/dist/validate/universe-stage.d.ts.map +1 -0
  215. package/dist/validate/universe-stage.js +183 -0
  216. package/dist/validate/universe-stage.js.map +1 -0
  217. package/openclaw.plugin.json +1 -1
  218. package/package.json +1 -1
  219. package/dist/runtime/managed-wallet-guard.d.ts +0 -47
  220. package/dist/runtime/managed-wallet-guard.d.ts.map +0 -1
  221. package/dist/runtime/managed-wallet-guard.js +0 -106
  222. package/dist/runtime/managed-wallet-guard.js.map +0 -1
  223. package/dist/runtime/protection-nudge.d.ts +0 -67
  224. package/dist/runtime/protection-nudge.d.ts.map +0 -1
  225. package/dist/runtime/protection-nudge.js +0 -244
  226. package/dist/runtime/protection-nudge.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"metrics.js","sourceRoot":"","sources":["../../src/telemetry/metrics.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"metrics.js","sourceRoot":"","sources":["../../src/telemetry/metrics.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ /**
2
+ * The shared pure builder for `scanner.tick` — the one designed record saying a scan happened, fired
3
+ * once per scan including an empty or failed one.
4
+ *
5
+ * Both producers (the external intake HTTP boundary and the built-in scan-complete handler) go
6
+ * through this builder so the attribute shape, the body wording, and the wallet lowercasing cannot
7
+ * drift apart between them. Pure `(input) => EmittableEvent`; the call sites emit it through
8
+ * `emitEvent`'s guard, so a throwing build can never disturb request handling or the scan path. The
9
+ * producer contributes no free text, so there is nothing to `redact`.
10
+ */
11
+ import { EVENT_NAME, type ScannerTickStatus } from "../utils/event-catalog.js";
12
+ import type { EmittableEvent } from "../actions/event-derivation.js";
13
+ import type { ScannerScheduleMode } from "../scanners/scanner-definition.js";
14
+ /** One scan's tick facts, as either producer knows them. */
15
+ export interface ScannerTickInput {
16
+ readonly scannerId: string;
17
+ /** The scanner's configured name; the id when no name is resolvable. */
18
+ readonly scannerName: string;
19
+ /** Strategy wallet in any casing; omitted from the event when absent or empty. */
20
+ readonly address?: string;
21
+ readonly scheduleMode: ScannerScheduleMode;
22
+ readonly status: ScannerTickStatus;
23
+ /** Candidates THIS scan produced — `0` is a real value, not a missing one. */
24
+ readonly candidateCount: number;
25
+ /** Omitted when the producer cannot supply it. */
26
+ readonly durationMs?: number;
27
+ /** The scaffold's tick counter; external producer only. */
28
+ readonly tickSeq?: number;
29
+ }
30
+ /** Build the `scanner.tick` record for one scan. */
31
+ export declare function buildScannerTickEvent(input: ScannerTickInput): EmittableEvent<typeof EVENT_NAME.scannerTick>;
32
+ //# sourceMappingURL=scanner-tick-event.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scanner-tick-event.d.ts","sourceRoot":"","sources":["../../src/telemetry/scanner-tick-event.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EACL,UAAU,EAGV,KAAK,iBAAiB,EACvB,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AAE7E,4DAA4D;AAC5D,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,wEAAwE;IACxE,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,kFAAkF;IAClF,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,YAAY,EAAE,mBAAmB,CAAC;IAC3C,QAAQ,CAAC,MAAM,EAAE,iBAAiB,CAAC;IACnC,8EAA8E;IAC9E,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,kDAAkD;IAClD,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,2DAA2D;IAC3D,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,oDAAoD;AACpD,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,gBAAgB,GACtB,cAAc,CAAC,OAAO,UAAU,CAAC,WAAW,CAAC,CAkB/C"}
@@ -0,0 +1,32 @@
1
+ /**
2
+ * The shared pure builder for `scanner.tick` — the one designed record saying a scan happened, fired
3
+ * once per scan including an empty or failed one.
4
+ *
5
+ * Both producers (the external intake HTTP boundary and the built-in scan-complete handler) go
6
+ * through this builder so the attribute shape, the body wording, and the wallet lowercasing cannot
7
+ * drift apart between them. Pure `(input) => EmittableEvent`; the call sites emit it through
8
+ * `emitEvent`'s guard, so a throwing build can never disturb request handling or the scan path. The
9
+ * producer contributes no free text, so there is nothing to `redact`.
10
+ */
11
+ import { EVENT_NAME, eventAttrs, } from "../utils/event-catalog.js";
12
+ /** Build the `scanner.tick` record for one scan. */
13
+ export function buildScannerTickEvent(input) {
14
+ return {
15
+ name: EVENT_NAME.scannerTick,
16
+ level: "info",
17
+ body: `Scanner ${input.scannerName} tick: ${input.candidateCount} candidate(s) (${input.status})`,
18
+ attributes: eventAttrs({
19
+ "senpi.scanner.id": input.scannerId,
20
+ "senpi.scanner.name": input.scannerName,
21
+ // Addresses are case-insensitive; lowercase here — the one place both producers share — to
22
+ // match the identity join key.
23
+ "senpi.strategy.address": input.address ? input.address.toLowerCase() : undefined,
24
+ "senpi.scanner.schedule_mode": input.scheduleMode,
25
+ "senpi.scanner.tick_status": input.status,
26
+ "senpi.scanner.candidate_count": input.candidateCount,
27
+ "senpi.scanner.duration_ms": input.durationMs,
28
+ "senpi.scanner.tick_seq": input.tickSeq,
29
+ }),
30
+ };
31
+ }
32
+ //# sourceMappingURL=scanner-tick-event.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scanner-tick-event.js","sourceRoot":"","sources":["../../src/telemetry/scanner-tick-event.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EACL,UAAU,EACV,UAAU,GAGX,MAAM,2BAA2B,CAAC;AAqBnC,oDAAoD;AACpD,MAAM,UAAU,qBAAqB,CACnC,KAAuB;IAEvB,OAAO;QACL,IAAI,EAAE,UAAU,CAAC,WAAW;QAC5B,KAAK,EAAE,MAAM;QACb,IAAI,EAAE,WAAW,KAAK,CAAC,WAAW,UAAU,KAAK,CAAC,cAAc,kBAAkB,KAAK,CAAC,MAAM,GAAG;QACjG,UAAU,EAAE,UAAU,CAA0C;YAC9D,kBAAkB,EAAE,KAAK,CAAC,SAAS;YACnC,oBAAoB,EAAE,KAAK,CAAC,WAAW;YACvC,2FAA2F;YAC3F,+BAA+B;YAC/B,wBAAwB,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,SAAS;YACjF,6BAA6B,EAAE,KAAK,CAAC,YAAY;YACjD,2BAA2B,EAAE,KAAK,CAAC,MAAM;YACzC,+BAA+B,EAAE,KAAK,CAAC,cAAc;YACrD,2BAA2B,EAAE,KAAK,CAAC,UAAU;YAC7C,wBAAwB,EAAE,KAAK,CAAC,OAAO;SACxC,CAAC;KACH,CAAC;AACJ,CAAC"}
@@ -68,7 +68,15 @@ export interface StrategyDetails {
68
68
  name: string;
69
69
  status: string;
70
70
  traderAddress: string;
71
- initialBudget: number;
71
+ /**
72
+ * Total USDC funded into the strategy — `undefined` when the backend reported no readable figure.
73
+ *
74
+ * The distinction survives all the way to the reader: this object is what the `strategy: details`
75
+ * context slice hands an LLM decision prompt, and `JSON.stringify` drops an `undefined` key, so an
76
+ * unreadable amount reaches the prompt as ABSENT rather than as `0`. A zero here would say the
77
+ * wallet is empty, which is the opposite next step from "nobody read this figure".
78
+ */
79
+ initialBudget: number | undefined;
72
80
  totalPnl: number;
73
81
  pnlPercentage: number;
74
82
  createdAt: string;
@@ -1 +1 @@
1
- {"version":3,"file":"strategy.d.ts","sourceRoot":"","sources":["../../src/types/strategy.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"strategy.d.ts","sourceRoot":"","sources":["../../src/types/strategy.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,97 @@
1
+ import { type DeployPackage } from "../deploy/package.js";
2
+ /** One hardcoded ticker-shaped string, with the exact place a reader has to edit. */
3
+ export interface TickerOccurrence {
4
+ ticker: string;
5
+ /** Absolute path of the file the name appears in — strategy.yaml or an instance runtime.yaml. */
6
+ file: string;
7
+ /** Dotted key path, e.g. `catalog.assets` or `scanners[0].inputs.asset_universe`. */
8
+ keyPath: string;
9
+ }
10
+ /** Every hardcoded ticker-shaped string in catalog.assets + each instance's scanners[].inputs. */
11
+ export declare function packageHardcodedTickers(pkg: DeployPackage): TickerOccurrence[];
12
+ /**
13
+ * Mirror of validate_universe.py `unknown_tickers`: scanners on the xyz DEX prefix bare names in
14
+ * code (`f"xyz:{token}"`), so a bare ticker is live if `T` OR `xyz:T` is; a prefixed one only as
15
+ * written. Returns ticker → every occurrence of it, so one refusal can name every place to edit.
16
+ */
17
+ export declare function deadTickers(occurrences: TickerOccurrence[], live: ReadonlySet<string>): Map<string, TickerOccurrence[]>;
18
+ /** The injected universe source — deliberately the same shape as `DeployDeps.listLiveInstruments`. */
19
+ export interface UniverseCheckDeps {
20
+ /** Non-delisted live instrument names; [] means "could not read", NEVER "everything is dead". */
21
+ listLiveInstruments(): Promise<string[]>;
22
+ }
23
+ export type UniverseCheckResult =
24
+ /** Nothing hardcoded — derived universe; the source was never read. */
25
+ {
26
+ status: "no-hardcoded";
27
+ } | {
28
+ status: "clean";
29
+ liveCount: number;
30
+ checked: number;
31
+ } | {
32
+ status: "dead";
33
+ dead: Map<string, TickerOccurrence[]>;
34
+ liveCount: number;
35
+ }
36
+ /** The list could not be read (throw, or empty). No instrument may be called dead on this. */
37
+ | {
38
+ status: "unavailable";
39
+ reason: string;
40
+ };
41
+ /**
42
+ * The composed, reusable check: performs no I/O beyond the package's own YAML and the injected
43
+ * source, and returns a verdict any consumer can render. Deploy consumes it pre-money; validate
44
+ * consumes it read-only at its live depth.
45
+ *
46
+ * What it throws, exactly: **the injected source never throws out of here** — a rejecting or empty
47
+ * `listLiveInstruments` becomes `{ status: "unavailable" }`, which is the whole point of the
48
+ * status. Reading the package's own YAML is NOT wrapped: an instance `runtime.yaml` that has been
49
+ * deleted or made unparseable since the package loaded propagates its error. On the deploy path
50
+ * that cannot happen unobserved — `instancesWithoutDslExit` and `scannersDeclaringEnabled` parse
51
+ * the same files a few lines earlier in `runDeploy`, and `localStartRefusal` parses them at start —
52
+ * so the exposure belongs to the standalone consumer, and validate's call site CATCHES it: a
53
+ * package it could not read is reported as a check that did not run
54
+ * (`W_VALIDATE_UNIVERSE_UNCHECKED`), never as a clean one. That stayed a caller's concern rather
55
+ * than becoming a fifth status because it is NOT `unavailable` — "the live list could not be read"
56
+ * and "this package could not be read" are opposite facts — and deploy, which parses the same files
57
+ * first, has no branch that would ever reach it.
58
+ */
59
+ export declare function checkPackageUniverse(pkg: DeployPackage, deps: UniverseCheckDeps): Promise<UniverseCheckResult>;
60
+ /**
61
+ * The verdict as one journal line — plain words, never the union's tag name (`dead`/`unavailable`
62
+ * are internal labels, and a narration line is read by people and relayed by agents). `null` for a
63
+ * package that hardcodes nothing: there is no forward claim to make about a check that never ran.
64
+ * Carries no money language, so a read-only consumer can render it too.
65
+ */
66
+ export declare function describeUniverseVerdict(result: UniverseCheckResult): string | null;
67
+ /**
68
+ * The live names a hardcoded ticker was compared against — the reader's half of {@link deadTickers}.
69
+ *
70
+ * Exported because both renderers state it and neither may re-derive it: deploy's refusal and
71
+ * validate's finding must name the SAME two forms the comparison actually used, or one of them is
72
+ * telling an author to look for a name that was never checked.
73
+ */
74
+ export declare function checkedTickerForms(ticker: string): string[];
75
+ /**
76
+ * ONE refusal for the whole package, D-2 shape: every dead name, its literal value, its exact
77
+ * locations, and the mechanical fix — a reader repairs the whole universe in one pass. Both
78
+ * re-check routes are named, the runtime one first: the skills tool is what the author-side skill
79
+ * teaches, and `senpi validate` is what writes the proof deploy refuses a package without — so the
80
+ * loop "fix → re-check → deploy" never moves money until green, AND can actually close.
81
+ *
82
+ * Every "nothing was created" claim here is scoped to THIS RUN, deliberately. The gate fires before
83
+ * the first read of this package's live state, so on an adopt/resume run the package may already have
84
+ * a funded wallet and an installed runtime that this refusal cannot see — an absolute "no wallet was
85
+ * funded" would be false exactly there, and the move it invites (create and fund a second wallet
86
+ * beside the live one) is the expensive one. The gate may claim what it did, never what exists. Note
87
+ * the scoping has to stay precise in the other direction too: the gate DID read one live surface (the
88
+ * instrument list it quotes a count from), so it may not claim it read nothing live.
89
+ */
90
+ export declare function buildUniverseNotLiveRefusal(dead: Map<string, TickerOccurrence[]>, pkg: DeployPackage, liveCount: number, budget?: number): string;
91
+ /**
92
+ * The fail-closed unavailability detail — deliberately CODE-LESS: a code marks a refusal, and
93
+ * this is a step that could not run. Unknown is never "not live": no instrument is named dead
94
+ * on a read that did not succeed, so the message must never look like E_UNIVERSE_NOT_LIVE.
95
+ */
96
+ export declare function buildUniverseUnavailableDetail(reason: string, pkg: DeployPackage): string;
97
+ //# sourceMappingURL=package-universe.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"package-universe.d.ts","sourceRoot":"","sources":["../../src/universe/package-universe.ts"],"names":[],"mappings":"AA2CA,OAAO,EAAmB,KAAK,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAgC3E,qFAAqF;AACrF,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,iGAAiG;IACjG,IAAI,EAAE,MAAM,CAAC;IACb,qFAAqF;IACrF,OAAO,EAAE,MAAM,CAAC;CACjB;AAmCD,kGAAkG;AAClG,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,aAAa,GAAG,gBAAgB,EAAE,CAkB9E;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CACzB,WAAW,EAAE,gBAAgB,EAAE,EAC/B,IAAI,EAAE,WAAW,CAAC,MAAM,CAAC,GACxB,GAAG,CAAC,MAAM,EAAE,gBAAgB,EAAE,CAAC,CAWjC;AAED,sGAAsG;AACtG,MAAM,WAAW,iBAAiB;IAChC,iGAAiG;IACjG,mBAAmB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;CAC1C;AAED,MAAM,MAAM,mBAAmB;AAC7B,uEAAuE;AACrE;IAAE,MAAM,EAAE,cAAc,CAAA;CAAE,GAC1B;IAAE,MAAM,EAAE,OAAO,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GACvD;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,gBAAgB,EAAE,CAAC,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE;AAC9E,8FAA8F;GAC5F;IAAE,MAAM,EAAE,aAAa,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAE9C;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAsB,oBAAoB,CACxC,GAAG,EAAE,aAAa,EAClB,IAAI,EAAE,iBAAiB,GACtB,OAAO,CAAC,mBAAmB,CAAC,CAqB9B;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,mBAAmB,GAAG,MAAM,GAAG,IAAI,CAiBlF;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAE3D;AAuBD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,2BAA2B,CACzC,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,gBAAgB,EAAE,CAAC,EACrC,GAAG,EAAE,aAAa,EAClB,SAAS,EAAE,MAAM,EACjB,MAAM,CAAC,EAAE,MAAM,GACd,MAAM,CAgBR;AAED;;;;GAIG;AACH,wBAAgB,8BAA8B,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,aAAa,GAAG,MAAM,CAazF"}
@@ -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":"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"}