@senpi/runtime 3.0.129 → 3.0.130

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 (267) hide show
  1. package/README.md +12 -4
  2. package/dist/actions/action-events.d.ts +21 -7
  3. package/dist/actions/action-events.d.ts.map +1 -1
  4. package/dist/actions/action-events.js +54 -26
  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 +38 -7
  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 +122 -15
  11. package/dist/actions/close-position/close-position.action.js.map +1 -1
  12. package/dist/actions/decision-engine.d.ts.map +1 -1
  13. package/dist/actions/decision-engine.js +15 -2
  14. package/dist/actions/decision-engine.js.map +1 -1
  15. package/dist/actions/event-derivation.d.ts +71 -2
  16. package/dist/actions/event-derivation.d.ts.map +1 -1
  17. package/dist/actions/event-derivation.js +251 -8
  18. package/dist/actions/event-derivation.js.map +1 -1
  19. package/dist/actions/open-position/open-position.action.d.ts +12 -2
  20. package/dist/actions/open-position/open-position.action.d.ts.map +1 -1
  21. package/dist/actions/open-position/open-position.action.js +144 -41
  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 +62 -17
  26. package/dist/actions/position-tracker/position-tracker.action.js.map +1 -1
  27. package/dist/actions/skipped-signal-results.d.ts +25 -0
  28. package/dist/actions/skipped-signal-results.d.ts.map +1 -0
  29. package/dist/actions/skipped-signal-results.js +71 -0
  30. package/dist/actions/skipped-signal-results.js.map +1 -0
  31. package/dist/actions/store/types.d.ts +9 -2
  32. package/dist/actions/store/types.d.ts.map +1 -1
  33. package/dist/actions/store/types.js.map +1 -1
  34. package/dist/actions/types.d.ts +13 -0
  35. package/dist/actions/types.d.ts.map +1 -1
  36. package/dist/actions/types.js +13 -0
  37. package/dist/actions/types.js.map +1 -1
  38. package/dist/cli/guide-commands.d.ts.map +1 -1
  39. package/dist/cli/guide-commands.js +7 -6
  40. package/dist/cli/guide-commands.js.map +1 -1
  41. package/dist/cli/senpi-commands.d.ts.map +1 -1
  42. package/dist/cli/senpi-commands.js +4 -11
  43. package/dist/cli/senpi-commands.js.map +1 -1
  44. package/dist/dsl/engine-client/event-mapping.d.ts.map +1 -1
  45. package/dist/dsl/engine-client/event-mapping.js +14 -0
  46. package/dist/dsl/engine-client/event-mapping.js.map +1 -1
  47. package/dist/dsl/events/build-closed-event.d.ts +16 -1
  48. package/dist/dsl/events/build-closed-event.d.ts.map +1 -1
  49. package/dist/dsl/events/build-closed-event.js +6 -0
  50. package/dist/dsl/events/build-closed-event.js.map +1 -1
  51. package/dist/dsl/events/handlers.d.ts +7 -0
  52. package/dist/dsl/events/handlers.d.ts.map +1 -1
  53. package/dist/dsl/events/handlers.js +37 -7
  54. package/dist/dsl/events/handlers.js.map +1 -1
  55. package/dist/dsl/monitor/create-monitor.d.ts +6 -2
  56. package/dist/dsl/monitor/create-monitor.d.ts.map +1 -1
  57. package/dist/dsl/monitor/create-monitor.js +15 -9
  58. package/dist/dsl/monitor/create-monitor.js.map +1 -1
  59. package/dist/dsl/monitor/dsl-failure-events.d.ts +2 -0
  60. package/dist/dsl/monitor/dsl-failure-events.d.ts.map +1 -1
  61. package/dist/dsl/monitor/dsl-failure-events.js +2 -1
  62. package/dist/dsl/monitor/dsl-failure-events.js.map +1 -1
  63. package/dist/dsl/monitor/process-one-position.d.ts +1 -0
  64. package/dist/dsl/monitor/process-one-position.d.ts.map +1 -1
  65. package/dist/dsl/monitor/process-one-position.js +59 -25
  66. package/dist/dsl/monitor/process-one-position.js.map +1 -1
  67. package/dist/dsl/plugin/index.d.ts +8 -2
  68. package/dist/dsl/plugin/index.d.ts.map +1 -1
  69. package/dist/dsl/plugin/index.js +8 -6
  70. package/dist/dsl/plugin/index.js.map +1 -1
  71. package/dist/health/types.d.ts +13 -0
  72. package/dist/health/types.d.ts.map +1 -1
  73. package/dist/health/types.js +12 -0
  74. package/dist/health/types.js.map +1 -1
  75. package/dist/index.d.ts +27 -4
  76. package/dist/index.d.ts.map +1 -1
  77. package/dist/index.js +251 -39
  78. package/dist/index.js.map +1 -1
  79. package/dist/runtime/action-registry.d.ts.map +1 -1
  80. package/dist/runtime/action-registry.js +4 -3
  81. package/dist/runtime/action-registry.js.map +1 -1
  82. package/dist/runtime/auto-update/coordinator.d.ts +13 -6
  83. package/dist/runtime/auto-update/coordinator.d.ts.map +1 -1
  84. package/dist/runtime/auto-update/coordinator.js +86 -18
  85. package/dist/runtime/auto-update/coordinator.js.map +1 -1
  86. package/dist/runtime/auto-update/run-update-command.d.ts.map +1 -1
  87. package/dist/runtime/auto-update/run-update-command.js +4 -3
  88. package/dist/runtime/auto-update/run-update-command.js.map +1 -1
  89. package/dist/runtime/auto-update/types.d.ts +11 -5
  90. package/dist/runtime/auto-update/types.d.ts.map +1 -1
  91. package/dist/runtime/auto-update/types.js +11 -0
  92. package/dist/runtime/auto-update/types.js.map +1 -1
  93. package/dist/runtime/domain-events.d.ts.map +1 -1
  94. package/dist/runtime/domain-events.js +7 -0
  95. package/dist/runtime/domain-events.js.map +1 -1
  96. package/dist/runtime/lifecycle-events.d.ts +9 -1
  97. package/dist/runtime/lifecycle-events.d.ts.map +1 -1
  98. package/dist/runtime/lifecycle-events.js +11 -2
  99. package/dist/runtime/lifecycle-events.js.map +1 -1
  100. package/dist/runtime/reconcile-run.d.ts +13 -3
  101. package/dist/runtime/reconcile-run.d.ts.map +1 -1
  102. package/dist/runtime/reconcile-run.js +4 -3
  103. package/dist/runtime/reconcile-run.js.map +1 -1
  104. package/dist/runtime/reconcile-state.d.ts +8 -0
  105. package/dist/runtime/reconcile-state.d.ts.map +1 -1
  106. package/dist/runtime/reconcile-state.js +4 -1
  107. package/dist/runtime/reconcile-state.js.map +1 -1
  108. package/dist/runtime/run.d.ts +1 -0
  109. package/dist/runtime/run.d.ts.map +1 -1
  110. package/dist/runtime/run.js.map +1 -1
  111. package/dist/runtime/runtime-schema.js +3 -3
  112. package/dist/runtime/runtime-schema.js.map +1 -1
  113. package/dist/runtime/runtime.d.ts +1 -0
  114. package/dist/runtime/runtime.d.ts.map +1 -1
  115. package/dist/runtime/runtime.js +27 -3
  116. package/dist/runtime/runtime.js.map +1 -1
  117. package/dist/runtime/supervisor/long-running-supervisor.d.ts +13 -0
  118. package/dist/runtime/supervisor/long-running-supervisor.d.ts.map +1 -1
  119. package/dist/runtime/supervisor/long-running-supervisor.js +1 -0
  120. package/dist/runtime/supervisor/long-running-supervisor.js.map +1 -1
  121. package/dist/runtime/validate-dsl-position-tracking.d.ts.map +1 -1
  122. package/dist/runtime/validate-dsl-position-tracking.js +2 -1
  123. package/dist/runtime/validate-dsl-position-tracking.js.map +1 -1
  124. package/dist/runtime-api/handlers/ingest-signals.d.ts.map +1 -1
  125. package/dist/runtime-api/handlers/ingest-signals.js +1 -0
  126. package/dist/runtime-api/handlers/ingest-signals.js.map +1 -1
  127. package/dist/runtime-api/handlers/types.d.ts +5 -0
  128. package/dist/runtime-api/handlers/types.d.ts.map +1 -1
  129. package/dist/runtime-api/intake/ingest-request.d.ts +17 -0
  130. package/dist/runtime-api/intake/ingest-request.d.ts.map +1 -0
  131. package/dist/runtime-api/intake/ingest-request.js +34 -0
  132. package/dist/runtime-api/intake/ingest-request.js.map +1 -0
  133. package/dist/runtime-api/intake/intake-events.d.ts +1 -1
  134. package/dist/runtime-api/intake/intake-events.d.ts.map +1 -1
  135. package/dist/runtime-api/intake/intake-events.js +9 -3
  136. package/dist/runtime-api/intake/intake-events.js.map +1 -1
  137. package/dist/runtime-api/intake/intake-mount.d.ts.map +1 -1
  138. package/dist/runtime-api/intake/intake-mount.js +4 -19
  139. package/dist/runtime-api/intake/intake-mount.js.map +1 -1
  140. package/dist/runtime-api/intake/process-error-post.d.ts +6 -1
  141. package/dist/runtime-api/intake/process-error-post.d.ts.map +1 -1
  142. package/dist/runtime-api/intake/process-error-post.js +5 -1
  143. package/dist/runtime-api/intake/process-error-post.js.map +1 -1
  144. package/dist/runtime-api/intake/process-signal-post.d.ts +7 -1
  145. package/dist/runtime-api/intake/process-signal-post.d.ts.map +1 -1
  146. package/dist/runtime-api/intake/process-signal-post.js +5 -0
  147. package/dist/runtime-api/intake/process-signal-post.js.map +1 -1
  148. package/dist/runtime-api/intake/scaffold-error-router.js.map +1 -1
  149. package/dist/runtime-api/intake/scaffold-tick-router.d.ts +39 -0
  150. package/dist/runtime-api/intake/scaffold-tick-router.d.ts.map +1 -0
  151. package/dist/runtime-api/intake/scaffold-tick-router.js +122 -0
  152. package/dist/runtime-api/intake/scaffold-tick-router.js.map +1 -0
  153. package/dist/runtime-api/intake/scanner-launcher.d.ts.map +1 -1
  154. package/dist/runtime-api/intake/scanner-launcher.js +15 -0
  155. package/dist/runtime-api/intake/scanner-launcher.js.map +1 -1
  156. package/dist/runtime-api/intake/types.d.ts +55 -0
  157. package/dist/runtime-api/intake/types.d.ts.map +1 -1
  158. package/dist/runtime-api/routes/signals.d.ts +2 -0
  159. package/dist/runtime-api/routes/signals.d.ts.map +1 -1
  160. package/dist/runtime-api/routes/signals.js +5 -1
  161. package/dist/runtime-api/routes/signals.js.map +1 -1
  162. package/dist/runtime-api/routes/signals.schema.d.ts +43 -0
  163. package/dist/runtime-api/routes/signals.schema.d.ts.map +1 -1
  164. package/dist/runtime-api/routes/signals.schema.js +43 -0
  165. package/dist/runtime-api/routes/signals.schema.js.map +1 -1
  166. package/dist/runtime-api/server.d.ts +7 -1
  167. package/dist/runtime-api/server.d.ts.map +1 -1
  168. package/dist/runtime-api/server.js +1 -0
  169. package/dist/runtime-api/server.js.map +1 -1
  170. package/dist/scanners/engine/engine.d.ts +22 -1
  171. package/dist/scanners/engine/engine.d.ts.map +1 -1
  172. package/dist/scanners/engine/engine.js +78 -11
  173. package/dist/scanners/engine/engine.js.map +1 -1
  174. package/dist/scanners/engine/lifecycle.d.ts +7 -1
  175. package/dist/scanners/engine/lifecycle.d.ts.map +1 -1
  176. package/dist/scanners/events.d.ts +4 -0
  177. package/dist/scanners/events.d.ts.map +1 -1
  178. package/dist/scanners/events.js +2 -0
  179. package/dist/scanners/events.js.map +1 -1
  180. package/dist/scanners/external/scaffold/delivery.py +194 -25
  181. package/dist/scanners/external/scaffold/scaffold.py +172 -31
  182. package/dist/scanners/external/scaffold/senpi_mcp.py +150 -8
  183. package/dist/scanners/external/scaffold/tick_facts.py +130 -0
  184. package/dist/scanners/external/scaffold/ulid.py +58 -0
  185. package/dist/scanners/external-scanner-receiver.d.ts +17 -0
  186. package/dist/scanners/external-scanner-receiver.d.ts.map +1 -1
  187. package/dist/scanners/external-scanner-receiver.js +8 -0
  188. package/dist/scanners/external-scanner-receiver.js.map +1 -1
  189. package/dist/scanners/runtime-module.d.ts +1 -0
  190. package/dist/scanners/runtime-module.d.ts.map +1 -1
  191. package/dist/scanners/runtime-module.js +66 -9
  192. package/dist/scanners/runtime-module.js.map +1 -1
  193. package/dist/telemetry/attributes.d.ts +20 -0
  194. package/dist/telemetry/attributes.d.ts.map +1 -1
  195. package/dist/telemetry/attributes.js +24 -0
  196. package/dist/telemetry/attributes.js.map +1 -1
  197. package/dist/telemetry/event-builders.d.ts +81 -6
  198. package/dist/telemetry/event-builders.d.ts.map +1 -1
  199. package/dist/telemetry/event-builders.js +141 -17
  200. package/dist/telemetry/event-builders.js.map +1 -1
  201. package/dist/telemetry/event-store.d.ts +6 -0
  202. package/dist/telemetry/event-store.d.ts.map +1 -1
  203. package/dist/telemetry/event-store.js +12 -8
  204. package/dist/telemetry/event-store.js.map +1 -1
  205. package/dist/telemetry/live-telemetry.d.ts +238 -0
  206. package/dist/telemetry/live-telemetry.d.ts.map +1 -0
  207. package/dist/telemetry/live-telemetry.js +853 -0
  208. package/dist/telemetry/live-telemetry.js.map +1 -0
  209. package/dist/telemetry/metrics.d.ts +14 -2
  210. package/dist/telemetry/metrics.d.ts.map +1 -1
  211. package/dist/telemetry/metrics.js +19 -4
  212. package/dist/telemetry/metrics.js.map +1 -1
  213. package/dist/telemetry/scanner-stats.d.ts +143 -0
  214. package/dist/telemetry/scanner-stats.d.ts.map +1 -0
  215. package/dist/telemetry/scanner-stats.js +426 -0
  216. package/dist/telemetry/scanner-stats.js.map +1 -0
  217. package/dist/telemetry/scanner-tick-feed.d.ts +87 -0
  218. package/dist/telemetry/scanner-tick-feed.d.ts.map +1 -0
  219. package/dist/telemetry/scanner-tick-feed.js +48 -0
  220. package/dist/telemetry/scanner-tick-feed.js.map +1 -0
  221. package/dist/telemetry/spans/redact-pii.d.ts.map +1 -1
  222. package/dist/telemetry/spans/redact-pii.js +18 -2
  223. package/dist/telemetry/spans/redact-pii.js.map +1 -1
  224. package/dist/telemetry/strategy-topology.d.ts +99 -0
  225. package/dist/telemetry/strategy-topology.d.ts.map +1 -0
  226. package/dist/telemetry/strategy-topology.js +93 -0
  227. package/dist/telemetry/strategy-topology.js.map +1 -0
  228. package/dist/telemetry/telemetry-publisher.d.ts +76 -0
  229. package/dist/telemetry/telemetry-publisher.d.ts.map +1 -0
  230. package/dist/telemetry/telemetry-publisher.js +247 -0
  231. package/dist/telemetry/telemetry-publisher.js.map +1 -0
  232. package/dist/telemetry/tick-frame.d.ts +212 -0
  233. package/dist/telemetry/tick-frame.d.ts.map +1 -0
  234. package/dist/telemetry/tick-frame.js +421 -0
  235. package/dist/telemetry/tick-frame.js.map +1 -0
  236. package/dist/telemetry/timeline-buffer.d.ts +95 -0
  237. package/dist/telemetry/timeline-buffer.d.ts.map +1 -0
  238. package/dist/telemetry/timeline-buffer.js +237 -0
  239. package/dist/telemetry/timeline-buffer.js.map +1 -0
  240. package/dist/telemetry/tracing.d.ts +9 -0
  241. package/dist/telemetry/tracing.d.ts.map +1 -1
  242. package/dist/telemetry/tracing.js +36 -0
  243. package/dist/telemetry/tracing.js.map +1 -1
  244. package/dist/types/dsl/index.d.ts +11 -0
  245. package/dist/types/dsl/index.d.ts.map +1 -1
  246. package/dist/types/scanner.d.ts +15 -0
  247. package/dist/types/scanner.d.ts.map +1 -1
  248. package/dist/utils/event-catalog.d.ts +166 -0
  249. package/dist/utils/event-catalog.d.ts.map +1 -1
  250. package/dist/utils/event-catalog.js +18 -0
  251. package/dist/utils/event-catalog.js.map +1 -1
  252. package/dist/utils/logger.d.ts +4 -1
  253. package/dist/utils/logger.d.ts.map +1 -1
  254. package/dist/utils/logger.js.map +1 -1
  255. package/dist/utils/telemetry-required-log.d.ts +60 -0
  256. package/dist/utils/telemetry-required-log.d.ts.map +1 -0
  257. package/dist/utils/telemetry-required-log.js +105 -0
  258. package/dist/utils/telemetry-required-log.js.map +1 -0
  259. package/dist/utils/ulid.d.ts +9 -0
  260. package/dist/utils/ulid.d.ts.map +1 -0
  261. package/dist/utils/ulid.js +43 -0
  262. package/dist/utils/ulid.js.map +1 -0
  263. package/dist/validate/recipe-checks.d.ts.map +1 -1
  264. package/dist/validate/recipe-checks.js +2 -2
  265. package/dist/validate/recipe-checks.js.map +1 -1
  266. package/openclaw.plugin.json +8 -4
  267. package/package.json +1 -1
@@ -1,6 +1,8 @@
1
+ import { ACTION_TYPE } from '../types.js';
1
2
  import { HOOK_EVENT } from '../../types/hooks.js';
2
3
  import { createLogger } from '../../utils/logger.js';
3
4
  import { positionRegistryKey } from '../../runtime/position-id-registry.js';
5
+ import { emitActionResultEvents, buildActionEventContext, scanIdPayloadFields } from '../action-events.js';
4
6
  const logger = createLogger('[actions][position-tracker]');
5
7
  // ─── Pure helpers ────────────────────────────────────────────────────────────
6
8
  /** Normalize dex: "main" → undefined (DSL convention). */
@@ -113,46 +115,79 @@ const deltaMappers = {
113
115
  };
114
116
  // ─── Position Tracker Action ────────────────────────────────────────────────
115
117
  export class PositionTrackerAction {
118
+ config;
116
119
  context;
117
120
  name;
118
- actionType = 'POSITION_TRACKER';
121
+ actionType = ACTION_TYPE.positionTracker;
119
122
  constructor(config, context) {
123
+ this.config = config;
120
124
  this.context = context;
121
125
  this.name = config.name;
122
126
  }
127
+ eventCtx() {
128
+ return buildActionEventContext({
129
+ hookSystem: this.context.hookSystem,
130
+ actionName: this.name,
131
+ actionType: this.actionType,
132
+ decisionMode: this.config.decision_mode,
133
+ decisionModel: this.config.decision_model,
134
+ minConfidence: this.config.min_confidence,
135
+ positionIdRegistry: this.context.positionIdRegistry,
136
+ });
137
+ }
123
138
  async handle(event) {
124
139
  if (event.type !== HOOK_EVENT.ON_SIGNAL_DETECTED) {
125
140
  return this.skip('invalid_event_type', 'Ignored: wrong event type');
126
141
  }
127
- const signals = this.extractSignals(event);
142
+ const scanResult = event.data?.scanResult;
143
+ const signals = scanResult?.signals ?? [];
128
144
  if (signals.length === 0) {
129
145
  return this.skip('no_signals', 'No signals to process');
130
146
  }
131
147
  let firedCount = 0;
132
148
  let skippedCount = 0;
133
149
  let failedCount = 0;
134
- for (const signal of signals) {
135
- const mapper = deltaMappers[signal.signalType];
150
+ // One entry per evaluated signal; `signal.outcome` is derived one-per-entry, so every
151
+ // outcome point below records its own row.
152
+ const results = [];
153
+ for (const [signalIndex, signal] of signals.entries()) {
154
+ // Per-signal work window — every result entry below carries startedAt/endedAt.
155
+ const signalStartedAt = Date.now();
156
+ // Telemetry join: every row this signal produces carries its index into the scan's signal
157
+ // array, so the event mapper pairs the row with THIS signal's `meta`. Without it, two signals
158
+ // on the same asset in one pass — one asset on two books is exactly that, since positions are
159
+ // keyed by asset+dex — would both be read as the first one.
160
+ const indexRow = { __signalIndex: signalIndex };
161
+ const asset = signal.asset;
162
+ const signalType = signal.signalType;
163
+ const meta = signal.meta;
164
+ // The scanner carries the book on `meta.dex`; the Signal itself has no dex field. Kept raw
165
+ // (the registry key normalizes it) so the outcome resolves the same position.id the hook did.
166
+ const dexRow = typeof meta?.dex === 'string' && meta.dex.trim() !== '' ? { dex: meta.dex.trim() } : {};
167
+ const scoreRow = typeof signal.score === 'number' && Number.isFinite(signal.score) ? { score: signal.score } : {};
168
+ const mapper = deltaMappers[signalType];
136
169
  if (!mapper) {
137
- logger.info('skipping unsupported delta type', { signalType: signal.signalType, asset: signal.asset });
170
+ logger.info('skipping unsupported delta type', { signalType, asset });
171
+ results.push({ asset, signalType, ...dexRow, ...scoreRow, ...indexRow, success: true, reason: 'unsupported_delta_type', startedAt: signalStartedAt, endedAt: Date.now() });
138
172
  skippedCount++;
139
173
  continue;
140
174
  }
141
- const meta = signal.meta;
142
175
  if (!meta) {
143
- logger.warn('signal missing meta', { signalType: signal.signalType, asset: signal.asset });
176
+ logger.warn('signal missing meta', { signalType, asset });
177
+ results.push({ asset, signalType, ...dexRow, ...scoreRow, ...indexRow, success: true, reason: 'missing_meta', startedAt: signalStartedAt, endedAt: Date.now() });
144
178
  skippedCount++;
145
179
  continue;
146
180
  }
147
181
  const mapped = mapper(meta, event.address);
148
182
  if (!mapped) {
149
- logger.warn('signal missing required snapshot', { signalType: signal.signalType, asset: signal.asset });
183
+ logger.warn('signal missing required snapshot', { signalType, asset });
184
+ results.push({ asset, signalType, ...dexRow, ...scoreRow, ...indexRow, success: true, reason: 'missing_snapshot', startedAt: signalStartedAt, endedAt: Date.now() });
150
185
  skippedCount++;
151
186
  continue;
152
187
  }
153
188
  try {
154
- logger.info(`firing ${mapped.type}`, { asset: signal.asset });
155
- const positionFields = this.resolvePositionId(signal.signalType, mapped, event.address);
189
+ logger.info(`firing ${mapped.type}`, { asset });
190
+ const positionFields = this.resolvePositionId(signalType, mapped, event.address);
156
191
  await this.context.hookSystem.fire({
157
192
  type: mapped.type,
158
193
  runtimeName: event.runtimeName,
@@ -160,24 +195,38 @@ export class PositionTrackerAction {
160
195
  data: {
161
196
  ...mapped.data,
162
197
  ...positionFields,
198
+ // The ids of the tracker poll that OBSERVED this delta — not of the run that placed
199
+ // the order, which is a different run up to a poll interval earlier.
200
+ ...scanIdPayloadFields(event),
163
201
  },
164
202
  timestamp: new Date().toISOString(),
165
203
  });
204
+ // Carry the id the hook fired with. A CLOSED delta clears the registry entry inside
205
+ // `resolvePositionId`, so a post-loop lookup would resolve nothing and the closing
206
+ // outcome — the one that ends the position's story — would lose its join key.
207
+ const rowPositionId = typeof positionFields.__positionId === 'string' ? { __positionId: positionFields.__positionId } : {};
208
+ results.push({ asset, signalType, ...dexRow, ...scoreRow, ...rowPositionId, ...indexRow, success: true, reason: 'fired', startedAt: signalStartedAt, endedAt: Date.now() });
166
209
  firedCount++;
167
210
  }
168
211
  catch (err) {
212
+ const message = err instanceof Error ? err.message : String(err);
213
+ results.push({ asset, signalType, ...dexRow, ...scoreRow, ...indexRow, success: false, reason: 'exception', error: message, startedAt: signalStartedAt, endedAt: Date.now() });
169
214
  failedCount++;
170
- logger.error('failed to fire hook event', err, { signalType: signal.signalType, asset: signal.asset });
215
+ logger.error('failed to fire hook event', err, { signalType, asset });
171
216
  }
172
217
  }
173
218
  const success = failedCount === 0;
174
- return {
219
+ const result = {
175
220
  success,
176
221
  action_type: this.actionType,
177
222
  summary: `Tracked: ${firedCount} fired, ${skippedCount} skipped, ${failedCount} failed`,
178
- data: { firedCount, skippedCount, failedCount },
223
+ data: { firedCount, skippedCount, failedCount, results },
179
224
  ...(failedCount > 0 ? { error: `${failedCount} hook event(s) failed to fire` } : {}),
180
225
  };
226
+ // No decision engine runs here, so the result carries no `_decisionMeta` and no
227
+ // `decision.made` is derived — only the per-signal outcomes.
228
+ emitActionResultEvents(this.eventCtx(), event, event.address, result, { scanResult });
229
+ return result;
181
230
  }
182
231
  /**
183
232
  * Mint/reuse/clear the cross-flow position.id and return the fields to stamp on the
@@ -223,10 +272,6 @@ export class PositionTrackerAction {
223
272
  : {}),
224
273
  };
225
274
  }
226
- extractSignals(event) {
227
- const scanResult = event.data?.scanResult;
228
- return scanResult?.signals ?? [];
229
- }
230
275
  skip(reason, summary) {
231
276
  return { success: true, action_type: this.actionType, summary, skipped: true, skipReason: reason };
232
277
  }
@@ -1 +1 @@
1
- {"version":3,"file":"position-tracker.action.js","sourceRoot":"","sources":["../../../src/actions/position-tracker/position-tracker.action.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"position-tracker.action.js","sourceRoot":"","sources":["../../../src/actions/position-tracker/position-tracker.action.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Per-signal `results[]` rows synthesized for a batch-level early exit — the exits that return
3
+ * before the per-signal loop and would otherwise leave the scan's signals with no recorded outcome.
4
+ * Entry shape matches the loop's own rows so the derived per-signal telemetry is identical in
5
+ * structure: normalized `dex`, `direction`/`score` only when usable, and a zero-width work window
6
+ * (both stamps present — a half window is dropped downstream, and a missing one is
7
+ * indistinguishable from an unstamped legacy row).
8
+ *
9
+ * Each row carries `__signalIndex`, its position in the INPUT list, so the event mapper pairs the
10
+ * row with THIS signal's `meta` rather than with the first signal sharing its asset. It is read
11
+ * inside the loop, not zipped on by the caller: a dropped signal shifts every later output
12
+ * position. The input list is the scan's own signal array, which is what the mapper indexes into;
13
+ * close-position's static-params fallback list has no scan array behind it, so its index matches
14
+ * nothing and the mapper degrades to its asset join, as it does for any unmatched index.
15
+ *
16
+ * A signal with no usable asset is dropped: an outcome that names no asset is not attributable.
17
+ * A drop is a hole in the "no signal goes unrecorded" contract, so it is logged (once per call,
18
+ * with the count) rather than passing silently. Counts are unaffected — the row is still absent.
19
+ * Total by construction — it runs on the trading path and must never throw on a malformed entry.
20
+ */
21
+ export declare function skippedSignalResults(signals: readonly unknown[] | undefined, reason: string, nowMs: number, overrides?: {
22
+ success?: boolean;
23
+ error?: string;
24
+ }): Array<Record<string, unknown>>;
25
+ //# sourceMappingURL=skipped-signal-results.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skipped-signal-results.d.ts","sourceRoot":"","sources":["../../src/actions/skipped-signal-results.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,SAAS,OAAO,EAAE,GAAG,SAAS,EACvC,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EACb,SAAS,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,GAChD,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CA8ChC"}
@@ -0,0 +1,71 @@
1
+ import { createLogger } from '../utils/logger.js';
2
+ const logger = createLogger('[actions][skipped-signal-results]');
3
+ /**
4
+ * Per-signal `results[]` rows synthesized for a batch-level early exit — the exits that return
5
+ * before the per-signal loop and would otherwise leave the scan's signals with no recorded outcome.
6
+ * Entry shape matches the loop's own rows so the derived per-signal telemetry is identical in
7
+ * structure: normalized `dex`, `direction`/`score` only when usable, and a zero-width work window
8
+ * (both stamps present — a half window is dropped downstream, and a missing one is
9
+ * indistinguishable from an unstamped legacy row).
10
+ *
11
+ * Each row carries `__signalIndex`, its position in the INPUT list, so the event mapper pairs the
12
+ * row with THIS signal's `meta` rather than with the first signal sharing its asset. It is read
13
+ * inside the loop, not zipped on by the caller: a dropped signal shifts every later output
14
+ * position. The input list is the scan's own signal array, which is what the mapper indexes into;
15
+ * close-position's static-params fallback list has no scan array behind it, so its index matches
16
+ * nothing and the mapper degrades to its asset join, as it does for any unmatched index.
17
+ *
18
+ * A signal with no usable asset is dropped: an outcome that names no asset is not attributable.
19
+ * A drop is a hole in the "no signal goes unrecorded" contract, so it is logged (once per call,
20
+ * with the count) rather than passing silently. Counts are unaffected — the row is still absent.
21
+ * Total by construction — it runs on the trading path and must never throw on a malformed entry.
22
+ */
23
+ export function skippedSignalResults(signals, reason, nowMs, overrides) {
24
+ if (!Array.isArray(signals))
25
+ return [];
26
+ const rows = [];
27
+ let dropped = 0;
28
+ for (const [index, raw] of signals.entries()) {
29
+ if (raw === null || typeof raw !== 'object') {
30
+ dropped++;
31
+ continue;
32
+ }
33
+ const signal = raw;
34
+ const rawAsset = signal.asset;
35
+ // Kept verbatim (not trimmed) so it still joins the scanner signal it came from.
36
+ const asset = typeof rawAsset === 'string' ? rawAsset : typeof rawAsset === 'number' ? String(rawAsset) : '';
37
+ if (asset.trim() === '') {
38
+ dropped++;
39
+ continue;
40
+ }
41
+ const direction = signal.direction;
42
+ const score = signal.score;
43
+ // A decision-payload signal carries the book top-level (the strategy hoists it there); a raw
44
+ // scanner signal carries it only on `meta`, since `Signal` has no `dex` field. Both call
45
+ // shapes reach this helper, so both are read — top-level first, matching the per-signal loop.
46
+ const meta = signal.meta;
47
+ const metaDex = meta !== null && typeof meta === 'object' ? meta.dex : undefined;
48
+ const dex = typeof signal.dex === 'string' && signal.dex.trim() !== '' ? signal.dex : metaDex;
49
+ rows.push({
50
+ asset,
51
+ ...(direction === 'LONG' || direction === 'SHORT' ? { direction } : {}),
52
+ dex: typeof dex === 'string' && dex.trim() !== '' ? dex.trim() : 'main',
53
+ ...(typeof score === 'number' && Number.isFinite(score) ? { score } : {}),
54
+ success: overrides?.success ?? true,
55
+ reason,
56
+ ...(overrides?.error !== undefined ? { error: overrides.error } : {}),
57
+ startedAt: nowMs,
58
+ endedAt: nowMs,
59
+ __signalIndex: index,
60
+ });
61
+ }
62
+ if (dropped > 0) {
63
+ logger.warn('signals dropped from the skip rows: no usable asset to attribute the outcome to', undefined, {
64
+ reason,
65
+ dropped,
66
+ recorded: rows.length,
67
+ });
68
+ }
69
+ return rows;
70
+ }
71
+ //# sourceMappingURL=skipped-signal-results.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skipped-signal-results.js","sourceRoot":"","sources":["../../src/actions/skipped-signal-results.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,7 @@
3
3
  *
4
4
  * @module
5
5
  */
6
+ import type { RiskGateStatus } from "../../health/types.js";
6
7
  import type { ActionType, DecisionMode } from "../types.js";
7
8
  /** Gateway between {@link ActionResult.data} and persisted audit records. */
8
9
  export interface DecisionMeta {
@@ -40,12 +41,18 @@ export interface ActionExecutionRecord {
40
41
  } | null;
41
42
  /** Interpolated decision prompt (LLM/rule path); null when not applicable or not supplied. */
42
43
  decisionPrompt: string | null;
44
+ /**
45
+ * The persisted subset of the runtime's gate evaluations. `gateId`/`gateName` stay plain strings:
46
+ * this record is parsed back out of an untrusted payload, so it must be able to hold an id the
47
+ * current {@link RiskGateId} enum does not know. The verdicts are the runtime's own enum — those
48
+ * are the values readers branch on, and a re-spelling would drift.
49
+ */
43
50
  riskSnapshot: {
44
- gate: "OPEN" | "COOLDOWN" | "CLOSED";
51
+ gate: Exclude<RiskGateStatus, "N_A">;
45
52
  gates: Array<{
46
53
  gateId: string;
47
54
  gateName: string;
48
- status: "OPEN" | "COOLDOWN" | "CLOSED" | "N_A";
55
+ status: RiskGateStatus;
49
56
  reason?: string;
50
57
  metrics?: Record<string, unknown>;
51
58
  }>;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/actions/store/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/actions/store/types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/actions/store/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AA8HH,0DAA0D;AAC1D,MAAM,UAAU,oBAAoB;IAClC,OAAO;QACL,QAAQ,EAAE,KAAK;QACf,gBAAgB,EAAE,IAAI;QACtB,iBAAiB,EAAE,IAAI;QACvB,aAAa,EAAE,IAAI;QACnB,cAAc,EAAE,IAAI;QACpB,SAAS,EAAE,IAAI;QACf,WAAW,EAAE,IAAI;QACjB,QAAQ,EAAE,CAAC;QACX,YAAY,EAAE,CAAC;QACf,UAAU,EAAE,CAAC;QACb,SAAS,EAAE,CAAC;QACZ,qBAAqB,EAAE,CAAC;QACxB,mBAAmB,EAAE,IAAI;QACzB,sBAAsB,EAAE,IAAI;QAC5B,qBAAqB,EAAE,CAAC;QACxB,uBAAuB,EAAE,CAAC;QAC1B,eAAe,EAAE,CAAC;QAClB,kBAAkB,EAAE,EAAE;KACvB,CAAC;AACJ,CAAC;AAED,6DAA6D;AAC7D,MAAM,UAAU,sBAAsB,CACpC,UAAkB,EAClB,UAAsB,EACtB,OAAe,EACf,YAA0B;IAE1B,OAAO;QACL,UAAU;QACV,UAAU;QACV,OAAO;QACP,YAAY;QACZ,aAAa,EAAE,IAAI;QACnB,QAAQ,EAAE,CAAC;QACX,YAAY,EAAE,CAAC;QACf,UAAU,EAAE,CAAC;QACb,SAAS,EAAE,CAAC;QACZ,qBAAqB,EAAE,CAAC;QACxB,qBAAqB,EAAE,CAAC;QACxB,uBAAuB,EAAE,CAAC;QAC1B,eAAe,EAAE,CAAC;QAClB,SAAS,EAAE,CAAC;KACb,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/actions/store/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAqIH,0DAA0D;AAC1D,MAAM,UAAU,oBAAoB;IAClC,OAAO;QACL,QAAQ,EAAE,KAAK;QACf,gBAAgB,EAAE,IAAI;QACtB,iBAAiB,EAAE,IAAI;QACvB,aAAa,EAAE,IAAI;QACnB,cAAc,EAAE,IAAI;QACpB,SAAS,EAAE,IAAI;QACf,WAAW,EAAE,IAAI;QACjB,QAAQ,EAAE,CAAC;QACX,YAAY,EAAE,CAAC;QACf,UAAU,EAAE,CAAC;QACb,SAAS,EAAE,CAAC;QACZ,qBAAqB,EAAE,CAAC;QACxB,mBAAmB,EAAE,IAAI;QACzB,sBAAsB,EAAE,IAAI;QAC5B,qBAAqB,EAAE,CAAC;QACxB,uBAAuB,EAAE,CAAC;QAC1B,eAAe,EAAE,CAAC;QAClB,kBAAkB,EAAE,EAAE;KACvB,CAAC;AACJ,CAAC;AAED,6DAA6D;AAC7D,MAAM,UAAU,sBAAsB,CACpC,UAAkB,EAClB,UAAsB,EACtB,OAAe,EACf,YAA0B;IAE1B,OAAO;QACL,UAAU;QACV,UAAU;QACV,OAAO;QACP,YAAY;QACZ,aAAa,EAAE,IAAI;QACnB,QAAQ,EAAE,CAAC;QACX,YAAY,EAAE,CAAC;QACf,UAAU,EAAE,CAAC;QACb,SAAS,EAAE,CAAC;QACZ,qBAAqB,EAAE,CAAC;QACxB,qBAAqB,EAAE,CAAC;QACxB,uBAAuB,EAAE,CAAC;QAC1B,eAAe,EAAE,CAAC;QAClB,SAAS,EAAE,CAAC;KACb,CAAC;AACJ,CAAC"}
@@ -58,6 +58,19 @@ export type ActionType = 'OPEN_POSITION' | 'CLOSE_POSITION' | string;
58
58
  */
59
59
  export declare const DECISION_MODES: readonly ["llm", "rule", "none"];
60
60
  export type DecisionMode = (typeof DECISION_MODES)[number];
61
+ /**
62
+ * The built-in action types, in the exact spelling every action stamps onto its own `actionType`
63
+ * and hence onto `ActionResult.action_type`. This object is the single source of truth: the action
64
+ * classes, the registry (`action-registry.ts`), the validators (`runtime-schema.ts`,
65
+ * `recipe-checks.ts`, `validate-dsl-position-tracking.ts`) and the telemetry readers
66
+ * (`event-builders.ts`, `action-runtime-module.ts`) all read it, so the emitter and the readers can
67
+ * never drift. `ActionType` stays open (`| string`) for plugin actions, which are not listed here.
68
+ */
69
+ export declare const ACTION_TYPE: {
70
+ readonly openPosition: "OPEN_POSITION";
71
+ readonly closePosition: "CLOSE_POSITION";
72
+ readonly positionTracker: "POSITION_TRACKER";
73
+ };
61
74
  export interface ActionConfig {
62
75
  name: string;
63
76
  action_type: ActionType;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/actions/types.ts"],"names":[],"mappings":"AAEA,YAAY,EAAE,aAAa,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAE9E,YAAY,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AACpE,YAAY,EACV,cAAc,GACf,MAAM,sBAAsB,CAAC;AAE9B,YAAY,EACV,YAAY,EACZ,eAAe,EACf,SAAS,GACV,MAAM,oBAAoB,CAAC;AAE5B,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEjD,OAAO,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAE9D,mDAAmD;AACnD,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,sEAAsE;AACtE,MAAM,WAAW,iBAAiB;IAChC,UAAU,EAAE,UAAU,CAAC;IACvB,wEAAwE;IACxE,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,mEAAmE;IACnE,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IAC9C,0FAA0F;IAC1F,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,iFAAiF;IACjF,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,6CAA6C;IAC7C,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAID,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,mBAAmB,CAAC,CAAC,GAAG,OAAO;IAC9C,QAAQ,EAAE,CAAC,CAAC;IACZ,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAY,WAAW;IAC3B,MAAM,CAAC,CAAC,EAAE,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC;CACzE;AAGD,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AACpE,OAAO,KAAK,EAAG,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EACV,SAAS,EACT,YAAY,EACb,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAE1D,MAAM,MAAM,UAAU,GAClB,eAAe,GACf,gBAAgB,GAChB,MAAM,CAAC;AAEX;;;;;;GAMG;AACH,eAAO,MAAM,cAAc,kCAAmC,CAAC;AAE/D,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC;AAI3D,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,UAAU,CAAC;IACxB,aAAa,EAAE,YAAY,CAAC;IAC5B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,OAAO,CAAC,EAAE,OAAO,qBAAqB,EAAE,YAAY,EAAE,CAAC;IACvD,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC;AAID,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,WAAW,CAAC;IACnB,YAAY,EAAE,YAAY,CAAC;IAC3B,UAAU,EAAE,UAAU,CAAC;IACvB,WAAW,EAAE,WAAW,CAAC;IACzB,cAAc,EAAE,cAAc,CAAC;IAC/B,SAAS,EAAE,SAAS,CAAC;IACrB,aAAa,EAAE,mBAAmB,CAAC;IACnC,QAAQ,EAAE,cAAc,CAAC;IACzB,QAAQ,EAAE;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IACnD,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACxC,mGAAmG;IACnG,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAID;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,UAAU,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC;;OAEG;IACH,iBAAiB,CAAC,EAAE;QAClB,UAAU,EAAE,MAAM,CAAC;QACnB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;QAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;CACH;AAID,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,EAAE,UAAU,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAID;;;;;;;;GAQG;AACH,MAAM,WAAW,MAAM;IACrB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;IAChC,MAAM,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;CACjD;AAKD,MAAM,MAAM,aAAa,GAAG,CAAC,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,cAAc,KAAK,MAAM,CAAC;AAEtF,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACxC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/actions/types.ts"],"names":[],"mappings":"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"}
@@ -8,4 +8,17 @@ export { ScanStatus } from '../types/scanner.js';
8
8
  * registry can never drift.
9
9
  */
10
10
  export const DECISION_MODES = ['llm', 'rule', 'none'];
11
+ /**
12
+ * The built-in action types, in the exact spelling every action stamps onto its own `actionType`
13
+ * and hence onto `ActionResult.action_type`. This object is the single source of truth: the action
14
+ * classes, the registry (`action-registry.ts`), the validators (`runtime-schema.ts`,
15
+ * `recipe-checks.ts`, `validate-dsl-position-tracking.ts`) and the telemetry readers
16
+ * (`event-builders.ts`, `action-runtime-module.ts`) all read it, so the emitter and the readers can
17
+ * never drift. `ActionType` stays open (`| string`) for plugin actions, which are not listed here.
18
+ */
19
+ export const ACTION_TYPE = {
20
+ openPosition: 'OPEN_POSITION',
21
+ closePosition: 'CLOSE_POSITION',
22
+ positionTracker: 'POSITION_TRACKER',
23
+ };
11
24
  //# sourceMappingURL=types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/actions/types.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAgB/E,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAgEjD;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAU,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/actions/types.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAgB/E,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAgEjD;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAU,CAAC;AAI/D;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,YAAY,EAAE,eAAe;IAC7B,aAAa,EAAE,gBAAgB;IAC/B,eAAe,EAAE,kBAAkB;CAC3B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"guide-commands.d.ts","sourceRoot":"","sources":["../../src/cli/guide-commands.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAsdH,eAAO,MAAM,eAAe,QAgWpB,CAAC;AAIT,kFAAkF;AAClF,UAAU,gBAAgB;IACxB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,gBAAgB,CAAC;IACvD,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB,CAAC;IAC5C,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,gBAAgB,CAAC;IAC9D,MAAM,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,gBAAgB,CAAC;CACxF;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,gBAAgB,EACvB,OAAO,EAAE,MAAM,GACd,IAAI,CA2CN"}
1
+ {"version":3,"file":"guide-commands.d.ts","sourceRoot":"","sources":["../../src/cli/guide-commands.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAydH,eAAO,MAAM,eAAe,QA8VpB,CAAC;AAIT,kFAAkF;AAClF,UAAU,gBAAgB;IACxB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,gBAAgB,CAAC;IACvD,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB,CAAC;IAC5C,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,gBAAgB,CAAC;IAC9D,MAAM,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,gBAAgB,CAAC;CACxF;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,gBAAgB,EACvB,OAAO,EAAE,MAAM,GACd,IAAI,CA2CN"}
@@ -168,6 +168,9 @@ external_scanner (v2 supervised)
168
168
  marginPct / leverage ride at the TOP LEVEL of the signal dict — the runtime
169
169
  reads them directly. Omit them to size/lever from the recipe config.
170
170
 
171
+ data{} lands verbatim in telemetry (the signal.outcome event's
172
+ senpi.signal.meta attribute) — never put secrets, keys or tokens in it.
173
+
171
174
  Prompt/context access stays namespaced:
172
175
  {{signal_<scanner_name>}}
173
176
  `.trim();
@@ -657,12 +660,10 @@ senpi status — Lightweight runtime health digest
657
660
 
658
661
  senpi auto-update — Plugin auto-update (the runtime package's own version check)
659
662
  auto-update check-now Run the version check now instead of waiting for the
660
- poll timer. Answers "ran", "already-running", or
661
- "failed" when the check itself could not complete
662
- (exit 1), plus the updater snapshot. Refused
663
- (exit 1, UNAVAILABLE) when auto-update is off in
664
- config or the coordinator is not running. A forced
665
- check also runs the
663
+ poll timer. Answers "ran" or "already-running", plus
664
+ the updater snapshot. Refused (exit 1, UNAVAILABLE)
665
+ when auto-update is off in config or the coordinator
666
+ is not running. A forced check also runs the
666
667
  skills-manager tick, and on the path that installs an
667
668
  update it requests a gateway restart — so the call may
668
669
  return nothing at all
@@ -1 +1 @@
1
- {"version":3,"file":"guide-commands.js","sourceRoot":"","sources":["../../src/cli/guide-commands.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"guide-commands.js","sourceRoot":"","sources":["../../src/cli/guide-commands.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"senpi-commands.d.ts","sourceRoot":"","sources":["../../src/cli/senpi-commands.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAoBH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAe/D;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE;IAAE,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,KAAK,gBAAgB,GAAG,OAAO,CAAA;CAAE,GAChF,IAAI,CAk5CN;AAgbD;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,cAAc,EAAE,GAAG,MAAM,CAWvE;AAmDD,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,WAAW,EAAE,GAAG,MAAM,CASjE;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,MAAM,CAW3E;AA8HD,kEAAkE;AAClE,UAAU,gBAAgB;IACxB,uGAAuG;IACvG,OAAO,CACL,IAAI,EAAE,MAAM,EACZ,UAAU,CAAC,EAAE,MAAM,GAAG;QAAE,MAAM,CAAC,EAAE,OAAO,CAAA;KAAE,EAC1C,IAAI,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,OAAO,CAAA;KAAE,GAC1B,gBAAgB,CAAC;IACpB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB,CAAC;IAC5C,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,gBAAgB,CAAC;IAC/D,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,gBAAgB,CAAC;IAC9D,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,gBAAgB,CAAC;IACtE,MAAM,CACJ,EAAE,EACE,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,GACzD,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,GACzE,gBAAgB,CAAC;CACrB"}
1
+ {"version":3,"file":"senpi-commands.d.ts","sourceRoot":"","sources":["../../src/cli/senpi-commands.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAoBH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAe/D;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE;IAAE,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,KAAK,gBAAgB,GAAG,OAAO,CAAA;CAAE,GAChF,IAAI,CAw4CN;AAgbD;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,cAAc,EAAE,GAAG,MAAM,CAWvE;AAmDD,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,WAAW,EAAE,GAAG,MAAM,CASjE;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,MAAM,CAW3E;AA8HD,kEAAkE;AAClE,UAAU,gBAAgB;IACxB,uGAAuG;IACvG,OAAO,CACL,IAAI,EAAE,MAAM,EACZ,UAAU,CAAC,EAAE,MAAM,GAAG;QAAE,MAAM,CAAC,EAAE,OAAO,CAAA;KAAE,EAC1C,IAAI,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,OAAO,CAAA;KAAE,GAC1B,gBAAgB,CAAC;IACpB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB,CAAC;IAC5C,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,gBAAgB,CAAC;IAC/D,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,gBAAgB,CAAC;IAC9D,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,gBAAgB,CAAC;IACtE,MAAM,CACJ,EAAE,EACE,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,GACzD,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,GACzE,gBAAgB,CAAC;CACrB"}
@@ -1004,27 +1004,20 @@ export function registerSenpiCli(program) {
1004
1004
  console.error(`${AUTO_UPDATE_CHECK_LABEL}: FAILED (${code}: ${message})`);
1005
1005
  return;
1006
1006
  }
1007
+ if (opts.json) {
1008
+ writeJson(data);
1009
+ return;
1010
+ }
1007
1011
  // Success envelope is `{ outcome, reason, updater }` (see
1008
1012
  // `senpi.autoUpdate.checkNow` in index.ts). `updater` is the coordinator
1009
1013
  // snapshot; on `already-running` it is the previous completed cycle's.
1010
1014
  const payload = (data.payload ?? data);
1011
1015
  const outcome = typeof payload?.outcome === "string" ? payload.outcome : "unknown";
1012
1016
  const reason = typeof payload?.reason === "string" ? payload.reason : "";
1013
- // Set before the output format is chosen, so `--json` and the rendered
1014
- // form give a caller the same exit code.
1015
- if (outcome === "failed") {
1016
- process.exitCode = 1;
1017
- }
1018
- if (opts.json) {
1019
- writeJson(data);
1020
- return;
1021
- }
1022
1017
  console.log(`${AUTO_UPDATE_CHECK_LABEL}: ${outcome}${reason ? ` — ${reason}` : ""}`);
1023
1018
  const updater = payload?.updater;
1024
1019
  if (updater) {
1025
1020
  console.log(`installed ${updater.currentVersion ?? "—"} latest ${updater.latestVersion ?? "—"} health ${updater.health ?? "unknown"}`);
1026
- // The line the box follows decides which version `latest` even means.
1027
- console.log(`line: ${updater.updateSpec ?? "—"}`);
1028
1021
  console.log(`last action: ${updater.lastAction ?? "—"}`);
1029
1022
  console.log(`next check: ${updater.nextCheckAt ?? "—"}`);
1030
1023
  }