@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,15 +1,13 @@
1
1
  /**
2
- * Cross-Platform Path Utilities
2
+ * Path Utilities
3
3
  *
4
- * Provides platform-agnostic path operations that work consistently
5
- * across Windows, macOS, and Linux by normalizing all paths to forward slashes.
6
- *
7
- * This module consolidates all path-related logic including:
8
- * - Path normalization and splitting
4
+ * Consolidated path operations including:
5
+ * - Cross-platform path normalization
9
6
  * - Path structure validation
10
7
  * - Security checks (directory traversal prevention)
11
8
  * - UUID validation for session files
12
- * - File extension validation
9
+ * - CodeMie home directory resolution
10
+ * - ESM module path utilities
13
11
  */
14
12
  /**
15
13
  * Normalize path separators to forward slashes for cross-platform consistency
@@ -58,6 +56,21 @@ export declare function splitPath(filePath: string): string[];
58
56
  * // Returns: 'file.jsonl'
59
57
  */
60
58
  export declare function getFilename(filePath: string): string;
59
+ /**
60
+ * Resolve local target path for extension files
61
+ *
62
+ * Returns the path where extension files should be copied in the current working directory.
63
+ * Always uses process.cwd() for predictable behavior.
64
+ *
65
+ * @param baseTargetDir - Base target directory name (default: '.codemie')
66
+ * @returns Absolute path to target directory in current working directory
67
+ *
68
+ * @example
69
+ * // Running from /Users/john/project
70
+ * resolveLocalTargetPath('.codemie')
71
+ * // Returns: '/Users/john/project/.codemie'
72
+ */
73
+ export declare function resolveLocalTargetPath(baseTargetDir?: string): string;
61
74
  /**
62
75
  * Check if a path matches a specific structure
63
76
  *
@@ -176,9 +189,9 @@ export declare function isValidUuidFilename(filename: string, extension: string)
176
189
  * Resolve a path relative to the user's home directory
177
190
  *
178
191
  * Joins the user's home directory with the provided relative path.
179
- * Useful for agent data directories like '.claude', '.codex', '.gemini', etc.
192
+ * Useful for agent data directories like '.claude', '.gemini', etc.
180
193
  *
181
- * @param relativePath - Relative path from home directory (e.g., '.claude', '.codex')
194
+ * @param relativePath - Relative path from home directory (e.g., '.claude', '.gemini')
182
195
  * @returns Absolute path in user's home directory
183
196
  *
184
197
  * @example
@@ -188,8 +201,60 @@ export declare function isValidUuidFilename(filename: string, extension: string)
188
201
  * // Returns: '/home/user/.claude' (on Linux)
189
202
  *
190
203
  * @example
191
- * resolveHomeDir('.codex/auth.json')
192
- * // Returns: '/Users/john/.codex/auth.json'
204
+ * resolveHomeDir('.gemini/auth.json')
205
+ * // Returns: '/Users/john/.gemini/auth.json'
193
206
  */
194
207
  export declare function resolveHomeDir(relativePath: string): string;
195
- //# sourceMappingURL=path-utils.d.ts.map
208
+ /**
209
+ * Get CodeMie home directory
210
+ *
211
+ * Respects CODEMIE_HOME environment variable for custom locations.
212
+ * This enables:
213
+ * - Test isolation (each test gets unique temp directory)
214
+ * - Power user customization (relocate data/config)
215
+ * - Multiple instances (development, staging, production)
216
+ *
217
+ * Precedent: CARGO_HOME, POETRY_HOME, NVM_DIR, PYENV_ROOT
218
+ *
219
+ * Priority:
220
+ * 1. CODEMIE_HOME environment variable
221
+ * 2. ~/.codemie (default)
222
+ *
223
+ * @returns Absolute path to CodeMie home directory
224
+ *
225
+ * @example
226
+ * // Default
227
+ * getCodemieHome() // => '/Users/john/.codemie'
228
+ *
229
+ * // Custom location
230
+ * process.env.CODEMIE_HOME = '/data/codemie';
231
+ * getCodemieHome() // => '/data/codemie'
232
+ *
233
+ * // Test isolation
234
+ * process.env.CODEMIE_HOME = '/tmp/codemie-test-12345';
235
+ * getCodemieHome() // => '/tmp/codemie-test-12345'
236
+ */
237
+ export declare function getCodemieHome(): string;
238
+ /**
239
+ * Get path within CodeMie home directory
240
+ *
241
+ * @param paths Path segments to join with home directory
242
+ * @returns Absolute path within CodeMie home
243
+ *
244
+ * @example
245
+ * getCodemiePath('logs') // => '/Users/john/.codemie/logs'
246
+ * getCodemiePath('metrics', 'sessions') // => '/Users/john/.codemie/sessions'
247
+ */
248
+ export declare function getCodemiePath(...paths: string[]): string;
249
+ /**
250
+ * Get the directory name of the current module (ESM equivalent of __dirname)
251
+ *
252
+ * @param importMetaUrl - Pass import.meta.url from the calling module
253
+ * @returns The directory path
254
+ *
255
+ * @example
256
+ * // In an ES module:
257
+ * const __dirname = getDirname(import.meta.url);
258
+ */
259
+ export declare function getDirname(importMetaUrl: string): string;
260
+ //# sourceMappingURL=paths.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"paths.d.ts","sourceRoot":"","sources":["../../src/utils/paths.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAWH;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAEhE;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,CAGpD;AAED;;;;;;;;;GASG;AACH,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAGpD;AAcD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,sBAAsB,CAAC,aAAa,GAAE,MAAmB,GAAG,MAAM,CAGjF;AAMD;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,EACnB,iBAAiB,EAAE,MAAM,EAAE,GAC1B,OAAO,CAiBT;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,EACnB,aAAa,EAAE,MAAM,GACpB,OAAO,CAUT;AAMD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,qBAAqB,CAAC,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAIvF;AAaD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAEhD;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAMhF;AAMD;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,cAAc,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAE3D;AAMD;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAgB,cAAc,IAAI,MAAM,CAMvC;AAED;;;;;;;;;GASG;AACH,wBAAgB,cAAc,CAAC,GAAG,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,CAEzD;AAMD;;;;;;;;;GASG;AACH,wBAAgB,UAAU,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CAExD"}
@@ -1,18 +1,21 @@
1
1
  /**
2
- * Cross-Platform Path Utilities
2
+ * Path Utilities
3
3
  *
4
- * Provides platform-agnostic path operations that work consistently
5
- * across Windows, macOS, and Linux by normalizing all paths to forward slashes.
6
- *
7
- * This module consolidates all path-related logic including:
8
- * - Path normalization and splitting
4
+ * Consolidated path operations including:
5
+ * - Cross-platform path normalization
9
6
  * - Path structure validation
10
7
  * - Security checks (directory traversal prevention)
11
8
  * - UUID validation for session files
12
- * - File extension validation
9
+ * - CodeMie home directory resolution
10
+ * - ESM module path utilities
13
11
  */
14
12
  import path from 'path';
15
13
  import { homedir } from 'os';
14
+ import { fileURLToPath } from 'url';
15
+ import { dirname } from 'path';
16
+ // ============================================================================
17
+ // Path Normalization and Manipulation
18
+ // ============================================================================
16
19
  /**
17
20
  * Normalize path separators to forward slashes for cross-platform consistency
18
21
  *
@@ -79,6 +82,27 @@ export function getFilename(filePath) {
79
82
  function findBaseIndex(parts, baseDirName) {
80
83
  return parts.findIndex(part => part === baseDirName);
81
84
  }
85
+ /**
86
+ * Resolve local target path for extension files
87
+ *
88
+ * Returns the path where extension files should be copied in the current working directory.
89
+ * Always uses process.cwd() for predictable behavior.
90
+ *
91
+ * @param baseTargetDir - Base target directory name (default: '.codemie')
92
+ * @returns Absolute path to target directory in current working directory
93
+ *
94
+ * @example
95
+ * // Running from /Users/john/project
96
+ * resolveLocalTargetPath('.codemie')
97
+ * // Returns: '/Users/john/project/.codemie'
98
+ */
99
+ export function resolveLocalTargetPath(baseTargetDir = '.codemie') {
100
+ const cwd = process.cwd();
101
+ return path.join(cwd, baseTargetDir);
102
+ }
103
+ // ============================================================================
104
+ // Path Structure Validation
105
+ // ============================================================================
82
106
  /**
83
107
  * Check if a path matches a specific structure
84
108
  *
@@ -246,9 +270,9 @@ export function isValidUuidFilename(filename, extension) {
246
270
  * Resolve a path relative to the user's home directory
247
271
  *
248
272
  * Joins the user's home directory with the provided relative path.
249
- * Useful for agent data directories like '.claude', '.codex', '.gemini', etc.
273
+ * Useful for agent data directories like '.claude', '.gemini', etc.
250
274
  *
251
- * @param relativePath - Relative path from home directory (e.g., '.claude', '.codex')
275
+ * @param relativePath - Relative path from home directory (e.g., '.claude', '.gemini')
252
276
  * @returns Absolute path in user's home directory
253
277
  *
254
278
  * @example
@@ -258,10 +282,77 @@ export function isValidUuidFilename(filename, extension) {
258
282
  * // Returns: '/home/user/.claude' (on Linux)
259
283
  *
260
284
  * @example
261
- * resolveHomeDir('.codex/auth.json')
262
- * // Returns: '/Users/john/.codex/auth.json'
285
+ * resolveHomeDir('.gemini/auth.json')
286
+ * // Returns: '/Users/john/.gemini/auth.json'
263
287
  */
264
288
  export function resolveHomeDir(relativePath) {
265
289
  return path.join(homedir(), relativePath);
266
290
  }
267
- //# sourceMappingURL=path-utils.js.map
291
+ // ============================================================================
292
+ // CodeMie Home Directory Resolution
293
+ // ============================================================================
294
+ /**
295
+ * Get CodeMie home directory
296
+ *
297
+ * Respects CODEMIE_HOME environment variable for custom locations.
298
+ * This enables:
299
+ * - Test isolation (each test gets unique temp directory)
300
+ * - Power user customization (relocate data/config)
301
+ * - Multiple instances (development, staging, production)
302
+ *
303
+ * Precedent: CARGO_HOME, POETRY_HOME, NVM_DIR, PYENV_ROOT
304
+ *
305
+ * Priority:
306
+ * 1. CODEMIE_HOME environment variable
307
+ * 2. ~/.codemie (default)
308
+ *
309
+ * @returns Absolute path to CodeMie home directory
310
+ *
311
+ * @example
312
+ * // Default
313
+ * getCodemieHome() // => '/Users/john/.codemie'
314
+ *
315
+ * // Custom location
316
+ * process.env.CODEMIE_HOME = '/data/codemie';
317
+ * getCodemieHome() // => '/data/codemie'
318
+ *
319
+ * // Test isolation
320
+ * process.env.CODEMIE_HOME = '/tmp/codemie-test-12345';
321
+ * getCodemieHome() // => '/tmp/codemie-test-12345'
322
+ */
323
+ export function getCodemieHome() {
324
+ if (process.env.CODEMIE_HOME) {
325
+ return process.env.CODEMIE_HOME;
326
+ }
327
+ return path.join(homedir(), '.codemie');
328
+ }
329
+ /**
330
+ * Get path within CodeMie home directory
331
+ *
332
+ * @param paths Path segments to join with home directory
333
+ * @returns Absolute path within CodeMie home
334
+ *
335
+ * @example
336
+ * getCodemiePath('logs') // => '/Users/john/.codemie/logs'
337
+ * getCodemiePath('metrics', 'sessions') // => '/Users/john/.codemie/sessions'
338
+ */
339
+ export function getCodemiePath(...paths) {
340
+ return path.join(getCodemieHome(), ...paths);
341
+ }
342
+ // ============================================================================
343
+ // ESM Module Path Utilities
344
+ // ============================================================================
345
+ /**
346
+ * Get the directory name of the current module (ESM equivalent of __dirname)
347
+ *
348
+ * @param importMetaUrl - Pass import.meta.url from the calling module
349
+ * @returns The directory path
350
+ *
351
+ * @example
352
+ * // In an ES module:
353
+ * const __dirname = getDirname(import.meta.url);
354
+ */
355
+ export function getDirname(importMetaUrl) {
356
+ return dirname(fileURLToPath(importMetaUrl));
357
+ }
358
+ //# sourceMappingURL=paths.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"paths.js","sourceRoot":"","sources":["../../src/utils/paths.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,24 @@
1
1
  /**
2
- * NPM utility wrapper for consistent npm operations
2
+ * High-Level Process Utilities
3
3
  *
4
- * Provides type-safe API for common npm operations with:
5
- * - Consistent timeout management
6
- * - Specialized error handling
7
- * - Comprehensive logging
8
- * - Cross-platform support
4
+ * Command detection, npm package management, and git operations.
5
+ * Built on top of the foundational exec utility.
9
6
  */
7
+ import { exec, type ExecOptions, type ExecResult } from './exec.js';
8
+ /**
9
+ * Check if a command is available in PATH
10
+ *
11
+ * @param command - Command name to check (e.g., 'npm', 'python', 'git')
12
+ * @returns True if command exists, false otherwise
13
+ */
14
+ export declare function commandExists(command: string): Promise<boolean>;
15
+ /**
16
+ * Get the full path to a command
17
+ *
18
+ * @param command - Command name to locate
19
+ * @returns Full path to command, or null if not found
20
+ */
21
+ export declare function getCommandPath(command: string): Promise<string | null>;
10
22
  /**
11
23
  * Base options for npm operations
12
24
  */
@@ -24,6 +36,8 @@ export interface NpmOptions {
24
36
  export interface NpmInstallOptions extends NpmOptions {
25
37
  /** Package version (e.g., '1.0.0', 'latest') */
26
38
  version?: string;
39
+ /** Force install (useful for updates where directory conflicts occur) */
40
+ force?: boolean;
27
41
  }
28
42
  /**
29
43
  * Options for npx run operations
@@ -95,6 +109,20 @@ export declare function listGlobal(packageName: string, options?: NpmOptions): P
95
109
  * ```
96
110
  */
97
111
  export declare function getVersion(options?: NpmOptions): Promise<string | null>;
112
+ /**
113
+ * Get latest version of a package from npm registry
114
+ *
115
+ * @param packageName - Package name to check (e.g., '@anthropic-ai/claude-code')
116
+ * @param options - Options including timeout
117
+ * @returns Latest version string, or null if package not found
118
+ *
119
+ * @example
120
+ * ```typescript
121
+ * const latest = await getLatestVersion('@anthropic-ai/claude-code');
122
+ * // Returns: '1.0.51' or null
123
+ * ```
124
+ */
125
+ export declare function getLatestVersion(packageName: string, options?: NpmOptions): Promise<string | null>;
98
126
  /**
99
127
  * Run a command via npx
100
128
  *
@@ -113,4 +141,13 @@ export declare function getVersion(options?: NpmOptions): Promise<string | null>
113
141
  * ```
114
142
  */
115
143
  export declare function npxRun(command: string, args?: string[], options?: NpxRunOptions): Promise<void>;
116
- //# sourceMappingURL=npm.d.ts.map
144
+ /**
145
+ * Detect current git branch from working directory
146
+ *
147
+ * @param cwd - Working directory path
148
+ * @returns Git branch name or undefined if not in a git repo
149
+ */
150
+ export declare function detectGitBranch(cwd: string): Promise<string | undefined>;
151
+ export { exec };
152
+ export type { ExecOptions, ExecResult };
153
+ //# sourceMappingURL=processes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"processes.d.ts","sourceRoot":"","sources":["../../src/utils/processes.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,OAAO,EAAE,IAAI,EAAE,KAAK,WAAW,EAAE,KAAK,UAAU,EAAE,MAAM,WAAW,CAAC;AAQpE;;;;;GAKG;AACH,wBAAsB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAWrE;AAED;;;;;GAKG;AACH,wBAAsB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAuB5E;AAMD;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,wCAAwC;IACxC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,4BAA4B;IAC5B,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,wCAAwC;IACxC,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAkB,SAAQ,UAAU;IACnD,gDAAgD;IAChD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,yEAAyE;IACzE,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,aAAc,SAAQ,UAAU;IAC/C,+CAA+C;IAC/C,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,aAAa,CACjC,WAAW,EAAE,MAAM,EACnB,OAAO,GAAE,iBAAsB,GAC9B,OAAO,CAAC,IAAI,CAAC,CAkCf;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,eAAe,CACnC,WAAW,EAAE,MAAM,EACnB,OAAO,GAAE,UAAe,GACvB,OAAO,CAAC,IAAI,CAAC,CA2Bf;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,UAAU,CAC9B,WAAW,EAAE,MAAM,EACnB,OAAO,GAAE,UAAe,GACvB,OAAO,CAAC,OAAO,CAAC,CAmBlB;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,UAAU,CAC9B,OAAO,GAAE,UAAe,GACvB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAkBxB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,gBAAgB,CACpC,WAAW,EAAE,MAAM,EACnB,OAAO,GAAE,UAAe,GACvB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAsBxB;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,MAAM,CAC1B,OAAO,EAAE,MAAM,EACf,IAAI,GAAE,MAAM,EAAO,EACnB,OAAO,GAAE,aAAkB,GAC1B,OAAO,CAAC,IAAI,CAAC,CAqBf;AAMD;;;;;GAKG;AACH,wBAAsB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAsB9E;AAGD,OAAO,EAAE,IAAI,EAAE,CAAC;AAChB,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC"}
@@ -1,15 +1,64 @@
1
1
  /**
2
- * NPM utility wrapper for consistent npm operations
2
+ * High-Level Process Utilities
3
3
  *
4
- * Provides type-safe API for common npm operations with:
5
- * - Consistent timeout management
6
- * - Specialized error handling
7
- * - Comprehensive logging
8
- * - Cross-platform support
4
+ * Command detection, npm package management, and git operations.
5
+ * Built on top of the foundational exec utility.
9
6
  */
10
- import { exec } from './exec.js';
11
- import { logger } from './logger.js';
7
+ import { exec as childProcessExec } from 'child_process';
8
+ import { promisify } from 'util';
12
9
  import os from 'os';
10
+ import { logger } from './logger.js';
11
+ import { exec } from './exec.js';
12
+ const execAsync = promisify(childProcessExec);
13
+ // ============================================================================
14
+ // Command Detection
15
+ // ============================================================================
16
+ /**
17
+ * Check if a command is available in PATH
18
+ *
19
+ * @param command - Command name to check (e.g., 'npm', 'python', 'git')
20
+ * @returns True if command exists, false otherwise
21
+ */
22
+ export async function commandExists(command) {
23
+ try {
24
+ const isWindows = os.platform() === 'win32';
25
+ // On Windows, use full path to where.exe to avoid shell: true deprecation (DEP0190)
26
+ const whichCommand = isWindows ? 'C:\\Windows\\System32\\where.exe' : 'which';
27
+ const result = await exec(whichCommand, [command]);
28
+ return result.code === 0;
29
+ }
30
+ catch {
31
+ return false;
32
+ }
33
+ }
34
+ /**
35
+ * Get the full path to a command
36
+ *
37
+ * @param command - Command name to locate
38
+ * @returns Full path to command, or null if not found
39
+ */
40
+ export async function getCommandPath(command) {
41
+ try {
42
+ const isWindows = os.platform() === 'win32';
43
+ // On Windows, use full path to where.exe to avoid shell: true deprecation (DEP0190)
44
+ const whichCommand = isWindows ? 'C:\\Windows\\System32\\where.exe' : 'which';
45
+ const result = await exec(whichCommand, [command]);
46
+ if (result.code === 0) {
47
+ // On Windows, 'where' can return multiple paths, take the first one
48
+ // Split by any line ending (\n, \r\n, or \r) for maximum compatibility
49
+ // This handles Unix (\n), Windows (\r\n), and old Mac (\r) line endings
50
+ const paths = result.stdout
51
+ .split(/\r?\n|\r/) // Split by \r\n, \n, or \r
52
+ .map(p => p.trim())
53
+ .filter(p => p);
54
+ return paths[0] || null;
55
+ }
56
+ return null;
57
+ }
58
+ catch {
59
+ return null;
60
+ }
61
+ }
13
62
  /**
14
63
  * Install a package globally via npm
15
64
  *
@@ -38,7 +87,12 @@ export async function installGlobal(packageName, options = {}) {
38
87
  timeout,
39
88
  shell: isWindows // npm is a .cmd file on Windows
40
89
  };
41
- const result = await exec('npm', ['install', '-g', packageSpec], execOptions);
90
+ const args = ['install', '-g'];
91
+ if (options.force) {
92
+ args.push('--force');
93
+ }
94
+ args.push(packageSpec);
95
+ const result = await exec('npm', args, execOptions);
42
96
  if (result.code !== 0) {
43
97
  throw new Error(`npm install exited with code ${result.code}: ${result.stderr || result.stdout}`);
44
98
  }
@@ -151,6 +205,39 @@ export async function getVersion(options = {}) {
151
205
  return null;
152
206
  }
153
207
  }
208
+ /**
209
+ * Get latest version of a package from npm registry
210
+ *
211
+ * @param packageName - Package name to check (e.g., '@anthropic-ai/claude-code')
212
+ * @param options - Options including timeout
213
+ * @returns Latest version string, or null if package not found
214
+ *
215
+ * @example
216
+ * ```typescript
217
+ * const latest = await getLatestVersion('@anthropic-ai/claude-code');
218
+ * // Returns: '1.0.51' or null
219
+ * ```
220
+ */
221
+ export async function getLatestVersion(packageName, options = {}) {
222
+ const timeout = options.timeout ?? 10000; // 10 seconds default
223
+ try {
224
+ const isWindows = os.platform() === 'win32';
225
+ const execOptions = {
226
+ cwd: options.cwd,
227
+ env: options.env,
228
+ timeout,
229
+ shell: isWindows // npm is a .cmd file on Windows
230
+ };
231
+ const result = await exec('npm', ['view', packageName, 'version'], execOptions);
232
+ if (result.code !== 0) {
233
+ return null;
234
+ }
235
+ return result.stdout.trim() || null;
236
+ }
237
+ catch {
238
+ return null;
239
+ }
240
+ }
154
241
  /**
155
242
  * Run a command via npx
156
243
  *
@@ -188,4 +275,36 @@ export async function npxRun(command, args = [], options = {}) {
188
275
  throw parseNpmError(error, `Failed to run npx ${command}`);
189
276
  }
190
277
  }
191
- //# sourceMappingURL=npm.js.map
278
+ // ============================================================================
279
+ // Git Operations
280
+ // ============================================================================
281
+ /**
282
+ * Detect current git branch from working directory
283
+ *
284
+ * @param cwd - Working directory path
285
+ * @returns Git branch name or undefined if not in a git repo
286
+ */
287
+ export async function detectGitBranch(cwd) {
288
+ try {
289
+ const { stdout } = await execAsync('git rev-parse --abbrev-ref HEAD', {
290
+ cwd,
291
+ timeout: 5000 // 5 second timeout
292
+ });
293
+ const branch = stdout.trim();
294
+ // Handle detached HEAD state
295
+ if (branch === 'HEAD') {
296
+ logger.debug('[GitUtils] Detached HEAD state detected');
297
+ return undefined;
298
+ }
299
+ logger.debug(`[GitUtils] Detected git branch: ${branch}`);
300
+ return branch;
301
+ }
302
+ catch (error) {
303
+ // Not a git repo or git command failed
304
+ logger.debug('[GitUtils] Failed to detect git branch:', error);
305
+ return undefined;
306
+ }
307
+ }
308
+ // Re-export exec function and types for convenience
309
+ export { exec };
310
+ //# sourceMappingURL=processes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"processes.js","sourceRoot":"","sources":["../../src/utils/processes.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,IAAI,IAAI,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACzD,OAAO,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;AACjC,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,IAAI,EAAqC,MAAM,WAAW,CAAC;AAEpE,MAAM,SAAS,GAAG,SAAS,CAAC,gBAAgB,CAAC,CAAC;AAE9C,+EAA+E;AAC/E,oBAAoB;AACpB,+EAA+E;AAE/E;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,OAAe;IACjD,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,EAAE,CAAC,QAAQ,EAAE,KAAK,OAAO,CAAC;QAC5C,oFAAoF;QACpF,MAAM,YAAY,GAAG,SAAS,CAAC,CAAC,CAAC,kCAAkC,CAAC,CAAC,CAAC,OAAO,CAAC;QAE9E,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;QACnD,OAAO,MAAM,CAAC,IAAI,KAAK,CAAC,CAAC;IAC3B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,OAAe;IAClD,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,EAAE,CAAC,QAAQ,EAAE,KAAK,OAAO,CAAC;QAC5C,oFAAoF;QACpF,MAAM,YAAY,GAAG,SAAS,CAAC,CAAC,CAAC,kCAAkC,CAAC,CAAC,CAAC,OAAO,CAAC;QAE9E,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;QAEnD,IAAI,MAAM,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;YACtB,oEAAoE;YACpE,uEAAuE;YACvE,wEAAwE;YACxE,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM;iBACxB,KAAK,CAAC,UAAU,CAAC,CAAE,2BAA2B;iBAC9C,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;iBAClB,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YAClB,OAAO,KAAK,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;QAC1B,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAoCD;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,WAAmB,EACnB,UAA6B,EAAE;IAE/B,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,WAAW,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC;IACxF,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,MAAM,CAAC,CAAC,oBAAoB;IAE/D,MAAM,CAAC,IAAI,CAAC,cAAc,WAAW,cAAc,CAAC,CAAC;IAErD,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,EAAE,CAAC,QAAQ,EAAE,KAAK,OAAO,CAAC;QAC5C,MAAM,WAAW,GAAgB;YAC/B,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,OAAO;YACP,KAAK,EAAE,SAAS,CAAC,gCAAgC;SAClD,CAAC;QAEF,MAAM,IAAI,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QAC/B,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;YAClB,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACvB,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAEvB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;QAEpD,IAAI,MAAM,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CACb,gCAAgC,MAAM,CAAC,IAAI,KAAK,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,CACjF,CAAC;QACJ,CAAC;QAED,MAAM,CAAC,OAAO,CAAC,GAAG,WAAW,yBAAyB,CAAC,CAAC;IAC1D,CAAC;IAAC,OAAO,KAAc,EAAE,CAAC;QACxB,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC;QACtD,MAAM,aAAa,CAAC,KAAK,EAAE,qBAAqB,WAAW,EAAE,CAAC,CAAC;IACjE,CAAC;AACH,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,WAAmB,EACnB,UAAsB,EAAE;IAExB,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,KAAK,CAAC,CAAC,qBAAqB;IAE/D,MAAM,CAAC,IAAI,CAAC,gBAAgB,WAAW,cAAc,CAAC,CAAC;IAEvD,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,EAAE,CAAC,QAAQ,EAAE,KAAK,OAAO,CAAC;QAC5C,MAAM,WAAW,GAAgB;YAC/B,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,OAAO;YACP,KAAK,EAAE,SAAS,CAAC,gCAAgC;SAClD,CAAC;QAEF,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC,WAAW,EAAE,IAAI,EAAE,WAAW,CAAC,EAAE,WAAW,CAAC,CAAC;QAEhF,IAAI,MAAM,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CACb,kCAAkC,MAAM,CAAC,IAAI,KAAK,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,CACnF,CAAC;QACJ,CAAC;QAED,MAAM,CAAC,OAAO,CAAC,GAAG,WAAW,2BAA2B,CAAC,CAAC;IAC5D,CAAC;IAAC,OAAO,KAAc,EAAE,CAAC;QACxB,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC;QACtD,MAAM,aAAa,CAAC,KAAK,EAAE,uBAAuB,WAAW,EAAE,CAAC,CAAC;IACnE,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,WAAmB,EACnB,UAAsB,EAAE;IAExB,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,IAAI,CAAC,CAAC,oBAAoB;IAE7D,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,EAAE,CAAC,QAAQ,EAAE,KAAK,OAAO,CAAC;QAC5C,MAAM,WAAW,GAAgB;YAC/B,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,OAAO;YACP,KAAK,EAAE,SAAS,CAAC,gCAAgC;SAClD,CAAC;QAEF,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,WAAW,CAAC,EAAE,WAAW,CAAC,CAAC;QAC3E,qDAAqD;QACrD,OAAO,MAAM,CAAC,IAAI,KAAK,CAAC,CAAC;IAC3B,CAAC;IAAC,MAAM,CAAC;QACP,oEAAoE;QACpE,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,UAAsB,EAAE;IAExB,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,IAAI,CAAC,CAAC,oBAAoB;IAE7D,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,EAAE,CAAC,QAAQ,EAAE,KAAK,OAAO,CAAC;QAC5C,MAAM,WAAW,GAAgB;YAC/B,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,OAAO;YACP,KAAK,EAAE,SAAS,CAAC,gCAAgC;SAClD,CAAC;QAEF,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC,WAAW,CAAC,EAAE,WAAW,CAAC,CAAC;QAC7D,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;QACnD,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACjC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,WAAmB,EACnB,UAAsB,EAAE;IAExB,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,KAAK,CAAC,CAAC,qBAAqB;IAE/D,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,EAAE,CAAC,QAAQ,EAAE,KAAK,OAAO,CAAC;QAC5C,MAAM,WAAW,GAAgB;YAC/B,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,OAAO;YACP,KAAK,EAAE,SAAS,CAAC,gCAAgC;SAClD,CAAC;QAEF,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,WAAW,EAAE,SAAS,CAAC,EAAE,WAAW,CAAC,CAAC;QAEhF,IAAI,MAAM,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;YACtB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC;IACtC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,CAAC,KAAK,UAAU,MAAM,CAC1B,OAAe,EACf,OAAiB,EAAE,EACnB,UAAyB,EAAE;IAE3B,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,MAAM,CAAC,CAAC,2CAA2C;IAEtF,MAAM,CAAC,IAAI,CAAC,eAAe,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAE3D,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,EAAE,CAAC,QAAQ,EAAE,KAAK,OAAO,CAAC;QAC5C,MAAM,WAAW,GAAgB;YAC/B,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,OAAO;YACP,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,KAAK,EAAE,SAAS,CAAC,gCAAgC;SAClD,CAAC;QAEF,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,EAAE,WAAW,CAAC,CAAC;QACnD,MAAM,CAAC,OAAO,CAAC,OAAO,OAAO,yBAAyB,CAAC,CAAC;IAC1D,CAAC;IAAC,OAAO,KAAc,EAAE,CAAC;QACxB,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC;QACtD,MAAM,aAAa,CAAC,KAAK,EAAE,qBAAqB,OAAO,EAAE,CAAC,CAAC;IAC7D,CAAC;AACH,CAAC;AAED,+EAA+E;AAC/E,iBAAiB;AACjB,+EAA+E;AAE/E;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,GAAW;IAC/C,IAAI,CAAC;QACH,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,SAAS,CAAC,iCAAiC,EAAE;YACpE,GAAG;YACH,OAAO,EAAE,IAAI,CAAC,mBAAmB;SAClC,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;QAE7B,6BAA6B;QAC7B,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;YACtB,MAAM,CAAC,KAAK,CAAC,yCAAyC,CAAC,CAAC;YACxD,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,MAAM,CAAC,KAAK,CAAC,mCAAmC,MAAM,EAAE,CAAC,CAAC;QAC1D,OAAO,MAAM,CAAC;IAChB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,uCAAuC;QACvC,MAAM,CAAC,KAAK,CAAC,yCAAyC,EAAE,KAAK,CAAC,CAAC;QAC/D,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED,oDAAoD;AACpD,OAAO,EAAE,IAAI,EAAE,CAAC"}
@@ -1,4 +1,4 @@
1
- import { type ErrorContext } from './error-context.js';
1
+ import { type ErrorContext } from './errors.js';
2
2
  /**
3
3
  * Authentication status for display
4
4
  */
@@ -39,19 +39,4 @@ export declare function displayWarningMessage(title: string, error: unknown, ses
39
39
  showInProduction?: boolean;
40
40
  severity?: 'warning' | 'error' | 'info';
41
41
  }): void;
42
- /**
43
- * Display a simple info message after profile info
44
- *
45
- * @param message - Message to display
46
- * @param details - Optional additional details
47
- *
48
- * @example
49
- * ```typescript
50
- * displayInfoMessage('Metrics collection is disabled for this provider', {
51
- * provider: 'openai',
52
- * reason: 'Not supported'
53
- * });
54
- * ```
55
- */
56
- export declare function displayInfoMessage(message: string, details?: Record<string, string>): void;
57
42
  //# sourceMappingURL=profile.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"profile.d.ts","sourceRoot":"","sources":["../../src/utils/profile.ts"],"names":[],"mappings":"AACA,OAAO,EAA8B,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAGnF;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,aAAa,EAAE,OAAO,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE;IACxC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,iBAAiB,CAAC;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,GAAG,MAAM,CA2ET;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,OAAO,EACd,cAAc,CAAC,EAAE,YAAY,CAAC,SAAS,CAAC,EACxC,OAAO,GAAE;IACP,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,EAAE,SAAS,GAAG,OAAO,GAAG,MAAM,CAAC;CACpC,GACL,IAAI,CAuDN;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC/B,IAAI,CAcN"}
1
+ {"version":3,"file":"profile.d.ts","sourceRoot":"","sources":["../../src/utils/profile.ts"],"names":[],"mappings":"AACA,OAAO,EAA8B,KAAK,YAAY,EAAE,MAAM,aAAa,CAAC;AAG5E;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,aAAa,EAAE,OAAO,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE;IACxC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,iBAAiB,CAAC;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,GAAG,MAAM,CA2ET;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,OAAO,EACd,cAAc,CAAC,EAAE,YAAY,CAAC,SAAS,CAAC,EACxC,OAAO,GAAE;IACP,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,EAAE,SAAS,GAAG,OAAO,GAAG,MAAM,CAAC;CACpC,GACL,IAAI,CAuDN"}
@@ -1,5 +1,5 @@
1
1
  import chalk from 'chalk';
2
- import { formatErrorWithExplanation } from './error-context.js';
2
+ import { formatErrorWithExplanation } from './errors.js';
3
3
  import { logger } from './logger.js';
4
4
  /**
5
5
  * Renders the CodeMie profile information in a unified table format
@@ -132,30 +132,4 @@ export function displayWarningMessage(title, error, sessionContext, options = {}
132
132
  // Output to stderr so it doesn't interfere with agent output
133
133
  console.error(lines.join('\n'));
134
134
  }
135
- /**
136
- * Display a simple info message after profile info
137
- *
138
- * @param message - Message to display
139
- * @param details - Optional additional details
140
- *
141
- * @example
142
- * ```typescript
143
- * displayInfoMessage('Metrics collection is disabled for this provider', {
144
- * provider: 'openai',
145
- * reason: 'Not supported'
146
- * });
147
- * ```
148
- */
149
- export function displayInfoMessage(message, details) {
150
- const lines = [];
151
- lines.push(''); // Spacing
152
- lines.push(chalk.cyan('ℹ️ ' + message));
153
- if (details) {
154
- Object.entries(details).forEach(([key, value]) => {
155
- lines.push(chalk.cyan.dim(` ${key}: ${value}`));
156
- });
157
- }
158
- lines.push(''); // Spacing
159
- console.error(lines.join('\n'));
160
- }
161
135
  //# sourceMappingURL=profile.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"profile.js","sourceRoot":"","sources":["../../src/utils/profile.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"profile.js","sourceRoot":"","sources":["../../src/utils/profile.ts"],"names":[],"mappings":"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"}