@codemieai/code 0.0.16 → 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 (408) 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 +25 -59
  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 +103 -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 +45 -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 +0 -2
  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 +85 -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 +13 -0
  137. package/dist/metrics/sync/aggregator.d.ts.map +1 -0
  138. package/dist/metrics/sync/aggregator.js +196 -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 +72 -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.map +1 -1
  192. package/dist/proxy/http-client.js +49 -14
  193. package/dist/proxy/http-client.js.map +1 -1
  194. package/dist/proxy/plugins/endpoint-blocker.plugin.d.ts +19 -0
  195. package/dist/proxy/plugins/endpoint-blocker.plugin.d.ts.map +1 -0
  196. package/dist/proxy/plugins/endpoint-blocker.plugin.js +61 -0
  197. package/dist/proxy/plugins/endpoint-blocker.plugin.js.map +1 -0
  198. package/dist/proxy/plugins/header-injection.plugin.js +3 -0
  199. package/dist/proxy/plugins/header-injection.plugin.js.map +1 -1
  200. package/dist/proxy/plugins/index.d.ts +3 -1
  201. package/dist/proxy/plugins/index.d.ts.map +1 -1
  202. package/dist/proxy/plugins/index.js +5 -1
  203. package/dist/proxy/plugins/index.js.map +1 -1
  204. package/dist/proxy/plugins/logging.plugin.d.ts +3 -3
  205. package/dist/proxy/plugins/logging.plugin.js +84 -20
  206. package/dist/proxy/plugins/logging.plugin.js.map +1 -1
  207. package/dist/proxy/plugins/metrics-sync.plugin.d.ts +33 -0
  208. package/dist/proxy/plugins/metrics-sync.plugin.d.ts.map +1 -0
  209. package/dist/proxy/plugins/metrics-sync.plugin.js +310 -0
  210. package/dist/proxy/plugins/metrics-sync.plugin.js.map +1 -0
  211. package/dist/proxy/plugins/registry.d.ts.map +1 -1
  212. package/dist/proxy/plugins/registry.js +8 -1
  213. package/dist/proxy/plugins/registry.js.map +1 -1
  214. package/dist/proxy/plugins/types.d.ts +6 -2
  215. package/dist/proxy/plugins/types.d.ts.map +1 -1
  216. package/dist/proxy/types.d.ts +7 -0
  217. package/dist/proxy/types.d.ts.map +1 -1
  218. package/dist/utils/ascii-logo.d.ts +21 -0
  219. package/dist/utils/ascii-logo.d.ts.map +1 -0
  220. package/dist/utils/ascii-logo.js +75 -0
  221. package/dist/utils/ascii-logo.js.map +1 -0
  222. package/dist/utils/codemie-proxy.d.ts +0 -6
  223. package/dist/utils/codemie-proxy.d.ts.map +1 -1
  224. package/dist/utils/codemie-proxy.js +46 -56
  225. package/dist/utils/codemie-proxy.js.map +1 -1
  226. package/dist/utils/config-loader.d.ts.map +1 -1
  227. package/dist/utils/config-loader.js +22 -6
  228. package/dist/utils/config-loader.js.map +1 -1
  229. package/dist/utils/exec.d.ts +11 -0
  230. package/dist/utils/exec.d.ts.map +1 -1
  231. package/dist/utils/exec.js +17 -1
  232. package/dist/utils/exec.js.map +1 -1
  233. package/dist/utils/goodbye-messages.d.ts +13 -0
  234. package/dist/utils/goodbye-messages.d.ts.map +1 -0
  235. package/dist/utils/goodbye-messages.js +245 -0
  236. package/dist/utils/goodbye-messages.js.map +1 -0
  237. package/dist/utils/json-parser.d.ts +52 -0
  238. package/dist/utils/json-parser.d.ts.map +1 -0
  239. package/dist/utils/json-parser.js +126 -0
  240. package/dist/utils/json-parser.js.map +1 -0
  241. package/dist/utils/logger.d.ts +37 -1
  242. package/dist/utils/logger.d.ts.map +1 -1
  243. package/dist/utils/logger.js +92 -20
  244. package/dist/utils/logger.js.map +1 -1
  245. package/dist/utils/sanitize.d.ts.map +1 -1
  246. package/dist/utils/sanitize.js +0 -1
  247. package/dist/utils/sanitize.js.map +1 -1
  248. package/dist/utils/which.d.ts +20 -0
  249. package/dist/utils/which.d.ts.map +1 -0
  250. package/dist/utils/which.js +47 -0
  251. package/dist/utils/which.js.map +1 -0
  252. package/package.json +10 -5
  253. package/dist/analytics/aggregation/adapters/claude.adapter.d.ts +0 -37
  254. package/dist/analytics/aggregation/adapters/claude.adapter.d.ts.map +0 -1
  255. package/dist/analytics/aggregation/adapters/claude.adapter.js +0 -531
  256. package/dist/analytics/aggregation/adapters/claude.adapter.js.map +0 -1
  257. package/dist/analytics/aggregation/adapters/codex.adapter.d.ts +0 -25
  258. package/dist/analytics/aggregation/adapters/codex.adapter.d.ts.map +0 -1
  259. package/dist/analytics/aggregation/adapters/codex.adapter.js +0 -396
  260. package/dist/analytics/aggregation/adapters/codex.adapter.js.map +0 -1
  261. package/dist/analytics/aggregation/adapters/gemini.adapter.d.ts +0 -36
  262. package/dist/analytics/aggregation/adapters/gemini.adapter.d.ts.map +0 -1
  263. package/dist/analytics/aggregation/adapters/gemini.adapter.js +0 -365
  264. package/dist/analytics/aggregation/adapters/gemini.adapter.js.map +0 -1
  265. package/dist/analytics/aggregation/adapters/index.d.ts +0 -7
  266. package/dist/analytics/aggregation/adapters/index.d.ts.map +0 -1
  267. package/dist/analytics/aggregation/adapters/index.js +0 -7
  268. package/dist/analytics/aggregation/adapters/index.js.map +0 -1
  269. package/dist/analytics/aggregation/aggregator.d.ts +0 -49
  270. package/dist/analytics/aggregation/aggregator.d.ts.map +0 -1
  271. package/dist/analytics/aggregation/aggregator.js +0 -239
  272. package/dist/analytics/aggregation/aggregator.js.map +0 -1
  273. package/dist/analytics/aggregation/core/BaseAnalyticsAdapter.d.ts +0 -99
  274. package/dist/analytics/aggregation/core/BaseAnalyticsAdapter.d.ts.map +0 -1
  275. package/dist/analytics/aggregation/core/BaseAnalyticsAdapter.js +0 -110
  276. package/dist/analytics/aggregation/core/BaseAnalyticsAdapter.js.map +0 -1
  277. package/dist/analytics/aggregation/core/adapter.interface.d.ts +0 -76
  278. package/dist/analytics/aggregation/core/adapter.interface.d.ts.map +0 -1
  279. package/dist/analytics/aggregation/core/adapter.interface.js +0 -9
  280. package/dist/analytics/aggregation/core/adapter.interface.js.map +0 -1
  281. package/dist/analytics/aggregation/core/aggregation-utils.d.ts +0 -86
  282. package/dist/analytics/aggregation/core/aggregation-utils.d.ts.map +0 -1
  283. package/dist/analytics/aggregation/core/aggregation-utils.js +0 -126
  284. package/dist/analytics/aggregation/core/aggregation-utils.js.map +0 -1
  285. package/dist/analytics/aggregation/core/discovery.d.ts +0 -40
  286. package/dist/analytics/aggregation/core/discovery.d.ts.map +0 -1
  287. package/dist/analytics/aggregation/core/discovery.js +0 -132
  288. package/dist/analytics/aggregation/core/discovery.js.map +0 -1
  289. package/dist/analytics/aggregation/core/file-utils.d.ts +0 -24
  290. package/dist/analytics/aggregation/core/file-utils.d.ts.map +0 -1
  291. package/dist/analytics/aggregation/core/file-utils.js +0 -143
  292. package/dist/analytics/aggregation/core/file-utils.js.map +0 -1
  293. package/dist/analytics/aggregation/core/index.d.ts +0 -14
  294. package/dist/analytics/aggregation/core/index.d.ts.map +0 -1
  295. package/dist/analytics/aggregation/core/index.js +0 -14
  296. package/dist/analytics/aggregation/core/index.js.map +0 -1
  297. package/dist/analytics/aggregation/core/project-mapping.d.ts +0 -50
  298. package/dist/analytics/aggregation/core/project-mapping.d.ts.map +0 -1
  299. package/dist/analytics/aggregation/core/project-mapping.js +0 -102
  300. package/dist/analytics/aggregation/core/project-mapping.js.map +0 -1
  301. package/dist/analytics/aggregation/core/streaming.d.ts +0 -26
  302. package/dist/analytics/aggregation/core/streaming.d.ts.map +0 -1
  303. package/dist/analytics/aggregation/core/streaming.js +0 -58
  304. package/dist/analytics/aggregation/core/streaming.js.map +0 -1
  305. package/dist/analytics/aggregation/core/user-prompt-source.d.ts +0 -81
  306. package/dist/analytics/aggregation/core/user-prompt-source.d.ts.map +0 -1
  307. package/dist/analytics/aggregation/core/user-prompt-source.js +0 -69
  308. package/dist/analytics/aggregation/core/user-prompt-source.js.map +0 -1
  309. package/dist/analytics/aggregation/core/user-prompt-sources/json.d.ts +0 -49
  310. package/dist/analytics/aggregation/core/user-prompt-sources/json.d.ts.map +0 -1
  311. package/dist/analytics/aggregation/core/user-prompt-sources/json.js +0 -66
  312. package/dist/analytics/aggregation/core/user-prompt-sources/json.js.map +0 -1
  313. package/dist/analytics/aggregation/core/user-prompt-sources/jsonl.d.ts +0 -43
  314. package/dist/analytics/aggregation/core/user-prompt-sources/jsonl.d.ts.map +0 -1
  315. package/dist/analytics/aggregation/core/user-prompt-sources/jsonl.js +0 -56
  316. package/dist/analytics/aggregation/core/user-prompt-sources/jsonl.js.map +0 -1
  317. package/dist/analytics/aggregation/index.d.ts +0 -8
  318. package/dist/analytics/aggregation/index.d.ts.map +0 -1
  319. package/dist/analytics/aggregation/index.js +0 -8
  320. package/dist/analytics/aggregation/index.js.map +0 -1
  321. package/dist/analytics/aggregation/types.d.ts +0 -278
  322. package/dist/analytics/aggregation/types.d.ts.map +0 -1
  323. package/dist/analytics/aggregation/types.js +0 -8
  324. package/dist/analytics/aggregation/types.js.map +0 -1
  325. package/dist/analytics/collector.d.ts +0 -46
  326. package/dist/analytics/collector.d.ts.map +0 -1
  327. package/dist/analytics/collector.js +0 -83
  328. package/dist/analytics/collector.js.map +0 -1
  329. package/dist/analytics/config.d.ts +0 -15
  330. package/dist/analytics/config.d.ts.map +0 -1
  331. package/dist/analytics/config.js +0 -65
  332. package/dist/analytics/config.js.map +0 -1
  333. package/dist/analytics/index.d.ts +0 -99
  334. package/dist/analytics/index.d.ts.map +0 -1
  335. package/dist/analytics/index.js +0 -280
  336. package/dist/analytics/index.js.map +0 -1
  337. package/dist/analytics/plugins/api-metrics.plugin.d.ts +0 -26
  338. package/dist/analytics/plugins/api-metrics.plugin.d.ts.map +0 -1
  339. package/dist/analytics/plugins/api-metrics.plugin.js +0 -97
  340. package/dist/analytics/plugins/api-metrics.plugin.js.map +0 -1
  341. package/dist/analytics/plugins/index.d.ts +0 -15
  342. package/dist/analytics/plugins/index.d.ts.map +0 -1
  343. package/dist/analytics/plugins/index.js +0 -15
  344. package/dist/analytics/plugins/index.js.map +0 -1
  345. package/dist/analytics/plugins/model-metrics.plugin.d.ts +0 -39
  346. package/dist/analytics/plugins/model-metrics.plugin.d.ts.map +0 -1
  347. package/dist/analytics/plugins/model-metrics.plugin.js +0 -105
  348. package/dist/analytics/plugins/model-metrics.plugin.js.map +0 -1
  349. package/dist/analytics/plugins/provider-metrics.plugin.d.ts +0 -41
  350. package/dist/analytics/plugins/provider-metrics.plugin.d.ts.map +0 -1
  351. package/dist/analytics/plugins/provider-metrics.plugin.js +0 -123
  352. package/dist/analytics/plugins/provider-metrics.plugin.js.map +0 -1
  353. package/dist/analytics/plugins/types.d.ts +0 -61
  354. package/dist/analytics/plugins/types.d.ts.map +0 -1
  355. package/dist/analytics/plugins/types.js +0 -54
  356. package/dist/analytics/plugins/types.js.map +0 -1
  357. package/dist/analytics/privacy.d.ts +0 -10
  358. package/dist/analytics/privacy.d.ts.map +0 -1
  359. package/dist/analytics/privacy.js +0 -20
  360. package/dist/analytics/privacy.js.map +0 -1
  361. package/dist/analytics/remote-submission/cursor-manager.d.ts +0 -71
  362. package/dist/analytics/remote-submission/cursor-manager.d.ts.map +0 -1
  363. package/dist/analytics/remote-submission/cursor-manager.js +0 -204
  364. package/dist/analytics/remote-submission/cursor-manager.js.map +0 -1
  365. package/dist/analytics/remote-submission/index.d.ts +0 -12
  366. package/dist/analytics/remote-submission/index.d.ts.map +0 -1
  367. package/dist/analytics/remote-submission/index.js +0 -11
  368. package/dist/analytics/remote-submission/index.js.map +0 -1
  369. package/dist/analytics/remote-submission/lock-manager.d.ts +0 -71
  370. package/dist/analytics/remote-submission/lock-manager.d.ts.map +0 -1
  371. package/dist/analytics/remote-submission/lock-manager.js +0 -238
  372. package/dist/analytics/remote-submission/lock-manager.js.map +0 -1
  373. package/dist/analytics/remote-submission/metric-transformer.d.ts +0 -21
  374. package/dist/analytics/remote-submission/metric-transformer.d.ts.map +0 -1
  375. package/dist/analytics/remote-submission/metric-transformer.js +0 -82
  376. package/dist/analytics/remote-submission/metric-transformer.js.map +0 -1
  377. package/dist/analytics/remote-submission/submitter.d.ts +0 -79
  378. package/dist/analytics/remote-submission/submitter.d.ts.map +0 -1
  379. package/dist/analytics/remote-submission/submitter.js +0 -362
  380. package/dist/analytics/remote-submission/submitter.js.map +0 -1
  381. package/dist/analytics/remote-submission/types.d.ts +0 -123
  382. package/dist/analytics/remote-submission/types.d.ts.map +0 -1
  383. package/dist/analytics/remote-submission/types.js +0 -13
  384. package/dist/analytics/remote-submission/types.js.map +0 -1
  385. package/dist/analytics/session.d.ts +0 -56
  386. package/dist/analytics/session.d.ts.map +0 -1
  387. package/dist/analytics/session.js +0 -95
  388. package/dist/analytics/session.js.map +0 -1
  389. package/dist/analytics/types.d.ts +0 -104
  390. package/dist/analytics/types.d.ts.map +0 -1
  391. package/dist/analytics/types.js +0 -15
  392. package/dist/analytics/types.js.map +0 -1
  393. package/dist/analytics/writer.d.ts +0 -18
  394. package/dist/analytics/writer.d.ts.map +0 -1
  395. package/dist/analytics/writer.js +0 -44
  396. package/dist/analytics/writer.js.map +0 -1
  397. package/dist/cli/commands/analytics.d.ts +0 -3
  398. package/dist/cli/commands/analytics.d.ts.map +0 -1
  399. package/dist/cli/commands/analytics.js +0 -748
  400. package/dist/cli/commands/analytics.js.map +0 -1
  401. package/dist/utils/analytics-reader.d.ts +0 -117
  402. package/dist/utils/analytics-reader.d.ts.map +0 -1
  403. package/dist/utils/analytics-reader.js +0 -421
  404. package/dist/utils/analytics-reader.js.map +0 -1
  405. package/dist/utils/date-formatter.d.ts +0 -88
  406. package/dist/utils/date-formatter.d.ts.map +0 -1
  407. package/dist/utils/date-formatter.js +0 -133
  408. package/dist/utils/date-formatter.js.map +0 -1
@@ -1,396 +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 { join } from 'node:path';
13
- import { existsSync } from 'node:fs';
14
- import { BaseAnalyticsAdapter, resolvePath, findFiles, filterFilesByDate, readJSONL, detectLanguage, detectFormat, calculateFileStats } from '../core/index.js';
15
- /**
16
- * Codex analytics adapter
17
- */
18
- export class CodexAnalyticsAdapter extends BaseAnalyticsAdapter {
19
- constructor(metadata) {
20
- super(metadata);
21
- }
22
- async findSessions(options) {
23
- const baseDir = resolvePath(this.homePath);
24
- const sessionsDir = join(baseDir, this.sessionsPath || 'sessions');
25
- if (!existsSync(sessionsDir)) {
26
- return [];
27
- }
28
- const descriptors = [];
29
- try {
30
- // Scan YYYY/MM/DD directory structure
31
- const { readdir } = await import('node:fs/promises');
32
- const years = await readdir(sessionsDir, { withFileTypes: true });
33
- for (const yearDir of years) {
34
- if (!yearDir.isDirectory() || !/^\d{4}$/.test(yearDir.name))
35
- continue;
36
- const yearPath = join(sessionsDir, yearDir.name);
37
- const months = await readdir(yearPath, { withFileTypes: true });
38
- for (const monthDir of months) {
39
- if (!monthDir.isDirectory() || !/^\d{2}$/.test(monthDir.name))
40
- continue;
41
- const monthPath = join(yearPath, monthDir.name);
42
- const days = await readdir(monthPath, { withFileTypes: true });
43
- for (const dayDir of days) {
44
- if (!dayDir.isDirectory() || !/^\d{2}$/.test(dayDir.name))
45
- continue;
46
- const dayPath = join(monthPath, dayDir.name);
47
- // Find all rollout-*.jsonl files
48
- const jsonlFiles = await findFiles(dayPath, /^rollout-.*\.jsonl$/);
49
- // Filter by date if specified
50
- let filteredFiles = jsonlFiles;
51
- if (options?.dateFrom || options?.dateTo) {
52
- filteredFiles = await filterFilesByDate(jsonlFiles, options.dateFrom, options.dateTo);
53
- }
54
- // Process each session file
55
- for (const filePath of filteredFiles) {
56
- try {
57
- // Read first event to get session metadata
58
- const events = await readJSONL(filePath, 1);
59
- if (events.length === 0)
60
- continue;
61
- const firstEvent = events[0];
62
- if (firstEvent.type !== 'session_meta') {
63
- console.warn(`Expected session_meta as first event in ${filePath}`);
64
- continue;
65
- }
66
- const sessionMeta = firstEvent.payload;
67
- descriptors.push({
68
- sessionId: sessionMeta.id,
69
- agent: this.agentName,
70
- filePaths: [filePath],
71
- metadata: {
72
- cwd: sessionMeta.cwd,
73
- gitBranch: sessionMeta.git?.branch,
74
- gitCommit: sessionMeta.git?.commit_hash,
75
- cliVersion: sessionMeta.cli_version,
76
- timestamp: sessionMeta.timestamp
77
- }
78
- });
79
- }
80
- catch (error) {
81
- console.error(`Failed to read session file ${filePath}: ${error}`);
82
- }
83
- }
84
- }
85
- }
86
- }
87
- }
88
- catch (error) {
89
- console.error(`Error scanning Codex sessions: ${error}`);
90
- }
91
- // Apply pagination using inherited method
92
- return this.applyPagination(descriptors, options);
93
- }
94
- async extractSession(descriptor) {
95
- // Read all events from session file
96
- const filePath = descriptor.filePaths[0];
97
- const allEvents = await readJSONL(filePath);
98
- // Extract session metadata
99
- const sessionMetaEvent = allEvents.find(e => e.type === 'session_meta');
100
- if (!sessionMetaEvent) {
101
- throw new Error(`No session_meta event found in ${filePath}`);
102
- }
103
- const sessionMeta = sessionMetaEvent.payload;
104
- // Calculate session timing
105
- const firstEvent = allEvents[0];
106
- const lastEvent = allEvents[allEvents.length - 1];
107
- const startTime = new Date(firstEvent.timestamp);
108
- const endTime = new Date(lastEvent.timestamp);
109
- const durationMs = endTime.getTime() - startTime.getTime();
110
- // Count user messages (event_msg with type: user_message)
111
- const userMessageEvents = allEvents.filter(e => e.type === 'event_msg' && e.payload.type === 'user_message');
112
- // Count assistant messages (response_item with role: assistant)
113
- const assistantMessages = allEvents.filter(e => e.type === 'response_item' &&
114
- e.payload.role === 'assistant');
115
- // Extract tool calls (implicit - Codex doesn't have explicit tool call structure)
116
- const toolCalls = await this.extractToolCalls(descriptor);
117
- // Count successful/failed tool calls
118
- const successfulToolCalls = toolCalls.filter(tc => tc.status === 'success').length;
119
- const failedToolCalls = toolCalls.filter(tc => tc.status === 'failure').length;
120
- // Track tool usage
121
- const toolUsage = {};
122
- const toolStatus = {};
123
- for (const tc of toolCalls) {
124
- toolUsage[tc.toolName] = (toolUsage[tc.toolName] || 0) + 1;
125
- if (!toolStatus[tc.toolName]) {
126
- toolStatus[tc.toolName] = { success: 0, failure: 0 };
127
- }
128
- if (tc.status === 'success') {
129
- toolStatus[tc.toolName].success++;
130
- }
131
- else if (tc.status === 'failure') {
132
- toolStatus[tc.toolName].failure++;
133
- }
134
- }
135
- // Extract model from turn_context events
136
- const turnContexts = allEvents.filter(e => e.type === 'turn_context');
137
- const modelUsage = {};
138
- let model = 'gpt-4.1'; // Default
139
- for (const event of turnContexts) {
140
- const context = event.payload;
141
- if (context.model) {
142
- model = context.model;
143
- modelUsage[context.model] = (modelUsage[context.model] || 0) + 1;
144
- }
145
- }
146
- // Extract file modifications
147
- const fileModifications = await this.extractFileModifications(descriptor);
148
- // Calculate file statistics
149
- const fileStats = calculateFileStats(fileModifications);
150
- // Token usage: NOT directly available in Codex logs
151
- // We return 0 for all token counts with a note in design doc
152
- const tokens = {
153
- input: 0,
154
- output: 0,
155
- cacheRead: 0,
156
- cacheCreation: 0,
157
- total: 0
158
- };
159
- // Check for errors and completion status
160
- const abortedEvents = allEvents.filter(e => e.type === 'event_msg' && e.payload.type === 'turn_aborted');
161
- const completeEvents = allEvents.filter(e => e.type === 'event_msg' && e.payload.type === 'turn_complete');
162
- // Session is considered failed if:
163
- // 1. There are aborted events
164
- // 2. There are failed tool calls
165
- // 3. There are user messages but no assistant responses (incomplete/failed session)
166
- // 4. No turn_complete event and session ended
167
- const hadErrors = failedToolCalls > 0 ||
168
- abortedEvents.length > 0 ||
169
- (userMessageEvents.length > 0 && assistantMessages.length === 0) ||
170
- completeEvents.length === 0;
171
- // Determine exit reason
172
- let exitReason;
173
- if (abortedEvents.length > 0) {
174
- const lastAbort = abortedEvents[abortedEvents.length - 1];
175
- exitReason = lastAbort.payload.error || 'aborted';
176
- }
177
- else if (userMessageEvents.length > 0 && assistantMessages.length === 0) {
178
- exitReason = 'incomplete - no assistant response';
179
- }
180
- else if (completeEvents.length === 0) {
181
- exitReason = 'incomplete - no completion event';
182
- }
183
- // Get project path
184
- const projectPath = descriptor.metadata.cwd || '';
185
- // Codex doesn't have a separate history file yet
186
- // Use userMessageCount as userPromptCount (100% real user input)
187
- const userPromptCount = userMessageEvents.length;
188
- const userPromptPercentage = this.calculateUserPromptPercentage(userPromptCount, userMessageEvents.length);
189
- return {
190
- sessionId: descriptor.sessionId,
191
- agent: 'codex',
192
- agentVersion: sessionMeta.cli_version,
193
- startTime,
194
- endTime,
195
- durationMs,
196
- projectPath,
197
- gitBranch: sessionMeta.git?.branch,
198
- gitCommit: sessionMeta.git?.commit_hash,
199
- model,
200
- provider: sessionMeta.model_provider || 'openai',
201
- userPromptCount, // Same as userMessageCount for Codex (no history file)
202
- userMessageCount: userMessageEvents.length,
203
- assistantMessageCount: assistantMessages.length,
204
- userPromptPercentage, // 100% for Codex (no system messages yet)
205
- toolCallCount: toolCalls.length,
206
- successfulToolCalls,
207
- failedToolCalls,
208
- fileModifications: fileModifications.length,
209
- toolUsage,
210
- toolStatus,
211
- modelUsage,
212
- tokens,
213
- exitReason,
214
- hadErrors,
215
- fileStats
216
- };
217
- }
218
- async extractMessages(descriptor) {
219
- const filePath = descriptor.filePaths[0];
220
- const allEvents = await readJSONL(filePath);
221
- const messages = [];
222
- // Extract response_item events (messages)
223
- for (const event of allEvents) {
224
- if (event.type === 'response_item') {
225
- const item = event.payload;
226
- if (item.type !== 'message')
227
- continue;
228
- // Extract text content
229
- const content = item.content
230
- .filter(c => c.type === 'input_text' || c.type === 'text')
231
- .map(c => c.text)
232
- .join('\n');
233
- // Note: Codex doesn't provide message-level token data
234
- messages.push({
235
- messageId: `${descriptor.sessionId}-${event.timestamp}`,
236
- sessionId: descriptor.sessionId,
237
- timestamp: new Date(event.timestamp),
238
- role: item.role,
239
- content,
240
- tokens: undefined, // Not available in Codex logs
241
- model: undefined // Model tracked at turn level, not message level
242
- });
243
- }
244
- }
245
- return messages;
246
- }
247
- async extractToolCalls(descriptor) {
248
- const filePath = descriptor.filePaths[0];
249
- const allEvents = await readJSONL(filePath);
250
- const toolCalls = [];
251
- // Note: Codex doesn't have explicit tool call structure
252
- // Tool calls are implicit in the conversation flow
253
- // We can infer some from ghost_snapshot events (file system operations)
254
- // Extract model from turn_context events for model tracking
255
- const turnContexts = allEvents.filter(e => e.type === 'turn_context');
256
- const getModelAtTimestamp = (timestamp) => {
257
- // Find the most recent turn_context before this timestamp
258
- const relevantContexts = turnContexts
259
- .filter(e => new Date(e.timestamp).getTime() <= timestamp)
260
- .sort((a, b) => new Date(b.timestamp).getTime() - new Date(a.timestamp).getTime());
261
- const context = relevantContexts[0]?.payload;
262
- return context?.model;
263
- };
264
- // Extract ghost_snapshot events as proxy for file operations
265
- const ghostSnapshots = allEvents.filter(e => e.type === 'ghost_snapshot');
266
- for (const event of ghostSnapshots) {
267
- const snapshot = event.payload;
268
- const eventTimestamp = new Date(event.timestamp).getTime();
269
- // Each ghost snapshot represents a file system state change
270
- toolCalls.push({
271
- toolCallId: `ghost-${snapshot.ghost_commit.id}`,
272
- messageId: `${descriptor.sessionId}-${event.timestamp}`,
273
- sessionId: descriptor.sessionId,
274
- timestamp: new Date(event.timestamp),
275
- toolName: 'ghost_snapshot',
276
- toolArgs: {
277
- commit_id: snapshot.ghost_commit.id,
278
- parent: snapshot.ghost_commit.parent,
279
- preexisting_untracked_files: snapshot.ghost_commit.preexisting_untracked_files,
280
- preexisting_untracked_dirs: snapshot.ghost_commit.preexisting_untracked_dirs
281
- },
282
- llm_model: getModelAtTimestamp(eventTimestamp), // Add model tracking
283
- status: 'success',
284
- result: snapshot.ghost_commit
285
- });
286
- }
287
- // Check for aborted turns (failures)
288
- const abortedEvents = allEvents.filter(e => e.type === 'event_msg' && e.payload.type === 'turn_aborted');
289
- for (const event of abortedEvents) {
290
- const eventMsg = event.payload;
291
- const eventTimestamp = new Date(event.timestamp).getTime();
292
- toolCalls.push({
293
- toolCallId: `abort-${event.timestamp}`,
294
- messageId: `${descriptor.sessionId}-${event.timestamp}`,
295
- sessionId: descriptor.sessionId,
296
- timestamp: new Date(event.timestamp),
297
- toolName: 'turn_aborted',
298
- toolArgs: {},
299
- llm_model: getModelAtTimestamp(eventTimestamp), // Add model tracking
300
- status: 'failure',
301
- error: eventMsg.error || 'Turn aborted'
302
- });
303
- }
304
- return toolCalls;
305
- }
306
- async extractFileModifications(descriptor) {
307
- const filePath = descriptor.filePaths[0];
308
- const allEvents = await readJSONL(filePath);
309
- const modifications = [];
310
- // Extract file modifications from ghost_snapshot events
311
- const ghostSnapshots = allEvents.filter(e => e.type === 'ghost_snapshot');
312
- // Compare consecutive snapshots to detect changes
313
- for (let i = 0; i < ghostSnapshots.length; i++) {
314
- const currentEvent = ghostSnapshots[i];
315
- const currentSnapshot = currentEvent.payload;
316
- // Get previous snapshot if exists
317
- const prevSnapshot = i > 0 ? ghostSnapshots[i - 1].payload : null;
318
- // Files in current snapshot but not in previous = new files
319
- const currentFiles = new Set(currentSnapshot.ghost_commit.preexisting_untracked_files);
320
- const prevFiles = prevSnapshot ?
321
- new Set(prevSnapshot.ghost_commit.preexisting_untracked_files) :
322
- new Set();
323
- // New files (created)
324
- for (const file of currentFiles) {
325
- if (!prevFiles.has(file)) {
326
- const language = detectLanguage(file);
327
- const format = detectFormat(file);
328
- const fileExtension = file.substring(file.lastIndexOf('.'));
329
- modifications.push({
330
- sessionId: descriptor.sessionId,
331
- toolCallId: `ghost-${currentSnapshot.ghost_commit.id}`,
332
- timestamp: new Date(currentEvent.timestamp),
333
- filePath: file,
334
- operation: 'create',
335
- linesAdded: 0, // Can't determine without file content
336
- linesRemoved: 0,
337
- linesModified: 0,
338
- toolName: 'ghost_snapshot',
339
- wasNewFile: true,
340
- fileExtension,
341
- language,
342
- format
343
- });
344
- }
345
- }
346
- // Modified files (existed in both snapshots)
347
- for (const file of currentFiles) {
348
- if (prevFiles.has(file)) {
349
- const language = detectLanguage(file);
350
- const format = detectFormat(file);
351
- const fileExtension = file.substring(file.lastIndexOf('.'));
352
- modifications.push({
353
- sessionId: descriptor.sessionId,
354
- toolCallId: `ghost-${currentSnapshot.ghost_commit.id}`,
355
- timestamp: new Date(currentEvent.timestamp),
356
- filePath: file,
357
- operation: 'update',
358
- linesAdded: 0, // Can't determine without file content
359
- linesRemoved: 0,
360
- linesModified: 0,
361
- toolName: 'ghost_snapshot',
362
- wasNewFile: false,
363
- fileExtension,
364
- language,
365
- format
366
- });
367
- }
368
- }
369
- // Deleted files (in previous but not in current)
370
- for (const file of prevFiles) {
371
- if (!currentFiles.has(file)) {
372
- const language = detectLanguage(file);
373
- const format = detectFormat(file);
374
- const fileExtension = file.substring(file.lastIndexOf('.'));
375
- modifications.push({
376
- sessionId: descriptor.sessionId,
377
- toolCallId: `ghost-${currentSnapshot.ghost_commit.id}`,
378
- timestamp: new Date(currentEvent.timestamp),
379
- filePath: file,
380
- operation: 'delete',
381
- linesAdded: 0,
382
- linesRemoved: 0,
383
- linesModified: 0,
384
- toolName: 'ghost_snapshot',
385
- wasNewFile: false,
386
- fileExtension,
387
- language,
388
- format
389
- });
390
- }
391
- }
392
- }
393
- return modifications;
394
- }
395
- }
396
- //# sourceMappingURL=codex.adapter.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"codex.adapter.js","sourceRoot":"","sources":["../../../../src/analytics/aggregation/adapters/codex.adapter.ts"],"names":[],"mappings":"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"}
@@ -1,36 +0,0 @@
1
- /**
2
- * Gemini CLI Analytics Adapter
3
- *
4
- * Extracts analytics data from Gemini CLI session files stored in:
5
- * ~/.gemini/tmp/{projectHash}/chats/session-{timestamp}-{id}.json
6
- */
7
- import { BaseAnalyticsAdapter, AdapterMetadata } from '../core/index.js';
8
- import { SessionQueryOptions, SessionDescriptor, CodemieSession, CodemieMessage, CodemieToolCall, CodemieFileModification } from '../types.js';
9
- /**
10
- * Gemini CLI analytics adapter
11
- */
12
- export declare class GeminiAnalyticsAdapter extends BaseAnalyticsAdapter {
13
- constructor(metadata: AdapterMetadata);
14
- /**
15
- * Helper: Get logs.json path for a project hash
16
- */
17
- private getLogsPath;
18
- /**
19
- * Initialize user prompt source for a specific project hash
20
- */
21
- private initUserPromptSource;
22
- findSessions(options?: SessionQueryOptions): Promise<SessionDescriptor[]>;
23
- extractSession(descriptor: SessionDescriptor): Promise<CodemieSession>;
24
- extractMessages(descriptor: SessionDescriptor): Promise<CodemieMessage[]>;
25
- extractToolCalls(descriptor: SessionDescriptor): Promise<CodemieToolCall[]>;
26
- /**
27
- * Calculate metrics for write_file operations
28
- */
29
- private calculateWriteFileMetrics;
30
- /**
31
- * Calculate metrics for replace operations
32
- */
33
- private calculateReplaceMetrics;
34
- extractFileModifications(descriptor: SessionDescriptor): Promise<CodemieFileModification[]>;
35
- }
36
- //# sourceMappingURL=gemini.adapter.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"gemini.adapter.d.ts","sourceRoot":"","sources":["../../../../src/analytics/aggregation/adapters/gemini.adapter.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,EACL,oBAAoB,EACpB,eAAe,EAahB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,mBAAmB,EACnB,iBAAiB,EACjB,cAAc,EACd,cAAc,EACd,eAAe,EACf,uBAAuB,EACxB,MAAM,aAAa,CAAC;AAkDrB;;GAEG;AACH,qBAAa,sBAAuB,SAAQ,oBAAoB;gBAClD,QAAQ,EAAE,eAAe;IAIrC;;OAEG;IACH,OAAO,CAAC,WAAW;IAInB;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAoBtB,YAAY,CAAC,OAAO,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAyDzE,cAAc,CAAC,UAAU,EAAE,iBAAiB,GAAG,OAAO,CAAC,cAAc,CAAC;IA8ItE,eAAe,CAAC,UAAU,EAAE,iBAAiB,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAuBzE,gBAAgB,CAAC,UAAU,EAAE,iBAAiB,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;IAqCjF;;OAEG;IACH,OAAO,CAAC,yBAAyB;IAoBjC;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAiBzB,wBAAwB,CAAC,UAAU,EAAE,iBAAiB,GAAG,OAAO,CAAC,uBAAuB,EAAE,CAAC;CA+DlG"}