@sentropic/h2a-runtime 0.91.1 → 0.93.0

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 (108) hide show
  1. package/dist/config.d.ts +2 -0
  2. package/dist/config.d.ts.map +1 -1
  3. package/dist/config.js +16 -3
  4. package/dist/config.js.map +1 -1
  5. package/dist/conv-guard.d.ts +6 -1
  6. package/dist/conv-guard.d.ts.map +1 -1
  7. package/dist/conv-guard.js +33 -8
  8. package/dist/conv-guard.js.map +1 -1
  9. package/dist/enroll.d.ts.map +1 -1
  10. package/dist/enroll.js +12 -2
  11. package/dist/enroll.js.map +1 -1
  12. package/dist/index.d.ts +3 -1
  13. package/dist/index.d.ts.map +1 -1
  14. package/dist/index.js +819 -155
  15. package/dist/index.js.map +1 -1
  16. package/dist/launch-layout.d.ts +74 -0
  17. package/dist/launch-layout.d.ts.map +1 -0
  18. package/dist/launch-layout.js +324 -0
  19. package/dist/launch-layout.js.map +1 -0
  20. package/dist/llm-gateway-runtime/index.d.ts +6 -0
  21. package/dist/llm-gateway-runtime/index.d.ts.map +1 -1
  22. package/dist/llm-gateway-runtime/index.js +134 -60
  23. package/dist/llm-gateway-runtime/index.js.map +1 -1
  24. package/dist/llm-gateway-runtime/session-ledger.d.ts +38 -55
  25. package/dist/llm-gateway-runtime/session-ledger.d.ts.map +1 -1
  26. package/dist/llm-gateway-runtime/session-ledger.js +102 -250
  27. package/dist/llm-gateway-runtime/session-ledger.js.map +1 -1
  28. package/dist/llm-gateway-runtime/sticky.d.ts +25 -52
  29. package/dist/llm-gateway-runtime/sticky.d.ts.map +1 -1
  30. package/dist/llm-gateway-runtime/sticky.js +36 -605
  31. package/dist/llm-gateway-runtime/sticky.js.map +1 -1
  32. package/dist/llm-mesh.d.ts +19 -72
  33. package/dist/llm-mesh.d.ts.map +1 -1
  34. package/dist/llm-mesh.js +42 -399
  35. package/dist/llm-mesh.js.map +1 -1
  36. package/dist/llm-routing-config.d.ts +28 -0
  37. package/dist/llm-routing-config.d.ts.map +1 -0
  38. package/dist/llm-routing-config.js +100 -0
  39. package/dist/llm-routing-config.js.map +1 -0
  40. package/dist/native-host.d.ts +146 -0
  41. package/dist/native-host.d.ts.map +1 -0
  42. package/dist/native-host.js +456 -0
  43. package/dist/native-host.js.map +1 -0
  44. package/dist/native-terminal/host.d.ts +317 -1
  45. package/dist/native-terminal/host.d.ts.map +1 -1
  46. package/dist/native-terminal/host.js +696 -3
  47. package/dist/native-terminal/host.js.map +1 -1
  48. package/dist/native-terminal/op.d.ts +5 -0
  49. package/dist/native-terminal/op.d.ts.map +1 -0
  50. package/dist/native-terminal/op.js +408 -0
  51. package/dist/native-terminal/op.js.map +1 -0
  52. package/dist/native-terminal/process.d.ts +2 -0
  53. package/dist/native-terminal/process.d.ts.map +1 -1
  54. package/dist/native-terminal/process.js +16 -2
  55. package/dist/native-terminal/process.js.map +1 -1
  56. package/dist/native-terminal/server.d.ts.map +1 -1
  57. package/dist/native-terminal/server.js +6 -2
  58. package/dist/native-terminal/server.js.map +1 -1
  59. package/dist/native-terminal/socket-path.d.ts +8 -0
  60. package/dist/native-terminal/socket-path.d.ts.map +1 -1
  61. package/dist/native-terminal/socket-path.js +31 -1
  62. package/dist/native-terminal/socket-path.js.map +1 -1
  63. package/dist/native-terminal/supervisor.d.ts +13 -0
  64. package/dist/native-terminal/supervisor.d.ts.map +1 -1
  65. package/dist/native-terminal/supervisor.js +45 -0
  66. package/dist/native-terminal/supervisor.js.map +1 -1
  67. package/dist/pty.d.ts +23 -0
  68. package/dist/pty.d.ts.map +1 -1
  69. package/dist/pty.js +35 -0
  70. package/dist/pty.js.map +1 -1
  71. package/dist/readiness.d.ts +7 -0
  72. package/dist/readiness.d.ts.map +1 -1
  73. package/dist/readiness.js +12 -9
  74. package/dist/readiness.js.map +1 -1
  75. package/dist/registry.d.ts +324 -2
  76. package/dist/registry.d.ts.map +1 -1
  77. package/dist/registry.js +659 -20
  78. package/dist/registry.js.map +1 -1
  79. package/dist/restore.d.ts +91 -32
  80. package/dist/restore.d.ts.map +1 -1
  81. package/dist/restore.js +226 -186
  82. package/dist/restore.js.map +1 -1
  83. package/dist/status-projection.d.ts.map +1 -1
  84. package/dist/tmux.d.ts +9 -6
  85. package/dist/tmux.d.ts.map +1 -1
  86. package/dist/tmux.js +34 -8
  87. package/dist/tmux.js.map +1 -1
  88. package/package.json +3 -3
  89. package/dist/llm-gateway-runtime/accounts.d.ts +0 -62
  90. package/dist/llm-gateway-runtime/accounts.d.ts.map +0 -1
  91. package/dist/llm-gateway-runtime/accounts.js +0 -323
  92. package/dist/llm-gateway-runtime/accounts.js.map +0 -1
  93. package/dist/llm-gateway-runtime/model-catalog.d.ts +0 -44
  94. package/dist/llm-gateway-runtime/model-catalog.d.ts.map +0 -1
  95. package/dist/llm-gateway-runtime/model-catalog.js +0 -191
  96. package/dist/llm-gateway-runtime/model-catalog.js.map +0 -1
  97. package/dist/llm-gateway-runtime/proxy-anthropic.d.ts +0 -3
  98. package/dist/llm-gateway-runtime/proxy-anthropic.d.ts.map +0 -1
  99. package/dist/llm-gateway-runtime/proxy-anthropic.js +0 -318
  100. package/dist/llm-gateway-runtime/proxy-anthropic.js.map +0 -1
  101. package/dist/llm-gateway-runtime/proxy-cloud-code.d.ts +0 -11
  102. package/dist/llm-gateway-runtime/proxy-cloud-code.d.ts.map +0 -1
  103. package/dist/llm-gateway-runtime/proxy-cloud-code.js +0 -215
  104. package/dist/llm-gateway-runtime/proxy-cloud-code.js.map +0 -1
  105. package/dist/llm-gateway-runtime/proxy-openai.d.ts +0 -118
  106. package/dist/llm-gateway-runtime/proxy-openai.d.ts.map +0 -1
  107. package/dist/llm-gateway-runtime/proxy-openai.js +0 -1305
  108. package/dist/llm-gateway-runtime/proxy-openai.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/llm-gateway-runtime/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/llm-gateway-runtime/index.ts"],"names":[],"mappings":"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"}
@@ -1,66 +1,49 @@
1
- import type { AccountDescriptor, PublicAccountDescriptor } from "./accounts.js";
2
- import { type GatewayUpstreamTransport } from "./accounts.js";
3
- import type { RoutingTarget } from "./model-catalog.js";
1
+ import type { RoutePlan, RoutePlanInput } from "@sentropic/llm-mesh";
2
+ import type { RouteRequestSettlement } from "@sentropic/llm-gateway";
3
+ import type { SessionEntry } from "./sticky.js";
4
4
  export type GatewaySessionState = "idle" | "active" | "rate-limited";
5
+ export interface PublicAccountDescriptor {
6
+ /** Redacted mesh diagnostic reference, never an executable account id. */
7
+ readonly id: string;
8
+ readonly provider: string;
9
+ readonly label: string;
10
+ }
5
11
  export interface GatewayRateLimitSnapshot {
6
- at: string;
7
- account: PublicAccountDescriptor;
8
- retryAfterMs?: number;
12
+ readonly at: string;
13
+ readonly account: PublicAccountDescriptor;
14
+ readonly retryAfterMs?: number;
9
15
  }
10
16
  export interface GatewayFallbackSnapshot {
11
- at: string;
12
- from: PublicAccountDescriptor;
13
- to: PublicAccountDescriptor;
17
+ readonly at: string;
18
+ readonly from: PublicAccountDescriptor;
19
+ readonly to: PublicAccountDescriptor;
14
20
  }
15
21
  export interface SessionLedgerEntry {
16
- gatewaySessionId: string;
17
- clientSessionId: string;
18
- workspaceId?: string;
19
- profile?: string;
20
- account: PublicAccountDescriptor;
21
- transport: GatewayUpstreamTransport;
22
- state: GatewaySessionState;
23
- requestedModel?: string;
24
- modelId?: string;
25
- upstreamModel?: string;
26
- routePolicy?: string;
27
- routeReason?: string;
28
- createdAt: string;
29
- lastUsedAt: string;
30
- updatedAt: string;
31
- requestCount: number;
32
- /** Requests whose response body (or terminal error response) is not complete. */
33
- inFlightRequests: number;
34
- /** Overlapping requests made singular route/account details non-attributable. */
35
- detailsAmbiguous: boolean;
36
- lastRateLimit?: GatewayRateLimitSnapshot;
37
- /** Recorded only after a rebind actually succeeds; never inferred from account changes. */
38
- lastFallback?: GatewayFallbackSnapshot;
39
- }
40
- export interface UpsertSessionLedgerInput {
41
- gatewaySessionId: string;
42
- clientSessionId?: string;
43
- workspaceId?: string;
44
- profile?: string;
45
- account: AccountDescriptor;
46
- route?: RoutingTarget;
47
- now?: Date;
22
+ readonly gatewaySessionId: string;
23
+ readonly clientSessionId: string;
24
+ readonly workspaceId?: string;
25
+ readonly profile?: string;
26
+ readonly account: PublicAccountDescriptor;
27
+ readonly transport: string;
28
+ readonly state: GatewaySessionState;
29
+ readonly requestedModel?: string;
30
+ readonly modelId?: string;
31
+ readonly upstreamModel?: string;
32
+ readonly routePolicy?: string;
33
+ readonly routeReason?: string;
34
+ readonly createdAt: string;
35
+ readonly lastUsedAt: string;
36
+ readonly updatedAt: string;
37
+ readonly requestCount: number;
38
+ readonly inFlightRequests: number;
39
+ readonly detailsAmbiguous: boolean;
40
+ readonly lastRateLimit?: GatewayRateLimitSnapshot;
41
+ readonly lastFallback?: GatewayFallbackSnapshot;
48
42
  }
49
- export declare function upsertSessionLedger(input: UpsertSessionLedgerInput): SessionLedgerEntry;
50
- export declare function recordSessionRequest(gatewaySessionId: string | undefined, route?: RoutingTarget, now?: Date): SessionLedgerEntry | undefined;
51
- export declare function recordSessionActive(gatewaySessionId: string | undefined, route?: RoutingTarget, now?: Date): SessionLedgerEntry | undefined;
52
- export declare function recordSessionIdle(gatewaySessionId: string | undefined, route?: RoutingTarget, now?: Date): SessionLedgerEntry | undefined;
53
- export declare function recordSessionFallback(gatewaySessionId: string | undefined, from: AccountDescriptor, to: AccountDescriptor, route?: RoutingTarget, now?: Date): SessionLedgerEntry | undefined;
54
- export declare function recordSessionRateLimited(gatewaySessionId: string | undefined, account: AccountDescriptor, options?: {
55
- route?: RoutingTarget;
56
- retryAfterMs?: number;
57
- now?: Date;
58
- }): SessionLedgerEntry | undefined;
59
- /** Complete a terminal 429 after fallback selection/rebind has failed. */
60
- export declare function recordSessionRateLimitComplete(gatewaySessionId: string | undefined, route?: RoutingTarget, now?: Date): SessionLedgerEntry | undefined;
43
+ export declare function recordRoutePlan(session: SessionEntry, input: RoutePlanInput, plan: RoutePlan, now?: Date): void;
44
+ export declare function recordRouteSettlement(settlement: RouteRequestSettlement, now?: Date): void;
61
45
  export declare function listSessionLedger(): SessionLedgerEntry[];
62
- export declare function getSessionLedgerEntry(gatewaySessionId: string): SessionLedgerEntry | undefined;
63
- /** O(1) lookup for the exact client/tmux session status endpoint. */
46
+ export declare function getSessionLedgerEntry(sessionId: string): SessionLedgerEntry | undefined;
64
47
  export declare function getSessionLedgerEntryForClient(clientSessionId: string): SessionLedgerEntry | undefined;
65
48
  export declare function resetSessionLedger(): void;
66
49
  //# sourceMappingURL=session-ledger.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"session-ledger.d.ts","sourceRoot":"","sources":["../../src/llm-gateway-runtime/session-ledger.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session-ledger.d.ts","sourceRoot":"","sources":["../../src/llm-gateway-runtime/session-ledger.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,SAAS,EACT,cAAc,EACf,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AACrE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,MAAM,MAAM,mBAAmB,GAAG,MAAM,GAAG,QAAQ,GAAG,cAAc,CAAC;AAErE,MAAM,WAAW,uBAAuB;IACtC,0EAA0E;IAC1E,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,OAAO,EAAE,uBAAuB,CAAC;IAC1C,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;CAChC;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,uBAAuB,CAAC;IACvC,QAAQ,CAAC,EAAE,EAAE,uBAAuB,CAAC;CACtC;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,uBAAuB,CAAC;IAC1C,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,KAAK,EAAE,mBAAmB,CAAC;IACpC,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,gBAAgB,EAAE,OAAO,CAAC;IACnC,QAAQ,CAAC,aAAa,CAAC,EAAE,wBAAwB,CAAC;IAClD,QAAQ,CAAC,YAAY,CAAC,EAAE,uBAAuB,CAAC;CACjD;AAyBD,wBAAgB,eAAe,CAC7B,OAAO,EAAE,YAAY,EACrB,KAAK,EAAE,cAAc,EACrB,IAAI,EAAE,SAAS,EACf,GAAG,OAAa,GACf,IAAI,CAsCN;AAED,wBAAgB,qBAAqB,CACnC,UAAU,EAAE,sBAAsB,EAClC,GAAG,OAAa,GACf,IAAI,CAoDN;AAED,wBAAgB,iBAAiB,IAAI,kBAAkB,EAAE,CAExD;AAED,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,MAAM,GAAG,kBAAkB,GAAG,SAAS,CAEvF;AAED,wBAAgB,8BAA8B,CAC5C,eAAe,EAAE,MAAM,GACtB,kBAAkB,GAAG,SAAS,CAGhC;AAED,wBAAgB,kBAAkB,IAAI,IAAI,CAIzC"}
@@ -1,272 +1,124 @@
1
- import { publicAccountDescriptor, upstreamTransportForAccount, } from "./accounts.js";
2
- const _ledger = new Map();
3
- // Status polling addresses a tmux client session, not an implementation
4
- // gateway id. Keep that correlation as an index so the status line never has
5
- // to download and search the whole ledger.
6
- const _ledgerByClientSessionId = new Map();
7
- // The value is omitted when two records are tied for freshest; a status line
8
- // must say UNKNOWN rather than choose one arbitrary route.
9
- const _freshestGatewayByClientSessionId = new Map();
10
- function removeClientIndex(clientSessionId, gatewaySessionId) {
11
- const entries = _ledgerByClientSessionId.get(clientSessionId);
12
- if (!entries)
13
- return;
14
- entries.delete(gatewaySessionId);
15
- if (entries.size === 0)
16
- _ledgerByClientSessionId.delete(clientSessionId);
17
- }
18
- function addClientIndex(clientSessionId, gatewaySessionId) {
19
- const entries = _ledgerByClientSessionId.get(clientSessionId) ?? new Set();
20
- entries.add(gatewaySessionId);
21
- _ledgerByClientSessionId.set(clientSessionId, entries);
22
- }
23
- function refreshFreshestClientIndex(clientSessionId) {
24
- const ids = _ledgerByClientSessionId.get(clientSessionId);
25
- if (!ids || ids.size === 0) {
26
- _freshestGatewayByClientSessionId.delete(clientSessionId);
27
- return;
28
- }
29
- let freshest;
30
- let tied = false;
31
- for (const id of ids) {
32
- const entry = _ledger.get(id);
33
- if (!entry)
34
- continue;
35
- if (!freshest || entry.updatedAt > freshest.updatedAt) {
36
- freshest = entry;
37
- tied = false;
38
- }
39
- else if (entry.updatedAt === freshest.updatedAt) {
40
- tied = true;
41
- }
42
- }
43
- _freshestGatewayByClientSessionId.set(clientSessionId, !freshest || tied ? undefined : freshest.gatewaySessionId);
44
- }
45
- function setLedgerEntry(entry) {
46
- _ledger.set(entry.gatewaySessionId, entry);
47
- refreshFreshestClientIndex(entry.clientSessionId);
48
- }
49
- function timestamp(now = new Date()) {
50
- return now.toISOString();
51
- }
52
- function routeFields(route) {
53
- if (!route)
54
- return {};
55
- return {
56
- ...(route.requestedModel ? { requestedModel: route.requestedModel } : {}),
57
- ...(route.catalogModelId ? { modelId: route.catalogModelId } : {}),
58
- ...(route.upstreamModel ? { upstreamModel: route.upstreamModel } : {}),
59
- routePolicy: route.routingPolicy,
60
- routeReason: route.routeReason,
61
- };
62
- }
63
- function existingRouteFields(entry) {
64
- if (!entry)
65
- return {};
66
- return {
67
- ...(entry.requestedModel ? { requestedModel: entry.requestedModel } : {}),
68
- ...(entry.modelId ? { modelId: entry.modelId } : {}),
69
- ...(entry.upstreamModel ? { upstreamModel: entry.upstreamModel } : {}),
70
- ...(entry.routePolicy ? { routePolicy: entry.routePolicy } : {}),
71
- ...(entry.routeReason ? { routeReason: entry.routeReason } : {}),
72
- };
73
- }
74
- export function upsertSessionLedger(input) {
75
- const now = timestamp(input.now);
76
- const existing = _ledger.get(input.gatewaySessionId);
77
- const workspaceId = input.workspaceId ?? existing?.workspaceId;
78
- const profile = input.profile ?? existing?.profile;
79
- const account = publicAccountDescriptor(input.account);
80
- const entry = {
81
- gatewaySessionId: input.gatewaySessionId,
82
- clientSessionId: input.clientSessionId ??
83
- existing?.clientSessionId ??
84
- input.gatewaySessionId,
85
- ...(workspaceId ? { workspaceId } : {}),
86
- ...(profile ? { profile } : {}),
87
- account,
88
- transport: upstreamTransportForAccount(input.account),
89
- state: existing?.state ?? "idle",
90
- // Acquiring (or re-acquiring) a gateway session only selects a possible
91
- // route. It is not evidence that a request using that route left the
92
- // gateway. Route fields are written exclusively by the dispatch lifecycle.
93
- ...existingRouteFields(existing),
94
- createdAt: existing?.createdAt ?? now,
95
- lastUsedAt: now,
96
- updatedAt: now,
97
- requestCount: existing?.requestCount ?? 0,
98
- inFlightRequests: existing?.inFlightRequests ?? 0,
99
- detailsAmbiguous: existing?.detailsAmbiguous ?? false,
100
- ...(existing?.lastRateLimit
101
- ? { lastRateLimit: existing.lastRateLimit }
102
- : {}),
103
- ...(existing?.lastFallback ? { lastFallback: existing.lastFallback } : {}),
104
- };
105
- _ledger.set(entry.gatewaySessionId, entry);
106
- if (existing && existing.clientSessionId !== entry.clientSessionId &&
107
- _ledgerByClientSessionId.has(existing.clientSessionId)) {
108
- removeClientIndex(existing.clientSessionId, entry.gatewaySessionId);
109
- }
110
- addClientIndex(entry.clientSessionId, entry.gatewaySessionId);
111
- refreshFreshestClientIndex(entry.clientSessionId);
112
- if (existing && existing.clientSessionId !== entry.clientSessionId) {
113
- refreshFreshestClientIndex(existing.clientSessionId);
114
- }
115
- return entry;
116
- }
117
- export function recordSessionRequest(gatewaySessionId, route, now = new Date()) {
118
- if (!gatewaySessionId)
119
- return undefined;
120
- const existing = _ledger.get(gatewaySessionId);
121
- if (!existing)
122
- return undefined;
123
- const withoutRoute = { ...existing };
124
- delete withoutRoute.requestedModel;
125
- delete withoutRoute.modelId;
126
- delete withoutRoute.upstreamModel;
127
- delete withoutRoute.routePolicy;
128
- delete withoutRoute.routeReason;
129
- delete withoutRoute.lastFallback;
130
- const detailsAmbiguous = existing.inFlightRequests > 0;
1
+ const ledger = new Map();
2
+ const byClientSession = new Map();
3
+ const plansByCandidate = new Map();
4
+ const unselectedAccount = (provider = "mesh") => ({
5
+ id: "unselected",
6
+ provider,
7
+ label: "unselected",
8
+ });
9
+ const accountFromDiagnostic = (diagnostic) => ({
10
+ id: diagnostic.diagnosticAccountRef,
11
+ provider: diagnostic.actualProviderId,
12
+ label: diagnostic.diagnosticAccountRef,
13
+ });
14
+ export function recordRoutePlan(session, input, plan, now = new Date()) {
15
+ const diagnostics = new Map(plan.diagnostics.map((value) => [value.candidateRef, value]));
16
+ const request = { session, input, plan, diagnostics };
17
+ for (const candidateRef of plan.candidateRefs)
18
+ plansByCandidate.set(candidateRef, request);
19
+ const at = now.toISOString();
20
+ const existing = ledger.get(session.sessionId);
21
+ const first = plan.diagnostics[0];
22
+ const detailsAmbiguous = (existing?.inFlightRequests ?? 0) > 0;
131
23
  const entry = {
132
- ...withoutRoute,
133
- ...(detailsAmbiguous ? {} : routeFields(route)),
134
- state: "active",
135
- lastUsedAt: timestamp(now),
136
- updatedAt: timestamp(now),
137
- requestCount: existing.requestCount + 1,
138
- inFlightRequests: existing.inFlightRequests + 1,
139
- detailsAmbiguous,
140
- };
141
- setLedgerEntry(entry);
142
- return entry;
143
- }
144
- export function recordSessionActive(gatewaySessionId, route, now = new Date()) {
145
- if (!gatewaySessionId)
146
- return undefined;
147
- const existing = _ledger.get(gatewaySessionId);
148
- if (!existing)
149
- return undefined;
150
- const entry = {
151
- ...existing,
152
- ...(existing.detailsAmbiguous ? {} : routeFields(route)),
153
- state: "active",
154
- lastUsedAt: timestamp(now),
155
- updatedAt: timestamp(now),
156
- };
157
- setLedgerEntry(entry);
158
- return entry;
159
- }
160
- export function recordSessionIdle(gatewaySessionId, route, now = new Date()) {
161
- if (!gatewaySessionId)
162
- return undefined;
163
- const existing = _ledger.get(gatewaySessionId);
164
- if (!existing)
165
- return undefined;
166
- const inFlightRequests = Math.max(0, existing.inFlightRequests - 1);
167
- const entry = {
168
- ...existing,
169
- ...(existing.detailsAmbiguous ? {} : routeFields(route)),
170
- state: inFlightRequests > 0 ? "active" : "idle",
171
- lastUsedAt: timestamp(now),
172
- updatedAt: timestamp(now),
173
- inFlightRequests,
174
- };
175
- setLedgerEntry(entry);
176
- return entry;
177
- }
178
- export function recordSessionFallback(gatewaySessionId, from, to, route, now = new Date()) {
179
- if (!gatewaySessionId)
180
- return undefined;
181
- const existing = _ledger.get(gatewaySessionId);
182
- if (!existing)
183
- return undefined;
184
- const at = timestamp(now);
185
- const entry = {
186
- ...existing,
187
- // The caller passes a route only after its first actual dispatch. A
188
- // rebind may then retain that already-observed route while it updates the
189
- // account, but cannot manufacture a new one.
190
- ...(existing.detailsAmbiguous || !route ? {} : routeFields(route)),
191
- account: publicAccountDescriptor(to),
192
- transport: upstreamTransportForAccount(to),
24
+ gatewaySessionId: session.sessionId,
25
+ clientSessionId: session.clientSessionId,
26
+ ...(session.workspaceId ? { workspaceId: session.workspaceId } : {}),
27
+ ...(session.profile ? { profile: session.profile } : {}),
28
+ account: detailsAmbiguous || !first
29
+ ? unselectedAccount()
30
+ : accountFromDiagnostic(first),
31
+ transport: detailsAmbiguous || !first ? "mesh" : first.actualTransportProviderId,
193
32
  state: "active",
33
+ ...(detailsAmbiguous ? {} : {
34
+ requestedModel: input.requestedModel,
35
+ ...(first ? {
36
+ modelId: first.actualModelId,
37
+ upstreamModel: first.actualModelId,
38
+ routeReason: first.reason,
39
+ } : {}),
40
+ routePolicy: plan.policy.strategy.kind,
41
+ }),
42
+ createdAt: existing?.createdAt ?? at,
194
43
  lastUsedAt: at,
195
44
  updatedAt: at,
196
- ...(existing.detailsAmbiguous
197
- ? {}
198
- : {
199
- lastFallback: {
200
- at,
201
- from: publicAccountDescriptor(from),
202
- to: publicAccountDescriptor(to),
203
- },
204
- }),
205
- };
206
- setLedgerEntry(entry);
207
- return entry;
208
- }
209
- export function recordSessionRateLimited(gatewaySessionId, account, options = {}) {
210
- if (!gatewaySessionId)
211
- return undefined;
212
- const existing = _ledger.get(gatewaySessionId);
213
- if (!existing)
214
- return undefined;
215
- const now = timestamp(options.now);
216
- const rateLimit = {
217
- at: now,
218
- account: publicAccountDescriptor(account),
219
- ...(options.retryAfterMs !== undefined
220
- ? { retryAfterMs: options.retryAfterMs }
221
- : {}),
222
- };
223
- const entry = {
224
- ...existing,
225
- ...(existing.detailsAmbiguous || !options.route
226
- ? {}
227
- : routeFields(options.route)),
228
- state: existing.inFlightRequests > 1 ? "active" : "rate-limited",
229
- lastUsedAt: now,
230
- updatedAt: now,
231
- lastRateLimit: rateLimit,
45
+ requestCount: (existing?.requestCount ?? 0) + 1,
46
+ inFlightRequests: (existing?.inFlightRequests ?? 0) + 1,
47
+ detailsAmbiguous,
48
+ ...(existing?.lastRateLimit ? { lastRateLimit: existing.lastRateLimit } : {}),
49
+ ...(existing?.lastFallback ? { lastFallback: existing.lastFallback } : {}),
232
50
  };
233
- setLedgerEntry(entry);
234
- return entry;
235
- }
236
- /** Complete a terminal 429 after fallback selection/rebind has failed. */
237
- export function recordSessionRateLimitComplete(gatewaySessionId, route, now = new Date()) {
238
- if (!gatewaySessionId)
239
- return undefined;
240
- const existing = _ledger.get(gatewaySessionId);
51
+ ledger.set(session.sessionId, entry);
52
+ byClientSession.set(session.clientSessionId, session.sessionId);
53
+ }
54
+ export function recordRouteSettlement(settlement, now = new Date()) {
55
+ const lastAttempt = settlement.attempts.at(-1);
56
+ const planned = lastAttempt ? plansByCandidate.get(lastAttempt.candidateRef) : undefined;
57
+ const sessionId = planned?.session.sessionId ?? settlement.cost.principalId;
58
+ const existing = ledger.get(sessionId);
241
59
  if (!existing)
242
- return undefined;
60
+ return;
61
+ const diagnostic = lastAttempt ? planned?.diagnostics.get(lastAttempt.candidateRef) : undefined;
62
+ const at = now.toISOString();
243
63
  const inFlightRequests = Math.max(0, existing.inFlightRequests - 1);
244
- const at = timestamp(now);
64
+ const rateLimited = lastAttempt?.outcome === "rate-limited";
65
+ const detailsAmbiguous = inFlightRequests > 0;
66
+ const account = diagnostic ? accountFromDiagnostic(diagnostic) : existing.account;
67
+ const firstAttempt = settlement.attempts[0];
68
+ const firstDiagnostic = firstAttempt
69
+ ? planned?.diagnostics.get(firstAttempt.candidateRef)
70
+ : undefined;
71
+ const fallback = firstDiagnostic && diagnostic
72
+ && firstDiagnostic.candidateRef !== diagnostic.candidateRef
73
+ ? {
74
+ at,
75
+ from: accountFromDiagnostic(firstDiagnostic),
76
+ to: account,
77
+ }
78
+ : undefined;
245
79
  const entry = {
246
80
  ...existing,
247
- ...(existing.detailsAmbiguous || !route ? {} : routeFields(route)),
248
- state: inFlightRequests > 0 ? "active" : "rate-limited",
81
+ account: detailsAmbiguous ? unselectedAccount() : account,
82
+ transport: detailsAmbiguous
83
+ ? "mesh"
84
+ : diagnostic?.actualTransportProviderId ?? existing.transport,
85
+ state: inFlightRequests > 0 ? "active" : rateLimited ? "rate-limited" : "idle",
86
+ ...(detailsAmbiguous ? {} : {
87
+ requestedModel: settlement.requestedModel,
88
+ ...(diagnostic ? {
89
+ modelId: diagnostic.actualModelId,
90
+ upstreamModel: diagnostic.actualModelId,
91
+ routeReason: diagnostic.reason,
92
+ } : {}),
93
+ }),
249
94
  lastUsedAt: at,
250
95
  updatedAt: at,
251
96
  inFlightRequests,
97
+ detailsAmbiguous,
98
+ ...(rateLimited ? {
99
+ lastRateLimit: { at, account },
100
+ } : {}),
101
+ ...(fallback ? { lastFallback: fallback } : {}),
252
102
  };
253
- setLedgerEntry(entry);
254
- return entry;
103
+ ledger.set(sessionId, entry);
104
+ if (planned) {
105
+ for (const candidateRef of planned.plan.candidateRefs)
106
+ plansByCandidate.delete(candidateRef);
107
+ }
255
108
  }
256
109
  export function listSessionLedger() {
257
- return [..._ledger.values()].sort((a, b) => a.createdAt.localeCompare(b.createdAt));
110
+ return [...ledger.values()].sort((a, b) => a.createdAt.localeCompare(b.createdAt));
258
111
  }
259
- export function getSessionLedgerEntry(gatewaySessionId) {
260
- return _ledger.get(gatewaySessionId);
112
+ export function getSessionLedgerEntry(sessionId) {
113
+ return ledger.get(sessionId);
261
114
  }
262
- /** O(1) lookup for the exact client/tmux session status endpoint. */
263
115
  export function getSessionLedgerEntryForClient(clientSessionId) {
264
- const gatewaySessionId = _freshestGatewayByClientSessionId.get(clientSessionId);
265
- return gatewaySessionId ? _ledger.get(gatewaySessionId) : undefined;
116
+ const sessionId = byClientSession.get(clientSessionId);
117
+ return sessionId ? ledger.get(sessionId) : undefined;
266
118
  }
267
119
  export function resetSessionLedger() {
268
- _ledger.clear();
269
- _ledgerByClientSessionId.clear();
270
- _freshestGatewayByClientSessionId.clear();
120
+ ledger.clear();
121
+ byClientSession.clear();
122
+ plansByCandidate.clear();
271
123
  }
272
124
  //# sourceMappingURL=session-ledger.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"session-ledger.js","sourceRoot":"","sources":["../../src/llm-gateway-runtime/session-ledger.ts"],"names":[],"mappings":"AACA,OAAO,EACL,uBAAuB,EACvB,2BAA2B,GAE5B,MAAM,eAAe,CAAC;AAqDvB,MAAM,OAAO,GAAG,IAAI,GAAG,EAA8B,CAAC;AACtD,wEAAwE;AACxE,6EAA6E;AAC7E,2CAA2C;AAC3C,MAAM,wBAAwB,GAAG,IAAI,GAAG,EAAuB,CAAC;AAChE,6EAA6E;AAC7E,2DAA2D;AAC3D,MAAM,iCAAiC,GAAG,IAAI,GAAG,EAA8B,CAAC;AAEhF,SAAS,iBAAiB,CAAC,eAAuB,EAAE,gBAAwB;IAC1E,MAAM,OAAO,GAAG,wBAAwB,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;IAC9D,IAAI,CAAC,OAAO;QAAE,OAAO;IACrB,OAAO,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;IACjC,IAAI,OAAO,CAAC,IAAI,KAAK,CAAC;QAAE,wBAAwB,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;AAC3E,CAAC;AAED,SAAS,cAAc,CAAC,eAAuB,EAAE,gBAAwB;IACvE,MAAM,OAAO,GAAG,wBAAwB,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,IAAI,GAAG,EAAU,CAAC;IACnF,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;IAC9B,wBAAwB,CAAC,GAAG,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;AACzD,CAAC;AAED,SAAS,0BAA0B,CAAC,eAAuB;IACzD,MAAM,GAAG,GAAG,wBAAwB,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;IAC1D,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;QAC3B,iCAAiC,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;QAC1D,OAAO;IACT,CAAC;IACD,IAAI,QAAwC,CAAC;IAC7C,IAAI,IAAI,GAAG,KAAK,CAAC;IACjB,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC;QACrB,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC9B,IAAI,CAAC,KAAK;YAAE,SAAS;QACrB,IAAI,CAAC,QAAQ,IAAI,KAAK,CAAC,SAAS,GAAG,QAAQ,CAAC,SAAS,EAAE,CAAC;YACtD,QAAQ,GAAG,KAAK,CAAC;YACjB,IAAI,GAAG,KAAK,CAAC;QACf,CAAC;aAAM,IAAI,KAAK,CAAC,SAAS,KAAK,QAAQ,CAAC,SAAS,EAAE,CAAC;YAClD,IAAI,GAAG,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IACD,iCAAiC,CAAC,GAAG,CACnC,eAAe,EACf,CAAC,QAAQ,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,gBAAgB,CAC1D,CAAC;AACJ,CAAC;AAED,SAAS,cAAc,CAAC,KAAyB;IAC/C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAC;IAC3C,0BAA0B,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;AACpD,CAAC;AAED,SAAS,SAAS,CAAC,GAAG,GAAG,IAAI,IAAI,EAAE;IACjC,OAAO,GAAG,CAAC,WAAW,EAAE,CAAC;AAC3B,CAAC;AAED,SAAS,WAAW,CAAC,KAAqB;IACxC,IAAI,CAAC,KAAK;QAAE,OAAO,EAAE,CAAC;IACtB,OAAO;QACL,GAAG,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,KAAK,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACzE,GAAG,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAClE,GAAG,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,KAAK,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACtE,WAAW,EAAE,KAAK,CAAC,aAAa;QAChC,WAAW,EAAE,KAAK,CAAC,WAAW;KAC/B,CAAC;AACJ,CAAC;AAED,SAAS,mBAAmB,CAC1B,KAAqC;IAErC,IAAI,CAAC,KAAK;QAAE,OAAO,EAAE,CAAC;IACtB,OAAO;QACL,GAAG,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,KAAK,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACzE,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACpD,GAAG,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,KAAK,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACtE,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAChE,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACjE,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,mBAAmB,CACjC,KAA+B;IAE/B,MAAM,GAAG,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACjC,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;IACrD,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,IAAI,QAAQ,EAAE,WAAW,CAAC;IAC/D,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,IAAI,QAAQ,EAAE,OAAO,CAAC;IACnD,MAAM,OAAO,GAAG,uBAAuB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACvD,MAAM,KAAK,GAAuB;QAChC,gBAAgB,EAAE,KAAK,CAAC,gBAAgB;QACxC,eAAe,EACb,KAAK,CAAC,eAAe;YACrB,QAAQ,EAAE,eAAe;YACzB,KAAK,CAAC,gBAAgB;QACxB,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACvC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/B,OAAO;QACP,SAAS,EAAE,2BAA2B,CAAC,KAAK,CAAC,OAAO,CAAC;QACrD,KAAK,EAAE,QAAQ,EAAE,KAAK,IAAI,MAAM;QAChC,wEAAwE;QACxE,qEAAqE;QACrE,2EAA2E;QAC3E,GAAG,mBAAmB,CAAC,QAAQ,CAAC;QAChC,SAAS,EAAE,QAAQ,EAAE,SAAS,IAAI,GAAG;QACrC,UAAU,EAAE,GAAG;QACf,SAAS,EAAE,GAAG;QACd,YAAY,EAAE,QAAQ,EAAE,YAAY,IAAI,CAAC;QACzC,gBAAgB,EAAE,QAAQ,EAAE,gBAAgB,IAAI,CAAC;QACjD,gBAAgB,EAAE,QAAQ,EAAE,gBAAgB,IAAI,KAAK;QACrD,GAAG,CAAC,QAAQ,EAAE,aAAa;YACzB,CAAC,CAAC,EAAE,aAAa,EAAE,QAAQ,CAAC,aAAa,EAAE;YAC3C,CAAC,CAAC,EAAE,CAAC;QACP,GAAG,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,QAAQ,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC3E,CAAC;IACF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAC;IAC3C,IAAI,QAAQ,IAAI,QAAQ,CAAC,eAAe,KAAK,KAAK,CAAC,eAAe;QAC9D,wBAAwB,CAAC,GAAG,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC;QAC3D,iBAAiB,CAAC,QAAQ,CAAC,eAAe,EAAE,KAAK,CAAC,gBAAgB,CAAC,CAAC;IACtE,CAAC;IACD,cAAc,CAAC,KAAK,CAAC,eAAe,EAAE,KAAK,CAAC,gBAAgB,CAAC,CAAC;IAC9D,0BAA0B,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;IAClD,IAAI,QAAQ,IAAI,QAAQ,CAAC,eAAe,KAAK,KAAK,CAAC,eAAe,EAAE,CAAC;QACnE,0BAA0B,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;IACvD,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,oBAAoB,CAClC,gBAAoC,EACpC,KAAqB,EACrB,GAAG,GAAG,IAAI,IAAI,EAAE;IAEhB,IAAI,CAAC,gBAAgB;QAAE,OAAO,SAAS,CAAC;IACxC,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;IAC/C,IAAI,CAAC,QAAQ;QAAE,OAAO,SAAS,CAAC;IAChC,MAAM,YAAY,GAAG,EAAE,GAAG,QAAQ,EAAE,CAAC;IACrC,OAAO,YAAY,CAAC,cAAc,CAAC;IACnC,OAAO,YAAY,CAAC,OAAO,CAAC;IAC5B,OAAO,YAAY,CAAC,aAAa,CAAC;IAClC,OAAO,YAAY,CAAC,WAAW,CAAC;IAChC,OAAO,YAAY,CAAC,WAAW,CAAC;IAChC,OAAO,YAAY,CAAC,YAAY,CAAC;IACjC,MAAM,gBAAgB,GAAG,QAAQ,CAAC,gBAAgB,GAAG,CAAC,CAAC;IACvD,MAAM,KAAK,GAAuB;QAChC,GAAG,YAAY;QACf,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAC/C,KAAK,EAAE,QAAQ;QACf,UAAU,EAAE,SAAS,CAAC,GAAG,CAAC;QAC1B,SAAS,EAAE,SAAS,CAAC,GAAG,CAAC;QACzB,YAAY,EAAE,QAAQ,CAAC,YAAY,GAAG,CAAC;QACvC,gBAAgB,EAAE,QAAQ,CAAC,gBAAgB,GAAG,CAAC;QAC/C,gBAAgB;KACjB,CAAC;IACF,cAAc,CAAC,KAAK,CAAC,CAAC;IACtB,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,mBAAmB,CACjC,gBAAoC,EACpC,KAAqB,EACrB,GAAG,GAAG,IAAI,IAAI,EAAE;IAEhB,IAAI,CAAC,gBAAgB;QAAE,OAAO,SAAS,CAAC;IACxC,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;IAC/C,IAAI,CAAC,QAAQ;QAAE,OAAO,SAAS,CAAC;IAChC,MAAM,KAAK,GAAuB;QAChC,GAAG,QAAQ;QACX,GAAG,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QACxD,KAAK,EAAE,QAAQ;QACf,UAAU,EAAE,SAAS,CAAC,GAAG,CAAC;QAC1B,SAAS,EAAE,SAAS,CAAC,GAAG,CAAC;KAC1B,CAAC;IACF,cAAc,CAAC,KAAK,CAAC,CAAC;IACtB,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,iBAAiB,CAC/B,gBAAoC,EACpC,KAAqB,EACrB,GAAG,GAAG,IAAI,IAAI,EAAE;IAEhB,IAAI,CAAC,gBAAgB;QAAE,OAAO,SAAS,CAAC;IACxC,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;IAC/C,IAAI,CAAC,QAAQ;QAAE,OAAO,SAAS,CAAC;IAChC,MAAM,gBAAgB,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC,gBAAgB,GAAG,CAAC,CAAC,CAAC;IACpE,MAAM,KAAK,GAAuB;QAChC,GAAG,QAAQ;QACX,GAAG,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QACxD,KAAK,EAAE,gBAAgB,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM;QAC/C,UAAU,EAAE,SAAS,CAAC,GAAG,CAAC;QAC1B,SAAS,EAAE,SAAS,CAAC,GAAG,CAAC;QACzB,gBAAgB;KACjB,CAAC;IACF,cAAc,CAAC,KAAK,CAAC,CAAC;IACtB,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,qBAAqB,CACnC,gBAAoC,EACpC,IAAuB,EACvB,EAAqB,EACrB,KAAqB,EACrB,GAAG,GAAG,IAAI,IAAI,EAAE;IAEhB,IAAI,CAAC,gBAAgB;QAAE,OAAO,SAAS,CAAC;IACxC,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;IAC/C,IAAI,CAAC,QAAQ;QAAE,OAAO,SAAS,CAAC;IAChC,MAAM,EAAE,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;IAC1B,MAAM,KAAK,GAAuB;QAChC,GAAG,QAAQ;QACX,oEAAoE;QACpE,0EAA0E;QAC1E,6CAA6C;QAC7C,GAAG,CAAC,QAAQ,CAAC,gBAAgB,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAClE,OAAO,EAAE,uBAAuB,CAAC,EAAE,CAAC;QACpC,SAAS,EAAE,2BAA2B,CAAC,EAAE,CAAC;QAC1C,KAAK,EAAE,QAAQ;QACf,UAAU,EAAE,EAAE;QACd,SAAS,EAAE,EAAE;QACb,GAAG,CAAC,QAAQ,CAAC,gBAAgB;YAC3B,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC;gBACE,YAAY,EAAE;oBACZ,EAAE;oBACF,IAAI,EAAE,uBAAuB,CAAC,IAAI,CAAC;oBACnC,EAAE,EAAE,uBAAuB,CAAC,EAAE,CAAC;iBAChC;aACF,CAAC;KACP,CAAC;IACF,cAAc,CAAC,KAAK,CAAC,CAAC;IACtB,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,wBAAwB,CACtC,gBAAoC,EACpC,OAA0B,EAC1B,UAII,EAAE;IAEN,IAAI,CAAC,gBAAgB;QAAE,OAAO,SAAS,CAAC;IACxC,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;IAC/C,IAAI,CAAC,QAAQ;QAAE,OAAO,SAAS,CAAC;IAChC,MAAM,GAAG,GAAG,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACnC,MAAM,SAAS,GAA6B;QAC1C,EAAE,EAAE,GAAG;QACP,OAAO,EAAE,uBAAuB,CAAC,OAAO,CAAC;QACzC,GAAG,CAAC,OAAO,CAAC,YAAY,KAAK,SAAS;YACpC,CAAC,CAAC,EAAE,YAAY,EAAE,OAAO,CAAC,YAAY,EAAE;YACxC,CAAC,CAAC,EAAE,CAAC;KACR,CAAC;IACF,MAAM,KAAK,GAAuB;QAChC,GAAG,QAAQ;QACX,GAAG,CAAC,QAAQ,CAAC,gBAAgB,IAAI,CAAC,OAAO,CAAC,KAAK;YAC7C,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAC/B,KAAK,EAAE,QAAQ,CAAC,gBAAgB,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,cAAc;QAChE,UAAU,EAAE,GAAG;QACf,SAAS,EAAE,GAAG;QACd,aAAa,EAAE,SAAS;KACzB,CAAC;IACF,cAAc,CAAC,KAAK,CAAC,CAAC;IACtB,OAAO,KAAK,CAAC;AACf,CAAC;AAED,0EAA0E;AAC1E,MAAM,UAAU,8BAA8B,CAC5C,gBAAoC,EACpC,KAAqB,EACrB,GAAG,GAAG,IAAI,IAAI,EAAE;IAEhB,IAAI,CAAC,gBAAgB;QAAE,OAAO,SAAS,CAAC;IACxC,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;IAC/C,IAAI,CAAC,QAAQ;QAAE,OAAO,SAAS,CAAC;IAChC,MAAM,gBAAgB,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC,gBAAgB,GAAG,CAAC,CAAC,CAAC;IACpE,MAAM,EAAE,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;IAC1B,MAAM,KAAK,GAAuB;QAChC,GAAG,QAAQ;QACX,GAAG,CAAC,QAAQ,CAAC,gBAAgB,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAClE,KAAK,EAAE,gBAAgB,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,cAAc;QACvD,UAAU,EAAE,EAAE;QACd,SAAS,EAAE,EAAE;QACb,gBAAgB;KACjB,CAAC;IACF,cAAc,CAAC,KAAK,CAAC,CAAC;IACtB,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,iBAAiB;IAC/B,OAAO,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CACzC,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,CACvC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,qBAAqB,CACnC,gBAAwB;IAExB,OAAO,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;AACvC,CAAC;AAED,qEAAqE;AACrE,MAAM,UAAU,8BAA8B,CAC5C,eAAuB;IAEvB,MAAM,gBAAgB,GAAG,iCAAiC,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;IAChF,OAAO,gBAAgB,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AACtE,CAAC;AAED,MAAM,UAAU,kBAAkB;IAChC,OAAO,CAAC,KAAK,EAAE,CAAC;IAChB,wBAAwB,CAAC,KAAK,EAAE,CAAC;IACjC,iCAAiC,CAAC,KAAK,EAAE,CAAC;AAC5C,CAAC"}
1
+ {"version":3,"file":"session-ledger.js","sourceRoot":"","sources":["../../src/llm-gateway-runtime/session-ledger.ts"],"names":[],"mappings":"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"}