@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
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"event-catalog.js","sourceRoot":"","sources":["../../src/utils/event-catalog.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/logger.d.ts
CHANGED
|
@@ -1,6 +1,13 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Shared structured logger factory. Components create a logger with a namespace.
|
|
3
|
+
*
|
|
4
|
+
* Dual sink, one shape: every record renders to the TTY via `console.*` and is emitted
|
|
5
|
+
* as a real OTel LogRecord via the global Logs API. When the SDK is not initialised (off,
|
|
6
|
+
* or under test) the API resolves a no-op logger, so the emit is a near-zero no-op — no
|
|
7
|
+
* `enabled` gate needed. trace_id/span_id are stamped natively from the active span; the
|
|
8
|
+
* per-runtime `senpi.*` identity rides in via the async-context bag (see `trackingContext`).
|
|
3
9
|
*/
|
|
10
|
+
import { type AttrsFor, type EventName } from "./event-catalog.js";
|
|
4
11
|
export type LogLevel = "debug" | "info" | "warn" | "error";
|
|
5
12
|
export type LogLevelSource = "config" | "env" | "default" | "runtime";
|
|
6
13
|
/** Parse a candidate log-level string. Returns null for unknown values (caller decides how to warn/fallback). */
|
|
@@ -12,17 +19,68 @@ export interface ErrorNotificationPayload {
|
|
|
12
19
|
namespace: string;
|
|
13
20
|
level: "error";
|
|
14
21
|
message: string;
|
|
15
|
-
|
|
22
|
+
attributes?: unknown;
|
|
23
|
+
/**
|
|
24
|
+
* Normalized exception, present when the error call carried one. Built once alongside the
|
|
25
|
+
* log record's `exception.*` attributes so the notifier surfaces the same type/message/stack
|
|
26
|
+
* the log does — the raw error no longer rides in `attributes`.
|
|
27
|
+
*/
|
|
28
|
+
exception?: NormalizedException;
|
|
16
29
|
timestamp: string;
|
|
17
30
|
}
|
|
18
31
|
export type ErrorNotifier = (payload: ErrorNotificationPayload) => void | Promise<void>;
|
|
19
32
|
export declare function setErrorNotifier(notifier: ErrorNotifier | null): void;
|
|
20
33
|
export declare function clearErrorNotifier(): void;
|
|
34
|
+
/** OTel exception semconv, normalized from any thrown value. Stacks are kept unredacted. */
|
|
35
|
+
export interface NormalizedException {
|
|
36
|
+
type?: string;
|
|
37
|
+
message: string;
|
|
38
|
+
stacktrace?: string;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* The options for an event emit. Placement is the control — there is no opt-out:
|
|
42
|
+
* - `body` — a deterministic, human/agent-readable narrative, templated from safe scalars. Safe by
|
|
43
|
+
* construction, so it is NEVER redacted (and never capped — it is bounded by its template).
|
|
44
|
+
* - `attributes` — structured scalars, typed per event via {@link AttrsFor}. Safe by construction:
|
|
45
|
+
* capped, but NEVER redacted.
|
|
46
|
+
* - `redact` — free-text / external strings (LLM reasoning, a venue error, a raw signal). The only
|
|
47
|
+
* slot that is capped AND always run through redaction before it joins the emitted attributes.
|
|
48
|
+
* - `error` — a thrown value when this catalogued event IS also a fault (e.g. `order.failed` from a
|
|
49
|
+
* venue throw). Normalized to `exception.*` semconv on the record (stack kept, uncapped) and recorded
|
|
50
|
+
* on the active span, so one emit carries narrative + typed attrs + exception. Unlike `logger.error`,
|
|
51
|
+
* it does NOT fan out the error notifier — severity is the call site's to grade via `level`.
|
|
52
|
+
*/
|
|
53
|
+
export interface EventOptions<N extends EventName> {
|
|
54
|
+
body: string;
|
|
55
|
+
attributes?: AttrsFor<N>;
|
|
56
|
+
redact?: Record<string, string>;
|
|
57
|
+
error?: unknown;
|
|
58
|
+
}
|
|
21
59
|
export interface Logger {
|
|
22
|
-
debug(message: string,
|
|
23
|
-
info(message: string,
|
|
24
|
-
|
|
25
|
-
|
|
60
|
+
debug(message: string, attributes?: unknown): void;
|
|
61
|
+
info(message: string, attributes?: unknown): void;
|
|
62
|
+
/**
|
|
63
|
+
* @param error An `Error` (or other thrown value) → normalized to `exception.*` attributes and
|
|
64
|
+
* recorded on the active span. Omit for a plain log; pass attributes here only when there is no
|
|
65
|
+
* error (a non-`Error` value here is treated as the attributes bag for back-compat).
|
|
66
|
+
* @param attributes The attributes bag, when an error is also passed.
|
|
67
|
+
*/
|
|
68
|
+
warn(message: string, error?: unknown, attributes?: unknown): void;
|
|
69
|
+
error(message: string, error?: unknown, attributes?: unknown): void;
|
|
70
|
+
/**
|
|
71
|
+
* Emit a first-class event from the closed {@link EventName} catalog: a deterministic narrative
|
|
72
|
+
* `body`, safe scalar `attributes` (typed per event, capped, never redacted), and optional
|
|
73
|
+
* free-text `redact` fields (capped + always scrubbed). The `name` is set as the OTel eventName,
|
|
74
|
+
* never sniffed from attributes. `level` drives severity (and the console sink). See
|
|
75
|
+
* {@link EventOptions}.
|
|
76
|
+
*/
|
|
77
|
+
event<N extends EventName>(name: N, level: LogLevel, opts: EventOptions<N>): void;
|
|
26
78
|
}
|
|
27
79
|
export declare function createLogger(namespace: string): Logger;
|
|
80
|
+
/**
|
|
81
|
+
* A complete {@link Logger} that discards everything. Use it as an explicit "be silent here" default
|
|
82
|
+
* (e.g. tests, or a consumer that doesn't wire logging) instead of hand-rolling a partial object —
|
|
83
|
+
* being defined alongside {@link Logger} it always satisfies the full contract as the interface grows.
|
|
84
|
+
*/
|
|
85
|
+
export declare const noopLogger: Logger;
|
|
28
86
|
//# sourceMappingURL=logger.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAaH,OAAO,EAEL,KAAK,QAAQ,EAEb,KAAK,SAAS,EACf,MAAM,oBAAoB,CAAC;AAE5B,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;AAW3D,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,KAAK,GAAG,SAAS,GAAG,SAAS,CAAC;AAEtE,iHAAiH;AACjH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,GAAG,QAAQ,GAAG,IAAI,CAY7E;AAmBD,wBAAgB,WAAW,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,GAAE,cAA0B,GAAG,IAAI,CAGrF;AAED,wBAAgB,WAAW,IAAI,QAAQ,CAEtC;AAED,wBAAgB,iBAAiB,IAAI,cAAc,CAElD;AAED,MAAM,WAAW,wBAAwB;IACvC,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,OAAO,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;;OAIG;IACH,SAAS,CAAC,EAAE,mBAAmB,CAAC;IAChC,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,MAAM,aAAa,GAAG,CAC1B,OAAO,EAAE,wBAAwB,KAC9B,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAE1B,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,aAAa,GAAG,IAAI,GAAG,IAAI,CAErE;AAED,wBAAgB,kBAAkB,IAAI,IAAI,CAEzC;AAgBD,4FAA4F;AAC5F,MAAM,WAAW,mBAAmB;IAClC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AA8HD;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,YAAY,CAAC,CAAC,SAAS,SAAS;IAC/C,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;IACzB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,MAAM;IACrB,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IACnD,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IAClD;;;;;OAKG;IACH,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE,UAAU,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IACnE,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE,UAAU,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IACpE;;;;;;OAMG;IACH,KAAK,CAAC,CAAC,SAAS,SAAS,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;CACnF;AAyJD,wBAAgB,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAsFtD;AAED;;;;GAIG;AACH,eAAO,MAAM,UAAU,EAAE,MAMxB,CAAC"}
|
package/dist/utils/logger.js
CHANGED
|
@@ -1,6 +1,19 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Shared structured logger factory. Components create a logger with a namespace.
|
|
3
|
+
*
|
|
4
|
+
* Dual sink, one shape: every record renders to the TTY via `console.*` and is emitted
|
|
5
|
+
* as a real OTel LogRecord via the global Logs API. When the SDK is not initialised (off,
|
|
6
|
+
* or under test) the API resolves a no-op logger, so the emit is a near-zero no-op — no
|
|
7
|
+
* `enabled` gate needed. trace_id/span_id are stamped natively from the active span; the
|
|
8
|
+
* per-runtime `senpi.*` identity rides in via the async-context bag (see `trackingContext`).
|
|
3
9
|
*/
|
|
10
|
+
import { logs, SeverityNumber } from "@opentelemetry/api-logs";
|
|
11
|
+
import { context, trace, SpanStatusCode } from "@opentelemetry/api";
|
|
12
|
+
import { getTrackingContext } from "../telemetry/context.js";
|
|
13
|
+
import { capValue, MAX_ATTR_VALUE_CHARS, MAX_BAG_KEYS, MAX_TOTAL_ATTR_CHARS, } from "../telemetry/attributes.js";
|
|
14
|
+
import { getDefaultPiiRedactor } from "../telemetry/spans/redact-pii.js";
|
|
15
|
+
import { appendDomainEvent } from "../telemetry/event-store.js";
|
|
16
|
+
import { canonicalSeverity, } from "./event-catalog.js";
|
|
4
17
|
const levelOrder = {
|
|
5
18
|
debug: 0,
|
|
6
19
|
info: 1,
|
|
@@ -55,6 +68,129 @@ export function clearErrorNotifier() {
|
|
|
55
68
|
function shouldLog(level) {
|
|
56
69
|
return levelOrder[level] >= levelOrder[minLevel];
|
|
57
70
|
}
|
|
71
|
+
/** Instrumentation scope for emitted LogRecords; matches the tracer name. */
|
|
72
|
+
const LOGGER_SCOPE = "senpi-trading-runtime";
|
|
73
|
+
const severityByLevel = {
|
|
74
|
+
debug: SeverityNumber.DEBUG,
|
|
75
|
+
info: SeverityNumber.INFO,
|
|
76
|
+
warn: SeverityNumber.WARN,
|
|
77
|
+
error: SeverityNumber.ERROR,
|
|
78
|
+
};
|
|
79
|
+
/** Normalize any thrown value to OTel exception semconv. Full type + message + stack for `Error`s. */
|
|
80
|
+
function normalizeException(error) {
|
|
81
|
+
if (error instanceof Error) {
|
|
82
|
+
const normalized = { type: error.name, message: error.message };
|
|
83
|
+
if (error.stack)
|
|
84
|
+
normalized.stacktrace = error.stack;
|
|
85
|
+
return normalized;
|
|
86
|
+
}
|
|
87
|
+
return { message: String(error) };
|
|
88
|
+
}
|
|
89
|
+
/** The exception-semconv attribute keys for an emitted LogRecord. */
|
|
90
|
+
function exceptionAttributes(exception) {
|
|
91
|
+
const attrs = { "exception.message": exception.message };
|
|
92
|
+
if (exception.type !== undefined)
|
|
93
|
+
attrs["exception.type"] = exception.type;
|
|
94
|
+
if (exception.stacktrace !== undefined)
|
|
95
|
+
attrs["exception.stacktrace"] = exception.stacktrace;
|
|
96
|
+
return attrs;
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Safety net for raw `Error`s in the attributes bag: an `Error` is not a valid OTel attribute value,
|
|
100
|
+
* so it would be silently dropped. Strip every `Error` from the bag (keeping attributes valid) and
|
|
101
|
+
* surface the first one — for the legacy `{ err }` convention the caller passed no explicit error, so
|
|
102
|
+
* that first `Error` becomes the exception and the record is flagged (`code.error.scavenged`) to make
|
|
103
|
+
* the un-migrated site findable. Returns null when the bag holds no `Error`.
|
|
104
|
+
*/
|
|
105
|
+
function scavengeBagError(attributes) {
|
|
106
|
+
if (typeof attributes !== "object" || attributes === null || Array.isArray(attributes))
|
|
107
|
+
return null;
|
|
108
|
+
const entries = Object.entries(attributes);
|
|
109
|
+
const hit = entries.find(([, value]) => value instanceof Error);
|
|
110
|
+
if (hit === undefined)
|
|
111
|
+
return null;
|
|
112
|
+
const cleaned = {};
|
|
113
|
+
for (const [key, value] of entries) {
|
|
114
|
+
if (!(value instanceof Error))
|
|
115
|
+
cleaned[key] = value;
|
|
116
|
+
}
|
|
117
|
+
return { error: hit[1], cleaned };
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Resolve the discriminated `(message, error?, attributes?)` arguments. The error slot collides with
|
|
121
|
+
* the legacy attributes-second convention, so we disambiguate at runtime: an explicit attributes arg
|
|
122
|
+
* (`arg3`) makes `arg2` the error; otherwise a plain object in `arg2` is the attributes bag
|
|
123
|
+
* (back-compat) and anything else — an `Error`, a thrown string/number, etc. — is the error. A thrown
|
|
124
|
+
* plain object (rare) is indistinguishable from a bag, so use the explicit three-arg form for it.
|
|
125
|
+
*/
|
|
126
|
+
function resolveErrorArgs(arg2, arg3) {
|
|
127
|
+
if (arg3 !== undefined)
|
|
128
|
+
return { error: arg2, attributes: arg3 };
|
|
129
|
+
if (typeof arg2 === "object" && arg2 !== null && !Array.isArray(arg2) && !(arg2 instanceof Error)) {
|
|
130
|
+
return { error: undefined, attributes: arg2 };
|
|
131
|
+
}
|
|
132
|
+
return { error: arg2, attributes: undefined };
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* Record the error on the active span: `recordException` for both warn and error so
|
|
136
|
+
* a swallowed-and-continuing failure still paints the waterfall (`withSpan` only records on rethrow);
|
|
137
|
+
* `setStatus(ERROR)` for `error` only — a `warn` is a handled failure and must not fail the span.
|
|
138
|
+
*/
|
|
139
|
+
function recordExceptionOnActiveSpan(error, level) {
|
|
140
|
+
try {
|
|
141
|
+
const span = trace.getActiveSpan();
|
|
142
|
+
if (span === undefined)
|
|
143
|
+
return;
|
|
144
|
+
span.recordException(error instanceof Error ? error : { message: String(error) });
|
|
145
|
+
if (level === "error") {
|
|
146
|
+
span.setStatus({
|
|
147
|
+
code: SpanStatusCode.ERROR,
|
|
148
|
+
message: error instanceof Error ? error.message : String(error),
|
|
149
|
+
});
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
catch {
|
|
153
|
+
// A tracing failure must never disturb the logging caller.
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
/**
|
|
157
|
+
* Assemble LogRecord attributes: the component namespace, the caller's `attributes` (a plain
|
|
158
|
+
* object is the attributes bag — spread as-is; anything else is wrapped under `log.attributes`),
|
|
159
|
+
* any `extra` keys the warn/error path derived (exception semconv + the scavenger flag), and the
|
|
160
|
+
* current runtime's `senpi.*` identity from async-context (last, so it can't be clobbered). Identity
|
|
161
|
+
* is absent outside a runtime flow (e.g. process boot) — correct, not a gap.
|
|
162
|
+
*/
|
|
163
|
+
function buildLogAttributes(namespace, attributes, extra) {
|
|
164
|
+
const merged = { "code.namespace": namespace };
|
|
165
|
+
if (attributes !== undefined) {
|
|
166
|
+
if (typeof attributes === "object" && attributes !== null && !Array.isArray(attributes)) {
|
|
167
|
+
Object.assign(merged, attributes);
|
|
168
|
+
}
|
|
169
|
+
else {
|
|
170
|
+
merged["log.attributes"] = attributes;
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
if (extra !== undefined)
|
|
174
|
+
Object.assign(merged, extra);
|
|
175
|
+
const identity = getTrackingContext()?.identityAttributes;
|
|
176
|
+
if (identity)
|
|
177
|
+
Object.assign(merged, identity);
|
|
178
|
+
return merged;
|
|
179
|
+
}
|
|
180
|
+
/** Emit a structured LogRecord to the global Logs API. Guarded: telemetry never breaks the caller. */
|
|
181
|
+
function emitLogRecord(namespace, level, message, attributes, extra) {
|
|
182
|
+
try {
|
|
183
|
+
logs.getLogger(LOGGER_SCOPE).emit({
|
|
184
|
+
severityNumber: severityByLevel[level],
|
|
185
|
+
severityText: level.toUpperCase(),
|
|
186
|
+
body: message,
|
|
187
|
+
attributes: buildLogAttributes(namespace, attributes, extra),
|
|
188
|
+
});
|
|
189
|
+
}
|
|
190
|
+
catch {
|
|
191
|
+
// A telemetry-side failure must never disturb the logging caller.
|
|
192
|
+
}
|
|
193
|
+
}
|
|
58
194
|
function dispatchErrorNotification(payload) {
|
|
59
195
|
const notifier = errorNotifier;
|
|
60
196
|
if (notifier == null || notifyingError)
|
|
@@ -72,59 +208,256 @@ function dispatchErrorNotification(payload) {
|
|
|
72
208
|
}
|
|
73
209
|
})();
|
|
74
210
|
}
|
|
211
|
+
/** Cap each redact-slot string at the per-value limit. Keys are pinned at the call site, so unbounded. */
|
|
212
|
+
function capRedactFields(fields) {
|
|
213
|
+
const out = {};
|
|
214
|
+
for (const [key, value] of Object.entries(fields)) {
|
|
215
|
+
out[key] = capValue(value, MAX_ATTR_VALUE_CHARS);
|
|
216
|
+
}
|
|
217
|
+
return out;
|
|
218
|
+
}
|
|
219
|
+
/** Cap string scalar values at the per-value limit; numbers/booleans pass through. Not redacted. */
|
|
220
|
+
function capScalars(attributes) {
|
|
221
|
+
if (attributes === undefined)
|
|
222
|
+
return undefined;
|
|
223
|
+
const out = {};
|
|
224
|
+
for (const [key, value] of Object.entries(attributes)) {
|
|
225
|
+
out[key] = typeof value === "string" ? capValue(value, MAX_ATTR_VALUE_CHARS) : value;
|
|
226
|
+
}
|
|
227
|
+
return out;
|
|
228
|
+
}
|
|
229
|
+
/**
|
|
230
|
+
* Merge an event's redacted free-text fields and scalar attributes into one bag under a total-size +
|
|
231
|
+
* key-count budget (the same caps the recording row builder enforces, so one fat event can't blow
|
|
232
|
+
* past the OTLP body cap and drop the whole record). Scalars are added after the redact fields, so on
|
|
233
|
+
* a key collision the safe structured scalar wins over the free-text field — the redact slot is
|
|
234
|
+
* supplementary, not primary. Per-value capping already happened upstream. Runtime identity is
|
|
235
|
+
* layered on later in {@link buildLogAttributes} and stays authoritative.
|
|
236
|
+
*/
|
|
237
|
+
function mergeEventAttributes(attributes, redactFields) {
|
|
238
|
+
const merged = {};
|
|
239
|
+
let totalChars = 0;
|
|
240
|
+
let keyCount = 0;
|
|
241
|
+
const add = (key, value) => {
|
|
242
|
+
const cost = key.length + String(value).length;
|
|
243
|
+
if (keyCount >= MAX_BAG_KEYS || totalChars + cost > MAX_TOTAL_ATTR_CHARS)
|
|
244
|
+
return;
|
|
245
|
+
if (!(key in merged))
|
|
246
|
+
keyCount++;
|
|
247
|
+
merged[key] = value;
|
|
248
|
+
totalChars += cost;
|
|
249
|
+
};
|
|
250
|
+
if (redactFields !== undefined)
|
|
251
|
+
for (const [k, v] of Object.entries(redactFields))
|
|
252
|
+
add(k, v);
|
|
253
|
+
if (attributes !== undefined)
|
|
254
|
+
for (const [k, v] of Object.entries(attributes))
|
|
255
|
+
add(k, v);
|
|
256
|
+
return merged;
|
|
257
|
+
}
|
|
258
|
+
/**
|
|
259
|
+
* Emit one event LogRecord: the caller's safe scalar `attributes`, the (already capped) redacted
|
|
260
|
+
* free-text `redactFields`, `code.namespace`, runtime identity, and the catalog `name` as the OTel
|
|
261
|
+
* eventName. Severity is from `level`; the body is the narrative. `timestampMs` is the call-time
|
|
262
|
+
* stamp — passed explicitly so the redacted path (which emits a tick or more late) records the time
|
|
263
|
+
* the event happened, not the time redaction finished, keeping the log ordered by occurrence.
|
|
264
|
+
* `extra` carries exception semconv (`exception.*`) when the event also bore an error — layered in
|
|
265
|
+
* uncapped, like the warn/error path, so the stack survives the per-event size budget.
|
|
266
|
+
* Guarded — telemetry never disturbs the caller.
|
|
267
|
+
*/
|
|
268
|
+
function emitEventRecord(namespace, name, level, body, attributes, redactFields, timestampMs, extra) {
|
|
269
|
+
try {
|
|
270
|
+
const merged = buildLogAttributes(namespace, mergeEventAttributes(attributes, redactFields), extra);
|
|
271
|
+
logs.getLogger(LOGGER_SCOPE).emit({
|
|
272
|
+
timestamp: timestampMs,
|
|
273
|
+
severityNumber: severityByLevel[level],
|
|
274
|
+
severityText: level.toUpperCase(),
|
|
275
|
+
eventName: name,
|
|
276
|
+
body,
|
|
277
|
+
attributes: merged,
|
|
278
|
+
});
|
|
279
|
+
}
|
|
280
|
+
catch {
|
|
281
|
+
// A telemetry-side failure must never disturb the logging caller.
|
|
282
|
+
}
|
|
283
|
+
}
|
|
284
|
+
/**
|
|
285
|
+
* Redact the free-text fields (already capped) and emit, re-entering the captured trace context so
|
|
286
|
+
* the deferred LogRecord still carries the active span's `trace_id`/`span_id` and runtime identity.
|
|
287
|
+
* Redaction is intrinsically async (the redactor scans + awaits its mnemonic pre-pass), so this path
|
|
288
|
+
* cannot be made synchronous; the record carries the call-time `timestampMs`, so a consumer sorting
|
|
289
|
+
* by timestamp sees it in occurrence order regardless of how late redaction finishes. Fire-and-forget:
|
|
290
|
+
* the caller's `void` contract holds. Any failure — a thrown redactor, an emit error — is swallowed;
|
|
291
|
+
* an individual string whose redaction throws is dropped rather than emitted raw, so nothing
|
|
292
|
+
* unredacted reaches the wire on this path.
|
|
293
|
+
*/
|
|
294
|
+
function emitEventRedacted(redactor, captured, namespace, name, level, body, attributes, redactFields, timestampMs, extra) {
|
|
295
|
+
void (async () => {
|
|
296
|
+
try {
|
|
297
|
+
const redacted = {};
|
|
298
|
+
for (const [key, value] of Object.entries(redactFields)) {
|
|
299
|
+
try {
|
|
300
|
+
redacted[key] = await redactor.redact(value);
|
|
301
|
+
}
|
|
302
|
+
catch {
|
|
303
|
+
// Drop a value whose redaction threw rather than emit it unredacted.
|
|
304
|
+
}
|
|
305
|
+
}
|
|
306
|
+
context.with(captured, () => {
|
|
307
|
+
emitEventRecord(namespace, name, level, body, attributes, redacted, timestampMs, extra);
|
|
308
|
+
});
|
|
309
|
+
}
|
|
310
|
+
catch {
|
|
311
|
+
// The whole deferred path is fire-and-forget; no failure may surface as an
|
|
312
|
+
// unhandled rejection on the caller's process.
|
|
313
|
+
}
|
|
314
|
+
})();
|
|
315
|
+
}
|
|
316
|
+
/**
|
|
317
|
+
* Effective severity for an event: the catalogued canonical level is a FLOOR. A caller may escalate
|
|
318
|
+
* a catalogued event (e.g. an outcome that failed → `error`), but may never label it below its
|
|
319
|
+
* canonical severity (an `order.failed` stays `error` even if a caller passes `info`).
|
|
320
|
+
*/
|
|
321
|
+
function effectiveEventLevel(name, level) {
|
|
322
|
+
const canonical = canonicalSeverity(name);
|
|
323
|
+
return levelOrder[level] >= levelOrder[canonical] ? level : canonical;
|
|
324
|
+
}
|
|
75
325
|
export function createLogger(namespace) {
|
|
76
326
|
return {
|
|
77
|
-
debug(message,
|
|
327
|
+
debug(message, attributes) {
|
|
78
328
|
if (!shouldLog("debug"))
|
|
79
329
|
return;
|
|
80
330
|
const prefix = `${namespace} [debug]`;
|
|
81
|
-
if (
|
|
82
|
-
console.log(prefix, message,
|
|
331
|
+
if (attributes !== undefined) {
|
|
332
|
+
console.log(prefix, message, attributes);
|
|
83
333
|
}
|
|
84
334
|
else {
|
|
85
335
|
console.log(prefix, message);
|
|
86
336
|
}
|
|
337
|
+
emitLogRecord(namespace, "debug", message, attributes);
|
|
87
338
|
},
|
|
88
|
-
info(message,
|
|
339
|
+
info(message, attributes) {
|
|
89
340
|
if (!shouldLog("info"))
|
|
90
341
|
return;
|
|
91
342
|
const prefix = `${namespace} [info]`;
|
|
92
|
-
if (
|
|
93
|
-
console.log(prefix, message,
|
|
343
|
+
if (attributes !== undefined) {
|
|
344
|
+
console.log(prefix, message, attributes);
|
|
94
345
|
}
|
|
95
346
|
else {
|
|
96
347
|
console.log(prefix, message);
|
|
97
348
|
}
|
|
349
|
+
emitLogRecord(namespace, "info", message, attributes);
|
|
98
350
|
},
|
|
99
|
-
warn(message,
|
|
351
|
+
warn(message, error, attributes) {
|
|
100
352
|
if (!shouldLog("warn"))
|
|
101
353
|
return;
|
|
102
|
-
|
|
103
|
-
if (meta !== undefined) {
|
|
104
|
-
console.warn(prefix, message, meta);
|
|
105
|
-
}
|
|
106
|
-
else {
|
|
107
|
-
console.warn(prefix, message);
|
|
108
|
-
}
|
|
354
|
+
emitErrorAwareRecord(namespace, "warn", message, error, attributes);
|
|
109
355
|
},
|
|
110
|
-
error(message,
|
|
356
|
+
error(message, error, attributes) {
|
|
111
357
|
if (!shouldLog("error"))
|
|
112
358
|
return;
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
359
|
+
emitErrorAwareRecord(namespace, "error", message, error, attributes);
|
|
360
|
+
},
|
|
361
|
+
event(name, level, opts) {
|
|
362
|
+
// The catalog severity is a floor — a caller may escalate but never demote a catalogued event.
|
|
363
|
+
const effectiveLevel = effectiveEventLevel(name, level);
|
|
364
|
+
// Stamp once, synchronously, so the redacted (deferred) path records when the event happened —
|
|
365
|
+
// not when redaction finished — and async redaction can never reorder the log.
|
|
366
|
+
const timestampMs = Date.now();
|
|
367
|
+
const { body, redact, error } = opts;
|
|
368
|
+
const attributes = capScalars(opts.attributes);
|
|
369
|
+
// Local sink: persist the capped scalars + body to the per-strategy on-disk ring so the agent
|
|
370
|
+
// can query the narrative without a collector. Fire-and-forget; never carries the redact slot.
|
|
371
|
+
appendDomainEvent(name, effectiveLevel, body, attributes, timestampMs);
|
|
372
|
+
// An error makes this catalogued event also a fault: stamp exception.* semconv (uncapped, via
|
|
373
|
+
// `extra`) and record it on the active span — synchronously here, so the deferred redacted path
|
|
374
|
+
// can't lose the call-time span. No notifier fan-out: severity is the caller's `level` to grade.
|
|
375
|
+
let exceptionExtra;
|
|
376
|
+
if (error !== undefined) {
|
|
377
|
+
exceptionExtra = exceptionAttributes(normalizeException(error));
|
|
378
|
+
recordExceptionOnActiveSpan(error, effectiveLevel);
|
|
379
|
+
}
|
|
380
|
+
// The event log is the trade narrative and must never go dark: the collector emit below and the
|
|
381
|
+
// local ring above are both unconditional. The narrative info/warn/error console logs (emitted
|
|
382
|
+
// at the call sites) carry docker stdout, so events no longer mirror to the console here.
|
|
383
|
+
const hasRedactFields = redact !== undefined && Object.keys(redact).length > 0;
|
|
384
|
+
if (!hasRedactFields) {
|
|
385
|
+
emitEventRecord(namespace, name, effectiveLevel, body, attributes, undefined, timestampMs, exceptionExtra);
|
|
386
|
+
return;
|
|
116
387
|
}
|
|
117
|
-
|
|
118
|
-
|
|
388
|
+
const capped = capRedactFields(redact);
|
|
389
|
+
const redactor = getDefaultPiiRedactor();
|
|
390
|
+
// No redactor (boot window or tests): fail-safe — emit body + scalars, drop the redact fields
|
|
391
|
+
// rather than let an unredacted free-text value reach the wire.
|
|
392
|
+
if (redactor === null) {
|
|
393
|
+
emitEventRecord(namespace, name, effectiveLevel, body, attributes, undefined, timestampMs, exceptionExtra);
|
|
394
|
+
return;
|
|
119
395
|
}
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
message,
|
|
124
|
-
meta,
|
|
125
|
-
timestamp: new Date().toISOString(),
|
|
126
|
-
});
|
|
396
|
+
// Defer only this record behind the async redaction, re-entering the captured trace context.
|
|
397
|
+
// The call-time timestamp above keeps it ordered despite the deferral.
|
|
398
|
+
emitEventRedacted(redactor, context.active(), namespace, name, effectiveLevel, body, attributes, capped, timestampMs, exceptionExtra);
|
|
127
399
|
},
|
|
128
400
|
};
|
|
129
401
|
}
|
|
402
|
+
/**
|
|
403
|
+
* A complete {@link Logger} that discards everything. Use it as an explicit "be silent here" default
|
|
404
|
+
* (e.g. tests, or a consumer that doesn't wire logging) instead of hand-rolling a partial object —
|
|
405
|
+
* being defined alongside {@link Logger} it always satisfies the full contract as the interface grows.
|
|
406
|
+
*/
|
|
407
|
+
export const noopLogger = {
|
|
408
|
+
debug: () => { },
|
|
409
|
+
info: () => { },
|
|
410
|
+
warn: () => { },
|
|
411
|
+
error: () => { },
|
|
412
|
+
event: () => { },
|
|
413
|
+
};
|
|
414
|
+
/**
|
|
415
|
+
* Shared warn/error path: discriminate the error vs attributes args, scavenge any bag error, render
|
|
416
|
+
* the human line (with the error object, so the stack shows locally), emit the structured record
|
|
417
|
+
* with `exception.*` attributes, record on the active span, and — for `error` — fan out one
|
|
418
|
+
* normalized notification built from the same values.
|
|
419
|
+
*/
|
|
420
|
+
function emitErrorAwareRecord(namespace, level, message, arg2, arg3) {
|
|
421
|
+
let { error, attributes } = resolveErrorArgs(arg2, arg3);
|
|
422
|
+
let scavenged = false;
|
|
423
|
+
// Always strip raw Errors from the bag so they can't slip through as invalid OTel attributes;
|
|
424
|
+
// adopt the lifted one as the exception only when the caller passed no explicit error.
|
|
425
|
+
const found = scavengeBagError(attributes);
|
|
426
|
+
if (found !== null) {
|
|
427
|
+
attributes = found.cleaned;
|
|
428
|
+
if (error === undefined) {
|
|
429
|
+
error = found.error;
|
|
430
|
+
scavenged = true;
|
|
431
|
+
}
|
|
432
|
+
}
|
|
433
|
+
const exception = error !== undefined ? normalizeException(error) : undefined;
|
|
434
|
+
let extra;
|
|
435
|
+
if (exception !== undefined)
|
|
436
|
+
extra = exceptionAttributes(exception);
|
|
437
|
+
if (scavenged)
|
|
438
|
+
extra = { ...extra, "code.error.scavenged": true };
|
|
439
|
+
const prefix = `${namespace} [${level}]`;
|
|
440
|
+
const extras = [];
|
|
441
|
+
if (error !== undefined)
|
|
442
|
+
extras.push(error);
|
|
443
|
+
if (attributes !== undefined)
|
|
444
|
+
extras.push(attributes);
|
|
445
|
+
const sink = level === "warn" ? console.warn : console.error;
|
|
446
|
+
sink(prefix, message, ...extras);
|
|
447
|
+
emitLogRecord(namespace, level, message, attributes, extra);
|
|
448
|
+
if (error !== undefined)
|
|
449
|
+
recordExceptionOnActiveSpan(error, level);
|
|
450
|
+
if (level === "error") {
|
|
451
|
+
dispatchErrorNotification({
|
|
452
|
+
namespace,
|
|
453
|
+
level: "error",
|
|
454
|
+
message,
|
|
455
|
+
// The caller's bag without the error (which rides in `exception`) — not the `composed`
|
|
456
|
+
// bag, whose folded-in `exception.*` keys would duplicate the exception block.
|
|
457
|
+
attributes,
|
|
458
|
+
exception,
|
|
459
|
+
timestamp: new Date().toISOString(),
|
|
460
|
+
});
|
|
461
|
+
}
|
|
462
|
+
}
|
|
130
463
|
//# sourceMappingURL=logger.js.map
|
package/dist/utils/logger.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wallet-address.d.ts","sourceRoot":"","sources":["../../src/utils/wallet-address.ts"],"names":[],"mappings":"AAaA,iGAAiG;AACjG,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAExD"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Wallet-address path safety. The per-strategy event store and risk-audit log build on-disk paths
|
|
3
|
+
* from a caller-supplied wallet (`{stateDir}/strategies/{address}/…`), so a read RPC could otherwise
|
|
4
|
+
* smuggle `../../..` through and escape the strategy dir. This is the single shared guard the read
|
|
5
|
+
* paths route through before touching the filesystem.
|
|
6
|
+
*
|
|
7
|
+
* The check is `0x` + hex (case-insensitive, surrounding whitespace tolerated) — it rejects path
|
|
8
|
+
* separators, `..`, NUL, and any non-hex junk, which is what closes the traversal vector. It is
|
|
9
|
+
* deliberately NOT length-pinned to 40 hex chars: routing only needs path safety, and short fixtures
|
|
10
|
+
* stay valid.
|
|
11
|
+
*/
|
|
12
|
+
const WALLET_RE = /^0x[a-f0-9]+$/;
|
|
13
|
+
/** True when `address` is a path-safe wallet (`0x` + hex). Trims + lowercases before testing. */
|
|
14
|
+
export function isWalletAddress(address) {
|
|
15
|
+
return WALLET_RE.test(address.trim().toLowerCase());
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=wallet-address.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wallet-address.js","sourceRoot":"","sources":["../../src/utils/wallet-address.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,MAAM,SAAS,GAAG,eAAe,CAAC;AAElC,iGAAiG;AACjG,MAAM,UAAU,eAAe,CAAC,OAAe;IAC7C,OAAO,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC;AACtD,CAAC"}
|