@google/gemini-cli-core 0.36.0-nightly.20260321.fc03891a1 → 0.36.0-preview.0

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 (382) hide show
  1. package/dist/docs/changelogs/preview.md +10 -3
  2. package/dist/docs/cli/plan-mode.md +1 -0
  3. package/dist/docs/cli/telemetry.md +28 -0
  4. package/dist/docs/core/remote-agents.md +5 -5
  5. package/dist/docs/reference/commands.md +2 -2
  6. package/dist/docs/reference/configuration.md +6 -1
  7. package/dist/docs/reference/policy-engine.md +11 -2
  8. package/dist/src/agent/agent-session.d.ts +1 -1
  9. package/dist/src/agent/agent-session.js +62 -50
  10. package/dist/src/agent/agent-session.js.map +1 -1
  11. package/dist/src/agent/agent-session.test.js +148 -2
  12. package/dist/src/agent/agent-session.test.js.map +1 -1
  13. package/dist/src/agent/event-translator.d.ts +53 -0
  14. package/dist/src/agent/event-translator.js +323 -0
  15. package/dist/src/agent/event-translator.js.map +1 -0
  16. package/dist/src/agent/event-translator.test.js +640 -0
  17. package/dist/src/agent/event-translator.test.js.map +1 -0
  18. package/dist/src/agent/legacy-agent-session.d.ts +19 -0
  19. package/dist/src/agent/legacy-agent-session.js +332 -0
  20. package/dist/src/agent/legacy-agent-session.js.map +1 -0
  21. package/dist/src/{core/coreToolScheduler.test.d.ts → agent/legacy-agent-session.test.d.ts} +1 -1
  22. package/dist/src/agent/legacy-agent-session.test.js +950 -0
  23. package/dist/src/agent/legacy-agent-session.test.js.map +1 -0
  24. package/dist/src/agent/mock.d.ts +2 -1
  25. package/dist/src/agent/mock.js +20 -27
  26. package/dist/src/agent/mock.js.map +1 -1
  27. package/dist/src/agent/mock.test.js +1 -1
  28. package/dist/src/agent/mock.test.js.map +1 -1
  29. package/dist/src/agent/types.d.ts +20 -9
  30. package/dist/src/agents/a2aUtils.d.ts +5 -0
  31. package/dist/src/agents/a2aUtils.js +23 -2
  32. package/dist/src/agents/a2aUtils.js.map +1 -1
  33. package/dist/src/agents/a2aUtils.test.js +1 -1
  34. package/dist/src/agents/a2aUtils.test.js.map +1 -1
  35. package/dist/src/agents/agentLoader.d.ts +1 -1
  36. package/dist/src/agents/agentLoader.js +2 -2
  37. package/dist/src/agents/agentLoader.js.map +1 -1
  38. package/dist/src/agents/agentLoader.test.js +9 -9
  39. package/dist/src/agents/agentLoader.test.js.map +1 -1
  40. package/dist/src/agents/browser/browserAgentInvocation.js +4 -4
  41. package/dist/src/agents/browser/browserAgentInvocation.js.map +1 -1
  42. package/dist/src/agents/browser/browserManager.js +4 -0
  43. package/dist/src/agents/browser/browserManager.js.map +1 -1
  44. package/dist/src/agents/browser/browserManager.test.js +3 -0
  45. package/dist/src/agents/browser/browserManager.test.js.map +1 -1
  46. package/dist/src/agents/cli-help-agent.js +1 -1
  47. package/dist/src/agents/cli-help-agent.js.map +1 -1
  48. package/dist/src/agents/local-executor.js +1 -0
  49. package/dist/src/agents/local-executor.js.map +1 -1
  50. package/dist/src/agents/local-executor.test.js +1 -0
  51. package/dist/src/agents/local-executor.test.js.map +1 -1
  52. package/dist/src/agents/local-invocation.js +4 -3
  53. package/dist/src/agents/local-invocation.js.map +1 -1
  54. package/dist/src/agents/local-invocation.test.js +28 -0
  55. package/dist/src/agents/local-invocation.test.js.map +1 -1
  56. package/dist/src/agents/registry.js +7 -3
  57. package/dist/src/agents/registry.js.map +1 -1
  58. package/dist/src/agents/registry.test.js +19 -0
  59. package/dist/src/agents/registry.test.js.map +1 -1
  60. package/dist/src/agents/remote-invocation.d.ts +2 -2
  61. package/dist/src/agents/remote-invocation.js +45 -5
  62. package/dist/src/agents/remote-invocation.js.map +1 -1
  63. package/dist/src/agents/remote-invocation.test.js +63 -24
  64. package/dist/src/agents/remote-invocation.test.js.map +1 -1
  65. package/dist/src/agents/subagent-tool.js +1 -0
  66. package/dist/src/agents/subagent-tool.js.map +1 -1
  67. package/dist/src/agents/subagent-tool.test.js +1 -2
  68. package/dist/src/agents/subagent-tool.test.js.map +1 -1
  69. package/dist/src/agents/types.d.ts +4 -0
  70. package/dist/src/agents/types.js +9 -0
  71. package/dist/src/agents/types.js.map +1 -1
  72. package/dist/src/code_assist/admin/mcpUtils.js +1 -0
  73. package/dist/src/code_assist/admin/mcpUtils.js.map +1 -1
  74. package/dist/src/code_assist/codeAssist.js +1 -1
  75. package/dist/src/code_assist/codeAssist.js.map +1 -1
  76. package/dist/src/code_assist/codeAssist.test.js +3 -2
  77. package/dist/src/code_assist/codeAssist.test.js.map +1 -1
  78. package/dist/src/code_assist/setup.d.ts +5 -3
  79. package/dist/src/code_assist/setup.js +14 -4
  80. package/dist/src/code_assist/setup.js.map +1 -1
  81. package/dist/src/code_assist/setup.test.js +38 -22
  82. package/dist/src/code_assist/setup.test.js.map +1 -1
  83. package/dist/src/code_assist/telemetry.d.ts +1 -1
  84. package/dist/src/code_assist/telemetry.test.js.map +1 -1
  85. package/dist/src/code_assist/types.d.ts +112 -112
  86. package/dist/src/config/config-agents-reload.test.d.ts +6 -0
  87. package/dist/src/config/config-agents-reload.test.js +194 -0
  88. package/dist/src/config/config-agents-reload.test.js.map +1 -0
  89. package/dist/src/config/config.d.ts +13 -8
  90. package/dist/src/config/config.js +53 -7
  91. package/dist/src/config/config.js.map +1 -1
  92. package/dist/src/config/config.test.js +1 -69
  93. package/dist/src/config/config.test.js.map +1 -1
  94. package/dist/src/config/models.test.js +4 -0
  95. package/dist/src/config/models.test.js.map +1 -1
  96. package/dist/src/config/sandbox-integration.test.js +1 -0
  97. package/dist/src/config/sandbox-integration.test.js.map +1 -1
  98. package/dist/src/confirmation-bus/message-bus.js +2 -1
  99. package/dist/src/confirmation-bus/message-bus.js.map +1 -1
  100. package/dist/src/confirmation-bus/types.d.ts +21 -1
  101. package/dist/src/confirmation-bus/types.js.map +1 -1
  102. package/dist/src/core/coreToolHookTriggers.d.ts +10 -1
  103. package/dist/src/core/coreToolHookTriggers.js +4 -4
  104. package/dist/src/core/coreToolHookTriggers.js.map +1 -1
  105. package/dist/src/core/coreToolHookTriggers.test.js +1 -11
  106. package/dist/src/core/coreToolHookTriggers.test.js.map +1 -1
  107. package/dist/src/core/geminiChat.d.ts +1 -1
  108. package/dist/src/core/loggingContentGenerator.js +6 -7
  109. package/dist/src/core/loggingContentGenerator.js.map +1 -1
  110. package/dist/src/core/loggingContentGenerator.test.js +5 -6
  111. package/dist/src/core/loggingContentGenerator.test.js.map +1 -1
  112. package/dist/src/core/prompts.test.js +2 -0
  113. package/dist/src/core/prompts.test.js.map +1 -1
  114. package/dist/src/generated/git-commit.d.ts +2 -2
  115. package/dist/src/generated/git-commit.js +2 -2
  116. package/dist/src/generated/git-commit.js.map +1 -1
  117. package/dist/src/hooks/hookAggregator.js +10 -2
  118. package/dist/src/hooks/hookAggregator.js.map +1 -1
  119. package/dist/src/hooks/hookEventHandler.js +1 -0
  120. package/dist/src/hooks/hookEventHandler.js.map +1 -1
  121. package/dist/src/hooks/types.d.ts +10 -1
  122. package/dist/src/hooks/types.js +16 -1
  123. package/dist/src/hooks/types.js.map +1 -1
  124. package/dist/src/index.d.ts +6 -2
  125. package/dist/src/index.js +6 -2
  126. package/dist/src/index.js.map +1 -1
  127. package/dist/src/mcp/google-auth-provider.test.js +2 -0
  128. package/dist/src/mcp/google-auth-provider.test.js.map +1 -1
  129. package/dist/src/policy/config.js +8 -3
  130. package/dist/src/policy/config.js.map +1 -1
  131. package/dist/src/policy/config.test.js +2 -2
  132. package/dist/src/policy/config.test.js.map +1 -1
  133. package/dist/src/policy/persistence.test.js +15 -0
  134. package/dist/src/policy/persistence.test.js.map +1 -1
  135. package/dist/src/policy/policies/memory-manager.toml +1 -1
  136. package/dist/src/policy/policies/plan.toml +6 -4
  137. package/dist/src/policy/policies/sandbox-default.toml +19 -0
  138. package/dist/src/policy/policies/write.toml +6 -0
  139. package/dist/src/policy/policies/yolo.toml +2 -1
  140. package/dist/src/policy/policy-engine.d.ts +4 -1
  141. package/dist/src/policy/policy-engine.js +88 -10
  142. package/dist/src/policy/policy-engine.js.map +1 -1
  143. package/dist/src/policy/policy-engine.test.js +56 -6
  144. package/dist/src/policy/policy-engine.test.js.map +1 -1
  145. package/dist/src/policy/policy-updater.test.js +25 -0
  146. package/dist/src/policy/policy-updater.test.js.map +1 -1
  147. package/dist/src/policy/sandboxPolicyManager.d.ts +200 -0
  148. package/dist/src/policy/sandboxPolicyManager.js +177 -0
  149. package/dist/src/policy/sandboxPolicyManager.js.map +1 -0
  150. package/dist/src/policy/toml-loader.d.ts +1 -1
  151. package/dist/src/policy/toml-loader.js +47 -27
  152. package/dist/src/policy/toml-loader.js.map +1 -1
  153. package/dist/src/policy/toml-loader.test.js +59 -5
  154. package/dist/src/policy/toml-loader.test.js.map +1 -1
  155. package/dist/src/policy/types.d.ts +12 -4
  156. package/dist/src/policy/types.js.map +1 -1
  157. package/dist/src/prompts/promptProvider.js +4 -1
  158. package/dist/src/prompts/promptProvider.js.map +1 -1
  159. package/dist/src/prompts/promptProvider.test.js +1 -0
  160. package/dist/src/prompts/promptProvider.test.js.map +1 -1
  161. package/dist/src/prompts/snippets.d.ts +6 -2
  162. package/dist/src/prompts/snippets.js +37 -5
  163. package/dist/src/prompts/snippets.js.map +1 -1
  164. package/dist/src/prompts/snippets.legacy.d.ts +6 -2
  165. package/dist/src/prompts/snippets.legacy.js +5 -3
  166. package/dist/src/prompts/snippets.legacy.js.map +1 -1
  167. package/dist/src/sandbox/linux/LinuxSandboxManager.d.ts +2 -14
  168. package/dist/src/sandbox/linux/LinuxSandboxManager.js +44 -9
  169. package/dist/src/sandbox/linux/LinuxSandboxManager.js.map +1 -1
  170. package/dist/src/sandbox/linux/LinuxSandboxManager.test.js +132 -43
  171. package/dist/src/sandbox/linux/LinuxSandboxManager.test.js.map +1 -1
  172. package/dist/src/sandbox/macos/MacOsSandboxManager.d.ts +14 -11
  173. package/dist/src/sandbox/macos/MacOsSandboxManager.integration.test.js +6 -2
  174. package/dist/src/sandbox/macos/MacOsSandboxManager.integration.test.js.map +1 -1
  175. package/dist/src/sandbox/macos/MacOsSandboxManager.js +87 -3
  176. package/dist/src/sandbox/macos/MacOsSandboxManager.js.map +1 -1
  177. package/dist/src/sandbox/macos/MacOsSandboxManager.test.js +157 -63
  178. package/dist/src/sandbox/macos/MacOsSandboxManager.test.js.map +1 -1
  179. package/dist/src/sandbox/macos/baseProfile.d.ts +2 -2
  180. package/dist/src/sandbox/macos/baseProfile.js +96 -8
  181. package/dist/src/sandbox/macos/baseProfile.js.map +1 -1
  182. package/dist/src/sandbox/macos/commandSafety.d.ts +24 -0
  183. package/dist/src/sandbox/macos/commandSafety.js +398 -0
  184. package/dist/src/sandbox/macos/commandSafety.js.map +1 -0
  185. package/dist/src/sandbox/macos/seatbeltArgsBuilder.d.ts +7 -0
  186. package/dist/src/sandbox/macos/seatbeltArgsBuilder.js +151 -6
  187. package/dist/src/sandbox/macos/seatbeltArgsBuilder.js.map +1 -1
  188. package/dist/src/sandbox/macos/seatbeltArgsBuilder.test.js +40 -1
  189. package/dist/src/sandbox/macos/seatbeltArgsBuilder.test.js.map +1 -1
  190. package/dist/src/{services/windowsSandboxManager.d.ts → sandbox/windows/WindowsSandboxManager.d.ts} +7 -3
  191. package/dist/src/{services/windowsSandboxManager.js → sandbox/windows/WindowsSandboxManager.js} +63 -23
  192. package/dist/src/sandbox/windows/WindowsSandboxManager.js.map +1 -0
  193. package/dist/src/sandbox/windows/WindowsSandboxManager.test.d.ts +6 -0
  194. package/dist/src/sandbox/windows/WindowsSandboxManager.test.js +120 -0
  195. package/dist/src/sandbox/windows/WindowsSandboxManager.test.js.map +1 -0
  196. package/dist/src/scheduler/confirmation.d.ts +3 -1
  197. package/dist/src/scheduler/confirmation.js +5 -2
  198. package/dist/src/scheduler/confirmation.js.map +1 -1
  199. package/dist/src/scheduler/hook-utils.d.ts +21 -0
  200. package/dist/src/scheduler/hook-utils.js +68 -0
  201. package/dist/src/scheduler/hook-utils.js.map +1 -0
  202. package/dist/src/scheduler/policy.js +2 -1
  203. package/dist/src/scheduler/policy.js.map +1 -1
  204. package/dist/src/scheduler/policy.test.js +24 -50
  205. package/dist/src/scheduler/policy.test.js.map +1 -1
  206. package/dist/src/scheduler/scheduler.js +93 -3
  207. package/dist/src/scheduler/scheduler.js.map +1 -1
  208. package/dist/src/scheduler/scheduler.test.js +13 -4
  209. package/dist/src/scheduler/scheduler.test.js.map +1 -1
  210. package/dist/src/scheduler/scheduler_hooks.test.d.ts +6 -0
  211. package/dist/src/scheduler/scheduler_hooks.test.js +226 -0
  212. package/dist/src/scheduler/scheduler_hooks.test.js.map +1 -0
  213. package/dist/src/scheduler/scheduler_parallel.test.js +4 -2
  214. package/dist/src/scheduler/scheduler_parallel.test.js.map +1 -1
  215. package/dist/src/scheduler/state-manager.js +3 -0
  216. package/dist/src/scheduler/state-manager.js.map +1 -1
  217. package/dist/src/scheduler/state-manager.test.js +10 -11
  218. package/dist/src/scheduler/state-manager.test.js.map +1 -1
  219. package/dist/src/scheduler/tool-executor.js +17 -1
  220. package/dist/src/scheduler/tool-executor.js.map +1 -1
  221. package/dist/src/scheduler/tool-executor.test.js +2 -3
  222. package/dist/src/scheduler/tool-executor.test.js.map +1 -1
  223. package/dist/src/scheduler/types.d.ts +2 -0
  224. package/dist/src/services/FolderTrustDiscoveryService.js +1 -0
  225. package/dist/src/services/FolderTrustDiscoveryService.js.map +1 -1
  226. package/dist/src/services/chatCompressionService.js +1 -0
  227. package/dist/src/services/chatCompressionService.js.map +1 -1
  228. package/dist/src/services/chatRecordingService.d.ts +1 -1
  229. package/dist/src/services/chatRecordingService.js +1 -1
  230. package/dist/src/services/chatRecordingService.js.map +1 -1
  231. package/dist/src/services/sandboxManager.d.ts +56 -6
  232. package/dist/src/services/sandboxManager.js +39 -1
  233. package/dist/src/services/sandboxManager.js.map +1 -1
  234. package/dist/src/services/sandboxManager.test.js +18 -5
  235. package/dist/src/services/sandboxManager.test.js.map +1 -1
  236. package/dist/src/services/sandboxManagerFactory.d.ts +2 -1
  237. package/dist/src/services/sandboxManagerFactory.js +15 -4
  238. package/dist/src/services/sandboxManagerFactory.js.map +1 -1
  239. package/dist/src/services/shellExecutionService.d.ts +2 -1
  240. package/dist/src/services/shellExecutionService.js +3 -2
  241. package/dist/src/services/shellExecutionService.js.map +1 -1
  242. package/dist/src/services/toolOutputMaskingService.js +1 -0
  243. package/dist/src/services/toolOutputMaskingService.js.map +1 -1
  244. package/dist/src/telemetry/clearcut-logger/clearcut-logger.d.ts +5 -1
  245. package/dist/src/telemetry/clearcut-logger/clearcut-logger.js +23 -0
  246. package/dist/src/telemetry/clearcut-logger/clearcut-logger.js.map +1 -1
  247. package/dist/src/telemetry/clearcut-logger/clearcut-logger.test.js +29 -1
  248. package/dist/src/telemetry/clearcut-logger/clearcut-logger.test.js.map +1 -1
  249. package/dist/src/telemetry/clearcut-logger/event-metadata-key.d.ts +3 -1
  250. package/dist/src/telemetry/clearcut-logger/event-metadata-key.js +8 -1
  251. package/dist/src/telemetry/clearcut-logger/event-metadata-key.js.map +1 -1
  252. package/dist/src/telemetry/conseca-logger.test.js +2 -2
  253. package/dist/src/telemetry/index.d.ts +2 -2
  254. package/dist/src/telemetry/index.js +2 -2
  255. package/dist/src/telemetry/index.js.map +1 -1
  256. package/dist/src/telemetry/loggers.d.ts +3 -1
  257. package/dist/src/telemetry/loggers.js +29 -1
  258. package/dist/src/telemetry/loggers.js.map +1 -1
  259. package/dist/src/telemetry/loggers.test.circular.js.map +1 -1
  260. package/dist/src/telemetry/loggers.test.js +61 -2
  261. package/dist/src/telemetry/loggers.test.js.map +1 -1
  262. package/dist/src/telemetry/metrics.d.ts +22 -0
  263. package/dist/src/telemetry/metrics.js +35 -0
  264. package/dist/src/telemetry/metrics.js.map +1 -1
  265. package/dist/src/telemetry/sanitize.test.js +2 -0
  266. package/dist/src/telemetry/sanitize.test.js.map +1 -1
  267. package/dist/src/telemetry/sdk.js +1 -1
  268. package/dist/src/telemetry/sdk.js.map +1 -1
  269. package/dist/src/telemetry/trace.d.ts +3 -3
  270. package/dist/src/telemetry/trace.js +55 -16
  271. package/dist/src/telemetry/trace.js.map +1 -1
  272. package/dist/src/telemetry/trace.test.js +60 -12
  273. package/dist/src/telemetry/trace.test.js.map +1 -1
  274. package/dist/src/telemetry/types.d.ts +19 -1
  275. package/dist/src/telemetry/types.js +41 -0
  276. package/dist/src/telemetry/types.js.map +1 -1
  277. package/dist/src/telemetry/uiTelemetry.test.js +10 -0
  278. package/dist/src/telemetry/uiTelemetry.test.js.map +1 -1
  279. package/dist/src/test-utils/mock-message-bus.js +0 -4
  280. package/dist/src/test-utils/mock-message-bus.js.map +1 -1
  281. package/dist/src/test-utils/mock-tool.d.ts +6 -6
  282. package/dist/src/test-utils/mock-tool.js +3 -8
  283. package/dist/src/test-utils/mock-tool.js.map +1 -1
  284. package/dist/src/test-utils/mockWorkspaceContext.js +0 -1
  285. package/dist/src/test-utils/mockWorkspaceContext.js.map +1 -1
  286. package/dist/src/tools/confirmation-policy.test.js +18 -1
  287. package/dist/src/tools/confirmation-policy.test.js.map +1 -1
  288. package/dist/src/tools/definitions/base-declarations.d.ts +2 -1
  289. package/dist/src/tools/definitions/base-declarations.js +3 -1
  290. package/dist/src/tools/definitions/base-declarations.js.map +1 -1
  291. package/dist/src/tools/definitions/coreTools.d.ts +2 -2
  292. package/dist/src/tools/definitions/coreTools.js +4 -4
  293. package/dist/src/tools/definitions/coreTools.js.map +1 -1
  294. package/dist/src/tools/definitions/coreToolsModelSnapshots.test.js +1 -1
  295. package/dist/src/tools/definitions/coreToolsModelSnapshots.test.js.map +1 -1
  296. package/dist/src/tools/definitions/dynamic-declaration-helpers.d.ts +1 -1
  297. package/dist/src/tools/definitions/dynamic-declaration-helpers.js +30 -5
  298. package/dist/src/tools/definitions/dynamic-declaration-helpers.js.map +1 -1
  299. package/dist/src/tools/definitions/model-family-sets/default-legacy.js +1 -1
  300. package/dist/src/tools/definitions/model-family-sets/default-legacy.js.map +1 -1
  301. package/dist/src/tools/definitions/model-family-sets/gemini-3.js +1 -1
  302. package/dist/src/tools/definitions/model-family-sets/gemini-3.js.map +1 -1
  303. package/dist/src/tools/definitions/types.d.ts +1 -1
  304. package/dist/src/tools/diffOptions.d.ts +6 -0
  305. package/dist/src/tools/diffOptions.js +34 -0
  306. package/dist/src/tools/diffOptions.js.map +1 -1
  307. package/dist/src/tools/edit.js +29 -7
  308. package/dist/src/tools/edit.js.map +1 -1
  309. package/dist/src/tools/edit.test.js +29 -0
  310. package/dist/src/tools/edit.test.js.map +1 -1
  311. package/dist/src/tools/enter-plan-mode.js +3 -3
  312. package/dist/src/tools/enter-plan-mode.test.js +4 -4
  313. package/dist/src/tools/exit-plan-mode.d.ts +1 -1
  314. package/dist/src/tools/exit-plan-mode.js +14 -16
  315. package/dist/src/tools/exit-plan-mode.js.map +1 -1
  316. package/dist/src/tools/exit-plan-mode.test.js +32 -41
  317. package/dist/src/tools/exit-plan-mode.test.js.map +1 -1
  318. package/dist/src/tools/line-endings.test.js +4 -0
  319. package/dist/src/tools/line-endings.test.js.map +1 -1
  320. package/dist/src/tools/mcp-client-manager.js +3 -0
  321. package/dist/src/tools/mcp-client-manager.js.map +1 -1
  322. package/dist/src/tools/mcp-client-manager.test.js +1 -0
  323. package/dist/src/tools/mcp-client-manager.test.js.map +1 -1
  324. package/dist/src/tools/mcp-client.d.ts +2 -1
  325. package/dist/src/tools/mcp-client.js.map +1 -1
  326. package/dist/src/tools/mcp-tool.d.ts +2 -0
  327. package/dist/src/tools/mcp-tool.js +32 -6
  328. package/dist/src/tools/mcp-tool.js.map +1 -1
  329. package/dist/src/tools/mcp-tool.test.js +30 -0
  330. package/dist/src/tools/mcp-tool.test.js.map +1 -1
  331. package/dist/src/tools/message-bus-integration.test.js +2 -2
  332. package/dist/src/tools/read-file.test.js +3 -1
  333. package/dist/src/tools/read-file.test.js.map +1 -1
  334. package/dist/src/tools/shell.d.ts +7 -0
  335. package/dist/src/tools/shell.js +183 -10
  336. package/dist/src/tools/shell.js.map +1 -1
  337. package/dist/src/tools/shell.test.js +26 -0
  338. package/dist/src/tools/shell.test.js.map +1 -1
  339. package/dist/src/tools/tool-error.d.ts +1 -0
  340. package/dist/src/tools/tool-error.js +1 -0
  341. package/dist/src/tools/tool-error.js.map +1 -1
  342. package/dist/src/tools/tool-names.d.ts +10 -6
  343. package/dist/src/tools/tool-names.js +10 -7
  344. package/dist/src/tools/tool-names.js.map +1 -1
  345. package/dist/src/tools/tools.d.ts +74 -7
  346. package/dist/src/tools/tools.js +48 -18
  347. package/dist/src/tools/tools.js.map +1 -1
  348. package/dist/src/tools/web-fetch.js +4 -21
  349. package/dist/src/tools/web-fetch.js.map +1 -1
  350. package/dist/src/tools/web-fetch.test.js +8 -0
  351. package/dist/src/tools/web-fetch.test.js.map +1 -1
  352. package/dist/src/tools/web-search.js +2 -2
  353. package/dist/src/tools/web-search.js.map +1 -1
  354. package/dist/src/tools/write-file.js +8 -6
  355. package/dist/src/tools/write-file.js.map +1 -1
  356. package/dist/src/tools/write-file.test.js +2 -0
  357. package/dist/src/tools/write-file.test.js.map +1 -1
  358. package/dist/src/utils/checkpointUtils.d.ts +4 -4
  359. package/dist/src/utils/events.d.ts +4 -1
  360. package/dist/src/utils/events.js.map +1 -1
  361. package/dist/src/utils/planUtils.d.ts +2 -2
  362. package/dist/src/utils/planUtils.js +5 -4
  363. package/dist/src/utils/planUtils.js.map +1 -1
  364. package/dist/src/utils/planUtils.test.js +3 -8
  365. package/dist/src/utils/planUtils.test.js.map +1 -1
  366. package/dist/src/utils/shell-utils.js +6 -7
  367. package/dist/src/utils/shell-utils.js.map +1 -1
  368. package/dist/src/utils/shell-utils.test.js +35 -3
  369. package/dist/src/utils/shell-utils.test.js.map +1 -1
  370. package/dist/tsconfig.tsbuildinfo +1 -1
  371. package/package.json +1 -1
  372. package/dist/google-gemini-cli-core-0.36.0-nightly.20260317.2f90b4653.tgz +0 -0
  373. package/dist/src/core/coreToolScheduler.d.ts +0 -49
  374. package/dist/src/core/coreToolScheduler.js +0 -751
  375. package/dist/src/core/coreToolScheduler.js.map +0 -1
  376. package/dist/src/core/coreToolScheduler.test.js +0 -1889
  377. package/dist/src/core/coreToolScheduler.test.js.map +0 -1
  378. package/dist/src/services/windowsSandboxManager.js.map +0 -1
  379. package/dist/src/services/windowsSandboxManager.test.js +0 -59
  380. package/dist/src/services/windowsSandboxManager.test.js.map +0 -1
  381. /package/dist/src/{services/windowsSandboxManager.test.d.ts → agent/event-translator.test.d.ts} +0 -0
  382. /package/dist/src/{services/scripts → sandbox/windows}/GeminiSandbox.cs +0 -0
@@ -1,6 +1,6 @@
1
- # Preview release: v0.35.0-preview.2
1
+ # Preview release: v0.35.0-preview.5
2
2
 
3
- Released: March 19, 2026
3
+ Released: March 23, 2026
4
4
 
5
5
  Our preview release includes the latest, new, and experimental features. This
6
6
  release may not be as stable as our [latest weekly release](latest.md).
@@ -33,6 +33,13 @@ npm install -g @google/gemini-cli@preview
33
33
 
34
34
  ## What's Changed
35
35
 
36
+ - fix(patch): cherry-pick b2d6dc4 to release/v0.35.0-preview.4-pr-23546
37
+ [CONFLICTS] by @gemini-cli-robot in
38
+ [#23585](https://github.com/google-gemini/gemini-cli/pull/23585)
39
+ - fix(patch): cherry-pick daf3691 to release/v0.35.0-preview.2-pr-23558 to patch
40
+ version v0.35.0-preview.2 and create version 0.35.0-preview.3 by
41
+ @gemini-cli-robot in
42
+ [#23565](https://github.com/google-gemini/gemini-cli/pull/23565)
36
43
  - fix(patch): cherry-pick 4e5dfd0 to release/v0.35.0-preview.1-pr-23074 to patch
37
44
  version v0.35.0-preview.1 and create version 0.35.0-preview.2 by
38
45
  @gemini-cli-robot in
@@ -377,4 +384,4 @@ npm install -g @google/gemini-cli@preview
377
384
  [#22815](https://github.com/google-gemini/gemini-cli/pull/22815)
378
385
 
379
386
  **Full Changelog**:
380
- https://github.com/google-gemini/gemini-cli/compare/v0.34.0-preview.4...v0.35.0-preview.2
387
+ https://github.com/google-gemini/gemini-cli/compare/v0.34.0-preview.4...v0.35.0-preview.5
@@ -200,6 +200,7 @@ your specific environment.
200
200
 
201
201
  ```toml
202
202
  [[rule]]
203
+ toolName = "*"
203
204
  mcpName = "*"
204
205
  toolAnnotations = { readOnlyHint = true }
205
206
  decision = "allow"
@@ -904,6 +904,20 @@ Logs keychain availability checks.
904
904
 
905
905
  - `available` (boolean)
906
906
 
907
+ ##### `gemini_cli.startup_stats`
908
+
909
+ Logs detailed startup performance statistics.
910
+
911
+ <details>
912
+ <summary>Attributes</summary>
913
+
914
+ - `phases` (json array of startup phases)
915
+ - `os_platform` (string)
916
+ - `os_release` (string)
917
+ - `is_docker` (boolean)
918
+
919
+ </details>
920
+
907
921
  </details>
908
922
 
909
923
  ### Metrics
@@ -920,6 +934,20 @@ Gemini CLI exports several custom metrics.
920
934
 
921
935
  Incremented once per CLI startup.
922
936
 
937
+ ##### Onboarding
938
+
939
+ Tracks onboarding flow from authentication to the user
940
+
941
+ - `gemini_cli.onboarding.start` (Counter, Int): Incremented when the
942
+ authentication flow begins.
943
+
944
+ - `gemini_cli.onboarding.success` (Counter, Int): Incremented when the user
945
+ onboarding flow completes successfully.
946
+ <details>
947
+ <summary>Attributes (Success)</summary>
948
+
949
+ - `user_tier` (string)
950
+
923
951
  ##### Tools
924
952
 
925
953
  ##### `gemini_cli.tool.call.count`
@@ -104,7 +104,7 @@ Gemini CLI supports the following authentication types:
104
104
  | `apiKey` | Send a static API key as an HTTP header. |
105
105
  | `http` | HTTP authentication (Bearer token, Basic credentials, or any IANA-registered scheme). |
106
106
  | `google-credentials` | Google Application Default Credentials (ADC). Automatically selects access or identity tokens. |
107
- | `oauth2` | OAuth 2.0 Authorization Code flow with PKCE. Opens a browser for interactive sign-in. |
107
+ | `oauth` | OAuth 2.0 Authorization Code flow with PKCE. Opens a browser for interactive sign-in. |
108
108
 
109
109
  ### Dynamic values
110
110
 
@@ -263,7 +263,7 @@ hosts:
263
263
 
264
264
  Requests to any other host will be rejected with an error. If your agent is
265
265
  hosted on a different domain, use one of the other auth types (`apiKey`, `http`,
266
- or `oauth2`).
266
+ or `oauth`).
267
267
 
268
268
  #### Examples
269
269
 
@@ -297,7 +297,7 @@ auth:
297
297
  ---
298
298
  ```
299
299
 
300
- ### OAuth 2.0 (`oauth2`)
300
+ ### OAuth 2.0 (`oauth`)
301
301
 
302
302
  Performs an interactive OAuth 2.0 Authorization Code flow with PKCE. On first
303
303
  use, Gemini CLI opens your browser for sign-in and persists the resulting tokens
@@ -305,7 +305,7 @@ for subsequent requests.
305
305
 
306
306
  | Field | Type | Required | Description |
307
307
  | :------------------ | :------- | :------- | :------------------------------------------------------------------------------------------------------------------------------------------------- |
308
- | `type` | string | Yes | Must be `oauth2`. |
308
+ | `type` | string | Yes | Must be `oauth`. |
309
309
  | `client_id` | string | Yes\* | OAuth client ID. Required for interactive auth. |
310
310
  | `client_secret` | string | No\* | OAuth client secret. Required by most authorization servers (confidential clients). Can be omitted for public clients that don't require a secret. |
311
311
  | `scopes` | string[] | No | Requested scopes. Can also be discovered from the agent card. |
@@ -318,7 +318,7 @@ kind: remote
318
318
  name: oauth-agent
319
319
  agent_card_url: https://example.com/.well-known/agent.json
320
320
  auth:
321
- type: oauth2
321
+ type: oauth
322
322
  client_id: my-client-id.apps.example.com
323
323
  ---
324
324
  ```
@@ -250,8 +250,8 @@ Slash commands provide meta-level control over the CLI itself.
250
250
  - **`list`** or **`ls`**:
251
251
  - **Description:** List configured MCP servers and tools. This is the
252
252
  default action if no subcommand is specified.
253
- - **`refresh`**:
254
- - **Description:** Restarts all MCP servers and re-discovers their available
253
+ - **`reload`**:
254
+ - **Description:** Reloads all MCP servers and re-discovers their available
255
255
  tools.
256
256
  - **`schema`**:
257
257
  - **Description:** List configured MCP servers and tools with descriptions
@@ -295,6 +295,11 @@ their corresponding top-level category object in your `settings.json` file.
295
295
  - **Description:** Hide the footer from the UI
296
296
  - **Default:** `false`
297
297
 
298
+ - **`ui.collapseDrawerDuringApproval`** (boolean):
299
+ - **Description:** Whether to collapse the UI drawer when a tool is awaiting
300
+ confirmation.
301
+ - **Default:** `true`
302
+
298
303
  - **`ui.showMemoryUsage`** (boolean):
299
304
  - **Description:** Display memory usage information in the UI
300
305
  - **Default:** `false`
@@ -1535,7 +1540,7 @@ their corresponding top-level category object in your `settings.json` file.
1535
1540
 
1536
1541
  - **`experimental.enableAgents`** (boolean):
1537
1542
  - **Description:** Enable local and remote subagents.
1538
- - **Default:** `true`
1543
+ - **Default:** `false`
1539
1544
  - **Requires restart:** Yes
1540
1545
 
1541
1546
  - **`experimental.worktrees`** (boolean):
@@ -301,7 +301,7 @@ priority = 10
301
301
  # (Optional) A custom message to display when a tool call is denied by this
302
302
  # rule. This message is returned to the model and user,
303
303
  # useful for explaining *why* it was denied.
304
- deny_message = "Deletion is permanent"
304
+ denyMessage = "Deletion is permanent"
305
305
 
306
306
  # (Optional) An array of approval modes where this rule is active.
307
307
  modes = ["autoEdit"]
@@ -310,6 +310,14 @@ modes = ["autoEdit"]
310
310
  # non-interactive (false) environments.
311
311
  # If omitted, the rule applies to both.
312
312
  interactive = true
313
+
314
+ # (Optional) If true, lets shell commands use redirection operators
315
+ # (>, >>, <, <<, <<<). By default, the policy engine asks for confirmation
316
+ # when redirection is detected, even if a rule matches the command.
317
+ # This permission is granular; it only applies to the specific rule it's
318
+ # defined in. In chained commands (e.g., cmd1 > file && cmd2), each
319
+ # individual command rule must permit redirection if it's used.
320
+ allowRedirection = true
313
321
  ```
314
322
 
315
323
  ### Using arrays (lists)
@@ -394,7 +402,7 @@ server.
394
402
  mcpName = "untrusted-server"
395
403
  decision = "deny"
396
404
  priority = 500
397
- deny_message = "This server is not trusted by the admin."
405
+ denyMessage = "This server is not trusted by the admin."
398
406
  ```
399
407
 
400
408
  **3. Targeting all MCP servers**
@@ -405,6 +413,7 @@ registered MCP server. This is useful for setting category-wide defaults.
405
413
  ```toml
406
414
  # Ask user for any tool call from any MCP server
407
415
  [[rule]]
416
+ toolName = "*"
408
417
  mcpName = "*"
409
418
  decision = "ask_user"
410
419
  priority = 10
@@ -16,7 +16,7 @@ export declare class AgentSession implements AgentProtocol {
16
16
  }>;
17
17
  subscribe(callback: (event: AgentEvent) => void): Unsubscribe;
18
18
  abort(): Promise<void>;
19
- get events(): AgentEvent[];
19
+ get events(): readonly AgentEvent[];
20
20
  /**
21
21
  * Sends a payload to the agent and returns an AsyncIterable that yields
22
22
  * events for the resulting stream.
@@ -54,6 +54,26 @@ export class AgentSession {
54
54
  let done = false;
55
55
  let trackedStreamId = options.streamId;
56
56
  let started = false;
57
+ let agentActivityStarted = false;
58
+ const queueVisibleEvent = (event) => {
59
+ if (trackedStreamId && event.streamId !== trackedStreamId) {
60
+ return;
61
+ }
62
+ if (!agentActivityStarted) {
63
+ if (event.type !== 'agent_start') {
64
+ return;
65
+ }
66
+ trackedStreamId = event.streamId;
67
+ agentActivityStarted = true;
68
+ }
69
+ if (!trackedStreamId) {
70
+ return;
71
+ }
72
+ eventQueue.push(event);
73
+ if (event.type === 'agent_end' && event.streamId === trackedStreamId) {
74
+ done = true;
75
+ }
76
+ };
57
77
  // 1. Subscribe early to avoid missing any events that occur during replay setup
58
78
  const unsubscribe = this._protocol.subscribe((event) => {
59
79
  if (done)
@@ -62,20 +82,7 @@ export class AgentSession {
62
82
  earlyEvents.push(event);
63
83
  return;
64
84
  }
65
- if (trackedStreamId && event.streamId !== trackedStreamId)
66
- return;
67
- // If we don't have a tracked stream yet, the first agent_start we see becomes it.
68
- if (!trackedStreamId && event.type === 'agent_start') {
69
- trackedStreamId = event.streamId ?? undefined;
70
- }
71
- // If we still don't have a tracked stream and we aren't replaying everything (eventId), ignore.
72
- if (!trackedStreamId && !options.eventId)
73
- return;
74
- eventQueue.push(event);
75
- if (event.type === 'agent_end' &&
76
- event.streamId === (trackedStreamId ?? null)) {
77
- done = true;
78
- }
85
+ queueVisibleEvent(event);
79
86
  const currentResolve = resolve;
80
87
  next = new Promise((r) => {
81
88
  resolve = r;
@@ -87,8 +94,36 @@ export class AgentSession {
87
94
  let replayStartIndex = -1;
88
95
  if (options.eventId) {
89
96
  const index = currentEvents.findIndex((e) => e.id === options.eventId);
90
- if (index !== -1) {
97
+ if (index === -1) {
98
+ throw new Error(`Unknown eventId: ${options.eventId}`);
99
+ }
100
+ const resumeEvent = currentEvents[index];
101
+ trackedStreamId = resumeEvent.streamId;
102
+ const firstAgentStartIndex = currentEvents.findIndex((event) => event.type === 'agent_start' && event.streamId === trackedStreamId);
103
+ if (resumeEvent.type === 'agent_end') {
91
104
  replayStartIndex = index + 1;
105
+ agentActivityStarted = true;
106
+ done = true;
107
+ }
108
+ else if (firstAgentStartIndex !== -1 &&
109
+ firstAgentStartIndex <= index) {
110
+ replayStartIndex = index + 1;
111
+ agentActivityStarted = true;
112
+ }
113
+ else if (firstAgentStartIndex !== -1) {
114
+ // A pre-agent_start cursor can be resumed once the corresponding
115
+ // agent activity is already present in history. Because stream()
116
+ // yields only agent_start -> agent_end, replay begins at agent_start
117
+ // rather than at the original pre-start event.
118
+ replayStartIndex = firstAgentStartIndex;
119
+ }
120
+ else {
121
+ // Consumers can only resume by eventId once the corresponding stream
122
+ // has entered the agent_start -> agent_end lifecycle in history.
123
+ // Without a recorded agent_start, this wrapper cannot distinguish
124
+ // "agent activity may start later" from "this send was acknowledged
125
+ // without agent activity" without risking an infinite wait.
126
+ throw new Error(`Cannot resume from eventId ${options.eventId} before agent_start for stream ${trackedStreamId}`);
92
127
  }
93
128
  }
94
129
  else if (options.streamId) {
@@ -97,55 +132,31 @@ export class AgentSession {
97
132
  replayStartIndex = index;
98
133
  }
99
134
  }
100
- if (replayStartIndex !== -1) {
101
- for (let i = replayStartIndex; i < currentEvents.length; i++) {
102
- const event = currentEvents[i];
103
- if (options.streamId && event.streamId !== options.streamId)
104
- continue;
105
- eventQueue.push(event);
106
- if (event.type === 'agent_start' && !trackedStreamId) {
107
- trackedStreamId = event.streamId ?? undefined;
108
- }
109
- if (event.type === 'agent_end' &&
110
- event.streamId === (trackedStreamId ?? null)) {
111
- done = true;
112
- break;
113
- }
114
- }
115
- }
116
- if (!done && !trackedStreamId) {
117
- // Find active stream in history
135
+ else {
118
136
  const activeStarts = currentEvents.filter((e) => e.type === 'agent_start');
119
137
  for (let i = activeStarts.length - 1; i >= 0; i--) {
120
138
  const start = activeStarts[i];
121
139
  if (!currentEvents.some((e) => e.type === 'agent_end' && e.streamId === start.streamId)) {
122
- trackedStreamId = start.streamId ?? undefined;
140
+ trackedStreamId = start.streamId;
141
+ replayStartIndex = currentEvents.findIndex((e) => e.id === start.id);
123
142
  break;
124
143
  }
125
144
  }
126
145
  }
127
- // If we replayed to the end and no stream is active, and we were specifically
128
- // replaying from an eventId (or we've already finished the stream we were looking for), we are done.
129
- if (!done && !trackedStreamId && options.eventId) {
130
- done = true;
146
+ if (replayStartIndex !== -1) {
147
+ for (let i = replayStartIndex; i < currentEvents.length; i++) {
148
+ const event = currentEvents[i];
149
+ queueVisibleEvent(event);
150
+ if (done)
151
+ break;
152
+ }
131
153
  }
132
154
  started = true;
133
155
  // Process events that arrived while we were replaying
134
156
  for (const event of earlyEvents) {
135
157
  if (done)
136
158
  break;
137
- if (trackedStreamId && event.streamId !== trackedStreamId)
138
- continue;
139
- if (!trackedStreamId && event.type === 'agent_start') {
140
- trackedStreamId = event.streamId ?? undefined;
141
- }
142
- if (!trackedStreamId && !options.eventId)
143
- continue;
144
- eventQueue.push(event);
145
- if (event.type === 'agent_end' &&
146
- event.streamId === (trackedStreamId ?? null)) {
147
- done = true;
148
- }
159
+ queueVisibleEvent(event);
149
160
  }
150
161
  while (true) {
151
162
  if (eventQueue.length > 0) {
@@ -154,6 +165,7 @@ export class AgentSession {
154
165
  for (const event of eventsToYield) {
155
166
  yield event;
156
167
  }
168
+ continue;
157
169
  }
158
170
  if (done)
159
171
  break;
@@ -1 +1 @@
1
- {"version":3,"file":"agent-session.js","sourceRoot":"","sources":["../../../src/agent/agent-session.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent-session.js","sourceRoot":"","sources":["../../../src/agent/agent-session.ts"],"names":[],"mappings":"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"}
@@ -24,8 +24,7 @@ describe('AgentSession', () => {
24
24
  protocol.pushResponse([], { keepOpen: true });
25
25
  await session.send({ update: { title: 't' } });
26
26
  await session.abort();
27
- expect(session.events.some((e) => e.type === 'agent_end' &&
28
- e.reason === 'aborted')).toBe(true);
27
+ expect(session.events.some((e) => e.type === 'agent_end' && e.reason === 'aborted')).toBe(true);
29
28
  });
30
29
  it('should yield events via sendStream', async () => {
31
30
  const protocol = new MockAgentProtocol();
@@ -92,6 +91,7 @@ describe('AgentSession', () => {
92
91
  expect(events).toHaveLength(0);
93
92
  expect(protocol.events).toHaveLength(1);
94
93
  expect(protocol.events[0].type).toBe('session_update');
94
+ expect(protocol.events[0].streamId).toEqual(expect.any(String));
95
95
  });
96
96
  it('should skip events that occur before agent_start', async () => {
97
97
  const protocol = new MockAgentProtocol();
@@ -135,6 +135,134 @@ describe('AgentSession', () => {
135
135
  }
136
136
  expect(streamedEvents).toEqual(allEvents.slice(2));
137
137
  });
138
+ it('should complete immediately when resuming from agent_end', async () => {
139
+ const protocol = new MockAgentProtocol();
140
+ const session = new AgentSession(protocol);
141
+ protocol.pushResponse([{ type: 'message' }]);
142
+ const { streamId } = await session.send({
143
+ message: [{ type: 'text', text: 'request' }],
144
+ });
145
+ await new Promise((resolve) => setTimeout(resolve, 10));
146
+ const endEvent = session.events.findLast((event) => event.type === 'agent_end' && event.streamId === streamId);
147
+ expect(endEvent).toBeDefined();
148
+ const iterator = session
149
+ .stream({ eventId: endEvent.id })[Symbol.asyncIterator]();
150
+ await expect(iterator.next()).resolves.toEqual({
151
+ value: undefined,
152
+ done: true,
153
+ });
154
+ });
155
+ it('should throw for an unknown eventId', async () => {
156
+ const protocol = new MockAgentProtocol();
157
+ const session = new AgentSession(protocol);
158
+ const iterator = session
159
+ .stream({ eventId: 'missing-event' })[Symbol.asyncIterator]();
160
+ await expect(iterator.next()).rejects.toThrow('Unknown eventId: missing-event');
161
+ });
162
+ it('should throw when resuming from an event before agent_start on a stream with no agent activity', async () => {
163
+ const protocol = new MockAgentProtocol();
164
+ const session = new AgentSession(protocol);
165
+ const { streamId } = await session.send({ update: { title: 'draft' } });
166
+ expect(streamId).toBeNull();
167
+ const updateEvent = session.events.find((event) => event.type === 'session_update');
168
+ expect(updateEvent).toBeDefined();
169
+ const iterator = session
170
+ .stream({ eventId: updateEvent.id })[Symbol.asyncIterator]();
171
+ await expect(iterator.next()).rejects.toThrow(`Cannot resume from eventId ${updateEvent.id} before agent_start for stream ${updateEvent.streamId}`);
172
+ });
173
+ it('should replay from agent_start when resuming from a pre-agent_start event after activity is in history', async () => {
174
+ const protocol = new MockAgentProtocol();
175
+ const session = new AgentSession(protocol);
176
+ protocol.pushResponse([
177
+ {
178
+ type: 'message',
179
+ role: 'agent',
180
+ content: [{ type: 'text', text: 'hello' }],
181
+ },
182
+ ]);
183
+ await session.send({
184
+ message: [{ type: 'text', text: 'request' }],
185
+ });
186
+ await new Promise((resolve) => setTimeout(resolve, 10));
187
+ const userMessage = session.events.find((event) => event.type === 'message' && event.role === 'user');
188
+ expect(userMessage).toBeDefined();
189
+ const streamedEvents = [];
190
+ for await (const event of session.stream({ eventId: userMessage.id })) {
191
+ streamedEvents.push(event);
192
+ }
193
+ expect(streamedEvents.map((event) => event.type)).toEqual([
194
+ 'agent_start',
195
+ 'message',
196
+ 'agent_end',
197
+ ]);
198
+ expect(streamedEvents[0]?.streamId).toBe(userMessage.streamId);
199
+ });
200
+ it('should throw when resuming from a pre-agent_start event before activity is in history', async () => {
201
+ const protocol = new MockAgentProtocol([
202
+ {
203
+ id: 'e-1',
204
+ timestamp: '2026-01-01T00:00:00.000Z',
205
+ streamId: 'stream-1',
206
+ type: 'message',
207
+ role: 'user',
208
+ content: [{ type: 'text', text: 'request' }],
209
+ },
210
+ ]);
211
+ const session = new AgentSession(protocol);
212
+ const iterator = session
213
+ .stream({ eventId: 'e-1' })[Symbol.asyncIterator]();
214
+ await expect(iterator.next()).rejects.toThrow('Cannot resume from eventId e-1 before agent_start for stream stream-1');
215
+ });
216
+ it('should resume from an in-stream event within the same stream only', async () => {
217
+ const protocol = new MockAgentProtocol();
218
+ const session = new AgentSession(protocol);
219
+ protocol.pushResponse([
220
+ {
221
+ type: 'message',
222
+ role: 'agent',
223
+ content: [{ type: 'text', text: 'first answer 1' }],
224
+ },
225
+ {
226
+ type: 'message',
227
+ role: 'agent',
228
+ content: [{ type: 'text', text: 'first answer 2' }],
229
+ },
230
+ ]);
231
+ const { streamId: streamId1 } = await session.send({
232
+ message: [{ type: 'text', text: 'first request' }],
233
+ });
234
+ await new Promise((resolve) => setTimeout(resolve, 10));
235
+ protocol.pushResponse([
236
+ {
237
+ type: 'message',
238
+ role: 'agent',
239
+ content: [{ type: 'text', text: 'second answer' }],
240
+ },
241
+ ]);
242
+ await session.send({
243
+ message: [{ type: 'text', text: 'second request' }],
244
+ });
245
+ await new Promise((resolve) => setTimeout(resolve, 10));
246
+ const resumeEvent = session.events.find((event) => event.type === 'message' &&
247
+ event.streamId === streamId1 &&
248
+ event.role === 'agent' &&
249
+ event.content[0]?.type === 'text' &&
250
+ event.content[0].text === 'first answer 1');
251
+ expect(resumeEvent).toBeDefined();
252
+ const streamedEvents = [];
253
+ for await (const event of session.stream({ eventId: resumeEvent.id })) {
254
+ streamedEvents.push(event);
255
+ }
256
+ expect(streamedEvents.every((event) => event.streamId === streamId1)).toBe(true);
257
+ expect(streamedEvents.map((event) => event.type)).toEqual([
258
+ 'message',
259
+ 'agent_end',
260
+ ]);
261
+ const resumedMessage = streamedEvents[0];
262
+ expect(resumedMessage.content).toEqual([
263
+ { type: 'text', text: 'first answer 2' },
264
+ ]);
265
+ });
138
266
  it('should replay events for streamId starting with agent_start', async () => {
139
267
  const protocol = new MockAgentProtocol();
140
268
  const session = new AgentSession(protocol);
@@ -172,6 +300,24 @@ describe('AgentSession', () => {
172
300
  expect(streamedEvents).toEqual(allEvents.slice(startEventIndex));
173
301
  expect(streamedEvents.at(-1)?.type).toBe('agent_end');
174
302
  });
303
+ it('should not drop agent_end that arrives while replay events are being yielded', async () => {
304
+ const protocol = new MockAgentProtocol();
305
+ const session = new AgentSession(protocol);
306
+ protocol.pushResponse([{ type: 'message' }], { keepOpen: true });
307
+ const { streamId } = await session.send({ update: { title: 't1' } });
308
+ await new Promise((resolve) => setTimeout(resolve, 10));
309
+ const iterator = session
310
+ .stream({ streamId: streamId })[Symbol.asyncIterator]();
311
+ const first = await iterator.next();
312
+ expect(first.value?.type).toBe('agent_start');
313
+ protocol.pushToStream(streamId, [], { close: true });
314
+ const second = await iterator.next();
315
+ expect(second.value?.type).toBe('message');
316
+ const third = await iterator.next();
317
+ expect(third.value?.type).toBe('agent_end');
318
+ const fourth = await iterator.next();
319
+ expect(fourth.done).toBe(true);
320
+ });
175
321
  it('should follow an active stream if no options provided', async () => {
176
322
  const protocol = new MockAgentProtocol();
177
323
  const session = new AgentSession(protocol);
@@ -1 +1 @@
1
- {"version":3,"file":"agent-session.test.js","sourceRoot":"","sources":["../../../src/agent/agent-session.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent-session.test.js","sourceRoot":"","sources":["../../../src/agent/agent-session.test.ts"],"names":[],"mappings":"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"}