@codemieai/code 0.0.15 → 0.0.17

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 (608) hide show
  1. package/README.md +86 -14
  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 +5 -34
  9. package/dist/agents/codemie-code/agent.js.map +1 -1
  10. package/dist/agents/codemie-code/config.d.ts.map +1 -1
  11. package/dist/agents/codemie-code/config.js +12 -4
  12. package/dist/agents/codemie-code/config.js.map +1 -1
  13. package/dist/agents/codemie-code/tools/planning.d.ts +1 -1
  14. package/dist/agents/core/AgentCLI.d.ts.map +1 -1
  15. package/dist/agents/core/AgentCLI.js +30 -63
  16. package/dist/agents/core/AgentCLI.js.map +1 -1
  17. package/dist/agents/core/BaseAgentAdapter.d.ts +10 -6
  18. package/dist/agents/core/BaseAgentAdapter.d.ts.map +1 -1
  19. package/dist/agents/core/BaseAgentAdapter.js +108 -36
  20. package/dist/agents/core/BaseAgentAdapter.js.map +1 -1
  21. package/dist/agents/core/BaseMetricsAdapter.d.ts +64 -0
  22. package/dist/agents/core/BaseMetricsAdapter.d.ts.map +1 -0
  23. package/dist/agents/core/BaseMetricsAdapter.js +74 -0
  24. package/dist/agents/core/BaseMetricsAdapter.js.map +1 -0
  25. package/dist/agents/core/types.d.ts +1 -0
  26. package/dist/agents/core/types.d.ts.map +1 -1
  27. package/dist/agents/plugins/claude.metrics.d.ts +112 -0
  28. package/dist/agents/plugins/claude.metrics.d.ts.map +1 -0
  29. package/dist/agents/plugins/claude.metrics.js +700 -0
  30. package/dist/agents/plugins/claude.metrics.js.map +1 -0
  31. package/dist/agents/plugins/claude.plugin.d.ts +9 -0
  32. package/dist/agents/plugins/claude.plugin.d.ts.map +1 -1
  33. package/dist/agents/plugins/claude.plugin.js +52 -10
  34. package/dist/agents/plugins/claude.plugin.js.map +1 -1
  35. package/dist/agents/plugins/codemie-code.plugin.d.ts.map +1 -1
  36. package/dist/agents/plugins/codemie-code.plugin.js +46 -14
  37. package/dist/agents/plugins/codemie-code.plugin.js.map +1 -1
  38. package/dist/agents/plugins/codex.plugin.d.ts.map +1 -1
  39. package/dist/agents/plugins/codex.plugin.js +2 -4
  40. package/dist/agents/plugins/codex.plugin.js.map +1 -1
  41. package/dist/agents/plugins/deepagents.plugin.js +1 -1
  42. package/dist/agents/plugins/deepagents.plugin.js.map +1 -1
  43. package/dist/agents/plugins/gemini.plugin.d.ts.map +1 -1
  44. package/dist/agents/plugins/gemini.plugin.js +1 -8
  45. package/dist/agents/plugins/gemini.plugin.js.map +1 -1
  46. package/dist/agents/plugins/history-parser.d.ts +52 -0
  47. package/dist/agents/plugins/history-parser.d.ts.map +1 -0
  48. package/dist/agents/plugins/history-parser.js +155 -0
  49. package/dist/agents/plugins/history-parser.js.map +1 -0
  50. package/dist/cli/commands/analytics/aggregator.d.ts +58 -0
  51. package/dist/cli/commands/analytics/aggregator.d.ts.map +1 -0
  52. package/dist/cli/commands/analytics/aggregator.js +702 -0
  53. package/dist/cli/commands/analytics/aggregator.js.map +1 -0
  54. package/dist/cli/commands/analytics/data-loader.d.ts +84 -0
  55. package/dist/cli/commands/analytics/data-loader.d.ts.map +1 -0
  56. package/dist/cli/commands/analytics/data-loader.js +211 -0
  57. package/dist/cli/commands/analytics/data-loader.js.map +1 -0
  58. package/dist/cli/commands/analytics/exporter.d.ts +20 -0
  59. package/dist/cli/commands/analytics/exporter.d.ts.map +1 -0
  60. package/dist/cli/commands/analytics/exporter.js +103 -0
  61. package/dist/cli/commands/analytics/exporter.js.map +1 -0
  62. package/dist/cli/commands/analytics/formatter.d.ts +49 -0
  63. package/dist/cli/commands/analytics/formatter.d.ts.map +1 -0
  64. package/dist/cli/commands/analytics/formatter.js +309 -0
  65. package/dist/cli/commands/analytics/formatter.js.map +1 -0
  66. package/dist/cli/commands/analytics/index.d.ts +6 -0
  67. package/dist/cli/commands/analytics/index.d.ts.map +1 -0
  68. package/dist/cli/commands/analytics/index.js +157 -0
  69. package/dist/cli/commands/analytics/index.js.map +1 -0
  70. package/dist/cli/commands/analytics/model-normalizer.d.ts +21 -0
  71. package/dist/cli/commands/analytics/model-normalizer.d.ts.map +1 -0
  72. package/dist/cli/commands/analytics/model-normalizer.js +44 -0
  73. package/dist/cli/commands/analytics/model-normalizer.js.map +1 -0
  74. package/dist/cli/commands/analytics/types.d.ts +188 -0
  75. package/dist/cli/commands/analytics/types.d.ts.map +1 -0
  76. package/dist/cli/commands/analytics/types.js +6 -0
  77. package/dist/cli/commands/analytics/types.js.map +1 -0
  78. package/dist/cli/commands/auth.d.ts.map +1 -1
  79. package/dist/cli/commands/auth.js +10 -5
  80. package/dist/cli/commands/auth.js.map +1 -1
  81. package/dist/cli/commands/doctor/checks/AIConfigCheck.d.ts.map +1 -1
  82. package/dist/cli/commands/doctor/checks/AIConfigCheck.js +12 -5
  83. package/dist/cli/commands/doctor/checks/AIConfigCheck.js.map +1 -1
  84. package/dist/cli/commands/doctor/checks/AwsCliCheck.d.ts +9 -0
  85. package/dist/cli/commands/doctor/checks/AwsCliCheck.d.ts.map +1 -0
  86. package/dist/cli/commands/doctor/checks/AwsCliCheck.js +28 -0
  87. package/dist/cli/commands/doctor/checks/AwsCliCheck.js.map +1 -0
  88. package/dist/cli/commands/doctor/checks/PythonCheck.d.ts.map +1 -1
  89. package/dist/cli/commands/doctor/checks/PythonCheck.js +10 -0
  90. package/dist/cli/commands/doctor/checks/PythonCheck.js.map +1 -1
  91. package/dist/cli/commands/doctor/checks/WorkflowsCheck.d.ts.map +1 -1
  92. package/dist/cli/commands/doctor/checks/WorkflowsCheck.js +2 -1
  93. package/dist/cli/commands/doctor/checks/WorkflowsCheck.js.map +1 -1
  94. package/dist/cli/commands/doctor/checks/index.d.ts +1 -0
  95. package/dist/cli/commands/doctor/checks/index.d.ts.map +1 -1
  96. package/dist/cli/commands/doctor/checks/index.js +1 -0
  97. package/dist/cli/commands/doctor/checks/index.js.map +1 -1
  98. package/dist/cli/commands/doctor/formatter.d.ts +1 -1
  99. package/dist/cli/commands/doctor/formatter.d.ts.map +1 -1
  100. package/dist/cli/commands/doctor/formatter.js +1 -6
  101. package/dist/cli/commands/doctor/formatter.js.map +1 -1
  102. package/dist/cli/commands/doctor/index.d.ts.map +1 -1
  103. package/dist/cli/commands/doctor/index.js +107 -10
  104. package/dist/cli/commands/doctor/index.js.map +1 -1
  105. package/dist/cli/commands/doctor/type-adapters.d.ts +18 -0
  106. package/dist/cli/commands/doctor/type-adapters.d.ts.map +1 -0
  107. package/dist/cli/commands/doctor/type-adapters.js +75 -0
  108. package/dist/cli/commands/doctor/type-adapters.js.map +1 -0
  109. package/dist/cli/commands/install.d.ts.map +1 -1
  110. package/dist/cli/commands/install.js +1 -6
  111. package/dist/cli/commands/install.js.map +1 -1
  112. package/dist/cli/commands/list.d.ts.map +1 -1
  113. package/dist/cli/commands/list.js +0 -5
  114. package/dist/cli/commands/list.js.map +1 -1
  115. package/dist/cli/commands/profile.d.ts.map +1 -1
  116. package/dist/cli/commands/profile.js +130 -92
  117. package/dist/cli/commands/profile.js.map +1 -1
  118. package/dist/cli/commands/setup.d.ts.map +1 -1
  119. package/dist/cli/commands/setup.js +147 -668
  120. package/dist/cli/commands/setup.js.map +1 -1
  121. package/dist/cli/index.d.ts +1 -1
  122. package/dist/cli/index.d.ts.map +1 -1
  123. package/dist/cli/index.js +5 -2
  124. package/dist/cli/index.js.map +1 -1
  125. package/dist/env/types.d.ts +14 -2
  126. package/dist/env/types.d.ts.map +1 -1
  127. package/dist/env/types.js.map +1 -1
  128. package/dist/metrics/MetricsOrchestrator.d.ts +67 -0
  129. package/dist/metrics/MetricsOrchestrator.d.ts.map +1 -0
  130. package/dist/metrics/MetricsOrchestrator.js +287 -0
  131. package/dist/metrics/MetricsOrchestrator.js.map +1 -0
  132. package/dist/metrics/config.d.ts +38 -0
  133. package/dist/metrics/config.d.ts.map +1 -0
  134. package/dist/metrics/config.js +80 -0
  135. package/dist/metrics/config.js.map +1 -0
  136. package/dist/metrics/core/DeltaWriter.d.ts +49 -0
  137. package/dist/metrics/core/DeltaWriter.d.ts.map +1 -0
  138. package/dist/metrics/core/DeltaWriter.js +146 -0
  139. package/dist/metrics/core/DeltaWriter.js.map +1 -0
  140. package/dist/metrics/core/FileSnapshotter.d.ts +22 -0
  141. package/dist/metrics/core/FileSnapshotter.d.ts.map +1 -0
  142. package/dist/metrics/core/FileSnapshotter.js +74 -0
  143. package/dist/metrics/core/FileSnapshotter.js.map +1 -0
  144. package/dist/metrics/core/SessionCorrelator.d.ts +34 -0
  145. package/dist/metrics/core/SessionCorrelator.d.ts.map +1 -0
  146. package/dist/metrics/core/SessionCorrelator.js +115 -0
  147. package/dist/metrics/core/SessionCorrelator.js.map +1 -0
  148. package/dist/metrics/core/SyncStateManager.d.ts +69 -0
  149. package/dist/metrics/core/SyncStateManager.d.ts.map +1 -0
  150. package/dist/metrics/core/SyncStateManager.js +284 -0
  151. package/dist/metrics/core/SyncStateManager.js.map +1 -0
  152. package/dist/metrics/index.d.ts +9 -0
  153. package/dist/metrics/index.d.ts.map +1 -0
  154. package/dist/metrics/index.js +11 -0
  155. package/dist/metrics/index.js.map +1 -0
  156. package/dist/metrics/session/SessionStore.d.ts +43 -0
  157. package/dist/metrics/session/SessionStore.d.ts.map +1 -0
  158. package/dist/metrics/session/SessionStore.js +142 -0
  159. package/dist/metrics/session/SessionStore.js.map +1 -0
  160. package/dist/metrics/sync/MetricsApiClient.d.ts +32 -0
  161. package/dist/metrics/sync/MetricsApiClient.d.ts.map +1 -0
  162. package/dist/metrics/sync/MetricsApiClient.js +155 -0
  163. package/dist/metrics/sync/MetricsApiClient.js.map +1 -0
  164. package/dist/metrics/sync/aggregator.d.ts +13 -0
  165. package/dist/metrics/sync/aggregator.d.ts.map +1 -0
  166. package/dist/metrics/sync/aggregator.js +196 -0
  167. package/dist/metrics/sync/aggregator.js.map +1 -0
  168. package/dist/metrics/sync/index.d.ts +10 -0
  169. package/dist/metrics/sync/index.d.ts.map +1 -0
  170. package/dist/metrics/sync/index.js +10 -0
  171. package/dist/metrics/sync/index.js.map +1 -0
  172. package/dist/metrics/sync/jsonl-writer.d.ts +28 -0
  173. package/dist/metrics/sync/jsonl-writer.d.ts.map +1 -0
  174. package/dist/metrics/sync/jsonl-writer.js +72 -0
  175. package/dist/metrics/sync/jsonl-writer.js.map +1 -0
  176. package/dist/metrics/sync/types.d.ts +72 -0
  177. package/dist/metrics/sync/types.d.ts.map +1 -0
  178. package/dist/metrics/sync/types.js +7 -0
  179. package/dist/metrics/sync/types.js.map +1 -0
  180. package/dist/metrics/types.d.ts +308 -0
  181. package/dist/metrics/types.d.ts.map +1 -0
  182. package/dist/metrics/types.js +8 -0
  183. package/dist/metrics/types.js.map +1 -0
  184. package/dist/providers/core/base/BaseHealthCheck.d.ts +57 -0
  185. package/dist/providers/core/base/BaseHealthCheck.d.ts.map +1 -0
  186. package/dist/providers/core/base/BaseHealthCheck.js +121 -0
  187. package/dist/providers/core/base/BaseHealthCheck.js.map +1 -0
  188. package/dist/providers/core/base/BaseModelProxy.d.ts +45 -0
  189. package/dist/providers/core/base/BaseModelProxy.d.ts.map +1 -0
  190. package/dist/providers/core/base/BaseModelProxy.js +43 -0
  191. package/dist/providers/core/base/BaseModelProxy.js.map +1 -0
  192. package/dist/providers/core/base/http-client.d.ts +57 -0
  193. package/dist/providers/core/base/http-client.d.ts.map +1 -0
  194. package/dist/providers/core/base/http-client.js +240 -0
  195. package/dist/providers/core/base/http-client.js.map +1 -0
  196. package/dist/providers/core/decorators.d.ts +13 -0
  197. package/dist/providers/core/decorators.d.ts.map +1 -0
  198. package/dist/providers/core/decorators.js +15 -0
  199. package/dist/providers/core/decorators.js.map +1 -0
  200. package/dist/providers/core/index.d.ts +13 -0
  201. package/dist/providers/core/index.d.ts.map +1 -0
  202. package/dist/providers/core/index.js +14 -0
  203. package/dist/providers/core/index.js.map +1 -0
  204. package/dist/providers/core/registry.d.ts +66 -0
  205. package/dist/providers/core/registry.d.ts.map +1 -0
  206. package/dist/providers/core/registry.js +105 -0
  207. package/dist/providers/core/registry.js.map +1 -0
  208. package/dist/providers/core/types.d.ts +285 -0
  209. package/dist/providers/core/types.d.ts.map +1 -0
  210. package/dist/providers/core/types.js +7 -0
  211. package/dist/providers/core/types.js.map +1 -0
  212. package/dist/providers/index.d.ts +22 -0
  213. package/dist/providers/index.d.ts.map +1 -0
  214. package/dist/providers/index.js +24 -0
  215. package/dist/providers/index.js.map +1 -0
  216. package/dist/providers/integration/setup-ui.d.ts +76 -0
  217. package/dist/providers/integration/setup-ui.d.ts.map +1 -0
  218. package/dist/providers/integration/setup-ui.js +186 -0
  219. package/dist/providers/integration/setup-ui.js.map +1 -0
  220. package/dist/providers/plugins/bedrock/bedrock.health.d.ts +53 -0
  221. package/dist/providers/plugins/bedrock/bedrock.health.d.ts.map +1 -0
  222. package/dist/providers/plugins/bedrock/bedrock.health.js +115 -0
  223. package/dist/providers/plugins/bedrock/bedrock.health.js.map +1 -0
  224. package/dist/providers/plugins/bedrock/bedrock.models.d.ts +26 -0
  225. package/dist/providers/plugins/bedrock/bedrock.models.d.ts.map +1 -0
  226. package/dist/providers/plugins/bedrock/bedrock.models.js +89 -0
  227. package/dist/providers/plugins/bedrock/bedrock.models.js.map +1 -0
  228. package/dist/providers/plugins/bedrock/bedrock.setup-steps.d.ts +12 -0
  229. package/dist/providers/plugins/bedrock/bedrock.setup-steps.d.ts.map +1 -0
  230. package/dist/providers/plugins/bedrock/bedrock.setup-steps.js +308 -0
  231. package/dist/providers/plugins/bedrock/bedrock.setup-steps.js.map +1 -0
  232. package/dist/providers/plugins/bedrock/bedrock.template.d.ts +11 -0
  233. package/dist/providers/plugins/bedrock/bedrock.template.d.ts.map +1 -0
  234. package/dist/providers/plugins/bedrock/bedrock.template.js +85 -0
  235. package/dist/providers/plugins/bedrock/bedrock.template.js.map +1 -0
  236. package/dist/providers/plugins/bedrock/index.d.ts +11 -0
  237. package/dist/providers/plugins/bedrock/index.d.ts.map +1 -0
  238. package/dist/providers/plugins/bedrock/index.js +11 -0
  239. package/dist/providers/plugins/bedrock/index.js.map +1 -0
  240. package/dist/providers/plugins/litellm/index.d.ts +8 -0
  241. package/dist/providers/plugins/litellm/index.d.ts.map +1 -0
  242. package/dist/providers/plugins/litellm/index.js +12 -0
  243. package/dist/providers/plugins/litellm/index.js.map +1 -0
  244. package/dist/providers/plugins/litellm/litellm.models.d.ts +27 -0
  245. package/dist/providers/plugins/litellm/litellm.models.d.ts.map +1 -0
  246. package/dist/providers/plugins/litellm/litellm.models.js +48 -0
  247. package/dist/providers/plugins/litellm/litellm.models.js.map +1 -0
  248. package/dist/providers/plugins/litellm/litellm.setup-steps.d.ts +8 -0
  249. package/dist/providers/plugins/litellm/litellm.setup-steps.d.ts.map +1 -0
  250. package/dist/providers/plugins/litellm/litellm.setup-steps.js +52 -0
  251. package/dist/providers/plugins/litellm/litellm.setup-steps.js.map +1 -0
  252. package/dist/providers/plugins/litellm/litellm.template.d.ts +11 -0
  253. package/dist/providers/plugins/litellm/litellm.template.d.ts.map +1 -0
  254. package/dist/providers/plugins/litellm/litellm.template.js +59 -0
  255. package/dist/providers/plugins/litellm/litellm.template.js.map +1 -0
  256. package/dist/providers/plugins/ollama/index.d.ts +11 -0
  257. package/dist/providers/plugins/ollama/index.d.ts.map +1 -0
  258. package/dist/providers/plugins/ollama/index.js +11 -0
  259. package/dist/providers/plugins/ollama/index.js.map +1 -0
  260. package/dist/providers/plugins/ollama/ollama.health.d.ts +48 -0
  261. package/dist/providers/plugins/ollama/ollama.health.d.ts.map +1 -0
  262. package/dist/providers/plugins/ollama/ollama.health.js +87 -0
  263. package/dist/providers/plugins/ollama/ollama.health.js.map +1 -0
  264. package/dist/providers/plugins/ollama/ollama.models.d.ts +47 -0
  265. package/dist/providers/plugins/ollama/ollama.models.d.ts.map +1 -0
  266. package/dist/providers/plugins/ollama/ollama.models.js +252 -0
  267. package/dist/providers/plugins/ollama/ollama.models.js.map +1 -0
  268. package/dist/providers/plugins/ollama/ollama.setup-steps.d.ts +16 -0
  269. package/dist/providers/plugins/ollama/ollama.setup-steps.d.ts.map +1 -0
  270. package/dist/providers/plugins/ollama/ollama.setup-steps.js +164 -0
  271. package/dist/providers/plugins/ollama/ollama.setup-steps.js.map +1 -0
  272. package/dist/providers/plugins/ollama/ollama.template.d.ts +11 -0
  273. package/dist/providers/plugins/ollama/ollama.template.d.ts.map +1 -0
  274. package/dist/providers/plugins/ollama/ollama.template.js +89 -0
  275. package/dist/providers/plugins/ollama/ollama.template.js.map +1 -0
  276. package/dist/providers/plugins/sso/index.d.ts +12 -0
  277. package/dist/providers/plugins/sso/index.d.ts.map +1 -0
  278. package/dist/providers/plugins/sso/index.js +12 -0
  279. package/dist/providers/plugins/sso/index.js.map +1 -0
  280. package/dist/providers/plugins/sso/sso.auth.d.ts +50 -0
  281. package/dist/providers/plugins/sso/sso.auth.d.ts.map +1 -0
  282. package/dist/{utils/sso-auth.js → providers/plugins/sso/sso.auth.js} +37 -2
  283. package/dist/providers/plugins/sso/sso.auth.js.map +1 -0
  284. package/dist/providers/plugins/sso/sso.health.d.ts +44 -0
  285. package/dist/providers/plugins/sso/sso.health.d.ts.map +1 -0
  286. package/dist/providers/plugins/sso/sso.health.js +178 -0
  287. package/dist/providers/plugins/sso/sso.health.js.map +1 -0
  288. package/dist/providers/plugins/sso/sso.http-client.d.ts +24 -0
  289. package/dist/providers/plugins/sso/sso.http-client.d.ts.map +1 -0
  290. package/dist/providers/plugins/sso/sso.http-client.js +193 -0
  291. package/dist/providers/plugins/sso/sso.http-client.js.map +1 -0
  292. package/dist/providers/plugins/sso/sso.models.d.ts +48 -0
  293. package/dist/providers/plugins/sso/sso.models.d.ts.map +1 -0
  294. package/dist/providers/plugins/sso/sso.models.js +139 -0
  295. package/dist/providers/plugins/sso/sso.models.js.map +1 -0
  296. package/dist/providers/plugins/sso/sso.setup-steps.d.ts +16 -0
  297. package/dist/providers/plugins/sso/sso.setup-steps.d.ts.map +1 -0
  298. package/dist/providers/plugins/sso/sso.setup-steps.js +145 -0
  299. package/dist/providers/plugins/sso/sso.setup-steps.js.map +1 -0
  300. package/dist/providers/plugins/sso/sso.template.d.ts +11 -0
  301. package/dist/providers/plugins/sso/sso.template.d.ts.map +1 -0
  302. package/dist/providers/plugins/sso/sso.template.js +35 -0
  303. package/dist/providers/plugins/sso/sso.template.js.map +1 -0
  304. package/dist/proxy/errors.d.ts.map +1 -0
  305. package/dist/proxy/errors.js.map +1 -0
  306. package/dist/proxy/http-client.d.ts.map +1 -0
  307. package/dist/{utils/proxy → proxy}/http-client.js +50 -15
  308. package/dist/proxy/http-client.js.map +1 -0
  309. package/dist/proxy/plugins/endpoint-blocker.plugin.d.ts +19 -0
  310. package/dist/proxy/plugins/endpoint-blocker.plugin.d.ts.map +1 -0
  311. package/dist/proxy/plugins/endpoint-blocker.plugin.js +61 -0
  312. package/dist/proxy/plugins/endpoint-blocker.plugin.js.map +1 -0
  313. package/dist/proxy/plugins/header-injection.plugin.d.ts.map +1 -0
  314. package/dist/{utils/proxy → proxy}/plugins/header-injection.plugin.js +10 -3
  315. package/dist/proxy/plugins/header-injection.plugin.js.map +1 -0
  316. package/dist/{utils/proxy → proxy}/plugins/index.d.ts +4 -2
  317. package/dist/proxy/plugins/index.d.ts.map +1 -0
  318. package/dist/{utils/proxy → proxy}/plugins/index.js +7 -5
  319. package/dist/proxy/plugins/index.js.map +1 -0
  320. package/dist/proxy/plugins/logging.plugin.d.ts +22 -0
  321. package/dist/proxy/plugins/logging.plugin.d.ts.map +1 -0
  322. package/dist/proxy/plugins/logging.plugin.js +156 -0
  323. package/dist/proxy/plugins/logging.plugin.js.map +1 -0
  324. package/dist/proxy/plugins/metrics-sync.plugin.d.ts +33 -0
  325. package/dist/proxy/plugins/metrics-sync.plugin.d.ts.map +1 -0
  326. package/dist/proxy/plugins/metrics-sync.plugin.js +310 -0
  327. package/dist/proxy/plugins/metrics-sync.plugin.js.map +1 -0
  328. package/dist/proxy/plugins/registry.d.ts.map +1 -0
  329. package/dist/{utils/proxy → proxy}/plugins/registry.js +9 -2
  330. package/dist/proxy/plugins/registry.js.map +1 -0
  331. package/dist/proxy/plugins/sso-auth.plugin.d.ts.map +1 -0
  332. package/dist/{utils/proxy → proxy}/plugins/sso-auth.plugin.js +1 -1
  333. package/dist/proxy/plugins/sso-auth.plugin.js.map +1 -0
  334. package/dist/{utils/proxy → proxy}/plugins/types.d.ts +8 -4
  335. package/dist/proxy/plugins/types.d.ts.map +1 -0
  336. package/dist/proxy/plugins/types.js.map +1 -0
  337. package/dist/{utils/proxy → proxy}/types.d.ts +7 -0
  338. package/dist/proxy/types.d.ts.map +1 -0
  339. package/dist/proxy/types.js.map +1 -0
  340. package/dist/utils/ascii-logo.d.ts +21 -0
  341. package/dist/utils/ascii-logo.d.ts.map +1 -0
  342. package/dist/utils/ascii-logo.js +75 -0
  343. package/dist/utils/ascii-logo.js.map +1 -0
  344. package/dist/utils/codemie-proxy.d.ts +2 -7
  345. package/dist/utils/codemie-proxy.d.ts.map +1 -1
  346. package/dist/utils/codemie-proxy.js +56 -61
  347. package/dist/utils/codemie-proxy.js.map +1 -1
  348. package/dist/utils/config-loader.d.ts +1 -6
  349. package/dist/utils/config-loader.d.ts.map +1 -1
  350. package/dist/utils/config-loader.js +49 -93
  351. package/dist/utils/config-loader.js.map +1 -1
  352. package/dist/utils/credential-store.d.ts +1 -1
  353. package/dist/utils/credential-store.d.ts.map +1 -1
  354. package/dist/utils/exec.d.ts +11 -0
  355. package/dist/utils/exec.d.ts.map +1 -1
  356. package/dist/utils/exec.js +17 -1
  357. package/dist/utils/exec.js.map +1 -1
  358. package/dist/utils/goodbye-messages.d.ts +13 -0
  359. package/dist/utils/goodbye-messages.d.ts.map +1 -0
  360. package/dist/utils/goodbye-messages.js +245 -0
  361. package/dist/utils/goodbye-messages.js.map +1 -0
  362. package/dist/utils/json-parser.d.ts +52 -0
  363. package/dist/utils/json-parser.d.ts.map +1 -0
  364. package/dist/utils/json-parser.js +126 -0
  365. package/dist/utils/json-parser.js.map +1 -0
  366. package/dist/utils/logger.d.ts +37 -1
  367. package/dist/utils/logger.d.ts.map +1 -1
  368. package/dist/utils/logger.js +92 -22
  369. package/dist/utils/logger.js.map +1 -1
  370. package/dist/utils/sanitize.d.ts.map +1 -1
  371. package/dist/utils/sanitize.js +0 -1
  372. package/dist/utils/sanitize.js.map +1 -1
  373. package/dist/utils/which.d.ts +20 -0
  374. package/dist/utils/which.d.ts.map +1 -0
  375. package/dist/utils/which.js +47 -0
  376. package/dist/utils/which.js.map +1 -0
  377. package/package.json +10 -5
  378. package/dist/analytics/aggregation/adapters/claude.adapter.d.ts +0 -37
  379. package/dist/analytics/aggregation/adapters/claude.adapter.d.ts.map +0 -1
  380. package/dist/analytics/aggregation/adapters/claude.adapter.js +0 -531
  381. package/dist/analytics/aggregation/adapters/claude.adapter.js.map +0 -1
  382. package/dist/analytics/aggregation/adapters/codex.adapter.d.ts +0 -25
  383. package/dist/analytics/aggregation/adapters/codex.adapter.d.ts.map +0 -1
  384. package/dist/analytics/aggregation/adapters/codex.adapter.js +0 -396
  385. package/dist/analytics/aggregation/adapters/codex.adapter.js.map +0 -1
  386. package/dist/analytics/aggregation/adapters/gemini.adapter.d.ts +0 -36
  387. package/dist/analytics/aggregation/adapters/gemini.adapter.d.ts.map +0 -1
  388. package/dist/analytics/aggregation/adapters/gemini.adapter.js +0 -365
  389. package/dist/analytics/aggregation/adapters/gemini.adapter.js.map +0 -1
  390. package/dist/analytics/aggregation/adapters/index.d.ts +0 -7
  391. package/dist/analytics/aggregation/adapters/index.d.ts.map +0 -1
  392. package/dist/analytics/aggregation/adapters/index.js +0 -7
  393. package/dist/analytics/aggregation/adapters/index.js.map +0 -1
  394. package/dist/analytics/aggregation/aggregator.d.ts +0 -49
  395. package/dist/analytics/aggregation/aggregator.d.ts.map +0 -1
  396. package/dist/analytics/aggregation/aggregator.js +0 -239
  397. package/dist/analytics/aggregation/aggregator.js.map +0 -1
  398. package/dist/analytics/aggregation/core/BaseAnalyticsAdapter.d.ts +0 -99
  399. package/dist/analytics/aggregation/core/BaseAnalyticsAdapter.d.ts.map +0 -1
  400. package/dist/analytics/aggregation/core/BaseAnalyticsAdapter.js +0 -110
  401. package/dist/analytics/aggregation/core/BaseAnalyticsAdapter.js.map +0 -1
  402. package/dist/analytics/aggregation/core/adapter.interface.d.ts +0 -76
  403. package/dist/analytics/aggregation/core/adapter.interface.d.ts.map +0 -1
  404. package/dist/analytics/aggregation/core/adapter.interface.js +0 -9
  405. package/dist/analytics/aggregation/core/adapter.interface.js.map +0 -1
  406. package/dist/analytics/aggregation/core/aggregation-utils.d.ts +0 -86
  407. package/dist/analytics/aggregation/core/aggregation-utils.d.ts.map +0 -1
  408. package/dist/analytics/aggregation/core/aggregation-utils.js +0 -126
  409. package/dist/analytics/aggregation/core/aggregation-utils.js.map +0 -1
  410. package/dist/analytics/aggregation/core/discovery.d.ts +0 -40
  411. package/dist/analytics/aggregation/core/discovery.d.ts.map +0 -1
  412. package/dist/analytics/aggregation/core/discovery.js +0 -132
  413. package/dist/analytics/aggregation/core/discovery.js.map +0 -1
  414. package/dist/analytics/aggregation/core/file-utils.d.ts +0 -24
  415. package/dist/analytics/aggregation/core/file-utils.d.ts.map +0 -1
  416. package/dist/analytics/aggregation/core/file-utils.js +0 -143
  417. package/dist/analytics/aggregation/core/file-utils.js.map +0 -1
  418. package/dist/analytics/aggregation/core/index.d.ts +0 -14
  419. package/dist/analytics/aggregation/core/index.d.ts.map +0 -1
  420. package/dist/analytics/aggregation/core/index.js +0 -14
  421. package/dist/analytics/aggregation/core/index.js.map +0 -1
  422. package/dist/analytics/aggregation/core/project-mapping.d.ts +0 -50
  423. package/dist/analytics/aggregation/core/project-mapping.d.ts.map +0 -1
  424. package/dist/analytics/aggregation/core/project-mapping.js +0 -102
  425. package/dist/analytics/aggregation/core/project-mapping.js.map +0 -1
  426. package/dist/analytics/aggregation/core/streaming.d.ts +0 -26
  427. package/dist/analytics/aggregation/core/streaming.d.ts.map +0 -1
  428. package/dist/analytics/aggregation/core/streaming.js +0 -58
  429. package/dist/analytics/aggregation/core/streaming.js.map +0 -1
  430. package/dist/analytics/aggregation/core/user-prompt-source.d.ts +0 -81
  431. package/dist/analytics/aggregation/core/user-prompt-source.d.ts.map +0 -1
  432. package/dist/analytics/aggregation/core/user-prompt-source.js +0 -69
  433. package/dist/analytics/aggregation/core/user-prompt-source.js.map +0 -1
  434. package/dist/analytics/aggregation/core/user-prompt-sources/json.d.ts +0 -49
  435. package/dist/analytics/aggregation/core/user-prompt-sources/json.d.ts.map +0 -1
  436. package/dist/analytics/aggregation/core/user-prompt-sources/json.js +0 -66
  437. package/dist/analytics/aggregation/core/user-prompt-sources/json.js.map +0 -1
  438. package/dist/analytics/aggregation/core/user-prompt-sources/jsonl.d.ts +0 -43
  439. package/dist/analytics/aggregation/core/user-prompt-sources/jsonl.d.ts.map +0 -1
  440. package/dist/analytics/aggregation/core/user-prompt-sources/jsonl.js +0 -56
  441. package/dist/analytics/aggregation/core/user-prompt-sources/jsonl.js.map +0 -1
  442. package/dist/analytics/aggregation/index.d.ts +0 -8
  443. package/dist/analytics/aggregation/index.d.ts.map +0 -1
  444. package/dist/analytics/aggregation/index.js +0 -8
  445. package/dist/analytics/aggregation/index.js.map +0 -1
  446. package/dist/analytics/aggregation/types.d.ts +0 -278
  447. package/dist/analytics/aggregation/types.d.ts.map +0 -1
  448. package/dist/analytics/aggregation/types.js +0 -8
  449. package/dist/analytics/aggregation/types.js.map +0 -1
  450. package/dist/analytics/collector.d.ts +0 -46
  451. package/dist/analytics/collector.d.ts.map +0 -1
  452. package/dist/analytics/collector.js +0 -83
  453. package/dist/analytics/collector.js.map +0 -1
  454. package/dist/analytics/config.d.ts +0 -15
  455. package/dist/analytics/config.d.ts.map +0 -1
  456. package/dist/analytics/config.js +0 -65
  457. package/dist/analytics/config.js.map +0 -1
  458. package/dist/analytics/index.d.ts +0 -99
  459. package/dist/analytics/index.d.ts.map +0 -1
  460. package/dist/analytics/index.js +0 -288
  461. package/dist/analytics/index.js.map +0 -1
  462. package/dist/analytics/plugins/api-metrics.plugin.d.ts +0 -26
  463. package/dist/analytics/plugins/api-metrics.plugin.d.ts.map +0 -1
  464. package/dist/analytics/plugins/api-metrics.plugin.js +0 -97
  465. package/dist/analytics/plugins/api-metrics.plugin.js.map +0 -1
  466. package/dist/analytics/plugins/index.d.ts +0 -15
  467. package/dist/analytics/plugins/index.d.ts.map +0 -1
  468. package/dist/analytics/plugins/index.js +0 -15
  469. package/dist/analytics/plugins/index.js.map +0 -1
  470. package/dist/analytics/plugins/model-metrics.plugin.d.ts +0 -39
  471. package/dist/analytics/plugins/model-metrics.plugin.d.ts.map +0 -1
  472. package/dist/analytics/plugins/model-metrics.plugin.js +0 -105
  473. package/dist/analytics/plugins/model-metrics.plugin.js.map +0 -1
  474. package/dist/analytics/plugins/provider-metrics.plugin.d.ts +0 -41
  475. package/dist/analytics/plugins/provider-metrics.plugin.d.ts.map +0 -1
  476. package/dist/analytics/plugins/provider-metrics.plugin.js +0 -123
  477. package/dist/analytics/plugins/provider-metrics.plugin.js.map +0 -1
  478. package/dist/analytics/plugins/types.d.ts +0 -61
  479. package/dist/analytics/plugins/types.d.ts.map +0 -1
  480. package/dist/analytics/plugins/types.js +0 -54
  481. package/dist/analytics/plugins/types.js.map +0 -1
  482. package/dist/analytics/privacy.d.ts +0 -10
  483. package/dist/analytics/privacy.d.ts.map +0 -1
  484. package/dist/analytics/privacy.js +0 -20
  485. package/dist/analytics/privacy.js.map +0 -1
  486. package/dist/analytics/remote-submission/cursor-manager.d.ts +0 -71
  487. package/dist/analytics/remote-submission/cursor-manager.d.ts.map +0 -1
  488. package/dist/analytics/remote-submission/cursor-manager.js +0 -204
  489. package/dist/analytics/remote-submission/cursor-manager.js.map +0 -1
  490. package/dist/analytics/remote-submission/index.d.ts +0 -12
  491. package/dist/analytics/remote-submission/index.d.ts.map +0 -1
  492. package/dist/analytics/remote-submission/index.js +0 -11
  493. package/dist/analytics/remote-submission/index.js.map +0 -1
  494. package/dist/analytics/remote-submission/lock-manager.d.ts +0 -71
  495. package/dist/analytics/remote-submission/lock-manager.d.ts.map +0 -1
  496. package/dist/analytics/remote-submission/lock-manager.js +0 -238
  497. package/dist/analytics/remote-submission/lock-manager.js.map +0 -1
  498. package/dist/analytics/remote-submission/metric-transformer.d.ts +0 -49
  499. package/dist/analytics/remote-submission/metric-transformer.d.ts.map +0 -1
  500. package/dist/analytics/remote-submission/metric-transformer.js +0 -175
  501. package/dist/analytics/remote-submission/metric-transformer.js.map +0 -1
  502. package/dist/analytics/remote-submission/submitter.d.ts +0 -78
  503. package/dist/analytics/remote-submission/submitter.d.ts.map +0 -1
  504. package/dist/analytics/remote-submission/submitter.js +0 -381
  505. package/dist/analytics/remote-submission/submitter.js.map +0 -1
  506. package/dist/analytics/remote-submission/types.d.ts +0 -169
  507. package/dist/analytics/remote-submission/types.d.ts.map +0 -1
  508. package/dist/analytics/remote-submission/types.js +0 -13
  509. package/dist/analytics/remote-submission/types.js.map +0 -1
  510. package/dist/analytics/session.d.ts +0 -56
  511. package/dist/analytics/session.d.ts.map +0 -1
  512. package/dist/analytics/session.js +0 -95
  513. package/dist/analytics/session.js.map +0 -1
  514. package/dist/analytics/types.d.ts +0 -104
  515. package/dist/analytics/types.d.ts.map +0 -1
  516. package/dist/analytics/types.js +0 -15
  517. package/dist/analytics/types.js.map +0 -1
  518. package/dist/analytics/writer.d.ts +0 -18
  519. package/dist/analytics/writer.d.ts.map +0 -1
  520. package/dist/analytics/writer.js +0 -44
  521. package/dist/analytics/writer.js.map +0 -1
  522. package/dist/cli/commands/analytics.d.ts +0 -3
  523. package/dist/cli/commands/analytics.d.ts.map +0 -1
  524. package/dist/cli/commands/analytics.js +0 -748
  525. package/dist/cli/commands/analytics.js.map +0 -1
  526. package/dist/cli/commands/doctor/providers/AIRunSSOProviderCheck.d.ts +0 -11
  527. package/dist/cli/commands/doctor/providers/AIRunSSOProviderCheck.d.ts.map +0 -1
  528. package/dist/cli/commands/doctor/providers/AIRunSSOProviderCheck.js +0 -264
  529. package/dist/cli/commands/doctor/providers/AIRunSSOProviderCheck.js.map +0 -1
  530. package/dist/cli/commands/doctor/providers/BaseProviderCheck.d.ts +0 -12
  531. package/dist/cli/commands/doctor/providers/BaseProviderCheck.d.ts.map +0 -1
  532. package/dist/cli/commands/doctor/providers/BaseProviderCheck.js +0 -12
  533. package/dist/cli/commands/doctor/providers/BaseProviderCheck.js.map +0 -1
  534. package/dist/cli/commands/doctor/providers/StandardProviderCheck.d.ts +0 -11
  535. package/dist/cli/commands/doctor/providers/StandardProviderCheck.d.ts.map +0 -1
  536. package/dist/cli/commands/doctor/providers/StandardProviderCheck.js +0 -97
  537. package/dist/cli/commands/doctor/providers/StandardProviderCheck.js.map +0 -1
  538. package/dist/cli/commands/doctor/providers/index.d.ts +0 -30
  539. package/dist/cli/commands/doctor/providers/index.d.ts.map +0 -1
  540. package/dist/cli/commands/doctor/providers/index.js +0 -66
  541. package/dist/cli/commands/doctor/providers/index.js.map +0 -1
  542. package/dist/types/sso.d.ts +0 -42
  543. package/dist/types/sso.d.ts.map +0 -1
  544. package/dist/types/sso.js +0 -2
  545. package/dist/types/sso.js.map +0 -1
  546. package/dist/utils/analytics-reader.d.ts +0 -117
  547. package/dist/utils/analytics-reader.d.ts.map +0 -1
  548. package/dist/utils/analytics-reader.js +0 -421
  549. package/dist/utils/analytics-reader.js.map +0 -1
  550. package/dist/utils/async-tips.d.ts +0 -64
  551. package/dist/utils/async-tips.d.ts.map +0 -1
  552. package/dist/utils/async-tips.js +0 -203
  553. package/dist/utils/async-tips.js.map +0 -1
  554. package/dist/utils/codemie-integration-validator.d.ts +0 -18
  555. package/dist/utils/codemie-integration-validator.d.ts.map +0 -1
  556. package/dist/utils/codemie-integration-validator.js +0 -119
  557. package/dist/utils/codemie-integration-validator.js.map +0 -1
  558. package/dist/utils/codemie-model-fetcher.d.ts +0 -11
  559. package/dist/utils/codemie-model-fetcher.d.ts.map +0 -1
  560. package/dist/utils/codemie-model-fetcher.js +0 -317
  561. package/dist/utils/codemie-model-fetcher.js.map +0 -1
  562. package/dist/utils/date-formatter.d.ts +0 -88
  563. package/dist/utils/date-formatter.d.ts.map +0 -1
  564. package/dist/utils/date-formatter.js +0 -133
  565. package/dist/utils/date-formatter.js.map +0 -1
  566. package/dist/utils/health-checker.d.ts +0 -20
  567. package/dist/utils/health-checker.d.ts.map +0 -1
  568. package/dist/utils/health-checker.js +0 -172
  569. package/dist/utils/health-checker.js.map +0 -1
  570. package/dist/utils/model-fetcher.d.ts +0 -21
  571. package/dist/utils/model-fetcher.d.ts.map +0 -1
  572. package/dist/utils/model-fetcher.js +0 -148
  573. package/dist/utils/model-fetcher.js.map +0 -1
  574. package/dist/utils/proxy/errors.d.ts.map +0 -1
  575. package/dist/utils/proxy/errors.js.map +0 -1
  576. package/dist/utils/proxy/http-client.d.ts.map +0 -1
  577. package/dist/utils/proxy/http-client.js.map +0 -1
  578. package/dist/utils/proxy/plugins/analytics.plugin.d.ts +0 -19
  579. package/dist/utils/proxy/plugins/analytics.plugin.d.ts.map +0 -1
  580. package/dist/utils/proxy/plugins/analytics.plugin.js +0 -84
  581. package/dist/utils/proxy/plugins/analytics.plugin.js.map +0 -1
  582. package/dist/utils/proxy/plugins/header-injection.plugin.d.ts.map +0 -1
  583. package/dist/utils/proxy/plugins/header-injection.plugin.js.map +0 -1
  584. package/dist/utils/proxy/plugins/index.d.ts.map +0 -1
  585. package/dist/utils/proxy/plugins/index.js.map +0 -1
  586. package/dist/utils/proxy/plugins/registry.d.ts.map +0 -1
  587. package/dist/utils/proxy/plugins/registry.js.map +0 -1
  588. package/dist/utils/proxy/plugins/sso-auth.plugin.d.ts.map +0 -1
  589. package/dist/utils/proxy/plugins/sso-auth.plugin.js.map +0 -1
  590. package/dist/utils/proxy/plugins/types.d.ts.map +0 -1
  591. package/dist/utils/proxy/plugins/types.js.map +0 -1
  592. package/dist/utils/proxy/types.d.ts.map +0 -1
  593. package/dist/utils/proxy/types.js.map +0 -1
  594. package/dist/utils/sso-auth.d.ts +0 -15
  595. package/dist/utils/sso-auth.d.ts.map +0 -1
  596. package/dist/utils/sso-auth.js.map +0 -1
  597. package/dist/utils/tips.d.ts +0 -35
  598. package/dist/utils/tips.d.ts.map +0 -1
  599. package/dist/utils/tips.js +0 -93
  600. package/dist/utils/tips.js.map +0 -1
  601. /package/dist/{utils/proxy → proxy}/errors.d.ts +0 -0
  602. /package/dist/{utils/proxy → proxy}/errors.js +0 -0
  603. /package/dist/{utils/proxy → proxy}/http-client.d.ts +0 -0
  604. /package/dist/{utils/proxy → proxy}/plugins/header-injection.plugin.d.ts +0 -0
  605. /package/dist/{utils/proxy → proxy}/plugins/registry.d.ts +0 -0
  606. /package/dist/{utils/proxy → proxy}/plugins/sso-auth.plugin.d.ts +0 -0
  607. /package/dist/{utils/proxy → proxy}/plugins/types.js +0 -0
  608. /package/dist/{utils/proxy → proxy}/types.js +0 -0
@@ -1,531 +0,0 @@
1
- /**
2
- * Claude Code Analytics Adapter
3
- *
4
- * Extracts analytics data from Claude Code session files stored in:
5
- * ~/.claude/projects/{projectPath}/{sessionId}.jsonl
6
- *
7
- * JSONL Format: One JSON event per line
8
- * - type: "user" | "assistant" | "file-history-snapshot"
9
- * - Linked via parentUuid chain
10
- * - Tool calls embedded in message.content array
11
- */
12
- import { join, extname, basename } from 'node:path';
13
- import { existsSync } from 'node:fs';
14
- import { BaseAnalyticsAdapter, resolvePath, findFiles, filterFilesByDate, readJSONL, detectLanguage, detectFormat, countLines, calculateByteSize, calculateFileStats, normalizeModelName, JSONLUserPromptSource } from '../core/index.js';
15
- /**
16
- * Claude Code analytics adapter
17
- */
18
- export class ClaudeAnalyticsAdapter extends BaseAnalyticsAdapter {
19
- constructor(metadata) {
20
- super(metadata);
21
- // Initialize user prompt source
22
- const historyFilePath = join(resolvePath(this.homePath), 'history.jsonl');
23
- this.userPromptSource = new JSONLUserPromptSource(historyFilePath, (entry) => {
24
- const e = entry;
25
- return {
26
- prompt: e.display,
27
- timestamp: new Date(e.timestamp),
28
- sessionId: e.sessionId,
29
- projectPath: e.project,
30
- metadata: {
31
- pastedContents: e.pastedContents
32
- }
33
- };
34
- });
35
- }
36
- async findSessions(options) {
37
- const baseDir = resolvePath(this.homePath);
38
- const projectsDir = join(baseDir, 'projects');
39
- if (!existsSync(projectsDir)) {
40
- return [];
41
- }
42
- const descriptors = [];
43
- const sessionMap = new Map();
44
- // Scan all project directories
45
- const { readdir } = await import('node:fs/promises');
46
- try {
47
- const projectDirs = await readdir(projectsDir, { withFileTypes: true });
48
- for (const projectDir of projectDirs) {
49
- if (!projectDir.isDirectory())
50
- continue;
51
- const projectPath = join(projectsDir, projectDir.name);
52
- // Find all JSONL files (main sessions and agent sessions)
53
- const jsonlFiles = await findFiles(projectPath, /\.jsonl$/);
54
- // Filter by date if specified
55
- let filteredFiles = jsonlFiles;
56
- if (options?.dateFrom || options?.dateTo) {
57
- filteredFiles = await filterFilesByDate(jsonlFiles, options.dateFrom, options.dateTo);
58
- }
59
- // Group files by sessionId
60
- for (const filePath of filteredFiles) {
61
- try {
62
- // Read first few lines to find sessionId (first line might be snapshot without sessionId)
63
- const events = await readJSONL(filePath, 10);
64
- if (events.length === 0)
65
- continue;
66
- // Find first event with sessionId (has cwd and other metadata)
67
- const eventWithSession = events.find((e) => e.sessionId);
68
- if (!eventWithSession)
69
- continue;
70
- const sessionId = eventWithSession.sessionId;
71
- const fileName = basename(filePath, '.jsonl');
72
- // IMPORTANT: Agent files (agent-*.jsonl) should be SEPARATE sessions
73
- // They have isSidechain: true and their own sessionId
74
- // Each agent file represents a distinct Haiku sub-agent session
75
- const isAgentFile = fileName.startsWith('agent-');
76
- // For agent files, use the file itself as the only source
77
- // For main sessions, check if file is named with sessionId
78
- if (isAgentFile) {
79
- // Agent file - create standalone session using agentId as unique key
80
- // Multiple agent files can share the same sessionId (they're sub-agents of that session)
81
- // Use agentId to create unique sessions for each agent
82
- const agentId = eventWithSession.agentId || fileName.replace('agent-', '').replace('.jsonl', '');
83
- const uniqueSessionId = `agent-${agentId}`; // Prefix to avoid collision with main sessions
84
- sessionMap.set(uniqueSessionId, {
85
- files: [filePath],
86
- metadata: {
87
- cwd: eventWithSession.cwd,
88
- gitBranch: eventWithSession.gitBranch,
89
- version: eventWithSession.version,
90
- timestamp: eventWithSession.timestamp,
91
- isAgent: true,
92
- agentId,
93
- parentSessionId: sessionId // Track parent session
94
- }
95
- });
96
- }
97
- else {
98
- // Main session file
99
- const isMainFile = fileName === sessionId;
100
- // Add to session map
101
- if (!sessionMap.has(sessionId)) {
102
- sessionMap.set(sessionId, {
103
- files: [],
104
- metadata: {
105
- cwd: eventWithSession.cwd,
106
- gitBranch: eventWithSession.gitBranch,
107
- version: eventWithSession.version,
108
- timestamp: eventWithSession.timestamp
109
- }
110
- });
111
- }
112
- // Add main file first, other files after
113
- if (isMainFile) {
114
- sessionMap.get(sessionId).files.unshift(filePath);
115
- }
116
- else {
117
- sessionMap.get(sessionId).files.push(filePath);
118
- }
119
- }
120
- }
121
- catch (error) {
122
- console.error(`Failed to read session file ${filePath}: ${error}`);
123
- }
124
- }
125
- }
126
- }
127
- catch (error) {
128
- console.error(`Error scanning Claude sessions: ${error}`);
129
- }
130
- // Convert map to descriptors
131
- for (const [sessionId, data] of sessionMap.entries()) {
132
- // Resolve project path from cwd or use encoded directory name
133
- const projectPath = data.metadata.cwd || '';
134
- descriptors.push({
135
- sessionId,
136
- agent: this.agentName,
137
- filePaths: data.files,
138
- metadata: {
139
- ...data.metadata,
140
- projectPath
141
- }
142
- });
143
- }
144
- // Apply pagination using inherited method
145
- return this.applyPagination(descriptors, options);
146
- }
147
- async extractSession(descriptor) {
148
- // Read all JSONL files for this session
149
- const allEvents = [];
150
- for (const filePath of descriptor.filePaths) {
151
- const events = await readJSONL(filePath);
152
- allEvents.push(...events);
153
- }
154
- // Extract session metadata from first event
155
- const firstEvent = allEvents.find(e => e.type === 'user' || e.type === 'assistant') || allEvents[0];
156
- const lastEvent = allEvents[allEvents.length - 1];
157
- const startTime = new Date(firstEvent?.timestamp || Date.now());
158
- const endTime = new Date(lastEvent?.timestamp || Date.now());
159
- const durationMs = endTime.getTime() - startTime.getTime();
160
- // Count messages by type
161
- const userMessages = allEvents.filter(e => e.type === 'user');
162
- const assistantMessages = allEvents.filter(e => e.type === 'assistant');
163
- // Extract tool calls and their statuses
164
- const toolCalls = await this.extractToolCallsFromEvents(allEvents, descriptor.sessionId);
165
- const successfulToolCalls = toolCalls.filter(tc => tc.status === 'success').length;
166
- const failedToolCalls = toolCalls.filter(tc => tc.status === 'failure').length;
167
- // Track tool usage and status
168
- const toolUsage = {};
169
- const toolStatus = {};
170
- for (const tc of toolCalls) {
171
- toolUsage[tc.toolName] = (toolUsage[tc.toolName] || 0) + 1;
172
- if (!toolStatus[tc.toolName]) {
173
- toolStatus[tc.toolName] = { success: 0, failure: 0 };
174
- }
175
- if (tc.status === 'success') {
176
- toolStatus[tc.toolName].success++;
177
- }
178
- else if (tc.status === 'failure') {
179
- toolStatus[tc.toolName].failure++;
180
- }
181
- }
182
- // Track model usage (count messages per model)
183
- const modelUsage = {};
184
- for (const event of assistantMessages) {
185
- if (event.message?.model) {
186
- modelUsage[event.message.model] = (modelUsage[event.message.model] || 0) + 1;
187
- }
188
- }
189
- // Extract file modifications
190
- const fileModifications = await this.extractFileModifications(descriptor);
191
- // Sum tokens with detailed breakdown
192
- let totalInputTokens = 0;
193
- let totalOutputTokens = 0;
194
- let totalCacheReadTokens = 0;
195
- let totalCacheCreationTokens = 0;
196
- let totalTokens = 0;
197
- for (const event of assistantMessages) {
198
- if (event.message?.usage) {
199
- const usage = event.message.usage;
200
- totalInputTokens += usage.input_tokens || 0;
201
- totalOutputTokens += usage.output_tokens || 0;
202
- totalCacheReadTokens += usage.cache_read_input_tokens || 0;
203
- totalCacheCreationTokens += usage.cache_creation_input_tokens || 0;
204
- // Total includes all token types
205
- totalTokens += (usage.input_tokens || 0) +
206
- (usage.output_tokens || 0) +
207
- (usage.cache_read_input_tokens || 0) +
208
- (usage.cache_creation_input_tokens || 0);
209
- }
210
- }
211
- // Check for errors
212
- const hadErrors = failedToolCalls > 0;
213
- // Extract model (from first assistant message)
214
- // Normalize model name (AWS Bedrock uses format: converse/region.provider.model-v1:0)
215
- const rawModel = assistantMessages.find(m => m.message?.model)?.message?.model || 'claude-sonnet-4-5-20250929';
216
- const model = normalizeModelName(rawModel);
217
- // Calculate file statistics using shared utility
218
- const fileStats = calculateFileStats(fileModifications);
219
- // Get project path from descriptor metadata or cwd
220
- const projectPath = descriptor.metadata.projectPath ||
221
- descriptor.metadata.cwd || '';
222
- // Count actual user prompts from history file
223
- const userPromptCount = await this.countUserPrompts(descriptor.sessionId);
224
- // Calculate user prompt percentage using base class helper
225
- const userPromptPercentage = this.calculateUserPromptPercentage(userPromptCount, userMessages.length);
226
- return {
227
- sessionId: descriptor.sessionId,
228
- agent: 'claude',
229
- agentVersion: descriptor.metadata.version || '2.0.0',
230
- startTime,
231
- endTime,
232
- durationMs,
233
- projectPath,
234
- gitBranch: descriptor.metadata.gitBranch,
235
- model,
236
- provider: 'anthropic',
237
- userPromptCount, // True user input (from history.jsonl)
238
- userMessageCount: userMessages.length, // All user-type events (from session files)
239
- assistantMessageCount: assistantMessages.length,
240
- userPromptPercentage, // Percentage of real user input
241
- toolCallCount: toolCalls.length,
242
- successfulToolCalls,
243
- failedToolCalls,
244
- fileModifications: fileModifications.length,
245
- toolUsage,
246
- toolStatus,
247
- modelUsage,
248
- tokens: {
249
- input: totalInputTokens,
250
- output: totalOutputTokens,
251
- cacheRead: totalCacheReadTokens,
252
- cacheCreation: totalCacheCreationTokens,
253
- total: totalTokens
254
- },
255
- hadErrors,
256
- fileStats
257
- };
258
- }
259
- async extractMessages(descriptor) {
260
- const allEvents = [];
261
- for (const filePath of descriptor.filePaths) {
262
- const events = await readJSONL(filePath);
263
- allEvents.push(...events);
264
- }
265
- const messages = [];
266
- for (const event of allEvents) {
267
- if (event.type === 'user' || event.type === 'assistant') {
268
- // Extract content text
269
- let content = '';
270
- if (event.message?.content) {
271
- if (typeof event.message.content === 'string') {
272
- content = event.message.content;
273
- }
274
- else if (Array.isArray(event.message.content)) {
275
- // Join text blocks
276
- content = event.message.content
277
- .filter((c) => c.type === 'text')
278
- .map(c => c.text)
279
- .join('\n');
280
- }
281
- }
282
- // Extract tool calls from content array
283
- const toolCalls = [];
284
- if (Array.isArray(event.message?.content)) {
285
- const toolUseBlocks = event.message.content.filter((c) => c.type === 'tool_use');
286
- for (const toolUse of toolUseBlocks) {
287
- // Find corresponding tool result
288
- const toolResult = allEvents.find(e => Array.isArray(e.message?.content) &&
289
- e.message.content.some((c) => c.type === 'tool_result' && c.tool_use_id === toolUse.id));
290
- const resultBlock = (Array.isArray(toolResult?.message?.content) ?
291
- toolResult.message.content.find((c) => c.type === 'tool_result' && c.tool_use_id === toolUse.id) : undefined);
292
- // Detect file modifications
293
- const modifiedFiles = [];
294
- if (['Write', 'Edit', 'Create'].some(op => toolUse.name.includes(op))) {
295
- const filePath = toolUse.input.file_path || toolUse.input.path;
296
- if (filePath && typeof filePath === 'string') {
297
- modifiedFiles.push(filePath);
298
- }
299
- }
300
- // Extract model from the assistant message that contains this tool call
301
- // Normalize model name (AWS Bedrock format needs conversion)
302
- const rawModel = event.message?.model;
303
- const model = rawModel ? normalizeModelName(rawModel) : undefined;
304
- toolCalls.push({
305
- toolCallId: toolUse.id,
306
- messageId: event.uuid,
307
- sessionId: descriptor.sessionId,
308
- timestamp: new Date(event.timestamp),
309
- toolName: toolUse.name,
310
- toolArgs: toolUse.input,
311
- llm_model: model, // Add normalized model to tool call
312
- status: resultBlock?.is_error ? 'failure' : 'success',
313
- result: resultBlock?.content,
314
- modifiedFiles: modifiedFiles.length > 0 ? modifiedFiles : undefined
315
- });
316
- }
317
- }
318
- messages.push({
319
- messageId: event.uuid,
320
- sessionId: descriptor.sessionId,
321
- timestamp: new Date(event.timestamp),
322
- role: event.message?.role || 'user',
323
- content,
324
- tokens: event.message?.usage ? {
325
- input: event.message.usage.input_tokens,
326
- output: event.message.usage.output_tokens,
327
- cacheRead: event.message.usage.cache_read_input_tokens,
328
- cacheCreation: event.message.usage.cache_creation_input_tokens,
329
- total: (event.message.usage.input_tokens || 0) +
330
- (event.message.usage.output_tokens || 0) +
331
- (event.message.usage.cache_read_input_tokens || 0) +
332
- (event.message.usage.cache_creation_input_tokens || 0)
333
- } : undefined,
334
- model: event.message?.model,
335
- toolCalls: toolCalls.length > 0 ? toolCalls : undefined
336
- });
337
- }
338
- }
339
- return messages;
340
- }
341
- /**
342
- * Extract tool calls from events (internal helper)
343
- */
344
- async extractToolCallsFromEvents(events, sessionId) {
345
- const toolCalls = [];
346
- for (const event of events) {
347
- if (Array.isArray(event.message?.content)) {
348
- const toolUseBlocks = event.message.content.filter((c) => c.type === 'tool_use');
349
- for (const toolUse of toolUseBlocks) {
350
- // Find corresponding tool result
351
- const toolResult = events.find(e => Array.isArray(e.message?.content) &&
352
- e.message.content.some((c) => c.type === 'tool_result' && c.tool_use_id === toolUse.id));
353
- const resultBlock = (Array.isArray(toolResult?.message?.content) ?
354
- toolResult.message.content.find((c) => c.type === 'tool_result' && c.tool_use_id === toolUse.id) : undefined);
355
- // Detect file modifications
356
- const modifiedFiles = [];
357
- if (['Write', 'Edit', 'Create'].some(op => toolUse.name.includes(op))) {
358
- const filePath = toolUse.input.file_path || toolUse.input.path;
359
- if (filePath && typeof filePath === 'string') {
360
- modifiedFiles.push(filePath);
361
- }
362
- }
363
- // Extract model from the assistant message that contains this tool call
364
- // This captures the actual model used for this specific tool call
365
- // Normalize model name (AWS Bedrock format needs conversion)
366
- const rawModel = event.message?.model;
367
- const model = rawModel ? normalizeModelName(rawModel) : undefined;
368
- toolCalls.push({
369
- toolCallId: toolUse.id,
370
- messageId: event.uuid,
371
- sessionId,
372
- timestamp: new Date(event.timestamp),
373
- toolName: toolUse.name,
374
- toolArgs: toolUse.input,
375
- llm_model: model, // Add normalized model to tool call
376
- status: resultBlock?.is_error ? 'failure' : 'success',
377
- result: resultBlock?.content,
378
- modifiedFiles: modifiedFiles.length > 0 ? modifiedFiles : undefined
379
- });
380
- }
381
- }
382
- }
383
- return toolCalls;
384
- }
385
- async extractToolCalls(descriptor) {
386
- const allEvents = [];
387
- for (const filePath of descriptor.filePaths) {
388
- const events = await readJSONL(filePath);
389
- allEvents.push(...events);
390
- }
391
- return this.extractToolCallsFromEvents(allEvents, descriptor.sessionId);
392
- }
393
- /**
394
- * Calculate metrics for Write operations
395
- */
396
- calculateWriteMetrics(toolUse, result) {
397
- const content = toolUse.input.content || '';
398
- const lines = countLines(content);
399
- const bytes = calculateByteSize(content);
400
- // Check if file was newly created (from result message)
401
- let wasNewFile = false;
402
- if (result && typeof result.content === 'string') {
403
- wasNewFile = result.content.toLowerCase().includes('created') ||
404
- result.content.toLowerCase().includes('new file');
405
- }
406
- return {
407
- linesAdded: lines,
408
- linesRemoved: wasNewFile ? 0 : 0, // Can't determine removed lines without file system access
409
- linesModified: 0,
410
- sizeBytes: bytes,
411
- wasNewFile
412
- };
413
- }
414
- /**
415
- * Calculate metrics for Edit operations
416
- */
417
- calculateEditMetrics(toolUse) {
418
- const oldString = toolUse.input.old_string || '';
419
- const newString = toolUse.input.new_string || '';
420
- const oldLines = countLines(oldString);
421
- const newLines = countLines(newString);
422
- return {
423
- linesAdded: Math.max(0, newLines - oldLines),
424
- linesRemoved: Math.max(0, oldLines - newLines),
425
- linesModified: Math.min(oldLines, newLines),
426
- wasNewFile: false // edit only works on existing files
427
- };
428
- }
429
- async extractFileModifications(descriptor) {
430
- const allEvents = [];
431
- for (const filePath of descriptor.filePaths) {
432
- const events = await readJSONL(filePath);
433
- allEvents.push(...events);
434
- }
435
- const modifications = [];
436
- // Extract from tool calls
437
- for (const event of allEvents) {
438
- if (Array.isArray(event.message?.content)) {
439
- const toolUseBlocks = event.message.content.filter((c) => c.type === 'tool_use');
440
- for (const toolUse of toolUseBlocks) {
441
- // Check if this is a file modification tool
442
- if (['Write', 'Edit', 'Create', 'NotebookEdit'].some(op => toolUse.name.includes(op))) {
443
- const targetFilePath = toolUse.input.file_path ||
444
- toolUse.input.path ||
445
- toolUse.input.notebook_path;
446
- if (!targetFilePath)
447
- continue;
448
- // Find corresponding result
449
- const toolResult = allEvents.find(e => Array.isArray(e.message?.content) &&
450
- e.message.content.some((c) => c.type === 'tool_result' && c.tool_use_id === toolUse.id));
451
- const resultBlock = (Array.isArray(toolResult?.message?.content) ?
452
- toolResult.message.content.find((c) => c.type === 'tool_result' && c.tool_use_id === toolUse.id) : undefined);
453
- // Calculate metrics based on tool type
454
- let metrics;
455
- if (toolUse.name.includes('Write') || toolUse.name.includes('Create')) {
456
- metrics = this.calculateWriteMetrics(toolUse, resultBlock);
457
- }
458
- else if (toolUse.name.includes('Edit')) {
459
- metrics = {
460
- ...this.calculateEditMetrics(toolUse),
461
- sizeBytes: toolUse.input.new_string ?
462
- calculateByteSize(toolUse.input.new_string) :
463
- undefined
464
- };
465
- }
466
- else {
467
- continue; // Skip unknown tools
468
- }
469
- // Determine operation type
470
- let operation = 'update';
471
- if (metrics.wasNewFile || toolUse.name.includes('Create')) {
472
- operation = 'create';
473
- }
474
- else if (toolUse.name.includes('Delete')) {
475
- operation = 'delete';
476
- }
477
- // Detect language and format
478
- const fileExtension = extname(targetFilePath);
479
- const language = detectLanguage(targetFilePath);
480
- const format = detectFormat(targetFilePath);
481
- modifications.push({
482
- sessionId: descriptor.sessionId,
483
- toolCallId: toolUse.id,
484
- timestamp: new Date(event.timestamp),
485
- filePath: targetFilePath,
486
- operation,
487
- linesAdded: metrics.linesAdded,
488
- linesRemoved: metrics.linesRemoved,
489
- linesModified: metrics.linesModified,
490
- sizeBytes: metrics.sizeBytes,
491
- toolName: toolUse.name,
492
- wasNewFile: metrics.wasNewFile,
493
- fileExtension,
494
- language,
495
- format
496
- });
497
- }
498
- }
499
- }
500
- }
501
- // Also extract from file-history-snapshot events (alternative source)
502
- const snapshotEvents = allEvents.filter(e => e.type === 'file-history-snapshot');
503
- for (const event of snapshotEvents) {
504
- if (event.snapshot?.trackedFileBackups) {
505
- // Each backup represents a modification
506
- for (const [filePath] of Object.entries(event.snapshot.trackedFileBackups)) {
507
- const fileExtension = extname(filePath);
508
- const language = detectLanguage(filePath);
509
- const format = detectFormat(filePath);
510
- modifications.push({
511
- sessionId: descriptor.sessionId,
512
- toolCallId: event.uuid,
513
- timestamp: new Date(event.snapshot.timestamp),
514
- filePath,
515
- operation: 'update',
516
- linesAdded: 0, // Can't determine from snapshot
517
- linesRemoved: 0,
518
- linesModified: 0,
519
- toolName: 'file-history-snapshot',
520
- wasNewFile: false,
521
- fileExtension,
522
- language,
523
- format
524
- });
525
- }
526
- }
527
- }
528
- return modifications;
529
- }
530
- }
531
- //# sourceMappingURL=claude.adapter.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"claude.adapter.js","sourceRoot":"","sources":["../../../../src/analytics/aggregation/adapters/claude.adapter.ts"],"names":[],"mappings":"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"}
@@ -1,25 +0,0 @@
1
- /**
2
- * Codex Analytics Adapter
3
- *
4
- * Extracts analytics data from Codex session files stored in:
5
- * ~/.codex/sessions/YYYY/MM/DD/rollout-{timestamp}-{sessionId}.jsonl
6
- *
7
- * JSONL Format: One JSON event per line
8
- * - Event types: session_meta, response_item, event_msg, turn_context, ghost_snapshot
9
- * - Token usage: NOT directly tracked (need to infer or integrate with API)
10
- * - File modifications: tracked via ghost_snapshot events
11
- */
12
- import { BaseAnalyticsAdapter, AdapterMetadata } from '../core/index.js';
13
- import { SessionQueryOptions, SessionDescriptor, CodemieSession, CodemieMessage, CodemieToolCall, CodemieFileModification } from '../types.js';
14
- /**
15
- * Codex analytics adapter
16
- */
17
- export declare class CodexAnalyticsAdapter extends BaseAnalyticsAdapter {
18
- constructor(metadata: AdapterMetadata);
19
- findSessions(options?: SessionQueryOptions): Promise<SessionDescriptor[]>;
20
- extractSession(descriptor: SessionDescriptor): Promise<CodemieSession>;
21
- extractMessages(descriptor: SessionDescriptor): Promise<CodemieMessage[]>;
22
- extractToolCalls(descriptor: SessionDescriptor): Promise<CodemieToolCall[]>;
23
- extractFileModifications(descriptor: SessionDescriptor): Promise<CodemieFileModification[]>;
24
- }
25
- //# sourceMappingURL=codex.adapter.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"codex.adapter.d.ts","sourceRoot":"","sources":["../../../../src/analytics/aggregation/adapters/codex.adapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAIH,OAAO,EACL,oBAAoB,EACpB,eAAe,EAQhB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,mBAAmB,EACnB,iBAAiB,EACjB,cAAc,EACd,cAAc,EACd,eAAe,EACf,uBAAuB,EACxB,MAAM,aAAa,CAAC;AA+DrB;;GAEG;AACH,qBAAa,qBAAsB,SAAQ,oBAAoB;gBACjD,QAAQ,EAAE,eAAe;IAI/B,YAAY,CAAC,OAAO,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAmFzE,cAAc,CAAC,UAAU,EAAE,iBAAiB,GAAG,OAAO,CAAC,cAAc,CAAC;IAuJtE,eAAe,CAAC,UAAU,EAAE,iBAAiB,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAkCzE,gBAAgB,CAAC,UAAU,EAAE,iBAAiB,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;IAyE3E,wBAAwB,CAAC,UAAU,EAAE,iBAAiB,GAAG,OAAO,CAAC,uBAAuB,EAAE,CAAC;CAqGlG"}