@codemieai/code 0.0.14 → 0.0.16

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 (370) hide show
  1. package/README.md +32 -15
  2. package/dist/agents/codemie-code/agent.d.ts.map +1 -1
  3. package/dist/agents/codemie-code/agent.js +6 -6
  4. package/dist/agents/codemie-code/agent.js.map +1 -1
  5. package/dist/agents/codemie-code/config.d.ts.map +1 -1
  6. package/dist/agents/codemie-code/config.js +14 -5
  7. package/dist/agents/codemie-code/config.js.map +1 -1
  8. package/dist/agents/codemie-code/filters.js +12 -12
  9. package/dist/agents/codemie-code/filters.js.map +1 -1
  10. package/dist/agents/codemie-code/index.d.ts.map +1 -1
  11. package/dist/agents/codemie-code/index.js +3 -1
  12. package/dist/agents/codemie-code/index.js.map +1 -1
  13. package/dist/agents/codemie-code/storage/todoStorage.js +1 -1
  14. package/dist/agents/codemie-code/storage/todoStorage.js.map +1 -1
  15. package/dist/agents/codemie-code/ui.js +1 -1
  16. package/dist/agents/codemie-code/ui.js.map +1 -1
  17. package/dist/agents/core/AgentCLI.d.ts.map +1 -1
  18. package/dist/agents/core/AgentCLI.js +5 -4
  19. package/dist/agents/core/AgentCLI.js.map +1 -1
  20. package/dist/agents/core/BaseAgentAdapter.d.ts +1 -5
  21. package/dist/agents/core/BaseAgentAdapter.d.ts.map +1 -1
  22. package/dist/agents/core/BaseAgentAdapter.js +5 -26
  23. package/dist/agents/core/BaseAgentAdapter.js.map +1 -1
  24. package/dist/agents/core/types.d.ts +5 -0
  25. package/dist/agents/core/types.d.ts.map +1 -1
  26. package/dist/agents/plugins/claude.plugin.js +1 -1
  27. package/dist/agents/plugins/claude.plugin.js.map +1 -1
  28. package/dist/agents/plugins/codemie-code.plugin.js +2 -2
  29. package/dist/agents/plugins/codemie-code.plugin.js.map +1 -1
  30. package/dist/agents/plugins/codex.plugin.js +2 -2
  31. package/dist/agents/plugins/codex.plugin.js.map +1 -1
  32. package/dist/agents/plugins/deepagents.plugin.js +1 -1
  33. package/dist/agents/plugins/deepagents.plugin.js.map +1 -1
  34. package/dist/agents/plugins/gemini.plugin.js +1 -1
  35. package/dist/agents/plugins/gemini.plugin.js.map +1 -1
  36. package/dist/analytics/aggregation/adapters/claude.adapter.d.ts.map +1 -1
  37. package/dist/analytics/aggregation/adapters/claude.adapter.js +75 -15
  38. package/dist/analytics/aggregation/adapters/claude.adapter.js.map +1 -1
  39. package/dist/analytics/aggregation/adapters/codex.adapter.d.ts.map +1 -1
  40. package/dist/analytics/aggregation/adapters/codex.adapter.js +20 -0
  41. package/dist/analytics/aggregation/adapters/codex.adapter.js.map +1 -1
  42. package/dist/analytics/aggregation/adapters/gemini.adapter.d.ts +8 -0
  43. package/dist/analytics/aggregation/adapters/gemini.adapter.d.ts.map +1 -1
  44. package/dist/analytics/aggregation/adapters/gemini.adapter.js +46 -1
  45. package/dist/analytics/aggregation/adapters/gemini.adapter.js.map +1 -1
  46. package/dist/analytics/aggregation/core/BaseAnalyticsAdapter.d.ts +36 -0
  47. package/dist/analytics/aggregation/core/BaseAnalyticsAdapter.d.ts.map +1 -1
  48. package/dist/analytics/aggregation/core/BaseAnalyticsAdapter.js +52 -0
  49. package/dist/analytics/aggregation/core/BaseAnalyticsAdapter.js.map +1 -1
  50. package/dist/analytics/aggregation/core/adapter.interface.d.ts +11 -0
  51. package/dist/analytics/aggregation/core/adapter.interface.d.ts.map +1 -1
  52. package/dist/analytics/aggregation/core/aggregation-utils.d.ts +20 -0
  53. package/dist/analytics/aggregation/core/aggregation-utils.d.ts.map +1 -1
  54. package/dist/analytics/aggregation/core/aggregation-utils.js +43 -0
  55. package/dist/analytics/aggregation/core/aggregation-utils.js.map +1 -1
  56. package/dist/analytics/aggregation/core/file-utils.d.ts +2 -1
  57. package/dist/analytics/aggregation/core/file-utils.d.ts.map +1 -1
  58. package/dist/analytics/aggregation/core/file-utils.js +20 -85
  59. package/dist/analytics/aggregation/core/file-utils.js.map +1 -1
  60. package/dist/analytics/aggregation/core/index.d.ts +3 -0
  61. package/dist/analytics/aggregation/core/index.d.ts.map +1 -1
  62. package/dist/analytics/aggregation/core/index.js +3 -0
  63. package/dist/analytics/aggregation/core/index.js.map +1 -1
  64. package/dist/analytics/aggregation/core/user-prompt-source.d.ts +81 -0
  65. package/dist/analytics/aggregation/core/user-prompt-source.d.ts.map +1 -0
  66. package/dist/analytics/aggregation/core/user-prompt-source.js +69 -0
  67. package/dist/analytics/aggregation/core/user-prompt-source.js.map +1 -0
  68. package/dist/analytics/aggregation/core/user-prompt-sources/json.d.ts +49 -0
  69. package/dist/analytics/aggregation/core/user-prompt-sources/json.d.ts.map +1 -0
  70. package/dist/analytics/aggregation/core/user-prompt-sources/json.js +66 -0
  71. package/dist/analytics/aggregation/core/user-prompt-sources/json.js.map +1 -0
  72. package/dist/analytics/aggregation/core/user-prompt-sources/jsonl.d.ts +43 -0
  73. package/dist/analytics/aggregation/core/user-prompt-sources/jsonl.d.ts.map +1 -0
  74. package/dist/analytics/aggregation/core/user-prompt-sources/jsonl.js +56 -0
  75. package/dist/analytics/aggregation/core/user-prompt-sources/jsonl.js.map +1 -0
  76. package/dist/analytics/aggregation/types.d.ts +20 -0
  77. package/dist/analytics/aggregation/types.d.ts.map +1 -1
  78. package/dist/analytics/index.d.ts.map +1 -1
  79. package/dist/analytics/index.js +3 -11
  80. package/dist/analytics/index.js.map +1 -1
  81. package/dist/analytics/remote-submission/cursor-manager.d.ts +71 -0
  82. package/dist/analytics/remote-submission/cursor-manager.d.ts.map +1 -0
  83. package/dist/analytics/remote-submission/cursor-manager.js +204 -0
  84. package/dist/analytics/remote-submission/cursor-manager.js.map +1 -0
  85. package/dist/analytics/remote-submission/index.d.ts +12 -0
  86. package/dist/analytics/remote-submission/index.d.ts.map +1 -0
  87. package/dist/analytics/remote-submission/index.js +11 -0
  88. package/dist/analytics/remote-submission/index.js.map +1 -0
  89. package/dist/analytics/remote-submission/lock-manager.d.ts +71 -0
  90. package/dist/analytics/remote-submission/lock-manager.d.ts.map +1 -0
  91. package/dist/analytics/remote-submission/lock-manager.js +238 -0
  92. package/dist/analytics/remote-submission/lock-manager.js.map +1 -0
  93. package/dist/analytics/remote-submission/metric-transformer.d.ts +21 -0
  94. package/dist/analytics/remote-submission/metric-transformer.d.ts.map +1 -0
  95. package/dist/analytics/remote-submission/metric-transformer.js +82 -0
  96. package/dist/analytics/remote-submission/metric-transformer.js.map +1 -0
  97. package/dist/analytics/remote-submission/submitter.d.ts +79 -0
  98. package/dist/analytics/remote-submission/submitter.d.ts.map +1 -0
  99. package/dist/analytics/remote-submission/submitter.js +362 -0
  100. package/dist/analytics/remote-submission/submitter.js.map +1 -0
  101. package/dist/analytics/remote-submission/types.d.ts +123 -0
  102. package/dist/analytics/remote-submission/types.d.ts.map +1 -0
  103. package/dist/analytics/remote-submission/types.js +13 -0
  104. package/dist/analytics/remote-submission/types.js.map +1 -0
  105. package/dist/cli/commands/analytics.d.ts.map +1 -1
  106. package/dist/cli/commands/analytics.js +181 -12
  107. package/dist/cli/commands/analytics.js.map +1 -1
  108. package/dist/cli/commands/auth.d.ts.map +1 -1
  109. package/dist/cli/commands/auth.js +10 -5
  110. package/dist/cli/commands/auth.js.map +1 -1
  111. package/dist/cli/commands/doctor/checks/AIConfigCheck.d.ts.map +1 -1
  112. package/dist/cli/commands/doctor/checks/AIConfigCheck.js +12 -5
  113. package/dist/cli/commands/doctor/checks/AIConfigCheck.js.map +1 -1
  114. package/dist/cli/commands/doctor/formatter.d.ts +1 -1
  115. package/dist/cli/commands/doctor/formatter.d.ts.map +1 -1
  116. package/dist/cli/commands/doctor/formatter.js +1 -6
  117. package/dist/cli/commands/doctor/formatter.js.map +1 -1
  118. package/dist/cli/commands/doctor/index.d.ts.map +1 -1
  119. package/dist/cli/commands/doctor/index.js +36 -9
  120. package/dist/cli/commands/doctor/index.js.map +1 -1
  121. package/dist/cli/commands/doctor/type-adapters.d.ts +18 -0
  122. package/dist/cli/commands/doctor/type-adapters.d.ts.map +1 -0
  123. package/dist/cli/commands/doctor/type-adapters.js +75 -0
  124. package/dist/cli/commands/doctor/type-adapters.js.map +1 -0
  125. package/dist/cli/commands/install.d.ts.map +1 -1
  126. package/dist/cli/commands/install.js +1 -6
  127. package/dist/cli/commands/install.js.map +1 -1
  128. package/dist/cli/commands/list.d.ts.map +1 -1
  129. package/dist/cli/commands/list.js +0 -5
  130. package/dist/cli/commands/list.js.map +1 -1
  131. package/dist/cli/commands/profile.d.ts.map +1 -1
  132. package/dist/cli/commands/profile.js +109 -63
  133. package/dist/cli/commands/profile.js.map +1 -1
  134. package/dist/cli/commands/setup.d.ts.map +1 -1
  135. package/dist/cli/commands/setup.js +169 -660
  136. package/dist/cli/commands/setup.js.map +1 -1
  137. package/dist/cli/commands/workflow.js +1 -1
  138. package/dist/cli/commands/workflow.js.map +1 -1
  139. package/dist/cli/index.d.ts +1 -1
  140. package/dist/cli/index.d.ts.map +1 -1
  141. package/dist/cli/index.js +4 -5
  142. package/dist/cli/index.js.map +1 -1
  143. package/dist/providers/core/base/BaseHealthCheck.d.ts +57 -0
  144. package/dist/providers/core/base/BaseHealthCheck.d.ts.map +1 -0
  145. package/dist/providers/core/base/BaseHealthCheck.js +121 -0
  146. package/dist/providers/core/base/BaseHealthCheck.js.map +1 -0
  147. package/dist/providers/core/base/BaseModelProxy.d.ts +45 -0
  148. package/dist/providers/core/base/BaseModelProxy.d.ts.map +1 -0
  149. package/dist/providers/core/base/BaseModelProxy.js +43 -0
  150. package/dist/providers/core/base/BaseModelProxy.js.map +1 -0
  151. package/dist/providers/core/base/http-client.d.ts +57 -0
  152. package/dist/providers/core/base/http-client.d.ts.map +1 -0
  153. package/dist/providers/core/base/http-client.js +240 -0
  154. package/dist/providers/core/base/http-client.js.map +1 -0
  155. package/dist/providers/core/decorators.d.ts +13 -0
  156. package/dist/providers/core/decorators.d.ts.map +1 -0
  157. package/dist/providers/core/decorators.js +15 -0
  158. package/dist/providers/core/decorators.js.map +1 -0
  159. package/dist/providers/core/index.d.ts +13 -0
  160. package/dist/providers/core/index.d.ts.map +1 -0
  161. package/dist/providers/core/index.js +14 -0
  162. package/dist/providers/core/index.js.map +1 -0
  163. package/dist/providers/core/registry.d.ts +66 -0
  164. package/dist/providers/core/registry.d.ts.map +1 -0
  165. package/dist/providers/core/registry.js +105 -0
  166. package/dist/providers/core/registry.js.map +1 -0
  167. package/dist/providers/core/types.d.ts +285 -0
  168. package/dist/providers/core/types.d.ts.map +1 -0
  169. package/dist/providers/core/types.js +7 -0
  170. package/dist/providers/core/types.js.map +1 -0
  171. package/dist/providers/index.d.ts +20 -0
  172. package/dist/providers/index.d.ts.map +1 -0
  173. package/dist/providers/index.js +22 -0
  174. package/dist/providers/index.js.map +1 -0
  175. package/dist/providers/integration/setup-ui.d.ts +76 -0
  176. package/dist/providers/integration/setup-ui.d.ts.map +1 -0
  177. package/dist/providers/integration/setup-ui.js +141 -0
  178. package/dist/providers/integration/setup-ui.js.map +1 -0
  179. package/dist/providers/plugins/litellm/index.d.ts +8 -0
  180. package/dist/providers/plugins/litellm/index.d.ts.map +1 -0
  181. package/dist/providers/plugins/litellm/index.js +12 -0
  182. package/dist/providers/plugins/litellm/index.js.map +1 -0
  183. package/dist/providers/plugins/litellm/litellm.models.d.ts +27 -0
  184. package/dist/providers/plugins/litellm/litellm.models.d.ts.map +1 -0
  185. package/dist/providers/plugins/litellm/litellm.models.js +48 -0
  186. package/dist/providers/plugins/litellm/litellm.models.js.map +1 -0
  187. package/dist/providers/plugins/litellm/litellm.setup-steps.d.ts +8 -0
  188. package/dist/providers/plugins/litellm/litellm.setup-steps.d.ts.map +1 -0
  189. package/dist/providers/plugins/litellm/litellm.setup-steps.js +52 -0
  190. package/dist/providers/plugins/litellm/litellm.setup-steps.js.map +1 -0
  191. package/dist/providers/plugins/litellm/litellm.template.d.ts +11 -0
  192. package/dist/providers/plugins/litellm/litellm.template.d.ts.map +1 -0
  193. package/dist/providers/plugins/litellm/litellm.template.js +59 -0
  194. package/dist/providers/plugins/litellm/litellm.template.js.map +1 -0
  195. package/dist/providers/plugins/ollama/index.d.ts +11 -0
  196. package/dist/providers/plugins/ollama/index.d.ts.map +1 -0
  197. package/dist/providers/plugins/ollama/index.js +11 -0
  198. package/dist/providers/plugins/ollama/index.js.map +1 -0
  199. package/dist/providers/plugins/ollama/ollama.health.d.ts +48 -0
  200. package/dist/providers/plugins/ollama/ollama.health.d.ts.map +1 -0
  201. package/dist/providers/plugins/ollama/ollama.health.js +87 -0
  202. package/dist/providers/plugins/ollama/ollama.health.js.map +1 -0
  203. package/dist/providers/plugins/ollama/ollama.models.d.ts +47 -0
  204. package/dist/providers/plugins/ollama/ollama.models.d.ts.map +1 -0
  205. package/dist/providers/plugins/ollama/ollama.models.js +252 -0
  206. package/dist/providers/plugins/ollama/ollama.models.js.map +1 -0
  207. package/dist/providers/plugins/ollama/ollama.setup-steps.d.ts +16 -0
  208. package/dist/providers/plugins/ollama/ollama.setup-steps.d.ts.map +1 -0
  209. package/dist/providers/plugins/ollama/ollama.setup-steps.js +164 -0
  210. package/dist/providers/plugins/ollama/ollama.setup-steps.js.map +1 -0
  211. package/dist/providers/plugins/ollama/ollama.template.d.ts +11 -0
  212. package/dist/providers/plugins/ollama/ollama.template.d.ts.map +1 -0
  213. package/dist/providers/plugins/ollama/ollama.template.js +87 -0
  214. package/dist/providers/plugins/ollama/ollama.template.js.map +1 -0
  215. package/dist/providers/plugins/sso/index.d.ts +12 -0
  216. package/dist/providers/plugins/sso/index.d.ts.map +1 -0
  217. package/dist/providers/plugins/sso/index.js +12 -0
  218. package/dist/providers/plugins/sso/index.js.map +1 -0
  219. package/dist/providers/plugins/sso/sso.auth.d.ts +50 -0
  220. package/dist/providers/plugins/sso/sso.auth.d.ts.map +1 -0
  221. package/dist/{utils/sso-auth.js → providers/plugins/sso/sso.auth.js} +37 -2
  222. package/dist/providers/plugins/sso/sso.auth.js.map +1 -0
  223. package/dist/providers/plugins/sso/sso.health.d.ts +44 -0
  224. package/dist/providers/plugins/sso/sso.health.d.ts.map +1 -0
  225. package/dist/providers/plugins/sso/sso.health.js +178 -0
  226. package/dist/providers/plugins/sso/sso.health.js.map +1 -0
  227. package/dist/{utils/codemie-model-fetcher.d.ts → providers/plugins/sso/sso.http-client.d.ts} +16 -5
  228. package/dist/providers/plugins/sso/sso.http-client.d.ts.map +1 -0
  229. package/dist/providers/plugins/sso/sso.http-client.js +187 -0
  230. package/dist/providers/plugins/sso/sso.http-client.js.map +1 -0
  231. package/dist/providers/plugins/sso/sso.models.d.ts +48 -0
  232. package/dist/providers/plugins/sso/sso.models.d.ts.map +1 -0
  233. package/dist/providers/plugins/sso/sso.models.js +139 -0
  234. package/dist/providers/plugins/sso/sso.models.js.map +1 -0
  235. package/dist/providers/plugins/sso/sso.setup-steps.d.ts +16 -0
  236. package/dist/providers/plugins/sso/sso.setup-steps.d.ts.map +1 -0
  237. package/dist/providers/plugins/sso/sso.setup-steps.js +145 -0
  238. package/dist/providers/plugins/sso/sso.setup-steps.js.map +1 -0
  239. package/dist/providers/plugins/sso/sso.template.d.ts +11 -0
  240. package/dist/providers/plugins/sso/sso.template.d.ts.map +1 -0
  241. package/dist/providers/plugins/sso/sso.template.js +35 -0
  242. package/dist/providers/plugins/sso/sso.template.js.map +1 -0
  243. package/dist/proxy/errors.d.ts.map +1 -0
  244. package/dist/proxy/errors.js.map +1 -0
  245. package/dist/proxy/http-client.d.ts.map +1 -0
  246. package/dist/{utils/proxy → proxy}/http-client.js +1 -1
  247. package/dist/proxy/http-client.js.map +1 -0
  248. package/dist/proxy/plugins/header-injection.plugin.d.ts +16 -0
  249. package/dist/proxy/plugins/header-injection.plugin.d.ts.map +1 -0
  250. package/dist/proxy/plugins/header-injection.plugin.js +52 -0
  251. package/dist/proxy/plugins/header-injection.plugin.js.map +1 -0
  252. package/dist/proxy/plugins/index.d.ts +18 -0
  253. package/dist/proxy/plugins/index.d.ts.map +1 -0
  254. package/dist/proxy/plugins/index.js +28 -0
  255. package/dist/proxy/plugins/index.js.map +1 -0
  256. package/dist/proxy/plugins/logging.plugin.d.ts +22 -0
  257. package/dist/proxy/plugins/logging.plugin.d.ts.map +1 -0
  258. package/dist/proxy/plugins/logging.plugin.js +92 -0
  259. package/dist/proxy/plugins/logging.plugin.js.map +1 -0
  260. package/dist/proxy/plugins/registry.d.ts +50 -0
  261. package/dist/proxy/plugins/registry.d.ts.map +1 -0
  262. package/dist/proxy/plugins/registry.js +124 -0
  263. package/dist/proxy/plugins/registry.js.map +1 -0
  264. package/dist/proxy/plugins/sso-auth.plugin.d.ts +16 -0
  265. package/dist/proxy/plugins/sso-auth.plugin.d.ts.map +1 -0
  266. package/dist/proxy/plugins/sso-auth.plugin.js +35 -0
  267. package/dist/proxy/plugins/sso-auth.plugin.js.map +1 -0
  268. package/dist/proxy/plugins/types.d.ts +79 -0
  269. package/dist/proxy/plugins/types.d.ts.map +1 -0
  270. package/dist/proxy/plugins/types.js +8 -0
  271. package/dist/proxy/plugins/types.js.map +1 -0
  272. package/dist/proxy/types.d.ts.map +1 -0
  273. package/dist/proxy/types.js.map +1 -0
  274. package/dist/utils/analytics-reader.js +1 -1
  275. package/dist/utils/analytics-reader.js.map +1 -1
  276. package/dist/utils/codemie-proxy.d.ts +43 -22
  277. package/dist/utils/codemie-proxy.d.ts.map +1 -1
  278. package/dist/utils/codemie-proxy.js +158 -88
  279. package/dist/utils/codemie-proxy.js.map +1 -1
  280. package/dist/utils/config-loader.d.ts +5 -6
  281. package/dist/utils/config-loader.d.ts.map +1 -1
  282. package/dist/utils/config-loader.js +72 -92
  283. package/dist/utils/config-loader.js.map +1 -1
  284. package/dist/utils/credential-store.d.ts +1 -1
  285. package/dist/utils/credential-store.d.ts.map +1 -1
  286. package/dist/utils/first-time.d.ts +0 -4
  287. package/dist/utils/first-time.d.ts.map +1 -1
  288. package/dist/utils/first-time.js +5 -117
  289. package/dist/utils/first-time.js.map +1 -1
  290. package/dist/utils/logger.d.ts +31 -1
  291. package/dist/utils/logger.d.ts.map +1 -1
  292. package/dist/utils/logger.js +111 -3
  293. package/dist/utils/logger.js.map +1 -1
  294. package/dist/utils/sanitize.d.ts +28 -0
  295. package/dist/utils/sanitize.d.ts.map +1 -0
  296. package/dist/utils/sanitize.js +213 -0
  297. package/dist/utils/sanitize.js.map +1 -0
  298. package/dist/workflows/installer.d.ts.map +1 -1
  299. package/dist/workflows/installer.js +3 -4
  300. package/dist/workflows/installer.js.map +1 -1
  301. package/package.json +1 -1
  302. package/dist/cli/commands/config.d.ts +0 -3
  303. package/dist/cli/commands/config.d.ts.map +0 -1
  304. package/dist/cli/commands/config.js +0 -198
  305. package/dist/cli/commands/config.js.map +0 -1
  306. package/dist/cli/commands/doctor/providers/AIRunSSOProviderCheck.d.ts +0 -11
  307. package/dist/cli/commands/doctor/providers/AIRunSSOProviderCheck.d.ts.map +0 -1
  308. package/dist/cli/commands/doctor/providers/AIRunSSOProviderCheck.js +0 -192
  309. package/dist/cli/commands/doctor/providers/AIRunSSOProviderCheck.js.map +0 -1
  310. package/dist/cli/commands/doctor/providers/BaseProviderCheck.d.ts +0 -12
  311. package/dist/cli/commands/doctor/providers/BaseProviderCheck.d.ts.map +0 -1
  312. package/dist/cli/commands/doctor/providers/BaseProviderCheck.js +0 -12
  313. package/dist/cli/commands/doctor/providers/BaseProviderCheck.js.map +0 -1
  314. package/dist/cli/commands/doctor/providers/StandardProviderCheck.d.ts +0 -11
  315. package/dist/cli/commands/doctor/providers/StandardProviderCheck.d.ts.map +0 -1
  316. package/dist/cli/commands/doctor/providers/StandardProviderCheck.js +0 -97
  317. package/dist/cli/commands/doctor/providers/StandardProviderCheck.js.map +0 -1
  318. package/dist/cli/commands/doctor/providers/index.d.ts +0 -30
  319. package/dist/cli/commands/doctor/providers/index.d.ts.map +0 -1
  320. package/dist/cli/commands/doctor/providers/index.js +0 -66
  321. package/dist/cli/commands/doctor/providers/index.js.map +0 -1
  322. package/dist/cli/commands/env.d.ts +0 -3
  323. package/dist/cli/commands/env.d.ts.map +0 -1
  324. package/dist/cli/commands/env.js +0 -19
  325. package/dist/cli/commands/env.js.map +0 -1
  326. package/dist/types/sso.d.ts +0 -42
  327. package/dist/types/sso.d.ts.map +0 -1
  328. package/dist/types/sso.js +0 -2
  329. package/dist/types/sso.js.map +0 -1
  330. package/dist/utils/async-tips.d.ts +0 -64
  331. package/dist/utils/async-tips.d.ts.map +0 -1
  332. package/dist/utils/async-tips.js +0 -203
  333. package/dist/utils/async-tips.js.map +0 -1
  334. package/dist/utils/codemie-integration-validator.d.ts +0 -18
  335. package/dist/utils/codemie-integration-validator.d.ts.map +0 -1
  336. package/dist/utils/codemie-integration-validator.js +0 -119
  337. package/dist/utils/codemie-integration-validator.js.map +0 -1
  338. package/dist/utils/codemie-model-fetcher.d.ts.map +0 -1
  339. package/dist/utils/codemie-model-fetcher.js +0 -242
  340. package/dist/utils/codemie-model-fetcher.js.map +0 -1
  341. package/dist/utils/health-checker.d.ts +0 -20
  342. package/dist/utils/health-checker.d.ts.map +0 -1
  343. package/dist/utils/health-checker.js +0 -172
  344. package/dist/utils/health-checker.js.map +0 -1
  345. package/dist/utils/model-fetcher.d.ts +0 -21
  346. package/dist/utils/model-fetcher.d.ts.map +0 -1
  347. package/dist/utils/model-fetcher.js +0 -148
  348. package/dist/utils/model-fetcher.js.map +0 -1
  349. package/dist/utils/proxy/errors.d.ts.map +0 -1
  350. package/dist/utils/proxy/errors.js.map +0 -1
  351. package/dist/utils/proxy/http-client.d.ts.map +0 -1
  352. package/dist/utils/proxy/http-client.js.map +0 -1
  353. package/dist/utils/proxy/interceptors.d.ts +0 -69
  354. package/dist/utils/proxy/interceptors.d.ts.map +0 -1
  355. package/dist/utils/proxy/interceptors.js +0 -308
  356. package/dist/utils/proxy/interceptors.js.map +0 -1
  357. package/dist/utils/proxy/types.d.ts.map +0 -1
  358. package/dist/utils/proxy/types.js.map +0 -1
  359. package/dist/utils/sso-auth.d.ts +0 -15
  360. package/dist/utils/sso-auth.d.ts.map +0 -1
  361. package/dist/utils/sso-auth.js.map +0 -1
  362. package/dist/utils/tips.d.ts +0 -35
  363. package/dist/utils/tips.d.ts.map +0 -1
  364. package/dist/utils/tips.js +0 -93
  365. package/dist/utils/tips.js.map +0 -1
  366. /package/dist/{utils/proxy → proxy}/errors.d.ts +0 -0
  367. /package/dist/{utils/proxy → proxy}/errors.js +0 -0
  368. /package/dist/{utils/proxy → proxy}/http-client.d.ts +0 -0
  369. /package/dist/{utils/proxy → proxy}/types.d.ts +0 -0
  370. /package/dist/{utils/proxy → proxy}/types.js +0 -0
@@ -0,0 +1,362 @@
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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"submitter.js","sourceRoot":"","sources":["../../../src/analytics/remote-submission/submitter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,123 @@
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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/analytics/remote-submission/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
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
@@ -0,0 +1 @@
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 +1 @@
1
- {"version":3,"file":"analytics.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/analytics.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AASpC,wBAAgB,sBAAsB,IAAI,OAAO,CAuChD"}
1
+ {"version":3,"file":"analytics.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/analytics.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAUpC,wBAAgB,sBAAsB,IAAI,OAAO,CAuChD"}