@codemieai/code 0.0.28 → 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 (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 +788 -0
  159. package/dist/cli/commands/hook.js.map +1 -0
  160. package/dist/cli/commands/setup.d.ts.map +1 -1
  161. package/dist/cli/commands/setup.js +3 -4
  162. package/dist/cli/commands/setup.js.map +1 -1
  163. package/dist/cli/commands/update.d.ts.map +1 -1
  164. package/dist/cli/commands/update.js +2 -1
  165. package/dist/cli/commands/update.js.map +1 -1
  166. package/dist/cli/first-time.d.ts +4 -0
  167. package/dist/cli/first-time.d.ts.map +1 -1
  168. package/dist/cli/first-time.js +26 -13
  169. package/dist/cli/first-time.js.map +1 -1
  170. package/dist/cli/index.js +2 -0
  171. package/dist/cli/index.js.map +1 -1
  172. package/dist/frameworks/core/types.d.ts +1 -1
  173. package/dist/frameworks/plugins/speckit.plugin.d.ts.map +1 -1
  174. package/dist/frameworks/plugins/speckit.plugin.js +1 -2
  175. package/dist/frameworks/plugins/speckit.plugin.js.map +1 -1
  176. package/dist/migrations/002-consolidate-sessions.migration.d.ts +50 -0
  177. package/dist/migrations/002-consolidate-sessions.migration.d.ts.map +1 -0
  178. package/dist/migrations/002-consolidate-sessions.migration.js +220 -0
  179. package/dist/migrations/002-consolidate-sessions.migration.js.map +1 -0
  180. package/dist/migrations/index.d.ts +1 -0
  181. package/dist/migrations/index.d.ts.map +1 -1
  182. package/dist/migrations/index.js +3 -2
  183. package/dist/migrations/index.js.map +1 -1
  184. package/dist/providers/core/types.d.ts +1 -1
  185. package/dist/providers/plugins/ollama/ollama.template.d.ts.map +1 -1
  186. package/dist/providers/plugins/ollama/ollama.template.js +2 -10
  187. package/dist/providers/plugins/ollama/ollama.template.js.map +1 -1
  188. package/dist/providers/plugins/sso/index.d.ts +1 -1
  189. package/dist/providers/plugins/sso/index.d.ts.map +1 -1
  190. package/dist/providers/plugins/sso/index.js +1 -1
  191. package/dist/providers/plugins/sso/index.js.map +1 -1
  192. package/dist/providers/plugins/sso/proxy/plugins/index.d.ts +1 -1
  193. package/dist/providers/plugins/sso/proxy/plugins/index.d.ts.map +1 -1
  194. package/dist/providers/plugins/sso/proxy/plugins/index.js +3 -3
  195. package/dist/providers/plugins/sso/proxy/plugins/index.js.map +1 -1
  196. package/dist/providers/plugins/sso/proxy/plugins/sso.session-sync.plugin.d.ts +40 -0
  197. package/dist/providers/plugins/sso/proxy/plugins/sso.session-sync.plugin.d.ts.map +1 -0
  198. package/dist/providers/plugins/sso/proxy/plugins/sso.session-sync.plugin.js +194 -0
  199. package/dist/providers/plugins/sso/proxy/plugins/sso.session-sync.plugin.js.map +1 -0
  200. package/dist/providers/plugins/sso/proxy/proxy-http-client.d.ts +1 -0
  201. package/dist/providers/plugins/sso/proxy/proxy-http-client.d.ts.map +1 -1
  202. package/dist/providers/plugins/sso/proxy/proxy-http-client.js +40 -6
  203. package/dist/providers/plugins/sso/proxy/proxy-http-client.js.map +1 -1
  204. package/dist/providers/plugins/sso/session/BaseProcessor.d.ts +72 -0
  205. package/dist/providers/plugins/sso/session/BaseProcessor.d.ts.map +1 -0
  206. package/dist/providers/plugins/sso/session/BaseProcessor.js +9 -0
  207. package/dist/providers/plugins/sso/session/BaseProcessor.js.map +1 -0
  208. package/dist/providers/plugins/sso/session/BaseSessionAdapter.d.ts +99 -0
  209. package/dist/providers/plugins/sso/session/BaseSessionAdapter.d.ts.map +1 -0
  210. package/dist/providers/plugins/sso/session/BaseSessionAdapter.js +9 -0
  211. package/dist/providers/plugins/sso/session/BaseSessionAdapter.js.map +1 -0
  212. package/dist/providers/plugins/sso/session/SessionSyncer.d.ts +36 -0
  213. package/dist/providers/plugins/sso/session/SessionSyncer.d.ts.map +1 -0
  214. package/dist/providers/plugins/sso/session/SessionSyncer.js +140 -0
  215. package/dist/providers/plugins/sso/session/SessionSyncer.js.map +1 -0
  216. package/dist/providers/plugins/sso/session/processors/conversations/conversation-api-client.d.ts +26 -0
  217. package/dist/providers/plugins/sso/session/processors/conversations/conversation-api-client.d.ts.map +1 -0
  218. package/dist/providers/plugins/sso/session/processors/conversations/conversation-api-client.js +146 -0
  219. package/dist/providers/plugins/sso/session/processors/conversations/conversation-api-client.js.map +1 -0
  220. package/dist/providers/plugins/sso/session/processors/conversations/conversation-sync-processor.d.ts +23 -0
  221. package/dist/providers/plugins/sso/session/processors/conversations/conversation-sync-processor.d.ts.map +1 -0
  222. package/dist/providers/plugins/sso/session/processors/conversations/conversation-sync-processor.js +171 -0
  223. package/dist/providers/plugins/sso/session/processors/conversations/conversation-sync-processor.js.map +1 -0
  224. package/dist/providers/plugins/sso/session/processors/conversations/conversation-types.d.ts +69 -0
  225. package/dist/providers/plugins/sso/session/processors/conversations/conversation-types.d.ts.map +1 -0
  226. package/dist/providers/plugins/sso/session/processors/conversations/conversation-types.js +7 -0
  227. package/dist/providers/plugins/sso/session/processors/conversations/conversation-types.js.map +1 -0
  228. package/dist/providers/plugins/sso/session/processors/metrics/MetricsWriter.d.ts +30 -0
  229. package/dist/providers/plugins/sso/session/processors/metrics/MetricsWriter.d.ts.map +1 -0
  230. package/dist/providers/plugins/sso/session/processors/metrics/MetricsWriter.js +79 -0
  231. package/dist/providers/plugins/sso/session/processors/metrics/MetricsWriter.js.map +1 -0
  232. package/dist/providers/plugins/sso/{metrics/sync/sso.metrics-aggregator.d.ts → session/processors/metrics/metrics-aggregator.d.ts} +6 -5
  233. package/dist/providers/plugins/sso/session/processors/metrics/metrics-aggregator.d.ts.map +1 -0
  234. package/dist/providers/plugins/sso/{metrics/sync/sso.metrics-aggregator.js → session/processors/metrics/metrics-aggregator.js} +20 -12
  235. package/dist/providers/plugins/sso/session/processors/metrics/metrics-aggregator.js.map +1 -0
  236. package/dist/providers/plugins/sso/{metrics/sync/sso.metrics-sender.d.ts → session/processors/metrics/metrics-api-client.d.ts} +18 -11
  237. package/dist/providers/plugins/sso/session/processors/metrics/metrics-api-client.d.ts.map +1 -0
  238. package/dist/providers/plugins/sso/{metrics/sync/sso.metrics-sender.js → session/processors/metrics/metrics-api-client.js} +143 -15
  239. package/dist/providers/plugins/sso/session/processors/metrics/metrics-api-client.js.map +1 -0
  240. package/dist/providers/plugins/sso/{metrics/sync/sso.metrics-post-processor.d.ts → session/processors/metrics/metrics-post-processor.d.ts} +3 -3
  241. package/dist/providers/plugins/sso/session/processors/metrics/metrics-post-processor.d.ts.map +1 -0
  242. package/dist/providers/plugins/sso/{metrics/sync/sso.metrics-post-processor.js → session/processors/metrics/metrics-post-processor.js} +3 -3
  243. package/dist/providers/plugins/sso/session/processors/metrics/metrics-post-processor.js.map +1 -0
  244. package/dist/providers/plugins/sso/session/processors/metrics/metrics-sync-processor.d.ts +24 -0
  245. package/dist/providers/plugins/sso/session/processors/metrics/metrics-sync-processor.d.ts.map +1 -0
  246. package/dist/providers/plugins/sso/{metrics/sync/sso.metrics-sync.plugin.js → session/processors/metrics/metrics-sync-processor.js} +94 -165
  247. package/dist/providers/plugins/sso/session/processors/metrics/metrics-sync-processor.js.map +1 -0
  248. package/dist/providers/plugins/sso/{metrics/sync/sso.metrics-types.d.ts → session/processors/metrics/metrics-types.d.ts} +2 -1
  249. package/dist/providers/plugins/sso/session/processors/metrics/metrics-types.d.ts.map +1 -0
  250. package/dist/providers/plugins/sso/{metrics/sync/sso.metrics-types.js → session/processors/metrics/metrics-types.js} +1 -1
  251. package/dist/providers/plugins/sso/session/processors/metrics/metrics-types.js.map +1 -0
  252. package/dist/providers/plugins/sso/session/utils/jsonl-reader.d.ts +15 -0
  253. package/dist/providers/plugins/sso/session/utils/jsonl-reader.d.ts.map +1 -0
  254. package/dist/providers/plugins/sso/session/utils/jsonl-reader.js +33 -0
  255. package/dist/providers/plugins/sso/session/utils/jsonl-reader.js.map +1 -0
  256. package/dist/providers/plugins/sso/session/utils/jsonl-writer.d.ts +26 -0
  257. package/dist/providers/plugins/sso/session/utils/jsonl-writer.d.ts.map +1 -0
  258. package/dist/providers/plugins/sso/{metrics/sync/sso.jsonl-writer.js → session/utils/jsonl-writer.js} +11 -27
  259. package/dist/providers/plugins/sso/session/utils/jsonl-writer.js.map +1 -0
  260. package/dist/providers/plugins/sso/sso.template.d.ts.map +1 -1
  261. package/dist/providers/plugins/sso/sso.template.js +71 -44
  262. package/dist/providers/plugins/sso/sso.template.js.map +1 -1
  263. package/dist/utils/file-operations.d.ts +20 -0
  264. package/dist/utils/file-operations.d.ts.map +1 -0
  265. package/dist/utils/file-operations.js +48 -0
  266. package/dist/utils/file-operations.js.map +1 -0
  267. package/dist/utils/logger.d.ts +2 -1
  268. package/dist/utils/logger.d.ts.map +1 -1
  269. package/dist/utils/logger.js +12 -4
  270. package/dist/utils/logger.js.map +1 -1
  271. package/dist/utils/paths.d.ts +20 -5
  272. package/dist/utils/paths.d.ts.map +1 -1
  273. package/dist/utils/paths.js +23 -5
  274. package/dist/utils/paths.js.map +1 -1
  275. package/dist/utils/processes.d.ts +2 -0
  276. package/dist/utils/processes.d.ts.map +1 -1
  277. package/dist/utils/processes.js +6 -1
  278. package/dist/utils/processes.js.map +1 -1
  279. package/package.json +9 -9
  280. package/scripts/copy-plugins.js +57 -0
  281. package/scripts/license-check.js +23 -0
  282. package/bin/codemie-codex.js +0 -18
  283. package/bin/codemie-deepagents.js +0 -18
  284. package/dist/agents/core/BaseMetricsAdapter.d.ts +0 -165
  285. package/dist/agents/core/BaseMetricsAdapter.d.ts.map +0 -1
  286. package/dist/agents/core/BaseMetricsAdapter.js +0 -308
  287. package/dist/agents/core/BaseMetricsAdapter.js.map +0 -1
  288. package/dist/agents/core/metrics/MetricsOrchestrator.d.ts +0 -81
  289. package/dist/agents/core/metrics/MetricsOrchestrator.d.ts.map +0 -1
  290. package/dist/agents/core/metrics/MetricsOrchestrator.js +0 -417
  291. package/dist/agents/core/metrics/MetricsOrchestrator.js.map +0 -1
  292. package/dist/agents/core/metrics/core/DeltaWriter.d.ts +0 -49
  293. package/dist/agents/core/metrics/core/DeltaWriter.d.ts.map +0 -1
  294. package/dist/agents/core/metrics/core/DeltaWriter.js +0 -152
  295. package/dist/agents/core/metrics/core/DeltaWriter.js.map +0 -1
  296. package/dist/agents/core/metrics/core/FileSnapshotter.d.ts +0 -22
  297. package/dist/agents/core/metrics/core/FileSnapshotter.d.ts.map +0 -1
  298. package/dist/agents/core/metrics/core/FileSnapshotter.js +0 -74
  299. package/dist/agents/core/metrics/core/FileSnapshotter.js.map +0 -1
  300. package/dist/agents/core/metrics/core/SessionCorrelator.d.ts +0 -34
  301. package/dist/agents/core/metrics/core/SessionCorrelator.d.ts.map +0 -1
  302. package/dist/agents/core/metrics/core/SessionCorrelator.js +0 -157
  303. package/dist/agents/core/metrics/core/SessionCorrelator.js.map +0 -1
  304. package/dist/agents/core/metrics/core/SyncStateManager.d.ts +0 -69
  305. package/dist/agents/core/metrics/core/SyncStateManager.d.ts.map +0 -1
  306. package/dist/agents/core/metrics/core/SyncStateManager.js +0 -283
  307. package/dist/agents/core/metrics/core/SyncStateManager.js.map +0 -1
  308. package/dist/agents/core/metrics/session/SessionStore.d.ts +0 -43
  309. package/dist/agents/core/metrics/session/SessionStore.d.ts.map +0 -1
  310. package/dist/agents/core/metrics/session/SessionStore.js +0 -146
  311. package/dist/agents/core/metrics/session/SessionStore.js.map +0 -1
  312. package/dist/agents/core/metrics-config.d.ts +0 -38
  313. package/dist/agents/core/metrics-config.d.ts.map +0 -1
  314. package/dist/agents/core/metrics-config.js +0 -96
  315. package/dist/agents/core/metrics-config.js.map +0 -1
  316. package/dist/agents/plugins/claude.metrics.d.ts +0 -102
  317. package/dist/agents/plugins/claude.metrics.d.ts.map +0 -1
  318. package/dist/agents/plugins/claude.metrics.js +0 -656
  319. package/dist/agents/plugins/claude.metrics.js.map +0 -1
  320. package/dist/agents/plugins/claude.plugin.d.ts +0 -19
  321. package/dist/agents/plugins/claude.plugin.d.ts.map +0 -1
  322. package/dist/agents/plugins/claude.plugin.js.map +0 -1
  323. package/dist/agents/plugins/codex.metrics.d.ts +0 -69
  324. package/dist/agents/plugins/codex.metrics.d.ts.map +0 -1
  325. package/dist/agents/plugins/codex.metrics.js +0 -483
  326. package/dist/agents/plugins/codex.metrics.js.map +0 -1
  327. package/dist/agents/plugins/codex.plugin.d.ts +0 -21
  328. package/dist/agents/plugins/codex.plugin.d.ts.map +0 -1
  329. package/dist/agents/plugins/codex.plugin.js +0 -222
  330. package/dist/agents/plugins/codex.plugin.js.map +0 -1
  331. package/dist/agents/plugins/deepagents.plugin.d.ts +0 -21
  332. package/dist/agents/plugins/deepagents.plugin.d.ts.map +0 -1
  333. package/dist/agents/plugins/deepagents.plugin.js +0 -104
  334. package/dist/agents/plugins/deepagents.plugin.js.map +0 -1
  335. package/dist/agents/plugins/gemini.metrics.d.ts +0 -99
  336. package/dist/agents/plugins/gemini.metrics.d.ts.map +0 -1
  337. package/dist/agents/plugins/gemini.metrics.js +0 -475
  338. package/dist/agents/plugins/gemini.metrics.js.map +0 -1
  339. package/dist/agents/plugins/gemini.plugin.d.ts +0 -16
  340. package/dist/agents/plugins/gemini.plugin.d.ts.map +0 -1
  341. package/dist/agents/plugins/gemini.plugin.js +0 -80
  342. package/dist/agents/plugins/gemini.plugin.js.map +0 -1
  343. package/dist/agents/plugins/history-parser.d.ts +0 -52
  344. package/dist/agents/plugins/history-parser.d.ts.map +0 -1
  345. package/dist/agents/plugins/history-parser.js +0 -155
  346. package/dist/agents/plugins/history-parser.js.map +0 -1
  347. package/dist/providers/plugins/sso/metrics/sync/sso.jsonl-writer.d.ts +0 -28
  348. package/dist/providers/plugins/sso/metrics/sync/sso.jsonl-writer.d.ts.map +0 -1
  349. package/dist/providers/plugins/sso/metrics/sync/sso.jsonl-writer.js.map +0 -1
  350. package/dist/providers/plugins/sso/metrics/sync/sso.lifecycle-handler.d.ts +0 -62
  351. package/dist/providers/plugins/sso/metrics/sync/sso.lifecycle-handler.d.ts.map +0 -1
  352. package/dist/providers/plugins/sso/metrics/sync/sso.lifecycle-handler.js +0 -157
  353. package/dist/providers/plugins/sso/metrics/sync/sso.lifecycle-handler.js.map +0 -1
  354. package/dist/providers/plugins/sso/metrics/sync/sso.metrics-aggregator.d.ts.map +0 -1
  355. package/dist/providers/plugins/sso/metrics/sync/sso.metrics-aggregator.js.map +0 -1
  356. package/dist/providers/plugins/sso/metrics/sync/sso.metrics-api-client.d.ts +0 -32
  357. package/dist/providers/plugins/sso/metrics/sync/sso.metrics-api-client.d.ts.map +0 -1
  358. package/dist/providers/plugins/sso/metrics/sync/sso.metrics-api-client.js +0 -159
  359. package/dist/providers/plugins/sso/metrics/sync/sso.metrics-api-client.js.map +0 -1
  360. package/dist/providers/plugins/sso/metrics/sync/sso.metrics-post-processor.d.ts.map +0 -1
  361. package/dist/providers/plugins/sso/metrics/sync/sso.metrics-post-processor.js.map +0 -1
  362. package/dist/providers/plugins/sso/metrics/sync/sso.metrics-sender.d.ts.map +0 -1
  363. package/dist/providers/plugins/sso/metrics/sync/sso.metrics-sender.js.map +0 -1
  364. package/dist/providers/plugins/sso/metrics/sync/sso.metrics-sync.plugin.d.ts +0 -36
  365. package/dist/providers/plugins/sso/metrics/sync/sso.metrics-sync.plugin.d.ts.map +0 -1
  366. package/dist/providers/plugins/sso/metrics/sync/sso.metrics-sync.plugin.js.map +0 -1
  367. package/dist/providers/plugins/sso/metrics/sync/sso.metrics-types.d.ts.map +0 -1
  368. package/dist/providers/plugins/sso/metrics/sync/sso.metrics-types.js.map +0 -1
@@ -0,0 +1,63 @@
1
+ /**
2
+ * Gemini Extension Installer
3
+ *
4
+ * Handles automatic installation of Gemini extension to user's home directory
5
+ * for SSO provider integration.
6
+ *
7
+ * Extends BaseExtensionInstaller to provide Gemini-specific paths.
8
+ * All installation logic is inherited from the base class.
9
+ *
10
+ * @module agents/plugins/gemini/extension-installer
11
+ */
12
+ import { join, dirname } from 'path';
13
+ import { fileURLToPath } from 'url';
14
+ import { homedir } from 'os';
15
+ import { BaseExtensionInstaller } from '../../core/extension/BaseExtensionInstaller.js';
16
+ /**
17
+ * Gemini Extension Installer
18
+ *
19
+ * Installs CodeMie extension for Gemini CLI to enable session tracking,
20
+ * metrics collection, and conversation sync.
21
+ *
22
+ * Reduces implementation to ~40 lines by extending BaseExtensionInstaller.
23
+ */
24
+ export class GeminiExtensionInstaller extends BaseExtensionInstaller {
25
+ /**
26
+ * Constructor
27
+ * @param metadata - Agent metadata containing name, displayName, etc.
28
+ */
29
+ constructor(metadata) {
30
+ super(metadata.name); // Pass agent name to parent
31
+ }
32
+ /**
33
+ * Get the source extension directory path
34
+ * Works in both development and npm package contexts
35
+ */
36
+ getSourcePath() {
37
+ const currentFile = fileURLToPath(import.meta.url);
38
+ const geminiPluginDir = dirname(currentFile);
39
+ return join(geminiPluginDir, 'extension');
40
+ }
41
+ /**
42
+ * Get the target installation directory
43
+ * @returns ~/.gemini/extensions/codemie
44
+ */
45
+ getTargetPath() {
46
+ return join(homedir(), '.gemini', 'extensions', 'codemie');
47
+ }
48
+ /**
49
+ * Get the manifest file path (relative to base directory)
50
+ * @returns gemini-extension.json
51
+ */
52
+ getManifestPath() {
53
+ return 'gemini-extension.json';
54
+ }
55
+ /**
56
+ * Get list of critical files that must exist after installation
57
+ * @returns Array of relative file paths
58
+ */
59
+ getCriticalFiles() {
60
+ return ['gemini-extension.json', 'hooks/hooks.json', 'README.md'];
61
+ }
62
+ }
63
+ //# sourceMappingURL=gemini.extension-installer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gemini.extension-installer.js","sourceRoot":"","sources":["../../../../src/agents/plugins/gemini/gemini.extension-installer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAC7B,OAAO,EAAE,sBAAsB,EAAE,MAAM,gDAAgD,CAAC;AAGxF;;;;;;;GAOG;AACH,MAAM,OAAO,wBAAyB,SAAQ,sBAAsB;IAClE;;;OAGG;IACH,YAAY,QAAuB;QACjC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,4BAA4B;IACpD,CAAC;IAED;;;OAGG;IACO,aAAa;QACrB,MAAM,WAAW,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACnD,MAAM,eAAe,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;QAC7C,OAAO,IAAI,CAAC,eAAe,EAAE,WAAW,CAAC,CAAC;IAC5C,CAAC;IAED;;;OAGG;IACH,aAAa;QACX,OAAO,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,YAAY,EAAE,SAAS,CAAC,CAAC;IAC7D,CAAC;IAED;;;OAGG;IACO,eAAe;QACvB,OAAO,uBAAuB,CAAC;IACjC,CAAC;IAED;;;OAGG;IACO,gBAAgB;QACxB,OAAO,CAAC,uBAAuB,EAAE,kBAAkB,EAAE,WAAW,CAAC,CAAC;IACpE,CAAC;CACF"}
@@ -0,0 +1,43 @@
1
+ import type { HookTransformer, BaseHookEvent } from '../../core/types.js';
2
+ /**
3
+ * Gemini Hook Transformer
4
+ * Transforms Gemini hook events to internal BaseHookEvent format
5
+ *
6
+ * Implementation is extremely simple because Gemini and Claude use nearly identical formats.
7
+ * The only transformation needed is adding a default permission_mode field.
8
+ *
9
+ * @example SessionStart transformation
10
+ * ```typescript
11
+ * // Input (Gemini):
12
+ * {
13
+ * session_id: "405de5f5-...",
14
+ * transcript_path: "/Users/x/.gemini/tmp/.../session-2026-01-14T19-23-405de5f5.json",
15
+ * cwd: "/Users/x/project",
16
+ * hook_event_name: "SessionStart",
17
+ * timestamp: "2026-01-14T19:24:04.203Z",
18
+ * source: "startup"
19
+ * }
20
+ *
21
+ * // Output (Internal):
22
+ * {
23
+ * session_id: "405de5f5-...",
24
+ * transcript_path: "/Users/x/.gemini/tmp/.../session-2026-01-14T19-23-405de5f5.json",
25
+ * cwd: "/Users/x/project",
26
+ * hook_event_name: "SessionStart",
27
+ * source: "startup",
28
+ * permission_mode: "default" // Added
29
+ * }
30
+ * ```
31
+ */
32
+ export declare class GeminiHookTransformer implements HookTransformer {
33
+ readonly agentName = "gemini";
34
+ /**
35
+ * Transform Gemini hook event to internal format
36
+ * Transformation is minimal: add permission_mode, remove timestamp
37
+ *
38
+ * @param event - Raw hook event from Gemini CLI
39
+ * @returns Transformed event in internal BaseHookEvent format
40
+ */
41
+ transform(event: unknown): BaseHookEvent;
42
+ }
43
+ //# sourceMappingURL=gemini.hook-transformer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gemini.hook-transformer.d.ts","sourceRoot":"","sources":["../../../../src/agents/plugins/gemini/gemini.hook-transformer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAsB1E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,qBAAa,qBAAsB,YAAW,eAAe;IAC3D,QAAQ,CAAC,SAAS,YAAY;IAE9B;;;;;;OAMG;IACH,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,aAAa;CAoBzC"}
@@ -0,0 +1,57 @@
1
+ /**
2
+ * Gemini Hook Transformer
3
+ * Transforms Gemini hook events to internal BaseHookEvent format
4
+ *
5
+ * Implementation is extremely simple because Gemini and Claude use nearly identical formats.
6
+ * The only transformation needed is adding a default permission_mode field.
7
+ *
8
+ * @example SessionStart transformation
9
+ * ```typescript
10
+ * // Input (Gemini):
11
+ * {
12
+ * session_id: "405de5f5-...",
13
+ * transcript_path: "/Users/x/.gemini/tmp/.../session-2026-01-14T19-23-405de5f5.json",
14
+ * cwd: "/Users/x/project",
15
+ * hook_event_name: "SessionStart",
16
+ * timestamp: "2026-01-14T19:24:04.203Z",
17
+ * source: "startup"
18
+ * }
19
+ *
20
+ * // Output (Internal):
21
+ * {
22
+ * session_id: "405de5f5-...",
23
+ * transcript_path: "/Users/x/.gemini/tmp/.../session-2026-01-14T19-23-405de5f5.json",
24
+ * cwd: "/Users/x/project",
25
+ * hook_event_name: "SessionStart",
26
+ * source: "startup",
27
+ * permission_mode: "default" // Added
28
+ * }
29
+ * ```
30
+ */
31
+ export class GeminiHookTransformer {
32
+ agentName = 'gemini';
33
+ /**
34
+ * Transform Gemini hook event to internal format
35
+ * Transformation is minimal: add permission_mode, remove timestamp
36
+ *
37
+ * @param event - Raw hook event from Gemini CLI
38
+ * @returns Transformed event in internal BaseHookEvent format
39
+ */
40
+ transform(event) {
41
+ const geminiEvent = event;
42
+ // Transform is almost pass-through since field names match
43
+ const transformed = {
44
+ session_id: geminiEvent.session_id,
45
+ transcript_path: geminiEvent.transcript_path,
46
+ hook_event_name: geminiEvent.hook_event_name,
47
+ permission_mode: 'default', // Gemini doesn't have this concept - use default
48
+ // Optional fields (pass through if present)
49
+ ...(geminiEvent.cwd && { cwd: geminiEvent.cwd }),
50
+ ...(geminiEvent.source && { source: geminiEvent.source }),
51
+ ...(geminiEvent.reason && { reason: geminiEvent.reason })
52
+ };
53
+ // Note: timestamp is intentionally omitted (not needed in internal format)
54
+ return transformed;
55
+ }
56
+ }
57
+ //# sourceMappingURL=gemini.hook-transformer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gemini.hook-transformer.js","sourceRoot":"","sources":["../../../../src/agents/plugins/gemini/gemini.hook-transformer.ts"],"names":[],"mappings":"AAsBA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,MAAM,OAAO,qBAAqB;IACvB,SAAS,GAAG,QAAQ,CAAC;IAE9B;;;;;;OAMG;IACH,SAAS,CAAC,KAAc;QACtB,MAAM,WAAW,GAAG,KAAwB,CAAC;QAE7C,2DAA2D;QAC3D,MAAM,WAAW,GAAkB;YACjC,UAAU,EAAE,WAAW,CAAC,UAAU;YAClC,eAAe,EAAE,WAAW,CAAC,eAAe;YAC5C,eAAe,EAAE,WAAW,CAAC,eAAe;YAC5C,eAAe,EAAE,SAAS,EAAG,iDAAiD;YAE9E,4CAA4C;YAC5C,GAAG,CAAC,WAAW,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,WAAW,CAAC,GAAG,EAAE,CAAC;YAChD,GAAG,CAAC,WAAW,CAAC,MAAM,IAAI,EAAE,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,CAAC;YACzD,GAAG,CAAC,WAAW,CAAC,MAAM,IAAI,EAAE,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,CAAC;SAC1D,CAAC;QAEF,2EAA2E;QAE3E,OAAO,WAAW,CAAC;IACrB,CAAC;CACF"}
@@ -0,0 +1,32 @@
1
+ import type { AgentMetadata, HookTransformer } from '../../core/types.js';
2
+ import { BaseAgentAdapter } from '../../core/BaseAgentAdapter.js';
3
+ import type { SessionAdapter } from '../../core/session/BaseSessionAdapter.js';
4
+ import type { BaseExtensionInstaller } from '../../core/extension/BaseExtensionInstaller.js';
5
+ /**
6
+ * Gemini CLI Plugin Metadata
7
+ */
8
+ export declare const GeminiPluginMetadata: AgentMetadata;
9
+ /**
10
+ * Gemini CLI Adapter
11
+ */
12
+ export declare class GeminiPlugin extends BaseAgentAdapter {
13
+ private hookTransformer;
14
+ private sessionAdapter;
15
+ private extensionInstaller;
16
+ constructor();
17
+ /**
18
+ * Get hook transformer for this agent
19
+ * Transforms Gemini hook events to internal format
20
+ */
21
+ getHookTransformer(): HookTransformer;
22
+ /**
23
+ * Get session adapter for this agent (used by unified session sync)
24
+ */
25
+ getSessionAdapter(): SessionAdapter;
26
+ /**
27
+ * Get extension installer for this agent
28
+ * Returns installer to handle extension installation
29
+ */
30
+ getExtensionInstaller(): BaseExtensionInstaller;
31
+ }
32
+ //# sourceMappingURL=gemini.plugin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gemini.plugin.d.ts","sourceRoot":"","sources":["../../../../src/agents/plugins/gemini/gemini.plugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC1E,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAGlE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0CAA0C,CAAC;AAE/E,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,gDAAgD,CAAC;AAoE7F;;GAEG;AACH,eAAO,MAAM,oBAAoB,EAAE,aA2ClC,CAAC;AAEF;;GAEG;AACH,qBAAa,YAAa,SAAQ,gBAAgB;IAChD,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,kBAAkB,CAAyB;;IAYnD;;;OAGG;IACH,kBAAkB,IAAI,eAAe;IAIrC;;OAEG;IACH,iBAAiB,IAAI,cAAc;IAInC;;;OAGG;IACH,qBAAqB,IAAI,sBAAsB;CAGhD"}
@@ -0,0 +1,136 @@
1
+ import { BaseAgentAdapter } from '../../core/BaseAgentAdapter.js';
2
+ import { GeminiHookTransformer } from './gemini.hook-transformer.js';
3
+ import { GeminiSessionAdapter } from './gemini.session-adapter.js';
4
+ import { GeminiExtensionInstaller } from './gemini.extension-installer.js';
5
+ // Define metadata first (used by both lifecycle and analytics)
6
+ const metadata = {
7
+ name: 'gemini',
8
+ displayName: 'Gemini CLI',
9
+ description: 'Google Gemini CLI - AI coding assistant',
10
+ npmPackage: '@google/gemini-cli',
11
+ cliCommand: 'gemini',
12
+ envMapping: {
13
+ baseUrl: ['GOOGLE_GEMINI_BASE_URL', 'GEMINI_BASE_URL'],
14
+ apiKey: ['GEMINI_API_KEY', 'GOOGLE_API_KEY'],
15
+ model: ['GEMINI_MODEL']
16
+ },
17
+ supportedProviders: ['ai-run-sso', 'litellm'],
18
+ blockedModelPatterns: [/^claude/i, /^gpt/i], // Gemini models only
19
+ recommendedModels: ['gemini-3-pro'],
20
+ ssoConfig: {
21
+ enabled: true,
22
+ clientType: 'codemie-gemini'
23
+ },
24
+ flagMappings: {
25
+ '--task': {
26
+ type: 'flag',
27
+ target: '-p'
28
+ }
29
+ },
30
+ // Data paths (used by lifecycle hooks and analytics)
31
+ dataPaths: {
32
+ home: '.gemini',
33
+ settings: 'settings.json'
34
+ },
35
+ // Hook configuration: event name mapping
36
+ hookConfig: {
37
+ /**
38
+ * Map Gemini event names to internal event names
39
+ * Based on Gemini CLI documentation: https://geminicli.com/docs/hooks/
40
+ *
41
+ * Supported mappings (map to existing 6 internal events):
42
+ * - SessionStart → SessionStart (direct)
43
+ * - SessionEnd → SessionEnd (direct)
44
+ * - PreCompress → PreCompact (Gemini's name for context compression)
45
+ * - AfterAgent → Stop (Gemini's AfterAgent = Claude's Stop)
46
+ * - Notification → PermissionRequest (Gemini's notification system)
47
+ *
48
+ * Unsupported events (silently ignored by router):
49
+ * - BeforeAgent, BeforeModel, AfterModel, BeforeToolSelection, BeforeTool, AfterTool
50
+ */
51
+ eventNameMapping: {
52
+ // Direct mappings (same name)
53
+ 'SessionStart': 'SessionStart',
54
+ 'SessionEnd': 'SessionEnd',
55
+ // Renamed mappings
56
+ 'PreCompress': 'PreCompact', // Gemini's PreCompress = Claude's PreCompact
57
+ 'AfterAgent': 'Stop', // Gemini's AfterAgent = Claude's Stop
58
+ 'Notification': 'PermissionRequest' // Gemini's Notification = Claude's PermissionRequest
59
+ }
60
+ }
61
+ };
62
+ /**
63
+ * Gemini CLI Plugin Metadata
64
+ */
65
+ export const GeminiPluginMetadata = {
66
+ ...metadata,
67
+ // Lifecycle hook to ensure settings file exists
68
+ // Uses BaseAgentAdapter methods for cross-platform file operations
69
+ lifecycle: {
70
+ enrichArgs: (args, config) => {
71
+ // Gemini CLI uses -m flag for model selection
72
+ const hasModelArg = args.some((arg, idx) => (arg === '-m' || arg === '--model') && idx < args.length - 1);
73
+ if (!hasModelArg && config.model) {
74
+ return ['-m', config.model, ...args];
75
+ }
76
+ return args;
77
+ },
78
+ beforeRun: async function (env) {
79
+ // Ensure .gemini directory exists (uses base method)
80
+ await this.ensureDirectory(this.resolveDataPath());
81
+ // Ensure settings.json exists with default content (uses base method)
82
+ await this.ensureJsonFile(this.resolveDataPath(metadata.dataPaths.settings), {
83
+ security: {
84
+ auth: {
85
+ selectedType: 'gemini-api-key'
86
+ }
87
+ },
88
+ tools: {
89
+ enableHooks: true
90
+ },
91
+ hooks: {
92
+ enabled: true
93
+ }
94
+ });
95
+ return env;
96
+ }
97
+ }
98
+ };
99
+ /**
100
+ * Gemini CLI Adapter
101
+ */
102
+ export class GeminiPlugin extends BaseAgentAdapter {
103
+ hookTransformer;
104
+ sessionAdapter;
105
+ extensionInstaller;
106
+ constructor() {
107
+ super(GeminiPluginMetadata);
108
+ // Initialize hook transformer for Gemini-specific payload transformation
109
+ this.hookTransformer = new GeminiHookTransformer();
110
+ // Initialize session adapter for unified session sync
111
+ this.sessionAdapter = new GeminiSessionAdapter(GeminiPluginMetadata);
112
+ // Initialize extension installer with metadata (agent name from metadata)
113
+ this.extensionInstaller = new GeminiExtensionInstaller(GeminiPluginMetadata);
114
+ }
115
+ /**
116
+ * Get hook transformer for this agent
117
+ * Transforms Gemini hook events to internal format
118
+ */
119
+ getHookTransformer() {
120
+ return this.hookTransformer;
121
+ }
122
+ /**
123
+ * Get session adapter for this agent (used by unified session sync)
124
+ */
125
+ getSessionAdapter() {
126
+ return this.sessionAdapter;
127
+ }
128
+ /**
129
+ * Get extension installer for this agent
130
+ * Returns installer to handle extension installation
131
+ */
132
+ getExtensionInstaller() {
133
+ return this.extensionInstaller;
134
+ }
135
+ }
136
+ //# sourceMappingURL=gemini.plugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gemini.plugin.js","sourceRoot":"","sources":["../../../../src/agents/plugins/gemini/gemini.plugin.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,68 @@
1
+ /**
2
+ * Gemini Session Adapter
3
+ *
4
+ * Parses Gemini CLI session files from ~/.gemini/tmp/{hash}/chats/
5
+ * Extracts metrics and preserves messages for processors.
6
+ *
7
+ * Key differences from Claude:
8
+ * - JSON format (not JSONL) - single object with messages array
9
+ * - 5 token fields: input, output, cached, thoughts, tool
10
+ * - Self-contained tool calls (not separate tool_use/tool_result messages)
11
+ * - Session metadata at root level (sessionId, projectHash, timestamps)
12
+ */
13
+ import type { SessionAdapter, ParsedSession, AggregatedResult } from '../../core/session/BaseSessionAdapter.js';
14
+ import type { SessionProcessor, ProcessingContext } from '../../core/session/BaseProcessor.js';
15
+ import type { AgentMetadata } from '../../core/types.js';
16
+ /**
17
+ * Gemini session adapter implementation.
18
+ * Parses Gemini-specific JSON format into unified ParsedSession.
19
+ * Orchestrates multiple processors that transform messages.
20
+ */
21
+ export declare class GeminiSessionAdapter implements SessionAdapter {
22
+ private readonly metadata;
23
+ readonly agentName = "gemini";
24
+ private processors;
25
+ constructor(metadata: AgentMetadata);
26
+ /**
27
+ * Initialize processors for this adapter.
28
+ * Uses Gemini-specific processors that understand Gemini's message format
29
+ */
30
+ private initializeProcessors;
31
+ /**
32
+ * Parse Gemini session file to unified format.
33
+ * Reads JSON file (not JSONL) and extracts both raw messages and metrics.
34
+ */
35
+ parseSessionFile(filePath: string, sessionId: string): Promise<ParsedSession>;
36
+ /**
37
+ * Extract metrics data from Gemini messages.
38
+ * Aggregates tokens (5 fields), tools, and file operations.
39
+ *
40
+ * Token mapping strategy (from tech spec):
41
+ * - input → input (direct)
42
+ * - output → output (direct)
43
+ * - cached → cacheRead (semantic match)
44
+ * - cacheWrite → 0 (not available in Gemini)
45
+ * - thoughts, tool → stored in metadata (Gemini-specific)
46
+ */
47
+ private extractMetrics;
48
+ /**
49
+ * Extract file operation from tool arguments
50
+ */
51
+ private extractFileOperation;
52
+ /**
53
+ * Register a processor to run during session processing.
54
+ * Processors are sorted by priority (lower runs first).
55
+ */
56
+ registerProcessor(processor: SessionProcessor): void;
57
+ /**
58
+ * Process session file with all registered processors.
59
+ * Reads file once, passes ParsedSession to all processors.
60
+ *
61
+ * @param filePath - Path to agent session file
62
+ * @param sessionId - CodeMie session ID
63
+ * @param context - Processing context (for processors that need API access)
64
+ * @returns Aggregated results from all processors
65
+ */
66
+ processSession(filePath: string, sessionId: string, context: ProcessingContext): Promise<AggregatedResult>;
67
+ }
68
+ //# sourceMappingURL=gemini.session-adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gemini.session-adapter.d.ts","sourceRoot":"","sources":["../../../../src/agents/plugins/gemini/gemini.session-adapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAGH,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,0CAA0C,CAAC;AAChH,OAAO,KAAK,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAC;AAC/F,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AA4DzD;;;;GAIG;AACH,qBAAa,oBAAqB,YAAW,cAAc;IAI7C,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAHrC,QAAQ,CAAC,SAAS,YAAY;IAC9B,OAAO,CAAC,UAAU,CAA0B;gBAEf,QAAQ,EAAE,aAAa;IAUpD;;;OAGG;IACH,OAAO,CAAC,oBAAoB;IAU5B;;;OAGG;IACG,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IA2DnF;;;;;;;;;;OAUG;IACH,OAAO,CAAC,cAAc;IAgEtB;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAsB5B;;;OAGG;IACH,iBAAiB,CAAC,SAAS,EAAE,gBAAgB,GAAG,IAAI;IAMpD;;;;;;;;OAQG;IACG,cAAc,CAClB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAAC,gBAAgB,CAAC;CA+E7B"}