@google/gemini-cli-core 0.1.18 → 0.1.19-nightly.250814.514e883a

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 (285) hide show
  1. package/README.md +199 -132
  2. package/dist/index.d.ts +3 -0
  3. package/dist/index.js +3 -0
  4. package/dist/index.js.map +1 -1
  5. package/dist/src/code_assist/converter.d.ts +3 -2
  6. package/dist/src/code_assist/converter.js +2 -2
  7. package/dist/src/code_assist/converter.js.map +1 -1
  8. package/dist/src/code_assist/converter.test.js +48 -1
  9. package/dist/src/code_assist/converter.test.js.map +1 -1
  10. package/dist/src/code_assist/oauth2.js +1 -1
  11. package/dist/src/code_assist/oauth2.js.map +1 -1
  12. package/dist/src/code_assist/server.test.js +4 -1
  13. package/dist/src/code_assist/server.test.js.map +1 -1
  14. package/dist/src/code_assist/setup.js +48 -17
  15. package/dist/src/code_assist/setup.js.map +1 -1
  16. package/dist/src/code_assist/setup.test.js +105 -5
  17. package/dist/src/code_assist/setup.test.js.map +1 -1
  18. package/dist/src/config/config.d.ts +25 -6
  19. package/dist/src/config/config.js +47 -16
  20. package/dist/src/config/config.js.map +1 -1
  21. package/dist/src/config/config.test.js +95 -1
  22. package/dist/src/config/config.test.js.map +1 -1
  23. package/dist/src/core/client.d.ts +8 -5
  24. package/dist/src/core/client.js +184 -119
  25. package/dist/src/core/client.js.map +1 -1
  26. package/dist/src/core/client.test.js +342 -37
  27. package/dist/src/core/client.test.js.map +1 -1
  28. package/dist/src/core/contentGenerator.js +3 -2
  29. package/dist/src/core/contentGenerator.js.map +1 -1
  30. package/dist/src/core/contentGenerator.test.js +3 -2
  31. package/dist/src/core/contentGenerator.test.js.map +1 -1
  32. package/dist/src/core/coreToolScheduler.d.ts +21 -8
  33. package/dist/src/core/coreToolScheduler.js +170 -61
  34. package/dist/src/core/coreToolScheduler.js.map +1 -1
  35. package/dist/src/core/coreToolScheduler.test.js +183 -41
  36. package/dist/src/core/coreToolScheduler.test.js.map +1 -1
  37. package/dist/src/core/geminiChat.d.ts +7 -6
  38. package/dist/src/core/geminiChat.js +43 -43
  39. package/dist/src/core/geminiChat.js.map +1 -1
  40. package/dist/src/core/logger.d.ts +1 -0
  41. package/dist/src/core/logger.js +18 -0
  42. package/dist/src/core/logger.js.map +1 -1
  43. package/dist/src/core/logger.test.js +29 -0
  44. package/dist/src/core/logger.test.js.map +1 -1
  45. package/dist/src/core/loggingContentGenerator.d.ts +29 -0
  46. package/dist/src/core/loggingContentGenerator.js +97 -0
  47. package/dist/src/core/loggingContentGenerator.js.map +1 -0
  48. package/dist/src/core/nonInteractiveToolExecutor.js +20 -1
  49. package/dist/src/core/nonInteractiveToolExecutor.js.map +1 -1
  50. package/dist/src/core/nonInteractiveToolExecutor.test.js +7 -31
  51. package/dist/src/core/nonInteractiveToolExecutor.test.js.map +1 -1
  52. package/dist/src/core/subagent.d.ts +230 -0
  53. package/dist/src/core/subagent.js +447 -0
  54. package/dist/src/core/subagent.js.map +1 -0
  55. package/dist/src/core/subagent.test.d.ts +6 -0
  56. package/dist/src/core/subagent.test.js +515 -0
  57. package/dist/src/core/subagent.test.js.map +1 -0
  58. package/dist/src/core/turn.js +1 -0
  59. package/dist/src/core/turn.js.map +1 -1
  60. package/dist/src/core/turn.test.js +4 -0
  61. package/dist/src/core/turn.test.js.map +1 -1
  62. package/dist/src/ide/detect-ide.d.ts +12 -2
  63. package/dist/src/ide/detect-ide.js +64 -5
  64. package/dist/src/ide/detect-ide.js.map +1 -1
  65. package/dist/src/ide/detect-ide.test.d.ts +6 -0
  66. package/dist/src/ide/detect-ide.test.js +65 -0
  67. package/dist/src/ide/detect-ide.test.js.map +1 -0
  68. package/dist/src/ide/ide-client.d.ts +20 -1
  69. package/dist/src/ide/ide-client.js +145 -19
  70. package/dist/src/ide/ide-client.js.map +1 -1
  71. package/dist/src/ide/ide-installer.js +1 -26
  72. package/dist/src/ide/ide-installer.js.map +1 -1
  73. package/dist/src/ide/ide-installer.test.js +0 -4
  74. package/dist/src/ide/ide-installer.test.js.map +1 -1
  75. package/dist/src/ide/ideContext.d.ts +95 -0
  76. package/dist/src/ide/ideContext.js +45 -0
  77. package/dist/src/ide/ideContext.js.map +1 -1
  78. package/dist/src/index.d.ts +2 -1
  79. package/dist/src/index.js +2 -1
  80. package/dist/src/index.js.map +1 -1
  81. package/dist/src/mcp/google-auth-provider.js +9 -0
  82. package/dist/src/mcp/google-auth-provider.js.map +1 -1
  83. package/dist/src/mcp/google-auth-provider.test.js +45 -10
  84. package/dist/src/mcp/google-auth-provider.test.js.map +1 -1
  85. package/dist/src/mcp/oauth-provider.d.ts +0 -1
  86. package/dist/src/mcp/oauth-provider.js +0 -1
  87. package/dist/src/mcp/oauth-provider.js.map +1 -1
  88. package/dist/src/mocks/msw.d.ts +6 -0
  89. package/dist/src/mocks/msw.js +8 -0
  90. package/dist/src/mocks/msw.js.map +1 -0
  91. package/dist/src/services/loopDetectionService.js +14 -11
  92. package/dist/src/services/loopDetectionService.js.map +1 -1
  93. package/dist/src/services/loopDetectionService.test.js +191 -0
  94. package/dist/src/services/loopDetectionService.test.js.map +1 -1
  95. package/dist/src/services/shellExecutionService.js +29 -9
  96. package/dist/src/services/shellExecutionService.js.map +1 -1
  97. package/dist/src/services/shellExecutionService.test.js +8 -0
  98. package/dist/src/services/shellExecutionService.test.js.map +1 -1
  99. package/dist/src/telemetry/clearcut-logger/clearcut-logger.d.ts +50 -7
  100. package/dist/src/telemetry/clearcut-logger/clearcut-logger.js +236 -116
  101. package/dist/src/telemetry/clearcut-logger/clearcut-logger.js.map +1 -1
  102. package/dist/src/telemetry/clearcut-logger/clearcut-logger.test.d.ts +6 -0
  103. package/dist/src/telemetry/clearcut-logger/clearcut-logger.test.js +281 -0
  104. package/dist/src/telemetry/clearcut-logger/clearcut-logger.test.js.map +1 -0
  105. package/dist/src/telemetry/clearcut-logger/event-metadata-key.d.ts +8 -1
  106. package/dist/src/telemetry/clearcut-logger/event-metadata-key.js +17 -0
  107. package/dist/src/telemetry/clearcut-logger/event-metadata-key.js.map +1 -1
  108. package/dist/src/telemetry/index.d.ts +2 -2
  109. package/dist/src/telemetry/index.js +2 -2
  110. package/dist/src/telemetry/index.js.map +1 -1
  111. package/dist/src/telemetry/loggers.d.ts +2 -1
  112. package/dist/src/telemetry/loggers.js +15 -0
  113. package/dist/src/telemetry/loggers.js.map +1 -1
  114. package/dist/src/telemetry/loggers.test.circular.js +7 -2
  115. package/dist/src/telemetry/loggers.test.circular.js.map +1 -1
  116. package/dist/src/telemetry/loggers.test.js +7 -2
  117. package/dist/src/telemetry/loggers.test.js.map +1 -1
  118. package/dist/src/telemetry/metrics.d.ts +3 -2
  119. package/dist/src/telemetry/metrics.js +7 -1
  120. package/dist/src/telemetry/metrics.js.map +1 -1
  121. package/dist/src/telemetry/metrics.test.js +50 -0
  122. package/dist/src/telemetry/metrics.test.js.map +1 -1
  123. package/dist/src/telemetry/sdk.d.ts +1 -1
  124. package/dist/src/telemetry/sdk.js +13 -5
  125. package/dist/src/telemetry/sdk.js.map +1 -1
  126. package/dist/src/telemetry/telemetry.test.js +2 -2
  127. package/dist/src/telemetry/telemetry.test.js.map +1 -1
  128. package/dist/src/telemetry/tool-call-decision.d.ts +13 -0
  129. package/dist/src/telemetry/tool-call-decision.js +29 -0
  130. package/dist/src/telemetry/tool-call-decision.js.map +1 -0
  131. package/dist/src/telemetry/types.d.ts +37 -21
  132. package/dist/src/telemetry/types.js +55 -44
  133. package/dist/src/telemetry/types.js.map +1 -1
  134. package/dist/src/telemetry/uiTelemetry.d.ts +4 -1
  135. package/dist/src/telemetry/uiTelemetry.js +3 -1
  136. package/dist/src/telemetry/uiTelemetry.js.map +1 -1
  137. package/dist/src/telemetry/uiTelemetry.test.js +13 -2
  138. package/dist/src/telemetry/uiTelemetry.test.js.map +1 -1
  139. package/dist/src/test-utils/config.d.ts +16 -0
  140. package/dist/src/test-utils/config.js +32 -0
  141. package/dist/src/test-utils/config.js.map +1 -0
  142. package/dist/src/test-utils/tools.d.ts +23 -0
  143. package/dist/src/test-utils/tools.js +41 -0
  144. package/dist/src/test-utils/tools.js.map +1 -0
  145. package/dist/src/tools/diffOptions.d.ts +2 -0
  146. package/dist/src/tools/diffOptions.js +28 -0
  147. package/dist/src/tools/diffOptions.js.map +1 -1
  148. package/dist/src/tools/diffOptions.test.d.ts +6 -0
  149. package/dist/src/tools/diffOptions.test.js +119 -0
  150. package/dist/src/tools/diffOptions.test.js.map +1 -0
  151. package/dist/src/tools/edit.d.ts +9 -33
  152. package/dist/src/tools/edit.js +142 -132
  153. package/dist/src/tools/edit.js.map +1 -1
  154. package/dist/src/tools/edit.test.js +115 -51
  155. package/dist/src/tools/edit.test.js.map +1 -1
  156. package/dist/src/tools/glob.d.ts +3 -10
  157. package/dist/src/tools/glob.js +85 -89
  158. package/dist/src/tools/glob.js.map +1 -1
  159. package/dist/src/tools/glob.test.js +22 -12
  160. package/dist/src/tools/glob.test.js.map +1 -1
  161. package/dist/src/tools/grep.d.ts +3 -35
  162. package/dist/src/tools/grep.js +111 -83
  163. package/dist/src/tools/grep.js.map +1 -1
  164. package/dist/src/tools/grep.test.js +40 -23
  165. package/dist/src/tools/grep.test.js.map +1 -1
  166. package/dist/src/tools/ls.d.ts +3 -22
  167. package/dist/src/tools/ls.js +81 -78
  168. package/dist/src/tools/ls.js.map +1 -1
  169. package/dist/src/tools/ls.test.js +62 -34
  170. package/dist/src/tools/ls.test.js.map +1 -1
  171. package/dist/src/tools/mcp-client.d.ts +14 -3
  172. package/dist/src/tools/mcp-client.js +82 -6
  173. package/dist/src/tools/mcp-client.js.map +1 -1
  174. package/dist/src/tools/mcp-client.test.js +340 -5
  175. package/dist/src/tools/mcp-client.test.js.map +1 -1
  176. package/dist/src/tools/mcp-tool.d.ts +6 -13
  177. package/dist/src/tools/mcp-tool.js +41 -31
  178. package/dist/src/tools/mcp-tool.js.map +1 -1
  179. package/dist/src/tools/mcp-tool.test.js +53 -51
  180. package/dist/src/tools/mcp-tool.test.js.map +1 -1
  181. package/dist/src/tools/memoryTool.d.ts +10 -14
  182. package/dist/src/tools/memoryTool.js +128 -121
  183. package/dist/src/tools/memoryTool.js.map +1 -1
  184. package/dist/src/tools/memoryTool.test.js +38 -18
  185. package/dist/src/tools/memoryTool.test.js.map +1 -1
  186. package/dist/src/tools/modifiable-tool.d.ts +8 -5
  187. package/dist/src/tools/modifiable-tool.js +4 -1
  188. package/dist/src/tools/modifiable-tool.js.map +1 -1
  189. package/dist/src/tools/modifiable-tool.test.js +3 -3
  190. package/dist/src/tools/modifiable-tool.test.js.map +1 -1
  191. package/dist/src/tools/read-file.d.ts +4 -6
  192. package/dist/src/tools/read-file.js +92 -45
  193. package/dist/src/tools/read-file.js.map +1 -1
  194. package/dist/src/tools/read-file.test.js +192 -130
  195. package/dist/src/tools/read-file.test.js.map +1 -1
  196. package/dist/src/tools/read-many-files.d.ts +4 -5
  197. package/dist/src/tools/read-many-files.js +120 -103
  198. package/dist/src/tools/read-many-files.js.map +1 -1
  199. package/dist/src/tools/read-many-files.test.js +81 -47
  200. package/dist/src/tools/read-many-files.test.js.map +1 -1
  201. package/dist/src/tools/shell.d.ts +4 -6
  202. package/dist/src/tools/shell.js +99 -101
  203. package/dist/src/tools/shell.js.map +1 -1
  204. package/dist/src/tools/shell.test.js +43 -28
  205. package/dist/src/tools/shell.test.js.map +1 -1
  206. package/dist/src/tools/tool-error.d.ts +4 -0
  207. package/dist/src/tools/tool-error.js +4 -0
  208. package/dist/src/tools/tool-error.js.map +1 -1
  209. package/dist/src/tools/tool-registry.d.ts +17 -20
  210. package/dist/src/tools/tool-registry.js +35 -77
  211. package/dist/src/tools/tool-registry.js.map +1 -1
  212. package/dist/src/tools/tool-registry.test.js +19 -192
  213. package/dist/src/tools/tool-registry.test.js.map +1 -1
  214. package/dist/src/tools/tools.d.ts +156 -54
  215. package/dist/src/tools/tools.js +196 -25
  216. package/dist/src/tools/tools.js.map +1 -1
  217. package/dist/src/tools/tools.test.d.ts +6 -0
  218. package/dist/src/tools/tools.test.js +117 -0
  219. package/dist/src/tools/tools.test.js.map +1 -0
  220. package/dist/src/tools/web-fetch.d.ts +4 -7
  221. package/dist/src/tools/web-fetch.js +62 -63
  222. package/dist/src/tools/web-fetch.js.map +1 -1
  223. package/dist/src/tools/web-fetch.test.js +8 -4
  224. package/dist/src/tools/web-fetch.test.js.map +1 -1
  225. package/dist/src/tools/web-search.js +3 -3
  226. package/dist/src/tools/web-search.js.map +1 -1
  227. package/dist/src/tools/write-file.d.ts +8 -3
  228. package/dist/src/tools/write-file.js +89 -22
  229. package/dist/src/tools/write-file.js.map +1 -1
  230. package/dist/src/tools/write-file.test.js +112 -8
  231. package/dist/src/tools/write-file.test.js.map +1 -1
  232. package/dist/src/utils/bfsFileSearch.test.js +28 -56
  233. package/dist/src/utils/bfsFileSearch.test.js.map +1 -1
  234. package/dist/src/utils/editCorrector.js +8 -9
  235. package/dist/src/utils/editCorrector.js.map +1 -1
  236. package/dist/src/utils/environmentContext.d.ts +21 -0
  237. package/dist/src/utils/environmentContext.js +90 -0
  238. package/dist/src/utils/environmentContext.js.map +1 -0
  239. package/dist/src/utils/environmentContext.test.d.ts +6 -0
  240. package/dist/src/utils/environmentContext.test.js +139 -0
  241. package/dist/src/utils/environmentContext.test.js.map +1 -0
  242. package/dist/src/utils/errorParsing.d.ts +8 -0
  243. package/dist/src/utils/errorParsing.js +93 -0
  244. package/dist/src/utils/errorParsing.js.map +1 -0
  245. package/dist/src/utils/errorParsing.test.d.ts +6 -0
  246. package/dist/src/utils/errorParsing.test.js +172 -0
  247. package/dist/src/utils/errorParsing.test.js.map +1 -0
  248. package/dist/src/utils/fileUtils.d.ts +7 -0
  249. package/dist/src/utils/fileUtils.js +15 -12
  250. package/dist/src/utils/fileUtils.js.map +1 -1
  251. package/dist/src/utils/fileUtils.test.js +6 -5
  252. package/dist/src/utils/fileUtils.test.js.map +1 -1
  253. package/dist/src/utils/filesearch/crawlCache.d.ts +1 -1
  254. package/dist/src/utils/filesearch/crawlCache.js +4 -1
  255. package/dist/src/utils/filesearch/crawlCache.js.map +1 -1
  256. package/dist/src/utils/filesearch/crawlCache.test.js +10 -0
  257. package/dist/src/utils/filesearch/crawlCache.test.js.map +1 -1
  258. package/dist/src/utils/filesearch/fileSearch.d.ts +2 -0
  259. package/dist/src/utils/filesearch/fileSearch.js +33 -8
  260. package/dist/src/utils/filesearch/fileSearch.js.map +1 -1
  261. package/dist/src/utils/filesearch/fileSearch.test.js +139 -0
  262. package/dist/src/utils/filesearch/fileSearch.test.js.map +1 -1
  263. package/dist/src/utils/filesearch/result-cache.d.ts +1 -2
  264. package/dist/src/utils/filesearch/result-cache.js +1 -3
  265. package/dist/src/utils/filesearch/result-cache.js.map +1 -1
  266. package/dist/src/utils/filesearch/result-cache.test.js +3 -4
  267. package/dist/src/utils/filesearch/result-cache.test.js.map +1 -1
  268. package/dist/src/utils/memoryDiscovery.js +4 -1
  269. package/dist/src/utils/memoryDiscovery.js.map +1 -1
  270. package/dist/src/utils/memoryImportProcessor.js +1 -1
  271. package/dist/src/utils/memoryImportProcessor.js.map +1 -1
  272. package/dist/src/utils/memoryImportProcessor.test.js +17 -20
  273. package/dist/src/utils/memoryImportProcessor.test.js.map +1 -1
  274. package/dist/src/utils/nextSpeakerChecker.js +5 -6
  275. package/dist/src/utils/nextSpeakerChecker.js.map +1 -1
  276. package/dist/src/utils/nextSpeakerChecker.test.js +2 -2
  277. package/dist/src/utils/nextSpeakerChecker.test.js.map +1 -1
  278. package/dist/src/utils/quotaErrorDetection.d.ts +1 -5
  279. package/dist/src/utils/quotaErrorDetection.js.map +1 -1
  280. package/dist/src/utils/schemaValidator.d.ts +1 -8
  281. package/dist/src/utils/schemaValidator.js +1 -32
  282. package/dist/src/utils/schemaValidator.js.map +1 -1
  283. package/dist/tsconfig.tsbuildinfo +1 -1
  284. package/package.json +3 -1
  285. package/dist/google-gemini-cli-core-0.1.17.tgz +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"tool-registry.test.js","sourceRoot":"","sources":["../../../src/tools/tool-registry.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tool-registry.test.js","sourceRoot":"","sources":["../../../src/tools/tool-registry.test.ts"],"names":[],"mappings":"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"}
@@ -3,83 +3,172 @@
3
3
  * Copyright 2025 Google LLC
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
- import { FunctionDeclaration, PartListUnion, Schema } from '@google/genai';
6
+ import { FunctionDeclaration, PartListUnion } from '@google/genai';
7
7
  import { ToolErrorType } from './tool-error.js';
8
+ import { DiffUpdateResult } from '../ide/ideContext.js';
8
9
  /**
9
- * Interface representing the base Tool functionality
10
+ * Represents a validated and ready-to-execute tool call.
11
+ * An instance of this is created by a `ToolBuilder`.
10
12
  */
11
- export interface Tool<TParams = unknown, TResult extends ToolResult = ToolResult> {
13
+ export interface ToolInvocation<TParams extends object, TResult extends ToolResult> {
12
14
  /**
13
- * The internal name of the tool (used for API calls)
15
+ * The validated parameters for this specific invocation.
16
+ */
17
+ params: TParams;
18
+ /**
19
+ * Gets a pre-execution description of the tool operation.
20
+ * @returns A markdown string describing what the tool will do.
21
+ */
22
+ getDescription(): string;
23
+ /**
24
+ * Determines what file system paths the tool will affect.
25
+ * @returns A list of such paths.
26
+ */
27
+ toolLocations(): ToolLocation[];
28
+ /**
29
+ * Determines if the tool should prompt for confirmation before execution.
30
+ * @returns Confirmation details or false if no confirmation is needed.
31
+ */
32
+ shouldConfirmExecute(abortSignal: AbortSignal): Promise<ToolCallConfirmationDetails | false>;
33
+ /**
34
+ * Executes the tool with the validated parameters.
35
+ * @param signal AbortSignal for tool cancellation.
36
+ * @param updateOutput Optional callback to stream output.
37
+ * @returns Result of the tool execution.
38
+ */
39
+ execute(signal: AbortSignal, updateOutput?: (output: string) => void): Promise<TResult>;
40
+ }
41
+ /**
42
+ * A convenience base class for ToolInvocation.
43
+ */
44
+ export declare abstract class BaseToolInvocation<TParams extends object, TResult extends ToolResult> implements ToolInvocation<TParams, TResult> {
45
+ readonly params: TParams;
46
+ constructor(params: TParams);
47
+ abstract getDescription(): string;
48
+ toolLocations(): ToolLocation[];
49
+ shouldConfirmExecute(_abortSignal: AbortSignal): Promise<ToolCallConfirmationDetails | false>;
50
+ abstract execute(signal: AbortSignal, updateOutput?: (output: string) => void): Promise<TResult>;
51
+ }
52
+ /**
53
+ * A type alias for a tool invocation where the specific parameter and result types are not known.
54
+ */
55
+ export type AnyToolInvocation = ToolInvocation<object, ToolResult>;
56
+ /**
57
+ * An adapter that wraps the legacy `Tool` interface to make it compatible
58
+ * with the new `ToolInvocation` pattern.
59
+ */
60
+ export declare class LegacyToolInvocation<TParams extends object, TResult extends ToolResult> implements ToolInvocation<TParams, TResult> {
61
+ private readonly legacyTool;
62
+ readonly params: TParams;
63
+ constructor(legacyTool: BaseTool<TParams, TResult>, params: TParams);
64
+ getDescription(): string;
65
+ toolLocations(): ToolLocation[];
66
+ shouldConfirmExecute(abortSignal: AbortSignal): Promise<ToolCallConfirmationDetails | false>;
67
+ execute(signal: AbortSignal, updateOutput?: (output: string) => void): Promise<TResult>;
68
+ }
69
+ /**
70
+ * Interface for a tool builder that validates parameters and creates invocations.
71
+ */
72
+ export interface ToolBuilder<TParams extends object, TResult extends ToolResult> {
73
+ /**
74
+ * The internal name of the tool (used for API calls).
14
75
  */
15
76
  name: string;
16
77
  /**
17
- * The user-friendly display name of the tool
78
+ * The user-friendly display name of the tool.
18
79
  */
19
80
  displayName: string;
20
81
  /**
21
- * Description of what the tool does
82
+ * Description of what the tool does.
22
83
  */
23
84
  description: string;
24
85
  /**
25
- * The icon to display when interacting via ACP
86
+ * The kind of tool for categorization and permissions
26
87
  */
27
- icon: Icon;
88
+ kind: Kind;
28
89
  /**
29
- * Function declaration schema from @google/genai
90
+ * Function declaration schema from @google/genai.
30
91
  */
31
92
  schema: FunctionDeclaration;
32
93
  /**
33
- * Whether the tool's output should be rendered as markdown
94
+ * Whether the tool's output should be rendered as markdown.
34
95
  */
35
96
  isOutputMarkdown: boolean;
36
97
  /**
37
- * Whether the tool supports live (streaming) output
98
+ * Whether the tool supports live (streaming) output.
38
99
  */
39
100
  canUpdateOutput: boolean;
40
101
  /**
41
- * Validates the parameters for the tool
42
- * Should be called from both `shouldConfirmExecute` and `execute`
43
- * `shouldConfirmExecute` should return false immediately if invalid
44
- * @param params Parameters to validate
45
- * @returns An error message string if invalid, null otherwise
46
- */
47
- validateToolParams(params: TParams): string | null;
48
- /**
49
- * Gets a pre-execution description of the tool operation
50
- * @param params Parameters for the tool execution
51
- * @returns A markdown string describing what the tool will do
52
- * Optional for backward compatibility
102
+ * Validates raw parameters and builds a ready-to-execute invocation.
103
+ * @param params The raw, untrusted parameters from the model.
104
+ * @returns A valid `ToolInvocation` if successful. Throws an error if validation fails.
53
105
  */
54
- getDescription(params: TParams): string;
106
+ build(params: TParams): ToolInvocation<TParams, TResult>;
107
+ }
108
+ /**
109
+ * New base class for tools that separates validation from execution.
110
+ * New tools should extend this class.
111
+ */
112
+ export declare abstract class DeclarativeTool<TParams extends object, TResult extends ToolResult> implements ToolBuilder<TParams, TResult> {
113
+ readonly name: string;
114
+ readonly displayName: string;
115
+ readonly description: string;
116
+ readonly kind: Kind;
117
+ readonly parameterSchema: unknown;
118
+ readonly isOutputMarkdown: boolean;
119
+ readonly canUpdateOutput: boolean;
120
+ constructor(name: string, displayName: string, description: string, kind: Kind, parameterSchema: unknown, isOutputMarkdown?: boolean, canUpdateOutput?: boolean);
121
+ get schema(): FunctionDeclaration;
55
122
  /**
56
- * Determines what file system paths the tool will affect
57
- * @param params Parameters for the tool execution
58
- * @returns A list of such paths
123
+ * Validates the raw tool parameters.
124
+ * Subclasses should override this to add custom validation logic
125
+ * beyond the JSON schema check.
126
+ * @param params The raw parameters from the model.
127
+ * @returns An error message string if invalid, null otherwise.
59
128
  */
60
- toolLocations(params: TParams): ToolLocation[];
129
+ protected validateToolParams(_params: TParams): string | null;
61
130
  /**
62
- * Determines if the tool should prompt for confirmation before execution
63
- * @param params Parameters for the tool execution
64
- * @returns Whether execute should be confirmed.
131
+ * The core of the new pattern. It validates parameters and, if successful,
132
+ * returns a `ToolInvocation` object that encapsulates the logic for the
133
+ * specific, validated call.
134
+ * @param params The raw, untrusted parameters from the model.
135
+ * @returns A `ToolInvocation` instance.
65
136
  */
66
- shouldConfirmExecute(params: TParams, abortSignal: AbortSignal): Promise<ToolCallConfirmationDetails | false>;
137
+ abstract build(params: TParams): ToolInvocation<TParams, TResult>;
67
138
  /**
68
- * Executes the tool with the given parameters
69
- * @param params Parameters for the tool execution
70
- * @returns Result of the tool execution
139
+ * A convenience method that builds and executes the tool in one step.
140
+ * Throws an error if validation fails.
141
+ * @param params The raw, untrusted parameters from the model.
142
+ * @param signal AbortSignal for tool cancellation.
143
+ * @param updateOutput Optional callback to stream output.
144
+ * @returns The result of the tool execution.
71
145
  */
72
- execute(params: TParams, signal: AbortSignal, updateOutput?: (output: string) => void): Promise<TResult>;
146
+ buildAndExecute(params: TParams, signal: AbortSignal, updateOutput?: (output: string) => void): Promise<TResult>;
73
147
  }
148
+ /**
149
+ * New base class for declarative tools that separates validation from execution.
150
+ * New tools should extend this class, which provides a `build` method that
151
+ * validates parameters before deferring to a `createInvocation` method for
152
+ * the final `ToolInvocation` object instantiation.
153
+ */
154
+ export declare abstract class BaseDeclarativeTool<TParams extends object, TResult extends ToolResult> extends DeclarativeTool<TParams, TResult> {
155
+ build(params: TParams): ToolInvocation<TParams, TResult>;
156
+ protected abstract createInvocation(params: TParams): ToolInvocation<TParams, TResult>;
157
+ }
158
+ /**
159
+ * A type alias for a declarative tool where the specific parameter and result types are not known.
160
+ */
161
+ export type AnyDeclarativeTool = DeclarativeTool<object, ToolResult>;
74
162
  /**
75
163
  * Base implementation for tools with common functionality
164
+ * @deprecated Use `DeclarativeTool` for new tools.
76
165
  */
77
- export declare abstract class BaseTool<TParams = unknown, TResult extends ToolResult = ToolResult> implements Tool<TParams, TResult> {
166
+ export declare abstract class BaseTool<TParams extends object, TResult extends ToolResult = ToolResult> extends DeclarativeTool<TParams, TResult> {
78
167
  readonly name: string;
79
168
  readonly displayName: string;
80
169
  readonly description: string;
81
- readonly icon: Icon;
82
- readonly parameterSchema: Schema;
170
+ readonly kind: Kind;
171
+ readonly parameterSchema: unknown;
83
172
  readonly isOutputMarkdown: boolean;
84
173
  readonly canUpdateOutput: boolean;
85
174
  /**
@@ -89,13 +178,10 @@ export declare abstract class BaseTool<TParams = unknown, TResult extends ToolRe
89
178
  * @param description Description of what the tool does
90
179
  * @param isOutputMarkdown Whether the tool's output should be rendered as markdown
91
180
  * @param canUpdateOutput Whether the tool supports live (streaming) output
92
- * @param parameterSchema Open API 3.0 Schema defining the parameters
93
- */
94
- constructor(name: string, displayName: string, description: string, icon: Icon, parameterSchema: Schema, isOutputMarkdown?: boolean, canUpdateOutput?: boolean);
95
- /**
96
- * Function declaration schema computed from name, description, and parameterSchema
181
+ * @param parameterSchema JSON Schema defining the parameters
97
182
  */
98
- get schema(): FunctionDeclaration;
183
+ constructor(name: string, displayName: string, description: string, kind: Kind, parameterSchema: unknown, isOutputMarkdown?: boolean, canUpdateOutput?: boolean);
184
+ build(params: TParams): ToolInvocation<TParams, TResult>;
99
185
  /**
100
186
  * Validates the parameters for the tool
101
187
  * This is a placeholder implementation and should be overridden
@@ -160,22 +246,37 @@ export interface ToolResult {
160
246
  type?: ToolErrorType;
161
247
  };
162
248
  }
249
+ /**
250
+ * Detects cycles in a JSON schemas due to `$ref`s.
251
+ * @param schema The root of the JSON schema.
252
+ * @returns `true` if a cycle is detected, `false` otherwise.
253
+ */
254
+ export declare function hasCycleInSchema(schema: object): boolean;
163
255
  export type ToolResultDisplay = string | FileDiff;
164
256
  export interface FileDiff {
165
257
  fileDiff: string;
166
258
  fileName: string;
167
259
  originalContent: string | null;
168
260
  newContent: string;
261
+ diffStat?: DiffStat;
262
+ }
263
+ export interface DiffStat {
264
+ ai_removed_lines: number;
265
+ ai_added_lines: number;
266
+ user_added_lines: number;
267
+ user_removed_lines: number;
169
268
  }
170
269
  export interface ToolEditConfirmationDetails {
171
270
  type: 'edit';
172
271
  title: string;
173
272
  onConfirm: (outcome: ToolConfirmationOutcome, payload?: ToolConfirmationPayload) => Promise<void>;
174
273
  fileName: string;
274
+ filePath: string;
175
275
  fileDiff: string;
176
276
  originalContent: string | null;
177
277
  newContent: string;
178
278
  isModifying?: boolean;
279
+ ideConfirmation?: Promise<DiffUpdateResult>;
179
280
  }
180
281
  export interface ToolConfirmationPayload {
181
282
  newContent: string;
@@ -211,15 +312,16 @@ export declare enum ToolConfirmationOutcome {
211
312
  ModifyWithEditor = "modify_with_editor",
212
313
  Cancel = "cancel"
213
314
  }
214
- export declare enum Icon {
215
- FileSearch = "fileSearch",
216
- Folder = "folder",
217
- Globe = "globe",
218
- Hammer = "hammer",
219
- LightBulb = "lightBulb",
220
- Pencil = "pencil",
221
- Regex = "regex",
222
- Terminal = "terminal"
315
+ export declare enum Kind {
316
+ Read = "read",
317
+ Edit = "edit",
318
+ Delete = "delete",
319
+ Move = "move",
320
+ Search = "search",
321
+ Execute = "execute",
322
+ Think = "think",
323
+ Fetch = "fetch",
324
+ Other = "other"
223
325
  }
224
326
  export interface ToolLocation {
225
327
  path: string;
@@ -3,14 +3,121 @@
3
3
  * Copyright 2025 Google LLC
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
+ /**
7
+ * A convenience base class for ToolInvocation.
8
+ */
9
+ export class BaseToolInvocation {
10
+ params;
11
+ constructor(params) {
12
+ this.params = params;
13
+ }
14
+ toolLocations() {
15
+ return [];
16
+ }
17
+ shouldConfirmExecute(_abortSignal) {
18
+ return Promise.resolve(false);
19
+ }
20
+ }
21
+ /**
22
+ * An adapter that wraps the legacy `Tool` interface to make it compatible
23
+ * with the new `ToolInvocation` pattern.
24
+ */
25
+ export class LegacyToolInvocation {
26
+ legacyTool;
27
+ params;
28
+ constructor(legacyTool, params) {
29
+ this.legacyTool = legacyTool;
30
+ this.params = params;
31
+ }
32
+ getDescription() {
33
+ return this.legacyTool.getDescription(this.params);
34
+ }
35
+ toolLocations() {
36
+ return this.legacyTool.toolLocations(this.params);
37
+ }
38
+ shouldConfirmExecute(abortSignal) {
39
+ return this.legacyTool.shouldConfirmExecute(this.params, abortSignal);
40
+ }
41
+ execute(signal, updateOutput) {
42
+ return this.legacyTool.execute(this.params, signal, updateOutput);
43
+ }
44
+ }
45
+ /**
46
+ * New base class for tools that separates validation from execution.
47
+ * New tools should extend this class.
48
+ */
49
+ export class DeclarativeTool {
50
+ name;
51
+ displayName;
52
+ description;
53
+ kind;
54
+ parameterSchema;
55
+ isOutputMarkdown;
56
+ canUpdateOutput;
57
+ constructor(name, displayName, description, kind, parameterSchema, isOutputMarkdown = true, canUpdateOutput = false) {
58
+ this.name = name;
59
+ this.displayName = displayName;
60
+ this.description = description;
61
+ this.kind = kind;
62
+ this.parameterSchema = parameterSchema;
63
+ this.isOutputMarkdown = isOutputMarkdown;
64
+ this.canUpdateOutput = canUpdateOutput;
65
+ }
66
+ get schema() {
67
+ return {
68
+ name: this.name,
69
+ description: this.description,
70
+ parametersJsonSchema: this.parameterSchema,
71
+ };
72
+ }
73
+ /**
74
+ * Validates the raw tool parameters.
75
+ * Subclasses should override this to add custom validation logic
76
+ * beyond the JSON schema check.
77
+ * @param params The raw parameters from the model.
78
+ * @returns An error message string if invalid, null otherwise.
79
+ */
80
+ validateToolParams(_params) {
81
+ // Base implementation can be extended by subclasses.
82
+ return null;
83
+ }
84
+ /**
85
+ * A convenience method that builds and executes the tool in one step.
86
+ * Throws an error if validation fails.
87
+ * @param params The raw, untrusted parameters from the model.
88
+ * @param signal AbortSignal for tool cancellation.
89
+ * @param updateOutput Optional callback to stream output.
90
+ * @returns The result of the tool execution.
91
+ */
92
+ async buildAndExecute(params, signal, updateOutput) {
93
+ const invocation = this.build(params);
94
+ return invocation.execute(signal, updateOutput);
95
+ }
96
+ }
97
+ /**
98
+ * New base class for declarative tools that separates validation from execution.
99
+ * New tools should extend this class, which provides a `build` method that
100
+ * validates parameters before deferring to a `createInvocation` method for
101
+ * the final `ToolInvocation` object instantiation.
102
+ */
103
+ export class BaseDeclarativeTool extends DeclarativeTool {
104
+ build(params) {
105
+ const validationError = this.validateToolParams(params);
106
+ if (validationError) {
107
+ throw new Error(validationError);
108
+ }
109
+ return this.createInvocation(params);
110
+ }
111
+ }
6
112
  /**
7
113
  * Base implementation for tools with common functionality
114
+ * @deprecated Use `DeclarativeTool` for new tools.
8
115
  */
9
- export class BaseTool {
116
+ export class BaseTool extends DeclarativeTool {
10
117
  name;
11
118
  displayName;
12
119
  description;
13
- icon;
120
+ kind;
14
121
  parameterSchema;
15
122
  isOutputMarkdown;
16
123
  canUpdateOutput;
@@ -21,26 +128,24 @@ export class BaseTool {
21
128
  * @param description Description of what the tool does
22
129
  * @param isOutputMarkdown Whether the tool's output should be rendered as markdown
23
130
  * @param canUpdateOutput Whether the tool supports live (streaming) output
24
- * @param parameterSchema Open API 3.0 Schema defining the parameters
131
+ * @param parameterSchema JSON Schema defining the parameters
25
132
  */
26
- constructor(name, displayName, description, icon, parameterSchema, isOutputMarkdown = true, canUpdateOutput = false) {
133
+ constructor(name, displayName, description, kind, parameterSchema, isOutputMarkdown = true, canUpdateOutput = false) {
134
+ super(name, displayName, description, kind, parameterSchema, isOutputMarkdown, canUpdateOutput);
27
135
  this.name = name;
28
136
  this.displayName = displayName;
29
137
  this.description = description;
30
- this.icon = icon;
138
+ this.kind = kind;
31
139
  this.parameterSchema = parameterSchema;
32
140
  this.isOutputMarkdown = isOutputMarkdown;
33
141
  this.canUpdateOutput = canUpdateOutput;
34
142
  }
35
- /**
36
- * Function declaration schema computed from name, description, and parameterSchema
37
- */
38
- get schema() {
39
- return {
40
- name: this.name,
41
- description: this.description,
42
- parameters: this.parameterSchema,
43
- };
143
+ build(params) {
144
+ const validationError = this.validateToolParams(params);
145
+ if (validationError) {
146
+ throw new Error(validationError);
147
+ }
148
+ return new LegacyToolInvocation(this, params);
44
149
  }
45
150
  /**
46
151
  * Validates the parameters for the tool
@@ -88,6 +193,71 @@ export class BaseTool {
88
193
  return [];
89
194
  }
90
195
  }
196
+ /**
197
+ * Detects cycles in a JSON schemas due to `$ref`s.
198
+ * @param schema The root of the JSON schema.
199
+ * @returns `true` if a cycle is detected, `false` otherwise.
200
+ */
201
+ export function hasCycleInSchema(schema) {
202
+ function resolveRef(ref) {
203
+ if (!ref.startsWith('#/')) {
204
+ return null;
205
+ }
206
+ const path = ref.substring(2).split('/');
207
+ let current = schema;
208
+ for (const segment of path) {
209
+ if (typeof current !== 'object' ||
210
+ current === null ||
211
+ !Object.prototype.hasOwnProperty.call(current, segment)) {
212
+ return null;
213
+ }
214
+ current = current[segment];
215
+ }
216
+ return current;
217
+ }
218
+ function traverse(node, visitedRefs, pathRefs) {
219
+ if (typeof node !== 'object' || node === null) {
220
+ return false;
221
+ }
222
+ if (Array.isArray(node)) {
223
+ for (const item of node) {
224
+ if (traverse(item, visitedRefs, pathRefs)) {
225
+ return true;
226
+ }
227
+ }
228
+ return false;
229
+ }
230
+ if ('$ref' in node && typeof node.$ref === 'string') {
231
+ const ref = node.$ref;
232
+ if (ref === '#/' || pathRefs.has(ref)) {
233
+ // A ref to just '#/' is always a cycle.
234
+ return true; // Cycle detected!
235
+ }
236
+ if (visitedRefs.has(ref)) {
237
+ return false; // Bail early, we have checked this ref before.
238
+ }
239
+ const resolvedNode = resolveRef(ref);
240
+ if (resolvedNode) {
241
+ // Add it to both visited and the current path
242
+ visitedRefs.add(ref);
243
+ pathRefs.add(ref);
244
+ const hasCycle = traverse(resolvedNode, visitedRefs, pathRefs);
245
+ pathRefs.delete(ref); // Backtrack, leaving it in visited
246
+ return hasCycle;
247
+ }
248
+ }
249
+ // Crawl all the properties of node
250
+ for (const key in node) {
251
+ if (Object.prototype.hasOwnProperty.call(node, key)) {
252
+ if (traverse(node[key], visitedRefs, pathRefs)) {
253
+ return true;
254
+ }
255
+ }
256
+ }
257
+ return false;
258
+ }
259
+ return traverse(schema, new Set(), new Set());
260
+ }
91
261
  export var ToolConfirmationOutcome;
92
262
  (function (ToolConfirmationOutcome) {
93
263
  ToolConfirmationOutcome["ProceedOnce"] = "proceed_once";
@@ -97,15 +267,16 @@ export var ToolConfirmationOutcome;
97
267
  ToolConfirmationOutcome["ModifyWithEditor"] = "modify_with_editor";
98
268
  ToolConfirmationOutcome["Cancel"] = "cancel";
99
269
  })(ToolConfirmationOutcome || (ToolConfirmationOutcome = {}));
100
- export var Icon;
101
- (function (Icon) {
102
- Icon["FileSearch"] = "fileSearch";
103
- Icon["Folder"] = "folder";
104
- Icon["Globe"] = "globe";
105
- Icon["Hammer"] = "hammer";
106
- Icon["LightBulb"] = "lightBulb";
107
- Icon["Pencil"] = "pencil";
108
- Icon["Regex"] = "regex";
109
- Icon["Terminal"] = "terminal";
110
- })(Icon || (Icon = {}));
270
+ export var Kind;
271
+ (function (Kind) {
272
+ Kind["Read"] = "read";
273
+ Kind["Edit"] = "edit";
274
+ Kind["Delete"] = "delete";
275
+ Kind["Move"] = "move";
276
+ Kind["Search"] = "search";
277
+ Kind["Execute"] = "execute";
278
+ Kind["Think"] = "think";
279
+ Kind["Fetch"] = "fetch";
280
+ Kind["Other"] = "other";
281
+ })(Kind || (Kind = {}));
111
282
  //# sourceMappingURL=tools.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tools.js","sourceRoot":"","sources":["../../../src/tools/tools.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AA6FH;;GAEG;AACH,MAAM,OAAgB,QAAQ;IAejB;IACA;IACA;IACA;IACA;IACA;IACA;IAhBX;;;;;;;;OAQG;IACH,YACW,IAAY,EACZ,WAAmB,EACnB,WAAmB,EACnB,IAAU,EACV,eAAuB,EACvB,mBAA4B,IAAI,EAChC,kBAA2B,KAAK;QANhC,SAAI,GAAJ,IAAI,CAAQ;QACZ,gBAAW,GAAX,WAAW,CAAQ;QACnB,gBAAW,GAAX,WAAW,CAAQ;QACnB,SAAI,GAAJ,IAAI,CAAM;QACV,oBAAe,GAAf,eAAe,CAAQ;QACvB,qBAAgB,GAAhB,gBAAgB,CAAgB;QAChC,oBAAe,GAAf,eAAe,CAAiB;IACxC,CAAC;IAEJ;;OAEG;IACH,IAAI,MAAM;QACR,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,UAAU,EAAE,IAAI,CAAC,eAAe;SACjC,CAAC;IACJ,CAAC;IAED;;;;;;;OAOG;IACH,6DAA6D;IAC7D,kBAAkB,CAAC,MAAe;QAChC,6DAA6D;QAC7D,sEAAsE;QACtE,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;OAKG;IACH,cAAc,CAAC,MAAe;QAC5B,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAChC,CAAC;IAED;;;;OAIG;IACH,oBAAoB;IAClB,6DAA6D;IAC7D,MAAe;IACf,6DAA6D;IAC7D,WAAwB;QAExB,OAAO,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAChC,CAAC;IAED;;;;OAIG;IACH,aAAa;IACX,6DAA6D;IAC7D,MAAe;QAEf,OAAO,EAAE,CAAC;IACZ,CAAC;CAcF;AA4FD,MAAM,CAAN,IAAY,uBAOX;AAPD,WAAY,uBAAuB;IACjC,uDAA4B,CAAA;IAC5B,2DAAgC,CAAA;IAChC,wEAA6C,CAAA;IAC7C,oEAAyC,CAAA;IACzC,kEAAuC,CAAA;IACvC,4CAAiB,CAAA;AACnB,CAAC,EAPW,uBAAuB,KAAvB,uBAAuB,QAOlC;AAED,MAAM,CAAN,IAAY,IASX;AATD,WAAY,IAAI;IACd,iCAAyB,CAAA;IACzB,yBAAiB,CAAA;IACjB,uBAAe,CAAA;IACf,yBAAiB,CAAA;IACjB,+BAAuB,CAAA;IACvB,yBAAiB,CAAA;IACjB,uBAAe,CAAA;IACf,6BAAqB,CAAA;AACvB,CAAC,EATW,IAAI,KAAJ,IAAI,QASf"}
1
+ {"version":3,"file":"tools.js","sourceRoot":"","sources":["../../../src/tools/tools.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAmDH;;GAEG;AACH,MAAM,OAAgB,kBAAkB;IAKjB;IAArB,YAAqB,MAAe;QAAf,WAAM,GAAN,MAAM,CAAS;IAAG,CAAC;IAIxC,aAAa;QACX,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,oBAAoB,CAClB,YAAyB;QAEzB,OAAO,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAChC,CAAC;CAMF;AAOD;;;GAGG;AACH,MAAM,OAAO,oBAAoB;IAMZ;IACR;IAFX,YACmB,UAAsC,EAC9C,MAAe;QADP,eAAU,GAAV,UAAU,CAA4B;QAC9C,WAAM,GAAN,MAAM,CAAS;IACvB,CAAC;IAEJ,cAAc;QACZ,OAAO,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACrD,CAAC;IAED,aAAa;QACX,OAAO,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACpD,CAAC;IAED,oBAAoB,CAClB,WAAwB;QAExB,OAAO,IAAI,CAAC,UAAU,CAAC,oBAAoB,CAAC,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IACxE,CAAC;IAED,OAAO,CACL,MAAmB,EACnB,YAAuC;QAEvC,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC;IACpE,CAAC;CACF;AAoDD;;;GAGG;AACH,MAAM,OAAgB,eAAe;IAMxB;IACA;IACA;IACA;IACA;IACA;IACA;IAPX,YACW,IAAY,EACZ,WAAmB,EACnB,WAAmB,EACnB,IAAU,EACV,eAAwB,EACxB,mBAA4B,IAAI,EAChC,kBAA2B,KAAK;QANhC,SAAI,GAAJ,IAAI,CAAQ;QACZ,gBAAW,GAAX,WAAW,CAAQ;QACnB,gBAAW,GAAX,WAAW,CAAQ;QACnB,SAAI,GAAJ,IAAI,CAAM;QACV,oBAAe,GAAf,eAAe,CAAS;QACxB,qBAAgB,GAAhB,gBAAgB,CAAgB;QAChC,oBAAe,GAAf,eAAe,CAAiB;IACxC,CAAC;IAEJ,IAAI,MAAM;QACR,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,oBAAoB,EAAE,IAAI,CAAC,eAAe;SAC3C,CAAC;IACJ,CAAC;IAED;;;;;;OAMG;IACO,kBAAkB,CAAC,OAAgB;QAC3C,qDAAqD;QACrD,OAAO,IAAI,CAAC;IACd,CAAC;IAWD;;;;;;;OAOG;IACH,KAAK,CAAC,eAAe,CACnB,MAAe,EACf,MAAmB,EACnB,YAAuC;QAEvC,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACtC,OAAO,UAAU,CAAC,OAAO,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IAClD,CAAC;CACF;AAED;;;;;GAKG;AACH,MAAM,OAAgB,mBAGpB,SAAQ,eAAiC;IACzC,KAAK,CAAC,MAAe;QACnB,MAAM,eAAe,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;QACxD,IAAI,eAAe,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC;QACnC,CAAC;QACD,OAAO,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;IACvC,CAAC;CAKF;AAOD;;;GAGG;AACH,MAAM,OAAgB,QAGpB,SAAQ,eAAiC;IAWrB;IACA;IACA;IACA;IACA;IACA;IACA;IAhBpB;;;;;;;;OAQG;IACH,YACoB,IAAY,EACZ,WAAmB,EACnB,WAAmB,EACnB,IAAU,EACV,eAAwB,EACxB,mBAA4B,IAAI,EAChC,kBAA2B,KAAK;QAElD,KAAK,CACH,IAAI,EACJ,WAAW,EACX,WAAW,EACX,IAAI,EACJ,eAAe,EACf,gBAAgB,EAChB,eAAe,CAChB,CAAC;QAhBgB,SAAI,GAAJ,IAAI,CAAQ;QACZ,gBAAW,GAAX,WAAW,CAAQ;QACnB,gBAAW,GAAX,WAAW,CAAQ;QACnB,SAAI,GAAJ,IAAI,CAAM;QACV,oBAAe,GAAf,eAAe,CAAS;QACxB,qBAAgB,GAAhB,gBAAgB,CAAgB;QAChC,oBAAe,GAAf,eAAe,CAAiB;IAWpD,CAAC;IAED,KAAK,CAAC,MAAe;QACnB,MAAM,eAAe,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;QACxD,IAAI,eAAe,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC;QACnC,CAAC;QACD,OAAO,IAAI,oBAAoB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAChD,CAAC;IAED;;;;;;;OAOG;IACH,6DAA6D;IACpD,kBAAkB,CAAC,MAAe;QACzC,6DAA6D;QAC7D,sEAAsE;QACtE,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;OAKG;IACH,cAAc,CAAC,MAAe;QAC5B,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAChC,CAAC;IAED;;;;OAIG;IACH,oBAAoB;IAClB,6DAA6D;IAC7D,MAAe;IACf,6DAA6D;IAC7D,WAAwB;QAExB,OAAO,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAChC,CAAC;IAED;;;;OAIG;IACH,aAAa;IACX,6DAA6D;IAC7D,MAAe;QAEf,OAAO,EAAE,CAAC;IACZ,CAAC;CAcF;AAgCD;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAAC,MAAc;IAC7C,SAAS,UAAU,CAAC,GAAW;QAC7B,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YAC1B,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,IAAI,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACzC,IAAI,OAAO,GAAY,MAAM,CAAC;QAC9B,KAAK,MAAM,OAAO,IAAI,IAAI,EAAE,CAAC;YAC3B,IACE,OAAO,OAAO,KAAK,QAAQ;gBAC3B,OAAO,KAAK,IAAI;gBAChB,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,EACvD,CAAC;gBACD,OAAO,IAAI,CAAC;YACd,CAAC;YACD,OAAO,GAAI,OAAmC,CAAC,OAAO,CAAC,CAAC;QAC1D,CAAC;QACD,OAAO,OAAiB,CAAC;IAC3B,CAAC;IAED,SAAS,QAAQ,CACf,IAAa,EACb,WAAwB,EACxB,QAAqB;QAErB,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;YAC9C,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YACxB,KAAK,MAAM,IAAI,IAAI,IAAI,EAAE,CAAC;gBACxB,IAAI,QAAQ,CAAC,IAAI,EAAE,WAAW,EAAE,QAAQ,CAAC,EAAE,CAAC;oBAC1C,OAAO,IAAI,CAAC;gBACd,CAAC;YACH,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,MAAM,IAAI,IAAI,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACpD,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC;YACtB,IAAI,GAAG,KAAK,IAAI,IAAI,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBACtC,wCAAwC;gBACxC,OAAO,IAAI,CAAC,CAAC,kBAAkB;YACjC,CAAC;YACD,IAAI,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBACzB,OAAO,KAAK,CAAC,CAAC,+CAA+C;YAC/D,CAAC;YAED,MAAM,YAAY,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;YACrC,IAAI,YAAY,EAAE,CAAC;gBACjB,8CAA8C;gBAC9C,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBACrB,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBAClB,MAAM,QAAQ,GAAG,QAAQ,CAAC,YAAY,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC;gBAC/D,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,mCAAmC;gBACzD,OAAO,QAAQ,CAAC;YAClB,CAAC;QACH,CAAC;QAED,mCAAmC;QACnC,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC;gBACpD,IACE,QAAQ,CACL,IAAgC,CAAC,GAAG,CAAC,EACtC,WAAW,EACX,QAAQ,CACT,EACD,CAAC;oBACD,OAAO,IAAI,CAAC;gBACd,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,QAAQ,CAAC,MAAM,EAAE,IAAI,GAAG,EAAU,EAAE,IAAI,GAAG,EAAU,CAAC,CAAC;AAChE,CAAC;AAwED,MAAM,CAAN,IAAY,uBAOX;AAPD,WAAY,uBAAuB;IACjC,uDAA4B,CAAA;IAC5B,2DAAgC,CAAA;IAChC,wEAA6C,CAAA;IAC7C,oEAAyC,CAAA;IACzC,kEAAuC,CAAA;IACvC,4CAAiB,CAAA;AACnB,CAAC,EAPW,uBAAuB,KAAvB,uBAAuB,QAOlC;AAED,MAAM,CAAN,IAAY,IAUX;AAVD,WAAY,IAAI;IACd,qBAAa,CAAA;IACb,qBAAa,CAAA;IACb,yBAAiB,CAAA;IACjB,qBAAa,CAAA;IACb,yBAAiB,CAAA;IACjB,2BAAmB,CAAA;IACnB,uBAAe,CAAA;IACf,uBAAe,CAAA;IACf,uBAAe,CAAA;AACjB,CAAC,EAVW,IAAI,KAAJ,IAAI,QAUf"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ export {};