@machina.ai/cell-cli-core 1.36.0-rc1 → 1.38.1-rc2

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 (733) hide show
  1. package/dist/docs/AFTER_MERGE_PROMPT.md +3 -10
  2. package/dist/docs/assets/theme-tokyonight-dark.png +0 -0
  3. package/dist/docs/changelogs/index.md +49 -0
  4. package/dist/docs/changelogs/latest.md +355 -458
  5. package/dist/docs/changelogs/preview.md +402 -363
  6. package/dist/docs/cli/acp-mode.md +126 -0
  7. package/dist/docs/cli/cli-reference.md +1 -1
  8. package/dist/docs/cli/notifications.md +5 -5
  9. package/dist/docs/cli/plan-mode.md +26 -10
  10. package/dist/docs/cli/sandbox.md +53 -1
  11. package/dist/docs/cli/settings.md +52 -48
  12. package/dist/docs/cli/themes.md +5 -0
  13. package/dist/docs/core/index.md +2 -2
  14. package/dist/docs/core/remote-agents.md +14 -18
  15. package/dist/docs/core/subagents.md +194 -47
  16. package/dist/docs/get-started/authentication.md +2 -2
  17. package/dist/docs/get-started/gemini-3.md +1 -1
  18. package/dist/docs/get-started/index.md +127 -1
  19. package/dist/docs/get-started/installation.md +7 -0
  20. package/dist/docs/hooks/index.md +6 -6
  21. package/dist/docs/ide-integration/index.md +99 -24
  22. package/dist/docs/index.md +0 -2
  23. package/dist/docs/redirects.json +1 -0
  24. package/dist/docs/reference/commands.md +1 -3
  25. package/dist/docs/reference/configuration.md +220 -99
  26. package/dist/docs/reference/keyboard-shortcuts.md +21 -8
  27. package/dist/docs/reference/policy-engine.md +36 -31
  28. package/dist/docs/reference/tools.md +56 -23
  29. package/dist/docs/release-confidence.md +0 -6
  30. package/dist/docs/releases.md +4 -0
  31. package/dist/docs/resources/quota-and-pricing.md +23 -9
  32. package/dist/docs/sidebar.json +11 -4
  33. package/dist/docs/tools/mcp-server.md +3 -3
  34. package/dist/docs/tools/planning.md +6 -4
  35. package/dist/docs/tools/web-fetch.md +3 -0
  36. package/dist/package.json +2 -1
  37. package/dist/src/agent/agent-session.test.js +14 -6
  38. package/dist/src/agent/agent-session.test.js.map +1 -1
  39. package/dist/src/agent/event-translator.js +2 -1
  40. package/dist/src/agent/event-translator.js.map +1 -1
  41. package/dist/src/agent/event-translator.test.js +1 -0
  42. package/dist/src/agent/event-translator.test.js.map +1 -1
  43. package/dist/src/agent/legacy-agent-session.d.ts +47 -4
  44. package/dist/src/agent/legacy-agent-session.js +38 -15
  45. package/dist/src/agent/legacy-agent-session.js.map +1 -1
  46. package/dist/src/agent/legacy-agent-session.test.js +60 -73
  47. package/dist/src/agent/legacy-agent-session.test.js.map +1 -1
  48. package/dist/src/agent/mock.js +7 -1
  49. package/dist/src/agent/mock.js.map +1 -1
  50. package/dist/src/agent/mock.test.js +1 -1
  51. package/dist/src/agent/mock.test.js.map +1 -1
  52. package/dist/src/agent/types.d.ts +34 -1
  53. package/dist/src/agents/a2a-client-manager.js +3 -3
  54. package/dist/src/agents/a2a-client-manager.js.map +1 -1
  55. package/dist/src/agents/agent-scheduler.js +6 -1
  56. package/dist/src/agents/agent-scheduler.js.map +1 -1
  57. package/dist/src/agents/agent-scheduler.test.js +38 -0
  58. package/dist/src/agents/agent-scheduler.test.js.map +1 -1
  59. package/dist/src/agents/agentLoader.d.ts +12 -12
  60. package/dist/src/agents/agentLoader.js +1 -0
  61. package/dist/src/agents/agentLoader.js.map +1 -1
  62. package/dist/src/agents/auth-provider/api-key-provider.test.js +18 -2
  63. package/dist/src/agents/auth-provider/api-key-provider.test.js.map +1 -1
  64. package/dist/src/agents/auth-provider/value-resolver.test.js +30 -0
  65. package/dist/src/agents/auth-provider/value-resolver.test.js.map +1 -1
  66. package/dist/src/agents/browser/analyzeScreenshot.js +36 -6
  67. package/dist/src/agents/browser/analyzeScreenshot.js.map +1 -1
  68. package/dist/src/agents/browser/analyzeScreenshot.test.js +35 -3
  69. package/dist/src/agents/browser/analyzeScreenshot.test.js.map +1 -1
  70. package/dist/src/agents/browser/automationOverlay.js +2 -10
  71. package/dist/src/agents/browser/automationOverlay.js.map +1 -1
  72. package/dist/src/agents/browser/browserAgentDefinition.js +10 -3
  73. package/dist/src/agents/browser/browserAgentDefinition.js.map +1 -1
  74. package/dist/src/agents/browser/browserAgentFactory.d.ts +11 -3
  75. package/dist/src/agents/browser/browserAgentFactory.js +171 -129
  76. package/dist/src/agents/browser/browserAgentFactory.js.map +1 -1
  77. package/dist/src/agents/browser/browserAgentFactory.test.js +99 -13
  78. package/dist/src/agents/browser/browserAgentFactory.test.js.map +1 -1
  79. package/dist/src/agents/browser/browserAgentInvocation.d.ts +1 -0
  80. package/dist/src/agents/browser/browserAgentInvocation.js +87 -27
  81. package/dist/src/agents/browser/browserAgentInvocation.js.map +1 -1
  82. package/dist/src/agents/browser/browserAgentInvocation.test.js +107 -7
  83. package/dist/src/agents/browser/browserAgentInvocation.test.js.map +1 -1
  84. package/dist/src/agents/browser/browserManager.d.ts +89 -8
  85. package/dist/src/agents/browser/browserManager.js +357 -74
  86. package/dist/src/agents/browser/browserManager.js.map +1 -1
  87. package/dist/src/agents/browser/browserManager.test.js +540 -19
  88. package/dist/src/agents/browser/browserManager.test.js.map +1 -1
  89. package/dist/src/agents/browser/inputBlocker.d.ts +4 -4
  90. package/dist/src/agents/browser/inputBlocker.js +8 -18
  91. package/dist/src/agents/browser/inputBlocker.js.map +1 -1
  92. package/dist/src/agents/browser/inputBlocker.test.js +31 -3
  93. package/dist/src/agents/browser/inputBlocker.test.js.map +1 -1
  94. package/dist/src/agents/browser/mcpToolWrapper.d.ts +1 -1
  95. package/dist/src/agents/browser/mcpToolWrapper.js +9 -6
  96. package/dist/src/agents/browser/mcpToolWrapper.js.map +1 -1
  97. package/dist/src/agents/browser/mcpToolWrapper.test.js +2 -2
  98. package/dist/src/agents/browser/mcpToolWrapper.test.js.map +1 -1
  99. package/dist/src/agents/browser/modelAvailability.d.ts +5 -0
  100. package/dist/src/agents/browser/modelAvailability.js +12 -0
  101. package/dist/src/agents/browser/modelAvailability.js.map +1 -1
  102. package/dist/src/agents/browser/snapshotSuperseder.d.ts +31 -0
  103. package/dist/src/agents/browser/snapshotSuperseder.js +101 -0
  104. package/dist/src/agents/browser/snapshotSuperseder.js.map +1 -0
  105. package/dist/src/agents/browser/snapshotSuperseder.test.js +158 -0
  106. package/dist/src/agents/browser/snapshotSuperseder.test.js.map +1 -0
  107. package/dist/src/agents/local-executor.d.ts +9 -0
  108. package/dist/src/agents/local-executor.js +144 -200
  109. package/dist/src/agents/local-executor.js.map +1 -1
  110. package/dist/src/agents/local-executor.test.js +500 -115
  111. package/dist/src/agents/local-executor.test.js.map +1 -1
  112. package/dist/src/agents/local-invocation.d.ts +1 -0
  113. package/dist/src/agents/local-invocation.js +19 -9
  114. package/dist/src/agents/local-invocation.js.map +1 -1
  115. package/dist/src/agents/local-invocation.test.js +24 -0
  116. package/dist/src/agents/local-invocation.test.js.map +1 -1
  117. package/dist/src/agents/memory-manager-agent.js +1 -0
  118. package/dist/src/agents/memory-manager-agent.js.map +1 -1
  119. package/dist/src/agents/memory-manager-agent.test.js +6 -0
  120. package/dist/src/agents/memory-manager-agent.test.js.map +1 -1
  121. package/dist/src/agents/registry.js +19 -11
  122. package/dist/src/agents/registry.js.map +1 -1
  123. package/dist/src/agents/registry.test.js +67 -0
  124. package/dist/src/agents/registry.test.js.map +1 -1
  125. package/dist/src/agents/skill-extraction-agent.d.ts +24 -0
  126. package/dist/src/agents/skill-extraction-agent.js +269 -0
  127. package/dist/src/agents/skill-extraction-agent.js.map +1 -0
  128. package/dist/src/agents/types.d.ts +20 -0
  129. package/dist/src/agents/types.js.map +1 -1
  130. package/dist/src/availability/policyCatalog.d.ts +2 -1
  131. package/dist/src/availability/policyCatalog.js +1 -1
  132. package/dist/src/availability/policyCatalog.js.map +1 -1
  133. package/dist/src/availability/policyHelpers.js +43 -32
  134. package/dist/src/availability/policyHelpers.js.map +1 -1
  135. package/dist/src/availability/policyHelpers.test.js +12 -1
  136. package/dist/src/availability/policyHelpers.test.js.map +1 -1
  137. package/dist/src/code_assist/admin/admin_controls.js +1 -1
  138. package/dist/src/code_assist/admin/admin_controls.js.map +1 -1
  139. package/dist/src/code_assist/experiments/flagNames.d.ts +1 -0
  140. package/dist/src/code_assist/experiments/flagNames.js +1 -0
  141. package/dist/src/code_assist/experiments/flagNames.js.map +1 -1
  142. package/dist/src/code_assist/oauth2.js +8 -3
  143. package/dist/src/code_assist/oauth2.js.map +1 -1
  144. package/dist/src/code_assist/oauth2.test.js +57 -0
  145. package/dist/src/code_assist/oauth2.test.js.map +1 -1
  146. package/dist/src/code_assist/server.js +1 -1
  147. package/dist/src/code_assist/server.js.map +1 -1
  148. package/dist/src/code_assist/setup.js +5 -2
  149. package/dist/src/code_assist/setup.js.map +1 -1
  150. package/dist/src/code_assist/setup.test.js +27 -1
  151. package/dist/src/code_assist/setup.test.js.map +1 -1
  152. package/dist/src/code_assist/types.d.ts +80 -80
  153. package/dist/src/commands/memory.js +1 -1
  154. package/dist/src/commands/memory.js.map +1 -1
  155. package/dist/src/config/agent-loop-context.d.ts +2 -0
  156. package/dist/src/config/config.d.ts +91 -23
  157. package/dist/src/config/config.js +238 -79
  158. package/dist/src/config/config.js.map +1 -1
  159. package/dist/src/config/config.test.js +189 -15
  160. package/dist/src/config/config.test.js.map +1 -1
  161. package/dist/src/config/defaultModelConfigs.js +9 -0
  162. package/dist/src/config/defaultModelConfigs.js.map +1 -1
  163. package/dist/src/config/extensions/integrity.js +1 -1
  164. package/dist/src/config/extensions/integrity.js.map +1 -1
  165. package/dist/src/config/memory.d.ts +1 -0
  166. package/dist/src/config/memory.js +6 -0
  167. package/dist/src/config/memory.js.map +1 -1
  168. package/dist/src/config/projectRegistry.js +5 -3
  169. package/dist/src/config/projectRegistry.js.map +1 -1
  170. package/dist/src/config/scoped-config.d.ts +30 -0
  171. package/dist/src/config/scoped-config.js +69 -0
  172. package/dist/src/config/scoped-config.js.map +1 -0
  173. package/dist/src/config/scoped-config.test.d.ts +6 -0
  174. package/dist/src/config/scoped-config.test.js +161 -0
  175. package/dist/src/config/scoped-config.test.js.map +1 -0
  176. package/dist/src/config/storage.d.ts +3 -0
  177. package/dist/src/config/storage.js +9 -0
  178. package/dist/src/config/storage.js.map +1 -1
  179. package/dist/src/config/storage.test.js +10 -5
  180. package/dist/src/config/storage.test.js.map +1 -1
  181. package/dist/src/config/topicState.d.ts +21 -0
  182. package/dist/src/config/topicState.js +41 -0
  183. package/dist/src/config/topicState.js.map +1 -0
  184. package/dist/src/confirmation-bus/types.d.ts +13 -4
  185. package/dist/src/confirmation-bus/types.js +2 -0
  186. package/dist/src/confirmation-bus/types.js.map +1 -1
  187. package/dist/src/context/agentHistoryProvider.d.ts +45 -0
  188. package/dist/src/context/agentHistoryProvider.js +294 -0
  189. package/dist/src/context/agentHistoryProvider.js.map +1 -0
  190. package/dist/src/context/agentHistoryProvider.test.d.ts +6 -0
  191. package/dist/src/context/agentHistoryProvider.test.js +357 -0
  192. package/dist/src/context/agentHistoryProvider.test.js.map +1 -0
  193. package/dist/src/context/chatCompressionService.js.map +1 -0
  194. package/dist/src/context/chatCompressionService.test.js.map +1 -0
  195. package/dist/src/context/contextCompressionService.d.ts +30 -0
  196. package/dist/src/context/contextCompressionService.js +405 -0
  197. package/dist/src/context/contextCompressionService.js.map +1 -0
  198. package/dist/src/context/contextCompressionService.test.js +253 -0
  199. package/dist/src/context/contextCompressionService.test.js.map +1 -0
  200. package/dist/src/{services/contextManager.d.ts → context/memoryContextManager.d.ts} +3 -1
  201. package/dist/src/{services/contextManager.js → context/memoryContextManager.js} +20 -11
  202. package/dist/src/context/memoryContextManager.js.map +1 -0
  203. package/dist/src/{services/contextManager.test.js → context/memoryContextManager.test.js} +42 -33
  204. package/dist/src/context/memoryContextManager.test.js.map +1 -0
  205. package/dist/src/context/profiles.d.ts +7 -0
  206. package/dist/src/context/profiles.js +21 -0
  207. package/dist/src/context/profiles.js.map +1 -0
  208. package/dist/src/context/toolDistillationService.d.ts +38 -0
  209. package/dist/src/context/toolDistillationService.js +170 -0
  210. package/dist/src/context/toolDistillationService.js.map +1 -0
  211. package/dist/src/context/toolDistillationService.test.d.ts +6 -0
  212. package/dist/src/context/toolDistillationService.test.js +86 -0
  213. package/dist/src/context/toolDistillationService.test.js.map +1 -0
  214. package/dist/src/{services → context}/toolOutputMaskingService.d.ts +2 -2
  215. package/dist/src/{services → context}/toolOutputMaskingService.js +7 -7
  216. package/dist/src/context/toolOutputMaskingService.js.map +1 -0
  217. package/dist/src/context/toolOutputMaskingService.test.d.ts +6 -0
  218. package/dist/src/{services → context}/toolOutputMaskingService.test.js +4 -5
  219. package/dist/src/context/toolOutputMaskingService.test.js.map +1 -0
  220. package/dist/src/context/truncation.d.ts +26 -0
  221. package/dist/src/context/truncation.js +102 -0
  222. package/dist/src/context/truncation.js.map +1 -0
  223. package/dist/src/context/types.d.ts +36 -0
  224. package/dist/src/context/types.js +7 -0
  225. package/dist/src/context/types.js.map +1 -0
  226. package/dist/src/core/AuthenticatedContentGenerator.js +9 -1
  227. package/dist/src/core/AuthenticatedContentGenerator.js.map +1 -1
  228. package/dist/src/core/baseLlmClient.js +1 -1
  229. package/dist/src/core/baseLlmClient.js.map +1 -1
  230. package/dist/src/core/baseLlmClient.test.js +1 -0
  231. package/dist/src/core/baseLlmClient.test.js.map +1 -1
  232. package/dist/src/core/client.d.ts +3 -1
  233. package/dist/src/core/client.js +24 -14
  234. package/dist/src/core/client.js.map +1 -1
  235. package/dist/src/core/client.test.js +36 -40
  236. package/dist/src/core/client.test.js.map +1 -1
  237. package/dist/src/core/contentGenerator.d.ts +0 -1
  238. package/dist/src/core/contentGenerator.js +2 -28
  239. package/dist/src/core/contentGenerator.js.map +1 -1
  240. package/dist/src/core/contentGenerator.test.js +1 -101
  241. package/dist/src/core/contentGenerator.test.js.map +1 -1
  242. package/dist/src/core/geminiChat.js +12 -5
  243. package/dist/src/core/geminiChat.js.map +1 -1
  244. package/dist/src/core/geminiChat.test.js +72 -18
  245. package/dist/src/core/geminiChat.test.js.map +1 -1
  246. package/dist/src/core/geminiChat_network_retry.test.js +1 -0
  247. package/dist/src/core/geminiChat_network_retry.test.js.map +1 -1
  248. package/dist/src/core/logger.js +4 -4
  249. package/dist/src/core/logger.js.map +1 -1
  250. package/dist/src/core/logger.test.js +1 -1
  251. package/dist/src/core/logger.test.js.map +1 -1
  252. package/dist/src/core/loggingContentGenerator.js +1 -1
  253. package/dist/src/core/loggingContentGenerator.js.map +1 -1
  254. package/dist/src/core/prompts-substitution.test.js +5 -0
  255. package/dist/src/core/prompts-substitution.test.js.map +1 -1
  256. package/dist/src/core/prompts.test.js +3 -0
  257. package/dist/src/core/prompts.test.js.map +1 -1
  258. package/dist/src/generated/git-commit.d.ts +2 -2
  259. package/dist/src/generated/git-commit.js +2 -2
  260. package/dist/src/hooks/hookEventHandler.js +8 -0
  261. package/dist/src/hooks/hookEventHandler.js.map +1 -1
  262. package/dist/src/hooks/hookRunner.js +9 -5
  263. package/dist/src/hooks/hookRunner.js.map +1 -1
  264. package/dist/src/hooks/hookRunner.test.js +20 -3
  265. package/dist/src/hooks/hookRunner.test.js.map +1 -1
  266. package/dist/src/hooks/hookSystem.d.ts +2 -0
  267. package/dist/src/hooks/hookSystem.js +1 -0
  268. package/dist/src/hooks/hookSystem.js.map +1 -1
  269. package/dist/src/hooks/hookTranslator.js +20 -13
  270. package/dist/src/hooks/hookTranslator.js.map +1 -1
  271. package/dist/src/hooks/hookTranslator.test.js +36 -0
  272. package/dist/src/hooks/hookTranslator.test.js.map +1 -1
  273. package/dist/src/hooks/types.d.ts +2 -0
  274. package/dist/src/ide/ide-client.js +3 -3
  275. package/dist/src/ide/ide-client.js.map +1 -1
  276. package/dist/src/ide/ide-connection-utils.js +1 -1
  277. package/dist/src/ide/ide-connection-utils.js.map +1 -1
  278. package/dist/src/ide/ide-installer.js +5 -4
  279. package/dist/src/ide/ide-installer.js.map +1 -1
  280. package/dist/src/ide/process-utils.js +3 -3
  281. package/dist/src/ide/process-utils.js.map +1 -1
  282. package/dist/src/index.d.ts +10 -3
  283. package/dist/src/index.js +13 -5
  284. package/dist/src/index.js.map +1 -1
  285. package/dist/src/mcp/mcpLauncher.js +1 -1
  286. package/dist/src/output/json-formatter.js +2 -1
  287. package/dist/src/output/json-formatter.js.map +1 -1
  288. package/dist/src/policy/config.d.ts +1 -1
  289. package/dist/src/policy/config.js +61 -24
  290. package/dist/src/policy/config.js.map +1 -1
  291. package/dist/src/policy/config.test.js +21 -20
  292. package/dist/src/policy/config.test.js.map +1 -1
  293. package/dist/src/policy/persistence.test.js +42 -0
  294. package/dist/src/policy/persistence.test.js.map +1 -1
  295. package/dist/src/policy/policies/discovered.toml +7 -0
  296. package/dist/src/policy/policies/memory-manager.toml +11 -1
  297. package/dist/src/policy/policies/non-interactive.toml +7 -0
  298. package/dist/src/policy/policies/plan.toml +36 -2
  299. package/dist/src/policy/policies/read-only.toml +12 -0
  300. package/dist/src/policy/policies/sandbox-default.toml +4 -4
  301. package/dist/src/policy/policies/write.toml +21 -0
  302. package/dist/src/policy/policies/yolo.toml +1 -1
  303. package/dist/src/policy/policy-engine.d.ts +2 -4
  304. package/dist/src/policy/policy-engine.js +47 -37
  305. package/dist/src/policy/policy-engine.js.map +1 -1
  306. package/dist/src/policy/policy-engine.test.js +236 -30
  307. package/dist/src/policy/policy-engine.test.js.map +1 -1
  308. package/dist/src/policy/sandboxPolicyManager.d.ts +26 -1
  309. package/dist/src/policy/sandboxPolicyManager.js +41 -12
  310. package/dist/src/policy/sandboxPolicyManager.js.map +1 -1
  311. package/dist/src/policy/sandboxPolicyManager.test.d.ts +6 -0
  312. package/dist/src/policy/sandboxPolicyManager.test.js +61 -0
  313. package/dist/src/policy/sandboxPolicyManager.test.js.map +1 -0
  314. package/dist/src/policy/topic-policy.test.d.ts +6 -0
  315. package/dist/src/policy/topic-policy.test.js +48 -0
  316. package/dist/src/policy/topic-policy.test.js.map +1 -0
  317. package/dist/src/policy/types.d.ts +9 -6
  318. package/dist/src/policy/types.js +11 -0
  319. package/dist/src/policy/types.js.map +1 -1
  320. package/dist/src/policy/workspace-policy.test.js +18 -15
  321. package/dist/src/policy/workspace-policy.test.js.map +1 -1
  322. package/dist/src/prompts/promptProvider.js +20 -4
  323. package/dist/src/prompts/promptProvider.js.map +1 -1
  324. package/dist/src/prompts/promptProvider.test.js +84 -1
  325. package/dist/src/prompts/promptProvider.test.js.map +1 -1
  326. package/dist/src/prompts/snippets-memory-manager.test.js +1 -1
  327. package/dist/src/prompts/snippets-memory-manager.test.js.map +1 -1
  328. package/dist/src/prompts/snippets.d.ts +3 -4
  329. package/dist/src/prompts/snippets.js +37 -52
  330. package/dist/src/prompts/snippets.js.map +1 -1
  331. package/dist/src/prompts/snippets.legacy.d.ts +6 -4
  332. package/dist/src/prompts/snippets.legacy.js +36 -7
  333. package/dist/src/prompts/snippets.legacy.js.map +1 -1
  334. package/dist/src/prompts/utils.test.js +7 -5
  335. package/dist/src/prompts/utils.test.js.map +1 -1
  336. package/dist/src/safety/built-in.js +1 -1
  337. package/dist/src/safety/built-in.js.map +1 -1
  338. package/dist/src/sandbox/linux/LinuxSandboxManager.d.ts +11 -1
  339. package/dist/src/sandbox/linux/LinuxSandboxManager.js +131 -41
  340. package/dist/src/sandbox/linux/LinuxSandboxManager.js.map +1 -1
  341. package/dist/src/sandbox/linux/LinuxSandboxManager.test.js +82 -139
  342. package/dist/src/sandbox/linux/LinuxSandboxManager.test.js.map +1 -1
  343. package/dist/src/sandbox/linux/bwrapArgsBuilder.d.ts +24 -0
  344. package/dist/src/sandbox/linux/bwrapArgsBuilder.js +200 -0
  345. package/dist/src/sandbox/linux/bwrapArgsBuilder.js.map +1 -0
  346. package/dist/src/sandbox/linux/bwrapArgsBuilder.test.d.ts +6 -0
  347. package/dist/src/sandbox/linux/bwrapArgsBuilder.test.js +247 -0
  348. package/dist/src/sandbox/linux/bwrapArgsBuilder.test.js.map +1 -0
  349. package/dist/src/sandbox/macos/MacOsSandboxManager.d.ts +10 -22
  350. package/dist/src/sandbox/macos/MacOsSandboxManager.js +67 -59
  351. package/dist/src/sandbox/macos/MacOsSandboxManager.js.map +1 -1
  352. package/dist/src/sandbox/macos/MacOsSandboxManager.test.js +168 -103
  353. package/dist/src/sandbox/macos/MacOsSandboxManager.test.js.map +1 -1
  354. package/dist/src/sandbox/macos/baseProfile.d.ts +1 -1
  355. package/dist/src/sandbox/macos/baseProfile.js +26 -8
  356. package/dist/src/sandbox/macos/baseProfile.js.map +1 -1
  357. package/dist/src/sandbox/macos/seatbeltArgsBuilder.d.ts +10 -10
  358. package/dist/src/sandbox/macos/seatbeltArgsBuilder.js +81 -93
  359. package/dist/src/sandbox/macos/seatbeltArgsBuilder.js.map +1 -1
  360. package/dist/src/sandbox/macos/seatbeltArgsBuilder.test.js +136 -99
  361. package/dist/src/sandbox/macos/seatbeltArgsBuilder.test.js.map +1 -1
  362. package/dist/src/sandbox/{macos → utils}/commandSafety.d.ts +11 -0
  363. package/dist/src/sandbox/{macos → utils}/commandSafety.js +47 -14
  364. package/dist/src/sandbox/utils/commandSafety.js.map +1 -0
  365. package/dist/src/sandbox/utils/commandUtils.d.ts +9 -0
  366. package/dist/src/sandbox/utils/commandUtils.js +57 -0
  367. package/dist/src/sandbox/utils/commandUtils.js.map +1 -0
  368. package/dist/src/sandbox/utils/fsUtils.d.ts +11 -0
  369. package/dist/src/sandbox/utils/fsUtils.js +84 -0
  370. package/dist/src/sandbox/utils/fsUtils.js.map +1 -0
  371. package/dist/src/sandbox/utils/fsUtils.test.d.ts +6 -0
  372. package/dist/src/sandbox/utils/fsUtils.test.js +43 -0
  373. package/dist/src/sandbox/utils/fsUtils.test.js.map +1 -0
  374. package/dist/src/sandbox/utils/proactivePermissions.d.ts +19 -0
  375. package/dist/src/sandbox/utils/proactivePermissions.js +163 -0
  376. package/dist/src/sandbox/utils/proactivePermissions.js.map +1 -0
  377. package/dist/src/sandbox/utils/proactivePermissions.test.d.ts +6 -0
  378. package/dist/src/sandbox/utils/proactivePermissions.test.js +145 -0
  379. package/dist/src/sandbox/utils/proactivePermissions.test.js.map +1 -0
  380. package/dist/src/sandbox/utils/sandboxDenialUtils.d.ts +27 -0
  381. package/dist/src/sandbox/utils/sandboxDenialUtils.js +142 -0
  382. package/dist/src/sandbox/utils/sandboxDenialUtils.js.map +1 -0
  383. package/dist/src/sandbox/utils/sandboxDenialUtils.test.d.ts +6 -0
  384. package/dist/src/sandbox/utils/sandboxDenialUtils.test.js +188 -0
  385. package/dist/src/sandbox/utils/sandboxDenialUtils.test.js.map +1 -0
  386. package/dist/src/sandbox/utils/sandboxReadWriteUtils.d.ts +5 -0
  387. package/dist/src/sandbox/utils/sandboxReadWriteUtils.js +64 -0
  388. package/dist/src/sandbox/utils/sandboxReadWriteUtils.js.map +1 -0
  389. package/dist/src/sandbox/windows/GeminiSandbox.cs +312 -223
  390. package/dist/src/sandbox/windows/WindowsSandboxManager.d.ts +16 -2
  391. package/dist/src/sandbox/windows/WindowsSandboxManager.js +261 -44
  392. package/dist/src/sandbox/windows/WindowsSandboxManager.js.map +1 -1
  393. package/dist/src/sandbox/windows/WindowsSandboxManager.test.js +379 -17
  394. package/dist/src/sandbox/windows/WindowsSandboxManager.test.js.map +1 -1
  395. package/dist/src/sandbox/windows/commandSafety.d.ts +19 -0
  396. package/dist/src/sandbox/windows/commandSafety.js +128 -0
  397. package/dist/src/sandbox/windows/commandSafety.js.map +1 -0
  398. package/dist/src/sandbox/windows/commandSafety.test.d.ts +6 -0
  399. package/dist/src/sandbox/windows/commandSafety.test.js +42 -0
  400. package/dist/src/sandbox/windows/commandSafety.test.js.map +1 -0
  401. package/dist/src/sandbox/windows/windowsSandboxDenialUtils.d.ts +13 -0
  402. package/dist/src/sandbox/windows/windowsSandboxDenialUtils.js +69 -0
  403. package/dist/src/sandbox/windows/windowsSandboxDenialUtils.js.map +1 -0
  404. package/dist/src/sandbox/windows/windowsSandboxDenialUtils.test.d.ts +6 -0
  405. package/dist/src/sandbox/windows/windowsSandboxDenialUtils.test.js +68 -0
  406. package/dist/src/sandbox/windows/windowsSandboxDenialUtils.test.js.map +1 -0
  407. package/dist/src/scheduler/policy.js +20 -5
  408. package/dist/src/scheduler/policy.js.map +1 -1
  409. package/dist/src/scheduler/policy.test.js +80 -0
  410. package/dist/src/scheduler/policy.test.js.map +1 -1
  411. package/dist/src/scheduler/scheduler.js +13 -3
  412. package/dist/src/scheduler/scheduler.js.map +1 -1
  413. package/dist/src/scheduler/scheduler.test.js +52 -0
  414. package/dist/src/scheduler/scheduler.test.js.map +1 -1
  415. package/dist/src/scheduler/scheduler_hooks.test.js +1 -0
  416. package/dist/src/scheduler/scheduler_hooks.test.js.map +1 -1
  417. package/dist/src/scheduler/state-manager.js +1 -1
  418. package/dist/src/scheduler/state-manager.js.map +1 -1
  419. package/dist/src/scheduler/state-manager.test.js +10 -0
  420. package/dist/src/scheduler/state-manager.test.js.map +1 -1
  421. package/dist/src/scheduler/tool-executor.js +7 -2
  422. package/dist/src/scheduler/tool-executor.js.map +1 -1
  423. package/dist/src/scheduler/tool-executor.test.js +38 -0
  424. package/dist/src/scheduler/tool-executor.test.js.map +1 -1
  425. package/dist/src/scheduler/types.d.ts +4 -2
  426. package/dist/src/services/chatRecordingService.d.ts +1 -13
  427. package/dist/src/services/chatRecordingService.js +45 -46
  428. package/dist/src/services/chatRecordingService.js.map +1 -1
  429. package/dist/src/services/chatRecordingService.test.js +79 -10
  430. package/dist/src/services/chatRecordingService.test.js.map +1 -1
  431. package/dist/src/services/executionLifecycleService.d.ts +44 -6
  432. package/dist/src/services/executionLifecycleService.js +52 -12
  433. package/dist/src/services/executionLifecycleService.js.map +1 -1
  434. package/dist/src/services/executionLifecycleService.test.js +157 -3
  435. package/dist/src/services/executionLifecycleService.test.js.map +1 -1
  436. package/dist/src/services/fileDiscoveryService.d.ts +17 -2
  437. package/dist/src/services/fileDiscoveryService.js +84 -20
  438. package/dist/src/services/fileDiscoveryService.js.map +1 -1
  439. package/dist/src/services/fileDiscoveryService.test.js +67 -1
  440. package/dist/src/services/fileDiscoveryService.test.js.map +1 -1
  441. package/dist/src/services/gitService.js +1 -1
  442. package/dist/src/services/gitService.js.map +1 -1
  443. package/dist/src/services/memoryService.d.ts +65 -0
  444. package/dist/src/services/memoryService.js +511 -0
  445. package/dist/src/services/memoryService.js.map +1 -0
  446. package/dist/src/services/memoryService.test.d.ts +6 -0
  447. package/dist/src/services/memoryService.test.js +563 -0
  448. package/dist/src/services/memoryService.test.js.map +1 -0
  449. package/dist/src/services/modelConfigService.d.ts +11 -0
  450. package/dist/src/services/modelConfigService.js +67 -0
  451. package/dist/src/services/modelConfigService.js.map +1 -1
  452. package/dist/src/services/modelConfigService.test.js +30 -0
  453. package/dist/src/services/modelConfigService.test.js.map +1 -1
  454. package/dist/src/services/sandboxManager.d.ts +107 -8
  455. package/dist/src/services/sandboxManager.integration.test.d.ts +1 -0
  456. package/dist/src/services/sandboxManager.integration.test.js +445 -0
  457. package/dist/src/services/sandboxManager.integration.test.js.map +1 -0
  458. package/dist/src/services/sandboxManager.js +176 -13
  459. package/dist/src/services/sandboxManager.js.map +1 -1
  460. package/dist/src/services/sandboxManager.test.js +401 -117
  461. package/dist/src/services/sandboxManager.test.js.map +1 -1
  462. package/dist/src/services/sandboxManagerFactory.d.ts +2 -3
  463. package/dist/src/services/sandboxManagerFactory.js +12 -22
  464. package/dist/src/services/sandboxManagerFactory.js.map +1 -1
  465. package/dist/src/services/sandboxedFileSystemService.d.ts +1 -0
  466. package/dist/src/services/sandboxedFileSystemService.js +43 -3
  467. package/dist/src/services/sandboxedFileSystemService.js.map +1 -1
  468. package/dist/src/services/sandboxedFileSystemService.test.js +97 -11
  469. package/dist/src/services/sandboxedFileSystemService.test.js.map +1 -1
  470. package/dist/src/services/shellExecutionService.d.ts +18 -1
  471. package/dist/src/services/shellExecutionService.js +115 -26
  472. package/dist/src/services/shellExecutionService.js.map +1 -1
  473. package/dist/src/services/shellExecutionService.test.js +70 -8
  474. package/dist/src/services/shellExecutionService.test.js.map +1 -1
  475. package/dist/src/services/test-data/resolved-aliases-retry.golden.json +4 -0
  476. package/dist/src/services/test-data/resolved-aliases.golden.json +4 -0
  477. package/dist/src/services/worktreeService.test.js +7 -7
  478. package/dist/src/services/worktreeService.test.js.map +1 -1
  479. package/dist/src/skills/skillLoader.d.ts +8 -0
  480. package/dist/src/skills/skillLoader.js +1 -1
  481. package/dist/src/skills/skillLoader.js.map +1 -1
  482. package/dist/src/telemetry/clearcut-logger/clearcut-logger.d.ts +29 -1
  483. package/dist/src/telemetry/clearcut-logger/clearcut-logger.js +107 -0
  484. package/dist/src/telemetry/clearcut-logger/clearcut-logger.js.map +1 -1
  485. package/dist/src/telemetry/clearcut-logger/clearcut-logger.test.js +172 -1
  486. package/dist/src/telemetry/clearcut-logger/clearcut-logger.test.js.map +1 -1
  487. package/dist/src/telemetry/clearcut-logger/event-metadata-key.d.ts +10 -1
  488. package/dist/src/telemetry/clearcut-logger/event-metadata-key.js +22 -1
  489. package/dist/src/telemetry/clearcut-logger/event-metadata-key.js.map +1 -1
  490. package/dist/src/telemetry/loggers.d.ts +22 -0
  491. package/dist/src/telemetry/loggers.js +41 -2
  492. package/dist/src/telemetry/loggers.js.map +1 -1
  493. package/dist/src/telemetry/loggers.test.js +8 -3
  494. package/dist/src/telemetry/loggers.test.js.map +1 -1
  495. package/dist/src/telemetry/metrics.d.ts +118 -1
  496. package/dist/src/telemetry/metrics.js +196 -4
  497. package/dist/src/telemetry/metrics.js.map +1 -1
  498. package/dist/src/telemetry/metrics.test.js +298 -0
  499. package/dist/src/telemetry/metrics.test.js.map +1 -1
  500. package/dist/src/telemetry/types.d.ts +3 -3
  501. package/dist/src/telemetry/types.js +9 -4
  502. package/dist/src/telemetry/types.js.map +1 -1
  503. package/dist/src/test-utils/mock-message-bus.d.ts +1 -1
  504. package/dist/src/test-utils/mock-message-bus.js +1 -1
  505. package/dist/src/test-utils/mock-message-bus.js.map +1 -1
  506. package/dist/src/tools/complete-task.d.ts +29 -0
  507. package/dist/src/tools/complete-task.js +123 -0
  508. package/dist/src/tools/complete-task.js.map +1 -0
  509. package/dist/src/tools/complete-task.test.d.ts +6 -0
  510. package/dist/src/tools/complete-task.test.js +114 -0
  511. package/dist/src/tools/complete-task.test.js.map +1 -0
  512. package/dist/src/tools/definitions/base-declarations.d.ts +8 -0
  513. package/dist/src/tools/definitions/base-declarations.js +10 -0
  514. package/dist/src/tools/definitions/base-declarations.js.map +1 -1
  515. package/dist/src/tools/definitions/coreTools.d.ts +2 -1
  516. package/dist/src/tools/definitions/coreTools.js +9 -3
  517. package/dist/src/tools/definitions/coreTools.js.map +1 -1
  518. package/dist/src/tools/definitions/dynamic-declaration-helpers.d.ts +4 -0
  519. package/dist/src/tools/definitions/dynamic-declaration-helpers.js +33 -2
  520. package/dist/src/tools/definitions/dynamic-declaration-helpers.js.map +1 -1
  521. package/dist/src/tools/definitions/model-family-sets/default-legacy.js +14 -9
  522. package/dist/src/tools/definitions/model-family-sets/default-legacy.js.map +1 -1
  523. package/dist/src/tools/definitions/model-family-sets/gemini-3.js +13 -7
  524. package/dist/src/tools/definitions/model-family-sets/gemini-3.js.map +1 -1
  525. package/dist/src/tools/definitions/trackerTools.js +3 -3
  526. package/dist/src/tools/definitions/trackerTools.js.map +1 -1
  527. package/dist/src/tools/definitions/types.d.ts +1 -0
  528. package/dist/src/tools/enter-plan-mode.js +15 -0
  529. package/dist/src/tools/enter-plan-mode.js.map +1 -1
  530. package/dist/src/tools/enter-plan-mode.test.js +25 -0
  531. package/dist/src/tools/enter-plan-mode.test.js.map +1 -1
  532. package/dist/src/tools/grep-utils.d.ts +2 -1
  533. package/dist/src/tools/grep-utils.js +22 -3
  534. package/dist/src/tools/grep-utils.js.map +1 -1
  535. package/dist/src/tools/grep.js +16 -3
  536. package/dist/src/tools/grep.js.map +1 -1
  537. package/dist/src/tools/grep.test.js +36 -8
  538. package/dist/src/tools/grep.test.js.map +1 -1
  539. package/dist/src/tools/jit-context.js +3 -3
  540. package/dist/src/tools/jit-context.js.map +1 -1
  541. package/dist/src/tools/jit-context.test.js +15 -13
  542. package/dist/src/tools/jit-context.test.js.map +1 -1
  543. package/dist/src/tools/ls.js +6 -4
  544. package/dist/src/tools/ls.js.map +1 -1
  545. package/dist/src/tools/ls.test.js +22 -7
  546. package/dist/src/tools/ls.test.js.map +1 -1
  547. package/dist/src/tools/mcp-client-manager.js +6 -3
  548. package/dist/src/tools/mcp-client-manager.js.map +1 -1
  549. package/dist/src/tools/mcp-client-manager.test.js +35 -0
  550. package/dist/src/tools/mcp-client-manager.test.js.map +1 -1
  551. package/dist/src/tools/mcp-client.js +1 -1
  552. package/dist/src/tools/mcp-client.js.map +1 -1
  553. package/dist/src/tools/mcp-tool.test.js +1 -1
  554. package/dist/src/tools/mcp-tool.test.js.map +1 -1
  555. package/dist/src/tools/memoryTool.d.ts +9 -2
  556. package/dist/src/tools/memoryTool.js +39 -15
  557. package/dist/src/tools/memoryTool.js.map +1 -1
  558. package/dist/src/tools/memoryTool.test.js +61 -2
  559. package/dist/src/tools/memoryTool.test.js.map +1 -1
  560. package/dist/src/tools/read-many-files.js +12 -4
  561. package/dist/src/tools/read-many-files.js.map +1 -1
  562. package/dist/src/tools/read-many-files.test.js +17 -17
  563. package/dist/src/tools/read-many-files.test.js.map +1 -1
  564. package/dist/src/tools/ripGrep.js +14 -1
  565. package/dist/src/tools/ripGrep.js.map +1 -1
  566. package/dist/src/tools/ripGrep.test.js +10 -10
  567. package/dist/src/tools/ripGrep.test.js.map +1 -1
  568. package/dist/src/tools/shell.d.ts +17 -4
  569. package/dist/src/tools/shell.js +342 -151
  570. package/dist/src/tools/shell.js.map +1 -1
  571. package/dist/src/tools/shell.test.js +204 -11
  572. package/dist/src/tools/shell.test.js.map +1 -1
  573. package/dist/src/tools/shellBackgroundTools.d.ts +38 -0
  574. package/dist/src/tools/shellBackgroundTools.integration.test.d.ts +6 -0
  575. package/dist/src/tools/shellBackgroundTools.integration.test.js +86 -0
  576. package/dist/src/tools/shellBackgroundTools.integration.test.js.map +1 -0
  577. package/dist/src/tools/shellBackgroundTools.js +186 -0
  578. package/dist/src/tools/shellBackgroundTools.js.map +1 -0
  579. package/dist/src/tools/shellBackgroundTools.test.d.ts +6 -0
  580. package/dist/src/tools/shellBackgroundTools.test.js +230 -0
  581. package/dist/src/tools/shellBackgroundTools.test.js.map +1 -0
  582. package/dist/src/tools/shell_proactive.test.d.ts +6 -0
  583. package/dist/src/tools/shell_proactive.test.js +122 -0
  584. package/dist/src/tools/shell_proactive.test.js.map +1 -0
  585. package/dist/src/tools/tool-names.d.ts +4 -4
  586. package/dist/src/tools/tool-names.js +6 -3
  587. package/dist/src/tools/tool-names.js.map +1 -1
  588. package/dist/src/tools/tool-registry.js +11 -1
  589. package/dist/src/tools/tool-registry.js.map +1 -1
  590. package/dist/src/tools/tool-registry.test.js +43 -1
  591. package/dist/src/tools/tool-registry.test.js.map +1 -1
  592. package/dist/src/tools/tools.d.ts +12 -1
  593. package/dist/src/tools/tools.js +16 -1
  594. package/dist/src/tools/tools.js.map +1 -1
  595. package/dist/src/tools/tools.test.js +42 -1
  596. package/dist/src/tools/tools.test.js.map +1 -1
  597. package/dist/src/tools/topicTool.d.ts +29 -0
  598. package/dist/src/tools/topicTool.js +72 -0
  599. package/dist/src/tools/topicTool.js.map +1 -0
  600. package/dist/src/tools/topicTool.test.d.ts +6 -0
  601. package/dist/src/tools/topicTool.test.js +105 -0
  602. package/dist/src/tools/topicTool.test.js.map +1 -0
  603. package/dist/src/tools/web-fetch.js +40 -22
  604. package/dist/src/tools/web-fetch.js.map +1 -1
  605. package/dist/src/tools/web-fetch.test.js +28 -0
  606. package/dist/src/tools/web-fetch.test.js.map +1 -1
  607. package/dist/src/tools/xcode-mcp-fix-transport.js +1 -1
  608. package/dist/src/tools/xcode-mcp-fix-transport.js.map +1 -1
  609. package/dist/src/utils/bfsFileSearch.js +3 -6
  610. package/dist/src/utils/bfsFileSearch.js.map +1 -1
  611. package/dist/src/utils/checkpointUtils.d.ts +4 -4
  612. package/dist/src/utils/checkpointUtils.js +11 -8
  613. package/dist/src/utils/checkpointUtils.js.map +1 -1
  614. package/dist/src/utils/compatibility.js +0 -7
  615. package/dist/src/utils/compatibility.js.map +1 -1
  616. package/dist/src/utils/compatibility.test.js +0 -9
  617. package/dist/src/utils/compatibility.test.js.map +1 -1
  618. package/dist/src/utils/editor.js +3 -0
  619. package/dist/src/utils/editor.js.map +1 -1
  620. package/dist/src/utils/errorParsing.js +2 -2
  621. package/dist/src/utils/errorParsing.js.map +1 -1
  622. package/dist/src/utils/errors.d.ts +3 -0
  623. package/dist/src/utils/errors.js +28 -6
  624. package/dist/src/utils/errors.js.map +1 -1
  625. package/dist/src/utils/errors.test.js +23 -0
  626. package/dist/src/utils/errors.test.js.map +1 -1
  627. package/dist/src/utils/events.d.ts +12 -0
  628. package/dist/src/utils/events.js +7 -0
  629. package/dist/src/utils/events.js.map +1 -1
  630. package/dist/src/utils/fetch.d.ts +1 -0
  631. package/dist/src/utils/fetch.js +22 -6
  632. package/dist/src/utils/fetch.js.map +1 -1
  633. package/dist/src/utils/fetch.test.js +26 -1
  634. package/dist/src/utils/fetch.test.js.map +1 -1
  635. package/dist/src/utils/fileUtils.js +1 -1
  636. package/dist/src/utils/fileUtils.js.map +1 -1
  637. package/dist/src/utils/filesearch/crawler.js +1 -1
  638. package/dist/src/utils/filesearch/crawler.js.map +1 -1
  639. package/dist/src/utils/filesearch/fileSearch.test.js +7 -2
  640. package/dist/src/utils/filesearch/fileSearch.test.js.map +1 -1
  641. package/dist/src/utils/getFolderStructure.js +1 -1
  642. package/dist/src/utils/getFolderStructure.js.map +1 -1
  643. package/dist/src/utils/getPty.js +2 -2
  644. package/dist/src/utils/getPty.js.map +1 -1
  645. package/dist/src/utils/gitIgnoreParser.d.ts +2 -2
  646. package/dist/src/utils/gitIgnoreParser.js +30 -52
  647. package/dist/src/utils/gitIgnoreParser.js.map +1 -1
  648. package/dist/src/utils/gitIgnoreParser.test.js +51 -185
  649. package/dist/src/utils/gitIgnoreParser.test.js.map +1 -1
  650. package/dist/src/utils/gitUtils.js +2 -2
  651. package/dist/src/utils/gitUtils.js.map +1 -1
  652. package/dist/src/utils/googleErrors.js +5 -5
  653. package/dist/src/utils/googleErrors.js.map +1 -1
  654. package/dist/src/utils/ignoreFileParser.d.ts +2 -2
  655. package/dist/src/utils/ignoreFileParser.js +7 -18
  656. package/dist/src/utils/ignoreFileParser.js.map +1 -1
  657. package/dist/src/utils/ignoreFileParser.test.js +40 -132
  658. package/dist/src/utils/ignoreFileParser.test.js.map +1 -1
  659. package/dist/src/utils/ignorePathUtils.d.ts +11 -0
  660. package/dist/src/utils/ignorePathUtils.js +39 -0
  661. package/dist/src/utils/ignorePathUtils.js.map +1 -0
  662. package/dist/src/utils/ignorePathUtils.test.d.ts +6 -0
  663. package/dist/src/utils/ignorePathUtils.test.js +70 -0
  664. package/dist/src/utils/ignorePathUtils.test.js.map +1 -0
  665. package/dist/src/utils/memoryDiscovery.d.ts +6 -4
  666. package/dist/src/utils/memoryDiscovery.js +69 -48
  667. package/dist/src/utils/memoryDiscovery.js.map +1 -1
  668. package/dist/src/utils/memoryDiscovery.test.js +40 -0
  669. package/dist/src/utils/memoryDiscovery.test.js.map +1 -1
  670. package/dist/src/utils/memoryImportProcessor.d.ts +1 -1
  671. package/dist/src/utils/memoryImportProcessor.js +24 -15
  672. package/dist/src/utils/memoryImportProcessor.js.map +1 -1
  673. package/dist/src/utils/paths.d.ts +8 -0
  674. package/dist/src/utils/paths.js +37 -6
  675. package/dist/src/utils/paths.js.map +1 -1
  676. package/dist/src/utils/paths.test.js +61 -3
  677. package/dist/src/utils/paths.test.js.map +1 -1
  678. package/dist/src/utils/process-utils.js +2 -2
  679. package/dist/src/utils/process-utils.js.map +1 -1
  680. package/dist/src/utils/retry.js +7 -0
  681. package/dist/src/utils/retry.js.map +1 -1
  682. package/dist/src/utils/retry.test.js +41 -0
  683. package/dist/src/utils/retry.test.js.map +1 -1
  684. package/dist/src/utils/secure-browser-launcher.js +1 -1
  685. package/dist/src/utils/secure-browser-launcher.js.map +1 -1
  686. package/dist/src/utils/sessionOperations.d.ts +19 -0
  687. package/dist/src/utils/sessionOperations.js +101 -0
  688. package/dist/src/utils/sessionOperations.js.map +1 -0
  689. package/dist/src/utils/sessionOperations.test.d.ts +6 -0
  690. package/dist/src/utils/sessionOperations.test.js +92 -0
  691. package/dist/src/utils/sessionOperations.test.js.map +1 -0
  692. package/dist/src/utils/shell-utils.d.ts +24 -0
  693. package/dist/src/utils/shell-utils.integration.test.js +1 -1
  694. package/dist/src/utils/shell-utils.integration.test.js.map +1 -1
  695. package/dist/src/utils/shell-utils.js +86 -6
  696. package/dist/src/utils/shell-utils.js.map +1 -1
  697. package/dist/src/utils/shell-utils.test.js +13 -1
  698. package/dist/src/utils/shell-utils.test.js.map +1 -1
  699. package/dist/src/utils/systemEncoding.js +1 -1
  700. package/dist/src/utils/systemEncoding.js.map +1 -1
  701. package/dist/src/utils/terminalSerializer.d.ts +1 -0
  702. package/dist/src/utils/terminalSerializer.js +31 -8
  703. package/dist/src/utils/terminalSerializer.js.map +1 -1
  704. package/dist/src/utils/terminalSerializer.test.js +3 -2
  705. package/dist/src/utils/terminalSerializer.test.js.map +1 -1
  706. package/dist/src/utils/textUtils.d.ts +8 -0
  707. package/dist/src/utils/textUtils.js +16 -0
  708. package/dist/src/utils/textUtils.js.map +1 -1
  709. package/dist/src/utils/tokenCalculation.d.ts +2 -0
  710. package/dist/src/utils/tokenCalculation.js +2 -2
  711. package/dist/src/utils/tokenCalculation.js.map +1 -1
  712. package/dist/src/utils/workspaceContext.js +2 -2
  713. package/dist/src/utils/workspaceContext.js.map +1 -1
  714. package/dist/tsconfig.tsbuildinfo +1 -1
  715. package/package.json +2 -1
  716. package/dist/docs/CONTRIBUTING.md +0 -566
  717. package/dist/docs/get-started/examples.md +0 -141
  718. package/dist/src/sandbox/macos/MacOsSandboxManager.integration.test.js +0 -164
  719. package/dist/src/sandbox/macos/MacOsSandboxManager.integration.test.js.map +0 -1
  720. package/dist/src/sandbox/macos/commandSafety.js.map +0 -1
  721. package/dist/src/services/chatCompressionService.js.map +0 -1
  722. package/dist/src/services/chatCompressionService.test.js.map +0 -1
  723. package/dist/src/services/contextManager.js.map +0 -1
  724. package/dist/src/services/contextManager.test.js.map +0 -1
  725. package/dist/src/services/toolOutputMaskingService.js.map +0 -1
  726. package/dist/src/services/toolOutputMaskingService.test.js.map +0 -1
  727. /package/dist/src/{services/toolOutputMaskingService.test.d.ts → agents/browser/snapshotSuperseder.test.d.ts} +0 -0
  728. /package/dist/src/{services → context}/chatCompressionService.d.ts +0 -0
  729. /package/dist/src/{services → context}/chatCompressionService.js +0 -0
  730. /package/dist/src/{services → context}/chatCompressionService.test.d.ts +0 -0
  731. /package/dist/src/{services → context}/chatCompressionService.test.js +0 -0
  732. /package/dist/src/{sandbox/macos/MacOsSandboxManager.integration.test.d.ts → context/contextCompressionService.test.d.ts} +0 -0
  733. /package/dist/src/{services/contextManager.test.d.ts → context/memoryContextManager.test.d.ts} +0 -0
@@ -26,8 +26,11 @@ import { WebFetchTool } from '../tools/web-fetch.js';
26
26
  import { MemoryTool, setGeminiMdFilename } from '../tools/memoryTool.js';
27
27
  import { WebSearchTool } from '../tools/web-search.js';
28
28
  import { AskUserTool } from '../tools/ask-user.js';
29
+ import { UpdateTopicTool } from '../tools/topicTool.js';
30
+ import { TopicState } from './topicState.js';
29
31
  import { ExitPlanModeTool } from '../tools/exit-plan-mode.js';
30
32
  import { EnterPlanModeTool } from '../tools/enter-plan-mode.js';
33
+ import { ListBackgroundProcessesTool, ReadBackgroundOutputTool, } from '../tools/shellBackgroundTools.js';
31
34
  import { GeminiClient } from '../core/client.js';
32
35
  import { BaseLlmClient } from '../core/baseLlmClient.js';
33
36
  import { LocalLiteRtLmClient } from '../core/localLiteRtLmClient.js';
@@ -52,9 +55,10 @@ import { ModelRouterService } from '../routing/modelRouterService.js';
52
55
  import { OutputFormat } from '../output/types.js';
53
56
  import { ModelConfigService, } from '../services/modelConfigService.js';
54
57
  import { DEFAULT_MODEL_CONFIGS } from './defaultModelConfigs.js';
55
- import { ContextManager } from '../services/contextManager.js';
58
+ import { MemoryContextManager } from '../context/memoryContextManager.js';
56
59
  import { TrackerService } from '../services/trackerService.js';
57
60
  import { WorkspaceContext } from '../utils/workspaceContext.js';
61
+ import { getWorkspaceContextOverride } from './scoped-config.js';
58
62
  import { Storage } from './storage.js';
59
63
  import { FileExclusions } from '../utils/ignorePatterns.js';
60
64
  import { MessageBus } from '../confirmation-bus/message-bus.js';
@@ -65,7 +69,7 @@ import { getCodeAssistServer } from '../code_assist/codeAssist.js';
65
69
  import { getExperiments, } from '../code_assist/experiments/experiments.js';
66
70
  import { AgentRegistry } from '../agents/registry.js';
67
71
  import { AcknowledgedAgentsService } from '../agents/acknowledgedAgents.js';
68
- import { setGlobalProxy } from '../utils/fetch.js';
72
+ import { setGlobalProxy, updateGlobalFetchTimeouts } from '../utils/fetch.js';
69
73
  import { SubagentTool } from '../agents/subagent-tool.js';
70
74
  import { ExperimentFlags } from '../code_assist/experiments/flagNames.js';
71
75
  import { debugLogger } from '../utils/debugLogger.js';
@@ -83,7 +87,7 @@ import { CheckerRegistry } from '../safety/registry.js';
83
87
  import { ConsecaSafetyChecker } from '../safety/conseca/conseca.js';
84
88
  import { DEFAULT_MAX_ATTEMPTS } from '../utils/retry.js';
85
89
  import { DEFAULT_FILE_FILTERING_OPTIONS, DEFAULT_MEMORY_FILE_FILTERING_OPTIONS, } from './constants.js';
86
- import { DEFAULT_TOOL_PROTECTION_THRESHOLD, DEFAULT_MIN_PRUNABLE_TOKENS_THRESHOLD, DEFAULT_PROTECT_LATEST_TURN, } from '../services/toolOutputMaskingService.js';
90
+ import { DEFAULT_TOOL_PROTECTION_THRESHOLD, DEFAULT_MIN_PRUNABLE_TOKENS_THRESHOLD, DEFAULT_PROTECT_LATEST_TURN, } from '../context/toolOutputMaskingService.js';
87
91
  import { SimpleExtensionLoader, } from '../utils/extensionLoader.js';
88
92
  import { McpClientManager } from '../tools/mcp-client-manager.js';
89
93
  import { A2AClientManager } from '../agents/a2a-client-manager.js';
@@ -171,6 +175,7 @@ export const ConfigSchema = z.object({
171
175
  .object({
172
176
  enabled: z.boolean().default(false),
173
177
  allowedPaths: z.array(z.string()).default([]),
178
+ includeDirectories: z.array(z.string()).default([]),
174
179
  networkAccess: z.boolean().default(false),
175
180
  command: z
176
181
  .enum([
@@ -214,11 +219,13 @@ export class Config {
214
219
  clientVersion;
215
220
  fileSystemService;
216
221
  trackerService;
222
+ topicState = new TopicState();
217
223
  contentGeneratorConfig;
218
224
  contentGenerator;
219
225
  modelConfigService;
220
226
  embeddingModel;
221
227
  sandbox;
228
+ _sandboxForbiddenPaths;
222
229
  targetDir;
223
230
  workspaceContext;
224
231
  debugMode;
@@ -310,9 +317,12 @@ export class Config {
310
317
  directWebFetch;
311
318
  useRipgrep;
312
319
  enableInteractiveShell;
320
+ shellBackgroundCompletionBehavior;
313
321
  skipNextSpeakerCheck;
314
322
  useBackgroundColor;
315
323
  useAlternateBuffer;
324
+ useTerminalBuffer;
325
+ useRenderProcess;
316
326
  shellExecutionConfig;
317
327
  extensionManagement = true;
318
328
  extensionRegistryURI;
@@ -331,6 +341,8 @@ export class Config {
331
341
  policyUpdateConfirmationRequest;
332
342
  outputSettings;
333
343
  gemmaModelRouter;
344
+ agentSessionNoninteractiveEnabled;
345
+ agentSessionInteractiveEnabled;
334
346
  continueOnFailedApiCall;
335
347
  retryFetchErrors;
336
348
  maxAttempts;
@@ -344,9 +356,8 @@ export class Config {
344
356
  acceptRawOutputRisk;
345
357
  dynamicModelConfiguration;
346
358
  pendingIncludeDirectories;
347
- enableHooks;
348
359
  enableHooksUI;
349
- toolOutputMasking;
360
+ enableHooks;
350
361
  hooks;
351
362
  projectHooks;
352
363
  disabledHooks;
@@ -364,13 +375,15 @@ export class Config {
364
375
  adminSkillsEnabled;
365
376
  experimentalJitContext;
366
377
  experimentalMemoryManager;
378
+ memoryBoundaryMarkers;
367
379
  topicUpdateNarration;
368
380
  disableLLMCorrection;
369
381
  planEnabled;
370
382
  trackerEnabled;
371
383
  planModeRoutingEnabled;
372
384
  modelSteering;
373
- contextManager;
385
+ memoryContextManager;
386
+ contextManagement;
374
387
  terminalBackground = undefined;
375
388
  remoteAdminSettings;
376
389
  latestApiRequest;
@@ -388,6 +401,11 @@ export class Config {
388
401
  ? {
389
402
  enabled: params.sandbox.enabled || params.toolSandboxing || false,
390
403
  allowedPaths: params.sandbox.allowedPaths ?? [],
404
+ includeDirectories: [
405
+ ...(params.sandbox.includeDirectories ?? []),
406
+ ...(params.sandbox.allowedPaths ?? []),
407
+ Storage.getGlobalTempDir(),
408
+ ],
391
409
  networkAccess: params.sandbox.networkAccess ?? false,
392
410
  command: params.sandbox.command,
393
411
  image: params.sandbox.image,
@@ -395,21 +413,29 @@ export class Config {
395
413
  : {
396
414
  enabled: params.toolSandboxing || false,
397
415
  allowedPaths: [],
416
+ includeDirectories: [Storage.getGlobalTempDir()],
398
417
  networkAccess: false,
399
418
  };
400
- this._sandboxManager = createSandboxManager(this.sandbox, params.targetDir);
401
- if (!(this._sandboxManager instanceof NoopSandboxManager) &&
402
- this.sandbox.enabled) {
403
- this.fileSystemService = new SandboxedFileSystemService(this._sandboxManager, params.targetDir);
404
- }
405
- else {
406
- this.fileSystemService = new StandardFileSystemService();
407
- }
419
+ this.targetDir = path.resolve(params.targetDir);
420
+ this.folderTrust = params.folderTrust ?? false;
421
+ this.workspaceContext = new WorkspaceContext(this.targetDir, []);
422
+ this.pendingIncludeDirectories = params.includeDirectories ?? [];
423
+ this.debugMode = params.debugMode;
424
+ this.question = params.question;
425
+ this.worktreeSettings = params.worktreeSettings;
408
426
  this._sandboxPolicyManager = new SandboxPolicyManager();
409
427
  const initialApprovalMode = params.approvalMode ??
410
428
  params.policyEngineConfig?.approvalMode ??
411
429
  'default';
412
- this._sandboxManager = createSandboxManager(this.sandbox, params.targetDir, this._sandboxPolicyManager, initialApprovalMode);
430
+ this._sandboxManager = createSandboxManager(this.sandbox, {
431
+ workspace: this.targetDir,
432
+ forbiddenPaths: this.getSandboxForbiddenPaths.bind(this),
433
+ includeDirectories: [
434
+ ...this.pendingIncludeDirectories,
435
+ Storage.getGlobalTempDir(),
436
+ ],
437
+ policyManager: this._sandboxPolicyManager,
438
+ }, initialApprovalMode);
413
439
  if (!(this._sandboxManager instanceof NoopSandboxManager) &&
414
440
  this.sandbox?.enabled) {
415
441
  this.fileSystemService = new SandboxedFileSystemService(this._sandboxManager, params.targetDir);
@@ -417,10 +443,6 @@ export class Config {
417
443
  else {
418
444
  this.fileSystemService = new StandardFileSystemService();
419
445
  }
420
- this.targetDir = path.resolve(params.targetDir);
421
- this.folderTrust = params.folderTrust ?? false;
422
- this.workspaceContext = new WorkspaceContext(this.targetDir, []);
423
- this.pendingIncludeDirectories = params.includeDirectories ?? [];
424
446
  this.debugMode = params.debugMode;
425
447
  this.question = params.question;
426
448
  this.worktreeSettings = params.worktreeSettings;
@@ -538,19 +560,41 @@ export class Config {
538
560
  this.modelConfigService = new ModelConfigService(modelConfigServiceConfig ?? DEFAULT_MODEL_CONFIGS);
539
561
  this.experimentalJitContext = params.experimentalJitContext ?? false;
540
562
  this.experimentalMemoryManager = params.experimentalMemoryManager ?? false;
563
+ this.memoryBoundaryMarkers = params.memoryBoundaryMarkers ?? ['.git'];
564
+ this.contextManagement = {
565
+ enabled: params.contextManagement?.enabled ?? false,
566
+ historyWindow: {
567
+ maxTokens: params.contextManagement?.historyWindow?.maxTokens ?? 150000,
568
+ retainedTokens: params.contextManagement?.historyWindow?.retainedTokens ?? 40000,
569
+ },
570
+ messageLimits: {
571
+ normalMaxTokens: params.contextManagement?.messageLimits?.normalMaxTokens ?? 2500,
572
+ retainedMaxTokens: params.contextManagement?.messageLimits?.retainedMaxTokens ?? 12000,
573
+ normalizationHeadRatio: params.contextManagement?.messageLimits?.normalizationHeadRatio ??
574
+ 0.25,
575
+ },
576
+ tools: {
577
+ distillation: {
578
+ maxOutputTokens: params.contextManagement?.tools?.distillation?.maxOutputTokens ??
579
+ 10000,
580
+ summarizationThresholdTokens: params.contextManagement?.tools?.distillation
581
+ ?.summarizationThresholdTokens ?? 20000,
582
+ },
583
+ outputMasking: {
584
+ protectionThresholdTokens: params.contextManagement?.tools?.outputMasking
585
+ ?.protectionThresholdTokens ?? DEFAULT_TOOL_PROTECTION_THRESHOLD,
586
+ minPrunableThresholdTokens: params.contextManagement?.tools?.outputMasking
587
+ ?.minPrunableThresholdTokens ??
588
+ DEFAULT_MIN_PRUNABLE_TOKENS_THRESHOLD,
589
+ protectLatestTurn: params.contextManagement?.tools?.outputMasking?.protectLatestTurn ??
590
+ DEFAULT_PROTECT_LATEST_TURN,
591
+ },
592
+ },
593
+ };
541
594
  this.topicUpdateNarration = params.topicUpdateNarration ?? false;
542
595
  this.modelSteering = params.modelSteering ?? false;
543
596
  this.injectionService = new InjectionService(() => this.isModelSteeringEnabled());
544
597
  ExecutionLifecycleService.setInjectionService(this.injectionService);
545
- this.toolOutputMasking = {
546
- enabled: params.toolOutputMasking?.enabled ?? true,
547
- toolProtectionThreshold: params.toolOutputMasking?.toolProtectionThreshold ??
548
- DEFAULT_TOOL_PROTECTION_THRESHOLD,
549
- minPrunableTokensThreshold: params.toolOutputMasking?.minPrunableTokensThreshold ??
550
- DEFAULT_MIN_PRUNABLE_TOKENS_THRESHOLD,
551
- protectLatestTurn: params.toolOutputMasking?.protectLatestTurn ??
552
- DEFAULT_PROTECT_LATEST_TURN,
553
- };
554
598
  this.maxSessionTurns = params.maxSessionTurns ?? -1;
555
599
  this.acpMode = params.acpMode ?? false;
556
600
  this.listSessions = params.listSessions ?? false;
@@ -576,7 +620,16 @@ export class Config {
576
620
  this.useRipgrep = params.useRipgrep ?? true;
577
621
  this.useBackgroundColor = params.useBackgroundColor ?? true;
578
622
  this.useAlternateBuffer = params.useAlternateBuffer ?? false;
623
+ this.useTerminalBuffer = params.useTerminalBuffer ?? false;
624
+ this.useRenderProcess = params.useRenderProcess ?? true;
579
625
  this.enableInteractiveShell = params.enableInteractiveShell ?? false;
626
+ const requestedBehavior = params.shellBackgroundCompletionBehavior;
627
+ if (requestedBehavior === 'inject' || requestedBehavior === 'notify') {
628
+ this.shellBackgroundCompletionBehavior = requestedBehavior;
629
+ }
630
+ else {
631
+ this.shellBackgroundCompletionBehavior = 'silent';
632
+ }
580
633
  this.skipNextSpeakerCheck = params.skipNextSpeakerCheck ?? true;
581
634
  this.shellExecutionConfig = {
582
635
  terminalWidth: params.shellExecutionConfig?.terminalWidth ?? 80,
@@ -586,6 +639,7 @@ export class Config {
586
639
  sanitizationConfig: this.sanitizationConfig,
587
640
  sandboxManager: this._sandboxManager,
588
641
  sandboxConfig: this.sandbox,
642
+ backgroundCompletionBehavior: this.shellBackgroundCompletionBehavior,
589
643
  };
590
644
  this.truncateToolOutputThreshold =
591
645
  params.truncateToolOutputThreshold ??
@@ -633,9 +687,7 @@ export class Config {
633
687
  ...params.policyEngineConfig,
634
688
  approvalMode: engineApprovalMode,
635
689
  disableAlwaysAllow: this.disableAlwaysAllow,
636
- toolSandboxEnabled: this.getSandboxEnabled(),
637
- sandboxApprovedTools: this.sandboxPolicyManager?.getModeConfig(engineApprovalMode)
638
- ?.approvedTools ?? [],
690
+ sandboxManager: this._sandboxManager,
639
691
  }, checkerRunner);
640
692
  // Register Conseca if enabled
641
693
  if (this.enableConseca) {
@@ -655,6 +707,10 @@ export class Config {
655
707
  model: params.gemmaModelRouter?.classifier?.model ?? 'gemma3-1b-gpu-custom',
656
708
  },
657
709
  };
710
+ this.agentSessionNoninteractiveEnabled =
711
+ params.adk?.agentSessionNoninteractiveEnabled ?? false;
712
+ this.agentSessionInteractiveEnabled =
713
+ params.adk?.agentSessionInteractiveEnabled ?? false;
658
714
  this.retryFetchErrors = params.retryFetchErrors ?? true;
659
715
  this.maxAttempts = Math.min(params.maxAttempts ?? DEFAULT_MAX_ATTEMPTS, DEFAULT_MAX_ATTEMPTS);
660
716
  this.disableYoloMode = params.disableYoloMode ?? false;
@@ -781,8 +837,8 @@ export class Config {
781
837
  await this.hookSystem.initialize();
782
838
  }
783
839
  if (this.experimentalJitContext) {
784
- this.contextManager = new ContextManager(this);
785
- await this.contextManager.refresh();
840
+ this.memoryContextManager = new MemoryContextManager(this);
841
+ await this.memoryContextManager.refresh();
786
842
  }
787
843
  await this._geminiClient.initialize();
788
844
  this.initialized = true;
@@ -815,8 +871,6 @@ export class Config {
815
871
  this.contentGenerator = await createContentGenerator(newContentGeneratorConfig, this, this.getSessionId());
816
872
  // Only assign to instance properties after successful initialization
817
873
  this.contentGeneratorConfig = newContentGeneratorConfig;
818
- // Initialize BaseLlmClient now that the ContentGenerator is available
819
- this.baseLlmClient = new BaseLlmClient(this.contentGenerator, this);
820
874
  const codeAssistServer = getCodeAssistServer(this);
821
875
  const quotaPromise = codeAssistServer?.projectId
822
876
  ? this.refreshUserQuota()
@@ -830,6 +884,14 @@ export class Config {
830
884
  debugLogger.error('Failed to fetch experiments', e);
831
885
  return undefined;
832
886
  });
887
+ // Fetch experiments and update timeouts before continuing initialization
888
+ const experiments = await this.experimentsPromise;
889
+ const requestTimeoutMs = this.getRequestTimeoutMs();
890
+ if (requestTimeoutMs !== undefined) {
891
+ updateGlobalFetchTimeouts(requestTimeoutMs);
892
+ }
893
+ // Initialize BaseLlmClient now that the ContentGenerator and experiments are available
894
+ this.baseLlmClient = new BaseLlmClient(this.contentGenerator, this);
833
895
  await quotaPromise;
834
896
  const authType = this.contentGeneratorConfig.authType;
835
897
  if (authType === AuthType.USE_GEMINI ||
@@ -843,8 +905,6 @@ export class Config {
843
905
  this.hasAccessToPreviewModel === false) {
844
906
  this.setModel(DEFAULT_GEMINI_MODEL_AUTO);
845
907
  }
846
- // Fetch admin controls
847
- const experiments = await this.experimentsPromise;
848
908
  const adminControlsEnabled = experiments?.flags[ExperimentFlags.ENABLE_ADMIN_CONTROLS]?.boolValue ??
849
909
  false;
850
910
  const adminControls = await fetchAdminControls(codeAssistServer, this.getRemoteAdminSettings(), adminControlsEnabled, (newSettings) => {
@@ -878,6 +938,9 @@ export class Config {
878
938
  getBaseLlmClient() {
879
939
  if (!this.baseLlmClient) {
880
940
  // Handle cases where initialization might be deferred or authentication failed
941
+ if (!this.experiments) {
942
+ throw new Error('BaseLlmClient not initialized. Ensure experiments have been fetched and configuration is ready.');
943
+ }
881
944
  if (this.contentGenerator) {
882
945
  this.baseLlmClient = new BaseLlmClient(this.getContentGenerator(), this);
883
946
  }
@@ -931,8 +994,26 @@ export class Config {
931
994
  get geminiClient() {
932
995
  return this._geminiClient;
933
996
  }
997
+ async getSandboxForbiddenPaths() {
998
+ if (this._sandboxForbiddenPaths) {
999
+ return this._sandboxForbiddenPaths;
1000
+ }
1001
+ this._sandboxForbiddenPaths = await this.getFileService().getIgnoredPaths({
1002
+ respectGitIgnore: false,
1003
+ respectGeminiIgnore: true,
1004
+ });
1005
+ return this._sandboxForbiddenPaths;
1006
+ }
934
1007
  refreshSandboxManager() {
935
- this._sandboxManager = createSandboxManager(this.sandbox, this.targetDir, this._sandboxPolicyManager, this.getApprovalMode());
1008
+ this._sandboxManager = createSandboxManager(this.sandbox, {
1009
+ workspace: this.targetDir,
1010
+ forbiddenPaths: this.getSandboxForbiddenPaths.bind(this),
1011
+ includeDirectories: [
1012
+ ...this.pendingIncludeDirectories,
1013
+ Storage.getGlobalTempDir(),
1014
+ ],
1015
+ policyManager: this._sandboxPolicyManager,
1016
+ }, this.getApprovalMode());
936
1017
  this.shellExecutionConfig.sandboxManager = this._sandboxManager;
937
1018
  }
938
1019
  get sandboxPolicyManager() {
@@ -1127,7 +1208,12 @@ export class Config {
1127
1208
  return this.sandbox?.enabled ?? false;
1128
1209
  }
1129
1210
  getSandboxAllowedPaths() {
1130
- return this.sandbox?.allowedPaths ?? [];
1211
+ const paths = [...(this.sandbox?.allowedPaths ?? [])];
1212
+ const globalTempDir = Storage.getGlobalTempDir();
1213
+ if (!paths.includes(globalTempDir)) {
1214
+ paths.push(globalTempDir);
1215
+ }
1216
+ return paths;
1131
1217
  }
1132
1218
  getSandboxNetworkAccess() {
1133
1219
  return this.sandbox?.networkAccess ?? false;
@@ -1148,7 +1234,7 @@ export class Config {
1148
1234
  return this.targetDir;
1149
1235
  }
1150
1236
  getWorkspaceContext() {
1151
- return this.workspaceContext;
1237
+ return getWorkspaceContextOverride() ?? this.workspaceContext;
1152
1238
  }
1153
1239
  getAgentRegistry() {
1154
1240
  return this.agentRegistry;
@@ -1355,11 +1441,12 @@ export class Config {
1355
1441
  this.mcpServers = mcpServers;
1356
1442
  }
1357
1443
  getUserMemory() {
1358
- if (this.experimentalJitContext && this.contextManager) {
1444
+ if (this.experimentalJitContext && this.memoryContextManager) {
1359
1445
  return {
1360
- global: this.contextManager.getGlobalMemory(),
1361
- extension: this.contextManager.getExtensionMemory(),
1362
- project: this.contextManager.getEnvironmentMemory(),
1446
+ global: this.memoryContextManager.getGlobalMemory(),
1447
+ extension: this.memoryContextManager.getExtensionMemory(),
1448
+ project: this.memoryContextManager.getEnvironmentMemory(),
1449
+ userProjectMemory: this.memoryContextManager.getUserProjectMemory(),
1363
1450
  };
1364
1451
  }
1365
1452
  return this.userMemory;
@@ -1368,8 +1455,8 @@ export class Config {
1368
1455
  * Refreshes the MCP context, including memory, tools, and system instructions.
1369
1456
  */
1370
1457
  async refreshMcpContext() {
1371
- if (this.experimentalJitContext && this.contextManager) {
1372
- await this.contextManager.refresh();
1458
+ if (this.experimentalJitContext && this.memoryContextManager) {
1459
+ await this.memoryContextManager.refresh();
1373
1460
  }
1374
1461
  else {
1375
1462
  const { refreshServerHierarchicalMemory } = await import('../utils/memoryDiscovery.js');
@@ -1385,13 +1472,20 @@ export class Config {
1385
1472
  }
1386
1473
  /**
1387
1474
  * Returns memory for the system instruction.
1388
- * When JIT is enabled, only global memory (Tier 1) goes in the system
1389
- * instruction. Extension and project memory (Tier 2) are placed in the
1390
- * first user message instead, per the tiered context model.
1475
+ * When JIT is enabled, global memory and user project memory (Tier 1) go
1476
+ * in the system instruction. Extension and project memory (Tier 2) are
1477
+ * placed in the first user message instead, per the tiered context model.
1478
+ * User project memory is in Tier 1 so mid-session saves are reflected
1479
+ * via system instruction updates.
1391
1480
  */
1392
1481
  getSystemInstructionMemory() {
1393
- if (this.experimentalJitContext && this.contextManager) {
1394
- return this.contextManager.getGlobalMemory();
1482
+ if (this.experimentalJitContext && this.memoryContextManager) {
1483
+ const global = this.memoryContextManager.getGlobalMemory();
1484
+ const userProjectMemory = this.memoryContextManager.getUserProjectMemory();
1485
+ if (userProjectMemory?.trim()) {
1486
+ return { global, userProjectMemory };
1487
+ }
1488
+ return global;
1395
1489
  }
1396
1490
  return this.userMemory;
1397
1491
  }
@@ -1401,12 +1495,12 @@ export class Config {
1401
1495
  * disabled (Tier 2 memory is already in the system instruction).
1402
1496
  */
1403
1497
  getSessionMemory() {
1404
- if (!this.experimentalJitContext || !this.contextManager) {
1498
+ if (!this.experimentalJitContext || !this.memoryContextManager) {
1405
1499
  return '';
1406
1500
  }
1407
1501
  const sections = [];
1408
- const extension = this.contextManager.getExtensionMemory();
1409
- const project = this.contextManager.getEnvironmentMemory();
1502
+ const extension = this.memoryContextManager.getExtensionMemory();
1503
+ const project = this.memoryContextManager.getEnvironmentMemory();
1410
1504
  if (extension?.trim()) {
1411
1505
  sections.push(`<extension_context>\n${extension.trim()}\n</extension_context>`);
1412
1506
  }
@@ -1418,29 +1512,44 @@ export class Config {
1418
1512
  return `\n<loaded_context>\n${sections.join('\n')}\n</loaded_context>`;
1419
1513
  }
1420
1514
  getGlobalMemory() {
1421
- return this.contextManager?.getGlobalMemory() ?? '';
1515
+ return this.memoryContextManager?.getGlobalMemory() ?? '';
1422
1516
  }
1423
1517
  getEnvironmentMemory() {
1424
- return this.contextManager?.getEnvironmentMemory() ?? '';
1518
+ return this.memoryContextManager?.getEnvironmentMemory() ?? '';
1425
1519
  }
1426
- getContextManager() {
1427
- return this.contextManager;
1520
+ getMemoryContextManager() {
1521
+ return this.memoryContextManager;
1428
1522
  }
1429
1523
  isJitContextEnabled() {
1430
1524
  return this.experimentalJitContext;
1431
1525
  }
1526
+ isContextManagementEnabled() {
1527
+ return this.contextManagement.enabled;
1528
+ }
1529
+ getMemoryBoundaryMarkers() {
1530
+ return this.memoryBoundaryMarkers;
1531
+ }
1432
1532
  isMemoryManagerEnabled() {
1433
1533
  return this.experimentalMemoryManager;
1434
1534
  }
1535
+ getContextManagementConfig() {
1536
+ return this.contextManagement;
1537
+ }
1538
+ get agentHistoryProviderConfig() {
1539
+ return {
1540
+ maxTokens: this.contextManagement.historyWindow.maxTokens,
1541
+ retainedTokens: this.contextManagement.historyWindow.retainedTokens,
1542
+ normalMessageTokens: this.contextManagement.messageLimits.normalMaxTokens,
1543
+ maximumMessageTokens: this.contextManagement.messageLimits.retainedMaxTokens,
1544
+ normalizationHeadRatio: this.contextManagement.messageLimits.normalizationHeadRatio,
1545
+ };
1546
+ }
1435
1547
  isTopicUpdateNarrationEnabled() {
1436
1548
  return this.topicUpdateNarration;
1437
1549
  }
1438
1550
  isModelSteeringEnabled() {
1439
1551
  return this.modelSteering;
1440
1552
  }
1441
- getToolOutputMaskingEnabled() {
1442
- return this.toolOutputMasking.enabled;
1443
- }
1444
1553
  async getToolOutputMaskingConfig() {
1445
1554
  await this.ensureExperimentsLoaded();
1446
1555
  const remoteProtection = this.experiments?.flags[ExperimentFlags.MASKING_PROTECTION_THRESHOLD]
@@ -1456,19 +1565,21 @@ export class Config {
1456
1565
  ? parseInt(remotePrunable, 10)
1457
1566
  : undefined;
1458
1567
  return {
1459
- enabled: this.toolOutputMasking.enabled,
1460
- toolProtectionThreshold: parsedProtection !== undefined && !isNaN(parsedProtection)
1568
+ protectionThresholdTokens: parsedProtection !== undefined && !isNaN(parsedProtection)
1461
1569
  ? parsedProtection
1462
- : this.toolOutputMasking.toolProtectionThreshold,
1463
- minPrunableTokensThreshold: parsedPrunable !== undefined && !isNaN(parsedPrunable)
1570
+ : this.contextManagement.tools.outputMasking
1571
+ .protectionThresholdTokens,
1572
+ minPrunableThresholdTokens: parsedPrunable !== undefined && !isNaN(parsedPrunable)
1464
1573
  ? parsedPrunable
1465
- : this.toolOutputMasking.minPrunableTokensThreshold,
1466
- protectLatestTurn: remoteProtectLatest ?? this.toolOutputMasking.protectLatestTurn,
1574
+ : this.contextManagement.tools.outputMasking
1575
+ .minPrunableThresholdTokens,
1576
+ protectLatestTurn: remoteProtectLatest ??
1577
+ this.contextManagement.tools.outputMasking.protectLatestTurn,
1467
1578
  };
1468
1579
  }
1469
1580
  getGeminiMdFileCount() {
1470
- if (this.experimentalJitContext && this.contextManager) {
1471
- return this.contextManager.getLoadedPaths().size;
1581
+ if (this.experimentalJitContext && this.memoryContextManager) {
1582
+ return this.memoryContextManager.getLoadedPaths().size;
1472
1583
  }
1473
1584
  return this.geminiMdFileCount;
1474
1585
  }
@@ -1476,8 +1587,8 @@ export class Config {
1476
1587
  this.geminiMdFileCount = count;
1477
1588
  }
1478
1589
  getGeminiMdFilePaths() {
1479
- if (this.experimentalJitContext && this.contextManager) {
1480
- return Array.from(this.contextManager.getLoadedPaths());
1590
+ if (this.experimentalJitContext && this.memoryContextManager) {
1591
+ return Array.from(this.memoryContextManager.getLoadedPaths());
1481
1592
  }
1482
1593
  return this.geminiMdFilePaths;
1483
1594
  }
@@ -1517,7 +1628,9 @@ export class Config {
1517
1628
  debugLogger.debug(`Workspace policies loaded from: ${policyDir}`);
1518
1629
  }
1519
1630
  setApprovalMode(mode) {
1520
- if (!this.isTrustedFolder() && mode !== ApprovalMode.DEFAULT) {
1631
+ if (!this.isTrustedFolder() &&
1632
+ mode !== ApprovalMode.DEFAULT &&
1633
+ mode !== ApprovalMode.PLAN) {
1521
1634
  throw new Error('Cannot enable privileged approval modes in an untrusted folder.');
1522
1635
  }
1523
1636
  const currentMode = this.getApprovalMode();
@@ -1525,7 +1638,7 @@ export class Config {
1525
1638
  this.logCurrentModeDuration(currentMode);
1526
1639
  logApprovalModeSwitch(this, new ApprovalModeSwitchEvent(currentMode, mode));
1527
1640
  }
1528
- this.policyEngine.setApprovalMode(mode, this.sandboxPolicyManager?.getModeConfig(mode)?.approvedTools ?? []);
1641
+ this.policyEngine.setApprovalMode(mode);
1529
1642
  this.refreshSandboxManager();
1530
1643
  const isPlanModeTransition = currentMode !== mode &&
1531
1644
  (currentMode === ApprovalMode.PLAN || mode === ApprovalMode.PLAN);
@@ -1533,6 +1646,7 @@ export class Config {
1533
1646
  (currentMode === ApprovalMode.YOLO || mode === ApprovalMode.YOLO);
1534
1647
  if (isPlanModeTransition || isYoloModeTransition) {
1535
1648
  if (this._geminiClient?.isInitialized()) {
1649
+ this._geminiClient.clearCurrentSequenceModel();
1536
1650
  this._geminiClient.setTools().catch((err) => {
1537
1651
  debugLogger.error('Failed to update tools', err);
1538
1652
  });
@@ -1630,6 +1744,9 @@ export class Config {
1630
1744
  getModelRouterService() {
1631
1745
  return this.modelRouterService;
1632
1746
  }
1747
+ getModelConfigService() {
1748
+ return this.modelConfigService;
1749
+ }
1633
1750
  getModelAvailabilityService() {
1634
1751
  return this.modelAvailabilityService;
1635
1752
  }
@@ -1972,6 +2089,12 @@ export class Config {
1972
2089
  const authType = this.contentGeneratorConfig?.authType;
1973
2090
  return useGemini3_1 && authType === AuthType.USE_GEMINI;
1974
2091
  }
2092
+ isGemini31LaunchedForAuthType(authType) {
2093
+ return (authType === AuthType.USE_GEMINI ||
2094
+ authType === AuthType.USE_VERTEX_AI ||
2095
+ authType === AuthType.GATEWAY ||
2096
+ authType === AuthType.KEYCLOAK);
2097
+ }
1975
2098
  /**
1976
2099
  * Returns whether Gemini 3.1 has been launched.
1977
2100
  *
@@ -1981,14 +2104,25 @@ export class Config {
1981
2104
  */
1982
2105
  getGemini31LaunchedSync() {
1983
2106
  const authType = this.contentGeneratorConfig?.authType;
1984
- if (authType === AuthType.USE_GEMINI ||
1985
- authType === AuthType.USE_VERTEX_AI ||
1986
- authType === AuthType.KEYCLOAK) {
2107
+ if (this.isGemini31LaunchedForAuthType(authType)) {
1987
2108
  return true;
1988
2109
  }
1989
2110
  return (this.experiments?.flags[ExperimentFlags.GEMINI_3_1_PRO_LAUNCHED]
1990
2111
  ?.boolValue ?? false);
1991
2112
  }
2113
+ /**
2114
+ * Returns the configured default request timeout in milliseconds.
2115
+ */
2116
+ getRequestTimeoutMs() {
2117
+ const flag = this.experiments?.flags?.[ExperimentFlags.DEFAULT_REQUEST_TIMEOUT];
2118
+ if (flag?.intValue !== undefined) {
2119
+ const seconds = parseInt(flag.intValue, 10);
2120
+ if (Number.isInteger(seconds) && seconds >= 0) {
2121
+ return seconds * 1000; // Convert seconds to milliseconds
2122
+ }
2123
+ }
2124
+ return undefined;
2125
+ }
1992
2126
  /**
1993
2127
  * Returns whether Gemini 3.1 Flash Lite has been launched.
1994
2128
  *
@@ -1998,8 +2132,7 @@ export class Config {
1998
2132
  */
1999
2133
  getGemini31FlashLiteLaunchedSync() {
2000
2134
  const authType = this.contentGeneratorConfig?.authType;
2001
- if (authType === AuthType.USE_GEMINI ||
2002
- authType === AuthType.USE_VERTEX_AI) {
2135
+ if (this.isGemini31LaunchedForAuthType(authType)) {
2003
2136
  return true;
2004
2137
  }
2005
2138
  return (this.experiments?.flags[ExperimentFlags.GEMINI_3_1_FLASH_LITE_LAUNCHED]
@@ -2078,9 +2211,18 @@ export class Config {
2078
2211
  getUseAlternateBuffer() {
2079
2212
  return this.useAlternateBuffer;
2080
2213
  }
2214
+ getUseTerminalBuffer() {
2215
+ return this.useTerminalBuffer;
2216
+ }
2217
+ getUseRenderProcess() {
2218
+ return this.useRenderProcess;
2219
+ }
2081
2220
  getEnableInteractiveShell() {
2082
2221
  return this.enableInteractiveShell;
2083
2222
  }
2223
+ getShellBackgroundCompletionBehavior() {
2224
+ return this.shellBackgroundCompletionBehavior;
2225
+ }
2084
2226
  getSkipNextSpeakerCheck() {
2085
2227
  return this.skipNextSpeakerCheck;
2086
2228
  }
@@ -2122,6 +2264,13 @@ export class Config {
2122
2264
  4 *
2123
2265
  (tokenLimit(this.model) - uiTelemetryService.getLastPromptTokenCount()), this.truncateToolOutputThreshold);
2124
2266
  }
2267
+ getToolMaxOutputTokens() {
2268
+ return this.contextManagement.tools.distillation.maxOutputTokens;
2269
+ }
2270
+ getToolSummarizationThresholdTokens() {
2271
+ return this.contextManagement.tools.distillation
2272
+ .summarizationThresholdTokens;
2273
+ }
2125
2274
  getNextCompressionTruncationId() {
2126
2275
  return ++this.compressionTruncationCounter;
2127
2276
  }
@@ -2162,6 +2311,12 @@ export class Config {
2162
2311
  getGemmaModelRouterSettings() {
2163
2312
  return this.gemmaModelRouter;
2164
2313
  }
2314
+ getAgentSessionNoninteractiveEnabled() {
2315
+ return this.agentSessionNoninteractiveEnabled;
2316
+ }
2317
+ getAgentSessionInteractiveEnabled() {
2318
+ return this.agentSessionInteractiveEnabled;
2319
+ }
2165
2320
  /**
2166
2321
  * Get override settings for a specific agent.
2167
2322
  * Reads from agents.overrides.<agentName>.
@@ -2187,6 +2342,7 @@ export class Config {
2187
2342
  visualModel: customConfig.visualModel,
2188
2343
  allowedDomains: customConfig.allowedDomains,
2189
2344
  disableUserInput: customConfig.disableUserInput,
2345
+ maxActionsPerTask: customConfig.maxActionsPerTask ?? 100,
2190
2346
  confirmSensitiveActions: customConfig.confirmSensitiveActions,
2191
2347
  blockFileUploads: customConfig.blockFileUploads,
2192
2348
  },
@@ -2222,6 +2378,7 @@ export class Config {
2222
2378
  registerFn();
2223
2379
  }
2224
2380
  };
2381
+ maybeRegister(UpdateTopicTool, () => registry.registerTool(new UpdateTopicTool(this, this.messageBus)));
2225
2382
  maybeRegister(LSTool, () => registry.registerTool(new LSTool(this, this.messageBus)));
2226
2383
  maybeRegister(ReadFileTool, () => registry.registerTool(new ReadFileTool(this, this.messageBus)));
2227
2384
  if (this.getUseRipgrep()) {
@@ -2250,8 +2407,10 @@ export class Config {
2250
2407
  maybeRegister(WriteFileTool, () => registry.registerTool(new WriteFileTool(this, this.messageBus)));
2251
2408
  maybeRegister(WebFetchTool, () => registry.registerTool(new WebFetchTool(this, this.messageBus)));
2252
2409
  maybeRegister(ShellTool, () => registry.registerTool(new ShellTool(this, this.messageBus)));
2410
+ maybeRegister(ListBackgroundProcessesTool, () => registry.registerTool(new ListBackgroundProcessesTool(this, this.messageBus)));
2411
+ maybeRegister(ReadBackgroundOutputTool, () => registry.registerTool(new ReadBackgroundOutputTool(this, this.messageBus)));
2253
2412
  if (!this.isMemoryManagerEnabled()) {
2254
- maybeRegister(MemoryTool, () => registry.registerTool(new MemoryTool(this.messageBus)));
2413
+ maybeRegister(MemoryTool, () => registry.registerTool(new MemoryTool(this.messageBus, this.storage)));
2255
2414
  }
2256
2415
  maybeRegister(WebSearchTool, () => registry.registerTool(new WebSearchTool(this, this.messageBus)));
2257
2416
  maybeRegister(AskUserTool, () => registry.registerTool(new AskUserTool(this.messageBus)));