@machina.ai/cell-cli-core 1.22.5-rc1 → 1.25.0-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 (732) hide show
  1. package/dist/docs/AFTER_MERGE_PROMPT.md +26 -0
  2. package/dist/docs/CHANGES.md +124 -0
  3. package/dist/docs/api-proxy.md +27 -0
  4. package/dist/docs/architecture.md +80 -0
  5. package/dist/docs/assets/connected_devtools.png +0 -0
  6. package/dist/docs/assets/gemini-screenshot.png +0 -0
  7. package/dist/docs/assets/monitoring-dashboard-logs.png +0 -0
  8. package/dist/docs/assets/monitoring-dashboard-metrics.png +0 -0
  9. package/dist/docs/assets/monitoring-dashboard-overview.png +0 -0
  10. package/dist/docs/assets/release_patch.png +0 -0
  11. package/dist/docs/assets/theme-ansi-light.png +0 -0
  12. package/dist/docs/assets/theme-ansi.png +0 -0
  13. package/dist/docs/assets/theme-atom-one.png +0 -0
  14. package/dist/docs/assets/theme-ayu-light.png +0 -0
  15. package/dist/docs/assets/theme-ayu.png +0 -0
  16. package/dist/docs/assets/theme-custom.png +0 -0
  17. package/dist/docs/assets/theme-default-light.png +0 -0
  18. package/dist/docs/assets/theme-default.png +0 -0
  19. package/dist/docs/assets/theme-dracula.png +0 -0
  20. package/dist/docs/assets/theme-github-light.png +0 -0
  21. package/dist/docs/assets/theme-github.png +0 -0
  22. package/dist/docs/assets/theme-google-light.png +0 -0
  23. package/dist/docs/assets/theme-xcode-light.png +0 -0
  24. package/dist/docs/changelogs/index.md +612 -0
  25. package/dist/docs/changelogs/latest.md +153 -0
  26. package/dist/docs/changelogs/preview.md +131 -0
  27. package/dist/docs/changelogs/releases.md +1162 -0
  28. package/dist/docs/cli/authentication.md +3 -0
  29. package/dist/docs/cli/checkpointing.md +94 -0
  30. package/dist/docs/cli/commands.md +357 -0
  31. package/dist/docs/cli/custom-commands.md +315 -0
  32. package/dist/docs/cli/enterprise.md +564 -0
  33. package/dist/docs/cli/gemini-ignore.md +71 -0
  34. package/dist/docs/cli/gemini-md.md +109 -0
  35. package/dist/docs/cli/generation-settings.md +210 -0
  36. package/dist/docs/cli/headless.md +388 -0
  37. package/dist/docs/cli/index.md +63 -0
  38. package/dist/docs/cli/keyboard-shortcuts.md +136 -0
  39. package/dist/docs/cli/model-routing.md +37 -0
  40. package/dist/docs/cli/model.md +62 -0
  41. package/dist/docs/cli/sandbox.md +171 -0
  42. package/dist/docs/cli/session-management.md +158 -0
  43. package/dist/docs/cli/settings.md +148 -0
  44. package/dist/docs/cli/skills.md +188 -0
  45. package/dist/docs/cli/system-prompt.md +94 -0
  46. package/dist/docs/cli/telemetry.md +813 -0
  47. package/dist/docs/cli/themes.md +237 -0
  48. package/dist/docs/cli/token-caching.md +20 -0
  49. package/dist/docs/cli/trusted-folders.md +95 -0
  50. package/dist/docs/cli/tutorials/skills-getting-started.md +124 -0
  51. package/dist/docs/cli/tutorials.md +87 -0
  52. package/dist/docs/cli/uninstall.md +47 -0
  53. package/dist/docs/core/index.md +101 -0
  54. package/dist/docs/core/memport.md +246 -0
  55. package/dist/docs/core/policy-engine.md +268 -0
  56. package/dist/docs/core/tools-api.md +131 -0
  57. package/dist/docs/examples/proxy-script.md +83 -0
  58. package/dist/docs/extensions/extension-releasing.md +183 -0
  59. package/dist/docs/extensions/getting-started-extensions.md +244 -0
  60. package/dist/docs/extensions/index.md +343 -0
  61. package/dist/docs/faq.md +153 -0
  62. package/dist/docs/get-started/authentication.md +321 -0
  63. package/dist/docs/get-started/configuration-v1.md +890 -0
  64. package/dist/docs/get-started/configuration.md +1643 -0
  65. package/dist/docs/get-started/examples.md +218 -0
  66. package/dist/docs/get-started/gemini-3.md +101 -0
  67. package/dist/docs/get-started/index.md +71 -0
  68. package/dist/docs/get-started/installation.md +141 -0
  69. package/dist/docs/hooks/best-practices.md +856 -0
  70. package/dist/docs/hooks/index.md +723 -0
  71. package/dist/docs/hooks/reference.md +178 -0
  72. package/dist/docs/hooks/writing-hooks.md +1044 -0
  73. package/dist/docs/ide-integration/ide-companion-spec.md +267 -0
  74. package/dist/docs/ide-integration/index.md +201 -0
  75. package/dist/docs/index.md +147 -0
  76. package/dist/docs/integration-tests.md +211 -0
  77. package/dist/docs/issue-and-pr-automation.md +134 -0
  78. package/dist/docs/local-development.md +128 -0
  79. package/dist/docs/mcp_integration.md +160 -0
  80. package/dist/docs/mermaid/context.mmd +103 -0
  81. package/dist/docs/mermaid/render-path.mmd +64 -0
  82. package/dist/docs/npm.md +62 -0
  83. package/dist/docs/quota-and-pricing.md +158 -0
  84. package/dist/docs/release-confidence.md +164 -0
  85. package/dist/docs/releases.md +540 -0
  86. package/dist/docs/sidebar.json +301 -0
  87. package/dist/docs/tools/file-system.md +217 -0
  88. package/dist/docs/tools/index.md +95 -0
  89. package/dist/docs/tools/mcp-server.md +1045 -0
  90. package/dist/docs/tools/memory.md +54 -0
  91. package/dist/docs/tools/shell.md +260 -0
  92. package/dist/docs/tools/todos.md +56 -0
  93. package/dist/docs/tools/web-fetch.md +59 -0
  94. package/dist/docs/tools/web-search.md +42 -0
  95. package/dist/docs/tos-privacy.md +96 -0
  96. package/dist/docs/troubleshooting.md +162 -0
  97. package/dist/package.json +7 -4
  98. package/dist/src/agents/a2a-client-manager.d.ts +82 -0
  99. package/dist/src/agents/a2a-client-manager.js +295 -0
  100. package/dist/src/agents/a2a-client-manager.js.map +1 -0
  101. package/dist/src/agents/a2a-client-manager.test.js +281 -0
  102. package/dist/src/agents/a2a-client-manager.test.js.map +1 -0
  103. package/dist/src/agents/a2aUtils.d.ts +29 -0
  104. package/dist/src/agents/a2aUtils.js +113 -0
  105. package/dist/src/agents/a2aUtils.js.map +1 -0
  106. package/dist/src/agents/a2aUtils.test.js +147 -0
  107. package/dist/src/agents/a2aUtils.test.js.map +1 -0
  108. package/dist/src/agents/agentLoader.d.ts +68 -0
  109. package/dist/src/agents/agentLoader.js +255 -0
  110. package/dist/src/agents/agentLoader.js.map +1 -0
  111. package/dist/src/agents/agentLoader.test.js +307 -0
  112. package/dist/src/agents/agentLoader.test.js.map +1 -0
  113. package/dist/src/agents/cli-help-agent.d.ts +24 -0
  114. package/dist/src/agents/cli-help-agent.js +85 -0
  115. package/dist/src/agents/cli-help-agent.js.map +1 -0
  116. package/dist/src/agents/cli-help-agent.test.js +65 -0
  117. package/dist/src/agents/cli-help-agent.test.js.map +1 -0
  118. package/dist/src/agents/codebase-investigator.d.ts +2 -2
  119. package/dist/src/agents/codebase-investigator.js +14 -8
  120. package/dist/src/agents/codebase-investigator.js.map +1 -1
  121. package/dist/src/agents/delegate-to-agent-tool.d.ts +2 -2
  122. package/dist/src/agents/delegate-to-agent-tool.js +25 -14
  123. package/dist/src/agents/delegate-to-agent-tool.js.map +1 -1
  124. package/dist/src/agents/delegate-to-agent-tool.test.js +101 -21
  125. package/dist/src/agents/delegate-to-agent-tool.test.js.map +1 -1
  126. package/dist/src/agents/{executor.d.ts → local-executor.d.ts} +5 -11
  127. package/dist/src/agents/{executor.js → local-executor.js} +123 -62
  128. package/dist/src/agents/local-executor.js.map +1 -0
  129. package/dist/src/agents/local-executor.test.d.ts +6 -0
  130. package/dist/src/agents/{executor.test.js → local-executor.test.js} +136 -58
  131. package/dist/src/agents/local-executor.test.js.map +1 -0
  132. package/dist/src/agents/{invocation.d.ts → local-invocation.d.ts} +6 -7
  133. package/dist/src/agents/{invocation.js → local-invocation.js} +9 -10
  134. package/dist/src/agents/local-invocation.js.map +1 -0
  135. package/dist/src/agents/local-invocation.test.d.ts +6 -0
  136. package/dist/src/agents/{invocation.test.js → local-invocation.test.js} +29 -20
  137. package/dist/src/agents/local-invocation.test.js.map +1 -0
  138. package/dist/src/agents/registry.d.ts +22 -1
  139. package/dist/src/agents/registry.js +192 -35
  140. package/dist/src/agents/registry.js.map +1 -1
  141. package/dist/src/agents/registry.test.js +407 -33
  142. package/dist/src/agents/registry.test.js.map +1 -1
  143. package/dist/src/agents/remote-invocation.d.ts +35 -0
  144. package/dist/src/agents/remote-invocation.js +126 -0
  145. package/dist/src/agents/remote-invocation.js.map +1 -0
  146. package/dist/src/agents/remote-invocation.test.d.ts +6 -0
  147. package/dist/src/agents/remote-invocation.test.js +201 -0
  148. package/dist/src/agents/remote-invocation.test.js.map +1 -0
  149. package/dist/src/agents/subagent-tool-wrapper.d.ts +2 -2
  150. package/dist/src/agents/subagent-tool-wrapper.js +11 -6
  151. package/dist/src/agents/subagent-tool-wrapper.js.map +1 -1
  152. package/dist/src/agents/subagent-tool-wrapper.test.js +33 -19
  153. package/dist/src/agents/subagent-tool-wrapper.test.js.map +1 -1
  154. package/dist/src/agents/types.d.ts +21 -15
  155. package/dist/src/agents/types.js.map +1 -1
  156. package/dist/src/availability/fallbackIntegration.test.d.ts +6 -0
  157. package/dist/src/availability/fallbackIntegration.test.js +58 -0
  158. package/dist/src/availability/fallbackIntegration.test.js.map +1 -0
  159. package/dist/src/availability/modelAvailabilityService.d.ts +2 -1
  160. package/dist/src/availability/policyHelpers.d.ts +4 -3
  161. package/dist/src/availability/policyHelpers.js +13 -22
  162. package/dist/src/availability/policyHelpers.js.map +1 -1
  163. package/dist/src/availability/policyHelpers.test.js +28 -18
  164. package/dist/src/availability/policyHelpers.test.js.map +1 -1
  165. package/dist/src/code_assist/experiments/experiments.d.ts +1 -1
  166. package/dist/src/code_assist/experiments/experiments.js +21 -0
  167. package/dist/src/code_assist/experiments/experiments.js.map +1 -1
  168. package/dist/src/code_assist/experiments/experiments_local.test.d.ts +6 -0
  169. package/dist/src/code_assist/experiments/experiments_local.test.js +110 -0
  170. package/dist/src/code_assist/experiments/experiments_local.test.js.map +1 -0
  171. package/dist/src/code_assist/oauth-credential-storage.js +3 -4
  172. package/dist/src/code_assist/oauth-credential-storage.js.map +1 -1
  173. package/dist/src/code_assist/oauth2.js +32 -2
  174. package/dist/src/code_assist/oauth2.js.map +1 -1
  175. package/dist/src/code_assist/oauth2.test.js +111 -16
  176. package/dist/src/code_assist/oauth2.test.js.map +1 -1
  177. package/dist/src/code_assist/server.d.ts +9 -1
  178. package/dist/src/code_assist/server.js +74 -11
  179. package/dist/src/code_assist/server.js.map +1 -1
  180. package/dist/src/code_assist/server.test.js +199 -27
  181. package/dist/src/code_assist/server.test.js.map +1 -1
  182. package/dist/src/code_assist/setup.js +6 -4
  183. package/dist/src/code_assist/setup.js.map +1 -1
  184. package/dist/src/code_assist/setup.test.js +63 -0
  185. package/dist/src/code_assist/setup.test.js.map +1 -1
  186. package/dist/src/code_assist/telemetry.d.ts +14 -0
  187. package/dist/src/code_assist/telemetry.js +157 -0
  188. package/dist/src/code_assist/telemetry.js.map +1 -0
  189. package/dist/src/code_assist/telemetry.test.d.ts +6 -0
  190. package/dist/src/code_assist/telemetry.test.js +301 -0
  191. package/dist/src/code_assist/telemetry.test.js.map +1 -0
  192. package/dist/src/code_assist/types.d.ts +77 -1
  193. package/dist/src/code_assist/types.js +28 -0
  194. package/dist/src/code_assist/types.js.map +1 -1
  195. package/dist/src/commands/memory.d.ts +11 -0
  196. package/dist/src/commands/memory.js +80 -0
  197. package/dist/src/commands/memory.js.map +1 -0
  198. package/dist/src/commands/memory.test.d.ts +6 -0
  199. package/dist/src/commands/memory.test.js +155 -0
  200. package/dist/src/commands/memory.test.js.map +1 -0
  201. package/dist/src/config/config.d.ts +120 -26
  202. package/dist/src/config/config.js +241 -120
  203. package/dist/src/config/config.js.map +1 -1
  204. package/dist/src/config/config.test.js +215 -43
  205. package/dist/src/config/config.test.js.map +1 -1
  206. package/dist/src/config/flashFallback.test.js +11 -35
  207. package/dist/src/config/flashFallback.test.js.map +1 -1
  208. package/dist/src/config/models.d.ts +8 -9
  209. package/dist/src/config/models.js +18 -15
  210. package/dist/src/config/models.js.map +1 -1
  211. package/dist/src/config/models.test.js +52 -16
  212. package/dist/src/config/models.test.js.map +1 -1
  213. package/dist/src/config/storage.d.ts +5 -0
  214. package/dist/src/config/storage.js +17 -2
  215. package/dist/src/config/storage.js.map +1 -1
  216. package/dist/src/config/storage.test.js +16 -0
  217. package/dist/src/config/storage.test.js.map +1 -1
  218. package/dist/src/confirmation-bus/message-bus.js +2 -1
  219. package/dist/src/confirmation-bus/message-bus.js.map +1 -1
  220. package/dist/src/core/baseLlmClient.js +44 -43
  221. package/dist/src/core/baseLlmClient.js.map +1 -1
  222. package/dist/src/core/baseLlmClient.test.js +12 -19
  223. package/dist/src/core/baseLlmClient.test.js.map +1 -1
  224. package/dist/src/core/client.d.ts +7 -1
  225. package/dist/src/core/client.js +245 -114
  226. package/dist/src/core/client.js.map +1 -1
  227. package/dist/src/core/client.test.js +277 -74
  228. package/dist/src/core/client.test.js.map +1 -1
  229. package/dist/src/core/clientHookTriggers.js +2 -2
  230. package/dist/src/core/clientHookTriggers.js.map +1 -1
  231. package/dist/src/core/contentGenerator.js +3 -3
  232. package/dist/src/core/contentGenerator.js.map +1 -1
  233. package/dist/src/core/contentGenerator.test.js +1 -7
  234. package/dist/src/core/contentGenerator.test.js.map +1 -1
  235. package/dist/src/core/coreToolHookTriggers.d.ts +9 -5
  236. package/dist/src/core/coreToolHookTriggers.js +119 -21
  237. package/dist/src/core/coreToolHookTriggers.js.map +1 -1
  238. package/dist/src/core/coreToolHookTriggers.test.d.ts +6 -0
  239. package/dist/src/core/coreToolHookTriggers.test.js +191 -0
  240. package/dist/src/core/coreToolHookTriggers.test.js.map +1 -0
  241. package/dist/src/core/coreToolScheduler.d.ts +7 -93
  242. package/dist/src/core/coreToolScheduler.js +133 -369
  243. package/dist/src/core/coreToolScheduler.js.map +1 -1
  244. package/dist/src/core/coreToolScheduler.test.js +252 -394
  245. package/dist/src/core/coreToolScheduler.test.js.map +1 -1
  246. package/dist/src/core/geminiChat.d.ts +26 -1
  247. package/dist/src/core/geminiChat.js +112 -79
  248. package/dist/src/core/geminiChat.js.map +1 -1
  249. package/dist/src/core/geminiChat.test.js +125 -92
  250. package/dist/src/core/geminiChat.test.js.map +1 -1
  251. package/dist/src/core/geminiChatHookTriggers.d.ts +8 -4
  252. package/dist/src/core/geminiChatHookTriggers.js +34 -12
  253. package/dist/src/core/geminiChatHookTriggers.js.map +1 -1
  254. package/dist/src/core/geminiChatHookTriggers.test.d.ts +6 -0
  255. package/dist/src/core/geminiChatHookTriggers.test.js +153 -0
  256. package/dist/src/core/geminiChatHookTriggers.test.js.map +1 -0
  257. package/dist/src/core/geminiChat_network_retry.test.js +4 -6
  258. package/dist/src/core/geminiChat_network_retry.test.js.map +1 -1
  259. package/dist/src/core/loggingContentGenerator.js +19 -2
  260. package/dist/src/core/loggingContentGenerator.js.map +1 -1
  261. package/dist/src/core/loggingContentGenerator.test.js +30 -0
  262. package/dist/src/core/loggingContentGenerator.test.js.map +1 -1
  263. package/dist/src/core/nonInteractiveToolExecutor.test.js +4 -4
  264. package/dist/src/core/nonInteractiveToolExecutor.test.js.map +1 -1
  265. package/dist/src/core/prompts.js +37 -13
  266. package/dist/src/core/prompts.js.map +1 -1
  267. package/dist/src/core/prompts.test.js +47 -3
  268. package/dist/src/core/prompts.test.js.map +1 -1
  269. package/dist/src/core/tokenLimits.js +6 -12
  270. package/dist/src/core/tokenLimits.js.map +1 -1
  271. package/dist/src/core/tokenLimits.test.js +8 -4
  272. package/dist/src/core/tokenLimits.test.js.map +1 -1
  273. package/dist/src/core/turn.d.ts +21 -22
  274. package/dist/src/core/turn.js +31 -21
  275. package/dist/src/core/turn.js.map +1 -1
  276. package/dist/src/core/turn.test.js +79 -5
  277. package/dist/src/core/turn.test.js.map +1 -1
  278. package/dist/src/fallback/handler.js +1 -7
  279. package/dist/src/fallback/handler.js.map +1 -1
  280. package/dist/src/fallback/handler.test.js +10 -29
  281. package/dist/src/fallback/handler.test.js.map +1 -1
  282. package/dist/src/generated/git-commit.d.ts +3 -3
  283. package/dist/src/generated/git-commit.js +3 -3
  284. package/dist/src/hooks/hookAggregator.js +7 -0
  285. package/dist/src/hooks/hookAggregator.js.map +1 -1
  286. package/dist/src/hooks/hookEventHandler.d.ts +9 -5
  287. package/dist/src/hooks/hookEventHandler.js +61 -15
  288. package/dist/src/hooks/hookEventHandler.js.map +1 -1
  289. package/dist/src/hooks/hookEventHandler.test.js +223 -8
  290. package/dist/src/hooks/hookEventHandler.test.js.map +1 -1
  291. package/dist/src/hooks/hookPlanner.d.ts +1 -5
  292. package/dist/src/hooks/hookPlanner.js +2 -7
  293. package/dist/src/hooks/hookPlanner.js.map +1 -1
  294. package/dist/src/hooks/hookPlanner.test.js +62 -2
  295. package/dist/src/hooks/hookPlanner.test.js.map +1 -1
  296. package/dist/src/hooks/hookRegistry.d.ts +6 -11
  297. package/dist/src/hooks/hookRegistry.js +41 -14
  298. package/dist/src/hooks/hookRegistry.js.map +1 -1
  299. package/dist/src/hooks/hookRegistry.test.js +166 -2
  300. package/dist/src/hooks/hookRegistry.test.js.map +1 -1
  301. package/dist/src/hooks/hookRunner.d.ts +5 -3
  302. package/dist/src/hooks/hookRunner.js +57 -17
  303. package/dist/src/hooks/hookRunner.js.map +1 -1
  304. package/dist/src/hooks/hookRunner.test.js +172 -35
  305. package/dist/src/hooks/hookRunner.test.js.map +1 -1
  306. package/dist/src/hooks/hookSystem.d.ts +12 -0
  307. package/dist/src/hooks/hookSystem.js +39 -1
  308. package/dist/src/hooks/hookSystem.js.map +1 -1
  309. package/dist/src/hooks/hookTranslator.js +2 -1
  310. package/dist/src/hooks/hookTranslator.js.map +1 -1
  311. package/dist/src/hooks/index.d.ts +1 -2
  312. package/dist/src/hooks/index.js +1 -3
  313. package/dist/src/hooks/index.js.map +1 -1
  314. package/dist/src/hooks/trustedHooks.d.ts +28 -0
  315. package/dist/src/hooks/trustedHooks.js +90 -0
  316. package/dist/src/hooks/trustedHooks.js.map +1 -0
  317. package/dist/src/hooks/trustedHooks.test.d.ts +6 -0
  318. package/dist/src/hooks/trustedHooks.test.js +154 -0
  319. package/dist/src/hooks/trustedHooks.test.js.map +1 -0
  320. package/dist/src/hooks/types.d.ts +41 -9
  321. package/dist/src/hooks/types.js +31 -41
  322. package/dist/src/hooks/types.js.map +1 -1
  323. package/dist/src/hooks/types.test.js +9 -52
  324. package/dist/src/hooks/types.test.js.map +1 -1
  325. package/dist/src/ide/detect-ide.d.ts +4 -0
  326. package/dist/src/ide/detect-ide.js +7 -2
  327. package/dist/src/ide/detect-ide.js.map +1 -1
  328. package/dist/src/ide/detect-ide.test.js +10 -0
  329. package/dist/src/ide/detect-ide.test.js.map +1 -1
  330. package/dist/src/ide/ide-client.js +4 -1
  331. package/dist/src/ide/ide-client.js.map +1 -1
  332. package/dist/src/ide/ide-installer.js +2 -2
  333. package/dist/src/ide/ide-installer.js.map +1 -1
  334. package/dist/src/ide/ide-installer.test.js +11 -2
  335. package/dist/src/ide/ide-installer.test.js.map +1 -1
  336. package/dist/src/index.d.ts +16 -2
  337. package/dist/src/index.js +18 -3
  338. package/dist/src/index.js.map +1 -1
  339. package/dist/src/mcp/oauth-provider.js +7 -3
  340. package/dist/src/mcp/oauth-provider.js.map +1 -1
  341. package/dist/src/mcp/oauth-provider.test.js +4 -1
  342. package/dist/src/mcp/oauth-provider.test.js.map +1 -1
  343. package/dist/src/mcp/oauth-utils.d.ts +8 -1
  344. package/dist/src/mcp/oauth-utils.js +31 -2
  345. package/dist/src/mcp/oauth-utils.js.map +1 -1
  346. package/dist/src/mcp/oauth-utils.test.js +42 -0
  347. package/dist/src/mcp/oauth-utils.test.js.map +1 -1
  348. package/dist/src/mcp/token-storage/file-token-storage.js +2 -2
  349. package/dist/src/mcp/token-storage/file-token-storage.js.map +1 -1
  350. package/dist/src/mcp/token-storage/keychain-token-storage.js +1 -1
  351. package/dist/src/mcp/token-storage/keychain-token-storage.js.map +1 -1
  352. package/dist/src/policy/config.js +62 -23
  353. package/dist/src/policy/config.js.map +1 -1
  354. package/dist/src/policy/config.test.js +24 -2
  355. package/dist/src/policy/config.test.js.map +1 -1
  356. package/dist/src/policy/persistence.test.js +1 -1
  357. package/dist/src/policy/persistence.test.js.map +1 -1
  358. package/dist/src/policy/policies/agent.toml +1 -1
  359. package/dist/src/policy/policies/write.toml +5 -0
  360. package/dist/src/policy/policies/yolo.toml +1 -0
  361. package/dist/src/policy/policy-engine.d.ts +4 -0
  362. package/dist/src/policy/policy-engine.js +137 -53
  363. package/dist/src/policy/policy-engine.js.map +1 -1
  364. package/dist/src/policy/policy-engine.test.js +289 -1
  365. package/dist/src/policy/policy-engine.test.js.map +1 -1
  366. package/dist/src/policy/policy-updater.test.js +5 -5
  367. package/dist/src/policy/policy-updater.test.js.map +1 -1
  368. package/dist/src/policy/shell-safety.test.js +371 -8
  369. package/dist/src/policy/shell-safety.test.js.map +1 -1
  370. package/dist/src/policy/toml-loader.d.ts +0 -8
  371. package/dist/src/policy/toml-loader.js +13 -45
  372. package/dist/src/policy/toml-loader.js.map +1 -1
  373. package/dist/src/policy/toml-loader.test.js +13 -0
  374. package/dist/src/policy/toml-loader.test.js.map +1 -1
  375. package/dist/src/policy/types.d.ts +10 -0
  376. package/dist/src/policy/utils.d.ts +21 -0
  377. package/dist/src/policy/utils.js +45 -0
  378. package/dist/src/policy/utils.js.map +1 -0
  379. package/dist/src/policy/utils.test.d.ts +6 -0
  380. package/dist/src/policy/utils.test.js +92 -0
  381. package/dist/src/policy/utils.test.js.map +1 -0
  382. package/dist/src/routing/routingStrategy.d.ts +2 -0
  383. package/dist/src/routing/strategies/classifierStrategy.js +1 -1
  384. package/dist/src/routing/strategies/classifierStrategy.js.map +1 -1
  385. package/dist/src/routing/strategies/classifierStrategy.test.js +16 -0
  386. package/dist/src/routing/strategies/classifierStrategy.test.js.map +1 -1
  387. package/dist/src/routing/strategies/compositeStrategy.js +4 -2
  388. package/dist/src/routing/strategies/compositeStrategy.js.map +1 -1
  389. package/dist/src/routing/strategies/compositeStrategy.test.js +11 -10
  390. package/dist/src/routing/strategies/compositeStrategy.test.js.map +1 -1
  391. package/dist/src/routing/strategies/fallbackStrategy.d.ts +1 -1
  392. package/dist/src/routing/strategies/fallbackStrategy.js +2 -5
  393. package/dist/src/routing/strategies/fallbackStrategy.js.map +1 -1
  394. package/dist/src/routing/strategies/fallbackStrategy.test.js +13 -6
  395. package/dist/src/routing/strategies/fallbackStrategy.test.js.map +1 -1
  396. package/dist/src/routing/strategies/overrideStrategy.d.ts +1 -1
  397. package/dist/src/routing/strategies/overrideStrategy.js +6 -6
  398. package/dist/src/routing/strategies/overrideStrategy.js.map +1 -1
  399. package/dist/src/routing/strategies/overrideStrategy.test.js +14 -0
  400. package/dist/src/routing/strategies/overrideStrategy.test.js.map +1 -1
  401. package/dist/src/scheduler/tool-executor.d.ts +22 -0
  402. package/dist/src/scheduler/tool-executor.js +198 -0
  403. package/dist/src/scheduler/tool-executor.js.map +1 -0
  404. package/dist/src/scheduler/tool-executor.test.d.ts +6 -0
  405. package/dist/src/scheduler/tool-executor.test.js +231 -0
  406. package/dist/src/scheduler/tool-executor.test.js.map +1 -0
  407. package/dist/src/scheduler/tool-modifier.d.ts +23 -0
  408. package/dist/src/scheduler/tool-modifier.js +50 -0
  409. package/dist/src/scheduler/tool-modifier.js.map +1 -0
  410. package/dist/src/scheduler/tool-modifier.test.d.ts +6 -0
  411. package/dist/src/scheduler/tool-modifier.test.js +159 -0
  412. package/dist/src/scheduler/tool-modifier.test.js.map +1 -0
  413. package/dist/src/scheduler/types.d.ts +95 -0
  414. package/dist/src/scheduler/types.js +7 -0
  415. package/dist/src/scheduler/types.js.map +1 -0
  416. package/dist/src/services/chatCompressionService.js +3 -10
  417. package/dist/src/services/chatCompressionService.js.map +1 -1
  418. package/dist/src/services/chatCompressionService.test.js +1 -0
  419. package/dist/src/services/chatCompressionService.test.js.map +1 -1
  420. package/dist/src/services/chatRecordingService.d.ts +7 -1
  421. package/dist/src/services/chatRecordingService.js +20 -2
  422. package/dist/src/services/chatRecordingService.js.map +1 -1
  423. package/dist/src/services/chatRecordingService.test.js +43 -0
  424. package/dist/src/services/chatRecordingService.test.js.map +1 -1
  425. package/dist/src/services/contextManager.d.ts +5 -11
  426. package/dist/src/services/contextManager.js +20 -17
  427. package/dist/src/services/contextManager.js.map +1 -1
  428. package/dist/src/services/contextManager.test.js +40 -41
  429. package/dist/src/services/contextManager.test.js.map +1 -1
  430. package/dist/src/services/environmentSanitization.d.ts +15 -0
  431. package/dist/src/services/environmentSanitization.js +142 -0
  432. package/dist/src/services/environmentSanitization.js.map +1 -0
  433. package/dist/src/services/environmentSanitization.test.d.ts +6 -0
  434. package/dist/src/services/environmentSanitization.test.js +284 -0
  435. package/dist/src/services/environmentSanitization.test.js.map +1 -0
  436. package/dist/src/services/gitService.js +10 -1
  437. package/dist/src/services/gitService.js.map +1 -1
  438. package/dist/src/services/gitService.test.js +28 -2
  439. package/dist/src/services/gitService.test.js.map +1 -1
  440. package/dist/src/services/loopDetectionService.js +2 -1
  441. package/dist/src/services/loopDetectionService.js.map +1 -1
  442. package/dist/src/services/loopDetectionService.test.js +14 -8
  443. package/dist/src/services/loopDetectionService.test.js.map +1 -1
  444. package/dist/src/services/modelConfig.integration.test.js +3 -3
  445. package/dist/src/services/modelConfig.integration.test.js.map +1 -1
  446. package/dist/src/services/modelConfigService.d.ts +38 -4
  447. package/dist/src/services/modelConfigService.js +135 -76
  448. package/dist/src/services/modelConfigService.js.map +1 -1
  449. package/dist/src/services/modelConfigService.test.js +116 -0
  450. package/dist/src/services/modelConfigService.test.js.map +1 -1
  451. package/dist/src/services/shellExecutionService.d.ts +2 -0
  452. package/dist/src/services/shellExecutionService.js +6 -50
  453. package/dist/src/services/shellExecutionService.js.map +1 -1
  454. package/dist/src/services/shellExecutionService.test.js +68 -4
  455. package/dist/src/services/shellExecutionService.test.js.map +1 -1
  456. package/dist/src/skills/skillLoader.d.ts +31 -0
  457. package/dist/src/skills/skillLoader.js +77 -0
  458. package/dist/src/skills/skillLoader.js.map +1 -0
  459. package/dist/src/skills/skillLoader.test.d.ts +6 -0
  460. package/dist/src/skills/skillLoader.test.js +75 -0
  461. package/dist/src/skills/skillLoader.test.js.map +1 -0
  462. package/dist/src/skills/skillManager.d.ts +69 -0
  463. package/dist/src/skills/skillManager.js +127 -0
  464. package/dist/src/skills/skillManager.js.map +1 -0
  465. package/dist/src/skills/skillManager.test.d.ts +6 -0
  466. package/dist/src/skills/skillManager.test.js +210 -0
  467. package/dist/src/skills/skillManager.test.js.map +1 -0
  468. package/dist/src/telemetry/clearcut-logger/clearcut-logger.d.ts +18 -9
  469. package/dist/src/telemetry/clearcut-logger/clearcut-logger.js +234 -160
  470. package/dist/src/telemetry/clearcut-logger/clearcut-logger.js.map +1 -1
  471. package/dist/src/telemetry/clearcut-logger/clearcut-logger.test.js +162 -32
  472. package/dist/src/telemetry/clearcut-logger/clearcut-logger.test.js.map +1 -1
  473. package/dist/src/telemetry/clearcut-logger/event-metadata-key.d.ts +11 -3
  474. package/dist/src/telemetry/clearcut-logger/event-metadata-key.js +24 -5
  475. package/dist/src/telemetry/clearcut-logger/event-metadata-key.js.map +1 -1
  476. package/dist/src/telemetry/loggers.d.ts +3 -3
  477. package/dist/src/telemetry/loggers.js +6 -5
  478. package/dist/src/telemetry/loggers.js.map +1 -1
  479. package/dist/src/telemetry/loggers.test.circular.js +1 -0
  480. package/dist/src/telemetry/loggers.test.circular.js.map +1 -1
  481. package/dist/src/telemetry/loggers.test.js +51 -10
  482. package/dist/src/telemetry/loggers.test.js.map +1 -1
  483. package/dist/src/telemetry/sdk.js +5 -6
  484. package/dist/src/telemetry/sdk.js.map +1 -1
  485. package/dist/src/telemetry/types.d.ts +7 -7
  486. package/dist/src/telemetry/types.js +14 -12
  487. package/dist/src/telemetry/types.js.map +1 -1
  488. package/dist/src/test-utils/mock-message-bus.d.ts +1 -0
  489. package/dist/src/test-utils/mock-message-bus.js +29 -0
  490. package/dist/src/test-utils/mock-message-bus.js.map +1 -1
  491. package/dist/src/test-utils/mock-tool.d.ts +5 -3
  492. package/dist/src/test-utils/mock-tool.js +11 -10
  493. package/dist/src/test-utils/mock-tool.js.map +1 -1
  494. package/dist/src/tools/activate-skill.d.ts +27 -0
  495. package/dist/src/tools/activate-skill.js +133 -0
  496. package/dist/src/tools/activate-skill.js.map +1 -0
  497. package/dist/src/tools/activate-skill.test.d.ts +6 -0
  498. package/dist/src/tools/activate-skill.test.js +113 -0
  499. package/dist/src/tools/activate-skill.test.js.map +1 -0
  500. package/dist/src/tools/confirmation-policy.test.js +3 -12
  501. package/dist/src/tools/confirmation-policy.test.js.map +1 -1
  502. package/dist/src/tools/edit.d.ts +27 -5
  503. package/dist/src/tools/edit.js +455 -136
  504. package/dist/src/tools/edit.js.map +1 -1
  505. package/dist/src/tools/edit.test.js +292 -526
  506. package/dist/src/tools/edit.test.js.map +1 -1
  507. package/dist/src/tools/get-internal-docs.d.ts +27 -0
  508. package/dist/src/tools/get-internal-docs.js +122 -0
  509. package/dist/src/tools/get-internal-docs.js.map +1 -0
  510. package/dist/src/tools/get-internal-docs.test.d.ts +6 -0
  511. package/dist/src/tools/get-internal-docs.test.js +57 -0
  512. package/dist/src/tools/get-internal-docs.test.js.map +1 -0
  513. package/dist/src/tools/glob.d.ts +2 -2
  514. package/dist/src/tools/glob.js +1 -1
  515. package/dist/src/tools/glob.js.map +1 -1
  516. package/dist/src/tools/glob.test.js +2 -1
  517. package/dist/src/tools/glob.test.js.map +1 -1
  518. package/dist/src/tools/grep.d.ts +2 -2
  519. package/dist/src/tools/grep.js +1 -1
  520. package/dist/src/tools/grep.js.map +1 -1
  521. package/dist/src/tools/grep.test.js +5 -4
  522. package/dist/src/tools/grep.test.js.map +1 -1
  523. package/dist/src/tools/ls.d.ts +2 -2
  524. package/dist/src/tools/ls.js +2 -2
  525. package/dist/src/tools/ls.js.map +1 -1
  526. package/dist/src/tools/ls.test.js +2 -1
  527. package/dist/src/tools/ls.test.js.map +1 -1
  528. package/dist/src/tools/mcp-client-manager.js +14 -7
  529. package/dist/src/tools/mcp-client-manager.js.map +1 -1
  530. package/dist/src/tools/mcp-client-manager.test.js +28 -0
  531. package/dist/src/tools/mcp-client-manager.test.js.map +1 -1
  532. package/dist/src/tools/mcp-client.d.ts +5 -4
  533. package/dist/src/tools/mcp-client.js +10 -8
  534. package/dist/src/tools/mcp-client.js.map +1 -1
  535. package/dist/src/tools/mcp-client.test.js +47 -42
  536. package/dist/src/tools/mcp-client.test.js.map +1 -1
  537. package/dist/src/tools/mcp-tool.d.ts +20 -5
  538. package/dist/src/tools/mcp-tool.js +8 -8
  539. package/dist/src/tools/mcp-tool.js.map +1 -1
  540. package/dist/src/tools/mcp-tool.test.js +11 -6
  541. package/dist/src/tools/mcp-tool.test.js.map +1 -1
  542. package/dist/src/tools/memoryTool.d.ts +3 -3
  543. package/dist/src/tools/memoryTool.js +2 -4
  544. package/dist/src/tools/memoryTool.js.map +1 -1
  545. package/dist/src/tools/memoryTool.test.js +5 -2
  546. package/dist/src/tools/memoryTool.test.js.map +1 -1
  547. package/dist/src/tools/message-bus-integration.test.js +10 -37
  548. package/dist/src/tools/message-bus-integration.test.js.map +1 -1
  549. package/dist/src/tools/read-file.d.ts +2 -2
  550. package/dist/src/tools/read-file.js +1 -1
  551. package/dist/src/tools/read-file.js.map +1 -1
  552. package/dist/src/tools/read-file.test.js +3 -2
  553. package/dist/src/tools/read-file.test.js.map +1 -1
  554. package/dist/src/tools/read-many-files.d.ts +2 -2
  555. package/dist/src/tools/read-many-files.js +2 -3
  556. package/dist/src/tools/read-many-files.js.map +1 -1
  557. package/dist/src/tools/read-many-files.test.js +3 -2
  558. package/dist/src/tools/read-many-files.test.js.map +1 -1
  559. package/dist/src/tools/ripGrep.d.ts +3 -2
  560. package/dist/src/tools/ripGrep.js +18 -7
  561. package/dist/src/tools/ripGrep.js.map +1 -1
  562. package/dist/src/tools/ripGrep.test.js +60 -4
  563. package/dist/src/tools/ripGrep.test.js.map +1 -1
  564. package/dist/src/tools/shell.d.ts +3 -6
  565. package/dist/src/tools/shell.js +21 -49
  566. package/dist/src/tools/shell.js.map +1 -1
  567. package/dist/src/tools/shell.test.js +35 -59
  568. package/dist/src/tools/shell.test.js.map +1 -1
  569. package/dist/src/tools/tool-error.d.ts +6 -1
  570. package/dist/src/tools/tool-error.js +6 -0
  571. package/dist/src/tools/tool-error.js.map +1 -1
  572. package/dist/src/tools/tool-names.d.ts +15 -0
  573. package/dist/src/tools/tool-names.js +57 -0
  574. package/dist/src/tools/tool-names.js.map +1 -1
  575. package/dist/src/tools/tool-names.test.d.ts +6 -0
  576. package/dist/src/tools/tool-names.test.js +43 -0
  577. package/dist/src/tools/tool-names.test.js.map +1 -0
  578. package/dist/src/tools/tool-registry.d.ts +11 -7
  579. package/dist/src/tools/tool-registry.js +15 -10
  580. package/dist/src/tools/tool-registry.js.map +1 -1
  581. package/dist/src/tools/tool-registry.test.js +16 -11
  582. package/dist/src/tools/tool-registry.test.js.map +1 -1
  583. package/dist/src/tools/tools.d.ts +8 -6
  584. package/dist/src/tools/tools.js +16 -18
  585. package/dist/src/tools/tools.js.map +1 -1
  586. package/dist/src/tools/tools.test.js +3 -1
  587. package/dist/src/tools/tools.test.js.map +1 -1
  588. package/dist/src/tools/web-fetch.d.ts +2 -2
  589. package/dist/src/tools/web-fetch.js +4 -4
  590. package/dist/src/tools/web-fetch.js.map +1 -1
  591. package/dist/src/tools/web-fetch.test.js +17 -19
  592. package/dist/src/tools/web-fetch.test.js.map +1 -1
  593. package/dist/src/tools/web-search.d.ts +2 -2
  594. package/dist/src/tools/web-search.js +5 -5
  595. package/dist/src/tools/web-search.js.map +1 -1
  596. package/dist/src/tools/web-search.test.js +2 -1
  597. package/dist/src/tools/web-search.test.js.map +1 -1
  598. package/dist/src/tools/write-file.d.ts +2 -2
  599. package/dist/src/tools/write-file.js +9 -6
  600. package/dist/src/tools/write-file.js.map +1 -1
  601. package/dist/src/tools/write-file.test.js +49 -7
  602. package/dist/src/tools/write-file.test.js.map +1 -1
  603. package/dist/src/tools/write-todos.d.ts +2 -2
  604. package/dist/src/tools/write-todos.js +5 -4
  605. package/dist/src/tools/write-todos.js.map +1 -1
  606. package/dist/src/tools/write-todos.test.js +2 -1
  607. package/dist/src/tools/write-todos.test.js.map +1 -1
  608. package/dist/src/utils/apiConversionUtils.d.ts +12 -0
  609. package/dist/src/utils/apiConversionUtils.js +46 -0
  610. package/dist/src/utils/apiConversionUtils.js.map +1 -0
  611. package/dist/src/utils/apiConversionUtils.test.d.ts +6 -0
  612. package/dist/src/utils/apiConversionUtils.test.js +150 -0
  613. package/dist/src/utils/apiConversionUtils.test.js.map +1 -0
  614. package/dist/src/utils/checkpointUtils.d.ts +1 -1
  615. package/dist/src/utils/checkpointUtils.js +1 -1
  616. package/dist/src/utils/checkpointUtils.js.map +1 -1
  617. package/dist/src/utils/checkpointUtils.test.js +1 -1
  618. package/dist/src/utils/checkpointUtils.test.js.map +1 -1
  619. package/dist/src/utils/debugLogger.js +1 -0
  620. package/dist/src/utils/debugLogger.js.map +1 -1
  621. package/dist/src/utils/editCorrector.d.ts +3 -3
  622. package/dist/src/utils/editCorrector.js +27 -10
  623. package/dist/src/utils/editCorrector.js.map +1 -1
  624. package/dist/src/utils/editCorrector.test.js +23 -23
  625. package/dist/src/utils/editCorrector.test.js.map +1 -1
  626. package/dist/src/utils/editor.d.ts +3 -2
  627. package/dist/src/utils/editor.js +26 -6
  628. package/dist/src/utils/editor.js.map +1 -1
  629. package/dist/src/utils/editor.test.js +27 -4
  630. package/dist/src/utils/editor.test.js.map +1 -1
  631. package/dist/src/utils/environmentContext.d.ts +1 -0
  632. package/dist/src/utils/environmentContext.js +4 -0
  633. package/dist/src/utils/environmentContext.js.map +1 -1
  634. package/dist/src/utils/environmentContext.test.js +2 -0
  635. package/dist/src/utils/environmentContext.test.js.map +1 -1
  636. package/dist/src/utils/errorReporting.d.ts +1 -1
  637. package/dist/src/utils/errorReporting.js +13 -12
  638. package/dist/src/utils/errorReporting.js.map +1 -1
  639. package/dist/src/utils/errorReporting.test.js +17 -14
  640. package/dist/src/utils/errorReporting.test.js.map +1 -1
  641. package/dist/src/utils/events.d.ts +71 -19
  642. package/dist/src/utils/events.js +35 -9
  643. package/dist/src/utils/events.js.map +1 -1
  644. package/dist/src/utils/events.test.js +25 -0
  645. package/dist/src/utils/events.test.js.map +1 -1
  646. package/dist/src/utils/fileDiffUtils.d.ts +18 -0
  647. package/dist/src/utils/fileDiffUtils.js +37 -0
  648. package/dist/src/utils/fileDiffUtils.js.map +1 -0
  649. package/dist/src/utils/fileDiffUtils.test.d.ts +6 -0
  650. package/dist/src/utils/fileDiffUtils.test.js +84 -0
  651. package/dist/src/utils/fileDiffUtils.test.js.map +1 -0
  652. package/dist/src/utils/fileUtils.d.ts +4 -0
  653. package/dist/src/utils/fileUtils.js +53 -0
  654. package/dist/src/utils/fileUtils.js.map +1 -1
  655. package/dist/src/utils/fileUtils.test.js +112 -1
  656. package/dist/src/utils/fileUtils.test.js.map +1 -1
  657. package/dist/src/utils/geminiIgnoreParser.d.ts +11 -0
  658. package/dist/src/utils/geminiIgnoreParser.js +20 -0
  659. package/dist/src/utils/geminiIgnoreParser.js.map +1 -1
  660. package/dist/src/utils/geminiIgnoreParser.test.js +48 -0
  661. package/dist/src/utils/geminiIgnoreParser.test.js.map +1 -1
  662. package/dist/src/utils/generateContentResponseUtilities.d.ts +3 -1
  663. package/dist/src/utils/generateContentResponseUtilities.js +106 -0
  664. package/dist/src/utils/generateContentResponseUtilities.js.map +1 -1
  665. package/dist/src/utils/generateContentResponseUtilities.test.js +279 -2
  666. package/dist/src/utils/generateContentResponseUtilities.test.js.map +1 -1
  667. package/dist/src/utils/getFolderStructure.js +7 -2
  668. package/dist/src/utils/getFolderStructure.js.map +1 -1
  669. package/dist/src/utils/gitIgnoreParser.js +9 -10
  670. package/dist/src/utils/gitIgnoreParser.js.map +1 -1
  671. package/dist/src/utils/installationManager.test.js +11 -3
  672. package/dist/src/utils/installationManager.test.js.map +1 -1
  673. package/dist/src/utils/memoryDiscovery.js +3 -4
  674. package/dist/src/utils/memoryDiscovery.js.map +1 -1
  675. package/dist/src/utils/memoryDiscovery.test.js +12 -1
  676. package/dist/src/utils/memoryDiscovery.test.js.map +1 -1
  677. package/dist/src/utils/partUtils.js +1 -1
  678. package/dist/src/utils/partUtils.js.map +1 -1
  679. package/dist/src/utils/paths.d.ts +10 -0
  680. package/dist/src/utils/paths.js +20 -1
  681. package/dist/src/utils/paths.js.map +1 -1
  682. package/dist/src/utils/retry.d.ts +1 -0
  683. package/dist/src/utils/retry.js +17 -5
  684. package/dist/src/utils/retry.js.map +1 -1
  685. package/dist/src/utils/retry.test.js +11 -11
  686. package/dist/src/utils/retry.test.js.map +1 -1
  687. package/dist/src/utils/shell-utils.d.ts +6 -0
  688. package/dist/src/utils/shell-utils.js +97 -12
  689. package/dist/src/utils/shell-utils.js.map +1 -1
  690. package/dist/src/utils/shell-utils.test.js +99 -1
  691. package/dist/src/utils/shell-utils.test.js.map +1 -1
  692. package/dist/src/utils/summarizer.test.js +3 -2
  693. package/dist/src/utils/summarizer.test.js.map +1 -1
  694. package/dist/src/utils/terminal.d.ts +4 -0
  695. package/dist/src/utils/terminal.js +12 -0
  696. package/dist/src/utils/terminal.js.map +1 -1
  697. package/dist/src/utils/tokenCalculation.js +20 -5
  698. package/dist/src/utils/tokenCalculation.js.map +1 -1
  699. package/dist/src/utils/tokenCalculation.test.js +11 -2
  700. package/dist/src/utils/tokenCalculation.test.js.map +1 -1
  701. package/dist/src/utils/tool-utils.d.ts +9 -0
  702. package/dist/src/utils/tool-utils.js +29 -0
  703. package/dist/src/utils/tool-utils.js.map +1 -1
  704. package/dist/src/utils/tool-utils.test.js +17 -2
  705. package/dist/src/utils/tool-utils.test.js.map +1 -1
  706. package/dist/src/utils/userAccountManager.test.js +5 -5
  707. package/dist/src/utils/userAccountManager.test.js.map +1 -1
  708. package/dist/src/utils/workspaceContext.test.js +1 -1
  709. package/dist/src/utils/workspaceContext.test.js.map +1 -1
  710. package/dist/tsconfig.tsbuildinfo +1 -1
  711. package/package.json +8 -6
  712. package/dist/src/agents/executor.js.map +0 -1
  713. package/dist/src/agents/executor.test.js.map +0 -1
  714. package/dist/src/agents/invocation.js.map +0 -1
  715. package/dist/src/agents/invocation.test.js.map +0 -1
  716. package/dist/src/core/sessionHookTriggers.d.ts +0 -28
  717. package/dist/src/core/sessionHookTriggers.js +0 -68
  718. package/dist/src/core/sessionHookTriggers.js.map +0 -1
  719. package/dist/src/tools/smart-edit.d.ts +0 -78
  720. package/dist/src/tools/smart-edit.js +0 -722
  721. package/dist/src/tools/smart-edit.js.map +0 -1
  722. package/dist/src/tools/smart-edit.test.js +0 -592
  723. package/dist/src/tools/smart-edit.test.js.map +0 -1
  724. package/dist/src/utils/shell-permissions.d.ts +0 -52
  725. package/dist/src/utils/shell-permissions.js +0 -188
  726. package/dist/src/utils/shell-permissions.js.map +0 -1
  727. package/dist/src/utils/shell-permissions.test.js +0 -347
  728. package/dist/src/utils/shell-permissions.test.js.map +0 -1
  729. /package/dist/src/agents/{executor.test.d.ts → a2a-client-manager.test.d.ts} +0 -0
  730. /package/dist/src/agents/{invocation.test.d.ts → a2aUtils.test.d.ts} +0 -0
  731. /package/dist/src/{tools/smart-edit.test.d.ts → agents/agentLoader.test.d.ts} +0 -0
  732. /package/dist/src/{utils/shell-permissions.test.d.ts → agents/cli-help-agent.test.d.ts} +0 -0
@@ -15,8 +15,8 @@ import { ReadFileTool } from '../tools/read-file.js';
15
15
  import { GrepTool } from '../tools/grep.js';
16
16
  import { canUseRipgrep, RipGrepTool } from '../tools/ripGrep.js';
17
17
  import { GlobTool } from '../tools/glob.js';
18
+ import { ActivateSkillTool } from '../tools/activate-skill.js';
18
19
  import { EditTool } from '../tools/edit.js';
19
- import { SmartEditTool } from '../tools/smart-edit.js';
20
20
  import { ShellTool } from '../tools/shell.js';
21
21
  import { WriteFileTool } from '../tools/write-file.js';
22
22
  import { WebFetchTool } from '../tools/web-fetch.js';
@@ -27,15 +27,15 @@ 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';
34
34
  import { ideContextStore } from '../ide/ideContext.js';
35
35
  import { WriteTodosTool } from '../tools/write-todos.js';
36
36
  import { StandardFileSystemService } from '../services/fileSystemService.js';
37
- import { logRipgrepFallback } from '../telemetry/loggers.js';
38
- import { RipgrepFallbackEvent } from '../telemetry/types.js';
37
+ import { logRipgrepFallback, logFlashFallback } from '../telemetry/loggers.js';
38
+ import { RipgrepFallbackEvent, FlashFallbackEvent, } from '../telemetry/types.js';
39
39
  import { ModelAvailabilityService } from '../availability/modelAvailabilityService.js';
40
40
  import { ModelRouterService } from '../routing/modelRouterService.js';
41
41
  import { OutputFormat } from '../output/types.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';
@@ -56,9 +57,8 @@ import { DELEGATE_TO_AGENT_TOOL_NAME } from '../tools/tool-names.js';
56
57
  import { getExperiments } from '../code_assist/experiments/experiments.js';
57
58
  import { ExperimentFlags } from '../code_assist/experiments/flagNames.js';
58
59
  import { debugLogger } from '../utils/debugLogger.js';
60
+ import { SkillManager } from '../skills/skillManager.js';
59
61
  import { startupProfiler } from '../telemetry/startupProfiler.js';
60
- import { ApprovalMode } from '../policy/types.js';
61
- export { ApprovalMode };
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';
@@ -145,9 +145,13 @@ export class Config {
145
145
  mcpClientManager;
146
146
  allowedMcpServers;
147
147
  blockedMcpServers;
148
+ allowedEnvironmentVariables;
149
+ blockedEnvironmentVariables;
150
+ enableEnvironmentVariableRedaction;
148
151
  promptRegistry;
149
152
  resourceRegistry;
150
153
  agentRegistry;
154
+ skillManager;
151
155
  sessionId;
152
156
  fileSystemService;
153
157
  contentGeneratorConfig;
@@ -165,6 +169,8 @@ export class Config {
165
169
  toolDiscoveryCommand;
166
170
  toolCallCommand;
167
171
  mcpServerCommand;
172
+ mcpEnabled;
173
+ extensionsEnabled;
168
174
  mcpServers;
169
175
  userMemory;
170
176
  geminiMdFileCount;
@@ -194,7 +200,6 @@ export class Config {
194
200
  noBrowser;
195
201
  folderTrust;
196
202
  ideMode;
197
- inFallbackMode = false;
198
203
  _activeModel;
199
204
  maxSessionTurns;
200
205
  listSessions;
@@ -227,13 +232,12 @@ export class Config {
227
232
  storage;
228
233
  fileExclusions;
229
234
  eventEmitter;
230
- useSmartEdit;
231
235
  useWriteTodos;
232
236
  messageBus;
233
237
  policyEngine;
234
238
  outputSettings;
235
- enableMessageBusIntegration;
236
239
  codebaseInvestigatorSettings;
240
+ cliHelpAgentSettings;
237
241
  continueOnFailedApiCall;
238
242
  retryFetchErrors;
239
243
  enableShellOutputEfficiency;
@@ -243,17 +247,26 @@ export class Config {
243
247
  disableYoloMode;
244
248
  pendingIncludeDirectories;
245
249
  enableHooks;
250
+ enableHooksUI;
246
251
  hooks;
252
+ projectHooks;
247
253
  disabledHooks;
248
254
  experiments;
249
255
  experimentsPromise;
250
256
  hookSystem;
251
- previewModelFallbackMode = false;
252
- previewModelBypassMode = false;
253
- enableModelAvailabilityService;
257
+ onModelChange;
258
+ onReload;
254
259
  enableAgents;
260
+ agents;
261
+ skillsSupport;
262
+ disabledSkills;
263
+ adminSkillsEnabled;
255
264
  experimentalJitContext;
265
+ disableLLMCorrection;
256
266
  contextManager;
267
+ terminalBackground = undefined;
268
+ remoteAdminSettings;
269
+ latestApiRequest;
257
270
  constructor(params) {
258
271
  this.sessionId = params.sessionId;
259
272
  this.embeddingModel =
@@ -273,8 +286,14 @@ export class Config {
273
286
  this.toolCallCommand = params.toolCallCommand;
274
287
  this.mcpServerCommand = params.mcpServerCommand;
275
288
  this.mcpServers = params.mcpServers;
289
+ this.mcpEnabled = params.mcpEnabled ?? true;
290
+ this.extensionsEnabled = params.extensionsEnabled ?? true;
276
291
  this.allowedMcpServers = params.allowedMcpServers ?? [];
277
292
  this.blockedMcpServers = params.blockedMcpServers ?? [];
293
+ this.allowedEnvironmentVariables = params.allowedEnvironmentVariables ?? [];
294
+ this.blockedEnvironmentVariables = params.blockedEnvironmentVariables ?? [];
295
+ this.enableEnvironmentVariableRedaction =
296
+ params.enableEnvironmentVariableRedaction ?? false;
278
297
  this.userMemory = params.userMemory ?? '';
279
298
  this.geminiMdFileCount = params.geminiMdFileCount ?? 0;
280
299
  this.geminiMdFilePaths = params.geminiMdFilePaths ?? [];
@@ -310,11 +329,15 @@ export class Config {
310
329
  this.bugCommand = params.bugCommand;
311
330
  this.model = params.model;
312
331
  this._activeModel = params.model;
313
- this.enableModelAvailabilityService = true;
314
332
  this.enableAgents = params.enableAgents ?? false;
315
- this.experimentalJitContext = params.experimentalJitContext ?? false;
333
+ this.agents = params.agents ?? {};
334
+ this.disableLLMCorrection = params.disableLLMCorrection ?? false;
335
+ this.skillsSupport = params.skillsSupport ?? false;
336
+ this.disabledSkills = params.disabledSkills ?? [];
337
+ this.adminSkillsEnabled = params.adminSkillsEnabled ?? true;
316
338
  this.modelAvailabilityService = new ModelAvailabilityService();
317
339
  this.previewFeatures = params.previewFeatures ?? undefined;
340
+ this.experimentalJitContext = params.experimentalJitContext ?? false;
318
341
  this.maxSessionTurns = params.maxSessionTurns ?? -1;
319
342
  this.experimentalZedIntegration =
320
343
  params.experimentalZedIntegration ?? false;
@@ -344,6 +367,7 @@ export class Config {
344
367
  terminalHeight: params.shellExecutionConfig?.terminalHeight ?? 24,
345
368
  showColor: params.shellExecutionConfig?.showColor ?? false,
346
369
  pager: params.shellExecutionConfig?.pager ?? 'cat',
370
+ sanitizationConfig: this.sanitizationConfig,
347
371
  };
348
372
  this.truncateToolOutputThreshold =
349
373
  params.truncateToolOutputThreshold ??
@@ -351,24 +375,16 @@ export class Config {
351
375
  this.truncateToolOutputLines =
352
376
  params.truncateToolOutputLines ?? DEFAULT_TRUNCATE_TOOL_OUTPUT_LINES;
353
377
  this.enableToolOutputTruncation = params.enableToolOutputTruncation ?? true;
354
- this.useSmartEdit = params.useSmartEdit ?? true;
355
378
  // // TODO(joshualitt): Re-evaluate the todo tool for 3 family.
356
379
  this.useWriteTodos = isPreviewModel(this.model)
357
380
  ? false
358
381
  : (params.useWriteTodos ?? true);
382
+ this.enableHooksUI = params.enableHooksUI ?? true;
359
383
  this.enableHooks = params.enableHooks ?? false;
360
384
  this.disabledHooks =
361
385
  (params.hooks && 'disabled' in params.hooks
362
386
  ? params.hooks.disabled
363
387
  : undefined) ?? [];
364
- // Enable MessageBus integration if:
365
- // 1. Explicitly enabled via setting, OR
366
- // 2. Hooks are enabled and hooks are configured
367
- const hasHooks = params.hooks && Object.keys(params.hooks).length > 0;
368
- const hooksNeedMessageBus = this.enableHooks && hasHooks;
369
- this.enableMessageBusIntegration =
370
- params.enableMessageBusIntegration ??
371
- (hooksNeedMessageBus ? true : false);
372
388
  this.codebaseInvestigatorSettings = {
373
389
  enabled: params.codebaseInvestigatorSettings?.enabled ?? true,
374
390
  maxNumTurns: params.codebaseInvestigatorSettings?.maxNumTurns ?? 10,
@@ -377,6 +393,9 @@ export class Config {
377
393
  DEFAULT_THINKING_MODE,
378
394
  model: params.codebaseInvestigatorSettings?.model,
379
395
  };
396
+ this.cliHelpAgentSettings = {
397
+ enabled: params.cliHelpAgentSettings?.enabled ?? true,
398
+ };
380
399
  this.continueOnFailedApiCall = params.continueOnFailedApiCall ?? true;
381
400
  this.enableShellOutputEfficiency =
382
401
  params.enableShellOutputEfficiency ?? true;
@@ -395,13 +414,17 @@ export class Config {
395
414
  approvalMode: params.approvalMode ?? params.policyEngineConfig?.approvalMode,
396
415
  });
397
416
  this.messageBus = new MessageBus(this.policyEngine, this.debugMode);
417
+ this.skillManager = new SkillManager();
398
418
  this.outputSettings = {
399
419
  format: params.output?.format ?? OutputFormat.TEXT,
400
420
  };
401
421
  this.retryFetchErrors = params.retryFetchErrors ?? false;
402
422
  this.disableYoloMode = params.disableYoloMode ?? false;
403
423
  this.hooks = params.hooks;
424
+ this.projectHooks = params.projectHooks;
404
425
  this.experiments = params.experiments;
426
+ this.onModelChange = params.onModelChange;
427
+ this.onReload = params.onReload;
405
428
  if (params.contextFileName) {
406
429
  setGeminiMdFilename(params.contextFileName);
407
430
  }
@@ -462,6 +485,7 @@ export class Config {
462
485
  this.resourceRegistry = new ResourceRegistry();
463
486
  this.agentRegistry = new AgentRegistry(this);
464
487
  await this.agentRegistry.initialize();
488
+ coreEvents.on(CoreEvent.AgentsRefreshed, this.onAgentsRefreshed);
465
489
  this.toolRegistry = await this.createToolRegistry();
466
490
  discoverToolsHandle?.end();
467
491
  this.mcpClientManager = new McpClientManager(this.toolRegistry, this, this.eventEmitter);
@@ -471,13 +495,26 @@ export class Config {
471
495
  await this.getExtensionLoader().start(this),
472
496
  ]);
473
497
  initMcpHandle?.end();
498
+ if (this.skillsSupport) {
499
+ this.getSkillManager().setAdminSettings(this.adminSkillsEnabled);
500
+ if (this.adminSkillsEnabled) {
501
+ await this.getSkillManager().discoverSkills(this.storage, this.getExtensions());
502
+ this.getSkillManager().setDisabledSkills(this.disabledSkills);
503
+ // Re-register ActivateSkillTool to update its schema with the discovered enabled skill enums
504
+ if (this.getSkillManager().getSkills().length > 0) {
505
+ this.getToolRegistry().unregisterTool(ActivateSkillTool.Name);
506
+ this.getToolRegistry().registerTool(new ActivateSkillTool(this, this.messageBus));
507
+ }
508
+ }
509
+ }
474
510
  // Initialize hook system if enabled
475
- if (this.enableHooks) {
511
+ if (this.getEnableHooks()) {
476
512
  this.hookSystem = new HookSystem(this);
477
513
  await this.hookSystem.initialize();
478
514
  }
479
515
  if (this.experimentalJitContext) {
480
516
  this.contextManager = new ContextManager(this);
517
+ await this.contextManager.refresh();
481
518
  }
482
519
  await this.geminiClient.initialize();
483
520
  }
@@ -507,37 +544,31 @@ export class Config {
507
544
  // Initialize BaseLlmClient now that the ContentGenerator is available
508
545
  this.baseLlmClient = new BaseLlmClient(this.contentGenerator, this);
509
546
  const codeAssistServer = getCodeAssistServer(this);
510
- if (codeAssistServer) {
511
- if (codeAssistServer.projectId) {
512
- await this.refreshUserQuota();
513
- }
514
- this.experimentsPromise = getExperiments(codeAssistServer)
515
- .then((experiments) => {
516
- this.setExperiments(experiments);
517
- // 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
518
- if (this.getPreviewFeatures() === undefined) {
519
- const remotePreviewFeatures = experiments.flags[ExperimentFlags.ENABLE_PREVIEW]?.boolValue;
520
- if (remotePreviewFeatures === true) {
521
- this.setPreviewFeatures(remotePreviewFeatures);
522
- }
523
- }
524
- })
525
- .catch((e) => {
526
- debugLogger.error('Failed to fetch experiments', e);
527
- });
528
- }
529
- else {
530
- this.experiments = undefined;
531
- this.experimentsPromise = undefined;
547
+ if (codeAssistServer?.projectId) {
548
+ await this.refreshUserQuota();
532
549
  }
550
+ this.experimentsPromise = getExperiments(codeAssistServer)
551
+ .then((experiments) => {
552
+ this.setExperiments(experiments);
553
+ // 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
554
+ if (this.getPreviewFeatures() === undefined) {
555
+ const remotePreviewFeatures = experiments.flags[ExperimentFlags.ENABLE_PREVIEW]?.boolValue;
556
+ if (remotePreviewFeatures === true) {
557
+ this.setPreviewFeatures(remotePreviewFeatures);
558
+ }
559
+ }
560
+ })
561
+ .catch((e) => {
562
+ debugLogger.error('Failed to fetch experiments', e);
563
+ });
533
564
  const authType = this.contentGeneratorConfig.authType;
534
565
  if (authType === AuthType.USE_GEMINI ||
535
566
  authType === AuthType.USE_VERTEX_AI) {
536
567
  this.setHasAccessToPreviewModel(true);
537
568
  }
538
- // Reset the session flag since we're explicitly changing auth and using default model
539
- this.inFallbackMode = false;
540
- // Update model if user no longer has access to the preview model
569
+ // PATCH: If preview features are enabled, we assume access to the preview model.
570
+ // TODO(joshualitt): Revisit this logic to ensure that the user has access to
571
+ // the preview model through a proper quota check.
541
572
  if (!this.getPreviewFeatures() &&
542
573
  !this.hasAccessToPreviewModel &&
543
574
  isPreviewModel(this.model)) {
@@ -549,10 +580,7 @@ export class Config {
549
580
  return this.experiments;
550
581
  }
551
582
  const codeAssistServer = getCodeAssistServer(this);
552
- if (codeAssistServer) {
553
- return getExperiments(codeAssistServer);
554
- }
555
- return undefined;
583
+ return getExperiments(codeAssistServer);
556
584
  }
557
585
  getUserTier() {
558
586
  return this.contentGenerator?.userTier;
@@ -578,6 +606,24 @@ export class Config {
578
606
  setSessionId(sessionId) {
579
607
  this.sessionId = sessionId;
580
608
  }
609
+ setTerminalBackground(terminalBackground) {
610
+ this.terminalBackground = terminalBackground;
611
+ }
612
+ getTerminalBackground() {
613
+ return this.terminalBackground;
614
+ }
615
+ getLatestApiRequest() {
616
+ return this.latestApiRequest;
617
+ }
618
+ setLatestApiRequest(req) {
619
+ this.latestApiRequest = req;
620
+ }
621
+ getRemoteAdminSettings() {
622
+ return this.remoteAdminSettings;
623
+ }
624
+ setRemoteAdminSettings(settings) {
625
+ this.remoteAdminSettings = settings;
626
+ }
581
627
  shouldLoadMemoryFromIncludeDirectories() {
582
628
  return this.loadMemoryFromIncludeDirectories;
583
629
  }
@@ -593,16 +639,25 @@ export class Config {
593
639
  getModel() {
594
640
  return this.model;
595
641
  }
596
- setModel(newModel) {
597
- if (this.model !== newModel || this.inFallbackMode) {
642
+ setModel(newModel, isTemporary = true) {
643
+ if (this.model !== newModel || this._activeModel !== newModel) {
598
644
  this.model = newModel;
599
645
  // When the user explicitly sets a model, that becomes the active model.
600
646
  this._activeModel = newModel;
601
647
  coreEvents.emitModelChanged(newModel);
648
+ if (this.onModelChange && !isTemporary) {
649
+ this.onModelChange(newModel);
650
+ }
602
651
  }
603
- this.setFallbackMode(false);
604
652
  this.modelAvailabilityService.reset();
605
653
  }
654
+ activateFallbackMode(model) {
655
+ this.setModel(model, true);
656
+ const authType = this.getContentGeneratorConfig()?.authType;
657
+ if (authType) {
658
+ logFlashFallback(this, new FlashFallbackEvent(authType));
659
+ }
660
+ }
606
661
  getActiveModel() {
607
662
  return this._activeModel ?? this.model;
608
663
  }
@@ -611,32 +666,14 @@ export class Config {
611
666
  this._activeModel = model;
612
667
  }
613
668
  }
614
- resetTurn() {
615
- this.modelAvailabilityService.resetTurn();
616
- }
617
- isInFallbackMode() {
618
- return this.inFallbackMode;
619
- }
620
- setFallbackMode(active) {
621
- this.inFallbackMode = active;
622
- }
623
669
  setFallbackModelHandler(handler) {
624
670
  this.fallbackModelHandler = handler;
625
671
  }
626
672
  getFallbackModelHandler() {
627
673
  return this.fallbackModelHandler;
628
674
  }
629
- isPreviewModelFallbackMode() {
630
- return this.previewModelFallbackMode;
631
- }
632
- setPreviewModelFallbackMode(active) {
633
- this.previewModelFallbackMode = active;
634
- }
635
- isPreviewModelBypassMode() {
636
- return this.previewModelBypassMode;
637
- }
638
- setPreviewModelBypassMode(active) {
639
- this.previewModelBypassMode = active;
675
+ resetTurn() {
676
+ this.modelAvailabilityService.resetTurn();
640
677
  }
641
678
  getMaxSessionTurns() {
642
679
  return this.maxSessionTurns;
@@ -679,6 +716,9 @@ export class Config {
679
716
  getPromptRegistry() {
680
717
  return this.promptRegistry;
681
718
  }
719
+ getSkillManager() {
720
+ return this.skillManager;
721
+ }
682
722
  getResourceRegistry() {
683
723
  return this.resourceRegistry;
684
724
  }
@@ -772,6 +812,12 @@ export class Config {
772
812
  getMcpServers() {
773
813
  return this.mcpServers;
774
814
  }
815
+ getMcpEnabled() {
816
+ return this.mcpEnabled;
817
+ }
818
+ getExtensionsEnabled() {
819
+ return this.extensionsEnabled;
820
+ }
775
821
  getMcpClientManager() {
776
822
  return this.mcpClientManager;
777
823
  }
@@ -781,10 +827,25 @@ export class Config {
781
827
  getBlockedMcpServers() {
782
828
  return this.blockedMcpServers;
783
829
  }
830
+ get sanitizationConfig() {
831
+ return {
832
+ allowedEnvironmentVariables: this.allowedEnvironmentVariables,
833
+ blockedEnvironmentVariables: this.blockedEnvironmentVariables,
834
+ enableEnvironmentVariableRedaction: this.enableEnvironmentVariableRedaction,
835
+ };
836
+ }
784
837
  setMcpServers(mcpServers) {
785
838
  this.mcpServers = mcpServers;
786
839
  }
787
840
  getUserMemory() {
841
+ if (this.experimentalJitContext && this.contextManager) {
842
+ return [
843
+ this.contextManager.getGlobalMemory(),
844
+ this.contextManager.getEnvironmentMemory(),
845
+ ]
846
+ .filter(Boolean)
847
+ .join('\n\n');
848
+ }
788
849
  return this.userMemory;
789
850
  }
790
851
  setUserMemory(newUserMemory) {
@@ -803,12 +864,18 @@ export class Config {
803
864
  return this.experimentalJitContext;
804
865
  }
805
866
  getGeminiMdFileCount() {
867
+ if (this.experimentalJitContext && this.contextManager) {
868
+ return this.contextManager.getLoadedPaths().size;
869
+ }
806
870
  return this.geminiMdFileCount;
807
871
  }
808
872
  setGeminiMdFileCount(count) {
809
873
  this.geminiMdFileCount = count;
810
874
  }
811
875
  getGeminiMdFilePaths() {
876
+ if (this.experimentalJitContext && this.contextManager) {
877
+ return Array.from(this.contextManager.getLoadedPaths());
878
+ }
812
879
  return this.geminiMdFilePaths;
813
880
  }
814
881
  setGeminiMdFilePaths(paths) {
@@ -975,8 +1042,8 @@ export class Config {
975
1042
  getEnableExtensionReloading() {
976
1043
  return this.enableExtensionReloading;
977
1044
  }
978
- isModelAvailabilityServiceEnabled() {
979
- return this.enableModelAvailabilityService;
1045
+ getDisableLLMCorrection() {
1046
+ return this.disableLLMCorrection;
980
1047
  }
981
1048
  isAgentsEnabled() {
982
1049
  return this.enableAgents;
@@ -984,6 +1051,9 @@ export class Config {
984
1051
  getNoBrowser() {
985
1052
  return this.noBrowser;
986
1053
  }
1054
+ getAgentsSettings() {
1055
+ return this.agents;
1056
+ }
987
1057
  isBrowserLaunchSuppressed() {
988
1058
  return this.getNoBrowser() || !shouldAttemptBrowserLaunch();
989
1059
  }
@@ -1004,21 +1074,12 @@ export class Config {
1004
1074
  * 'false' for untrusted.
1005
1075
  */
1006
1076
  isTrustedFolder() {
1007
- // isWorkspaceTrusted in cli/src/config/trustedFolder.js returns undefined
1008
- // when the file based trust value is unavailable, since it is mainly used
1009
- // in the initialization for trust dialogs, etc. Here we return true since
1010
- // config.isTrustedFolder() is used for the main business logic of blocking
1011
- // tool calls etc in the rest of the application.
1012
- //
1013
- // Default value is true since we load with trusted settings to avoid
1014
- // restarts in the more common path. If the user chooses to mark the folder
1015
- // as untrusted, the CLI will restart and we will have the trust value
1016
- // reloaded.
1017
1077
  const context = ideContextStore.get();
1018
1078
  if (context?.workspaceState?.isTrusted !== undefined) {
1019
1079
  return context.workspaceState.isTrusted;
1020
1080
  }
1021
- return this.trustedFolder ?? true;
1081
+ // Default to untrusted if folder trust is enabled and no explicit value is set.
1082
+ return this.folderTrust ? (this.trustedFolder ?? false) : true;
1022
1083
  }
1023
1084
  setIdeMode(value) {
1024
1085
  this.ideMode = value;
@@ -1077,6 +1138,40 @@ export class Config {
1077
1138
  this.ptyInfo !== 'child_process' &&
1078
1139
  this.enableInteractiveShell);
1079
1140
  }
1141
+ isSkillsSupportEnabled() {
1142
+ return this.skillsSupport;
1143
+ }
1144
+ /**
1145
+ * Reloads skills by re-discovering them from extensions and local directories.
1146
+ */
1147
+ async reloadSkills() {
1148
+ if (!this.skillsSupport) {
1149
+ return;
1150
+ }
1151
+ if (this.onReload) {
1152
+ const refreshed = await this.onReload();
1153
+ this.disabledSkills = refreshed.disabledSkills ?? [];
1154
+ this.getSkillManager().setAdminSettings(refreshed.adminSkillsEnabled ?? this.adminSkillsEnabled);
1155
+ }
1156
+ if (this.getSkillManager().isAdminEnabled()) {
1157
+ await this.getSkillManager().discoverSkills(this.storage, this.getExtensions());
1158
+ this.getSkillManager().setDisabledSkills(this.disabledSkills);
1159
+ // Re-register ActivateSkillTool to update its schema with the newly discovered skills
1160
+ if (this.getSkillManager().getSkills().length > 0) {
1161
+ this.getToolRegistry().unregisterTool(ActivateSkillTool.Name);
1162
+ this.getToolRegistry().registerTool(new ActivateSkillTool(this, this.messageBus));
1163
+ }
1164
+ else {
1165
+ this.getToolRegistry().unregisterTool(ActivateSkillTool.Name);
1166
+ }
1167
+ }
1168
+ else {
1169
+ this.getSkillManager().clearSkills();
1170
+ this.getToolRegistry().unregisterTool(ActivateSkillTool.Name);
1171
+ }
1172
+ // Notify the client that system instructions might need updating
1173
+ await this.updateSystemInstructionIfInitialized();
1174
+ }
1080
1175
  isInteractive() {
1081
1176
  return this.interactive;
1082
1177
  }
@@ -1110,6 +1205,8 @@ export class Config {
1110
1205
  terminalHeight: config.terminalHeight ?? this.shellExecutionConfig.terminalHeight,
1111
1206
  showColor: config.showColor ?? this.shellExecutionConfig.showColor,
1112
1207
  pager: config.pager ?? this.shellExecutionConfig.pager,
1208
+ sanitizationConfig: config.sanitizationConfig ??
1209
+ this.shellExecutionConfig.sanitizationConfig,
1113
1210
  };
1114
1211
  }
1115
1212
  getScreenReader() {
@@ -1130,9 +1227,6 @@ export class Config {
1130
1227
  getTruncateToolOutputLines() {
1131
1228
  return this.truncateToolOutputLines;
1132
1229
  }
1133
- getUseSmartEdit() {
1134
- return this.useSmartEdit;
1135
- }
1136
1230
  getUseWriteTodos() {
1137
1231
  return this.useWriteTodos;
1138
1232
  }
@@ -1157,21 +1251,20 @@ export class Config {
1157
1251
  getPolicyEngine() {
1158
1252
  return this.policyEngine;
1159
1253
  }
1160
- getEnableMessageBusIntegration() {
1161
- return this.enableMessageBusIntegration;
1162
- }
1163
1254
  getEnableHooks() {
1164
1255
  return this.enableHooks;
1165
1256
  }
1257
+ getEnableHooksUI() {
1258
+ return this.enableHooksUI;
1259
+ }
1166
1260
  getCodebaseInvestigatorSettings() {
1167
1261
  return this.codebaseInvestigatorSettings;
1168
1262
  }
1263
+ getCliHelpAgentSettings() {
1264
+ return this.cliHelpAgentSettings;
1265
+ }
1169
1266
  async createToolRegistry() {
1170
- const registry = new ToolRegistry(this);
1171
- // Set message bus on tool registry before discovery so MCP tools can access it
1172
- if (this.getEnableMessageBusIntegration()) {
1173
- registry.setMessageBus(this.messageBus);
1174
- }
1267
+ const registry = new ToolRegistry(this, this.messageBus);
1175
1268
  // helper to create & register core tools that are enabled
1176
1269
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
1177
1270
  const registerCoreTool = (ToolClass, ...args) => {
@@ -1188,13 +1281,8 @@ export class Config {
1188
1281
  tool.startsWith(`${normalizedClassName}(`));
1189
1282
  }
1190
1283
  if (isEnabled) {
1191
- // Pass message bus to tools when feature flag is enabled
1192
- // This first implementation is only focused on the general case of
1193
- // the tool registry.
1194
- const messageBusEnabled = this.getEnableMessageBusIntegration();
1195
- const toolArgs = messageBusEnabled
1196
- ? [...args, this.getMessageBus()]
1197
- : args;
1284
+ // Pass message bus to tools (required for policy engine integration)
1285
+ const toolArgs = [...args, this.getMessageBus()];
1198
1286
  registry.registerTool(new ToolClass(...toolArgs));
1199
1287
  }
1200
1288
  };
@@ -1221,36 +1309,38 @@ export class Config {
1221
1309
  registerCoreTool(GrepTool, this);
1222
1310
  }
1223
1311
  registerCoreTool(GlobTool, this);
1224
- if (this.getUseSmartEdit()) {
1225
- registerCoreTool(SmartEditTool, this);
1226
- }
1227
- else {
1228
- registerCoreTool(EditTool, this);
1229
- }
1312
+ registerCoreTool(ActivateSkillTool, this);
1313
+ registerCoreTool(EditTool, this);
1230
1314
  registerCoreTool(WriteFileTool, this);
1231
1315
  registerCoreTool(WebFetchTool, this);
1232
1316
  registerCoreTool(ShellTool, this);
1233
1317
  registerCoreTool(MemoryTool);
1234
1318
  registerCoreTool(WebSearchTool, this);
1235
1319
  if (this.getUseWriteTodos()) {
1236
- registerCoreTool(WriteTodosTool, this);
1320
+ registerCoreTool(WriteTodosTool);
1237
1321
  }
1238
1322
  // Register Subagents as Tools
1239
1323
  // Register DelegateToAgentTool if agents are enabled
1324
+ this.registerDelegateToAgentTool(registry);
1325
+ await registry.discoverAllTools();
1326
+ registry.sortTools();
1327
+ return registry;
1328
+ }
1329
+ /**
1330
+ * Registers the DelegateToAgentTool if agents or related features are enabled.
1331
+ */
1332
+ registerDelegateToAgentTool(registry) {
1240
1333
  if (this.isAgentsEnabled() ||
1241
- this.getCodebaseInvestigatorSettings().enabled) {
1334
+ this.getCodebaseInvestigatorSettings().enabled ||
1335
+ this.getCliHelpAgentSettings().enabled) {
1242
1336
  // Check if the delegate tool itself is allowed (if allowedTools is set)
1243
1337
  const allowedTools = this.getAllowedTools();
1244
1338
  const isAllowed = !allowedTools || allowedTools.includes(DELEGATE_TO_AGENT_TOOL_NAME);
1245
1339
  if (isAllowed) {
1246
- const messageBusEnabled = this.getEnableMessageBusIntegration();
1247
- const delegateTool = new DelegateToAgentTool(this.agentRegistry, this, messageBusEnabled ? this.getMessageBus() : undefined);
1340
+ const delegateTool = new DelegateToAgentTool(this.agentRegistry, this, this.getMessageBus());
1248
1341
  registry.registerTool(delegateTool);
1249
1342
  }
1250
1343
  }
1251
- await registry.discoverAllTools();
1252
- registry.sortTools();
1253
- return registry;
1254
1344
  }
1255
1345
  /**
1256
1346
  * Get the hook system instance
@@ -1264,6 +1354,12 @@ export class Config {
1264
1354
  getHooks() {
1265
1355
  return this.hooks;
1266
1356
  }
1357
+ /**
1358
+ * Get project-specific hooks configuration
1359
+ */
1360
+ getProjectHooks() {
1361
+ return this.projectHooks;
1362
+ }
1267
1363
  /**
1268
1364
  * Get disabled hooks list
1269
1365
  */
@@ -1320,6 +1416,31 @@ export class Config {
1320
1416
  });
1321
1417
  debugLogger.debug('Experiments loaded', summaryString);
1322
1418
  }
1419
+ onAgentsRefreshed = async () => {
1420
+ if (this.toolRegistry) {
1421
+ this.registerDelegateToAgentTool(this.toolRegistry);
1422
+ }
1423
+ // Propagate updates to the active chat session
1424
+ const client = this.getGeminiClient();
1425
+ if (client?.isInitialized()) {
1426
+ await client.setTools();
1427
+ await client.updateSystemInstruction();
1428
+ }
1429
+ else {
1430
+ debugLogger.debug('[Config] GeminiClient not initialized; skipping live prompt/tool refresh.');
1431
+ }
1432
+ };
1433
+ /**
1434
+ * Disposes of resources and removes event listeners.
1435
+ */
1436
+ async dispose() {
1437
+ coreEvents.off(CoreEvent.AgentsRefreshed, this.onAgentsRefreshed);
1438
+ this.agentRegistry?.dispose();
1439
+ this.geminiClient?.dispose();
1440
+ if (this.mcpClientManager) {
1441
+ await this.mcpClientManager.stop();
1442
+ }
1443
+ }
1323
1444
  }
1324
1445
  // Export model constants for use in CLI
1325
1446
  export { DEFAULT_GEMINI_FLASH_MODEL };