@office-ai/aioncli-core 0.2.3 → 0.8.1

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 (756) hide show
  1. package/dist/index.d.ts +10 -3
  2. package/dist/index.js +10 -3
  3. package/dist/index.js.map +1 -1
  4. package/dist/src/agents/codebase-investigator.d.ts +11 -0
  5. package/dist/src/agents/codebase-investigator.js +73 -0
  6. package/dist/src/agents/codebase-investigator.js.map +1 -0
  7. package/dist/src/agents/executor.d.ts +88 -0
  8. package/dist/src/agents/executor.js +417 -0
  9. package/dist/src/agents/executor.js.map +1 -0
  10. package/dist/src/agents/executor.test.js +419 -0
  11. package/dist/src/agents/executor.test.js.map +1 -0
  12. package/dist/src/agents/invocation.d.ts +43 -0
  13. package/dist/src/agents/invocation.js +100 -0
  14. package/dist/src/agents/invocation.js.map +1 -0
  15. package/dist/src/agents/invocation.test.js +206 -0
  16. package/dist/src/agents/invocation.test.js.map +1 -0
  17. package/dist/src/agents/registry.d.ts +35 -0
  18. package/dist/src/agents/registry.js +58 -0
  19. package/dist/src/agents/registry.js.map +1 -0
  20. package/dist/src/agents/registry.test.js +146 -0
  21. package/dist/src/agents/registry.test.js.map +1 -0
  22. package/dist/src/agents/schema-utils.d.ts +39 -0
  23. package/dist/src/agents/schema-utils.js +57 -0
  24. package/dist/src/agents/schema-utils.js.map +1 -0
  25. package/dist/src/agents/schema-utils.test.d.ts +6 -0
  26. package/dist/src/agents/schema-utils.test.js +144 -0
  27. package/dist/src/agents/schema-utils.test.js.map +1 -0
  28. package/dist/src/agents/subagent-tool-wrapper.d.ts +36 -0
  29. package/dist/src/agents/subagent-tool-wrapper.js +47 -0
  30. package/dist/src/agents/subagent-tool-wrapper.js.map +1 -0
  31. package/dist/src/agents/subagent-tool-wrapper.test.d.ts +6 -0
  32. package/dist/src/agents/subagent-tool-wrapper.test.js +105 -0
  33. package/dist/src/agents/subagent-tool-wrapper.test.js.map +1 -0
  34. package/dist/src/agents/types.d.ts +116 -0
  35. package/dist/src/agents/types.js +17 -0
  36. package/dist/src/agents/types.js.map +1 -0
  37. package/dist/src/agents/utils.d.ts +15 -0
  38. package/dist/src/agents/utils.js +29 -0
  39. package/dist/src/agents/utils.js.map +1 -0
  40. package/dist/src/agents/utils.test.d.ts +6 -0
  41. package/dist/src/agents/utils.test.js +87 -0
  42. package/dist/src/agents/utils.test.js.map +1 -0
  43. package/dist/src/code_assist/codeAssist.d.ts +6 -3
  44. package/dist/src/code_assist/codeAssist.js +12 -0
  45. package/dist/src/code_assist/codeAssist.js.map +1 -1
  46. package/dist/src/code_assist/converter.d.ts +4 -1
  47. package/dist/src/code_assist/converter.js +38 -5
  48. package/dist/src/code_assist/converter.js.map +1 -1
  49. package/dist/src/code_assist/converter.test.js +93 -0
  50. package/dist/src/code_assist/converter.test.js.map +1 -1
  51. package/dist/src/code_assist/oauth-credential-storage.d.ts +25 -0
  52. package/dist/src/code_assist/oauth-credential-storage.js +109 -0
  53. package/dist/src/code_assist/oauth-credential-storage.js.map +1 -0
  54. package/dist/src/code_assist/oauth-credential-storage.test.d.ts +6 -0
  55. package/dist/src/code_assist/oauth-credential-storage.test.js +136 -0
  56. package/dist/src/code_assist/oauth-credential-storage.test.js.map +1 -0
  57. package/dist/src/code_assist/oauth2.d.ts +1 -1
  58. package/dist/src/code_assist/oauth2.js +107 -48
  59. package/dist/src/code_assist/oauth2.js.map +1 -1
  60. package/dist/src/code_assist/oauth2.test.js +735 -343
  61. package/dist/src/code_assist/oauth2.test.js.map +1 -1
  62. package/dist/src/code_assist/server.d.ts +4 -4
  63. package/dist/src/code_assist/server.js +25 -2
  64. package/dist/src/code_assist/server.js.map +1 -1
  65. package/dist/src/code_assist/server.test.js +25 -0
  66. package/dist/src/code_assist/server.test.js.map +1 -1
  67. package/dist/src/code_assist/setup.d.ts +1 -1
  68. package/dist/src/code_assist/setup.js +1 -1
  69. package/dist/src/code_assist/setup.js.map +1 -1
  70. package/dist/src/code_assist/setup.test.js.map +1 -1
  71. package/dist/src/code_assist/types.d.ts +17 -2
  72. package/dist/src/config/config.d.ts +121 -25
  73. package/dist/src/config/config.js +298 -89
  74. package/dist/src/config/config.js.map +1 -1
  75. package/dist/src/config/config.test.js +370 -131
  76. package/dist/src/config/config.test.js.map +1 -1
  77. package/dist/src/config/constants.d.ts +11 -0
  78. package/dist/src/config/constants.js +16 -0
  79. package/dist/src/config/constants.js.map +1 -0
  80. package/dist/src/config/models.d.ts +16 -0
  81. package/dist/src/config/models.js +29 -0
  82. package/dist/src/config/models.js.map +1 -1
  83. package/dist/src/config/models.test.d.ts +6 -0
  84. package/dist/src/config/models.test.js +55 -0
  85. package/dist/src/config/models.test.js.map +1 -0
  86. package/dist/src/config/storage.d.ts +34 -0
  87. package/dist/src/config/storage.js +95 -0
  88. package/dist/src/config/storage.js.map +1 -0
  89. package/dist/src/config/storage.test.d.ts +6 -0
  90. package/dist/src/config/storage.test.js +47 -0
  91. package/dist/src/config/storage.test.js.map +1 -0
  92. package/dist/src/confirmation-bus/index.d.ts +7 -0
  93. package/dist/src/confirmation-bus/index.js +8 -0
  94. package/dist/src/confirmation-bus/index.js.map +1 -0
  95. package/dist/src/confirmation-bus/message-bus.d.ts +17 -0
  96. package/dist/src/confirmation-bus/message-bus.js +81 -0
  97. package/dist/src/confirmation-bus/message-bus.js.map +1 -0
  98. package/dist/src/confirmation-bus/message-bus.test.d.ts +6 -0
  99. package/dist/src/confirmation-bus/message-bus.test.js +164 -0
  100. package/dist/src/confirmation-bus/message-bus.test.js.map +1 -0
  101. package/dist/src/confirmation-bus/types.d.ts +38 -0
  102. package/dist/src/confirmation-bus/types.js +15 -0
  103. package/dist/src/confirmation-bus/types.js.map +1 -0
  104. package/dist/src/core/baseLlmClient.d.ts +54 -0
  105. package/dist/src/core/baseLlmClient.js +190 -0
  106. package/dist/src/core/baseLlmClient.js.map +1 -0
  107. package/dist/src/core/baseLlmClient.test.d.ts +6 -0
  108. package/dist/src/core/baseLlmClient.test.js +316 -0
  109. package/dist/src/core/baseLlmClient.test.js.map +1 -0
  110. package/dist/src/core/client.d.ts +28 -33
  111. package/dist/src/core/client.js +187 -384
  112. package/dist/src/core/client.js.map +1 -1
  113. package/dist/src/core/client.test.js +745 -500
  114. package/dist/src/core/client.test.js.map +1 -1
  115. package/dist/src/core/contentGenerator.d.ts +4 -4
  116. package/dist/src/core/contentGenerator.js +6 -7
  117. package/dist/src/core/contentGenerator.js.map +1 -1
  118. package/dist/src/core/contentGenerator.test.js +1 -3
  119. package/dist/src/core/contentGenerator.test.js.map +1 -1
  120. package/dist/src/core/coreToolScheduler.d.ts +20 -7
  121. package/dist/src/core/coreToolScheduler.js +216 -53
  122. package/dist/src/core/coreToolScheduler.js.map +1 -1
  123. package/dist/src/core/coreToolScheduler.test.js +564 -88
  124. package/dist/src/core/coreToolScheduler.test.js.map +1 -1
  125. package/dist/src/core/geminiChat.d.ts +54 -53
  126. package/dist/src/core/geminiChat.js +300 -356
  127. package/dist/src/core/geminiChat.js.map +1 -1
  128. package/dist/src/core/geminiChat.test.js +1255 -321
  129. package/dist/src/core/geminiChat.test.js.map +1 -1
  130. package/dist/src/core/geminiRequest.js +1 -0
  131. package/dist/src/core/geminiRequest.js.map +1 -1
  132. package/dist/src/core/logger.d.ts +4 -2
  133. package/dist/src/core/logger.js +4 -3
  134. package/dist/src/core/logger.js.map +1 -1
  135. package/dist/src/core/logger.test.js +17 -16
  136. package/dist/src/core/logger.test.js.map +1 -1
  137. package/dist/src/core/loggingContentGenerator.d.ts +3 -3
  138. package/dist/src/core/loggingContentGenerator.js +15 -16
  139. package/dist/src/core/loggingContentGenerator.js.map +1 -1
  140. package/dist/src/core/nonInteractiveToolExecutor.d.ts +3 -5
  141. package/dist/src/core/nonInteractiveToolExecutor.js +14 -122
  142. package/dist/src/core/nonInteractiveToolExecutor.js.map +1 -1
  143. package/dist/src/core/nonInteractiveToolExecutor.test.js +158 -78
  144. package/dist/src/core/nonInteractiveToolExecutor.test.js.map +1 -1
  145. package/dist/src/core/openaiContentGenerator.d.ts +4 -3
  146. package/dist/src/core/openaiContentGenerator.js +21 -14
  147. package/dist/src/core/openaiContentGenerator.js.map +1 -1
  148. package/dist/src/core/openaiContentGenerator.test.js +1 -0
  149. package/dist/src/core/openaiContentGenerator.test.js.map +1 -1
  150. package/dist/src/core/prompts.d.ts +5 -0
  151. package/dist/src/core/prompts.js +66 -44
  152. package/dist/src/core/prompts.js.map +1 -1
  153. package/dist/src/core/prompts.test.js +130 -1
  154. package/dist/src/core/prompts.test.js.map +1 -1
  155. package/dist/src/core/subagent.d.ts +24 -18
  156. package/dist/src/core/subagent.js +125 -90
  157. package/dist/src/core/subagent.js.map +1 -1
  158. package/dist/src/core/subagent.test.js +59 -44
  159. package/dist/src/core/subagent.test.js.map +1 -1
  160. package/dist/src/core/turn.d.ts +37 -13
  161. package/dist/src/core/turn.js +63 -28
  162. package/dist/src/core/turn.js.map +1 -1
  163. package/dist/src/core/turn.test.js +359 -100
  164. package/dist/src/core/turn.test.js.map +1 -1
  165. package/dist/src/fallback/handler.d.ts +7 -0
  166. package/dist/src/fallback/handler.js +129 -0
  167. package/dist/src/fallback/handler.js.map +1 -0
  168. package/dist/src/fallback/handler.test.d.ts +6 -0
  169. package/dist/src/fallback/handler.test.js +130 -0
  170. package/dist/src/fallback/handler.test.js.map +1 -0
  171. package/dist/src/fallback/types.d.ts +14 -0
  172. package/dist/src/fallback/types.js +7 -0
  173. package/dist/src/fallback/types.js.map +1 -0
  174. package/dist/src/ide/constants.d.ts +3 -0
  175. package/dist/src/ide/constants.js +3 -0
  176. package/dist/src/ide/constants.js.map +1 -1
  177. package/dist/src/ide/detect-ide.d.ts +48 -12
  178. package/dist/src/ide/detect-ide.js +47 -66
  179. package/dist/src/ide/detect-ide.js.map +1 -1
  180. package/dist/src/ide/detect-ide.test.js +79 -52
  181. package/dist/src/ide/detect-ide.test.js.map +1 -1
  182. package/dist/src/ide/ide-client.d.ts +69 -23
  183. package/dist/src/ide/ide-client.js +372 -78
  184. package/dist/src/ide/ide-client.js.map +1 -1
  185. package/dist/src/ide/ide-client.test.js +375 -30
  186. package/dist/src/ide/ide-client.test.js.map +1 -1
  187. package/dist/src/ide/ide-installer.d.ts +2 -2
  188. package/dist/src/ide/ide-installer.js +37 -24
  189. package/dist/src/ide/ide-installer.js.map +1 -1
  190. package/dist/src/ide/ide-installer.test.js +104 -26
  191. package/dist/src/ide/ide-installer.test.js.map +1 -1
  192. package/dist/src/ide/ideContext.d.ts +35 -365
  193. package/dist/src/ide/ideContext.js +60 -106
  194. package/dist/src/ide/ideContext.js.map +1 -1
  195. package/dist/src/ide/ideContext.test.js +152 -24
  196. package/dist/src/ide/ideContext.test.js.map +1 -1
  197. package/dist/src/ide/process-utils.d.ts +7 -5
  198. package/dist/src/ide/process-utils.js +81 -50
  199. package/dist/src/ide/process-utils.js.map +1 -1
  200. package/dist/src/ide/process-utils.test.d.ts +6 -0
  201. package/dist/src/ide/process-utils.test.js +158 -0
  202. package/dist/src/ide/process-utils.test.js.map +1 -0
  203. package/dist/src/ide/types.d.ts +486 -0
  204. package/dist/src/ide/types.js +138 -0
  205. package/dist/src/ide/types.js.map +1 -0
  206. package/dist/src/index.d.ts +20 -2
  207. package/dist/src/index.js +20 -2
  208. package/dist/src/index.js.map +1 -1
  209. package/dist/src/mcp/google-auth-provider.d.ts +3 -3
  210. package/dist/src/mcp/google-auth-provider.test.js.map +1 -1
  211. package/dist/src/mcp/oauth-provider.d.ts +17 -13
  212. package/dist/src/mcp/oauth-provider.js +81 -69
  213. package/dist/src/mcp/oauth-provider.js.map +1 -1
  214. package/dist/src/mcp/oauth-provider.test.js +212 -37
  215. package/dist/src/mcp/oauth-provider.test.js.map +1 -1
  216. package/dist/src/mcp/oauth-token-storage.d.ts +14 -32
  217. package/dist/src/mcp/oauth-token-storage.js +54 -25
  218. package/dist/src/mcp/oauth-token-storage.js.map +1 -1
  219. package/dist/src/mcp/oauth-token-storage.test.js +256 -162
  220. package/dist/src/mcp/oauth-token-storage.test.js.map +1 -1
  221. package/dist/src/mcp/oauth-utils.d.ts +9 -1
  222. package/dist/src/mcp/oauth-utils.js +42 -27
  223. package/dist/src/mcp/oauth-utils.js.map +1 -1
  224. package/dist/src/mcp/oauth-utils.test.js +41 -1
  225. package/dist/src/mcp/oauth-utils.test.js.map +1 -1
  226. package/dist/src/mcp/sa-impersonation-provider.d.ts +33 -0
  227. package/dist/src/mcp/sa-impersonation-provider.js +130 -0
  228. package/dist/src/mcp/sa-impersonation-provider.js.map +1 -0
  229. package/dist/src/mcp/sa-impersonation-provider.test.d.ts +6 -0
  230. package/dist/src/mcp/sa-impersonation-provider.test.js +117 -0
  231. package/dist/src/mcp/sa-impersonation-provider.test.js.map +1 -0
  232. package/dist/src/mcp/token-storage/base-token-storage.d.ts +19 -0
  233. package/dist/src/mcp/token-storage/base-token-storage.js +36 -0
  234. package/dist/src/mcp/token-storage/base-token-storage.js.map +1 -0
  235. package/dist/src/mcp/token-storage/base-token-storage.test.d.ts +6 -0
  236. package/dist/src/mcp/token-storage/base-token-storage.test.js +160 -0
  237. package/dist/src/mcp/token-storage/base-token-storage.test.js.map +1 -0
  238. package/dist/src/mcp/token-storage/file-token-storage.d.ts +24 -0
  239. package/dist/src/mcp/token-storage/file-token-storage.js +144 -0
  240. package/dist/src/mcp/token-storage/file-token-storage.js.map +1 -0
  241. package/dist/src/mcp/token-storage/file-token-storage.test.d.ts +6 -0
  242. package/dist/src/mcp/token-storage/file-token-storage.test.js +235 -0
  243. package/dist/src/mcp/token-storage/file-token-storage.test.js.map +1 -0
  244. package/dist/src/mcp/token-storage/hybrid-token-storage.d.ts +23 -0
  245. package/dist/src/mcp/token-storage/hybrid-token-storage.js +78 -0
  246. package/dist/src/mcp/token-storage/hybrid-token-storage.js.map +1 -0
  247. package/dist/src/mcp/token-storage/hybrid-token-storage.test.d.ts +6 -0
  248. package/dist/src/mcp/token-storage/hybrid-token-storage.test.js +193 -0
  249. package/dist/src/mcp/token-storage/hybrid-token-storage.test.js.map +1 -0
  250. package/dist/src/mcp/token-storage/index.d.ts +11 -0
  251. package/dist/src/mcp/token-storage/index.js +12 -0
  252. package/dist/src/mcp/token-storage/index.js.map +1 -0
  253. package/dist/src/mcp/token-storage/keychain-token-storage.d.ts +31 -0
  254. package/dist/src/mcp/token-storage/keychain-token-storage.js +190 -0
  255. package/dist/src/mcp/token-storage/keychain-token-storage.js.map +1 -0
  256. package/dist/src/mcp/token-storage/keychain-token-storage.test.d.ts +6 -0
  257. package/dist/src/mcp/token-storage/keychain-token-storage.test.js +254 -0
  258. package/dist/src/mcp/token-storage/keychain-token-storage.test.js.map +1 -0
  259. package/dist/src/mcp/token-storage/types.d.ts +38 -0
  260. package/dist/src/mcp/token-storage/types.js +11 -0
  261. package/dist/src/mcp/token-storage/types.js.map +1 -0
  262. package/dist/src/output/json-formatter.d.ts +11 -0
  263. package/dist/src/output/json-formatter.js +30 -0
  264. package/dist/src/output/json-formatter.js.map +1 -0
  265. package/dist/src/output/json-formatter.test.d.ts +6 -0
  266. package/dist/src/output/json-formatter.test.js +266 -0
  267. package/dist/src/output/json-formatter.test.js.map +1 -0
  268. package/dist/src/output/types.d.ts +20 -0
  269. package/dist/src/output/types.js +11 -0
  270. package/dist/src/output/types.js.map +1 -0
  271. package/dist/src/policy/index.d.ts +7 -0
  272. package/dist/src/policy/index.js +8 -0
  273. package/dist/src/policy/index.js.map +1 -0
  274. package/dist/src/policy/policy-engine.d.ts +30 -0
  275. package/dist/src/policy/policy-engine.js +92 -0
  276. package/dist/src/policy/policy-engine.js.map +1 -0
  277. package/dist/src/policy/policy-engine.test.d.ts +6 -0
  278. package/dist/src/policy/policy-engine.test.js +515 -0
  279. package/dist/src/policy/policy-engine.test.js.map +1 -0
  280. package/dist/src/policy/stable-stringify.d.ts +58 -0
  281. package/dist/src/policy/stable-stringify.js +122 -0
  282. package/dist/src/policy/stable-stringify.js.map +1 -0
  283. package/dist/src/policy/types.d.ts +47 -0
  284. package/dist/src/policy/types.js +12 -0
  285. package/dist/src/policy/types.js.map +1 -0
  286. package/dist/src/prompts/mcp-prompts.d.ts +2 -2
  287. package/dist/src/prompts/prompt-registry.d.ts +1 -1
  288. package/dist/src/routing/modelRouterService.d.ts +23 -0
  289. package/dist/src/routing/modelRouterService.js +70 -0
  290. package/dist/src/routing/modelRouterService.js.map +1 -0
  291. package/dist/src/routing/modelRouterService.test.d.ts +6 -0
  292. package/dist/src/routing/modelRouterService.test.js +98 -0
  293. package/dist/src/routing/modelRouterService.test.js.map +1 -0
  294. package/dist/src/routing/routingStrategy.d.ts +62 -0
  295. package/dist/src/routing/routingStrategy.js +7 -0
  296. package/dist/src/routing/routingStrategy.js.map +1 -0
  297. package/dist/src/routing/strategies/classifierStrategy.d.ts +12 -0
  298. package/dist/src/routing/strategies/classifierStrategy.js +173 -0
  299. package/dist/src/routing/strategies/classifierStrategy.js.map +1 -0
  300. package/dist/src/routing/strategies/classifierStrategy.test.d.ts +6 -0
  301. package/dist/src/routing/strategies/classifierStrategy.test.js +192 -0
  302. package/dist/src/routing/strategies/classifierStrategy.test.js.map +1 -0
  303. package/dist/src/routing/strategies/compositeStrategy.d.ts +26 -0
  304. package/dist/src/routing/strategies/compositeStrategy.js +68 -0
  305. package/dist/src/routing/strategies/compositeStrategy.js.map +1 -0
  306. package/dist/src/routing/strategies/compositeStrategy.test.d.ts +6 -0
  307. package/dist/src/routing/strategies/compositeStrategy.test.js +123 -0
  308. package/dist/src/routing/strategies/compositeStrategy.test.js.map +1 -0
  309. package/dist/src/routing/strategies/defaultStrategy.d.ts +12 -0
  310. package/dist/src/routing/strategies/defaultStrategy.js +20 -0
  311. package/dist/src/routing/strategies/defaultStrategy.js.map +1 -0
  312. package/dist/src/routing/strategies/defaultStrategy.test.d.ts +6 -0
  313. package/dist/src/routing/strategies/defaultStrategy.test.js +26 -0
  314. package/dist/src/routing/strategies/defaultStrategy.test.js.map +1 -0
  315. package/dist/src/routing/strategies/fallbackStrategy.d.ts +12 -0
  316. package/dist/src/routing/strategies/fallbackStrategy.js +25 -0
  317. package/dist/src/routing/strategies/fallbackStrategy.js.map +1 -0
  318. package/dist/src/routing/strategies/fallbackStrategy.test.d.ts +6 -0
  319. package/dist/src/routing/strategies/fallbackStrategy.test.js +55 -0
  320. package/dist/src/routing/strategies/fallbackStrategy.test.js.map +1 -0
  321. package/dist/src/routing/strategies/overrideStrategy.d.ts +15 -0
  322. package/dist/src/routing/strategies/overrideStrategy.js +28 -0
  323. package/dist/src/routing/strategies/overrideStrategy.js.map +1 -0
  324. package/dist/src/routing/strategies/overrideStrategy.test.d.ts +6 -0
  325. package/dist/src/routing/strategies/overrideStrategy.test.js +42 -0
  326. package/dist/src/routing/strategies/overrideStrategy.test.js.map +1 -0
  327. package/dist/src/services/chatRecordingService.d.ts +8 -14
  328. package/dist/src/services/chatRecordingService.js +33 -21
  329. package/dist/src/services/chatRecordingService.js.map +1 -1
  330. package/dist/src/services/chatRecordingService.test.js +69 -25
  331. package/dist/src/services/chatRecordingService.test.js.map +1 -1
  332. package/dist/src/services/fileDiscoveryService.d.ts +10 -0
  333. package/dist/src/services/fileDiscoveryService.js +32 -18
  334. package/dist/src/services/fileDiscoveryService.js.map +1 -1
  335. package/dist/src/services/fileDiscoveryService.test.js +3 -3
  336. package/dist/src/services/fileDiscoveryService.test.js.map +1 -1
  337. package/dist/src/services/fileSystemService.d.ts +9 -0
  338. package/dist/src/services/fileSystemService.js +12 -1
  339. package/dist/src/services/fileSystemService.js.map +1 -1
  340. package/dist/src/services/fileSystemService.test.js +1 -1
  341. package/dist/src/services/fileSystemService.test.js.map +1 -1
  342. package/dist/src/services/gitService.d.ts +3 -1
  343. package/dist/src/services/gitService.js +30 -24
  344. package/dist/src/services/gitService.js.map +1 -1
  345. package/dist/src/services/gitService.test.js +30 -37
  346. package/dist/src/services/gitService.test.js.map +1 -1
  347. package/dist/src/services/loopDetectionService.d.ts +8 -2
  348. package/dist/src/services/loopDetectionService.js +64 -24
  349. package/dist/src/services/loopDetectionService.js.map +1 -1
  350. package/dist/src/services/loopDetectionService.test.js +64 -13
  351. package/dist/src/services/loopDetectionService.test.js.map +1 -1
  352. package/dist/src/services/shellExecutionService.d.ts +36 -2
  353. package/dist/src/services/shellExecutionService.js +238 -47
  354. package/dist/src/services/shellExecutionService.js.map +1 -1
  355. package/dist/src/services/shellExecutionService.test.js +197 -58
  356. package/dist/src/services/shellExecutionService.test.js.map +1 -1
  357. package/dist/src/telemetry/activity-detector.d.ts +41 -0
  358. package/dist/src/telemetry/activity-detector.js +61 -0
  359. package/dist/src/telemetry/activity-detector.js.map +1 -0
  360. package/dist/src/telemetry/activity-detector.test.d.ts +6 -0
  361. package/dist/src/telemetry/activity-detector.test.js +136 -0
  362. package/dist/src/telemetry/activity-detector.test.js.map +1 -0
  363. package/dist/src/telemetry/activity-types.d.ts +19 -0
  364. package/dist/src/telemetry/activity-types.js +21 -0
  365. package/dist/src/telemetry/activity-types.js.map +1 -0
  366. package/dist/src/telemetry/clearcut-logger/clearcut-logger.d.ts +34 -4
  367. package/dist/src/telemetry/clearcut-logger/clearcut-logger.js +322 -15
  368. package/dist/src/telemetry/clearcut-logger/clearcut-logger.js.map +1 -1
  369. package/dist/src/telemetry/clearcut-logger/clearcut-logger.test.d.ts +1 -0
  370. package/dist/src/telemetry/clearcut-logger/clearcut-logger.test.js +321 -11
  371. package/dist/src/telemetry/clearcut-logger/clearcut-logger.test.js.map +1 -1
  372. package/dist/src/telemetry/clearcut-logger/event-metadata-key.d.ts +51 -2
  373. package/dist/src/telemetry/clearcut-logger/event-metadata-key.js +124 -2
  374. package/dist/src/telemetry/clearcut-logger/event-metadata-key.js.map +1 -1
  375. package/dist/src/telemetry/config.d.ts +31 -0
  376. package/dist/src/telemetry/config.js +76 -0
  377. package/dist/src/telemetry/config.js.map +1 -0
  378. package/dist/src/telemetry/config.test.d.ts +6 -0
  379. package/dist/src/telemetry/config.test.js +124 -0
  380. package/dist/src/telemetry/config.test.js.map +1 -0
  381. package/dist/src/telemetry/constants.d.ts +17 -7
  382. package/dist/src/telemetry/constants.js +18 -7
  383. package/dist/src/telemetry/constants.js.map +1 -1
  384. package/dist/src/telemetry/file-exporters.d.ts +5 -4
  385. package/dist/src/telemetry/file-exporters.js +1 -1
  386. package/dist/src/telemetry/file-exporters.js.map +1 -1
  387. package/dist/src/telemetry/gcp-exporters.d.ts +34 -0
  388. package/dist/src/telemetry/gcp-exporters.js +117 -0
  389. package/dist/src/telemetry/gcp-exporters.js.map +1 -0
  390. package/dist/src/telemetry/gcp-exporters.test.d.ts +6 -0
  391. package/dist/src/telemetry/gcp-exporters.test.js +318 -0
  392. package/dist/src/telemetry/gcp-exporters.test.js.map +1 -0
  393. package/dist/src/telemetry/high-water-mark-tracker.d.ts +43 -0
  394. package/dist/src/telemetry/high-water-mark-tracker.js +88 -0
  395. package/dist/src/telemetry/high-water-mark-tracker.js.map +1 -0
  396. package/dist/src/telemetry/high-water-mark-tracker.test.d.ts +6 -0
  397. package/dist/src/telemetry/high-water-mark-tracker.test.js +152 -0
  398. package/dist/src/telemetry/high-water-mark-tracker.test.js.map +1 -0
  399. package/dist/src/telemetry/index.d.ts +12 -2
  400. package/dist/src/telemetry/index.js +16 -2
  401. package/dist/src/telemetry/index.js.map +1 -1
  402. package/dist/src/telemetry/loggers.d.ts +17 -2
  403. package/dist/src/telemetry/loggers.js +316 -14
  404. package/dist/src/telemetry/loggers.js.map +1 -1
  405. package/dist/src/telemetry/loggers.test.circular.js +3 -3
  406. package/dist/src/telemetry/loggers.test.circular.js.map +1 -1
  407. package/dist/src/telemetry/loggers.test.js +452 -48
  408. package/dist/src/telemetry/loggers.test.js.map +1 -1
  409. package/dist/src/telemetry/metrics.d.ts +323 -12
  410. package/dist/src/telemetry/metrics.js +464 -83
  411. package/dist/src/telemetry/metrics.js.map +1 -1
  412. package/dist/src/telemetry/metrics.test.js +583 -38
  413. package/dist/src/telemetry/metrics.test.js.map +1 -1
  414. package/dist/src/telemetry/rate-limiter.d.ts +48 -0
  415. package/dist/src/telemetry/rate-limiter.js +100 -0
  416. package/dist/src/telemetry/rate-limiter.js.map +1 -0
  417. package/dist/src/telemetry/rate-limiter.test.d.ts +6 -0
  418. package/dist/src/telemetry/rate-limiter.test.js +207 -0
  419. package/dist/src/telemetry/rate-limiter.test.js.map +1 -0
  420. package/dist/src/telemetry/sdk.d.ts +1 -1
  421. package/dist/src/telemetry/sdk.js +20 -2
  422. package/dist/src/telemetry/sdk.js.map +1 -1
  423. package/dist/src/telemetry/sdk.test.js +108 -0
  424. package/dist/src/telemetry/sdk.test.js.map +1 -1
  425. package/dist/src/telemetry/telemetry-utils.d.ts +6 -0
  426. package/dist/src/telemetry/telemetry-utils.js +14 -0
  427. package/dist/src/telemetry/telemetry-utils.js.map +1 -0
  428. package/dist/src/telemetry/telemetry-utils.test.d.ts +6 -0
  429. package/dist/src/telemetry/telemetry-utils.test.js +40 -0
  430. package/dist/src/telemetry/telemetry-utils.test.js.map +1 -0
  431. package/dist/src/telemetry/types.d.ts +136 -8
  432. package/dist/src/telemetry/types.js +233 -11
  433. package/dist/src/telemetry/types.js.map +1 -1
  434. package/dist/src/telemetry/uiTelemetry.d.ts +3 -3
  435. package/dist/src/telemetry/uiTelemetry.js +7 -8
  436. package/dist/src/telemetry/uiTelemetry.js.map +1 -1
  437. package/dist/src/telemetry/uiTelemetry.test.js +33 -29
  438. package/dist/src/telemetry/uiTelemetry.test.js.map +1 -1
  439. package/dist/src/test-utils/config.d.ts +2 -1
  440. package/dist/src/test-utils/config.js.map +1 -1
  441. package/dist/src/test-utils/index.d.ts +6 -0
  442. package/dist/src/test-utils/index.js +7 -0
  443. package/dist/src/test-utils/index.js.map +1 -0
  444. package/dist/src/test-utils/mock-tool.d.ts +66 -0
  445. package/dist/src/test-utils/{tools.js → mock-tool.js} +45 -29
  446. package/dist/src/test-utils/mock-tool.js.map +1 -0
  447. package/dist/src/test-utils/mockWorkspaceContext.d.ts +1 -1
  448. package/dist/src/tools/diffOptions.d.ts +1 -1
  449. package/dist/src/tools/diffOptions.js +21 -13
  450. package/dist/src/tools/diffOptions.js.map +1 -1
  451. package/dist/src/tools/diffOptions.test.js +58 -22
  452. package/dist/src/tools/diffOptions.test.js.map +1 -1
  453. package/dist/src/tools/edit.d.ts +6 -5
  454. package/dist/src/tools/edit.js +58 -40
  455. package/dist/src/tools/edit.js.map +1 -1
  456. package/dist/src/tools/edit.test.js +192 -16
  457. package/dist/src/tools/edit.test.js.map +1 -1
  458. package/dist/src/tools/glob.d.ts +7 -2
  459. package/dist/src/tools/glob.js +42 -23
  460. package/dist/src/tools/glob.js.map +1 -1
  461. package/dist/src/tools/glob.test.js +80 -4
  462. package/dist/src/tools/glob.test.js.map +1 -1
  463. package/dist/src/tools/grep.d.ts +3 -2
  464. package/dist/src/tools/grep.js +35 -15
  465. package/dist/src/tools/grep.js.map +1 -1
  466. package/dist/src/tools/grep.test.js +26 -3
  467. package/dist/src/tools/grep.test.js.map +1 -1
  468. package/dist/src/tools/ls.d.ts +3 -2
  469. package/dist/src/tools/ls.js +31 -39
  470. package/dist/src/tools/ls.js.map +1 -1
  471. package/dist/src/tools/ls.test.js +145 -280
  472. package/dist/src/tools/ls.test.js.map +1 -1
  473. package/dist/src/tools/mcp-client-manager.d.ts +8 -6
  474. package/dist/src/tools/mcp-client-manager.js +13 -4
  475. package/dist/src/tools/mcp-client-manager.js.map +1 -1
  476. package/dist/src/tools/mcp-client-manager.test.js +20 -1
  477. package/dist/src/tools/mcp-client-manager.test.js.map +1 -1
  478. package/dist/src/tools/mcp-client.d.ts +18 -21
  479. package/dist/src/tools/mcp-client.js +87 -120
  480. package/dist/src/tools/mcp-client.js.map +1 -1
  481. package/dist/src/tools/mcp-client.test.js +32 -152
  482. package/dist/src/tools/mcp-client.test.js.map +1 -1
  483. package/dist/src/tools/mcp-tool.d.ts +6 -4
  484. package/dist/src/tools/mcp-tool.js +51 -13
  485. package/dist/src/tools/mcp-tool.js.map +1 -1
  486. package/dist/src/tools/mcp-tool.test.js +166 -12
  487. package/dist/src/tools/mcp-tool.test.js.map +1 -1
  488. package/dist/src/tools/memoryTool.d.ts +3 -2
  489. package/dist/src/tools/memoryTool.js +14 -37
  490. package/dist/src/tools/memoryTool.js.map +1 -1
  491. package/dist/src/tools/memoryTool.test.js +16 -4
  492. package/dist/src/tools/memoryTool.test.js.map +1 -1
  493. package/dist/src/tools/message-bus-integration.test.d.ts +6 -0
  494. package/dist/src/tools/message-bus-integration.test.js +183 -0
  495. package/dist/src/tools/message-bus-integration.test.js.map +1 -0
  496. package/dist/src/tools/modifiable-tool.d.ts +2 -2
  497. package/dist/src/tools/modifiable-tool.js +3 -3
  498. package/dist/src/tools/modifiable-tool.js.map +1 -1
  499. package/dist/src/tools/modifiable-tool.test.js +4 -4
  500. package/dist/src/tools/modifiable-tool.test.js.map +1 -1
  501. package/dist/src/tools/read-file.d.ts +3 -2
  502. package/dist/src/tools/read-file.js +23 -38
  503. package/dist/src/tools/read-file.js.map +1 -1
  504. package/dist/src/tools/read-file.test.js +38 -6
  505. package/dist/src/tools/read-file.test.js.map +1 -1
  506. package/dist/src/tools/read-many-files.d.ts +3 -2
  507. package/dist/src/tools/read-many-files.js +52 -107
  508. package/dist/src/tools/read-many-files.js.map +1 -1
  509. package/dist/src/tools/read-many-files.test.js +64 -11
  510. package/dist/src/tools/read-many-files.test.js.map +1 -1
  511. package/dist/src/tools/ripGrep.d.ts +55 -0
  512. package/dist/src/tools/ripGrep.js +393 -0
  513. package/dist/src/tools/ripGrep.js.map +1 -0
  514. package/dist/src/tools/ripGrep.test.d.ts +6 -0
  515. package/dist/src/tools/ripGrep.test.js +976 -0
  516. package/dist/src/tools/ripGrep.test.js.map +1 -0
  517. package/dist/src/tools/shell.d.ts +13 -2
  518. package/dist/src/tools/shell.js +42 -32
  519. package/dist/src/tools/shell.js.map +1 -1
  520. package/dist/src/tools/shell.test.js +57 -75
  521. package/dist/src/tools/shell.test.js.map +1 -1
  522. package/dist/src/tools/smart-edit.d.ts +91 -0
  523. package/dist/src/tools/smart-edit.js +702 -0
  524. package/dist/src/tools/smart-edit.js.map +1 -0
  525. package/dist/src/tools/smart-edit.test.d.ts +6 -0
  526. package/dist/src/tools/smart-edit.test.js +542 -0
  527. package/dist/src/tools/smart-edit.test.js.map +1 -0
  528. package/dist/src/tools/tool-error.d.ts +18 -1
  529. package/dist/src/tools/tool-error.js +27 -0
  530. package/dist/src/tools/tool-error.js.map +1 -1
  531. package/dist/src/tools/tool-registry.d.ts +10 -4
  532. package/dist/src/tools/tool-registry.js +20 -7
  533. package/dist/src/tools/tool-registry.js.map +1 -1
  534. package/dist/src/tools/tool-registry.test.js +93 -10
  535. package/dist/src/tools/tool-registry.test.js.map +1 -1
  536. package/dist/src/tools/tools.d.ts +33 -16
  537. package/dist/src/tools/tools.js +115 -5
  538. package/dist/src/tools/tools.js.map +1 -1
  539. package/dist/src/tools/tools.test.js +1 -2
  540. package/dist/src/tools/tools.test.js.map +1 -1
  541. package/dist/src/tools/web-fetch.d.ts +3 -2
  542. package/dist/src/tools/web-fetch.js +14 -10
  543. package/dist/src/tools/web-fetch.js.map +1 -1
  544. package/dist/src/tools/web-fetch.test.js +55 -16
  545. package/dist/src/tools/web-fetch.test.js.map +1 -1
  546. package/dist/src/tools/web-search.d.ts +4 -3
  547. package/dist/src/tools/web-search.js +31 -8
  548. package/dist/src/tools/web-search.js.map +1 -1
  549. package/dist/src/tools/web-search.test.js +69 -1
  550. package/dist/src/tools/web-search.test.js.map +1 -1
  551. package/dist/src/tools/write-file.d.ts +4 -3
  552. package/dist/src/tools/write-file.js +17 -18
  553. package/dist/src/tools/write-file.js.map +1 -1
  554. package/dist/src/tools/write-file.test.js +108 -24
  555. package/dist/src/tools/write-file.test.js.map +1 -1
  556. package/dist/src/tools/write-todos.d.ts +25 -0
  557. package/dist/src/tools/write-todos.js +150 -0
  558. package/dist/src/tools/write-todos.js.map +1 -0
  559. package/dist/src/tools/write-todos.test.d.ts +6 -0
  560. package/dist/src/tools/write-todos.test.js +89 -0
  561. package/dist/src/tools/write-todos.test.js.map +1 -0
  562. package/dist/src/utils/bfsFileSearch.d.ts +2 -2
  563. package/dist/src/utils/bfsFileSearch.js +13 -7
  564. package/dist/src/utils/bfsFileSearch.js.map +1 -1
  565. package/dist/src/utils/bfsFileSearch.test.js +3 -3
  566. package/dist/src/utils/bfsFileSearch.test.js.map +1 -1
  567. package/dist/src/utils/editCorrector.d.ts +9 -8
  568. package/dist/src/utils/editCorrector.js +62 -19
  569. package/dist/src/utils/editCorrector.js.map +1 -1
  570. package/dist/src/utils/editCorrector.test.js +33 -82
  571. package/dist/src/utils/editCorrector.test.js.map +1 -1
  572. package/dist/src/utils/editor.js +32 -45
  573. package/dist/src/utils/editor.js.map +1 -1
  574. package/dist/src/utils/editor.test.js +62 -76
  575. package/dist/src/utils/editor.test.js.map +1 -1
  576. package/dist/src/utils/environmentContext.d.ts +2 -2
  577. package/dist/src/utils/errorParsing.js +2 -2
  578. package/dist/src/utils/errorParsing.js.map +1 -1
  579. package/dist/src/utils/errorParsing.test.js +7 -7
  580. package/dist/src/utils/errorParsing.test.js.map +1 -1
  581. package/dist/src/utils/errorReporting.d.ts +1 -1
  582. package/dist/src/utils/errors.d.ts +25 -0
  583. package/dist/src/utils/errors.js +42 -0
  584. package/dist/src/utils/errors.js.map +1 -1
  585. package/dist/src/utils/fetch.js +1 -1
  586. package/dist/src/utils/fetch.js.map +1 -1
  587. package/dist/src/utils/fileUtils.d.ts +24 -12
  588. package/dist/src/utils/fileUtils.js +170 -79
  589. package/dist/src/utils/fileUtils.js.map +1 -1
  590. package/dist/src/utils/fileUtils.test.js +347 -29
  591. package/dist/src/utils/fileUtils.test.js.map +1 -1
  592. package/dist/src/utils/filesearch/crawler.d.ts +1 -1
  593. package/dist/src/utils/filesearch/crawler.test.js +2 -2
  594. package/dist/src/utils/filesearch/crawler.test.js.map +1 -1
  595. package/dist/src/utils/filesearch/fileSearch.d.ts +1 -0
  596. package/dist/src/utils/filesearch/fileSearch.js +14 -9
  597. package/dist/src/utils/filesearch/fileSearch.js.map +1 -1
  598. package/dist/src/utils/filesearch/fileSearch.test.js +90 -0
  599. package/dist/src/utils/filesearch/fileSearch.test.js.map +1 -1
  600. package/dist/src/utils/flashFallback.test.d.ts +6 -0
  601. package/dist/src/utils/{flashFallback.integration.test.js → flashFallback.test.js} +33 -29
  602. package/dist/src/utils/flashFallback.test.js.map +1 -0
  603. package/dist/src/utils/geminiIgnoreParser.d.ts +18 -0
  604. package/dist/src/utils/geminiIgnoreParser.js +61 -0
  605. package/dist/src/utils/geminiIgnoreParser.js.map +1 -0
  606. package/dist/src/utils/geminiIgnoreParser.test.d.ts +6 -0
  607. package/dist/src/utils/geminiIgnoreParser.test.js +50 -0
  608. package/dist/src/utils/geminiIgnoreParser.test.js.map +1 -0
  609. package/dist/src/utils/generateContentResponseUtilities.d.ts +1 -2
  610. package/dist/src/utils/generateContentResponseUtilities.js +1 -13
  611. package/dist/src/utils/generateContentResponseUtilities.js.map +1 -1
  612. package/dist/src/utils/generateContentResponseUtilities.test.js +2 -40
  613. package/dist/src/utils/generateContentResponseUtilities.test.js.map +1 -1
  614. package/dist/src/utils/getFolderStructure.d.ts +2 -2
  615. package/dist/src/utils/getFolderStructure.js +3 -3
  616. package/dist/src/utils/getFolderStructure.js.map +1 -1
  617. package/dist/src/utils/getFolderStructure.test.js +4 -4
  618. package/dist/src/utils/getFolderStructure.test.js.map +1 -1
  619. package/dist/src/utils/gitIgnoreParser.d.ts +3 -7
  620. package/dist/src/utils/gitIgnoreParser.js +126 -35
  621. package/dist/src/utils/gitIgnoreParser.js.map +1 -1
  622. package/dist/src/utils/gitIgnoreParser.test.js +69 -38
  623. package/dist/src/utils/gitIgnoreParser.test.js.map +1 -1
  624. package/dist/src/utils/gitUtils.js +2 -2
  625. package/dist/src/utils/gitUtils.js.map +1 -1
  626. package/dist/src/utils/ignorePatterns.d.ts +103 -0
  627. package/dist/src/utils/ignorePatterns.js +220 -0
  628. package/dist/src/utils/ignorePatterns.js.map +1 -0
  629. package/dist/src/utils/ignorePatterns.test.d.ts +6 -0
  630. package/dist/src/utils/ignorePatterns.test.js +250 -0
  631. package/dist/src/utils/ignorePatterns.test.js.map +1 -0
  632. package/dist/src/utils/installationManager.d.ts +16 -0
  633. package/dist/src/utils/installationManager.js +50 -0
  634. package/dist/src/utils/installationManager.js.map +1 -0
  635. package/dist/src/utils/installationManager.test.d.ts +6 -0
  636. package/dist/src/utils/installationManager.test.js +83 -0
  637. package/dist/src/utils/installationManager.test.js.map +1 -0
  638. package/dist/src/utils/language-detection.d.ts +6 -0
  639. package/dist/src/utils/language-detection.js +101 -0
  640. package/dist/src/utils/language-detection.js.map +1 -0
  641. package/dist/src/utils/llm-edit-fixer.d.ts +26 -0
  642. package/dist/src/utils/llm-edit-fixer.js +131 -0
  643. package/dist/src/utils/llm-edit-fixer.js.map +1 -0
  644. package/dist/src/utils/llm-edit-fixer.test.d.ts +6 -0
  645. package/dist/src/utils/llm-edit-fixer.test.js +186 -0
  646. package/dist/src/utils/llm-edit-fixer.test.js.map +1 -0
  647. package/dist/src/utils/memoryDiscovery.d.ts +7 -6
  648. package/dist/src/utils/memoryDiscovery.js +68 -33
  649. package/dist/src/utils/memoryDiscovery.js.map +1 -1
  650. package/dist/src/utils/memoryDiscovery.test.js +88 -26
  651. package/dist/src/utils/memoryDiscovery.test.js.map +1 -1
  652. package/dist/src/utils/memoryImportProcessor.js +15 -22
  653. package/dist/src/utils/memoryImportProcessor.js.map +1 -1
  654. package/dist/src/utils/memoryImportProcessor.test.js +16 -141
  655. package/dist/src/utils/memoryImportProcessor.test.js.map +1 -1
  656. package/dist/src/utils/messageInspectors.d.ts +1 -1
  657. package/dist/src/utils/nextSpeakerChecker.d.ts +3 -3
  658. package/dist/src/utils/nextSpeakerChecker.js +8 -2
  659. package/dist/src/utils/nextSpeakerChecker.js.map +1 -1
  660. package/dist/src/utils/nextSpeakerChecker.test.js +75 -64
  661. package/dist/src/utils/nextSpeakerChecker.test.js.map +1 -1
  662. package/dist/src/utils/partUtils.d.ts +22 -1
  663. package/dist/src/utils/partUtils.js +68 -0
  664. package/dist/src/utils/partUtils.js.map +1 -1
  665. package/dist/src/utils/partUtils.test.js +112 -1
  666. package/dist/src/utils/partUtils.test.js.map +1 -1
  667. package/dist/src/utils/pathReader.d.ts +17 -0
  668. package/dist/src/utils/pathReader.js +92 -0
  669. package/dist/src/utils/pathReader.js.map +1 -0
  670. package/dist/src/utils/pathReader.test.d.ts +6 -0
  671. package/dist/src/utils/pathReader.test.js +363 -0
  672. package/dist/src/utils/pathReader.test.js.map +1 -0
  673. package/dist/src/utils/paths.d.ts +0 -17
  674. package/dist/src/utils/paths.js +2 -28
  675. package/dist/src/utils/paths.js.map +1 -1
  676. package/dist/src/utils/promptIdContext.d.ts +7 -0
  677. package/dist/src/utils/promptIdContext.js +8 -0
  678. package/dist/src/utils/promptIdContext.js.map +1 -0
  679. package/dist/src/utils/quotaErrorDetection.d.ts +1 -1
  680. package/dist/src/utils/retry.d.ts +3 -1
  681. package/dist/src/utils/retry.js +20 -5
  682. package/dist/src/utils/retry.js.map +1 -1
  683. package/dist/src/utils/retry.test.js +35 -3
  684. package/dist/src/utils/retry.test.js.map +1 -1
  685. package/dist/src/utils/schemaValidator.js +15 -1
  686. package/dist/src/utils/schemaValidator.js.map +1 -1
  687. package/dist/src/utils/schemaValidator.test.d.ts +6 -0
  688. package/dist/src/utils/schemaValidator.test.js +113 -0
  689. package/dist/src/utils/schemaValidator.test.js.map +1 -0
  690. package/dist/src/utils/session.js +1 -1
  691. package/dist/src/utils/session.js.map +1 -1
  692. package/dist/src/utils/shell-utils.d.ts +6 -1
  693. package/dist/src/utils/shell-utils.js +51 -30
  694. package/dist/src/utils/shell-utils.js.map +1 -1
  695. package/dist/src/utils/shell-utils.test.js +9 -0
  696. package/dist/src/utils/shell-utils.test.js.map +1 -1
  697. package/dist/src/utils/summarizer.d.ts +2 -2
  698. package/dist/src/utils/summarizer.test.js.map +1 -1
  699. package/dist/src/utils/systemEncoding.js +2 -2
  700. package/dist/src/utils/systemEncoding.js.map +1 -1
  701. package/dist/src/utils/systemEncoding.test.js +2 -2
  702. package/dist/src/utils/systemEncoding.test.js.map +1 -1
  703. package/dist/src/utils/terminalSerializer.d.ts +25 -0
  704. package/dist/src/utils/terminalSerializer.js +432 -0
  705. package/dist/src/utils/terminalSerializer.js.map +1 -0
  706. package/dist/src/utils/terminalSerializer.test.d.ts +6 -0
  707. package/dist/src/utils/terminalSerializer.test.js +176 -0
  708. package/dist/src/utils/terminalSerializer.test.js.map +1 -0
  709. package/dist/src/utils/textUtils.d.ts +5 -0
  710. package/dist/src/utils/textUtils.js +14 -0
  711. package/dist/src/utils/textUtils.js.map +1 -1
  712. package/dist/src/utils/textUtils.test.d.ts +6 -0
  713. package/dist/src/utils/textUtils.test.js +59 -0
  714. package/dist/src/utils/textUtils.test.js.map +1 -0
  715. package/dist/src/utils/thoughtUtils.d.ts +21 -0
  716. package/dist/src/utils/thoughtUtils.js +39 -0
  717. package/dist/src/utils/thoughtUtils.js.map +1 -0
  718. package/dist/src/utils/thoughtUtils.test.d.ts +6 -0
  719. package/dist/src/utils/thoughtUtils.test.js +78 -0
  720. package/dist/src/utils/thoughtUtils.test.js.map +1 -0
  721. package/dist/src/utils/tool-utils.d.ts +19 -0
  722. package/dist/src/utils/tool-utils.js +58 -0
  723. package/dist/src/utils/tool-utils.js.map +1 -0
  724. package/dist/src/utils/tool-utils.test.d.ts +6 -0
  725. package/dist/src/utils/tool-utils.test.js +61 -0
  726. package/dist/src/utils/tool-utils.test.js.map +1 -0
  727. package/dist/src/utils/userAccountManager.d.ts +20 -0
  728. package/dist/src/utils/userAccountManager.js +114 -0
  729. package/dist/src/utils/userAccountManager.js.map +1 -0
  730. package/dist/src/utils/userAccountManager.test.d.ts +6 -0
  731. package/dist/src/utils/{user_account.test.js → userAccountManager.test.js} +33 -30
  732. package/dist/src/utils/userAccountManager.test.js.map +1 -0
  733. package/dist/src/utils/workspaceContext.js +13 -7
  734. package/dist/src/utils/workspaceContext.js.map +1 -1
  735. package/dist/src/utils/workspaceContext.test.js +41 -16
  736. package/dist/src/utils/workspaceContext.test.js.map +1 -1
  737. package/dist/tsconfig.tsbuildinfo +1 -1
  738. package/package.json +18 -9
  739. package/dist/src/core/modelCheck.d.ts +0 -14
  740. package/dist/src/core/modelCheck.js +0 -62
  741. package/dist/src/core/modelCheck.js.map +0 -1
  742. package/dist/src/test-utils/tools.d.ts +0 -44
  743. package/dist/src/test-utils/tools.js.map +0 -1
  744. package/dist/src/utils/flashFallback.integration.test.js.map +0 -1
  745. package/dist/src/utils/user_account.d.ts +0 -9
  746. package/dist/src/utils/user_account.js +0 -109
  747. package/dist/src/utils/user_account.js.map +0 -1
  748. package/dist/src/utils/user_account.test.js.map +0 -1
  749. package/dist/src/utils/user_id.d.ts +0 -11
  750. package/dist/src/utils/user_id.js +0 -49
  751. package/dist/src/utils/user_id.js.map +0 -1
  752. package/dist/src/utils/user_id.test.js +0 -21
  753. package/dist/src/utils/user_id.test.js.map +0 -1
  754. /package/dist/src/{utils/flashFallback.integration.test.d.ts → agents/executor.test.d.ts} +0 -0
  755. /package/dist/src/{utils/user_account.test.d.ts → agents/invocation.test.d.ts} +0 -0
  756. /package/dist/src/{utils/user_id.test.d.ts → agents/registry.test.d.ts} +0 -0
@@ -5,48 +5,54 @@
5
5
  */
6
6
  import * as path from 'node:path';
7
7
  import process from 'node:process';
8
- import { AuthType, createContentGeneratorConfig, } from '../core/contentGenerator.js';
8
+ import { AuthType, createContentGenerator, createContentGeneratorConfig, } from '../core/contentGenerator.js';
9
9
  import { PromptRegistry } from '../prompts/prompt-registry.js';
10
10
  import { ToolRegistry } from '../tools/tool-registry.js';
11
11
  import { LSTool } from '../tools/ls.js';
12
12
  import { ReadFileTool } from '../tools/read-file.js';
13
13
  import { GrepTool } from '../tools/grep.js';
14
+ import { canUseRipgrep, RipGrepTool } from '../tools/ripGrep.js';
14
15
  import { GlobTool } from '../tools/glob.js';
15
16
  import { EditTool } from '../tools/edit.js';
17
+ import { SmartEditTool } from '../tools/smart-edit.js';
16
18
  import { ShellTool } from '../tools/shell.js';
17
19
  import { WriteFileTool } from '../tools/write-file.js';
18
20
  import { WebFetchTool } from '../tools/web-fetch.js';
19
21
  import { ReadManyFilesTool } from '../tools/read-many-files.js';
20
- import { MemoryTool, setGeminiMdFilename, GEMINI_CONFIG_DIR as GEMINI_DIR, } from '../tools/memoryTool.js';
22
+ import { MemoryTool, setGeminiMdFilename } from '../tools/memoryTool.js';
21
23
  import { WebSearchTool } from '../tools/web-search.js';
22
24
  import { GeminiClient } from '../core/client.js';
25
+ import { BaseLlmClient } from '../core/baseLlmClient.js';
23
26
  import { FileDiscoveryService } from '../services/fileDiscoveryService.js';
24
27
  import { GitService } from '../services/gitService.js';
25
- import { getProjectTempDir } from '../utils/paths.js';
26
- import { initializeTelemetry, DEFAULT_TELEMETRY_TARGET, DEFAULT_OTLP_ENDPOINT, StartSessionEvent, } from '../telemetry/index.js';
28
+ import { initializeTelemetry, DEFAULT_TELEMETRY_TARGET, DEFAULT_OTLP_ENDPOINT, uiTelemetryService, } from '../telemetry/index.js';
29
+ import { tokenLimit } from '../core/tokenLimits.js';
30
+ import { StartSessionEvent } from '../telemetry/index.js';
27
31
  import { DEFAULT_GEMINI_EMBEDDING_MODEL, DEFAULT_GEMINI_FLASH_MODEL, } from './models.js';
28
32
  import { shouldAttemptBrowserLaunch } from '../utils/browser.js';
29
- import { IdeClient } from '../ide/ide-client.js';
30
- import { StandardFileSystemService, } from '../services/fileSystemService.js';
31
- import { logCliConfiguration, logIdeConnection } from '../telemetry/loggers.js';
32
- import { IdeConnectionEvent, IdeConnectionType } from '../telemetry/types.js';
33
+ import { ideContextStore } from '../ide/ideContext.js';
34
+ import { WriteTodosTool } from '../tools/write-todos.js';
35
+ import { StandardFileSystemService } from '../services/fileSystemService.js';
36
+ import { logCliConfiguration, logRipgrepFallback, } from '../telemetry/loggers.js';
37
+ import { RipgrepFallbackEvent } from '../telemetry/types.js';
38
+ import { ModelRouterService } from '../routing/modelRouterService.js';
39
+ import { OutputFormat } from '../output/types.js';
33
40
  import { WorkspaceContext } from '../utils/workspaceContext.js';
41
+ import { Storage } from './storage.js';
42
+ import { FileExclusions } from '../utils/ignorePatterns.js';
43
+ import { MessageBus } from '../confirmation-bus/message-bus.js';
44
+ import { PolicyEngine } from '../policy/policy-engine.js';
45
+ import { ProxyAgent, setGlobalDispatcher } from 'undici';
34
46
  export var ApprovalMode;
35
47
  (function (ApprovalMode) {
36
48
  ApprovalMode["DEFAULT"] = "default";
37
49
  ApprovalMode["AUTO_EDIT"] = "autoEdit";
38
50
  ApprovalMode["YOLO"] = "yolo";
39
51
  })(ApprovalMode || (ApprovalMode = {}));
40
- // For memory files
41
- export const DEFAULT_MEMORY_FILE_FILTERING_OPTIONS = {
42
- respectGitIgnore: false,
43
- respectGeminiIgnore: true,
44
- };
45
- // For all other files
46
- export const DEFAULT_FILE_FILTERING_OPTIONS = {
47
- respectGitIgnore: true,
48
- respectGeminiIgnore: true,
49
- };
52
+ import { DEFAULT_MEMORY_FILE_FILTERING_OPTIONS, DEFAULT_FILE_FILTERING_OPTIONS, } from './constants.js';
53
+ export { DEFAULT_MEMORY_FILE_FILTERING_OPTIONS, DEFAULT_FILE_FILTERING_OPTIONS, };
54
+ export const DEFAULT_TRUNCATE_TOOL_OUTPUT_THRESHOLD = 4_000_000;
55
+ export const DEFAULT_TRUNCATE_TOOL_OUTPUT_LINES = 1000;
50
56
  export class MCPServerConfig {
51
57
  command;
52
58
  args;
@@ -64,6 +70,8 @@ export class MCPServerConfig {
64
70
  extensionName;
65
71
  oauth;
66
72
  authProviderType;
73
+ targetAudience;
74
+ targetServiceAccount;
67
75
  constructor(
68
76
  // For stdio transport
69
77
  command, args, env, cwd,
@@ -78,7 +86,12 @@ export class MCPServerConfig {
78
86
  // Metadata
79
87
  description, includeTools, excludeTools, extensionName,
80
88
  // OAuth configuration
81
- oauth, authProviderType) {
89
+ oauth, authProviderType,
90
+ // Service Account Configuration
91
+ /* targetAudience format: CLIENT_ID.apps.googleusercontent.com */
92
+ targetAudience,
93
+ /* targetServiceAccount format: <service-account-name>@<project-num>.iam.gserviceaccount.com */
94
+ targetServiceAccount) {
82
95
  this.command = command;
83
96
  this.args = args;
84
97
  this.env = env;
@@ -95,12 +108,15 @@ export class MCPServerConfig {
95
108
  this.extensionName = extensionName;
96
109
  this.oauth = oauth;
97
110
  this.authProviderType = authProviderType;
111
+ this.targetAudience = targetAudience;
112
+ this.targetServiceAccount = targetServiceAccount;
98
113
  }
99
114
  }
100
115
  export var AuthProviderType;
101
116
  (function (AuthProviderType) {
102
117
  AuthProviderType["DYNAMIC_DISCOVERY"] = "dynamic_discovery";
103
118
  AuthProviderType["GOOGLE_CREDENTIALS"] = "google_credentials";
119
+ AuthProviderType["SERVICE_ACCOUNT_IMPERSONATION"] = "service_account_impersonation";
104
120
  })(AuthProviderType || (AuthProviderType = {}));
105
121
  export class Config {
106
122
  toolRegistry;
@@ -108,6 +124,7 @@ export class Config {
108
124
  sessionId;
109
125
  fileSystemService;
110
126
  contentGeneratorConfig;
127
+ contentGenerator;
111
128
  embeddingModel;
112
129
  sandbox;
113
130
  targetDir;
@@ -116,6 +133,7 @@ export class Config {
116
133
  question;
117
134
  fullContext;
118
135
  coreTools;
136
+ allowedTools;
119
137
  excludeTools;
120
138
  toolDiscoveryCommand;
121
139
  toolCallCommand;
@@ -129,6 +147,8 @@ export class Config {
129
147
  telemetrySettings;
130
148
  usageStatisticsEnabled;
131
149
  geminiClient;
150
+ baseLlmClient;
151
+ modelRouterService;
132
152
  fileFiltering;
133
153
  fileDiscoveryService = null;
134
154
  gitService = undefined;
@@ -142,13 +162,12 @@ export class Config {
142
162
  folderTrustFeature;
143
163
  folderTrust;
144
164
  ideMode;
145
- ideClient;
146
165
  inFallbackMode = false;
147
166
  maxSessionTurns;
148
167
  listExtensions;
149
168
  _extensions;
150
169
  _blockedMcpServers;
151
- flashFallbackHandler;
170
+ fallbackModelHandler;
152
171
  quotaErrorOccurred = false;
153
172
  summarizeToolOutput;
154
173
  experimentalZedIntegration = false;
@@ -156,9 +175,26 @@ export class Config {
156
175
  chatCompression;
157
176
  interactive;
158
177
  trustedFolder;
178
+ useRipgrep;
159
179
  shouldUseNodePtyShell;
160
180
  skipNextSpeakerCheck;
181
+ shellExecutionConfig;
182
+ extensionManagement = true;
183
+ enablePromptCompletion = false;
184
+ truncateToolOutputThreshold;
185
+ truncateToolOutputLines;
186
+ enableToolOutputTruncation;
161
187
  initialized = false;
188
+ storage;
189
+ fileExclusions;
190
+ eventEmitter;
191
+ useSmartEdit;
192
+ useWriteTodos;
193
+ messageBus;
194
+ policyEngine;
195
+ outputSettings;
196
+ useModelRouter;
197
+ enableMessageBusIntegration;
162
198
  constructor(params) {
163
199
  this.sessionId = params.sessionId;
164
200
  this.embeddingModel =
@@ -171,6 +207,7 @@ export class Config {
171
207
  this.question = params.question;
172
208
  this.fullContext = params.fullContext ?? false;
173
209
  this.coreTools = params.coreTools;
210
+ this.allowedTools = params.allowedTools;
174
211
  this.excludeTools = params.excludeTools;
175
212
  this.toolDiscoveryCommand = params.toolDiscoveryCommand;
176
213
  this.toolCallCommand = params.toolCallCommand;
@@ -188,12 +225,14 @@ export class Config {
188
225
  otlpProtocol: params.telemetry?.otlpProtocol,
189
226
  logPrompts: params.telemetry?.logPrompts ?? true,
190
227
  outfile: params.telemetry?.outfile,
228
+ useCollector: params.telemetry?.useCollector,
191
229
  };
192
230
  this.usageStatisticsEnabled = params.usageStatisticsEnabled ?? true;
193
231
  this.fileFiltering = {
194
232
  respectGitIgnore: params.fileFiltering?.respectGitIgnore ?? true,
195
233
  respectGeminiIgnore: params.fileFiltering?.respectGeminiIgnore ?? true,
196
234
  enableRecursiveFileSearch: params.fileFiltering?.enableRecursiveFileSearch ?? true,
235
+ disableFuzzySearch: params.fileFiltering?.disableFuzzySearch ?? false,
197
236
  };
198
237
  this.checkpointing = params.checkpointing ?? false;
199
238
  this.proxy = params.proxy;
@@ -213,21 +252,52 @@ export class Config {
213
252
  this.folderTrustFeature = params.folderTrustFeature ?? false;
214
253
  this.folderTrust = params.folderTrust ?? false;
215
254
  this.ideMode = params.ideMode ?? false;
216
- this.ideClient = IdeClient.getInstance();
217
255
  this.loadMemoryFromIncludeDirectories =
218
256
  params.loadMemoryFromIncludeDirectories ?? false;
219
257
  this.chatCompression = params.chatCompression;
220
258
  this.interactive = params.interactive ?? false;
221
259
  this.trustedFolder = params.trustedFolder;
260
+ this.useRipgrep = params.useRipgrep ?? true;
222
261
  this.shouldUseNodePtyShell = params.shouldUseNodePtyShell ?? false;
223
- this.skipNextSpeakerCheck = params.skipNextSpeakerCheck ?? false;
262
+ this.skipNextSpeakerCheck = params.skipNextSpeakerCheck ?? true;
263
+ this.shellExecutionConfig = {
264
+ terminalWidth: params.shellExecutionConfig?.terminalWidth ?? 80,
265
+ terminalHeight: params.shellExecutionConfig?.terminalHeight ?? 24,
266
+ showColor: params.shellExecutionConfig?.showColor ?? false,
267
+ pager: params.shellExecutionConfig?.pager ?? 'cat',
268
+ };
269
+ this.truncateToolOutputThreshold =
270
+ params.truncateToolOutputThreshold ??
271
+ DEFAULT_TRUNCATE_TOOL_OUTPUT_THRESHOLD;
272
+ this.truncateToolOutputLines =
273
+ params.truncateToolOutputLines ?? DEFAULT_TRUNCATE_TOOL_OUTPUT_LINES;
274
+ this.enableToolOutputTruncation = params.enableToolOutputTruncation ?? true;
275
+ this.useSmartEdit = params.useSmartEdit ?? true;
276
+ this.useWriteTodos = params.useWriteTodos ?? false;
277
+ this.useModelRouter = params.useModelRouter ?? false;
278
+ this.enableMessageBusIntegration =
279
+ params.enableMessageBusIntegration ?? false;
280
+ this.extensionManagement = params.extensionManagement ?? true;
281
+ this.storage = new Storage(this.targetDir);
282
+ this.enablePromptCompletion = params.enablePromptCompletion ?? false;
283
+ this.fileExclusions = new FileExclusions(this);
284
+ this.eventEmitter = params.eventEmitter;
285
+ this.policyEngine = new PolicyEngine(params.policyEngineConfig);
286
+ this.messageBus = new MessageBus(this.policyEngine);
287
+ this.outputSettings = {
288
+ format: params.output?.format ?? OutputFormat.TEXT,
289
+ };
224
290
  if (params.contextFileName) {
225
291
  setGeminiMdFilename(params.contextFileName);
226
292
  }
227
293
  if (this.telemetrySettings.enabled) {
228
294
  initializeTelemetry(this);
229
295
  }
230
- logCliConfiguration(this, new StartSessionEvent(this));
296
+ if (this.getProxy()) {
297
+ setGlobalDispatcher(new ProxyAgent(this.getProxy()));
298
+ }
299
+ this.geminiClient = new GeminiClient(this);
300
+ this.modelRouterService = new ModelRouterService(this);
231
301
  }
232
302
  /**
233
303
  * Must only be called once, throws if called again.
@@ -244,40 +314,51 @@ export class Config {
244
314
  }
245
315
  this.promptRegistry = new PromptRegistry();
246
316
  this.toolRegistry = await this.createToolRegistry();
317
+ await this.geminiClient.initialize();
318
+ }
319
+ getContentGenerator() {
320
+ return this.contentGenerator;
247
321
  }
248
322
  async refreshAuth(authMethod) {
249
- // Save the current conversation history before creating a new client
250
- let existingHistory = [];
251
- if (this.geminiClient && this.geminiClient.isInitialized()) {
252
- existingHistory = this.geminiClient.getHistory();
253
- }
254
- // Create new content generator config
255
- const newContentGeneratorConfig = createContentGeneratorConfig(this, authMethod);
256
- // Create and initialize new client in local variable first
257
- const newGeminiClient = new GeminiClient(this);
258
- await newGeminiClient.initialize(newContentGeneratorConfig);
259
323
  // Vertex and Genai have incompatible encryption and sending history with
260
324
  // throughtSignature from Genai to Vertex will fail, we need to strip them
261
- const fromGenaiToVertex = this.contentGeneratorConfig?.authType === AuthType.USE_GEMINI &&
262
- authMethod === AuthType.LOGIN_WITH_GOOGLE;
325
+ if (this.contentGeneratorConfig?.authType === AuthType.USE_GEMINI &&
326
+ authMethod === AuthType.LOGIN_WITH_GOOGLE) {
327
+ // Restore the conversation history to the new client
328
+ this.geminiClient.stripThoughtsFromHistory();
329
+ }
330
+ const newContentGeneratorConfig = createContentGeneratorConfig(this, authMethod);
331
+ this.contentGenerator = await createContentGenerator(newContentGeneratorConfig, this, this.getSessionId());
263
332
  // Only assign to instance properties after successful initialization
264
333
  this.contentGeneratorConfig = newContentGeneratorConfig;
265
- this.geminiClient = newGeminiClient;
266
- // Restore the conversation history to the new client
267
- if (existingHistory.length > 0) {
268
- this.geminiClient.setHistory(existingHistory, {
269
- stripThoughts: fromGenaiToVertex,
270
- });
271
- }
334
+ // Initialize BaseLlmClient now that the ContentGenerator is available
335
+ this.baseLlmClient = new BaseLlmClient(this.contentGenerator, this);
272
336
  // Reset the session flag since we're explicitly changing auth and using default model
273
337
  this.inFallbackMode = false;
338
+ // Logging the cli configuration here as the auth related configuration params would have been loaded by this point
339
+ logCliConfiguration(this, new StartSessionEvent(this, this.toolRegistry));
340
+ }
341
+ getUserTier() {
342
+ return this.contentGenerator?.userTier;
343
+ }
344
+ /**
345
+ * Provides access to the BaseLlmClient for stateless LLM operations.
346
+ */
347
+ getBaseLlmClient() {
348
+ if (!this.baseLlmClient) {
349
+ // Handle cases where initialization might be deferred or authentication failed
350
+ if (this.contentGenerator) {
351
+ this.baseLlmClient = new BaseLlmClient(this.getContentGenerator(), this);
352
+ }
353
+ else {
354
+ throw new Error('BaseLlmClient not initialized. Ensure authentication has occurred and ContentGenerator is ready.');
355
+ }
356
+ }
357
+ return this.baseLlmClient;
274
358
  }
275
359
  getSessionId() {
276
360
  return this.sessionId;
277
361
  }
278
- setSessionId(sessionId) {
279
- this.sessionId = sessionId;
280
- }
281
362
  shouldLoadMemoryFromIncludeDirectories() {
282
363
  return this.loadMemoryFromIncludeDirectories;
283
364
  }
@@ -285,12 +366,14 @@ export class Config {
285
366
  return this.contentGeneratorConfig;
286
367
  }
287
368
  getModel() {
288
- return this.contentGeneratorConfig?.model || this.model;
369
+ return this.model;
289
370
  }
290
371
  setModel(newModel) {
291
- if (this.contentGeneratorConfig) {
292
- this.contentGeneratorConfig.model = newModel;
372
+ // Do not allow Pro usage if the user is in fallback mode.
373
+ if (newModel.includes('pro') && this.isInFallbackMode()) {
374
+ return;
293
375
  }
376
+ this.model = newModel;
294
377
  }
295
378
  isInFallbackMode() {
296
379
  return this.inFallbackMode;
@@ -298,10 +381,8 @@ export class Config {
298
381
  setFallbackMode(active) {
299
382
  this.inFallbackMode = active;
300
383
  }
301
- setFlashFallbackHandler(handler) {
302
- console.log(`[Config] Registering flashFallbackHandler`);
303
- this.flashFallbackHandler = handler;
304
- console.log(`[Config] FlashFallbackHandler registered successfully`);
384
+ setFallbackModelHandler(handler) {
385
+ this.fallbackModelHandler = handler;
305
386
  }
306
387
  getMaxSessionTurns() {
307
388
  return this.maxSessionTurns;
@@ -353,6 +434,9 @@ export class Config {
353
434
  getCoreTools() {
354
435
  return this.coreTools;
355
436
  }
437
+ getAllowedTools() {
438
+ return this.allowedTools;
439
+ }
356
440
  getExcludeTools() {
357
441
  return this.excludeTools;
358
442
  }
@@ -384,6 +468,9 @@ export class Config {
384
468
  return this.approvalMode;
385
469
  }
386
470
  setApprovalMode(mode) {
471
+ if (!this.isTrustedFolder() && mode !== ApprovalMode.DEFAULT) {
472
+ throw new Error('Cannot enable privileged approval modes in an untrusted folder.');
473
+ }
387
474
  this.approvalMode = mode;
388
475
  }
389
476
  getShowMemoryUsage() {
@@ -410,18 +497,21 @@ export class Config {
410
497
  getTelemetryOutfile() {
411
498
  return this.telemetrySettings.outfile;
412
499
  }
500
+ getTelemetryUseCollector() {
501
+ return this.telemetrySettings.useCollector ?? false;
502
+ }
413
503
  getGeminiClient() {
414
504
  return this.geminiClient;
415
505
  }
416
- getGeminiDir() {
417
- return path.join(this.targetDir, GEMINI_DIR);
418
- }
419
- getProjectTempDir() {
420
- return getProjectTempDir(this.getProjectRoot());
506
+ getModelRouterService() {
507
+ return this.modelRouterService;
421
508
  }
422
509
  getEnableRecursiveFileSearch() {
423
510
  return this.fileFiltering.enableRecursiveFileSearch;
424
511
  }
512
+ getFileFilteringDisableFuzzySearch() {
513
+ return this.fileFiltering.disableFuzzySearch;
514
+ }
425
515
  getFileFilteringRespectGitIgnore() {
426
516
  return this.fileFiltering.respectGitIgnore;
427
517
  }
@@ -434,6 +524,20 @@ export class Config {
434
524
  respectGeminiIgnore: this.fileFiltering.respectGeminiIgnore,
435
525
  };
436
526
  }
527
+ /**
528
+ * Gets custom file exclusion patterns from configuration.
529
+ * TODO: This is a placeholder implementation. In the future, this could
530
+ * read from settings files, CLI arguments, or environment variables.
531
+ */
532
+ getCustomExcludes() {
533
+ // Placeholder implementation - returns empty array for now
534
+ // Future implementation could read from:
535
+ // - User settings file
536
+ // - Project-specific configuration
537
+ // - Environment variables
538
+ // - CLI arguments
539
+ return [];
540
+ }
437
541
  getCheckpointingEnabled() {
438
542
  return this.checkpointing;
439
543
  }
@@ -464,6 +568,9 @@ export class Config {
464
568
  getListExtensions() {
465
569
  return this.listExtensions;
466
570
  }
571
+ getExtensionManagement() {
572
+ return this.extensionManagement;
573
+ }
467
574
  getExtensions() {
468
575
  return this._extensions;
469
576
  }
@@ -485,28 +592,33 @@ export class Config {
485
592
  getFolderTrustFeature() {
486
593
  return this.folderTrustFeature;
487
594
  }
595
+ /**
596
+ * Returns 'true' if the workspace is considered "trusted".
597
+ * 'false' for untrusted.
598
+ */
488
599
  getFolderTrust() {
489
600
  return this.folderTrust;
490
601
  }
491
602
  isTrustedFolder() {
492
- return this.trustedFolder;
603
+ // isWorkspaceTrusted in cli/src/config/trustedFolder.js returns undefined
604
+ // when the file based trust value is unavailable, since it is mainly used
605
+ // in the initialization for trust dialogs, etc. Here we return true since
606
+ // config.isTrustedFolder() is used for the main business logic of blocking
607
+ // tool calls etc in the rest of the application.
608
+ //
609
+ // Default value is true since we load with trusted settings to avoid
610
+ // restarts in the more common path. If the user chooses to mark the folder
611
+ // as untrusted, the CLI will restart and we will have the trust value
612
+ // reloaded.
613
+ const context = ideContextStore.get();
614
+ if (context?.workspaceState?.isTrusted !== undefined) {
615
+ return context.workspaceState.isTrusted;
616
+ }
617
+ return this.trustedFolder ?? true;
493
618
  }
494
619
  setIdeMode(value) {
495
620
  this.ideMode = value;
496
621
  }
497
- async setIdeModeAndSyncConnection(value) {
498
- this.ideMode = value;
499
- if (value) {
500
- await this.ideClient.connect();
501
- logIdeConnection(this, new IdeConnectionEvent(IdeConnectionType.SESSION));
502
- }
503
- else {
504
- await this.ideClient.disconnect();
505
- }
506
- }
507
- getIdeClient() {
508
- return this.ideClient;
509
- }
510
622
  /**
511
623
  * Get the current FileSystemService
512
624
  */
@@ -525,57 +637,154 @@ export class Config {
525
637
  isInteractive() {
526
638
  return this.interactive;
527
639
  }
640
+ getUseRipgrep() {
641
+ return this.useRipgrep;
642
+ }
528
643
  getShouldUseNodePtyShell() {
529
644
  return this.shouldUseNodePtyShell;
530
645
  }
531
646
  getSkipNextSpeakerCheck() {
532
647
  return this.skipNextSpeakerCheck;
533
648
  }
649
+ getShellExecutionConfig() {
650
+ return this.shellExecutionConfig;
651
+ }
652
+ setShellExecutionConfig(config) {
653
+ this.shellExecutionConfig = {
654
+ terminalWidth: config.terminalWidth ?? this.shellExecutionConfig.terminalWidth,
655
+ terminalHeight: config.terminalHeight ?? this.shellExecutionConfig.terminalHeight,
656
+ showColor: config.showColor ?? this.shellExecutionConfig.showColor,
657
+ pager: config.pager ?? this.shellExecutionConfig.pager,
658
+ };
659
+ }
660
+ getScreenReader() {
661
+ return this.accessibility.screenReader ?? false;
662
+ }
663
+ getEnablePromptCompletion() {
664
+ return this.enablePromptCompletion;
665
+ }
666
+ getEnableToolOutputTruncation() {
667
+ return this.enableToolOutputTruncation;
668
+ }
669
+ getTruncateToolOutputThreshold() {
670
+ return Math.min(
671
+ // Estimate remaining context window in characters (1 token ~= 4 chars).
672
+ 4 *
673
+ (tokenLimit(this.model) - uiTelemetryService.getLastPromptTokenCount()), this.truncateToolOutputThreshold);
674
+ }
675
+ getTruncateToolOutputLines() {
676
+ return this.truncateToolOutputLines;
677
+ }
678
+ getUseSmartEdit() {
679
+ return this.useSmartEdit;
680
+ }
681
+ getUseWriteTodos() {
682
+ return this.useWriteTodos;
683
+ }
684
+ getOutputFormat() {
685
+ return this.outputSettings?.format
686
+ ? this.outputSettings.format
687
+ : OutputFormat.TEXT;
688
+ }
689
+ getUseModelRouter() {
690
+ return this.useModelRouter;
691
+ }
534
692
  async getGitService() {
535
693
  if (!this.gitService) {
536
- this.gitService = new GitService(this.targetDir);
694
+ this.gitService = new GitService(this.targetDir, this.storage);
537
695
  await this.gitService.initialize();
538
696
  }
539
697
  return this.gitService;
540
698
  }
699
+ getFileExclusions() {
700
+ return this.fileExclusions;
701
+ }
702
+ getMessageBus() {
703
+ return this.messageBus;
704
+ }
705
+ getPolicyEngine() {
706
+ return this.policyEngine;
707
+ }
708
+ getEnableMessageBusIntegration() {
709
+ return this.enableMessageBusIntegration;
710
+ }
541
711
  async createToolRegistry() {
542
- const registry = new ToolRegistry(this);
712
+ const registry = new ToolRegistry(this, this.eventEmitter);
543
713
  // helper to create & register core tools that are enabled
544
714
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
545
715
  const registerCoreTool = (ToolClass, ...args) => {
546
716
  const className = ToolClass.name;
547
717
  const toolName = ToolClass.Name || className;
548
718
  const coreTools = this.getCoreTools();
549
- const excludeTools = this.getExcludeTools();
550
- let isEnabled = false;
551
- if (coreTools === undefined) {
552
- isEnabled = true;
553
- }
554
- else {
555
- isEnabled = coreTools.some((tool) => tool === className ||
556
- tool === toolName ||
557
- tool.startsWith(`${className}(`) ||
558
- tool.startsWith(`${toolName}(`));
719
+ const excludeTools = this.getExcludeTools() || [];
720
+ // On some platforms, the className can be minified to _ClassName.
721
+ const normalizedClassName = className.replace(/^_+/, '');
722
+ let isEnabled = true; // Enabled by default if coreTools is not set.
723
+ if (coreTools) {
724
+ isEnabled = coreTools.some((tool) => tool === toolName ||
725
+ tool === normalizedClassName ||
726
+ tool.startsWith(`${toolName}(`) ||
727
+ tool.startsWith(`${normalizedClassName}(`));
559
728
  }
560
- if (excludeTools?.includes(className) ||
561
- excludeTools?.includes(toolName)) {
729
+ const isExcluded = excludeTools.some((tool) => tool === toolName || tool === normalizedClassName);
730
+ if (isExcluded) {
562
731
  isEnabled = false;
563
732
  }
564
733
  if (isEnabled) {
565
- registry.registerTool(new ToolClass(...args));
734
+ // Pass message bus to tools when feature flag is enabled
735
+ // This first implementation is only focused on the general case of
736
+ // the tool registry.
737
+ const messageBusEnabled = this.getEnableMessageBusIntegration();
738
+ if (this.debugMode && messageBusEnabled) {
739
+ console.log(`[DEBUG] enableMessageBusIntegration setting: ${messageBusEnabled}`);
740
+ }
741
+ const toolArgs = messageBusEnabled
742
+ ? [...args, this.getMessageBus()]
743
+ : args;
744
+ if (this.debugMode && messageBusEnabled) {
745
+ console.log(`[DEBUG] Registering ${className} with messageBus: ${messageBusEnabled ? 'YES' : 'NO'}`);
746
+ }
747
+ registry.registerTool(new ToolClass(...toolArgs));
566
748
  }
567
749
  };
568
750
  registerCoreTool(LSTool, this);
569
751
  registerCoreTool(ReadFileTool, this);
570
- registerCoreTool(GrepTool, this);
752
+ if (this.getUseRipgrep()) {
753
+ let useRipgrep = false;
754
+ let errorString = undefined;
755
+ try {
756
+ useRipgrep = await canUseRipgrep();
757
+ }
758
+ catch (error) {
759
+ errorString = String(error);
760
+ }
761
+ if (useRipgrep) {
762
+ registerCoreTool(RipGrepTool, this);
763
+ }
764
+ else {
765
+ logRipgrepFallback(this, new RipgrepFallbackEvent(errorString));
766
+ registerCoreTool(GrepTool, this);
767
+ }
768
+ }
769
+ else {
770
+ registerCoreTool(GrepTool, this);
771
+ }
571
772
  registerCoreTool(GlobTool, this);
572
- registerCoreTool(EditTool, this);
773
+ if (this.getUseSmartEdit()) {
774
+ registerCoreTool(SmartEditTool, this);
775
+ }
776
+ else {
777
+ registerCoreTool(EditTool, this);
778
+ }
573
779
  registerCoreTool(WriteFileTool, this);
574
780
  registerCoreTool(WebFetchTool, this);
575
781
  registerCoreTool(ReadManyFilesTool, this);
576
782
  registerCoreTool(ShellTool, this);
577
783
  registerCoreTool(MemoryTool);
578
784
  registerCoreTool(WebSearchTool, this);
785
+ if (this.getUseWriteTodos()) {
786
+ registerCoreTool(WriteTodosTool, this);
787
+ }
579
788
  await registry.discoverAllTools();
580
789
  return registry;
581
790
  }