@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
@@ -93,7 +93,7 @@ describe('parseAndFormatApiError', () => {
93
93
  const result = parseAndFormatApiError(errorMessage, AuthType.LOGIN_WITH_GOOGLE, undefined, 'gemini-2.5-pro', DEFAULT_GEMINI_FLASH_MODEL);
94
94
  expect(result).toContain("[API Error: Quota exceeded for quota metric 'Gemini 2.5 Pro Requests'");
95
95
  expect(result).toContain('You have reached your daily gemini-2.5-pro quota limit');
96
- expect(result).toContain('upgrade to a Gemini Code Assist Standard or Enterprise plan');
96
+ expect(result).toContain('upgrade to get higher limits');
97
97
  });
98
98
  it('should format a regular 429 API error with standard message for Google auth', () => {
99
99
  const errorMessage = 'got status: 429 Too Many Requests. {"error":{"code":429,"message":"Rate limit exceeded","status":"RESOURCE_EXHAUSTED"}}';
@@ -122,7 +122,7 @@ describe('parseAndFormatApiError', () => {
122
122
  expect(result).toContain("[API Error: Quota exceeded for quota metric 'Gemini 2.5 Pro Requests'");
123
123
  expect(result).toContain('You have reached your daily gemini-2.5-pro quota limit');
124
124
  expect(result).toContain('We appreciate you for choosing Gemini Code Assist and the Gemini CLI');
125
- expect(result).not.toContain('upgrade to a Gemini Code Assist Standard or Enterprise plan');
125
+ expect(result).not.toContain('upgrade to get higher limits');
126
126
  });
127
127
  it('should format a 429 API error with Pro quota exceeded message for Google auth (Legacy tier)', () => {
128
128
  const errorMessage = 'got status: 429 Too Many Requests. {"error":{"code":429,"message":"Quota exceeded for quota metric \'Gemini 2.5 Pro Requests\' and limit \'RequestsPerDay\' of service \'generativelanguage.googleapis.com\' for consumer \'project_number:123456789\'.","status":"RESOURCE_EXHAUSTED"}}';
@@ -130,7 +130,7 @@ describe('parseAndFormatApiError', () => {
130
130
  expect(result).toContain("[API Error: Quota exceeded for quota metric 'Gemini 2.5 Pro Requests'");
131
131
  expect(result).toContain('You have reached your daily gemini-2.5-pro quota limit');
132
132
  expect(result).toContain('We appreciate you for choosing Gemini Code Assist and the Gemini CLI');
133
- expect(result).not.toContain('upgrade to a Gemini Code Assist Standard or Enterprise plan');
133
+ expect(result).not.toContain('upgrade to get higher limits');
134
134
  });
135
135
  it('should handle different Gemini 2.5 version strings in Pro quota exceeded errors', () => {
136
136
  const errorMessage25 = 'got status: 429 Too Many Requests. {"error":{"code":429,"message":"Quota exceeded for quota metric \'Gemini 2.5 Pro Requests\' and limit \'RequestsPerDay\' of service \'generativelanguage.googleapis.com\' for consumer \'project_number:123456789\'.","status":"RESOURCE_EXHAUSTED"}}';
@@ -139,8 +139,8 @@ describe('parseAndFormatApiError', () => {
139
139
  const resultPreview = parseAndFormatApiError(errorMessagePreview, AuthType.LOGIN_WITH_GOOGLE, undefined, 'gemini-2.5-preview-pro', DEFAULT_GEMINI_FLASH_MODEL);
140
140
  expect(result25).toContain('You have reached your daily gemini-2.5-pro quota limit');
141
141
  expect(resultPreview).toContain('You have reached your daily gemini-2.5-preview-pro quota limit');
142
- expect(result25).toContain('upgrade to a Gemini Code Assist Standard or Enterprise plan');
143
- expect(resultPreview).toContain('upgrade to a Gemini Code Assist Standard or Enterprise plan');
142
+ expect(result25).toContain('upgrade to get higher limits');
143
+ expect(resultPreview).toContain('upgrade to get higher limits');
144
144
  });
145
145
  it('should not match non-Pro models with similar version strings', () => {
146
146
  // Test that Flash models with similar version strings don't match
@@ -159,14 +159,14 @@ describe('parseAndFormatApiError', () => {
159
159
  expect(result).toContain("[API Error: Quota exceeded for quota metric 'GenerationRequests'");
160
160
  expect(result).toContain('You have reached your daily quota limit');
161
161
  expect(result).toContain('We appreciate you for choosing Gemini Code Assist and the Gemini CLI');
162
- expect(result).not.toContain('upgrade to a Gemini Code Assist Standard or Enterprise plan');
162
+ expect(result).not.toContain('upgrade to get higher limits');
163
163
  });
164
164
  it('should format a regular 429 API error with standard message for Google auth (Standard tier)', () => {
165
165
  const errorMessage = 'got status: 429 Too Many Requests. {"error":{"code":429,"message":"Rate limit exceeded","status":"RESOURCE_EXHAUSTED"}}';
166
166
  const result = parseAndFormatApiError(errorMessage, AuthType.LOGIN_WITH_GOOGLE, UserTierId.STANDARD, 'gemini-2.5-pro', DEFAULT_GEMINI_FLASH_MODEL);
167
167
  expect(result).toContain('[API Error: Rate limit exceeded');
168
168
  expect(result).toContain('We appreciate you for choosing Gemini Code Assist and the Gemini CLI');
169
- expect(result).not.toContain('upgrade to a Gemini Code Assist Standard or Enterprise plan');
169
+ expect(result).not.toContain('upgrade to get higher limits');
170
170
  });
171
171
  });
172
172
  //# sourceMappingURL=errorParsing.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"errorParsing.test.js","sourceRoot":"","sources":["../../../src/utils/errorParsing.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"errorParsing.test.js","sourceRoot":"","sources":["../../../src/utils/errorParsing.test.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AACnE,OAAO,EAAE,0BAA0B,EAAE,MAAM,qBAAqB,CAAC;AACjE,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAGvD,QAAQ,CAAC,wBAAwB,EAAE,GAAG,EAAE;IACtC,MAAM,aAAa,GAAG,yCAAyC,CAAC;IAChE,MAAM,aAAa,GAAG,4CAA4C,CAAC;IAEnE,EAAE,CAAC,sCAAsC,EAAE,GAAG,EAAE;QAC9C,MAAM,YAAY,GAChB,6IAA6I,CAAC;QAChJ,MAAM,QAAQ,GACZ,yFAAyF,CAAC;QAC5F,MAAM,CAAC,sBAAsB,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC9D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wDAAwD,EAAE,GAAG,EAAE;QAChE,MAAM,YAAY,GAChB,yHAAyH,CAAC;QAC5H,MAAM,MAAM,GAAG,sBAAsB,CACnC,YAAY,EACZ,SAAS,EACT,SAAS,EACT,gBAAgB,EAChB,0BAA0B,CAC3B,CAAC;QACF,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,iCAAiC,CAAC,CAAC;QAC5D,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CACtB,8GAA8G,CAC/G,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yDAAyD,EAAE,GAAG,EAAE;QACjE,MAAM,YAAY,GAChB,yHAAyH,CAAC;QAC5H,MAAM,MAAM,GAAG,sBAAsB,CACnC,YAAY,EACZ,QAAQ,CAAC,iBAAiB,EAC1B,SAAS,EACT,gBAAgB,EAChB,0BAA0B,CAC3B,CAAC;QACF,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,iCAAiC,CAAC,CAAC;QAC5D,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CACtB,8GAA8G,CAC/G,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uDAAuD,EAAE,GAAG,EAAE;QAC/D,MAAM,YAAY,GAChB,yHAAyH,CAAC;QAC5H,MAAM,MAAM,GAAG,sBAAsB,CAAC,YAAY,EAAE,QAAQ,CAAC,aAAa,CAAC,CAAC;QAC5E,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,iCAAiC,CAAC,CAAC;QAC5D,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;IAC1C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8DAA8D,EAAE,GAAG,EAAE;QACtE,MAAM,YAAY,GAAG,mCAAmC,CAAC;QACzD,MAAM,CAAC,sBAAsB,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAC/C,eAAe,YAAY,GAAG,CAC/B,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uDAAuD,EAAE,GAAG,EAAE;QAC/D,MAAM,YAAY,GAAG,sCAAsC,CAAC;QAC5D,MAAM,CAAC,sBAAsB,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAC/C,eAAe,YAAY,GAAG,CAC/B,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+DAA+D,EAAE,GAAG,EAAE;QACvE,MAAM,YAAY,GAAG,qDAAqD,CAAC;QAC3E,MAAM,CAAC,sBAAsB,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAC/C,eAAe,YAAY,GAAG,CAC/B,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kCAAkC,EAAE,GAAG,EAAE;QAC1C,MAAM,kBAAkB,GAAG,IAAI,CAAC,SAAS,CAAC;YACxC,KAAK,EAAE;gBACL,IAAI,EAAE,GAAG;gBACT,OAAO,EACL,wJAAwJ;gBAC1J,MAAM,EAAE,oBAAoB;aAC7B;SACF,CAAC,CAAC;QAEH,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC;YAClC,KAAK,EAAE;gBACL,IAAI,EAAE,GAAG;gBACT,OAAO,EAAE,kBAAkB;gBAC3B,MAAM,EAAE,mBAAmB;aAC5B;SACF,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,sBAAsB,CAAC,YAAY,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC;QACzE,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,wBAAwB,CAAC,CAAC;QACnD,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;IAC1C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iCAAiC,EAAE,GAAG,EAAE;QACzC,MAAM,KAAK,GAAoB;YAC7B,OAAO,EAAE,6BAA6B;YACtC,MAAM,EAAE,GAAG;SACZ,CAAC;QACF,MAAM,QAAQ,GAAG,0CAA0C,CAAC;QAC5D,MAAM,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACvD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6DAA6D,EAAE,GAAG,EAAE;QACrE,MAAM,KAAK,GAAoB;YAC7B,OAAO,EAAE,qBAAqB;YAC9B,MAAM,EAAE,GAAG;SACZ,CAAC;QACF,MAAM,MAAM,GAAG,sBAAsB,CAAC,KAAK,EAAE,QAAQ,CAAC,aAAa,CAAC,CAAC;QACrE,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,kCAAkC,CAAC,CAAC;QAC7D,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;IAC1C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qCAAqC,EAAE,GAAG,EAAE;QAC7C,MAAM,KAAK,GAAG,KAAK,CAAC;QACpB,MAAM,QAAQ,GAAG,yCAAyC,CAAC;QAC3D,MAAM,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACvD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2FAA2F,EAAE,GAAG,EAAE;QACnG,MAAM,YAAY,GAChB,0RAA0R,CAAC;QAC7R,MAAM,MAAM,GAAG,sBAAsB,CACnC,YAAY,EACZ,QAAQ,CAAC,iBAAiB,EAC1B,SAAS,EACT,gBAAgB,EAChB,0BAA0B,CAC3B,CAAC;QACF,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CACtB,uEAAuE,CACxE,CAAC;QACF,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CACtB,wDAAwD,CACzD,CAAC;QACF,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,8BAA8B,CAAC,CAAC;IAC3D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6EAA6E,EAAE,GAAG,EAAE;QACrF,MAAM,YAAY,GAChB,yHAAyH,CAAC;QAC5H,MAAM,MAAM,GAAG,sBAAsB,CACnC,YAAY,EACZ,QAAQ,CAAC,iBAAiB,EAC1B,SAAS,EACT,gBAAgB,EAChB,0BAA0B,CAC3B,CAAC;QACF,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,iCAAiC,CAAC,CAAC;QAC5D,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CACtB,8GAA8G,CAC/G,CAAC;QACF,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,SAAS,CAC1B,wDAAwD,CACzD,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mFAAmF,EAAE,GAAG,EAAE;QAC3F,MAAM,YAAY,GAChB,qRAAqR,CAAC;QACxR,MAAM,MAAM,GAAG,sBAAsB,CACnC,YAAY,EACZ,QAAQ,CAAC,iBAAiB,EAC1B,SAAS,EACT,gBAAgB,EAChB,0BAA0B,CAC3B,CAAC;QACF,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CACtB,kEAAkE,CACnE,CAAC;QACF,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,yCAAyC,CAAC,CAAC;QACpE,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,SAAS,CAC1B,wDAAwD,CACzD,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gFAAgF,EAAE,GAAG,EAAE;QACxF,MAAM,YAAY,GAChB,0RAA0R,CAAC;QAC7R,MAAM,MAAM,GAAG,sBAAsB,CACnC,YAAY,EACZ,QAAQ,CAAC,iBAAiB,EAC1B,SAAS,EACT,gBAAgB,EAChB,0BAA0B,CAC3B,CAAC;QACF,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CACtB,uEAAuE,CACxE,CAAC;QACF,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CACtB,wDAAwD,CACzD,CAAC;QACF,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,yCAAyC,CAAC,CAAC;IAC1E,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+FAA+F,EAAE,GAAG,EAAE;QACvG,MAAM,YAAY,GAChB,0RAA0R,CAAC;QAC7R,MAAM,MAAM,GAAG,sBAAsB,CACnC,YAAY,EACZ,QAAQ,CAAC,iBAAiB,EAC1B,UAAU,CAAC,QAAQ,EACnB,gBAAgB,EAChB,0BAA0B,CAC3B,CAAC;QACF,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CACtB,uEAAuE,CACxE,CAAC;QACF,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CACtB,wDAAwD,CACzD,CAAC;QACF,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CACtB,sEAAsE,CACvE,CAAC;QACF,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,8BAA8B,CAAC,CAAC;IAC/D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6FAA6F,EAAE,GAAG,EAAE;QACrG,MAAM,YAAY,GAChB,0RAA0R,CAAC;QAC7R,MAAM,MAAM,GAAG,sBAAsB,CACnC,YAAY,EACZ,QAAQ,CAAC,iBAAiB,EAC1B,UAAU,CAAC,MAAM,EACjB,gBAAgB,EAChB,0BAA0B,CAC3B,CAAC;QACF,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CACtB,uEAAuE,CACxE,CAAC;QACF,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CACtB,wDAAwD,CACzD,CAAC;QACF,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CACtB,sEAAsE,CACvE,CAAC;QACF,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,8BAA8B,CAAC,CAAC;IAC/D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iFAAiF,EAAE,GAAG,EAAE;QACzF,MAAM,cAAc,GAClB,0RAA0R,CAAC;QAC7R,MAAM,mBAAmB,GACvB,kSAAkS,CAAC;QAErS,MAAM,QAAQ,GAAG,sBAAsB,CACrC,cAAc,EACd,QAAQ,CAAC,iBAAiB,EAC1B,SAAS,EACT,gBAAgB,EAChB,0BAA0B,CAC3B,CAAC;QACF,MAAM,aAAa,GAAG,sBAAsB,CAC1C,mBAAmB,EACnB,QAAQ,CAAC,iBAAiB,EAC1B,SAAS,EACT,wBAAwB,EACxB,0BAA0B,CAC3B,CAAC;QAEF,MAAM,CAAC,QAAQ,CAAC,CAAC,SAAS,CACxB,wDAAwD,CACzD,CAAC;QACF,MAAM,CAAC,aAAa,CAAC,CAAC,SAAS,CAC7B,gEAAgE,CACjE,CAAC;QACF,MAAM,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,8BAA8B,CAAC,CAAC;QAC3D,MAAM,CAAC,aAAa,CAAC,CAAC,SAAS,CAAC,8BAA8B,CAAC,CAAC;IAClE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8DAA8D,EAAE,GAAG,EAAE;QACtE,kEAAkE;QAClE,MAAM,CACJ,uBAAuB,CACrB,uEAAuE,CACxE,CACF,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACd,MAAM,CACJ,uBAAuB,CACrB,+EAA+E,CAChF,CACF,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAEd,yBAAyB;QACzB,MAAM,CACJ,uBAAuB,CACrB,uEAAuE,CACxE,CACF,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACd,MAAM,CACJ,uBAAuB,CACrB,0EAA0E,CAC3E,CACF,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAEd,8BAA8B;QAC9B,MAAM,CACJ,uBAAuB,CACrB,gEAAgE,CACjE,CACF,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACd,MAAM,CACJ,uBAAuB,CACrB,+DAA+D,CAChE,CACF,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAChB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gFAAgF,EAAE,GAAG,EAAE;QACxF,MAAM,YAAY,GAChB,qRAAqR,CAAC;QACxR,MAAM,MAAM,GAAG,sBAAsB,CACnC,YAAY,EACZ,QAAQ,CAAC,iBAAiB,EAC1B,UAAU,CAAC,QAAQ,EACnB,gBAAgB,EAChB,0BAA0B,CAC3B,CAAC;QACF,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CACtB,kEAAkE,CACnE,CAAC;QACF,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,yCAAyC,CAAC,CAAC;QACpE,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CACtB,sEAAsE,CACvE,CAAC;QACF,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,8BAA8B,CAAC,CAAC;IAC/D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6FAA6F,EAAE,GAAG,EAAE;QACrG,MAAM,YAAY,GAChB,yHAAyH,CAAC;QAC5H,MAAM,MAAM,GAAG,sBAAsB,CACnC,YAAY,EACZ,QAAQ,CAAC,iBAAiB,EAC1B,UAAU,CAAC,QAAQ,EACnB,gBAAgB,EAChB,0BAA0B,CAC3B,CAAC;QACF,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,iCAAiC,CAAC,CAAC;QAC5D,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CACtB,sEAAsE,CACvE,CAAC;QACF,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,8BAA8B,CAAC,CAAC;IAC/D,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -3,7 +3,7 @@
3
3
  * Copyright 2025 Google LLC
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
- import { Content } from '@google/genai';
6
+ import type { Content } from '@google/genai';
7
7
  /**
8
8
  * Generates an error report, writes it to a temporary file, and logs information to console.error.
9
9
  * @param error The error object.
@@ -5,6 +5,31 @@
5
5
  */
6
6
  export declare function isNodeError(error: unknown): error is NodeJS.ErrnoException;
7
7
  export declare function getErrorMessage(error: unknown): string;
8
+ export declare class FatalError extends Error {
9
+ readonly exitCode: number;
10
+ constructor(message: string, exitCode: number);
11
+ }
12
+ export declare class FatalAuthenticationError extends FatalError {
13
+ constructor(message: string);
14
+ }
15
+ export declare class FatalInputError extends FatalError {
16
+ constructor(message: string);
17
+ }
18
+ export declare class FatalSandboxError extends FatalError {
19
+ constructor(message: string);
20
+ }
21
+ export declare class FatalConfigError extends FatalError {
22
+ constructor(message: string);
23
+ }
24
+ export declare class FatalTurnLimitedError extends FatalError {
25
+ constructor(message: string);
26
+ }
27
+ export declare class FatalToolExecutionError extends FatalError {
28
+ constructor(message: string);
29
+ }
30
+ export declare class FatalCancellationError extends FatalError {
31
+ constructor(message: string);
32
+ }
8
33
  export declare class ForbiddenError extends Error {
9
34
  }
10
35
  export declare class UnauthorizedError extends Error {
@@ -17,6 +17,48 @@ export function getErrorMessage(error) {
17
17
  return 'Failed to get error details';
18
18
  }
19
19
  }
20
+ export class FatalError extends Error {
21
+ exitCode;
22
+ constructor(message, exitCode) {
23
+ super(message);
24
+ this.exitCode = exitCode;
25
+ }
26
+ }
27
+ export class FatalAuthenticationError extends FatalError {
28
+ constructor(message) {
29
+ super(message, 41);
30
+ }
31
+ }
32
+ export class FatalInputError extends FatalError {
33
+ constructor(message) {
34
+ super(message, 42);
35
+ }
36
+ }
37
+ export class FatalSandboxError extends FatalError {
38
+ constructor(message) {
39
+ super(message, 44);
40
+ }
41
+ }
42
+ export class FatalConfigError extends FatalError {
43
+ constructor(message) {
44
+ super(message, 52);
45
+ }
46
+ }
47
+ export class FatalTurnLimitedError extends FatalError {
48
+ constructor(message) {
49
+ super(message, 53);
50
+ }
51
+ }
52
+ export class FatalToolExecutionError extends FatalError {
53
+ constructor(message) {
54
+ super(message, 54);
55
+ }
56
+ }
57
+ export class FatalCancellationError extends FatalError {
58
+ constructor(message) {
59
+ super(message, 130); // Standard exit code for SIGINT
60
+ }
61
+ }
20
62
  export class ForbiddenError extends Error {
21
63
  }
22
64
  export class UnauthorizedError extends Error {
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../src/utils/errors.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAQH,MAAM,UAAU,WAAW,CAAC,KAAc;IACxC,OAAO,KAAK,YAAY,KAAK,IAAI,MAAM,IAAI,KAAK,CAAC;AACnD,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,KAAc;IAC5C,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;QAC3B,OAAO,KAAK,CAAC,OAAO,CAAC;IACvB,CAAC;IACD,IAAI,CAAC;QACH,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;IACvB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,6BAA6B,CAAC;IACvC,CAAC;AACH,CAAC;AAED,MAAM,OAAO,cAAe,SAAQ,KAAK;CAAG;AAC5C,MAAM,OAAO,iBAAkB,SAAQ,KAAK;CAAG;AAC/C,MAAM,OAAO,eAAgB,SAAQ,KAAK;CAAG;AAS7C,MAAM,UAAU,eAAe,CAAC,KAAc;IAC5C,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,UAAU,IAAI,KAAK,EAAE,CAAC;QAC9D,MAAM,WAAW,GAAG,KAAoB,CAAC;QACzC,MAAM,IAAI,GAAG,iBAAiB,CAAC,WAAW,CAAC,CAAC;QAC5C,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;YACxD,QAAQ,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;gBACxB,KAAK,GAAG;oBACN,OAAO,IAAI,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;gBACjD,KAAK,GAAG;oBACN,OAAO,IAAI,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;gBACnD,KAAK,GAAG;oBACN,sDAAsD;oBACtD,mDAAmD;oBACnD,2CAA2C;oBAC3C,OAAO,IAAI,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;gBAChD,QAAQ;YACV,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAkB;IAC3C,oEAAoE;IACpE,IAAI,OAAO,KAAK,CAAC,QAAQ,EAAE,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7C,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAiB,CAAC;IAC1D,CAAC;IACD,OAAO,KAAK,CAAC,QAAQ,EAAE,IAAoB,CAAC;AAC9C,CAAC"}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../src/utils/errors.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,7 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
  import { getErrorMessage, isNodeError } from './errors.js';
7
- import { URL } from 'url';
7
+ import { URL } from 'node:url';
8
8
  const PRIVATE_IP_RANGES = [
9
9
  /^10\./,
10
10
  /^127\./,
@@ -1 +1 @@
1
- {"version":3,"file":"fetch.js","sourceRoot":"","sources":["../../../src/utils/fetch.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC3D,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,iBAAiB,GAAG;IACxB,OAAO;IACP,QAAQ;IACR,gCAAgC;IAChC,aAAa;IACb,OAAO;IACP,QAAQ;IACR,QAAQ;CACT,CAAC;AAEF,MAAM,OAAO,UAAW,SAAQ,KAAK;IAG1B;IAFT,YACE,OAAe,EACR,IAAa;QAEpB,KAAK,CAAC,OAAO,CAAC,CAAC;QAFR,SAAI,GAAJ,IAAI,CAAS;QAGpB,IAAI,CAAC,IAAI,GAAG,YAAY,CAAC;IAC3B,CAAC;CACF;AAED,MAAM,UAAU,WAAW,CAAC,GAAW;IACrC,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC;QACvC,OAAO,iBAAiB,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;IACjE,CAAC;IAAC,OAAO,EAAE,EAAE,CAAC;QACZ,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,GAAW,EACX,OAAe;IAEf,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;IACzC,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,OAAO,CAAC,CAAC;IAEhE,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC;QACjE,OAAO,QAAQ,CAAC;IAClB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,WAAW,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;YACrD,MAAM,IAAI,UAAU,CAAC,2BAA2B,OAAO,IAAI,EAAE,WAAW,CAAC,CAAC;QAC5E,CAAC;QACD,MAAM,IAAI,UAAU,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC;IAC/C,CAAC;YAAS,CAAC;QACT,YAAY,CAAC,SAAS,CAAC,CAAC;IAC1B,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"fetch.js","sourceRoot":"","sources":["../../../src/utils/fetch.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC3D,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAE/B,MAAM,iBAAiB,GAAG;IACxB,OAAO;IACP,QAAQ;IACR,gCAAgC;IAChC,aAAa;IACb,OAAO;IACP,QAAQ;IACR,QAAQ;CACT,CAAC;AAEF,MAAM,OAAO,UAAW,SAAQ,KAAK;IAG1B;IAFT,YACE,OAAe,EACR,IAAa;QAEpB,KAAK,CAAC,OAAO,CAAC,CAAC;QAFR,SAAI,GAAJ,IAAI,CAAS;QAGpB,IAAI,CAAC,IAAI,GAAG,YAAY,CAAC;IAC3B,CAAC;CACF;AAED,MAAM,UAAU,WAAW,CAAC,GAAW;IACrC,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC;QACvC,OAAO,iBAAiB,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;IACjE,CAAC;IAAC,OAAO,EAAE,EAAE,CAAC;QACZ,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,GAAW,EACX,OAAe;IAEf,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;IACzC,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,OAAO,CAAC,CAAC;IAEhE,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC;QACjE,OAAO,QAAQ,CAAC;IAClB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,WAAW,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;YACrD,MAAM,IAAI,UAAU,CAAC,2BAA2B,OAAO,IAAI,EAAE,WAAW,CAAC,CAAC;QAC5E,CAAC;QACD,MAAM,IAAI,UAAU,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC;IAC/C,CAAC;YAAS,CAAC;QACT,YAAY,CAAC,SAAS,CAAC,CAAC;IAC1B,CAAC;AACH,CAAC"}
@@ -3,9 +3,25 @@
3
3
  * Copyright 2025 Google LLC
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
- import { PartUnion } from '@google/genai';
7
- import { FileSystemService } from '../services/fileSystemService.js';
6
+ import type { PartUnion } from '@google/genai';
7
+ import type { FileSystemService } from '../services/fileSystemService.js';
8
+ import { ToolErrorType } from '../tools/tool-error.js';
8
9
  export declare const DEFAULT_ENCODING: BufferEncoding;
10
+ type UnicodeEncoding = 'utf8' | 'utf16le' | 'utf16be' | 'utf32le' | 'utf32be';
11
+ interface BOMInfo {
12
+ encoding: UnicodeEncoding;
13
+ bomLength: number;
14
+ }
15
+ /**
16
+ * Detect a Unicode BOM (Byte Order Mark) if present.
17
+ * Reads up to the first 4 bytes and returns encoding + BOM length, else null.
18
+ */
19
+ export declare function detectBOM(buf: Buffer): BOMInfo | null;
20
+ /**
21
+ * Read a file as text, honoring BOM encodings (UTF‑8/16/32) and stripping the BOM.
22
+ * Falls back to utf8 when no BOM is present.
23
+ */
24
+ export declare function readFileWithEncoding(filePath: string): Promise<string>;
9
25
  /**
10
26
  * Looks up the specific MIME type for a file path.
11
27
  * @param filePath Path to the file.
@@ -20,9 +36,9 @@ export declare function getSpecificMimeType(filePath: string): string | undefine
20
36
  */
21
37
  export declare function isWithinRoot(pathToCheck: string, rootDirectory: string): boolean;
22
38
  /**
23
- * Determines if a file is likely binary based on content sampling.
24
- * @param filePath Path to the file.
25
- * @returns Promise that resolves to true if the file appears to be binary.
39
+ * Heuristic: determine if a file is likely binary.
40
+ * Now BOM-aware: if a Unicode BOM is detected, we treat it as text.
41
+ * For non-BOM files, retain the existing null-byte and non-printable ratio checks.
26
42
  */
27
43
  export declare function isBinaryFile(filePath: string): Promise<boolean>;
28
44
  /**
@@ -31,17 +47,11 @@ export declare function isBinaryFile(filePath: string): Promise<boolean>;
31
47
  * @returns Promise that resolves to 'text', 'image', 'pdf', 'audio', 'video', 'binary' or 'svg'.
32
48
  */
33
49
  export declare function detectFileType(filePath: string): Promise<'text' | 'image' | 'pdf' | 'audio' | 'video' | 'binary' | 'svg'>;
34
- export declare enum FileErrorType {
35
- FILE_NOT_FOUND = "FILE_NOT_FOUND",
36
- IS_DIRECTORY = "IS_DIRECTORY",
37
- FILE_TOO_LARGE = "FILE_TOO_LARGE",
38
- READ_ERROR = "READ_ERROR"
39
- }
40
50
  export interface ProcessedFileReadResult {
41
51
  llmContent: PartUnion;
42
52
  returnDisplay: string;
43
53
  error?: string;
44
- errorType?: FileErrorType;
54
+ errorType?: ToolErrorType;
45
55
  isTruncated?: boolean;
46
56
  originalLineCount?: number;
47
57
  linesShown?: [number, number];
@@ -55,3 +65,5 @@ export interface ProcessedFileReadResult {
55
65
  * @returns ProcessedFileReadResult object.
56
66
  */
57
67
  export declare function processSingleFileContent(filePath: string, rootDirectory: string, fileSystemService: FileSystemService, offset?: number, limit?: number): Promise<ProcessedFileReadResult>;
68
+ export declare function fileExists(filePath: string): Promise<boolean>;
69
+ export {};
@@ -4,20 +4,139 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
  import fs from 'node:fs';
7
+ import fsPromises from 'node:fs/promises';
7
8
  import path from 'node:path';
8
- import mime from 'mime-types';
9
+ // eslint-disable-next-line import/no-internal-modules
10
+ import mime from 'mime/lite';
11
+ import { ToolErrorType } from '../tools/tool-error.js';
12
+ import { BINARY_EXTENSIONS } from './ignorePatterns.js';
9
13
  // Constants for text file processing
10
14
  const DEFAULT_MAX_LINES_TEXT_FILE = 2000;
11
15
  const MAX_LINE_LENGTH_TEXT_FILE = 2000;
12
16
  // Default values for encoding and separator format
13
17
  export const DEFAULT_ENCODING = 'utf-8';
18
+ /**
19
+ * Detect a Unicode BOM (Byte Order Mark) if present.
20
+ * Reads up to the first 4 bytes and returns encoding + BOM length, else null.
21
+ */
22
+ export function detectBOM(buf) {
23
+ if (buf.length >= 4) {
24
+ // UTF-32 LE: FF FE 00 00
25
+ if (buf[0] === 0xff &&
26
+ buf[1] === 0xfe &&
27
+ buf[2] === 0x00 &&
28
+ buf[3] === 0x00) {
29
+ return { encoding: 'utf32le', bomLength: 4 };
30
+ }
31
+ // UTF-32 BE: 00 00 FE FF
32
+ if (buf[0] === 0x00 &&
33
+ buf[1] === 0x00 &&
34
+ buf[2] === 0xfe &&
35
+ buf[3] === 0xff) {
36
+ return { encoding: 'utf32be', bomLength: 4 };
37
+ }
38
+ }
39
+ if (buf.length >= 3) {
40
+ // UTF-8: EF BB BF
41
+ if (buf[0] === 0xef && buf[1] === 0xbb && buf[2] === 0xbf) {
42
+ return { encoding: 'utf8', bomLength: 3 };
43
+ }
44
+ }
45
+ if (buf.length >= 2) {
46
+ // UTF-16 LE: FF FE (but not UTF-32 LE already matched above)
47
+ if (buf[0] === 0xff &&
48
+ buf[1] === 0xfe &&
49
+ (buf.length < 4 || buf[2] !== 0x00 || buf[3] !== 0x00)) {
50
+ return { encoding: 'utf16le', bomLength: 2 };
51
+ }
52
+ // UTF-16 BE: FE FF
53
+ if (buf[0] === 0xfe && buf[1] === 0xff) {
54
+ return { encoding: 'utf16be', bomLength: 2 };
55
+ }
56
+ }
57
+ return null;
58
+ }
59
+ /**
60
+ * Convert a UTF-16 BE buffer to a JS string by swapping to LE then using Node's decoder.
61
+ * (Node has 'utf16le' but not 'utf16be'.)
62
+ */
63
+ function decodeUTF16BE(buf) {
64
+ if (buf.length === 0)
65
+ return '';
66
+ const swapped = Buffer.from(buf); // swap16 mutates in place, so copy
67
+ swapped.swap16();
68
+ return swapped.toString('utf16le');
69
+ }
70
+ /**
71
+ * Decode a UTF-32 buffer (LE or BE) into a JS string.
72
+ * Invalid code points are replaced with U+FFFD, partial trailing bytes are ignored.
73
+ */
74
+ function decodeUTF32(buf, littleEndian) {
75
+ if (buf.length < 4)
76
+ return '';
77
+ const usable = buf.length - (buf.length % 4);
78
+ let out = '';
79
+ for (let i = 0; i < usable; i += 4) {
80
+ const cp = littleEndian
81
+ ? (buf[i] |
82
+ (buf[i + 1] << 8) |
83
+ (buf[i + 2] << 16) |
84
+ (buf[i + 3] << 24)) >>>
85
+ 0
86
+ : (buf[i + 3] |
87
+ (buf[i + 2] << 8) |
88
+ (buf[i + 1] << 16) |
89
+ (buf[i] << 24)) >>>
90
+ 0;
91
+ // Valid planes: 0x0000..0x10FFFF excluding surrogates
92
+ if (cp <= 0x10ffff && !(cp >= 0xd800 && cp <= 0xdfff)) {
93
+ out += String.fromCodePoint(cp);
94
+ }
95
+ else {
96
+ out += '\uFFFD';
97
+ }
98
+ }
99
+ return out;
100
+ }
101
+ /**
102
+ * Read a file as text, honoring BOM encodings (UTF‑8/16/32) and stripping the BOM.
103
+ * Falls back to utf8 when no BOM is present.
104
+ */
105
+ export async function readFileWithEncoding(filePath) {
106
+ // Read the file once; detect BOM and decode from the single buffer.
107
+ const full = await fs.promises.readFile(filePath);
108
+ if (full.length === 0)
109
+ return '';
110
+ const bom = detectBOM(full);
111
+ if (!bom) {
112
+ // No BOM → treat as UTF‑8
113
+ return full.toString('utf8');
114
+ }
115
+ // Strip BOM and decode per encoding
116
+ const content = full.subarray(bom.bomLength);
117
+ switch (bom.encoding) {
118
+ case 'utf8':
119
+ return content.toString('utf8');
120
+ case 'utf16le':
121
+ return content.toString('utf16le');
122
+ case 'utf16be':
123
+ return decodeUTF16BE(content);
124
+ case 'utf32le':
125
+ return decodeUTF32(content, true);
126
+ case 'utf32be':
127
+ return decodeUTF32(content, false);
128
+ default:
129
+ // Defensive fallback; should be unreachable
130
+ return content.toString('utf8');
131
+ }
132
+ }
14
133
  /**
15
134
  * Looks up the specific MIME type for a file path.
16
135
  * @param filePath Path to the file.
17
136
  * @returns The specific MIME type string (e.g., 'text/python', 'application/javascript') or undefined if not found or ambiguous.
18
137
  */
19
138
  export function getSpecificMimeType(filePath) {
20
- const lookedUpMime = mime.lookup(filePath);
139
+ const lookedUpMime = mime.getType(filePath);
21
140
  return typeof lookedUpMime === 'string' ? lookedUpMime : undefined;
22
141
  }
23
142
  /**
@@ -39,32 +158,33 @@ export function isWithinRoot(pathToCheck, rootDirectory) {
39
158
  normalizedPathToCheck.startsWith(rootWithSeparator));
40
159
  }
41
160
  /**
42
- * Determines if a file is likely binary based on content sampling.
43
- * @param filePath Path to the file.
44
- * @returns Promise that resolves to true if the file appears to be binary.
161
+ * Heuristic: determine if a file is likely binary.
162
+ * Now BOM-aware: if a Unicode BOM is detected, we treat it as text.
163
+ * For non-BOM files, retain the existing null-byte and non-printable ratio checks.
45
164
  */
46
165
  export async function isBinaryFile(filePath) {
47
- let fileHandle;
166
+ let fh = null;
48
167
  try {
49
- fileHandle = await fs.promises.open(filePath, 'r');
50
- // Read up to 4KB or file size, whichever is smaller
51
- const stats = await fileHandle.stat();
168
+ fh = await fs.promises.open(filePath, 'r');
169
+ const stats = await fh.stat();
52
170
  const fileSize = stats.size;
53
- if (fileSize === 0) {
54
- // Empty file is not considered binary for content checking
55
- return false;
56
- }
57
- const bufferSize = Math.min(4096, fileSize);
58
- const buffer = Buffer.alloc(bufferSize);
59
- const result = await fileHandle.read(buffer, 0, buffer.length, 0);
60
- const bytesRead = result.bytesRead;
171
+ if (fileSize === 0)
172
+ return false; // empty is not binary
173
+ // Sample up to 4KB from the head (previous behavior)
174
+ const sampleSize = Math.min(4096, fileSize);
175
+ const buf = Buffer.alloc(sampleSize);
176
+ const { bytesRead } = await fh.read(buf, 0, sampleSize, 0);
61
177
  if (bytesRead === 0)
62
178
  return false;
179
+ // BOM → text (avoid false positives for UTF‑16/32 with nulls)
180
+ const bom = detectBOM(buf.subarray(0, Math.min(4, bytesRead)));
181
+ if (bom)
182
+ return false;
63
183
  let nonPrintableCount = 0;
64
184
  for (let i = 0; i < bytesRead; i++) {
65
- if (buffer[i] === 0)
66
- return true; // Null byte is a strong indicator
67
- if (buffer[i] < 9 || (buffer[i] > 13 && buffer[i] < 32)) {
185
+ if (buf[i] === 0)
186
+ return true; // strong indicator of binary when no BOM
187
+ if (buf[i] < 9 || (buf[i] > 13 && buf[i] < 32)) {
68
188
  nonPrintableCount++;
69
189
  }
70
190
  }
@@ -72,22 +192,16 @@ export async function isBinaryFile(filePath) {
72
192
  return nonPrintableCount / bytesRead > 0.3;
73
193
  }
74
194
  catch (error) {
75
- // Log error for debugging while maintaining existing behavior
76
195
  console.warn(`Failed to check if file is binary: ${filePath}`, error instanceof Error ? error.message : String(error));
77
- // If any error occurs (e.g. file not found, permissions),
78
- // treat as not binary here; let higher-level functions handle existence/access errors.
79
196
  return false;
80
197
  }
81
198
  finally {
82
- // Safely close the file handle if it was successfully opened
83
- if (fileHandle) {
199
+ if (fh) {
84
200
  try {
85
- await fileHandle.close();
201
+ await fh.close();
86
202
  }
87
203
  catch (closeError) {
88
- // Log close errors for debugging while continuing with cleanup
89
204
  console.warn(`Failed to close file handle for: ${filePath}`, closeError instanceof Error ? closeError.message : String(closeError));
90
- // The important thing is that we attempted to clean up
91
205
  }
92
206
  }
93
207
  }
@@ -108,7 +222,7 @@ export async function detectFileType(filePath) {
108
222
  if (ext === '.svg') {
109
223
  return 'svg';
110
224
  }
111
- const lookedUpMimeType = mime.lookup(filePath); // Returns false if not found, or the mime type string
225
+ const lookedUpMimeType = mime.getType(filePath); // Returns null if not found, or the mime type string
112
226
  if (lookedUpMimeType) {
113
227
  if (lookedUpMimeType.startsWith('image/')) {
114
228
  return 'image';
@@ -125,36 +239,7 @@ export async function detectFileType(filePath) {
125
239
  }
126
240
  // Stricter binary check for common non-text extensions before content check
127
241
  // These are often not well-covered by mime-types or might be misidentified.
128
- if ([
129
- '.zip',
130
- '.tar',
131
- '.gz',
132
- '.exe',
133
- '.dll',
134
- '.so',
135
- '.class',
136
- '.jar',
137
- '.war',
138
- '.7z',
139
- '.doc',
140
- '.docx',
141
- '.xls',
142
- '.xlsx',
143
- '.ppt',
144
- '.pptx',
145
- '.odt',
146
- '.ods',
147
- '.odp',
148
- '.bin',
149
- '.dat',
150
- '.obj',
151
- '.o',
152
- '.a',
153
- '.lib',
154
- '.wasm',
155
- '.pyc',
156
- '.pyo',
157
- ].includes(ext)) {
242
+ if (BINARY_EXTENSIONS.includes(ext)) {
158
243
  return 'binary';
159
244
  }
160
245
  // Fall back to content-based check if mime type wasn't conclusive for image/pdf
@@ -164,13 +249,6 @@ export async function detectFileType(filePath) {
164
249
  }
165
250
  return 'text';
166
251
  }
167
- export var FileErrorType;
168
- (function (FileErrorType) {
169
- FileErrorType["FILE_NOT_FOUND"] = "FILE_NOT_FOUND";
170
- FileErrorType["IS_DIRECTORY"] = "IS_DIRECTORY";
171
- FileErrorType["FILE_TOO_LARGE"] = "FILE_TOO_LARGE";
172
- FileErrorType["READ_ERROR"] = "READ_ERROR";
173
- })(FileErrorType || (FileErrorType = {}));
174
252
  /**
175
253
  * Reads and processes a single file, handling text, images, and PDFs.
176
254
  * @param filePath Absolute path to the file.
@@ -184,27 +262,29 @@ export async function processSingleFileContent(filePath, rootDirectory, fileSyst
184
262
  if (!fs.existsSync(filePath)) {
185
263
  // Sync check is acceptable before async read
186
264
  return {
187
- llmContent: '',
265
+ llmContent: 'Could not read file because no file was found at the specified path.',
188
266
  returnDisplay: 'File not found.',
189
267
  error: `File not found: ${filePath}`,
190
- errorType: FileErrorType.FILE_NOT_FOUND,
268
+ errorType: ToolErrorType.FILE_NOT_FOUND,
191
269
  };
192
270
  }
193
271
  const stats = await fs.promises.stat(filePath);
194
272
  if (stats.isDirectory()) {
195
273
  return {
196
- llmContent: '',
274
+ llmContent: 'Could not read file because the provided path is a directory, not a file.',
197
275
  returnDisplay: 'Path is a directory.',
198
276
  error: `Path is a directory, not a file: ${filePath}`,
199
- errorType: FileErrorType.IS_DIRECTORY,
277
+ errorType: ToolErrorType.TARGET_IS_DIRECTORY,
200
278
  };
201
279
  }
202
- const fileSizeInBytes = stats.size;
203
- // 20MB limit
204
- const maxFileSize = 20 * 1024 * 1024;
205
- if (fileSizeInBytes > maxFileSize) {
206
- throw new Error(`File size exceeds the 20MB limit: ${filePath} (${(fileSizeInBytes /
207
- (1024 * 1024)).toFixed(2)}MB)`);
280
+ const fileSizeInMB = stats.size / (1024 * 1024);
281
+ if (fileSizeInMB > 20) {
282
+ return {
283
+ llmContent: 'File size exceeds the 20MB limit.',
284
+ returnDisplay: 'File size exceeds the 20MB limit.',
285
+ error: `File size exceeds the 20MB limit: ${filePath} (${fileSizeInMB.toFixed(2)}MB)`,
286
+ errorType: ToolErrorType.FILE_TOO_LARGE,
287
+ };
208
288
  }
209
289
  const fileType = await detectFileType(filePath);
210
290
  const relativePathForDisplay = path
@@ -225,14 +305,15 @@ export async function processSingleFileContent(filePath, rootDirectory, fileSyst
225
305
  returnDisplay: `Skipped large SVG file (>1MB): ${relativePathForDisplay}`,
226
306
  };
227
307
  }
228
- const content = await fileSystemService.readTextFile(filePath);
308
+ const content = await readFileWithEncoding(filePath);
229
309
  return {
230
310
  llmContent: content,
231
311
  returnDisplay: `Read SVG as text: ${relativePathForDisplay}`,
232
312
  };
233
313
  }
234
314
  case 'text': {
235
- const content = await fileSystemService.readTextFile(filePath);
315
+ // Use BOM-aware reader to avoid leaving a BOM character in content and to support UTF-16/32 transparently
316
+ const content = await readFileWithEncoding(filePath);
236
317
  const lines = content.split('\n');
237
318
  const originalLineCount = lines.length;
238
319
  const startLine = offset || 0;
@@ -282,7 +363,7 @@ export async function processSingleFileContent(filePath, rootDirectory, fileSyst
282
363
  llmContent: {
283
364
  inlineData: {
284
365
  data: base64Data,
285
- mimeType: mime.lookup(filePath) || 'application/octet-stream',
366
+ mimeType: mime.getType(filePath) || 'application/octet-stream',
286
367
  },
287
368
  },
288
369
  returnDisplay: `Read ${fileType} file: ${relativePathForDisplay}`,
@@ -308,7 +389,17 @@ export async function processSingleFileContent(filePath, rootDirectory, fileSyst
308
389
  llmContent: `Error reading file ${displayPath}: ${errorMessage}`,
309
390
  returnDisplay: `Error reading file ${displayPath}: ${errorMessage}`,
310
391
  error: `Error reading file ${filePath}: ${errorMessage}`,
392
+ errorType: ToolErrorType.READ_CONTENT_FAILURE,
311
393
  };
312
394
  }
313
395
  }
396
+ export async function fileExists(filePath) {
397
+ try {
398
+ await fsPromises.access(filePath, fs.constants.F_OK);
399
+ return true;
400
+ }
401
+ catch (_) {
402
+ return false;
403
+ }
404
+ }
314
405
  //# sourceMappingURL=fileUtils.js.map