@codemieai/code 0.14.1 → 0.15.1

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 (298) hide show
  1. package/README.md +23 -0
  2. package/bin/codemie-openwiki.js +18 -0
  3. package/dist/agents/core/AgentCLI.d.ts.map +1 -1
  4. package/dist/agents/core/AgentCLI.js +2 -0
  5. package/dist/agents/core/AgentCLI.js.map +1 -1
  6. package/dist/agents/core/BaseAgentAdapter.d.ts.map +1 -1
  7. package/dist/agents/core/BaseAgentAdapter.js +25 -11
  8. package/dist/agents/core/BaseAgentAdapter.js.map +1 -1
  9. package/dist/agents/core/extension/BaseExtensionInstaller.d.ts +1 -0
  10. package/dist/agents/core/extension/BaseExtensionInstaller.d.ts.map +1 -1
  11. package/dist/agents/core/extension/BaseExtensionInstaller.js +20 -0
  12. package/dist/agents/core/extension/BaseExtensionInstaller.js.map +1 -1
  13. package/dist/agents/core/types.d.ts +8 -0
  14. package/dist/agents/core/types.d.ts.map +1 -1
  15. package/dist/agents/plugins/claude/claude-message-types.d.ts +1 -0
  16. package/dist/agents/plugins/claude/claude-message-types.d.ts.map +1 -1
  17. package/dist/agents/plugins/claude/claude.plugin.d.ts.map +1 -1
  18. package/dist/agents/plugins/claude/claude.plugin.js +60 -6
  19. package/dist/agents/plugins/claude/claude.plugin.js.map +1 -1
  20. package/dist/agents/plugins/claude/plugin/__tests__/statusline.test.ts +26 -4
  21. package/dist/agents/plugins/claude/plugin/hooks/hooks.json +6 -6
  22. package/dist/agents/plugins/claude/plugin/statusline.mjs +5 -1
  23. package/dist/agents/plugins/codemie-code.plugin.d.ts +1 -0
  24. package/dist/agents/plugins/codemie-code.plugin.d.ts.map +1 -1
  25. package/dist/agents/plugins/codemie-code.plugin.js +12 -5
  26. package/dist/agents/plugins/codemie-code.plugin.js.map +1 -1
  27. package/dist/agents/plugins/codex/codex-message-types.d.ts +28 -0
  28. package/dist/agents/plugins/codex/codex-message-types.d.ts.map +1 -1
  29. package/dist/agents/plugins/codex/codex-message-types.js.map +1 -1
  30. package/dist/agents/plugins/codex/codex.plugin.d.ts.map +1 -1
  31. package/dist/agents/plugins/codex/codex.plugin.js +30 -2
  32. package/dist/agents/plugins/codex/codex.plugin.js.map +1 -1
  33. package/dist/agents/plugins/codex/index.d.ts +4 -2
  34. package/dist/agents/plugins/codex/index.d.ts.map +1 -1
  35. package/dist/agents/plugins/codex/index.js +3 -1
  36. package/dist/agents/plugins/codex/index.js.map +1 -1
  37. package/dist/agents/plugins/copilot-cli/copilot-cli.plugin.d.ts.map +1 -1
  38. package/dist/agents/plugins/copilot-cli/copilot-cli.plugin.js +3 -1
  39. package/dist/agents/plugins/copilot-cli/copilot-cli.plugin.js.map +1 -1
  40. package/dist/agents/plugins/gemini/extension/hooks/hooks.json +4 -4
  41. package/dist/agents/plugins/gemini/gemini.models.d.ts +33 -0
  42. package/dist/agents/plugins/gemini/gemini.models.d.ts.map +1 -0
  43. package/dist/agents/plugins/gemini/gemini.models.js +122 -0
  44. package/dist/agents/plugins/gemini/gemini.models.js.map +1 -0
  45. package/dist/agents/plugins/gemini/gemini.plugin.d.ts.map +1 -1
  46. package/dist/agents/plugins/gemini/gemini.plugin.js +6 -0
  47. package/dist/agents/plugins/gemini/gemini.plugin.js.map +1 -1
  48. package/dist/agents/plugins/gemini/gemini.session-adapter.d.ts +1 -1
  49. package/dist/agents/plugins/gemini/gemini.session-adapter.d.ts.map +1 -1
  50. package/dist/agents/plugins/gemini/gemini.session-adapter.js +155 -16
  51. package/dist/agents/plugins/gemini/gemini.session-adapter.js.map +1 -1
  52. package/dist/agents/plugins/gemini/session/processors/gemini.metrics-processor.d.ts.map +1 -1
  53. package/dist/agents/plugins/gemini/session/processors/gemini.metrics-processor.js +77 -31
  54. package/dist/agents/plugins/gemini/session/processors/gemini.metrics-processor.js.map +1 -1
  55. package/dist/agents/plugins/gemini/session/utils/turn-detector.d.ts +1 -1
  56. package/dist/agents/plugins/gemini/session/utils/turn-detector.d.ts.map +1 -1
  57. package/dist/agents/plugins/gemini/session/utils/turn-detector.js +7 -1
  58. package/dist/agents/plugins/gemini/session/utils/turn-detector.js.map +1 -1
  59. package/dist/agents/plugins/openwiki/openwiki.plugin.d.ts +30 -0
  60. package/dist/agents/plugins/openwiki/openwiki.plugin.d.ts.map +1 -0
  61. package/dist/agents/plugins/openwiki/openwiki.plugin.js +73 -0
  62. package/dist/agents/plugins/openwiki/openwiki.plugin.js.map +1 -0
  63. package/dist/agents/plugins/pi/pi.models.d.ts.map +1 -1
  64. package/dist/agents/plugins/pi/pi.models.js +62 -0
  65. package/dist/agents/plugins/pi/pi.models.js.map +1 -1
  66. package/dist/agents/plugins/pi/pi.plugin.d.ts.map +1 -1
  67. package/dist/agents/plugins/pi/pi.plugin.js +7 -3
  68. package/dist/agents/plugins/pi/pi.plugin.js.map +1 -1
  69. package/dist/agents/registry.d.ts.map +1 -1
  70. package/dist/agents/registry.js +2 -0
  71. package/dist/agents/registry.js.map +1 -1
  72. package/dist/bin/proxy-daemon.js +3 -0
  73. package/dist/bin/proxy-daemon.js.map +1 -1
  74. package/dist/cli/commands/analytics/aggregator.d.ts.map +1 -1
  75. package/dist/cli/commands/analytics/aggregator.js +1 -0
  76. package/dist/cli/commands/analytics/aggregator.js.map +1 -1
  77. package/dist/cli/commands/analytics/cost/cost-enricher.d.ts.map +1 -1
  78. package/dist/cli/commands/analytics/cost/cost-enricher.js +6 -1
  79. package/dist/cli/commands/analytics/cost/cost-enricher.js.map +1 -1
  80. package/dist/cli/commands/analytics/cost/types.d.ts +8 -0
  81. package/dist/cli/commands/analytics/cost/types.d.ts.map +1 -1
  82. package/dist/cli/commands/analytics/report/client/app.js +111 -1
  83. package/dist/cli/commands/analytics/report/payload-builder.d.ts.map +1 -1
  84. package/dist/cli/commands/analytics/report/payload-builder.js +6 -0
  85. package/dist/cli/commands/analytics/report/payload-builder.js.map +1 -1
  86. package/dist/cli/commands/analytics/report/template.html +9 -0
  87. package/dist/cli/commands/analytics/report/types.d.ts +1 -0
  88. package/dist/cli/commands/analytics/report/types.d.ts.map +1 -1
  89. package/dist/cli/commands/analytics/types.d.ts +1 -0
  90. package/dist/cli/commands/analytics/types.d.ts.map +1 -1
  91. package/dist/cli/commands/assistants/chat/claudeUploadsDetector.d.ts.map +1 -1
  92. package/dist/cli/commands/assistants/chat/claudeUploadsDetector.js +43 -67
  93. package/dist/cli/commands/assistants/chat/claudeUploadsDetector.js.map +1 -1
  94. package/dist/cli/commands/assistants/chat/codexUploadsDetector.d.ts +26 -0
  95. package/dist/cli/commands/assistants/chat/codexUploadsDetector.d.ts.map +1 -0
  96. package/dist/cli/commands/assistants/chat/codexUploadsDetector.js +240 -0
  97. package/dist/cli/commands/assistants/chat/codexUploadsDetector.js.map +1 -0
  98. package/dist/cli/commands/assistants/chat/historyLoader.d.ts +2 -2
  99. package/dist/cli/commands/assistants/chat/historyLoader.d.ts.map +1 -1
  100. package/dist/cli/commands/assistants/chat/historyLoader.js.map +1 -1
  101. package/dist/cli/commands/assistants/chat/index.d.ts.map +1 -1
  102. package/dist/cli/commands/assistants/chat/index.js +14 -3
  103. package/dist/cli/commands/assistants/chat/index.js.map +1 -1
  104. package/dist/cli/commands/assistants/setup/data.d.ts.map +1 -1
  105. package/dist/cli/commands/assistants/setup/data.js +7 -0
  106. package/dist/cli/commands/assistants/setup/data.js.map +1 -1
  107. package/dist/cli/commands/assistants/setup/selection/utils.d.ts +3 -3
  108. package/dist/cli/commands/assistants/setup/selection/utils.d.ts.map +1 -1
  109. package/dist/cli/commands/assistants/setup/selection/utils.js.map +1 -1
  110. package/dist/cli/commands/docs.d.ts +12 -0
  111. package/dist/cli/commands/docs.d.ts.map +1 -0
  112. package/dist/cli/commands/docs.js +141 -0
  113. package/dist/cli/commands/docs.js.map +1 -0
  114. package/dist/cli/commands/install.d.ts.map +1 -1
  115. package/dist/cli/commands/install.js +30 -18
  116. package/dist/cli/commands/install.js.map +1 -1
  117. package/dist/cli/commands/log/filter.js +1 -1
  118. package/dist/cli/commands/log/filter.js.map +1 -1
  119. package/dist/cli/commands/log/formatter.d.ts.map +1 -1
  120. package/dist/cli/commands/log/formatter.js +1 -0
  121. package/dist/cli/commands/log/formatter.js.map +1 -1
  122. package/dist/cli/commands/log/parser.d.ts.map +1 -1
  123. package/dist/cli/commands/log/parser.js +2 -0
  124. package/dist/cli/commands/log/parser.js.map +1 -1
  125. package/dist/cli/commands/log/types.d.ts +1 -1
  126. package/dist/cli/commands/log/types.d.ts.map +1 -1
  127. package/dist/cli/commands/models.d.ts.map +1 -1
  128. package/dist/cli/commands/models.js +12 -2
  129. package/dist/cli/commands/models.js.map +1 -1
  130. package/dist/cli/commands/profile/display.d.ts +3 -3
  131. package/dist/cli/commands/profile/display.d.ts.map +1 -1
  132. package/dist/cli/commands/profile/display.js +6 -6
  133. package/dist/cli/commands/profile/display.js.map +1 -1
  134. package/dist/cli/commands/profile/index.d.ts.map +1 -1
  135. package/dist/cli/commands/profile/index.js +4 -2
  136. package/dist/cli/commands/profile/index.js.map +1 -1
  137. package/dist/cli/commands/proxy/connect-orchestrator.d.ts +9 -0
  138. package/dist/cli/commands/proxy/connect-orchestrator.d.ts.map +1 -1
  139. package/dist/cli/commands/proxy/connect-orchestrator.js +15 -1
  140. package/dist/cli/commands/proxy/connect-orchestrator.js.map +1 -1
  141. package/dist/cli/commands/proxy/connectors/codex-desktop.d.ts +1 -1
  142. package/dist/cli/commands/proxy/connectors/codex-desktop.d.ts.map +1 -1
  143. package/dist/cli/commands/proxy/connectors/codex-desktop.js +19 -9
  144. package/dist/cli/commands/proxy/connectors/codex-desktop.js.map +1 -1
  145. package/dist/cli/commands/proxy/connectors/desktop.d.ts.map +1 -1
  146. package/dist/cli/commands/proxy/connectors/desktop.js +9 -0
  147. package/dist/cli/commands/proxy/connectors/desktop.js.map +1 -1
  148. package/dist/cli/commands/proxy/daemon-manager.d.ts +2 -0
  149. package/dist/cli/commands/proxy/daemon-manager.d.ts.map +1 -1
  150. package/dist/cli/commands/proxy/daemon-manager.js +2 -0
  151. package/dist/cli/commands/proxy/daemon-manager.js.map +1 -1
  152. package/dist/cli/commands/proxy/index.d.ts.map +1 -1
  153. package/dist/cli/commands/proxy/index.js +44 -2
  154. package/dist/cli/commands/proxy/index.js.map +1 -1
  155. package/dist/cli/commands/setup.d.ts +0 -16
  156. package/dist/cli/commands/setup.d.ts.map +1 -1
  157. package/dist/cli/commands/setup.js +8 -126
  158. package/dist/cli/commands/setup.js.map +1 -1
  159. package/dist/cli/commands/shared/api-response-guard.d.ts +20 -0
  160. package/dist/cli/commands/shared/api-response-guard.d.ts.map +1 -0
  161. package/dist/cli/commands/shared/api-response-guard.js +31 -0
  162. package/dist/cli/commands/shared/api-response-guard.js.map +1 -0
  163. package/dist/cli/commands/skills/setup/data.d.ts.map +1 -1
  164. package/dist/cli/commands/skills/setup/data.js +8 -0
  165. package/dist/cli/commands/skills/setup/data.js.map +1 -1
  166. package/dist/cli/index.js +2 -0
  167. package/dist/cli/index.js.map +1 -1
  168. package/dist/env/types.d.ts +22 -15
  169. package/dist/env/types.d.ts.map +1 -1
  170. package/dist/env/types.js.map +1 -1
  171. package/dist/frameworks/core/registry.d.ts +6 -0
  172. package/dist/frameworks/core/registry.d.ts.map +1 -1
  173. package/dist/frameworks/core/registry.js +8 -0
  174. package/dist/frameworks/core/registry.js.map +1 -1
  175. package/dist/frameworks/core/types.d.ts +7 -0
  176. package/dist/frameworks/core/types.d.ts.map +1 -1
  177. package/dist/frameworks/plugins/codebase-memory.plugin.d.ts.map +1 -1
  178. package/dist/frameworks/plugins/codebase-memory.plugin.js +1 -0
  179. package/dist/frameworks/plugins/codebase-memory.plugin.js.map +1 -1
  180. package/dist/frameworks/plugins/codegraph.plugin.d.ts +17 -0
  181. package/dist/frameworks/plugins/codegraph.plugin.d.ts.map +1 -0
  182. package/dist/frameworks/plugins/codegraph.plugin.js +74 -0
  183. package/dist/frameworks/plugins/codegraph.plugin.js.map +1 -0
  184. package/dist/frameworks/plugins/graphify.plugin.d.ts +20 -0
  185. package/dist/frameworks/plugins/graphify.plugin.d.ts.map +1 -0
  186. package/dist/frameworks/plugins/graphify.plugin.js +92 -0
  187. package/dist/frameworks/plugins/graphify.plugin.js.map +1 -0
  188. package/dist/frameworks/plugins/index.d.ts +2 -0
  189. package/dist/frameworks/plugins/index.d.ts.map +1 -1
  190. package/dist/frameworks/plugins/index.js +6 -0
  191. package/dist/frameworks/plugins/index.js.map +1 -1
  192. package/dist/hooks/executor.d.ts +2 -0
  193. package/dist/hooks/executor.d.ts.map +1 -1
  194. package/dist/hooks/executor.js +14 -1
  195. package/dist/hooks/executor.js.map +1 -1
  196. package/dist/migrations/001-config-rename.migration.d.ts +0 -1
  197. package/dist/migrations/001-config-rename.migration.d.ts.map +1 -1
  198. package/dist/migrations/001-config-rename.migration.js +0 -1
  199. package/dist/migrations/001-config-rename.migration.js.map +1 -1
  200. package/dist/migrations/002-consolidate-sessions.migration.d.ts +0 -1
  201. package/dist/migrations/002-consolidate-sessions.migration.d.ts.map +1 -1
  202. package/dist/migrations/002-consolidate-sessions.migration.js +0 -1
  203. package/dist/migrations/002-consolidate-sessions.migration.js.map +1 -1
  204. package/dist/migrations/003-remove-hooks-node.migration.d.ts +0 -1
  205. package/dist/migrations/003-remove-hooks-node.migration.d.ts.map +1 -1
  206. package/dist/migrations/003-remove-hooks-node.migration.js +0 -1
  207. package/dist/migrations/003-remove-hooks-node.migration.js.map +1 -1
  208. package/dist/migrations/006-resolve-hook-command-paths.migration.d.ts +9 -0
  209. package/dist/migrations/006-resolve-hook-command-paths.migration.d.ts.map +1 -0
  210. package/dist/migrations/006-resolve-hook-command-paths.migration.js +59 -0
  211. package/dist/migrations/006-resolve-hook-command-paths.migration.js.map +1 -0
  212. package/dist/migrations/007-decouple-provider-workspace-config.migration.d.ts +10 -0
  213. package/dist/migrations/007-decouple-provider-workspace-config.migration.d.ts.map +1 -0
  214. package/dist/migrations/007-decouple-provider-workspace-config.migration.js +118 -0
  215. package/dist/migrations/007-decouple-provider-workspace-config.migration.js.map +1 -0
  216. package/dist/migrations/index.d.ts +2 -0
  217. package/dist/migrations/index.d.ts.map +1 -1
  218. package/dist/migrations/index.js +2 -0
  219. package/dist/migrations/index.js.map +1 -1
  220. package/dist/migrations/types.d.ts +1 -3
  221. package/dist/migrations/types.d.ts.map +1 -1
  222. package/dist/plugins/loaders/hooks-loader.js +1 -1
  223. package/dist/plugins/loaders/hooks-loader.js.map +1 -1
  224. package/dist/providers/core/default-agent-hooks.d.ts.map +1 -1
  225. package/dist/providers/core/default-agent-hooks.js +21 -5
  226. package/dist/providers/core/default-agent-hooks.js.map +1 -1
  227. package/dist/providers/core/types.d.ts +2 -28
  228. package/dist/providers/core/types.d.ts.map +1 -1
  229. package/dist/providers/core/types.js.map +1 -1
  230. package/dist/providers/integration/setup-ui.d.ts +5 -0
  231. package/dist/providers/integration/setup-ui.d.ts.map +1 -1
  232. package/dist/providers/integration/setup-ui.js +17 -2
  233. package/dist/providers/integration/setup-ui.js.map +1 -1
  234. package/dist/providers/plugins/anthropic-subscription/anthropic-subscription.template.d.ts.map +1 -1
  235. package/dist/providers/plugins/anthropic-subscription/anthropic-subscription.template.js +12 -0
  236. package/dist/providers/plugins/anthropic-subscription/anthropic-subscription.template.js.map +1 -1
  237. package/dist/providers/plugins/litellm/litellm.setup-steps.d.ts.map +1 -1
  238. package/dist/providers/plugins/litellm/litellm.setup-steps.js +4 -21
  239. package/dist/providers/plugins/litellm/litellm.setup-steps.js.map +1 -1
  240. package/dist/providers/plugins/ollama/ollama.health.js +1 -1
  241. package/dist/providers/plugins/ollama/ollama.health.js.map +1 -1
  242. package/dist/providers/plugins/ollama/ollama.models.d.ts +29 -2
  243. package/dist/providers/plugins/ollama/ollama.models.d.ts.map +1 -1
  244. package/dist/providers/plugins/ollama/ollama.models.js +103 -22
  245. package/dist/providers/plugins/ollama/ollama.models.js.map +1 -1
  246. package/dist/providers/plugins/ollama/ollama.setup-steps.d.ts.map +1 -1
  247. package/dist/providers/plugins/ollama/ollama.setup-steps.js +71 -8
  248. package/dist/providers/plugins/ollama/ollama.setup-steps.js.map +1 -1
  249. package/dist/providers/plugins/ollama/ollama.template.d.ts.map +1 -1
  250. package/dist/providers/plugins/ollama/ollama.template.js +66 -6
  251. package/dist/providers/plugins/ollama/ollama.template.js.map +1 -1
  252. package/dist/providers/plugins/sso/proxy/plugins/claude-request-normalizer.plugin.d.ts +3 -25
  253. package/dist/providers/plugins/sso/proxy/plugins/claude-request-normalizer.plugin.d.ts.map +1 -1
  254. package/dist/providers/plugins/sso/proxy/plugins/claude-request-normalizer.plugin.js +93 -100
  255. package/dist/providers/plugins/sso/proxy/plugins/claude-request-normalizer.plugin.js.map +1 -1
  256. package/dist/providers/plugins/sso/proxy/plugins/codex-request-normalizer.plugin.js +7 -2
  257. package/dist/providers/plugins/sso/proxy/plugins/codex-request-normalizer.plugin.js.map +1 -1
  258. package/dist/providers/plugins/sso/proxy/plugins/header-injection.plugin.js +5 -1
  259. package/dist/providers/plugins/sso/proxy/plugins/header-injection.plugin.js.map +1 -1
  260. package/dist/providers/plugins/sso/proxy/plugins/sso-auth.plugin.d.ts.map +1 -1
  261. package/dist/providers/plugins/sso/proxy/plugins/sso-auth.plugin.js +32 -3
  262. package/dist/providers/plugins/sso/proxy/plugins/sso-auth.plugin.js.map +1 -1
  263. package/dist/providers/plugins/sso/proxy/proxy-errors.d.ts.map +1 -1
  264. package/dist/providers/plugins/sso/proxy/proxy-errors.js +27 -1
  265. package/dist/providers/plugins/sso/proxy/proxy-errors.js.map +1 -1
  266. package/dist/providers/plugins/sso/proxy/proxy-http-client.d.ts +7 -2
  267. package/dist/providers/plugins/sso/proxy/proxy-http-client.d.ts.map +1 -1
  268. package/dist/providers/plugins/sso/proxy/proxy-http-client.js +191 -15
  269. package/dist/providers/plugins/sso/proxy/proxy-http-client.js.map +1 -1
  270. package/dist/providers/plugins/sso/sso.auth.d.ts.map +1 -1
  271. package/dist/providers/plugins/sso/sso.auth.js +6 -2
  272. package/dist/providers/plugins/sso/sso.auth.js.map +1 -1
  273. package/dist/providers/plugins/sso/sso.setup-steps.d.ts.map +1 -1
  274. package/dist/providers/plugins/sso/sso.setup-steps.js +22 -39
  275. package/dist/providers/plugins/sso/sso.setup-steps.js.map +1 -1
  276. package/dist/utils/config.d.ts +20 -27
  277. package/dist/utils/config.d.ts.map +1 -1
  278. package/dist/utils/config.js +90 -84
  279. package/dist/utils/config.js.map +1 -1
  280. package/dist/utils/hardware.d.ts +36 -0
  281. package/dist/utils/hardware.d.ts.map +1 -0
  282. package/dist/utils/hardware.js +86 -0
  283. package/dist/utils/hardware.js.map +1 -0
  284. package/dist/utils/hook-command.d.ts +4 -0
  285. package/dist/utils/hook-command.d.ts.map +1 -0
  286. package/dist/utils/hook-command.js +82 -0
  287. package/dist/utils/hook-command.js.map +1 -0
  288. package/dist/utils/logger.d.ts +1 -0
  289. package/dist/utils/logger.d.ts.map +1 -1
  290. package/dist/utils/logger.js +21 -0
  291. package/dist/utils/logger.js.map +1 -1
  292. package/dist/utils/pricing.json +24 -0
  293. package/dist/utils/security.d.ts +28 -2
  294. package/dist/utils/security.d.ts.map +1 -1
  295. package/dist/utils/security.js +84 -24
  296. package/dist/utils/security.js.map +1 -1
  297. package/package.json +4 -10
  298. package/scripts/release.sh +3 -3
@@ -10,6 +10,7 @@ import * as crypto from 'crypto';
10
10
  import * as fs from 'fs/promises';
11
11
  import * as path from 'path';
12
12
  import * as os from 'os';
13
+ import { URL } from 'url';
13
14
  import { getCodemiePath } from './paths.js';
14
15
  // ============================================================================
15
16
  // Data Sanitization and Redaction
@@ -269,14 +270,50 @@ export class CredentialStore {
269
270
  return CredentialStore.instance;
270
271
  }
271
272
  /**
272
- * Generate a storage key for a given base URL
273
- * @param baseUrl - The base URL to hash
273
+ * Generate a storage key for a given URL.
274
+ *
275
+ * Reduces the URL to protocol+host before hashing so storage and retrieval
276
+ * always agree on a key regardless of which path a caller passes in (e.g.
277
+ * a bare portal URL from `codemie setup` vs. a full API URL from
278
+ * `codemie profile login --url <api-url>`). Only stripping a trailing
279
+ * slash here (without dropping the path) would make the key sensitive to
280
+ * whichever URL variant happened to be passed at store time.
281
+ * @param baseUrl - The URL to hash (path/query/hash, if any, are discarded)
274
282
  * @returns Storage key (e.g., "sso-abc123...")
275
283
  */
276
284
  getUrlStorageKey(baseUrl) {
277
- const normalized = baseUrl.replace(/\/$/, '').toLowerCase();
278
- const hash = crypto.createHash('sha256').update(normalized).digest('hex');
279
- return `sso-${hash}`;
285
+ return this.hashStorageKey(this.normalizeForKey(baseUrl));
286
+ }
287
+ /**
288
+ * Storage key as it was derived before the URL was normalized to protocol+host.
289
+ * Only used to find and clean up credentials written by an earlier version.
290
+ */
291
+ getLegacyUrlStorageKey(baseUrl) {
292
+ return this.hashStorageKey(baseUrl.replace(/\/$/, '').toLowerCase());
293
+ }
294
+ hashStorageKey(normalized) {
295
+ return `sso-${crypto.createHash('sha256').update(normalized).digest('hex')}`;
296
+ }
297
+ /**
298
+ * Reduce a URL to protocol+host, or return it unchanged if it is not an
299
+ * http(s) URL with a host.
300
+ *
301
+ * `new URL()` does not throw on `scheme:rest` strings — `new URL('localhost:8080')`
302
+ * parses as protocol `localhost:` with an *empty* host. Without the host and
303
+ * protocol guard every scheme-less `host:port` would normalize to the same
304
+ * `scheme://` and two different instances would share one credential entry.
305
+ */
306
+ normalizeForKey(baseUrl) {
307
+ try {
308
+ const parsed = new URL(baseUrl);
309
+ if (parsed.host && (parsed.protocol === 'http:' || parsed.protocol === 'https:')) {
310
+ return `${parsed.protocol}//${parsed.host}`.toLowerCase();
311
+ }
312
+ }
313
+ catch {
314
+ // Not a parseable URL — fall through to the raw form.
315
+ }
316
+ return baseUrl.replace(/\/$/, '').toLowerCase();
280
317
  }
281
318
  async storeSSOCredentials(credentials, baseUrl) {
282
319
  const encrypted = this.encrypt(JSON.stringify(credentials));
@@ -299,31 +336,61 @@ export class CredentialStore {
299
336
  await this.storeToFile(encrypted, filePath);
300
337
  }
301
338
  async retrieveSSOCredentials(baseUrl) {
302
- // Determine storage key based on whether baseUrl is provided
303
- const accountName = baseUrl ? this.getUrlStorageKey(baseUrl) : ACCOUNT_NAME;
304
- const filePath = baseUrl
305
- ? path.join(CREDENTIALS_DIR, `${this.getUrlStorageKey(baseUrl)}.enc`)
306
- : FALLBACK_FILE;
307
- // Try keychain first if available
339
+ if (!baseUrl) {
340
+ return this.readCredential(ACCOUNT_NAME, FALLBACK_FILE);
341
+ }
342
+ const key = this.getUrlStorageKey(baseUrl);
343
+ const current = await this.readCredential(key, this.credentialFilePath(key));
344
+ if (current) {
345
+ return current;
346
+ }
347
+ // Credentials written before the key was normalized live under the raw-URL key.
348
+ // Migrate on first read, otherwise they stay unreachable — and undeletable,
349
+ // since clearSSOCredentials would only ever look at the normalized key.
350
+ const legacyKey = this.getLegacyUrlStorageKey(baseUrl);
351
+ if (legacyKey === key) {
352
+ return null;
353
+ }
354
+ const legacy = await this.readCredential(legacyKey, this.credentialFilePath(legacyKey));
355
+ if (!legacy) {
356
+ return null;
357
+ }
358
+ await this.storeSSOCredentials(legacy, baseUrl);
359
+ await this.deleteCredential(legacyKey, this.credentialFilePath(legacyKey));
360
+ return legacy;
361
+ }
362
+ async clearSSOCredentials(baseUrl) {
363
+ if (!baseUrl) {
364
+ await this.deleteCredential(ACCOUNT_NAME, FALLBACK_FILE);
365
+ return;
366
+ }
367
+ const key = this.getUrlStorageKey(baseUrl);
368
+ await this.deleteCredential(key, this.credentialFilePath(key));
369
+ const legacyKey = this.getLegacyUrlStorageKey(baseUrl);
370
+ if (legacyKey !== key) {
371
+ await this.deleteCredential(legacyKey, this.credentialFilePath(legacyKey));
372
+ }
373
+ }
374
+ credentialFilePath(storageKey) {
375
+ return path.join(CREDENTIALS_DIR, `${storageKey}.enc`);
376
+ }
377
+ async readCredential(accountName, filePath) {
308
378
  const keytarModule = await getKeytar();
309
379
  if (keytarModule) {
310
380
  try {
311
381
  const encrypted = await keytarModule.getPassword(SERVICE_NAME, accountName);
312
382
  if (encrypted) {
313
- const decrypted = this.decrypt(encrypted);
314
- return JSON.parse(decrypted);
383
+ return JSON.parse(this.decrypt(encrypted));
315
384
  }
316
385
  }
317
386
  catch {
318
387
  // Fall through to file storage
319
388
  }
320
389
  }
321
- // Always try file storage as fallback
322
390
  try {
323
391
  const encrypted = await this.retrieveFromFile(filePath);
324
392
  if (encrypted) {
325
- const decrypted = this.decrypt(encrypted);
326
- return JSON.parse(decrypted);
393
+ return JSON.parse(this.decrypt(encrypted));
327
394
  }
328
395
  }
329
396
  catch {
@@ -331,13 +398,7 @@ export class CredentialStore {
331
398
  }
332
399
  return null;
333
400
  }
334
- async clearSSOCredentials(baseUrl) {
335
- // Determine storage key based on whether baseUrl is provided
336
- const accountName = baseUrl ? this.getUrlStorageKey(baseUrl) : ACCOUNT_NAME;
337
- const filePath = baseUrl
338
- ? path.join(CREDENTIALS_DIR, `${this.getUrlStorageKey(baseUrl)}.enc`)
339
- : FALLBACK_FILE;
340
- // Clear keychain if available
401
+ async deleteCredential(accountName, filePath) {
341
402
  const keytarModule = await getKeytar();
342
403
  if (keytarModule) {
343
404
  try {
@@ -347,7 +408,6 @@ export class CredentialStore {
347
408
  // Ignore errors, will try file storage next
348
409
  }
349
410
  }
350
- // Also clear file storage
351
411
  try {
352
412
  await fs.unlink(filePath);
353
413
  }
@@ -1 +1 @@
1
- {"version":3,"file":"security.js","sourceRoot":"","sources":["../../src/utils/security.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"security.js","sourceRoot":"","sources":["../../src/utils/security.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAC;AACjC,OAAO,KAAK,EAAE,MAAM,aAAa,CAAC;AAClC,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE5C,+EAA+E;AAC/E,kCAAkC;AAClC,+EAA+E;AAE/E;;GAEG;AACH,MAAM,sBAAsB,GAAG;IAC7B,cAAc;IACd,iBAAiB;IACjB,mBAAmB;IACnB,oBAAoB;IACpB,mBAAmB;IACnB,WAAW;IACX,SAAS;IACT,aAAa;IACb,kBAAkB;IAClB,SAAS;IACT,gBAAgB;CACjB,CAAC;AAEF;;GAEG;AACH,MAAM,wBAAwB,GAAG;IAC/B,uBAAuB,EAAE,kBAAkB;IAC3C,6BAA6B,EAAE,qBAAqB;IACpD,6BAA6B,EAAE,sBAAsB;IACrD,8DAA8D,EAAE,aAAa;IAC7E,oCAAoC,EAAE,gBAAgB;CACvD,CAAC;AAEF;;GAEG;AACH,SAAS,cAAc,CAAC,GAAW;IACjC,OAAO,sBAAsB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AACnE,CAAC;AAED;;GAEG;AACH,SAAS,gBAAgB,CAAC,KAAa;IACrC,IAAI,KAAK,CAAC,MAAM,GAAG,EAAE;QAAE,OAAO,KAAK,CAAC,CAAC,uCAAuC;IAC5E,OAAO,wBAAwB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;AACvE,CAAC;AAED;;GAEG;AACH,SAAS,UAAU,CAAC,KAAa,EAAE,SAAS,GAAG,CAAC;IAC9C,IAAI,KAAK,CAAC,MAAM,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;QAClC,OAAO,YAAY,CAAC;IACtB,CAAC;IACD,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,MAAM,KAAK,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC;AAChF,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,KAAc,EAAE,GAAY;IACxD,wBAAwB;IACxB,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QAC1C,OAAO,KAAK,CAAC;IACf,CAAC;IAED,iCAAiC;IACjC,IAAI,GAAG,IAAI,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC;QAC/B,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC;QAC3B,CAAC;QACD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,OAAO,mBAAmB,CAAC;QAC7B,CAAC;QACD,OAAO,YAAY,CAAC;IACtB,CAAC;IAED,iBAAiB;IACjB,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,IAAI,gBAAgB,CAAC,KAAK,CAAC,EAAE,CAAC;YAC5B,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC;QAC3B,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,gBAAgB;IAChB,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC;IAChD,CAAC;IAED,iBAAiB;IACjB,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,cAAc,CAAC,KAAgC,CAAC,CAAC;IAC1D,CAAC;IAED,8CAA8C;IAC9C,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,GAA4B;IACzD,MAAM,SAAS,GAA4B,EAAE,CAAC;IAE9C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QAC/C,SAAS,CAAC,GAAG,CAAC,GAAG,aAAa,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IAC7C,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,OAA2C;IACzE,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;QAC5C,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACnC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,OAAO,GAAG,KAAK,CAAC,MAAM,eAAe,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC;AAC5E,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,KAAyB;IACzD,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,IAAI,KAAK,KAAK,mBAAmB,EAAE,CAAC;QAClC,OAAO,iCAAiC,CAAC;IAC3C,CAAC;IAED,mCAAmC;IACnC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrB,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,QAAQ,KAAK,CAAC,MAAM,mBAAmB,CAAC;IACrE,CAAC;IAED,OAAO,YAAY,CAAC;AACtB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,OAA4C;IAC1E,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;QAC5C,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,SAAS,GAA4B,EAAE,CAAC;IAE9C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QACnD,MAAM,QAAQ,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;QAEnC,sCAAsC;QACtC,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;YAC1B,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;gBAC9B,0CAA0C;gBAC1C,MAAM,WAAW,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC;qBACjC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;qBAChC,MAAM,CAAC,OAAO,CAAC,CAAC;gBACnB,SAAS,CAAC,GAAG,CAAC,GAAG,GAAG,WAAW,CAAC,MAAM,eAAe,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC;YAClG,CAAC;iBAAM,CAAC;gBACN,SAAS,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC;YAChC,CAAC;QACH,CAAC;QACD,6DAA6D;aACxD,IAAI,QAAQ,KAAK,YAAY,EAAE,CAAC;YACnC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;gBACzB,MAAM,WAAW,GAAG,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;oBACrC,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;oBACzC,OAAO,IAAI,CAAC;gBACd,CAAC,CAAC,CAAC;gBACH,SAAS,CAAC,GAAG,CAAC,GAAG,WAAW,WAAW,CAAC,MAAM,eAAe,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC;YAC1G,CAAC;iBAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;gBACrC,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;gBACxC,SAAS,CAAC,GAAG,CAAC,GAAG,mBAAmB,IAAI,mBAAmB,CAAC;YAC9D,CAAC;iBAAM,CAAC;gBACN,SAAS,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC;YAChC,CAAC;QACH,CAAC;QACD,4CAA4C;aACvC,IAAI,QAAQ,KAAK,eAAe,EAAE,CAAC;YACtC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;gBAC9B,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBAC/B,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACvB,SAAS,CAAC,GAAG,CAAC,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,mBAAmB,CAAC;gBAClD,CAAC;qBAAM,CAAC;oBACN,SAAS,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC;gBAChC,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,SAAS,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC;YAChC,CAAC;QACH,CAAC;QACD,0BAA0B;aACrB,IAAI,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC;YAC7B,SAAS,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC;QAChC,CAAC;QACD,qCAAqC;aAChC,CAAC;YACJ,SAAS,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QACzB,CAAC;IACH,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,GAAG,IAAe;IAChD,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;QACpB,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;YAC5B,4CAA4C;YAC5C,IAAI,gBAAgB,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC1B,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC;YACzB,CAAC;YACD,OAAO,GAAG,CAAC;QACb,CAAC;QAED,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;YAC5C,OAAO,aAAa,CAAC,GAAG,CAAC,CAAC;QAC5B,CAAC;QAED,OAAO,GAAG,CAAC;IACb,CAAC,CAAC,CAAC;AACL,CAAC;AAED,+EAA+E;AAC/E,qBAAqB;AACrB,+EAA+E;AAE/E,MAAM,YAAY,GAAG,cAAc,CAAC;AACpC,MAAM,YAAY,GAAG,iBAAiB,CAAC;AACvC,MAAM,aAAa,GAAG,cAAc,CAAC,qBAAqB,CAAC,CAAC;AAC5D,MAAM,eAAe,GAAG,cAAc,CAAC,aAAa,CAAC,CAAC;AAEtD;;;GAGG;AACH,IAAI,MAAM,GAA+C,SAAS,CAAC;AACnE,KAAK,UAAU,SAAS;IACtB,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,IAAI,CAAC;QACH,MAAM,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,CAAC;QAChC,OAAO,MAAM,CAAC;IAChB,CAAC;IAAC,MAAM,CAAC;QACP,qDAAqD;QACrD,MAAM,GAAG,IAAI,CAAC;QACd,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,OAAO,eAAe;IAClB,MAAM,CAAC,QAAQ,CAAkB;IACjC,aAAa,CAAS;IAE9B;QACE,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,wBAAwB,EAAE,CAAC;IACvD,CAAC;IAED,MAAM,CAAC,WAAW;QAChB,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,CAAC;YAC9B,eAAe,CAAC,QAAQ,GAAG,IAAI,eAAe,EAAE,CAAC;QACnD,CAAC;QACD,OAAO,eAAe,CAAC,QAAQ,CAAC;IAClC,CAAC;IAED;;;;;;;;;;;OAWG;IACK,gBAAgB,CAAC,OAAe;QACtC,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC;IAC5D,CAAC;IAED;;;OAGG;IACK,sBAAsB,CAAC,OAAe;QAC5C,OAAO,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;IACvE,CAAC;IAEO,cAAc,CAAC,UAAkB;QACvC,OAAO,OAAO,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;IAC/E,CAAC;IAED;;;;;;;;OAQG;IACK,eAAe,CAAC,OAAe;QACrC,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC;YAChC,IAAI,MAAM,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,KAAK,OAAO,IAAI,MAAM,CAAC,QAAQ,KAAK,QAAQ,CAAC,EAAE,CAAC;gBACjF,OAAO,GAAG,MAAM,CAAC,QAAQ,KAAK,MAAM,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;YAC5D,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,sDAAsD;QACxD,CAAC;QACD,OAAO,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;IAClD,CAAC;IAED,KAAK,CAAC,mBAAmB,CAAC,WAA2B,EAAE,OAAgB;QACrE,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC;QAE5D,6DAA6D;QAC7D,MAAM,WAAW,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;QAC5E,MAAM,QAAQ,GAAG,OAAO;YACtB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,MAAM,CAAC;YACrE,CAAC,CAAC,aAAa,CAAC;QAElB,wEAAwE;QACxE,MAAM,YAAY,GAAG,MAAM,SAAS,EAAE,CAAC;QACvC,IAAI,YAAY,EAAE,CAAC;YACjB,IAAI,CAAC;gBACH,MAAM,YAAY,CAAC,WAAW,CAAC,YAAY,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;YACvE,CAAC;YAAC,MAAM,CAAC;gBACP,kDAAkD;YACpD,CAAC;QACH,CAAC;QAED,+CAA+C;QAC/C,MAAM,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IAC9C,CAAC;IAED,KAAK,CAAC,sBAAsB,CAAC,OAAgB;QAC3C,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC;QAC1D,CAAC;QAED,MAAM,GAAG,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;QAC3C,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC;QAC7E,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,OAAO,CAAC;QACjB,CAAC;QAED,gFAAgF;QAChF,4EAA4E;QAC5E,wEAAwE;QACxE,MAAM,SAAS,GAAG,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAC;QACvD,IAAI,SAAS,KAAK,GAAG,EAAE,CAAC;YACtB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC,CAAC;QACxF,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAChD,MAAM,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC,CAAC;QAC3E,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,KAAK,CAAC,mBAAmB,CAAC,OAAgB;QACxC,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,CAAC,gBAAgB,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC;YACzD,OAAO;QACT,CAAC;QAED,MAAM,GAAG,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;QAC3C,MAAM,IAAI,CAAC,gBAAgB,CAAC,GAAG,EAAE,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC;QAE/D,MAAM,SAAS,GAAG,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAC;QACvD,IAAI,SAAS,KAAK,GAAG,EAAE,CAAC;YACtB,MAAM,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC,CAAC;QAC7E,CAAC;IACH,CAAC;IAEO,kBAAkB,CAAC,UAAkB;QAC3C,OAAO,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,GAAG,UAAU,MAAM,CAAC,CAAC;IACzD,CAAC;IAEO,KAAK,CAAC,cAAc,CAC1B,WAAmB,EACnB,QAAgB;QAEhB,MAAM,YAAY,GAAG,MAAM,SAAS,EAAE,CAAC;QACvC,IAAI,YAAY,EAAE,CAAC;YACjB,IAAI,CAAC;gBACH,MAAM,SAAS,GAAG,MAAM,YAAY,CAAC,WAAW,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;gBAC5E,IAAI,SAAS,EAAE,CAAC;oBACd,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;gBAC7C,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,+BAA+B;YACjC,CAAC;QACH,CAAC;QAED,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;YACxD,IAAI,SAAS,EAAE,CAAC;gBACd,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;YAC7C,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,iCAAiC;QACnC,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,KAAK,CAAC,gBAAgB,CAAC,WAAmB,EAAE,QAAgB;QAClE,MAAM,YAAY,GAAG,MAAM,SAAS,EAAE,CAAC;QACvC,IAAI,YAAY,EAAE,CAAC;YACjB,IAAI,CAAC;gBACH,MAAM,YAAY,CAAC,cAAc,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;YAC/D,CAAC;YAAC,MAAM,CAAC;gBACP,4CAA4C;YAC9C,CAAC;QACH,CAAC;QAED,IAAI,CAAC;YACH,MAAM,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC5B,CAAC;QAAC,MAAM,CAAC;YACP,+BAA+B;QACjC,CAAC;IACH,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,mBAAmB,CAAC,WAA2B,EAAE,OAAgB;QACrE,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC;QAE5D,6DAA6D;QAC7D,0DAA0D;QAC1D,MAAM,WAAW,GAAG,OAAO,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,iBAAiB,CAAC;QAC1F,MAAM,QAAQ,GAAG,OAAO;YACtB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,OAAO,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,MAAM,CAAC;YACzE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,qBAAqB,CAAC,CAAC;QAEtD,wEAAwE;QACxE,MAAM,YAAY,GAAG,MAAM,SAAS,EAAE,CAAC;QACvC,IAAI,YAAY,EAAE,CAAC;YACjB,IAAI,CAAC;gBACH,MAAM,YAAY,CAAC,WAAW,CAAC,YAAY,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;YACvE,CAAC;YAAC,MAAM,CAAC;gBACP,kDAAkD;YACpD,CAAC;QACH,CAAC;QAED,+CAA+C;QAC/C,MAAM,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IAC9C,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,sBAAsB,CAAC,OAAgB;QAC3C,6DAA6D;QAC7D,MAAM,WAAW,GAAG,OAAO,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,iBAAiB,CAAC;QAC1F,MAAM,QAAQ,GAAG,OAAO;YACtB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,OAAO,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,MAAM,CAAC;YACzE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,qBAAqB,CAAC,CAAC;QAEtD,kCAAkC;QAClC,MAAM,YAAY,GAAG,MAAM,SAAS,EAAE,CAAC;QACvC,IAAI,YAAY,EAAE,CAAC;YACjB,IAAI,CAAC;gBACH,MAAM,SAAS,GAAG,MAAM,YAAY,CAAC,WAAW,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;gBAC5E,IAAI,SAAS,EAAE,CAAC;oBACd,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;oBAC1C,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAmB,CAAC;oBAE5D,yBAAyB;oBACzB,IAAI,WAAW,CAAC,SAAS,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,WAAW,CAAC,SAAS,EAAE,CAAC;wBAChE,OAAO,IAAI,CAAC,CAAC,gBAAgB;oBAC/B,CAAC;oBAED,OAAO,WAAW,CAAC;gBACrB,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,+BAA+B;YACjC,CAAC;QACH,CAAC;QAED,sCAAsC;QACtC,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;YACxD,IAAI,SAAS,EAAE,CAAC;gBACd,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;gBAC1C,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAmB,CAAC;gBAE5D,yBAAyB;gBACzB,IAAI,WAAW,CAAC,SAAS,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,WAAW,CAAC,SAAS,EAAE,CAAC;oBAChE,OAAO,IAAI,CAAC,CAAC,gBAAgB;gBAC/B,CAAC;gBAED,OAAO,WAAW,CAAC;YACrB,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,iCAAiC;QACnC,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,mBAAmB,CAAC,OAAgB;QACxC,6DAA6D;QAC7D,MAAM,WAAW,GAAG,OAAO,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,iBAAiB,CAAC;QAC1F,MAAM,QAAQ,GAAG,OAAO;YACtB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,OAAO,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,MAAM,CAAC;YACzE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,qBAAqB,CAAC,CAAC;QAEtD,8BAA8B;QAC9B,MAAM,YAAY,GAAG,MAAM,SAAS,EAAE,CAAC;QACvC,IAAI,YAAY,EAAE,CAAC;YACjB,IAAI,CAAC;gBACH,MAAM,YAAY,CAAC,cAAc,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;YAC/D,CAAC;YAAC,MAAM,CAAC;gBACP,4CAA4C;YAC9C,CAAC;QACH,CAAC;QAED,0BAA0B;QAC1B,IAAI,CAAC;YACH,MAAM,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC5B,CAAC;QAAC,MAAM,CAAC;YACP,+BAA+B;QACjC,CAAC;IACH,CAAC;IAEO,OAAO,CAAC,IAAY;QAC1B,MAAM,EAAE,GAAG,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QAClC,MAAM,GAAG,GAAG,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,MAAM,EAAE,CAAC;QAC5E,MAAM,MAAM,GAAG,MAAM,CAAC,cAAc,CAAC,aAAa,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;QAC7D,IAAI,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;QACnD,SAAS,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACjC,MAAM,OAAO,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;QACpC,OAAO,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,GAAG,GAAG,SAAS,CAAC;IAC9E,CAAC;IAEO,OAAO,CAAC,IAAY;QAC1B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC9B,MAAM,GAAG,GAAG,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,MAAM,EAAE,CAAC;QAE5E,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,mCAAmC;YACnC,MAAM,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;YACxC,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;YAC7C,MAAM,QAAQ,GAAG,MAAM,CAAC,gBAAgB,CAAC,aAAa,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;YACjE,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;YAC7B,IAAI,SAAS,GAAG,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;YACzD,SAAS,IAAI,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YACpC,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,oFAAoF;QACpF,MAAM,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;QACxC,MAAM,QAAQ,GAAG,MAAM,CAAC,gBAAgB,CAAC,aAAa,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;QACjE,IAAI,SAAS,GAAG,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;QACzD,SAAS,IAAI,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACpC,OAAO,SAAS,CAAC;IACnB,CAAC;IAEO,wBAAwB;QAC9B,kDAAkD;QAClD,MAAM,SAAS,GAAG,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;QAC5D,OAAO,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACrE,CAAC;IAEO,KAAK,CAAC,WAAW,CAAC,SAAiB,EAAE,QAAgB;QAC3D,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACnC,MAAM,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACzC,MAAM,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;IAClD,CAAC;IAEO,KAAK,CAAC,gBAAgB,CAAC,QAAgB;QAC7C,IAAI,CAAC;YACH,OAAO,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAC7C,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;CACF"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@codemieai/code",
3
- "version": "0.14.1",
3
+ "version": "0.15.1",
4
4
  "description": "Unified AI coding assistant CLI - Manage Claude Code, Gemini & custom agents. Multi-provider support (OpenAI, Azure, LiteLLM, SSO). Built-in LangGraph agent with file operations & git integration.",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -16,6 +16,7 @@
16
16
  "codemie-codex": "./bin/codemie-codex.js",
17
17
  "codemie-kimi": "./bin/codemie-kimi.js",
18
18
  "codemie-kimi-acp": "./bin/codemie-kimi-acp.js",
19
+ "codemie-openwiki": "./bin/codemie-openwiki.js",
19
20
  "codemie-mcp-proxy": "./bin/codemie-mcp-proxy.js",
20
21
  "proxy-daemon": "./bin/proxy-daemon.js",
21
22
  "codemie-copilot": "./bin/codemie-copilot.js"
@@ -34,14 +35,7 @@
34
35
  "copy-plugin": "node scripts/copy-plugins.js",
35
36
  "prepare:install-artifacts": "node scripts/prepare-install-artifacts.mjs",
36
37
  "dev": "tsc --watch",
37
- "test": "vitest",
38
- "test:unit": "vitest run --project unit",
39
- "test:integration": "vitest run --project cli",
40
- "test:integration:cli": "vitest run --project cli",
41
- "test:integration:vscode-models": "vitest run --project cli tests/integration/vscode-byok.test.ts tests/integration/vscode-models.live.test.ts",
42
- "test:integration:agent": "vitest run --project agent",
43
- "test:run": "vitest run --project unit --project cli",
44
- "test:all": "vitest run --project unit && vitest run --project cli && vitest run --project agent",
38
+ "test": "vitest run --project unit && vitest run --project cli && vitest run --project agent",
45
39
  "test:coverage": "vitest run --project unit --coverage",
46
40
  "test:watch": "vitest --watch",
47
41
  "test:ui": "vitest --ui",
@@ -54,7 +48,7 @@
54
48
  "commitlint:last": "commitlint --from HEAD~1 --to HEAD --verbose",
55
49
  "validate:secrets": "node scripts/validate-secrets.js",
56
50
  "license-check": "node scripts/license-check.js",
57
- "ci": "npm run license-check && npm run lint && npm run build && npm run test:unit && npm run test:integration",
51
+ "ci": "npm run license-check && npm run lint && npm run build && vitest run --project unit && vitest run --project cli",
58
52
  "ci:full": "npm run commitlint:last && npm run ci",
59
53
  "prepare": "husky",
60
54
  "prepublishOnly": "npm run build",
@@ -6,7 +6,7 @@
6
6
  # Designed to be resumable - can continue from failed steps
7
7
  #
8
8
  # Release flow: version bump → commit → agent tests gate → tag → push → GitHub release
9
- # Agent tests gate: runs `npm run test:integration:agent` before tagging.
9
+ # Agent tests gate: runs `npx vitest run --project agent` before tagging.
10
10
  # - Tests pass → continue automatically
11
11
  # - Tests fail → release blocked (fix tests first)
12
12
  # - Tests cannot run (missing SSO/JWT credentials) → manual confirmation required
@@ -207,7 +207,7 @@ echo ""
207
207
  echo "🧪 Running agent tests..."
208
208
  AGENT_TEST_JSON=$(mktemp /tmp/agent-test-XXXXX.json) || { echo "ERROR: mktemp failed, cannot capture agent test results"; exit 1; }
209
209
  trap 'rm -f "$AGENT_TEST_JSON"' EXIT INT TERM
210
- npm run test:integration:agent -- --reporter=verbose --reporter=json --outputFile="$AGENT_TEST_JSON"
210
+ npx vitest run --project agent --reporter=verbose --reporter=json --outputFile="$AGENT_TEST_JSON"
211
211
  AGENT_EXIT_CODE=$?
212
212
 
213
213
  AGENT_PASSED=0
@@ -237,7 +237,7 @@ else
237
237
  echo " (check: cat ~/.codemie/codemie-cli.config.json)"
238
238
  echo " • CI: set CI_IS_LOCAL_RUN=false and provide tests/.env.test.local"
239
239
  echo ""
240
- echo " To run manually: npm run test:integration:agent"
240
+ echo " To run manually: npx vitest run --project agent"
241
241
  echo ""
242
242
  read -p "❓ Have you manually run agent tests and confirmed they pass? (y/N): " -n 1 -r
243
243
  echo