@senpi/runtime 1.1.0-dev.runtime-phase-2.20260609132603 → 1.1.0-dev.runtime-phase-2.20260610130051
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/close-position/close-position.action.d.ts +0 -16
- package/dist/actions/close-position/close-position.action.d.ts.map +1 -1
- package/dist/actions/close-position/close-position.action.js +38 -299
- package/dist/actions/close-position/close-position.action.js.map +1 -1
- package/dist/actions/decision-engine.d.ts +0 -2
- package/dist/actions/decision-engine.d.ts.map +1 -1
- package/dist/actions/decision-engine.js.map +1 -1
- package/dist/actions/llm-decision/factory.d.ts +0 -3
- package/dist/actions/llm-decision/factory.d.ts.map +1 -1
- package/dist/actions/llm-decision/factory.js +0 -1
- package/dist/actions/llm-decision/factory.js.map +1 -1
- package/dist/actions/llm-decision/openclaw-llm-decision.d.ts +0 -13
- package/dist/actions/llm-decision/openclaw-llm-decision.d.ts.map +1 -1
- package/dist/actions/llm-decision/openclaw-llm-decision.js +68 -195
- package/dist/actions/llm-decision/openclaw-llm-decision.js.map +1 -1
- package/dist/actions/open-position/open-position.action.d.ts +0 -12
- package/dist/actions/open-position/open-position.action.d.ts.map +1 -1
- package/dist/actions/open-position/open-position.action.js +123 -346
- package/dist/actions/open-position/open-position.action.js.map +1 -1
- package/dist/actions/position-tracker/position-tracker.action.d.ts +0 -6
- package/dist/actions/position-tracker/position-tracker.action.d.ts.map +1 -1
- package/dist/actions/position-tracker/position-tracker.action.js +0 -48
- package/dist/actions/position-tracker/position-tracker.action.js.map +1 -1
- package/dist/dsl/events/handlers.d.ts.map +1 -1
- package/dist/dsl/events/handlers.js +4 -0
- package/dist/dsl/events/handlers.js.map +1 -1
- package/dist/recording/emitter.d.ts +21 -0
- package/dist/recording/emitter.d.ts.map +1 -0
- package/dist/recording/emitter.js +2 -0
- package/dist/recording/emitter.js.map +1 -0
- package/dist/recording/identity.d.ts +34 -0
- package/dist/recording/identity.d.ts.map +1 -0
- package/dist/recording/identity.js +2 -0
- package/dist/recording/identity.js.map +1 -0
- package/dist/recording/index.d.ts +11 -0
- package/dist/recording/index.d.ts.map +1 -0
- package/dist/recording/index.js +2 -0
- package/dist/recording/index.js.map +1 -0
- package/dist/recording/noop-emitter.d.ts +17 -0
- package/dist/recording/noop-emitter.d.ts.map +1 -0
- package/dist/recording/noop-emitter.js +16 -0
- package/dist/recording/noop-emitter.js.map +1 -0
- package/dist/recording/otel/attributes.d.ts +35 -0
- package/dist/recording/otel/attributes.d.ts.map +1 -0
- package/dist/recording/otel/attributes.js +131 -0
- package/dist/recording/otel/attributes.js.map +1 -0
- package/dist/recording/otel/constants.d.ts +81 -0
- package/dist/recording/otel/constants.d.ts.map +1 -0
- package/dist/recording/otel/constants.js +96 -0
- package/dist/recording/otel/constants.js.map +1 -0
- package/dist/recording/otel/ids.d.ts +14 -0
- package/dist/recording/otel/ids.d.ts.map +1 -0
- package/dist/recording/otel/ids.js +12 -0
- package/dist/recording/otel/ids.js.map +1 -0
- package/dist/recording/otel/index.d.ts +13 -0
- package/dist/recording/otel/index.d.ts.map +1 -0
- package/dist/recording/otel/index.js +9 -0
- package/dist/recording/otel/index.js.map +1 -0
- package/dist/recording/otel/mappers.d.ts +42 -0
- package/dist/recording/otel/mappers.d.ts.map +1 -0
- package/dist/recording/otel/mappers.js +337 -0
- package/dist/recording/otel/mappers.js.map +1 -0
- package/dist/recording/otel/otel-emitter.d.ts +37 -0
- package/dist/recording/otel/otel-emitter.d.ts.map +1 -0
- package/dist/recording/otel/otel-emitter.js +75 -0
- package/dist/recording/otel/otel-emitter.js.map +1 -0
- package/dist/recording/otel/redaction.d.ts +31 -0
- package/dist/recording/otel/redaction.d.ts.map +1 -0
- package/dist/recording/otel/redaction.js +40 -0
- package/dist/recording/otel/redaction.js.map +1 -0
- package/dist/recording/records.d.ts +327 -0
- package/dist/recording/records.d.ts.map +1 -0
- package/dist/recording/records.js +14 -0
- package/dist/recording/records.js.map +1 -0
- package/dist/recording/transport/batcher.d.ts +59 -0
- package/dist/recording/transport/batcher.d.ts.map +1 -0
- package/dist/recording/transport/batcher.js +234 -0
- package/dist/recording/transport/batcher.js.map +1 -0
- package/dist/recording/transport/client.d.ts +41 -0
- package/dist/recording/transport/client.d.ts.map +1 -0
- package/dist/recording/transport/client.js +69 -0
- package/dist/recording/transport/client.js.map +1 -0
- package/dist/recording/transport/config.d.ts +53 -0
- package/dist/recording/transport/config.d.ts.map +1 -0
- package/dist/recording/transport/config.js +41 -0
- package/dist/recording/transport/config.js.map +1 -0
- package/dist/recording/transport/index.d.ts +16 -0
- package/dist/recording/transport/index.d.ts.map +1 -0
- package/dist/recording/transport/index.js +12 -0
- package/dist/recording/transport/index.js.map +1 -0
- package/dist/recording/transport/rows.d.ts +88 -0
- package/dist/recording/transport/rows.d.ts.map +1 -0
- package/dist/recording/transport/rows.js +15 -0
- package/dist/recording/transport/rows.js.map +1 -0
- package/dist/recording/wiring/emitter-factory.d.ts +39 -0
- package/dist/recording/wiring/emitter-factory.d.ts.map +1 -0
- package/dist/recording/wiring/emitter-factory.js +62 -0
- package/dist/recording/wiring/emitter-factory.js.map +1 -0
- package/dist/recording/wiring/identity.d.ts +27 -0
- package/dist/recording/wiring/identity.d.ts.map +1 -0
- package/dist/recording/wiring/identity.js +51 -0
- package/dist/recording/wiring/identity.js.map +1 -0
- package/dist/recording/wiring/index.d.ts +12 -0
- package/dist/recording/wiring/index.d.ts.map +1 -0
- package/dist/recording/wiring/index.js +9 -0
- package/dist/recording/wiring/index.js.map +1 -0
- package/dist/recording/wiring/record-builders.d.ts +68 -0
- package/dist/recording/wiring/record-builders.d.ts.map +1 -0
- package/dist/recording/wiring/record-builders.js +441 -0
- package/dist/recording/wiring/record-builders.js.map +1 -0
- package/dist/recording/wiring/subscriber.d.ts +21 -0
- package/dist/recording/wiring/subscriber.d.ts.map +1 -0
- package/dist/recording/wiring/subscriber.js +171 -0
- package/dist/recording/wiring/subscriber.js.map +1 -0
- package/dist/recording/wiring/values.d.ts +19 -0
- package/dist/recording/wiring/values.d.ts.map +1 -0
- package/dist/recording/wiring/values.js +49 -0
- package/dist/recording/wiring/values.js.map +1 -0
- package/dist/runtime/create-actions.d.ts.map +1 -1
- package/dist/runtime/create-actions.js +0 -2
- package/dist/runtime/create-actions.js.map +1 -1
- package/dist/runtime/create-runtime-context.d.ts +0 -2
- package/dist/runtime/create-runtime-context.d.ts.map +1 -1
- package/dist/runtime/create-runtime-context.js +0 -1
- package/dist/runtime/create-runtime-context.js.map +1 -1
- package/dist/runtime/create-scanner-module.d.ts +1 -1
- package/dist/runtime/create-scanner-module.d.ts.map +1 -1
- package/dist/runtime/create-scanner-module.js +1 -2
- package/dist/runtime/create-scanner-module.js.map +1 -1
- package/dist/runtime/load-runtime-config.d.ts +9 -0
- package/dist/runtime/load-runtime-config.d.ts.map +1 -1
- package/dist/runtime/load-runtime-config.js +41 -1
- package/dist/runtime/load-runtime-config.js.map +1 -1
- package/dist/runtime/run.d.ts.map +1 -1
- package/dist/runtime/run.js +3 -2
- package/dist/runtime/run.js.map +1 -1
- package/dist/runtime/runtime-schema.d.ts +182 -24
- package/dist/runtime/runtime-schema.d.ts.map +1 -1
- package/dist/runtime/runtime-schema.js +17 -1
- package/dist/runtime/runtime-schema.js.map +1 -1
- package/dist/runtime/runtime.d.ts +15 -5
- package/dist/runtime/runtime.d.ts.map +1 -1
- package/dist/runtime/runtime.js +248 -273
- package/dist/runtime/runtime.js.map +1 -1
- package/dist/scanners/engine/data-providers.d.ts +0 -2
- 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.map +1 -1
- package/dist/scanners/engine/engine.js +9 -68
- package/dist/scanners/engine/engine.js.map +1 -1
- package/dist/scanners/events.d.ts +6 -0
- package/dist/scanners/events.d.ts.map +1 -1
- package/dist/scanners/events.js.map +1 -1
- package/dist/scanners/runtime-module.d.ts +0 -2
- package/dist/scanners/runtime-module.d.ts.map +1 -1
- package/dist/scanners/runtime-module.js +9 -2
- package/dist/scanners/runtime-module.js.map +1 -1
- package/dist/senpi/client.d.ts +2 -2
- package/dist/senpi/client.d.ts.map +1 -1
- package/dist/senpi/client.js +20 -120
- package/dist/senpi/client.js.map +1 -1
- package/dist/senpi/types.d.ts +1 -68
- package/dist/senpi/types.d.ts.map +1 -1
- package/dist/strategy/strategy-state.d.ts +1 -1
- package/dist/strategy/strategy-state.d.ts.map +1 -1
- package/dist/tracking/spans/plugin-span-tracker.d.ts.map +1 -1
- package/dist/tracking/spans/plugin-span-tracker.js +24 -4
- package/dist/tracking/spans/plugin-span-tracker.js.map +1 -1
- package/dist/tracking/spans/redact-pii.d.ts +0 -10
- package/dist/tracking/spans/redact-pii.d.ts.map +1 -1
- package/dist/tracking/spans/redact-pii.js +2 -80
- package/dist/tracking/spans/redact-pii.js.map +1 -1
- package/dist/types/runtime.d.ts +0 -3
- package/dist/types/runtime.d.ts.map +1 -1
- package/dist/types/strategy.d.ts +2 -2
- package/dist/types/strategy.d.ts.map +1 -1
- package/package.json +1 -1
- package/dist/actions/otel-helpers.d.ts +0 -65
- package/dist/actions/otel-helpers.d.ts.map +0 -1
- package/dist/actions/otel-helpers.js +0 -122
- package/dist/actions/otel-helpers.js.map +0 -1
- package/dist/otel/context.d.ts +0 -24
- package/dist/otel/context.d.ts.map +0 -1
- package/dist/otel/context.js +0 -29
- package/dist/otel/context.js.map +0 -1
- package/dist/otel/emitter.d.ts +0 -73
- package/dist/otel/emitter.d.ts.map +0 -1
- package/dist/otel/emitter.js +0 -248
- package/dist/otel/emitter.js.map +0 -1
- package/dist/otel/encode.d.ts +0 -48
- package/dist/otel/encode.d.ts.map +0 -1
- package/dist/otel/encode.js +0 -100
- package/dist/otel/encode.js.map +0 -1
- package/dist/otel/index.d.ts +0 -13
- package/dist/otel/index.d.ts.map +0 -1
- package/dist/otel/index.js +0 -10
- package/dist/otel/index.js.map +0 -1
- package/dist/otel/transport.d.ts +0 -57
- package/dist/otel/transport.d.ts.map +0 -1
- package/dist/otel/transport.js +0 -208
- package/dist/otel/transport.js.map +0 -1
- package/dist/otel/types.d.ts +0 -62
- package/dist/otel/types.d.ts.map +0 -1
- package/dist/otel/types.js +0 -2
- package/dist/otel/types.js.map +0 -1
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Recording subscriber — the integration seam: subscribes to the `SenpiEventBus`, builds records
|
|
3
|
+
* from events, and forwards them to a {@link RecordingEmitter}. Pure consumer: it changes no trading
|
|
4
|
+
* behavior and emits no new bus events.
|
|
5
|
+
*
|
|
6
|
+
* Rule 3 (load-bearing): a throw inside a bus `on()` handler propagates synchronously back through
|
|
7
|
+
* `bus.emit` into the producer, so every handler wraps record assembly in try/catch and swallows.
|
|
8
|
+
* The emitter is already fire-and-forget; this guards the *assembly* boundary.
|
|
9
|
+
*/
|
|
10
|
+
import { buildDecisionOnlyEvaluated, buildDslTransition, buildPendingDecision, buildPositionLifecycle, buildResultOnlyEvaluated, buildRuntimeError, buildRuntimePaused, buildRuntimeStarted, buildRuntimeStopped, buildScannerRun, buildSignalEvaluated, } from "./record-builders.js";
|
|
11
|
+
import { asObject, str } from "./values.js";
|
|
12
|
+
import { createLogger } from "../../utils/logger.js";
|
|
13
|
+
const logger = createLogger("[recording][wiring][subscriber]");
|
|
14
|
+
/** `on_position_*` bus event → lifecycle event. `on_open_order_submitted` is intentionally absent. */
|
|
15
|
+
const POSITION_EVENTS = {
|
|
16
|
+
on_position_opened: "opened",
|
|
17
|
+
on_position_closed: "closed",
|
|
18
|
+
on_position_flipped: "flipped",
|
|
19
|
+
on_position_increased: "increased",
|
|
20
|
+
on_position_decreased: "decreased",
|
|
21
|
+
};
|
|
22
|
+
/** `dsl.*` bus event → transition kind. */
|
|
23
|
+
const DSL_EVENTS = {
|
|
24
|
+
"dsl.created": "created",
|
|
25
|
+
"dsl.phase_changed": "phase_changed",
|
|
26
|
+
"dsl.tier_advanced": "tier_advanced",
|
|
27
|
+
"dsl.sl_updated": "sl_updated",
|
|
28
|
+
"dsl.closed": "closed",
|
|
29
|
+
"dsl.close_pending": "close_pending",
|
|
30
|
+
"dsl.settings_updated": "settings_updated",
|
|
31
|
+
"dsl.deleted": "deleted",
|
|
32
|
+
};
|
|
33
|
+
/** Self-pause HookEvents → a stable fallback gate id used only when the payload omits one. */
|
|
34
|
+
const PAUSE_EVENTS = {
|
|
35
|
+
on_strategy_self_paused: "self_paused",
|
|
36
|
+
on_daily_limit_hit: "daily_limit",
|
|
37
|
+
on_drawdown_cap_hit: "drawdown_cap",
|
|
38
|
+
};
|
|
39
|
+
/**
|
|
40
|
+
* Pairing key for a decision/action_result pair: the action name alone. Sound because
|
|
41
|
+
* `hookSystem.fire` delivers to the bus synchronously in call order (`hook-system.ts`) and the
|
|
42
|
+
* signal consumer awaits all of a pass's actions before the next pass begins — so at most one
|
|
43
|
+
* un-resulted decision per action exists at any moment. Deliberately NOT the legacy
|
|
44
|
+
* `__correlationId`: that system is deprecated and telemetry must not depend on it. (If a future
|
|
45
|
+
* stage needs a cross-record join key, mint a telemetry-owned pass sequence at the consume seam —
|
|
46
|
+
* do not resurrect the legacy id.)
|
|
47
|
+
*/
|
|
48
|
+
function pairKey(payload) {
|
|
49
|
+
const data = asObject(asObject(payload)?.data);
|
|
50
|
+
return str(data?.actionName) ?? "";
|
|
51
|
+
}
|
|
52
|
+
export function createRecordingSubscriber(bus, emitter, deps = {}) {
|
|
53
|
+
const handlers = [];
|
|
54
|
+
/**
|
|
55
|
+
* Decisions awaiting their action_result, keyed by action name ({@link pairKey}). Actions for one
|
|
56
|
+
* scan pass run concurrently, so emits interleave across actions — but never across passes (serial
|
|
57
|
+
* consumption), so each action has at most one un-resulted decision at a time and the map is
|
|
58
|
+
* naturally bounded by the number of configured actions. A stale entry (a decision whose action
|
|
59
|
+
* never emitted a result) is flushed as a decision-only record when that action's next decision
|
|
60
|
+
* arrives — visible, not silently dropped.
|
|
61
|
+
*/
|
|
62
|
+
const pending = new Map();
|
|
63
|
+
function subscribe(event, handler) {
|
|
64
|
+
const guarded = (payload) => {
|
|
65
|
+
try {
|
|
66
|
+
handler(payload);
|
|
67
|
+
}
|
|
68
|
+
catch (err) {
|
|
69
|
+
logger.warn("recording subscriber handler threw; swallowed (telemetry must never throw into the bus)", {
|
|
70
|
+
event,
|
|
71
|
+
err: err instanceof Error ? err.message : String(err),
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
};
|
|
75
|
+
bus.on(event, guarded);
|
|
76
|
+
handlers.push({ event, handler: guarded });
|
|
77
|
+
}
|
|
78
|
+
// Completed runs, plus the add-only skip/error events the runtime forwards off the scanner
|
|
79
|
+
// module — all three build the same ScannerRunRecord (outcome derived from `status`).
|
|
80
|
+
for (const event of ["tracking.scanner_run", "tracking.scanner_run_skipped", "tracking.scanner_run_error"]) {
|
|
81
|
+
subscribe(event, (payload) => {
|
|
82
|
+
const record = buildScannerRun(payload, Date.now());
|
|
83
|
+
if (record)
|
|
84
|
+
emitter.recordScannerRun(record);
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
subscribe("tracking.decision", (payload) => {
|
|
88
|
+
const decision = buildPendingDecision(payload, Date.now());
|
|
89
|
+
if (!decision)
|
|
90
|
+
return;
|
|
91
|
+
const key = pairKey(payload);
|
|
92
|
+
const stale = pending.get(key);
|
|
93
|
+
if (stale)
|
|
94
|
+
emitter.recordSignalEvaluated(buildDecisionOnlyEvaluated(stale));
|
|
95
|
+
pending.set(key, decision);
|
|
96
|
+
});
|
|
97
|
+
subscribe("tracking.action_result", (payload) => {
|
|
98
|
+
const key = pairKey(payload);
|
|
99
|
+
const decision = pending.get(key);
|
|
100
|
+
if (decision) {
|
|
101
|
+
pending.delete(key);
|
|
102
|
+
emitter.recordSignalEvaluated(buildSignalEvaluated(decision, payload, Date.now()));
|
|
103
|
+
return;
|
|
104
|
+
}
|
|
105
|
+
// No held decision: the producer never emitted `tracking.decision` for this pass (e.g.
|
|
106
|
+
// close-position's static-params path). Record an evaluations-only pass, not nothing.
|
|
107
|
+
const record = buildResultOnlyEvaluated(payload, Date.now());
|
|
108
|
+
if (record)
|
|
109
|
+
emitter.recordSignalEvaluated(record);
|
|
110
|
+
});
|
|
111
|
+
for (const [event, lifecycleEvent] of Object.entries(POSITION_EVENTS)) {
|
|
112
|
+
subscribe(event, (payload) => {
|
|
113
|
+
const record = buildPositionLifecycle(lifecycleEvent, payload, Date.now());
|
|
114
|
+
if (record)
|
|
115
|
+
emitter.recordPositionLifecycle(record);
|
|
116
|
+
});
|
|
117
|
+
}
|
|
118
|
+
for (const [event, transition] of Object.entries(DSL_EVENTS)) {
|
|
119
|
+
subscribe(event, (payload) => {
|
|
120
|
+
const record = buildDslTransition(transition, payload, Date.now());
|
|
121
|
+
if (record)
|
|
122
|
+
emitter.recordDslTransition(record);
|
|
123
|
+
});
|
|
124
|
+
}
|
|
125
|
+
subscribe("signal_processing_error", (payload) => {
|
|
126
|
+
const record = buildRuntimeError(payload, Date.now());
|
|
127
|
+
if (record)
|
|
128
|
+
emitter.recordError(record);
|
|
129
|
+
});
|
|
130
|
+
subscribe("tracking.runtime_started", (payload) => {
|
|
131
|
+
const record = buildRuntimeStarted(payload, deps.unresolvedConfig, Date.now());
|
|
132
|
+
if (record)
|
|
133
|
+
emitter.recordRuntimeLifecycle(record);
|
|
134
|
+
});
|
|
135
|
+
subscribe("tracking.runtime_stopped", (payload) => {
|
|
136
|
+
const record = buildRuntimeStopped(payload, Date.now());
|
|
137
|
+
if (record)
|
|
138
|
+
emitter.recordRuntimeLifecycle(record);
|
|
139
|
+
});
|
|
140
|
+
for (const [event, fallbackGateId] of Object.entries(PAUSE_EVENTS)) {
|
|
141
|
+
subscribe(event, (payload) => {
|
|
142
|
+
const record = buildRuntimePaused(payload, fallbackGateId, Date.now());
|
|
143
|
+
if (record)
|
|
144
|
+
emitter.recordRuntimeState(record);
|
|
145
|
+
});
|
|
146
|
+
}
|
|
147
|
+
let disposed = false;
|
|
148
|
+
return {
|
|
149
|
+
dispose() {
|
|
150
|
+
if (disposed)
|
|
151
|
+
return;
|
|
152
|
+
disposed = true;
|
|
153
|
+
for (const { event, handler } of handlers)
|
|
154
|
+
bus.off(event, handler);
|
|
155
|
+
handlers.length = 0;
|
|
156
|
+
// Flush still-pending decisions as decision-only records so a shutdown mid-pass stays
|
|
157
|
+
// visible. Runtime.stop() disposes the subscriber before the batcher's shutdown flush,
|
|
158
|
+
// so these records still ship.
|
|
159
|
+
for (const stale of pending.values()) {
|
|
160
|
+
try {
|
|
161
|
+
emitter.recordSignalEvaluated(buildDecisionOnlyEvaluated(stale));
|
|
162
|
+
}
|
|
163
|
+
catch {
|
|
164
|
+
// Rule 3: telemetry never throws.
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
pending.clear();
|
|
168
|
+
},
|
|
169
|
+
};
|
|
170
|
+
}
|
|
171
|
+
//# sourceMappingURL=subscriber.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"subscriber.js","sourceRoot":"","sources":["../../../src/recording/wiring/subscriber.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
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 declare function asObject(value: unknown): Record<string, unknown> | undefined;
|
|
8
|
+
/** A non-empty string, or `undefined`. */
|
|
9
|
+
export declare function str(value: unknown): string | undefined;
|
|
10
|
+
/** A finite number, coercing numeric strings; `undefined` otherwise. */
|
|
11
|
+
export declare function num(value: unknown): number | undefined;
|
|
12
|
+
/** A boolean, or `undefined` (so absence stays distinct from `false`). */
|
|
13
|
+
export declare function bool(value: unknown): boolean | undefined;
|
|
14
|
+
/**
|
|
15
|
+
* ISO string or epoch-ms number → epoch ms. Falls back to `fallbackMs` when the value is missing
|
|
16
|
+
* or unparseable, so a record always carries a usable timestamp instead of `NaN`.
|
|
17
|
+
*/
|
|
18
|
+
export declare function toEpochMs(value: unknown, fallbackMs: number): number;
|
|
19
|
+
//# sourceMappingURL=values.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"values.d.ts","sourceRoot":"","sources":["../../../src/recording/wiring/values.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,iFAAiF;AACjF,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAK5E;AAED,0CAA0C;AAC1C,wBAAgB,GAAG,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAEtD;AAED,wEAAwE;AACxE,wBAAgB,GAAG,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAOtD;AAED,0EAA0E;AAC1E,wBAAgB,IAAI,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,GAAG,SAAS,CAExD;AAED;;;GAGG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAYpE"}
|
|
@@ -0,0 +1,49 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-actions.d.ts","sourceRoot":"","sources":["../../src/runtime/create-actions.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,YAAY,EAAc,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACvF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAC/E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAE3D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEzD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"create-actions.d.ts","sourceRoot":"","sources":["../../src/runtime/create-actions.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,YAAY,EAAc,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACvF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAC/E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAE3D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEzD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AAK1E,MAAM,WAAW,oBAAqB,SAAQ,IAAI,CAAC,uBAAuB,EAAE,UAAU,GAAG,UAAU,CAAC;IAClG,GAAG,EAAE,aAAa,CAAC;IACnB,4GAA4G;IAC5G,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,6EAA6E;IAC7E,YAAY,CAAC,EAAE,mBAAmB,CAAC;CACpC;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,MAAM,EAAE,YAAY,CAAC;CACtB;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,cAAc,EAAE,CAAC;IAC1B,mBAAmB,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1D;AAED;;;;;GAKG;AACH,wBAAsB,aAAa,CAAC,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAwFtH"}
|
|
@@ -6,7 +6,6 @@ import { ActionRegistry } from "./action-registry.js";
|
|
|
6
6
|
import { createRuntimeContext } from "./create-runtime-context.js";
|
|
7
7
|
import { resolveStrategyConfig } from "./map-strategies.js";
|
|
8
8
|
import { MaxLeverageCache } from "../leverage/max-leverage-cache.js";
|
|
9
|
-
import { OtelEmitter } from "../otel/index.js";
|
|
10
9
|
/**
|
|
11
10
|
* For each entry in config.actions, look up factory by action_type, build ActionConfig,
|
|
12
11
|
* use shared RuntimeContext (built once per trading recipe and reused), instantiate action. Returns actions
|
|
@@ -23,7 +22,6 @@ export async function createActions(config, options) {
|
|
|
23
22
|
riskGuard: options.riskGuard,
|
|
24
23
|
notifications: options.notifications,
|
|
25
24
|
maxLeverageCache: new MaxLeverageCache(options.senpi),
|
|
26
|
-
otel: OtelEmitter.disabled(),
|
|
27
25
|
});
|
|
28
26
|
const actions = [];
|
|
29
27
|
const actionList = config.actions ?? [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-actions.js","sourceRoot":"","sources":["../../src/runtime/create-actions.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAG/C,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;
|
|
1
|
+
{"version":3,"file":"create-actions.js","sourceRoot":"","sources":["../../src/runtime/create-actions.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,7 +9,6 @@ import type { ContextBuilder } from "../context/types.js";
|
|
|
9
9
|
import type { NotificationService } from "../types/notification.js";
|
|
10
10
|
import type { ScannerRuntimeModule } from "../scanners/runtime-module.js";
|
|
11
11
|
import type { MaxLeverageCache } from "../leverage/max-leverage-cache.js";
|
|
12
|
-
import type { OtelEmitter } from "../otel/index.js";
|
|
13
12
|
export interface CreateRuntimeContextDeps {
|
|
14
13
|
senpi: SenpiClient;
|
|
15
14
|
hookSystem: HookSystem;
|
|
@@ -19,7 +18,6 @@ export interface CreateRuntimeContextDeps {
|
|
|
19
18
|
notifications: NotificationService;
|
|
20
19
|
scannerModule?: ScannerRuntimeModule;
|
|
21
20
|
maxLeverageCache: MaxLeverageCache;
|
|
22
|
-
otel: OtelEmitter;
|
|
23
21
|
}
|
|
24
22
|
/**
|
|
25
23
|
* Build a live StrategyState from a StrategyConfig and SenpiClient.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-runtime-context.d.ts","sourceRoot":"","sources":["../../src/runtime/create-runtime-context.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAC1E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAC9E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AACpE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AAC1E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;
|
|
1
|
+
{"version":3,"file":"create-runtime-context.d.ts","sourceRoot":"","sources":["../../src/runtime/create-runtime-context.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAC1E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAC9E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AACpE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AAC1E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAG1E,MAAM,WAAW,wBAAwB;IACvC,KAAK,EAAE,WAAW,CAAC;IACnB,UAAU,EAAE,UAAU,CAAC;IACvB,WAAW,EAAE,WAAW,CAAC;IACzB,cAAc,EAAE,cAAc,CAAC;IAC/B,SAAS,EAAE,SAAS,CAAC;IACrB,aAAa,EAAE,mBAAmB,CAAC;IACnC,aAAa,CAAC,EAAE,oBAAoB,CAAC;IACrC,gBAAgB,EAAE,gBAAgB,CAAC;CACpC;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,cAAc,EAAE,cAAc,EAC9B,KAAK,EAAE,WAAW,GACjB,aAAa,CAEf;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CACrC,cAAc,EAAE,cAAc,EAC9B,KAAK,EAAE,WAAW,GACjB,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,CAE5B;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,cAAc,EAAE,cAAc,EAC9B,IAAI,EAAE,wBAAwB,GAC7B,cAAc,CAahB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-runtime-context.js","sourceRoot":"","sources":["../../src/runtime/create-runtime-context.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"create-runtime-context.js","sourceRoot":"","sources":["../../src/runtime/create-runtime-context.ts"],"names":[],"mappings":"AAAA;;GAEG;AAUH,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAalE;;GAEG;AACH,MAAM,UAAU,mBAAmB,CACjC,cAA8B,EAC9B,KAAkB;IAElB,OAAO,IAAI,iBAAiB,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;AACtD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,uBAAuB,CACrC,cAA8B,EAC9B,KAAkB;IAElB,OAAO,IAAI,GAAG,CAAC,CAAC,CAAC,cAAc,CAAC,OAAO,EAAE,mBAAmB,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AACzF,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAClC,cAA8B,EAC9B,IAA8B;IAE9B,MAAM,aAAa,GAAG,mBAAmB,CAAC,cAAc,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IACtE,OAAO;QACL,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,UAAU,EAAE,IAAI,CAAC,UAAU;QAC3B,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,cAAc,EAAE,IAAI,CAAC,cAAc;QACnC,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,aAAa,EAAE,IAAI,CAAC,aAAa;QACjC,aAAa;QACb,aAAa,EAAE,IAAI,CAAC,aAAa;QACjC,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;KACxC,CAAC;AACJ,CAAC"}
|
|
@@ -15,5 +15,5 @@ import type { RuntimeConfig } from "./runtime-config.js";
|
|
|
15
15
|
* are what make external context producers available to `depends_on` and
|
|
16
16
|
* action-context validation.
|
|
17
17
|
*/
|
|
18
|
-
export declare function createScannerModuleFromRuntimeConfig(config: RuntimeConfig, stateDir: string, providers?: ScannerDataProviders, logger?: ScannerLogger
|
|
18
|
+
export declare function createScannerModuleFromRuntimeConfig(config: RuntimeConfig, stateDir: string, providers?: ScannerDataProviders, logger?: ScannerLogger): ReturnType<typeof createScannerRuntimeModule>;
|
|
19
19
|
//# sourceMappingURL=create-scanner-module.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-scanner-module.d.ts","sourceRoot":"","sources":["../../src/runtime/create-scanner-module.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AACjF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAG3E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAKzD;;;;;;;;;GASG;AACH,wBAAgB,oCAAoC,CAClD,MAAM,EAAE,aAAa,EACrB,QAAQ,EAAE,MAAM,EAChB,SAAS,CAAC,EAAE,oBAAoB,EAChC,MAAM,CAAC,EAAE,aAAa,
|
|
1
|
+
{"version":3,"file":"create-scanner-module.d.ts","sourceRoot":"","sources":["../../src/runtime/create-scanner-module.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AACjF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAG3E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAKzD;;;;;;;;;GASG;AACH,wBAAgB,oCAAoC,CAClD,MAAM,EAAE,aAAa,EACrB,QAAQ,EAAE,MAAM,EAChB,SAAS,CAAC,EAAE,oBAAoB,EAChC,MAAM,CAAC,EAAE,aAAa,GACrB,UAAU,CAAC,OAAO,0BAA0B,CAAC,CAkC/C"}
|
|
@@ -16,7 +16,7 @@ import { buildScannerComposition } from "./scanner-composition.js";
|
|
|
16
16
|
* are what make external context producers available to `depends_on` and
|
|
17
17
|
* action-context validation.
|
|
18
18
|
*/
|
|
19
|
-
export function createScannerModuleFromRuntimeConfig(config, stateDir, providers, logger
|
|
19
|
+
export function createScannerModuleFromRuntimeConfig(config, stateDir, providers, logger) {
|
|
20
20
|
const strategy = resolveStrategyRegistration(config);
|
|
21
21
|
const scanners = [];
|
|
22
22
|
for (const sc of config.scanners ?? []) {
|
|
@@ -37,7 +37,6 @@ export function createScannerModuleFromRuntimeConfig(config, stateDir, providers
|
|
|
37
37
|
composition,
|
|
38
38
|
providers,
|
|
39
39
|
logger,
|
|
40
|
-
otel,
|
|
41
40
|
});
|
|
42
41
|
}
|
|
43
42
|
//# sourceMappingURL=create-scanner-module.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-scanner-module.js","sourceRoot":"","sources":["../../src/runtime/create-scanner-module.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAE3E,OAAO,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAC;AAE7E,OAAO,EAAE,2BAA2B,EAAE,MAAM,kCAAkC,CAAC;AAC/E,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AAEnE;;;;;;;;;GASG;AACH,MAAM,UAAU,oCAAoC,CAClD,MAAqB,EACrB,QAAgB,EAChB,SAAgC,EAChC,MAAsB
|
|
1
|
+
{"version":3,"file":"create-scanner-module.js","sourceRoot":"","sources":["../../src/runtime/create-scanner-module.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAE3E,OAAO,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAC;AAE7E,OAAO,EAAE,2BAA2B,EAAE,MAAM,kCAAkC,CAAC;AAC/E,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AAEnE;;;;;;;;;GASG;AACH,MAAM,UAAU,oCAAoC,CAClD,MAAqB,EACrB,QAAgB,EAChB,SAAgC,EAChC,MAAsB;IAEtB,MAAM,QAAQ,GAAG,2BAA2B,CAAC,MAAM,CAAC,CAAC;IACrD,MAAM,QAAQ,GAAmB,EAAE,CAAC;IACpC,KAAK,MAAM,EAAE,IAAI,MAAM,CAAC,QAAQ,IAAI,EAAE,EAAE,CAAC;QACvC,QAAQ,CAAC,IAAI,CACX,eAAe,CAAC,aAAa,CAC3B,EAAE,CAAC,IAAI,EACP,EAAE,CAAC,IAAI,EACP,EAAE,CAAC,MAAM,EACT,EAAE,CAAC,UAAU,EACb,EAAE,CAAC,IAAI,KAAK,kBAAkB;YAC5B,CAAC,CAAC;gBACE,OAAO,EAAE,EAAE,CAAC,OAAO;gBACnB,SAAS,EAAE,EAAE,CAAC,SAAS;gBACvB,gBAAgB,EAAE,EAAE,CAAC,kBAAkB;aACxC;YACH,CAAC,CAAC,SAAS,CACd,CACF,CAAC;IACJ,CAAC;IACD,MAAM,gBAAgB,GAAG,oBAAoB,CAAC,QAAQ,CAAC,CAAC;IACxD,MAAM,WAAW,GAAG,uBAAuB,CACzC,MAAM,EACN,gBAAgB,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,EACrD,MAAM,CACP,CAAC;IACF,OAAO,0BAA0B,CAAC;QAChC,QAAQ;QACR,QAAQ;QACR,QAAQ,EAAE,gBAAgB,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC;QAC5D,WAAW;QACX,SAAS;QACT,MAAM;KACP,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -20,4 +20,13 @@ export declare const MINIMAL_RECIPE_YAML_SAMPLE = "# Required: name and a strate
|
|
|
20
20
|
* Throws with path-based error messages on validation failure.
|
|
21
21
|
*/
|
|
22
22
|
export declare function loadRuntimeConfig(pathOrContent: string, options?: LoadRuntimeConfigOptions): Promise<RuntimeConfig>;
|
|
23
|
+
/**
|
|
24
|
+
* Like {@link loadRuntimeConfig} but also returns the **unresolved** parsed config (raw YAML object,
|
|
25
|
+
* `${VAR}` placeholders intact). Telemetry fingerprints and snapshots the recipe with the unresolved
|
|
26
|
+
* form — never the resolved one, which would inline secrets — so the boot path needs both.
|
|
27
|
+
*/
|
|
28
|
+
export declare function loadRuntimeConfigWithRaw(pathOrContent: string, options?: LoadRuntimeConfigOptions): Promise<{
|
|
29
|
+
config: RuntimeConfig;
|
|
30
|
+
unresolved: Record<string, unknown>;
|
|
31
|
+
}>;
|
|
23
32
|
//# sourceMappingURL=load-runtime-config.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"load-runtime-config.d.ts","sourceRoot":"","sources":["../../src/runtime/load-runtime-config.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,OAAO,EAAuB,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAM9E,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;;GAGG;AACH,eAAO,MAAM,0BAA0B,sVAQtC,CAAC;
|
|
1
|
+
{"version":3,"file":"load-runtime-config.d.ts","sourceRoot":"","sources":["../../src/runtime/load-runtime-config.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,OAAO,EAAuB,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAM9E,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;;GAGG;AACH,eAAO,MAAM,0BAA0B,sVAQtC,CAAC;AAkKF;;;;;;GAMG;AACH,wBAAsB,iBAAiB,CACrC,aAAa,EAAE,MAAM,EACrB,OAAO,CAAC,EAAE,wBAAwB,GACjC,OAAO,CAAC,aAAa,CAAC,CAExB;AAED;;;;GAIG;AACH,wBAAsB,wBAAwB,CAC5C,aAAa,EAAE,MAAM,EACrB,OAAO,CAAC,EAAE,wBAAwB,GACjC,OAAO,CAAC;IAAE,MAAM,EAAE,aAAa,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,CAAC,CA+EzE"}
|
|
@@ -136,6 +136,37 @@ function assertUniqueScannerNames(config) {
|
|
|
136
136
|
.join("\n");
|
|
137
137
|
throw new Error(`Duplicate scanner name(s). Scanner names must be unique within one runtime:\n${details}`);
|
|
138
138
|
}
|
|
139
|
+
/**
|
|
140
|
+
* Rejects configs where two or more action entries share the same `name`.
|
|
141
|
+
*
|
|
142
|
+
* Action names key per-action state across the runtime — the action module's telemetry slots and
|
|
143
|
+
* the recording subscriber's decision/result pairing both assume one entry per name — so duplicates
|
|
144
|
+
* would silently share state and mis-pair telemetry rather than fail loudly.
|
|
145
|
+
*/
|
|
146
|
+
function assertUniqueActionNames(config) {
|
|
147
|
+
const actions = config.actions ?? [];
|
|
148
|
+
const firstSeen = new Map();
|
|
149
|
+
const duplicates = new Map();
|
|
150
|
+
actions.forEach((action, index) => {
|
|
151
|
+
const prior = firstSeen.get(action.name);
|
|
152
|
+
if (prior === undefined) {
|
|
153
|
+
firstSeen.set(action.name, index);
|
|
154
|
+
return;
|
|
155
|
+
}
|
|
156
|
+
const list = duplicates.get(action.name) ?? [prior];
|
|
157
|
+
list.push(index);
|
|
158
|
+
duplicates.set(action.name, list);
|
|
159
|
+
});
|
|
160
|
+
if (duplicates.size === 0)
|
|
161
|
+
return;
|
|
162
|
+
const details = Array.from(duplicates.entries())
|
|
163
|
+
.map(([name, indices]) => {
|
|
164
|
+
const paths = indices.map((i) => `actions.${i}`).join(", ");
|
|
165
|
+
return ` • '${name}' at ${paths}`;
|
|
166
|
+
})
|
|
167
|
+
.join("\n");
|
|
168
|
+
throw new Error(`Duplicate action name(s). Action names must be unique within one runtime:\n${details}`);
|
|
169
|
+
}
|
|
139
170
|
/**
|
|
140
171
|
* Load trading recipe from a file path or YAML string.
|
|
141
172
|
* - If fromPath is true, pathOrContent is a file path.
|
|
@@ -144,6 +175,14 @@ function assertUniqueScannerNames(config) {
|
|
|
144
175
|
* Throws with path-based error messages on validation failure.
|
|
145
176
|
*/
|
|
146
177
|
export async function loadRuntimeConfig(pathOrContent, options) {
|
|
178
|
+
return (await loadRuntimeConfigWithRaw(pathOrContent, options)).config;
|
|
179
|
+
}
|
|
180
|
+
/**
|
|
181
|
+
* Like {@link loadRuntimeConfig} but also returns the **unresolved** parsed config (raw YAML object,
|
|
182
|
+
* `${VAR}` placeholders intact). Telemetry fingerprints and snapshots the recipe with the unresolved
|
|
183
|
+
* form — never the resolved one, which would inline secrets — so the boot path needs both.
|
|
184
|
+
*/
|
|
185
|
+
export async function loadRuntimeConfigWithRaw(pathOrContent, options) {
|
|
147
186
|
const fromPath = options?.fromPath === true;
|
|
148
187
|
let raw;
|
|
149
188
|
try {
|
|
@@ -174,6 +213,7 @@ export async function loadRuntimeConfig(pathOrContent, options) {
|
|
|
174
213
|
if (result.success) {
|
|
175
214
|
const cfg = result.data;
|
|
176
215
|
assertUniqueScannerNames(cfg);
|
|
216
|
+
assertUniqueActionNames(cfg);
|
|
177
217
|
assertActionPromptPlaceholdersResolvable(cfg);
|
|
178
218
|
const major = extractMajorVersion(cfg.version);
|
|
179
219
|
if (!SUPPORTED_RUNTIME_VERSIONS.includes(major)) {
|
|
@@ -199,7 +239,7 @@ export async function loadRuntimeConfig(pathOrContent, options) {
|
|
|
199
239
|
}
|
|
200
240
|
}
|
|
201
241
|
}
|
|
202
|
-
return cfg;
|
|
242
|
+
return { config: cfg, unresolved: raw };
|
|
203
243
|
}
|
|
204
244
|
const err = result.error;
|
|
205
245
|
const message = formatZodError("Trading recipe validation failed:", err.issues.map((issue) => ({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"load-runtime-config.js","sourceRoot":"","sources":["../../src/runtime/load-runtime-config.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"load-runtime-config.js","sourceRoot":"","sources":["../../src/runtime/load-runtime-config.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../src/runtime/run.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,KAAK,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAClF,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AACjF,OAAO,KAAK,EACV,4BAA4B,EAC5B,2BAA2B,EAC5B,MAAM,0CAA0C,CAAC;AAClD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,KAAK,EACV,qBAAqB,EACrB,YAAY,EACZ,iBAAiB,EACjB,wBAAwB,EACzB,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAK/E,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gBAAgB,CAAC,EAAE,oBAAoB,CAAC;IACxC;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACtB,GAAG,EAAE,SAAS,GAAG,IAAI,CAAC;IACtB,uDAAuD;IACvD,MAAM,EAAE,MAAM,CAAC;IACf;;;;OAIG;IACH,yBAAyB,CACvB,OAAO,EAAE,4BAA4B,GACpC,OAAO,CAAC,2BAA2B,CAAC,CAAC;IAExC,eAAe,IAAI,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAAC,CAAC;IACvD,cAAc,IAAI,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC,CAAC;IACrD;;;;;OAKG;IACH,6BAA6B,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAEjD;;;;;;;;;;;;;;;;;;;OAmBG;IACH,UAAU,CACR,IAAI,EAAE,cAAc,EACpB,IAAI,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,WAAW,CAAA;KAAE,GAC9B,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAE7B;;;;;;;OAOG;IACH,mBAAmB,IAAI,MAAM,CAAC;IAE9B;;;;;;;;;;;OAWG;IACH,aAAa,IAAI,MAAM,GAAG,IAAI,CAAC;IAE/B;;;;;;;;;;;OAWG;IACH,sBAAsB,CAAC,MAAM,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAAC;IAE5E;;;;;;;OAOG;IACH,oBAAoB,CAClB,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAAC;IAErC;;;;;;;;;;;OAWG;IACH,yBAAyB,CACvB,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,EAClB,IAAI,CAAC,EAAE,wBAAwB,GAC9B,OAAO,CAAC,qBAAqB,EAAE,CAAC,CAAC;CACrC;AAED;;;GAGG;AACH,wBAAsB,GAAG,CACvB,mBAAmB,EAAE,MAAM,EAC3B,OAAO,CAAC,EAAE,UAAU,GACnB,OAAO,CAAC,aAAa,CAAC,
|
|
1
|
+
{"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../src/runtime/run.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,KAAK,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAClF,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AACjF,OAAO,KAAK,EACV,4BAA4B,EAC5B,2BAA2B,EAC5B,MAAM,0CAA0C,CAAC;AAClD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,KAAK,EACV,qBAAqB,EACrB,YAAY,EACZ,iBAAiB,EACjB,wBAAwB,EACzB,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAK/E,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gBAAgB,CAAC,EAAE,oBAAoB,CAAC;IACxC;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACtB,GAAG,EAAE,SAAS,GAAG,IAAI,CAAC;IACtB,uDAAuD;IACvD,MAAM,EAAE,MAAM,CAAC;IACf;;;;OAIG;IACH,yBAAyB,CACvB,OAAO,EAAE,4BAA4B,GACpC,OAAO,CAAC,2BAA2B,CAAC,CAAC;IAExC,eAAe,IAAI,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAAC,CAAC;IACvD,cAAc,IAAI,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC,CAAC;IACrD;;;;;OAKG;IACH,6BAA6B,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAEjD;;;;;;;;;;;;;;;;;;;OAmBG;IACH,UAAU,CACR,IAAI,EAAE,cAAc,EACpB,IAAI,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,WAAW,CAAA;KAAE,GAC9B,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAE7B;;;;;;;OAOG;IACH,mBAAmB,IAAI,MAAM,CAAC;IAE9B;;;;;;;;;;;OAWG;IACH,aAAa,IAAI,MAAM,GAAG,IAAI,CAAC;IAE/B;;;;;;;;;;;OAWG;IACH,sBAAsB,CAAC,MAAM,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAAC;IAE5E;;;;;;;OAOG;IACH,oBAAoB,CAClB,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAAC;IAErC;;;;;;;;;;;OAWG;IACH,yBAAyB,CACvB,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,EAClB,IAAI,CAAC,EAAE,wBAAwB,GAC9B,OAAO,CAAC,qBAAqB,EAAE,CAAC,CAAC;CACrC;AAED;;;GAGG;AACH,wBAAsB,GAAG,CACvB,mBAAmB,EAAE,MAAM,EAC3B,OAAO,CAAC,EAAE,UAAU,GACnB,OAAO,CAAC,aAAa,CAAC,CAwExB"}
|
package/dist/runtime/run.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Programmatic entry: load trading recipe and start runtime. Returns handle with stop().
|
|
3
3
|
*/
|
|
4
4
|
import { getDefaultStateDir } from "./default-state-dir.js";
|
|
5
|
-
import {
|
|
5
|
+
import { loadRuntimeConfigWithRaw } from "./load-runtime-config.js";
|
|
6
6
|
import { Runtime } from "./runtime.js";
|
|
7
7
|
/**
|
|
8
8
|
* Load trading recipe from path or content, create Runtime, start it, and return a handle with stop().
|
|
@@ -10,7 +10,7 @@ import { Runtime } from "./runtime.js";
|
|
|
10
10
|
*/
|
|
11
11
|
export async function run(recipePathOrContent, options) {
|
|
12
12
|
const fromPath = options?.fromPath === true;
|
|
13
|
-
const config = await
|
|
13
|
+
const { config, unresolved: unresolvedConfig } = await loadRuntimeConfigWithRaw(recipePathOrContent, { fromPath });
|
|
14
14
|
const stateDir = (typeof options?.stateDir === "string" && options.stateDir.length > 0)
|
|
15
15
|
? options.stateDir
|
|
16
16
|
: getDefaultStateDir();
|
|
@@ -25,6 +25,7 @@ export async function run(recipePathOrContent, options) {
|
|
|
25
25
|
apiKey,
|
|
26
26
|
scannerProviders: options?.scannerProviders,
|
|
27
27
|
runtimeId: options?.runtimeId,
|
|
28
|
+
unresolvedConfig,
|
|
28
29
|
});
|
|
29
30
|
await runtime.start();
|
|
30
31
|
return {
|
package/dist/runtime/run.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run.js","sourceRoot":"","sources":["../../src/runtime/run.ts"],"names":[],"mappings":"AAAA;;GAEG;AAiBH,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"run.js","sourceRoot":"","sources":["../../src/runtime/run.ts"],"names":[],"mappings":"AAAA;;GAEG;AAiBH,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AACpE,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAuIvC;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,GAAG,CACvB,mBAA2B,EAC3B,OAAoB;IAEpB,MAAM,QAAQ,GAAG,OAAO,EAAE,QAAQ,KAAK,IAAI,CAAC;IAC5C,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,gBAAgB,EAAE,GAAG,MAAM,wBAAwB,CAAC,mBAAmB,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;IACnH,MAAM,QAAQ,GACZ,CAAC,OAAO,OAAO,EAAE,QAAQ,KAAK,QAAQ,IAAI,OAAO,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;QACpE,CAAC,CAAC,OAAO,CAAC,QAAQ;QAClB,CAAC,CAAC,kBAAkB,EAAE,CAAC;IAC3B,MAAM,YAAY,GAAG,OAAO,EAAE,YAAY,CAAC;IAC3C,MAAM,MAAM,GAAG,OAAO,EAAE,MAAM,CAAC;IAC/B,IAAI,CAAC,YAAY,IAAI,CAAC,MAAM,EAAE,CAAC;QAC7B,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAC;IAC9E,CAAC;IACD,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,MAAM,EAAE;QAClC,QAAQ;QACR,YAAY;QACZ,MAAM;QACN,gBAAgB,EAAE,OAAO,EAAE,gBAAgB;QAC3C,SAAS,EAAE,OAAO,EAAE,SAAS;QAC7B,gBAAgB;KACjB,CAAC,CAAC;IACH,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC;IACtB,OAAO;QACL,KAAK,CAAC,IAAI;YACR,MAAM,OAAO,CAAC,IAAI,EAAE,CAAC;QACvB,CAAC;QACD,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,MAAM,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,IAAI,EAAE;QACrC,yBAAyB,CACvB,OAAqC;YAErC,OAAO,OAAO,CAAC,yBAAyB,CAAC,OAAO,CAAC,CAAC;QACpD,CAAC;QACD,KAAK,CAAC,eAAe;YACnB,OAAO,OAAO,CAAC,eAAe,EAAE,CAAC;QACnC,CAAC;QACD,KAAK,CAAC,cAAc;YAClB,OAAO,OAAO,CAAC,cAAc,EAAE,CAAC;QAClC,CAAC;QACD,6BAA6B;YAC3B,OAAO,OAAO,CAAC,6BAA6B,EAAE,CAAC;QACjD,CAAC;QACD,UAAU,CACR,IAAoB,EACpB,IAA+B;YAE/B,OAAO,OAAO,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACxC,CAAC;QACD,mBAAmB;YACjB,OAAO,OAAO,CAAC,mBAAmB,EAAE,CAAC;QACvC,CAAC;QACD,aAAa;YACX,OAAO,OAAO,CAAC,aAAa,EAAE,CAAC;QACjC,CAAC;QACD,sBAAsB,CACpB,MAAqB;YAErB,OAAO,OAAO,CAAC,sBAAsB,CAAC,MAAM,CAAC,CAAC;QAChD,CAAC;QACD,oBAAoB,CAClB,OAAe,EACf,UAAkB;YAElB,OAAO,OAAO,CAAC,oBAAoB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;QAC3D,CAAC;QACD,yBAAyB,CACvB,OAAe,EACf,UAAkB,EAClB,IAA+B;YAE/B,OAAO,OAAO,CAAC,yBAAyB,CAAC,OAAO,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;QACtE,CAAC;KACF,CAAC;AACJ,CAAC"}
|