@senpi/runtime 3.0.103 → 3.0.107
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 +7 -21
- package/dist/actions/action-events.d.ts.map +1 -1
- package/dist/actions/action-events.js +25 -56
- 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 +1 -18
- 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 +17 -89
- package/dist/actions/close-position/close-position.action.js.map +1 -1
- package/dist/actions/event-derivation.d.ts +2 -40
- package/dist/actions/event-derivation.d.ts.map +1 -1
- package/dist/actions/event-derivation.js +9 -189
- package/dist/actions/event-derivation.js.map +1 -1
- package/dist/actions/open-position/open-position.action.d.ts +33 -0
- package/dist/actions/open-position/open-position.action.d.ts.map +1 -1
- package/dist/actions/open-position/open-position.action.js +223 -170
- 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 +15 -50
- package/dist/actions/position-tracker/position-tracker.action.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 -15
- 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 -5
- 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 -49
- package/dist/dsl/events/handlers.js.map +1 -1
- package/dist/dsl/monitor/create-monitor.d.ts.map +1 -1
- package/dist/dsl/monitor/create-monitor.js +0 -7
- 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/process-one-position.d.ts +0 -6
- package/dist/dsl/monitor/process-one-position.d.ts.map +1 -1
- package/dist/dsl/monitor/process-one-position.js +21 -55
- package/dist/dsl/monitor/process-one-position.js.map +1 -1
- package/dist/health/types.d.ts +0 -6
- package/dist/health/types.d.ts.map +1 -1
- package/dist/health/types.js.map +1 -1
- package/dist/index.d.ts +4 -16
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +47 -245
- package/dist/index.js.map +1 -1
- package/dist/runtime/__tests__/helpers/runtime-gateway-harness.d.ts +6 -0
- package/dist/runtime/__tests__/helpers/runtime-gateway-harness.d.ts.map +1 -1
- package/dist/runtime/__tests__/helpers/runtime-gateway-harness.js +25 -0
- package/dist/runtime/__tests__/helpers/runtime-gateway-harness.js.map +1 -1
- package/dist/runtime/create-runtime-context.d.ts.map +1 -1
- package/dist/runtime/create-runtime-context.js +5 -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 +1 -9
- package/dist/runtime/lifecycle-events.d.ts.map +1 -1
- package/dist/runtime/lifecycle-events.js +2 -11
- package/dist/runtime/lifecycle-events.js.map +1 -1
- package/dist/runtime/pending-opens-ledger.d.ts +93 -0
- package/dist/runtime/pending-opens-ledger.d.ts.map +1 -0
- package/dist/runtime/pending-opens-ledger.js +118 -0
- package/dist/runtime/pending-opens-ledger.js.map +1 -0
- package/dist/runtime/reconcile-run.d.ts +0 -2
- package/dist/runtime/reconcile-run.d.ts.map +1 -1
- package/dist/runtime/reconcile-run.js +1 -2
- 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 -3
- package/dist/runtime/reconcile-state.js.map +1 -1
- package/dist/runtime/runtime.d.ts +5 -5
- package/dist/runtime/runtime.d.ts.map +1 -1
- package/dist/runtime/runtime.js +20 -44
- package/dist/runtime/runtime.js.map +1 -1
- package/dist/runtime/strategy-registry.d.ts +1 -0
- package/dist/runtime/strategy-registry.d.ts.map +1 -1
- package/dist/runtime/strategy-registry.js +19 -0
- package/dist/runtime/strategy-registry.js.map +1 -1
- package/dist/runtime/supervisor/long-running-supervisor.d.ts +0 -8
- 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 +6 -0
- package/dist/runtime/update-apply-deps.d.ts.map +1 -1
- package/dist/runtime/update-apply-deps.js +8 -19
- package/dist/runtime/update-apply-deps.js.map +1 -1
- package/dist/runtime-api/intake/intake-events.d.ts +3 -3
- package/dist/runtime-api/intake/intake-events.d.ts.map +1 -1
- package/dist/runtime-api/intake/intake-events.js +3 -21
- package/dist/runtime-api/intake/intake-events.js.map +1 -1
- package/dist/runtime-api/intake/intake-mount.d.ts +2 -0
- package/dist/runtime-api/intake/intake-mount.d.ts.map +1 -1
- package/dist/runtime-api/intake/intake-mount.js +10 -57
- package/dist/runtime-api/intake/intake-mount.js.map +1 -1
- package/dist/runtime-api/intake/process-signal-post.d.ts +0 -11
- package/dist/runtime-api/intake/process-signal-post.d.ts.map +1 -1
- package/dist/runtime-api/intake/process-signal-post.js +8 -39
- package/dist/runtime-api/intake/process-signal-post.js.map +1 -1
- package/dist/runtime-api/intake/scaffold-error-router.d.ts +43 -0
- package/dist/runtime-api/intake/scaffold-error-router.d.ts.map +1 -0
- package/dist/runtime-api/intake/scaffold-error-router.js +63 -0
- package/dist/runtime-api/intake/scaffold-error-router.js.map +1 -0
- package/dist/runtime-api/intake/scanner-launcher.d.ts.map +1 -1
- package/dist/runtime-api/intake/scanner-launcher.js +0 -12
- package/dist/runtime-api/intake/scanner-launcher.js.map +1 -1
- package/dist/runtime-api/intake/types.d.ts +1 -22
- package/dist/runtime-api/intake/types.d.ts.map +1 -1
- package/dist/runtime-api/routes/signals.d.ts.map +1 -1
- package/dist/runtime-api/routes/signals.js +1 -7
- package/dist/runtime-api/routes/signals.js.map +1 -1
- package/dist/runtime-api/routes/signals.schema.d.ts +0 -1
- package/dist/runtime-api/routes/signals.schema.d.ts.map +1 -1
- package/dist/runtime-api/routes/signals.schema.js +0 -6
- package/dist/runtime-api/routes/signals.schema.js.map +1 -1
- package/dist/scanners/engine/engine.d.ts +0 -5
- package/dist/scanners/engine/engine.d.ts.map +1 -1
- package/dist/scanners/engine/engine.js +2 -30
- package/dist/scanners/engine/engine.js.map +1 -1
- package/dist/scanners/external/scaffold/delivery.py +12 -79
- package/dist/scanners/external/scaffold/scaffold.py +9 -63
- package/dist/scanners/external-scanner-receiver.d.ts +0 -11
- package/dist/scanners/external-scanner-receiver.d.ts.map +1 -1
- package/dist/scanners/external-scanner-receiver.js.map +1 -1
- package/dist/scanners/runtime-module.d.ts.map +1 -1
- package/dist/scanners/runtime-module.js +0 -5
- package/dist/scanners/runtime-module.js.map +1 -1
- package/dist/senpi/client.d.ts.map +1 -1
- package/dist/senpi/client.js +4 -12
- package/dist/senpi/client.js.map +1 -1
- package/dist/senpi/types.d.ts +0 -5
- package/dist/senpi/types.d.ts.map +1 -1
- package/dist/skills-manager/manifest.d.ts.map +1 -1
- package/dist/skills-manager/manifest.js +3 -12
- package/dist/skills-manager/manifest.js.map +1 -1
- package/dist/skills-manager/skills-manifest.json +3 -3
- package/dist/strategy/strategy-state.d.ts +26 -0
- package/dist/strategy/strategy-state.d.ts.map +1 -1
- package/dist/strategy/strategy-state.js +48 -20
- package/dist/strategy/strategy-state.js.map +1 -1
- package/dist/telemetry/event-builders.d.ts +6 -74
- package/dist/telemetry/event-builders.d.ts.map +1 -1
- package/dist/telemetry/event-builders.js +11 -108
- 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 +6 -6
- 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/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 +0 -11
- package/dist/types/dsl/index.d.ts.map +1 -1
- package/dist/types/runtime.d.ts +9 -0
- package/dist/types/runtime.d.ts.map +1 -1
- package/dist/types/scanner.d.ts +0 -9
- package/dist/types/scanner.d.ts.map +1 -1
- package/dist/types/strategy.d.ts +6 -0
- package/dist/types/strategy.d.ts.map +1 -1
- package/dist/utils/event-catalog.d.ts +0 -81
- package/dist/utils/event-catalog.d.ts.map +1 -1
- package/dist/utils/event-catalog.js +0 -1
- package/dist/utils/event-catalog.js.map +1 -1
- package/dist/utils/keyed-mutex.d.ts +1 -3
- package/dist/utils/keyed-mutex.d.ts.map +1 -1
- package/dist/utils/keyed-mutex.js +1 -3
- package/dist/utils/keyed-mutex.js.map +1 -1
- package/openclaw.plugin.json +1 -1
- package/package.json +1 -1
- package/dist/actions/skipped-signal-results.d.ts +0 -16
- package/dist/actions/skipped-signal-results.d.ts.map +0 -1
- package/dist/actions/skipped-signal-results.js +0 -47
- package/dist/actions/skipped-signal-results.js.map +0 -1
- package/dist/scanners/external/scaffold/ulid.py +0 -58
- package/dist/telemetry/live-telemetry.d.ts +0 -158
- package/dist/telemetry/live-telemetry.d.ts.map +0 -1
- package/dist/telemetry/live-telemetry.js +0 -581
- package/dist/telemetry/live-telemetry.js.map +0 -1
- package/dist/telemetry/scanner-stats.d.ts +0 -136
- package/dist/telemetry/scanner-stats.d.ts.map +0 -1
- package/dist/telemetry/scanner-stats.js +0 -304
- package/dist/telemetry/scanner-stats.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/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/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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lifecycle-events.d.ts","sourceRoot":"","sources":["../../src/runtime/lifecycle-events.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,OAAO,EAAE,UAAU,EAA6B,MAAM,2BAA2B,CAAC;AAClF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAKrE;;;;;GAKG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,cAAc,CAAC,OAAO,UAAU,CAAC,cAAc,CAAC,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"lifecycle-events.d.ts","sourceRoot":"","sources":["../../src/runtime/lifecycle-events.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
* The scanner-summary funnel selection is reused from {@link buildScannerSummary}
|
|
7
7
|
* — no reimplementation of the drop classification.
|
|
8
8
|
*/
|
|
9
|
-
import {
|
|
9
|
+
import { buildScannerSummary } from "../telemetry/event-builders.js";
|
|
10
10
|
import { computeConfigHash } from "../telemetry/identity.js";
|
|
11
11
|
import { EVENT_NAME, eventAttrs } from "../utils/event-catalog.js";
|
|
12
12
|
/** Distinct dropped-reason attribute keys kept on a scanner.summary; the rest fold into `…dropped.other`. */
|
|
@@ -21,9 +21,6 @@ export function buildScannerSummaryEvent(payload, nowMs) {
|
|
|
21
21
|
const rec = buildScannerSummary(payload, nowMs);
|
|
22
22
|
if (rec === null)
|
|
23
23
|
return null;
|
|
24
|
-
// The run's ids ride the same `data` the record is derived from; the record itself is a
|
|
25
|
-
// telemetry-owned shape, so they are read here rather than widened there.
|
|
26
|
-
const data = asObject(asObject(payload)?.data);
|
|
27
24
|
// The record always populates these counts (its optional typing notwithstanding); fall back so the
|
|
28
25
|
// counts — required attributes — are always defined, and reuse the same values in the body.
|
|
29
26
|
const passed = rec.passedCount ?? 0;
|
|
@@ -34,8 +31,6 @@ export function buildScannerSummaryEvent(payload, nowMs) {
|
|
|
34
31
|
"senpi.scanner.scanned_count": total,
|
|
35
32
|
"senpi.scanner.passed_count": passed,
|
|
36
33
|
"senpi.scanner.dropped_count": dropped,
|
|
37
|
-
"senpi.tick.id": str(data?.tickId),
|
|
38
|
-
"senpi.signal.correlation_id": str(data?.correlationId),
|
|
39
34
|
});
|
|
40
35
|
// By-reason drop counts → queryable attributes. A scanner's reason vocabulary is normally a small
|
|
41
36
|
// fixed set, but it is an open producer-controlled string, so the distinct keys are capped: a
|
|
@@ -215,13 +210,11 @@ export function buildQueueBackpressureEvent(input) {
|
|
|
215
210
|
"senpi.scanner.id": input.scannerId,
|
|
216
211
|
// Addresses are case-insensitive; lowercase to match the identity join key.
|
|
217
212
|
"senpi.strategy.address": input.address ? input.address.toLowerCase() : undefined,
|
|
218
|
-
"senpi.tick.id": input.tickId,
|
|
219
|
-
"senpi.signal.correlation_id": input.correlationId,
|
|
220
213
|
}),
|
|
221
214
|
};
|
|
222
215
|
}
|
|
223
216
|
/** `runtime.error` — an uncaught signal-processing error. ERROR; the message rides `redact`. */
|
|
224
|
-
export function buildRuntimeErrorEvent(phase, scannerId, message
|
|
217
|
+
export function buildRuntimeErrorEvent(phase, scannerId, message) {
|
|
225
218
|
return {
|
|
226
219
|
name: EVENT_NAME.runtimeError,
|
|
227
220
|
level: "error",
|
|
@@ -229,8 +222,6 @@ export function buildRuntimeErrorEvent(phase, scannerId, message, ids) {
|
|
|
229
222
|
attributes: eventAttrs({
|
|
230
223
|
"senpi.runtime.phase": phase,
|
|
231
224
|
"senpi.scanner.id": scannerId,
|
|
232
|
-
"senpi.tick.id": ids?.tickId,
|
|
233
|
-
"senpi.signal.correlation_id": ids?.correlationId,
|
|
234
225
|
}),
|
|
235
226
|
redact: { error: message },
|
|
236
227
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lifecycle-events.js","sourceRoot":"","sources":["../../src/runtime/lifecycle-events.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"lifecycle-events.js","sourceRoot":"","sources":["../../src/runtime/lifecycle-events.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tracks opens this runtime has already submitted but cannot yet see in a clearing-house
|
|
3
|
+
* snapshot, so the slot gate, the dedupe check and the free-margin budget count them.
|
|
4
|
+
*
|
|
5
|
+
* Why it has to exist: a clearing-house read is a 1–5 s old picture of the book, signals
|
|
6
|
+
* arrive in pairs milliseconds apart (they are serialized behind the reconcile mutex), and
|
|
7
|
+
* nothing tells the runtime when a submit becomes a position. Without a record of what was
|
|
8
|
+
* just sent, two consecutive signals on a one-slot strategy both read "0 open" from the same
|
|
9
|
+
* lagging snapshot and both open — the venue is the only thing left enforcing the cap.
|
|
10
|
+
*
|
|
11
|
+
* Entries are keyed by the normalized `(coin, dex)` pair so a snapshot row, a DSL position
|
|
12
|
+
* and a submit all collapse to the same key (`xyz:GOLD` on the main book and `GOLD` on `xyz`
|
|
13
|
+
* are one market, not two).
|
|
14
|
+
*
|
|
15
|
+
* Every entry is a claim about an order whose fate is not settled, so each kind expires on
|
|
16
|
+
* its own TTL: a reservation that outlives its window is released rather than blocking the
|
|
17
|
+
* strategy forever. This is a bounded-lifetime cache, NOT a source of truth — a fetched
|
|
18
|
+
* snapshot always wins, and `reconcile` drops anything the exchange has confirmed.
|
|
19
|
+
*/
|
|
20
|
+
import type { OpenPosition } from "../types/strategy.js";
|
|
21
|
+
/**
|
|
22
|
+
* What is known about a submitted open:
|
|
23
|
+
* - `filled` — the venue accepted it and reported a fill; only the snapshot lags.
|
|
24
|
+
* - `resting` — a maker order is live on the book, unfilled. It holds no position yet but
|
|
25
|
+
* will consume a slot and margin the moment it fills.
|
|
26
|
+
* - `ambiguous` — the outcome is unknown (timeout, transport throw) or not yet determined
|
|
27
|
+
* (the provisional kind a reservation starts as, before `createPosition` returns).
|
|
28
|
+
*/
|
|
29
|
+
export type PendingOpenKind = "filled" | "resting" | "ambiguous";
|
|
30
|
+
/** One submitted-but-unconfirmed open. */
|
|
31
|
+
export interface PendingOpenEntry {
|
|
32
|
+
/** Normalized `coin|dex` key — the same key a snapshot row reduces to. */
|
|
33
|
+
readonly key: string;
|
|
34
|
+
readonly coin: string;
|
|
35
|
+
readonly dex: string;
|
|
36
|
+
/** Margin the submit committed, subtracted from the free-margin budget while unseen. */
|
|
37
|
+
readonly marginAmount: number;
|
|
38
|
+
readonly kind: PendingOpenKind;
|
|
39
|
+
/** When the entry last changed kind (the TTL clock). */
|
|
40
|
+
readonly ts: number;
|
|
41
|
+
readonly orderId?: string;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* A filled open only has to survive until the next snapshot carries it. Clearing-house
|
|
45
|
+
* snapshot age runs to roughly 4.6 s at p99, so a minute is two orders of magnitude of
|
|
46
|
+
* headroom — long enough that no realistic lag drops the entry early, short enough that a
|
|
47
|
+
* fill the venue silently rolled back does not wedge the strategy.
|
|
48
|
+
*/
|
|
49
|
+
export declare const PENDING_FILLED_TTL_MS = 60000;
|
|
50
|
+
/**
|
|
51
|
+
* An ambiguous open (timeout, transport throw) may still land server-side long after the
|
|
52
|
+
* client stopped waiting. The window has to outlast the slowest submit that can still
|
|
53
|
+
* execute: the MCP ALO ceiling is 330 s, plus the trading engine's own server-side ceiling
|
|
54
|
+
* behind it. Ten minutes covers both with margin; past that, holding the slot costs more
|
|
55
|
+
* than the duplicate it prevents.
|
|
56
|
+
*/
|
|
57
|
+
export declare const PENDING_AMBIGUOUS_TTL_MS: number;
|
|
58
|
+
/**
|
|
59
|
+
* A resting maker order can sit on the book indefinitely — nothing in this runtime cancels
|
|
60
|
+
* one. Mirroring {@link PENDING_OPEN_STALE_MS} keeps this TTL in step with the other place
|
|
61
|
+
* the runtime gives up on an unobserved open (the position-id registry). It is a stopgap:
|
|
62
|
+
* the real fix is reading open orders, not aging a guess out.
|
|
63
|
+
*/
|
|
64
|
+
export declare const PENDING_RESTING_TTL_MS: number;
|
|
65
|
+
export interface PendingOpensLedger {
|
|
66
|
+
/**
|
|
67
|
+
* Record an open about to be submitted. Call this SYNCHRONOUSLY before awaiting
|
|
68
|
+
* `createPosition`: the gap between submit and outcome is exactly the window a second
|
|
69
|
+
* signal can slip through. Returns the entry key, for `settle`/`release`.
|
|
70
|
+
*/
|
|
71
|
+
reserve(coin: string, dex: string | undefined, marginAmount: number): string;
|
|
72
|
+
/** Record the submit's outcome (and its order id, when the venue gave one). No-op if the key is gone. */
|
|
73
|
+
settle(key: string, kind: PendingOpenKind, orderId?: string): void;
|
|
74
|
+
/** Drop a reservation the venue rejected outright — it holds neither slot nor margin. */
|
|
75
|
+
release(key: string): void;
|
|
76
|
+
/** Drop every entry the snapshot now confirms, plus anything past its TTL. */
|
|
77
|
+
reconcile(positions: readonly OpenPosition[] | undefined): void;
|
|
78
|
+
/** Live entries this snapshot does NOT show — what the caller must add to the snapshot's own count. */
|
|
79
|
+
unseen(positions: readonly OpenPosition[] | undefined): PendingOpenEntry[];
|
|
80
|
+
}
|
|
81
|
+
export interface PendingOpensLedgerOptions {
|
|
82
|
+
/** Injectable clock (tests). */
|
|
83
|
+
now?: () => number;
|
|
84
|
+
/** Per-kind TTL overrides (tests); anything unset uses the documented default. */
|
|
85
|
+
ttlMsByKind?: Partial<Record<PendingOpenKind, number>>;
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* The ledger key for a market: base coin + dex bucket, with `main` and the `xyz:` coin
|
|
89
|
+
* prefix normalized away so one market never occupies two keys.
|
|
90
|
+
*/
|
|
91
|
+
export declare function pendingOpenKey(coin: string, dex?: string): string;
|
|
92
|
+
export declare function createPendingOpensLedger(options?: PendingOpensLedgerOptions): PendingOpensLedger;
|
|
93
|
+
//# sourceMappingURL=pending-opens-ledger.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pending-opens-ledger.d.ts","sourceRoot":"","sources":["../../src/runtime/pending-opens-ledger.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAIzD;;;;;;;GAOG;AACH,MAAM,MAAM,eAAe,GAAG,QAAQ,GAAG,SAAS,GAAG,WAAW,CAAC;AAEjE,0CAA0C;AAC1C,MAAM,WAAW,gBAAgB;IAC/B,0EAA0E;IAC1E,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,wFAAwF;IACxF,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC;IAC/B,wDAAwD;IACxD,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,QAAS,CAAC;AAE5C;;;;;;GAMG;AACH,eAAO,MAAM,wBAAwB,QAAc,CAAC;AAEpD;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB,QAAwB,CAAC;AAQ5D,MAAM,WAAW,kBAAkB;IACjC;;;;OAIG;IACH,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,SAAS,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM,CAAC;IAC7E,yGAAyG;IACzG,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACnE,yFAAyF;IACzF,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,8EAA8E;IAC9E,SAAS,CAAC,SAAS,EAAE,SAAS,YAAY,EAAE,GAAG,SAAS,GAAG,IAAI,CAAC;IAChE,uGAAuG;IACvG,MAAM,CAAC,SAAS,EAAE,SAAS,YAAY,EAAE,GAAG,SAAS,GAAG,gBAAgB,EAAE,CAAC;CAC5E;AAED,MAAM,WAAW,yBAAyB;IACxC,gCAAgC;IAChC,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IACnB,kFAAkF;IAClF,WAAW,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC,CAAC;CACxD;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAGjE;AAOD,wBAAgB,wBAAwB,CACtC,OAAO,GAAE,yBAA8B,GACtC,kBAAkB,CA2DpB"}
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tracks opens this runtime has already submitted but cannot yet see in a clearing-house
|
|
3
|
+
* snapshot, so the slot gate, the dedupe check and the free-margin budget count them.
|
|
4
|
+
*
|
|
5
|
+
* Why it has to exist: a clearing-house read is a 1–5 s old picture of the book, signals
|
|
6
|
+
* arrive in pairs milliseconds apart (they are serialized behind the reconcile mutex), and
|
|
7
|
+
* nothing tells the runtime when a submit becomes a position. Without a record of what was
|
|
8
|
+
* just sent, two consecutive signals on a one-slot strategy both read "0 open" from the same
|
|
9
|
+
* lagging snapshot and both open — the venue is the only thing left enforcing the cap.
|
|
10
|
+
*
|
|
11
|
+
* Entries are keyed by the normalized `(coin, dex)` pair so a snapshot row, a DSL position
|
|
12
|
+
* and a submit all collapse to the same key (`xyz:GOLD` on the main book and `GOLD` on `xyz`
|
|
13
|
+
* are one market, not two).
|
|
14
|
+
*
|
|
15
|
+
* Every entry is a claim about an order whose fate is not settled, so each kind expires on
|
|
16
|
+
* its own TTL: a reservation that outlives its window is released rather than blocking the
|
|
17
|
+
* strategy forever. This is a bounded-lifetime cache, NOT a source of truth — a fetched
|
|
18
|
+
* snapshot always wins, and `reconcile` drops anything the exchange has confirmed.
|
|
19
|
+
*/
|
|
20
|
+
import { normalizeDslCoinDex } from "../utils/perp-coin.js";
|
|
21
|
+
import { PENDING_OPEN_STALE_MS } from "./position-id-registry.js";
|
|
22
|
+
/**
|
|
23
|
+
* A filled open only has to survive until the next snapshot carries it. Clearing-house
|
|
24
|
+
* snapshot age runs to roughly 4.6 s at p99, so a minute is two orders of magnitude of
|
|
25
|
+
* headroom — long enough that no realistic lag drops the entry early, short enough that a
|
|
26
|
+
* fill the venue silently rolled back does not wedge the strategy.
|
|
27
|
+
*/
|
|
28
|
+
export const PENDING_FILLED_TTL_MS = 60_000;
|
|
29
|
+
/**
|
|
30
|
+
* An ambiguous open (timeout, transport throw) may still land server-side long after the
|
|
31
|
+
* client stopped waiting. The window has to outlast the slowest submit that can still
|
|
32
|
+
* execute: the MCP ALO ceiling is 330 s, plus the trading engine's own server-side ceiling
|
|
33
|
+
* behind it. Ten minutes covers both with margin; past that, holding the slot costs more
|
|
34
|
+
* than the duplicate it prevents.
|
|
35
|
+
*/
|
|
36
|
+
export const PENDING_AMBIGUOUS_TTL_MS = 10 * 60_000;
|
|
37
|
+
/**
|
|
38
|
+
* A resting maker order can sit on the book indefinitely — nothing in this runtime cancels
|
|
39
|
+
* one. Mirroring {@link PENDING_OPEN_STALE_MS} keeps this TTL in step with the other place
|
|
40
|
+
* the runtime gives up on an unobserved open (the position-id registry). It is a stopgap:
|
|
41
|
+
* the real fix is reading open orders, not aging a guess out.
|
|
42
|
+
*/
|
|
43
|
+
export const PENDING_RESTING_TTL_MS = PENDING_OPEN_STALE_MS;
|
|
44
|
+
const DEFAULT_TTL_BY_KIND = {
|
|
45
|
+
filled: PENDING_FILLED_TTL_MS,
|
|
46
|
+
resting: PENDING_RESTING_TTL_MS,
|
|
47
|
+
ambiguous: PENDING_AMBIGUOUS_TTL_MS,
|
|
48
|
+
};
|
|
49
|
+
/**
|
|
50
|
+
* The ledger key for a market: base coin + dex bucket, with `main` and the `xyz:` coin
|
|
51
|
+
* prefix normalized away so one market never occupies two keys.
|
|
52
|
+
*/
|
|
53
|
+
export function pendingOpenKey(coin, dex) {
|
|
54
|
+
const { coin: base, dex: bucket } = normalizeDslCoinDex(coin, dex ?? "");
|
|
55
|
+
return `${base}|${bucket}`;
|
|
56
|
+
}
|
|
57
|
+
/** The key a clearing-house snapshot row reduces to. */
|
|
58
|
+
function positionKey(position) {
|
|
59
|
+
return pendingOpenKey(position.coin, position.dex ?? "");
|
|
60
|
+
}
|
|
61
|
+
export function createPendingOpensLedger(options = {}) {
|
|
62
|
+
const now = options.now ?? Date.now;
|
|
63
|
+
const ttlFor = (kind) => options.ttlMsByKind?.[kind] ?? DEFAULT_TTL_BY_KIND[kind];
|
|
64
|
+
const entries = new Map();
|
|
65
|
+
/** Drop everything past its kind's TTL. Runs before every read so no caller sees a stale claim. */
|
|
66
|
+
function pruneExpired() {
|
|
67
|
+
const t = now();
|
|
68
|
+
for (const [key, entry] of entries) {
|
|
69
|
+
if (t - entry.ts >= ttlFor(entry.kind))
|
|
70
|
+
entries.delete(key);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
return {
|
|
74
|
+
reserve(coin, dex, marginAmount) {
|
|
75
|
+
const { coin: base, dex: bucket } = normalizeDslCoinDex(coin, dex ?? "");
|
|
76
|
+
const key = `${base}|${bucket}`;
|
|
77
|
+
entries.set(key, {
|
|
78
|
+
key,
|
|
79
|
+
coin: base,
|
|
80
|
+
dex: bucket,
|
|
81
|
+
marginAmount,
|
|
82
|
+
// Provisional until the submit resolves: an open whose outcome nobody knows yet is
|
|
83
|
+
// exactly what `ambiguous` means, and starting anywhere else would under-count a
|
|
84
|
+
// reservation whose caller never got to settle it (a crash mid-submit).
|
|
85
|
+
kind: "ambiguous",
|
|
86
|
+
ts: now(),
|
|
87
|
+
});
|
|
88
|
+
return key;
|
|
89
|
+
},
|
|
90
|
+
settle(key, kind, orderId) {
|
|
91
|
+
const entry = entries.get(key);
|
|
92
|
+
if (entry === undefined)
|
|
93
|
+
return;
|
|
94
|
+
entries.set(key, {
|
|
95
|
+
...entry,
|
|
96
|
+
kind,
|
|
97
|
+
ts: now(),
|
|
98
|
+
...(orderId !== undefined ? { orderId } : {}),
|
|
99
|
+
});
|
|
100
|
+
},
|
|
101
|
+
release(key) {
|
|
102
|
+
entries.delete(key);
|
|
103
|
+
},
|
|
104
|
+
reconcile(positions) {
|
|
105
|
+
pruneExpired();
|
|
106
|
+
if (!positions)
|
|
107
|
+
return;
|
|
108
|
+
for (const position of positions)
|
|
109
|
+
entries.delete(positionKey(position));
|
|
110
|
+
},
|
|
111
|
+
unseen(positions) {
|
|
112
|
+
pruneExpired();
|
|
113
|
+
const seen = new Set((positions ?? []).map(positionKey));
|
|
114
|
+
return [...entries.values()].filter((entry) => !seen.has(entry.key));
|
|
115
|
+
},
|
|
116
|
+
};
|
|
117
|
+
}
|
|
118
|
+
//# sourceMappingURL=pending-opens-ledger.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pending-opens-ledger.js","sourceRoot":"","sources":["../../src/runtime/pending-opens-ledger.ts"],"names":[],"mappings":"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"}
|
|
@@ -28,8 +28,6 @@ export interface RunReconcileDeps {
|
|
|
28
28
|
resizePosition(p: PositionOpenedEvent): Promise<void>;
|
|
29
29
|
};
|
|
30
30
|
bus?: SenpiEventBus;
|
|
31
|
-
/** The monitor tick driving this reconcile, when one is; absent on the boot reconcile. */
|
|
32
|
-
tickEventId?: string;
|
|
33
31
|
/**
|
|
34
32
|
* Serializes the whole fetch+decide+execute pass against the trade loop / other reconciles.
|
|
35
33
|
* Default: run directly (T5 will pass a reconcileMutex-backed serializer).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reconcile-run.d.ts","sourceRoot":"","sources":["../../src/runtime/reconcile-run.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAStD,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,aAAa,CAAC;IAC7B,KAAK,EAAE,WAAW,CAAC;IACnB,YAAY,EAAE,YAAY,CAAC;IAC3B,uFAAuF;IACvF,OAAO,EAAE;QACP,aAAa,CAAC,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;QACrD,cAAc,CAAC,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;KACvD,CAAC;IACF,GAAG,CAAC,EAAE,aAAa,CAAC;IACpB
|
|
1
|
+
{"version":3,"file":"reconcile-run.d.ts","sourceRoot":"","sources":["../../src/runtime/reconcile-run.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAStD,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,aAAa,CAAC;IAC7B,KAAK,EAAE,WAAW,CAAC;IACnB,YAAY,EAAE,YAAY,CAAC;IAC3B,uFAAuF;IACvF,OAAO,EAAE;QACP,aAAa,CAAC,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;QACrD,cAAc,CAAC,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;KACvD,CAAC;IACF,GAAG,CAAC,EAAE,aAAa,CAAC;IACpB;;;OAGG;IACH,SAAS,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;CACrD;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAID;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,qBAAqB,CACnC,GAAG,EAAE,YAAY,EACjB,OAAO,EAAE,MAAM,GACd,mBAAmB,CAWrB;AAID,wBAAsB,YAAY,CAChC,IAAI,EAAE,gBAAgB,GACrB,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,eAAe,CAAA;CAAE,CAAC,CA2IxD"}
|
|
@@ -45,7 +45,7 @@ export function openPositionToPayload(pos, address) {
|
|
|
45
45
|
}
|
|
46
46
|
// ─── Executor ─────────────────────────────────────────────────────────────────
|
|
47
47
|
export async function runReconcile(deps) {
|
|
48
|
-
const { address, strategyState, senpi, stateManager, adopter, bus,
|
|
48
|
+
const { address, strategyState, senpi, stateManager, adopter, bus, serialize = (fn) => fn(), } = deps;
|
|
49
49
|
const zeroCounts = { adopted: 0, resized: 0, archived: 0 };
|
|
50
50
|
// Fetch the exchange snapshot + list DSL state + decide + execute, ALL inside the
|
|
51
51
|
// serialize lock, so the exchange view and the DSL view are captured atomically vs
|
|
@@ -101,7 +101,6 @@ export async function runReconcile(deps) {
|
|
|
101
101
|
const outcome = await archiveGoneState(stateManager, senpi, action.state, {
|
|
102
102
|
bus,
|
|
103
103
|
strategyState,
|
|
104
|
-
...(tickEventId !== undefined ? { tickEventId } : {}),
|
|
105
104
|
});
|
|
106
105
|
if (outcome === "archived")
|
|
107
106
|
c.archived++;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reconcile-run.js","sourceRoot":"","sources":["../../src/runtime/reconcile-run.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAQH,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,MAAM,MAAM,GAAG,YAAY,CAAC,6BAA6B,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"reconcile-run.js","sourceRoot":"","sources":["../../src/runtime/reconcile-run.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAQH,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,MAAM,MAAM,GAAG,YAAY,CAAC,6BAA6B,CAAC,CAAC;AA4B3D,iFAAiF;AAEjF;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,qBAAqB,CACnC,GAAiB,EACjB,OAAe;IAEf,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IACnC,OAAO;QACL,OAAO;QACP,MAAM,EAAG,GAA2B,CAAC,MAAM,IAAI,OAAO;QACtD,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;QACzB,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,OAAO,IAAI,CAAC,CAAC;QACjC,QAAQ,EAAE,GAAG,CAAC,QAAQ,IAAI,CAAC;QAC3B,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC;KACjC,CAAC;AACJ,CAAC;AAED,iFAAiF;AAEjF,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,IAAsB;IAEtB,MAAM,EACJ,OAAO,EACP,aAAa,EACb,KAAK,EACL,YAAY,EACZ,OAAO,EACP,GAAG,EACH,SAAS,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,GACzB,GAAG,IAAI,CAAC;IAET,MAAM,UAAU,GAAoB,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;IAE5E,kFAAkF;IAClF,mFAAmF;IACnF,kBAAkB;IAClB,EAAE;IACF,qFAAqF;IACrF,kDAAkD;IAClD,sFAAsF;IACtF,sFAAsF;IACtF,oFAAoF;IACpF,qFAAqF;IACrF,uFAAuF;IACvF,wFAAwF;IACxF,yFAAyF;IACzF,wEAAwE;IACxE,MAAM,OAAO,GAAG,MAAM,SAAS,CAC7B,KAAK,IAEH,EAAE;QACF,6DAA6D;QAC7D,mFAAmF;QACnF,kFAAkF;QAClF,oFAAoF;QACpF,wFAAwF;QACxF,mFAAmF;QACnF,uFAAuF;QACvF,0FAA0F;QAC1F,wFAAwF;QACxF,8DAA8D;QAC9D,+EAA+E;QAC/E,MAAM,EAAE,GAAG,MAAM,aAAa,CAAC,uBAAuB,EAAE,CAAC;QACzD,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC;YACf,MAAM,CAAC,IAAI,CAAC,0FAA0F,EAAE;gBACtG,OAAO;aACR,CAAC,CAAC;YACH,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;QAC/B,CAAC;QACD,MAAM,iBAAiB,GAAG,aAAa,CAAC,gBAAgB,EAAE,CAAC;QAC3D,IAAI,iBAAiB,KAAK,SAAS,EAAE,CAAC;YACpC,MAAM,CAAC,IAAI,CAAC,6FAA6F,EAAE;gBACzG,OAAO;aACR,CAAC,CAAC;YACH,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;QAC/B,CAAC;QAED,MAAM,gBAAgB,GAAG,MAAM,YAAY,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QACnE,MAAM,QAAQ,GAAG,eAAe,CAAC,EAAE,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,CAAC,CAAC;QAEnF,MAAM,CAAC,GAAoB,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;QACnE,6EAA6E;QAC7E,6EAA6E;QAC7E,IAAI,CAAC,GAAG,CAAC,CAAC;QAEV,6DAA6D;QAC7D,KAAK,MAAM,MAAM,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;YACtC,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM;gBAAE,SAAS;YACrC,IAAI,CAAC;gBACH,MAAM,OAAO,GAAG,MAAM,gBAAgB,CAAC,YAAY,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE;oBACxE,GAAG;oBACH,aAAa;iBACd,CAAC,CAAC;gBACH,IAAI,OAAO,KAAK,UAAU;oBAAE,CAAC,CAAC,QAAQ,EAAE,CAAC;gBACzC,kFAAkF;gBAClF,6EAA6E;qBACxE,IAAI,OAAO,KAAK,QAAQ;oBAAE,CAAC,EAAE,CAAC;YACrC,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,CAAC,EAAE,CAAC;gBACJ,MAAM,CAAC,IAAI,CAAC,oDAAoD,EAAE;oBAChE,OAAO;oBACP,IAAI,EAAE,MAAM,CAAC,IAAI;oBACjB,GAAG,EAAE,MAAM,CAAC,GAAG;oBACf,GAAG;iBACJ,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,4BAA4B;QAC5B,KAAK,MAAM,MAAM,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;YACtC,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO;gBAAE,SAAS;YACtC,IAAI,CAAC;gBACH,MAAM,OAAO,CAAC,aAAa,CAAC,qBAAqB,CAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;gBAC7E,CAAC,CAAC,OAAO,EAAE,CAAC;YACd,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,CAAC,EAAE,CAAC;gBACJ,MAAM,CAAC,IAAI,CAAC,qCAAqC,EAAE;oBACjD,OAAO;oBACP,IAAI,EAAE,MAAM,CAAC,IAAI;oBACjB,GAAG,EAAE,MAAM,CAAC,GAAG;oBACf,GAAG;iBACJ,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,4BAA4B;QAC5B,KAAK,MAAM,MAAM,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;YACtC,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ;gBAAE,SAAS;YACvC,IAAI,CAAC;gBACH,MAAM,OAAO,CAAC,cAAc,CAAC,qBAAqB,CAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;gBAC9E,CAAC,CAAC,OAAO,EAAE,CAAC;YACd,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,CAAC,EAAE,CAAC;gBACJ,MAAM,CAAC,IAAI,CAAC,sCAAsC,EAAE;oBAClD,OAAO;oBACP,IAAI,EAAE,MAAM,CAAC,IAAI;oBACjB,GAAG,EAAE,MAAM,CAAC,GAAG;oBACf,GAAG;iBACJ,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;IAC1F,CAAC,CACF,CAAC;IAEF,8EAA8E;IAC9E,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;QACxB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;IAChD,CAAC;IAED,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;IAC9C,sFAAsF;IACtF,MAAM,OAAO,GAAG,QAAQ,KAAK,CAAC,CAAC;IAC/B,IAAI,OAAO,KAAK,CAAC,EAAE,CAAC;QAClB,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;IAC/C,CAAC;IACD,MAAM,CAAC,IAAI,CAAC,yBAAyB,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;IAC/E,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;AAC7B,CAAC"}
|
|
@@ -21,12 +21,6 @@ export interface ReconcileOptions {
|
|
|
21
21
|
* or getOrderStatus fallbacks. Addresses without a map entry are skipped (no archive for that wallet).
|
|
22
22
|
*/
|
|
23
23
|
strategyStateOnly?: boolean;
|
|
24
|
-
/**
|
|
25
|
-
* The monitor tick driving this reconcile, when one is. Stamped on the archive's POSITION_CLOSED
|
|
26
|
-
* so the event names the tick that observed the position was gone. Absent on the boot reconcile,
|
|
27
|
-
* which runs outside any tick.
|
|
28
|
-
*/
|
|
29
|
-
tickEventId?: string;
|
|
30
24
|
}
|
|
31
25
|
/**
|
|
32
26
|
* Archive DSL states for positions that are no longer live (not in livePositionKeys).
|
|
@@ -63,13 +57,11 @@ export declare function archiveGoneState(stateManager: StateManager, senpi: Senp
|
|
|
63
57
|
bus?: SenpiEventBus;
|
|
64
58
|
strategyState?: StrategyState;
|
|
65
59
|
strategyStateOnly?: boolean;
|
|
66
|
-
tickEventId?: string;
|
|
67
60
|
}): Promise<ArchiveGoneOutcome>;
|
|
68
61
|
export declare function archiveGonePositions(stateManager: StateManager, senpi: SenpiClient, address: string, livePositionKeys: Set<string>, opts?: {
|
|
69
62
|
bus?: SenpiEventBus;
|
|
70
63
|
strategyState?: StrategyState;
|
|
71
64
|
strategyStateOnly?: boolean;
|
|
72
|
-
tickEventId?: string;
|
|
73
65
|
}): Promise<{
|
|
74
66
|
gonesArchived: number;
|
|
75
67
|
}>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reconcile-state.d.ts","sourceRoot":"","sources":["../../src/runtime/reconcile-state.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAC1E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAuDtD,MAAM,WAAW,gBAAgB;IAC/B,6FAA6F;IAC7F,GAAG,CAAC,EAAE,aAAa,CAAC;IACpB;;;;OAIG;IACH,cAAc,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IAC5C;;;OAGG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"reconcile-state.d.ts","sourceRoot":"","sources":["../../src/runtime/reconcile-state.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAC1E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAuDtD,MAAM,WAAW,gBAAgB;IAC/B,6FAA6F;IAC7F,GAAG,CAAC,EAAE,aAAa,CAAC;IACpB;;;;OAIG;IACH,cAAc,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IAC5C;;;OAGG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED;;;;;;;;;;;;;GAaG;AACH;;;;;;;;;;;;;;;GAeG;AACH,MAAM,MAAM,kBAAkB,GAAG,UAAU,GAAG,SAAS,GAAG,QAAQ,CAAC;AAEnE,wBAAsB,gBAAgB,CACpC,YAAY,EAAE,YAAY,EAC1B,KAAK,EAAE,WAAW,EAClB,KAAK,EAAE,QAAQ,EACf,IAAI,CAAC,EAAE;IAAE,GAAG,CAAC,EAAE,aAAa,CAAC;IAAC,aAAa,CAAC,EAAE,aAAa,CAAC;IAAC,iBAAiB,CAAC,EAAE,OAAO,CAAA;CAAE,GACzF,OAAO,CAAC,kBAAkB,CAAC,CA6D7B;AAED,wBAAsB,oBAAoB,CACxC,YAAY,EAAE,YAAY,EAC1B,KAAK,EAAE,WAAW,EAClB,OAAO,EAAE,MAAM,EACf,gBAAgB,EAAE,GAAG,CAAC,MAAM,CAAC,EAC7B,IAAI,CAAC,EAAE;IAAE,GAAG,CAAC,EAAE,aAAa,CAAC;IAAC,aAAa,CAAC,EAAE,aAAa,CAAC;IAAC,iBAAiB,CAAC,EAAE,OAAO,CAAA;CAAE,GACzF,OAAO,CAAC;IAAE,aAAa,EAAE,MAAM,CAAA;CAAE,CAAC,CAgBpC;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,yBAAyB,CAC7C,YAAY,EAAE,YAAY,EAC1B,KAAK,EAAE,WAAW,EAClB,wBAAwB,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,EAChE,OAAO,CAAC,EAAE,gBAAgB,GACzB,OAAO,CAAC,IAAI,CAAC,CAmFf"}
|
|
@@ -93,7 +93,6 @@ export async function archiveGoneState(stateManager, senpi, state, opts) {
|
|
|
93
93
|
wallet: state.wallet,
|
|
94
94
|
reason: archivedCloseReason,
|
|
95
95
|
closeReason: archivedCloseReason,
|
|
96
|
-
...(opts.tickEventId !== undefined ? { __tickId: opts.tickEventId } : {}),
|
|
97
96
|
timestamp: tsEmit,
|
|
98
97
|
});
|
|
99
98
|
}
|
|
@@ -135,7 +134,7 @@ export async function archiveGonePositions(stateManager, senpi, address, livePos
|
|
|
135
134
|
* @param options - optional bus to emit POSITION_CLOSED when archiving (e.g. from monitor)
|
|
136
135
|
*/
|
|
137
136
|
export async function reconcileStateWithBackend(stateManager, senpi, addressesOrStrategiesMap, options) {
|
|
138
|
-
const { bus, strategyStateOnly = false
|
|
137
|
+
const { bus, strategyStateOnly = false } = options ?? {};
|
|
139
138
|
const addresses = addressesOrStrategiesMap instanceof Map
|
|
140
139
|
? Array.from(addressesOrStrategiesMap.keys())
|
|
141
140
|
: addressesOrStrategiesMap;
|
|
@@ -210,7 +209,6 @@ export async function reconcileStateWithBackend(stateManager, senpi, addressesOr
|
|
|
210
209
|
bus,
|
|
211
210
|
strategyState: options?.strategyStates?.get(address),
|
|
212
211
|
strategyStateOnly,
|
|
213
|
-
...(tickEventId !== undefined ? { tickEventId } : {}),
|
|
214
212
|
});
|
|
215
213
|
}
|
|
216
214
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reconcile-state.js","sourceRoot":"","sources":["../../src/runtime/reconcile-state.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAOH,OAAO,EAAE,YAAY,EAAE,oBAAoB,EAAE,2BAA2B,EAAE,MAAM,2BAA2B,CAAC;AAC5G,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAE9C,MAAM,MAAM,GAAG,YAAY,CAAC,yBAAyB,CAAC,CAAC;AAEvD,SAAS,WAAW,CAAC,OAAe,EAAE,KAAa,EAAE,GAAW;IAC9D,OAAO,GAAG,OAAO,IAAI,KAAK,IAAI,GAAG,IAAI,EAAE,EAAE,CAAC;AAC5C,CAAC;AAED,KAAK,UAAU,iCAAiC,CAC9C,KAAkB,EAClB,KAAe,EACf,aAAwC,EACxC,iBAA0B;IAE1B,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC;IAClC,IAAI,SAAS,IAAI,IAAI;QAAE,OAAO,YAAY,CAAC,iBAAiB,CAAC;IAC7D,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,SAAS,CAC5B,GAAG,EAAE;YACH,IAAI,aAAa;gBAAE,OAAO,aAAa,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;YAClE,IAAI,iBAAiB;gBAAE,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACpD,OAAO,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QACvD,CAAC,EACD;YACE,OAAO,EAAE,oBAAoB;YAC7B,OAAO,EAAE,2BAA2B;YACpC,KAAK,EAAE,sBAAsB;YAC7B,OAAO,EAAE,CAAC,OAAO,EAAE,SAAS,EAAE,GAAG,EAAE,EAAE,CACnC,MAAM,CAAC,IAAI,CAAC,iCAAiC,EAAE;gBAC7C,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,KAAK,EAAE,KAAK,CAAC,KAAK;gBAClB,SAAS;gBACT,OAAO;gBACP,SAAS;gBACT,GAAG;aACJ,CAAC;SACL,CACF,CAAC;QACF,IAAI,MAAM,EAAE,MAAM;YAAE,OAAO,YAAY,CAAC,eAAe,CAAC;IAC1D,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,CAAC,IAAI,CAAC,qEAAqE,EAAE;YACjF,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,SAAS;YACT,GAAG;SACJ,CAAC,CAAC;IACL,CAAC;IACD,OAAO,YAAY,CAAC,iBAAiB,CAAC;AACxC,CAAC;
|
|
1
|
+
{"version":3,"file":"reconcile-state.js","sourceRoot":"","sources":["../../src/runtime/reconcile-state.ts"],"names":[],"mappings":"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"}
|
|
@@ -81,6 +81,11 @@ export declare class Runtime {
|
|
|
81
81
|
/** Stored so we can call off() in stop() and avoid retaining Runtime via scanner EventEmitter. */
|
|
82
82
|
private onScannerRunComplete;
|
|
83
83
|
private onScannerRunError;
|
|
84
|
+
/**
|
|
85
|
+
* Release both run listeners from the CURRENT scanner module. Idempotent; called on every
|
|
86
|
+
* teardown (boot failure, rebuild, stop) so a stale module never retains the Runtime.
|
|
87
|
+
*/
|
|
88
|
+
private unwireScannerRunListeners;
|
|
84
89
|
/** Set at the end of start()'s dependency phase; read by every build and rebuild. */
|
|
85
90
|
private componentDeps;
|
|
86
91
|
/** Cached strategy id resolved from the runtime wallet on first {@link auditQuery} call. */
|
|
@@ -255,11 +260,6 @@ export declare class Runtime {
|
|
|
255
260
|
* has to be made against the new one.
|
|
256
261
|
*/
|
|
257
262
|
private wireScannerRunListener;
|
|
258
|
-
/**
|
|
259
|
-
* Release both run listeners from the CURRENT scanner module. Idempotent; called on every
|
|
260
|
-
* teardown (boot failure, rebuild, stop) so a stale module never retains the Runtime.
|
|
261
|
-
*/
|
|
262
|
-
private unwireScannerRunListeners;
|
|
263
263
|
/**
|
|
264
264
|
* Launch the single serial signal consumer. Called ONCE, from `start()`.
|
|
265
265
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../src/runtime/runtime.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,KAAK,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAI/E,OAAO,KAAK,EACV,4BAA4B,EAC5B,2BAA2B,EAC5B,MAAM,0CAA0C,CAAC;AAClD,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AAE3E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;
|
|
1
|
+
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../src/runtime/runtime.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,KAAK,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAI/E,OAAO,KAAK,EACV,4BAA4B,EAC5B,2BAA2B,EAC5B,MAAM,0CAA0C,CAAC;AAClD,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AAE3E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AAyCjF,OAAO,EAAE,SAAS,IAAI,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAgBrE,OAAO,KAAK,EAKV,mBAAmB,EACnB,kBAAkB,EAEnB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EACV,qBAAqB,EACrB,YAAY,EACZ,iBAAiB,EACjB,wBAAwB,EACzB,MAAM,2BAA2B,CAAC;AA6CnC,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gBAAgB,CAAC,EAAE,oBAAoB,CAAC;IACxC,uEAAuE;IACvE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC5C;AAsFD,qBAAa,OAAO;IAClB,0FAA0F;IAC1F,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAiB;IACzC,OAAO,CAAC,GAAG,CAAiB;IAC5B,OAAO,CAAC,UAAU,CAAuC;IACzD,OAAO,CAAC,YAAY,CAAgB;IACpC,OAAO,CAAC,kBAAkB,CAAsB;IAChD,OAAO,CAAC,aAAa,CAAwB;IAC7C,OAAO,CAAC,SAAS,CAA+B;IAEhD,OAAO,CAAC,KAAK,CAA4B;IACzC,OAAO,CAAC,iBAAiB,CAAkC;IAC3D,OAAO,CAAC,qBAAqB,CAAsC;IACnE,6FAA6F;IAC7F,OAAO,CAAC,gBAAgB,CAAuB;IAC/C,2FAA2F;IAC3F,OAAO,CAAC,kBAAkB,CAAC,CAAyB;IACpD,OAAO,CAAC,aAAa,CAAC,CAAmB;IACzC,OAAO,CAAC,qBAAqB,CAAS;IACtC,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,SAAS,CAAuB;IAExC,4FAA4F;IAC5F,OAAO,CAAC,WAAW,CAAyB;IAC5C,OAAO,CAAC,eAAe,CAA6B;IACpD,OAAO,CAAC,qBAAqB,CAAS;IACtC,OAAO,CAAC,kBAAkB,CAA8B;IACxD,yGAAyG;IACzG,OAAO,CAAC,sBAAsB,CAA6B;IAC3D,0GAA0G;IAC1G,OAAO,CAAC,8BAA8B,CAA6B;IACnE,0FAA0F;IAC1F,OAAO,CAAC,sBAAsB,CAA+C;IAC7E,OAAO,CAAC,mBAAmB,CAAuC;IAClE,OAAO,CAAC,cAAc,CAAkB;IACxC;;;;;;;;OAQG;IACH,OAAO,CAAC,iBAAiB,CAAyC;IAClE;;;;;;;OAOG;IACH,OAAO,CAAC,qBAAqB,CAA2C;IACxE,OAAO,CAAC,mBAAmB,CAAuB;IAElD,kGAAkG;IAClG,OAAO,CAAC,oBAAoB,CAA8E;IAC1G,OAAO,CAAC,iBAAiB,CAAyD;IAElF;;;OAGG;IACH,OAAO,CAAC,yBAAyB;IAWjC,qFAAqF;IACrF,OAAO,CAAC,aAAa,CAAiB;IAEtC,4FAA4F;IAC5F,OAAO,CAAC,gBAAgB,CAAuB;IAE/C,uGAAuG;IACvG,OAAO,CAAC,oBAAoB,CAAgC;IAG5D,0EAA0E;IAC1E,OAAO,CAAC,cAAc,CAAgC;IACtD,yFAAyF;IACzF,OAAO,CAAC,aAAa,CAAmF;IACxG,4FAA4F;IAC5F,OAAO,CAAC,gBAAgB,CAAS;IACjC,8EAA8E;IAC9E,OAAO,CAAC,mBAAmB,CAA8C;IACzE,+IAA+I;IAC/I,OAAO,CAAC,cAAc,CAAuB;IAC7C,wEAAwE;IACxE,OAAO,CAAC,mBAAmB,CAAK;IAEhC;;;;OAIG;IACH,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAgB;gBAElC,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,cAAc;IAK1D,IAAI,GAAG,IAAI,cAAc,GAAG,IAAI,CAE/B;IAEK,eAAe,IAAI,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAAC;IAItD,cAAc,IAAI,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC;IAI1D;;;OAGG;IACH,sBAAsB,CAAC,MAAM,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAI3E,wEAAwE;IACxE,oBAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC;IAI5F,sDAAsD;IACtD,yBAAyB,CACvB,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,EAClB,IAAI,CAAC,EAAE,wBAAwB,GAC9B,OAAO,CAAC,qBAAqB,EAAE,CAAC;IAInC;;;;;;;;;OASG;IACG,yBAAyB,CAC7B,OAAO,EAAE,4BAA4B,GACpC,OAAO,CAAC,2BAA2B,CAAC;IAQvC;;;;;;OAMG;IACH,0BAA0B,CACxB,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,GAC7D,OAAO;IASV;;;OAGG;IACH,8BAA8B,CAAC,MAAM,EAAE,wBAAwB,GAAG,IAAI;IAOtE;;;;;OAKG;IACI,mBAAmB,IAAI,MAAM;IAIpC;;;;;;;;;;;OAWG;IACI,aAAa,IAAI,MAAM,GAAG,IAAI;IAIrC;;;;;;;;;;;;;;;;;;;;OAoBG;IACU,UAAU,CACrB,IAAI,EAAE,cAAc,EACpB,IAAI,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,WAAW,CAAA;KAAE,GAC9B,OAAO,CAAC,gBAAgB,CAAC;IAkC5B;;;OAGG;YACW,2BAA2B;IASzC;;;;;OAKG;YACW,iBAAiB;IA6CzB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IA0R5B;;OAEG;IACH,uEAAuE;IACvE;;;;;;;;OAQG;YACW,eAAe;IAK7B;;;;;;;;;;;;;;;;OAgBG;YACW,mBAAmB;IA8IjC;;;;;;;;;;OAUG;YACW,gBAAgB;IAsE9B;;;;;;OAMG;IACH,OAAO,CAAC,sBAAsB;IAiE9B;;;;;;;;;;;;;;;;;;OAkBG;IACH,OAAO,CAAC,mBAAmB;IAK3B;;;;;;;;;;;;OAYG;IACG,iBAAiB,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;YAgB/C,uBAAuB;IA8CrC;;;;;;;;;;;;;;;;;;OAkBG;YACW,gBAAgB;IAmB9B;;;;;;;;;;;OAWG;YACW,4BAA4B;IASpC,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAStD,0FAA0F;IACpF,6BAA6B,IAAI,OAAO,CAAC,IAAI,CAAC;IAIpD;;;;OAIG;IACH,OAAO,CAAC,oBAAoB;IAY5B;;OAEG;YACW,iBAAiB;IAyI/B;;;;;;OAMG;IACH,OAAO,CAAC,oBAAoB;IAO5B;;;;OAIG;YACW,oBAAoB;IAiElC;;;OAGG;YACW,kBAAkB;IAc1B,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;YAYb,UAAU;CAyDzB"}
|