@codemieai/code 0.0.16 → 0.0.18

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 (410) hide show
  1. package/README.md +62 -5
  2. package/bin/agent-executor.js +7 -28
  3. package/bin/codemie-claude.js +18 -0
  4. package/bin/codemie-codex.js +18 -0
  5. package/bin/codemie-deepagents.js +18 -0
  6. package/bin/codemie-gemini.js +18 -0
  7. package/dist/agents/codemie-code/agent.d.ts.map +1 -1
  8. package/dist/agents/codemie-code/agent.js +3 -32
  9. package/dist/agents/codemie-code/agent.js.map +1 -1
  10. package/dist/agents/codemie-code/tools/planning.d.ts +2 -2
  11. package/dist/agents/core/AgentCLI.d.ts.map +1 -1
  12. package/dist/agents/core/AgentCLI.js +31 -62
  13. package/dist/agents/core/AgentCLI.js.map +1 -1
  14. package/dist/agents/core/BaseAgentAdapter.d.ts +9 -1
  15. package/dist/agents/core/BaseAgentAdapter.d.ts.map +1 -1
  16. package/dist/agents/core/BaseAgentAdapter.js +125 -10
  17. package/dist/agents/core/BaseAgentAdapter.js.map +1 -1
  18. package/dist/agents/core/BaseMetricsAdapter.d.ts +64 -0
  19. package/dist/agents/core/BaseMetricsAdapter.d.ts.map +1 -0
  20. package/dist/agents/core/BaseMetricsAdapter.js +74 -0
  21. package/dist/agents/core/BaseMetricsAdapter.js.map +1 -0
  22. package/dist/agents/core/types.d.ts +1 -0
  23. package/dist/agents/core/types.d.ts.map +1 -1
  24. package/dist/agents/plugins/claude.metrics.d.ts +112 -0
  25. package/dist/agents/plugins/claude.metrics.d.ts.map +1 -0
  26. package/dist/agents/plugins/claude.metrics.js +700 -0
  27. package/dist/agents/plugins/claude.metrics.js.map +1 -0
  28. package/dist/agents/plugins/claude.plugin.d.ts +9 -0
  29. package/dist/agents/plugins/claude.plugin.d.ts.map +1 -1
  30. package/dist/agents/plugins/claude.plugin.js +52 -10
  31. package/dist/agents/plugins/claude.plugin.js.map +1 -1
  32. package/dist/agents/plugins/codemie-code.plugin.d.ts.map +1 -1
  33. package/dist/agents/plugins/codemie-code.plugin.js +57 -13
  34. package/dist/agents/plugins/codemie-code.plugin.js.map +1 -1
  35. package/dist/agents/plugins/codex.plugin.d.ts.map +1 -1
  36. package/dist/agents/plugins/codex.plugin.js +1 -3
  37. package/dist/agents/plugins/codex.plugin.js.map +1 -1
  38. package/dist/agents/plugins/gemini.plugin.d.ts.map +1 -1
  39. package/dist/agents/plugins/gemini.plugin.js +0 -7
  40. package/dist/agents/plugins/gemini.plugin.js.map +1 -1
  41. package/dist/agents/plugins/history-parser.d.ts +52 -0
  42. package/dist/agents/plugins/history-parser.d.ts.map +1 -0
  43. package/dist/agents/plugins/history-parser.js +155 -0
  44. package/dist/agents/plugins/history-parser.js.map +1 -0
  45. package/dist/cli/commands/analytics/aggregator.d.ts +58 -0
  46. package/dist/cli/commands/analytics/aggregator.d.ts.map +1 -0
  47. package/dist/cli/commands/analytics/aggregator.js +702 -0
  48. package/dist/cli/commands/analytics/aggregator.js.map +1 -0
  49. package/dist/cli/commands/analytics/data-loader.d.ts +84 -0
  50. package/dist/cli/commands/analytics/data-loader.d.ts.map +1 -0
  51. package/dist/cli/commands/analytics/data-loader.js +211 -0
  52. package/dist/cli/commands/analytics/data-loader.js.map +1 -0
  53. package/dist/cli/commands/analytics/exporter.d.ts +20 -0
  54. package/dist/cli/commands/analytics/exporter.d.ts.map +1 -0
  55. package/dist/cli/commands/analytics/exporter.js +103 -0
  56. package/dist/cli/commands/analytics/exporter.js.map +1 -0
  57. package/dist/cli/commands/analytics/formatter.d.ts +49 -0
  58. package/dist/cli/commands/analytics/formatter.d.ts.map +1 -0
  59. package/dist/cli/commands/analytics/formatter.js +309 -0
  60. package/dist/cli/commands/analytics/formatter.js.map +1 -0
  61. package/dist/cli/commands/analytics/index.d.ts +6 -0
  62. package/dist/cli/commands/analytics/index.d.ts.map +1 -0
  63. package/dist/cli/commands/analytics/index.js +157 -0
  64. package/dist/cli/commands/analytics/index.js.map +1 -0
  65. package/dist/cli/commands/analytics/model-normalizer.d.ts +21 -0
  66. package/dist/cli/commands/analytics/model-normalizer.d.ts.map +1 -0
  67. package/dist/cli/commands/analytics/model-normalizer.js +44 -0
  68. package/dist/cli/commands/analytics/model-normalizer.js.map +1 -0
  69. package/dist/cli/commands/analytics/types.d.ts +188 -0
  70. package/dist/cli/commands/analytics/types.d.ts.map +1 -0
  71. package/dist/cli/commands/analytics/types.js +6 -0
  72. package/dist/cli/commands/analytics/types.js.map +1 -0
  73. package/dist/cli/commands/doctor/checks/AwsCliCheck.d.ts +9 -0
  74. package/dist/cli/commands/doctor/checks/AwsCliCheck.d.ts.map +1 -0
  75. package/dist/cli/commands/doctor/checks/AwsCliCheck.js +28 -0
  76. package/dist/cli/commands/doctor/checks/AwsCliCheck.js.map +1 -0
  77. package/dist/cli/commands/doctor/checks/PythonCheck.d.ts.map +1 -1
  78. package/dist/cli/commands/doctor/checks/PythonCheck.js +10 -0
  79. package/dist/cli/commands/doctor/checks/PythonCheck.js.map +1 -1
  80. package/dist/cli/commands/doctor/checks/WorkflowsCheck.d.ts.map +1 -1
  81. package/dist/cli/commands/doctor/checks/WorkflowsCheck.js +2 -1
  82. package/dist/cli/commands/doctor/checks/WorkflowsCheck.js.map +1 -1
  83. package/dist/cli/commands/doctor/checks/index.d.ts +1 -0
  84. package/dist/cli/commands/doctor/checks/index.d.ts.map +1 -1
  85. package/dist/cli/commands/doctor/checks/index.js +1 -0
  86. package/dist/cli/commands/doctor/checks/index.js.map +1 -1
  87. package/dist/cli/commands/doctor/index.d.ts.map +1 -1
  88. package/dist/cli/commands/doctor/index.js +75 -3
  89. package/dist/cli/commands/doctor/index.js.map +1 -1
  90. package/dist/cli/commands/profile.d.ts.map +1 -1
  91. package/dist/cli/commands/profile.js +49 -89
  92. package/dist/cli/commands/profile.js.map +1 -1
  93. package/dist/cli/commands/setup.js +1 -21
  94. package/dist/cli/commands/setup.js.map +1 -1
  95. package/dist/cli/index.js +1 -1
  96. package/dist/cli/index.js.map +1 -1
  97. package/dist/env/types.d.ts +14 -2
  98. package/dist/env/types.d.ts.map +1 -1
  99. package/dist/env/types.js.map +1 -1
  100. package/dist/metrics/MetricsOrchestrator.d.ts +67 -0
  101. package/dist/metrics/MetricsOrchestrator.d.ts.map +1 -0
  102. package/dist/metrics/MetricsOrchestrator.js +287 -0
  103. package/dist/metrics/MetricsOrchestrator.js.map +1 -0
  104. package/dist/metrics/config.d.ts +38 -0
  105. package/dist/metrics/config.d.ts.map +1 -0
  106. package/dist/metrics/config.js +80 -0
  107. package/dist/metrics/config.js.map +1 -0
  108. package/dist/metrics/core/DeltaWriter.d.ts +49 -0
  109. package/dist/metrics/core/DeltaWriter.d.ts.map +1 -0
  110. package/dist/metrics/core/DeltaWriter.js +146 -0
  111. package/dist/metrics/core/DeltaWriter.js.map +1 -0
  112. package/dist/metrics/core/FileSnapshotter.d.ts +22 -0
  113. package/dist/metrics/core/FileSnapshotter.d.ts.map +1 -0
  114. package/dist/metrics/core/FileSnapshotter.js +74 -0
  115. package/dist/metrics/core/FileSnapshotter.js.map +1 -0
  116. package/dist/metrics/core/SessionCorrelator.d.ts +34 -0
  117. package/dist/metrics/core/SessionCorrelator.d.ts.map +1 -0
  118. package/dist/metrics/core/SessionCorrelator.js +115 -0
  119. package/dist/metrics/core/SessionCorrelator.js.map +1 -0
  120. package/dist/metrics/core/SyncStateManager.d.ts +69 -0
  121. package/dist/metrics/core/SyncStateManager.d.ts.map +1 -0
  122. package/dist/metrics/core/SyncStateManager.js +284 -0
  123. package/dist/metrics/core/SyncStateManager.js.map +1 -0
  124. package/dist/metrics/index.d.ts +9 -0
  125. package/dist/metrics/index.d.ts.map +1 -0
  126. package/dist/metrics/index.js +11 -0
  127. package/dist/metrics/index.js.map +1 -0
  128. package/dist/metrics/session/SessionStore.d.ts +43 -0
  129. package/dist/metrics/session/SessionStore.d.ts.map +1 -0
  130. package/dist/metrics/session/SessionStore.js +142 -0
  131. package/dist/metrics/session/SessionStore.js.map +1 -0
  132. package/dist/metrics/sync/MetricsApiClient.d.ts +32 -0
  133. package/dist/metrics/sync/MetricsApiClient.d.ts.map +1 -0
  134. package/dist/metrics/sync/MetricsApiClient.js +155 -0
  135. package/dist/metrics/sync/MetricsApiClient.js.map +1 -0
  136. package/dist/metrics/sync/aggregator.d.ts +14 -0
  137. package/dist/metrics/sync/aggregator.d.ts.map +1 -0
  138. package/dist/metrics/sync/aggregator.js +214 -0
  139. package/dist/metrics/sync/aggregator.js.map +1 -0
  140. package/dist/metrics/sync/index.d.ts +10 -0
  141. package/dist/metrics/sync/index.d.ts.map +1 -0
  142. package/dist/metrics/sync/index.js +10 -0
  143. package/dist/metrics/sync/index.js.map +1 -0
  144. package/dist/metrics/sync/jsonl-writer.d.ts +28 -0
  145. package/dist/metrics/sync/jsonl-writer.d.ts.map +1 -0
  146. package/dist/metrics/sync/jsonl-writer.js +72 -0
  147. package/dist/metrics/sync/jsonl-writer.js.map +1 -0
  148. package/dist/metrics/sync/types.d.ts +73 -0
  149. package/dist/metrics/sync/types.d.ts.map +1 -0
  150. package/dist/metrics/sync/types.js +7 -0
  151. package/dist/metrics/sync/types.js.map +1 -0
  152. package/dist/metrics/types.d.ts +308 -0
  153. package/dist/metrics/types.d.ts.map +1 -0
  154. package/dist/metrics/types.js +8 -0
  155. package/dist/metrics/types.js.map +1 -0
  156. package/dist/providers/index.d.ts +2 -0
  157. package/dist/providers/index.d.ts.map +1 -1
  158. package/dist/providers/index.js +2 -0
  159. package/dist/providers/index.js.map +1 -1
  160. package/dist/providers/integration/setup-ui.d.ts +1 -1
  161. package/dist/providers/integration/setup-ui.d.ts.map +1 -1
  162. package/dist/providers/integration/setup-ui.js +51 -6
  163. package/dist/providers/integration/setup-ui.js.map +1 -1
  164. package/dist/providers/plugins/bedrock/bedrock.health.d.ts +53 -0
  165. package/dist/providers/plugins/bedrock/bedrock.health.d.ts.map +1 -0
  166. package/dist/providers/plugins/bedrock/bedrock.health.js +115 -0
  167. package/dist/providers/plugins/bedrock/bedrock.health.js.map +1 -0
  168. package/dist/providers/plugins/bedrock/bedrock.models.d.ts +26 -0
  169. package/dist/providers/plugins/bedrock/bedrock.models.d.ts.map +1 -0
  170. package/dist/providers/plugins/bedrock/bedrock.models.js +89 -0
  171. package/dist/providers/plugins/bedrock/bedrock.models.js.map +1 -0
  172. package/dist/providers/plugins/bedrock/bedrock.setup-steps.d.ts +12 -0
  173. package/dist/providers/plugins/bedrock/bedrock.setup-steps.d.ts.map +1 -0
  174. package/dist/providers/plugins/bedrock/bedrock.setup-steps.js +308 -0
  175. package/dist/providers/plugins/bedrock/bedrock.setup-steps.js.map +1 -0
  176. package/dist/providers/plugins/bedrock/bedrock.template.d.ts +11 -0
  177. package/dist/providers/plugins/bedrock/bedrock.template.d.ts.map +1 -0
  178. package/dist/providers/plugins/bedrock/bedrock.template.js +85 -0
  179. package/dist/providers/plugins/bedrock/bedrock.template.js.map +1 -0
  180. package/dist/providers/plugins/bedrock/index.d.ts +11 -0
  181. package/dist/providers/plugins/bedrock/index.d.ts.map +1 -0
  182. package/dist/providers/plugins/bedrock/index.js +11 -0
  183. package/dist/providers/plugins/bedrock/index.js.map +1 -0
  184. package/dist/providers/plugins/ollama/ollama.template.d.ts.map +1 -1
  185. package/dist/providers/plugins/ollama/ollama.template.js +2 -0
  186. package/dist/providers/plugins/ollama/ollama.template.js.map +1 -1
  187. package/dist/providers/plugins/sso/sso.http-client.d.ts +2 -0
  188. package/dist/providers/plugins/sso/sso.http-client.d.ts.map +1 -1
  189. package/dist/providers/plugins/sso/sso.http-client.js +9 -3
  190. package/dist/providers/plugins/sso/sso.http-client.js.map +1 -1
  191. package/dist/proxy/http-client.d.ts +1 -1
  192. package/dist/proxy/http-client.d.ts.map +1 -1
  193. package/dist/proxy/http-client.js +78 -12
  194. package/dist/proxy/http-client.js.map +1 -1
  195. package/dist/proxy/plugins/endpoint-blocker.plugin.d.ts +19 -0
  196. package/dist/proxy/plugins/endpoint-blocker.plugin.d.ts.map +1 -0
  197. package/dist/proxy/plugins/endpoint-blocker.plugin.js +61 -0
  198. package/dist/proxy/plugins/endpoint-blocker.plugin.js.map +1 -0
  199. package/dist/proxy/plugins/header-injection.plugin.js +3 -0
  200. package/dist/proxy/plugins/header-injection.plugin.js.map +1 -1
  201. package/dist/proxy/plugins/index.d.ts +3 -1
  202. package/dist/proxy/plugins/index.d.ts.map +1 -1
  203. package/dist/proxy/plugins/index.js +5 -1
  204. package/dist/proxy/plugins/index.js.map +1 -1
  205. package/dist/proxy/plugins/logging.plugin.d.ts +11 -3
  206. package/dist/proxy/plugins/logging.plugin.d.ts.map +1 -1
  207. package/dist/proxy/plugins/logging.plugin.js +189 -25
  208. package/dist/proxy/plugins/logging.plugin.js.map +1 -1
  209. package/dist/proxy/plugins/metrics-sync.plugin.d.ts +33 -0
  210. package/dist/proxy/plugins/metrics-sync.plugin.d.ts.map +1 -0
  211. package/dist/proxy/plugins/metrics-sync.plugin.js +320 -0
  212. package/dist/proxy/plugins/metrics-sync.plugin.js.map +1 -0
  213. package/dist/proxy/plugins/registry.d.ts.map +1 -1
  214. package/dist/proxy/plugins/registry.js +8 -1
  215. package/dist/proxy/plugins/registry.js.map +1 -1
  216. package/dist/proxy/plugins/types.d.ts +6 -2
  217. package/dist/proxy/plugins/types.d.ts.map +1 -1
  218. package/dist/proxy/types.d.ts +8 -1
  219. package/dist/proxy/types.d.ts.map +1 -1
  220. package/dist/utils/ascii-logo.d.ts +21 -0
  221. package/dist/utils/ascii-logo.d.ts.map +1 -0
  222. package/dist/utils/ascii-logo.js +85 -0
  223. package/dist/utils/ascii-logo.js.map +1 -0
  224. package/dist/utils/codemie-proxy.d.ts +2 -7
  225. package/dist/utils/codemie-proxy.d.ts.map +1 -1
  226. package/dist/utils/codemie-proxy.js +83 -61
  227. package/dist/utils/codemie-proxy.js.map +1 -1
  228. package/dist/utils/config-loader.d.ts.map +1 -1
  229. package/dist/utils/config-loader.js +22 -6
  230. package/dist/utils/config-loader.js.map +1 -1
  231. package/dist/utils/exec.d.ts +11 -0
  232. package/dist/utils/exec.d.ts.map +1 -1
  233. package/dist/utils/exec.js +17 -1
  234. package/dist/utils/exec.js.map +1 -1
  235. package/dist/utils/goodbye-messages.d.ts +13 -0
  236. package/dist/utils/goodbye-messages.d.ts.map +1 -0
  237. package/dist/utils/goodbye-messages.js +245 -0
  238. package/dist/utils/goodbye-messages.js.map +1 -0
  239. package/dist/utils/json-parser.d.ts +52 -0
  240. package/dist/utils/json-parser.d.ts.map +1 -0
  241. package/dist/utils/json-parser.js +126 -0
  242. package/dist/utils/json-parser.js.map +1 -0
  243. package/dist/utils/logger.d.ts +37 -1
  244. package/dist/utils/logger.d.ts.map +1 -1
  245. package/dist/utils/logger.js +92 -20
  246. package/dist/utils/logger.js.map +1 -1
  247. package/dist/utils/sanitize.d.ts.map +1 -1
  248. package/dist/utils/sanitize.js +0 -1
  249. package/dist/utils/sanitize.js.map +1 -1
  250. package/dist/utils/which.d.ts +20 -0
  251. package/dist/utils/which.d.ts.map +1 -0
  252. package/dist/utils/which.js +47 -0
  253. package/dist/utils/which.js.map +1 -0
  254. package/package.json +10 -5
  255. package/dist/analytics/aggregation/adapters/claude.adapter.d.ts +0 -37
  256. package/dist/analytics/aggregation/adapters/claude.adapter.d.ts.map +0 -1
  257. package/dist/analytics/aggregation/adapters/claude.adapter.js +0 -531
  258. package/dist/analytics/aggregation/adapters/claude.adapter.js.map +0 -1
  259. package/dist/analytics/aggregation/adapters/codex.adapter.d.ts +0 -25
  260. package/dist/analytics/aggregation/adapters/codex.adapter.d.ts.map +0 -1
  261. package/dist/analytics/aggregation/adapters/codex.adapter.js +0 -396
  262. package/dist/analytics/aggregation/adapters/codex.adapter.js.map +0 -1
  263. package/dist/analytics/aggregation/adapters/gemini.adapter.d.ts +0 -36
  264. package/dist/analytics/aggregation/adapters/gemini.adapter.d.ts.map +0 -1
  265. package/dist/analytics/aggregation/adapters/gemini.adapter.js +0 -365
  266. package/dist/analytics/aggregation/adapters/gemini.adapter.js.map +0 -1
  267. package/dist/analytics/aggregation/adapters/index.d.ts +0 -7
  268. package/dist/analytics/aggregation/adapters/index.d.ts.map +0 -1
  269. package/dist/analytics/aggregation/adapters/index.js +0 -7
  270. package/dist/analytics/aggregation/adapters/index.js.map +0 -1
  271. package/dist/analytics/aggregation/aggregator.d.ts +0 -49
  272. package/dist/analytics/aggregation/aggregator.d.ts.map +0 -1
  273. package/dist/analytics/aggregation/aggregator.js +0 -239
  274. package/dist/analytics/aggregation/aggregator.js.map +0 -1
  275. package/dist/analytics/aggregation/core/BaseAnalyticsAdapter.d.ts +0 -99
  276. package/dist/analytics/aggregation/core/BaseAnalyticsAdapter.d.ts.map +0 -1
  277. package/dist/analytics/aggregation/core/BaseAnalyticsAdapter.js +0 -110
  278. package/dist/analytics/aggregation/core/BaseAnalyticsAdapter.js.map +0 -1
  279. package/dist/analytics/aggregation/core/adapter.interface.d.ts +0 -76
  280. package/dist/analytics/aggregation/core/adapter.interface.d.ts.map +0 -1
  281. package/dist/analytics/aggregation/core/adapter.interface.js +0 -9
  282. package/dist/analytics/aggregation/core/adapter.interface.js.map +0 -1
  283. package/dist/analytics/aggregation/core/aggregation-utils.d.ts +0 -86
  284. package/dist/analytics/aggregation/core/aggregation-utils.d.ts.map +0 -1
  285. package/dist/analytics/aggregation/core/aggregation-utils.js +0 -126
  286. package/dist/analytics/aggregation/core/aggregation-utils.js.map +0 -1
  287. package/dist/analytics/aggregation/core/discovery.d.ts +0 -40
  288. package/dist/analytics/aggregation/core/discovery.d.ts.map +0 -1
  289. package/dist/analytics/aggregation/core/discovery.js +0 -132
  290. package/dist/analytics/aggregation/core/discovery.js.map +0 -1
  291. package/dist/analytics/aggregation/core/file-utils.d.ts +0 -24
  292. package/dist/analytics/aggregation/core/file-utils.d.ts.map +0 -1
  293. package/dist/analytics/aggregation/core/file-utils.js +0 -143
  294. package/dist/analytics/aggregation/core/file-utils.js.map +0 -1
  295. package/dist/analytics/aggregation/core/index.d.ts +0 -14
  296. package/dist/analytics/aggregation/core/index.d.ts.map +0 -1
  297. package/dist/analytics/aggregation/core/index.js +0 -14
  298. package/dist/analytics/aggregation/core/index.js.map +0 -1
  299. package/dist/analytics/aggregation/core/project-mapping.d.ts +0 -50
  300. package/dist/analytics/aggregation/core/project-mapping.d.ts.map +0 -1
  301. package/dist/analytics/aggregation/core/project-mapping.js +0 -102
  302. package/dist/analytics/aggregation/core/project-mapping.js.map +0 -1
  303. package/dist/analytics/aggregation/core/streaming.d.ts +0 -26
  304. package/dist/analytics/aggregation/core/streaming.d.ts.map +0 -1
  305. package/dist/analytics/aggregation/core/streaming.js +0 -58
  306. package/dist/analytics/aggregation/core/streaming.js.map +0 -1
  307. package/dist/analytics/aggregation/core/user-prompt-source.d.ts +0 -81
  308. package/dist/analytics/aggregation/core/user-prompt-source.d.ts.map +0 -1
  309. package/dist/analytics/aggregation/core/user-prompt-source.js +0 -69
  310. package/dist/analytics/aggregation/core/user-prompt-source.js.map +0 -1
  311. package/dist/analytics/aggregation/core/user-prompt-sources/json.d.ts +0 -49
  312. package/dist/analytics/aggregation/core/user-prompt-sources/json.d.ts.map +0 -1
  313. package/dist/analytics/aggregation/core/user-prompt-sources/json.js +0 -66
  314. package/dist/analytics/aggregation/core/user-prompt-sources/json.js.map +0 -1
  315. package/dist/analytics/aggregation/core/user-prompt-sources/jsonl.d.ts +0 -43
  316. package/dist/analytics/aggregation/core/user-prompt-sources/jsonl.d.ts.map +0 -1
  317. package/dist/analytics/aggregation/core/user-prompt-sources/jsonl.js +0 -56
  318. package/dist/analytics/aggregation/core/user-prompt-sources/jsonl.js.map +0 -1
  319. package/dist/analytics/aggregation/index.d.ts +0 -8
  320. package/dist/analytics/aggregation/index.d.ts.map +0 -1
  321. package/dist/analytics/aggregation/index.js +0 -8
  322. package/dist/analytics/aggregation/index.js.map +0 -1
  323. package/dist/analytics/aggregation/types.d.ts +0 -278
  324. package/dist/analytics/aggregation/types.d.ts.map +0 -1
  325. package/dist/analytics/aggregation/types.js +0 -8
  326. package/dist/analytics/aggregation/types.js.map +0 -1
  327. package/dist/analytics/collector.d.ts +0 -46
  328. package/dist/analytics/collector.d.ts.map +0 -1
  329. package/dist/analytics/collector.js +0 -83
  330. package/dist/analytics/collector.js.map +0 -1
  331. package/dist/analytics/config.d.ts +0 -15
  332. package/dist/analytics/config.d.ts.map +0 -1
  333. package/dist/analytics/config.js +0 -65
  334. package/dist/analytics/config.js.map +0 -1
  335. package/dist/analytics/index.d.ts +0 -99
  336. package/dist/analytics/index.d.ts.map +0 -1
  337. package/dist/analytics/index.js +0 -280
  338. package/dist/analytics/index.js.map +0 -1
  339. package/dist/analytics/plugins/api-metrics.plugin.d.ts +0 -26
  340. package/dist/analytics/plugins/api-metrics.plugin.d.ts.map +0 -1
  341. package/dist/analytics/plugins/api-metrics.plugin.js +0 -97
  342. package/dist/analytics/plugins/api-metrics.plugin.js.map +0 -1
  343. package/dist/analytics/plugins/index.d.ts +0 -15
  344. package/dist/analytics/plugins/index.d.ts.map +0 -1
  345. package/dist/analytics/plugins/index.js +0 -15
  346. package/dist/analytics/plugins/index.js.map +0 -1
  347. package/dist/analytics/plugins/model-metrics.plugin.d.ts +0 -39
  348. package/dist/analytics/plugins/model-metrics.plugin.d.ts.map +0 -1
  349. package/dist/analytics/plugins/model-metrics.plugin.js +0 -105
  350. package/dist/analytics/plugins/model-metrics.plugin.js.map +0 -1
  351. package/dist/analytics/plugins/provider-metrics.plugin.d.ts +0 -41
  352. package/dist/analytics/plugins/provider-metrics.plugin.d.ts.map +0 -1
  353. package/dist/analytics/plugins/provider-metrics.plugin.js +0 -123
  354. package/dist/analytics/plugins/provider-metrics.plugin.js.map +0 -1
  355. package/dist/analytics/plugins/types.d.ts +0 -61
  356. package/dist/analytics/plugins/types.d.ts.map +0 -1
  357. package/dist/analytics/plugins/types.js +0 -54
  358. package/dist/analytics/plugins/types.js.map +0 -1
  359. package/dist/analytics/privacy.d.ts +0 -10
  360. package/dist/analytics/privacy.d.ts.map +0 -1
  361. package/dist/analytics/privacy.js +0 -20
  362. package/dist/analytics/privacy.js.map +0 -1
  363. package/dist/analytics/remote-submission/cursor-manager.d.ts +0 -71
  364. package/dist/analytics/remote-submission/cursor-manager.d.ts.map +0 -1
  365. package/dist/analytics/remote-submission/cursor-manager.js +0 -204
  366. package/dist/analytics/remote-submission/cursor-manager.js.map +0 -1
  367. package/dist/analytics/remote-submission/index.d.ts +0 -12
  368. package/dist/analytics/remote-submission/index.d.ts.map +0 -1
  369. package/dist/analytics/remote-submission/index.js +0 -11
  370. package/dist/analytics/remote-submission/index.js.map +0 -1
  371. package/dist/analytics/remote-submission/lock-manager.d.ts +0 -71
  372. package/dist/analytics/remote-submission/lock-manager.d.ts.map +0 -1
  373. package/dist/analytics/remote-submission/lock-manager.js +0 -238
  374. package/dist/analytics/remote-submission/lock-manager.js.map +0 -1
  375. package/dist/analytics/remote-submission/metric-transformer.d.ts +0 -21
  376. package/dist/analytics/remote-submission/metric-transformer.d.ts.map +0 -1
  377. package/dist/analytics/remote-submission/metric-transformer.js +0 -82
  378. package/dist/analytics/remote-submission/metric-transformer.js.map +0 -1
  379. package/dist/analytics/remote-submission/submitter.d.ts +0 -79
  380. package/dist/analytics/remote-submission/submitter.d.ts.map +0 -1
  381. package/dist/analytics/remote-submission/submitter.js +0 -362
  382. package/dist/analytics/remote-submission/submitter.js.map +0 -1
  383. package/dist/analytics/remote-submission/types.d.ts +0 -123
  384. package/dist/analytics/remote-submission/types.d.ts.map +0 -1
  385. package/dist/analytics/remote-submission/types.js +0 -13
  386. package/dist/analytics/remote-submission/types.js.map +0 -1
  387. package/dist/analytics/session.d.ts +0 -56
  388. package/dist/analytics/session.d.ts.map +0 -1
  389. package/dist/analytics/session.js +0 -95
  390. package/dist/analytics/session.js.map +0 -1
  391. package/dist/analytics/types.d.ts +0 -104
  392. package/dist/analytics/types.d.ts.map +0 -1
  393. package/dist/analytics/types.js +0 -15
  394. package/dist/analytics/types.js.map +0 -1
  395. package/dist/analytics/writer.d.ts +0 -18
  396. package/dist/analytics/writer.d.ts.map +0 -1
  397. package/dist/analytics/writer.js +0 -44
  398. package/dist/analytics/writer.js.map +0 -1
  399. package/dist/cli/commands/analytics.d.ts +0 -3
  400. package/dist/cli/commands/analytics.d.ts.map +0 -1
  401. package/dist/cli/commands/analytics.js +0 -748
  402. package/dist/cli/commands/analytics.js.map +0 -1
  403. package/dist/utils/analytics-reader.d.ts +0 -117
  404. package/dist/utils/analytics-reader.d.ts.map +0 -1
  405. package/dist/utils/analytics-reader.js +0 -421
  406. package/dist/utils/analytics-reader.js.map +0 -1
  407. package/dist/utils/date-formatter.d.ts +0 -88
  408. package/dist/utils/date-formatter.d.ts.map +0 -1
  409. package/dist/utils/date-formatter.js +0 -133
  410. package/dist/utils/date-formatter.js.map +0 -1
@@ -1,280 +0,0 @@
1
- /**
2
- * Analytics system for CodeMie CLI
3
- * Provides unified analytics tracking across all agents
4
- */
5
- import { EventCollector } from './collector.js';
6
- import { SessionManager } from './session.js';
7
- import { loadAnalyticsConfig } from './config.js';
8
- import { getInstallationId } from '../utils/installation-id.js';
9
- /**
10
- * Main analytics class
11
- * Handles event tracking, buffering, and persistence
12
- */
13
- export class Analytics {
14
- collector = null;
15
- writer = null;
16
- session;
17
- config;
18
- installationId = null;
19
- // Plugin system for extensibility
20
- plugins = [];
21
- constructor(config = {}) {
22
- this.config = loadAnalyticsConfig(config);
23
- this.session = new SessionManager();
24
- // Only initialize if enabled
25
- if (this.config.enabled) {
26
- this.initialize();
27
- }
28
- }
29
- /**
30
- * Register an analytics plugin (Open/Closed principle)
31
- * Allows adding custom metrics without modifying core
32
- */
33
- registerPlugin(plugin) {
34
- this.plugins.push(plugin);
35
- // Initialize plugin if it has init method
36
- if (plugin.initialize) {
37
- plugin.initialize(this).catch(error => {
38
- console.error(`Plugin "${plugin.name}" initialization failed:`, error);
39
- });
40
- }
41
- }
42
- /**
43
- * Get all registered plugins
44
- */
45
- getPlugins() {
46
- return [...this.plugins];
47
- }
48
- /**
49
- * Get current metrics from all plugins
50
- * Useful for displaying aggregated stats
51
- */
52
- getPluginMetrics() {
53
- const allMetrics = {};
54
- for (const plugin of this.plugins) {
55
- if (plugin.getMetrics) {
56
- try {
57
- allMetrics[plugin.name] = plugin.getMetrics();
58
- }
59
- catch (error) {
60
- console.error(`Error getting metrics from plugin "${plugin.name}":`, error);
61
- allMetrics[plugin.name] = { error: 'Failed to get metrics' };
62
- }
63
- }
64
- }
65
- return allMetrics;
66
- }
67
- /**
68
- * Get metrics from a specific plugin by name
69
- */
70
- getPluginMetricsByName(pluginName) {
71
- const plugin = this.plugins.find(p => p.name === pluginName);
72
- if (!plugin || !plugin.getMetrics) {
73
- return null;
74
- }
75
- try {
76
- return plugin.getMetrics();
77
- }
78
- catch (error) {
79
- console.error(`Error getting metrics from plugin "${pluginName}":`, error);
80
- return null;
81
- }
82
- }
83
- /**
84
- * Initialize analytics components
85
- */
86
- initialize() {
87
- this.collector = new EventCollector({
88
- maxBufferSize: this.config.maxBufferSize,
89
- flushInterval: this.config.flushInterval,
90
- });
91
- // Writer disabled - infrastructure events no longer written to files
92
- // Usage metrics are written by RemoteAnalyticsSubmitter in proxy
93
- this.writer = null;
94
- }
95
- /**
96
- * Track an analytics event
97
- */
98
- async track(eventType, attributes = {}, metrics) {
99
- if (!this.config.enabled || !this.collector || !this.session.isActive) {
100
- return;
101
- }
102
- try {
103
- // Lazy load installation ID
104
- if (!this.installationId) {
105
- this.installationId = await getInstallationId();
106
- }
107
- let event = {
108
- timestamp: new Date().toISOString(),
109
- eventType,
110
- sessionId: this.session.id,
111
- installationId: this.installationId,
112
- agent: this.session.agent,
113
- agentVersion: this.session.agentVersion,
114
- cliVersion: this.session.cliVersion,
115
- profile: this.session.profile,
116
- provider: this.session.provider,
117
- model: this.session.model,
118
- attributes,
119
- metrics: metrics || {},
120
- };
121
- // Process through plugins
122
- for (const plugin of this.plugins) {
123
- try {
124
- // Allow plugins to transform event (but not add aggregate metrics)
125
- if (plugin.processEvent) {
126
- const processed = await plugin.processEvent(event);
127
- if (!processed) {
128
- // Plugin filtered out event
129
- return;
130
- }
131
- event = processed;
132
- }
133
- }
134
- catch (pluginError) {
135
- // Plugin errors should not break analytics
136
- console.error(`Plugin "${plugin.name}" error:`, pluginError);
137
- }
138
- }
139
- this.collector.add(event);
140
- }
141
- catch (error) {
142
- // Silently fail - don't block agent execution
143
- console.error('Analytics tracking error:', error);
144
- }
145
- }
146
- /**
147
- * Track API response
148
- */
149
- async trackAPIResponse(data) {
150
- const attributes = {};
151
- if (data.statusCode) {
152
- attributes.statusCode = data.statusCode;
153
- }
154
- const metrics = {};
155
- if (data.latency)
156
- metrics.latencyMs = data.latency;
157
- await this.track('api_response', attributes, metrics);
158
- }
159
- /**
160
- * Start analytics session
161
- */
162
- startSession(config) {
163
- this.session.start(config);
164
- // Reset all plugin metrics for new session
165
- for (const plugin of this.plugins) {
166
- if (plugin.reset) {
167
- try {
168
- plugin.reset();
169
- }
170
- catch (error) {
171
- console.error(`Error resetting plugin "${plugin.name}":`, error);
172
- }
173
- }
174
- }
175
- void this.track('session_start', {
176
- workingDir: config.workingDir,
177
- interactive: config.interactive,
178
- });
179
- }
180
- /**
181
- * End analytics session
182
- */
183
- async endSession(exitReason, metrics) {
184
- if (!this.session.isActive) {
185
- return;
186
- }
187
- // Only track session duration in milliseconds
188
- const sessionMetrics = {
189
- durationMs: this.session.durationMs,
190
- ...metrics,
191
- };
192
- const attributes = {
193
- exitReason,
194
- };
195
- await this.track('session_end', attributes, sessionMetrics);
196
- // Force flush on session end
197
- await this.flush();
198
- this.session.end();
199
- }
200
- /**
201
- * Flush buffered events
202
- */
203
- async flush() {
204
- if (this.collector) {
205
- await this.collector.flush();
206
- }
207
- }
208
- /**
209
- * Cleanup and destroy analytics
210
- */
211
- async destroy() {
212
- if (this.collector) {
213
- await this.flush();
214
- this.collector.destroy();
215
- }
216
- }
217
- /**
218
- * Check if analytics is enabled
219
- */
220
- get isEnabled() {
221
- return this.config.enabled;
222
- }
223
- }
224
- /**
225
- * Singleton analytics instance
226
- */
227
- let analyticsInstance = null;
228
- /**
229
- * Initialize global analytics instance
230
- * Automatically registers default plugins for API tracking
231
- */
232
- export function initAnalytics(config = {}, options = { registerDefaultPlugins: true }) {
233
- analyticsInstance = new Analytics(config);
234
- // Register default plugins if enabled
235
- if (options.registerDefaultPlugins && analyticsInstance.isEnabled) {
236
- registerDefaultPlugins(analyticsInstance);
237
- }
238
- }
239
- /**
240
- * Register default analytics plugins
241
- * Tracks API request/response patterns, success rates, and latency
242
- */
243
- export function registerDefaultPlugins(analytics) {
244
- try {
245
- // Import plugins dynamically to avoid unnecessary loading
246
- import('./plugins/index.js').then(({ APIMetricsPlugin, ModelMetricsPlugin, ProviderMetricsPlugin }) => {
247
- analytics.registerPlugin(new APIMetricsPlugin());
248
- analytics.registerPlugin(new ModelMetricsPlugin());
249
- analytics.registerPlugin(new ProviderMetricsPlugin());
250
- }).catch(error => {
251
- // Plugins are optional - don't break if they fail to load
252
- console.warn('Failed to load default analytics plugins:', error);
253
- });
254
- }
255
- catch (error) {
256
- console.warn('Failed to register default analytics plugins:', error);
257
- }
258
- }
259
- /**
260
- * Get global analytics instance
261
- * Auto-initializes if not already initialized
262
- */
263
- export function getAnalytics() {
264
- if (!analyticsInstance) {
265
- // Auto-initialize with defaults
266
- initAnalytics();
267
- }
268
- return analyticsInstance; // Safe: always initialized above
269
- }
270
- /**
271
- * Destroy global analytics instance
272
- */
273
- export async function destroyAnalytics() {
274
- if (analyticsInstance) {
275
- await analyticsInstance.destroy();
276
- analyticsInstance = null;
277
- }
278
- }
279
- export { DEFAULT_ANALYTICS_CONFIG } from './types.js';
280
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/analytics/index.ts"],"names":[],"mappings":"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"}
@@ -1,26 +0,0 @@
1
- /**
2
- * API Metrics Plugin
3
- *
4
- * Tracks API request/response patterns, success/failure rates, and latency.
5
- * Useful for monitoring 3rd party agent API health and performance.
6
- */
7
- import { AnalyticsPlugin } from './types.js';
8
- import { AnalyticsEvent } from '../types.js';
9
- export declare class APIMetricsPlugin implements AnalyticsPlugin {
10
- name: string;
11
- version: string;
12
- private sessionMetrics;
13
- /**
14
- * Process events to track metrics (no enrichment to individual events)
15
- */
16
- processEvent(event: AnalyticsEvent): Promise<AnalyticsEvent | null>;
17
- /**
18
- * Get current aggregated metrics
19
- */
20
- getMetrics(): Record<string, unknown>;
21
- /**
22
- * Reset metrics (useful for new sessions)
23
- */
24
- reset(): void;
25
- }
26
- //# sourceMappingURL=api-metrics.plugin.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"api-metrics.plugin.d.ts","sourceRoot":"","sources":["../../../src/analytics/plugins/api-metrics.plugin.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE7C,qBAAa,gBAAiB,YAAW,eAAe;IACtD,IAAI,SAAiB;IACrB,OAAO,SAAW;IAGlB,OAAO,CAAC,cAAc,CASpB;IAEF;;OAEG;IACG,YAAY,CAAC,KAAK,EAAE,cAAc,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;IAyCzE;;OAEG;IACH,UAAU,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAsBrC;;OAEG;IACH,KAAK,IAAI,IAAI;CAYd"}
@@ -1,97 +0,0 @@
1
- /**
2
- * API Metrics Plugin
3
- *
4
- * Tracks API request/response patterns, success/failure rates, and latency.
5
- * Useful for monitoring 3rd party agent API health and performance.
6
- */
7
- export class APIMetricsPlugin {
8
- name = 'api-metrics';
9
- version = '1.0.0';
10
- // Track metrics per session
11
- sessionMetrics = {
12
- totalRequests: 0,
13
- successfulRequests: 0,
14
- failedRequests: 0,
15
- totalLatency: 0,
16
- minLatency: Infinity,
17
- maxLatency: 0,
18
- statusCodes: {},
19
- errorTypes: {}
20
- };
21
- /**
22
- * Process events to track metrics (no enrichment to individual events)
23
- */
24
- async processEvent(event) {
25
- // Track API request metrics
26
- if (event.eventType === 'api_request') {
27
- this.sessionMetrics.totalRequests++;
28
- }
29
- // Track API response metrics
30
- if (event.eventType === 'api_response') {
31
- const statusCode = event.attributes.statusCode;
32
- const latency = event.metrics?.latencyMs;
33
- // Count successful vs failed
34
- if (statusCode >= 200 && statusCode < 400) {
35
- this.sessionMetrics.successfulRequests++;
36
- }
37
- else {
38
- this.sessionMetrics.failedRequests++;
39
- }
40
- // Track status codes
41
- this.sessionMetrics.statusCodes[statusCode] =
42
- (this.sessionMetrics.statusCodes[statusCode] || 0) + 1;
43
- // Track latency stats
44
- if (latency) {
45
- this.sessionMetrics.totalLatency += latency;
46
- this.sessionMetrics.minLatency = Math.min(this.sessionMetrics.minLatency, latency);
47
- this.sessionMetrics.maxLatency = Math.max(this.sessionMetrics.maxLatency, latency);
48
- }
49
- }
50
- // Track proxy errors
51
- if (event.eventType === 'proxy_error') {
52
- const errorType = event.attributes.errorType || 'unknown';
53
- this.sessionMetrics.errorTypes[errorType] =
54
- (this.sessionMetrics.errorTypes[errorType] || 0) + 1;
55
- }
56
- // Return event unchanged (no enrichment)
57
- return event;
58
- }
59
- /**
60
- * Get current aggregated metrics
61
- */
62
- getMetrics() {
63
- const successRate = this.sessionMetrics.totalRequests > 0
64
- ? this.sessionMetrics.successfulRequests / this.sessionMetrics.totalRequests
65
- : 0;
66
- const averageLatency = this.sessionMetrics.successfulRequests > 0
67
- ? this.sessionMetrics.totalLatency / this.sessionMetrics.successfulRequests
68
- : 0;
69
- return {
70
- totalRequests: this.sessionMetrics.totalRequests,
71
- successfulRequests: this.sessionMetrics.successfulRequests,
72
- failedRequests: this.sessionMetrics.failedRequests,
73
- successRate: Math.round(successRate * 100) / 100,
74
- averageLatencyMs: Math.round(averageLatency),
75
- minLatencyMs: this.sessionMetrics.minLatency === Infinity ? 0 : this.sessionMetrics.minLatency,
76
- maxLatencyMs: this.sessionMetrics.maxLatency,
77
- statusCodes: { ...this.sessionMetrics.statusCodes },
78
- errorTypes: { ...this.sessionMetrics.errorTypes }
79
- };
80
- }
81
- /**
82
- * Reset metrics (useful for new sessions)
83
- */
84
- reset() {
85
- this.sessionMetrics = {
86
- totalRequests: 0,
87
- successfulRequests: 0,
88
- failedRequests: 0,
89
- totalLatency: 0,
90
- minLatency: Infinity,
91
- maxLatency: 0,
92
- statusCodes: {},
93
- errorTypes: {}
94
- };
95
- }
96
- }
97
- //# sourceMappingURL=api-metrics.plugin.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"api-metrics.plugin.js","sourceRoot":"","sources":["../../../src/analytics/plugins/api-metrics.plugin.ts"],"names":[],"mappings":"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"}
@@ -1,15 +0,0 @@
1
- /**
2
- * Analytics Plugins
3
- *
4
- * Export all analytics plugins for easy registration.
5
- *
6
- * Default plugins track API request/response patterns:
7
- * - APIMetricsPlugin: Overall API success/failure rates, latency
8
- * - ModelMetricsPlugin: Metrics per model (Claude, GPT, Gemini)
9
- * - ProviderMetricsPlugin: Metrics per provider (ai-run-sso, litellm, etc.)
10
- */
11
- export { AnalyticsPlugin, AnalyticsPluginRegistry } from './types.js';
12
- export { APIMetricsPlugin } from './api-metrics.plugin.js';
13
- export { ModelMetricsPlugin } from './model-metrics.plugin.js';
14
- export { ProviderMetricsPlugin } from './provider-metrics.plugin.js';
15
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/analytics/plugins/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,eAAe,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AACtE,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC"}
@@ -1,15 +0,0 @@
1
- /**
2
- * Analytics Plugins
3
- *
4
- * Export all analytics plugins for easy registration.
5
- *
6
- * Default plugins track API request/response patterns:
7
- * - APIMetricsPlugin: Overall API success/failure rates, latency
8
- * - ModelMetricsPlugin: Metrics per model (Claude, GPT, Gemini)
9
- * - ProviderMetricsPlugin: Metrics per provider (ai-run-sso, litellm, etc.)
10
- */
11
- export { AnalyticsPluginRegistry } from './types.js';
12
- export { APIMetricsPlugin } from './api-metrics.plugin.js';
13
- export { ModelMetricsPlugin } from './model-metrics.plugin.js';
14
- export { ProviderMetricsPlugin } from './provider-metrics.plugin.js';
15
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/analytics/plugins/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAmB,uBAAuB,EAAE,MAAM,YAAY,CAAC;AACtE,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC"}
@@ -1,39 +0,0 @@
1
- /**
2
- * Model Metrics Plugin
3
- *
4
- * Tracks metrics per model (Claude, GPT, Gemini, etc.).
5
- * Helps identify which models perform better for different use cases.
6
- */
7
- import { AnalyticsPlugin } from './types.js';
8
- import { AnalyticsEvent } from '../types.js';
9
- interface ModelStats {
10
- requestCount: number;
11
- successCount: number;
12
- failureCount: number;
13
- totalLatency: number;
14
- totalTokens: number;
15
- }
16
- export declare class ModelMetricsPlugin implements AnalyticsPlugin {
17
- name: string;
18
- version: string;
19
- private modelMetrics;
20
- /**
21
- * Process events to track metrics (no enrichment to individual events)
22
- */
23
- processEvent(event: AnalyticsEvent): Promise<AnalyticsEvent | null>;
24
- /**
25
- * Get current aggregated metrics for all models
26
- */
27
- getMetrics(): Record<string, unknown>;
28
- /**
29
- * Reset metrics (useful for new sessions)
30
- */
31
- reset(): void;
32
- /**
33
- * Get all model metrics (useful for session end reporting)
34
- * @deprecated Use getMetrics() instead
35
- */
36
- getAllModelMetrics(): Record<string, ModelStats>;
37
- }
38
- export {};
39
- //# sourceMappingURL=model-metrics.plugin.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"model-metrics.plugin.d.ts","sourceRoot":"","sources":["../../../src/analytics/plugins/model-metrics.plugin.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE7C,UAAU,UAAU;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,qBAAa,kBAAmB,YAAW,eAAe;IACxD,IAAI,SAAmB;IACvB,OAAO,SAAW;IAGlB,OAAO,CAAC,YAAY,CAAiC;IAErD;;OAEG;IACG,YAAY,CAAC,KAAK,EAAE,cAAc,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;IAuDzE;;OAEG;IACH,UAAU,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IA4BrC;;OAEG;IACH,KAAK,IAAI,IAAI;IAIb;;;OAGG;IACH,kBAAkB,IAAI,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC;CAOjD"}
@@ -1,105 +0,0 @@
1
- /**
2
- * Model Metrics Plugin
3
- *
4
- * Tracks metrics per model (Claude, GPT, Gemini, etc.).
5
- * Helps identify which models perform better for different use cases.
6
- */
7
- export class ModelMetricsPlugin {
8
- name = 'model-metrics';
9
- version = '1.0.0';
10
- // Track metrics per model
11
- modelMetrics = new Map();
12
- /**
13
- * Process events to track metrics (no enrichment to individual events)
14
- */
15
- async processEvent(event) {
16
- // Extract model from event
17
- const model = event.model || event.attributes.model;
18
- if (!model) {
19
- return event;
20
- }
21
- // Initialize model stats if needed
22
- if (!this.modelMetrics.has(model)) {
23
- this.modelMetrics.set(model, {
24
- requestCount: 0,
25
- successCount: 0,
26
- failureCount: 0,
27
- totalLatency: 0,
28
- totalTokens: 0
29
- });
30
- }
31
- const stats = this.modelMetrics.get(model);
32
- // Track API requests
33
- if (event.eventType === 'api_request') {
34
- stats.requestCount++;
35
- }
36
- // Track API responses
37
- if (event.eventType === 'api_response') {
38
- const statusCode = event.attributes.statusCode;
39
- const latency = event.metrics?.latencyMs;
40
- if (statusCode >= 200 && statusCode < 400) {
41
- stats.successCount++;
42
- }
43
- else {
44
- stats.failureCount++;
45
- }
46
- if (latency) {
47
- stats.totalLatency += latency;
48
- }
49
- // Track token usage if available
50
- const responseBody = event.attributes.responseBody;
51
- if (responseBody?.usage) {
52
- const totalTokens = responseBody.usage.total_tokens ||
53
- (responseBody.usage.input_tokens + responseBody.usage.output_tokens) ||
54
- 0;
55
- stats.totalTokens += totalTokens;
56
- }
57
- }
58
- // Return event unchanged (no enrichment)
59
- return event;
60
- }
61
- /**
62
- * Get current aggregated metrics for all models
63
- */
64
- getMetrics() {
65
- const modelMetrics = {};
66
- for (const [model, stats] of this.modelMetrics.entries()) {
67
- const successRate = stats.requestCount > 0
68
- ? stats.successCount / stats.requestCount
69
- : 0;
70
- const avgLatency = stats.successCount > 0
71
- ? stats.totalLatency / stats.successCount
72
- : 0;
73
- modelMetrics[model] = {
74
- requestCount: stats.requestCount,
75
- successCount: stats.successCount,
76
- failureCount: stats.failureCount,
77
- successRate: Math.round(successRate * 100) / 100,
78
- averageLatencyMs: Math.round(avgLatency),
79
- totalTokens: stats.totalTokens
80
- };
81
- }
82
- return {
83
- models: modelMetrics,
84
- modelCount: this.modelMetrics.size
85
- };
86
- }
87
- /**
88
- * Reset metrics (useful for new sessions)
89
- */
90
- reset() {
91
- this.modelMetrics.clear();
92
- }
93
- /**
94
- * Get all model metrics (useful for session end reporting)
95
- * @deprecated Use getMetrics() instead
96
- */
97
- getAllModelMetrics() {
98
- const result = {};
99
- for (const [model, stats] of this.modelMetrics.entries()) {
100
- result[model] = { ...stats };
101
- }
102
- return result;
103
- }
104
- }
105
- //# sourceMappingURL=model-metrics.plugin.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"model-metrics.plugin.js","sourceRoot":"","sources":["../../../src/analytics/plugins/model-metrics.plugin.ts"],"names":[],"mappings":"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"}
@@ -1,41 +0,0 @@
1
- /**
2
- * Provider Metrics Plugin
3
- *
4
- * Tracks metrics per provider (ai-run-sso, litellm, openai, azure, bedrock).
5
- * Helps compare provider reliability and performance.
6
- */
7
- import { AnalyticsPlugin } from './types.js';
8
- import { AnalyticsEvent } from '../types.js';
9
- interface ProviderStats {
10
- requestCount: number;
11
- successCount: number;
12
- failureCount: number;
13
- totalLatency: number;
14
- timeouts: number;
15
- networkErrors: number;
16
- authErrors: number;
17
- }
18
- export declare class ProviderMetricsPlugin implements AnalyticsPlugin {
19
- name: string;
20
- version: string;
21
- private providerMetrics;
22
- /**
23
- * Process events to track metrics (no enrichment to individual events)
24
- */
25
- processEvent(event: AnalyticsEvent): Promise<AnalyticsEvent | null>;
26
- /**
27
- * Get current aggregated metrics for all providers
28
- */
29
- getMetrics(): Record<string, unknown>;
30
- /**
31
- * Reset metrics (useful for new sessions)
32
- */
33
- reset(): void;
34
- /**
35
- * Get all provider metrics (useful for session end reporting)
36
- * @deprecated Use getMetrics() instead
37
- */
38
- getAllProviderMetrics(): Record<string, ProviderStats>;
39
- }
40
- export {};
41
- //# sourceMappingURL=provider-metrics.plugin.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"provider-metrics.plugin.d.ts","sourceRoot":"","sources":["../../../src/analytics/plugins/provider-metrics.plugin.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE7C,UAAU,aAAa;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,qBAAa,qBAAsB,YAAW,eAAe;IAC3D,IAAI,SAAsB;IAC1B,OAAO,SAAW;IAGlB,OAAO,CAAC,eAAe,CAAoC;IAE3D;;OAEG;IACG,YAAY,CAAC,KAAK,EAAE,cAAc,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;IAoEzE;;OAEG;IACH,UAAU,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAmCrC;;OAEG;IACH,KAAK,IAAI,IAAI;IAIb;;;OAGG;IACH,qBAAqB,IAAI,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC;CAOvD"}