@orion-agents/orion-code 0.2.2 → 0.3.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 (149) hide show
  1. package/CHANGELOG.md +40 -0
  2. package/README.md +73 -14
  3. package/README.zh-CN.md +63 -14
  4. package/bin/orion +15 -4
  5. package/dist/cli.js +51 -172
  6. package/dist/cli.js.map +1 -1
  7. package/dist/commands/model-command-handlers.d.ts +2 -2
  8. package/dist/commands/model-command-handlers.d.ts.map +1 -1
  9. package/dist/commands/model-command-handlers.js +113 -32
  10. package/dist/commands/model-command-handlers.js.map +1 -1
  11. package/dist/commands/session-command-handlers.d.ts.map +1 -1
  12. package/dist/commands/session-command-handlers.js +106 -15
  13. package/dist/commands/session-command-handlers.js.map +1 -1
  14. package/dist/commands/types.d.ts +13 -3
  15. package/dist/commands/types.d.ts.map +1 -1
  16. package/dist/commands/types.js +1 -1
  17. package/dist/commands/types.js.map +1 -1
  18. package/dist/index.d.ts +1 -1
  19. package/dist/index.js +1 -1
  20. package/dist/runtime/agent-loop.d.ts.map +1 -1
  21. package/dist/runtime/agent-loop.js +3 -3
  22. package/dist/runtime/agent-loop.js.map +1 -1
  23. package/dist/runtime/agent-runtime-controller.d.ts +32 -1
  24. package/dist/runtime/agent-runtime-controller.d.ts.map +1 -1
  25. package/dist/runtime/agent-runtime-controller.js +242 -27
  26. package/dist/runtime/agent-runtime-controller.js.map +1 -1
  27. package/dist/runtime/agent-runtime-runner.d.ts +2 -1
  28. package/dist/runtime/agent-runtime-runner.d.ts.map +1 -1
  29. package/dist/runtime/legacy-thread-materializer.d.ts +18 -0
  30. package/dist/runtime/legacy-thread-materializer.d.ts.map +1 -1
  31. package/dist/runtime/legacy-thread-materializer.js +27 -12
  32. package/dist/runtime/legacy-thread-materializer.js.map +1 -1
  33. package/dist/runtime/orion-runtime-v1.d.ts +2 -0
  34. package/dist/runtime/orion-runtime-v1.d.ts.map +1 -1
  35. package/dist/runtime/orion-runtime-v1.js +7 -1
  36. package/dist/runtime/orion-runtime-v1.js.map +1 -1
  37. package/dist/runtime/orion-session-runner.d.ts +7 -2
  38. package/dist/runtime/orion-session-runner.d.ts.map +1 -1
  39. package/dist/runtime/orion-session-runner.js +16 -6
  40. package/dist/runtime/orion-session-runner.js.map +1 -1
  41. package/dist/runtime/product-bootstrap.d.ts +22 -0
  42. package/dist/runtime/product-bootstrap.d.ts.map +1 -0
  43. package/dist/runtime/product-bootstrap.js +374 -0
  44. package/dist/runtime/product-bootstrap.js.map +1 -0
  45. package/dist/runtime/product-orion-runtime.d.ts +2 -1
  46. package/dist/runtime/product-orion-runtime.d.ts.map +1 -1
  47. package/dist/runtime/product-orion-runtime.js +83 -13
  48. package/dist/runtime/product-orion-runtime.js.map +1 -1
  49. package/dist/runtime/protocol/runtime-protocol-v1.d.ts +1 -1
  50. package/dist/runtime/protocol/runtime-protocol-v1.js +1 -1
  51. package/dist/runtime/protocol/runtime-protocol-v1.js.map +1 -1
  52. package/dist/runtime/release-receipts.d.ts +63 -3
  53. package/dist/runtime/release-receipts.d.ts.map +1 -1
  54. package/dist/runtime/release-receipts.js +297 -7
  55. package/dist/runtime/release-receipts.js.map +1 -1
  56. package/dist/runtime/step-snapshot.d.ts.map +1 -1
  57. package/dist/runtime/step-snapshot.js +22 -2
  58. package/dist/runtime/step-snapshot.js.map +1 -1
  59. package/dist/runtime/subagents/runtime-integration.d.ts +1 -1
  60. package/dist/runtime/subagents/runtime-integration.d.ts.map +1 -1
  61. package/dist/runtime/subagents/runtime-integration.js +5 -2
  62. package/dist/runtime/subagents/runtime-integration.js.map +1 -1
  63. package/dist/runtime/thread-event-store.d.ts +27 -0
  64. package/dist/runtime/thread-event-store.d.ts.map +1 -1
  65. package/dist/runtime/thread-event-store.js +119 -17
  66. package/dist/runtime/thread-event-store.js.map +1 -1
  67. package/dist/runtime/thread-projection.d.ts +10 -0
  68. package/dist/runtime/thread-projection.d.ts.map +1 -1
  69. package/dist/runtime/thread-projection.js +40 -0
  70. package/dist/runtime/thread-projection.js.map +1 -1
  71. package/dist/runtime/thread-runtime.d.ts +3 -1
  72. package/dist/runtime/thread-runtime.d.ts.map +1 -1
  73. package/dist/runtime/thread-runtime.js +6 -0
  74. package/dist/runtime/thread-runtime.js.map +1 -1
  75. package/dist/runtime/thread-session-view.d.ts +43 -0
  76. package/dist/runtime/thread-session-view.d.ts.map +1 -1
  77. package/dist/runtime/thread-session-view.js +85 -22
  78. package/dist/runtime/thread-session-view.js.map +1 -1
  79. package/dist/runtime/thread-ui-adapter.d.ts +2 -0
  80. package/dist/runtime/thread-ui-adapter.d.ts.map +1 -1
  81. package/dist/runtime/thread-ui-adapter.js +126 -4
  82. package/dist/runtime/thread-ui-adapter.js.map +1 -1
  83. package/dist/runtime/ui-events.d.ts +35 -0
  84. package/dist/runtime/ui-events.d.ts.map +1 -1
  85. package/dist/runtime/ui-events.js +1 -0
  86. package/dist/runtime/ui-events.js.map +1 -1
  87. package/dist/runtime/ui-view-model.d.ts +2 -0
  88. package/dist/runtime/ui-view-model.d.ts.map +1 -1
  89. package/dist/runtime/ui-view-model.js +7 -3
  90. package/dist/runtime/ui-view-model.js.map +1 -1
  91. package/dist/services/global-config.d.ts +25 -0
  92. package/dist/services/global-config.d.ts.map +1 -1
  93. package/dist/services/global-config.js +373 -5
  94. package/dist/services/global-config.js.map +1 -1
  95. package/dist/services/session-storage.d.ts +59 -0
  96. package/dist/services/session-storage.d.ts.map +1 -1
  97. package/dist/services/session-storage.js +303 -101
  98. package/dist/services/session-storage.js.map +1 -1
  99. package/dist/services/settings-coordinator.d.ts +174 -0
  100. package/dist/services/settings-coordinator.d.ts.map +1 -0
  101. package/dist/services/settings-coordinator.js +605 -0
  102. package/dist/services/settings-coordinator.js.map +1 -0
  103. package/dist/services/settings-document-repository.d.ts +138 -0
  104. package/dist/services/settings-document-repository.d.ts.map +1 -0
  105. package/dist/services/settings-document-repository.js +551 -0
  106. package/dist/services/settings-document-repository.js.map +1 -0
  107. package/dist/terminal-ui/launch.d.ts.map +1 -1
  108. package/dist/terminal-ui/launch.js +5 -0
  109. package/dist/terminal-ui/launch.js.map +1 -1
  110. package/dist/tui-ui/state.d.ts.map +1 -1
  111. package/dist/tui-ui/state.js +5 -0
  112. package/dist/tui-ui/state.js.map +1 -1
  113. package/dist/web/event-hub.d.ts +39 -0
  114. package/dist/web/event-hub.d.ts.map +1 -0
  115. package/dist/web/event-hub.js +263 -0
  116. package/dist/web/event-hub.js.map +1 -0
  117. package/dist/web/index.d.ts +6 -0
  118. package/dist/web/index.d.ts.map +1 -0
  119. package/dist/web/index.js +28 -0
  120. package/dist/web/index.js.map +1 -0
  121. package/dist/web/launch.d.ts +9 -0
  122. package/dist/web/launch.d.ts.map +1 -0
  123. package/dist/web/launch.js +64 -0
  124. package/dist/web/launch.js.map +1 -0
  125. package/dist/web/protocol.d.ts +346 -0
  126. package/dist/web/protocol.d.ts.map +1 -0
  127. package/dist/web/protocol.js +348 -0
  128. package/dist/web/protocol.js.map +1 -0
  129. package/dist/web/server.d.ts +20 -0
  130. package/dist/web/server.d.ts.map +1 -0
  131. package/dist/web/server.js +498 -0
  132. package/dist/web/server.js.map +1 -0
  133. package/dist/web/workbench-controller.d.ts +63 -0
  134. package/dist/web/workbench-controller.d.ts.map +1 -0
  135. package/dist/web/workbench-controller.js +774 -0
  136. package/dist/web/workbench-controller.js.map +1 -0
  137. package/dist/web-client/assets/index-BAEO71Gp.css +1 -0
  138. package/dist/web-client/assets/index-DSkFy7gM.js +13 -0
  139. package/dist/web-client/index.html +16 -0
  140. package/docs/architecture/v0.3.0-web-api.yaml +1309 -0
  141. package/docs/migration/v0.2.2-to-v0.3.0-settings.md +114 -0
  142. package/docs/migration/v0.2.2-to-v0.3.0.md +55 -0
  143. package/docs/orion.example.json +9 -2
  144. package/docs/plan/v0.3.0-node-runtime-compatibility-plan.md +57 -0
  145. package/docs/plan/v0.3.0-settings-integration-plan.md +740 -0
  146. package/docs/plan/v0.3.0-web-workbench-plan.md +325 -0
  147. package/docs/readme.md +12 -1
  148. package/npm-shrinkwrap.json +1779 -426
  149. package/package.json +33 -9
@@ -12,6 +12,7 @@ exports.runSubtaskBatch = void 0;
12
12
  exports.createSubagentBundleForTurn = createSubagentBundleForTurn;
13
13
  exports.createSubagentToolForTurn = createSubagentToolForTurn;
14
14
  exports.deriveRootLlmConfig = deriveRootLlmConfig;
15
+ const model_registry_1 = require("../../services/model-registry");
15
16
  const budget_1 = require("./budget");
16
17
  const provider_gate_1 = require("./provider-gate");
17
18
  const supervisor_1 = require("./supervisor");
@@ -83,9 +84,11 @@ function createSubagentToolForTurn(inputs) {
83
84
  return createSubagentBundleForTurn(inputs)?.tool ?? null;
84
85
  }
85
86
  /** Derive the root LLM config slice from the legacy runtime config. */
86
- function deriveRootLlmConfig(config) {
87
+ function deriveRootLlmConfig(config, selector) {
87
88
  const registry = config.modelRegistry;
88
- const profile = registry?.defaultProfile;
89
+ const profile = registry
90
+ ? ((selector ? (0, model_registry_1.lookupProfile)(registry, selector) : null) ?? registry.defaultProfile)
91
+ : undefined;
89
92
  const provider = profile ? registry?.providers.get(profile.provider) : undefined;
90
93
  if (profile && provider) {
91
94
  const apiKey = provider.apiKey.startsWith('$')
@@ -1 +1 @@
1
- {"version":3,"file":"runtime-integration.js","sourceRoot":"","sources":["../../../src/runtime/subagents/runtime-integration.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runtime-integration.js","sourceRoot":"","sources":["../../../src/runtime/subagents/runtime-integration.ts"],"names":[],"mappings":"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"}
@@ -18,6 +18,18 @@ export interface ThreadEventCommitV1 {
18
18
  readonly events: readonly RuntimeEventEnvelopeV1[];
19
19
  readonly projection: ThreadProjectionV1;
20
20
  }
21
+ export interface ThreadReadModelHeadV1 {
22
+ readonly projection: ThreadProjectionV1;
23
+ readonly lastEventTimestamp: number;
24
+ readonly lastRecordHash: string | null;
25
+ readonly log: {
26
+ readonly bytes: number;
27
+ readonly device: string;
28
+ readonly inode: string;
29
+ readonly mtimeNs: string;
30
+ readonly ctimeNs: string;
31
+ };
32
+ }
21
33
  export type ThreadEventStoreBoundaryV1 = 'before_log_write' | 'after_log_write' | 'after_log_flush' | 'before_projection_write' | 'after_projection_write';
22
34
  export interface ThreadEventStoreOptionsV1 {
23
35
  readonly maxLogBytes?: number;
@@ -29,6 +41,12 @@ export interface ThreadEventStoreOptionsV1 {
29
41
  readonly threadId: string;
30
42
  readonly lastSeq: number;
31
43
  }) => void;
44
+ /** Read-path observability used by performance tests and diagnostics. */
45
+ readonly onLogScan?: (context: {
46
+ readonly threadId: string;
47
+ readonly bytes: number;
48
+ readonly events: number;
49
+ }) => void;
32
50
  }
33
51
  export declare class ThreadEventStoreError extends Error {
34
52
  readonly code: 'ORION_THREAD_EVENT_CORRUPT' | 'ORION_THREAD_EVENT_LIMIT' | 'ORION_THREAD_EVENT_CURSOR' | 'ORION_THREAD_EVENT_IDENTITY' | 'ORION_THREAD_COMPACT_INVALID' | 'ORION_THREAD_COMPACT_CONFLICT';
@@ -54,7 +72,9 @@ export declare class ThreadEventStore {
54
72
  private readonly clock;
55
73
  private readonly idFactory;
56
74
  private readonly onBoundary?;
75
+ private readonly onLogScan?;
57
76
  private readonly commitListeners;
77
+ private cachedHead?;
58
78
  constructor(rootDir: string, threadId: string, options?: ThreadEventStoreOptionsV1);
59
79
  appendDurable<T extends RuntimeEventV1>(input: AppendRuntimeEventV1<T>): RuntimeEventEnvelopeV1<T>;
60
80
  appendDurableBatch(inputs: readonly AppendRuntimeEventV1[]): ThreadEventCommitV1;
@@ -65,6 +85,8 @@ export declare class ThreadEventStore {
65
85
  }>>(input: AppendRuntimeEventV1<T>): RuntimeEventEnvelopeV1<T>;
66
86
  replay(cursor?: number, limit?: number): ThreadEventReplayV1;
67
87
  getCursor(): number;
88
+ /** Capture the catalog read model and its exact verified log identity atomically. */
89
+ captureReadModelHead(): ThreadReadModelHeadV1;
68
90
  loadProjection(): ThreadProjectionV1;
69
91
  /**
70
92
  * Load exactly the history selected by the latest committed TurnCommit or,
@@ -90,6 +112,11 @@ export declare class ThreadEventStore {
90
112
  * state, then interrupts their active turn. This never guesses success.
91
113
  */
92
114
  recoverIncomplete(reason?: string): ThreadProjectionV1;
115
+ /**
116
+ * Return the last fully verified log head, rescanning only after the file
117
+ * identity changes. Callers already hold the Thread log lock.
118
+ */
119
+ private loadVerifiedHead;
93
120
  private withLogLock;
94
121
  private assertCompactCheckpoint;
95
122
  private boundary;
@@ -1 +1 @@
1
- {"version":3,"file":"thread-event-store.d.ts","sourceRoot":"","sources":["../../src/runtime/thread-event-store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"thread-event-store.d.ts","sourceRoot":"","sources":["../../src/runtime/thread-event-store.ts"],"names":[],"mappings":"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"}
@@ -44,6 +44,7 @@ class ThreadEventStore {
44
44
  this.clock = options.clock ?? Date.now;
45
45
  this.idFactory = options.idFactory ?? runtime_protocol_v1_1.createRuntimeId;
46
46
  this.onBoundary = options.onBoundary;
47
+ this.onLogScan = options.onLogScan;
47
48
  }
48
49
  appendDurable(input) {
49
50
  return this.appendDurableBatch([input]).events[0];
@@ -54,7 +55,8 @@ class ThreadEventStore {
54
55
  }
55
56
  const commit = this.withLogLock(() => {
56
57
  ensurePrivateDirectory(this.rootDir);
57
- const scan = scanThreadEventLog(this.logPath, this.threadId, this.maxLogBytes);
58
+ const head = this.loadVerifiedHead();
59
+ const { scan } = head;
58
60
  if (scan.discardedTailBytes > 0)
59
61
  (0, fs_1.truncateSync)(this.logPath, scan.safeByteLength);
60
62
  let seq = scan.events.length;
@@ -85,10 +87,12 @@ class ThreadEventStore {
85
87
  records.push({ version: 1, previousHash, hash, event });
86
88
  previousHash = hash;
87
89
  }
88
- // Validate the complete lifecycle before a byte becomes durable. A bad
89
- // duplicate terminal event must never poison the append-only fact log.
90
- const allEvents = [...scan.events, ...records.map(record => record.event)];
91
- const projection = (0, thread_projection_1.projectThreadEvents)(this.threadId, allEvents);
90
+ // Validate the new tail against the already verified projection before a
91
+ // byte becomes durable. Historical lifecycle facts were validated when
92
+ // cachedHead was established and are invalidated by any log fingerprint
93
+ // change, so append cost no longer grows with Session age.
94
+ const committedEvents = records.map(record => record.event);
95
+ const projection = (0, thread_projection_1.advanceThreadProjection)(head.projection, committedEvents);
92
96
  this.boundary('before_log_write', seq);
93
97
  appendRecordsAndFlush(this.logPath, records, () => this.boundary('after_log_write', seq));
94
98
  // appendRecordsAndFlush fsyncs before returning; this boundary is the
@@ -99,7 +103,19 @@ class ThreadEventStore {
99
103
  writeProjection(this.projectionPath, projection);
100
104
  fsyncDirectory(this.rootDir);
101
105
  this.boundary('after_projection_write', seq);
102
- return deepFreeze({ events: records.map(record => record.event), projection });
106
+ const nextScan = {
107
+ records: [...scan.records, ...records],
108
+ events: [...scan.events, ...committedEvents],
109
+ safeByteLength: (0, fs_1.statSync)(this.logPath).size,
110
+ discardedTailBytes: 0,
111
+ };
112
+ this.cachedHead = {
113
+ logFingerprint: fileFingerprint(this.logPath),
114
+ projectionFingerprint: fileFingerprint(this.projectionPath),
115
+ scan: nextScan,
116
+ projection,
117
+ };
118
+ return deepFreeze({ events: committedEvents, projection });
103
119
  });
104
120
  this.notifyCommitted(commit.events);
105
121
  return commit;
@@ -135,7 +151,7 @@ class ThreadEventStore {
135
151
  throw new ThreadEventStoreError('ORION_THREAD_EVENT_LIMIT', `Replay limit ${safeLimit} exceeds ${this.maxReplayEvents}`);
136
152
  }
137
153
  return this.withLogLock(() => {
138
- const scan = scanThreadEventLog(this.logPath, this.threadId, this.maxLogBytes);
154
+ const { scan } = this.loadVerifiedHead();
139
155
  const lastSeq = scan.events.length;
140
156
  if (cursor > lastSeq) {
141
157
  throw new ThreadEventStoreError('ORION_THREAD_EVENT_CURSOR', `Replay cursor ${cursor} is ahead of durable cursor ${lastSeq}`);
@@ -151,23 +167,61 @@ class ThreadEventStore {
151
167
  });
152
168
  }
153
169
  getCursor() {
154
- return this.withLogLock(() => scanThreadEventLog(this.logPath, this.threadId, this.maxLogBytes).events.length);
170
+ const cached = this.cachedHead;
171
+ if (cached && cached.logFingerprint === fileFingerprint(this.logPath)) {
172
+ return cached.projection.cursor;
173
+ }
174
+ return this.withLogLock(() => this.loadVerifiedHead().projection.cursor);
175
+ }
176
+ /** Capture the catalog read model and its exact verified log identity atomically. */
177
+ captureReadModelHead() {
178
+ return this.withLogLock(() => {
179
+ for (let attempt = 0; attempt < 3; attempt += 1) {
180
+ const head = this.loadVerifiedHead();
181
+ const identity = readFileIdentity(this.logPath);
182
+ if (identity.fingerprint !== head.logFingerprint) {
183
+ this.cachedHead = undefined;
184
+ continue;
185
+ }
186
+ return deepFreeze({
187
+ projection: head.projection,
188
+ lastEventTimestamp: head.scan.events.at(-1)?.timestamp ?? 0,
189
+ lastRecordHash: head.scan.records.at(-1)?.hash ?? null,
190
+ log: {
191
+ bytes: identity.bytes,
192
+ device: identity.device,
193
+ inode: identity.inode,
194
+ mtimeNs: identity.mtimeNs,
195
+ ctimeNs: identity.ctimeNs,
196
+ },
197
+ });
198
+ }
199
+ throw corrupt('Thread event log changed while capturing its read model', 0);
200
+ });
155
201
  }
156
202
  loadProjection() {
157
203
  return this.withLogLock(() => {
158
204
  ensurePrivateDirectory(this.rootDir);
159
- const scan = scanThreadEventLog(this.logPath, this.threadId, this.maxLogBytes);
160
- const replayed = (0, thread_projection_1.projectThreadEvents)(this.threadId, scan.events);
205
+ const head = this.loadVerifiedHead();
206
+ const replayed = head.projection;
207
+ const projectionFingerprint = fileFingerprint(this.projectionPath);
208
+ if (head.projectionFingerprint === projectionFingerprint)
209
+ return replayed;
161
210
  const cached = readProjection(this.projectionPath);
162
211
  if (cached &&
163
212
  cached.threadId === this.threadId &&
164
213
  cached.cursor === replayed.cursor &&
165
214
  cached.digest === replayed.digest &&
166
215
  (0, thread_projection_1.verifyThreadProjectionDigest)(cached)) {
167
- return deepFreeze(cached);
216
+ this.cachedHead = { ...head, projectionFingerprint };
217
+ return replayed;
168
218
  }
169
219
  writeProjection(this.projectionPath, replayed);
170
220
  fsyncDirectory(this.rootDir);
221
+ this.cachedHead = {
222
+ ...head,
223
+ projectionFingerprint: fileFingerprint(this.projectionPath),
224
+ };
171
225
  return replayed;
172
226
  });
173
227
  }
@@ -177,7 +231,7 @@ class ThreadEventStore {
177
231
  */
178
232
  loadAuthoritativeModelHistory() {
179
233
  return this.withLogLock(() => {
180
- const scan = scanThreadEventLog(this.logPath, this.threadId, this.maxLogBytes);
234
+ const { scan } = this.loadVerifiedHead();
181
235
  const state = readCompactState(this.compactStatePath, this.threadId);
182
236
  if (state)
183
237
  this.assertCompactCheckpoint(state);
@@ -194,8 +248,7 @@ class ThreadEventStore {
194
248
  captureCompactSource(turnId) {
195
249
  return this.withLogLock(() => {
196
250
  ensurePrivateDirectory(this.rootDir);
197
- const scan = scanThreadEventLog(this.logPath, this.threadId, this.maxLogBytes);
198
- const projection = (0, thread_projection_1.projectThreadEvents)(this.threadId, scan.events);
251
+ const { scan, projection } = this.loadVerifiedHead();
199
252
  assertActiveMaintenanceTurn(projection, turnId);
200
253
  const state = readCompactState(this.compactStatePath, this.threadId);
201
254
  if (state)
@@ -230,8 +283,7 @@ class ThreadEventStore {
230
283
  ensurePrivateDirectory(this.compactCheckpointsDir);
231
284
  validateCompactCommitInput(input, this.threadId);
232
285
  input.onBoundary('before_cas_recheck');
233
- const scan = scanThreadEventLog(this.logPath, this.threadId, this.maxLogBytes);
234
- const projection = (0, thread_projection_1.projectThreadEvents)(this.threadId, scan.events);
286
+ const { scan, projection } = this.loadVerifiedHead();
235
287
  const eventsAfterAnchor = scan.events.slice(input.expectedEventAnchor.cursor);
236
288
  const onlyQueuedFollowUps = eventsAfterAnchor.length > 0 &&
237
289
  eventsAfterAnchor.every(event => event.payload.type === 'turn.queued');
@@ -296,7 +348,7 @@ class ThreadEventStore {
296
348
  }
297
349
  listCompactEvents() {
298
350
  return this.withLogLock(() => {
299
- const scan = scanThreadEventLog(this.logPath, this.threadId, this.maxLogBytes);
351
+ const { scan } = this.loadVerifiedHead();
300
352
  return deepFreeze(scan.events.filter((event) => event.payload.type === 'compact.started' ||
301
353
  event.payload.type === 'compact.completed' ||
302
354
  event.payload.type === 'compact.failed'));
@@ -347,6 +399,26 @@ class ThreadEventStore {
347
399
  }
348
400
  return inputs.length > 0 ? this.appendDurableBatch(inputs).projection : projection;
349
401
  }
402
+ /**
403
+ * Return the last fully verified log head, rescanning only after the file
404
+ * identity changes. Callers already hold the Thread log lock.
405
+ */
406
+ loadVerifiedHead() {
407
+ ensurePrivateDirectory(this.rootDir);
408
+ const logFingerprint = fileFingerprint(this.logPath);
409
+ if (this.cachedHead?.logFingerprint === logFingerprint)
410
+ return this.cachedHead;
411
+ const scan = scanThreadEventLog(this.logPath, this.threadId, this.maxLogBytes);
412
+ this.onLogScan?.({
413
+ threadId: this.threadId,
414
+ bytes: scan.safeByteLength + scan.discardedTailBytes,
415
+ events: scan.events.length,
416
+ });
417
+ const projection = (0, thread_projection_1.projectThreadEvents)(this.threadId, scan.events);
418
+ const head = { logFingerprint, scan, projection };
419
+ this.cachedHead = head;
420
+ return head;
421
+ }
350
422
  withLogLock(operation) {
351
423
  ensurePrivateDirectory((0, path_1.dirname)(this.logPath));
352
424
  return (0, file_lock_1.withFileLockSync)(this.logPath, operation, { waitMs: this.lockWaitMs });
@@ -497,6 +569,36 @@ function readProjection(path) {
497
569
  return null;
498
570
  }
499
571
  }
572
+ function readFileIdentity(path) {
573
+ try {
574
+ const stats = (0, fs_1.statSync)(path, { bigint: true });
575
+ const device = stats.dev.toString();
576
+ const inode = stats.ino.toString();
577
+ const mtimeNs = stats.mtimeNs.toString();
578
+ const ctimeNs = stats.ctimeNs.toString();
579
+ return {
580
+ fingerprint: [device, inode, stats.size, mtimeNs, ctimeNs].join(':'),
581
+ bytes: Number(stats.size),
582
+ device,
583
+ inode,
584
+ mtimeNs,
585
+ ctimeNs,
586
+ };
587
+ }
588
+ catch {
589
+ return {
590
+ fingerprint: 'missing',
591
+ bytes: 0,
592
+ device: '0',
593
+ inode: '0',
594
+ mtimeNs: '0',
595
+ ctimeNs: '0',
596
+ };
597
+ }
598
+ }
599
+ function fileFingerprint(path) {
600
+ return readFileIdentity(path).fingerprint;
601
+ }
500
602
  function ensurePrivateDirectory(path) {
501
603
  (0, fs_1.mkdirSync)(path, { recursive: true, mode: 0o700 });
502
604
  }
@@ -1 +1 @@
1
- {"version":3,"file":"thread-event-store.js","sourceRoot":"","sources":["../../src/runtime/thread-event-store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"thread-event-store.js","sourceRoot":"","sources":["../../src/runtime/thread-event-store.ts"],"names":[],"mappings":";;;AAAA,2BAUY;AACZ,+BAAqC;AAErC,2DAA+D;AAC/D,qDAAyD;AACzD,oDAAgF;AAChF,wEAMwC;AACxC,2DAK6B;AA6H7B,MAAa,qBAAsB,SAAQ,KAAK;IAC9C,YACW,IAM0B,EACnC,OAAe,EACN,MAAe;QAExB,KAAK,CAAC,OAAO,CAAC,CAAC;QAVN,SAAI,GAAJ,IAAI,CAMsB;QAE1B,WAAM,GAAN,MAAM,CAAS;QAGxB,IAAI,CAAC,IAAI,GAAG,uBAAuB,CAAC;IACtC,CAAC;CACF;AAfD,sDAeC;AAED,MAAM,qBAAqB,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,CAAC;AAChD,MAAM,yBAAyB,GAAG,KAAM,CAAC;AACzC,MAAM,oBAAoB,GAAG,KAAM,CAAC;AAEpC;;;;;GAKG;AACH,MAAa,gBAAgB;IAe3B,YACW,OAAe,EACf,QAAgB,EACzB,UAAqC,EAAE;QAF9B,YAAO,GAAP,OAAO,CAAQ;QACf,aAAQ,GAAR,QAAQ,CAAQ;QALV,oBAAe,GAAG,IAAI,GAAG,EAAuD,CAAC;QAQhG,IAAI,CAAC,IAAA,iCAAW,EAAC,QAAQ,CAAC,EAAE,CAAC;YAC3B,MAAM,IAAI,qBAAqB,CAC7B,6BAA6B,EAC7B,6CAA6C,QAAQ,EAAE,CACxD,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,OAAO,GAAG,IAAA,WAAI,EAAC,OAAO,EAAE,GAAG,QAAQ,kBAAkB,CAAC,CAAC;QAC5D,IAAI,CAAC,cAAc,GAAG,IAAA,WAAI,EAAC,OAAO,EAAE,GAAG,QAAQ,qBAAqB,CAAC,CAAC;QACtE,IAAI,CAAC,gBAAgB,GAAG,IAAA,WAAI,EAAC,OAAO,EAAE,GAAG,QAAQ,wBAAwB,CAAC,CAAC;QAC3E,IAAI,CAAC,qBAAqB,GAAG,IAAA,WAAI,EAAC,OAAO,EAAE,GAAG,QAAQ,yBAAyB,CAAC,CAAC;QACjF,IAAI,CAAC,WAAW,GAAG,eAAe,CAAC,OAAO,CAAC,WAAW,IAAI,qBAAqB,EAAE,aAAa,CAAC,CAAC;QAChG,IAAI,CAAC,eAAe,GAAG,eAAe,CACpC,OAAO,CAAC,eAAe,IAAI,yBAAyB,EACpD,iBAAiB,CAClB,CAAC;QACF,IAAI,CAAC,UAAU,GAAG,eAAe,CAAC,OAAO,CAAC,UAAU,IAAI,oBAAoB,EAAE,YAAY,CAAC,CAAC;QAC5F,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,IAAI,CAAC,GAAG,CAAC;QACvC,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,qCAAe,CAAC;QACtD,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;QACrC,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;IACrC,CAAC;IAED,aAAa,CACX,KAA8B;QAE9B,OAAO,IAAI,CAAC,kBAAkB,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAA8B,CAAC;IACjF,CAAC;IAED,kBAAkB,CAAC,MAAuC;QACxD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxB,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,UAAU,EAAE,IAAI,CAAC,cAAc,EAAE,EAAE,CAAC;QAC3D,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE;YACnC,sBAAsB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACrC,MAAM,IAAI,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACrC,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;YACtB,IAAI,IAAI,CAAC,kBAAkB,GAAG,CAAC;gBAAE,IAAA,iBAAY,EAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;YAEjF,IAAI,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;YAC7B,IAAI,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,IAAI,IAAI,CAAC;YACrD,MAAM,OAAO,GAAgC,EAAE,CAAC;YAChD,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;YAElE,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;gBAC3B,GAAG,IAAI,CAAC,CAAC;gBACT,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;gBACjC,IAAI,CAAC,IAAA,iCAAW,EAAC,OAAO,CAAC,IAAI,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;oBACnD,MAAM,IAAI,qBAAqB,CAC7B,6BAA6B,EAC7B,2DAA2D,OAAO,EAAE,CACrE,CAAC;gBACJ,CAAC;gBACD,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;gBACtB,MAAM,KAAK,GAA2B;oBACpC,eAAe,EAAE,CAAC;oBAClB,OAAO;oBACP,GAAG;oBACH,QAAQ,EAAE,IAAI,CAAC,QAAQ;oBACvB,MAAM,EAAE,KAAK,CAAC,MAAM;oBACpB,MAAM,EAAE,KAAK,CAAC,MAAM;oBACpB,MAAM,EAAE,KAAK,CAAC,MAAM;oBACpB,UAAU,EAAE,SAAS;oBACrB,SAAS,EAAE,KAAK,CAAC,SAAS,IAAI,IAAI,CAAC,KAAK,EAAE;oBAC1C,OAAO,EAAE,KAAK,CAAC,OAAO;iBACvB,CAAC;gBACF,IAAA,kDAA4B,EAAC,KAAK,CAAC,CAAC;gBACpC,MAAM,IAAI,GAAG,IAAA,8BAAkB,EAAC,EAAE,OAAO,EAAE,CAAC,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,CAAC;gBACrE,OAAO,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,YAAY,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;gBACxD,YAAY,GAAG,IAAI,CAAC;YACtB,CAAC;YAED,yEAAyE;YACzE,uEAAuE;YACvE,wEAAwE;YACxE,2DAA2D;YAC3D,MAAM,eAAe,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC5D,MAAM,UAAU,GAAG,IAAA,2CAAuB,EAAC,IAAI,CAAC,UAAU,EAAE,eAAe,CAAC,CAAC;YAE7E,IAAI,CAAC,QAAQ,CAAC,kBAAkB,EAAE,GAAG,CAAC,CAAC;YACvC,qBAAqB,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,iBAAiB,EAAE,GAAG,CAAC,CAAC,CAAC;YAC1F,sEAAsE;YACtE,wEAAwE;YACxE,IAAI,CAAC,QAAQ,CAAC,iBAAiB,EAAE,GAAG,CAAC,CAAC;YACtC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAE7B,IAAI,CAAC,QAAQ,CAAC,yBAAyB,EAAE,GAAG,CAAC,CAAC;YAC9C,eAAe,CAAC,IAAI,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC;YACjD,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC7B,IAAI,CAAC,QAAQ,CAAC,wBAAwB,EAAE,GAAG,CAAC,CAAC;YAE7C,MAAM,QAAQ,GAAG;gBACf,OAAO,EAAE,CAAC,GAAG,IAAI,CAAC,OAAO,EAAE,GAAG,OAAO,CAAC;gBACtC,MAAM,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,eAAe,CAAC;gBAC5C,cAAc,EAAE,IAAA,aAAQ,EAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI;gBAC3C,kBAAkB,EAAE,CAAC;aACY,CAAC;YACpC,IAAI,CAAC,UAAU,GAAG;gBAChB,cAAc,EAAE,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC;gBAC7C,qBAAqB,EAAE,eAAe,CAAC,IAAI,CAAC,cAAc,CAAC;gBAC3D,IAAI,EAAE,QAAQ;gBACd,UAAU;aACX,CAAC;YAEF,OAAO,UAAU,CAAC,EAAE,MAAM,EAAE,eAAe,EAAE,UAAU,EAAE,CAAC,CAAC;QAC7D,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACpC,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,8EAA8E;IAC9E,kBAAkB,CAAC,QAA6D;QAC9E,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACnC,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACrD,CAAC;IAED,eAAe,CACb,KAA8B;QAE9B,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QAChC,MAAM,KAAK,GAA8B;YACvC,eAAe,EAAE,CAAC;YAClB,OAAO,EAAE,IAAI,CAAC,SAAS,EAAE;YACzB,GAAG,EAAE,MAAM;YACX,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,UAAU,EAAE,WAAW;YACvB,SAAS,EAAE,KAAK,CAAC,SAAS,IAAI,IAAI,CAAC,KAAK,EAAE;YAC1C,OAAO,EAAE,KAAK,CAAC,OAAO;SACvB,CAAC;QACF,IAAA,kDAA4B,EAAC,KAAK,CAAC,CAAC;QACpC,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC;IAC3B,CAAC;IAED,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,eAAe;QAC7C,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,MAAM,GAAG,CAAC,EAAE,CAAC;YAChD,MAAM,IAAI,qBAAqB,CAC7B,2BAA2B,EAC3B,mDAAmD,CACpD,CAAC;QACJ,CAAC;QACD,MAAM,SAAS,GAAG,eAAe,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC;QACzD,IAAI,SAAS,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;YACrC,MAAM,IAAI,qBAAqB,CAC7B,0BAA0B,EAC1B,gBAAgB,SAAS,YAAY,IAAI,CAAC,eAAe,EAAE,CAC5D,CAAC;QACJ,CAAC;QAED,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE;YAC3B,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACzC,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;YACnC,IAAI,MAAM,GAAG,OAAO,EAAE,CAAC;gBACrB,MAAM,IAAI,qBAAqB,CAC7B,2BAA2B,EAC3B,iBAAiB,MAAM,+BAA+B,OAAO,EAAE,CAChE,CAAC;YACJ,CAAC;YACD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;YAC7D,MAAM,UAAU,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,MAAM,CAAC;YAChD,OAAO,UAAU,CAAC;gBAChB,MAAM;gBACN,UAAU,EAAE,MAAM;gBAClB,UAAU;gBACV,OAAO,EAAE,UAAU,GAAG,OAAO;aAC9B,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED,SAAS;QACP,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC;QAC/B,IAAI,MAAM,IAAI,MAAM,CAAC,cAAc,KAAK,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YACtE,OAAO,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC;QAClC,CAAC;QACD,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IAC3E,CAAC;IAED,qFAAqF;IACrF,oBAAoB;QAClB,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE;YAC3B,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,GAAG,CAAC,EAAE,OAAO,IAAI,CAAC,EAAE,CAAC;gBAChD,MAAM,IAAI,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBACrC,MAAM,QAAQ,GAAG,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBAChD,IAAI,QAAQ,CAAC,WAAW,KAAK,IAAI,CAAC,cAAc,EAAE,CAAC;oBACjD,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;oBAC5B,SAAS;gBACX,CAAC;gBACD,OAAO,UAAU,CAAC;oBAChB,UAAU,EAAE,IAAI,CAAC,UAAU;oBAC3B,kBAAkB,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,SAAS,IAAI,CAAC;oBAC3D,cAAc,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,IAAI,IAAI;oBACtD,GAAG,EAAE;wBACH,KAAK,EAAE,QAAQ,CAAC,KAAK;wBACrB,MAAM,EAAE,QAAQ,CAAC,MAAM;wBACvB,KAAK,EAAE,QAAQ,CAAC,KAAK;wBACrB,OAAO,EAAE,QAAQ,CAAC,OAAO;wBACzB,OAAO,EAAE,QAAQ,CAAC,OAAO;qBAC1B;iBACF,CAAC,CAAC;YACL,CAAC;YACD,MAAM,OAAO,CAAC,yDAAyD,EAAE,CAAC,CAAC,CAAC;QAC9E,CAAC,CAAC,CAAC;IACL,CAAC;IAED,cAAc;QACZ,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE;YAC3B,sBAAsB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACrC,MAAM,IAAI,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACrC,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC;YACjC,MAAM,qBAAqB,GAAG,eAAe,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YACnE,IAAI,IAAI,CAAC,qBAAqB,KAAK,qBAAqB;gBAAE,OAAO,QAAQ,CAAC;YAC1E,MAAM,MAAM,GAAG,cAAc,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YACnD,IACE,MAAM;gBACN,MAAM,CAAC,QAAQ,KAAK,IAAI,CAAC,QAAQ;gBACjC,MAAM,CAAC,MAAM,KAAK,QAAQ,CAAC,MAAM;gBACjC,MAAM,CAAC,MAAM,KAAK,QAAQ,CAAC,MAAM;gBACjC,IAAA,gDAA4B,EAAC,MAAM,CAAC,EACpC,CAAC;gBACD,IAAI,CAAC,UAAU,GAAG,EAAE,GAAG,IAAI,EAAE,qBAAqB,EAAE,CAAC;gBACrD,OAAO,QAAQ,CAAC;YAClB,CAAC;YACD,eAAe,CAAC,IAAI,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;YAC/C,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC7B,IAAI,CAAC,UAAU,GAAG;gBAChB,GAAG,IAAI;gBACP,qBAAqB,EAAE,eAAe,CAAC,IAAI,CAAC,cAAc,CAAC;aAC5D,CAAC;YACF,OAAO,QAAQ,CAAC;QAClB,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;OAGG;IACH,6BAA6B;QAC3B,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE;YAC3B,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACzC,MAAM,KAAK,GAAG,gBAAgB,CAAC,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;YACrE,IAAI,KAAK;gBAAE,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC;YAC/C,MAAM,SAAS,GAAG,0BAA0B,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;YACzE,IAAI,CAAC,KAAK,IAAI,CAAC,SAAS;gBAAE,OAAO,SAAS,CAAC;YAC3C,OAAO,uBAAuB,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC;QAC5E,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;OAGG;IACH,oBAAoB,CAAC,MAAc;QACjC,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE;YAC3B,sBAAsB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACrC,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACrD,2BAA2B,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;YAChD,MAAM,KAAK,GAAG,gBAAgB,CAAC,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;YACrE,IAAI,KAAK;gBAAE,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC;YAC/C,MAAM,aAAa,GAAG,uBAAuB,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;YACjF,OAAO,UAAU,CAAC;gBAChB,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,eAAe,EAAE;oBACf,MAAM;oBACN,IAAI,EAAE,aAAa;oBACnB,MAAM,EAAE,IAAI;oBACZ,SAAS,EAAE,KAAK;iBACjB;gBACD,MAAM,EAAE,UAAU,CAAC,MAAM;gBACzB,gBAAgB,EAAE,UAAU,CAAC,MAAM;gBACnC,OAAO,EAAE,aAAa,CAAC,OAAO;gBAC9B,WAAW,EAAE,aAAa,CAAC,WAAW;gBACtC,mBAAmB,EAAE,aAAa,CAAC,mBAAmB;gBACtD,kBAAkB,EAAE,KAAK,EAAE,OAAO,CAAC,YAAY,IAAI,IAAI;aACxD,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;;;OAKG;IACH,0BAA0B,CACxB,KAAqC;QAErC,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE;YAC3B,sBAAsB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACrC,sBAAsB,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;YACnD,0BAA0B,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;YAEjD,KAAK,CAAC,UAAU,CAAC,oBAAoB,CAAC,CAAC;YACvC,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACrD,MAAM,iBAAiB,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;YAC9E,MAAM,mBAAmB,GACvB,iBAAiB,CAAC,MAAM,GAAG,CAAC;gBAC5B,iBAAiB,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,KAAK,aAAa,CAAC,CAAC;YACzE,IAAI,UAAU,CAAC,MAAM,KAAK,KAAK,CAAC,mBAAmB,CAAC,MAAM,IAAI,CAAC,mBAAmB,EAAE,CAAC;gBACnF,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,gBAAgB,EAAE,CAAC;YAC1D,CAAC;YACD,IACE,UAAU,CAAC,MAAM,KAAK,KAAK,CAAC,mBAAmB,CAAC,gBAAgB;gBAChE,CAAC,mBAAmB,EACpB,CAAC;gBACD,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,oBAAoB,EAAE,CAAC;YAC9D,CAAC;YACD,2BAA2B,CAAC,UAAU,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YAE7D,MAAM,aAAa,GAAG,gBAAgB,CAAC,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC7E,IAAI,aAAa;gBAAE,IAAI,CAAC,uBAAuB,CAAC,aAAa,CAAC,CAAC;YAC/D,MAAM,aAAa,GAAG,uBAAuB,CAAC,IAAI,CAAC,MAAM,EAAE,aAAa,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;YACzF,IAAI,aAAa,CAAC,aAAa,KAAK,KAAK,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC;gBAC/D,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,iBAAiB,EAAE,CAAC;YAC3D,CAAC;YACD,IAAI,aAAa,CAAC,iBAAiB,KAAK,KAAK,CAAC,MAAM,CAAC,iBAAiB,EAAE,CAAC;gBACvE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,sBAAsB,EAAE,CAAC;YAChE,CAAC;YACD,IAAI,aAAa,CAAC,mBAAmB,KAAK,KAAK,CAAC,MAAM,CAAC,mBAAmB,EAAE,CAAC;gBAC3E,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,+BAA+B,EAAE,CAAC;YACzE,CAAC;YACD,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,YAAY,IAAI,IAAI,CAAC,KAAK,KAAK,CAAC,MAAM,CAAC,kBAAkB,EAAE,CAAC;gBACtF,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,4BAA4B,EAAE,CAAC;YACtE,CAAC;YACD,KAAK,CAAC,UAAU,CAAC,mBAAmB,CAAC,CAAC;YAEtC,MAAM,UAAU,GAAG,6BAA6B,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;YACvE,MAAM,cAAc,GAAG,IAAA,WAAI,EACzB,IAAI,CAAC,qBAAqB,EAC1B,GAAG,KAAK,CAAC,SAAS,CAAC,YAAY,OAAO,CACvC,CAAC;YACF,MAAM,kBAAkB,GAAG,2BAA2B,CAAC,cAAc,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;YACtF,IAAI,kBAAkB,IAAI,kBAAkB,CAAC,MAAM,KAAK,UAAU,CAAC,MAAM,EAAE,CAAC;gBAC1E,MAAM,IAAI,qBAAqB,CAC7B,+BAA+B,EAC/B,sBAAsB,KAAK,CAAC,SAAS,CAAC,YAAY,kCAAkC,CACrF,CAAC;YACJ,CAAC;YACD,IAAI,CAAC,kBAAkB,EAAE,CAAC;gBACxB,IAAA,kCAAmB,EAAC,cAAc,EAAE,GAAG,IAAA,gCAAoB,EAAC,UAAU,CAAC,IAAI,EAAE;oBAC3E,IAAI,EAAE,KAAK;oBACX,KAAK,EAAE,IAAI;iBACZ,CAAC,CAAC;gBACH,cAAc,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;YAC7C,CAAC;YACD,KAAK,CAAC,UAAU,CAAC,wBAAwB,CAAC,CAAC;YAE3C,MAAM,KAAK,GAAG,wBAAwB,CACpC,IAAI,CAAC,QAAQ,EACb,KAAK,EACL,aAAa,CAAC,WAAW,EACzB,aAAa,CAAC,mBAAmB,CAClC,CAAC;YACF,IAAA,kCAAmB,EAAC,IAAI,CAAC,gBAAgB,EAAE,GAAG,IAAA,gCAAoB,EAAC,KAAK,CAAC,IAAI,EAAE;gBAC7E,IAAI,EAAE,KAAK;gBACX,KAAK,EAAE,IAAI;aACZ,CAAC,CAAC;YACH,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC7B,KAAK,CAAC,UAAU,CAAC,sBAAsB,CAAC,CAAC;YACzC,OAAO,UAAU,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;QAC5E,CAAC,CAAC,CAAC;IACL,CAAC;IAED,2BAA2B,CACzB,MAAc,EACd,SAAiB;QAEjB,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE;YAC3B,MAAM,KAAK,GAAG,gBAAgB,CAAC,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;YACrE,IAAI,CAAC,KAAK;gBAAE,OAAO,SAAS,CAAC;YAC7B,OAAO,KAAK,CAAC,MAAM,CAAC,MAAM,KAAK,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,KAAK,SAAS;gBAC/E,CAAC,CAAC,KAAK,CAAC,MAAM;gBACd,CAAC,CAAC,SAAS,CAAC;QAChB,CAAC,CAAC,CAAC;IACL,CAAC;IAED,iBAAiB;QACf,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE;YAC3B,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACzC,OAAO,UAAU,CACf,IAAI,CAAC,MAAM,CAAC,MAAM,CAChB,CAAC,KAAK,EAA0D,EAAE,CAChE,KAAK,CAAC,OAAO,CAAC,IAAI,KAAK,iBAAiB;gBACxC,KAAK,CAAC,OAAO,CAAC,IAAI,KAAK,mBAAmB;gBAC1C,KAAK,CAAC,OAAO,CAAC,IAAI,KAAK,gBAAgB,CAC1C,CACF,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;OAGG;IACH,iBAAiB,CAAC,MAAM,GAAG,0CAA0C;QACnE,MAAM,UAAU,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QACzC,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC;QAC5F,MAAM,MAAM,GAA2B,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC5D,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,OAAO,EAAE,EAAE,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,EAAE;SAC1D,CAAC,CAAC,CAAC;QACJ,IAAI,UAAU,CAAC,YAAY,EAAE,CAAC;YAC5B,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;YACjE,IAAI,MAAM,EAAE,QAAQ,KAAK,WAAW,EAAE,CAAC;gBACrC,MAAM,CAAC,IAAI,CAAC;oBACV,MAAM,EAAE,UAAU,CAAC,YAAY;oBAC/B,OAAO,EAAE;wBACP,IAAI,EAAE,gBAAgB;wBACtB,IAAI,EAAE,MAAM,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE;qBACtE;iBACF,CAAC,CAAC;YACL,CAAC;iBAAM,IAAI,MAAM,EAAE,QAAQ,KAAK,QAAQ,EAAE,CAAC;gBACzC,MAAM,CAAC,IAAI,CAAC;oBACV,MAAM,EAAE,UAAU,CAAC,YAAY;oBAC/B,OAAO,EAAE;wBACP,IAAI,EAAE,aAAa;wBACnB,IAAI,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,yCAAyC,EAAE;qBAC3E;iBACF,CAAC,CAAC;YACL,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,IAAI,CAAC;oBACV,MAAM,EAAE,UAAU,CAAC,YAAY;oBAC/B,OAAO,EAAE;wBACP,IAAI,EAAE,kBAAkB;wBACxB,IAAI,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,IAAI,MAAM,EAAE;qBAC3C;iBACF,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QACD,OAAO,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC;IACrF,CAAC;IAED;;;OAGG;IACK,gBAAgB;QACtB,sBAAsB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACrC,MAAM,cAAc,GAAG,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACrD,IAAI,IAAI,CAAC,UAAU,EAAE,cAAc,KAAK,cAAc;YAAE,OAAO,IAAI,CAAC,UAAU,CAAC;QAE/E,MAAM,IAAI,GAAG,kBAAkB,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QAC/E,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,KAAK,EAAE,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,kBAAkB;YACpD,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM;SAC3B,CAAC,CAAC;QACH,MAAM,UAAU,GAAG,IAAA,uCAAmB,EAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QACnE,MAAM,IAAI,GAAuB,EAAE,cAAc,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;QACtE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,WAAW,CAAI,SAAkB;QACvC,sBAAsB,CAAC,IAAA,cAAO,EAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;QAC9C,OAAO,IAAA,4BAAgB,EAAC,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;IAChF,CAAC;IAEO,uBAAuB,CAAC,KAA2B;QACzD,MAAM,cAAc,GAAG,IAAA,WAAI,EAAC,IAAI,CAAC,qBAAqB,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC,YAAY,OAAO,CAAC,CAAC;QAC9F,MAAM,UAAU,GAAG,2BAA2B,CAAC,cAAc,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC9E,IACE,CAAC,UAAU;YACX,UAAU,CAAC,YAAY,KAAK,KAAK,CAAC,OAAO,CAAC,YAAY;YACtD,UAAU,CAAC,MAAM,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM,CAAC,MAAM;YAChD,UAAU,CAAC,6BAA6B,KAAK,KAAK,CAAC,aAAa;YAChE,UAAU,CAAC,6BAA6B,KAAK,KAAK,CAAC,OAAO,CAAC,6BAA6B,EACxF,CAAC;YACD,MAAM,cAAc,CAAC,8DAA8D,CAAC,CAAC;QACvF,CAAC;IACH,CAAC;IAEO,QAAQ,CAAC,QAAoC,EAAE,OAAe;QACpE,IAAI,CAAC,UAAU,EAAE,CAAC,QAAQ,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;IACpE,CAAC;IAEO,eAAe,CAAC,MAAyC;QAC/D,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YAC5C,IAAI,CAAC;gBACH,QAAQ,CAAC,MAAM,CAAC,CAAC;YACnB,CAAC;YAAC,MAAM,CAAC;gBACP,uEAAuE;YACzE,CAAC;QACH,CAAC;IACH,CAAC;CACF;AA3fD,4CA2fC;AAED,SAAS,kBAAkB,CACzB,IAAY,EACZ,QAAgB,EAChB,WAAmB;IAEnB,IAAI,CAAC,IAAA,eAAU,EAAC,IAAI,CAAC,EAAE,CAAC;QACtB,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,cAAc,EAAE,CAAC,EAAE,kBAAkB,EAAE,CAAC,EAAE,CAAC;IAC/E,CAAC;IACD,MAAM,OAAO,GAAG,IAAA,iBAAY,EAAC,IAAI,CAAC,CAAC;IACnC,IAAI,OAAO,CAAC,UAAU,GAAG,WAAW,EAAE,CAAC;QACrC,MAAM,IAAI,qBAAqB,CAC7B,0BAA0B,EAC1B,4BAA4B,WAAW,QAAQ,CAChD,CAAC;IACJ,CAAC;IACD,MAAM,eAAe,GAAG,OAAO,CAAC,UAAU,KAAK,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,UAAU,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC;IAC7F,MAAM,IAAI,GAAG,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IACtC,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAClC,MAAM,IAAI,GAAG,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;IAC3D,IAAI,eAAe;QAAE,QAAQ,CAAC,GAAG,EAAE,CAAC;IAEpC,MAAM,OAAO,GAAgC,EAAE,CAAC;IAChD,MAAM,MAAM,GAA6B,EAAE,CAAC;IAC5C,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAU,CAAC;IACnC,IAAI,oBAAoB,GAAkB,IAAI,CAAC;IAC/C,IAAI,cAAc,GAAG,CAAC,CAAC;IAEvB,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;QAC5B,MAAM,SAAS,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;QACtD,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACtB,MAAM,OAAO,CAAC,2CAA2C,EAAE,cAAc,CAAC,CAAC;QAC7E,CAAC;QACD,IAAI,KAAc,CAAC;QACnB,IAAI,CAAC;YACH,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC3B,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,OAAO,CAAC,oDAAoD,EAAE,cAAc,CAAC,CAAC;QACtF,CAAC;QACD,MAAM,MAAM,GAAG,oBAAoB,CACjC,KAAK,EACL,QAAQ,EACR,OAAO,CAAC,MAAM,GAAG,CAAC,EAClB,oBAAoB,EACpB,cAAc,CACf,CAAC;QACF,IAAI,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;YACvC,MAAM,OAAO,CAAC,qBAAqB,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,cAAc,CAAC,CAAC;QAC7E,CAAC;QACD,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACnC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACrB,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC1B,oBAAoB,GAAG,MAAM,CAAC,IAAI,CAAC;QACnC,cAAc,IAAI,SAAS,CAAC;IAC9B,CAAC;IAED,OAAO;QACL,OAAO;QACP,MAAM;QACN,cAAc;QACd,kBAAkB,EAAE,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC;KACpD,CAAC;AACJ,CAAC;AAED,SAAS,oBAAoB,CAC3B,KAAc,EACd,QAAgB,EAChB,WAAmB,EACnB,oBAAmC,EACnC,MAAc;IAEd,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,OAAO,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;QACtE,MAAM,OAAO,CAAC,iCAAiC,EAAE,MAAM,CAAC,CAAC;IAC3D,CAAC;IACD,IAAI,CAAC;QACH,IAAA,kDAA4B,EAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC5C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,OAAO,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,uBAAuB,EAAE,MAAM,CAAC,CAAC;IAC1F,CAAC;IACD,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;IAC1B,IAAI,KAAK,CAAC,UAAU,KAAK,SAAS;QAAE,MAAM,OAAO,CAAC,sCAAsC,EAAE,MAAM,CAAC,CAAC;IAClG,IAAI,KAAK,CAAC,QAAQ,KAAK,QAAQ;QAC7B,MAAM,OAAO,CAAC,0CAA0C,EAAE,MAAM,CAAC,CAAC;IACpE,IAAI,KAAK,CAAC,GAAG,KAAK,WAAW,EAAE,CAAC;QAC9B,MAAM,OAAO,CAAC,wBAAwB,WAAW,WAAW,KAAK,CAAC,GAAG,EAAE,EAAE,MAAM,CAAC,CAAC;IACnF,CAAC;IACD,IAAI,KAAK,CAAC,YAAY,KAAK,oBAAoB,EAAE,CAAC;QAChD,MAAM,OAAO,CAAC,uCAAuC,EAAE,MAAM,CAAC,CAAC;IACjE,CAAC;IACD,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ;QAAE,MAAM,OAAO,CAAC,8BAA8B,EAAE,MAAM,CAAC,CAAC;IAC1F,MAAM,YAAY,GAAG,IAAA,8BAAkB,EAAC;QACtC,OAAO,EAAE,CAAC;QACV,YAAY,EAAE,oBAAoB;QAClC,KAAK;KACN,CAAC,CAAC;IACH,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY;QAAE,MAAM,OAAO,CAAC,4BAA4B,EAAE,MAAM,CAAC,CAAC;IAErF,OAAO;QACL,OAAO,EAAE,CAAC;QACV,YAAY,EAAE,oBAAoB;QAClC,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,KAAK;KACN,CAAC;AACJ,CAAC;AAED,SAAS,qBAAqB,CAC5B,IAAY,EACZ,OAA6C,EAC7C,UAAsB;IAEtB,MAAM,EAAE,GAAG,IAAA,aAAQ,EAAC,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;IACtC,IAAI,CAAC;QACH,KAAK,MAAM,MAAM,IAAI,OAAO;YAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,IAAA,gCAAoB,EAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;QAC7F,UAAU,EAAE,CAAC;QACb,IAAA,cAAS,EAAC,EAAE,CAAC,CAAC;IAChB,CAAC;YAAS,CAAC;QACT,IAAA,cAAS,EAAC,EAAE,CAAC,CAAC;IAChB,CAAC;AACH,CAAC;AAED,SAAS,QAAQ,CAAC,EAAU,EAAE,OAAe;IAC3C,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,OAAO,MAAM,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;QACnC,MAAM,OAAO,GAAG,IAAA,cAAS,EAAC,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,UAAU,GAAG,MAAM,CAAC,CAAC;QAC5E,IAAI,OAAO,IAAI,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;QAC3E,MAAM,IAAI,OAAO,CAAC;IACpB,CAAC;AACH,CAAC;AAED,SAAS,eAAe,CAAC,IAAY,EAAE,UAA8B;IACnE,IAAA,kCAAmB,EAAC,IAAI,EAAE,GAAG,IAAA,gCAAoB,EAAC,UAAU,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AACnG,CAAC;AAED,SAAS,cAAc,CAAC,IAAY;IAClC,IAAI,CAAC,IAAA,eAAU,EAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IACnC,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAA,iBAAY,EAAC,IAAI,EAAE,MAAM,CAAC,CAAuB,CAAC;QAC3E,OAAO,KAAK,EAAE,OAAO,KAAK,CAAC,IAAI,OAAO,KAAK,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;IACjF,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAiBD,SAAS,gBAAgB,CAAC,IAAY;IACpC,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,IAAA,aAAQ,EAAC,IAAI,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;QAC/C,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;QACpC,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;QACnC,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;QACzC,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;QACzC,OAAO;YACL,WAAW,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;YACpE,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC;YACzB,MAAM;YACN,KAAK;YACL,OAAO;YACP,OAAO;SACR,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO;YACL,WAAW,EAAE,SAAS;YACtB,KAAK,EAAE,CAAC;YACR,MAAM,EAAE,GAAG;YACX,KAAK,EAAE,GAAG;YACV,OAAO,EAAE,GAAG;YACZ,OAAO,EAAE,GAAG;SACb,CAAC;IACJ,CAAC;AACH,CAAC;AAED,SAAS,eAAe,CAAC,IAAY;IACnC,OAAO,gBAAgB,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC;AAC5C,CAAC;AAED,SAAS,sBAAsB,CAAC,IAAY;IAC1C,IAAA,cAAS,EAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;AACpD,CAAC;AAED,SAAS,cAAc,CAAC,IAAY;IAClC,IAAI,EAAsB,CAAC;IAC3B,IAAI,CAAC;QACH,EAAE,GAAG,IAAA,aAAQ,EAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QACzB,IAAA,cAAS,EAAC,EAAE,CAAC,CAAC;IAChB,CAAC;IAAC,MAAM,CAAC;QACP,yEAAyE;QACzE,oEAAoE;IACtE,CAAC;YAAS,CAAC;QACT,IAAI,EAAE,KAAK,SAAS;YAAE,IAAA,cAAS,EAAC,EAAE,CAAC,CAAC;IACtC,CAAC;AACH,CAAC;AAED,SAAS,2BAA2B,CAAC,UAA8B,EAAE,MAAc;IACjF,MAAM,IAAI,GAAG,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACtC,IACE,CAAC,IAAA,iCAAW,EAAC,MAAM,CAAC;QACpB,UAAU,CAAC,YAAY,KAAK,MAAM;QAClC,CAAC,IAAI;QACL,IAAI,CAAC,MAAM,KAAK,QAAQ;QACxB,IAAI,CAAC,IAAI,KAAK,aAAa,EAC3B,CAAC;QACD,MAAM,IAAI,qBAAqB,CAC7B,8BAA8B,EAC9B,oBAAoB,MAAM,oCAAoC,CAC/D,CAAC;IACJ,CAAC;AACH,CAAC;AAED,SAAS,uBAAuB,CAC9B,MAAyC,EACzC,YAAyC,EACzC,QAAgB;IAQhB,MAAM,SAAS,GAAG,0BAA0B,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC/D,IAAI,CAAC,SAAS,IAAI,CAAC,YAAY,EAAE,CAAC;QAChC,MAAM,IAAI,qBAAqB,CAC7B,8BAA8B,EAC9B,gDAAgD,CACjD,CAAC;IACJ,CAAC;IACD,MAAM,YAAY,GAChB,YAAY,IAAI,CAAC,CAAC,SAAS,IAAI,YAAY,CAAC,iBAAiB,GAAG,SAAS,CAAC,QAAQ,CAAC;QACjF,CAAC,CAAC,YAAY;QACd,CAAC,CAAC,SAAS,CAAC;IAChB,MAAM,gBAAgB,GACpB,SAAS,IAAI,CAAC,CAAC,YAAY,IAAI,SAAS,CAAC,QAAQ,GAAG,YAAY,CAAC,iBAAiB,CAAC;QACjF,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,YAAY,CAAC;IACnB,IAAI,CAAC,YAAY,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACvC,MAAM,IAAI,qBAAqB,CAC7B,8BAA8B,EAC9B,mDAAmD,CACpD,CAAC;IACJ,CAAC;IACD,OAAO,UAAU,CAAC;QAChB,OAAO,EAAE,eAAe,CAAC,YAAY,CAAC,OAAO,CAAC;QAC9C,aAAa,EAAE,YAAY,CAAC,aAAa;QACzC,WAAW,EAAE,eAAe,CAAC,gBAAgB,CAAC,WAAW,CAAC;QAC1D,iBAAiB,EAAE,gBAAgB,CAAC,iBAAiB;QACrD,mBAAmB,EAAE,gBAAgB,CAAC,mBAAmB;KAC1D,CAAC,CAAC;AACL,CAAC;AAED,SAAS,0BAA0B,CACjC,MAAyC,EACzC,QAAgB;IAEhB,MAAM,KAAK,GAAG,CAAC,GAAG,MAAM,CAAC;SACtB,OAAO,EAAE;SACT,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,KAAK,gBAAgB,CAAC,CAAC;IAClE,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,KAAK,gBAAgB;QAAE,OAAO,IAAI,CAAC;IACnE,IAAI,OAAgC,CAAC;IACrC,IAAI,CAAC;QACH,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAA4B,CAAC;IAC9E,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,cAAc,CAAC,wCAAwC,CAAC,CAAC;IACjE,CAAC;IACD,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,EAAE,GAAG,OAAO,CAAC;IACvC,IACE,OAAO,CAAC,OAAO,KAAK,CAAC;QACrB,OAAO,CAAC,QAAQ,KAAK,QAAQ;QAC7B,OAAO,MAAM,KAAK,QAAQ;QAC1B,IAAA,8BAAkB,EAAC,OAAO,CAAC,KAAK,MAAM;QACtC,OAAO,OAAO,CAAC,OAAO,KAAK,QAAQ;QACnC,OAAO,OAAO,CAAC,aAAa,KAAK,QAAQ;QACzC,OAAO,OAAO,CAAC,WAAW,KAAK,QAAQ;QACvC,OAAO,OAAO,CAAC,iBAAiB,KAAK,QAAQ;QAC7C,CAAC,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,mBAAmB,CAAC;QACjD,OAAO,CAAC,mBAA8B,GAAG,CAAC,EAC3C,CAAC;QACD,MAAM,cAAc,CAAC,uDAAuD,CAAC,CAAC;IAChF,CAAC;IACD,IAAI,OAAgB,CAAC;IACrB,IAAI,WAAoB,CAAC;IACzB,IAAI,CAAC;QACH,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACtC,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IAChD,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,cAAc,CAAC,uDAAuD,CAAC,CAAC;IAChF,CAAC;IACD,IACE,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;QACvB,IAAA,8BAAkB,EAAC,OAAO,CAAC,KAAK,OAAO,CAAC,aAAa;QACrD,IAAA,8BAAkB,EAAC,WAAW,CAAC,KAAK,OAAO,CAAC,iBAAiB,EAC7D,CAAC;QACD,MAAM,cAAc,CAAC,oDAAoD,CAAC,CAAC;IAC7E,CAAC;IACD,OAAO,UAAU,CAAC;QAChB,QAAQ,EAAE,KAAK,CAAC,GAAG;QACnB,OAAO,EAAE,eAAe,CAAC,OAAO,CAAC;QACjC,aAAa,EAAE,OAAO,CAAC,aAAa;QACpC,WAAW,EAAE,eAAe,CAAC,WAAW,CAAC;QACzC,iBAAiB,EAAE,OAAO,CAAC,iBAAiB;QAC5C,mBAAmB,EAAE,OAAO,CAAC,mBAA6B;KAC3D,CAAC,CAAC;AACL,CAAC;AAED,SAAS,0BAA0B,CAAC,KAAqC,EAAE,QAAgB;IACzF,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;IAC5B,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,EAAE,GAAG,MAAM,CAAC;IACtC,IACE,MAAM,CAAC,OAAO,KAAK,CAAC;QACpB,MAAM,CAAC,QAAQ,KAAK,QAAQ;QAC5B,MAAM,CAAC,QAAQ,KAAK,KAAK,CAAC,MAAM,CAAC,QAAQ;QACzC,MAAM,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM,CAAC,MAAM;QACrC,MAAM,CAAC,MAAM,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM,CAAC,MAAM;QAC5C,MAAM,CAAC,YAAY,CAAC,MAAM,KAAK,KAAK,CAAC,mBAAmB,CAAC,MAAM;QAC/D,MAAM,CAAC,YAAY,CAAC,gBAAgB,KAAK,KAAK,CAAC,mBAAmB,CAAC,gBAAgB;QACnF,MAAM,CAAC,YAAY,KAAK,KAAK,CAAC,SAAS,CAAC,YAAY;QACpD,MAAM,CAAC,gBAAgB,KAAK,IAAA,8BAAkB,EAAC,KAAK,CAAC,SAAS,CAAC,UAAU,CAAC;QAC1E,MAAM,CAAC,OAAO,CAAC,6BAA6B;YAC1C,IAAA,8BAAkB,EAAC,KAAK,CAAC,SAAS,CAAC,mBAAmB,CAAC;QACzD,IAAA,8BAAkB,EAAC,OAAO,CAAC,KAAK,MAAM;QACtC,CAAC,IAAA,iCAAW,EAAC,MAAM,CAAC,aAAa,CAAC;QAClC,CAAC,IAAA,iCAAW,EAAC,MAAM,CAAC,YAAY,CAAC,EACjC,CAAC;QACD,MAAM,cAAc,CAAC,6CAA6C,CAAC,CAAC;IACtE,CAAC;IACD,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,GAAG,cAAc,EAAE,GAAG,MAAM,CAAC,OAAO,CAAC;IACpE,IACE,MAAM,CAAC,OAAO,CAAC,OAAO,KAAK,CAAC;QAC5B,MAAM,CAAC,OAAO,CAAC,YAAY,KAAK,MAAM,CAAC,YAAY;QACnD,MAAM,CAAC,OAAO,CAAC,aAAa,KAAK,MAAM,CAAC,aAAa;QACrD,MAAM,CAAC,OAAO,CAAC,mBAAmB,KAAK,MAAM,CAAC,MAAM,CAAC,MAAM;QAC3D,IAAA,8BAAkB,EAAC,cAAc,CAAC,KAAK,aAAa,EACpD,CAAC;QACD,MAAM,cAAc,CAAC,2CAA2C,CAAC,CAAC;IACpE,CAAC;AACH,CAAC;AAED,SAAS,6BAA6B,CACpC,QAAgB,EAChB,KAAqC;IAErC,MAAM,OAAO,GAAG;QACd,OAAO,EAAE,CAAU;QACnB,QAAQ;QACR,YAAY,EAAE,KAAK,CAAC,SAAS,CAAC,YAAY;QAC1C,UAAU,EAAE,eAAe,CAAC,KAAK,CAAC,SAAS,CAAC,UAAU,CAAC;QACvD,gBAAgB,EAAE,KAAK,CAAC,MAAM,CAAC,gBAAgB;QAC/C,mBAAmB,EAAE,eAAe,CAAC,KAAK,CAAC,SAAS,CAAC,mBAAmB,CAAC;QACzE,6BAA6B,EAAE,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,6BAA6B;QACjF,MAAM,EAAE,eAAe,CAAC,KAAK,CAAC,MAAM,CAAC;KACtC,CAAC;IACF,OAAO,UAAU,CAAC,EAAE,GAAG,OAAO,EAAE,MAAM,EAAE,IAAA,8BAAkB,EAAC,OAAO,CAAC,EAAE,CAAC,CAAC;AACzE,CAAC;AAED,SAAS,wBAAwB,CAC/B,QAAgB,EAChB,KAAqC,EACrC,WAAoB,EACpB,mBAA2B;IAE3B,MAAM,OAAO,GAAG,eAAe,CAAC,KAAK,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAC;IACrE,MAAM,IAAI,GAAG,eAAe,CAAC,WAAW,CAAC,CAAC;IAC1C,MAAM,OAAO,GAAG;QACd,OAAO,EAAE,CAAU;QACnB,QAAQ;QACR,iBAAiB,EAAE,KAAK,CAAC,mBAAmB,CAAC,MAAM;QACnD,OAAO,EAAE,eAAe,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC;QAC9C,OAAO;QACP,aAAa,EAAE,IAAA,8BAAkB,EAAC,OAAO,CAAC;QAC1C,WAAW,EAAE,IAAI;QACjB,iBAAiB,EAAE,IAAA,8BAAkB,EAAC,IAAI,CAAC;QAC3C,mBAAmB;QACnB,MAAM,EAAE,eAAe,CAAC,KAAK,CAAC,MAAM,CAAC;KACtC,CAAC;IACF,OAAO,UAAU,CAAC,EAAE,GAAG,OAAO,EAAE,MAAM,EAAE,IAAA,8BAAkB,EAAC,OAAO,CAAC,EAAE,CAAC,CAAC;AACzE,CAAC;AAED,SAAS,gBAAgB,CAAC,IAAY,EAAE,QAAgB;IACtD,IAAI,CAAC,IAAA,eAAU,EAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IACnC,IAAI,KAA2B,CAAC;IAChC,IAAI,CAAC;QACH,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAA,iBAAY,EAAC,IAAI,EAAE,MAAM,CAAC,CAAyB,CAAC;IACzE,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,cAAc,CAAC,iCAAiC,CAAC,CAAC;IAC1D,CAAC;IACD,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,EAAE,GAAG,KAAK,CAAC;IACrC,IACE,KAAK,CAAC,OAAO,KAAK,CAAC;QACnB,KAAK,CAAC,QAAQ,KAAK,QAAQ;QAC3B,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,iBAAiB,CAAC;QAC9C,KAAK,CAAC,iBAAiB,GAAG,CAAC;QAC3B,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC;QAC7B,IAAA,8BAAkB,EAAC,KAAK,CAAC,OAAO,CAAC,KAAK,KAAK,CAAC,aAAa;QACzD,IAAA,8BAAkB,EAAC,KAAK,CAAC,WAAW,CAAC,KAAK,KAAK,CAAC,iBAAiB;QACjE,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,mBAAmB,CAAC;QAChD,KAAK,CAAC,mBAAmB,GAAG,CAAC;QAC7B,IAAA,8BAAkB,EAAC,OAAO,CAAC,KAAK,MAAM;QACtC,KAAK,CAAC,MAAM,EAAE,MAAM,KAAK,SAAS;QAClC,KAAK,CAAC,OAAO,EAAE,MAAM,KAAK,SAAS;QACnC,KAAK,CAAC,MAAM,CAAC,MAAM,KAAK,IAAA,8BAAkB,EAAC,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACrE,KAAK,CAAC,OAAO,CAAC,MAAM,KAAK,IAAA,8BAAkB,EAAC,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACvE,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,KAAK,KAAK,CAAC,OAAO,CAAC,MAAM,EACpD,CAAC;QACD,MAAM,cAAc,CAAC,2CAA2C,CAAC,CAAC;IACpE,CAAC;IACD,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC;AAC3B,CAAC;AAED,SAAS,2BAA2B,CAClC,IAAY,EACZ,QAAgB;IAEhB,IAAI,CAAC,IAAA,eAAU,EAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IACnC,IAAI,KAAgC,CAAC;IACrC,IAAI,CAAC;QACH,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAA,iBAAY,EAAC,IAAI,EAAE,MAAM,CAAC,CAA8B,CAAC;IAC9E,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,cAAc,CAAC,sCAAsC,CAAC,CAAC;IAC/D,CAAC;IACD,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,EAAE,GAAG,KAAK,CAAC;IACrC,IACE,KAAK,CAAC,OAAO,KAAK,CAAC;QACnB,KAAK,CAAC,QAAQ,KAAK,QAAQ;QAC3B,CAAC,IAAA,iCAAW,EAAC,KAAK,CAAC,YAAY,CAAC;QAChC,IAAA,8BAAkB,EAAC,KAAK,CAAC,UAAU,CAAC,KAAK,KAAK,CAAC,gBAAgB;QAC/D,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,mBAAmB,CAAC;QACzC,IAAA,8BAAkB,EAAC,KAAK,CAAC,mBAAmB,CAAC,KAAK,KAAK,CAAC,6BAA6B;QACrF,IAAA,8BAAkB,EAAC,OAAO,CAAC,KAAK,MAAM,EACtC,CAAC;QACD,MAAM,cAAc,CAAC,gDAAgD,CAAC,CAAC;IACzE,CAAC;IACD,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC;AAC3B,CAAC;AAED,SAAS,WAAW,CAAwC,KAAQ;IAClE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,EAAE,GAAG,KAAK,CAAC;IAC9C,KAAK,OAAO,CAAC;IACb,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,cAAc,CAAC,OAAe;IACrC,OAAO,IAAI,qBAAqB,CAAC,8BAA8B,EAAE,OAAO,CAAC,CAAC;AAC5E,CAAC;AAED,SAAS,eAAe,CAAC,KAAa,EAAE,IAAY;IAClD,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;QAC/C,MAAM,IAAI,qBAAqB,CAC7B,0BAA0B,EAC1B,GAAG,IAAI,kCAAkC,CAC1C,CAAC;IACJ,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,OAAO,CAAC,OAAe,EAAE,MAAc;IAC9C,OAAO,IAAI,qBAAqB,CAAC,4BAA4B,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;AAClF,CAAC;AAED,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC9E,CAAC;AAED,SAAS,UAAU,CAAI,KAAQ;IAC7B,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACxF,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACrB,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC,KAAgC,CAAC;QAAE,UAAU,CAAC,KAAK,CAAC,CAAC;IACvF,OAAO,KAAK,CAAC;AACf,CAAC"}
@@ -85,6 +85,16 @@ export declare class ThreadProjectionInvariantError extends Error {
85
85
  constructor(message: string, seq: number, eventType: RuntimeEventTypeV1);
86
86
  }
87
87
  export declare function projectThreadEvents(threadId: string, events: readonly RuntimeEventEnvelopeV1[]): ThreadProjectionV1;
88
+ /**
89
+ * Advance an already verified projection with a contiguous durable event tail.
90
+ *
91
+ * ThreadEventStore uses this after it has verified that the underlying log head
92
+ * still matches its in-process cache. Re-projecting thousands of historical
93
+ * facts for every append made streaming latency grow with the lifetime of a
94
+ * Session; cloning the bounded projection and applying only the new tail keeps
95
+ * the same invariants without re-reading old facts.
96
+ */
97
+ export declare function advanceThreadProjection(projection: ThreadProjectionV1, events: readonly RuntimeEventEnvelopeV1[]): ThreadProjectionV1;
88
98
  export declare function applyThreadEvent(state: MutableThreadProjectionV1, event: RuntimeEventEnvelopeV1): void;
89
99
  export declare function verifyThreadProjectionDigest(projection: ThreadProjectionV1): boolean;
90
100
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"thread-projection.d.ts","sourceRoot":"","sources":["../../src/runtime/thread-projection.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"thread-projection.d.ts","sourceRoot":"","sources":["../../src/runtime/thread-projection.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ThreadProjectionInvariantError = void 0;
4
4
  exports.projectThreadEvents = projectThreadEvents;
5
+ exports.advanceThreadProjection = advanceThreadProjection;
5
6
  exports.applyThreadEvent = applyThreadEvent;
6
7
  exports.verifyThreadProjectionDigest = verifyThreadProjectionDigest;
7
8
  const canonical_1 = require("./protocol/canonical");
@@ -32,6 +33,45 @@ function projectThreadEvents(threadId, events) {
32
33
  applyThreadEvent(state, event);
33
34
  return freezeProjection(state);
34
35
  }
36
+ /**
37
+ * Advance an already verified projection with a contiguous durable event tail.
38
+ *
39
+ * ThreadEventStore uses this after it has verified that the underlying log head
40
+ * still matches its in-process cache. Re-projecting thousands of historical
41
+ * facts for every append made streaming latency grow with the lifetime of a
42
+ * Session; cloning the bounded projection and applying only the new tail keeps
43
+ * the same invariants without re-reading old facts.
44
+ */
45
+ function advanceThreadProjection(projection, events) {
46
+ if (!verifyThreadProjectionDigest(projection)) {
47
+ throw new Error('Cannot advance a Thread projection with an invalid digest');
48
+ }
49
+ if (events.length === 0)
50
+ return projection;
51
+ const state = {
52
+ version: 1,
53
+ threadId: projection.threadId,
54
+ cursor: projection.cursor,
55
+ status: projection.status,
56
+ ...(projection.activeTurnId ? { activeTurnId: projection.activeTurnId } : {}),
57
+ turns: Object.fromEntries(Object.entries(projection.turns).map(([id, turn]) => [
58
+ id,
59
+ {
60
+ ...turn,
61
+ itemIds: [...turn.itemIds],
62
+ steeringItemIds: [...turn.steeringItemIds],
63
+ },
64
+ ])),
65
+ items: Object.fromEntries(Object.entries(projection.items).map(([id, item]) => [id, { ...item }])),
66
+ queue: projection.queue.map(item => ({ ...item })),
67
+ stepSnapshotDigests: [...projection.stepSnapshotDigests],
68
+ capabilityReceiptDigests: [...projection.capabilityReceiptDigests],
69
+ toolInvocationIds: [...projection.toolInvocationIds],
70
+ };
71
+ for (const event of events)
72
+ applyThreadEvent(state, event);
73
+ return freezeProjection(state);
74
+ }
35
75
  function applyThreadEvent(state, event) {
36
76
  const type = event.payload.type;
37
77
  if (event.durability !== 'durable') {