@google/gemini-cli-core 0.1.10-dev.15 → 0.1.11

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 (158) hide show
  1. package/README.md +16 -2
  2. package/dist/google-gemini-cli-core-0.1.10.tgz +0 -0
  3. package/dist/src/code_assist/codeAssist.d.ts +2 -1
  4. package/dist/src/code_assist/codeAssist.js +4 -3
  5. package/dist/src/code_assist/codeAssist.js.map +1 -1
  6. package/dist/src/code_assist/converter.js.map +1 -1
  7. package/dist/src/code_assist/oauth2.d.ts +3 -1
  8. package/dist/src/code_assist/oauth2.js +98 -12
  9. package/dist/src/code_assist/oauth2.js.map +1 -1
  10. package/dist/src/code_assist/oauth2.test.js +68 -7
  11. package/dist/src/code_assist/oauth2.test.js.map +1 -1
  12. package/dist/src/code_assist/server.js +35 -2
  13. package/dist/src/code_assist/server.js.map +1 -1
  14. package/dist/src/code_assist/setup.js +1 -1
  15. package/dist/src/code_assist/setup.js.map +1 -1
  16. package/dist/src/code_assist/setup.test.d.ts +6 -0
  17. package/dist/src/code_assist/setup.test.js +62 -0
  18. package/dist/src/code_assist/setup.test.js.map +1 -0
  19. package/dist/src/config/config.d.ts +26 -3
  20. package/dist/src/config/config.js +90 -56
  21. package/dist/src/config/config.js.map +1 -1
  22. package/dist/src/config/config.test.js +25 -0
  23. package/dist/src/config/config.test.js.map +1 -1
  24. package/dist/src/core/client.d.ts +20 -5
  25. package/dist/src/core/client.js +76 -22
  26. package/dist/src/core/client.js.map +1 -1
  27. package/dist/src/core/client.test.js +52 -10
  28. package/dist/src/core/client.test.js.map +1 -1
  29. package/dist/src/core/contentGenerator.d.ts +5 -5
  30. package/dist/src/core/contentGenerator.js +16 -15
  31. package/dist/src/core/contentGenerator.js.map +1 -1
  32. package/dist/src/core/contentGenerator.test.js +52 -5
  33. package/dist/src/core/contentGenerator.test.js.map +1 -1
  34. package/dist/src/core/coreToolScheduler.d.ts +9 -2
  35. package/dist/src/core/coreToolScheduler.js +28 -2
  36. package/dist/src/core/coreToolScheduler.js.map +1 -1
  37. package/dist/src/core/coreToolScheduler.test.js +80 -0
  38. package/dist/src/core/coreToolScheduler.test.js.map +1 -1
  39. package/dist/src/core/geminiChat.d.ts +2 -2
  40. package/dist/src/core/geminiChat.js +52 -32
  41. package/dist/src/core/geminiChat.js.map +1 -1
  42. package/dist/src/core/geminiChat.test.js +4 -2
  43. package/dist/src/core/geminiChat.test.js.map +1 -1
  44. package/dist/src/core/modelCheck.js +1 -1
  45. package/dist/src/core/modelCheck.js.map +1 -1
  46. package/dist/src/core/nonInteractiveToolExecutor.js +3 -0
  47. package/dist/src/core/nonInteractiveToolExecutor.js.map +1 -1
  48. package/dist/src/core/nonInteractiveToolExecutor.test.js +5 -0
  49. package/dist/src/core/nonInteractiveToolExecutor.test.js.map +1 -1
  50. package/dist/src/core/turn.d.ts +3 -1
  51. package/dist/src/core/turn.js +5 -2
  52. package/dist/src/core/turn.js.map +1 -1
  53. package/dist/src/core/turn.test.js +2 -2
  54. package/dist/src/core/turn.test.js.map +1 -1
  55. package/dist/src/index.d.ts +1 -0
  56. package/dist/src/index.js +1 -0
  57. package/dist/src/index.js.map +1 -1
  58. package/dist/src/services/fileDiscoveryService.d.ts +4 -0
  59. package/dist/src/services/fileDiscoveryService.js +13 -0
  60. package/dist/src/services/fileDiscoveryService.js.map +1 -1
  61. package/dist/src/telemetry/clearcut-logger/clearcut-logger.js +20 -0
  62. package/dist/src/telemetry/clearcut-logger/clearcut-logger.js.map +1 -1
  63. package/dist/src/telemetry/clearcut-logger/event-metadata-key.d.ts +2 -1
  64. package/dist/src/telemetry/clearcut-logger/event-metadata-key.js +5 -0
  65. package/dist/src/telemetry/clearcut-logger/event-metadata-key.js.map +1 -1
  66. package/dist/src/telemetry/loggers.test.js +18 -5
  67. package/dist/src/telemetry/loggers.test.js.map +1 -1
  68. package/dist/src/telemetry/types.d.ts +9 -4
  69. package/dist/src/telemetry/types.js +14 -4
  70. package/dist/src/telemetry/types.js.map +1 -1
  71. package/dist/src/telemetry/uiTelemetry.test.js +1 -0
  72. package/dist/src/telemetry/uiTelemetry.test.js.map +1 -1
  73. package/dist/src/tools/edit.d.ts +1 -2
  74. package/dist/src/tools/edit.js +11 -12
  75. package/dist/src/tools/edit.js.map +1 -1
  76. package/dist/src/tools/edit.test.js +7 -9
  77. package/dist/src/tools/edit.test.js.map +1 -1
  78. package/dist/src/tools/glob.js +9 -8
  79. package/dist/src/tools/glob.js.map +1 -1
  80. package/dist/src/tools/glob.test.js +3 -3
  81. package/dist/src/tools/glob.test.js.map +1 -1
  82. package/dist/src/tools/grep.js +8 -7
  83. package/dist/src/tools/grep.js.map +1 -1
  84. package/dist/src/tools/grep.test.js +4 -4
  85. package/dist/src/tools/grep.test.js.map +1 -1
  86. package/dist/src/tools/ls.js +9 -8
  87. package/dist/src/tools/ls.js.map +1 -1
  88. package/dist/src/tools/mcp-client.d.ts +0 -9
  89. package/dist/src/tools/mcp-client.js +21 -37
  90. package/dist/src/tools/mcp-client.js.map +1 -1
  91. package/dist/src/tools/mcp-client.test.js +85 -4
  92. package/dist/src/tools/mcp-client.test.js.map +1 -1
  93. package/dist/src/tools/mcp-tool.d.ts +3 -3
  94. package/dist/src/tools/mcp-tool.js.map +1 -1
  95. package/dist/src/tools/memoryTool.js +3 -2
  96. package/dist/src/tools/memoryTool.js.map +1 -1
  97. package/dist/src/tools/read-file.js +8 -8
  98. package/dist/src/tools/read-file.js.map +1 -1
  99. package/dist/src/tools/read-file.test.js +4 -4
  100. package/dist/src/tools/read-file.test.js.map +1 -1
  101. package/dist/src/tools/read-many-files.js +24 -38
  102. package/dist/src/tools/read-many-files.js.map +1 -1
  103. package/dist/src/tools/read-many-files.test.js +4 -4
  104. package/dist/src/tools/read-many-files.test.js.map +1 -1
  105. package/dist/src/tools/shell.d.ts +5 -2
  106. package/dist/src/tools/shell.js +38 -17
  107. package/dist/src/tools/shell.js.map +1 -1
  108. package/dist/src/tools/shell.test.js +85 -65
  109. package/dist/src/tools/shell.test.js.map +1 -1
  110. package/dist/src/tools/tool-registry.d.ts +16 -2
  111. package/dist/src/tools/tool-registry.js +150 -19
  112. package/dist/src/tools/tool-registry.js.map +1 -1
  113. package/dist/src/tools/tool-registry.test.js +186 -75
  114. package/dist/src/tools/tool-registry.test.js.map +1 -1
  115. package/dist/src/tools/tools.d.ts +7 -4
  116. package/dist/src/tools/tools.js.map +1 -1
  117. package/dist/src/tools/web-fetch.js +6 -5
  118. package/dist/src/tools/web-fetch.js.map +1 -1
  119. package/dist/src/tools/web-search.d.ts +1 -1
  120. package/dist/src/tools/web-search.js +7 -6
  121. package/dist/src/tools/web-search.js.map +1 -1
  122. package/dist/src/tools/write-file.d.ts +0 -1
  123. package/dist/src/tools/write-file.js +10 -11
  124. package/dist/src/tools/write-file.js.map +1 -1
  125. package/dist/src/tools/write-file.test.js +4 -4
  126. package/dist/src/tools/write-file.test.js.map +1 -1
  127. package/dist/src/utils/editCorrector.d.ts +1 -1
  128. package/dist/src/utils/editCorrector.js +106 -2
  129. package/dist/src/utils/editCorrector.js.map +1 -1
  130. package/dist/src/utils/editCorrector.test.js +69 -19
  131. package/dist/src/utils/editCorrector.test.js.map +1 -1
  132. package/dist/src/utils/editor.d.ts +1 -1
  133. package/dist/src/utils/editor.js +1 -1
  134. package/dist/src/utils/fileUtils.d.ts +1 -1
  135. package/dist/src/utils/fileUtils.js +17 -0
  136. package/dist/src/utils/fileUtils.js.map +1 -1
  137. package/dist/src/utils/fileUtils.test.js +17 -0
  138. package/dist/src/utils/fileUtils.test.js.map +1 -1
  139. package/dist/src/utils/flashFallback.integration.test.js +1 -1
  140. package/dist/src/utils/flashFallback.integration.test.js.map +1 -1
  141. package/dist/src/utils/messageInspectors.d.ts +1 -0
  142. package/dist/src/utils/messageInspectors.js +5 -0
  143. package/dist/src/utils/messageInspectors.js.map +1 -1
  144. package/dist/src/utils/nextSpeakerChecker.js +1 -1
  145. package/dist/src/utils/nextSpeakerChecker.js.map +1 -1
  146. package/dist/src/utils/quotaErrorDetection.d.ts +22 -0
  147. package/dist/src/utils/quotaErrorDetection.js +74 -0
  148. package/dist/src/utils/quotaErrorDetection.js.map +1 -0
  149. package/dist/src/utils/retry.d.ts +1 -1
  150. package/dist/src/utils/retry.js +58 -2
  151. package/dist/src/utils/retry.js.map +1 -1
  152. package/dist/src/utils/retry.test.js +1 -1
  153. package/dist/src/utils/retry.test.js.map +1 -1
  154. package/dist/src/utils/schemaValidator.d.ts +10 -5
  155. package/dist/src/utils/schemaValidator.js +44 -32
  156. package/dist/src/utils/schemaValidator.js.map +1 -1
  157. package/dist/tsconfig.tsbuildinfo +1 -1
  158. package/package.json +7 -6
@@ -3,10 +3,13 @@
3
3
  * Copyright 2025 Google LLC
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
+ import { Type } from '@google/genai';
6
7
  import { BaseTool } from './tools.js';
7
- import { spawn, execSync } from 'node:child_process';
8
+ import { spawn } from 'node:child_process';
9
+ import { StringDecoder } from 'node:string_decoder';
8
10
  import { discoverMcpTools } from './mcp-client.js';
9
11
  import { DiscoveredMCPTool } from './mcp-tool.js';
12
+ import { parse } from 'shell-quote';
10
13
  export class DiscoveredTool extends BaseTool {
11
14
  config;
12
15
  name;
@@ -100,7 +103,6 @@ Signal: Signal number or \`(none)\` if no signal was received.
100
103
  }
101
104
  export class ToolRegistry {
102
105
  tools = new Map();
103
- discovery = null;
104
106
  config;
105
107
  constructor(config) {
106
108
  this.config = config;
@@ -126,33 +128,108 @@ export class ToolRegistry {
126
128
  if (tool instanceof DiscoveredTool || tool instanceof DiscoveredMCPTool) {
127
129
  this.tools.delete(tool.name);
128
130
  }
129
- else {
130
- // Keep manually registered tools
131
- }
132
131
  }
133
- // discover tools using discovery command, if configured
132
+ await this.discoverAndRegisterToolsFromCommand();
133
+ // discover tools using MCP servers, if configured
134
+ await discoverMcpTools(this.config.getMcpServers() ?? {}, this.config.getMcpServerCommand(), this);
135
+ }
136
+ async discoverAndRegisterToolsFromCommand() {
134
137
  const discoveryCmd = this.config.getToolDiscoveryCommand();
135
- if (discoveryCmd) {
136
- // execute discovery command and extract function declarations (w/ or w/o "tool" wrappers)
137
- const functions = [];
138
- for (const tool of JSON.parse(execSync(discoveryCmd).toString().trim())) {
139
- if (tool['function_declarations']) {
140
- functions.push(...tool['function_declarations']);
138
+ if (!discoveryCmd) {
139
+ return;
140
+ }
141
+ try {
142
+ const cmdParts = parse(discoveryCmd);
143
+ if (cmdParts.length === 0) {
144
+ throw new Error('Tool discovery command is empty or contains only whitespace.');
145
+ }
146
+ const proc = spawn(cmdParts[0], cmdParts.slice(1));
147
+ let stdout = '';
148
+ const stdoutDecoder = new StringDecoder('utf8');
149
+ let stderr = '';
150
+ const stderrDecoder = new StringDecoder('utf8');
151
+ let sizeLimitExceeded = false;
152
+ const MAX_STDOUT_SIZE = 10 * 1024 * 1024; // 10MB limit
153
+ const MAX_STDERR_SIZE = 10 * 1024 * 1024; // 10MB limit
154
+ let stdoutByteLength = 0;
155
+ let stderrByteLength = 0;
156
+ proc.stdout.on('data', (data) => {
157
+ if (sizeLimitExceeded)
158
+ return;
159
+ if (stdoutByteLength + data.length > MAX_STDOUT_SIZE) {
160
+ sizeLimitExceeded = true;
161
+ proc.kill();
162
+ return;
141
163
  }
142
- else if (tool['functionDeclarations']) {
143
- functions.push(...tool['functionDeclarations']);
164
+ stdoutByteLength += data.length;
165
+ stdout += stdoutDecoder.write(data);
166
+ });
167
+ proc.stderr.on('data', (data) => {
168
+ if (sizeLimitExceeded)
169
+ return;
170
+ if (stderrByteLength + data.length > MAX_STDERR_SIZE) {
171
+ sizeLimitExceeded = true;
172
+ proc.kill();
173
+ return;
144
174
  }
145
- else if (tool['name']) {
146
- functions.push(tool);
175
+ stderrByteLength += data.length;
176
+ stderr += stderrDecoder.write(data);
177
+ });
178
+ await new Promise((resolve, reject) => {
179
+ proc.on('error', reject);
180
+ proc.on('close', (code) => {
181
+ stdout += stdoutDecoder.end();
182
+ stderr += stderrDecoder.end();
183
+ if (sizeLimitExceeded) {
184
+ return reject(new Error(`Tool discovery command output exceeded size limit of ${MAX_STDOUT_SIZE} bytes.`));
185
+ }
186
+ if (code !== 0) {
187
+ console.error(`Command failed with code ${code}`);
188
+ console.error(stderr);
189
+ return reject(new Error(`Tool discovery command failed with exit code ${code}`));
190
+ }
191
+ resolve();
192
+ });
193
+ });
194
+ // execute discovery command and extract function declarations (w/ or w/o "tool" wrappers)
195
+ const functions = [];
196
+ const discoveredItems = JSON.parse(stdout.trim());
197
+ if (!discoveredItems || !Array.isArray(discoveredItems)) {
198
+ throw new Error('Tool discovery command did not return a JSON array of tools.');
199
+ }
200
+ for (const tool of discoveredItems) {
201
+ if (tool && typeof tool === 'object') {
202
+ if (Array.isArray(tool['function_declarations'])) {
203
+ functions.push(...tool['function_declarations']);
204
+ }
205
+ else if (Array.isArray(tool['functionDeclarations'])) {
206
+ functions.push(...tool['functionDeclarations']);
207
+ }
208
+ else if (tool['name']) {
209
+ functions.push(tool);
210
+ }
147
211
  }
148
212
  }
149
213
  // register each function as a tool
150
214
  for (const func of functions) {
151
- this.registerTool(new DiscoveredTool(this.config, func.name, func.description, func.parameters));
215
+ if (!func.name) {
216
+ console.warn('Discovered a tool with no name. Skipping.');
217
+ continue;
218
+ }
219
+ // Sanitize the parameters before registering the tool.
220
+ const parameters = func.parameters &&
221
+ typeof func.parameters === 'object' &&
222
+ !Array.isArray(func.parameters)
223
+ ? func.parameters
224
+ : {};
225
+ sanitizeParameters(parameters);
226
+ this.registerTool(new DiscoveredTool(this.config, func.name, func.description ?? '', parameters));
152
227
  }
153
228
  }
154
- // discover tools using MCP servers, if configured
155
- await discoverMcpTools(this.config.getMcpServers() ?? {}, this.config.getMcpServerCommand(), this);
229
+ catch (e) {
230
+ console.error(`Tool discovery command "${discoveryCmd}" failed:`, e);
231
+ throw e;
232
+ }
156
233
  }
157
234
  /**
158
235
  * Retrieves the list of tool schemas (FunctionDeclaration array).
@@ -192,4 +269,58 @@ export class ToolRegistry {
192
269
  return this.tools.get(name);
193
270
  }
194
271
  }
272
+ /**
273
+ * Sanitizes a schema object in-place to ensure compatibility with the Gemini API.
274
+ *
275
+ * NOTE: This function mutates the passed schema object.
276
+ *
277
+ * It performs the following actions:
278
+ * - Removes the `default` property when `anyOf` is present.
279
+ * - Removes unsupported `format` values from string properties, keeping only 'enum' and 'date-time'.
280
+ * - Recursively sanitizes nested schemas within `anyOf`, `items`, and `properties`.
281
+ * - Handles circular references within the schema to prevent infinite loops.
282
+ *
283
+ * @param schema The schema object to sanitize. It will be modified directly.
284
+ */
285
+ export function sanitizeParameters(schema) {
286
+ _sanitizeParameters(schema, new Set());
287
+ }
288
+ /**
289
+ * Internal recursive implementation for sanitizeParameters.
290
+ * @param schema The schema object to sanitize.
291
+ * @param visited A set used to track visited schema objects during recursion.
292
+ */
293
+ function _sanitizeParameters(schema, visited) {
294
+ if (!schema || visited.has(schema)) {
295
+ return;
296
+ }
297
+ visited.add(schema);
298
+ if (schema.anyOf) {
299
+ // Vertex AI gets confused if both anyOf and default are set.
300
+ schema.default = undefined;
301
+ for (const item of schema.anyOf) {
302
+ if (typeof item !== 'boolean') {
303
+ _sanitizeParameters(item, visited);
304
+ }
305
+ }
306
+ }
307
+ if (schema.items && typeof schema.items !== 'boolean') {
308
+ _sanitizeParameters(schema.items, visited);
309
+ }
310
+ if (schema.properties) {
311
+ for (const item of Object.values(schema.properties)) {
312
+ if (typeof item !== 'boolean') {
313
+ _sanitizeParameters(item, visited);
314
+ }
315
+ }
316
+ }
317
+ // Vertex AI only supports 'enum' and 'date-time' for STRING format.
318
+ if (schema.type === Type.STRING) {
319
+ if (schema.format &&
320
+ schema.format !== 'enum' &&
321
+ schema.format !== 'date-time') {
322
+ schema.format = undefined;
323
+ }
324
+ }
325
+ }
195
326
  //# sourceMappingURL=tool-registry.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tool-registry.js","sourceRoot":"","sources":["../../../src/tools/tool-registry.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAoB,QAAQ,EAAE,MAAM,YAAY,CAAC;AAExD,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAIlD,MAAM,OAAO,cAAe,SAAQ,QAAgC;IAE/C;IACR;IACA;IACA;IAJX,YACmB,MAAc,EACtB,IAAY,EACZ,WAAmB,EACnB,eAAwC;QAEjD,MAAM,YAAY,GAAG,MAAM,CAAC,uBAAuB,EAAG,CAAC;QACvD,MAAM,WAAW,GAAG,MAAM,CAAC,kBAAkB,EAAG,CAAC;QACjD,WAAW,IAAI;;uEAEoD,YAAY;oDAC/B,WAAW,IAAI,IAAI;;;;;;;;;;;;CAYtE,CAAC;QACE,KAAK,CACH,IAAI,EACJ,IAAI,EACJ,WAAW,EACX,eAAe,EACf,KAAK,EAAE,mBAAmB;QAC1B,KAAK,CACN,CAAC;QA9Be,WAAM,GAAN,MAAM,CAAQ;QACtB,SAAI,GAAJ,IAAI,CAAQ;QACZ,gBAAW,GAAX,WAAW,CAAQ;QACnB,oBAAe,GAAf,eAAe,CAAyB;IA4BnD,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,MAAkB;QAC9B,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,kBAAkB,EAAG,CAAC;QACtD,MAAM,KAAK,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAC9C,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;QAC1C,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;QAElB,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,IAAI,KAAK,GAAiB,IAAI,CAAC;QAC/B,IAAI,IAAI,GAAkB,IAAI,CAAC;QAC/B,IAAI,MAAM,GAA0B,IAAI,CAAC;QAEzC,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;YAClC,MAAM,QAAQ,GAAG,CAAC,IAAY,EAAE,EAAE;gBAChC,MAAM,IAAI,IAAI,EAAE,QAAQ,EAAE,CAAC;YAC7B,CAAC,CAAC;YAEF,MAAM,QAAQ,GAAG,CAAC,IAAY,EAAE,EAAE;gBAChC,MAAM,IAAI,IAAI,EAAE,QAAQ,EAAE,CAAC;YAC7B,CAAC,CAAC;YAEF,MAAM,OAAO,GAAG,CAAC,GAAU,EAAE,EAAE;gBAC7B,KAAK,GAAG,GAAG,CAAC;YACd,CAAC,CAAC;YAEF,MAAM,OAAO,GAAG,CACd,KAAoB,EACpB,OAA8B,EAC9B,EAAE;gBACF,IAAI,GAAG,KAAK,CAAC;gBACb,MAAM,GAAG,OAAO,CAAC;gBACjB,OAAO,EAAE,CAAC;gBACV,OAAO,EAAE,CAAC;YACZ,CAAC,CAAC;YAEF,MAAM,OAAO,GAAG,GAAG,EAAE;gBACnB,KAAK,CAAC,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;gBAC9C,KAAK,CAAC,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;gBAC9C,KAAK,CAAC,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;gBACvC,KAAK,CAAC,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;gBACvC,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;oBACpB,KAAK,CAAC,UAAU,EAAE,CAAC;gBACrB,CAAC;YACH,CAAC,CAAC;YAEF,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;YAClC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;YAClC,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAC3B,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAC7B,CAAC,CAAC,CAAC;QAEH,uGAAuG;QACvG,IAAI,KAAK,IAAI,IAAI,KAAK,CAAC,IAAI,MAAM,IAAI,MAAM,EAAE,CAAC;YAC5C,MAAM,UAAU,GAAG;gBACjB,WAAW,MAAM,IAAI,SAAS,EAAE;gBAChC,WAAW,MAAM,IAAI,SAAS,EAAE;gBAChC,UAAU,KAAK,IAAI,QAAQ,EAAE;gBAC7B,cAAc,IAAI,IAAI,QAAQ,EAAE;gBAChC,WAAW,MAAM,IAAI,QAAQ,EAAE;aAChC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACb,OAAO;gBACL,UAAU;gBACV,aAAa,EAAE,UAAU;aAC1B,CAAC;QACJ,CAAC;QAED,OAAO;YACL,UAAU,EAAE,MAAM;YAClB,aAAa,EAAE,MAAM;SACtB,CAAC;IACJ,CAAC;CACF;AAED,MAAM,OAAO,YAAY;IACf,KAAK,GAAsB,IAAI,GAAG,EAAE,CAAC;IACrC,SAAS,GAAyB,IAAI,CAAC;IACvC,MAAM,CAAS;IAEvB,YAAY,MAAc;QACxB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED;;;OAGG;IACH,YAAY,CAAC,IAAU;QACrB,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAC9B,mEAAmE;YACnE,OAAO,CAAC,IAAI,CACV,mBAAmB,IAAI,CAAC,IAAI,uCAAuC,CACpE,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAClC,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,aAAa;QACjB,yCAAyC;QACzC,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;YACvC,IAAI,IAAI,YAAY,cAAc,IAAI,IAAI,YAAY,iBAAiB,EAAE,CAAC;gBACxE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC/B,CAAC;iBAAM,CAAC;gBACN,iCAAiC;YACnC,CAAC;QACH,CAAC;QACD,wDAAwD;QACxD,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,uBAAuB,EAAE,CAAC;QAC3D,IAAI,YAAY,EAAE,CAAC;YACjB,0FAA0F;YAC1F,MAAM,SAAS,GAA0B,EAAE,CAAC;YAC5C,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;gBACxE,IAAI,IAAI,CAAC,uBAAuB,CAAC,EAAE,CAAC;oBAClC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,uBAAuB,CAAC,CAAC,CAAC;gBACnD,CAAC;qBAAM,IAAI,IAAI,CAAC,sBAAsB,CAAC,EAAE,CAAC;oBACxC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC;gBAClD,CAAC;qBAAM,IAAI,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;oBACxB,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACvB,CAAC;YACH,CAAC;YACD,mCAAmC;YACnC,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;gBAC7B,IAAI,CAAC,YAAY,CACf,IAAI,cAAc,CAChB,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,IAAK,EACV,IAAI,CAAC,WAAY,EACjB,IAAI,CAAC,UAAsC,CAC5C,CACF,CAAC;YACJ,CAAC;QACH,CAAC;QACD,kDAAkD;QAClD,MAAM,gBAAgB,CACpB,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,IAAI,EAAE,EACjC,IAAI,CAAC,MAAM,CAAC,mBAAmB,EAAE,EACjC,IAAI,CACL,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACH,uBAAuB;QACrB,MAAM,YAAY,GAA0B,EAAE,CAAC;QAC/C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YAC1B,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;QACH,OAAO,YAAY,CAAC;IACtB,CAAC;IAED;;OAEG;IACH,WAAW;QACT,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;IACzC,CAAC;IAED;;OAEG;IACH,gBAAgB,CAAC,UAAkB;QACjC,MAAM,WAAW,GAAW,EAAE,CAAC;QAC/B,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;YACvC,IAAK,IAA0B,EAAE,UAAU,KAAK,UAAU,EAAE,CAAC;gBAC3D,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACzB,CAAC;QACH,CAAC;QACD,OAAO,WAAW,CAAC;IACrB,CAAC;IAED;;OAEG;IACH,OAAO,CAAC,IAAY;QAClB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;CACF"}
1
+ {"version":3,"file":"tool-registry.js","sourceRoot":"","sources":["../../../src/tools/tool-registry.ts"],"names":[],"mappings":"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"}
@@ -5,12 +5,12 @@
5
5
  */
6
6
  /* eslint-disable @typescript-eslint/no-explicit-any */
7
7
  import { describe, it, expect, vi, beforeEach, afterEach, } from 'vitest';
8
- import { ToolRegistry, DiscoveredTool } from './tool-registry.js';
8
+ import { ToolRegistry, sanitizeParameters, } from './tool-registry.js';
9
9
  import { DiscoveredMCPTool } from './mcp-tool.js';
10
- import { Config, ApprovalMode, } from '../config/config.js';
10
+ import { Config, ApprovalMode } from '../config/config.js';
11
11
  import { BaseTool } from './tools.js';
12
12
  import { mcpToTool, Type, } from '@google/genai';
13
- import { execSync } from 'node:child_process';
13
+ import { spawn } from 'node:child_process';
14
14
  // Use vi.hoisted to define the mock function so it can be used in the vi.mock factory
15
15
  const mockDiscoverMcpTools = vi.hoisted(() => vi.fn());
16
16
  // Mock ./mcp-client.js to control its behavior within tool-registry tests
@@ -37,7 +37,6 @@ vi.mock('@modelcontextprotocol/sdk/client/index.js', () => {
37
37
  set onerror(handler) {
38
38
  mockMcpClientOnError(handler);
39
39
  },
40
- // listTools and callTool are no longer directly used by ToolRegistry/discoverMcpTools
41
40
  }));
42
41
  return { Client: MockClient };
43
42
  });
@@ -62,7 +61,6 @@ vi.mock('@google/genai', async () => {
62
61
  return {
63
62
  ...actualGenai,
64
63
  mcpToTool: vi.fn().mockImplementation(() => ({
65
- // Default mock implementation
66
64
  tool: vi.fn().mockResolvedValue({ functionDeclarations: [] }),
67
65
  callTool: vi.fn(),
68
66
  })),
@@ -76,9 +74,9 @@ const createMockCallableTool = (toolDeclarations) => ({
76
74
  class MockTool extends BaseTool {
77
75
  constructor(name = 'mock-tool', description = 'A mock tool') {
78
76
  super(name, name, description, {
79
- type: 'object',
77
+ type: Type.OBJECT,
80
78
  properties: {
81
- param: { type: 'string' },
79
+ param: { type: Type.STRING },
82
80
  },
83
81
  required: ['param'],
84
82
  });
@@ -105,6 +103,7 @@ const baseConfigParams = {
105
103
  describe('ToolRegistry', () => {
106
104
  let config;
107
105
  let toolRegistry;
106
+ let mockConfigGetToolDiscoveryCommand;
108
107
  beforeEach(() => {
109
108
  config = new Config(baseConfigParams);
110
109
  toolRegistry = new ToolRegistry(config);
@@ -112,13 +111,15 @@ describe('ToolRegistry', () => {
112
111
  vi.spyOn(console, 'error').mockImplementation(() => { });
113
112
  vi.spyOn(console, 'debug').mockImplementation(() => { });
114
113
  vi.spyOn(console, 'log').mockImplementation(() => { });
115
- // Reset mocks for MCP parts
116
- mockMcpClientConnect.mockReset().mockResolvedValue(undefined); // Default connect success
114
+ mockMcpClientConnect.mockReset().mockResolvedValue(undefined);
117
115
  mockStdioTransportClose.mockReset();
118
116
  mockSseTransportClose.mockReset();
119
117
  vi.mocked(mcpToTool).mockClear();
120
- // Default mcpToTool to return a callable tool that returns no functions
121
118
  vi.mocked(mcpToTool).mockReturnValue(createMockCallableTool([]));
119
+ mockConfigGetToolDiscoveryCommand = vi.spyOn(config, 'getToolDiscoveryCommand');
120
+ vi.spyOn(config, 'getMcpServers');
121
+ vi.spyOn(config, 'getMcpServerCommand');
122
+ mockDiscoverMcpTools.mockReset().mockResolvedValue(undefined);
122
123
  });
123
124
  afterEach(() => {
124
125
  vi.restoreAllMocks();
@@ -129,18 +130,16 @@ describe('ToolRegistry', () => {
129
130
  toolRegistry.registerTool(tool);
130
131
  expect(toolRegistry.getTool('mock-tool')).toBe(tool);
131
132
  });
132
- // ... other registerTool tests
133
133
  });
134
134
  describe('getToolsByServer', () => {
135
135
  it('should return an empty array if no tools match the server name', () => {
136
- toolRegistry.registerTool(new MockTool()); // A non-MCP tool
136
+ toolRegistry.registerTool(new MockTool());
137
137
  expect(toolRegistry.getToolsByServer('any-mcp-server')).toEqual([]);
138
138
  });
139
139
  it('should return only tools matching the server name', async () => {
140
140
  const server1Name = 'mcp-server-uno';
141
141
  const server2Name = 'mcp-server-dos';
142
- // Manually register mock MCP tools for this test
143
- const mockCallable = {}; // Minimal mock callable
142
+ const mockCallable = {};
144
143
  const mcpTool1 = new DiscoveredMCPTool(mockCallable, server1Name, 'server1Name__tool-on-server1', 'd1', {}, 'tool-on-server1');
145
144
  const mcpTool2 = new DiscoveredMCPTool(mockCallable, server2Name, 'server2Name__tool-on-server2', 'd2', {}, 'tool-on-server2');
146
145
  const nonMcpTool = new MockTool('regular-tool');
@@ -150,48 +149,62 @@ describe('ToolRegistry', () => {
150
149
  const toolsFromServer1 = toolRegistry.getToolsByServer(server1Name);
151
150
  expect(toolsFromServer1).toHaveLength(1);
152
151
  expect(toolsFromServer1[0].name).toBe(mcpTool1.name);
153
- expect(toolsFromServer1[0].serverName).toBe(server1Name);
154
152
  const toolsFromServer2 = toolRegistry.getToolsByServer(server2Name);
155
153
  expect(toolsFromServer2).toHaveLength(1);
156
154
  expect(toolsFromServer2[0].name).toBe(mcpTool2.name);
157
- expect(toolsFromServer2[0].serverName).toBe(server2Name);
158
- expect(toolRegistry.getToolsByServer('non-existent-server')).toEqual([]);
159
155
  });
160
156
  });
161
157
  describe('discoverTools', () => {
162
- let mockConfigGetToolDiscoveryCommand;
163
- let mockConfigGetMcpServers;
164
- let mockConfigGetMcpServerCommand;
165
- let mockExecSync;
166
- beforeEach(() => {
167
- mockConfigGetToolDiscoveryCommand = vi.spyOn(config, 'getToolDiscoveryCommand');
168
- mockConfigGetMcpServers = vi.spyOn(config, 'getMcpServers');
169
- mockConfigGetMcpServerCommand = vi.spyOn(config, 'getMcpServerCommand');
170
- mockExecSync = vi.mocked(execSync);
171
- toolRegistry = new ToolRegistry(config); // Reset registry
172
- // Reset the mock for discoverMcpTools before each test in this suite
173
- mockDiscoverMcpTools.mockReset().mockResolvedValue(undefined);
174
- });
175
- it('should discover tools using discovery command', async () => {
176
- // ... this test remains largely the same
158
+ it('should sanitize tool parameters during discovery from command', async () => {
177
159
  const discoveryCommand = 'my-discovery-command';
178
160
  mockConfigGetToolDiscoveryCommand.mockReturnValue(discoveryCommand);
179
- const mockToolDeclarations = [
180
- {
181
- name: 'discovered-tool-1',
182
- description: 'A discovered tool',
183
- parameters: { type: Type.OBJECT, properties: {} },
161
+ const unsanitizedToolDeclaration = {
162
+ name: 'tool-with-bad-format',
163
+ description: 'A tool with an invalid format property',
164
+ parameters: {
165
+ type: Type.OBJECT,
166
+ properties: {
167
+ some_string: {
168
+ type: Type.STRING,
169
+ format: 'uuid', // This is an unsupported format
170
+ },
171
+ },
184
172
  },
185
- ];
186
- mockExecSync.mockReturnValue(Buffer.from(JSON.stringify([{ function_declarations: mockToolDeclarations }])));
173
+ };
174
+ const mockSpawn = vi.mocked(spawn);
175
+ const mockChildProcess = {
176
+ stdout: { on: vi.fn() },
177
+ stderr: { on: vi.fn() },
178
+ on: vi.fn(),
179
+ };
180
+ mockSpawn.mockReturnValue(mockChildProcess);
181
+ // Simulate stdout data
182
+ mockChildProcess.stdout.on.mockImplementation((event, callback) => {
183
+ if (event === 'data') {
184
+ callback(Buffer.from(JSON.stringify([
185
+ { function_declarations: [unsanitizedToolDeclaration] },
186
+ ])));
187
+ }
188
+ return mockChildProcess;
189
+ });
190
+ // Simulate process close
191
+ mockChildProcess.on.mockImplementation((event, callback) => {
192
+ if (event === 'close') {
193
+ callback(0);
194
+ }
195
+ return mockChildProcess;
196
+ });
187
197
  await toolRegistry.discoverTools();
188
- expect(execSync).toHaveBeenCalledWith(discoveryCommand);
189
- const discoveredTool = toolRegistry.getTool('discovered-tool-1');
190
- expect(discoveredTool).toBeInstanceOf(DiscoveredTool);
198
+ const discoveredTool = toolRegistry.getTool('tool-with-bad-format');
199
+ expect(discoveredTool).toBeDefined();
200
+ const registeredParams = discoveredTool.schema
201
+ .parameters;
202
+ expect(registeredParams.properties?.['some_string']).toBeDefined();
203
+ expect(registeredParams.properties?.['some_string']).toHaveProperty('format', undefined);
191
204
  });
192
205
  it('should discover tools using MCP servers defined in getMcpServers', async () => {
193
206
  mockConfigGetToolDiscoveryCommand.mockReturnValue(undefined);
194
- mockConfigGetMcpServerCommand.mockReturnValue(undefined);
207
+ vi.spyOn(config, 'getMcpServerCommand').mockReturnValue(undefined);
195
208
  const mcpServerConfigVal = {
196
209
  'my-mcp-server': {
197
210
  command: 'mcp-server-cmd',
@@ -199,44 +212,142 @@ describe('ToolRegistry', () => {
199
212
  trust: true,
200
213
  },
201
214
  };
202
- mockConfigGetMcpServers.mockReturnValue(mcpServerConfigVal);
215
+ vi.spyOn(config, 'getMcpServers').mockReturnValue(mcpServerConfigVal);
203
216
  await toolRegistry.discoverTools();
204
217
  expect(mockDiscoverMcpTools).toHaveBeenCalledWith(mcpServerConfigVal, undefined, toolRegistry);
205
- // We no longer check these as discoverMcpTools is mocked
206
- // expect(vi.mocked(mcpToTool)).toHaveBeenCalledTimes(1);
207
- // expect(Client).toHaveBeenCalledTimes(1);
208
- // expect(StdioClientTransport).toHaveBeenCalledWith({
209
- // command: 'mcp-server-cmd',
210
- // args: ['--port', '1234'],
211
- // env: expect.any(Object),
212
- // stderr: 'pipe',
213
- // });
214
- // expect(mockMcpClientConnect).toHaveBeenCalled();
215
- // To verify that tools *would* have been registered, we'd need mockDiscoverMcpTools
216
- // to call toolRegistry.registerTool, or we test that separately.
217
- // For now, we just check that the delegation happened.
218
- });
219
- it('should discover tools using MCP server command from getMcpServerCommand', async () => {
220
- mockConfigGetToolDiscoveryCommand.mockReturnValue(undefined);
221
- mockConfigGetMcpServers.mockReturnValue({});
222
- mockConfigGetMcpServerCommand.mockReturnValue('mcp-server-start-command --param');
223
- await toolRegistry.discoverTools();
224
- expect(mockDiscoverMcpTools).toHaveBeenCalledWith({}, 'mcp-server-start-command --param', toolRegistry);
225
218
  });
226
- it('should handle errors during MCP client connection gracefully and close transport', async () => {
219
+ it('should discover tools using MCP servers defined in getMcpServers', async () => {
227
220
  mockConfigGetToolDiscoveryCommand.mockReturnValue(undefined);
228
- mockConfigGetMcpServers.mockReturnValue({
229
- 'failing-mcp': { command: 'fail-cmd' },
230
- });
231
- mockMcpClientConnect.mockRejectedValue(new Error('Connection failed'));
221
+ vi.spyOn(config, 'getMcpServerCommand').mockReturnValue(undefined);
222
+ const mcpServerConfigVal = {
223
+ 'my-mcp-server': {
224
+ command: 'mcp-server-cmd',
225
+ args: ['--port', '1234'],
226
+ trust: true,
227
+ },
228
+ };
229
+ vi.spyOn(config, 'getMcpServers').mockReturnValue(mcpServerConfigVal);
232
230
  await toolRegistry.discoverTools();
233
- expect(mockDiscoverMcpTools).toHaveBeenCalledWith({
234
- 'failing-mcp': { command: 'fail-cmd' },
235
- }, undefined, toolRegistry);
236
- expect(toolRegistry.getAllTools()).toHaveLength(0);
231
+ expect(mockDiscoverMcpTools).toHaveBeenCalledWith(mcpServerConfigVal, undefined, toolRegistry);
237
232
  });
238
233
  });
239
- // Other tests for DiscoveredTool and DiscoveredMCPTool can be simplified or removed
240
- // if their core logic is now tested in their respective dedicated test files (mcp-tool.test.ts)
234
+ });
235
+ describe('sanitizeParameters', () => {
236
+ it('should remove unsupported format from a simple string property', () => {
237
+ const schema = {
238
+ type: Type.OBJECT,
239
+ properties: {
240
+ name: { type: Type.STRING },
241
+ id: { type: Type.STRING, format: 'uuid' },
242
+ },
243
+ };
244
+ sanitizeParameters(schema);
245
+ expect(schema.properties?.['id']).toHaveProperty('format', undefined);
246
+ expect(schema.properties?.['name']).not.toHaveProperty('format');
247
+ });
248
+ it('should NOT remove supported format values', () => {
249
+ const schema = {
250
+ type: Type.OBJECT,
251
+ properties: {
252
+ date: { type: Type.STRING, format: 'date-time' },
253
+ role: {
254
+ type: Type.STRING,
255
+ format: 'enum',
256
+ enum: ['admin', 'user'],
257
+ },
258
+ },
259
+ };
260
+ const originalSchema = JSON.parse(JSON.stringify(schema));
261
+ sanitizeParameters(schema);
262
+ expect(schema).toEqual(originalSchema);
263
+ });
264
+ it('should handle nested objects recursively', () => {
265
+ const schema = {
266
+ type: Type.OBJECT,
267
+ properties: {
268
+ user: {
269
+ type: Type.OBJECT,
270
+ properties: {
271
+ email: { type: Type.STRING, format: 'email' },
272
+ },
273
+ },
274
+ },
275
+ };
276
+ sanitizeParameters(schema);
277
+ expect(schema.properties?.['user']?.properties?.['email']).toHaveProperty('format', undefined);
278
+ });
279
+ it('should handle arrays of objects', () => {
280
+ const schema = {
281
+ type: Type.OBJECT,
282
+ properties: {
283
+ items: {
284
+ type: Type.ARRAY,
285
+ items: {
286
+ type: Type.OBJECT,
287
+ properties: {
288
+ itemId: { type: Type.STRING, format: 'uuid' },
289
+ },
290
+ },
291
+ },
292
+ },
293
+ };
294
+ sanitizeParameters(schema);
295
+ expect(schema.properties?.['items']?.items?.properties?.['itemId']).toHaveProperty('format', undefined);
296
+ });
297
+ it('should handle schemas with no properties to sanitize', () => {
298
+ const schema = {
299
+ type: Type.OBJECT,
300
+ properties: {
301
+ count: { type: Type.NUMBER },
302
+ isActive: { type: Type.BOOLEAN },
303
+ },
304
+ };
305
+ const originalSchema = JSON.parse(JSON.stringify(schema));
306
+ sanitizeParameters(schema);
307
+ expect(schema).toEqual(originalSchema);
308
+ });
309
+ it('should not crash on an empty or undefined schema', () => {
310
+ expect(() => sanitizeParameters({})).not.toThrow();
311
+ expect(() => sanitizeParameters(undefined)).not.toThrow();
312
+ });
313
+ it('should handle cyclic schemas without crashing', () => {
314
+ const schema = {
315
+ type: Type.OBJECT,
316
+ properties: {
317
+ name: { type: Type.STRING, format: 'hostname' },
318
+ },
319
+ };
320
+ schema.properties.self = schema;
321
+ expect(() => sanitizeParameters(schema)).not.toThrow();
322
+ expect(schema.properties.name).toHaveProperty('format', undefined);
323
+ });
324
+ it('should handle complex nested schemas with cycles', () => {
325
+ const userNode = {
326
+ type: Type.OBJECT,
327
+ properties: {
328
+ id: { type: Type.STRING, format: 'uuid' },
329
+ name: { type: Type.STRING },
330
+ manager: {
331
+ type: Type.OBJECT,
332
+ properties: {
333
+ id: { type: Type.STRING, format: 'uuid' },
334
+ },
335
+ },
336
+ },
337
+ };
338
+ userNode.properties.reports = {
339
+ type: Type.ARRAY,
340
+ items: userNode,
341
+ };
342
+ const schema = {
343
+ type: Type.OBJECT,
344
+ properties: {
345
+ ceo: userNode,
346
+ },
347
+ };
348
+ expect(() => sanitizeParameters(schema)).not.toThrow();
349
+ expect(schema.properties?.['ceo']?.properties?.['id']).toHaveProperty('format', undefined);
350
+ expect(schema.properties?.['ceo']?.properties?.['manager']?.properties?.['id']).toHaveProperty('format', undefined);
351
+ });
241
352
  });
242
353
  //# sourceMappingURL=tool-registry.test.js.map
@@ -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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"}