codex-multi-auth 1.2.7 → 1.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 (115) hide show
  1. package/README.md +5 -3
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +41 -21
  4. package/dist/index.js.map +1 -1
  5. package/dist/lib/accounts.d.ts +47 -0
  6. package/dist/lib/accounts.d.ts.map +1 -1
  7. package/dist/lib/accounts.js +219 -33
  8. package/dist/lib/accounts.js.map +1 -1
  9. package/dist/lib/auth/auth.d.ts +16 -0
  10. package/dist/lib/auth/auth.d.ts.map +1 -1
  11. package/dist/lib/auth/auth.js +52 -6
  12. package/dist/lib/auth/auth.js.map +1 -1
  13. package/dist/lib/auth/server.d.ts +1 -1
  14. package/dist/lib/auth/server.d.ts.map +1 -1
  15. package/dist/lib/auth/server.js +10 -8
  16. package/dist/lib/auth/server.js.map +1 -1
  17. package/dist/lib/codex-manager/commands/status.d.ts.map +1 -1
  18. package/dist/lib/codex-manager/commands/status.js +13 -5
  19. package/dist/lib/codex-manager/commands/status.js.map +1 -1
  20. package/dist/lib/codex-manager/commands/verify.d.ts +59 -0
  21. package/dist/lib/codex-manager/commands/verify.d.ts.map +1 -0
  22. package/dist/lib/codex-manager/commands/verify.js +332 -0
  23. package/dist/lib/codex-manager/commands/verify.js.map +1 -0
  24. package/dist/lib/codex-manager/commands/why-selected.d.ts +57 -0
  25. package/dist/lib/codex-manager/commands/why-selected.d.ts.map +1 -0
  26. package/dist/lib/codex-manager/commands/why-selected.js +198 -0
  27. package/dist/lib/codex-manager/commands/why-selected.js.map +1 -0
  28. package/dist/lib/codex-manager/help.d.ts.map +1 -1
  29. package/dist/lib/codex-manager/help.js +4 -0
  30. package/dist/lib/codex-manager/help.js.map +1 -1
  31. package/dist/lib/codex-manager/settings-hub/backend.d.ts +9 -0
  32. package/dist/lib/codex-manager/settings-hub/backend.d.ts.map +1 -0
  33. package/dist/lib/codex-manager/settings-hub/backend.js +79 -0
  34. package/dist/lib/codex-manager/settings-hub/backend.js.map +1 -0
  35. package/dist/lib/codex-manager/settings-hub/dashboard.d.ts +24 -0
  36. package/dist/lib/codex-manager/settings-hub/dashboard.d.ts.map +1 -0
  37. package/dist/lib/codex-manager/settings-hub/dashboard.js +223 -0
  38. package/dist/lib/codex-manager/settings-hub/dashboard.js.map +1 -0
  39. package/dist/lib/codex-manager/settings-hub/experimental.d.ts +18 -0
  40. package/dist/lib/codex-manager/settings-hub/experimental.d.ts.map +1 -0
  41. package/dist/lib/codex-manager/settings-hub/experimental.js +78 -0
  42. package/dist/lib/codex-manager/settings-hub/experimental.js.map +1 -0
  43. package/dist/lib/codex-manager/settings-hub/index.d.ts +34 -0
  44. package/dist/lib/codex-manager/settings-hub/index.d.ts.map +1 -0
  45. package/dist/lib/codex-manager/settings-hub/index.js +81 -0
  46. package/dist/lib/codex-manager/settings-hub/index.js.map +1 -0
  47. package/dist/lib/codex-manager/settings-hub/shared.d.ts +40 -0
  48. package/dist/lib/codex-manager/settings-hub/shared.d.ts.map +1 -0
  49. package/dist/lib/codex-manager/settings-hub/shared.js +103 -0
  50. package/dist/lib/codex-manager/settings-hub/shared.js.map +1 -0
  51. package/dist/lib/codex-manager/settings-hub.d.ts +1 -64
  52. package/dist/lib/codex-manager/settings-hub.d.ts.map +1 -1
  53. package/dist/lib/codex-manager/settings-hub.js +4 -515
  54. package/dist/lib/codex-manager/settings-hub.js.map +1 -1
  55. package/dist/lib/codex-manager.d.ts.map +1 -1
  56. package/dist/lib/codex-manager.js +95 -13
  57. package/dist/lib/codex-manager.js.map +1 -1
  58. package/dist/lib/config.d.ts +14 -0
  59. package/dist/lib/config.d.ts.map +1 -1
  60. package/dist/lib/config.js +21 -9
  61. package/dist/lib/config.js.map +1 -1
  62. package/dist/lib/health.d.ts.map +1 -1
  63. package/dist/lib/health.js.map +1 -1
  64. package/dist/lib/recovery/storage.d.ts.map +1 -1
  65. package/dist/lib/recovery/storage.js +112 -8
  66. package/dist/lib/recovery/storage.js.map +1 -1
  67. package/dist/lib/request/response-handler.d.ts.map +1 -1
  68. package/dist/lib/request/response-handler.js +67 -23
  69. package/dist/lib/request/response-handler.js.map +1 -1
  70. package/dist/lib/rotation.d.ts +53 -1
  71. package/dist/lib/rotation.d.ts.map +1 -1
  72. package/dist/lib/rotation.js +135 -23
  73. package/dist/lib/rotation.js.map +1 -1
  74. package/dist/lib/routing-mutex.d.ts +107 -0
  75. package/dist/lib/routing-mutex.d.ts.map +1 -0
  76. package/dist/lib/routing-mutex.js +104 -0
  77. package/dist/lib/routing-mutex.js.map +1 -0
  78. package/dist/lib/runtime/storage-scope.d.ts.map +1 -1
  79. package/dist/lib/runtime/storage-scope.js +17 -1
  80. package/dist/lib/runtime/storage-scope.js.map +1 -1
  81. package/dist/lib/schemas.d.ts +125 -0
  82. package/dist/lib/schemas.d.ts.map +1 -1
  83. package/dist/lib/schemas.js +139 -5
  84. package/dist/lib/schemas.js.map +1 -1
  85. package/dist/lib/storage/account-clear.d.ts.map +1 -1
  86. package/dist/lib/storage/account-clear.js +7 -1
  87. package/dist/lib/storage/account-clear.js.map +1 -1
  88. package/dist/lib/storage/flagged-storage-file.d.ts.map +1 -1
  89. package/dist/lib/storage/flagged-storage-file.js +17 -1
  90. package/dist/lib/storage/flagged-storage-file.js.map +1 -1
  91. package/dist/lib/storage/flagged-storage-io.d.ts.map +1 -1
  92. package/dist/lib/storage/flagged-storage-io.js +24 -10
  93. package/dist/lib/storage/flagged-storage-io.js.map +1 -1
  94. package/dist/lib/storage/import-export.d.ts.map +1 -1
  95. package/dist/lib/storage/import-export.js +16 -4
  96. package/dist/lib/storage/import-export.js.map +1 -1
  97. package/dist/lib/storage/paths.d.ts.map +1 -1
  98. package/dist/lib/storage/paths.js +62 -7
  99. package/dist/lib/storage/paths.js.map +1 -1
  100. package/dist/lib/storage/snapshot-inspectors.d.ts.map +1 -1
  101. package/dist/lib/storage/snapshot-inspectors.js +23 -16
  102. package/dist/lib/storage/snapshot-inspectors.js.map +1 -1
  103. package/dist/lib/storage/storage-parser.d.ts +17 -0
  104. package/dist/lib/storage/storage-parser.d.ts.map +1 -1
  105. package/dist/lib/storage/storage-parser.js +30 -1
  106. package/dist/lib/storage/storage-parser.js.map +1 -1
  107. package/dist/lib/storage.d.ts +1 -1
  108. package/dist/lib/storage.d.ts.map +1 -1
  109. package/dist/lib/storage.js +45 -26
  110. package/dist/lib/storage.js.map +1 -1
  111. package/dist/lib/ui/copy.d.ts +1 -1
  112. package/dist/lib/ui/copy.d.ts.map +1 -1
  113. package/dist/lib/ui/copy.js +2 -1
  114. package/dist/lib/ui/copy.js.map +1 -1
  115. package/package.json +5 -5
@@ -130,7 +130,7 @@ function rebuildPhaseText(state, phase) {
130
130
  function setPhaseTextSegment(state, phase, outputTextKey, text) {
131
131
  const normalizedPhase = typeof phase === "string" && phase.trim().length > 0
132
132
  ? phase.trim()
133
- : state.outputTextPhases.get(outputTextKey) ?? null;
133
+ : (state.outputTextPhases.get(outputTextKey) ?? null);
134
134
  if (!normalizedPhase)
135
135
  return;
136
136
  state.outputTextPhases.set(outputTextKey, normalizedPhase);
@@ -152,7 +152,7 @@ function appendPhaseTextSegment(state, phase, outputTextKey, delta) {
152
152
  }
153
153
  const normalizedPhase = typeof phase === "string" && phase.trim().length > 0
154
154
  ? phase.trim()
155
- : state.outputTextPhases.get(outputTextKey) ?? null;
155
+ : (state.outputTextPhases.get(outputTextKey) ?? null);
156
156
  if (!normalizedPhase)
157
157
  return;
158
158
  state.outputTextPhases.set(outputTextKey, normalizedPhase);
@@ -427,7 +427,9 @@ function truncateDiagnosticText(value, maxLength = 400) {
427
427
  const trimmed = value.trim();
428
428
  if (trimmed.length === 0)
429
429
  return undefined;
430
- return trimmed.length > maxLength ? `${trimmed.slice(0, maxLength)}...` : trimmed;
430
+ return trimmed.length > maxLength
431
+ ? `${trimmed.slice(0, maxLength)}...`
432
+ : trimmed;
431
433
  }
432
434
  function logStreamDiagnostics(finalResponse) {
433
435
  if (!LOGGING_ENABLED || !isRecord(finalResponse)) {
@@ -465,7 +467,8 @@ function maybeCaptureResponseEvent(state, data, onResponseId) {
465
467
  if (!eventRecord)
466
468
  return;
467
469
  const outputIndex = getNumberField(eventRecord, "output_index");
468
- if (data.type === "response.output_item.added" || data.type === "response.output_item.done") {
470
+ if (data.type === "response.output_item.added" ||
471
+ data.type === "response.output_item.done") {
469
472
  upsertOutputItem(state, outputIndex, eventRecord.item);
470
473
  return;
471
474
  }
@@ -477,7 +480,8 @@ function maybeCaptureResponseEvent(state, data, onResponseId) {
477
480
  setOutputTextValue(state, outputIndex, getNumberField(eventRecord, "content_index"), getStringField(eventRecord, "text"), eventRecord.phase);
478
481
  return;
479
482
  }
480
- if (data.type === "response.content_part.added" || data.type === "response.content_part.done") {
483
+ if (data.type === "response.content_part.added" ||
484
+ data.type === "response.content_part.done") {
481
485
  const part = toMutableRecord(eventRecord.part);
482
486
  if (!part || getStringField(part, "type") !== "output_text") {
483
487
  capturePhase(state, part?.phase);
@@ -510,11 +514,13 @@ function maybeCaptureResponseEvent(state, data, onResponseId) {
510
514
  function parseSseStream(sseText, onResponseId) {
511
515
  const lines = sseText.split(/\r?\n/);
512
516
  const state = createParsedResponseState();
517
+ let malformedChunkCount = 0;
518
+ let firstMalformedSample = null;
513
519
  for (const line of lines) {
514
520
  const trimmedLine = line.trim();
515
- if (trimmedLine.startsWith('data: ')) {
521
+ if (trimmedLine.startsWith("data: ")) {
516
522
  const payload = trimmedLine.substring(6).trim();
517
- if (!payload || payload === '[DONE]')
523
+ if (!payload || payload === "[DONE]")
518
524
  continue;
519
525
  try {
520
526
  const data = JSON.parse(payload);
@@ -522,11 +528,31 @@ function parseSseStream(sseText, onResponseId) {
522
528
  if (state.encounteredError)
523
529
  return null;
524
530
  }
525
- catch {
526
- // Skip malformed JSON
531
+ catch (error) {
532
+ // AUDIT-H9 / H-03: previously these malformed chunks were
533
+ // silently discarded, masking upstream protocol drift + the
534
+ // downstream "empty response" symptom. Surface a structured
535
+ // warn with bounded context (first 120 chars + error message)
536
+ // and a running tally so operators can see frequency at a glance.
537
+ malformedChunkCount += 1;
538
+ if (firstMalformedSample === null) {
539
+ firstMalformedSample = payload.slice(0, 120);
540
+ }
541
+ if (malformedChunkCount === 1) {
542
+ log.warn("SSE malformed JSON chunk discarded", {
543
+ reason: error instanceof Error ? error.message : String(error),
544
+ sample: firstMalformedSample,
545
+ });
546
+ }
527
547
  }
528
548
  }
529
549
  }
550
+ if (malformedChunkCount > 1) {
551
+ log.warn("SSE malformed JSON chunks discarded (rollup)", {
552
+ totalCount: malformedChunkCount,
553
+ firstSample: firstMalformedSample,
554
+ });
555
+ }
530
556
  return finalizeParsedResponse(state);
531
557
  }
532
558
  /**
@@ -541,7 +567,7 @@ export async function convertSseToJson(response, headers, options) {
541
567
  }
542
568
  const reader = response.body.getReader();
543
569
  const decoder = new TextDecoder();
544
- let fullText = '';
570
+ let fullText = "";
545
571
  const streamStallTimeoutMs = Math.max(1_000, Math.floor(options?.streamStallTimeoutMs ?? DEFAULT_STREAM_STALL_TIMEOUT_MS));
546
572
  try {
547
573
  // Consume the entire stream
@@ -574,7 +600,7 @@ export async function convertSseToJson(response, headers, options) {
574
600
  logStreamDiagnostics(finalResponse);
575
601
  // Return as plain JSON (not SSE)
576
602
  const jsonHeaders = new Headers(headers);
577
- jsonHeaders.set('content-type', 'application/json; charset=utf-8');
603
+ jsonHeaders.set("content-type", "application/json; charset=utf-8");
578
604
  return new Response(JSON.stringify(finalResponse), {
579
605
  status: response.status,
580
606
  statusText: response.statusText,
@@ -597,6 +623,7 @@ export async function convertSseToJson(response, headers, options) {
597
623
  function createResponseIdCapturingStream(body, onResponseId) {
598
624
  const decoder = new TextDecoder();
599
625
  let bufferedText = "";
626
+ let loggedMalformedStreamChunk = false;
600
627
  const state = createParsedResponseState();
601
628
  const processBufferedLines = (flush = false) => {
602
629
  if (state.encounteredError)
@@ -621,8 +648,19 @@ function createResponseIdCapturingStream(body, onResponseId) {
621
648
  if (state.encounteredError)
622
649
  break;
623
650
  }
624
- catch {
625
- // Ignore malformed SSE lines and keep forwarding the raw stream.
651
+ catch (error) {
652
+ // AUDIT-H9 / H-03: stream passthrough. The raw bytes still
653
+ // reach the downstream consumer so malformed JSON does not
654
+ // break streaming — but we now warn ONCE with bounded
655
+ // context so operators can see the event rather than it
656
+ // being a silent black hole in the logs.
657
+ if (!loggedMalformedStreamChunk) {
658
+ loggedMalformedStreamChunk = true;
659
+ log.warn("SSE malformed JSON chunk in stream passthrough", {
660
+ reason: error instanceof Error ? error.message : String(error),
661
+ sample: payload.slice(0, 120),
662
+ });
663
+ }
626
664
  }
627
665
  }
628
666
  };
@@ -645,8 +683,8 @@ function createResponseIdCapturingStream(body, onResponseId) {
645
683
  */
646
684
  export function ensureContentType(headers) {
647
685
  const responseHeaders = new Headers(headers);
648
- if (!responseHeaders.has('content-type')) {
649
- responseHeaders.set('content-type', 'text/event-stream; charset=utf-8');
686
+ if (!responseHeaders.has("content-type")) {
687
+ responseHeaders.set("content-type", "text/event-stream; charset=utf-8");
650
688
  }
651
689
  return responseHeaders;
652
690
  }
@@ -677,19 +715,25 @@ async function readWithTimeout(reader, timeoutMs) {
677
715
  export function isEmptyResponse(body) {
678
716
  if (body === null || body === undefined)
679
717
  return true;
680
- if (typeof body === 'string' && body.trim() === '')
718
+ if (typeof body === "string" && body.trim() === "")
681
719
  return true;
682
- if (typeof body !== 'object')
720
+ if (typeof body !== "object")
683
721
  return false;
684
722
  const obj = body;
685
723
  if (Object.keys(obj).length === 0)
686
724
  return true;
687
- const hasOutput = 'output' in obj && obj.output !== null && obj.output !== undefined;
688
- const hasChoices = 'choices' in obj && Array.isArray(obj.choices) &&
689
- obj.choices.some(c => c !== null && c !== undefined && typeof c === 'object' && Object.keys(c).length > 0);
690
- const hasContent = 'content' in obj && obj.content !== null && obj.content !== undefined &&
691
- (typeof obj.content !== 'string' || obj.content.trim() !== '');
692
- if ('id' in obj || 'object' in obj || 'model' in obj) {
725
+ const hasOutput = "output" in obj && obj.output !== null && obj.output !== undefined;
726
+ const hasChoices = "choices" in obj &&
727
+ Array.isArray(obj.choices) &&
728
+ obj.choices.some((c) => c !== null &&
729
+ c !== undefined &&
730
+ typeof c === "object" &&
731
+ Object.keys(c).length > 0);
732
+ const hasContent = "content" in obj &&
733
+ obj.content !== null &&
734
+ obj.content !== undefined &&
735
+ (typeof obj.content !== "string" || obj.content.trim() !== "");
736
+ if ("id" in obj || "object" in obj || "model" in obj) {
693
737
  return !hasOutput && !hasChoices && !hasContent;
694
738
  }
695
739
  return false;
@@ -1 +1 @@
1
- {"version":3,"file":"response-handler.js","sourceRoot":"","sources":["../../../lib/request/response-handler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"response-handler.js","sourceRoot":"","sources":["../../../lib/request/response-handler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AACzE,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAIvC,MAAM,GAAG,GAAG,YAAY,CAAC,kBAAkB,CAAC,CAAC;AAE7C,MAAM,YAAY,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,0CAA0C;AACjF,MAAM,+BAA+B,GAAG,MAAM,CAAC;AAC/C,MAAM,2BAA2B,GAAG,GAAG,CAAC;AAkBxC,SAAS,yBAAyB;IACjC,OAAO;QACN,aAAa,EAAE,IAAI;QACnB,SAAS,EAAE,IAAI;QACf,WAAW,EAAE,IAAI,GAAG,EAAyB;QAC7C,UAAU,EAAE,IAAI,GAAG,EAAkB;QACrC,gBAAgB,EAAE,IAAI,GAAG,EAAkB;QAC3C,iBAAiB,EAAE,IAAI,GAAG,EAAkB;QAC5C,iBAAiB,EAAE,IAAI,GAAG,EAAoB;QAC9C,SAAS,EAAE,IAAI,GAAG,EAAkB;QACpC,oBAAoB,EAAE,IAAI,GAAG,EAAkB;QAC/C,eAAe,EAAE,IAAI,GAAG,EAAU;QAClC,gBAAgB,EAAE,KAAK;KACvB,CAAC;AACH,CAAC;AAED,SAAS,eAAe,CAAC,KAAc;IACtC,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AAC9C,CAAC;AAED,SAAS,cAAc,CAAC,MAAqB,EAAE,GAAW;IACzD,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IAC1B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;AAC3E,CAAC;AAED;;;;;GAKG;AACH,SAAS,cAAc,CAAC,MAAqB,EAAE,GAAW;IACzD,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IAC1B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;AAC5E,CAAC;AAED,SAAS,aAAa,CAAC,MAAqB,EAAE,GAAW;IACxD,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IAC1B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;AACrE,CAAC;AAED,SAAS,uBAAuB,CAAC,KAAoB;IACpD,OAAO,CACN,KAAK,KAAK,IAAI;QACd,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC;QACvB,KAAK,IAAI,CAAC;QACV,KAAK,IAAI,2BAA2B,CACpC,CAAC;AACH,CAAC;AAED,SAAS,iBAAiB,CAAC,OAAgB;IAC1C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;QAAE,OAAO,EAAE,CAAC;IACvC,OAAO,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC;AAC9D,CAAC;AAED,SAAS,WAAW,CACnB,IAA0B,EAC1B,MAAqB;IAErB,IAAI,CAAC,IAAI;QAAE,OAAO,EAAE,GAAG,MAAM,EAAE,CAAC;IAChC,MAAM,MAAM,GAAkB,EAAE,GAAG,IAAI,EAAE,GAAG,MAAM,EAAE,CAAC;IACrD,IAAI,SAAS,IAAI,MAAM,IAAI,SAAS,IAAI,IAAI,EAAE,CAAC;QAC9C,MAAM,aAAa,GAAG,iBAAiB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACxD,MAAM,CAAC,OAAO;YACb,aAAa,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,SAAS,IAAI,IAAI,CAAC;gBAC/C,CAAC,CAAC,aAAa;gBACf,CAAC,CAAC,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACrC,CAAC;IACD,OAAO,MAAM,CAAC;AACf,CAAC;AAED,SAAS,iBAAiB,CACzB,WAA0B,EAC1B,YAA2B;IAE3B,IACC,CAAC,uBAAuB,CAAC,WAAW,CAAC;QACrC,CAAC,uBAAuB,CAAC,YAAY,CAAC,EACrC,CAAC;QACF,OAAO,IAAI,CAAC;IACb,CAAC;IACD,OAAO,GAAG,WAAW,IAAI,YAAY,EAAE,CAAC;AACzC,CAAC;AAED,SAAS,uBAAuB,CAAC,KAAa,EAAE,aAAqB;IACpE,OAAO,GAAG,KAAK,SAAS,aAAa,EAAE,CAAC;AACzC,CAAC;AAED,SAAS,cAAc,CACtB,WAA0B,EAC1B,YAA2B;IAE3B,IACC,CAAC,uBAAuB,CAAC,WAAW,CAAC;QACrC,CAAC,uBAAuB,CAAC,YAAY,CAAC,EACrC,CAAC;QACF,OAAO,IAAI,CAAC;IACb,CAAC;IACD,OAAO,GAAG,WAAW,IAAI,YAAY,EAAE,CAAC;AACzC,CAAC;AAED,SAAS,WAAW,CAAC,IAAa;IACjC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IACjC,MAAM,IAAI,GAAG,cAAc,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAC1C,IAAI,IAAI;QAAE,OAAO,IAAI,CAAC;IACtB,OAAO,IAAI,CAAC;AACb,CAAC;AAED,SAAS,YAAY,CAAC,KAA0B,EAAE,KAAc;IAC/D,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IACnE,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;AAChC,CAAC;AAED,SAAS,yBAAyB,CACjC,KAA0B,EAC1B,KAAa,EACb,UAAkB;IAElB,MAAM,aAAa,GAAG,KAAK,CAAC,iBAAiB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACzD,IAAI,aAAa,EAAE,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;QACzC,OAAO,aAAa,CAAC;IACtB,CAAC;IACD,MAAM,SAAS,GAAG,CAAC,GAAG,CAAC,aAAa,IAAI,EAAE,CAAC,EAAE,UAAU,CAAC,CAAC;IACzD,KAAK,CAAC,iBAAiB,CAAC,GAAG,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;IAC9C,OAAO,SAAS,CAAC;AAClB,CAAC;AAED,SAAS,uBAAuB,CAC/B,KAA0B,EAC1B,KAAa,EACb,UAAkB;IAElB,MAAM,aAAa,GAAG,KAAK,CAAC,iBAAiB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACzD,IAAI,CAAC,aAAa;QAAE,OAAO;IAC3B,MAAM,SAAS,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,KAAK,UAAU,CAAC,CAAC;IACpE,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,KAAK,CAAC,iBAAiB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACtC,OAAO;IACR,CAAC;IACD,KAAK,CAAC,iBAAiB,CAAC,GAAG,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;AAC/C,CAAC;AAED,SAAS,gBAAgB,CAAC,KAA0B,EAAE,KAAa;IAClE,MAAM,WAAW,GAAG,KAAK,CAAC,iBAAiB,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;IAC7D,MAAM,IAAI,GAAG,WAAW;SACtB,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,KAAK,CAAC,iBAAiB,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;SACpD,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;SACnC,IAAI,CAAC,EAAE,CAAC,CAAC;IACX,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC9B,OAAO;IACR,CAAC;IACD,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AAClC,CAAC;AAED,SAAS,mBAAmB,CAC3B,KAA0B,EAC1B,KAAc,EACd,aAAqB,EACrB,IAAmB;IAEnB,MAAM,eAAe,GACpB,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC;QACnD,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE;QACd,CAAC,CAAC,CAAC,KAAK,CAAC,gBAAgB,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,IAAI,CAAC,CAAC;IACxD,IAAI,CAAC,eAAe;QAAE,OAAO;IAC7B,KAAK,CAAC,gBAAgB,CAAC,GAAG,CAAC,aAAa,EAAE,eAAe,CAAC,CAAC;IAC3D,KAAK,CAAC,SAAS,GAAG,eAAe,CAAC;IAClC,MAAM,UAAU,GAAG,uBAAuB,CAAC,eAAe,EAAE,aAAa,CAAC,CAAC;IAC3E,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAChC,KAAK,CAAC,iBAAiB,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAC3C,uBAAuB,CAAC,KAAK,EAAE,eAAe,EAAE,UAAU,CAAC,CAAC;QAC5D,gBAAgB,CAAC,KAAK,EAAE,eAAe,CAAC,CAAC;QACzC,OAAO;IACR,CAAC;IACD,yBAAyB,CAAC,KAAK,EAAE,eAAe,EAAE,UAAU,CAAC,CAAC;IAC9D,KAAK,CAAC,iBAAiB,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IAC9C,gBAAgB,CAAC,KAAK,EAAE,eAAe,CAAC,CAAC;AAC1C,CAAC;AAED,SAAS,sBAAsB,CAC9B,KAA0B,EAC1B,KAAc,EACd,aAAqB,EACrB,KAAoB;IAEpB,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAClC,OAAO;IACR,CAAC;IACD,MAAM,eAAe,GACpB,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC;QACnD,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE;QACd,CAAC,CAAC,CAAC,KAAK,CAAC,gBAAgB,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,IAAI,CAAC,CAAC;IACxD,IAAI,CAAC,eAAe;QAAE,OAAO;IAC7B,KAAK,CAAC,gBAAgB,CAAC,GAAG,CAAC,aAAa,EAAE,eAAe,CAAC,CAAC;IAC3D,KAAK,CAAC,SAAS,GAAG,eAAe,CAAC;IAClC,MAAM,UAAU,GAAG,uBAAuB,CAAC,eAAe,EAAE,aAAa,CAAC,CAAC;IAC3E,MAAM,UAAU,GAAG,yBAAyB,CAC3C,KAAK,EACL,eAAe,EACf,UAAU,CACV,CAAC;IACF,MAAM,QAAQ,GAAG,KAAK,CAAC,iBAAiB,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;IAC/D,KAAK,CAAC,iBAAiB,CAAC,GAAG,CAAC,UAAU,EAAE,GAAG,QAAQ,GAAG,KAAK,EAAE,CAAC,CAAC;IAC/D,IAAI,UAAU,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,UAAU,EAAE,CAAC;QACtD,MAAM,iBAAiB,GAAG,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC;QACrE,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,eAAe,EAAE,GAAG,iBAAiB,GAAG,KAAK,EAAE,CAAC,CAAC;QACrE,OAAO;IACR,CAAC;IACD,gBAAgB,CAAC,KAAK,EAAE,eAAe,CAAC,CAAC;AAC1C,CAAC;AAED,SAAS,gBAAgB,CACxB,KAA0B,EAC1B,WAA0B,EAC1B,IAAa;IAEb,IAAI,CAAC,uBAAuB,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;QAAE,OAAO;IACrE,MAAM,OAAO,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC;IAC3D,MAAM,MAAM,GAAG,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAC1C,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;IAC3C,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;AACnC,CAAC;AAED,SAAS,kBAAkB,CAC1B,KAA0B,EAC1B,WAA0B,EAC1B,YAA2B,EAC3B,IAAmB,EACnB,QAAiB,SAAS;IAE1B,MAAM,GAAG,GAAG,iBAAiB,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;IACzD,IAAI,CAAC,GAAG;QAAE,OAAO;IACjB,IAAI,CAAC,IAAI,EAAE,CAAC;QACX,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC7B,mBAAmB,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;QAC7C,OAAO;IACR,CAAC;IACD,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IAChC,mBAAmB,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;AAC9C,CAAC;AAED,SAAS,qBAAqB,CAC7B,KAA0B,EAC1B,WAA0B,EAC1B,YAA2B,EAC3B,KAAoB,EACpB,QAAiB,SAAS;IAE1B,IAAI,CAAC,KAAK;QAAE,OAAO;IACnB,MAAM,GAAG,GAAG,iBAAiB,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;IACzD,IAAI,CAAC,GAAG;QAAE,OAAO;IACjB,MAAM,QAAQ,GAAG,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;IACjD,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,QAAQ,GAAG,KAAK,EAAE,CAAC,CAAC;IACjD,sBAAsB,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;AAClD,CAAC;AAED,SAAS,wBAAwB,CAChC,KAA0B,EAC1B,WAA0B,EAC1B,YAA2B,EAC3B,IAAmB;IAEnB,MAAM,GAAG,GAAG,cAAc,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;IACtD,IAAI,CAAC,GAAG;QAAE,OAAO;IACjB,IAAI,CAAC,IAAI,EAAE,CAAC;QACX,KAAK,CAAC,oBAAoB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACvC,OAAO;IACR,CAAC;IACD,KAAK,CAAC,oBAAoB,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;AAC3C,CAAC;AAED,SAAS,2BAA2B,CACnC,KAA0B,EAC1B,WAA0B,EAC1B,YAA2B,EAC3B,KAAoB;IAEpB,IAAI,CAAC,KAAK;QAAE,OAAO;IACnB,MAAM,GAAG,GAAG,cAAc,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;IACtD,IAAI,CAAC,GAAG;QAAE,OAAO;IACjB,MAAM,QAAQ,GAAG,KAAK,CAAC,oBAAoB,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;IAC3D,KAAK,CAAC,oBAAoB,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,QAAQ,GAAG,KAAK,EAAE,CAAC,CAAC;AAC5D,CAAC;AAED,SAAS,uBAAuB,CAC/B,MAAiB,EACjB,KAAa;IAEb,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACjD,OAAO,MAAM,CAAC,MAAM,IAAI,KAAK,EAAE,CAAC;QAC/B,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;IACD,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC9B,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QACxB,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;IACpB,CAAC;IACD,OAAO,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAE,MAAM,CAAC,KAAK,CAAmB,CAAC,CAAC,CAAC,IAAI,CAAC;AAC1E,CAAC;AAED,SAAS,wBAAwB,CAChC,IAAmB,EACnB,KAAa;IAEb,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACjD,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACrE,OAAO,OAAO,CAAC,MAAM,IAAI,KAAK,EAAE,CAAC;QAChC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAClB,CAAC;IACD,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;IAC/B,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QACxB,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;IACrB,CAAC;IACD,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACvB,OAAO,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAE,OAAO,CAAC,KAAK,CAAmB,CAAC,CAAC,CAAC,IAAI,CAAC;AAC5E,CAAC;AAED,SAAS,0BAA0B,CAClC,QAAuB,EACvB,KAA0B;IAE1B,IAAI,KAAK,CAAC,UAAU,CAAC,IAAI,KAAK,CAAC;QAAE,OAAO;IACxC,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAE1E,KAAK,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,KAAK,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC;QACtD,MAAM,CAAC,eAAe,EAAE,gBAAgB,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC3D,MAAM,WAAW,GAAG,MAAM,CAAC,QAAQ,CAAC,eAAe,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;QAC/D,MAAM,YAAY,GAAG,MAAM,CAAC,QAAQ,CAAC,gBAAgB,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;QACjE,IACC,CAAC,uBAAuB,CAAC,WAAW,CAAC;YACrC,CAAC,uBAAuB,CAAC,YAAY,CAAC,EACrC,CAAC;YACF,SAAS;QACV,CAAC;QACD,MAAM,IAAI,GAAG,uBAAuB,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;QAC1D,IAAI,CAAC,IAAI;YAAE,SAAS;QACpB,MAAM,IAAI,GAAG,wBAAwB,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;QAC1D,IAAI,CAAC,IAAI;YAAE,SAAS;QACpB,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,CAAC;YACnC,IAAI,CAAC,IAAI,GAAG,aAAa,CAAC;QAC3B,CAAC;QACD,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACnC,mBAAmB,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;YACvD,SAAS;QACV,CAAC;QACD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IAClB,CAAC;IAED,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,QAAQ,CAAC,MAAM,GAAG,MAAM,CAAC;IAC1B,CAAC;AACF,CAAC;AAED,SAAS,4BAA4B,CACpC,QAAuB,EACvB,KAA0B;IAE1B,IAAI,KAAK,CAAC,WAAW,CAAC,IAAI,KAAK,CAAC;QAAE,OAAO;IACzC,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAE1E,KAAK,MAAM,CAAC,WAAW,EAAE,IAAI,CAAC,IAAI,KAAK,CAAC,WAAW,CAAC,OAAO,EAAE,EAAE,CAAC;QAC/D,IAAI,CAAC,uBAAuB,CAAC,WAAW,CAAC;YAAE,SAAS;QACpD,OAAO,MAAM,CAAC,MAAM,IAAI,WAAW,EAAE,CAAC;YACrC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACjB,CAAC;QACD,MAAM,CAAC,WAAW,CAAC,GAAG,WAAW,CAChC,eAAe,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,EACpC,IAAI,CACJ,CAAC;IACH,CAAC;IAED,QAAQ,CAAC,MAAM,GAAG,MAAM,CAAC;AAC1B,CAAC;AAED,SAAS,wBAAwB,CAAC,MAAiB;IAClD,OAAO,MAAM;SACX,MAAM,CAAC,QAAQ,CAAC;SAChB,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACb,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS;YAAE,OAAO,EAAE,CAAC;QACvC,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QAChE,OAAO,OAAO;aACZ,MAAM,CAAC,QAAQ,CAAC;aAChB,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;YACb,IAAI,IAAI,CAAC,IAAI,KAAK,aAAa;gBAAE,OAAO,EAAE,CAAC;YAC3C,OAAO,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QACvD,CAAC,CAAC;aACD,IAAI,CAAC,EAAE,CAAC,CAAC;IACZ,CAAC,CAAC;SACD,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;SACjC,IAAI,CAAC,EAAE,CAAC,CAAC;AACZ,CAAC;AAED,SAAS,2BAA2B,CAAC,MAAiB;IACrD,OAAO,MAAM;SACX,MAAM,CAAC,QAAQ,CAAC;SAChB,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACb,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW;YAAE,OAAO,EAAE,CAAC;QACzC,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QAChE,OAAO,OAAO;aACZ,MAAM,CAAC,QAAQ,CAAC;aAChB,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;aAC/D,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;aACjC,IAAI,CAAC,MAAM,CAAC,CAAC;IAChB,CAAC,CAAC;SACD,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;SACjC,IAAI,CAAC,MAAM,CAAC,CAAC;AAChB,CAAC;AAED,SAAS,uBAAuB,CAC/B,QAAuB,EACvB,KAA0B;IAE1B,IAAI,KAAK,CAAC,oBAAoB,CAAC,IAAI,KAAK,CAAC;QAAE,OAAO;IAClD,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAE1E,KAAK,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,KAAK,CAAC,oBAAoB,CAAC,OAAO,EAAE,EAAE,CAAC;QAChE,MAAM,CAAC,eAAe,EAAE,gBAAgB,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC3D,MAAM,WAAW,GAAG,MAAM,CAAC,QAAQ,CAAC,eAAe,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;QAC/D,MAAM,YAAY,GAAG,MAAM,CAAC,QAAQ,CAAC,gBAAgB,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;QACjE,IACC,CAAC,uBAAuB,CAAC,WAAW,CAAC;YACrC,CAAC,uBAAuB,CAAC,YAAY,CAAC,EACrC,CAAC;YACF,SAAS;QACV,CAAC;QACD,MAAM,IAAI,GAAG,uBAAuB,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;QAC1D,IAAI,CAAC,IAAI;YAAE,SAAS;QACpB,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACrE,OAAO,OAAO,CAAC,MAAM,IAAI,YAAY,EAAE,CAAC;YACvC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAClB,CAAC;QACD,MAAM,OAAO,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;QACtC,MAAM,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACzD,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,CAAC;YACvC,QAAQ,CAAC,IAAI,GAAG,cAAc,CAAC;QAChC,CAAC;QACD,IAAI,OAAO,QAAQ,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACvC,SAAS;QACV,CAAC;QACD,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC;QACrB,OAAO,CAAC,YAAY,CAAC,GAAG,QAAQ,CAAC;QACjC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,CAAC;YACnC,IAAI,CAAC,IAAI,GAAG,WAAW,CAAC;QACzB,CAAC;IACF,CAAC;IAED,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,QAAQ,CAAC,MAAM,GAAG,MAAM,CAAC;IAC1B,CAAC;AACF,CAAC;AAED,SAAS,sBAAsB,CAC9B,KAA0B;IAE1B,MAAM,QAAQ,GAAG,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,GAAG,KAAK,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IACzE,IAAI,CAAC,QAAQ;QAAE,OAAO,IAAI,CAAC;IAC3B,IAAI,KAAK,CAAC,gBAAgB;QAAE,OAAO,IAAI,CAAC;IAExC,4BAA4B,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IAC9C,0BAA0B,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IAC5C,uBAAuB,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IAEzC,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;IACrE,IAAI,OAAO,QAAQ,CAAC,WAAW,KAAK,QAAQ,EAAE,CAAC;QAC9C,MAAM,UAAU,GAAG,wBAAwB,CAAC,MAAM,CAAC,CAAC;QACpD,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3B,QAAQ,CAAC,WAAW,GAAG,UAAU,CAAC;QACnC,CAAC;IACF,CAAC;IAED,MAAM,oBAAoB,GAAG,2BAA2B,CAAC,MAAM,CAAC,CAAC;IACjE,IACC,oBAAoB,CAAC,MAAM,GAAG,CAAC;QAC/B,OAAO,QAAQ,CAAC,sBAAsB,KAAK,QAAQ,EAClD,CAAC;QACF,QAAQ,CAAC,sBAAsB,GAAG,oBAAoB,CAAC;IACxD,CAAC;IAED,IAAI,KAAK,CAAC,SAAS,IAAI,OAAO,QAAQ,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC3D,QAAQ,CAAC,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC;IAClC,CAAC;IAED,IAAI,KAAK,CAAC,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;QAC9B,MAAM,SAAS,GAAkB,EAAE,CAAC;QACpC,KAAK,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,KAAK,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE,CAAC;YACvD,SAAS,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;YACxB,IAAI,KAAK,KAAK,YAAY;gBAAE,QAAQ,CAAC,eAAe,GAAG,IAAI,CAAC;YAC5D,IAAI,KAAK,KAAK,cAAc;gBAAE,QAAQ,CAAC,iBAAiB,GAAG,IAAI,CAAC;QACjE,CAAC;QACD,QAAQ,CAAC,UAAU,GAAG,SAAS,CAAC;IACjC,CAAC;IAED,OAAO,QAAQ,CAAC;AACjB,CAAC;AACD,SAAS,iBAAiB,CAAC,QAAiB;IAC3C,IAAI,CAAC,QAAQ,IAAI,OAAO,QAAQ,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IAC3D,MAAM,SAAS,GAAI,QAA6B,CAAC,EAAE,CAAC;IACpD,OAAO,OAAO,SAAS,KAAK,QAAQ,IAAI,SAAS,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC;QAClE,CAAC,CAAC,SAAS,CAAC,IAAI,EAAE;QAClB,CAAC,CAAC,IAAI,CAAC;AACT,CAAC;AAED,SAAS,gBAAgB,CACxB,KAA0B,EAC1B,YAAwD,EACxD,QAAiB;IAEjB,MAAM,UAAU,GAAG,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IAC/C,IAAI,CAAC,UAAU,IAAI,CAAC,YAAY,IAAI,KAAK,CAAC,eAAe,CAAC,GAAG,CAAC,UAAU,CAAC;QACxE,OAAO;IACR,KAAK,CAAC,eAAe,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IACtC,IAAI,CAAC;QACJ,YAAY,CAAC,UAAU,CAAC,CAAC;IAC1B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,GAAG,CAAC,IAAI,CAAC,mDAAmD,EAAE;YAC7D,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC;YACpB,UAAU;SACV,CAAC,CAAC;IACJ,CAAC;AACF,CAAC;AAED,SAAS,sBAAsB,CAC9B,KAAc,EACd,SAAS,GAAG,GAAG;IAEf,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAC;IAChD,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAC7B,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IAC3C,OAAO,OAAO,CAAC,MAAM,GAAG,SAAS;QAChC,CAAC,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,KAAK;QACrC,CAAC,CAAC,OAAO,CAAC;AACZ,CAAC;AAED,SAAS,oBAAoB,CAAC,aAAsB;IACnD,IAAI,CAAC,eAAe,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;QAClD,OAAO;IACR,CAAC;IAED,MAAM,UAAU,GAAG,iBAAiB,CAAC,aAAa,CAAC,CAAC;IACpD,MAAM,KAAK,GAAG,cAAc,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;IACrD,MAAM,cAAc,GAAG,sBAAsB,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC;IAC7E,MAAM,eAAe,GAAG,sBAAsB,CAC7C,aAAa,CAAC,iBAAiB,CAC/B,CAAC;IACF,MAAM,oBAAoB,GAAG,sBAAsB,CAClD,aAAa,CAAC,sBAAsB,CACpC,CAAC;IACF,IAAI,KAAK,IAAI,cAAc,IAAI,eAAe,IAAI,oBAAoB,EAAE,CAAC;QACxE,UAAU,CAAC,oBAAoB,EAAE;YAChC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACrC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3B,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7C,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC/C,GAAG,CAAC,oBAAoB,CAAC,CAAC,CAAC,EAAE,oBAAoB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACzD,CAAC,CAAC;IACJ,CAAC;AACF,CAAC;AAED,SAAS,yBAAyB,CACjC,KAA0B,EAC1B,IAAkB,EAClB,YAA2C;IAE3C,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAC3B,GAAG,CAAC,KAAK,CAAC,0BAA0B,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACvD,KAAK,CAAC,gBAAgB,GAAG,IAAI,CAAC;QAC9B,OAAO;IACR,CAAC;IAED,IAAI,IAAI,CAAC,IAAI,KAAK,eAAe,IAAI,IAAI,CAAC,IAAI,KAAK,oBAAoB,EAAE,CAAC;QACzE,IAAI,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC7B,KAAK,CAAC,aAAa,GAAG,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC5C,CAAC;QACD,gBAAgB,CAAC,KAAK,EAAE,YAAY,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QACrD,OAAO;IACR,CAAC;IAED,MAAM,WAAW,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;IAC1C,IAAI,CAAC,WAAW;QAAE,OAAO;IACzB,MAAM,WAAW,GAAG,cAAc,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;IAEhE,IACC,IAAI,CAAC,IAAI,KAAK,4BAA4B;QAC1C,IAAI,CAAC,IAAI,KAAK,2BAA2B,EACxC,CAAC;QACF,gBAAgB,CAAC,KAAK,EAAE,WAAW,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC;QACvD,OAAO;IACR,CAAC;IAED,IAAI,IAAI,CAAC,IAAI,KAAK,4BAA4B,EAAE,CAAC;QAChD,qBAAqB,CACpB,KAAK,EACL,WAAW,EACX,cAAc,CAAC,WAAW,EAAE,eAAe,CAAC,EAC5C,aAAa,CAAC,WAAW,EAAE,OAAO,CAAC,EACnC,WAAW,CAAC,KAAK,CACjB,CAAC;QACF,OAAO;IACR,CAAC;IAED,IAAI,IAAI,CAAC,IAAI,KAAK,2BAA2B,EAAE,CAAC;QAC/C,kBAAkB,CACjB,KAAK,EACL,WAAW,EACX,cAAc,CAAC,WAAW,EAAE,eAAe,CAAC,EAC5C,cAAc,CAAC,WAAW,EAAE,MAAM,CAAC,EACnC,WAAW,CAAC,KAAK,CACjB,CAAC;QACF,OAAO;IACR,CAAC;IAED,IACC,IAAI,CAAC,IAAI,KAAK,6BAA6B;QAC3C,IAAI,CAAC,IAAI,KAAK,4BAA4B,EACzC,CAAC;QACF,MAAM,IAAI,GAAG,eAAe,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAC/C,IAAI,CAAC,IAAI,IAAI,cAAc,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,aAAa,EAAE,CAAC;YAC7D,YAAY,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;YACjC,OAAO;QACR,CAAC;QACD,kBAAkB,CACjB,KAAK,EACL,WAAW,EACX,cAAc,CAAC,WAAW,EAAE,eAAe,CAAC,EAC5C,WAAW,CAAC,IAAI,CAAC,EACjB,IAAI,CAAC,KAAK,CACV,CAAC;QACF,OAAO;IACR,CAAC;IAED,IAAI,IAAI,CAAC,IAAI,KAAK,uCAAuC,EAAE,CAAC;QAC3D,2BAA2B,CAC1B,KAAK,EACL,WAAW,EACX,cAAc,CAAC,WAAW,EAAE,eAAe,CAAC,EAC5C,aAAa,CAAC,WAAW,EAAE,OAAO,CAAC,CACnC,CAAC;QACF,OAAO;IACR,CAAC;IAED,IAAI,IAAI,CAAC,IAAI,KAAK,sCAAsC,EAAE,CAAC;QAC1D,wBAAwB,CACvB,KAAK,EACL,WAAW,EACX,cAAc,CAAC,WAAW,EAAE,eAAe,CAAC,EAC5C,cAAc,CAAC,WAAW,EAAE,MAAM,CAAC,CACnC,CAAC;QACF,OAAO;IACR,CAAC;IAED,IACC,IAAI,CAAC,IAAI,KAAK,uCAAuC;QACrD,IAAI,CAAC,IAAI,KAAK,sCAAsC,EACnD,CAAC;QACF,wBAAwB,CACvB,KAAK,EACL,WAAW,EACX,cAAc,CAAC,WAAW,EAAE,eAAe,CAAC,EAC5C,WAAW,CAAC,WAAW,CAAC,IAAI,CAAC,CAC7B,CAAC;QACF,OAAO;IACR,CAAC;IAED,YAAY,CAAC,KAAK,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC;AACxC,CAAC;AAED;;;;;GAKG;AACH,SAAS,cAAc,CACtB,OAAe,EACf,YAA2C;IAE3C,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACrC,MAAM,KAAK,GAAG,yBAAyB,EAAE,CAAC;IAE1C,IAAI,mBAAmB,GAAG,CAAC,CAAC;IAC5B,IAAI,oBAAoB,GAAkB,IAAI,CAAC;IAC/C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QAC1B,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QAChC,IAAI,WAAW,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YACtC,MAAM,OAAO,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YAChD,IAAI,CAAC,OAAO,IAAI,OAAO,KAAK,QAAQ;gBAAE,SAAS;YAC/C,IAAI,CAAC;gBACJ,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAiB,CAAC;gBACjD,yBAAyB,CAAC,KAAK,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC;gBACrD,IAAI,KAAK,CAAC,gBAAgB;oBAAE,OAAO,IAAI,CAAC;YACzC,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBAChB,0DAA0D;gBAC1D,4DAA4D;gBAC5D,4DAA4D;gBAC5D,8DAA8D;gBAC9D,kEAAkE;gBAClE,mBAAmB,IAAI,CAAC,CAAC;gBACzB,IAAI,oBAAoB,KAAK,IAAI,EAAE,CAAC;oBACnC,oBAAoB,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;gBAC9C,CAAC;gBACD,IAAI,mBAAmB,KAAK,CAAC,EAAE,CAAC;oBAC/B,GAAG,CAAC,IAAI,CAAC,oCAAoC,EAAE;wBAC9C,MAAM,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;wBAC9D,MAAM,EAAE,oBAAoB;qBAC5B,CAAC,CAAC;gBACJ,CAAC;YACF,CAAC;QACF,CAAC;IACF,CAAC;IAED,IAAI,mBAAmB,GAAG,CAAC,EAAE,CAAC;QAC7B,GAAG,CAAC,IAAI,CAAC,8CAA8C,EAAE;YACxD,UAAU,EAAE,mBAAmB;YAC/B,WAAW,EAAE,oBAAoB;SACjC,CAAC,CAAC;IACJ,CAAC;IAED,OAAO,sBAAsB,CAAC,KAAK,CAAC,CAAC;AACtC,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACrC,QAAkB,EAClB,OAAgB,EAChB,OAGC;IAED,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;QACpB,MAAM,IAAI,KAAK,CAAC,IAAI,WAAW,wBAAwB,CAAC,CAAC;IAC1D,CAAC;IACD,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;IACzC,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC;IAClC,IAAI,QAAQ,GAAG,EAAE,CAAC;IAClB,MAAM,oBAAoB,GAAG,IAAI,CAAC,GAAG,CACpC,KAAK,EACL,IAAI,CAAC,KAAK,CACT,OAAO,EAAE,oBAAoB,IAAI,+BAA+B,CAChE,CACD,CAAC;IAEF,IAAI,CAAC;QACJ,4BAA4B;QAC5B,OAAO,IAAI,EAAE,CAAC;YACb,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,eAAe,CAC5C,MAAM,EACN,oBAAoB,CACpB,CAAC;YACF,IAAI,IAAI;gBAAE,MAAM;YAChB,QAAQ,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;YACpD,IAAI,QAAQ,CAAC,MAAM,GAAG,YAAY,EAAE,CAAC;gBACpC,MAAM,IAAI,KAAK,CAAC,wBAAwB,YAAY,cAAc,CAAC,CAAC;YACrE,CAAC;QACF,CAAC;QAED,IAAI,eAAe,EAAE,CAAC;YACrB,UAAU,CAAC,aAAa,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC,CAAC;QACtD,CAAC;QAED,iDAAiD;QACjD,MAAM,aAAa,GAAG,cAAc,CAAC,QAAQ,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;QAEtE,IAAI,CAAC,aAAa,EAAE,CAAC;YACpB,GAAG,CAAC,IAAI,CAAC,6CAA6C,CAAC,CAAC;YAExD,UAAU,CAAC,cAAc,EAAE;gBAC1B,KAAK,EAAE,gDAAgD;aACvD,CAAC,CAAC;YAEH,2CAA2C;YAC3C,OAAO,IAAI,QAAQ,CAAC,QAAQ,EAAE;gBAC7B,MAAM,EAAE,QAAQ,CAAC,MAAM;gBACvB,UAAU,EAAE,QAAQ,CAAC,UAAU;gBAC/B,OAAO,EAAE,OAAO;aAChB,CAAC,CAAC;QACJ,CAAC;QAED,oBAAoB,CAAC,aAAa,CAAC,CAAC;QAEpC,iCAAiC;QACjC,MAAM,WAAW,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;QACzC,WAAW,CAAC,GAAG,CAAC,cAAc,EAAE,iCAAiC,CAAC,CAAC;QAEnE,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,EAAE;YAClD,MAAM,EAAE,QAAQ,CAAC,MAAM;YACvB,UAAU,EAAE,QAAQ,CAAC,UAAU;YAC/B,OAAO,EAAE,WAAW;SACpB,CAAC,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,GAAG,CAAC,KAAK,CAAC,yBAAyB,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC/D,UAAU,CAAC,cAAc,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACrD,IAAI,OAAO,MAAM,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;YACzC,MAAM,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QACpD,CAAC;QACD,MAAM,KAAK,CAAC;IACb,CAAC;YAAS,CAAC;QACV,oDAAoD;QACpD,MAAM,CAAC,WAAW,EAAE,CAAC;IACtB,CAAC;AACF,CAAC;AAED,SAAS,+BAA+B,CACvC,IAAgC,EAChC,YAA0C;IAE1C,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC;IAClC,IAAI,YAAY,GAAG,EAAE,CAAC;IACtB,IAAI,0BAA0B,GAAG,KAAK,CAAC;IACvC,MAAM,KAAK,GAAG,yBAAyB,EAAE,CAAC;IAE1C,MAAM,oBAAoB,GAAG,CAAC,KAAK,GAAG,KAAK,EAAQ,EAAE;QACpD,IAAI,KAAK,CAAC,gBAAgB;YAAE,OAAO;QACnC,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC1C,IAAI,CAAC,KAAK,EAAE,CAAC;YACZ,YAAY,GAAG,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC;QAClC,CAAC;aAAM,CAAC;YACP,YAAY,GAAG,EAAE,CAAC;QACnB,CAAC;QAED,KAAK,MAAM,OAAO,IAAI,KAAK,EAAE,CAAC;YAC7B,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;YACnC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,QAAQ,CAAC;gBAAE,SAAS;YAChD,MAAM,OAAO,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YAC5C,IAAI,CAAC,OAAO,IAAI,OAAO,KAAK,QAAQ;gBAAE,SAAS;YAC/C,IAAI,CAAC;gBACJ,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAiB,CAAC;gBACjD,yBAAyB,CAAC,KAAK,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC;gBACrD,IAAI,KAAK,CAAC,gBAAgB;oBAAE,MAAM;YACnC,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBAChB,2DAA2D;gBAC3D,2DAA2D;gBAC3D,sDAAsD;gBACtD,wDAAwD;gBACxD,yCAAyC;gBACzC,IAAI,CAAC,0BAA0B,EAAE,CAAC;oBACjC,0BAA0B,GAAG,IAAI,CAAC;oBAClC,GAAG,CAAC,IAAI,CAAC,gDAAgD,EAAE;wBAC1D,MAAM,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;wBAC9D,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC;qBAC7B,CAAC,CAAC;gBACJ,CAAC;YACF,CAAC;QACF,CAAC;IACF,CAAC,CAAC;IAEF,OAAO,IAAI,CAAC,WAAW,CACtB,IAAI,eAAe,CAAyB;QAC3C,SAAS,CAAC,KAAK,EAAE,UAAU;YAC1B,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;YACxD,oBAAoB,EAAE,CAAC;YACvB,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAC3B,CAAC;QACD,KAAK;YACJ,YAAY,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YACjC,oBAAoB,CAAC,IAAI,CAAC,CAAC;QAC5B,CAAC;KACD,CAAC,CACF,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAAC,OAAgB;IACjD,MAAM,eAAe,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAE7C,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,CAAC;QAC1C,eAAe,CAAC,GAAG,CAAC,cAAc,EAAE,kCAAkC,CAAC,CAAC;IACzE,CAAC;IAED,OAAO,eAAe,CAAC;AACxB,CAAC;AAED,KAAK,UAAU,eAAe,CAC7B,MAA+C,EAC/C,SAAiB;IAEjB,IAAI,SAAoD,CAAC;IACzD,IAAI,CAAC;QACJ,OAAO,MAAM,OAAO,CAAC,IAAI,CAAC;YACzB,MAAM,CAAC,IAAI,EAAE;YACb,IAAI,OAAO,CAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE;gBAChC,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE;oBAC3B,MAAM,CACL,IAAI,KAAK,CACR,0BAA0B,SAAS,gDAAgD,CACnF,CACD,CAAC;gBACH,CAAC,EAAE,SAAS,CAAC,CAAC;YACf,CAAC,CAAC;SACF,CAAC,CAAC;IACJ,CAAC;YAAS,CAAC;QACV,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;YAC7B,YAAY,CAAC,SAAS,CAAC,CAAC;QACzB,CAAC;IACF,CAAC;AACF,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAAC,IAAa;IAC5C,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IACrD,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE;QAAE,OAAO,IAAI,CAAC;IAChE,IAAI,OAAO,IAAI,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAE3C,MAAM,GAAG,GAAG,IAA+B,CAAC;IAE5C,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAE/C,MAAM,SAAS,GACd,QAAQ,IAAI,GAAG,IAAI,GAAG,CAAC,MAAM,KAAK,IAAI,IAAI,GAAG,CAAC,MAAM,KAAK,SAAS,CAAC;IACpE,MAAM,UAAU,GACf,SAAS,IAAI,GAAG;QAChB,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC;QAC1B,GAAG,CAAC,OAAO,CAAC,IAAI,CACf,CAAC,CAAC,EAAE,EAAE,CACL,CAAC,KAAK,IAAI;YACV,CAAC,KAAK,SAAS;YACf,OAAO,CAAC,KAAK,QAAQ;YACrB,MAAM,CAAC,IAAI,CAAC,CAAW,CAAC,CAAC,MAAM,GAAG,CAAC,CACpC,CAAC;IACH,MAAM,UAAU,GACf,SAAS,IAAI,GAAG;QAChB,GAAG,CAAC,OAAO,KAAK,IAAI;QACpB,GAAG,CAAC,OAAO,KAAK,SAAS;QACzB,CAAC,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ,IAAI,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IAEhE,IAAI,IAAI,IAAI,GAAG,IAAI,QAAQ,IAAI,GAAG,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC;QACtD,OAAO,CAAC,SAAS,IAAI,CAAC,UAAU,IAAI,CAAC,UAAU,CAAC;IACjD,CAAC;IAED,OAAO,KAAK,CAAC;AACd,CAAC;AAED,MAAM,UAAU,uBAAuB,CACtC,QAAkB,EAClB,OAAgB,EAChB,YAA2C;IAE3C,IAAI,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;QACrC,OAAO,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE;YAClC,MAAM,EAAE,QAAQ,CAAC,MAAM;YACvB,UAAU,EAAE,QAAQ,CAAC,UAAU;YAC/B,OAAO;SACP,CAAC,CAAC;IACJ,CAAC;IAED,OAAO,IAAI,QAAQ,CAClB,+BAA+B,CAAC,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC,EAC5D;QACC,MAAM,EAAE,QAAQ,CAAC,MAAM;QACvB,UAAU,EAAE,QAAQ,CAAC,UAAU;QAC/B,OAAO;KACP,CACD,CAAC;AACH,CAAC"}
@@ -5,6 +5,8 @@
5
5
  * Ported from antigravity-auth rotation logic for optimal account rotation
6
6
  * when rate limits are encountered.
7
7
  */
8
+ export type { SelectionRecord, RoutingMutexMode, AsyncMutex, } from "./routing-mutex.js";
9
+ export { createAsyncMutex, getRoutingMutex, withRoutingMutex, } from "./routing-mutex.js";
8
10
  export interface HealthScoreConfig {
9
11
  /** Points added on successful request */
10
12
  successDelta: number;
@@ -131,6 +133,57 @@ export interface SelectHybridAccountParams {
131
133
  */
132
134
  export declare function selectHybridAccount(params: SelectHybridAccountParams): AccountWithMetrics | null;
133
135
  export declare function selectHybridAccount(accounts: AccountWithMetrics[], healthTracker: HealthScoreTracker, tokenTracker: TokenBucketTracker, quotaKey?: string, config?: Partial<HybridSelectionConfig>, options?: HybridSelectionOptions): AccountWithMetrics | null;
136
+ /**
137
+ * Per-candidate score breakdown emitted by `selectHybridAccountTraced`.
138
+ *
139
+ * Values are captured live from the same inputs and weights used by
140
+ * `selectHybridAccount`, so the trace is faithful to production selection.
141
+ * Tokens/health are reported as raw (unrounded) numbers so callers can
142
+ * display exact values or round for presentation.
143
+ */
144
+ export interface HybridSelectionCandidateTrace {
145
+ index: number;
146
+ trackerKey: TrackerKey;
147
+ isAvailable: boolean;
148
+ lastUsed: number;
149
+ health: number;
150
+ tokens: number;
151
+ hoursSinceUsed: number;
152
+ capabilityBoost: number;
153
+ pidBonus: number;
154
+ score: number;
155
+ reason?: string;
156
+ }
157
+ export interface HybridSelectionTraceResult {
158
+ selected: AccountWithMetrics | null;
159
+ selectedIndex: number | null;
160
+ selectionReason: string;
161
+ candidates: HybridSelectionCandidateTrace[];
162
+ config: HybridSelectionConfig;
163
+ quotaKey?: string;
164
+ availableCount: number;
165
+ }
166
+ export interface SelectHybridAccountTracedParams {
167
+ accounts: AccountWithMetrics[];
168
+ healthTracker: HealthScoreTracker;
169
+ tokenTracker: TokenBucketTracker;
170
+ quotaKey?: string;
171
+ config?: Partial<HybridSelectionConfig>;
172
+ options?: HybridSelectionOptions;
173
+ }
174
+ /**
175
+ * Non-mutating variant of {@link selectHybridAccount} that returns the winning
176
+ * account alongside a per-candidate score breakdown.
177
+ *
178
+ * The scoring logic mirrors `selectHybridAccount` exactly (same weights, same
179
+ * availability gating, same PID offset behaviour, same capability boost), so
180
+ * this function can be used by diagnostic commands (e.g. `codex auth
181
+ * why-selected --now`) without drifting from production selection. Candidates
182
+ * are returned sorted by descending score.
183
+ *
184
+ * No mutation of trackers or account state occurs; this is purely a read.
185
+ */
186
+ export declare function selectHybridAccountTraced(params: SelectHybridAccountTracedParams): HybridSelectionTraceResult;
134
187
  /**
135
188
  * Adds random jitter to a delay value.
136
189
  * @param baseMs - Base delay in milliseconds
@@ -164,5 +217,4 @@ export declare function exponentialBackoff(attempt: number, baseMs?: number, max
164
217
  export declare function getHealthTracker(config?: Partial<HealthScoreConfig>): HealthScoreTracker;
165
218
  export declare function getTokenTracker(config?: Partial<TokenBucketConfig>): TokenBucketTracker;
166
219
  export declare function resetTrackers(): void;
167
- export {};
168
220
  //# sourceMappingURL=rotation.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"rotation.d.ts","sourceRoot":"","sources":["../../lib/rotation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rotation.d.ts","sourceRoot":"","sources":["../../lib/rotation.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,7 @@
6
6
  * when rate limits are encountered.
7
7
  */
8
8
  import { createLogger } from "./logger.js";
9
+ export { createAsyncMutex, getRoutingMutex, withRoutingMutex, } from "./routing-mutex.js";
9
10
  const log = createLogger("rotation");
10
11
  export const DEFAULT_HEALTH_SCORE_CONFIG = {
11
12
  successDelta: 1,
@@ -53,7 +54,9 @@ export class HealthScoreTracker {
53
54
  recordSuccess(accountKey, quotaKey) {
54
55
  const key = this.getKey(accountKey, quotaKey);
55
56
  const entry = this.entries.get(key);
56
- const baseScore = entry ? this.applyPassiveRecovery(entry) : this.config.maxScore;
57
+ const baseScore = entry
58
+ ? this.applyPassiveRecovery(entry)
59
+ : this.config.maxScore;
57
60
  const newScore = Math.min(baseScore + this.config.successDelta, this.config.maxScore);
58
61
  this.entries.set(key, {
59
62
  score: newScore,
@@ -64,7 +67,9 @@ export class HealthScoreTracker {
64
67
  recordRateLimit(accountKey, quotaKey) {
65
68
  const key = this.getKey(accountKey, quotaKey);
66
69
  const entry = this.entries.get(key);
67
- const baseScore = entry ? this.applyPassiveRecovery(entry) : this.config.maxScore;
70
+ const baseScore = entry
71
+ ? this.applyPassiveRecovery(entry)
72
+ : this.config.maxScore;
68
73
  const newScore = Math.max(baseScore + this.config.rateLimitDelta, this.config.minScore);
69
74
  this.entries.set(key, {
70
75
  score: newScore,
@@ -75,7 +80,9 @@ export class HealthScoreTracker {
75
80
  recordFailure(accountKey, quotaKey) {
76
81
  const key = this.getKey(accountKey, quotaKey);
77
82
  const entry = this.entries.get(key);
78
- const baseScore = entry ? this.applyPassiveRecovery(entry) : this.config.maxScore;
83
+ const baseScore = entry
84
+ ? this.applyPassiveRecovery(entry)
85
+ : this.config.maxScore;
79
86
  const newScore = Math.max(baseScore + this.config.failureDelta, this.config.minScore);
80
87
  this.entries.set(key, {
81
88
  score: newScore,
@@ -128,7 +135,9 @@ export class TokenBucketTracker {
128
135
  tryConsume(accountKey, quotaKey) {
129
136
  const key = this.getKey(accountKey, quotaKey);
130
137
  const entry = this.buckets.get(key);
131
- const currentTokens = entry ? this.refillTokens(entry) : this.config.maxTokens;
138
+ const currentTokens = entry
139
+ ? this.refillTokens(entry)
140
+ : this.config.maxTokens;
132
141
  if (currentTokens < 1) {
133
142
  return false;
134
143
  }
@@ -173,7 +182,9 @@ export class TokenBucketTracker {
173
182
  drain(accountKey, quotaKey, drainAmount = 10) {
174
183
  const key = this.getKey(accountKey, quotaKey);
175
184
  const entry = this.buckets.get(key);
176
- const currentTokens = entry ? this.refillTokens(entry) : this.config.maxTokens;
185
+ const currentTokens = entry
186
+ ? this.refillTokens(entry)
187
+ : this.config.maxTokens;
177
188
  this.buckets.set(key, {
178
189
  tokens: Math.max(0, currentTokens - drainAmount),
179
190
  lastRefill: Date.now(),
@@ -199,9 +210,15 @@ export function selectHybridAccount(accountsOrParams, healthTracker, tokenTracke
199
210
  typeof accountsOrParams === "object"
200
211
  ? accountsOrParams
201
212
  : null;
202
- const resolvedAccounts = namedParams ? namedParams.accounts : accountsOrParams;
203
- const resolvedHealthTracker = namedParams ? namedParams.healthTracker : healthTracker;
204
- const resolvedTokenTracker = namedParams ? namedParams.tokenTracker : tokenTracker;
213
+ const resolvedAccounts = namedParams
214
+ ? namedParams.accounts
215
+ : accountsOrParams;
216
+ const resolvedHealthTracker = namedParams
217
+ ? namedParams.healthTracker
218
+ : healthTracker;
219
+ const resolvedTokenTracker = namedParams
220
+ ? namedParams.tokenTracker
221
+ : tokenTracker;
205
222
  const resolvedQuotaKey = namedParams ? namedParams.quotaKey : quotaKey;
206
223
  const resolvedConfig = namedParams ? (namedParams.config ?? {}) : config;
207
224
  const resolvedOptions = namedParams ? (namedParams.options ?? {}) : options;
@@ -213,18 +230,15 @@ export function selectHybridAccount(accountsOrParams, healthTracker, tokenTracke
213
230
  }
214
231
  const cfg = { ...DEFAULT_HYBRID_SELECTION_CONFIG, ...resolvedConfig };
215
232
  const available = resolvedAccounts.filter((a) => a.isAvailable);
233
+ // Contract: if NO account is currently available (all cooling down, rate-limited,
234
+ // circuit-open, or otherwise blocked) the selector returns null rather than
235
+ // handing back a known-unavailable candidate via an LRU fallback. Returning an
236
+ // unavailable account caused avoidable churn when the fetch loop trusted the
237
+ // result without re-validating (AUDIT-H2 / D-01). The caller is now responsible
238
+ // for surfacing the "no available accounts" condition (pool-wide cooldown,
239
+ // fast-fail, etc.) instead of retrying through a blocked candidate.
216
240
  if (available.length === 0) {
217
- if (resolvedAccounts.length === 0)
218
- return null;
219
- let leastRecentlyUsed = null;
220
- let oldestTime = Infinity;
221
- for (const account of resolvedAccounts) {
222
- if (account.lastUsed < oldestTime) {
223
- oldestTime = account.lastUsed;
224
- leastRecentlyUsed = account;
225
- }
226
- }
227
- return leastRecentlyUsed;
241
+ return null;
228
242
  }
229
243
  // istanbul ignore next -- defensive: available[0] always exists when length === 1
230
244
  if (available.length === 1)
@@ -234,23 +248,28 @@ export function selectHybridAccount(accountsOrParams, healthTracker, tokenTracke
234
248
  let bestScore = -Infinity;
235
249
  // PID offset: distribute account selection across parallel processes
236
250
  // Each process gets a small deterministic bonus based on its PID
237
- const pidBonus = resolvedOptions.pidOffsetEnabled ? (process.pid % 100) * 0.01 : 0;
251
+ const pidBonus = resolvedOptions.pidOffsetEnabled
252
+ ? (process.pid % 100) * 0.01
253
+ : 0;
238
254
  for (const account of available) {
239
255
  const trackerKey = account.trackerKey ?? account.index;
240
256
  const health = resolvedHealthTracker.getScore(trackerKey, resolvedQuotaKey);
241
257
  const tokens = resolvedTokenTracker.getTokens(trackerKey, resolvedQuotaKey);
242
258
  const hoursSinceUsed = (now - account.lastUsed) / (1000 * 60 * 60);
243
259
  const capabilityBoost = typeof resolvedOptions.scoreBoostByAccount?.[account.index] === "number"
244
- ? resolvedOptions.scoreBoostByAccount[account.index] ?? 0
260
+ ? (resolvedOptions.scoreBoostByAccount[account.index] ?? 0)
261
+ : 0;
262
+ const safeCapabilityBoost = Number.isFinite(capabilityBoost)
263
+ ? capabilityBoost
245
264
  : 0;
246
- const safeCapabilityBoost = Number.isFinite(capabilityBoost) ? capabilityBoost : 0;
247
265
  let score = health * cfg.healthWeight +
248
266
  tokens * cfg.tokenWeight +
249
267
  hoursSinceUsed * cfg.freshnessWeight +
250
268
  safeCapabilityBoost;
251
269
  // PID-based offset distributes selection across parallel agents
252
270
  if (resolvedOptions.pidOffsetEnabled) {
253
- score += ((account.index * 0.131 + pidBonus) % 1) * cfg.freshnessWeight * 0.1;
271
+ score +=
272
+ ((account.index * 0.131 + pidBonus) % 1) * cfg.freshnessWeight * 0.1;
254
273
  }
255
274
  if (score > bestScore) {
256
275
  bestScore = score;
@@ -271,6 +290,99 @@ export function selectHybridAccount(accountsOrParams, healthTracker, tokenTracke
271
290
  }
272
291
  return bestAccount;
273
292
  }
293
+ /**
294
+ * Non-mutating variant of {@link selectHybridAccount} that returns the winning
295
+ * account alongside a per-candidate score breakdown.
296
+ *
297
+ * The scoring logic mirrors `selectHybridAccount` exactly (same weights, same
298
+ * availability gating, same PID offset behaviour, same capability boost), so
299
+ * this function can be used by diagnostic commands (e.g. `codex auth
300
+ * why-selected --now`) without drifting from production selection. Candidates
301
+ * are returned sorted by descending score.
302
+ *
303
+ * No mutation of trackers or account state occurs; this is purely a read.
304
+ */
305
+ export function selectHybridAccountTraced(params) {
306
+ const cfg = { ...DEFAULT_HYBRID_SELECTION_CONFIG, ...(params.config ?? {}) };
307
+ const options = params.options ?? {};
308
+ const quotaKey = params.quotaKey;
309
+ const now = Date.now();
310
+ const pidBonus = options.pidOffsetEnabled ? (process.pid % 100) * 0.01 : 0;
311
+ const accounts = Array.isArray(params.accounts) ? params.accounts : [];
312
+ const availableAccounts = accounts.filter((account) => account.isAvailable);
313
+ const candidates = accounts.map((account) => {
314
+ const trackerKey = account.trackerKey ?? account.index;
315
+ const health = params.healthTracker.getScore(trackerKey, quotaKey);
316
+ const tokens = params.tokenTracker.getTokens(trackerKey, quotaKey);
317
+ const hoursSinceUsed = (now - account.lastUsed) / (1000 * 60 * 60);
318
+ const rawCapabilityBoost = typeof options.scoreBoostByAccount?.[account.index] === "number"
319
+ ? (options.scoreBoostByAccount[account.index] ?? 0)
320
+ : 0;
321
+ const capabilityBoost = Number.isFinite(rawCapabilityBoost)
322
+ ? rawCapabilityBoost
323
+ : 0;
324
+ let score = health * cfg.healthWeight +
325
+ tokens * cfg.tokenWeight +
326
+ hoursSinceUsed * cfg.freshnessWeight +
327
+ capabilityBoost;
328
+ if (options.pidOffsetEnabled) {
329
+ score +=
330
+ ((account.index * 0.131 + pidBonus) % 1) * cfg.freshnessWeight * 0.1;
331
+ }
332
+ return {
333
+ index: account.index,
334
+ trackerKey,
335
+ isAvailable: account.isAvailable,
336
+ lastUsed: account.lastUsed,
337
+ health,
338
+ tokens,
339
+ hoursSinceUsed,
340
+ capabilityBoost,
341
+ pidBonus: options.pidOffsetEnabled ? pidBonus : 0,
342
+ score,
343
+ reason: account.isAvailable
344
+ ? undefined
345
+ : "unavailable (rate-limited, cooling down, or circuit open)",
346
+ };
347
+ });
348
+ candidates.sort((a, b) => b.score - a.score);
349
+ let selected = null;
350
+ let selectionReason = "no accounts provided";
351
+ if (accounts.length === 0) {
352
+ selectionReason = "no accounts configured";
353
+ }
354
+ else if (availableAccounts.length === 0) {
355
+ // AUDIT-H2 / D-01 contract: when no account is available, selection
356
+ // returns null rather than a blocked LRU candidate. The trace variant
357
+ // mirrors the production contract so why-selected diagnostics match
358
+ // actual selection behaviour.
359
+ selected = null;
360
+ selectionReason =
361
+ "all accounts unavailable (rate-limited, cooling down, or circuit open)";
362
+ }
363
+ else if (availableAccounts.length === 1) {
364
+ selected = availableAccounts[0] ?? null;
365
+ selectionReason = "single available account";
366
+ }
367
+ else {
368
+ const bestCandidate = candidates.find((candidate) => candidate.isAvailable);
369
+ if (bestCandidate) {
370
+ selected =
371
+ accounts.find((account) => account.index === bestCandidate.index) ??
372
+ null;
373
+ selectionReason = `highest hybrid score (${bestCandidate.score.toFixed(2)}) across ${availableAccounts.length} available account(s)`;
374
+ }
375
+ }
376
+ return {
377
+ selected,
378
+ selectedIndex: selected?.index ?? null,
379
+ selectionReason,
380
+ candidates,
381
+ config: cfg,
382
+ quotaKey,
383
+ availableCount: availableAccounts.length,
384
+ };
385
+ }
274
386
  // ============================================================================
275
387
  // Utility Functions
276
388
  // ============================================================================