@codemieai/code 0.0.16 → 0.0.18

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (410) hide show
  1. package/README.md +62 -5
  2. package/bin/agent-executor.js +7 -28
  3. package/bin/codemie-claude.js +18 -0
  4. package/bin/codemie-codex.js +18 -0
  5. package/bin/codemie-deepagents.js +18 -0
  6. package/bin/codemie-gemini.js +18 -0
  7. package/dist/agents/codemie-code/agent.d.ts.map +1 -1
  8. package/dist/agents/codemie-code/agent.js +3 -32
  9. package/dist/agents/codemie-code/agent.js.map +1 -1
  10. package/dist/agents/codemie-code/tools/planning.d.ts +2 -2
  11. package/dist/agents/core/AgentCLI.d.ts.map +1 -1
  12. package/dist/agents/core/AgentCLI.js +31 -62
  13. package/dist/agents/core/AgentCLI.js.map +1 -1
  14. package/dist/agents/core/BaseAgentAdapter.d.ts +9 -1
  15. package/dist/agents/core/BaseAgentAdapter.d.ts.map +1 -1
  16. package/dist/agents/core/BaseAgentAdapter.js +125 -10
  17. package/dist/agents/core/BaseAgentAdapter.js.map +1 -1
  18. package/dist/agents/core/BaseMetricsAdapter.d.ts +64 -0
  19. package/dist/agents/core/BaseMetricsAdapter.d.ts.map +1 -0
  20. package/dist/agents/core/BaseMetricsAdapter.js +74 -0
  21. package/dist/agents/core/BaseMetricsAdapter.js.map +1 -0
  22. package/dist/agents/core/types.d.ts +1 -0
  23. package/dist/agents/core/types.d.ts.map +1 -1
  24. package/dist/agents/plugins/claude.metrics.d.ts +112 -0
  25. package/dist/agents/plugins/claude.metrics.d.ts.map +1 -0
  26. package/dist/agents/plugins/claude.metrics.js +700 -0
  27. package/dist/agents/plugins/claude.metrics.js.map +1 -0
  28. package/dist/agents/plugins/claude.plugin.d.ts +9 -0
  29. package/dist/agents/plugins/claude.plugin.d.ts.map +1 -1
  30. package/dist/agents/plugins/claude.plugin.js +52 -10
  31. package/dist/agents/plugins/claude.plugin.js.map +1 -1
  32. package/dist/agents/plugins/codemie-code.plugin.d.ts.map +1 -1
  33. package/dist/agents/plugins/codemie-code.plugin.js +57 -13
  34. package/dist/agents/plugins/codemie-code.plugin.js.map +1 -1
  35. package/dist/agents/plugins/codex.plugin.d.ts.map +1 -1
  36. package/dist/agents/plugins/codex.plugin.js +1 -3
  37. package/dist/agents/plugins/codex.plugin.js.map +1 -1
  38. package/dist/agents/plugins/gemini.plugin.d.ts.map +1 -1
  39. package/dist/agents/plugins/gemini.plugin.js +0 -7
  40. package/dist/agents/plugins/gemini.plugin.js.map +1 -1
  41. package/dist/agents/plugins/history-parser.d.ts +52 -0
  42. package/dist/agents/plugins/history-parser.d.ts.map +1 -0
  43. package/dist/agents/plugins/history-parser.js +155 -0
  44. package/dist/agents/plugins/history-parser.js.map +1 -0
  45. package/dist/cli/commands/analytics/aggregator.d.ts +58 -0
  46. package/dist/cli/commands/analytics/aggregator.d.ts.map +1 -0
  47. package/dist/cli/commands/analytics/aggregator.js +702 -0
  48. package/dist/cli/commands/analytics/aggregator.js.map +1 -0
  49. package/dist/cli/commands/analytics/data-loader.d.ts +84 -0
  50. package/dist/cli/commands/analytics/data-loader.d.ts.map +1 -0
  51. package/dist/cli/commands/analytics/data-loader.js +211 -0
  52. package/dist/cli/commands/analytics/data-loader.js.map +1 -0
  53. package/dist/cli/commands/analytics/exporter.d.ts +20 -0
  54. package/dist/cli/commands/analytics/exporter.d.ts.map +1 -0
  55. package/dist/cli/commands/analytics/exporter.js +103 -0
  56. package/dist/cli/commands/analytics/exporter.js.map +1 -0
  57. package/dist/cli/commands/analytics/formatter.d.ts +49 -0
  58. package/dist/cli/commands/analytics/formatter.d.ts.map +1 -0
  59. package/dist/cli/commands/analytics/formatter.js +309 -0
  60. package/dist/cli/commands/analytics/formatter.js.map +1 -0
  61. package/dist/cli/commands/analytics/index.d.ts +6 -0
  62. package/dist/cli/commands/analytics/index.d.ts.map +1 -0
  63. package/dist/cli/commands/analytics/index.js +157 -0
  64. package/dist/cli/commands/analytics/index.js.map +1 -0
  65. package/dist/cli/commands/analytics/model-normalizer.d.ts +21 -0
  66. package/dist/cli/commands/analytics/model-normalizer.d.ts.map +1 -0
  67. package/dist/cli/commands/analytics/model-normalizer.js +44 -0
  68. package/dist/cli/commands/analytics/model-normalizer.js.map +1 -0
  69. package/dist/cli/commands/analytics/types.d.ts +188 -0
  70. package/dist/cli/commands/analytics/types.d.ts.map +1 -0
  71. package/dist/cli/commands/analytics/types.js +6 -0
  72. package/dist/cli/commands/analytics/types.js.map +1 -0
  73. package/dist/cli/commands/doctor/checks/AwsCliCheck.d.ts +9 -0
  74. package/dist/cli/commands/doctor/checks/AwsCliCheck.d.ts.map +1 -0
  75. package/dist/cli/commands/doctor/checks/AwsCliCheck.js +28 -0
  76. package/dist/cli/commands/doctor/checks/AwsCliCheck.js.map +1 -0
  77. package/dist/cli/commands/doctor/checks/PythonCheck.d.ts.map +1 -1
  78. package/dist/cli/commands/doctor/checks/PythonCheck.js +10 -0
  79. package/dist/cli/commands/doctor/checks/PythonCheck.js.map +1 -1
  80. package/dist/cli/commands/doctor/checks/WorkflowsCheck.d.ts.map +1 -1
  81. package/dist/cli/commands/doctor/checks/WorkflowsCheck.js +2 -1
  82. package/dist/cli/commands/doctor/checks/WorkflowsCheck.js.map +1 -1
  83. package/dist/cli/commands/doctor/checks/index.d.ts +1 -0
  84. package/dist/cli/commands/doctor/checks/index.d.ts.map +1 -1
  85. package/dist/cli/commands/doctor/checks/index.js +1 -0
  86. package/dist/cli/commands/doctor/checks/index.js.map +1 -1
  87. package/dist/cli/commands/doctor/index.d.ts.map +1 -1
  88. package/dist/cli/commands/doctor/index.js +75 -3
  89. package/dist/cli/commands/doctor/index.js.map +1 -1
  90. package/dist/cli/commands/profile.d.ts.map +1 -1
  91. package/dist/cli/commands/profile.js +49 -89
  92. package/dist/cli/commands/profile.js.map +1 -1
  93. package/dist/cli/commands/setup.js +1 -21
  94. package/dist/cli/commands/setup.js.map +1 -1
  95. package/dist/cli/index.js +1 -1
  96. package/dist/cli/index.js.map +1 -1
  97. package/dist/env/types.d.ts +14 -2
  98. package/dist/env/types.d.ts.map +1 -1
  99. package/dist/env/types.js.map +1 -1
  100. package/dist/metrics/MetricsOrchestrator.d.ts +67 -0
  101. package/dist/metrics/MetricsOrchestrator.d.ts.map +1 -0
  102. package/dist/metrics/MetricsOrchestrator.js +287 -0
  103. package/dist/metrics/MetricsOrchestrator.js.map +1 -0
  104. package/dist/metrics/config.d.ts +38 -0
  105. package/dist/metrics/config.d.ts.map +1 -0
  106. package/dist/metrics/config.js +80 -0
  107. package/dist/metrics/config.js.map +1 -0
  108. package/dist/metrics/core/DeltaWriter.d.ts +49 -0
  109. package/dist/metrics/core/DeltaWriter.d.ts.map +1 -0
  110. package/dist/metrics/core/DeltaWriter.js +146 -0
  111. package/dist/metrics/core/DeltaWriter.js.map +1 -0
  112. package/dist/metrics/core/FileSnapshotter.d.ts +22 -0
  113. package/dist/metrics/core/FileSnapshotter.d.ts.map +1 -0
  114. package/dist/metrics/core/FileSnapshotter.js +74 -0
  115. package/dist/metrics/core/FileSnapshotter.js.map +1 -0
  116. package/dist/metrics/core/SessionCorrelator.d.ts +34 -0
  117. package/dist/metrics/core/SessionCorrelator.d.ts.map +1 -0
  118. package/dist/metrics/core/SessionCorrelator.js +115 -0
  119. package/dist/metrics/core/SessionCorrelator.js.map +1 -0
  120. package/dist/metrics/core/SyncStateManager.d.ts +69 -0
  121. package/dist/metrics/core/SyncStateManager.d.ts.map +1 -0
  122. package/dist/metrics/core/SyncStateManager.js +284 -0
  123. package/dist/metrics/core/SyncStateManager.js.map +1 -0
  124. package/dist/metrics/index.d.ts +9 -0
  125. package/dist/metrics/index.d.ts.map +1 -0
  126. package/dist/metrics/index.js +11 -0
  127. package/dist/metrics/index.js.map +1 -0
  128. package/dist/metrics/session/SessionStore.d.ts +43 -0
  129. package/dist/metrics/session/SessionStore.d.ts.map +1 -0
  130. package/dist/metrics/session/SessionStore.js +142 -0
  131. package/dist/metrics/session/SessionStore.js.map +1 -0
  132. package/dist/metrics/sync/MetricsApiClient.d.ts +32 -0
  133. package/dist/metrics/sync/MetricsApiClient.d.ts.map +1 -0
  134. package/dist/metrics/sync/MetricsApiClient.js +155 -0
  135. package/dist/metrics/sync/MetricsApiClient.js.map +1 -0
  136. package/dist/metrics/sync/aggregator.d.ts +14 -0
  137. package/dist/metrics/sync/aggregator.d.ts.map +1 -0
  138. package/dist/metrics/sync/aggregator.js +214 -0
  139. package/dist/metrics/sync/aggregator.js.map +1 -0
  140. package/dist/metrics/sync/index.d.ts +10 -0
  141. package/dist/metrics/sync/index.d.ts.map +1 -0
  142. package/dist/metrics/sync/index.js +10 -0
  143. package/dist/metrics/sync/index.js.map +1 -0
  144. package/dist/metrics/sync/jsonl-writer.d.ts +28 -0
  145. package/dist/metrics/sync/jsonl-writer.d.ts.map +1 -0
  146. package/dist/metrics/sync/jsonl-writer.js +72 -0
  147. package/dist/metrics/sync/jsonl-writer.js.map +1 -0
  148. package/dist/metrics/sync/types.d.ts +73 -0
  149. package/dist/metrics/sync/types.d.ts.map +1 -0
  150. package/dist/metrics/sync/types.js +7 -0
  151. package/dist/metrics/sync/types.js.map +1 -0
  152. package/dist/metrics/types.d.ts +308 -0
  153. package/dist/metrics/types.d.ts.map +1 -0
  154. package/dist/metrics/types.js +8 -0
  155. package/dist/metrics/types.js.map +1 -0
  156. package/dist/providers/index.d.ts +2 -0
  157. package/dist/providers/index.d.ts.map +1 -1
  158. package/dist/providers/index.js +2 -0
  159. package/dist/providers/index.js.map +1 -1
  160. package/dist/providers/integration/setup-ui.d.ts +1 -1
  161. package/dist/providers/integration/setup-ui.d.ts.map +1 -1
  162. package/dist/providers/integration/setup-ui.js +51 -6
  163. package/dist/providers/integration/setup-ui.js.map +1 -1
  164. package/dist/providers/plugins/bedrock/bedrock.health.d.ts +53 -0
  165. package/dist/providers/plugins/bedrock/bedrock.health.d.ts.map +1 -0
  166. package/dist/providers/plugins/bedrock/bedrock.health.js +115 -0
  167. package/dist/providers/plugins/bedrock/bedrock.health.js.map +1 -0
  168. package/dist/providers/plugins/bedrock/bedrock.models.d.ts +26 -0
  169. package/dist/providers/plugins/bedrock/bedrock.models.d.ts.map +1 -0
  170. package/dist/providers/plugins/bedrock/bedrock.models.js +89 -0
  171. package/dist/providers/plugins/bedrock/bedrock.models.js.map +1 -0
  172. package/dist/providers/plugins/bedrock/bedrock.setup-steps.d.ts +12 -0
  173. package/dist/providers/plugins/bedrock/bedrock.setup-steps.d.ts.map +1 -0
  174. package/dist/providers/plugins/bedrock/bedrock.setup-steps.js +308 -0
  175. package/dist/providers/plugins/bedrock/bedrock.setup-steps.js.map +1 -0
  176. package/dist/providers/plugins/bedrock/bedrock.template.d.ts +11 -0
  177. package/dist/providers/plugins/bedrock/bedrock.template.d.ts.map +1 -0
  178. package/dist/providers/plugins/bedrock/bedrock.template.js +85 -0
  179. package/dist/providers/plugins/bedrock/bedrock.template.js.map +1 -0
  180. package/dist/providers/plugins/bedrock/index.d.ts +11 -0
  181. package/dist/providers/plugins/bedrock/index.d.ts.map +1 -0
  182. package/dist/providers/plugins/bedrock/index.js +11 -0
  183. package/dist/providers/plugins/bedrock/index.js.map +1 -0
  184. package/dist/providers/plugins/ollama/ollama.template.d.ts.map +1 -1
  185. package/dist/providers/plugins/ollama/ollama.template.js +2 -0
  186. package/dist/providers/plugins/ollama/ollama.template.js.map +1 -1
  187. package/dist/providers/plugins/sso/sso.http-client.d.ts +2 -0
  188. package/dist/providers/plugins/sso/sso.http-client.d.ts.map +1 -1
  189. package/dist/providers/plugins/sso/sso.http-client.js +9 -3
  190. package/dist/providers/plugins/sso/sso.http-client.js.map +1 -1
  191. package/dist/proxy/http-client.d.ts +1 -1
  192. package/dist/proxy/http-client.d.ts.map +1 -1
  193. package/dist/proxy/http-client.js +78 -12
  194. package/dist/proxy/http-client.js.map +1 -1
  195. package/dist/proxy/plugins/endpoint-blocker.plugin.d.ts +19 -0
  196. package/dist/proxy/plugins/endpoint-blocker.plugin.d.ts.map +1 -0
  197. package/dist/proxy/plugins/endpoint-blocker.plugin.js +61 -0
  198. package/dist/proxy/plugins/endpoint-blocker.plugin.js.map +1 -0
  199. package/dist/proxy/plugins/header-injection.plugin.js +3 -0
  200. package/dist/proxy/plugins/header-injection.plugin.js.map +1 -1
  201. package/dist/proxy/plugins/index.d.ts +3 -1
  202. package/dist/proxy/plugins/index.d.ts.map +1 -1
  203. package/dist/proxy/plugins/index.js +5 -1
  204. package/dist/proxy/plugins/index.js.map +1 -1
  205. package/dist/proxy/plugins/logging.plugin.d.ts +11 -3
  206. package/dist/proxy/plugins/logging.plugin.d.ts.map +1 -1
  207. package/dist/proxy/plugins/logging.plugin.js +189 -25
  208. package/dist/proxy/plugins/logging.plugin.js.map +1 -1
  209. package/dist/proxy/plugins/metrics-sync.plugin.d.ts +33 -0
  210. package/dist/proxy/plugins/metrics-sync.plugin.d.ts.map +1 -0
  211. package/dist/proxy/plugins/metrics-sync.plugin.js +320 -0
  212. package/dist/proxy/plugins/metrics-sync.plugin.js.map +1 -0
  213. package/dist/proxy/plugins/registry.d.ts.map +1 -1
  214. package/dist/proxy/plugins/registry.js +8 -1
  215. package/dist/proxy/plugins/registry.js.map +1 -1
  216. package/dist/proxy/plugins/types.d.ts +6 -2
  217. package/dist/proxy/plugins/types.d.ts.map +1 -1
  218. package/dist/proxy/types.d.ts +8 -1
  219. package/dist/proxy/types.d.ts.map +1 -1
  220. package/dist/utils/ascii-logo.d.ts +21 -0
  221. package/dist/utils/ascii-logo.d.ts.map +1 -0
  222. package/dist/utils/ascii-logo.js +85 -0
  223. package/dist/utils/ascii-logo.js.map +1 -0
  224. package/dist/utils/codemie-proxy.d.ts +2 -7
  225. package/dist/utils/codemie-proxy.d.ts.map +1 -1
  226. package/dist/utils/codemie-proxy.js +83 -61
  227. package/dist/utils/codemie-proxy.js.map +1 -1
  228. package/dist/utils/config-loader.d.ts.map +1 -1
  229. package/dist/utils/config-loader.js +22 -6
  230. package/dist/utils/config-loader.js.map +1 -1
  231. package/dist/utils/exec.d.ts +11 -0
  232. package/dist/utils/exec.d.ts.map +1 -1
  233. package/dist/utils/exec.js +17 -1
  234. package/dist/utils/exec.js.map +1 -1
  235. package/dist/utils/goodbye-messages.d.ts +13 -0
  236. package/dist/utils/goodbye-messages.d.ts.map +1 -0
  237. package/dist/utils/goodbye-messages.js +245 -0
  238. package/dist/utils/goodbye-messages.js.map +1 -0
  239. package/dist/utils/json-parser.d.ts +52 -0
  240. package/dist/utils/json-parser.d.ts.map +1 -0
  241. package/dist/utils/json-parser.js +126 -0
  242. package/dist/utils/json-parser.js.map +1 -0
  243. package/dist/utils/logger.d.ts +37 -1
  244. package/dist/utils/logger.d.ts.map +1 -1
  245. package/dist/utils/logger.js +92 -20
  246. package/dist/utils/logger.js.map +1 -1
  247. package/dist/utils/sanitize.d.ts.map +1 -1
  248. package/dist/utils/sanitize.js +0 -1
  249. package/dist/utils/sanitize.js.map +1 -1
  250. package/dist/utils/which.d.ts +20 -0
  251. package/dist/utils/which.d.ts.map +1 -0
  252. package/dist/utils/which.js +47 -0
  253. package/dist/utils/which.js.map +1 -0
  254. package/package.json +10 -5
  255. package/dist/analytics/aggregation/adapters/claude.adapter.d.ts +0 -37
  256. package/dist/analytics/aggregation/adapters/claude.adapter.d.ts.map +0 -1
  257. package/dist/analytics/aggregation/adapters/claude.adapter.js +0 -531
  258. package/dist/analytics/aggregation/adapters/claude.adapter.js.map +0 -1
  259. package/dist/analytics/aggregation/adapters/codex.adapter.d.ts +0 -25
  260. package/dist/analytics/aggregation/adapters/codex.adapter.d.ts.map +0 -1
  261. package/dist/analytics/aggregation/adapters/codex.adapter.js +0 -396
  262. package/dist/analytics/aggregation/adapters/codex.adapter.js.map +0 -1
  263. package/dist/analytics/aggregation/adapters/gemini.adapter.d.ts +0 -36
  264. package/dist/analytics/aggregation/adapters/gemini.adapter.d.ts.map +0 -1
  265. package/dist/analytics/aggregation/adapters/gemini.adapter.js +0 -365
  266. package/dist/analytics/aggregation/adapters/gemini.adapter.js.map +0 -1
  267. package/dist/analytics/aggregation/adapters/index.d.ts +0 -7
  268. package/dist/analytics/aggregation/adapters/index.d.ts.map +0 -1
  269. package/dist/analytics/aggregation/adapters/index.js +0 -7
  270. package/dist/analytics/aggregation/adapters/index.js.map +0 -1
  271. package/dist/analytics/aggregation/aggregator.d.ts +0 -49
  272. package/dist/analytics/aggregation/aggregator.d.ts.map +0 -1
  273. package/dist/analytics/aggregation/aggregator.js +0 -239
  274. package/dist/analytics/aggregation/aggregator.js.map +0 -1
  275. package/dist/analytics/aggregation/core/BaseAnalyticsAdapter.d.ts +0 -99
  276. package/dist/analytics/aggregation/core/BaseAnalyticsAdapter.d.ts.map +0 -1
  277. package/dist/analytics/aggregation/core/BaseAnalyticsAdapter.js +0 -110
  278. package/dist/analytics/aggregation/core/BaseAnalyticsAdapter.js.map +0 -1
  279. package/dist/analytics/aggregation/core/adapter.interface.d.ts +0 -76
  280. package/dist/analytics/aggregation/core/adapter.interface.d.ts.map +0 -1
  281. package/dist/analytics/aggregation/core/adapter.interface.js +0 -9
  282. package/dist/analytics/aggregation/core/adapter.interface.js.map +0 -1
  283. package/dist/analytics/aggregation/core/aggregation-utils.d.ts +0 -86
  284. package/dist/analytics/aggregation/core/aggregation-utils.d.ts.map +0 -1
  285. package/dist/analytics/aggregation/core/aggregation-utils.js +0 -126
  286. package/dist/analytics/aggregation/core/aggregation-utils.js.map +0 -1
  287. package/dist/analytics/aggregation/core/discovery.d.ts +0 -40
  288. package/dist/analytics/aggregation/core/discovery.d.ts.map +0 -1
  289. package/dist/analytics/aggregation/core/discovery.js +0 -132
  290. package/dist/analytics/aggregation/core/discovery.js.map +0 -1
  291. package/dist/analytics/aggregation/core/file-utils.d.ts +0 -24
  292. package/dist/analytics/aggregation/core/file-utils.d.ts.map +0 -1
  293. package/dist/analytics/aggregation/core/file-utils.js +0 -143
  294. package/dist/analytics/aggregation/core/file-utils.js.map +0 -1
  295. package/dist/analytics/aggregation/core/index.d.ts +0 -14
  296. package/dist/analytics/aggregation/core/index.d.ts.map +0 -1
  297. package/dist/analytics/aggregation/core/index.js +0 -14
  298. package/dist/analytics/aggregation/core/index.js.map +0 -1
  299. package/dist/analytics/aggregation/core/project-mapping.d.ts +0 -50
  300. package/dist/analytics/aggregation/core/project-mapping.d.ts.map +0 -1
  301. package/dist/analytics/aggregation/core/project-mapping.js +0 -102
  302. package/dist/analytics/aggregation/core/project-mapping.js.map +0 -1
  303. package/dist/analytics/aggregation/core/streaming.d.ts +0 -26
  304. package/dist/analytics/aggregation/core/streaming.d.ts.map +0 -1
  305. package/dist/analytics/aggregation/core/streaming.js +0 -58
  306. package/dist/analytics/aggregation/core/streaming.js.map +0 -1
  307. package/dist/analytics/aggregation/core/user-prompt-source.d.ts +0 -81
  308. package/dist/analytics/aggregation/core/user-prompt-source.d.ts.map +0 -1
  309. package/dist/analytics/aggregation/core/user-prompt-source.js +0 -69
  310. package/dist/analytics/aggregation/core/user-prompt-source.js.map +0 -1
  311. package/dist/analytics/aggregation/core/user-prompt-sources/json.d.ts +0 -49
  312. package/dist/analytics/aggregation/core/user-prompt-sources/json.d.ts.map +0 -1
  313. package/dist/analytics/aggregation/core/user-prompt-sources/json.js +0 -66
  314. package/dist/analytics/aggregation/core/user-prompt-sources/json.js.map +0 -1
  315. package/dist/analytics/aggregation/core/user-prompt-sources/jsonl.d.ts +0 -43
  316. package/dist/analytics/aggregation/core/user-prompt-sources/jsonl.d.ts.map +0 -1
  317. package/dist/analytics/aggregation/core/user-prompt-sources/jsonl.js +0 -56
  318. package/dist/analytics/aggregation/core/user-prompt-sources/jsonl.js.map +0 -1
  319. package/dist/analytics/aggregation/index.d.ts +0 -8
  320. package/dist/analytics/aggregation/index.d.ts.map +0 -1
  321. package/dist/analytics/aggregation/index.js +0 -8
  322. package/dist/analytics/aggregation/index.js.map +0 -1
  323. package/dist/analytics/aggregation/types.d.ts +0 -278
  324. package/dist/analytics/aggregation/types.d.ts.map +0 -1
  325. package/dist/analytics/aggregation/types.js +0 -8
  326. package/dist/analytics/aggregation/types.js.map +0 -1
  327. package/dist/analytics/collector.d.ts +0 -46
  328. package/dist/analytics/collector.d.ts.map +0 -1
  329. package/dist/analytics/collector.js +0 -83
  330. package/dist/analytics/collector.js.map +0 -1
  331. package/dist/analytics/config.d.ts +0 -15
  332. package/dist/analytics/config.d.ts.map +0 -1
  333. package/dist/analytics/config.js +0 -65
  334. package/dist/analytics/config.js.map +0 -1
  335. package/dist/analytics/index.d.ts +0 -99
  336. package/dist/analytics/index.d.ts.map +0 -1
  337. package/dist/analytics/index.js +0 -280
  338. package/dist/analytics/index.js.map +0 -1
  339. package/dist/analytics/plugins/api-metrics.plugin.d.ts +0 -26
  340. package/dist/analytics/plugins/api-metrics.plugin.d.ts.map +0 -1
  341. package/dist/analytics/plugins/api-metrics.plugin.js +0 -97
  342. package/dist/analytics/plugins/api-metrics.plugin.js.map +0 -1
  343. package/dist/analytics/plugins/index.d.ts +0 -15
  344. package/dist/analytics/plugins/index.d.ts.map +0 -1
  345. package/dist/analytics/plugins/index.js +0 -15
  346. package/dist/analytics/plugins/index.js.map +0 -1
  347. package/dist/analytics/plugins/model-metrics.plugin.d.ts +0 -39
  348. package/dist/analytics/plugins/model-metrics.plugin.d.ts.map +0 -1
  349. package/dist/analytics/plugins/model-metrics.plugin.js +0 -105
  350. package/dist/analytics/plugins/model-metrics.plugin.js.map +0 -1
  351. package/dist/analytics/plugins/provider-metrics.plugin.d.ts +0 -41
  352. package/dist/analytics/plugins/provider-metrics.plugin.d.ts.map +0 -1
  353. package/dist/analytics/plugins/provider-metrics.plugin.js +0 -123
  354. package/dist/analytics/plugins/provider-metrics.plugin.js.map +0 -1
  355. package/dist/analytics/plugins/types.d.ts +0 -61
  356. package/dist/analytics/plugins/types.d.ts.map +0 -1
  357. package/dist/analytics/plugins/types.js +0 -54
  358. package/dist/analytics/plugins/types.js.map +0 -1
  359. package/dist/analytics/privacy.d.ts +0 -10
  360. package/dist/analytics/privacy.d.ts.map +0 -1
  361. package/dist/analytics/privacy.js +0 -20
  362. package/dist/analytics/privacy.js.map +0 -1
  363. package/dist/analytics/remote-submission/cursor-manager.d.ts +0 -71
  364. package/dist/analytics/remote-submission/cursor-manager.d.ts.map +0 -1
  365. package/dist/analytics/remote-submission/cursor-manager.js +0 -204
  366. package/dist/analytics/remote-submission/cursor-manager.js.map +0 -1
  367. package/dist/analytics/remote-submission/index.d.ts +0 -12
  368. package/dist/analytics/remote-submission/index.d.ts.map +0 -1
  369. package/dist/analytics/remote-submission/index.js +0 -11
  370. package/dist/analytics/remote-submission/index.js.map +0 -1
  371. package/dist/analytics/remote-submission/lock-manager.d.ts +0 -71
  372. package/dist/analytics/remote-submission/lock-manager.d.ts.map +0 -1
  373. package/dist/analytics/remote-submission/lock-manager.js +0 -238
  374. package/dist/analytics/remote-submission/lock-manager.js.map +0 -1
  375. package/dist/analytics/remote-submission/metric-transformer.d.ts +0 -21
  376. package/dist/analytics/remote-submission/metric-transformer.d.ts.map +0 -1
  377. package/dist/analytics/remote-submission/metric-transformer.js +0 -82
  378. package/dist/analytics/remote-submission/metric-transformer.js.map +0 -1
  379. package/dist/analytics/remote-submission/submitter.d.ts +0 -79
  380. package/dist/analytics/remote-submission/submitter.d.ts.map +0 -1
  381. package/dist/analytics/remote-submission/submitter.js +0 -362
  382. package/dist/analytics/remote-submission/submitter.js.map +0 -1
  383. package/dist/analytics/remote-submission/types.d.ts +0 -123
  384. package/dist/analytics/remote-submission/types.d.ts.map +0 -1
  385. package/dist/analytics/remote-submission/types.js +0 -13
  386. package/dist/analytics/remote-submission/types.js.map +0 -1
  387. package/dist/analytics/session.d.ts +0 -56
  388. package/dist/analytics/session.d.ts.map +0 -1
  389. package/dist/analytics/session.js +0 -95
  390. package/dist/analytics/session.js.map +0 -1
  391. package/dist/analytics/types.d.ts +0 -104
  392. package/dist/analytics/types.d.ts.map +0 -1
  393. package/dist/analytics/types.js +0 -15
  394. package/dist/analytics/types.js.map +0 -1
  395. package/dist/analytics/writer.d.ts +0 -18
  396. package/dist/analytics/writer.d.ts.map +0 -1
  397. package/dist/analytics/writer.js +0 -44
  398. package/dist/analytics/writer.js.map +0 -1
  399. package/dist/cli/commands/analytics.d.ts +0 -3
  400. package/dist/cli/commands/analytics.d.ts.map +0 -1
  401. package/dist/cli/commands/analytics.js +0 -748
  402. package/dist/cli/commands/analytics.js.map +0 -1
  403. package/dist/utils/analytics-reader.d.ts +0 -117
  404. package/dist/utils/analytics-reader.d.ts.map +0 -1
  405. package/dist/utils/analytics-reader.js +0 -421
  406. package/dist/utils/analytics-reader.js.map +0 -1
  407. package/dist/utils/date-formatter.d.ts +0 -88
  408. package/dist/utils/date-formatter.d.ts.map +0 -1
  409. package/dist/utils/date-formatter.js +0 -133
  410. package/dist/utils/date-formatter.js.map +0 -1
@@ -1,362 +0,0 @@
1
- /**
2
- * Remote Analytics Submitter
3
- *
4
- * Orchestrates periodic submission of analytics metrics to /v1/metrics endpoint.
5
- * Handles event-level tracking, concurrency control, and backend-aligned metrics.
6
- *
7
- * Key Features:
8
- * - 5-minute submission interval
9
- * - Event-level tracking (message IDs, tool call IDs)
10
- * - Multi-terminal safety via file locking
11
- * - Inactivity-based session end detection
12
- * - Backend-aligned metric transformation (3+1 pattern)
13
- */
14
- import { appendFile, mkdir } from 'node:fs/promises';
15
- import { existsSync } from 'node:fs';
16
- import { join } from 'node:path';
17
- import { homedir } from 'node:os';
18
- import { AgentRegistry } from '../../agents/registry.js';
19
- import { CursorManager } from './cursor-manager.js';
20
- import { LockManager } from './lock-manager.js';
21
- import { createSessionMetric } from './metric-transformer.js';
22
- import { logger } from '../../utils/logger.js';
23
- /**
24
- * Remote Analytics Submitter
25
- */
26
- export class RemoteAnalyticsSubmitter {
27
- config;
28
- cursorManager;
29
- lockManager;
30
- intervalTimer = null;
31
- isRunning = false;
32
- constructor(config) {
33
- this.config = config;
34
- this.cursorManager = new CursorManager();
35
- this.lockManager = new LockManager();
36
- }
37
- /**
38
- * Start periodic submission
39
- */
40
- start() {
41
- if (this.intervalTimer) {
42
- logger.debug('RemoteAnalyticsSubmitter already started');
43
- return;
44
- }
45
- logger.debug(`Starting remote analytics submission (interval: ${this.config.interval}ms)`);
46
- // Run immediately, then periodically
47
- this.submitCycle().catch(error => {
48
- logger.debug(`Initial submission cycle failed: ${error}`);
49
- });
50
- this.intervalTimer = setInterval(() => {
51
- this.submitCycle().catch(error => {
52
- logger.debug(`Submission cycle failed: ${error}`);
53
- });
54
- }, this.config.interval);
55
- // Ensure timer doesn't prevent process exit
56
- this.intervalTimer.unref();
57
- }
58
- /**
59
- * Stop periodic submission
60
- */
61
- stop() {
62
- if (this.intervalTimer) {
63
- clearInterval(this.intervalTimer);
64
- this.intervalTimer = null;
65
- logger.debug('Remote analytics submission stopped');
66
- }
67
- }
68
- /**
69
- * Main submission cycle
70
- */
71
- async submitCycle() {
72
- // Prevent overlapping cycles
73
- if (this.isRunning) {
74
- logger.debug('Submission cycle already running, skipping');
75
- return;
76
- }
77
- this.isRunning = true;
78
- try {
79
- // 1. Acquire lock (with retry)
80
- const lockAcquired = await this.lockManager.acquire('remote-submitter', 3);
81
- if (!lockAcquired) {
82
- logger.debug('Could not acquire lock, skipping cycle');
83
- return;
84
- }
85
- // 2. Load cursor
86
- const cursor = await this.cursorManager.load();
87
- // 3. Process all external agents
88
- await this.processExternalAgents(cursor);
89
- // 4. Save cursor
90
- await this.cursorManager.save(cursor);
91
- this.cursorManager.resetFailures(cursor);
92
- }
93
- catch (error) {
94
- logger.debug(`Submission cycle error: ${error}`);
95
- const cursor = await this.cursorManager.load();
96
- this.cursorManager.recordFailure(cursor);
97
- await this.cursorManager.save(cursor);
98
- }
99
- finally {
100
- // 5. Release lock
101
- await this.lockManager.release();
102
- this.isRunning = false;
103
- }
104
- }
105
- /**
106
- * Process all external agents
107
- */
108
- async processExternalAgents(cursor) {
109
- // Get all analytics adapters from registry
110
- const adapters = AgentRegistry.getAllAnalyticsAdapters();
111
- for (const adapter of adapters) {
112
- // Skip native agent
113
- if (adapter.agentName === 'codemie-code') {
114
- continue;
115
- }
116
- try {
117
- // Validate source
118
- if (!(await adapter.validateSource())) {
119
- logger.debug(`Data source not available for ${adapter.displayName}, skipping`);
120
- continue;
121
- }
122
- // Process agent
123
- await this.processAgent(adapter, cursor);
124
- // Update scan time
125
- this.cursorManager.updateScanTime(cursor, adapter.agentName);
126
- }
127
- catch (error) {
128
- logger.debug(`Failed to process agent ${adapter.displayName}: ${error}`);
129
- }
130
- }
131
- }
132
- /**
133
- * Process single agent
134
- */
135
- async processAgent(adapter, cursor) {
136
- logger.debug(`Processing ${adapter.displayName}...`);
137
- // Find all sessions
138
- const descriptors = await adapter.findSessions();
139
- logger.debug(`Found ${descriptors.length} sessions for ${adapter.displayName}`);
140
- // Process each session
141
- for (const descriptor of descriptors) {
142
- try {
143
- await this.processSession(adapter, descriptor, cursor);
144
- }
145
- catch (error) {
146
- logger.debug(`Failed to process session ${descriptor.sessionId}: ${error}`);
147
- }
148
- }
149
- }
150
- /**
151
- * Process single session
152
- */
153
- async processSession(adapter, descriptor, cursor) {
154
- const sessionId = descriptor.sessionId;
155
- const agentCursor = this.cursorManager.getAgentCursor(cursor, adapter.agentName);
156
- const sessionState = this.cursorManager.getSessionState(agentCursor, sessionId);
157
- // Extract session and raw events
158
- const [session, rawData] = await Promise.all([
159
- adapter.extractSession(descriptor),
160
- adapter.extractRawEvents(descriptor)
161
- ]);
162
- // Filter to NEW events only (not yet sent)
163
- const newMessages = this.cursorManager.filterNewEvents(rawData.messages, sessionState, 'message');
164
- const newToolCalls = this.cursorManager.filterNewEvents(rawData.toolCalls, sessionState, 'toolCall');
165
- // Check session status
166
- const status = this.determineSessionStatus(session, rawData, sessionState);
167
- const metricsToSubmit = [];
168
- // Track new activity for cursor updates
169
- const hasNewActivity = newToolCalls.length > 0 || newMessages.length > 0;
170
- if (hasNewActivity) {
171
- logger.debug(`Session ${sessionId}: ${newToolCalls.length} new tool calls, ` +
172
- `${newMessages.length} new messages`);
173
- }
174
- else {
175
- logger.debug(`Session ${sessionId}: no new events`);
176
- }
177
- // Generate session metric (only when session ends or resumes)
178
- const sessionMetric = await this.maybeSubmitSessionMetric(session, rawData, sessionState, status);
179
- if (sessionMetric) {
180
- metricsToSubmit.push(sessionMetric);
181
- }
182
- // 3. Submit metrics
183
- if (metricsToSubmit.length > 0) {
184
- await this.submitBatch(metricsToSubmit);
185
- // 4. Update cursor
186
- this.cursorManager.updateSessionState(cursor, adapter.agentName, sessionId, {
187
- newMessageIds: newMessages.map(m => m.messageId),
188
- newToolCallIds: newToolCalls.map(tc => tc.toolCallId),
189
- metricsSubmitted: metricsToSubmit.length,
190
- lastActivityTime: this.getLastActivityTime(session, rawData).toISOString(),
191
- sessionMetrics: sessionMetric ? {
192
- timeoutSent: status === 'ended' && !session.endTime,
193
- resumedSent: sessionState.sessionMetrics.timeoutSent && newToolCalls.length > 0,
194
- completedSent: !!session.endTime
195
- } : undefined
196
- });
197
- // Update global stats
198
- if (!sessionState.submitted) {
199
- cursor.stats.totalSessionsSubmitted++;
200
- }
201
- logger.debug(`✓ Submitted ${metricsToSubmit.length} metrics for session ${sessionId}`);
202
- }
203
- else {
204
- logger.debug(`Session ${sessionId}: no metrics to submit`);
205
- }
206
- }
207
- /**
208
- * Determine session status based on activity
209
- */
210
- determineSessionStatus(session, rawData, sessionState) {
211
- // Already sent final metric
212
- if (sessionState.sessionMetrics.completedSent) {
213
- return 'final';
214
- }
215
- // Explicit end time
216
- if (session.endTime) {
217
- return 'ended';
218
- }
219
- // Check inactivity
220
- const lastActivity = this.getLastActivityTime(session, rawData);
221
- const inactiveMs = Date.now() - lastActivity.getTime();
222
- // Import SESSION_TIMEOUTS
223
- const { INACTIVE, ENDED } = {
224
- INACTIVE: 30 * 60 * 1000,
225
- ENDED: 24 * 60 * 60 * 1000
226
- };
227
- if (inactiveMs < INACTIVE) {
228
- return 'active';
229
- }
230
- else if (inactiveMs < ENDED) {
231
- return 'inactive';
232
- }
233
- else {
234
- return 'ended';
235
- }
236
- }
237
- /**
238
- * Get last activity time from session
239
- */
240
- getLastActivityTime(session, rawData) {
241
- // Priority: explicit endTime > latest message timestamp > startTime
242
- if (session.endTime)
243
- return session.endTime;
244
- // Get latest timestamp from messages
245
- const messageTimes = rawData.messages.map(m => m.timestamp.getTime());
246
- if (messageTimes.length > 0) {
247
- return new Date(Math.max(...messageTimes));
248
- }
249
- return session.startTime;
250
- }
251
- /**
252
- * Maybe submit session metric based on status
253
- */
254
- async maybeSubmitSessionMetric(session, rawData, sessionState, status) {
255
- const sessionMetrics = sessionState.sessionMetrics;
256
- // Case 1: Explicit end (ideal case)
257
- if (session.endTime && !sessionMetrics.completedSent) {
258
- return createSessionMetric(session, rawData, {
259
- exitReason: session.exitReason || 'user_exit'
260
- });
261
- }
262
- // Case 2: Inactivity timeout (24 hours)
263
- if (status === 'ended' && !sessionMetrics.timeoutSent) {
264
- return createSessionMetric(session, rawData, {
265
- exitReason: 'inactivity_timeout'
266
- });
267
- }
268
- // Case 3: Resumed after timeout (new activity after timeout was sent)
269
- if (sessionMetrics.timeoutSent && !sessionMetrics.resumedSent) {
270
- // Check if there are new events
271
- const hasNewActivity = rawData.toolCalls.length > sessionState.sentEventIds.toolCalls.length;
272
- if (hasNewActivity) {
273
- return createSessionMetric(session, rawData, {
274
- exitReason: 'resumed_after_timeout'
275
- });
276
- }
277
- }
278
- return null;
279
- }
280
- /**
281
- * Submit batch of metrics - writes to local file and/or remote endpoint
282
- */
283
- async submitBatch(metrics) {
284
- // Write to local file if target is 'local' or 'both'
285
- if (this.config.target === 'local' || this.config.target === 'both') {
286
- await this.writeMetricsToLocalFile(metrics);
287
- }
288
- // Submit to remote endpoint if target is 'remote' or 'both'
289
- if (this.config.target === 'remote' || this.config.target === 'both') {
290
- // Skip remote submission if credentials not available
291
- if (this.config.baseUrl && this.config.cookies) {
292
- await this.submitToRemote(metrics);
293
- }
294
- else {
295
- logger.debug('Remote submission skipped: baseUrl or cookies not configured');
296
- }
297
- }
298
- }
299
- /**
300
- * Write metrics to local JSONL file
301
- */
302
- async writeMetricsToLocalFile(metrics) {
303
- try {
304
- // Get today's date for filename
305
- const today = new Date().toISOString().split('T')[0];
306
- const analyticsDir = join(homedir(), '.codemie', 'analytics');
307
- const filePath = join(analyticsDir, `${today}.jsonl`);
308
- // Ensure directory exists
309
- if (!existsSync(analyticsDir)) {
310
- await mkdir(analyticsDir, { recursive: true });
311
- }
312
- // Write metrics as JSONL (one JSON object per line)
313
- const lines = metrics.map(metric => JSON.stringify(metric)).join('\n') + '\n';
314
- // Append to file (or create if doesn't exist)
315
- await appendFile(filePath, lines, 'utf-8');
316
- logger.debug(`Wrote ${metrics.length} metrics to ${filePath}`);
317
- }
318
- catch (error) {
319
- logger.debug(`Failed to write metrics to local file: ${error}`);
320
- throw error;
321
- }
322
- }
323
- /**
324
- * Submit metrics to remote /v1/metrics endpoint
325
- * Note: Caller should verify baseUrl and cookies are set before calling
326
- */
327
- async submitToRemote(metrics) {
328
- // Create batches
329
- const batches = this.createBatches(metrics, this.config.batchSize);
330
- for (const batch of batches) {
331
- try {
332
- const response = await fetch(`${this.config.baseUrl}/v1/metrics`, {
333
- method: 'POST',
334
- headers: {
335
- 'Content-Type': 'application/json',
336
- 'Cookie': this.config.cookies
337
- },
338
- body: JSON.stringify(batch)
339
- });
340
- if (!response.ok) {
341
- throw new Error(`HTTP ${response.status}: ${response.statusText}`);
342
- }
343
- logger.debug(`Submitted batch of ${batch.length} metrics to remote endpoint`);
344
- }
345
- catch (error) {
346
- logger.debug(`Failed to submit batch to remote: ${error}`);
347
- throw error;
348
- }
349
- }
350
- }
351
- /**
352
- * Create batches from metrics
353
- */
354
- createBatches(items, batchSize) {
355
- const batches = [];
356
- for (let i = 0; i < items.length; i += batchSize) {
357
- batches.push(items.slice(i, i + batchSize));
358
- }
359
- return batches;
360
- }
361
- }
362
- //# sourceMappingURL=submitter.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"submitter.js","sourceRoot":"","sources":["../../../src/analytics/remote-submission/submitter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AASzD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAE/C;;GAEG;AACH,MAAM,OAAO,wBAAwB;IAC3B,MAAM,CAAyB;IAC/B,aAAa,CAAgB;IAC7B,WAAW,CAAc;IACzB,aAAa,GAA0B,IAAI,CAAC;IAC5C,SAAS,GAAG,KAAK,CAAC;IAE1B,YAAY,MAA8B;QACxC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,aAAa,GAAG,IAAI,aAAa,EAAE,CAAC;QACzC,IAAI,CAAC,WAAW,GAAG,IAAI,WAAW,EAAE,CAAC;IACvC,CAAC;IAED;;OAEG;IACH,KAAK;QACH,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACvB,MAAM,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAC;YACzD,OAAO;QACT,CAAC;QAED,MAAM,CAAC,KAAK,CAAC,mDAAmD,IAAI,CAAC,MAAM,CAAC,QAAQ,KAAK,CAAC,CAAC;QAE3F,qCAAqC;QACrC,IAAI,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;YAC/B,MAAM,CAAC,KAAK,CAAC,oCAAoC,KAAK,EAAE,CAAC,CAAC;QAC5D,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,aAAa,GAAG,WAAW,CAAC,GAAG,EAAE;YACpC,IAAI,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;gBAC/B,MAAM,CAAC,KAAK,CAAC,4BAA4B,KAAK,EAAE,CAAC,CAAC;YACpD,CAAC,CAAC,CAAC;QACL,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAEzB,4CAA4C;QAC5C,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;IAC7B,CAAC;IAED;;OAEG;IACH,IAAI;QACF,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACvB,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YAClC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;YAC1B,MAAM,CAAC,KAAK,CAAC,qCAAqC,CAAC,CAAC;QACtD,CAAC;IACH,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,WAAW;QACvB,6BAA6B;QAC7B,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,MAAM,CAAC,KAAK,CAAC,4CAA4C,CAAC,CAAC;YAC3D,OAAO;QACT,CAAC;QAED,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QAEtB,IAAI,CAAC;YACH,+BAA+B;YAC/B,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC;YAC3E,IAAI,CAAC,YAAY,EAAE,CAAC;gBAClB,MAAM,CAAC,KAAK,CAAC,wCAAwC,CAAC,CAAC;gBACvD,OAAO;YACT,CAAC;YAED,iBAAiB;YACjB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;YAE/C,iCAAiC;YACjC,MAAM,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;YAEzC,iBAAiB;YACjB,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACtC,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAC3C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,KAAK,CAAC,2BAA2B,KAAK,EAAE,CAAC,CAAC;YACjD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;YAC/C,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;YACzC,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACxC,CAAC;gBAAS,CAAC;YACT,kBAAkB;YAClB,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;YACjC,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACzB,CAAC;IACH,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,qBAAqB,CAAC,MAAmB;QACrD,2CAA2C;QAC3C,MAAM,QAAQ,GAAG,aAAa,CAAC,uBAAuB,EAAE,CAAC;QAEzD,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC/B,oBAAoB;YACpB,IAAI,OAAO,CAAC,SAAS,KAAK,cAAc,EAAE,CAAC;gBACzC,SAAS;YACX,CAAC;YAED,IAAI,CAAC;gBACH,kBAAkB;gBAClB,IAAI,CAAC,CAAC,MAAM,OAAO,CAAC,cAAc,EAAE,CAAC,EAAE,CAAC;oBACtC,MAAM,CAAC,KAAK,CAAC,iCAAiC,OAAO,CAAC,WAAW,YAAY,CAAC,CAAC;oBAC/E,SAAS;gBACX,CAAC;gBAED,gBAAgB;gBAChB,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;gBAEzC,mBAAmB;gBACnB,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,MAAM,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;YAC/D,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,CAAC,KAAK,CAAC,2BAA2B,OAAO,CAAC,WAAW,KAAK,KAAK,EAAE,CAAC,CAAC;YAC3E,CAAC;QACH,CAAC;IACH,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,YAAY,CACxB,OAA8B,EAC9B,MAAmB;QAEnB,MAAM,CAAC,KAAK,CAAC,cAAc,OAAO,CAAC,WAAW,KAAK,CAAC,CAAC;QAErD,oBAAoB;QACpB,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC,YAAY,EAAE,CAAC;QACjD,MAAM,CAAC,KAAK,CAAC,SAAS,WAAW,CAAC,MAAM,iBAAiB,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;QAEhF,uBAAuB;QACvB,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;YACrC,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;YACzD,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,CAAC,KAAK,CAAC,6BAA6B,UAAU,CAAC,SAAS,KAAK,KAAK,EAAE,CAAC,CAAC;YAC9E,CAAC;QACH,CAAC;IACH,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,cAAc,CAC1B,OAA8B,EAC9B,UAAe,EACf,MAAmB;QAEnB,MAAM,SAAS,GAAG,UAAU,CAAC,SAAS,CAAC;QACvC,MAAM,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,MAAM,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;QACjF,MAAM,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;QAEhF,iCAAiC;QACjC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YAC3C,OAAO,CAAC,cAAc,CAAC,UAAU,CAAC;YAClC,OAAO,CAAC,gBAAgB,CAAC,UAAU,CAAC;SACrC,CAAC,CAAC;QAEH,2CAA2C;QAC3C,MAAM,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,eAAe,CACpD,OAAO,CAAC,QAAQ,EAChB,YAAY,EACZ,SAAS,CACV,CAAC;QAEF,MAAM,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,eAAe,CACrD,OAAO,CAAC,SAAS,EACjB,YAAY,EACZ,UAAU,CACX,CAAC;QAEF,uBAAuB;QACvB,MAAM,MAAM,GAAG,IAAI,CAAC,sBAAsB,CAAC,OAAO,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;QAC3E,MAAM,eAAe,GAAoB,EAAE,CAAC;QAE5C,wCAAwC;QACxC,MAAM,cAAc,GAAG,YAAY,CAAC,MAAM,GAAG,CAAC,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC;QAEzE,IAAI,cAAc,EAAE,CAAC;YACnB,MAAM,CAAC,KAAK,CACV,WAAW,SAAS,KAAK,YAAY,CAAC,MAAM,mBAAmB;gBAC/D,GAAG,WAAW,CAAC,MAAM,eAAe,CACrC,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,KAAK,CAAC,WAAW,SAAS,iBAAiB,CAAC,CAAC;QACtD,CAAC;QAED,8DAA8D;QAC9D,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,wBAAwB,CACvD,OAAO,EACP,OAAO,EACP,YAAY,EACZ,MAAM,CACP,CAAC;QAEF,IAAI,aAAa,EAAE,CAAC;YAClB,eAAe,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACtC,CAAC;QAED,oBAAoB;QACpB,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC/B,MAAM,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC;YAExC,mBAAmB;YACnB,IAAI,CAAC,aAAa,CAAC,kBAAkB,CACnC,MAAM,EACN,OAAO,CAAC,SAAS,EACjB,SAAS,EACT;gBACE,aAAa,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;gBAChD,cAAc,EAAE,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC;gBACrD,gBAAgB,EAAE,eAAe,CAAC,MAAM;gBACxC,gBAAgB,EAAE,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,WAAW,EAAE;gBAC1E,cAAc,EAAE,aAAa,CAAC,CAAC,CAAC;oBAC9B,WAAW,EAAE,MAAM,KAAK,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO;oBACnD,WAAW,EAAE,YAAY,CAAC,cAAc,CAAC,WAAW,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC;oBAC/E,aAAa,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO;iBACjC,CAAC,CAAC,CAAC,SAAS;aACd,CACF,CAAC;YAEF,sBAAsB;YACtB,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,CAAC;gBAC5B,MAAM,CAAC,KAAK,CAAC,sBAAsB,EAAE,CAAC;YACxC,CAAC;YAED,MAAM,CAAC,KAAK,CAAC,eAAe,eAAe,CAAC,MAAM,wBAAwB,SAAS,EAAE,CAAC,CAAC;QACzF,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,KAAK,CAAC,WAAW,SAAS,wBAAwB,CAAC,CAAC;QAC7D,CAAC;IACH,CAAC;IAED;;OAEG;IACK,sBAAsB,CAC5B,OAAuB,EACvB,OAAuC,EACvC,YAAiB;QAEjB,4BAA4B;QAC5B,IAAI,YAAY,CAAC,cAAc,CAAC,aAAa,EAAE,CAAC;YAC9C,OAAO,OAAO,CAAC;QACjB,CAAC;QAED,oBAAoB;QACpB,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YACpB,OAAO,OAAO,CAAC;QACjB,CAAC;QAED,mBAAmB;QACnB,MAAM,YAAY,GAAG,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAChE,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,YAAY,CAAC,OAAO,EAAE,CAAC;QAEvD,0BAA0B;QAC1B,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG;YAC1B,QAAQ,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI;YACxB,KAAK,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI;SAC3B,CAAC;QAEF,IAAI,UAAU,GAAG,QAAQ,EAAE,CAAC;YAC1B,OAAO,QAAQ,CAAC;QAClB,CAAC;aAAM,IAAI,UAAU,GAAG,KAAK,EAAE,CAAC;YAC9B,OAAO,UAAU,CAAC;QACpB,CAAC;aAAM,CAAC;YACN,OAAO,OAAO,CAAC;QACjB,CAAC;IACH,CAAC;IAED;;OAEG;IACK,mBAAmB,CACzB,OAAuB,EACvB,OAAuC;QAEvC,oEAAoE;QACpE,IAAI,OAAO,CAAC,OAAO;YAAE,OAAO,OAAO,CAAC,OAAO,CAAC;QAE5C,qCAAqC;QACrC,MAAM,YAAY,GAAG,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC;QACtE,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5B,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC;QAC7C,CAAC;QAED,OAAO,OAAO,CAAC,SAAS,CAAC;IAC3B,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,wBAAwB,CACpC,OAAuB,EACvB,OAAY,EACZ,YAAiB,EACjB,MAAqB;QAErB,MAAM,cAAc,GAAG,YAAY,CAAC,cAAc,CAAC;QAEnD,oCAAoC;QACpC,IAAI,OAAO,CAAC,OAAO,IAAI,CAAC,cAAc,CAAC,aAAa,EAAE,CAAC;YACrD,OAAO,mBAAmB,CACxB,OAAO,EACP,OAAO,EACP;gBACE,UAAU,EAAE,OAAO,CAAC,UAAU,IAAI,WAAW;aAC9C,CACF,CAAC;QACJ,CAAC;QAED,wCAAwC;QACxC,IAAI,MAAM,KAAK,OAAO,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,CAAC;YACtD,OAAO,mBAAmB,CACxB,OAAO,EACP,OAAO,EACP;gBACE,UAAU,EAAE,oBAAoB;aACjC,CACF,CAAC;QACJ,CAAC;QAED,sEAAsE;QACtE,IAAI,cAAc,CAAC,WAAW,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,CAAC;YAC9D,gCAAgC;YAChC,MAAM,cAAc,GAAG,OAAO,CAAC,SAAS,CAAC,MAAM,GAAG,YAAY,CAAC,YAAY,CAAC,SAAS,CAAC,MAAM,CAAC;YAC7F,IAAI,cAAc,EAAE,CAAC;gBACnB,OAAO,mBAAmB,CACxB,OAAO,EACP,OAAO,EACP;oBACE,UAAU,EAAE,uBAAuB;iBACpC,CACF,CAAC;YACJ,CAAC;QACH,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,WAAW,CAAC,OAAwB;QAChD,qDAAqD;QACrD,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;YACpE,MAAM,IAAI,CAAC,uBAAuB,CAAC,OAAO,CAAC,CAAC;QAC9C,CAAC;QAED,4DAA4D;QAC5D,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,QAAQ,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;YACrE,sDAAsD;YACtD,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBAC/C,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;YACrC,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,KAAK,CAAC,8DAA8D,CAAC,CAAC;YAC/E,CAAC;QACH,CAAC;IACH,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,uBAAuB,CAAC,OAAwB;QAC5D,IAAI,CAAC;YACH,gCAAgC;YAChC,MAAM,KAAK,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YACrD,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;YAC9D,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,EAAE,GAAG,KAAK,QAAQ,CAAC,CAAC;YAEtD,0BAA0B;YAC1B,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;gBAC9B,MAAM,KAAK,CAAC,YAAY,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YACjD,CAAC;YAED,oDAAoD;YACpD,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;YAE9E,8CAA8C;YAC9C,MAAM,UAAU,CAAC,QAAQ,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;YAE3C,MAAM,CAAC,KAAK,CAAC,SAAS,OAAO,CAAC,MAAM,eAAe,QAAQ,EAAE,CAAC,CAAC;QACjE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,KAAK,CAAC,0CAA0C,KAAK,EAAE,CAAC,CAAC;YAChE,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED;;;OAGG;IACK,KAAK,CAAC,cAAc,CAAC,OAAwB;QACnD,iBAAiB;QACjB,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAEnE,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,OAAQ,aAAa,EAAE;oBACjE,MAAM,EAAE,MAAM;oBACd,OAAO,EAAE;wBACP,cAAc,EAAE,kBAAkB;wBAClC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,OAAQ;qBAC/B;oBACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;iBAC5B,CAAC,CAAC;gBAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;oBACjB,MAAM,IAAI,KAAK,CAAC,QAAQ,QAAQ,CAAC,MAAM,KAAK,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;gBACrE,CAAC;gBAED,MAAM,CAAC,KAAK,CAAC,sBAAsB,KAAK,CAAC,MAAM,6BAA6B,CAAC,CAAC;YAChF,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,CAAC,KAAK,CAAC,qCAAqC,KAAK,EAAE,CAAC,CAAC;gBAC3D,MAAM,KAAK,CAAC;YACd,CAAC;QACH,CAAC;IACH,CAAC;IAED;;OAEG;IACK,aAAa,CAAI,KAAU,EAAE,SAAiB;QACpD,MAAM,OAAO,GAAU,EAAE,CAAC;QAC1B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,SAAS,EAAE,CAAC;YACjD,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC;QAC9C,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;CACF"}
@@ -1,123 +0,0 @@
1
- /**
2
- * Remote Metrics Submission - Type Definitions
3
- *
4
- * Backend-aligned metric payload structures for submitting to /v1/metrics endpoint
5
- */
6
- /**
7
- * Metric names following backend convention
8
- */
9
- export type MetricName = 'codemie_coding_agent_usage_total';
10
- /**
11
- * Base metric payload structure (what gets sent to /v1/metrics)
12
- */
13
- export interface MetricPayload {
14
- metric_name: MetricName;
15
- attributes: Record<string, string | number | boolean>;
16
- time: string;
17
- }
18
- /**
19
- * Session aggregation metric attributes (no tool_name, different structure)
20
- */
21
- export interface SessionMetricAttributes {
22
- agent: string;
23
- agent_version: string;
24
- llm_model: string;
25
- project: string;
26
- session_id: string;
27
- projectHash?: string;
28
- gitBranch?: string;
29
- gitCommit?: string;
30
- total_user_prompts: number;
31
- total_ai_requests: number;
32
- total_ai_responses: number;
33
- total_tool_calls: number;
34
- successful_tool_calls: number;
35
- failed_tool_calls: number;
36
- total_input_tokens: number;
37
- total_output_tokens: number;
38
- total_cache_read_input_tokens: number;
39
- files_created: number;
40
- files_modified: number;
41
- files_deleted: number;
42
- total_lines_added: number;
43
- total_lines_removed: number;
44
- session_duration_ms: number;
45
- total_execution_time?: number;
46
- exit_reason: string;
47
- had_errors: boolean;
48
- count: number;
49
- }
50
- /**
51
- * Root cursor state file structure
52
- */
53
- export interface CursorState {
54
- version: number;
55
- lastRun: string;
56
- agents: Record<string, AgentCursorState>;
57
- stats: {
58
- totalSessionsSubmitted: number;
59
- totalMetricsSubmitted: number;
60
- consecutiveFailures: number;
61
- };
62
- }
63
- /**
64
- * Per-agent cursor state
65
- */
66
- export interface AgentCursorState {
67
- lastScan: string;
68
- sessions: Record<string, SessionSubmissionState>;
69
- }
70
- /**
71
- * Per-session submission tracking (event-level)
72
- */
73
- export interface SessionSubmissionState {
74
- submitted: boolean;
75
- timestamp: string;
76
- sentEventIds: {
77
- messages: string[];
78
- toolCalls: string[];
79
- };
80
- sessionMetrics: {
81
- timeoutSent: boolean;
82
- resumedSent: boolean;
83
- completedSent: boolean;
84
- };
85
- lastActivityTime: string;
86
- metricsSubmitted: number;
87
- lastUpdate: string;
88
- projectHash?: string;
89
- failureCount?: number;
90
- lastAttempt?: string;
91
- }
92
- /**
93
- * Lock file information
94
- */
95
- export interface LockInfo {
96
- pid: number;
97
- timestamp: string;
98
- hostname: string;
99
- agent: string;
100
- }
101
- /**
102
- * Remote submission configuration
103
- */
104
- export interface RemoteSubmissionConfig {
105
- enabled: boolean;
106
- target: 'local' | 'remote' | 'both';
107
- baseUrl?: string;
108
- cookies?: string;
109
- interval: number;
110
- batchSize: number;
111
- }
112
- /**
113
- * Session activity status
114
- */
115
- export type SessionStatus = 'active' | 'inactive' | 'ended' | 'final';
116
- /**
117
- * Session timeouts
118
- */
119
- export declare const SESSION_TIMEOUTS: {
120
- readonly INACTIVE: number;
121
- readonly ENDED: number;
122
- };
123
- //# sourceMappingURL=types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/analytics/remote-submission/types.ts"],"names":[],"mappings":"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"}
@@ -1,13 +0,0 @@
1
- /**
2
- * Remote Metrics Submission - Type Definitions
3
- *
4
- * Backend-aligned metric payload structures for submitting to /v1/metrics endpoint
5
- */
6
- /**
7
- * Session timeouts
8
- */
9
- export const SESSION_TIMEOUTS = {
10
- INACTIVE: 30 * 60 * 1000, // 30 minutes - consider inactive
11
- ENDED: 24 * 60 * 60 * 1000, // 24 hours - consider ended
12
- };
13
- //# sourceMappingURL=types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/analytics/remote-submission/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAwKH;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,QAAQ,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI,EAAO,iCAAiC;IAChE,KAAK,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,EAAK,4BAA4B;CACnD,CAAC"}
@@ -1,56 +0,0 @@
1
- /**
2
- * Session management for analytics
3
- * Tracks session lifecycle and metadata
4
- */
5
- import type { SessionConfig } from './types.js';
6
- /**
7
- * Manages analytics session lifecycle
8
- */
9
- export declare class SessionManager {
10
- private session;
11
- /**
12
- * Start a new session
13
- */
14
- start(config: SessionConfig): void;
15
- /**
16
- * Get current session ID
17
- */
18
- get id(): string;
19
- /**
20
- * Get session duration in milliseconds
21
- */
22
- get durationMs(): number;
23
- /**
24
- * Get session agent name
25
- */
26
- get agent(): string;
27
- /**
28
- * Get session agent version
29
- */
30
- get agentVersion(): string;
31
- /**
32
- * Get session CLI version
33
- */
34
- get cliVersion(): string;
35
- /**
36
- * Get session profile
37
- */
38
- get profile(): string;
39
- /**
40
- * Get session provider
41
- */
42
- get provider(): string;
43
- /**
44
- * Get session model
45
- */
46
- get model(): string;
47
- /**
48
- * Check if session is active
49
- */
50
- get isActive(): boolean;
51
- /**
52
- * End the current session
53
- */
54
- end(): void;
55
- }
56
- //# sourceMappingURL=session.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/analytics/session.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,aAAa,EAAmB,MAAM,YAAY,CAAC;AAEjE;;GAEG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,OAAO,CAAgC;IAE/C;;OAEG;IACH,KAAK,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI;IAelC;;OAEG;IACH,IAAI,EAAE,IAAI,MAAM,CAKf;IAED;;OAEG;IACH,IAAI,UAAU,IAAI,MAAM,CAKvB;IAED;;OAEG;IACH,IAAI,KAAK,IAAI,MAAM,CAElB;IAED;;OAEG;IACH,IAAI,YAAY,IAAI,MAAM,CAEzB;IAED;;OAEG;IACH,IAAI,UAAU,IAAI,MAAM,CAEvB;IAED;;OAEG;IACH,IAAI,OAAO,IAAI,MAAM,CAEpB;IAED;;OAEG;IACH,IAAI,QAAQ,IAAI,MAAM,CAErB;IAED;;OAEG;IACH,IAAI,KAAK,IAAI,MAAM,CAElB;IAED;;OAEG;IACH,IAAI,QAAQ,IAAI,OAAO,CAEtB;IAED;;OAEG;IACH,GAAG,IAAI,IAAI;CAGZ"}
@@ -1,95 +0,0 @@
1
- /**
2
- * Session management for analytics
3
- * Tracks session lifecycle and metadata
4
- */
5
- import { randomUUID } from 'node:crypto';
6
- /**
7
- * Manages analytics session lifecycle
8
- */
9
- export class SessionManager {
10
- session = null;
11
- /**
12
- * Start a new session
13
- */
14
- start(config) {
15
- this.session = {
16
- id: randomUUID(),
17
- startTime: Date.now(),
18
- agent: config.agent,
19
- agentVersion: config.agentVersion,
20
- cliVersion: config.cliVersion,
21
- profile: config.profile,
22
- provider: config.provider,
23
- model: config.model,
24
- workingDir: config.workingDir,
25
- interactive: config.interactive,
26
- };
27
- }
28
- /**
29
- * Get current session ID
30
- */
31
- get id() {
32
- if (!this.session) {
33
- throw new Error('No active session');
34
- }
35
- return this.session.id;
36
- }
37
- /**
38
- * Get session duration in milliseconds
39
- */
40
- get durationMs() {
41
- if (!this.session) {
42
- return 0;
43
- }
44
- return Date.now() - this.session.startTime;
45
- }
46
- /**
47
- * Get session agent name
48
- */
49
- get agent() {
50
- return this.session?.agent || 'unknown';
51
- }
52
- /**
53
- * Get session agent version
54
- */
55
- get agentVersion() {
56
- return this.session?.agentVersion || 'unknown';
57
- }
58
- /**
59
- * Get session CLI version
60
- */
61
- get cliVersion() {
62
- return this.session?.cliVersion || 'unknown';
63
- }
64
- /**
65
- * Get session profile
66
- */
67
- get profile() {
68
- return this.session?.profile || 'unknown';
69
- }
70
- /**
71
- * Get session provider
72
- */
73
- get provider() {
74
- return this.session?.provider || 'unknown';
75
- }
76
- /**
77
- * Get session model
78
- */
79
- get model() {
80
- return this.session?.model || 'unknown';
81
- }
82
- /**
83
- * Check if session is active
84
- */
85
- get isActive() {
86
- return this.session !== null;
87
- }
88
- /**
89
- * End the current session
90
- */
91
- end() {
92
- this.session = null;
93
- }
94
- }
95
- //# sourceMappingURL=session.js.map