instar 1.3.782 → 1.3.784

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.
Files changed (77) hide show
  1. package/dist/commands/server.d.ts.map +1 -1
  2. package/dist/commands/server.js +41 -15
  3. package/dist/commands/server.js.map +1 -1
  4. package/dist/core/MachineIdentity.d.ts +13 -0
  5. package/dist/core/MachineIdentity.d.ts.map +1 -1
  6. package/dist/core/MachineIdentity.js +31 -0
  7. package/dist/core/MachineIdentity.js.map +1 -1
  8. package/dist/core/MeteredSpendGate.d.ts +127 -0
  9. package/dist/core/MeteredSpendGate.d.ts.map +1 -0
  10. package/dist/core/MeteredSpendGate.js +248 -0
  11. package/dist/core/MeteredSpendGate.js.map +1 -0
  12. package/dist/core/MeteredSpendLedger.d.ts +154 -0
  13. package/dist/core/MeteredSpendLedger.d.ts.map +1 -0
  14. package/dist/core/MeteredSpendLedger.js +434 -0
  15. package/dist/core/MeteredSpendLedger.js.map +1 -0
  16. package/dist/core/PinAttemptStore.d.ts +35 -0
  17. package/dist/core/PinAttemptStore.d.ts.map +1 -0
  18. package/dist/core/PinAttemptStore.js +85 -0
  19. package/dist/core/PinAttemptStore.js.map +1 -0
  20. package/dist/core/PostUpdateMigrator.d.ts +7 -0
  21. package/dist/core/PostUpdateMigrator.d.ts.map +1 -1
  22. package/dist/core/PostUpdateMigrator.js +24 -0
  23. package/dist/core/PostUpdateMigrator.js.map +1 -1
  24. package/dist/core/RenderedPlanStore.d.ts +61 -0
  25. package/dist/core/RenderedPlanStore.d.ts.map +1 -0
  26. package/dist/core/RenderedPlanStore.js +92 -0
  27. package/dist/core/RenderedPlanStore.js.map +1 -0
  28. package/dist/core/RoutingSpendCapsStore.d.ts +113 -0
  29. package/dist/core/RoutingSpendCapsStore.d.ts.map +1 -0
  30. package/dist/core/RoutingSpendCapsStore.js +241 -0
  31. package/dist/core/RoutingSpendCapsStore.js.map +1 -0
  32. package/dist/core/SpendAlertDispatcher.d.ts +94 -0
  33. package/dist/core/SpendAlertDispatcher.d.ts.map +1 -0
  34. package/dist/core/SpendAlertDispatcher.js +168 -0
  35. package/dist/core/SpendAlertDispatcher.js.map +1 -0
  36. package/dist/core/SpendAlertEmitters.d.ts +118 -0
  37. package/dist/core/SpendAlertEmitters.d.ts.map +1 -0
  38. package/dist/core/SpendAlertEmitters.js +220 -0
  39. package/dist/core/SpendAlertEmitters.js.map +1 -0
  40. package/dist/core/SpendAlertResolver.d.ts +89 -0
  41. package/dist/core/SpendAlertResolver.d.ts.map +1 -0
  42. package/dist/core/SpendAlertResolver.js +175 -0
  43. package/dist/core/SpendAlertResolver.js.map +1 -0
  44. package/dist/core/TelegramSpendTopicChannel.d.ts +50 -0
  45. package/dist/core/TelegramSpendTopicChannel.d.ts.map +1 -0
  46. package/dist/core/TelegramSpendTopicChannel.js +106 -0
  47. package/dist/core/TelegramSpendTopicChannel.js.map +1 -0
  48. package/dist/core/WriteDomainRegistry.d.ts.map +1 -1
  49. package/dist/core/WriteDomainRegistry.js +17 -0
  50. package/dist/core/WriteDomainRegistry.js.map +1 -1
  51. package/dist/core/devGatedFeatures.d.ts.map +1 -1
  52. package/dist/core/devGatedFeatures.js +9 -0
  53. package/dist/core/devGatedFeatures.js.map +1 -1
  54. package/dist/core/routingSpendView.d.ts +10 -2
  55. package/dist/core/routingSpendView.d.ts.map +1 -1
  56. package/dist/core/routingSpendView.js +18 -10
  57. package/dist/core/routingSpendView.js.map +1 -1
  58. package/dist/core/types.d.ts +45 -3
  59. package/dist/core/types.d.ts.map +1 -1
  60. package/dist/core/types.js.map +1 -1
  61. package/dist/server/AgentServer.d.ts +25 -0
  62. package/dist/server/AgentServer.d.ts.map +1 -1
  63. package/dist/server/AgentServer.js +304 -0
  64. package/dist/server/AgentServer.js.map +1 -1
  65. package/dist/server/routes.d.ts +10 -0
  66. package/dist/server/routes.d.ts.map +1 -1
  67. package/dist/server/routes.js +196 -4
  68. package/dist/server/routes.js.map +1 -1
  69. package/dist/testing/selfActionRegistry.d.ts.map +1 -1
  70. package/dist/testing/selfActionRegistry.js +206 -0
  71. package/dist/testing/selfActionRegistry.js.map +1 -1
  72. package/package.json +1 -1
  73. package/src/data/builtin-manifest.json +64 -64
  74. package/upgrades/1.3.783.md +66 -0
  75. package/upgrades/1.3.784.md +59 -0
  76. package/upgrades/side-effects/routing-spend-increment-b.md +44 -0
  77. package/upgrades/side-effects/routing-spend-increment-c.md +44 -0
@@ -171,6 +171,19 @@ export declare class MachineIdentityManager {
171
171
  updateMachineEndpoints(machineId: string, endpoints: import('./types.js').MeshEndpoint[]): void;
172
172
  /** multi-transport-mesh-comms — read a machine's advertised endpoint set (or undefined). */
173
173
  getMachineEndpoints(machineId: string): import('./types.js').MeshEndpoint[] | undefined;
174
+ /**
175
+ * routing-control-room-spend Increment C (FD-6 rung 2, pool half) — publish
176
+ * this machine's created/adopted "💰 Routing & Spend Alerts" topic id as a
177
+ * content-free field on its registry entry (rides the SAME replicated
178
+ * registry-sync path as lastKnownUrl/endpoints).
179
+ */
180
+ updateRoutingSpendAlertTopic(machineId: string, topicId: number): void;
181
+ /**
182
+ * Read the pool-published alerts-topic id from ANY (non-revoked) machine
183
+ * entry — first hit wins; a new serving-lease holder INHERITS the id instead
184
+ * of re-creating. Returns undefined when no machine has published one.
185
+ */
186
+ readAnyRoutingSpendAlertTopic(): number | undefined;
174
187
  /**
175
188
  * Revoke a machine. Marks it as revoked with reason.
176
189
  * Does NOT handle external secret rotation — caller must do that.
@@ -1 +1 @@
1
- {"version":3,"file":"MachineIdentity.d.ts","sourceRoot":"","sources":["../../src/core/MachineIdentity.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MachineIdentity.d.ts","sourceRoot":"","sources":["../../src/core/MachineIdentity.ts"],"names":[],"mappings":"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"}
@@ -460,6 +460,37 @@ export class MachineIdentityManager {
460
460
  const registry = this.loadRegistry();
461
461
  return registry.machines[machineId]?.endpoints;
462
462
  }
463
+ /**
464
+ * routing-control-room-spend Increment C (FD-6 rung 2, pool half) — publish
465
+ * this machine's created/adopted "💰 Routing & Spend Alerts" topic id as a
466
+ * content-free field on its registry entry (rides the SAME replicated
467
+ * registry-sync path as lastKnownUrl/endpoints).
468
+ */
469
+ updateRoutingSpendAlertTopic(machineId, topicId) {
470
+ const registry = this.loadRegistry();
471
+ const entry = registry.machines[machineId];
472
+ if (!entry)
473
+ throw new Error(ERRORS.MACHINE_NOT_FOUND(machineId));
474
+ entry.routingSpendAlertTopicId = topicId;
475
+ entry.lastSeen = new Date().toISOString();
476
+ this.saveRegistry(registry);
477
+ }
478
+ /**
479
+ * Read the pool-published alerts-topic id from ANY (non-revoked) machine
480
+ * entry — first hit wins; a new serving-lease holder INHERITS the id instead
481
+ * of re-creating. Returns undefined when no machine has published one.
482
+ */
483
+ readAnyRoutingSpendAlertTopic() {
484
+ const registry = this.loadRegistry();
485
+ for (const entry of Object.values(registry.machines)) {
486
+ if (entry.revokedAt)
487
+ continue;
488
+ const id = entry.routingSpendAlertTopicId;
489
+ if (typeof id === 'number' && Number.isFinite(id))
490
+ return id;
491
+ }
492
+ return undefined;
493
+ }
463
494
  /**
464
495
  * Revoke a machine. Marks it as revoked with reason.
465
496
  * Does NOT handle external secret rotation — caller must do that.
@@ -1 +1 @@
1
- {"version":3,"file":"MachineIdentity.js","sourceRoot":"","sources":["../../src/core/MachineIdentity.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MachineIdentity.js","sourceRoot":"","sources":["../../src/core/MachineIdentity.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,127 @@
1
+ /**
2
+ * MeteredSpendGate — the O(1), never-cached, FAIL-CLOSED money gate of the
3
+ * Routing Control Room (docs/specs/routing-control-room-spend-alerts.md,
4
+ * Increment B, Layer 3).
5
+ *
6
+ * Before a metered call: read committed FRESH from the MeteredSpendLedger, read
7
+ * the door's CANONICAL VALIDATED price (never the observed cache, never the
8
+ * overlay), compute the worst-case reserve at BASE price (no subsidy/credit),
9
+ * and refuse when `committed + estCost > cap` (strict `>`). FAIL CLOSED on
10
+ * EVERY uncertainty — that is the entire safety posture:
11
+ * not-live · frozen · no-cap-slice · lease-liveness-unconfirmed ·
12
+ * unbounded-reservation · unknown-price · implausible-price ·
13
+ * stale-price-fail-closed · invalid-cap · cap-exceeded · ledger-error
14
+ *
15
+ * Authority shape (signal-vs-authority): deterministic ARITHMETIC authority at
16
+ * the metered admission point only. A refusal is a swap-tail ADVANCE for the
17
+ * router (the chain falls to a free door) — never a chain kill (LF-A2).
18
+ *
19
+ * Structural exclusions (unit-tested):
20
+ * - reads NO `feature_metrics`, NO provider-report store, NO observed price
21
+ * cache, NO subsidy/credit input — only the ledger, the canonical manifest
22
+ * meta/points, and the PIN caps store.
23
+ *
24
+ * Wiring status (FD-11, honest): the metered dispatch that CALLS this gate is
25
+ * out-of-scope in-flight S4 work; the gate is fully unit-testable against a
26
+ * stub dispatch, and go-live remains refused until the FD-11 release-gate
27
+ * preconditions are met. Nothing in Increment B routes real money.
28
+ */
29
+ import type { MeteredSpendLedger } from './MeteredSpendLedger.js';
30
+ import type { RoutingPriceAuthority } from './routingPriceAuthority.js';
31
+ import type { RoutingSpendCapsStore } from './RoutingSpendCapsStore.js';
32
+ /**
33
+ * Per-provider price plausibility floors, USD per MILLION tokens — CODE-DEFINED
34
+ * constants, deliberately not config (A-M5/S-F1: a Bearer-writable surface must
35
+ * never influence a gate-consumed price value). A canonical point BELOW its
36
+ * provider's floor is treated as a typo → `implausible-price` → fail closed.
37
+ */
38
+ export declare const PROVIDER_PRICE_FLOORS_PER_MTOK: Readonly<Record<string, {
39
+ inPerMtok: number;
40
+ outPerMtok: number;
41
+ }>>;
42
+ /** How stale the metered-lease self-confirmation may be before the holder self-fences (N-2). MUST stay strictly shorter than the mesh-death threshold. */
43
+ export declare const LEASE_LIVENESS_WINDOW_MS = 60000;
44
+ export type MoneyGateRefusalReason = 'not-live' | 'frozen' | 'no-cap-slice' | 'lease-liveness-unconfirmed' | 'unbounded-reservation' | 'unknown-price' | 'implausible-price' | 'stale-price-fail-closed' | 'invalid-cap' | 'cap-exceeded' | 'ledger-error';
45
+ /** A cap/uncertainty refusal — the router treats it as a swap-tail ADVANCE, never a chain kill. */
46
+ export declare class MoneyGateRefusal extends Error {
47
+ reason: MoneyGateRefusalReason;
48
+ detail: string;
49
+ keyRef?: string | undefined;
50
+ door?: string | undefined;
51
+ constructor(reason: MoneyGateRefusalReason, detail: string, keyRef?: string | undefined, door?: string | undefined);
52
+ }
53
+ export interface AdmitRequest {
54
+ door: string;
55
+ modelId: string;
56
+ /** Prompt tokens (estimated or counted). Cached tokens reserve as FULL input (FD-19) — no cached discount at reserve time. */
57
+ inputTokens: number;
58
+ /** REQUIRED bounded output ceiling — the metered request MUST set max_tokens (A2-4). */
59
+ maxOutputTokens: number | undefined;
60
+ }
61
+ export interface AdmitResult {
62
+ reserveId: string;
63
+ keyRef: string;
64
+ reserveUsd: number;
65
+ /** The booking price actually used (canonical base or conservative-max under stale policy). */
66
+ bookedInPerMtok: number;
67
+ bookedOutPerMtok: number;
68
+ committedLifetimeUsd: number;
69
+ committedDayUsd: number;
70
+ }
71
+ export interface MeteredSpendGateOptions {
72
+ ledger: MeteredSpendLedger;
73
+ prices: RoutingPriceAuthority;
74
+ capsStore: RoutingSpendCapsStore;
75
+ /** This machine's id — compared against the go-live designation (FD-13). */
76
+ machineId: string;
77
+ /**
78
+ * POSITIVE re-confirmation of this machine's metered-lease designation against
79
+ * the pool: ms since the last successful confirmation, or null when never/failed.
80
+ * A single-machine agent trivially self-confirms (return 0).
81
+ */
82
+ leaseConfirmedAgoMs: () => number | null;
83
+ /**
84
+ * OPTIONAL alert observer (Increment C — signal-only): fired AFTER a
85
+ * successful admit (with post-admit committed + the caps, for the
86
+ * cap-approach thresholds) and on a cap-exceeded refusal (for the
87
+ * money-critical cap-hit alert). Throw-swallowed — an observer failure can
88
+ * never disturb the admit/refuse path (unit-pinned).
89
+ */
90
+ onGateEvent?: (ev: import('./SpendAlertEmitters.js').GateEvent) => void;
91
+ now?: () => number;
92
+ }
93
+ export declare class MeteredSpendGate {
94
+ private readonly d;
95
+ private readonly now;
96
+ constructor(opts: MeteredSpendGateOptions);
97
+ /**
98
+ * Admit-or-refuse a metered call, booking the worst-case reserve on admit.
99
+ * Every uncertainty throws MoneyGateRefusal (fail closed).
100
+ */
101
+ admit(req: AdmitRequest): Promise<AdmitResult>;
102
+ /**
103
+ * The gate-eligible price for a (door, model): the CANONICAL as-of point,
104
+ * validated + plausibility-floored; under a stale SLA the door's staleMode
105
+ * applies (default book-conservative-max — spend continues, never under-books).
106
+ */
107
+ private gatePrice;
108
+ private plausible;
109
+ /**
110
+ * Settle helpers for the (future) metered dispatch seam: ALL no-charge outcomes
111
+ * force-settle $0 (A-B2) unless tokens were demonstrably returned; a 200 books
112
+ * actual from the per-door BILLED-token mapping (erring HIGH), or worst-case
113
+ * when the billed basis cannot be confirmed.
114
+ */
115
+ settleActual(keyRef: string, reserveId: string, actualUsd: number): Promise<void>;
116
+ settleNoCharge(keyRef: string, reserveId: string): Promise<void>;
117
+ }
118
+ /**
119
+ * Per-door BILLED-token mapping (Layer 3): which response fields mean "billed
120
+ * output" for each metered door — Gemini bills thinking tokens as output
121
+ * (candidatesTokenCount can EXCLUDE them); OpenRouter/Groq bill
122
+ * completion_tokens. A response whose billed basis cannot be confirmed from the
123
+ * mapping settles at the WORST-CASE estimate, never a lower unverified field.
124
+ * Named + exported so the metered dispatch seam and the tests share ONE truth.
125
+ */
126
+ export declare function billedOutputTokens(door: string, usage: Record<string, unknown> | undefined): number | null;
127
+ //# sourceMappingURL=MeteredSpendGate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MeteredSpendGate.d.ts","sourceRoot":"","sources":["../../src/core/MeteredSpendGate.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,248 @@
1
+ /**
2
+ * MeteredSpendGate — the O(1), never-cached, FAIL-CLOSED money gate of the
3
+ * Routing Control Room (docs/specs/routing-control-room-spend-alerts.md,
4
+ * Increment B, Layer 3).
5
+ *
6
+ * Before a metered call: read committed FRESH from the MeteredSpendLedger, read
7
+ * the door's CANONICAL VALIDATED price (never the observed cache, never the
8
+ * overlay), compute the worst-case reserve at BASE price (no subsidy/credit),
9
+ * and refuse when `committed + estCost > cap` (strict `>`). FAIL CLOSED on
10
+ * EVERY uncertainty — that is the entire safety posture:
11
+ * not-live · frozen · no-cap-slice · lease-liveness-unconfirmed ·
12
+ * unbounded-reservation · unknown-price · implausible-price ·
13
+ * stale-price-fail-closed · invalid-cap · cap-exceeded · ledger-error
14
+ *
15
+ * Authority shape (signal-vs-authority): deterministic ARITHMETIC authority at
16
+ * the metered admission point only. A refusal is a swap-tail ADVANCE for the
17
+ * router (the chain falls to a free door) — never a chain kill (LF-A2).
18
+ *
19
+ * Structural exclusions (unit-tested):
20
+ * - reads NO `feature_metrics`, NO provider-report store, NO observed price
21
+ * cache, NO subsidy/credit input — only the ledger, the canonical manifest
22
+ * meta/points, and the PIN caps store.
23
+ *
24
+ * Wiring status (FD-11, honest): the metered dispatch that CALLS this gate is
25
+ * out-of-scope in-flight S4 work; the gate is fully unit-testable against a
26
+ * stub dispatch, and go-live remains refused until the FD-11 release-gate
27
+ * preconditions are met. Nothing in Increment B routes real money.
28
+ */
29
+ import { CapExceededError } from './MeteredSpendLedger.js';
30
+ /**
31
+ * Per-provider price plausibility floors, USD per MILLION tokens — CODE-DEFINED
32
+ * constants, deliberately not config (A-M5/S-F1: a Bearer-writable surface must
33
+ * never influence a gate-consumed price value). A canonical point BELOW its
34
+ * provider's floor is treated as a typo → `implausible-price` → fail closed.
35
+ */
36
+ export const PROVIDER_PRICE_FLOORS_PER_MTOK = {
37
+ google: { inPerMtok: 0.01, outPerMtok: 0.01 },
38
+ openrouter: { inPerMtok: 0.01, outPerMtok: 0.01 },
39
+ groq: { inPerMtok: 0.01, outPerMtok: 0.01 },
40
+ };
41
+ /** How stale the metered-lease self-confirmation may be before the holder self-fences (N-2). MUST stay strictly shorter than the mesh-death threshold. */
42
+ export const LEASE_LIVENESS_WINDOW_MS = 60_000;
43
+ /** A cap/uncertainty refusal — the router treats it as a swap-tail ADVANCE, never a chain kill. */
44
+ export class MoneyGateRefusal extends Error {
45
+ reason;
46
+ detail;
47
+ keyRef;
48
+ door;
49
+ constructor(reason, detail, keyRef, door) {
50
+ super(`money gate refused (${reason}): ${detail}`);
51
+ this.reason = reason;
52
+ this.detail = detail;
53
+ this.keyRef = keyRef;
54
+ this.door = door;
55
+ this.name = 'MoneyGateRefusal';
56
+ }
57
+ }
58
+ export class MeteredSpendGate {
59
+ d;
60
+ now;
61
+ constructor(opts) {
62
+ this.d = opts;
63
+ this.now = opts.now ?? (() => Date.now());
64
+ }
65
+ /**
66
+ * Admit-or-refuse a metered call, booking the worst-case reserve on admit.
67
+ * Every uncertainty throws MoneyGateRefusal (fail closed).
68
+ */
69
+ async admit(req) {
70
+ // 1) Go-live: deny-by-default (not-live), key resolution, designation + freeze.
71
+ let caps;
72
+ try {
73
+ caps = this.d.capsStore.read();
74
+ }
75
+ catch (err) {
76
+ throw new MoneyGateRefusal('invalid-cap', `caps store unreadable: ${String(err)}`, undefined, req.door);
77
+ }
78
+ const goLive = caps.goLive[req.door];
79
+ if (!goLive || !goLive.enabled) {
80
+ throw new MoneyGateRefusal('not-live', `door '${req.door}' has no live go-live record (deny-by-default)`, undefined, req.door);
81
+ }
82
+ const keyRef = goLive.keyRef;
83
+ if (goLive.designatedMachineId !== this.d.machineId) {
84
+ throw new MoneyGateRefusal('no-cap-slice', `this machine holds no cap authority for '${req.door}' (designated: ${goLive.designatedMachineId})`, keyRef, req.door);
85
+ }
86
+ // 2) Self-fence: positive lease re-confirmation within the bounded window (N-2).
87
+ const confirmedAgo = this.d.leaseConfirmedAgoMs();
88
+ if (confirmedAgo === null || confirmedAgo > LEASE_LIVENESS_WINDOW_MS) {
89
+ throw new MoneyGateRefusal('lease-liveness-unconfirmed', `metered-lease designation not positively re-confirmed within ${LEASE_LIVENESS_WINDOW_MS}ms (ago: ${confirmedAgo ?? 'never'})`, keyRef, req.door);
90
+ }
91
+ // 3) Freeze + cap validity.
92
+ const keyCaps = caps.caps[keyRef];
93
+ if (keyCaps?.frozen) {
94
+ throw new MoneyGateRefusal('frozen', `key '${keyRef}' is frozen${keyCaps.frozenBy ? ` (by ${keyCaps.frozenBy})` : ''}`, keyRef, req.door);
95
+ }
96
+ const lifetimeCap = keyCaps?.lifetimeCapUsd;
97
+ const dailyCap = keyCaps?.dailyCapUsd;
98
+ if (typeof lifetimeCap !== 'number' || !Number.isFinite(lifetimeCap) || lifetimeCap <= 0 ||
99
+ typeof dailyCap !== 'number' || !Number.isFinite(dailyCap) || dailyCap <= 0) {
100
+ throw new MoneyGateRefusal('invalid-cap', `key '${keyRef}' has no valid positive caps (a cap of 0/absent admits nothing)`, keyRef, req.door);
101
+ }
102
+ // 4) Bounded reservation (A2-4).
103
+ if (req.maxOutputTokens === undefined || !Number.isFinite(req.maxOutputTokens) || req.maxOutputTokens <= 0 ||
104
+ !Number.isFinite(req.inputTokens) || req.inputTokens < 0) {
105
+ throw new MoneyGateRefusal('unbounded-reservation', 'metered call without a bounded max_tokens output ceiling (or invalid input estimate) is refused', keyRef, req.door);
106
+ }
107
+ // 5) Canonical VALIDATED price only (never observed, never overlay), stale policy applied.
108
+ const { inPerMtok, outPerMtok } = this.gatePrice(req.door, req.modelId, keyRef);
109
+ // 6) Worst-case reserve at BASE price; cached tokens as FULL input (FD-19).
110
+ const reserveUsd = (req.inputTokens / 1e6) * inPerMtok + (req.maxOutputTokens / 1e6) * outPerMtok;
111
+ // 7+8) ATOMIC check-and-reserve: the strict-> cap comparison runs INSIDE the
112
+ // ledger's per-key booking critical section (never outside it — the only
113
+ // ordering under which two CONCURRENT reservations are guaranteed to see
114
+ // each other; the two-concurrent-reserves unit test pins this). The read is
115
+ // O(1) and fresh (high-water-checked) at the moment of booking.
116
+ let handle;
117
+ try {
118
+ handle = await this.d.ledger.reserve({
119
+ keyRef,
120
+ door: req.door,
121
+ modelId: req.modelId,
122
+ reserveUsd,
123
+ leaseEpoch: caps.leaseEpoch,
124
+ admitOnlyUnderCaps: { lifetimeCapUsd: lifetimeCap, dailyCapUsd: dailyCap },
125
+ });
126
+ }
127
+ catch (err) {
128
+ if (err instanceof CapExceededError) {
129
+ try {
130
+ this.d.onGateEvent?.({ type: 'refusal', reason: 'cap-exceeded', keyRef, door: req.door, detail: err.message });
131
+ }
132
+ catch {
133
+ // @silent-fallback-ok: the observer is signal-only — never on the refusal path.
134
+ }
135
+ throw new MoneyGateRefusal('cap-exceeded', err.message, keyRef, req.door);
136
+ }
137
+ throw new MoneyGateRefusal('ledger-error', `reserve booking failed: ${String(err)}`, keyRef, req.door);
138
+ }
139
+ try {
140
+ this.d.onGateEvent?.({
141
+ type: 'admit',
142
+ keyRef,
143
+ door: req.door,
144
+ committedLifetimeUsd: handle.committedLifetimeUsd,
145
+ committedDayUsd: handle.committedDayUsd,
146
+ lifetimeCapUsd: lifetimeCap,
147
+ dailyCapUsd: dailyCap,
148
+ });
149
+ }
150
+ catch {
151
+ // @silent-fallback-ok: the observer is signal-only — never on the admit path.
152
+ }
153
+ return {
154
+ reserveId: handle.reserveId,
155
+ keyRef,
156
+ reserveUsd,
157
+ bookedInPerMtok: inPerMtok,
158
+ bookedOutPerMtok: outPerMtok,
159
+ committedLifetimeUsd: handle.committedLifetimeUsd,
160
+ committedDayUsd: handle.committedDayUsd,
161
+ };
162
+ }
163
+ /**
164
+ * The gate-eligible price for a (door, model): the CANONICAL as-of point,
165
+ * validated + plausibility-floored; under a stale SLA the door's staleMode
166
+ * applies (default book-conservative-max — spend continues, never under-books).
167
+ */
168
+ gatePrice(door, modelId, keyRef) {
169
+ const res = this.d.prices.resolve(door, modelId, this.now());
170
+ // Canonical ONLY: an observed point is structurally not gate-eligible (S2-2).
171
+ if (res.priceBasis !== 'canonical' || !res.point) {
172
+ throw new MoneyGateRefusal('unknown-price', `no canonical price point for (${door}, ${modelId})`, keyRef, door);
173
+ }
174
+ const meta = this.d.prices.doorMetaFor(door);
175
+ if (res.priceStale) {
176
+ const mode = meta?.staleMode ?? 'book-conservative-max';
177
+ if (mode === 'fail-closed') {
178
+ throw new MoneyGateRefusal('stale-price-fail-closed', `canonical price for '${door}' is older than its freshness SLA and staleMode is fail-closed`, keyRef, door);
179
+ }
180
+ const cm = meta?.conservativeMax;
181
+ if (!cm || !this.plausible(door, cm.inPerMtok, cm.outPerMtok)) {
182
+ throw new MoneyGateRefusal('unknown-price', `stale price for '${door}' and no plausible conservativeMax to book against`, keyRef, door);
183
+ }
184
+ return { inPerMtok: cm.inPerMtok, outPerMtok: cm.outPerMtok };
185
+ }
186
+ const pt = res.point;
187
+ if (!this.plausible(door, pt.inPerMtok, pt.outPerMtok)) {
188
+ throw new MoneyGateRefusal('implausible-price', `canonical price for (${door}, ${modelId}) is below the code-defined provider floor — likely a typo`, keyRef, door);
189
+ }
190
+ return { inPerMtok: pt.inPerMtok, outPerMtok: pt.outPerMtok };
191
+ }
192
+ plausible(door, inPerMtok, outPerMtok) {
193
+ const provider = door.split('-')[0]; // gemini-api → gemini … door naming is provider-prefixed
194
+ const floor = PROVIDER_PRICE_FLOORS_PER_MTOK[provider] ??
195
+ PROVIDER_PRICE_FLOORS_PER_MTOK[{ gemini: 'google' }[provider] ?? ''] ??
196
+ { inPerMtok: 0.001, outPerMtok: 0.001 };
197
+ return (Number.isFinite(inPerMtok) && Number.isFinite(outPerMtok) &&
198
+ inPerMtok >= floor.inPerMtok && outPerMtok >= floor.outPerMtok);
199
+ }
200
+ /**
201
+ * Settle helpers for the (future) metered dispatch seam: ALL no-charge outcomes
202
+ * force-settle $0 (A-B2) unless tokens were demonstrably returned; a 200 books
203
+ * actual from the per-door BILLED-token mapping (erring HIGH), or worst-case
204
+ * when the billed basis cannot be confirmed.
205
+ */
206
+ async settleActual(keyRef, reserveId, actualUsd) {
207
+ await this.d.ledger.settle(keyRef, reserveId, actualUsd);
208
+ }
209
+ async settleNoCharge(keyRef, reserveId) {
210
+ await this.d.ledger.settle(keyRef, reserveId, 0);
211
+ }
212
+ }
213
+ /**
214
+ * Per-door BILLED-token mapping (Layer 3): which response fields mean "billed
215
+ * output" for each metered door — Gemini bills thinking tokens as output
216
+ * (candidatesTokenCount can EXCLUDE them); OpenRouter/Groq bill
217
+ * completion_tokens. A response whose billed basis cannot be confirmed from the
218
+ * mapping settles at the WORST-CASE estimate, never a lower unverified field.
219
+ * Named + exported so the metered dispatch seam and the tests share ONE truth.
220
+ */
221
+ export function billedOutputTokens(door, usage) {
222
+ if (!usage || typeof usage !== 'object')
223
+ return null;
224
+ const n = (v) => (typeof v === 'number' && Number.isFinite(v) && v >= 0 ? v : null);
225
+ if (door === 'gemini-api') {
226
+ // Native path: candidatesTokenCount + thoughtsTokenCount. OpenAI-compat path:
227
+ // completion_tokens (+ reasoning tokens detail when present).
228
+ const candidates = n(usage['candidatesTokenCount']);
229
+ if (candidates !== null) {
230
+ const thoughts = n(usage['thoughtsTokenCount']) ?? 0;
231
+ return candidates + thoughts;
232
+ }
233
+ const completion = n(usage['completion_tokens']);
234
+ if (completion !== null) {
235
+ const details = usage['completion_tokens_details'];
236
+ const reasoning = n(details?.['reasoning_tokens']) ?? 0;
237
+ // completion_tokens on the compat path already includes reasoning on some
238
+ // shapes; take the MAX interpretation (erring HIGH, the safe direction).
239
+ return Math.max(completion, reasoning);
240
+ }
241
+ return null;
242
+ }
243
+ if (door === 'openrouter-api' || door === 'groq-api') {
244
+ return n(usage['completion_tokens']);
245
+ }
246
+ return null;
247
+ }
248
+ //# sourceMappingURL=MeteredSpendGate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MeteredSpendGate.js","sourceRoot":"","sources":["../../src/core/MeteredSpendGate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAK3D;;;;;GAKG;AACH,MAAM,CAAC,MAAM,8BAA8B,GAAwE;IACjH,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE;IAC7C,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE;IACjD,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE;CAC5C,CAAC;AAEF,0JAA0J;AAC1J,MAAM,CAAC,MAAM,wBAAwB,GAAG,MAAM,CAAC;AAe/C,mGAAmG;AACnG,MAAM,OAAO,gBAAiB,SAAQ,KAAK;IAEhC;IACA;IACA;IACA;IAJT,YACS,MAA8B,EAC9B,MAAc,EACd,MAAe,EACf,IAAa;QAEpB,KAAK,CAAC,uBAAuB,MAAM,MAAM,MAAM,EAAE,CAAC,CAAC;QAL5C,WAAM,GAAN,MAAM,CAAwB;QAC9B,WAAM,GAAN,MAAM,CAAQ;QACd,WAAM,GAAN,MAAM,CAAS;QACf,SAAI,GAAJ,IAAI,CAAS;QAGpB,IAAI,CAAC,IAAI,GAAG,kBAAkB,CAAC;IACjC,CAAC;CACF;AA6CD,MAAM,OAAO,gBAAgB;IACV,CAAC,CAA0B;IAC3B,GAAG,CAAe;IAEnC,YAAY,IAA6B;QACvC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC;QACd,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IAC5C,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,KAAK,CAAC,GAAiB;QAC3B,gFAAgF;QAChF,IAAI,IAAmB,CAAC;QACxB,IAAI,CAAC;YACH,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;QACjC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,IAAI,gBAAgB,CAAC,aAAa,EAAE,0BAA0B,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,SAAS,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;QAC1G,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACrC,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YAC/B,MAAM,IAAI,gBAAgB,CAAC,UAAU,EAAE,SAAS,GAAG,CAAC,IAAI,gDAAgD,EAAE,SAAS,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;QACjI,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;QAC7B,IAAI,MAAM,CAAC,mBAAmB,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;YACpD,MAAM,IAAI,gBAAgB,CAAC,cAAc,EAAE,4CAA4C,GAAG,CAAC,IAAI,kBAAkB,MAAM,CAAC,mBAAmB,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;QACpK,CAAC;QACD,iFAAiF;QACjF,MAAM,YAAY,GAAG,IAAI,CAAC,CAAC,CAAC,mBAAmB,EAAE,CAAC;QAClD,IAAI,YAAY,KAAK,IAAI,IAAI,YAAY,GAAG,wBAAwB,EAAE,CAAC;YACrE,MAAM,IAAI,gBAAgB,CAAC,4BAA4B,EAAE,gEAAgE,wBAAwB,YAAY,YAAY,IAAI,OAAO,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;QAC7M,CAAC;QACD,4BAA4B;QAC5B,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAClC,IAAI,OAAO,EAAE,MAAM,EAAE,CAAC;YACpB,MAAM,IAAI,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,MAAM,cAAc,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;QAC5I,CAAC;QACD,MAAM,WAAW,GAAG,OAAO,EAAE,cAAc,CAAC;QAC5C,MAAM,QAAQ,GAAG,OAAO,EAAE,WAAW,CAAC;QACtC,IACE,OAAO,WAAW,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,WAAW,IAAI,CAAC;YACpF,OAAO,QAAQ,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,QAAQ,IAAI,CAAC,EAC3E,CAAC;YACD,MAAM,IAAI,gBAAgB,CAAC,aAAa,EAAE,QAAQ,MAAM,iEAAiE,EAAE,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;QAC/I,CAAC;QACD,iCAAiC;QACjC,IACE,GAAG,CAAC,eAAe,KAAK,SAAS,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,GAAG,CAAC,eAAe,IAAI,CAAC;YACtG,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,GAAG,CAAC,WAAW,GAAG,CAAC,EACxD,CAAC;YACD,MAAM,IAAI,gBAAgB,CAAC,uBAAuB,EAAE,iGAAiG,EAAE,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;QAC3K,CAAC;QACD,2FAA2F;QAC3F,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAChF,4EAA4E;QAC5E,MAAM,UAAU,GAAG,CAAC,GAAG,CAAC,WAAW,GAAG,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,CAAC,eAAe,GAAG,GAAG,CAAC,GAAG,UAAU,CAAC;QAClG,6EAA6E;QAC7E,yEAAyE;QACzE,yEAAyE;QACzE,4EAA4E;QAC5E,gEAAgE;QAChE,IAAI,MAAqB,CAAC;QAC1B,IAAI,CAAC;YACH,MAAM,GAAG,MAAM,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;gBACnC,MAAM;gBACN,IAAI,EAAE,GAAG,CAAC,IAAI;gBACd,OAAO,EAAE,GAAG,CAAC,OAAO;gBACpB,UAAU;gBACV,UAAU,EAAE,IAAI,CAAC,UAAU;gBAC3B,kBAAkB,EAAE,EAAE,cAAc,EAAE,WAAW,EAAE,WAAW,EAAE,QAAQ,EAAE;aAC3E,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,GAAG,YAAY,gBAAgB,EAAE,CAAC;gBACpC,IAAI,CAAC;oBACH,IAAI,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;gBACjH,CAAC;gBAAC,MAAM,CAAC;oBACP,gFAAgF;gBAClF,CAAC;gBACD,MAAM,IAAI,gBAAgB,CAAC,cAAc,EAAE,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;YAC5E,CAAC;YACD,MAAM,IAAI,gBAAgB,CAAC,cAAc,EAAE,2BAA2B,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;QACzG,CAAC;QACD,IAAI,CAAC;YACH,IAAI,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;gBACnB,IAAI,EAAE,OAAO;gBACb,MAAM;gBACN,IAAI,EAAE,GAAG,CAAC,IAAI;gBACd,oBAAoB,EAAE,MAAM,CAAC,oBAAoB;gBACjD,eAAe,EAAE,MAAM,CAAC,eAAe;gBACvC,cAAc,EAAE,WAAW;gBAC3B,WAAW,EAAE,QAAQ;aACtB,CAAC,CAAC;QACL,CAAC;QAAC,MAAM,CAAC;YACP,8EAA8E;QAChF,CAAC;QACD,OAAO;YACL,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,MAAM;YACN,UAAU;YACV,eAAe,EAAE,SAAS;YAC1B,gBAAgB,EAAE,UAAU;YAC5B,oBAAoB,EAAE,MAAM,CAAC,oBAAoB;YACjD,eAAe,EAAE,MAAM,CAAC,eAAe;SACxC,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACK,SAAS,CAAC,IAAY,EAAE,OAAe,EAAE,MAAc;QAC7D,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;QAC7D,8EAA8E;QAC9E,IAAI,GAAG,CAAC,UAAU,KAAK,WAAW,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC;YACjD,MAAM,IAAI,gBAAgB,CAAC,eAAe,EAAE,iCAAiC,IAAI,KAAK,OAAO,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;QAClH,CAAC;QACD,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAC7C,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC;YACnB,MAAM,IAAI,GAAG,IAAI,EAAE,SAAS,IAAI,uBAAuB,CAAC;YACxD,IAAI,IAAI,KAAK,aAAa,EAAE,CAAC;gBAC3B,MAAM,IAAI,gBAAgB,CAAC,yBAAyB,EAAE,wBAAwB,IAAI,gEAAgE,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;YACpK,CAAC;YACD,MAAM,EAAE,GAAG,IAAI,EAAE,eAAe,CAAC;YACjC,IAAI,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC9D,MAAM,IAAI,gBAAgB,CAAC,eAAe,EAAE,oBAAoB,IAAI,oDAAoD,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;YAC1I,CAAC;YACD,OAAO,EAAE,SAAS,EAAE,EAAE,CAAC,SAAS,EAAE,UAAU,EAAE,EAAE,CAAC,UAAU,EAAE,CAAC;QAChE,CAAC;QACD,MAAM,EAAE,GAAG,GAAG,CAAC,KAAK,CAAC;QACrB,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC;YACvD,MAAM,IAAI,gBAAgB,CAAC,mBAAmB,EAAE,wBAAwB,IAAI,KAAK,OAAO,4DAA4D,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;QACtK,CAAC;QACD,OAAO,EAAE,SAAS,EAAE,EAAE,CAAC,SAAS,EAAE,UAAU,EAAE,EAAE,CAAC,UAAU,EAAE,CAAC;IAChE,CAAC;IAEO,SAAS,CAAC,IAAY,EAAE,SAAiB,EAAE,UAAkB;QACnE,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,yDAAyD;QAC9F,MAAM,KAAK,GACT,8BAA8B,CAAC,QAAQ,CAAC;YACxC,8BAA8B,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;YACpE,EAAE,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC;QAC1C,OAAO,CACL,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC;YACzD,SAAS,IAAI,KAAK,CAAC,SAAS,IAAI,UAAU,IAAI,KAAK,CAAC,UAAU,CAC/D,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,YAAY,CAAC,MAAc,EAAE,SAAiB,EAAE,SAAiB;QACrE,MAAM,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;IAC3D,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,MAAc,EAAE,SAAiB;QACpD,MAAM,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;IACnD,CAAC;CACF;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,kBAAkB,CAAC,IAAY,EAAE,KAA0C;IACzF,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IACrD,MAAM,CAAC,GAAG,CAAC,CAAU,EAAiB,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAC5G,IAAI,IAAI,KAAK,YAAY,EAAE,CAAC;QAC1B,8EAA8E;QAC9E,8DAA8D;QAC9D,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC,CAAC;QACpD,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;YACxB,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC,IAAI,CAAC,CAAC;YACrD,OAAO,UAAU,GAAG,QAAQ,CAAC;QAC/B,CAAC;QACD,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC;QACjD,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;YACxB,MAAM,OAAO,GAAG,KAAK,CAAC,2BAA2B,CAAwC,CAAC;YAC1F,MAAM,SAAS,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,CAAC;YACxD,0EAA0E;YAC1E,yEAAyE;YACzE,OAAO,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;QACzC,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,IAAI,KAAK,gBAAgB,IAAI,IAAI,KAAK,UAAU,EAAE,CAAC;QACrD,OAAO,CAAC,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC;IACvC,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}