@machina.ai/cell-cli 1.64.0-rc2 → 1.66.0-rc1

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 (194) hide show
  1. package/dist/index.js +14 -9
  2. package/dist/index.js.map +1 -1
  3. package/dist/package.json +4 -4
  4. package/dist/src/acp/acpSession.js +9 -13
  5. package/dist/src/acp/acpSession.js.map +1 -1
  6. package/dist/src/acp/acpSession.test.js +88 -0
  7. package/dist/src/acp/acpSession.test.js.map +1 -1
  8. package/dist/src/commands/mcp/add.js +14 -6
  9. package/dist/src/commands/mcp/add.js.map +1 -1
  10. package/dist/src/commands/mcp/add.test.js +61 -0
  11. package/dist/src/commands/mcp/add.test.js.map +1 -1
  12. package/dist/src/commands/mcp/remove.js +14 -1
  13. package/dist/src/commands/mcp/remove.js.map +1 -1
  14. package/dist/src/commands/mcp/remove.test.js +63 -0
  15. package/dist/src/commands/mcp/remove.test.js.map +1 -1
  16. package/dist/src/config/config.js +12 -0
  17. package/dist/src/config/config.js.map +1 -1
  18. package/dist/src/config/config.test.js +17 -0
  19. package/dist/src/config/config.test.js.map +1 -1
  20. package/dist/src/config/envDefaults.d.ts +20 -0
  21. package/dist/src/config/envDefaults.js +29 -0
  22. package/dist/src/config/envDefaults.js.map +1 -0
  23. package/dist/src/config/envDefaults.test.d.ts +6 -0
  24. package/dist/src/config/envDefaults.test.js +23 -0
  25. package/dist/src/config/envDefaults.test.js.map +1 -0
  26. package/dist/src/config/extension-manager.js +13 -4
  27. package/dist/src/config/extension-manager.js.map +1 -1
  28. package/dist/src/config/extension.test.js +117 -0
  29. package/dist/src/config/extension.test.js.map +1 -1
  30. package/dist/src/config/extensions/github.test.js +34 -0
  31. package/dist/src/config/extensions/github.test.js.map +1 -1
  32. package/dist/src/config/extensions/github_fetch.js +110 -18
  33. package/dist/src/config/extensions/github_fetch.js.map +1 -1
  34. package/dist/src/config/extensions/github_fetch.test.js +251 -36
  35. package/dist/src/config/extensions/github_fetch.test.js.map +1 -1
  36. package/dist/src/config/settings.d.ts +1 -0
  37. package/dist/src/config/settings.js +148 -58
  38. package/dist/src/config/settings.js.map +1 -1
  39. package/dist/src/config/settings.test.js +300 -0
  40. package/dist/src/config/settings.test.js.map +1 -1
  41. package/dist/src/config/settingsSchema.d.ts +1 -1
  42. package/dist/src/config/settingsSchema.js +6 -1
  43. package/dist/src/config/settingsSchema.js.map +1 -1
  44. package/dist/src/gemini.test.js +69 -0
  45. package/dist/src/gemini.test.js.map +1 -1
  46. package/dist/src/generated/git-commit.d.ts +2 -2
  47. package/dist/src/generated/git-commit.js +2 -2
  48. package/dist/src/interactiveCli.js +8 -3
  49. package/dist/src/interactiveCli.js.map +1 -1
  50. package/dist/src/services/CommandService.js +1 -1
  51. package/dist/src/services/CommandService.js.map +1 -1
  52. package/dist/src/services/CommandService.test.js +18 -1
  53. package/dist/src/services/CommandService.test.js.map +1 -1
  54. package/dist/src/services/SlashCommandConflictHandler.d.ts +1 -0
  55. package/dist/src/services/SlashCommandConflictHandler.js +18 -2
  56. package/dist/src/services/SlashCommandConflictHandler.js.map +1 -1
  57. package/dist/src/services/SlashCommandConflictHandler.test.js +85 -8
  58. package/dist/src/services/SlashCommandConflictHandler.test.js.map +1 -1
  59. package/dist/src/ui/AppContainer.js +254 -12
  60. package/dist/src/ui/AppContainer.js.map +1 -1
  61. package/dist/src/ui/AppContainer.test.js +362 -6
  62. package/dist/src/ui/AppContainer.test.js.map +1 -1
  63. package/dist/src/ui/auth/AuthDialog.js +21 -5
  64. package/dist/src/ui/auth/AuthDialog.js.map +1 -1
  65. package/dist/src/ui/auth/AuthDialog.test.js +83 -0
  66. package/dist/src/ui/auth/AuthDialog.test.js.map +1 -1
  67. package/dist/src/ui/auth/useAuth.js +7 -1
  68. package/dist/src/ui/auth/useAuth.js.map +1 -1
  69. package/dist/src/ui/auth/useAuth.test.js +9 -0
  70. package/dist/src/ui/auth/useAuth.test.js.map +1 -1
  71. package/dist/src/ui/commands/marketplaceCommand.js +92 -4
  72. package/dist/src/ui/commands/marketplaceCommand.js.map +1 -1
  73. package/dist/src/ui/commands/marketplaceCommand.test.js +98 -1
  74. package/dist/src/ui/commands/marketplaceCommand.test.js.map +1 -1
  75. package/dist/src/ui/components/AsciiArt.d.ts +6 -6
  76. package/dist/src/ui/components/AsciiArt.js +6 -6
  77. package/dist/src/ui/components/CliSpinner.d.ts +3 -2
  78. package/dist/src/ui/components/CliSpinner.js +27 -3
  79. package/dist/src/ui/components/CliSpinner.js.map +1 -1
  80. package/dist/src/ui/components/CliSpinner.test.js +42 -3
  81. package/dist/src/ui/components/CliSpinner.test.js.map +1 -1
  82. package/dist/src/ui/components/Composer.js +3 -3
  83. package/dist/src/ui/components/Composer.js.map +1 -1
  84. package/dist/src/ui/components/Composer.test.js +39 -1
  85. package/dist/src/ui/components/Composer.test.js.map +1 -1
  86. package/dist/src/ui/components/DetailedMessagesDisplay.js +5 -1
  87. package/dist/src/ui/components/DetailedMessagesDisplay.js.map +1 -1
  88. package/dist/src/ui/components/DetailedMessagesDisplay.test.js +19 -1
  89. package/dist/src/ui/components/DetailedMessagesDisplay.test.js.map +1 -1
  90. package/dist/src/ui/components/Footer.js +1 -1
  91. package/dist/src/ui/components/Footer.js.map +1 -1
  92. package/dist/src/ui/components/GeminiRespondingSpinner.d.ts +1 -1
  93. package/dist/src/ui/components/GeminiRespondingSpinner.js +9 -2
  94. package/dist/src/ui/components/GeminiRespondingSpinner.js.map +1 -1
  95. package/dist/src/ui/components/GeminiSpinner.d.ts +1 -1
  96. package/dist/src/ui/components/GeminiSpinner.js +18 -7
  97. package/dist/src/ui/components/GeminiSpinner.js.map +1 -1
  98. package/dist/src/ui/components/HistoryItemDisplay.js +5 -2
  99. package/dist/src/ui/components/HistoryItemDisplay.js.map +1 -1
  100. package/dist/src/ui/components/HistoryItemDisplay.test.js +21 -0
  101. package/dist/src/ui/components/HistoryItemDisplay.test.js.map +1 -1
  102. package/dist/src/ui/components/LoadingIndicator.d.ts +1 -1
  103. package/dist/src/ui/components/LoadingIndicator.js +4 -2
  104. package/dist/src/ui/components/LoadingIndicator.js.map +1 -1
  105. package/dist/src/ui/components/MainContent.js +47 -9
  106. package/dist/src/ui/components/MainContent.js.map +1 -1
  107. package/dist/src/ui/components/MainContent.test.js +87 -1
  108. package/dist/src/ui/components/MainContent.test.js.map +1 -1
  109. package/dist/src/ui/components/MemoryUsageDisplay.js +8 -4
  110. package/dist/src/ui/components/MemoryUsageDisplay.js.map +1 -1
  111. package/dist/src/ui/components/ModelDialog.js +30 -16
  112. package/dist/src/ui/components/ModelDialog.js.map +1 -1
  113. package/dist/src/ui/components/ModelDialog.test.js +32 -24
  114. package/dist/src/ui/components/ModelDialog.test.js.map +1 -1
  115. package/dist/src/ui/components/StatusRow.d.ts +7 -6
  116. package/dist/src/ui/components/StatusRow.js +24 -10
  117. package/dist/src/ui/components/StatusRow.js.map +1 -1
  118. package/dist/src/ui/components/ValidationDialog.js +13 -6
  119. package/dist/src/ui/components/ValidationDialog.js.map +1 -1
  120. package/dist/src/ui/components/ValidationDialog.test.js +40 -0
  121. package/dist/src/ui/components/ValidationDialog.test.js.map +1 -1
  122. package/dist/src/ui/components/messages/DenseToolMessage.js +17 -12
  123. package/dist/src/ui/components/messages/DenseToolMessage.js.map +1 -1
  124. package/dist/src/ui/components/messages/DenseToolMessage.test.js +71 -0
  125. package/dist/src/ui/components/messages/DenseToolMessage.test.js.map +1 -1
  126. package/dist/src/ui/components/messages/ToolResultDisplay.js +14 -11
  127. package/dist/src/ui/components/messages/ToolResultDisplay.js.map +1 -1
  128. package/dist/src/ui/components/messages/ToolResultDisplay.test.js +32 -0
  129. package/dist/src/ui/components/messages/ToolResultDisplay.test.js.map +1 -1
  130. package/dist/src/ui/components/shared/MaxSizedBox.js +8 -2
  131. package/dist/src/ui/components/shared/MaxSizedBox.js.map +1 -1
  132. package/dist/src/ui/components/shared/MaxSizedBox.test.js +23 -1
  133. package/dist/src/ui/components/shared/MaxSizedBox.test.js.map +1 -1
  134. package/dist/src/ui/contexts/ToolActionsContext.js +7 -1
  135. package/dist/src/ui/contexts/ToolActionsContext.js.map +1 -1
  136. package/dist/src/ui/contexts/ToolActionsContext.test.js +54 -1
  137. package/dist/src/ui/contexts/ToolActionsContext.test.js.map +1 -1
  138. package/dist/src/ui/hooks/atCommandProcessor.d.ts +2 -1
  139. package/dist/src/ui/hooks/atCommandProcessor.js +15 -15
  140. package/dist/src/ui/hooks/atCommandProcessor.js.map +1 -1
  141. package/dist/src/ui/hooks/useAgentStream.d.ts +9 -2
  142. package/dist/src/ui/hooks/useAgentStream.js +173 -8
  143. package/dist/src/ui/hooks/useAgentStream.js.map +1 -1
  144. package/dist/src/ui/hooks/useAgentStream.test.js +104 -1
  145. package/dist/src/ui/hooks/useAgentStream.test.js.map +1 -1
  146. package/dist/src/ui/hooks/useGeminiStream.d.ts +1 -1
  147. package/dist/src/ui/hooks/useGeminiStream.js +174 -59
  148. package/dist/src/ui/hooks/useGeminiStream.js.map +1 -1
  149. package/dist/src/ui/hooks/useGeminiStream.test.js +230 -3
  150. package/dist/src/ui/hooks/useGeminiStream.test.js.map +1 -1
  151. package/dist/src/ui/hooks/useLoadingIndicator.d.ts +2 -1
  152. package/dist/src/ui/hooks/useLoadingIndicator.js +3 -3
  153. package/dist/src/ui/hooks/useLoadingIndicator.js.map +1 -1
  154. package/dist/src/ui/hooks/useLoadingIndicator.test.js +23 -4
  155. package/dist/src/ui/hooks/useLoadingIndicator.test.js.map +1 -1
  156. package/dist/src/ui/hooks/useReverseSearchCompletion.js +10 -6
  157. package/dist/src/ui/hooks/useReverseSearchCompletion.js.map +1 -1
  158. package/dist/src/ui/hooks/useReverseSearchCompletion.test.js +49 -0
  159. package/dist/src/ui/hooks/useReverseSearchCompletion.test.js.map +1 -1
  160. package/dist/src/ui/key/keyBindings.js +19 -6
  161. package/dist/src/ui/key/keyBindings.js.map +1 -1
  162. package/dist/src/ui/key/keyBindings.test.js +106 -0
  163. package/dist/src/ui/key/keyBindings.test.js.map +1 -1
  164. package/dist/src/ui/utils/formatters.d.ts +2 -0
  165. package/dist/src/ui/utils/formatters.js +13 -5
  166. package/dist/src/ui/utils/formatters.js.map +1 -1
  167. package/dist/src/ui/utils/formatters.test.js +18 -0
  168. package/dist/src/ui/utils/formatters.test.js.map +1 -1
  169. package/dist/src/utils/activityLogger.js +109 -33
  170. package/dist/src/utils/activityLogger.js.map +1 -1
  171. package/dist/src/utils/activityLogger.test.js +441 -0
  172. package/dist/src/utils/activityLogger.test.js.map +1 -1
  173. package/dist/src/utils/handleAutoUpdate.d.ts +4 -1
  174. package/dist/src/utils/handleAutoUpdate.js +45 -3
  175. package/dist/src/utils/handleAutoUpdate.js.map +1 -1
  176. package/dist/src/utils/handleAutoUpdate.test.js +280 -2
  177. package/dist/src/utils/handleAutoUpdate.test.js.map +1 -1
  178. package/dist/src/utils/nodeVersion.d.ts +11 -0
  179. package/dist/src/utils/nodeVersion.js +42 -0
  180. package/dist/src/utils/nodeVersion.js.map +1 -0
  181. package/dist/src/utils/nodeVersion.test.d.ts +6 -0
  182. package/dist/src/utils/nodeVersion.test.js +35 -0
  183. package/dist/src/utils/nodeVersion.test.js.map +1 -0
  184. package/dist/src/utils/processUtils.d.ts +23 -0
  185. package/dist/src/utils/processUtils.js +72 -0
  186. package/dist/src/utils/processUtils.js.map +1 -1
  187. package/dist/src/utils/processUtils.test.js +95 -1
  188. package/dist/src/utils/processUtils.test.js.map +1 -1
  189. package/dist/src/utils/relaunch.js +8 -6
  190. package/dist/src/utils/relaunch.js.map +1 -1
  191. package/dist/src/utils/relaunch.test.js +107 -1
  192. package/dist/src/utils/relaunch.test.js.map +1 -1
  193. package/dist/tsconfig.tsbuildinfo +1 -1
  194. package/package.json +4 -4
@@ -4,7 +4,7 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
  import { useState, useRef, useCallback, useEffect, useMemo } from 'react';
7
- import { GeminiEventType as ServerGeminiEventType, getErrorMessage, isNodeError, isAuthenticationError, MessageSenderType, logUserPrompt, GitService, UserPromptEvent, uiTelemetryService, DEFAULT_GEMINI_FLASH_MODEL, logConversationFinishedEvent, ConversationFinishedEvent, ApprovalMode, parseAndFormatApiError, ToolConfirmationOutcome, MessageBusType, promptIdContext, tokenLimit, debugLogger, runInDevTraceSpan, EDIT_TOOL_NAMES, SHELL_TOOL_NAME, hasRedirection, processRestorableToolCalls, recordToolCallInteractions, ToolErrorType, ValidationRequiredError, coreEvents, CoreEvent, CoreToolCallStatus, buildUserSteeringHintPrompt, GeminiCliOperation, getPlanModeExitMessage, isBackgroundExecutionData, Kind, ACTIVATE_SKILL_TOOL_NAME, isRenderedInHistory, buildToolVisibilityContext, UPDATE_TOPIC_TOOL_NAME, UPDATE_TOPIC_DISPLAY_NAME, THINKING_ONLY_COMPRESS_SUGGESTION, MAX_TOKENS_EXCEEDED_SUGGESTION, SAFETY_BLOCKED_MESSAGE, RECITATION_BLOCKED_MESSAGE, OTHER_BLOCKED_MESSAGE, TRUE_EMPTY_RESPONSE_MESSAGE, } from '@google/gemini-cli-core';
7
+ import { GeminiEventType as ServerGeminiEventType, getErrorMessage, isNodeError, isAuthenticationError, MessageSenderType, logUserPrompt, GitService, UserPromptEvent, uiTelemetryService, DEFAULT_GEMINI_FLASH_MODEL, logConversationFinishedEvent, ConversationFinishedEvent, ApprovalMode, parseAndFormatApiError, ToolConfirmationOutcome, MessageBusType, promptIdContext, tokenLimit, debugLogger, runInDevTraceSpan, EDIT_TOOL_NAMES, SHELL_TOOL_NAME, hasRedirection, processRestorableToolCalls, recordToolCallInteractions, ToolErrorType, ValidationRequiredError, coreEvents, CoreEvent, CoreToolCallStatus, buildUserSteeringHintPrompt, GeminiCliOperation, getPlanModeExitMessage, isBackgroundExecutionData, ACTIVATE_SKILL_TOOL_NAME, isRenderedInHistory, buildToolVisibilityContext, UPDATE_TOPIC_TOOL_NAME, UPDATE_TOPIC_DISPLAY_NAME, THINKING_ONLY_COMPRESS_SUGGESTION, MAX_TOKENS_EXCEEDED_SUGGESTION, SAFETY_BLOCKED_MESSAGE, RECITATION_BLOCKED_MESSAGE, OTHER_BLOCKED_MESSAGE, TRUE_EMPTY_RESPONSE_MESSAGE, } from '@google/gemini-cli-core';
8
8
  import { FinishReason } from '@google/genai';
9
9
  import { StreamingState, MessageType, mapCoreStatusToDisplayStatus, ToolCallStatus, } from '../types.js';
10
10
  import { isAtCommand, isSlashCommand } from '../utils/commandUtils.js';
@@ -24,6 +24,7 @@ import { promises as fs } from 'node:fs';
24
24
  import path from 'node:path';
25
25
  import { useSessionStats } from '../contexts/SessionContext.js';
26
26
  import { useKeypress } from './useKeypress.js';
27
+ import { createCancelledToolCall } from './useAgentStream.js';
27
28
  const isTopicTool = (name) => name === UPDATE_TOPIC_TOOL_NAME || name === UPDATE_TOPIC_DISPLAY_NAME;
28
29
  var StreamProcessingStatus;
29
30
  (function (StreamProcessingStatus) {
@@ -31,6 +32,11 @@ var StreamProcessingStatus;
31
32
  StreamProcessingStatus[StreamProcessingStatus["UserCancelled"] = 1] = "UserCancelled";
32
33
  StreamProcessingStatus[StreamProcessingStatus["Error"] = 2] = "Error";
33
34
  })(StreamProcessingStatus || (StreamProcessingStatus = {}));
35
+ var CancellationState;
36
+ (function (CancellationState) {
37
+ CancellationState["Idle"] = "idle";
38
+ CancellationState["Cancelling"] = "cancelling";
39
+ })(CancellationState || (CancellationState = {}));
34
40
  const SUPPRESSED_TOOL_ERRORS_NOTE = 'Some internal tool attempts failed before this final error. Press F12 for diagnostics, or run /settings and change "Error Verbosity" to full for details.';
35
41
  const LOW_VERBOSITY_FAILURE_NOTE = 'This request failed. Press F12 for diagnostics, or run /settings and change "Error Verbosity" to full for full details.';
36
42
  function getBackgroundedToolInfo(toolCall) {
@@ -101,6 +107,10 @@ export const useGeminiStream = (geminiClient, history, addItem, config, settings
101
107
  const lowVerbosityFailureNoteShownRef = useRef(false);
102
108
  const abortControllerRef = useRef(null);
103
109
  const turnCancelledRef = useRef(false);
110
+ const pendingToolCallRequestsRef = useRef([]);
111
+ const activeSchedulePromiseRef = useRef(null);
112
+ const cancellationStateRef = useRef(CancellationState.Idle);
113
+ const cancelPromiseRef = useRef(Promise.resolve());
104
114
  const activeQueryIdRef = useRef(null);
105
115
  const previousApprovalModeRef = useRef(config.getApprovalMode());
106
116
  const [isResponding, isRespondingRef, setIsResponding] = useStateAndRef(false);
@@ -131,6 +141,7 @@ export const useGeminiStream = (geminiClient, history, addItem, config, settings
131
141
  }, [isRespondingRef]);
132
142
  const [toolCalls, scheduleToolCalls, markToolsAsSubmitted, setToolCallsForDisplay, cancelAllToolCalls, lastToolOutputTime,] = useToolScheduler(async (completedToolCallsFromScheduler) => {
133
143
  // This onComplete is called when ALL scheduled tools for a given batch are done.
144
+ pendingToolCallRequestsRef.current = [];
134
145
  if (completedToolCallsFromScheduler.length > 0) {
135
146
  // Add only the tools that haven't been pushed to history yet.
136
147
  const toolsToPush = completedToolCallsFromScheduler.filter((tc) => !pushedToolCallIdsRef.current.has(tc.request.callId));
@@ -160,13 +171,23 @@ export const useGeminiStream = (geminiClient, history, addItem, config, settings
160
171
  setToolCallsForDisplay([]);
161
172
  // Record tool calls with full metadata before sending responses.
162
173
  try {
163
- const currentModel = config.getGeminiClient().getCurrentSequenceModel() ??
164
- config.getModel();
165
- config
166
- .getGeminiClient()
167
- .getChat()
168
- .recordCompletedToolCalls(currentModel, completedToolCallsFromScheduler);
169
- await recordToolCallInteractions(config, completedToolCallsFromScheduler);
174
+ const client = geminiClient ?? config.getGeminiClient();
175
+ const currentModel = client?.getCurrentSequenceModel?.() ?? config.getModel();
176
+ const normalizedCompletedCalls = completedToolCallsFromScheduler.map((tc) => {
177
+ if (tc.status === CoreToolCallStatus.Cancelled &&
178
+ (!tc.response?.responseParts ||
179
+ tc.response.responseParts.length === 0)) {
180
+ return {
181
+ ...tc,
182
+ response: createCancelledToolCall(tc.request, tc.tool, tc.invocation).response,
183
+ };
184
+ }
185
+ return tc;
186
+ });
187
+ client
188
+ ?.getChat?.()
189
+ ?.recordCompletedToolCalls(currentModel, normalizedCompletedCalls);
190
+ await recordToolCallInteractions(config, normalizedCompletedCalls);
170
191
  }
171
192
  catch (error) {
172
193
  debugLogger.warn(`Error recording completed tool call information: ${error}`);
@@ -209,44 +230,20 @@ export const useGeminiStream = (geminiClient, history, addItem, config, settings
209
230
  ]);
210
231
  // Push completed tools to history as they finish
211
232
  useEffect(() => {
233
+ const isFinished = (tc) => tc.status === 'success' ||
234
+ tc.status === 'error' ||
235
+ tc.status === 'cancelled';
212
236
  const toolsToPush = [];
213
- for (let i = 0; i < toolCalls.length; i++) {
214
- const tc = toolCalls[i];
237
+ for (const tc of toolCalls) {
215
238
  if (pushedToolCallIdsRef.current.has(tc.request.callId))
216
239
  continue;
217
- if (tc.status === 'success' ||
218
- tc.status === 'error' ||
219
- tc.status === 'cancelled') {
220
- // TODO(#22883): This lookahead logic is a tactical UI fix to prevent parallel agents
221
- // from tearing visually when they finish at slightly different times.
222
- // Architecturally, `useGeminiStream` should not be responsible for stitching
223
- // together semantic batches using timing/refs. `packages/core` should be
224
- // refactored to emit structured `ToolBatch` or `Turn` objects, and this layer
225
- // should simply render those semantic boundaries.
226
- // If this is an agent tool, look ahead to ensure all subsequent
227
- // contiguous agents in the same batch are also finished before pushing.
228
- const isAgent = tc.tool?.kind === Kind.Agent;
229
- if (isAgent) {
230
- let contigAgentsComplete = true;
231
- for (let j = i + 1; j < toolCalls.length; j++) {
232
- const nextTc = toolCalls[j];
233
- if (nextTc.tool?.kind === Kind.Agent) {
234
- if (nextTc.status !== 'success' &&
235
- nextTc.status !== 'error' &&
236
- nextTc.status !== 'cancelled') {
237
- contigAgentsComplete = false;
238
- break;
239
- }
240
- }
241
- else {
242
- // End of the contiguous agent block
243
- break;
244
- }
245
- }
246
- if (!contigAgentsComplete) {
247
- // Wait for the entire contiguous block of agents to finish
248
- break;
249
- }
240
+ if (isFinished(tc)) {
241
+ // Calls that share a group ID are presented together, so wait until
242
+ // every call in the group has finished before pushing any of them.
243
+ const { groupId } = tc.request;
244
+ if (groupId !== undefined &&
245
+ toolCalls.some((other) => other.request.groupId === groupId && !isFinished(other))) {
246
+ break;
250
247
  }
251
248
  toolsToPush.push(tc);
252
249
  }
@@ -260,22 +257,18 @@ export const useGeminiStream = (geminiClient, history, addItem, config, settings
260
257
  const isFirstInThisPush = isFirstToolInGroupRef.current;
261
258
  const isCompactModeEnabled = settings.merged.ui?.compactToolOutput === true;
262
259
  const groups = [];
263
- let currentGroup = [];
260
+ let currentGroupId;
264
261
  for (const tc of toolsToPush) {
265
262
  newPushed.add(tc.request.callId);
266
- if (tc.tool?.kind === Kind.Agent) {
267
- currentGroup.push(tc);
263
+ // Calls that share a group ID are adjacent and go into one history item.
264
+ const { groupId } = tc.request;
265
+ if (groupId !== undefined && groupId === currentGroupId) {
266
+ groups[groups.length - 1].push(tc);
268
267
  }
269
268
  else {
270
- if (currentGroup.length > 0) {
271
- groups.push(currentGroup);
272
- currentGroup = [];
273
- }
274
269
  groups.push([tc]);
275
270
  }
276
- }
277
- if (currentGroup.length > 0) {
278
- groups.push(currentGroup);
271
+ currentGroupId = groupId;
279
272
  }
280
273
  for (let i = 0; i < groups.length; i++) {
281
274
  const group = groups[i];
@@ -480,17 +473,27 @@ export const useGeminiStream = (geminiClient, history, addItem, config, settings
480
473
  }, userMessageTimestamp);
481
474
  lowVerbosityFailureNoteShownRef.current = true;
482
475
  }, [addItem, config, isLowErrorVerbosity]);
483
- const cancelOngoingRequest = useCallback((clearBuffer = true) => {
476
+ const cancelOngoingRequest = useCallback(async (clearBuffer = true) => {
484
477
  // If we are already cancelled, do nothing
485
478
  if (turnCancelledRef.current) {
486
479
  if (clearBuffer) {
487
480
  onCancelSubmit(false, true);
488
481
  }
482
+ if (cancellationStateRef.current === CancellationState.Cancelling) {
483
+ try {
484
+ await cancelPromiseRef.current;
485
+ }
486
+ catch (error) {
487
+ debugLogger.warn(`Error awaiting schedulePromise on cancel: ${error}`);
488
+ }
489
+ }
489
490
  return;
490
491
  }
491
- const hasActiveTools = toolCalls.some((tc) => tc.status === CoreToolCallStatus.Executing ||
492
- tc.status === CoreToolCallStatus.Scheduled ||
493
- tc.status === CoreToolCallStatus.Validating);
492
+ const hasActiveTools = pendingToolCallRequestsRef.current.length > 0 ||
493
+ toolCalls.some((tc) => tc.status === CoreToolCallStatus.Executing ||
494
+ tc.status === CoreToolCallStatus.Scheduled ||
495
+ tc.status === CoreToolCallStatus.Validating ||
496
+ tc.status === CoreToolCallStatus.AwaitingApproval);
494
497
  // If we are not responding, not waiting for confirmation, and have no active tools,
495
498
  // there is nothing to abort.
496
499
  if (streamingState === StreamingState.Idle &&
@@ -517,6 +520,76 @@ export const useGeminiStream = (geminiClient, history, addItem, config, settings
517
520
  abortControllerRef.current.abort();
518
521
  // 2. Call the imperative cancel to clear the queue of pending tools.
519
522
  cancelAllToolCalls(abortControllerRef.current.signal);
523
+ // 3. Immediately synthesize and record filler/cancelled functionResponses in
524
+ // session history so that even if the process exits or a tool hangs, the
525
+ // session log does not end with an unanswered model functionCall turn.
526
+ try {
527
+ const client = geminiClient ?? config.getGeminiClient?.();
528
+ const chat = client?.getChat?.();
529
+ if (chat) {
530
+ const seenCallIds = new Set();
531
+ const synthesizedCalls = [];
532
+ for (const tc of toolCalls) {
533
+ if (tc.request.isClientInitiated) {
534
+ continue;
535
+ }
536
+ const isAlreadySubmitted = (tc.status === CoreToolCallStatus.Success ||
537
+ tc.status === CoreToolCallStatus.Error ||
538
+ tc.status === CoreToolCallStatus.Cancelled) &&
539
+ tc
540
+ .responseSubmittedToGemini;
541
+ if (isAlreadySubmitted) {
542
+ seenCallIds.add(tc.request.callId);
543
+ continue;
544
+ }
545
+ seenCallIds.add(tc.request.callId);
546
+ if ((tc.status === CoreToolCallStatus.Success ||
547
+ tc.status === CoreToolCallStatus.Error ||
548
+ tc.status === CoreToolCallStatus.Cancelled) &&
549
+ (tc.response?.responseParts?.length ?? 0) > 0) {
550
+ synthesizedCalls.push(tc);
551
+ }
552
+ else {
553
+ synthesizedCalls.push(createCancelledToolCall(tc.request, tc.tool, 'invocation' in tc ? tc.invocation : undefined));
554
+ }
555
+ }
556
+ for (const req of pendingToolCallRequestsRef.current) {
557
+ if (req.isClientInitiated || seenCallIds.has(req.callId)) {
558
+ continue;
559
+ }
560
+ seenCallIds.add(req.callId);
561
+ synthesizedCalls.push(createCancelledToolCall(req));
562
+ }
563
+ const clientHistory = client?.getHistory?.() ?? [];
564
+ const lastTurn = clientHistory.at(-1);
565
+ if (lastTurn?.role === 'model' && Array.isArray(lastTurn.parts)) {
566
+ let index = 0;
567
+ for (const part of lastTurn.parts) {
568
+ const fc = part.functionCall;
569
+ if (fc?.name) {
570
+ const callId = fc.id ?? `${fc.name}-${Date.now()}-${index++}`;
571
+ if (!seenCallIds.has(callId)) {
572
+ seenCallIds.add(callId);
573
+ synthesizedCalls.push(createCancelledToolCall({
574
+ callId,
575
+ name: fc.name,
576
+ args: fc.args ?? {},
577
+ isClientInitiated: false,
578
+ prompt_id: lastPromptIdRef.current ?? '',
579
+ }));
580
+ }
581
+ }
582
+ }
583
+ }
584
+ if (synthesizedCalls.length > 0) {
585
+ const currentModel = client?.getCurrentSequenceModel?.() ?? config.getModel?.() ?? '';
586
+ chat.recordCompletedToolCalls(currentModel, synthesizedCalls);
587
+ }
588
+ }
589
+ }
590
+ catch (error) {
591
+ debugLogger.warn(`Error recording cancelled tool calls on abort: ${error}`);
592
+ }
520
593
  if (pendingHistoryItemRef.current) {
521
594
  // If it is a shell command, we update the status to Canceled and clear the output
522
595
  // to avoid artifacts, then add it to history immediately.
@@ -560,6 +633,34 @@ export const useGeminiStream = (geminiClient, history, addItem, config, settings
560
633
  }
561
634
  onCancelSubmit(false, clearBuffer);
562
635
  setShellInputFocused(false);
636
+ const schedulePromise = activeSchedulePromiseRef.current;
637
+ if (schedulePromise) {
638
+ cancellationStateRef.current = CancellationState.Cancelling;
639
+ const cancelTask = (async () => {
640
+ let timeoutId;
641
+ try {
642
+ await Promise.race([
643
+ Promise.resolve(schedulePromise).catch(() => { }),
644
+ new Promise((resolve) => {
645
+ timeoutId = setTimeout(resolve, 1000);
646
+ }),
647
+ ]);
648
+ }
649
+ finally {
650
+ if (timeoutId !== undefined) {
651
+ clearTimeout(timeoutId);
652
+ }
653
+ cancellationStateRef.current = CancellationState.Idle;
654
+ }
655
+ })();
656
+ cancelPromiseRef.current = cancelTask;
657
+ try {
658
+ await cancelTask;
659
+ }
660
+ catch (error) {
661
+ debugLogger.warn(`Error awaiting schedulePromise on cancel: ${error}`);
662
+ }
663
+ }
563
664
  }, [
564
665
  streamingState,
565
666
  addItem,
@@ -572,10 +673,12 @@ export const useGeminiStream = (geminiClient, history, addItem, config, settings
572
673
  toolCalls,
573
674
  activeShellPtyId,
574
675
  setIsResponding,
676
+ geminiClient,
677
+ config,
575
678
  ]);
576
679
  useKeypress((key) => {
577
680
  if (key.name === 'escape' && !isShellFocused) {
578
- cancelOngoingRequest(false);
681
+ void cancelOngoingRequest(false);
579
682
  return true;
580
683
  }
581
684
  return false;
@@ -1009,6 +1112,7 @@ export const useGeminiStream = (geminiClient, history, addItem, config, settings
1009
1112
  break;
1010
1113
  case ServerGeminiEventType.ToolCallRequest:
1011
1114
  toolCallRequests.push(event.value);
1115
+ pendingToolCallRequestsRef.current.push(event.value);
1012
1116
  break;
1013
1117
  case ServerGeminiEventType.UserCancelled:
1014
1118
  handleUserCancelledEvent(userMessageTimestamp);
@@ -1067,7 +1171,17 @@ export const useGeminiStream = (geminiClient, history, addItem, config, settings
1067
1171
  addItem(pendingHistoryItemRef.current, userMessageTimestamp);
1068
1172
  setPendingHistoryItem(null);
1069
1173
  }
1070
- await scheduleToolCalls(toolCallRequests, signal);
1174
+ const schedulePromise = Promise.resolve(scheduleToolCalls(toolCallRequests, signal));
1175
+ activeSchedulePromiseRef.current = schedulePromise;
1176
+ try {
1177
+ await schedulePromise;
1178
+ }
1179
+ finally {
1180
+ if (activeSchedulePromiseRef.current === schedulePromise) {
1181
+ activeSchedulePromiseRef.current = null;
1182
+ }
1183
+ pendingToolCallRequestsRef.current = [];
1184
+ }
1071
1185
  }
1072
1186
  else {
1073
1187
  const hasVisibleText = geminiMessageBuffer.trim().length > 0;
@@ -1120,6 +1234,7 @@ export const useGeminiStream = (geminiClient, history, addItem, config, settings
1120
1234
  const userMessageTimestamp = Date.now();
1121
1235
  // Reset quota error flag when starting a new query (not a continuation)
1122
1236
  if (!options?.isContinuation) {
1237
+ pendingToolCallRequestsRef.current = [];
1123
1238
  autoNudgeAttemptCountRef.current = 0;
1124
1239
  setModelSwitchedFromQuotaError(false);
1125
1240
  config.setQuotaErrorOccurred(false);
@@ -1 +1 @@
1
- {"version":3,"file":"useGeminiStream.js","sourceRoot":"","sources":["../../../../src/ui/hooks/useGeminiStream.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useGeminiStream.js","sourceRoot":"","sources":["../../../../src/ui/hooks/useGeminiStream.ts"],"names":[],"mappings":"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"}