@insightsentry/mcp 1.4.14 → 1.4.15

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.
package/dist/cli.d.ts CHANGED
@@ -11,15 +11,26 @@ export declare function buildHelp(): string;
11
11
  export declare function buildDownloadHistoryHelp(): string;
12
12
  export declare function buildToolHelp(tool: ToolDefinition): string;
13
13
  type RequestFn = (method: string, pathTemplate: string, params: Record<string, any>) => Promise<any>;
14
+ type RunCommandFn = (command: string, args: string[]) => Promise<{
15
+ stdout?: string;
16
+ stderr?: string;
17
+ }>;
14
18
  interface CliIO {
15
19
  write: (s: string) => void;
16
20
  exit: (code: number) => void;
17
21
  request?: RequestFn;
22
+ createRequestFromApiKey?: (apiKey: string) => RequestFn;
23
+ runCommand?: RunCommandFn;
18
24
  progress?: (s: string) => void;
19
25
  prompt?: (question: string) => Promise<string>;
26
+ selectTool?: (options: ToolSelectionOption[]) => Promise<string | null>;
20
27
  isInteractive?: boolean;
21
28
  getAuthStatus?: () => AuthStatus;
22
29
  }
30
+ interface ToolSelectionOption {
31
+ name: string;
32
+ description: string;
33
+ }
23
34
  export declare function runCli(argv: string[], io: CliIO): Promise<void>;
24
35
  export declare function main(): void;
25
36
  //# sourceMappingURL=cli.d.ts.map
package/dist/cli.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,KAAK,UAAU,EAAyC,MAAM,kBAAkB,CAAC;AAgB1F,OAAO,EAAE,KAAK,cAAc,EAAmB,MAAM,uBAAuB,CAAC;AAG7E,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAwB/C,UAAU,UAAU;IAClB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,IAAI,EAAE,OAAO,CAAC;CACf;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,UAAU,CAoCpD;AAED,wBAAgB,SAAS,IAAI,MAAM,CA6ClC;AAED,wBAAgB,wBAAwB,IAAI,MAAM,CA8BjD;AAyFD,wBAAgB,aAAa,CAAC,IAAI,EAAE,cAAc,GAAG,MAAM,CAsC1D;AAkCD,KAAK,SAAS,GAAG,CACf,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KACxB,OAAO,CAAC,GAAG,CAAC,CAAC;AAElB,UAAU,KAAK;IACb,KAAK,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3B,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7B,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/B,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IAC/C,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,UAAU,CAAC;CAClC;AAKD,wBAAsB,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAiMrE;AAymBD,wBAAgB,IAAI,SASnB"}
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,KAAK,UAAU,EAAyC,MAAM,kBAAkB,CAAC;AAgB1F,OAAO,EAAE,KAAK,cAAc,EAAmB,MAAM,uBAAuB,CAAC;AAG7E,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AA8B/C,UAAU,UAAU;IAClB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,IAAI,EAAE,OAAO,CAAC;CACf;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,UAAU,CAoCpD;AAED,wBAAgB,SAAS,IAAI,MAAM,CA8ClC;AAED,wBAAgB,wBAAwB,IAAI,MAAM,CA8BjD;AAyFD,wBAAgB,aAAa,CAAC,IAAI,EAAE,cAAc,GAAG,MAAM,CAsC1D;AAkCD,KAAK,SAAS,GAAG,CACf,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KACxB,OAAO,CAAC,GAAG,CAAC,CAAC;AAClB,KAAK,YAAY,GAAG,CAClB,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EAAE,KACX,OAAO,CAAC;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AAEnD,UAAU,KAAK;IACb,KAAK,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3B,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7B,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,uBAAuB,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,SAAS,CAAC;IACxD,UAAU,CAAC,EAAE,YAAY,CAAC;IAC1B,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/B,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IAC/C,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,mBAAmB,EAAE,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACxE,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,UAAU,CAAC;CAClC;AAKD,UAAU,mBAAmB;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;CACrB;AAOD,wBAAsB,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CA+OrE;AA04BD,wBAAgB,IAAI,SAWnB"}
package/dist/cli.js CHANGED
@@ -1,5 +1,8 @@
1
+ import { execFile } from "node:child_process";
1
2
  import { stdin as input, stdout as output } from "node:process";
3
+ import { emitKeypressEvents } from "node:readline";
2
4
  import { createInterface } from "node:readline/promises";
5
+ import { promisify } from "node:util";
3
6
  import { z } from "zod";
4
7
  import { ApiClient } from "./api-client.js";
5
8
  import { coerceArgs, getZodEnumValues, getZodTypeName, isOptionalZodType } from "./arg-coercion.js";
@@ -12,10 +15,12 @@ import { supportsCsvStorage, validateResponseStorageTarget, } from "./response-s
12
15
  import { analyzeSymbolCodes, shouldPromptSymbolScopedParam } from "./symbol-param-applicability.js";
13
16
  import { validateSymbolLikeArg } from "./symbol-validation.js";
14
17
  import { toolDefinitions } from "./tool-definitions.js";
15
- import { runApiTool } from "./tool-runner.js";
18
+ import { runApiTool, validateFilterExpression } from "./tool-runner.js";
16
19
  export { coerceArgs } from "./arg-coercion.js";
17
20
  const DOWNLOAD_HISTORY_COMMAND = "download_history";
21
+ const UPDATE_COMMAND = "update";
18
22
  const MAX_INTERACTIVE_PROMPT_ATTEMPTS = 3;
23
+ const execFileAsync = promisify(execFile);
19
24
  const STORAGE_DESTINATION_SCHEMA = {
20
25
  output_file: z.string().describe("File path for stored response.").optional(),
21
26
  output_dir: z
@@ -33,6 +38,10 @@ const CSV_STORE_SCHEMA = z
33
38
  .default("none")
34
39
  .optional()
35
40
  .describe("Store original API response before filtering. CSV is available for series/history responses. Default: none.");
41
+ const FILTER_SCHEMA = z
42
+ .string()
43
+ .optional()
44
+ .describe("JSONata expression to transform the response. Leave empty for no filter.");
36
45
  export function parseArgs(argv) {
37
46
  const args = {};
38
47
  let toolName = null;
@@ -91,13 +100,14 @@ export function buildHelp() {
91
100
  lines.push(" insight get_earnings --c US");
92
101
  lines.push(' insight list_options --code "NASDAQ:AAPL" --type call --range 10');
93
102
  lines.push("");
94
- lines.push("All tools support --filter <jsonata> to transform the response.");
103
+ lines.push("API tools support --filter <jsonata> to transform the response.");
95
104
  lines.push("Use: insight <tool> --help for tool-specific parameters.");
96
105
  lines.push("");
97
106
  lines.push("Authentication:");
98
107
  lines.push(" insight login --key <your-api-key> Save API key (persisted across sessions)");
99
108
  lines.push(" insight whoami Print the logged-in user's email");
100
109
  lines.push(" insight logout Remove saved API key");
110
+ lines.push(" insight update Update this CLI with npm");
101
111
  lines.push("");
102
112
  lines.push(" Or set INSIGHTSENTRY_API_KEY environment variable (takes priority over saved key).");
103
113
  lines.push(" Get your API key from https://insightsentry.com/dashboard");
@@ -281,7 +291,24 @@ function formatTypeName(t) {
281
291
  }
282
292
  const REQUIRED_DOWNLOAD_HISTORY_ARGS = ["symbol", "bar_type", "from", "to", "output_dir"];
283
293
  export async function runCli(argv, io) {
284
- const { toolName, args, help } = parseArgs(argv);
294
+ let { toolName, args, help } = parseArgs(argv);
295
+ let sessionApiKey;
296
+ if (!toolName) {
297
+ if (!help && io.isInteractive === true && io.prompt) {
298
+ const selected = await resolveInteractiveToolName(io);
299
+ if (!selected) {
300
+ io.exit(1);
301
+ return;
302
+ }
303
+ toolName = selected.toolName;
304
+ sessionApiKey = selected.apiKey;
305
+ }
306
+ else {
307
+ io.write(buildHelp());
308
+ io.exit(0);
309
+ return;
310
+ }
311
+ }
285
312
  if (!toolName) {
286
313
  io.write(buildHelp());
287
314
  io.exit(0);
@@ -312,6 +339,10 @@ export async function runCli(argv, io) {
312
339
  io.exit(0);
313
340
  return;
314
341
  }
342
+ if (toolName === UPDATE_COMMAND) {
343
+ await runUpdateCommand(io);
344
+ return;
345
+ }
315
346
  if (toolName === "whoami") {
316
347
  const status = (io.getAuthStatus ?? getAuthStatus)();
317
348
  if (status.subject) {
@@ -330,22 +361,26 @@ export async function runCli(argv, io) {
330
361
  io.exit(0);
331
362
  return;
332
363
  }
333
- const request = resolveRequest(io);
334
- if (!request) {
335
- io.write("Error: No API key found.\n\nSet it with: insight login --key <your-api-key>\nOr export: export INSIGHTSENTRY_API_KEY=your-api-key\n\nGet your API key from https://insightsentry.com/dashboard");
336
- io.exit(1);
337
- return;
338
- }
339
364
  try {
340
- const providedValidationError = validateDownloadHistoryArgs(args);
341
- if (providedValidationError) {
342
- io.write(`Invalid ${downloadHistoryPromptLabel(providedValidationError.key)}: ${providedValidationError.error}\n`);
343
- io.exit(1);
344
- return;
365
+ const inputArgs = { ...args };
366
+ const interactive = io.isInteractive === true && Boolean(io.prompt);
367
+ if (interactive) {
368
+ for (const error of collectInvalidProvidedDownloadHistoryArgs(inputArgs)) {
369
+ io.write(`Invalid ${downloadHistoryPromptLabel(error.key)}: ${error.error}\n`);
370
+ delete inputArgs[error.key];
371
+ }
372
+ }
373
+ else {
374
+ const providedValidationError = validateDownloadHistoryArgs(inputArgs);
375
+ if (providedValidationError) {
376
+ io.write(`Invalid ${downloadHistoryPromptLabel(providedValidationError.key)}: ${providedValidationError.error}\n`);
377
+ io.exit(1);
378
+ return;
379
+ }
345
380
  }
346
- const historyArgs = await resolveDownloadHistoryArgs(args, io);
381
+ const historyArgs = await resolveDownloadHistoryArgs(inputArgs, io);
347
382
  if (!historyArgs) {
348
- io.write(`Error: Missing required options for download_history: ${missingDownloadHistoryArgs(args).join(", ")}\n\nRun: insight download_history --help`);
383
+ io.write(`Error: Missing required options for download_history: ${missingDownloadHistoryArgs(inputArgs).join(", ")}\n\nRun: insight download_history --help`);
349
384
  io.exit(1);
350
385
  return;
351
386
  }
@@ -355,6 +390,12 @@ export async function runCli(argv, io) {
355
390
  io.exit(1);
356
391
  return;
357
392
  }
393
+ const request = resolveRequest(io, sessionApiKey);
394
+ if (!request) {
395
+ io.write("Error: No API key found.\n\nSet it with: insight login --key <your-api-key>\nOr export: export INSIGHTSENTRY_API_KEY=your-api-key\n\nGet your API key from https://insightsentry.com/dashboard");
396
+ io.exit(1);
397
+ return;
398
+ }
358
399
  const result = await downloadHistory(parseDownloadHistoryArgs(historyArgs), {
359
400
  request,
360
401
  onProgress: (event) => {
@@ -384,13 +425,6 @@ export async function runCli(argv, io) {
384
425
  io.exit(0);
385
426
  return;
386
427
  }
387
- // Resolve request function
388
- const request = resolveRequest(io);
389
- if (!request) {
390
- io.write("Error: No API key found.\n\nSet it with: insight login --key <your-api-key>\nOr export: export INSIGHTSENTRY_API_KEY=your-api-key\n\nGet your API key from https://insightsentry.com/dashboard");
391
- io.exit(1);
392
- return;
393
- }
394
428
  const inputArgs = { ...args };
395
429
  const interactive = io.isInteractive === true && Boolean(io.prompt);
396
430
  if (interactive) {
@@ -411,9 +445,27 @@ export async function runCli(argv, io) {
411
445
  }
412
446
  const storeModeError = validateStoreMode(tool.name, inputArgs.store);
413
447
  if (storeModeError) {
414
- io.write(`Invalid Store: ${storeModeError}\n`);
415
- io.exit(1);
416
- return;
448
+ if (interactive) {
449
+ io.write(`Invalid Store: ${storeModeError}\n`);
450
+ delete inputArgs.store;
451
+ }
452
+ else {
453
+ io.write(`Invalid Store: ${storeModeError}\n`);
454
+ io.exit(1);
455
+ return;
456
+ }
457
+ }
458
+ const filterError = validateFilterExpression(inputArgs.filter);
459
+ if (filterError) {
460
+ if (interactive) {
461
+ io.write(`Invalid Filter: ${filterError}\n`);
462
+ delete inputArgs.filter;
463
+ }
464
+ else {
465
+ io.write(`Invalid Filter: ${filterError}\n`);
466
+ io.exit(1);
467
+ return;
468
+ }
417
469
  }
418
470
  const resolvedArgs = await resolveToolArgs(inputArgs, tool, io);
419
471
  if (!resolvedArgs) {
@@ -428,6 +480,13 @@ export async function runCli(argv, io) {
428
480
  io.exit(1);
429
481
  return;
430
482
  }
483
+ // Resolve request function
484
+ const request = resolveRequest(io, sessionApiKey);
485
+ if (!request) {
486
+ io.write("Error: No API key found.\n\nSet it with: insight login --key <your-api-key>\nOr export: export INSIGHTSENTRY_API_KEY=your-api-key\n\nGet your API key from https://insightsentry.com/dashboard");
487
+ io.exit(1);
488
+ return;
489
+ }
431
490
  try {
432
491
  const outputValue = await runApiTool({
433
492
  toolName: tool.name,
@@ -444,6 +503,91 @@ export async function runCli(argv, io) {
444
503
  io.exit(1);
445
504
  }
446
505
  }
506
+ async function resolveInteractiveToolName(io) {
507
+ let apiKey;
508
+ const status = (io.getAuthStatus ?? getAuthStatus)();
509
+ if (!status.authenticated) {
510
+ io.write(status.message);
511
+ apiKey = (await resolveLoginKey({}, io)) ?? undefined;
512
+ if (!apiKey) {
513
+ io.write("Usage: insight login --key <your-api-key>\n\nGet your API key from https://insightsentry.com/dashboard");
514
+ return null;
515
+ }
516
+ saveConfig({ apiKey });
517
+ io.write(`API key saved to ${getConfigLocation()}`);
518
+ }
519
+ const options = interactiveToolOptions();
520
+ if (io.selectTool) {
521
+ const selected = await io.selectTool(options);
522
+ if (!selected)
523
+ io.write("No tool selected.");
524
+ return selected ? { toolName: selected, apiKey } : null;
525
+ }
526
+ io.write(buildInteractiveToolList(options));
527
+ for (let attempt = 0; attempt < MAX_INTERACTIVE_PROMPT_ATTEMPTS; attempt++) {
528
+ const answer = (await io.prompt?.("Choose tool (number or name): "))?.trim() ?? "";
529
+ const selected = parseToolSelection(answer, options);
530
+ if (selected)
531
+ return { toolName: selected, apiKey };
532
+ io.write("Invalid tool selection.");
533
+ }
534
+ io.write("No tool selected.");
535
+ return null;
536
+ }
537
+ async function runUpdateCommand(io) {
538
+ const runCommand = io.runCommand ?? defaultRunCommand;
539
+ io.write("Updating InsightSentry MCP CLI with: npm install -g @insightsentry/mcp");
540
+ try {
541
+ const result = await runCommand("npm", ["install", "-g", "@insightsentry/mcp"]);
542
+ const details = [result.stdout?.trim(), result.stderr?.trim()].filter(Boolean).join("\n");
543
+ if (details)
544
+ io.write(details);
545
+ io.write("InsightSentry MCP CLI updated.");
546
+ io.exit(0);
547
+ }
548
+ catch (error) {
549
+ io.write(`Error: ${error?.message ?? String(error)}`);
550
+ io.exit(1);
551
+ }
552
+ }
553
+ async function defaultRunCommand(command, args) {
554
+ return execFileAsync(command, args);
555
+ }
556
+ function interactiveToolOptions() {
557
+ return [
558
+ ...toolDefinitions.map((tool) => ({
559
+ name: tool.name,
560
+ description: summarizeToolDescription(tool.description),
561
+ })),
562
+ {
563
+ name: DOWNLOAD_HISTORY_COMMAND,
564
+ description: "Download historical ranges to JSON/CSV files",
565
+ },
566
+ ];
567
+ }
568
+ function buildInteractiveToolList(options) {
569
+ return [
570
+ "Choose a tool:",
571
+ "",
572
+ ...options.map((option, index) => `${index + 1}. ${option.name} - ${option.description}`),
573
+ "",
574
+ "Use arrow keys in a TTY, or type a number/name.",
575
+ ].join("\n");
576
+ }
577
+ function summarizeToolDescription(description) {
578
+ return description.split("→")[0].split(".")[0].trim();
579
+ }
580
+ function parseToolSelection(rawSelection, options) {
581
+ const selection = rawSelection.trim();
582
+ if (!selection)
583
+ return null;
584
+ const number = Number(selection);
585
+ if (Number.isInteger(number) && number >= 1 && number <= options.length) {
586
+ return options[number - 1].name;
587
+ }
588
+ const normalized = selection.toLowerCase();
589
+ return options.find((option) => option.name.toLowerCase() === normalized)?.name ?? null;
590
+ }
447
591
  async function resolveLoginKey(args, io) {
448
592
  if (args.key?.trim())
449
593
  return args.key.trim();
@@ -460,12 +604,14 @@ async function resolveLoginKey(args, io) {
460
604
  }
461
605
  return null;
462
606
  }
463
- function resolveRequest(io) {
607
+ function resolveRequest(io, apiKeyOverride) {
464
608
  if (io.request)
465
609
  return io.request;
466
- const apiKey = resolveApiKey();
610
+ const apiKey = apiKeyOverride?.trim() || resolveApiKey();
467
611
  if (!apiKey)
468
612
  return null;
613
+ if (io.createRequestFromApiKey)
614
+ return io.createRequestFromApiKey(apiKey);
469
615
  const client = new ApiClient(apiKey);
470
616
  return (method, path, params) => client.request(method, path, params);
471
617
  }
@@ -508,6 +654,9 @@ async function resolveToolArgs(args, tool, io) {
508
654
  if (storageAnswer === null)
509
655
  return null;
510
656
  await resolveStorageDestination(resolved, tool.name, io);
657
+ const filterAnswer = await resolveInteractiveFilter(resolved, io);
658
+ if (filterAnswer === null)
659
+ return null;
511
660
  }
512
661
  else if (missingToolArgs(resolved, tool).length > 0) {
513
662
  return null;
@@ -528,6 +677,29 @@ async function resolveInteractiveStorageMode(resolved, toolName, io) {
528
677
  function storeModeSchema(toolName) {
529
678
  return supportsCsvStorage(toolName) ? CSV_STORE_SCHEMA : JSON_STORE_SCHEMA;
530
679
  }
680
+ async function resolveInteractiveFilter(resolved, io) {
681
+ if (resolved.filter !== undefined)
682
+ return;
683
+ const answer = await promptForOptionalFilterArg(io);
684
+ if (answer === null)
685
+ return null;
686
+ if (answer !== undefined)
687
+ resolved.filter = answer;
688
+ }
689
+ async function promptForOptionalFilterArg(io) {
690
+ const label = "Filter";
691
+ const question = optionalPromptQuestion(label, FILTER_SCHEMA);
692
+ for (let attempt = 0; attempt < MAX_INTERACTIVE_PROMPT_ATTEMPTS; attempt++) {
693
+ const answer = (await io.prompt?.(question))?.trim() ?? "";
694
+ if (!answer)
695
+ return undefined;
696
+ const error = validateFilterExpression(answer);
697
+ if (!error)
698
+ return answer;
699
+ io.write(`Invalid ${label}: ${error}\n`);
700
+ }
701
+ return null;
702
+ }
531
703
  function shouldSkipInteractiveToolArg(toolName, key, args) {
532
704
  if (toolName === "screen_crypto" && key === "countries")
533
705
  return true;
@@ -640,7 +812,7 @@ async function resolveDownloadHistoryArgs(args, io) {
640
812
  if (resolved[key] !== undefined)
641
813
  continue;
642
814
  if (REQUIRED_DOWNLOAD_HISTORY_ARGS.includes(key)) {
643
- const answer = await promptForDownloadHistoryArg(key, io);
815
+ const answer = await promptForDownloadHistoryArg(key, resolved, io);
644
816
  if (!answer)
645
817
  return null;
646
818
  resolved[key] = answer;
@@ -786,11 +958,18 @@ function validateStoreMode(toolName, store) {
786
958
  }
787
959
  return null;
788
960
  }
789
- async function promptForDownloadHistoryArg(key, io) {
961
+ async function promptForDownloadHistoryArg(key, resolved, io) {
790
962
  const label = downloadHistoryPromptLabel(key);
791
- const question = promptQuestion(label, downloadHistorySchema[key], "required");
963
+ const defaultAnswer = getDownloadHistoryPromptDefault(key, resolved);
964
+ const question = defaultAnswer
965
+ ? promptQuestion(label, downloadHistorySchema[key], "required", {
966
+ blankInstruction: "press Enter to use default",
967
+ value: defaultAnswer,
968
+ })
969
+ : promptQuestion(label, downloadHistorySchema[key], "required");
792
970
  for (let attempt = 0; attempt < MAX_INTERACTIVE_PROMPT_ATTEMPTS; attempt++) {
793
- const answer = (await io.prompt?.(question))?.trim() ?? "";
971
+ const rawAnswer = (await io.prompt?.(question))?.trim() ?? "";
972
+ const answer = rawAnswer || defaultAnswer || "";
794
973
  const error = validateDownloadHistoryArgAnswer(key, answer);
795
974
  if (error) {
796
975
  io.write(`Invalid ${label}: ${error}\n`);
@@ -803,6 +982,20 @@ async function promptForDownloadHistoryArg(key, io) {
803
982
  }
804
983
  return null;
805
984
  }
985
+ function getDownloadHistoryPromptDefault(key, resolved) {
986
+ if (key !== "to")
987
+ return null;
988
+ return resolved.bar_type === "second" ? currentUtcDay() : currentUtcMonth();
989
+ }
990
+ function currentUtcDay(date = new Date()) {
991
+ return `${date.getUTCFullYear()}-${pad2(date.getUTCMonth() + 1)}-${pad2(date.getUTCDate())}`;
992
+ }
993
+ function currentUtcMonth(date = new Date()) {
994
+ return `${date.getUTCFullYear()}-${pad2(date.getUTCMonth() + 1)}`;
995
+ }
996
+ function pad2(value) {
997
+ return String(value).padStart(2, "0");
998
+ }
806
999
  async function validateDownloadHistoryStorageAnswer(key, answer) {
807
1000
  if (key !== "output_dir")
808
1001
  return null;
@@ -859,6 +1052,22 @@ function validateDownloadHistoryArgs(args) {
859
1052
  return historyIntervalError;
860
1053
  return null;
861
1054
  }
1055
+ function collectInvalidProvidedDownloadHistoryArgs(args) {
1056
+ const errors = [];
1057
+ for (const key of Object.keys(downloadHistorySchema)) {
1058
+ if (args[key] === undefined)
1059
+ continue;
1060
+ const error = validateDownloadHistoryArgAnswer(key, args[key]);
1061
+ if (error)
1062
+ errors.push({ key, error });
1063
+ }
1064
+ if (!errors.some((error) => error.key === "bar_interval")) {
1065
+ const historyIntervalError = validateHistoryIntervalArgs(DOWNLOAD_HISTORY_COMMAND, args);
1066
+ if (historyIntervalError)
1067
+ errors.push(historyIntervalError);
1068
+ }
1069
+ return errors;
1070
+ }
862
1071
  function downloadHistoryPromptLabel(key) {
863
1072
  switch (key) {
864
1073
  case "symbol":
@@ -919,7 +1128,7 @@ function parseDownloadHistoryArgs(args) {
919
1128
  function optionalPromptQuestion(label, zodType) {
920
1129
  return promptQuestion(label, zodType, "optional");
921
1130
  }
922
- function promptQuestion(label, zodType, requirement) {
1131
+ function promptQuestion(label, zodType, requirement, defaultOverride) {
923
1132
  const parts = [requirement];
924
1133
  const enumValues = getZodEnumValues(zodType);
925
1134
  if (enumValues.length > 0)
@@ -929,12 +1138,16 @@ function promptQuestion(label, zodType, requirement) {
929
1138
  if (typeName && typeName !== "string")
930
1139
  parts.push(`type: ${typeName}`);
931
1140
  }
932
- const defaultValue = getPromptDefault(zodType);
1141
+ const defaultValue = defaultOverride?.value ?? getPromptDefault(zodType);
933
1142
  if (defaultValue !== null)
934
1143
  parts.push(`Default: ${defaultValue}`);
935
1144
  const hint = getPromptHint(zodType);
936
- if (requirement !== "required")
1145
+ if (defaultOverride) {
1146
+ parts.push(defaultOverride.blankInstruction);
1147
+ }
1148
+ else if (requirement !== "required") {
937
1149
  parts.push("press Enter to skip");
1150
+ }
938
1151
  const description = hint ? `${label}: ${hint}\n` : "";
939
1152
  return `${description}${label} (${parts.join(", ")}): `;
940
1153
  }
@@ -975,13 +1188,114 @@ function getPromptHint(zodType) {
975
1188
  return null;
976
1189
  return hint;
977
1190
  }
1191
+ function canUseKeyboardToolSelection() {
1192
+ return (input.isTTY === true &&
1193
+ output.isTTY === true &&
1194
+ typeof input.setRawMode === "function" &&
1195
+ process.env.CI !== "true");
1196
+ }
1197
+ function selectToolWithKeyboard(options) {
1198
+ return new Promise((resolve) => {
1199
+ let selectedIndex = 0;
1200
+ let typed = "";
1201
+ let error = "";
1202
+ let closed = false;
1203
+ const wasRaw = input.isRaw;
1204
+ const render = () => {
1205
+ output.write("\x1B[2J\x1B[H\x1B[?25l");
1206
+ output.write("Choose a tool:\n\n");
1207
+ for (const [index, option] of options.entries()) {
1208
+ const marker = index === selectedIndex ? ">" : " ";
1209
+ output.write(`${marker} ${index + 1}. ${option.name} - ${option.description}\n`);
1210
+ }
1211
+ output.write("\nUse Up/Down, Enter, or type a number/name.");
1212
+ output.write(`\nChoose tool: ${typed}`);
1213
+ if (error)
1214
+ output.write(`\n${error}`);
1215
+ };
1216
+ const cleanup = () => {
1217
+ if (closed)
1218
+ return;
1219
+ closed = true;
1220
+ input.off("keypress", onKeypress);
1221
+ input.setRawMode(Boolean(wasRaw));
1222
+ output.write("\x1B[?25h\n");
1223
+ };
1224
+ const finish = (toolName) => {
1225
+ cleanup();
1226
+ resolve(toolName);
1227
+ };
1228
+ const updateSelectedFromTyped = () => {
1229
+ const selected = parseToolSelection(typed, options);
1230
+ if (!selected)
1231
+ return;
1232
+ selectedIndex = options.findIndex((option) => option.name === selected);
1233
+ };
1234
+ const onKeypress = (value, key) => {
1235
+ if (key.ctrl && key.name === "c") {
1236
+ finish(null);
1237
+ return;
1238
+ }
1239
+ if (key.name === "escape") {
1240
+ finish(null);
1241
+ return;
1242
+ }
1243
+ if (key.name === "up") {
1244
+ selectedIndex = selectedIndex === 0 ? options.length - 1 : selectedIndex - 1;
1245
+ typed = "";
1246
+ error = "";
1247
+ render();
1248
+ return;
1249
+ }
1250
+ if (key.name === "down") {
1251
+ selectedIndex = selectedIndex === options.length - 1 ? 0 : selectedIndex + 1;
1252
+ typed = "";
1253
+ error = "";
1254
+ render();
1255
+ return;
1256
+ }
1257
+ if (key.name === "return" || key.name === "enter") {
1258
+ const selected = typed.trim()
1259
+ ? parseToolSelection(typed, options)
1260
+ : options[selectedIndex].name;
1261
+ if (selected) {
1262
+ finish(selected);
1263
+ return;
1264
+ }
1265
+ error = "Invalid tool selection.";
1266
+ render();
1267
+ return;
1268
+ }
1269
+ if (key.name === "backspace") {
1270
+ typed = typed.slice(0, -1);
1271
+ error = "";
1272
+ updateSelectedFromTyped();
1273
+ render();
1274
+ return;
1275
+ }
1276
+ if (value && value >= " " && !key.ctrl && key.sequence !== "\x7F") {
1277
+ typed += value;
1278
+ error = "";
1279
+ updateSelectedFromTyped();
1280
+ render();
1281
+ }
1282
+ };
1283
+ emitKeypressEvents(input);
1284
+ input.setRawMode(true);
1285
+ input.resume();
1286
+ input.on("keypress", onKeypress);
1287
+ render();
1288
+ });
1289
+ }
978
1290
  export function main() {
979
1291
  const rl = createInterface({ input, output });
1292
+ const interactive = process.stdin.isTTY && process.stdout.isTTY && process.env.CI !== "true";
980
1293
  runCli(process.argv.slice(2), {
981
1294
  write: (s) => process.stdout.write(`${s}\n`),
982
1295
  progress: (s) => process.stderr.write(`${s}\n`),
983
1296
  prompt: (question) => rl.question(question),
984
- isInteractive: process.stdin.isTTY && process.stdout.isTTY && process.env.CI !== "true",
1297
+ selectTool: canUseKeyboardToolSelection() ? selectToolWithKeyboard : undefined,
1298
+ isInteractive: interactive,
985
1299
  exit: (code) => process.exit(code),
986
1300
  }).finally(() => rl.close());
987
1301
  }
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,KAAK,IAAI,KAAK,EAAE,MAAM,IAAI,MAAM,EAAE,MAAM,cAAc,CAAC;AAChE,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACpG,OAAO,EAAmB,aAAa,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAC1F,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzF,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,EAEL,eAAe,EACf,uBAAuB,GACxB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,2BAA2B,EAAE,MAAM,yBAAyB,CAAC;AACtE,OAAO,EAEL,kBAAkB,EAClB,6BAA6B,GAC9B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,kBAAkB,EAAE,6BAA6B,EAAE,MAAM,iCAAiC,CAAC;AACpG,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EAAuB,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC7E,OAAO,EAAE,UAAU,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AAExE,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAE/C,MAAM,wBAAwB,GAAG,kBAAkB,CAAC;AACpD,MAAM,cAAc,GAAG,QAAQ,CAAC;AAChC,MAAM,+BAA+B,GAAG,CAAC,CAAC;AAC1C,MAAM,aAAa,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;AAC1C,MAAM,0BAA0B,GAAuD;IACrF,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,gCAAgC,CAAC,CAAC,QAAQ,EAAE;IAC7E,UAAU,EAAE,CAAC;SACV,MAAM,EAAE;SACR,QAAQ,CAAC,4DAA4D,CAAC;SACtE,QAAQ,EAAE;CACd,CAAC;AACF,MAAM,iBAAiB,GAAG,CAAC;KACxB,IAAI,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KACtB,OAAO,CAAC,MAAM,CAAC;KACf,QAAQ,EAAE;KACV,QAAQ,CAAC,8DAA8D,CAAC,CAAC;AAC5E,MAAM,gBAAgB,GAAG,CAAC;KACvB,IAAI,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;KAC7B,OAAO,CAAC,MAAM,CAAC;KACf,QAAQ,EAAE;KACV,QAAQ,CACP,6GAA6G,CAC9G,CAAC;AACJ,MAAM,aAAa,GAAG,CAAC;KACpB,MAAM,EAAE;KACR,QAAQ,EAAE;KACV,QAAQ,CAAC,0EAA0E,CAAC,CAAC;AAQxF,MAAM,UAAU,SAAS,CAAC,IAAc;IACtC,MAAM,IAAI,GAA2B,EAAE,CAAC;IACxC,IAAI,QAAQ,GAAkB,IAAI,CAAC;IACnC,IAAI,IAAI,GAAG,KAAK,CAAC;IAEjB,IAAI,CAAC,GAAG,CAAC,CAAC;IAEV,sCAAsC;IACtC,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAChD,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACnB,CAAC,EAAE,CAAC;IACN,CAAC;IAED,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QACvB,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACpB,IAAI,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;YACrC,IAAI,GAAG,IAAI,CAAC;YACZ,CAAC,EAAE,CAAC;YACJ,SAAS;QACX,CAAC;QACD,IAAI,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YACzB,MAAM,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACzB,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YACzB,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;gBAChD,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC;gBACnB,CAAC,EAAE,CAAC;YACN,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;gBACjB,CAAC,IAAI,CAAC,CAAC;YACT,CAAC;QACH,CAAC;aAAM,CAAC;YACN,CAAC,EAAE,CAAC;QACN,CAAC;IACH,CAAC;IAED,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AAClC,CAAC;AAED,MAAM,UAAU,SAAS;IACvB,MAAM,KAAK,GAAG;QACZ,wDAAwD;QACxD,EAAE;QACF,2CAA2C;QAC3C,EAAE;QACF,QAAQ;KACT,CAAC;IAEF,KAAK,MAAM,IAAI,IAAI,eAAe,EAAE,CAAC;QACnC,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,iBAAiB;QAC9D,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;IAClD,CAAC;IACD,KAAK,CAAC,IAAI,CACR,KAAK,wBAAwB,CAAC,MAAM,CAAC,EAAE,CAAC,6EAA6E,CACtH,CAAC;IAEF,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IAC3B,KAAK,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAC;IACvD,KAAK,CAAC,IAAI,CAAC,wDAAwD,CAAC,CAAC;IACrE,KAAK,CAAC,IAAI,CAAC,2EAA2E,CAAC,CAAC;IACxF,KAAK,CAAC,IAAI,CACR,kIAAkI,CACnI,CAAC;IACF,KAAK,CAAC,IAAI,CACR,2HAA2H,CAC5H,CAAC;IACF,KAAK,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;IAC5C,KAAK,CAAC,IAAI,CAAC,oEAAoE,CAAC,CAAC;IACjF,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,iEAAiE,CAAC,CAAC;IAC9E,KAAK,CAAC,IAAI,CAAC,0DAA0D,CAAC,CAAC;IACvE,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IAC9B,KAAK,CAAC,IAAI,CAAC,kFAAkF,CAAC,CAAC;IAC/F,KAAK,CAAC,IAAI,CAAC,0EAA0E,CAAC,CAAC;IACvF,KAAK,CAAC,IAAI,CAAC,8DAA8D,CAAC,CAAC;IAC3E,KAAK,CAAC,IAAI,CAAC,kEAAkE,CAAC,CAAC;IAC/E,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CACR,sFAAsF,CACvF,CAAC;IACF,KAAK,CAAC,IAAI,CAAC,6DAA6D,CAAC,CAAC;IAE1E,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,MAAM,UAAU,wBAAwB;IACtC,OAAO;QACL,WAAW,wBAAwB,EAAE;QACrC,EAAE;QACF,gMAAgM;QAChM,EAAE;QACF,aAAa;QACb,gGAAgG;QAChG,qGAAqG;QACrG,oFAAoF;QACpF,kFAAkF;QAClF,wFAAwF;QACxF,0FAA0F;QAC1F,iHAAiH;QACjH,mGAAmG;QACnG,uFAAuF;QACvF,kFAAkF;QAClF,sGAAsG;QACtG,gGAAgG;QAChG,wFAAwF;QACxF,4FAA4F;QAC5F,gGAAgG;QAChG,wFAAwF;QACxF,gGAAgG;QAChG,EAAE;QACF,WAAW;QACX,6IAA6I;QAC7I,8IAA8I;QAC9I,sIAAsI;KACvI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED,MAAM,YAAY,GAA6B;IAC7C,cAAc,EAAE;QACd,wCAAwC;QACxC,wDAAwD;QACxD,oEAAoE;KACrE;IACD,UAAU,EAAE;QACV,sDAAsD;QACtD,8CAA8C;QAC9C,uHAAuH;KACxH;IACD,iBAAiB,EAAE;QACjB,yEAAyE;QACzE,8FAA8F;QAC9F,2JAA2J;KAC5J;IACD,kBAAkB,EAAE;QAClB,4FAA4F;QAC5F,2GAA2G;KAC5G;IACD,oBAAoB,EAAE,CAAC,uDAAuD,CAAC;IAC/E,eAAe,EAAE;QACf,gDAAgD;QAChD,oIAAoI;KACrI;IACD,kBAAkB,EAAE,CAAC,mDAAmD,CAAC;IACzE,uBAAuB,EAAE;QACvB,8FAA8F;QAC9F,yIAAyI;KAC1I;IACD,uBAAuB,EAAE;QACvB,yFAAyF;KAC1F;IACD,qBAAqB,EAAE;QACrB,mEAAmE;QACnE,oHAAoH;KACrH;IACD,YAAY,EAAE;QACZ,kEAAkE;QAClE,uGAAuG;KACxG;IACD,sBAAsB,EAAE;QACtB,2FAA2F;QAC3F,sGAAsG;KACvG;IACD,kBAAkB,EAAE;QAClB,0EAA0E;QAC1E,sFAAsF;KACvF;IACD,aAAa,EAAE;QACb,8BAA8B;QAC9B,kDAAkD;KACnD;IACD,YAAY,EAAE,CAAC,6BAA6B,EAAE,2CAA2C,CAAC;IAC1F,QAAQ,EAAE,CAAC,yBAAyB,EAAE,wBAAwB,CAAC;IAC/D,UAAU,EAAE,CAAC,2BAA2B,EAAE,0BAA0B,CAAC;IACrE,YAAY,EAAE;QACZ,0DAA0D;QAC1D,oHAAoH;KACrH;IACD,aAAa,EAAE;QACb,yHAAyH;QACzH,yNAAyN;KAC1N;IACD,WAAW,EAAE;QACX,yGAAyG;KAC1G;IACD,YAAY,EAAE;QACZ,qIAAqI;KACtI;IACD,aAAa,EAAE;QACb,+FAA+F;KAChG;IACD,yBAAyB,EAAE;QACzB,mCAAmC;QACnC,uFAAuF;KACxF;IACD,uBAAuB,EAAE,CAAC,iCAAiC,CAAC;IAC5D,wBAAwB,EAAE,CAAC,kCAAkC,CAAC;IAC9D,0BAA0B,EAAE,CAAC,oCAAoC,CAAC;IAClE,aAAa,EAAE;QACb,4CAA4C;QAC5C,gIAAgI;KACjI;IACD,YAAY,EAAE,CAAC,6EAA6E,CAAC;CAC9F,CAAC;AAEF,MAAM,UAAU,aAAa,CAAC,IAAoB;IAChD,MAAM,KAAK,GAAG;QACZ,WAAW,IAAI,CAAC,IAAI,EAAE;QACtB,EAAE;QACF,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;QACrC,EAAE;QACF,aAAa;KACd,CAAC;IAEF,KAAK,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QACzD,MAAM,QAAQ,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC;QACjE,MAAM,IAAI,GAAG,qBAAqB,CAAC,OAAO,CAAC,CAAC;QAC5C,MAAM,QAAQ,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;QACzC,KAAK,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,QAAQ,GAAG,QAAQ,KAAK,IAAI,EAAE,CAAC,CAAC;IACtE,CAAC;IAED,6BAA6B;IAC7B,KAAK,CAAC,IAAI,CACR,OAAO,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,iEAAiE,CAC5F,CAAC;IACF,KAAK,CAAC,IAAI,CACR,OAAO,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,0BAA0B,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACnH,CAAC;IACF,KAAK,CAAC,IAAI,CAAC,OAAO,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC,oDAAoD,CAAC,CAAC;IAChG,KAAK,CAAC,IAAI,CACR,OAAO,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC,gFAAgF,CAC/G,CAAC;IAEF,MAAM,QAAQ,GAAG,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACzC,IAAI,QAAQ,EAAE,MAAM,EAAE,CAAC;QACrB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACxB,KAAK,MAAM,EAAE,IAAI,QAAQ,EAAE,CAAC;YAC1B,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACxB,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,SAAS,mBAAmB,CAAC,QAAgB;IAC3C,OAAO,kBAAkB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,iBAAiB,CAAC;AAClF,CAAC;AAED,SAAS,0BAA0B,CAAC,QAAgB;IAClD,MAAM,MAAM,GAAG,kBAAkB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,kCAAkC,CAAC,CAAC,CAAC,EAAE,CAAC;IACtF,OAAO,gDAAgD,MAAM,iBAAiB,CAAC;AACjF,CAAC;AAED,SAAS,iBAAiB,CAAC,CAAe;IACxC,IAAI,CAAC,CAAC,WAAW;QAAE,OAAO,CAAC,CAAC,WAAW,CAAC;IACxC,MAAM,GAAG,GAAI,CAAS,CAAC,IAAI,EAAE,GAAG,IAAK,CAAS,CAAC,IAAI,IAAI,EAAE,CAAC;IAC1D,IAAI,GAAG,CAAC,SAAS;QAAE,OAAO,iBAAiB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAC3D,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,SAAS,qBAAqB,CAAC,OAAqB;IAClD,MAAM,IAAI,GAAG,aAAa,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;IAC1C,MAAM,YAAY,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;IAC/C,IAAI,YAAY,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IACvC,OAAO,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,aAAa,YAAY,GAAG,CAAC,CAAC,CAAC,YAAY,YAAY,GAAG,CAAC;AAClF,CAAC;AAED,SAAS,cAAc,CAAC,CAAe;IACrC,MAAM,IAAI,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;IAC/B,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;QACpB,MAAM,MAAM,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;QACnC,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC;IAC9D,CAAC;IACD,OAAO,IAAI,IAAI,QAAQ,CAAC;AAC1B,CAAC;AAyBD,MAAM,8BAA8B,GAAG,CAAC,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,CAAU,CAAC;AAanG,MAAM,CAAC,KAAK,UAAU,MAAM,CAAC,IAAc,EAAE,EAAS;IACpD,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IAC/C,IAAI,aAAiC,CAAC;IAEtC,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,aAAa,KAAK,IAAI,IAAI,EAAE,CAAC,MAAM,EAAE,CAAC;YACpD,MAAM,QAAQ,GAAG,MAAM,0BAA0B,CAAC,EAAE,CAAC,CAAC;YACtD,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBACX,OAAO;YACT,CAAC;YACD,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC;YAC7B,aAAa,GAAG,QAAQ,CAAC,MAAM,CAAC;QAClC,CAAC;aAAM,CAAC;YACN,EAAE,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC;YACtB,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACX,OAAO;QACT,CAAC;IACH,CAAC;IAED,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,EAAE,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC;QACtB,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACX,OAAO;IACT,CAAC;IAED,oBAAoB;IACpB,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;QACzB,MAAM,GAAG,GAAG,MAAM,eAAe,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAC5C,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,EAAE,CAAC,KAAK,CACN,wGAAwG,CACzG,CAAC;YACF,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACX,OAAO;QACT,CAAC;QACD,MAAM,UAAU,GAAG,sBAAsB,CAAC,GAAG,CAAC,CAAC;QAC/C,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC;YACnB,EAAE,CAAC,KAAK,CAAC,UAAU,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC;YACvC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACX,OAAO;QACT,CAAC;QACD,UAAU,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;QAC5B,EAAE,CAAC,KAAK,CAAC,oBAAoB,iBAAiB,EAAE,EAAE,CAAC,CAAC;QACpD,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACX,OAAO;IACT,CAAC;IAED,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAC1B,YAAY,EAAE,CAAC;QACf,EAAE,CAAC,KAAK,CAAC,wBAAwB,iBAAiB,EAAE,EAAE,CAAC,CAAC;QACxD,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACX,OAAO;IACT,CAAC;IAED,IAAI,QAAQ,KAAK,cAAc,EAAE,CAAC;QAChC,MAAM,gBAAgB,CAAC,EAAE,CAAC,CAAC;QAC3B,OAAO;IACT,CAAC;IAED,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAC1B,MAAM,MAAM,GAAG,CAAC,EAAE,CAAC,aAAa,IAAI,aAAa,CAAC,EAAE,CAAC;QACrD,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACnB,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YACzB,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACb,CAAC;aAAM,CAAC;YACN,EAAE,CAAC,KAAK,CAAC,UAAU,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;YACrC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACb,CAAC;QACD,OAAO;IACT,CAAC;IAED,IAAI,QAAQ,KAAK,wBAAwB,EAAE,CAAC;QAC1C,IAAI,IAAI,EAAE,CAAC;YACT,EAAE,CAAC,KAAK,CAAC,wBAAwB,EAAE,CAAC,CAAC;YACrC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACX,OAAO;QACT,CAAC;QAED,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,EAAE,GAAG,IAAI,EAAE,CAAC;YAC9B,MAAM,WAAW,GAAG,EAAE,CAAC,aAAa,KAAK,IAAI,IAAI,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;YACpE,IAAI,WAAW,EAAE,CAAC;gBAChB,KAAK,MAAM,KAAK,IAAI,yCAAyC,CAAC,SAAS,CAAC,EAAE,CAAC;oBACzE,EAAE,CAAC,KAAK,CAAC,WAAW,0BAA0B,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC;oBAC/E,OAAO,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBAC9B,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,MAAM,uBAAuB,GAAG,2BAA2B,CAAC,SAAS,CAAC,CAAC;gBACvE,IAAI,uBAAuB,EAAE,CAAC;oBAC5B,EAAE,CAAC,KAAK,CACN,WAAW,0BAA0B,CAAC,uBAAuB,CAAC,GAAG,CAAC,KAAK,uBAAuB,CAAC,KAAK,IAAI,CACzG,CAAC;oBACF,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;oBACX,OAAO;gBACT,CAAC;YACH,CAAC;YACD,MAAM,WAAW,GAAG,MAAM,0BAA0B,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;YACpE,IAAI,CAAC,WAAW,EAAE,CAAC;gBACjB,EAAE,CAAC,KAAK,CACN,yDAAyD,0BAA0B,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,0CAA0C,CACpJ,CAAC;gBACF,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBACX,OAAO;YACT,CAAC;YACD,MAAM,eAAe,GAAG,2BAA2B,CAAC,WAAW,CAAC,CAAC;YACjE,IAAI,eAAe,EAAE,CAAC;gBACpB,EAAE,CAAC,KAAK,CACN,WAAW,0BAA0B,CAAC,eAAe,CAAC,GAAG,CAAC,KAAK,eAAe,CAAC,KAAK,IAAI,CACzF,CAAC;gBACF,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBACX,OAAO;YACT,CAAC;YACD,MAAM,OAAO,GAAG,cAAc,CAAC,EAAE,EAAE,aAAa,CAAC,CAAC;YAClD,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,EAAE,CAAC,KAAK,CACN,oMAAoM,CACrM,CAAC;gBACF,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBACX,OAAO;YACT,CAAC;YACD,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,wBAAwB,CAAC,WAAW,CAAC,EAAE;gBAC1E,OAAO;gBACP,UAAU,EAAE,CAAC,KAAK,EAAE,EAAE;oBACpB,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBACzE,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;oBACrD,EAAE,CAAC,QAAQ,EAAE,CACX,IAAI,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,KAAK,KAAK,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,UAAU,GAAG,MAAM,GAAG,KAAK,EAAE,CAC3G,CAAC;gBACJ,CAAC;aACF,CAAC,CAAC;YACH,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAC5C,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,EAAE,CAAC,KAAK,CAAC,UAAU,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC;YACtC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACb,CAAC;QACD,OAAO;IACT,CAAC;IAED,YAAY;IACZ,MAAM,IAAI,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC;IAC9D,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,EAAE,CAAC,KAAK,CAAC,wBAAwB,QAAQ,8CAA8C,CAAC,CAAC;QACzF,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACX,OAAO;IACT,CAAC;IAED,YAAY;IACZ,IAAI,IAAI,EAAE,CAAC;QACT,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC;QAC9B,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACX,OAAO;IACT,CAAC;IAED,MAAM,SAAS,GAAG,EAAE,GAAG,IAAI,EAAE,CAAC;IAC9B,MAAM,WAAW,GAAG,EAAE,CAAC,aAAa,KAAK,IAAI,IAAI,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;IACpE,IAAI,WAAW,EAAE,CAAC;QAChB,KAAK,MAAM,KAAK,IAAI,8BAA8B,CAAC,SAAS,EAAE,IAAI,CAAC,EAAE,CAAC;YACpE,EAAE,CAAC,KAAK,CAAC,WAAW,eAAe,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC;YACpE,OAAO,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC;SAAM,CAAC;QACN,MAAM,uBAAuB,GAAG,wBAAwB,CAAC,SAAS,EAAE,IAAI,EAAE;YACxE,+BAA+B,EAAE,KAAK;SACvC,CAAC,CAAC;QACH,IAAI,uBAAuB,EAAE,CAAC;YAC5B,EAAE,CAAC,KAAK,CACN,WAAW,eAAe,CAAC,uBAAuB,CAAC,GAAG,CAAC,KAAK,uBAAuB,CAAC,KAAK,IAAI,CAC9F,CAAC;YACF,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACX,OAAO;QACT,CAAC;IACH,CAAC;IAED,MAAM,cAAc,GAAG,iBAAiB,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC;IACrE,IAAI,cAAc,EAAE,CAAC;QACnB,IAAI,WAAW,EAAE,CAAC;YAChB,EAAE,CAAC,KAAK,CAAC,kBAAkB,cAAc,IAAI,CAAC,CAAC;YAC/C,OAAO,SAAS,CAAC,KAAK,CAAC;QACzB,CAAC;aAAM,CAAC;YACN,EAAE,CAAC,KAAK,CAAC,kBAAkB,cAAc,IAAI,CAAC,CAAC;YAC/C,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACX,OAAO;QACT,CAAC;IACH,CAAC;IACD,MAAM,WAAW,GAAG,wBAAwB,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAC/D,IAAI,WAAW,EAAE,CAAC;QAChB,IAAI,WAAW,EAAE,CAAC;YAChB,EAAE,CAAC,KAAK,CAAC,mBAAmB,WAAW,IAAI,CAAC,CAAC;YAC7C,OAAO,SAAS,CAAC,MAAM,CAAC;QAC1B,CAAC;aAAM,CAAC;YACN,EAAE,CAAC,KAAK,CAAC,mBAAmB,WAAW,IAAI,CAAC,CAAC;YAC7C,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACX,OAAO;QACT,CAAC;IACH,CAAC;IAED,MAAM,YAAY,GAAG,MAAM,eAAe,CAAC,SAAS,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;IAChE,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,MAAM,OAAO,GAAG,uBAAuB,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QACzD,EAAE,CAAC,KAAK,CACN,uCAAuC,IAAI,CAAC,IAAI,KAAK,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,oBAAoB,IAAI,CAAC,IAAI,SAAS,CAC9G,CAAC;QACF,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACX,OAAO;IACT,CAAC;IAED,MAAM,eAAe,GAAG,wBAAwB,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;IACrE,IAAI,eAAe,EAAE,CAAC;QACpB,EAAE,CAAC,KAAK,CAAC,WAAW,eAAe,CAAC,eAAe,CAAC,GAAG,CAAC,KAAK,eAAe,CAAC,KAAK,IAAI,CAAC,CAAC;QACxF,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACX,OAAO;IACT,CAAC;IAED,2BAA2B;IAC3B,MAAM,OAAO,GAAG,cAAc,CAAC,EAAE,EAAE,aAAa,CAAC,CAAC;IAClD,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,EAAE,CAAC,KAAK,CACN,oMAAoM,CACrM,CAAC;QACF,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACX,OAAO;IACT,CAAC;IAED,IAAI,CAAC;QACH,MAAM,WAAW,GAAG,MAAM,UAAU,CAAC;YACnC,QAAQ,EAAE,IAAI,CAAC,IAAI;YACnB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,IAAI,EAAE,UAAU,CAAC,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC;YAC3C,OAAO;SACR,CAAC,CAAC;QACH,MAAM,MAAM,GACV,OAAO,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QACvF,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACnB,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,EAAE,CAAC,KAAK,CAAC,UAAU,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC;QACtC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACb,CAAC;AACH,CAAC;AAED,KAAK,UAAU,0BAA0B,CAAC,EAAS;IACjD,IAAI,MAA0B,CAAC;IAC/B,MAAM,MAAM,GAAG,CAAC,EAAE,CAAC,aAAa,IAAI,aAAa,CAAC,EAAE,CAAC;IACrD,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC;QAC1B,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACzB,MAAM,GAAG,CAAC,MAAM,eAAe,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,IAAI,SAAS,CAAC;QACtD,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,EAAE,CAAC,KAAK,CACN,wGAAwG,CACzG,CAAC;YACF,OAAO,IAAI,CAAC;QACd,CAAC;QACD,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;QACvB,EAAE,CAAC,KAAK,CAAC,oBAAoB,iBAAiB,EAAE,EAAE,CAAC,CAAC;IACtD,CAAC;IAED,MAAM,OAAO,GAAG,sBAAsB,EAAE,CAAC;IACzC,IAAI,EAAE,CAAC,UAAU,EAAE,CAAC;QAClB,MAAM,QAAQ,GAAG,MAAM,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QAC9C,IAAI,CAAC,QAAQ;YAAE,EAAE,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;QAC7C,OAAO,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IAC1D,CAAC;IAED,EAAE,CAAC,KAAK,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAC,CAAC;IAC5C,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,GAAG,+BAA+B,EAAE,OAAO,EAAE,EAAE,CAAC;QAC3E,MAAM,MAAM,GAAG,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,CAAC,gCAAgC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QACnF,MAAM,QAAQ,GAAG,kBAAkB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACrD,IAAI,QAAQ;YAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;QACpD,EAAE,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC;IACtC,CAAC;IAED,EAAE,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;IAC9B,OAAO,IAAI,CAAC;AACd,CAAC;AAED,KAAK,UAAU,gBAAgB,CAAC,EAAS;IACvC,MAAM,UAAU,GAAG,EAAE,CAAC,UAAU,IAAI,iBAAiB,CAAC;IACtD,EAAE,CAAC,KAAK,CAAC,wEAAwE,CAAC,CAAC;IACnF,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,KAAK,EAAE,CAAC,SAAS,EAAE,IAAI,EAAE,oBAAoB,CAAC,CAAC,CAAC;QAChF,MAAM,OAAO,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1F,IAAI,OAAO;YAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC/B,EAAE,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAC;QAC3C,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACb,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,EAAE,CAAC,KAAK,CAAC,UAAU,KAAK,EAAE,OAAO,IAAI,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACtD,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACb,CAAC;AACH,CAAC;AAED,KAAK,UAAU,iBAAiB,CAC9B,OAAe,EACf,IAAc;IAEd,OAAO,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;AACtC,CAAC;AAED,SAAS,sBAAsB;IAC7B,OAAO;QACL,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YAChC,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,WAAW,EAAE,wBAAwB,CAAC,IAAI,CAAC,WAAW,CAAC;SACxD,CAAC,CAAC;QACH;YACE,IAAI,EAAE,wBAAwB;YAC9B,WAAW,EAAE,8CAA8C;SAC5D;KACF,CAAC;AACJ,CAAC;AAED,SAAS,wBAAwB,CAAC,OAA8B;IAC9D,OAAO;QACL,gBAAgB;QAChB,EAAE;QACF,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,KAAK,GAAG,CAAC,KAAK,MAAM,CAAC,IAAI,MAAM,MAAM,CAAC,WAAW,EAAE,CAAC;QACzF,EAAE;QACF,iDAAiD;KAClD,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED,SAAS,wBAAwB,CAAC,WAAmB;IACnD,OAAO,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;AACxD,CAAC;AAED,SAAS,kBAAkB,CAAC,YAAoB,EAAE,OAA8B;IAC9E,MAAM,SAAS,GAAG,YAAY,CAAC,IAAI,EAAE,CAAC;IACtC,IAAI,CAAC,SAAS;QAAE,OAAO,IAAI,CAAC;IAE5B,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC;IACjC,IAAI,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACxE,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;IAClC,CAAC;IAED,MAAM,UAAU,GAAG,SAAS,CAAC,WAAW,EAAE,CAAC;IAC3C,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,UAAU,CAAC,EAAE,IAAI,IAAI,IAAI,CAAC;AAC1F,CAAC;AAED,KAAK,UAAU,eAAe,CAAC,IAA4B,EAAE,EAAS;IACpE,IAAI,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE;QAAE,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;IAC7C,IAAI,EAAE,CAAC,aAAa,KAAK,IAAI,IAAI,CAAC,EAAE,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IAEzD,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,GAAG,+BAA+B,EAAE,OAAO,EAAE,EAAE,CAAC;QAC3E,MAAM,MAAM,GAAG,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QACrD,IAAI,CAAC,MAAM;YAAE,OAAO,IAAI,CAAC;QAEzB,MAAM,UAAU,GAAG,sBAAsB,CAAC,MAAM,CAAC,CAAC;QAClD,IAAI,UAAU,CAAC,EAAE;YAAE,OAAO,MAAM,CAAC;QAEjC,EAAE,CAAC,KAAK,CAAC,oBAAoB,UAAU,CAAC,KAAK,IAAI,CAAC,CAAC;IACrD,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,cAAc,CAAC,EAAS,EAAE,cAAuB;IACxD,IAAI,EAAE,CAAC,OAAO;QAAE,OAAO,EAAE,CAAC,OAAO,CAAC;IAClC,MAAM,MAAM,GAAG,cAAc,EAAE,IAAI,EAAE,IAAI,aAAa,EAAE,CAAC;IACzD,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IACzB,IAAI,EAAE,CAAC,uBAAuB;QAAE,OAAO,EAAE,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC;IAC1E,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC,MAAM,CAAC,CAAC;IACrC,OAAO,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;AACxE,CAAC;AAED,SAAS,eAAe,CAAC,IAA4B,EAAE,IAAoB;IACzE,OAAO,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC;SAC/B,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;SACxD,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC;SACnB,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AACjC,CAAC;AAED,SAAS,uBAAuB,CAAC,IAA4B,EAAE,IAAoB;IACjF,OAAO,CAAC,GAAG,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,GAAG,0BAA0B,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;AAC1F,CAAC;AAED,KAAK,UAAU,eAAe,CAC5B,IAA4B,EAC5B,IAAoB,EACpB,EAAS;IAET,MAAM,QAAQ,GAAG,EAAE,GAAG,IAAI,EAAE,CAAC;IAC7B,IAAI,EAAE,CAAC,aAAa,KAAK,IAAI,IAAI,EAAE,CAAC,MAAM,EAAE,CAAC;QAC3C,KAAK,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;YACzD,IAAI,QAAQ,CAAC,GAAG,CAAC,KAAK,SAAS;gBAAE,SAAS;YAC1C,IAAI,iBAAiB,CAAC,OAAO,CAAC,IAAI,CAAC,6BAA6B,CAAC,GAAG,EAAE,QAAQ,CAAC;gBAAE,SAAS;YAC1F,IAAI,iBAAiB,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC/B,IAAI,4BAA4B,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,QAAQ,CAAC;oBAAE,SAAS;gBACrE,MAAM,MAAM,GAAG,4BAA4B,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,QAAQ,CAAC;oBACnE,CAAC,CAAC,MAAM,gBAAgB,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE,CAAC;oBAC1C,CAAC,CAAC,MAAM,wBAAwB,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;gBACrD,IAAI,MAAM,KAAK,IAAI;oBAAE,OAAO,IAAI,CAAC;gBACjC,IAAI,MAAM,KAAK,SAAS;oBAAE,QAAQ,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC;YACnD,CAAC;iBAAM,CAAC;gBACN,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;gBACxD,IAAI,CAAC,MAAM;oBAAE,OAAO,IAAI,CAAC;gBACzB,QAAQ,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC;YACzB,CAAC;QACH,CAAC;QACD,MAAM,aAAa,GAAG,MAAM,6BAA6B,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACnF,IAAI,aAAa,KAAK,IAAI;YAAE,OAAO,IAAI,CAAC;QACxC,MAAM,yBAAyB,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACzD,MAAM,YAAY,GAAG,MAAM,wBAAwB,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QAClE,IAAI,YAAY,KAAK,IAAI;YAAE,OAAO,IAAI,CAAC;IACzC,CAAC;SAAM,IAAI,eAAe,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,eAAe,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IAE5D,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,KAAK,UAAU,6BAA6B,CAC1C,QAAgC,EAChC,QAAgB,EAChB,EAAS;IAET,IAAI,QAAQ,CAAC,KAAK,KAAK,SAAS;QAAE,OAAO;IAEzC,MAAM,MAAM,GAAG,MAAM,wBAAwB,CAAC,OAAO,EAAE,eAAe,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC;IACtF,IAAI,MAAM,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IACjC,IAAI,MAAM,KAAK,SAAS;QAAE,QAAQ,CAAC,KAAK,GAAG,MAAM,CAAC;AACpD,CAAC;AAED,SAAS,eAAe,CAAC,QAAgB;IACvC,OAAO,kBAAkB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,iBAAiB,CAAC;AAC7E,CAAC;AAED,KAAK,UAAU,wBAAwB,CACrC,QAAgC,EAChC,EAAS;IAET,IAAI,QAAQ,CAAC,MAAM,KAAK,SAAS;QAAE,OAAO;IAE1C,MAAM,MAAM,GAAG,MAAM,0BAA0B,CAAC,EAAE,CAAC,CAAC;IACpD,IAAI,MAAM,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IACjC,IAAI,MAAM,KAAK,SAAS;QAAE,QAAQ,CAAC,MAAM,GAAG,MAAM,CAAC;AACrD,CAAC;AAED,KAAK,UAAU,0BAA0B,CAAC,EAAS;IACjD,MAAM,KAAK,GAAG,QAAQ,CAAC;IACvB,MAAM,QAAQ,GAAG,sBAAsB,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC;IAC9D,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,GAAG,+BAA+B,EAAE,OAAO,EAAE,EAAE,CAAC;QAC3E,MAAM,MAAM,GAAG,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QAC3D,IAAI,CAAC,MAAM;YAAE,OAAO,SAAS,CAAC;QAE9B,MAAM,KAAK,GAAG,wBAAwB,CAAC,MAAM,CAAC,CAAC;QAC/C,IAAI,CAAC,KAAK;YAAE,OAAO,MAAM,CAAC;QAC1B,EAAE,CAAC,KAAK,CAAC,WAAW,KAAK,KAAK,KAAK,IAAI,CAAC,CAAC;IAC3C,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,4BAA4B,CACnC,QAAgB,EAChB,GAAW,EACX,IAA4B;IAE5B,IAAI,QAAQ,KAAK,eAAe,IAAI,GAAG,KAAK,WAAW;QAAE,OAAO,IAAI,CAAC;IAErE,IAAI,QAAQ,KAAK,wBAAwB,EAAE,CAAC;QAC1C,IAAI,GAAG,KAAK,YAAY;YAAE,OAAO,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAChF,IAAI,GAAG,KAAK,MAAM,IAAI,GAAG,KAAK,IAAI;YAAE,OAAO,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC1E,CAAC;IAED,IAAI,QAAQ,KAAK,oBAAoB,EAAE,CAAC;QACtC,IAAI,GAAG,KAAK,QAAQ;YAAE,OAAO,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACrD,IAAI,GAAG,KAAK,OAAO;YAAE,OAAO,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACvD,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,4BAA4B,CACnC,QAAgB,EAChB,GAAW,EACX,IAA4B;IAE5B,IAAI,QAAQ,KAAK,wBAAwB,EAAE,CAAC;QAC1C,OAAO,CAAC,GAAG,KAAK,MAAM,IAAI,GAAG,KAAK,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC3E,CAAC;IAED,IAAI,QAAQ,KAAK,oBAAoB,EAAE,CAAC;QACtC,OAAO,GAAG,KAAK,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACtD,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,KAAK,UAAU,yBAAyB,CACtC,QAAgC,EAChC,QAAgB,EAChB,EAAS;IAET,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO;IAE5C,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;QAC1B,MAAM,MAAM,GAAG,MAAM,sCAAsC,CACzD,aAAa,EACb,0BAA0B,CAAC,WAAW,EACtC,QAAQ,EACR,QAAQ,EACR,EAAE,CACH,CAAC;QACF,IAAI,MAAM,KAAK,IAAI,IAAI,MAAM,KAAK,SAAS;YAAE,QAAQ,CAAC,WAAW,GAAG,MAAM,CAAC;IAC7E,CAAC;IAED,IAAI,CAAC,QAAQ,CAAC,WAAW,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC;QAClD,MAAM,MAAM,GAAG,MAAM,8BAA8B,CACjD,YAAY,EACZ,0BAA0B,CAAC,UAAU,EACrC,QAAQ,EACR,QAAQ,EACR,EAAE,CACH,CAAC;QACF,IAAI,MAAM,KAAK,IAAI;YAAE,QAAQ,CAAC,UAAU,GAAG,MAAM,CAAC;IACpD,CAAC;AACH,CAAC;AAED,KAAK,UAAU,8BAA8B,CAC3C,GAAiC,EACjC,OAAqB,EACrB,QAAgC,EAChC,QAAgB,EAChB,EAAS;IAET,MAAM,KAAK,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC;IACnC,MAAM,QAAQ,GAAG,cAAc,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;IAC5D,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,GAAG,+BAA+B,EAAE,OAAO,EAAE,EAAE,CAAC;QAC3E,MAAM,MAAM,GAAG,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QAC3D,MAAM,KAAK,GAAG,qBAAqB,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;QAC1D,IAAI,KAAK,EAAE,CAAC;YACV,EAAE,CAAC,KAAK,CAAC,WAAW,KAAK,KAAK,KAAK,IAAI,CAAC,CAAC;YACzC,SAAS;QACX,CAAC;QAED,MAAM,YAAY,GAAG,MAAM,gCAAgC,CAAC,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;QAC7F,IAAI,CAAC,YAAY;YAAE,OAAO,MAAM,CAAC;QACjC,EAAE,CAAC,KAAK,CAAC,WAAW,KAAK,KAAK,YAAY,IAAI,CAAC,CAAC;IAClD,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,KAAK,UAAU,sCAAsC,CACnD,GAAiC,EACjC,OAAqB,EACrB,QAAgC,EAChC,QAAgB,EAChB,EAAS;IAET,MAAM,KAAK,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC;IACnC,MAAM,QAAQ,GAAG,sBAAsB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACxD,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,GAAG,+BAA+B,EAAE,OAAO,EAAE,EAAE,CAAC;QAC3E,MAAM,MAAM,GAAG,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QAC3D,IAAI,CAAC,MAAM;YAAE,OAAO,SAAS,CAAC;QAE9B,MAAM,KAAK,GAAG,qBAAqB,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;QAC1D,IAAI,KAAK,EAAE,CAAC;YACV,EAAE,CAAC,KAAK,CAAC,WAAW,KAAK,KAAK,KAAK,IAAI,CAAC,CAAC;YACzC,SAAS;QACX,CAAC;QAED,MAAM,YAAY,GAAG,MAAM,gCAAgC,CAAC,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;QAC7F,IAAI,CAAC,YAAY;YAAE,OAAO,MAAM,CAAC;QACjC,EAAE,CAAC,KAAK,CAAC,WAAW,KAAK,KAAK,YAAY,IAAI,CAAC,CAAC;IAClD,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,KAAK,UAAU,gCAAgC,CAC7C,GAAiC,EACjC,QAAgC,EAChC,QAAgB,EAChB,MAAc;IAEd,IAAI,CAAC;QACH,MAAM,6BAA6B,CAAC;YAClC,QAAQ;YACR,KAAK,EAAE,QAAQ,CAAC,KAAwC;YACxD,WAAW,EAAE,GAAG,KAAK,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;YACvD,UAAU,EAAE,GAAG,KAAK,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;SACtD,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,OAAO,KAAK,EAAE,OAAO,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC;IACzC,CAAC;AACH,CAAC;AAED,SAAS,cAAc,CAAC,KAAyB;IAC/C,OAAO,KAAK,KAAK,MAAM,IAAI,KAAK,KAAK,KAAK,CAAC;AAC7C,CAAC;AAED,SAAS,eAAe,CAAC,GAAW;IAClC,OAAO,GAAG;SACP,KAAK,CAAC,GAAG,CAAC;SACV,MAAM,CAAC,OAAO,CAAC;SACf,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;SAC3D,IAAI,CAAC,GAAG,CAAC,CAAC;AACf,CAAC;AAED,SAAS,0BAA0B,CAAC,IAA4B;IAC9D,OAAO,8BAA8B,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AACpE,CAAC;AAED,KAAK,UAAU,0BAA0B,CACvC,IAA4B,EAC5B,EAAS;IAET,IAAI,EAAE,CAAC,aAAa,KAAK,IAAI,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC;QAC5C,OAAO,0BAA0B,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;IACrE,CAAC;IAED,MAAM,QAAQ,GAAG,EAAE,GAAG,IAAI,EAAE,CAAC;IAC7B,KAAK,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,qBAAqB,CAAC,EAAE,CAAC;QACnE,IAAI,QAAQ,CAAC,GAAG,CAAC,KAAK,SAAS;YAAE,SAAS;QAC1C,IAAI,8BAA8B,CAAC,QAAQ,CAAC,GAAiC,CAAC,EAAE,CAAC;YAC/E,MAAM,MAAM,GAAG,MAAM,2BAA2B,CAC9C,GAAiC,EACjC,QAAQ,EACR,EAAE,CACH,CAAC;YACF,IAAI,CAAC,MAAM;gBAAE,OAAO,IAAI,CAAC;YACzB,QAAQ,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC;QACzB,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,gCAAgC,CAAC,GAAG,EAAE,QAAQ,CAAC;gBAAE,SAAS;YAC/D,IAAI,CAAC,6BAA6B,CAAC,GAAG,EAAE,QAAQ,CAAC;gBAAE,SAAS;YAC5D,MAAM,MAAM,GAAG,MAAM,mCAAmC,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;YAC3E,IAAI,MAAM,KAAK,IAAI;gBAAE,OAAO,IAAI,CAAC;YACjC,IAAI,MAAM,KAAK,SAAS;gBAAE,QAAQ,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC;QACnD,CAAC;IACH,CAAC;IAED,OAAO,0BAA0B,CAAC,QAAQ,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;AAC7E,CAAC;AAED,SAAS,gCAAgC,CACvC,GAAW,EACX,IAAwC;IAExC,IAAI,GAAG,KAAK,0BAA0B,EAAE,CAAC;QACvC,MAAM,EAAE,SAAS,EAAE,aAAa,EAAE,GAAG,kBAAkB,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;QAC3E,OAAO,CAAC,SAAS,IAAI,aAAa,CAAC;IACrC,CAAC;IAED,IAAI,GAAG,KAAK,OAAO,IAAI,GAAG,KAAK,aAAa;QAAE,OAAO,IAAI,CAAC;IAC1D,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,KAAK,CAAC;IACpC,MAAM,SAAS,GAAG,MAAM,KAAK,KAAK,IAAI,MAAM,KAAK,MAAM,CAAC;IACxD,IAAI,CAAC,SAAS;QAAE,OAAO,KAAK,CAAC;IAC7B,IAAI,GAAG,KAAK,aAAa,IAAI,IAAI,CAAC,KAAK,EAAE,WAAW,EAAE,KAAK,OAAO;QAAE,OAAO,KAAK,CAAC;IACjF,OAAO,IAAI,CAAC;AACd,CAAC;AAED,KAAK,UAAU,gBAAgB,CAC7B,GAAW,EACX,OAAqB,EACrB,EAAS;IAET,MAAM,KAAK,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC;IACnC,MAAM,QAAQ,GAAG,cAAc,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;IAC5D,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,GAAG,+BAA+B,EAAE,OAAO,EAAE,EAAE,CAAC;QAC3E,MAAM,MAAM,GAAG,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QAC3D,MAAM,KAAK,GAAG,qBAAqB,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;QAC1D,IAAI,CAAC,KAAK;YAAE,OAAO,MAAM,CAAC;QAC1B,EAAE,CAAC,KAAK,CAAC,WAAW,KAAK,KAAK,KAAK,IAAI,CAAC,CAAC;IAC3C,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,KAAK,UAAU,wBAAwB,CACrC,GAAW,EACX,OAAqB,EACrB,EAAS;IAET,MAAM,KAAK,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC;IACnC,MAAM,QAAQ,GAAG,sBAAsB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACxD,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,GAAG,+BAA+B,EAAE,OAAO,EAAE,EAAE,CAAC;QAC3E,MAAM,MAAM,GAAG,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QAC3D,IAAI,CAAC,MAAM;YAAE,OAAO,SAAS,CAAC;QAC9B,MAAM,KAAK,GAAG,qBAAqB,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;QAC1D,IAAI,CAAC,KAAK;YAAE,OAAO,MAAM,CAAC;QAC1B,EAAE,CAAC,KAAK,CAAC,WAAW,KAAK,KAAK,KAAK,IAAI,CAAC,CAAC;IAC3C,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,qBAAqB,CAAC,GAAW,EAAE,OAAqB,EAAE,MAAc;IAC/E,IAAI,CAAC,MAAM;QAAE,OAAO,mBAAmB,CAAC;IAExC,MAAM,WAAW,GAAG,qBAAqB,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IACvD,IAAI,WAAW;QAAE,OAAO,WAAW,CAAC;IAEpC,MAAM,OAAO,GAAG,UAAU,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;IACvE,MAAM,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IAC1C,IAAI,MAAM,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC;IAEhC,MAAM,UAAU,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;IAC7C,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,oBAAoB,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;IAC9E,OAAO,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACtE,CAAC;AAED,SAAS,wBAAwB,CAC/B,IAA4B,EAC5B,IAAoB,EACpB,UAAyD,EAAE;IAE3D,KAAK,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QACzD,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,SAAS;YAAE,SAAS;QACtC,MAAM,KAAK,GAAG,qBAAqB,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QAC7D,IAAI,KAAK;YAAE,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC;IACnC,CAAC;IACD,IAAI,OAAO,CAAC,+BAA+B,KAAK,KAAK,EAAE,CAAC;QACtD,MAAM,gBAAgB,GAAG,2BAA2B,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACtE,IAAI,gBAAgB;YAAE,OAAO,gBAAgB,CAAC;IAChD,CAAC;IACD,MAAM,oBAAoB,GAAG,2BAA2B,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC1E,IAAI,oBAAoB;QAAE,OAAO,oBAAoB,CAAC;IACtD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,8BAA8B,CACrC,IAA4B,EAC5B,IAAoB;IAEpB,MAAM,MAAM,GAA0C,EAAE,CAAC;IACzD,KAAK,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QACzD,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,SAAS;YAAE,SAAS;QACtC,MAAM,KAAK,GAAG,qBAAqB,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QAC7D,IAAI,KAAK;YAAE,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC;IACzC,CAAC;IAED,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,KAAK,cAAc,CAAC,EAAE,CAAC;QAC1D,MAAM,oBAAoB,GAAG,2BAA2B,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC1E,IAAI,oBAAoB;YAAE,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;IAC9D,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,2BAA2B,CAClC,QAAgB,EAChB,IAA4B;IAE5B,MAAM,OAAO,GAAG,0BAA0B,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IAC3D,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACtC,MAAM,GAAG,GAAG,QAAQ,KAAK,oBAAoB,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC;IACxE,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,WAAW,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;AACzD,CAAC;AAED,SAAS,0BAA0B,CAAC,QAAgB,EAAE,IAA4B;IAChF,IAAI,QAAQ,KAAK,wBAAwB,EAAE,CAAC;QAC1C,MAAM,aAAa,GAAG,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACnD,IAAI,aAAa;YAAE,OAAO,EAAE,CAAC;QAC7B,MAAM,OAAO,GAAG,EAAE,CAAC;QACnB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC;YAAE,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAClD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC;YAAE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC9C,OAAO,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;IACpE,CAAC;IAED,IAAI,QAAQ,KAAK,oBAAoB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QAC/F,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAC7B,CAAC;IAED,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,SAAS,WAAW,CAAC,KAAyB;IAC5C,OAAO,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;AACxD,CAAC;AAED,SAAS,iBAAiB,CAAC,QAAgB,EAAE,KAAyB;IACpE,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IACrC,IAAI,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,kCAAkC,CAAC;IACxF,IAAI,KAAK,KAAK,KAAK,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,EAAE,CAAC;QACrD,OAAO,4EAA4E,CAAC;IACtF,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,KAAK,UAAU,2BAA2B,CACxC,GAA+B,EAC/B,QAAgC,EAChC,EAAS;IAET,MAAM,KAAK,GAAG,0BAA0B,CAAC,GAAG,CAAC,CAAC;IAC9C,MAAM,aAAa,GAAG,+BAA+B,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;IACrE,MAAM,QAAQ,GAAG,aAAa;QAC5B,CAAC,CAAC,cAAc,CAAC,KAAK,EAAE,qBAAqB,CAAC,GAAG,CAAC,EAAE,UAAU,EAAE;YAC5D,gBAAgB,EAAE,4BAA4B;YAC9C,KAAK,EAAE,aAAa;SACrB,CAAC;QACJ,CAAC,CAAC,cAAc,CAAC,KAAK,EAAE,qBAAqB,CAAC,GAAG,CAAC,EAAE,UAAU,CAAC,CAAC;IAClE,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,GAAG,+BAA+B,EAAE,OAAO,EAAE,EAAE,CAAC;QAC3E,MAAM,SAAS,GAAG,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QAC9D,MAAM,MAAM,GAAG,SAAS,IAAI,aAAa,IAAI,EAAE,CAAC;QAChD,MAAM,KAAK,GAAG,gCAAgC,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QAC5D,IAAI,KAAK,EAAE,CAAC;YACV,EAAE,CAAC,KAAK,CAAC,WAAW,KAAK,KAAK,KAAK,IAAI,CAAC,CAAC;YACzC,SAAS;QACX,CAAC;QAED,MAAM,YAAY,GAAG,MAAM,oCAAoC,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QAC7E,IAAI,CAAC,YAAY;YAAE,OAAO,MAAM,CAAC;QACjC,EAAE,CAAC,KAAK,CAAC,WAAW,KAAK,KAAK,YAAY,IAAI,CAAC,CAAC;IAClD,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,+BAA+B,CACtC,GAA+B,EAC/B,QAAgC;IAEhC,IAAI,GAAG,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAC9B,OAAO,QAAQ,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC;AAC9E,CAAC;AAED,SAAS,aAAa,CAAC,IAAI,GAAG,IAAI,IAAI,EAAE;IACtC,OAAO,GAAG,IAAI,CAAC,cAAc,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,EAAE,CAAC;AAC/F,CAAC;AAED,SAAS,eAAe,CAAC,IAAI,GAAG,IAAI,IAAI,EAAE;IACxC,OAAO,GAAG,IAAI,CAAC,cAAc,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC;AACpE,CAAC;AAED,SAAS,IAAI,CAAC,KAAa;IACzB,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AACxC,CAAC;AAED,KAAK,UAAU,oCAAoC,CACjD,GAA+B,EAC/B,MAAc;IAEd,IAAI,GAAG,KAAK,YAAY;QAAE,OAAO,IAAI,CAAC;IACtC,IAAI,CAAC;QACH,MAAM,uBAAuB,CAAC,MAAM,CAAC,CAAC;QACtC,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,OAAO,KAAK,EAAE,OAAO,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC;IACzC,CAAC;AACH,CAAC;AAED,SAAS,gCAAgC,CAAC,GAAW,EAAE,MAAc;IACnE,IAAI,CAAC,MAAM;QAAE,OAAO,mBAAmB,CAAC;IAExC,MAAM,WAAW,GAAG,qBAAqB,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IACvD,IAAI,WAAW;QAAE,OAAO,WAAW,CAAC;IAEpC,MAAM,OAAO,GAAG,qBAAqB,CAAC,GAAG,CAAC,CAAC;IAC3C,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC;IAC1B,MAAM,OAAO,GAAG,UAAU,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;IACvE,MAAM,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IAC1C,IAAI,MAAM,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC;IAEhC,MAAM,UAAU,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;IAC7C,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,oBAAoB,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;IAC9E,OAAO,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACtE,CAAC;AAED,KAAK,UAAU,mCAAmC,CAChD,GAAW,EACX,OAAqB,EACrB,EAAS;IAET,MAAM,KAAK,GAAG,0BAA0B,CAAC,GAAG,CAAC,CAAC;IAC9C,MAAM,QAAQ,GAAG,sBAAsB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACxD,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,GAAG,+BAA+B,EAAE,OAAO,EAAE,EAAE,CAAC;QAC3E,MAAM,MAAM,GAAG,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QAC3D,IAAI,CAAC,MAAM;YAAE,OAAO,SAAS,CAAC;QAC9B,MAAM,KAAK,GAAG,gCAAgC,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QAC5D,IAAI,CAAC,KAAK;YAAE,OAAO,MAAM,CAAC;QAC1B,EAAE,CAAC,KAAK,CAAC,WAAW,KAAK,KAAK,KAAK,IAAI,CAAC,CAAC;IAC3C,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,2BAA2B,CAClC,IAA4B;IAE5B,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,qBAAqB,CAAC,EAAE,CAAC;QACrD,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,SAAS;YAAE,SAAS;QACtC,MAAM,KAAK,GAAG,gCAAgC,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QAC/D,IAAI,KAAK;YAAE,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC;IACnC,CAAC;IACD,MAAM,oBAAoB,GAAG,2BAA2B,CAAC,wBAAwB,EAAE,IAAI,CAAC,CAAC;IACzF,IAAI,oBAAoB;QAAE,OAAO,oBAAoB,CAAC;IACtD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,yCAAyC,CAChD,IAA4B;IAE5B,MAAM,MAAM,GAA0C,EAAE,CAAC;IACzD,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,qBAAqB,CAAC,EAAE,CAAC;QACrD,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,SAAS;YAAE,SAAS;QACtC,MAAM,KAAK,GAAG,gCAAgC,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QAC/D,IAAI,KAAK;YAAE,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC;IACzC,CAAC;IAED,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,KAAK,cAAc,CAAC,EAAE,CAAC;QAC1D,MAAM,oBAAoB,GAAG,2BAA2B,CAAC,wBAAwB,EAAE,IAAI,CAAC,CAAC;QACzF,IAAI,oBAAoB;YAAE,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;IAC9D,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,0BAA0B,CAAC,GAAW;IAC7C,QAAQ,GAAG,EAAE,CAAC;QACZ,KAAK,QAAQ;YACX,OAAO,QAAQ,CAAC;QAClB,KAAK,UAAU;YACb,OAAO,UAAU,CAAC;QACpB,KAAK,MAAM;YACT,OAAO,MAAM,CAAC;QAChB,KAAK,IAAI;YACP,OAAO,IAAI,CAAC;QACd,KAAK,YAAY;YACf,OAAO,kBAAkB,CAAC;QAC5B,KAAK,QAAQ;YACX,OAAO,QAAQ,CAAC;QAClB,KAAK,aAAa;YAChB,OAAO,aAAa,CAAC;QACvB,KAAK,0BAA0B;YAC7B,OAAO,0BAA0B,CAAC;QACpC,KAAK,cAAc;YACjB,OAAO,cAAc,CAAC;QACxB,KAAK,OAAO;YACV,OAAO,OAAO,CAAC;QACjB;YACE,OAAO,eAAe,CAAC,GAAG,CAAC,CAAC;IAChC,CAAC;AACH,CAAC;AAED,SAAS,wBAAwB,CAAC,IAA4B;IAC5D,MAAM,OAAO,GAAG,UAAU,CAAC,IAAI,EAAE,qBAAqB,CAAC,CAAC;IACxD,MAAM,OAAO,GAA2B;QACtC,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,EAAE,EAAE,OAAO,CAAC,EAAE;QACd,QAAQ,EAAE,OAAO,CAAC,QAA8C;QAChE,UAAU,EAAE,OAAO,CAAC,UAAU;KAC/B,CAAC;IAEF,KAAK,MAAM,GAAG,IAAI,CAAC,cAAc,EAAE,aAAa,EAAE,0BAA0B,CAAU,EAAE,CAAC;QACvF,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,SAAS;YAAE,OAAO,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAC9D,CAAC;IACD,KAAK,MAAM,GAAG,IAAI;QAChB,WAAW;QACX,OAAO;QACP,aAAa;QACb,UAAU;QACV,MAAM;QACN,MAAM;QACN,OAAO;QACP,YAAY;KACJ,EAAE,CAAC;QACX,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,SAAS;YAAE,OAAO,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAC9D,CAAC;IACD,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QACjC,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC,MAA0C,CAAC;IACtE,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,sBAAsB,CAAC,KAAa,EAAE,OAAqB;IAClE,OAAO,cAAc,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;AACpD,CAAC;AAED,SAAS,cAAc,CACrB,KAAa,EACb,OAAqB,EACrB,WAAoC,EACpC,eAA6D;IAE7D,MAAM,KAAK,GAAa,CAAC,WAAW,CAAC,CAAC;IACtC,MAAM,UAAU,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;IAC7C,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC;QAAE,KAAK,CAAC,IAAI,CAAC,YAAY,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC1E,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,MAAM,QAAQ,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;QACzC,IAAI,QAAQ,IAAI,QAAQ,KAAK,QAAQ;YAAE,KAAK,CAAC,IAAI,CAAC,SAAS,QAAQ,EAAE,CAAC,CAAC;IACzE,CAAC;IAED,MAAM,YAAY,GAAG,eAAe,EAAE,KAAK,IAAI,gBAAgB,CAAC,OAAO,CAAC,CAAC;IACzE,IAAI,YAAY,KAAK,IAAI;QAAE,KAAK,CAAC,IAAI,CAAC,YAAY,YAAY,EAAE,CAAC,CAAC;IAElE,MAAM,IAAI,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;IACpC,IAAI,eAAe,EAAE,CAAC;QACpB,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,gBAAgB,CAAC,CAAC;IAC/C,CAAC;SAAM,IAAI,WAAW,KAAK,UAAU,EAAE,CAAC;QACtC,KAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;IACpC,CAAC;IAED,MAAM,WAAW,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;IACtD,OAAO,GAAG,WAAW,GAAG,KAAK,KAAK,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;AAC1D,CAAC;AAED,SAAS,gBAAgB,CAAC,OAAqB;IAC7C,MAAM,UAAU,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC;IAC/C,IAAI,UAAU,KAAK,SAAS;QAAE,OAAO,MAAM,CAAC,UAAU,CAAC,CAAC;IAExD,MAAM,kBAAkB,GAAG,6BAA6B,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC;IACrF,OAAO,kBAAkB,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,IAAI,CAAC;AACxD,CAAC;AAED,SAAS,kBAAkB,CAAC,CAAe;IACzC,MAAM,GAAG,GAAI,CAAS,CAAC,IAAI,EAAE,GAAG,IAAK,CAAS,CAAC,IAAI,IAAI,EAAE,CAAC;IAC1D,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,QAAQ,IAAI,EAAE,CAAC;IAC5C,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvB,OAAO,OAAO,GAAG,CAAC,YAAY,KAAK,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC;IACxF,CAAC;IACD,IAAI,CAAC,IAAI,KAAK,UAAU,IAAI,IAAI,KAAK,SAAS,CAAC,IAAI,GAAG,CAAC,SAAS,EAAE,CAAC;QACjE,OAAO,kBAAkB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAC3C,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,6BAA6B,CAAC,WAAmB;IACxD,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,oDAAoD,CAAC,CAAC;IACtF,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IACxB,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;AACrD,CAAC;AAED,SAAS,aAAa,CAAC,OAAqB;IAC1C,MAAM,WAAW,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;IAC/C,IAAI,CAAC,WAAW;QAAE,OAAO,IAAI,CAAC;IAE9B,MAAM,IAAI,GAAG,WAAW;SACrB,OAAO,CAAC,+CAA+C,EAAE,EAAE,CAAC;SAC5D,OAAO,CAAC,sDAAsD,EAAE,EAAE,CAAC;SACnE,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;SACpB,IAAI,EAAE,CAAC;IAEV,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IACvB,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,2BAA2B;IAClC,OAAO,CACL,KAAK,CAAC,KAAK,KAAK,IAAI;QACpB,MAAM,CAAC,KAAK,KAAK,IAAI;QACrB,OAAO,KAAK,CAAC,UAAU,KAAK,UAAU;QACtC,OAAO,CAAC,GAAG,CAAC,EAAE,KAAK,MAAM,CAC1B,CAAC;AACJ,CAAC;AAED,SAAS,sBAAsB,CAAC,OAA8B;IAC5D,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,IAAI,aAAa,GAAG,CAAC,CAAC;QACtB,IAAI,KAAK,GAAG,EAAE,CAAC;QACf,IAAI,KAAK,GAAG,EAAE,CAAC;QACf,IAAI,MAAM,GAAG,KAAK,CAAC;QACnB,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC;QAE3B,MAAM,MAAM,GAAG,GAAG,EAAE;YAClB,MAAM,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC;YACvC,MAAM,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;YACnC,KAAK,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;gBAChD,MAAM,MAAM,GAAG,KAAK,KAAK,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;gBACnD,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,IAAI,KAAK,GAAG,CAAC,KAAK,MAAM,CAAC,IAAI,MAAM,MAAM,CAAC,WAAW,IAAI,CAAC,CAAC;YACnF,CAAC;YACD,MAAM,CAAC,KAAK,CAAC,8CAA8C,CAAC,CAAC;YAC7D,MAAM,CAAC,KAAK,CAAC,kBAAkB,KAAK,EAAE,CAAC,CAAC;YACxC,IAAI,KAAK;gBAAE,MAAM,CAAC,KAAK,CAAC,KAAK,KAAK,EAAE,CAAC,CAAC;QACxC,CAAC,CAAC;QAEF,MAAM,OAAO,GAAG,GAAG,EAAE;YACnB,IAAI,MAAM;gBAAE,OAAO;YACnB,MAAM,GAAG,IAAI,CAAC;YACd,KAAK,CAAC,GAAG,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;YAClC,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;YAClC,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QAC9B,CAAC,CAAC;QAEF,MAAM,MAAM,GAAG,CAAC,QAAuB,EAAE,EAAE;YACzC,OAAO,EAAE,CAAC;YACV,OAAO,CAAC,QAAQ,CAAC,CAAC;QACpB,CAAC,CAAC;QAEF,MAAM,uBAAuB,GAAG,GAAG,EAAE;YACnC,MAAM,QAAQ,GAAG,kBAAkB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;YACpD,IAAI,CAAC,QAAQ;gBAAE,OAAO;YACtB,aAAa,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC;QAC1E,CAAC,CAAC;QAEF,MAAM,UAAU,GAAG,CACjB,KAAa,EACb,GAAyD,EACzD,EAAE;YACF,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,KAAK,GAAG,EAAE,CAAC;gBACjC,MAAM,CAAC,IAAI,CAAC,CAAC;gBACb,OAAO;YACT,CAAC;YACD,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAC1B,MAAM,CAAC,IAAI,CAAC,CAAC;gBACb,OAAO;YACT,CAAC;YACD,IAAI,GAAG,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;gBACtB,aAAa,GAAG,aAAa,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,aAAa,GAAG,CAAC,CAAC;gBAC7E,KAAK,GAAG,EAAE,CAAC;gBACX,KAAK,GAAG,EAAE,CAAC;gBACX,MAAM,EAAE,CAAC;gBACT,OAAO;YACT,CAAC;YACD,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;gBACxB,aAAa,GAAG,aAAa,KAAK,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,GAAG,CAAC,CAAC;gBAC7E,KAAK,GAAG,EAAE,CAAC;gBACX,KAAK,GAAG,EAAE,CAAC;gBACX,MAAM,EAAE,CAAC;gBACT,OAAO;YACT,CAAC;YACD,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,IAAI,GAAG,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;gBAClD,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,EAAE;oBAC3B,CAAC,CAAC,kBAAkB,CAAC,KAAK,EAAE,OAAO,CAAC;oBACpC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC;gBAChC,IAAI,QAAQ,EAAE,CAAC;oBACb,MAAM,CAAC,QAAQ,CAAC,CAAC;oBACjB,OAAO;gBACT,CAAC;gBACD,KAAK,GAAG,yBAAyB,CAAC;gBAClC,MAAM,EAAE,CAAC;gBACT,OAAO;YACT,CAAC;YACD,IAAI,GAAG,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;gBAC7B,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;gBAC3B,KAAK,GAAG,EAAE,CAAC;gBACX,uBAAuB,EAAE,CAAC;gBAC1B,MAAM,EAAE,CAAC;gBACT,OAAO;YACT,CAAC;YACD,IAAI,KAAK,IAAI,KAAK,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,QAAQ,KAAK,MAAM,EAAE,CAAC;gBAClE,KAAK,IAAI,KAAK,CAAC;gBACf,KAAK,GAAG,EAAE,CAAC;gBACX,uBAAuB,EAAE,CAAC;gBAC1B,MAAM,EAAE,CAAC;YACX,CAAC;QACH,CAAC,CAAC;QAEF,kBAAkB,CAAC,KAAK,CAAC,CAAC;QAC1B,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACvB,KAAK,CAAC,MAAM,EAAE,CAAC;QACf,KAAK,CAAC,EAAE,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;QACjC,MAAM,EAAE,CAAC;IACX,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,IAAI;IAClB,MAAM,EAAE,GAAG,eAAe,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;IAC9C,MAAM,WAAW,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,IAAI,OAAO,CAAC,GAAG,CAAC,EAAE,KAAK,MAAM,CAAC;IAC7F,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;QAC5B,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC;QAC5C,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC;QAC/C,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAC3C,UAAU,EAAE,2BAA2B,EAAE,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,SAAS;QAC9E,aAAa,EAAE,WAAW;QAC1B,IAAI,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;KACnC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC;AAC/B,CAAC"}
@@ -6,5 +6,6 @@ export interface RunApiToolOptions {
6
6
  args: Record<string, any>;
7
7
  request: ApiToolRequestFn;
8
8
  }
9
+ export declare function validateFilterExpression(filterExpr: string | undefined): string | null;
9
10
  export declare function runApiTool(options: RunApiToolOptions): Promise<any>;
10
11
  //# sourceMappingURL=tool-runner.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tool-runner.d.ts","sourceRoot":"","sources":["../src/tool-runner.ts"],"names":[],"mappings":"AASA,MAAM,MAAM,gBAAgB,GAAG,CAC7B,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KACxB,OAAO,CAAC,GAAG,CAAC,CAAC;AAElB,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC1B,OAAO,EAAE,gBAAgB,CAAC;CAC3B;AAED,wBAAsB,UAAU,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,GAAG,CAAC,CA4BzE"}
1
+ {"version":3,"file":"tool-runner.d.ts","sourceRoot":"","sources":["../src/tool-runner.ts"],"names":[],"mappings":"AASA,MAAM,MAAM,gBAAgB,GAAG,CAC7B,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KACxB,OAAO,CAAC,GAAG,CAAC,CAAC;AAElB,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC1B,OAAO,EAAE,gBAAgB,CAAC;CAC3B;AAID,wBAAgB,wBAAwB,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,IAAI,CAQtF;AAED,wBAAsB,UAAU,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,GAAG,CAAC,CAgDzE"}
@@ -2,8 +2,29 @@ import jsonata from "jsonata";
2
2
  import { validateHistoryIntervalArgs } from "./history-validation.js";
3
3
  import { storeResponse, validateResponseStorageTarget, } from "./response-storage.js";
4
4
  import { validateSymbolLikeArgs } from "./symbol-validation.js";
5
+ const DEFAULT_FILTER_ORIGINAL_OUTPUT_DIR = "./.tmp/insight";
6
+ export function validateFilterExpression(filterExpr) {
7
+ if (!filterExpr?.trim())
8
+ return null;
9
+ try {
10
+ jsonata(filterExpr);
11
+ return null;
12
+ }
13
+ catch (error) {
14
+ return error?.message ?? String(error);
15
+ }
16
+ }
5
17
  export async function runApiTool(options) {
6
18
  const { filter: filterExpr, store, output_file, output_dir, ...apiArgs } = options.args;
19
+ let filter = null;
20
+ if (filterExpr && typeof filterExpr === "string") {
21
+ try {
22
+ filter = jsonata(filterExpr);
23
+ }
24
+ catch (error) {
25
+ throw new Error(`Invalid filter: ${error?.message ?? String(error)}`);
26
+ }
27
+ }
7
28
  const storeOptions = {
8
29
  toolName: options.toolName,
9
30
  store: store,
@@ -22,10 +43,50 @@ export async function runApiTool(options) {
22
43
  await validateResponseStorageTarget(storeOptions);
23
44
  const result = await options.request(options.method, options.pathTemplate, apiArgs);
24
45
  const stored = await storeResponse(result, storeOptions);
25
- if (filterExpr && typeof filterExpr === "string") {
26
- const expr = jsonata(filterExpr);
27
- return await expr.evaluate(result);
46
+ if (filter) {
47
+ const filtered = await filter.evaluate(result);
48
+ if (!isEmptyFilteredResult(filtered))
49
+ return filtered;
50
+ const original = stored ?? (await tryStoreEmptyFilterOriginalResponse(result, options.toolName, apiArgs));
51
+ const emptyFiltered = filtered === undefined ? null : filtered;
52
+ if (!original)
53
+ return emptyFiltered;
54
+ return {
55
+ filtered: emptyFiltered,
56
+ message: `Filtered data is empty. Original response stored at ${original.stored_file}.`,
57
+ original_response_file: original.stored_file,
58
+ };
28
59
  }
29
60
  return stored ?? result;
30
61
  }
62
+ function isEmptyFilteredResult(value) {
63
+ if (value === null || value === undefined)
64
+ return true;
65
+ if (Array.isArray(value))
66
+ return value.length === 0;
67
+ if (typeof value === "string")
68
+ return value.length === 0;
69
+ if (typeof value === "object")
70
+ return Object.keys(value).length === 0;
71
+ return false;
72
+ }
73
+ async function tryStoreEmptyFilterOriginalResponse(response, toolName, requestParams) {
74
+ try {
75
+ return await storeEmptyFilterOriginalResponse(response, toolName, requestParams);
76
+ }
77
+ catch {
78
+ return null;
79
+ }
80
+ }
81
+ async function storeEmptyFilterOriginalResponse(response, toolName, requestParams) {
82
+ const stored = await storeResponse(response, {
83
+ toolName,
84
+ store: "json",
85
+ output_dir: DEFAULT_FILTER_ORIGINAL_OUTPUT_DIR,
86
+ requestParams,
87
+ });
88
+ if (!stored)
89
+ throw new Error("failed to store original response for empty filtered data");
90
+ return stored;
91
+ }
31
92
  //# sourceMappingURL=tool-runner.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tool-runner.js","sourceRoot":"","sources":["../src/tool-runner.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,EAAE,2BAA2B,EAAE,MAAM,yBAAyB,CAAC;AACtE,OAAO,EAEL,aAAa,EACb,6BAA6B,GAC9B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAgBhE,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,OAA0B;IACzD,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,GAAG,OAAO,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IACxF,MAAM,YAAY,GAAG;QACnB,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,KAAK,EAAE,KAAwC;QAC/C,WAAW;QACX,UAAU;QACV,aAAa,EAAE,OAAO;KACvB,CAAC;IAEF,MAAM,qBAAqB,GAAG,sBAAsB,CAAC,OAAO,CAAC,CAAC;IAC9D,IAAI,qBAAqB,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CAAC,WAAW,qBAAqB,CAAC,GAAG,KAAK,qBAAqB,CAAC,KAAK,EAAE,CAAC,CAAC;IAC1F,CAAC;IACD,MAAM,oBAAoB,GAAG,2BAA2B,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IACpF,IAAI,oBAAoB,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CAAC,WAAW,oBAAoB,CAAC,GAAG,KAAK,oBAAoB,CAAC,KAAK,EAAE,CAAC,CAAC;IACxF,CAAC;IACD,MAAM,6BAA6B,CAAC,YAAY,CAAC,CAAC;IAClD,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;IACpF,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IAEzD,IAAI,UAAU,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE,CAAC;QACjD,MAAM,IAAI,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;QACjC,OAAO,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IACrC,CAAC;IAED,OAAO,MAAM,IAAI,MAAM,CAAC;AAC1B,CAAC"}
1
+ {"version":3,"file":"tool-runner.js","sourceRoot":"","sources":["../src/tool-runner.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@insightsentry/mcp",
3
3
  "mcpName": "io.github.rezmeplxrf/insightsentry_mcp",
4
- "version": "1.4.14",
4
+ "version": "1.4.15",
5
5
  "description": "MCP server for InsightSentry financial data API - provides AI-accessible tools for market data, screening, options, and comprehensive API documentation resources",
6
6
  "type": "module",
7
7
  "main": "dist/index.js",