@codemieai/code 0.0.15 → 0.0.16

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 (296) hide show
  1. package/README.md +24 -9
  2. package/dist/agents/codemie-code/agent.js +2 -2
  3. package/dist/agents/codemie-code/agent.js.map +1 -1
  4. package/dist/agents/codemie-code/config.d.ts.map +1 -1
  5. package/dist/agents/codemie-code/config.js +12 -4
  6. package/dist/agents/codemie-code/config.js.map +1 -1
  7. package/dist/agents/codemie-code/tools/planning.d.ts +1 -1
  8. package/dist/agents/core/AgentCLI.d.ts.map +1 -1
  9. package/dist/agents/core/AgentCLI.js +5 -4
  10. package/dist/agents/core/AgentCLI.js.map +1 -1
  11. package/dist/agents/core/BaseAgentAdapter.d.ts +1 -5
  12. package/dist/agents/core/BaseAgentAdapter.d.ts.map +1 -1
  13. package/dist/agents/core/BaseAgentAdapter.js +5 -26
  14. package/dist/agents/core/BaseAgentAdapter.js.map +1 -1
  15. package/dist/agents/plugins/claude.plugin.js +1 -1
  16. package/dist/agents/plugins/claude.plugin.js.map +1 -1
  17. package/dist/agents/plugins/codemie-code.plugin.js +1 -1
  18. package/dist/agents/plugins/codemie-code.plugin.js.map +1 -1
  19. package/dist/agents/plugins/codex.plugin.js +2 -2
  20. package/dist/agents/plugins/codex.plugin.js.map +1 -1
  21. package/dist/agents/plugins/deepagents.plugin.js +1 -1
  22. package/dist/agents/plugins/deepagents.plugin.js.map +1 -1
  23. package/dist/agents/plugins/gemini.plugin.js +1 -1
  24. package/dist/agents/plugins/gemini.plugin.js.map +1 -1
  25. package/dist/analytics/index.d.ts.map +1 -1
  26. package/dist/analytics/index.js +3 -11
  27. package/dist/analytics/index.js.map +1 -1
  28. package/dist/analytics/remote-submission/cursor-manager.d.ts +1 -1
  29. package/dist/analytics/remote-submission/cursor-manager.js +2 -2
  30. package/dist/analytics/remote-submission/cursor-manager.js.map +1 -1
  31. package/dist/analytics/remote-submission/index.d.ts +2 -2
  32. package/dist/analytics/remote-submission/index.d.ts.map +1 -1
  33. package/dist/analytics/remote-submission/index.js +1 -1
  34. package/dist/analytics/remote-submission/index.js.map +1 -1
  35. package/dist/analytics/remote-submission/lock-manager.d.ts +1 -1
  36. package/dist/analytics/remote-submission/lock-manager.js +2 -2
  37. package/dist/analytics/remote-submission/lock-manager.js.map +1 -1
  38. package/dist/analytics/remote-submission/metric-transformer.d.ts +2 -30
  39. package/dist/analytics/remote-submission/metric-transformer.d.ts.map +1 -1
  40. package/dist/analytics/remote-submission/metric-transformer.js +24 -117
  41. package/dist/analytics/remote-submission/metric-transformer.js.map +1 -1
  42. package/dist/analytics/remote-submission/submitter.d.ts +1 -0
  43. package/dist/analytics/remote-submission/submitter.d.ts.map +1 -1
  44. package/dist/analytics/remote-submission/submitter.js +18 -37
  45. package/dist/analytics/remote-submission/submitter.js.map +1 -1
  46. package/dist/analytics/remote-submission/types.d.ts +5 -51
  47. package/dist/analytics/remote-submission/types.d.ts.map +1 -1
  48. package/dist/analytics/remote-submission/types.js.map +1 -1
  49. package/dist/cli/commands/auth.d.ts.map +1 -1
  50. package/dist/cli/commands/auth.js +10 -5
  51. package/dist/cli/commands/auth.js.map +1 -1
  52. package/dist/cli/commands/doctor/checks/AIConfigCheck.d.ts.map +1 -1
  53. package/dist/cli/commands/doctor/checks/AIConfigCheck.js +12 -5
  54. package/dist/cli/commands/doctor/checks/AIConfigCheck.js.map +1 -1
  55. package/dist/cli/commands/doctor/formatter.d.ts +1 -1
  56. package/dist/cli/commands/doctor/formatter.d.ts.map +1 -1
  57. package/dist/cli/commands/doctor/formatter.js +1 -6
  58. package/dist/cli/commands/doctor/formatter.js.map +1 -1
  59. package/dist/cli/commands/doctor/index.d.ts.map +1 -1
  60. package/dist/cli/commands/doctor/index.js +23 -8
  61. package/dist/cli/commands/doctor/index.js.map +1 -1
  62. package/dist/cli/commands/doctor/type-adapters.d.ts +18 -0
  63. package/dist/cli/commands/doctor/type-adapters.d.ts.map +1 -0
  64. package/dist/cli/commands/doctor/type-adapters.js +75 -0
  65. package/dist/cli/commands/doctor/type-adapters.js.map +1 -0
  66. package/dist/cli/commands/install.d.ts.map +1 -1
  67. package/dist/cli/commands/install.js +1 -6
  68. package/dist/cli/commands/install.js.map +1 -1
  69. package/dist/cli/commands/list.d.ts.map +1 -1
  70. package/dist/cli/commands/list.js +0 -5
  71. package/dist/cli/commands/list.js.map +1 -1
  72. package/dist/cli/commands/profile.js +90 -12
  73. package/dist/cli/commands/profile.js.map +1 -1
  74. package/dist/cli/commands/setup.d.ts.map +1 -1
  75. package/dist/cli/commands/setup.js +159 -660
  76. package/dist/cli/commands/setup.js.map +1 -1
  77. package/dist/cli/index.d.ts +1 -1
  78. package/dist/cli/index.d.ts.map +1 -1
  79. package/dist/cli/index.js +4 -1
  80. package/dist/cli/index.js.map +1 -1
  81. package/dist/providers/core/base/BaseHealthCheck.d.ts +57 -0
  82. package/dist/providers/core/base/BaseHealthCheck.d.ts.map +1 -0
  83. package/dist/providers/core/base/BaseHealthCheck.js +121 -0
  84. package/dist/providers/core/base/BaseHealthCheck.js.map +1 -0
  85. package/dist/providers/core/base/BaseModelProxy.d.ts +45 -0
  86. package/dist/providers/core/base/BaseModelProxy.d.ts.map +1 -0
  87. package/dist/providers/core/base/BaseModelProxy.js +43 -0
  88. package/dist/providers/core/base/BaseModelProxy.js.map +1 -0
  89. package/dist/providers/core/base/http-client.d.ts +57 -0
  90. package/dist/providers/core/base/http-client.d.ts.map +1 -0
  91. package/dist/providers/core/base/http-client.js +240 -0
  92. package/dist/providers/core/base/http-client.js.map +1 -0
  93. package/dist/providers/core/decorators.d.ts +13 -0
  94. package/dist/providers/core/decorators.d.ts.map +1 -0
  95. package/dist/providers/core/decorators.js +15 -0
  96. package/dist/providers/core/decorators.js.map +1 -0
  97. package/dist/providers/core/index.d.ts +13 -0
  98. package/dist/providers/core/index.d.ts.map +1 -0
  99. package/dist/providers/core/index.js +14 -0
  100. package/dist/providers/core/index.js.map +1 -0
  101. package/dist/providers/core/registry.d.ts +66 -0
  102. package/dist/providers/core/registry.d.ts.map +1 -0
  103. package/dist/providers/core/registry.js +105 -0
  104. package/dist/providers/core/registry.js.map +1 -0
  105. package/dist/providers/core/types.d.ts +285 -0
  106. package/dist/providers/core/types.d.ts.map +1 -0
  107. package/dist/providers/core/types.js +7 -0
  108. package/dist/providers/core/types.js.map +1 -0
  109. package/dist/providers/index.d.ts +20 -0
  110. package/dist/providers/index.d.ts.map +1 -0
  111. package/dist/providers/index.js +22 -0
  112. package/dist/providers/index.js.map +1 -0
  113. package/dist/providers/integration/setup-ui.d.ts +76 -0
  114. package/dist/providers/integration/setup-ui.d.ts.map +1 -0
  115. package/dist/providers/integration/setup-ui.js +141 -0
  116. package/dist/providers/integration/setup-ui.js.map +1 -0
  117. package/dist/providers/plugins/litellm/index.d.ts +8 -0
  118. package/dist/providers/plugins/litellm/index.d.ts.map +1 -0
  119. package/dist/providers/plugins/litellm/index.js +12 -0
  120. package/dist/providers/plugins/litellm/index.js.map +1 -0
  121. package/dist/providers/plugins/litellm/litellm.models.d.ts +27 -0
  122. package/dist/providers/plugins/litellm/litellm.models.d.ts.map +1 -0
  123. package/dist/providers/plugins/litellm/litellm.models.js +48 -0
  124. package/dist/providers/plugins/litellm/litellm.models.js.map +1 -0
  125. package/dist/providers/plugins/litellm/litellm.setup-steps.d.ts +8 -0
  126. package/dist/providers/plugins/litellm/litellm.setup-steps.d.ts.map +1 -0
  127. package/dist/providers/plugins/litellm/litellm.setup-steps.js +52 -0
  128. package/dist/providers/plugins/litellm/litellm.setup-steps.js.map +1 -0
  129. package/dist/providers/plugins/litellm/litellm.template.d.ts +11 -0
  130. package/dist/providers/plugins/litellm/litellm.template.d.ts.map +1 -0
  131. package/dist/providers/plugins/litellm/litellm.template.js +59 -0
  132. package/dist/providers/plugins/litellm/litellm.template.js.map +1 -0
  133. package/dist/providers/plugins/ollama/index.d.ts +11 -0
  134. package/dist/providers/plugins/ollama/index.d.ts.map +1 -0
  135. package/dist/providers/plugins/ollama/index.js +11 -0
  136. package/dist/providers/plugins/ollama/index.js.map +1 -0
  137. package/dist/providers/plugins/ollama/ollama.health.d.ts +48 -0
  138. package/dist/providers/plugins/ollama/ollama.health.d.ts.map +1 -0
  139. package/dist/providers/plugins/ollama/ollama.health.js +87 -0
  140. package/dist/providers/plugins/ollama/ollama.health.js.map +1 -0
  141. package/dist/providers/plugins/ollama/ollama.models.d.ts +47 -0
  142. package/dist/providers/plugins/ollama/ollama.models.d.ts.map +1 -0
  143. package/dist/providers/plugins/ollama/ollama.models.js +252 -0
  144. package/dist/providers/plugins/ollama/ollama.models.js.map +1 -0
  145. package/dist/providers/plugins/ollama/ollama.setup-steps.d.ts +16 -0
  146. package/dist/providers/plugins/ollama/ollama.setup-steps.d.ts.map +1 -0
  147. package/dist/providers/plugins/ollama/ollama.setup-steps.js +164 -0
  148. package/dist/providers/plugins/ollama/ollama.setup-steps.js.map +1 -0
  149. package/dist/providers/plugins/ollama/ollama.template.d.ts +11 -0
  150. package/dist/providers/plugins/ollama/ollama.template.d.ts.map +1 -0
  151. package/dist/providers/plugins/ollama/ollama.template.js +87 -0
  152. package/dist/providers/plugins/ollama/ollama.template.js.map +1 -0
  153. package/dist/providers/plugins/sso/index.d.ts +12 -0
  154. package/dist/providers/plugins/sso/index.d.ts.map +1 -0
  155. package/dist/providers/plugins/sso/index.js +12 -0
  156. package/dist/providers/plugins/sso/index.js.map +1 -0
  157. package/dist/providers/plugins/sso/sso.auth.d.ts +50 -0
  158. package/dist/providers/plugins/sso/sso.auth.d.ts.map +1 -0
  159. package/dist/{utils/sso-auth.js → providers/plugins/sso/sso.auth.js} +37 -2
  160. package/dist/providers/plugins/sso/sso.auth.js.map +1 -0
  161. package/dist/providers/plugins/sso/sso.health.d.ts +44 -0
  162. package/dist/providers/plugins/sso/sso.health.d.ts.map +1 -0
  163. package/dist/providers/plugins/sso/sso.health.js +178 -0
  164. package/dist/providers/plugins/sso/sso.health.js.map +1 -0
  165. package/dist/{utils/codemie-model-fetcher.d.ts → providers/plugins/sso/sso.http-client.d.ts} +16 -5
  166. package/dist/providers/plugins/sso/sso.http-client.d.ts.map +1 -0
  167. package/dist/providers/plugins/sso/sso.http-client.js +187 -0
  168. package/dist/providers/plugins/sso/sso.http-client.js.map +1 -0
  169. package/dist/providers/plugins/sso/sso.models.d.ts +48 -0
  170. package/dist/providers/plugins/sso/sso.models.d.ts.map +1 -0
  171. package/dist/providers/plugins/sso/sso.models.js +139 -0
  172. package/dist/providers/plugins/sso/sso.models.js.map +1 -0
  173. package/dist/providers/plugins/sso/sso.setup-steps.d.ts +16 -0
  174. package/dist/providers/plugins/sso/sso.setup-steps.d.ts.map +1 -0
  175. package/dist/providers/plugins/sso/sso.setup-steps.js +145 -0
  176. package/dist/providers/plugins/sso/sso.setup-steps.js.map +1 -0
  177. package/dist/providers/plugins/sso/sso.template.d.ts +11 -0
  178. package/dist/providers/plugins/sso/sso.template.d.ts.map +1 -0
  179. package/dist/providers/plugins/sso/sso.template.js +35 -0
  180. package/dist/providers/plugins/sso/sso.template.js.map +1 -0
  181. package/dist/proxy/errors.d.ts.map +1 -0
  182. package/dist/proxy/errors.js.map +1 -0
  183. package/dist/proxy/http-client.d.ts.map +1 -0
  184. package/dist/{utils/proxy → proxy}/http-client.js +1 -1
  185. package/dist/proxy/http-client.js.map +1 -0
  186. package/dist/proxy/plugins/header-injection.plugin.d.ts.map +1 -0
  187. package/dist/{utils/proxy → proxy}/plugins/header-injection.plugin.js +7 -3
  188. package/dist/proxy/plugins/header-injection.plugin.js.map +1 -0
  189. package/dist/{utils/proxy → proxy}/plugins/index.d.ts +2 -2
  190. package/dist/proxy/plugins/index.d.ts.map +1 -0
  191. package/dist/{utils/proxy → proxy}/plugins/index.js +3 -5
  192. package/dist/proxy/plugins/index.js.map +1 -0
  193. package/dist/proxy/plugins/logging.plugin.d.ts +22 -0
  194. package/dist/proxy/plugins/logging.plugin.d.ts.map +1 -0
  195. package/dist/proxy/plugins/logging.plugin.js +92 -0
  196. package/dist/proxy/plugins/logging.plugin.js.map +1 -0
  197. package/dist/proxy/plugins/registry.d.ts.map +1 -0
  198. package/dist/{utils/proxy → proxy}/plugins/registry.js +1 -1
  199. package/dist/proxy/plugins/registry.js.map +1 -0
  200. package/dist/proxy/plugins/sso-auth.plugin.d.ts.map +1 -0
  201. package/dist/{utils/proxy → proxy}/plugins/sso-auth.plugin.js +1 -1
  202. package/dist/proxy/plugins/sso-auth.plugin.js.map +1 -0
  203. package/dist/{utils/proxy → proxy}/plugins/types.d.ts +3 -3
  204. package/dist/proxy/plugins/types.d.ts.map +1 -0
  205. package/dist/proxy/plugins/types.js.map +1 -0
  206. package/dist/proxy/types.d.ts.map +1 -0
  207. package/dist/proxy/types.js.map +1 -0
  208. package/dist/utils/codemie-proxy.d.ts +5 -4
  209. package/dist/utils/codemie-proxy.d.ts.map +1 -1
  210. package/dist/utils/codemie-proxy.js +31 -26
  211. package/dist/utils/codemie-proxy.js.map +1 -1
  212. package/dist/utils/config-loader.d.ts +1 -6
  213. package/dist/utils/config-loader.d.ts.map +1 -1
  214. package/dist/utils/config-loader.js +30 -90
  215. package/dist/utils/config-loader.js.map +1 -1
  216. package/dist/utils/credential-store.d.ts +1 -1
  217. package/dist/utils/credential-store.d.ts.map +1 -1
  218. package/dist/utils/logger.d.ts.map +1 -1
  219. package/dist/utils/logger.js +0 -2
  220. package/dist/utils/logger.js.map +1 -1
  221. package/package.json +1 -1
  222. package/dist/cli/commands/doctor/providers/AIRunSSOProviderCheck.d.ts +0 -11
  223. package/dist/cli/commands/doctor/providers/AIRunSSOProviderCheck.d.ts.map +0 -1
  224. package/dist/cli/commands/doctor/providers/AIRunSSOProviderCheck.js +0 -264
  225. package/dist/cli/commands/doctor/providers/AIRunSSOProviderCheck.js.map +0 -1
  226. package/dist/cli/commands/doctor/providers/BaseProviderCheck.d.ts +0 -12
  227. package/dist/cli/commands/doctor/providers/BaseProviderCheck.d.ts.map +0 -1
  228. package/dist/cli/commands/doctor/providers/BaseProviderCheck.js +0 -12
  229. package/dist/cli/commands/doctor/providers/BaseProviderCheck.js.map +0 -1
  230. package/dist/cli/commands/doctor/providers/StandardProviderCheck.d.ts +0 -11
  231. package/dist/cli/commands/doctor/providers/StandardProviderCheck.d.ts.map +0 -1
  232. package/dist/cli/commands/doctor/providers/StandardProviderCheck.js +0 -97
  233. package/dist/cli/commands/doctor/providers/StandardProviderCheck.js.map +0 -1
  234. package/dist/cli/commands/doctor/providers/index.d.ts +0 -30
  235. package/dist/cli/commands/doctor/providers/index.d.ts.map +0 -1
  236. package/dist/cli/commands/doctor/providers/index.js +0 -66
  237. package/dist/cli/commands/doctor/providers/index.js.map +0 -1
  238. package/dist/types/sso.d.ts +0 -42
  239. package/dist/types/sso.d.ts.map +0 -1
  240. package/dist/types/sso.js +0 -2
  241. package/dist/types/sso.js.map +0 -1
  242. package/dist/utils/async-tips.d.ts +0 -64
  243. package/dist/utils/async-tips.d.ts.map +0 -1
  244. package/dist/utils/async-tips.js +0 -203
  245. package/dist/utils/async-tips.js.map +0 -1
  246. package/dist/utils/codemie-integration-validator.d.ts +0 -18
  247. package/dist/utils/codemie-integration-validator.d.ts.map +0 -1
  248. package/dist/utils/codemie-integration-validator.js +0 -119
  249. package/dist/utils/codemie-integration-validator.js.map +0 -1
  250. package/dist/utils/codemie-model-fetcher.d.ts.map +0 -1
  251. package/dist/utils/codemie-model-fetcher.js +0 -317
  252. package/dist/utils/codemie-model-fetcher.js.map +0 -1
  253. package/dist/utils/health-checker.d.ts +0 -20
  254. package/dist/utils/health-checker.d.ts.map +0 -1
  255. package/dist/utils/health-checker.js +0 -172
  256. package/dist/utils/health-checker.js.map +0 -1
  257. package/dist/utils/model-fetcher.d.ts +0 -21
  258. package/dist/utils/model-fetcher.d.ts.map +0 -1
  259. package/dist/utils/model-fetcher.js +0 -148
  260. package/dist/utils/model-fetcher.js.map +0 -1
  261. package/dist/utils/proxy/errors.d.ts.map +0 -1
  262. package/dist/utils/proxy/errors.js.map +0 -1
  263. package/dist/utils/proxy/http-client.d.ts.map +0 -1
  264. package/dist/utils/proxy/http-client.js.map +0 -1
  265. package/dist/utils/proxy/plugins/analytics.plugin.d.ts +0 -19
  266. package/dist/utils/proxy/plugins/analytics.plugin.d.ts.map +0 -1
  267. package/dist/utils/proxy/plugins/analytics.plugin.js +0 -84
  268. package/dist/utils/proxy/plugins/analytics.plugin.js.map +0 -1
  269. package/dist/utils/proxy/plugins/header-injection.plugin.d.ts.map +0 -1
  270. package/dist/utils/proxy/plugins/header-injection.plugin.js.map +0 -1
  271. package/dist/utils/proxy/plugins/index.d.ts.map +0 -1
  272. package/dist/utils/proxy/plugins/index.js.map +0 -1
  273. package/dist/utils/proxy/plugins/registry.d.ts.map +0 -1
  274. package/dist/utils/proxy/plugins/registry.js.map +0 -1
  275. package/dist/utils/proxy/plugins/sso-auth.plugin.d.ts.map +0 -1
  276. package/dist/utils/proxy/plugins/sso-auth.plugin.js.map +0 -1
  277. package/dist/utils/proxy/plugins/types.d.ts.map +0 -1
  278. package/dist/utils/proxy/plugins/types.js.map +0 -1
  279. package/dist/utils/proxy/types.d.ts.map +0 -1
  280. package/dist/utils/proxy/types.js.map +0 -1
  281. package/dist/utils/sso-auth.d.ts +0 -15
  282. package/dist/utils/sso-auth.d.ts.map +0 -1
  283. package/dist/utils/sso-auth.js.map +0 -1
  284. package/dist/utils/tips.d.ts +0 -35
  285. package/dist/utils/tips.d.ts.map +0 -1
  286. package/dist/utils/tips.js +0 -93
  287. package/dist/utils/tips.js.map +0 -1
  288. /package/dist/{utils/proxy → proxy}/errors.d.ts +0 -0
  289. /package/dist/{utils/proxy → proxy}/errors.js +0 -0
  290. /package/dist/{utils/proxy → proxy}/http-client.d.ts +0 -0
  291. /package/dist/{utils/proxy → proxy}/plugins/header-injection.plugin.d.ts +0 -0
  292. /package/dist/{utils/proxy → proxy}/plugins/registry.d.ts +0 -0
  293. /package/dist/{utils/proxy → proxy}/plugins/sso-auth.plugin.d.ts +0 -0
  294. /package/dist/{utils/proxy → proxy}/plugins/types.js +0 -0
  295. /package/dist/{utils/proxy → proxy}/types.d.ts +0 -0
  296. /package/dist/{utils/proxy → proxy}/types.js +0 -0
@@ -1,317 +0,0 @@
1
- import { CredentialStore } from './credential-store.js';
2
- import https from 'https';
3
- import http from 'http';
4
- import { URL } from 'url';
5
- import { logger } from './logger.js';
6
- import { sanitizeHeaders } from './sanitize.js';
7
- // Common endpoint paths
8
- export const CODEMIE_ENDPOINTS = {
9
- MODELS: '/v1/llm_models',
10
- USER_SETTINGS: '/v1/settings/user'
11
- };
12
- // Configuration
13
- const MAX_REDIRECTS = 5;
14
- const MAX_RETRIES = 3;
15
- /**
16
- * Make HTTPS/HTTP request with automatic redirect following
17
- * Handles 301, 302, 303, 307, 308 redirects following HTTP standards
18
- */
19
- async function makeRequestWithRedirects(url, requestOptions, redirectCount = 0) {
20
- if (redirectCount >= MAX_REDIRECTS) {
21
- throw new Error(`Too many redirects (${redirectCount}). Possible redirect loop.`);
22
- }
23
- const parsedUrl = new URL(url);
24
- const protocol = parsedUrl.protocol === 'https:' ? https : http;
25
- const options = {
26
- ...requestOptions,
27
- hostname: parsedUrl.hostname,
28
- port: parsedUrl.port || (parsedUrl.protocol === 'https:' ? 443 : 80),
29
- path: parsedUrl.pathname + parsedUrl.search,
30
- };
31
- if (logger.isDebugMode()) {
32
- logger.debug(`[HTTP Request] ${options.method} ${url}`);
33
- logger.debug(`[Headers]`, sanitizeHeaders(requestOptions.headers));
34
- if (redirectCount > 0) {
35
- logger.debug(`[Redirect] Following redirect #${redirectCount}`);
36
- }
37
- }
38
- return new Promise((resolve, reject) => {
39
- const req = protocol.request(options, (res) => {
40
- let data = '';
41
- res.on('data', (chunk) => {
42
- data += chunk;
43
- });
44
- res.on('end', async () => {
45
- const statusCode = res.statusCode || 0;
46
- if (logger.isDebugMode()) {
47
- logger.debug(`[HTTP Response] ${statusCode} ${res.statusMessage}`);
48
- logger.debug(`[Response Headers]`, sanitizeHeaders(res.headers));
49
- }
50
- // Handle redirects (301, 302, 303, 307, 308)
51
- if (statusCode >= 300 && statusCode < 400) {
52
- const location = res.headers['location'];
53
- if (!location) {
54
- reject(new Error(`Redirect ${statusCode} without Location header`));
55
- return;
56
- }
57
- // Resolve relative URLs against current URL
58
- const redirectUrl = new URL(location, url).toString();
59
- logger.info(`[Redirect] ${statusCode} -> ${redirectUrl}`);
60
- // Update cookies from Set-Cookie headers if present
61
- const setCookieHeaders = res.headers['set-cookie'];
62
- if (setCookieHeaders && requestOptions.headers) {
63
- const existingCookies = requestOptions.headers['cookie'] || '';
64
- const newCookies = setCookieHeaders
65
- .map(cookie => cookie.split(';')[0]) // Extract cookie name=value
66
- .join('; ');
67
- requestOptions.headers['cookie'] = existingCookies
68
- ? `${existingCookies}; ${newCookies}`
69
- : newCookies;
70
- }
71
- // For 303, change POST/PUT to GET
72
- if (statusCode === 303 && options.method !== 'GET' && options.method !== 'HEAD') {
73
- requestOptions.method = 'GET';
74
- delete requestOptions.headers?.['content-length'];
75
- delete requestOptions.headers?.['content-type'];
76
- }
77
- try {
78
- // Follow the redirect
79
- const redirectResponse = await makeRequestWithRedirects(redirectUrl, requestOptions, redirectCount + 1);
80
- resolve(redirectResponse);
81
- }
82
- catch (error) {
83
- reject(error);
84
- }
85
- return;
86
- }
87
- // Not a redirect, return response
88
- resolve({
89
- statusCode,
90
- statusMessage: res.statusMessage,
91
- headers: res.headers,
92
- data
93
- });
94
- });
95
- });
96
- req.on('error', (error) => {
97
- if (logger.isDebugMode()) {
98
- logger.error(`[HTTP Error]`, error);
99
- }
100
- reject(error);
101
- });
102
- req.on('timeout', () => {
103
- req.destroy();
104
- reject(new Error('Request timeout'));
105
- });
106
- req.end();
107
- });
108
- }
109
- /**
110
- * Retry wrapper with exponential backoff
111
- */
112
- async function withRetry(fn, operation, maxRetries = MAX_RETRIES) {
113
- let lastError;
114
- for (let attempt = 1; attempt <= maxRetries; attempt++) {
115
- try {
116
- return await fn();
117
- }
118
- catch (error) {
119
- lastError = error;
120
- // Don't retry auth errors
121
- if (lastError.message.includes('SSO session expired') ||
122
- lastError.message.includes('401') ||
123
- lastError.message.includes('403')) {
124
- throw lastError;
125
- }
126
- // Log retry attempt
127
- logger.warn(`[Retry] ${operation} failed (attempt ${attempt}/${maxRetries}): ${lastError.message}`);
128
- if (attempt < maxRetries) {
129
- // Exponential backoff: 1s, 2s, 4s
130
- const delay = Math.pow(2, attempt - 1) * 1000;
131
- logger.debug(`[Retry] Waiting ${delay}ms before retry...`);
132
- await new Promise(resolve => setTimeout(resolve, delay));
133
- }
134
- }
135
- }
136
- throw lastError;
137
- }
138
- export async function fetchCodeMieModels(apiUrl, cookies) {
139
- return withRetry(async () => {
140
- const cookieString = Object.entries(cookies)
141
- .map(([key, value]) => `${key}=${value}`)
142
- .join(';');
143
- const url = `${apiUrl}${CODEMIE_ENDPOINTS.MODELS}`;
144
- const requestOptions = {
145
- method: 'GET',
146
- headers: {
147
- 'cookie': cookieString,
148
- 'Content-Type': 'application/json',
149
- 'User-Agent': 'CodeMie-CLI/1.0.0',
150
- 'X-CodeMie-Client': 'codemie-cli'
151
- },
152
- // Handle certificate issues commonly found in enterprise environments
153
- rejectUnauthorized: false, // Allow self-signed certificates
154
- timeout: 10000
155
- };
156
- const response = await makeRequestWithRedirects(url, requestOptions);
157
- if (!response.statusCode || response.statusCode < 200 || response.statusCode >= 300) {
158
- if (response.statusCode === 401 || response.statusCode === 403) {
159
- throw new Error('SSO session expired - please run setup again');
160
- }
161
- throw new Error(`Failed to fetch models: ${response.statusCode} ${response.statusMessage}`);
162
- }
163
- // Parse the response
164
- const models = JSON.parse(response.data);
165
- if (!Array.isArray(models)) {
166
- return [];
167
- }
168
- // Filter and map models based on the actual API response structure
169
- const filteredModels = models
170
- .filter(model => {
171
- if (!model)
172
- return false;
173
- // Check for different possible model ID fields
174
- const hasId = model.id && model.id.trim() !== '';
175
- const hasBaseName = model.base_name && model.base_name.trim() !== '';
176
- const hasDeploymentName = model.deployment_name && model.deployment_name.trim() !== '';
177
- return hasId || hasBaseName || hasDeploymentName;
178
- })
179
- .map(model => {
180
- // Use the most appropriate identifier field
181
- return model.id || model.base_name || model.deployment_name || model.label || 'unknown';
182
- })
183
- .filter(id => id !== 'unknown')
184
- .sort();
185
- return filteredModels;
186
- }, 'fetchCodeMieModels');
187
- }
188
- export async function fetchCodeMieModelsFromConfig() {
189
- const store = CredentialStore.getInstance();
190
- const credentials = await store.retrieveSSOCredentials();
191
- if (!credentials) {
192
- throw new Error('No SSO credentials found - please run setup');
193
- }
194
- return fetchCodeMieModels(credentials.apiUrl, credentials.cookies);
195
- }
196
- export async function fetchCodeMieIntegrations(apiUrl, cookies, endpointPath = CODEMIE_ENDPOINTS.USER_SETTINGS) {
197
- const cookieString = Object.entries(cookies)
198
- .map(([key, value]) => `${key}=${value}`)
199
- .join(';');
200
- const allIntegrations = [];
201
- let currentPage = 0;
202
- const perPage = 50;
203
- let hasMorePages = true;
204
- while (hasMorePages) {
205
- try {
206
- // Build URL with query parameters to filter by LiteLLM type
207
- const filters = JSON.stringify({ type: ['LiteLLM'] });
208
- const queryParams = new URLSearchParams({
209
- page: currentPage.toString(),
210
- per_page: perPage.toString(),
211
- filters: filters
212
- });
213
- const fullUrl = `${apiUrl}${endpointPath}?${queryParams.toString()}`;
214
- const pageIntegrations = await fetchIntegrationsPage(fullUrl, cookieString);
215
- if (pageIntegrations.length === 0) {
216
- hasMorePages = false;
217
- }
218
- else {
219
- allIntegrations.push(...pageIntegrations);
220
- // If we got fewer items than requested, we've reached the last page
221
- if (pageIntegrations.length < perPage) {
222
- hasMorePages = false;
223
- }
224
- else {
225
- currentPage++;
226
- }
227
- }
228
- }
229
- catch {
230
- hasMorePages = false;
231
- }
232
- }
233
- return allIntegrations;
234
- }
235
- async function fetchIntegrationsPage(fullUrl, cookieString) {
236
- return withRetry(async () => {
237
- const requestOptions = {
238
- method: 'GET',
239
- headers: {
240
- 'cookie': cookieString,
241
- 'Content-Type': 'application/json',
242
- 'User-Agent': 'CodeMie-CLI/1.0.0',
243
- 'X-CodeMie-Client': 'codemie-cli'
244
- },
245
- // Handle certificate issues commonly found in enterprise environments
246
- rejectUnauthorized: false, // Allow self-signed certificates
247
- timeout: 10000
248
- };
249
- const response = await makeRequestWithRedirects(fullUrl, requestOptions);
250
- if (!response.statusCode || response.statusCode < 200 || response.statusCode >= 300) {
251
- if (response.statusCode === 401 || response.statusCode === 403) {
252
- throw new Error('SSO session expired - please run setup again');
253
- }
254
- if (response.statusCode === 404) {
255
- throw new Error(`Integrations endpoint not found. Response: ${response.data}`);
256
- }
257
- throw new Error(`Failed to fetch integrations: ${response.statusCode} ${response.statusMessage}`);
258
- }
259
- // Parse the response - handle flexible response structure
260
- const responseData = JSON.parse(response.data);
261
- // Extract integrations from response - try all possible locations
262
- let integrations = [];
263
- // Try different possible property names and structures
264
- const possibleArrays = [
265
- responseData, // Direct array
266
- responseData.integrations,
267
- responseData.credentials,
268
- responseData.data,
269
- responseData.items,
270
- responseData.results,
271
- responseData.user_integrations,
272
- responseData.personal_integrations,
273
- responseData.available_integrations
274
- ].filter(arr => Array.isArray(arr));
275
- if (possibleArrays.length > 0) {
276
- integrations = possibleArrays[0];
277
- }
278
- else {
279
- // Try to find nested objects that might contain arrays
280
- for (const value of Object.values(responseData)) {
281
- if (typeof value === 'object' && value !== null) {
282
- const nestedArrays = Object.values(value).filter(Array.isArray);
283
- if (nestedArrays.length > 0) {
284
- integrations = nestedArrays[0];
285
- break;
286
- }
287
- }
288
- }
289
- }
290
- // Filter and validate integrations (already filtered by API, but double-check)
291
- const validIntegrations = integrations
292
- .filter(integration => {
293
- return integration &&
294
- integration.alias &&
295
- integration.credential_type &&
296
- integration.alias.trim() !== '' &&
297
- integration.credential_type.trim() !== '';
298
- })
299
- .sort((a, b) => a.alias.localeCompare(b.alias));
300
- return validIntegrations;
301
- }, 'fetchIntegrationsPage');
302
- }
303
- export async function fetchCodeMieIntegrationsFromConfig() {
304
- const store = CredentialStore.getInstance();
305
- const credentials = await store.retrieveSSOCredentials();
306
- if (!credentials) {
307
- throw new Error('No SSO credentials found - please run setup');
308
- }
309
- return fetchCodeMieIntegrations(credentials.apiUrl, credentials.cookies);
310
- }
311
- export async function validateCodeMieConnectivity() {
312
- // Following the codemie-ide-plugin pattern, we don't perform connectivity validation
313
- // Instead, we trust that the SSO flow will handle any connectivity issues
314
- // This function is kept for compatibility but essentially becomes a no-op
315
- return Promise.resolve();
316
- }
317
- //# sourceMappingURL=codemie-model-fetcher.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"codemie-model-fetcher.js","sourceRoot":"","sources":["../../src/utils/codemie-model-fetcher.ts"],"names":[],"mappings":"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"}
@@ -1,20 +0,0 @@
1
- /**
2
- * Result of health check
3
- */
4
- export interface HealthCheckResult {
5
- success: boolean;
6
- message: string;
7
- details?: any;
8
- }
9
- /**
10
- * Check provider health endpoint
11
- *
12
- * For LiteLLM: https://docs.litellm.ai/docs/proxy/health
13
- * Typically at /health endpoint
14
- */
15
- export declare function checkProviderHealth(baseUrl: string, apiKey: string): Promise<HealthCheckResult>;
16
- /**
17
- * Quick validation - just checks if URL is reachable
18
- */
19
- export declare function quickValidation(baseUrl: string, apiKey: string): Promise<boolean>;
20
- //# sourceMappingURL=health-checker.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"health-checker.d.ts","sourceRoot":"","sources":["../../src/utils/health-checker.ts"],"names":[],"mappings":"AAYA;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,GAAG,CAAC;CACf;AAED;;;;;GAKG;AACH,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,iBAAiB,CAAC,CA6B5B;AAmID;;GAEG;AACH,wBAAsB,eAAe,CACnC,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,OAAO,CAAC,CAGlB"}
@@ -1,172 +0,0 @@
1
- import https from 'https';
2
- import http from 'http';
3
- import { URL } from 'url';
4
- /**
5
- * Check provider health endpoint
6
- *
7
- * For LiteLLM: https://docs.litellm.ai/docs/proxy/health
8
- * Typically at /health endpoint
9
- */
10
- export async function checkProviderHealth(baseUrl, apiKey) {
11
- try {
12
- // Try /health endpoint first (LiteLLM, common pattern)
13
- let result = await tryHealthEndpoint(baseUrl, apiKey, '/health');
14
- if (result.success) {
15
- return result;
16
- }
17
- // Fallback: Try /v1/models endpoint (OpenAI-compatible)
18
- result = await tryHealthEndpoint(baseUrl, apiKey, '/v1/models');
19
- if (result.success) {
20
- return {
21
- success: true,
22
- message: 'Provider is reachable (verified via /v1/models)',
23
- details: result.details
24
- };
25
- }
26
- return {
27
- success: false,
28
- message: 'Could not verify provider health',
29
- details: result.details
30
- };
31
- }
32
- catch (error) {
33
- return {
34
- success: false,
35
- message: error instanceof Error ? error.message : String(error)
36
- };
37
- }
38
- }
39
- /**
40
- * Try a specific health endpoint
41
- */
42
- async function tryHealthEndpoint(baseUrl, apiKey, path) {
43
- try {
44
- // Ensure baseUrl ends with / for proper path joining
45
- const normalizedBase = baseUrl.endsWith('/') ? baseUrl : baseUrl + '/';
46
- // Remove leading / from path to avoid URL replacement
47
- const normalizedPath = path.startsWith('/') ? path.substring(1) : path;
48
- const url = new URL(normalizedPath, normalizedBase);
49
- const isHttps = url.protocol === 'https:';
50
- const client = isHttps ? https : http;
51
- return await new Promise((resolve) => {
52
- const options = {
53
- hostname: url.hostname,
54
- port: url.port || (isHttps ? 443 : 80),
55
- path: url.pathname + url.search,
56
- method: 'GET',
57
- headers: {
58
- 'Authorization': `Bearer ${apiKey}`,
59
- 'Content-Type': 'application/json'
60
- },
61
- timeout: 10000 // 10 second timeout
62
- };
63
- const req = client.request(options, (res) => {
64
- let data = '';
65
- res.on('data', (chunk) => {
66
- data += chunk;
67
- });
68
- res.on('end', () => {
69
- if (res.statusCode === 200) {
70
- try {
71
- const response = JSON.parse(data);
72
- resolve({
73
- success: true,
74
- message: `Health check passed (${path})`,
75
- details: response
76
- });
77
- }
78
- catch {
79
- // Non-JSON response but 200 OK
80
- resolve({
81
- success: true,
82
- message: `Health check passed (${path})`,
83
- details: { raw: data }
84
- });
85
- }
86
- }
87
- else if (res.statusCode === 401) {
88
- resolve({
89
- success: false,
90
- message: 'Invalid API key (401 Unauthorized)',
91
- details: { statusCode: res.statusCode, body: data }
92
- });
93
- }
94
- else if (res.statusCode === 403) {
95
- resolve({
96
- success: false,
97
- message: 'Access forbidden - check API key permissions (403)',
98
- details: { statusCode: res.statusCode, body: data }
99
- });
100
- }
101
- else if (res.statusCode === 404) {
102
- resolve({
103
- success: false,
104
- message: `Endpoint not found (${path})`,
105
- details: { statusCode: res.statusCode }
106
- });
107
- }
108
- else {
109
- resolve({
110
- success: false,
111
- message: `HTTP ${res.statusCode}: ${data}`,
112
- details: { statusCode: res.statusCode, body: data }
113
- });
114
- }
115
- });
116
- });
117
- req.on('error', (error) => {
118
- if (error.message.includes('ENOTFOUND')) {
119
- resolve({
120
- success: false,
121
- message: 'Host not found - check base URL',
122
- details: error
123
- });
124
- }
125
- else if (error.message.includes('ECONNREFUSED')) {
126
- resolve({
127
- success: false,
128
- message: 'Connection refused - service may be down',
129
- details: error
130
- });
131
- }
132
- else if (error.message.includes('ETIMEDOUT')) {
133
- resolve({
134
- success: false,
135
- message: 'Connection timeout - check network/firewall',
136
- details: error
137
- });
138
- }
139
- else {
140
- resolve({
141
- success: false,
142
- message: `Connection error: ${error.message}`,
143
- details: error
144
- });
145
- }
146
- });
147
- req.on('timeout', () => {
148
- req.destroy();
149
- resolve({
150
- success: false,
151
- message: 'Request timeout (10s)',
152
- details: { timeout: true }
153
- });
154
- });
155
- req.end();
156
- });
157
- }
158
- catch (error) {
159
- return {
160
- success: false,
161
- message: error instanceof Error ? error.message : String(error)
162
- };
163
- }
164
- }
165
- /**
166
- * Quick validation - just checks if URL is reachable
167
- */
168
- export async function quickValidation(baseUrl, apiKey) {
169
- const result = await checkProviderHealth(baseUrl, apiKey);
170
- return result.success;
171
- }
172
- //# sourceMappingURL=health-checker.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"health-checker.js","sourceRoot":"","sources":["../../src/utils/health-checker.ts"],"names":[],"mappings":"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"}
@@ -1,21 +0,0 @@
1
- import { CodeMieConfigOptions } from './config-loader.js';
2
- /**
3
- * Fetch available models from provider API
4
- */
5
- export declare function fetchAvailableModels(config: CodeMieConfigOptions): Promise<string[]>;
6
- /**
7
- * Filter models based on agent compatibility rules
8
- */
9
- export declare function filterModelsByAgent(models: string[], agentName: string, blockedPatterns: RegExp[]): string[];
10
- /**
11
- * Categorize models into recommended and other
12
- */
13
- export declare function categorizeModels(models: string[]): {
14
- recommended: string[];
15
- other: string[];
16
- };
17
- /**
18
- * Clear the model cache (useful for testing or forcing refresh)
19
- */
20
- export declare function clearModelCache(): void;
21
- //# sourceMappingURL=model-fetcher.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"model-fetcher.d.ts","sourceRoot":"","sources":["../../src/utils/model-fetcher.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAyB1D;;GAEG;AACH,wBAAsB,oBAAoB,CAAC,MAAM,EAAE,oBAAoB,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAkC1F;AA2ED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,MAAM,EAAE,EAChB,SAAS,EAAE,MAAM,EACjB,eAAe,EAAE,MAAM,EAAE,GACxB,MAAM,EAAE,CAUV;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG;IAClD,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB,CAoBA;AAED;;GAEG;AACH,wBAAgB,eAAe,IAAI,IAAI,CAEtC"}