@codemieai/code 0.0.28 → 0.0.30

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 (368) hide show
  1. package/README.md +8 -10
  2. package/bin/agent-executor.js +1 -1
  3. package/dist/agents/codemie-code/config.d.ts.map +1 -1
  4. package/dist/agents/codemie-code/config.js +0 -1
  5. package/dist/agents/codemie-code/config.js.map +1 -1
  6. package/dist/agents/core/AgentCLI.d.ts.map +1 -1
  7. package/dist/agents/core/AgentCLI.js +4 -8
  8. package/dist/agents/core/AgentCLI.js.map +1 -1
  9. package/dist/agents/core/BaseAgentAdapter.d.ts +17 -9
  10. package/dist/agents/core/BaseAgentAdapter.d.ts.map +1 -1
  11. package/dist/agents/core/BaseAgentAdapter.js +75 -67
  12. package/dist/agents/core/BaseAgentAdapter.js.map +1 -1
  13. package/dist/agents/core/extension/BaseExtensionInstaller.d.ts +258 -0
  14. package/dist/agents/core/extension/BaseExtensionInstaller.d.ts.map +1 -0
  15. package/dist/agents/core/extension/BaseExtensionInstaller.js +522 -0
  16. package/dist/agents/core/extension/BaseExtensionInstaller.js.map +1 -0
  17. package/dist/agents/core/lifecycle-helpers.d.ts.map +1 -1
  18. package/dist/agents/core/lifecycle-helpers.js +16 -2
  19. package/dist/agents/core/lifecycle-helpers.js.map +1 -1
  20. package/dist/agents/core/metrics/index.d.ts +0 -2
  21. package/dist/agents/core/metrics/index.d.ts.map +1 -1
  22. package/dist/agents/core/metrics/index.js +0 -3
  23. package/dist/agents/core/metrics/index.js.map +1 -1
  24. package/dist/agents/core/metrics/types.d.ts +4 -232
  25. package/dist/agents/core/metrics/types.d.ts.map +1 -1
  26. package/dist/agents/core/metrics/types.js +2 -2
  27. package/dist/agents/core/session/BaseProcessor.d.ts +72 -0
  28. package/dist/agents/core/session/BaseProcessor.d.ts.map +1 -0
  29. package/dist/agents/core/session/BaseProcessor.js +9 -0
  30. package/dist/agents/core/session/BaseProcessor.js.map +1 -0
  31. package/dist/agents/core/session/BaseSessionAdapter.d.ts +99 -0
  32. package/dist/agents/core/session/BaseSessionAdapter.d.ts.map +1 -0
  33. package/dist/agents/core/session/BaseSessionAdapter.js +9 -0
  34. package/dist/agents/core/session/BaseSessionAdapter.js.map +1 -0
  35. package/dist/agents/core/session/SessionStore.d.ts +23 -0
  36. package/dist/agents/core/session/SessionStore.d.ts.map +1 -0
  37. package/dist/agents/core/session/SessionStore.js +75 -0
  38. package/dist/agents/core/session/SessionStore.js.map +1 -0
  39. package/dist/agents/core/session/session-config.d.ts +27 -0
  40. package/dist/agents/core/session/session-config.d.ts.map +1 -0
  41. package/dist/agents/core/session/session-config.js +61 -0
  42. package/dist/agents/core/session/session-config.js.map +1 -0
  43. package/dist/agents/core/session/types.d.ts +87 -0
  44. package/dist/agents/core/session/types.d.ts.map +1 -0
  45. package/dist/agents/core/session/types.js +8 -0
  46. package/dist/agents/core/session/types.js.map +1 -0
  47. package/dist/agents/core/session/utils/jsonl-reader.d.ts +15 -0
  48. package/dist/agents/core/session/utils/jsonl-reader.d.ts.map +1 -0
  49. package/dist/agents/core/session/utils/jsonl-reader.js +33 -0
  50. package/dist/agents/core/session/utils/jsonl-reader.js.map +1 -0
  51. package/dist/agents/core/session/utils/jsonl-writer.d.ts +26 -0
  52. package/dist/agents/core/session/utils/jsonl-writer.d.ts.map +1 -0
  53. package/dist/agents/core/session/utils/jsonl-writer.js +56 -0
  54. package/dist/agents/core/session/utils/jsonl-writer.js.map +1 -0
  55. package/dist/agents/core/types.d.ts +78 -11
  56. package/dist/agents/core/types.d.ts.map +1 -1
  57. package/dist/agents/plugins/claude/claude-message-types.d.ts +74 -0
  58. package/dist/agents/plugins/claude/claude-message-types.d.ts.map +1 -0
  59. package/dist/agents/plugins/claude/claude-message-types.js +8 -0
  60. package/dist/agents/plugins/claude/claude-message-types.js.map +1 -0
  61. package/dist/agents/plugins/claude/claude.plugin-installer.d.ts +53 -0
  62. package/dist/agents/plugins/claude/claude.plugin-installer.d.ts.map +1 -0
  63. package/dist/agents/plugins/claude/claude.plugin-installer.js +63 -0
  64. package/dist/agents/plugins/claude/claude.plugin-installer.js.map +1 -0
  65. package/dist/agents/plugins/claude/claude.plugin.d.ts +26 -0
  66. package/dist/agents/plugins/claude/claude.plugin.d.ts.map +1 -0
  67. package/dist/agents/plugins/{claude.plugin.js → claude/claude.plugin.js} +20 -11
  68. package/dist/agents/plugins/claude/claude.plugin.js.map +1 -0
  69. package/dist/agents/plugins/claude/claude.session.d.ts +60 -0
  70. package/dist/agents/plugins/claude/claude.session.d.ts.map +1 -0
  71. package/dist/agents/plugins/claude/claude.session.js +339 -0
  72. package/dist/agents/plugins/claude/claude.session.js.map +1 -0
  73. package/dist/agents/plugins/claude/plugin/.claude-plugin/local-install.json +15 -0
  74. package/dist/agents/plugins/claude/plugin/.claude-plugin/plugin.json +9 -0
  75. package/dist/agents/plugins/claude/plugin/README.md +299 -0
  76. package/dist/agents/plugins/claude/plugin/claude-templates/README.md +539 -0
  77. package/dist/agents/plugins/claude/plugin/claude-templates/templates/CLAUDE.md.template +511 -0
  78. package/dist/agents/plugins/claude/plugin/claude-templates/templates/INDEX.md +205 -0
  79. package/dist/agents/plugins/claude/plugin/claude-templates/templates/TEMPLATE_SIZES.md +74 -0
  80. package/dist/agents/plugins/claude/plugin/claude-templates/templates/guides/api/api-patterns.md.template +207 -0
  81. package/dist/agents/plugins/claude/plugin/claude-templates/templates/guides/architecture/layered-architecture.md.template +143 -0
  82. package/dist/agents/plugins/claude/plugin/claude-templates/templates/guides/architecture/project-structure.md.template +127 -0
  83. package/dist/agents/plugins/claude/plugin/claude-templates/templates/guides/data/database-patterns.md.template +168 -0
  84. package/dist/agents/plugins/claude/plugin/claude-templates/templates/guides/development/development-practices.md.template +210 -0
  85. package/dist/agents/plugins/claude/plugin/claude-templates/templates/guides/integration/external-integrations.md.template +160 -0
  86. package/dist/agents/plugins/claude/plugin/claude-templates/templates/guides/security/security-practices.md.template +170 -0
  87. package/dist/agents/plugins/claude/plugin/claude-templates/templates/guides/standards/code-quality.md.template +150 -0
  88. package/dist/agents/plugins/claude/plugin/claude-templates/templates/guides/standards/git-workflow.md.template +177 -0
  89. package/dist/agents/plugins/claude/plugin/claude-templates/templates/guides/testing/testing-patterns.md.template +143 -0
  90. package/dist/agents/plugins/claude/plugin/commands/README.md +0 -0
  91. package/dist/agents/plugins/claude/plugin/commands/codemie-catchup.md +10 -0
  92. package/dist/agents/plugins/claude/plugin/commands/codemie-init.md +731 -0
  93. package/dist/agents/plugins/claude/plugin/commands/memory-add.md +44 -0
  94. package/dist/agents/plugins/claude/plugin/commands/memory-init.md +18 -0
  95. package/dist/agents/plugins/claude/plugin/commands/memory-refresh.md +54 -0
  96. package/dist/agents/plugins/claude/plugin/hooks/hooks.json +71 -0
  97. package/dist/agents/plugins/claude/session/processors/claude.conversations-processor.d.ts +51 -0
  98. package/dist/agents/plugins/claude/session/processors/claude.conversations-processor.d.ts.map +1 -0
  99. package/dist/agents/plugins/claude/session/processors/claude.conversations-processor.js +840 -0
  100. package/dist/agents/plugins/claude/session/processors/claude.conversations-processor.js.map +1 -0
  101. package/dist/agents/plugins/claude/session/processors/claude.metrics-processor.d.ts +37 -0
  102. package/dist/agents/plugins/claude/session/processors/claude.metrics-processor.d.ts.map +1 -0
  103. package/dist/agents/plugins/claude/session/processors/claude.metrics-processor.js +275 -0
  104. package/dist/agents/plugins/claude/session/processors/claude.metrics-processor.js.map +1 -0
  105. package/dist/agents/plugins/gemini/extension/README.md +88 -0
  106. package/dist/agents/plugins/gemini/extension/gemini-extension.json +11 -0
  107. package/dist/agents/plugins/gemini/extension/hooks/hooks.json +65 -0
  108. package/dist/agents/plugins/gemini/gemini.extension-installer.d.ts +49 -0
  109. package/dist/agents/plugins/gemini/gemini.extension-installer.d.ts.map +1 -0
  110. package/dist/agents/plugins/gemini/gemini.extension-installer.js +63 -0
  111. package/dist/agents/plugins/gemini/gemini.extension-installer.js.map +1 -0
  112. package/dist/agents/plugins/gemini/gemini.hook-transformer.d.ts +43 -0
  113. package/dist/agents/plugins/gemini/gemini.hook-transformer.d.ts.map +1 -0
  114. package/dist/agents/plugins/gemini/gemini.hook-transformer.js +57 -0
  115. package/dist/agents/plugins/gemini/gemini.hook-transformer.js.map +1 -0
  116. package/dist/agents/plugins/gemini/gemini.plugin.d.ts +32 -0
  117. package/dist/agents/plugins/gemini/gemini.plugin.d.ts.map +1 -0
  118. package/dist/agents/plugins/gemini/gemini.plugin.js +136 -0
  119. package/dist/agents/plugins/gemini/gemini.plugin.js.map +1 -0
  120. package/dist/agents/plugins/gemini/gemini.session-adapter.d.ts +68 -0
  121. package/dist/agents/plugins/gemini/gemini.session-adapter.d.ts.map +1 -0
  122. package/dist/agents/plugins/gemini/gemini.session-adapter.js +268 -0
  123. package/dist/agents/plugins/gemini/gemini.session-adapter.js.map +1 -0
  124. package/dist/agents/plugins/gemini/session/processors/gemini.conversations-processor.d.ts +36 -0
  125. package/dist/agents/plugins/gemini/session/processors/gemini.conversations-processor.d.ts.map +1 -0
  126. package/dist/agents/plugins/gemini/session/processors/gemini.conversations-processor.js +186 -0
  127. package/dist/agents/plugins/gemini/session/processors/gemini.conversations-processor.js.map +1 -0
  128. package/dist/agents/plugins/gemini/session/processors/gemini.metrics-processor.d.ts +32 -0
  129. package/dist/agents/plugins/gemini/session/processors/gemini.metrics-processor.d.ts.map +1 -0
  130. package/dist/agents/plugins/gemini/session/processors/gemini.metrics-processor.js +193 -0
  131. package/dist/agents/plugins/gemini/session/processors/gemini.metrics-processor.js.map +1 -0
  132. package/dist/agents/plugins/gemini/session/utils/token-aggregator.d.ts +26 -0
  133. package/dist/agents/plugins/gemini/session/utils/token-aggregator.d.ts.map +1 -0
  134. package/dist/agents/plugins/gemini/session/utils/token-aggregator.js +38 -0
  135. package/dist/agents/plugins/gemini/session/utils/token-aggregator.js.map +1 -0
  136. package/dist/agents/plugins/gemini/session/utils/tool-aggregator.d.ts +33 -0
  137. package/dist/agents/plugins/gemini/session/utils/tool-aggregator.d.ts.map +1 -0
  138. package/dist/agents/plugins/gemini/session/utils/tool-aggregator.js +58 -0
  139. package/dist/agents/plugins/gemini/session/utils/tool-aggregator.js.map +1 -0
  140. package/dist/agents/plugins/gemini/session/utils/turn-detector.d.ts +70 -0
  141. package/dist/agents/plugins/gemini/session/utils/turn-detector.d.ts.map +1 -0
  142. package/dist/agents/plugins/gemini/session/utils/turn-detector.js +86 -0
  143. package/dist/agents/plugins/gemini/session/utils/turn-detector.js.map +1 -0
  144. package/dist/agents/registry.d.ts +7 -2
  145. package/dist/agents/registry.d.ts.map +1 -1
  146. package/dist/agents/registry.js +17 -8
  147. package/dist/agents/registry.js.map +1 -1
  148. package/dist/cli/commands/analytics/data-loader.d.ts +1 -1
  149. package/dist/cli/commands/analytics/data-loader.js +1 -1
  150. package/dist/cli/commands/analytics/index.js +1 -1
  151. package/dist/cli/commands/analytics/index.js.map +1 -1
  152. package/dist/cli/commands/doctor/checks/PythonCheck.d.ts +13 -0
  153. package/dist/cli/commands/doctor/checks/PythonCheck.d.ts.map +1 -1
  154. package/dist/cli/commands/doctor/checks/PythonCheck.js +90 -31
  155. package/dist/cli/commands/doctor/checks/PythonCheck.js.map +1 -1
  156. package/dist/cli/commands/hook.d.ts +7 -0
  157. package/dist/cli/commands/hook.d.ts.map +1 -0
  158. package/dist/cli/commands/hook.js +792 -0
  159. package/dist/cli/commands/hook.js.map +1 -0
  160. package/dist/cli/commands/setup.d.ts.map +1 -1
  161. package/dist/cli/commands/setup.js +3 -4
  162. package/dist/cli/commands/setup.js.map +1 -1
  163. package/dist/cli/commands/update.d.ts.map +1 -1
  164. package/dist/cli/commands/update.js +2 -1
  165. package/dist/cli/commands/update.js.map +1 -1
  166. package/dist/cli/first-time.d.ts +4 -0
  167. package/dist/cli/first-time.d.ts.map +1 -1
  168. package/dist/cli/first-time.js +26 -13
  169. package/dist/cli/first-time.js.map +1 -1
  170. package/dist/cli/index.js +2 -0
  171. package/dist/cli/index.js.map +1 -1
  172. package/dist/frameworks/core/types.d.ts +1 -1
  173. package/dist/frameworks/plugins/speckit.plugin.d.ts.map +1 -1
  174. package/dist/frameworks/plugins/speckit.plugin.js +1 -2
  175. package/dist/frameworks/plugins/speckit.plugin.js.map +1 -1
  176. package/dist/migrations/002-consolidate-sessions.migration.d.ts +50 -0
  177. package/dist/migrations/002-consolidate-sessions.migration.d.ts.map +1 -0
  178. package/dist/migrations/002-consolidate-sessions.migration.js +220 -0
  179. package/dist/migrations/002-consolidate-sessions.migration.js.map +1 -0
  180. package/dist/migrations/index.d.ts +1 -0
  181. package/dist/migrations/index.d.ts.map +1 -1
  182. package/dist/migrations/index.js +3 -2
  183. package/dist/migrations/index.js.map +1 -1
  184. package/dist/providers/core/types.d.ts +1 -1
  185. package/dist/providers/plugins/ollama/ollama.template.d.ts.map +1 -1
  186. package/dist/providers/plugins/ollama/ollama.template.js +2 -10
  187. package/dist/providers/plugins/ollama/ollama.template.js.map +1 -1
  188. package/dist/providers/plugins/sso/index.d.ts +1 -1
  189. package/dist/providers/plugins/sso/index.d.ts.map +1 -1
  190. package/dist/providers/plugins/sso/index.js +1 -1
  191. package/dist/providers/plugins/sso/index.js.map +1 -1
  192. package/dist/providers/plugins/sso/proxy/plugins/index.d.ts +1 -1
  193. package/dist/providers/plugins/sso/proxy/plugins/index.d.ts.map +1 -1
  194. package/dist/providers/plugins/sso/proxy/plugins/index.js +3 -3
  195. package/dist/providers/plugins/sso/proxy/plugins/index.js.map +1 -1
  196. package/dist/providers/plugins/sso/proxy/plugins/sso.session-sync.plugin.d.ts +40 -0
  197. package/dist/providers/plugins/sso/proxy/plugins/sso.session-sync.plugin.d.ts.map +1 -0
  198. package/dist/providers/plugins/sso/proxy/plugins/sso.session-sync.plugin.js +194 -0
  199. package/dist/providers/plugins/sso/proxy/plugins/sso.session-sync.plugin.js.map +1 -0
  200. package/dist/providers/plugins/sso/proxy/proxy-http-client.d.ts +1 -0
  201. package/dist/providers/plugins/sso/proxy/proxy-http-client.d.ts.map +1 -1
  202. package/dist/providers/plugins/sso/proxy/proxy-http-client.js +40 -6
  203. package/dist/providers/plugins/sso/proxy/proxy-http-client.js.map +1 -1
  204. package/dist/providers/plugins/sso/session/BaseProcessor.d.ts +72 -0
  205. package/dist/providers/plugins/sso/session/BaseProcessor.d.ts.map +1 -0
  206. package/dist/providers/plugins/sso/session/BaseProcessor.js +9 -0
  207. package/dist/providers/plugins/sso/session/BaseProcessor.js.map +1 -0
  208. package/dist/providers/plugins/sso/session/BaseSessionAdapter.d.ts +99 -0
  209. package/dist/providers/plugins/sso/session/BaseSessionAdapter.d.ts.map +1 -0
  210. package/dist/providers/plugins/sso/session/BaseSessionAdapter.js +9 -0
  211. package/dist/providers/plugins/sso/session/BaseSessionAdapter.js.map +1 -0
  212. package/dist/providers/plugins/sso/session/SessionSyncer.d.ts +36 -0
  213. package/dist/providers/plugins/sso/session/SessionSyncer.d.ts.map +1 -0
  214. package/dist/providers/plugins/sso/session/SessionSyncer.js +140 -0
  215. package/dist/providers/plugins/sso/session/SessionSyncer.js.map +1 -0
  216. package/dist/providers/plugins/sso/session/processors/conversations/conversation-api-client.d.ts +26 -0
  217. package/dist/providers/plugins/sso/session/processors/conversations/conversation-api-client.d.ts.map +1 -0
  218. package/dist/providers/plugins/sso/session/processors/conversations/conversation-api-client.js +146 -0
  219. package/dist/providers/plugins/sso/session/processors/conversations/conversation-api-client.js.map +1 -0
  220. package/dist/providers/plugins/sso/session/processors/conversations/conversation-sync-processor.d.ts +23 -0
  221. package/dist/providers/plugins/sso/session/processors/conversations/conversation-sync-processor.d.ts.map +1 -0
  222. package/dist/providers/plugins/sso/session/processors/conversations/conversation-sync-processor.js +171 -0
  223. package/dist/providers/plugins/sso/session/processors/conversations/conversation-sync-processor.js.map +1 -0
  224. package/dist/providers/plugins/sso/session/processors/conversations/conversation-types.d.ts +69 -0
  225. package/dist/providers/plugins/sso/session/processors/conversations/conversation-types.d.ts.map +1 -0
  226. package/dist/providers/plugins/sso/session/processors/conversations/conversation-types.js +7 -0
  227. package/dist/providers/plugins/sso/session/processors/conversations/conversation-types.js.map +1 -0
  228. package/dist/providers/plugins/sso/session/processors/metrics/MetricsWriter.d.ts +30 -0
  229. package/dist/providers/plugins/sso/session/processors/metrics/MetricsWriter.d.ts.map +1 -0
  230. package/dist/providers/plugins/sso/session/processors/metrics/MetricsWriter.js +79 -0
  231. package/dist/providers/plugins/sso/session/processors/metrics/MetricsWriter.js.map +1 -0
  232. package/dist/providers/plugins/sso/{metrics/sync/sso.metrics-aggregator.d.ts → session/processors/metrics/metrics-aggregator.d.ts} +6 -5
  233. package/dist/providers/plugins/sso/session/processors/metrics/metrics-aggregator.d.ts.map +1 -0
  234. package/dist/providers/plugins/sso/{metrics/sync/sso.metrics-aggregator.js → session/processors/metrics/metrics-aggregator.js} +20 -12
  235. package/dist/providers/plugins/sso/session/processors/metrics/metrics-aggregator.js.map +1 -0
  236. package/dist/providers/plugins/sso/{metrics/sync/sso.metrics-sender.d.ts → session/processors/metrics/metrics-api-client.d.ts} +18 -11
  237. package/dist/providers/plugins/sso/session/processors/metrics/metrics-api-client.d.ts.map +1 -0
  238. package/dist/providers/plugins/sso/{metrics/sync/sso.metrics-sender.js → session/processors/metrics/metrics-api-client.js} +143 -15
  239. package/dist/providers/plugins/sso/session/processors/metrics/metrics-api-client.js.map +1 -0
  240. package/dist/providers/plugins/sso/{metrics/sync/sso.metrics-post-processor.d.ts → session/processors/metrics/metrics-post-processor.d.ts} +3 -3
  241. package/dist/providers/plugins/sso/session/processors/metrics/metrics-post-processor.d.ts.map +1 -0
  242. package/dist/providers/plugins/sso/{metrics/sync/sso.metrics-post-processor.js → session/processors/metrics/metrics-post-processor.js} +3 -3
  243. package/dist/providers/plugins/sso/session/processors/metrics/metrics-post-processor.js.map +1 -0
  244. package/dist/providers/plugins/sso/session/processors/metrics/metrics-sync-processor.d.ts +24 -0
  245. package/dist/providers/plugins/sso/session/processors/metrics/metrics-sync-processor.d.ts.map +1 -0
  246. package/dist/providers/plugins/sso/{metrics/sync/sso.metrics-sync.plugin.js → session/processors/metrics/metrics-sync-processor.js} +94 -165
  247. package/dist/providers/plugins/sso/session/processors/metrics/metrics-sync-processor.js.map +1 -0
  248. package/dist/providers/plugins/sso/{metrics/sync/sso.metrics-types.d.ts → session/processors/metrics/metrics-types.d.ts} +2 -1
  249. package/dist/providers/plugins/sso/session/processors/metrics/metrics-types.d.ts.map +1 -0
  250. package/dist/providers/plugins/sso/{metrics/sync/sso.metrics-types.js → session/processors/metrics/metrics-types.js} +1 -1
  251. package/dist/providers/plugins/sso/session/processors/metrics/metrics-types.js.map +1 -0
  252. package/dist/providers/plugins/sso/session/utils/jsonl-reader.d.ts +15 -0
  253. package/dist/providers/plugins/sso/session/utils/jsonl-reader.d.ts.map +1 -0
  254. package/dist/providers/plugins/sso/session/utils/jsonl-reader.js +33 -0
  255. package/dist/providers/plugins/sso/session/utils/jsonl-reader.js.map +1 -0
  256. package/dist/providers/plugins/sso/session/utils/jsonl-writer.d.ts +26 -0
  257. package/dist/providers/plugins/sso/session/utils/jsonl-writer.d.ts.map +1 -0
  258. package/dist/providers/plugins/sso/{metrics/sync/sso.jsonl-writer.js → session/utils/jsonl-writer.js} +11 -27
  259. package/dist/providers/plugins/sso/session/utils/jsonl-writer.js.map +1 -0
  260. package/dist/providers/plugins/sso/sso.template.d.ts.map +1 -1
  261. package/dist/providers/plugins/sso/sso.template.js +71 -44
  262. package/dist/providers/plugins/sso/sso.template.js.map +1 -1
  263. package/dist/utils/file-operations.d.ts +20 -0
  264. package/dist/utils/file-operations.d.ts.map +1 -0
  265. package/dist/utils/file-operations.js +48 -0
  266. package/dist/utils/file-operations.js.map +1 -0
  267. package/dist/utils/logger.d.ts +2 -1
  268. package/dist/utils/logger.d.ts.map +1 -1
  269. package/dist/utils/logger.js +12 -4
  270. package/dist/utils/logger.js.map +1 -1
  271. package/dist/utils/paths.d.ts +20 -5
  272. package/dist/utils/paths.d.ts.map +1 -1
  273. package/dist/utils/paths.js +23 -5
  274. package/dist/utils/paths.js.map +1 -1
  275. package/dist/utils/processes.d.ts +2 -0
  276. package/dist/utils/processes.d.ts.map +1 -1
  277. package/dist/utils/processes.js +6 -1
  278. package/dist/utils/processes.js.map +1 -1
  279. package/package.json +9 -9
  280. package/scripts/copy-plugins.js +57 -0
  281. package/scripts/license-check.js +23 -0
  282. package/bin/codemie-codex.js +0 -18
  283. package/bin/codemie-deepagents.js +0 -18
  284. package/dist/agents/core/BaseMetricsAdapter.d.ts +0 -165
  285. package/dist/agents/core/BaseMetricsAdapter.d.ts.map +0 -1
  286. package/dist/agents/core/BaseMetricsAdapter.js +0 -308
  287. package/dist/agents/core/BaseMetricsAdapter.js.map +0 -1
  288. package/dist/agents/core/metrics/MetricsOrchestrator.d.ts +0 -81
  289. package/dist/agents/core/metrics/MetricsOrchestrator.d.ts.map +0 -1
  290. package/dist/agents/core/metrics/MetricsOrchestrator.js +0 -417
  291. package/dist/agents/core/metrics/MetricsOrchestrator.js.map +0 -1
  292. package/dist/agents/core/metrics/core/DeltaWriter.d.ts +0 -49
  293. package/dist/agents/core/metrics/core/DeltaWriter.d.ts.map +0 -1
  294. package/dist/agents/core/metrics/core/DeltaWriter.js +0 -152
  295. package/dist/agents/core/metrics/core/DeltaWriter.js.map +0 -1
  296. package/dist/agents/core/metrics/core/FileSnapshotter.d.ts +0 -22
  297. package/dist/agents/core/metrics/core/FileSnapshotter.d.ts.map +0 -1
  298. package/dist/agents/core/metrics/core/FileSnapshotter.js +0 -74
  299. package/dist/agents/core/metrics/core/FileSnapshotter.js.map +0 -1
  300. package/dist/agents/core/metrics/core/SessionCorrelator.d.ts +0 -34
  301. package/dist/agents/core/metrics/core/SessionCorrelator.d.ts.map +0 -1
  302. package/dist/agents/core/metrics/core/SessionCorrelator.js +0 -157
  303. package/dist/agents/core/metrics/core/SessionCorrelator.js.map +0 -1
  304. package/dist/agents/core/metrics/core/SyncStateManager.d.ts +0 -69
  305. package/dist/agents/core/metrics/core/SyncStateManager.d.ts.map +0 -1
  306. package/dist/agents/core/metrics/core/SyncStateManager.js +0 -283
  307. package/dist/agents/core/metrics/core/SyncStateManager.js.map +0 -1
  308. package/dist/agents/core/metrics/session/SessionStore.d.ts +0 -43
  309. package/dist/agents/core/metrics/session/SessionStore.d.ts.map +0 -1
  310. package/dist/agents/core/metrics/session/SessionStore.js +0 -146
  311. package/dist/agents/core/metrics/session/SessionStore.js.map +0 -1
  312. package/dist/agents/core/metrics-config.d.ts +0 -38
  313. package/dist/agents/core/metrics-config.d.ts.map +0 -1
  314. package/dist/agents/core/metrics-config.js +0 -96
  315. package/dist/agents/core/metrics-config.js.map +0 -1
  316. package/dist/agents/plugins/claude.metrics.d.ts +0 -102
  317. package/dist/agents/plugins/claude.metrics.d.ts.map +0 -1
  318. package/dist/agents/plugins/claude.metrics.js +0 -656
  319. package/dist/agents/plugins/claude.metrics.js.map +0 -1
  320. package/dist/agents/plugins/claude.plugin.d.ts +0 -19
  321. package/dist/agents/plugins/claude.plugin.d.ts.map +0 -1
  322. package/dist/agents/plugins/claude.plugin.js.map +0 -1
  323. package/dist/agents/plugins/codex.metrics.d.ts +0 -69
  324. package/dist/agents/plugins/codex.metrics.d.ts.map +0 -1
  325. package/dist/agents/plugins/codex.metrics.js +0 -483
  326. package/dist/agents/plugins/codex.metrics.js.map +0 -1
  327. package/dist/agents/plugins/codex.plugin.d.ts +0 -21
  328. package/dist/agents/plugins/codex.plugin.d.ts.map +0 -1
  329. package/dist/agents/plugins/codex.plugin.js +0 -222
  330. package/dist/agents/plugins/codex.plugin.js.map +0 -1
  331. package/dist/agents/plugins/deepagents.plugin.d.ts +0 -21
  332. package/dist/agents/plugins/deepagents.plugin.d.ts.map +0 -1
  333. package/dist/agents/plugins/deepagents.plugin.js +0 -104
  334. package/dist/agents/plugins/deepagents.plugin.js.map +0 -1
  335. package/dist/agents/plugins/gemini.metrics.d.ts +0 -99
  336. package/dist/agents/plugins/gemini.metrics.d.ts.map +0 -1
  337. package/dist/agents/plugins/gemini.metrics.js +0 -475
  338. package/dist/agents/plugins/gemini.metrics.js.map +0 -1
  339. package/dist/agents/plugins/gemini.plugin.d.ts +0 -16
  340. package/dist/agents/plugins/gemini.plugin.d.ts.map +0 -1
  341. package/dist/agents/plugins/gemini.plugin.js +0 -80
  342. package/dist/agents/plugins/gemini.plugin.js.map +0 -1
  343. package/dist/agents/plugins/history-parser.d.ts +0 -52
  344. package/dist/agents/plugins/history-parser.d.ts.map +0 -1
  345. package/dist/agents/plugins/history-parser.js +0 -155
  346. package/dist/agents/plugins/history-parser.js.map +0 -1
  347. package/dist/providers/plugins/sso/metrics/sync/sso.jsonl-writer.d.ts +0 -28
  348. package/dist/providers/plugins/sso/metrics/sync/sso.jsonl-writer.d.ts.map +0 -1
  349. package/dist/providers/plugins/sso/metrics/sync/sso.jsonl-writer.js.map +0 -1
  350. package/dist/providers/plugins/sso/metrics/sync/sso.lifecycle-handler.d.ts +0 -62
  351. package/dist/providers/plugins/sso/metrics/sync/sso.lifecycle-handler.d.ts.map +0 -1
  352. package/dist/providers/plugins/sso/metrics/sync/sso.lifecycle-handler.js +0 -157
  353. package/dist/providers/plugins/sso/metrics/sync/sso.lifecycle-handler.js.map +0 -1
  354. package/dist/providers/plugins/sso/metrics/sync/sso.metrics-aggregator.d.ts.map +0 -1
  355. package/dist/providers/plugins/sso/metrics/sync/sso.metrics-aggregator.js.map +0 -1
  356. package/dist/providers/plugins/sso/metrics/sync/sso.metrics-api-client.d.ts +0 -32
  357. package/dist/providers/plugins/sso/metrics/sync/sso.metrics-api-client.d.ts.map +0 -1
  358. package/dist/providers/plugins/sso/metrics/sync/sso.metrics-api-client.js +0 -159
  359. package/dist/providers/plugins/sso/metrics/sync/sso.metrics-api-client.js.map +0 -1
  360. package/dist/providers/plugins/sso/metrics/sync/sso.metrics-post-processor.d.ts.map +0 -1
  361. package/dist/providers/plugins/sso/metrics/sync/sso.metrics-post-processor.js.map +0 -1
  362. package/dist/providers/plugins/sso/metrics/sync/sso.metrics-sender.d.ts.map +0 -1
  363. package/dist/providers/plugins/sso/metrics/sync/sso.metrics-sender.js.map +0 -1
  364. package/dist/providers/plugins/sso/metrics/sync/sso.metrics-sync.plugin.d.ts +0 -36
  365. package/dist/providers/plugins/sso/metrics/sync/sso.metrics-sync.plugin.d.ts.map +0 -1
  366. package/dist/providers/plugins/sso/metrics/sync/sso.metrics-sync.plugin.js.map +0 -1
  367. package/dist/providers/plugins/sso/metrics/sync/sso.metrics-types.d.ts.map +0 -1
  368. package/dist/providers/plugins/sso/metrics/sync/sso.metrics-types.js.map +0 -1
@@ -0,0 +1,63 @@
1
+ /**
2
+ * Claude Plugin Installer
3
+ *
4
+ * Handles automatic installation of Claude plugin to user's home directory
5
+ * for SSO provider integration.
6
+ *
7
+ * Extends BaseExtensionInstaller to provide Claude-specific paths.
8
+ * All installation logic is inherited from the base class.
9
+ *
10
+ * @module agents/plugins/claude/plugin-installer
11
+ */
12
+ import { join, dirname } from 'path';
13
+ import { fileURLToPath } from 'url';
14
+ import { homedir } from 'os';
15
+ import { BaseExtensionInstaller } from '../../core/extension/BaseExtensionInstaller.js';
16
+ /**
17
+ * Claude Plugin Installer
18
+ *
19
+ * Installs CodeMie plugin for Claude Code to enable session tracking,
20
+ * metrics collection, and conversation sync.
21
+ *
22
+ * Reduces from 260 lines to ~40 lines by extending BaseExtensionInstaller.
23
+ */
24
+ export class ClaudePluginInstaller extends BaseExtensionInstaller {
25
+ /**
26
+ * Constructor
27
+ * @param metadata - Agent metadata containing name, displayName, etc.
28
+ */
29
+ constructor(metadata) {
30
+ super(metadata.name); // Pass agent name to parent
31
+ }
32
+ /**
33
+ * Get the source plugin directory path
34
+ * Works in both development and npm package contexts
35
+ */
36
+ getSourcePath() {
37
+ const currentFile = fileURLToPath(import.meta.url);
38
+ const claudePluginDir = dirname(currentFile);
39
+ return join(claudePluginDir, 'plugin');
40
+ }
41
+ /**
42
+ * Get the target installation directory
43
+ * @returns ~/.codemie/claude-plugin
44
+ */
45
+ getTargetPath() {
46
+ return join(homedir(), '.codemie', 'claude-plugin');
47
+ }
48
+ /**
49
+ * Get the manifest file path (relative to base directory)
50
+ * @returns .claude-plugin/plugin.json
51
+ */
52
+ getManifestPath() {
53
+ return '.claude-plugin/plugin.json';
54
+ }
55
+ /**
56
+ * Get list of critical files that must exist after installation
57
+ * @returns Array of relative file paths
58
+ */
59
+ getCriticalFiles() {
60
+ return ['.claude-plugin/plugin.json', 'hooks/hooks.json', 'README.md'];
61
+ }
62
+ }
63
+ //# sourceMappingURL=claude.plugin-installer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claude.plugin-installer.js","sourceRoot":"","sources":["../../../../src/agents/plugins/claude/claude.plugin-installer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAC7B,OAAO,EAAE,sBAAsB,EAAE,MAAM,gDAAgD,CAAC;AAQxF;;;;;;;GAOG;AACH,MAAM,OAAO,qBAAsB,SAAQ,sBAAsB;IAC/D;;;OAGG;IACH,YAAY,QAAuB;QACjC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,4BAA4B;IACpD,CAAC;IAED;;;OAGG;IACO,aAAa;QACrB,MAAM,WAAW,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACnD,MAAM,eAAe,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;QAC7C,OAAO,IAAI,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAC;IACzC,CAAC;IAED;;;OAGG;IACH,aAAa;QACX,OAAO,IAAI,CAAC,OAAO,EAAE,EAAE,UAAU,EAAE,eAAe,CAAC,CAAC;IACtD,CAAC;IAED;;;OAGG;IACO,eAAe;QACvB,OAAO,4BAA4B,CAAC;IACtC,CAAC;IAED;;;OAGG;IACO,gBAAgB;QACxB,OAAO,CAAC,4BAA4B,EAAE,kBAAkB,EAAE,WAAW,CAAC,CAAC;IACzE,CAAC;CACF"}
@@ -0,0 +1,26 @@
1
+ import { AgentMetadata } from '../../core/types.js';
2
+ import { BaseAgentAdapter } from '../../core/BaseAgentAdapter.js';
3
+ import type { SessionAdapter } from '../../core/session/BaseSessionAdapter.js';
4
+ import type { BaseExtensionInstaller } from '../../core/extension/BaseExtensionInstaller.js';
5
+ /**
6
+ * Claude Code Plugin Metadata
7
+ */
8
+ export declare const ClaudePluginMetadata: AgentMetadata;
9
+ /**
10
+ * Claude Code Adapter
11
+ */
12
+ export declare class ClaudePlugin extends BaseAgentAdapter {
13
+ private sessionAdapter;
14
+ private extensionInstaller;
15
+ constructor();
16
+ /**
17
+ * Get session adapter for this agent (used by unified session sync)
18
+ */
19
+ getSessionAdapter(): SessionAdapter;
20
+ /**
21
+ * Get extension installer for this agent
22
+ * Returns installer to handle plugin installation
23
+ */
24
+ getExtensionInstaller(): BaseExtensionInstaller;
25
+ }
26
+ //# sourceMappingURL=claude.plugin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claude.plugin.d.ts","sourceRoot":"","sources":["../../../../src/agents/plugins/claude/claude.plugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAElE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0CAA0C,CAAC;AAE/E,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,gDAAgD,CAAC;AAE7F;;GAEG;AACH,eAAO,MAAM,oBAAoB,EAAE,aA0DlC,CAAC;AAEF;;GAEG;AACH,qBAAa,YAAa,SAAQ,gBAAgB;IAChD,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,kBAAkB,CAAyB;;IAUnD;;OAEG;IACH,iBAAiB,IAAI,cAAc;IAInC;;;OAGG;IACH,qBAAqB,IAAI,sBAAsB;CAGhD"}
@@ -1,5 +1,6 @@
1
- import { BaseAgentAdapter } from '../core/BaseAgentAdapter.js';
2
- import { ClaudeMetricsAdapter } from './claude.metrics.js';
1
+ import { BaseAgentAdapter } from '../../core/BaseAgentAdapter.js';
2
+ import { ClaudeSessionAdapter } from './claude.session.js';
3
+ import { ClaudePluginInstaller } from './claude.plugin-installer.js';
3
4
  /**
4
5
  * Claude Code Plugin Metadata
5
6
  */
@@ -11,9 +12,7 @@ export const ClaudePluginMetadata = {
11
12
  cliCommand: 'claude',
12
13
  // Data paths (used by lifecycle hooks and analytics)
13
14
  dataPaths: {
14
- home: '.claude',
15
- sessions: 'projects',
16
- user_prompts: 'history.jsonl' // User prompt history
15
+ home: '.claude'
17
16
  },
18
17
  envMapping: {
19
18
  baseUrl: ['ANTHROPIC_BASE_URL'],
@@ -58,17 +57,27 @@ export const ClaudePluginMetadata = {
58
57
  * Claude Code Adapter
59
58
  */
60
59
  export class ClaudePlugin extends BaseAgentAdapter {
61
- metricsAdapter;
60
+ sessionAdapter;
61
+ extensionInstaller;
62
62
  constructor() {
63
63
  super(ClaudePluginMetadata);
64
- // Pass metadata to metrics adapter to avoid duplication
65
- this.metricsAdapter = new ClaudeMetricsAdapter('claude', ClaudePluginMetadata);
64
+ // Initialize session adapter with metadata for unified session sync
65
+ this.sessionAdapter = new ClaudeSessionAdapter(ClaudePluginMetadata);
66
+ // Initialize extension installer with metadata (agent name from metadata)
67
+ this.extensionInstaller = new ClaudePluginInstaller(ClaudePluginMetadata);
66
68
  }
67
69
  /**
68
- * Get metrics adapter for this agent
70
+ * Get session adapter for this agent (used by unified session sync)
69
71
  */
70
- getMetricsAdapter() {
71
- return this.metricsAdapter;
72
+ getSessionAdapter() {
73
+ return this.sessionAdapter;
74
+ }
75
+ /**
76
+ * Get extension installer for this agent
77
+ * Returns installer to handle plugin installation
78
+ */
79
+ getExtensionInstaller() {
80
+ return this.extensionInstaller;
72
81
  }
73
82
  }
74
83
  //# sourceMappingURL=claude.plugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claude.plugin.js","sourceRoot":"","sources":["../../../../src/agents/plugins/claude/claude.plugin.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAE3D,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAGrE;;GAEG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAkB;IACjD,IAAI,EAAE,QAAQ;IACd,WAAW,EAAE,aAAa;IAC1B,WAAW,EAAE,2CAA2C;IAExD,UAAU,EAAE,2BAA2B;IACvC,UAAU,EAAE,QAAQ;IAEpB,qDAAqD;IACrD,SAAS,EAAE;QACT,IAAI,EAAE,SAAS;KAChB;IAED,UAAU,EAAE;QACV,OAAO,EAAE,CAAC,oBAAoB,CAAC;QAC/B,MAAM,EAAE,CAAC,sBAAsB,CAAC;QAChC,KAAK,EAAE,CAAC,iBAAiB,CAAC;KAC3B;IAED,kBAAkB,EAAE,CAAC,SAAS,EAAE,YAAY,EAAE,SAAS,CAAC;IACxD,oBAAoB,EAAE,EAAE;IACxB,iBAAiB,EAAE,CAAC,mBAAmB,EAAE,eAAe,EAAE,SAAS,CAAC;IAEpE,SAAS,EAAE;QACT,OAAO,EAAE,IAAI;QACb,UAAU,EAAE,gBAAgB;KAC7B;IAED,YAAY,EAAE;QACZ,QAAQ,EAAE;YACR,IAAI,EAAE,MAAM;YACZ,MAAM,EAAE,IAAI;SACb;KACF;IAED,mEAAmE;IACnE,aAAa,EAAE;QACb,sBAAsB,EAAE,CAAC,MAAM,CAAC;KACjC;IAED,SAAS,EAAE;QACT,sDAAsD;QACtD,KAAK,CAAC,SAAS,CAAC,GAAG;YACjB,gDAAgD;YAChD,IAAI,CAAC,GAAG,CAAC,sCAAsC,EAAE,CAAC;gBAChD,GAAG,CAAC,sCAAsC,GAAG,GAAG,CAAC;YACnD,CAAC;YAED,4EAA4E;YAC5E,yEAAyE;YACzE,2CAA2C;YAC3C,IAAI,CAAC,GAAG,CAAC,4BAA4B,EAAE,CAAC;gBACtC,GAAG,CAAC,4BAA4B,GAAG,GAAG,CAAC;YACzC,CAAC;YAED,OAAO,GAAG,CAAC;QACb,CAAC;KACF;CACF,CAAC;AAEF;;GAEG;AACH,MAAM,OAAO,YAAa,SAAQ,gBAAgB;IACxC,cAAc,CAAiB;IAC/B,kBAAkB,CAAyB;IAEnD;QACE,KAAK,CAAC,oBAAoB,CAAC,CAAC;QAC5B,oEAAoE;QACpE,IAAI,CAAC,cAAc,GAAG,IAAI,oBAAoB,CAAC,oBAAoB,CAAC,CAAC;QACrE,0EAA0E;QAC1E,IAAI,CAAC,kBAAkB,GAAG,IAAI,qBAAqB,CAAC,oBAAoB,CAAC,CAAC;IAC5E,CAAC;IAED;;OAEG;IACH,iBAAiB;QACf,OAAO,IAAI,CAAC,cAAc,CAAC;IAC7B,CAAC;IAED;;;OAGG;IACH,qBAAqB;QACnB,OAAO,IAAI,CAAC,kBAAkB,CAAC;IACjC,CAAC;CACF"}
@@ -0,0 +1,60 @@
1
+ /**
2
+ * Claude Session Adapter
3
+ *
4
+ * Parses Claude Code session files from ~/.claude/projects/
5
+ * Extracts metrics and preserves messages for processors.
6
+ */
7
+ import type { SessionAdapter, ParsedSession, AggregatedResult } from '../../core/session/BaseSessionAdapter.js';
8
+ import type { SessionProcessor, ProcessingContext } from '../../core/session/BaseProcessor.js';
9
+ import type { AgentMetadata } from '../../core/types.js';
10
+ /**
11
+ * Claude session adapter implementation.
12
+ * Parses Claude-specific JSONL format into unified ParsedSession.
13
+ * Orchestrates multiple processors that transform messages.
14
+ *
15
+ * ENCAPSULATION: Processors are managed internally, not exposed to plugin.
16
+ */
17
+ export declare class ClaudeSessionAdapter implements SessionAdapter {
18
+ private readonly metadata;
19
+ readonly agentName = "claude";
20
+ private processors;
21
+ constructor(metadata: AgentMetadata);
22
+ /**
23
+ * Initialize processors for this adapter.
24
+ * INTERNAL: Processors are an implementation detail of the adapter.
25
+ */
26
+ private initializeProcessors;
27
+ /**
28
+ * Parse Claude session file to unified format.
29
+ * Extracts both raw messages (for conversations) and metrics (for metrics processor).
30
+ * CRITICAL: Discovers and parses ALL sub-agent files to avoid duplicate file reading.
31
+ */
32
+ parseSessionFile(filePath: string, sessionId: string): Promise<ParsedSession>;
33
+ /**
34
+ * Extract metrics data from Claude messages.
35
+ * Aggregates tokens, tools, and file operations.
36
+ */
37
+ private extractMetrics;
38
+ /**
39
+ * Find all agent-*.jsonl files in the subagents directory
40
+ * @param sessionFilePath - Path to the main session file
41
+ * @returns Array of sub-agent file info
42
+ */
43
+ private findSubagentFiles;
44
+ /**
45
+ * Register a processor to run during session processing.
46
+ * Processors are sorted by priority (lower runs first).
47
+ */
48
+ registerProcessor(processor: SessionProcessor): void;
49
+ /**
50
+ * Process session file with all registered processors.
51
+ * Reads file once, passes ParsedSession to all processors.
52
+ *
53
+ * @param filePath - Path to agent session file
54
+ * @param sessionId - CodeMie session ID
55
+ * @param context - Processing context (for processors that need API access)
56
+ * @returns Aggregated results from all processors
57
+ */
58
+ processSession(filePath: string, sessionId: string, context: ProcessingContext): Promise<AggregatedResult>;
59
+ }
60
+ //# sourceMappingURL=claude.session.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claude.session.d.ts","sourceRoot":"","sources":["../../../../src/agents/plugins/claude/claude.session.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,0CAA0C,CAAC;AAChH,OAAO,KAAK,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAC;AAE/F,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAMzD;;;;;;GAMG;AACH,qBAAa,oBAAqB,YAAW,cAAc;IAI7C,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAHrC,QAAQ,CAAC,SAAS,YAAY;IAC9B,OAAO,CAAC,UAAU,CAA0B;gBAEf,QAAQ,EAAE,aAAa;IAUpD;;;OAGG;IACH,OAAO,CAAC,oBAAoB;IAU5B;;;;OAIG;IACG,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IA2GnF;;;OAGG;IACH,OAAO,CAAC,cAAc;IAkGtB;;;;OAIG;YACW,iBAAiB;IAsC/B;;;OAGG;IACH,iBAAiB,CAAC,SAAS,EAAE,gBAAgB,GAAG,IAAI;IAMpD;;;;;;;;OAQG;IACG,cAAc,CAClB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAAC,gBAAgB,CAAC;CA+E7B"}
@@ -0,0 +1,339 @@
1
+ /**
2
+ * Claude Session Adapter
3
+ *
4
+ * Parses Claude Code session files from ~/.claude/projects/
5
+ * Extracts metrics and preserves messages for processors.
6
+ */
7
+ import { join, dirname, basename } from 'path';
8
+ import { existsSync } from 'fs';
9
+ import { readdir } from 'fs/promises';
10
+ import { readJSONL } from '../../core/session/utils/jsonl-reader.js';
11
+ import { logger } from '../../../utils/logger.js';
12
+ import { MetricsProcessor } from './session/processors/claude.metrics-processor.js';
13
+ import { ConversationsProcessor } from './session/processors/claude.conversations-processor.js';
14
+ /**
15
+ * Claude session adapter implementation.
16
+ * Parses Claude-specific JSONL format into unified ParsedSession.
17
+ * Orchestrates multiple processors that transform messages.
18
+ *
19
+ * ENCAPSULATION: Processors are managed internally, not exposed to plugin.
20
+ */
21
+ export class ClaudeSessionAdapter {
22
+ metadata;
23
+ agentName = 'claude';
24
+ processors = [];
25
+ constructor(metadata) {
26
+ this.metadata = metadata;
27
+ if (!metadata.dataPaths?.home) {
28
+ throw new Error('Agent metadata must provide dataPaths.home');
29
+ }
30
+ // Initialize and register processors internally
31
+ // Processors run in priority order: metrics (1), conversations (2)
32
+ this.initializeProcessors();
33
+ }
34
+ /**
35
+ * Initialize processors for this adapter.
36
+ * INTERNAL: Processors are an implementation detail of the adapter.
37
+ */
38
+ initializeProcessors() {
39
+ // Register metrics processor (priority 1)
40
+ this.registerProcessor(new MetricsProcessor());
41
+ // Register conversations processor (priority 2)
42
+ this.registerProcessor(new ConversationsProcessor());
43
+ logger.debug(`[claude-adapter] Initialized ${this.processors.length} processors`);
44
+ }
45
+ /**
46
+ * Parse Claude session file to unified format.
47
+ * Extracts both raw messages (for conversations) and metrics (for metrics processor).
48
+ * CRITICAL: Discovers and parses ALL sub-agent files to avoid duplicate file reading.
49
+ */
50
+ async parseSessionFile(filePath, sessionId) {
51
+ try {
52
+ // Read main session JSONL file
53
+ const messages = await readJSONL(filePath);
54
+ // Handle empty files gracefully (new sessions, in-progress, corrupted files)
55
+ if (messages.length === 0) {
56
+ logger.debug(`[claude-adapter] Session file is empty: ${filePath}`);
57
+ return {
58
+ sessionId,
59
+ agentName: this.metadata.displayName || 'claude',
60
+ metadata: {
61
+ projectPath: filePath,
62
+ createdAt: undefined,
63
+ updatedAt: undefined
64
+ },
65
+ messages: [],
66
+ metrics: {
67
+ tokens: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },
68
+ tools: {},
69
+ toolStatus: {},
70
+ fileOperations: []
71
+ }
72
+ };
73
+ }
74
+ // Extract timestamps from first/last messages that have them
75
+ let createdAt;
76
+ let updatedAt;
77
+ // Find first message with timestamp
78
+ for (const message of messages) {
79
+ if (message.timestamp) {
80
+ createdAt = message.timestamp;
81
+ break;
82
+ }
83
+ }
84
+ // Find last message with timestamp (iterate backwards)
85
+ for (let i = messages.length - 1; i >= 0; i--) {
86
+ if (messages[i].timestamp) {
87
+ updatedAt = messages[i].timestamp;
88
+ break;
89
+ }
90
+ }
91
+ // Extract metadata from session
92
+ const metadata = {
93
+ projectPath: filePath,
94
+ createdAt,
95
+ updatedAt
96
+ };
97
+ // Extract metrics from messages
98
+ const metrics = this.extractMetrics(messages);
99
+ // CRITICAL: Discover and parse ALL sub-agent files
100
+ const subagentFiles = await this.findSubagentFiles(filePath);
101
+ const subagents = [];
102
+ for (const subagentFile of subagentFiles) {
103
+ try {
104
+ const subagentMessages = await readJSONL(subagentFile.filePath);
105
+ subagents.push({
106
+ agentId: subagentFile.agentId,
107
+ filePath: subagentFile.filePath,
108
+ messages: subagentMessages
109
+ });
110
+ logger.debug(`[claude-adapter] Parsed sub-agent ${subagentFile.agentId}: ${subagentMessages.length} messages`);
111
+ }
112
+ catch (error) {
113
+ logger.warn(`[claude-adapter] Failed to parse sub-agent file ${subagentFile.filePath}:`, error);
114
+ // Continue with other sub-agents even if one fails
115
+ }
116
+ }
117
+ logger.debug(`[claude-adapter] Parsed session ${sessionId}: ${messages.length} main messages, ` +
118
+ `${subagents.length} sub-agent${subagents.length !== 1 ? 's' : ''}, ` +
119
+ `${metrics.tokens?.input || 0} input tokens, ${metrics.tokens?.output || 0} output tokens`);
120
+ return {
121
+ sessionId,
122
+ agentName: this.metadata.displayName || 'claude',
123
+ metadata,
124
+ messages, // Preserve raw messages for conversations processor
125
+ subagents: subagents.length > 0 ? subagents : undefined, // Include sub-agents if any
126
+ metrics // Extracted metrics for metrics processor
127
+ };
128
+ }
129
+ catch (error) {
130
+ logger.error(`[claude-adapter] Failed to parse session file ${filePath}:`, error);
131
+ throw error;
132
+ }
133
+ }
134
+ /**
135
+ * Extract metrics data from Claude messages.
136
+ * Aggregates tokens, tools, and file operations.
137
+ */
138
+ extractMetrics(messages) {
139
+ let inputTokens = 0;
140
+ let outputTokens = 0;
141
+ let cacheReadTokens = 0;
142
+ let cacheWriteTokens = 0;
143
+ const toolCounts = {};
144
+ const toolStatus = {};
145
+ const fileOperations = [];
146
+ // Build tool results map (tool_use_id → isError) for status tracking
147
+ const toolResultsMap = new Map();
148
+ // First pass: collect tool results
149
+ for (const msg of messages) {
150
+ if (msg.message?.content && Array.isArray(msg.message.content)) {
151
+ for (const item of msg.message.content) {
152
+ // Map tool_use_id to error status
153
+ if (item.type === 'tool_result' && item.tool_use_id) {
154
+ const isError = item.is_error === true || item.isError === true;
155
+ toolResultsMap.set(item.tool_use_id, isError);
156
+ }
157
+ }
158
+ }
159
+ }
160
+ // Second pass: aggregate metrics
161
+ for (const msg of messages) {
162
+ // Extract token usage
163
+ if (msg.message?.usage) {
164
+ const usage = msg.message.usage;
165
+ inputTokens += usage.input_tokens || 0;
166
+ outputTokens += usage.output_tokens || 0;
167
+ cacheReadTokens += usage.cache_read_input_tokens || 0;
168
+ cacheWriteTokens += usage.cache_creation_input_tokens || 0;
169
+ }
170
+ // Extract tool usage and status
171
+ if (msg.message?.content && Array.isArray(msg.message.content)) {
172
+ for (const item of msg.message.content) {
173
+ if (item.type === 'tool_use' && item.name && item.id) {
174
+ // Count tool usage
175
+ toolCounts[item.name] = (toolCounts[item.name] || 0) + 1;
176
+ // Initialize status tracking
177
+ if (!toolStatus[item.name]) {
178
+ toolStatus[item.name] = { success: 0, failure: 0 };
179
+ }
180
+ // Track success/failure based on result
181
+ const hasResult = toolResultsMap.has(item.id);
182
+ if (hasResult) {
183
+ const isError = toolResultsMap.get(item.id);
184
+ if (isError) {
185
+ toolStatus[item.name].failure++;
186
+ }
187
+ else {
188
+ toolStatus[item.name].success++;
189
+ }
190
+ }
191
+ }
192
+ }
193
+ }
194
+ // Extract file operations from tool results
195
+ if (msg.toolUseResult?.type) {
196
+ const toolType = msg.toolUseResult.type.toLowerCase();
197
+ const filePath = msg.toolUseResult.file?.filePath;
198
+ if (filePath) {
199
+ if (toolType === 'write') {
200
+ fileOperations.push({ type: 'write', path: filePath });
201
+ }
202
+ else if (toolType === 'edit') {
203
+ fileOperations.push({ type: 'edit', path: filePath });
204
+ }
205
+ else if (toolType === 'delete') {
206
+ fileOperations.push({ type: 'delete', path: filePath });
207
+ }
208
+ }
209
+ }
210
+ }
211
+ return {
212
+ tokens: {
213
+ input: inputTokens,
214
+ output: outputTokens,
215
+ cacheRead: cacheReadTokens,
216
+ cacheWrite: cacheWriteTokens
217
+ },
218
+ tools: toolCounts,
219
+ toolStatus,
220
+ fileOperations
221
+ };
222
+ }
223
+ /**
224
+ * Find all agent-*.jsonl files in the subagents directory
225
+ * @param sessionFilePath - Path to the main session file
226
+ * @returns Array of sub-agent file info
227
+ */
228
+ async findSubagentFiles(sessionFilePath) {
229
+ try {
230
+ const parentDir = dirname(sessionFilePath);
231
+ const filename = basename(sessionFilePath);
232
+ const sessionId = filename.replace('.jsonl', '');
233
+ // Look in {parentDir}/{sessionId}/subagents/
234
+ const subagentsDir = join(parentDir, sessionId, 'subagents');
235
+ if (!existsSync(subagentsDir)) {
236
+ logger.debug(`[claude-adapter] Subagents directory not found: ${subagentsDir}`);
237
+ return [];
238
+ }
239
+ // Find all agent-*.jsonl files
240
+ const files = await readdir(subagentsDir);
241
+ const agentFiles = files
242
+ .filter(f => f.startsWith('agent-') && f.endsWith('.jsonl'))
243
+ .map(f => ({
244
+ agentId: f.replace('agent-', '').replace('.jsonl', ''),
245
+ filePath: join(subagentsDir, f)
246
+ }));
247
+ logger.debug(`[claude-adapter] Found ${agentFiles.length} sub-agent file${agentFiles.length !== 1 ? 's' : ''} ` +
248
+ `for session ${sessionId}`);
249
+ return agentFiles;
250
+ }
251
+ catch (error) {
252
+ logger.debug(`[claude-adapter] Failed to find sub-agent files:`, error);
253
+ return [];
254
+ }
255
+ }
256
+ /**
257
+ * Register a processor to run during session processing.
258
+ * Processors are sorted by priority (lower runs first).
259
+ */
260
+ registerProcessor(processor) {
261
+ this.processors.push(processor);
262
+ this.processors.sort((a, b) => a.priority - b.priority);
263
+ logger.debug(`[claude-adapter] Registered processor: ${processor.name} (priority: ${processor.priority})`);
264
+ }
265
+ /**
266
+ * Process session file with all registered processors.
267
+ * Reads file once, passes ParsedSession to all processors.
268
+ *
269
+ * @param filePath - Path to agent session file
270
+ * @param sessionId - CodeMie session ID
271
+ * @param context - Processing context (for processors that need API access)
272
+ * @returns Aggregated results from all processors
273
+ */
274
+ async processSession(filePath, sessionId, context) {
275
+ try {
276
+ logger.debug(`[claude-adapter] Processing session ${sessionId} with ${this.processors.length} processor${this.processors.length !== 1 ? 's' : ''}`);
277
+ // 1. Parse session file once (includes sub-agent discovery)
278
+ const parsedSession = await this.parseSessionFile(filePath, sessionId);
279
+ // 2. Execute processors in priority order
280
+ const processorResults = {};
281
+ const failedProcessors = [];
282
+ let totalRecords = 0;
283
+ for (const processor of this.processors) {
284
+ try {
285
+ // Check if processor should run
286
+ if (!processor.shouldProcess(parsedSession)) {
287
+ logger.debug(`[claude-adapter] Processor ${processor.name} skipped (shouldProcess returned false)`);
288
+ continue;
289
+ }
290
+ logger.debug(`[claude-adapter] Running processor: ${processor.name}`);
291
+ // Execute processor
292
+ const result = await processor.process(parsedSession, context);
293
+ processorResults[processor.name] = {
294
+ success: result.success,
295
+ message: result.message,
296
+ recordsProcessed: result.metadata?.recordsProcessed
297
+ };
298
+ // Track failures
299
+ if (!result.success) {
300
+ failedProcessors.push(processor.name);
301
+ logger.warn(`[claude-adapter] Processor ${processor.name} failed: ${result.message}`);
302
+ }
303
+ else {
304
+ logger.debug(`[claude-adapter] Processor ${processor.name} succeeded: ${result.message}`);
305
+ }
306
+ // Accumulate records
307
+ const recordsProcessed = result.metadata?.recordsProcessed;
308
+ if (typeof recordsProcessed === 'number') {
309
+ totalRecords += recordsProcessed;
310
+ }
311
+ }
312
+ catch (error) {
313
+ const errorMessage = error instanceof Error ? error.message : 'Unknown error';
314
+ logger.error(`[claude-adapter] Processor ${processor.name} threw error:`, error);
315
+ processorResults[processor.name] = {
316
+ success: false,
317
+ message: errorMessage
318
+ };
319
+ failedProcessors.push(processor.name);
320
+ }
321
+ }
322
+ // 3. Aggregate results
323
+ const result = {
324
+ success: failedProcessors.length === 0,
325
+ processors: processorResults,
326
+ totalRecords,
327
+ failedProcessors
328
+ };
329
+ logger.debug(`[claude-adapter] Processing complete: ${result.success ? 'SUCCESS' : 'FAILED'} ` +
330
+ `(${totalRecords} records, ${failedProcessors.length} failed processors)`);
331
+ return result;
332
+ }
333
+ catch (error) {
334
+ logger.error(`[claude-adapter] Session processing failed:`, error);
335
+ throw error;
336
+ }
337
+ }
338
+ }
339
+ //# sourceMappingURL=claude.session.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claude.session.js","sourceRoot":"","sources":["../../../../src/agents/plugins/claude/claude.session.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ {
2
+ "enabled": true,
3
+ "strategy": "hybrid",
4
+ "includes": [
5
+ "claude-templates/**"
6
+ ],
7
+ "excludes": [
8
+ "**/*.test.js",
9
+ "**/.DS_Store",
10
+ "**/node_modules/**"
11
+ ],
12
+ "targetDir": ".codemie",
13
+ "preserveStructure": true,
14
+ "overwritePolicy": "newer"
15
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "name": "codemie",
3
+ "description": "Event-driven observability for Claude Code. Captures session events and syncs metrics/conversations to CodeMie platform.",
4
+ "author": {
5
+ "name": "AI/Run CodeMie",
6
+ "email": "support@codemieai.com"
7
+ },
8
+ "version": "1.0.0"
9
+ }