@senpi/runtime 3.0.117 → 3.0.122
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/README.md +16 -0
- package/dist/actions/action-events.d.ts +7 -21
- package/dist/actions/action-events.d.ts.map +1 -1
- package/dist/actions/action-events.js +26 -54
- package/dist/actions/action-events.js.map +1 -1
- package/dist/actions/action-runtime-module.d.ts.map +1 -1
- package/dist/actions/action-runtime-module.js +7 -38
- package/dist/actions/action-runtime-module.js.map +1 -1
- package/dist/actions/close-position/close-position.action.d.ts.map +1 -1
- package/dist/actions/close-position/close-position.action.js +15 -122
- 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 +2 -15
- package/dist/actions/decision-engine.js.map +1 -1
- package/dist/actions/event-derivation.d.ts +2 -71
- package/dist/actions/event-derivation.d.ts.map +1 -1
- package/dist/actions/event-derivation.js +8 -251
- package/dist/actions/event-derivation.js.map +1 -1
- package/dist/actions/open-position/open-position.action.d.ts +2 -17
- package/dist/actions/open-position/open-position.action.d.ts.map +1 -1
- package/dist/actions/open-position/open-position.action.js +56 -162
- package/dist/actions/open-position/open-position.action.js.map +1 -1
- package/dist/actions/position-tracker/position-tracker.action.d.ts +1 -2
- package/dist/actions/position-tracker/position-tracker.action.d.ts.map +1 -1
- package/dist/actions/position-tracker/position-tracker.action.js +17 -62
- package/dist/actions/position-tracker/position-tracker.action.js.map +1 -1
- package/dist/actions/store/types.d.ts +2 -9
- package/dist/actions/store/types.d.ts.map +1 -1
- package/dist/actions/store/types.js.map +1 -1
- package/dist/actions/types.d.ts +0 -13
- package/dist/actions/types.d.ts.map +1 -1
- package/dist/actions/types.js +0 -13
- package/dist/actions/types.js.map +1 -1
- package/dist/cli/guide-commands.d.ts.map +1 -1
- package/dist/cli/guide-commands.js +16 -11
- package/dist/cli/guide-commands.js.map +1 -1
- package/dist/cli/senpi-commands.d.ts.map +1 -1
- package/dist/cli/senpi-commands.js +18 -7
- package/dist/cli/senpi-commands.js.map +1 -1
- package/dist/constants/dsl/index.d.ts +17 -6
- package/dist/constants/dsl/index.d.ts.map +1 -1
- package/dist/constants/dsl/index.js +17 -6
- package/dist/constants/dsl/index.js.map +1 -1
- package/dist/dsl/engine/floors.d.ts +25 -1
- package/dist/dsl/engine/floors.d.ts.map +1 -1
- package/dist/dsl/engine/floors.js +38 -6
- package/dist/dsl/engine/floors.js.map +1 -1
- package/dist/dsl/engine/index.d.ts +1 -1
- package/dist/dsl/engine/index.d.ts.map +1 -1
- package/dist/dsl/engine/index.js +1 -1
- package/dist/dsl/engine/index.js.map +1 -1
- package/dist/dsl/engine/round.d.ts +22 -2
- package/dist/dsl/engine/round.d.ts.map +1 -1
- package/dist/dsl/engine/round.js +78 -5
- package/dist/dsl/engine/round.js.map +1 -1
- package/dist/dsl/engine/tick.d.ts.map +1 -1
- package/dist/dsl/engine/tick.js +31 -16
- package/dist/dsl/engine/tick.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 -14
- package/dist/dsl/engine-client/event-mapping.js.map +1 -1
- package/dist/dsl/events/build-closed-event.d.ts +1 -16
- package/dist/dsl/events/build-closed-event.d.ts.map +1 -1
- package/dist/dsl/events/build-closed-event.js +0 -6
- package/dist/dsl/events/build-closed-event.js.map +1 -1
- package/dist/dsl/events/handlers.d.ts +0 -7
- package/dist/dsl/events/handlers.d.ts.map +1 -1
- package/dist/dsl/events/handlers.js +7 -37
- package/dist/dsl/events/handlers.js.map +1 -1
- package/dist/dsl/events/initial-state.d.ts +1 -1
- package/dist/dsl/events/initial-state.d.ts.map +1 -1
- package/dist/dsl/events/initial-state.js +4 -7
- package/dist/dsl/events/initial-state.js.map +1 -1
- package/dist/dsl/monitor/create-monitor.d.ts +2 -6
- package/dist/dsl/monitor/create-monitor.d.ts.map +1 -1
- package/dist/dsl/monitor/create-monitor.js +9 -15
- package/dist/dsl/monitor/create-monitor.js.map +1 -1
- package/dist/dsl/monitor/dsl-failure-events.d.ts +0 -2
- package/dist/dsl/monitor/dsl-failure-events.d.ts.map +1 -1
- package/dist/dsl/monitor/dsl-failure-events.js +1 -2
- package/dist/dsl/monitor/dsl-failure-events.js.map +1 -1
- package/dist/dsl/monitor/exchange-sync.d.ts +8 -3
- package/dist/dsl/monitor/exchange-sync.d.ts.map +1 -1
- package/dist/dsl/monitor/exchange-sync.js +16 -4
- package/dist/dsl/monitor/exchange-sync.js.map +1 -1
- package/dist/dsl/monitor/process-one-position.d.ts +0 -1
- package/dist/dsl/monitor/process-one-position.d.ts.map +1 -1
- package/dist/dsl/monitor/process-one-position.js +113 -62
- package/dist/dsl/monitor/process-one-position.js.map +1 -1
- package/dist/dsl/plugin/index.d.ts +10 -12
- package/dist/dsl/plugin/index.d.ts.map +1 -1
- package/dist/dsl/plugin/index.js +14 -12
- package/dist/dsl/plugin/index.js.map +1 -1
- package/dist/health/types.d.ts +0 -13
- package/dist/health/types.d.ts.map +1 -1
- package/dist/health/types.js +0 -12
- package/dist/health/types.js.map +1 -1
- package/dist/index.d.ts +4 -27
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +206 -257
- package/dist/index.js.map +1 -1
- package/dist/runtime/action-registry.d.ts.map +1 -1
- package/dist/runtime/action-registry.js +3 -4
- package/dist/runtime/action-registry.js.map +1 -1
- package/dist/runtime/auto-update/coordinator.d.ts +16 -0
- package/dist/runtime/auto-update/coordinator.d.ts.map +1 -1
- package/dist/runtime/auto-update/coordinator.js +129 -13
- package/dist/runtime/auto-update/coordinator.js.map +1 -1
- package/dist/runtime/auto-update/run-update-command.d.ts.map +1 -1
- package/dist/runtime/auto-update/run-update-command.js +18 -14
- package/dist/runtime/auto-update/run-update-command.js.map +1 -1
- package/dist/runtime/auto-update/types.d.ts +17 -1
- package/dist/runtime/auto-update/types.d.ts.map +1 -1
- package/dist/runtime/auto-update/types.js +11 -0
- package/dist/runtime/auto-update/types.js.map +1 -1
- package/dist/runtime/boot-skip.d.ts +73 -0
- package/dist/runtime/boot-skip.d.ts.map +1 -0
- package/dist/runtime/boot-skip.js +113 -0
- package/dist/runtime/boot-skip.js.map +1 -0
- package/dist/runtime/create-runtime-context.d.ts +2 -0
- package/dist/runtime/create-runtime-context.d.ts.map +1 -1
- package/dist/runtime/create-runtime-context.js +1 -0
- package/dist/runtime/create-runtime-context.js.map +1 -1
- package/dist/runtime/domain-events.d.ts.map +1 -1
- package/dist/runtime/domain-events.js +0 -7
- package/dist/runtime/domain-events.js.map +1 -1
- package/dist/runtime/lifecycle-events.d.ts +43 -10
- package/dist/runtime/lifecycle-events.d.ts.map +1 -1
- package/dist/runtime/lifecycle-events.js +83 -12
- package/dist/runtime/lifecycle-events.js.map +1 -1
- package/dist/runtime/lifecycle-reaper.d.ts +202 -0
- package/dist/runtime/lifecycle-reaper.d.ts.map +1 -0
- package/dist/runtime/lifecycle-reaper.js +390 -0
- package/dist/runtime/lifecycle-reaper.js.map +1 -0
- package/dist/runtime/reconcile-run.d.ts +3 -13
- package/dist/runtime/reconcile-run.d.ts.map +1 -1
- package/dist/runtime/reconcile-run.js +3 -4
- package/dist/runtime/reconcile-run.js.map +1 -1
- package/dist/runtime/reconcile-state.d.ts +0 -8
- package/dist/runtime/reconcile-state.d.ts.map +1 -1
- package/dist/runtime/reconcile-state.js +1 -4
- package/dist/runtime/reconcile-state.js.map +1 -1
- package/dist/runtime/run.d.ts +5 -1
- package/dist/runtime/run.d.ts.map +1 -1
- package/dist/runtime/run.js +1 -0
- package/dist/runtime/run.js.map +1 -1
- package/dist/runtime/runtime-schema.js +3 -3
- package/dist/runtime/runtime-schema.js.map +1 -1
- package/dist/runtime/runtime.d.ts +2 -1
- package/dist/runtime/runtime.d.ts.map +1 -1
- package/dist/runtime/runtime.js +4 -27
- package/dist/runtime/runtime.js.map +1 -1
- package/dist/runtime/supervisor/long-running-supervisor.d.ts +0 -13
- package/dist/runtime/supervisor/long-running-supervisor.d.ts.map +1 -1
- package/dist/runtime/supervisor/long-running-supervisor.js +0 -1
- package/dist/runtime/supervisor/long-running-supervisor.js.map +1 -1
- package/dist/runtime/update-apply-deps.d.ts +23 -2
- package/dist/runtime/update-apply-deps.d.ts.map +1 -1
- package/dist/runtime/update-apply-deps.js +11 -5
- package/dist/runtime/update-apply-deps.js.map +1 -1
- package/dist/runtime/validate-dsl-position-tracking.d.ts.map +1 -1
- package/dist/runtime/validate-dsl-position-tracking.js +1 -2
- package/dist/runtime/validate-dsl-position-tracking.js.map +1 -1
- package/dist/runtime-api/handlers/ingest-signals.d.ts.map +1 -1
- package/dist/runtime-api/handlers/ingest-signals.js +0 -1
- package/dist/runtime-api/handlers/ingest-signals.js.map +1 -1
- package/dist/runtime-api/handlers/types.d.ts +0 -5
- package/dist/runtime-api/handlers/types.d.ts.map +1 -1
- package/dist/runtime-api/intake/intake-events.d.ts +1 -1
- package/dist/runtime-api/intake/intake-events.d.ts.map +1 -1
- package/dist/runtime-api/intake/intake-events.js +3 -9
- package/dist/runtime-api/intake/intake-events.js.map +1 -1
- package/dist/runtime-api/intake/intake-mount.d.ts.map +1 -1
- package/dist/runtime-api/intake/intake-mount.js +19 -4
- package/dist/runtime-api/intake/intake-mount.js.map +1 -1
- package/dist/runtime-api/intake/process-error-post.d.ts +1 -6
- package/dist/runtime-api/intake/process-error-post.d.ts.map +1 -1
- package/dist/runtime-api/intake/process-error-post.js +1 -5
- package/dist/runtime-api/intake/process-error-post.js.map +1 -1
- package/dist/runtime-api/intake/process-signal-post.d.ts +1 -7
- package/dist/runtime-api/intake/process-signal-post.d.ts.map +1 -1
- package/dist/runtime-api/intake/process-signal-post.js +0 -5
- package/dist/runtime-api/intake/process-signal-post.js.map +1 -1
- package/dist/runtime-api/intake/scaffold-error-router.js.map +1 -1
- package/dist/runtime-api/intake/scanner-launcher.d.ts.map +1 -1
- package/dist/runtime-api/intake/scanner-launcher.js +0 -15
- package/dist/runtime-api/intake/scanner-launcher.js.map +1 -1
- package/dist/runtime-api/intake/types.d.ts +0 -55
- package/dist/runtime-api/intake/types.d.ts.map +1 -1
- package/dist/runtime-api/routes/signals.d.ts +0 -2
- package/dist/runtime-api/routes/signals.d.ts.map +1 -1
- package/dist/runtime-api/routes/signals.js +1 -5
- package/dist/runtime-api/routes/signals.js.map +1 -1
- package/dist/runtime-api/routes/signals.schema.d.ts +0 -43
- package/dist/runtime-api/routes/signals.schema.d.ts.map +1 -1
- package/dist/runtime-api/routes/signals.schema.js +0 -43
- package/dist/runtime-api/routes/signals.schema.js.map +1 -1
- package/dist/runtime-api/server.d.ts +1 -7
- package/dist/runtime-api/server.d.ts.map +1 -1
- package/dist/runtime-api/server.js +0 -1
- package/dist/runtime-api/server.js.map +1 -1
- package/dist/scanners/engine/engine.d.ts +1 -22
- package/dist/scanners/engine/engine.d.ts.map +1 -1
- package/dist/scanners/engine/engine.js +11 -78
- package/dist/scanners/engine/engine.js.map +1 -1
- package/dist/scanners/engine/lifecycle.d.ts +1 -7
- package/dist/scanners/engine/lifecycle.d.ts.map +1 -1
- package/dist/scanners/events.d.ts +0 -4
- package/dist/scanners/events.d.ts.map +1 -1
- package/dist/scanners/events.js +0 -2
- package/dist/scanners/events.js.map +1 -1
- package/dist/scanners/external/scaffold/delivery.py +25 -194
- package/dist/scanners/external/scaffold/scaffold.py +31 -172
- package/dist/scanners/external/scaffold/senpi_mcp.py +8 -150
- package/dist/scanners/external-scanner-receiver.d.ts +0 -17
- package/dist/scanners/external-scanner-receiver.d.ts.map +1 -1
- package/dist/scanners/external-scanner-receiver.js +0 -8
- package/dist/scanners/external-scanner-receiver.js.map +1 -1
- package/dist/scanners/runtime-module.d.ts +0 -1
- package/dist/scanners/runtime-module.d.ts.map +1 -1
- package/dist/scanners/runtime-module.js +9 -66
- package/dist/scanners/runtime-module.js.map +1 -1
- package/dist/skills-manager/manifest.d.ts.map +1 -1
- package/dist/skills-manager/manifest.js +1 -0
- package/dist/skills-manager/manifest.js.map +1 -1
- package/dist/skills-manager/skills-manifest.json +1 -0
- package/dist/telemetry/attributes.d.ts +0 -20
- package/dist/telemetry/attributes.d.ts.map +1 -1
- package/dist/telemetry/attributes.js +0 -24
- package/dist/telemetry/attributes.js.map +1 -1
- package/dist/telemetry/event-builders.d.ts +6 -81
- package/dist/telemetry/event-builders.d.ts.map +1 -1
- package/dist/telemetry/event-builders.js +17 -141
- package/dist/telemetry/event-builders.js.map +1 -1
- package/dist/telemetry/event-store.d.ts +0 -6
- package/dist/telemetry/event-store.d.ts.map +1 -1
- package/dist/telemetry/event-store.js +8 -12
- package/dist/telemetry/event-store.js.map +1 -1
- package/dist/telemetry/metrics.d.ts +2 -14
- package/dist/telemetry/metrics.d.ts.map +1 -1
- package/dist/telemetry/metrics.js +4 -19
- package/dist/telemetry/metrics.js.map +1 -1
- package/dist/telemetry/spans/redact-pii.d.ts.map +1 -1
- package/dist/telemetry/spans/redact-pii.js +2 -18
- package/dist/telemetry/spans/redact-pii.js.map +1 -1
- package/dist/telemetry/tracing.d.ts +0 -9
- package/dist/telemetry/tracing.d.ts.map +1 -1
- package/dist/telemetry/tracing.js +0 -36
- package/dist/telemetry/tracing.js.map +1 -1
- package/dist/types/dsl/index.d.ts +1 -12
- package/dist/types/dsl/index.d.ts.map +1 -1
- package/dist/types/runtime.d.ts +8 -0
- package/dist/types/runtime.d.ts.map +1 -1
- package/dist/types/scanner.d.ts +0 -15
- package/dist/types/scanner.d.ts.map +1 -1
- package/dist/utils/event-catalog.d.ts +91 -166
- package/dist/utils/event-catalog.d.ts.map +1 -1
- package/dist/utils/event-catalog.js +13 -18
- package/dist/utils/event-catalog.js.map +1 -1
- package/dist/utils/keyed-mutex.d.ts +3 -2
- package/dist/utils/keyed-mutex.d.ts.map +1 -1
- package/dist/utils/keyed-mutex.js +3 -2
- package/dist/utils/keyed-mutex.js.map +1 -1
- package/dist/utils/logger.d.ts +1 -4
- package/dist/utils/logger.d.ts.map +1 -1
- package/dist/utils/logger.js.map +1 -1
- package/dist/validate/recipe-checks.d.ts.map +1 -1
- package/dist/validate/recipe-checks.js +2 -2
- package/dist/validate/recipe-checks.js.map +1 -1
- package/openclaw.plugin.json +5 -1
- package/package.json +1 -1
- package/dist/actions/skipped-signal-results.d.ts +0 -25
- package/dist/actions/skipped-signal-results.d.ts.map +0 -1
- package/dist/actions/skipped-signal-results.js +0 -71
- package/dist/actions/skipped-signal-results.js.map +0 -1
- package/dist/runtime-api/intake/ingest-request.d.ts +0 -17
- package/dist/runtime-api/intake/ingest-request.d.ts.map +0 -1
- package/dist/runtime-api/intake/ingest-request.js +0 -34
- package/dist/runtime-api/intake/ingest-request.js.map +0 -1
- package/dist/runtime-api/intake/scaffold-tick-router.d.ts +0 -39
- package/dist/runtime-api/intake/scaffold-tick-router.d.ts.map +0 -1
- package/dist/runtime-api/intake/scaffold-tick-router.js +0 -122
- package/dist/runtime-api/intake/scaffold-tick-router.js.map +0 -1
- package/dist/scanners/external/scaffold/tick_facts.py +0 -130
- package/dist/scanners/external/scaffold/ulid.py +0 -58
- package/dist/telemetry/live-telemetry.d.ts +0 -238
- package/dist/telemetry/live-telemetry.d.ts.map +0 -1
- package/dist/telemetry/live-telemetry.js +0 -853
- package/dist/telemetry/live-telemetry.js.map +0 -1
- package/dist/telemetry/scanner-stats.d.ts +0 -143
- package/dist/telemetry/scanner-stats.d.ts.map +0 -1
- package/dist/telemetry/scanner-stats.js +0 -426
- package/dist/telemetry/scanner-stats.js.map +0 -1
- package/dist/telemetry/scanner-tick-feed.d.ts +0 -87
- package/dist/telemetry/scanner-tick-feed.d.ts.map +0 -1
- package/dist/telemetry/scanner-tick-feed.js +0 -48
- package/dist/telemetry/scanner-tick-feed.js.map +0 -1
- package/dist/telemetry/strategy-topology.d.ts +0 -99
- package/dist/telemetry/strategy-topology.d.ts.map +0 -1
- package/dist/telemetry/strategy-topology.js +0 -93
- package/dist/telemetry/strategy-topology.js.map +0 -1
- package/dist/telemetry/telemetry-publisher.d.ts +0 -63
- package/dist/telemetry/telemetry-publisher.d.ts.map +0 -1
- package/dist/telemetry/telemetry-publisher.js +0 -229
- package/dist/telemetry/telemetry-publisher.js.map +0 -1
- package/dist/telemetry/tick-frame.d.ts +0 -212
- package/dist/telemetry/tick-frame.d.ts.map +0 -1
- package/dist/telemetry/tick-frame.js +0 -421
- package/dist/telemetry/tick-frame.js.map +0 -1
- package/dist/telemetry/timeline-buffer.d.ts +0 -95
- package/dist/telemetry/timeline-buffer.d.ts.map +0 -1
- package/dist/telemetry/timeline-buffer.js +0 -237
- package/dist/telemetry/timeline-buffer.js.map +0 -1
- package/dist/utils/telemetry-required-log.d.ts +0 -60
- package/dist/utils/telemetry-required-log.d.ts.map +0 -1
- package/dist/utils/telemetry-required-log.js +0 -105
- package/dist/utils/telemetry-required-log.js.map +0 -1
- package/dist/utils/ulid.d.ts +0 -9
- package/dist/utils/ulid.d.ts.map +0 -1
- package/dist/utils/ulid.js +0 -43
- package/dist/utils/ulid.js.map +0 -1
|
@@ -7,22 +7,10 @@
|
|
|
7
7
|
* we reuse the pure builders ({@link buildSignalEvaluated} → {@link buildDecisionMade} /
|
|
8
8
|
* {@link buildSignalOutcomes}), which are pure and already battle-tested, then project their records
|
|
9
9
|
* onto the event contract. Body lines are deterministic narratives; reasoning (decision.made) and any
|
|
10
|
-
* error text reach `redact`; the raw scanner `meta` bag
|
|
11
|
-
* interpreted — it is operator-authored content and must not carry secrets. Whether it is scrubbed
|
|
12
|
-
* depends on where it lands: the on-disk event ring and the OTLP exporter carry it as the scanner
|
|
13
|
-
* wrote it, while the live telemetry websocket redacts every string attribute on the way out and
|
|
14
|
-
* drops this one whole, unmarked, while no redactor is registered.
|
|
15
|
-
*
|
|
16
|
-
* The only side effects are the serializers' rate-limited WARNs when a risk-gate or meta bag
|
|
17
|
-
* cannot be emitted whole — silent loss on a trust surface is worse than a log line. The returned
|
|
18
|
-
* events are unaffected by them; the loss itself is on the wire as `senpi.risk.gates_truncated` /
|
|
19
|
-
* `senpi.signal.meta_truncated`.
|
|
10
|
+
* error text reach `redact`; the raw scanner `meta` bag is dropped.
|
|
20
11
|
*/
|
|
21
12
|
import { buildDecisionMade, buildSignalEvaluated, buildSignalOutcomes, } from "../telemetry/event-builders.js";
|
|
22
|
-
import { jsonUnderCap } from "../telemetry/attributes.js";
|
|
23
13
|
import { EVENT_NAME, JOIN_ATTR, eventAttrs, fmtThousands } from "../utils/event-catalog.js";
|
|
24
|
-
import { createLogger } from "../utils/logger.js";
|
|
25
|
-
const derivationLog = createLogger("[senpi-core][event-derivation]");
|
|
26
14
|
/**
|
|
27
15
|
* Build then emit a single {@link EmittableEvent} through a logger, with build + emit guarded as one
|
|
28
16
|
* unit so neither a throwing builder nor a telemetry failure can disturb the host (trading/scan/
|
|
@@ -85,7 +73,7 @@ function decisionBody(d) {
|
|
|
85
73
|
return line;
|
|
86
74
|
}
|
|
87
75
|
/** decision.made attributes: the decision's safe scalars; reasoning goes to `redact`, not here. */
|
|
88
|
-
function decisionAttributes(d
|
|
76
|
+
function decisionAttributes(d) {
|
|
89
77
|
return eventAttrs({
|
|
90
78
|
"senpi.decision.mode": d.mode,
|
|
91
79
|
"senpi.decision.by_llm": d.byLlm,
|
|
@@ -97,8 +85,6 @@ function decisionAttributes(d, ids) {
|
|
|
97
85
|
"senpi.decision.model": d.model,
|
|
98
86
|
"senpi.decision.tokens_used": d.tokensUsed ?? undefined,
|
|
99
87
|
"senpi.decision.duration_ms": d.durationMs,
|
|
100
|
-
"senpi.tick.id": ids.tickId,
|
|
101
|
-
"senpi.signal.correlation_id": ids.correlationId,
|
|
102
88
|
});
|
|
103
89
|
}
|
|
104
90
|
const DISPOSITION_NARRATIVE = {
|
|
@@ -129,236 +115,18 @@ function outcomeBody(o, ev) {
|
|
|
129
115
|
}
|
|
130
116
|
return `${head}${score} → ${verb}${detail}`;
|
|
131
117
|
}
|
|
132
|
-
/**
|
|
133
|
-
|
|
134
|
-
* projection that fits {@link MAX_ATTR_VALUE_CHARS} wins.
|
|
135
|
-
*/
|
|
136
|
-
const GATE_TIERS = [
|
|
137
|
-
{ metrics: true, reason: true },
|
|
138
|
-
{ metrics: false, reason: true },
|
|
139
|
-
{ metrics: false, reason: false },
|
|
140
|
-
];
|
|
141
|
-
/**
|
|
142
|
-
* The healthy sentinel of the runtime's failure enum, bound to the enum's own type so removing or
|
|
143
|
-
* renaming the member is a compile error here instead of a silent "every gate failed" downstream.
|
|
144
|
-
*/
|
|
145
|
-
const NO_FAILURE = "none";
|
|
146
|
-
/**
|
|
147
|
-
* Each warn below fires once per process — none is a routine path, and if one does trip it trips on
|
|
148
|
-
* every outcome of every pass. The three are tracked separately because they are different faults
|
|
149
|
-
* with different fixes, and one must never burn another's flag: a bag that lost fields to the size
|
|
150
|
-
* budget is a cardinality problem, a bag `JSON.stringify` refused is a producer bug, and a bag
|
|
151
|
-
* dropped whole means the attribute is not on the wire at all.
|
|
152
|
-
*/
|
|
153
|
-
let warnedGateShed = false;
|
|
154
|
-
let warnedGateUnserializable = false;
|
|
155
|
-
let warnedGateDropped = false;
|
|
156
|
-
/** Reachable from both exits of the tier ladder — a bag JSON refused may still end up dropped. */
|
|
157
|
-
function warnGateUnserializable(log, gateCount) {
|
|
158
|
-
if (warnedGateUnserializable)
|
|
159
|
-
return;
|
|
160
|
-
warnedGateUnserializable = true;
|
|
161
|
-
log.warn("Risk gate bag unserializable; shed metrics", { gateCount });
|
|
162
|
-
}
|
|
163
|
-
/**
|
|
164
|
-
* Metrics with every non-finite number removed. `JSON.stringify` renders `NaN`/`Infinity` as `null`,
|
|
165
|
-
* which is indistinguishable from a metric the guard legitimately reported as null — so the key is
|
|
166
|
-
* dropped instead, and the catalog states the contract: a metric number is finite or absent.
|
|
167
|
-
* Shallow, matching the guard's flat scalar bags; the original object is returned untouched when it
|
|
168
|
-
* is already clean, so the common path allocates nothing.
|
|
169
|
-
*/
|
|
170
|
-
function finiteMetrics(metrics) {
|
|
171
|
-
const isNonFinite = (v) => typeof v === "number" && !Number.isFinite(v);
|
|
172
|
-
const entries = Object.entries(metrics);
|
|
173
|
-
if (!entries.some(([, v]) => isNonFinite(v)))
|
|
174
|
-
return metrics;
|
|
175
|
-
return Object.fromEntries(entries.filter(([, v]) => !isNonFinite(v)));
|
|
176
|
-
}
|
|
177
|
-
/**
|
|
178
|
-
* One gate's wire projection. `gateName` is omitted — it is a static function of `gateId`, so
|
|
179
|
-
* putting it on every row buys nothing. The three reliability fields ride only when they say
|
|
180
|
-
* something: a healthy gate is `evaluationOk: true`, `fallbackApplied: false`, `failureKind: "none"`,
|
|
181
|
-
* and repeating that on every gate of every pass is noise. Their presence marks the fail-closed
|
|
182
|
-
* gate, which is the one a reader must not mistake for a real breach.
|
|
183
|
-
*/
|
|
184
|
-
function projectGate(g, tier) {
|
|
185
|
-
return {
|
|
186
|
-
gateId: g.gateId,
|
|
187
|
-
status: g.status,
|
|
188
|
-
...(tier.reason && g.reason !== undefined ? { reason: g.reason } : {}),
|
|
189
|
-
...(g.evaluationOk === false ? { evaluationOk: false } : {}),
|
|
190
|
-
...(g.fallbackApplied === true ? { fallbackApplied: true } : {}),
|
|
191
|
-
...(g.failureKind !== undefined && g.failureKind !== NO_FAILURE ? { failureKind: g.failureKind } : {}),
|
|
192
|
-
...(tier.metrics && g.metrics !== undefined ? { metrics: finiteMetrics(g.metrics) } : {}),
|
|
193
|
-
};
|
|
194
|
-
}
|
|
195
|
-
/**
|
|
196
|
-
* The gate bag as a JSON array string, with a flag saying whether anything was lost getting there.
|
|
197
|
-
*
|
|
198
|
-
* The logger caps every string attribute at {@link MAX_ATTR_VALUE_CHARS}, and a cap applied to JSON
|
|
199
|
-
* yields unparseable garbage — so the budget is spent here instead: shed `metrics`, then `reason`,
|
|
200
|
-
* and give up rather than emit a fragment. What comes out is always valid JSON or nothing.
|
|
201
|
-
*
|
|
202
|
-
* An empty `gates` array serializes to `"[]"` on purpose: "the gates ran and none are configured"
|
|
203
|
-
* is a fact the drill-down needs, distinct from the absent attribute's "there is no snapshot".
|
|
204
|
-
*
|
|
205
|
-
* A `metrics` bag that `JSON.stringify` refuses (a BigInt, a throwing `toJSON`) fails only its own
|
|
206
|
-
* tier — the metrics-less tiers below it still produce a bag. That fall is a producer bug, not a
|
|
207
|
-
* size problem, so it warns on its own flag: letting it fire the budget warning would both misname
|
|
208
|
-
* the fault and burn the one-shot flag a genuine overflow later needs.
|
|
209
|
-
*
|
|
210
|
-
* `log` is injectable so the once-per-process warnings can be observed in a test; production call
|
|
211
|
-
* sites take the default.
|
|
212
|
-
*/
|
|
213
|
-
export function serializeRiskGates(gates, log = derivationLog) {
|
|
214
|
-
// The two ways a tier can fail, tracked apart so the warning names the real fault.
|
|
215
|
-
let stringifyFailed = false;
|
|
216
|
-
let overBudget = false;
|
|
217
|
-
for (const tier of GATE_TIERS) {
|
|
218
|
-
let projected;
|
|
219
|
-
try {
|
|
220
|
-
projected = gates.map((g) => projectGate(g, tier));
|
|
221
|
-
}
|
|
222
|
-
catch {
|
|
223
|
-
// A gate whose own projection throws is the same fault as one stringify refuses.
|
|
224
|
-
stringifyFailed = true;
|
|
225
|
-
continue;
|
|
226
|
-
}
|
|
227
|
-
// The shared whole-or-nothing serializer owns the cap: no `json` with `truncated` means it
|
|
228
|
-
// serialized and was too big, no `json` without it means stringify refused the value.
|
|
229
|
-
const { json, truncated: overCap } = jsonUnderCap(projected);
|
|
230
|
-
if (json === undefined) {
|
|
231
|
-
if (overCap)
|
|
232
|
-
overBudget = true;
|
|
233
|
-
else
|
|
234
|
-
stringifyFailed = true;
|
|
235
|
-
continue;
|
|
236
|
-
}
|
|
237
|
-
if (stringifyFailed)
|
|
238
|
-
warnGateUnserializable(log, gates.length);
|
|
239
|
-
if (overBudget && !warnedGateShed) {
|
|
240
|
-
warnedGateShed = true;
|
|
241
|
-
log.warn("Risk gate bag exceeded the attribute budget; shed fields to fit", {
|
|
242
|
-
gateCount: gates.length,
|
|
243
|
-
keptReason: tier.reason,
|
|
244
|
-
keptMetrics: tier.metrics,
|
|
245
|
-
});
|
|
246
|
-
}
|
|
247
|
-
return { json, truncated: stringifyFailed || overBudget };
|
|
248
|
-
}
|
|
249
|
-
if (stringifyFailed)
|
|
250
|
-
warnGateUnserializable(log, gates.length);
|
|
251
|
-
if (!warnedGateDropped) {
|
|
252
|
-
warnedGateDropped = true;
|
|
253
|
-
log.warn("Risk gate bag exceeded the attribute budget even bare; dropped", {
|
|
254
|
-
gateCount: gates.length,
|
|
255
|
-
});
|
|
256
|
-
}
|
|
257
|
-
return { truncated: true };
|
|
258
|
-
}
|
|
259
|
-
/**
|
|
260
|
-
* `"<scannerId>:<fault>"` keys already warned about. Rate-limits the per-signal drop warn to one line
|
|
261
|
-
* per scanner per fault: a scanner that produces the same bag every tick must not repeat it, and a
|
|
262
|
-
* broken scanner must not be masked by an unrelated one that broke first. Both faults are keyed
|
|
263
|
-
* separately, so one firing never silences the other.
|
|
264
|
-
*/
|
|
265
|
-
const warnedMetaDrops = new Set();
|
|
266
|
-
/**
|
|
267
|
-
* Report a dropped bag ONCE per (scanner, fault), without letting the report become a second, worse
|
|
268
|
-
* fault. The bag is scanner-controlled all the way down, so even counting its keys can throw (a proxy
|
|
269
|
-
* with a hostile `ownKeys` trap) — an uncountable bag is reported with no `keyCount` rather than with
|
|
270
|
-
* an escaping throw, and the emit itself is guarded so a failing logger cannot escape either. A throw
|
|
271
|
-
* here would leave `serializeSignalMeta` through the mapper and cost the caller its ENTIRE event
|
|
272
|
-
* array, so one hostile bag would blank the pass it rode in on: the diagnostic must never cost more
|
|
273
|
-
* than the bag.
|
|
274
|
-
*/
|
|
275
|
-
function warnMetaDropped(log, fault, message, meta, source, extra) {
|
|
276
|
-
const key = `${source.scannerId ?? ""}:${fault}`;
|
|
277
|
-
if (warnedMetaDrops.has(key))
|
|
278
|
-
return;
|
|
279
|
-
warnedMetaDrops.add(key);
|
|
280
|
-
let keyCount;
|
|
281
|
-
try {
|
|
282
|
-
keyCount = Object.keys(meta).length;
|
|
283
|
-
}
|
|
284
|
-
catch {
|
|
285
|
-
keyCount = undefined;
|
|
286
|
-
}
|
|
287
|
-
try {
|
|
288
|
-
log.warn(message, {
|
|
289
|
-
...(source.scannerId !== undefined ? { scannerId: source.scannerId } : {}),
|
|
290
|
-
...(source.asset !== undefined ? { asset: source.asset } : {}),
|
|
291
|
-
...(keyCount !== undefined ? { keyCount } : {}),
|
|
292
|
-
...extra,
|
|
293
|
-
});
|
|
294
|
-
}
|
|
295
|
-
catch {
|
|
296
|
-
// The drop stands; there is nowhere left to report it to.
|
|
297
|
-
}
|
|
298
|
-
}
|
|
299
|
-
/**
|
|
300
|
-
* The scanner's `meta` bag as ONE JSON string attribute, plus whether a bag arrived and was lost.
|
|
301
|
-
*
|
|
302
|
-
* The bag is scanner-defined and NOT interpreted here: no key is lifted, dropped, or reordered — the
|
|
303
|
-
* JSON is emitted whole or not at all. A bag over the per-value attribute cap is therefore dropped
|
|
304
|
-
* rather than truncated (a cut JSON string is unparseable) and rather than thinned (choosing which
|
|
305
|
-
* scanner keys survive would be interpretation). An empty bag legitimately serializes to `"{}"`, but
|
|
306
|
-
* that value only says a bag arrived: ingest normalizes a missing bag to `{}`, so a scanner that sent
|
|
307
|
-
* an empty one and a scanner that sent none both land here as `{}` and cannot be told apart. A drop
|
|
308
|
-
* is NOT silent on the wire either: `dropped` raises `senpi.signal.meta_truncated`, so an absent
|
|
309
|
-
* attribute WITH the marker (bag lost) is distinguishable from an absent attribute without one (no
|
|
310
|
-
* bag at all).
|
|
311
|
-
*
|
|
312
|
-
* The warn payload carries the bag's origin and its key count — the bag's own content is scanner
|
|
313
|
-
* free-text and never safe as an attribute. `log` is injectable so the warns are observable.
|
|
314
|
-
*/
|
|
315
|
-
export function serializeSignalMeta(meta, source = {}, log = derivationLog) {
|
|
316
|
-
const { json, truncated, chars } = jsonUnderCap(meta);
|
|
317
|
-
if (truncated) {
|
|
318
|
-
warnMetaDropped(log, "oversize", "scanner signal meta dropped: JSON is over the per-attribute size cap", meta, source, {
|
|
319
|
-
...(chars !== undefined ? { jsonChars: chars } : {}),
|
|
320
|
-
});
|
|
321
|
-
return { dropped: true };
|
|
322
|
-
}
|
|
323
|
-
// The attribute is contracted as a JSON OBJECT that a consumer renders as a key-value map, but a
|
|
324
|
-
// bag carrying its own `toJSON` can render as any JSON value. A scalar or an array is the same
|
|
325
|
-
// fault as one that does not render at all — the bag did not come out a bag — so it takes the same
|
|
326
|
-
// path. This tests the shape of the whole value, never the meaning of a key inside it.
|
|
327
|
-
if (json === undefined || !json.startsWith("{")) {
|
|
328
|
-
warnMetaDropped(log, "unserializable", "scanner signal meta dropped: the bag does not serialize to a JSON object", meta, source);
|
|
329
|
-
return { dropped: true };
|
|
330
|
-
}
|
|
331
|
-
return { json, dropped: false };
|
|
332
|
-
}
|
|
333
|
-
/**
|
|
334
|
-
* signal.outcome attributes: the queryable scalar surface, plus the scanner's `meta` bag as one
|
|
335
|
-
* uninterpreted JSON string (see {@link serializeSignalMeta}).
|
|
336
|
-
*
|
|
337
|
-
* `gates` is the pass's already-serialized bag, threaded in rather than re-derived: it is identical
|
|
338
|
-
* for every outcome of the pass, and stringifying it once per signal would pay the whole cost N
|
|
339
|
-
* times in the producer's synchronous emit path.
|
|
340
|
-
*/
|
|
341
|
-
function outcomeAttributes(o, ids, gates) {
|
|
342
|
-
const bag = o.rawSignal?.meta;
|
|
343
|
-
const meta = bag !== undefined
|
|
344
|
-
? serializeSignalMeta(bag, { scannerId: o.scannerId, asset: o.asset })
|
|
345
|
-
: undefined;
|
|
118
|
+
/** signal.outcome attributes: the queryable scalar surface; the raw `meta` bag is dropped. */
|
|
119
|
+
function outcomeAttributes(o) {
|
|
346
120
|
return eventAttrs({
|
|
347
121
|
[JOIN_ATTR.positionId]: o.positionId,
|
|
348
122
|
[JOIN_ATTR.orderId]: o.orderId,
|
|
349
123
|
"senpi.scanner.id": o.scannerId,
|
|
350
|
-
// Which action produced the outcome — an open accept and a close accept are both `accepted`.
|
|
351
|
-
"senpi.action.type": o.actionType,
|
|
352
124
|
"senpi.signal.type": o.signalType,
|
|
353
125
|
"senpi.signal.asset": o.asset,
|
|
354
126
|
"senpi.signal.direction": o.direction ?? undefined,
|
|
355
127
|
// Always a number off the record builder (`num(...) ?? 0`); the fallback mirrors that and keeps
|
|
356
128
|
// score a required, always-queryable scalar.
|
|
357
129
|
"senpi.signal.score": o.score ?? 0,
|
|
358
|
-
"senpi.signal.meta": meta?.json,
|
|
359
|
-
// Marker, not a value: absent attribute + absent marker = no bag ever arrived; absent attribute
|
|
360
|
-
// + marker = a bag arrived and was lost. Only ever `true` (never emitted as `false`).
|
|
361
|
-
"senpi.signal.meta_truncated": meta?.dropped === true ? true : undefined,
|
|
362
130
|
"senpi.outcome.result": o.result,
|
|
363
131
|
"senpi.outcome.reason_code": o.reasonCode,
|
|
364
132
|
"senpi.outcome.margin_amount": o.marginAmount,
|
|
@@ -367,12 +135,6 @@ function outcomeAttributes(o, ids, gates) {
|
|
|
367
135
|
"senpi.outcome.leverage": o.leverage,
|
|
368
136
|
"senpi.outcome.notional_value": o.notionalValue,
|
|
369
137
|
"senpi.outcome.size": o.size,
|
|
370
|
-
"senpi.tick.id": ids.tickId,
|
|
371
|
-
"senpi.signal.correlation_id": ids.correlationId,
|
|
372
|
-
"senpi.risk.gates": gates?.json,
|
|
373
|
-
// Emitted only when true, like the per-gate reliability flags: absence is the healthy case, and
|
|
374
|
-
// stamping `false` on every outcome of every pass would be noise.
|
|
375
|
-
"senpi.risk.gates_truncated": gates?.truncated === true ? true : undefined,
|
|
376
138
|
});
|
|
377
139
|
}
|
|
378
140
|
/**
|
|
@@ -386,25 +148,20 @@ export function deriveActionResultEvents(input) {
|
|
|
386
148
|
if (pass === null)
|
|
387
149
|
return [];
|
|
388
150
|
const events = [];
|
|
389
|
-
const ids = { tickId: pass.tickId, correlationId: pass.correlationId };
|
|
390
151
|
const decision = buildDecisionMade(pass);
|
|
391
152
|
if (decision !== null) {
|
|
392
153
|
events.push({
|
|
393
154
|
name: EVENT_NAME.decisionMade,
|
|
394
155
|
level: "info",
|
|
395
156
|
body: decisionBody(decision),
|
|
396
|
-
attributes: decisionAttributes(decision
|
|
157
|
+
attributes: decisionAttributes(decision),
|
|
397
158
|
...(decision.reasoning ? { redact: { reasoning: decision.reasoning } } : {}),
|
|
398
159
|
});
|
|
399
160
|
}
|
|
400
|
-
// Serialized ONCE per pass. Every outcome carries the same pass-level bag (buildSignalOutcomes
|
|
401
|
-
// copies the one array onto each), so this is the same string N times — and this runs inside the
|
|
402
|
-
// producer's synchronous emit path, where an N-signal batch must not pay N stringifies.
|
|
403
|
-
const gates = pass.riskGates !== undefined ? serializeRiskGates(pass.riskGates) : undefined;
|
|
404
161
|
// buildSignalOutcomes and pass.evaluations are both one-per-evaluation, same order — zipped so the
|
|
405
162
|
// narrative can template the fill (entryPrice) and the error text rides `redact` from the same
|
|
406
|
-
// evaluation. The record carries the queryable scalar surface
|
|
407
|
-
//
|
|
163
|
+
// evaluation. The record carries the queryable scalar surface (no raw `meta`); the evaluation
|
|
164
|
+
// carries the free-text error and the entry fill the body templates.
|
|
408
165
|
const outcomes = buildSignalOutcomes(pass);
|
|
409
166
|
outcomes.forEach((outcome, i) => {
|
|
410
167
|
const ev = pass.evaluations[i];
|
|
@@ -414,7 +171,7 @@ export function deriveActionResultEvents(input) {
|
|
|
414
171
|
// ERROR when the outcome failed (the level arg escalates above the INFO floor).
|
|
415
172
|
level: isError ? "error" : "info",
|
|
416
173
|
body: outcomeBody(outcome, ev),
|
|
417
|
-
attributes: outcomeAttributes(outcome
|
|
174
|
+
attributes: outcomeAttributes(outcome),
|
|
418
175
|
...(isError && ev.outcome.error ? { redact: { error: ev.outcome.error } } : {}),
|
|
419
176
|
});
|
|
420
177
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"event-derivation.js","sourceRoot":"","sources":["../../src/actions/event-derivation.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"event-derivation.js","sourceRoot":"","sources":["../../src/actions/event-derivation.ts"],"names":[],"mappings":"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"}
|
|
@@ -33,19 +33,6 @@ export declare class OpenPositionAction implements Action {
|
|
|
33
33
|
handle(event: HookEvent): Promise<ActionResult>;
|
|
34
34
|
/** The pending-opens ledger this action counts against — the context's when it has one. */
|
|
35
35
|
private pendingOpens;
|
|
36
|
-
/**
|
|
37
|
-
* One clearinghouse read, fail-closed on both an unreadable response and a throw. A throw is
|
|
38
|
-
* the same situation as an unreadable response — an unknown book — so it resolves undefined
|
|
39
|
-
* and reaches the skip below rather than escaping the action with no per-signal outcome
|
|
40
|
-
* recorded. Shared by the gate at the top of `handle` and the stale-view refetch in the
|
|
41
|
-
* signal loop.
|
|
42
|
-
*/
|
|
43
|
-
/**
|
|
44
|
-
* The bounded book read, failing closed. A read that throws — including one the deadline
|
|
45
|
-
* aborts — leaves the exchange view unknown, which the callers treat as a skip rather than
|
|
46
|
-
* trading against numbers nobody read.
|
|
47
|
-
*/
|
|
48
|
-
private readClearinghouseView;
|
|
49
36
|
/**
|
|
50
37
|
* Edge-triggered full-book log: once on the transition into full, then at most once per
|
|
51
38
|
* {@link NO_SLOTS_LOG_INTERVAL_MS} with the count it suppressed in between.
|
|
@@ -62,10 +49,8 @@ export declare class OpenPositionAction implements Action {
|
|
|
62
49
|
* rather than risk a duplicate or an over-margined open.
|
|
63
50
|
*
|
|
64
51
|
* Shared by both read sites (the gate at the top of `handle`, and the stale-view refetch in
|
|
65
|
-
* the signal loop).
|
|
66
|
-
*
|
|
67
|
-
* candidates after. `riskSnapshot` is undefined at the early site, where no gate snapshot
|
|
68
|
-
* has been taken yet.
|
|
52
|
+
* the signal loop). `sorted` is empty at the early site — there is no decision, hence no
|
|
53
|
+
* candidates, yet — which is why the entries are built from it rather than assumed.
|
|
69
54
|
*/
|
|
70
55
|
private skipClearinghouseUnknown;
|
|
71
56
|
private normalizeSignals;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"open-position.action.d.ts","sourceRoot":"","sources":["../../../src/actions/open-position/open-position.action.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,MAAM,EACN,YAAY,EAEZ,aAAa,EACb,cAAc,EACd,YAAY,EACZ,SAAS,EAEV,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"open-position.action.d.ts","sourceRoot":"","sources":["../../../src/actions/open-position/open-position.action.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,MAAM,EACN,YAAY,EAEZ,aAAa,EACb,cAAc,EACd,YAAY,EACZ,SAAS,EAEV,MAAM,aAAa,CAAC;AAGrB,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AA4BtD;;;;;;;;;GASG;AACH,eAAO,MAAM,6BAA6B,QAAS,CAAC;AAyDpD,qBAAa,kBAAmB,YAAW,MAAM;IAwB7C,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,OAAO;IAxBjB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,UAAU,EAAG,eAAe,CAAU;IAE/C,OAAO,CAAC,cAAc,CAAiB;IAEvC;;;OAGG;IACH,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAkD;IAElF;;;;OAIG;IACH,OAAO,CAAC,UAAU,CAIhB;gBAGQ,MAAM,EAAE,YAAY,EACpB,OAAO,EAAE,cAAc;IASjC,OAAO,CAAC,QAAQ;IAYV,MAAM,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,YAAY,CAAC;IAyOrD,2FAA2F;IAC3F,OAAO,CAAC,YAAY;IAIpB;;;;;;;;OAQG;IACH,OAAO,CAAC,WAAW;IA4BnB;;;;;;;;OAQG;IACH,OAAO,CAAC,wBAAwB;IAwChC,OAAO,CAAC,gBAAgB;YAaV,aAAa;CA+gB5B;AAID,eAAO,MAAM,mBAAmB,EAAE,aACO,CAAC;AAE1C,eAAO,MAAM,oBAAoB,EAAE,cAMlC,CAAC"}
|