@codemieai/code 0.14.1 → 0.15.0

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 (276) 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 +48 -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/statusline.mjs +5 -1
  22. package/dist/agents/plugins/codemie-code.plugin.d.ts +1 -0
  23. package/dist/agents/plugins/codemie-code.plugin.d.ts.map +1 -1
  24. package/dist/agents/plugins/codemie-code.plugin.js +12 -5
  25. package/dist/agents/plugins/codemie-code.plugin.js.map +1 -1
  26. package/dist/agents/plugins/codex/codex-message-types.d.ts +28 -0
  27. package/dist/agents/plugins/codex/codex-message-types.d.ts.map +1 -1
  28. package/dist/agents/plugins/codex/codex-message-types.js.map +1 -1
  29. package/dist/agents/plugins/codex/codex.plugin.d.ts.map +1 -1
  30. package/dist/agents/plugins/codex/codex.plugin.js +30 -2
  31. package/dist/agents/plugins/codex/codex.plugin.js.map +1 -1
  32. package/dist/agents/plugins/codex/index.d.ts +4 -2
  33. package/dist/agents/plugins/codex/index.d.ts.map +1 -1
  34. package/dist/agents/plugins/codex/index.js +3 -1
  35. package/dist/agents/plugins/codex/index.js.map +1 -1
  36. package/dist/agents/plugins/copilot-cli/copilot-cli.plugin.d.ts.map +1 -1
  37. package/dist/agents/plugins/copilot-cli/copilot-cli.plugin.js +3 -1
  38. package/dist/agents/plugins/copilot-cli/copilot-cli.plugin.js.map +1 -1
  39. package/dist/agents/plugins/gemini/gemini.models.d.ts +33 -0
  40. package/dist/agents/plugins/gemini/gemini.models.d.ts.map +1 -0
  41. package/dist/agents/plugins/gemini/gemini.models.js +122 -0
  42. package/dist/agents/plugins/gemini/gemini.models.js.map +1 -0
  43. package/dist/agents/plugins/gemini/gemini.plugin.d.ts.map +1 -1
  44. package/dist/agents/plugins/gemini/gemini.plugin.js +6 -0
  45. package/dist/agents/plugins/gemini/gemini.plugin.js.map +1 -1
  46. package/dist/agents/plugins/openwiki/openwiki.plugin.d.ts +30 -0
  47. package/dist/agents/plugins/openwiki/openwiki.plugin.d.ts.map +1 -0
  48. package/dist/agents/plugins/openwiki/openwiki.plugin.js +73 -0
  49. package/dist/agents/plugins/openwiki/openwiki.plugin.js.map +1 -0
  50. package/dist/agents/plugins/pi/pi.models.d.ts.map +1 -1
  51. package/dist/agents/plugins/pi/pi.models.js +62 -0
  52. package/dist/agents/plugins/pi/pi.models.js.map +1 -1
  53. package/dist/agents/plugins/pi/pi.plugin.d.ts.map +1 -1
  54. package/dist/agents/plugins/pi/pi.plugin.js +7 -3
  55. package/dist/agents/plugins/pi/pi.plugin.js.map +1 -1
  56. package/dist/agents/registry.d.ts.map +1 -1
  57. package/dist/agents/registry.js +2 -0
  58. package/dist/agents/registry.js.map +1 -1
  59. package/dist/bin/proxy-daemon.js +3 -0
  60. package/dist/bin/proxy-daemon.js.map +1 -1
  61. package/dist/cli/commands/analytics/aggregator.d.ts.map +1 -1
  62. package/dist/cli/commands/analytics/aggregator.js +1 -0
  63. package/dist/cli/commands/analytics/aggregator.js.map +1 -1
  64. package/dist/cli/commands/analytics/cost/cost-enricher.d.ts.map +1 -1
  65. package/dist/cli/commands/analytics/cost/cost-enricher.js +6 -1
  66. package/dist/cli/commands/analytics/cost/cost-enricher.js.map +1 -1
  67. package/dist/cli/commands/analytics/cost/types.d.ts +8 -0
  68. package/dist/cli/commands/analytics/cost/types.d.ts.map +1 -1
  69. package/dist/cli/commands/analytics/report/client/app.js +111 -1
  70. package/dist/cli/commands/analytics/report/payload-builder.d.ts.map +1 -1
  71. package/dist/cli/commands/analytics/report/payload-builder.js +6 -0
  72. package/dist/cli/commands/analytics/report/payload-builder.js.map +1 -1
  73. package/dist/cli/commands/analytics/report/template.html +9 -0
  74. package/dist/cli/commands/analytics/report/types.d.ts +1 -0
  75. package/dist/cli/commands/analytics/report/types.d.ts.map +1 -1
  76. package/dist/cli/commands/analytics/types.d.ts +1 -0
  77. package/dist/cli/commands/analytics/types.d.ts.map +1 -1
  78. package/dist/cli/commands/assistants/chat/claudeUploadsDetector.d.ts.map +1 -1
  79. package/dist/cli/commands/assistants/chat/claudeUploadsDetector.js +43 -67
  80. package/dist/cli/commands/assistants/chat/claudeUploadsDetector.js.map +1 -1
  81. package/dist/cli/commands/assistants/chat/codexUploadsDetector.d.ts +26 -0
  82. package/dist/cli/commands/assistants/chat/codexUploadsDetector.d.ts.map +1 -0
  83. package/dist/cli/commands/assistants/chat/codexUploadsDetector.js +240 -0
  84. package/dist/cli/commands/assistants/chat/codexUploadsDetector.js.map +1 -0
  85. package/dist/cli/commands/assistants/chat/historyLoader.d.ts +2 -2
  86. package/dist/cli/commands/assistants/chat/historyLoader.d.ts.map +1 -1
  87. package/dist/cli/commands/assistants/chat/historyLoader.js.map +1 -1
  88. package/dist/cli/commands/assistants/chat/index.d.ts.map +1 -1
  89. package/dist/cli/commands/assistants/chat/index.js +14 -3
  90. package/dist/cli/commands/assistants/chat/index.js.map +1 -1
  91. package/dist/cli/commands/assistants/setup/data.d.ts.map +1 -1
  92. package/dist/cli/commands/assistants/setup/data.js +7 -0
  93. package/dist/cli/commands/assistants/setup/data.js.map +1 -1
  94. package/dist/cli/commands/assistants/setup/selection/utils.d.ts +3 -3
  95. package/dist/cli/commands/assistants/setup/selection/utils.d.ts.map +1 -1
  96. package/dist/cli/commands/assistants/setup/selection/utils.js.map +1 -1
  97. package/dist/cli/commands/docs.d.ts +12 -0
  98. package/dist/cli/commands/docs.d.ts.map +1 -0
  99. package/dist/cli/commands/docs.js +141 -0
  100. package/dist/cli/commands/docs.js.map +1 -0
  101. package/dist/cli/commands/install.d.ts.map +1 -1
  102. package/dist/cli/commands/install.js +30 -18
  103. package/dist/cli/commands/install.js.map +1 -1
  104. package/dist/cli/commands/log/filter.js +1 -1
  105. package/dist/cli/commands/log/filter.js.map +1 -1
  106. package/dist/cli/commands/log/formatter.d.ts.map +1 -1
  107. package/dist/cli/commands/log/formatter.js +1 -0
  108. package/dist/cli/commands/log/formatter.js.map +1 -1
  109. package/dist/cli/commands/log/parser.d.ts.map +1 -1
  110. package/dist/cli/commands/log/parser.js +2 -0
  111. package/dist/cli/commands/log/parser.js.map +1 -1
  112. package/dist/cli/commands/log/types.d.ts +1 -1
  113. package/dist/cli/commands/log/types.d.ts.map +1 -1
  114. package/dist/cli/commands/models.d.ts.map +1 -1
  115. package/dist/cli/commands/models.js +12 -2
  116. package/dist/cli/commands/models.js.map +1 -1
  117. package/dist/cli/commands/profile/display.d.ts +3 -3
  118. package/dist/cli/commands/profile/display.d.ts.map +1 -1
  119. package/dist/cli/commands/profile/display.js +6 -6
  120. package/dist/cli/commands/profile/display.js.map +1 -1
  121. package/dist/cli/commands/profile/index.d.ts.map +1 -1
  122. package/dist/cli/commands/profile/index.js +4 -2
  123. package/dist/cli/commands/profile/index.js.map +1 -1
  124. package/dist/cli/commands/proxy/connect-orchestrator.d.ts +9 -0
  125. package/dist/cli/commands/proxy/connect-orchestrator.d.ts.map +1 -1
  126. package/dist/cli/commands/proxy/connect-orchestrator.js +15 -1
  127. package/dist/cli/commands/proxy/connect-orchestrator.js.map +1 -1
  128. package/dist/cli/commands/proxy/connectors/codex-desktop.d.ts +1 -1
  129. package/dist/cli/commands/proxy/connectors/codex-desktop.d.ts.map +1 -1
  130. package/dist/cli/commands/proxy/connectors/codex-desktop.js +19 -9
  131. package/dist/cli/commands/proxy/connectors/codex-desktop.js.map +1 -1
  132. package/dist/cli/commands/proxy/connectors/desktop.d.ts.map +1 -1
  133. package/dist/cli/commands/proxy/connectors/desktop.js +9 -0
  134. package/dist/cli/commands/proxy/connectors/desktop.js.map +1 -1
  135. package/dist/cli/commands/proxy/daemon-manager.d.ts +2 -0
  136. package/dist/cli/commands/proxy/daemon-manager.d.ts.map +1 -1
  137. package/dist/cli/commands/proxy/daemon-manager.js +2 -0
  138. package/dist/cli/commands/proxy/daemon-manager.js.map +1 -1
  139. package/dist/cli/commands/proxy/index.d.ts.map +1 -1
  140. package/dist/cli/commands/proxy/index.js +44 -2
  141. package/dist/cli/commands/proxy/index.js.map +1 -1
  142. package/dist/cli/commands/setup.d.ts.map +1 -1
  143. package/dist/cli/commands/setup.js +6 -6
  144. package/dist/cli/commands/setup.js.map +1 -1
  145. package/dist/cli/commands/shared/api-response-guard.d.ts +20 -0
  146. package/dist/cli/commands/shared/api-response-guard.d.ts.map +1 -0
  147. package/dist/cli/commands/shared/api-response-guard.js +31 -0
  148. package/dist/cli/commands/shared/api-response-guard.js.map +1 -0
  149. package/dist/cli/commands/skills/setup/data.d.ts.map +1 -1
  150. package/dist/cli/commands/skills/setup/data.js +8 -0
  151. package/dist/cli/commands/skills/setup/data.js.map +1 -1
  152. package/dist/cli/index.js +2 -0
  153. package/dist/cli/index.js.map +1 -1
  154. package/dist/env/types.d.ts +22 -15
  155. package/dist/env/types.d.ts.map +1 -1
  156. package/dist/env/types.js.map +1 -1
  157. package/dist/frameworks/core/registry.d.ts +6 -0
  158. package/dist/frameworks/core/registry.d.ts.map +1 -1
  159. package/dist/frameworks/core/registry.js +8 -0
  160. package/dist/frameworks/core/registry.js.map +1 -1
  161. package/dist/frameworks/core/types.d.ts +7 -0
  162. package/dist/frameworks/core/types.d.ts.map +1 -1
  163. package/dist/frameworks/plugins/codebase-memory.plugin.d.ts.map +1 -1
  164. package/dist/frameworks/plugins/codebase-memory.plugin.js +1 -0
  165. package/dist/frameworks/plugins/codebase-memory.plugin.js.map +1 -1
  166. package/dist/frameworks/plugins/codegraph.plugin.d.ts +17 -0
  167. package/dist/frameworks/plugins/codegraph.plugin.d.ts.map +1 -0
  168. package/dist/frameworks/plugins/codegraph.plugin.js +74 -0
  169. package/dist/frameworks/plugins/codegraph.plugin.js.map +1 -0
  170. package/dist/frameworks/plugins/graphify.plugin.d.ts +20 -0
  171. package/dist/frameworks/plugins/graphify.plugin.d.ts.map +1 -0
  172. package/dist/frameworks/plugins/graphify.plugin.js +92 -0
  173. package/dist/frameworks/plugins/graphify.plugin.js.map +1 -0
  174. package/dist/frameworks/plugins/index.d.ts +2 -0
  175. package/dist/frameworks/plugins/index.d.ts.map +1 -1
  176. package/dist/frameworks/plugins/index.js +6 -0
  177. package/dist/frameworks/plugins/index.js.map +1 -1
  178. package/dist/hooks/executor.d.ts +2 -0
  179. package/dist/hooks/executor.d.ts.map +1 -1
  180. package/dist/hooks/executor.js +14 -1
  181. package/dist/hooks/executor.js.map +1 -1
  182. package/dist/migrations/001-config-rename.migration.d.ts +0 -1
  183. package/dist/migrations/001-config-rename.migration.d.ts.map +1 -1
  184. package/dist/migrations/001-config-rename.migration.js +0 -1
  185. package/dist/migrations/001-config-rename.migration.js.map +1 -1
  186. package/dist/migrations/002-consolidate-sessions.migration.d.ts +0 -1
  187. package/dist/migrations/002-consolidate-sessions.migration.d.ts.map +1 -1
  188. package/dist/migrations/002-consolidate-sessions.migration.js +0 -1
  189. package/dist/migrations/002-consolidate-sessions.migration.js.map +1 -1
  190. package/dist/migrations/003-remove-hooks-node.migration.d.ts +0 -1
  191. package/dist/migrations/003-remove-hooks-node.migration.d.ts.map +1 -1
  192. package/dist/migrations/003-remove-hooks-node.migration.js +0 -1
  193. package/dist/migrations/003-remove-hooks-node.migration.js.map +1 -1
  194. package/dist/migrations/006-resolve-hook-command-paths.migration.d.ts +9 -0
  195. package/dist/migrations/006-resolve-hook-command-paths.migration.d.ts.map +1 -0
  196. package/dist/migrations/006-resolve-hook-command-paths.migration.js +59 -0
  197. package/dist/migrations/006-resolve-hook-command-paths.migration.js.map +1 -0
  198. package/dist/migrations/007-decouple-provider-workspace-config.migration.d.ts +10 -0
  199. package/dist/migrations/007-decouple-provider-workspace-config.migration.d.ts.map +1 -0
  200. package/dist/migrations/007-decouple-provider-workspace-config.migration.js +118 -0
  201. package/dist/migrations/007-decouple-provider-workspace-config.migration.js.map +1 -0
  202. package/dist/migrations/index.d.ts +2 -0
  203. package/dist/migrations/index.d.ts.map +1 -1
  204. package/dist/migrations/index.js +2 -0
  205. package/dist/migrations/index.js.map +1 -1
  206. package/dist/migrations/types.d.ts +1 -3
  207. package/dist/migrations/types.d.ts.map +1 -1
  208. package/dist/plugins/loaders/hooks-loader.js +1 -1
  209. package/dist/plugins/loaders/hooks-loader.js.map +1 -1
  210. package/dist/providers/core/codemie-auth-helpers.d.ts +1 -1
  211. package/dist/providers/core/codemie-auth-helpers.d.ts.map +1 -1
  212. package/dist/providers/core/codemie-auth-helpers.js +3 -3
  213. package/dist/providers/core/codemie-auth-helpers.js.map +1 -1
  214. package/dist/providers/core/default-agent-hooks.d.ts.map +1 -1
  215. package/dist/providers/core/default-agent-hooks.js +21 -5
  216. package/dist/providers/core/default-agent-hooks.js.map +1 -1
  217. package/dist/providers/core/types.d.ts +1 -0
  218. package/dist/providers/core/types.d.ts.map +1 -1
  219. package/dist/providers/core/types.js.map +1 -1
  220. package/dist/providers/integration/setup-ui.d.ts +5 -0
  221. package/dist/providers/integration/setup-ui.d.ts.map +1 -1
  222. package/dist/providers/integration/setup-ui.js +17 -2
  223. package/dist/providers/integration/setup-ui.js.map +1 -1
  224. package/dist/providers/plugins/anthropic-subscription/anthropic-subscription.template.d.ts.map +1 -1
  225. package/dist/providers/plugins/anthropic-subscription/anthropic-subscription.template.js +12 -0
  226. package/dist/providers/plugins/anthropic-subscription/anthropic-subscription.template.js.map +1 -1
  227. package/dist/providers/plugins/litellm/litellm.setup-steps.d.ts.map +1 -1
  228. package/dist/providers/plugins/litellm/litellm.setup-steps.js +6 -4
  229. package/dist/providers/plugins/litellm/litellm.setup-steps.js.map +1 -1
  230. package/dist/providers/plugins/ollama/ollama.health.js +1 -1
  231. package/dist/providers/plugins/ollama/ollama.health.js.map +1 -1
  232. package/dist/providers/plugins/ollama/ollama.models.d.ts +29 -2
  233. package/dist/providers/plugins/ollama/ollama.models.d.ts.map +1 -1
  234. package/dist/providers/plugins/ollama/ollama.models.js +103 -22
  235. package/dist/providers/plugins/ollama/ollama.models.js.map +1 -1
  236. package/dist/providers/plugins/ollama/ollama.setup-steps.d.ts.map +1 -1
  237. package/dist/providers/plugins/ollama/ollama.setup-steps.js +71 -8
  238. package/dist/providers/plugins/ollama/ollama.setup-steps.js.map +1 -1
  239. package/dist/providers/plugins/ollama/ollama.template.d.ts.map +1 -1
  240. package/dist/providers/plugins/ollama/ollama.template.js +66 -6
  241. package/dist/providers/plugins/ollama/ollama.template.js.map +1 -1
  242. package/dist/providers/plugins/sso/proxy/plugins/claude-request-normalizer.plugin.d.ts +3 -25
  243. package/dist/providers/plugins/sso/proxy/plugins/claude-request-normalizer.plugin.d.ts.map +1 -1
  244. package/dist/providers/plugins/sso/proxy/plugins/claude-request-normalizer.plugin.js +93 -100
  245. package/dist/providers/plugins/sso/proxy/plugins/claude-request-normalizer.plugin.js.map +1 -1
  246. package/dist/providers/plugins/sso/proxy/plugins/codex-request-normalizer.plugin.js +7 -2
  247. package/dist/providers/plugins/sso/proxy/plugins/codex-request-normalizer.plugin.js.map +1 -1
  248. package/dist/providers/plugins/sso/proxy/plugins/header-injection.plugin.js +5 -1
  249. package/dist/providers/plugins/sso/proxy/plugins/header-injection.plugin.js.map +1 -1
  250. package/dist/providers/plugins/sso/proxy/plugins/sso-auth.plugin.d.ts.map +1 -1
  251. package/dist/providers/plugins/sso/proxy/plugins/sso-auth.plugin.js +32 -3
  252. package/dist/providers/plugins/sso/proxy/plugins/sso-auth.plugin.js.map +1 -1
  253. package/dist/providers/plugins/sso/proxy/proxy-errors.d.ts.map +1 -1
  254. package/dist/providers/plugins/sso/proxy/proxy-errors.js +27 -1
  255. package/dist/providers/plugins/sso/proxy/proxy-errors.js.map +1 -1
  256. package/dist/providers/plugins/sso/proxy/proxy-http-client.d.ts +7 -2
  257. package/dist/providers/plugins/sso/proxy/proxy-http-client.d.ts.map +1 -1
  258. package/dist/providers/plugins/sso/proxy/proxy-http-client.js +191 -15
  259. package/dist/providers/plugins/sso/proxy/proxy-http-client.js.map +1 -1
  260. package/dist/utils/config.d.ts +20 -27
  261. package/dist/utils/config.d.ts.map +1 -1
  262. package/dist/utils/config.js +90 -84
  263. package/dist/utils/config.js.map +1 -1
  264. package/dist/utils/hardware.d.ts +36 -0
  265. package/dist/utils/hardware.d.ts.map +1 -0
  266. package/dist/utils/hardware.js +86 -0
  267. package/dist/utils/hardware.js.map +1 -0
  268. package/dist/utils/hook-command.d.ts +4 -0
  269. package/dist/utils/hook-command.d.ts.map +1 -0
  270. package/dist/utils/hook-command.js +75 -0
  271. package/dist/utils/hook-command.js.map +1 -0
  272. package/dist/utils/logger.d.ts +1 -0
  273. package/dist/utils/logger.d.ts.map +1 -1
  274. package/dist/utils/logger.js +21 -0
  275. package/dist/utils/logger.js.map +1 -1
  276. package/package.json +2 -1
@@ -17,15 +17,66 @@ export const OllamaTemplate = registerProvider({
17
17
  authType: 'none',
18
18
  recommendedModels: [
19
19
  'qwen2.5-coder',
20
- 'qwen3-vl:235b-cloud',
21
- 'deepseek-coder-v2',
22
- 'deepseek-v3.1:671b-cloud'
20
+ 'gpt-oss:120b-cloud',
21
+ 'deepseek-coder-v2'
23
22
  ],
23
+ modelMetadata: {
24
+ 'qwen2.5-coder': {
25
+ name: 'Qwen 2.5 Coder',
26
+ description: 'Excellent coding model with tool support (7B, ~5GB download)',
27
+ popular: true,
28
+ minMemoryGb: 8
29
+ },
30
+ 'gpt-oss:120b-cloud': {
31
+ name: 'GPT-OSS 120B (cloud)',
32
+ description: 'OpenAI open-weight model on Ollama cloud - no local memory required',
33
+ popular: true
34
+ // No minMemoryGb: runs on ollama.com, not on the local machine
35
+ },
36
+ 'deepseek-coder-v2': {
37
+ name: 'DeepSeek Coder V2',
38
+ description: 'Advanced coding model with tool support (16B, ~9GB download)',
39
+ popular: true,
40
+ minMemoryGb: 12
41
+ }
42
+ },
24
43
  capabilities: ['streaming', 'tools', 'embeddings', 'model-management'],
25
44
  supportsModelInstallation: true,
26
45
  healthCheckEndpoint: '/api/version',
27
46
  // Agent lifecycle hooks
28
- agentHooks: {},
47
+ agentHooks: {
48
+ // Wildcard hook: adjust env for ALL agents when running against Ollama.
49
+ // Chained before each agent's own default hooks (see resolveHook).
50
+ '*': {
51
+ beforeRun: async (env, config) => {
52
+ // Claude Code speaks the Anthropic Messages API, which Ollama serves
53
+ // at the host root (https://docs.ollama.com/api/anthropic-compatibility),
54
+ // while the profile baseUrl carries the OpenAI-compatible /v1 suffix.
55
+ if (env.ANTHROPIC_BASE_URL) {
56
+ env.ANTHROPIC_BASE_URL = env.ANTHROPIC_BASE_URL.replace(/\/v1\/?$/, '');
57
+ // Ollama ignores the token but Claude Code requires it to be set.
58
+ // A real ollama.com API key is used when configured (cloud access).
59
+ env.ANTHROPIC_AUTH_TOKEN =
60
+ config.apiKey && config.apiKey !== 'not-required' ? config.apiKey : 'ollama';
61
+ // Model tiers: ollama model names never match the haiku/sonnet/opus
62
+ // auto-selection, so route every tier to the selected model instead
63
+ // of letting Claude Code fall back to its built-in claude-* defaults.
64
+ if (env.CODEMIE_MODEL) {
65
+ if (!env.ANTHROPIC_DEFAULT_HAIKU_MODEL) {
66
+ env.ANTHROPIC_DEFAULT_HAIKU_MODEL = env.CODEMIE_MODEL;
67
+ }
68
+ if (!env.ANTHROPIC_DEFAULT_SONNET_MODEL) {
69
+ env.ANTHROPIC_DEFAULT_SONNET_MODEL = env.CODEMIE_MODEL;
70
+ }
71
+ if (!env.ANTHROPIC_DEFAULT_OPUS_MODEL) {
72
+ env.ANTHROPIC_DEFAULT_OPUS_MODEL = env.CODEMIE_MODEL;
73
+ }
74
+ }
75
+ }
76
+ return env;
77
+ }
78
+ }
79
+ },
29
80
  setupInstructions: `
30
81
  # Ollama Setup Instructions
31
82
 
@@ -47,12 +98,21 @@ Download from: https://ollama.com/download
47
98
  **Important**: Some agents require models with function calling/tool support.
48
99
 
49
100
  - **qwen2.5-coder**: Excellent for coding tasks with tool support (7B, ~5GB)
50
- - **qwen3-vl:235b-cloud**: Latest Qwen with vision and tool support (235B)
101
+ - **gpt-oss:120b-cloud**: OpenAI's open-weight model via Ollama cloud (120B, no download)
51
102
  - **deepseek-coder-v2**: Advanced coding model with tool support (16B, ~9GB)
52
- - **deepseek-v3.1:671b-cloud**: Latest DeepSeek with advanced reasoning (671B)
53
103
 
54
104
  **Note**: Models without tool support (like codellama) will fail with agents that require function calling.
55
105
 
106
+ ## Ollama Cloud (ollama.com)
107
+
108
+ Signed in locally via \`ollama signin\`? The local daemon authenticates cloud
109
+ models automatically - no extra configuration needed to *run* \`-cloud\` models.
110
+ The cloud model catalog is listed automatically during setup (public endpoint).
111
+
112
+ An optional API key from https://ollama.com/settings/keys additionally enables:
113
+ - Running cloud models directly on ollama.com (no local daemon required)
114
+ - Ollama's web search / web fetch API
115
+
56
116
  ## Documentation
57
117
 
58
118
  - Official website: https://ollama.com
@@ -1 +1 @@
1
- {"version":3,"file":"ollama.template.js","sourceRoot":"","sources":["../../../../src/providers/plugins/ollama/ollama.template.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAE5D,MAAM,CAAC,MAAM,cAAc,GAAG,gBAAgB,CAAmB;IAC/D,IAAI,EAAE,QAAQ;IACd,WAAW,EAAE,QAAQ;IACrB,WAAW,EAAE,2EAA2E;IACxF,WAAW,EAAE,KAAK;IAClB,cAAc,EAAE,wBAAwB;IACxC,YAAY,EAAE,KAAK;IACnB,QAAQ,EAAE,MAAM;IAChB,iBAAiB,EAAE;QACjB,eAAe;QACf,qBAAqB;QACrB,mBAAmB;QACnB,0BAA0B;KAC3B;IACD,YAAY,EAAE,CAAC,WAAW,EAAE,OAAO,EAAE,YAAY,EAAE,kBAAkB,CAAC;IACtE,yBAAyB,EAAE,IAAI;IAC/B,mBAAmB,EAAE,cAAc;IAEnC,wBAAwB;IACxB,UAAU,EAAE,EAAE;IAEd,iBAAiB,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgCpB;CACA,CAAC,CAAC"}
1
+ {"version":3,"file":"ollama.template.js","sourceRoot":"","sources":["../../../../src/providers/plugins/ollama/ollama.template.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAE5D,MAAM,CAAC,MAAM,cAAc,GAAG,gBAAgB,CAAmB;IAC/D,IAAI,EAAE,QAAQ;IACd,WAAW,EAAE,QAAQ;IACrB,WAAW,EAAE,2EAA2E;IACxF,WAAW,EAAE,KAAK;IAClB,cAAc,EAAE,wBAAwB;IACxC,YAAY,EAAE,KAAK;IACnB,QAAQ,EAAE,MAAM;IAChB,iBAAiB,EAAE;QACjB,eAAe;QACf,oBAAoB;QACpB,mBAAmB;KACpB;IACD,aAAa,EAAE;QACb,eAAe,EAAE;YACf,IAAI,EAAE,gBAAgB;YACtB,WAAW,EAAE,8DAA8D;YAC3E,OAAO,EAAE,IAAI;YACb,WAAW,EAAE,CAAC;SACf;QACD,oBAAoB,EAAE;YACpB,IAAI,EAAE,sBAAsB;YAC5B,WAAW,EAAE,qEAAqE;YAClF,OAAO,EAAE,IAAI;YACb,+DAA+D;SAChE;QACD,mBAAmB,EAAE;YACnB,IAAI,EAAE,mBAAmB;YACzB,WAAW,EAAE,8DAA8D;YAC3E,OAAO,EAAE,IAAI;YACb,WAAW,EAAE,EAAE;SAChB;KACF;IACD,YAAY,EAAE,CAAC,WAAW,EAAE,OAAO,EAAE,YAAY,EAAE,kBAAkB,CAAC;IACtE,yBAAyB,EAAE,IAAI;IAC/B,mBAAmB,EAAE,cAAc;IAEnC,wBAAwB;IACxB,UAAU,EAAE;QACV,wEAAwE;QACxE,mEAAmE;QACnE,GAAG,EAAE;YACH,SAAS,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE;gBAC/B,qEAAqE;gBACrE,0EAA0E;gBAC1E,sEAAsE;gBACtE,IAAI,GAAG,CAAC,kBAAkB,EAAE,CAAC;oBAC3B,GAAG,CAAC,kBAAkB,GAAG,GAAG,CAAC,kBAAkB,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;oBAExE,kEAAkE;oBAClE,oEAAoE;oBACpE,GAAG,CAAC,oBAAoB;wBACtB,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC;oBAE/E,oEAAoE;oBACpE,oEAAoE;oBACpE,sEAAsE;oBACtE,IAAI,GAAG,CAAC,aAAa,EAAE,CAAC;wBACtB,IAAI,CAAC,GAAG,CAAC,6BAA6B,EAAE,CAAC;4BACvC,GAAG,CAAC,6BAA6B,GAAG,GAAG,CAAC,aAAa,CAAC;wBACxD,CAAC;wBACD,IAAI,CAAC,GAAG,CAAC,8BAA8B,EAAE,CAAC;4BACxC,GAAG,CAAC,8BAA8B,GAAG,GAAG,CAAC,aAAa,CAAC;wBACzD,CAAC;wBACD,IAAI,CAAC,GAAG,CAAC,4BAA4B,EAAE,CAAC;4BACtC,GAAG,CAAC,4BAA4B,GAAG,GAAG,CAAC,aAAa,CAAC;wBACvD,CAAC;oBACH,CAAC;gBACH,CAAC;gBAED,OAAO,GAAG,CAAC;YACb,CAAC;SACF;KACF;IAED,iBAAiB,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyCpB;CACA,CAAC,CAAC"}
@@ -1,29 +1,7 @@
1
1
  /**
2
- * Claude Request Normalizer Plugin
3
- * Priority: 14 (runs before RequestSanitizer at 15)
4
- *
5
- * Normalizes Claude API requests to match model-specific requirements.
6
- * Handles thinking parameter variations across Claude model versions:
7
- *
8
- * 1. Models that DO NOT support thinking (e.g. claude-haiku-4-5, 4-6):
9
- * → strips the thinking field entirely to prevent API errors
10
- *
11
- * 2. Models that require adaptive thinking API (e.g. claude-opus-4-7+, claude-sonnet-5):
12
- * → "enabled" → thinking: { type: "adaptive" } + output_config.effort
13
- * → "disabled" → either preserve or delete the field depending on model support
14
- *
15
- * 3. Models that deprecate sampling parameters (e.g. claude-sonnet-5):
16
- * → strips temperature / top_p / top_k entirely to prevent API errors
17
- *
18
- * Problem: Claude Code sends `thinking: { type: "enabled", budget_tokens: N }`.
19
- * - Haiku models reject thinking field with HTTP 400
20
- * - Opus 4-7+ requires adaptive thinking format with output_config.effort
21
- * - Sonnet 5 rejects manual extended thinking and sampling parameters
22
- *
23
- * Scope: Enabled for codemie-claude (Claude Code via SSO proxy), codemie-copilot
24
- * (GitHub Copilot CLI via BYOK Anthropic shape), and claude-desktop (Desktop 3P mode).
25
- *
26
- * To add model support: update NO_THINKING_MODEL_PATTERNS or ADAPTIVE_THINKING_MODEL_PATTERNS.
2
+ * Normalizes Claude API requests per model. Every model-specific decision reads
3
+ * from MODEL_CAPABILITY_TABLE; add/edit a row to change support. Priority 14
4
+ * (before RequestSanitizer at 15). See EPMCDME-14035.
27
5
  */
28
6
  import { ProxyPlugin, PluginContext, ProxyInterceptor } from './types.js';
29
7
  export declare class ClaudeRequestNormalizerPlugin implements ProxyPlugin {
@@ -1 +1 @@
1
- {"version":3,"file":"claude-request-normalizer.plugin.d.ts","sourceRoot":"","sources":["../../../../../../src/providers/plugins/sso/proxy/plugins/claude-request-normalizer.plugin.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAqI1E,qBAAa,6BAA8B,YAAW,WAAW;IAC/D,EAAE,SAA8C;IAChD,IAAI,SAA+B;IACnC,OAAO,SAAW;IAClB,QAAQ,SAAM;IAER,iBAAiB,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,gBAAgB,CAAC;CAS3E"}
1
+ {"version":3,"file":"claude-request-normalizer.plugin.d.ts","sourceRoot":"","sources":["../../../../../../src/providers/plugins/sso/proxy/plugins/claude-request-normalizer.plugin.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AA8J1E,qBAAa,6BAA8B,YAAW,WAAW;IAC/D,EAAE,SAA8C;IAChD,IAAI,SAA+B;IACnC,OAAO,SAAW;IAClB,QAAQ,SAAM;IAER,iBAAiB,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,gBAAgB,CAAC;CAQ3E"}
@@ -1,65 +1,44 @@
1
1
  /**
2
- * Claude Request Normalizer Plugin
3
- * Priority: 14 (runs before RequestSanitizer at 15)
4
- *
5
- * Normalizes Claude API requests to match model-specific requirements.
6
- * Handles thinking parameter variations across Claude model versions:
7
- *
8
- * 1. Models that DO NOT support thinking (e.g. claude-haiku-4-5, 4-6):
9
- * → strips the thinking field entirely to prevent API errors
10
- *
11
- * 2. Models that require adaptive thinking API (e.g. claude-opus-4-7+, claude-sonnet-5):
12
- * → "enabled" → thinking: { type: "adaptive" } + output_config.effort
13
- * → "disabled" → either preserve or delete the field depending on model support
14
- *
15
- * 3. Models that deprecate sampling parameters (e.g. claude-sonnet-5):
16
- * → strips temperature / top_p / top_k entirely to prevent API errors
17
- *
18
- * Problem: Claude Code sends `thinking: { type: "enabled", budget_tokens: N }`.
19
- * - Haiku models reject thinking field with HTTP 400
20
- * - Opus 4-7+ requires adaptive thinking format with output_config.effort
21
- * - Sonnet 5 rejects manual extended thinking and sampling parameters
22
- *
23
- * Scope: Enabled for codemie-claude (Claude Code via SSO proxy), codemie-copilot
24
- * (GitHub Copilot CLI via BYOK Anthropic shape), and claude-desktop (Desktop 3P mode).
25
- *
26
- * To add model support: update NO_THINKING_MODEL_PATTERNS or ADAPTIVE_THINKING_MODEL_PATTERNS.
2
+ * Normalizes Claude API requests per model. Every model-specific decision reads
3
+ * from MODEL_CAPABILITY_TABLE; add/edit a row to change support. Priority 14
4
+ * (before RequestSanitizer at 15). See EPMCDME-14035.
27
5
  */
28
6
  import { logger } from '../../../../../utils/logger.js';
29
- /**
30
- * Model name patterns that DO NOT support thinking at all.
31
- * Matches claude-haiku-3-5, 4-5, and date-tagged variants (e.g. claude-haiku-4-5-20251001).
32
- */
33
- const NO_THINKING_MODEL_PATTERNS = [
34
- /claude-haiku-(3-5|4-5)(?:[^0-9]|$)/i, // claude-haiku-3-5, 4-5 and date-tagged variants
35
- ];
36
- /**
37
- * Model name patterns that require the adaptive thinking API.
38
- * Matches claude-opus-4-7, claude-opus-4-7-20250514, and future date-tagged variants.
39
- * Extend this list as Anthropic migrates additional models — see EPMCDME-11821.
40
- */
41
- const ADAPTIVE_THINKING_MODEL_PATTERNS = [
42
- /claude-opus-4-[7-9](?:[^0-9]|$)/i, // claude-opus-4-7/8/9 and date-tagged variants (e.g. claude-opus-4-7-20250514); excludes claude-opus-4-70+
43
- /claude-sonnet-5(?:[^0-9]|$)/i, // claude-sonnet-5 and date-tagged variants
7
+ // Applied when no MODEL_CAPABILITY_TABLE row matches.
8
+ const DEFAULT_CAPABILITIES = {
9
+ thinking: 'standard',
10
+ effort: false,
11
+ sampling: true,
12
+ preserveDisabledThinking: false,
13
+ };
14
+ // Pattern → capabilities, first match wins. The `(?:[^0-9]|$)` after each version
15
+ // stops `4-7` from matching `4-70`. See EPMCDME-11821 / EPMCDME-14035.
16
+ const MODEL_CAPABILITY_TABLE = [
17
+ {
18
+ // claude-haiku-3-5 / 4-5 (+ date-tagged): no extended thinking at all.
19
+ pattern: /claude-haiku-(3-5|4-5)(?:[^0-9]|$)/i,
20
+ capabilities: { thinking: 'none', effort: false, sampling: true, preserveDisabledThinking: false },
21
+ },
22
+ {
23
+ // claude-opus-4-7/8/9 (+ date-tagged; excludes 4-70+): adaptive thinking + effort.
24
+ pattern: /claude-opus-4-[7-9](?:[^0-9]|$)/i,
25
+ capabilities: { thinking: 'adaptive', effort: true, sampling: true, preserveDisabledThinking: false },
26
+ },
27
+ {
28
+ // claude-sonnet-5 (+ date-tagged): adaptive thinking + effort; rejects manual
29
+ // sampling params; keeps thinking.type="disabled".
30
+ pattern: /claude-sonnet-5(?:[^0-9]|$)/i,
31
+ capabilities: { thinking: 'adaptive', effort: true, sampling: false, preserveDisabledThinking: true },
32
+ },
44
33
  ];
45
- function modelDisablesThinking(modelName) {
46
- return NO_THINKING_MODEL_PATTERNS.some(p => p.test(modelName));
47
- }
48
- function modelRequiresAdaptiveThinking(modelName) {
49
- return ADAPTIVE_THINKING_MODEL_PATTERNS.some(p => p.test(modelName));
50
- }
51
- function modelPreservesDisabledThinking(modelName) {
52
- return /claude-sonnet-5(?:[^0-9]|$)/i.test(modelName);
53
- }
54
- function modelDisablesSamplingParameters(modelName) {
55
- return /claude-sonnet-5(?:[^0-9]|$)/i.test(modelName);
34
+ function capabilitiesFor(model) {
35
+ for (const entry of MODEL_CAPABILITY_TABLE) {
36
+ if (entry.pattern.test(model))
37
+ return entry.capabilities;
38
+ }
39
+ return DEFAULT_CAPABILITIES;
56
40
  }
57
- /**
58
- * Map legacy budget_tokens to the closest output_config.effort level.
59
- *
60
- * budget_tokens was the maximum token budget for thinking in the old API.
61
- * effort is a coarser control in the new API: low / medium / high.
62
- */
41
+ // Map legacy budget_tokens to the coarser new-API effort level.
63
42
  function budgetTokensToEffort(budgetTokens) {
64
43
  const tokens = typeof budgetTokens === 'number' ? budgetTokens : 0;
65
44
  if (tokens <= 2048)
@@ -68,50 +47,66 @@ function budgetTokensToEffort(budgetTokens) {
68
47
  return 'medium';
69
48
  return 'high';
70
49
  }
71
- /**
72
- * Handler: strips thinking field for models that don't support it.
73
- * Returns true if thinking was stripped (early exit), false to continue chain.
74
- */
75
- function handleNoThinkingModels(body, model) {
76
- if (!modelDisablesThinking(model)) {
77
- return false;
78
- }
79
- delete body.thinking;
80
- logger.debug(`[claude-request-normalizer] Stripped thinking field for unsupported model: ${model}`);
81
- return true;
82
- }
83
- /**
84
- * Handler: transforms thinking.type "enabled"/"disabled" to adaptive API format.
85
- * Returns true if transformation applied, false if nothing changed.
86
- */
87
- function handleAdaptiveThinkingTransform(body, model) {
88
- const thinkingType = body.thinking?.type;
89
- if (thinkingType !== 'enabled' && thinkingType !== 'disabled') {
90
- return false;
91
- }
92
- if (!modelRequiresAdaptiveThinking(model)) {
93
- return false;
50
+ // Normalize the thinking field per caps.thinking. Called only when body.thinking is set.
51
+ function handleThinkingField(body, caps, model) {
52
+ if (caps.thinking === 'none') {
53
+ delete body.thinking;
54
+ logger.debug(`[claude-request-normalizer] Stripped thinking field for unsupported model: ${model}`);
55
+ return true;
94
56
  }
95
- if (thinkingType === 'enabled') {
96
- const effort = budgetTokensToEffort(body.thinking.budget_tokens);
97
- body.thinking = { type: 'adaptive' };
98
- if (!body.output_config?.effort) {
99
- body.output_config = { ...(body.output_config ?? {}), effort };
57
+ if (caps.thinking === 'adaptive') {
58
+ const thinkingType = body.thinking?.type;
59
+ if (thinkingType !== 'enabled' && thinkingType !== 'disabled') {
60
+ return false;
100
61
  }
101
- logger.debug(`[claude-request-normalizer] Transformed thinking: "enabled" → "adaptive", effort="${effort}" for model: ${model}`);
102
- }
103
- else {
104
- if (modelPreservesDisabledThinking(model)) {
62
+ if (thinkingType === 'enabled') {
63
+ const effort = budgetTokensToEffort(body.thinking.budget_tokens);
64
+ body.thinking = { type: 'adaptive' };
65
+ if (!body.output_config?.effort) {
66
+ body.output_config = { ...(body.output_config ?? {}), effort };
67
+ }
68
+ logger.debug(`[claude-request-normalizer] Transformed thinking: "enabled" → "adaptive", effort="${effort}" for model: ${model}`);
69
+ return true;
70
+ }
71
+ // thinkingType === 'disabled'
72
+ if (caps.preserveDisabledThinking) {
105
73
  logger.debug(`[claude-request-normalizer] Preserved thinking.type="disabled" for model: ${model}`);
106
74
  return false;
107
75
  }
108
76
  delete body.thinking;
109
77
  logger.debug(`[claude-request-normalizer] Removed unsupported thinking.type="disabled" for model: ${model}`);
78
+ return true;
110
79
  }
111
- return true;
80
+ // 'standard' — leave the thinking field untouched.
81
+ return false;
82
+ }
83
+ // Strip effort for models that reject it: Claude Code's --effort flag becomes
84
+ // output_config.effort (or top-level effort) and 400s on e.g. claude-4-5-sonnet.
85
+ function handleUnsupportedEffort(body, caps, model) {
86
+ if (caps.effort) {
87
+ return false;
88
+ }
89
+ let stripped = false;
90
+ const outputConfig = body.output_config;
91
+ if (outputConfig && typeof outputConfig === 'object' && 'effort' in outputConfig) {
92
+ delete outputConfig.effort;
93
+ stripped = true;
94
+ if (Object.keys(outputConfig).length === 0) {
95
+ delete body.output_config;
96
+ }
97
+ }
98
+ if ('effort' in body) {
99
+ delete body.effort;
100
+ stripped = true;
101
+ }
102
+ if (stripped) {
103
+ logger.debug(`[claude-request-normalizer] Stripped unsupported effort parameter for model: ${model}`);
104
+ }
105
+ return stripped;
112
106
  }
113
- function handleDeprecatedSamplingParams(body, model) {
114
- if (!modelDisablesSamplingParameters(model)) {
107
+ // Strip sampling params (temperature/top_p/top_k) for models that reject them.
108
+ function handleDeprecatedSamplingParams(body, caps, model) {
109
+ if (caps.sampling) {
115
110
  return false;
116
111
  }
117
112
  const stripped = [];
@@ -127,7 +122,6 @@ function handleDeprecatedSamplingParams(body, model) {
127
122
  logger.debug(`[claude-request-normalizer] Stripped deprecated sampling params for model ${model}: ${stripped.join(', ')}`);
128
123
  return true;
129
124
  }
130
- /** Agents whose Claude API requests need thinking normalization */
131
125
  const ALLOWED_AGENTS = ['codemie-claude', 'codemie-copilot', 'claude-desktop'];
132
126
  export class ClaudeRequestNormalizerPlugin {
133
127
  id = '@codemie/proxy-claude-request-normalizer';
@@ -139,7 +133,6 @@ export class ClaudeRequestNormalizerPlugin {
139
133
  if (!clientType || !ALLOWED_AGENTS.includes(clientType)) {
140
134
  throw new Error(`Plugin disabled for agent: ${clientType}`);
141
135
  }
142
- // Pass the configured model as a fallback for requests that omit body.model
143
136
  const configModel = context.config.model;
144
137
  return new ClaudeRequestNormalizerInterceptor(configModel);
145
138
  }
@@ -161,15 +154,15 @@ class ClaudeRequestNormalizerInterceptor {
161
154
  if (!model) {
162
155
  return;
163
156
  }
164
- const modifiedBySampling = handleDeprecatedSamplingParams(body, model);
157
+ const caps = capabilitiesFor(model);
158
+ const modifiedBySampling = handleDeprecatedSamplingParams(body, caps, model);
159
+ // Not behind the thinking guard: Claude Code can send effort without thinking.
160
+ const modifiedByEffort = handleUnsupportedEffort(body, caps, model);
165
161
  let modifiedByThinking = false;
166
162
  if (body.thinking) {
167
- // Chain handlers: first match wins and modifies body
168
- modifiedByThinking =
169
- handleNoThinkingModels(body, model) ||
170
- handleAdaptiveThinkingTransform(body, model);
163
+ modifiedByThinking = handleThinkingField(body, caps, model);
171
164
  }
172
- if (modifiedBySampling || modifiedByThinking) {
165
+ if (modifiedBySampling || modifiedByEffort || modifiedByThinking) {
173
166
  const newBodyStr = JSON.stringify(body);
174
167
  context.requestBody = Buffer.from(newBodyStr, 'utf-8');
175
168
  context.headers['content-length'] = String(context.requestBody.length);
@@ -1 +1 @@
1
- {"version":3,"file":"claude-request-normalizer.plugin.js","sourceRoot":"","sources":["../../../../../../src/providers/plugins/sso/proxy/plugins/claude-request-normalizer.plugin.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"claude-request-normalizer.plugin.js","sourceRoot":"","sources":["../../../../../../src/providers/plugins/sso/proxy/plugins/claude-request-normalizer.plugin.ts"],"names":[],"mappings":"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"}
@@ -185,8 +185,13 @@ class CodexRequestNormalizerInterceptor {
185
185
  */
186
186
  resolveFallbackModel() {
187
187
  const pinned = this.context.config.model;
188
- if (pinned && this.availableModels.includes(pinned))
189
- return pinned;
188
+ if (pinned) {
189
+ // The pinned value may be the profile's undated picker name; resolve it to
190
+ // its dated deployment the same way an in-flight request is resolved.
191
+ const resolution = resolveCodexDeployment(pinned, this.availableModels, undefined);
192
+ if (resolution.kind === 'exact' || resolution.kind === 'resolved')
193
+ return resolution.model;
194
+ }
190
195
  return rankDeploymentsByRecency(this.availableModels)[0];
191
196
  }
192
197
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"codex-request-normalizer.plugin.js","sourceRoot":"","sources":["../../../../../../src/providers/plugins/sso/proxy/plugins/codex-request-normalizer.plugin.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"codex-request-normalizer.plugin.js","sourceRoot":"","sources":["../../../../../../src/providers/plugins/sso/proxy/plugins/codex-request-normalizer.plugin.ts"],"names":[],"mappings":"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"}
@@ -25,7 +25,11 @@ class HeaderInjectionInterceptor {
25
25
  async onRequest(context) {
26
26
  // Request and session ID headers
27
27
  context.headers['X-CodeMie-Request-ID'] = context.requestId;
28
- context.headers['X-CodeMie-Session-ID'] = context.sessionId;
28
+ // Omit the session header entirely when there is no real session id, rather
29
+ // than forwarding the 'unknown' sentinel that context.sessionId defaults to.
30
+ if (context.sessionId && context.sessionId !== 'unknown') {
31
+ context.headers['X-CodeMie-Session-ID'] = context.sessionId;
32
+ }
29
33
  // LiteLLM can use these headers for Responses API session affinity when
30
34
  // its router is configured with session-aware pre-call checks.
31
35
  if (this.context.config.clientType === 'codemie-codex' || this.context.config.clientType === 'codemie-copilot') {
@@ -1 +1 @@
1
- {"version":3,"file":"header-injection.plugin.js","sourceRoot":"","sources":["../../../../../../src/providers/plugins/sso/proxy/plugins/header-injection.plugin.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"header-injection.plugin.js","sourceRoot":"","sources":["../../../../../../src/providers/plugins/sso/proxy/plugins/header-injection.plugin.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"sso-auth.plugin.d.ts","sourceRoot":"","sources":["../../../../../../src/providers/plugins/sso/proxy/plugins/sso-auth.plugin.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAK1E,qBAAa,aAAc,YAAW,WAAW;IAC/C,EAAE,SAA6B;IAC/B,IAAI,SAAwB;IAC5B,OAAO,SAAW;IAClB,QAAQ,SAAM;IAER,iBAAiB,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,gBAAgB,CAAC;CAQ3E"}
1
+ {"version":3,"file":"sso-auth.plugin.d.ts","sourceRoot":"","sources":["../../../../../../src/providers/plugins/sso/proxy/plugins/sso-auth.plugin.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAM1E,qBAAa,aAAc,YAAW,WAAW;IAC/C,EAAE,SAA6B;IAC/B,IAAI,SAAwB;IAC5B,OAAO,SAAW;IAClB,QAAQ,SAAM;IAER,iBAAiB,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,gBAAgB,CAAC;CAQ3E"}
@@ -6,6 +6,7 @@
6
6
  * KISS: Simple interceptor, one clear purpose
7
7
  */
8
8
  import { logger } from '../../../../../utils/logger.js';
9
+ import { AuthenticationError } from '../proxy-errors.js';
9
10
  export class SSOAuthPlugin {
10
11
  id = '@codemie/proxy-sso-auth';
11
12
  name = 'SSO Authentication';
@@ -35,10 +36,38 @@ class SSOAuthInterceptor {
35
36
  constructor(credentials) {
36
37
  this.credentials = credentials;
37
38
  }
39
+ hasInvalidHeaderChars(value) {
40
+ // RFC 7230 field-vchar / obs-text; disallow control chars except HTAB.
41
+ for (let i = 0; i < value.length; i++) {
42
+ const code = value.charCodeAt(i);
43
+ if ((code <= 0x1f && code !== 0x09) || code === 0x7f) {
44
+ return true;
45
+ }
46
+ }
47
+ return false;
48
+ }
38
49
  async onRequest(context) {
39
- const cookieHeader = Object.entries(this.credentials.cookies)
40
- .map(([key, value]) => `${key}=${value}`)
41
- .join('; ');
50
+ const invalidCookieKeys = [];
51
+ const cookiePairs = [];
52
+ for (const [key, value] of Object.entries(this.credentials.cookies)) {
53
+ const safeKey = String(key).trim();
54
+ const safeValue = String(value);
55
+ if (!safeKey || this.hasInvalidHeaderChars(safeKey) || this.hasInvalidHeaderChars(safeValue)) {
56
+ invalidCookieKeys.push(safeKey || '<empty>');
57
+ continue;
58
+ }
59
+ cookiePairs.push(`${safeKey}=${safeValue}`);
60
+ }
61
+ if (invalidCookieKeys.length > 0) {
62
+ logger.warn(`[${this.name}] Ignoring invalid cookie entries`, {
63
+ invalidCookieCount: invalidCookieKeys.length,
64
+ invalidCookieNames: invalidCookieKeys,
65
+ });
66
+ }
67
+ if (cookiePairs.length === 0) {
68
+ throw new AuthenticationError('Stored SSO session cookies are invalid. Run `codemie profile login` and reconnect the proxy.');
69
+ }
70
+ const cookieHeader = cookiePairs.join('; ');
42
71
  // Use lowercase 'cookie' to match Node.js HTTP header conventions
43
72
  context.headers['cookie'] = cookieHeader;
44
73
  logger.debug(`[${this.name}] Injected SSO cookies:`, {
@@ -1 +1 @@
1
- {"version":3,"file":"sso-auth.plugin.js","sourceRoot":"","sources":["../../../../../../src/providers/plugins/sso/proxy/plugins/sso-auth.plugin.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAKH,OAAO,EAAE,MAAM,EAAE,MAAM,gCAAgC,CAAC;AAExD,MAAM,OAAO,aAAa;IACxB,EAAE,GAAG,yBAAyB,CAAC;IAC/B,IAAI,GAAG,oBAAoB,CAAC;IAC5B,OAAO,GAAG,OAAO,CAAC;IAClB,QAAQ,GAAG,EAAE,CAAC;IAEd,KAAK,CAAC,iBAAiB,CAAC,OAAsB;QAC5C,+CAA+C;QAC/C,IAAI,CAAC,OAAO,CAAC,WAAW,IAAI,CAAC,CAAC,SAAS,IAAI,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;YAChE,OAAO,IAAI,eAAe,CAAC,UAAU,CAAC,CAAC;QACzC,CAAC;QAED,OAAO,IAAI,kBAAkB,CAAC,OAAO,CAAC,WAA6B,CAAC,CAAC;IACvE,CAAC;CACF;AAED;;;GAGG;AACH,MAAM,eAAe;IACA;IAAnB,YAAmB,IAAY;QAAZ,SAAI,GAAJ,IAAI,CAAQ;IAAG,CAAC;CACpC;AAED,MAAM,kBAAkB;IAGF;IAFpB,IAAI,GAAG,UAAU,CAAC;IAElB,YAAoB,WAA2B;QAA3B,gBAAW,GAAX,WAAW,CAAgB;IAAG,CAAC;IAEnD,KAAK,CAAC,SAAS,CAAC,OAAqB;QACnC,MAAM,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC;aAC1D,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,IAAI,KAAK,EAAE,CAAC;aACxC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEd,kEAAkE;QAClE,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,YAAY,CAAC;QAEzC,MAAM,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,yBAAyB,EAAE;YACnD,WAAW,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,MAAM;YACzD,WAAW,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC;YAClD,YAAY,EAAE,YAAY,CAAC,MAAM;SAClC,CAAC,CAAC;IACL,CAAC;CACF"}
1
+ {"version":3,"file":"sso-auth.plugin.js","sourceRoot":"","sources":["../../../../../../src/providers/plugins/sso/proxy/plugins/sso-auth.plugin.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAKH,OAAO,EAAE,MAAM,EAAE,MAAM,gCAAgC,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAEzD,MAAM,OAAO,aAAa;IACxB,EAAE,GAAG,yBAAyB,CAAC;IAC/B,IAAI,GAAG,oBAAoB,CAAC;IAC5B,OAAO,GAAG,OAAO,CAAC;IAClB,QAAQ,GAAG,EAAE,CAAC;IAEd,KAAK,CAAC,iBAAiB,CAAC,OAAsB;QAC5C,+CAA+C;QAC/C,IAAI,CAAC,OAAO,CAAC,WAAW,IAAI,CAAC,CAAC,SAAS,IAAI,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;YAChE,OAAO,IAAI,eAAe,CAAC,UAAU,CAAC,CAAC;QACzC,CAAC;QAED,OAAO,IAAI,kBAAkB,CAAC,OAAO,CAAC,WAA6B,CAAC,CAAC;IACvE,CAAC;CACF;AAED;;;GAGG;AACH,MAAM,eAAe;IACA;IAAnB,YAAmB,IAAY;QAAZ,SAAI,GAAJ,IAAI,CAAQ;IAAG,CAAC;CACpC;AAED,MAAM,kBAAkB;IAGF;IAFpB,IAAI,GAAG,UAAU,CAAC;IAElB,YAAoB,WAA2B;QAA3B,gBAAW,GAAX,WAAW,CAAgB;IAAG,CAAC;IAE3C,qBAAqB,CAAC,KAAa;QACzC,uEAAuE;QACvE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACtC,MAAM,IAAI,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;YACjC,IAAI,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,CAAC,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;gBACrD,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,OAAqB;QACnC,MAAM,iBAAiB,GAAa,EAAE,CAAC;QACvC,MAAM,WAAW,GAAa,EAAE,CAAC;QAEjC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC;YACpE,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;YACnC,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;YAChC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,qBAAqB,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC7F,iBAAiB,CAAC,IAAI,CAAC,OAAO,IAAI,SAAS,CAAC,CAAC;gBAC7C,SAAS;YACX,CAAC;YACD,WAAW,CAAC,IAAI,CAAC,GAAG,OAAO,IAAI,SAAS,EAAE,CAAC,CAAC;QAC9C,CAAC;QAED,IAAI,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACjC,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,mCAAmC,EAAE;gBAC5D,kBAAkB,EAAE,iBAAiB,CAAC,MAAM;gBAC5C,kBAAkB,EAAE,iBAAiB;aACtC,CAAC,CAAC;QACL,CAAC;QAED,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC7B,MAAM,IAAI,mBAAmB,CAC3B,8FAA8F,CAC/F,CAAC;QACJ,CAAC;QAED,MAAM,YAAY,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAE5C,kEAAkE;QAClE,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,YAAY,CAAC;QAEzC,MAAM,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,yBAAyB,EAAE;YACnD,WAAW,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,MAAM;YACzD,WAAW,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC;YAClD,YAAY,EAAE,YAAY,CAAC,MAAM;SAClC,CAAC,CAAC;IACL,CAAC;CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"proxy-errors.d.ts","sourceRoot":"","sources":["../../../../../src/providers/plugins/sso/proxy/proxy-errors.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;GAEG;AACH,qBAAa,UAAW,SAAQ,KAAK;aAGjB,UAAU,EAAE,MAAM;aAClB,IAAI,EAAE,MAAM;aACZ,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;gBAHjD,OAAO,EAAE,MAAM,EACC,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,YAAA;IAOnD,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAQlC;AAED;;GAEG;AACH,qBAAa,mBAAoB,SAAQ,UAAU;gBACrC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAI/D;AAED;;GAEG;AACH,qBAAa,YAAa,SAAQ,UAAU;gBAC9B,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAI/D;AAED;;GAEG;AACH,qBAAa,YAAa,SAAQ,UAAU;gBAC9B,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAI/D;AAED;;GAEG;AACH,qBAAa,aAAc,SAAQ,UAAU;gBAC/B,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAInF;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,UAAU,CA8C5F"}
1
+ {"version":3,"file":"proxy-errors.d.ts","sourceRoot":"","sources":["../../../../../src/providers/plugins/sso/proxy/proxy-errors.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;GAEG;AACH,qBAAa,UAAW,SAAQ,KAAK;aAGjB,UAAU,EAAE,MAAM;aAClB,IAAI,EAAE,MAAM;aACZ,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;gBAHjD,OAAO,EAAE,MAAM,EACC,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,YAAA;IAOnD,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAQlC;AAED;;GAEG;AACH,qBAAa,mBAAoB,SAAQ,UAAU;gBACrC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAI/D;AAED;;GAEG;AACH,qBAAa,YAAa,SAAQ,UAAU;gBAC9B,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAI/D;AAED;;GAEG;AACH,qBAAa,YAAa,SAAQ,UAAU;gBAC9B,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAI/D;AAED;;GAEG;AACH,qBAAa,aAAc,SAAQ,UAAU;gBAC/B,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAInF;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,UAAU,CAsF5F"}
@@ -72,9 +72,35 @@ export function normalizeError(error, context) {
72
72
  return error;
73
73
  }
74
74
  if (error instanceof Error) {
75
+ const errorCode = error.code;
76
+ const message = error.message || '';
77
+ // Node may throw synchronously for malformed header values (for example,
78
+ // corrupted/invalid cookie bytes). Treat this as an auth/session issue so
79
+ // users get a recovery action instead of a generic 500.
80
+ if (errorCode === 'ERR_INVALID_CHAR' ||
81
+ errorCode === 'ERR_HTTP_INVALID_HEADER_VALUE' ||
82
+ /header content|header value|cookie/i.test(message)) {
83
+ return new AuthenticationError('Invalid authentication session data. Run `codemie profile login` and restart the proxy.', {
84
+ originalError: message,
85
+ errorCode,
86
+ ...context,
87
+ });
88
+ }
75
89
  // Network errors
76
90
  if ('code' in error) {
77
- const code = error.code;
91
+ const code = errorCode;
92
+ if (message.includes('self-signed certificate in certificate chain') ||
93
+ message.includes('unable to verify the first certificate') ||
94
+ message.includes('certificate has expired') ||
95
+ code === 'SELF_SIGNED_CERT_IN_CHAIN' ||
96
+ code === 'UNABLE_TO_VERIFY_LEAF_SIGNATURE' ||
97
+ code === 'CERT_HAS_EXPIRED') {
98
+ return new UpstreamError(502, 'TLS validation failed when connecting to upstream. Check corporate proxy certificate chain or trust settings.', {
99
+ originalError: message,
100
+ errorCode: code,
101
+ ...context,
102
+ });
103
+ }
78
104
  if (code === 'ECONNREFUSED' || code === 'ENOTFOUND' || code === 'ECONNRESET') {
79
105
  return new NetworkError(`Cannot connect to upstream server: ${error.message}`, {
80
106
  originalError: error.message,