scoutline 0.2.0 → 0.6.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 (110) hide show
  1. package/README.md +240 -18
  2. package/dist/capabilities/diagnostics.d.ts +70 -32
  3. package/dist/capabilities/diagnostics.d.ts.map +1 -1
  4. package/dist/capabilities/diagnostics.js +97 -46
  5. package/dist/capabilities/diagnostics.js.map +1 -1
  6. package/dist/capabilities/reader.d.ts +227 -0
  7. package/dist/capabilities/reader.d.ts.map +1 -0
  8. package/dist/capabilities/reader.js +100 -0
  9. package/dist/capabilities/reader.js.map +1 -0
  10. package/dist/capabilities/repository.d.ts +221 -0
  11. package/dist/capabilities/repository.d.ts.map +1 -0
  12. package/dist/capabilities/repository.js +172 -0
  13. package/dist/capabilities/repository.js.map +1 -0
  14. package/dist/commands/cache.d.ts +106 -0
  15. package/dist/commands/cache.d.ts.map +1 -0
  16. package/dist/commands/cache.js +203 -0
  17. package/dist/commands/cache.js.map +1 -0
  18. package/dist/commands/doctor.d.ts +17 -6
  19. package/dist/commands/doctor.d.ts.map +1 -1
  20. package/dist/commands/doctor.js +42 -17
  21. package/dist/commands/doctor.js.map +1 -1
  22. package/dist/commands/read.d.ts +74 -14
  23. package/dist/commands/read.d.ts.map +1 -1
  24. package/dist/commands/read.js +257 -117
  25. package/dist/commands/read.js.map +1 -1
  26. package/dist/commands/repo.d.ts +53 -7
  27. package/dist/commands/repo.d.ts.map +1 -1
  28. package/dist/commands/repo.js +104 -123
  29. package/dist/commands/repo.js.map +1 -1
  30. package/dist/commands/repository-explorer.d.ts +147 -0
  31. package/dist/commands/repository-explorer.d.ts.map +1 -0
  32. package/dist/commands/repository-explorer.js +550 -0
  33. package/dist/commands/repository-explorer.js.map +1 -0
  34. package/dist/index.d.ts +20 -0
  35. package/dist/index.d.ts.map +1 -1
  36. package/dist/index.js +209 -34
  37. package/dist/index.js.map +1 -1
  38. package/dist/lib/cache.d.ts +123 -18
  39. package/dist/lib/cache.d.ts.map +1 -1
  40. package/dist/lib/cache.js +324 -49
  41. package/dist/lib/cache.js.map +1 -1
  42. package/dist/lib/errors.d.ts +24 -1
  43. package/dist/lib/errors.d.ts.map +1 -1
  44. package/dist/lib/errors.js +33 -2
  45. package/dist/lib/errors.js.map +1 -1
  46. package/dist/lib/execution.d.ts +119 -5
  47. package/dist/lib/execution.d.ts.map +1 -1
  48. package/dist/lib/execution.js +216 -10
  49. package/dist/lib/execution.js.map +1 -1
  50. package/dist/lib/index.d.ts +1 -1
  51. package/dist/lib/index.d.ts.map +1 -1
  52. package/dist/lib/index.js +1 -1
  53. package/dist/lib/index.js.map +1 -1
  54. package/dist/lib/mcp-client.d.ts +29 -5
  55. package/dist/lib/mcp-client.d.ts.map +1 -1
  56. package/dist/lib/mcp-client.js +88 -88
  57. package/dist/lib/mcp-client.js.map +1 -1
  58. package/dist/lib/tool-cache.d.ts +86 -0
  59. package/dist/lib/tool-cache.d.ts.map +1 -0
  60. package/dist/lib/tool-cache.js +123 -0
  61. package/dist/lib/tool-cache.js.map +1 -0
  62. package/dist/providers/minimax/adapter.d.ts +6 -4
  63. package/dist/providers/minimax/adapter.d.ts.map +1 -1
  64. package/dist/providers/minimax/adapter.js +64 -57
  65. package/dist/providers/minimax/adapter.js.map +1 -1
  66. package/dist/providers/minimax/coding-plan-client.d.ts +60 -0
  67. package/dist/providers/minimax/coding-plan-client.d.ts.map +1 -0
  68. package/dist/providers/minimax/coding-plan-client.js +204 -0
  69. package/dist/providers/minimax/coding-plan-client.js.map +1 -0
  70. package/dist/providers/minimax/media.d.ts +60 -6
  71. package/dist/providers/minimax/media.d.ts.map +1 -1
  72. package/dist/providers/minimax/media.js +147 -7
  73. package/dist/providers/minimax/media.js.map +1 -1
  74. package/dist/providers/minimax/quota-client.d.ts +13 -6
  75. package/dist/providers/minimax/quota-client.d.ts.map +1 -1
  76. package/dist/providers/minimax/quota-client.js +5 -0
  77. package/dist/providers/minimax/quota-client.js.map +1 -1
  78. package/dist/providers/minimax/vision-attestations.d.ts +23 -0
  79. package/dist/providers/minimax/vision-attestations.d.ts.map +1 -1
  80. package/dist/providers/minimax/vision-attestations.js +35 -10
  81. package/dist/providers/minimax/vision-attestations.js.map +1 -1
  82. package/dist/providers/minimax/vision-conformance.d.ts +8 -6
  83. package/dist/providers/minimax/vision-conformance.d.ts.map +1 -1
  84. package/dist/providers/minimax/vision-conformance.js +8 -6
  85. package/dist/providers/minimax/vision-conformance.js.map +1 -1
  86. package/dist/providers/minimax/vision-revisions.d.ts +8 -1
  87. package/dist/providers/minimax/vision-revisions.d.ts.map +1 -1
  88. package/dist/providers/minimax/vision-revisions.js +13 -6
  89. package/dist/providers/minimax/vision-revisions.js.map +1 -1
  90. package/dist/providers/selection.d.ts +3 -3
  91. package/dist/providers/selection.js +3 -3
  92. package/dist/providers/types.d.ts +66 -32
  93. package/dist/providers/types.d.ts.map +1 -1
  94. package/dist/providers/types.js.map +1 -1
  95. package/dist/providers/zai/adapter.d.ts.map +1 -1
  96. package/dist/providers/zai/adapter.js +71 -5
  97. package/dist/providers/zai/adapter.js.map +1 -1
  98. package/dist/providers/zai/encoded-error.d.ts +90 -0
  99. package/dist/providers/zai/encoded-error.d.ts.map +1 -0
  100. package/dist/providers/zai/encoded-error.js +169 -0
  101. package/dist/providers/zai/encoded-error.js.map +1 -0
  102. package/dist/providers/zai/reader.d.ts +82 -0
  103. package/dist/providers/zai/reader.d.ts.map +1 -0
  104. package/dist/providers/zai/reader.js +490 -0
  105. package/dist/providers/zai/reader.js.map +1 -0
  106. package/dist/providers/zai/repository.d.ts +76 -0
  107. package/dist/providers/zai/repository.d.ts.map +1 -0
  108. package/dist/providers/zai/repository.js +715 -0
  109. package/dist/providers/zai/repository.js.map +1 -0
  110. package/package.json +3 -3
package/dist/index.js CHANGED
@@ -8,6 +8,8 @@ import { repoSearch, repoTree, repoRead, REPO_HELP } from "./commands/repo.js";
8
8
  import { listTools, showTool, callTool, TOOLS_HELP, CALL_HELP } from "./commands/tools.js";
9
9
  import { doctor, buildDiagnosticsReport, DOCTOR_HELP } from "./commands/doctor.js";
10
10
  import { quota, buildQuotaDashboard, QUOTA_HELP } from "./commands/quota.js";
11
+ import { cacheStatsCommand, cacheClearCommand, formatDoctorCacheSummary, CACHE_HELP, } from "./commands/cache.js";
12
+ import { cacheStats, clearAllCaches } from "./lib/cache.js";
11
13
  import { isExtractMode } from "./lib/extract.js";
12
14
  import { runCodeFile, evalCode, printInterfaces, printPromptTemplate, CODE_HELP, } from "./commands/code.js";
13
15
  import { isOutputMode, OUTPUT_MODES } from "./lib/output.js";
@@ -30,22 +32,30 @@ Usage: scoutline <command> [args] [options]
30
32
  Commands:
31
33
  vision Image and video analysis (Z.AI; MiniMax for interpret-image)
32
34
  search Real-time web search (shared: Z.AI + MiniMax)
33
- read Fetch and parse web pages (Z.AI only)
34
- repo GitHub repository exploration (Z.AI only)
35
+ read Fetch and parse web pages (Provider Capability; Z.AI supports it,
36
+ MiniMax returns UNSUPPORTED_CAPABILITY)
37
+ repo GitHub repository exploration (Provider Capability; Z.AI supports it,
38
+ MiniMax returns UNSUPPORTED_CAPABILITY)
35
39
  quota Provider-aware plan usage (calls remaining, reset time)
36
40
  tools List available MCP tools (Z.AI)
37
41
  tool Show a tool schema (Z.AI)
38
42
  call Call a tool directly (Z.AI)
39
43
  doctor Provider-aware environment + connectivity checks
44
+ cache Inspect or clear the local cache (stats / clear)
40
45
  code Execute TypeScript tool chains (Code Mode, Z.AI)
41
46
 
42
47
  Provider selection (precedence: --provider, then SCOUTLINE_PROVIDER, then zai):
43
48
  --provider <zai|minimax> Select the active Provider for shared capabilities
44
49
  SCOUTLINE_PROVIDER=<id> Fallback when --provider is not passed
45
50
 
46
- Shared capabilities accept --provider. Z.AI-only commands (read, repo,
47
- tools, tool, call, code) carry the flag but ignore it. Quota and doctor
48
- report per-Provider; --provider picks the effective Provider for metadata.
51
+ Shared capabilities accept --provider. The 'repo' and 'read' commands
52
+ participate in Provider selection: Z.AI advertises and supplies the
53
+ repository-exploration and reader Capabilities; MiniMax advertises and
54
+ supplies neither, so selecting MiniMax (explicitly or via
55
+ SCOUTLINE_PROVIDER) returns UNSUPPORTED_CAPABILITY with no fallback.
56
+ Z.AI-only commands (tools, tool, call, code) carry the flag but ignore
57
+ it. Quota and doctor report per-Provider; --provider picks the effective
58
+ Provider for metadata.
49
59
 
50
60
  Global Options:
51
61
  --output-format <data|json|pretty|compact|markdown|refs|tty> Output mode (default: data)
@@ -60,6 +70,7 @@ Help:
60
70
  scoutline tools --help
61
71
  scoutline call --help
62
72
  scoutline code --help
73
+ scoutline cache --help
63
74
  `.trim();
64
75
  function parseArgs(args) {
65
76
  const flags = {};
@@ -362,6 +373,60 @@ async function handleRead(args, outputMode, deps) {
362
373
  return 0;
363
374
  }
364
375
  const url = positional[0];
376
+ // Parse-level validation BEFORE Provider resolution. URL scheme and
377
+ // --extract mode are validated at parse time so an invalid value
378
+ // surfaces VALIDATION_ERROR regardless of which Provider would have
379
+ // been selected, because parse-level validation fires before the
380
+ // support/configuration gates. The handler re-runs an identical
381
+ // check as defensive backstop. The pre-dispatch
382
+ // configuredSecrets(env) redaction read in `main` is the only
383
+ // permitted credential-related read before this point.
384
+ if (typeof url !== "string" || (!url.startsWith("http://") && !url.startsWith("https://"))) {
385
+ throw new ValidationError("URL must start with http:// or https://");
386
+ }
387
+ const extractFlag = flags.extract;
388
+ if (extractFlag !== undefined && !isExtractMode(extractFlag)) {
389
+ throw new ValidationError(`Invalid --extract mode: ${extractFlag}. Use one of: code, links, tables, headings`);
390
+ }
391
+ const extract = extractFlag !== undefined ? extractFlag : undefined;
392
+ // Resolve the effective Provider (DESIGN.md §6, FR-001–FR-005):
393
+ // explicit --provider > SCOUTLINE_PROVIDER > default zai. Selection
394
+ // never consults credentials (FR-003) and never branches on Provider
395
+ // ID; an unknown explicit/env value throws VALIDATION_ERROR here.
396
+ const providerId = resolveProviderId(deps.provider, deps.env);
397
+ const descriptor = getProviderDescriptor(providerId, deps.providerDescriptors);
398
+ // Capability support check BEFORE `descriptor.isConfigured`,
399
+ // `descriptor.create`, Adapter access, operation validation/
400
+ // cacheIdentity, credential use, cache, or transport. Unsupported
401
+ // MiniMax (explicit or environment) returns UNSUPPORTED_CAPABILITY
402
+ // with no fallback to Z.AI; zero selected-Provider work occurs.
403
+ if (!descriptor.capabilities().has("reader")) {
404
+ throw new UnsupportedCapabilityError(providerId, "reader");
405
+ }
406
+ // FR-003: selection returns the default zai even when unconfigured.
407
+ // Supported-but-unconfigured Z.AI surfaces a missing credential as
408
+ // ConfigurationError (exit 3) AFTER the support metadata check and
409
+ // BEFORE `descriptor.create`.
410
+ if (!descriptor.isConfigured(deps.env)) {
411
+ throw new ConfigurationError(`Provider "${providerId}" is not configured. Set the required API key.`);
412
+ }
413
+ const adapter = descriptor.create({ env: deps.env });
414
+ const capability = adapter.reader;
415
+ // Defensive fail-closed: the descriptor advertised support but the
416
+ // Adapter omitted the handle. Treat as unsupported so a registry
417
+ // mismatch can never reach transport.
418
+ if (!capability) {
419
+ throw new UnsupportedCapabilityError(providerId, "reader");
420
+ }
421
+ // Shared Reader execution dependencies. The cache/sleep/random
422
+ // default to the same production values as Search and Repository
423
+ // but are kept as separate optional MainDependencies so reader
424
+ // tests can inject isolated in-memory doubles.
425
+ const executionDeps = {
426
+ cache: deps.readerCache,
427
+ sleep: deps.readerSleep,
428
+ random: deps.readerRandom,
429
+ };
365
430
  return invokeCommand(deps.invocation, (context) => read(url, {
366
431
  format: flags.format,
367
432
  noImages: flags["no-images"] === true,
@@ -373,10 +438,8 @@ async function handleRead(args, outputMode, deps) {
373
438
  withImagesSummary: flags["with-images-summary"] === true,
374
439
  maxChars: flags["max-chars"] ? parseInt(flags["max-chars"], 10) : undefined,
375
440
  fullEnvelope: flags["full-envelope"] === true,
376
- extract: isExtractMode(flags.extract)
377
- ? flags.extract
378
- : undefined,
379
- }, outputMode, context), outputMode, deps.now, deps.secrets);
441
+ extract,
442
+ }, { capability, execution: executionDeps }, context), outputMode, deps.now, deps.secrets);
380
443
  }
381
444
  async function handleRepo(args, outputMode, deps) {
382
445
  const { flags, positional } = parseArgs(args);
@@ -386,39 +449,96 @@ async function handleRepo(args, outputMode, deps) {
386
449
  }
387
450
  const command = positional[0];
388
451
  const repo = positional[1];
452
+ // Parse-level validation. Subcommand grammar and required positionals
453
+ // are validated BEFORE Provider resolution, capability support check,
454
+ // configuration check, Adapter construction, or any
455
+ // operation/cacheIdentity/credential/cache/transport work. The
456
+ // pre-dispatch `configuredSecrets(env)` redaction read in `main` is
457
+ // the only permitted credential-related read before this point; it is
458
+ // not selected-Provider resolution and is covered separately by the
459
+ // ordering tests.
460
+ let searchQuery;
461
+ let readPath;
462
+ if (command === "search") {
463
+ searchQuery = positional.slice(2).join(" ");
464
+ if (!repo || !searchQuery) {
465
+ throw new ValidationError("Missing repo or query", "Usage: scoutline repo search <owner/repo> <query>");
466
+ }
467
+ }
468
+ else if (command === "tree") {
469
+ if (!repo) {
470
+ throw new ValidationError("Missing repo", "Usage: scoutline repo tree <owner/repo>");
471
+ }
472
+ }
473
+ else if (command === "read") {
474
+ readPath = positional[2];
475
+ if (!repo || !readPath) {
476
+ throw new ValidationError("Missing repo or path", "Usage: scoutline repo read <owner/repo> <path>");
477
+ }
478
+ }
479
+ else {
480
+ throw new ValidationError(`Unknown repo command: ${command}`, 'Run "scoutline repo --help" for available commands');
481
+ }
482
+ // Resolve the effective Provider (DESIGN.md §6, FR-001–FR-005):
483
+ // explicit --provider > SCOUTLINE_PROVIDER > default zai. Selection
484
+ // never consults credentials (FR-003) and never branches on Provider
485
+ // ID; an unknown explicit/env value throws VALIDATION_ERROR here.
486
+ const providerId = resolveProviderId(deps.provider, deps.env);
487
+ const descriptor = getProviderDescriptor(providerId, deps.providerDescriptors);
488
+ // Capability support check BEFORE `descriptor.isConfigured`,
489
+ // `descriptor.create`, Adapter access, operation validation/
490
+ // cacheIdentity, credential use, cache, or transport. Unsupported
491
+ // MiniMax (explicit or environment) returns UNSUPPORTED_CAPABILITY
492
+ // with no fallback to Z.AI; zero selected-Provider work occurs.
493
+ if (!descriptor.capabilities().has("repository-exploration")) {
494
+ throw new UnsupportedCapabilityError(providerId, "repository-exploration");
495
+ }
496
+ // FR-003: selection returns the default zai even when unconfigured.
497
+ // Supported-but-unconfigured Z.AI surfaces a missing credential as
498
+ // ConfigurationError (exit 3) AFTER the support metadata check and
499
+ // BEFORE `descriptor.create`.
500
+ if (!descriptor.isConfigured(deps.env)) {
501
+ throw new ConfigurationError(`Provider "${providerId}" is not configured. Set the required API key.`);
502
+ }
503
+ const adapter = descriptor.create({ env: deps.env });
504
+ const capability = adapter.repository;
505
+ // Defensive fail-closed: the descriptor advertised support but the
506
+ // Adapter omitted the handle. Treat as unsupported so a registry
507
+ // mismatch can never reach transport.
508
+ if (!capability) {
509
+ throw new UnsupportedCapabilityError(providerId, "repository-exploration");
510
+ }
511
+ // Shared Repository execution dependencies. The cache/sleep/random
512
+ // default to the same production values as Search but are kept as
513
+ // separate optional MainDependencies so repository tests can inject
514
+ // isolated in-memory doubles.
515
+ const executionDeps = {
516
+ cache: deps.repositoryCache,
517
+ sleep: deps.repositorySleep,
518
+ random: deps.repositoryRandom,
519
+ };
389
520
  switch (command) {
390
521
  case "search": {
391
- const query = positional.slice(2).join(" ");
392
- if (!repo || !query) {
393
- throw new ValidationError("Missing repo or query", "Usage: scoutline repo search <owner/repo> <query>");
394
- }
395
- return invokeCommand(deps.invocation, (context) => repoSearch(repo, query, {
396
- language: flags.language,
397
- maxChars: flags["max-chars"] ? parseInt(flags["max-chars"], 10) : undefined,
398
- noCache: flags["no-cache"] === true,
399
- }, context), outputMode, deps.now, deps.secrets);
522
+ const language = flags.language;
523
+ const maxChars = flags["max-chars"] ? parseInt(flags["max-chars"], 10) : undefined;
524
+ const noCache = flags["no-cache"] === true;
525
+ return invokeCommand(deps.invocation, () => repoSearch(repo, searchQuery, { language, maxChars, noCache }, { capability, execution: executionDeps }), outputMode, deps.now, deps.secrets);
400
526
  }
401
527
  case "tree": {
402
- if (!repo) {
403
- throw new ValidationError("Missing repo", "Usage: scoutline repo tree <owner/repo>");
404
- }
405
- return invokeCommand(deps.invocation, (context) => repoTree(repo, {
406
- path: flags.path,
407
- depth: flags.depth ? parseInt(flags.depth, 10) : undefined,
408
- noCache: flags["no-cache"] === true,
409
- }, context), outputMode, deps.now, deps.secrets);
528
+ const treePath = flags.path;
529
+ const depth = flags.depth ? parseInt(flags.depth, 10) : undefined;
530
+ const noCache = flags["no-cache"] === true;
531
+ return invokeCommand(deps.invocation, () => repoTree(repo, { path: treePath, depth, noCache }, { capability, execution: executionDeps }), outputMode, deps.now, deps.secrets);
410
532
  }
411
533
  case "read": {
412
- const path = positional[2];
413
- if (!repo || !path) {
414
- throw new ValidationError("Missing repo or path", "Usage: scoutline repo read <owner/repo> <path>");
415
- }
416
- return invokeCommand(deps.invocation, (context) => repoRead(repo, path, {
417
- maxChars: flags["max-chars"] ? parseInt(flags["max-chars"], 10) : undefined,
418
- noCache: flags["no-cache"] === true,
419
- }, context), outputMode, deps.now, deps.secrets);
534
+ const maxChars = flags["max-chars"] ? parseInt(flags["max-chars"], 10) : undefined;
535
+ const noCache = flags["no-cache"] === true;
536
+ return invokeCommand(deps.invocation, () => repoRead(repo, readPath, { maxChars, noCache }, { capability, execution: executionDeps }), outputMode, deps.now, deps.secrets);
420
537
  }
421
538
  default:
539
+ // Unreachable: the parse-level validation above already rejected
540
+ // unknown subcommands. Keep a defensive throw so the dispatch
541
+ // table stays total.
422
542
  throw new ValidationError(`Unknown repo command: ${command}`, 'Run "scoutline repo --help" for available commands');
423
543
  }
424
544
  }
@@ -469,6 +589,12 @@ async function handleDoctor(args, outputMode, deps) {
469
589
  // the report always lists every built-in Provider even when the
470
590
  // effective Provider is unconfigured.
471
591
  const effectiveProvider = resolveProviderId(deps.provider, deps.env);
592
+ // Cache Module Unification Ticket 03 — Doctor's one-line cache summary.
593
+ // The dispatcher formats the summary here (L1 fix) from `cacheStats()`
594
+ // output; the report builder only embeds the pre-formatted string.
595
+ // `cacheStats()` never throws (it catches all I/O internally); on a
596
+ // missing directory it returns zeros, which still format correctly.
597
+ const cacheSummary = formatDoctorCacheSummary(await cacheStats());
472
598
  return invokeCommand(deps.invocation, () => doctor({
473
599
  buildReport: () => buildDiagnosticsReport({
474
600
  noTools,
@@ -477,9 +603,37 @@ async function handleDoctor(args, outputMode, deps) {
477
603
  env: deps.env,
478
604
  sleep: deps.searchSleep,
479
605
  random: deps.searchRandom,
606
+ cacheSummary,
480
607
  }),
481
608
  }), outputMode, deps.now, deps.secrets);
482
609
  }
610
+ /**
611
+ * `scoutline cache <stats|clear>` — local cache utility. Like Doctor,
612
+ * it bypasses Provider resolution entirely (no descriptor lookup, no
613
+ * Adapter, no transport). The command surfaces the inventory and clear
614
+ * helpers owned by `src/lib/cache.ts` (Ticket 01) through the
615
+ * presentation-only handlers in `src/commands/cache.ts`.
616
+ */
617
+ async function handleCache(args, outputMode, deps) {
618
+ const { flags, positional } = parseArgs(args);
619
+ if (flags.help || flags.h || positional.length === 0) {
620
+ deps.invocation.writeStdout(CACHE_HELP);
621
+ return 0;
622
+ }
623
+ const subcommand = positional[0];
624
+ switch (subcommand) {
625
+ case "stats":
626
+ return invokeCommand(deps.invocation, () => cacheStatsCommand({
627
+ getStats: () => cacheStats(),
628
+ }), outputMode, deps.now, deps.secrets);
629
+ case "clear":
630
+ return invokeCommand(deps.invocation, () => cacheClearCommand({
631
+ clear: () => clearAllCaches(),
632
+ }), outputMode, deps.now, deps.secrets);
633
+ default:
634
+ throw new ValidationError(`Unknown cache command: ${subcommand}`, 'Run "scoutline cache --help" for available commands');
635
+ }
636
+ }
483
637
  async function handleQuota(args, outputMode, deps) {
484
638
  const { flags } = parseArgs(args);
485
639
  if (flags.help || flags.h) {
@@ -543,6 +697,19 @@ export async function main(args, dependencies) {
543
697
  const searchCache = dependencies.searchCache ?? defaultResponseCache;
544
698
  const searchSleep = dependencies.searchSleep ?? realSleep;
545
699
  const searchRandom = dependencies.searchRandom ?? Math.random;
700
+ // P6-07: Repository execution defaults to the same production values
701
+ // as Search but stays as separate optional MainDependencies so
702
+ // repository tests can inject isolated in-memory doubles.
703
+ const repositoryCache = dependencies.repositoryCache ?? defaultResponseCache;
704
+ const repositorySleep = dependencies.repositorySleep ?? realSleep;
705
+ const repositoryRandom = dependencies.repositoryRandom ?? Math.random;
706
+ // Reader Migration Ticket 04: Reader execution defaults to the same
707
+ // production values as Search/Repository but stays as separate
708
+ // optional MainDependencies so reader tests can inject isolated
709
+ // in-memory doubles.
710
+ const readerCache = dependencies.readerCache ?? defaultResponseCache;
711
+ const readerSleep = dependencies.readerSleep ?? realSleep;
712
+ const readerRandom = dependencies.readerRandom ?? Math.random;
546
713
  // Resolve configured Provider credentials from the INJECTED env (B3) so
547
714
  // redaction follows the same environment the handlers see — a secret
548
715
  // that exists only in MainDependencies.env is still redacted from output.
@@ -585,6 +752,12 @@ export async function main(args, dependencies) {
585
752
  searchCache,
586
753
  searchSleep,
587
754
  searchRandom,
755
+ repositoryCache,
756
+ repositorySleep,
757
+ repositoryRandom,
758
+ readerCache,
759
+ readerSleep,
760
+ readerRandom,
588
761
  };
589
762
  try {
590
763
  switch (command) {
@@ -604,6 +777,8 @@ export async function main(args, dependencies) {
604
777
  return await handleCall(commandArgs, outputMode, handlerDeps);
605
778
  case "doctor":
606
779
  return await handleDoctor(commandArgs, outputMode, handlerDeps);
780
+ case "cache":
781
+ return await handleCache(commandArgs, outputMode, handlerDeps);
607
782
  case "quota":
608
783
  return await handleQuota(commandArgs, outputMode, handlerDeps);
609
784
  case "code":
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,MAAM,MAAM,sBAAsB,CAAC;AAE/C,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/E,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAC3F,OAAO,EAAE,MAAM,EAAE,sBAAsB,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnF,OAAO,EAAE,KAAK,EAAE,mBAAmB,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC7E,OAAO,EAAE,aAAa,EAAoB,MAAM,kBAAkB,CAAC;AACnE,OAAO,EACL,WAAW,EACX,QAAQ,EACR,eAAe,EACf,mBAAmB,EACnB,SAAS,GACV,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,YAAY,EAAE,YAAY,EAAmB,MAAM,iBAAiB,CAAC;AAC9E,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EACL,kBAAkB,EAClB,eAAe,EACf,0BAA0B,EAC1B,gBAAgB,GACjB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,aAAa,EAAiC,MAAM,yBAAyB,CAAC;AACvF,OAAO,EAAE,oBAAoB,EAAsB,MAAM,gBAAgB,CAAC;AAC1E,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,6BAA6B,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAG/F,OAAO,EAAE,2BAA2B,EAAwB,MAAM,0BAA0B,CAAC;AAC7F,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,MAAM,OAAO,GAAG,aAAa,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/C,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,iBAAiB,CAAwB,CAAC;AAE/E,MAAM,SAAS,GAAG;aACL,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqCnB,CAAC,IAAI,EAAE,CAAC;AAET,SAAS,SAAS,CAAC,IAAc;IAI/B,MAAM,KAAK,GAAqC,EAAE,CAAC;IACnD,MAAM,UAAU,GAAa,EAAE,CAAC;IAEhC,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QACvB,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QAEpB,IAAI,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YACzB,MAAM,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAEzB,IAAI,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC1B,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;gBAC5B,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;gBAClB,CAAC,EAAE,CAAC;gBACJ,SAAS;YACX,CAAC;YAED,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YAC5B,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBACxC,KAAK,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC;gBACrB,CAAC,IAAI,CAAC,CAAC;YACT,CAAC;iBAAM,CAAC;gBACN,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;gBAClB,CAAC,EAAE,CAAC;YACN,CAAC;QACH,CAAC;aAAM,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACnD,MAAM,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACzB,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YAC5B,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBACxC,KAAK,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC;gBACrB,CAAC,IAAI,CAAC,CAAC;YACT,CAAC;iBAAM,CAAC;gBACN,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;gBAClB,CAAC,EAAE,CAAC;YACN,CAAC;QACH,CAAC;aAAM,CAAC;YACN,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACrB,CAAC,EAAE,CAAC;QACN,CAAC;IACH,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC;AAC/B,CAAC;AAED,SAAS,oBAAoB,CAAC,IAAc;IAO1C,MAAM,IAAI,GAAa,EAAE,CAAC;IAC1B,IAAI,YAAgC,CAAC;IACrC,IAAI,WAAW,GAAG,KAAK,CAAC;IACxB,IAAI,QAAQ,GAAG,KAAK,CAAC;IACrB,IAAI,QAA4B,CAAC;IAEjC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QACxC,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACpB,IAAI,GAAG,KAAK,iBAAiB,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;YAC9C,YAAY,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YAC3B,CAAC,IAAI,CAAC,CAAC;YACP,SAAS;QACX,CAAC;QACD,IAAI,GAAG,KAAK,iBAAiB,EAAE,CAAC;YAC9B,WAAW,GAAG,IAAI,CAAC;YACnB,SAAS;QACX,CAAC;QACD,IAAI,GAAG,KAAK,OAAO,EAAE,CAAC;YACpB,QAAQ,GAAG,IAAI,CAAC;YAChB,SAAS;QACX,CAAC;QACD,IAAI,GAAG,KAAK,YAAY,EAAE,CAAC;YACzB,mEAAmE;YACnE,mEAAmE;YACnE,mEAAmE;YACnE,4DAA4D;YAC5D,QAAQ,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YACvB,CAAC,IAAI,CAAC,CAAC;YACP,SAAS;QACX,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACjB,CAAC;IAED,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AACjE,CAAC;AAED,SAAS,iBAAiB,CACxB,QAA4B,EAC5B,WAAoB,EACpB,QAAiB,EACjB,OAAiC;IAEjC,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC3B,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC5B,MAAM,IAAI,eAAe,CACvB,0BAA0B,QAAQ,EAAE,EACpC,eAAe,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACzC,CAAC;QACJ,CAAC;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,IAAI,WAAW;QAAE,OAAO,KAAK,CAAC;IAC9B,IAAI,QAAQ;QAAE,OAAO,MAAM,CAAC;IAC5B,MAAM,OAAO,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAC9C,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,YAAY,CAAC,OAAO,CAAC,EAAE,CAAC;QACzD,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,IAAI,OAAO,CAAC,WAAW;QAAE,OAAO,KAAK,CAAC;IACtC,OAAO,MAAM,CAAC;AAChB,CAAC;AAiCD,KAAK,UAAU,YAAY,CACzB,IAAc,EACd,UAAsB,EACtB,IAAyB;IAEzB,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IAE9C,IAAI,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,CAAC,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrD,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QAChD,OAAO,CAAC,CAAC;IACX,CAAC;IAED,MAAM,OAAO,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;IAC9B,MAAM,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;IAC7B,MAAM,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;IAE7B,sEAAsE;IACtE,qEAAqE;IACrE,8CAA8C;IAC9C,MAAM,SAAS,GAAG,yBAAyB,CAAC,OAAO,CAAC,CAAC;IAErD,oEAAoE;IACpE,wEAAwE;IACxE,sEAAsE;IACtE,uEAAuE;IACvE,MAAM,UAAU,GAAe,iBAAiB,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;IAC1E,MAAM,UAAU,GAAG,qBAAqB,CAAC,UAAU,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC;IAE/E,yEAAyE;IACzE,0EAA0E;IAC1E,sEAAsE;IACtE,sEAAsE;IACtE,2EAA2E;IAC3E,MAAM,YAAY,GAAG,2BAA2B,CAAC,SAAS,CAAC,CAAC;IAC5D,IAAI,CAAC,UAAU,CAAC,YAAY,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC;QACjD,MAAM,IAAI,0BAA0B,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;IACjE,CAAC;IACD,wEAAwE;IACxE,qEAAqE;IACrE,uEAAuE;IACvE,uDAAuD;IACvD,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QACvC,MAAM,IAAI,kBAAkB,CAC1B,aAAa,UAAU,gDAAgD,CACxE,CAAC;IACJ,CAAC;IACD,MAAM,OAAO,GAAG,UAAU,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IACrD,MAAM,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC;IACxC,IAAI,CAAC,gBAAgB,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;QAC/D,MAAM,IAAI,0BAA0B,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;IACjE,CAAC;IAED,oEAAoE;IACpE,oEAAoE;IACpE,oDAAoD;IACpD,MAAM,UAAU,GAAgC;QAC9C,UAAU,EAAE,gBAAgB;QAC5B,KAAK,EAAE,IAAI,CAAC,WAAW;QACvB,MAAM,EAAE,IAAI,CAAC,YAAY;KAC1B,CAAC;IAEF,QAAQ,OAAO,EAAE,CAAC;QAChB,KAAK,SAAS;YACZ,OAAO,aAAa,CAClB,IAAI,CAAC,UAAU,EACf,CAAC,OAAO,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,CAAC,EAChE,UAAU,EACV,IAAI,CAAC,GAAG,EACR,IAAI,CAAC,OAAO,CACb,CAAC;QAEJ,KAAK,YAAY,EAAE,CAAC;YAClB,MAAM,UAAU,GAAI,KAAK,CAAC,MAAiB,IAAI,MAAM,CAAC;YACtD,OAAO,aAAa,CAClB,IAAI,CAAC,UAAU,EACf,CAAC,OAAO,EAAE,EAAE,CACV,MAAM,CAAC,QAAQ,CACb,MAAM,EACN,MAAM,EACN,UAAwD,EACxD,UAAU,EACV,OAAO,CACR,EACH,UAAU,EACV,IAAI,CAAC,GAAG,EACR,IAAI,CAAC,OAAO,CACb,CAAC;QACJ,CAAC;QAED,KAAK,cAAc;YACjB,OAAO,aAAa,CAClB,IAAI,CAAC,UAAU,EACf,CAAC,OAAO,EAAE,EAAE,CACV,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,QAAkB,EAAE,UAAU,EAAE,OAAO,CAAC,EACnF,UAAU,EACV,IAAI,CAAC,GAAG,EACR,IAAI,CAAC,OAAO,CACb,CAAC;QAEJ,KAAK,gBAAgB;YACnB,OAAO,aAAa,CAClB,IAAI,CAAC,UAAU,EACf,CAAC,OAAO,EAAE,EAAE,CACV,MAAM,CAAC,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,OAAiB,EAAE,UAAU,EAAE,OAAO,CAAC,EACpF,UAAU,EACV,IAAI,CAAC,GAAG,EACR,IAAI,CAAC,OAAO,CACb,CAAC;QAEJ,KAAK,SAAS;YACZ,OAAO,aAAa,CAClB,IAAI,CAAC,UAAU,EACf,CAAC,OAAO,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,IAAc,EAAE,UAAU,EAAE,OAAO,CAAC,EACtF,UAAU,EACV,IAAI,CAAC,GAAG,EACR,IAAI,CAAC,OAAO,CACb,CAAC;QAEJ,KAAK,OAAO;YACV,OAAO,aAAa,CAClB,IAAI,CAAC,UAAU,EACf,CAAC,OAAO,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,KAAe,EAAE,UAAU,EAAE,OAAO,CAAC,EACrF,UAAU,EACV,IAAI,CAAC,GAAG,EACR,IAAI,CAAC,OAAO,CACb,CAAC;QAEJ,KAAK,MAAM,EAAE,CAAC;YACZ,MAAM,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;YAC7B,MAAM,UAAU,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;YACjC,OAAO,aAAa,CAClB,IAAI,CAAC,UAAU,EACf,CAAC,OAAO,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,OAAO,CAAC,EACzE,UAAU,EACV,IAAI,CAAC,GAAG,EACR,IAAI,CAAC,OAAO,CACb,CAAC;QACJ,CAAC;QAED,KAAK,OAAO;YACV,OAAO,aAAa,CAClB,IAAI,CAAC,UAAU,EACf,CAAC,OAAO,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,CAAC,EAC9D,UAAU,EACV,IAAI,CAAC,GAAG,EACR,IAAI,CAAC,OAAO,CACb,CAAC;QAEJ;YACE,MAAM,IAAI,eAAe,CACvB,2BAA2B,OAAO,EAAE,EACpC,sDAAsD,CACvD,CAAC;IACN,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,SAAS,yBAAyB,CAAC,OAAe;IAChD,QAAQ,OAAO,EAAE,CAAC;QAChB,KAAK,SAAS;YACZ,OAAO,iBAAiB,CAAC;QAC3B,KAAK,YAAY;YACf,OAAO,aAAa,CAAC;QACvB,KAAK,cAAc;YACjB,OAAO,cAAc,CAAC;QACxB,KAAK,gBAAgB;YACnB,OAAO,gBAAgB,CAAC;QAC1B,KAAK,SAAS;YACZ,OAAO,SAAS,CAAC;QACnB,KAAK,OAAO;YACV,OAAO,OAAO,CAAC;QACjB,KAAK,MAAM;YACT,OAAO,MAAM,CAAC;QAChB,KAAK,OAAO;YACV,OAAO,OAAO,CAAC;QACjB;YACE,MAAM,IAAI,eAAe,CACvB,2BAA2B,OAAO,EAAE,EACpC,sDAAsD,CACvD,CAAC;IACN,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,qBAAqB,CAAC,GAAY;IAChD,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,EAAE;QAAE,OAAO,SAAS,CAAC;IACtD,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;QACjB,MAAM,IAAI,eAAe,CACvB,iCAAiC,EACjC,8CAA8C,CAC/C,CAAC;IACJ,CAAC;IACD,MAAM,GAAG,GAAG,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACxD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,eAAe,CACvB,0BAA0B,GAAG,mCAAmC,EAChE,8CAA8C,CAC/C,CAAC;IACJ,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IAC3B,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,MAAM,GAAG,CAAC,EAAE,CAAC;QAChD,MAAM,IAAI,eAAe,CACvB,0BAA0B,GAAG,wCAAwC,EACrE,8CAA8C,CAC/C,CAAC;IACJ,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,KAAK,UAAU,YAAY,CACzB,IAAc,EACd,UAAsB,EACtB,IAAyB;IAEzB,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IAE9C,IAAI,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,CAAC,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrD,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;QACzC,OAAO,CAAC,CAAC;IACX,CAAC;IAED,qEAAqE;IACrE,qEAAqE;IACrE,yEAAyE;IACzE,kEAAkE;IAClE,wEAAwE;IACxE,6DAA6D;IAC7D,MAAM,KAAK,GAAG,qBAAqB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAEjD,uEAAuE;IACvE,uEAAuE;IACvE,yEAAyE;IACzE,mEAAmE;IACnE,mEAAmE;IACnE,iCAAiC;IACjC,MAAM,UAAU,GAAe,iBAAiB,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;IAC1E,MAAM,UAAU,GAAG,qBAAqB,CAAC,UAAU,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC;IAC/E,IAAI,CAAC,UAAU,CAAC,YAAY,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC7C,MAAM,IAAI,0BAA0B,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IAC7D,CAAC;IACD,wEAAwE;IACxE,qEAAqE;IACrE,uEAAuE;IACvE,uCAAuC;IACvC,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QACvC,MAAM,IAAI,kBAAkB,CAC1B,aAAa,UAAU,gDAAgD,CACxE,CAAC;IACJ,CAAC;IACD,MAAM,OAAO,GAAG,UAAU,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IACrD,MAAM,UAAU,GAAiC,OAAO,CAAC,MAAM,CAAC;IAChE,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,MAAM,IAAI,0BAA0B,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IAC7D,CAAC;IAED,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAEnC,MAAM,SAAS,GAAG,KAAK,CAAC,MAA4B,CAAC;IACrD,MAAM,MAAM,GAAG,SAAS;QACtB,CAAC,CAAC,SAAS;aACN,KAAK,CAAC,GAAG,CAAC;aACV,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;aACpB,MAAM,CAAC,OAAO,CAAC;QACpB,CAAC,CAAC,SAAS,CAAC;IAEd,OAAO,aAAa,CAClB,IAAI,CAAC,UAAU,EACf,CAAC,OAAO,EAAE,EAAE,CACV,MAAM,CACJ,KAAK,EACL;QACE,KAAK;QACL,MAAM,EAAE,KAAK,CAAC,MAAgB;QAC9B,OAAO,EAAE,KAAK,CAAC,OAAoE;QACnF,WAAW,EAAE,KAAK,CAAC,cAAc,CAAsB;QACvD,QAAQ,EAAE,KAAK,CAAC,QAAuB;QACvC,UAAU,EAAE,KAAK,CAAC,aAAa,CAAC;YAC9B,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,aAAa,CAAW,EAAE,EAAE,CAAC;YAC9C,CAAC,CAAC,SAAS;QACb,MAAM,EAAE,MAAM,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;QACxD,OAAO,EAAE,KAAK,CAAC,UAAU,CAAC,KAAK,IAAI;QACnC,KAAK,EAAE,KAAK,CAAC,KAAK,KAAK,IAAI;KAC5B,EACD;QACE,UAAU;QACV,KAAK,EAAE,IAAI,CAAC,WAAW;QACvB,KAAK,EAAE,IAAI,CAAC,WAAW;QACvB,MAAM,EAAE,IAAI,CAAC,YAAY;KAC1B,EACD,OAAO,CACR,EACH,UAAU,EACV,IAAI,CAAC,GAAG,EACR,IAAI,CAAC,OAAO,CACb,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,UAAU,CACvB,IAAc,EACd,UAAsB,EACtB,IAAyB;IAEzB,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IAE9C,IAAI,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,CAAC,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrD,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;QACvC,OAAO,CAAC,CAAC;IACX,CAAC;IAED,MAAM,GAAG,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;IAE1B,OAAO,aAAa,CAClB,IAAI,CAAC,UAAU,EACf,CAAC,OAAO,EAAE,EAAE,CACV,IAAI,CACF,GAAG,EACH;QACE,MAAM,EAAE,KAAK,CAAC,MAA6B;QAC3C,QAAQ,EAAE,KAAK,CAAC,WAAW,CAAC,KAAK,IAAI;QACrC,OAAO,EAAE,KAAK,CAAC,UAAU,CAAC,KAAK,IAAI;QACnC,SAAS,EAAE,KAAK,CAAC,YAAY,CAAC,KAAK,IAAI;QACvC,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAiB,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS;QAC1E,KAAK,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,IAAI;QAC/B,cAAc,EAAE,KAAK,CAAC,mBAAmB,CAAC,KAAK,IAAI;QACnD,iBAAiB,EAAE,KAAK,CAAC,qBAAqB,CAAC,KAAK,IAAI;QACxD,QAAQ,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,WAAW,CAAW,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS;QACrF,YAAY,EAAE,KAAK,CAAC,eAAe,CAAC,KAAK,IAAI;QAC7C,OAAO,EAAE,aAAa,CAAC,KAAK,CAAC,OAAiB,CAAC;YAC7C,CAAC,CAAE,KAAK,CAAC,OAAuB;YAChC,CAAC,CAAC,SAAS;KACd,EACD,UAAU,EACV,OAAO,CACR,EACH,UAAU,EACV,IAAI,CAAC,GAAG,EACR,IAAI,CAAC,OAAO,CACb,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,UAAU,CACvB,IAAc,EACd,UAAsB,EACtB,IAAyB;IAEzB,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IAE9C,IAAI,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,CAAC,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrD,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;QACvC,OAAO,CAAC,CAAC;IACX,CAAC;IAED,MAAM,OAAO,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;IAC9B,MAAM,IAAI,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;IAE3B,QAAQ,OAAO,EAAE,CAAC;QAChB,KAAK,QAAQ,EAAE,CAAC;YACd,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC5C,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;gBACpB,MAAM,IAAI,eAAe,CACvB,uBAAuB,EACvB,mDAAmD,CACpD,CAAC;YACJ,CAAC;YACD,OAAO,aAAa,CAClB,IAAI,CAAC,UAAU,EACf,CAAC,OAAO,EAAE,EAAE,CACV,UAAU,CACR,IAAI,EACJ,KAAK,EACL;gBACE,QAAQ,EAAE,KAAK,CAAC,QAAuB;gBACvC,QAAQ,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,WAAW,CAAW,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS;gBACrF,OAAO,EAAE,KAAK,CAAC,UAAU,CAAC,KAAK,IAAI;aACpC,EACD,OAAO,CACR,EACH,UAAU,EACV,IAAI,CAAC,GAAG,EACR,IAAI,CAAC,OAAO,CACb,CAAC;QACJ,CAAC;QAED,KAAK,MAAM,EAAE,CAAC;YACZ,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,MAAM,IAAI,eAAe,CAAC,cAAc,EAAE,yCAAyC,CAAC,CAAC;YACvF,CAAC;YACD,OAAO,aAAa,CAClB,IAAI,CAAC,UAAU,EACf,CAAC,OAAO,EAAE,EAAE,CACV,QAAQ,CACN,IAAI,EACJ;gBACE,IAAI,EAAE,KAAK,CAAC,IAAc;gBAC1B,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAe,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS;gBACpE,OAAO,EAAE,KAAK,CAAC,UAAU,CAAC,KAAK,IAAI;aACpC,EACD,OAAO,CACR,EACH,UAAU,EACV,IAAI,CAAC,GAAG,EACR,IAAI,CAAC,OAAO,CACb,CAAC;QACJ,CAAC;QAED,KAAK,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;YAC3B,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;gBACnB,MAAM,IAAI,eAAe,CACvB,sBAAsB,EACtB,gDAAgD,CACjD,CAAC;YACJ,CAAC;YACD,OAAO,aAAa,CAClB,IAAI,CAAC,UAAU,EACf,CAAC,OAAO,EAAE,EAAE,CACV,QAAQ,CACN,IAAI,EACJ,IAAI,EACJ;gBACE,QAAQ,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,WAAW,CAAW,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS;gBACrF,OAAO,EAAE,KAAK,CAAC,UAAU,CAAC,KAAK,IAAI;aACpC,EACD,OAAO,CACR,EACH,UAAU,EACV,IAAI,CAAC,GAAG,EACR,IAAI,CAAC,OAAO,CACb,CAAC;QACJ,CAAC;QAED;YACE,MAAM,IAAI,eAAe,CACvB,yBAAyB,OAAO,EAAE,EAClC,oDAAoD,CACrD,CAAC;IACN,CAAC;AACH,CAAC;AAED,KAAK,UAAU,WAAW,CACxB,IAAc,EACd,UAAsB,EACtB,IAAyB;IAEzB,MAAM,EAAE,KAAK,EAAE,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IAElC,IAAI,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,CAAC,EAAE,CAAC;QAC1B,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;QACxC,OAAO,CAAC,CAAC;IACX,CAAC;IAED,OAAO,aAAa,CAClB,IAAI,CAAC,UAAU,EACf,CAAC,OAAO,EAAE,EAAE,CACV,SAAS,CACP;QACE,MAAM,EAAE,KAAK,CAAC,MAAgB;QAC9B,IAAI,EAAE,KAAK,CAAC,IAAI,KAAK,IAAI;QACzB,UAAU,EAAE,KAAK,CAAC,UAAU,KAAK,IAAI,IAAI,KAAK,CAAC,EAAE,KAAK,IAAI;QAC1D,YAAY,EAAE,KAAK,CAAC,MAAM,KAAK,KAAK;KACrC,EACD,OAAO,CACR,EACH,UAAU,EACV,IAAI,CAAC,GAAG,EACR,IAAI,CAAC,OAAO,CACb,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,UAAU,CACvB,IAAc,EACd,UAAsB,EACtB,IAAyB;IAEzB,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IAE9C,IAAI,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,CAAC,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrD,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;QACxC,OAAO,CAAC,CAAC;IACX,CAAC;IAED,OAAO,aAAa,CAClB,IAAI,CAAC,UAAU,EACf,CAAC,OAAO,EAAE,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,EAAE,YAAY,EAAE,KAAK,CAAC,MAAM,KAAK,KAAK,EAAE,EAAE,OAAO,CAAC,EACvF,UAAU,EACV,IAAI,CAAC,GAAG,EACR,IAAI,CAAC,OAAO,CACb,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,UAAU,CACvB,IAAc,EACd,UAAsB,EACtB,IAAyB;IAEzB,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IAE9C,IAAI,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,CAAC,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrD,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;QACvC,OAAO,CAAC,CAAC;IACX,CAAC;IAED,OAAO,aAAa,CAClB,IAAI,CAAC,UAAU,EACf,CAAC,OAAO,EAAE,EAAE,CACV,QAAQ,CACN,UAAU,CAAC,CAAC,CAAC,EACb;QACE,IAAI,EAAE,KAAK,CAAC,IAAc;QAC1B,IAAI,EAAE,KAAK,CAAC,IAAc;QAC1B,KAAK,EAAE,KAAK,CAAC,KAAK,KAAK,IAAI;QAC3B,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,KAAK,IAAI;QACjC,YAAY,EAAE,KAAK,CAAC,MAAM,KAAK,KAAK;KACrC,EACD,OAAO,CACR,EACH,UAAU,EACV,IAAI,CAAC,GAAG,EACR,IAAI,CAAC,OAAO,CACb,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,YAAY,CACzB,IAAc,EACd,UAAsB,EACtB,IAAyB;IAEzB,MAAM,EAAE,KAAK,EAAE,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IAElC,IAAI,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,CAAC,EAAE,CAAC;QAC1B,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;QACzC,OAAO,CAAC,CAAC;IACX,CAAC;IAED,MAAM,OAAO,GAAG,KAAK,CAAC,UAAU,CAAC,KAAK,IAAI,CAAC;IAC3C,mEAAmE;IACnE,wEAAwE;IACxE,gEAAgE;IAChE,sCAAsC;IACtC,MAAM,iBAAiB,GAAG,iBAAiB,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;IAErE,OAAO,aAAa,CAClB,IAAI,CAAC,UAAU,EACf,GAAG,EAAE,CACH,MAAM,CAAC;QACL,WAAW,EAAE,GAAG,EAAE,CAChB,sBAAsB,CAAC;YACrB,OAAO;YACP,iBAAiB;YACjB,WAAW,EAAE,IAAI,CAAC,mBAAmB;YACrC,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,KAAK,EAAE,IAAI,CAAC,WAAW;YACvB,MAAM,EAAE,IAAI,CAAC,YAAY;SAC1B,CAAC;KACL,CAAC,EACJ,UAAU,EACV,IAAI,CAAC,GAAG,EACR,IAAI,CAAC,OAAO,CACb,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,WAAW,CACxB,IAAc,EACd,UAAsB,EACtB,IAAyB;IAEzB,MAAM,EAAE,KAAK,EAAE,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IAElC,IAAI,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,CAAC,EAAE,CAAC;QAC1B,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;QACxC,OAAO,CAAC,CAAC;IACX,CAAC;IAED,MAAM,YAAY,GAAG,KAAK,CAAC,eAAe,CAAC,KAAK,IAAI,CAAC;IACrD,mEAAmE;IACnE,oEAAoE;IACpE,uEAAuE;IACvE,qEAAqE;IACrE,iEAAiE;IACjE,MAAM,iBAAiB,GAAG,iBAAiB,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;IAErE,OAAO,aAAa,CAClB,IAAI,CAAC,UAAU,EACf,GAAG,EAAE,CACH,KAAK,CAAC;QACJ,cAAc,EAAE,GAAG,EAAE,CACnB,mBAAmB,CAAC;YAClB,YAAY;YACZ,iBAAiB;YACjB,WAAW,EAAE,IAAI,CAAC,mBAAmB;YACrC,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,KAAK,EAAE,IAAI,CAAC,WAAW;YACvB,MAAM,EAAE,IAAI,CAAC,YAAY;SAC1B,CAAC;KACL,CAAC,EACJ,UAAU,EACV,IAAI,CAAC,GAAG,EACR,IAAI,CAAC,OAAO,CACb,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,UAAU,CACvB,IAAc,EACd,UAAsB,EACtB,IAAyB;IAEzB,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IAE9C,IAAI,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,CAAC,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrD,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;QACvC,OAAO,CAAC,CAAC;IACX,CAAC;IAED,MAAM,OAAO,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;IAC9B,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAiB,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAClF,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC;IAExC,QAAQ,OAAO,EAAE,CAAC;QAChB,KAAK,KAAK,EAAE,CAAC;YACX,MAAM,QAAQ,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;YAC/B,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,MAAM,IAAI,eAAe,CAAC,mBAAmB,EAAE,kCAAkC,CAAC,CAAC;YACrF,CAAC;YACD,OAAO,aAAa,CAClB,IAAI,CAAC,UAAU,EACf,CAAC,OAAO,EAAE,EAAE,CAAC,WAAW,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE,EAAE,OAAO,CAAC,EACrE,UAAU,EACV,IAAI,CAAC,GAAG,EACR,IAAI,CAAC,OAAO,CACb,CAAC;QACJ,CAAC;QACD,KAAK,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC3C,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,MAAM,IAAI,eAAe,CAAC,qBAAqB,EAAE,mCAAmC,CAAC,CAAC;YACxF,CAAC;YACD,OAAO,aAAa,CAClB,IAAI,CAAC,UAAU,EACf,CAAC,OAAO,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE,EAAE,OAAO,CAAC,EAC9D,UAAU,EACV,IAAI,CAAC,GAAG,EACR,IAAI,CAAC,OAAO,CACb,CAAC;QACJ,CAAC;QACD,KAAK,YAAY;YACf,OAAO,aAAa,CAClB,IAAI,CAAC,UAAU,EACf,CAAC,OAAO,EAAE,EAAE,CAAC,eAAe,CAAC,OAAO,CAAC,EACrC,UAAU,EACV,IAAI,CAAC,GAAG,EACR,IAAI,CAAC,OAAO,CACb,CAAC;QACJ,KAAK,QAAQ;YACX,OAAO,aAAa,CAClB,IAAI,CAAC,UAAU,EACf,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC,mBAAmB,CAAC,OAAO,CAAC,EAC/C,UAAU,EACV,IAAI,CAAC,GAAG,EACR,IAAI,CAAC,OAAO,CACb,CAAC;QACJ;YACE,MAAM,IAAI,eAAe,CACvB,yBAAyB,OAAO,EAAE,EAClC,oDAAoD,CACrD,CAAC;IACN,CAAC;AACH,CAAC;AAsBD,MAAM,SAAS,GAAG,CAAC,EAAU,EAAiB,EAAE,CAAC,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;AAEnG,MAAM,CAAC,KAAK,UAAU,IAAI,CACxB,IAAuB,EACvB,YAA8B;IAE9B,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,YAAY,CAAC;IAC9C,MAAM,mBAAmB,GAAG,YAAY,CAAC,mBAAmB,IAAI,6BAA6B,CAAC;IAC9F,MAAM,WAAW,GAAG,YAAY,CAAC,WAAW,IAAI,oBAAoB,CAAC;IACrE,MAAM,WAAW,GAAG,YAAY,CAAC,WAAW,IAAI,SAAS,CAAC;IAC1D,MAAM,YAAY,GAAG,YAAY,CAAC,YAAY,IAAI,IAAI,CAAC,MAAM,CAAC;IAC9D,wEAAwE;IACxE,qEAAqE;IACrE,0EAA0E;IAC1E,MAAM,OAAO,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC;IAEvC,MAAM,EAAE,YAAY,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,oBAAoB,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;IAEhG,wEAAwE;IACxE,sEAAsE;IACtE,mEAAmE;IACnE,qEAAqE;IACrE,oEAAoE;IACpE,sEAAsE;IACtE,8CAA8C;IAC9C,IAAI,UAAsB,CAAC;IAC3B,IAAI,CAAC;QACH,UAAU,GAAG,iBAAiB,CAC5B,YAAY,EACZ,WAAW,IAAI,KAAK,EACpB,QAAQ,IAAI,KAAK,EACjB,UAAU,CACX,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,8DAA8D;QAC9D,oEAAoE;QACpE,UAAU,CAAC,WAAW,CAAC,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;QAClE,OAAO,gBAAgB,CAAC,KAAK,CAAC,CAAC;IACjC,CAAC;IAED,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QAClE,UAAU,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;QAClC,OAAO,CAAC,CAAC;IACX,CAAC;IAED,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,WAAW,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QAChD,UAAU,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAChC,OAAO,CAAC,CAAC;IACX,CAAC;IAED,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IACxB,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAElC,MAAM,WAAW,GAAwB;QACvC,UAAU;QACV,GAAG;QACH,OAAO;QACP,GAAG;QACH,QAAQ;QACR,mBAAmB;QACnB,WAAW;QACX,WAAW;QACX,YAAY;KACb,CAAC;IAEF,IAAI,CAAC;QACH,QAAQ,OAAO,EAAE,CAAC;YAChB,KAAK,QAAQ;gBACX,OAAO,MAAM,YAAY,CAAC,WAAW,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;YAClE,KAAK,QAAQ;gBACX,OAAO,MAAM,YAAY,CAAC,WAAW,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;YAClE,KAAK,MAAM;gBACT,OAAO,MAAM,UAAU,CAAC,WAAW,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;YAChE,KAAK,MAAM;gBACT,OAAO,MAAM,UAAU,CAAC,WAAW,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;YAChE,KAAK,OAAO;gBACV,OAAO,MAAM,WAAW,CAAC,WAAW,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;YACjE,KAAK,MAAM;gBACT,OAAO,MAAM,UAAU,CAAC,WAAW,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;YAChE,KAAK,MAAM;gBACT,OAAO,MAAM,UAAU,CAAC,WAAW,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;YAChE,KAAK,QAAQ;gBACX,OAAO,MAAM,YAAY,CAAC,WAAW,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;YAClE,KAAK,OAAO;gBACV,OAAO,MAAM,WAAW,CAAC,WAAW,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;YACjE,KAAK,MAAM;gBACT,OAAO,MAAM,UAAU,CAAC,WAAW,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;YAChE;gBACE,UAAU,CAAC,WAAW,CACpB,iBAAiB,CACf,IAAI,eAAe,CACjB,oBAAoB,OAAO,EAAE,EAC7B,+CAA+C,CAChD,EACD,UAAU,EACV,OAAO,CACR,CACF,CAAC;gBACF,OAAO,CAAC,CAAC;QACb,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,4DAA4D;QAC5D,+DAA+D;QAC/D,oEAAoE;QACpE,mDAAmD;QACnD,UAAU,CAAC,WAAW,CAAC,iBAAiB,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC;QACtE,OAAO,gBAAgB,CAAC,KAAK,CAAC,CAAC;IACjC,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,MAAM,MAAM,sBAAsB,CAAC;AAE/C,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/E,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAC3F,OAAO,EAAE,MAAM,EAAE,sBAAsB,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnF,OAAO,EAAE,KAAK,EAAE,mBAAmB,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC7E,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,wBAAwB,EACxB,UAAU,GAGX,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAoB,MAAM,kBAAkB,CAAC;AACnE,OAAO,EACL,WAAW,EACX,QAAQ,EACR,eAAe,EACf,mBAAmB,EACnB,SAAS,GACV,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,YAAY,EAAE,YAAY,EAAmB,MAAM,iBAAiB,CAAC;AAC9E,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EACL,kBAAkB,EAClB,eAAe,EACf,0BAA0B,EAC1B,gBAAgB,GACjB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,aAAa,EAAiC,MAAM,yBAAyB,CAAC;AACvF,OAAO,EAAE,oBAAoB,EAAsB,MAAM,gBAAgB,CAAC;AAC1E,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,6BAA6B,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAI/F,OAAO,EAAE,2BAA2B,EAAwB,MAAM,0BAA0B,CAAC;AAC7F,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,MAAM,OAAO,GAAG,aAAa,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/C,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,iBAAiB,CAAwB,CAAC;AAE/E,MAAM,SAAS,GAAG;aACL,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8CnB,CAAC,IAAI,EAAE,CAAC;AAET,SAAS,SAAS,CAAC,IAAc;IAI/B,MAAM,KAAK,GAAqC,EAAE,CAAC;IACnD,MAAM,UAAU,GAAa,EAAE,CAAC;IAEhC,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QACvB,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QAEpB,IAAI,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YACzB,MAAM,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAEzB,IAAI,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC1B,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;gBAC5B,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;gBAClB,CAAC,EAAE,CAAC;gBACJ,SAAS;YACX,CAAC;YAED,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YAC5B,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBACxC,KAAK,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC;gBACrB,CAAC,IAAI,CAAC,CAAC;YACT,CAAC;iBAAM,CAAC;gBACN,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;gBAClB,CAAC,EAAE,CAAC;YACN,CAAC;QACH,CAAC;aAAM,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACnD,MAAM,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACzB,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YAC5B,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBACxC,KAAK,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC;gBACrB,CAAC,IAAI,CAAC,CAAC;YACT,CAAC;iBAAM,CAAC;gBACN,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;gBAClB,CAAC,EAAE,CAAC;YACN,CAAC;QACH,CAAC;aAAM,CAAC;YACN,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACrB,CAAC,EAAE,CAAC;QACN,CAAC;IACH,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC;AAC/B,CAAC;AAED,SAAS,oBAAoB,CAAC,IAAc;IAO1C,MAAM,IAAI,GAAa,EAAE,CAAC;IAC1B,IAAI,YAAgC,CAAC;IACrC,IAAI,WAAW,GAAG,KAAK,CAAC;IACxB,IAAI,QAAQ,GAAG,KAAK,CAAC;IACrB,IAAI,QAA4B,CAAC;IAEjC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QACxC,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACpB,IAAI,GAAG,KAAK,iBAAiB,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;YAC9C,YAAY,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YAC3B,CAAC,IAAI,CAAC,CAAC;YACP,SAAS;QACX,CAAC;QACD,IAAI,GAAG,KAAK,iBAAiB,EAAE,CAAC;YAC9B,WAAW,GAAG,IAAI,CAAC;YACnB,SAAS;QACX,CAAC;QACD,IAAI,GAAG,KAAK,OAAO,EAAE,CAAC;YACpB,QAAQ,GAAG,IAAI,CAAC;YAChB,SAAS;QACX,CAAC;QACD,IAAI,GAAG,KAAK,YAAY,EAAE,CAAC;YACzB,mEAAmE;YACnE,mEAAmE;YACnE,mEAAmE;YACnE,4DAA4D;YAC5D,QAAQ,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YACvB,CAAC,IAAI,CAAC,CAAC;YACP,SAAS;QACX,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACjB,CAAC;IAED,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AACjE,CAAC;AAED,SAAS,iBAAiB,CACxB,QAA4B,EAC5B,WAAoB,EACpB,QAAiB,EACjB,OAAiC;IAEjC,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC3B,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC5B,MAAM,IAAI,eAAe,CACvB,0BAA0B,QAAQ,EAAE,EACpC,eAAe,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACzC,CAAC;QACJ,CAAC;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,IAAI,WAAW;QAAE,OAAO,KAAK,CAAC;IAC9B,IAAI,QAAQ;QAAE,OAAO,MAAM,CAAC;IAC5B,MAAM,OAAO,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAC9C,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,YAAY,CAAC,OAAO,CAAC,EAAE,CAAC;QACzD,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,IAAI,OAAO,CAAC,WAAW;QAAE,OAAO,KAAK,CAAC;IACtC,OAAO,MAAM,CAAC;AAChB,CAAC;AAuDD,KAAK,UAAU,YAAY,CACzB,IAAc,EACd,UAAsB,EACtB,IAAyB;IAEzB,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IAE9C,IAAI,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,CAAC,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrD,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QAChD,OAAO,CAAC,CAAC;IACX,CAAC;IAED,MAAM,OAAO,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;IAC9B,MAAM,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;IAC7B,MAAM,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;IAE7B,sEAAsE;IACtE,qEAAqE;IACrE,8CAA8C;IAC9C,MAAM,SAAS,GAAG,yBAAyB,CAAC,OAAO,CAAC,CAAC;IAErD,oEAAoE;IACpE,wEAAwE;IACxE,sEAAsE;IACtE,uEAAuE;IACvE,MAAM,UAAU,GAAe,iBAAiB,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;IAC1E,MAAM,UAAU,GAAG,qBAAqB,CAAC,UAAU,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC;IAE/E,yEAAyE;IACzE,0EAA0E;IAC1E,sEAAsE;IACtE,sEAAsE;IACtE,2EAA2E;IAC3E,MAAM,YAAY,GAAG,2BAA2B,CAAC,SAAS,CAAC,CAAC;IAC5D,IAAI,CAAC,UAAU,CAAC,YAAY,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC;QACjD,MAAM,IAAI,0BAA0B,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;IACjE,CAAC;IACD,wEAAwE;IACxE,qEAAqE;IACrE,uEAAuE;IACvE,uDAAuD;IACvD,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QACvC,MAAM,IAAI,kBAAkB,CAC1B,aAAa,UAAU,gDAAgD,CACxE,CAAC;IACJ,CAAC;IACD,MAAM,OAAO,GAAG,UAAU,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IACrD,MAAM,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC;IACxC,IAAI,CAAC,gBAAgB,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;QAC/D,MAAM,IAAI,0BAA0B,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;IACjE,CAAC;IAED,oEAAoE;IACpE,oEAAoE;IACpE,oDAAoD;IACpD,MAAM,UAAU,GAAgC;QAC9C,UAAU,EAAE,gBAAgB;QAC5B,KAAK,EAAE,IAAI,CAAC,WAAW;QACvB,MAAM,EAAE,IAAI,CAAC,YAAY;KAC1B,CAAC;IAEF,QAAQ,OAAO,EAAE,CAAC;QAChB,KAAK,SAAS;YACZ,OAAO,aAAa,CAClB,IAAI,CAAC,UAAU,EACf,CAAC,OAAO,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,CAAC,EAChE,UAAU,EACV,IAAI,CAAC,GAAG,EACR,IAAI,CAAC,OAAO,CACb,CAAC;QAEJ,KAAK,YAAY,EAAE,CAAC;YAClB,MAAM,UAAU,GAAI,KAAK,CAAC,MAAiB,IAAI,MAAM,CAAC;YACtD,OAAO,aAAa,CAClB,IAAI,CAAC,UAAU,EACf,CAAC,OAAO,EAAE,EAAE,CACV,MAAM,CAAC,QAAQ,CACb,MAAM,EACN,MAAM,EACN,UAAwD,EACxD,UAAU,EACV,OAAO,CACR,EACH,UAAU,EACV,IAAI,CAAC,GAAG,EACR,IAAI,CAAC,OAAO,CACb,CAAC;QACJ,CAAC;QAED,KAAK,cAAc;YACjB,OAAO,aAAa,CAClB,IAAI,CAAC,UAAU,EACf,CAAC,OAAO,EAAE,EAAE,CACV,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,QAAkB,EAAE,UAAU,EAAE,OAAO,CAAC,EACnF,UAAU,EACV,IAAI,CAAC,GAAG,EACR,IAAI,CAAC,OAAO,CACb,CAAC;QAEJ,KAAK,gBAAgB;YACnB,OAAO,aAAa,CAClB,IAAI,CAAC,UAAU,EACf,CAAC,OAAO,EAAE,EAAE,CACV,MAAM,CAAC,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,OAAiB,EAAE,UAAU,EAAE,OAAO,CAAC,EACpF,UAAU,EACV,IAAI,CAAC,GAAG,EACR,IAAI,CAAC,OAAO,CACb,CAAC;QAEJ,KAAK,SAAS;YACZ,OAAO,aAAa,CAClB,IAAI,CAAC,UAAU,EACf,CAAC,OAAO,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,IAAc,EAAE,UAAU,EAAE,OAAO,CAAC,EACtF,UAAU,EACV,IAAI,CAAC,GAAG,EACR,IAAI,CAAC,OAAO,CACb,CAAC;QAEJ,KAAK,OAAO;YACV,OAAO,aAAa,CAClB,IAAI,CAAC,UAAU,EACf,CAAC,OAAO,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,KAAe,EAAE,UAAU,EAAE,OAAO,CAAC,EACrF,UAAU,EACV,IAAI,CAAC,GAAG,EACR,IAAI,CAAC,OAAO,CACb,CAAC;QAEJ,KAAK,MAAM,EAAE,CAAC;YACZ,MAAM,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;YAC7B,MAAM,UAAU,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;YACjC,OAAO,aAAa,CAClB,IAAI,CAAC,UAAU,EACf,CAAC,OAAO,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,OAAO,CAAC,EACzE,UAAU,EACV,IAAI,CAAC,GAAG,EACR,IAAI,CAAC,OAAO,CACb,CAAC;QACJ,CAAC;QAED,KAAK,OAAO;YACV,OAAO,aAAa,CAClB,IAAI,CAAC,UAAU,EACf,CAAC,OAAO,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,CAAC,EAC9D,UAAU,EACV,IAAI,CAAC,GAAG,EACR,IAAI,CAAC,OAAO,CACb,CAAC;QAEJ;YACE,MAAM,IAAI,eAAe,CACvB,2BAA2B,OAAO,EAAE,EACpC,sDAAsD,CACvD,CAAC;IACN,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,SAAS,yBAAyB,CAAC,OAAe;IAChD,QAAQ,OAAO,EAAE,CAAC;QAChB,KAAK,SAAS;YACZ,OAAO,iBAAiB,CAAC;QAC3B,KAAK,YAAY;YACf,OAAO,aAAa,CAAC;QACvB,KAAK,cAAc;YACjB,OAAO,cAAc,CAAC;QACxB,KAAK,gBAAgB;YACnB,OAAO,gBAAgB,CAAC;QAC1B,KAAK,SAAS;YACZ,OAAO,SAAS,CAAC;QACnB,KAAK,OAAO;YACV,OAAO,OAAO,CAAC;QACjB,KAAK,MAAM;YACT,OAAO,MAAM,CAAC;QAChB,KAAK,OAAO;YACV,OAAO,OAAO,CAAC;QACjB;YACE,MAAM,IAAI,eAAe,CACvB,2BAA2B,OAAO,EAAE,EACpC,sDAAsD,CACvD,CAAC;IACN,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,qBAAqB,CAAC,GAAY;IAChD,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,EAAE;QAAE,OAAO,SAAS,CAAC;IACtD,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;QACjB,MAAM,IAAI,eAAe,CACvB,iCAAiC,EACjC,8CAA8C,CAC/C,CAAC;IACJ,CAAC;IACD,MAAM,GAAG,GAAG,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACxD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,eAAe,CACvB,0BAA0B,GAAG,mCAAmC,EAChE,8CAA8C,CAC/C,CAAC;IACJ,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IAC3B,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,MAAM,GAAG,CAAC,EAAE,CAAC;QAChD,MAAM,IAAI,eAAe,CACvB,0BAA0B,GAAG,wCAAwC,EACrE,8CAA8C,CAC/C,CAAC;IACJ,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,KAAK,UAAU,YAAY,CACzB,IAAc,EACd,UAAsB,EACtB,IAAyB;IAEzB,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IAE9C,IAAI,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,CAAC,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrD,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;QACzC,OAAO,CAAC,CAAC;IACX,CAAC;IAED,qEAAqE;IACrE,qEAAqE;IACrE,yEAAyE;IACzE,kEAAkE;IAClE,wEAAwE;IACxE,6DAA6D;IAC7D,MAAM,KAAK,GAAG,qBAAqB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAEjD,uEAAuE;IACvE,uEAAuE;IACvE,yEAAyE;IACzE,mEAAmE;IACnE,mEAAmE;IACnE,iCAAiC;IACjC,MAAM,UAAU,GAAe,iBAAiB,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;IAC1E,MAAM,UAAU,GAAG,qBAAqB,CAAC,UAAU,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC;IAC/E,IAAI,CAAC,UAAU,CAAC,YAAY,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC7C,MAAM,IAAI,0BAA0B,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IAC7D,CAAC;IACD,wEAAwE;IACxE,qEAAqE;IACrE,uEAAuE;IACvE,uCAAuC;IACvC,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QACvC,MAAM,IAAI,kBAAkB,CAC1B,aAAa,UAAU,gDAAgD,CACxE,CAAC;IACJ,CAAC;IACD,MAAM,OAAO,GAAG,UAAU,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IACrD,MAAM,UAAU,GAAiC,OAAO,CAAC,MAAM,CAAC;IAChE,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,MAAM,IAAI,0BAA0B,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IAC7D,CAAC;IAED,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAEnC,MAAM,SAAS,GAAG,KAAK,CAAC,MAA4B,CAAC;IACrD,MAAM,MAAM,GAAG,SAAS;QACtB,CAAC,CAAC,SAAS;aACN,KAAK,CAAC,GAAG,CAAC;aACV,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;aACpB,MAAM,CAAC,OAAO,CAAC;QACpB,CAAC,CAAC,SAAS,CAAC;IAEd,OAAO,aAAa,CAClB,IAAI,CAAC,UAAU,EACf,CAAC,OAAO,EAAE,EAAE,CACV,MAAM,CACJ,KAAK,EACL;QACE,KAAK;QACL,MAAM,EAAE,KAAK,CAAC,MAAgB;QAC9B,OAAO,EAAE,KAAK,CAAC,OAAoE;QACnF,WAAW,EAAE,KAAK,CAAC,cAAc,CAAsB;QACvD,QAAQ,EAAE,KAAK,CAAC,QAAuB;QACvC,UAAU,EAAE,KAAK,CAAC,aAAa,CAAC;YAC9B,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,aAAa,CAAW,EAAE,EAAE,CAAC;YAC9C,CAAC,CAAC,SAAS;QACb,MAAM,EAAE,MAAM,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;QACxD,OAAO,EAAE,KAAK,CAAC,UAAU,CAAC,KAAK,IAAI;QACnC,KAAK,EAAE,KAAK,CAAC,KAAK,KAAK,IAAI;KAC5B,EACD;QACE,UAAU;QACV,KAAK,EAAE,IAAI,CAAC,WAAW;QACvB,KAAK,EAAE,IAAI,CAAC,WAAW;QACvB,MAAM,EAAE,IAAI,CAAC,YAAY;KAC1B,EACD,OAAO,CACR,EACH,UAAU,EACV,IAAI,CAAC,GAAG,EACR,IAAI,CAAC,OAAO,CACb,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,UAAU,CACvB,IAAc,EACd,UAAsB,EACtB,IAAyB;IAEzB,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IAE9C,IAAI,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,CAAC,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrD,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;QACvC,OAAO,CAAC,CAAC;IACX,CAAC;IAED,MAAM,GAAG,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;IAE1B,oEAAoE;IACpE,iEAAiE;IACjE,oEAAoE;IACpE,iEAAiE;IACjE,gEAAgE;IAChE,gDAAgD;IAChD,8DAA8D;IAC9D,uDAAuD;IACvD,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC;QAC3F,MAAM,IAAI,eAAe,CAAC,yCAAyC,CAAC,CAAC;IACvE,CAAC;IACD,MAAM,WAAW,GAAG,KAAK,CAAC,OAA6B,CAAC;IACxD,IAAI,WAAW,KAAK,SAAS,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,EAAE,CAAC;QAC7D,MAAM,IAAI,eAAe,CACvB,2BAA2B,WAAW,6CAA6C,CACpF,CAAC;IACJ,CAAC;IACD,MAAM,OAAO,GAAG,WAAW,KAAK,SAAS,CAAC,CAAC,CAAE,WAA2B,CAAC,CAAC,CAAC,SAAS,CAAC;IAErF,gEAAgE;IAChE,oEAAoE;IACpE,qEAAqE;IACrE,kEAAkE;IAClE,MAAM,UAAU,GAAe,iBAAiB,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;IAC1E,MAAM,UAAU,GAAG,qBAAqB,CAAC,UAAU,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC;IAE/E,6DAA6D;IAC7D,6DAA6D;IAC7D,kEAAkE;IAClE,mEAAmE;IACnE,gEAAgE;IAChE,IAAI,CAAC,UAAU,CAAC,YAAY,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC7C,MAAM,IAAI,0BAA0B,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IAC7D,CAAC;IAED,oEAAoE;IACpE,mEAAmE;IACnE,mEAAmE;IACnE,8BAA8B;IAC9B,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QACvC,MAAM,IAAI,kBAAkB,CAC1B,aAAa,UAAU,gDAAgD,CACxE,CAAC;IACJ,CAAC;IAED,MAAM,OAAO,GAAG,UAAU,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IACrD,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC;IAClC,mEAAmE;IACnE,iEAAiE;IACjE,sCAAsC;IACtC,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,MAAM,IAAI,0BAA0B,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IAC7D,CAAC;IAED,+DAA+D;IAC/D,iEAAiE;IACjE,+DAA+D;IAC/D,+CAA+C;IAC/C,MAAM,aAAa,GAA0B;QAC3C,KAAK,EAAE,IAAI,CAAC,WAAW;QACvB,KAAK,EAAE,IAAI,CAAC,WAAW;QACvB,MAAM,EAAE,IAAI,CAAC,YAAY;KAC1B,CAAC;IAEF,OAAO,aAAa,CAClB,IAAI,CAAC,UAAU,EACf,CAAC,OAAO,EAAE,EAAE,CACV,IAAI,CACF,GAAG,EACH;QACE,MAAM,EAAE,KAAK,CAAC,MAA6B;QAC3C,QAAQ,EAAE,KAAK,CAAC,WAAW,CAAC,KAAK,IAAI;QACrC,OAAO,EAAE,KAAK,CAAC,UAAU,CAAC,KAAK,IAAI;QACnC,SAAS,EAAE,KAAK,CAAC,YAAY,CAAC,KAAK,IAAI;QACvC,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAiB,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS;QAC1E,KAAK,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,IAAI;QAC/B,cAAc,EAAE,KAAK,CAAC,mBAAmB,CAAC,KAAK,IAAI;QACnD,iBAAiB,EAAE,KAAK,CAAC,qBAAqB,CAAC,KAAK,IAAI;QACxD,QAAQ,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,WAAW,CAAW,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS;QACrF,YAAY,EAAE,KAAK,CAAC,eAAe,CAAC,KAAK,IAAI;QAC7C,OAAO;KACR,EACD,EAAE,UAAU,EAAE,SAAS,EAAE,aAAa,EAAE,EACxC,OAAO,CACR,EACH,UAAU,EACV,IAAI,CAAC,GAAG,EACR,IAAI,CAAC,OAAO,CACb,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,UAAU,CACvB,IAAc,EACd,UAAsB,EACtB,IAAyB;IAEzB,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IAE9C,IAAI,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,CAAC,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrD,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;QACvC,OAAO,CAAC,CAAC;IACX,CAAC;IAED,MAAM,OAAO,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;IAC9B,MAAM,IAAI,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;IAE3B,sEAAsE;IACtE,sEAAsE;IACtE,oDAAoD;IACpD,+DAA+D;IAC/D,oEAAoE;IACpE,sEAAsE;IACtE,oEAAoE;IACpE,kBAAkB;IAClB,IAAI,WAA+B,CAAC;IACpC,IAAI,QAA4B,CAAC;IACjC,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;QACzB,WAAW,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC5C,IAAI,CAAC,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YAC1B,MAAM,IAAI,eAAe,CACvB,uBAAuB,EACvB,mDAAmD,CACpD,CAAC;QACJ,CAAC;IACH,CAAC;SAAM,IAAI,OAAO,KAAK,MAAM,EAAE,CAAC;QAC9B,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,IAAI,eAAe,CAAC,cAAc,EAAE,yCAAyC,CAAC,CAAC;QACvF,CAAC;IACH,CAAC;SAAM,IAAI,OAAO,KAAK,MAAM,EAAE,CAAC;QAC9B,QAAQ,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;QACzB,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YACvB,MAAM,IAAI,eAAe,CACvB,sBAAsB,EACtB,gDAAgD,CACjD,CAAC;QACJ,CAAC;IACH,CAAC;SAAM,CAAC;QACN,MAAM,IAAI,eAAe,CACvB,yBAAyB,OAAO,EAAE,EAClC,oDAAoD,CACrD,CAAC;IACJ,CAAC;IAED,gEAAgE;IAChE,oEAAoE;IACpE,qEAAqE;IACrE,kEAAkE;IAClE,MAAM,UAAU,GAAe,iBAAiB,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;IAC1E,MAAM,UAAU,GAAG,qBAAqB,CAAC,UAAU,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC;IAE/E,6DAA6D;IAC7D,6DAA6D;IAC7D,kEAAkE;IAClE,mEAAmE;IACnE,gEAAgE;IAChE,IAAI,CAAC,UAAU,CAAC,YAAY,EAAE,CAAC,GAAG,CAAC,wBAAwB,CAAC,EAAE,CAAC;QAC7D,MAAM,IAAI,0BAA0B,CAAC,UAAU,EAAE,wBAAwB,CAAC,CAAC;IAC7E,CAAC;IAED,oEAAoE;IACpE,mEAAmE;IACnE,mEAAmE;IACnE,8BAA8B;IAC9B,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QACvC,MAAM,IAAI,kBAAkB,CAC1B,aAAa,UAAU,gDAAgD,CACxE,CAAC;IACJ,CAAC;IAED,MAAM,OAAO,GAAG,UAAU,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IACrD,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;IACtC,mEAAmE;IACnE,iEAAiE;IACjE,sCAAsC;IACtC,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,MAAM,IAAI,0BAA0B,CAAC,UAAU,EAAE,wBAAwB,CAAC,CAAC;IAC7E,CAAC;IAED,mEAAmE;IACnE,kEAAkE;IAClE,oEAAoE;IACpE,8BAA8B;IAC9B,MAAM,aAAa,GAA0B;QAC3C,KAAK,EAAE,IAAI,CAAC,eAAe;QAC3B,KAAK,EAAE,IAAI,CAAC,eAAe;QAC3B,MAAM,EAAE,IAAI,CAAC,gBAAgB;KAC9B,CAAC;IAEF,QAAQ,OAAO,EAAE,CAAC;QAChB,KAAK,QAAQ,EAAE,CAAC;YACd,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAmC,CAAC;YAC3D,MAAM,QAAQ,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,WAAW,CAAW,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAC7F,MAAM,OAAO,GAAG,KAAK,CAAC,UAAU,CAAC,KAAK,IAAI,CAAC;YAC3C,OAAO,aAAa,CAClB,IAAI,CAAC,UAAU,EACf,GAAG,EAAE,CACH,UAAU,CACR,IAAI,EACJ,WAAqB,EACrB,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,EAC/B,EAAE,UAAU,EAAE,SAAS,EAAE,aAAa,EAAE,CACzC,EACH,UAAU,EACV,IAAI,CAAC,GAAG,EACR,IAAI,CAAC,OAAO,CACb,CAAC;QACJ,CAAC;QAED,KAAK,MAAM,EAAE,CAAC;YACZ,MAAM,QAAQ,GAAG,KAAK,CAAC,IAA0B,CAAC;YAClD,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAe,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAC5E,MAAM,OAAO,GAAG,KAAK,CAAC,UAAU,CAAC,KAAK,IAAI,CAAC;YAC3C,OAAO,aAAa,CAClB,IAAI,CAAC,UAAU,EACf,GAAG,EAAE,CACH,QAAQ,CACN,IAAI,EACJ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,EAClC,EAAE,UAAU,EAAE,SAAS,EAAE,aAAa,EAAE,CACzC,EACH,UAAU,EACV,IAAI,CAAC,GAAG,EACR,IAAI,CAAC,OAAO,CACb,CAAC;QACJ,CAAC;QAED,KAAK,MAAM,EAAE,CAAC;YACZ,MAAM,QAAQ,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,WAAW,CAAW,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAC7F,MAAM,OAAO,GAAG,KAAK,CAAC,UAAU,CAAC,KAAK,IAAI,CAAC;YAC3C,OAAO,aAAa,CAClB,IAAI,CAAC,UAAU,EACf,GAAG,EAAE,CACH,QAAQ,CACN,IAAI,EACJ,QAAkB,EAClB,EAAE,QAAQ,EAAE,OAAO,EAAE,EACrB,EAAE,UAAU,EAAE,SAAS,EAAE,aAAa,EAAE,CACzC,EACH,UAAU,EACV,IAAI,CAAC,GAAG,EACR,IAAI,CAAC,OAAO,CACb,CAAC;QACJ,CAAC;QAED;YACE,iEAAiE;YACjE,8DAA8D;YAC9D,qBAAqB;YACrB,MAAM,IAAI,eAAe,CACvB,yBAAyB,OAAO,EAAE,EAClC,oDAAoD,CACrD,CAAC;IACN,CAAC;AACH,CAAC;AAED,KAAK,UAAU,WAAW,CACxB,IAAc,EACd,UAAsB,EACtB,IAAyB;IAEzB,MAAM,EAAE,KAAK,EAAE,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IAElC,IAAI,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,CAAC,EAAE,CAAC;QAC1B,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;QACxC,OAAO,CAAC,CAAC;IACX,CAAC;IAED,OAAO,aAAa,CAClB,IAAI,CAAC,UAAU,EACf,CAAC,OAAO,EAAE,EAAE,CACV,SAAS,CACP;QACE,MAAM,EAAE,KAAK,CAAC,MAAgB;QAC9B,IAAI,EAAE,KAAK,CAAC,IAAI,KAAK,IAAI;QACzB,UAAU,EAAE,KAAK,CAAC,UAAU,KAAK,IAAI,IAAI,KAAK,CAAC,EAAE,KAAK,IAAI;QAC1D,YAAY,EAAE,KAAK,CAAC,MAAM,KAAK,KAAK;KACrC,EACD,OAAO,CACR,EACH,UAAU,EACV,IAAI,CAAC,GAAG,EACR,IAAI,CAAC,OAAO,CACb,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,UAAU,CACvB,IAAc,EACd,UAAsB,EACtB,IAAyB;IAEzB,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IAE9C,IAAI,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,CAAC,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrD,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;QACxC,OAAO,CAAC,CAAC;IACX,CAAC;IAED,OAAO,aAAa,CAClB,IAAI,CAAC,UAAU,EACf,CAAC,OAAO,EAAE,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,EAAE,YAAY,EAAE,KAAK,CAAC,MAAM,KAAK,KAAK,EAAE,EAAE,OAAO,CAAC,EACvF,UAAU,EACV,IAAI,CAAC,GAAG,EACR,IAAI,CAAC,OAAO,CACb,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,UAAU,CACvB,IAAc,EACd,UAAsB,EACtB,IAAyB;IAEzB,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IAE9C,IAAI,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,CAAC,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrD,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;QACvC,OAAO,CAAC,CAAC;IACX,CAAC;IAED,OAAO,aAAa,CAClB,IAAI,CAAC,UAAU,EACf,CAAC,OAAO,EAAE,EAAE,CACV,QAAQ,CACN,UAAU,CAAC,CAAC,CAAC,EACb;QACE,IAAI,EAAE,KAAK,CAAC,IAAc;QAC1B,IAAI,EAAE,KAAK,CAAC,IAAc;QAC1B,KAAK,EAAE,KAAK,CAAC,KAAK,KAAK,IAAI;QAC3B,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,KAAK,IAAI;QACjC,YAAY,EAAE,KAAK,CAAC,MAAM,KAAK,KAAK;KACrC,EACD,OAAO,CACR,EACH,UAAU,EACV,IAAI,CAAC,GAAG,EACR,IAAI,CAAC,OAAO,CACb,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,YAAY,CACzB,IAAc,EACd,UAAsB,EACtB,IAAyB;IAEzB,MAAM,EAAE,KAAK,EAAE,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IAElC,IAAI,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,CAAC,EAAE,CAAC;QAC1B,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;QACzC,OAAO,CAAC,CAAC;IACX,CAAC;IAED,MAAM,OAAO,GAAG,KAAK,CAAC,UAAU,CAAC,KAAK,IAAI,CAAC;IAC3C,mEAAmE;IACnE,wEAAwE;IACxE,gEAAgE;IAChE,sCAAsC;IACtC,MAAM,iBAAiB,GAAG,iBAAiB,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;IAErE,wEAAwE;IACxE,uEAAuE;IACvE,mEAAmE;IACnE,oEAAoE;IACpE,oEAAoE;IACpE,MAAM,YAAY,GAAG,wBAAwB,CAAC,MAAM,UAAU,EAAE,CAAC,CAAC;IAElE,OAAO,aAAa,CAClB,IAAI,CAAC,UAAU,EACf,GAAG,EAAE,CACH,MAAM,CAAC;QACL,WAAW,EAAE,GAAG,EAAE,CAChB,sBAAsB,CAAC;YACrB,OAAO;YACP,iBAAiB;YACjB,WAAW,EAAE,IAAI,CAAC,mBAAmB;YACrC,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,KAAK,EAAE,IAAI,CAAC,WAAW;YACvB,MAAM,EAAE,IAAI,CAAC,YAAY;YACzB,YAAY;SACb,CAAC;KACL,CAAC,EACJ,UAAU,EACV,IAAI,CAAC,GAAG,EACR,IAAI,CAAC,OAAO,CACb,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,KAAK,UAAU,WAAW,CACxB,IAAc,EACd,UAAsB,EACtB,IAAyB;IAEzB,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IAE9C,IAAI,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,CAAC,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrD,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;QACxC,OAAO,CAAC,CAAC;IACX,CAAC;IAED,MAAM,UAAU,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;IACjC,QAAQ,UAAU,EAAE,CAAC;QACnB,KAAK,OAAO;YACV,OAAO,aAAa,CAClB,IAAI,CAAC,UAAU,EACf,GAAG,EAAE,CACH,iBAAiB,CAAC;gBAChB,QAAQ,EAAE,GAAG,EAAE,CAAC,UAAU,EAA+B;aAC1D,CAAC,EACJ,UAAU,EACV,IAAI,CAAC,GAAG,EACR,IAAI,CAAC,OAAO,CACb,CAAC;QACJ,KAAK,OAAO;YACV,OAAO,aAAa,CAClB,IAAI,CAAC,UAAU,EACf,GAAG,EAAE,CACH,iBAAiB,CAAC;gBAChB,KAAK,EAAE,GAAG,EAAE,CAAC,cAAc,EAA+B;aAC3D,CAAC,EACJ,UAAU,EACV,IAAI,CAAC,GAAG,EACR,IAAI,CAAC,OAAO,CACb,CAAC;QACJ;YACE,MAAM,IAAI,eAAe,CACvB,0BAA0B,UAAU,EAAE,EACtC,qDAAqD,CACtD,CAAC;IACN,CAAC;AACH,CAAC;AAED,KAAK,UAAU,WAAW,CACxB,IAAc,EACd,UAAsB,EACtB,IAAyB;IAEzB,MAAM,EAAE,KAAK,EAAE,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IAElC,IAAI,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,CAAC,EAAE,CAAC;QAC1B,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;QACxC,OAAO,CAAC,CAAC;IACX,CAAC;IAED,MAAM,YAAY,GAAG,KAAK,CAAC,eAAe,CAAC,KAAK,IAAI,CAAC;IACrD,mEAAmE;IACnE,oEAAoE;IACpE,uEAAuE;IACvE,qEAAqE;IACrE,iEAAiE;IACjE,MAAM,iBAAiB,GAAG,iBAAiB,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;IAErE,OAAO,aAAa,CAClB,IAAI,CAAC,UAAU,EACf,GAAG,EAAE,CACH,KAAK,CAAC;QACJ,cAAc,EAAE,GAAG,EAAE,CACnB,mBAAmB,CAAC;YAClB,YAAY;YACZ,iBAAiB;YACjB,WAAW,EAAE,IAAI,CAAC,mBAAmB;YACrC,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,KAAK,EAAE,IAAI,CAAC,WAAW;YACvB,MAAM,EAAE,IAAI,CAAC,YAAY;SAC1B,CAAC;KACL,CAAC,EACJ,UAAU,EACV,IAAI,CAAC,GAAG,EACR,IAAI,CAAC,OAAO,CACb,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,UAAU,CACvB,IAAc,EACd,UAAsB,EACtB,IAAyB;IAEzB,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IAE9C,IAAI,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,CAAC,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrD,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;QACvC,OAAO,CAAC,CAAC;IACX,CAAC;IAED,MAAM,OAAO,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;IAC9B,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAiB,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAClF,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC;IAExC,QAAQ,OAAO,EAAE,CAAC;QAChB,KAAK,KAAK,EAAE,CAAC;YACX,MAAM,QAAQ,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;YAC/B,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,MAAM,IAAI,eAAe,CAAC,mBAAmB,EAAE,kCAAkC,CAAC,CAAC;YACrF,CAAC;YACD,OAAO,aAAa,CAClB,IAAI,CAAC,UAAU,EACf,CAAC,OAAO,EAAE,EAAE,CAAC,WAAW,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE,EAAE,OAAO,CAAC,EACrE,UAAU,EACV,IAAI,CAAC,GAAG,EACR,IAAI,CAAC,OAAO,CACb,CAAC;QACJ,CAAC;QACD,KAAK,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC3C,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,MAAM,IAAI,eAAe,CAAC,qBAAqB,EAAE,mCAAmC,CAAC,CAAC;YACxF,CAAC;YACD,OAAO,aAAa,CAClB,IAAI,CAAC,UAAU,EACf,CAAC,OAAO,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE,EAAE,OAAO,CAAC,EAC9D,UAAU,EACV,IAAI,CAAC,GAAG,EACR,IAAI,CAAC,OAAO,CACb,CAAC;QACJ,CAAC;QACD,KAAK,YAAY;YACf,OAAO,aAAa,CAClB,IAAI,CAAC,UAAU,EACf,CAAC,OAAO,EAAE,EAAE,CAAC,eAAe,CAAC,OAAO,CAAC,EACrC,UAAU,EACV,IAAI,CAAC,GAAG,EACR,IAAI,CAAC,OAAO,CACb,CAAC;QACJ,KAAK,QAAQ;YACX,OAAO,aAAa,CAClB,IAAI,CAAC,UAAU,EACf,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC,mBAAmB,CAAC,OAAO,CAAC,EAC/C,UAAU,EACV,IAAI,CAAC,GAAG,EACR,IAAI,CAAC,OAAO,CACb,CAAC;QACJ;YACE,MAAM,IAAI,eAAe,CACvB,yBAAyB,OAAO,EAAE,EAClC,oDAAoD,CACrD,CAAC;IACN,CAAC;AACH,CAAC;AA0CD,MAAM,SAAS,GAAG,CAAC,EAAU,EAAiB,EAAE,CAAC,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;AAEnG,MAAM,CAAC,KAAK,UAAU,IAAI,CACxB,IAAuB,EACvB,YAA8B;IAE9B,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,YAAY,CAAC;IAC9C,MAAM,mBAAmB,GAAG,YAAY,CAAC,mBAAmB,IAAI,6BAA6B,CAAC;IAC9F,MAAM,WAAW,GAAG,YAAY,CAAC,WAAW,IAAI,oBAAoB,CAAC;IACrE,MAAM,WAAW,GAAG,YAAY,CAAC,WAAW,IAAI,SAAS,CAAC;IAC1D,MAAM,YAAY,GAAG,YAAY,CAAC,YAAY,IAAI,IAAI,CAAC,MAAM,CAAC;IAC9D,qEAAqE;IACrE,+DAA+D;IAC/D,0DAA0D;IAC1D,MAAM,eAAe,GAAG,YAAY,CAAC,eAAe,IAAI,oBAAoB,CAAC;IAC7E,MAAM,eAAe,GAAG,YAAY,CAAC,eAAe,IAAI,SAAS,CAAC;IAClE,MAAM,gBAAgB,GAAG,YAAY,CAAC,gBAAgB,IAAI,IAAI,CAAC,MAAM,CAAC;IACtE,oEAAoE;IACpE,+DAA+D;IAC/D,gEAAgE;IAChE,qBAAqB;IACrB,MAAM,WAAW,GAAG,YAAY,CAAC,WAAW,IAAI,oBAAoB,CAAC;IACrE,MAAM,WAAW,GAAG,YAAY,CAAC,WAAW,IAAI,SAAS,CAAC;IAC1D,MAAM,YAAY,GAAG,YAAY,CAAC,YAAY,IAAI,IAAI,CAAC,MAAM,CAAC;IAC9D,wEAAwE;IACxE,qEAAqE;IACrE,0EAA0E;IAC1E,MAAM,OAAO,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC;IAEvC,MAAM,EAAE,YAAY,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,oBAAoB,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;IAEhG,wEAAwE;IACxE,sEAAsE;IACtE,mEAAmE;IACnE,qEAAqE;IACrE,oEAAoE;IACpE,sEAAsE;IACtE,8CAA8C;IAC9C,IAAI,UAAsB,CAAC;IAC3B,IAAI,CAAC;QACH,UAAU,GAAG,iBAAiB,CAC5B,YAAY,EACZ,WAAW,IAAI,KAAK,EACpB,QAAQ,IAAI,KAAK,EACjB,UAAU,CACX,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,8DAA8D;QAC9D,oEAAoE;QACpE,UAAU,CAAC,WAAW,CAAC,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;QAClE,OAAO,gBAAgB,CAAC,KAAK,CAAC,CAAC;IACjC,CAAC;IAED,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QAClE,UAAU,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;QAClC,OAAO,CAAC,CAAC;IACX,CAAC;IAED,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,WAAW,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QAChD,UAAU,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAChC,OAAO,CAAC,CAAC;IACX,CAAC;IAED,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IACxB,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAElC,MAAM,WAAW,GAAwB;QACvC,UAAU;QACV,GAAG;QACH,OAAO;QACP,GAAG;QACH,QAAQ;QACR,mBAAmB;QACnB,WAAW;QACX,WAAW;QACX,YAAY;QACZ,eAAe;QACf,eAAe;QACf,gBAAgB;QAChB,WAAW;QACX,WAAW;QACX,YAAY;KACb,CAAC;IAEF,IAAI,CAAC;QACH,QAAQ,OAAO,EAAE,CAAC;YAChB,KAAK,QAAQ;gBACX,OAAO,MAAM,YAAY,CAAC,WAAW,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;YAClE,KAAK,QAAQ;gBACX,OAAO,MAAM,YAAY,CAAC,WAAW,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;YAClE,KAAK,MAAM;gBACT,OAAO,MAAM,UAAU,CAAC,WAAW,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;YAChE,KAAK,MAAM;gBACT,OAAO,MAAM,UAAU,CAAC,WAAW,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;YAChE,KAAK,OAAO;gBACV,OAAO,MAAM,WAAW,CAAC,WAAW,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;YACjE,KAAK,MAAM;gBACT,OAAO,MAAM,UAAU,CAAC,WAAW,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;YAChE,KAAK,MAAM;gBACT,OAAO,MAAM,UAAU,CAAC,WAAW,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;YAChE,KAAK,QAAQ;gBACX,OAAO,MAAM,YAAY,CAAC,WAAW,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;YAClE,KAAK,OAAO;gBACV,OAAO,MAAM,WAAW,CAAC,WAAW,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;YACjE,KAAK,OAAO;gBACV,OAAO,MAAM,WAAW,CAAC,WAAW,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;YACjE,KAAK,MAAM;gBACT,OAAO,MAAM,UAAU,CAAC,WAAW,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;YAChE;gBACE,UAAU,CAAC,WAAW,CACpB,iBAAiB,CACf,IAAI,eAAe,CACjB,oBAAoB,OAAO,EAAE,EAC7B,+CAA+C,CAChD,EACD,UAAU,EACV,OAAO,CACR,CACF,CAAC;gBACF,OAAO,CAAC,CAAC;QACb,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,4DAA4D;QAC5D,+DAA+D;QAC/D,oEAAoE;QACpE,mDAAmD;QACnD,UAAU,CAAC,WAAW,CAAC,iBAAiB,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC;QACtE,OAAO,gBAAgB,CAAC,KAAK,CAAC,CAAC;IACjC,CAAC;AACH,CAAC"}
@@ -1,56 +1,161 @@
1
1
  /**
2
- * Local response cache for Z.AI API responses.
2
+ * Unified cache storage module.
3
3
  *
4
- * Stores the RAW response from Z.AI (before any post-processing like
5
- * truncation, format conversion, or extraction) keyed by a hash of the
6
- * command + request-affecting arguments. Post-processing flags like
7
- * --max-chars, --output-format, --extract are NOT part of the cache key,
8
- * so the same cached response can serve multiple presentation variants.
4
+ * Two sibling on-disk caches live under one root (`~/.scoutline/` by
5
+ * default; overridable via `SCOUTLINE_CACHE_DIR`):
9
6
  *
10
- * Default TTL: 24h. Default size cap: 100MB. LRU eviction when full.
11
- * Disable per-call with --no-cache.
7
+ * ```text
8
+ * ~/.scoutline/
9
+ * ├── cache/ response cache entries (Provider responses)
10
+ * └── tools/ tool discovery cache (consumed by mcp-client.ts)
11
+ * ```
12
+ *
13
+ * The response cache stores the RAW response from a Provider (before any
14
+ * post-processing like truncation, format conversion, or extraction)
15
+ * keyed by a hash of the command + request-affecting arguments.
16
+ * Post-processing flags like --max-chars, --output-format, --extract are
17
+ * NOT part of the cache key, so the same cached response can serve
18
+ * multiple presentation variants.
19
+ *
20
+ * Defaults: 24h TTL, 100MB size cap, LRU eviction when full. Disable
21
+ * per-call with --no-cache, or globally with `SCOUTLINE_CACHE=0`.
22
+ *
23
+ * Env-var policy: `SCOUTLINE_CACHE*` are the canonical names. The legacy
24
+ * `ZAI_CACHE*`, `ZAI_MCP_TOOL_CACHE*`, and `ZAI_MCP_CACHE_DIR` variables
25
+ * are accepted as lower-precedence aliases (silent aliasing — no
26
+ * deprecation notice in this release). All reads are call-time (H1 fix)
27
+ * so per-suite env mutations remain observable.
12
28
  *
13
29
  * P2-02 extends this module with provider-partitioned keys
14
30
  * (`buildProviderCacheKey`) and a `ResponseCache` adapter that lets
15
31
  * shared execution read and write through the same on-disk store without
16
- * duplicating TTL or eviction logic. Existing exports and directory
17
- * resolution are unchanged.
32
+ * duplicating TTL or eviction logic.
18
33
  */
19
34
  import type { ProviderId } from "../providers/types.js";
35
+ /**
36
+ * Environment surface consumed by the pure cache-root resolver. The legacy
37
+ * aliases (`ZAI_MCP_CACHE_DIR`, `ZAI_CACHE_DIR`) are preserved so existing
38
+ * operator configurations keep working silently. `XDG_CACHE_HOME` was
39
+ * removed when the dotfile convention (`~/.scoutline/`) was adopted on
40
+ * every platform.
41
+ */
20
42
  export interface CacheDirEnvironment {
43
+ readonly SCOUTLINE_CACHE_DIR?: string | undefined;
44
+ readonly ZAI_MCP_CACHE_DIR?: string | undefined;
21
45
  readonly ZAI_CACHE_DIR?: string | undefined;
22
- readonly XDG_CACHE_HOME?: string | undefined;
23
46
  }
24
47
  export interface CacheDirPlatform {
25
48
  readonly platform: NodeJS.Platform;
26
49
  readonly homedir: string;
27
50
  }
28
51
  /**
29
- * Pure cache-directory resolver. Accepts environment and platform explicitly
52
+ * Pure cache-ROOT resolver. Accepts environment and platform explicitly
30
53
  * so tests can assert path resolution without touching process globals.
31
- * The process-backed {@link resolveCacheDir} wraps this with live state.
54
+ * Returns the root directory (`~/.scoutline/`); each cache appends its
55
+ * own subdirectory (`cache/` or `tools/`). Precedence:
56
+ * 1. `SCOUTLINE_CACHE_DIR` (canonical)
57
+ * 2. `ZAI_MCP_CACHE_DIR` (legacy tool-cache override; B3 fix)
58
+ * 3. `ZAI_CACHE_DIR` (legacy response-cache override)
59
+ * 4. `path.join(homedir, ".scoutline")` (dotfile default, all platforms)
60
+ *
61
+ * The process-backed {@link resolveCacheRoot} wraps this with live state.
62
+ */
63
+ export declare function resolveCacheRootPure(env: CacheDirEnvironment, plat: CacheDirPlatform): string;
64
+ /**
65
+ * Directory for the tool-discovery cache (consumed by mcp-client.ts).
66
+ * Always a `tools/` subdirectory under the unified root, sibling of
67
+ * {@link responseCacheDir}. Scanned by `cacheStats()` and cleared by
68
+ * `clearAllCaches()`, but never touched by the response cache's LRU
69
+ * eviction loop.
32
70
  */
33
- export declare function resolveCacheDirPure(env: CacheDirEnvironment, plat: CacheDirPlatform): string;
71
+ export declare function toolCacheDir(): string;
72
+ /**
73
+ * Call-time cache-enabled check for the RESPONSE cache (H1 fix). Honours
74
+ * `SCOUTLINE_CACHE` (canonical) with `ZAI_CACHE` as a legacy alias. Read
75
+ * on every cache operation so per-suite env mutations in tests remain
76
+ * observable.
77
+ *
78
+ * Note: the legacy `ZAI_MCP_TOOL_CACHE` env var is intentionally NOT
79
+ * consulted here. In v0.4.0 the tool cache's enable flag was independent
80
+ * of the response cache's; mcp-client.ts still reads
81
+ * `ZAI_MCP_TOOL_CACHE` directly for its own tool-cache enable check.
82
+ * Aliasing it here would silently disable the response cache whenever a
83
+ * user disabled the tool cache, which would break the four
84
+ * `mcp-client.test.js` suites that set `ZAI_MCP_TOOL_CACHE=0` while
85
+ * relying on response-cache hits. Unifying this granularity is deferred
86
+ * to a future release (see tech-plan "what this plan does not decide").
87
+ */
88
+ export declare function isCacheEnabled(): boolean;
89
+ /** Call-time TTL (ms) for the response cache. Default 24h. */
90
+ export declare function getCacheTtlMs(): number;
91
+ /** Call-time response-cache size cap (bytes). Default 100MB. */
92
+ export declare function getCacheSizeCapBytes(): number;
34
93
  /**
35
94
  * Build a stable cache key from command + request-affecting args.
36
95
  * Post-processing flags (maxChars, outputFormat, extract, fullEnvelope)
37
96
  * are intentionally excluded so one cached fetch serves many presentations.
38
97
  */
39
98
  export declare function buildCacheKey(command: string, requestArgs: Record<string, unknown>): string;
40
- export declare function isCacheEnabled(): boolean;
99
+ /**
100
+ * Build the exact v0.2 legacy repository cache key. Pure: the caller
101
+ * MUST supply the already-resolved credential. The function never reads
102
+ * `process.env` and never calls `getApiKey`. `args` is serialized in
103
+ * its insertion order via `JSON.stringify`.
104
+ *
105
+ * The result never contains the raw credential — only the first 12 hex
106
+ * chars of `sha256(apiKey)`.
107
+ */
108
+ export declare function buildLegacyRepositoryCacheKey(apiKey: string, publicToolName: string, args: Record<string, unknown>): string;
109
+ /**
110
+ * Build the exact v0.2 legacy reader cache key. Pure: the caller MUST
111
+ * supply the already-resolved credential. The function never reads
112
+ * `process.env` and never calls `getApiKey`. `args` is serialized in
113
+ * its insertion order via `JSON.stringify`.
114
+ *
115
+ * The result never contains the raw credential — only the first 12 hex
116
+ * chars of `sha256(apiKey)`.
117
+ */
118
+ export declare function buildLegacyReaderCacheKey(apiKey: string, publicToolName: string, args: Record<string, unknown>): string;
41
119
  export declare function readCache<T>(key: string, ttlMs?: number): Promise<T | null>;
42
120
  export declare function writeCache<T>(key: string, data: T): Promise<void>;
121
+ /**
122
+ * Clear the response cache only. Kept for backward compatibility; new
123
+ * callers should prefer {@link clearAllCaches} which covers both the
124
+ * `cache/` and `tools/` subdirectories.
125
+ */
43
126
  export declare function clearCache(): Promise<{
44
127
  cleared: number;
45
128
  bytesFreed: number;
46
129
  }>;
130
+ /**
131
+ * Clear both the `cache/` (responses) and `tools/` (tool discovery)
132
+ * subdirectories. Directories themselves are preserved. Existing
133
+ * {@link clearCache} callers continue to clear `cache/` only.
134
+ */
135
+ export declare function clearAllCaches(): Promise<{
136
+ responsesCleared: number;
137
+ toolsCleared: number;
138
+ bytesFreed: number;
139
+ }>;
140
+ /**
141
+ * Inventory both caches. The shape extends the v0.4.0 flat shape with
142
+ * nested `responseCache` and `toolCache` sections (H3 fix). The
143
+ * top-level `entries` and `totalBytes` fields are removed — callers
144
+ * must read from the nested sections.
145
+ */
47
146
  export declare function cacheStats(): Promise<{
48
- entries: number;
49
- totalBytes: number;
50
147
  dir: string;
148
+ enabled: boolean;
51
149
  ttlMs: number;
52
150
  sizeCapBytes: number;
53
- enabled: boolean;
151
+ responseCache: {
152
+ entries: number;
153
+ totalBytes: number;
154
+ };
155
+ toolCache: {
156
+ entries: number;
157
+ totalBytes: number;
158
+ };
54
159
  }>;
55
160
  /**
56
161
  * Response cache surface consumed by shared execution