@google/gemini-cli-core 0.24.0-preview.3 → 0.25.0-preview.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (366) hide show
  1. package/README.md +1 -1
  2. package/dist/docs/assets/monitoring-dashboard-logs.png +0 -0
  3. package/dist/docs/assets/monitoring-dashboard-metrics.png +0 -0
  4. package/dist/docs/assets/monitoring-dashboard-overview.png +0 -0
  5. package/dist/docs/changelogs/index.md +22 -0
  6. package/dist/docs/changelogs/latest.md +137 -209
  7. package/dist/docs/changelogs/preview.md +116 -114
  8. package/dist/docs/changelogs/releases.md +273 -7
  9. package/dist/docs/cli/commands.md +3 -0
  10. package/dist/docs/cli/keyboard-shortcuts.md +34 -41
  11. package/dist/docs/cli/model-routing.md +1 -1
  12. package/dist/docs/cli/model.md +1 -1
  13. package/dist/docs/cli/settings.md +69 -53
  14. package/dist/docs/cli/skills.md +35 -3
  15. package/dist/docs/cli/telemetry.md +20 -0
  16. package/dist/docs/core/memport.md +2 -0
  17. package/dist/docs/core/policy-engine.md +3 -2
  18. package/dist/docs/extensions/index.md +57 -7
  19. package/dist/docs/get-started/configuration.md +39 -9
  20. package/dist/docs/get-started/gemini-3.md +2 -17
  21. package/dist/docs/hooks/best-practices.md +1 -1
  22. package/dist/docs/hooks/index.md +47 -11
  23. package/dist/docs/hooks/reference.md +19 -9
  24. package/dist/docs/hooks/writing-hooks.md +19 -1
  25. package/dist/docs/releases.md +1 -1
  26. package/dist/docs/tools/shell.md +1 -1
  27. package/dist/docs/troubleshooting.md +9 -3
  28. package/dist/src/agents/a2a-client-manager.d.ts +4 -0
  29. package/dist/src/agents/a2a-client-manager.js +22 -22
  30. package/dist/src/agents/a2a-client-manager.js.map +1 -1
  31. package/dist/src/agents/a2a-client-manager.test.js +44 -0
  32. package/dist/src/agents/a2a-client-manager.test.js.map +1 -1
  33. package/dist/src/agents/a2aUtils.d.ts +3 -2
  34. package/dist/src/agents/a2aUtils.js +28 -26
  35. package/dist/src/agents/a2aUtils.js.map +1 -1
  36. package/dist/src/agents/a2aUtils.test.js +9 -9
  37. package/dist/src/agents/a2aUtils.test.js.map +1 -1
  38. package/dist/src/agents/agentLoader.d.ts +68 -0
  39. package/dist/src/agents/{toml-loader.js → agentLoader.js} +86 -79
  40. package/dist/src/agents/agentLoader.js.map +1 -0
  41. package/dist/src/agents/agentLoader.test.js +307 -0
  42. package/dist/src/agents/agentLoader.test.js.map +1 -0
  43. package/dist/src/agents/{introspection-agent.d.ts → cli-help-agent.d.ts} +3 -2
  44. package/dist/src/agents/cli-help-agent.js +85 -0
  45. package/dist/src/agents/cli-help-agent.js.map +1 -0
  46. package/dist/src/agents/{introspection-agent.test.js → cli-help-agent.test.js} +25 -7
  47. package/dist/src/agents/cli-help-agent.test.js.map +1 -0
  48. package/dist/src/agents/codebase-investigator.js +10 -5
  49. package/dist/src/agents/codebase-investigator.js.map +1 -1
  50. package/dist/src/agents/delegate-to-agent-tool.js +17 -10
  51. package/dist/src/agents/delegate-to-agent-tool.js.map +1 -1
  52. package/dist/src/agents/delegate-to-agent-tool.test.js +60 -12
  53. package/dist/src/agents/delegate-to-agent-tool.test.js.map +1 -1
  54. package/dist/src/agents/local-executor.js +42 -8
  55. package/dist/src/agents/local-executor.js.map +1 -1
  56. package/dist/src/agents/local-executor.test.js +70 -11
  57. package/dist/src/agents/local-executor.test.js.map +1 -1
  58. package/dist/src/agents/local-invocation.test.js +8 -2
  59. package/dist/src/agents/local-invocation.test.js.map +1 -1
  60. package/dist/src/agents/registry.d.ts +12 -0
  61. package/dist/src/agents/registry.js +111 -42
  62. package/dist/src/agents/registry.js.map +1 -1
  63. package/dist/src/agents/registry.test.js +228 -15
  64. package/dist/src/agents/registry.test.js.map +1 -1
  65. package/dist/src/agents/remote-invocation.js +10 -13
  66. package/dist/src/agents/remote-invocation.js.map +1 -1
  67. package/dist/src/agents/remote-invocation.test.js +1 -1
  68. package/dist/src/agents/remote-invocation.test.js.map +1 -1
  69. package/dist/src/agents/subagent-tool-wrapper.test.js +8 -2
  70. package/dist/src/agents/subagent-tool-wrapper.test.js.map +1 -1
  71. package/dist/src/agents/types.d.ts +3 -11
  72. package/dist/src/agents/types.js.map +1 -1
  73. package/dist/src/availability/fallbackIntegration.test.js +58 -0
  74. package/dist/src/availability/fallbackIntegration.test.js.map +1 -0
  75. package/dist/src/code_assist/experiments/experiments.d.ts +1 -1
  76. package/dist/src/code_assist/experiments/experiments.js +21 -0
  77. package/dist/src/code_assist/experiments/experiments.js.map +1 -1
  78. package/dist/src/code_assist/experiments/experiments_local.test.d.ts +6 -0
  79. package/dist/src/code_assist/experiments/experiments_local.test.js +110 -0
  80. package/dist/src/code_assist/experiments/experiments_local.test.js.map +1 -0
  81. package/dist/src/code_assist/oauth-credential-storage.js +3 -4
  82. package/dist/src/code_assist/oauth-credential-storage.js.map +1 -1
  83. package/dist/src/code_assist/oauth2.js.map +1 -1
  84. package/dist/src/code_assist/oauth2.test.js +44 -19
  85. package/dist/src/code_assist/oauth2.test.js.map +1 -1
  86. package/dist/src/code_assist/telemetry.js +2 -1
  87. package/dist/src/code_assist/telemetry.js.map +1 -1
  88. package/dist/src/code_assist/telemetry.test.js +2 -1
  89. package/dist/src/code_assist/telemetry.test.js.map +1 -1
  90. package/dist/src/code_assist/types.d.ts +7 -0
  91. package/dist/src/code_assist/types.js +7 -0
  92. package/dist/src/code_assist/types.js.map +1 -1
  93. package/dist/src/commands/memory.d.ts +11 -0
  94. package/dist/src/commands/memory.js +80 -0
  95. package/dist/src/commands/memory.js.map +1 -0
  96. package/dist/src/commands/memory.test.d.ts +6 -0
  97. package/dist/src/commands/memory.test.js +155 -0
  98. package/dist/src/commands/memory.test.js.map +1 -0
  99. package/dist/src/config/config.d.ts +50 -7
  100. package/dist/src/config/config.js +113 -48
  101. package/dist/src/config/config.js.map +1 -1
  102. package/dist/src/config/config.test.js +34 -4
  103. package/dist/src/config/config.test.js.map +1 -1
  104. package/dist/src/config/models.d.ts +7 -0
  105. package/dist/src/config/models.js +11 -0
  106. package/dist/src/config/models.js.map +1 -1
  107. package/dist/src/config/models.test.js +17 -1
  108. package/dist/src/config/models.test.js.map +1 -1
  109. package/dist/src/config/storage.d.ts +1 -0
  110. package/dist/src/config/storage.js +5 -2
  111. package/dist/src/config/storage.js.map +1 -1
  112. package/dist/src/core/client.js +25 -8
  113. package/dist/src/core/client.js.map +1 -1
  114. package/dist/src/core/client.test.js +45 -31
  115. package/dist/src/core/client.test.js.map +1 -1
  116. package/dist/src/core/coreToolHookTriggers.d.ts +8 -4
  117. package/dist/src/core/coreToolHookTriggers.js +43 -5
  118. package/dist/src/core/coreToolHookTriggers.js.map +1 -1
  119. package/dist/src/core/coreToolScheduler.d.ts +1 -8
  120. package/dist/src/core/coreToolScheduler.js +58 -60
  121. package/dist/src/core/coreToolScheduler.js.map +1 -1
  122. package/dist/src/core/coreToolScheduler.test.js +215 -8
  123. package/dist/src/core/coreToolScheduler.test.js.map +1 -1
  124. package/dist/src/core/geminiChat.d.ts +26 -1
  125. package/dist/src/core/geminiChat.js +91 -8
  126. package/dist/src/core/geminiChat.js.map +1 -1
  127. package/dist/src/core/geminiChat.test.js +109 -0
  128. package/dist/src/core/geminiChat.test.js.map +1 -1
  129. package/dist/src/core/geminiChatHookTriggers.d.ts +8 -4
  130. package/dist/src/core/geminiChatHookTriggers.js +31 -9
  131. package/dist/src/core/geminiChatHookTriggers.js.map +1 -1
  132. package/dist/src/core/geminiChatHookTriggers.test.d.ts +6 -0
  133. package/dist/src/core/geminiChatHookTriggers.test.js +153 -0
  134. package/dist/src/core/geminiChatHookTriggers.test.js.map +1 -0
  135. package/dist/src/core/loggingContentGenerator.js +5 -0
  136. package/dist/src/core/loggingContentGenerator.js.map +1 -1
  137. package/dist/src/core/loggingContentGenerator.test.js +30 -0
  138. package/dist/src/core/loggingContentGenerator.test.js.map +1 -1
  139. package/dist/src/core/nonInteractiveToolExecutor.test.js +4 -2
  140. package/dist/src/core/nonInteractiveToolExecutor.test.js.map +1 -1
  141. package/dist/src/core/prompts.js +8 -8
  142. package/dist/src/core/prompts.js.map +1 -1
  143. package/dist/src/core/prompts.test.js +4 -2
  144. package/dist/src/core/prompts.test.js.map +1 -1
  145. package/dist/src/core/tokenLimits.js +6 -12
  146. package/dist/src/core/tokenLimits.js.map +1 -1
  147. package/dist/src/core/tokenLimits.test.js +8 -4
  148. package/dist/src/core/tokenLimits.test.js.map +1 -1
  149. package/dist/src/core/turn.d.ts +2 -0
  150. package/dist/src/core/turn.js +14 -0
  151. package/dist/src/core/turn.js.map +1 -1
  152. package/dist/src/generated/git-commit.d.ts +2 -2
  153. package/dist/src/generated/git-commit.js +2 -2
  154. package/dist/src/hooks/hookEventHandler.d.ts +3 -3
  155. package/dist/src/hooks/hookEventHandler.js +27 -8
  156. package/dist/src/hooks/hookEventHandler.js.map +1 -1
  157. package/dist/src/hooks/hookEventHandler.test.js +145 -0
  158. package/dist/src/hooks/hookEventHandler.test.js.map +1 -1
  159. package/dist/src/hooks/hookSystem.d.ts +12 -0
  160. package/dist/src/hooks/hookSystem.js +38 -0
  161. package/dist/src/hooks/hookSystem.js.map +1 -1
  162. package/dist/src/hooks/hookTranslator.js +2 -1
  163. package/dist/src/hooks/hookTranslator.js.map +1 -1
  164. package/dist/src/hooks/index.d.ts +0 -1
  165. package/dist/src/hooks/index.js +0 -2
  166. package/dist/src/hooks/index.js.map +1 -1
  167. package/dist/src/hooks/types.d.ts +21 -0
  168. package/dist/src/hooks/types.js +0 -15
  169. package/dist/src/hooks/types.js.map +1 -1
  170. package/dist/src/hooks/types.test.js +4 -28
  171. package/dist/src/hooks/types.test.js.map +1 -1
  172. package/dist/src/ide/detect-ide.d.ts +4 -0
  173. package/dist/src/ide/detect-ide.js +7 -2
  174. package/dist/src/ide/detect-ide.js.map +1 -1
  175. package/dist/src/ide/detect-ide.test.js +10 -0
  176. package/dist/src/ide/detect-ide.test.js.map +1 -1
  177. package/dist/src/ide/ide-installer.js +2 -2
  178. package/dist/src/ide/ide-installer.js.map +1 -1
  179. package/dist/src/ide/ide-installer.test.js +11 -2
  180. package/dist/src/ide/ide-installer.test.js.map +1 -1
  181. package/dist/src/index.d.ts +10 -1
  182. package/dist/src/index.js +12 -1
  183. package/dist/src/index.js.map +1 -1
  184. package/dist/src/mcp/token-storage/file-token-storage.js +2 -2
  185. package/dist/src/mcp/token-storage/file-token-storage.js.map +1 -1
  186. package/dist/src/policy/config.test.js +3 -2
  187. package/dist/src/policy/config.test.js.map +1 -1
  188. package/dist/src/policy/persistence.test.js +1 -1
  189. package/dist/src/policy/persistence.test.js.map +1 -1
  190. package/dist/src/policy/policies/agent.toml +1 -1
  191. package/dist/src/policy/policy-engine.js +80 -20
  192. package/dist/src/policy/policy-engine.js.map +1 -1
  193. package/dist/src/policy/policy-engine.test.js +17 -0
  194. package/dist/src/policy/policy-engine.test.js.map +1 -1
  195. package/dist/src/policy/policy-updater.test.js +3 -3
  196. package/dist/src/policy/policy-updater.test.js.map +1 -1
  197. package/dist/src/policy/shell-safety.test.js +371 -8
  198. package/dist/src/policy/shell-safety.test.js.map +1 -1
  199. package/dist/src/policy/types.d.ts +4 -0
  200. package/dist/src/policy/utils.js +4 -1
  201. package/dist/src/policy/utils.js.map +1 -1
  202. package/dist/src/policy/utils.test.js +34 -6
  203. package/dist/src/policy/utils.test.js.map +1 -1
  204. package/dist/src/routing/routingStrategy.d.ts +2 -0
  205. package/dist/src/routing/strategies/classifierStrategy.js +1 -1
  206. package/dist/src/routing/strategies/classifierStrategy.js.map +1 -1
  207. package/dist/src/routing/strategies/classifierStrategy.test.js +16 -0
  208. package/dist/src/routing/strategies/classifierStrategy.test.js.map +1 -1
  209. package/dist/src/routing/strategies/fallbackStrategy.d.ts +1 -1
  210. package/dist/src/routing/strategies/fallbackStrategy.js +2 -2
  211. package/dist/src/routing/strategies/fallbackStrategy.js.map +1 -1
  212. package/dist/src/routing/strategies/fallbackStrategy.test.js +13 -0
  213. package/dist/src/routing/strategies/fallbackStrategy.test.js.map +1 -1
  214. package/dist/src/routing/strategies/overrideStrategy.d.ts +1 -1
  215. package/dist/src/routing/strategies/overrideStrategy.js +5 -5
  216. package/dist/src/routing/strategies/overrideStrategy.js.map +1 -1
  217. package/dist/src/routing/strategies/overrideStrategy.test.js +14 -0
  218. package/dist/src/routing/strategies/overrideStrategy.test.js.map +1 -1
  219. package/dist/src/scheduler/tool-executor.js +2 -2
  220. package/dist/src/scheduler/tool-executor.js.map +1 -1
  221. package/dist/src/scheduler/tool-modifier.d.ts +23 -0
  222. package/dist/src/scheduler/tool-modifier.js +50 -0
  223. package/dist/src/scheduler/tool-modifier.js.map +1 -0
  224. package/dist/src/scheduler/tool-modifier.test.d.ts +6 -0
  225. package/dist/src/scheduler/tool-modifier.test.js +159 -0
  226. package/dist/src/scheduler/tool-modifier.test.js.map +1 -0
  227. package/dist/src/services/chatCompressionService.js +3 -10
  228. package/dist/src/services/chatCompressionService.js.map +1 -1
  229. package/dist/src/services/chatCompressionService.test.js +1 -0
  230. package/dist/src/services/chatCompressionService.test.js.map +1 -1
  231. package/dist/src/services/chatRecordingService.d.ts +7 -1
  232. package/dist/src/services/chatRecordingService.js +20 -2
  233. package/dist/src/services/chatRecordingService.js.map +1 -1
  234. package/dist/src/services/chatRecordingService.test.js +43 -0
  235. package/dist/src/services/chatRecordingService.test.js.map +1 -1
  236. package/dist/src/services/environmentSanitization.js +4 -3
  237. package/dist/src/services/environmentSanitization.js.map +1 -1
  238. package/dist/src/services/gitService.test.js +10 -2
  239. package/dist/src/services/gitService.test.js.map +1 -1
  240. package/dist/src/services/modelConfig.integration.test.js +2 -2
  241. package/dist/src/services/modelConfig.integration.test.js.map +1 -1
  242. package/dist/src/services/modelConfigService.d.ts +38 -4
  243. package/dist/src/services/modelConfigService.js +135 -76
  244. package/dist/src/services/modelConfigService.js.map +1 -1
  245. package/dist/src/services/modelConfigService.test.js +116 -0
  246. package/dist/src/services/modelConfigService.test.js.map +1 -1
  247. package/dist/src/services/shellExecutionService.js +1 -1
  248. package/dist/src/services/shellExecutionService.js.map +1 -1
  249. package/dist/src/services/shellExecutionService.test.js +43 -2
  250. package/dist/src/services/shellExecutionService.test.js.map +1 -1
  251. package/dist/src/skills/skillLoader.d.ts +3 -0
  252. package/dist/src/skills/skillLoader.js +3 -3
  253. package/dist/src/skills/skillLoader.js.map +1 -1
  254. package/dist/src/skills/skillLoader.test.js +4 -2
  255. package/dist/src/skills/skillLoader.test.js.map +1 -1
  256. package/dist/src/skills/skillManager.d.ts +18 -0
  257. package/dist/src/skills/skillManager.js +43 -5
  258. package/dist/src/skills/skillManager.js.map +1 -1
  259. package/dist/src/skills/skillManager.test.js +83 -1
  260. package/dist/src/skills/skillManager.test.js.map +1 -1
  261. package/dist/src/telemetry/clearcut-logger/clearcut-logger.d.ts +9 -2
  262. package/dist/src/telemetry/clearcut-logger/clearcut-logger.js +60 -9
  263. package/dist/src/telemetry/clearcut-logger/clearcut-logger.js.map +1 -1
  264. package/dist/src/telemetry/clearcut-logger/clearcut-logger.test.js +105 -6
  265. package/dist/src/telemetry/clearcut-logger/clearcut-logger.test.js.map +1 -1
  266. package/dist/src/telemetry/clearcut-logger/event-metadata-key.d.ts +5 -1
  267. package/dist/src/telemetry/clearcut-logger/event-metadata-key.js +8 -0
  268. package/dist/src/telemetry/clearcut-logger/event-metadata-key.js.map +1 -1
  269. package/dist/src/telemetry/loggers.js +1 -1
  270. package/dist/src/telemetry/loggers.js.map +1 -1
  271. package/dist/src/telemetry/loggers.test.js +8 -0
  272. package/dist/src/telemetry/loggers.test.js.map +1 -1
  273. package/dist/src/telemetry/types.js +4 -2
  274. package/dist/src/telemetry/types.js.map +1 -1
  275. package/dist/src/tools/activate-skill.js +23 -10
  276. package/dist/src/tools/activate-skill.js.map +1 -1
  277. package/dist/src/tools/activate-skill.test.js +24 -6
  278. package/dist/src/tools/activate-skill.test.js.map +1 -1
  279. package/dist/src/tools/confirmation-policy.test.js +1 -0
  280. package/dist/src/tools/confirmation-policy.test.js.map +1 -1
  281. package/dist/src/tools/edit.js +12 -0
  282. package/dist/src/tools/edit.js.map +1 -1
  283. package/dist/src/tools/edit.test.js +34 -0
  284. package/dist/src/tools/edit.test.js.map +1 -1
  285. package/dist/src/tools/get-internal-docs.js +11 -18
  286. package/dist/src/tools/get-internal-docs.js.map +1 -1
  287. package/dist/src/tools/mcp-tool.d.ts +18 -3
  288. package/dist/src/tools/mcp-tool.js +1 -1
  289. package/dist/src/tools/mcp-tool.js.map +1 -1
  290. package/dist/src/tools/tool-error.d.ts +4 -0
  291. package/dist/src/tools/tool-error.js +4 -0
  292. package/dist/src/tools/tool-error.js.map +1 -1
  293. package/dist/src/tools/tools.d.ts +2 -0
  294. package/dist/src/tools/tools.js.map +1 -1
  295. package/dist/src/tools/write-file.js +4 -2
  296. package/dist/src/tools/write-file.js.map +1 -1
  297. package/dist/src/tools/write-file.test.js +45 -6
  298. package/dist/src/tools/write-file.test.js.map +1 -1
  299. package/dist/src/utils/apiConversionUtils.d.ts +12 -0
  300. package/dist/src/utils/apiConversionUtils.js +46 -0
  301. package/dist/src/utils/apiConversionUtils.js.map +1 -0
  302. package/dist/src/utils/apiConversionUtils.test.d.ts +6 -0
  303. package/dist/src/utils/apiConversionUtils.test.js +150 -0
  304. package/dist/src/utils/apiConversionUtils.test.js.map +1 -0
  305. package/dist/src/utils/editCorrector.d.ts +3 -3
  306. package/dist/src/utils/editCorrector.js +21 -5
  307. package/dist/src/utils/editCorrector.js.map +1 -1
  308. package/dist/src/utils/editCorrector.test.js +20 -20
  309. package/dist/src/utils/editCorrector.test.js.map +1 -1
  310. package/dist/src/utils/editor.d.ts +3 -2
  311. package/dist/src/utils/editor.js +26 -6
  312. package/dist/src/utils/editor.js.map +1 -1
  313. package/dist/src/utils/editor.test.js +27 -4
  314. package/dist/src/utils/editor.test.js.map +1 -1
  315. package/dist/src/utils/events.d.ts +23 -1
  316. package/dist/src/utils/events.js +14 -0
  317. package/dist/src/utils/events.js.map +1 -1
  318. package/dist/src/utils/fileDiffUtils.d.ts +18 -0
  319. package/dist/src/utils/fileDiffUtils.js +37 -0
  320. package/dist/src/utils/fileDiffUtils.js.map +1 -0
  321. package/dist/src/utils/fileDiffUtils.test.d.ts +6 -0
  322. package/dist/src/utils/fileDiffUtils.test.js +84 -0
  323. package/dist/src/utils/fileDiffUtils.test.js.map +1 -0
  324. package/dist/src/utils/gitIgnoreParser.js +9 -10
  325. package/dist/src/utils/gitIgnoreParser.js.map +1 -1
  326. package/dist/src/utils/installationManager.test.js +11 -3
  327. package/dist/src/utils/installationManager.test.js.map +1 -1
  328. package/dist/src/utils/memoryDiscovery.js +1 -2
  329. package/dist/src/utils/memoryDiscovery.js.map +1 -1
  330. package/dist/src/utils/memoryDiscovery.test.js +9 -0
  331. package/dist/src/utils/memoryDiscovery.test.js.map +1 -1
  332. package/dist/src/utils/paths.d.ts +10 -0
  333. package/dist/src/utils/paths.js +20 -1
  334. package/dist/src/utils/paths.js.map +1 -1
  335. package/dist/src/utils/retry.d.ts +1 -0
  336. package/dist/src/utils/retry.js +14 -2
  337. package/dist/src/utils/retry.js.map +1 -1
  338. package/dist/src/utils/retry.test.js +11 -11
  339. package/dist/src/utils/retry.test.js.map +1 -1
  340. package/dist/src/utils/userAccountManager.test.js +5 -5
  341. package/dist/src/utils/userAccountManager.test.js.map +1 -1
  342. package/dist/src/utils/workspaceContext.test.js +1 -1
  343. package/dist/src/utils/workspaceContext.test.js.map +1 -1
  344. package/dist/tsconfig.tsbuildinfo +1 -1
  345. package/package.json +4 -2
  346. package/dist/docs/cli/configuration.md +0 -780
  347. package/dist/docs/get-started/deployment.md +0 -143
  348. package/dist/google-gemini-cli-core-0.24.0-preview.2.tgz +0 -0
  349. package/dist/src/agents/introspection-agent.js +0 -72
  350. package/dist/src/agents/introspection-agent.js.map +0 -1
  351. package/dist/src/agents/introspection-agent.test.js.map +0 -1
  352. package/dist/src/agents/toml-loader.d.ts +0 -74
  353. package/dist/src/agents/toml-loader.js.map +0 -1
  354. package/dist/src/agents/toml-loader.test.js +0 -309
  355. package/dist/src/agents/toml-loader.test.js.map +0 -1
  356. package/dist/src/core/sessionHookTriggers.d.ts +0 -29
  357. package/dist/src/core/sessionHookTriggers.js +0 -75
  358. package/dist/src/core/sessionHookTriggers.js.map +0 -1
  359. package/dist/src/utils/shell-permissions.d.ts +0 -52
  360. package/dist/src/utils/shell-permissions.js +0 -188
  361. package/dist/src/utils/shell-permissions.js.map +0 -1
  362. package/dist/src/utils/shell-permissions.test.js +0 -369
  363. package/dist/src/utils/shell-permissions.test.js.map +0 -1
  364. /package/dist/src/agents/{introspection-agent.test.d.ts → agentLoader.test.d.ts} +0 -0
  365. /package/dist/src/agents/{toml-loader.test.d.ts → cli-help-agent.test.d.ts} +0 -0
  366. /package/dist/src/{utils/shell-permissions.test.d.ts → availability/fallbackIntegration.test.d.ts} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory.test.js","sourceRoot":"","sources":["../../../src/commands/memory.test.ts"],"names":[],"mappings":"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"}
@@ -21,9 +21,10 @@ import type { FallbackModelHandler } from '../fallback/types.js';
21
21
  import { ModelAvailabilityService } from '../availability/modelAvailabilityService.js';
22
22
  import { ModelRouterService } from '../routing/modelRouterService.js';
23
23
  import { OutputFormat } from '../output/types.js';
24
- import type { ModelConfigServiceConfig } from '../services/modelConfigService.js';
24
+ import type { ModelConfig, ModelConfigServiceConfig } from '../services/modelConfigService.js';
25
25
  import { ModelConfigService } from '../services/modelConfigService.js';
26
26
  import { ContextManager } from '../services/contextManager.js';
27
+ import type { GenerateContentParameters } from '@google/genai';
27
28
  export type { MCPOAuthConfig, AnyToolInvocation };
28
29
  import type { AnyToolInvocation } from '../tools/tools.js';
29
30
  import { WorkspaceContext } from '../utils/workspaceContext.js';
@@ -33,7 +34,7 @@ import { FileExclusions } from '../utils/ignorePatterns.js';
33
34
  import type { EventEmitter } from 'node:events';
34
35
  import { MessageBus } from '../confirmation-bus/message-bus.js';
35
36
  import { PolicyEngine } from '../policy/policy-engine.js';
36
- import type { PolicyEngineConfig } from '../policy/types.js';
37
+ import { ApprovalMode, type PolicyEngineConfig } from '../policy/types.js';
37
38
  import { HookSystem } from '../hooks/index.js';
38
39
  import type { UserTierId } from '../code_assist/types.js';
39
40
  import type { RetrieveUserQuotaResponse } from '../code_assist/types.js';
@@ -41,7 +42,7 @@ import type { GeminiCodeAssistSetting } from '../code_assist/types.js';
41
42
  import type { Experiments } from '../code_assist/experiments/experiments.js';
42
43
  import { AgentRegistry } from '../agents/registry.js';
43
44
  import { SkillManager, type SkillDefinition } from '../skills/skillManager.js';
44
- import { ApprovalMode } from '../policy/types.js';
45
+ import type { AgentDefinition } from '../agents/types.js';
45
46
  export interface AccessibilitySettings {
46
47
  disableLoadingPhrases?: boolean;
47
48
  screenReader?: boolean;
@@ -83,10 +84,24 @@ export interface ResolvedExtensionSetting {
83
84
  envVar: string;
84
85
  value: string;
85
86
  sensitive: boolean;
87
+ scope?: 'user' | 'workspace';
88
+ source?: string;
86
89
  }
87
- export interface IntrospectionAgentSettings {
90
+ export interface CliHelpAgentSettings {
88
91
  enabled?: boolean;
89
92
  }
93
+ export interface AgentRunConfig {
94
+ maxTimeMinutes?: number;
95
+ maxTurns?: number;
96
+ }
97
+ export interface AgentOverride {
98
+ modelConfig?: ModelConfig;
99
+ runConfig?: AgentRunConfig;
100
+ disabled?: boolean;
101
+ }
102
+ export interface AgentSettings {
103
+ overrides?: Record<string, AgentOverride>;
104
+ }
90
105
  /**
91
106
  * All information required in CLI to handle an extension. Defined in Core so
92
107
  * that the collection of loaded, active, and inactive extensions can be passed
@@ -109,6 +124,7 @@ export interface GeminiCLIExtension {
109
124
  settings?: ExtensionSetting[];
110
125
  resolvedSettings?: ResolvedExtensionSetting[];
111
126
  skills?: SkillDefinition[];
127
+ agents?: AgentDefinition[];
112
128
  }
113
129
  export interface ExtensionInstallMetadata {
114
130
  source: string;
@@ -232,7 +248,7 @@ export interface ConfigParameters {
232
248
  output?: OutputSettings;
233
249
  disableModelRouterForAuth?: AuthType[];
234
250
  codebaseInvestigatorSettings?: CodebaseInvestigatorSettings;
235
- introspectionAgentSettings?: IntrospectionAgentSettings;
251
+ cliHelpAgentSettings?: CliHelpAgentSettings;
236
252
  continueOnFailedApiCall?: boolean;
237
253
  retryFetchErrors?: boolean;
238
254
  enableShellOutputEfficiency?: boolean;
@@ -243,6 +259,7 @@ export interface ConfigParameters {
243
259
  disableYoloMode?: boolean;
244
260
  modelConfigServiceConfig?: ModelConfigServiceConfig;
245
261
  enableHooks?: boolean;
262
+ enableHooksUI?: boolean;
246
263
  experiments?: Experiments;
247
264
  hooks?: {
248
265
  [K in HookEventName]?: HookDefinition[];
@@ -258,11 +275,16 @@ export interface ConfigParameters {
258
275
  enableAgents?: boolean;
259
276
  skillsSupport?: boolean;
260
277
  disabledSkills?: string[];
278
+ adminSkillsEnabled?: boolean;
261
279
  experimentalJitContext?: boolean;
280
+ disableLLMCorrection?: boolean;
262
281
  onModelChange?: (model: string) => void;
263
282
  mcpEnabled?: boolean;
283
+ extensionsEnabled?: boolean;
284
+ agents?: AgentSettings;
264
285
  onReload?: () => Promise<{
265
286
  disabledSkills?: string[];
287
+ adminSkillsEnabled?: boolean;
266
288
  }>;
267
289
  }
268
290
  export declare class Config {
@@ -295,6 +317,7 @@ export declare class Config {
295
317
  private readonly toolCallCommand;
296
318
  private readonly mcpServerCommand;
297
319
  private readonly mcpEnabled;
320
+ private readonly extensionsEnabled;
298
321
  private mcpServers;
299
322
  private userMemory;
300
323
  private geminiMdFileCount;
@@ -357,7 +380,7 @@ export declare class Config {
357
380
  private readonly policyEngine;
358
381
  private readonly outputSettings;
359
382
  private readonly codebaseInvestigatorSettings;
360
- private readonly introspectionAgentSettings;
383
+ private readonly cliHelpAgentSettings;
361
384
  private readonly continueOnFailedApiCall;
362
385
  private readonly retryFetchErrors;
363
386
  private readonly enableShellOutputEfficiency;
@@ -367,6 +390,7 @@ export declare class Config {
367
390
  private readonly disableYoloMode;
368
391
  private pendingIncludeDirectories;
369
392
  private readonly enableHooks;
393
+ private readonly enableHooksUI;
370
394
  private readonly hooks;
371
395
  private readonly projectHooks;
372
396
  private readonly disabledHooks;
@@ -376,12 +400,16 @@ export declare class Config {
376
400
  private readonly onModelChange;
377
401
  private readonly onReload;
378
402
  private readonly enableAgents;
403
+ private readonly agents;
379
404
  private readonly skillsSupport;
380
405
  private disabledSkills;
406
+ private readonly adminSkillsEnabled;
381
407
  private readonly experimentalJitContext;
408
+ private readonly disableLLMCorrection;
382
409
  private contextManager?;
383
410
  private terminalBackground;
384
411
  private remoteAdminSettings;
412
+ private latestApiRequest;
385
413
  constructor(params: ConfigParameters);
386
414
  /**
387
415
  * Must only be called once, throws if called again.
@@ -399,6 +427,8 @@ export declare class Config {
399
427
  setSessionId(sessionId: string): void;
400
428
  setTerminalBackground(terminalBackground: string | undefined): void;
401
429
  getTerminalBackground(): string | undefined;
430
+ getLatestApiRequest(): GenerateContentParameters | undefined;
431
+ setLatestApiRequest(req: GenerateContentParameters): void;
402
432
  getRemoteAdminSettings(): GeminiCodeAssistSetting | undefined;
403
433
  setRemoteAdminSettings(settings: GeminiCodeAssistSetting): void;
404
434
  shouldLoadMemoryFromIncludeDirectories(): boolean;
@@ -453,6 +483,7 @@ export declare class Config {
453
483
  */
454
484
  getMcpServers(): Record<string, MCPServerConfig> | undefined;
455
485
  getMcpEnabled(): boolean;
486
+ getExtensionsEnabled(): boolean;
456
487
  getMcpClientManager(): McpClientManager | undefined;
457
488
  getAllowedMcpServers(): string[] | undefined;
458
489
  getBlockedMcpServers(): string[] | undefined;
@@ -517,8 +548,10 @@ export declare class Config {
517
548
  getExtensionLoader(): ExtensionLoader;
518
549
  getEnabledExtensions(): string[];
519
550
  getEnableExtensionReloading(): boolean;
551
+ getDisableLLMCorrection(): boolean;
520
552
  isAgentsEnabled(): boolean;
521
553
  getNoBrowser(): boolean;
554
+ getAgentsSettings(): AgentSettings;
522
555
  isBrowserLaunchSuppressed(): boolean;
523
556
  getSummarizeToolOutputConfig(): Record<string, SummarizeToolOutputSettings> | undefined;
524
557
  getIdeMode(): boolean;
@@ -573,9 +606,14 @@ export declare class Config {
573
606
  getMessageBus(): MessageBus;
574
607
  getPolicyEngine(): PolicyEngine;
575
608
  getEnableHooks(): boolean;
609
+ getEnableHooksUI(): boolean;
576
610
  getCodebaseInvestigatorSettings(): CodebaseInvestigatorSettings;
577
- getIntrospectionAgentSettings(): IntrospectionAgentSettings;
611
+ getCliHelpAgentSettings(): CliHelpAgentSettings;
578
612
  createToolRegistry(): Promise<ToolRegistry>;
613
+ /**
614
+ * Registers the DelegateToAgentTool if agents or related features are enabled.
615
+ */
616
+ private registerDelegateToAgentTool;
579
617
  /**
580
618
  * Get the hook system instance
581
619
  */
@@ -606,5 +644,10 @@ export declare class Config {
606
644
  * Set experiments configuration
607
645
  */
608
646
  setExperiments(experiments: Experiments): void;
647
+ private onAgentsRefreshed;
648
+ /**
649
+ * Disposes of resources and removes event listeners.
650
+ */
651
+ dispose(): Promise<void>;
609
652
  }
610
653
  export { DEFAULT_GEMINI_FLASH_MODEL };
@@ -27,7 +27,7 @@ import { BaseLlmClient } from '../core/baseLlmClient.js';
27
27
  import { FileDiscoveryService } from '../services/fileDiscoveryService.js';
28
28
  import { GitService } from '../services/gitService.js';
29
29
  import { initializeTelemetry, DEFAULT_TELEMETRY_TARGET, DEFAULT_OTLP_ENDPOINT, uiTelemetryService, } from '../telemetry/index.js';
30
- import { coreEvents } from '../utils/events.js';
30
+ import { coreEvents, CoreEvent } from '../utils/events.js';
31
31
  import { tokenLimit } from '../core/tokenLimits.js';
32
32
  import { DEFAULT_GEMINI_EMBEDDING_MODEL, DEFAULT_GEMINI_FLASH_MODEL, DEFAULT_GEMINI_MODEL_AUTO, DEFAULT_THINKING_MODE, isPreviewModel, PREVIEW_GEMINI_MODEL, PREVIEW_GEMINI_MODEL_AUTO, } from './models.js';
33
33
  import { shouldAttemptBrowserLaunch } from '../utils/browser.js';
@@ -47,6 +47,7 @@ import { Storage } from './storage.js';
47
47
  import { FileExclusions } from '../utils/ignorePatterns.js';
48
48
  import { MessageBus } from '../confirmation-bus/message-bus.js';
49
49
  import { PolicyEngine } from '../policy/policy-engine.js';
50
+ import { ApprovalMode } from '../policy/types.js';
50
51
  import { HookSystem } from '../hooks/index.js';
51
52
  import { getCodeAssistServer } from '../code_assist/codeAssist.js';
52
53
  import { AgentRegistry } from '../agents/registry.js';
@@ -58,7 +59,6 @@ import { ExperimentFlags } from '../code_assist/experiments/flagNames.js';
58
59
  import { debugLogger } from '../utils/debugLogger.js';
59
60
  import { SkillManager } from '../skills/skillManager.js';
60
61
  import { startupProfiler } from '../telemetry/startupProfiler.js';
61
- import { ApprovalMode } from '../policy/types.js';
62
62
  import { DEFAULT_FILE_FILTERING_OPTIONS, DEFAULT_MEMORY_FILE_FILTERING_OPTIONS, } from './constants.js';
63
63
  import { SimpleExtensionLoader, } from '../utils/extensionLoader.js';
64
64
  import { McpClientManager } from '../tools/mcp-client-manager.js';
@@ -168,6 +168,7 @@ export class Config {
168
168
  toolCallCommand;
169
169
  mcpServerCommand;
170
170
  mcpEnabled;
171
+ extensionsEnabled;
171
172
  mcpServers;
172
173
  userMemory;
173
174
  geminiMdFileCount;
@@ -230,7 +231,7 @@ export class Config {
230
231
  policyEngine;
231
232
  outputSettings;
232
233
  codebaseInvestigatorSettings;
233
- introspectionAgentSettings;
234
+ cliHelpAgentSettings;
234
235
  continueOnFailedApiCall;
235
236
  retryFetchErrors;
236
237
  enableShellOutputEfficiency;
@@ -240,6 +241,7 @@ export class Config {
240
241
  disableYoloMode;
241
242
  pendingIncludeDirectories;
242
243
  enableHooks;
244
+ enableHooksUI;
243
245
  hooks;
244
246
  projectHooks;
245
247
  disabledHooks;
@@ -249,12 +251,16 @@ export class Config {
249
251
  onModelChange;
250
252
  onReload;
251
253
  enableAgents;
254
+ agents;
252
255
  skillsSupport;
253
256
  disabledSkills;
257
+ adminSkillsEnabled;
254
258
  experimentalJitContext;
259
+ disableLLMCorrection;
255
260
  contextManager;
256
261
  terminalBackground = undefined;
257
262
  remoteAdminSettings;
263
+ latestApiRequest;
258
264
  constructor(params) {
259
265
  this.sessionId = params.sessionId;
260
266
  this.embeddingModel =
@@ -275,6 +281,7 @@ export class Config {
275
281
  this.mcpServerCommand = params.mcpServerCommand;
276
282
  this.mcpServers = params.mcpServers;
277
283
  this.mcpEnabled = params.mcpEnabled ?? true;
284
+ this.extensionsEnabled = params.extensionsEnabled ?? true;
278
285
  this.allowedMcpServers = params.allowedMcpServers ?? [];
279
286
  this.blockedMcpServers = params.blockedMcpServers ?? [];
280
287
  this.allowedEnvironmentVariables = params.allowedEnvironmentVariables ?? [];
@@ -313,8 +320,11 @@ export class Config {
313
320
  this.model = params.model;
314
321
  this._activeModel = params.model;
315
322
  this.enableAgents = params.enableAgents ?? false;
323
+ this.agents = params.agents ?? {};
324
+ this.disableLLMCorrection = params.disableLLMCorrection ?? false;
316
325
  this.skillsSupport = params.skillsSupport ?? false;
317
326
  this.disabledSkills = params.disabledSkills ?? [];
327
+ this.adminSkillsEnabled = params.adminSkillsEnabled ?? true;
318
328
  this.modelAvailabilityService = new ModelAvailabilityService();
319
329
  this.previewFeatures = params.previewFeatures ?? undefined;
320
330
  this.experimentalJitContext = params.experimentalJitContext ?? false;
@@ -359,6 +369,7 @@ export class Config {
359
369
  this.useWriteTodos = isPreviewModel(this.model)
360
370
  ? false
361
371
  : (params.useWriteTodos ?? true);
372
+ this.enableHooksUI = params.enableHooksUI ?? true;
362
373
  this.enableHooks = params.enableHooks ?? false;
363
374
  this.disabledHooks =
364
375
  (params.hooks && 'disabled' in params.hooks
@@ -372,8 +383,8 @@ export class Config {
372
383
  DEFAULT_THINKING_MODE,
373
384
  model: params.codebaseInvestigatorSettings?.model,
374
385
  };
375
- this.introspectionAgentSettings = {
376
- enabled: params.introspectionAgentSettings?.enabled ?? false,
386
+ this.cliHelpAgentSettings = {
387
+ enabled: params.cliHelpAgentSettings?.enabled ?? true,
377
388
  };
378
389
  this.continueOnFailedApiCall = params.continueOnFailedApiCall ?? true;
379
390
  this.enableShellOutputEfficiency =
@@ -464,6 +475,7 @@ export class Config {
464
475
  this.resourceRegistry = new ResourceRegistry();
465
476
  this.agentRegistry = new AgentRegistry(this);
466
477
  await this.agentRegistry.initialize();
478
+ coreEvents.on(CoreEvent.AgentsRefreshed, this.onAgentsRefreshed);
467
479
  this.toolRegistry = await this.createToolRegistry();
468
480
  discoverToolsHandle?.end();
469
481
  this.mcpClientManager = new McpClientManager(this.toolRegistry, this, this.eventEmitter);
@@ -473,13 +485,16 @@ export class Config {
473
485
  await this.getExtensionLoader().start(this),
474
486
  ]);
475
487
  initMcpHandle?.end();
476
- // Discover skills if enabled
477
488
  if (this.skillsSupport) {
478
- await this.getSkillManager().discoverSkills(this.storage, this.getExtensions());
479
- this.getSkillManager().setDisabledSkills(this.disabledSkills);
480
- // Re-register ActivateSkillTool to update its schema with the discovered enabled skill enums
481
- if (this.getSkillManager().getSkills().length > 0) {
482
- this.getToolRegistry().registerTool(new ActivateSkillTool(this, this.messageBus));
489
+ this.getSkillManager().setAdminSettings(this.adminSkillsEnabled);
490
+ if (this.adminSkillsEnabled) {
491
+ await this.getSkillManager().discoverSkills(this.storage, this.getExtensions());
492
+ this.getSkillManager().setDisabledSkills(this.disabledSkills);
493
+ // Re-register ActivateSkillTool to update its schema with the discovered enabled skill enums
494
+ if (this.getSkillManager().getSkills().length > 0) {
495
+ this.getToolRegistry().unregisterTool(ActivateSkillTool.Name);
496
+ this.getToolRegistry().registerTool(new ActivateSkillTool(this, this.messageBus));
497
+ }
483
498
  }
484
499
  }
485
500
  // Initialize hook system if enabled
@@ -515,29 +530,23 @@ export class Config {
515
530
  // Initialize BaseLlmClient now that the ContentGenerator is available
516
531
  this.baseLlmClient = new BaseLlmClient(this.contentGenerator, this);
517
532
  const codeAssistServer = getCodeAssistServer(this);
518
- if (codeAssistServer) {
519
- if (codeAssistServer.projectId) {
520
- await this.refreshUserQuota();
521
- }
522
- this.experimentsPromise = getExperiments(codeAssistServer)
523
- .then((experiments) => {
524
- this.setExperiments(experiments);
525
- // If preview features have not been set and the user authenticated through Google, we enable preview based on remote config only if it's true
526
- if (this.getPreviewFeatures() === undefined) {
527
- const remotePreviewFeatures = experiments.flags[ExperimentFlags.ENABLE_PREVIEW]?.boolValue;
528
- if (remotePreviewFeatures === true) {
529
- this.setPreviewFeatures(remotePreviewFeatures);
530
- }
531
- }
532
- })
533
- .catch((e) => {
534
- debugLogger.error('Failed to fetch experiments', e);
535
- });
536
- }
537
- else {
538
- this.experiments = undefined;
539
- this.experimentsPromise = undefined;
533
+ if (codeAssistServer?.projectId) {
534
+ await this.refreshUserQuota();
540
535
  }
536
+ this.experimentsPromise = getExperiments(codeAssistServer)
537
+ .then((experiments) => {
538
+ this.setExperiments(experiments);
539
+ // If preview features have not been set and the user authenticated through Google, we enable preview based on remote config only if it's true
540
+ if (this.getPreviewFeatures() === undefined) {
541
+ const remotePreviewFeatures = experiments.flags[ExperimentFlags.ENABLE_PREVIEW]?.boolValue;
542
+ if (remotePreviewFeatures === true) {
543
+ this.setPreviewFeatures(remotePreviewFeatures);
544
+ }
545
+ }
546
+ })
547
+ .catch((e) => {
548
+ debugLogger.error('Failed to fetch experiments', e);
549
+ });
541
550
  const authType = this.contentGeneratorConfig.authType;
542
551
  if (authType === AuthType.USE_GEMINI ||
543
552
  authType === AuthType.USE_VERTEX_AI) {
@@ -553,10 +562,7 @@ export class Config {
553
562
  return this.experiments;
554
563
  }
555
564
  const codeAssistServer = getCodeAssistServer(this);
556
- if (codeAssistServer) {
557
- return getExperiments(codeAssistServer);
558
- }
559
- return undefined;
565
+ return getExperiments(codeAssistServer);
560
566
  }
561
567
  getUserTier() {
562
568
  return this.contentGenerator?.userTier;
@@ -588,6 +594,12 @@ export class Config {
588
594
  getTerminalBackground() {
589
595
  return this.terminalBackground;
590
596
  }
597
+ getLatestApiRequest() {
598
+ return this.latestApiRequest;
599
+ }
600
+ setLatestApiRequest(req) {
601
+ this.latestApiRequest = req;
602
+ }
591
603
  getRemoteAdminSettings() {
592
604
  return this.remoteAdminSettings;
593
605
  }
@@ -785,6 +797,9 @@ export class Config {
785
797
  getMcpEnabled() {
786
798
  return this.mcpEnabled;
787
799
  }
800
+ getExtensionsEnabled() {
801
+ return this.extensionsEnabled;
802
+ }
788
803
  getMcpClientManager() {
789
804
  return this.mcpClientManager;
790
805
  }
@@ -997,12 +1012,18 @@ export class Config {
997
1012
  getEnableExtensionReloading() {
998
1013
  return this.enableExtensionReloading;
999
1014
  }
1015
+ getDisableLLMCorrection() {
1016
+ return this.disableLLMCorrection;
1017
+ }
1000
1018
  isAgentsEnabled() {
1001
1019
  return this.enableAgents;
1002
1020
  }
1003
1021
  getNoBrowser() {
1004
1022
  return this.noBrowser;
1005
1023
  }
1024
+ getAgentsSettings() {
1025
+ return this.agents;
1026
+ }
1006
1027
  isBrowserLaunchSuppressed() {
1007
1028
  return this.getNoBrowser() || !shouldAttemptBrowserLaunch();
1008
1029
  }
@@ -1100,14 +1121,22 @@ export class Config {
1100
1121
  if (this.onReload) {
1101
1122
  const refreshed = await this.onReload();
1102
1123
  this.disabledSkills = refreshed.disabledSkills ?? [];
1124
+ this.getSkillManager().setAdminSettings(refreshed.adminSkillsEnabled ?? this.adminSkillsEnabled);
1103
1125
  }
1104
- await this.getSkillManager().discoverSkills(this.storage, this.getExtensions());
1105
- this.getSkillManager().setDisabledSkills(this.disabledSkills);
1106
- // Re-register ActivateSkillTool to update its schema with the newly discovered skills
1107
- if (this.getSkillManager().getSkills().length > 0) {
1108
- this.getToolRegistry().registerTool(new ActivateSkillTool(this, this.messageBus));
1126
+ if (this.getSkillManager().isAdminEnabled()) {
1127
+ await this.getSkillManager().discoverSkills(this.storage, this.getExtensions());
1128
+ this.getSkillManager().setDisabledSkills(this.disabledSkills);
1129
+ // Re-register ActivateSkillTool to update its schema with the newly discovered skills
1130
+ if (this.getSkillManager().getSkills().length > 0) {
1131
+ this.getToolRegistry().unregisterTool(ActivateSkillTool.Name);
1132
+ this.getToolRegistry().registerTool(new ActivateSkillTool(this, this.messageBus));
1133
+ }
1134
+ else {
1135
+ this.getToolRegistry().unregisterTool(ActivateSkillTool.Name);
1136
+ }
1109
1137
  }
1110
1138
  else {
1139
+ this.getSkillManager().clearSkills();
1111
1140
  this.getToolRegistry().unregisterTool(ActivateSkillTool.Name);
1112
1141
  }
1113
1142
  // Notify the client that system instructions might need updating
@@ -1195,11 +1224,14 @@ export class Config {
1195
1224
  getEnableHooks() {
1196
1225
  return this.enableHooks;
1197
1226
  }
1227
+ getEnableHooksUI() {
1228
+ return this.enableHooksUI;
1229
+ }
1198
1230
  getCodebaseInvestigatorSettings() {
1199
1231
  return this.codebaseInvestigatorSettings;
1200
1232
  }
1201
- getIntrospectionAgentSettings() {
1202
- return this.introspectionAgentSettings;
1233
+ getCliHelpAgentSettings() {
1234
+ return this.cliHelpAgentSettings;
1203
1235
  }
1204
1236
  async createToolRegistry() {
1205
1237
  const registry = new ToolRegistry(this, this.messageBus);
@@ -1259,8 +1291,18 @@ export class Config {
1259
1291
  }
1260
1292
  // Register Subagents as Tools
1261
1293
  // Register DelegateToAgentTool if agents are enabled
1294
+ this.registerDelegateToAgentTool(registry);
1295
+ await registry.discoverAllTools();
1296
+ registry.sortTools();
1297
+ return registry;
1298
+ }
1299
+ /**
1300
+ * Registers the DelegateToAgentTool if agents or related features are enabled.
1301
+ */
1302
+ registerDelegateToAgentTool(registry) {
1262
1303
  if (this.isAgentsEnabled() ||
1263
- this.getCodebaseInvestigatorSettings().enabled) {
1304
+ this.getCodebaseInvestigatorSettings().enabled ||
1305
+ this.getCliHelpAgentSettings().enabled) {
1264
1306
  // Check if the delegate tool itself is allowed (if allowedTools is set)
1265
1307
  const allowedTools = this.getAllowedTools();
1266
1308
  const isAllowed = !allowedTools || allowedTools.includes(DELEGATE_TO_AGENT_TOOL_NAME);
@@ -1269,9 +1311,6 @@ export class Config {
1269
1311
  registry.registerTool(delegateTool);
1270
1312
  }
1271
1313
  }
1272
- await registry.discoverAllTools();
1273
- registry.sortTools();
1274
- return registry;
1275
1314
  }
1276
1315
  /**
1277
1316
  * Get the hook system instance
@@ -1347,6 +1386,32 @@ export class Config {
1347
1386
  });
1348
1387
  debugLogger.debug('Experiments loaded', summaryString);
1349
1388
  }
1389
+ onAgentsRefreshed = async () => {
1390
+ if (this.toolRegistry) {
1391
+ this.registerDelegateToAgentTool(this.toolRegistry);
1392
+ }
1393
+ // Propagate updates to the active chat session
1394
+ const client = this.getGeminiClient();
1395
+ if (client?.isInitialized()) {
1396
+ await client.setTools();
1397
+ await client.updateSystemInstruction();
1398
+ }
1399
+ else {
1400
+ debugLogger.debug('[Config] GeminiClient not initialized; skipping live prompt/tool refresh.');
1401
+ }
1402
+ };
1403
+ /**
1404
+ * Disposes of resources and removes event listeners.
1405
+ */
1406
+ async dispose() {
1407
+ coreEvents.off(CoreEvent.AgentsRefreshed, this.onAgentsRefreshed);
1408
+ if (this.agentRegistry) {
1409
+ this.agentRegistry.dispose();
1410
+ }
1411
+ if (this.mcpClientManager) {
1412
+ await this.mcpClientManager.stop();
1413
+ }
1414
+ }
1350
1415
  }
1351
1416
  // Export model constants for use in CLI
1352
1417
  export { DEFAULT_GEMINI_FLASH_MODEL };