@google/gemini-cli-core 0.21.0-nightly.20251212.54de67536 → 0.21.0-nightly.20251216.bb0c0d8ee

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 (146) hide show
  1. package/dist/google-gemini-cli-core-0.21.0-nightly.20251213.977248e09.tgz +0 -0
  2. package/dist/src/agents/executor.js +1 -1
  3. package/dist/src/agents/executor.js.map +1 -1
  4. package/dist/src/agents/executor.test.js.map +1 -1
  5. package/dist/src/availability/policyCatalog.test.js.map +1 -1
  6. package/dist/src/commands/init.d.ts +7 -0
  7. package/dist/src/commands/init.js +53 -0
  8. package/dist/src/commands/init.js.map +1 -0
  9. package/dist/src/commands/init.test.d.ts +6 -0
  10. package/dist/src/commands/init.test.js +25 -0
  11. package/dist/src/commands/init.test.js.map +1 -0
  12. package/dist/src/config/config.test.js.map +1 -1
  13. package/dist/src/config/models.d.ts +9 -1
  14. package/dist/src/config/models.js +11 -1
  15. package/dist/src/config/models.js.map +1 -1
  16. package/dist/src/config/models.test.js +14 -1
  17. package/dist/src/config/models.test.js.map +1 -1
  18. package/dist/src/confirmation-bus/message-bus.js.map +1 -1
  19. package/dist/src/confirmation-bus/types.d.ts +4 -0
  20. package/dist/src/core/baseLlmClient.test.js.map +1 -1
  21. package/dist/src/core/contentGenerator.js +1 -1
  22. package/dist/src/core/contentGenerator.js.map +1 -1
  23. package/dist/src/core/contentGenerator.test.js.map +1 -1
  24. package/dist/src/core/coreToolScheduler.d.ts +1 -1
  25. package/dist/src/core/coreToolScheduler.js +72 -34
  26. package/dist/src/core/coreToolScheduler.js.map +1 -1
  27. package/dist/src/core/coreToolScheduler.test.js +134 -37
  28. package/dist/src/core/coreToolScheduler.test.js.map +1 -1
  29. package/dist/src/core/geminiChat.js +1 -3
  30. package/dist/src/core/geminiChat.js.map +1 -1
  31. package/dist/src/core/geminiChat.test.js.map +1 -1
  32. package/dist/src/core/logger.js.map +1 -1
  33. package/dist/src/core/nonInteractiveToolExecutor.test.js +4 -5
  34. package/dist/src/core/nonInteractiveToolExecutor.test.js.map +1 -1
  35. package/dist/src/core/turn.js +1 -1
  36. package/dist/src/core/turn.js.map +1 -1
  37. package/dist/src/generated/git-commit.d.ts +2 -2
  38. package/dist/src/generated/git-commit.js +2 -2
  39. package/dist/src/hooks/hookRegistry.d.ts +0 -7
  40. package/dist/src/hooks/hookRegistry.js +0 -20
  41. package/dist/src/hooks/hookRegistry.js.map +1 -1
  42. package/dist/src/hooks/hookRegistry.test.js +1 -7
  43. package/dist/src/hooks/hookRegistry.test.js.map +1 -1
  44. package/dist/src/hooks/hookRunner.test.js +1 -1
  45. package/dist/src/hooks/hookRunner.test.js.map +1 -1
  46. package/dist/src/hooks/hookSystem.d.ts +0 -8
  47. package/dist/src/hooks/hookSystem.js +0 -18
  48. package/dist/src/hooks/hookSystem.js.map +1 -1
  49. package/dist/src/hooks/hookSystem.test.js +2 -21
  50. package/dist/src/hooks/hookSystem.test.js.map +1 -1
  51. package/dist/src/ide/detect-ide.test.js +32 -1
  52. package/dist/src/ide/detect-ide.test.js.map +1 -1
  53. package/dist/src/ide/ide-installer.test.js +1 -1
  54. package/dist/src/ide/ide-installer.test.js.map +1 -1
  55. package/dist/src/index.d.ts +2 -0
  56. package/dist/src/index.js +2 -0
  57. package/dist/src/index.js.map +1 -1
  58. package/dist/src/mcp/oauth-provider.js.map +1 -1
  59. package/dist/src/policy/config.js +71 -2
  60. package/dist/src/policy/config.js.map +1 -1
  61. package/dist/src/policy/persistence.test.d.ts +6 -0
  62. package/dist/src/policy/persistence.test.js +149 -0
  63. package/dist/src/policy/persistence.test.js.map +1 -0
  64. package/dist/src/policy/policies/read-only.toml +5 -0
  65. package/dist/src/policy/policy-engine.js +55 -1
  66. package/dist/src/policy/policy-engine.js.map +1 -1
  67. package/dist/src/policy/shell-safety.test.d.ts +6 -0
  68. package/dist/src/policy/shell-safety.test.js +74 -0
  69. package/dist/src/policy/shell-safety.test.js.map +1 -0
  70. package/dist/src/policy/toml-loader.d.ts +8 -0
  71. package/dist/src/policy/toml-loader.js +3 -3
  72. package/dist/src/policy/toml-loader.js.map +1 -1
  73. package/dist/src/safety/checker-runner.js +17 -6
  74. package/dist/src/safety/checker-runner.js.map +1 -1
  75. package/dist/src/services/loopDetectionService.js +2 -2
  76. package/dist/src/services/loopDetectionService.js.map +1 -1
  77. package/dist/src/services/modelConfigService.js.map +1 -1
  78. package/dist/src/services/shellExecutionService.js +1 -2
  79. package/dist/src/services/shellExecutionService.js.map +1 -1
  80. package/dist/src/services/shellExecutionService.test.js +6 -3
  81. package/dist/src/services/shellExecutionService.test.js.map +1 -1
  82. package/dist/src/telemetry/activity-detector.test.js.map +1 -1
  83. package/dist/src/telemetry/clearcut-logger/clearcut-logger.js +5 -5
  84. package/dist/src/telemetry/clearcut-logger/clearcut-logger.js.map +1 -1
  85. package/dist/src/telemetry/clearcut-logger/clearcut-logger.test.js +18 -1
  86. package/dist/src/telemetry/clearcut-logger/clearcut-logger.test.js.map +1 -1
  87. package/dist/src/telemetry/config.js.map +1 -1
  88. package/dist/src/telemetry/loggers.test.js +5 -5
  89. package/dist/src/telemetry/loggers.test.js.map +1 -1
  90. package/dist/src/telemetry/metrics.test.js.map +1 -1
  91. package/dist/src/telemetry/startupProfiler.test.js +1 -2
  92. package/dist/src/telemetry/startupProfiler.test.js.map +1 -1
  93. package/dist/src/telemetry/trace.js.map +1 -1
  94. package/dist/src/telemetry/types.d.ts +10 -5
  95. package/dist/src/telemetry/types.js +16 -8
  96. package/dist/src/telemetry/types.js.map +1 -1
  97. package/dist/src/test-utils/mock-message-bus.js.map +1 -1
  98. package/dist/src/tools/edit.js +1 -0
  99. package/dist/src/tools/edit.js.map +1 -1
  100. package/dist/src/tools/edit.test.js.map +1 -1
  101. package/dist/src/tools/grep.js.map +1 -1
  102. package/dist/src/tools/mcp-tool.js +7 -0
  103. package/dist/src/tools/mcp-tool.js.map +1 -1
  104. package/dist/src/tools/memoryTool.js +1 -0
  105. package/dist/src/tools/memoryTool.js.map +1 -1
  106. package/dist/src/tools/modifiable-tool.js.map +1 -1
  107. package/dist/src/tools/read-file.test.js.map +1 -1
  108. package/dist/src/tools/shell.d.ts +2 -1
  109. package/dist/src/tools/shell.js +9 -1
  110. package/dist/src/tools/shell.js.map +1 -1
  111. package/dist/src/tools/shell.test.js +2 -1
  112. package/dist/src/tools/shell.test.js.map +1 -1
  113. package/dist/src/tools/smart-edit.js +1 -0
  114. package/dist/src/tools/smart-edit.js.map +1 -1
  115. package/dist/src/tools/smart-edit.test.js.map +1 -1
  116. package/dist/src/tools/tools.d.ts +19 -0
  117. package/dist/src/tools/tools.js +28 -9
  118. package/dist/src/tools/tools.js.map +1 -1
  119. package/dist/src/tools/web-fetch.js +1 -0
  120. package/dist/src/tools/web-fetch.js.map +1 -1
  121. package/dist/src/tools/write-file.js +1 -0
  122. package/dist/src/tools/write-file.js.map +1 -1
  123. package/dist/src/tools/write-file.test.js.map +1 -1
  124. package/dist/src/utils/checkpointUtils.js.map +1 -1
  125. package/dist/src/utils/extensionLoader.d.ts +2 -2
  126. package/dist/src/utils/extensionLoader.js +5 -6
  127. package/dist/src/utils/extensionLoader.js.map +1 -1
  128. package/dist/src/utils/extensionLoader.test.js +11 -0
  129. package/dist/src/utils/extensionLoader.test.js.map +1 -1
  130. package/dist/src/utils/filesearch/crawlCache.js.map +1 -1
  131. package/dist/src/utils/filesearch/fileSearch.js.map +1 -1
  132. package/dist/src/utils/shell-permissions.d.ts +52 -0
  133. package/dist/src/utils/shell-permissions.js +188 -0
  134. package/dist/src/utils/shell-permissions.js.map +1 -0
  135. package/dist/src/utils/shell-permissions.test.d.ts +6 -0
  136. package/dist/src/utils/shell-permissions.test.js +342 -0
  137. package/dist/src/utils/shell-permissions.test.js.map +1 -0
  138. package/dist/src/utils/shell-utils.d.ts +10 -47
  139. package/dist/src/utils/shell-utils.js +1 -182
  140. package/dist/src/utils/shell-utils.js.map +1 -1
  141. package/dist/src/utils/shell-utils.test.js +1 -288
  142. package/dist/src/utils/shell-utils.test.js.map +1 -1
  143. package/dist/src/utils/tool-utils.js.map +1 -1
  144. package/dist/tsconfig.tsbuildinfo +1 -1
  145. package/package.json +2 -1
  146. package/dist/google-gemini-cli-core-0.21.0-nightly.20251211.8c83e1ea9.tgz +0 -0
@@ -5,17 +5,19 @@
5
5
  */
6
6
  import { ToolConfirmationOutcome, ApprovalMode, logToolCall, ToolErrorType, ToolCallEvent, logToolOutputTruncated, ToolOutputTruncatedEvent, runInDevTraceSpan, } from '../index.js';
7
7
  import { READ_FILE_TOOL_NAME, SHELL_TOOL_NAME } from '../tools/tool-names.js';
8
- import { getResponseTextFromParts } from '../utils/generateContentResponseUtilities.js';
8
+ import { supportsMultimodalFunctionResponse } from '../config/models.js';
9
9
  import { isModifiableDeclarativeTool, modifyWithEditor, } from '../tools/modifiable-tool.js';
10
10
  import * as Diff from 'diff';
11
11
  import * as fs from 'node:fs/promises';
12
12
  import * as path from 'node:path';
13
- import { isShellInvocationAllowlisted, SHELL_TOOL_NAMES, } from '../utils/shell-utils.js';
13
+ import { SHELL_TOOL_NAMES } from '../utils/shell-utils.js';
14
14
  import { doesToolInvocationMatch } from '../utils/tool-utils.js';
15
+ import { isShellInvocationAllowlisted } from '../utils/shell-permissions.js';
15
16
  import levenshtein from 'fast-levenshtein';
16
17
  import { ShellToolInvocation } from '../tools/shell.js';
17
18
  import { MessageBusType } from '../confirmation-bus/types.js';
18
19
  import { fireToolNotificationHook, executeToolWithHooks, } from './coreToolHookTriggers.js';
20
+ import { debugLogger } from '../utils/debugLogger.js';
19
21
  /**
20
22
  * Formats tool output for a Gemini FunctionResponse.
21
23
  */
@@ -28,42 +30,75 @@ function createFunctionResponsePart(callId, toolName, output) {
28
30
  },
29
31
  };
30
32
  }
31
- export function convertToFunctionResponse(toolName, callId, llmContent) {
32
- const contentToProcess = Array.isArray(llmContent) && llmContent.length === 1
33
- ? llmContent[0]
34
- : llmContent;
35
- if (typeof contentToProcess === 'string') {
36
- return [createFunctionResponsePart(callId, toolName, contentToProcess)];
33
+ export function convertToFunctionResponse(toolName, callId, llmContent, model) {
34
+ if (typeof llmContent === 'string') {
35
+ return [createFunctionResponsePart(callId, toolName, llmContent)];
37
36
  }
38
- if (Array.isArray(contentToProcess)) {
39
- const functionResponse = createFunctionResponsePart(callId, toolName, 'Tool execution succeeded.');
40
- return [functionResponse, ...toParts(contentToProcess)];
37
+ const parts = toParts(llmContent);
38
+ // Separate text from binary types
39
+ const textParts = [];
40
+ const inlineDataParts = [];
41
+ const fileDataParts = [];
42
+ for (const part of parts) {
43
+ if (part.text !== undefined) {
44
+ textParts.push(part.text);
45
+ }
46
+ else if (part.inlineData) {
47
+ inlineDataParts.push(part);
48
+ }
49
+ else if (part.fileData) {
50
+ fileDataParts.push(part);
51
+ }
52
+ else if (part.functionResponse) {
53
+ if (parts.length > 1) {
54
+ debugLogger.warn('convertToFunctionResponse received multiple parts with a functionResponse. Only the functionResponse will be used, other parts will be ignored');
55
+ }
56
+ // Handle passthrough case
57
+ return [
58
+ {
59
+ functionResponse: {
60
+ id: callId,
61
+ name: toolName,
62
+ response: part.functionResponse.response,
63
+ },
64
+ },
65
+ ];
66
+ }
67
+ // Ignore other part types
41
68
  }
42
- // After this point, contentToProcess is a single Part object.
43
- if (contentToProcess.functionResponse) {
44
- if (contentToProcess.functionResponse.response?.['content']) {
45
- const stringifiedOutput = getResponseTextFromParts(contentToProcess.functionResponse.response['content']) || '';
46
- return [createFunctionResponsePart(callId, toolName, stringifiedOutput)];
47
- }
48
- // It's a functionResponse that we should pass through as is.
49
- return [contentToProcess];
69
+ // Build the primary response part
70
+ const part = {
71
+ functionResponse: {
72
+ id: callId,
73
+ name: toolName,
74
+ response: textParts.length > 0 ? { output: textParts.join('\n') } : {},
75
+ },
76
+ };
77
+ const isMultimodalFRSupported = supportsMultimodalFunctionResponse(model);
78
+ const siblingParts = [...fileDataParts];
79
+ if (inlineDataParts.length > 0) {
80
+ if (isMultimodalFRSupported) {
81
+ // Nest inlineData if supported by the model
82
+ part.functionResponse.parts =
83
+ inlineDataParts;
84
+ }
85
+ else {
86
+ // Otherwise treat as siblings
87
+ siblingParts.push(...inlineDataParts);
88
+ }
50
89
  }
51
- if (contentToProcess.inlineData || contentToProcess.fileData) {
52
- const mimeType = contentToProcess.inlineData?.mimeType ||
53
- contentToProcess.fileData?.mimeType ||
54
- 'unknown';
55
- const functionResponse = createFunctionResponsePart(callId, toolName, `Binary content of type ${mimeType} was processed.`);
56
- return [functionResponse, contentToProcess];
90
+ // Add descriptive text if the response object is empty but we have binary content
91
+ if (textParts.length === 0 &&
92
+ (inlineDataParts.length > 0 || fileDataParts.length > 0)) {
93
+ const totalBinaryItems = inlineDataParts.length + fileDataParts.length;
94
+ part.functionResponse.response = {
95
+ output: `Binary content provided (${totalBinaryItems} item(s)).`,
96
+ };
57
97
  }
58
- if (contentToProcess.text !== undefined) {
59
- return [
60
- createFunctionResponsePart(callId, toolName, contentToProcess.text),
61
- ];
98
+ if (siblingParts.length > 0) {
99
+ return [part, ...siblingParts];
62
100
  }
63
- // Default case for other kinds of parts.
64
- return [
65
- createFunctionResponsePart(callId, toolName, 'Tool execution succeeded.'),
66
- ];
101
+ return [part];
67
102
  }
68
103
  function toParts(input) {
69
104
  const parts = [];
@@ -535,6 +570,9 @@ export class CoreToolScheduler {
535
570
  this.setStatusInternal(reqInfo.callId, 'scheduled', signal);
536
571
  }
537
572
  else {
573
+ if (!this.config.isInteractive()) {
574
+ throw new Error(`Tool execution for "${toolCall.tool.displayName || toolCall.tool.name}" requires user confirmation, which is not supported in non-interactive mode.`);
575
+ }
538
576
  // Fire Notification hook before showing confirmation to user
539
577
  const messageBus = this.config.getMessageBus();
540
578
  const hooksEnabled = this.config.getEnableHooks();
@@ -729,7 +767,7 @@ export class CoreToolScheduler {
729
767
  }));
730
768
  }
731
769
  }
732
- const response = convertToFunctionResponse(toolName, callId, content);
770
+ const response = convertToFunctionResponse(toolName, callId, content, this.config.getActiveModel());
733
771
  const successResponse = {
734
772
  callId,
735
773
  responseParts: response,
@@ -1 +1 @@
1
- {"version":3,"file":"coreToolScheduler.js","sourceRoot":"","sources":["../../../src/core/coreToolScheduler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"coreToolScheduler.js","sourceRoot":"","sources":["../../../src/core/coreToolScheduler.ts"],"names":[],"mappings":"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"}
@@ -11,7 +11,8 @@ import { MockModifiableTool, MockTool, MOCK_TOOL_SHOULD_CONFIRM_EXECUTE, } from
11
11
  import * as modifiableToolModule from '../tools/modifiable-tool.js';
12
12
  import * as fs from 'node:fs/promises';
13
13
  import * as path from 'node:path';
14
- import { isShellInvocationAllowlisted } from '../utils/shell-utils.js';
14
+ import { isShellInvocationAllowlisted } from '../utils/shell-permissions.js';
15
+ import { DEFAULT_GEMINI_MODEL, PREVIEW_GEMINI_MODEL, } from '../config/models.js';
15
16
  vi.mock('fs/promises', () => ({
16
17
  writeFile: vi.fn(),
17
18
  }));
@@ -143,6 +144,7 @@ function createMockConfig(overrides = {}) {
143
144
  getSessionId: () => 'test-session-id',
144
145
  getUsageStatisticsEnabled: () => true,
145
146
  getDebugMode: () => false,
147
+ isInteractive: () => true,
146
148
  getApprovalMode: () => ApprovalMode.DEFAULT,
147
149
  setApprovalMode: () => { },
148
150
  getAllowedTools: () => [],
@@ -160,6 +162,7 @@ function createMockConfig(overrides = {}) {
160
162
  getTruncateToolOutputThreshold: () => DEFAULT_TRUNCATE_TOOL_OUTPUT_THRESHOLD,
161
163
  getTruncateToolOutputLines: () => DEFAULT_TRUNCATE_TOOL_OUTPUT_LINES,
162
164
  getToolRegistry: () => defaultToolRegistry,
165
+ getActiveModel: () => DEFAULT_GEMINI_MODEL,
163
166
  getUseSmartEdit: () => false,
164
167
  getGeminiClient: () => null,
165
168
  getEnableMessageBusIntegration: () => false,
@@ -257,7 +260,6 @@ describe('CoreToolScheduler', () => {
257
260
  const onToolCallsUpdate = vi.fn();
258
261
  const mockConfig = createMockConfig({
259
262
  getToolRegistry: () => mockToolRegistry,
260
- isInteractive: () => false,
261
263
  getHookSystem: () => undefined,
262
264
  });
263
265
  const scheduler = new CoreToolScheduler({
@@ -347,7 +349,6 @@ describe('CoreToolScheduler', () => {
347
349
  const onToolCallsUpdate = vi.fn();
348
350
  const mockConfig = createMockConfig({
349
351
  getToolRegistry: () => mockToolRegistry,
350
- isInteractive: () => false,
351
352
  getHookSystem: () => undefined,
352
353
  });
353
354
  const scheduler = new CoreToolScheduler({
@@ -441,6 +442,57 @@ describe('CoreToolScheduler', () => {
441
442
  const statuses = onToolCallsUpdate.mock.calls.flatMap((call) => call[0].map((toolCall) => toolCall.status));
442
443
  expect(statuses).not.toContain('error');
443
444
  });
445
+ it('should error when tool requires confirmation in non-interactive mode', async () => {
446
+ const mockTool = new MockTool({
447
+ name: 'mockTool',
448
+ shouldConfirmExecute: MOCK_TOOL_SHOULD_CONFIRM_EXECUTE,
449
+ });
450
+ const declarativeTool = mockTool;
451
+ const mockToolRegistry = {
452
+ getTool: () => declarativeTool,
453
+ getFunctionDeclarations: () => [],
454
+ tools: new Map(),
455
+ discovery: {},
456
+ registerTool: () => { },
457
+ getToolByName: () => declarativeTool,
458
+ getToolByDisplayName: () => declarativeTool,
459
+ getTools: () => [],
460
+ discoverTools: async () => { },
461
+ getAllTools: () => [],
462
+ getToolsByServer: () => [],
463
+ };
464
+ const onAllToolCallsComplete = vi.fn();
465
+ const onToolCallsUpdate = vi.fn();
466
+ const mockConfig = createMockConfig({
467
+ getToolRegistry: () => mockToolRegistry,
468
+ isInteractive: () => false,
469
+ });
470
+ const scheduler = new CoreToolScheduler({
471
+ config: mockConfig,
472
+ onAllToolCallsComplete,
473
+ onToolCallsUpdate,
474
+ getPreferredEditor: () => 'vscode',
475
+ });
476
+ const abortController = new AbortController();
477
+ const request = {
478
+ callId: '1',
479
+ name: 'mockTool',
480
+ args: {},
481
+ isClientInitiated: false,
482
+ prompt_id: 'prompt-id-1',
483
+ };
484
+ await scheduler.schedule([request], abortController.signal);
485
+ expect(onAllToolCallsComplete).toHaveBeenCalled();
486
+ const completedCalls = onAllToolCallsComplete.mock
487
+ .calls[0][0];
488
+ expect(completedCalls[0].status).toBe('error');
489
+ const erroredCall = completedCalls[0];
490
+ const errorResponse = erroredCall.response;
491
+ const errorParts = errorResponse.responseParts;
492
+ // @ts-expect-error - accessing internal structure of FunctionResponsePart
493
+ const errorMessage = errorParts[0].functionResponse.response.error;
494
+ expect(errorMessage).toContain('Tool execution for "mockTool" requires user confirmation, which is not supported in non-interactive mode.');
495
+ });
444
496
  describe('getToolSuggestion', () => {
445
497
  it('should suggest the top N closest tool names for a typo', () => {
446
498
  // Create mocked tool registry
@@ -493,7 +545,6 @@ describe('CoreToolScheduler with payload', () => {
493
545
  const onToolCallsUpdate = vi.fn();
494
546
  const mockConfig = createMockConfig({
495
547
  getToolRegistry: () => mockToolRegistry,
496
- isInteractive: () => false,
497
548
  });
498
549
  const mockMessageBus = createMockMessageBus();
499
550
  mockConfig.getMessageBus = vi.fn().mockReturnValue(mockMessageBus);
@@ -539,7 +590,7 @@ describe('convertToFunctionResponse', () => {
539
590
  const callId = 'call1';
540
591
  it('should handle simple string llmContent', () => {
541
592
  const llmContent = 'Simple text output';
542
- const result = convertToFunctionResponse(toolName, callId, llmContent);
593
+ const result = convertToFunctionResponse(toolName, callId, llmContent, DEFAULT_GEMINI_MODEL);
543
594
  expect(result).toEqual([
544
595
  {
545
596
  functionResponse: {
@@ -552,7 +603,7 @@ describe('convertToFunctionResponse', () => {
552
603
  });
553
604
  it('should handle llmContent as a single Part with text', () => {
554
605
  const llmContent = { text: 'Text from Part object' };
555
- const result = convertToFunctionResponse(toolName, callId, llmContent);
606
+ const result = convertToFunctionResponse(toolName, callId, llmContent, DEFAULT_GEMINI_MODEL);
556
607
  expect(result).toEqual([
557
608
  {
558
609
  functionResponse: {
@@ -565,7 +616,7 @@ describe('convertToFunctionResponse', () => {
565
616
  });
566
617
  it('should handle llmContent as a PartListUnion array with a single text Part', () => {
567
618
  const llmContent = [{ text: 'Text from array' }];
568
- const result = convertToFunctionResponse(toolName, callId, llmContent);
619
+ const result = convertToFunctionResponse(toolName, callId, llmContent, DEFAULT_GEMINI_MODEL);
569
620
  expect(result).toEqual([
570
621
  {
571
622
  functionResponse: {
@@ -576,94 +627,144 @@ describe('convertToFunctionResponse', () => {
576
627
  },
577
628
  ]);
578
629
  });
579
- it('should handle llmContent with inlineData', () => {
630
+ it('should handle llmContent as a PartListUnion array with multiple Parts', () => {
631
+ const llmContent = [{ text: 'part1' }, { text: 'part2' }];
632
+ const result = convertToFunctionResponse(toolName, callId, llmContent, DEFAULT_GEMINI_MODEL);
633
+ expect(result).toEqual([
634
+ {
635
+ functionResponse: {
636
+ name: toolName,
637
+ id: callId,
638
+ response: { output: 'part1\npart2' },
639
+ },
640
+ },
641
+ ]);
642
+ });
643
+ it('should handle llmContent with fileData for Gemini 3 model (should be siblings)', () => {
580
644
  const llmContent = {
581
- inlineData: { mimeType: 'image/png', data: 'base64...' },
645
+ fileData: { mimeType: 'application/pdf', fileUri: 'gs://...' },
582
646
  };
583
- const result = convertToFunctionResponse(toolName, callId, llmContent);
647
+ const result = convertToFunctionResponse(toolName, callId, llmContent, PREVIEW_GEMINI_MODEL);
584
648
  expect(result).toEqual([
585
649
  {
586
650
  functionResponse: {
587
651
  name: toolName,
588
652
  id: callId,
589
- response: {
590
- output: 'Binary content of type image/png was processed.',
591
- },
653
+ response: { output: 'Binary content provided (1 item(s)).' },
592
654
  },
593
655
  },
594
656
  llmContent,
595
657
  ]);
596
658
  });
597
- it('should handle llmContent with fileData', () => {
659
+ it('should handle llmContent with inlineData for Gemini 3 model (should be nested)', () => {
660
+ const llmContent = {
661
+ inlineData: { mimeType: 'image/png', data: 'base64...' },
662
+ };
663
+ const result = convertToFunctionResponse(toolName, callId, llmContent, PREVIEW_GEMINI_MODEL);
664
+ expect(result).toEqual([
665
+ {
666
+ functionResponse: {
667
+ name: toolName,
668
+ id: callId,
669
+ response: { output: 'Binary content provided (1 item(s)).' },
670
+ parts: [llmContent],
671
+ },
672
+ },
673
+ ]);
674
+ });
675
+ it('should handle llmContent with fileData for non-Gemini 3 models', () => {
598
676
  const llmContent = {
599
677
  fileData: { mimeType: 'application/pdf', fileUri: 'gs://...' },
600
678
  };
601
- const result = convertToFunctionResponse(toolName, callId, llmContent);
679
+ const result = convertToFunctionResponse(toolName, callId, llmContent, DEFAULT_GEMINI_MODEL);
602
680
  expect(result).toEqual([
603
681
  {
604
682
  functionResponse: {
605
683
  name: toolName,
606
684
  id: callId,
607
- response: {
608
- output: 'Binary content of type application/pdf was processed.',
609
- },
685
+ response: { output: 'Binary content provided (1 item(s)).' },
610
686
  },
611
687
  },
612
688
  llmContent,
613
689
  ]);
614
690
  });
691
+ it('should preserve existing functionResponse metadata', () => {
692
+ const innerId = 'inner-call-id';
693
+ const innerName = 'inner-tool-name';
694
+ const responseMetadata = {
695
+ flags: ['flag1'],
696
+ isError: false,
697
+ customData: { key: 'value' },
698
+ };
699
+ const input = {
700
+ functionResponse: {
701
+ id: innerId,
702
+ name: innerName,
703
+ response: responseMetadata,
704
+ },
705
+ };
706
+ const result = convertToFunctionResponse(toolName, callId, input, DEFAULT_GEMINI_MODEL);
707
+ expect(result).toHaveLength(1);
708
+ expect(result[0].functionResponse).toEqual({
709
+ id: callId,
710
+ name: toolName,
711
+ response: responseMetadata,
712
+ });
713
+ });
615
714
  it('should handle llmContent as an array of multiple Parts (text and inlineData)', () => {
616
715
  const llmContent = [
617
716
  { text: 'Some textual description' },
618
717
  { inlineData: { mimeType: 'image/jpeg', data: 'base64data...' } },
619
718
  { text: 'Another text part' },
620
719
  ];
621
- const result = convertToFunctionResponse(toolName, callId, llmContent);
720
+ const result = convertToFunctionResponse(toolName, callId, llmContent, PREVIEW_GEMINI_MODEL);
622
721
  expect(result).toEqual([
623
722
  {
624
723
  functionResponse: {
625
724
  name: toolName,
626
725
  id: callId,
627
- response: { output: 'Tool execution succeeded.' },
726
+ response: {
727
+ output: 'Some textual description\nAnother text part',
728
+ },
729
+ parts: [
730
+ { inlineData: { mimeType: 'image/jpeg', data: 'base64data...' } },
731
+ ],
628
732
  },
629
733
  },
630
- ...llmContent,
631
734
  ]);
632
735
  });
633
736
  it('should handle llmContent as an array with a single inlineData Part', () => {
634
737
  const llmContent = [
635
738
  { inlineData: { mimeType: 'image/gif', data: 'gifdata...' } },
636
739
  ];
637
- const result = convertToFunctionResponse(toolName, callId, llmContent);
740
+ const result = convertToFunctionResponse(toolName, callId, llmContent, PREVIEW_GEMINI_MODEL);
638
741
  expect(result).toEqual([
639
742
  {
640
743
  functionResponse: {
641
744
  name: toolName,
642
745
  id: callId,
643
- response: {
644
- output: 'Binary content of type image/gif was processed.',
645
- },
746
+ response: { output: 'Binary content provided (1 item(s)).' },
747
+ parts: llmContent,
646
748
  },
647
749
  },
648
- ...llmContent,
649
750
  ]);
650
751
  });
651
752
  it('should handle llmContent as a generic Part (not text, inlineData, or fileData)', () => {
652
753
  const llmContent = { functionCall: { name: 'test', args: {} } };
653
- const result = convertToFunctionResponse(toolName, callId, llmContent);
754
+ const result = convertToFunctionResponse(toolName, callId, llmContent, PREVIEW_GEMINI_MODEL);
654
755
  expect(result).toEqual([
655
756
  {
656
757
  functionResponse: {
657
758
  name: toolName,
658
759
  id: callId,
659
- response: { output: 'Tool execution succeeded.' },
760
+ response: {},
660
761
  },
661
762
  },
662
763
  ]);
663
764
  });
664
765
  it('should handle empty string llmContent', () => {
665
766
  const llmContent = '';
666
- const result = convertToFunctionResponse(toolName, callId, llmContent);
767
+ const result = convertToFunctionResponse(toolName, callId, llmContent, PREVIEW_GEMINI_MODEL);
667
768
  expect(result).toEqual([
668
769
  {
669
770
  functionResponse: {
@@ -676,26 +777,26 @@ describe('convertToFunctionResponse', () => {
676
777
  });
677
778
  it('should handle llmContent as an empty array', () => {
678
779
  const llmContent = [];
679
- const result = convertToFunctionResponse(toolName, callId, llmContent);
780
+ const result = convertToFunctionResponse(toolName, callId, llmContent, PREVIEW_GEMINI_MODEL);
680
781
  expect(result).toEqual([
681
782
  {
682
783
  functionResponse: {
683
784
  name: toolName,
684
785
  id: callId,
685
- response: { output: 'Tool execution succeeded.' },
786
+ response: {},
686
787
  },
687
788
  },
688
789
  ]);
689
790
  });
690
791
  it('should handle llmContent as a Part with undefined inlineData/fileData/text', () => {
691
792
  const llmContent = {}; // An empty part object
692
- const result = convertToFunctionResponse(toolName, callId, llmContent);
793
+ const result = convertToFunctionResponse(toolName, callId, llmContent, PREVIEW_GEMINI_MODEL);
693
794
  expect(result).toEqual([
694
795
  {
695
796
  functionResponse: {
696
797
  name: toolName,
697
798
  id: callId,
698
- response: { output: 'Tool execution succeeded.' },
799
+ response: {},
699
800
  },
700
801
  },
701
802
  ]);
@@ -755,7 +856,6 @@ describe('CoreToolScheduler edit cancellation', () => {
755
856
  const onToolCallsUpdate = vi.fn();
756
857
  const mockConfig = createMockConfig({
757
858
  getToolRegistry: () => mockToolRegistry,
758
- isInteractive: () => false,
759
859
  });
760
860
  const mockMessageBus = createMockMessageBus();
761
861
  mockConfig.getMessageBus = vi.fn().mockReturnValue(mockMessageBus);
@@ -1104,7 +1204,6 @@ describe('CoreToolScheduler request queueing', () => {
1104
1204
  terminalHeight: 24,
1105
1205
  }),
1106
1206
  getToolRegistry: () => toolRegistry,
1107
- isInteractive: () => false,
1108
1207
  getHookSystem: () => undefined,
1109
1208
  });
1110
1209
  const scheduler = new CoreToolScheduler({
@@ -1154,7 +1253,6 @@ describe('CoreToolScheduler request queueing', () => {
1154
1253
  const mockConfig = createMockConfig({
1155
1254
  getToolRegistry: () => mockToolRegistry,
1156
1255
  getApprovalMode: () => ApprovalMode.YOLO,
1157
- isInteractive: () => false,
1158
1256
  });
1159
1257
  const mockMessageBus = createMockMessageBus();
1160
1258
  mockConfig.getMessageBus = vi.fn().mockReturnValue(mockMessageBus);
@@ -1202,7 +1300,6 @@ describe('CoreToolScheduler request queueing', () => {
1202
1300
  setApprovalMode: (mode) => {
1203
1301
  approvalMode = mode;
1204
1302
  },
1205
- isInteractive: () => false,
1206
1303
  });
1207
1304
  const mockMessageBus = createMockMessageBus();
1208
1305
  mockConfig.getMessageBus = vi.fn().mockReturnValue(mockMessageBus);