@google/gemini-cli-core 0.10.0-nightly.20250926.1487841d → 0.10.0-nightly.20251009.cd354aeb

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 (246) hide show
  1. package/README.md +108 -71
  2. package/dist/index.d.ts +2 -0
  3. package/dist/index.js +1 -0
  4. package/dist/index.js.map +1 -1
  5. package/dist/src/agents/codebase-investigator.d.ts +46 -0
  6. package/dist/src/agents/codebase-investigator.js +136 -0
  7. package/dist/src/agents/codebase-investigator.js.map +1 -0
  8. package/dist/src/agents/executor.d.ts +92 -0
  9. package/dist/src/agents/executor.js +580 -0
  10. package/dist/src/agents/executor.js.map +1 -0
  11. package/dist/src/agents/executor.test.d.ts +6 -0
  12. package/dist/src/agents/executor.test.js +595 -0
  13. package/dist/src/agents/executor.test.js.map +1 -0
  14. package/dist/src/agents/invocation.d.ts +46 -0
  15. package/dist/src/agents/invocation.js +102 -0
  16. package/dist/src/agents/invocation.js.map +1 -0
  17. package/dist/src/agents/invocation.test.d.ts +6 -0
  18. package/dist/src/agents/invocation.test.js +215 -0
  19. package/dist/src/agents/invocation.test.js.map +1 -0
  20. package/dist/src/agents/registry.d.ts +36 -0
  21. package/dist/src/agents/registry.js +60 -0
  22. package/dist/src/agents/registry.js.map +1 -0
  23. package/dist/src/agents/registry.test.d.ts +6 -0
  24. package/dist/src/agents/registry.test.js +146 -0
  25. package/dist/src/agents/registry.test.js.map +1 -0
  26. package/dist/src/agents/schema-utils.d.ts +39 -0
  27. package/dist/src/agents/schema-utils.js +57 -0
  28. package/dist/src/agents/schema-utils.js.map +1 -0
  29. package/dist/src/agents/schema-utils.test.d.ts +6 -0
  30. package/dist/src/agents/schema-utils.test.js +144 -0
  31. package/dist/src/agents/schema-utils.test.js.map +1 -0
  32. package/dist/src/agents/subagent-tool-wrapper.d.ts +38 -0
  33. package/dist/src/agents/subagent-tool-wrapper.js +48 -0
  34. package/dist/src/agents/subagent-tool-wrapper.js.map +1 -0
  35. package/dist/src/agents/subagent-tool-wrapper.test.d.ts +6 -0
  36. package/dist/src/agents/subagent-tool-wrapper.test.js +112 -0
  37. package/dist/src/agents/subagent-tool-wrapper.test.js.map +1 -0
  38. package/dist/src/agents/types.d.ts +145 -0
  39. package/dist/src/agents/types.js +18 -0
  40. package/dist/src/agents/types.js.map +1 -0
  41. package/dist/src/agents/utils.d.ts +15 -0
  42. package/dist/src/agents/utils.js +29 -0
  43. package/dist/src/agents/utils.js.map +1 -0
  44. package/dist/src/agents/utils.test.d.ts +6 -0
  45. package/dist/src/agents/utils.test.js +87 -0
  46. package/dist/src/agents/utils.test.js.map +1 -0
  47. package/dist/src/code_assist/setup.js +4 -2
  48. package/dist/src/code_assist/setup.js.map +1 -1
  49. package/dist/src/config/config.d.ts +28 -5
  50. package/dist/src/config/config.js +61 -7
  51. package/dist/src/config/config.js.map +1 -1
  52. package/dist/src/config/config.test.js +63 -0
  53. package/dist/src/config/config.test.js.map +1 -1
  54. package/dist/src/core/baseLlmClient.js +19 -21
  55. package/dist/src/core/baseLlmClient.js.map +1 -1
  56. package/dist/src/core/baseLlmClient.test.js +57 -17
  57. package/dist/src/core/baseLlmClient.test.js.map +1 -1
  58. package/dist/src/core/client.d.ts +2 -0
  59. package/dist/src/core/client.js +52 -43
  60. package/dist/src/core/client.js.map +1 -1
  61. package/dist/src/core/client.test.js +300 -95
  62. package/dist/src/core/client.test.js.map +1 -1
  63. package/dist/src/core/contentGenerator.js +3 -1
  64. package/dist/src/core/contentGenerator.js.map +1 -1
  65. package/dist/src/core/coreToolScheduler.test.js +33 -23
  66. package/dist/src/core/coreToolScheduler.test.js.map +1 -1
  67. package/dist/src/core/geminiChat.d.ts +6 -0
  68. package/dist/src/core/geminiChat.js +21 -18
  69. package/dist/src/core/geminiChat.js.map +1 -1
  70. package/dist/src/core/geminiChat.test.js +20 -19
  71. package/dist/src/core/geminiChat.test.js.map +1 -1
  72. package/dist/src/core/nonInteractiveToolExecutor.test.js +11 -11
  73. package/dist/src/core/nonInteractiveToolExecutor.test.js.map +1 -1
  74. package/dist/src/core/prompts.d.ts +2 -1
  75. package/dist/src/core/prompts.js +88 -15
  76. package/dist/src/core/prompts.js.map +1 -1
  77. package/dist/src/core/prompts.test.js +73 -24
  78. package/dist/src/core/prompts.test.js.map +1 -1
  79. package/dist/src/core/turn.d.ts +10 -2
  80. package/dist/src/core/turn.js +6 -1
  81. package/dist/src/core/turn.js.map +1 -1
  82. package/dist/src/core/turn.test.js +1 -1
  83. package/dist/src/core/turn.test.js.map +1 -1
  84. package/dist/src/generated/git-commit.d.ts +2 -2
  85. package/dist/src/generated/git-commit.js +2 -2
  86. package/dist/src/ide/detect-ide.d.ts +1 -0
  87. package/dist/src/ide/detect-ide.js +4 -1
  88. package/dist/src/ide/detect-ide.js.map +1 -1
  89. package/dist/src/ide/detect-ide.test.js +11 -0
  90. package/dist/src/ide/detect-ide.test.js.map +1 -1
  91. package/dist/src/ide/ide-client.js +3 -3
  92. package/dist/src/ide/ide-client.test.js +4 -4
  93. package/dist/src/ide/ide-installer.js +1 -1
  94. package/dist/src/ide/ide-installer.js.map +1 -1
  95. package/dist/src/ide/ide-installer.test.js +13 -1
  96. package/dist/src/ide/ide-installer.test.js.map +1 -1
  97. package/dist/src/index.d.ts +1 -0
  98. package/dist/src/index.js +1 -0
  99. package/dist/src/index.js.map +1 -1
  100. package/dist/src/mcp/sa-impersonation-provider.d.ts +33 -0
  101. package/dist/src/mcp/sa-impersonation-provider.js +130 -0
  102. package/dist/src/mcp/sa-impersonation-provider.js.map +1 -0
  103. package/dist/src/mcp/sa-impersonation-provider.test.d.ts +6 -0
  104. package/dist/src/mcp/sa-impersonation-provider.test.js +117 -0
  105. package/dist/src/mcp/sa-impersonation-provider.test.js.map +1 -0
  106. package/dist/src/services/chatRecordingService.d.ts +2 -1
  107. package/dist/src/services/chatRecordingService.js +2 -1
  108. package/dist/src/services/chatRecordingService.js.map +1 -1
  109. package/dist/src/services/fileSystemService.d.ts +9 -0
  110. package/dist/src/services/fileSystemService.js +11 -0
  111. package/dist/src/services/fileSystemService.js.map +1 -1
  112. package/dist/src/services/shellExecutionService.d.ts +2 -0
  113. package/dist/src/services/shellExecutionService.js +48 -7
  114. package/dist/src/services/shellExecutionService.js.map +1 -1
  115. package/dist/src/services/shellExecutionService.test.js +13 -4
  116. package/dist/src/services/shellExecutionService.test.js.map +1 -1
  117. package/dist/src/telemetry/clearcut-logger/clearcut-logger.d.ts +12 -2
  118. package/dist/src/telemetry/clearcut-logger/clearcut-logger.js +79 -9
  119. package/dist/src/telemetry/clearcut-logger/clearcut-logger.js.map +1 -1
  120. package/dist/src/telemetry/clearcut-logger/clearcut-logger.test.js +99 -1
  121. package/dist/src/telemetry/clearcut-logger/clearcut-logger.test.js.map +1 -1
  122. package/dist/src/telemetry/clearcut-logger/event-metadata-key.d.ts +11 -3
  123. package/dist/src/telemetry/clearcut-logger/event-metadata-key.js +27 -4
  124. package/dist/src/telemetry/clearcut-logger/event-metadata-key.js.map +1 -1
  125. package/dist/src/telemetry/constants.d.ts +6 -24
  126. package/dist/src/telemetry/constants.js +7 -25
  127. package/dist/src/telemetry/constants.js.map +1 -1
  128. package/dist/src/telemetry/index.d.ts +5 -3
  129. package/dist/src/telemetry/index.js +10 -3
  130. package/dist/src/telemetry/index.js.map +1 -1
  131. package/dist/src/telemetry/loggers.d.ts +6 -1
  132. package/dist/src/telemetry/loggers.js +132 -12
  133. package/dist/src/telemetry/loggers.js.map +1 -1
  134. package/dist/src/telemetry/loggers.test.circular.js +3 -3
  135. package/dist/src/telemetry/loggers.test.circular.js.map +1 -1
  136. package/dist/src/telemetry/loggers.test.js +160 -13
  137. package/dist/src/telemetry/loggers.test.js.map +1 -1
  138. package/dist/src/telemetry/memory-monitor.d.ts +149 -0
  139. package/dist/src/telemetry/memory-monitor.js +335 -0
  140. package/dist/src/telemetry/memory-monitor.js.map +1 -0
  141. package/dist/src/telemetry/memory-monitor.test.d.ts +6 -0
  142. package/dist/src/telemetry/memory-monitor.test.js +472 -0
  143. package/dist/src/telemetry/memory-monitor.test.js.map +1 -0
  144. package/dist/src/telemetry/metrics.d.ts +392 -20
  145. package/dist/src/telemetry/metrics.js +463 -235
  146. package/dist/src/telemetry/metrics.js.map +1 -1
  147. package/dist/src/telemetry/metrics.test.js +391 -55
  148. package/dist/src/telemetry/metrics.test.js.map +1 -1
  149. package/dist/src/telemetry/types.d.ts +37 -1
  150. package/dist/src/telemetry/types.js +60 -0
  151. package/dist/src/telemetry/types.js.map +1 -1
  152. package/dist/src/telemetry/uiTelemetry.test.js +2 -2
  153. package/dist/src/telemetry/uiTelemetry.test.js.map +1 -1
  154. package/dist/src/test-utils/mock-tool.d.ts +28 -3
  155. package/dist/src/test-utils/mock-tool.js +71 -1
  156. package/dist/src/test-utils/mock-tool.js.map +1 -1
  157. package/dist/src/tools/glob.js +2 -1
  158. package/dist/src/tools/glob.js.map +1 -1
  159. package/dist/src/tools/mcp-client.d.ts +3 -2
  160. package/dist/src/tools/mcp-client.js +44 -30
  161. package/dist/src/tools/mcp-client.js.map +1 -1
  162. package/dist/src/tools/mcp-client.test.js +168 -5
  163. package/dist/src/tools/mcp-client.test.js.map +1 -1
  164. package/dist/src/tools/shell.js +2 -2
  165. package/dist/src/tools/shell.js.map +1 -1
  166. package/dist/src/tools/shell.test.js +1 -1
  167. package/dist/src/tools/shell.test.js.map +1 -1
  168. package/dist/src/tools/smart-edit.d.ts +20 -1
  169. package/dist/src/tools/smart-edit.js +149 -9
  170. package/dist/src/tools/smart-edit.js.map +1 -1
  171. package/dist/src/tools/smart-edit.test.js +150 -29
  172. package/dist/src/tools/smart-edit.test.js.map +1 -1
  173. package/dist/src/tools/tool-names.d.ts +8 -0
  174. package/dist/src/tools/tool-names.js +17 -0
  175. package/dist/src/tools/tool-names.js.map +1 -0
  176. package/dist/src/tools/tool-registry.test.js +10 -10
  177. package/dist/src/tools/tool-registry.test.js.map +1 -1
  178. package/dist/src/tools/web-fetch.js +3 -0
  179. package/dist/src/tools/web-fetch.js.map +1 -1
  180. package/dist/src/tools/web-fetch.test.js +44 -0
  181. package/dist/src/tools/web-fetch.test.js.map +1 -1
  182. package/dist/src/tools/write-file.js +2 -1
  183. package/dist/src/tools/write-file.js.map +1 -1
  184. package/dist/src/tools/write-todos.d.ts +1 -1
  185. package/dist/src/tools/write-todos.js +4 -3
  186. package/dist/src/tools/write-todos.js.map +1 -1
  187. package/dist/src/utils/editCorrector.js +2 -2
  188. package/dist/src/utils/editCorrector.js.map +1 -1
  189. package/dist/src/utils/editor.js +1 -0
  190. package/dist/src/utils/editor.js.map +1 -1
  191. package/dist/src/utils/editor.test.js +1 -0
  192. package/dist/src/utils/editor.test.js.map +1 -1
  193. package/dist/src/utils/errorParsing.d.ts +1 -1
  194. package/dist/src/utils/errorParsing.js +5 -33
  195. package/dist/src/utils/errorParsing.js.map +1 -1
  196. package/dist/src/utils/errorParsing.test.js +0 -88
  197. package/dist/src/utils/errorParsing.test.js.map +1 -1
  198. package/dist/src/utils/flashFallback.test.js +26 -45
  199. package/dist/src/utils/flashFallback.test.js.map +1 -1
  200. package/dist/src/utils/formatters.d.ts +1 -0
  201. package/dist/src/utils/formatters.js +2 -1
  202. package/dist/src/utils/formatters.js.map +1 -1
  203. package/dist/src/utils/formatters.test.d.ts +6 -0
  204. package/dist/src/utils/formatters.test.js +26 -0
  205. package/dist/src/utils/formatters.test.js.map +1 -0
  206. package/dist/src/utils/googleErrors.d.ts +104 -0
  207. package/dist/src/utils/googleErrors.js +108 -0
  208. package/dist/src/utils/googleErrors.js.map +1 -0
  209. package/dist/src/utils/googleErrors.test.d.ts +6 -0
  210. package/dist/src/utils/googleErrors.test.js +212 -0
  211. package/dist/src/utils/googleErrors.test.js.map +1 -0
  212. package/dist/src/utils/googleQuotaErrors.d.ts +35 -0
  213. package/dist/src/utils/googleQuotaErrors.js +108 -0
  214. package/dist/src/utils/googleQuotaErrors.js.map +1 -0
  215. package/dist/src/utils/googleQuotaErrors.test.d.ts +6 -0
  216. package/dist/src/utils/googleQuotaErrors.test.js +189 -0
  217. package/dist/src/utils/googleQuotaErrors.test.js.map +1 -0
  218. package/dist/src/utils/llm-edit-fixer.js +13 -4
  219. package/dist/src/utils/llm-edit-fixer.js.map +1 -1
  220. package/dist/src/utils/llm-edit-fixer.test.js +81 -0
  221. package/dist/src/utils/llm-edit-fixer.test.js.map +1 -1
  222. package/dist/src/utils/memoryDiscovery.d.ts +1 -0
  223. package/dist/src/utils/memoryDiscovery.js +2 -1
  224. package/dist/src/utils/memoryDiscovery.js.map +1 -1
  225. package/dist/src/utils/memoryDiscovery.test.js +99 -21
  226. package/dist/src/utils/memoryDiscovery.test.js.map +1 -1
  227. package/dist/src/utils/memoryImportProcessor.js +13 -20
  228. package/dist/src/utils/memoryImportProcessor.js.map +1 -1
  229. package/dist/src/utils/memoryImportProcessor.test.js +14 -0
  230. package/dist/src/utils/memoryImportProcessor.test.js.map +1 -1
  231. package/dist/src/utils/quotaErrorDetection.d.ts +0 -2
  232. package/dist/src/utils/quotaErrorDetection.js +0 -46
  233. package/dist/src/utils/quotaErrorDetection.js.map +1 -1
  234. package/dist/src/utils/retry.d.ts +3 -1
  235. package/dist/src/utils/retry.js +53 -161
  236. package/dist/src/utils/retry.js.map +1 -1
  237. package/dist/src/utils/retry.test.js +87 -146
  238. package/dist/src/utils/retry.test.js.map +1 -1
  239. package/dist/src/utils/terminalSerializer.d.ts +1 -4
  240. package/dist/src/utils/terminalSerializer.js +3 -3
  241. package/dist/src/utils/terminalSerializer.js.map +1 -1
  242. package/dist/tsconfig.tsbuildinfo +1 -1
  243. package/package.json +1 -1
  244. package/dist/src/test-utils/tools.d.ts +0 -45
  245. package/dist/src/test-utils/tools.js +0 -105
  246. package/dist/src/test-utils/tools.js.map +0 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@google/gemini-cli-core",
3
- "version": "0.10.0-nightly.20250926.1487841d",
3
+ "version": "0.10.0-nightly.20251009.cd354aeb",
4
4
  "description": "Gemini CLI Core",
5
5
  "repository": {
6
6
  "type": "git",
@@ -1,45 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright 2025 Google LLC
4
- * SPDX-License-Identifier: Apache-2.0
5
- */
6
- import type { ToolCallConfirmationDetails, ToolInvocation, ToolResult } from '../tools/tools.js';
7
- import { BaseDeclarativeTool, BaseToolInvocation } from '../tools/tools.js';
8
- import type { ModifiableDeclarativeTool, ModifyContext } from '../tools/modifiable-tool.js';
9
- /**
10
- * A highly configurable mock tool for testing purposes.
11
- */
12
- export declare class MockTool extends BaseDeclarativeTool<{
13
- [key: string]: unknown;
14
- }, ToolResult> {
15
- executeFn: import("vitest").Mock<(...args: any[]) => any>;
16
- shouldConfirm: boolean;
17
- constructor(name?: string, displayName?: string, description?: string, params?: {
18
- type: string;
19
- properties: {
20
- param: {
21
- type: string;
22
- };
23
- };
24
- });
25
- protected createInvocation(params: {
26
- [key: string]: unknown;
27
- }): ToolInvocation<{
28
- [key: string]: unknown;
29
- }, ToolResult>;
30
- }
31
- export declare class MockModifiableToolInvocation extends BaseToolInvocation<Record<string, unknown>, ToolResult> {
32
- private readonly tool;
33
- constructor(tool: MockModifiableTool, params: Record<string, unknown>);
34
- execute(_abortSignal: AbortSignal): Promise<ToolResult>;
35
- shouldConfirmExecute(_abortSignal: AbortSignal): Promise<ToolCallConfirmationDetails | false>;
36
- getDescription(): string;
37
- }
38
- /**
39
- * Configurable mock modifiable tool for testing.
40
- */
41
- export declare class MockModifiableTool extends MockTool implements ModifiableDeclarativeTool<Record<string, unknown>> {
42
- constructor(name?: string);
43
- getModifyContext(_abortSignal: AbortSignal): ModifyContext<Record<string, unknown>>;
44
- protected createInvocation(params: Record<string, unknown>): ToolInvocation<Record<string, unknown>, ToolResult>;
45
- }
@@ -1,105 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright 2025 Google LLC
4
- * SPDX-License-Identifier: Apache-2.0
5
- */
6
- import { vi } from 'vitest';
7
- import { BaseDeclarativeTool, BaseToolInvocation, Kind, } from '../tools/tools.js';
8
- class MockToolInvocation extends BaseToolInvocation {
9
- tool;
10
- constructor(tool, params) {
11
- super(params);
12
- this.tool = tool;
13
- }
14
- async execute(_abortSignal) {
15
- const result = this.tool.executeFn(this.params);
16
- return (result ?? {
17
- llmContent: `Tool ${this.tool.name} executed successfully.`,
18
- returnDisplay: `Tool ${this.tool.name} executed successfully.`,
19
- });
20
- }
21
- async shouldConfirmExecute(_abortSignal) {
22
- if (this.tool.shouldConfirm) {
23
- return {
24
- type: 'exec',
25
- title: `Confirm ${this.tool.displayName}`,
26
- command: this.tool.name,
27
- rootCommand: this.tool.name,
28
- onConfirm: async () => { },
29
- };
30
- }
31
- return false;
32
- }
33
- getDescription() {
34
- return `A mock tool invocation for ${this.tool.name}`;
35
- }
36
- }
37
- /**
38
- * A highly configurable mock tool for testing purposes.
39
- */
40
- export class MockTool extends BaseDeclarativeTool {
41
- executeFn = vi.fn();
42
- shouldConfirm = false;
43
- constructor(name = 'mock-tool', displayName, description = 'A mock tool for testing.', params = {
44
- type: 'object',
45
- properties: { param: { type: 'string' } },
46
- }) {
47
- super(name, displayName ?? name, description, Kind.Other, params);
48
- }
49
- createInvocation(params) {
50
- return new MockToolInvocation(this, params);
51
- }
52
- }
53
- export class MockModifiableToolInvocation extends BaseToolInvocation {
54
- tool;
55
- constructor(tool, params) {
56
- super(params);
57
- this.tool = tool;
58
- }
59
- async execute(_abortSignal) {
60
- const result = this.tool.executeFn(this.params);
61
- return (result ?? {
62
- llmContent: `Tool ${this.tool.name} executed successfully.`,
63
- returnDisplay: `Tool ${this.tool.name} executed successfully.`,
64
- });
65
- }
66
- async shouldConfirmExecute(_abortSignal) {
67
- if (this.tool.shouldConfirm) {
68
- return {
69
- type: 'edit',
70
- title: 'Confirm Mock Tool',
71
- fileName: 'test.txt',
72
- filePath: 'test.txt',
73
- fileDiff: 'diff',
74
- originalContent: 'originalContent',
75
- newContent: 'newContent',
76
- onConfirm: async () => { },
77
- };
78
- }
79
- return false;
80
- }
81
- getDescription() {
82
- return `A mock modifiable tool invocation for ${this.tool.name}`;
83
- }
84
- }
85
- /**
86
- * Configurable mock modifiable tool for testing.
87
- */
88
- export class MockModifiableTool extends MockTool {
89
- constructor(name = 'mockModifiableTool') {
90
- super(name);
91
- this.shouldConfirm = true;
92
- }
93
- getModifyContext(_abortSignal) {
94
- return {
95
- getFilePath: () => 'test.txt',
96
- getCurrentContent: async () => 'old content',
97
- getProposedContent: async () => 'new content',
98
- createUpdatedParams: (_oldContent, modifiedProposedContent, _originalParams) => ({ newContent: modifiedProposedContent }),
99
- };
100
- }
101
- createInvocation(params) {
102
- return new MockModifiableToolInvocation(this, params);
103
- }
104
- }
105
- //# sourceMappingURL=tools.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tools.js","sourceRoot":"","sources":["../../../src/test-utils/tools.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAM5B,OAAO,EACL,mBAAmB,EACnB,kBAAkB,EAClB,IAAI,GACL,MAAM,mBAAmB,CAAC;AAM3B,MAAM,kBAAmB,SAAQ,kBAGhC;IAEoB;IADnB,YACmB,IAAc,EAC/B,MAAkC;QAElC,KAAK,CAAC,MAAM,CAAC,CAAC;QAHG,SAAI,GAAJ,IAAI,CAAU;IAIjC,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,YAAyB;QACrC,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAChD,OAAO,CACL,MAAM,IAAI;YACR,UAAU,EAAE,QAAQ,IAAI,CAAC,IAAI,CAAC,IAAI,yBAAyB;YAC3D,aAAa,EAAE,QAAQ,IAAI,CAAC,IAAI,CAAC,IAAI,yBAAyB;SAC/D,CACF,CAAC;IACJ,CAAC;IAEQ,KAAK,CAAC,oBAAoB,CACjC,YAAyB;QAEzB,IAAI,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;YAC5B,OAAO;gBACL,IAAI,EAAE,MAAe;gBACrB,KAAK,EAAE,WAAW,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;gBACzC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI;gBACvB,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI;gBAC3B,SAAS,EAAE,KAAK,IAAI,EAAE,GAAE,CAAC;aAC1B,CAAC;QACJ,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,cAAc;QACZ,OAAO,8BAA8B,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;IACxD,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,QAAS,SAAQ,mBAG7B;IACC,SAAS,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;IACpB,aAAa,GAAG,KAAK,CAAC;IAEtB,YACE,IAAI,GAAG,WAAW,EAClB,WAAoB,EACpB,WAAW,GAAG,0BAA0B,EACxC,MAAM,GAAG;QACP,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;KAC1C;QAED,KAAK,CAAC,IAAI,EAAE,WAAW,IAAI,IAAI,EAAE,WAAW,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACpE,CAAC;IAES,gBAAgB,CAAC,MAE1B;QACC,OAAO,IAAI,kBAAkB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAC9C,CAAC;CACF;AAED,MAAM,OAAO,4BAA6B,SAAQ,kBAGjD;IAEoB;IADnB,YACmB,IAAwB,EACzC,MAA+B;QAE/B,KAAK,CAAC,MAAM,CAAC,CAAC;QAHG,SAAI,GAAJ,IAAI,CAAoB;IAI3C,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,YAAyB;QACrC,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAChD,OAAO,CACL,MAAM,IAAI;YACR,UAAU,EAAE,QAAQ,IAAI,CAAC,IAAI,CAAC,IAAI,yBAAyB;YAC3D,aAAa,EAAE,QAAQ,IAAI,CAAC,IAAI,CAAC,IAAI,yBAAyB;SAC/D,CACF,CAAC;IACJ,CAAC;IAEQ,KAAK,CAAC,oBAAoB,CACjC,YAAyB;QAEzB,IAAI,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;YAC5B,OAAO;gBACL,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,mBAAmB;gBAC1B,QAAQ,EAAE,UAAU;gBACpB,QAAQ,EAAE,UAAU;gBACpB,QAAQ,EAAE,MAAM;gBAChB,eAAe,EAAE,iBAAiB;gBAClC,UAAU,EAAE,YAAY;gBACxB,SAAS,EAAE,KAAK,IAAI,EAAE,GAAE,CAAC;aAC1B,CAAC;QACJ,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,cAAc;QACZ,OAAO,yCAAyC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;IACnE,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,kBACX,SAAQ,QAAQ;IAGhB,YAAY,IAAI,GAAG,oBAAoB;QACrC,KAAK,CAAC,IAAI,CAAC,CAAC;QACZ,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;IAC5B,CAAC;IAED,gBAAgB,CACd,YAAyB;QAEzB,OAAO;YACL,WAAW,EAAE,GAAG,EAAE,CAAC,UAAU;YAC7B,iBAAiB,EAAE,KAAK,IAAI,EAAE,CAAC,aAAa;YAC5C,kBAAkB,EAAE,KAAK,IAAI,EAAE,CAAC,aAAa;YAC7C,mBAAmB,EAAE,CACnB,WAAmB,EACnB,uBAA+B,EAC/B,eAAwC,EACxC,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,uBAAuB,EAAE,CAAC;SAC/C,CAAC;IACJ,CAAC;IAEkB,gBAAgB,CACjC,MAA+B;QAE/B,OAAO,IAAI,4BAA4B,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACxD,CAAC;CACF"}