@senpi/runtime 1.1.0-dev.runtime-phase-2.20260612105612 → 1.1.0-dev.runtime-phase-2.20260617180011

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 (75) 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 +55 -13
  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 +66 -15
  6. package/dist/actions/open-position/open-position.action.js.map +1 -1
  7. package/dist/actions/position-tracker/position-tracker.action.d.ts.map +1 -1
  8. package/dist/actions/position-tracker/position-tracker.action.js +10 -1
  9. package/dist/actions/position-tracker/position-tracker.action.js.map +1 -1
  10. package/dist/actions/tracking-helpers.d.ts +16 -1
  11. package/dist/actions/tracking-helpers.d.ts.map +1 -1
  12. package/dist/actions/tracking-helpers.js +55 -9
  13. package/dist/actions/tracking-helpers.js.map +1 -1
  14. package/dist/dsl/monitor/create-monitor.d.ts.map +1 -1
  15. package/dist/dsl/monitor/create-monitor.js +30 -0
  16. package/dist/dsl/monitor/create-monitor.js.map +1 -1
  17. package/dist/dsl/monitor/process-one-position.d.ts.map +1 -1
  18. package/dist/dsl/monitor/process-one-position.js +114 -0
  19. package/dist/dsl/monitor/process-one-position.js.map +1 -1
  20. package/dist/recording/emitter.d.ts +7 -1
  21. package/dist/recording/emitter.d.ts.map +1 -1
  22. package/dist/recording/index.d.ts +1 -1
  23. package/dist/recording/index.d.ts.map +1 -1
  24. package/dist/recording/index.js.map +1 -1
  25. package/dist/recording/noop-emitter.d.ts +6 -0
  26. package/dist/recording/noop-emitter.d.ts.map +1 -1
  27. package/dist/recording/noop-emitter.js +6 -0
  28. package/dist/recording/noop-emitter.js.map +1 -1
  29. package/dist/recording/otel/constants.d.ts +45 -3
  30. package/dist/recording/otel/constants.d.ts.map +1 -1
  31. package/dist/recording/otel/constants.js +79 -3
  32. package/dist/recording/otel/constants.js.map +1 -1
  33. package/dist/recording/otel/ids.d.ts +11 -0
  34. package/dist/recording/otel/ids.d.ts.map +1 -1
  35. package/dist/recording/otel/ids.js +26 -1
  36. package/dist/recording/otel/ids.js.map +1 -1
  37. package/dist/recording/otel/index.d.ts +1 -1
  38. package/dist/recording/otel/index.d.ts.map +1 -1
  39. package/dist/recording/otel/index.js +1 -1
  40. package/dist/recording/otel/index.js.map +1 -1
  41. package/dist/recording/otel/mappers.d.ts +60 -2
  42. package/dist/recording/otel/mappers.d.ts.map +1 -1
  43. package/dist/recording/otel/mappers.js +384 -43
  44. package/dist/recording/otel/mappers.js.map +1 -1
  45. package/dist/recording/otel/otel-emitter.d.ts +7 -1
  46. package/dist/recording/otel/otel-emitter.d.ts.map +1 -1
  47. package/dist/recording/otel/otel-emitter.js +26 -2
  48. package/dist/recording/otel/otel-emitter.js.map +1 -1
  49. package/dist/recording/otel/redaction.d.ts +22 -6
  50. package/dist/recording/otel/redaction.d.ts.map +1 -1
  51. package/dist/recording/otel/redaction.js +54 -6
  52. package/dist/recording/otel/redaction.js.map +1 -1
  53. package/dist/recording/records.d.ts +227 -3
  54. package/dist/recording/records.d.ts.map +1 -1
  55. package/dist/recording/wiring/record-builders.d.ts +59 -26
  56. package/dist/recording/wiring/record-builders.d.ts.map +1 -1
  57. package/dist/recording/wiring/record-builders.js +309 -61
  58. package/dist/recording/wiring/record-builders.js.map +1 -1
  59. package/dist/recording/wiring/subscriber.d.ts.map +1 -1
  60. package/dist/recording/wiring/subscriber.js +59 -57
  61. package/dist/recording/wiring/subscriber.js.map +1 -1
  62. package/dist/runtime/load-runtime-config.d.ts.map +1 -1
  63. package/dist/runtime/load-runtime-config.js +2 -3
  64. package/dist/runtime/load-runtime-config.js.map +1 -1
  65. package/dist/runtime/runtime.d.ts.map +1 -1
  66. package/dist/runtime/runtime.js +7 -1
  67. package/dist/runtime/runtime.js.map +1 -1
  68. package/dist/scanners/implementations/momentum.d.ts.map +1 -1
  69. package/dist/scanners/implementations/momentum.js +16 -0
  70. package/dist/scanners/implementations/momentum.js.map +1 -1
  71. package/dist/tracking/position-id-registry.d.ts +9 -0
  72. package/dist/tracking/position-id-registry.d.ts.map +1 -1
  73. package/dist/tracking/position-id-registry.js +10 -4
  74. package/dist/tracking/position-id-registry.js.map +1 -1
  75. package/package.json +1 -1
@@ -8,7 +8,8 @@
8
8
  */
9
9
  import { AttrBuilder, durationNs, msToNs } from "./attributes.js";
10
10
  import { EXCEPTION_EVENT_NAME, eventNameFor, ROUTING, severityFor, SPAN_NAME, TRACE_FLAGS_SAMPLED, } from "./constants.js";
11
- import { redactRuntimeError, redactRuntimeState, redactSignalEvaluated, } from "./redaction.js";
11
+ import { deterministicSpanId, deterministicTraceId } from "./ids.js";
12
+ import { redactBody, redactRuntimeError, redactRuntimeState, redactSignalEvaluated, } from "./redaction.js";
12
13
  import { createLogger } from "../../utils/logger.js";
13
14
  const logger = createLogger("[recording][otel][mapper]");
14
15
  /**
@@ -62,14 +63,15 @@ function makeTraceRow(deps, f) {
62
63
  };
63
64
  }
64
65
  /**
65
- * Build the single log row for a record: `Timestamp`/severity/event-name are all derived from the
66
- * record, so each log mapper only supplies its `Body` and flattened attrs. Each log gets fresh,
67
- * self-rooted ids (minimal per-record correlation; cross-record threading is deferred).
66
+ * Build the single log row for a record: severity/event-name are derived from the record and the
67
+ * caller supplies the timestamp (`occurredAt` for the point-in-time records, `endedAt` for the
68
+ * skipped scanner run), so each log mapper only adds its `Body` and flattened attrs. Each log gets
69
+ * fresh, self-rooted ids (minimal per-record correlation; cross-record threading is deferred).
68
70
  */
69
- function logRowFor(deps, record, body, attrs) {
71
+ function logRowFor(deps, record, timestampMs, body, attrs) {
70
72
  const severity = severityFor(record);
71
73
  return {
72
- Timestamp: msToNs(record.occurredAt),
74
+ Timestamp: msToNs(timestampMs),
73
75
  TraceId: deps.ids.traceId(),
74
76
  SpanId: deps.ids.spanId(),
75
77
  TraceFlags: TRACE_FLAGS_SAMPLED,
@@ -85,6 +87,21 @@ function logRowFor(deps, record, body, attrs) {
85
87
  address: deps.resource.address,
86
88
  };
87
89
  }
90
+ /**
91
+ * Clamp a child window into its parent: never negative, never outside `[lo, hi]`; a window
92
+ * entirely before the parent pins to its start.
93
+ */
94
+ function clampWindow(start, end, lo, hi) {
95
+ if (start < lo)
96
+ start = lo;
97
+ if (end > hi)
98
+ end = hi;
99
+ if (end < lo)
100
+ end = lo; // window entirely before the parent → pin to its start
101
+ if (end < start)
102
+ start = end;
103
+ return { start, end };
104
+ }
88
105
  /** OTEL `exception` span event — the idiomatic home for the error-grouping key on a span. */
89
106
  function exceptionEvent(timestampMs, errorName, message) {
90
107
  const attrs = new AttrBuilder()
@@ -93,12 +110,14 @@ function exceptionEvent(timestampMs, errorName, message) {
93
110
  .build();
94
111
  return { Timestamp: msToNs(timestampMs), Name: EXCEPTION_EVENT_NAME, Attributes: attrs };
95
112
  }
96
- // ── scanner_run → one span ─────────────────────────────────────────────────────
97
- export function mapScannerRun(record, deps) {
113
+ // ── scanner_run → one span (complete/error) or one skip log ───────────────────
114
+ /** Shared `scanner.*` attrs — identical keys whether the run routes to a span or to a skip log. */
115
+ function scannerRunAttrs(record) {
98
116
  // Individual `signals[]` are omitted here — counts + summary capture the run's shape, and
99
117
  // per-signal detail lives on `signal_evaluated` children (avoids re-flattening signal meta).
100
- const attrs = new AttrBuilder()
118
+ return new AttrBuilder()
101
119
  .put("scanner.id", record.scannerId)
120
+ .put("scan.run_id", record.runId)
102
121
  .put("scanner.outcome", record.outcome)
103
122
  .put("scanner.status_detail", record.statusDetail)
104
123
  .put("scanner.scanned_count", record.scannedCount)
@@ -109,12 +128,18 @@ export function mapScannerRun(record, deps) {
109
128
  .put("scanner.error_name", record.errorName)
110
129
  .putBag("scanner.summary", record.summary)
111
130
  .build();
131
+ }
132
+ /** A run that actually ran (`complete`/`error`) → one span. Skips go to {@link mapScannerRunSkipped}. */
133
+ export function mapScannerRun(record, deps) {
134
+ const attrs = scannerRunAttrs(record);
112
135
  const isError = record.outcome === "error";
136
+ // Deterministic ids from the run id thread scan → pass into one trace; absent (older payloads)
137
+ // → fresh self-rooted ids as before.
113
138
  return [
114
139
  makeTraceRow(deps, {
115
140
  timestampMs: record.startedAt,
116
- traceId: deps.ids.traceId(),
117
- spanId: deps.ids.spanId(),
141
+ traceId: record.runId !== undefined ? deterministicTraceId(record.runId) : deps.ids.traceId(),
142
+ spanId: record.runId !== undefined ? deterministicSpanId(record.runId) : deps.ids.spanId(),
118
143
  spanName: SPAN_NAME.scannerRun,
119
144
  spanKind: spanKindFor("scanner_run"),
120
145
  startedAt: record.startedAt,
@@ -126,48 +151,68 @@ export function mapScannerRun(record, deps) {
126
151
  }),
127
152
  ];
128
153
  }
129
- // ── signal_evaluated → pass-span root + one child span per evaluation ────────────
154
+ /**
155
+ * The {@link ROUTING} exception: a skipped run (`outcome === "skipped"` — engine statuses
156
+ * skipped/disabled/halted) is a discrete "didn't run" fact, not work, so it becomes an INFO log
157
+ * (`scanner_run.skipped`) instead of a zero-duration span. Same `scanner.*` attrs as the span
158
+ * (counts are simply absent on skip payloads); `Timestamp` from `endedAt` (the builder synthesizes
159
+ * `startedAt = endedAt` for skips — only the end is observed).
160
+ */
161
+ export function mapScannerRunSkipped(record, deps) {
162
+ const reason = record.reason ? `: ${record.reason}` : "";
163
+ const body = `scanner skipped ${record.scannerId}${reason}`;
164
+ return [logRowFor(deps, record, record.endedAt, body, scannerRunAttrs(record))];
165
+ }
166
+ // ── signal_evaluated → pass-span root + llm.decision child + one child span per evaluation ──
130
167
  export function mapSignalEvaluated(record, deps) {
131
168
  const red = redactSignalEvaluated(record);
132
- const traceId = deps.ids.traceId();
169
+ // Deterministic ids from the scan run id thread the pass under its scanner.run span (same
170
+ // TraceId, ParentSpanId = the scanner.run SpanId); absent runId → fresh self-rooted ids as
171
+ // before. Intentional: the pass child starts after its parent ends (queue wait, visible as the
172
+ // gap) — never "fixed" by faking timestamps.
173
+ const traceId = red.runId !== undefined ? deterministicTraceId(red.runId) : deps.ids.traceId();
133
174
  const rootSpanId = deps.ids.spanId();
175
+ const parentSpanId = red.runId !== undefined ? deterministicSpanId(red.runId) : undefined;
176
+ const errored = red.evaluations.filter((ev) => ev.outcome.result === "error");
134
177
  const rootAttrs = new AttrBuilder()
135
178
  .put("scanner.id", red.scannerId)
136
- .put("signal.evaluation_count", red.evaluations.length);
137
- const d = red.decision;
138
- if (d) {
139
- rootAttrs
140
- .put("decision.execute", d.execute)
141
- .put("decision.action_type", d.actionType)
142
- .put("decision.action_name", d.actionName)
143
- .put("decision.mode", d.mode)
144
- .put("decision.confidence", d.confidence)
145
- .put("decision.confidence_threshold", d.confidenceThreshold)
146
- .put("decision.reasoning", d.reasoning) // kept (length-capped) — high-value agent rationale
147
- .put("decision.model", d.model)
148
- .put("decision.tokens_used", d.tokensUsed)
149
- .put("decision.duration_ms", d.durationMs);
150
- // decision.payload is NOT flattened: raw LLM JSON (free-text + arbitrary keys + nested scanner
151
- // meta). Its bounded content is already on the per-signal child spans.
152
- }
179
+ .put("scan.run_id", red.runId)
180
+ .put("signal.evaluation_count", red.evaluations.length)
181
+ .put("signal.error_count", errored.length);
153
182
  const rows = [
154
183
  makeTraceRow(deps, {
155
184
  timestampMs: red.startedAt,
156
185
  traceId,
157
186
  spanId: rootSpanId,
187
+ parentSpanId,
158
188
  spanName: SPAN_NAME.signalPass,
159
189
  spanKind: spanKindFor("signal_evaluated"),
160
190
  startedAt: red.startedAt,
161
191
  endedAt: red.endedAt,
162
- statusCode: "Ok",
192
+ // Status propagates: any errored evaluation child fails the pass root (filterable even
193
+ // when the trace root is the always-Ok scanner.run span).
194
+ statusCode: errored.length > 0 ? "Error" : "Ok",
195
+ statusMessage: errored.length > 0 ? (errored[0].outcome.error ?? "") : "",
163
196
  attrs: rootAttrs.build(),
164
197
  }),
165
198
  ];
199
+ // The decision phase as its own child span (carries the decision.* attrs). Mapped defensively,
200
+ // like the evaluation children: a bad decision must not sink the pass span or its siblings.
201
+ if (red.decision) {
202
+ try {
203
+ rows.push(mapLlmDecisionChild(red.decision, deps, traceId, rootSpanId, red.startedAt, red.endedAt));
204
+ }
205
+ catch (err) {
206
+ logger.warn("dropping llm.decision child (mapping error)", {
207
+ err: err instanceof Error ? err.message : String(err),
208
+ });
209
+ }
210
+ }
166
211
  // One child span per evaluation, sharing the root's TraceId (intra-record parenting). Each child
167
212
  // is mapped defensively: a single bad evaluation must not sink the pass span or its siblings.
168
213
  for (const ev of red.evaluations) {
169
214
  try {
170
- rows.push(mapEvaluationChild(ev, deps, traceId, rootSpanId, red.startedAt));
215
+ rows.push(mapEvaluationChild(ev, deps, traceId, rootSpanId, red.startedAt, red.endedAt));
171
216
  }
172
217
  catch (err) {
173
218
  logger.warn("dropping signal evaluation child (mapping error)", {
@@ -177,9 +222,50 @@ export function mapSignalEvaluated(record, deps) {
177
222
  }
178
223
  return rows;
179
224
  }
225
+ /**
226
+ * The `llm.decision` child span: the pass's decision phase, window
227
+ * `[decision.endedAt − durationMs, decision.endedAt]` — the gap after the pass start is context
228
+ * building, deliberately visible. Defensive fallback when `endedAt` is absent (older payloads):
229
+ * start at the pass start. The window is then clamped into the pass (`start` up to the pass start,
230
+ * `end` down to the pass end, and `start = end` when that inverts) so it is never negative and
231
+ * never outside the pass.
232
+ */
233
+ function mapLlmDecisionChild(d, deps, traceId, parentSpanId, passStartedAt, passEndedAt) {
234
+ const attrs = new AttrBuilder()
235
+ .put("decision.execute", d.execute)
236
+ .put("decision.action_type", d.actionType)
237
+ .put("decision.action_name", d.actionName)
238
+ .put("decision.mode", d.mode)
239
+ .put("decision.confidence", d.confidence)
240
+ .put("decision.confidence_threshold", d.confidenceThreshold)
241
+ .put("decision.reasoning", d.reasoning) // kept (length-capped) — high-value agent rationale
242
+ .put("decision.model", d.model)
243
+ .put("decision.tokens_used", d.tokensUsed)
244
+ .put("decision.duration_ms", d.durationMs)
245
+ // The record no longer carries the raw LLM payload (dropped when the pass was single-sourced
246
+ // from `_decisionMeta`); its bounded content lands on the per-signal child spans.
247
+ .build();
248
+ const durationMs = d.durationMs ?? 0;
249
+ const rawEnd = d.endedAt ?? passStartedAt + durationMs;
250
+ const { start, end } = clampWindow(rawEnd - durationMs, rawEnd, passStartedAt, passEndedAt);
251
+ return makeTraceRow(deps, {
252
+ timestampMs: start,
253
+ traceId,
254
+ spanId: deps.ids.spanId(),
255
+ parentSpanId,
256
+ spanName: SPAN_NAME.llmDecision,
257
+ spanKind: "Internal",
258
+ startedAt: start,
259
+ endedAt: end,
260
+ statusCode: "Ok",
261
+ attrs,
262
+ });
263
+ }
180
264
  function mapEvaluationChild(ev, deps, traceId, parentSpanId,
181
- // No per-evaluation timestamps exist; each child is point-in-time at the pass start, Duration 0.
182
- passStartedAt) {
265
+ // The action loop stamps a real per-signal window (`startedAt`/`endedAt`) on each result entry;
266
+ // when present it is the child's measured extent, clamped into the pass like the llm.decision
267
+ // child. Absent (older payloads) → point-in-time at the pass start, Duration 0, as before.
268
+ passStartedAt, passEndedAt) {
183
269
  const { signal, outcome } = ev;
184
270
  // position.id is the flat cross-record group-by key (V2 read layer); TraceId stays
185
271
  // per-pass — never derived from positionId.
@@ -209,20 +295,22 @@ passStartedAt) {
209
295
  .put("outcome.required_margin_amount", outcome.requiredMarginAmount)
210
296
  .put("outcome.available_margin_amount", outcome.availableMarginAmount)
211
297
  .build();
298
+ const hasWindow = ev.startedAt !== undefined && ev.endedAt !== undefined;
299
+ const { start, end } = clampWindow(hasWindow ? ev.startedAt : passStartedAt, hasWindow ? ev.endedAt : passStartedAt, passStartedAt, passEndedAt);
212
300
  const isError = outcome.result === "error";
213
301
  return makeTraceRow(deps, {
214
- timestampMs: passStartedAt,
302
+ timestampMs: start,
215
303
  traceId,
216
304
  spanId: deps.ids.spanId(),
217
305
  parentSpanId,
218
306
  spanName: SPAN_NAME.signalEvaluation,
219
307
  spanKind: spanKindFor("signal_evaluated"),
220
- startedAt: passStartedAt,
221
- endedAt: passStartedAt,
308
+ startedAt: start,
309
+ endedAt: end,
222
310
  statusCode: isError ? "Error" : "Ok",
223
311
  statusMessage: isError ? (outcome.error ?? "") : "",
224
312
  attrs,
225
- events: isError ? [exceptionEvent(passStartedAt, outcome.errorName, outcome.error)] : [],
313
+ events: isError ? [exceptionEvent(end, outcome.errorName, outcome.error)] : [],
226
314
  });
227
315
  }
228
316
  // ── position_lifecycle → one log ─────────────────────────────────────────────────
@@ -256,9 +344,10 @@ export function mapPositionLifecycle(record, deps) {
256
344
  .put("position.margin_amount", record.marginAmount)
257
345
  .put("position.filled", record.filled)
258
346
  .put("position.reasoning", record.reasoning) // kept (length-capped)
347
+ .put("position.reconciliation_source", record.reconciliationSource) // opened only; absent elsewhere
259
348
  .build();
260
349
  const dir = record.direction ? ` ${record.direction}` : "";
261
- return [logRowFor(deps, record, `position ${record.event} ${record.asset}${dir}`, attrs)];
350
+ return [logRowFor(deps, record, record.occurredAt, `position ${record.event} ${record.asset}${dir}`, attrs)];
262
351
  }
263
352
  // ── dsl_transition → one log ─────────────────────────────────────────────────────
264
353
  export function mapDslTransition(record, deps) {
@@ -296,7 +385,258 @@ export function mapDslTransition(record, deps) {
296
385
  .putJson("dsl.updated", record.updated)
297
386
  .put("dsl.backend_dsl_position_id", record.backendDslPositionId)
298
387
  .build();
299
- return [logRowFor(deps, record, `dsl ${record.transition} ${record.asset}`, attrs)];
388
+ return [logRowFor(deps, record, record.occurredAt, `dsl ${record.transition} ${record.asset}`, attrs)];
389
+ }
390
+ // ── dsl_tick → one span per work unit (deterministic-id threaded tick family) ─────
391
+ /**
392
+ * Maps one DSL-tick work unit to its span. No buffering or pairing: each record maps
393
+ * independently, and the deterministic ids derived from `bootId:tickId` (and
394
+ * `bootId:tickId:positionKey`) thread the units into one trace — root `dsl.tick`, `dsl.position`
395
+ * children, and `dsl.close_attempt`/`dsl.sl_update` under their position. `tick.id` rides every
396
+ * span (the cross-store join key); `position.id` rides the position-grain spans. A child unit
397
+ * missing its `positionKey` (defensive) parents to the tick root so the row still joins the trace.
398
+ */
399
+ export function mapDslTick(record, deps) {
400
+ // The seeds are scoped by the emitter's bootId: tickId is a ms-resolution wall-clock string, so
401
+ // two runtimes ticking in the same millisecond (or a restart re-deriving the same ms) would
402
+ // otherwise collide and merge unrelated tick families into one trace with duplicate span ids.
403
+ // The `tick.id` ATTRIBUTE stays the raw tickId — it is the join key to the monitor's logs.
404
+ const tickSeed = `${deps.identity.bootId}:${record.tickId}`;
405
+ const traceId = deterministicTraceId(tickSeed);
406
+ const rootSpanId = deterministicSpanId(tickSeed);
407
+ if (record.unit === "tick") {
408
+ const attrs = new AttrBuilder()
409
+ .put("tick.id", record.tickId)
410
+ .put("dsl.strategy_count", record.strategyCount)
411
+ .put("dsl.active_position_count", record.activePositionCount)
412
+ .put("dsl.positions_processed", record.positionsProcessed)
413
+ .build();
414
+ const rows = [
415
+ makeTraceRow(deps, {
416
+ timestampMs: record.startedAt,
417
+ traceId,
418
+ spanId: rootSpanId,
419
+ spanName: SPAN_NAME.dslTick,
420
+ spanKind: spanKindFor("dsl_tick"),
421
+ startedAt: record.startedAt,
422
+ endedAt: record.endedAt,
423
+ statusCode: "Ok",
424
+ attrs,
425
+ }),
426
+ ];
427
+ // The batched price fetch as an intra-record child of the tick root — only when both stamps
428
+ // were observed (a half window is fabricated extent), clamped into the tick window like the
429
+ // other intra-record children.
430
+ if (record.pricesStartedAt !== undefined && record.pricesEndedAt !== undefined) {
431
+ const { start, end } = clampWindow(record.pricesStartedAt, record.pricesEndedAt, record.startedAt, record.endedAt);
432
+ rows.push(makeTraceRow(deps, {
433
+ timestampMs: start,
434
+ traceId,
435
+ spanId: deps.ids.spanId(),
436
+ parentSpanId: rootSpanId,
437
+ spanName: SPAN_NAME.dslPrices,
438
+ spanKind: spanKindFor("dsl_tick"),
439
+ startedAt: start,
440
+ endedAt: end,
441
+ statusCode: "Ok",
442
+ attrs: new AttrBuilder().put("tick.id", record.tickId).build(),
443
+ }));
444
+ }
445
+ return rows;
446
+ }
447
+ // The per-position span id is seeded from `bootId:tickId:positionKey`, so the position span and
448
+ // its close/SL children agree on it without any pairing state.
449
+ const positionSpanId = record.positionKey !== undefined
450
+ ? deterministicSpanId(`${tickSeed}:${record.positionKey}`)
451
+ : undefined;
452
+ if (record.unit === "position") {
453
+ const attrs = new AttrBuilder()
454
+ .put("tick.id", record.tickId)
455
+ .put("position.id", record.positionId)
456
+ .put("dsl.asset", record.asset)
457
+ .put("dsl.dex", record.dex)
458
+ .build();
459
+ return [
460
+ makeTraceRow(deps, {
461
+ timestampMs: record.startedAt,
462
+ traceId,
463
+ spanId: positionSpanId ?? deps.ids.spanId(),
464
+ parentSpanId: rootSpanId,
465
+ spanName: SPAN_NAME.dslPosition,
466
+ spanKind: spanKindFor("dsl_tick"),
467
+ startedAt: record.startedAt,
468
+ endedAt: record.endedAt,
469
+ statusCode: "Ok",
470
+ attrs,
471
+ }),
472
+ ];
473
+ }
474
+ // close_attempt / sl_update — the venue calls, nested under their position span.
475
+ const isError = record.outcome === "error";
476
+ const attrs = new AttrBuilder()
477
+ .put("tick.id", record.tickId)
478
+ .put("position.id", record.positionId)
479
+ .put("dsl.asset", record.asset)
480
+ .put("dsl.dex", record.dex)
481
+ .put("dsl.error", record.error);
482
+ if (record.unit === "close_attempt") {
483
+ attrs.put("dsl.close_reason", record.closeReason).put("dsl.attempt", record.attempt);
484
+ }
485
+ else {
486
+ attrs
487
+ .put("dsl.new_sl_price", record.newSLPrice)
488
+ .put("dsl.sl_order_id", record.slOrderId)
489
+ .put("dsl.sync_reason", record.syncReason);
490
+ }
491
+ return [
492
+ makeTraceRow(deps, {
493
+ timestampMs: record.startedAt,
494
+ traceId,
495
+ spanId: deps.ids.spanId(),
496
+ // Defensive fallback: no positionKey → parent to the tick root so the row still joins.
497
+ parentSpanId: positionSpanId ?? rootSpanId,
498
+ spanName: record.unit === "close_attempt" ? SPAN_NAME.dslCloseAttempt : SPAN_NAME.dslSlUpdate,
499
+ spanKind: spanKindFor("dsl_tick"),
500
+ startedAt: record.startedAt,
501
+ endedAt: record.endedAt,
502
+ statusCode: isError ? "Error" : "Ok",
503
+ statusMessage: isError ? (record.error ?? "") : "",
504
+ attrs: attrs.build(),
505
+ // No error class name at the emit site — exception.type is omitted, message kept.
506
+ events: isError ? [exceptionEvent(record.endedAt, undefined, record.error)] : [],
507
+ }),
508
+ ];
509
+ }
510
+ // ── decision.made → one log (Task 8) ──────────────────────────────────────────────
511
+ /**
512
+ * The pass's judgment as a discrete log. Attributes are the queryable scalars; the **Body is the
513
+ * LLM reasoning prose, uncapped** (the catalog calls for full reasoning — no per-value cap applied
514
+ * to it) and routed through {@link redactBody}, which passes a flat string through verbatim (a
515
+ * string has no keys to scrub) while still keeping the redaction seam over both Bodies. When
516
+ * reasoning is absent, a short templated Body stands in. Market-context keys are reserved and
517
+ * absent in 8a (see the brief's impl notes).
518
+ */
519
+ export function mapDecisionMade(record, deps) {
520
+ const attrs = new AttrBuilder()
521
+ .put("decision.mode", record.mode)
522
+ .put("decision.by_llm", record.byLlm)
523
+ .put("decision.model", record.model)
524
+ .put("decision.tokens_used", record.tokensUsed)
525
+ .put("decision.confidence", record.confidence)
526
+ .put("decision.confidence_threshold", record.confidenceThreshold)
527
+ .put("decision.duration_ms", record.durationMs)
528
+ .put("decision.action_intent", record.actionIntent)
529
+ .put("decision.funding_regime", record.fundingRegime)
530
+ .put("decision.market_regime", record.marketRegime)
531
+ .put("decision.mark_price", record.markPrice)
532
+ .build();
533
+ // Body = the reasoning prose (uncapped), through the Body redaction seam. A string has no
534
+ // sensitive keys, so it survives verbatim; the short fallback keeps a non-empty, useful Body.
535
+ const reasoning = record.reasoning ? String(redactBody(record.reasoning)) : "";
536
+ const body = reasoning || `decision ${record.actionIntent} (${record.mode ?? "none"})`;
537
+ return [logRowFor(deps, record, record.occurredAt, body, attrs)];
538
+ }
539
+ // ── signal.outcome → one log (Task 8) ──────────────────────────────────────────────
540
+ /**
541
+ * One considered signal's disposition as a discrete log. Attributes are the queryable raw-signal
542
+ * scalars, factors, disposition, and sizing; the **Body is the raw scanner evidence**
543
+ * (`JSON.stringify(redactBody(rawSignal))`) — the variable-shaped payload whose arbitrary scanner
544
+ * `meta` Task 2 dropped from attributes and Task 8 keeps here, scrubbed by key name. Empty Body when
545
+ * there is no rawSignal.
546
+ */
547
+ export function mapSignalOutcome(record, deps) {
548
+ const attrs = new AttrBuilder()
549
+ .put("scanner.id", record.scannerId)
550
+ .put("signal.type", record.signalType)
551
+ .put("signal.asset", record.asset)
552
+ .put("signal.direction", record.direction)
553
+ .put("signal.score", record.score)
554
+ .put("signal.timestamp", record.signalTs)
555
+ .putFactors("signal.factor", record.factors)
556
+ .put("outcome.result", record.result)
557
+ .put("outcome.reason_code", record.reasonCode)
558
+ .put("position.id", record.positionId)
559
+ .put("outcome.margin_amount", record.marginAmount)
560
+ .put("outcome.leverage", record.leverage)
561
+ .put("outcome.notional_value", record.notionalValue)
562
+ .put("outcome.size", record.size)
563
+ .put("outcome.margin_source", record.marginSource)
564
+ .put("outcome.order_id", record.orderId)
565
+ .put("outcome.error_name", record.errorName)
566
+ .build();
567
+ const body = record.rawSignal ? JSON.stringify(redactBody(record.rawSignal)) : "";
568
+ return [logRowFor(deps, record, record.occurredAt, body, attrs)];
569
+ }
570
+ // ── scanner.summary → one log (Task 8 anti-spam funnel) ─────────────────────────────
571
+ /**
572
+ * One scan's funnel roll-up as a discrete log — ONE row, never one per drop. Attributes are the
573
+ * queryable aggregate surface (counts, per-reason counts via `putBag`, the survivors' assets as a
574
+ * single JSON array). The **Body is the dropped-candidate array**
575
+ * (`JSON.stringify(redactBody(droppedCandidates))`) — variable-shaped scanner data, scrubbed by
576
+ * key name, read only after the row is selected. Empty Body when nothing was dropped.
577
+ */
578
+ export function mapScannerSummary(record, deps) {
579
+ const attrs = new AttrBuilder()
580
+ .put("scanner.id", record.scannerId)
581
+ .put("scanner.scanned_count", record.scannedCount)
582
+ .put("scanner.passed_count", record.passedCount)
583
+ .put("scanner.dropped_count", record.droppedCount)
584
+ .putBag("scanner.dropped_by_reason", record.droppedByReason)
585
+ .putJson("scanner.passed_assets", record.passedAssets)
586
+ .build();
587
+ const dropped = record.droppedCandidates;
588
+ const body = dropped && dropped.length > 0 ? JSON.stringify(redactBody(dropped)) : "";
589
+ return [
590
+ logRowFor(deps, record, record.occurredAt, body, attrs),
591
+ ];
592
+ }
593
+ // ── dsl.close_attempt → one log (Task 8) ────────────────────────────────────────────
594
+ /**
595
+ * One DSL exit attempt as a discrete log (the second consumer of `tracking.dsl_close_attempt`,
596
+ * alongside the tick trace). No Body — the attempt is fully described by its scalars. No
597
+ * `error_name`: only `String(e)` is available at the producer emit site.
598
+ */
599
+ export function mapDslCloseAttempt(record, deps) {
600
+ const attrs = new AttrBuilder()
601
+ .put("position.id", record.positionId)
602
+ .put("dsl.asset", record.asset)
603
+ .put("dsl.dex", record.dex)
604
+ .put("dsl.reason", record.reason)
605
+ .put("dsl.attempt", record.attempt)
606
+ .put("dsl.result", record.result)
607
+ .build();
608
+ return [logRowFor(deps, record, record.occurredAt, `dsl close_attempt ${record.asset ?? ""} ${record.result}`, attrs)];
609
+ }
610
+ /**
611
+ * One order-execution event as a discrete log under the `order.*` namespace — the execution
612
+ * granularity `position_lifecycle` can't carry. Null/undefined attrs are omitted by the builder, so
613
+ * each event subtype naturally carries only its own fields (placed: order/size; filled: fill; failed:
614
+ * reason/error_name). `position.id` is the cross-flow join key (coexists with `outcome.order_id` /
615
+ * `position.order_id`; 8b coalesces). **Body** = the venue raw response on `failed`
616
+ * (`JSON.stringify(redactBody(error))`); `placed`/`filled` carry no Body (short templated message).
617
+ */
618
+ export function mapOrderEvent(record, deps) {
619
+ const attrs = new AttrBuilder()
620
+ .put("order.id", record.orderId)
621
+ .put("order.type", record.orderType)
622
+ .put("order.asset", record.asset)
623
+ .put("order.direction", record.direction)
624
+ .put("order.size", record.size)
625
+ .put("order.limit_price", record.limitPrice)
626
+ .put("order.reduce_only", record.reduceOnly)
627
+ .put("order.fill_price", record.fillPrice)
628
+ .put("order.fill_size", record.fillSize)
629
+ .put("order.execution_as_maker", record.executionAsMaker)
630
+ .put("order.fees", record.fees)
631
+ .put("order.partial", record.partial)
632
+ .put("order.reason", record.reason)
633
+ .put("order.error_name", record.errorName)
634
+ .put("position.id", record.positionId)
635
+ .build();
636
+ const body = record.event === "failed" && record.error ? JSON.stringify(redactBody(record.error)) : "";
637
+ const dir = record.direction ? ` ${record.direction}` : "";
638
+ const fallback = `order ${record.event} ${record.asset}${dir}`;
639
+ return [logRowFor(deps, record, record.occurredAt, body || fallback, attrs)];
300
640
  }
301
641
  // ── runtime_error → one log ───────────────────────────────────────────────────────
302
642
  export function mapRuntimeError(record, deps) {
@@ -307,9 +647,10 @@ export function mapRuntimeError(record, deps) {
307
647
  .put("runtime.error_name", red.errorName)
308
648
  .put("runtime.asset", red.asset)
309
649
  .put("runtime.scanner_id", red.scannerId)
650
+ .put("scan.run_id", red.runId)
310
651
  .put("runtime.stack", red.stack)
311
652
  .build();
312
- return [logRowFor(deps, red, `${red.phase}: ${red.message}`, attrs)];
653
+ return [logRowFor(deps, red, red.occurredAt, `${red.phase}: ${red.message}`, attrs)];
313
654
  }
314
655
  // ── runtime_lifecycle → one log ───────────────────────────────────────────────────
315
656
  export function mapRuntimeLifecycle(record, deps) {
@@ -323,7 +664,7 @@ export function mapRuntimeLifecycle(record, deps) {
323
664
  // Unresolved config blob: single JSON key, size-capped, never flattened (no secrets to scrub).
324
665
  .putConfig("runtime.config", record.config)
325
666
  .build();
326
- return [logRowFor(deps, record, `runtime ${record.phase}`, attrs)];
667
+ return [logRowFor(deps, record, record.occurredAt, `runtime ${record.phase}`, attrs)];
327
668
  }
328
669
  // ── runtime_state → one log ───────────────────────────────────────────────────────
329
670
  export function mapRuntimeState(record, deps) {
@@ -337,6 +678,6 @@ export function mapRuntimeState(record, deps) {
337
678
  // runtime.metrics dropped by redaction upstream.
338
679
  .build();
339
680
  // `|| gateId` (not `??`): an empty-string gateName must still fall back to the stable id.
340
- return [logRowFor(deps, red, `trading ${red.phase}: ${red.gateName || red.gateId}`, attrs)];
681
+ return [logRowFor(deps, red, red.occurredAt, `trading ${red.phase}: ${red.gateName || red.gateId}`, attrs)];
341
682
  }
342
683
  //# sourceMappingURL=mappers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"mappers.js","sourceRoot":"","sources":["../../../src/recording/otel/mappers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mappers.js","sourceRoot":"","sources":["../../../src/recording/otel/mappers.ts"],"names":[],"mappings":"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"}