@codemieai/code 0.0.27 → 0.0.29

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (484) hide show
  1. package/README.md +9 -11
  2. package/bin/agent-executor.js +1 -1
  3. package/dist/agents/codemie-code/agent.js +1 -1
  4. package/dist/agents/codemie-code/config.d.ts +1 -1
  5. package/dist/agents/codemie-code/config.d.ts.map +1 -1
  6. package/dist/agents/codemie-code/config.js +3 -4
  7. package/dist/agents/codemie-code/config.js.map +1 -1
  8. package/dist/agents/codemie-code/index.js +1 -1
  9. package/dist/agents/codemie-code/storage/todoStorage.d.ts.map +1 -1
  10. package/dist/agents/codemie-code/storage/todoStorage.js +2 -2
  11. package/dist/agents/codemie-code/storage/todoStorage.js.map +1 -1
  12. package/dist/agents/codemie-code/tools/index.js +1 -1
  13. package/dist/agents/codemie-code/tools/index.js.map +1 -1
  14. package/dist/agents/core/AgentCLI.d.ts.map +1 -1
  15. package/dist/agents/core/AgentCLI.js +6 -10
  16. package/dist/agents/core/AgentCLI.js.map +1 -1
  17. package/dist/agents/core/BaseAgentAdapter.d.ts +17 -9
  18. package/dist/agents/core/BaseAgentAdapter.d.ts.map +1 -1
  19. package/dist/agents/core/BaseAgentAdapter.js +80 -72
  20. package/dist/agents/core/BaseAgentAdapter.js.map +1 -1
  21. package/dist/agents/core/extension/BaseExtensionInstaller.d.ts +258 -0
  22. package/dist/agents/core/extension/BaseExtensionInstaller.d.ts.map +1 -0
  23. package/dist/agents/core/extension/BaseExtensionInstaller.js +522 -0
  24. package/dist/agents/core/extension/BaseExtensionInstaller.js.map +1 -0
  25. package/dist/agents/core/lifecycle-helpers.d.ts.map +1 -1
  26. package/dist/agents/core/lifecycle-helpers.js +16 -2
  27. package/dist/agents/core/lifecycle-helpers.js.map +1 -1
  28. package/dist/agents/core/metrics/index.d.ts +0 -2
  29. package/dist/agents/core/metrics/index.d.ts.map +1 -1
  30. package/dist/agents/core/metrics/index.js +0 -3
  31. package/dist/agents/core/metrics/index.js.map +1 -1
  32. package/dist/agents/core/metrics/types.d.ts +4 -232
  33. package/dist/agents/core/metrics/types.d.ts.map +1 -1
  34. package/dist/agents/core/metrics/types.js +2 -2
  35. package/dist/agents/core/session/BaseProcessor.d.ts +72 -0
  36. package/dist/agents/core/session/BaseProcessor.d.ts.map +1 -0
  37. package/dist/agents/core/session/BaseProcessor.js +9 -0
  38. package/dist/agents/core/session/BaseProcessor.js.map +1 -0
  39. package/dist/agents/core/session/BaseSessionAdapter.d.ts +99 -0
  40. package/dist/agents/core/session/BaseSessionAdapter.d.ts.map +1 -0
  41. package/dist/agents/core/session/BaseSessionAdapter.js +9 -0
  42. package/dist/agents/core/session/BaseSessionAdapter.js.map +1 -0
  43. package/dist/agents/core/session/SessionStore.d.ts +23 -0
  44. package/dist/agents/core/session/SessionStore.d.ts.map +1 -0
  45. package/dist/agents/core/session/SessionStore.js +75 -0
  46. package/dist/agents/core/session/SessionStore.js.map +1 -0
  47. package/dist/agents/core/session/session-config.d.ts +27 -0
  48. package/dist/agents/core/session/session-config.d.ts.map +1 -0
  49. package/dist/agents/core/session/session-config.js +61 -0
  50. package/dist/agents/core/session/session-config.js.map +1 -0
  51. package/dist/agents/core/session/types.d.ts +87 -0
  52. package/dist/agents/core/session/types.d.ts.map +1 -0
  53. package/dist/agents/core/session/types.js +8 -0
  54. package/dist/agents/core/session/types.js.map +1 -0
  55. package/dist/agents/core/session/utils/jsonl-reader.d.ts +15 -0
  56. package/dist/agents/core/session/utils/jsonl-reader.d.ts.map +1 -0
  57. package/dist/agents/core/session/utils/jsonl-reader.js +33 -0
  58. package/dist/agents/core/session/utils/jsonl-reader.js.map +1 -0
  59. package/dist/agents/core/session/utils/jsonl-writer.d.ts +26 -0
  60. package/dist/agents/core/session/utils/jsonl-writer.d.ts.map +1 -0
  61. package/dist/agents/core/session/utils/jsonl-writer.js +56 -0
  62. package/dist/agents/core/session/utils/jsonl-writer.js.map +1 -0
  63. package/dist/agents/core/types.d.ts +78 -11
  64. package/dist/agents/core/types.d.ts.map +1 -1
  65. package/dist/agents/plugins/claude/claude-message-types.d.ts +74 -0
  66. package/dist/agents/plugins/claude/claude-message-types.d.ts.map +1 -0
  67. package/dist/agents/plugins/claude/claude-message-types.js +8 -0
  68. package/dist/agents/plugins/claude/claude-message-types.js.map +1 -0
  69. package/dist/agents/plugins/claude/claude.plugin-installer.d.ts +53 -0
  70. package/dist/agents/plugins/claude/claude.plugin-installer.d.ts.map +1 -0
  71. package/dist/agents/plugins/claude/claude.plugin-installer.js +63 -0
  72. package/dist/agents/plugins/claude/claude.plugin-installer.js.map +1 -0
  73. package/dist/agents/plugins/claude/claude.plugin.d.ts +26 -0
  74. package/dist/agents/plugins/claude/claude.plugin.d.ts.map +1 -0
  75. package/dist/agents/plugins/{claude.plugin.js → claude/claude.plugin.js} +20 -11
  76. package/dist/agents/plugins/claude/claude.plugin.js.map +1 -0
  77. package/dist/agents/plugins/claude/claude.session.d.ts +60 -0
  78. package/dist/agents/plugins/claude/claude.session.d.ts.map +1 -0
  79. package/dist/agents/plugins/claude/claude.session.js +339 -0
  80. package/dist/agents/plugins/claude/claude.session.js.map +1 -0
  81. package/dist/agents/plugins/claude/plugin/.claude-plugin/local-install.json +15 -0
  82. package/dist/agents/plugins/claude/plugin/.claude-plugin/plugin.json +9 -0
  83. package/dist/agents/plugins/claude/plugin/README.md +299 -0
  84. package/dist/agents/plugins/claude/plugin/claude-templates/README.md +539 -0
  85. package/dist/agents/plugins/claude/plugin/claude-templates/templates/CLAUDE.md.template +511 -0
  86. package/dist/agents/plugins/claude/plugin/claude-templates/templates/INDEX.md +205 -0
  87. package/dist/agents/plugins/claude/plugin/claude-templates/templates/TEMPLATE_SIZES.md +74 -0
  88. package/dist/agents/plugins/claude/plugin/claude-templates/templates/guides/api/api-patterns.md.template +207 -0
  89. package/dist/agents/plugins/claude/plugin/claude-templates/templates/guides/architecture/layered-architecture.md.template +143 -0
  90. package/dist/agents/plugins/claude/plugin/claude-templates/templates/guides/architecture/project-structure.md.template +127 -0
  91. package/dist/agents/plugins/claude/plugin/claude-templates/templates/guides/data/database-patterns.md.template +168 -0
  92. package/dist/agents/plugins/claude/plugin/claude-templates/templates/guides/development/development-practices.md.template +210 -0
  93. package/dist/agents/plugins/claude/plugin/claude-templates/templates/guides/integration/external-integrations.md.template +160 -0
  94. package/dist/agents/plugins/claude/plugin/claude-templates/templates/guides/security/security-practices.md.template +170 -0
  95. package/dist/agents/plugins/claude/plugin/claude-templates/templates/guides/standards/code-quality.md.template +150 -0
  96. package/dist/agents/plugins/claude/plugin/claude-templates/templates/guides/standards/git-workflow.md.template +177 -0
  97. package/dist/agents/plugins/claude/plugin/claude-templates/templates/guides/testing/testing-patterns.md.template +143 -0
  98. package/dist/agents/plugins/claude/plugin/commands/README.md +0 -0
  99. package/dist/agents/plugins/claude/plugin/commands/codemie-catchup.md +10 -0
  100. package/dist/agents/plugins/claude/plugin/commands/codemie-init.md +731 -0
  101. package/dist/agents/plugins/claude/plugin/commands/memory-add.md +44 -0
  102. package/dist/agents/plugins/claude/plugin/commands/memory-init.md +18 -0
  103. package/dist/agents/plugins/claude/plugin/commands/memory-refresh.md +54 -0
  104. package/dist/agents/plugins/claude/plugin/hooks/hooks.json +71 -0
  105. package/dist/agents/plugins/claude/session/processors/claude.conversations-processor.d.ts +51 -0
  106. package/dist/agents/plugins/claude/session/processors/claude.conversations-processor.d.ts.map +1 -0
  107. package/dist/agents/plugins/claude/session/processors/claude.conversations-processor.js +840 -0
  108. package/dist/agents/plugins/claude/session/processors/claude.conversations-processor.js.map +1 -0
  109. package/dist/agents/plugins/claude/session/processors/claude.metrics-processor.d.ts +37 -0
  110. package/dist/agents/plugins/claude/session/processors/claude.metrics-processor.d.ts.map +1 -0
  111. package/dist/agents/plugins/claude/session/processors/claude.metrics-processor.js +275 -0
  112. package/dist/agents/plugins/claude/session/processors/claude.metrics-processor.js.map +1 -0
  113. package/dist/agents/plugins/codemie-code.plugin.js +1 -1
  114. package/dist/agents/plugins/codemie-code.plugin.js.map +1 -1
  115. package/dist/agents/plugins/gemini/extension/README.md +88 -0
  116. package/dist/agents/plugins/gemini/extension/gemini-extension.json +11 -0
  117. package/dist/agents/plugins/gemini/extension/hooks/hooks.json +65 -0
  118. package/dist/agents/plugins/gemini/gemini.extension-installer.d.ts +49 -0
  119. package/dist/agents/plugins/gemini/gemini.extension-installer.d.ts.map +1 -0
  120. package/dist/agents/plugins/gemini/gemini.extension-installer.js +63 -0
  121. package/dist/agents/plugins/gemini/gemini.extension-installer.js.map +1 -0
  122. package/dist/agents/plugins/gemini/gemini.hook-transformer.d.ts +43 -0
  123. package/dist/agents/plugins/gemini/gemini.hook-transformer.d.ts.map +1 -0
  124. package/dist/agents/plugins/gemini/gemini.hook-transformer.js +57 -0
  125. package/dist/agents/plugins/gemini/gemini.hook-transformer.js.map +1 -0
  126. package/dist/agents/plugins/gemini/gemini.plugin.d.ts +32 -0
  127. package/dist/agents/plugins/gemini/gemini.plugin.d.ts.map +1 -0
  128. package/dist/agents/plugins/gemini/gemini.plugin.js +136 -0
  129. package/dist/agents/plugins/gemini/gemini.plugin.js.map +1 -0
  130. package/dist/agents/plugins/gemini/gemini.session-adapter.d.ts +68 -0
  131. package/dist/agents/plugins/gemini/gemini.session-adapter.d.ts.map +1 -0
  132. package/dist/agents/plugins/gemini/gemini.session-adapter.js +268 -0
  133. package/dist/agents/plugins/gemini/gemini.session-adapter.js.map +1 -0
  134. package/dist/agents/plugins/gemini/session/processors/gemini.conversations-processor.d.ts +36 -0
  135. package/dist/agents/plugins/gemini/session/processors/gemini.conversations-processor.d.ts.map +1 -0
  136. package/dist/agents/plugins/gemini/session/processors/gemini.conversations-processor.js +186 -0
  137. package/dist/agents/plugins/gemini/session/processors/gemini.conversations-processor.js.map +1 -0
  138. package/dist/agents/plugins/gemini/session/processors/gemini.metrics-processor.d.ts +32 -0
  139. package/dist/agents/plugins/gemini/session/processors/gemini.metrics-processor.d.ts.map +1 -0
  140. package/dist/agents/plugins/gemini/session/processors/gemini.metrics-processor.js +193 -0
  141. package/dist/agents/plugins/gemini/session/processors/gemini.metrics-processor.js.map +1 -0
  142. package/dist/agents/plugins/gemini/session/utils/token-aggregator.d.ts +26 -0
  143. package/dist/agents/plugins/gemini/session/utils/token-aggregator.d.ts.map +1 -0
  144. package/dist/agents/plugins/gemini/session/utils/token-aggregator.js +38 -0
  145. package/dist/agents/plugins/gemini/session/utils/token-aggregator.js.map +1 -0
  146. package/dist/agents/plugins/gemini/session/utils/tool-aggregator.d.ts +33 -0
  147. package/dist/agents/plugins/gemini/session/utils/tool-aggregator.d.ts.map +1 -0
  148. package/dist/agents/plugins/gemini/session/utils/tool-aggregator.js +58 -0
  149. package/dist/agents/plugins/gemini/session/utils/tool-aggregator.js.map +1 -0
  150. package/dist/agents/plugins/gemini/session/utils/turn-detector.d.ts +70 -0
  151. package/dist/agents/plugins/gemini/session/utils/turn-detector.d.ts.map +1 -0
  152. package/dist/agents/plugins/gemini/session/utils/turn-detector.js +86 -0
  153. package/dist/agents/plugins/gemini/session/utils/turn-detector.js.map +1 -0
  154. package/dist/agents/registry.d.ts +7 -2
  155. package/dist/agents/registry.d.ts.map +1 -1
  156. package/dist/agents/registry.js +17 -8
  157. package/dist/agents/registry.js.map +1 -1
  158. package/dist/cli/commands/analytics/data-loader.d.ts +1 -1
  159. package/dist/cli/commands/analytics/data-loader.d.ts.map +1 -1
  160. package/dist/cli/commands/analytics/data-loader.js +3 -3
  161. package/dist/cli/commands/analytics/data-loader.js.map +1 -1
  162. package/dist/cli/commands/analytics/index.js +1 -1
  163. package/dist/cli/commands/analytics/index.js.map +1 -1
  164. package/dist/cli/commands/doctor/checks/AIConfigCheck.js +1 -1
  165. package/dist/cli/commands/doctor/checks/AIConfigCheck.js.map +1 -1
  166. package/dist/cli/commands/doctor/checks/AwsCliCheck.js +1 -1
  167. package/dist/cli/commands/doctor/checks/AwsCliCheck.js.map +1 -1
  168. package/dist/cli/commands/doctor/checks/NpmCheck.js +1 -1
  169. package/dist/cli/commands/doctor/checks/NpmCheck.js.map +1 -1
  170. package/dist/cli/commands/doctor/checks/PythonCheck.d.ts +13 -0
  171. package/dist/cli/commands/doctor/checks/PythonCheck.d.ts.map +1 -1
  172. package/dist/cli/commands/doctor/checks/PythonCheck.js +91 -32
  173. package/dist/cli/commands/doctor/checks/PythonCheck.js.map +1 -1
  174. package/dist/cli/commands/doctor/checks/UvCheck.js +1 -1
  175. package/dist/cli/commands/doctor/checks/UvCheck.js.map +1 -1
  176. package/dist/cli/commands/doctor/types.d.ts +1 -1
  177. package/dist/cli/commands/doctor/types.d.ts.map +1 -1
  178. package/dist/cli/commands/hook.d.ts +7 -0
  179. package/dist/cli/commands/hook.d.ts.map +1 -0
  180. package/dist/cli/commands/hook.js +788 -0
  181. package/dist/cli/commands/hook.js.map +1 -0
  182. package/dist/cli/commands/profile/auth.js +1 -1
  183. package/dist/cli/commands/profile/auth.js.map +1 -1
  184. package/dist/{utils/profile-display.d.ts → cli/commands/profile/display.d.ts} +3 -3
  185. package/dist/cli/commands/profile/display.d.ts.map +1 -0
  186. package/dist/{utils/profile-display.js → cli/commands/profile/display.js} +2 -2
  187. package/dist/cli/commands/profile/display.js.map +1 -0
  188. package/dist/cli/commands/profile/index.js +2 -2
  189. package/dist/cli/commands/profile/index.js.map +1 -1
  190. package/dist/cli/commands/setup.d.ts.map +1 -1
  191. package/dist/cli/commands/setup.js +4 -5
  192. package/dist/cli/commands/setup.js.map +1 -1
  193. package/dist/cli/commands/update.d.ts +3 -0
  194. package/dist/cli/commands/update.d.ts.map +1 -0
  195. package/dist/cli/commands/update.js +291 -0
  196. package/dist/cli/commands/update.js.map +1 -0
  197. package/dist/cli/commands/version.js +1 -1
  198. package/dist/cli/commands/version.js.map +1 -1
  199. package/dist/{utils → cli}/first-time.d.ts +4 -0
  200. package/dist/cli/first-time.d.ts.map +1 -0
  201. package/dist/{utils → cli}/first-time.js +27 -14
  202. package/dist/cli/first-time.js.map +1 -0
  203. package/dist/cli/index.js +6 -2
  204. package/dist/cli/index.js.map +1 -1
  205. package/dist/env/manager.d.ts.map +1 -1
  206. package/dist/env/manager.js +3 -4
  207. package/dist/env/manager.js.map +1 -1
  208. package/dist/frameworks/core/BaseFrameworkAdapter.js +1 -1
  209. package/dist/frameworks/core/BaseFrameworkAdapter.js.map +1 -1
  210. package/dist/frameworks/core/types.d.ts +1 -1
  211. package/dist/frameworks/plugins/bmad.plugin.js +2 -2
  212. package/dist/frameworks/plugins/bmad.plugin.js.map +1 -1
  213. package/dist/frameworks/plugins/speckit.plugin.d.ts.map +1 -1
  214. package/dist/frameworks/plugins/speckit.plugin.js +2 -3
  215. package/dist/frameworks/plugins/speckit.plugin.js.map +1 -1
  216. package/dist/index.d.ts +1 -1
  217. package/dist/index.d.ts.map +1 -1
  218. package/dist/index.js +1 -1
  219. package/dist/index.js.map +1 -1
  220. package/dist/migrations/001-config-rename.migration.d.ts.map +1 -1
  221. package/dist/migrations/001-config-rename.migration.js +2 -2
  222. package/dist/migrations/001-config-rename.migration.js.map +1 -1
  223. package/dist/migrations/002-consolidate-sessions.migration.d.ts +50 -0
  224. package/dist/migrations/002-consolidate-sessions.migration.d.ts.map +1 -0
  225. package/dist/migrations/002-consolidate-sessions.migration.js +220 -0
  226. package/dist/migrations/002-consolidate-sessions.migration.js.map +1 -0
  227. package/dist/migrations/index.d.ts +1 -0
  228. package/dist/migrations/index.d.ts.map +1 -1
  229. package/dist/migrations/index.js +3 -2
  230. package/dist/migrations/index.js.map +1 -1
  231. package/dist/migrations/tracker.d.ts.map +1 -1
  232. package/dist/migrations/tracker.js +2 -2
  233. package/dist/migrations/tracker.js.map +1 -1
  234. package/dist/providers/core/base/http-client.js +1 -1
  235. package/dist/providers/core/types.d.ts +1 -1
  236. package/dist/providers/plugins/ollama/ollama.template.d.ts.map +1 -1
  237. package/dist/providers/plugins/ollama/ollama.template.js +3 -1
  238. package/dist/providers/plugins/ollama/ollama.template.js.map +1 -1
  239. package/dist/providers/plugins/sso/index.d.ts +1 -1
  240. package/dist/providers/plugins/sso/index.d.ts.map +1 -1
  241. package/dist/providers/plugins/sso/index.js +1 -1
  242. package/dist/providers/plugins/sso/index.js.map +1 -1
  243. package/dist/providers/plugins/sso/proxy/plugins/index.d.ts +1 -1
  244. package/dist/providers/plugins/sso/proxy/plugins/index.d.ts.map +1 -1
  245. package/dist/providers/plugins/sso/proxy/plugins/index.js +3 -3
  246. package/dist/providers/plugins/sso/proxy/plugins/index.js.map +1 -1
  247. package/dist/providers/plugins/sso/proxy/plugins/sso.session-sync.plugin.d.ts +40 -0
  248. package/dist/providers/plugins/sso/proxy/plugins/sso.session-sync.plugin.d.ts.map +1 -0
  249. package/dist/providers/plugins/sso/proxy/plugins/sso.session-sync.plugin.js +194 -0
  250. package/dist/providers/plugins/sso/proxy/plugins/sso.session-sync.plugin.js.map +1 -0
  251. package/dist/providers/plugins/sso/proxy/proxy-http-client.d.ts +1 -0
  252. package/dist/providers/plugins/sso/proxy/proxy-http-client.d.ts.map +1 -1
  253. package/dist/providers/plugins/sso/proxy/proxy-http-client.js +40 -6
  254. package/dist/providers/plugins/sso/proxy/proxy-http-client.js.map +1 -1
  255. package/dist/providers/plugins/sso/session/BaseProcessor.d.ts +72 -0
  256. package/dist/providers/plugins/sso/session/BaseProcessor.d.ts.map +1 -0
  257. package/dist/providers/plugins/sso/session/BaseProcessor.js +9 -0
  258. package/dist/providers/plugins/sso/session/BaseProcessor.js.map +1 -0
  259. package/dist/providers/plugins/sso/session/BaseSessionAdapter.d.ts +99 -0
  260. package/dist/providers/plugins/sso/session/BaseSessionAdapter.d.ts.map +1 -0
  261. package/dist/providers/plugins/sso/session/BaseSessionAdapter.js +9 -0
  262. package/dist/providers/plugins/sso/session/BaseSessionAdapter.js.map +1 -0
  263. package/dist/providers/plugins/sso/session/SessionSyncer.d.ts +36 -0
  264. package/dist/providers/plugins/sso/session/SessionSyncer.d.ts.map +1 -0
  265. package/dist/providers/plugins/sso/session/SessionSyncer.js +140 -0
  266. package/dist/providers/plugins/sso/session/SessionSyncer.js.map +1 -0
  267. package/dist/providers/plugins/sso/session/processors/conversations/conversation-api-client.d.ts +26 -0
  268. package/dist/providers/plugins/sso/session/processors/conversations/conversation-api-client.d.ts.map +1 -0
  269. package/dist/providers/plugins/sso/session/processors/conversations/conversation-api-client.js +146 -0
  270. package/dist/providers/plugins/sso/session/processors/conversations/conversation-api-client.js.map +1 -0
  271. package/dist/providers/plugins/sso/session/processors/conversations/conversation-sync-processor.d.ts +23 -0
  272. package/dist/providers/plugins/sso/session/processors/conversations/conversation-sync-processor.d.ts.map +1 -0
  273. package/dist/providers/plugins/sso/session/processors/conversations/conversation-sync-processor.js +171 -0
  274. package/dist/providers/plugins/sso/session/processors/conversations/conversation-sync-processor.js.map +1 -0
  275. package/dist/providers/plugins/sso/session/processors/conversations/conversation-types.d.ts +69 -0
  276. package/dist/providers/plugins/sso/session/processors/conversations/conversation-types.d.ts.map +1 -0
  277. package/dist/providers/plugins/sso/session/processors/conversations/conversation-types.js +7 -0
  278. package/dist/providers/plugins/sso/session/processors/conversations/conversation-types.js.map +1 -0
  279. package/dist/providers/plugins/sso/session/processors/metrics/MetricsWriter.d.ts +30 -0
  280. package/dist/providers/plugins/sso/session/processors/metrics/MetricsWriter.d.ts.map +1 -0
  281. package/dist/providers/plugins/sso/session/processors/metrics/MetricsWriter.js +79 -0
  282. package/dist/providers/plugins/sso/session/processors/metrics/MetricsWriter.js.map +1 -0
  283. package/dist/providers/plugins/sso/{metrics/sync/sso.metrics-aggregator.d.ts → session/processors/metrics/metrics-aggregator.d.ts} +6 -5
  284. package/dist/providers/plugins/sso/session/processors/metrics/metrics-aggregator.d.ts.map +1 -0
  285. package/dist/providers/plugins/sso/{metrics/sync/sso.metrics-aggregator.js → session/processors/metrics/metrics-aggregator.js} +20 -12
  286. package/dist/providers/plugins/sso/session/processors/metrics/metrics-aggregator.js.map +1 -0
  287. package/dist/providers/plugins/sso/{metrics/sync/sso.metrics-sender.d.ts → session/processors/metrics/metrics-api-client.d.ts} +18 -11
  288. package/dist/providers/plugins/sso/session/processors/metrics/metrics-api-client.d.ts.map +1 -0
  289. package/dist/providers/plugins/sso/{metrics/sync/sso.metrics-sender.js → session/processors/metrics/metrics-api-client.js} +143 -15
  290. package/dist/providers/plugins/sso/session/processors/metrics/metrics-api-client.js.map +1 -0
  291. package/dist/providers/plugins/sso/{metrics/sync/sso.metrics-post-processor.d.ts → session/processors/metrics/metrics-post-processor.d.ts} +3 -3
  292. package/dist/providers/plugins/sso/session/processors/metrics/metrics-post-processor.d.ts.map +1 -0
  293. package/dist/providers/plugins/sso/{metrics/sync/sso.metrics-post-processor.js → session/processors/metrics/metrics-post-processor.js} +3 -3
  294. package/dist/providers/plugins/sso/session/processors/metrics/metrics-post-processor.js.map +1 -0
  295. package/dist/providers/plugins/sso/session/processors/metrics/metrics-sync-processor.d.ts +24 -0
  296. package/dist/providers/plugins/sso/session/processors/metrics/metrics-sync-processor.d.ts.map +1 -0
  297. package/dist/providers/plugins/sso/{metrics/sync/sso.metrics-sync.plugin.js → session/processors/metrics/metrics-sync-processor.js} +94 -165
  298. package/dist/providers/plugins/sso/session/processors/metrics/metrics-sync-processor.js.map +1 -0
  299. package/dist/providers/plugins/sso/{metrics/sync/sso.metrics-types.d.ts → session/processors/metrics/metrics-types.d.ts} +2 -1
  300. package/dist/providers/plugins/sso/session/processors/metrics/metrics-types.d.ts.map +1 -0
  301. package/dist/providers/plugins/sso/{metrics/sync/sso.metrics-types.js → session/processors/metrics/metrics-types.js} +1 -1
  302. package/dist/providers/plugins/sso/session/processors/metrics/metrics-types.js.map +1 -0
  303. package/dist/providers/plugins/sso/session/utils/jsonl-reader.d.ts +15 -0
  304. package/dist/providers/plugins/sso/session/utils/jsonl-reader.d.ts.map +1 -0
  305. package/dist/providers/plugins/sso/session/utils/jsonl-reader.js +33 -0
  306. package/dist/providers/plugins/sso/session/utils/jsonl-reader.js.map +1 -0
  307. package/dist/providers/plugins/sso/session/utils/jsonl-writer.d.ts +26 -0
  308. package/dist/providers/plugins/sso/session/utils/jsonl-writer.d.ts.map +1 -0
  309. package/dist/providers/plugins/sso/{metrics/sync/sso.jsonl-writer.js → session/utils/jsonl-writer.js} +11 -27
  310. package/dist/providers/plugins/sso/session/utils/jsonl-writer.js.map +1 -0
  311. package/dist/providers/plugins/sso/sso.auth.js +1 -1
  312. package/dist/providers/plugins/sso/sso.auth.js.map +1 -1
  313. package/dist/providers/plugins/sso/sso.http-client.d.ts +1 -1
  314. package/dist/providers/plugins/sso/sso.http-client.js +1 -1
  315. package/dist/providers/plugins/sso/sso.http-client.js.map +1 -1
  316. package/dist/providers/plugins/sso/sso.template.d.ts.map +1 -1
  317. package/dist/providers/plugins/sso/sso.template.js +71 -43
  318. package/dist/providers/plugins/sso/sso.template.js.map +1 -1
  319. package/dist/utils/{config-loader.d.ts → config.d.ts} +6 -1
  320. package/dist/utils/config.d.ts.map +1 -0
  321. package/dist/utils/{config-loader.js → config.js} +30 -4
  322. package/dist/utils/config.js.map +1 -0
  323. package/dist/utils/errors.d.ts +89 -0
  324. package/dist/utils/errors.d.ts.map +1 -1
  325. package/dist/utils/errors.js +340 -0
  326. package/dist/utils/errors.js.map +1 -1
  327. package/dist/utils/exec.d.ts +6 -0
  328. package/dist/utils/exec.d.ts.map +1 -1
  329. package/dist/utils/exec.js +6 -0
  330. package/dist/utils/exec.js.map +1 -1
  331. package/dist/utils/file-operations.d.ts +20 -0
  332. package/dist/utils/file-operations.d.ts.map +1 -0
  333. package/dist/utils/file-operations.js +48 -0
  334. package/dist/utils/file-operations.js.map +1 -0
  335. package/dist/utils/logger.d.ts +2 -1
  336. package/dist/utils/logger.d.ts.map +1 -1
  337. package/dist/utils/logger.js +15 -7
  338. package/dist/utils/logger.js.map +1 -1
  339. package/dist/utils/{json-parser.d.ts → parsers.d.ts} +1 -1
  340. package/dist/utils/parsers.d.ts.map +1 -0
  341. package/dist/utils/{json-parser.js → parsers.js} +1 -1
  342. package/dist/utils/parsers.js.map +1 -0
  343. package/dist/utils/{path-utils.d.ts → paths.d.ts} +77 -12
  344. package/dist/utils/paths.d.ts.map +1 -0
  345. package/dist/utils/{path-utils.js → paths.js} +103 -12
  346. package/dist/utils/paths.js.map +1 -0
  347. package/dist/utils/{npm.d.ts → processes.d.ts} +44 -7
  348. package/dist/utils/processes.d.ts.map +1 -0
  349. package/dist/utils/{npm.js → processes.js} +129 -10
  350. package/dist/utils/processes.js.map +1 -0
  351. package/dist/utils/profile.d.ts +1 -16
  352. package/dist/utils/profile.d.ts.map +1 -1
  353. package/dist/utils/profile.js +1 -27
  354. package/dist/utils/profile.js.map +1 -1
  355. package/dist/utils/security.d.ts +62 -0
  356. package/dist/utils/security.d.ts.map +1 -0
  357. package/dist/utils/security.js +396 -0
  358. package/dist/utils/security.js.map +1 -0
  359. package/package.json +11 -11
  360. package/scripts/copy-plugins.js +57 -0
  361. package/scripts/license-check.js +23 -0
  362. package/bin/codemie-codex.js +0 -18
  363. package/bin/codemie-deepagents.js +0 -18
  364. package/dist/agents/core/BaseMetricsAdapter.d.ts +0 -165
  365. package/dist/agents/core/BaseMetricsAdapter.d.ts.map +0 -1
  366. package/dist/agents/core/BaseMetricsAdapter.js +0 -308
  367. package/dist/agents/core/BaseMetricsAdapter.js.map +0 -1
  368. package/dist/agents/core/metrics/MetricsOrchestrator.d.ts +0 -81
  369. package/dist/agents/core/metrics/MetricsOrchestrator.d.ts.map +0 -1
  370. package/dist/agents/core/metrics/MetricsOrchestrator.js +0 -417
  371. package/dist/agents/core/metrics/MetricsOrchestrator.js.map +0 -1
  372. package/dist/agents/core/metrics/core/DeltaWriter.d.ts +0 -49
  373. package/dist/agents/core/metrics/core/DeltaWriter.d.ts.map +0 -1
  374. package/dist/agents/core/metrics/core/DeltaWriter.js +0 -152
  375. package/dist/agents/core/metrics/core/DeltaWriter.js.map +0 -1
  376. package/dist/agents/core/metrics/core/FileSnapshotter.d.ts +0 -22
  377. package/dist/agents/core/metrics/core/FileSnapshotter.d.ts.map +0 -1
  378. package/dist/agents/core/metrics/core/FileSnapshotter.js +0 -74
  379. package/dist/agents/core/metrics/core/FileSnapshotter.js.map +0 -1
  380. package/dist/agents/core/metrics/core/SessionCorrelator.d.ts +0 -34
  381. package/dist/agents/core/metrics/core/SessionCorrelator.d.ts.map +0 -1
  382. package/dist/agents/core/metrics/core/SessionCorrelator.js +0 -157
  383. package/dist/agents/core/metrics/core/SessionCorrelator.js.map +0 -1
  384. package/dist/agents/core/metrics/core/SyncStateManager.d.ts +0 -69
  385. package/dist/agents/core/metrics/core/SyncStateManager.d.ts.map +0 -1
  386. package/dist/agents/core/metrics/core/SyncStateManager.js +0 -283
  387. package/dist/agents/core/metrics/core/SyncStateManager.js.map +0 -1
  388. package/dist/agents/core/metrics/session/SessionStore.d.ts +0 -43
  389. package/dist/agents/core/metrics/session/SessionStore.d.ts.map +0 -1
  390. package/dist/agents/core/metrics/session/SessionStore.js +0 -146
  391. package/dist/agents/core/metrics/session/SessionStore.js.map +0 -1
  392. package/dist/agents/core/metrics-config.d.ts +0 -38
  393. package/dist/agents/core/metrics-config.d.ts.map +0 -1
  394. package/dist/agents/core/metrics-config.js +0 -95
  395. package/dist/agents/core/metrics-config.js.map +0 -1
  396. package/dist/agents/plugins/claude.metrics.d.ts +0 -102
  397. package/dist/agents/plugins/claude.metrics.d.ts.map +0 -1
  398. package/dist/agents/plugins/claude.metrics.js +0 -656
  399. package/dist/agents/plugins/claude.metrics.js.map +0 -1
  400. package/dist/agents/plugins/claude.plugin.d.ts +0 -19
  401. package/dist/agents/plugins/claude.plugin.d.ts.map +0 -1
  402. package/dist/agents/plugins/claude.plugin.js.map +0 -1
  403. package/dist/agents/plugins/codex.plugin.d.ts +0 -17
  404. package/dist/agents/plugins/codex.plugin.d.ts.map +0 -1
  405. package/dist/agents/plugins/codex.plugin.js +0 -386
  406. package/dist/agents/plugins/codex.plugin.js.map +0 -1
  407. package/dist/agents/plugins/deepagents.plugin.d.ts +0 -21
  408. package/dist/agents/plugins/deepagents.plugin.d.ts.map +0 -1
  409. package/dist/agents/plugins/deepagents.plugin.js +0 -104
  410. package/dist/agents/plugins/deepagents.plugin.js.map +0 -1
  411. package/dist/agents/plugins/gemini.metrics.d.ts +0 -99
  412. package/dist/agents/plugins/gemini.metrics.d.ts.map +0 -1
  413. package/dist/agents/plugins/gemini.metrics.js +0 -475
  414. package/dist/agents/plugins/gemini.metrics.js.map +0 -1
  415. package/dist/agents/plugins/gemini.plugin.d.ts +0 -16
  416. package/dist/agents/plugins/gemini.plugin.d.ts.map +0 -1
  417. package/dist/agents/plugins/gemini.plugin.js +0 -80
  418. package/dist/agents/plugins/gemini.plugin.js.map +0 -1
  419. package/dist/agents/plugins/history-parser.d.ts +0 -52
  420. package/dist/agents/plugins/history-parser.d.ts.map +0 -1
  421. package/dist/agents/plugins/history-parser.js +0 -155
  422. package/dist/agents/plugins/history-parser.js.map +0 -1
  423. package/dist/providers/plugins/sso/metrics/sync/sso.jsonl-writer.d.ts +0 -28
  424. package/dist/providers/plugins/sso/metrics/sync/sso.jsonl-writer.d.ts.map +0 -1
  425. package/dist/providers/plugins/sso/metrics/sync/sso.jsonl-writer.js.map +0 -1
  426. package/dist/providers/plugins/sso/metrics/sync/sso.lifecycle-handler.d.ts +0 -62
  427. package/dist/providers/plugins/sso/metrics/sync/sso.lifecycle-handler.d.ts.map +0 -1
  428. package/dist/providers/plugins/sso/metrics/sync/sso.lifecycle-handler.js +0 -157
  429. package/dist/providers/plugins/sso/metrics/sync/sso.lifecycle-handler.js.map +0 -1
  430. package/dist/providers/plugins/sso/metrics/sync/sso.metrics-aggregator.d.ts.map +0 -1
  431. package/dist/providers/plugins/sso/metrics/sync/sso.metrics-aggregator.js.map +0 -1
  432. package/dist/providers/plugins/sso/metrics/sync/sso.metrics-api-client.d.ts +0 -32
  433. package/dist/providers/plugins/sso/metrics/sync/sso.metrics-api-client.d.ts.map +0 -1
  434. package/dist/providers/plugins/sso/metrics/sync/sso.metrics-api-client.js +0 -159
  435. package/dist/providers/plugins/sso/metrics/sync/sso.metrics-api-client.js.map +0 -1
  436. package/dist/providers/plugins/sso/metrics/sync/sso.metrics-post-processor.d.ts.map +0 -1
  437. package/dist/providers/plugins/sso/metrics/sync/sso.metrics-post-processor.js.map +0 -1
  438. package/dist/providers/plugins/sso/metrics/sync/sso.metrics-sender.d.ts.map +0 -1
  439. package/dist/providers/plugins/sso/metrics/sync/sso.metrics-sender.js.map +0 -1
  440. package/dist/providers/plugins/sso/metrics/sync/sso.metrics-sync.plugin.d.ts +0 -36
  441. package/dist/providers/plugins/sso/metrics/sync/sso.metrics-sync.plugin.d.ts.map +0 -1
  442. package/dist/providers/plugins/sso/metrics/sync/sso.metrics-sync.plugin.js.map +0 -1
  443. package/dist/providers/plugins/sso/metrics/sync/sso.metrics-types.d.ts.map +0 -1
  444. package/dist/providers/plugins/sso/metrics/sync/sso.metrics-types.js.map +0 -1
  445. package/dist/utils/config-loader.d.ts.map +0 -1
  446. package/dist/utils/config-loader.js.map +0 -1
  447. package/dist/utils/credential-store.d.ts +0 -22
  448. package/dist/utils/credential-store.d.ts.map +0 -1
  449. package/dist/utils/credential-store.js +0 -165
  450. package/dist/utils/credential-store.js.map +0 -1
  451. package/dist/utils/dirname.d.ts +0 -7
  452. package/dist/utils/dirname.d.ts.map +0 -1
  453. package/dist/utils/dirname.js +0 -11
  454. package/dist/utils/dirname.js.map +0 -1
  455. package/dist/utils/error-context.d.ts +0 -90
  456. package/dist/utils/error-context.d.ts.map +0 -1
  457. package/dist/utils/error-context.js +0 -338
  458. package/dist/utils/error-context.js.map +0 -1
  459. package/dist/utils/first-time.d.ts.map +0 -1
  460. package/dist/utils/first-time.js.map +0 -1
  461. package/dist/utils/git.d.ts +0 -13
  462. package/dist/utils/git.d.ts.map +0 -1
  463. package/dist/utils/git.js +0 -37
  464. package/dist/utils/git.js.map +0 -1
  465. package/dist/utils/installation-id.d.ts +0 -10
  466. package/dist/utils/installation-id.d.ts.map +0 -1
  467. package/dist/utils/installation-id.js +0 -30
  468. package/dist/utils/installation-id.js.map +0 -1
  469. package/dist/utils/json-parser.d.ts.map +0 -1
  470. package/dist/utils/json-parser.js.map +0 -1
  471. package/dist/utils/npm.d.ts.map +0 -1
  472. package/dist/utils/npm.js.map +0 -1
  473. package/dist/utils/path-utils.d.ts.map +0 -1
  474. package/dist/utils/path-utils.js.map +0 -1
  475. package/dist/utils/profile-display.d.ts.map +0 -1
  476. package/dist/utils/profile-display.js.map +0 -1
  477. package/dist/utils/sanitize.d.ts +0 -28
  478. package/dist/utils/sanitize.d.ts.map +0 -1
  479. package/dist/utils/sanitize.js +0 -212
  480. package/dist/utils/sanitize.js.map +0 -1
  481. package/dist/utils/which.d.ts +0 -20
  482. package/dist/utils/which.d.ts.map +0 -1
  483. package/dist/utils/which.js +0 -54
  484. package/dist/utils/which.js.map +0 -1
@@ -1,99 +0,0 @@
1
- /**
2
- * Gemini Metrics Adapter
3
- *
4
- * Implements metrics support for Gemini CLI agent.
5
- * Handles Gemini-specific file formats (JSON) and parsing logic.
6
- */
7
- import { BaseMetricsAdapter } from '../core/BaseMetricsAdapter.js';
8
- import type { MetricSnapshot, MetricDelta, UserPrompt } from '../core/metrics/types.js';
9
- import type { AgentMetadata } from '../core/types.js';
10
- export declare class GeminiMetricsAdapter extends BaseMetricsAdapter {
11
- private lastProjectHash;
12
- constructor(metadata: AgentMetadata);
13
- /**
14
- * Extract projectHash from Gemini session file path
15
- * Path format: ~/.gemini/tmp/{projectHash}/chats/session-*.json
16
- *
17
- * Uses base method extractPlaceholder() which reads from metadata template
18
- * Cross-platform: works on Windows/Linux/Mac
19
- */
20
- private extractProjectHashFromPath;
21
- /**
22
- * Check if file matches Gemini session pattern
23
- * Pattern: ~/.gemini/tmp/{projectHash}/chats/session-{date}-{id}.json
24
- * Note: Gemini uses JSON format, not JSONL
25
- *
26
- * Uses base method matchesSessionsStructure() which reads metadata.dataPaths
27
- * Cross-platform: works on Windows/Linux/Mac (no hardcoded path separators)
28
- */
29
- matchesSessionPattern(path: string): boolean;
30
- /**
31
- * Extract session ID from Gemini file path
32
- * Example: ~/.gemini/tmp/abc123/chats/session-2025-12-17T11-51-e5279324.json → 2025-12-17T11-51-e5279324
33
- *
34
- * Cross-platform: uses getFilename() which handles both / and \ separators
35
- */
36
- extractSessionId(path: string): string;
37
- /**
38
- * Parse Gemini session file (JSON format) and extract metrics
39
- * Each message in the messages array contains a conversation turn
40
- */
41
- parseSessionFile(path: string): Promise<MetricSnapshot>;
42
- /**
43
- * Parse session file and extract incremental delta records
44
- * Returns array of delta records for turns with token usage
45
- *
46
- * @param path - Path to Gemini session file
47
- * @param processedRecordIds - Set of record IDs already written to metrics
48
- * @param attachedUserPromptTexts - Set of user prompt texts already attached (persisted from sync state)
49
- */
50
- parseIncrementalMetrics(path: string, processedRecordIds?: Set<string>, attachedUserPromptTexts?: Set<string>): Promise<{
51
- deltas: MetricDelta[];
52
- lastLine: number;
53
- newlyAttachedPrompts: string[];
54
- }>;
55
- /**
56
- * Get user prompts for a specific session
57
- * Gemini stores user prompts in logs.json in project directories
58
- *
59
- * @param sessionId - Gemini session ID
60
- * @param fromTimestamp - Start timestamp (Unix ms) - optional
61
- * @param toTimestamp - End timestamp (Unix ms) - optional
62
- * @returns Array of user prompts
63
- */
64
- getUserPrompts(sessionId: string, fromTimestamp?: number, toTimestamp?: number): Promise<UserPrompt[]>;
65
- /**
66
- * Find user prompt by timestamp with fuzzy matching
67
- * Finds the closest user prompt within the tolerance window
68
- *
69
- * @param userPrompts - Array of user prompts from logs.json
70
- * @param targetTimestamp - Target timestamp to match (Unix ms)
71
- * @param toleranceMs - Tolerance window in milliseconds (default: 1000ms = ±1s)
72
- * @returns Closest matching user prompt or undefined
73
- */
74
- private findUserPromptByTimestamp;
75
- /**
76
- * Extract file operation details from tool input
77
- *
78
- * @param toolName - Tool name (read_file, write_file, etc.)
79
- * @param input - Tool input parameters
80
- */
81
- private extractFileOperation;
82
- /**
83
- * Gemini uses object-based watermark (message ID tracking)
84
- */
85
- getWatermarkStrategy(): 'hash' | 'line' | 'object';
86
- /**
87
- * Gemini initialization delay: 500ms (same as Claude)
88
- */
89
- getInitDelay(): number;
90
- /**
91
- * Override getDataPaths to handle dynamic projectHash pattern
92
- * Pattern: ~/.gemini/tmp/{projectHash}/chats/
93
- */
94
- getDataPaths(): {
95
- sessionsDir: string;
96
- settingsDir?: string;
97
- };
98
- }
99
- //# sourceMappingURL=gemini.metrics.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"gemini.metrics.d.ts","sourceRoot":"","sources":["../../../src/agents/plugins/gemini.metrics.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,KAAK,EACV,cAAc,EACd,WAAW,EAIX,UAAU,EACX,MAAM,0BAA0B,CAAC;AAElC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAGtD,qBAAa,oBAAqB,SAAQ,kBAAkB;IAE1D,OAAO,CAAC,eAAe,CAAuB;gBAElC,QAAQ,EAAE,aAAa;IAInC;;;;;;OAMG;IACH,OAAO,CAAC,0BAA0B;IAIlC;;;;;;;OAOG;IACH,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAc5C;;;;;OAKG;IACH,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAStC;;;OAGG;IACG,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAuG7D;;;;;;;OAOG;IACG,uBAAuB,CAC3B,IAAI,EAAE,MAAM,EACZ,kBAAkB,GAAE,GAAG,CAAC,MAAM,CAAa,EAC3C,uBAAuB,GAAE,GAAG,CAAC,MAAM,CAAa,GAC/C,OAAO,CAAC;QACT,MAAM,EAAE,WAAW,EAAE,CAAC;QACtB,QAAQ,EAAE,MAAM,CAAC;QACjB,oBAAoB,EAAE,MAAM,EAAE,CAAC;KAChC,CAAC;IAiJF;;;;;;;;OAQG;IACG,cAAc,CAClB,SAAS,EAAE,MAAM,EACjB,aAAa,CAAC,EAAE,MAAM,EACtB,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,UAAU,EAAE,CAAC;IAgGxB;;;;;;;;OAQG;IACH,OAAO,CAAC,yBAAyB;IAmBjC;;;;;OAKG;IACH,OAAO,CAAC,oBAAoB;IAoC5B;;OAEG;IACH,oBAAoB,IAAI,MAAM,GAAG,MAAM,GAAG,QAAQ;IAIlD;;OAEG;IACH,YAAY,IAAI,MAAM;IAItB;;;OAGG;IACH,YAAY,IAAI;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE;CAuB9D"}
@@ -1,475 +0,0 @@
1
- /**
2
- * Gemini Metrics Adapter
3
- *
4
- * Implements metrics support for Gemini CLI agent.
5
- * Handles Gemini-specific file formats (JSON) and parsing logic.
6
- */
7
- import { readFile } from 'fs/promises';
8
- import { join } from 'path';
9
- import { existsSync } from 'fs';
10
- import { BaseMetricsAdapter } from '../core/BaseMetricsAdapter.js';
11
- import { logger } from '../../utils/logger.js';
12
- import { getFilename } from '../../utils/path-utils.js';
13
- export class GeminiMetricsAdapter extends BaseMetricsAdapter {
14
- // Cache projectHash from last parsed session to optimize getUserPrompts()
15
- lastProjectHash = null;
16
- constructor(metadata) {
17
- super('gemini', metadata);
18
- }
19
- /**
20
- * Extract projectHash from Gemini session file path
21
- * Path format: ~/.gemini/tmp/{projectHash}/chats/session-*.json
22
- *
23
- * Uses base method extractPlaceholder() which reads from metadata template
24
- * Cross-platform: works on Windows/Linux/Mac
25
- */
26
- extractProjectHashFromPath(path) {
27
- return this.extractPlaceholder(path, 'projectHash');
28
- }
29
- /**
30
- * Check if file matches Gemini session pattern
31
- * Pattern: ~/.gemini/tmp/{projectHash}/chats/session-{date}-{id}.json
32
- * Note: Gemini uses JSON format, not JSONL
33
- *
34
- * Uses base method matchesSessionsStructure() which reads metadata.dataPaths
35
- * Cross-platform: works on Windows/Linux/Mac (no hardcoded path separators)
36
- */
37
- matchesSessionPattern(path) {
38
- // Validate structure using metadata template: .gemini/tmp/{projectHash}/chats/
39
- if (!this.matchesSessionsStructure(path)) {
40
- return false;
41
- }
42
- // Validate filename pattern (cross-platform)
43
- const filename = getFilename(path);
44
- // Gemini pattern: session-{YYYY}-{MM}-{DD}T{HH}-{MM}-{hex8+}.json
45
- // Flexible hex ID matching (8+ chars) to support future format changes
46
- return /^session-\d{4}-\d{2}-\d{2}T\d{2}-\d{2}-[a-f0-9]+\.json$/.test(filename);
47
- }
48
- /**
49
- * Extract session ID from Gemini file path
50
- * Example: ~/.gemini/tmp/abc123/chats/session-2025-12-17T11-51-e5279324.json → 2025-12-17T11-51-e5279324
51
- *
52
- * Cross-platform: uses getFilename() which handles both / and \ separators
53
- */
54
- extractSessionId(path) {
55
- // Extract filename only (cross-platform)
56
- const filename = getFilename(path);
57
- // Remove 'session-' prefix and '.json' extension
58
- // Example: 'session-2025-12-17T11-51-e5279324.json' → '2025-12-17T11-51-e5279324'
59
- return filename.replace(/^session-/, '').replace(/\.json$/, '');
60
- }
61
- /**
62
- * Parse Gemini session file (JSON format) and extract metrics
63
- * Each message in the messages array contains a conversation turn
64
- */
65
- async parseSessionFile(path) {
66
- try {
67
- // Cache projectHash for getUserPrompts() optimization
68
- this.lastProjectHash = this.extractProjectHashFromPath(path);
69
- const content = await readFile(path, 'utf-8');
70
- const session = JSON.parse(content);
71
- if (!session.messages || session.messages.length === 0) {
72
- throw new Error('Empty session file');
73
- }
74
- // Aggregate metrics from all messages
75
- let inputTokens = 0;
76
- let outputTokens = 0;
77
- let cacheReadTokens = 0;
78
- // Track all models
79
- const modelCalls = new Map();
80
- // Tool tracking
81
- const toolCalls = [];
82
- for (const message of session.messages) {
83
- // Track models
84
- if (message.model && message.type === 'gemini') {
85
- const model = message.model;
86
- modelCalls.set(model, (modelCalls.get(model) || 0) + 1);
87
- }
88
- // Aggregate token usage (only from gemini messages)
89
- if (message.type === 'gemini' && message.tokens) {
90
- inputTokens += message.tokens.input || 0;
91
- // Output = output tokens + thoughts tokens (model's internal reasoning)
92
- outputTokens += (message.tokens.output || 0) + (message.tokens.thoughts || 0);
93
- cacheReadTokens += message.tokens.cached || 0; // Gemini "cached" → CodeMie "cacheRead"
94
- // Extract tool calls
95
- if (message.toolCalls && Array.isArray(message.toolCalls)) {
96
- for (const toolCall of message.toolCalls) {
97
- // Determine status: check 'status' field first, fallback to result.success
98
- let status = 'error';
99
- if (toolCall.status) {
100
- status = toolCall.status === 'success' ? 'success' : 'error';
101
- }
102
- else if (toolCall.result && typeof toolCall.result.success === 'boolean') {
103
- status = toolCall.result.success ? 'success' : 'error';
104
- }
105
- toolCalls.push({
106
- id: toolCall.id,
107
- name: toolCall.name,
108
- timestamp: new Date(toolCall.timestamp).getTime(),
109
- status,
110
- input: toolCall.args,
111
- error: status === 'error' ? (toolCall.error || toolCall.result?.message) : undefined,
112
- fileOperation: this.extractFileOperation(toolCall.name, toolCall.args)
113
- });
114
- }
115
- }
116
- }
117
- }
118
- // Build aggregated tool usage summary
119
- const toolUsageSummary = this.buildToolUsageSummary(toolCalls);
120
- // Get all models
121
- const allModels = Array.from(modelCalls.keys());
122
- const snapshot = {
123
- sessionId: session.sessionId || '',
124
- timestamp: Date.now(),
125
- tokens: {
126
- input: inputTokens,
127
- output: outputTokens,
128
- cacheRead: cacheReadTokens > 0 ? cacheReadTokens : undefined
129
- },
130
- toolCalls,
131
- toolUsageSummary,
132
- turnCount: session.messages.length,
133
- model: allModels.length > 0 ? allModels[0] : undefined,
134
- metadata: {
135
- totalInputTokens: inputTokens + cacheReadTokens,
136
- models: allModels,
137
- modelCalls: Object.fromEntries(modelCalls)
138
- }
139
- };
140
- logger.debug(`[GeminiMetrics] Parsed session ${session.sessionId}: ${inputTokens} input, ${outputTokens} output, ` +
141
- `${cacheReadTokens} cache read, ${toolCalls.length} tool calls, ${allModels.length} models`);
142
- return snapshot;
143
- }
144
- catch (error) {
145
- logger.error(`[GeminiMetrics] Failed to parse session file: ${path}`, error);
146
- throw error;
147
- }
148
- }
149
- /**
150
- * Parse session file and extract incremental delta records
151
- * Returns array of delta records for turns with token usage
152
- *
153
- * @param path - Path to Gemini session file
154
- * @param processedRecordIds - Set of record IDs already written to metrics
155
- * @param attachedUserPromptTexts - Set of user prompt texts already attached (persisted from sync state)
156
- */
157
- async parseIncrementalMetrics(path, processedRecordIds = new Set(), attachedUserPromptTexts = new Set()) {
158
- try {
159
- // Cache projectHash for getUserPrompts() optimization
160
- this.lastProjectHash = this.extractProjectHashFromPath(path);
161
- const content = await readFile(path, 'utf-8');
162
- const session = JSON.parse(content);
163
- if (!session.messages || session.messages.length === 0) {
164
- logger.debug(`[GeminiMetrics] Session file empty or no messages found`);
165
- return { deltas: [], lastLine: 0, newlyAttachedPrompts: [] };
166
- }
167
- logger.debug(`[GeminiMetrics] Analyzing session with ${session.messages.length} total message${session.messages.length !== 1 ? 's' : ''}`);
168
- // Load user prompts from logs.json
169
- const userPrompts = await this.getUserPrompts(session.sessionId);
170
- // Build map by messageId (sequential 0, 1, 2...) for reliable correlation
171
- const userPromptsByMessageId = new Map();
172
- for (const prompt of userPrompts) {
173
- // logs.json has messageId field (sequential) - extract from metadata if available
174
- const messageId = prompt.messageId;
175
- if (typeof messageId === 'number') {
176
- userPromptsByMessageId.set(messageId, prompt);
177
- }
178
- }
179
- // Track initial size to determine newly attached prompts
180
- const initialAttachedCount = attachedUserPromptTexts.size;
181
- const deltas = [];
182
- let lastUserPrompt;
183
- let userMessageIndex = 0; // Track sequential user message count
184
- for (const message of session.messages) {
185
- // Skip already processed messages
186
- if (processedRecordIds.has(message.id)) {
187
- continue;
188
- }
189
- // Track user prompts by sequential message index
190
- if (message.type === 'user') {
191
- // Try to match by messageId first (most reliable)
192
- lastUserPrompt = userPromptsByMessageId.get(userMessageIndex);
193
- // Fallback: find by closest timestamp within ±1000ms window
194
- if (!lastUserPrompt && userPrompts.length > 0) {
195
- const timestamp = new Date(message.timestamp).getTime();
196
- lastUserPrompt = this.findUserPromptByTimestamp(userPrompts, timestamp, 1000);
197
- }
198
- userMessageIndex++;
199
- }
200
- // Create delta for gemini messages with tokens
201
- if (message.type === 'gemini' && message.tokens) {
202
- const tools = {};
203
- const toolStatus = {};
204
- const fileOperations = [];
205
- let apiErrorMessage;
206
- // Extract tool usage
207
- if (message.toolCalls && Array.isArray(message.toolCalls)) {
208
- for (const toolCall of message.toolCalls) {
209
- const toolName = toolCall.name;
210
- tools[toolName] = (tools[toolName] || 0) + 1;
211
- if (!toolStatus[toolName]) {
212
- toolStatus[toolName] = { success: 0, failure: 0 };
213
- }
214
- // Determine status: check 'status' field first, fallback to result.success
215
- let isSuccess = false;
216
- if (toolCall.status) {
217
- isSuccess = toolCall.status === 'success';
218
- }
219
- else if (toolCall.result && typeof toolCall.result.success === 'boolean') {
220
- isSuccess = toolCall.result.success;
221
- }
222
- if (isSuccess) {
223
- toolStatus[toolName].success++;
224
- const fileOp = this.extractFileOperation(toolName, toolCall.args);
225
- if (fileOp) {
226
- fileOperations.push(fileOp);
227
- }
228
- }
229
- else {
230
- toolStatus[toolName].failure++;
231
- if (!apiErrorMessage && (toolCall.error || toolCall.result?.message)) {
232
- apiErrorMessage = toolCall.error || toolCall.result?.message;
233
- }
234
- }
235
- }
236
- }
237
- // Include user prompt if available and not already attached
238
- const userPrompts = [];
239
- if (lastUserPrompt && lastUserPrompt.display && !attachedUserPromptTexts.has(lastUserPrompt.display)) {
240
- userPrompts.push({
241
- count: 1,
242
- text: lastUserPrompt.display
243
- });
244
- attachedUserPromptTexts.add(lastUserPrompt.display);
245
- lastUserPrompt = undefined;
246
- }
247
- // Create delta record
248
- const delta = {
249
- recordId: message.id,
250
- sessionId: '', // Set by caller (MetricsOrchestrator)
251
- agentSessionId: session.sessionId || '',
252
- timestamp: message.timestamp,
253
- gitBranch: undefined,
254
- tokens: {
255
- input: message.tokens.input || 0,
256
- // Output = output tokens + thoughts tokens (model's internal reasoning)
257
- output: (message.tokens.output || 0) + (message.tokens.thoughts || 0),
258
- cacheRead: message.tokens.cached > 0 ? message.tokens.cached : undefined
259
- },
260
- tools,
261
- toolStatus: Object.keys(toolStatus).length > 0 ? toolStatus : undefined,
262
- fileOperations: fileOperations.length > 0 ? fileOperations : undefined,
263
- userPrompts: userPrompts.length > 0 ? userPrompts : undefined,
264
- apiErrorMessage,
265
- models: message.model ? [message.model] : undefined
266
- };
267
- deltas.push(delta);
268
- }
269
- }
270
- // Calculate newly attached prompts
271
- const newlyAttachedPrompts = Array.from(attachedUserPromptTexts).slice(initialAttachedCount);
272
- return {
273
- deltas,
274
- lastLine: session.messages.length,
275
- newlyAttachedPrompts
276
- };
277
- }
278
- catch (error) {
279
- logger.error(`[GeminiMetrics] Failed to parse incremental metrics: ${path}`, error);
280
- throw error;
281
- }
282
- }
283
- /**
284
- * Get user prompts for a specific session
285
- * Gemini stores user prompts in logs.json in project directories
286
- *
287
- * @param sessionId - Gemini session ID
288
- * @param fromTimestamp - Start timestamp (Unix ms) - optional
289
- * @param toTimestamp - End timestamp (Unix ms) - optional
290
- * @returns Array of user prompts
291
- */
292
- async getUserPrompts(sessionId, fromTimestamp, toTimestamp) {
293
- try {
294
- if (!this.metadata?.dataPaths?.home) {
295
- return [];
296
- }
297
- const home = this.getHomeDir();
298
- // Parse sessions template to extract directory structure
299
- // Template: 'tmp/{projectHash}/chats' → ['tmp', '{projectHash}', 'chats']
300
- const sessionsParts = this.parseSessionsTemplate();
301
- if (sessionsParts.length === 0) {
302
- logger.debug('[GeminiMetrics] No sessions template configured');
303
- return [];
304
- }
305
- // Build path to project directories by taking segments before first placeholder
306
- // 'tmp/{projectHash}/chats' → 'tmp'
307
- const staticSegments = [];
308
- for (const segment of sessionsParts) {
309
- if (this.isDynamicSegment(segment)) {
310
- break; // Stop at first placeholder
311
- }
312
- staticSegments.push(segment);
313
- }
314
- // Construct base path: ~/.gemini/tmp
315
- const projectsBaseDir = join(home, ...staticSegments);
316
- if (!existsSync(projectsBaseDir)) {
317
- return [];
318
- }
319
- // Use cached projectHash from parseSessionFile/parseIncrementalMetrics call
320
- // This is always available when getUserPrompts is called from normal flow
321
- if (!this.lastProjectHash) {
322
- logger.debug('[GeminiMetrics] No projectHash available - cannot determine logs location');
323
- return [];
324
- }
325
- // Get user prompts filename from metadata
326
- if (!this.metadata?.dataPaths?.user_prompts) {
327
- logger.debug('[GeminiMetrics] No user_prompts path configured in metadata');
328
- return [];
329
- }
330
- // Build full path: ~/.gemini/tmp/{projectHash}/logs.json
331
- const logsPath = join(projectsBaseDir, this.lastProjectHash, this.metadata.dataPaths.user_prompts);
332
- if (!existsSync(logsPath)) {
333
- return [];
334
- }
335
- try {
336
- const content = await readFile(logsPath, 'utf-8');
337
- const logs = JSON.parse(content);
338
- // Validate logs structure
339
- if (!Array.isArray(logs)) {
340
- logger.debug(`[GeminiMetrics] Invalid logs.json format in ${this.lastProjectHash}: not an array`);
341
- return [];
342
- }
343
- const prompts = logs
344
- .filter((log) => {
345
- // Validate log entry has required fields
346
- if (!log || !log.sessionId || !log.timestamp || !log.message) {
347
- return false;
348
- }
349
- return log.sessionId === sessionId;
350
- })
351
- .filter((log) => {
352
- const ts = new Date(log.timestamp).getTime();
353
- if (isNaN(ts))
354
- return false; // Invalid timestamp
355
- if (fromTimestamp && ts < fromTimestamp)
356
- return false;
357
- if (toTimestamp && ts > toTimestamp)
358
- return false;
359
- return true;
360
- })
361
- .map((log) => ({
362
- display: log.message,
363
- timestamp: new Date(log.timestamp).getTime(),
364
- project: '', // workingDirectory comes from MetricsSession
365
- sessionId: log.sessionId,
366
- messageId: log.messageId // Preserve messageId for correlation
367
- }));
368
- return prompts;
369
- }
370
- catch (parseError) {
371
- // JSON parse failed or file read error
372
- logger.debug(`[GeminiMetrics] Failed to parse logs.json in ${this.lastProjectHash}:`, parseError);
373
- return [];
374
- }
375
- }
376
- catch (error) {
377
- logger.debug(`[GeminiMetrics] Failed to get user prompts:`, error);
378
- return [];
379
- }
380
- }
381
- /**
382
- * Find user prompt by timestamp with fuzzy matching
383
- * Finds the closest user prompt within the tolerance window
384
- *
385
- * @param userPrompts - Array of user prompts from logs.json
386
- * @param targetTimestamp - Target timestamp to match (Unix ms)
387
- * @param toleranceMs - Tolerance window in milliseconds (default: 1000ms = ±1s)
388
- * @returns Closest matching user prompt or undefined
389
- */
390
- findUserPromptByTimestamp(userPrompts, targetTimestamp, toleranceMs = 1000) {
391
- let closestPrompt;
392
- let closestDiff = Infinity;
393
- for (const prompt of userPrompts) {
394
- const diff = Math.abs(prompt.timestamp - targetTimestamp);
395
- if (diff <= toleranceMs && diff < closestDiff) {
396
- closestDiff = diff;
397
- closestPrompt = prompt;
398
- }
399
- }
400
- return closestPrompt;
401
- }
402
- /**
403
- * Extract file operation details from tool input
404
- *
405
- * @param toolName - Tool name (read_file, write_file, etc.)
406
- * @param input - Tool input parameters
407
- */
408
- extractFileOperation(toolName, input) {
409
- // Map Gemini tool names to operation types
410
- const typeMap = {
411
- 'read_file': 'read',
412
- 'write_file': 'write',
413
- 'replace': 'edit',
414
- 'glob': 'glob',
415
- 'search_file_content': 'grep',
416
- 'list_directory': 'glob' // Directory listing mapped to glob (similar operation)
417
- };
418
- const type = typeMap[toolName];
419
- if (!type)
420
- return undefined;
421
- const fileOp = { type };
422
- // Handle file_path (most tools) or dir_path (list_directory)
423
- const path = input?.file_path || input?.dir_path;
424
- if (path) {
425
- fileOp.path = path;
426
- fileOp.format = this.extractFormat(path);
427
- fileOp.language = this.detectLanguage(path);
428
- }
429
- if (input?.pattern) {
430
- fileOp.pattern = input.pattern;
431
- }
432
- // Line counts for write operations
433
- if (toolName === 'write_file' && input?.content) {
434
- fileOp.linesAdded = input.content.split('\n').length;
435
- }
436
- return fileOp;
437
- }
438
- /**
439
- * Gemini uses object-based watermark (message ID tracking)
440
- */
441
- getWatermarkStrategy() {
442
- return 'object';
443
- }
444
- /**
445
- * Gemini initialization delay: 500ms (same as Claude)
446
- */
447
- getInitDelay() {
448
- return 500;
449
- }
450
- /**
451
- * Override getDataPaths to handle dynamic projectHash pattern
452
- * Pattern: ~/.gemini/tmp/{projectHash}/chats/
453
- */
454
- getDataPaths() {
455
- const home = this.getHomeDir();
456
- // Parse sessions template to extract directory structure
457
- // Template: 'tmp/{projectHash}/chats' → ['tmp', '{projectHash}', 'chats']
458
- const sessionsParts = this.parseSessionsTemplate();
459
- // Build path by taking segments before first placeholder
460
- const staticSegments = [];
461
- for (const segment of sessionsParts) {
462
- if (this.isDynamicSegment(segment)) {
463
- break;
464
- }
465
- staticSegments.push(segment);
466
- }
467
- // Return base directory - FileSnapshotter will scan subdirectories
468
- // Pattern matching in matchesSessionPattern() handles the rest
469
- return {
470
- sessionsDir: staticSegments.length > 0 ? join(home, ...staticSegments) : home,
471
- settingsDir: home
472
- };
473
- }
474
- }
475
- //# sourceMappingURL=gemini.metrics.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"gemini.metrics.js","sourceRoot":"","sources":["../../../src/agents/plugins/gemini.metrics.ts"],"names":[],"mappings":"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"}
@@ -1,16 +0,0 @@
1
- import { AgentMetadata } from '../core/types.js';
2
- import { BaseAgentAdapter } from '../core/BaseAgentAdapter.js';
3
- import type { AgentMetricsSupport } from '../core/metrics/types.js';
4
- /**
5
- * Gemini CLI Plugin Metadata
6
- */
7
- export declare const GeminiPluginMetadata: AgentMetadata;
8
- /**
9
- * Gemini CLI Adapter
10
- */
11
- export declare class GeminiPlugin extends BaseAgentAdapter {
12
- private metricsAdapter;
13
- constructor();
14
- getMetricsAdapter(): AgentMetricsSupport;
15
- }
16
- //# sourceMappingURL=gemini.plugin.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"gemini.plugin.d.ts","sourceRoot":"","sources":["../../../src/agents/plugins/gemini.plugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAE/D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AA0CpE;;GAEG;AACH,eAAO,MAAM,oBAAoB,EAAE,aAqClC,CAAC;AAEF;;GAEG;AACH,qBAAa,YAAa,SAAQ,gBAAgB;IAChD,OAAO,CAAC,cAAc,CAAsB;;IAO5C,iBAAiB,IAAI,mBAAmB;CAGzC"}