@sumicom/quicksave 0.8.4 → 0.8.6

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 (47) hide show
  1. package/README.md +31 -93
  2. package/dist/ai/cardBuilder.d.ts +3 -4
  3. package/dist/ai/cardBuilder.d.ts.map +1 -1
  4. package/dist/ai/cardBuilder.js +8 -11
  5. package/dist/ai/cardBuilder.js.map +1 -1
  6. package/dist/ai/claudeCliProvider.d.ts +61 -2
  7. package/dist/ai/claudeCliProvider.d.ts.map +1 -1
  8. package/dist/ai/claudeCliProvider.js +95 -57
  9. package/dist/ai/claudeCliProvider.js.map +1 -1
  10. package/dist/ai/claudeSdkProvider.d.ts +18 -0
  11. package/dist/ai/claudeSdkProvider.d.ts.map +1 -1
  12. package/dist/ai/claudeSdkProvider.js +35 -25
  13. package/dist/ai/claudeSdkProvider.js.map +1 -1
  14. package/dist/ai/codexAppServer/cardAdapter.d.ts +0 -3
  15. package/dist/ai/codexAppServer/cardAdapter.d.ts.map +1 -1
  16. package/dist/ai/codexAppServer/cardAdapter.js +40 -5
  17. package/dist/ai/codexAppServer/cardAdapter.js.map +1 -1
  18. package/dist/ai/codexAppServer/provider.d.ts.map +1 -1
  19. package/dist/ai/codexAppServer/provider.js +9 -24
  20. package/dist/ai/codexAppServer/provider.js.map +1 -1
  21. package/dist/ai/codexMcpProvider.d.ts.map +1 -1
  22. package/dist/ai/codexMcpProvider.js +5 -10
  23. package/dist/ai/codexMcpProvider.js.map +1 -1
  24. package/dist/ai/provider.d.ts +7 -2
  25. package/dist/ai/provider.d.ts.map +1 -1
  26. package/dist/ai/sessionManager.d.ts +7 -5
  27. package/dist/ai/sessionManager.d.ts.map +1 -1
  28. package/dist/ai/sessionManager.js +43 -19
  29. package/dist/ai/sessionManager.js.map +1 -1
  30. package/dist/ai/systemPrompt.d.ts.map +1 -1
  31. package/dist/ai/systemPrompt.js +3 -0
  32. package/dist/ai/systemPrompt.js.map +1 -1
  33. package/dist/connection/e2eHarness.d.ts +1 -1
  34. package/dist/connection/e2eHarness.d.ts.map +1 -1
  35. package/dist/connection/e2eHarness.js +24 -8
  36. package/dist/connection/e2eHarness.js.map +1 -1
  37. package/dist/files/fileBrowser.d.ts.map +1 -1
  38. package/dist/files/fileBrowser.js +42 -2
  39. package/dist/files/fileBrowser.js.map +1 -1
  40. package/dist/handlers/messageHandler.d.ts.map +1 -1
  41. package/dist/handlers/messageHandler.js +4 -8
  42. package/dist/handlers/messageHandler.js.map +1 -1
  43. package/dist/index.js +2 -2
  44. package/dist/service/ipcClient.js +1 -1
  45. package/dist/service/run.js +1 -1
  46. package/dist/service/types.js +1 -1
  47. package/package.json +3 -3
@@ -169,28 +169,27 @@ function extractToolResultText(content) {
169
169
  // ============================================================================
170
170
  // CliProviderSession — wraps a ChildProcess for ProviderSession interface
171
171
  // ============================================================================
172
- class CliProviderSession {
172
+ export class CliProviderSession {
173
173
  process;
174
- /** StreamIds queued by hot resume during an active turn — consumeStream
175
- * pops after each result to start the next turn. Idle hot resume (CLI
176
- * alive but between turns) bypasses this queue and writes `currentStreamId`
177
- * directly before `sendUserMessage`. */
178
- pendingStreamIds = [];
179
- /** The streamId used to tag card events and stream-end for the current
180
- * turn. Shared with consumeStream so the SessionManager can swap it in for
181
- * idle hot resume without waiting for the next `result` event. */
182
- currentStreamId = '';
183
174
  /** Debug logger — attached after spawn so stdin writes are captured too. */
184
175
  debugLog;
185
176
  /** Pending control_requests awaiting a control_response from the CLI. */
186
177
  pendingControlResponses = new Map();
187
178
  /** True while a turn (prompt/compaction/tool loop) is in flight — control_requests may be queued by CLI. */
188
179
  activeTurn = false;
189
- /** True once a `result` event has been processed for the current turn's
190
- * streamId. Consumed by consumeStream's finally block to decide whether the
180
+ /** True once a `result` event has been processed for the current turn.
181
+ * Consumed by consumeStream's finally block to decide whether the
191
182
  * process death counts as an unexpected exit. Reset externally on idle hot
192
183
  * resume (the new turn hasn't seen its result yet). */
193
184
  resultEmitted = false;
185
+ /** Card builder for this session — used by sendUserMessage to record the
186
+ * follow-up prompt in streamingCards so getCards on refresh returns it
187
+ * before the CLI has flushed it to the session JSONL. */
188
+ cardBuilder = null;
189
+ /** Callbacks for this session — used by sendUserMessage to emit a
190
+ * user-message card-event so other PWA tabs subscribed to this session
191
+ * see follow-up prompts in real time. */
192
+ callbacks = null;
194
193
  constructor(proc) {
195
194
  this.process = proc;
196
195
  }
@@ -236,6 +235,18 @@ class CliProviderSession {
236
235
  sendUserMessage(prompt) {
237
236
  if (!this.process || this.process.killed)
238
237
  return;
238
+ // Record the prompt in the cardBuilder so getCards on reconnect/refresh
239
+ // returns it before the CLI has flushed it to the session JSONL.
240
+ // (--replay-user-messages will echo this prompt back to us; the
241
+ // `isReplay` filter in routeMessage relies on this entry already
242
+ // existing to dedupe.)
243
+ const userEvent = this.cardBuilder?.userMessage(prompt);
244
+ // Emit the card-event so other PWA tabs subscribed to this session see
245
+ // the follow-up prompt in real time. The sending tab already rendered an
246
+ // optimistic user card; claudeStore.handleCardEvent dedupes by text +
247
+ // recent timestamp so the duplicate does not stack.
248
+ if (userEvent)
249
+ this.callbacks?.emitCardEvent(userEvent);
239
250
  // Pause the idle clock immediately — CLI will start a new turn once it
240
251
  // reads this stdin, even before it emits the first stream event.
241
252
  this.activeTurn = true;
@@ -281,6 +292,41 @@ class CliProviderSession {
281
292
  return null;
282
293
  }
283
294
  }
295
+ /**
296
+ * Live-switch the auto-compact threshold without respawning the CLI.
297
+ *
298
+ * The CLI accepts a top-level `{type:"update_environment_variables"}` stdin
299
+ * message and patches its own `process.env`. The auto-compact computation
300
+ * reads `process.env.CLAUDE_CODE_AUTO_COMPACT_WINDOW` on every turn (no
301
+ * caching), so the next turn picks up the new threshold.
302
+ *
303
+ * If `decoratedModel` is provided AND differs from what's running, we also
304
+ * fire `set_model` so the CLI flips the API's `[1m]` beta header on/off in
305
+ * sync — required when crossing the 200k boundary, otherwise the API would
306
+ * keep rejecting tokens above 200k regardless of the env-side change.
307
+ *
308
+ * Note: `update_environment_variables` is NOT a `control_request` and there
309
+ * is no ack from the CLI — we just write and return.
310
+ */
311
+ async updateContextWindow(window, decoratedModel) {
312
+ if (!this.process || this.process.killed)
313
+ return;
314
+ const envMsg = {
315
+ type: 'update_environment_variables',
316
+ variables: { CLAUDE_CODE_AUTO_COMPACT_WINDOW: String(window) },
317
+ };
318
+ this.debugLog?.logRawEvent({ ...envMsg, _direction: 'stdin' });
319
+ this.process.stdin.write(JSON.stringify(envMsg) + '\n');
320
+ if (decoratedModel) {
321
+ // 5s wall-clock — set_model normally returns in <100ms; if the CLI is
322
+ // mid-turn the idle clock pauses, so the wall cap is the real ceiling.
323
+ const wallTimeout = new Promise((resolve) => setTimeout(() => resolve(), 5_000));
324
+ await Promise.race([
325
+ this.sendControlRequest('set_model', { model: decoratedModel }, 5_000).then(() => undefined).catch(() => undefined),
326
+ wallTimeout,
327
+ ]);
328
+ }
329
+ }
284
330
  kill() {
285
331
  if (this.process) {
286
332
  this.process.kill('SIGTERM');
@@ -308,7 +354,7 @@ export class ClaudeCliProvider {
308
354
  bypassFlagPath: opts.bypassFlagPath,
309
355
  contextWindow: opts.contextWindow,
310
356
  });
311
- return this.spawnAndConsume(args, opts.cwd, opts.streamId, opts.permissionLevel, opts.sandboxed, opts.prompt, cardBuilder, callbacks, opts.model, opts.contextWindow);
357
+ return this.spawnAndConsume(args, opts.cwd, opts.permissionLevel, opts.sandboxed, opts.prompt, cardBuilder, callbacks, opts.model, opts.contextWindow);
312
358
  }
313
359
  async resumeSession(opts, cardBuilder, callbacks) {
314
360
  const args = this.buildCliArgs({
@@ -322,28 +368,38 @@ export class ClaudeCliProvider {
322
368
  bypassFlagPath: opts.bypassFlagPath,
323
369
  contextWindow: opts.contextWindow,
324
370
  });
325
- return this.spawnAndConsume(args, opts.cwd, opts.streamId, opts.permissionLevel, opts.sandboxed, opts.prompt, cardBuilder, callbacks, opts.model, opts.contextWindow);
371
+ return this.spawnAndConsume(args, opts.cwd, opts.permissionLevel, opts.sandboxed, opts.prompt, cardBuilder, callbacks, opts.model, opts.contextWindow);
326
372
  }
327
373
  // ── Private: CLI Args ──
328
374
  buildCliArgs(opts) {
329
375
  return buildClaudeCliArgs({ ...opts, ownDir: __ownDir });
330
376
  }
331
377
  // ── Private: Spawn & Consume ──
332
- async spawnAndConsume(args, cwd, streamId, _level, _sandboxed, prompt, cardBuilder, callbacks, _model, contextWindow) {
378
+ async spawnAndConsume(args, cwd, _level, _sandboxed, prompt, cardBuilder, callbacks, _model, contextWindow) {
333
379
  const claudeBin = getClaudeBin();
334
- // The CLI auto-promotes Sonnet/Opus to 1M context unless told otherwise.
335
- // Pin the auto-compact window to the user's chosen tier so usage stays
336
- // predictable across model switches and 200k/500k/1M presets all behave
337
- // the way the picker says they will.
338
- const env = { ...process.env };
339
- if (contextWindow && contextWindow > 0) {
340
- env.CLAUDE_CODE_AUTO_COMPACT_WINDOW = String(contextWindow);
341
- }
342
380
  const proc = spawn(claudeBin, args, {
343
381
  cwd,
344
382
  stdio: ['pipe', 'pipe', 'pipe'],
345
- env,
346
383
  });
384
+ // Pin the auto-compact threshold via a top-level
385
+ // `update_environment_variables` stdin frame BEFORE the first user
386
+ // prompt. The CLI's structured-IO handler patches `process.env` as soon
387
+ // as a frame arrives (binary v2.1.119 confirmed:
388
+ // `for(...) process.env[K]=_;`), and the auto-compact computation reads
389
+ // `process.env.CLAUDE_CODE_AUTO_COMPACT_WINDOW` per-turn — so the very
390
+ // first turn picks up the value.
391
+ //
392
+ // Using stdin instead of the spawn-time env var unifies the startup and
393
+ // mid-session paths: every change goes through `updateContextWindow`
394
+ // (here for the initial set, and via `setSessionConfig` for live
395
+ // changes). One source of truth, no respawn-on-tier-change drift.
396
+ if (contextWindow && contextWindow > 0) {
397
+ const envFrame = {
398
+ type: 'update_environment_variables',
399
+ variables: { CLAUDE_CODE_AUTO_COMPACT_WINDOW: String(contextWindow) },
400
+ };
401
+ proc.stdin.write(JSON.stringify(envFrame) + '\n');
402
+ }
347
403
  // Send user message immediately — CLI needs stdin before emitting init
348
404
  const userMsg = {
349
405
  type: 'user',
@@ -391,6 +447,8 @@ export class ClaudeCliProvider {
391
447
  });
392
448
  });
393
449
  const cliSession = new CliProviderSession(proc);
450
+ cliSession.cardBuilder = cardBuilder;
451
+ cliSession.callbacks = callbacks;
394
452
  const debugLog = new DebugLogger(sessionId);
395
453
  cliSession.debugLog = debugLog;
396
454
  // Log the initial stdin prompt that was sent before init
@@ -398,12 +456,11 @@ export class ClaudeCliProvider {
398
456
  // Update the cardBuilder sessionId (it may have been created with a placeholder)
399
457
  cardBuilder.updateSessionId(sessionId);
400
458
  // Fire and forget the stream consumer — pass the same readline interface
401
- this.consumeStream(sessionId, streamId, rl, bufferedLines, cliSession, cardBuilder, callbacks, prompt, debugLog);
459
+ this.consumeStream(sessionId, rl, bufferedLines, cliSession, cardBuilder, callbacks, prompt, debugLog);
402
460
  return { sessionId, session: cliSession };
403
461
  }
404
462
  // ── Private: Stream Consumer ──
405
- async consumeStream(sessionId, initialStreamId, rl, bufferedLines, cliSession, cb, callbacks, prompt, debugLog) {
406
- cliSession.currentStreamId = initialStreamId;
463
+ async consumeStream(sessionId, rl, bufferedLines, cliSession, cb, callbacks, prompt, debugLog) {
407
464
  cliSession.resultEmitted = false;
408
465
  let textBuffer = '';
409
466
  let bufferTimer = null;
@@ -411,13 +468,14 @@ export class ClaudeCliProvider {
411
468
  debugLog?.logCardEvent(event);
412
469
  callbacks.emitCardEvent(event);
413
470
  };
414
- cb.startNewTurn(cliSession.currentStreamId);
471
+ cb.startNewTurn();
415
472
  cliSession.activeTurn = true;
416
- // Add user prompt to cardBuilder (for getCards on reconnect) but don't emit
417
- // as a card-event the PWA already shows an optimistic user card.
473
+ // Record + emit the initial user prompt so other PWA tabs subscribed to
474
+ // this session see it in real time. The sending tab dedupes the
475
+ // optimistic card it already rendered (by text + recent timestamp).
418
476
  if (prompt) {
419
477
  const userCardEvent = cb.userMessage(prompt);
420
- debugLog?.logCardEvent(userCardEvent); // log to debug cards JSONL even though not emitted to PWA
478
+ emitCard(userCardEvent);
421
479
  }
422
480
  const flushText = () => {
423
481
  if (textBuffer) {
@@ -447,30 +505,11 @@ export class ClaudeCliProvider {
447
505
  return;
448
506
  }
449
507
  debugLog?.logRawEvent(msg);
450
- const emittedResult = await this.routeMessage(sessionId, cliSession.currentStreamId, msg, cliSession, cb, callbacks, emitCard, flushText, bufferText, debugLog);
508
+ const emittedResult = await this.routeMessage(sessionId, msg, cliSession, cb, callbacks, emitCard, flushText, bufferText, debugLog);
451
509
  if (emittedResult) {
452
510
  cliSession.resultEmitted = true;
453
- // Hot resume: if there's a pending streamId, start a new turn for it.
454
- // This must live here (not in routeMessage) so the outer
455
- // `cliSession.currentStreamId` is updated — routeMessage receives it
456
- // by value.
457
- const nextStreamId = cliSession.pendingStreamIds.shift();
458
- if (nextStreamId) {
459
- // Hot resume: cancel the prior turn's deferred clear so the pending
460
- // poll doesn't wipe the next turn. Do NOT snapshotCutoff or clearCards
461
- // here — the prior turn's messages may not be flushed to JSONL yet,
462
- // and advancing cutoff past them while they're already in JSONL
463
- // produces duplicates. Keep streamingCards as-is; the final turn's
464
- // scheduleDeferredClear sweeps everything once the chain commits.
465
- cb.cancelDeferredClear();
466
- cliSession.currentStreamId = nextStreamId;
467
- cb.startNewTurn(nextStreamId);
468
- cliSession.activeTurn = true;
469
- cliSession.resultEmitted = false; // Reset for next turn
470
- }
471
- else {
472
- cliSession.activeTurn = false;
473
- }
511
+ cb.startNewTurn();
512
+ cliSession.activeTurn = false;
474
513
  }
475
514
  };
476
515
  try {
@@ -486,7 +525,7 @@ export class ClaudeCliProvider {
486
525
  flushText();
487
526
  console.error(`[cli] stream error session=${sessionId.slice(0, 8)}:`, error);
488
527
  const msg = error instanceof Error ? error.message : 'Unknown error';
489
- callbacks.emitStreamEnd({ streamId: cliSession.currentStreamId, sessionId, success: false, error: msg });
528
+ callbacks.emitStreamEnd({ sessionId, success: false, error: msg });
490
529
  cliSession.resultEmitted = true;
491
530
  }
492
531
  finally {
@@ -501,7 +540,7 @@ export class ClaudeCliProvider {
501
540
  pending.reject(new Error('CLI process exited before control_response'));
502
541
  }
503
542
  if (!cliSession.resultEmitted) {
504
- callbacks.emitStreamEnd({ streamId: cliSession.currentStreamId, sessionId, success: false, error: 'Process exited unexpectedly' });
543
+ callbacks.emitStreamEnd({ sessionId, success: false, error: 'Process exited unexpectedly' });
505
544
  }
506
545
  // Notify SessionManager so it can remove the entry and emit
507
546
  // `session-updated { isActive: false }`. Without this the badge stays
@@ -511,7 +550,7 @@ export class ClaudeCliProvider {
511
550
  }
512
551
  // ── Private: Route a single stream-json message ──
513
552
  // Returns true if a result/stream-end was emitted.
514
- async routeMessage(sessionId, streamId, msg, cliSession, cb, callbacks, emitCard, flushText, bufferText, debugLog) {
553
+ async routeMessage(sessionId, msg, cliSession, cb, callbacks, emitCard, flushText, bufferText, debugLog) {
515
554
  // ── Control requests (permissions) ──
516
555
  if (msg.type === 'control_request' && msg.request?.subtype === 'can_use_tool') {
517
556
  await this.handleControlRequest(sessionId, msg, cliSession, callbacks);
@@ -714,7 +753,6 @@ export class ClaudeCliProvider {
714
753
  callbacks.onCacheTouch?.(sessionId);
715
754
  }
716
755
  const streamEnd = {
717
- streamId,
718
756
  sessionId,
719
757
  success: msg.subtype === 'success' && !interrupted,
720
758
  error: (msg.subtype !== 'success' && !interrupted)
@@ -1 +1 @@
1
- {"version":3,"file":"claudeCliProvider.js","sourceRoot":"","sources":["../../src/ai/claudeCliProvider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"claudeCliProvider.js","sourceRoot":"","sources":["../../src/ai/claudeCliProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAgB,MAAM,eAAe,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAC3C,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACrC,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,IAAI,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AAGpC,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,2BAA2B,EAAE,MAAM,iBAAiB,CAAC;AACnG,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAU/C,MAAM,QAAQ,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAEzD;;;;;GAKG;AACH,SAAS,eAAe,CAAC,KAAyB;IAChD,OAAO,CAAC,CAAC,KAAK,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAClD,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,8BAA8B,CAC5C,KAAyB,EACzB,aAAiC;IAEjC,IAAI,CAAC,KAAK;QAAE,OAAO,KAAK,CAAC;IACzB,IAAI,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC,CAAC,0BAA0B;IACpE,IAAI,CAAC,aAAa,IAAI,aAAa,IAAI,OAAO;QAAE,OAAO,KAAK,CAAC;IAC7D,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAC1C,OAAO,GAAG,KAAK,MAAM,CAAC;AACxB,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,kBAAkB,CAAC,IAelC;IACC,MAAM,IAAI,GAAa;QACrB,iBAAiB,EAAE,aAAa;QAChC,gBAAgB,EAAE,aAAa;QAC/B,0BAA0B,EAAE,OAAO;QACnC,WAAW;QACX,IAAI,EAAE,EAAE,EAAG,2CAA2C;QACtD,wBAAwB,EAAG,iEAAiE;KAC7F,CAAC;IAEF,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;QACtB,IAAI,CAAC,IAAI,CAAC,wBAAwB,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;IACzD,CAAC;IAED,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;QACf,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,8BAA8B,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC;IACrG,CAAC;IAED,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;QACxB,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,KAAK,mBAAmB,CAAC,CAAC,CAAC,SAAS;YACrE,CAAC,CAAC,IAAI,CAAC,cAAc,KAAK,aAAa,CAAC,CAAC,CAAC,aAAa;gBACvD,CAAC,CAAC,IAAI,CAAC,cAAc,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM;oBACzC,CAAC,CAAC,IAAI,CAAC,cAAc,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM;wBACzC,CAAC,CAAC,SAAS,CAAC;QACd,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,OAAO,CAAC,CAAC;IAC1C,CAAC;IAED,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;QACzB,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;IAC9C,CAAC;IAED,MAAM,sBAAsB,GAAgF,EAAE,CAAC;IAC/G,MAAM,gBAAgB,GAAG;QACvB,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,uGAAuG;KACjH,CAAC;IACF,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;QACnB,sBAAsB,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,iBAAiB,EAAE,KAAK,EAAE,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC;IACzF,CAAC;IACD,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;QACxB,2EAA2E;QAC3E,yEAAyE;QACzE,2DAA2D;QAC3D,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAC7D,MAAM,kBAAkB,GAAG,SAAS,WAAW,sHAAsH,CAAC;QACtK,sBAAsB,CAAC,IAAI,CAAC;YAC1B,OAAO,EAAE,GAAG;YACZ,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,kBAAkB,EAAE,CAAC;SAC1D,CAAC,CAAC;IACL,CAAC;IACD,IAAI,sBAAsB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,EAAE,CAAC,CAAC,CAAC;IACpG,CAAC;IAED,MAAM,SAAS,GAAG;QAChB,UAAU,EAAE;YACV,CAAC,gBAAgB,CAAC,EAAE,2BAA2B,CAAC;gBAC9C,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,GAAG,EAAE,IAAI,CAAC,GAAG;gBACb,SAAS,EAAE,IAAI,CAAC,eAAe;aAChC,CAAC;SACH;KACF,CAAC;IACF,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC;IAErD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;GAKG;AACH,IAAI,UAA8B,CAAC;AACnC,MAAM,UAAU,YAAY;IAC1B,IAAI,UAAU;QAAE,OAAO,UAAU,CAAC;IAElC,8CAA8C;IAC9C,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,QAAQ,CAAC,cAAc,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QACxF,IAAI,QAAQ,IAAI,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YACrC,UAAU,GAAG,QAAQ,CAAC;YACtB,OAAO,UAAU,CAAC;QACpB,CAAC;IACH,CAAC;IAAC,MAAM,CAAC,CAAC,iBAAiB,CAAC,CAAC;IAE7B,oCAAoC;IACpC,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC;IACpC,MAAM,UAAU,GAAG;QACjB,IAAI,CAAC,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,QAAQ,CAAC;QAC1C,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,CAAC;QACrC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,CAAC;QACxC,uBAAuB;KACxB,CAAC;IACF,qCAAqC;IACrC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;QACtD,IAAI,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;YACvB,KAAK,MAAM,GAAG,IAAI,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC;gBACtC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC;YACtD,CAAC;QACH,CAAC;IACH,CAAC;IAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;IAExB,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,IAAI,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YAC1B,UAAU,GAAG,SAAS,CAAC;YACvB,OAAO,UAAU,CAAC;QACpB,CAAC;IACH,CAAC;IAED,+DAA+D;IAC/D,6CAA6C;IAC7C,UAAU,GAAG,QAAQ,CAAC;IACtB,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,kFAAkF;AAClF,SAAS,qBAAqB,CAAC,OAAgB;IAC7C,IAAI,OAAO,OAAO,KAAK,QAAQ;QAAE,OAAO,OAAO,CAAC;IAChD,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3B,OAAO,OAAO;aACX,MAAM,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC;aACrC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC;aAC7B,IAAI,CAAC,IAAI,CAAC,CAAC;IAChB,CAAC;IACD,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;AACjC,CAAC;AAED,+EAA+E;AAC/E,0EAA0E;AAC1E,+EAA+E;AAE/E,MAAM,OAAO,kBAAkB;IACtB,OAAO,CAAsB;IACpC,4EAA4E;IACrE,QAAQ,CAAe;IAC9B,yEAAyE;IAClE,uBAAuB,GAA+E,IAAI,GAAG,EAAE,CAAC;IACvH,4GAA4G;IACrG,UAAU,GAAY,KAAK,CAAC;IACnC;;;2DAGuD;IAChD,aAAa,GAAY,KAAK,CAAC;IACtC;;6DAEyD;IAClD,WAAW,GAA6B,IAAI,CAAC;IACpD;;6CAEyC;IAClC,SAAS,GAA6B,IAAI,CAAC;IAElD,YAAY,IAAkB;QAC5B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;IACtB,CAAC;IAED;;;;OAIG;IACH,kBAAkB,CAAC,OAAe,EAAE,MAAgC,EAAE,aAAa,GAAG,MAAM;QAC1F,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;YACzC,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC,CAAC;QAC/D,CAAC;QACD,MAAM,SAAS,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;QACtC,MAAM,OAAO,GAAG,EAAE,OAAO,EAAE,GAAG,CAAC,MAAM,IAAI,EAAE,CAAC,EAAE,CAAC;QAC/C,MAAM,GAAG,GAAG,EAAE,IAAI,EAAE,iBAAiB,EAAE,UAAU,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC;QAExE,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,MAAM,MAAM,GAAG,GAAG,CAAC;YACnB,IAAI,eAAe,GAAG,CAAC,CAAC;YACxB,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE;gBAC7B,IAAI,CAAC,IAAI,CAAC,UAAU;oBAAE,eAAe,IAAI,MAAM,CAAC;gBAChD,IAAI,eAAe,IAAI,aAAa,EAAE,CAAC;oBACrC,aAAa,CAAC,KAAK,CAAC,CAAC;oBACrB,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;oBAC/C,MAAM,CAAC,IAAI,KAAK,CAAC,mBAAmB,OAAO,oBAAoB,aAAa,SAAS,CAAC,CAAC,CAAC;gBAC1F,CAAC;YACH,CAAC,EAAE,MAAM,CAAC,CAAC;YAEX,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,SAAS,EAAE;gBAC1C,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACrD,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;aACpD,CAAC,CAAC;YAEH,IAAI,CAAC;gBACH,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,EAAE,GAAG,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC,CAAC;gBAC5D,IAAI,CAAC,OAAQ,CAAC,KAAM,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;YACzD,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;gBAC/C,aAAa,CAAC,KAAK,CAAC,CAAC;gBACrB,MAAM,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAC9D,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,eAAe,CAAC,MAAc;QAC5B,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM;YAAE,OAAO;QACjD,wEAAwE;QACxE,iEAAiE;QACjE,gEAAgE;QAChE,iEAAiE;QACjE,uBAAuB;QACvB,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;QACxD,uEAAuE;QACvE,yEAAyE;QACzE,sEAAsE;QACtE,oDAAoD;QACpD,IAAI,SAAS;YAAE,IAAI,CAAC,SAAS,EAAE,aAAa,CAAC,SAAS,CAAC,CAAC;QACxD,uEAAuE;QACvE,iEAAiE;QACjE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,MAAM,OAAO,GAAG;YACd,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE;SAC3C,CAAC;QACF,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,EAAE,GAAG,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC,CAAC;QAChE,IAAI,CAAC,OAAO,CAAC,KAAM,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC;IAC5D,CAAC;IAED,SAAS;QACP,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM;YAAE,OAAO;QACjD,IAAI,CAAC;YACH,MAAM,YAAY,GAAG;gBACnB,IAAI,EAAE,iBAAiB;gBACvB,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE;gBAC/B,OAAO,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE;aAClC,CAAC;YACF,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,EAAE,GAAG,YAAY,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC,CAAC;YACrE,IAAI,CAAC,OAAO,CAAC,KAAM,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC,CAAC;QACjE,CAAC;QAAC,MAAM,CAAC;YACP,yCAAyC;YACzC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QAChC,CAAC;IACH,CAAC;IAED,KAAK,CAAC,eAAe;QACnB,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM;YAAE,OAAO,IAAI,CAAC;QACtD,uEAAuE;QACvE,sEAAsE;QACtE,0EAA0E;QAC1E,MAAM,WAAW,GAAG,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;QAC5F,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC;gBAClC,IAAI,CAAC,kBAAkB,CAAC,mBAAmB,EAAE,SAAS,EAAE,MAAM,CAAC;gBAC/D,WAAW;aACZ,CAAC,CAAC;YACH,OAAQ,QAAyC,IAAI,IAAI,CAAC;QAC5D,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED;;;;;;;;;;;;;;;OAeG;IACH,KAAK,CAAC,mBAAmB,CAAC,MAAc,EAAE,cAAuB;QAC/D,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM;YAAE,OAAO;QACjD,MAAM,MAAM,GAAG;YACb,IAAI,EAAE,8BAA8B;YACpC,SAAS,EAAE,EAAE,+BAA+B,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE;SAC/D,CAAC;QACF,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,EAAE,GAAG,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC,CAAC;QAC/D,IAAI,CAAC,OAAO,CAAC,KAAM,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC;QAEzD,IAAI,cAAc,EAAE,CAAC;YACnB,sEAAsE;YACtE,uEAAuE;YACvE,MAAM,WAAW,GAAG,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC;YACvF,MAAM,OAAO,CAAC,IAAI,CAAC;gBACjB,IAAI,CAAC,kBAAkB,CAAC,WAAW,EAAE,EAAE,KAAK,EAAE,cAAc,EAAE,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC;gBACnH,WAAW;aACZ,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,IAAI;QACF,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC7B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACtB,CAAC;IACH,CAAC;IAED,IAAI,KAAK;QACP,OAAO,CAAC,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;IAChD,CAAC;CACF;AAED,+EAA+E;AAC/E,qDAAqD;AACrD,+EAA+E;AAE/E,MAAM,OAAO,iBAAiB;IACnB,EAAE,GAAG,aAAsB,CAAC;IAC5B,WAAW,GAAG,cAAuB,CAAC;IAE/C,KAAK,CAAC,YAAY,CAChB,IAAsB,EACtB,WAA8B,EAC9B,SAA4B;QAE5B,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC;YAC7B,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,cAAc,EAAE,IAAI,CAAC,eAAe;YACpC,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,cAAc,EAAE,IAAI,CAAC,cAAc;YACnC,aAAa,EAAE,IAAI,CAAC,aAAa;SAClC,CAAC,CAAC;QAEH,OAAO,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;IACzJ,CAAC;IAED,KAAK,CAAC,aAAa,CACjB,IAAuB,EACvB,WAA8B,EAC9B,SAA4B;QAE5B,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC;YAC7B,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,cAAc,EAAE,IAAI,CAAC,eAAe;YACpC,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,eAAe,EAAE,IAAI,CAAC,SAAS;YAC/B,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,cAAc,EAAE,IAAI,CAAC,cAAc;YACnC,aAAa,EAAE,IAAI,CAAC,aAAa;SAClC,CAAC,CAAC;QAEH,OAAO,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;IACzJ,CAAC;IAED,0BAA0B;IAElB,YAAY,CAAC,IAUpB;QACC,OAAO,kBAAkB,CAAC,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;IAC3D,CAAC;IAED,iCAAiC;IAEzB,KAAK,CAAC,eAAe,CAC3B,IAAc,EACd,GAAW,EACX,MAAuB,EACvB,UAAmB,EACnB,MAAc,EACd,WAA8B,EAC9B,SAA4B,EAC5B,MAAe,EACf,aAAsB;QAEtB,MAAM,SAAS,GAAG,YAAY,EAAE,CAAC;QACjC,MAAM,IAAI,GAAG,KAAK,CAAC,SAAS,EAAE,IAAI,EAAE;YAClC,GAAG;YACH,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;SAChC,CAAC,CAAC;QAEH,iDAAiD;QACjD,mEAAmE;QACnE,wEAAwE;QACxE,iDAAiD;QACjD,wEAAwE;QACxE,uEAAuE;QACvE,iCAAiC;QACjC,EAAE;QACF,wEAAwE;QACxE,qEAAqE;QACrE,iEAAiE;QACjE,kEAAkE;QAClE,IAAI,aAAa,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC;YACvC,MAAM,QAAQ,GAAG;gBACf,IAAI,EAAE,8BAA8B;gBACpC,SAAS,EAAE,EAAE,+BAA+B,EAAE,MAAM,CAAC,aAAa,CAAC,EAAE;aACtE,CAAC;YACF,IAAI,CAAC,KAAM,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,CAAC;QACrD,CAAC;QAED,uEAAuE;QACvE,MAAM,OAAO,GAAG;YACd,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE;SAC3C,CAAC;QACF,IAAI,CAAC,KAAM,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC;QAElD,uFAAuF;QACvF,MAAM,aAAa,GAAa,EAAE,CAAC;QACnC,MAAM,EAAE,GAAG,eAAe,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,MAAO,EAAE,CAAC,CAAC;QAEpD,2BAA2B;QAC3B,IAAI,CAAC,MAAO,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE;YACxC,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC;YACrC,IAAI,IAAI;gBAAE,OAAO,CAAC,KAAK,CAAC,gBAAgB,IAAI,EAAE,CAAC,CAAC;QAClD,CAAC,CAAC,CAAC;QAEH,MAAM,SAAS,GAAG,MAAM,IAAI,OAAO,CAAS,CAAC,WAAW,EAAE,MAAM,EAAE,EAAE;YAClE,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;YAExF,MAAM,MAAM,GAAG,CAAC,IAAY,EAAE,EAAE;gBAC9B,IAAI,CAAC;oBACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;oBAC7B,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,IAAI,GAAG,CAAC,OAAO,KAAK,MAAM,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC;wBACtE,YAAY,CAAC,OAAO,CAAC,CAAC;wBACtB,EAAE,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;wBAElC,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;4BACd,SAAS,CAAC,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;wBACvC,CAAC;wBAED,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;oBAC9B,CAAC;yBAAM,CAAC;wBACN,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBAC3B,CAAC;gBACH,CAAC;gBAAC,MAAM,CAAC;oBACP,gBAAgB;gBAClB,CAAC;YACH,CAAC,CAAC;YAEF,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YAEtB,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;gBACvB,YAAY,CAAC,OAAO,CAAC,CAAC;gBACtB,MAAM,CAAC,GAAG,CAAC,CAAC;YACd,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;gBACvB,YAAY,CAAC,OAAO,CAAC,CAAC;gBACtB,MAAM,CAAC,IAAI,KAAK,CAAC,2BAA2B,IAAI,cAAc,CAAC,CAAC,CAAC;YACnE,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,MAAM,UAAU,GAAG,IAAI,kBAAkB,CAAC,IAAI,CAAC,CAAC;QAChD,UAAU,CAAC,WAAW,GAAG,WAAW,CAAC;QACrC,UAAU,CAAC,SAAS,GAAG,SAAS,CAAC;QACjC,MAAM,QAAQ,GAAG,IAAI,WAAW,CAAC,SAAS,CAAC,CAAC;QAC5C,UAAU,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAE/B,yDAAyD;QACzD,QAAQ,CAAC,WAAW,CAAC,EAAE,GAAG,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC,CAAC;QAE1D,iFAAiF;QACjF,WAAW,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;QAEvC,yEAAyE;QACzE,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,EAAE,EAAE,aAAa,EAAE,UAAU,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;QAEvG,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC;IAC5C,CAAC;IAED,iCAAiC;IAEzB,KAAK,CAAC,aAAa,CACzB,SAAiB,EACjB,EAAsC,EACtC,aAAuB,EACvB,UAA8B,EAC9B,EAAqB,EACrB,SAA4B,EAC5B,MAAe,EACf,QAAsB;QAEtB,UAAU,CAAC,aAAa,GAAG,KAAK,CAAC;QACjC,IAAI,UAAU,GAAG,EAAE,CAAC;QACpB,IAAI,WAAW,GAAyC,IAAI,CAAC;QAE7D,MAAM,QAAQ,GAAG,CAAC,KAAgB,EAAE,EAAE;YACpC,QAAQ,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC;YAC9B,SAAS,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QACjC,CAAC,CAAC;QAEF,EAAE,CAAC,YAAY,EAAE,CAAC;QAClB,UAAU,CAAC,UAAU,GAAG,IAAI,CAAC;QAE7B,wEAAwE;QACxE,gEAAgE;QAChE,oEAAoE;QACpE,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,aAAa,GAAG,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;YAC7C,QAAQ,CAAC,aAAa,CAAC,CAAC;QAC1B,CAAC;QAED,MAAM,SAAS,GAAG,GAAG,EAAE;YACrB,IAAI,UAAU,EAAE,CAAC;gBACf,QAAQ,CAAC,EAAE,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC,CAAC;gBACvC,UAAU,GAAG,EAAE,CAAC;YAClB,CAAC;YACD,IAAI,WAAW,EAAE,CAAC;gBAAC,YAAY,CAAC,WAAW,CAAC,CAAC;gBAAC,WAAW,GAAG,IAAI,CAAC;YAAC,CAAC;QACrE,CAAC,CAAC;QAEF,MAAM,UAAU,GAAG,CAAC,IAAY,EAAE,EAAE;YAClC,UAAU,IAAI,IAAI,CAAC;YACnB,IAAI,CAAC,WAAW,EAAE,CAAC;gBAAC,WAAW,GAAG,UAAU,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;YAAC,CAAC;YAC/D,IAAI,UAAU,CAAC,MAAM,GAAG,IAAI,EAAE,CAAC;gBAAC,SAAS,EAAE,CAAC;YAAC,CAAC;QAChD,CAAC,CAAC;QAEF,MAAM,WAAW,GAAG,KAAK,EAAE,IAAY,EAAE,EAAE;YACzC,IAAI,GAAQ,CAAC;YACb,IAAI,CAAC;gBAAC,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAAC,CAAC;YAAC,MAAM,CAAC;gBAAC,OAAO;YAAC,CAAC;YAEjD,QAAQ,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC;YAE3B,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,GAAG,EAAE,UAAU,EAAE,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;YACpI,IAAI,aAAa,EAAE,CAAC;gBAClB,UAAU,CAAC,aAAa,GAAG,IAAI,CAAC;gBAChC,EAAE,CAAC,YAAY,EAAE,CAAC;gBAClB,UAAU,CAAC,UAAU,GAAG,KAAK,CAAC;YAChC,CAAC;QACH,CAAC,CAAC;QAEF,IAAI,CAAC;YACH,oCAAoC;YACpC,KAAK,MAAM,IAAI,IAAI,aAAa,EAAE,CAAC;gBACjC,MAAM,WAAW,CAAC,IAAI,CAAC,CAAC;YAC1B,CAAC;YAED,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,EAAE,EAAE,CAAC;gBAC5B,MAAM,WAAW,CAAC,IAAI,CAAC,CAAC;YAC1B,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,SAAS,EAAE,CAAC;YACZ,OAAO,CAAC,KAAK,CAAC,8BAA8B,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YAC7E,MAAM,GAAG,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC;YACrE,SAAS,CAAC,aAAa,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;YACnE,UAAU,CAAC,aAAa,GAAG,IAAI,CAAC;QAClC,CAAC;gBAAS,CAAC;YACT,IAAI,WAAW;gBAAE,YAAY,CAAC,WAAW,CAAC,CAAC;YAC3C,4BAA4B;YAC5B,UAAU,CAAC,OAAO,GAAG,IAAI,CAAC;YAC1B,UAAU,CAAC,UAAU,GAAG,KAAK,CAAC;YAE9B,0EAA0E;YAC1E,KAAK,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,UAAU,CAAC,uBAAuB,EAAE,CAAC;gBAClE,UAAU,CAAC,uBAAuB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBACjD,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC,CAAC;YAC1E,CAAC;YAED,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,CAAC;gBAC9B,SAAS,CAAC,aAAa,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,6BAA6B,EAAE,CAAC,CAAC;YAC/F,CAAC;YAED,4DAA4D;YAC5D,sEAAsE;YACtE,wDAAwD;YACxD,SAAS,CAAC,eAAe,EAAE,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;QACrD,CAAC;IACH,CAAC;IAED,oDAAoD;IACpD,mDAAmD;IAE3C,KAAK,CAAC,YAAY,CACxB,SAAiB,EACjB,GAAQ,EACR,UAA8B,EAC9B,EAAqB,EACrB,SAA4B,EAC5B,QAAoC,EACpC,SAAqB,EACrB,UAAkC,EAClC,QAAsB;QAEtB,uCAAuC;QACvC,IAAI,GAAG,CAAC,IAAI,KAAK,iBAAiB,IAAI,GAAG,CAAC,OAAO,EAAE,OAAO,KAAK,cAAc,EAAE,CAAC;YAC9E,MAAM,IAAI,CAAC,oBAAoB,CAAC,SAAS,EAAE,GAAG,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;YACvE,OAAO,KAAK,CAAC;QACf,CAAC;QAED,6DAA6D;QAC7D,IAAI,GAAG,CAAC,IAAI,KAAK,kBAAkB,EAAE,CAAC;YACpC,MAAM,YAAY,GAAG,GAAG,CAAC,QAAQ,CAAC;YAClC,MAAM,KAAK,GAAuB,YAAY,EAAE,UAAU,CAAC;YAC3D,IAAI,KAAK,EAAE,CAAC;gBACV,MAAM,OAAO,GAAG,UAAU,CAAC,uBAAuB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;gBAC9D,IAAI,OAAO,EAAE,CAAC;oBACZ,UAAU,CAAC,uBAAuB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;oBACjD,IAAI,YAAY,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;wBACvC,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;oBACzC,CAAC;yBAAM,CAAC;wBACN,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,YAAY,CAAC,KAAK,IAAI,wBAAwB,CAAC,CAAC,CAAC;oBAC5E,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,6EAA6E;oBAC7E,iFAAiF;oBACjF,wDAAwD;oBACxD,OAAO,CAAC,KAAK,CAAC,4FAA4F,KAAK,YAAY,YAAY,EAAE,OAAO,YAAY,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;gBACvL,CAAC;YACH,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC;QACD,IAAI,GAAG,CAAC,IAAI,KAAK,wBAAwB;YAAE,OAAO,KAAK,CAAC;QAExD,sBAAsB;QACtB,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC1B,IAAI,GAAG,CAAC,OAAO,KAAK,cAAc,EAAE,CAAC;gBACnC,SAAS,EAAE,CAAC;gBACZ,QAAQ,CAAC,EAAE,CAAC,aAAa,CAAC,GAAG,CAAC,WAAW,IAAI,EAAE,EAAE,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC;YAClF,CAAC;iBAAM,IAAI,GAAG,CAAC,OAAO,KAAK,eAAe,EAAE,CAAC;gBAC3C,MAAM,OAAO,GAAG,EAAE,CAAC,gBAAgB,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,WAAW,EAAE,GAAG,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,CAAC,cAAc,CAAC,CAAC;gBAC5G,IAAI,OAAO;oBAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;YACjC,CAAC;iBAAM,IAAI,GAAG,CAAC,OAAO,KAAK,mBAAmB,EAAE,CAAC;gBAC/C,MAAM,OAAO,GAAG,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;gBACtF,IAAI,OAAO;oBAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;YACjC,CAAC;iBAAM,IAAI,GAAG,CAAC,OAAO,KAAK,kBAAkB,EAAE,CAAC;gBAC9C,wEAAwE;gBACxE,wEAAwE;gBACxE,8CAA8C;gBAC9C,SAAS,EAAE,CAAC;gBACZ,MAAM,IAAI,GAAG,GAAG,CAAC,gBAAgB,CAAC;gBAClC,MAAM,OAAO,GAAG,IAAI,EAAE,OAAwC,CAAC;gBAC/D,MAAM,SAAS,GAAG,OAAO,IAAI,EAAE,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC;gBACrF,MAAM,IAAI,GAAG,SAAS,KAAK,SAAS;oBAClC,CAAC,CAAC,sBAAsB,OAAO,IAAI,QAAQ,SAAS,SAAS,CAAC,cAAc,EAAE,UAAU;oBACxF,CAAC,CAAC,mBAAmB,CAAC;gBACxB,QAAQ,CAAC,EAAE,CAAC,aAAa,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC;gBAC9C,SAAS,CAAC,YAAY,EAAE,CAAC,SAAS,CAAC,CAAC;YACtC,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC;QAED,iCAAiC;QACjC,IAAI,GAAG,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;YAChC,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC;YACxB,IAAI,KAAK,EAAE,IAAI,KAAK,qBAAqB,EAAE,CAAC;gBAC1C,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;gBAC1B,IAAI,KAAK,EAAE,IAAI,KAAK,YAAY,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;oBAC/C,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBACzB,CAAC;YACH,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC;QAED,0BAA0B;QAC1B,IAAI,GAAG,CAAC,IAAI,KAAK,kBAAkB;YAAE,OAAO,KAAK,CAAC;QAElD,oCAAoC;QACpC,IAAI,GAAG,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;YAC7B,IAAI,GAAG,CAAC,OAAO;gBAAE,OAAO,KAAK,CAAC,CAAE,YAAY;YAC5C,wEAAwE;YACxE,oEAAoE;YACpE,wEAAwE;YACxE,qCAAqC;YACrC,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC;YACjC,IAAI,KAAK,IAAI,CAAC,CAAC,KAAK,CAAC,2BAA2B,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,uBAAuB,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;gBACxG,SAAS,CAAC,YAAY,EAAE,CAAC,SAAS,CAAC,CAAC;YACtC,CAAC;YACD,SAAS,EAAE,CAAC;YACZ,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,EAAE,OAAO,IAAI,EAAE,CAAC;YAC1C,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;gBAC3B,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;oBAC9B,+DAA+D;oBAC/D,8DAA8D;oBAC9D,IAAI,KAAK,CAAC,QAAQ;wBAAE,QAAQ,CAAC,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;gBACjE,CAAC;qBAAM,IAAI,KAAK,CAAC,IAAI,KAAK,mBAAmB,EAAE,CAAC;oBAC9C,QAAQ,CAAC,EAAE,CAAC,aAAa,CAAC,qBAAqB,CAAC,CAAC,CAAC;gBACpD,CAAC;qBAAM,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;oBAC/C,iEAAiE;oBACjE,qDAAqD;oBACrD,MAAM,WAAW,GAAG,EAAE,CAAC,qBAAqB,EAAE,CAAC;oBAC/C,IAAI,WAAW,EAAE,CAAC;wBAChB,QAAQ,CAAC,WAAW,CAAC,CAAC;oBACxB,CAAC;yBAAM,CAAC;wBACN,sFAAsF;wBACtF,QAAQ,CAAC,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;oBACzC,CAAC;gBACH,CAAC;qBAAM,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;oBACrC,SAAS,CAAC,SAAS,EAAE,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;oBAChE,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;wBAC3B,QAAQ,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,IAAI,EAAE,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;oBAChE,CAAC;gBACH,CAAC;qBAAM,IAAI,KAAK,CAAC,IAAI,KAAK,iBAAiB,IAAI,KAAK,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;oBAC7E,OAAO,CAAC,GAAG,CAAC,iCAAiC,KAAK,CAAC,IAAI,OAAO,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;oBAC1E,SAAS,CAAC,SAAS,EAAE,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;oBAC9E,QAAQ,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,IAAI,EAAE,EAAE,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;gBACpF,CAAC;qBAAM,IAAI,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;oBACnD,4DAA4D;oBAC5D,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,OAAO,IAAI,EAAE,CAAC;oBAClD,MAAM,UAAU,GAAG,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;oBAC/G,QAAQ,CAAC,EAAE,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC;gBACtE,CAAC;YACH,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC;QAED,+CAA+C;QAC/C,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YACxB,IAAI,GAAG,CAAC,OAAO;gBAAE,OAAO,KAAK,CAAC,CAAE,YAAY;YAC5C,IAAI,GAAG,CAAC,QAAQ;gBAAE,OAAO,KAAK,CAAC,CAAE,oFAAoF;YACrH,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC;YACrC,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,EAAE,CAAC;gBAC3C,SAAS,EAAE,CAAC;gBACZ,QAAQ,CAAC,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC;YACpC,CAAC;YACD,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC3B,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;oBAC5B,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;wBACxC,SAAS,EAAE,CAAC;wBACZ,QAAQ,CAAC,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;oBACvC,CAAC;oBACD,IAAI,KAAK,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;wBACjC,MAAM,aAAa,GAAG,qBAAqB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;wBAC3D,MAAM,OAAO,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,WAAW,EAAE,aAAa,EAAE,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;wBAClF,IAAI,OAAO;4BAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;oBACjC,CAAC;oBACD,IAAI,KAAK,CAAC,IAAI,KAAK,wBAAwB,IAAI,KAAK,CAAC,IAAI,KAAK,uBAAuB;wBACjF,KAAK,CAAC,IAAI,KAAK,iBAAiB,IAAI,KAAK,CAAC,IAAI,KAAK,4BAA4B;wBAC/E,KAAK,CAAC,IAAI,KAAK,yBAAyB,EAAE,CAAC;wBAC7C,MAAM,aAAa,GAAG,qBAAqB,CAAC,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;wBAC/E,MAAM,QAAQ,GAAG,KAAK,CAAC,WAAW,CAAC;wBACnC,OAAO,CAAC,GAAG,CAAC,eAAe,KAAK,CAAC,IAAI,gBAAgB,QAAQ,YAAY,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;wBACvG,IAAI,QAAQ,EAAE,CAAC;4BACb,MAAM,OAAO,GAAG,EAAE,CAAC,UAAU,CAAC,QAAQ,EAAE,aAAa,EAAE,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;4BACzE,OAAO,CAAC,GAAG,CAAC,kCAAkC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,6BAA6B,EAAE,CAAC,CAAC;4BACrG,IAAI,OAAO;gCAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;wBACjC,CAAC;oBACH,CAAC;yBAAM,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,IAAI,KAAK,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;wBACjE,iDAAiD;wBACjD,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,OAAO,IAAI,EAAE,CAAC;wBAClD,MAAM,UAAU,GAAG,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;wBAC/G,QAAQ,CAAC,EAAE,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC;oBACtE,CAAC;gBACH,CAAC;YACH,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC;QAED,eAAe;QACf,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC1B,IAAI,GAAG,CAAC,UAAU,KAAK,SAAS;gBAAE,OAAO,KAAK,CAAC,CAAE,kBAAkB;YACnE,SAAS,EAAE,CAAC;YACZ,MAAM,cAAc,GAAuB,GAAG,CAAC,eAAe,CAAC;YAC/D,MAAM,WAAW,GAAG,cAAc,KAAK,eAAe,IAAI,cAAc,KAAK,mBAAmB,CAAC;YACjG,MAAM,UAAU,GAAI,GAAW,CAAC,UAAsF,CAAC;YACvH,MAAM,YAAY,GAAG,UAAU;gBAC7B,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,aAAa,IAAI,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;gBAC9F,CAAC,CAAC,GAAG,CAAC;YACR,OAAO,CAAC,GAAG,CAAC,wBAAwB,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,YAAY,GAAG,CAAC,OAAO,UAAU,GAAG,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,GAAG,YAAY,YAAY,GAAG,CAAC,CAAC;YAE5J,IAAI,WAAW,EAAE,CAAC;gBAChB,QAAQ,CAAC,EAAE,CAAC,aAAa,CAAC,kBAAkB,CAAC,CAAC,CAAC;YACjD,CAAC;YAED,MAAM,aAAa,GAAG,EAAE,CAAC,qBAAqB,EAAE,CAAC;YACjD,IAAI,aAAa;gBAAE,QAAQ,CAAC,aAAa,CAAC,CAAC;YAE3C,MAAM,KAAK,GAAG,GAAG,CAAC,KAEL,CAAC;YACd,IAAI,KAAK,IAAI,CAAC,CAAC,KAAK,CAAC,2BAA2B,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,uBAAuB,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;gBACxG,SAAS,CAAC,YAAY,EAAE,CAAC,SAAS,CAAC,CAAC;YACtC,CAAC;YACD,MAAM,SAAS,GAAkB;gBAC/B,SAAS;gBACT,OAAO,EAAE,GAAG,CAAC,OAAO,KAAK,SAAS,IAAI,CAAC,WAAW;gBAClD,KAAK,EAAE,CAAC,GAAG,CAAC,OAAO,KAAK,SAAS,IAAI,CAAC,WAAW,CAAC;oBAChD,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,kBAAkB,GAAG,CAAC,OAAO,EAAE,CAAC;oBAC7D,CAAC,CAAC,SAAS;gBACb,WAAW;gBACX,YAAY,EAAE,GAAG,CAAC,cAAc;gBAChC,UAAU,EAAE,KAAK;oBACf,CAAC,CAAC;wBACE,KAAK,EAAE,KAAK,CAAC,YAAY,IAAI,CAAC;wBAC9B,MAAM,EAAE,KAAK,CAAC,aAAa,IAAI,CAAC;wBAChC,aAAa,EAAE,KAAK,CAAC,2BAA2B;wBAChD,SAAS,EAAE,KAAK,CAAC,uBAAuB;qBACzC;oBACH,CAAC,CAAC,SAAS;aACd,CAAC;YACF,SAAS,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;YAEnC,yEAAyE;YACzE,yEAAyE;YACzE,wEAAwE;YACxE,yEAAyE;YACzE,QAAQ,EAAE,sBAAsB,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC;YAChD,KAAK,EAAE,CAAC,qBAAqB,EAAE,CAAC;YAEhC,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED,yDAAyD;IAEjD,KAAK,CAAC,oBAAoB,CAChC,SAAiB,EACjB,GAAQ,EACR,UAA8B,EAC9B,SAA4B;QAE5B,IAAI,CAAC,UAAU,CAAC,OAAO;YAAE,OAAO;QAEhC,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC;QACxB,MAAM,gBAAgB,GAAG,GAAG,CAAC,UAAU,CAAC;QACxC,MAAM,QAAQ,GAAG,GAAG,CAAC,SAAS,IAAI,SAAS,CAAC;QAC5C,MAAM,SAAS,GAAG,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC;QAClC,MAAM,SAAS,GAAG,GAAG,CAAC,WAAW,IAAI,EAAE,CAAC;QAExC,+DAA+D;QAC/D,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,uBAAuB,CAAC,SAAS,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,CAAC;QAExG,IAAI,QAAQ,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;YAC/B,IAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC,OAAO,EAAE,gBAAgB,EAAE;gBAC7D,QAAQ,EAAE,MAAM;gBAChB,OAAO,EAAE,QAAQ,CAAC,QAAQ,IAAI,QAAQ;aACvC,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC;QAC1B,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC,OAAO,EAAE,gBAAgB,EAAE;gBAC7D,QAAQ,EAAE,OAAO;gBACjB,YAAY,EAAE,QAAQ,CAAC,YAAY;aACpC,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC;IAEO,mBAAmB,CACzB,IAAkB,EAClB,gBAAwB,EACxB,MAA6G,EAC7G,QAAsB;QAEtB,wEAAwE;QACxE,gDAAgD;QAChD,MAAM,UAAU,GAAG,MAAM,CAAC,QAAQ,KAAK,OAAO;YAC5C,CAAC,CAAC,EAAE,GAAG,MAAM,EAAE,YAAY,EAAE,MAAM,CAAC,YAAY,IAAI,EAAE,EAAE;YACxD,CAAC,CAAC,MAAM,CAAC;QACX,MAAM,QAAQ,GAAG;YACf,IAAI,EAAE,kBAAkB;YACxB,QAAQ,EAAE;gBACR,OAAO,EAAE,SAAS;gBAClB,UAAU,EAAE,gBAAgB;gBAC5B,QAAQ,EAAE,UAAU;aACrB;SACF,CAAC;QACF,QAAQ,EAAE,WAAW,CAAC,EAAE,GAAG,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC,CAAC;QAC5D,IAAI,CAAC;YACH,IAAI,CAAC,KAAM,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,CAAC;QACrD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,wCAAwC,EAAE,GAAG,CAAC,CAAC;QAC/D,CAAC;IACH,CAAC;CACF"}
@@ -1,5 +1,23 @@
1
+ import type { Query, SDKUserMessage } from '@anthropic-ai/claude-agent-sdk';
1
2
  import { StreamCardBuilder } from './cardBuilder.js';
3
+ import { AsyncQueue } from './asyncQueue.js';
2
4
  import type { CodingAgentProvider, ProviderSession, ProviderCallbacks, StartSessionOpts, ResumeSessionOpts } from './provider.js';
5
+ export declare class SdkProviderSession implements ProviderSession {
6
+ private queryHandle;
7
+ private inputQueue;
8
+ private cardBuilder;
9
+ /** Callbacks for this session — used by sendUserMessage to emit the
10
+ * follow-up prompt as a card-event so other PWA tabs subscribed to this
11
+ * session see it in real time. Populated by start/resumeSession. */
12
+ callbacks: ProviderCallbacks | null;
13
+ constructor(queryHandle: Query, inputQueue: AsyncQueue<SDKUserMessage>, cardBuilder: StreamCardBuilder);
14
+ sendUserMessage(prompt: string): void;
15
+ interrupt(): void;
16
+ kill(): void;
17
+ get alive(): boolean;
18
+ /** Called when the stream ends naturally (query generator completes). */
19
+ markClosed(): void;
20
+ }
3
21
  export declare class ClaudeSdkProvider implements CodingAgentProvider {
4
22
  readonly id: "claude-code";
5
23
  readonly historyMode: "claude-jsonl";
@@ -1 +1 @@
1
- {"version":3,"file":"claudeSdkProvider.d.ts","sourceRoot":"","sources":["../../src/ai/claudeSdkProvider.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAIrD,OAAO,KAAK,EACV,mBAAmB,EACnB,eAAe,EACf,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB,EAElB,MAAM,eAAe,CAAC;AAsEvB,qBAAa,iBAAkB,YAAW,mBAAmB;IAC3D,QAAQ,CAAC,EAAE,EAAG,aAAa,CAAU;IACrC,QAAQ,CAAC,WAAW,EAAG,cAAc,CAAU;IAEzC,YAAY,CAChB,IAAI,EAAE,gBAAgB,EACtB,WAAW,EAAE,iBAAiB,EAC9B,SAAS,EAAE,iBAAiB,GAC3B,OAAO,CAAC;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,eAAe,CAAA;KAAE,CAAC;IA+BrD,aAAa,CACjB,IAAI,EAAE,iBAAiB,EACvB,WAAW,EAAE,iBAAiB,EAC9B,SAAS,EAAE,iBAAiB,GAC3B,OAAO,CAAC;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,eAAe,CAAA;KAAE,CAAC;IAiC3D,OAAO,CAAC,YAAY;IA+EpB,OAAO,CAAC,iBAAiB;YAWX,WAAW;YAiCX,aAAa;YAyEb,YAAY;CAoN3B"}
1
+ {"version":3,"file":"claudeSdkProvider.d.ts","sourceRoot":"","sources":["../../src/ai/claudeSdkProvider.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,KAAK,EAGL,cAAc,EAGf,MAAM,gCAAgC,CAAC;AAExC,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAErD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,OAAO,KAAK,EACV,mBAAmB,EACnB,eAAe,EACf,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB,EAElB,MAAM,eAAe,CAAC;AAoBvB,qBAAa,kBAAmB,YAAW,eAAe;IACxD,OAAO,CAAC,WAAW,CAAe;IAClC,OAAO,CAAC,UAAU,CAA6B;IAC/C,OAAO,CAAC,WAAW,CAAoB;IACvC;;wEAEoE;IAC7D,SAAS,EAAE,iBAAiB,GAAG,IAAI,CAAQ;gBAGhD,WAAW,EAAE,KAAK,EAClB,UAAU,EAAE,UAAU,CAAC,cAAc,CAAC,EACtC,WAAW,EAAE,iBAAiB;IAOhC,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAiBrC,SAAS,IAAI,IAAI;IAOjB,IAAI,IAAI,IAAI;IAQZ,IAAI,KAAK,IAAI,OAAO,CAEnB;IAED,yEAAyE;IACzE,UAAU,IAAI,IAAI;CAGnB;AAMD,qBAAa,iBAAkB,YAAW,mBAAmB;IAC3D,QAAQ,CAAC,EAAE,EAAG,aAAa,CAAU;IACrC,QAAQ,CAAC,WAAW,EAAG,cAAc,CAAU;IAEzC,YAAY,CAChB,IAAI,EAAE,gBAAgB,EACtB,WAAW,EAAE,iBAAiB,EAC9B,SAAS,EAAE,iBAAiB,GAC3B,OAAO,CAAC;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,eAAe,CAAA;KAAE,CAAC;IAgCrD,aAAa,CACjB,IAAI,EAAE,iBAAiB,EACvB,WAAW,EAAE,iBAAiB,EAC9B,SAAS,EAAE,iBAAiB,GAC3B,OAAO,CAAC;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,eAAe,CAAA;KAAE,CAAC;IAkC3D,OAAO,CAAC,YAAY;IA+EpB,OAAO,CAAC,iBAAiB;YAWX,WAAW;YAiCX,aAAa;YAqEb,YAAY;CAkN3B"}
@@ -20,18 +20,29 @@ function extractToolResultText(content) {
20
20
  // ============================================================================
21
21
  // SdkProviderSession — wraps SDK Query for ProviderSession interface
22
22
  // ============================================================================
23
- class SdkProviderSession {
23
+ export class SdkProviderSession {
24
24
  queryHandle;
25
25
  inputQueue;
26
- /** StreamIds queued by hot resume — consumeStream pops after each result. */
27
- pendingStreamIds = [];
28
- constructor(queryHandle, inputQueue) {
26
+ cardBuilder;
27
+ /** Callbacks for this session — used by sendUserMessage to emit the
28
+ * follow-up prompt as a card-event so other PWA tabs subscribed to this
29
+ * session see it in real time. Populated by start/resumeSession. */
30
+ callbacks = null;
31
+ constructor(queryHandle, inputQueue, cardBuilder) {
29
32
  this.queryHandle = queryHandle;
30
33
  this.inputQueue = inputQueue;
34
+ this.cardBuilder = cardBuilder;
31
35
  }
32
36
  sendUserMessage(prompt) {
33
37
  if (!this.queryHandle)
34
38
  return;
39
+ // Record the prompt in the cardBuilder so getCards on reconnect/refresh
40
+ // returns it before the SDK has flushed it to the session JSONL.
41
+ const userEvent = this.cardBuilder.userMessage(prompt);
42
+ // Emit the card-event so other PWA tabs subscribed to this session see
43
+ // the follow-up prompt in real time. The sending tab dedupes its
44
+ // optimistic card by text + recent timestamp in claudeStore.
45
+ this.callbacks?.emitCardEvent(userEvent);
35
46
  const userMsg = {
36
47
  type: 'user',
37
48
  message: { role: 'user', content: prompt },
@@ -82,11 +93,12 @@ export class ClaudeSdkProvider {
82
93
  // Wait for init message to get sessionId
83
94
  const sessionId = await this.waitForInit(queryHandle, callbacks);
84
95
  sessionIdRef.current = sessionId;
85
- const sdkSession = new SdkProviderSession(queryHandle, inputQueue);
96
+ const sdkSession = new SdkProviderSession(queryHandle, inputQueue, cardBuilder);
97
+ sdkSession.callbacks = callbacks;
86
98
  // Update cardBuilder with real sessionId
87
99
  cardBuilder.updateSessionId(sessionId);
88
100
  // Fire and forget the stream consumer
89
- this.consumeStream(sessionId, opts.streamId, queryHandle, sdkSession, cardBuilder, callbacks, opts.prompt);
101
+ this.consumeStream(sessionId, queryHandle, sdkSession, cardBuilder, callbacks, opts.prompt);
90
102
  return { sessionId, session: sdkSession };
91
103
  }
92
104
  async resumeSession(opts, cardBuilder, callbacks) {
@@ -104,11 +116,12 @@ export class ClaudeSdkProvider {
104
116
  // Wait for init message
105
117
  const sessionId = await this.waitForInit(queryHandle, callbacks);
106
118
  sessionIdRef.current = sessionId;
107
- const sdkSession = new SdkProviderSession(queryHandle, inputQueue);
119
+ const sdkSession = new SdkProviderSession(queryHandle, inputQueue, cardBuilder);
120
+ sdkSession.callbacks = callbacks;
108
121
  // Update cardBuilder with confirmed sessionId
109
122
  cardBuilder.updateSessionId(sessionId);
110
123
  // Fire and forget
111
- this.consumeStream(sessionId, opts.streamId, queryHandle, sdkSession, cardBuilder, callbacks, opts.prompt);
124
+ this.consumeStream(sessionId, queryHandle, sdkSession, cardBuilder, callbacks, opts.prompt);
112
125
  return { sessionId, session: sdkSession };
113
126
  }
114
127
  // ── Private: Build SDK Options ──
@@ -210,16 +223,17 @@ export class ClaudeSdkProvider {
210
223
  throw new Error('SDK query ended without init message');
211
224
  }
212
225
  // ── Private: Stream Consumer ──
213
- async consumeStream(sessionId, initialStreamId, queryHandle, sdkSession, cb, callbacks, prompt) {
214
- let streamId = initialStreamId;
226
+ async consumeStream(sessionId, queryHandle, sdkSession, cb, callbacks, prompt) {
215
227
  let textBuffer = '';
216
228
  let bufferTimer = null;
217
229
  let resultEmitted = false;
218
230
  const emitCard = (event) => { callbacks.emitCardEvent(event); };
219
- cb.startNewTurn(streamId);
220
- // Add user prompt to cardBuilder (for getCards on reconnect) but don't emit
231
+ cb.startNewTurn();
232
+ // Record + emit the initial user prompt so other PWA tabs subscribed to
233
+ // this session see it in real time. The sending tab dedupes its
234
+ // optimistic card by text + recent timestamp in claudeStore.
221
235
  if (prompt) {
222
- cb.userMessage(prompt);
236
+ emitCard(cb.userMessage(prompt));
223
237
  }
224
238
  const flushText = () => {
225
239
  if (textBuffer) {
@@ -242,16 +256,13 @@ export class ClaudeSdkProvider {
242
256
  };
243
257
  try {
244
258
  for await (const msg of queryHandle) {
245
- const emittedResult = await this.routeMessage(sessionId, streamId, msg, sdkSession, cb, callbacks, emitCard, flushText, bufferText);
259
+ const emittedResult = await this.routeMessage(sessionId, msg, sdkSession, cb, callbacks, emitCard, flushText, bufferText);
246
260
  if (emittedResult) {
247
261
  resultEmitted = true;
248
- // Check for hot resume start new turn with next pending streamId
249
- const nextStreamId = sdkSession.pendingStreamIds.shift();
250
- if (nextStreamId) {
251
- streamId = nextStreamId;
252
- cb.startNewTurn(streamId);
253
- resultEmitted = false; // Reset for next turn
254
- }
262
+ // Reset per-turn state. If a follow-up prompt arrived during this
263
+ // turn, the SDK will pick it up from inputQueue and the next
264
+ // assistant text should land in a fresh card.
265
+ cb.startNewTurn();
255
266
  }
256
267
  }
257
268
  }
@@ -259,7 +270,7 @@ export class ClaudeSdkProvider {
259
270
  flushText();
260
271
  console.error(`[sdk] stream error session=${sessionId.slice(0, 8)}:`, error);
261
272
  const msg = error instanceof Error ? error.message : 'Unknown error';
262
- callbacks.emitStreamEnd({ streamId, sessionId, success: false, error: msg });
273
+ callbacks.emitStreamEnd({ sessionId, success: false, error: msg });
263
274
  resultEmitted = true;
264
275
  }
265
276
  finally {
@@ -267,13 +278,13 @@ export class ClaudeSdkProvider {
267
278
  clearTimeout(bufferTimer);
268
279
  sdkSession.markClosed();
269
280
  if (!resultEmitted) {
270
- callbacks.emitStreamEnd({ streamId, sessionId, success: false, error: 'SDK query ended unexpectedly' });
281
+ callbacks.emitStreamEnd({ sessionId, success: false, error: 'SDK query ended unexpectedly' });
271
282
  }
272
283
  }
273
284
  }
274
285
  // ── Private: Route a single SDK message ──
275
286
  // Returns true if a result/stream-end was emitted.
276
- async routeMessage(sessionId, streamId, msg, _sdkSession, cb, callbacks, emitCard, flushText, bufferText) {
287
+ async routeMessage(sessionId, msg, _sdkSession, cb, callbacks, emitCard, flushText, bufferText) {
277
288
  // ── System events ──
278
289
  if (msg.type === 'system') {
279
290
  const subtype = msg.subtype;
@@ -439,7 +450,6 @@ export class ClaudeSdkProvider {
439
450
  }
440
451
  const errors = msg.errors;
441
452
  const streamEnd = {
442
- streamId,
443
453
  sessionId,
444
454
  success: msg.subtype === 'success' && !interrupted,
445
455
  error: (msg.subtype !== 'success' && !interrupted)