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

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 (366) hide show
  1. package/README.md +0 -1
  2. package/dist/docs/CONTRIBUTING.md +0 -15
  3. package/dist/docs/admin/enterprise-controls.md +61 -0
  4. package/dist/docs/changelogs/index.md +11 -0
  5. package/dist/docs/changelogs/latest.md +459 -209
  6. package/dist/docs/changelogs/preview.md +355 -454
  7. package/dist/docs/cli/checkpointing.md +3 -1
  8. package/dist/docs/cli/cli-reference.md +1 -0
  9. package/dist/docs/cli/custom-commands.md +7 -5
  10. package/dist/docs/cli/enterprise.md +15 -9
  11. package/dist/docs/cli/git-worktrees.md +107 -0
  12. package/dist/docs/cli/model-steering.md +4 -3
  13. package/dist/docs/cli/model.md +3 -1
  14. package/dist/docs/cli/notifications.md +4 -3
  15. package/dist/docs/cli/plan-mode.md +28 -8
  16. package/dist/docs/cli/sandbox.md +24 -4
  17. package/dist/docs/cli/session-management.md +6 -0
  18. package/dist/docs/cli/settings.md +14 -1
  19. package/dist/docs/cli/skills.md +4 -2
  20. package/dist/docs/cli/system-prompt.md +3 -1
  21. package/dist/docs/cli/telemetry.md +6 -3
  22. package/dist/docs/cli/themes.md +12 -8
  23. package/dist/docs/cli/tutorials/file-management.md +8 -6
  24. package/dist/docs/cli/tutorials/mcp-setup.md +5 -3
  25. package/dist/docs/cli/tutorials/memory-management.md +6 -6
  26. package/dist/docs/cli/tutorials/plan-mode-steering.md +4 -3
  27. package/dist/docs/cli/tutorials/shell-commands.md +3 -3
  28. package/dist/docs/core/remote-agents.md +8 -3
  29. package/dist/docs/core/subagents.md +21 -13
  30. package/dist/docs/extensions/reference.md +8 -3
  31. package/dist/docs/get-started/authentication.md +60 -50
  32. package/dist/docs/get-started/examples.md +3 -1
  33. package/dist/docs/get-started/gemini-3.md +11 -5
  34. package/dist/docs/hooks/index.md +3 -1
  35. package/dist/docs/hooks/writing-hooks.md +2 -2
  36. package/dist/docs/ide-integration/ide-companion-spec.md +5 -3
  37. package/dist/docs/ide-integration/index.md +8 -4
  38. package/dist/docs/issue-and-pr-automation.md +3 -1
  39. package/dist/docs/local-development.md +3 -1
  40. package/dist/docs/reference/commands.md +2 -2
  41. package/dist/docs/reference/configuration.md +410 -16
  42. package/dist/docs/reference/policy-engine.md +47 -19
  43. package/dist/docs/reference/tools.md +3 -1
  44. package/dist/docs/release-confidence.md +7 -3
  45. package/dist/docs/releases.md +11 -7
  46. package/dist/docs/resources/faq.md +13 -0
  47. package/dist/docs/resources/tos-privacy.md +4 -2
  48. package/dist/docs/resources/troubleshooting.md +3 -1
  49. package/dist/docs/sidebar.json +5 -0
  50. package/dist/docs/tools/mcp-server.md +17 -9
  51. package/dist/docs/tools/planning.md +3 -1
  52. package/dist/docs/tools/shell.md +4 -4
  53. package/dist/docs/tools/todos.md +2 -1
  54. package/dist/{google-gemini-cli-core-0.35.0-preview.1.tgz → google-gemini-cli-core-0.36.0-nightly.20260317.2f90b4653.tgz} +0 -0
  55. package/dist/src/agent/agent-session.d.ts +37 -0
  56. package/dist/src/agent/agent-session.js +168 -0
  57. package/dist/src/agent/agent-session.js.map +1 -0
  58. package/dist/src/agent/agent-session.test.d.ts +6 -0
  59. package/dist/src/agent/agent-session.test.js +217 -0
  60. package/dist/src/agent/agent-session.test.js.map +1 -0
  61. package/dist/src/agent/content-utils.d.ts +33 -0
  62. package/dist/src/agent/content-utils.js +135 -0
  63. package/dist/src/agent/content-utils.js.map +1 -0
  64. package/dist/src/agent/content-utils.test.d.ts +6 -0
  65. package/dist/src/agent/content-utils.test.js +223 -0
  66. package/dist/src/agent/content-utils.test.js.map +1 -0
  67. package/dist/src/agent/mock.d.ts +9 -12
  68. package/dist/src/agent/mock.js +88 -129
  69. package/dist/src/agent/mock.js.map +1 -1
  70. package/dist/src/agent/mock.test.js +114 -144
  71. package/dist/src/agent/mock.test.js.map +1 -1
  72. package/dist/src/agent/types.d.ts +21 -21
  73. package/dist/src/agents/a2a-client-manager.d.ts +2 -11
  74. package/dist/src/agents/a2a-client-manager.js +3 -19
  75. package/dist/src/agents/a2a-client-manager.js.map +1 -1
  76. package/dist/src/agents/a2a-client-manager.test.js +6 -10
  77. package/dist/src/agents/a2a-client-manager.test.js.map +1 -1
  78. package/dist/src/agents/agent-scheduler.d.ts +6 -0
  79. package/dist/src/agents/agent-scheduler.js +3 -2
  80. package/dist/src/agents/agent-scheduler.js.map +1 -1
  81. package/dist/src/agents/agent-scheduler.test.js +6 -0
  82. package/dist/src/agents/agent-scheduler.test.js.map +1 -1
  83. package/dist/src/agents/browser/browserAgentDefinition.js +10 -1
  84. package/dist/src/agents/browser/browserAgentDefinition.js.map +1 -1
  85. package/dist/src/agents/browser/browserAgentFactory.js +62 -1
  86. package/dist/src/agents/browser/browserAgentFactory.js.map +1 -1
  87. package/dist/src/agents/browser/browserAgentFactory.test.js +73 -0
  88. package/dist/src/agents/browser/browserAgentFactory.test.js.map +1 -1
  89. package/dist/src/agents/browser/browserAgentInvocation.js +2 -97
  90. package/dist/src/agents/browser/browserAgentInvocation.js.map +1 -1
  91. package/dist/src/agents/browser/browserAgentInvocation.test.js +30 -0
  92. package/dist/src/agents/browser/browserAgentInvocation.test.js.map +1 -1
  93. package/dist/src/agents/browser/browserManager.js +11 -0
  94. package/dist/src/agents/browser/browserManager.js.map +1 -1
  95. package/dist/src/agents/browser/browserManager.test.js +37 -0
  96. package/dist/src/agents/browser/browserManager.test.js.map +1 -1
  97. package/dist/src/agents/browser/mcpToolWrapper.d.ts +4 -2
  98. package/dist/src/agents/browser/mcpToolWrapper.js +30 -8
  99. package/dist/src/agents/browser/mcpToolWrapper.js.map +1 -1
  100. package/dist/src/agents/browser/mcpToolWrapper.test.js +30 -0
  101. package/dist/src/agents/browser/mcpToolWrapper.test.js.map +1 -1
  102. package/dist/src/agents/browser/mcpToolWrapperConfirmation.test.js +3 -3
  103. package/dist/src/agents/codebase-investigator.js +3 -3
  104. package/dist/src/agents/codebase-investigator.js.map +1 -1
  105. package/dist/src/agents/local-executor.d.ts +3 -1
  106. package/dist/src/agents/local-executor.js +138 -39
  107. package/dist/src/agents/local-executor.js.map +1 -1
  108. package/dist/src/agents/local-executor.test.js +305 -12
  109. package/dist/src/agents/local-executor.test.js.map +1 -1
  110. package/dist/src/agents/local-invocation.js +43 -24
  111. package/dist/src/agents/local-invocation.js.map +1 -1
  112. package/dist/src/agents/local-invocation.test.js +89 -14
  113. package/dist/src/agents/local-invocation.test.js.map +1 -1
  114. package/dist/src/agents/memory-manager-agent.d.ts +25 -0
  115. package/dist/src/agents/memory-manager-agent.js +137 -0
  116. package/dist/src/agents/memory-manager-agent.js.map +1 -0
  117. package/dist/src/agents/memory-manager-agent.test.d.ts +6 -0
  118. package/dist/src/agents/memory-manager-agent.test.js +117 -0
  119. package/dist/src/agents/memory-manager-agent.test.js.map +1 -0
  120. package/dist/src/agents/registry.js +21 -3
  121. package/dist/src/agents/registry.js.map +1 -1
  122. package/dist/src/agents/registry.test.js +23 -24
  123. package/dist/src/agents/registry.test.js.map +1 -1
  124. package/dist/src/agents/remote-invocation.d.ts +3 -1
  125. package/dist/src/agents/remote-invocation.js +10 -5
  126. package/dist/src/agents/remote-invocation.js.map +1 -1
  127. package/dist/src/agents/remote-invocation.test.js +64 -41
  128. package/dist/src/agents/remote-invocation.test.js.map +1 -1
  129. package/dist/src/agents/subagent-tool-wrapper.js +1 -1
  130. package/dist/src/agents/subagent-tool-wrapper.js.map +1 -1
  131. package/dist/src/agents/types.d.ts +12 -0
  132. package/dist/src/agents/types.js +14 -0
  133. package/dist/src/agents/types.js.map +1 -1
  134. package/dist/src/availability/policyHelpers.js +41 -1
  135. package/dist/src/availability/policyHelpers.js.map +1 -1
  136. package/dist/src/availability/policyHelpers.test.js +47 -0
  137. package/dist/src/availability/policyHelpers.test.js.map +1 -1
  138. package/dist/src/code_assist/admin/admin_controls.js +11 -0
  139. package/dist/src/code_assist/admin/admin_controls.js.map +1 -1
  140. package/dist/src/code_assist/admin/admin_controls.test.js +68 -0
  141. package/dist/src/code_assist/admin/admin_controls.test.js.map +1 -1
  142. package/dist/src/code_assist/admin/mcpUtils.d.ts +16 -1
  143. package/dist/src/code_assist/admin/mcpUtils.js +43 -0
  144. package/dist/src/code_assist/admin/mcpUtils.js.map +1 -1
  145. package/dist/src/code_assist/admin/mcpUtils.test.js +130 -1
  146. package/dist/src/code_assist/admin/mcpUtils.test.js.map +1 -1
  147. package/dist/src/code_assist/types.d.ts +458 -0
  148. package/dist/src/code_assist/types.js +26 -0
  149. package/dist/src/code_assist/types.js.map +1 -1
  150. package/dist/src/config/agent-loop-context.d.ts +6 -0
  151. package/dist/src/config/config.d.ts +41 -10
  152. package/dist/src/config/config.js +96 -19
  153. package/dist/src/config/config.js.map +1 -1
  154. package/dist/src/config/config.test.js +29 -1
  155. package/dist/src/config/config.test.js.map +1 -1
  156. package/dist/src/config/defaultModelConfigs.js +265 -9
  157. package/dist/src/config/defaultModelConfigs.js.map +1 -1
  158. package/dist/src/config/models.d.ts +13 -2
  159. package/dist/src/config/models.js +31 -3
  160. package/dist/src/config/models.js.map +1 -1
  161. package/dist/src/config/models.test.js +52 -7
  162. package/dist/src/config/models.test.js.map +1 -1
  163. package/dist/src/config/path-validation.test.d.ts +6 -0
  164. package/dist/src/config/path-validation.test.js +59 -0
  165. package/dist/src/config/path-validation.test.js.map +1 -0
  166. package/dist/src/core/client.d.ts +1 -0
  167. package/dist/src/core/client.js +6 -1
  168. package/dist/src/core/client.js.map +1 -1
  169. package/dist/src/core/client.test.js +9 -1
  170. package/dist/src/core/client.test.js.map +1 -1
  171. package/dist/src/core/contentGenerator.js +36 -6
  172. package/dist/src/core/contentGenerator.js.map +1 -1
  173. package/dist/src/core/contentGenerator.test.js +97 -3
  174. package/dist/src/core/contentGenerator.test.js.map +1 -1
  175. package/dist/src/core/geminiChat.js +2 -2
  176. package/dist/src/core/geminiChat.js.map +1 -1
  177. package/dist/src/core/prompts.test.js +10 -0
  178. package/dist/src/core/prompts.test.js.map +1 -1
  179. package/dist/src/generated/git-commit.d.ts +2 -2
  180. package/dist/src/generated/git-commit.js +2 -2
  181. package/dist/src/generated/git-commit.js.map +1 -1
  182. package/dist/src/ide/ide-connection-utils.js +2 -7
  183. package/dist/src/ide/ide-connection-utils.js.map +1 -1
  184. package/dist/src/ide/ide-connection-utils.test.js +7 -0
  185. package/dist/src/ide/ide-connection-utils.test.js.map +1 -1
  186. package/dist/src/index.d.ts +4 -0
  187. package/dist/src/index.js +4 -0
  188. package/dist/src/index.js.map +1 -1
  189. package/dist/src/policy/config.js +2 -0
  190. package/dist/src/policy/config.js.map +1 -1
  191. package/dist/src/policy/config.test.js +15 -0
  192. package/dist/src/policy/config.test.js.map +1 -1
  193. package/dist/src/policy/memory-manager-policy.test.d.ts +6 -0
  194. package/dist/src/policy/memory-manager-policy.test.js +80 -0
  195. package/dist/src/policy/memory-manager-policy.test.js.map +1 -0
  196. package/dist/src/policy/policies/memory-manager.toml +10 -0
  197. package/dist/src/policy/policies/plan.toml +14 -0
  198. package/dist/src/policy/policies/yolo.toml +1 -0
  199. package/dist/src/policy/policy-engine.js +33 -6
  200. package/dist/src/policy/policy-engine.js.map +1 -1
  201. package/dist/src/policy/policy-engine.test.js +85 -3
  202. package/dist/src/policy/policy-engine.test.js.map +1 -1
  203. package/dist/src/policy/policy-updater.test.js +44 -0
  204. package/dist/src/policy/policy-updater.test.js.map +1 -1
  205. package/dist/src/policy/toml-loader.js +2 -0
  206. package/dist/src/policy/toml-loader.js.map +1 -1
  207. package/dist/src/policy/types.d.ts +11 -0
  208. package/dist/src/policy/types.js +5 -0
  209. package/dist/src/policy/types.js.map +1 -1
  210. package/dist/src/prompts/promptProvider.js +5 -3
  211. package/dist/src/prompts/promptProvider.js.map +1 -1
  212. package/dist/src/prompts/promptProvider.test.js +1 -0
  213. package/dist/src/prompts/promptProvider.test.js.map +1 -1
  214. package/dist/src/prompts/snippets-memory-manager.test.d.ts +6 -0
  215. package/dist/src/prompts/snippets-memory-manager.test.js +31 -0
  216. package/dist/src/prompts/snippets-memory-manager.test.js.map +1 -0
  217. package/dist/src/prompts/snippets.d.ts +2 -0
  218. package/dist/src/prompts/snippets.js +7 -3
  219. package/dist/src/prompts/snippets.js.map +1 -1
  220. package/dist/src/prompts/snippets.legacy.d.ts +5 -0
  221. package/dist/src/prompts/snippets.legacy.js +30 -2
  222. package/dist/src/prompts/snippets.legacy.js.map +1 -1
  223. package/dist/src/routing/strategies/classifierStrategy.js +1 -1
  224. package/dist/src/routing/strategies/classifierStrategy.js.map +1 -1
  225. package/dist/src/routing/strategies/defaultStrategy.js +1 -1
  226. package/dist/src/routing/strategies/defaultStrategy.js.map +1 -1
  227. package/dist/src/routing/strategies/fallbackStrategy.js +1 -1
  228. package/dist/src/routing/strategies/fallbackStrategy.js.map +1 -1
  229. package/dist/src/routing/strategies/numericalClassifierStrategy.js +1 -1
  230. package/dist/src/routing/strategies/numericalClassifierStrategy.js.map +1 -1
  231. package/dist/src/routing/strategies/overrideStrategy.js +1 -1
  232. package/dist/src/routing/strategies/overrideStrategy.js.map +1 -1
  233. package/dist/src/sandbox/macos/MacOsSandboxManager.d.ts +28 -0
  234. package/dist/src/sandbox/macos/MacOsSandboxManager.integration.test.d.ts +1 -0
  235. package/dist/src/sandbox/macos/MacOsSandboxManager.integration.test.js +160 -0
  236. package/dist/src/sandbox/macos/MacOsSandboxManager.integration.test.js.map +1 -0
  237. package/dist/src/sandbox/macos/MacOsSandboxManager.js +33 -0
  238. package/dist/src/sandbox/macos/MacOsSandboxManager.js.map +1 -0
  239. package/dist/src/sandbox/macos/MacOsSandboxManager.test.d.ts +1 -0
  240. package/dist/src/sandbox/macos/MacOsSandboxManager.test.js +87 -0
  241. package/dist/src/sandbox/macos/MacOsSandboxManager.test.js.map +1 -0
  242. package/dist/src/sandbox/macos/baseProfile.d.ts +20 -0
  243. package/dist/src/sandbox/macos/baseProfile.js +93 -0
  244. package/dist/src/sandbox/macos/baseProfile.js.map +1 -0
  245. package/dist/src/sandbox/macos/seatbeltArgsBuilder.d.ts +25 -0
  246. package/dist/src/sandbox/macos/seatbeltArgsBuilder.js +58 -0
  247. package/dist/src/sandbox/macos/seatbeltArgsBuilder.js.map +1 -0
  248. package/dist/src/sandbox/macos/seatbeltArgsBuilder.test.d.ts +1 -0
  249. package/dist/src/sandbox/macos/seatbeltArgsBuilder.test.js +80 -0
  250. package/dist/src/sandbox/macos/seatbeltArgsBuilder.test.js.map +1 -0
  251. package/dist/src/scheduler/scheduler.js +2 -0
  252. package/dist/src/scheduler/scheduler.js.map +1 -1
  253. package/dist/src/services/contextManager.js +2 -3
  254. package/dist/src/services/contextManager.js.map +1 -1
  255. package/dist/src/services/contextManager.test.js +1 -1
  256. package/dist/src/services/contextManager.test.js.map +1 -1
  257. package/dist/src/services/modelConfigService.d.ts +36 -1
  258. package/dist/src/services/modelConfigService.js +66 -0
  259. package/dist/src/services/modelConfigService.js.map +1 -1
  260. package/dist/src/services/sandboxManager.d.ts +3 -4
  261. package/dist/src/services/sandboxManager.js +1 -14
  262. package/dist/src/services/sandboxManager.js.map +1 -1
  263. package/dist/src/services/sandboxManager.test.js +13 -16
  264. package/dist/src/services/sandboxManager.test.js.map +1 -1
  265. package/dist/src/services/sandboxManagerFactory.d.ts +11 -0
  266. package/dist/src/services/sandboxManagerFactory.js +31 -0
  267. package/dist/src/services/sandboxManagerFactory.js.map +1 -0
  268. package/dist/src/services/sandboxedFileSystemService.d.ts +17 -0
  269. package/dist/src/services/sandboxedFileSystemService.js +95 -0
  270. package/dist/src/services/sandboxedFileSystemService.js.map +1 -0
  271. package/dist/src/services/sandboxedFileSystemService.test.d.ts +6 -0
  272. package/dist/src/services/sandboxedFileSystemService.test.js +87 -0
  273. package/dist/src/services/sandboxedFileSystemService.test.js.map +1 -0
  274. package/dist/src/services/scripts/GeminiSandbox.cs +370 -0
  275. package/dist/src/services/shellExecutionService.d.ts +2 -0
  276. package/dist/src/services/shellExecutionService.js +79 -75
  277. package/dist/src/services/shellExecutionService.js.map +1 -1
  278. package/dist/src/services/trackerTypes.d.ts +1 -0
  279. package/dist/src/services/trackerTypes.js +1 -0
  280. package/dist/src/services/trackerTypes.js.map +1 -1
  281. package/dist/src/services/windowsSandboxManager.d.ts +27 -0
  282. package/dist/src/services/windowsSandboxManager.js +148 -0
  283. package/dist/src/services/windowsSandboxManager.js.map +1 -0
  284. package/dist/src/services/windowsSandboxManager.test.d.ts +6 -0
  285. package/dist/src/services/windowsSandboxManager.test.js +59 -0
  286. package/dist/src/services/windowsSandboxManager.test.js.map +1 -0
  287. package/dist/src/services/worktreeService.d.ts +33 -0
  288. package/dist/src/services/worktreeService.js +174 -0
  289. package/dist/src/services/worktreeService.js.map +1 -0
  290. package/dist/src/services/worktreeService.test.d.ts +6 -0
  291. package/dist/src/services/worktreeService.test.js +200 -0
  292. package/dist/src/services/worktreeService.test.js.map +1 -0
  293. package/dist/src/telemetry/clearcut-logger/clearcut-logger.js +4 -0
  294. package/dist/src/telemetry/clearcut-logger/clearcut-logger.js.map +1 -1
  295. package/dist/src/telemetry/clearcut-logger/event-metadata-key.d.ts +1 -0
  296. package/dist/src/telemetry/clearcut-logger/event-metadata-key.js +2 -0
  297. package/dist/src/telemetry/clearcut-logger/event-metadata-key.js.map +1 -1
  298. package/dist/src/telemetry/loggers.test.js +62 -40
  299. package/dist/src/telemetry/loggers.test.js.map +1 -1
  300. package/dist/src/telemetry/types.d.ts +1 -0
  301. package/dist/src/telemetry/types.js +3 -0
  302. package/dist/src/telemetry/types.js.map +1 -1
  303. package/dist/src/tools/definitions/model-family-sets/default-legacy.js +8 -1
  304. package/dist/src/tools/definitions/model-family-sets/default-legacy.js.map +1 -1
  305. package/dist/src/tools/definitions/model-family-sets/gemini-3.js +8 -1
  306. package/dist/src/tools/definitions/model-family-sets/gemini-3.js.map +1 -1
  307. package/dist/src/tools/exit-plan-mode.d.ts +6 -1
  308. package/dist/src/tools/exit-plan-mode.js +17 -6
  309. package/dist/src/tools/exit-plan-mode.js.map +1 -1
  310. package/dist/src/tools/exit-plan-mode.test.js +22 -1
  311. package/dist/src/tools/exit-plan-mode.test.js.map +1 -1
  312. package/dist/src/tools/mcp-client-manager.d.ts +22 -3
  313. package/dist/src/tools/mcp-client-manager.js +84 -32
  314. package/dist/src/tools/mcp-client-manager.js.map +1 -1
  315. package/dist/src/tools/mcp-client-manager.test.js +76 -56
  316. package/dist/src/tools/mcp-client-manager.test.js.map +1 -1
  317. package/dist/src/tools/mcp-client.d.ts +15 -6
  318. package/dist/src/tools/mcp-client.js +85 -71
  319. package/dist/src/tools/mcp-client.js.map +1 -1
  320. package/dist/src/tools/mcp-client.test.js +195 -88
  321. package/dist/src/tools/mcp-client.test.js.map +1 -1
  322. package/dist/src/tools/tool-registry.d.ts +2 -1
  323. package/dist/src/tools/tool-registry.js +12 -1
  324. package/dist/src/tools/tool-registry.js.map +1 -1
  325. package/dist/src/tools/tool-registry.test.js +15 -0
  326. package/dist/src/tools/tool-registry.test.js.map +1 -1
  327. package/dist/src/tools/tools.d.ts +1 -1
  328. package/dist/src/tools/tools.js.map +1 -1
  329. package/dist/src/tools/trackerTools.js +6 -1
  330. package/dist/src/tools/trackerTools.js.map +1 -1
  331. package/dist/src/tools/trackerTools.test.js +9 -1
  332. package/dist/src/tools/trackerTools.test.js.map +1 -1
  333. package/dist/src/tools/write-todos.js +1 -0
  334. package/dist/src/tools/write-todos.js.map +1 -1
  335. package/dist/src/tools/write-todos.test.js +4 -1
  336. package/dist/src/tools/write-todos.test.js.map +1 -1
  337. package/dist/src/utils/agent-sanitization-utils.d.ts +23 -0
  338. package/dist/src/utils/agent-sanitization-utils.js +123 -0
  339. package/dist/src/utils/agent-sanitization-utils.js.map +1 -0
  340. package/dist/src/utils/agent-sanitization-utils.test.d.ts +6 -0
  341. package/dist/src/utils/agent-sanitization-utils.test.js +83 -0
  342. package/dist/src/utils/agent-sanitization-utils.test.js.map +1 -0
  343. package/dist/src/utils/browserConsent.d.ts +17 -0
  344. package/dist/src/utils/browserConsent.js +78 -0
  345. package/dist/src/utils/browserConsent.js.map +1 -0
  346. package/dist/src/utils/browserConsent.test.d.ts +6 -0
  347. package/dist/src/utils/browserConsent.test.js +93 -0
  348. package/dist/src/utils/browserConsent.test.js.map +1 -0
  349. package/dist/src/utils/compatibility.d.ts +16 -0
  350. package/dist/src/utils/compatibility.js +58 -9
  351. package/dist/src/utils/compatibility.js.map +1 -1
  352. package/dist/src/utils/compatibility.test.js +127 -29
  353. package/dist/src/utils/compatibility.test.js.map +1 -1
  354. package/dist/src/utils/memoryDiscovery.d.ts +2 -2
  355. package/dist/src/utils/memoryDiscovery.js +5 -10
  356. package/dist/src/utils/memoryDiscovery.js.map +1 -1
  357. package/dist/src/utils/memoryDiscovery.test.js +37 -37
  358. package/dist/src/utils/memoryDiscovery.test.js.map +1 -1
  359. package/dist/src/utils/memoryImportProcessor.js +5 -5
  360. package/dist/src/utils/memoryImportProcessor.js.map +1 -1
  361. package/dist/src/utils/surface.js +4 -3
  362. package/dist/src/utils/surface.js.map +1 -1
  363. package/dist/src/utils/toolCallContext.d.ts +2 -0
  364. package/dist/src/utils/toolCallContext.js.map +1 -1
  365. package/dist/tsconfig.tsbuildinfo +1 -1
  366. package/package.json +2 -1
@@ -90,6 +90,17 @@ If `argsPattern` is specified, the tool's arguments are converted to a stable
90
90
  JSON string, which is then tested against the provided regular expression. If
91
91
  the arguments don't match the pattern, the rule does not apply.
92
92
 
93
+ #### Execution environment
94
+
95
+ If `interactive` is specified, the rule will only apply if the CLI's execution
96
+ environment matches the specified boolean value:
97
+
98
+ - `true`: The rule applies only in interactive mode.
99
+ - `false`: The rule applies only in non-interactive (headless) mode.
100
+
101
+ If omitted, the rule applies to both interactive and non-interactive
102
+ environments.
103
+
93
104
  ### Decisions
94
105
 
95
106
  There are three possible decisions a rule can enforce:
@@ -102,7 +113,9 @@ There are three possible decisions a rule can enforce:
102
113
  - `ask_user`: The user is prompted to approve or deny the tool call. (In
103
114
  non-interactive mode, this is treated as `deny`.)
104
115
 
105
- > **Note:** The `deny` decision is the recommended way to exclude tools. The
116
+ <!-- prettier-ignore -->
117
+ > [!NOTE]
118
+ > The `deny` decision is the recommended way to exclude tools. The
106
119
  > legacy `tools.exclude` setting in `settings.json` is deprecated in favor of
107
120
  > policy rules with a `deny` decision.
108
121
 
@@ -228,15 +241,17 @@ directory are **ignored**.
228
241
  - **Linux / macOS:** Must be owned by `root` (UID 0) and NOT writable by group
229
242
  or others (e.g., `chmod 755`).
230
243
  - **Windows:** Must be in `C:\ProgramData`. Standard users (`Users`, `Everyone`)
231
- must NOT have `Write`, `Modify`, or `Full Control` permissions. _Tip: If you
232
- see a security warning, use the folder properties to remove write permissions
233
- for non-admin groups. You may need to "Disable inheritance" in Advanced
234
- Security Settings._
235
-
236
- **Note:** Supplemental admin policies (provided via `--admin-policy` or
237
- `adminPolicyPaths` settings) are **NOT** subject to these strict ownership
238
- checks, as they are explicitly provided by the user or administrator in their
239
- current execution context.
244
+ must NOT have `Write`, `Modify`, or `Full Control` permissions. If you see a
245
+ security warning, use the folder properties to remove write permissions for
246
+ non-admin groups. You may need to "Disable inheritance" in Advanced Security
247
+ Settings.
248
+
249
+ <!-- prettier-ignore -->
250
+ > [!NOTE]
251
+ > Supplemental admin policies (provided via `--admin-policy` or
252
+ > `adminPolicyPaths` settings) are **NOT** subject to these strict ownership
253
+ > checks, as they are explicitly provided by the user or administrator in their
254
+ > current execution context.
240
255
 
241
256
  ### TOML rule schema
242
257
 
@@ -247,8 +262,8 @@ Here is a breakdown of the fields available in a TOML policy rule:
247
262
  # A unique name for the tool, or an array of names.
248
263
  toolName = "run_shell_command"
249
264
 
250
- # (Optional) The name of a subagent. If provided, the rule only applies to tool calls
251
- # made by this specific subagent.
265
+ # (Optional) The name of a subagent. If provided, the rule only applies to tool
266
+ # calls made by this specific subagent.
252
267
  subagent = "generalist"
253
268
 
254
269
  # (Optional) The name of an MCP server. Can be combined with toolName
@@ -263,14 +278,17 @@ toolAnnotations = { readOnlyHint = true }
263
278
  argsPattern = '"command":"(git|npm)'
264
279
 
265
280
  # (Optional) A string or array of strings that a shell command must start with.
266
- # This is syntactic sugar for `toolName = "run_shell_command"` and an `argsPattern`.
281
+ # This is syntactic sugar for `toolName = "run_shell_command"` and an
282
+ # `argsPattern`.
267
283
  commandPrefix = "git"
268
284
 
269
285
  # (Optional) A regex to match against the entire shell command.
270
286
  # This is also syntactic sugar for `toolName = "run_shell_command"`.
271
- # Note: This pattern is tested against the JSON representation of the arguments (e.g., `{"command":"<your_command>"}`).
272
- # Because it prepends `"command":"`, it effectively matches from the start of the command.
273
- # Anchors like `^` or `$` apply to the full JSON string, so `^` should usually be avoided here.
287
+ # Note: This pattern is tested against the JSON representation of the arguments
288
+ # (e.g., `{"command":"<your_command>"}`). Because it prepends `"command":"`,
289
+ # it effectively matches from the start of the command.
290
+ # Anchors like `^` or `$` apply to the full JSON string,
291
+ # so `^` should usually be avoided here.
274
292
  # You cannot use commandPrefix and commandRegex in the same rule.
275
293
  commandRegex = "git (commit|push)"
276
294
 
@@ -280,12 +298,18 @@ decision = "ask_user"
280
298
  # The priority of the rule, from 0 to 999.
281
299
  priority = 10
282
300
 
283
- # (Optional) A custom message to display when a tool call is denied by this rule.
284
- # This message is returned to the model and user, useful for explaining *why* it was denied.
301
+ # (Optional) A custom message to display when a tool call is denied by this
302
+ # rule. This message is returned to the model and user,
303
+ # useful for explaining *why* it was denied.
285
304
  deny_message = "Deletion is permanent"
286
305
 
287
306
  # (Optional) An array of approval modes where this rule is active.
288
307
  modes = ["autoEdit"]
308
+
309
+ # (Optional) A boolean to restrict the rule to interactive (true) or
310
+ # non-interactive (false) environments.
311
+ # If omitted, the rule applies to both.
312
+ interactive = true
289
313
  ```
290
314
 
291
315
  ### Using arrays (lists)
@@ -333,7 +357,9 @@ using the `mcpName` field. **This is the recommended approach** for defining MCP
333
357
  policies, as it is much more robust than manually writing Fully Qualified Names
334
358
  (FQNs) or string wildcards.
335
359
 
336
- > **Warning:** Do not use underscores (`_`) in your MCP server names (e.g., use
360
+ <!-- prettier-ignore -->
361
+ > [!WARNING]
362
+ > Do not use underscores (`_`) in your MCP server names (e.g., use
337
363
  > `my-server` rather than `my_server`). The policy parser splits Fully Qualified
338
364
  > Names (`mcp_server_tool`) on the _first_ underscore following the `mcp_`
339
365
  > prefix. If your server name contains an underscore, the parser will
@@ -360,6 +386,8 @@ priority = 200
360
386
  Specify only the `mcpName` to apply a rule to every tool provided by that
361
387
  server.
362
388
 
389
+ **Note:** This applies to all decision types (`allow`, `deny`, `ask_user`).
390
+
363
391
  ```toml
364
392
  # Denies all tools from the `untrusted-server` MCP
365
393
  [[rule]]
@@ -95,7 +95,9 @@ For developers, the tool system is designed to be extensible and robust. The
95
95
  You can extend Gemini CLI with custom tools by configuring
96
96
  `tools.discoveryCommand` in your settings or by connecting to MCP servers.
97
97
 
98
- > **Note:** For a deep dive into the internal Tool API and how to implement your
98
+ <!-- prettier-ignore -->
99
+ > [!NOTE]
100
+ > For a deep dive into the internal Tool API and how to implement your
99
101
  > own tools in the codebase, see the `packages/core/src/tools/` directory in
100
102
  > GitHub.
101
103
 
@@ -21,9 +21,13 @@ All workflows in `.github/workflows/ci.yml` must pass on the `main` branch (for
21
21
  nightly) or the release branch (for preview/stable).
22
22
 
23
23
  - **Platforms:** Tests must pass on **Linux and macOS**.
24
- - _Note:_ Windows tests currently run with `continue-on-error: true`. While a
25
- failure here doesn't block the release technically, it should be
26
- investigated.
24
+
25
+ <!-- prettier-ignore -->
26
+ > [!NOTE]
27
+ > Windows tests currently run with `continue-on-error: true`. While a
28
+ > failure here doesn't block the release technically, it should be
29
+ > investigated.
30
+
27
31
  - **Checks:**
28
32
  - **Linting:** No linting errors (ESLint, Prettier, etc.).
29
33
  - **Typechecking:** No TypeScript errors.
@@ -234,10 +234,12 @@ This workflow will automatically:
234
234
  Review the automatically created pull request(s) to ensure the cherry-pick was
235
235
  successful and the changes are correct. Once approved, merge the pull request.
236
236
 
237
- **Security note:** The `release/*` branches are protected by branch protection
238
- rules. A pull request to one of these branches requires at least one review from
239
- a code owner before it can be merged. This ensures that no unauthorized code is
240
- released.
237
+ <!-- prettier-ignore -->
238
+ > [!WARNING]
239
+ > The `release/*` branches are protected by branch protection
240
+ > rules. A pull request to one of these branches requires at least one review from
241
+ > a code owner before it can be merged. This ensures that no unauthorized code is
242
+ > released.
241
243
 
242
244
  #### 2.5. Adding multiple commits to a hotfix (advanced)
243
245
 
@@ -524,9 +526,11 @@ Notifications use
524
526
  [GitHub for Google Chat](https://workspace.google.com/marketplace/app/github_for_google_chat/536184076190).
525
527
  To modify the notifications, use `/github-settings` within the chat space.
526
528
 
527
- > [!WARNING] The following instructions describe a fragile workaround that
528
- > depends on the internal structure of the chat application's UI. It is likely
529
- > to break with future updates.
529
+ <!-- prettier-ignore -->
530
+ > [!WARNING]
531
+ > The following instructions describe a fragile workaround that depends on the
532
+ > internal structure of the chat application's UI. It is likely to break with
533
+ > future updates.
530
534
 
531
535
  The list of available labels is not currently populated correctly. If you want
532
536
  to add a label that does not appear alphabetically in the first 30 labels in the
@@ -58,6 +58,19 @@ your total token usage using the `/stats` command in Gemini CLI.
58
58
 
59
59
  ## Installation and updates
60
60
 
61
+ ### How do I check which version of Gemini CLI I'm currently running?
62
+
63
+ You can check your current Gemini CLI version using one of these methods:
64
+
65
+ - Run `gemini --version` or `gemini -v` from your terminal
66
+ - Check the globally installed version using your package manager:
67
+ - npm: `npm list -g @google/gemini-cli`
68
+ - pnpm: `pnpm list -g @google/gemini-cli`
69
+ - yarn: `yarn global list @google/gemini-cli`
70
+ - bun: `bun pm ls -g @google/gemini-cli`
71
+ - homebrew: `brew list --versions gemini-cli`
72
+ - Inside an active Gemini CLI session, use the `/about` command
73
+
61
74
  ### How do I update Gemini CLI to the latest version?
62
75
 
63
76
  If you installed it globally via `npm`, update it using the command
@@ -16,8 +16,10 @@ account.
16
16
  Your Gemini CLI Usage Statistics are handled in accordance with Google's Privacy
17
17
  Policy.
18
18
 
19
- **Note:** See [quotas and pricing](quota-and-pricing.md) for the quota and
20
- pricing details that apply to your usage of the Gemini CLI.
19
+ <!-- prettier-ignore -->
20
+ > [!NOTE]
21
+ > See [quotas and pricing](quota-and-pricing.md) for the quota and
22
+ > pricing details that apply to your usage of the Gemini CLI.
21
23
 
22
24
  ## Supported authentication methods
23
25
 
@@ -187,5 +187,7 @@ guide_, consider searching the Gemini CLI
187
187
  If you can't find an issue similar to yours, consider creating a new GitHub
188
188
  Issue with a detailed description. Pull requests are also welcome!
189
189
 
190
- > **Note:** Issues tagged as "🔒Maintainers only" are reserved for project
190
+ <!-- prettier-ignore -->
191
+ > [!NOTE]
192
+ > Issues tagged as "🔒Maintainers only" are reserved for project
191
193
  > maintainers. We will not accept pull requests related to these issues.
@@ -99,6 +99,11 @@
99
99
  { "label": "Agent Skills", "slug": "docs/cli/skills" },
100
100
  { "label": "Checkpointing", "slug": "docs/cli/checkpointing" },
101
101
  { "label": "Headless mode", "slug": "docs/cli/headless" },
102
+ {
103
+ "label": "Git worktrees",
104
+ "badge": "🔬",
105
+ "slug": "docs/cli/git-worktrees"
106
+ },
102
107
  {
103
108
  "label": "Hooks",
104
109
  "collapsed": true,
@@ -176,8 +176,8 @@ Each server configuration supports the following properties:
176
176
  enabled by default.
177
177
  - **`excludeTools`** (string[]): List of tool names to exclude from this MCP
178
178
  server. Tools listed here will not be available to the model, even if they are
179
- exposed by the server. **Note:** `excludeTools` takes precedence over
180
- `includeTools` - if a tool is in both lists, it will be excluded.
179
+ exposed by the server. `excludeTools` takes precedence over `includeTools`. If
180
+ a tool is in both lists, it will be excluded.
181
181
  - **`targetAudience`** (string): The OAuth Client ID allowlisted on the
182
182
  IAP-protected application you are trying to access. Used with
183
183
  `authProviderType: 'service_account_impersonation'`.
@@ -238,7 +238,9 @@ This follows the security principle that if a variable is explicitly configured
238
238
  by the user for a specific server, it constitutes informed consent to share that
239
239
  specific data with that server.
240
240
 
241
- > **Note:** Even when explicitly defined, you should avoid hardcoding secrets.
241
+ <!-- prettier-ignore -->
242
+ > [!NOTE]
243
+ > Even when explicitly defined, you should avoid hardcoding secrets.
242
244
  > Instead, use environment variable expansion (e.g., `"MY_KEY": "$MY_KEY"`) to
243
245
  > securely pull the value from your host environment at runtime.
244
246
 
@@ -283,10 +285,12 @@ When connecting to an OAuth-enabled server:
283
285
 
284
286
  #### Browser redirect requirements
285
287
 
286
- **Important:** OAuth authentication requires that your local machine can:
287
-
288
- - Open a web browser for authentication
289
- - Receive redirects on `http://localhost:7777/oauth/callback`
288
+ <!-- prettier-ignore -->
289
+ > [!IMPORTANT]
290
+ > OAuth authentication requires that your local machine can:
291
+ >
292
+ > - Open a web browser for authentication
293
+ > - Receive redirects on `http://localhost:7777/oauth/callback`
290
294
 
291
295
  This feature will not work in:
292
296
 
@@ -577,7 +581,9 @@ every discovered MCP tool is assigned a strict namespace.
577
581
  [Special syntax for MCP tools](../reference/policy-engine.md#special-syntax-for-mcp-tools)
578
582
  in the Policy Engine documentation.
579
583
 
580
- > **Warning:** Do not use underscores (`_`) in your MCP server names (e.g., use
584
+ <!-- prettier-ignore -->
585
+ > [!WARNING]
586
+ > Do not use underscores (`_`) in your MCP server names (e.g., use
581
587
  > `my-server` rather than `my_server`). The policy parser splits Fully Qualified
582
588
  > Names (`mcp_server_tool`) on the _first_ underscore following the `mcp_`
583
589
  > prefix. If your server name contains an underscore, the parser will
@@ -1116,7 +1122,9 @@ command has no flags.
1116
1122
  gemini mcp list
1117
1123
  ```
1118
1124
 
1119
- > **Note on Trust:** For security, `stdio` MCP servers (those using the
1125
+ <!-- prettier-ignore -->
1126
+ > [!NOTE]
1127
+ > For security, `stdio` MCP servers (those using the
1120
1128
  > `command` property) are only tested and displayed as "Connected" if the
1121
1129
  > current folder is trusted. If the folder is untrusted, they will show as
1122
1130
  > "Disconnected". Use `gemini trust` to trust the current folder.
@@ -11,7 +11,9 @@ by the agent when you ask it to "start a plan" using natural language. In this
11
11
  mode, the agent is restricted to read-only tools to allow for safe exploration
12
12
  and planning.
13
13
 
14
- > **Note:** This tool is not available when the CLI is in YOLO mode.
14
+ <!-- prettier-ignore -->
15
+ > [!NOTE]
16
+ > This tool is not available when the CLI is in YOLO mode.
15
17
 
16
18
  - **Tool name:** `enter_plan_mode`
17
19
  - **Display name:** Enter Plan Mode
@@ -57,8 +57,8 @@ implementation, which does not support interactive commands.
57
57
  ### Showing color in output
58
58
 
59
59
  To show color in the shell output, you need to set the `tools.shell.showColor`
60
- setting to `true`. **Note: This setting only applies when
61
- `tools.shell.enableInteractiveShell` is enabled.**
60
+ setting to `true`. This setting only applies when
61
+ `tools.shell.enableInteractiveShell` is enabled.
62
62
 
63
63
  **Example `settings.json`:**
64
64
 
@@ -75,8 +75,8 @@ setting to `true`. **Note: This setting only applies when
75
75
  ### Setting the pager
76
76
 
77
77
  You can set a custom pager for the shell output by setting the
78
- `tools.shell.pager` setting. The default pager is `cat`. **Note: This setting
79
- only applies when `tools.shell.enableInteractiveShell` is enabled.**
78
+ `tools.shell.pager` setting. The default pager is `cat`. This setting only
79
+ applies when `tools.shell.enableInteractiveShell` is enabled.
80
80
 
81
81
  **Example `settings.json`:**
82
82
 
@@ -13,7 +13,8 @@ updates to the CLI interface.
13
13
  - `todos` (array of objects, required): The complete list of tasks. Each object
14
14
  includes:
15
15
  - `description` (string): Technical description of the task.
16
- - `status` (enum): `pending`, `in_progress`, `completed`, or `cancelled`.
16
+ - `status` (enum): `pending`, `in_progress`, `completed`, `cancelled`, or
17
+ `blocked`.
17
18
 
18
19
  ## Technical behavior
19
20
 
@@ -0,0 +1,37 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import type { AgentProtocol, AgentSend, AgentEvent, Unsubscribe } from './types.js';
7
+ /**
8
+ * AgentSession is a wrapper around AgentProtocol that provides a more
9
+ * convenient API for consuming agent activity as an AsyncIterable.
10
+ */
11
+ export declare class AgentSession implements AgentProtocol {
12
+ private _protocol;
13
+ constructor(protocol: AgentProtocol);
14
+ send(payload: AgentSend): Promise<{
15
+ streamId: string | null;
16
+ }>;
17
+ subscribe(callback: (event: AgentEvent) => void): Unsubscribe;
18
+ abort(): Promise<void>;
19
+ get events(): AgentEvent[];
20
+ /**
21
+ * Sends a payload to the agent and returns an AsyncIterable that yields
22
+ * events for the resulting stream.
23
+ *
24
+ * @param payload The payload to send to the agent.
25
+ */
26
+ sendStream(payload: AgentSend): AsyncIterable<AgentEvent>;
27
+ /**
28
+ * Returns an AsyncIterable that yields events from the agent session,
29
+ * optionally replaying events from history or reattaching to an existing stream.
30
+ *
31
+ * @param options Options for replaying or reattaching to the event stream.
32
+ */
33
+ stream(options?: {
34
+ eventId?: string;
35
+ streamId?: string;
36
+ }): AsyncIterable<AgentEvent>;
37
+ }
@@ -0,0 +1,168 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ /**
7
+ * AgentSession is a wrapper around AgentProtocol that provides a more
8
+ * convenient API for consuming agent activity as an AsyncIterable.
9
+ */
10
+ export class AgentSession {
11
+ _protocol;
12
+ constructor(protocol) {
13
+ this._protocol = protocol;
14
+ }
15
+ async send(payload) {
16
+ return this._protocol.send(payload);
17
+ }
18
+ subscribe(callback) {
19
+ return this._protocol.subscribe(callback);
20
+ }
21
+ async abort() {
22
+ return this._protocol.abort();
23
+ }
24
+ get events() {
25
+ return this._protocol.events;
26
+ }
27
+ /**
28
+ * Sends a payload to the agent and returns an AsyncIterable that yields
29
+ * events for the resulting stream.
30
+ *
31
+ * @param payload The payload to send to the agent.
32
+ */
33
+ async *sendStream(payload) {
34
+ const result = await this._protocol.send(payload);
35
+ const streamId = result.streamId;
36
+ if (streamId === null) {
37
+ return;
38
+ }
39
+ yield* this.stream({ streamId });
40
+ }
41
+ /**
42
+ * Returns an AsyncIterable that yields events from the agent session,
43
+ * optionally replaying events from history or reattaching to an existing stream.
44
+ *
45
+ * @param options Options for replaying or reattaching to the event stream.
46
+ */
47
+ async *stream(options = {}) {
48
+ let resolve;
49
+ let next = new Promise((res) => {
50
+ resolve = res;
51
+ });
52
+ let eventQueue = [];
53
+ const earlyEvents = [];
54
+ let done = false;
55
+ let trackedStreamId = options.streamId;
56
+ let started = false;
57
+ // 1. Subscribe early to avoid missing any events that occur during replay setup
58
+ const unsubscribe = this._protocol.subscribe((event) => {
59
+ if (done)
60
+ return;
61
+ if (!started) {
62
+ earlyEvents.push(event);
63
+ return;
64
+ }
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
+ }
79
+ const currentResolve = resolve;
80
+ next = new Promise((r) => {
81
+ resolve = r;
82
+ });
83
+ currentResolve?.();
84
+ });
85
+ try {
86
+ const currentEvents = this._protocol.events;
87
+ let replayStartIndex = -1;
88
+ if (options.eventId) {
89
+ const index = currentEvents.findIndex((e) => e.id === options.eventId);
90
+ if (index !== -1) {
91
+ replayStartIndex = index + 1;
92
+ }
93
+ }
94
+ else if (options.streamId) {
95
+ const index = currentEvents.findIndex((e) => e.type === 'agent_start' && e.streamId === options.streamId);
96
+ if (index !== -1) {
97
+ replayStartIndex = index;
98
+ }
99
+ }
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
118
+ const activeStarts = currentEvents.filter((e) => e.type === 'agent_start');
119
+ for (let i = activeStarts.length - 1; i >= 0; i--) {
120
+ const start = activeStarts[i];
121
+ if (!currentEvents.some((e) => e.type === 'agent_end' && e.streamId === start.streamId)) {
122
+ trackedStreamId = start.streamId ?? undefined;
123
+ break;
124
+ }
125
+ }
126
+ }
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;
131
+ }
132
+ started = true;
133
+ // Process events that arrived while we were replaying
134
+ for (const event of earlyEvents) {
135
+ if (done)
136
+ 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
+ }
149
+ }
150
+ while (true) {
151
+ if (eventQueue.length > 0) {
152
+ const eventsToYield = eventQueue;
153
+ eventQueue = [];
154
+ for (const event of eventsToYield) {
155
+ yield event;
156
+ }
157
+ }
158
+ if (done)
159
+ break;
160
+ await next;
161
+ }
162
+ }
163
+ finally {
164
+ unsubscribe();
165
+ }
166
+ }
167
+ }
168
+ //# sourceMappingURL=agent-session.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-session.js","sourceRoot":"","sources":["../../../src/agent/agent-session.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ export {};