@senpi/runtime 3.0.108 → 3.0.111
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 +21 -7
- package/dist/actions/action-events.d.ts.map +1 -1
- package/dist/actions/action-events.js +54 -26
- package/dist/actions/action-events.js.map +1 -1
- package/dist/actions/action-runtime-module.d.ts.map +1 -1
- package/dist/actions/action-runtime-module.js +38 -7
- package/dist/actions/action-runtime-module.js.map +1 -1
- package/dist/actions/close-position/close-position.action.d.ts.map +1 -1
- package/dist/actions/close-position/close-position.action.js +122 -15
- package/dist/actions/close-position/close-position.action.js.map +1 -1
- package/dist/actions/decision-engine.d.ts.map +1 -1
- package/dist/actions/decision-engine.js +15 -2
- package/dist/actions/decision-engine.js.map +1 -1
- package/dist/actions/event-derivation.d.ts +71 -2
- package/dist/actions/event-derivation.d.ts.map +1 -1
- package/dist/actions/event-derivation.js +251 -8
- package/dist/actions/event-derivation.js.map +1 -1
- package/dist/actions/open-position/open-position.action.d.ts +28 -2
- package/dist/actions/open-position/open-position.action.d.ts.map +1 -1
- package/dist/actions/open-position/open-position.action.js +220 -52
- package/dist/actions/open-position/open-position.action.js.map +1 -1
- package/dist/actions/position-tracker/position-tracker.action.d.ts +2 -1
- package/dist/actions/position-tracker/position-tracker.action.d.ts.map +1 -1
- package/dist/actions/position-tracker/position-tracker.action.js +62 -17
- package/dist/actions/position-tracker/position-tracker.action.js.map +1 -1
- package/dist/actions/skipped-signal-results.d.ts +25 -0
- package/dist/actions/skipped-signal-results.d.ts.map +1 -0
- package/dist/actions/skipped-signal-results.js +71 -0
- package/dist/actions/skipped-signal-results.js.map +1 -0
- package/dist/actions/store/types.d.ts +9 -2
- package/dist/actions/store/types.d.ts.map +1 -1
- package/dist/actions/store/types.js.map +1 -1
- package/dist/actions/types.d.ts +13 -0
- package/dist/actions/types.d.ts.map +1 -1
- package/dist/actions/types.js +13 -0
- package/dist/actions/types.js.map +1 -1
- package/dist/cli/guide-commands.d.ts.map +1 -1
- package/dist/cli/guide-commands.js +3 -0
- package/dist/cli/guide-commands.js.map +1 -1
- package/dist/constants/dsl/index.d.ts +15 -0
- package/dist/constants/dsl/index.d.ts.map +1 -1
- package/dist/constants/dsl/index.js +15 -0
- package/dist/constants/dsl/index.js.map +1 -1
- package/dist/dsl/engine-client/event-mapping.d.ts.map +1 -1
- package/dist/dsl/engine-client/event-mapping.js +14 -0
- package/dist/dsl/engine-client/event-mapping.js.map +1 -1
- package/dist/dsl/events/build-closed-event.d.ts +16 -1
- package/dist/dsl/events/build-closed-event.d.ts.map +1 -1
- package/dist/dsl/events/build-closed-event.js +6 -0
- package/dist/dsl/events/build-closed-event.js.map +1 -1
- package/dist/dsl/events/handlers.d.ts +7 -0
- package/dist/dsl/events/handlers.d.ts.map +1 -1
- package/dist/dsl/events/handlers.js +37 -7
- package/dist/dsl/events/handlers.js.map +1 -1
- package/dist/dsl/monitor/create-monitor.d.ts +6 -2
- package/dist/dsl/monitor/create-monitor.d.ts.map +1 -1
- package/dist/dsl/monitor/create-monitor.js +15 -9
- package/dist/dsl/monitor/create-monitor.js.map +1 -1
- package/dist/dsl/monitor/dsl-failure-events.d.ts +2 -0
- package/dist/dsl/monitor/dsl-failure-events.d.ts.map +1 -1
- package/dist/dsl/monitor/dsl-failure-events.js +2 -1
- package/dist/dsl/monitor/dsl-failure-events.js.map +1 -1
- package/dist/dsl/monitor/process-one-position.d.ts +1 -0
- package/dist/dsl/monitor/process-one-position.d.ts.map +1 -1
- package/dist/dsl/monitor/process-one-position.js +72 -29
- package/dist/dsl/monitor/process-one-position.js.map +1 -1
- package/dist/dsl/plugin/index.d.ts +8 -2
- package/dist/dsl/plugin/index.d.ts.map +1 -1
- package/dist/dsl/plugin/index.js +8 -6
- package/dist/dsl/plugin/index.js.map +1 -1
- package/dist/health/types.d.ts +13 -0
- package/dist/health/types.d.ts.map +1 -1
- package/dist/health/types.js +12 -0
- package/dist/health/types.js.map +1 -1
- package/dist/index.d.ts +16 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +230 -39
- package/dist/index.js.map +1 -1
- package/dist/runtime/action-registry.d.ts.map +1 -1
- package/dist/runtime/action-registry.js +4 -3
- package/dist/runtime/action-registry.js.map +1 -1
- package/dist/runtime/domain-events.d.ts.map +1 -1
- package/dist/runtime/domain-events.js +7 -0
- package/dist/runtime/domain-events.js.map +1 -1
- package/dist/runtime/lifecycle-events.d.ts +9 -1
- package/dist/runtime/lifecycle-events.d.ts.map +1 -1
- package/dist/runtime/lifecycle-events.js +11 -2
- package/dist/runtime/lifecycle-events.js.map +1 -1
- package/dist/runtime/reconcile-run.d.ts +13 -3
- package/dist/runtime/reconcile-run.d.ts.map +1 -1
- package/dist/runtime/reconcile-run.js +4 -3
- package/dist/runtime/reconcile-run.js.map +1 -1
- package/dist/runtime/reconcile-state.d.ts +8 -0
- package/dist/runtime/reconcile-state.d.ts.map +1 -1
- package/dist/runtime/reconcile-state.js +4 -1
- package/dist/runtime/reconcile-state.js.map +1 -1
- package/dist/runtime/run.d.ts +1 -0
- package/dist/runtime/run.d.ts.map +1 -1
- package/dist/runtime/run.js.map +1 -1
- package/dist/runtime/runtime-schema.js +3 -3
- package/dist/runtime/runtime-schema.js.map +1 -1
- package/dist/runtime/runtime.d.ts +1 -0
- package/dist/runtime/runtime.d.ts.map +1 -1
- package/dist/runtime/runtime.js +27 -3
- package/dist/runtime/runtime.js.map +1 -1
- package/dist/runtime/supervisor/long-running-supervisor.d.ts +13 -0
- package/dist/runtime/supervisor/long-running-supervisor.d.ts.map +1 -1
- package/dist/runtime/supervisor/long-running-supervisor.js +1 -0
- package/dist/runtime/supervisor/long-running-supervisor.js.map +1 -1
- package/dist/runtime/validate-dsl-position-tracking.d.ts.map +1 -1
- package/dist/runtime/validate-dsl-position-tracking.js +2 -1
- package/dist/runtime/validate-dsl-position-tracking.js.map +1 -1
- package/dist/runtime-api/handlers/ingest-signals.d.ts.map +1 -1
- package/dist/runtime-api/handlers/ingest-signals.js +1 -0
- package/dist/runtime-api/handlers/ingest-signals.js.map +1 -1
- package/dist/runtime-api/handlers/types.d.ts +5 -0
- package/dist/runtime-api/handlers/types.d.ts.map +1 -1
- package/dist/runtime-api/intake/ingest-request.d.ts +17 -0
- package/dist/runtime-api/intake/ingest-request.d.ts.map +1 -0
- package/dist/runtime-api/intake/ingest-request.js +34 -0
- package/dist/runtime-api/intake/ingest-request.js.map +1 -0
- package/dist/runtime-api/intake/intake-events.d.ts +1 -1
- package/dist/runtime-api/intake/intake-events.d.ts.map +1 -1
- package/dist/runtime-api/intake/intake-events.js +9 -3
- package/dist/runtime-api/intake/intake-events.js.map +1 -1
- package/dist/runtime-api/intake/intake-mount.d.ts.map +1 -1
- package/dist/runtime-api/intake/intake-mount.js +4 -19
- package/dist/runtime-api/intake/intake-mount.js.map +1 -1
- package/dist/runtime-api/intake/scaffold-error-router.js.map +1 -1
- package/dist/runtime-api/intake/scanner-launcher.d.ts.map +1 -1
- package/dist/runtime-api/intake/scanner-launcher.js +15 -0
- package/dist/runtime-api/intake/scanner-launcher.js.map +1 -1
- package/dist/runtime-api/intake/types.d.ts +6 -0
- package/dist/runtime-api/intake/types.d.ts.map +1 -1
- package/dist/runtime-api/routes/signals.d.ts.map +1 -1
- package/dist/runtime-api/routes/signals.js +2 -1
- package/dist/runtime-api/routes/signals.js.map +1 -1
- package/dist/runtime-api/routes/signals.schema.d.ts +1 -0
- package/dist/runtime-api/routes/signals.schema.d.ts.map +1 -1
- package/dist/runtime-api/routes/signals.schema.js +6 -0
- package/dist/runtime-api/routes/signals.schema.js.map +1 -1
- package/dist/scanners/engine/engine.d.ts +22 -1
- package/dist/scanners/engine/engine.d.ts.map +1 -1
- package/dist/scanners/engine/engine.js +78 -11
- package/dist/scanners/engine/engine.js.map +1 -1
- package/dist/scanners/engine/lifecycle.d.ts +7 -1
- package/dist/scanners/engine/lifecycle.d.ts.map +1 -1
- package/dist/scanners/events.d.ts +4 -0
- package/dist/scanners/events.d.ts.map +1 -1
- package/dist/scanners/events.js +2 -0
- package/dist/scanners/events.js.map +1 -1
- package/dist/scanners/external/scaffold/delivery.py +136 -14
- package/dist/scanners/external/scaffold/scaffold.py +61 -8
- package/dist/scanners/external/scaffold/ulid.py +58 -0
- package/dist/scanners/external-scanner-receiver.d.ts +17 -0
- package/dist/scanners/external-scanner-receiver.d.ts.map +1 -1
- package/dist/scanners/external-scanner-receiver.js +8 -0
- package/dist/scanners/external-scanner-receiver.js.map +1 -1
- package/dist/scanners/runtime-module.d.ts +1 -0
- package/dist/scanners/runtime-module.d.ts.map +1 -1
- package/dist/scanners/runtime-module.js +59 -9
- package/dist/scanners/runtime-module.js.map +1 -1
- package/dist/scripts/run-dsl-standalone-mock.js +6 -2
- package/dist/scripts/run-dsl-standalone-mock.js.map +1 -1
- package/dist/senpi/client.d.ts +16 -3
- package/dist/senpi/client.d.ts.map +1 -1
- package/dist/senpi/client.js +44 -13
- package/dist/senpi/client.js.map +1 -1
- package/dist/strategy/strategy-state.d.ts +9 -1
- package/dist/strategy/strategy-state.d.ts.map +1 -1
- package/dist/strategy/strategy-state.js +7 -2
- package/dist/strategy/strategy-state.js.map +1 -1
- package/dist/telemetry/attributes.d.ts +20 -0
- package/dist/telemetry/attributes.d.ts.map +1 -1
- package/dist/telemetry/attributes.js +24 -0
- package/dist/telemetry/attributes.js.map +1 -1
- package/dist/telemetry/event-builders.d.ts +81 -6
- package/dist/telemetry/event-builders.d.ts.map +1 -1
- package/dist/telemetry/event-builders.js +141 -17
- package/dist/telemetry/event-builders.js.map +1 -1
- package/dist/telemetry/event-store.d.ts +6 -0
- package/dist/telemetry/event-store.d.ts.map +1 -1
- package/dist/telemetry/event-store.js +12 -8
- package/dist/telemetry/event-store.js.map +1 -1
- package/dist/telemetry/live-telemetry.d.ts +192 -0
- package/dist/telemetry/live-telemetry.d.ts.map +1 -0
- package/dist/telemetry/live-telemetry.js +676 -0
- package/dist/telemetry/live-telemetry.js.map +1 -0
- package/dist/telemetry/metrics.d.ts +14 -2
- package/dist/telemetry/metrics.d.ts.map +1 -1
- package/dist/telemetry/metrics.js +19 -4
- package/dist/telemetry/metrics.js.map +1 -1
- package/dist/telemetry/scanner-stats.d.ts +143 -0
- package/dist/telemetry/scanner-stats.d.ts.map +1 -0
- package/dist/telemetry/scanner-stats.js +426 -0
- package/dist/telemetry/scanner-stats.js.map +1 -0
- package/dist/telemetry/spans/redact-pii.d.ts.map +1 -1
- package/dist/telemetry/spans/redact-pii.js +18 -2
- package/dist/telemetry/spans/redact-pii.js.map +1 -1
- package/dist/telemetry/strategy-topology.d.ts +99 -0
- package/dist/telemetry/strategy-topology.d.ts.map +1 -0
- package/dist/telemetry/strategy-topology.js +93 -0
- package/dist/telemetry/strategy-topology.js.map +1 -0
- package/dist/telemetry/telemetry-publisher.d.ts +63 -0
- package/dist/telemetry/telemetry-publisher.d.ts.map +1 -0
- package/dist/telemetry/telemetry-publisher.js +229 -0
- package/dist/telemetry/telemetry-publisher.js.map +1 -0
- package/dist/telemetry/timeline-buffer.d.ts +95 -0
- package/dist/telemetry/timeline-buffer.d.ts.map +1 -0
- package/dist/telemetry/timeline-buffer.js +237 -0
- package/dist/telemetry/timeline-buffer.js.map +1 -0
- package/dist/telemetry/tracing.d.ts +9 -0
- package/dist/telemetry/tracing.d.ts.map +1 -1
- package/dist/telemetry/tracing.js +36 -0
- package/dist/telemetry/tracing.js.map +1 -1
- package/dist/types/dsl/index.d.ts +11 -0
- package/dist/types/dsl/index.d.ts.map +1 -1
- package/dist/types/scanner.d.ts +15 -0
- package/dist/types/scanner.d.ts.map +1 -1
- package/dist/types/strategy.d.ts +5 -1
- package/dist/types/strategy.d.ts.map +1 -1
- package/dist/utils/event-catalog.d.ts +166 -0
- package/dist/utils/event-catalog.d.ts.map +1 -1
- package/dist/utils/event-catalog.js +18 -0
- package/dist/utils/event-catalog.js.map +1 -1
- package/dist/utils/logger.d.ts +4 -1
- package/dist/utils/logger.d.ts.map +1 -1
- package/dist/utils/logger.js.map +1 -1
- package/dist/utils/telemetry-required-log.d.ts +27 -0
- package/dist/utils/telemetry-required-log.d.ts.map +1 -0
- package/dist/utils/telemetry-required-log.js +68 -0
- package/dist/utils/telemetry-required-log.js.map +1 -0
- package/dist/utils/ulid.d.ts +9 -0
- package/dist/utils/ulid.d.ts.map +1 -0
- package/dist/utils/ulid.js +43 -0
- package/dist/utils/ulid.js.map +1 -0
- package/dist/validate/recipe-checks.d.ts.map +1 -1
- package/dist/validate/recipe-checks.js +2 -2
- package/dist/validate/recipe-checks.js.map +1 -1
- package/openclaw.plugin.json +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-monitor.js","sourceRoot":"","sources":["../../../src/dsl/monitor/create-monitor.ts"],"names":[],"mappings":"AAAA;;GAEG;AAQH,OAAO,EACL,oBAAoB,EACpB,2BAA2B,GAC5B,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AACtD,OAAO,EAAE,0BAA0B,EAAE,MAAM,mCAAmC,CAAC;AAC/E,OAAO,EAAE,yBAAyB,EAAE,MAAM,kCAAkC,CAAC;AAC7E,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAG9D,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAA8B,MAAM,2BAA2B,CAAC;AAgC3F,SAAS,MAAM;IACb,OAAO,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;AAClC,CAAC;AAED,MAAM,UAAU,6CAA6C,CAC3D,OAAiD;IAEjD,OAAO,OAAO;SACX,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC;SACvC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AAChC,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,OAA4B;IAC7D,MAAM,EAAE,YAAY,EAAE,WAAW,EAAE,GAAG,EAAE,cAAc,EAAE,uBAAuB,EAAE,cAAc,EAAE,wBAAwB,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,GAAG,OAAO,CAAC;IAElM,4FAA4F;IAC5F,0FAA0F;IAC1F,uEAAuE;IACvE,MAAM,aAAa,GAAG,OAAO,CAAC,QAAQ,CAAC;IACvC,IAAI,QAAsC,CAAC;IAC3C,IAAI,gBAAgB,GAAG,KAAK,CAAC;IAC7B,SAAS,eAAe;QACtB,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACtB,gBAAgB,GAAG,IAAI,CAAC;YACxB,IAAI,CAAC;gBACH,QAAQ,GAAG,aAAa,EAAE,EAAE,CAAC;YAC/B,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,CAAC,IAAI,CAAC,6DAA6D,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;YACtF,CAAC;QACH,CAAC;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,KAAK,UAAU,IAAI;QACjB,MAAM,QAAQ,CAAC,UAAU,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;YAC5C,MAAM,EAAE,GAAG,eAAe,EAAE,CAAC;YAC7B,IAAI,EAAE;gBAAE,MAAM,0BAA0B,CAAC,EAAE,CAAC,CAAC;YAC7C,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;QACtB,CAAC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,UAAU,OAAO,CAAC,IAAU;QAC/B,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC/B,MAAM,MAAM,GAAG,
|
|
1
|
+
{"version":3,"file":"create-monitor.js","sourceRoot":"","sources":["../../../src/dsl/monitor/create-monitor.ts"],"names":[],"mappings":"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"}
|
|
@@ -21,6 +21,8 @@ export interface DslFailureContext {
|
|
|
21
21
|
dex?: string;
|
|
22
22
|
/** The cross-flow position id (`positionId ?? correlationId`); absent on a pre-id position. */
|
|
23
23
|
positionId?: string;
|
|
24
|
+
/** The monitor tick that hit the failure; absent when no tick is behind the build. */
|
|
25
|
+
tickId?: string;
|
|
24
26
|
}
|
|
25
27
|
/** Which handoff step degraded — the discriminator on a `dsl.handoff_failed` event. */
|
|
26
28
|
export type HandoffFailure = "register" | "rollback" | "poll";
|
|
@@ -1 +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;
|
|
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;IACpB,sFAAsF;IACtF,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,uFAAuF;AACvF,MAAM,MAAM,cAAc,GAAG,UAAU,GAAG,UAAU,GAAG,MAAM,CAAC;AAiB9D,+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"}
|
|
@@ -13,12 +13,13 @@
|
|
|
13
13
|
* events, so it is not passed here.
|
|
14
14
|
*/
|
|
15
15
|
import { EVENT_NAME, eventAttrs } from "../../utils/event-catalog.js";
|
|
16
|
-
/** The id/asset/dex attributes every DSL failure event carries. */
|
|
16
|
+
/** The id/asset/dex and tick attributes every DSL failure event carries. */
|
|
17
17
|
function baseAttrs(ctx) {
|
|
18
18
|
return {
|
|
19
19
|
"senpi.asset": ctx.asset,
|
|
20
20
|
"senpi.dex": ctx.dex || undefined,
|
|
21
21
|
"senpi.position.id": ctx.positionId,
|
|
22
|
+
"senpi.tick.id": ctx.tickId,
|
|
22
23
|
};
|
|
23
24
|
}
|
|
24
25
|
/** An exchange SL create/update (`editPosition`) threw — the stop the venue never received. */
|
|
@@ -1 +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;
|
|
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;AAiBrF,4EAA4E;AAC5E,SAAS,SAAS,CAAC,GAAsB;IAMvC,OAAO;QACL,aAAa,EAAE,GAAG,CAAC,KAAK;QACxB,WAAW,EAAE,GAAG,CAAC,GAAG,IAAI,SAAS;QACjC,mBAAmB,EAAE,GAAG,CAAC,UAAU;QACnC,eAAe,EAAE,GAAG,CAAC,MAAM;KAC5B,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"}
|
|
@@ -17,6 +17,7 @@ export declare function closeReasonContext(closeReason: string, s: DslState): {
|
|
|
17
17
|
closePeakRoe?: number;
|
|
18
18
|
};
|
|
19
19
|
export interface MonitorProcessContext {
|
|
20
|
+
/** The id for this tick — a ULID, one per `runTick`, on its log lines, events and spans. */
|
|
20
21
|
tickId: string;
|
|
21
22
|
ts: string;
|
|
22
23
|
now: () => string;
|
|
@@ -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,
|
|
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,EAAkB,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACzE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAqBzD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAiB/C;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAChC,WAAW,EAAE,MAAM,EACnB,CAAC,EAAE,QAAQ,GACV;IAAE,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,CAAA;CAAE,CAYvD;AAuGD,MAAM,WAAW,qBAAqB;IACpC,4FAA4F;IAC5F,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,CA8wBf"}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Per-position work for one monitor tick: SL fill check, pending close, dslTick, exchange sync.
|
|
3
3
|
*/
|
|
4
4
|
import { dslTick, exchangeStopLossTriggerPx } from "../engine/index.js";
|
|
5
|
-
import { CLOSE_REASON, MAX_CONSECUTIVE_CLOSE_FAILURES, DSL_EXTERNAL_RETRIES, DSL_EXTERNAL_RETRY_DELAY_MS, DSL_EVENTS, EVENTS, DSL_PRICE_FETCH_FAILURE_WARN_THRESHOLD, DSL_HEARTBEAT_FIRST_HOUR_MS, DSL_HEARTBEAT_INTERVAL_MS, DSL_HEARTBEAT_TIER_SUPPRESS_MS, } from "../../constants/dsl/index.js";
|
|
5
|
+
import { CLOSE_REASON, MAX_CONSECUTIVE_CLOSE_FAILURES, DSL_EXTERNAL_RETRIES, DSL_EXTERNAL_RETRY_DELAY_MS, DSL_HANDOFF_SL_STATUS_TIMEOUT_MS, DSL_EVENTS, EVENTS, DSL_PRICE_FETCH_FAILURE_WARN_THRESHOLD, DSL_HEARTBEAT_FIRST_HOUR_MS, DSL_HEARTBEAT_INTERVAL_MS, DSL_HEARTBEAT_TIER_SUPPRESS_MS, } from "../../constants/dsl/index.js";
|
|
6
6
|
import { logger } from "../../utils/logger/dsl.js";
|
|
7
7
|
import { withRetry } from "../../utils/retry.js";
|
|
8
8
|
import { isRetriableMcpError } from "../../senpi/client.js";
|
|
@@ -16,6 +16,7 @@ import { mapBackendEventToBusEvent } from "../engine-client/event-mapping.js";
|
|
|
16
16
|
import { buildDslClosedEventFromState } from "../events/build-closed-event.js";
|
|
17
17
|
import { parseCloseFillDetail } from "../../senpi/client.js";
|
|
18
18
|
import { emitEvent } from "../../actions/event-derivation.js";
|
|
19
|
+
import { PAYLOAD_KEY } from "../../utils/event-catalog.js";
|
|
19
20
|
import { buildSlSyncFailedEvent, buildPriceFetchStaleEvent, buildHandoffFailedEvent, } from "./dsl-failure-events.js";
|
|
20
21
|
/**
|
|
21
22
|
* Structured close-reason context forwarded with a DSL-cut close (notifications 2.3):
|
|
@@ -77,23 +78,35 @@ async function setIfStillActive(stateManager, key, address, asset, buildNext, ct
|
|
|
77
78
|
});
|
|
78
79
|
}
|
|
79
80
|
/**
|
|
80
|
-
* Telemetry stamps
|
|
81
|
-
*
|
|
82
|
-
* no consumer branches on these
|
|
83
|
-
* post-hoc lifecycle correlation.
|
|
81
|
+
* Telemetry stamps every emit out of the monitor carries: the cross-flow position.id, the tick that
|
|
82
|
+
* produced the emit, and — on the `dsl.*` events, whose consumers read it — who moved the stop.
|
|
83
|
+
* Data-only; no consumer branches on these.
|
|
84
84
|
*/
|
|
85
|
-
function
|
|
85
|
+
function emitStamps(state, tickId, source) {
|
|
86
86
|
return {
|
|
87
87
|
__positionId: state.positionId ?? state.correlationId,
|
|
88
|
+
[PAYLOAD_KEY.tickId]: tickId,
|
|
89
|
+
...(source !== undefined ? { __dslSource: source } : {}),
|
|
90
|
+
};
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Stamps for a flat POSITION_CLOSED emit: {@link emitStamps} plus the closing-order fill detail when
|
|
94
|
+
* a close response (or SL order id) is available. The venue `orderId` is the fills-ledger join key
|
|
95
|
+
* for post-hoc lifecycle correlation. No source: the lifecycle record has no field for it.
|
|
96
|
+
*/
|
|
97
|
+
function closedEmitStamps(state, tickId, fill = {}) {
|
|
98
|
+
return {
|
|
99
|
+
...emitStamps(state, tickId),
|
|
88
100
|
...fill,
|
|
89
101
|
};
|
|
90
102
|
}
|
|
91
103
|
/** The position identity a DSL failure event pins onto its record. */
|
|
92
|
-
function failureContext(state) {
|
|
104
|
+
function failureContext(state, tickId) {
|
|
93
105
|
return {
|
|
94
106
|
asset: state.asset,
|
|
95
107
|
dex: state.dex || undefined,
|
|
96
108
|
positionId: state.positionId ?? state.correlationId,
|
|
109
|
+
tickId,
|
|
97
110
|
};
|
|
98
111
|
}
|
|
99
112
|
export async function processOnePosition(ctx, key, state, price, span) {
|
|
@@ -151,13 +164,15 @@ export async function processOnePosition(ctx, key, state, price, span) {
|
|
|
151
164
|
reason: CLOSE_REASON.EXCHANGE_SL_HIT,
|
|
152
165
|
closeReason: CLOSE_REASON.EXCHANGE_SL_HIT,
|
|
153
166
|
// The closing order IS the exchange SL order — its id joins the closing fill.
|
|
154
|
-
...closedEmitStamps(state, state.slOrderId != null ? { orderId: String(state.slOrderId) } : {}),
|
|
167
|
+
...closedEmitStamps(state, tickId, state.slOrderId != null ? { orderId: String(state.slOrderId) } : {}),
|
|
155
168
|
timestamp: ts,
|
|
156
169
|
});
|
|
157
170
|
bus.emit(DSL_EVENTS.CLOSED, buildDslClosedEventFromState(closedState, {
|
|
158
171
|
reason: CLOSE_REASON.EXCHANGE_SL_HIT,
|
|
159
172
|
closeReason: CLOSE_REASON.EXCHANGE_SL_HIT,
|
|
160
173
|
timestamp: ts,
|
|
174
|
+
tickId,
|
|
175
|
+
source: "runtime",
|
|
161
176
|
}));
|
|
162
177
|
return;
|
|
163
178
|
}
|
|
@@ -212,13 +227,15 @@ export async function processOnePosition(ctx, key, state, price, span) {
|
|
|
212
227
|
wallet: state.wallet,
|
|
213
228
|
reason: closeReasonToUse,
|
|
214
229
|
closeReason: closeReasonToUse,
|
|
215
|
-
...closedEmitStamps(state, closeFill),
|
|
230
|
+
...closedEmitStamps(state, tickId, closeFill),
|
|
216
231
|
timestamp: ts,
|
|
217
232
|
});
|
|
218
233
|
bus.emit(DSL_EVENTS.CLOSED, buildDslClosedEventFromState(closedState, {
|
|
219
234
|
reason: closeReasonToUse,
|
|
220
235
|
closeReason: closeReasonToUse,
|
|
221
236
|
timestamp: ts,
|
|
237
|
+
tickId,
|
|
238
|
+
source: "runtime",
|
|
222
239
|
}));
|
|
223
240
|
}
|
|
224
241
|
catch (e) {
|
|
@@ -237,13 +254,15 @@ export async function processOnePosition(ctx, key, state, price, span) {
|
|
|
237
254
|
wallet: state.wallet,
|
|
238
255
|
reason: "error",
|
|
239
256
|
closeReason: CLOSE_REASON.CLOSE_POSITION_FAILED,
|
|
240
|
-
...closedEmitStamps(state),
|
|
257
|
+
...closedEmitStamps(state, tickId),
|
|
241
258
|
timestamp: isoNow(),
|
|
242
259
|
});
|
|
243
260
|
bus.emit(DSL_EVENTS.CLOSED, buildDslClosedEventFromState(failedCloseState, {
|
|
244
261
|
reason: "error",
|
|
245
262
|
closeReason: CLOSE_REASON.CLOSE_POSITION_FAILED,
|
|
246
263
|
timestamp: isoNow(),
|
|
264
|
+
tickId,
|
|
265
|
+
source: "runtime",
|
|
247
266
|
}));
|
|
248
267
|
}
|
|
249
268
|
else {
|
|
@@ -253,7 +272,7 @@ export async function processOnePosition(ctx, key, state, price, span) {
|
|
|
253
272
|
asset: state.asset,
|
|
254
273
|
attempt: next.consecutiveCloseFailures,
|
|
255
274
|
triggerReason: state.triggerReason,
|
|
256
|
-
|
|
275
|
+
...emitStamps(state, tickId, "runtime"),
|
|
257
276
|
timestamp: isoNow(),
|
|
258
277
|
});
|
|
259
278
|
}
|
|
@@ -278,7 +297,7 @@ export async function processOnePosition(ctx, key, state, price, span) {
|
|
|
278
297
|
...(shouldEmitStale ? { priceFetchStaleEmitted: true } : {}),
|
|
279
298
|
}), { tickId, skipMessage: "[dsl] skip no-price counter write: state already cleared (concurrent close)" });
|
|
280
299
|
if (shouldEmitStale) {
|
|
281
|
-
emitEvent(logger, () => buildPriceFetchStaleEvent(failureContext(state), next.consecutiveFetchFailures));
|
|
300
|
+
emitEvent(logger, () => buildPriceFetchStaleEvent(failureContext(state, tickId), next.consecutiveFetchFailures));
|
|
282
301
|
recordDslDegradation({ failure: "price_stale" });
|
|
283
302
|
}
|
|
284
303
|
logger.info("[dsl] monitor no price for position, skipping dslTick", {
|
|
@@ -427,13 +446,15 @@ export async function processOnePosition(ctx, key, state, price, span) {
|
|
|
427
446
|
wallet: state.wallet,
|
|
428
447
|
reason: "error",
|
|
429
448
|
closeReason: CLOSE_REASON.CLOSE_POSITION_FAILED,
|
|
430
|
-
...closedEmitStamps(state),
|
|
449
|
+
...closedEmitStamps(state, tickId),
|
|
431
450
|
timestamp: isoNow(),
|
|
432
451
|
});
|
|
433
452
|
bus.emit(DSL_EVENTS.CLOSED, buildDslClosedEventFromState(failedCloseState, {
|
|
434
453
|
reason: "error",
|
|
435
454
|
closeReason: CLOSE_REASON.CLOSE_POSITION_FAILED,
|
|
436
455
|
timestamp: isoNow(),
|
|
456
|
+
tickId,
|
|
457
|
+
source: "runtime",
|
|
437
458
|
}));
|
|
438
459
|
}
|
|
439
460
|
else {
|
|
@@ -443,7 +464,7 @@ export async function processOnePosition(ctx, key, state, price, span) {
|
|
|
443
464
|
asset: state.asset,
|
|
444
465
|
attempt: pending.consecutiveCloseFailures,
|
|
445
466
|
triggerReason: state.triggerReason,
|
|
446
|
-
|
|
467
|
+
...emitStamps(state, tickId, "runtime"),
|
|
447
468
|
timestamp: isoNow(),
|
|
448
469
|
});
|
|
449
470
|
}
|
|
@@ -465,13 +486,15 @@ export async function processOnePosition(ctx, key, state, price, span) {
|
|
|
465
486
|
wallet: state.wallet,
|
|
466
487
|
reason: closeReasonToUse,
|
|
467
488
|
closeReason: closeReasonToUse,
|
|
468
|
-
...closedEmitStamps(state, closeFill),
|
|
489
|
+
...closedEmitStamps(state, tickId, closeFill),
|
|
469
490
|
timestamp: ts,
|
|
470
491
|
});
|
|
471
492
|
bus.emit(DSL_EVENTS.CLOSED, buildDslClosedEventFromState(closedState, {
|
|
472
493
|
reason: closeReasonToUse,
|
|
473
494
|
closeReason: closeReasonToUse,
|
|
474
495
|
timestamp: ts,
|
|
496
|
+
tickId,
|
|
497
|
+
source: "runtime",
|
|
475
498
|
}));
|
|
476
499
|
return;
|
|
477
500
|
}
|
|
@@ -491,7 +514,7 @@ export async function processOnePosition(ctx, key, state, price, span) {
|
|
|
491
514
|
triggerPct: tier.triggerPct,
|
|
492
515
|
newFloorPrice: dslEffectiveFloor,
|
|
493
516
|
triggerReason: next.triggerReason,
|
|
494
|
-
|
|
517
|
+
...emitStamps(next, tickId, "runtime"),
|
|
495
518
|
timestamp: ts,
|
|
496
519
|
direction: next.direction,
|
|
497
520
|
entryPrice: next.entryPrice,
|
|
@@ -521,7 +544,7 @@ export async function processOnePosition(ctx, key, state, price, span) {
|
|
|
521
544
|
phase: result.newPhase ?? 2,
|
|
522
545
|
tierIndex: result.newTierIndex ?? 0,
|
|
523
546
|
triggerReason: next.triggerReason,
|
|
524
|
-
|
|
547
|
+
...emitStamps(next, tickId, "runtime"),
|
|
525
548
|
timestamp: ts,
|
|
526
549
|
});
|
|
527
550
|
}
|
|
@@ -635,7 +658,7 @@ export async function processOnePosition(ctx, key, state, price, span) {
|
|
|
635
658
|
newSLPrice: exchangeTriggerPx,
|
|
636
659
|
slOrderId: synced.slOrderId ?? 0,
|
|
637
660
|
triggerReason: synced.triggerReason,
|
|
638
|
-
|
|
661
|
+
...emitStamps(synced, tickId, "runtime"),
|
|
639
662
|
direction: synced.direction,
|
|
640
663
|
// Stop-raise copy inputs: position leverage, the high-water price behind
|
|
641
664
|
// the raise ("new high …"), and entry price (leverage + entry → the
|
|
@@ -661,7 +684,7 @@ export async function processOnePosition(ctx, key, state, price, span) {
|
|
|
661
684
|
}, { tickId, skipMessage: "[dsl] skip SL sync-failure write: state no longer active (concurrent close)" });
|
|
662
685
|
if (syncFailureCount == null)
|
|
663
686
|
return;
|
|
664
|
-
emitEvent(logger, () => buildSlSyncFailedEvent(failureContext(state), syncFailureCount ?? 0, e));
|
|
687
|
+
emitEvent(logger, () => buildSlSyncFailedEvent(failureContext(state, tickId), syncFailureCount ?? 0, e));
|
|
665
688
|
recordDslDegradation({ failure: "sl_sync", errorType: errorTypeOf(e) });
|
|
666
689
|
}
|
|
667
690
|
}
|
|
@@ -694,7 +717,7 @@ export async function processOnePosition(ctx, key, state, price, span) {
|
|
|
694
717
|
currentTierIndex: hbState.currentTierIndex,
|
|
695
718
|
elapsedMinutes: hbState.elapsedMinutes,
|
|
696
719
|
triggerReason: hbState.triggerReason,
|
|
697
|
-
|
|
720
|
+
...emitStamps(hbState, tickId, "runtime"),
|
|
698
721
|
margin: hbState.leverage > 0
|
|
699
722
|
? (hbState.size * hbState.entryPrice) / hbState.leverage
|
|
700
723
|
: 0,
|
|
@@ -716,13 +739,22 @@ const BACKEND_TERMINAL_STATUSES = new Set([
|
|
|
716
739
|
"ADL",
|
|
717
740
|
"DELETED",
|
|
718
741
|
]);
|
|
742
|
+
/**
|
|
743
|
+
* Venue statuses that mean the backend's stop is still protecting the position.
|
|
744
|
+
*
|
|
745
|
+
* Must stay in step with the backend's `classifySLOrderStatus`
|
|
746
|
+
* (dsl-engine `pkg/service/sl_order_status.go`), which treats both as live: a `triggered`
|
|
747
|
+
* stop is mid-execution, so calling it dead here would have the runtime place its own stop
|
|
748
|
+
* on top of one that is already firing.
|
|
749
|
+
*/
|
|
750
|
+
const LIVE_VENUE_SL_STATUSES = new Set(["open", "triggered"]);
|
|
719
751
|
/**
|
|
720
752
|
* A Phase-2 handoff is only "ok" once the backend's exchange stop-loss is resting
|
|
721
753
|
* on the venue. A numeric activeSLOrderId is not enough: the backend can accept a
|
|
722
754
|
* position without arming a stop (MA-3), and after a ratchet stop fills and the
|
|
723
755
|
* strategy re-enters it can keep the ratchet ACTIVE while activeSLOrderId still
|
|
724
756
|
* names the filled stop. Adopting that leaves the new position with no stop at all,
|
|
725
|
-
* so the id must resolve to
|
|
757
|
+
* so the id must resolve to a live order. Any other status, or a failed lookup,
|
|
726
758
|
* keeps the handoff "pending" and the runtime keeps managing the SL itself.
|
|
727
759
|
*/
|
|
728
760
|
async function backendHasLiveSl(pos, strategy, tickId, asset) {
|
|
@@ -730,12 +762,12 @@ async function backendHasLiveSl(pos, strategy, tickId, asset) {
|
|
|
730
762
|
if (slOrderId == null)
|
|
731
763
|
return false;
|
|
732
764
|
try {
|
|
733
|
-
const status = await withRetry(() => strategy.getOrderStatus(slOrderId), {
|
|
765
|
+
const status = await withRetry(() => strategy.getOrderStatus(slOrderId, { timeoutMs: DSL_HANDOFF_SL_STATUS_TIMEOUT_MS }), {
|
|
734
766
|
retries: DSL_EXTERNAL_RETRIES,
|
|
735
767
|
delayMs: DSL_EXTERNAL_RETRY_DELAY_MS,
|
|
736
768
|
label: "getOrderStatus (handoff live-SL check)",
|
|
737
769
|
});
|
|
738
|
-
if (status?.status
|
|
770
|
+
if (status?.status != null && LIVE_VENUE_SL_STATUSES.has(status.status))
|
|
739
771
|
return true;
|
|
740
772
|
logger.warn("[dsl] backend ratchet names an exchange SL that is not resting on the venue", {
|
|
741
773
|
tickId,
|
|
@@ -858,7 +890,7 @@ async function attemptHandoffRegistration(ctx, key, next, _original, strategy) {
|
|
|
858
890
|
});
|
|
859
891
|
}
|
|
860
892
|
else {
|
|
861
|
-
emitEvent(logger, () => buildHandoffFailedEvent(failureContext(next), {
|
|
893
|
+
emitEvent(logger, () => buildHandoffFailedEvent(failureContext(next, tickId), {
|
|
862
894
|
failure: "register",
|
|
863
895
|
redact: { result: JSON.stringify(result).slice(0, 800) },
|
|
864
896
|
}));
|
|
@@ -866,7 +898,7 @@ async function attemptHandoffRegistration(ctx, key, next, _original, strategy) {
|
|
|
866
898
|
}
|
|
867
899
|
}
|
|
868
900
|
catch (e) {
|
|
869
|
-
emitEvent(logger, () => buildHandoffFailedEvent(failureContext(next), { failure: "register", error: e }));
|
|
901
|
+
emitEvent(logger, () => buildHandoffFailedEvent(failureContext(next, tickId), { failure: "register", error: e }));
|
|
870
902
|
recordDslDegradation({ failure: "handoff", handoffFailure: "register", errorType: errorTypeOf(e) });
|
|
871
903
|
}
|
|
872
904
|
}
|
|
@@ -889,7 +921,7 @@ async function handleHandoffOk(ctx, key, next, original, strategy, span) {
|
|
|
889
921
|
? positions.filter((p) => !BACKEND_TERMINAL_STATUSES.has(p.status))[0]
|
|
890
922
|
: null;
|
|
891
923
|
if (!backendPos) {
|
|
892
|
-
emitEvent(logger, () => buildHandoffFailedEvent(failureContext(original), {
|
|
924
|
+
emitEvent(logger, () => buildHandoffFailedEvent(failureContext(original, tickId), {
|
|
893
925
|
failure: "rollback",
|
|
894
926
|
backendPositionId: next.backendDslPositionId ?? undefined,
|
|
895
927
|
}));
|
|
@@ -929,13 +961,15 @@ async function handleHandoffOk(ctx, key, next, original, strategy, span) {
|
|
|
929
961
|
reason: closeReason,
|
|
930
962
|
closeReason,
|
|
931
963
|
// Backend-driven close: the closing order id is not locally verifiable — stamp ids only.
|
|
932
|
-
...closedEmitStamps(updated),
|
|
964
|
+
...closedEmitStamps(updated, tickId),
|
|
933
965
|
timestamp: ts,
|
|
934
966
|
});
|
|
935
967
|
bus.emit(DSL_EVENTS.CLOSED, buildDslClosedEventFromState(closedState, {
|
|
936
968
|
reason: closeReason,
|
|
937
969
|
closeReason,
|
|
938
970
|
timestamp: ts,
|
|
971
|
+
tickId,
|
|
972
|
+
source: "backend",
|
|
939
973
|
}));
|
|
940
974
|
return;
|
|
941
975
|
}
|
|
@@ -944,7 +978,7 @@ async function handleHandoffOk(ctx, key, next, original, strategy, span) {
|
|
|
944
978
|
}
|
|
945
979
|
}
|
|
946
980
|
catch (e) {
|
|
947
|
-
emitEvent(logger, () => buildHandoffFailedEvent(failureContext(original), {
|
|
981
|
+
emitEvent(logger, () => buildHandoffFailedEvent(failureContext(original, tickId), {
|
|
948
982
|
failure: "poll",
|
|
949
983
|
backendPositionId: next.backendDslPositionId ?? undefined,
|
|
950
984
|
error: e,
|
|
@@ -1014,11 +1048,20 @@ async function handleHandoffOk(ctx, key, next, original, strategy, span) {
|
|
|
1014
1048
|
const minClosed = mapped.eventName === DSL_EVENTS.CLOSED
|
|
1015
1049
|
? mapped.payload
|
|
1016
1050
|
: null;
|
|
1051
|
+
if (minClosed == null) {
|
|
1052
|
+
// Single-owner payload: mapBackendEventToBusEvent built this object for this emit and
|
|
1053
|
+
// nothing else holds a reference to it, so the tick stamp goes on in place — cloning
|
|
1054
|
+
// it once per backend event buys nothing.
|
|
1055
|
+
mapped.payload[PAYLOAD_KEY.tickId] = tickId;
|
|
1056
|
+
}
|
|
1017
1057
|
const emitPayload = minClosed != null
|
|
1018
1058
|
? buildDslClosedEventFromState(updated, {
|
|
1019
1059
|
reason: minClosed.reason,
|
|
1020
1060
|
closeReason: minClosed.closeReason,
|
|
1021
1061
|
timestamp: minClosed.timestamp,
|
|
1062
|
+
tickId,
|
|
1063
|
+
source: "backend",
|
|
1064
|
+
backendEventAt: minClosed.__backendEventAt,
|
|
1022
1065
|
})
|
|
1023
1066
|
: mapped.payload;
|
|
1024
1067
|
bus.emit(mapped.eventName, emitPayload);
|
|
@@ -1065,7 +1108,7 @@ async function handleHandoffOk(ctx, key, next, original, strategy, span) {
|
|
|
1065
1108
|
reason: closeReason,
|
|
1066
1109
|
closeReason,
|
|
1067
1110
|
// Backend-driven close: the closing order id is not locally verifiable — stamp ids only.
|
|
1068
|
-
...closedEmitStamps(updated),
|
|
1111
|
+
...closedEmitStamps(updated, tickId),
|
|
1069
1112
|
timestamp: ts,
|
|
1070
1113
|
});
|
|
1071
1114
|
return;
|