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

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 (898) 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/index.d.ts +1 -1
  98. package/dist/index.js +1 -1
  99. package/dist/index.js.map +1 -1
  100. package/dist/package.json +7 -4
  101. package/dist/src/agents/a2a-client-manager.d.ts +82 -0
  102. package/dist/src/agents/a2a-client-manager.js +295 -0
  103. package/dist/src/agents/a2a-client-manager.js.map +1 -0
  104. package/dist/src/agents/a2a-client-manager.test.js +281 -0
  105. package/dist/src/agents/a2a-client-manager.test.js.map +1 -0
  106. package/dist/src/agents/a2aUtils.d.ts +29 -0
  107. package/dist/src/agents/a2aUtils.js +113 -0
  108. package/dist/src/agents/a2aUtils.js.map +1 -0
  109. package/dist/src/agents/a2aUtils.test.js +147 -0
  110. package/dist/src/agents/a2aUtils.test.js.map +1 -0
  111. package/dist/src/agents/agentLoader.d.ts +68 -0
  112. package/dist/src/agents/agentLoader.js +255 -0
  113. package/dist/src/agents/agentLoader.js.map +1 -0
  114. package/dist/src/agents/agentLoader.test.js +307 -0
  115. package/dist/src/agents/agentLoader.test.js.map +1 -0
  116. package/dist/src/agents/cli-help-agent.d.ts +24 -0
  117. package/dist/src/agents/cli-help-agent.js +85 -0
  118. package/dist/src/agents/cli-help-agent.js.map +1 -0
  119. package/dist/src/agents/cli-help-agent.test.d.ts +6 -0
  120. package/dist/src/agents/cli-help-agent.test.js +65 -0
  121. package/dist/src/agents/cli-help-agent.test.js.map +1 -0
  122. package/dist/src/agents/codebase-investigator.d.ts +2 -2
  123. package/dist/src/agents/codebase-investigator.js +14 -8
  124. package/dist/src/agents/codebase-investigator.js.map +1 -1
  125. package/dist/src/agents/delegate-to-agent-tool.d.ts +19 -0
  126. package/dist/src/agents/delegate-to-agent-tool.js +122 -0
  127. package/dist/src/agents/delegate-to-agent-tool.js.map +1 -0
  128. package/dist/src/agents/delegate-to-agent-tool.test.d.ts +6 -0
  129. package/dist/src/agents/delegate-to-agent-tool.test.js +213 -0
  130. package/dist/src/agents/delegate-to-agent-tool.test.js.map +1 -0
  131. package/dist/src/agents/{executor.d.ts → local-executor.d.ts} +5 -11
  132. package/dist/src/agents/{executor.js → local-executor.js} +124 -63
  133. package/dist/src/agents/local-executor.js.map +1 -0
  134. package/dist/src/agents/local-executor.test.d.ts +6 -0
  135. package/dist/src/agents/{executor.test.js → local-executor.test.js} +136 -58
  136. package/dist/src/agents/local-executor.test.js.map +1 -0
  137. package/dist/src/agents/{invocation.d.ts → local-invocation.d.ts} +6 -7
  138. package/dist/src/agents/{invocation.js → local-invocation.js} +9 -10
  139. package/dist/src/agents/local-invocation.js.map +1 -0
  140. package/dist/src/agents/local-invocation.test.d.ts +6 -0
  141. package/dist/src/agents/{invocation.test.js → local-invocation.test.js} +29 -20
  142. package/dist/src/agents/local-invocation.test.js.map +1 -0
  143. package/dist/src/agents/registry.d.ts +37 -1
  144. package/dist/src/agents/registry.js +240 -27
  145. package/dist/src/agents/registry.js.map +1 -1
  146. package/dist/src/agents/registry.test.js +465 -30
  147. package/dist/src/agents/registry.test.js.map +1 -1
  148. package/dist/src/agents/remote-invocation.d.ts +35 -0
  149. package/dist/src/agents/remote-invocation.js +126 -0
  150. package/dist/src/agents/remote-invocation.js.map +1 -0
  151. package/dist/src/agents/remote-invocation.test.d.ts +6 -0
  152. package/dist/src/agents/remote-invocation.test.js +201 -0
  153. package/dist/src/agents/remote-invocation.test.js.map +1 -0
  154. package/dist/src/agents/subagent-tool-wrapper.d.ts +2 -2
  155. package/dist/src/agents/subagent-tool-wrapper.js +11 -6
  156. package/dist/src/agents/subagent-tool-wrapper.js.map +1 -1
  157. package/dist/src/agents/subagent-tool-wrapper.test.js +33 -19
  158. package/dist/src/agents/subagent-tool-wrapper.test.js.map +1 -1
  159. package/dist/src/agents/types.d.ts +21 -15
  160. package/dist/src/agents/types.js.map +1 -1
  161. package/dist/src/availability/errorClassification.d.ts +7 -0
  162. package/dist/src/availability/errorClassification.js +20 -0
  163. package/dist/src/availability/errorClassification.js.map +1 -0
  164. package/dist/src/availability/fallbackIntegration.test.d.ts +6 -0
  165. package/dist/src/availability/fallbackIntegration.test.js +58 -0
  166. package/dist/src/availability/fallbackIntegration.test.js.map +1 -0
  167. package/dist/src/availability/modelAvailabilityService.d.ts +3 -1
  168. package/dist/src/availability/modelAvailabilityService.js +3 -0
  169. package/dist/src/availability/modelAvailabilityService.js.map +1 -1
  170. package/dist/src/availability/modelPolicy.d.ts +8 -1
  171. package/dist/src/availability/policyCatalog.d.ts +1 -0
  172. package/dist/src/availability/policyCatalog.js +6 -7
  173. package/dist/src/availability/policyCatalog.js.map +1 -1
  174. package/dist/src/availability/policyCatalog.test.js +2 -2
  175. package/dist/src/availability/policyCatalog.test.js.map +1 -1
  176. package/dist/src/availability/policyHelpers.d.ts +34 -3
  177. package/dist/src/availability/policyHelpers.js +104 -13
  178. package/dist/src/availability/policyHelpers.js.map +1 -1
  179. package/dist/src/availability/policyHelpers.test.js +143 -13
  180. package/dist/src/availability/policyHelpers.test.js.map +1 -1
  181. package/dist/src/availability/testUtils.d.ts +10 -0
  182. package/dist/src/availability/testUtils.js +22 -0
  183. package/dist/src/availability/testUtils.js.map +1 -0
  184. package/dist/src/code_assist/experiments/client_metadata.js +2 -1
  185. package/dist/src/code_assist/experiments/client_metadata.js.map +1 -1
  186. package/dist/src/code_assist/experiments/client_metadata.test.js +7 -10
  187. package/dist/src/code_assist/experiments/client_metadata.test.js.map +1 -1
  188. package/dist/src/code_assist/experiments/experiments.d.ts +1 -1
  189. package/dist/src/code_assist/experiments/experiments.js +21 -0
  190. package/dist/src/code_assist/experiments/experiments.js.map +1 -1
  191. package/dist/src/code_assist/experiments/experiments_local.test.d.ts +6 -0
  192. package/dist/src/code_assist/experiments/experiments_local.test.js +110 -0
  193. package/dist/src/code_assist/experiments/experiments_local.test.js.map +1 -0
  194. package/dist/src/code_assist/oauth-credential-storage.js +3 -4
  195. package/dist/src/code_assist/oauth-credential-storage.js.map +1 -1
  196. package/dist/src/code_assist/oauth2.d.ts +2 -0
  197. package/dist/src/code_assist/oauth2.js +70 -14
  198. package/dist/src/code_assist/oauth2.js.map +1 -1
  199. package/dist/src/code_assist/oauth2.test.js +224 -22
  200. package/dist/src/code_assist/oauth2.test.js.map +1 -1
  201. package/dist/src/code_assist/server.d.ts +9 -1
  202. package/dist/src/code_assist/server.js +74 -11
  203. package/dist/src/code_assist/server.js.map +1 -1
  204. package/dist/src/code_assist/server.test.js +199 -27
  205. package/dist/src/code_assist/server.test.js.map +1 -1
  206. package/dist/src/code_assist/setup.js +6 -4
  207. package/dist/src/code_assist/setup.js.map +1 -1
  208. package/dist/src/code_assist/setup.test.js +63 -0
  209. package/dist/src/code_assist/setup.test.js.map +1 -1
  210. package/dist/src/code_assist/telemetry.d.ts +14 -0
  211. package/dist/src/code_assist/telemetry.js +157 -0
  212. package/dist/src/code_assist/telemetry.js.map +1 -0
  213. package/dist/src/code_assist/telemetry.test.d.ts +6 -0
  214. package/dist/src/code_assist/telemetry.test.js +301 -0
  215. package/dist/src/code_assist/telemetry.test.js.map +1 -0
  216. package/dist/src/code_assist/types.d.ts +77 -1
  217. package/dist/src/code_assist/types.js +28 -0
  218. package/dist/src/code_assist/types.js.map +1 -1
  219. package/dist/src/commands/init.d.ts +7 -0
  220. package/dist/src/commands/init.js +53 -0
  221. package/dist/src/commands/init.js.map +1 -0
  222. package/dist/src/commands/init.test.d.ts +6 -0
  223. package/dist/src/commands/init.test.js +25 -0
  224. package/dist/src/commands/init.test.js.map +1 -0
  225. package/dist/src/commands/memory.d.ts +11 -0
  226. package/dist/src/commands/memory.js +80 -0
  227. package/dist/src/commands/memory.js.map +1 -0
  228. package/dist/src/commands/memory.test.d.ts +6 -0
  229. package/dist/src/commands/memory.test.js +155 -0
  230. package/dist/src/commands/memory.test.js.map +1 -0
  231. package/dist/src/commands/restore.d.ts +9 -0
  232. package/dist/src/commands/restore.js +46 -0
  233. package/dist/src/commands/restore.js.map +1 -0
  234. package/dist/src/commands/restore.test.d.ts +6 -0
  235. package/dist/src/commands/restore.test.js +137 -0
  236. package/dist/src/commands/restore.test.js.map +1 -0
  237. package/dist/src/commands/types.d.ts +41 -0
  238. package/dist/src/commands/types.js +7 -0
  239. package/dist/src/commands/types.js.map +1 -0
  240. package/dist/src/config/config.d.ts +145 -25
  241. package/dist/src/config/config.js +370 -132
  242. package/dist/src/config/config.js.map +1 -1
  243. package/dist/src/config/config.test.js +416 -50
  244. package/dist/src/config/config.test.js.map +1 -1
  245. package/dist/src/config/defaultModelConfigs.js +21 -0
  246. package/dist/src/config/defaultModelConfigs.js.map +1 -1
  247. package/dist/src/config/flashFallback.test.js +11 -35
  248. package/dist/src/config/flashFallback.test.js.map +1 -1
  249. package/dist/src/config/models.d.ts +36 -15
  250. package/dist/src/config/models.js +89 -28
  251. package/dist/src/config/models.js.map +1 -1
  252. package/dist/src/config/models.test.js +107 -77
  253. package/dist/src/config/models.test.js.map +1 -1
  254. package/dist/src/config/storage.d.ts +5 -0
  255. package/dist/src/config/storage.js +17 -2
  256. package/dist/src/config/storage.js.map +1 -1
  257. package/dist/src/config/storage.test.js +16 -0
  258. package/dist/src/config/storage.test.js.map +1 -1
  259. package/dist/src/confirmation-bus/message-bus.js +3 -1
  260. package/dist/src/confirmation-bus/message-bus.js.map +1 -1
  261. package/dist/src/confirmation-bus/types.d.ts +4 -0
  262. package/dist/src/core/baseLlmClient.d.ts +3 -1
  263. package/dist/src/core/baseLlmClient.js +60 -22
  264. package/dist/src/core/baseLlmClient.js.map +1 -1
  265. package/dist/src/core/baseLlmClient.test.js +177 -7
  266. package/dist/src/core/baseLlmClient.test.js.map +1 -1
  267. package/dist/src/core/client.d.ts +7 -1
  268. package/dist/src/core/client.js +261 -96
  269. package/dist/src/core/client.js.map +1 -1
  270. package/dist/src/core/client.test.js +397 -67
  271. package/dist/src/core/client.test.js.map +1 -1
  272. package/dist/src/core/clientHookTriggers.js +2 -2
  273. package/dist/src/core/clientHookTriggers.js.map +1 -1
  274. package/dist/src/core/contentGenerator.js +6 -4
  275. package/dist/src/core/contentGenerator.js.map +1 -1
  276. package/dist/src/core/contentGenerator.test.js +24 -23
  277. package/dist/src/core/contentGenerator.test.js.map +1 -1
  278. package/dist/src/core/coreToolHookTriggers.d.ts +9 -5
  279. package/dist/src/core/coreToolHookTriggers.js +119 -21
  280. package/dist/src/core/coreToolHookTriggers.js.map +1 -1
  281. package/dist/src/core/coreToolHookTriggers.test.d.ts +6 -0
  282. package/dist/src/core/coreToolHookTriggers.test.js +191 -0
  283. package/dist/src/core/coreToolHookTriggers.test.js.map +1 -0
  284. package/dist/src/core/coreToolScheduler.d.ts +7 -93
  285. package/dist/src/core/coreToolScheduler.js +139 -333
  286. package/dist/src/core/coreToolScheduler.js.map +1 -1
  287. package/dist/src/core/coreToolScheduler.test.js +304 -348
  288. package/dist/src/core/coreToolScheduler.test.js.map +1 -1
  289. package/dist/src/core/geminiChat.d.ts +26 -1
  290. package/dist/src/core/geminiChat.js +144 -80
  291. package/dist/src/core/geminiChat.js.map +1 -1
  292. package/dist/src/core/geminiChat.test.js +334 -253
  293. package/dist/src/core/geminiChat.test.js.map +1 -1
  294. package/dist/src/core/geminiChatHookTriggers.d.ts +8 -4
  295. package/dist/src/core/geminiChatHookTriggers.js +34 -12
  296. package/dist/src/core/geminiChatHookTriggers.js.map +1 -1
  297. package/dist/src/core/geminiChatHookTriggers.test.d.ts +6 -0
  298. package/dist/src/core/geminiChatHookTriggers.test.js +153 -0
  299. package/dist/src/core/geminiChatHookTriggers.test.js.map +1 -0
  300. package/dist/src/core/geminiChat_network_retry.test.d.ts +6 -0
  301. package/dist/src/core/geminiChat_network_retry.test.js +196 -0
  302. package/dist/src/core/geminiChat_network_retry.test.js.map +1 -0
  303. package/dist/src/core/logger.js.map +1 -1
  304. package/dist/src/core/loggingContentGenerator.js +19 -2
  305. package/dist/src/core/loggingContentGenerator.js.map +1 -1
  306. package/dist/src/core/loggingContentGenerator.test.js +30 -0
  307. package/dist/src/core/loggingContentGenerator.test.js.map +1 -1
  308. package/dist/src/core/nonInteractiveToolExecutor.test.js +7 -8
  309. package/dist/src/core/nonInteractiveToolExecutor.test.js.map +1 -1
  310. package/dist/src/core/prompts.js +48 -22
  311. package/dist/src/core/prompts.js.map +1 -1
  312. package/dist/src/core/prompts.test.js +66 -11
  313. package/dist/src/core/prompts.test.js.map +1 -1
  314. package/dist/src/core/tokenLimits.js +6 -12
  315. package/dist/src/core/tokenLimits.js.map +1 -1
  316. package/dist/src/core/tokenLimits.test.js +8 -4
  317. package/dist/src/core/tokenLimits.test.js.map +1 -1
  318. package/dist/src/core/turn.d.ts +21 -21
  319. package/dist/src/core/turn.js +32 -22
  320. package/dist/src/core/turn.js.map +1 -1
  321. package/dist/src/core/turn.test.js +79 -5
  322. package/dist/src/core/turn.test.js.map +1 -1
  323. package/dist/src/fallback/handler.js +55 -120
  324. package/dist/src/fallback/handler.js.map +1 -1
  325. package/dist/src/fallback/handler.test.js +115 -288
  326. package/dist/src/fallback/handler.test.js.map +1 -1
  327. package/dist/src/generated/git-commit.d.ts +3 -3
  328. package/dist/src/generated/git-commit.js +3 -3
  329. package/dist/src/hooks/hookAggregator.js +7 -0
  330. package/dist/src/hooks/hookAggregator.js.map +1 -1
  331. package/dist/src/hooks/hookEventHandler.d.ts +9 -5
  332. package/dist/src/hooks/hookEventHandler.js +120 -16
  333. package/dist/src/hooks/hookEventHandler.js.map +1 -1
  334. package/dist/src/hooks/hookEventHandler.test.js +231 -9
  335. package/dist/src/hooks/hookEventHandler.test.js.map +1 -1
  336. package/dist/src/hooks/hookPlanner.d.ts +1 -5
  337. package/dist/src/hooks/hookPlanner.js +2 -7
  338. package/dist/src/hooks/hookPlanner.js.map +1 -1
  339. package/dist/src/hooks/hookPlanner.test.js +62 -2
  340. package/dist/src/hooks/hookPlanner.test.js.map +1 -1
  341. package/dist/src/hooks/hookRegistry.d.ts +6 -18
  342. package/dist/src/hooks/hookRegistry.js +49 -35
  343. package/dist/src/hooks/hookRegistry.js.map +1 -1
  344. package/dist/src/hooks/hookRegistry.test.js +167 -8
  345. package/dist/src/hooks/hookRegistry.test.js.map +1 -1
  346. package/dist/src/hooks/hookRunner.d.ts +5 -3
  347. package/dist/src/hooks/hookRunner.js +68 -18
  348. package/dist/src/hooks/hookRunner.js.map +1 -1
  349. package/dist/src/hooks/hookRunner.test.js +173 -36
  350. package/dist/src/hooks/hookRunner.test.js.map +1 -1
  351. package/dist/src/hooks/hookSystem.d.ts +10 -6
  352. package/dist/src/hooks/hookSystem.js +36 -16
  353. package/dist/src/hooks/hookSystem.js.map +1 -1
  354. package/dist/src/hooks/hookSystem.test.js +123 -18
  355. package/dist/src/hooks/hookSystem.test.js.map +1 -1
  356. package/dist/src/hooks/hookTranslator.js +2 -1
  357. package/dist/src/hooks/hookTranslator.js.map +1 -1
  358. package/dist/src/hooks/index.d.ts +2 -1
  359. package/dist/src/hooks/index.js +1 -0
  360. package/dist/src/hooks/index.js.map +1 -1
  361. package/dist/src/hooks/trustedHooks.d.ts +28 -0
  362. package/dist/src/hooks/trustedHooks.js +90 -0
  363. package/dist/src/hooks/trustedHooks.js.map +1 -0
  364. package/dist/src/hooks/trustedHooks.test.d.ts +6 -0
  365. package/dist/src/hooks/trustedHooks.test.js +154 -0
  366. package/dist/src/hooks/trustedHooks.test.js.map +1 -0
  367. package/dist/src/hooks/types.d.ts +42 -11
  368. package/dist/src/hooks/types.js +31 -42
  369. package/dist/src/hooks/types.js.map +1 -1
  370. package/dist/src/hooks/types.test.js +9 -52
  371. package/dist/src/hooks/types.test.js.map +1 -1
  372. package/dist/src/ide/detect-ide.d.ts +4 -0
  373. package/dist/src/ide/detect-ide.js +7 -2
  374. package/dist/src/ide/detect-ide.js.map +1 -1
  375. package/dist/src/ide/detect-ide.test.js +42 -1
  376. package/dist/src/ide/detect-ide.test.js.map +1 -1
  377. package/dist/src/ide/ide-client.js +6 -1
  378. package/dist/src/ide/ide-client.js.map +1 -1
  379. package/dist/src/ide/ide-installer.js +2 -2
  380. package/dist/src/ide/ide-installer.js.map +1 -1
  381. package/dist/src/ide/ide-installer.test.js +12 -3
  382. package/dist/src/ide/ide-installer.test.js.map +1 -1
  383. package/dist/src/index.d.ts +23 -1
  384. package/dist/src/index.js +25 -2
  385. package/dist/src/index.js.map +1 -1
  386. package/dist/src/mcp/oauth-provider.js +7 -3
  387. package/dist/src/mcp/oauth-provider.js.map +1 -1
  388. package/dist/src/mcp/oauth-provider.test.js +4 -1
  389. package/dist/src/mcp/oauth-provider.test.js.map +1 -1
  390. package/dist/src/mcp/oauth-utils.d.ts +8 -1
  391. package/dist/src/mcp/oauth-utils.js +31 -2
  392. package/dist/src/mcp/oauth-utils.js.map +1 -1
  393. package/dist/src/mcp/oauth-utils.test.js +42 -0
  394. package/dist/src/mcp/oauth-utils.test.js.map +1 -1
  395. package/dist/src/mcp/token-storage/file-token-storage.js +2 -2
  396. package/dist/src/mcp/token-storage/file-token-storage.js.map +1 -1
  397. package/dist/src/mcp/token-storage/keychain-token-storage.js +1 -1
  398. package/dist/src/mcp/token-storage/keychain-token-storage.js.map +1 -1
  399. package/dist/src/output/json-formatter.d.ts +2 -2
  400. package/dist/src/output/json-formatter.js +6 -3
  401. package/dist/src/output/json-formatter.js.map +1 -1
  402. package/dist/src/output/json-formatter.test.js +37 -9
  403. package/dist/src/output/json-formatter.test.js.map +1 -1
  404. package/dist/src/output/stream-json-formatter.js +6 -0
  405. package/dist/src/output/stream-json-formatter.js.map +1 -1
  406. package/dist/src/output/stream-json-formatter.test.js +98 -100
  407. package/dist/src/output/stream-json-formatter.test.js.map +1 -1
  408. package/dist/src/output/types.d.ts +3 -0
  409. package/dist/src/output/types.js.map +1 -1
  410. package/dist/src/policy/config.js +140 -15
  411. package/dist/src/policy/config.js.map +1 -1
  412. package/dist/src/policy/config.test.js +24 -2
  413. package/dist/src/policy/config.test.js.map +1 -1
  414. package/dist/src/policy/persistence.test.d.ts +6 -0
  415. package/dist/src/policy/persistence.test.js +154 -0
  416. package/dist/src/policy/persistence.test.js.map +1 -0
  417. package/dist/src/policy/policies/agent.toml +31 -0
  418. package/dist/src/policy/policies/write.toml +5 -0
  419. package/dist/src/policy/policies/yolo.toml +1 -0
  420. package/dist/src/policy/policy-engine.d.ts +14 -1
  421. package/dist/src/policy/policy-engine.js +165 -7
  422. package/dist/src/policy/policy-engine.js.map +1 -1
  423. package/dist/src/policy/policy-engine.test.js +315 -3
  424. package/dist/src/policy/policy-engine.test.js.map +1 -1
  425. package/dist/src/policy/policy-updater.test.d.ts +6 -0
  426. package/dist/src/policy/policy-updater.test.js +116 -0
  427. package/dist/src/policy/policy-updater.test.js.map +1 -0
  428. package/dist/src/policy/shell-safety.test.d.ts +6 -0
  429. package/dist/src/policy/shell-safety.test.js +438 -0
  430. package/dist/src/policy/shell-safety.test.js.map +1 -0
  431. package/dist/src/policy/toml-loader.d.ts +3 -5
  432. package/dist/src/policy/toml-loader.js +43 -60
  433. package/dist/src/policy/toml-loader.js.map +1 -1
  434. package/dist/src/policy/toml-loader.test.js +41 -7
  435. package/dist/src/policy/toml-loader.test.js.map +1 -1
  436. package/dist/src/policy/types.d.ts +25 -0
  437. package/dist/src/policy/utils.d.ts +21 -0
  438. package/dist/src/policy/utils.js +45 -0
  439. package/dist/src/policy/utils.js.map +1 -0
  440. package/dist/src/policy/utils.test.d.ts +6 -0
  441. package/dist/src/policy/utils.test.js +92 -0
  442. package/dist/src/policy/utils.test.js.map +1 -0
  443. package/dist/src/resources/resource-registry.d.ts +30 -0
  444. package/dist/src/resources/resource-registry.js +57 -0
  445. package/dist/src/resources/resource-registry.js.map +1 -0
  446. package/dist/src/resources/resource-registry.test.d.ts +6 -0
  447. package/dist/src/resources/resource-registry.test.js +54 -0
  448. package/dist/src/resources/resource-registry.test.js.map +1 -0
  449. package/dist/src/routing/modelRouterService.js +0 -15
  450. package/dist/src/routing/modelRouterService.js.map +1 -1
  451. package/dist/src/routing/modelRouterService.test.js +0 -62
  452. package/dist/src/routing/modelRouterService.test.js.map +1 -1
  453. package/dist/src/routing/routingStrategy.d.ts +2 -0
  454. package/dist/src/routing/strategies/classifierStrategy.js +10 -21
  455. package/dist/src/routing/strategies/classifierStrategy.js.map +1 -1
  456. package/dist/src/routing/strategies/classifierStrategy.test.js +18 -1
  457. package/dist/src/routing/strategies/classifierStrategy.test.js.map +1 -1
  458. package/dist/src/routing/strategies/compositeStrategy.js +4 -2
  459. package/dist/src/routing/strategies/compositeStrategy.js.map +1 -1
  460. package/dist/src/routing/strategies/compositeStrategy.test.js +11 -10
  461. package/dist/src/routing/strategies/compositeStrategy.test.js.map +1 -1
  462. package/dist/src/routing/strategies/fallbackStrategy.d.ts +1 -1
  463. package/dist/src/routing/strategies/fallbackStrategy.js +21 -13
  464. package/dist/src/routing/strategies/fallbackStrategy.js.map +1 -1
  465. package/dist/src/routing/strategies/fallbackStrategy.test.js +76 -39
  466. package/dist/src/routing/strategies/fallbackStrategy.test.js.map +1 -1
  467. package/dist/src/routing/strategies/overrideStrategy.d.ts +1 -1
  468. package/dist/src/routing/strategies/overrideStrategy.js +5 -4
  469. package/dist/src/routing/strategies/overrideStrategy.js.map +1 -1
  470. package/dist/src/routing/strategies/overrideStrategy.test.js +14 -0
  471. package/dist/src/routing/strategies/overrideStrategy.test.js.map +1 -1
  472. package/dist/src/safety/checker-runner.js +17 -6
  473. package/dist/src/safety/checker-runner.js.map +1 -1
  474. package/dist/src/scheduler/tool-executor.d.ts +22 -0
  475. package/dist/src/scheduler/tool-executor.js +198 -0
  476. package/dist/src/scheduler/tool-executor.js.map +1 -0
  477. package/dist/src/scheduler/tool-executor.test.d.ts +6 -0
  478. package/dist/src/scheduler/tool-executor.test.js +231 -0
  479. package/dist/src/scheduler/tool-executor.test.js.map +1 -0
  480. package/dist/src/scheduler/tool-modifier.d.ts +23 -0
  481. package/dist/src/scheduler/tool-modifier.js +50 -0
  482. package/dist/src/scheduler/tool-modifier.js.map +1 -0
  483. package/dist/src/scheduler/tool-modifier.test.d.ts +6 -0
  484. package/dist/src/scheduler/tool-modifier.test.js +159 -0
  485. package/dist/src/scheduler/tool-modifier.test.js.map +1 -0
  486. package/dist/src/scheduler/types.d.ts +95 -0
  487. package/dist/src/scheduler/types.js +7 -0
  488. package/dist/src/scheduler/types.js.map +1 -0
  489. package/dist/src/services/chatCompressionService.js +8 -1
  490. package/dist/src/services/chatCompressionService.js.map +1 -1
  491. package/dist/src/services/chatCompressionService.test.js +3 -0
  492. package/dist/src/services/chatCompressionService.test.js.map +1 -1
  493. package/dist/src/services/chatRecordingService.d.ts +21 -1
  494. package/dist/src/services/chatRecordingService.js +57 -2
  495. package/dist/src/services/chatRecordingService.js.map +1 -1
  496. package/dist/src/services/chatRecordingService.test.js +43 -0
  497. package/dist/src/services/chatRecordingService.test.js.map +1 -1
  498. package/dist/src/services/contextManager.d.ts +5 -11
  499. package/dist/src/services/contextManager.js +20 -17
  500. package/dist/src/services/contextManager.js.map +1 -1
  501. package/dist/src/services/contextManager.test.js +40 -41
  502. package/dist/src/services/contextManager.test.js.map +1 -1
  503. package/dist/src/services/environmentSanitization.d.ts +15 -0
  504. package/dist/src/services/environmentSanitization.js +142 -0
  505. package/dist/src/services/environmentSanitization.js.map +1 -0
  506. package/dist/src/services/environmentSanitization.test.d.ts +6 -0
  507. package/dist/src/services/environmentSanitization.test.js +284 -0
  508. package/dist/src/services/environmentSanitization.test.js.map +1 -0
  509. package/dist/src/services/fileSystemService.d.ts +0 -9
  510. package/dist/src/services/fileSystemService.js +0 -11
  511. package/dist/src/services/fileSystemService.js.map +1 -1
  512. package/dist/src/services/gitService.js +15 -1
  513. package/dist/src/services/gitService.js.map +1 -1
  514. package/dist/src/services/gitService.test.js +56 -2
  515. package/dist/src/services/gitService.test.js.map +1 -1
  516. package/dist/src/services/loopDetectionService.js +4 -3
  517. package/dist/src/services/loopDetectionService.js.map +1 -1
  518. package/dist/src/services/loopDetectionService.test.js +14 -8
  519. package/dist/src/services/loopDetectionService.test.js.map +1 -1
  520. package/dist/src/services/modelConfig.golden.test.js +32 -0
  521. package/dist/src/services/modelConfig.golden.test.js.map +1 -1
  522. package/dist/src/services/modelConfig.integration.test.js +3 -3
  523. package/dist/src/services/modelConfig.integration.test.js.map +1 -1
  524. package/dist/src/services/modelConfigService.d.ts +41 -4
  525. package/dist/src/services/modelConfigService.js +135 -75
  526. package/dist/src/services/modelConfigService.js.map +1 -1
  527. package/dist/src/services/modelConfigService.test.js +226 -0
  528. package/dist/src/services/modelConfigService.test.js.map +1 -1
  529. package/dist/src/services/modelConfigServiceTestUtils.d.ts +10 -0
  530. package/dist/src/services/modelConfigServiceTestUtils.js +17 -0
  531. package/dist/src/services/modelConfigServiceTestUtils.js.map +1 -0
  532. package/dist/src/services/sessionSummaryService.d.ts +28 -0
  533. package/dist/src/services/sessionSummaryService.js +131 -0
  534. package/dist/src/services/sessionSummaryService.js.map +1 -0
  535. package/dist/src/services/sessionSummaryService.test.d.ts +6 -0
  536. package/dist/src/services/sessionSummaryService.test.js +785 -0
  537. package/dist/src/services/sessionSummaryService.test.js.map +1 -0
  538. package/dist/src/services/sessionSummaryUtils.d.ts +16 -0
  539. package/dist/src/services/sessionSummaryUtils.js +129 -0
  540. package/dist/src/services/sessionSummaryUtils.js.map +1 -0
  541. package/dist/src/services/sessionSummaryUtils.test.d.ts +6 -0
  542. package/dist/src/services/sessionSummaryUtils.test.js +137 -0
  543. package/dist/src/services/sessionSummaryUtils.test.js.map +1 -0
  544. package/dist/src/services/shellExecutionService.d.ts +2 -0
  545. package/dist/src/services/shellExecutionService.js +34 -72
  546. package/dist/src/services/shellExecutionService.js.map +1 -1
  547. package/dist/src/services/shellExecutionService.test.js +114 -8
  548. package/dist/src/services/shellExecutionService.test.js.map +1 -1
  549. package/dist/src/services/test-data/resolved-aliases-retry.golden.json +238 -0
  550. package/dist/src/services/test-data/resolved-aliases.golden.json +16 -0
  551. package/dist/src/skills/skillLoader.d.ts +31 -0
  552. package/dist/src/skills/skillLoader.js +77 -0
  553. package/dist/src/skills/skillLoader.js.map +1 -0
  554. package/dist/src/skills/skillLoader.test.d.ts +6 -0
  555. package/dist/src/skills/skillLoader.test.js +75 -0
  556. package/dist/src/skills/skillLoader.test.js.map +1 -0
  557. package/dist/src/skills/skillManager.d.ts +69 -0
  558. package/dist/src/skills/skillManager.js +127 -0
  559. package/dist/src/skills/skillManager.js.map +1 -0
  560. package/dist/src/skills/skillManager.test.d.ts +6 -0
  561. package/dist/src/skills/skillManager.test.js +210 -0
  562. package/dist/src/skills/skillManager.test.js.map +1 -0
  563. package/dist/src/telemetry/activity-detector.test.js.map +1 -1
  564. package/dist/src/telemetry/clearcut-logger/clearcut-logger.d.ts +19 -9
  565. package/dist/src/telemetry/clearcut-logger/clearcut-logger.js +261 -164
  566. package/dist/src/telemetry/clearcut-logger/clearcut-logger.js.map +1 -1
  567. package/dist/src/telemetry/clearcut-logger/clearcut-logger.test.js +223 -27
  568. package/dist/src/telemetry/clearcut-logger/clearcut-logger.test.js.map +1 -1
  569. package/dist/src/telemetry/clearcut-logger/event-metadata-key.d.ts +12 -3
  570. package/dist/src/telemetry/clearcut-logger/event-metadata-key.js +26 -5
  571. package/dist/src/telemetry/clearcut-logger/event-metadata-key.js.map +1 -1
  572. package/dist/src/telemetry/config.js +2 -0
  573. package/dist/src/telemetry/config.js.map +1 -1
  574. package/dist/src/telemetry/config.test.js +25 -0
  575. package/dist/src/telemetry/config.test.js.map +1 -1
  576. package/dist/src/telemetry/gcp-exporters.d.ts +4 -3
  577. package/dist/src/telemetry/gcp-exporters.js +8 -4
  578. package/dist/src/telemetry/gcp-exporters.js.map +1 -1
  579. package/dist/src/telemetry/index.d.ts +1 -1
  580. package/dist/src/telemetry/index.js +1 -1
  581. package/dist/src/telemetry/index.js.map +1 -1
  582. package/dist/src/telemetry/loggers.d.ts +4 -3
  583. package/dist/src/telemetry/loggers.js +351 -340
  584. package/dist/src/telemetry/loggers.js.map +1 -1
  585. package/dist/src/telemetry/loggers.test.circular.js +1 -0
  586. package/dist/src/telemetry/loggers.test.circular.js.map +1 -1
  587. package/dist/src/telemetry/loggers.test.js +71 -15
  588. package/dist/src/telemetry/loggers.test.js.map +1 -1
  589. package/dist/src/telemetry/metrics.test.js.map +1 -1
  590. package/dist/src/telemetry/sdk.d.ts +9 -2
  591. package/dist/src/telemetry/sdk.js +142 -17
  592. package/dist/src/telemetry/sdk.js.map +1 -1
  593. package/dist/src/telemetry/sdk.test.js +130 -28
  594. package/dist/src/telemetry/sdk.test.js.map +1 -1
  595. package/dist/src/telemetry/startupProfiler.js +26 -3
  596. package/dist/src/telemetry/startupProfiler.js.map +1 -1
  597. package/dist/src/telemetry/startupProfiler.test.js +49 -7
  598. package/dist/src/telemetry/startupProfiler.test.js.map +1 -1
  599. package/dist/src/telemetry/telemetry.test.js +10 -3
  600. package/dist/src/telemetry/telemetry.test.js.map +1 -1
  601. package/dist/src/telemetry/trace.js.map +1 -1
  602. package/dist/src/telemetry/types.d.ts +37 -12
  603. package/dist/src/telemetry/types.js +61 -20
  604. package/dist/src/telemetry/types.js.map +1 -1
  605. package/dist/src/telemetry/uiTelemetry.d.ts +1 -0
  606. package/dist/src/telemetry/uiTelemetry.js +2 -0
  607. package/dist/src/telemetry/uiTelemetry.js.map +1 -1
  608. package/dist/src/telemetry/uiTelemetry.test.js +4 -0
  609. package/dist/src/telemetry/uiTelemetry.test.js.map +1 -1
  610. package/dist/src/test-utils/mock-message-bus.d.ts +1 -0
  611. package/dist/src/test-utils/mock-message-bus.js +29 -0
  612. package/dist/src/test-utils/mock-message-bus.js.map +1 -1
  613. package/dist/src/test-utils/mock-tool.d.ts +5 -3
  614. package/dist/src/test-utils/mock-tool.js +11 -10
  615. package/dist/src/test-utils/mock-tool.js.map +1 -1
  616. package/dist/src/tools/activate-skill.d.ts +27 -0
  617. package/dist/src/tools/activate-skill.js +133 -0
  618. package/dist/src/tools/activate-skill.js.map +1 -0
  619. package/dist/src/tools/activate-skill.test.d.ts +6 -0
  620. package/dist/src/tools/activate-skill.test.js +113 -0
  621. package/dist/src/tools/activate-skill.test.js.map +1 -0
  622. package/dist/src/tools/confirmation-policy.test.d.ts +6 -0
  623. package/dist/src/tools/confirmation-policy.test.js +143 -0
  624. package/dist/src/tools/confirmation-policy.test.js.map +1 -0
  625. package/dist/src/tools/edit.d.ts +27 -5
  626. package/dist/src/tools/edit.js +460 -136
  627. package/dist/src/tools/edit.js.map +1 -1
  628. package/dist/src/tools/edit.test.js +292 -526
  629. package/dist/src/tools/edit.test.js.map +1 -1
  630. package/dist/src/tools/get-internal-docs.d.ts +27 -0
  631. package/dist/src/tools/get-internal-docs.js +122 -0
  632. package/dist/src/tools/get-internal-docs.js.map +1 -0
  633. package/dist/src/tools/get-internal-docs.test.d.ts +6 -0
  634. package/dist/src/tools/get-internal-docs.test.js +57 -0
  635. package/dist/src/tools/get-internal-docs.test.js.map +1 -0
  636. package/dist/src/tools/glob.d.ts +2 -2
  637. package/dist/src/tools/glob.js +1 -1
  638. package/dist/src/tools/glob.js.map +1 -1
  639. package/dist/src/tools/glob.test.js +2 -1
  640. package/dist/src/tools/glob.test.js.map +1 -1
  641. package/dist/src/tools/grep.d.ts +2 -2
  642. package/dist/src/tools/grep.js +1 -1
  643. package/dist/src/tools/grep.js.map +1 -1
  644. package/dist/src/tools/grep.test.js +5 -4
  645. package/dist/src/tools/grep.test.js.map +1 -1
  646. package/dist/src/tools/ls.d.ts +2 -2
  647. package/dist/src/tools/ls.js +2 -2
  648. package/dist/src/tools/ls.js.map +1 -1
  649. package/dist/src/tools/ls.test.js +2 -1
  650. package/dist/src/tools/ls.test.js.map +1 -1
  651. package/dist/src/tools/mcp-client-manager.d.ts +2 -1
  652. package/dist/src/tools/mcp-client-manager.js +32 -9
  653. package/dist/src/tools/mcp-client-manager.js.map +1 -1
  654. package/dist/src/tools/mcp-client-manager.test.js +41 -10
  655. package/dist/src/tools/mcp-client-manager.test.js.map +1 -1
  656. package/dist/src/tools/mcp-client.d.ts +43 -6
  657. package/dist/src/tools/mcp-client.js +443 -176
  658. package/dist/src/tools/mcp-client.js.map +1 -1
  659. package/dist/src/tools/mcp-client.test.js +664 -39
  660. package/dist/src/tools/mcp-client.test.js.map +1 -1
  661. package/dist/src/tools/mcp-tool.d.ts +20 -5
  662. package/dist/src/tools/mcp-tool.js +21 -8
  663. package/dist/src/tools/mcp-tool.js.map +1 -1
  664. package/dist/src/tools/mcp-tool.test.js +35 -5
  665. package/dist/src/tools/mcp-tool.test.js.map +1 -1
  666. package/dist/src/tools/memoryTool.d.ts +3 -3
  667. package/dist/src/tools/memoryTool.js +3 -4
  668. package/dist/src/tools/memoryTool.js.map +1 -1
  669. package/dist/src/tools/memoryTool.test.js +5 -2
  670. package/dist/src/tools/memoryTool.test.js.map +1 -1
  671. package/dist/src/tools/message-bus-integration.test.js +10 -37
  672. package/dist/src/tools/message-bus-integration.test.js.map +1 -1
  673. package/dist/src/tools/modifiable-tool.js.map +1 -1
  674. package/dist/src/tools/modifiable-tool.test.js +22 -13
  675. package/dist/src/tools/modifiable-tool.test.js.map +1 -1
  676. package/dist/src/tools/read-file.d.ts +2 -2
  677. package/dist/src/tools/read-file.js +2 -2
  678. package/dist/src/tools/read-file.js.map +1 -1
  679. package/dist/src/tools/read-file.test.js +3 -2
  680. package/dist/src/tools/read-file.test.js.map +1 -1
  681. package/dist/src/tools/read-many-files.d.ts +2 -2
  682. package/dist/src/tools/read-many-files.js +7 -6
  683. package/dist/src/tools/read-many-files.js.map +1 -1
  684. package/dist/src/tools/read-many-files.test.js +4 -3
  685. package/dist/src/tools/read-many-files.test.js.map +1 -1
  686. package/dist/src/tools/ripGrep.d.ts +3 -2
  687. package/dist/src/tools/ripGrep.js +18 -7
  688. package/dist/src/tools/ripGrep.js.map +1 -1
  689. package/dist/src/tools/ripGrep.test.js +60 -4
  690. package/dist/src/tools/ripGrep.test.js.map +1 -1
  691. package/dist/src/tools/shell.d.ts +5 -7
  692. package/dist/src/tools/shell.js +35 -49
  693. package/dist/src/tools/shell.js.map +1 -1
  694. package/dist/src/tools/shell.test.js +36 -59
  695. package/dist/src/tools/shell.test.js.map +1 -1
  696. package/dist/src/tools/tool-error.d.ts +6 -1
  697. package/dist/src/tools/tool-error.js +6 -0
  698. package/dist/src/tools/tool-error.js.map +1 -1
  699. package/dist/src/tools/tool-names.d.ts +17 -0
  700. package/dist/src/tools/tool-names.js +59 -0
  701. package/dist/src/tools/tool-names.js.map +1 -1
  702. package/dist/src/tools/tool-names.test.d.ts +6 -0
  703. package/dist/src/tools/tool-names.test.js +43 -0
  704. package/dist/src/tools/tool-names.test.js.map +1 -0
  705. package/dist/src/tools/tool-registry.d.ts +11 -7
  706. package/dist/src/tools/tool-registry.js +15 -10
  707. package/dist/src/tools/tool-registry.js.map +1 -1
  708. package/dist/src/tools/tool-registry.test.js +16 -11
  709. package/dist/src/tools/tool-registry.test.js.map +1 -1
  710. package/dist/src/tools/tools.d.ts +27 -6
  711. package/dist/src/tools/tools.js +44 -25
  712. package/dist/src/tools/tools.js.map +1 -1
  713. package/dist/src/tools/tools.test.js +3 -1
  714. package/dist/src/tools/tools.test.js.map +1 -1
  715. package/dist/src/tools/web-fetch.d.ts +2 -2
  716. package/dist/src/tools/web-fetch.js +21 -8
  717. package/dist/src/tools/web-fetch.js.map +1 -1
  718. package/dist/src/tools/web-fetch.test.js +18 -19
  719. package/dist/src/tools/web-fetch.test.js.map +1 -1
  720. package/dist/src/tools/web-search.d.ts +2 -2
  721. package/dist/src/tools/web-search.js +5 -5
  722. package/dist/src/tools/web-search.js.map +1 -1
  723. package/dist/src/tools/web-search.test.js +2 -1
  724. package/dist/src/tools/web-search.test.js.map +1 -1
  725. package/dist/src/tools/write-file.d.ts +2 -2
  726. package/dist/src/tools/write-file.js +14 -6
  727. package/dist/src/tools/write-file.js.map +1 -1
  728. package/dist/src/tools/write-file.test.js +49 -7
  729. package/dist/src/tools/write-file.test.js.map +1 -1
  730. package/dist/src/tools/write-todos.d.ts +2 -2
  731. package/dist/src/tools/write-todos.js +5 -4
  732. package/dist/src/tools/write-todos.js.map +1 -1
  733. package/dist/src/tools/write-todos.test.js +2 -1
  734. package/dist/src/tools/write-todos.test.js.map +1 -1
  735. package/dist/src/utils/apiConversionUtils.d.ts +12 -0
  736. package/dist/src/utils/apiConversionUtils.js +46 -0
  737. package/dist/src/utils/apiConversionUtils.js.map +1 -0
  738. package/dist/src/utils/apiConversionUtils.test.d.ts +6 -0
  739. package/dist/src/utils/apiConversionUtils.test.js +150 -0
  740. package/dist/src/utils/apiConversionUtils.test.js.map +1 -0
  741. package/dist/src/utils/bfsFileSearch.d.ts +8 -0
  742. package/dist/src/utils/bfsFileSearch.js +63 -23
  743. package/dist/src/utils/bfsFileSearch.js.map +1 -1
  744. package/dist/src/utils/bfsFileSearch.test.js +65 -1
  745. package/dist/src/utils/bfsFileSearch.test.js.map +1 -1
  746. package/dist/src/utils/checkpointUtils.d.ts +82 -0
  747. package/dist/src/utils/checkpointUtils.js +117 -0
  748. package/dist/src/utils/checkpointUtils.js.map +1 -0
  749. package/dist/src/utils/checkpointUtils.test.d.ts +6 -0
  750. package/dist/src/utils/checkpointUtils.test.js +229 -0
  751. package/dist/src/utils/checkpointUtils.test.js.map +1 -0
  752. package/dist/src/utils/debugLogger.d.ts +3 -0
  753. package/dist/src/utils/debugLogger.js +28 -0
  754. package/dist/src/utils/debugLogger.js.map +1 -1
  755. package/dist/src/utils/editCorrector.d.ts +3 -3
  756. package/dist/src/utils/editCorrector.js +27 -10
  757. package/dist/src/utils/editCorrector.js.map +1 -1
  758. package/dist/src/utils/editCorrector.test.js +27 -23
  759. package/dist/src/utils/editCorrector.test.js.map +1 -1
  760. package/dist/src/utils/editor.d.ts +10 -1
  761. package/dist/src/utils/editor.js +48 -19
  762. package/dist/src/utils/editor.js.map +1 -1
  763. package/dist/src/utils/editor.test.js +27 -4
  764. package/dist/src/utils/editor.test.js.map +1 -1
  765. package/dist/src/utils/environmentContext.d.ts +1 -0
  766. package/dist/src/utils/environmentContext.js +4 -0
  767. package/dist/src/utils/environmentContext.js.map +1 -1
  768. package/dist/src/utils/environmentContext.test.js +2 -0
  769. package/dist/src/utils/environmentContext.test.js.map +1 -1
  770. package/dist/src/utils/errorReporting.d.ts +1 -1
  771. package/dist/src/utils/errorReporting.js +13 -12
  772. package/dist/src/utils/errorReporting.js.map +1 -1
  773. package/dist/src/utils/errorReporting.test.js +17 -14
  774. package/dist/src/utils/errorReporting.test.js.map +1 -1
  775. package/dist/src/utils/errors.d.ts +8 -0
  776. package/dist/src/utils/errors.js +39 -2
  777. package/dist/src/utils/errors.js.map +1 -1
  778. package/dist/src/utils/errors.test.d.ts +6 -0
  779. package/dist/src/utils/errors.test.js +155 -0
  780. package/dist/src/utils/errors.test.js.map +1 -0
  781. package/dist/src/utils/events.d.ts +71 -19
  782. package/dist/src/utils/events.js +35 -9
  783. package/dist/src/utils/events.js.map +1 -1
  784. package/dist/src/utils/events.test.js +25 -0
  785. package/dist/src/utils/events.test.js.map +1 -1
  786. package/dist/src/utils/extensionLoader.d.ts +2 -2
  787. package/dist/src/utils/extensionLoader.js +5 -6
  788. package/dist/src/utils/extensionLoader.js.map +1 -1
  789. package/dist/src/utils/extensionLoader.test.js +11 -0
  790. package/dist/src/utils/extensionLoader.test.js.map +1 -1
  791. package/dist/src/utils/fetch.d.ts +1 -1
  792. package/dist/src/utils/fetch.js +3 -3
  793. package/dist/src/utils/fetch.js.map +1 -1
  794. package/dist/src/utils/fileDiffUtils.d.ts +18 -0
  795. package/dist/src/utils/fileDiffUtils.js +37 -0
  796. package/dist/src/utils/fileDiffUtils.js.map +1 -0
  797. package/dist/src/utils/fileDiffUtils.test.d.ts +6 -0
  798. package/dist/src/utils/fileDiffUtils.test.js +84 -0
  799. package/dist/src/utils/fileDiffUtils.test.js.map +1 -0
  800. package/dist/src/utils/fileUtils.d.ts +4 -0
  801. package/dist/src/utils/fileUtils.js +53 -0
  802. package/dist/src/utils/fileUtils.js.map +1 -1
  803. package/dist/src/utils/fileUtils.test.js +127 -1
  804. package/dist/src/utils/fileUtils.test.js.map +1 -1
  805. package/dist/src/utils/filesearch/crawlCache.js.map +1 -1
  806. package/dist/src/utils/filesearch/fileSearch.js.map +1 -1
  807. package/dist/src/utils/flashFallback.test.js +1 -1
  808. package/dist/src/utils/flashFallback.test.js.map +1 -1
  809. package/dist/src/utils/geminiIgnoreParser.d.ts +11 -0
  810. package/dist/src/utils/geminiIgnoreParser.js +20 -0
  811. package/dist/src/utils/geminiIgnoreParser.js.map +1 -1
  812. package/dist/src/utils/geminiIgnoreParser.test.js +48 -0
  813. package/dist/src/utils/geminiIgnoreParser.test.js.map +1 -1
  814. package/dist/src/utils/generateContentResponseUtilities.d.ts +3 -1
  815. package/dist/src/utils/generateContentResponseUtilities.js +106 -0
  816. package/dist/src/utils/generateContentResponseUtilities.js.map +1 -1
  817. package/dist/src/utils/generateContentResponseUtilities.test.js +279 -2
  818. package/dist/src/utils/generateContentResponseUtilities.test.js.map +1 -1
  819. package/dist/src/utils/getFolderStructure.js +7 -2
  820. package/dist/src/utils/getFolderStructure.js.map +1 -1
  821. package/dist/src/utils/gitIgnoreParser.js +9 -10
  822. package/dist/src/utils/gitIgnoreParser.js.map +1 -1
  823. package/dist/src/utils/googleErrors.js +31 -18
  824. package/dist/src/utils/googleErrors.js.map +1 -1
  825. package/dist/src/utils/googleErrors.test.js +10 -2
  826. package/dist/src/utils/googleErrors.test.js.map +1 -1
  827. package/dist/src/utils/googleQuotaErrors.d.ts +3 -3
  828. package/dist/src/utils/googleQuotaErrors.js +32 -6
  829. package/dist/src/utils/googleQuotaErrors.js.map +1 -1
  830. package/dist/src/utils/googleQuotaErrors.test.js +94 -2
  831. package/dist/src/utils/googleQuotaErrors.test.js.map +1 -1
  832. package/dist/src/utils/installationManager.test.js +11 -3
  833. package/dist/src/utils/installationManager.test.js.map +1 -1
  834. package/dist/src/utils/memoryDiscovery.js +3 -4
  835. package/dist/src/utils/memoryDiscovery.js.map +1 -1
  836. package/dist/src/utils/memoryDiscovery.test.js +12 -1
  837. package/dist/src/utils/memoryDiscovery.test.js.map +1 -1
  838. package/dist/src/utils/nextSpeakerChecker.test.js +4 -0
  839. package/dist/src/utils/nextSpeakerChecker.test.js.map +1 -1
  840. package/dist/src/utils/partUtils.js +1 -1
  841. package/dist/src/utils/partUtils.js.map +1 -1
  842. package/dist/src/utils/pathCorrector.js +12 -2
  843. package/dist/src/utils/pathCorrector.js.map +1 -1
  844. package/dist/src/utils/pathCorrector.test.js +6 -2
  845. package/dist/src/utils/pathCorrector.test.js.map +1 -1
  846. package/dist/src/utils/paths.d.ts +10 -0
  847. package/dist/src/utils/paths.js +20 -1
  848. package/dist/src/utils/paths.js.map +1 -1
  849. package/dist/src/utils/retry.d.ts +12 -0
  850. package/dist/src/utils/retry.js +70 -17
  851. package/dist/src/utils/retry.js.map +1 -1
  852. package/dist/src/utils/retry.test.js +181 -21
  853. package/dist/src/utils/retry.test.js.map +1 -1
  854. package/dist/src/utils/shell-utils.d.ts +16 -47
  855. package/dist/src/utils/shell-utils.js +98 -194
  856. package/dist/src/utils/shell-utils.js.map +1 -1
  857. package/dist/src/utils/shell-utils.test.js +99 -288
  858. package/dist/src/utils/shell-utils.test.js.map +1 -1
  859. package/dist/src/utils/summarizer.test.js +3 -2
  860. package/dist/src/utils/summarizer.test.js.map +1 -1
  861. package/dist/src/utils/terminal.d.ts +4 -0
  862. package/dist/src/utils/terminal.js +12 -0
  863. package/dist/src/utils/terminal.js.map +1 -1
  864. package/dist/src/utils/terminalSerializer.test.js +17 -0
  865. package/dist/src/utils/terminalSerializer.test.js.map +1 -1
  866. package/dist/src/utils/tokenCalculation.js +20 -5
  867. package/dist/src/utils/tokenCalculation.js.map +1 -1
  868. package/dist/src/utils/tokenCalculation.test.js +11 -2
  869. package/dist/src/utils/tokenCalculation.test.js.map +1 -1
  870. package/dist/src/utils/tool-utils.d.ts +9 -0
  871. package/dist/src/utils/tool-utils.js +29 -0
  872. package/dist/src/utils/tool-utils.js.map +1 -1
  873. package/dist/src/utils/tool-utils.test.js +17 -2
  874. package/dist/src/utils/tool-utils.test.js.map +1 -1
  875. package/dist/src/utils/userAccountManager.test.js +5 -5
  876. package/dist/src/utils/userAccountManager.test.js.map +1 -1
  877. package/dist/src/utils/version.d.ts +6 -0
  878. package/dist/src/utils/version.js +15 -0
  879. package/dist/src/utils/version.js.map +1 -0
  880. package/dist/src/utils/version.test.d.ts +6 -0
  881. package/dist/src/utils/version.test.js +39 -0
  882. package/dist/src/utils/version.test.js.map +1 -0
  883. package/dist/src/utils/workspaceContext.test.js +1 -1
  884. package/dist/src/utils/workspaceContext.test.js.map +1 -1
  885. package/dist/tsconfig.tsbuildinfo +1 -1
  886. package/package.json +8 -6
  887. package/dist/src/agents/executor.js.map +0 -1
  888. package/dist/src/agents/executor.test.js.map +0 -1
  889. package/dist/src/agents/invocation.js.map +0 -1
  890. package/dist/src/agents/invocation.test.js.map +0 -1
  891. package/dist/src/tools/smart-edit.d.ts +0 -78
  892. package/dist/src/tools/smart-edit.js +0 -717
  893. package/dist/src/tools/smart-edit.js.map +0 -1
  894. package/dist/src/tools/smart-edit.test.js +0 -592
  895. package/dist/src/tools/smart-edit.test.js.map +0 -1
  896. /package/dist/src/agents/{executor.test.d.ts → a2a-client-manager.test.d.ts} +0 -0
  897. /package/dist/src/agents/{invocation.test.d.ts → a2aUtils.test.d.ts} +0 -0
  898. /package/dist/src/{tools/smart-edit.test.d.ts → agents/agentLoader.test.d.ts} +0 -0
@@ -3,6 +3,9 @@
3
3
  * Copyright 2025 Google LLC
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
+ import { createHash } from 'node:crypto';
7
+ import * as os from 'node:os';
8
+ import si from 'systeminformation';
6
9
  import { HttpsProxyAgent } from 'https-proxy-agent';
7
10
  import { EventMetadataKey } from './event-metadata-key.js';
8
11
  import { InstallationManager } from '../../utils/installationManager.js';
@@ -12,6 +15,7 @@ import { FixedDeque } from 'mnemonist';
12
15
  import { GIT_COMMIT_INFO, CLI_VERSION } from '../../generated/git-commit.js';
13
16
  import { IDE_DEFINITIONS, detectIdeFromEnv, isCloudShell, } from '../../ide/detect-ide.js';
14
17
  import { debugLogger } from '../../utils/debugLogger.js';
18
+ import { getErrorMessage } from '../../utils/errors.js';
15
19
  export var EventNames;
16
20
  (function (EventNames) {
17
21
  EventNames["START_SESSION"] = "start_session";
@@ -44,13 +48,14 @@ export var EventNames;
44
48
  EventNames["TOOL_OUTPUT_TRUNCATED"] = "tool_output_truncated";
45
49
  EventNames["MODEL_ROUTING"] = "model_routing";
46
50
  EventNames["MODEL_SLASH_COMMAND"] = "model_slash_command";
47
- EventNames["SMART_EDIT_STRATEGY"] = "smart_edit_strategy";
48
- EventNames["SMART_EDIT_CORRECTION"] = "smart_edit_correction";
51
+ EventNames["EDIT_STRATEGY"] = "edit_strategy";
52
+ EventNames["EDIT_CORRECTION"] = "edit_correction";
49
53
  EventNames["AGENT_START"] = "agent_start";
50
54
  EventNames["AGENT_FINISH"] = "agent_finish";
51
55
  EventNames["RECOVERY_ATTEMPT"] = "recovery_attempt";
52
56
  EventNames["WEB_FETCH_FALLBACK_ATTEMPT"] = "web_fetch_fallback_attempt";
53
57
  EventNames["LLM_LOOP_CHECK"] = "llm_loop_check";
58
+ EventNames["HOOK_CALL"] = "hook_call";
54
59
  })(EventNames || (EventNames = {}));
55
60
  /**
56
61
  * Determine the surface that the user is currently using. Surface is effectively the
@@ -84,6 +89,12 @@ function determineSurface() {
84
89
  function determineGHWorkflowName() {
85
90
  return process.env['GH_WORKFLOW_NAME'];
86
91
  }
92
+ /**
93
+ * Determines the GitHub repository name if the CLI is running in a GitHub Actions environment.
94
+ */
95
+ function determineGHRepositoryName() {
96
+ return process.env['GITHUB_REPOSITORY'];
97
+ }
87
98
  /**
88
99
  * Clearcut URL to send logging events to.
89
100
  */
@@ -102,6 +113,29 @@ const MAX_EVENTS = 1000;
102
113
  * Maximum events to retry after a failed clearcut flush
103
114
  */
104
115
  const MAX_RETRY_EVENTS = 100;
116
+ const NO_GPU = 'NA';
117
+ let cachedGpuInfo;
118
+ async function refreshGpuInfo() {
119
+ try {
120
+ const graphics = await si.graphics();
121
+ if (graphics.controllers && graphics.controllers.length > 0) {
122
+ cachedGpuInfo = graphics.controllers.map((c) => c.model).join(', ');
123
+ }
124
+ else {
125
+ cachedGpuInfo = NO_GPU;
126
+ }
127
+ }
128
+ catch (error) {
129
+ cachedGpuInfo = 'FAILED';
130
+ debugLogger.error('Failed to get GPU information for telemetry', getErrorMessage(error));
131
+ }
132
+ }
133
+ async function getGpuInfo() {
134
+ if (!cachedGpuInfo) {
135
+ await refreshGpuInfo();
136
+ }
137
+ return cachedGpuInfo ?? NO_GPU;
138
+ }
105
139
  // Singleton class for batch posting log events to Clearcut. When a new event comes in, the elapsed time
106
140
  // is checked and events are flushed to Clearcut if at least a minute has passed since the last flush.
107
141
  export class ClearcutLogger {
@@ -111,6 +145,7 @@ export class ClearcutLogger {
111
145
  promptId = '';
112
146
  installationManager;
113
147
  userAccountManager;
148
+ hashedGHRepositoryName;
114
149
  /**
115
150
  * Queue of pending events that need to be flushed to the server. New events
116
151
  * are added to this queue and then flushed on demand (via `flushToClearcut`)
@@ -135,6 +170,12 @@ export class ClearcutLogger {
135
170
  this.promptId = config?.getSessionId() ?? '';
136
171
  this.installationManager = new InstallationManager();
137
172
  this.userAccountManager = new UserAccountManager();
173
+ const ghRepositoryName = determineGHRepositoryName();
174
+ if (ghRepositoryName) {
175
+ this.hashedGHRepositoryName = createHash('sha256')
176
+ .update(ghRepositoryName)
177
+ .digest('hex');
178
+ }
138
179
  }
139
180
  static getInstance(config) {
140
181
  if (config === undefined || !config?.getUsageStatisticsEnabled())
@@ -149,18 +190,22 @@ export class ClearcutLogger {
149
190
  // @ts-expect-error - ClearcutLogger is a singleton, but we need to clear it for tests.
150
191
  ClearcutLogger.instance = undefined;
151
192
  }
152
- enqueueHelper(event) {
193
+ enqueueHelper(event, experimentIds) {
153
194
  // Manually handle overflow for FixedDeque, which throws when full.
154
195
  const wasAtCapacity = this.events.size >= MAX_EVENTS;
155
196
  if (wasAtCapacity) {
156
197
  this.events.shift(); // Evict oldest element to make space.
157
198
  }
158
- this.events.push([
159
- {
160
- event_time_ms: Date.now(),
161
- source_extension_json: safeJsonStringify(event),
162
- },
163
- ]);
199
+ const logEventEntry = {
200
+ event_time_ms: Date.now(),
201
+ source_extension_json: safeJsonStringify(event),
202
+ };
203
+ if (experimentIds !== undefined) {
204
+ logEventEntry.exp = {
205
+ gws_experiment: experimentIds,
206
+ };
207
+ }
208
+ this.events.push([logEventEntry]);
164
209
  if (wasAtCapacity && this.config?.getDebugMode()) {
165
210
  debugLogger.debug(`ClearcutLogger: Dropped old event to prevent memory leak (queue size: ${this.events.size})`);
166
211
  }
@@ -171,29 +216,28 @@ export class ClearcutLogger {
171
216
  }
172
217
  catch (error) {
173
218
  if (this.config?.getDebugMode()) {
174
- console.error('ClearcutLogger: Failed to enqueue log event.', error);
219
+ debugLogger.warn('ClearcutLogger: Failed to enqueue log event.', error);
175
220
  }
176
221
  }
177
222
  }
178
223
  async enqueueLogEventAfterExperimentsLoadAsync(event) {
179
224
  try {
225
+ // eslint-disable-next-line @typescript-eslint/no-floating-promises
180
226
  this.config?.getExperimentsAsync().then((experiments) => {
181
227
  if (experiments) {
182
228
  const exp_id_data = [
183
229
  {
184
- CELL_CLI_key: EventMetadataKey.CELL_CLI_EXPERIMENT_IDS,
230
+ cell_cli_key: EventMetadataKey.CELL_CLI_EXPERIMENT_IDS,
185
231
  value: experiments.experimentIds.toString() ?? 'NA',
186
232
  },
187
233
  ];
188
234
  event.event_metadata = [[...event.event_metadata[0], ...exp_id_data]];
189
235
  }
190
- this.enqueueHelper(event);
236
+ this.enqueueHelper(event, experiments?.experimentIds);
191
237
  });
192
238
  }
193
239
  catch (error) {
194
- if (this.config?.getDebugMode()) {
195
- console.error('ClearcutLogger: Failed to enqueue log event.', error);
196
- }
240
+ debugLogger.warn('ClearcutLogger: Failed to enqueue log event.', error);
197
241
  }
198
242
  }
199
243
  createBasicLogEvent(eventName, data = []) {
@@ -203,28 +247,34 @@ export class ClearcutLogger {
203
247
  const baseMetadata = [
204
248
  ...data,
205
249
  {
206
- CELL_CLI_key: EventMetadataKey.CELL_CLI_SURFACE,
250
+ cell_cli_key: EventMetadataKey.CELL_CLI_SURFACE,
207
251
  value: surface,
208
252
  },
209
253
  {
210
- CELL_CLI_key: EventMetadataKey.CELL_CLI_VERSION,
254
+ cell_cli_key: EventMetadataKey.CELL_CLI_VERSION,
211
255
  value: CLI_VERSION,
212
256
  },
213
257
  {
214
- CELL_CLI_key: EventMetadataKey.CELL_CLI_GIT_COMMIT_HASH,
258
+ cell_cli_key: EventMetadataKey.CELL_CLI_GIT_COMMIT_HASH,
215
259
  value: GIT_COMMIT_INFO,
216
260
  },
217
261
  {
218
- CELL_CLI_key: EventMetadataKey.CELL_CLI_OS,
262
+ cell_cli_key: EventMetadataKey.CELL_CLI_OS,
219
263
  value: process.platform,
220
264
  },
221
265
  ];
222
266
  if (ghWorkflowName) {
223
267
  baseMetadata.push({
224
- CELL_CLI_key: EventMetadataKey.CELL_CLI_GH_WORKFLOW_NAME,
268
+ cell_cli_key: EventMetadataKey.CELL_CLI_GH_WORKFLOW_NAME,
225
269
  value: ghWorkflowName,
226
270
  });
227
271
  }
272
+ if (this.hashedGHRepositoryName) {
273
+ baseMetadata.push({
274
+ cell_cli_key: EventMetadataKey.CELL_CLI_GH_REPOSITORY_NAME_HASH,
275
+ value: this.hashedGHRepositoryName,
276
+ });
277
+ }
228
278
  const logEvent = {
229
279
  console_type: 'GEMINI_CLI',
230
280
  application: 102, // GEMINI_CLI
@@ -297,7 +347,7 @@ export class ClearcutLogger {
297
347
  }
298
348
  else {
299
349
  if (this.config?.getDebugMode()) {
300
- console.error(`Error flushing log events: HTTP ${response.status}: ${response.statusText}`);
350
+ debugLogger.warn(`Error flushing log events: HTTP ${response.status}: ${response.statusText}`);
301
351
  }
302
352
  // Re-queue failed events for retry
303
353
  this.requeueFailedEvents(eventsToSend);
@@ -305,7 +355,7 @@ export class ClearcutLogger {
305
355
  }
306
356
  catch (e) {
307
357
  if (this.config?.getDebugMode()) {
308
- console.error('Error flushing log events:', e);
358
+ debugLogger.warn('Error flushing log events:', e);
309
359
  }
310
360
  // Re-queue failed events for retry
311
361
  this.requeueFailedEvents(eventsToSend);
@@ -323,86 +373,104 @@ export class ClearcutLogger {
323
373
  }
324
374
  return result;
325
375
  }
326
- logStartSessionEvent(event) {
376
+ async logStartSessionEvent(event) {
327
377
  const data = [
328
378
  {
329
- CELL_CLI_key: EventMetadataKey.CELL_CLI_START_SESSION_MODEL,
379
+ cell_cli_key: EventMetadataKey.CELL_CLI_START_SESSION_MODEL,
330
380
  value: event.model,
331
381
  },
332
382
  {
333
- CELL_CLI_key: EventMetadataKey.CELL_CLI_START_SESSION_EMBEDDING_MODEL,
383
+ cell_cli_key: EventMetadataKey.CELL_CLI_START_SESSION_EMBEDDING_MODEL,
334
384
  value: event.embedding_model,
335
385
  },
336
386
  {
337
- CELL_CLI_key: EventMetadataKey.CELL_CLI_START_SESSION_SANDBOX,
387
+ cell_cli_key: EventMetadataKey.CELL_CLI_START_SESSION_SANDBOX,
338
388
  value: event.sandbox_enabled.toString(),
339
389
  },
340
390
  {
341
- CELL_CLI_key: EventMetadataKey.CELL_CLI_START_SESSION_CORE_TOOLS,
391
+ cell_cli_key: EventMetadataKey.CELL_CLI_START_SESSION_CORE_TOOLS,
342
392
  value: event.core_tools_enabled,
343
393
  },
344
394
  {
345
- CELL_CLI_key: EventMetadataKey.CELL_CLI_START_SESSION_APPROVAL_MODE,
395
+ cell_cli_key: EventMetadataKey.CELL_CLI_START_SESSION_APPROVAL_MODE,
346
396
  value: event.approval_mode,
347
397
  },
348
398
  {
349
- CELL_CLI_key: EventMetadataKey.CELL_CLI_START_SESSION_API_KEY_ENABLED,
399
+ cell_cli_key: EventMetadataKey.CELL_CLI_START_SESSION_API_KEY_ENABLED,
350
400
  value: event.api_key_enabled.toString(),
351
401
  },
352
402
  {
353
- CELL_CLI_key: EventMetadataKey.CELL_CLI_START_SESSION_VERTEX_API_ENABLED,
403
+ cell_cli_key: EventMetadataKey.CELL_CLI_START_SESSION_VERTEX_API_ENABLED,
354
404
  value: event.vertex_ai_enabled.toString(),
355
405
  },
356
406
  {
357
- CELL_CLI_key: EventMetadataKey.CELL_CLI_START_SESSION_DEBUG_MODE_ENABLED,
407
+ cell_cli_key: EventMetadataKey.CELL_CLI_START_SESSION_DEBUG_MODE_ENABLED,
358
408
  value: event.debug_enabled.toString(),
359
409
  },
360
410
  {
361
- CELL_CLI_key: EventMetadataKey.CELL_CLI_START_SESSION_VERTEX_API_ENABLED,
411
+ cell_cli_key: EventMetadataKey.CELL_CLI_START_SESSION_VERTEX_API_ENABLED,
362
412
  value: event.vertex_ai_enabled.toString(),
363
413
  },
364
414
  {
365
- CELL_CLI_key: EventMetadataKey.CELL_CLI_START_SESSION_MCP_SERVERS,
415
+ cell_cli_key: EventMetadataKey.CELL_CLI_START_SESSION_MCP_SERVERS,
366
416
  value: event.mcp_servers,
367
417
  },
368
418
  {
369
- CELL_CLI_key: EventMetadataKey.CELL_CLI_START_SESSION_VERTEX_API_ENABLED,
419
+ cell_cli_key: EventMetadataKey.CELL_CLI_START_SESSION_VERTEX_API_ENABLED,
370
420
  value: event.vertex_ai_enabled.toString(),
371
421
  },
372
422
  {
373
- CELL_CLI_key: EventMetadataKey.CELL_CLI_START_SESSION_TELEMETRY_ENABLED,
423
+ cell_cli_key: EventMetadataKey.CELL_CLI_START_SESSION_TELEMETRY_ENABLED,
374
424
  value: event.telemetry_enabled.toString(),
375
425
  },
376
426
  {
377
- CELL_CLI_key: EventMetadataKey.CELL_CLI_START_SESSION_TELEMETRY_LOG_USER_PROMPTS_ENABLED,
427
+ cell_cli_key: EventMetadataKey.CELL_CLI_START_SESSION_TELEMETRY_LOG_USER_PROMPTS_ENABLED,
378
428
  value: event.telemetry_log_user_prompts_enabled.toString(),
379
429
  },
380
430
  {
381
- CELL_CLI_key: EventMetadataKey.CELL_CLI_START_SESSION_MCP_SERVERS_COUNT,
431
+ cell_cli_key: EventMetadataKey.CELL_CLI_START_SESSION_MCP_SERVERS_COUNT,
382
432
  value: event.mcp_servers_count
383
433
  ? event.mcp_servers_count.toString()
384
434
  : '',
385
435
  },
386
436
  {
387
- CELL_CLI_key: EventMetadataKey.CELL_CLI_START_SESSION_MCP_TOOLS_COUNT,
437
+ cell_cli_key: EventMetadataKey.CELL_CLI_START_SESSION_MCP_TOOLS_COUNT,
388
438
  value: event.mcp_tools_count?.toString() ?? '',
389
439
  },
390
440
  {
391
- CELL_CLI_key: EventMetadataKey.CELL_CLI_START_SESSION_MCP_TOOLS,
441
+ cell_cli_key: EventMetadataKey.CELL_CLI_START_SESSION_MCP_TOOLS,
392
442
  value: event.mcp_tools ? event.mcp_tools : '',
393
443
  },
394
444
  {
395
- CELL_CLI_key: EventMetadataKey.CELL_CLI_START_SESSION_EXTENSIONS_COUNT,
445
+ cell_cli_key: EventMetadataKey.CELL_CLI_START_SESSION_EXTENSIONS_COUNT,
396
446
  value: event.extensions_count.toString(),
397
447
  },
398
448
  // We deliberately do not log the names of extensions here, to be safe.
399
449
  {
400
- CELL_CLI_key: EventMetadataKey.CELL_CLI_START_SESSION_EXTENSION_IDS,
450
+ cell_cli_key: EventMetadataKey.CELL_CLI_START_SESSION_EXTENSION_IDS,
401
451
  value: event.extension_ids.toString(),
402
452
  },
403
453
  ];
454
+ // Add hardware information only to the start session event
455
+ const cpus = os.cpus();
456
+ data.push({
457
+ cell_cli_key: EventMetadataKey.CELL_CLI_CPU_INFO,
458
+ value: cpus[0].model,
459
+ }, {
460
+ cell_cli_key: EventMetadataKey.CELL_CLI_CPU_CORES,
461
+ value: cpus.length.toString(),
462
+ }, {
463
+ cell_cli_key: EventMetadataKey.CELL_CLI_RAM_TOTAL_GB,
464
+ value: (os.totalmem() / 1024 ** 3).toFixed(2).toString(),
465
+ });
466
+ const gpuInfo = await getGpuInfo();
467
+ data.push({
468
+ cell_cli_key: EventMetadataKey.CELL_CLI_GPU_INFO,
469
+ value: gpuInfo,
470
+ });
404
471
  this.sessionData = data;
405
472
  // Flush after experiments finish loading from CCPA server
473
+ // eslint-disable-next-line @typescript-eslint/no-floating-promises
406
474
  this.enqueueLogEventAfterExperimentsLoadAsync(this.createLogEvent(EventNames.START_SESSION, data)).then(() => {
407
475
  this.flushToClearcut().catch((error) => {
408
476
  debugLogger.debug('Error flushing to Clearcut:', error);
@@ -413,7 +481,7 @@ export class ClearcutLogger {
413
481
  this.promptId = event.prompt_id;
414
482
  const data = [
415
483
  {
416
- CELL_CLI_key: EventMetadataKey.CELL_CLI_USER_PROMPT_LENGTH,
484
+ cell_cli_key: EventMetadataKey.CELL_CLI_USER_PROMPT_LENGTH,
417
485
  value: JSON.stringify(event.prompt_length),
418
486
  },
419
487
  ];
@@ -423,35 +491,35 @@ export class ClearcutLogger {
423
491
  logToolCallEvent(event) {
424
492
  const data = [
425
493
  {
426
- CELL_CLI_key: EventMetadataKey.CELL_CLI_TOOL_CALL_NAME,
494
+ cell_cli_key: EventMetadataKey.CELL_CLI_TOOL_CALL_NAME,
427
495
  value: JSON.stringify(event.function_name),
428
496
  },
429
497
  {
430
- CELL_CLI_key: EventMetadataKey.CELL_CLI_TOOL_CALL_DECISION,
498
+ cell_cli_key: EventMetadataKey.CELL_CLI_TOOL_CALL_DECISION,
431
499
  value: JSON.stringify(event.decision),
432
500
  },
433
501
  {
434
- CELL_CLI_key: EventMetadataKey.CELL_CLI_TOOL_CALL_SUCCESS,
502
+ cell_cli_key: EventMetadataKey.CELL_CLI_TOOL_CALL_SUCCESS,
435
503
  value: JSON.stringify(event.success),
436
504
  },
437
505
  {
438
- CELL_CLI_key: EventMetadataKey.CELL_CLI_TOOL_CALL_DURATION_MS,
506
+ cell_cli_key: EventMetadataKey.CELL_CLI_TOOL_CALL_DURATION_MS,
439
507
  value: JSON.stringify(event.duration_ms),
440
508
  },
441
509
  {
442
- CELL_CLI_key: EventMetadataKey.CELL_CLI_TOOL_CALL_ERROR_TYPE,
510
+ cell_cli_key: EventMetadataKey.CELL_CLI_TOOL_CALL_ERROR_TYPE,
443
511
  value: JSON.stringify(event.error_type),
444
512
  },
445
513
  {
446
- CELL_CLI_key: EventMetadataKey.CELL_CLI_TOOL_TYPE,
514
+ cell_cli_key: EventMetadataKey.CELL_CLI_TOOL_TYPE,
447
515
  value: JSON.stringify(event.tool_type),
448
516
  },
449
517
  {
450
- CELL_CLI_key: EventMetadataKey.CELL_CLI_TOOL_CALL_CONTENT_LENGTH,
518
+ cell_cli_key: EventMetadataKey.CELL_CLI_TOOL_CALL_CONTENT_LENGTH,
451
519
  value: JSON.stringify(event.content_length),
452
520
  },
453
521
  {
454
- CELL_CLI_key: EventMetadataKey.CELL_CLI_TOOL_CALL_MCP_SERVER_NAME,
522
+ cell_cli_key: EventMetadataKey.CELL_CLI_TOOL_CALL_MCP_SERVER_NAME,
455
523
  value: JSON.stringify(event.mcp_server_name),
456
524
  },
457
525
  ];
@@ -466,10 +534,10 @@ export class ClearcutLogger {
466
534
  user_added_chars: EventMetadataKey.CELL_CLI_USER_ADDED_CHARS,
467
535
  user_removed_chars: EventMetadataKey.CELL_CLI_USER_REMOVED_CHARS,
468
536
  };
469
- for (const [key, CELL_CLI_key] of Object.entries(metadataMapping)) {
537
+ for (const [key, cell_cli_key] of Object.entries(metadataMapping)) {
470
538
  if (event.metadata[key] !== undefined) {
471
539
  data.push({
472
- CELL_CLI_key,
540
+ cell_cli_key,
473
541
  value: JSON.stringify(event.metadata[key]),
474
542
  });
475
543
  }
@@ -477,7 +545,7 @@ export class ClearcutLogger {
477
545
  }
478
546
  if (event.extension_id) {
479
547
  data.push({
480
- CELL_CLI_key: EventMetadataKey.CELL_CLI_EXTENSION_ID,
548
+ cell_cli_key: EventMetadataKey.CELL_CLI_EXTENSION_ID,
481
549
  value: event.extension_id,
482
550
  });
483
551
  }
@@ -488,29 +556,29 @@ export class ClearcutLogger {
488
556
  logFileOperationEvent(event) {
489
557
  const data = [
490
558
  {
491
- CELL_CLI_key: EventMetadataKey.CELL_CLI_TOOL_CALL_NAME,
559
+ cell_cli_key: EventMetadataKey.CELL_CLI_TOOL_CALL_NAME,
492
560
  value: JSON.stringify(event.tool_name),
493
561
  },
494
562
  {
495
- CELL_CLI_key: EventMetadataKey.CELL_CLI_FILE_OPERATION_TYPE,
563
+ cell_cli_key: EventMetadataKey.CELL_CLI_FILE_OPERATION_TYPE,
496
564
  value: JSON.stringify(event.operation),
497
565
  },
498
566
  {
499
- CELL_CLI_key: EventMetadataKey.CELL_CLI_FILE_OPERATION_LINES,
567
+ cell_cli_key: EventMetadataKey.CELL_CLI_FILE_OPERATION_LINES,
500
568
  value: JSON.stringify(event.lines),
501
569
  },
502
570
  {
503
- CELL_CLI_key: EventMetadataKey.CELL_CLI_FILE_OPERATION_MIMETYPE,
571
+ cell_cli_key: EventMetadataKey.CELL_CLI_FILE_OPERATION_MIMETYPE,
504
572
  value: JSON.stringify(event.mimetype),
505
573
  },
506
574
  {
507
- CELL_CLI_key: EventMetadataKey.CELL_CLI_FILE_OPERATION_EXTENSION,
575
+ cell_cli_key: EventMetadataKey.CELL_CLI_FILE_OPERATION_EXTENSION,
508
576
  value: JSON.stringify(event.extension),
509
577
  },
510
578
  ];
511
579
  if (event.programming_language) {
512
580
  data.push({
513
- CELL_CLI_key: EventMetadataKey.CELL_CLI_PROGRAMMING_LANGUAGE,
581
+ cell_cli_key: EventMetadataKey.CELL_CLI_PROGRAMMING_LANGUAGE,
514
582
  value: event.programming_language,
515
583
  });
516
584
  }
@@ -521,7 +589,7 @@ export class ClearcutLogger {
521
589
  logApiRequestEvent(event) {
522
590
  const data = [
523
591
  {
524
- CELL_CLI_key: EventMetadataKey.CELL_CLI_API_REQUEST_MODEL,
592
+ cell_cli_key: EventMetadataKey.CELL_CLI_API_REQUEST_MODEL,
525
593
  value: JSON.stringify(event.model),
526
594
  },
527
595
  ];
@@ -531,35 +599,35 @@ export class ClearcutLogger {
531
599
  logApiResponseEvent(event) {
532
600
  const data = [
533
601
  {
534
- CELL_CLI_key: EventMetadataKey.CELL_CLI_API_RESPONSE_MODEL,
602
+ cell_cli_key: EventMetadataKey.CELL_CLI_API_RESPONSE_MODEL,
535
603
  value: JSON.stringify(event.model),
536
604
  },
537
605
  {
538
- CELL_CLI_key: EventMetadataKey.CELL_CLI_API_RESPONSE_STATUS_CODE,
606
+ cell_cli_key: EventMetadataKey.CELL_CLI_API_RESPONSE_STATUS_CODE,
539
607
  value: JSON.stringify(event.status_code),
540
608
  },
541
609
  {
542
- CELL_CLI_key: EventMetadataKey.CELL_CLI_API_RESPONSE_DURATION_MS,
610
+ cell_cli_key: EventMetadataKey.CELL_CLI_API_RESPONSE_DURATION_MS,
543
611
  value: JSON.stringify(event.duration_ms),
544
612
  },
545
613
  {
546
- CELL_CLI_key: EventMetadataKey.CELL_CLI_API_RESPONSE_INPUT_TOKEN_COUNT,
614
+ cell_cli_key: EventMetadataKey.CELL_CLI_API_RESPONSE_INPUT_TOKEN_COUNT,
547
615
  value: JSON.stringify(event.usage.input_token_count),
548
616
  },
549
617
  {
550
- CELL_CLI_key: EventMetadataKey.CELL_CLI_API_RESPONSE_OUTPUT_TOKEN_COUNT,
618
+ cell_cli_key: EventMetadataKey.CELL_CLI_API_RESPONSE_OUTPUT_TOKEN_COUNT,
551
619
  value: JSON.stringify(event.usage.output_token_count),
552
620
  },
553
621
  {
554
- CELL_CLI_key: EventMetadataKey.CELL_CLI_API_RESPONSE_CACHED_TOKEN_COUNT,
622
+ cell_cli_key: EventMetadataKey.CELL_CLI_API_RESPONSE_CACHED_TOKEN_COUNT,
555
623
  value: JSON.stringify(event.usage.cached_content_token_count),
556
624
  },
557
625
  {
558
- CELL_CLI_key: EventMetadataKey.CELL_CLI_API_RESPONSE_THINKING_TOKEN_COUNT,
626
+ cell_cli_key: EventMetadataKey.CELL_CLI_API_RESPONSE_THINKING_TOKEN_COUNT,
559
627
  value: JSON.stringify(event.usage.thoughts_token_count),
560
628
  },
561
629
  {
562
- CELL_CLI_key: EventMetadataKey.CELL_CLI_API_RESPONSE_TOOL_TOKEN_COUNT,
630
+ cell_cli_key: EventMetadataKey.CELL_CLI_API_RESPONSE_TOOL_TOKEN_COUNT,
563
631
  value: JSON.stringify(event.usage.tool_token_count),
564
632
  },
565
633
  ];
@@ -569,19 +637,19 @@ export class ClearcutLogger {
569
637
  logApiErrorEvent(event) {
570
638
  const data = [
571
639
  {
572
- CELL_CLI_key: EventMetadataKey.CELL_CLI_API_ERROR_MODEL,
640
+ cell_cli_key: EventMetadataKey.CELL_CLI_API_ERROR_MODEL,
573
641
  value: JSON.stringify(event.model),
574
642
  },
575
643
  {
576
- CELL_CLI_key: EventMetadataKey.CELL_CLI_API_ERROR_TYPE,
644
+ cell_cli_key: EventMetadataKey.CELL_CLI_API_ERROR_TYPE,
577
645
  value: JSON.stringify(event.error_type),
578
646
  },
579
647
  {
580
- CELL_CLI_key: EventMetadataKey.CELL_CLI_API_ERROR_STATUS_CODE,
648
+ cell_cli_key: EventMetadataKey.CELL_CLI_API_ERROR_STATUS_CODE,
581
649
  value: JSON.stringify(event.status_code),
582
650
  },
583
651
  {
584
- CELL_CLI_key: EventMetadataKey.CELL_CLI_API_ERROR_DURATION_MS,
652
+ cell_cli_key: EventMetadataKey.CELL_CLI_API_ERROR_DURATION_MS,
585
653
  value: JSON.stringify(event.duration_ms),
586
654
  },
587
655
  ];
@@ -591,11 +659,11 @@ export class ClearcutLogger {
591
659
  logChatCompressionEvent(event) {
592
660
  const data = [
593
661
  {
594
- CELL_CLI_key: EventMetadataKey.CELL_CLI_COMPRESSION_TOKENS_BEFORE,
662
+ cell_cli_key: EventMetadataKey.CELL_CLI_COMPRESSION_TOKENS_BEFORE,
595
663
  value: `${event.tokens_before}`,
596
664
  },
597
665
  {
598
- CELL_CLI_key: EventMetadataKey.CELL_CLI_COMPRESSION_TOKENS_AFTER,
666
+ cell_cli_key: EventMetadataKey.CELL_CLI_COMPRESSION_TOKENS_AFTER,
599
667
  value: `${event.tokens_after}`,
600
668
  },
601
669
  ];
@@ -616,13 +684,13 @@ export class ClearcutLogger {
616
684
  logLoopDetectedEvent(event) {
617
685
  const data = [
618
686
  {
619
- CELL_CLI_key: EventMetadataKey.CELL_CLI_LOOP_DETECTED_TYPE,
687
+ cell_cli_key: EventMetadataKey.CELL_CLI_LOOP_DETECTED_TYPE,
620
688
  value: JSON.stringify(event.loop_type),
621
689
  },
622
690
  ];
623
691
  if (event.confirmed_by_model) {
624
692
  data.push({
625
- CELL_CLI_key: EventMetadataKey.CELL_CLI_LOOP_DETECTED_CONFIRMED_BY_MODEL,
693
+ cell_cli_key: EventMetadataKey.CELL_CLI_LOOP_DETECTED_CONFIRMED_BY_MODEL,
626
694
  value: event.confirmed_by_model,
627
695
  });
628
696
  }
@@ -637,11 +705,11 @@ export class ClearcutLogger {
637
705
  logNextSpeakerCheck(event) {
638
706
  const data = [
639
707
  {
640
- CELL_CLI_key: EventMetadataKey.CELL_CLI_RESPONSE_FINISH_REASON,
708
+ cell_cli_key: EventMetadataKey.CELL_CLI_RESPONSE_FINISH_REASON,
641
709
  value: JSON.stringify(event.finish_reason),
642
710
  },
643
711
  {
644
- CELL_CLI_key: EventMetadataKey.CELL_CLI_NEXT_SPEAKER_CHECK_RESULT,
712
+ cell_cli_key: EventMetadataKey.CELL_CLI_NEXT_SPEAKER_CHECK_RESULT,
645
713
  value: JSON.stringify(event.result),
646
714
  },
647
715
  ];
@@ -651,25 +719,25 @@ export class ClearcutLogger {
651
719
  logSlashCommandEvent(event) {
652
720
  const data = [
653
721
  {
654
- CELL_CLI_key: EventMetadataKey.CELL_CLI_SLASH_COMMAND_NAME,
722
+ cell_cli_key: EventMetadataKey.CELL_CLI_SLASH_COMMAND_NAME,
655
723
  value: JSON.stringify(event.command),
656
724
  },
657
725
  ];
658
726
  if (event.subcommand) {
659
727
  data.push({
660
- CELL_CLI_key: EventMetadataKey.CELL_CLI_SLASH_COMMAND_SUBCOMMAND,
728
+ cell_cli_key: EventMetadataKey.CELL_CLI_SLASH_COMMAND_SUBCOMMAND,
661
729
  value: JSON.stringify(event.subcommand),
662
730
  });
663
731
  }
664
732
  if (event.status) {
665
733
  data.push({
666
- CELL_CLI_key: EventMetadataKey.CELL_CLI_SLASH_COMMAND_STATUS,
734
+ cell_cli_key: EventMetadataKey.CELL_CLI_SLASH_COMMAND_STATUS,
667
735
  value: JSON.stringify(event.status),
668
736
  });
669
737
  }
670
738
  if (event.extension_id) {
671
739
  data.push({
672
- CELL_CLI_key: EventMetadataKey.CELL_CLI_EXTENSION_ID,
740
+ cell_cli_key: EventMetadataKey.CELL_CLI_EXTENSION_ID,
673
741
  value: event.extension_id,
674
742
  });
675
743
  }
@@ -679,7 +747,7 @@ export class ClearcutLogger {
679
747
  logMalformedJsonResponseEvent(event) {
680
748
  const data = [
681
749
  {
682
- CELL_CLI_key: EventMetadataKey.CELL_CLI_MALFORMED_JSON_RESPONSE_MODEL,
750
+ cell_cli_key: EventMetadataKey.CELL_CLI_MALFORMED_JSON_RESPONSE_MODEL,
683
751
  value: JSON.stringify(event.model),
684
752
  },
685
753
  ];
@@ -689,11 +757,12 @@ export class ClearcutLogger {
689
757
  logIdeConnectionEvent(event) {
690
758
  const data = [
691
759
  {
692
- CELL_CLI_key: EventMetadataKey.CELL_CLI_IDE_CONNECTION_TYPE,
760
+ cell_cli_key: EventMetadataKey.CELL_CLI_IDE_CONNECTION_TYPE,
693
761
  value: JSON.stringify(event.connection_type),
694
762
  },
695
763
  ];
696
764
  // Flush after experiments finish loading from CCPA server
765
+ // eslint-disable-next-line @typescript-eslint/no-floating-promises
697
766
  this.enqueueLogEventAfterExperimentsLoadAsync(this.createLogEvent(EventNames.START_SESSION, data)).then(() => {
698
767
  this.flushToClearcut().catch((error) => {
699
768
  debugLogger.debug('Error flushing to Clearcut:', error);
@@ -703,15 +772,15 @@ export class ClearcutLogger {
703
772
  logConversationFinishedEvent(event) {
704
773
  const data = [
705
774
  {
706
- CELL_CLI_key: EventMetadataKey.CELL_CLI_SESSION_ID,
775
+ cell_cli_key: EventMetadataKey.CELL_CLI_SESSION_ID,
707
776
  value: this.config?.getSessionId() ?? '',
708
777
  },
709
778
  {
710
- CELL_CLI_key: EventMetadataKey.CELL_CLI_CONVERSATION_TURN_COUNT,
779
+ cell_cli_key: EventMetadataKey.CELL_CLI_CONVERSATION_TURN_COUNT,
711
780
  value: JSON.stringify(event.turnCount),
712
781
  },
713
782
  {
714
- CELL_CLI_key: EventMetadataKey.CELL_CLI_APPROVAL_MODE,
783
+ cell_cli_key: EventMetadataKey.CELL_CLI_APPROVAL_MODE,
715
784
  value: event.approvalMode,
716
785
  },
717
786
  ];
@@ -729,7 +798,7 @@ export class ClearcutLogger {
729
798
  const data = [];
730
799
  if (event.error_message) {
731
800
  data.push({
732
- CELL_CLI_key: EventMetadataKey.CELL_CLI_INVALID_CHUNK_ERROR_MESSAGE,
801
+ cell_cli_key: EventMetadataKey.CELL_CLI_INVALID_CHUNK_ERROR_MESSAGE,
733
802
  value: event.error_message,
734
803
  });
735
804
  }
@@ -739,19 +808,19 @@ export class ClearcutLogger {
739
808
  logContentRetryEvent(event) {
740
809
  const data = [
741
810
  {
742
- CELL_CLI_key: EventMetadataKey.CELL_CLI_CONTENT_RETRY_ATTEMPT_NUMBER,
811
+ cell_cli_key: EventMetadataKey.CELL_CLI_CONTENT_RETRY_ATTEMPT_NUMBER,
743
812
  value: String(event.attempt_number),
744
813
  },
745
814
  {
746
- CELL_CLI_key: EventMetadataKey.CELL_CLI_CONTENT_RETRY_ERROR_TYPE,
815
+ cell_cli_key: EventMetadataKey.CELL_CLI_CONTENT_RETRY_ERROR_TYPE,
747
816
  value: event.error_type,
748
817
  },
749
818
  {
750
- CELL_CLI_key: EventMetadataKey.CELL_CLI_CONTENT_RETRY_DELAY_MS,
819
+ cell_cli_key: EventMetadataKey.CELL_CLI_CONTENT_RETRY_DELAY_MS,
751
820
  value: String(event.retry_delay_ms),
752
821
  },
753
822
  {
754
- CELL_CLI_key: EventMetadataKey.CELL_CLI_API_REQUEST_MODEL,
823
+ cell_cli_key: EventMetadataKey.CELL_CLI_API_REQUEST_MODEL,
755
824
  value: event.model,
756
825
  },
757
826
  ];
@@ -761,21 +830,21 @@ export class ClearcutLogger {
761
830
  logContentRetryFailureEvent(event) {
762
831
  const data = [
763
832
  {
764
- CELL_CLI_key: EventMetadataKey.CELL_CLI_CONTENT_RETRY_FAILURE_TOTAL_ATTEMPTS,
833
+ cell_cli_key: EventMetadataKey.CELL_CLI_CONTENT_RETRY_FAILURE_TOTAL_ATTEMPTS,
765
834
  value: String(event.total_attempts),
766
835
  },
767
836
  {
768
- CELL_CLI_key: EventMetadataKey.CELL_CLI_CONTENT_RETRY_FAILURE_FINAL_ERROR_TYPE,
837
+ cell_cli_key: EventMetadataKey.CELL_CLI_CONTENT_RETRY_FAILURE_FINAL_ERROR_TYPE,
769
838
  value: event.final_error_type,
770
839
  },
771
840
  {
772
- CELL_CLI_key: EventMetadataKey.CELL_CLI_API_REQUEST_MODEL,
841
+ cell_cli_key: EventMetadataKey.CELL_CLI_API_REQUEST_MODEL,
773
842
  value: event.model,
774
843
  },
775
844
  ];
776
845
  if (event.total_duration_ms) {
777
846
  data.push({
778
- CELL_CLI_key: EventMetadataKey.CELL_CLI_CONTENT_RETRY_FAILURE_TOTAL_DURATION_MS,
847
+ cell_cli_key: EventMetadataKey.CELL_CLI_CONTENT_RETRY_FAILURE_TOTAL_DURATION_MS,
779
848
  value: String(event.total_duration_ms),
780
849
  });
781
850
  }
@@ -785,23 +854,23 @@ export class ClearcutLogger {
785
854
  async logExtensionInstallEvent(event) {
786
855
  const data = [
787
856
  {
788
- CELL_CLI_key: EventMetadataKey.CELL_CLI_EXTENSION_NAME,
789
- value: event.extension_name,
857
+ cell_cli_key: EventMetadataKey.CELL_CLI_EXTENSION_NAME,
858
+ value: event.hashed_extension_name,
790
859
  },
791
860
  {
792
- CELL_CLI_key: EventMetadataKey.CELL_CLI_EXTENSION_ID,
861
+ cell_cli_key: EventMetadataKey.CELL_CLI_EXTENSION_ID,
793
862
  value: event.extension_id,
794
863
  },
795
864
  {
796
- CELL_CLI_key: EventMetadataKey.CELL_CLI_EXTENSION_VERSION,
865
+ cell_cli_key: EventMetadataKey.CELL_CLI_EXTENSION_VERSION,
797
866
  value: event.extension_version,
798
867
  },
799
868
  {
800
- CELL_CLI_key: EventMetadataKey.CELL_CLI_EXTENSION_SOURCE,
869
+ cell_cli_key: EventMetadataKey.CELL_CLI_EXTENSION_SOURCE,
801
870
  value: event.extension_source,
802
871
  },
803
872
  {
804
- CELL_CLI_key: EventMetadataKey.CELL_CLI_EXTENSION_INSTALL_STATUS,
873
+ cell_cli_key: EventMetadataKey.CELL_CLI_EXTENSION_INSTALL_STATUS,
805
874
  value: event.status,
806
875
  },
807
876
  ];
@@ -813,15 +882,15 @@ export class ClearcutLogger {
813
882
  async logExtensionUninstallEvent(event) {
814
883
  const data = [
815
884
  {
816
- CELL_CLI_key: EventMetadataKey.CELL_CLI_EXTENSION_NAME,
817
- value: event.extension_name,
885
+ cell_cli_key: EventMetadataKey.CELL_CLI_EXTENSION_NAME,
886
+ value: event.hashed_extension_name,
818
887
  },
819
888
  {
820
- CELL_CLI_key: EventMetadataKey.CELL_CLI_EXTENSION_ID,
889
+ cell_cli_key: EventMetadataKey.CELL_CLI_EXTENSION_ID,
821
890
  value: event.extension_id,
822
891
  },
823
892
  {
824
- CELL_CLI_key: EventMetadataKey.CELL_CLI_EXTENSION_UNINSTALL_STATUS,
893
+ cell_cli_key: EventMetadataKey.CELL_CLI_EXTENSION_UNINSTALL_STATUS,
825
894
  value: event.status,
826
895
  },
827
896
  ];
@@ -833,27 +902,27 @@ export class ClearcutLogger {
833
902
  async logExtensionUpdateEvent(event) {
834
903
  const data = [
835
904
  {
836
- CELL_CLI_key: EventMetadataKey.CELL_CLI_EXTENSION_NAME,
837
- value: event.extension_name,
905
+ cell_cli_key: EventMetadataKey.CELL_CLI_EXTENSION_NAME,
906
+ value: event.hashed_extension_name,
838
907
  },
839
908
  {
840
- CELL_CLI_key: EventMetadataKey.CELL_CLI_EXTENSION_ID,
909
+ cell_cli_key: EventMetadataKey.CELL_CLI_EXTENSION_ID,
841
910
  value: event.extension_id,
842
911
  },
843
912
  {
844
- CELL_CLI_key: EventMetadataKey.CELL_CLI_EXTENSION_VERSION,
913
+ cell_cli_key: EventMetadataKey.CELL_CLI_EXTENSION_VERSION,
845
914
  value: event.extension_version,
846
915
  },
847
916
  {
848
- CELL_CLI_key: EventMetadataKey.CELL_CLI_EXTENSION_PREVIOUS_VERSION,
917
+ cell_cli_key: EventMetadataKey.CELL_CLI_EXTENSION_PREVIOUS_VERSION,
849
918
  value: event.extension_previous_version,
850
919
  },
851
920
  {
852
- CELL_CLI_key: EventMetadataKey.CELL_CLI_EXTENSION_SOURCE,
921
+ cell_cli_key: EventMetadataKey.CELL_CLI_EXTENSION_SOURCE,
853
922
  value: event.extension_source,
854
923
  },
855
924
  {
856
- CELL_CLI_key: EventMetadataKey.CELL_CLI_EXTENSION_UPDATE_STATUS,
925
+ cell_cli_key: EventMetadataKey.CELL_CLI_EXTENSION_UPDATE_STATUS,
857
926
  value: event.status,
858
927
  },
859
928
  ];
@@ -865,23 +934,23 @@ export class ClearcutLogger {
865
934
  logToolOutputTruncatedEvent(event) {
866
935
  const data = [
867
936
  {
868
- CELL_CLI_key: EventMetadataKey.CELL_CLI_TOOL_CALL_NAME,
937
+ cell_cli_key: EventMetadataKey.CELL_CLI_TOOL_CALL_NAME,
869
938
  value: JSON.stringify(event.tool_name),
870
939
  },
871
940
  {
872
- CELL_CLI_key: EventMetadataKey.CELL_CLI_TOOL_OUTPUT_TRUNCATED_ORIGINAL_LENGTH,
941
+ cell_cli_key: EventMetadataKey.CELL_CLI_TOOL_OUTPUT_TRUNCATED_ORIGINAL_LENGTH,
873
942
  value: JSON.stringify(event.original_content_length),
874
943
  },
875
944
  {
876
- CELL_CLI_key: EventMetadataKey.CELL_CLI_TOOL_OUTPUT_TRUNCATED_TRUNCATED_LENGTH,
945
+ cell_cli_key: EventMetadataKey.CELL_CLI_TOOL_OUTPUT_TRUNCATED_TRUNCATED_LENGTH,
877
946
  value: JSON.stringify(event.truncated_content_length),
878
947
  },
879
948
  {
880
- CELL_CLI_key: EventMetadataKey.CELL_CLI_TOOL_OUTPUT_TRUNCATED_THRESHOLD,
949
+ cell_cli_key: EventMetadataKey.CELL_CLI_TOOL_OUTPUT_TRUNCATED_THRESHOLD,
881
950
  value: JSON.stringify(event.threshold),
882
951
  },
883
952
  {
884
- CELL_CLI_key: EventMetadataKey.CELL_CLI_TOOL_OUTPUT_TRUNCATED_LINES,
953
+ cell_cli_key: EventMetadataKey.CELL_CLI_TOOL_OUTPUT_TRUNCATED_LINES,
885
954
  value: JSON.stringify(event.lines),
886
955
  },
887
956
  ];
@@ -891,25 +960,25 @@ export class ClearcutLogger {
891
960
  logModelRoutingEvent(event) {
892
961
  const data = [
893
962
  {
894
- CELL_CLI_key: EventMetadataKey.CELL_CLI_ROUTING_DECISION,
963
+ cell_cli_key: EventMetadataKey.CELL_CLI_ROUTING_DECISION,
895
964
  value: event.decision_model,
896
965
  },
897
966
  {
898
- CELL_CLI_key: EventMetadataKey.CELL_CLI_ROUTING_DECISION_SOURCE,
967
+ cell_cli_key: EventMetadataKey.CELL_CLI_ROUTING_DECISION_SOURCE,
899
968
  value: event.decision_source,
900
969
  },
901
970
  {
902
- CELL_CLI_key: EventMetadataKey.CELL_CLI_ROUTING_LATENCY_MS,
971
+ cell_cli_key: EventMetadataKey.CELL_CLI_ROUTING_LATENCY_MS,
903
972
  value: event.routing_latency_ms.toString(),
904
973
  },
905
974
  {
906
- CELL_CLI_key: EventMetadataKey.CELL_CLI_ROUTING_FAILURE,
975
+ cell_cli_key: EventMetadataKey.CELL_CLI_ROUTING_FAILURE,
907
976
  value: event.failed.toString(),
908
977
  },
909
978
  ];
910
979
  if (event.error_message) {
911
980
  data.push({
912
- CELL_CLI_key: EventMetadataKey.CELL_CLI_ROUTING_FAILURE_REASON,
981
+ cell_cli_key: EventMetadataKey.CELL_CLI_ROUTING_FAILURE_REASON,
913
982
  value: event.error_message,
914
983
  });
915
984
  }
@@ -919,15 +988,15 @@ export class ClearcutLogger {
919
988
  async logExtensionEnableEvent(event) {
920
989
  const data = [
921
990
  {
922
- CELL_CLI_key: EventMetadataKey.CELL_CLI_EXTENSION_NAME,
923
- value: event.extension_name,
991
+ cell_cli_key: EventMetadataKey.CELL_CLI_EXTENSION_NAME,
992
+ value: event.hashed_extension_name,
924
993
  },
925
994
  {
926
- CELL_CLI_key: EventMetadataKey.CELL_CLI_EXTENSION_ID,
995
+ cell_cli_key: EventMetadataKey.CELL_CLI_EXTENSION_ID,
927
996
  value: event.extension_id,
928
997
  },
929
998
  {
930
- CELL_CLI_key: EventMetadataKey.CELL_CLI_EXTENSION_ENABLE_SETTING_SCOPE,
999
+ cell_cli_key: EventMetadataKey.CELL_CLI_EXTENSION_ENABLE_SETTING_SCOPE,
931
1000
  value: event.setting_scope,
932
1001
  },
933
1002
  ];
@@ -939,7 +1008,7 @@ export class ClearcutLogger {
939
1008
  logModelSlashCommandEvent(event) {
940
1009
  const data = [
941
1010
  {
942
- CELL_CLI_key: EventMetadataKey.CELL_CLI_MODEL_SLASH_COMMAND,
1011
+ cell_cli_key: EventMetadataKey.CELL_CLI_MODEL_SLASH_COMMAND,
943
1012
  value: event.model_name,
944
1013
  },
945
1014
  ];
@@ -949,15 +1018,15 @@ export class ClearcutLogger {
949
1018
  async logExtensionDisableEvent(event) {
950
1019
  const data = [
951
1020
  {
952
- CELL_CLI_key: EventMetadataKey.CELL_CLI_EXTENSION_NAME,
953
- value: event.extension_name,
1021
+ cell_cli_key: EventMetadataKey.CELL_CLI_EXTENSION_NAME,
1022
+ value: event.hashed_extension_name,
954
1023
  },
955
1024
  {
956
- CELL_CLI_key: EventMetadataKey.CELL_CLI_EXTENSION_ID,
1025
+ cell_cli_key: EventMetadataKey.CELL_CLI_EXTENSION_ID,
957
1026
  value: event.extension_id,
958
1027
  },
959
1028
  {
960
- CELL_CLI_key: EventMetadataKey.CELL_CLI_EXTENSION_DISABLE_SETTING_SCOPE,
1029
+ cell_cli_key: EventMetadataKey.CELL_CLI_EXTENSION_DISABLE_SETTING_SCOPE,
961
1030
  value: event.setting_scope,
962
1031
  },
963
1032
  ];
@@ -966,34 +1035,34 @@ export class ClearcutLogger {
966
1035
  debugLogger.debug('Error flushing to Clearcut:', error);
967
1036
  });
968
1037
  }
969
- logSmartEditStrategyEvent(event) {
1038
+ logEditStrategyEvent(event) {
970
1039
  const data = [
971
1040
  {
972
- CELL_CLI_key: EventMetadataKey.CELL_CLI_SMART_EDIT_STRATEGY,
1041
+ cell_cli_key: EventMetadataKey.CELL_CLI_EDIT_STRATEGY,
973
1042
  value: event.strategy,
974
1043
  },
975
1044
  ];
976
- this.enqueueLogEvent(this.createLogEvent(EventNames.SMART_EDIT_STRATEGY, data));
1045
+ this.enqueueLogEvent(this.createLogEvent(EventNames.EDIT_STRATEGY, data));
977
1046
  this.flushIfNeeded();
978
1047
  }
979
- logSmartEditCorrectionEvent(event) {
1048
+ logEditCorrectionEvent(event) {
980
1049
  const data = [
981
1050
  {
982
- CELL_CLI_key: EventMetadataKey.CELL_CLI_SMART_EDIT_CORRECTION,
1051
+ cell_cli_key: EventMetadataKey.CELL_CLI_EDIT_CORRECTION,
983
1052
  value: event.correction,
984
1053
  },
985
1054
  ];
986
- this.enqueueLogEvent(this.createLogEvent(EventNames.SMART_EDIT_CORRECTION, data));
1055
+ this.enqueueLogEvent(this.createLogEvent(EventNames.EDIT_CORRECTION, data));
987
1056
  this.flushIfNeeded();
988
1057
  }
989
1058
  logAgentStartEvent(event) {
990
1059
  const data = [
991
1060
  {
992
- CELL_CLI_key: EventMetadataKey.CELL_CLI_AGENT_ID,
1061
+ cell_cli_key: EventMetadataKey.CELL_CLI_AGENT_ID,
993
1062
  value: event.agent_id,
994
1063
  },
995
1064
  {
996
- CELL_CLI_key: EventMetadataKey.CELL_CLI_AGENT_NAME,
1065
+ cell_cli_key: EventMetadataKey.CELL_CLI_AGENT_NAME,
997
1066
  value: event.agent_name,
998
1067
  },
999
1068
  ];
@@ -1003,23 +1072,23 @@ export class ClearcutLogger {
1003
1072
  logAgentFinishEvent(event) {
1004
1073
  const data = [
1005
1074
  {
1006
- CELL_CLI_key: EventMetadataKey.CELL_CLI_AGENT_ID,
1075
+ cell_cli_key: EventMetadataKey.CELL_CLI_AGENT_ID,
1007
1076
  value: event.agent_id,
1008
1077
  },
1009
1078
  {
1010
- CELL_CLI_key: EventMetadataKey.CELL_CLI_AGENT_NAME,
1079
+ cell_cli_key: EventMetadataKey.CELL_CLI_AGENT_NAME,
1011
1080
  value: event.agent_name,
1012
1081
  },
1013
1082
  {
1014
- CELL_CLI_key: EventMetadataKey.CELL_CLI_AGENT_DURATION_MS,
1083
+ cell_cli_key: EventMetadataKey.CELL_CLI_AGENT_DURATION_MS,
1015
1084
  value: event.duration_ms.toString(),
1016
1085
  },
1017
1086
  {
1018
- CELL_CLI_key: EventMetadataKey.CELL_CLI_AGENT_TURN_COUNT,
1087
+ cell_cli_key: EventMetadataKey.CELL_CLI_AGENT_TURN_COUNT,
1019
1088
  value: event.turn_count.toString(),
1020
1089
  },
1021
1090
  {
1022
- CELL_CLI_key: EventMetadataKey.CELL_CLI_AGENT_TERMINATE_REASON,
1091
+ cell_cli_key: EventMetadataKey.CELL_CLI_AGENT_TERMINATE_REASON,
1023
1092
  value: event.terminate_reason,
1024
1093
  },
1025
1094
  ];
@@ -1029,27 +1098,27 @@ export class ClearcutLogger {
1029
1098
  logRecoveryAttemptEvent(event) {
1030
1099
  const data = [
1031
1100
  {
1032
- CELL_CLI_key: EventMetadataKey.CELL_CLI_AGENT_ID,
1101
+ cell_cli_key: EventMetadataKey.CELL_CLI_AGENT_ID,
1033
1102
  value: event.agent_id,
1034
1103
  },
1035
1104
  {
1036
- CELL_CLI_key: EventMetadataKey.CELL_CLI_AGENT_NAME,
1105
+ cell_cli_key: EventMetadataKey.CELL_CLI_AGENT_NAME,
1037
1106
  value: event.agent_name,
1038
1107
  },
1039
1108
  {
1040
- CELL_CLI_key: EventMetadataKey.CELL_CLI_AGENT_RECOVERY_REASON,
1109
+ cell_cli_key: EventMetadataKey.CELL_CLI_AGENT_RECOVERY_REASON,
1041
1110
  value: event.reason,
1042
1111
  },
1043
1112
  {
1044
- CELL_CLI_key: EventMetadataKey.CELL_CLI_AGENT_RECOVERY_DURATION_MS,
1113
+ cell_cli_key: EventMetadataKey.CELL_CLI_AGENT_RECOVERY_DURATION_MS,
1045
1114
  value: event.duration_ms.toString(),
1046
1115
  },
1047
1116
  {
1048
- CELL_CLI_key: EventMetadataKey.CELL_CLI_AGENT_RECOVERY_SUCCESS,
1117
+ cell_cli_key: EventMetadataKey.CELL_CLI_AGENT_RECOVERY_SUCCESS,
1049
1118
  value: event.success.toString(),
1050
1119
  },
1051
1120
  {
1052
- CELL_CLI_key: EventMetadataKey.CELL_CLI_AGENT_TURN_COUNT,
1121
+ cell_cli_key: EventMetadataKey.CELL_CLI_AGENT_TURN_COUNT,
1053
1122
  value: event.turn_count.toString(),
1054
1123
  },
1055
1124
  ];
@@ -1059,7 +1128,7 @@ export class ClearcutLogger {
1059
1128
  logWebFetchFallbackAttemptEvent(event) {
1060
1129
  const data = [
1061
1130
  {
1062
- CELL_CLI_key: EventMetadataKey.CELL_CLI_WEB_FETCH_FALLBACK_REASON,
1131
+ cell_cli_key: EventMetadataKey.CELL_CLI_WEB_FETCH_FALLBACK_REASON,
1063
1132
  value: event.reason,
1064
1133
  },
1065
1134
  ];
@@ -1069,25 +1138,49 @@ export class ClearcutLogger {
1069
1138
  logLlmLoopCheckEvent(event) {
1070
1139
  const data = [
1071
1140
  {
1072
- CELL_CLI_key: EventMetadataKey.CELL_CLI_PROMPT_ID,
1141
+ cell_cli_key: EventMetadataKey.CELL_CLI_PROMPT_ID,
1073
1142
  value: event.prompt_id,
1074
1143
  },
1075
1144
  {
1076
- CELL_CLI_key: EventMetadataKey.CELL_CLI_LLM_LOOP_CHECK_FLASH_CONFIDENCE,
1145
+ cell_cli_key: EventMetadataKey.CELL_CLI_LLM_LOOP_CHECK_FLASH_CONFIDENCE,
1077
1146
  value: event.flash_confidence.toString(),
1078
1147
  },
1079
1148
  {
1080
- CELL_CLI_key: EventMetadataKey.CELL_CLI_LLM_LOOP_CHECK_MAIN_MODEL,
1149
+ cell_cli_key: EventMetadataKey.CELL_CLI_LLM_LOOP_CHECK_MAIN_MODEL,
1081
1150
  value: event.main_model,
1082
1151
  },
1083
1152
  {
1084
- CELL_CLI_key: EventMetadataKey.CELL_CLI_LLM_LOOP_CHECK_MAIN_MODEL_CONFIDENCE,
1153
+ cell_cli_key: EventMetadataKey.CELL_CLI_LLM_LOOP_CHECK_MAIN_MODEL_CONFIDENCE,
1085
1154
  value: event.main_model_confidence.toString(),
1086
1155
  },
1087
1156
  ];
1088
1157
  this.enqueueLogEvent(this.createLogEvent(EventNames.LLM_LOOP_CHECK, data));
1089
1158
  this.flushIfNeeded();
1090
1159
  }
1160
+ logHookCallEvent(event) {
1161
+ const data = [
1162
+ {
1163
+ cell_cli_key: EventMetadataKey.CELL_CLI_HOOK_EVENT_NAME,
1164
+ value: event.hook_event_name,
1165
+ },
1166
+ {
1167
+ cell_cli_key: EventMetadataKey.CELL_CLI_HOOK_DURATION_MS,
1168
+ value: event.duration_ms.toString(),
1169
+ },
1170
+ {
1171
+ cell_cli_key: EventMetadataKey.CELL_CLI_HOOK_SUCCESS,
1172
+ value: event.success.toString(),
1173
+ },
1174
+ ];
1175
+ if (event.exit_code !== undefined) {
1176
+ data.push({
1177
+ cell_cli_key: EventMetadataKey.CELL_CLI_HOOK_EXIT_CODE,
1178
+ value: event.exit_code.toString(),
1179
+ });
1180
+ }
1181
+ this.enqueueLogEvent(this.createLogEvent(EventNames.HOOK_CALL, data));
1182
+ this.flushIfNeeded();
1183
+ }
1091
1184
  /**
1092
1185
  * Adds default fields to data, and returns a new data array. This fields
1093
1186
  * should exist on all log events.
@@ -1095,37 +1188,37 @@ export class ClearcutLogger {
1095
1188
  addDefaultFields(data, totalAccounts) {
1096
1189
  const defaultLogMetadata = [
1097
1190
  {
1098
- CELL_CLI_key: EventMetadataKey.CELL_CLI_SESSION_ID,
1191
+ cell_cli_key: EventMetadataKey.CELL_CLI_SESSION_ID,
1099
1192
  value: this.config?.getSessionId() ?? '',
1100
1193
  },
1101
1194
  {
1102
- CELL_CLI_key: EventMetadataKey.CELL_CLI_AUTH_TYPE,
1195
+ cell_cli_key: EventMetadataKey.CELL_CLI_AUTH_TYPE,
1103
1196
  value: JSON.stringify(this.config?.getContentGeneratorConfig()?.authType),
1104
1197
  },
1105
1198
  {
1106
- CELL_CLI_key: EventMetadataKey.CELL_CLI_GOOGLE_ACCOUNTS_COUNT,
1199
+ cell_cli_key: EventMetadataKey.CELL_CLI_GOOGLE_ACCOUNTS_COUNT,
1107
1200
  value: `${totalAccounts}`,
1108
1201
  },
1109
1202
  {
1110
- CELL_CLI_key: EventMetadataKey.CELL_CLI_PROMPT_ID,
1203
+ cell_cli_key: EventMetadataKey.CELL_CLI_PROMPT_ID,
1111
1204
  value: this.promptId,
1112
1205
  },
1113
1206
  {
1114
- CELL_CLI_key: EventMetadataKey.CELL_CLI_NODE_VERSION,
1207
+ cell_cli_key: EventMetadataKey.CELL_CLI_NODE_VERSION,
1115
1208
  value: process.versions.node,
1116
1209
  },
1117
1210
  {
1118
- CELL_CLI_key: EventMetadataKey.CELL_CLI_USER_SETTINGS,
1211
+ cell_cli_key: EventMetadataKey.CELL_CLI_USER_SETTINGS,
1119
1212
  value: this.getConfigJson(),
1120
1213
  },
1121
1214
  {
1122
- CELL_CLI_key: EventMetadataKey.CELL_CLI_INTERACTIVE,
1215
+ cell_cli_key: EventMetadataKey.CELL_CLI_INTERACTIVE,
1123
1216
  value: this.config?.isInteractive().toString() ?? 'false',
1124
1217
  },
1125
1218
  ];
1126
1219
  if (this.config?.getExperiments()) {
1127
1220
  defaultLogMetadata.push({
1128
- CELL_CLI_key: EventMetadataKey.CELL_CLI_EXPERIMENT_IDS,
1221
+ cell_cli_key: EventMetadataKey.CELL_CLI_EXPERIMENT_IDS,
1129
1222
  value: this.config?.getExperiments()?.experimentIds.toString() ?? 'NA',
1130
1223
  });
1131
1224
  }
@@ -1185,5 +1278,9 @@ export class ClearcutLogger {
1185
1278
  export const TEST_ONLY = {
1186
1279
  MAX_RETRY_EVENTS,
1187
1280
  MAX_EVENTS,
1281
+ refreshGpuInfo,
1282
+ resetCachedGpuInfoForTesting: () => {
1283
+ cachedGpuInfo = undefined;
1284
+ },
1188
1285
  };
1189
1286
  //# sourceMappingURL=clearcut-logger.js.map