@senpi/runtime 3.0.6-dev.runtime-phase-2.20260630134451 → 3.0.6-dev.runtime-phase-2.20260630134511
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/action-events.d.ts.map +1 -1
- package/dist/actions/action-events.js +39 -5
- package/dist/actions/action-events.js.map +1 -1
- package/dist/actions/event-derivation.d.ts +2 -0
- package/dist/actions/event-derivation.d.ts.map +1 -1
- package/dist/actions/event-derivation.js +2 -0
- package/dist/actions/event-derivation.js.map +1 -1
- package/dist/dsl/events/initial-state.d.ts.map +1 -1
- package/dist/dsl/events/initial-state.js +1 -0
- package/dist/dsl/events/initial-state.js.map +1 -1
- package/dist/dsl/monitor/dsl-failure-events.d.ts +42 -0
- package/dist/dsl/monitor/dsl-failure-events.d.ts.map +1 -0
- package/dist/dsl/monitor/dsl-failure-events.js +73 -0
- package/dist/dsl/monitor/dsl-failure-events.js.map +1 -0
- package/dist/dsl/monitor/process-one-position.d.ts.map +1 -1
- package/dist/dsl/monitor/process-one-position.js +46 -37
- package/dist/dsl/monitor/process-one-position.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +37 -5
- package/dist/index.js.map +1 -1
- package/dist/runtime/lifecycle-events.d.ts +43 -0
- package/dist/runtime/lifecycle-events.d.ts.map +1 -1
- package/dist/runtime/lifecycle-events.js +61 -0
- package/dist/runtime/lifecycle-events.js.map +1 -1
- package/dist/runtime/runtime-schema.d.ts +63 -9
- package/dist/runtime/runtime-schema.d.ts.map +1 -1
- package/dist/runtime/runtime-schema.js +8 -1
- package/dist/runtime/runtime-schema.js.map +1 -1
- package/dist/runtime/runtime.d.ts +6 -0
- package/dist/runtime/runtime.d.ts.map +1 -1
- package/dist/runtime/runtime.js +87 -2
- package/dist/runtime/runtime.js.map +1 -1
- package/dist/runtime/supervisor/long-running-supervisor.d.ts +3 -0
- package/dist/runtime/supervisor/long-running-supervisor.d.ts.map +1 -1
- package/dist/runtime/supervisor/long-running-supervisor.js +27 -53
- package/dist/runtime/supervisor/long-running-supervisor.js.map +1 -1
- package/dist/runtime-api/intake/intake-events.d.ts +44 -0
- package/dist/runtime-api/intake/intake-events.d.ts.map +1 -0
- package/dist/runtime-api/intake/intake-events.js +131 -0
- package/dist/runtime-api/intake/intake-events.js.map +1 -0
- package/dist/runtime-api/intake/scanner-launcher.d.ts +2 -0
- package/dist/runtime-api/intake/scanner-launcher.d.ts.map +1 -1
- package/dist/runtime-api/intake/scanner-launcher.js +58 -15
- package/dist/runtime-api/intake/scanner-launcher.js.map +1 -1
- package/dist/runtime-api/intake/supervisor-events.d.ts +61 -0
- package/dist/runtime-api/intake/supervisor-events.d.ts.map +1 -0
- package/dist/runtime-api/intake/supervisor-events.js +173 -0
- package/dist/runtime-api/intake/supervisor-events.js.map +1 -0
- package/dist/runtime-api/routes/signals.d.ts.map +1 -1
- package/dist/runtime-api/routes/signals.js +119 -27
- package/dist/runtime-api/routes/signals.js.map +1 -1
- package/dist/runtime-api/server.d.ts.map +1 -1
- package/dist/runtime-api/server.js +10 -1
- package/dist/runtime-api/server.js.map +1 -1
- package/dist/scanners/engine/engine.d.ts.map +1 -1
- package/dist/scanners/engine/engine.js +3 -0
- package/dist/scanners/engine/engine.js.map +1 -1
- package/dist/senpi/client.d.ts.map +1 -1
- package/dist/senpi/client.js +50 -5
- package/dist/senpi/client.js.map +1 -1
- package/dist/state/state-events.d.ts +13 -0
- package/dist/state/state-events.d.ts.map +1 -0
- package/dist/state/state-events.js +22 -0
- package/dist/state/state-events.js.map +1 -0
- package/dist/state/state-manager.d.ts.map +1 -1
- package/dist/state/state-manager.js +14 -1
- package/dist/state/state-manager.js.map +1 -1
- package/dist/telemetry/event-builders.d.ts +0 -2
- package/dist/telemetry/event-builders.d.ts.map +1 -1
- package/dist/telemetry/event-builders.js.map +1 -1
- package/dist/telemetry/identity.d.ts +10 -0
- package/dist/telemetry/identity.d.ts.map +1 -1
- package/dist/telemetry/identity.js +1 -0
- package/dist/telemetry/identity.js.map +1 -1
- package/dist/telemetry/metrics.d.ts +137 -15
- package/dist/telemetry/metrics.d.ts.map +1 -1
- package/dist/telemetry/metrics.js +357 -74
- package/dist/telemetry/metrics.js.map +1 -1
- package/dist/telemetry/otel-sdk.d.ts +1 -1
- package/dist/telemetry/otel-sdk.js +1 -1
- package/dist/telemetry/spans/gen-ai.d.ts +4 -0
- package/dist/telemetry/spans/gen-ai.d.ts.map +1 -1
- package/dist/telemetry/spans/gen-ai.js +9 -0
- package/dist/telemetry/spans/gen-ai.js.map +1 -1
- package/dist/telemetry/spans/redact-pii.d.ts.map +1 -1
- package/dist/telemetry/spans/redact-pii.js +4 -1
- package/dist/telemetry/spans/redact-pii.js.map +1 -1
- package/dist/telemetry/spans/span-hooks.d.ts +7 -0
- package/dist/telemetry/spans/span-hooks.d.ts.map +1 -1
- package/dist/telemetry/spans/span-hooks.js +179 -24
- package/dist/telemetry/spans/span-hooks.js.map +1 -1
- package/dist/telemetry/tool-plane.d.ts +31 -0
- package/dist/telemetry/tool-plane.d.ts.map +1 -0
- package/dist/telemetry/tool-plane.js +70 -0
- package/dist/telemetry/tool-plane.js.map +1 -0
- package/dist/telemetry/trace-identity.d.ts.map +1 -1
- package/dist/telemetry/trace-identity.js +3 -0
- package/dist/telemetry/trace-identity.js.map +1 -1
- package/dist/types/dsl/index.d.ts +6 -0
- package/dist/types/dsl/index.d.ts.map +1 -1
- package/dist/utils/event-catalog.d.ts +237 -0
- package/dist/utils/event-catalog.d.ts.map +1 -1
- package/dist/utils/event-catalog.js +51 -0
- package/dist/utils/event-catalog.js.map +1 -1
- package/dist/utils/logger.d.ts +5 -0
- package/dist/utils/logger.d.ts.map +1 -1
- package/dist/utils/logger.js +18 -8
- package/dist/utils/logger.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"action-events.d.ts","sourceRoot":"","sources":["../../src/actions/action-events.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAChG,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAEpD,OAAO,EAAE,UAAU,EAAsD,MAAM,2BAA2B,CAAC;AAC3G,OAAO,EAAmD,KAAK,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC7G,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAEzE,OAAO,EAAuB,KAAK,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;
|
|
1
|
+
{"version":3,"file":"action-events.d.ts","sourceRoot":"","sources":["../../src/actions/action-events.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAChG,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAEpD,OAAO,EAAE,UAAU,EAAsD,MAAM,2BAA2B,CAAC;AAC3G,OAAO,EAAmD,KAAK,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC7G,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAEzE,OAAO,EAAuB,KAAK,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AAKlG,iGAAiG;AACjG,MAAM,MAAM,cAAc,GAAG,cAAc,GAAG,cAAc,GAAG,cAAc,CAAC;AAE9E;;;;;;;GAOG;AACH,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,cAAc,EACpB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,cAAc,CAAC,OAAO,UAAU,CAAC,WAAW,GAAG,OAAO,UAAU,CAAC,WAAW,GAAG,OAAO,UAAU,CAAC,WAAW,CAAC,GAAG,IAAI,CA2CtH;AAED,MAAM,WAAW,kBAAkB;IACjC,UAAU,EAAE,UAAU,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,UAAU,CAAC;IACvB,YAAY,EAAE,YAAY,CAAC;IAC3B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,kBAAkB,CAAC;CACxC;AAED,8HAA8H;AAC9H,MAAM,WAAW,wBAAwB;IACvC,UAAU,EAAE,UAAU,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,UAAU,CAAC;IACvB,YAAY,EAAE,YAAY,CAAC;IAC3B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,sGAAsG;IACtG,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;CACzC;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,wBAAwB,GAAG,kBAAkB,CAa5F;AA+BD,gGAAgG;AAChG,wBAAgB,eAAe,CAC7B,WAAW,EAAE,UAAU,EACvB,MAAM,EAAE,SAAS,EACjB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,IAAI,CAEN;AAED,6CAA6C;AAC7C,wBAAgB,eAAe,CAC7B,WAAW,EAAE,UAAU,EACvB,MAAM,EAAE,SAAS,EACjB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,IAAI,CAEN;AAED,yEAAyE;AACzE,wBAAgB,eAAe,CAC7B,WAAW,EAAE,UAAU,EACvB,MAAM,EAAE,SAAS,EACjB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,IAAI,CAEN;AAED,uGAAuG;AACvG,MAAM,WAAW,kBAAkB;IACjC,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CACpC,GAAG,EAAE,kBAAkB,EACvB,KAAK,EAAE,SAAS,EAChB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,YAAY,EACpB,MAAM,CAAC,EAAE,kBAAkB,GAC1B,IAAI,CAmBN"}
|
|
@@ -3,6 +3,7 @@ import { EVENT_NAME, JOIN_ATTR, eventAttrs, fmtThousands } from '../utils/event-
|
|
|
3
3
|
import { deriveActionResultEvents, emitEvent, emitEvents } from './event-derivation.js';
|
|
4
4
|
import { str, num, bool } from '../telemetry/event-builders.js';
|
|
5
5
|
import { positionRegistryKey } from '../runtime/position-id-registry.js';
|
|
6
|
+
import { recordOrder, recordDecision, recordSignalOutcome } from '../telemetry/metrics.js';
|
|
6
7
|
const eventLog = createLogger('[senpi-core][action-events]');
|
|
7
8
|
/**
|
|
8
9
|
* Pure: the deterministic narrative + safe scalar attributes for an order event, from its `data`
|
|
@@ -93,6 +94,13 @@ function projectScannerSignals(scanResult) {
|
|
|
93
94
|
*/
|
|
94
95
|
function emitOrderEvent(type, data) {
|
|
95
96
|
emitEvent(eventLog, () => buildOrderEventDescriptor(type, data));
|
|
97
|
+
const outcome = type === 'order.placed' ? 'placed' : type === 'order.filled' ? 'filled' : 'failed';
|
|
98
|
+
recordOrder({
|
|
99
|
+
asset: str(data.asset),
|
|
100
|
+
outcome,
|
|
101
|
+
reason: outcome === 'failed' ? str(data.reason) : undefined,
|
|
102
|
+
errorType: outcome === 'failed' ? str(data.errorName) : undefined,
|
|
103
|
+
});
|
|
96
104
|
}
|
|
97
105
|
/** `order.placed` — an order was submitted / is resting. Reads only values already in scope. */
|
|
98
106
|
export function emitOrderPlaced(_hookSystem, _event, _address, data) {
|
|
@@ -121,10 +129,36 @@ export function emitActionResultEvents(ctx, event, address, result, extras) {
|
|
|
121
129
|
minConfidence: extras?.minConfidence ?? ctx.minConfidence ?? 1,
|
|
122
130
|
runId: event.data.__scanRunId ?? null,
|
|
123
131
|
};
|
|
124
|
-
emitEvents(eventLog, () =>
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
132
|
+
emitEvents(eventLog, () => {
|
|
133
|
+
const events = deriveActionResultEvents({
|
|
134
|
+
payload: { address, data, timestamp: new Date().toISOString() },
|
|
135
|
+
nowMs: Date.now(),
|
|
136
|
+
resolvePositionId: ctx.resolvePositionId,
|
|
137
|
+
});
|
|
138
|
+
recordActionResultMetrics(events);
|
|
139
|
+
return events;
|
|
140
|
+
});
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* Metric plane for one action-result pass: the `decision.made` counter/duration and one `signal.outcome`
|
|
144
|
+
* count per evaluated signal — read straight off the derived event attributes so the metric and the
|
|
145
|
+
* event-log share their dimensions. Runs inside `emitEvents`' guard; recorders are themselves guarded.
|
|
146
|
+
*/
|
|
147
|
+
function recordActionResultMetrics(events) {
|
|
148
|
+
for (const ev of events) {
|
|
149
|
+
if (ev.name === EVENT_NAME.decisionMade) {
|
|
150
|
+
const a = ev.attributes;
|
|
151
|
+
recordDecision({
|
|
152
|
+
mode: a?.['senpi.decision.mode'],
|
|
153
|
+
intent: a?.['senpi.decision.intent'],
|
|
154
|
+
byLlm: a?.['senpi.decision.by_llm'],
|
|
155
|
+
});
|
|
156
|
+
}
|
|
157
|
+
else if (ev.name === EVENT_NAME.signalOutcome) {
|
|
158
|
+
const a = ev.attributes;
|
|
159
|
+
if (a)
|
|
160
|
+
recordSignalOutcome({ result: a['senpi.outcome.result'], reasonCode: a['senpi.outcome.reason_code'] });
|
|
161
|
+
}
|
|
162
|
+
}
|
|
129
163
|
}
|
|
130
164
|
//# sourceMappingURL=action-events.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"action-events.js","sourceRoot":"","sources":["../../src/actions/action-events.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,YAAY,EAAiB,MAAM,2BAA2B,CAAC;AAC3G,OAAO,EAAE,wBAAwB,EAAE,SAAS,EAAE,UAAU,EAAuB,MAAM,uBAAuB,CAAC;AAE7G,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,gCAAgC,CAAC;AAChE,OAAO,EAAE,mBAAmB,EAA2B,MAAM,oCAAoC,CAAC;
|
|
1
|
+
{"version":3,"file":"action-events.js","sourceRoot":"","sources":["../../src/actions/action-events.ts"],"names":[],"mappings":"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"}
|
|
@@ -26,6 +26,8 @@ export type EmittableEvent<N extends EventName = EventName> = N extends EventNam
|
|
|
26
26
|
readonly body: string;
|
|
27
27
|
readonly attributes?: AttrsFor<N>;
|
|
28
28
|
readonly redact?: Record<string, string>;
|
|
29
|
+
/** A thrown value when this event is also a fault — folded onto the record as `exception.*`. */
|
|
30
|
+
readonly error?: unknown;
|
|
29
31
|
} : never;
|
|
30
32
|
/**
|
|
31
33
|
* Build then emit a single {@link EmittableEvent} through a logger, with build + emit guarded as one
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"event-derivation.d.ts","sourceRoot":"","sources":["../../src/actions/event-derivation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAIL,KAAK,kBAAkB,EACxB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAmD,KAAK,QAAQ,EAAE,KAAK,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAC3H,OAAO,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAO3D;;;;;;;GAOG;AACH,MAAM,MAAM,cAAc,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS,IAAI,CAAC,SAAS,SAAS,GAC7E;IACE,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;IACjB,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,UAAU,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;IAClC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"event-derivation.d.ts","sourceRoot":"","sources":["../../src/actions/event-derivation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAIL,KAAK,kBAAkB,EACxB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAmD,KAAK,QAAQ,EAAE,KAAK,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAC3H,OAAO,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAO3D;;;;;;;GAOG;AACH,MAAM,MAAM,cAAc,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS,IAAI,CAAC,SAAS,SAAS,GAC7E;IACE,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;IACjB,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,UAAU,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;IAClC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzC,gGAAgG;IAChG,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;CAC1B,GACD,KAAK,CAAC;AAEV;;;;;;;;GAQG;AACH,wBAAgB,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,cAAc,GAAG,IAAI,GAAG,IAAI,CAclF;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,SAAS,cAAc,EAAE,GAAG,IAAI,CAavF;AAED,kFAAkF;AAClF,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,iBAAiB,CAAC,EAAE,kBAAkB,CAAC;CACjD;AAsFD;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,sBAAsB,GAAG,cAAc,EAAE,CAqCxF"}
|
|
@@ -28,6 +28,7 @@ export function emitEvent(logger, build) {
|
|
|
28
28
|
body: ev.body,
|
|
29
29
|
...(ev.attributes ? { attributes: ev.attributes } : {}),
|
|
30
30
|
...(ev.redact ? { redact: ev.redact } : {}),
|
|
31
|
+
...(ev.error !== undefined ? { error: ev.error } : {}),
|
|
31
32
|
});
|
|
32
33
|
}
|
|
33
34
|
}
|
|
@@ -48,6 +49,7 @@ export function emitEvents(logger, build) {
|
|
|
48
49
|
body: ev.body,
|
|
49
50
|
...(ev.attributes ? { attributes: ev.attributes } : {}),
|
|
50
51
|
...(ev.redact ? { redact: ev.redact } : {}),
|
|
52
|
+
...(ev.error !== undefined ? { error: ev.error } : {}),
|
|
51
53
|
});
|
|
52
54
|
}
|
|
53
55
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"event-derivation.js","sourceRoot":"","sources":["../../src/actions/event-derivation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EACL,iBAAiB,EACjB,oBAAoB,EACpB,mBAAmB,GAEpB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,YAAY,EAAiC,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"event-derivation.js","sourceRoot":"","sources":["../../src/actions/event-derivation.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"initial-state.d.ts","sourceRoot":"","sources":["../../../src/dsl/events/initial-state.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EACV,uBAAuB,EACvB,eAAe,EACf,QAAQ,EACR,mBAAmB,EACpB,MAAM,0BAA0B,CAAC;AAYlC,wBAAgB,qBAAqB,CACnC,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,GACf,MAAM,CAIR;AAED,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,mBAAmB,EAC1B,MAAM,EAAE,eAAe,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,EAC1C,WAAW,EAAE,MAAM,EACnB,aAAa,EAAE,uBAAuB,GACrC,QAAQ,
|
|
1
|
+
{"version":3,"file":"initial-state.d.ts","sourceRoot":"","sources":["../../../src/dsl/events/initial-state.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EACV,uBAAuB,EACvB,eAAe,EACf,QAAQ,EACR,mBAAmB,EACpB,MAAM,0BAA0B,CAAC;AAYlC,wBAAgB,qBAAqB,CACnC,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,GACf,MAAM,CAIR;AAED,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,mBAAmB,EAC1B,MAAM,EAAE,eAAe,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,EAC1C,WAAW,EAAE,MAAM,EACnB,aAAa,EAAE,uBAAuB,GACrC,QAAQ,CAqFV"}
|
|
@@ -77,6 +77,7 @@ export function buildInitialState(event, preset, phase1Floor, triggerReason) {
|
|
|
77
77
|
lastCheck: ts,
|
|
78
78
|
lastPrice: entryPrice,
|
|
79
79
|
consecutiveFetchFailures: 0,
|
|
80
|
+
priceFetchStaleEmitted: false,
|
|
80
81
|
consecutiveCloseFailures: 0,
|
|
81
82
|
slSyncFailureCount: 0,
|
|
82
83
|
handoffStatus: null,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"initial-state.js","sourceRoot":"","sources":["../../../src/dsl/events/initial-state.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"initial-state.js","sourceRoot":"","sources":["../../../src/dsl/events/initial-state.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pure builders for the DSL exit-engine's failure-state events — degradation the monitor tracks but
|
|
3
|
+
* that previously surfaced only as a tick-span error or a `warn` log: an exchange SL push that threw
|
|
4
|
+
* ({@link buildSlSyncFailedEvent}), a position with no price past the stale threshold
|
|
5
|
+
* ({@link buildPriceFetchStaleEvent}), and a Phase-2 backend handoff that degraded
|
|
6
|
+
* ({@link buildHandoffFailedEvent}).
|
|
7
|
+
*
|
|
8
|
+
* Pure `(input) => EmittableEvent`; the monitor emits the result through `emitEvent`'s guard, so a
|
|
9
|
+
* throwing build or a telemetry failure can never disturb a tick. A thrown venue/backend error rides
|
|
10
|
+
* the event's `error` slot (exception semconv + `recordException` on the active span); an opaque
|
|
11
|
+
* declined-registration backend payload rides the `redact` slot. Identity (`senpi.strategy.*`) is
|
|
12
|
+
* stamped at emit time from the tick's async-context bag, as for the sibling `dsl.*` transition
|
|
13
|
+
* events, so it is not passed here.
|
|
14
|
+
*/
|
|
15
|
+
import { EVENT_NAME } from "../../utils/event-catalog.js";
|
|
16
|
+
import type { EmittableEvent } from "../../actions/event-derivation.js";
|
|
17
|
+
/** The position the failed tick was managing — the id/asset/dex every DSL failure event carries. */
|
|
18
|
+
export interface DslFailureContext {
|
|
19
|
+
asset: string;
|
|
20
|
+
/** Venue/dex; omitted → not stamped (a single-venue position). */
|
|
21
|
+
dex?: string;
|
|
22
|
+
/** The cross-flow position id (`positionId ?? correlationId`); absent on a pre-id position. */
|
|
23
|
+
positionId?: string;
|
|
24
|
+
}
|
|
25
|
+
/** Which handoff step degraded — the discriminator on a `dsl.handoff_failed` event. */
|
|
26
|
+
export type HandoffFailure = "register" | "rollback" | "poll";
|
|
27
|
+
/** An exchange SL create/update (`editPosition`) threw — the stop the venue never received. */
|
|
28
|
+
export declare function buildSlSyncFailedEvent(ctx: DslFailureContext, failureCount: number, error: unknown): EmittableEvent<typeof EVENT_NAME.dslSlSyncFailed>;
|
|
29
|
+
/** No market price for `failureCount` consecutive ticks — the position can't be evaluated. */
|
|
30
|
+
export declare function buildPriceFetchStaleEvent(ctx: DslFailureContext, failureCount: number): EmittableEvent<typeof EVENT_NAME.dslPriceFetchStale>;
|
|
31
|
+
/**
|
|
32
|
+
* A Phase-2 backend handoff degraded. `register` left the handoff stuck pending (the backend declined
|
|
33
|
+
* or threw — a throw rides `error`); `rollback` reverted to local Phase 2 management (the backend lost
|
|
34
|
+
* our stop); `poll` failed to reach the backend while it owns the stop (rides `error`).
|
|
35
|
+
*/
|
|
36
|
+
export declare function buildHandoffFailedEvent(ctx: DslFailureContext, opts: {
|
|
37
|
+
failure: HandoffFailure;
|
|
38
|
+
backendPositionId?: string;
|
|
39
|
+
error?: unknown;
|
|
40
|
+
redact?: Record<string, string>;
|
|
41
|
+
}): EmittableEvent<typeof EVENT_NAME.dslHandoffFailed>;
|
|
42
|
+
//# sourceMappingURL=dsl-failure-events.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dsl-failure-events.d.ts","sourceRoot":"","sources":["../../../src/dsl/monitor/dsl-failure-events.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,UAAU,EAA6B,MAAM,8BAA8B,CAAC;AACrF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AAExE,oGAAoG;AACpG,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,kEAAkE;IAClE,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,+FAA+F;IAC/F,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,uFAAuF;AACvF,MAAM,MAAM,cAAc,GAAG,UAAU,GAAG,UAAU,GAAG,MAAM,CAAC;AAe9D,+FAA+F;AAC/F,wBAAgB,sBAAsB,CACpC,GAAG,EAAE,iBAAiB,EACtB,YAAY,EAAE,MAAM,EACpB,KAAK,EAAE,OAAO,GACb,cAAc,CAAC,OAAO,UAAU,CAAC,eAAe,CAAC,CAWnD;AAED,8FAA8F;AAC9F,wBAAgB,yBAAyB,CACvC,GAAG,EAAE,iBAAiB,EACtB,YAAY,EAAE,MAAM,GACnB,cAAc,CAAC,OAAO,UAAU,CAAC,kBAAkB,CAAC,CAUtD;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CACrC,GAAG,EAAE,iBAAiB,EACtB,IAAI,EAAE;IACJ,OAAO,EAAE,cAAc,CAAC;IACxB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACjC,GACA,cAAc,CAAC,OAAO,UAAU,CAAC,gBAAgB,CAAC,CAmBpD"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pure builders for the DSL exit-engine's failure-state events — degradation the monitor tracks but
|
|
3
|
+
* that previously surfaced only as a tick-span error or a `warn` log: an exchange SL push that threw
|
|
4
|
+
* ({@link buildSlSyncFailedEvent}), a position with no price past the stale threshold
|
|
5
|
+
* ({@link buildPriceFetchStaleEvent}), and a Phase-2 backend handoff that degraded
|
|
6
|
+
* ({@link buildHandoffFailedEvent}).
|
|
7
|
+
*
|
|
8
|
+
* Pure `(input) => EmittableEvent`; the monitor emits the result through `emitEvent`'s guard, so a
|
|
9
|
+
* throwing build or a telemetry failure can never disturb a tick. A thrown venue/backend error rides
|
|
10
|
+
* the event's `error` slot (exception semconv + `recordException` on the active span); an opaque
|
|
11
|
+
* declined-registration backend payload rides the `redact` slot. Identity (`senpi.strategy.*`) is
|
|
12
|
+
* stamped at emit time from the tick's async-context bag, as for the sibling `dsl.*` transition
|
|
13
|
+
* events, so it is not passed here.
|
|
14
|
+
*/
|
|
15
|
+
import { EVENT_NAME, eventAttrs } from "../../utils/event-catalog.js";
|
|
16
|
+
/** The id/asset/dex attributes every DSL failure event carries. */
|
|
17
|
+
function baseAttrs(ctx) {
|
|
18
|
+
return {
|
|
19
|
+
"senpi.asset": ctx.asset,
|
|
20
|
+
"senpi.dex": ctx.dex || undefined,
|
|
21
|
+
"senpi.position.id": ctx.positionId,
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
/** An exchange SL create/update (`editPosition`) threw — the stop the venue never received. */
|
|
25
|
+
export function buildSlSyncFailedEvent(ctx, failureCount, error) {
|
|
26
|
+
return {
|
|
27
|
+
name: EVENT_NAME.dslSlSyncFailed,
|
|
28
|
+
level: "warn",
|
|
29
|
+
body: `Exchange SL sync failed for ${ctx.asset} (${failureCount} consecutive)`,
|
|
30
|
+
attributes: eventAttrs({
|
|
31
|
+
...baseAttrs(ctx),
|
|
32
|
+
"senpi.dsl.sl_sync_failure_count": failureCount,
|
|
33
|
+
}),
|
|
34
|
+
error,
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
/** No market price for `failureCount` consecutive ticks — the position can't be evaluated. */
|
|
38
|
+
export function buildPriceFetchStaleEvent(ctx, failureCount) {
|
|
39
|
+
return {
|
|
40
|
+
name: EVENT_NAME.dslPriceFetchStale,
|
|
41
|
+
level: "warn",
|
|
42
|
+
body: `Sustained price-fetch failures for ${ctx.asset} (${failureCount} consecutive)`,
|
|
43
|
+
attributes: eventAttrs({
|
|
44
|
+
...baseAttrs(ctx),
|
|
45
|
+
"senpi.dsl.fetch_failure_count": failureCount,
|
|
46
|
+
}),
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* A Phase-2 backend handoff degraded. `register` left the handoff stuck pending (the backend declined
|
|
51
|
+
* or threw — a throw rides `error`); `rollback` reverted to local Phase 2 management (the backend lost
|
|
52
|
+
* our stop); `poll` failed to reach the backend while it owns the stop (rides `error`).
|
|
53
|
+
*/
|
|
54
|
+
export function buildHandoffFailedEvent(ctx, opts) {
|
|
55
|
+
const body = opts.failure === "rollback"
|
|
56
|
+
? `Backend handoff lost for ${ctx.asset}, reverting to local Phase 2`
|
|
57
|
+
: opts.failure === "poll"
|
|
58
|
+
? `Backend handoff poll failed for ${ctx.asset}`
|
|
59
|
+
: `Backend handoff registration failed for ${ctx.asset} (staying pending)`;
|
|
60
|
+
return {
|
|
61
|
+
name: EVENT_NAME.dslHandoffFailed,
|
|
62
|
+
level: "warn",
|
|
63
|
+
body,
|
|
64
|
+
attributes: eventAttrs({
|
|
65
|
+
...baseAttrs(ctx),
|
|
66
|
+
"senpi.dsl.handoff_failure": opts.failure,
|
|
67
|
+
"senpi.dsl.backend_position_id": opts.backendPositionId,
|
|
68
|
+
}),
|
|
69
|
+
...(opts.redact ? { redact: opts.redact } : {}),
|
|
70
|
+
...(opts.error !== undefined ? { error: opts.error } : {}),
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
//# sourceMappingURL=dsl-failure-events.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dsl-failure-events.js","sourceRoot":"","sources":["../../../src/dsl/monitor/dsl-failure-events.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,UAAU,EAAE,UAAU,EAAiB,MAAM,8BAA8B,CAAC;AAerF,mEAAmE;AACnE,SAAS,SAAS,CAAC,GAAsB;IAKvC,OAAO;QACL,aAAa,EAAE,GAAG,CAAC,KAAK;QACxB,WAAW,EAAE,GAAG,CAAC,GAAG,IAAI,SAAS;QACjC,mBAAmB,EAAE,GAAG,CAAC,UAAU;KACpC,CAAC;AACJ,CAAC;AAED,+FAA+F;AAC/F,MAAM,UAAU,sBAAsB,CACpC,GAAsB,EACtB,YAAoB,EACpB,KAAc;IAEd,OAAO;QACL,IAAI,EAAE,UAAU,CAAC,eAAe;QAChC,KAAK,EAAE,MAAM;QACb,IAAI,EAAE,+BAA+B,GAAG,CAAC,KAAK,KAAK,YAAY,eAAe;QAC9E,UAAU,EAAE,UAAU,CAA8C;YAClE,GAAG,SAAS,CAAC,GAAG,CAAC;YACjB,iCAAiC,EAAE,YAAY;SAChD,CAAC;QACF,KAAK;KACN,CAAC;AACJ,CAAC;AAED,8FAA8F;AAC9F,MAAM,UAAU,yBAAyB,CACvC,GAAsB,EACtB,YAAoB;IAEpB,OAAO;QACL,IAAI,EAAE,UAAU,CAAC,kBAAkB;QACnC,KAAK,EAAE,MAAM;QACb,IAAI,EAAE,sCAAsC,GAAG,CAAC,KAAK,KAAK,YAAY,eAAe;QACrF,UAAU,EAAE,UAAU,CAAiD;YACrE,GAAG,SAAS,CAAC,GAAG,CAAC;YACjB,+BAA+B,EAAE,YAAY;SAC9C,CAAC;KACH,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,uBAAuB,CACrC,GAAsB,EACtB,IAKC;IAED,MAAM,IAAI,GACR,IAAI,CAAC,OAAO,KAAK,UAAU;QACzB,CAAC,CAAC,4BAA4B,GAAG,CAAC,KAAK,8BAA8B;QACrE,CAAC,CAAC,IAAI,CAAC,OAAO,KAAK,MAAM;YACvB,CAAC,CAAC,mCAAmC,GAAG,CAAC,KAAK,EAAE;YAChD,CAAC,CAAC,2CAA2C,GAAG,CAAC,KAAK,oBAAoB,CAAC;IACjF,OAAO;QACL,IAAI,EAAE,UAAU,CAAC,gBAAgB;QACjC,KAAK,EAAE,MAAM;QACb,IAAI;QACJ,UAAU,EAAE,UAAU,CAA+C;YACnE,GAAG,SAAS,CAAC,GAAG,CAAC;YACjB,2BAA2B,EAAE,IAAI,CAAC,OAAO;YACzC,+BAA+B,EAAE,IAAI,CAAC,iBAAiB;SACxD,CAAC;QACF,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/C,GAAG,CAAC,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC3D,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"process-one-position.d.ts","sourceRoot":"","sources":["../../../src/dsl/monitor/process-one-position.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"process-one-position.d.ts","sourceRoot":"","sources":["../../../src/dsl/monitor/process-one-position.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAmBzD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AA+F/C,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,MAAM,CAAC;IACf,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,MAAM,CAAC;IAClB,YAAY,EAAE,YAAY,CAAC;IAC3B,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IAC3C,GAAG,EAAE,aAAa,CAAC;IACnB,uBAAuB,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC;IACnD,6DAA6D;IAC7D,cAAc,CAAC,EAAE,OAAO,sBAAsB,EAAE,cAAc,CAAC;IAC/D,oDAAoD;IACpD,wBAAwB,CAAC,EAAE,OAAO,sBAAsB,EAAE,wBAAwB,CAAC;CACpF;AAED,wBAAsB,kBAAkB,CACtC,GAAG,EAAE,qBAAqB,EAC1B,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,QAAQ,EACf,KAAK,EAAE,MAAM,GAAG,SAAS,EACzB,IAAI,EAAE,IAAI,GACT,OAAO,CAAC,IAAI,CAAC,CAkvBf"}
|
|
@@ -6,12 +6,16 @@ import { CLOSE_REASON, MAX_CONSECUTIVE_CLOSE_FAILURES, DSL_EXTERNAL_RETRIES, DSL
|
|
|
6
6
|
import { logger } from "../../utils/logger/dsl.js";
|
|
7
7
|
import { withRetry } from "../../utils/retry.js";
|
|
8
8
|
import { withSpan } from "../../telemetry/tracing.js";
|
|
9
|
+
import { errorTypeOf } from "../../telemetry/spans/gen-ai.js";
|
|
10
|
+
import { recordDslDegradation } from "../../telemetry/metrics.js";
|
|
9
11
|
import { effectiveDex } from "./effective-dex.js";
|
|
10
12
|
import { shouldSyncExchangeSl } from "./exchange-sync.js";
|
|
11
13
|
import { mapTiersToEngineConfig, mapEnginePositionToStateFields, parseSlOrderId } from "../engine-client/config-mapping.js";
|
|
12
14
|
import { mapBackendEventToBusEvent } from "../engine-client/event-mapping.js";
|
|
13
15
|
import { buildDslClosedEventFromState } from "../events/build-closed-event.js";
|
|
14
16
|
import { parseCloseFillDetail } from "../../senpi/client.js";
|
|
17
|
+
import { emitEvent } from "../../actions/event-derivation.js";
|
|
18
|
+
import { buildSlSyncFailedEvent, buildPriceFetchStaleEvent, buildHandoffFailedEvent, } from "./dsl-failure-events.js";
|
|
15
19
|
/**
|
|
16
20
|
* Re-read the key under its per-key lock; if it is still active, archive it and return true.
|
|
17
21
|
* If a competing locked writer already archived/inactivated it, skip and return false (WARN).
|
|
@@ -64,6 +68,14 @@ function closedEmitStamps(state, fill = {}) {
|
|
|
64
68
|
...fill,
|
|
65
69
|
};
|
|
66
70
|
}
|
|
71
|
+
/** The position identity a DSL failure event pins onto its record. */
|
|
72
|
+
function failureContext(state) {
|
|
73
|
+
return {
|
|
74
|
+
asset: state.asset,
|
|
75
|
+
dex: state.dex || undefined,
|
|
76
|
+
positionId: state.positionId ?? state.correlationId,
|
|
77
|
+
};
|
|
78
|
+
}
|
|
67
79
|
export async function processOnePosition(ctx, key, state, price, span) {
|
|
68
80
|
const { tickId, ts, now: isoNow, stateManager, strategyStates, bus, isSlPlacementInProgress = () => false } = ctx;
|
|
69
81
|
const strategy = strategyStates.get(state.address);
|
|
@@ -225,18 +237,23 @@ export async function processOnePosition(ctx, key, state, price, span) {
|
|
|
225
237
|
if (price == null) {
|
|
226
238
|
const next = { ...state, consecutiveFetchFailures: (state.consecutiveFetchFailures ?? 0) + 1 };
|
|
227
239
|
next.tickCount = (state.tickCount ?? 0) + 1;
|
|
240
|
+
// Edge-triggered: fire once when the streak first reaches the stale threshold (the alertable
|
|
241
|
+
// transition); the per-tick info line below covers ongoing visibility. A `>=` test (not `===`)
|
|
242
|
+
// latched on the state so a counter rehydrated at/above the threshold mid-stall (post-restart)
|
|
243
|
+
// still fires once; the priced-tick re-arm below clears the latch for the next stall.
|
|
244
|
+
const shouldEmitStale = next.consecutiveFetchFailures >= DSL_PRICE_FETCH_FAILURE_WARN_THRESHOLD &&
|
|
245
|
+
!state.priceFetchStaleEmitted;
|
|
246
|
+
if (shouldEmitStale)
|
|
247
|
+
next.priceFetchStaleEmitted = true;
|
|
228
248
|
await setIfStillActive(stateManager, key, state.address, state.asset, (current) => ({
|
|
229
249
|
...current,
|
|
230
250
|
consecutiveFetchFailures: (current.consecutiveFetchFailures ?? 0) + 1,
|
|
231
251
|
tickCount: (current.tickCount ?? 0) + 1,
|
|
252
|
+
...(shouldEmitStale ? { priceFetchStaleEmitted: true } : {}),
|
|
232
253
|
}), { tickId, skipMessage: "[dsl] skip no-price counter write: state already cleared (concurrent close)" });
|
|
233
|
-
if (
|
|
234
|
-
logger
|
|
235
|
-
|
|
236
|
-
key,
|
|
237
|
-
asset: state.asset,
|
|
238
|
-
consecutiveFetchFailures: next.consecutiveFetchFailures,
|
|
239
|
-
});
|
|
254
|
+
if (shouldEmitStale) {
|
|
255
|
+
emitEvent(logger, () => buildPriceFetchStaleEvent(failureContext(state), next.consecutiveFetchFailures));
|
|
256
|
+
recordDslDegradation({ failure: "price_stale" });
|
|
240
257
|
}
|
|
241
258
|
logger.info("[dsl] monitor no price for position, skipping dslTick", {
|
|
242
259
|
tickId,
|
|
@@ -268,6 +285,8 @@ export async function processOnePosition(ctx, key, state, price, span) {
|
|
|
268
285
|
}
|
|
269
286
|
const next = { ...result.state };
|
|
270
287
|
next.consecutiveFetchFailures = 0;
|
|
288
|
+
// Re-arm the stale-event latch: the price is back, so the next stall fires a fresh event.
|
|
289
|
+
next.priceFetchStaleEmitted = false;
|
|
271
290
|
next.tickCount = (state.tickCount ?? 0) + 1;
|
|
272
291
|
next.lastError = null;
|
|
273
292
|
next.lastErrorAt = null;
|
|
@@ -604,14 +623,8 @@ export async function processOnePosition(ctx, key, state, price, span) {
|
|
|
604
623
|
}, { tickId, skipMessage: "[dsl] skip SL sync-failure write: state no longer active (concurrent close)" });
|
|
605
624
|
if (syncFailureCount == null)
|
|
606
625
|
return;
|
|
607
|
-
logger
|
|
608
|
-
|
|
609
|
-
asset: state.asset,
|
|
610
|
-
exchangeTriggerPx,
|
|
611
|
-
dslEffectiveFloor,
|
|
612
|
-
slSyncFailureCount: syncFailureCount,
|
|
613
|
-
err: e,
|
|
614
|
-
});
|
|
626
|
+
emitEvent(logger, () => buildSlSyncFailedEvent(failureContext(state), syncFailureCount ?? 0, e));
|
|
627
|
+
recordDslDegradation({ failure: "sl_sync", errorType: errorTypeOf(e) });
|
|
615
628
|
}
|
|
616
629
|
}
|
|
617
630
|
const hbState = await stateManager.getOrLoad(key);
|
|
@@ -775,19 +788,16 @@ async function attemptHandoffRegistration(ctx, key, next, _original, strategy) {
|
|
|
775
788
|
});
|
|
776
789
|
}
|
|
777
790
|
else {
|
|
778
|
-
logger
|
|
779
|
-
|
|
780
|
-
|
|
781
|
-
|
|
782
|
-
});
|
|
791
|
+
emitEvent(logger, () => buildHandoffFailedEvent(failureContext(next), {
|
|
792
|
+
failure: "register",
|
|
793
|
+
redact: { result: JSON.stringify(result).slice(0, 800) },
|
|
794
|
+
}));
|
|
795
|
+
recordDslDegradation({ failure: "handoff", handoffFailure: "register" });
|
|
783
796
|
}
|
|
784
797
|
}
|
|
785
798
|
catch (e) {
|
|
786
|
-
logger
|
|
787
|
-
|
|
788
|
-
asset: next.asset,
|
|
789
|
-
err: e,
|
|
790
|
-
});
|
|
799
|
+
emitEvent(logger, () => buildHandoffFailedEvent(failureContext(next), { failure: "register", error: e }));
|
|
800
|
+
recordDslDegradation({ failure: "handoff", handoffFailure: "register", errorType: errorTypeOf(e) });
|
|
791
801
|
}
|
|
792
802
|
}
|
|
793
803
|
async function handleHandoffOk(ctx, key, next, original, strategy, span) {
|
|
@@ -809,13 +819,11 @@ async function handleHandoffOk(ctx, key, next, original, strategy, span) {
|
|
|
809
819
|
? positions.filter((p) => !BACKEND_TERMINAL_STATUSES.has(p.status))[0]
|
|
810
820
|
: null;
|
|
811
821
|
if (!backendPos) {
|
|
812
|
-
logger
|
|
813
|
-
|
|
814
|
-
|
|
815
|
-
|
|
816
|
-
|
|
817
|
-
returnedIds: positions.map((p) => p.id),
|
|
818
|
-
});
|
|
822
|
+
emitEvent(logger, () => buildHandoffFailedEvent(failureContext(original), {
|
|
823
|
+
failure: "rollback",
|
|
824
|
+
backendPositionId: next.backendDslPositionId ?? undefined,
|
|
825
|
+
}));
|
|
826
|
+
recordDslDegradation({ failure: "handoff", handoffFailure: "rollback" });
|
|
819
827
|
const rolledBack = {
|
|
820
828
|
...updated,
|
|
821
829
|
handoffStatus: null,
|
|
@@ -866,11 +874,12 @@ async function handleHandoffOk(ctx, key, next, original, strategy, span) {
|
|
|
866
874
|
}
|
|
867
875
|
}
|
|
868
876
|
catch (e) {
|
|
869
|
-
logger
|
|
870
|
-
|
|
871
|
-
|
|
872
|
-
|
|
873
|
-
});
|
|
877
|
+
emitEvent(logger, () => buildHandoffFailedEvent(failureContext(original), {
|
|
878
|
+
failure: "poll",
|
|
879
|
+
backendPositionId: next.backendDslPositionId ?? undefined,
|
|
880
|
+
error: e,
|
|
881
|
+
}));
|
|
882
|
+
recordDslDegradation({ failure: "handoff", handoffFailure: "poll", errorType: errorTypeOf(e) });
|
|
874
883
|
}
|
|
875
884
|
try {
|
|
876
885
|
// ASC ordering is required: the cursor advances to the LAST element of the array
|