@machina.ai/cell-cli-core 1.13.0-rc5 → 1.16.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 (424) hide show
  1. package/dist/index.d.ts +2 -1
  2. package/dist/index.js +2 -1
  3. package/dist/index.js.map +1 -1
  4. package/dist/package.json +1 -1
  5. package/dist/src/agents/codebase-investigator.test.d.ts +6 -0
  6. package/dist/src/agents/codebase-investigator.test.js +35 -0
  7. package/dist/src/agents/codebase-investigator.test.js.map +1 -0
  8. package/dist/src/agents/executor.d.ts +3 -0
  9. package/dist/src/agents/executor.js +21 -0
  10. package/dist/src/agents/executor.js.map +1 -1
  11. package/dist/src/agents/executor.test.js +358 -3
  12. package/dist/src/agents/executor.test.js.map +1 -1
  13. package/dist/src/code_assist/codeAssist.test.d.ts +6 -0
  14. package/dist/src/code_assist/codeAssist.test.js +99 -0
  15. package/dist/src/code_assist/codeAssist.test.js.map +1 -0
  16. package/dist/src/code_assist/experiments/client_metadata.js +2 -1
  17. package/dist/src/code_assist/experiments/client_metadata.js.map +1 -1
  18. package/dist/src/code_assist/experiments/client_metadata.test.d.ts +6 -0
  19. package/dist/src/code_assist/experiments/client_metadata.test.js +99 -0
  20. package/dist/src/code_assist/experiments/client_metadata.test.js.map +1 -0
  21. package/dist/src/code_assist/experiments/experiments.js +2 -2
  22. package/dist/src/code_assist/experiments/experiments.js.map +1 -1
  23. package/dist/src/code_assist/experiments/experiments.test.d.ts +6 -0
  24. package/dist/src/code_assist/experiments/experiments.test.js +92 -0
  25. package/dist/src/code_assist/experiments/experiments.test.js.map +1 -0
  26. package/dist/src/code_assist/experiments/flagNames.d.ts +13 -0
  27. package/dist/src/code_assist/experiments/flagNames.js +13 -0
  28. package/dist/src/code_assist/experiments/flagNames.js.map +1 -0
  29. package/dist/src/code_assist/experiments/types.d.ts +1 -1
  30. package/dist/src/code_assist/oauth-credential-storage.test.js +49 -0
  31. package/dist/src/code_assist/oauth-credential-storage.test.js.map +1 -1
  32. package/dist/src/code_assist/server.js +5 -8
  33. package/dist/src/code_assist/server.js.map +1 -1
  34. package/dist/src/code_assist/server.test.js +109 -28
  35. package/dist/src/code_assist/server.test.js.map +1 -1
  36. package/dist/src/config/config.d.ts +34 -2
  37. package/dist/src/config/config.js +147 -26
  38. package/dist/src/config/config.js.map +1 -1
  39. package/dist/src/config/config.test.js +436 -19
  40. package/dist/src/config/config.test.js.map +1 -1
  41. package/dist/src/config/defaultModelConfigs.d.ts +7 -0
  42. package/dist/src/config/defaultModelConfigs.js +158 -0
  43. package/dist/src/config/defaultModelConfigs.js.map +1 -0
  44. package/dist/src/config/models.d.ts +22 -1
  45. package/dist/src/config/models.js +49 -6
  46. package/dist/src/config/models.js.map +1 -1
  47. package/dist/src/config/models.test.js +71 -10
  48. package/dist/src/config/models.test.js.map +1 -1
  49. package/dist/src/confirmation-bus/message-bus.d.ts +1 -1
  50. package/dist/src/confirmation-bus/message-bus.js +2 -2
  51. package/dist/src/confirmation-bus/message-bus.js.map +1 -1
  52. package/dist/src/confirmation-bus/message-bus.test.js +30 -24
  53. package/dist/src/confirmation-bus/message-bus.test.js.map +1 -1
  54. package/dist/src/confirmation-bus/types.d.ts +1 -0
  55. package/dist/src/core/baseLlmClient.d.ts +4 -8
  56. package/dist/src/core/baseLlmClient.js +3 -8
  57. package/dist/src/core/baseLlmClient.js.map +1 -1
  58. package/dist/src/core/baseLlmClient.test.js +22 -27
  59. package/dist/src/core/baseLlmClient.test.js.map +1 -1
  60. package/dist/src/core/client.d.ts +6 -5
  61. package/dist/src/core/client.js +33 -33
  62. package/dist/src/core/client.js.map +1 -1
  63. package/dist/src/core/client.test.js +40 -22
  64. package/dist/src/core/client.test.js.map +1 -1
  65. package/dist/src/core/coreToolScheduler.js +7 -1
  66. package/dist/src/core/coreToolScheduler.js.map +1 -1
  67. package/dist/src/core/coreToolScheduler.test.js +151 -357
  68. package/dist/src/core/coreToolScheduler.test.js.map +1 -1
  69. package/dist/src/core/geminiChat.d.ts +6 -4
  70. package/dist/src/core/geminiChat.js +106 -29
  71. package/dist/src/core/geminiChat.js.map +1 -1
  72. package/dist/src/core/geminiChat.test.js +317 -16
  73. package/dist/src/core/geminiChat.test.js.map +1 -1
  74. package/dist/src/core/logger.d.ts +7 -2
  75. package/dist/src/core/logger.js +15 -9
  76. package/dist/src/core/logger.js.map +1 -1
  77. package/dist/src/core/logger.test.js +31 -16
  78. package/dist/src/core/logger.test.js.map +1 -1
  79. package/dist/src/core/loggingContentGenerator.test.d.ts +6 -0
  80. package/dist/src/core/loggingContentGenerator.test.js +180 -0
  81. package/dist/src/core/loggingContentGenerator.test.js.map +1 -0
  82. package/dist/src/core/nonInteractiveToolExecutor.test.js +1 -0
  83. package/dist/src/core/nonInteractiveToolExecutor.test.js.map +1 -1
  84. package/dist/src/core/prompts.js +8 -11
  85. package/dist/src/core/prompts.js.map +1 -1
  86. package/dist/src/core/tokenLimits.test.d.ts +6 -0
  87. package/dist/src/core/tokenLimits.test.js +26 -0
  88. package/dist/src/core/tokenLimits.test.js.map +1 -0
  89. package/dist/src/fallback/handler.js +52 -7
  90. package/dist/src/fallback/handler.js.map +1 -1
  91. package/dist/src/fallback/handler.test.js +69 -16
  92. package/dist/src/fallback/handler.test.js.map +1 -1
  93. package/dist/src/fallback/types.d.ts +1 -1
  94. package/dist/src/generated/git-commit.d.ts +2 -2
  95. package/dist/src/generated/git-commit.js +2 -2
  96. package/dist/src/hooks/hookAggregator.d.ts +68 -0
  97. package/dist/src/hooks/hookAggregator.js +262 -0
  98. package/dist/src/hooks/hookAggregator.js.map +1 -0
  99. package/dist/src/hooks/hookAggregator.test.d.ts +6 -0
  100. package/dist/src/hooks/hookAggregator.test.js +387 -0
  101. package/dist/src/hooks/hookAggregator.test.js.map +1 -0
  102. package/dist/src/hooks/hookRunner.d.ts +42 -0
  103. package/dist/src/hooks/hookRunner.js +272 -0
  104. package/dist/src/hooks/hookRunner.js.map +1 -0
  105. package/dist/src/hooks/hookRunner.test.d.ts +6 -0
  106. package/dist/src/hooks/hookRunner.test.js +468 -0
  107. package/dist/src/hooks/hookRunner.test.js.map +1 -0
  108. package/dist/src/hooks/hookTranslator.d.ts +3 -3
  109. package/dist/src/hooks/types.js +1 -1
  110. package/dist/src/hooks/types.js.map +1 -1
  111. package/dist/src/hooks/types.test.js +280 -2
  112. package/dist/src/hooks/types.test.js.map +1 -1
  113. package/dist/src/ide/detect-ide.d.ts +4 -0
  114. package/dist/src/ide/detect-ide.js +6 -1
  115. package/dist/src/ide/detect-ide.js.map +1 -1
  116. package/dist/src/ide/detect-ide.test.js +5 -0
  117. package/dist/src/ide/detect-ide.test.js.map +1 -1
  118. package/dist/src/ide/ide-client.d.ts +3 -1
  119. package/dist/src/ide/ide-client.js +66 -59
  120. package/dist/src/ide/ide-client.js.map +1 -1
  121. package/dist/src/ide/ide-client.test.js +159 -0
  122. package/dist/src/ide/ide-client.test.js.map +1 -1
  123. package/dist/src/ide/ide-installer.js +71 -21
  124. package/dist/src/ide/ide-installer.js.map +1 -1
  125. package/dist/src/ide/ide-installer.test.js +42 -1
  126. package/dist/src/ide/ide-installer.test.js.map +1 -1
  127. package/dist/src/ide/process-utils.js +16 -0
  128. package/dist/src/ide/process-utils.js.map +1 -1
  129. package/dist/src/ide/process-utils.test.js +3 -3
  130. package/dist/src/ide/process-utils.test.js.map +1 -1
  131. package/dist/src/ide/types.d.ts +1 -1
  132. package/dist/src/ide/types.js +1 -1
  133. package/dist/src/index.d.ts +2 -0
  134. package/dist/src/index.js +2 -0
  135. package/dist/src/index.js.map +1 -1
  136. package/dist/src/mcp/google-auth-provider.js +1 -1
  137. package/dist/src/mcp/google-auth-provider.js.map +1 -1
  138. package/dist/src/mcp/oauth-provider.js +2 -2
  139. package/dist/src/mcp/oauth-provider.js.map +1 -1
  140. package/dist/src/mcp/oauth-provider.test.js +177 -0
  141. package/dist/src/mcp/oauth-provider.test.js.map +1 -1
  142. package/dist/src/mcp/sa-impersonation-provider.js +1 -1
  143. package/dist/src/mcp/sa-impersonation-provider.js.map +1 -1
  144. package/dist/src/policy/config.js +3 -1
  145. package/dist/src/policy/config.js.map +1 -1
  146. package/dist/src/policy/config.test.js +135 -1
  147. package/dist/src/policy/config.test.js.map +1 -1
  148. package/dist/src/policy/policies/discovered.toml +8 -0
  149. package/dist/src/policy/policies/write.toml +10 -0
  150. package/dist/src/policy/policy-engine.d.ts +12 -3
  151. package/dist/src/policy/policy-engine.js +71 -9
  152. package/dist/src/policy/policy-engine.js.map +1 -1
  153. package/dist/src/policy/policy-engine.test.js +460 -76
  154. package/dist/src/policy/policy-engine.test.js.map +1 -1
  155. package/dist/src/policy/toml-loader.d.ts +2 -1
  156. package/dist/src/policy/toml-loader.js +103 -6
  157. package/dist/src/policy/toml-loader.js.map +1 -1
  158. package/dist/src/policy/toml-loader.test.js +222 -368
  159. package/dist/src/policy/toml-loader.test.js.map +1 -1
  160. package/dist/src/policy/types.d.ts +65 -0
  161. package/dist/src/policy/types.js +4 -0
  162. package/dist/src/policy/types.js.map +1 -1
  163. package/dist/src/prompts/mcp-prompts.test.d.ts +6 -0
  164. package/dist/src/prompts/mcp-prompts.test.js +40 -0
  165. package/dist/src/prompts/mcp-prompts.test.js.map +1 -0
  166. package/dist/src/prompts/prompt-registry.test.d.ts +6 -0
  167. package/dist/src/prompts/prompt-registry.test.js +111 -0
  168. package/dist/src/prompts/prompt-registry.test.js.map +1 -0
  169. package/dist/src/routing/modelRouterService.js +15 -0
  170. package/dist/src/routing/modelRouterService.js.map +1 -1
  171. package/dist/src/routing/modelRouterService.test.js +62 -0
  172. package/dist/src/routing/modelRouterService.test.js.map +1 -1
  173. package/dist/src/routing/strategies/classifierStrategy.d.ts +1 -1
  174. package/dist/src/routing/strategies/classifierStrategy.js +6 -14
  175. package/dist/src/routing/strategies/classifierStrategy.js.map +1 -1
  176. package/dist/src/routing/strategies/classifierStrategy.test.js +13 -10
  177. package/dist/src/routing/strategies/classifierStrategy.test.js.map +1 -1
  178. package/dist/src/routing/strategies/fallbackStrategy.js +1 -1
  179. package/dist/src/routing/strategies/fallbackStrategy.js.map +1 -1
  180. package/dist/src/routing/strategies/fallbackStrategy.test.js +4 -0
  181. package/dist/src/routing/strategies/fallbackStrategy.test.js.map +1 -1
  182. package/dist/src/routing/strategies/overrideStrategy.js +2 -2
  183. package/dist/src/routing/strategies/overrideStrategy.js.map +1 -1
  184. package/dist/src/routing/strategies/overrideStrategy.test.js +3 -0
  185. package/dist/src/routing/strategies/overrideStrategy.test.js.map +1 -1
  186. package/dist/src/safety/built-in.d.ts +21 -0
  187. package/dist/src/safety/built-in.js +106 -0
  188. package/dist/src/safety/built-in.js.map +1 -0
  189. package/dist/src/safety/built-in.test.d.ts +6 -0
  190. package/dist/src/safety/built-in.test.js +199 -0
  191. package/dist/src/safety/built-in.test.js.map +1 -0
  192. package/dist/src/safety/checker-runner.d.ts +48 -0
  193. package/dist/src/safety/checker-runner.js +208 -0
  194. package/dist/src/safety/checker-runner.js.map +1 -0
  195. package/dist/src/safety/checker-runner.test.d.ts +6 -0
  196. package/dist/src/safety/checker-runner.test.js +238 -0
  197. package/dist/src/safety/checker-runner.test.js.map +1 -0
  198. package/dist/src/safety/context-builder.d.ts +23 -0
  199. package/dist/src/safety/context-builder.js +47 -0
  200. package/dist/src/safety/context-builder.js.map +1 -0
  201. package/dist/src/safety/context-builder.test.d.ts +6 -0
  202. package/dist/src/safety/context-builder.test.js +49 -0
  203. package/dist/src/safety/context-builder.test.js.map +1 -0
  204. package/dist/src/safety/protocol.d.ts +88 -0
  205. package/dist/src/safety/protocol.js +15 -0
  206. package/dist/src/safety/protocol.js.map +1 -0
  207. package/dist/src/safety/registry.d.ts +26 -0
  208. package/dist/src/safety/registry.js +65 -0
  209. package/dist/src/safety/registry.js.map +1 -0
  210. package/dist/src/safety/registry.test.d.ts +6 -0
  211. package/dist/src/safety/registry.test.js +31 -0
  212. package/dist/src/safety/registry.test.js.map +1 -0
  213. package/dist/src/services/chatCompressionService.test.js +1 -0
  214. package/dist/src/services/chatCompressionService.test.js.map +1 -1
  215. package/dist/src/services/gitService.js +1 -1
  216. package/dist/src/services/gitService.js.map +1 -1
  217. package/dist/src/services/gitService.test.js +1 -1
  218. package/dist/src/services/gitService.test.js.map +1 -1
  219. package/dist/src/services/loopDetectionService.d.ts +3 -0
  220. package/dist/src/services/loopDetectionService.js +81 -42
  221. package/dist/src/services/loopDetectionService.js.map +1 -1
  222. package/dist/src/services/loopDetectionService.test.js +101 -1
  223. package/dist/src/services/loopDetectionService.test.js.map +1 -1
  224. package/dist/src/services/modelConfig.golden.test.d.ts +6 -0
  225. package/dist/src/services/modelConfig.golden.test.js +42 -0
  226. package/dist/src/services/modelConfig.golden.test.js.map +1 -0
  227. package/dist/src/services/modelConfig.integration.test.d.ts +6 -0
  228. package/dist/src/services/modelConfig.integration.test.js +213 -0
  229. package/dist/src/services/modelConfig.integration.test.js.map +1 -0
  230. package/dist/src/services/modelConfigService.d.ts +46 -0
  231. package/dist/src/services/modelConfigService.js +146 -0
  232. package/dist/src/services/modelConfigService.js.map +1 -0
  233. package/dist/src/services/modelConfigService.test.d.ts +6 -0
  234. package/dist/src/services/modelConfigService.test.js +509 -0
  235. package/dist/src/services/modelConfigService.test.js.map +1 -0
  236. package/dist/src/services/test-data/resolved-aliases.golden.json +169 -0
  237. package/dist/src/telemetry/clearcut-logger/clearcut-logger.d.ts +11 -9
  238. package/dist/src/telemetry/clearcut-logger/clearcut-logger.js +174 -150
  239. package/dist/src/telemetry/clearcut-logger/clearcut-logger.js.map +1 -1
  240. package/dist/src/telemetry/clearcut-logger/clearcut-logger.test.d.ts +1 -0
  241. package/dist/src/telemetry/clearcut-logger/clearcut-logger.test.js +76 -20
  242. package/dist/src/telemetry/clearcut-logger/clearcut-logger.test.js.map +1 -1
  243. package/dist/src/telemetry/clearcut-logger/event-metadata-key.d.ts +6 -1
  244. package/dist/src/telemetry/clearcut-logger/event-metadata-key.js +18 -5
  245. package/dist/src/telemetry/clearcut-logger/event-metadata-key.js.map +1 -1
  246. package/dist/src/telemetry/index.d.ts +2 -2
  247. package/dist/src/telemetry/index.js +2 -2
  248. package/dist/src/telemetry/index.js.map +1 -1
  249. package/dist/src/telemetry/loggers.d.ts +7 -7
  250. package/dist/src/telemetry/loggers.js +23 -23
  251. package/dist/src/telemetry/loggers.js.map +1 -1
  252. package/dist/src/telemetry/loggers.test.circular.js +0 -1
  253. package/dist/src/telemetry/loggers.test.circular.js.map +1 -1
  254. package/dist/src/telemetry/loggers.test.js +72 -18
  255. package/dist/src/telemetry/loggers.test.js.map +1 -1
  256. package/dist/src/telemetry/metrics.d.ts +8 -4
  257. package/dist/src/telemetry/metrics.js +10 -4
  258. package/dist/src/telemetry/metrics.js.map +1 -1
  259. package/dist/src/telemetry/metrics.test.js +42 -0
  260. package/dist/src/telemetry/metrics.test.js.map +1 -1
  261. package/dist/src/telemetry/telemetryAttributes.js +1 -0
  262. package/dist/src/telemetry/telemetryAttributes.js.map +1 -1
  263. package/dist/src/telemetry/types.d.ts +17 -11
  264. package/dist/src/telemetry/types.js +53 -28
  265. package/dist/src/telemetry/types.js.map +1 -1
  266. package/dist/src/tools/base-tool-invocation.test.d.ts +6 -0
  267. package/dist/src/tools/base-tool-invocation.test.js +85 -0
  268. package/dist/src/tools/base-tool-invocation.test.js.map +1 -0
  269. package/dist/src/tools/edit.d.ts +1 -1
  270. package/dist/src/tools/edit.js +31 -33
  271. package/dist/src/tools/edit.js.map +1 -1
  272. package/dist/src/tools/edit.test.js +31 -20
  273. package/dist/src/tools/edit.test.js.map +1 -1
  274. package/dist/src/tools/glob.d.ts +1 -1
  275. package/dist/src/tools/glob.js +7 -7
  276. package/dist/src/tools/glob.js.map +1 -1
  277. package/dist/src/tools/glob.test.js +20 -17
  278. package/dist/src/tools/glob.test.js.map +1 -1
  279. package/dist/src/tools/grep.d.ts +1 -1
  280. package/dist/src/tools/grep.js +9 -9
  281. package/dist/src/tools/grep.js.map +1 -1
  282. package/dist/src/tools/grep.test.js +15 -12
  283. package/dist/src/tools/grep.test.js.map +1 -1
  284. package/dist/src/tools/ls.d.ts +1 -1
  285. package/dist/src/tools/ls.js +14 -15
  286. package/dist/src/tools/ls.js.map +1 -1
  287. package/dist/src/tools/ls.test.js +32 -33
  288. package/dist/src/tools/ls.test.js.map +1 -1
  289. package/dist/src/tools/mcp-client.js +24 -52
  290. package/dist/src/tools/mcp-client.js.map +1 -1
  291. package/dist/src/tools/mcp-client.test.js +18 -0
  292. package/dist/src/tools/mcp-client.test.js.map +1 -1
  293. package/dist/src/tools/mcp-tool.d.ts +1 -0
  294. package/dist/src/tools/mcp-tool.js +5 -2
  295. package/dist/src/tools/mcp-tool.js.map +1 -1
  296. package/dist/src/tools/memoryTool.js +1 -1
  297. package/dist/src/tools/memoryTool.js.map +1 -1
  298. package/dist/src/tools/memoryTool.test.js +1 -1
  299. package/dist/src/tools/memoryTool.test.js.map +1 -1
  300. package/dist/src/tools/modifiable-tool.d.ts +5 -1
  301. package/dist/src/tools/modifiable-tool.js +34 -13
  302. package/dist/src/tools/modifiable-tool.js.map +1 -1
  303. package/dist/src/tools/modifiable-tool.test.js +56 -22
  304. package/dist/src/tools/modifiable-tool.test.js.map +1 -1
  305. package/dist/src/tools/read-file.d.ts +2 -2
  306. package/dist/src/tools/read-file.js +20 -24
  307. package/dist/src/tools/read-file.js.map +1 -1
  308. package/dist/src/tools/read-file.test.js +63 -51
  309. package/dist/src/tools/read-file.test.js.map +1 -1
  310. package/dist/src/tools/read-many-files.d.ts +2 -9
  311. package/dist/src/tools/read-many-files.js +10 -21
  312. package/dist/src/tools/read-many-files.js.map +1 -1
  313. package/dist/src/tools/read-many-files.test.js +37 -35
  314. package/dist/src/tools/read-many-files.test.js.map +1 -1
  315. package/dist/src/tools/ripGrep.d.ts +25 -8
  316. package/dist/src/tools/ripGrep.js +148 -176
  317. package/dist/src/tools/ripGrep.js.map +1 -1
  318. package/dist/src/tools/ripGrep.test.js +383 -58
  319. package/dist/src/tools/ripGrep.test.js.map +1 -1
  320. package/dist/src/tools/shell.d.ts +1 -1
  321. package/dist/src/tools/shell.js +17 -15
  322. package/dist/src/tools/shell.js.map +1 -1
  323. package/dist/src/tools/shell.test.js +66 -36
  324. package/dist/src/tools/shell.test.js.map +1 -1
  325. package/dist/src/tools/smart-edit.d.ts +6 -1
  326. package/dist/src/tools/smart-edit.js +18 -17
  327. package/dist/src/tools/smart-edit.js.map +1 -1
  328. package/dist/src/tools/smart-edit.test.js +49 -24
  329. package/dist/src/tools/smart-edit.test.js.map +1 -1
  330. package/dist/src/tools/tool-registry.d.ts +29 -4
  331. package/dist/src/tools/tool-registry.js +108 -29
  332. package/dist/src/tools/tool-registry.js.map +1 -1
  333. package/dist/src/tools/tool-registry.test.js +134 -4
  334. package/dist/src/tools/tool-registry.test.js.map +1 -1
  335. package/dist/src/tools/tools.d.ts +2 -1
  336. package/dist/src/tools/tools.js +5 -2
  337. package/dist/src/tools/tools.js.map +1 -1
  338. package/dist/src/tools/web-fetch.js +2 -4
  339. package/dist/src/tools/web-fetch.js.map +1 -1
  340. package/dist/src/tools/web-fetch.test.js +11 -4
  341. package/dist/src/tools/web-fetch.test.js.map +1 -1
  342. package/dist/src/tools/web-search.js +1 -2
  343. package/dist/src/tools/web-search.js.map +1 -1
  344. package/dist/src/tools/web-search.test.js +11 -5
  345. package/dist/src/tools/web-search.test.js.map +1 -1
  346. package/dist/src/tools/write-file.js +31 -31
  347. package/dist/src/tools/write-file.js.map +1 -1
  348. package/dist/src/tools/write-file.test.js +24 -5
  349. package/dist/src/tools/write-file.test.js.map +1 -1
  350. package/dist/src/tools/write-todos.d.ts +29 -0
  351. package/dist/src/tools/write-todos.js +34 -1
  352. package/dist/src/tools/write-todos.js.map +1 -1
  353. package/dist/src/utils/editCorrector.js +4 -15
  354. package/dist/src/utils/editCorrector.js.map +1 -1
  355. package/dist/src/utils/editCorrector.test.js +16 -0
  356. package/dist/src/utils/editCorrector.test.js.map +1 -1
  357. package/dist/src/utils/editor.d.ts +3 -1
  358. package/dist/src/utils/editor.js +18 -1
  359. package/dist/src/utils/editor.js.map +1 -1
  360. package/dist/src/utils/editor.test.js +11 -0
  361. package/dist/src/utils/editor.test.js.map +1 -1
  362. package/dist/src/utils/environmentContext.js +3 -1
  363. package/dist/src/utils/environmentContext.js.map +1 -1
  364. package/dist/src/utils/environmentContext.test.js +6 -0
  365. package/dist/src/utils/environmentContext.test.js.map +1 -1
  366. package/dist/src/utils/events.d.ts +14 -11
  367. package/dist/src/utils/events.js +1 -14
  368. package/dist/src/utils/events.js.map +1 -1
  369. package/dist/src/utils/extensionLoader.d.ts +8 -0
  370. package/dist/src/utils/extensionLoader.js +61 -15
  371. package/dist/src/utils/extensionLoader.js.map +1 -1
  372. package/dist/src/utils/extensionLoader.test.js +83 -19
  373. package/dist/src/utils/extensionLoader.test.js.map +1 -1
  374. package/dist/src/utils/fileUtils.test.js +75 -60
  375. package/dist/src/utils/fileUtils.test.js.map +1 -1
  376. package/dist/src/utils/flashFallback.test.js +2 -2
  377. package/dist/src/utils/flashFallback.test.js.map +1 -1
  378. package/dist/src/utils/googleQuotaErrors.d.ts +2 -1
  379. package/dist/src/utils/googleQuotaErrors.js +20 -12
  380. package/dist/src/utils/googleQuotaErrors.js.map +1 -1
  381. package/dist/src/utils/httpErrors.d.ts +18 -0
  382. package/dist/src/utils/httpErrors.js +36 -0
  383. package/dist/src/utils/httpErrors.js.map +1 -0
  384. package/dist/src/utils/llm-edit-fixer.js +1 -2
  385. package/dist/src/utils/llm-edit-fixer.js.map +1 -1
  386. package/dist/src/utils/llm-edit-fixer.test.js +16 -1
  387. package/dist/src/utils/llm-edit-fixer.test.js.map +1 -1
  388. package/dist/src/utils/memoryDiscovery.d.ts +8 -0
  389. package/dist/src/utils/memoryDiscovery.js +24 -0
  390. package/dist/src/utils/memoryDiscovery.js.map +1 -1
  391. package/dist/src/utils/memoryDiscovery.test.js +43 -1
  392. package/dist/src/utils/memoryDiscovery.test.js.map +1 -1
  393. package/dist/src/utils/nextSpeakerChecker.js +1 -2
  394. package/dist/src/utils/nextSpeakerChecker.js.map +1 -1
  395. package/dist/src/utils/nextSpeakerChecker.test.js +10 -4
  396. package/dist/src/utils/nextSpeakerChecker.test.js.map +1 -1
  397. package/dist/src/utils/pathReader.js +4 -4
  398. package/dist/src/utils/pathReader.js.map +1 -1
  399. package/dist/src/utils/pathReader.test.js +44 -1
  400. package/dist/src/utils/pathReader.test.js.map +1 -1
  401. package/dist/src/utils/paths.d.ts +1 -1
  402. package/dist/src/utils/paths.js +5 -3
  403. package/dist/src/utils/paths.js.map +1 -1
  404. package/dist/src/utils/retry.d.ts +0 -9
  405. package/dist/src/utils/retry.js +24 -28
  406. package/dist/src/utils/retry.js.map +1 -1
  407. package/dist/src/utils/retry.test.js +51 -0
  408. package/dist/src/utils/retry.test.js.map +1 -1
  409. package/dist/src/utils/shell-utils.js +5 -3
  410. package/dist/src/utils/shell-utils.js.map +1 -1
  411. package/dist/src/utils/shell-utils.test.js +9 -9
  412. package/dist/src/utils/shell-utils.test.js.map +1 -1
  413. package/dist/src/utils/summarizer.d.ts +4 -2
  414. package/dist/src/utils/summarizer.js +6 -8
  415. package/dist/src/utils/summarizer.js.map +1 -1
  416. package/dist/src/utils/summarizer.test.js +32 -11
  417. package/dist/src/utils/summarizer.test.js.map +1 -1
  418. package/dist/src/utils/workspaceContext.d.ts +4 -3
  419. package/dist/src/utils/workspaceContext.js +10 -11
  420. package/dist/src/utils/workspaceContext.js.map +1 -1
  421. package/dist/src/utils/workspaceContext.test.js +1 -1
  422. package/dist/src/utils/workspaceContext.test.js.map +1 -1
  423. package/dist/tsconfig.tsbuildinfo +1 -1
  424. package/package.json +1 -1
@@ -100,6 +100,7 @@ describe('loggers', () => {
100
100
  },
101
101
  }),
102
102
  }),
103
+ isInteractive: () => false,
103
104
  };
104
105
  const startSessionEvent = new StartSessionEvent(mockConfig);
105
106
  logCliConfiguration(mockConfig, startSessionEvent);
@@ -111,6 +112,7 @@ describe('loggers', () => {
111
112
  'installation.id': 'test-installation-id',
112
113
  'event.name': EVENT_CLI_CONFIG,
113
114
  'event.timestamp': '2025-01-01T00:00:00.000Z',
115
+ interactive: false,
114
116
  model: 'test-model',
115
117
  embedding_model: 'test-embedding-model',
116
118
  sandbox_enabled: true,
@@ -140,6 +142,7 @@ describe('loggers', () => {
140
142
  getTelemetryEnabled: () => true,
141
143
  getTelemetryLogPromptsEnabled: () => true,
142
144
  getUsageStatisticsEnabled: () => true,
145
+ isInteractive: () => false,
143
146
  };
144
147
  it('should log a user prompt', () => {
145
148
  const event = new UserPromptEvent(11, 'prompt-id-8', AuthType.USE_VERTEX_AI, 'test-prompt');
@@ -152,6 +155,7 @@ describe('loggers', () => {
152
155
  'installation.id': 'test-installation-id',
153
156
  'event.name': EVENT_USER_PROMPT,
154
157
  'event.timestamp': '2025-01-01T00:00:00.000Z',
158
+ interactive: false,
155
159
  prompt_length: 11,
156
160
  prompt: 'test-prompt',
157
161
  prompt_id: 'prompt-id-8',
@@ -166,6 +170,7 @@ describe('loggers', () => {
166
170
  getTelemetryLogPromptsEnabled: () => false,
167
171
  getTargetDir: () => 'target-dir',
168
172
  getUsageStatisticsEnabled: () => true,
173
+ isInteractive: () => false,
169
174
  };
170
175
  const event = new UserPromptEvent(11, 'prompt-id-9', AuthType.CLOUD_SHELL, 'test-prompt');
171
176
  logUserPrompt(mockConfig, event);
@@ -177,6 +182,7 @@ describe('loggers', () => {
177
182
  'installation.id': 'test-installation-id',
178
183
  'event.name': EVENT_USER_PROMPT,
179
184
  'event.timestamp': '2025-01-01T00:00:00.000Z',
185
+ interactive: false,
180
186
  prompt_length: 11,
181
187
  prompt_id: 'prompt-id-9',
182
188
  auth_type: 'cloud-shell',
@@ -191,6 +197,7 @@ describe('loggers', () => {
191
197
  getUsageStatisticsEnabled: () => true,
192
198
  getTelemetryEnabled: () => true,
193
199
  getTelemetryLogPromptsEnabled: () => true,
200
+ isInteractive: () => false,
194
201
  };
195
202
  const mockMetrics = {
196
203
  recordApiResponseMetrics: vi.fn(),
@@ -328,6 +335,7 @@ describe('loggers', () => {
328
335
  getUsageStatisticsEnabled: () => true,
329
336
  getTelemetryEnabled: () => true,
330
337
  getTelemetryLogPromptsEnabled: () => true,
338
+ isInteractive: () => false,
331
339
  };
332
340
  const mockMetrics = {
333
341
  recordApiResponseMetrics: vi.fn(),
@@ -428,6 +436,7 @@ describe('loggers', () => {
428
436
  getUsageStatisticsEnabled: () => true,
429
437
  getTelemetryEnabled: () => true,
430
438
  getTelemetryLogPromptsEnabled: () => true,
439
+ isInteractive: () => false,
431
440
  };
432
441
  it('should log an API request with request_text', () => {
433
442
  const event = new ApiRequestEvent('test-model', 'prompt-id-7', 'This is a test request');
@@ -440,6 +449,7 @@ describe('loggers', () => {
440
449
  'installation.id': 'test-installation-id',
441
450
  'event.name': EVENT_API_REQUEST,
442
451
  'event.timestamp': '2025-01-01T00:00:00.000Z',
452
+ interactive: false,
443
453
  model: 'test-model',
444
454
  request_text: 'This is a test request',
445
455
  prompt_id: 'prompt-id-7',
@@ -457,6 +467,7 @@ describe('loggers', () => {
457
467
  'installation.id': 'test-installation-id',
458
468
  'event.name': EVENT_API_REQUEST,
459
469
  'event.timestamp': '2025-01-01T00:00:00.000Z',
470
+ interactive: false,
460
471
  model: 'test-model',
461
472
  prompt_id: 'prompt-id-6',
462
473
  },
@@ -467,6 +478,7 @@ describe('loggers', () => {
467
478
  const mockConfig = {
468
479
  getSessionId: () => 'test-session-id',
469
480
  getUsageStatisticsEnabled: () => true,
481
+ isInteractive: () => false,
470
482
  };
471
483
  it('should log flash fallback event', () => {
472
484
  const event = new FlashFallbackEvent(AuthType.USE_VERTEX_AI);
@@ -479,6 +491,7 @@ describe('loggers', () => {
479
491
  'installation.id': 'test-installation-id',
480
492
  'event.name': EVENT_FLASH_FALLBACK,
481
493
  'event.timestamp': '2025-01-01T00:00:00.000Z',
494
+ interactive: false,
482
495
  auth_type: 'vertex-ai',
483
496
  },
484
497
  });
@@ -488,6 +501,7 @@ describe('loggers', () => {
488
501
  const mockConfig = {
489
502
  getSessionId: () => 'test-session-id',
490
503
  getUsageStatisticsEnabled: () => true,
504
+ isInteractive: () => false,
491
505
  };
492
506
  beforeEach(() => {
493
507
  vi.spyOn(ClearcutLogger.prototype, 'logRipgrepFallbackEvent');
@@ -559,6 +573,7 @@ describe('loggers', () => {
559
573
  getUsageStatisticsEnabled: () => true,
560
574
  getTelemetryEnabled: () => true,
561
575
  getTelemetryLogPromptsEnabled: () => true,
576
+ isInteractive: () => false,
562
577
  };
563
578
  const mockMetrics = {
564
579
  recordToolCallMetrics: vi.fn(),
@@ -621,6 +636,7 @@ describe('loggers', () => {
621
636
  'installation.id': 'test-installation-id',
622
637
  'event.name': EVENT_TOOL_CALL,
623
638
  'event.timestamp': '2025-01-01T00:00:00.000Z',
639
+ interactive: false,
624
640
  function_name: 'test-function',
625
641
  function_args: JSON.stringify({
626
642
  arg1: 'value1',
@@ -633,6 +649,8 @@ describe('loggers', () => {
633
649
  tool_type: 'native',
634
650
  error: undefined,
635
651
  error_type: undefined,
652
+ mcp_server_name: undefined,
653
+ extension_id: undefined,
636
654
  metadata: {
637
655
  model_added_lines: 1,
638
656
  model_removed_lines: 2,
@@ -694,6 +712,7 @@ describe('loggers', () => {
694
712
  'installation.id': 'test-installation-id',
695
713
  'event.name': EVENT_TOOL_CALL,
696
714
  'event.timestamp': '2025-01-01T00:00:00.000Z',
715
+ interactive: false,
697
716
  function_name: 'test-function',
698
717
  function_args: JSON.stringify({
699
718
  arg1: 'value1',
@@ -706,6 +725,8 @@ describe('loggers', () => {
706
725
  tool_type: 'native',
707
726
  error: undefined,
708
727
  error_type: undefined,
728
+ mcp_server_name: undefined,
729
+ extension_id: undefined,
709
730
  metadata: undefined,
710
731
  content_length: undefined,
711
732
  },
@@ -758,6 +779,7 @@ describe('loggers', () => {
758
779
  'installation.id': 'test-installation-id',
759
780
  'event.name': EVENT_TOOL_CALL,
760
781
  'event.timestamp': '2025-01-01T00:00:00.000Z',
782
+ interactive: false,
761
783
  function_name: 'test-function',
762
784
  function_args: JSON.stringify({
763
785
  arg1: 'value1',
@@ -770,6 +792,8 @@ describe('loggers', () => {
770
792
  tool_type: 'native',
771
793
  error: undefined,
772
794
  error_type: undefined,
795
+ mcp_server_name: undefined,
796
+ extension_id: undefined,
773
797
  metadata: undefined,
774
798
  content_length: 13,
775
799
  },
@@ -821,6 +845,7 @@ describe('loggers', () => {
821
845
  'installation.id': 'test-installation-id',
822
846
  'event.name': EVENT_TOOL_CALL,
823
847
  'event.timestamp': '2025-01-01T00:00:00.000Z',
848
+ interactive: false,
824
849
  function_name: 'test-function',
825
850
  function_args: JSON.stringify({
826
851
  arg1: 'value1',
@@ -833,6 +858,8 @@ describe('loggers', () => {
833
858
  decision: undefined,
834
859
  error: undefined,
835
860
  error_type: undefined,
861
+ mcp_server_name: undefined,
862
+ extension_id: undefined,
836
863
  metadata: undefined,
837
864
  content_length: 13,
838
865
  },
@@ -883,6 +910,7 @@ describe('loggers', () => {
883
910
  'installation.id': 'test-installation-id',
884
911
  'event.name': EVENT_TOOL_CALL,
885
912
  'event.timestamp': '2025-01-01T00:00:00.000Z',
913
+ interactive: false,
886
914
  function_name: 'test-function',
887
915
  function_args: JSON.stringify({
888
916
  arg1: 'value1',
@@ -897,6 +925,8 @@ describe('loggers', () => {
897
925
  prompt_id: 'prompt-id-5',
898
926
  tool_type: 'native',
899
927
  decision: undefined,
928
+ mcp_server_name: undefined,
929
+ extension_id: undefined,
900
930
  metadata: undefined,
901
931
  content_length: errorMessage.length,
902
932
  },
@@ -954,6 +984,7 @@ describe('loggers', () => {
954
984
  'event.timestamp': '2025-01-01T00:00:00.000Z',
955
985
  extension_name: 'test-extension',
956
986
  extension_id: 'test-extension-id',
987
+ interactive: false,
957
988
  function_name: 'mock_mcp_tool',
958
989
  function_args: JSON.stringify({
959
990
  arg1: 'value1',
@@ -990,6 +1021,7 @@ describe('loggers', () => {
990
1021
  'installation.id': 'test-installation-id',
991
1022
  'event.name': EVENT_MALFORMED_JSON_RESPONSE,
992
1023
  'event.timestamp': '2025-01-01T00:00:00.000Z',
1024
+ interactive: false,
993
1025
  model: 'test-model',
994
1026
  },
995
1027
  });
@@ -1002,6 +1034,7 @@ describe('loggers', () => {
1002
1034
  getUsageStatisticsEnabled: () => true,
1003
1035
  getTelemetryEnabled: () => true,
1004
1036
  getTelemetryLogPromptsEnabled: () => true,
1037
+ isInteractive: () => false,
1005
1038
  };
1006
1039
  const mockMetrics = {
1007
1040
  recordFileOperationMetric: vi.fn(),
@@ -1020,6 +1053,7 @@ describe('loggers', () => {
1020
1053
  'installation.id': 'test-installation-id',
1021
1054
  'event.name': EVENT_FILE_OPERATION,
1022
1055
  'event.timestamp': '2025-01-01T00:00:00.000Z',
1056
+ interactive: false,
1023
1057
  tool_name: 'test-tool',
1024
1058
  operation: 'read',
1025
1059
  lines: 10,
@@ -1041,6 +1075,7 @@ describe('loggers', () => {
1041
1075
  const mockConfig = {
1042
1076
  getSessionId: () => 'test-session-id',
1043
1077
  getUsageStatisticsEnabled: () => true,
1078
+ isInteractive: () => false,
1044
1079
  };
1045
1080
  it('should log a tool output truncated event', () => {
1046
1081
  const event = new ToolOutputTruncatedEvent('prompt-id-1', {
@@ -1060,6 +1095,7 @@ describe('loggers', () => {
1060
1095
  'event.name': EVENT_TOOL_OUTPUT_TRUNCATED,
1061
1096
  'event.timestamp': '2025-01-01T00:00:00.000Z',
1062
1097
  eventName: 'tool_output_truncated',
1098
+ interactive: false,
1063
1099
  prompt_id: 'prompt-id-1',
1064
1100
  tool_name: 'test-tool',
1065
1101
  original_content_length: 1000,
@@ -1074,6 +1110,7 @@ describe('loggers', () => {
1074
1110
  const mockConfig = {
1075
1111
  getSessionId: () => 'test-session-id',
1076
1112
  getUsageStatisticsEnabled: () => true,
1113
+ isInteractive: () => false,
1077
1114
  };
1078
1115
  beforeEach(() => {
1079
1116
  vi.spyOn(ClearcutLogger.prototype, 'logModelRoutingEvent');
@@ -1091,6 +1128,7 @@ describe('loggers', () => {
1091
1128
  'installation.id': 'test-installation-id',
1092
1129
  ...event,
1093
1130
  'event.name': EVENT_MODEL_ROUTING,
1131
+ interactive: false,
1094
1132
  },
1095
1133
  });
1096
1134
  expect(metrics.recordModelRoutingMetrics).toHaveBeenCalledWith(mockConfig, event);
@@ -1111,16 +1149,17 @@ describe('loggers', () => {
1111
1149
  getContentGeneratorConfig: () => null,
1112
1150
  getUseSmartEdit: () => null,
1113
1151
  getUseModelRouter: () => null,
1152
+ isInteractive: () => false,
1114
1153
  };
1115
1154
  beforeEach(() => {
1116
1155
  vi.spyOn(ClearcutLogger.prototype, 'logExtensionInstallEvent');
1117
1156
  });
1118
1157
  afterEach(() => {
1119
- vi.resetAllMocks();
1158
+ vi.clearAllMocks();
1120
1159
  });
1121
- it('should log extension install event', () => {
1160
+ it('should log extension install event', async () => {
1122
1161
  const event = new ExtensionInstallEvent('testing', 'testing-id', '0.1.0', 'git', 'success');
1123
- logExtensionInstallEvent(mockConfig, event);
1162
+ await logExtensionInstallEvent(mockConfig, event);
1124
1163
  expect(ClearcutLogger.prototype.logExtensionInstallEvent).toHaveBeenCalledWith(event);
1125
1164
  expect(mockLogger.emit).toHaveBeenCalledWith({
1126
1165
  body: 'Installed extension testing',
@@ -1130,6 +1169,7 @@ describe('loggers', () => {
1130
1169
  'installation.id': 'test-installation-id',
1131
1170
  'event.name': EVENT_EXTENSION_INSTALL,
1132
1171
  'event.timestamp': '2025-01-01T00:00:00.000Z',
1172
+ interactive: false,
1133
1173
  extension_name: 'testing',
1134
1174
  extension_version: '0.1.0',
1135
1175
  extension_source: 'git',
@@ -1138,23 +1178,24 @@ describe('loggers', () => {
1138
1178
  });
1139
1179
  });
1140
1180
  });
1141
- describe('logExtensionUpdate', () => {
1181
+ describe('logExtensionUpdate', async () => {
1142
1182
  const mockConfig = {
1143
1183
  getSessionId: () => 'test-session-id',
1144
1184
  getUsageStatisticsEnabled: () => true,
1145
1185
  getContentGeneratorConfig: () => null,
1146
1186
  getUseSmartEdit: () => null,
1147
1187
  getUseModelRouter: () => null,
1188
+ isInteractive: () => false,
1148
1189
  };
1149
1190
  beforeEach(() => {
1150
1191
  vi.spyOn(ClearcutLogger.prototype, 'logExtensionUpdateEvent');
1151
1192
  });
1152
1193
  afterEach(() => {
1153
- vi.resetAllMocks();
1194
+ vi.clearAllMocks();
1154
1195
  });
1155
- it('should log extension update event', () => {
1196
+ it('should log extension update event', async () => {
1156
1197
  const event = new ExtensionUpdateEvent('testing', 'testing-id', '0.1.0', '0.1.1', 'git', 'success');
1157
- logExtensionUpdateEvent(mockConfig, event);
1198
+ await logExtensionUpdateEvent(mockConfig, event);
1158
1199
  expect(ClearcutLogger.prototype.logExtensionUpdateEvent).toHaveBeenCalledWith(event);
1159
1200
  expect(mockLogger.emit).toHaveBeenCalledWith({
1160
1201
  body: 'Updated extension testing',
@@ -1164,6 +1205,7 @@ describe('loggers', () => {
1164
1205
  'installation.id': 'test-installation-id',
1165
1206
  'event.name': EVENT_EXTENSION_UPDATE,
1166
1207
  'event.timestamp': '2025-01-01T00:00:00.000Z',
1208
+ interactive: false,
1167
1209
  extension_name: 'testing',
1168
1210
  extension_version: '0.1.0',
1169
1211
  extension_previous_version: '0.1.1',
@@ -1173,23 +1215,24 @@ describe('loggers', () => {
1173
1215
  });
1174
1216
  });
1175
1217
  });
1176
- describe('logExtensionUninstall', () => {
1218
+ describe('logExtensionUninstall', async () => {
1177
1219
  const mockConfig = {
1178
1220
  getSessionId: () => 'test-session-id',
1179
1221
  getUsageStatisticsEnabled: () => true,
1180
1222
  getContentGeneratorConfig: () => null,
1181
1223
  getUseSmartEdit: () => null,
1182
1224
  getUseModelRouter: () => null,
1225
+ isInteractive: () => false,
1183
1226
  };
1184
1227
  beforeEach(() => {
1185
1228
  vi.spyOn(ClearcutLogger.prototype, 'logExtensionUninstallEvent');
1186
1229
  });
1187
1230
  afterEach(() => {
1188
- vi.resetAllMocks();
1231
+ vi.clearAllMocks();
1189
1232
  });
1190
- it('should log extension uninstall event', () => {
1233
+ it('should log extension uninstall event', async () => {
1191
1234
  const event = new ExtensionUninstallEvent('testing', 'testing-id', 'success');
1192
- logExtensionUninstall(mockConfig, event);
1235
+ await logExtensionUninstall(mockConfig, event);
1193
1236
  expect(ClearcutLogger.prototype.logExtensionUninstallEvent).toHaveBeenCalledWith(event);
1194
1237
  expect(mockLogger.emit).toHaveBeenCalledWith({
1195
1238
  body: 'Uninstalled extension testing',
@@ -1199,26 +1242,28 @@ describe('loggers', () => {
1199
1242
  'installation.id': 'test-installation-id',
1200
1243
  'event.name': EVENT_EXTENSION_UNINSTALL,
1201
1244
  'event.timestamp': '2025-01-01T00:00:00.000Z',
1245
+ interactive: false,
1202
1246
  extension_name: 'testing',
1203
1247
  status: 'success',
1204
1248
  },
1205
1249
  });
1206
1250
  });
1207
1251
  });
1208
- describe('logExtensionEnable', () => {
1252
+ describe('logExtensionEnable', async () => {
1209
1253
  const mockConfig = {
1210
1254
  getSessionId: () => 'test-session-id',
1211
1255
  getUsageStatisticsEnabled: () => true,
1256
+ isInteractive: () => false,
1212
1257
  };
1213
1258
  beforeEach(() => {
1214
1259
  vi.spyOn(ClearcutLogger.prototype, 'logExtensionEnableEvent');
1215
1260
  });
1216
1261
  afterEach(() => {
1217
- vi.resetAllMocks();
1262
+ vi.clearAllMocks();
1218
1263
  });
1219
- it('should log extension enable event', () => {
1264
+ it('should log extension enable event', async () => {
1220
1265
  const event = new ExtensionEnableEvent('testing', 'testing-id', 'user');
1221
- logExtensionEnable(mockConfig, event);
1266
+ await logExtensionEnable(mockConfig, event);
1222
1267
  expect(ClearcutLogger.prototype.logExtensionEnableEvent).toHaveBeenCalledWith(event);
1223
1268
  expect(mockLogger.emit).toHaveBeenCalledWith({
1224
1269
  body: 'Enabled extension testing',
@@ -1228,6 +1273,7 @@ describe('loggers', () => {
1228
1273
  'installation.id': 'test-installation-id',
1229
1274
  'event.name': EVENT_EXTENSION_ENABLE,
1230
1275
  'event.timestamp': '2025-01-01T00:00:00.000Z',
1276
+ interactive: false,
1231
1277
  extension_name: 'testing',
1232
1278
  setting_scope: 'user',
1233
1279
  },
@@ -1238,16 +1284,17 @@ describe('loggers', () => {
1238
1284
  const mockConfig = {
1239
1285
  getSessionId: () => 'test-session-id',
1240
1286
  getUsageStatisticsEnabled: () => true,
1287
+ isInteractive: () => false,
1241
1288
  };
1242
1289
  beforeEach(() => {
1243
1290
  vi.spyOn(ClearcutLogger.prototype, 'logExtensionDisableEvent');
1244
1291
  });
1245
1292
  afterEach(() => {
1246
- vi.resetAllMocks();
1293
+ vi.clearAllMocks();
1247
1294
  });
1248
- it('should log extension disable event', () => {
1295
+ it('should log extension disable event', async () => {
1249
1296
  const event = new ExtensionDisableEvent('testing', 'testing-id', 'user');
1250
- logExtensionDisable(mockConfig, event);
1297
+ await logExtensionDisable(mockConfig, event);
1251
1298
  expect(ClearcutLogger.prototype.logExtensionDisableEvent).toHaveBeenCalledWith(event);
1252
1299
  expect(mockLogger.emit).toHaveBeenCalledWith({
1253
1300
  body: 'Disabled extension testing',
@@ -1257,6 +1304,7 @@ describe('loggers', () => {
1257
1304
  'installation.id': 'test-installation-id',
1258
1305
  'event.name': EVENT_EXTENSION_DISABLE,
1259
1306
  'event.timestamp': '2025-01-01T00:00:00.000Z',
1307
+ interactive: false,
1260
1308
  extension_name: 'testing',
1261
1309
  setting_scope: 'user',
1262
1310
  },
@@ -1267,6 +1315,7 @@ describe('loggers', () => {
1267
1315
  const mockConfig = {
1268
1316
  getSessionId: () => 'test-session-id',
1269
1317
  getUsageStatisticsEnabled: () => true,
1318
+ isInteractive: () => false,
1270
1319
  };
1271
1320
  beforeEach(() => {
1272
1321
  vi.spyOn(ClearcutLogger.prototype, 'logAgentStartEvent');
@@ -1283,6 +1332,7 @@ describe('loggers', () => {
1283
1332
  'installation.id': 'test-installation-id',
1284
1333
  'event.name': EVENT_AGENT_START,
1285
1334
  'event.timestamp': '2025-01-01T00:00:00.000Z',
1335
+ interactive: false,
1286
1336
  agent_id: 'agent-123',
1287
1337
  agent_name: 'TestAgent',
1288
1338
  },
@@ -1293,6 +1343,7 @@ describe('loggers', () => {
1293
1343
  const mockConfig = {
1294
1344
  getSessionId: () => 'test-session-id',
1295
1345
  getUsageStatisticsEnabled: () => true,
1346
+ isInteractive: () => false,
1296
1347
  };
1297
1348
  beforeEach(() => {
1298
1349
  vi.spyOn(ClearcutLogger.prototype, 'logAgentFinishEvent');
@@ -1310,6 +1361,7 @@ describe('loggers', () => {
1310
1361
  'installation.id': 'test-installation-id',
1311
1362
  'event.name': EVENT_AGENT_FINISH,
1312
1363
  'event.timestamp': '2025-01-01T00:00:00.000Z',
1364
+ interactive: false,
1313
1365
  agent_id: 'agent-123',
1314
1366
  agent_name: 'TestAgent',
1315
1367
  duration_ms: 1000,
@@ -1324,6 +1376,7 @@ describe('loggers', () => {
1324
1376
  const mockConfig = {
1325
1377
  getSessionId: () => 'test-session-id',
1326
1378
  getUsageStatisticsEnabled: () => true,
1379
+ isInteractive: () => false,
1327
1380
  };
1328
1381
  beforeEach(() => {
1329
1382
  vi.spyOn(ClearcutLogger.prototype, 'logWebFetchFallbackAttemptEvent');
@@ -1340,6 +1393,7 @@ describe('loggers', () => {
1340
1393
  'installation.id': 'test-installation-id',
1341
1394
  'event.name': EVENT_WEB_FETCH_FALLBACK_ATTEMPT,
1342
1395
  'event.timestamp': '2025-01-01T00:00:00.000Z',
1396
+ interactive: false,
1343
1397
  reason: 'private_ip',
1344
1398
  },
1345
1399
  });