@senpi/runtime 1.1.0-dev.runtime-phase-2.20260612060625 → 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
@@ -9,7 +9,7 @@
9
9
  */
10
10
  import type { RecordingEmitter } from "../emitter.js";
11
11
  import type { IdentityEnvelope } from "../identity.js";
12
- import type { DslTransitionRecord, PositionLifecycleRecord, RuntimeErrorRecord, RuntimeLifecycleRecord, RuntimeStateRecord, ScannerRunRecord, SignalEvaluatedRecord } from "../records.js";
12
+ import type { DecisionMadeRecord, DslCloseAttemptRecord, DslTickRecord, DslTransitionRecord, OrderEventRecord, PositionLifecycleRecord, RuntimeErrorRecord, RuntimeLifecycleRecord, RuntimeStateRecord, ScannerRunRecord, ScannerSummaryRecord, SignalEvaluatedRecord, SignalOutcomeRecord } from "../records.js";
13
13
  import type { TelemetryBatcher } from "../transport/index.js";
14
14
  import { type IdGenerator } from "./ids.js";
15
15
  export interface OtelEmitterOptions {
@@ -27,9 +27,15 @@ export declare class OtelEmitter implements RecordingEmitter {
27
27
  recordSignalEvaluated(record: SignalEvaluatedRecord): void;
28
28
  recordPositionLifecycle(record: PositionLifecycleRecord): void;
29
29
  recordDslTransition(record: DslTransitionRecord): void;
30
+ recordDslTick(record: DslTickRecord): void;
30
31
  recordError(record: RuntimeErrorRecord): void;
31
32
  recordRuntimeLifecycle(record: RuntimeLifecycleRecord): void;
32
33
  recordRuntimeState(record: RuntimeStateRecord): void;
34
+ recordDecisionMade(record: DecisionMadeRecord): void;
35
+ recordSignalOutcome(record: SignalOutcomeRecord): void;
36
+ recordScannerSummary(record: ScannerSummaryRecord): void;
37
+ recordDslCloseAttempt(record: DslCloseAttemptRecord): void;
38
+ recordOrderEvent(record: OrderEventRecord): void;
33
39
  private emitTraces;
34
40
  private emitLogs;
35
41
  private swallow;
@@ -1 +1 @@
1
- {"version":3,"file":"otel-emitter.d.ts","sourceRoot":"","sources":["../../../src/recording/otel/otel-emitter.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AACvD,OAAO,KAAK,EACV,mBAAmB,EACnB,uBAAuB,EACvB,kBAAkB,EAClB,sBAAsB,EACtB,kBAAkB,EAClB,gBAAgB,EAChB,qBAAqB,EACtB,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EAAU,gBAAgB,EAAY,MAAM,uBAAuB,CAAC;AAEhF,OAAO,EAAqB,KAAK,WAAW,EAAE,MAAM,UAAU,CAAC;AAgB/D,MAAM,WAAW,kBAAkB;IACjC,oGAAoG;IACpG,QAAQ,CAAC,GAAG,CAAC,EAAE,WAAW,CAAC;IAC3B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,0FAA0F;IAC1F,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;CAChC;AAED,qBAAa,WAAY,YAAW,gBAAgB;IAKhD,OAAO,CAAC,QAAQ,CAAC,OAAO;IAJ1B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAa;gBAGhC,QAAQ,EAAE,gBAAgB,EACT,OAAO,EAAE,gBAAgB,EAC1C,OAAO,GAAE,kBAAuB;IAYlC,gBAAgB,CAAC,MAAM,EAAE,gBAAgB,GAAG,IAAI;IAIhD,qBAAqB,CAAC,MAAM,EAAE,qBAAqB,GAAG,IAAI;IAI1D,uBAAuB,CAAC,MAAM,EAAE,uBAAuB,GAAG,IAAI;IAI9D,mBAAmB,CAAC,MAAM,EAAE,mBAAmB,GAAG,IAAI;IAItD,WAAW,CAAC,MAAM,EAAE,kBAAkB,GAAG,IAAI;IAI7C,sBAAsB,CAAC,MAAM,EAAE,sBAAsB,GAAG,IAAI;IAI5D,kBAAkB,CAAC,MAAM,EAAE,kBAAkB,GAAG,IAAI;IAIpD,OAAO,CAAC,UAAU;IAQlB,OAAO,CAAC,QAAQ;IAQhB,OAAO,CAAC,OAAO;CAMhB"}
1
+ {"version":3,"file":"otel-emitter.d.ts","sourceRoot":"","sources":["../../../src/recording/otel/otel-emitter.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AACvD,OAAO,KAAK,EACV,kBAAkB,EAClB,qBAAqB,EACrB,aAAa,EACb,mBAAmB,EACnB,gBAAgB,EAChB,uBAAuB,EACvB,kBAAkB,EAClB,sBAAsB,EACtB,kBAAkB,EAClB,gBAAgB,EAChB,oBAAoB,EACpB,qBAAqB,EACrB,mBAAmB,EACpB,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EAAU,gBAAgB,EAAY,MAAM,uBAAuB,CAAC;AAEhF,OAAO,EAAqB,KAAK,WAAW,EAAE,MAAM,UAAU,CAAC;AAuB/D,MAAM,WAAW,kBAAkB;IACjC,oGAAoG;IACpG,QAAQ,CAAC,GAAG,CAAC,EAAE,WAAW,CAAC;IAC3B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,0FAA0F;IAC1F,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;CAChC;AAED,qBAAa,WAAY,YAAW,gBAAgB;IAKhD,OAAO,CAAC,QAAQ,CAAC,OAAO;IAJ1B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAa;gBAGhC,QAAQ,EAAE,gBAAgB,EACT,OAAO,EAAE,gBAAgB,EAC1C,OAAO,GAAE,kBAAuB;IAYlC,gBAAgB,CAAC,MAAM,EAAE,gBAAgB,GAAG,IAAI;IAUhD,qBAAqB,CAAC,MAAM,EAAE,qBAAqB,GAAG,IAAI;IAI1D,uBAAuB,CAAC,MAAM,EAAE,uBAAuB,GAAG,IAAI;IAI9D,mBAAmB,CAAC,MAAM,EAAE,mBAAmB,GAAG,IAAI;IAItD,aAAa,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI;IAI1C,WAAW,CAAC,MAAM,EAAE,kBAAkB,GAAG,IAAI;IAI7C,sBAAsB,CAAC,MAAM,EAAE,sBAAsB,GAAG,IAAI;IAI5D,kBAAkB,CAAC,MAAM,EAAE,kBAAkB,GAAG,IAAI;IAIpD,kBAAkB,CAAC,MAAM,EAAE,kBAAkB,GAAG,IAAI;IAIpD,mBAAmB,CAAC,MAAM,EAAE,mBAAmB,GAAG,IAAI;IAItD,oBAAoB,CAAC,MAAM,EAAE,oBAAoB,GAAG,IAAI;IAIxD,qBAAqB,CAAC,MAAM,EAAE,qBAAqB,GAAG,IAAI;IAI1D,gBAAgB,CAAC,MAAM,EAAE,gBAAgB,GAAG,IAAI;IAIhD,OAAO,CAAC,UAAU;IAQlB,OAAO,CAAC,QAAQ;IAQhB,OAAO,CAAC,OAAO;CAMhB"}
@@ -7,9 +7,9 @@
7
7
  * block, or throw into trading behavior. For the multi-row `signal_evaluated` record, child mapping
8
8
  * is already defensive (one bad child cannot sink the pass span or its siblings — see the mapper).
9
9
  */
10
- import { SCOPE_NAME, SCOPE_VERSION } from "./constants.js";
10
+ import { isSkippedScannerRun, SCOPE_NAME, SCOPE_VERSION } from "./constants.js";
11
11
  import { cryptoIdGenerator } from "./ids.js";
12
- import { buildResource, mapDslTransition, mapPositionLifecycle, mapRuntimeError, mapRuntimeLifecycle, mapRuntimeState, mapScannerRun, mapSignalEvaluated, } from "./mappers.js";
12
+ import { buildResource, mapDecisionMade, mapDslCloseAttempt, mapDslTick, mapDslTransition, mapOrderEvent, mapPositionLifecycle, mapRuntimeError, mapRuntimeLifecycle, mapRuntimeState, mapScannerRun, mapScannerRunSkipped, mapScannerSummary, mapSignalEvaluated, mapSignalOutcome, } from "./mappers.js";
13
13
  import { createLogger } from "../../utils/logger.js";
14
14
  const logger = createLogger("[recording][otel][emitter]");
15
15
  export class OtelEmitter {
@@ -27,6 +27,12 @@ export class OtelEmitter {
27
27
  };
28
28
  }
29
29
  recordScannerRun(record) {
30
+ // The ROUTING exception: a skipped run is a discrete "didn't run" fact → log
31
+ // (`scanner_run.skipped`), not a zero-duration span. `complete`/`error` runs stay spans.
32
+ if (isSkippedScannerRun(record)) {
33
+ this.emitLogs("recordScannerRun", () => mapScannerRunSkipped(record, this.deps));
34
+ return;
35
+ }
30
36
  this.emitTraces("recordScannerRun", () => mapScannerRun(record, this.deps));
31
37
  }
32
38
  recordSignalEvaluated(record) {
@@ -38,6 +44,9 @@ export class OtelEmitter {
38
44
  recordDslTransition(record) {
39
45
  this.emitLogs("recordDslTransition", () => mapDslTransition(record, this.deps));
40
46
  }
47
+ recordDslTick(record) {
48
+ this.emitTraces("recordDslTick", () => mapDslTick(record, this.deps));
49
+ }
41
50
  recordError(record) {
42
51
  this.emitLogs("recordError", () => mapRuntimeError(record, this.deps));
43
52
  }
@@ -47,6 +56,21 @@ export class OtelEmitter {
47
56
  recordRuntimeState(record) {
48
57
  this.emitLogs("recordRuntimeState", () => mapRuntimeState(record, this.deps));
49
58
  }
59
+ recordDecisionMade(record) {
60
+ this.emitLogs("recordDecisionMade", () => mapDecisionMade(record, this.deps));
61
+ }
62
+ recordSignalOutcome(record) {
63
+ this.emitLogs("recordSignalOutcome", () => mapSignalOutcome(record, this.deps));
64
+ }
65
+ recordScannerSummary(record) {
66
+ this.emitLogs("recordScannerSummary", () => mapScannerSummary(record, this.deps));
67
+ }
68
+ recordDslCloseAttempt(record) {
69
+ this.emitLogs("recordDslCloseAttempt", () => mapDslCloseAttempt(record, this.deps));
70
+ }
71
+ recordOrderEvent(record) {
72
+ this.emitLogs("recordOrderEvent", () => mapOrderEvent(record, this.deps));
73
+ }
50
74
  emitTraces(label, map) {
51
75
  try {
52
76
  for (const row of map())
@@ -1 +1 @@
1
- {"version":3,"file":"otel-emitter.js","sourceRoot":"","sources":["../../../src/recording/otel/otel-emitter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"otel-emitter.js","sourceRoot":"","sources":["../../../src/recording/otel/otel-emitter.ts"],"names":[],"mappings":"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"}
@@ -4,11 +4,12 @@
4
4
  * testable, more robust than scrubbing flattened keys after the fact.
5
5
  *
6
6
  * Policy (value-vs-risk, confirmed against the real producers):
7
- * - **Drop the two genuinely-open bags wholesale.** `SignalSummary.meta` is bounded only for the
7
+ * - **Drop the genuinely-open bag wholesale.** `SignalSummary.meta` is bounded only for the
8
8
  * scanners we ship, but the runtime exists to host arbitrary scanner implementations, so its
9
- * contents can't be vouched for. `SignalDecision.payload` is raw LLM JSON validated only as "an
10
- * object" (free-text + arbitrary keys + a nested scanner-meta passthrough). Neither ships; the
11
- * high-value bounded data they'd carry is already on typed scalars / the per-signal child spans.
9
+ * contents can't be vouched for. It never ships; the high-value bounded data it'd carry is
10
+ * already on typed scalars / the per-signal child spans. (The raw LLM decision payload is no
11
+ * longer on the record at all — since the pass was single-sourced from `_decisionMeta`, only
12
+ * its bounded content reaches the per-signal children.)
12
13
  * - **Mask `RuntimeErrorRecord.stack`** (it can embed file paths / secrets) with {@link REDACT_MARKER}.
13
14
  * - **Kept (NOT redacted), only length-capped at flatten time:** `SignalDecision.reasoning` and
14
15
  * `PositionLifecycleRecord.reasoning` (high-value agent rationale — paired with the child spans
@@ -18,8 +19,8 @@
18
19
  * - `RuntimeLifecycleRecord.config` is the *unresolved* config (placeholders intact, no inlined
19
20
  * secrets), so it is only size-capped, never redacted.
20
21
  *
21
- * `decision.payload` is dropped by simply not flattening it in the mapper; this module clears the
22
- * fields that must not survive even if a future mapper change tries to read them.
22
+ * This module clears the fields that must not survive even if a future mapper change tries to
23
+ * read them.
23
24
  */
24
25
  import type { RuntimeErrorRecord, RuntimeStateRecord, SignalEvaluatedRecord } from "../records.js";
25
26
  /** Drop `signal.meta` (open bag, arbitrary scanner contents). `reasoning` is kept (length-capped). */
@@ -28,4 +29,19 @@ export declare function redactSignalEvaluated(record: SignalEvaluatedRecord): Si
28
29
  export declare function redactRuntimeError(record: RuntimeErrorRecord): RuntimeErrorRecord;
29
30
  /** Drop the `metrics` bag (not surfaced for now). `reason` is kept (code-templated, length-capped). */
30
31
  export declare function redactRuntimeState(record: RuntimeStateRecord): RuntimeStateRecord;
32
+ /**
33
+ * Task 8 inverts the locus of redaction. The above scrubs *typed attribute fields* — a known,
34
+ * trusted set. The new event-log Bodies (raw scanner payloads + LLM reasoning) are the
35
+ * variable/untrusted data, so they get a key-name scrubber here: attributes stay un-redacted; the
36
+ * Body is where arbitrary scanner `meta` (the exact data Task 2 refused to vouch for) now lives, so
37
+ * the seam moves over it.
38
+ */
39
+ export declare const SENSITIVE_KEY_PATTERN: RegExp;
40
+ /**
41
+ * Deep-walk a Body value: any object key whose NAME matches {@link SENSITIVE_KEY_PATTERN} has its
42
+ * value replaced with {@link REDACT_MARKER}; nested objects/arrays recurse; scalars pass through
43
+ * unchanged. A flat string (LLM reasoning) has no keys, so it returns verbatim. Never throws — a
44
+ * depth cap and a seen-set guard against cycles; on any anomaly the subtree is returned as-is.
45
+ */
46
+ export declare function redactBody(value: unknown): unknown;
31
47
  //# sourceMappingURL=redaction.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"redaction.d.ts","sourceRoot":"","sources":["../../../src/recording/otel/redaction.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAGH,OAAO,KAAK,EACV,kBAAkB,EAClB,kBAAkB,EAClB,qBAAqB,EAEtB,MAAM,eAAe,CAAC;AAEvB,sGAAsG;AACtG,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,qBAAqB,GAAG,qBAAqB,CAK1F;AAED,kGAAkG;AAClG,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,kBAAkB,GAAG,kBAAkB,CAGjF;AAED,uGAAuG;AACvG,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,kBAAkB,GAAG,kBAAkB,CAEjF"}
1
+ {"version":3,"file":"redaction.d.ts","sourceRoot":"","sources":["../../../src/recording/otel/redaction.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAGH,OAAO,KAAK,EACV,kBAAkB,EAClB,kBAAkB,EAClB,qBAAqB,EAEtB,MAAM,eAAe,CAAC;AAEvB,sGAAsG;AACtG,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,qBAAqB,GAAG,qBAAqB,CAK1F;AAED,kGAAkG;AAClG,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,kBAAkB,GAAG,kBAAkB,CAGjF;AAED,uGAAuG;AACvG,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,kBAAkB,GAAG,kBAAkB,CAEjF;AAGD;;;;;;GAMG;AACH,eAAO,MAAM,qBAAqB,QACgF,CAAC;AAKnH;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAElD"}
@@ -4,11 +4,12 @@
4
4
  * testable, more robust than scrubbing flattened keys after the fact.
5
5
  *
6
6
  * Policy (value-vs-risk, confirmed against the real producers):
7
- * - **Drop the two genuinely-open bags wholesale.** `SignalSummary.meta` is bounded only for the
7
+ * - **Drop the genuinely-open bag wholesale.** `SignalSummary.meta` is bounded only for the
8
8
  * scanners we ship, but the runtime exists to host arbitrary scanner implementations, so its
9
- * contents can't be vouched for. `SignalDecision.payload` is raw LLM JSON validated only as "an
10
- * object" (free-text + arbitrary keys + a nested scanner-meta passthrough). Neither ships; the
11
- * high-value bounded data they'd carry is already on typed scalars / the per-signal child spans.
9
+ * contents can't be vouched for. It never ships; the high-value bounded data it'd carry is
10
+ * already on typed scalars / the per-signal child spans. (The raw LLM decision payload is no
11
+ * longer on the record at all — since the pass was single-sourced from `_decisionMeta`, only
12
+ * its bounded content reaches the per-signal children.)
12
13
  * - **Mask `RuntimeErrorRecord.stack`** (it can embed file paths / secrets) with {@link REDACT_MARKER}.
13
14
  * - **Kept (NOT redacted), only length-capped at flatten time:** `SignalDecision.reasoning` and
14
15
  * `PositionLifecycleRecord.reasoning` (high-value agent rationale — paired with the child spans
@@ -18,8 +19,8 @@
18
19
  * - `RuntimeLifecycleRecord.config` is the *unresolved* config (placeholders intact, no inlined
19
20
  * secrets), so it is only size-capped, never redacted.
20
21
  *
21
- * `decision.payload` is dropped by simply not flattening it in the mapper; this module clears the
22
- * fields that must not survive even if a future mapper change tries to read them.
22
+ * This module clears the fields that must not survive even if a future mapper change tries to
23
+ * read them.
23
24
  */
24
25
  import { REDACT_MARKER } from "./constants.js";
25
26
  /** Drop `signal.meta` (open bag, arbitrary scanner contents). `reasoning` is kept (length-capped). */
@@ -37,4 +38,51 @@ export function redactRuntimeError(record) {
37
38
  export function redactRuntimeState(record) {
38
39
  return { ...record, metrics: null };
39
40
  }
41
+ // ── Body redaction (Task 8) ────────────────────────────────────────────────────
42
+ /**
43
+ * Task 8 inverts the locus of redaction. The above scrubs *typed attribute fields* — a known,
44
+ * trusted set. The new event-log Bodies (raw scanner payloads + LLM reasoning) are the
45
+ * variable/untrusted data, so they get a key-name scrubber here: attributes stay un-redacted; the
46
+ * Body is where arbitrary scanner `meta` (the exact data Task 2 refused to vouch for) now lives, so
47
+ * the seam moves over it.
48
+ */
49
+ export const SENSITIVE_KEY_PATTERN = /(api[_-]?key|secret|token|password|passwd|authorization|auth|bearer|private[_-]?key|mnemonic|seed|credential)/i;
50
+ /** Depth cap as a defensive cycle/over-recursion guard — Bodies are shallow in practice. */
51
+ const MAX_REDACT_DEPTH = 12;
52
+ /**
53
+ * Deep-walk a Body value: any object key whose NAME matches {@link SENSITIVE_KEY_PATTERN} has its
54
+ * value replaced with {@link REDACT_MARKER}; nested objects/arrays recurse; scalars pass through
55
+ * unchanged. A flat string (LLM reasoning) has no keys, so it returns verbatim. Never throws — a
56
+ * depth cap and a seen-set guard against cycles; on any anomaly the subtree is returned as-is.
57
+ */
58
+ export function redactBody(value) {
59
+ return walk(value, 0, new WeakSet());
60
+ }
61
+ function walk(value, depth, seen) {
62
+ if (value === null || typeof value !== "object")
63
+ return value;
64
+ if (depth >= MAX_REDACT_DEPTH)
65
+ return value;
66
+ if (seen.has(value))
67
+ return value; // cycle on the CURRENT path — leave the back-reference as-is
68
+ // Path stack, not a cumulative visited-set: add before recursing, delete after. A genuine cycle
69
+ // (an ancestor reappears) is still caught, but legitimately shared references — the same object
70
+ // reachable via two sibling paths — are each walked and redacted independently. A cumulative set
71
+ // would return the shared subtree UNREDACTED on its second visit, leaking any sensitive key it
72
+ // carries.
73
+ seen.add(value);
74
+ let result;
75
+ if (Array.isArray(value)) {
76
+ result = value.map((v) => walk(v, depth + 1, seen));
77
+ }
78
+ else {
79
+ const out = {};
80
+ for (const [k, v] of Object.entries(value)) {
81
+ out[k] = SENSITIVE_KEY_PATTERN.test(k) ? REDACT_MARKER : walk(v, depth + 1, seen);
82
+ }
83
+ result = out;
84
+ }
85
+ seen.delete(value);
86
+ return result;
87
+ }
40
88
  //# sourceMappingURL=redaction.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"redaction.js","sourceRoot":"","sources":["../../../src/recording/otel/redaction.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAQ/C,sGAAsG;AACtG,MAAM,UAAU,qBAAqB,CAAC,MAA6B;IACjE,MAAM,WAAW,GAAuB,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CACpE,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,CACzF,CAAC;IACF,OAAO,EAAE,GAAG,MAAM,EAAE,WAAW,EAAE,CAAC;AACpC,CAAC;AAED,kGAAkG;AAClG,MAAM,UAAU,kBAAkB,CAAC,MAA0B;IAC3D,IAAI,CAAC,MAAM,CAAC,KAAK;QAAE,OAAO,MAAM,CAAC;IACjC,OAAO,EAAE,GAAG,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC;AAC7C,CAAC;AAED,uGAAuG;AACvG,MAAM,UAAU,kBAAkB,CAAC,MAA0B;IAC3D,OAAO,EAAE,GAAG,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AACtC,CAAC"}
1
+ {"version":3,"file":"redaction.js","sourceRoot":"","sources":["../../../src/recording/otel/redaction.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAQ/C,sGAAsG;AACtG,MAAM,UAAU,qBAAqB,CAAC,MAA6B;IACjE,MAAM,WAAW,GAAuB,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CACpE,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,CACzF,CAAC;IACF,OAAO,EAAE,GAAG,MAAM,EAAE,WAAW,EAAE,CAAC;AACpC,CAAC;AAED,kGAAkG;AAClG,MAAM,UAAU,kBAAkB,CAAC,MAA0B;IAC3D,IAAI,CAAC,MAAM,CAAC,KAAK;QAAE,OAAO,MAAM,CAAC;IACjC,OAAO,EAAE,GAAG,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC;AAC7C,CAAC;AAED,uGAAuG;AACvG,MAAM,UAAU,kBAAkB,CAAC,MAA0B;IAC3D,OAAO,EAAE,GAAG,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AACtC,CAAC;AAED,kFAAkF;AAClF;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAChC,gHAAgH,CAAC;AAEnH,4FAA4F;AAC5F,MAAM,gBAAgB,GAAG,EAAE,CAAC;AAE5B;;;;;GAKG;AACH,MAAM,UAAU,UAAU,CAAC,KAAc;IACvC,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,IAAI,OAAO,EAAE,CAAC,CAAC;AACvC,CAAC;AAED,SAAS,IAAI,CAAC,KAAc,EAAE,KAAa,EAAE,IAAqB;IAChE,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC9D,IAAI,KAAK,IAAI,gBAAgB;QAAE,OAAO,KAAK,CAAC;IAC5C,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC,CAAC,6DAA6D;IAChG,gGAAgG;IAChG,gGAAgG;IAChG,iGAAiG;IACjG,+FAA+F;IAC/F,WAAW;IACX,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAChB,IAAI,MAAe,CAAC;IACpB,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;IACtD,CAAC;SAAM,CAAC;QACN,MAAM,GAAG,GAA4B,EAAE,CAAC;QACxC,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAgC,CAAC,EAAE,CAAC;YACtE,GAAG,CAAC,CAAC,CAAC,GAAG,qBAAqB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC;QACpF,CAAC;QACD,MAAM,GAAG,GAAG,CAAC;IACf,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACnB,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -43,6 +43,8 @@ export type ScannerRunOutcome = "complete" | "skipped" | "error";
43
43
  export interface ScannerRunRecord {
44
44
  readonly type: "scanner_run";
45
45
  readonly scannerId: string;
46
+ /** Telemetry-owned per-scan-run id; threads scan → pass into one trace. */
47
+ readonly runId?: string;
46
48
  readonly outcome: ScannerRunOutcome;
47
49
  /** Raw engine status: `ok`|`heartbeat`|`skipped`|`halted`|`disabled`|`error`. */
48
50
  readonly statusDetail?: string;
@@ -85,8 +87,8 @@ export interface SignalDecision {
85
87
  readonly model?: string;
86
88
  readonly tokensUsed?: number | null;
87
89
  readonly durationMs?: number;
88
- /** Proposed per-asset overrides (leverage/margin/etc.) the decision emitted. */
89
- readonly payload?: Record<string, unknown>;
90
+ /** Epoch ms when the decision phase ended — the llm.decision child's end; its window is `[endedAt − durationMs, endedAt]`. */
91
+ readonly endedAt?: number;
90
92
  }
91
93
  /** Coarse result of acting on an evaluated signal. */
92
94
  export type SignalOutcomeResult = "executed" | "rejected" | "skipped" | "below_confidence" | "error";
@@ -138,6 +140,9 @@ export interface SignalOutcome {
138
140
  export interface SignalEvaluation {
139
141
  readonly signal: SignalSummary;
140
142
  readonly outcome: SignalOutcome;
143
+ /** Per-signal work window, epoch ms — stamped by the action loop (absent on older payloads). */
144
+ readonly startedAt?: number;
145
+ readonly endedAt?: number;
141
146
  }
142
147
  /**
143
148
  * One signal-evaluation work unit: the runtime hands a scan pass's batch to the action, which
@@ -148,6 +153,8 @@ export interface SignalEvaluation {
148
153
  export interface SignalEvaluatedRecord {
149
154
  readonly type: "signal_evaluated";
150
155
  readonly scannerId?: string;
156
+ /** Telemetry-owned per-scan-run id; threads scan → pass into one trace. */
157
+ readonly runId?: string;
151
158
  /** Evaluation start, epoch ms. Required (see {@link ScannerRunRecord.startedAt}) so a `Duration` is always derivable. */
152
159
  readonly startedAt: number;
153
160
  /** Evaluation end, epoch ms. */
@@ -204,6 +211,13 @@ export interface PositionLifecycleRecord {
204
211
  /** Order-fill success flag from `CreatePositionOrderResult.filled` (boolean, not a quantity). */
205
212
  readonly filled?: boolean | null;
206
213
  readonly reasoning?: string;
214
+ /**
215
+ * Externally-detected vs runtime-opened discriminator (`"runtime_opened"` |
216
+ * `"externally_detected"`), from the PositionIdRegistry's intent-vs-fresh mint observation.
217
+ * Populated on `opened` only (the registry surfaces it solely on confirm-open); absent on every
218
+ * other lifecycle event. See the Task 8a impl notes.
219
+ */
220
+ readonly reconciliationSource?: string;
207
221
  }
208
222
  export type DslTransitionKind = "created" | "phase_changed" | "tier_advanced" | "sl_updated" | "closed" | "close_pending" | "settings_updated" | "deleted";
209
223
  /** A tier in the exit ladder, as carried on `dsl.created`. */
@@ -267,6 +281,57 @@ export interface DslTransitionRecord {
267
281
  */
268
282
  readonly backendDslPositionId?: string | null;
269
283
  }
284
+ /**
285
+ * Which work unit of a monitor tick a {@link DslTickRecord} carries: the tick itself, one
286
+ * position's processing window, or one venue call (close attempt / SL update) within it.
287
+ */
288
+ export type DslTickUnit = "tick" | "position" | "close_attempt" | "sl_update";
289
+ /**
290
+ * One work unit of the DSL monitor tick — the runtime's third work loop alongside the scanner run
291
+ * and the signal-evaluation pass. Unlike {@link DslTransitionRecord} (the point-in-time
292
+ * state-machine record, which stays a log), these are *measured durations*: the tick batches price
293
+ * fetches and processes every active position, and each position's processing may submit a close
294
+ * or sync the exchange stop-loss — the venue-latency story.
295
+ *
296
+ * One record per bus event, no pairing: the shared `tickId` (emitted as the `tick.id` attribute on
297
+ * every span and, scoped by the emitter's bootId, used as the deterministic trace-id seed) threads
298
+ * the units into one trace, and `positionKey` seeds the per-position span id so close/SL units
299
+ * nest under their position.
300
+ * `unit` discriminates which optional fields apply. `position.id` joins the family to the
301
+ * position's lifecycle and `dsl_transition` logs across flows.
302
+ */
303
+ export interface DslTickRecord {
304
+ readonly type: "dsl_tick";
305
+ readonly unit: DslTickUnit;
306
+ /** The monitor's per-tick id — the deterministic TraceId seed (scoped by bootId) and the `tick.id` join attribute. */
307
+ readonly tickId: string;
308
+ /** Work-unit start, epoch ms — observed at the emit site, never fabricated. */
309
+ readonly startedAt: number;
310
+ /** Work-unit end, epoch ms (clamped so `endedAt >= startedAt`). */
311
+ readonly endedAt: number;
312
+ readonly strategyCount?: number;
313
+ readonly activePositionCount?: number;
314
+ readonly positionsProcessed?: number;
315
+ /** Batched price-fetch window within the tick (both or neither — a half window is fabricated extent). */
316
+ readonly pricesStartedAt?: number;
317
+ readonly pricesEndedAt?: number;
318
+ /** The DSL state key — the deterministic span-id seed component (`bootId:tickId:positionKey`). */
319
+ readonly positionKey?: string;
320
+ /** Cross-flow position.id (`DslState.positionId`, falling back to `correlationId` for legacy state). */
321
+ readonly positionId?: string;
322
+ readonly asset?: string;
323
+ readonly dex?: string;
324
+ readonly outcome?: "ok" | "error";
325
+ readonly error?: string;
326
+ readonly closeReason?: string;
327
+ /** Consecutive close-attempt number (1-based), from `consecutiveCloseFailures`. */
328
+ readonly attempt?: number;
329
+ readonly newSLPrice?: number;
330
+ /** Synced exchange SL order id (success only). */
331
+ readonly slOrderId?: number;
332
+ /** Why the sync ran (e.g. `slOrderMissing,tierChanged`), as the monitor computes it. */
333
+ readonly syncReason?: string;
334
+ }
270
335
  /**
271
336
  * A bucket-2 error that does not belong to a specific domain record (e.g. the bus's
272
337
  * `signal_processing_error`). Errors that *do* have a home — scanner failures, action
@@ -283,6 +348,8 @@ export interface RuntimeErrorRecord {
283
348
  readonly errorName?: string;
284
349
  readonly asset?: string;
285
350
  readonly scannerId?: string;
351
+ /** Telemetry-owned per-scan-run id when the error belongs to a scan family (e.g. signal processing). */
352
+ readonly runId?: string;
286
353
  readonly stack?: string;
287
354
  }
288
355
  export type RuntimeLifecyclePhase = "started" | "stopped";
@@ -336,6 +403,163 @@ export interface RuntimeStateRecord {
336
403
  /** Breached-gate metrics bag (`pnlDelta`, `dailyLossLimitUsd`, `drawdownFromPeakPct`, …). */
337
404
  readonly metrics?: Record<string, unknown> | null;
338
405
  }
406
+ /**
407
+ * Coarse action intent of a {@link DecisionMadeRecord} — the `open`/`close`/`none` axis the
408
+ * read-side groups decisions by, derived from the decision's action type.
409
+ */
410
+ export type DecisionActionIntent = "open" | "close" | "none";
411
+ /**
412
+ * The judgment over one evaluation pass, as a discrete log event (`decision.made`). Derived from
413
+ * the same `tracking.action_result` path that builds {@link SignalEvaluatedRecord} — no new bus
414
+ * event. The trace view keeps the decision on the `llm.decision` span; this is its logs-only twin so
415
+ * a logs-only consumer (the self-learning agent) can read "what the strategy decided and why"
416
+ * without walking spans.
417
+ *
418
+ * `reasoning` is the Body (uncapped free-text). Market-context fields (`fundingRegime`/
419
+ * `marketRegime`/`markPrice`) are reserved keys: they are NOT on the `tracking.action_result`
420
+ * payload today, so 8a leaves them undefined (absent = NULL) — see the Task 8a implementation notes.
421
+ */
422
+ export interface DecisionMadeRecord {
423
+ readonly type: "decision_made";
424
+ readonly occurredAt: number;
425
+ readonly mode?: DecisionMode;
426
+ readonly byLlm: boolean;
427
+ readonly model?: string;
428
+ readonly tokensUsed?: number | null;
429
+ readonly confidence?: number;
430
+ readonly confidenceThreshold?: number;
431
+ readonly durationMs?: number;
432
+ readonly actionIntent: DecisionActionIntent;
433
+ readonly fundingRegime?: string;
434
+ readonly marketRegime?: string;
435
+ readonly markPrice?: number;
436
+ /** Full LLM reasoning prose — the Body content (uncapped, routed through Body redaction). */
437
+ readonly reasoning?: string;
438
+ }
439
+ /** Disposition of one considered signal: did it become an order, get rejected, get blocked, or error. */
440
+ export type SignalOutcomeDisposition = "accepted" | "rejected" | "blocked" | "error";
441
+ /**
442
+ * One signal's disposition, as a discrete log event (`signal.outcome`). One per evaluation in the
443
+ * pass, derived from the same `tracking.action_result` path that builds {@link SignalEvaluatedRecord}
444
+ * — no new bus event. The four-value `result` collapses the granular per-signal
445
+ * {@link SignalOutcomeResult}; the open `reasonCode` is kept verbatim for the fine-grained reason.
446
+ *
447
+ * `rawSignal` is the variable-shaped scanner evidence → the Body (redacted in the mapper). The
448
+ * scalars below are the queryable attribute surface.
449
+ */
450
+ export interface SignalOutcomeRecord {
451
+ readonly type: "signal_outcome";
452
+ readonly occurredAt: number;
453
+ readonly scannerId?: string;
454
+ readonly signalType?: string;
455
+ readonly asset: string;
456
+ readonly direction?: TradeDirection | null;
457
+ readonly score?: number;
458
+ /** Signal time, epoch ms. */
459
+ readonly signalTs?: number;
460
+ readonly factors?: Record<string, boolean>;
461
+ readonly result: SignalOutcomeDisposition;
462
+ /** The granular per-signal reason (open string, e.g. `risk_gate_COOLDOWN`, `below_confidence`). */
463
+ readonly reasonCode?: string;
464
+ readonly positionId?: string;
465
+ readonly marginAmount?: number;
466
+ readonly leverage?: number;
467
+ readonly notionalValue?: number;
468
+ readonly size?: number;
469
+ /** Reserved — unpopulated in 8a (not on the payload; see impl notes). */
470
+ readonly marginSource?: string;
471
+ readonly orderId?: string;
472
+ readonly errorName?: string;
473
+ /** The raw scanner signal payload (incl. its `meta`/`factors`) → the Body, redacted in the mapper. */
474
+ readonly rawSignal?: Record<string, unknown>;
475
+ }
476
+ /**
477
+ * One DSL exit attempt as a discrete log event (`dsl.close_attempt`) — exit attempts / venue
478
+ * failures / retries, span-only today. Derived from the existing `tracking.dsl_close_attempt` event
479
+ * (already consumed to build the {@link DslTickRecord} trace) — a second consumer for the log.
480
+ *
481
+ * No `errorName`: only `String(e)` is available at the producer emit site, so the error class name
482
+ * is omitted (see the Task 8a impl notes).
483
+ */
484
+ export interface DslCloseAttemptRecord {
485
+ readonly type: "dsl_close_attempt";
486
+ readonly occurredAt: number;
487
+ readonly positionId?: string;
488
+ readonly asset?: string;
489
+ readonly dex?: string;
490
+ /** The close reason (`closeReason` on the payload). */
491
+ readonly reason?: string;
492
+ readonly attempt?: number;
493
+ readonly result: "ok" | "error";
494
+ readonly error?: string;
495
+ }
496
+ /**
497
+ * One scan's funnel summary as a discrete log event (`scanner.summary`) — the anti-spam roll-up of
498
+ * what a scan considered and dropped. Derived from the SAME `tracking.scanner_run` payload that
499
+ * builds {@link ScannerRunRecord} (its `summary.funnel`), so no new bus event. One row per scan: the
500
+ * dropped candidates are ONE Body array, never one row per drop.
501
+ *
502
+ * `passedAssets` is a small linkage list (the survivors, each detailed by its own `signal.outcome`);
503
+ * `droppedCandidates` is the variable-shaped Body array — never a filter target, reachable only after
504
+ * the row is selected. The count attributes (`scannedCount`/`passedCount`/`droppedCount`/
505
+ * `droppedByReason`) carry the aggregate query surface.
506
+ */
507
+ export interface ScannerSummaryRecord {
508
+ readonly type: "scanner_summary";
509
+ readonly occurredAt: number;
510
+ readonly scannerId: string;
511
+ readonly scannedCount?: number;
512
+ readonly passedCount?: number;
513
+ readonly droppedCount?: number;
514
+ /** Reason → count of candidates dropped for it (bounded reason vocabulary → queryable attrs). */
515
+ readonly droppedByReason?: Record<string, number>;
516
+ /** The survivors' assets — a small linkage list to the per-signal `signal.outcome` events. */
517
+ readonly passedAssets?: readonly string[];
518
+ /** The variable Body array: `[{asset, score?, reason, factors?}, …]` — never a filter target. */
519
+ readonly droppedCandidates?: readonly Record<string, unknown>[];
520
+ }
521
+ /** Which execution fact an {@link OrderEventRecord} carries. */
522
+ export type OrderEventKind = "placed" | "filled" | "failed";
523
+ /**
524
+ * One order-execution event as a discrete log event (`order.{placed,filled,failed}`) — the venue
525
+ * execution granularity (placement vs fill, maker/taker, venue rejects) that the position-level
526
+ * `position_lifecycle` event can't carry. Emitted additively by the open/close actions at the
527
+ * submit/success/failure points (the new `tracking.order_*` bus events). `event` discriminates which
528
+ * optional fields apply.
529
+ *
530
+ * Overlap with `position_lifecycle.opened`/`.closed` is intentional: the lifecycle event is the
531
+ * settled position-level fact; `order.*` is the execution-level fact. Both are emitted; no dedupe.
532
+ *
533
+ * `limitPrice`/`fees`/`partial` are reserved-but-unpopulated in 8a — they are not in scope at the
534
+ * action's submission point (see the Task 8a impl notes). `error` on `failed` is the optional venue
535
+ * raw response → the Body.
536
+ */
537
+ export interface OrderEventRecord {
538
+ readonly type: "order_event";
539
+ readonly event: OrderEventKind;
540
+ readonly occurredAt: number;
541
+ /** Cross-flow position.id (`__positionId` on the bus payload). See {@link SignalOutcome.positionId}. */
542
+ readonly positionId?: string;
543
+ readonly orderId?: string;
544
+ readonly asset: string;
545
+ readonly direction?: TradeDirection | null;
546
+ readonly orderType?: string;
547
+ readonly size?: number;
548
+ /** Reserved — unpopulated in 8a (not in scope at the submission point; see impl notes). */
549
+ readonly limitPrice?: number;
550
+ readonly reduceOnly?: boolean;
551
+ readonly fillPrice?: number;
552
+ readonly fillSize?: number;
553
+ readonly executionAsMaker?: boolean | null;
554
+ /** Reserved — unpopulated in 8a (not in scope; see impl notes). */
555
+ readonly fees?: number;
556
+ /** Reserved — unpopulated in 8a (not in scope; see impl notes). */
557
+ readonly partial?: boolean;
558
+ readonly reason?: string;
559
+ readonly errorName?: string;
560
+ /** The optional venue raw response on `failed` → the Body. */
561
+ readonly error?: string;
562
+ }
339
563
  /** Discriminated union of every record type. */
340
- export type RecordingRecord = ScannerRunRecord | SignalEvaluatedRecord | PositionLifecycleRecord | DslTransitionRecord | RuntimeErrorRecord | RuntimeLifecycleRecord | RuntimeStateRecord;
564
+ export type RecordingRecord = ScannerRunRecord | SignalEvaluatedRecord | PositionLifecycleRecord | DslTransitionRecord | DslTickRecord | RuntimeErrorRecord | RuntimeLifecycleRecord | RuntimeStateRecord | DecisionMadeRecord | SignalOutcomeRecord | ScannerSummaryRecord | DslCloseAttemptRecord | OrderEventRecord;
341
565
  //# sourceMappingURL=records.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"records.d.ts","sourceRoot":"","sources":["../../src/recording/records.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"records.d.ts","sourceRoot":"","sources":["../../src/recording/records.ts"],"names":[],"mappings":"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"}