@senpi/runtime 3.0.6-dev.runtime-phase-2.20260630134410 → 3.0.6-dev.runtime-phase-2.20260630134451
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.
- package/dist/actions/{tracking-helpers.d.ts → action-events.d.ts} +24 -23
- package/dist/actions/action-events.d.ts.map +1 -0
- package/dist/actions/{tracking-helpers.js → action-events.js} +25 -77
- package/dist/actions/action-events.js.map +1 -0
- package/dist/actions/close-position/close-position.action.d.ts.map +1 -1
- package/dist/actions/close-position/close-position.action.js +8 -17
- package/dist/actions/close-position/close-position.action.js.map +1 -1
- package/dist/actions/event-derivation.d.ts +5 -6
- package/dist/actions/event-derivation.d.ts.map +1 -1
- package/dist/actions/event-derivation.js +4 -5
- package/dist/actions/event-derivation.js.map +1 -1
- package/dist/actions/llm-decision/openclaw-llm-decision.js +5 -5
- package/dist/actions/llm-decision/openclaw-llm-decision.js.map +1 -1
- package/dist/actions/open-position/open-position.action.d.ts.map +1 -1
- package/dist/actions/open-position/open-position.action.js +9 -17
- package/dist/actions/open-position/open-position.action.js.map +1 -1
- package/dist/actions/position-tracker/position-tracker.action.d.ts.map +1 -1
- package/dist/actions/position-tracker/position-tracker.action.js +1 -2
- package/dist/actions/position-tracker/position-tracker.action.js.map +1 -1
- package/dist/dsl/engine-client/event-mapping.d.ts.map +1 -1
- package/dist/dsl/engine-client/event-mapping.js +0 -3
- package/dist/dsl/engine-client/event-mapping.js.map +1 -1
- package/dist/dsl/events/build-closed-event.d.ts.map +1 -1
- package/dist/dsl/events/build-closed-event.js +0 -1
- package/dist/dsl/events/build-closed-event.js.map +1 -1
- package/dist/dsl/events/handlers.d.ts.map +1 -1
- package/dist/dsl/events/handlers.js +2 -4
- package/dist/dsl/events/handlers.js.map +1 -1
- package/dist/dsl/monitor/create-monitor.d.ts +1 -1
- package/dist/dsl/monitor/create-monitor.d.ts.map +1 -1
- package/dist/dsl/monitor/create-monitor.js +0 -30
- package/dist/dsl/monitor/create-monitor.js.map +1 -1
- package/dist/dsl/monitor/process-one-position.d.ts.map +1 -1
- package/dist/dsl/monitor/process-one-position.js +0 -121
- package/dist/dsl/monitor/process-one-position.js.map +1 -1
- package/dist/dsl/plugin/index.js +3 -3
- package/dist/dsl/plugin/index.js.map +1 -1
- package/dist/dsl/plugin/options.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8 -53
- package/dist/index.js.map +1 -1
- package/dist/runtime/__tests__/helpers/runtime-gateway-harness.d.ts +2 -0
- package/dist/runtime/__tests__/helpers/runtime-gateway-harness.d.ts.map +1 -1
- package/dist/runtime/__tests__/helpers/runtime-gateway-harness.js +24 -3
- package/dist/runtime/__tests__/helpers/runtime-gateway-harness.js.map +1 -1
- package/dist/runtime/create-runtime-context.d.ts +1 -1
- package/dist/runtime/create-runtime-context.d.ts.map +1 -1
- package/dist/runtime/create-scanner-module.d.ts +1 -1
- package/dist/runtime/domain-events.d.ts +4 -4
- package/dist/runtime/domain-events.d.ts.map +1 -1
- package/dist/runtime/domain-events.js +4 -4
- package/dist/runtime/domain-events.js.map +1 -1
- package/dist/runtime/lifecycle-events.d.ts +3 -3
- package/dist/runtime/lifecycle-events.js +5 -5
- package/dist/runtime/lifecycle-events.js.map +1 -1
- package/dist/{tracking → runtime}/position-id-registry.d.ts +14 -1
- package/dist/runtime/position-id-registry.d.ts.map +1 -0
- package/dist/{tracking → runtime}/position-id-registry.js +20 -3
- package/dist/runtime/position-id-registry.js.map +1 -0
- package/dist/runtime/run.d.ts +2 -4
- package/dist/runtime/run.d.ts.map +1 -1
- package/dist/runtime/run.js.map +1 -1
- package/dist/runtime/runtime-schema.d.ts +120 -437
- package/dist/runtime/runtime-schema.d.ts.map +1 -1
- package/dist/runtime/runtime-schema.js +0 -27
- package/dist/runtime/runtime-schema.js.map +1 -1
- package/dist/runtime/runtime.d.ts +4 -9
- package/dist/runtime/runtime.d.ts.map +1 -1
- package/dist/runtime/runtime.js +29 -180
- package/dist/runtime/runtime.js.map +1 -1
- package/dist/scanners/engine/data-providers.d.ts +1 -1
- package/dist/scanners/runtime-module.d.ts +1 -1
- package/dist/senpi/client.js +2 -2
- package/dist/senpi/client.js.map +1 -1
- package/dist/telemetry/attributes.d.ts +13 -0
- package/dist/telemetry/attributes.d.ts.map +1 -0
- package/dist/telemetry/attributes.js +22 -0
- package/dist/telemetry/attributes.js.map +1 -0
- package/dist/{tracking → telemetry}/context.d.ts +6 -5
- package/dist/telemetry/context.d.ts.map +1 -0
- package/dist/{tracking → telemetry}/context.js +4 -4
- package/dist/telemetry/context.js.map +1 -0
- package/dist/{recording/records.d.ts → telemetry/event-builders.d.ts} +138 -30
- package/dist/telemetry/event-builders.d.ts.map +1 -0
- package/dist/{recording/wiring/record-builders.js → telemetry/event-builders.js} +90 -39
- package/dist/telemetry/event-builders.js.map +1 -0
- package/dist/telemetry/identity.d.ts +62 -0
- package/dist/telemetry/identity.d.ts.map +1 -0
- package/dist/{recording/wiring → telemetry}/identity.js +5 -2
- package/dist/telemetry/identity.js.map +1 -0
- package/dist/telemetry/spans/constants.d.ts.map +1 -0
- package/dist/telemetry/spans/constants.js.map +1 -0
- package/dist/telemetry/spans/gen-ai.d.ts.map +1 -0
- package/dist/telemetry/spans/gen-ai.js.map +1 -0
- package/dist/telemetry/spans/index.d.ts.map +1 -0
- package/dist/telemetry/spans/index.js.map +1 -0
- package/dist/telemetry/spans/redact-pii.d.ts.map +1 -0
- package/dist/telemetry/spans/redact-pii.js.map +1 -0
- package/dist/telemetry/spans/sanitize-payload.d.ts.map +1 -0
- package/dist/telemetry/spans/sanitize-payload.js.map +1 -0
- package/dist/telemetry/spans/span-hooks.d.ts.map +1 -0
- package/dist/{tracking → telemetry}/spans/span-hooks.js +4 -4
- package/dist/telemetry/spans/span-hooks.js.map +1 -0
- package/dist/telemetry/trace-identity.d.ts +1 -1
- package/dist/types/dsl/index.d.ts +2 -9
- package/dist/types/dsl/index.d.ts.map +1 -1
- package/dist/types/runtime.d.ts +1 -1
- package/dist/types/runtime.d.ts.map +1 -1
- package/dist/utils/event-catalog.d.ts +2 -2
- package/dist/utils/event-catalog.js +2 -2
- package/dist/utils/logger.js +3 -4
- package/dist/utils/logger.js.map +1 -1
- package/package.json +1 -1
- package/dist/actions/tracking-helpers.d.ts.map +0 -1
- package/dist/actions/tracking-helpers.js.map +0 -1
- package/dist/recording/emitter.d.ts +0 -27
- package/dist/recording/emitter.d.ts.map +0 -1
- package/dist/recording/emitter.js +0 -2
- package/dist/recording/emitter.js.map +0 -1
- package/dist/recording/identity.d.ts +0 -34
- package/dist/recording/identity.d.ts.map +0 -1
- package/dist/recording/identity.js +0 -2
- package/dist/recording/identity.js.map +0 -1
- package/dist/recording/index.d.ts +0 -11
- package/dist/recording/index.d.ts.map +0 -1
- package/dist/recording/index.js +0 -2
- package/dist/recording/index.js.map +0 -1
- package/dist/recording/noop-emitter.d.ts +0 -23
- package/dist/recording/noop-emitter.d.ts.map +0 -1
- package/dist/recording/noop-emitter.js +0 -22
- package/dist/recording/noop-emitter.js.map +0 -1
- package/dist/recording/otel/attributes.d.ts +0 -37
- package/dist/recording/otel/attributes.d.ts.map +0 -1
- package/dist/recording/otel/attributes.js +0 -131
- package/dist/recording/otel/attributes.js.map +0 -1
- package/dist/recording/otel/constants.d.ts +0 -123
- package/dist/recording/otel/constants.d.ts.map +0 -1
- package/dist/recording/otel/constants.js +0 -172
- package/dist/recording/otel/constants.js.map +0 -1
- package/dist/recording/otel/ids.d.ts +0 -25
- package/dist/recording/otel/ids.d.ts.map +0 -1
- package/dist/recording/otel/ids.js +0 -37
- package/dist/recording/otel/ids.js.map +0 -1
- package/dist/recording/otel/index.d.ts +0 -13
- package/dist/recording/otel/index.d.ts.map +0 -1
- package/dist/recording/otel/index.js +0 -9
- package/dist/recording/otel/index.js.map +0 -1
- package/dist/recording/otel/mappers.d.ts +0 -100
- package/dist/recording/otel/mappers.d.ts.map +0 -1
- package/dist/recording/otel/mappers.js +0 -684
- package/dist/recording/otel/mappers.js.map +0 -1
- package/dist/recording/otel/otel-emitter.d.ts +0 -43
- package/dist/recording/otel/otel-emitter.d.ts.map +0 -1
- package/dist/recording/otel/otel-emitter.js +0 -99
- package/dist/recording/otel/otel-emitter.js.map +0 -1
- package/dist/recording/otel/redaction.d.ts +0 -47
- package/dist/recording/otel/redaction.d.ts.map +0 -1
- package/dist/recording/otel/redaction.js +0 -88
- package/dist/recording/otel/redaction.js.map +0 -1
- package/dist/recording/records.d.ts.map +0 -1
- package/dist/recording/records.js +0 -14
- package/dist/recording/records.js.map +0 -1
- package/dist/recording/transport/batcher.d.ts +0 -59
- package/dist/recording/transport/batcher.d.ts.map +0 -1
- package/dist/recording/transport/batcher.js +0 -234
- package/dist/recording/transport/batcher.js.map +0 -1
- package/dist/recording/transport/client.d.ts +0 -41
- package/dist/recording/transport/client.d.ts.map +0 -1
- package/dist/recording/transport/client.js +0 -69
- package/dist/recording/transport/client.js.map +0 -1
- package/dist/recording/transport/config.d.ts +0 -53
- package/dist/recording/transport/config.d.ts.map +0 -1
- package/dist/recording/transport/config.js +0 -41
- package/dist/recording/transport/config.js.map +0 -1
- package/dist/recording/transport/index.d.ts +0 -16
- package/dist/recording/transport/index.d.ts.map +0 -1
- package/dist/recording/transport/index.js +0 -12
- package/dist/recording/transport/index.js.map +0 -1
- package/dist/recording/transport/rows.d.ts +0 -88
- package/dist/recording/transport/rows.d.ts.map +0 -1
- package/dist/recording/transport/rows.js +0 -15
- package/dist/recording/transport/rows.js.map +0 -1
- package/dist/recording/wiring/emitter-factory.d.ts +0 -34
- package/dist/recording/wiring/emitter-factory.d.ts.map +0 -1
- package/dist/recording/wiring/emitter-factory.js +0 -44
- package/dist/recording/wiring/emitter-factory.js.map +0 -1
- package/dist/recording/wiring/identity.d.ts +0 -27
- package/dist/recording/wiring/identity.d.ts.map +0 -1
- package/dist/recording/wiring/identity.js.map +0 -1
- package/dist/recording/wiring/index.d.ts +0 -12
- package/dist/recording/wiring/index.d.ts.map +0 -1
- package/dist/recording/wiring/index.js +0 -9
- package/dist/recording/wiring/index.js.map +0 -1
- package/dist/recording/wiring/record-builders.d.ts +0 -107
- package/dist/recording/wiring/record-builders.d.ts.map +0 -1
- package/dist/recording/wiring/record-builders.js.map +0 -1
- package/dist/recording/wiring/subscriber.d.ts +0 -28
- package/dist/recording/wiring/subscriber.d.ts.map +0 -1
- package/dist/recording/wiring/subscriber.js +0 -173
- package/dist/recording/wiring/subscriber.js.map +0 -1
- package/dist/recording/wiring/values.d.ts +0 -19
- package/dist/recording/wiring/values.d.ts.map +0 -1
- package/dist/recording/wiring/values.js +0 -49
- package/dist/recording/wiring/values.js.map +0 -1
- package/dist/tracking/build-rehydrate-items.d.ts +0 -15
- package/dist/tracking/build-rehydrate-items.d.ts.map +0 -1
- package/dist/tracking/build-rehydrate-items.js +0 -19
- package/dist/tracking/build-rehydrate-items.js.map +0 -1
- package/dist/tracking/constants.d.ts +0 -24
- package/dist/tracking/constants.d.ts.map +0 -1
- package/dist/tracking/constants.js +0 -52
- package/dist/tracking/constants.js.map +0 -1
- package/dist/tracking/context.d.ts.map +0 -1
- package/dist/tracking/context.js.map +0 -1
- package/dist/tracking/index.d.ts +0 -16
- package/dist/tracking/index.d.ts.map +0 -1
- package/dist/tracking/index.js +0 -11
- package/dist/tracking/index.js.map +0 -1
- package/dist/tracking/plugin-event-tracker.d.ts +0 -13
- package/dist/tracking/plugin-event-tracker.d.ts.map +0 -1
- package/dist/tracking/plugin-event-tracker.js +0 -27
- package/dist/tracking/plugin-event-tracker.js.map +0 -1
- package/dist/tracking/position-id-registry.d.ts.map +0 -1
- package/dist/tracking/position-id-registry.js.map +0 -1
- package/dist/tracking/spans/constants.d.ts.map +0 -1
- package/dist/tracking/spans/constants.js.map +0 -1
- package/dist/tracking/spans/gen-ai.d.ts.map +0 -1
- package/dist/tracking/spans/gen-ai.js.map +0 -1
- package/dist/tracking/spans/index.d.ts.map +0 -1
- package/dist/tracking/spans/index.js.map +0 -1
- package/dist/tracking/spans/redact-pii.d.ts.map +0 -1
- package/dist/tracking/spans/redact-pii.js.map +0 -1
- package/dist/tracking/spans/sanitize-payload.d.ts.map +0 -1
- package/dist/tracking/spans/sanitize-payload.js.map +0 -1
- package/dist/tracking/spans/span-hooks.d.ts.map +0 -1
- package/dist/tracking/spans/span-hooks.js.map +0 -1
- package/dist/tracking/tracker.d.ts +0 -30
- package/dist/tracking/tracker.d.ts.map +0 -1
- package/dist/tracking/tracker.js +0 -66
- package/dist/tracking/tracker.js.map +0 -1
- package/dist/tracking/tracking-handler.d.ts +0 -12
- package/dist/tracking/tracking-handler.d.ts.map +0 -1
- package/dist/tracking/tracking-handler.js +0 -148
- package/dist/tracking/tracking-handler.js.map +0 -1
- package/dist/tracking/transport.d.ts +0 -35
- package/dist/tracking/transport.d.ts.map +0 -1
- package/dist/tracking/transport.js +0 -133
- package/dist/tracking/transport.js.map +0 -1
- package/dist/tracking/types.d.ts +0 -21
- package/dist/tracking/types.d.ts.map +0 -1
- package/dist/tracking/types.js +0 -6
- package/dist/tracking/types.js.map +0 -1
- /package/dist/{tracking → telemetry}/spans/constants.d.ts +0 -0
- /package/dist/{tracking → telemetry}/spans/constants.js +0 -0
- /package/dist/{tracking → telemetry}/spans/gen-ai.d.ts +0 -0
- /package/dist/{tracking → telemetry}/spans/gen-ai.js +0 -0
- /package/dist/{tracking → telemetry}/spans/index.d.ts +0 -0
- /package/dist/{tracking → telemetry}/spans/index.js +0 -0
- /package/dist/{tracking → telemetry}/spans/redact-pii.d.ts +0 -0
- /package/dist/{tracking → telemetry}/spans/redact-pii.js +0 -0
- /package/dist/{tracking → telemetry}/spans/sanitize-payload.d.ts +0 -0
- /package/dist/{tracking → telemetry}/spans/sanitize-payload.js +0 -0
- /package/dist/{tracking → telemetry}/spans/span-hooks.d.ts +0 -0
|
@@ -1,15 +1,33 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
* domain events and runtime errors.
|
|
2
|
+
* Event contract types + pure builders: bus-event payloads → telemetry records.
|
|
4
3
|
*
|
|
5
4
|
* Each record is one atomic "work unit": plain, immutable, serializable data with no methods or
|
|
6
5
|
* builder dance; variants are modelled with a discriminator field plus optionals. The types are
|
|
7
6
|
* transport-agnostic — nothing here knows about spans, attributes, or any wire format.
|
|
8
7
|
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
8
|
+
* The builders read a loosely-typed payload defensively (the `asObject`/`str`/`num`/`bool`/
|
|
9
|
+
* `toEpochMs` helpers below) and return a fully-populated record (or `null` when the event cannot
|
|
10
|
+
* yield one). Redaction is NOT done here — records are populated faithfully; a downstream mapper is
|
|
11
|
+
* the single redaction seam.
|
|
12
|
+
*
|
|
13
|
+
* Identity (service, recipe, runtime, strategy address, boot id) is stamped by the identity layer
|
|
14
|
+
* and is never on a record — see {@link IdentityEnvelope}. Timestamps are epoch milliseconds; ISO
|
|
15
|
+
* strings (and, for a scan result, an epoch-ms number) from the bus are converted once here, so
|
|
16
|
+
* consumers never parse dates.
|
|
17
|
+
*/
|
|
18
|
+
/** A plain object, or `undefined` for anything else (null, array, primitive). */
|
|
19
|
+
export declare function asObject(value: unknown): Record<string, unknown> | undefined;
|
|
20
|
+
/** A non-empty string, or `undefined`. */
|
|
21
|
+
export declare function str(value: unknown): string | undefined;
|
|
22
|
+
/** A finite number, coercing numeric strings; `undefined` otherwise. */
|
|
23
|
+
export declare function num(value: unknown): number | undefined;
|
|
24
|
+
/** A boolean, or `undefined` (so absence stays distinct from `false`). */
|
|
25
|
+
export declare function bool(value: unknown): boolean | undefined;
|
|
26
|
+
/**
|
|
27
|
+
* ISO string or epoch-ms number → epoch ms. Falls back to `fallbackMs` when the value is missing
|
|
28
|
+
* or unparseable, so a record always carries a usable timestamp instead of `NaN`.
|
|
12
29
|
*/
|
|
30
|
+
export declare function toEpochMs(value: unknown, fallbackMs: number): number;
|
|
13
31
|
/**
|
|
14
32
|
* Trade direction as the bus reports it. The alias itself is non-null; sites that admit a
|
|
15
33
|
* non-directional signal widen it to `TradeDirection | null` (e.g. {@link SignalSummary}).
|
|
@@ -36,7 +54,7 @@ export type ScannerRunOutcome = "complete" | "skipped" | "error";
|
|
|
36
54
|
* One scanner execution attempt (the work unit). Folds the bus's `scanner:run:start` +
|
|
37
55
|
* terminal `scanner:run:{complete,skip,error}` events into a single atomic record so a
|
|
38
56
|
* duration is always derivable (`endedAt - startedAt`). Skip/error early-exit paths can
|
|
39
|
-
* terminate without a paired `scanner:run:start` event; in that case
|
|
57
|
+
* terminate without a paired `scanner:run:start` event; in that case `startedAt` is filled
|
|
40
58
|
* with the run's attempt timestamp (which equals `endedAt`), so duration is 0 rather than absent.
|
|
41
59
|
* The skipped/disabled distinction lives on `outcome`/`statusDetail`, not on a missing start.
|
|
42
60
|
*/
|
|
@@ -49,8 +67,8 @@ export interface ScannerRunRecord {
|
|
|
49
67
|
/** Raw engine status: `ok`|`heartbeat`|`skipped`|`halted`|`disabled`|`error`. */
|
|
50
68
|
readonly statusDetail?: string;
|
|
51
69
|
/**
|
|
52
|
-
* Run start, epoch ms (from `scanner:run:start`). Required: on a no-start early-exit path
|
|
53
|
-
*
|
|
70
|
+
* Run start, epoch ms (from `scanner:run:start`). Required: on a no-start early-exit path it is
|
|
71
|
+
* set to the attempt timestamp (= `endedAt`), so a `Duration` is always derivable.
|
|
54
72
|
*/
|
|
55
73
|
readonly startedAt: number;
|
|
56
74
|
/** Run completion, epoch ms (terminal event timestamp). */
|
|
@@ -68,7 +86,7 @@ export interface ScannerRunRecord {
|
|
|
68
86
|
/** Error class name (`Error.name`) when `outcome === "error"` — the error-grouping key. */
|
|
69
87
|
readonly errorName?: string;
|
|
70
88
|
}
|
|
71
|
-
/** How the decision was produced
|
|
89
|
+
/** How the decision was produced. */
|
|
72
90
|
export type DecisionMode = "llm" | "script" | "agent" | "rule" | "none";
|
|
73
91
|
/** Decision produced by the decision layer for an evaluation pass. */
|
|
74
92
|
export interface SignalDecision {
|
|
@@ -87,8 +105,6 @@ export interface SignalDecision {
|
|
|
87
105
|
readonly model?: string;
|
|
88
106
|
readonly tokensUsed?: number | null;
|
|
89
107
|
readonly durationMs?: number;
|
|
90
|
-
/** Epoch ms when the decision phase ended — the llm.decision child's end; its window is `[endedAt − durationMs, endedAt]`. */
|
|
91
|
-
readonly endedAt?: number;
|
|
92
108
|
}
|
|
93
109
|
/** Coarse result of acting on an evaluated signal. */
|
|
94
110
|
export type SignalOutcomeResult = "executed" | "rejected" | "skipped" | "below_confidence" | "error";
|
|
@@ -219,7 +235,7 @@ export interface PositionLifecycleRecord {
|
|
|
219
235
|
* Externally-detected vs runtime-opened discriminator (`"runtime_opened"` |
|
|
220
236
|
* `"externally_detected"`), from the PositionIdRegistry's intent-vs-fresh mint observation.
|
|
221
237
|
* Populated on `opened` only (the registry surfaces it solely on confirm-open); absent on every
|
|
222
|
-
* other lifecycle event.
|
|
238
|
+
* other lifecycle event.
|
|
223
239
|
*/
|
|
224
240
|
readonly reconciliationSource?: string;
|
|
225
241
|
}
|
|
@@ -414,14 +430,14 @@ export interface RuntimeStateRecord {
|
|
|
414
430
|
export type DecisionActionIntent = "open" | "close" | "none";
|
|
415
431
|
/**
|
|
416
432
|
* The judgment over one evaluation pass, as a discrete log event (`decision.made`). Derived from
|
|
417
|
-
* the same
|
|
418
|
-
*
|
|
433
|
+
* the same action-result payload that builds {@link SignalEvaluatedRecord}. The trace view keeps the
|
|
434
|
+
* decision on the `llm.decision` span; this is its logs-only twin so
|
|
419
435
|
* a logs-only consumer (the self-learning agent) can read "what the strategy decided and why"
|
|
420
436
|
* without walking spans.
|
|
421
437
|
*
|
|
422
438
|
* `reasoning` is the Body (uncapped free-text). Market-context fields (`fundingRegime`/
|
|
423
|
-
* `marketRegime`/`markPrice`) are reserved keys: they are NOT on the
|
|
424
|
-
* payload today, so
|
|
439
|
+
* `marketRegime`/`markPrice`) are reserved keys: they are NOT on the action-result
|
|
440
|
+
* payload today, so they are left undefined (absent = NULL).
|
|
425
441
|
*/
|
|
426
442
|
export interface DecisionMadeRecord {
|
|
427
443
|
readonly type: "decision_made";
|
|
@@ -444,8 +460,8 @@ export interface DecisionMadeRecord {
|
|
|
444
460
|
export type SignalOutcomeDisposition = "accepted" | "rejected" | "blocked" | "error";
|
|
445
461
|
/**
|
|
446
462
|
* One signal's disposition, as a discrete log event (`signal.outcome`). One per evaluation in the
|
|
447
|
-
* pass, derived from the same
|
|
448
|
-
*
|
|
463
|
+
* pass, derived from the same action-result payload that builds {@link SignalEvaluatedRecord}.
|
|
464
|
+
* The four-value `result` collapses the granular per-signal
|
|
449
465
|
* {@link SignalOutcomeResult}; the open `reasonCode` is kept verbatim for the fine-grained reason.
|
|
450
466
|
*
|
|
451
467
|
* `rawSignal` is the variable-shaped scanner evidence → the Body (redacted in the mapper). The
|
|
@@ -481,11 +497,11 @@ export interface SignalOutcomeRecord {
|
|
|
481
497
|
}
|
|
482
498
|
/**
|
|
483
499
|
* One DSL exit attempt as a discrete log event (`dsl.close_attempt`) — exit attempts / venue
|
|
484
|
-
* failures / retries, span-only today. Derived from the
|
|
500
|
+
* failures / retries, span-only today. Derived from the DSL close-attempt payload
|
|
485
501
|
* (already consumed to build the {@link DslTickRecord} trace) — a second consumer for the log.
|
|
486
502
|
*
|
|
487
503
|
* No `errorName`: only `String(e)` is available at the producer emit site, so the error class name
|
|
488
|
-
* is omitted
|
|
504
|
+
* is omitted.
|
|
489
505
|
*/
|
|
490
506
|
export interface DslCloseAttemptRecord {
|
|
491
507
|
readonly type: "dsl_close_attempt";
|
|
@@ -501,8 +517,8 @@ export interface DslCloseAttemptRecord {
|
|
|
501
517
|
}
|
|
502
518
|
/**
|
|
503
519
|
* One scan's funnel summary as a discrete log event (`scanner.summary`) — the anti-spam roll-up of
|
|
504
|
-
* what a scan considered and dropped. Derived from the SAME
|
|
505
|
-
* builds {@link ScannerRunRecord} (its `summary.funnel`)
|
|
520
|
+
* what a scan considered and dropped. Derived from the SAME scanner-run payload that
|
|
521
|
+
* builds {@link ScannerRunRecord} (its `summary.funnel`). One row per scan: the
|
|
506
522
|
* dropped candidates are ONE Body array, never one row per drop.
|
|
507
523
|
*
|
|
508
524
|
* `passedAssets` is a small linkage list (the survivors, each detailed by its own `signal.outcome`);
|
|
@@ -530,15 +546,14 @@ export type OrderEventKind = "placed" | "filled" | "failed";
|
|
|
530
546
|
* One order-execution event as a discrete log event (`order.{placed,filled,failed}`) — the venue
|
|
531
547
|
* execution granularity (placement vs fill, maker/taker, venue rejects) that the position-level
|
|
532
548
|
* `position_lifecycle` event can't carry. Emitted additively by the open/close actions at the
|
|
533
|
-
* submit/success/failure points
|
|
549
|
+
* submit/success/failure points. `event` discriminates which
|
|
534
550
|
* optional fields apply.
|
|
535
551
|
*
|
|
536
552
|
* Overlap with `position_lifecycle.opened`/`.closed` is intentional: the lifecycle event is the
|
|
537
553
|
* settled position-level fact; `order.*` is the execution-level fact. Both are emitted; no dedupe.
|
|
538
554
|
*
|
|
539
|
-
* `limitPrice`/`fees`/`partial` are reserved-but-unpopulated
|
|
540
|
-
*
|
|
541
|
-
* raw response → the Body.
|
|
555
|
+
* `limitPrice`/`fees`/`partial` are reserved-but-unpopulated — they are not in scope at the action's
|
|
556
|
+
* submission point. `error` on `failed` is the optional venue raw response → the Body.
|
|
542
557
|
*/
|
|
543
558
|
export interface OrderEventRecord {
|
|
544
559
|
readonly type: "order_event";
|
|
@@ -551,15 +566,15 @@ export interface OrderEventRecord {
|
|
|
551
566
|
readonly direction?: TradeDirection | null;
|
|
552
567
|
readonly orderType?: string;
|
|
553
568
|
readonly size?: number;
|
|
554
|
-
/** Reserved — unpopulated
|
|
569
|
+
/** Reserved — unpopulated (not in scope at the submission point). */
|
|
555
570
|
readonly limitPrice?: number;
|
|
556
571
|
readonly reduceOnly?: boolean;
|
|
557
572
|
readonly fillPrice?: number;
|
|
558
573
|
readonly fillSize?: number;
|
|
559
574
|
readonly executionAsMaker?: boolean | null;
|
|
560
|
-
/** Reserved — unpopulated
|
|
575
|
+
/** Reserved — unpopulated (not in scope). */
|
|
561
576
|
readonly fees?: number;
|
|
562
|
-
/** Reserved — unpopulated
|
|
577
|
+
/** Reserved — unpopulated (not in scope). */
|
|
563
578
|
readonly partial?: boolean;
|
|
564
579
|
readonly reason?: string;
|
|
565
580
|
readonly errorName?: string;
|
|
@@ -568,4 +583,97 @@ export interface OrderEventRecord {
|
|
|
568
583
|
}
|
|
569
584
|
/** Discriminated union of every record type. */
|
|
570
585
|
export type RecordingRecord = ScannerRunRecord | SignalEvaluatedRecord | PositionLifecycleRecord | DslTransitionRecord | DslTickRecord | RuntimeErrorRecord | RuntimeLifecycleRecord | RuntimeStateRecord | DecisionMadeRecord | SignalOutcomeRecord | ScannerSummaryRecord | DslCloseAttemptRecord | OrderEventRecord;
|
|
571
|
-
|
|
586
|
+
/** From a scanner-run payload (complete / skipped / error): complete runs carry the whole
|
|
587
|
+
* `ScanResult`; skip/error carry status + reason. */
|
|
588
|
+
export declare function buildScannerRun(payload: unknown, nowMs: number): ScannerRunRecord | null;
|
|
589
|
+
/**
|
|
590
|
+
* The `scanner.summary` anti-spam log record, derived from the SAME scanner-run payload
|
|
591
|
+
* that {@link buildScannerRun} reads (its `data.summary.funnel.dropped`).
|
|
592
|
+
*
|
|
593
|
+
* Returns `null` when there is no `data.summary.funnel`: skip/error runs and scanners without a
|
|
594
|
+
* funnel produce no summary event (the survivors are detailed by their own `signal.outcome` events,
|
|
595
|
+
* and "didn't run at all" is `scanner_run.skipped`). One record per scan; the dropped candidates are
|
|
596
|
+
* one Body array, never one row per drop.
|
|
597
|
+
*/
|
|
598
|
+
export declare function buildScannerSummary(payload: unknown, nowMs: number): ScannerSummaryRecord | null;
|
|
599
|
+
/**
|
|
600
|
+
* Read-only position.id lookup, (address, dex, asset) → the live id or undefined. Injected by
|
|
601
|
+
* the runtime as a narrow accessor over the PositionIdRegistry — the registry is the single
|
|
602
|
+
* source of truth; builders never receive the registry (or RuntimeContext) itself.
|
|
603
|
+
*/
|
|
604
|
+
export type PositionIdResolver = (address: string, dex: string, asset: string) => string | undefined;
|
|
605
|
+
/**
|
|
606
|
+
* Build the whole pass record from an action-result payload alone — the producers echo the scan
|
|
607
|
+
* provenance onto the payload (`scannerId`, `scannerSignals`, `minConfidence`, `runId`), and the
|
|
608
|
+
* decision itself rides `result.data._decisionMeta`, so no pairing is needed.
|
|
609
|
+
*
|
|
610
|
+
* `evaluations` is one entry per per-signal result, each enriched with the matching input signal
|
|
611
|
+
* (or a summary synthesized from the result entry when none matches — e.g. close-position's
|
|
612
|
+
* static-params path, which carries no `scannerSignals`). A pass without `_decisionMeta` yields no
|
|
613
|
+
* `decision` (the contract allows a decision-less pass).
|
|
614
|
+
*
|
|
615
|
+
* The pass window is a point anchored at the action-result timestamp (`startedAt === endedAt`); the
|
|
616
|
+
* decision's own `durationMs` (from `_decisionMeta`) carries the timing.
|
|
617
|
+
*/
|
|
618
|
+
export declare function buildSignalEvaluated(actionResultPayload: unknown, nowMs: number, resolvePositionId?: PositionIdResolver): SignalEvaluatedRecord | null;
|
|
619
|
+
/**
|
|
620
|
+
* The pass's `decision.made` log record, derived from the built pass record — `null` when the pass
|
|
621
|
+
* carried no decision (a decision-less pass yields no judgment event). One per pass.
|
|
622
|
+
*/
|
|
623
|
+
export declare function buildDecisionMade(record: SignalEvaluatedRecord): DecisionMadeRecord | null;
|
|
624
|
+
/**
|
|
625
|
+
* One `signal.outcome` log record per evaluation in the pass, derived from the built pass record.
|
|
626
|
+
* `rawSignal` is the evaluation's {@link SignalSummary} (incl. its `meta`/`factors`) — the variable
|
|
627
|
+
* scanner evidence; redaction over it happens in the mapper, not here.
|
|
628
|
+
*/
|
|
629
|
+
export declare function buildSignalOutcomes(record: SignalEvaluatedRecord): SignalOutcomeRecord[];
|
|
630
|
+
/**
|
|
631
|
+
* From the DSL close-attempt monitor payload — the second consumer (alongside the
|
|
632
|
+
* tick trace). Fields at the payload root: `positionId`, `asset`, `dex`, `closeReason`, `attempt`,
|
|
633
|
+
* `outcome` ("ok"|"error"), `error`, ISO `timestamp`. `null` when the payload is not an object.
|
|
634
|
+
*/
|
|
635
|
+
export declare function buildDslCloseAttempt(payload: unknown, nowMs: number): DslCloseAttemptRecord | null;
|
|
636
|
+
/**
|
|
637
|
+
* From the additive order events the open/close actions fire (the HookEvent shape:
|
|
638
|
+
* fields under a `data` envelope). One record per event; `eventKind` discriminates which fields the
|
|
639
|
+
* payload carries (placed: order/size; filled: fill; failed: reason/error). `positionId` maps from
|
|
640
|
+
* `__positionId`. `null` when no `asset` is resolvable — the asset is the one always-present scalar.
|
|
641
|
+
*
|
|
642
|
+
* Faithful population only (no redaction here — the mapper is the single redaction seam).
|
|
643
|
+
*/
|
|
644
|
+
export declare function buildOrderEvent(eventKind: OrderEventKind, payload: unknown, nowMs: number): OrderEventRecord | null;
|
|
645
|
+
/**
|
|
646
|
+
* From an `on_position_*` event. Action-driven events arrive as HookEvents (fields under a `data`
|
|
647
|
+
* envelope); the DSL monitor / reconcile paths emit `on_position_closed` flat (fields at the root,
|
|
648
|
+
* always with an `asset`), so a flat payload carrying an `asset` is read as-is. The DSL archive
|
|
649
|
+
* handler's re-broadcast of a close is marked `source: "dsl_archive"` and skipped — the close it
|
|
650
|
+
* mirrors was already recorded from the original emit. (`on_open_order_submitted` is deliberately
|
|
651
|
+
* not recorded — its submit fact is already on the signal-evaluation view, avoiding a double count.)
|
|
652
|
+
*/
|
|
653
|
+
export declare function buildPositionLifecycle(event: PositionLifecycleEvent, payload: unknown, nowMs: number): PositionLifecycleRecord | null;
|
|
654
|
+
/** From a `dsl.*` event (fields live at the payload root, with an ISO `timestamp`). */
|
|
655
|
+
export declare function buildDslTransition(transition: DslTransitionKind, payload: unknown, nowMs: number): DslTransitionRecord | null;
|
|
656
|
+
/**
|
|
657
|
+
* From the monitor's DSL tick / position / close-attempt / sl-update payloads (fields at the
|
|
658
|
+
* payload root). Each payload yields one record —
|
|
659
|
+
* the deterministic ids derived from `tickId` (and `tickId:positionKey`, both bootId-scoped by
|
|
660
|
+
* the mapper) thread them into one trace, so no pairing is needed here. Essentials are `tickId`
|
|
661
|
+
* plus a numeric work window; on clock skew (`endedAt < startedAt`) the start is pulled up to the
|
|
662
|
+
* end, matching the pass-window convention. The price-fetch window is kept only when both stamps
|
|
663
|
+
* are present (a half window is fabricated extent). No `nowMs` fallback: work windows are
|
|
664
|
+
* producer-stamped; nothing here is fabricated.
|
|
665
|
+
*/
|
|
666
|
+
export declare function buildDslTick(unit: DslTickUnit, payload: unknown): DslTickRecord | null;
|
|
667
|
+
/** From `signal_processing_error` — a bucket-2 error with no specific domain record home. */
|
|
668
|
+
export declare function buildRuntimeError(payload: unknown, nowMs: number): RuntimeErrorRecord | null;
|
|
669
|
+
/**
|
|
670
|
+
* From the runtime-started payload. The `config` blob is the injected **unresolved** config (not the
|
|
671
|
+
* resolved `data.config`): resolving inlines secrets, and the unresolved form is what the
|
|
672
|
+
* `configHash` is computed over, so blob and hash agree.
|
|
673
|
+
*/
|
|
674
|
+
export declare function buildRuntimeStarted(payload: unknown, unresolvedConfig: Record<string, unknown> | undefined, nowMs: number): RuntimeLifecycleRecord | null;
|
|
675
|
+
/** From the runtime-stopped payload. */
|
|
676
|
+
export declare function buildRuntimeStopped(payload: unknown, nowMs: number): RuntimeLifecycleRecord | null;
|
|
677
|
+
/** From the self-pause HookEvents (`on_strategy_self_paused`/`on_daily_limit_hit`/`on_drawdown_cap_hit`). */
|
|
678
|
+
export declare function buildRuntimePaused(payload: unknown, fallbackGateId: string, nowMs: number): RuntimeStateRecord | null;
|
|
679
|
+
//# sourceMappingURL=event-builders.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"event-builders.d.ts","sourceRoot":"","sources":["../../src/telemetry/event-builders.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,13 +1,70 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
* loosely-typed payload defensively and returns a fully-populated record (or `null` when the event
|
|
4
|
-
* cannot yield one). Redaction is NOT done here — records are populated faithfully; the mapper is the
|
|
5
|
-
* single redaction seam.
|
|
2
|
+
* Event contract types + pure builders: bus-event payloads → telemetry records.
|
|
6
3
|
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
4
|
+
* Each record is one atomic "work unit": plain, immutable, serializable data with no methods or
|
|
5
|
+
* builder dance; variants are modelled with a discriminator field plus optionals. The types are
|
|
6
|
+
* transport-agnostic — nothing here knows about spans, attributes, or any wire format.
|
|
7
|
+
*
|
|
8
|
+
* The builders read a loosely-typed payload defensively (the `asObject`/`str`/`num`/`bool`/
|
|
9
|
+
* `toEpochMs` helpers below) and return a fully-populated record (or `null` when the event cannot
|
|
10
|
+
* yield one). Redaction is NOT done here — records are populated faithfully; a downstream mapper is
|
|
11
|
+
* the single redaction seam.
|
|
12
|
+
*
|
|
13
|
+
* Identity (service, recipe, runtime, strategy address, boot id) is stamped by the identity layer
|
|
14
|
+
* and is never on a record — see {@link IdentityEnvelope}. Timestamps are epoch milliseconds; ISO
|
|
15
|
+
* strings (and, for a scan result, an epoch-ms number) from the bus are converted once here, so
|
|
16
|
+
* consumers never parse dates.
|
|
9
17
|
*/
|
|
10
|
-
|
|
18
|
+
// ─── Defensive payload readers ─────────────────────────────────────────────────
|
|
19
|
+
//
|
|
20
|
+
// The builders read loosely-typed event data and must never throw while doing so, so every accessor
|
|
21
|
+
// coerces or returns `undefined` rather than trusting a shape.
|
|
22
|
+
/** A plain object, or `undefined` for anything else (null, array, primitive). */
|
|
23
|
+
export function asObject(value) {
|
|
24
|
+
if (value !== null && typeof value === "object" && !Array.isArray(value)) {
|
|
25
|
+
return value;
|
|
26
|
+
}
|
|
27
|
+
return undefined;
|
|
28
|
+
}
|
|
29
|
+
/** A non-empty string, or `undefined`. */
|
|
30
|
+
export function str(value) {
|
|
31
|
+
return typeof value === "string" && value.length > 0 ? value : undefined;
|
|
32
|
+
}
|
|
33
|
+
/** A finite number, coercing numeric strings; `undefined` otherwise. */
|
|
34
|
+
export function num(value) {
|
|
35
|
+
if (typeof value === "number")
|
|
36
|
+
return Number.isFinite(value) ? value : undefined;
|
|
37
|
+
if (typeof value === "string" && value.trim() !== "") {
|
|
38
|
+
const n = Number(value);
|
|
39
|
+
return Number.isFinite(n) ? n : undefined;
|
|
40
|
+
}
|
|
41
|
+
return undefined;
|
|
42
|
+
}
|
|
43
|
+
/** A boolean, or `undefined` (so absence stays distinct from `false`). */
|
|
44
|
+
export function bool(value) {
|
|
45
|
+
return typeof value === "boolean" ? value : undefined;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* ISO string or epoch-ms number → epoch ms. Falls back to `fallbackMs` when the value is missing
|
|
49
|
+
* or unparseable, so a record always carries a usable timestamp instead of `NaN`.
|
|
50
|
+
*/
|
|
51
|
+
export function toEpochMs(value, fallbackMs) {
|
|
52
|
+
if (typeof value === "number")
|
|
53
|
+
return Number.isFinite(value) ? value : fallbackMs;
|
|
54
|
+
if (typeof value === "string") {
|
|
55
|
+
// A purely-numeric string is epoch ms, not a date to parse (Date.parse would mangle it).
|
|
56
|
+
if (/^-?\d+$/.test(value.trim())) {
|
|
57
|
+
const n = Number(value);
|
|
58
|
+
return Number.isFinite(n) ? n : fallbackMs;
|
|
59
|
+
}
|
|
60
|
+
const ms = Date.parse(value);
|
|
61
|
+
return Number.isNaN(ms) ? fallbackMs : ms;
|
|
62
|
+
}
|
|
63
|
+
return fallbackMs;
|
|
64
|
+
}
|
|
65
|
+
// ════════════════════════════════════════════════════════════════════════════════
|
|
66
|
+
// Pure builders: bus-event payloads → records
|
|
67
|
+
// ════════════════════════════════════════════════════════════════════════════════
|
|
11
68
|
/** `"LONG"`/`"SHORT"` → {@link TradeDirection}, else `null` (non-directional). */
|
|
12
69
|
function direction(value) {
|
|
13
70
|
return value === "LONG" || value === "SHORT" ? value : null;
|
|
@@ -52,8 +109,8 @@ function buildSignalSummary(raw, fallbackTs) {
|
|
|
52
109
|
meta: asObject(s.meta),
|
|
53
110
|
};
|
|
54
111
|
}
|
|
55
|
-
/** From a
|
|
56
|
-
*
|
|
112
|
+
/** From a scanner-run payload (complete / skipped / error): complete runs carry the whole
|
|
113
|
+
* `ScanResult`; skip/error carry status + reason. */
|
|
57
114
|
export function buildScannerRun(payload, nowMs) {
|
|
58
115
|
const p = asObject(payload);
|
|
59
116
|
const data = asObject(p?.data);
|
|
@@ -85,10 +142,10 @@ export function buildScannerRun(payload, nowMs) {
|
|
|
85
142
|
error: outcome === "error" ? str(data.reason) : undefined,
|
|
86
143
|
};
|
|
87
144
|
}
|
|
88
|
-
// ─── Scanner funnel summary (
|
|
145
|
+
// ─── Scanner funnel summary (derived from the scanner-run payload) ────────
|
|
89
146
|
/**
|
|
90
|
-
* The `scanner.summary` anti-spam log record, derived from the SAME
|
|
91
|
-
* that {@link buildScannerRun} reads (its `data.summary.funnel.dropped`)
|
|
147
|
+
* The `scanner.summary` anti-spam log record, derived from the SAME scanner-run payload
|
|
148
|
+
* that {@link buildScannerRun} reads (its `data.summary.funnel.dropped`).
|
|
92
149
|
*
|
|
93
150
|
* Returns `null` when there is no `data.summary.funnel`: skip/error runs and scanners without a
|
|
94
151
|
* funnel produce no summary event (the survivors are detailed by their own `signal.outcome` events,
|
|
@@ -141,7 +198,7 @@ export function buildScannerSummary(payload, nowMs) {
|
|
|
141
198
|
droppedCandidates: droppedCount > 0 ? droppedCandidates : undefined,
|
|
142
199
|
};
|
|
143
200
|
}
|
|
144
|
-
// ─── Signal evaluation (single-sourced from
|
|
201
|
+
// ─── Signal evaluation (single-sourced from the action-result payload) ────────────
|
|
145
202
|
/** Reason codes where the system evaluated a trade and actively blocked it (see {@link classifyOutcome}). */
|
|
146
203
|
const REJECTED_REASONS = new Set(["insufficient_margin", "invalid_direction", "no_margin_configured", "below_min_notional"]);
|
|
147
204
|
/** Reason codes where no trade was applicable / attempted. */
|
|
@@ -197,7 +254,7 @@ function buildOutcome(raw, positionId) {
|
|
|
197
254
|
availableMarginAmount: num(r.availableMarginAmount),
|
|
198
255
|
};
|
|
199
256
|
}
|
|
200
|
-
/** The `data` envelope, embedded `result`, and per-signal `results[]` entries from
|
|
257
|
+
/** The `data` envelope, embedded `result`, and per-signal `results[]` entries from an action-result payload. */
|
|
201
258
|
function actionResults(actionResultPayload) {
|
|
202
259
|
const p = asObject(actionResultPayload);
|
|
203
260
|
const data = asObject(p?.data);
|
|
@@ -206,7 +263,7 @@ function actionResults(actionResultPayload) {
|
|
|
206
263
|
return { data, result, resultData, results: Array.isArray(resultData?.results) ? resultData.results : [] };
|
|
207
264
|
}
|
|
208
265
|
/**
|
|
209
|
-
* The
|
|
266
|
+
* The stamping rule: every per-signal outcome that pertains to a real position — open,
|
|
210
267
|
* just-submitted, or evaluated on a held asset (even when rejected/skipped) — carries that
|
|
211
268
|
* position's id; only a signal on an asset with no live position resolves to nothing. The
|
|
212
269
|
* lookup is deliberately unconditional on the outcome classification. The result entry's own
|
|
@@ -250,20 +307,17 @@ function buildEvaluations(results, findSignal, fallbackTs, resolvePositionId, ad
|
|
|
250
307
|
});
|
|
251
308
|
}
|
|
252
309
|
/**
|
|
253
|
-
* Build the whole pass record from
|
|
254
|
-
*
|
|
255
|
-
*
|
|
256
|
-
* `result.data._decisionMeta`, so no pairing with `tracking.decision` is needed.
|
|
310
|
+
* Build the whole pass record from an action-result payload alone — the producers echo the scan
|
|
311
|
+
* provenance onto the payload (`scannerId`, `scannerSignals`, `minConfidence`, `runId`), and the
|
|
312
|
+
* decision itself rides `result.data._decisionMeta`, so no pairing is needed.
|
|
257
313
|
*
|
|
258
314
|
* `evaluations` is one entry per per-signal result, each enriched with the matching input signal
|
|
259
315
|
* (or a summary synthesized from the result entry when none matches — e.g. close-position's
|
|
260
316
|
* static-params path, which carries no `scannerSignals`). A pass without `_decisionMeta` yields no
|
|
261
317
|
* `decision` (the contract allows a decision-less pass).
|
|
262
318
|
*
|
|
263
|
-
* The pass
|
|
264
|
-
*
|
|
265
|
-
* (`endedAt < startedAt`) the start is pulled up to `endedAt`, yielding a zero (never negative)
|
|
266
|
-
* duration.
|
|
319
|
+
* The pass window is a point anchored at the action-result timestamp (`startedAt === endedAt`); the
|
|
320
|
+
* decision's own `durationMs` (from `_decisionMeta`) carries the timing.
|
|
267
321
|
*/
|
|
268
322
|
export function buildSignalEvaluated(actionResultPayload, nowMs, resolvePositionId) {
|
|
269
323
|
const { data, result, resultData, results } = actionResults(actionResultPayload);
|
|
@@ -271,9 +325,7 @@ export function buildSignalEvaluated(actionResultPayload, nowMs, resolvePosition
|
|
|
271
325
|
return null;
|
|
272
326
|
const p = asObject(actionResultPayload);
|
|
273
327
|
const endedAt = toEpochMs(p?.timestamp, nowMs);
|
|
274
|
-
|
|
275
|
-
if (endedAt < startedAt)
|
|
276
|
-
startedAt = endedAt;
|
|
328
|
+
const startedAt = endedAt;
|
|
277
329
|
const signals = Array.isArray(data.scannerSignals)
|
|
278
330
|
? data.scannerSignals.map((s) => buildSignalSummary(s, startedAt))
|
|
279
331
|
: [];
|
|
@@ -297,7 +349,6 @@ export function buildSignalEvaluated(actionResultPayload, nowMs, resolvePosition
|
|
|
297
349
|
model: str(meta.model),
|
|
298
350
|
tokensUsed: numOrNull(meta.tokensUsed),
|
|
299
351
|
durationMs: num(meta.durationMs),
|
|
300
|
-
endedAt: num(data.decisionEndedAt),
|
|
301
352
|
}
|
|
302
353
|
: undefined;
|
|
303
354
|
return {
|
|
@@ -310,7 +361,7 @@ export function buildSignalEvaluated(actionResultPayload, nowMs, resolvePosition
|
|
|
310
361
|
evaluations,
|
|
311
362
|
};
|
|
312
363
|
}
|
|
313
|
-
// ─── Self-learning event log: decision.made + signal.outcome
|
|
364
|
+
// ─── Self-learning event log: decision.made + signal.outcome ─────────────
|
|
314
365
|
//
|
|
315
366
|
// Both are DERIVED from the SAME built SignalEvaluatedRecord (single-source, DRY) — no re-parse of
|
|
316
367
|
// the payload, no new bus event. The mapper does the redaction; these builders populate faithfully.
|
|
@@ -356,7 +407,7 @@ export function buildDecisionMade(record) {
|
|
|
356
407
|
confidenceThreshold: d.confidenceThreshold,
|
|
357
408
|
durationMs: d.durationMs,
|
|
358
409
|
actionIntent: actionIntent(d.actionType),
|
|
359
|
-
// Market context is NOT on the payload today → left undefined
|
|
410
|
+
// Market context is NOT on the payload today → left undefined.
|
|
360
411
|
reasoning: d.reasoning,
|
|
361
412
|
};
|
|
362
413
|
}
|
|
@@ -393,13 +444,13 @@ export function buildSignalOutcomes(record) {
|
|
|
393
444
|
};
|
|
394
445
|
});
|
|
395
446
|
}
|
|
396
|
-
// ─── Self-learning event log: dsl.close_attempt
|
|
447
|
+
// ─── Self-learning event log: dsl.close_attempt ──────────────────────────
|
|
397
448
|
/** Coerces the producer's outcome string to the close-attempt result enum; default `error`. */
|
|
398
449
|
function closeAttemptResult(value) {
|
|
399
450
|
return value === "ok" ? "ok" : "error";
|
|
400
451
|
}
|
|
401
452
|
/**
|
|
402
|
-
* From the
|
|
453
|
+
* From the DSL close-attempt monitor payload — the second consumer (alongside the
|
|
403
454
|
* tick trace). Fields at the payload root: `positionId`, `asset`, `dex`, `closeReason`, `attempt`,
|
|
404
455
|
* `outcome` ("ok"|"error"), `error`, ISO `timestamp`. `null` when the payload is not an object.
|
|
405
456
|
*/
|
|
@@ -419,9 +470,9 @@ export function buildDslCloseAttempt(payload, nowMs) {
|
|
|
419
470
|
error: str(p.error),
|
|
420
471
|
};
|
|
421
472
|
}
|
|
422
|
-
// ─── Self-learning event log: order.{placed,filled,failed}
|
|
473
|
+
// ─── Self-learning event log: order.{placed,filled,failed} ────────────────
|
|
423
474
|
/**
|
|
424
|
-
* From the additive
|
|
475
|
+
* From the additive order events the open/close actions fire (the HookEvent shape:
|
|
425
476
|
* fields under a `data` envelope). One record per event; `eventKind` discriminates which fields the
|
|
426
477
|
* payload carries (placed: order/size; filled: fill; failed: reason/error). `positionId` maps from
|
|
427
478
|
* `__positionId`. `null` when no `asset` is resolvable — the asset is the one always-present scalar.
|
|
@@ -573,8 +624,8 @@ function dslTickOutcome(value) {
|
|
|
573
624
|
return value === "ok" || value === "error" ? value : undefined;
|
|
574
625
|
}
|
|
575
626
|
/**
|
|
576
|
-
* From the monitor's
|
|
577
|
-
*
|
|
627
|
+
* From the monitor's DSL tick / position / close-attempt / sl-update payloads (fields at the
|
|
628
|
+
* payload root). Each payload yields one record —
|
|
578
629
|
* the deterministic ids derived from `tickId` (and `tickId:positionKey`, both bootId-scoped by
|
|
579
630
|
* the mapper) thread them into one trace, so no pairing is needed here. Essentials are `tickId`
|
|
580
631
|
* plus a numeric work window; on clock skew (`endedAt < startedAt`) the start is pulled up to the
|
|
@@ -654,8 +705,8 @@ export function buildRuntimeError(payload, nowMs) {
|
|
|
654
705
|
}
|
|
655
706
|
// ─── Runtime lifecycle ───────────────────────────────────────────────────────
|
|
656
707
|
/**
|
|
657
|
-
* From
|
|
658
|
-
* resolved `data.config`
|
|
708
|
+
* From the runtime-started payload. The `config` blob is the injected **unresolved** config (not the
|
|
709
|
+
* resolved `data.config`): resolving inlines secrets, and the unresolved form is what the
|
|
659
710
|
* `configHash` is computed over, so blob and hash agree.
|
|
660
711
|
*/
|
|
661
712
|
export function buildRuntimeStarted(payload, unresolvedConfig, nowMs) {
|
|
@@ -674,7 +725,7 @@ export function buildRuntimeStarted(payload, unresolvedConfig, nowMs) {
|
|
|
674
725
|
config: unresolvedConfig,
|
|
675
726
|
};
|
|
676
727
|
}
|
|
677
|
-
/** From
|
|
728
|
+
/** From the runtime-stopped payload. */
|
|
678
729
|
export function buildRuntimeStopped(payload, nowMs) {
|
|
679
730
|
const p = asObject(payload);
|
|
680
731
|
const data = asObject(p?.data);
|
|
@@ -706,4 +757,4 @@ export function buildRuntimePaused(payload, fallbackGateId, nowMs) {
|
|
|
706
757
|
metrics: asObject(data.metrics) ?? null,
|
|
707
758
|
};
|
|
708
759
|
}
|
|
709
|
-
//# sourceMappingURL=
|
|
760
|
+
//# sourceMappingURL=event-builders.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"event-builders.js","sourceRoot":"","sources":["../../src/telemetry/event-builders.ts"],"names":[],"mappings":"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"}
|