@machina.ai/cell-cli-core 1.22.5-rc1 → 1.25.0-rc2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (732) hide show
  1. package/dist/docs/AFTER_MERGE_PROMPT.md +26 -0
  2. package/dist/docs/CHANGES.md +124 -0
  3. package/dist/docs/api-proxy.md +27 -0
  4. package/dist/docs/architecture.md +80 -0
  5. package/dist/docs/assets/connected_devtools.png +0 -0
  6. package/dist/docs/assets/gemini-screenshot.png +0 -0
  7. package/dist/docs/assets/monitoring-dashboard-logs.png +0 -0
  8. package/dist/docs/assets/monitoring-dashboard-metrics.png +0 -0
  9. package/dist/docs/assets/monitoring-dashboard-overview.png +0 -0
  10. package/dist/docs/assets/release_patch.png +0 -0
  11. package/dist/docs/assets/theme-ansi-light.png +0 -0
  12. package/dist/docs/assets/theme-ansi.png +0 -0
  13. package/dist/docs/assets/theme-atom-one.png +0 -0
  14. package/dist/docs/assets/theme-ayu-light.png +0 -0
  15. package/dist/docs/assets/theme-ayu.png +0 -0
  16. package/dist/docs/assets/theme-custom.png +0 -0
  17. package/dist/docs/assets/theme-default-light.png +0 -0
  18. package/dist/docs/assets/theme-default.png +0 -0
  19. package/dist/docs/assets/theme-dracula.png +0 -0
  20. package/dist/docs/assets/theme-github-light.png +0 -0
  21. package/dist/docs/assets/theme-github.png +0 -0
  22. package/dist/docs/assets/theme-google-light.png +0 -0
  23. package/dist/docs/assets/theme-xcode-light.png +0 -0
  24. package/dist/docs/changelogs/index.md +612 -0
  25. package/dist/docs/changelogs/latest.md +153 -0
  26. package/dist/docs/changelogs/preview.md +131 -0
  27. package/dist/docs/changelogs/releases.md +1162 -0
  28. package/dist/docs/cli/authentication.md +3 -0
  29. package/dist/docs/cli/checkpointing.md +94 -0
  30. package/dist/docs/cli/commands.md +357 -0
  31. package/dist/docs/cli/custom-commands.md +315 -0
  32. package/dist/docs/cli/enterprise.md +564 -0
  33. package/dist/docs/cli/gemini-ignore.md +71 -0
  34. package/dist/docs/cli/gemini-md.md +109 -0
  35. package/dist/docs/cli/generation-settings.md +210 -0
  36. package/dist/docs/cli/headless.md +388 -0
  37. package/dist/docs/cli/index.md +63 -0
  38. package/dist/docs/cli/keyboard-shortcuts.md +136 -0
  39. package/dist/docs/cli/model-routing.md +37 -0
  40. package/dist/docs/cli/model.md +62 -0
  41. package/dist/docs/cli/sandbox.md +171 -0
  42. package/dist/docs/cli/session-management.md +158 -0
  43. package/dist/docs/cli/settings.md +148 -0
  44. package/dist/docs/cli/skills.md +188 -0
  45. package/dist/docs/cli/system-prompt.md +94 -0
  46. package/dist/docs/cli/telemetry.md +813 -0
  47. package/dist/docs/cli/themes.md +237 -0
  48. package/dist/docs/cli/token-caching.md +20 -0
  49. package/dist/docs/cli/trusted-folders.md +95 -0
  50. package/dist/docs/cli/tutorials/skills-getting-started.md +124 -0
  51. package/dist/docs/cli/tutorials.md +87 -0
  52. package/dist/docs/cli/uninstall.md +47 -0
  53. package/dist/docs/core/index.md +101 -0
  54. package/dist/docs/core/memport.md +246 -0
  55. package/dist/docs/core/policy-engine.md +268 -0
  56. package/dist/docs/core/tools-api.md +131 -0
  57. package/dist/docs/examples/proxy-script.md +83 -0
  58. package/dist/docs/extensions/extension-releasing.md +183 -0
  59. package/dist/docs/extensions/getting-started-extensions.md +244 -0
  60. package/dist/docs/extensions/index.md +343 -0
  61. package/dist/docs/faq.md +153 -0
  62. package/dist/docs/get-started/authentication.md +321 -0
  63. package/dist/docs/get-started/configuration-v1.md +890 -0
  64. package/dist/docs/get-started/configuration.md +1643 -0
  65. package/dist/docs/get-started/examples.md +218 -0
  66. package/dist/docs/get-started/gemini-3.md +101 -0
  67. package/dist/docs/get-started/index.md +71 -0
  68. package/dist/docs/get-started/installation.md +141 -0
  69. package/dist/docs/hooks/best-practices.md +856 -0
  70. package/dist/docs/hooks/index.md +723 -0
  71. package/dist/docs/hooks/reference.md +178 -0
  72. package/dist/docs/hooks/writing-hooks.md +1044 -0
  73. package/dist/docs/ide-integration/ide-companion-spec.md +267 -0
  74. package/dist/docs/ide-integration/index.md +201 -0
  75. package/dist/docs/index.md +147 -0
  76. package/dist/docs/integration-tests.md +211 -0
  77. package/dist/docs/issue-and-pr-automation.md +134 -0
  78. package/dist/docs/local-development.md +128 -0
  79. package/dist/docs/mcp_integration.md +160 -0
  80. package/dist/docs/mermaid/context.mmd +103 -0
  81. package/dist/docs/mermaid/render-path.mmd +64 -0
  82. package/dist/docs/npm.md +62 -0
  83. package/dist/docs/quota-and-pricing.md +158 -0
  84. package/dist/docs/release-confidence.md +164 -0
  85. package/dist/docs/releases.md +540 -0
  86. package/dist/docs/sidebar.json +301 -0
  87. package/dist/docs/tools/file-system.md +217 -0
  88. package/dist/docs/tools/index.md +95 -0
  89. package/dist/docs/tools/mcp-server.md +1045 -0
  90. package/dist/docs/tools/memory.md +54 -0
  91. package/dist/docs/tools/shell.md +260 -0
  92. package/dist/docs/tools/todos.md +56 -0
  93. package/dist/docs/tools/web-fetch.md +59 -0
  94. package/dist/docs/tools/web-search.md +42 -0
  95. package/dist/docs/tos-privacy.md +96 -0
  96. package/dist/docs/troubleshooting.md +162 -0
  97. package/dist/package.json +7 -4
  98. package/dist/src/agents/a2a-client-manager.d.ts +82 -0
  99. package/dist/src/agents/a2a-client-manager.js +295 -0
  100. package/dist/src/agents/a2a-client-manager.js.map +1 -0
  101. package/dist/src/agents/a2a-client-manager.test.js +281 -0
  102. package/dist/src/agents/a2a-client-manager.test.js.map +1 -0
  103. package/dist/src/agents/a2aUtils.d.ts +29 -0
  104. package/dist/src/agents/a2aUtils.js +113 -0
  105. package/dist/src/agents/a2aUtils.js.map +1 -0
  106. package/dist/src/agents/a2aUtils.test.js +147 -0
  107. package/dist/src/agents/a2aUtils.test.js.map +1 -0
  108. package/dist/src/agents/agentLoader.d.ts +68 -0
  109. package/dist/src/agents/agentLoader.js +255 -0
  110. package/dist/src/agents/agentLoader.js.map +1 -0
  111. package/dist/src/agents/agentLoader.test.js +307 -0
  112. package/dist/src/agents/agentLoader.test.js.map +1 -0
  113. package/dist/src/agents/cli-help-agent.d.ts +24 -0
  114. package/dist/src/agents/cli-help-agent.js +85 -0
  115. package/dist/src/agents/cli-help-agent.js.map +1 -0
  116. package/dist/src/agents/cli-help-agent.test.js +65 -0
  117. package/dist/src/agents/cli-help-agent.test.js.map +1 -0
  118. package/dist/src/agents/codebase-investigator.d.ts +2 -2
  119. package/dist/src/agents/codebase-investigator.js +14 -8
  120. package/dist/src/agents/codebase-investigator.js.map +1 -1
  121. package/dist/src/agents/delegate-to-agent-tool.d.ts +2 -2
  122. package/dist/src/agents/delegate-to-agent-tool.js +25 -14
  123. package/dist/src/agents/delegate-to-agent-tool.js.map +1 -1
  124. package/dist/src/agents/delegate-to-agent-tool.test.js +101 -21
  125. package/dist/src/agents/delegate-to-agent-tool.test.js.map +1 -1
  126. package/dist/src/agents/{executor.d.ts → local-executor.d.ts} +5 -11
  127. package/dist/src/agents/{executor.js → local-executor.js} +123 -62
  128. package/dist/src/agents/local-executor.js.map +1 -0
  129. package/dist/src/agents/local-executor.test.d.ts +6 -0
  130. package/dist/src/agents/{executor.test.js → local-executor.test.js} +136 -58
  131. package/dist/src/agents/local-executor.test.js.map +1 -0
  132. package/dist/src/agents/{invocation.d.ts → local-invocation.d.ts} +6 -7
  133. package/dist/src/agents/{invocation.js → local-invocation.js} +9 -10
  134. package/dist/src/agents/local-invocation.js.map +1 -0
  135. package/dist/src/agents/local-invocation.test.d.ts +6 -0
  136. package/dist/src/agents/{invocation.test.js → local-invocation.test.js} +29 -20
  137. package/dist/src/agents/local-invocation.test.js.map +1 -0
  138. package/dist/src/agents/registry.d.ts +22 -1
  139. package/dist/src/agents/registry.js +192 -35
  140. package/dist/src/agents/registry.js.map +1 -1
  141. package/dist/src/agents/registry.test.js +407 -33
  142. package/dist/src/agents/registry.test.js.map +1 -1
  143. package/dist/src/agents/remote-invocation.d.ts +35 -0
  144. package/dist/src/agents/remote-invocation.js +126 -0
  145. package/dist/src/agents/remote-invocation.js.map +1 -0
  146. package/dist/src/agents/remote-invocation.test.d.ts +6 -0
  147. package/dist/src/agents/remote-invocation.test.js +201 -0
  148. package/dist/src/agents/remote-invocation.test.js.map +1 -0
  149. package/dist/src/agents/subagent-tool-wrapper.d.ts +2 -2
  150. package/dist/src/agents/subagent-tool-wrapper.js +11 -6
  151. package/dist/src/agents/subagent-tool-wrapper.js.map +1 -1
  152. package/dist/src/agents/subagent-tool-wrapper.test.js +33 -19
  153. package/dist/src/agents/subagent-tool-wrapper.test.js.map +1 -1
  154. package/dist/src/agents/types.d.ts +21 -15
  155. package/dist/src/agents/types.js.map +1 -1
  156. package/dist/src/availability/fallbackIntegration.test.d.ts +6 -0
  157. package/dist/src/availability/fallbackIntegration.test.js +58 -0
  158. package/dist/src/availability/fallbackIntegration.test.js.map +1 -0
  159. package/dist/src/availability/modelAvailabilityService.d.ts +2 -1
  160. package/dist/src/availability/policyHelpers.d.ts +4 -3
  161. package/dist/src/availability/policyHelpers.js +13 -22
  162. package/dist/src/availability/policyHelpers.js.map +1 -1
  163. package/dist/src/availability/policyHelpers.test.js +28 -18
  164. package/dist/src/availability/policyHelpers.test.js.map +1 -1
  165. package/dist/src/code_assist/experiments/experiments.d.ts +1 -1
  166. package/dist/src/code_assist/experiments/experiments.js +21 -0
  167. package/dist/src/code_assist/experiments/experiments.js.map +1 -1
  168. package/dist/src/code_assist/experiments/experiments_local.test.d.ts +6 -0
  169. package/dist/src/code_assist/experiments/experiments_local.test.js +110 -0
  170. package/dist/src/code_assist/experiments/experiments_local.test.js.map +1 -0
  171. package/dist/src/code_assist/oauth-credential-storage.js +3 -4
  172. package/dist/src/code_assist/oauth-credential-storage.js.map +1 -1
  173. package/dist/src/code_assist/oauth2.js +32 -2
  174. package/dist/src/code_assist/oauth2.js.map +1 -1
  175. package/dist/src/code_assist/oauth2.test.js +111 -16
  176. package/dist/src/code_assist/oauth2.test.js.map +1 -1
  177. package/dist/src/code_assist/server.d.ts +9 -1
  178. package/dist/src/code_assist/server.js +74 -11
  179. package/dist/src/code_assist/server.js.map +1 -1
  180. package/dist/src/code_assist/server.test.js +199 -27
  181. package/dist/src/code_assist/server.test.js.map +1 -1
  182. package/dist/src/code_assist/setup.js +6 -4
  183. package/dist/src/code_assist/setup.js.map +1 -1
  184. package/dist/src/code_assist/setup.test.js +63 -0
  185. package/dist/src/code_assist/setup.test.js.map +1 -1
  186. package/dist/src/code_assist/telemetry.d.ts +14 -0
  187. package/dist/src/code_assist/telemetry.js +157 -0
  188. package/dist/src/code_assist/telemetry.js.map +1 -0
  189. package/dist/src/code_assist/telemetry.test.d.ts +6 -0
  190. package/dist/src/code_assist/telemetry.test.js +301 -0
  191. package/dist/src/code_assist/telemetry.test.js.map +1 -0
  192. package/dist/src/code_assist/types.d.ts +77 -1
  193. package/dist/src/code_assist/types.js +28 -0
  194. package/dist/src/code_assist/types.js.map +1 -1
  195. package/dist/src/commands/memory.d.ts +11 -0
  196. package/dist/src/commands/memory.js +80 -0
  197. package/dist/src/commands/memory.js.map +1 -0
  198. package/dist/src/commands/memory.test.d.ts +6 -0
  199. package/dist/src/commands/memory.test.js +155 -0
  200. package/dist/src/commands/memory.test.js.map +1 -0
  201. package/dist/src/config/config.d.ts +120 -26
  202. package/dist/src/config/config.js +241 -120
  203. package/dist/src/config/config.js.map +1 -1
  204. package/dist/src/config/config.test.js +215 -43
  205. package/dist/src/config/config.test.js.map +1 -1
  206. package/dist/src/config/flashFallback.test.js +11 -35
  207. package/dist/src/config/flashFallback.test.js.map +1 -1
  208. package/dist/src/config/models.d.ts +8 -9
  209. package/dist/src/config/models.js +18 -15
  210. package/dist/src/config/models.js.map +1 -1
  211. package/dist/src/config/models.test.js +52 -16
  212. package/dist/src/config/models.test.js.map +1 -1
  213. package/dist/src/config/storage.d.ts +5 -0
  214. package/dist/src/config/storage.js +17 -2
  215. package/dist/src/config/storage.js.map +1 -1
  216. package/dist/src/config/storage.test.js +16 -0
  217. package/dist/src/config/storage.test.js.map +1 -1
  218. package/dist/src/confirmation-bus/message-bus.js +2 -1
  219. package/dist/src/confirmation-bus/message-bus.js.map +1 -1
  220. package/dist/src/core/baseLlmClient.js +44 -43
  221. package/dist/src/core/baseLlmClient.js.map +1 -1
  222. package/dist/src/core/baseLlmClient.test.js +12 -19
  223. package/dist/src/core/baseLlmClient.test.js.map +1 -1
  224. package/dist/src/core/client.d.ts +7 -1
  225. package/dist/src/core/client.js +245 -114
  226. package/dist/src/core/client.js.map +1 -1
  227. package/dist/src/core/client.test.js +277 -74
  228. package/dist/src/core/client.test.js.map +1 -1
  229. package/dist/src/core/clientHookTriggers.js +2 -2
  230. package/dist/src/core/clientHookTriggers.js.map +1 -1
  231. package/dist/src/core/contentGenerator.js +3 -3
  232. package/dist/src/core/contentGenerator.js.map +1 -1
  233. package/dist/src/core/contentGenerator.test.js +1 -7
  234. package/dist/src/core/contentGenerator.test.js.map +1 -1
  235. package/dist/src/core/coreToolHookTriggers.d.ts +9 -5
  236. package/dist/src/core/coreToolHookTriggers.js +119 -21
  237. package/dist/src/core/coreToolHookTriggers.js.map +1 -1
  238. package/dist/src/core/coreToolHookTriggers.test.d.ts +6 -0
  239. package/dist/src/core/coreToolHookTriggers.test.js +191 -0
  240. package/dist/src/core/coreToolHookTriggers.test.js.map +1 -0
  241. package/dist/src/core/coreToolScheduler.d.ts +7 -93
  242. package/dist/src/core/coreToolScheduler.js +133 -369
  243. package/dist/src/core/coreToolScheduler.js.map +1 -1
  244. package/dist/src/core/coreToolScheduler.test.js +252 -394
  245. package/dist/src/core/coreToolScheduler.test.js.map +1 -1
  246. package/dist/src/core/geminiChat.d.ts +26 -1
  247. package/dist/src/core/geminiChat.js +112 -79
  248. package/dist/src/core/geminiChat.js.map +1 -1
  249. package/dist/src/core/geminiChat.test.js +125 -92
  250. package/dist/src/core/geminiChat.test.js.map +1 -1
  251. package/dist/src/core/geminiChatHookTriggers.d.ts +8 -4
  252. package/dist/src/core/geminiChatHookTriggers.js +34 -12
  253. package/dist/src/core/geminiChatHookTriggers.js.map +1 -1
  254. package/dist/src/core/geminiChatHookTriggers.test.d.ts +6 -0
  255. package/dist/src/core/geminiChatHookTriggers.test.js +153 -0
  256. package/dist/src/core/geminiChatHookTriggers.test.js.map +1 -0
  257. package/dist/src/core/geminiChat_network_retry.test.js +4 -6
  258. package/dist/src/core/geminiChat_network_retry.test.js.map +1 -1
  259. package/dist/src/core/loggingContentGenerator.js +19 -2
  260. package/dist/src/core/loggingContentGenerator.js.map +1 -1
  261. package/dist/src/core/loggingContentGenerator.test.js +30 -0
  262. package/dist/src/core/loggingContentGenerator.test.js.map +1 -1
  263. package/dist/src/core/nonInteractiveToolExecutor.test.js +4 -4
  264. package/dist/src/core/nonInteractiveToolExecutor.test.js.map +1 -1
  265. package/dist/src/core/prompts.js +37 -13
  266. package/dist/src/core/prompts.js.map +1 -1
  267. package/dist/src/core/prompts.test.js +47 -3
  268. package/dist/src/core/prompts.test.js.map +1 -1
  269. package/dist/src/core/tokenLimits.js +6 -12
  270. package/dist/src/core/tokenLimits.js.map +1 -1
  271. package/dist/src/core/tokenLimits.test.js +8 -4
  272. package/dist/src/core/tokenLimits.test.js.map +1 -1
  273. package/dist/src/core/turn.d.ts +21 -22
  274. package/dist/src/core/turn.js +31 -21
  275. package/dist/src/core/turn.js.map +1 -1
  276. package/dist/src/core/turn.test.js +79 -5
  277. package/dist/src/core/turn.test.js.map +1 -1
  278. package/dist/src/fallback/handler.js +1 -7
  279. package/dist/src/fallback/handler.js.map +1 -1
  280. package/dist/src/fallback/handler.test.js +10 -29
  281. package/dist/src/fallback/handler.test.js.map +1 -1
  282. package/dist/src/generated/git-commit.d.ts +3 -3
  283. package/dist/src/generated/git-commit.js +3 -3
  284. package/dist/src/hooks/hookAggregator.js +7 -0
  285. package/dist/src/hooks/hookAggregator.js.map +1 -1
  286. package/dist/src/hooks/hookEventHandler.d.ts +9 -5
  287. package/dist/src/hooks/hookEventHandler.js +61 -15
  288. package/dist/src/hooks/hookEventHandler.js.map +1 -1
  289. package/dist/src/hooks/hookEventHandler.test.js +223 -8
  290. package/dist/src/hooks/hookEventHandler.test.js.map +1 -1
  291. package/dist/src/hooks/hookPlanner.d.ts +1 -5
  292. package/dist/src/hooks/hookPlanner.js +2 -7
  293. package/dist/src/hooks/hookPlanner.js.map +1 -1
  294. package/dist/src/hooks/hookPlanner.test.js +62 -2
  295. package/dist/src/hooks/hookPlanner.test.js.map +1 -1
  296. package/dist/src/hooks/hookRegistry.d.ts +6 -11
  297. package/dist/src/hooks/hookRegistry.js +41 -14
  298. package/dist/src/hooks/hookRegistry.js.map +1 -1
  299. package/dist/src/hooks/hookRegistry.test.js +166 -2
  300. package/dist/src/hooks/hookRegistry.test.js.map +1 -1
  301. package/dist/src/hooks/hookRunner.d.ts +5 -3
  302. package/dist/src/hooks/hookRunner.js +57 -17
  303. package/dist/src/hooks/hookRunner.js.map +1 -1
  304. package/dist/src/hooks/hookRunner.test.js +172 -35
  305. package/dist/src/hooks/hookRunner.test.js.map +1 -1
  306. package/dist/src/hooks/hookSystem.d.ts +12 -0
  307. package/dist/src/hooks/hookSystem.js +39 -1
  308. package/dist/src/hooks/hookSystem.js.map +1 -1
  309. package/dist/src/hooks/hookTranslator.js +2 -1
  310. package/dist/src/hooks/hookTranslator.js.map +1 -1
  311. package/dist/src/hooks/index.d.ts +1 -2
  312. package/dist/src/hooks/index.js +1 -3
  313. package/dist/src/hooks/index.js.map +1 -1
  314. package/dist/src/hooks/trustedHooks.d.ts +28 -0
  315. package/dist/src/hooks/trustedHooks.js +90 -0
  316. package/dist/src/hooks/trustedHooks.js.map +1 -0
  317. package/dist/src/hooks/trustedHooks.test.d.ts +6 -0
  318. package/dist/src/hooks/trustedHooks.test.js +154 -0
  319. package/dist/src/hooks/trustedHooks.test.js.map +1 -0
  320. package/dist/src/hooks/types.d.ts +41 -9
  321. package/dist/src/hooks/types.js +31 -41
  322. package/dist/src/hooks/types.js.map +1 -1
  323. package/dist/src/hooks/types.test.js +9 -52
  324. package/dist/src/hooks/types.test.js.map +1 -1
  325. package/dist/src/ide/detect-ide.d.ts +4 -0
  326. package/dist/src/ide/detect-ide.js +7 -2
  327. package/dist/src/ide/detect-ide.js.map +1 -1
  328. package/dist/src/ide/detect-ide.test.js +10 -0
  329. package/dist/src/ide/detect-ide.test.js.map +1 -1
  330. package/dist/src/ide/ide-client.js +4 -1
  331. package/dist/src/ide/ide-client.js.map +1 -1
  332. package/dist/src/ide/ide-installer.js +2 -2
  333. package/dist/src/ide/ide-installer.js.map +1 -1
  334. package/dist/src/ide/ide-installer.test.js +11 -2
  335. package/dist/src/ide/ide-installer.test.js.map +1 -1
  336. package/dist/src/index.d.ts +16 -2
  337. package/dist/src/index.js +18 -3
  338. package/dist/src/index.js.map +1 -1
  339. package/dist/src/mcp/oauth-provider.js +7 -3
  340. package/dist/src/mcp/oauth-provider.js.map +1 -1
  341. package/dist/src/mcp/oauth-provider.test.js +4 -1
  342. package/dist/src/mcp/oauth-provider.test.js.map +1 -1
  343. package/dist/src/mcp/oauth-utils.d.ts +8 -1
  344. package/dist/src/mcp/oauth-utils.js +31 -2
  345. package/dist/src/mcp/oauth-utils.js.map +1 -1
  346. package/dist/src/mcp/oauth-utils.test.js +42 -0
  347. package/dist/src/mcp/oauth-utils.test.js.map +1 -1
  348. package/dist/src/mcp/token-storage/file-token-storage.js +2 -2
  349. package/dist/src/mcp/token-storage/file-token-storage.js.map +1 -1
  350. package/dist/src/mcp/token-storage/keychain-token-storage.js +1 -1
  351. package/dist/src/mcp/token-storage/keychain-token-storage.js.map +1 -1
  352. package/dist/src/policy/config.js +62 -23
  353. package/dist/src/policy/config.js.map +1 -1
  354. package/dist/src/policy/config.test.js +24 -2
  355. package/dist/src/policy/config.test.js.map +1 -1
  356. package/dist/src/policy/persistence.test.js +1 -1
  357. package/dist/src/policy/persistence.test.js.map +1 -1
  358. package/dist/src/policy/policies/agent.toml +1 -1
  359. package/dist/src/policy/policies/write.toml +5 -0
  360. package/dist/src/policy/policies/yolo.toml +1 -0
  361. package/dist/src/policy/policy-engine.d.ts +4 -0
  362. package/dist/src/policy/policy-engine.js +137 -53
  363. package/dist/src/policy/policy-engine.js.map +1 -1
  364. package/dist/src/policy/policy-engine.test.js +289 -1
  365. package/dist/src/policy/policy-engine.test.js.map +1 -1
  366. package/dist/src/policy/policy-updater.test.js +5 -5
  367. package/dist/src/policy/policy-updater.test.js.map +1 -1
  368. package/dist/src/policy/shell-safety.test.js +371 -8
  369. package/dist/src/policy/shell-safety.test.js.map +1 -1
  370. package/dist/src/policy/toml-loader.d.ts +0 -8
  371. package/dist/src/policy/toml-loader.js +13 -45
  372. package/dist/src/policy/toml-loader.js.map +1 -1
  373. package/dist/src/policy/toml-loader.test.js +13 -0
  374. package/dist/src/policy/toml-loader.test.js.map +1 -1
  375. package/dist/src/policy/types.d.ts +10 -0
  376. package/dist/src/policy/utils.d.ts +21 -0
  377. package/dist/src/policy/utils.js +45 -0
  378. package/dist/src/policy/utils.js.map +1 -0
  379. package/dist/src/policy/utils.test.d.ts +6 -0
  380. package/dist/src/policy/utils.test.js +92 -0
  381. package/dist/src/policy/utils.test.js.map +1 -0
  382. package/dist/src/routing/routingStrategy.d.ts +2 -0
  383. package/dist/src/routing/strategies/classifierStrategy.js +1 -1
  384. package/dist/src/routing/strategies/classifierStrategy.js.map +1 -1
  385. package/dist/src/routing/strategies/classifierStrategy.test.js +16 -0
  386. package/dist/src/routing/strategies/classifierStrategy.test.js.map +1 -1
  387. package/dist/src/routing/strategies/compositeStrategy.js +4 -2
  388. package/dist/src/routing/strategies/compositeStrategy.js.map +1 -1
  389. package/dist/src/routing/strategies/compositeStrategy.test.js +11 -10
  390. package/dist/src/routing/strategies/compositeStrategy.test.js.map +1 -1
  391. package/dist/src/routing/strategies/fallbackStrategy.d.ts +1 -1
  392. package/dist/src/routing/strategies/fallbackStrategy.js +2 -5
  393. package/dist/src/routing/strategies/fallbackStrategy.js.map +1 -1
  394. package/dist/src/routing/strategies/fallbackStrategy.test.js +13 -6
  395. package/dist/src/routing/strategies/fallbackStrategy.test.js.map +1 -1
  396. package/dist/src/routing/strategies/overrideStrategy.d.ts +1 -1
  397. package/dist/src/routing/strategies/overrideStrategy.js +6 -6
  398. package/dist/src/routing/strategies/overrideStrategy.js.map +1 -1
  399. package/dist/src/routing/strategies/overrideStrategy.test.js +14 -0
  400. package/dist/src/routing/strategies/overrideStrategy.test.js.map +1 -1
  401. package/dist/src/scheduler/tool-executor.d.ts +22 -0
  402. package/dist/src/scheduler/tool-executor.js +198 -0
  403. package/dist/src/scheduler/tool-executor.js.map +1 -0
  404. package/dist/src/scheduler/tool-executor.test.d.ts +6 -0
  405. package/dist/src/scheduler/tool-executor.test.js +231 -0
  406. package/dist/src/scheduler/tool-executor.test.js.map +1 -0
  407. package/dist/src/scheduler/tool-modifier.d.ts +23 -0
  408. package/dist/src/scheduler/tool-modifier.js +50 -0
  409. package/dist/src/scheduler/tool-modifier.js.map +1 -0
  410. package/dist/src/scheduler/tool-modifier.test.d.ts +6 -0
  411. package/dist/src/scheduler/tool-modifier.test.js +159 -0
  412. package/dist/src/scheduler/tool-modifier.test.js.map +1 -0
  413. package/dist/src/scheduler/types.d.ts +95 -0
  414. package/dist/src/scheduler/types.js +7 -0
  415. package/dist/src/scheduler/types.js.map +1 -0
  416. package/dist/src/services/chatCompressionService.js +3 -10
  417. package/dist/src/services/chatCompressionService.js.map +1 -1
  418. package/dist/src/services/chatCompressionService.test.js +1 -0
  419. package/dist/src/services/chatCompressionService.test.js.map +1 -1
  420. package/dist/src/services/chatRecordingService.d.ts +7 -1
  421. package/dist/src/services/chatRecordingService.js +20 -2
  422. package/dist/src/services/chatRecordingService.js.map +1 -1
  423. package/dist/src/services/chatRecordingService.test.js +43 -0
  424. package/dist/src/services/chatRecordingService.test.js.map +1 -1
  425. package/dist/src/services/contextManager.d.ts +5 -11
  426. package/dist/src/services/contextManager.js +20 -17
  427. package/dist/src/services/contextManager.js.map +1 -1
  428. package/dist/src/services/contextManager.test.js +40 -41
  429. package/dist/src/services/contextManager.test.js.map +1 -1
  430. package/dist/src/services/environmentSanitization.d.ts +15 -0
  431. package/dist/src/services/environmentSanitization.js +142 -0
  432. package/dist/src/services/environmentSanitization.js.map +1 -0
  433. package/dist/src/services/environmentSanitization.test.d.ts +6 -0
  434. package/dist/src/services/environmentSanitization.test.js +284 -0
  435. package/dist/src/services/environmentSanitization.test.js.map +1 -0
  436. package/dist/src/services/gitService.js +10 -1
  437. package/dist/src/services/gitService.js.map +1 -1
  438. package/dist/src/services/gitService.test.js +28 -2
  439. package/dist/src/services/gitService.test.js.map +1 -1
  440. package/dist/src/services/loopDetectionService.js +2 -1
  441. package/dist/src/services/loopDetectionService.js.map +1 -1
  442. package/dist/src/services/loopDetectionService.test.js +14 -8
  443. package/dist/src/services/loopDetectionService.test.js.map +1 -1
  444. package/dist/src/services/modelConfig.integration.test.js +3 -3
  445. package/dist/src/services/modelConfig.integration.test.js.map +1 -1
  446. package/dist/src/services/modelConfigService.d.ts +38 -4
  447. package/dist/src/services/modelConfigService.js +135 -76
  448. package/dist/src/services/modelConfigService.js.map +1 -1
  449. package/dist/src/services/modelConfigService.test.js +116 -0
  450. package/dist/src/services/modelConfigService.test.js.map +1 -1
  451. package/dist/src/services/shellExecutionService.d.ts +2 -0
  452. package/dist/src/services/shellExecutionService.js +6 -50
  453. package/dist/src/services/shellExecutionService.js.map +1 -1
  454. package/dist/src/services/shellExecutionService.test.js +68 -4
  455. package/dist/src/services/shellExecutionService.test.js.map +1 -1
  456. package/dist/src/skills/skillLoader.d.ts +31 -0
  457. package/dist/src/skills/skillLoader.js +77 -0
  458. package/dist/src/skills/skillLoader.js.map +1 -0
  459. package/dist/src/skills/skillLoader.test.d.ts +6 -0
  460. package/dist/src/skills/skillLoader.test.js +75 -0
  461. package/dist/src/skills/skillLoader.test.js.map +1 -0
  462. package/dist/src/skills/skillManager.d.ts +69 -0
  463. package/dist/src/skills/skillManager.js +127 -0
  464. package/dist/src/skills/skillManager.js.map +1 -0
  465. package/dist/src/skills/skillManager.test.d.ts +6 -0
  466. package/dist/src/skills/skillManager.test.js +210 -0
  467. package/dist/src/skills/skillManager.test.js.map +1 -0
  468. package/dist/src/telemetry/clearcut-logger/clearcut-logger.d.ts +18 -9
  469. package/dist/src/telemetry/clearcut-logger/clearcut-logger.js +234 -160
  470. package/dist/src/telemetry/clearcut-logger/clearcut-logger.js.map +1 -1
  471. package/dist/src/telemetry/clearcut-logger/clearcut-logger.test.js +162 -32
  472. package/dist/src/telemetry/clearcut-logger/clearcut-logger.test.js.map +1 -1
  473. package/dist/src/telemetry/clearcut-logger/event-metadata-key.d.ts +11 -3
  474. package/dist/src/telemetry/clearcut-logger/event-metadata-key.js +24 -5
  475. package/dist/src/telemetry/clearcut-logger/event-metadata-key.js.map +1 -1
  476. package/dist/src/telemetry/loggers.d.ts +3 -3
  477. package/dist/src/telemetry/loggers.js +6 -5
  478. package/dist/src/telemetry/loggers.js.map +1 -1
  479. package/dist/src/telemetry/loggers.test.circular.js +1 -0
  480. package/dist/src/telemetry/loggers.test.circular.js.map +1 -1
  481. package/dist/src/telemetry/loggers.test.js +51 -10
  482. package/dist/src/telemetry/loggers.test.js.map +1 -1
  483. package/dist/src/telemetry/sdk.js +5 -6
  484. package/dist/src/telemetry/sdk.js.map +1 -1
  485. package/dist/src/telemetry/types.d.ts +7 -7
  486. package/dist/src/telemetry/types.js +14 -12
  487. package/dist/src/telemetry/types.js.map +1 -1
  488. package/dist/src/test-utils/mock-message-bus.d.ts +1 -0
  489. package/dist/src/test-utils/mock-message-bus.js +29 -0
  490. package/dist/src/test-utils/mock-message-bus.js.map +1 -1
  491. package/dist/src/test-utils/mock-tool.d.ts +5 -3
  492. package/dist/src/test-utils/mock-tool.js +11 -10
  493. package/dist/src/test-utils/mock-tool.js.map +1 -1
  494. package/dist/src/tools/activate-skill.d.ts +27 -0
  495. package/dist/src/tools/activate-skill.js +133 -0
  496. package/dist/src/tools/activate-skill.js.map +1 -0
  497. package/dist/src/tools/activate-skill.test.d.ts +6 -0
  498. package/dist/src/tools/activate-skill.test.js +113 -0
  499. package/dist/src/tools/activate-skill.test.js.map +1 -0
  500. package/dist/src/tools/confirmation-policy.test.js +3 -12
  501. package/dist/src/tools/confirmation-policy.test.js.map +1 -1
  502. package/dist/src/tools/edit.d.ts +27 -5
  503. package/dist/src/tools/edit.js +455 -136
  504. package/dist/src/tools/edit.js.map +1 -1
  505. package/dist/src/tools/edit.test.js +292 -526
  506. package/dist/src/tools/edit.test.js.map +1 -1
  507. package/dist/src/tools/get-internal-docs.d.ts +27 -0
  508. package/dist/src/tools/get-internal-docs.js +122 -0
  509. package/dist/src/tools/get-internal-docs.js.map +1 -0
  510. package/dist/src/tools/get-internal-docs.test.d.ts +6 -0
  511. package/dist/src/tools/get-internal-docs.test.js +57 -0
  512. package/dist/src/tools/get-internal-docs.test.js.map +1 -0
  513. package/dist/src/tools/glob.d.ts +2 -2
  514. package/dist/src/tools/glob.js +1 -1
  515. package/dist/src/tools/glob.js.map +1 -1
  516. package/dist/src/tools/glob.test.js +2 -1
  517. package/dist/src/tools/glob.test.js.map +1 -1
  518. package/dist/src/tools/grep.d.ts +2 -2
  519. package/dist/src/tools/grep.js +1 -1
  520. package/dist/src/tools/grep.js.map +1 -1
  521. package/dist/src/tools/grep.test.js +5 -4
  522. package/dist/src/tools/grep.test.js.map +1 -1
  523. package/dist/src/tools/ls.d.ts +2 -2
  524. package/dist/src/tools/ls.js +2 -2
  525. package/dist/src/tools/ls.js.map +1 -1
  526. package/dist/src/tools/ls.test.js +2 -1
  527. package/dist/src/tools/ls.test.js.map +1 -1
  528. package/dist/src/tools/mcp-client-manager.js +14 -7
  529. package/dist/src/tools/mcp-client-manager.js.map +1 -1
  530. package/dist/src/tools/mcp-client-manager.test.js +28 -0
  531. package/dist/src/tools/mcp-client-manager.test.js.map +1 -1
  532. package/dist/src/tools/mcp-client.d.ts +5 -4
  533. package/dist/src/tools/mcp-client.js +10 -8
  534. package/dist/src/tools/mcp-client.js.map +1 -1
  535. package/dist/src/tools/mcp-client.test.js +47 -42
  536. package/dist/src/tools/mcp-client.test.js.map +1 -1
  537. package/dist/src/tools/mcp-tool.d.ts +20 -5
  538. package/dist/src/tools/mcp-tool.js +8 -8
  539. package/dist/src/tools/mcp-tool.js.map +1 -1
  540. package/dist/src/tools/mcp-tool.test.js +11 -6
  541. package/dist/src/tools/mcp-tool.test.js.map +1 -1
  542. package/dist/src/tools/memoryTool.d.ts +3 -3
  543. package/dist/src/tools/memoryTool.js +2 -4
  544. package/dist/src/tools/memoryTool.js.map +1 -1
  545. package/dist/src/tools/memoryTool.test.js +5 -2
  546. package/dist/src/tools/memoryTool.test.js.map +1 -1
  547. package/dist/src/tools/message-bus-integration.test.js +10 -37
  548. package/dist/src/tools/message-bus-integration.test.js.map +1 -1
  549. package/dist/src/tools/read-file.d.ts +2 -2
  550. package/dist/src/tools/read-file.js +1 -1
  551. package/dist/src/tools/read-file.js.map +1 -1
  552. package/dist/src/tools/read-file.test.js +3 -2
  553. package/dist/src/tools/read-file.test.js.map +1 -1
  554. package/dist/src/tools/read-many-files.d.ts +2 -2
  555. package/dist/src/tools/read-many-files.js +2 -3
  556. package/dist/src/tools/read-many-files.js.map +1 -1
  557. package/dist/src/tools/read-many-files.test.js +3 -2
  558. package/dist/src/tools/read-many-files.test.js.map +1 -1
  559. package/dist/src/tools/ripGrep.d.ts +3 -2
  560. package/dist/src/tools/ripGrep.js +18 -7
  561. package/dist/src/tools/ripGrep.js.map +1 -1
  562. package/dist/src/tools/ripGrep.test.js +60 -4
  563. package/dist/src/tools/ripGrep.test.js.map +1 -1
  564. package/dist/src/tools/shell.d.ts +3 -6
  565. package/dist/src/tools/shell.js +21 -49
  566. package/dist/src/tools/shell.js.map +1 -1
  567. package/dist/src/tools/shell.test.js +35 -59
  568. package/dist/src/tools/shell.test.js.map +1 -1
  569. package/dist/src/tools/tool-error.d.ts +6 -1
  570. package/dist/src/tools/tool-error.js +6 -0
  571. package/dist/src/tools/tool-error.js.map +1 -1
  572. package/dist/src/tools/tool-names.d.ts +15 -0
  573. package/dist/src/tools/tool-names.js +57 -0
  574. package/dist/src/tools/tool-names.js.map +1 -1
  575. package/dist/src/tools/tool-names.test.d.ts +6 -0
  576. package/dist/src/tools/tool-names.test.js +43 -0
  577. package/dist/src/tools/tool-names.test.js.map +1 -0
  578. package/dist/src/tools/tool-registry.d.ts +11 -7
  579. package/dist/src/tools/tool-registry.js +15 -10
  580. package/dist/src/tools/tool-registry.js.map +1 -1
  581. package/dist/src/tools/tool-registry.test.js +16 -11
  582. package/dist/src/tools/tool-registry.test.js.map +1 -1
  583. package/dist/src/tools/tools.d.ts +8 -6
  584. package/dist/src/tools/tools.js +16 -18
  585. package/dist/src/tools/tools.js.map +1 -1
  586. package/dist/src/tools/tools.test.js +3 -1
  587. package/dist/src/tools/tools.test.js.map +1 -1
  588. package/dist/src/tools/web-fetch.d.ts +2 -2
  589. package/dist/src/tools/web-fetch.js +4 -4
  590. package/dist/src/tools/web-fetch.js.map +1 -1
  591. package/dist/src/tools/web-fetch.test.js +17 -19
  592. package/dist/src/tools/web-fetch.test.js.map +1 -1
  593. package/dist/src/tools/web-search.d.ts +2 -2
  594. package/dist/src/tools/web-search.js +5 -5
  595. package/dist/src/tools/web-search.js.map +1 -1
  596. package/dist/src/tools/web-search.test.js +2 -1
  597. package/dist/src/tools/web-search.test.js.map +1 -1
  598. package/dist/src/tools/write-file.d.ts +2 -2
  599. package/dist/src/tools/write-file.js +9 -6
  600. package/dist/src/tools/write-file.js.map +1 -1
  601. package/dist/src/tools/write-file.test.js +49 -7
  602. package/dist/src/tools/write-file.test.js.map +1 -1
  603. package/dist/src/tools/write-todos.d.ts +2 -2
  604. package/dist/src/tools/write-todos.js +5 -4
  605. package/dist/src/tools/write-todos.js.map +1 -1
  606. package/dist/src/tools/write-todos.test.js +2 -1
  607. package/dist/src/tools/write-todos.test.js.map +1 -1
  608. package/dist/src/utils/apiConversionUtils.d.ts +12 -0
  609. package/dist/src/utils/apiConversionUtils.js +46 -0
  610. package/dist/src/utils/apiConversionUtils.js.map +1 -0
  611. package/dist/src/utils/apiConversionUtils.test.d.ts +6 -0
  612. package/dist/src/utils/apiConversionUtils.test.js +150 -0
  613. package/dist/src/utils/apiConversionUtils.test.js.map +1 -0
  614. package/dist/src/utils/checkpointUtils.d.ts +1 -1
  615. package/dist/src/utils/checkpointUtils.js +1 -1
  616. package/dist/src/utils/checkpointUtils.js.map +1 -1
  617. package/dist/src/utils/checkpointUtils.test.js +1 -1
  618. package/dist/src/utils/checkpointUtils.test.js.map +1 -1
  619. package/dist/src/utils/debugLogger.js +1 -0
  620. package/dist/src/utils/debugLogger.js.map +1 -1
  621. package/dist/src/utils/editCorrector.d.ts +3 -3
  622. package/dist/src/utils/editCorrector.js +27 -10
  623. package/dist/src/utils/editCorrector.js.map +1 -1
  624. package/dist/src/utils/editCorrector.test.js +23 -23
  625. package/dist/src/utils/editCorrector.test.js.map +1 -1
  626. package/dist/src/utils/editor.d.ts +3 -2
  627. package/dist/src/utils/editor.js +26 -6
  628. package/dist/src/utils/editor.js.map +1 -1
  629. package/dist/src/utils/editor.test.js +27 -4
  630. package/dist/src/utils/editor.test.js.map +1 -1
  631. package/dist/src/utils/environmentContext.d.ts +1 -0
  632. package/dist/src/utils/environmentContext.js +4 -0
  633. package/dist/src/utils/environmentContext.js.map +1 -1
  634. package/dist/src/utils/environmentContext.test.js +2 -0
  635. package/dist/src/utils/environmentContext.test.js.map +1 -1
  636. package/dist/src/utils/errorReporting.d.ts +1 -1
  637. package/dist/src/utils/errorReporting.js +13 -12
  638. package/dist/src/utils/errorReporting.js.map +1 -1
  639. package/dist/src/utils/errorReporting.test.js +17 -14
  640. package/dist/src/utils/errorReporting.test.js.map +1 -1
  641. package/dist/src/utils/events.d.ts +71 -19
  642. package/dist/src/utils/events.js +35 -9
  643. package/dist/src/utils/events.js.map +1 -1
  644. package/dist/src/utils/events.test.js +25 -0
  645. package/dist/src/utils/events.test.js.map +1 -1
  646. package/dist/src/utils/fileDiffUtils.d.ts +18 -0
  647. package/dist/src/utils/fileDiffUtils.js +37 -0
  648. package/dist/src/utils/fileDiffUtils.js.map +1 -0
  649. package/dist/src/utils/fileDiffUtils.test.d.ts +6 -0
  650. package/dist/src/utils/fileDiffUtils.test.js +84 -0
  651. package/dist/src/utils/fileDiffUtils.test.js.map +1 -0
  652. package/dist/src/utils/fileUtils.d.ts +4 -0
  653. package/dist/src/utils/fileUtils.js +53 -0
  654. package/dist/src/utils/fileUtils.js.map +1 -1
  655. package/dist/src/utils/fileUtils.test.js +112 -1
  656. package/dist/src/utils/fileUtils.test.js.map +1 -1
  657. package/dist/src/utils/geminiIgnoreParser.d.ts +11 -0
  658. package/dist/src/utils/geminiIgnoreParser.js +20 -0
  659. package/dist/src/utils/geminiIgnoreParser.js.map +1 -1
  660. package/dist/src/utils/geminiIgnoreParser.test.js +48 -0
  661. package/dist/src/utils/geminiIgnoreParser.test.js.map +1 -1
  662. package/dist/src/utils/generateContentResponseUtilities.d.ts +3 -1
  663. package/dist/src/utils/generateContentResponseUtilities.js +106 -0
  664. package/dist/src/utils/generateContentResponseUtilities.js.map +1 -1
  665. package/dist/src/utils/generateContentResponseUtilities.test.js +279 -2
  666. package/dist/src/utils/generateContentResponseUtilities.test.js.map +1 -1
  667. package/dist/src/utils/getFolderStructure.js +7 -2
  668. package/dist/src/utils/getFolderStructure.js.map +1 -1
  669. package/dist/src/utils/gitIgnoreParser.js +9 -10
  670. package/dist/src/utils/gitIgnoreParser.js.map +1 -1
  671. package/dist/src/utils/installationManager.test.js +11 -3
  672. package/dist/src/utils/installationManager.test.js.map +1 -1
  673. package/dist/src/utils/memoryDiscovery.js +3 -4
  674. package/dist/src/utils/memoryDiscovery.js.map +1 -1
  675. package/dist/src/utils/memoryDiscovery.test.js +12 -1
  676. package/dist/src/utils/memoryDiscovery.test.js.map +1 -1
  677. package/dist/src/utils/partUtils.js +1 -1
  678. package/dist/src/utils/partUtils.js.map +1 -1
  679. package/dist/src/utils/paths.d.ts +10 -0
  680. package/dist/src/utils/paths.js +20 -1
  681. package/dist/src/utils/paths.js.map +1 -1
  682. package/dist/src/utils/retry.d.ts +1 -0
  683. package/dist/src/utils/retry.js +17 -5
  684. package/dist/src/utils/retry.js.map +1 -1
  685. package/dist/src/utils/retry.test.js +11 -11
  686. package/dist/src/utils/retry.test.js.map +1 -1
  687. package/dist/src/utils/shell-utils.d.ts +6 -0
  688. package/dist/src/utils/shell-utils.js +97 -12
  689. package/dist/src/utils/shell-utils.js.map +1 -1
  690. package/dist/src/utils/shell-utils.test.js +99 -1
  691. package/dist/src/utils/shell-utils.test.js.map +1 -1
  692. package/dist/src/utils/summarizer.test.js +3 -2
  693. package/dist/src/utils/summarizer.test.js.map +1 -1
  694. package/dist/src/utils/terminal.d.ts +4 -0
  695. package/dist/src/utils/terminal.js +12 -0
  696. package/dist/src/utils/terminal.js.map +1 -1
  697. package/dist/src/utils/tokenCalculation.js +20 -5
  698. package/dist/src/utils/tokenCalculation.js.map +1 -1
  699. package/dist/src/utils/tokenCalculation.test.js +11 -2
  700. package/dist/src/utils/tokenCalculation.test.js.map +1 -1
  701. package/dist/src/utils/tool-utils.d.ts +9 -0
  702. package/dist/src/utils/tool-utils.js +29 -0
  703. package/dist/src/utils/tool-utils.js.map +1 -1
  704. package/dist/src/utils/tool-utils.test.js +17 -2
  705. package/dist/src/utils/tool-utils.test.js.map +1 -1
  706. package/dist/src/utils/userAccountManager.test.js +5 -5
  707. package/dist/src/utils/userAccountManager.test.js.map +1 -1
  708. package/dist/src/utils/workspaceContext.test.js +1 -1
  709. package/dist/src/utils/workspaceContext.test.js.map +1 -1
  710. package/dist/tsconfig.tsbuildinfo +1 -1
  711. package/package.json +8 -6
  712. package/dist/src/agents/executor.js.map +0 -1
  713. package/dist/src/agents/executor.test.js.map +0 -1
  714. package/dist/src/agents/invocation.js.map +0 -1
  715. package/dist/src/agents/invocation.test.js.map +0 -1
  716. package/dist/src/core/sessionHookTriggers.d.ts +0 -28
  717. package/dist/src/core/sessionHookTriggers.js +0 -68
  718. package/dist/src/core/sessionHookTriggers.js.map +0 -1
  719. package/dist/src/tools/smart-edit.d.ts +0 -78
  720. package/dist/src/tools/smart-edit.js +0 -722
  721. package/dist/src/tools/smart-edit.js.map +0 -1
  722. package/dist/src/tools/smart-edit.test.js +0 -592
  723. package/dist/src/tools/smart-edit.test.js.map +0 -1
  724. package/dist/src/utils/shell-permissions.d.ts +0 -52
  725. package/dist/src/utils/shell-permissions.js +0 -188
  726. package/dist/src/utils/shell-permissions.js.map +0 -1
  727. package/dist/src/utils/shell-permissions.test.js +0 -347
  728. package/dist/src/utils/shell-permissions.test.js.map +0 -1
  729. /package/dist/src/agents/{executor.test.d.ts → a2a-client-manager.test.d.ts} +0 -0
  730. /package/dist/src/agents/{invocation.test.d.ts → a2aUtils.test.d.ts} +0 -0
  731. /package/dist/src/{tools/smart-edit.test.d.ts → agents/agentLoader.test.d.ts} +0 -0
  732. /package/dist/src/{utils/shell-permissions.test.d.ts → agents/cli-help-agent.test.d.ts} +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"file":"smart-edit.js","sourceRoot":"","sources":["../../../src/tools/smart-edit.ts"],"names":[],"mappings":"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"}
@@ -1,592 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright 2025 Google LLC
4
- * SPDX-License-Identifier: Apache-2.0
5
- */
6
- /* eslint-disable @typescript-eslint/no-explicit-any */
7
- const mockFixLLMEditWithInstruction = vi.hoisted(() => vi.fn());
8
- const mockGenerateJson = vi.hoisted(() => vi.fn());
9
- const mockOpenDiff = vi.hoisted(() => vi.fn());
10
- import { IdeClient } from '../ide/ide-client.js';
11
- vi.mock('../ide/ide-client.js', () => ({
12
- IdeClient: {
13
- getInstance: vi.fn(),
14
- },
15
- }));
16
- vi.mock('../utils/llm-edit-fixer.js', () => ({
17
- FixLLMEditWithInstruction: mockFixLLMEditWithInstruction,
18
- }));
19
- vi.mock('../core/client.js', () => ({
20
- GeminiClient: vi.fn().mockImplementation(() => ({
21
- generateJson: mockGenerateJson,
22
- getHistory: vi.fn().mockResolvedValue([]),
23
- })),
24
- }));
25
- vi.mock('../utils/editor.js', () => ({
26
- openDiff: mockOpenDiff,
27
- }));
28
- import { describe, it, expect, beforeEach, afterEach, vi, } from 'vitest';
29
- import { SmartEditTool, calculateReplacement, } from './smart-edit.js';
30
- import { ToolConfirmationOutcome } from './tools.js';
31
- import { ToolErrorType } from './tool-error.js';
32
- import path from 'node:path';
33
- import fs from 'node:fs';
34
- import os from 'node:os';
35
- import { ApprovalMode } from '../policy/types.js';
36
- import {} from '../config/config.js';
37
- import {} from '@google/genai';
38
- import { createMockWorkspaceContext } from '../test-utils/mockWorkspaceContext.js';
39
- import { StandardFileSystemService } from '../services/fileSystemService.js';
40
- describe('SmartEditTool', () => {
41
- let tool;
42
- let tempDir;
43
- let rootDir;
44
- let mockConfig;
45
- let geminiClient;
46
- let fileSystemService;
47
- let baseLlmClient;
48
- beforeEach(() => {
49
- vi.restoreAllMocks();
50
- tempDir = fs.mkdtempSync(path.join(os.tmpdir(), 'smart-edit-tool-test-'));
51
- rootDir = path.join(tempDir, 'root');
52
- fs.mkdirSync(rootDir);
53
- geminiClient = {
54
- generateJson: mockGenerateJson,
55
- getHistory: vi.fn().mockResolvedValue([]),
56
- };
57
- baseLlmClient = {
58
- generateJson: mockGenerateJson,
59
- };
60
- fileSystemService = new StandardFileSystemService();
61
- mockConfig = {
62
- getUsageStatisticsEnabled: vi.fn(() => true),
63
- getSessionId: vi.fn(() => 'mock-session-id'),
64
- getContentGeneratorConfig: vi.fn(() => ({ authType: 'mock' })),
65
- getUseSmartEdit: vi.fn(() => false),
66
- getProxy: vi.fn(() => undefined),
67
- getGeminiClient: vi.fn().mockReturnValue(geminiClient),
68
- getBaseLlmClient: vi.fn().mockReturnValue(baseLlmClient),
69
- getTargetDir: () => rootDir,
70
- getApprovalMode: vi.fn(),
71
- setApprovalMode: vi.fn(),
72
- getWorkspaceContext: () => createMockWorkspaceContext(rootDir),
73
- getFileSystemService: () => fileSystemService,
74
- getIdeMode: () => false,
75
- getApiKey: () => 'test-api-key',
76
- getModel: () => 'test-model',
77
- getSandbox: () => false,
78
- getDebugMode: () => false,
79
- getQuestion: () => undefined,
80
- getToolDiscoveryCommand: () => undefined,
81
- getToolCallCommand: () => undefined,
82
- getMcpServerCommand: () => undefined,
83
- getMcpServers: () => undefined,
84
- getUserAgent: () => 'test-agent',
85
- getUserMemory: () => '',
86
- setUserMemory: vi.fn(),
87
- getGeminiMdFileCount: () => 0,
88
- setGeminiMdFileCount: vi.fn(),
89
- getToolRegistry: () => ({}),
90
- isInteractive: () => false,
91
- getExperiments: () => { },
92
- };
93
- mockConfig.getApprovalMode.mockClear();
94
- mockConfig.getApprovalMode.mockReturnValue(ApprovalMode.DEFAULT);
95
- mockFixLLMEditWithInstruction.mockReset();
96
- mockFixLLMEditWithInstruction.mockResolvedValue({
97
- noChangesRequired: false,
98
- search: '',
99
- replace: '',
100
- explanation: 'LLM fix failed',
101
- });
102
- mockGenerateJson.mockReset();
103
- mockGenerateJson.mockImplementation(async (contents, schema) => {
104
- const userContent = contents.find((c) => c.role === 'user');
105
- let promptText = '';
106
- if (userContent && userContent.parts) {
107
- promptText = userContent.parts
108
- .filter((p) => typeof p.text === 'string')
109
- .map((p) => p.text)
110
- .join('\n');
111
- }
112
- const snippetMatch = promptText.match(/Problematic target snippet:\n```\n([\s\S]*?)\n```/);
113
- const problematicSnippet = snippetMatch && snippetMatch[1] ? snippetMatch[1] : '';
114
- if (schema.properties?.corrected_target_snippet) {
115
- return Promise.resolve({
116
- corrected_target_snippet: problematicSnippet,
117
- });
118
- }
119
- if (schema.properties?.corrected_new_string) {
120
- const originalNewStringMatch = promptText.match(/original_new_string \(what was intended to replace original_old_string\):\n```\n([\s\S]*?)\n```/);
121
- const originalNewString = originalNewStringMatch && originalNewStringMatch[1]
122
- ? originalNewStringMatch[1]
123
- : '';
124
- return Promise.resolve({ corrected_new_string: originalNewString });
125
- }
126
- return Promise.resolve({});
127
- });
128
- tool = new SmartEditTool(mockConfig);
129
- });
130
- afterEach(() => {
131
- fs.rmSync(tempDir, { recursive: true, force: true });
132
- });
133
- describe('calculateReplacement', () => {
134
- const abortSignal = new AbortController().signal;
135
- it.each([
136
- {
137
- name: 'perform an exact replacement',
138
- content: 'hello world',
139
- old_string: 'world',
140
- new_string: 'moon',
141
- expected: 'hello moon',
142
- occurrences: 1,
143
- },
144
- {
145
- name: 'perform a flexible, whitespace-insensitive replacement',
146
- content: ' hello\n world\n',
147
- old_string: 'hello\nworld',
148
- new_string: 'goodbye\nmoon',
149
- expected: ' goodbye\n moon\n',
150
- occurrences: 1,
151
- },
152
- {
153
- name: 'return 0 occurrences if no match is found',
154
- content: 'hello world',
155
- old_string: 'nomatch',
156
- new_string: 'moon',
157
- expected: 'hello world',
158
- occurrences: 0,
159
- },
160
- ])('should $name', async ({ content, old_string, new_string, expected, occurrences }) => {
161
- const result = await calculateReplacement(mockConfig, {
162
- params: {
163
- file_path: 'test.txt',
164
- instruction: 'test',
165
- old_string,
166
- new_string,
167
- },
168
- currentContent: content,
169
- abortSignal,
170
- });
171
- expect(result.newContent).toBe(expected);
172
- expect(result.occurrences).toBe(occurrences);
173
- });
174
- it('should perform a regex-based replacement for flexible intra-line whitespace', async () => {
175
- // This case would fail with the previous exact and line-trimming flexible logic
176
- // because the whitespace *within* the line is different.
177
- const content = ' function myFunc( a, b ) {\n return a + b;\n }';
178
- const result = await calculateReplacement(mockConfig, {
179
- params: {
180
- file_path: 'test.js',
181
- instruction: 'test',
182
- old_string: 'function myFunc(a, b) {', // Note the normalized whitespace
183
- new_string: 'const yourFunc = (a, b) => {',
184
- },
185
- currentContent: content,
186
- abortSignal,
187
- });
188
- // The indentation from the original line should be preserved and applied to the new string.
189
- const expectedContent = ' const yourFunc = (a, b) => {\n return a + b;\n }';
190
- expect(result.newContent).toBe(expectedContent);
191
- expect(result.occurrences).toBe(1);
192
- });
193
- });
194
- describe('validateToolParams', () => {
195
- it('should return null for valid params', () => {
196
- const params = {
197
- file_path: path.join(rootDir, 'test.txt'),
198
- instruction: 'An instruction',
199
- old_string: 'old',
200
- new_string: 'new',
201
- };
202
- expect(tool.validateToolParams(params)).toBeNull();
203
- });
204
- it('should return an error if path is outside the workspace', () => {
205
- const params = {
206
- file_path: path.join(os.tmpdir(), 'outside.txt'),
207
- instruction: 'An instruction',
208
- old_string: 'old',
209
- new_string: 'new',
210
- };
211
- expect(tool.validateToolParams(params)).toMatch(/must be within one of the workspace directories/);
212
- });
213
- });
214
- describe('execute', () => {
215
- const testFile = 'execute_me.txt';
216
- let filePath;
217
- beforeEach(() => {
218
- filePath = path.join(rootDir, testFile);
219
- });
220
- it('should reject when calculateEdit fails after an abort signal', async () => {
221
- const params = {
222
- file_path: path.join(rootDir, 'abort-execute.txt'),
223
- instruction: 'Abort during execute',
224
- old_string: 'old',
225
- new_string: 'new',
226
- };
227
- const invocation = tool.build(params);
228
- const abortController = new AbortController();
229
- const abortError = new Error('Abort requested during smart edit execution');
230
- const calculateSpy = vi
231
- .spyOn(invocation, 'calculateEdit')
232
- .mockImplementation(async () => {
233
- if (!abortController.signal.aborted) {
234
- abortController.abort();
235
- }
236
- throw abortError;
237
- });
238
- await expect(invocation.execute(abortController.signal)).rejects.toBe(abortError);
239
- calculateSpy.mockRestore();
240
- });
241
- it('should edit an existing file and return diff with fileName', async () => {
242
- const initialContent = 'This is some old text.';
243
- const newContent = 'This is some new text.';
244
- fs.writeFileSync(filePath, initialContent, 'utf8');
245
- const params = {
246
- file_path: filePath,
247
- instruction: 'Replace old with new',
248
- old_string: 'old',
249
- new_string: 'new',
250
- };
251
- const invocation = tool.build(params);
252
- const result = await invocation.execute(new AbortController().signal);
253
- expect(result.llmContent).toMatch(/Successfully modified file/);
254
- expect(fs.readFileSync(filePath, 'utf8')).toBe(newContent);
255
- const display = result.returnDisplay;
256
- expect(display.fileDiff).toMatch(initialContent);
257
- expect(display.fileDiff).toMatch(newContent);
258
- expect(display.fileName).toBe(testFile);
259
- });
260
- it('should return error if old_string is not found in file', async () => {
261
- fs.writeFileSync(filePath, 'Some content.', 'utf8');
262
- const params = {
263
- file_path: filePath,
264
- instruction: 'Replace non-existent text',
265
- old_string: 'nonexistent',
266
- new_string: 'replacement',
267
- };
268
- const invocation = tool.build(params);
269
- const result = await invocation.execute(new AbortController().signal);
270
- expect(result.llmContent).toMatch(/0 occurrences found for old_string/);
271
- expect(result.returnDisplay).toMatch(/Failed to edit, could not find the string to replace./);
272
- expect(mockFixLLMEditWithInstruction).toHaveBeenCalled();
273
- });
274
- it('should succeed if FixLLMEditWithInstruction corrects the params', async () => {
275
- const initialContent = 'This is some original text.';
276
- const finalContent = 'This is some brand new text.';
277
- fs.writeFileSync(filePath, initialContent, 'utf8');
278
- const params = {
279
- file_path: filePath,
280
- instruction: 'Replace original with brand new',
281
- old_string: 'wrong text', // This will fail first
282
- new_string: 'brand new text',
283
- };
284
- mockFixLLMEditWithInstruction.mockResolvedValueOnce({
285
- noChangesRequired: false,
286
- search: 'original text', // The corrected search string
287
- replace: 'brand new text',
288
- explanation: 'Corrected the search string to match the file content.',
289
- });
290
- const invocation = tool.build(params);
291
- const result = await invocation.execute(new AbortController().signal);
292
- expect(result.error).toBeUndefined();
293
- expect(result.llmContent).toMatch(/Successfully modified file/);
294
- expect(fs.readFileSync(filePath, 'utf8')).toBe(finalContent);
295
- expect(mockFixLLMEditWithInstruction).toHaveBeenCalledTimes(1);
296
- });
297
- it('should preserve CRLF line endings when editing a file', async () => {
298
- const initialContent = 'line one\r\nline two\r\n';
299
- const newContent = 'line one\r\nline three\r\n';
300
- fs.writeFileSync(filePath, initialContent, 'utf8');
301
- const params = {
302
- file_path: filePath,
303
- instruction: 'Replace two with three',
304
- old_string: 'line two',
305
- new_string: 'line three',
306
- };
307
- const invocation = tool.build(params);
308
- await invocation.execute(new AbortController().signal);
309
- const finalContent = fs.readFileSync(filePath, 'utf8');
310
- expect(finalContent).toBe(newContent);
311
- });
312
- it('should create a new file with CRLF line endings if new_string has them', async () => {
313
- const newContentWithCRLF = 'new line one\r\nnew line two\r\n';
314
- const params = {
315
- file_path: filePath,
316
- instruction: 'Create a new file',
317
- old_string: '',
318
- new_string: newContentWithCRLF,
319
- };
320
- const invocation = tool.build(params);
321
- await invocation.execute(new AbortController().signal);
322
- const finalContent = fs.readFileSync(filePath, 'utf8');
323
- expect(finalContent).toBe(newContentWithCRLF);
324
- });
325
- it('should return NO_CHANGE if FixLLMEditWithInstruction determines no changes are needed', async () => {
326
- const initialContent = 'The price is $100.';
327
- fs.writeFileSync(filePath, initialContent, 'utf8');
328
- const params = {
329
- file_path: filePath,
330
- instruction: 'Ensure the price is $100',
331
- old_string: 'price is $50', // Incorrect old string
332
- new_string: 'price is $100',
333
- };
334
- mockFixLLMEditWithInstruction.mockResolvedValueOnce({
335
- noChangesRequired: true,
336
- search: '',
337
- replace: '',
338
- explanation: 'The price is already correctly set to $100.',
339
- });
340
- const invocation = tool.build(params);
341
- const result = await invocation.execute(new AbortController().signal);
342
- expect(result.error?.type).toBe(ToolErrorType.EDIT_NO_CHANGE_LLM_JUDGEMENT);
343
- expect(result.llmContent).toMatch(/A secondary check by an LLM determined/);
344
- expect(fs.readFileSync(filePath, 'utf8')).toBe(initialContent); // File is unchanged
345
- });
346
- });
347
- describe('self-correction with content refresh to pull in external edits', () => {
348
- const testFile = 'test.txt';
349
- let filePath;
350
- beforeEach(() => {
351
- filePath = path.join(rootDir, testFile);
352
- });
353
- it('should use refreshed file content for self-correction if file was modified externally', async () => {
354
- const initialContent = 'This is the original content.';
355
- const externallyModifiedContent = 'This is the externally modified content.';
356
- fs.writeFileSync(filePath, initialContent, 'utf8');
357
- const params = {
358
- file_path: filePath,
359
- instruction: 'Replace "externally modified content" with "externally modified string"',
360
- old_string: 'externally modified content', // This will fail the first attempt, triggering self-correction.
361
- new_string: 'externally modified string',
362
- };
363
- // Spy on `readTextFile` to simulate an external file change between reads.
364
- const readTextFileSpy = vi
365
- .spyOn(fileSystemService, 'readTextFile')
366
- .mockResolvedValueOnce(initialContent) // First call in `calculateEdit`
367
- .mockResolvedValueOnce(externallyModifiedContent); // Second call in `attemptSelfCorrection`
368
- const invocation = tool.build(params);
369
- await invocation.execute(new AbortController().signal);
370
- // Assert that the file was read twice (initial read, then re-read for hash comparison).
371
- expect(readTextFileSpy).toHaveBeenCalledTimes(2);
372
- // Assert that the self-correction LLM was called with the updated content and a specific message.
373
- expect(mockFixLLMEditWithInstruction).toHaveBeenCalledWith(expect.any(String), // instruction
374
- params.old_string, params.new_string, expect.stringContaining('However, the file has been modified by either the user or an external process'), // errorForLlmEditFixer
375
- externallyModifiedContent, // The new content for correction
376
- expect.any(Object), // baseLlmClient
377
- expect.any(Object));
378
- });
379
- });
380
- describe('Error Scenarios', () => {
381
- const testFile = 'error_test.txt';
382
- let filePath;
383
- beforeEach(() => {
384
- filePath = path.join(rootDir, testFile);
385
- });
386
- it.each([
387
- {
388
- name: 'FILE_NOT_FOUND',
389
- setup: () => { }, // no file created
390
- params: { old_string: 'any', new_string: 'new' },
391
- expectedError: ToolErrorType.FILE_NOT_FOUND,
392
- },
393
- {
394
- name: 'ATTEMPT_TO_CREATE_EXISTING_FILE',
395
- setup: (fp) => fs.writeFileSync(fp, 'existing content', 'utf8'),
396
- params: { old_string: '', new_string: 'new content' },
397
- expectedError: ToolErrorType.ATTEMPT_TO_CREATE_EXISTING_FILE,
398
- },
399
- {
400
- name: 'NO_OCCURRENCE_FOUND',
401
- setup: (fp) => fs.writeFileSync(fp, 'content', 'utf8'),
402
- params: { old_string: 'not-found', new_string: 'new' },
403
- expectedError: ToolErrorType.EDIT_NO_OCCURRENCE_FOUND,
404
- },
405
- {
406
- name: 'EXPECTED_OCCURRENCE_MISMATCH',
407
- setup: (fp) => fs.writeFileSync(fp, 'one one two', 'utf8'),
408
- params: { old_string: 'one', new_string: 'new' },
409
- expectedError: ToolErrorType.EDIT_EXPECTED_OCCURRENCE_MISMATCH,
410
- },
411
- ])('should return $name error', async ({ setup, params, expectedError }) => {
412
- setup(filePath);
413
- const invocation = tool.build({
414
- file_path: filePath,
415
- instruction: 'test',
416
- ...params,
417
- });
418
- const result = await invocation.execute(new AbortController().signal);
419
- expect(result.error?.type).toBe(expectedError);
420
- });
421
- });
422
- describe('expected_replacements', () => {
423
- const testFile = 'replacements_test.txt';
424
- let filePath;
425
- beforeEach(() => {
426
- filePath = path.join(rootDir, testFile);
427
- });
428
- it.each([
429
- {
430
- name: 'succeed when occurrences match expected_replacements',
431
- content: 'foo foo foo',
432
- expected: 3,
433
- shouldSucceed: true,
434
- finalContent: 'bar bar bar',
435
- },
436
- {
437
- name: 'fail when occurrences do not match expected_replacements',
438
- content: 'foo foo foo',
439
- expected: 2,
440
- shouldSucceed: false,
441
- },
442
- {
443
- name: 'default to 1 expected replacement if not specified',
444
- content: 'foo foo',
445
- expected: undefined,
446
- shouldSucceed: false,
447
- },
448
- ])('should $name', async ({ content, expected, shouldSucceed, finalContent }) => {
449
- fs.writeFileSync(filePath, content, 'utf8');
450
- const params = {
451
- file_path: filePath,
452
- instruction: 'Replace all foo with bar',
453
- old_string: 'foo',
454
- new_string: 'bar',
455
- ...(expected !== undefined && { expected_replacements: expected }),
456
- };
457
- const invocation = tool.build(params);
458
- const result = await invocation.execute(new AbortController().signal);
459
- if (shouldSucceed) {
460
- expect(result.error).toBeUndefined();
461
- if (finalContent)
462
- expect(fs.readFileSync(filePath, 'utf8')).toBe(finalContent);
463
- }
464
- else {
465
- expect(result.error?.type).toBe(ToolErrorType.EDIT_EXPECTED_OCCURRENCE_MISMATCH);
466
- }
467
- });
468
- });
469
- describe('IDE mode', () => {
470
- const testFile = 'edit_me.txt';
471
- let filePath;
472
- let ideClient;
473
- beforeEach(() => {
474
- filePath = path.join(rootDir, testFile);
475
- ideClient = {
476
- openDiff: vi.fn(),
477
- isDiffingEnabled: vi.fn().mockReturnValue(true),
478
- };
479
- vi.mocked(IdeClient.getInstance).mockResolvedValue(ideClient);
480
- mockConfig.getIdeMode = () => true;
481
- });
482
- it('should call ideClient.openDiff and update params on confirmation', async () => {
483
- const initialContent = 'some old content here';
484
- const newContent = 'some new content here';
485
- const modifiedContent = 'some modified content here';
486
- fs.writeFileSync(filePath, initialContent);
487
- const params = {
488
- file_path: filePath,
489
- instruction: 'test',
490
- old_string: 'old',
491
- new_string: 'new',
492
- };
493
- ideClient.openDiff.mockResolvedValueOnce({
494
- status: 'accepted',
495
- content: modifiedContent,
496
- });
497
- const invocation = tool.build(params);
498
- const confirmation = await invocation.shouldConfirmExecute(new AbortController().signal);
499
- expect(ideClient.openDiff).toHaveBeenCalledWith(filePath, newContent);
500
- if (confirmation && 'onConfirm' in confirmation) {
501
- await confirmation.onConfirm(ToolConfirmationOutcome.ProceedOnce);
502
- }
503
- expect(params.old_string).toBe(initialContent);
504
- expect(params.new_string).toBe(modifiedContent);
505
- });
506
- });
507
- describe('shouldConfirmExecute', () => {
508
- it('should rethrow calculateEdit errors when the abort signal is triggered', async () => {
509
- const filePath = path.join(rootDir, 'abort-confirmation.txt');
510
- const params = {
511
- file_path: filePath,
512
- instruction: 'Abort during confirmation',
513
- old_string: 'old',
514
- new_string: 'new',
515
- };
516
- const invocation = tool.build(params);
517
- const abortController = new AbortController();
518
- const abortError = new Error('Abort requested during smart edit confirmation');
519
- const calculateSpy = vi
520
- .spyOn(invocation, 'calculateEdit')
521
- .mockImplementation(async () => {
522
- if (!abortController.signal.aborted) {
523
- abortController.abort();
524
- }
525
- throw abortError;
526
- });
527
- await expect(invocation.shouldConfirmExecute(abortController.signal)).rejects.toBe(abortError);
528
- calculateSpy.mockRestore();
529
- });
530
- });
531
- describe('multiple file edits', () => {
532
- it('should perform multiple removals and report correct diff stats', async () => {
533
- const numFiles = 10;
534
- const files = [];
535
- const expectedLinesRemoved = [];
536
- const actualLinesRemoved = [];
537
- // 1. Create 10 files with 5-10 lines each
538
- for (let i = 0; i < numFiles; i++) {
539
- const fileName = `test-file-${i}.txt`;
540
- const filePath = path.join(rootDir, fileName);
541
- const numLines = Math.floor(Math.random() * 6) + 5; // 5 to 10 lines
542
- const lines = Array.from({ length: numLines }, (_, j) => `File ${i}, Line ${j + 1}`);
543
- const content = lines.join('\n') + '\n';
544
- // Determine which lines to remove (2 or 3 lines)
545
- const numLinesToRemove = Math.floor(Math.random() * 2) + 2; // 2 or 3
546
- expectedLinesRemoved.push(numLinesToRemove);
547
- const startLineToRemove = 1; // Start removing from the second line
548
- const linesToRemove = lines.slice(startLineToRemove, startLineToRemove + numLinesToRemove);
549
- const toRemove = linesToRemove.join('\n') + '\n';
550
- fs.writeFileSync(filePath, content, 'utf8');
551
- files.push({
552
- path: filePath,
553
- initialContent: content,
554
- toRemove,
555
- });
556
- }
557
- // 2. Create and execute 10 tool calls for removal
558
- for (const file of files) {
559
- const params = {
560
- file_path: file.path,
561
- instruction: `Remove lines from the file`,
562
- old_string: file.toRemove,
563
- new_string: '', // Removing the content
564
- ai_proposed_string: '',
565
- };
566
- const invocation = tool.build(params);
567
- const result = await invocation.execute(new AbortController().signal);
568
- if (result.returnDisplay &&
569
- typeof result.returnDisplay === 'object' &&
570
- 'diffStat' in result.returnDisplay &&
571
- result.returnDisplay.diffStat) {
572
- actualLinesRemoved.push(result.returnDisplay.diffStat?.model_removed_lines);
573
- }
574
- else if (result.error) {
575
- console.error(`Edit failed for ${file.path}:`, result.error);
576
- }
577
- }
578
- // 3. Assert that the content was removed from each file
579
- for (const file of files) {
580
- const finalContent = fs.readFileSync(file.path, 'utf8');
581
- const expectedContent = file.initialContent.replace(file.toRemove, '');
582
- expect(finalContent).toBe(expectedContent);
583
- expect(finalContent).not.toContain(file.toRemove);
584
- }
585
- // 4. Assert that the total number of removed lines matches the diffStat total
586
- const totalExpectedRemoved = expectedLinesRemoved.reduce((sum, current) => sum + current, 0);
587
- const totalActualRemoved = actualLinesRemoved.reduce((sum, current) => sum + current, 0);
588
- expect(totalActualRemoved).toBe(totalExpectedRemoved);
589
- });
590
- });
591
- });
592
- //# sourceMappingURL=smart-edit.test.js.map