@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,57 @@
1
+ #!/usr/bin/env node
2
+
3
+ /**
4
+ * Cross-platform script to copy plugin assets from src/ to dist/
5
+ * Works on Windows, macOS, and Linux
6
+ */
7
+
8
+ import { fileURLToPath } from 'url';
9
+ import { dirname, join } from 'path';
10
+ import { rmSync, mkdirSync, cpSync, existsSync } from 'fs';
11
+
12
+ const __filename = fileURLToPath(import.meta.url);
13
+ const __dirname = dirname(__filename);
14
+ const rootDir = join(__dirname, '..');
15
+
16
+ const copyConfigs = [
17
+ {
18
+ name: 'Claude plugin',
19
+ src: join(rootDir, 'src/agents/plugins/claude/plugin'),
20
+ dest: join(rootDir, 'dist/agents/plugins/claude/plugin')
21
+ },
22
+ {
23
+ name: 'Gemini extension',
24
+ src: join(rootDir, 'src/agents/plugins/gemini/extension'),
25
+ dest: join(rootDir, 'dist/agents/plugins/gemini/extension')
26
+ }
27
+ ];
28
+
29
+ console.log('Copying plugin assets...\n');
30
+
31
+ for (const config of copyConfigs) {
32
+ console.log(`Processing ${config.name}:`);
33
+
34
+ // Remove destination if it exists
35
+ if (existsSync(config.dest)) {
36
+ console.log(` - Removing old ${config.dest}`);
37
+ rmSync(config.dest, { recursive: true, force: true });
38
+ }
39
+
40
+ // Check if source exists
41
+ if (!existsSync(config.src)) {
42
+ console.log(` - Warning: Source ${config.src} does not exist, skipping...`);
43
+ continue;
44
+ }
45
+
46
+ // Create parent directories
47
+ console.log(` - Creating ${config.dest}`);
48
+ mkdirSync(config.dest, { recursive: true });
49
+
50
+ // Copy recursively
51
+ console.log(` - Copying from ${config.src}`);
52
+ cpSync(config.src, config.dest, { recursive: true });
53
+
54
+ console.log(` ✓ ${config.name} copied successfully\n`);
55
+ }
56
+
57
+ console.log('Plugin assets copied successfully!');
@@ -0,0 +1,23 @@
1
+ #!/usr/bin/env node
2
+
3
+ /**
4
+ * Wrapper script for license-checker that ignores file arguments from lint-staged
5
+ * lint-staged passes matched files as arguments, but license-checker doesn't need them
6
+ */
7
+
8
+ import { spawnSync } from 'child_process';
9
+ import { platform } from 'os';
10
+
11
+ // Run license-checker without any file arguments
12
+ const allowedLicenses = 'MIT;Apache-2.0;ISC;BSD-2-Clause;BSD-3-Clause;0BSD;CC0-1.0;Unlicense;BlueOak-1.0.0;Python-2.0;CC-BY-4.0;Apache*;(MIT OR CC0-1.0);(MIT OR WTFPL);(BSD-2-Clause OR MIT OR Apache-2.0)';
13
+
14
+ // On Windows, we need shell: true for npx to work
15
+ // On Unix/Linux, we should NOT use shell: true to avoid semicolon interpretation
16
+ const isWindows = platform() === 'win32';
17
+
18
+ const result = spawnSync('npx', ['license-checker', '--summary', '--onlyAllow', allowedLicenses], {
19
+ stdio: 'inherit',
20
+ shell: isWindows
21
+ });
22
+
23
+ process.exit(result.status || 0);
@@ -1,18 +0,0 @@
1
- #!/usr/bin/env node
2
-
3
- /**
4
- * Codex Agent Entry Point
5
- * Direct entry point for codemie-codex command
6
- */
7
-
8
- import { AgentCLI } from '../dist/agents/core/AgentCLI.js';
9
- import { AgentRegistry } from '../dist/agents/registry.js';
10
-
11
- const agent = AgentRegistry.getAgent('codex');
12
- if (!agent) {
13
- console.error('✗ Codex agent not found in registry');
14
- process.exit(1);
15
- }
16
-
17
- const cli = new AgentCLI(agent);
18
- await cli.run(process.argv);
@@ -1,18 +0,0 @@
1
- #!/usr/bin/env node
2
-
3
- /**
4
- * Deep Agents Entry Point
5
- * Direct entry point for codemie-deepagents command
6
- */
7
-
8
- import { AgentCLI } from '../dist/agents/core/AgentCLI.js';
9
- import { AgentRegistry } from '../dist/agents/registry.js';
10
-
11
- const agent = AgentRegistry.getAgent('deepagents');
12
- if (!agent) {
13
- console.error('✗ Deep Agents not found in registry');
14
- process.exit(1);
15
- }
16
-
17
- const cli = new AgentCLI(agent);
18
- await cli.run(process.argv);
@@ -1,165 +0,0 @@
1
- /**
2
- * Base Metrics Adapter
3
- *
4
- * Generic implementation of AgentMetricsSupport interface.
5
- * Provides default implementations that work for most agents.
6
- * Agent plugins override only what's specific to them.
7
- */
8
- import type { AgentMetricsSupport, MetricSnapshot, MetricDelta, UserPrompt, ToolCallMetric, ToolUsageSummary } from './metrics/types.js';
9
- import type { AgentMetadata } from './types.js';
10
- export declare abstract class BaseMetricsAdapter implements AgentMetricsSupport {
11
- protected agentName: string;
12
- protected metadata?: AgentMetadata | undefined;
13
- constructor(agentName: string, metadata?: AgentMetadata | undefined);
14
- /**
15
- * Get agent home directory (e.g., ~/.claude, ~/.codex, ~/.gemini)
16
- * @returns Absolute path to agent home directory
17
- */
18
- protected getHomeDir(): string;
19
- /**
20
- * Get sessions directory path
21
- * @returns Absolute path to sessions directory
22
- */
23
- protected getSessionsDir(): string;
24
- /**
25
- * Get user prompts file path
26
- * @returns Absolute path to user prompts history file
27
- */
28
- protected getUserPromptsPath(): string;
29
- /**
30
- * Get settings file path
31
- * @returns Absolute path to settings file
32
- */
33
- protected getSettingsPath(): string;
34
- /**
35
- * Get data paths - can be overridden or uses metadata.dataPaths
36
- */
37
- getDataPaths(): {
38
- sessionsDir: string;
39
- settingsDir?: string;
40
- };
41
- /**
42
- * Check if file matches session pattern - MUST be overridden
43
- */
44
- abstract matchesSessionPattern(path: string): boolean;
45
- /**
46
- * Extract session ID from path - MUST be overridden
47
- */
48
- abstract extractSessionId(path: string): string;
49
- /**
50
- * Parse session file - MUST be overridden
51
- */
52
- abstract parseSessionFile(path: string): Promise<MetricSnapshot>;
53
- /**
54
- * Parse incremental metrics from session file
55
- * Returns only new deltas, skipping already-processed record IDs
56
- * MUST be overridden if delta-based metrics are used
57
- */
58
- parseIncrementalMetrics(_path: string, _processedRecordIds: Set<string>, _attachedUserPromptTexts?: Set<string>): Promise<{
59
- deltas: MetricDelta[];
60
- lastLine: number;
61
- newlyAttachedPrompts?: string[];
62
- }>;
63
- /**
64
- * Get user prompts for a specific session
65
- * Each agent implements this to parse their specific history format
66
- * MUST be overridden by each agent adapter
67
- */
68
- getUserPrompts(_sessionId: string, _fromTimestamp?: number, _toTimestamp?: number): Promise<UserPrompt[]>;
69
- /**
70
- * Get watermark strategy - default: hash
71
- * Override if agent uses different strategy
72
- */
73
- getWatermarkStrategy(): 'hash' | 'line' | 'object';
74
- /**
75
- * Get initialization delay - default: 1000ms
76
- * Override if agent needs different delay
77
- */
78
- getInitDelay(): number;
79
- /**
80
- * Extract file format/extension from path
81
- * @param path - File path
82
- * @returns File extension without dot (e.g., 'ts', 'py') or undefined
83
- */
84
- protected extractFormat(path: string): string | undefined;
85
- /**
86
- * Detect programming language from file extension
87
- * @param path - File path
88
- * @returns Language name (e.g., 'typescript', 'python') or undefined
89
- */
90
- protected detectLanguage(path: string): string | undefined;
91
- /**
92
- * Build aggregated tool usage summary from detailed tool calls
93
- * Aggregates: count, success/error counts, file operation type counts
94
- * @param toolCalls - Array of detailed tool call metrics
95
- * @returns Array of aggregated summaries per tool
96
- */
97
- protected buildToolUsageSummary(toolCalls: ToolCallMetric[]): ToolUsageSummary[];
98
- /**
99
- * Parse sessions path template into segments
100
- * Handles both static segments and dynamic placeholders
101
- *
102
- * @returns Array of path segments
103
- *
104
- * @example
105
- * // Claude: 'projects' → ['projects']
106
- * parseSessionsTemplate()
107
- *
108
- * @example
109
- * // Gemini: 'tmp/{projectHash}/chats' → ['tmp', '{projectHash}', 'chats']
110
- * parseSessionsTemplate()
111
- */
112
- protected parseSessionsTemplate(): string[];
113
- /**
114
- * Check if a segment is a dynamic placeholder
115
- * Placeholders are enclosed in curly braces: {placeholderName}
116
- *
117
- * @param segment - Path segment to check
118
- * @returns true if segment is a dynamic placeholder
119
- *
120
- * @example
121
- * isDynamicSegment('{projectHash}') // Returns: true
122
- * isDynamicSegment('tmp') // Returns: false
123
- */
124
- protected isDynamicSegment(segment: string): boolean;
125
- /**
126
- * Validate that a path matches the sessions template structure
127
- * Handles both static segments (must match exactly) and dynamic placeholders (any value)
128
- *
129
- * Cross-platform: uses splitPath() which normalizes separators
130
- *
131
- * @param path - File path to validate
132
- * @returns true if path matches template structure
133
- *
134
- * @example
135
- * // Gemini with sessions: 'tmp/{projectHash}/chats'
136
- * matchesSessionsStructure('~/.gemini/tmp/abc123/chats/session.json')
137
- * // Returns: true (tmp=static, abc123=dynamic, chats=static)
138
- *
139
- * @example
140
- * // Claude with sessions: 'projects'
141
- * matchesSessionsStructure('~/.claude/projects/hash/file.jsonl')
142
- * // Returns: true (projects=static)
143
- */
144
- protected matchesSessionsStructure(path: string): boolean;
145
- /**
146
- * Extract value of a dynamic placeholder from path
147
- * Finds placeholder in sessions template and extracts corresponding value from path
148
- *
149
- * @param path - File path containing placeholder value
150
- * @param placeholderName - Name of placeholder (without braces)
151
- * @returns Extracted value or null if placeholder not found
152
- *
153
- * @example
154
- * // Gemini with sessions: 'tmp/{projectHash}/chats'
155
- * extractPlaceholder('~/.gemini/tmp/abc123/chats/file.json', 'projectHash')
156
- * // Returns: 'abc123'
157
- *
158
- * @example
159
- * // Claude has no placeholders
160
- * extractPlaceholder('~/.claude/projects/hash/file.jsonl', 'hash')
161
- * // Returns: null (no {hash} placeholder in template)
162
- */
163
- protected extractPlaceholder(path: string, placeholderName: string): string | null;
164
- }
165
- //# sourceMappingURL=BaseMetricsAdapter.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"BaseMetricsAdapter.d.ts","sourceRoot":"","sources":["../../../src/agents/core/BaseMetricsAdapter.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,OAAO,KAAK,EACV,mBAAmB,EACnB,cAAc,EACd,WAAW,EACX,UAAU,EACV,cAAc,EACd,gBAAgB,EACjB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD,8BAAsB,kBAAmB,YAAW,mBAAmB;IAEnE,SAAS,CAAC,SAAS,EAAE,MAAM;IAC3B,SAAS,CAAC,QAAQ,CAAC,EAAE,aAAa;gBADxB,SAAS,EAAE,MAAM,EACjB,QAAQ,CAAC,EAAE,aAAa,YAAA;IAGpC;;;OAGG;IACH,SAAS,CAAC,UAAU,IAAI,MAAM;IAO9B;;;OAGG;IACH,SAAS,CAAC,cAAc,IAAI,MAAM;IAMlC;;;OAGG;IACH,SAAS,CAAC,kBAAkB,IAAI,MAAM;IAQtC;;;OAGG;IACH,SAAS,CAAC,eAAe,IAAI,MAAM;IAQnC;;OAEG;IACH,YAAY,IAAI;QACd,WAAW,EAAE,MAAM,CAAC;QACpB,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB;IAYD;;OAEG;IACH,QAAQ,CAAC,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAErD;;OAEG;IACH,QAAQ,CAAC,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAE/C;;OAEG;IACH,QAAQ,CAAC,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAEhE;;;;OAIG;IACG,uBAAuB,CAC3B,KAAK,EAAE,MAAM,EACb,mBAAmB,EAAE,GAAG,CAAC,MAAM,CAAC,EAChC,wBAAwB,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,GACrC,OAAO,CAAC;QACT,MAAM,EAAE,WAAW,EAAE,CAAC;QACtB,QAAQ,EAAE,MAAM,CAAC;QACjB,oBAAoB,CAAC,EAAE,MAAM,EAAE,CAAC;KACjC,CAAC;IAKF;;;;OAIG;IACG,cAAc,CAClB,UAAU,EAAE,MAAM,EAClB,cAAc,CAAC,EAAE,MAAM,EACvB,YAAY,CAAC,EAAE,MAAM,GACpB,OAAO,CAAC,UAAU,EAAE,CAAC;IAKxB;;;OAGG;IACH,oBAAoB,IAAI,MAAM,GAAG,MAAM,GAAG,QAAQ;IAIlD;;;OAGG;IACH,YAAY,IAAI,MAAM;IAQtB;;;;OAIG;IACH,SAAS,CAAC,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAKzD;;;;OAIG;IACH,SAAS,CAAC,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAyB1D;;;;;OAKG;IACH,SAAS,CAAC,qBAAqB,CAAC,SAAS,EAAE,cAAc,EAAE,GAAG,gBAAgB,EAAE;IAqChF;;;;;;;;;;;;;OAaG;IACH,SAAS,CAAC,qBAAqB,IAAI,MAAM,EAAE;IAO3C;;;;;;;;;;OAUG;IACH,SAAS,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAIpD;;;;;;;;;;;;;;;;;;OAkBG;IACH,SAAS,CAAC,wBAAwB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IA2CzD;;;;;;;;;;;;;;;;;OAiBG;IACH,SAAS,CAAC,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;CA6BnF"}
@@ -1,308 +0,0 @@
1
- /**
2
- * Base Metrics Adapter
3
- *
4
- * Generic implementation of AgentMetricsSupport interface.
5
- * Provides default implementations that work for most agents.
6
- * Agent plugins override only what's specific to them.
7
- */
8
- import { join, extname } from 'path';
9
- import { resolveHomeDir, splitPath } from '../../utils/paths.js';
10
- export class BaseMetricsAdapter {
11
- agentName;
12
- metadata;
13
- constructor(agentName, metadata) {
14
- this.agentName = agentName;
15
- this.metadata = metadata;
16
- }
17
- /**
18
- * Get agent home directory (e.g., ~/.claude, ~/.codex, ~/.gemini)
19
- * @returns Absolute path to agent home directory
20
- */
21
- getHomeDir() {
22
- if (!this.metadata?.dataPaths?.home) {
23
- throw new Error(`${this.agentName}: metadata.dataPaths.home is not defined`);
24
- }
25
- return resolveHomeDir(this.metadata.dataPaths.home);
26
- }
27
- /**
28
- * Get sessions directory path
29
- * @returns Absolute path to sessions directory
30
- */
31
- getSessionsDir() {
32
- const home = this.getHomeDir();
33
- const sessions = this.metadata?.dataPaths?.sessions || '';
34
- return join(home, sessions);
35
- }
36
- /**
37
- * Get user prompts file path
38
- * @returns Absolute path to user prompts history file
39
- */
40
- getUserPromptsPath() {
41
- if (!this.metadata?.dataPaths?.user_prompts) {
42
- throw new Error(`${this.agentName}: metadata.dataPaths.user_prompts is not defined`);
43
- }
44
- const home = this.getHomeDir();
45
- return join(home, this.metadata.dataPaths.user_prompts);
46
- }
47
- /**
48
- * Get settings file path
49
- * @returns Absolute path to settings file
50
- */
51
- getSettingsPath() {
52
- if (!this.metadata?.dataPaths?.settings) {
53
- throw new Error(`${this.agentName}: metadata.dataPaths.settings is not defined`);
54
- }
55
- const home = this.getHomeDir();
56
- return join(home, this.metadata.dataPaths.settings);
57
- }
58
- /**
59
- * Get data paths - can be overridden or uses metadata.dataPaths
60
- */
61
- getDataPaths() {
62
- if (this.metadata?.dataPaths) {
63
- return {
64
- sessionsDir: this.getSessionsDir(),
65
- settingsDir: this.getHomeDir()
66
- };
67
- }
68
- // Fallback: must be overridden
69
- throw new Error(`${this.agentName}: getDataPaths() must be implemented or metadata.dataPaths must be provided`);
70
- }
71
- /**
72
- * Parse incremental metrics from session file
73
- * Returns only new deltas, skipping already-processed record IDs
74
- * MUST be overridden if delta-based metrics are used
75
- */
76
- async parseIncrementalMetrics(_path, _processedRecordIds, _attachedUserPromptTexts) {
77
- // Default implementation: not supported
78
- throw new Error(`${this.agentName}: parseIncrementalMetrics() not implemented`);
79
- }
80
- /**
81
- * Get user prompts for a specific session
82
- * Each agent implements this to parse their specific history format
83
- * MUST be overridden by each agent adapter
84
- */
85
- async getUserPrompts(_sessionId, _fromTimestamp, _toTimestamp) {
86
- // Default implementation: not supported
87
- throw new Error(`${this.agentName}: getUserPrompts() not implemented`);
88
- }
89
- /**
90
- * Get watermark strategy - default: hash
91
- * Override if agent uses different strategy
92
- */
93
- getWatermarkStrategy() {
94
- return 'hash'; // Default: full-file hash
95
- }
96
- /**
97
- * Get initialization delay - default: 1000ms
98
- * Override if agent needs different delay
99
- */
100
- getInitDelay() {
101
- return 1000; // Default: 1000ms
102
- }
103
- // ==========================================
104
- // Shared Utility Methods
105
- // ==========================================
106
- /**
107
- * Extract file format/extension from path
108
- * @param path - File path
109
- * @returns File extension without dot (e.g., 'ts', 'py') or undefined
110
- */
111
- extractFormat(path) {
112
- const ext = extname(path);
113
- return ext ? ext.slice(1) : undefined;
114
- }
115
- /**
116
- * Detect programming language from file extension
117
- * @param path - File path
118
- * @returns Language name (e.g., 'typescript', 'python') or undefined
119
- */
120
- detectLanguage(path) {
121
- const ext = extname(path).toLowerCase();
122
- const langMap = {
123
- '.ts': 'typescript',
124
- '.tsx': 'typescript',
125
- '.js': 'javascript',
126
- '.jsx': 'javascript',
127
- '.py': 'python',
128
- '.java': 'java',
129
- '.go': 'go',
130
- '.rs': 'rust',
131
- '.cpp': 'cpp',
132
- '.c': 'c',
133
- '.rb': 'ruby',
134
- '.php': 'php',
135
- '.swift': 'swift',
136
- '.kt': 'kotlin',
137
- '.md': 'markdown',
138
- '.json': 'json',
139
- '.yaml': 'yaml',
140
- '.yml': 'yaml'
141
- };
142
- return langMap[ext];
143
- }
144
- /**
145
- * Build aggregated tool usage summary from detailed tool calls
146
- * Aggregates: count, success/error counts, file operation type counts
147
- * @param toolCalls - Array of detailed tool call metrics
148
- * @returns Array of aggregated summaries per tool
149
- */
150
- buildToolUsageSummary(toolCalls) {
151
- const summaryMap = new Map();
152
- for (const call of toolCalls) {
153
- let summary = summaryMap.get(call.name);
154
- if (!summary) {
155
- summary = {
156
- name: call.name,
157
- count: 0,
158
- successCount: 0,
159
- errorCount: 0,
160
- fileOperations: {}
161
- };
162
- summaryMap.set(call.name, summary);
163
- }
164
- summary.count++;
165
- if (call.status === 'success') {
166
- summary.successCount++;
167
- }
168
- else if (call.status === 'error') {
169
- summary.errorCount++;
170
- }
171
- // Aggregate file operations by type
172
- if (call.fileOperation) {
173
- const opType = call.fileOperation.type;
174
- summary.fileOperations[opType] = (summary.fileOperations[opType] || 0) + 1;
175
- }
176
- }
177
- return Array.from(summaryMap.values());
178
- }
179
- // ==========================================
180
- // Template-Based Path Matching
181
- // ==========================================
182
- /**
183
- * Parse sessions path template into segments
184
- * Handles both static segments and dynamic placeholders
185
- *
186
- * @returns Array of path segments
187
- *
188
- * @example
189
- * // Claude: 'projects' → ['projects']
190
- * parseSessionsTemplate()
191
- *
192
- * @example
193
- * // Gemini: 'tmp/{projectHash}/chats' → ['tmp', '{projectHash}', 'chats']
194
- * parseSessionsTemplate()
195
- */
196
- parseSessionsTemplate() {
197
- if (!this.metadata?.dataPaths?.sessions) {
198
- return [];
199
- }
200
- return this.metadata.dataPaths.sessions.split('/').filter(Boolean);
201
- }
202
- /**
203
- * Check if a segment is a dynamic placeholder
204
- * Placeholders are enclosed in curly braces: {placeholderName}
205
- *
206
- * @param segment - Path segment to check
207
- * @returns true if segment is a dynamic placeholder
208
- *
209
- * @example
210
- * isDynamicSegment('{projectHash}') // Returns: true
211
- * isDynamicSegment('tmp') // Returns: false
212
- */
213
- isDynamicSegment(segment) {
214
- return segment.startsWith('{') && segment.endsWith('}');
215
- }
216
- /**
217
- * Validate that a path matches the sessions template structure
218
- * Handles both static segments (must match exactly) and dynamic placeholders (any value)
219
- *
220
- * Cross-platform: uses splitPath() which normalizes separators
221
- *
222
- * @param path - File path to validate
223
- * @returns true if path matches template structure
224
- *
225
- * @example
226
- * // Gemini with sessions: 'tmp/{projectHash}/chats'
227
- * matchesSessionsStructure('~/.gemini/tmp/abc123/chats/session.json')
228
- * // Returns: true (tmp=static, abc123=dynamic, chats=static)
229
- *
230
- * @example
231
- * // Claude with sessions: 'projects'
232
- * matchesSessionsStructure('~/.claude/projects/hash/file.jsonl')
233
- * // Returns: true (projects=static)
234
- */
235
- matchesSessionsStructure(path) {
236
- if (!this.metadata?.dataPaths?.home) {
237
- return false;
238
- }
239
- const baseDir = this.metadata.dataPaths.home;
240
- const sessionsParts = this.parseSessionsTemplate();
241
- if (sessionsParts.length === 0) {
242
- return false;
243
- }
244
- // Split path using cross-platform utility
245
- const parts = splitPath(path);
246
- const baseIndex = parts.findIndex(p => p === baseDir);
247
- if (baseIndex === -1) {
248
- return false;
249
- }
250
- // Validate each segment in template
251
- for (let i = 0; i < sessionsParts.length; i++) {
252
- const expectedSegment = sessionsParts[i];
253
- const actualSegment = parts[baseIndex + 1 + i];
254
- if (!actualSegment) {
255
- return false; // Missing segment
256
- }
257
- // Skip validation for dynamic placeholders (any value accepted)
258
- if (this.isDynamicSegment(expectedSegment)) {
259
- continue;
260
- }
261
- // Validate static segments (must match exactly)
262
- if (actualSegment !== expectedSegment) {
263
- return false;
264
- }
265
- }
266
- return true;
267
- }
268
- /**
269
- * Extract value of a dynamic placeholder from path
270
- * Finds placeholder in sessions template and extracts corresponding value from path
271
- *
272
- * @param path - File path containing placeholder value
273
- * @param placeholderName - Name of placeholder (without braces)
274
- * @returns Extracted value or null if placeholder not found
275
- *
276
- * @example
277
- * // Gemini with sessions: 'tmp/{projectHash}/chats'
278
- * extractPlaceholder('~/.gemini/tmp/abc123/chats/file.json', 'projectHash')
279
- * // Returns: 'abc123'
280
- *
281
- * @example
282
- * // Claude has no placeholders
283
- * extractPlaceholder('~/.claude/projects/hash/file.jsonl', 'hash')
284
- * // Returns: null (no {hash} placeholder in template)
285
- */
286
- extractPlaceholder(path, placeholderName) {
287
- const sessionsParts = this.parseSessionsTemplate();
288
- const baseDir = this.metadata?.dataPaths?.home;
289
- if (!baseDir) {
290
- return null;
291
- }
292
- // Find placeholder index in template
293
- // Example: ['tmp', '{projectHash}', 'chats'] → index 1 for 'projectHash'
294
- const placeholderIndex = sessionsParts.findIndex(part => part === `{${placeholderName}}`);
295
- if (placeholderIndex === -1) {
296
- return null; // Placeholder not in template
297
- }
298
- // Extract value at that position in path
299
- const parts = splitPath(path);
300
- const baseIndex = parts.findIndex(p => p === baseDir);
301
- if (baseIndex === -1) {
302
- return null;
303
- }
304
- const valueIndex = baseIndex + 1 + placeholderIndex;
305
- return parts[valueIndex] || null;
306
- }
307
- }
308
- //# sourceMappingURL=BaseMetricsAdapter.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"BaseMetricsAdapter.js","sourceRoot":"","sources":["../../../src/agents/core/BaseMetricsAdapter.ts"],"names":[],"mappings":"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"}