@codemieai/code 0.0.27 → 0.0.29

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 (484) hide show
  1. package/README.md +9 -11
  2. package/bin/agent-executor.js +1 -1
  3. package/dist/agents/codemie-code/agent.js +1 -1
  4. package/dist/agents/codemie-code/config.d.ts +1 -1
  5. package/dist/agents/codemie-code/config.d.ts.map +1 -1
  6. package/dist/agents/codemie-code/config.js +3 -4
  7. package/dist/agents/codemie-code/config.js.map +1 -1
  8. package/dist/agents/codemie-code/index.js +1 -1
  9. package/dist/agents/codemie-code/storage/todoStorage.d.ts.map +1 -1
  10. package/dist/agents/codemie-code/storage/todoStorage.js +2 -2
  11. package/dist/agents/codemie-code/storage/todoStorage.js.map +1 -1
  12. package/dist/agents/codemie-code/tools/index.js +1 -1
  13. package/dist/agents/codemie-code/tools/index.js.map +1 -1
  14. package/dist/agents/core/AgentCLI.d.ts.map +1 -1
  15. package/dist/agents/core/AgentCLI.js +6 -10
  16. package/dist/agents/core/AgentCLI.js.map +1 -1
  17. package/dist/agents/core/BaseAgentAdapter.d.ts +17 -9
  18. package/dist/agents/core/BaseAgentAdapter.d.ts.map +1 -1
  19. package/dist/agents/core/BaseAgentAdapter.js +80 -72
  20. package/dist/agents/core/BaseAgentAdapter.js.map +1 -1
  21. package/dist/agents/core/extension/BaseExtensionInstaller.d.ts +258 -0
  22. package/dist/agents/core/extension/BaseExtensionInstaller.d.ts.map +1 -0
  23. package/dist/agents/core/extension/BaseExtensionInstaller.js +522 -0
  24. package/dist/agents/core/extension/BaseExtensionInstaller.js.map +1 -0
  25. package/dist/agents/core/lifecycle-helpers.d.ts.map +1 -1
  26. package/dist/agents/core/lifecycle-helpers.js +16 -2
  27. package/dist/agents/core/lifecycle-helpers.js.map +1 -1
  28. package/dist/agents/core/metrics/index.d.ts +0 -2
  29. package/dist/agents/core/metrics/index.d.ts.map +1 -1
  30. package/dist/agents/core/metrics/index.js +0 -3
  31. package/dist/agents/core/metrics/index.js.map +1 -1
  32. package/dist/agents/core/metrics/types.d.ts +4 -232
  33. package/dist/agents/core/metrics/types.d.ts.map +1 -1
  34. package/dist/agents/core/metrics/types.js +2 -2
  35. package/dist/agents/core/session/BaseProcessor.d.ts +72 -0
  36. package/dist/agents/core/session/BaseProcessor.d.ts.map +1 -0
  37. package/dist/agents/core/session/BaseProcessor.js +9 -0
  38. package/dist/agents/core/session/BaseProcessor.js.map +1 -0
  39. package/dist/agents/core/session/BaseSessionAdapter.d.ts +99 -0
  40. package/dist/agents/core/session/BaseSessionAdapter.d.ts.map +1 -0
  41. package/dist/agents/core/session/BaseSessionAdapter.js +9 -0
  42. package/dist/agents/core/session/BaseSessionAdapter.js.map +1 -0
  43. package/dist/agents/core/session/SessionStore.d.ts +23 -0
  44. package/dist/agents/core/session/SessionStore.d.ts.map +1 -0
  45. package/dist/agents/core/session/SessionStore.js +75 -0
  46. package/dist/agents/core/session/SessionStore.js.map +1 -0
  47. package/dist/agents/core/session/session-config.d.ts +27 -0
  48. package/dist/agents/core/session/session-config.d.ts.map +1 -0
  49. package/dist/agents/core/session/session-config.js +61 -0
  50. package/dist/agents/core/session/session-config.js.map +1 -0
  51. package/dist/agents/core/session/types.d.ts +87 -0
  52. package/dist/agents/core/session/types.d.ts.map +1 -0
  53. package/dist/agents/core/session/types.js +8 -0
  54. package/dist/agents/core/session/types.js.map +1 -0
  55. package/dist/agents/core/session/utils/jsonl-reader.d.ts +15 -0
  56. package/dist/agents/core/session/utils/jsonl-reader.d.ts.map +1 -0
  57. package/dist/agents/core/session/utils/jsonl-reader.js +33 -0
  58. package/dist/agents/core/session/utils/jsonl-reader.js.map +1 -0
  59. package/dist/agents/core/session/utils/jsonl-writer.d.ts +26 -0
  60. package/dist/agents/core/session/utils/jsonl-writer.d.ts.map +1 -0
  61. package/dist/agents/core/session/utils/jsonl-writer.js +56 -0
  62. package/dist/agents/core/session/utils/jsonl-writer.js.map +1 -0
  63. package/dist/agents/core/types.d.ts +78 -11
  64. package/dist/agents/core/types.d.ts.map +1 -1
  65. package/dist/agents/plugins/claude/claude-message-types.d.ts +74 -0
  66. package/dist/agents/plugins/claude/claude-message-types.d.ts.map +1 -0
  67. package/dist/agents/plugins/claude/claude-message-types.js +8 -0
  68. package/dist/agents/plugins/claude/claude-message-types.js.map +1 -0
  69. package/dist/agents/plugins/claude/claude.plugin-installer.d.ts +53 -0
  70. package/dist/agents/plugins/claude/claude.plugin-installer.d.ts.map +1 -0
  71. package/dist/agents/plugins/claude/claude.plugin-installer.js +63 -0
  72. package/dist/agents/plugins/claude/claude.plugin-installer.js.map +1 -0
  73. package/dist/agents/plugins/claude/claude.plugin.d.ts +26 -0
  74. package/dist/agents/plugins/claude/claude.plugin.d.ts.map +1 -0
  75. package/dist/agents/plugins/{claude.plugin.js → claude/claude.plugin.js} +20 -11
  76. package/dist/agents/plugins/claude/claude.plugin.js.map +1 -0
  77. package/dist/agents/plugins/claude/claude.session.d.ts +60 -0
  78. package/dist/agents/plugins/claude/claude.session.d.ts.map +1 -0
  79. package/dist/agents/plugins/claude/claude.session.js +339 -0
  80. package/dist/agents/plugins/claude/claude.session.js.map +1 -0
  81. package/dist/agents/plugins/claude/plugin/.claude-plugin/local-install.json +15 -0
  82. package/dist/agents/plugins/claude/plugin/.claude-plugin/plugin.json +9 -0
  83. package/dist/agents/plugins/claude/plugin/README.md +299 -0
  84. package/dist/agents/plugins/claude/plugin/claude-templates/README.md +539 -0
  85. package/dist/agents/plugins/claude/plugin/claude-templates/templates/CLAUDE.md.template +511 -0
  86. package/dist/agents/plugins/claude/plugin/claude-templates/templates/INDEX.md +205 -0
  87. package/dist/agents/plugins/claude/plugin/claude-templates/templates/TEMPLATE_SIZES.md +74 -0
  88. package/dist/agents/plugins/claude/plugin/claude-templates/templates/guides/api/api-patterns.md.template +207 -0
  89. package/dist/agents/plugins/claude/plugin/claude-templates/templates/guides/architecture/layered-architecture.md.template +143 -0
  90. package/dist/agents/plugins/claude/plugin/claude-templates/templates/guides/architecture/project-structure.md.template +127 -0
  91. package/dist/agents/plugins/claude/plugin/claude-templates/templates/guides/data/database-patterns.md.template +168 -0
  92. package/dist/agents/plugins/claude/plugin/claude-templates/templates/guides/development/development-practices.md.template +210 -0
  93. package/dist/agents/plugins/claude/plugin/claude-templates/templates/guides/integration/external-integrations.md.template +160 -0
  94. package/dist/agents/plugins/claude/plugin/claude-templates/templates/guides/security/security-practices.md.template +170 -0
  95. package/dist/agents/plugins/claude/plugin/claude-templates/templates/guides/standards/code-quality.md.template +150 -0
  96. package/dist/agents/plugins/claude/plugin/claude-templates/templates/guides/standards/git-workflow.md.template +177 -0
  97. package/dist/agents/plugins/claude/plugin/claude-templates/templates/guides/testing/testing-patterns.md.template +143 -0
  98. package/dist/agents/plugins/claude/plugin/commands/README.md +0 -0
  99. package/dist/agents/plugins/claude/plugin/commands/codemie-catchup.md +10 -0
  100. package/dist/agents/plugins/claude/plugin/commands/codemie-init.md +731 -0
  101. package/dist/agents/plugins/claude/plugin/commands/memory-add.md +44 -0
  102. package/dist/agents/plugins/claude/plugin/commands/memory-init.md +18 -0
  103. package/dist/agents/plugins/claude/plugin/commands/memory-refresh.md +54 -0
  104. package/dist/agents/plugins/claude/plugin/hooks/hooks.json +71 -0
  105. package/dist/agents/plugins/claude/session/processors/claude.conversations-processor.d.ts +51 -0
  106. package/dist/agents/plugins/claude/session/processors/claude.conversations-processor.d.ts.map +1 -0
  107. package/dist/agents/plugins/claude/session/processors/claude.conversations-processor.js +840 -0
  108. package/dist/agents/plugins/claude/session/processors/claude.conversations-processor.js.map +1 -0
  109. package/dist/agents/plugins/claude/session/processors/claude.metrics-processor.d.ts +37 -0
  110. package/dist/agents/plugins/claude/session/processors/claude.metrics-processor.d.ts.map +1 -0
  111. package/dist/agents/plugins/claude/session/processors/claude.metrics-processor.js +275 -0
  112. package/dist/agents/plugins/claude/session/processors/claude.metrics-processor.js.map +1 -0
  113. package/dist/agents/plugins/codemie-code.plugin.js +1 -1
  114. package/dist/agents/plugins/codemie-code.plugin.js.map +1 -1
  115. package/dist/agents/plugins/gemini/extension/README.md +88 -0
  116. package/dist/agents/plugins/gemini/extension/gemini-extension.json +11 -0
  117. package/dist/agents/plugins/gemini/extension/hooks/hooks.json +65 -0
  118. package/dist/agents/plugins/gemini/gemini.extension-installer.d.ts +49 -0
  119. package/dist/agents/plugins/gemini/gemini.extension-installer.d.ts.map +1 -0
  120. package/dist/agents/plugins/gemini/gemini.extension-installer.js +63 -0
  121. package/dist/agents/plugins/gemini/gemini.extension-installer.js.map +1 -0
  122. package/dist/agents/plugins/gemini/gemini.hook-transformer.d.ts +43 -0
  123. package/dist/agents/plugins/gemini/gemini.hook-transformer.d.ts.map +1 -0
  124. package/dist/agents/plugins/gemini/gemini.hook-transformer.js +57 -0
  125. package/dist/agents/plugins/gemini/gemini.hook-transformer.js.map +1 -0
  126. package/dist/agents/plugins/gemini/gemini.plugin.d.ts +32 -0
  127. package/dist/agents/plugins/gemini/gemini.plugin.d.ts.map +1 -0
  128. package/dist/agents/plugins/gemini/gemini.plugin.js +136 -0
  129. package/dist/agents/plugins/gemini/gemini.plugin.js.map +1 -0
  130. package/dist/agents/plugins/gemini/gemini.session-adapter.d.ts +68 -0
  131. package/dist/agents/plugins/gemini/gemini.session-adapter.d.ts.map +1 -0
  132. package/dist/agents/plugins/gemini/gemini.session-adapter.js +268 -0
  133. package/dist/agents/plugins/gemini/gemini.session-adapter.js.map +1 -0
  134. package/dist/agents/plugins/gemini/session/processors/gemini.conversations-processor.d.ts +36 -0
  135. package/dist/agents/plugins/gemini/session/processors/gemini.conversations-processor.d.ts.map +1 -0
  136. package/dist/agents/plugins/gemini/session/processors/gemini.conversations-processor.js +186 -0
  137. package/dist/agents/plugins/gemini/session/processors/gemini.conversations-processor.js.map +1 -0
  138. package/dist/agents/plugins/gemini/session/processors/gemini.metrics-processor.d.ts +32 -0
  139. package/dist/agents/plugins/gemini/session/processors/gemini.metrics-processor.d.ts.map +1 -0
  140. package/dist/agents/plugins/gemini/session/processors/gemini.metrics-processor.js +193 -0
  141. package/dist/agents/plugins/gemini/session/processors/gemini.metrics-processor.js.map +1 -0
  142. package/dist/agents/plugins/gemini/session/utils/token-aggregator.d.ts +26 -0
  143. package/dist/agents/plugins/gemini/session/utils/token-aggregator.d.ts.map +1 -0
  144. package/dist/agents/plugins/gemini/session/utils/token-aggregator.js +38 -0
  145. package/dist/agents/plugins/gemini/session/utils/token-aggregator.js.map +1 -0
  146. package/dist/agents/plugins/gemini/session/utils/tool-aggregator.d.ts +33 -0
  147. package/dist/agents/plugins/gemini/session/utils/tool-aggregator.d.ts.map +1 -0
  148. package/dist/agents/plugins/gemini/session/utils/tool-aggregator.js +58 -0
  149. package/dist/agents/plugins/gemini/session/utils/tool-aggregator.js.map +1 -0
  150. package/dist/agents/plugins/gemini/session/utils/turn-detector.d.ts +70 -0
  151. package/dist/agents/plugins/gemini/session/utils/turn-detector.d.ts.map +1 -0
  152. package/dist/agents/plugins/gemini/session/utils/turn-detector.js +86 -0
  153. package/dist/agents/plugins/gemini/session/utils/turn-detector.js.map +1 -0
  154. package/dist/agents/registry.d.ts +7 -2
  155. package/dist/agents/registry.d.ts.map +1 -1
  156. package/dist/agents/registry.js +17 -8
  157. package/dist/agents/registry.js.map +1 -1
  158. package/dist/cli/commands/analytics/data-loader.d.ts +1 -1
  159. package/dist/cli/commands/analytics/data-loader.d.ts.map +1 -1
  160. package/dist/cli/commands/analytics/data-loader.js +3 -3
  161. package/dist/cli/commands/analytics/data-loader.js.map +1 -1
  162. package/dist/cli/commands/analytics/index.js +1 -1
  163. package/dist/cli/commands/analytics/index.js.map +1 -1
  164. package/dist/cli/commands/doctor/checks/AIConfigCheck.js +1 -1
  165. package/dist/cli/commands/doctor/checks/AIConfigCheck.js.map +1 -1
  166. package/dist/cli/commands/doctor/checks/AwsCliCheck.js +1 -1
  167. package/dist/cli/commands/doctor/checks/AwsCliCheck.js.map +1 -1
  168. package/dist/cli/commands/doctor/checks/NpmCheck.js +1 -1
  169. package/dist/cli/commands/doctor/checks/NpmCheck.js.map +1 -1
  170. package/dist/cli/commands/doctor/checks/PythonCheck.d.ts +13 -0
  171. package/dist/cli/commands/doctor/checks/PythonCheck.d.ts.map +1 -1
  172. package/dist/cli/commands/doctor/checks/PythonCheck.js +91 -32
  173. package/dist/cli/commands/doctor/checks/PythonCheck.js.map +1 -1
  174. package/dist/cli/commands/doctor/checks/UvCheck.js +1 -1
  175. package/dist/cli/commands/doctor/checks/UvCheck.js.map +1 -1
  176. package/dist/cli/commands/doctor/types.d.ts +1 -1
  177. package/dist/cli/commands/doctor/types.d.ts.map +1 -1
  178. package/dist/cli/commands/hook.d.ts +7 -0
  179. package/dist/cli/commands/hook.d.ts.map +1 -0
  180. package/dist/cli/commands/hook.js +788 -0
  181. package/dist/cli/commands/hook.js.map +1 -0
  182. package/dist/cli/commands/profile/auth.js +1 -1
  183. package/dist/cli/commands/profile/auth.js.map +1 -1
  184. package/dist/{utils/profile-display.d.ts → cli/commands/profile/display.d.ts} +3 -3
  185. package/dist/cli/commands/profile/display.d.ts.map +1 -0
  186. package/dist/{utils/profile-display.js → cli/commands/profile/display.js} +2 -2
  187. package/dist/cli/commands/profile/display.js.map +1 -0
  188. package/dist/cli/commands/profile/index.js +2 -2
  189. package/dist/cli/commands/profile/index.js.map +1 -1
  190. package/dist/cli/commands/setup.d.ts.map +1 -1
  191. package/dist/cli/commands/setup.js +4 -5
  192. package/dist/cli/commands/setup.js.map +1 -1
  193. package/dist/cli/commands/update.d.ts +3 -0
  194. package/dist/cli/commands/update.d.ts.map +1 -0
  195. package/dist/cli/commands/update.js +291 -0
  196. package/dist/cli/commands/update.js.map +1 -0
  197. package/dist/cli/commands/version.js +1 -1
  198. package/dist/cli/commands/version.js.map +1 -1
  199. package/dist/{utils → cli}/first-time.d.ts +4 -0
  200. package/dist/cli/first-time.d.ts.map +1 -0
  201. package/dist/{utils → cli}/first-time.js +27 -14
  202. package/dist/cli/first-time.js.map +1 -0
  203. package/dist/cli/index.js +6 -2
  204. package/dist/cli/index.js.map +1 -1
  205. package/dist/env/manager.d.ts.map +1 -1
  206. package/dist/env/manager.js +3 -4
  207. package/dist/env/manager.js.map +1 -1
  208. package/dist/frameworks/core/BaseFrameworkAdapter.js +1 -1
  209. package/dist/frameworks/core/BaseFrameworkAdapter.js.map +1 -1
  210. package/dist/frameworks/core/types.d.ts +1 -1
  211. package/dist/frameworks/plugins/bmad.plugin.js +2 -2
  212. package/dist/frameworks/plugins/bmad.plugin.js.map +1 -1
  213. package/dist/frameworks/plugins/speckit.plugin.d.ts.map +1 -1
  214. package/dist/frameworks/plugins/speckit.plugin.js +2 -3
  215. package/dist/frameworks/plugins/speckit.plugin.js.map +1 -1
  216. package/dist/index.d.ts +1 -1
  217. package/dist/index.d.ts.map +1 -1
  218. package/dist/index.js +1 -1
  219. package/dist/index.js.map +1 -1
  220. package/dist/migrations/001-config-rename.migration.d.ts.map +1 -1
  221. package/dist/migrations/001-config-rename.migration.js +2 -2
  222. package/dist/migrations/001-config-rename.migration.js.map +1 -1
  223. package/dist/migrations/002-consolidate-sessions.migration.d.ts +50 -0
  224. package/dist/migrations/002-consolidate-sessions.migration.d.ts.map +1 -0
  225. package/dist/migrations/002-consolidate-sessions.migration.js +220 -0
  226. package/dist/migrations/002-consolidate-sessions.migration.js.map +1 -0
  227. package/dist/migrations/index.d.ts +1 -0
  228. package/dist/migrations/index.d.ts.map +1 -1
  229. package/dist/migrations/index.js +3 -2
  230. package/dist/migrations/index.js.map +1 -1
  231. package/dist/migrations/tracker.d.ts.map +1 -1
  232. package/dist/migrations/tracker.js +2 -2
  233. package/dist/migrations/tracker.js.map +1 -1
  234. package/dist/providers/core/base/http-client.js +1 -1
  235. package/dist/providers/core/types.d.ts +1 -1
  236. package/dist/providers/plugins/ollama/ollama.template.d.ts.map +1 -1
  237. package/dist/providers/plugins/ollama/ollama.template.js +3 -1
  238. package/dist/providers/plugins/ollama/ollama.template.js.map +1 -1
  239. package/dist/providers/plugins/sso/index.d.ts +1 -1
  240. package/dist/providers/plugins/sso/index.d.ts.map +1 -1
  241. package/dist/providers/plugins/sso/index.js +1 -1
  242. package/dist/providers/plugins/sso/index.js.map +1 -1
  243. package/dist/providers/plugins/sso/proxy/plugins/index.d.ts +1 -1
  244. package/dist/providers/plugins/sso/proxy/plugins/index.d.ts.map +1 -1
  245. package/dist/providers/plugins/sso/proxy/plugins/index.js +3 -3
  246. package/dist/providers/plugins/sso/proxy/plugins/index.js.map +1 -1
  247. package/dist/providers/plugins/sso/proxy/plugins/sso.session-sync.plugin.d.ts +40 -0
  248. package/dist/providers/plugins/sso/proxy/plugins/sso.session-sync.plugin.d.ts.map +1 -0
  249. package/dist/providers/plugins/sso/proxy/plugins/sso.session-sync.plugin.js +194 -0
  250. package/dist/providers/plugins/sso/proxy/plugins/sso.session-sync.plugin.js.map +1 -0
  251. package/dist/providers/plugins/sso/proxy/proxy-http-client.d.ts +1 -0
  252. package/dist/providers/plugins/sso/proxy/proxy-http-client.d.ts.map +1 -1
  253. package/dist/providers/plugins/sso/proxy/proxy-http-client.js +40 -6
  254. package/dist/providers/plugins/sso/proxy/proxy-http-client.js.map +1 -1
  255. package/dist/providers/plugins/sso/session/BaseProcessor.d.ts +72 -0
  256. package/dist/providers/plugins/sso/session/BaseProcessor.d.ts.map +1 -0
  257. package/dist/providers/plugins/sso/session/BaseProcessor.js +9 -0
  258. package/dist/providers/plugins/sso/session/BaseProcessor.js.map +1 -0
  259. package/dist/providers/plugins/sso/session/BaseSessionAdapter.d.ts +99 -0
  260. package/dist/providers/plugins/sso/session/BaseSessionAdapter.d.ts.map +1 -0
  261. package/dist/providers/plugins/sso/session/BaseSessionAdapter.js +9 -0
  262. package/dist/providers/plugins/sso/session/BaseSessionAdapter.js.map +1 -0
  263. package/dist/providers/plugins/sso/session/SessionSyncer.d.ts +36 -0
  264. package/dist/providers/plugins/sso/session/SessionSyncer.d.ts.map +1 -0
  265. package/dist/providers/plugins/sso/session/SessionSyncer.js +140 -0
  266. package/dist/providers/plugins/sso/session/SessionSyncer.js.map +1 -0
  267. package/dist/providers/plugins/sso/session/processors/conversations/conversation-api-client.d.ts +26 -0
  268. package/dist/providers/plugins/sso/session/processors/conversations/conversation-api-client.d.ts.map +1 -0
  269. package/dist/providers/plugins/sso/session/processors/conversations/conversation-api-client.js +146 -0
  270. package/dist/providers/plugins/sso/session/processors/conversations/conversation-api-client.js.map +1 -0
  271. package/dist/providers/plugins/sso/session/processors/conversations/conversation-sync-processor.d.ts +23 -0
  272. package/dist/providers/plugins/sso/session/processors/conversations/conversation-sync-processor.d.ts.map +1 -0
  273. package/dist/providers/plugins/sso/session/processors/conversations/conversation-sync-processor.js +171 -0
  274. package/dist/providers/plugins/sso/session/processors/conversations/conversation-sync-processor.js.map +1 -0
  275. package/dist/providers/plugins/sso/session/processors/conversations/conversation-types.d.ts +69 -0
  276. package/dist/providers/plugins/sso/session/processors/conversations/conversation-types.d.ts.map +1 -0
  277. package/dist/providers/plugins/sso/session/processors/conversations/conversation-types.js +7 -0
  278. package/dist/providers/plugins/sso/session/processors/conversations/conversation-types.js.map +1 -0
  279. package/dist/providers/plugins/sso/session/processors/metrics/MetricsWriter.d.ts +30 -0
  280. package/dist/providers/plugins/sso/session/processors/metrics/MetricsWriter.d.ts.map +1 -0
  281. package/dist/providers/plugins/sso/session/processors/metrics/MetricsWriter.js +79 -0
  282. package/dist/providers/plugins/sso/session/processors/metrics/MetricsWriter.js.map +1 -0
  283. package/dist/providers/plugins/sso/{metrics/sync/sso.metrics-aggregator.d.ts → session/processors/metrics/metrics-aggregator.d.ts} +6 -5
  284. package/dist/providers/plugins/sso/session/processors/metrics/metrics-aggregator.d.ts.map +1 -0
  285. package/dist/providers/plugins/sso/{metrics/sync/sso.metrics-aggregator.js → session/processors/metrics/metrics-aggregator.js} +20 -12
  286. package/dist/providers/plugins/sso/session/processors/metrics/metrics-aggregator.js.map +1 -0
  287. package/dist/providers/plugins/sso/{metrics/sync/sso.metrics-sender.d.ts → session/processors/metrics/metrics-api-client.d.ts} +18 -11
  288. package/dist/providers/plugins/sso/session/processors/metrics/metrics-api-client.d.ts.map +1 -0
  289. package/dist/providers/plugins/sso/{metrics/sync/sso.metrics-sender.js → session/processors/metrics/metrics-api-client.js} +143 -15
  290. package/dist/providers/plugins/sso/session/processors/metrics/metrics-api-client.js.map +1 -0
  291. package/dist/providers/plugins/sso/{metrics/sync/sso.metrics-post-processor.d.ts → session/processors/metrics/metrics-post-processor.d.ts} +3 -3
  292. package/dist/providers/plugins/sso/session/processors/metrics/metrics-post-processor.d.ts.map +1 -0
  293. package/dist/providers/plugins/sso/{metrics/sync/sso.metrics-post-processor.js → session/processors/metrics/metrics-post-processor.js} +3 -3
  294. package/dist/providers/plugins/sso/session/processors/metrics/metrics-post-processor.js.map +1 -0
  295. package/dist/providers/plugins/sso/session/processors/metrics/metrics-sync-processor.d.ts +24 -0
  296. package/dist/providers/plugins/sso/session/processors/metrics/metrics-sync-processor.d.ts.map +1 -0
  297. package/dist/providers/plugins/sso/{metrics/sync/sso.metrics-sync.plugin.js → session/processors/metrics/metrics-sync-processor.js} +94 -165
  298. package/dist/providers/plugins/sso/session/processors/metrics/metrics-sync-processor.js.map +1 -0
  299. package/dist/providers/plugins/sso/{metrics/sync/sso.metrics-types.d.ts → session/processors/metrics/metrics-types.d.ts} +2 -1
  300. package/dist/providers/plugins/sso/session/processors/metrics/metrics-types.d.ts.map +1 -0
  301. package/dist/providers/plugins/sso/{metrics/sync/sso.metrics-types.js → session/processors/metrics/metrics-types.js} +1 -1
  302. package/dist/providers/plugins/sso/session/processors/metrics/metrics-types.js.map +1 -0
  303. package/dist/providers/plugins/sso/session/utils/jsonl-reader.d.ts +15 -0
  304. package/dist/providers/plugins/sso/session/utils/jsonl-reader.d.ts.map +1 -0
  305. package/dist/providers/plugins/sso/session/utils/jsonl-reader.js +33 -0
  306. package/dist/providers/plugins/sso/session/utils/jsonl-reader.js.map +1 -0
  307. package/dist/providers/plugins/sso/session/utils/jsonl-writer.d.ts +26 -0
  308. package/dist/providers/plugins/sso/session/utils/jsonl-writer.d.ts.map +1 -0
  309. package/dist/providers/plugins/sso/{metrics/sync/sso.jsonl-writer.js → session/utils/jsonl-writer.js} +11 -27
  310. package/dist/providers/plugins/sso/session/utils/jsonl-writer.js.map +1 -0
  311. package/dist/providers/plugins/sso/sso.auth.js +1 -1
  312. package/dist/providers/plugins/sso/sso.auth.js.map +1 -1
  313. package/dist/providers/plugins/sso/sso.http-client.d.ts +1 -1
  314. package/dist/providers/plugins/sso/sso.http-client.js +1 -1
  315. package/dist/providers/plugins/sso/sso.http-client.js.map +1 -1
  316. package/dist/providers/plugins/sso/sso.template.d.ts.map +1 -1
  317. package/dist/providers/plugins/sso/sso.template.js +71 -43
  318. package/dist/providers/plugins/sso/sso.template.js.map +1 -1
  319. package/dist/utils/{config-loader.d.ts → config.d.ts} +6 -1
  320. package/dist/utils/config.d.ts.map +1 -0
  321. package/dist/utils/{config-loader.js → config.js} +30 -4
  322. package/dist/utils/config.js.map +1 -0
  323. package/dist/utils/errors.d.ts +89 -0
  324. package/dist/utils/errors.d.ts.map +1 -1
  325. package/dist/utils/errors.js +340 -0
  326. package/dist/utils/errors.js.map +1 -1
  327. package/dist/utils/exec.d.ts +6 -0
  328. package/dist/utils/exec.d.ts.map +1 -1
  329. package/dist/utils/exec.js +6 -0
  330. package/dist/utils/exec.js.map +1 -1
  331. package/dist/utils/file-operations.d.ts +20 -0
  332. package/dist/utils/file-operations.d.ts.map +1 -0
  333. package/dist/utils/file-operations.js +48 -0
  334. package/dist/utils/file-operations.js.map +1 -0
  335. package/dist/utils/logger.d.ts +2 -1
  336. package/dist/utils/logger.d.ts.map +1 -1
  337. package/dist/utils/logger.js +15 -7
  338. package/dist/utils/logger.js.map +1 -1
  339. package/dist/utils/{json-parser.d.ts → parsers.d.ts} +1 -1
  340. package/dist/utils/parsers.d.ts.map +1 -0
  341. package/dist/utils/{json-parser.js → parsers.js} +1 -1
  342. package/dist/utils/parsers.js.map +1 -0
  343. package/dist/utils/{path-utils.d.ts → paths.d.ts} +77 -12
  344. package/dist/utils/paths.d.ts.map +1 -0
  345. package/dist/utils/{path-utils.js → paths.js} +103 -12
  346. package/dist/utils/paths.js.map +1 -0
  347. package/dist/utils/{npm.d.ts → processes.d.ts} +44 -7
  348. package/dist/utils/processes.d.ts.map +1 -0
  349. package/dist/utils/{npm.js → processes.js} +129 -10
  350. package/dist/utils/processes.js.map +1 -0
  351. package/dist/utils/profile.d.ts +1 -16
  352. package/dist/utils/profile.d.ts.map +1 -1
  353. package/dist/utils/profile.js +1 -27
  354. package/dist/utils/profile.js.map +1 -1
  355. package/dist/utils/security.d.ts +62 -0
  356. package/dist/utils/security.d.ts.map +1 -0
  357. package/dist/utils/security.js +396 -0
  358. package/dist/utils/security.js.map +1 -0
  359. package/package.json +11 -11
  360. package/scripts/copy-plugins.js +57 -0
  361. package/scripts/license-check.js +23 -0
  362. package/bin/codemie-codex.js +0 -18
  363. package/bin/codemie-deepagents.js +0 -18
  364. package/dist/agents/core/BaseMetricsAdapter.d.ts +0 -165
  365. package/dist/agents/core/BaseMetricsAdapter.d.ts.map +0 -1
  366. package/dist/agents/core/BaseMetricsAdapter.js +0 -308
  367. package/dist/agents/core/BaseMetricsAdapter.js.map +0 -1
  368. package/dist/agents/core/metrics/MetricsOrchestrator.d.ts +0 -81
  369. package/dist/agents/core/metrics/MetricsOrchestrator.d.ts.map +0 -1
  370. package/dist/agents/core/metrics/MetricsOrchestrator.js +0 -417
  371. package/dist/agents/core/metrics/MetricsOrchestrator.js.map +0 -1
  372. package/dist/agents/core/metrics/core/DeltaWriter.d.ts +0 -49
  373. package/dist/agents/core/metrics/core/DeltaWriter.d.ts.map +0 -1
  374. package/dist/agents/core/metrics/core/DeltaWriter.js +0 -152
  375. package/dist/agents/core/metrics/core/DeltaWriter.js.map +0 -1
  376. package/dist/agents/core/metrics/core/FileSnapshotter.d.ts +0 -22
  377. package/dist/agents/core/metrics/core/FileSnapshotter.d.ts.map +0 -1
  378. package/dist/agents/core/metrics/core/FileSnapshotter.js +0 -74
  379. package/dist/agents/core/metrics/core/FileSnapshotter.js.map +0 -1
  380. package/dist/agents/core/metrics/core/SessionCorrelator.d.ts +0 -34
  381. package/dist/agents/core/metrics/core/SessionCorrelator.d.ts.map +0 -1
  382. package/dist/agents/core/metrics/core/SessionCorrelator.js +0 -157
  383. package/dist/agents/core/metrics/core/SessionCorrelator.js.map +0 -1
  384. package/dist/agents/core/metrics/core/SyncStateManager.d.ts +0 -69
  385. package/dist/agents/core/metrics/core/SyncStateManager.d.ts.map +0 -1
  386. package/dist/agents/core/metrics/core/SyncStateManager.js +0 -283
  387. package/dist/agents/core/metrics/core/SyncStateManager.js.map +0 -1
  388. package/dist/agents/core/metrics/session/SessionStore.d.ts +0 -43
  389. package/dist/agents/core/metrics/session/SessionStore.d.ts.map +0 -1
  390. package/dist/agents/core/metrics/session/SessionStore.js +0 -146
  391. package/dist/agents/core/metrics/session/SessionStore.js.map +0 -1
  392. package/dist/agents/core/metrics-config.d.ts +0 -38
  393. package/dist/agents/core/metrics-config.d.ts.map +0 -1
  394. package/dist/agents/core/metrics-config.js +0 -95
  395. package/dist/agents/core/metrics-config.js.map +0 -1
  396. package/dist/agents/plugins/claude.metrics.d.ts +0 -102
  397. package/dist/agents/plugins/claude.metrics.d.ts.map +0 -1
  398. package/dist/agents/plugins/claude.metrics.js +0 -656
  399. package/dist/agents/plugins/claude.metrics.js.map +0 -1
  400. package/dist/agents/plugins/claude.plugin.d.ts +0 -19
  401. package/dist/agents/plugins/claude.plugin.d.ts.map +0 -1
  402. package/dist/agents/plugins/claude.plugin.js.map +0 -1
  403. package/dist/agents/plugins/codex.plugin.d.ts +0 -17
  404. package/dist/agents/plugins/codex.plugin.d.ts.map +0 -1
  405. package/dist/agents/plugins/codex.plugin.js +0 -386
  406. package/dist/agents/plugins/codex.plugin.js.map +0 -1
  407. package/dist/agents/plugins/deepagents.plugin.d.ts +0 -21
  408. package/dist/agents/plugins/deepagents.plugin.d.ts.map +0 -1
  409. package/dist/agents/plugins/deepagents.plugin.js +0 -104
  410. package/dist/agents/plugins/deepagents.plugin.js.map +0 -1
  411. package/dist/agents/plugins/gemini.metrics.d.ts +0 -99
  412. package/dist/agents/plugins/gemini.metrics.d.ts.map +0 -1
  413. package/dist/agents/plugins/gemini.metrics.js +0 -475
  414. package/dist/agents/plugins/gemini.metrics.js.map +0 -1
  415. package/dist/agents/plugins/gemini.plugin.d.ts +0 -16
  416. package/dist/agents/plugins/gemini.plugin.d.ts.map +0 -1
  417. package/dist/agents/plugins/gemini.plugin.js +0 -80
  418. package/dist/agents/plugins/gemini.plugin.js.map +0 -1
  419. package/dist/agents/plugins/history-parser.d.ts +0 -52
  420. package/dist/agents/plugins/history-parser.d.ts.map +0 -1
  421. package/dist/agents/plugins/history-parser.js +0 -155
  422. package/dist/agents/plugins/history-parser.js.map +0 -1
  423. package/dist/providers/plugins/sso/metrics/sync/sso.jsonl-writer.d.ts +0 -28
  424. package/dist/providers/plugins/sso/metrics/sync/sso.jsonl-writer.d.ts.map +0 -1
  425. package/dist/providers/plugins/sso/metrics/sync/sso.jsonl-writer.js.map +0 -1
  426. package/dist/providers/plugins/sso/metrics/sync/sso.lifecycle-handler.d.ts +0 -62
  427. package/dist/providers/plugins/sso/metrics/sync/sso.lifecycle-handler.d.ts.map +0 -1
  428. package/dist/providers/plugins/sso/metrics/sync/sso.lifecycle-handler.js +0 -157
  429. package/dist/providers/plugins/sso/metrics/sync/sso.lifecycle-handler.js.map +0 -1
  430. package/dist/providers/plugins/sso/metrics/sync/sso.metrics-aggregator.d.ts.map +0 -1
  431. package/dist/providers/plugins/sso/metrics/sync/sso.metrics-aggregator.js.map +0 -1
  432. package/dist/providers/plugins/sso/metrics/sync/sso.metrics-api-client.d.ts +0 -32
  433. package/dist/providers/plugins/sso/metrics/sync/sso.metrics-api-client.d.ts.map +0 -1
  434. package/dist/providers/plugins/sso/metrics/sync/sso.metrics-api-client.js +0 -159
  435. package/dist/providers/plugins/sso/metrics/sync/sso.metrics-api-client.js.map +0 -1
  436. package/dist/providers/plugins/sso/metrics/sync/sso.metrics-post-processor.d.ts.map +0 -1
  437. package/dist/providers/plugins/sso/metrics/sync/sso.metrics-post-processor.js.map +0 -1
  438. package/dist/providers/plugins/sso/metrics/sync/sso.metrics-sender.d.ts.map +0 -1
  439. package/dist/providers/plugins/sso/metrics/sync/sso.metrics-sender.js.map +0 -1
  440. package/dist/providers/plugins/sso/metrics/sync/sso.metrics-sync.plugin.d.ts +0 -36
  441. package/dist/providers/plugins/sso/metrics/sync/sso.metrics-sync.plugin.d.ts.map +0 -1
  442. package/dist/providers/plugins/sso/metrics/sync/sso.metrics-sync.plugin.js.map +0 -1
  443. package/dist/providers/plugins/sso/metrics/sync/sso.metrics-types.d.ts.map +0 -1
  444. package/dist/providers/plugins/sso/metrics/sync/sso.metrics-types.js.map +0 -1
  445. package/dist/utils/config-loader.d.ts.map +0 -1
  446. package/dist/utils/config-loader.js.map +0 -1
  447. package/dist/utils/credential-store.d.ts +0 -22
  448. package/dist/utils/credential-store.d.ts.map +0 -1
  449. package/dist/utils/credential-store.js +0 -165
  450. package/dist/utils/credential-store.js.map +0 -1
  451. package/dist/utils/dirname.d.ts +0 -7
  452. package/dist/utils/dirname.d.ts.map +0 -1
  453. package/dist/utils/dirname.js +0 -11
  454. package/dist/utils/dirname.js.map +0 -1
  455. package/dist/utils/error-context.d.ts +0 -90
  456. package/dist/utils/error-context.d.ts.map +0 -1
  457. package/dist/utils/error-context.js +0 -338
  458. package/dist/utils/error-context.js.map +0 -1
  459. package/dist/utils/first-time.d.ts.map +0 -1
  460. package/dist/utils/first-time.js.map +0 -1
  461. package/dist/utils/git.d.ts +0 -13
  462. package/dist/utils/git.d.ts.map +0 -1
  463. package/dist/utils/git.js +0 -37
  464. package/dist/utils/git.js.map +0 -1
  465. package/dist/utils/installation-id.d.ts +0 -10
  466. package/dist/utils/installation-id.d.ts.map +0 -1
  467. package/dist/utils/installation-id.js +0 -30
  468. package/dist/utils/installation-id.js.map +0 -1
  469. package/dist/utils/json-parser.d.ts.map +0 -1
  470. package/dist/utils/json-parser.js.map +0 -1
  471. package/dist/utils/npm.d.ts.map +0 -1
  472. package/dist/utils/npm.js.map +0 -1
  473. package/dist/utils/path-utils.d.ts.map +0 -1
  474. package/dist/utils/path-utils.js.map +0 -1
  475. package/dist/utils/profile-display.d.ts.map +0 -1
  476. package/dist/utils/profile-display.js.map +0 -1
  477. package/dist/utils/sanitize.d.ts +0 -28
  478. package/dist/utils/sanitize.d.ts.map +0 -1
  479. package/dist/utils/sanitize.js +0 -212
  480. package/dist/utils/sanitize.js.map +0 -1
  481. package/dist/utils/which.d.ts +0 -20
  482. package/dist/utils/which.d.ts.map +0 -1
  483. package/dist/utils/which.js +0 -54
  484. package/dist/utils/which.js.map +0 -1
@@ -1,417 +0,0 @@
1
- /**
2
- * Metrics Orchestrator
3
- *
4
- * Coordinates metrics collection across agent lifecycle:
5
- * 1. Pre-spawn snapshot
6
- * 2. Post-spawn snapshot + correlation
7
- * 3. Session creation and persistence
8
- *
9
- * Phase 1 & 2 implementation (Phase 3-5 later)
10
- */
11
- import { randomUUID } from 'crypto';
12
- import { FileSnapshotter } from './core/FileSnapshotter.js';
13
- import { SessionCorrelator } from './core/SessionCorrelator.js';
14
- import { SessionStore } from './session/SessionStore.js';
15
- import { DeltaWriter } from './core/DeltaWriter.js';
16
- import { SyncStateManager } from './core/SyncStateManager.js';
17
- import { METRICS_CONFIG } from '../metrics-config.js';
18
- import { logger } from '../../../utils/logger.js';
19
- import { watch } from 'fs';
20
- import { detectGitBranch } from '../../../utils/git.js';
21
- import { createErrorContext, formatErrorForLog } from '../../../utils/error-context.js';
22
- export class MetricsOrchestrator {
23
- sessionId;
24
- agentName;
25
- provider;
26
- project;
27
- workingDirectory;
28
- metricsAdapter;
29
- snapshotter;
30
- correlator;
31
- store;
32
- // Delta-based components
33
- deltaWriter = null;
34
- syncStateManager = null;
35
- fileWatcher = null;
36
- beforeSnapshot = null;
37
- session = null;
38
- isCollecting = false;
39
- constructor(options) {
40
- this.sessionId = options.sessionId || randomUUID();
41
- this.agentName = options.agentName;
42
- this.provider = options.provider;
43
- this.project = options.project;
44
- this.workingDirectory = options.workingDirectory;
45
- this.metricsAdapter = options.metricsAdapter;
46
- this.snapshotter = new FileSnapshotter();
47
- this.correlator = new SessionCorrelator();
48
- this.store = new SessionStore();
49
- }
50
- /**
51
- * Check if metrics collection is enabled for this provider
52
- */
53
- isEnabled() {
54
- return METRICS_CONFIG.enabled(this.provider);
55
- }
56
- /**
57
- * Step 1: Take snapshot before agent spawn
58
- * Called before spawning the agent process
59
- * Note: This method is only called when metrics are enabled
60
- */
61
- async beforeAgentSpawn() {
62
- try {
63
- logger.info('[MetricsOrchestrator] Preparing to track session metrics...');
64
- // Get agent data paths
65
- const { sessionsDir } = this.metricsAdapter.getDataPaths();
66
- logger.debug(`[MetricsOrchestrator] Taking pre-spawn snapshot of: ${sessionsDir}`);
67
- // Take snapshot
68
- this.beforeSnapshot = await this.snapshotter.snapshot(sessionsDir);
69
- logger.info(`[MetricsOrchestrator] Baseline: ${this.beforeSnapshot.files.length} existing session file${this.beforeSnapshot.files.length !== 1 ? 's' : ''}`);
70
- logger.debug(`[MetricsOrchestrator] Pre-spawn snapshot complete: ${this.beforeSnapshot.files.length} files`);
71
- // Show sample of baseline files for debugging
72
- if (this.beforeSnapshot.files.length > 0) {
73
- const sampleSize = Math.min(3, this.beforeSnapshot.files.length);
74
- const sample = this.beforeSnapshot.files.slice(0, sampleSize).map(f => f.path);
75
- logger.info(`[MetricsOrchestrator] Sample files (first ${sampleSize}):`);
76
- for (const filePath of sample) {
77
- logger.info(`[MetricsOrchestrator] → ${filePath}`);
78
- }
79
- if (this.beforeSnapshot.files.length > sampleSize) {
80
- logger.info(`[MetricsOrchestrator] ... and ${this.beforeSnapshot.files.length - sampleSize} more`);
81
- }
82
- }
83
- // Detect git branch from working directory
84
- const gitBranch = await detectGitBranch(this.workingDirectory);
85
- // Create session record
86
- this.session = {
87
- sessionId: this.sessionId,
88
- agentName: this.agentName,
89
- provider: this.provider,
90
- ...(this.project && { project: this.project }),
91
- startTime: Date.now(),
92
- workingDirectory: this.workingDirectory,
93
- ...(gitBranch && { gitBranch }), // Include branch if detected
94
- status: 'active',
95
- correlation: {
96
- status: 'pending',
97
- retryCount: 0
98
- },
99
- monitoring: {
100
- isActive: false,
101
- changeCount: 0
102
- }
103
- };
104
- // Save initial session
105
- await this.store.saveSession(this.session);
106
- logger.info(`[MetricsOrchestrator] Session created: ${this.sessionId}`);
107
- logger.debug(`[MetricsOrchestrator] Agent: ${this.agentName}, Provider: ${this.provider}`);
108
- }
109
- catch (error) {
110
- // Disable metrics for the rest of the session to prevent log pollution
111
- process.env.CODEMIE_METRICS_DISABLED = '1';
112
- // Create comprehensive error context for logging
113
- const errorContext = createErrorContext(error, {
114
- sessionId: this.sessionId,
115
- agent: this.agentName,
116
- provider: this.provider,
117
- ...(this.project && { model: this.project })
118
- });
119
- logger.error('[MetricsOrchestrator] Failed to take pre-spawn snapshot', formatErrorForLog(errorContext));
120
- // Store raw error for display to user (not ErrorContext)
121
- if (this.session) {
122
- this.session.initError = error;
123
- }
124
- // Don't throw - metrics failures shouldn't break agent execution
125
- }
126
- }
127
- /**
128
- * Step 2: Take snapshot after agent spawn + correlate
129
- * Called after spawning the agent process
130
- * Note: This method is only called when metrics are enabled
131
- */
132
- async afterAgentSpawn() {
133
- if (!this.isEnabled() || !this.beforeSnapshot || !this.session) {
134
- return;
135
- }
136
- try {
137
- logger.info(`[MetricsOrchestrator] Agent started - waiting for session file creation...`);
138
- // Wait for agent to initialize and create session file
139
- const initDelay = this.metricsAdapter.getInitDelay();
140
- await this.sleep(initDelay);
141
- // Get agent data paths
142
- const { sessionsDir } = this.metricsAdapter.getDataPaths();
143
- logger.info(`[MetricsOrchestrator] Scanning directory: ${sessionsDir}`);
144
- // Take snapshot
145
- const afterSnapshot = await this.snapshotter.snapshot(sessionsDir);
146
- logger.info(`[MetricsOrchestrator] Found ${afterSnapshot.files.length} total session file${afterSnapshot.files.length !== 1 ? 's' : ''} in directory`);
147
- logger.debug(`[MetricsOrchestrator] Pre-spawn: ${this.beforeSnapshot.files.length} files, Post-spawn: ${afterSnapshot.files.length} files`);
148
- // Show sample of post-spawn files for comparison
149
- if (afterSnapshot.files.length > 0 && afterSnapshot.files.length !== this.beforeSnapshot.files.length) {
150
- const sampleSize = Math.min(3, afterSnapshot.files.length);
151
- const sample = afterSnapshot.files.slice(0, sampleSize).map(f => f.path);
152
- logger.info(`[MetricsOrchestrator] Post-spawn files (first ${sampleSize}):`);
153
- for (const filePath of sample) {
154
- logger.info(`[MetricsOrchestrator] → ${filePath}`);
155
- }
156
- if (afterSnapshot.files.length > sampleSize) {
157
- logger.info(`[MetricsOrchestrator] ... and ${afterSnapshot.files.length - sampleSize} more`);
158
- }
159
- }
160
- // Compute diff
161
- const newFiles = this.snapshotter.diff(this.beforeSnapshot, afterSnapshot);
162
- if (newFiles.length > 0) {
163
- logger.info(`[MetricsOrchestrator] ${newFiles.length} new file${newFiles.length !== 1 ? 's' : ''} created since agent start`);
164
- // Use path.basename for cross-platform display
165
- const { basename } = await import('path');
166
- logger.info(`[MetricsOrchestrator] ${newFiles.map(f => `→ ${basename(f.path)}`).join(', ')}`);
167
- logger.debug(`[MetricsOrchestrator] New files (full paths): ${newFiles.map(f => f.path).join(', ')}`);
168
- }
169
- else {
170
- logger.info(`[MetricsOrchestrator] No new files yet - will retry...`);
171
- logger.debug(`[MetricsOrchestrator] Diff result: 0 new files (baseline had ${this.beforeSnapshot.files.length}, post-spawn has ${afterSnapshot.files.length})`);
172
- }
173
- // Correlate with retry
174
- logger.debug('[MetricsOrchestrator] Starting correlation with retry...');
175
- const correlation = await this.correlator.correlateWithRetry({
176
- sessionId: this.sessionId,
177
- agentName: this.agentName,
178
- workingDirectory: this.workingDirectory,
179
- newFiles,
180
- agentPlugin: this.metricsAdapter
181
- }, async () => {
182
- // Snapshot function for retries
183
- const retrySnapshot = await this.snapshotter.snapshot(sessionsDir);
184
- return this.snapshotter.diff(this.beforeSnapshot, retrySnapshot);
185
- });
186
- // Update session with correlation result
187
- await this.store.updateSessionCorrelation(this.sessionId, correlation);
188
- // Reload session to get updated correlation
189
- this.session = await this.store.loadSession(this.sessionId);
190
- if (correlation.status === 'matched') {
191
- logger.debug(`[MetricsOrchestrator] Session correlated: ${correlation.agentSessionId}`);
192
- logger.debug(`[MetricsOrchestrator] Agent file: ${correlation.agentSessionFile}`);
193
- logger.debug(`[MetricsOrchestrator] Retry count: ${correlation.retryCount}`);
194
- // Start incremental delta monitoring
195
- await this.startIncrementalMonitoring(correlation.agentSessionFile);
196
- }
197
- else {
198
- logger.warn(`[MetricsOrchestrator] Correlation failed after ${correlation.retryCount} retries`);
199
- }
200
- }
201
- catch (error) {
202
- // Create comprehensive error context for logging
203
- const errorContext = createErrorContext(error, {
204
- sessionId: this.sessionId,
205
- agent: this.agentName,
206
- provider: this.provider,
207
- ...(this.project && { model: this.project })
208
- });
209
- logger.error('[MetricsOrchestrator] Failed in post-spawn phase', formatErrorForLog(errorContext));
210
- // Store raw error for display to user (not ErrorContext)
211
- if (this.session) {
212
- this.session.postSpawnError = error;
213
- }
214
- // Don't throw - metrics failures shouldn't break agent execution
215
- }
216
- }
217
- /**
218
- * Finalize session on agent exit
219
- * Called when agent process exits
220
- * Note: This method is only called when metrics are enabled
221
- */
222
- async onAgentExit(exitCode) {
223
- if (!this.isEnabled() || !this.session) {
224
- return;
225
- }
226
- try {
227
- logger.debug('[MetricsOrchestrator] Finalizing session...');
228
- // Stop file watcher
229
- if (this.fileWatcher) {
230
- this.fileWatcher.close();
231
- this.fileWatcher = null;
232
- logger.debug('[MetricsOrchestrator] Stopped file watcher');
233
- }
234
- // Collect final deltas
235
- if (this.session.correlation.status === 'matched' &&
236
- this.session.correlation.agentSessionFile) {
237
- await this.collectDeltas(this.session.correlation.agentSessionFile);
238
- logger.debug('[MetricsOrchestrator] Collected final deltas');
239
- }
240
- // Update sync state status with end time
241
- const endTime = Date.now();
242
- const status = exitCode === 0 ? 'completed' : 'failed';
243
- if (this.syncStateManager) {
244
- await this.syncStateManager.updateStatus(status, endTime);
245
- }
246
- // Update session status
247
- await this.store.updateSessionStatus(this.sessionId, status);
248
- logger.debug('[MetricsOrchestrator] Session finalized');
249
- }
250
- catch (error) {
251
- // Create comprehensive error context for logging
252
- const errorContext = createErrorContext(error, {
253
- sessionId: this.sessionId,
254
- agent: this.agentName,
255
- provider: this.provider,
256
- ...(this.project && { model: this.project })
257
- });
258
- logger.error('[MetricsOrchestrator] Failed to finalize session', formatErrorForLog(errorContext));
259
- // Don't throw - metrics failures shouldn't break agent execution
260
- }
261
- }
262
- /**
263
- * Start incremental monitoring with delta collection
264
- */
265
- async startIncrementalMonitoring(sessionFilePath) {
266
- if (!this.isEnabled() || !this.session || !this.session.correlation.agentSessionId) {
267
- return;
268
- }
269
- try {
270
- // Initialize delta writer and sync state manager
271
- this.deltaWriter = new DeltaWriter(this.sessionId);
272
- this.syncStateManager = new SyncStateManager(this.sessionId);
273
- // Initialize sync state with session start time
274
- await this.syncStateManager.initialize(this.sessionId, this.session.correlation.agentSessionId, this.session.startTime);
275
- logger.info('[MetricsOrchestrator] Monitoring session activity in real-time');
276
- logger.debug('[MetricsOrchestrator] Initialized delta-based metrics tracking');
277
- // Collect initial deltas
278
- await this.collectDeltas(sessionFilePath);
279
- // Start file watching
280
- let debounceTimer = null;
281
- const DEBOUNCE_DELAY = 5000; // 5 seconds
282
- this.fileWatcher = watch(sessionFilePath, (eventType) => {
283
- if (eventType === 'change') {
284
- // Debounce: wait 5s after last change before collecting
285
- if (debounceTimer) {
286
- clearTimeout(debounceTimer);
287
- }
288
- debounceTimer = setTimeout(async () => {
289
- await this.collectDeltas(sessionFilePath);
290
- }, DEBOUNCE_DELAY);
291
- }
292
- });
293
- logger.debug('[MetricsOrchestrator] Started file watching for incremental metrics');
294
- }
295
- catch (error) {
296
- logger.error('[MetricsOrchestrator] Failed to start incremental monitoring:', error);
297
- }
298
- }
299
- /**
300
- * Collect delta metrics from agent session file
301
- */
302
- async collectDeltas(sessionFilePath) {
303
- // Prevent concurrent collection or if metrics disabled
304
- if (!this.isEnabled() || this.isCollecting || !this.deltaWriter || !this.syncStateManager) {
305
- return;
306
- }
307
- this.isCollecting = true;
308
- try {
309
- // Load current sync state
310
- const syncState = await this.syncStateManager.load();
311
- // If sync state doesn't exist (file deleted or not initialized yet), skip collection
312
- if (!syncState) {
313
- logger.debug('[MetricsOrchestrator] Sync state not available, skipping delta collection');
314
- this.isCollecting = false;
315
- return;
316
- }
317
- // Get already-processed record IDs from sync state
318
- const processedRecordIds = new Set(syncState.processedRecordIds);
319
- // Get already-attached user prompt texts from sync state
320
- const attachedUserPromptTexts = new Set(syncState.attachedUserPromptTexts || []);
321
- // Parse incremental metrics with processed record IDs and attached prompts
322
- logger.info(`[MetricsOrchestrator] Scanning session for new activity...`);
323
- const { deltas, lastLine, newlyAttachedPrompts } = await this.metricsAdapter.parseIncrementalMetrics(sessionFilePath, processedRecordIds, attachedUserPromptTexts);
324
- if (deltas.length === 0) {
325
- logger.debug('[MetricsOrchestrator] No new deltas to collect');
326
- this.isCollecting = false;
327
- return;
328
- }
329
- logger.info(`[MetricsOrchestrator] Found ${deltas.length} new interaction${deltas.length !== 1 ? 's' : ''} to record`);
330
- // Collect record IDs for tracking
331
- const newRecordIds = [];
332
- // Calculate summary statistics for logging
333
- let totalTokens = 0;
334
- let totalTools = 0;
335
- let totalFiles = 0;
336
- // Append each delta to JSONL
337
- for (const delta of deltas) {
338
- // Set CodeMie session ID
339
- delta.sessionId = this.sessionId;
340
- // Set gitBranch if not already present in delta
341
- if (!delta.gitBranch) {
342
- delta.gitBranch = await detectGitBranch(this.workingDirectory);
343
- }
344
- // Accumulate statistics
345
- if (delta.tokens) {
346
- totalTokens += (delta.tokens.input || 0) + (delta.tokens.output || 0);
347
- }
348
- if (delta.tools) {
349
- totalTools += Object.values(delta.tools).reduce((sum, count) => sum + count, 0);
350
- }
351
- if (delta.fileOperations) {
352
- totalFiles += delta.fileOperations.length;
353
- }
354
- // Append to JSONL
355
- await this.deltaWriter.appendDelta(delta);
356
- newRecordIds.push(delta.recordId);
357
- }
358
- // Update sync state with processed record IDs
359
- await this.syncStateManager.addProcessedRecords(newRecordIds);
360
- await this.syncStateManager.updateLastProcessed(lastLine, Date.now());
361
- await this.syncStateManager.incrementDeltas(deltas.length);
362
- // Update sync state with newly attached user prompts
363
- if (newlyAttachedPrompts && newlyAttachedPrompts.length > 0) {
364
- await this.syncStateManager.addAttachedUserPrompts(newlyAttachedPrompts);
365
- }
366
- // Log summary with meaningful statistics
367
- const parts = [];
368
- if (totalTokens > 0)
369
- parts.push(`${totalTokens.toLocaleString()} tokens`);
370
- if (totalTools > 0)
371
- parts.push(`${totalTools} tool${totalTools !== 1 ? 's' : ''}`);
372
- if (totalFiles > 0)
373
- parts.push(`${totalFiles} file${totalFiles !== 1 ? 's' : ''}`);
374
- const summary = parts.length > 0 ? ` (${parts.join(', ')})` : '';
375
- logger.info(`[MetricsOrchestrator] Recorded${summary}`);
376
- logger.debug(`[MetricsOrchestrator] Processed up to line ${lastLine}`);
377
- }
378
- catch (error) {
379
- // Create comprehensive error context for logging
380
- const errorContext = createErrorContext(error, {
381
- sessionId: this.sessionId,
382
- agent: this.agentName,
383
- provider: this.provider,
384
- ...(this.project && { model: this.project })
385
- });
386
- logger.error('[MetricsOrchestrator] Failed to collect deltas', formatErrorForLog(errorContext));
387
- }
388
- finally {
389
- this.isCollecting = false;
390
- }
391
- }
392
- /**
393
- * Get initialization errors for display to user
394
- * Returns the first error that occurred during metrics initialization
395
- */
396
- getInitializationError() {
397
- if (!this.session) {
398
- return null;
399
- }
400
- // Check for errors in order of occurrence
401
- const sessionWithErrors = this.session;
402
- return sessionWithErrors.initError || sessionWithErrors.postSpawnError || null;
403
- }
404
- /**
405
- * Check if metrics initialization had any errors
406
- */
407
- hasInitializationError() {
408
- return this.getInitializationError() !== null;
409
- }
410
- /**
411
- * Sleep utility
412
- */
413
- sleep(ms) {
414
- return new Promise(resolve => setTimeout(resolve, ms));
415
- }
416
- }
417
- //# sourceMappingURL=MetricsOrchestrator.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"MetricsOrchestrator.js","sourceRoot":"","sources":["../../../../src/agents/core/metrics/MetricsOrchestrator.ts"],"names":[],"mappings":"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"}
@@ -1,49 +0,0 @@
1
- /**
2
- * Delta Writer
3
- *
4
- * Handles incremental metrics storage in JSONL format.
5
- * Stores metrics in: ~/.codemie/metrics/sessions/{sessionId}_metrics.jsonl
6
- * Provides O(1) append operations and efficient filtering by sync status.
7
- */
8
- import type { MetricDelta, SyncStatus } from '../types.js';
9
- export declare class DeltaWriter {
10
- private readonly filePath;
11
- constructor(sessionId: string);
12
- /**
13
- * Append new delta to JSONL file (O(1) operation)
14
- * Returns the recordId from the delta
15
- */
16
- appendDelta(delta: Omit<MetricDelta, 'syncStatus' | 'syncAttempts'>): Promise<string>;
17
- /**
18
- * Read all deltas from JSONL file
19
- */
20
- readAll(): Promise<MetricDelta[]>;
21
- /**
22
- * Update sync status for specific records
23
- * This requires rewriting the entire file
24
- */
25
- updateSyncStatus(recordIds: string[], status: SyncStatus, error?: string): Promise<void>;
26
- /**
27
- * Get deltas with specific sync status
28
- */
29
- filterByStatus(status: SyncStatus): Promise<MetricDelta[]>;
30
- /**
31
- * Get sync statistics
32
- */
33
- getSyncStats(): Promise<{
34
- total: number;
35
- pending: number;
36
- syncing: number;
37
- synced: number;
38
- failed: number;
39
- }>;
40
- /**
41
- * Get file path
42
- */
43
- getFilePath(): string;
44
- /**
45
- * Check if file exists
46
- */
47
- exists(): boolean;
48
- }
49
- //# sourceMappingURL=DeltaWriter.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"DeltaWriter.d.ts","sourceRoot":"","sources":["../../../../../src/agents/core/metrics/core/DeltaWriter.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAKH,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAK3D,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;gBAEtB,SAAS,EAAE,MAAM;IAI7B;;;OAGG;IACG,WAAW,CACf,KAAK,EAAE,IAAI,CAAC,WAAW,EAAE,YAAY,GAAG,cAAc,CAAC,GACtD,OAAO,CAAC,MAAM,CAAC;IA6BlB;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;IAkBvC;;;OAGG;IACG,gBAAgB,CACpB,SAAS,EAAE,MAAM,EAAE,EACnB,MAAM,EAAE,UAAU,EAClB,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,IAAI,CAAC;IAoChB;;OAEG;IACG,cAAc,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAYhE;;OAEG;IACG,YAAY,IAAI,OAAO,CAAC;QAC5B,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,MAAM,CAAC;QAChB,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;IAyBF;;OAEG;IACH,WAAW,IAAI,MAAM;IAIrB;;OAEG;IACH,MAAM,IAAI,OAAO;CAGlB"}
@@ -1,152 +0,0 @@
1
- /**
2
- * Delta Writer
3
- *
4
- * Handles incremental metrics storage in JSONL format.
5
- * Stores metrics in: ~/.codemie/metrics/sessions/{sessionId}_metrics.jsonl
6
- * Provides O(1) append operations and efficient filtering by sync status.
7
- */
8
- import { appendFile, readFile, writeFile, mkdir } from 'fs/promises';
9
- import { existsSync } from 'fs';
10
- import { dirname } from 'path';
11
- import { logger } from '../../../../utils/logger.js';
12
- import { getSessionMetricsPath } from '../../metrics-config.js';
13
- import { createErrorContext, formatErrorForLog } from '../../../../utils/error-context.js';
14
- export class DeltaWriter {
15
- filePath;
16
- constructor(sessionId) {
17
- this.filePath = getSessionMetricsPath(sessionId);
18
- }
19
- /**
20
- * Append new delta to JSONL file (O(1) operation)
21
- * Returns the recordId from the delta
22
- */
23
- async appendDelta(delta) {
24
- try {
25
- // Ensure directory exists
26
- const dir = dirname(this.filePath);
27
- if (!existsSync(dir)) {
28
- await mkdir(dir, { recursive: true });
29
- }
30
- // Create full delta record (recordId already set from message UUID)
31
- const fullDelta = {
32
- ...delta,
33
- syncStatus: 'pending',
34
- syncAttempts: 0
35
- };
36
- // Append to JSONL
37
- const line = JSON.stringify(fullDelta) + '\n';
38
- await appendFile(this.filePath, line, 'utf-8');
39
- logger.debug(`[DeltaWriter] Appended delta: ${delta.recordId}`);
40
- return delta.recordId;
41
- }
42
- catch (error) {
43
- const errorContext = createErrorContext(error);
44
- logger.error('[DeltaWriter] Failed to append delta', formatErrorForLog(errorContext));
45
- throw error;
46
- }
47
- }
48
- /**
49
- * Read all deltas from JSONL file
50
- */
51
- async readAll() {
52
- try {
53
- if (!existsSync(this.filePath)) {
54
- return [];
55
- }
56
- const content = await readFile(this.filePath, 'utf-8');
57
- const lines = content.trim().split('\n').filter(line => line.length > 0);
58
- return lines.map(line => JSON.parse(line));
59
- }
60
- catch (error) {
61
- const errorContext = createErrorContext(error);
62
- logger.error('[DeltaWriter] Failed to read deltas', formatErrorForLog(errorContext));
63
- throw error;
64
- }
65
- }
66
- /**
67
- * Update sync status for specific records
68
- * This requires rewriting the entire file
69
- */
70
- async updateSyncStatus(recordIds, status, error) {
71
- try {
72
- // Read all deltas
73
- const deltas = await this.readAll();
74
- // Update matching records
75
- const recordIdSet = new Set(recordIds);
76
- const updatedDeltas = deltas.map(delta => {
77
- if (recordIdSet.has(delta.recordId)) {
78
- return {
79
- ...delta,
80
- syncStatus: status,
81
- syncedAt: status === 'synced' ? Date.now() : delta.syncedAt,
82
- syncAttempts: delta.syncAttempts + 1,
83
- syncError: error
84
- };
85
- }
86
- return delta;
87
- });
88
- // Rewrite file
89
- const content = updatedDeltas
90
- .map(delta => JSON.stringify(delta))
91
- .join('\n') + '\n';
92
- await writeFile(this.filePath, content, 'utf-8');
93
- logger.debug(`[DeltaWriter] Updated sync status for ${recordIds.length} records to: ${status}`);
94
- }
95
- catch (error) {
96
- const errorContext = createErrorContext(error);
97
- logger.error('[DeltaWriter] Failed to update sync status', formatErrorForLog(errorContext));
98
- throw error;
99
- }
100
- }
101
- /**
102
- * Get deltas with specific sync status
103
- */
104
- async filterByStatus(status) {
105
- try {
106
- const allDeltas = await this.readAll();
107
- return allDeltas.filter(delta => delta.syncStatus === status);
108
- }
109
- catch (error) {
110
- const errorContext = createErrorContext(error);
111
- logger.error(`[DeltaWriter] Failed to filter by status ${status}`, formatErrorForLog(errorContext));
112
- throw error;
113
- }
114
- }
115
- /**
116
- * Get sync statistics
117
- */
118
- async getSyncStats() {
119
- try {
120
- const deltas = await this.readAll();
121
- const stats = {
122
- total: deltas.length,
123
- pending: 0,
124
- syncing: 0,
125
- synced: 0,
126
- failed: 0
127
- };
128
- for (const delta of deltas) {
129
- stats[delta.syncStatus]++;
130
- }
131
- return stats;
132
- }
133
- catch (error) {
134
- const errorContext = createErrorContext(error);
135
- logger.error('[DeltaWriter] Failed to get sync stats', formatErrorForLog(errorContext));
136
- throw error;
137
- }
138
- }
139
- /**
140
- * Get file path
141
- */
142
- getFilePath() {
143
- return this.filePath;
144
- }
145
- /**
146
- * Check if file exists
147
- */
148
- exists() {
149
- return existsSync(this.filePath);
150
- }
151
- }
152
- //# sourceMappingURL=DeltaWriter.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"DeltaWriter.js","sourceRoot":"","sources":["../../../../../src/agents/core/metrics/core/DeltaWriter.ts"],"names":[],"mappings":"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"}