@senpi/runtime 3.0.6-dev.skill-manager-v2.20260629194505 → 3.0.9-dev.runtime-phase-2.20260707070820
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 +67 -0
- package/dist/actions/action-events.d.ts.map +1 -0
- package/dist/actions/action-events.js +164 -0
- package/dist/actions/action-events.js.map +1 -0
- package/dist/actions/close-position/close-position.action.d.ts +1 -1
- package/dist/actions/close-position/close-position.action.d.ts.map +1 -1
- package/dist/actions/close-position/close-position.action.js +108 -86
- 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 +40 -28
- package/dist/actions/decision-engine.js.map +1 -1
- package/dist/actions/event-derivation.d.ts +61 -0
- package/dist/actions/event-derivation.d.ts.map +1 -0
- package/dist/actions/event-derivation.js +180 -0
- package/dist/actions/event-derivation.js.map +1 -0
- package/dist/actions/llm-decision/anthropic-llm-decision.d.ts +5 -9
- package/dist/actions/llm-decision/anthropic-llm-decision.d.ts.map +1 -1
- package/dist/actions/llm-decision/anthropic-llm-decision.js +6 -87
- package/dist/actions/llm-decision/anthropic-llm-decision.js.map +1 -1
- package/dist/actions/llm-decision/factory.d.ts +0 -6
- package/dist/actions/llm-decision/factory.d.ts.map +1 -1
- package/dist/actions/llm-decision/factory.js +0 -2
- package/dist/actions/llm-decision/factory.js.map +1 -1
- package/dist/actions/llm-decision/openclaw-llm-decision.d.ts.map +1 -1
- package/dist/actions/llm-decision/openclaw-llm-decision.js +26 -7
- package/dist/actions/llm-decision/openclaw-llm-decision.js.map +1 -1
- package/dist/actions/open-position/open-position.action.d.ts +1 -1
- package/dist/actions/open-position/open-position.action.d.ts.map +1 -1
- package/dist/actions/open-position/open-position.action.js +282 -224
- 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 +3 -6
- package/dist/actions/position-tracker/position-tracker.action.js.map +1 -1
- package/dist/cli/guide-commands.d.ts.map +1 -1
- package/dist/cli/guide-commands.js +61 -0
- package/dist/cli/guide-commands.js.map +1 -1
- package/dist/cli/senpi-commands.d.ts +14 -0
- package/dist/cli/senpi-commands.d.ts.map +1 -1
- package/dist/cli/senpi-commands.js +390 -2
- package/dist/cli/senpi-commands.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/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/create-monitor.d.ts +3 -0
- package/dist/dsl/monitor/create-monitor.d.ts.map +1 -1
- package/dist/dsl/monitor/create-monitor.js +76 -58
- package/dist/dsl/monitor/create-monitor.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 +2 -1
- package/dist/dsl/monitor/process-one-position.d.ts.map +1 -1
- package/dist/dsl/monitor/process-one-position.js +130 -196
- package/dist/dsl/monitor/process-one-position.js.map +1 -1
- package/dist/dsl/plugin/index.d.ts +10 -0
- package/dist/dsl/plugin/index.d.ts.map +1 -1
- package/dist/dsl/plugin/index.js +48 -4
- package/dist/dsl/plugin/index.js.map +1 -1
- package/dist/dsl/plugin/options.d.ts +3 -0
- package/dist/dsl/plugin/options.d.ts.map +1 -1
- package/dist/health/types.d.ts +14 -0
- package/dist/health/types.d.ts.map +1 -1
- package/dist/health/types.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +255 -77
- package/dist/index.js.map +1 -1
- package/dist/risk/risk-audit-log.d.ts +7 -0
- package/dist/risk/risk-audit-log.d.ts.map +1 -1
- package/dist/risk/risk-audit-log.js +48 -1
- package/dist/risk/risk-audit-log.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/auto-update/coordinator.js +2 -2
- package/dist/runtime/auto-update/coordinator.js.map +1 -1
- package/dist/runtime/create-actions.d.ts.map +1 -1
- package/dist/runtime/create-actions.js +40 -15
- package/dist/runtime/create-actions.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 +2 -1
- package/dist/runtime/create-scanner-module.d.ts.map +1 -1
- package/dist/runtime/create-scanner-module.js +2 -1
- package/dist/runtime/create-scanner-module.js.map +1 -1
- package/dist/runtime/domain-events.d.ts +43 -0
- package/dist/runtime/domain-events.d.ts.map +1 -0
- package/dist/runtime/domain-events.js +181 -0
- package/dist/runtime/domain-events.js.map +1 -0
- package/dist/runtime/lifecycle-events.d.ts +86 -0
- package/dist/runtime/lifecycle-events.d.ts.map +1 -0
- package/dist/runtime/lifecycle-events.js +200 -0
- package/dist/runtime/lifecycle-events.js.map +1 -0
- package/dist/runtime/notifications.js +2 -2
- package/dist/runtime/notifications.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 +276 -588
- package/dist/runtime/runtime-schema.d.ts.map +1 -1
- package/dist/runtime/runtime-schema.js +8 -28
- package/dist/runtime/runtime-schema.js.map +1 -1
- package/dist/runtime/runtime.d.ts +23 -9
- package/dist/runtime/runtime.d.ts.map +1 -1
- package/dist/runtime/runtime.js +276 -248
- package/dist/runtime/runtime.js.map +1 -1
- package/dist/runtime/strategy-lifecycle.d.ts.map +1 -1
- package/dist/runtime/strategy-lifecycle.js +13 -1
- package/dist/runtime/strategy-lifecycle.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/scanner-registry.d.ts +3 -0
- package/dist/runtime-api/intake/scanner-registry.d.ts.map +1 -1
- package/dist/runtime-api/intake/scanner-registry.js +3 -0
- package/dist/runtime-api/intake/scanner-registry.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 +1 -1
- package/dist/runtime-api/routes/signals.d.ts.map +1 -1
- package/dist/runtime-api/routes/signals.js +121 -35
- 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/data-providers.d.ts +3 -0
- package/dist/scanners/engine/data-providers.d.ts.map +1 -1
- package/dist/scanners/engine/data-providers.js.map +1 -1
- package/dist/scanners/engine/engine.d.ts +18 -0
- package/dist/scanners/engine/engine.d.ts.map +1 -1
- package/dist/scanners/engine/engine.js +96 -2
- package/dist/scanners/engine/engine.js.map +1 -1
- package/dist/scanners/engine/input-resolver.d.ts.map +1 -1
- package/dist/scanners/engine/input-resolver.js +9 -7
- package/dist/scanners/engine/input-resolver.js.map +1 -1
- package/dist/scanners/runtime-module.d.ts +3 -0
- package/dist/scanners/runtime-module.d.ts.map +1 -1
- package/dist/scanners/runtime-module.js +7 -0
- package/dist/scanners/runtime-module.js.map +1 -1
- package/dist/senpi/client.d.ts +10 -0
- package/dist/senpi/client.d.ts.map +1 -1
- package/dist/senpi/client.js +113 -46
- package/dist/senpi/client.js.map +1 -1
- package/dist/skills-manager/bootstrap.d.ts.map +1 -1
- package/dist/skills-manager/bootstrap.js +22 -33
- package/dist/skills-manager/bootstrap.js.map +1 -1
- package/dist/skills-manager/clone-groups.d.ts +20 -0
- package/dist/skills-manager/clone-groups.d.ts.map +1 -0
- package/dist/skills-manager/clone-groups.js +45 -0
- package/dist/skills-manager/clone-groups.js.map +1 -0
- package/dist/skills-manager/coordinator.d.ts.map +1 -1
- package/dist/skills-manager/coordinator.js +111 -75
- package/dist/skills-manager/coordinator.js.map +1 -1
- package/dist/skills-manager/manifest.d.ts +24 -0
- package/dist/skills-manager/manifest.d.ts.map +1 -1
- package/dist/skills-manager/manifest.js +23 -10
- package/dist/skills-manager/manifest.js.map +1 -1
- package/dist/skills-manager/skills-manifest.json +12 -7
- package/dist/skills-manager/types.d.ts +12 -0
- package/dist/skills-manager/types.d.ts.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/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 +12 -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} +145 -33
- package/dist/telemetry/event-builders.d.ts.map +1 -0
- package/dist/{recording/wiring/record-builders.js → telemetry/event-builders.js} +94 -40
- package/dist/telemetry/event-builders.js.map +1 -0
- package/dist/telemetry/event-store.d.ts +66 -0
- package/dist/telemetry/event-store.d.ts.map +1 -0
- package/dist/telemetry/event-store.js +202 -0
- package/dist/telemetry/event-store.js.map +1 -0
- package/dist/telemetry/identity.d.ts +72 -0
- package/dist/telemetry/identity.d.ts.map +1 -0
- package/dist/{recording/wiring → telemetry}/identity.js +6 -2
- package/dist/telemetry/identity.js.map +1 -0
- package/dist/telemetry/metrics.d.ts +169 -0
- package/dist/telemetry/metrics.d.ts.map +1 -0
- package/dist/telemetry/metrics.js +437 -0
- package/dist/telemetry/metrics.js.map +1 -0
- package/dist/telemetry/otel-sdk.d.ts +93 -0
- package/dist/telemetry/otel-sdk.d.ts.map +1 -0
- package/dist/telemetry/otel-sdk.js +297 -0
- package/dist/telemetry/otel-sdk.js.map +1 -0
- package/dist/telemetry/spans/constants.d.ts +12 -0
- package/dist/telemetry/spans/constants.d.ts.map +1 -0
- package/dist/telemetry/spans/constants.js +12 -0
- package/dist/telemetry/spans/constants.js.map +1 -0
- package/dist/telemetry/spans/gen-ai.d.ts +74 -0
- package/dist/telemetry/spans/gen-ai.d.ts.map +1 -0
- package/dist/telemetry/spans/gen-ai.js +339 -0
- package/dist/telemetry/spans/gen-ai.js.map +1 -0
- package/dist/telemetry/spans/index.d.ts +11 -0
- package/dist/telemetry/spans/index.d.ts.map +1 -0
- package/dist/telemetry/spans/index.js +11 -0
- package/dist/telemetry/spans/index.js.map +1 -0
- package/dist/{tracking → telemetry}/spans/redact-pii.d.ts +19 -21
- package/dist/telemetry/spans/redact-pii.d.ts.map +1 -0
- package/dist/{tracking → telemetry}/spans/redact-pii.js +35 -32
- 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 +18 -0
- package/dist/telemetry/spans/span-hooks.d.ts.map +1 -0
- package/dist/telemetry/spans/span-hooks.js +764 -0
- package/dist/telemetry/spans/span-hooks.js.map +1 -0
- 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 +32 -0
- package/dist/telemetry/trace-identity.d.ts.map +1 -0
- package/dist/telemetry/trace-identity.js +62 -0
- package/dist/telemetry/trace-identity.js.map +1 -0
- package/dist/telemetry/tracing.d.ts +33 -0
- package/dist/telemetry/tracing.d.ts.map +1 -0
- package/dist/telemetry/tracing.js +70 -0
- package/dist/telemetry/tracing.js.map +1 -0
- package/dist/types/dsl/index.d.ts +8 -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/types/scanner.d.ts +2 -0
- package/dist/types/scanner.d.ts.map +1 -1
- package/dist/utils/event-catalog.d.ts +506 -0
- package/dist/utils/event-catalog.d.ts.map +1 -0
- package/dist/utils/event-catalog.js +142 -0
- package/dist/utils/event-catalog.js.map +1 -0
- package/dist/utils/logger.d.ts +63 -5
- package/dist/utils/logger.d.ts.map +1 -1
- package/dist/utils/logger.js +360 -27
- package/dist/utils/logger.js.map +1 -1
- package/dist/utils/wallet-address.d.ts +3 -0
- package/dist/utils/wallet-address.d.ts.map +1 -0
- package/dist/utils/wallet-address.js +17 -0
- package/dist/utils/wallet-address.js.map +1 -0
- package/openclaw.plugin.json +20 -6
- package/package.json +10 -2
- package/dist/actions/tracking-helpers.d.ts +0 -28
- package/dist/actions/tracking-helpers.d.ts.map +0 -1
- package/dist/actions/tracking-helpers.js +0 -93
- 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 -35
- 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 -683
- 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 -39
- package/dist/recording/wiring/emitter-factory.d.ts.map +0 -1
- package/dist/recording/wiring/emitter-factory.js +0 -62
- 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 +0 -19
- package/dist/tracking/spans/constants.d.ts.map +0 -1
- package/dist/tracking/spans/constants.js +0 -31
- package/dist/tracking/spans/constants.js.map +0 -1
- package/dist/tracking/spans/fan-out-span-transport.d.ts +0 -22
- package/dist/tracking/spans/fan-out-span-transport.d.ts.map +0 -1
- package/dist/tracking/spans/fan-out-span-transport.js +0 -49
- package/dist/tracking/spans/fan-out-span-transport.js.map +0 -1
- package/dist/tracking/spans/index.d.ts +0 -13
- package/dist/tracking/spans/index.d.ts.map +0 -1
- package/dist/tracking/spans/index.js +0 -16
- package/dist/tracking/spans/index.js.map +0 -1
- package/dist/tracking/spans/otel/fit-row-budget.d.ts +0 -22
- package/dist/tracking/spans/otel/fit-row-budget.d.ts.map +0 -1
- package/dist/tracking/spans/otel/fit-row-budget.js +0 -91
- package/dist/tracking/spans/otel/fit-row-budget.js.map +0 -1
- package/dist/tracking/spans/otel/map-span-to-trace-row.d.ts +0 -16
- package/dist/tracking/spans/otel/map-span-to-trace-row.d.ts.map +0 -1
- package/dist/tracking/spans/otel/map-span-to-trace-row.js +0 -227
- package/dist/tracking/spans/otel/map-span-to-trace-row.js.map +0 -1
- package/dist/tracking/spans/otel/recording-span-transport.d.ts +0 -43
- package/dist/tracking/spans/otel/recording-span-transport.d.ts.map +0 -1
- package/dist/tracking/spans/otel/recording-span-transport.js +0 -67
- package/dist/tracking/spans/otel/recording-span-transport.js.map +0 -1
- package/dist/tracking/spans/otel/span-ids.d.ts +0 -22
- package/dist/tracking/spans/otel/span-ids.d.ts.map +0 -1
- package/dist/tracking/spans/otel/span-ids.js +0 -32
- package/dist/tracking/spans/otel/span-ids.js.map +0 -1
- package/dist/tracking/spans/plugin-span-tracker.d.ts +0 -9
- package/dist/tracking/spans/plugin-span-tracker.d.ts.map +0 -1
- package/dist/tracking/spans/plugin-span-tracker.js +0 -115
- package/dist/tracking/spans/plugin-span-tracker.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 +0 -28
- package/dist/tracking/spans/span-hooks.d.ts.map +0 -1
- package/dist/tracking/spans/span-hooks.js +0 -409
- package/dist/tracking/spans/span-hooks.js.map +0 -1
- package/dist/tracking/spans/span-tracker.d.ts +0 -133
- package/dist/tracking/spans/span-tracker.d.ts.map +0 -1
- package/dist/tracking/spans/span-tracker.js +0 -721
- package/dist/tracking/spans/span-tracker.js.map +0 -1
- package/dist/tracking/spans/span-transport.d.ts +0 -71
- package/dist/tracking/spans/span-transport.d.ts.map +0 -1
- package/dist/tracking/spans/span-transport.js +0 -240
- package/dist/tracking/spans/span-transport.js.map +0 -1
- package/dist/tracking/spans/types.d.ts +0 -101
- package/dist/tracking/spans/types.d.ts.map +0 -1
- package/dist/tracking/spans/types.js +0 -6
- package/dist/tracking/spans/types.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/sanitize-payload.d.ts +0 -0
- /package/dist/{tracking → telemetry}/spans/sanitize-payload.js +0 -0
|
@@ -4,6 +4,8 @@
|
|
|
4
4
|
import { DSL_EXTERNAL_RETRIES, DSL_EXTERNAL_RETRY_DELAY_MS, } from "../../constants/dsl/index.js";
|
|
5
5
|
import { logger } from "../../utils/logger/dsl.js";
|
|
6
6
|
import { withRetry } from "../../utils/retry.js";
|
|
7
|
+
import { withSpan } from "../../telemetry/tracing.js";
|
|
8
|
+
import { setTraceIdentityAttributes } from "../../telemetry/trace-identity.js";
|
|
7
9
|
import { reconcileStateWithBackend } from "../../runtime/reconcile-state.js";
|
|
8
10
|
import { runReconcile } from "../../runtime/reconcile-run.js";
|
|
9
11
|
import { effectiveDex } from "./effective-dex.js";
|
|
@@ -19,9 +21,36 @@ export function getAddressesWithUnavailableClearinghouseState(entries) {
|
|
|
19
21
|
}
|
|
20
22
|
export function createPriceMonitor(options) {
|
|
21
23
|
const { stateManager, senpiClient, bus, strategyStates, isSlPlacementInProgress, closeOrderType, feeOptimizedLimitOptions, reconcileAdopter, reconcileSerialize, reconcileGateResolve } = options;
|
|
24
|
+
// The identity envelope is immutable per boot, so resolve it once and reuse it across ticks
|
|
25
|
+
// (building it hashes the config — not work to repeat on the per-tick path). The build is
|
|
26
|
+
// guarded: a failing identity builder must never abort a trading tick.
|
|
27
|
+
const buildIdentity = options.identity;
|
|
28
|
+
let identity;
|
|
29
|
+
let identityResolved = false;
|
|
30
|
+
function resolveIdentity() {
|
|
31
|
+
if (!identityResolved) {
|
|
32
|
+
identityResolved = true;
|
|
33
|
+
try {
|
|
34
|
+
identity = buildIdentity?.();
|
|
35
|
+
}
|
|
36
|
+
catch (err) {
|
|
37
|
+
logger.warn("[dsl] failed to build trace identity; continuing without it", { err });
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
return identity;
|
|
41
|
+
}
|
|
22
42
|
async function tick() {
|
|
43
|
+
await withSpan("dsl.tick", {}, async (span) => {
|
|
44
|
+
const id = resolveIdentity();
|
|
45
|
+
if (id)
|
|
46
|
+
await setTraceIdentityAttributes(id);
|
|
47
|
+
await runTick(span);
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
async function runTick(span) {
|
|
23
51
|
const tickStartMs = Date.now();
|
|
24
52
|
const tickId = new Date().toISOString().replace(/[:.]/g, "-").slice(0, 23);
|
|
53
|
+
span.setAttribute("senpi.tick.id", tickId);
|
|
25
54
|
const addresses = await stateManager.listStrategyIds();
|
|
26
55
|
const activePositions = [];
|
|
27
56
|
for (const address of addresses) {
|
|
@@ -41,13 +70,13 @@ export function createPriceMonitor(options) {
|
|
|
41
70
|
activePositions: activePositions.map((p) => ({ address: p.address, asset: p.asset, dex: p.dex || "main" })),
|
|
42
71
|
});
|
|
43
72
|
try {
|
|
44
|
-
const clearinghouseResults = await Promise.all(addresses.map(async (addr) => {
|
|
73
|
+
const clearinghouseResults = await withSpan("dsl.clearinghouse", {}, () => Promise.all(addresses.map(async (addr) => {
|
|
45
74
|
const strategyState = strategyStates.get(addr);
|
|
46
75
|
if (!strategyState)
|
|
47
76
|
return { addr, result: undefined };
|
|
48
77
|
const result = await strategyState.fetchClearinghouseState();
|
|
49
78
|
return { addr, result };
|
|
50
|
-
}));
|
|
79
|
+
})));
|
|
51
80
|
const addressesWithUnavailableState = getAddressesWithUnavailableClearinghouseState(clearinghouseResults);
|
|
52
81
|
if (addressesWithUnavailableState.length > 0) {
|
|
53
82
|
logger.warn("[dsl] clearinghouse state unavailable; skipping monitor tick", {
|
|
@@ -80,14 +109,21 @@ export function createPriceMonitor(options) {
|
|
|
80
109
|
if (!strategyState)
|
|
81
110
|
continue; // foreign wallet / no StrategyState in this process → never adopt
|
|
82
111
|
try {
|
|
83
|
-
const { success } = await
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
112
|
+
const { success } = await withSpan("dsl.reconcile", { "senpi.dsl.reconcile.address": address }, async (span) => {
|
|
113
|
+
const result = await runReconcile({
|
|
114
|
+
address,
|
|
115
|
+
strategyState,
|
|
116
|
+
senpi: senpiClient,
|
|
117
|
+
stateManager,
|
|
118
|
+
adopter: reconcileAdopter,
|
|
119
|
+
bus,
|
|
120
|
+
serialize: reconcileSerialize,
|
|
121
|
+
});
|
|
122
|
+
span.setAttribute("senpi.dsl.reconcile.adopted", result.counts.adopted);
|
|
123
|
+
span.setAttribute("senpi.dsl.reconcile.resized", result.counts.resized);
|
|
124
|
+
span.setAttribute("senpi.dsl.reconcile.archived", result.counts.archived);
|
|
125
|
+
span.setAttribute("senpi.dsl.reconcile.success", result.success);
|
|
126
|
+
return result;
|
|
91
127
|
});
|
|
92
128
|
if (success)
|
|
93
129
|
reconcileGateResolve?.();
|
|
@@ -100,11 +136,11 @@ export function createPriceMonitor(options) {
|
|
|
100
136
|
else {
|
|
101
137
|
// Fallback (no adopter wired): legacy archive-only reconcile.
|
|
102
138
|
try {
|
|
103
|
-
await reconcileStateWithBackend(stateManager, senpiClient, addresses, {
|
|
139
|
+
await withSpan("dsl.reconcile", {}, () => reconcileStateWithBackend(stateManager, senpiClient, addresses, {
|
|
104
140
|
bus,
|
|
105
141
|
strategyStates,
|
|
106
142
|
strategyStateOnly: true,
|
|
107
|
-
});
|
|
143
|
+
}));
|
|
108
144
|
}
|
|
109
145
|
catch (e) {
|
|
110
146
|
logger.warn("[dsl] reconcile with backend failed; continuing monitor tick", { tickId, error: e });
|
|
@@ -130,26 +166,29 @@ export function createPriceMonitor(options) {
|
|
|
130
166
|
byDex: Object.fromEntries([...byDex].map(([d, arr]) => [d || "main", arr.map((p) => `${p.address}:${p.asset}`)])),
|
|
131
167
|
});
|
|
132
168
|
// Two fixed calls: main dex ("") and xyz ("xyz"). Omit assets to fetch all asset prices for each dex.
|
|
133
|
-
const pricesStartedAt = Date.now();
|
|
134
169
|
const pricesByDex = new Map();
|
|
135
170
|
const dexesToFetch = ["", "xyz"];
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
171
|
+
// Start the fetches inside the span so their HTTP client spans nest under dsl.prices.
|
|
172
|
+
// Building the promises (which kicks off getMarketPrices) outside would attach those
|
|
173
|
+
// children to whatever span is active at that point instead.
|
|
174
|
+
await withSpan("dsl.prices", {}, async () => {
|
|
175
|
+
const dexFetchPromises = dexesToFetch.map(async (dex) => {
|
|
176
|
+
try {
|
|
177
|
+
const prices = await withRetry(() => senpiClient.getMarketPrices({ dex }), {
|
|
178
|
+
retries: DSL_EXTERNAL_RETRIES,
|
|
179
|
+
delayMs: DSL_EXTERNAL_RETRY_DELAY_MS,
|
|
180
|
+
label: "getMarketPrices",
|
|
181
|
+
onRetry: (attempt, remaining, err) => logger.warn("[dsl] getMarketPrices retry", { dex: dex || "main", attempt, remaining, err }),
|
|
182
|
+
});
|
|
183
|
+
if (prices && Object.keys(prices).length > 0)
|
|
184
|
+
pricesByDex.set(dex, prices);
|
|
185
|
+
}
|
|
186
|
+
catch (e) {
|
|
187
|
+
logger.warn("getMarketPrices failed", { dex: dex || "main", err: e });
|
|
188
|
+
}
|
|
189
|
+
});
|
|
190
|
+
await Promise.all(dexFetchPromises);
|
|
150
191
|
});
|
|
151
|
-
await Promise.all(dexFetchPromises);
|
|
152
|
-
const pricesEndedAt = Date.now();
|
|
153
192
|
const positionsToProcess = [...byDex.values()].flat();
|
|
154
193
|
const priceSampleForPositions = positionsToProcess.length > 0
|
|
155
194
|
? Object.fromEntries(positionsToProcess
|
|
@@ -187,45 +226,24 @@ export function createPriceMonitor(options) {
|
|
|
187
226
|
if (!state?.active)
|
|
188
227
|
return;
|
|
189
228
|
const price = marketPriceForAsset(pricesByDex.get(effectiveDex(state)), state.asset);
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
key,
|
|
197
|
-
address,
|
|
198
|
-
asset: state.asset,
|
|
199
|
-
dex: effectiveDex(state),
|
|
200
|
-
positionId: state.positionId ?? state.correlationId,
|
|
201
|
-
startedAt: positionStartedAt,
|
|
202
|
-
endedAt: Date.now(),
|
|
203
|
-
timestamp: isoNow(),
|
|
204
|
-
});
|
|
229
|
+
await withSpan("dsl.position", {
|
|
230
|
+
"senpi.tick.id": tickId,
|
|
231
|
+
"senpi.position.id": String(state.positionId ?? state.correlationId),
|
|
232
|
+
"senpi.signal.asset": state.asset,
|
|
233
|
+
"senpi.signal.direction": state.direction,
|
|
234
|
+
}, (span) => processOnePosition(ctx, key, state, price, span));
|
|
205
235
|
});
|
|
206
236
|
await Promise.all(positionPromises);
|
|
207
237
|
});
|
|
208
238
|
await Promise.all(strategyPromises);
|
|
239
|
+
span.setAttribute("senpi.dsl.active_position_count", activePositions.length);
|
|
240
|
+
span.setAttribute("senpi.dsl.positions_processed", positionsToProcess.length);
|
|
209
241
|
const tickDurationMs = Date.now() - tickStartMs;
|
|
210
242
|
tickLog.call(logger, "[dsl] monitor tick complete", {
|
|
211
243
|
tickId,
|
|
212
244
|
durationMs: tickDurationMs,
|
|
213
245
|
positionsProcessed: positionsToProcess.length,
|
|
214
246
|
});
|
|
215
|
-
// Telemetry-only fire-and-forget: the tick's work window for the dsl.tick root span. The
|
|
216
|
-
// early-return paths above (clearinghouse unavailable/failed) deliberately emit nothing —
|
|
217
|
-
// no work happened, and "didn't run" facts live in the logs.
|
|
218
|
-
bus.emit("tracking.dsl_tick", {
|
|
219
|
-
tickId,
|
|
220
|
-
startedAt: tickStartMs,
|
|
221
|
-
endedAt: Date.now(),
|
|
222
|
-
pricesStartedAt,
|
|
223
|
-
pricesEndedAt,
|
|
224
|
-
strategyCount: addresses.length,
|
|
225
|
-
activePositionCount: activePositions.length,
|
|
226
|
-
positionsProcessed: positionsToProcess.length,
|
|
227
|
-
timestamp: isoNow(),
|
|
228
|
-
});
|
|
229
247
|
}
|
|
230
248
|
return { tick };
|
|
231
249
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-monitor.js","sourceRoot":"","sources":["../../../src/dsl/monitor/create-monitor.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
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,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAC3E,IAAI,CAAC,YAAY,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;QAE3C,MAAM,SAAS,GAAG,MAAM,YAAY,CAAC,eAAe,EAAE,CAAC;QAEvD,MAAM,eAAe,GAAwE,EAAE,CAAC;QAEhG,KAAK,MAAM,OAAO,IAAI,SAAS,EAAE,CAAC;YAChC,KAAK,MAAM,GAAG,IAAI,MAAM,YAAY,CAAC,WAAW,CAAC,GAAG,OAAO,GAAG,CAAC,EAAE,CAAC;gBAChE,MAAM,KAAK,GAAG,MAAM,YAAY,CAAC,SAAS,CAAW,GAAG,CAAC,CAAC;gBAC1D,IAAI,CAAC,KAAK,EAAE,MAAM;oBAAE,SAAS;gBAC7B,MAAM,GAAG,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;gBAChC,eAAe,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;YAClE,CAAC;QACH,CAAC;QACD,MAAM,OAAO,GAAG,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;QACxE,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,0BAA0B,EAAE;YAC/C,MAAM;YACN,aAAa,EAAE,SAAS,CAAC,MAAM;YAC/B,mBAAmB,EAAE,eAAe,CAAC,MAAM;YAC3C,eAAe,EAAE,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,IAAI,MAAM,EAAE,CAAC,CAAC;SAC5G,CAAC,CAAC;QACH,IAAI,CAAC;YACH,MAAM,oBAAoB,GAAG,MAAM,QAAQ,CAAC,mBAAmB,EAAE,EAAE,EAAE,GAAG,EAAE,CACxE,OAAO,CAAC,GAAG,CACT,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;gBAC3B,MAAM,aAAa,GAAG,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBAC/C,IAAI,CAAC,aAAa;oBAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;gBACvD,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,uBAAuB,EAAE,CAAC;gBAC7D,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;YAC1B,CAAC,CAAC,CACH,CACF,CAAC;YAEF,MAAM,6BAA6B,GAAG,6CAA6C,CAAC,oBAAoB,CAAC,CAAC;YAC1G,IAAI,6BAA6B,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC7C,MAAM,CAAC,IAAI,CAAC,8DAA8D,EAAE;oBAC1E,MAAM;oBACN,SAAS,EAAE,6BAA6B;iBACzC,CAAC,CAAC;gBACH,OAAO;YACT,CAAC;QACH,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,MAAM,CAAC,IAAI,CAAC,kEAAkE,EAAE;gBAC9E,MAAM;gBACN,KAAK,EAAE,CAAC;aACT,CAAC,CAAC;YACH,OAAO;QACT,CAAC;QAED,IAAI,gBAAgB,EAAE,CAAC;YACrB,gFAAgF;YAChF,iFAAiF;YACjF,2FAA2F;YAC3F,2FAA2F;YAC3F,uFAAuF;YACvF,yFAAyF;YACzF,+FAA+F;YAC/F,4FAA4F;YAC5F,0FAA0F;YAC1F,sEAAsE;YACtE,KAAK,MAAM,OAAO,IAAI,SAAS,EAAE,CAAC;gBAChC,MAAM,aAAa,GAAG,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;gBAClD,IAAI,CAAC,aAAa;oBAAE,SAAS,CAAC,kEAAkE;gBAChG,IAAI,CAAC;oBACH,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,QAAQ,CAChC,eAAe,EACf,EAAE,6BAA6B,EAAE,OAAO,EAAE,EAC1C,KAAK,EAAE,IAAI,EAAE,EAAE;wBACb,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC;4BAChC,OAAO;4BACP,aAAa;4BACb,KAAK,EAAE,WAAW;4BAClB,YAAY;4BACZ,OAAO,EAAE,gBAAgB;4BACzB,GAAG;4BACH,SAAS,EAAE,kBAAkB;yBAC9B,CAAC,CAAC;wBACH,IAAI,CAAC,YAAY,CAAC,6BAA6B,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;wBACxE,IAAI,CAAC,YAAY,CAAC,6BAA6B,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;wBACxE,IAAI,CAAC,YAAY,CAAC,8BAA8B,EAAE,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;wBAC1E,IAAI,CAAC,YAAY,CAAC,6BAA6B,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;wBACjE,OAAO,MAAM,CAAC;oBAChB,CAAC,CACF,CAAC;oBACF,IAAI,OAAO;wBAAE,oBAAoB,EAAE,EAAE,CAAC;gBACxC,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC;oBACX,MAAM,CAAC,IAAI,CAAC,qEAAqE,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;gBACpH,CAAC;YACH,CAAC;QACH,CAAC;aAAM,CAAC;YACN,8DAA8D;YAC9D,IAAI,CAAC;gBACH,MAAM,QAAQ,CAAC,eAAe,EAAE,EAAE,EAAE,GAAG,EAAE,CACvC,yBAAyB,CAAC,YAAY,EAAE,WAAW,EAAE,SAAS,EAAE;oBAC9D,GAAG;oBACH,cAAc;oBACd,iBAAiB,EAAE,IAAI;iBACxB,CAAC,CACH,CAAC;YACJ,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,MAAM,CAAC,IAAI,CAAC,8DAA8D,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;YACpG,CAAC;QACH,CAAC;QACD,MAAM,IAAI,GAAa,EAAE,CAAC;QAC1B,MAAM,KAAK,GAAG,IAAI,GAAG,EAAkE,CAAC;QACxF,KAAK,MAAM,OAAO,IAAI,SAAS,EAAE,CAAC;YAChC,KAAK,MAAM,GAAG,IAAI,MAAM,YAAY,CAAC,WAAW,CAAC,GAAG,OAAO,GAAG,CAAC,EAAE,CAAC;gBAChE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACf,MAAM,KAAK,GAAG,MAAM,YAAY,CAAC,SAAS,CAAW,GAAG,CAAC,CAAC;gBAC1D,IAAI,CAAC,KAAK,EAAE,MAAM,IAAI,KAAK,CAAC,YAAY;oBAAE,SAAS;gBACnD,MAAM,GAAG,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;gBAChC,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;gBAClC,IAAI,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;gBAChD,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;YACvB,CAAC;QACH,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,8CAA8C,EAAE;YACnE,MAAM;YACN,KAAK,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;YAChE,KAAK,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;SAClH,CAAC,CAAC;QAEH,sGAAsG;QACtG,MAAM,WAAW,GAAG,IAAI,GAAG,EAAkC,CAAC;QAC9D,MAAM,YAAY,GAAqB,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;QACnD,sFAAsF;QACtF,qFAAqF;QACrF,6DAA6D;QAC7D,MAAM,QAAQ,CAAC,YAAY,EAAE,EAAE,EAAE,KAAK,IAAI,EAAE;YAC1C,MAAM,gBAAgB,GAAG,YAAY,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;gBACtD,IAAI,CAAC;oBACH,MAAM,MAAM,GAAG,MAAM,SAAS,CAC5B,GAAG,EAAE,CAAC,WAAW,CAAC,eAAe,CAAC,EAAE,GAAG,EAAE,CAAC,EAC1C;wBACE,OAAO,EAAE,oBAAoB;wBAC7B,OAAO,EAAE,2BAA2B;wBACpC,KAAK,EAAE,iBAAiB;wBACxB,OAAO,EAAE,CAAC,OAAO,EAAE,SAAS,EAAE,GAAG,EAAE,EAAE,CACnC,MAAM,CAAC,IAAI,CAAC,6BAA6B,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC;qBAC9F,CACF,CAAC;oBACF,IAAI,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC;wBAAE,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;gBAC7E,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC;oBACX,MAAM,CAAC,IAAI,CAAC,wBAAwB,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;gBACxE,CAAC;YACH,CAAC,CAAC,CAAC;YACH,MAAM,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC;QACH,MAAM,kBAAkB,GAAG,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QACtD,MAAM,uBAAuB,GAC3B,kBAAkB,CAAC,MAAM,GAAG,CAAC;YAC3B,CAAC,CAAC,MAAM,CAAC,WAAW,CAChB,kBAAkB;iBACf,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;gBACT,MAAM,MAAM,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBAClE,MAAM,EAAE,GAAG,mBAAmB,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;gBACjE,OAAO,EAAE,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YAC7D,CAAC,CAAC;iBACD,MAAM,CAAC,CAAC,CAAC,EAAyB,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,CACnD;YACH,CAAC,CAAC,SAAS,CAAC;QAChB,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,8BAA8B,EAAE;YACnD,MAAM;YACN,QAAQ,EAAE,WAAW,CAAC,IAAI;YAC1B,IAAI,EAAE,CAAC,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC;YAC7B,eAAe,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;YAC3G,uBAAuB;SACxB,CAAC,CAAC;QAEH,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC;QACpB,MAAM,GAAG,GAA0B;YACjC,MAAM;YACN,EAAE;YACF,GAAG,EAAE,MAAM;YACX,YAAY;YACZ,cAAc;YACd,GAAG;YACH,GAAG,CAAC,uBAAuB,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,uBAAuB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACvE,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7C,GAAG,CAAC,wBAAwB,CAAC,CAAC,CAAC,EAAE,wBAAwB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAClE,CAAC;QAEF,8FAA8F;QAC9F,MAAM,gBAAgB,GAAG,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;YACvD,MAAM,YAAY,GAAG,MAAM,YAAY,CAAC,WAAW,CAAC,GAAG,OAAO,GAAG,CAAC,CAAC;YACnE,MAAM,gBAAgB,GAAG,YAAY,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;gBACtD,MAAM,KAAK,GAAG,MAAM,YAAY,CAAC,SAAS,CAAW,GAAG,CAAC,CAAC;gBAC1D,IAAI,CAAC,KAAK,EAAE,MAAM;oBAAE,OAAO;gBAC3B,MAAM,KAAK,GAAG,mBAAmB,CAAC,WAAW,CAAC,GAAG,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;gBACrF,MAAM,QAAQ,CACZ,cAAc,EACd;oBACE,eAAe,EAAE,MAAM;oBACvB,mBAAmB,EAAE,MAAM,CAAC,KAAK,CAAC,UAAU,IAAI,KAAK,CAAC,aAAa,CAAC;oBACpE,oBAAoB,EAAE,KAAK,CAAC,KAAK;oBACjC,wBAAwB,EAAE,KAAK,CAAC,SAAS;iBAC1C,EACD,CAAC,IAAI,EAAE,EAAE,CAAC,kBAAkB,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,CAC3D,CAAC;YACJ,CAAC,CAAC,CAAC;YACH,MAAM,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC;QACH,MAAM,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;QACpC,IAAI,CAAC,YAAY,CAAC,iCAAiC,EAAE,eAAe,CAAC,MAAM,CAAC,CAAC;QAC7E,IAAI,CAAC,YAAY,CAAC,+BAA+B,EAAE,kBAAkB,CAAC,MAAM,CAAC,CAAC;QAC9E,MAAM,cAAc,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,WAAW,CAAC;QAChD,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,6BAA6B,EAAE;YAClD,MAAM;YACN,UAAU,EAAE,cAAc;YAC1B,kBAAkB,EAAE,kBAAkB,CAAC,MAAM;SAC9C,CAAC,CAAC;IACL,CAAC;IAED,OAAO,EAAE,IAAI,EAAE,CAAC;AAClB,CAAC"}
|
|
@@ -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"}
|
|
@@ -5,6 +5,7 @@ import type { SenpiEventBus } from "../events/index.js";
|
|
|
5
5
|
import type { StrategyState } from "../../types/strategy.js";
|
|
6
6
|
import type { DslState } from "../../types/dsl/index.js";
|
|
7
7
|
import type { StateManager } from "../../state/index.js";
|
|
8
|
+
import type { Span } from "@opentelemetry/api";
|
|
8
9
|
export interface MonitorProcessContext {
|
|
9
10
|
tickId: string;
|
|
10
11
|
ts: string;
|
|
@@ -18,5 +19,5 @@ export interface MonitorProcessContext {
|
|
|
18
19
|
/** Options for FEE_OPTIMIZED_LIMIT close orders. */
|
|
19
20
|
feeOptimizedLimitOptions?: import("../../senpi/types.js").FeeOptimizedLimitOptions;
|
|
20
21
|
}
|
|
21
|
-
export declare function processOnePosition(ctx: MonitorProcessContext, key: string, state: DslState, price: number | undefined): Promise<void>;
|
|
22
|
+
export declare function processOnePosition(ctx: MonitorProcessContext, key: string, state: DslState, price: number | undefined, span: Span): Promise<void>;
|
|
22
23
|
//# sourceMappingURL=process-one-position.d.ts.map
|
|
@@ -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;AA+
|
|
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"}
|