@office-ai/aioncli-core 0.8.1 → 0.18.4

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 (777) hide show
  1. package/dist/index.d.ts +8 -2
  2. package/dist/index.js +7 -2
  3. package/dist/index.js.map +1 -1
  4. package/dist/src/agents/codebase-investigator.d.ts +36 -1
  5. package/dist/src/agents/codebase-investigator.js +93 -34
  6. package/dist/src/agents/codebase-investigator.js.map +1 -1
  7. package/dist/src/agents/codebase-investigator.test.d.ts +6 -0
  8. package/dist/src/agents/codebase-investigator.test.js +35 -0
  9. package/dist/src/agents/codebase-investigator.test.js.map +1 -0
  10. package/dist/src/agents/executor.d.ts +37 -11
  11. package/dist/src/agents/executor.js +512 -150
  12. package/dist/src/agents/executor.js.map +1 -1
  13. package/dist/src/agents/executor.test.js +1188 -245
  14. package/dist/src/agents/executor.test.js.map +1 -1
  15. package/dist/src/agents/invocation.d.ts +5 -2
  16. package/dist/src/agents/invocation.js +4 -2
  17. package/dist/src/agents/invocation.js.map +1 -1
  18. package/dist/src/agents/invocation.test.js +9 -0
  19. package/dist/src/agents/invocation.test.js.map +1 -1
  20. package/dist/src/agents/registry.d.ts +6 -1
  21. package/dist/src/agents/registry.js +51 -4
  22. package/dist/src/agents/registry.js.map +1 -1
  23. package/dist/src/agents/registry.test.js +30 -16
  24. package/dist/src/agents/registry.test.js.map +1 -1
  25. package/dist/src/agents/subagent-tool-wrapper.d.ts +3 -1
  26. package/dist/src/agents/subagent-tool-wrapper.js +4 -3
  27. package/dist/src/agents/subagent-tool-wrapper.js.map +1 -1
  28. package/dist/src/agents/subagent-tool-wrapper.test.js +9 -4
  29. package/dist/src/agents/subagent-tool-wrapper.test.js.map +1 -1
  30. package/dist/src/agents/types.d.ts +37 -7
  31. package/dist/src/agents/types.js +2 -0
  32. package/dist/src/agents/types.js.map +1 -1
  33. package/dist/src/code_assist/codeAssist.js +1 -1
  34. package/dist/src/code_assist/codeAssist.test.d.ts +6 -0
  35. package/dist/src/code_assist/codeAssist.test.js +99 -0
  36. package/dist/src/code_assist/codeAssist.test.js.map +1 -0
  37. package/dist/src/code_assist/converter.d.ts +1 -0
  38. package/dist/src/code_assist/converter.js +1 -0
  39. package/dist/src/code_assist/converter.js.map +1 -1
  40. package/dist/src/code_assist/converter.test.js +19 -0
  41. package/dist/src/code_assist/converter.test.js.map +1 -1
  42. package/dist/src/code_assist/experiments/client_metadata.d.ts +12 -0
  43. package/dist/src/code_assist/experiments/client_metadata.js +50 -0
  44. package/dist/src/code_assist/experiments/client_metadata.js.map +1 -0
  45. package/dist/src/code_assist/experiments/client_metadata.test.d.ts +6 -0
  46. package/dist/src/code_assist/experiments/client_metadata.test.js +99 -0
  47. package/dist/src/code_assist/experiments/client_metadata.test.js.map +1 -0
  48. package/dist/src/code_assist/experiments/experiments.d.ts +17 -0
  49. package/dist/src/code_assist/experiments/experiments.js +36 -0
  50. package/dist/src/code_assist/experiments/experiments.js.map +1 -0
  51. package/dist/src/code_assist/experiments/experiments.test.d.ts +6 -0
  52. package/dist/src/code_assist/experiments/experiments.test.js +92 -0
  53. package/dist/src/code_assist/experiments/experiments.test.js.map +1 -0
  54. package/dist/src/code_assist/experiments/flagNames.d.ts +13 -0
  55. package/dist/src/code_assist/experiments/flagNames.js +13 -0
  56. package/dist/src/code_assist/experiments/flagNames.js.map +1 -0
  57. package/dist/src/code_assist/experiments/types.d.ts +35 -0
  58. package/dist/src/code_assist/experiments/types.js +7 -0
  59. package/dist/src/code_assist/experiments/types.js.map +1 -0
  60. package/dist/src/code_assist/oauth-credential-storage.js +6 -5
  61. package/dist/src/code_assist/oauth-credential-storage.js.map +1 -1
  62. package/dist/src/code_assist/oauth-credential-storage.test.js +65 -3
  63. package/dist/src/code_assist/oauth-credential-storage.test.js.map +1 -1
  64. package/dist/src/code_assist/oauth2.d.ts +2 -2
  65. package/dist/src/code_assist/oauth2.js +161 -93
  66. package/dist/src/code_assist/oauth2.js.map +1 -1
  67. package/dist/src/code_assist/oauth2.test.js +103 -57
  68. package/dist/src/code_assist/oauth2.test.js.map +1 -1
  69. package/dist/src/code_assist/server.d.ts +6 -4
  70. package/dist/src/code_assist/server.js +16 -8
  71. package/dist/src/code_assist/server.js.map +1 -1
  72. package/dist/src/code_assist/server.test.js +126 -28
  73. package/dist/src/code_assist/server.test.js.map +1 -1
  74. package/dist/src/code_assist/setup.d.ts +2 -2
  75. package/dist/src/code_assist/setup.js +4 -2
  76. package/dist/src/code_assist/setup.js.map +1 -1
  77. package/dist/src/code_assist/types.d.ts +1 -1
  78. package/dist/src/code_assist/types.js.map +1 -1
  79. package/dist/src/commands/extensions.d.ts +7 -0
  80. package/dist/src/commands/extensions.js +9 -0
  81. package/dist/src/commands/extensions.js.map +1 -0
  82. package/dist/src/commands/extensions.test.d.ts +6 -0
  83. package/dist/src/commands/extensions.test.js +19 -0
  84. package/dist/src/commands/extensions.test.js.map +1 -0
  85. package/dist/src/config/config.d.ts +169 -43
  86. package/dist/src/config/config.js +418 -79
  87. package/dist/src/config/config.js.map +1 -1
  88. package/dist/src/config/config.test.js +684 -49
  89. package/dist/src/config/config.test.js.map +1 -1
  90. package/dist/src/config/defaultModelConfigs.d.ts +7 -0
  91. package/dist/src/config/defaultModelConfigs.js +185 -0
  92. package/dist/src/config/defaultModelConfigs.js.map +1 -0
  93. package/dist/src/config/models.d.ts +23 -2
  94. package/dist/src/config/models.js +50 -7
  95. package/dist/src/config/models.js.map +1 -1
  96. package/dist/src/config/models.test.js +71 -10
  97. package/dist/src/config/models.test.js.map +1 -1
  98. package/dist/src/config/storage.d.ts +3 -1
  99. package/dist/src/config/storage.js +22 -2
  100. package/dist/src/config/storage.js.map +1 -1
  101. package/dist/src/config/storage.test.js +7 -6
  102. package/dist/src/config/storage.test.js.map +1 -1
  103. package/dist/src/confirmation-bus/message-bus.d.ts +3 -2
  104. package/dist/src/confirmation-bus/message-bus.js +9 -3
  105. package/dist/src/confirmation-bus/message-bus.js.map +1 -1
  106. package/dist/src/confirmation-bus/message-bus.test.js +30 -24
  107. package/dist/src/confirmation-bus/message-bus.test.js.map +1 -1
  108. package/dist/src/confirmation-bus/types.d.ts +13 -2
  109. package/dist/src/confirmation-bus/types.js +1 -0
  110. package/dist/src/confirmation-bus/types.js.map +1 -1
  111. package/dist/src/core/apiKeyCredentialStorage.d.ts +17 -0
  112. package/dist/src/core/apiKeyCredentialStorage.js +64 -0
  113. package/dist/src/core/apiKeyCredentialStorage.js.map +1 -0
  114. package/dist/src/core/apiKeyCredentialStorage.test.d.ts +6 -0
  115. package/dist/src/core/apiKeyCredentialStorage.test.js +71 -0
  116. package/dist/src/core/apiKeyCredentialStorage.test.js.map +1 -0
  117. package/dist/src/core/baseLlmClient.d.ts +4 -8
  118. package/dist/src/core/baseLlmClient.js +6 -11
  119. package/dist/src/core/baseLlmClient.js.map +1 -1
  120. package/dist/src/core/baseLlmClient.test.js +22 -27
  121. package/dist/src/core/baseLlmClient.test.js.map +1 -1
  122. package/dist/src/core/client.d.ts +12 -19
  123. package/dist/src/core/client.js +104 -206
  124. package/dist/src/core/client.js.map +1 -1
  125. package/dist/src/core/client.test.js +329 -452
  126. package/dist/src/core/client.test.js.map +1 -1
  127. package/dist/src/core/contentGenerator.d.ts +3 -2
  128. package/dist/src/core/contentGenerator.js +56 -41
  129. package/dist/src/core/contentGenerator.js.map +1 -1
  130. package/dist/src/core/contentGenerator.test.js +49 -1
  131. package/dist/src/core/contentGenerator.test.js.map +1 -1
  132. package/dist/src/core/coreToolScheduler.d.ts +8 -4
  133. package/dist/src/core/coreToolScheduler.js +348 -179
  134. package/dist/src/core/coreToolScheduler.js.map +1 -1
  135. package/dist/src/core/coreToolScheduler.test.js +575 -219
  136. package/dist/src/core/coreToolScheduler.test.js.map +1 -1
  137. package/dist/src/core/fakeContentGenerator.d.ts +33 -0
  138. package/dist/src/core/fakeContentGenerator.js +58 -0
  139. package/dist/src/core/fakeContentGenerator.js.map +1 -0
  140. package/dist/src/core/fakeContentGenerator.test.d.ts +6 -0
  141. package/dist/src/core/fakeContentGenerator.test.js +127 -0
  142. package/dist/src/core/fakeContentGenerator.test.js.map +1 -0
  143. package/dist/src/core/geminiChat.d.ts +23 -18
  144. package/dist/src/core/geminiChat.js +186 -108
  145. package/dist/src/core/geminiChat.js.map +1 -1
  146. package/dist/src/core/geminiChat.test.js +581 -270
  147. package/dist/src/core/geminiChat.test.js.map +1 -1
  148. package/dist/src/core/logger.d.ts +7 -2
  149. package/dist/src/core/logger.js +35 -27
  150. package/dist/src/core/logger.js.map +1 -1
  151. package/dist/src/core/logger.test.js +45 -29
  152. package/dist/src/core/logger.test.js.map +1 -1
  153. package/dist/src/core/loggingContentGenerator.d.ts +1 -0
  154. package/dist/src/core/loggingContentGenerator.js +113 -33
  155. package/dist/src/core/loggingContentGenerator.js.map +1 -1
  156. package/dist/src/core/loggingContentGenerator.test.d.ts +6 -0
  157. package/dist/src/core/loggingContentGenerator.test.js +180 -0
  158. package/dist/src/core/loggingContentGenerator.test.js.map +1 -0
  159. package/dist/src/core/nonInteractiveToolExecutor.d.ts +3 -2
  160. package/dist/src/core/nonInteractiveToolExecutor.js +12 -7
  161. package/dist/src/core/nonInteractiveToolExecutor.js.map +1 -1
  162. package/dist/src/core/nonInteractiveToolExecutor.test.js +12 -8
  163. package/dist/src/core/nonInteractiveToolExecutor.test.js.map +1 -1
  164. package/dist/src/core/openaiContentGenerator.js +31 -8
  165. package/dist/src/core/openaiContentGenerator.js.map +1 -1
  166. package/dist/src/core/prompts.d.ts +2 -1
  167. package/dist/src/core/prompts.js +135 -154
  168. package/dist/src/core/prompts.js.map +1 -1
  169. package/dist/src/core/prompts.test.js +128 -189
  170. package/dist/src/core/prompts.test.js.map +1 -1
  171. package/dist/src/core/recordingContentGenerator.d.ts +18 -0
  172. package/dist/src/core/recordingContentGenerator.js +77 -0
  173. package/dist/src/core/recordingContentGenerator.js.map +1 -0
  174. package/dist/src/core/recordingContentGenerator.test.d.ts +6 -0
  175. package/dist/src/core/recordingContentGenerator.test.js +101 -0
  176. package/dist/src/core/recordingContentGenerator.test.js.map +1 -0
  177. package/dist/src/core/tokenLimits.test.d.ts +6 -0
  178. package/dist/src/core/tokenLimits.test.js +26 -0
  179. package/dist/src/core/tokenLimits.test.js.map +1 -0
  180. package/dist/src/core/turn.d.ts +23 -3
  181. package/dist/src/core/turn.js +18 -9
  182. package/dist/src/core/turn.js.map +1 -1
  183. package/dist/src/core/turn.test.js +98 -104
  184. package/dist/src/core/turn.test.js.map +1 -1
  185. package/dist/src/fallback/handler.js +60 -8
  186. package/dist/src/fallback/handler.js.map +1 -1
  187. package/dist/src/fallback/handler.test.js +132 -17
  188. package/dist/src/fallback/handler.test.js.map +1 -1
  189. package/dist/src/fallback/types.d.ts +1 -1
  190. package/dist/src/generated/git-commit.d.ts +2 -2
  191. package/dist/src/generated/git-commit.js +2 -2
  192. package/dist/src/generated/git-commit.js.map +1 -1
  193. package/dist/src/hooks/hookAggregator.d.ts +68 -0
  194. package/dist/src/hooks/hookAggregator.js +262 -0
  195. package/dist/src/hooks/hookAggregator.js.map +1 -0
  196. package/dist/src/hooks/hookAggregator.test.d.ts +6 -0
  197. package/dist/src/hooks/hookAggregator.test.js +387 -0
  198. package/dist/src/hooks/hookAggregator.test.js.map +1 -0
  199. package/dist/src/hooks/hookPlanner.d.ts +46 -0
  200. package/dist/src/hooks/hookPlanner.js +108 -0
  201. package/dist/src/hooks/hookPlanner.js.map +1 -0
  202. package/dist/src/hooks/hookPlanner.test.d.ts +6 -0
  203. package/dist/src/hooks/hookPlanner.test.js +255 -0
  204. package/dist/src/hooks/hookPlanner.test.js.map +1 -0
  205. package/dist/src/hooks/hookRegistry.d.ts +87 -0
  206. package/dist/src/hooks/hookRegistry.js +198 -0
  207. package/dist/src/hooks/hookRegistry.js.map +1 -0
  208. package/dist/src/hooks/hookRegistry.test.d.ts +6 -0
  209. package/dist/src/hooks/hookRegistry.test.js +341 -0
  210. package/dist/src/hooks/hookRegistry.test.js.map +1 -0
  211. package/dist/src/hooks/hookRunner.d.ts +42 -0
  212. package/dist/src/hooks/hookRunner.js +272 -0
  213. package/dist/src/hooks/hookRunner.js.map +1 -0
  214. package/dist/src/hooks/hookRunner.test.d.ts +6 -0
  215. package/dist/src/hooks/hookRunner.test.js +468 -0
  216. package/dist/src/hooks/hookRunner.test.js.map +1 -0
  217. package/dist/src/hooks/hookTranslator.d.ts +113 -0
  218. package/dist/src/hooks/hookTranslator.js +232 -0
  219. package/dist/src/hooks/hookTranslator.js.map +1 -0
  220. package/dist/src/hooks/hookTranslator.test.d.ts +6 -0
  221. package/dist/src/hooks/hookTranslator.test.js +192 -0
  222. package/dist/src/hooks/hookTranslator.test.js.map +1 -0
  223. package/dist/src/hooks/types.d.ts +384 -0
  224. package/dist/src/hooks/types.js +284 -0
  225. package/dist/src/hooks/types.js.map +1 -0
  226. package/dist/src/hooks/types.test.d.ts +6 -0
  227. package/dist/src/hooks/types.test.js +313 -0
  228. package/dist/src/hooks/types.test.js.map +1 -0
  229. package/dist/src/ide/detect-ide.d.ts +4 -0
  230. package/dist/src/ide/detect-ide.js +6 -1
  231. package/dist/src/ide/detect-ide.js.map +1 -1
  232. package/dist/src/ide/detect-ide.test.js +16 -0
  233. package/dist/src/ide/detect-ide.test.js.map +1 -1
  234. package/dist/src/ide/ide-client.d.ts +3 -1
  235. package/dist/src/ide/ide-client.js +12 -10
  236. package/dist/src/ide/ide-client.js.map +1 -1
  237. package/dist/src/ide/ide-client.test.js +163 -4
  238. package/dist/src/ide/ide-client.test.js.map +1 -1
  239. package/dist/src/ide/ide-installer.js +66 -21
  240. package/dist/src/ide/ide-installer.js.map +1 -1
  241. package/dist/src/ide/ide-installer.test.js +54 -1
  242. package/dist/src/ide/ide-installer.test.js.map +1 -1
  243. package/dist/src/ide/process-utils.js +85 -75
  244. package/dist/src/ide/process-utils.js.map +1 -1
  245. package/dist/src/ide/process-utils.test.js +83 -90
  246. package/dist/src/ide/process-utils.test.js.map +1 -1
  247. package/dist/src/ide/types.d.ts +1 -1
  248. package/dist/src/ide/types.js +1 -1
  249. package/dist/src/index.d.ts +21 -0
  250. package/dist/src/index.js +24 -0
  251. package/dist/src/index.js.map +1 -1
  252. package/dist/src/mcp/google-auth-provider.d.ts +2 -0
  253. package/dist/src/mcp/google-auth-provider.js +21 -3
  254. package/dist/src/mcp/google-auth-provider.js.map +1 -1
  255. package/dist/src/mcp/google-auth-provider.test.js +42 -9
  256. package/dist/src/mcp/google-auth-provider.test.js.map +1 -1
  257. package/dist/src/mcp/oauth-provider.d.ts +8 -5
  258. package/dist/src/mcp/oauth-provider.js +140 -55
  259. package/dist/src/mcp/oauth-provider.js.map +1 -1
  260. package/dist/src/mcp/oauth-provider.test.js +369 -2
  261. package/dist/src/mcp/oauth-provider.test.js.map +1 -1
  262. package/dist/src/mcp/oauth-token-storage.js +5 -4
  263. package/dist/src/mcp/oauth-token-storage.js.map +1 -1
  264. package/dist/src/mcp/oauth-token-storage.test.js +17 -11
  265. package/dist/src/mcp/oauth-token-storage.test.js.map +1 -1
  266. package/dist/src/mcp/oauth-utils.d.ts +7 -0
  267. package/dist/src/mcp/oauth-utils.js +28 -8
  268. package/dist/src/mcp/oauth-utils.js.map +1 -1
  269. package/dist/src/mcp/oauth-utils.test.js +45 -2
  270. package/dist/src/mcp/oauth-utils.test.js.map +1 -1
  271. package/dist/src/mcp/sa-impersonation-provider.d.ts +0 -6
  272. package/dist/src/mcp/sa-impersonation-provider.js +6 -23
  273. package/dist/src/mcp/sa-impersonation-provider.js.map +1 -1
  274. package/dist/src/mcp/token-storage/base-token-storage.test.js +75 -84
  275. package/dist/src/mcp/token-storage/base-token-storage.test.js.map +1 -1
  276. package/dist/src/mcp/token-storage/file-token-storage.js +3 -2
  277. package/dist/src/mcp/token-storage/file-token-storage.js.map +1 -1
  278. package/dist/src/mcp/token-storage/file-token-storage.test.js +11 -8
  279. package/dist/src/mcp/token-storage/file-token-storage.test.js.map +1 -1
  280. package/dist/src/mcp/token-storage/keychain-token-storage.d.ts +6 -2
  281. package/dist/src/mcp/token-storage/keychain-token-storage.js +63 -7
  282. package/dist/src/mcp/token-storage/keychain-token-storage.js.map +1 -1
  283. package/dist/src/mcp/token-storage/keychain-token-storage.test.js +54 -3
  284. package/dist/src/mcp/token-storage/keychain-token-storage.test.js.map +1 -1
  285. package/dist/src/mcp/token-storage/types.d.ts +6 -0
  286. package/dist/src/mcp/token-storage/types.js.map +1 -1
  287. package/dist/src/output/stream-json-formatter.d.ts +32 -0
  288. package/dist/src/output/stream-json-formatter.js +52 -0
  289. package/dist/src/output/stream-json-formatter.js.map +1 -0
  290. package/dist/src/output/stream-json-formatter.test.d.ts +6 -0
  291. package/dist/src/output/stream-json-formatter.test.js +479 -0
  292. package/dist/src/output/stream-json-formatter.test.js.map +1 -0
  293. package/dist/src/output/types.d.ts +63 -1
  294. package/dist/src/output/types.js +11 -0
  295. package/dist/src/output/types.js.map +1 -1
  296. package/dist/src/policy/config.d.ts +31 -0
  297. package/dist/src/policy/config.js +199 -0
  298. package/dist/src/policy/config.js.map +1 -0
  299. package/dist/src/policy/config.test.d.ts +6 -0
  300. package/dist/src/policy/config.test.js +538 -0
  301. package/dist/src/policy/config.test.js.map +1 -0
  302. package/dist/src/policy/index.d.ts +2 -0
  303. package/dist/src/policy/index.js +2 -0
  304. package/dist/src/policy/index.js.map +1 -1
  305. package/dist/src/policy/policies/discovered.toml +8 -0
  306. package/dist/src/policy/policies/read-only.toml +56 -0
  307. package/dist/src/policy/policies/write.toml +73 -0
  308. package/dist/src/policy/policies/yolo.toml +31 -0
  309. package/dist/src/policy/policy-engine.d.ts +12 -3
  310. package/dist/src/policy/policy-engine.js +74 -8
  311. package/dist/src/policy/policy-engine.js.map +1 -1
  312. package/dist/src/policy/policy-engine.test.js +460 -76
  313. package/dist/src/policy/policy-engine.test.js.map +1 -1
  314. package/dist/src/policy/toml-loader.d.ts +47 -0
  315. package/dist/src/policy/toml-loader.js +411 -0
  316. package/dist/src/policy/toml-loader.js.map +1 -0
  317. package/dist/src/policy/toml-loader.test.d.ts +6 -0
  318. package/dist/src/policy/toml-loader.test.js +376 -0
  319. package/dist/src/policy/toml-loader.test.js.map +1 -0
  320. package/dist/src/policy/types.d.ts +83 -0
  321. package/dist/src/policy/types.js +10 -0
  322. package/dist/src/policy/types.js.map +1 -1
  323. package/dist/src/prompts/mcp-prompts.test.d.ts +6 -0
  324. package/dist/src/prompts/mcp-prompts.test.js +39 -0
  325. package/dist/src/prompts/mcp-prompts.test.js.map +1 -0
  326. package/dist/src/prompts/prompt-registry.js +2 -1
  327. package/dist/src/prompts/prompt-registry.js.map +1 -1
  328. package/dist/src/prompts/prompt-registry.test.d.ts +6 -0
  329. package/dist/src/prompts/prompt-registry.test.js +96 -0
  330. package/dist/src/prompts/prompt-registry.test.js.map +1 -0
  331. package/dist/src/routing/modelRouterService.js +15 -0
  332. package/dist/src/routing/modelRouterService.js.map +1 -1
  333. package/dist/src/routing/modelRouterService.test.js +62 -0
  334. package/dist/src/routing/modelRouterService.test.js.map +1 -1
  335. package/dist/src/routing/strategies/classifierStrategy.d.ts +1 -1
  336. package/dist/src/routing/strategies/classifierStrategy.js +9 -16
  337. package/dist/src/routing/strategies/classifierStrategy.js.map +1 -1
  338. package/dist/src/routing/strategies/classifierStrategy.test.js +17 -13
  339. package/dist/src/routing/strategies/classifierStrategy.test.js.map +1 -1
  340. package/dist/src/routing/strategies/fallbackStrategy.js +1 -1
  341. package/dist/src/routing/strategies/fallbackStrategy.js.map +1 -1
  342. package/dist/src/routing/strategies/fallbackStrategy.test.js +4 -0
  343. package/dist/src/routing/strategies/fallbackStrategy.test.js.map +1 -1
  344. package/dist/src/routing/strategies/overrideStrategy.js +2 -2
  345. package/dist/src/routing/strategies/overrideStrategy.js.map +1 -1
  346. package/dist/src/routing/strategies/overrideStrategy.test.js +3 -0
  347. package/dist/src/routing/strategies/overrideStrategy.test.js.map +1 -1
  348. package/dist/src/safety/built-in.d.ts +21 -0
  349. package/dist/src/safety/built-in.js +106 -0
  350. package/dist/src/safety/built-in.js.map +1 -0
  351. package/dist/src/safety/built-in.test.d.ts +6 -0
  352. package/dist/src/safety/built-in.test.js +199 -0
  353. package/dist/src/safety/built-in.test.js.map +1 -0
  354. package/dist/src/safety/checker-runner.d.ts +48 -0
  355. package/dist/src/safety/checker-runner.js +208 -0
  356. package/dist/src/safety/checker-runner.js.map +1 -0
  357. package/dist/src/safety/checker-runner.test.d.ts +6 -0
  358. package/dist/src/safety/checker-runner.test.js +238 -0
  359. package/dist/src/safety/checker-runner.test.js.map +1 -0
  360. package/dist/src/safety/context-builder.d.ts +23 -0
  361. package/dist/src/safety/context-builder.js +47 -0
  362. package/dist/src/safety/context-builder.js.map +1 -0
  363. package/dist/src/safety/context-builder.test.d.ts +6 -0
  364. package/dist/src/safety/context-builder.test.js +49 -0
  365. package/dist/src/safety/context-builder.test.js.map +1 -0
  366. package/dist/src/safety/protocol.d.ts +88 -0
  367. package/dist/src/safety/protocol.js +15 -0
  368. package/dist/src/safety/protocol.js.map +1 -0
  369. package/dist/src/safety/registry.d.ts +26 -0
  370. package/dist/src/safety/registry.js +65 -0
  371. package/dist/src/safety/registry.js.map +1 -0
  372. package/dist/src/safety/registry.test.d.ts +6 -0
  373. package/dist/src/safety/registry.test.js +31 -0
  374. package/dist/src/safety/registry.test.js.map +1 -0
  375. package/dist/src/services/chatCompressionService.d.ts +32 -0
  376. package/dist/src/services/chatCompressionService.js +162 -0
  377. package/dist/src/services/chatCompressionService.js.map +1 -0
  378. package/dist/src/services/chatCompressionService.test.d.ts +6 -0
  379. package/dist/src/services/chatCompressionService.test.js +210 -0
  380. package/dist/src/services/chatCompressionService.test.js.map +1 -0
  381. package/dist/src/services/chatRecordingService.d.ts +3 -2
  382. package/dist/src/services/chatRecordingService.js +11 -9
  383. package/dist/src/services/chatRecordingService.js.map +1 -1
  384. package/dist/src/services/fileDiscoveryService.d.ts +2 -14
  385. package/dist/src/services/fileDiscoveryService.js +19 -55
  386. package/dist/src/services/fileDiscoveryService.js.map +1 -1
  387. package/dist/src/services/fileDiscoveryService.test.js +91 -11
  388. package/dist/src/services/fileDiscoveryService.test.js.map +1 -1
  389. package/dist/src/services/loopDetectionService.d.ts +4 -1
  390. package/dist/src/services/loopDetectionService.js +95 -42
  391. package/dist/src/services/loopDetectionService.js.map +1 -1
  392. package/dist/src/services/loopDetectionService.test.js +220 -12
  393. package/dist/src/services/loopDetectionService.test.js.map +1 -1
  394. package/dist/src/services/modelConfig.golden.test.d.ts +6 -0
  395. package/dist/src/services/modelConfig.golden.test.js +42 -0
  396. package/dist/src/services/modelConfig.golden.test.js.map +1 -0
  397. package/dist/src/services/modelConfig.integration.test.d.ts +6 -0
  398. package/dist/src/services/modelConfig.integration.test.js +247 -0
  399. package/dist/src/services/modelConfig.integration.test.js.map +1 -0
  400. package/dist/src/services/modelConfigService.d.ts +48 -0
  401. package/dist/src/services/modelConfigService.js +151 -0
  402. package/dist/src/services/modelConfigService.js.map +1 -0
  403. package/dist/src/services/modelConfigService.test.d.ts +6 -0
  404. package/dist/src/services/modelConfigService.test.js +531 -0
  405. package/dist/src/services/modelConfigService.test.js.map +1 -0
  406. package/dist/src/services/shellExecutionService.d.ts +1 -0
  407. package/dist/src/services/shellExecutionService.js +195 -92
  408. package/dist/src/services/shellExecutionService.js.map +1 -1
  409. package/dist/src/services/shellExecutionService.test.js +137 -14
  410. package/dist/src/services/shellExecutionService.test.js.map +1 -1
  411. package/dist/src/services/test-data/resolved-aliases.golden.json +202 -0
  412. package/dist/src/telemetry/activity-monitor.d.ts +116 -0
  413. package/dist/src/telemetry/activity-monitor.js +209 -0
  414. package/dist/src/telemetry/activity-monitor.js.map +1 -0
  415. package/dist/src/telemetry/activity-monitor.test.d.ts +6 -0
  416. package/dist/src/telemetry/activity-monitor.test.js +251 -0
  417. package/dist/src/telemetry/activity-monitor.test.js.map +1 -0
  418. package/dist/src/telemetry/clearcut-logger/clearcut-logger.d.ts +25 -7
  419. package/dist/src/telemetry/clearcut-logger/clearcut-logger.js +294 -76
  420. package/dist/src/telemetry/clearcut-logger/clearcut-logger.js.map +1 -1
  421. package/dist/src/telemetry/clearcut-logger/clearcut-logger.test.d.ts +1 -0
  422. package/dist/src/telemetry/clearcut-logger/clearcut-logger.test.js +192 -66
  423. package/dist/src/telemetry/clearcut-logger/clearcut-logger.test.js.map +1 -1
  424. package/dist/src/telemetry/clearcut-logger/event-metadata-key.d.ts +25 -3
  425. package/dist/src/telemetry/clearcut-logger/event-metadata-key.js +59 -5
  426. package/dist/src/telemetry/clearcut-logger/event-metadata-key.js.map +1 -1
  427. package/dist/src/telemetry/constants.d.ts +0 -28
  428. package/dist/src/telemetry/constants.js +0 -29
  429. package/dist/src/telemetry/constants.js.map +1 -1
  430. package/dist/src/telemetry/gcp-exporters.js +0 -1
  431. package/dist/src/telemetry/gcp-exporters.js.map +1 -1
  432. package/dist/src/telemetry/gcp-exporters.test.js +1 -1
  433. package/dist/src/telemetry/gcp-exporters.test.js.map +1 -1
  434. package/dist/src/telemetry/index.d.ts +7 -3
  435. package/dist/src/telemetry/index.js +13 -4
  436. package/dist/src/telemetry/index.js.map +1 -1
  437. package/dist/src/telemetry/loggers.d.ts +14 -7
  438. package/dist/src/telemetry/loggers.js +197 -320
  439. package/dist/src/telemetry/loggers.js.map +1 -1
  440. package/dist/src/telemetry/loggers.test.circular.js +0 -1
  441. package/dist/src/telemetry/loggers.test.circular.js.map +1 -1
  442. package/dist/src/telemetry/loggers.test.js +460 -59
  443. package/dist/src/telemetry/loggers.test.js.map +1 -1
  444. package/dist/src/telemetry/memory-monitor.d.ts +149 -0
  445. package/dist/src/telemetry/memory-monitor.js +335 -0
  446. package/dist/src/telemetry/memory-monitor.js.map +1 -0
  447. package/dist/src/telemetry/memory-monitor.test.d.ts +6 -0
  448. package/dist/src/telemetry/memory-monitor.test.js +472 -0
  449. package/dist/src/telemetry/memory-monitor.test.js.map +1 -0
  450. package/dist/src/telemetry/metrics.d.ts +180 -4
  451. package/dist/src/telemetry/metrics.js +270 -6
  452. package/dist/src/telemetry/metrics.js.map +1 -1
  453. package/dist/src/telemetry/metrics.test.js +502 -184
  454. package/dist/src/telemetry/metrics.test.js.map +1 -1
  455. package/dist/src/telemetry/sdk.js +3 -2
  456. package/dist/src/telemetry/sdk.js.map +1 -1
  457. package/dist/src/telemetry/semantic.d.ts +82 -0
  458. package/dist/src/telemetry/semantic.js +269 -0
  459. package/dist/src/telemetry/semantic.js.map +1 -0
  460. package/dist/src/telemetry/semantic.test.d.ts +6 -0
  461. package/dist/src/telemetry/semantic.test.js +387 -0
  462. package/dist/src/telemetry/semantic.test.js.map +1 -0
  463. package/dist/src/telemetry/telemetry-utils.test.js +29 -28
  464. package/dist/src/telemetry/telemetry-utils.test.js.map +1 -1
  465. package/dist/src/telemetry/telemetryAttributes.d.ts +8 -0
  466. package/dist/src/telemetry/telemetryAttributes.js +19 -0
  467. package/dist/src/telemetry/telemetryAttributes.js.map +1 -0
  468. package/dist/src/telemetry/trace.d.ts +46 -0
  469. package/dist/src/telemetry/trace.js +121 -0
  470. package/dist/src/telemetry/trace.js.map +1 -0
  471. package/dist/src/telemetry/types.d.ts +227 -29
  472. package/dist/src/telemetry/types.js +858 -72
  473. package/dist/src/telemetry/types.js.map +1 -1
  474. package/dist/src/telemetry/uiTelemetry.d.ts +1 -1
  475. package/dist/src/telemetry/uiTelemetry.js +7 -7
  476. package/dist/src/telemetry/uiTelemetry.js.map +1 -1
  477. package/dist/src/telemetry/uiTelemetry.test.js +89 -67
  478. package/dist/src/telemetry/uiTelemetry.test.js.map +1 -1
  479. package/dist/src/test-utils/config.d.ts +1 -1
  480. package/dist/src/test-utils/config.js +1 -1
  481. package/dist/src/tools/base-tool-invocation.test.d.ts +6 -0
  482. package/dist/src/tools/base-tool-invocation.test.js +85 -0
  483. package/dist/src/tools/base-tool-invocation.test.js.map +1 -0
  484. package/dist/src/tools/edit.d.ts +4 -3
  485. package/dist/src/tools/edit.js +50 -47
  486. package/dist/src/tools/edit.js.map +1 -1
  487. package/dist/src/tools/edit.test.js +306 -216
  488. package/dist/src/tools/edit.test.js.map +1 -1
  489. package/dist/src/tools/glob.d.ts +4 -3
  490. package/dist/src/tools/glob.js +24 -27
  491. package/dist/src/tools/glob.js.map +1 -1
  492. package/dist/src/tools/glob.test.js +212 -205
  493. package/dist/src/tools/glob.test.js.map +1 -1
  494. package/dist/src/tools/grep.d.ts +4 -3
  495. package/dist/src/tools/grep.js +31 -25
  496. package/dist/src/tools/grep.js.map +1 -1
  497. package/dist/src/tools/grep.test.js +15 -12
  498. package/dist/src/tools/grep.test.js.map +1 -1
  499. package/dist/src/tools/ls.d.ts +4 -3
  500. package/dist/src/tools/ls.js +29 -35
  501. package/dist/src/tools/ls.js.map +1 -1
  502. package/dist/src/tools/ls.test.js +34 -42
  503. package/dist/src/tools/ls.test.js.map +1 -1
  504. package/dist/src/tools/mcp-client-manager.d.ts +49 -11
  505. package/dist/src/tools/mcp-client-manager.js +191 -31
  506. package/dist/src/tools/mcp-client-manager.js.map +1 -1
  507. package/dist/src/tools/mcp-client-manager.test.js +132 -25
  508. package/dist/src/tools/mcp-client-manager.test.js.map +1 -1
  509. package/dist/src/tools/mcp-client.d.ts +12 -5
  510. package/dist/src/tools/mcp-client.js +287 -267
  511. package/dist/src/tools/mcp-client.js.map +1 -1
  512. package/dist/src/tools/mcp-client.test.js +352 -45
  513. package/dist/src/tools/mcp-client.test.js.map +1 -1
  514. package/dist/src/tools/mcp-tool.d.ts +6 -2
  515. package/dist/src/tools/mcp-tool.js +19 -8
  516. package/dist/src/tools/mcp-tool.js.map +1 -1
  517. package/dist/src/tools/mcp-tool.test.js +186 -273
  518. package/dist/src/tools/mcp-tool.test.js.map +1 -1
  519. package/dist/src/tools/memoryTool.d.ts +7 -5
  520. package/dist/src/tools/memoryTool.js +14 -12
  521. package/dist/src/tools/memoryTool.js.map +1 -1
  522. package/dist/src/tools/memoryTool.test.js +10 -9
  523. package/dist/src/tools/memoryTool.test.js.map +1 -1
  524. package/dist/src/tools/message-bus-integration.test.js +14 -1
  525. package/dist/src/tools/message-bus-integration.test.js.map +1 -1
  526. package/dist/src/tools/modifiable-tool.d.ts +5 -1
  527. package/dist/src/tools/modifiable-tool.js +38 -16
  528. package/dist/src/tools/modifiable-tool.js.map +1 -1
  529. package/dist/src/tools/modifiable-tool.test.js +66 -31
  530. package/dist/src/tools/modifiable-tool.test.js.map +1 -1
  531. package/dist/src/tools/read-file.d.ts +6 -5
  532. package/dist/src/tools/read-file.js +26 -32
  533. package/dist/src/tools/read-file.js.map +1 -1
  534. package/dist/src/tools/read-file.test.js +68 -33
  535. package/dist/src/tools/read-file.test.js.map +1 -1
  536. package/dist/src/tools/read-many-files.d.ts +6 -12
  537. package/dist/src/tools/read-many-files.js +28 -57
  538. package/dist/src/tools/read-many-files.js.map +1 -1
  539. package/dist/src/tools/read-many-files.test.js +37 -36
  540. package/dist/src/tools/read-many-files.test.js.map +1 -1
  541. package/dist/src/tools/ripGrep.d.ts +28 -10
  542. package/dist/src/tools/ripGrep.js +195 -193
  543. package/dist/src/tools/ripGrep.js.map +1 -1
  544. package/dist/src/tools/ripGrep.test.js +533 -204
  545. package/dist/src/tools/ripGrep.test.js.map +1 -1
  546. package/dist/src/tools/shell.d.ts +8 -6
  547. package/dist/src/tools/shell.js +64 -38
  548. package/dist/src/tools/shell.js.map +1 -1
  549. package/dist/src/tools/shell.test.js +134 -43
  550. package/dist/src/tools/shell.test.js.map +1 -1
  551. package/dist/src/tools/smart-edit.d.ts +10 -23
  552. package/dist/src/tools/smart-edit.js +100 -85
  553. package/dist/src/tools/smart-edit.js.map +1 -1
  554. package/dist/src/tools/smart-edit.test.js +229 -179
  555. package/dist/src/tools/smart-edit.test.js.map +1 -1
  556. package/dist/src/tools/tool-error.d.ts +21 -0
  557. package/dist/src/tools/tool-error.js +27 -0
  558. package/dist/src/tools/tool-error.js.map +1 -1
  559. package/dist/src/tools/tool-names.d.ts +17 -0
  560. package/dist/src/tools/tool-names.js +21 -0
  561. package/dist/src/tools/tool-names.js.map +1 -0
  562. package/dist/src/tools/tool-registry.d.ts +32 -20
  563. package/dist/src/tools/tool-registry.js +122 -78
  564. package/dist/src/tools/tool-registry.js.map +1 -1
  565. package/dist/src/tools/tool-registry.test.js +167 -90
  566. package/dist/src/tools/tool-registry.test.js.map +1 -1
  567. package/dist/src/tools/tools.d.ts +23 -8
  568. package/dist/src/tools/tools.js +69 -37
  569. package/dist/src/tools/tools.js.map +1 -1
  570. package/dist/src/tools/web-fetch.d.ts +11 -3
  571. package/dist/src/tools/web-fetch.js +80 -38
  572. package/dist/src/tools/web-fetch.js.map +1 -1
  573. package/dist/src/tools/web-fetch.test.js +338 -9
  574. package/dist/src/tools/web-fetch.test.js.map +1 -1
  575. package/dist/src/tools/web-search.d.ts +4 -3
  576. package/dist/src/tools/web-search.js +11 -9
  577. package/dist/src/tools/web-search.js.map +1 -1
  578. package/dist/src/tools/web-search.test.js +6 -0
  579. package/dist/src/tools/web-search.test.js.map +1 -1
  580. package/dist/src/tools/write-file.d.ts +3 -2
  581. package/dist/src/tools/write-file.js +41 -40
  582. package/dist/src/tools/write-file.js.map +1 -1
  583. package/dist/src/tools/write-file.test.js +130 -123
  584. package/dist/src/tools/write-file.test.js.map +1 -1
  585. package/dist/src/tools/write-todos.d.ts +34 -9
  586. package/dist/src/tools/write-todos.js +54 -11
  587. package/dist/src/tools/write-todos.js.map +1 -1
  588. package/dist/src/tools/write-todos.test.js +2 -2
  589. package/dist/src/tools/write-todos.test.js.map +1 -1
  590. package/dist/src/utils/bfsFileSearch.js +3 -2
  591. package/dist/src/utils/bfsFileSearch.js.map +1 -1
  592. package/dist/src/utils/channel.d.ts +19 -0
  593. package/dist/src/utils/channel.js +49 -0
  594. package/dist/src/utils/channel.js.map +1 -0
  595. package/dist/src/utils/channel.test.d.ts +6 -0
  596. package/dist/src/utils/channel.test.js +170 -0
  597. package/dist/src/utils/channel.test.js.map +1 -0
  598. package/dist/src/utils/debugLogger.d.ts +25 -0
  599. package/dist/src/utils/debugLogger.js +33 -0
  600. package/dist/src/utils/debugLogger.js.map +1 -0
  601. package/dist/src/utils/debugLogger.test.d.ts +6 -0
  602. package/dist/src/utils/debugLogger.test.js +69 -0
  603. package/dist/src/utils/debugLogger.test.js.map +1 -0
  604. package/dist/src/utils/delay.d.ts +16 -0
  605. package/dist/src/utils/delay.js +43 -0
  606. package/dist/src/utils/delay.js.map +1 -0
  607. package/dist/src/utils/delay.test.d.ts +6 -0
  608. package/dist/src/utils/delay.test.js +88 -0
  609. package/dist/src/utils/delay.test.js.map +1 -0
  610. package/dist/src/utils/editCorrector.js +10 -25
  611. package/dist/src/utils/editCorrector.js.map +1 -1
  612. package/dist/src/utils/editCorrector.test.js +19 -5
  613. package/dist/src/utils/editCorrector.test.js.map +1 -1
  614. package/dist/src/utils/editor.d.ts +4 -2
  615. package/dist/src/utils/editor.js +53 -39
  616. package/dist/src/utils/editor.js.map +1 -1
  617. package/dist/src/utils/editor.test.js +18 -45
  618. package/dist/src/utils/editor.test.js.map +1 -1
  619. package/dist/src/utils/environmentContext.d.ts +2 -1
  620. package/dist/src/utils/environmentContext.js +20 -33
  621. package/dist/src/utils/environmentContext.js.map +1 -1
  622. package/dist/src/utils/environmentContext.test.js +6 -34
  623. package/dist/src/utils/environmentContext.test.js.map +1 -1
  624. package/dist/src/utils/errorParsing.d.ts +1 -1
  625. package/dist/src/utils/errorParsing.js +5 -33
  626. package/dist/src/utils/errorParsing.js.map +1 -1
  627. package/dist/src/utils/errorParsing.test.js +0 -88
  628. package/dist/src/utils/errorParsing.test.js.map +1 -1
  629. package/dist/src/utils/errors.d.ts +3 -0
  630. package/dist/src/utils/errors.js +6 -0
  631. package/dist/src/utils/errors.js.map +1 -1
  632. package/dist/src/utils/events.d.ts +121 -0
  633. package/dist/src/utils/events.js +84 -0
  634. package/dist/src/utils/events.js.map +1 -0
  635. package/dist/src/utils/events.test.d.ts +6 -0
  636. package/dist/src/utils/events.test.js +212 -0
  637. package/dist/src/utils/events.test.js.map +1 -0
  638. package/dist/src/utils/extensionLoader.d.ts +86 -0
  639. package/dist/src/utils/extensionLoader.js +208 -0
  640. package/dist/src/utils/extensionLoader.js.map +1 -0
  641. package/dist/src/utils/extensionLoader.test.d.ts +6 -0
  642. package/dist/src/utils/extensionLoader.test.js +154 -0
  643. package/dist/src/utils/extensionLoader.test.js.map +1 -0
  644. package/dist/src/utils/fetch.d.ts +1 -0
  645. package/dist/src/utils/fetch.js +4 -0
  646. package/dist/src/utils/fetch.js.map +1 -1
  647. package/dist/src/utils/fileUtils.d.ts +4 -0
  648. package/dist/src/utils/fileUtils.js +34 -2
  649. package/dist/src/utils/fileUtils.js.map +1 -1
  650. package/dist/src/utils/fileUtils.test.js +87 -61
  651. package/dist/src/utils/fileUtils.test.js.map +1 -1
  652. package/dist/src/utils/filesearch/fileSearch.js +1 -1
  653. package/dist/src/utils/filesearch/fileSearch.js.map +1 -1
  654. package/dist/src/utils/flashFallback.test.js +28 -47
  655. package/dist/src/utils/flashFallback.test.js.map +1 -1
  656. package/dist/src/utils/formatters.d.ts +1 -0
  657. package/dist/src/utils/formatters.js +2 -1
  658. package/dist/src/utils/formatters.js.map +1 -1
  659. package/dist/src/utils/formatters.test.d.ts +6 -0
  660. package/dist/src/utils/formatters.test.js +26 -0
  661. package/dist/src/utils/formatters.test.js.map +1 -0
  662. package/dist/src/utils/getFolderStructure.js +9 -17
  663. package/dist/src/utils/getFolderStructure.js.map +1 -1
  664. package/dist/src/utils/getFolderStructure.test.js +7 -6
  665. package/dist/src/utils/getFolderStructure.test.js.map +1 -1
  666. package/dist/src/utils/gitIgnoreParser.d.ts +4 -1
  667. package/dist/src/utils/gitIgnoreParser.js +28 -10
  668. package/dist/src/utils/gitIgnoreParser.js.map +1 -1
  669. package/dist/src/utils/gitIgnoreParser.test.js +58 -0
  670. package/dist/src/utils/gitIgnoreParser.test.js.map +1 -1
  671. package/dist/src/utils/googleErrors.d.ts +104 -0
  672. package/dist/src/utils/googleErrors.js +152 -0
  673. package/dist/src/utils/googleErrors.js.map +1 -0
  674. package/dist/src/utils/googleErrors.test.d.ts +6 -0
  675. package/dist/src/utils/googleErrors.test.js +301 -0
  676. package/dist/src/utils/googleErrors.test.js.map +1 -0
  677. package/dist/src/utils/googleQuotaErrors.d.ts +37 -0
  678. package/dist/src/utils/googleQuotaErrors.js +157 -0
  679. package/dist/src/utils/googleQuotaErrors.js.map +1 -0
  680. package/dist/src/utils/googleQuotaErrors.test.d.ts +6 -0
  681. package/dist/src/utils/googleQuotaErrors.test.js +311 -0
  682. package/dist/src/utils/googleQuotaErrors.test.js.map +1 -0
  683. package/dist/src/utils/httpErrors.d.ts +18 -0
  684. package/dist/src/utils/httpErrors.js +36 -0
  685. package/dist/src/utils/httpErrors.js.map +1 -0
  686. package/dist/src/utils/ignorePatterns.test.js +26 -30
  687. package/dist/src/utils/ignorePatterns.test.js.map +1 -1
  688. package/dist/src/utils/installationManager.js +2 -1
  689. package/dist/src/utils/installationManager.js.map +1 -1
  690. package/dist/src/utils/installationManager.test.js +6 -4
  691. package/dist/src/utils/installationManager.test.js.map +1 -1
  692. package/dist/src/utils/llm-edit-fixer.d.ts +1 -1
  693. package/dist/src/utils/llm-edit-fixer.js +33 -9
  694. package/dist/src/utils/llm-edit-fixer.js.map +1 -1
  695. package/dist/src/utils/llm-edit-fixer.test.js +38 -1
  696. package/dist/src/utils/llm-edit-fixer.test.js.map +1 -1
  697. package/dist/src/utils/memoryDiscovery.d.ts +20 -1
  698. package/dist/src/utils/memoryDiscovery.js +176 -12
  699. package/dist/src/utils/memoryDiscovery.js.map +1 -1
  700. package/dist/src/utils/memoryDiscovery.test.js +299 -40
  701. package/dist/src/utils/memoryDiscovery.test.js.map +1 -1
  702. package/dist/src/utils/memoryImportProcessor.js +4 -3
  703. package/dist/src/utils/memoryImportProcessor.js.map +1 -1
  704. package/dist/src/utils/memoryImportProcessor.test.js +8 -14
  705. package/dist/src/utils/memoryImportProcessor.test.js.map +1 -1
  706. package/dist/src/utils/nextSpeakerChecker.js +3 -3
  707. package/dist/src/utils/nextSpeakerChecker.js.map +1 -1
  708. package/dist/src/utils/nextSpeakerChecker.test.js +13 -5
  709. package/dist/src/utils/nextSpeakerChecker.test.js.map +1 -1
  710. package/dist/src/utils/package.d.ts +12 -0
  711. package/dist/src/utils/package.js +15 -0
  712. package/dist/src/utils/package.js.map +1 -0
  713. package/dist/src/utils/pathCorrector.d.ts +25 -0
  714. package/dist/src/utils/pathCorrector.js +33 -0
  715. package/dist/src/utils/pathCorrector.js.map +1 -0
  716. package/dist/src/utils/pathCorrector.test.d.ts +6 -0
  717. package/dist/src/utils/pathCorrector.test.js +83 -0
  718. package/dist/src/utils/pathCorrector.test.js.map +1 -0
  719. package/dist/src/utils/pathReader.js +4 -4
  720. package/dist/src/utils/pathReader.js.map +1 -1
  721. package/dist/src/utils/pathReader.test.js +44 -1
  722. package/dist/src/utils/pathReader.test.js.map +1 -1
  723. package/dist/src/utils/paths.d.ts +1 -1
  724. package/dist/src/utils/paths.js +131 -29
  725. package/dist/src/utils/paths.js.map +1 -1
  726. package/dist/src/utils/paths.test.js +200 -68
  727. package/dist/src/utils/paths.test.js.map +1 -1
  728. package/dist/src/utils/quotaErrorDetection.d.ts +0 -2
  729. package/dist/src/utils/quotaErrorDetection.js +0 -46
  730. package/dist/src/utils/quotaErrorDetection.js.map +1 -1
  731. package/dist/src/utils/retry.d.ts +3 -10
  732. package/dist/src/utils/retry.js +97 -195
  733. package/dist/src/utils/retry.js.map +1 -1
  734. package/dist/src/utils/retry.test.js +179 -145
  735. package/dist/src/utils/retry.test.js.map +1 -1
  736. package/dist/src/utils/safeJsonStringify.d.ts +4 -4
  737. package/dist/src/utils/safeJsonStringify.js +31 -7
  738. package/dist/src/utils/safeJsonStringify.js.map +1 -1
  739. package/dist/src/utils/shell-utils.d.ts +15 -2
  740. package/dist/src/utils/shell-utils.js +387 -140
  741. package/dist/src/utils/shell-utils.js.map +1 -1
  742. package/dist/src/utils/shell-utils.test.js +244 -62
  743. package/dist/src/utils/shell-utils.test.js.map +1 -1
  744. package/dist/src/utils/stdio.d.ts +32 -0
  745. package/dist/src/utils/stdio.js +85 -0
  746. package/dist/src/utils/stdio.js.map +1 -0
  747. package/dist/src/utils/stdio.test.d.ts +6 -0
  748. package/dist/src/utils/stdio.test.js +47 -0
  749. package/dist/src/utils/stdio.test.js.map +1 -0
  750. package/dist/src/utils/summarizer.d.ts +4 -2
  751. package/dist/src/utils/summarizer.js +8 -9
  752. package/dist/src/utils/summarizer.js.map +1 -1
  753. package/dist/src/utils/summarizer.test.js +32 -12
  754. package/dist/src/utils/summarizer.test.js.map +1 -1
  755. package/dist/src/utils/systemEncoding.js +5 -4
  756. package/dist/src/utils/systemEncoding.js.map +1 -1
  757. package/dist/src/utils/systemEncoding.test.js +2 -1
  758. package/dist/src/utils/systemEncoding.test.js.map +1 -1
  759. package/dist/src/utils/terminal.d.ts +14 -0
  760. package/dist/src/utils/terminal.js +38 -0
  761. package/dist/src/utils/terminal.js.map +1 -0
  762. package/dist/src/utils/tool-utils.d.ts +2 -2
  763. package/dist/src/utils/tool-utils.js +15 -6
  764. package/dist/src/utils/tool-utils.js.map +1 -1
  765. package/dist/src/utils/tool-utils.test.js +8 -0
  766. package/dist/src/utils/tool-utils.test.js.map +1 -1
  767. package/dist/src/utils/userAccountManager.js +5 -4
  768. package/dist/src/utils/userAccountManager.js.map +1 -1
  769. package/dist/src/utils/userAccountManager.test.js +9 -7
  770. package/dist/src/utils/userAccountManager.test.js.map +1 -1
  771. package/dist/src/utils/workspaceContext.d.ts +4 -3
  772. package/dist/src/utils/workspaceContext.js +13 -13
  773. package/dist/src/utils/workspaceContext.js.map +1 -1
  774. package/dist/src/utils/workspaceContext.test.js +8 -7
  775. package/dist/src/utils/workspaceContext.test.js.map +1 -1
  776. package/dist/tsconfig.tsbuildinfo +1 -1
  777. package/package.json +12 -7
@@ -5,13 +5,15 @@
5
5
  */
6
6
  import type { Attributes, Meter, Counter, Histogram } from '@opentelemetry/api';
7
7
  import { ValueType } from '@opentelemetry/api';
8
- import { EVENT_CHAT_COMPRESSION } from './constants.js';
9
8
  import type { Config } from '../config/config.js';
10
- import type { ModelRoutingEvent, ModelSlashCommandEvent } from './types.js';
9
+ import type { ModelRoutingEvent, ModelSlashCommandEvent, AgentFinishEvent, RecoveryAttemptEvent } from './types.js';
10
+ declare const EVENT_CHAT_COMPRESSION = "gemini_cli.chat_compression";
11
11
  declare const TOOL_CALL_COUNT = "gemini_cli.tool.call.count";
12
12
  declare const API_REQUEST_COUNT = "gemini_cli.api.request.count";
13
13
  declare const TOKEN_USAGE = "gemini_cli.token.usage";
14
14
  declare const FILE_OPERATION_COUNT = "gemini_cli.file.operation.count";
15
+ declare const GEN_AI_CLIENT_TOKEN_USAGE = "gen_ai.client.token.usage";
16
+ declare const GEN_AI_CLIENT_OPERATION_DURATION = "gen_ai.client.operation.duration";
15
17
  declare const STARTUP_TIME = "gemini_cli.startup.duration";
16
18
  declare const MEMORY_USAGE = "gemini_cli.memory.usage";
17
19
  declare const CPU_USAGE = "gemini_cli.cpu.usage";
@@ -70,6 +72,15 @@ declare const COUNTER_DEFINITIONS: {
70
72
  programming_language?: string;
71
73
  };
72
74
  };
75
+ readonly "gemini_cli.lines.changed": {
76
+ readonly description: "Number of lines changed (from file diffs).";
77
+ readonly valueType: ValueType.INT;
78
+ readonly assign: (c: Counter) => Counter<Attributes>;
79
+ readonly attributes: {
80
+ function_name?: string;
81
+ type: "added" | "removed";
82
+ };
83
+ };
73
84
  readonly "gemini_cli.chat.invalid_chunk.count": {
74
85
  readonly description: "Counts invalid chunks received from a stream.";
75
86
  readonly valueType: ValueType.INT;
@@ -114,6 +125,37 @@ declare const COUNTER_DEFINITIONS: {
114
125
  tokens_after: number;
115
126
  };
116
127
  };
128
+ readonly "gemini_cli.agent.run.count": {
129
+ readonly description: "Counts agent runs, tagged by name and termination reason.";
130
+ readonly valueType: ValueType.INT;
131
+ readonly assign: (c: Counter) => Counter<Attributes>;
132
+ readonly attributes: {
133
+ agent_name: string;
134
+ terminate_reason: string;
135
+ };
136
+ };
137
+ readonly "gemini_cli.agent.recovery_attempt.count": {
138
+ readonly description: "Counts agent recovery attempts.";
139
+ readonly valueType: ValueType.INT;
140
+ readonly assign: (c: Counter) => Counter<Attributes>;
141
+ readonly attributes: {
142
+ agent_name: string;
143
+ reason: string;
144
+ success: boolean;
145
+ };
146
+ };
147
+ readonly "gemini_cli.ui.flicker.count": {
148
+ readonly description: "Counts UI frames that flicker (render taller than the terminal).";
149
+ readonly valueType: ValueType.INT;
150
+ readonly assign: (c: Counter) => Counter<Attributes>;
151
+ readonly attributes: Record<string, never>;
152
+ };
153
+ readonly "gemini_cli.exit.fail.count": {
154
+ readonly description: "Counts CLI exit failures.";
155
+ readonly valueType: ValueType.INT;
156
+ readonly assign: (c: Counter) => Counter<Attributes>;
157
+ readonly attributes: Record<string, never>;
158
+ };
117
159
  };
118
160
  declare const HISTOGRAM_DEFINITIONS: {
119
161
  readonly "gemini_cli.tool.call.latency": {
@@ -144,6 +186,70 @@ declare const HISTOGRAM_DEFINITIONS: {
144
186
  "routing.decision_source": string;
145
187
  };
146
188
  };
189
+ readonly "gemini_cli.agent.duration": {
190
+ readonly description: "Duration of agent runs in milliseconds.";
191
+ readonly unit: "ms";
192
+ readonly valueType: ValueType.INT;
193
+ readonly assign: (h: Histogram) => Histogram<Attributes>;
194
+ readonly attributes: {
195
+ agent_name: string;
196
+ };
197
+ };
198
+ readonly "gemini_cli.ui.slow_render.latency": {
199
+ readonly description: "Counts UI frames that take too long to render.";
200
+ readonly unit: "ms";
201
+ readonly valueType: ValueType.INT;
202
+ readonly assign: (h: Histogram) => Histogram<Attributes>;
203
+ readonly attributes: Record<string, never>;
204
+ };
205
+ readonly "gemini_cli.agent.turns": {
206
+ readonly description: "Number of turns taken by agents.";
207
+ readonly unit: "turns";
208
+ readonly valueType: ValueType.INT;
209
+ readonly assign: (h: Histogram) => Histogram<Attributes>;
210
+ readonly attributes: {
211
+ agent_name: string;
212
+ };
213
+ };
214
+ readonly "gemini_cli.agent.recovery_attempt.duration": {
215
+ readonly description: "Duration of agent recovery attempts in milliseconds.";
216
+ readonly unit: "ms";
217
+ readonly valueType: ValueType.INT;
218
+ readonly assign: (h: Histogram) => Histogram<Attributes>;
219
+ readonly attributes: {
220
+ agent_name: string;
221
+ };
222
+ };
223
+ readonly "gen_ai.client.token.usage": {
224
+ readonly description: "Number of input and output tokens used.";
225
+ readonly unit: "token";
226
+ readonly valueType: ValueType.INT;
227
+ readonly assign: (h: Histogram) => Histogram<Attributes>;
228
+ readonly attributes: {
229
+ "gen_ai.operation.name": string;
230
+ "gen_ai.provider.name": string;
231
+ "gen_ai.token.type": "input" | "output";
232
+ "gen_ai.request.model"?: string;
233
+ "gen_ai.response.model"?: string;
234
+ "server.address"?: string;
235
+ "server.port"?: number;
236
+ };
237
+ };
238
+ readonly "gen_ai.client.operation.duration": {
239
+ readonly description: "GenAI operation duration.";
240
+ readonly unit: "s";
241
+ readonly valueType: ValueType.DOUBLE;
242
+ readonly assign: (h: Histogram) => Histogram<Attributes>;
243
+ readonly attributes: {
244
+ "gen_ai.operation.name": string;
245
+ "gen_ai.provider.name": string;
246
+ "gen_ai.request.model"?: string;
247
+ "gen_ai.response.model"?: string;
248
+ "server.address"?: string;
249
+ "server.port"?: number;
250
+ "error.type"?: string;
251
+ };
252
+ };
147
253
  };
148
254
  declare const PERFORMANCE_COUNTER_DEFINITIONS: {
149
255
  readonly "gemini_cli.performance.regression": {
@@ -298,14 +404,40 @@ export declare enum ApiRequestPhase {
298
404
  RESPONSE_PROCESSING = "response_processing",
299
405
  TOKEN_PROCESSING = "token_processing"
300
406
  }
407
+ export declare enum GenAiOperationName {
408
+ GENERATE_CONTENT = "generate_content"
409
+ }
410
+ export declare enum GenAiProviderName {
411
+ GCP_GEN_AI = "gcp.gen_ai",
412
+ GCP_VERTEX_AI = "gcp.vertex_ai"
413
+ }
414
+ export declare enum GenAiTokenType {
415
+ INPUT = "input",
416
+ OUTPUT = "output"
417
+ }
301
418
  export declare function getMeter(): Meter | undefined;
302
419
  export declare function initializeMetrics(config: Config): void;
303
420
  export declare function recordChatCompressionMetrics(config: Config, attributes: MetricDefinitions[typeof EVENT_CHAT_COMPRESSION]['attributes']): void;
304
421
  export declare function recordToolCallMetrics(config: Config, durationMs: number, attributes: MetricDefinitions[typeof TOOL_CALL_COUNT]['attributes']): void;
305
- export declare function recordTokenUsageMetrics(config: Config, tokenCount: number, attributes: MetricDefinitions[typeof TOKEN_USAGE]['attributes']): void;
306
- export declare function recordApiResponseMetrics(config: Config, durationMs: number, attributes: MetricDefinitions[typeof API_REQUEST_COUNT]['attributes']): void;
422
+ export declare function recordCustomTokenUsageMetrics(config: Config, tokenCount: number, attributes: MetricDefinitions[typeof TOKEN_USAGE]['attributes']): void;
423
+ export declare function recordCustomApiResponseMetrics(config: Config, durationMs: number, attributes: MetricDefinitions[typeof API_REQUEST_COUNT]['attributes']): void;
307
424
  export declare function recordApiErrorMetrics(config: Config, durationMs: number, attributes: MetricDefinitions[typeof API_REQUEST_COUNT]['attributes']): void;
308
425
  export declare function recordFileOperationMetric(config: Config, attributes: MetricDefinitions[typeof FILE_OPERATION_COUNT]['attributes']): void;
426
+ export declare function recordLinesChanged(config: Config, lines: number, changeType: 'added' | 'removed', attributes?: {
427
+ function_name?: string;
428
+ }): void;
429
+ /**
430
+ * Records a metric for when a UI frame flickers.
431
+ */
432
+ export declare function recordFlickerFrame(config: Config): void;
433
+ /**
434
+ * Records a metric for when user failed to exit
435
+ */
436
+ export declare function recordExitFail(config: Config): void;
437
+ /**
438
+ * Records a metric for when a UI frame is slow in rendering
439
+ */
440
+ export declare function recordSlowRender(config: Config, renderLatency: number): void;
309
441
  /**
310
442
  * Records a metric for when an invalid chunk is received from a stream.
311
443
  */
@@ -320,6 +452,19 @@ export declare function recordContentRetry(config: Config): void;
320
452
  export declare function recordContentRetryFailure(config: Config): void;
321
453
  export declare function recordModelSlashCommand(config: Config, event: ModelSlashCommandEvent): void;
322
454
  export declare function recordModelRoutingMetrics(config: Config, event: ModelRoutingEvent): void;
455
+ export declare function recordAgentRunMetrics(config: Config, event: AgentFinishEvent): void;
456
+ export declare function recordRecoveryAttemptMetrics(config: Config, event: RecoveryAttemptEvent): void;
457
+ export declare function recordGenAiClientTokenUsage(config: Config, tokenCount: number, attributes: MetricDefinitions[typeof GEN_AI_CLIENT_TOKEN_USAGE]['attributes']): void;
458
+ export declare function recordGenAiClientOperationDuration(config: Config, durationSeconds: number, attributes: MetricDefinitions[typeof GEN_AI_CLIENT_OPERATION_DURATION]['attributes']): void;
459
+ export declare function getConventionAttributes(event: {
460
+ model: string;
461
+ auth_type?: string;
462
+ }): {
463
+ 'gen_ai.operation.name': GenAiOperationName;
464
+ 'gen_ai.provider.name': GenAiProviderName;
465
+ 'gen_ai.request.model': string;
466
+ 'gen_ai.response.model': string;
467
+ };
323
468
  export declare function initializePerformanceMonitoring(config: Config): void;
324
469
  export declare function recordStartupPerformance(config: Config, durationMs: number, attributes: MetricDefinitions[typeof STARTUP_TIME]['attributes']): void;
325
470
  export declare function recordMemoryUsage(config: Config, bytes: number, attributes: MetricDefinitions[typeof MEMORY_USAGE]['attributes']): void;
@@ -332,4 +477,35 @@ export declare function recordPerformanceScore(config: Config, score: number, at
332
477
  export declare function recordPerformanceRegression(config: Config, attributes: MetricDefinitions[typeof REGRESSION_DETECTION]['attributes']): void;
333
478
  export declare function recordBaselineComparison(config: Config, attributes: MetricDefinitions[typeof BASELINE_COMPARISON]['attributes']): void;
334
479
  export declare function isPerformanceMonitoringActive(): boolean;
480
+ /**
481
+ * Token usage recording that emits both custom and convention metrics.
482
+ */
483
+ export declare function recordTokenUsageMetrics(config: Config, tokenCount: number, attributes: {
484
+ model: string;
485
+ type: 'input' | 'output' | 'thought' | 'cache' | 'tool';
486
+ genAiAttributes?: {
487
+ 'gen_ai.operation.name': string;
488
+ 'gen_ai.provider.name': string;
489
+ 'gen_ai.request.model'?: string;
490
+ 'gen_ai.response.model'?: string;
491
+ 'server.address'?: string;
492
+ 'server.port'?: number;
493
+ };
494
+ }): void;
495
+ /**
496
+ * Operation latency recording that emits both custom and convention metrics.
497
+ */
498
+ export declare function recordApiResponseMetrics(config: Config, durationMs: number, attributes: {
499
+ model: string;
500
+ status_code?: number | string;
501
+ genAiAttributes?: {
502
+ 'gen_ai.operation.name': string;
503
+ 'gen_ai.provider.name': string;
504
+ 'gen_ai.request.model'?: string;
505
+ 'gen_ai.response.model'?: string;
506
+ 'server.address'?: string;
507
+ 'server.port'?: number;
508
+ 'error.type'?: string;
509
+ };
510
+ }): void;
335
511
  export {};
@@ -4,7 +4,10 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
  import { diag, metrics, ValueType } from '@opentelemetry/api';
7
- import { SERVICE_NAME, EVENT_CHAT_COMPRESSION } from './constants.js';
7
+ import { SERVICE_NAME } from './constants.js';
8
+ import { AuthType } from '../core/contentGenerator.js';
9
+ import { getCommonAttributes } from './telemetryAttributes.js';
10
+ const EVENT_CHAT_COMPRESSION = 'gemini_cli.chat_compression';
8
11
  const TOOL_CALL_COUNT = 'gemini_cli.tool.call.count';
9
12
  const TOOL_CALL_LATENCY = 'gemini_cli.tool.call.latency';
10
13
  const API_REQUEST_COUNT = 'gemini_cli.api.request.count';
@@ -12,12 +15,22 @@ const API_REQUEST_LATENCY = 'gemini_cli.api.request.latency';
12
15
  const TOKEN_USAGE = 'gemini_cli.token.usage';
13
16
  const SESSION_COUNT = 'gemini_cli.session.count';
14
17
  const FILE_OPERATION_COUNT = 'gemini_cli.file.operation.count';
18
+ const LINES_CHANGED = 'gemini_cli.lines.changed';
15
19
  const INVALID_CHUNK_COUNT = 'gemini_cli.chat.invalid_chunk.count';
16
20
  const CONTENT_RETRY_COUNT = 'gemini_cli.chat.content_retry.count';
17
21
  const CONTENT_RETRY_FAILURE_COUNT = 'gemini_cli.chat.content_retry_failure.count';
18
22
  const MODEL_ROUTING_LATENCY = 'gemini_cli.model_routing.latency';
19
23
  const MODEL_ROUTING_FAILURE_COUNT = 'gemini_cli.model_routing.failure.count';
20
24
  const MODEL_SLASH_COMMAND_CALL_COUNT = 'gemini_cli.slash_command.model.call_count';
25
+ // Agent Metrics
26
+ const AGENT_RUN_COUNT = 'gemini_cli.agent.run.count';
27
+ const AGENT_DURATION_MS = 'gemini_cli.agent.duration';
28
+ const AGENT_TURNS = 'gemini_cli.agent.turns';
29
+ const AGENT_RECOVERY_ATTEMPT_COUNT = 'gemini_cli.agent.recovery_attempt.count';
30
+ const AGENT_RECOVERY_ATTEMPT_DURATION = 'gemini_cli.agent.recovery_attempt.duration';
31
+ // OpenTelemetry GenAI Semantic Convention Metrics
32
+ const GEN_AI_CLIENT_TOKEN_USAGE = 'gen_ai.client.token.usage';
33
+ const GEN_AI_CLIENT_OPERATION_DURATION = 'gen_ai.client.operation.duration';
21
34
  // Performance Monitoring Metrics
22
35
  const STARTUP_TIME = 'gemini_cli.startup.duration';
23
36
  const MEMORY_USAGE = 'gemini_cli.memory.usage';
@@ -30,10 +43,11 @@ const PERFORMANCE_SCORE = 'gemini_cli.performance.score';
30
43
  const REGRESSION_DETECTION = 'gemini_cli.performance.regression';
31
44
  const REGRESSION_PERCENTAGE_CHANGE = 'gemini_cli.performance.regression.percentage_change';
32
45
  const BASELINE_COMPARISON = 'gemini_cli.performance.baseline.comparison';
46
+ const FLICKER_FRAME_COUNT = 'gemini_cli.ui.flicker.count';
47
+ const SLOW_RENDER_LATENCY = 'gemini_cli.ui.slow_render.latency';
48
+ const EXIT_FAIL_COUNT = 'gemini_cli.exit.fail.count';
33
49
  const baseMetricDefinition = {
34
- getCommonAttributes: (config) => ({
35
- 'session.id': config.getSessionId(),
36
- }),
50
+ getCommonAttributes,
37
51
  };
38
52
  const COUNTER_DEFINITIONS = {
39
53
  [TOOL_CALL_COUNT]: {
@@ -66,6 +80,12 @@ const COUNTER_DEFINITIONS = {
66
80
  assign: (c) => (fileOperationCounter = c),
67
81
  attributes: {},
68
82
  },
83
+ [LINES_CHANGED]: {
84
+ description: 'Number of lines changed (from file diffs).',
85
+ valueType: ValueType.INT,
86
+ assign: (c) => (linesChangedCounter = c),
87
+ attributes: {},
88
+ },
69
89
  [INVALID_CHUNK_COUNT]: {
70
90
  description: 'Counts invalid chunks received from a stream.',
71
91
  valueType: ValueType.INT,
@@ -102,6 +122,30 @@ const COUNTER_DEFINITIONS = {
102
122
  assign: (c) => (chatCompressionCounter = c),
103
123
  attributes: {},
104
124
  },
125
+ [AGENT_RUN_COUNT]: {
126
+ description: 'Counts agent runs, tagged by name and termination reason.',
127
+ valueType: ValueType.INT,
128
+ assign: (c) => (agentRunCounter = c),
129
+ attributes: {},
130
+ },
131
+ [AGENT_RECOVERY_ATTEMPT_COUNT]: {
132
+ description: 'Counts agent recovery attempts.',
133
+ valueType: ValueType.INT,
134
+ assign: (c) => (agentRecoveryAttemptCounter = c),
135
+ attributes: {},
136
+ },
137
+ [FLICKER_FRAME_COUNT]: {
138
+ description: 'Counts UI frames that flicker (render taller than the terminal).',
139
+ valueType: ValueType.INT,
140
+ assign: (c) => (flickerFrameCounter = c),
141
+ attributes: {},
142
+ },
143
+ [EXIT_FAIL_COUNT]: {
144
+ description: 'Counts CLI exit failures.',
145
+ valueType: ValueType.INT,
146
+ assign: (c) => (exitFailCounter = c),
147
+ attributes: {},
148
+ },
105
149
  };
106
150
  const HISTOGRAM_DEFINITIONS = {
107
151
  [TOOL_CALL_LATENCY]: {
@@ -125,6 +169,48 @@ const HISTOGRAM_DEFINITIONS = {
125
169
  assign: (h) => (modelRoutingLatencyHistogram = h),
126
170
  attributes: {},
127
171
  },
172
+ [AGENT_DURATION_MS]: {
173
+ description: 'Duration of agent runs in milliseconds.',
174
+ unit: 'ms',
175
+ valueType: ValueType.INT,
176
+ assign: (h) => (agentDurationHistogram = h),
177
+ attributes: {},
178
+ },
179
+ [SLOW_RENDER_LATENCY]: {
180
+ description: 'Counts UI frames that take too long to render.',
181
+ unit: 'ms',
182
+ valueType: ValueType.INT,
183
+ assign: (h) => (slowRenderHistogram = h),
184
+ attributes: {},
185
+ },
186
+ [AGENT_TURNS]: {
187
+ description: 'Number of turns taken by agents.',
188
+ unit: 'turns',
189
+ valueType: ValueType.INT,
190
+ assign: (h) => (agentTurnsHistogram = h),
191
+ attributes: {},
192
+ },
193
+ [AGENT_RECOVERY_ATTEMPT_DURATION]: {
194
+ description: 'Duration of agent recovery attempts in milliseconds.',
195
+ unit: 'ms',
196
+ valueType: ValueType.INT,
197
+ assign: (h) => (agentRecoveryAttemptDurationHistogram = h),
198
+ attributes: {},
199
+ },
200
+ [GEN_AI_CLIENT_TOKEN_USAGE]: {
201
+ description: 'Number of input and output tokens used.',
202
+ unit: 'token',
203
+ valueType: ValueType.INT,
204
+ assign: (h) => (genAiClientTokenUsageHistogram = h),
205
+ attributes: {},
206
+ },
207
+ [GEN_AI_CLIENT_OPERATION_DURATION]: {
208
+ description: 'GenAI operation duration.',
209
+ unit: 's',
210
+ valueType: ValueType.DOUBLE,
211
+ assign: (h) => (genAiClientOperationDurationHistogram = h),
212
+ attributes: {},
213
+ },
128
214
  };
129
215
  const PERFORMANCE_COUNTER_DEFINITIONS = {
130
216
  [REGRESSION_DETECTION]: {
@@ -242,6 +328,20 @@ export var ApiRequestPhase;
242
328
  ApiRequestPhase["RESPONSE_PROCESSING"] = "response_processing";
243
329
  ApiRequestPhase["TOKEN_PROCESSING"] = "token_processing";
244
330
  })(ApiRequestPhase || (ApiRequestPhase = {}));
331
+ export var GenAiOperationName;
332
+ (function (GenAiOperationName) {
333
+ GenAiOperationName["GENERATE_CONTENT"] = "generate_content";
334
+ })(GenAiOperationName || (GenAiOperationName = {}));
335
+ export var GenAiProviderName;
336
+ (function (GenAiProviderName) {
337
+ GenAiProviderName["GCP_GEN_AI"] = "gcp.gen_ai";
338
+ GenAiProviderName["GCP_VERTEX_AI"] = "gcp.vertex_ai";
339
+ })(GenAiProviderName || (GenAiProviderName = {}));
340
+ export var GenAiTokenType;
341
+ (function (GenAiTokenType) {
342
+ GenAiTokenType["INPUT"] = "input";
343
+ GenAiTokenType["OUTPUT"] = "output";
344
+ })(GenAiTokenType || (GenAiTokenType = {}));
245
345
  let cliMeter;
246
346
  let toolCallCounter;
247
347
  let toolCallLatencyHistogram;
@@ -250,6 +350,7 @@ let apiRequestLatencyHistogram;
250
350
  let tokenUsageCounter;
251
351
  let sessionCounter;
252
352
  let fileOperationCounter;
353
+ let linesChangedCounter;
253
354
  let chatCompressionCounter;
254
355
  let invalidChunkCounter;
255
356
  let contentRetryCounter;
@@ -257,6 +358,17 @@ let contentRetryFailureCounter;
257
358
  let modelRoutingLatencyHistogram;
258
359
  let modelRoutingFailureCounter;
259
360
  let modelSlashCommandCallCounter;
361
+ let agentRunCounter;
362
+ let agentDurationHistogram;
363
+ let agentTurnsHistogram;
364
+ let agentRecoveryAttemptCounter;
365
+ let agentRecoveryAttemptDurationHistogram;
366
+ let flickerFrameCounter;
367
+ let exitFailCounter;
368
+ let slowRenderHistogram;
369
+ // OpenTelemetry GenAI Semantic Convention Metrics
370
+ let genAiClientTokenUsageHistogram;
371
+ let genAiClientOperationDurationHistogram;
260
372
  // Performance Monitoring Metrics
261
373
  let startupTimeHistogram;
262
374
  let memoryUsageGauge; // Using Histogram until ObservableGauge is available
@@ -317,7 +429,7 @@ export function recordToolCallMetrics(config, durationMs, attributes) {
317
429
  function_name: attributes.function_name,
318
430
  });
319
431
  }
320
- export function recordTokenUsageMetrics(config, tokenCount, attributes) {
432
+ export function recordCustomTokenUsageMetrics(config, tokenCount, attributes) {
321
433
  if (!tokenUsageCounter || !isMetricsInitialized)
322
434
  return;
323
435
  tokenUsageCounter.add(tokenCount, {
@@ -325,7 +437,7 @@ export function recordTokenUsageMetrics(config, tokenCount, attributes) {
325
437
  ...attributes,
326
438
  });
327
439
  }
328
- export function recordApiResponseMetrics(config, durationMs, attributes) {
440
+ export function recordCustomApiResponseMetrics(config, durationMs, attributes) {
329
441
  if (!apiRequestCounter ||
330
442
  !apiRequestLatencyHistogram ||
331
443
  !isMetricsInitialized)
@@ -366,7 +478,44 @@ export function recordFileOperationMetric(config, attributes) {
366
478
  ...attributes,
367
479
  });
368
480
  }
481
+ export function recordLinesChanged(config, lines, changeType, attributes) {
482
+ if (!linesChangedCounter || !isMetricsInitialized)
483
+ return;
484
+ if (!Number.isFinite(lines) || lines <= 0)
485
+ return;
486
+ linesChangedCounter.add(lines, {
487
+ ...baseMetricDefinition.getCommonAttributes(config),
488
+ type: changeType,
489
+ ...(attributes ?? {}),
490
+ });
491
+ }
369
492
  // --- New Metric Recording Functions ---
493
+ /**
494
+ * Records a metric for when a UI frame flickers.
495
+ */
496
+ export function recordFlickerFrame(config) {
497
+ if (!flickerFrameCounter || !isMetricsInitialized)
498
+ return;
499
+ flickerFrameCounter.add(1, baseMetricDefinition.getCommonAttributes(config));
500
+ }
501
+ /**
502
+ * Records a metric for when user failed to exit
503
+ */
504
+ export function recordExitFail(config) {
505
+ if (!exitFailCounter || !isMetricsInitialized)
506
+ return;
507
+ exitFailCounter.add(1, baseMetricDefinition.getCommonAttributes(config));
508
+ }
509
+ /**
510
+ * Records a metric for when a UI frame is slow in rendering
511
+ */
512
+ export function recordSlowRender(config, renderLatency) {
513
+ if (!slowRenderHistogram || !isMetricsInitialized)
514
+ return;
515
+ slowRenderHistogram.record(renderLatency, {
516
+ ...baseMetricDefinition.getCommonAttributes(config),
517
+ });
518
+ }
370
519
  /**
371
520
  * Records a metric for when an invalid chunk is received from a stream.
372
521
  */
@@ -417,6 +566,90 @@ export function recordModelRoutingMetrics(config, event) {
417
566
  });
418
567
  }
419
568
  }
569
+ export function recordAgentRunMetrics(config, event) {
570
+ if (!agentRunCounter ||
571
+ !agentDurationHistogram ||
572
+ !agentTurnsHistogram ||
573
+ !isMetricsInitialized)
574
+ return;
575
+ const commonAttributes = baseMetricDefinition.getCommonAttributes(config);
576
+ agentRunCounter.add(1, {
577
+ ...commonAttributes,
578
+ agent_name: event.agent_name,
579
+ terminate_reason: event.terminate_reason,
580
+ });
581
+ agentDurationHistogram.record(event.duration_ms, {
582
+ ...commonAttributes,
583
+ agent_name: event.agent_name,
584
+ });
585
+ agentTurnsHistogram.record(event.turn_count, {
586
+ ...commonAttributes,
587
+ agent_name: event.agent_name,
588
+ });
589
+ }
590
+ export function recordRecoveryAttemptMetrics(config, event) {
591
+ if (!agentRecoveryAttemptCounter ||
592
+ !agentRecoveryAttemptDurationHistogram ||
593
+ !isMetricsInitialized)
594
+ return;
595
+ const commonAttributes = baseMetricDefinition.getCommonAttributes(config);
596
+ agentRecoveryAttemptCounter.add(1, {
597
+ ...commonAttributes,
598
+ agent_name: event.agent_name,
599
+ reason: event.reason,
600
+ success: event.success,
601
+ });
602
+ agentRecoveryAttemptDurationHistogram.record(event.duration_ms, {
603
+ ...commonAttributes,
604
+ agent_name: event.agent_name,
605
+ });
606
+ }
607
+ // OpenTelemetry GenAI Semantic Convention Recording Functions
608
+ export function recordGenAiClientTokenUsage(config, tokenCount, attributes) {
609
+ if (!genAiClientTokenUsageHistogram || !isMetricsInitialized)
610
+ return;
611
+ const metricAttributes = {
612
+ ...baseMetricDefinition.getCommonAttributes(config),
613
+ ...attributes,
614
+ };
615
+ genAiClientTokenUsageHistogram.record(tokenCount, metricAttributes);
616
+ }
617
+ export function recordGenAiClientOperationDuration(config, durationSeconds, attributes) {
618
+ if (!genAiClientOperationDurationHistogram || !isMetricsInitialized)
619
+ return;
620
+ const metricAttributes = {
621
+ ...baseMetricDefinition.getCommonAttributes(config),
622
+ ...attributes,
623
+ };
624
+ genAiClientOperationDurationHistogram.record(durationSeconds, metricAttributes);
625
+ }
626
+ export function getConventionAttributes(event) {
627
+ const operationName = getGenAiOperationName();
628
+ const provider = getGenAiProvider(event.auth_type);
629
+ return {
630
+ 'gen_ai.operation.name': operationName,
631
+ 'gen_ai.provider.name': provider,
632
+ 'gen_ai.request.model': event.model,
633
+ 'gen_ai.response.model': event.model,
634
+ };
635
+ }
636
+ /**
637
+ * Maps authentication type to GenAI provider name following OpenTelemetry conventions
638
+ */
639
+ function getGenAiProvider(authType) {
640
+ switch (authType) {
641
+ case AuthType.USE_VERTEX_AI:
642
+ case AuthType.COMPUTE_ADC:
643
+ case AuthType.LOGIN_WITH_GOOGLE:
644
+ return GenAiProviderName.GCP_VERTEX_AI;
645
+ case AuthType.USE_GEMINI:
646
+ default:
647
+ return GenAiProviderName.GCP_GEN_AI;
648
+ }
649
+ }
650
+ function getGenAiOperationName() {
651
+ return GenAiOperationName.GENERATE_CONTENT;
652
+ }
420
653
  // Performance Monitoring Functions
421
654
  export function initializePerformanceMonitoring(config) {
422
655
  const meter = getMeter();
@@ -542,4 +775,35 @@ export function recordBaselineComparison(config, attributes) {
542
775
  export function isPerformanceMonitoringActive() {
543
776
  return isPerformanceMonitoringEnabled && isMetricsInitialized;
544
777
  }
778
+ /**
779
+ * Token usage recording that emits both custom and convention metrics.
780
+ */
781
+ export function recordTokenUsageMetrics(config, tokenCount, attributes) {
782
+ recordCustomTokenUsageMetrics(config, tokenCount, {
783
+ model: attributes.model,
784
+ type: attributes.type,
785
+ });
786
+ if ((attributes.type === 'input' || attributes.type === 'output') &&
787
+ attributes.genAiAttributes) {
788
+ recordGenAiClientTokenUsage(config, tokenCount, {
789
+ ...attributes.genAiAttributes,
790
+ 'gen_ai.token.type': attributes.type,
791
+ });
792
+ }
793
+ }
794
+ /**
795
+ * Operation latency recording that emits both custom and convention metrics.
796
+ */
797
+ export function recordApiResponseMetrics(config, durationMs, attributes) {
798
+ recordCustomApiResponseMetrics(config, durationMs, {
799
+ model: attributes.model,
800
+ status_code: attributes.status_code,
801
+ });
802
+ if (attributes.genAiAttributes) {
803
+ const durationSeconds = durationMs / 1000;
804
+ recordGenAiClientOperationDuration(config, durationSeconds, {
805
+ ...attributes.genAiAttributes,
806
+ });
807
+ }
808
+ }
545
809
  //# sourceMappingURL=metrics.js.map