@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
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Defensive readers for untyped bus payloads. The subscriber reads loosely-typed event data and
|
|
3
|
-
* must never throw while doing so, so every accessor coerces or returns `undefined` rather than
|
|
4
|
-
* trusting a shape.
|
|
5
|
-
*/
|
|
6
|
-
/** A plain object, or `undefined` for anything else (null, array, primitive). */
|
|
7
|
-
export function asObject(value) {
|
|
8
|
-
if (value !== null && typeof value === "object" && !Array.isArray(value)) {
|
|
9
|
-
return value;
|
|
10
|
-
}
|
|
11
|
-
return undefined;
|
|
12
|
-
}
|
|
13
|
-
/** A non-empty string, or `undefined`. */
|
|
14
|
-
export function str(value) {
|
|
15
|
-
return typeof value === "string" && value.length > 0 ? value : undefined;
|
|
16
|
-
}
|
|
17
|
-
/** A finite number, coercing numeric strings; `undefined` otherwise. */
|
|
18
|
-
export function num(value) {
|
|
19
|
-
if (typeof value === "number")
|
|
20
|
-
return Number.isFinite(value) ? value : undefined;
|
|
21
|
-
if (typeof value === "string" && value.trim() !== "") {
|
|
22
|
-
const n = Number(value);
|
|
23
|
-
return Number.isFinite(n) ? n : undefined;
|
|
24
|
-
}
|
|
25
|
-
return undefined;
|
|
26
|
-
}
|
|
27
|
-
/** A boolean, or `undefined` (so absence stays distinct from `false`). */
|
|
28
|
-
export function bool(value) {
|
|
29
|
-
return typeof value === "boolean" ? value : undefined;
|
|
30
|
-
}
|
|
31
|
-
/**
|
|
32
|
-
* ISO string or epoch-ms number → epoch ms. Falls back to `fallbackMs` when the value is missing
|
|
33
|
-
* or unparseable, so a record always carries a usable timestamp instead of `NaN`.
|
|
34
|
-
*/
|
|
35
|
-
export function toEpochMs(value, fallbackMs) {
|
|
36
|
-
if (typeof value === "number")
|
|
37
|
-
return Number.isFinite(value) ? value : fallbackMs;
|
|
38
|
-
if (typeof value === "string") {
|
|
39
|
-
// A purely-numeric string is epoch ms, not a date to parse (Date.parse would mangle it).
|
|
40
|
-
if (/^-?\d+$/.test(value.trim())) {
|
|
41
|
-
const n = Number(value);
|
|
42
|
-
return Number.isFinite(n) ? n : fallbackMs;
|
|
43
|
-
}
|
|
44
|
-
const ms = Date.parse(value);
|
|
45
|
-
return Number.isNaN(ms) ? fallbackMs : ms;
|
|
46
|
-
}
|
|
47
|
-
return fallbackMs;
|
|
48
|
-
}
|
|
49
|
-
//# sourceMappingURL=values.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"values.js","sourceRoot":"","sources":["../../../src/recording/wiring/values.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,iFAAiF;AACjF,MAAM,UAAU,QAAQ,CAAC,KAAc;IACrC,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzE,OAAO,KAAgC,CAAC;IAC1C,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,0CAA0C;AAC1C,MAAM,UAAU,GAAG,CAAC,KAAc;IAChC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AAC3E,CAAC;AAED,wEAAwE;AACxE,MAAM,UAAU,GAAG,CAAC,KAAc;IAChC,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;IACjF,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;QACrD,MAAM,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;QACxB,OAAO,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC5C,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,0EAA0E;AAC1E,MAAM,UAAU,IAAI,CAAC,KAAc;IACjC,OAAO,OAAO,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AACxD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,SAAS,CAAC,KAAc,EAAE,UAAkB;IAC1D,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC;IAClF,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,yFAAyF;QACzF,IAAI,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;YACjC,MAAM,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;YACxB,OAAO,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;QAC7C,CAAC;QACD,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC7B,OAAO,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;IAC5C,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC"}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Build {@link RehydrateItem}s for the PositionIdRegistry at boot.
|
|
3
|
-
*
|
|
4
|
-
* One confirmed entry per active DSL state, keyed on (wallet, dex, asset), so a
|
|
5
|
-
* re-observed OPENED after a restart does not re-mint. Pre-positionId state files fall
|
|
6
|
-
* back to the legacy correlationId — the same fallback the DSL emit sites use, so every
|
|
7
|
-
* consumer converges on one id for a pre-deploy position.
|
|
8
|
-
*
|
|
9
|
-
* Pure: takes the already-loaded states, returns the items. The runtime reads DSL
|
|
10
|
-
* states from the StateManager.
|
|
11
|
-
*/
|
|
12
|
-
import { type RehydrateItem } from "./position-id-registry.js";
|
|
13
|
-
import type { DslState } from "../types/dsl/index.js";
|
|
14
|
-
export declare function buildRehydrateItems(dslStates: DslState[]): RehydrateItem[];
|
|
15
|
-
//# sourceMappingURL=build-rehydrate-items.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"build-rehydrate-items.d.ts","sourceRoot":"","sources":["../../src/tracking/build-rehydrate-items.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,EAAuB,KAAK,aAAa,EAAE,MAAM,2BAA2B,CAAC;AACpF,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAEtD,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,QAAQ,EAAE,GAAG,aAAa,EAAE,CAK1E"}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Build {@link RehydrateItem}s for the PositionIdRegistry at boot.
|
|
3
|
-
*
|
|
4
|
-
* One confirmed entry per active DSL state, keyed on (wallet, dex, asset), so a
|
|
5
|
-
* re-observed OPENED after a restart does not re-mint. Pre-positionId state files fall
|
|
6
|
-
* back to the legacy correlationId — the same fallback the DSL emit sites use, so every
|
|
7
|
-
* consumer converges on one id for a pre-deploy position.
|
|
8
|
-
*
|
|
9
|
-
* Pure: takes the already-loaded states, returns the items. The runtime reads DSL
|
|
10
|
-
* states from the StateManager.
|
|
11
|
-
*/
|
|
12
|
-
import { positionRegistryKey } from "./position-id-registry.js";
|
|
13
|
-
export function buildRehydrateItems(dslStates) {
|
|
14
|
-
return dslStates.map((state) => ({
|
|
15
|
-
key: positionRegistryKey(state.wallet, state.dex, state.asset),
|
|
16
|
-
entry: { positionId: state.positionId ?? state.correlationId },
|
|
17
|
-
}));
|
|
18
|
-
}
|
|
19
|
-
//# sourceMappingURL=build-rehydrate-items.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"build-rehydrate-items.js","sourceRoot":"","sources":["../../src/tracking/build-rehydrate-items.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,EAAE,mBAAmB,EAAsB,MAAM,2BAA2B,CAAC;AAGpF,MAAM,UAAU,mBAAmB,CAAC,SAAqB;IACvD,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAC/B,GAAG,EAAE,mBAAmB,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,KAAK,CAAC;QAC9D,KAAK,EAAE,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,IAAI,KAAK,CAAC,aAAa,EAAE;KAC/D,CAAC,CAAC,CAAC;AACN,CAAC"}
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Tracking constants: API endpoints, flush thresholds, bus event → tracking event mapping.
|
|
3
|
-
*/
|
|
4
|
-
export declare const TRACKING_API_BASE_URL = "https://agent-telemetry.prod.senpi.ai";
|
|
5
|
-
export declare const TRACKING_API_PATH = "/api/v1/tracking/events";
|
|
6
|
-
export declare const FLUSH_INTERVAL_MS = 10000;
|
|
7
|
-
export declare const FLUSH_THRESHOLD = 50;
|
|
8
|
-
export declare const MAX_BUFFER_SIZE = 500;
|
|
9
|
-
export interface TrackingEventMapping {
|
|
10
|
-
eventType: string;
|
|
11
|
-
category: string;
|
|
12
|
-
}
|
|
13
|
-
/**
|
|
14
|
-
* Static mapping for bus events whose tracking event type is always the same.
|
|
15
|
-
* Decision and action result events require runtime inspection (Phase 2).
|
|
16
|
-
*/
|
|
17
|
-
export declare const BUS_EVENT_MAP: Record<string, TrackingEventMapping>;
|
|
18
|
-
/**
|
|
19
|
-
* Decision events require payload inspection to determine the exact eventType.
|
|
20
|
-
* The bus event name is "tracking.decision"; the handler resolves the specific type.
|
|
21
|
-
*/
|
|
22
|
-
export declare const TRACKING_DECISION_BUS_EVENT = "tracking.decision";
|
|
23
|
-
export declare const TRACKING_ACTION_RESULT_BUS_EVENT = "tracking.action_result";
|
|
24
|
-
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/tracking/constants.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,eAAO,MAAM,qBAAqB,0CAA0C,CAAC;AAC7E,eAAO,MAAM,iBAAiB,4BAA4B,CAAC;AAI3D,eAAO,MAAM,iBAAiB,QAAS,CAAC;AACxC,eAAO,MAAM,eAAe,KAAK,CAAC;AAClC,eAAO,MAAM,eAAe,MAAM,CAAC;AAInC,MAAM,WAAW,oBAAoB;IACnC,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;GAGG;AACH,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAmC9D,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,2BAA2B,sBAAsB,CAAC;AAC/D,eAAO,MAAM,gCAAgC,2BAA2B,CAAC"}
|
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Tracking constants: API endpoints, flush thresholds, bus event → tracking event mapping.
|
|
3
|
-
*/
|
|
4
|
-
// ─── API ────────────────────────────────────────────────────────────────────
|
|
5
|
-
export const TRACKING_API_BASE_URL = "https://agent-telemetry.prod.senpi.ai";
|
|
6
|
-
export const TRACKING_API_PATH = "/api/v1/tracking/events";
|
|
7
|
-
// ─── Batching thresholds ────────────────────────────────────────────────────
|
|
8
|
-
export const FLUSH_INTERVAL_MS = 10_000;
|
|
9
|
-
export const FLUSH_THRESHOLD = 50;
|
|
10
|
-
export const MAX_BUFFER_SIZE = 500;
|
|
11
|
-
/**
|
|
12
|
-
* Static mapping for bus events whose tracking event type is always the same.
|
|
13
|
-
* Decision and action result events require runtime inspection (Phase 2).
|
|
14
|
-
*/
|
|
15
|
-
export const BUS_EVENT_MAP = {
|
|
16
|
-
// Position lifecycle
|
|
17
|
-
on_signal_detected: { eventType: "position.signal_detected", category: "position" },
|
|
18
|
-
on_open_order_submitted: { eventType: "position.open_order_submitted", category: "position" },
|
|
19
|
-
on_position_opened: { eventType: "position.opened", category: "position" },
|
|
20
|
-
on_position_closed: { eventType: "position.closed", category: "position" },
|
|
21
|
-
on_position_flipped: { eventType: "position.flipped", category: "position" },
|
|
22
|
-
on_position_increased: { eventType: "position.increased", category: "position" },
|
|
23
|
-
on_position_decreased: { eventType: "position.decreased", category: "position" },
|
|
24
|
-
// DSL
|
|
25
|
-
"dsl.created": { eventType: "dsl.created", category: "dsl" },
|
|
26
|
-
"dsl.phase_changed": { eventType: "dsl.phase_changed", category: "dsl" },
|
|
27
|
-
"dsl.tier_advanced": { eventType: "dsl.tier_advanced", category: "dsl" },
|
|
28
|
-
"dsl.sl_updated": { eventType: "dsl.sl_updated", category: "dsl" },
|
|
29
|
-
"dsl.closed": { eventType: "dsl.closed", category: "dsl" },
|
|
30
|
-
"dsl.close_pending": { eventType: "dsl.close_pending", category: "dsl" },
|
|
31
|
-
"dsl.deleted": { eventType: "dsl.deleted", category: "dsl" },
|
|
32
|
-
// Error
|
|
33
|
-
signal_processing_error: { eventType: "error.signal_processing", category: "error" },
|
|
34
|
-
// Lifecycle (emitted by runtime in Phase 2)
|
|
35
|
-
"tracking.runtime_started": { eventType: "lifecycle.runtime.started", category: "lifecycle" },
|
|
36
|
-
"tracking.runtime_stopped": { eventType: "lifecycle.runtime.stopped", category: "lifecycle" },
|
|
37
|
-
/** Plugin-scoped: registry install (before `run()`). */
|
|
38
|
-
"tracking.runtime_created": { eventType: "lifecycle.runtime.created", category: "lifecycle" },
|
|
39
|
-
/** Plugin-scoped: registry delete (before `writeRegistry`). */
|
|
40
|
-
"tracking.runtime_deleted": { eventType: "lifecycle.runtime.deleted", category: "lifecycle" },
|
|
41
|
-
// Scanner (emitted by runtime in Phase 2)
|
|
42
|
-
"tracking.scanner_run": { eventType: "scanner.run.complete", category: "scanner" },
|
|
43
|
-
// Reconcile (emitted by runtime boot reconcile loop — T5)
|
|
44
|
-
"tracking.runtime_reconciled": { eventType: "lifecycle.runtime.reconciled", category: "lifecycle" },
|
|
45
|
-
};
|
|
46
|
-
/**
|
|
47
|
-
* Decision events require payload inspection to determine the exact eventType.
|
|
48
|
-
* The bus event name is "tracking.decision"; the handler resolves the specific type.
|
|
49
|
-
*/
|
|
50
|
-
export const TRACKING_DECISION_BUS_EVENT = "tracking.decision";
|
|
51
|
-
export const TRACKING_ACTION_RESULT_BUS_EVENT = "tracking.action_result";
|
|
52
|
-
//# sourceMappingURL=constants.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/tracking/constants.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,+EAA+E;AAE/E,MAAM,CAAC,MAAM,qBAAqB,GAAG,uCAAuC,CAAC;AAC7E,MAAM,CAAC,MAAM,iBAAiB,GAAG,yBAAyB,CAAC;AAE3D,+EAA+E;AAE/E,MAAM,CAAC,MAAM,iBAAiB,GAAG,MAAM,CAAC;AACxC,MAAM,CAAC,MAAM,eAAe,GAAG,EAAE,CAAC;AAClC,MAAM,CAAC,MAAM,eAAe,GAAG,GAAG,CAAC;AASnC;;;GAGG;AACH,MAAM,CAAC,MAAM,aAAa,GAAyC;IACjE,qBAAqB;IACrB,kBAAkB,EAAE,EAAE,SAAS,EAAE,0BAA0B,EAAE,QAAQ,EAAE,UAAU,EAAE;IACnF,uBAAuB,EAAE,EAAE,SAAS,EAAE,+BAA+B,EAAE,QAAQ,EAAE,UAAU,EAAE;IAC7F,kBAAkB,EAAE,EAAE,SAAS,EAAE,iBAAiB,EAAE,QAAQ,EAAE,UAAU,EAAE;IAC1E,kBAAkB,EAAE,EAAE,SAAS,EAAE,iBAAiB,EAAE,QAAQ,EAAE,UAAU,EAAE;IAC1E,mBAAmB,EAAE,EAAE,SAAS,EAAE,kBAAkB,EAAE,QAAQ,EAAE,UAAU,EAAE;IAC5E,qBAAqB,EAAE,EAAE,SAAS,EAAE,oBAAoB,EAAE,QAAQ,EAAE,UAAU,EAAE;IAChF,qBAAqB,EAAE,EAAE,SAAS,EAAE,oBAAoB,EAAE,QAAQ,EAAE,UAAU,EAAE;IAEhF,MAAM;IACN,aAAa,EAAE,EAAE,SAAS,EAAE,aAAa,EAAE,QAAQ,EAAE,KAAK,EAAE;IAC5D,mBAAmB,EAAE,EAAE,SAAS,EAAE,mBAAmB,EAAE,QAAQ,EAAE,KAAK,EAAE;IACxE,mBAAmB,EAAE,EAAE,SAAS,EAAE,mBAAmB,EAAE,QAAQ,EAAE,KAAK,EAAE;IACxE,gBAAgB,EAAE,EAAE,SAAS,EAAE,gBAAgB,EAAE,QAAQ,EAAE,KAAK,EAAE;IAClE,YAAY,EAAE,EAAE,SAAS,EAAE,YAAY,EAAE,QAAQ,EAAE,KAAK,EAAE;IAC1D,mBAAmB,EAAE,EAAE,SAAS,EAAE,mBAAmB,EAAE,QAAQ,EAAE,KAAK,EAAE;IACxE,aAAa,EAAE,EAAE,SAAS,EAAE,aAAa,EAAE,QAAQ,EAAE,KAAK,EAAE;IAE5D,QAAQ;IACR,uBAAuB,EAAE,EAAE,SAAS,EAAE,yBAAyB,EAAE,QAAQ,EAAE,OAAO,EAAE;IAEpF,4CAA4C;IAC5C,0BAA0B,EAAE,EAAE,SAAS,EAAE,2BAA2B,EAAE,QAAQ,EAAE,WAAW,EAAE;IAC7F,0BAA0B,EAAE,EAAE,SAAS,EAAE,2BAA2B,EAAE,QAAQ,EAAE,WAAW,EAAE;IAC7F,wDAAwD;IACxD,0BAA0B,EAAE,EAAE,SAAS,EAAE,2BAA2B,EAAE,QAAQ,EAAE,WAAW,EAAE;IAC7F,+DAA+D;IAC/D,0BAA0B,EAAE,EAAE,SAAS,EAAE,2BAA2B,EAAE,QAAQ,EAAE,WAAW,EAAE;IAE7F,0CAA0C;IAC1C,sBAAsB,EAAE,EAAE,SAAS,EAAE,sBAAsB,EAAE,QAAQ,EAAE,SAAS,EAAE;IAElF,0DAA0D;IAC1D,6BAA6B,EAAE,EAAE,SAAS,EAAE,8BAA8B,EAAE,QAAQ,EAAE,WAAW,EAAE;CACpG,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,mBAAmB,CAAC;AAC/D,MAAM,CAAC,MAAM,gCAAgC,GAAG,wBAAwB,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/tracking/context.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAErD,MAAM,WAAW,eAAe;IAC9B,aAAa,EAAE,MAAM,CAAC;IACtB,sFAAsF;IACtF,OAAO,EAAE,MAAM,CAAC;IAChB,iFAAiF;IACjF,UAAU,EAAE,MAAM,CAAC;IACnB,uEAAuE;IACvE,SAAS,EAAE,MAAM,CAAC;IAClB,sBAAsB;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,4FAA4F;IAC5F,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,eAAO,MAAM,eAAe,oCAA2C,CAAC;AAExE,0FAA0F;AAC1F,wBAAgB,kBAAkB,IAAI,eAAe,GAAG,IAAI,CAE3D"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/tracking/context.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAgBrD,MAAM,CAAC,MAAM,eAAe,GAAG,IAAI,iBAAiB,EAAmB,CAAC;AAExE,0FAA0F;AAC1F,MAAM,UAAU,kBAAkB;IAChC,OAAO,eAAe,CAAC,QAAQ,EAAE,IAAI,IAAI,CAAC;AAC5C,CAAC"}
|
package/dist/tracking/index.d.ts
DELETED
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Event tracking barrel export.
|
|
3
|
-
*/
|
|
4
|
-
export type { TrackingEvent, TrackingTransport } from "./types.js";
|
|
5
|
-
export { EventTracker } from "./tracker.js";
|
|
6
|
-
export type { CaptureOptions } from "./tracker.js";
|
|
7
|
-
export { BatchingTransport, NoOpTransport } from "./transport.js";
|
|
8
|
-
export type { BatchingTransportOptions } from "./transport.js";
|
|
9
|
-
export { createTrackingHandler } from "./tracking-handler.js";
|
|
10
|
-
export type { TrackingHandler } from "./tracking-handler.js";
|
|
11
|
-
export { TRACKING_API_BASE_URL } from "./constants.js";
|
|
12
|
-
export { createPluginEventTracker, PLUGIN_TRACKING_RUNTIME_NAME, } from "./plugin-event-tracker.js";
|
|
13
|
-
export { PositionIdRegistry, positionRegistryKey, PENDING_OPEN_STALE_MS, } from "./position-id-registry.js";
|
|
14
|
-
export type { Entry, RehydrateItem, PositionIdRegistryOptions, } from "./position-id-registry.js";
|
|
15
|
-
export { buildRehydrateItems } from "./build-rehydrate-items.js";
|
|
16
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tracking/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,YAAY,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,YAAY,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAClE,YAAY,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAC;AAC/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,YAAY,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AACvD,OAAO,EACL,wBAAwB,EACxB,4BAA4B,GAC7B,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACnB,qBAAqB,GACtB,MAAM,2BAA2B,CAAC;AACnC,YAAY,EACV,KAAK,EACL,aAAa,EACb,yBAAyB,GAC1B,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC"}
|
package/dist/tracking/index.js
DELETED
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Event tracking barrel export.
|
|
3
|
-
*/
|
|
4
|
-
export { EventTracker } from "./tracker.js";
|
|
5
|
-
export { BatchingTransport, NoOpTransport } from "./transport.js";
|
|
6
|
-
export { createTrackingHandler } from "./tracking-handler.js";
|
|
7
|
-
export { TRACKING_API_BASE_URL } from "./constants.js";
|
|
8
|
-
export { createPluginEventTracker, PLUGIN_TRACKING_RUNTIME_NAME, } from "./plugin-event-tracker.js";
|
|
9
|
-
export { PositionIdRegistry, positionRegistryKey, PENDING_OPEN_STALE_MS, } from "./position-id-registry.js";
|
|
10
|
-
export { buildRehydrateItems } from "./build-rehydrate-items.js";
|
|
11
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tracking/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE5C,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAElE,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAE9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AACvD,OAAO,EACL,wBAAwB,EACxB,4BAA4B,GAC7B,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACnB,qBAAqB,GACtB,MAAM,2BAA2B,CAAC;AAMnC,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC"}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* EventTracker for OpenClaw plugin–scoped lifecycle telemetry (install/delete).
|
|
3
|
-
* Uses the same transport contract as `Runtime` per-runtime tracking.
|
|
4
|
-
*/
|
|
5
|
-
import { EventTracker } from "./tracker.js";
|
|
6
|
-
/** Display name for envelopes when events are not tied to a single recipe instance. */
|
|
7
|
-
export declare const PLUGIN_TRACKING_RUNTIME_NAME = "senpi-plugin";
|
|
8
|
-
/**
|
|
9
|
-
* Tracker for `lifecycle.runtime.created` / `lifecycle.runtime.deleted`.
|
|
10
|
-
* Strategy wallet must be passed per capture via `address` when known.
|
|
11
|
-
*/
|
|
12
|
-
export declare function createPluginEventTracker(apiKey: string | undefined): EventTracker;
|
|
13
|
-
//# sourceMappingURL=plugin-event-tracker.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"plugin-event-tracker.d.ts","sourceRoot":"","sources":["../../src/tracking/plugin-event-tracker.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAK5C,uFAAuF;AACvF,eAAO,MAAM,4BAA4B,iBAAiB,CAAC;AAE3D;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,YAAY,CAWjF"}
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* EventTracker for OpenClaw plugin–scoped lifecycle telemetry (install/delete).
|
|
3
|
-
* Uses the same transport contract as `Runtime` per-runtime tracking.
|
|
4
|
-
*/
|
|
5
|
-
import { VERSION } from "../version.js";
|
|
6
|
-
import { createLogger } from "../utils/logger.js";
|
|
7
|
-
import { TRACKING_API_BASE_URL } from "./constants.js";
|
|
8
|
-
import { EventTracker } from "./tracker.js";
|
|
9
|
-
import { BatchingTransport, NoOpTransport } from "./transport.js";
|
|
10
|
-
const logger = createLogger("[senpi-core][plugin-tracking]");
|
|
11
|
-
/** Display name for envelopes when events are not tied to a single recipe instance. */
|
|
12
|
-
export const PLUGIN_TRACKING_RUNTIME_NAME = "senpi-plugin";
|
|
13
|
-
/**
|
|
14
|
-
* Tracker for `lifecycle.runtime.created` / `lifecycle.runtime.deleted`.
|
|
15
|
-
* Strategy wallet must be passed per capture via `address` when known.
|
|
16
|
-
*/
|
|
17
|
-
export function createPluginEventTracker(apiKey) {
|
|
18
|
-
const trackingBaseUrl = process.env.SENPI_TRACKING_URL ?? TRACKING_API_BASE_URL;
|
|
19
|
-
const transport = apiKey
|
|
20
|
-
? new BatchingTransport({ baseUrl: trackingBaseUrl, apiKey })
|
|
21
|
-
: (() => {
|
|
22
|
-
logger.warn("plugin lifecycle telemetry disabled: set SENPI_API_KEY (or pass apiKey) so events reach senpi-agent-telemetry; NoOpTransport drops events");
|
|
23
|
-
return new NoOpTransport();
|
|
24
|
-
})();
|
|
25
|
-
return new EventTracker(transport, PLUGIN_TRACKING_RUNTIME_NAME, VERSION, "");
|
|
26
|
-
}
|
|
27
|
-
//# sourceMappingURL=plugin-event-tracker.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"plugin-event-tracker.js","sourceRoot":"","sources":["../../src/tracking/plugin-event-tracker.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAElE,MAAM,MAAM,GAAG,YAAY,CAAC,+BAA+B,CAAC,CAAC;AAE7D,uFAAuF;AACvF,MAAM,CAAC,MAAM,4BAA4B,GAAG,cAAc,CAAC;AAE3D;;;GAGG;AACH,MAAM,UAAU,wBAAwB,CAAC,MAA0B;IACjE,MAAM,eAAe,GAAG,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,qBAAqB,CAAC;IAChF,MAAM,SAAS,GAAG,MAAM;QACtB,CAAC,CAAC,IAAI,iBAAiB,CAAC,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,EAAE,CAAC;QAC7D,CAAC,CAAC,CAAC,GAAG,EAAE;YACJ,MAAM,CAAC,IAAI,CACT,2IAA2I,CAC5I,CAAC;YACF,OAAO,IAAI,aAAa,EAAE,CAAC;QAC7B,CAAC,CAAC,EAAE,CAAC;IACT,OAAO,IAAI,YAAY,CAAC,SAAS,EAAE,4BAA4B,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;AAChF,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"position-id-registry.d.ts","sourceRoot":"","sources":["../../src/tracking/position-id-registry.ts"],"names":[],"mappings":"AAmCA,gGAAgG;AAChG,eAAO,MAAM,qBAAqB,QAAiB,CAAC;AAEpD;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAGtF;AAED,MAAM,WAAW,KAAK;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB;;;;;;;OAOG;IACH,oBAAoB,CAAC,EAAE,gBAAgB,GAAG,qBAAqB,CAAC;CACjE;AAED,8FAA8F;AAC9F,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,KAAK,CAAC;CACd;AAED,MAAM,WAAW,yBAAyB;IACxC,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IACnB,0DAA0D;IAC1D,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA4B;IACpD,6DAA6D;IAC7D,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAyD;IACjF,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAe;IACnC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;gBAErB,IAAI,GAAE,yBAA8B;IAKhD;;;;;OAKG;IACH,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,KAAK;IAYhC;;;;;OAKG;IACH,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,KAAK;IAkBhC;;;;OAIG;IACH,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,KAAK,GAAG,SAAS;IAOnC,4EAA4E;IAC5E,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAKhC,sEAAsE;IACtE,SAAS,CAAC,KAAK,EAAE,aAAa,EAAE,GAAG,IAAI;IAMvC;;;;OAIG;IACH,OAAO,CAAC,WAAW;CAapB"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"position-id-registry.js","sourceRoot":"","sources":["../../src/tracking/position-id-registry.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Span telemetry constants: API path, batching thresholds, orphan-sweep timings.
|
|
3
|
-
*/
|
|
4
|
-
export declare const SPANS_API_PATH = "/api/v1/tracking/spans";
|
|
5
|
-
export declare const FLUSH_INTERVAL_MS = 10000;
|
|
6
|
-
export declare const FLUSH_THRESHOLD = 50;
|
|
7
|
-
export declare const MAX_BUFFER_SIZE = 500;
|
|
8
|
-
export declare const STALE_TIMEOUT_MS: number;
|
|
9
|
-
export declare const SWEEP_INTERVAL_MS = 60000;
|
|
10
|
-
export declare const MAX_BATCH_BYTES = 8000000;
|
|
11
|
-
export declare const MAX_SPAN_FIELD_BYTES = 2000000;
|
|
12
|
-
/** First N chars of each truncated value retained for debugging context. */
|
|
13
|
-
export declare const TRUNCATED_PREVIEW_BYTES = 2000;
|
|
14
|
-
export declare const HEADER_CORRELATION_ID = "x-senpi-correlation-id";
|
|
15
|
-
export declare const HEADER_ADDRESS = "x-senpi-address";
|
|
16
|
-
export declare const HEADER_RECIPE_NAME = "x-senpi-recipe-name";
|
|
17
|
-
export declare const HEADER_RUNTIME_ID = "x-senpi-runtime-id";
|
|
18
|
-
export declare const HEADER_RUNTIME_VERSION = "x-senpi-runtime-version";
|
|
19
|
-
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/tracking/spans/constants.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,eAAO,MAAM,cAAc,2BAA2B,CAAC;AAGvD,eAAO,MAAM,iBAAiB,QAAS,CAAC;AACxC,eAAO,MAAM,eAAe,KAAK,CAAC;AAClC,eAAO,MAAM,eAAe,MAAM,CAAC;AAGnC,eAAO,MAAM,gBAAgB,QAAa,CAAC;AAC3C,eAAO,MAAM,iBAAiB,QAAS,CAAC;AAKxC,eAAO,MAAM,eAAe,UAAY,CAAC;AAQzC,eAAO,MAAM,oBAAoB,UAAY,CAAC;AAC9C,4EAA4E;AAC5E,eAAO,MAAM,uBAAuB,OAAQ,CAAC;AAG7C,eAAO,MAAM,qBAAqB,2BAA2B,CAAC;AAC9D,eAAO,MAAM,cAAc,oBAAoB,CAAC;AAChD,eAAO,MAAM,kBAAkB,wBAAwB,CAAC;AACxD,eAAO,MAAM,iBAAiB,uBAAuB,CAAC;AACtD,eAAO,MAAM,sBAAsB,4BAA4B,CAAC"}
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Span telemetry constants: API path, batching thresholds, orphan-sweep timings.
|
|
3
|
-
*/
|
|
4
|
-
export const SPANS_API_PATH = "/api/v1/tracking/spans";
|
|
5
|
-
// Transport batching — mirrors the events transport defaults.
|
|
6
|
-
export const FLUSH_INTERVAL_MS = 10_000;
|
|
7
|
-
export const FLUSH_THRESHOLD = 50;
|
|
8
|
-
export const MAX_BUFFER_SIZE = 500;
|
|
9
|
-
// In-memory span lifecycle — sweep abandoned spans so they don't accumulate.
|
|
10
|
-
export const STALE_TIMEOUT_MS = 5 * 60_000;
|
|
11
|
-
export const SWEEP_INTERVAL_MS = 60_000;
|
|
12
|
-
// Per-batch byte budget. We pack spans into a request until adding the next
|
|
13
|
-
// one would push us over this, then flush. Sized to fit comfortably under the
|
|
14
|
-
// ingest server's 10MB Fastify bodyLimit (set in senpi-agent-telemetry).
|
|
15
|
-
export const MAX_BATCH_BYTES = 8_000_000;
|
|
16
|
-
// Per-field byte cap for span.data top-level values. Acts as a safety net for
|
|
17
|
-
// genuinely pathological outputs (e.g. an `exec` that printed a multi-MB log,
|
|
18
|
-
// or a tool that returned a raw binary blob). Real chat-history payloads flow
|
|
19
|
-
// through unchanged after sanitize-payload strips framework metadata.
|
|
20
|
-
// Combined with the ingest server's 10MB body limit, only truly oversized
|
|
21
|
-
// fields trip this.
|
|
22
|
-
export const MAX_SPAN_FIELD_BYTES = 2_000_000;
|
|
23
|
-
/** First N chars of each truncated value retained for debugging context. */
|
|
24
|
-
export const TRUNCATED_PREVIEW_BYTES = 2_000;
|
|
25
|
-
// Header names used to cross the runtime → OpenClaw HTTP boundary.
|
|
26
|
-
export const HEADER_CORRELATION_ID = "x-senpi-correlation-id";
|
|
27
|
-
export const HEADER_ADDRESS = "x-senpi-address";
|
|
28
|
-
export const HEADER_RECIPE_NAME = "x-senpi-recipe-name";
|
|
29
|
-
export const HEADER_RUNTIME_ID = "x-senpi-runtime-id";
|
|
30
|
-
export const HEADER_RUNTIME_VERSION = "x-senpi-runtime-version";
|
|
31
|
-
//# sourceMappingURL=constants.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/tracking/spans/constants.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,CAAC,MAAM,cAAc,GAAG,wBAAwB,CAAC;AAEvD,8DAA8D;AAC9D,MAAM,CAAC,MAAM,iBAAiB,GAAG,MAAM,CAAC;AACxC,MAAM,CAAC,MAAM,eAAe,GAAG,EAAE,CAAC;AAClC,MAAM,CAAC,MAAM,eAAe,GAAG,GAAG,CAAC;AAEnC,6EAA6E;AAC7E,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,GAAG,MAAM,CAAC;AAC3C,MAAM,CAAC,MAAM,iBAAiB,GAAG,MAAM,CAAC;AAExC,4EAA4E;AAC5E,8EAA8E;AAC9E,yEAAyE;AACzE,MAAM,CAAC,MAAM,eAAe,GAAG,SAAS,CAAC;AAEzC,8EAA8E;AAC9E,8EAA8E;AAC9E,8EAA8E;AAC9E,sEAAsE;AACtE,0EAA0E;AAC1E,oBAAoB;AACpB,MAAM,CAAC,MAAM,oBAAoB,GAAG,SAAS,CAAC;AAC9C,4EAA4E;AAC5E,MAAM,CAAC,MAAM,uBAAuB,GAAG,KAAK,CAAC;AAE7C,mEAAmE;AACnE,MAAM,CAAC,MAAM,qBAAqB,GAAG,wBAAwB,CAAC;AAC9D,MAAM,CAAC,MAAM,cAAc,GAAG,iBAAiB,CAAC;AAChD,MAAM,CAAC,MAAM,kBAAkB,GAAG,qBAAqB,CAAC;AACxD,MAAM,CAAC,MAAM,iBAAiB,GAAG,oBAAoB,CAAC;AACtD,MAAM,CAAC,MAAM,sBAAsB,GAAG,yBAAyB,CAAC"}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Fan-out span transport — ships every span to N child transports.
|
|
3
|
-
*
|
|
4
|
-
* Used during the dual-write phase of the OTEL v2 cutover: the legacy
|
|
5
|
-
* `BatchingSpanTransport` (→ /api/v1/tracking/spans) and the new
|
|
6
|
-
* `RecordingSpanTransport` (→ /v1/traces) both receive every span.
|
|
7
|
-
*
|
|
8
|
-
* Isolation is load-bearing: a throw/rejection in one child must never starve
|
|
9
|
-
* the other, and `enqueue` must never throw back into the SpanTracker (which
|
|
10
|
-
* runs on the hook path). `flush`/`shutdown` await all children and never
|
|
11
|
-
* reject — a failing child is logged and swallowed.
|
|
12
|
-
*/
|
|
13
|
-
import type { SpanTransport, TrackingSpan } from "./types.js";
|
|
14
|
-
export declare class FanOutSpanTransport implements SpanTransport {
|
|
15
|
-
private readonly children;
|
|
16
|
-
constructor(children: SpanTransport[]);
|
|
17
|
-
enqueue(span: TrackingSpan): void;
|
|
18
|
-
flush(): Promise<void>;
|
|
19
|
-
shutdown(): Promise<void>;
|
|
20
|
-
private allSettled;
|
|
21
|
-
}
|
|
22
|
-
//# sourceMappingURL=fan-out-span-transport.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"fan-out-span-transport.d.ts","sourceRoot":"","sources":["../../../src/tracking/spans/fan-out-span-transport.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAK9D,qBAAa,mBAAoB,YAAW,aAAa;IAC3C,OAAO,CAAC,QAAQ,CAAC,QAAQ;gBAAR,QAAQ,EAAE,aAAa,EAAE;IAEtD,OAAO,CAAC,IAAI,EAAE,YAAY,GAAG,IAAI;IAY3B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAItB,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;YAIjB,UAAU;CAazB"}
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Fan-out span transport — ships every span to N child transports.
|
|
3
|
-
*
|
|
4
|
-
* Used during the dual-write phase of the OTEL v2 cutover: the legacy
|
|
5
|
-
* `BatchingSpanTransport` (→ /api/v1/tracking/spans) and the new
|
|
6
|
-
* `RecordingSpanTransport` (→ /v1/traces) both receive every span.
|
|
7
|
-
*
|
|
8
|
-
* Isolation is load-bearing: a throw/rejection in one child must never starve
|
|
9
|
-
* the other, and `enqueue` must never throw back into the SpanTracker (which
|
|
10
|
-
* runs on the hook path). `flush`/`shutdown` await all children and never
|
|
11
|
-
* reject — a failing child is logged and swallowed.
|
|
12
|
-
*/
|
|
13
|
-
import { createLogger } from "../../utils/logger.js";
|
|
14
|
-
const logger = createLogger("[senpi-core][fan-out-span-transport]");
|
|
15
|
-
export class FanOutSpanTransport {
|
|
16
|
-
children;
|
|
17
|
-
constructor(children) {
|
|
18
|
-
this.children = children;
|
|
19
|
-
}
|
|
20
|
-
enqueue(span) {
|
|
21
|
-
for (const child of this.children) {
|
|
22
|
-
try {
|
|
23
|
-
child.enqueue(span);
|
|
24
|
-
}
|
|
25
|
-
catch (err) {
|
|
26
|
-
logger.warn("child transport enqueue threw; swallowed", {
|
|
27
|
-
err: err instanceof Error ? err.message : String(err),
|
|
28
|
-
});
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
async flush() {
|
|
33
|
-
await this.allSettled((c) => c.flush(), "flush");
|
|
34
|
-
}
|
|
35
|
-
async shutdown() {
|
|
36
|
-
await this.allSettled((c) => c.shutdown(), "shutdown");
|
|
37
|
-
}
|
|
38
|
-
async allSettled(op, label) {
|
|
39
|
-
const results = await Promise.allSettled(this.children.map((c) => op(c)));
|
|
40
|
-
for (const r of results) {
|
|
41
|
-
if (r.status === "rejected") {
|
|
42
|
-
logger.warn(`child transport ${label} rejected; swallowed`, {
|
|
43
|
-
err: r.reason instanceof Error ? r.reason.message : String(r.reason),
|
|
44
|
-
});
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
//# sourceMappingURL=fan-out-span-transport.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"fan-out-span-transport.js","sourceRoot":"","sources":["../../../src/tracking/spans/fan-out-span-transport.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAGH,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAErD,MAAM,MAAM,GAAG,YAAY,CAAC,sCAAsC,CAAC,CAAC;AAEpE,MAAM,OAAO,mBAAmB;IACD;IAA7B,YAA6B,QAAyB;QAAzB,aAAQ,GAAR,QAAQ,CAAiB;IAAG,CAAC;IAE1D,OAAO,CAAC,IAAkB;QACxB,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClC,IAAI,CAAC;gBACH,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACtB,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,CAAC,IAAI,CAAC,0CAA0C,EAAE;oBACtD,GAAG,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;iBACtD,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;IAED,KAAK,CAAC,KAAK;QACT,MAAM,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,OAAO,CAAC,CAAC;IACnD,CAAC;IAED,KAAK,CAAC,QAAQ;QACZ,MAAM,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,EAAE,UAAU,CAAC,CAAC;IACzD,CAAC;IAEO,KAAK,CAAC,UAAU,CACtB,EAA2C,EAC3C,KAAa;QAEb,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1E,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;YACxB,IAAI,CAAC,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;gBAC5B,MAAM,CAAC,IAAI,CAAC,mBAAmB,KAAK,sBAAsB,EAAE;oBAC1D,GAAG,EAAE,CAAC,CAAC,MAAM,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;iBACrE,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;CACF"}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Span telemetry — barrel export.
|
|
3
|
-
*/
|
|
4
|
-
export type { EmissionSource, OpenSpan, OpenSubagentSpan, SpanTransport, SpanType, TrackingSpan, } from "./types.js";
|
|
5
|
-
export { SPANS_API_PATH, HEADER_CORRELATION_ID, HEADER_ADDRESS, HEADER_RECIPE_NAME, HEADER_RUNTIME_ID, HEADER_RUNTIME_VERSION, } from "./constants.js";
|
|
6
|
-
export { BatchingSpanTransport, NoOpSpanTransport, type BatchingSpanTransportOptions, } from "./span-transport.js";
|
|
7
|
-
export { SpanTracker, type AgentEndInput, type DirectLlmSpanInput, type DirectToolSpanInput, type FinalizeLlmSpanInput, type FinalizeSubagentInput, type FinalizeToolSpanInput, type MergeSubagentInput, type OpenLlmSpanInput, type OpenSubagentInput, type OpenToolSpanInput, type SpanContextFields, type SpanTrackerOptions, } from "./span-tracker.js";
|
|
8
|
-
export { registerSpanHooks, type RegisterSpanHooksOptions, type SpanHooksPluginApi, } from "./span-hooks.js";
|
|
9
|
-
export { createPluginSpanTracker } from "./plugin-span-tracker.js";
|
|
10
|
-
import type { SpanTracker as _SpanTracker } from "./span-tracker.js";
|
|
11
|
-
export declare function setDefaultSpanTracker(tracker: _SpanTracker | null): void;
|
|
12
|
-
export declare function getDefaultSpanTracker(): _SpanTracker | null;
|
|
13
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tracking/spans/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,YAAY,EACV,cAAc,EACd,QAAQ,EACR,gBAAgB,EAChB,aAAa,EACb,QAAQ,EACR,YAAY,GACb,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,cAAc,EACd,qBAAqB,EACrB,cAAc,EACd,kBAAkB,EAClB,iBAAiB,EACjB,sBAAsB,GACvB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,qBAAqB,EACrB,iBAAiB,EACjB,KAAK,4BAA4B,GAClC,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,WAAW,EACX,KAAK,aAAa,EAClB,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EACxB,KAAK,oBAAoB,EACzB,KAAK,qBAAqB,EAC1B,KAAK,qBAAqB,EAC1B,KAAK,kBAAkB,EACvB,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,GACxB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,iBAAiB,EACjB,KAAK,wBAAwB,EAC7B,KAAK,kBAAkB,GACxB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AAMnE,OAAO,KAAK,EAAE,WAAW,IAAI,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAErE,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI,GAAG,IAAI,CAExE;AACD,wBAAgB,qBAAqB,IAAI,YAAY,GAAG,IAAI,CAE3D"}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Span telemetry — barrel export.
|
|
3
|
-
*/
|
|
4
|
-
export { SPANS_API_PATH, HEADER_CORRELATION_ID, HEADER_ADDRESS, HEADER_RECIPE_NAME, HEADER_RUNTIME_ID, HEADER_RUNTIME_VERSION, } from "./constants.js";
|
|
5
|
-
export { BatchingSpanTransport, NoOpSpanTransport, } from "./span-transport.js";
|
|
6
|
-
export { SpanTracker, } from "./span-tracker.js";
|
|
7
|
-
export { registerSpanHooks, } from "./span-hooks.js";
|
|
8
|
-
export { createPluginSpanTracker } from "./plugin-span-tracker.js";
|
|
9
|
-
let defaultSpanTracker = null;
|
|
10
|
-
export function setDefaultSpanTracker(tracker) {
|
|
11
|
-
defaultSpanTracker = tracker;
|
|
12
|
-
}
|
|
13
|
-
export function getDefaultSpanTracker() {
|
|
14
|
-
return defaultSpanTracker;
|
|
15
|
-
}
|
|
16
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tracking/spans/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAUH,OAAO,EACL,cAAc,EACd,qBAAqB,EACrB,cAAc,EACd,kBAAkB,EAClB,iBAAiB,EACjB,sBAAsB,GACvB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,qBAAqB,EACrB,iBAAiB,GAElB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,WAAW,GAaZ,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,iBAAiB,GAGlB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AAOnE,IAAI,kBAAkB,GAAwB,IAAI,CAAC;AACnD,MAAM,UAAU,qBAAqB,CAAC,OAA4B;IAChE,kBAAkB,GAAG,OAAO,CAAC;AAC/B,CAAC;AACD,MAAM,UAAU,qBAAqB;IACnC,OAAO,kBAAkB,CAAC;AAC5B,CAAC"}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Row-aware size fitting for the OTEL ingest leg.
|
|
3
|
-
*
|
|
4
|
-
* The legacy field-level truncation (`truncateSpanData`, 2 MB/field) is sized for
|
|
5
|
-
* the legacy `/api/v1/tracking/spans` endpoint, which has no tight per-row cap.
|
|
6
|
-
* The OTEL `/v1/traces` route rejects any row whose *serialized JSON* exceeds
|
|
7
|
-
* 256 KB (`MAX_ROW_BYTES`) — and a row that flattens `data.input`/`data.output`/
|
|
8
|
-
* `messages` into `SpanAttributes` blows that even when each individual field is
|
|
9
|
-
* well under the 2 MB cap. So the recording leg needs its own row-aware budget:
|
|
10
|
-
* trim the largest `SpanAttributes` values (the heavy payloads) with a visible
|
|
11
|
-
* marker until the whole serialized row fits. Structural fields and small
|
|
12
|
-
* attributes are never touched.
|
|
13
|
-
*/
|
|
14
|
-
import type { TraceRow } from "../../../recording/transport/rows.js";
|
|
15
|
-
/**
|
|
16
|
-
* Target serialized size for an OTEL trace row. Below the server's 256 KB
|
|
17
|
-
* `MAX_ROW_BYTES` cap, with headroom for UTF-8 byte/char skew and the small
|
|
18
|
-
* field-set differences between the client row and the server's reconstruction.
|
|
19
|
-
*/
|
|
20
|
-
export declare const OTEL_ROW_BYTE_BUDGET = 245000;
|
|
21
|
-
export declare function fitTraceRowToBudget(row: TraceRow, maxBytes?: number): TraceRow;
|
|
22
|
-
//# sourceMappingURL=fit-row-budget.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"fit-row-budget.d.ts","sourceRoot":"","sources":["../../../../src/tracking/spans/otel/fit-row-budget.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sCAAsC,CAAC;AAErE;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,SAAU,CAAC;AAmC5C,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,QAAQ,EACb,QAAQ,GAAE,MAA6B,GACtC,QAAQ,CA0CV"}
|
|
@@ -1,91 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Row-aware size fitting for the OTEL ingest leg.
|
|
3
|
-
*
|
|
4
|
-
* The legacy field-level truncation (`truncateSpanData`, 2 MB/field) is sized for
|
|
5
|
-
* the legacy `/api/v1/tracking/spans` endpoint, which has no tight per-row cap.
|
|
6
|
-
* The OTEL `/v1/traces` route rejects any row whose *serialized JSON* exceeds
|
|
7
|
-
* 256 KB (`MAX_ROW_BYTES`) — and a row that flattens `data.input`/`data.output`/
|
|
8
|
-
* `messages` into `SpanAttributes` blows that even when each individual field is
|
|
9
|
-
* well under the 2 MB cap. So the recording leg needs its own row-aware budget:
|
|
10
|
-
* trim the largest `SpanAttributes` values (the heavy payloads) with a visible
|
|
11
|
-
* marker until the whole serialized row fits. Structural fields and small
|
|
12
|
-
* attributes are never touched.
|
|
13
|
-
*/
|
|
14
|
-
/**
|
|
15
|
-
* Target serialized size for an OTEL trace row. Below the server's 256 KB
|
|
16
|
-
* `MAX_ROW_BYTES` cap, with headroom for UTF-8 byte/char skew and the small
|
|
17
|
-
* field-set differences between the client row and the server's reconstruction.
|
|
18
|
-
*/
|
|
19
|
-
export const OTEL_ROW_BYTE_BUDGET = 245_000;
|
|
20
|
-
const FIT_MARKER = "…[truncated to fit otel row cap]";
|
|
21
|
-
/** Always retain at least this many chars of a trimmed value as a front preview. */
|
|
22
|
-
const MIN_KEEP = 64;
|
|
23
|
-
/**
|
|
24
|
-
* Trim priority by attribute — higher is sacrificed first. The intent mirrors
|
|
25
|
-
* `sanitizePayloadValue` (drop bulk, keep the prompt): when a row is over budget
|
|
26
|
-
* we shed the high-volume / low-signal payloads (message history, system prompt,
|
|
27
|
-
* tool I/O) and protect the two things worth querying — the user prompt
|
|
28
|
-
* (`gen_ai.prompt`, weight 0) and the model output (`gen_ai.completion`, weight
|
|
29
|
-
* 10) — trimming them only as a last resort. Unlisted keys take the default.
|
|
30
|
-
*/
|
|
31
|
-
const TRIM_WEIGHT = {
|
|
32
|
-
"gen_ai.input.messages": 100,
|
|
33
|
-
"gen_ai.system_instructions": 90,
|
|
34
|
-
"tool.input": 80,
|
|
35
|
-
"tool.output": 80,
|
|
36
|
-
"data.input": 70,
|
|
37
|
-
"data.output": 70,
|
|
38
|
-
"data.messages": 70,
|
|
39
|
-
"gen_ai.completion": 10,
|
|
40
|
-
"gen_ai.prompt": 0,
|
|
41
|
-
};
|
|
42
|
-
const DEFAULT_TRIM_WEIGHT = 50;
|
|
43
|
-
function trimWeight(key) {
|
|
44
|
-
return key in TRIM_WEIGHT ? TRIM_WEIGHT[key] : DEFAULT_TRIM_WEIGHT;
|
|
45
|
-
}
|
|
46
|
-
function byteLen(s) {
|
|
47
|
-
return Buffer.byteLength(s, "utf8");
|
|
48
|
-
}
|
|
49
|
-
export function fitTraceRowToBudget(row, maxBytes = OTEL_ROW_BYTE_BUDGET) {
|
|
50
|
-
if (byteLen(JSON.stringify(row)) <= maxBytes)
|
|
51
|
-
return row;
|
|
52
|
-
const attrs = { ...row.SpanAttributes };
|
|
53
|
-
// Each pass trims the current largest value; re-stripping any prior marker so
|
|
54
|
-
// the same value can be trimmed again (handles UTF-8 byte/char skew). The
|
|
55
|
-
// guard is a runaway backstop — convergence is guaranteed because every pass
|
|
56
|
-
// shrinks the largest value's length while over budget.
|
|
57
|
-
let guard = 0;
|
|
58
|
-
while (guard++ < 1000) {
|
|
59
|
-
const size = byteLen(JSON.stringify({ ...row, SpanAttributes: attrs }));
|
|
60
|
-
if (size <= maxBytes)
|
|
61
|
-
break;
|
|
62
|
-
// Pick the highest-priority (most trimmable) attribute that still has slack;
|
|
63
|
-
// tie-break on larger current length. This trims history/system/tool I/O
|
|
64
|
-
// before the user prompt and model output.
|
|
65
|
-
let key = "";
|
|
66
|
-
let bestWeight = -1;
|
|
67
|
-
let bestLen = 0;
|
|
68
|
-
for (const [k, v] of Object.entries(attrs)) {
|
|
69
|
-
const base = v.endsWith(FIT_MARKER) ? v.slice(0, v.length - FIT_MARKER.length) : v;
|
|
70
|
-
if (base.length <= MIN_KEEP)
|
|
71
|
-
continue; // nothing left to reclaim from this one
|
|
72
|
-
const w = trimWeight(k);
|
|
73
|
-
if (w > bestWeight || (w === bestWeight && base.length > bestLen)) {
|
|
74
|
-
bestWeight = w;
|
|
75
|
-
key = k;
|
|
76
|
-
bestLen = base.length;
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
if (key === "")
|
|
80
|
-
break; // nothing left to reclaim anywhere
|
|
81
|
-
const value = attrs[key];
|
|
82
|
-
const base = value.endsWith(FIT_MARKER)
|
|
83
|
-
? value.slice(0, value.length - FIT_MARKER.length)
|
|
84
|
-
: value;
|
|
85
|
-
const overBy = size - maxBytes;
|
|
86
|
-
const keep = Math.max(MIN_KEEP, base.length - overBy - FIT_MARKER.length);
|
|
87
|
-
attrs[key] = base.slice(0, keep) + FIT_MARKER;
|
|
88
|
-
}
|
|
89
|
-
return { ...row, SpanAttributes: attrs };
|
|
90
|
-
}
|
|
91
|
-
//# sourceMappingURL=fit-row-budget.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"fit-row-budget.js","sourceRoot":"","sources":["../../../../src/tracking/spans/otel/fit-row-budget.ts"],"names":[],"mappings":"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"}
|