@senpi/runtime 1.1.0-dev.runtime-phase-2.20260610125851 → 1.1.0-dev.runtime-phase-2.20260610214734

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 (174) hide show
  1. package/dist/actions/close-position/close-position.action.d.ts.map +1 -1
  2. package/dist/actions/close-position/close-position.action.js +7 -2
  3. package/dist/actions/close-position/close-position.action.js.map +1 -1
  4. package/dist/actions/open-position/open-position.action.d.ts.map +1 -1
  5. package/dist/actions/open-position/open-position.action.js +20 -0
  6. package/dist/actions/open-position/open-position.action.js.map +1 -1
  7. package/dist/actions/position-tracker/position-tracker.action.d.ts +6 -0
  8. package/dist/actions/position-tracker/position-tracker.action.d.ts.map +1 -1
  9. package/dist/actions/position-tracker/position-tracker.action.js +39 -0
  10. package/dist/actions/position-tracker/position-tracker.action.js.map +1 -1
  11. package/dist/dsl/engine-client/event-mapping.d.ts +2 -0
  12. package/dist/dsl/engine-client/event-mapping.d.ts.map +1 -1
  13. package/dist/dsl/engine-client/event-mapping.js +3 -0
  14. package/dist/dsl/engine-client/event-mapping.js.map +1 -1
  15. package/dist/dsl/events/build-closed-event.d.ts.map +1 -1
  16. package/dist/dsl/events/build-closed-event.js +1 -0
  17. package/dist/dsl/events/build-closed-event.js.map +1 -1
  18. package/dist/dsl/events/guards.d.ts.map +1 -1
  19. package/dist/dsl/events/guards.js +10 -0
  20. package/dist/dsl/events/guards.js.map +1 -1
  21. package/dist/dsl/events/handlers.d.ts.map +1 -1
  22. package/dist/dsl/events/handlers.js +7 -0
  23. package/dist/dsl/events/handlers.js.map +1 -1
  24. package/dist/dsl/events/initial-state.d.ts.map +1 -1
  25. package/dist/dsl/events/initial-state.js +3 -1
  26. package/dist/dsl/events/initial-state.js.map +1 -1
  27. package/dist/dsl/monitor/process-one-position.d.ts.map +1 -1
  28. package/dist/dsl/monitor/process-one-position.js +36 -2
  29. package/dist/dsl/monitor/process-one-position.js.map +1 -1
  30. package/dist/recording/emitter.d.ts +21 -0
  31. package/dist/recording/emitter.d.ts.map +1 -0
  32. package/dist/recording/emitter.js +2 -0
  33. package/dist/recording/emitter.js.map +1 -0
  34. package/dist/recording/identity.d.ts +34 -0
  35. package/dist/recording/identity.d.ts.map +1 -0
  36. package/dist/recording/identity.js +2 -0
  37. package/dist/recording/identity.js.map +1 -0
  38. package/dist/recording/index.d.ts +11 -0
  39. package/dist/recording/index.d.ts.map +1 -0
  40. package/dist/recording/index.js +2 -0
  41. package/dist/recording/index.js.map +1 -0
  42. package/dist/recording/noop-emitter.d.ts +17 -0
  43. package/dist/recording/noop-emitter.d.ts.map +1 -0
  44. package/dist/recording/noop-emitter.js +16 -0
  45. package/dist/recording/noop-emitter.js.map +1 -0
  46. package/dist/recording/otel/attributes.d.ts +35 -0
  47. package/dist/recording/otel/attributes.d.ts.map +1 -0
  48. package/dist/recording/otel/attributes.js +131 -0
  49. package/dist/recording/otel/attributes.js.map +1 -0
  50. package/dist/recording/otel/constants.d.ts +81 -0
  51. package/dist/recording/otel/constants.d.ts.map +1 -0
  52. package/dist/recording/otel/constants.js +96 -0
  53. package/dist/recording/otel/constants.js.map +1 -0
  54. package/dist/recording/otel/ids.d.ts +14 -0
  55. package/dist/recording/otel/ids.d.ts.map +1 -0
  56. package/dist/recording/otel/ids.js +12 -0
  57. package/dist/recording/otel/ids.js.map +1 -0
  58. package/dist/recording/otel/index.d.ts +13 -0
  59. package/dist/recording/otel/index.d.ts.map +1 -0
  60. package/dist/recording/otel/index.js +9 -0
  61. package/dist/recording/otel/index.js.map +1 -0
  62. package/dist/recording/otel/mappers.d.ts +42 -0
  63. package/dist/recording/otel/mappers.d.ts.map +1 -0
  64. package/dist/recording/otel/mappers.js +342 -0
  65. package/dist/recording/otel/mappers.js.map +1 -0
  66. package/dist/recording/otel/otel-emitter.d.ts +37 -0
  67. package/dist/recording/otel/otel-emitter.d.ts.map +1 -0
  68. package/dist/recording/otel/otel-emitter.js +75 -0
  69. package/dist/recording/otel/otel-emitter.js.map +1 -0
  70. package/dist/recording/otel/redaction.d.ts +31 -0
  71. package/dist/recording/otel/redaction.d.ts.map +1 -0
  72. package/dist/recording/otel/redaction.js +40 -0
  73. package/dist/recording/otel/redaction.js.map +1 -0
  74. package/dist/recording/records.d.ts +341 -0
  75. package/dist/recording/records.d.ts.map +1 -0
  76. package/dist/recording/records.js +14 -0
  77. package/dist/recording/records.js.map +1 -0
  78. package/dist/recording/transport/batcher.d.ts +59 -0
  79. package/dist/recording/transport/batcher.d.ts.map +1 -0
  80. package/dist/recording/transport/batcher.js +234 -0
  81. package/dist/recording/transport/batcher.js.map +1 -0
  82. package/dist/recording/transport/client.d.ts +41 -0
  83. package/dist/recording/transport/client.d.ts.map +1 -0
  84. package/dist/recording/transport/client.js +69 -0
  85. package/dist/recording/transport/client.js.map +1 -0
  86. package/dist/recording/transport/config.d.ts +53 -0
  87. package/dist/recording/transport/config.d.ts.map +1 -0
  88. package/dist/recording/transport/config.js +41 -0
  89. package/dist/recording/transport/config.js.map +1 -0
  90. package/dist/recording/transport/index.d.ts +16 -0
  91. package/dist/recording/transport/index.d.ts.map +1 -0
  92. package/dist/recording/transport/index.js +12 -0
  93. package/dist/recording/transport/index.js.map +1 -0
  94. package/dist/recording/transport/rows.d.ts +88 -0
  95. package/dist/recording/transport/rows.d.ts.map +1 -0
  96. package/dist/recording/transport/rows.js +15 -0
  97. package/dist/recording/transport/rows.js.map +1 -0
  98. package/dist/recording/wiring/emitter-factory.d.ts +39 -0
  99. package/dist/recording/wiring/emitter-factory.d.ts.map +1 -0
  100. package/dist/recording/wiring/emitter-factory.js +62 -0
  101. package/dist/recording/wiring/emitter-factory.js.map +1 -0
  102. package/dist/recording/wiring/identity.d.ts +27 -0
  103. package/dist/recording/wiring/identity.d.ts.map +1 -0
  104. package/dist/recording/wiring/identity.js +51 -0
  105. package/dist/recording/wiring/identity.js.map +1 -0
  106. package/dist/recording/wiring/index.d.ts +12 -0
  107. package/dist/recording/wiring/index.d.ts.map +1 -0
  108. package/dist/recording/wiring/index.js +9 -0
  109. package/dist/recording/wiring/index.js.map +1 -0
  110. package/dist/recording/wiring/record-builders.d.ts +74 -0
  111. package/dist/recording/wiring/record-builders.d.ts.map +1 -0
  112. package/dist/recording/wiring/record-builders.js +458 -0
  113. package/dist/recording/wiring/record-builders.js.map +1 -0
  114. package/dist/recording/wiring/subscriber.d.ts +28 -0
  115. package/dist/recording/wiring/subscriber.d.ts.map +1 -0
  116. package/dist/recording/wiring/subscriber.js +171 -0
  117. package/dist/recording/wiring/subscriber.js.map +1 -0
  118. package/dist/recording/wiring/values.d.ts +19 -0
  119. package/dist/recording/wiring/values.d.ts.map +1 -0
  120. package/dist/recording/wiring/values.js +49 -0
  121. package/dist/recording/wiring/values.js.map +1 -0
  122. package/dist/runtime/create-runtime-context.d.ts +2 -0
  123. package/dist/runtime/create-runtime-context.d.ts.map +1 -1
  124. package/dist/runtime/create-runtime-context.js +1 -0
  125. package/dist/runtime/create-runtime-context.js.map +1 -1
  126. package/dist/runtime/load-runtime-config.d.ts +9 -0
  127. package/dist/runtime/load-runtime-config.d.ts.map +1 -1
  128. package/dist/runtime/load-runtime-config.js +41 -1
  129. package/dist/runtime/load-runtime-config.js.map +1 -1
  130. package/dist/runtime/run.d.ts.map +1 -1
  131. package/dist/runtime/run.js +3 -2
  132. package/dist/runtime/run.js.map +1 -1
  133. package/dist/runtime/runtime-schema.d.ts +182 -0
  134. package/dist/runtime/runtime-schema.d.ts.map +1 -1
  135. package/dist/runtime/runtime-schema.js +17 -0
  136. package/dist/runtime/runtime-schema.js.map +1 -1
  137. package/dist/runtime/runtime.d.ts +21 -0
  138. package/dist/runtime/runtime.d.ts.map +1 -1
  139. package/dist/runtime/runtime.js +267 -149
  140. package/dist/runtime/runtime.js.map +1 -1
  141. package/dist/scanners/events.d.ts +6 -0
  142. package/dist/scanners/events.d.ts.map +1 -1
  143. package/dist/scanners/events.js.map +1 -1
  144. package/dist/scanners/runtime-module.d.ts.map +1 -1
  145. package/dist/scanners/runtime-module.js +9 -1
  146. package/dist/scanners/runtime-module.js.map +1 -1
  147. package/dist/senpi/client.d.ts +19 -0
  148. package/dist/senpi/client.d.ts.map +1 -1
  149. package/dist/senpi/client.js +22 -0
  150. package/dist/senpi/client.js.map +1 -1
  151. package/dist/senpi/index.d.ts +2 -1
  152. package/dist/senpi/index.d.ts.map +1 -1
  153. package/dist/senpi/index.js +1 -1
  154. package/dist/senpi/index.js.map +1 -1
  155. package/dist/state/state-manager.d.ts.map +1 -1
  156. package/dist/state/state-manager.js +5 -0
  157. package/dist/state/state-manager.js.map +1 -1
  158. package/dist/tracking/build-rehydrate-items.d.ts +15 -0
  159. package/dist/tracking/build-rehydrate-items.d.ts.map +1 -0
  160. package/dist/tracking/build-rehydrate-items.js +19 -0
  161. package/dist/tracking/build-rehydrate-items.js.map +1 -0
  162. package/dist/tracking/index.d.ts +3 -0
  163. package/dist/tracking/index.d.ts.map +1 -1
  164. package/dist/tracking/index.js +2 -0
  165. package/dist/tracking/index.js.map +1 -1
  166. package/dist/tracking/position-id-registry.d.ts +60 -0
  167. package/dist/tracking/position-id-registry.d.ts.map +1 -0
  168. package/dist/tracking/position-id-registry.js +133 -0
  169. package/dist/tracking/position-id-registry.js.map +1 -0
  170. package/dist/types/dsl/index.d.ts +23 -0
  171. package/dist/types/dsl/index.d.ts.map +1 -1
  172. package/dist/types/runtime.d.ts +6 -0
  173. package/dist/types/runtime.d.ts.map +1 -1
  174. package/package.json +1 -1
@@ -31,10 +31,11 @@ import { createActionNotificationSubscriber, isActionLifecycleNotificationsEnabl
31
31
  import { MaxLeverageCache } from "../leverage/max-leverage-cache.js";
32
32
  import { buildStateLayout } from "./state-layout.js";
33
33
  import { createLogger } from "../utils/logger.js";
34
- import { createTrackingHandler, EventTracker, BatchingTransport, NoOpTransport, TRACKING_API_BASE_URL, } from "../tracking/index.js";
34
+ import { createTrackingHandler, EventTracker, BatchingTransport, NoOpTransport, TRACKING_API_BASE_URL, PositionIdRegistry, positionRegistryKey, buildRehydrateItems, } from "../tracking/index.js";
35
35
  import { VERSION } from "../version.js";
36
36
  import { randomUUID } from "node:crypto";
37
37
  import { trackingContext } from "../tracking/context.js";
38
+ import { buildIdentity, createRecordingComponents, createRecordingSubscriber, resolveTelemetryEnabled, } from "../recording/wiring/index.js";
38
39
  const logger = createLogger("[senpi-core][runtime]");
39
40
  export class Runtime {
40
41
  config;
@@ -42,12 +43,15 @@ export class Runtime {
42
43
  bus;
43
44
  hookSystem;
44
45
  stateManager;
46
+ positionIdRegistry;
45
47
  scannerModule;
46
48
  dslPlugin = null;
47
49
  // riskGuardian removed — gate decisions are now real-time in checkGate
48
50
  senpi = null;
49
51
  healthStateModule = null;
50
52
  trackingHandler = null;
53
+ recordingSubscriber = null;
54
+ recordingBatcher = null;
51
55
  started = false;
52
56
  startedAt = null;
53
57
  /** Serial signal processing: queue and consumer so only one signal is handled at a time. */
@@ -60,6 +64,8 @@ export class Runtime {
60
64
  actionRuntimeModule;
61
65
  /** Stored so we can call off() in stop() and avoid retaining Runtime via scanner EventEmitter. */
62
66
  onScannerRunComplete = null;
67
+ onScannerRunSkip = null;
68
+ onScannerRunError = null;
63
69
  /** Cached strategy id resolved from the runtime wallet on first {@link auditQuery} call. */
64
70
  cachedStrategyId = null;
65
71
  /** In-flight resolution promise; ensures concurrent first-burst callers reuse one `listStrategies`. */
@@ -203,6 +209,19 @@ export class Runtime {
203
209
  throw new AuditQueryError("UPSTREAM", `audit_query failed: ${message}`);
204
210
  }
205
211
  }
212
+ /**
213
+ * Repopulate the PositionIdRegistry's confirmed entries at boot from persisted DSL
214
+ * states. Best-effort: a failure here must not block runtime start.
215
+ */
216
+ async rehydratePositionIdRegistry() {
217
+ try {
218
+ const dslStates = await this.stateManager.listDslStates(this.strategyConfig.address);
219
+ this.positionIdRegistry.rehydrate(buildRehydrateItems(dslStates));
220
+ }
221
+ catch (err) {
222
+ logger.warn("position.id registry rehydrate failed, continuing with empty registry", { err });
223
+ }
224
+ }
206
225
  /**
207
226
  * Cached wallet → strategy-id lookup. Concurrent callers share one
208
227
  * in-flight `listStrategies` promise; the cached id is reused across
@@ -287,6 +306,7 @@ export class Runtime {
287
306
  this.trackingHandler = createTrackingHandler(this.bus, tracker);
288
307
  this.stateManager = new StateManager(stateDir);
289
308
  await this.stateManager.hydrate();
309
+ this.positionIdRegistry = new PositionIdRegistry();
290
310
  const senpi = mcpTransport
291
311
  ? new SenpiClient(mcpTransport)
292
312
  : new SenpiClient({ apiKey });
@@ -295,163 +315,236 @@ export class Runtime {
295
315
  }
296
316
  this.senpi = senpi;
297
317
  this.strategyConfig = resolveStrategyConfig(this.config);
298
- // try {
299
- // const { reconcileStateWithBackend } = await import("./reconcile-state.js");
300
- // await reconcileStateWithBackend(this.stateManager, senpi, [this.strategyConfig.address]);
301
- // } catch (err) {
302
- // logger.warn("reconcile after hydrate failed, continuing", { err });
303
- // }
304
- const llmDecision = createLlmDecision({});
305
- const contextBuilder = createContextBuilder();
306
- const notifications = createNotificationService({
307
- ...this.config.notifications,
308
- mcpTransport: this.options.mcpTransport,
309
- });
310
- const riskBlock = this.config.risk;
311
- const strategyAddress = this.strategyConfig.address;
312
- const auditLog = riskBlock ? createRiskAuditLog(stateDir) : undefined;
313
- // In-memory strategy-lifecycle tracker (§4 seed): owns the self-pause state that
314
- // RiskGuard used to hold and fires the hook + notification on a running→paused
315
- // transition. RiskGuard stays stateless and only reports gate evaluations.
316
- const lifecycle = createStrategyLifecycle({
317
- hookSystem: this.hookSystem,
318
- notifications,
319
- runtimeName: this.config.name,
318
+ await this.rehydratePositionIdRegistry();
319
+ // Telemetry recording: subscribe the emitter to the bus (on by default; degrades to a noop
320
+ // emitter when disabled or when no token is present — never a boot failure). Identity + config
321
+ // fingerprint are built lazily from the unresolved config — only on the live path, and never
322
+ // from the resolved config (which would inline secrets).
323
+ const telemetryConfig = this.config.telemetry;
324
+ const recording = createRecordingComponents({
325
+ enabled: resolveTelemetryEnabled(telemetryConfig?.enabled, process.env.SENPI_TELEMETRY_ENABLED),
326
+ token: trackingApiKey,
327
+ identity: () => buildIdentity({
328
+ name: this.config.name,
329
+ recipeVersion: this.config.version,
330
+ strategyAddress: this.strategyConfig.address,
331
+ bootId: this.runtimeBootId,
332
+ unresolvedConfig: this.options.unresolvedConfig,
333
+ }),
334
+ scopeVersion: VERSION,
335
+ baseUrl: telemetryConfig?.url,
336
+ flushIntervalMs: telemetryConfig?.flush_interval_ms,
320
337
  });
321
- const riskGuard = riskBlock && senpi
322
- ? createRiskGuard({
338
+ this.recordingBatcher = recording.batcher;
339
+ // Only attach the subscriber when telemetry is live (batcher present): with a noop emitter,
340
+ // per-event record assembly on the serial signal path would be pure dead work.
341
+ if (recording.batcher) {
342
+ this.recordingSubscriber = createRecordingSubscriber(this.bus, recording.emitter, {
343
+ unresolvedConfig: this.options.unresolvedConfig,
344
+ // Narrow read-only accessor over the registry (Rule 1: recording never sees the
345
+ // registry or RuntimeContext); sync map read, safe on the bus handler path.
346
+ resolvePositionId: (address, dex, asset) => this.positionIdRegistry.get(positionRegistryKey(address, dex, asset))?.positionId,
347
+ });
348
+ }
349
+ // Everything from here to `started = true` can throw; without the catch, stop() would
350
+ // early-return on `!this.started` and the recording batcher/subscriber would leak.
351
+ try {
352
+ // try {
353
+ // const { reconcileStateWithBackend } = await import("./reconcile-state.js");
354
+ // await reconcileStateWithBackend(this.stateManager, senpi, [this.strategyConfig.address]);
355
+ // } catch (err) {
356
+ // logger.warn("reconcile after hydrate failed, continuing", { err });
357
+ // }
358
+ const llmDecision = createLlmDecision({});
359
+ const contextBuilder = createContextBuilder();
360
+ const notifications = createNotificationService({
361
+ ...this.config.notifications,
362
+ mcpTransport: this.options.mcpTransport,
363
+ });
364
+ const riskBlock = this.config.risk;
365
+ const strategyAddress = this.strategyConfig.address;
366
+ const auditLog = riskBlock ? createRiskAuditLog(stateDir) : undefined;
367
+ // In-memory strategy-lifecycle tracker (§4 seed): owns the self-pause state that
368
+ // RiskGuard used to hold and fires the hook + notification on a running→paused
369
+ // transition. RiskGuard stays stateless and only reports gate evaluations.
370
+ const lifecycle = createStrategyLifecycle({
371
+ hookSystem: this.hookSystem,
372
+ notifications,
373
+ runtimeName: this.config.name,
374
+ });
375
+ const riskGuard = riskBlock && senpi
376
+ ? createRiskGuard({
377
+ senpi,
378
+ notifications,
379
+ strategies: new Map([[strategyAddress, this.strategyConfig]]),
380
+ // Human strategy label for alerts; risk-guard falls back to the
381
+ // truncated address when an address has no name here.
382
+ strategyNames: { [strategyAddress]: this.config.name },
383
+ auditLog,
384
+ lifecycleTracker: lifecycle,
385
+ })
386
+ : createRiskGuardStub();
387
+ logger.info("Runtime.start() creating scanner module");
388
+ const layout = buildStateLayout(stateDir);
389
+ // Augment caller-supplied providers with StateManager-backed DSL state access
390
+ const augmentedProviders = {
391
+ ...scannerProviders,
392
+ getDslStatesForStrategy: scannerProviders?.getDslStatesForStrategy
393
+ ?? (async (address) => this.stateManager.listDslStates(address)),
394
+ };
395
+ this.scannerModule = createScannerModuleFromRuntimeConfig(this.config, layout.scannerRoot, augmentedProviders);
396
+ logger.info("Runtime.start() scanner module created, calling start()");
397
+ // Pre-load max leverage cache (non-blocking — log warning on failure)
398
+ const maxLeverageCache = new MaxLeverageCache(senpi);
399
+ try {
400
+ await maxLeverageCache.load();
401
+ }
402
+ catch (err) {
403
+ logger.warn("failed to pre-load max leverage cache, will retry on first use", { err });
404
+ }
405
+ // Build RuntimeContext once per trading recipe and reuse for all actions.
406
+ const runtimeContext = createRuntimeContext(this.strategyConfig, {
323
407
  senpi,
408
+ hookSystem: this.hookSystem,
409
+ llmDecision,
410
+ contextBuilder,
411
+ riskGuard,
324
412
  notifications,
325
- strategies: new Map([[strategyAddress, this.strategyConfig]]),
326
- // Human strategy label for alerts; risk-guard falls back to the
327
- // truncated address when an address has no name here.
328
- strategyNames: { [strategyAddress]: this.config.name },
329
- auditLog,
330
- lifecycleTracker: lifecycle,
331
- })
332
- : createRiskGuardStub();
333
- logger.info("Runtime.start() creating scanner module");
334
- const layout = buildStateLayout(stateDir);
335
- // Augment caller-supplied providers with StateManager-backed DSL state access
336
- const augmentedProviders = {
337
- ...scannerProviders,
338
- getDslStatesForStrategy: scannerProviders?.getDslStatesForStrategy
339
- ?? (async (address) => this.stateManager.listDslStates(address)),
340
- };
341
- this.scannerModule = createScannerModuleFromRuntimeConfig(this.config, layout.scannerRoot, augmentedProviders);
342
- logger.info("Runtime.start() scanner module created, calling start()");
343
- // Pre-load max leverage cache (non-blocking — log warning on failure)
344
- const maxLeverageCache = new MaxLeverageCache(senpi);
345
- try {
346
- await maxLeverageCache.load();
347
- }
348
- catch (err) {
349
- logger.warn("failed to pre-load max leverage cache, will retry on first use", { err });
350
- }
351
- // Build RuntimeContext once per trading recipe and reuse for all actions.
352
- const runtimeContext = createRuntimeContext(this.strategyConfig, {
353
- senpi,
354
- hookSystem: this.hookSystem,
355
- llmDecision,
356
- contextBuilder,
357
- riskGuard,
358
- notifications,
359
- scannerModule: this.scannerModule,
360
- maxLeverageCache,
361
- });
362
- this.actionRuntimeModule = new ActionRuntimeModule({ stateDir: layout.actionRoot });
363
- const { runActionsForSignal } = await createActions(this.config, {
364
- bus: this.bus,
365
- senpi,
366
- stateManager: this.stateManager,
367
- hookSystem: this.hookSystem,
368
- llmDecision,
369
- contextBuilder,
370
- riskGuard,
371
- notifications,
372
- runtimeContext,
373
- actionModule: this.actionRuntimeModule,
374
- });
375
- this.runActionsForSignal = runActionsForSignal;
376
- const notificationsConfig = this.config.notifications;
377
- if (hasDsl) {
378
- const dslNotificationsDisabled = notificationsConfig?.dsl_lifecycle === false;
379
- const dslNotifySlUpdates = notificationsConfig?.dsl_notify_sl_updates === true;
380
- this.dslPlugin = await DslPluginClass.create({
381
- config: exitConfig,
413
+ scannerModule: this.scannerModule,
414
+ maxLeverageCache,
415
+ positionIdRegistry: this.positionIdRegistry,
416
+ });
417
+ this.actionRuntimeModule = new ActionRuntimeModule({ stateDir: layout.actionRoot });
418
+ const { runActionsForSignal } = await createActions(this.config, {
382
419
  bus: this.bus,
383
- stateDir,
420
+ senpi,
384
421
  stateManager: this.stateManager,
385
- senpiClient: senpi,
386
- strategyStates: createStrategyStatesMap(this.strategyConfig, senpi),
387
- notifications: dslNotificationsDisabled ? undefined : notifications,
388
- notifySlUpdates: dslNotifySlUpdates,
389
- strategyName: this.config.name,
390
- });
391
- }
392
- else {
393
- this.dslPlugin = null;
394
- }
395
- if (isActionLifecycleNotificationsEnabled(notificationsConfig)) {
396
- this.actionNotificationSubscriber = createActionNotificationSubscriber(this.bus, notifications, {
397
- strategyName: this.config.name,
422
+ hookSystem: this.hookSystem,
423
+ llmDecision,
424
+ contextBuilder,
425
+ riskGuard,
426
+ notifications,
427
+ runtimeContext,
428
+ actionModule: this.actionRuntimeModule,
398
429
  });
399
- }
400
- else {
401
- this.actionNotificationSubscriber = null;
402
- }
403
- initRisk(this.bus);
404
- this.healthStateModule = createHealthStateModule({
405
- runtimeName: this.config.name,
406
- stateDir,
407
- startedAt: this.startedAt,
408
- providers: {
409
- scanners: this.scannerModule,
410
- dsl: this.dslPlugin ?? createDisabledDslProvider(),
411
- actions: this.actionRuntimeModule,
412
- risk: riskBlock
413
- ? createRiskHealthProvider(riskGuard, strategyAddress)
414
- : undefined,
415
- },
416
- });
417
- this.onScannerRunComplete = (event) => {
418
- console.info("[senpi-runtime] [ingest-trace] onScannerRunComplete → enqueue", JSON.stringify({
419
- address: event.result.address,
420
- scannerId: event.result.scannerId,
421
- signalCount: Array.isArray(event.result.signals) ? event.result.signals.length : 0,
422
- status: event.result.status,
423
- queueDepth: this.signalQueue.length + 1,
424
- }));
425
- const correlationId = randomUUID();
426
- this.signalQueue.push({ result: event.result, correlationId });
427
- if (this.signalQueueWait) {
428
- const w = this.signalQueueWait;
429
- this.signalQueueWait = null;
430
- w();
430
+ this.runActionsForSignal = runActionsForSignal;
431
+ const notificationsConfig = this.config.notifications;
432
+ if (hasDsl) {
433
+ const dslNotificationsDisabled = notificationsConfig?.dsl_lifecycle === false;
434
+ const dslNotifySlUpdates = notificationsConfig?.dsl_notify_sl_updates === true;
435
+ this.dslPlugin = await DslPluginClass.create({
436
+ config: exitConfig,
437
+ bus: this.bus,
438
+ stateDir,
439
+ stateManager: this.stateManager,
440
+ senpiClient: senpi,
441
+ strategyStates: createStrategyStatesMap(this.strategyConfig, senpi),
442
+ notifications: dslNotificationsDisabled ? undefined : notifications,
443
+ notifySlUpdates: dslNotifySlUpdates,
444
+ strategyName: this.config.name,
445
+ });
446
+ }
447
+ else {
448
+ this.dslPlugin = null;
449
+ }
450
+ if (isActionLifecycleNotificationsEnabled(notificationsConfig)) {
451
+ this.actionNotificationSubscriber = createActionNotificationSubscriber(this.bus, notifications, {
452
+ strategyName: this.config.name,
453
+ });
431
454
  }
432
- // Emit scanner run for tracking
433
- this.bus.emit("tracking.scanner_run", {
434
- address: event.result.address,
435
- data: {
436
- ...event.result,
437
- __correlationId: correlationId,
455
+ else {
456
+ this.actionNotificationSubscriber = null;
457
+ }
458
+ initRisk(this.bus);
459
+ this.healthStateModule = createHealthStateModule({
460
+ runtimeName: this.config.name,
461
+ stateDir,
462
+ startedAt: this.startedAt,
463
+ providers: {
464
+ scanners: this.scannerModule,
465
+ dsl: this.dslPlugin ?? createDisabledDslProvider(),
466
+ actions: this.actionRuntimeModule,
467
+ risk: riskBlock
468
+ ? createRiskHealthProvider(riskGuard, strategyAddress)
469
+ : undefined,
438
470
  },
439
- timestamp: new Date().toISOString(),
440
471
  });
441
- // Forward scanner summary alerts (e.g. watchdog) to notification service
442
- const alerts = event.result.summary?.alerts;
443
- if (Array.isArray(alerts) && alerts.length > 0) {
444
- const header = `[${event.result.scannerId}] ${alerts.length} alert(s):`;
445
- const lines = alerts.map((a) => ` ${a.level ?? "ALERT"}: ${a.message ?? ""}`);
446
- notifications.notify(`${header}\n${lines.join("\n")}`).catch(() => { });
447
- }
448
- };
449
- this.scannerModule.on("scanner:run:complete", this.onScannerRunComplete);
450
- this.signalConsumerDone = this.runSignalConsumer();
451
- logger.info("Runtime.start() invoking scannerModule.start()");
452
- await this.scannerModule.start();
453
- logger.info("Runtime.start() scannerModule.start() returned");
454
- this.started = true;
472
+ this.onScannerRunComplete = (event) => {
473
+ console.info("[senpi-runtime] [ingest-trace] onScannerRunComplete → enqueue", JSON.stringify({
474
+ address: event.result.address,
475
+ scannerId: event.result.scannerId,
476
+ signalCount: Array.isArray(event.result.signals) ? event.result.signals.length : 0,
477
+ status: event.result.status,
478
+ queueDepth: this.signalQueue.length + 1,
479
+ }));
480
+ const correlationId = randomUUID();
481
+ this.signalQueue.push({ result: event.result, correlationId });
482
+ if (this.signalQueueWait) {
483
+ const w = this.signalQueueWait;
484
+ this.signalQueueWait = null;
485
+ w();
486
+ }
487
+ // Emit scanner run for tracking (startedAt is data stamping for telemetry durations)
488
+ this.bus.emit("tracking.scanner_run", {
489
+ address: event.result.address,
490
+ data: {
491
+ ...event.result,
492
+ startedAt: event.startedAt,
493
+ __correlationId: correlationId,
494
+ },
495
+ timestamp: new Date().toISOString(),
496
+ });
497
+ // Forward scanner summary alerts (e.g. watchdog) to notification service
498
+ const alerts = event.result.summary?.alerts;
499
+ if (Array.isArray(alerts) && alerts.length > 0) {
500
+ const header = `[${event.result.scannerId}] ${alerts.length} alert(s):`;
501
+ const lines = alerts.map((a) => ` ${a.level ?? "ALERT"}: ${a.message ?? ""}`);
502
+ notifications.notify(`${header}\n${lines.join("\n")}`).catch(() => { });
503
+ }
504
+ };
505
+ this.scannerModule.on("scanner:run:complete", this.onScannerRunComplete);
506
+ // Surface skipped/errored scanner runs on the bus for telemetry (add-only observation events —
507
+ // distinct names so existing `tracking.scanner_run` consumers see an unchanged payload mix).
508
+ // Neither enqueues a signal: only completed runs feed the signal queue.
509
+ this.onScannerRunSkip = (event) => {
510
+ this.bus.emit("tracking.scanner_run_skipped", {
511
+ address: event.address,
512
+ data: {
513
+ scannerId: event.scannerId,
514
+ status: event.status,
515
+ reason: event.reason,
516
+ timestamp: event.timestamp,
517
+ startedAt: event.startedAt,
518
+ },
519
+ timestamp: new Date().toISOString(),
520
+ });
521
+ };
522
+ this.onScannerRunError = (event) => {
523
+ this.bus.emit("tracking.scanner_run_error", {
524
+ address: event.address,
525
+ data: {
526
+ scannerId: event.scannerId,
527
+ status: "error",
528
+ reason: typeof event.error === "string" ? event.error : String(event.error),
529
+ timestamp: event.timestamp,
530
+ startedAt: event.startedAt,
531
+ },
532
+ timestamp: new Date().toISOString(),
533
+ });
534
+ };
535
+ this.scannerModule.on("scanner:run:skip", this.onScannerRunSkip);
536
+ this.scannerModule.on("scanner:run:error", this.onScannerRunError);
537
+ this.signalConsumerDone = this.runSignalConsumer();
538
+ logger.info("Runtime.start() invoking scannerModule.start()");
539
+ await this.scannerModule.start();
540
+ logger.info("Runtime.start() scannerModule.start() returned");
541
+ this.started = true;
542
+ }
543
+ catch (err) {
544
+ // Recording-only cleanup (telemetry must not leak on a failed boot); the error rethrows.
545
+ await this.disposeRecording();
546
+ throw err;
547
+ }
455
548
  this.bus.emit("tracking.runtime_started", {
456
549
  address: this.strategyConfig.address,
457
550
  data: {
@@ -549,6 +642,20 @@ export class Runtime {
549
642
  });
550
643
  }
551
644
  }
645
+ /**
646
+ * Dispose the recording subscriber, then flush + stop the batcher (best-effort). Idempotent;
647
+ * shared by stop() and the failed-start cleanup path in start().
648
+ */
649
+ async disposeRecording() {
650
+ if (this.recordingSubscriber) {
651
+ this.recordingSubscriber.dispose();
652
+ this.recordingSubscriber = null;
653
+ }
654
+ if (this.recordingBatcher) {
655
+ await this.recordingBatcher.shutdown().catch(() => { });
656
+ this.recordingBatcher = null;
657
+ }
658
+ }
552
659
  async stop() {
553
660
  if (!this.started)
554
661
  return;
@@ -577,6 +684,14 @@ export class Runtime {
577
684
  this.scannerModule.off("scanner:run:complete", this.onScannerRunComplete);
578
685
  this.onScannerRunComplete = null;
579
686
  }
687
+ if (this.onScannerRunSkip != null) {
688
+ this.scannerModule.off("scanner:run:skip", this.onScannerRunSkip);
689
+ this.onScannerRunSkip = null;
690
+ }
691
+ if (this.onScannerRunError != null) {
692
+ this.scannerModule.off("scanner:run:error", this.onScannerRunError);
693
+ this.onScannerRunError = null;
694
+ }
580
695
  if (this.actionNotificationSubscriber != null) {
581
696
  this.actionNotificationSubscriber.dispose();
582
697
  this.actionNotificationSubscriber = null;
@@ -595,6 +710,9 @@ export class Runtime {
595
710
  await this.trackingHandler.dispose();
596
711
  this.trackingHandler = null;
597
712
  }
713
+ // Telemetry recording teardown: stop the subscriber, then flush + stop the batcher (best-effort)
714
+ // so the just-recorded runtime_stopped row ships before the process exits.
715
+ await this.disposeRecording();
598
716
  if (this.bus.removeAllListeners) {
599
717
  this.bus.removeAllListeners();
600
718
  }
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../src/runtime/runtime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../src/runtime/runtime.ts"],"names":[],"mappings":"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"}
@@ -11,6 +11,8 @@ export interface ScannerRunCompleteEvent {
11
11
  scannerId: ScannerId;
12
12
  timestamp: number;
13
13
  result: ScanResult;
14
+ /** Epoch ms of the matching run start (data stamping for telemetry; absent if no start was seen). */
15
+ startedAt?: number;
14
16
  }
15
17
  /** Emitted when one scanner execution attempt terminates with a skip-like status. */
16
18
  export interface ScannerRunSkipEvent {
@@ -19,6 +21,8 @@ export interface ScannerRunSkipEvent {
19
21
  timestamp: number;
20
22
  status: ScanStatus;
21
23
  reason: string;
24
+ /** Epoch ms of the matching run start (data stamping for telemetry; absent if no start was seen). */
25
+ startedAt?: number;
22
26
  }
23
27
  /** Emitted when one scanner execution attempt fails with an error status. */
24
28
  export interface ScannerRunErrorEvent {
@@ -26,6 +30,8 @@ export interface ScannerRunErrorEvent {
26
30
  scannerId: ScannerId;
27
31
  timestamp: number;
28
32
  error: unknown;
33
+ /** Epoch ms of the matching run start (data stamping for telemetry; absent if no start was seen). */
34
+ startedAt?: number;
29
35
  }
30
36
  /** Scanner runtime pub/sub event map. */
31
37
  export interface ScannerRuntimeEventMap {