@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
@@ -0,0 +1,240 @@
1
+ /**
2
+ * Simple HTTP Client for Provider Plugins
3
+ *
4
+ * Lightweight HTTP client with timeout, redirect, and retry support
5
+ */
6
+ import https from 'https';
7
+ import http from 'http';
8
+ import { URL } from 'url';
9
+ import { logger } from '../../../utils/logger.js';
10
+ import { sanitizeHeaders } from '../../../utils/sanitize.js';
11
+ /**
12
+ * Simple HTTP Client
13
+ */
14
+ export class HTTPClient {
15
+ config;
16
+ constructor(config = {}) {
17
+ this.config = {
18
+ timeout: 5000,
19
+ maxRedirects: 5,
20
+ maxRetries: 3,
21
+ rejectUnauthorized: false,
22
+ headers: {},
23
+ ...config
24
+ };
25
+ }
26
+ /**
27
+ * Perform HTTP GET request with retry logic
28
+ */
29
+ async get(url, headers) {
30
+ return this.withRetry(() => this.request('GET', url, undefined, headers));
31
+ }
32
+ /**
33
+ * Perform HTTP POST request with retry logic
34
+ */
35
+ async post(url, data, headers) {
36
+ return this.withRetry(() => this.request('POST', url, data, headers));
37
+ }
38
+ /**
39
+ * Perform HTTP GET request with redirect support (returns raw string)
40
+ */
41
+ async getRaw(url, headers) {
42
+ return this.requestWithRedirects(url, {
43
+ method: 'GET',
44
+ headers: {
45
+ ...this.config.headers,
46
+ ...headers
47
+ },
48
+ rejectUnauthorized: this.config.rejectUnauthorized,
49
+ timeout: this.config.timeout
50
+ });
51
+ }
52
+ /**
53
+ * Perform HTTP request
54
+ */
55
+ async request(method, url, data, headers) {
56
+ return new Promise((resolve, reject) => {
57
+ const parsedUrl = new URL(url);
58
+ const isHttps = parsedUrl.protocol === 'https:';
59
+ const client = isHttps ? https : http;
60
+ const requestHeaders = {
61
+ 'Content-Type': 'application/json',
62
+ ...this.config.headers,
63
+ ...headers
64
+ };
65
+ const body = data ? JSON.stringify(data) : undefined;
66
+ if (body) {
67
+ requestHeaders['Content-Length'] = Buffer.byteLength(body).toString();
68
+ }
69
+ const options = {
70
+ hostname: parsedUrl.hostname,
71
+ port: parsedUrl.port || (isHttps ? 443 : 80),
72
+ path: parsedUrl.pathname + parsedUrl.search,
73
+ method,
74
+ headers: requestHeaders,
75
+ timeout: this.config.timeout
76
+ };
77
+ const req = client.request(options, (res) => {
78
+ let responseData = '';
79
+ res.on('data', (chunk) => {
80
+ responseData += chunk;
81
+ });
82
+ res.on('end', () => {
83
+ try {
84
+ const parsedData = responseData ? JSON.parse(responseData) : null;
85
+ const response = {
86
+ status: res.statusCode || 0,
87
+ statusText: res.statusMessage || '',
88
+ data: parsedData,
89
+ headers: res.headers
90
+ };
91
+ if (res.statusCode && res.statusCode >= 200 && res.statusCode < 300) {
92
+ resolve(response);
93
+ }
94
+ else {
95
+ reject(new Error(`HTTP ${res.statusCode}: ${res.statusMessage}`));
96
+ }
97
+ }
98
+ catch (error) {
99
+ reject(new Error(`Failed to parse response: ${error instanceof Error ? error.message : String(error)}`));
100
+ }
101
+ });
102
+ });
103
+ req.on('error', (error) => {
104
+ reject(error);
105
+ });
106
+ req.on('timeout', () => {
107
+ req.destroy();
108
+ reject(new Error(`Request timeout after ${this.config.timeout}ms`));
109
+ });
110
+ if (body) {
111
+ req.write(body);
112
+ }
113
+ req.end();
114
+ });
115
+ }
116
+ /**
117
+ * Make HTTP request with automatic redirect following
118
+ * Handles 301, 302, 303, 307, 308 redirects following HTTP standards
119
+ */
120
+ async requestWithRedirects(url, requestOptions, redirectCount = 0) {
121
+ if (redirectCount >= this.config.maxRedirects) {
122
+ throw new Error(`Too many redirects (${redirectCount}). Possible redirect loop.`);
123
+ }
124
+ const parsedUrl = new URL(url);
125
+ const protocol = parsedUrl.protocol === 'https:' ? https : http;
126
+ const options = {
127
+ ...requestOptions,
128
+ hostname: parsedUrl.hostname,
129
+ port: parsedUrl.port || (parsedUrl.protocol === 'https:' ? 443 : 80),
130
+ path: parsedUrl.pathname + parsedUrl.search,
131
+ };
132
+ if (logger.isDebugMode()) {
133
+ logger.debug(`[HTTP Request] ${options.method} ${url}`);
134
+ logger.debug(`[Headers]`, sanitizeHeaders(requestOptions.headers));
135
+ if (redirectCount > 0) {
136
+ logger.debug(`[Redirect] Following redirect #${redirectCount}`);
137
+ }
138
+ }
139
+ return new Promise((resolve, reject) => {
140
+ const req = protocol.request(options, (res) => {
141
+ let data = '';
142
+ res.on('data', (chunk) => {
143
+ data += chunk;
144
+ });
145
+ res.on('end', async () => {
146
+ const statusCode = res.statusCode || 0;
147
+ if (logger.isDebugMode()) {
148
+ logger.debug(`[HTTP Response] ${statusCode} ${res.statusMessage}`);
149
+ logger.debug(`[Response Headers]`, sanitizeHeaders(res.headers));
150
+ }
151
+ // Handle redirects (301, 302, 303, 307, 308)
152
+ if (statusCode >= 300 && statusCode < 400) {
153
+ const location = res.headers['location'];
154
+ if (!location) {
155
+ reject(new Error(`Redirect ${statusCode} without Location header`));
156
+ return;
157
+ }
158
+ // Resolve relative URLs against current URL
159
+ const redirectUrl = new URL(location, url).toString();
160
+ logger.info(`[Redirect] ${statusCode} -> ${redirectUrl}`);
161
+ // Update cookies from Set-Cookie headers if present
162
+ const setCookieHeaders = res.headers['set-cookie'];
163
+ if (setCookieHeaders && requestOptions.headers) {
164
+ const existingCookies = requestOptions.headers['cookie'] || '';
165
+ const newCookies = setCookieHeaders
166
+ .map(cookie => cookie.split(';')[0]) // Extract cookie name=value
167
+ .join('; ');
168
+ requestOptions.headers['cookie'] = existingCookies
169
+ ? `${existingCookies}; ${newCookies}`
170
+ : newCookies;
171
+ }
172
+ // For 303, change POST/PUT to GET
173
+ if (statusCode === 303 && options.method !== 'GET' && options.method !== 'HEAD') {
174
+ requestOptions.method = 'GET';
175
+ delete requestOptions.headers?.['content-length'];
176
+ delete requestOptions.headers?.['content-type'];
177
+ }
178
+ try {
179
+ // Follow the redirect
180
+ const redirectResponse = await this.requestWithRedirects(redirectUrl, requestOptions, redirectCount + 1);
181
+ resolve(redirectResponse);
182
+ }
183
+ catch (error) {
184
+ reject(error);
185
+ }
186
+ return;
187
+ }
188
+ // Not a redirect, return response
189
+ resolve({
190
+ statusCode,
191
+ statusMessage: res.statusMessage,
192
+ headers: res.headers,
193
+ data
194
+ });
195
+ });
196
+ });
197
+ req.on('error', (error) => {
198
+ if (logger.isDebugMode()) {
199
+ logger.error(`[HTTP Error]`, error);
200
+ }
201
+ reject(error);
202
+ });
203
+ req.on('timeout', () => {
204
+ req.destroy();
205
+ reject(new Error('Request timeout'));
206
+ });
207
+ req.end();
208
+ });
209
+ }
210
+ /**
211
+ * Retry wrapper with exponential backoff
212
+ */
213
+ async withRetry(fn) {
214
+ let lastError;
215
+ for (let attempt = 1; attempt <= this.config.maxRetries; attempt++) {
216
+ try {
217
+ return await fn();
218
+ }
219
+ catch (error) {
220
+ lastError = error;
221
+ // Don't retry auth errors
222
+ if (lastError.message.includes('SSO session expired') ||
223
+ lastError.message.includes('401') ||
224
+ lastError.message.includes('403')) {
225
+ throw lastError;
226
+ }
227
+ // Log retry attempt
228
+ logger.warn(`[Retry] Request failed (attempt ${attempt}/${this.config.maxRetries}): ${lastError.message}`);
229
+ if (attempt < this.config.maxRetries) {
230
+ // Exponential backoff: 1s, 2s, 4s
231
+ const delay = Math.pow(2, attempt - 1) * 1000;
232
+ logger.debug(`[Retry] Waiting ${delay}ms before retry...`);
233
+ await new Promise(resolve => setTimeout(resolve, delay));
234
+ }
235
+ }
236
+ }
237
+ throw lastError;
238
+ }
239
+ }
240
+ //# sourceMappingURL=http-client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http-client.js","sourceRoot":"","sources":["../../../../src/providers/core/base/http-client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Provider Decorators
3
+ *
4
+ * Auto-registration decorators for provider plugins
5
+ */
6
+ import type { ProviderTemplate } from './types.js';
7
+ /**
8
+ * Auto-registration decorator
9
+ *
10
+ * Automatically registers provider on import
11
+ */
12
+ export declare function registerProvider<T extends ProviderTemplate>(template: T): T;
13
+ //# sourceMappingURL=decorators.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"decorators.d.ts","sourceRoot":"","sources":["../../../src/providers/core/decorators.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEnD;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,gBAAgB,EAAE,QAAQ,EAAE,CAAC,GAAG,CAAC,CAE3E"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Provider Decorators
3
+ *
4
+ * Auto-registration decorators for provider plugins
5
+ */
6
+ import { ProviderRegistry } from './registry.js';
7
+ /**
8
+ * Auto-registration decorator
9
+ *
10
+ * Automatically registers provider on import
11
+ */
12
+ export function registerProvider(template) {
13
+ return ProviderRegistry.registerProvider(template);
14
+ }
15
+ //# sourceMappingURL=decorators.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"decorators.js","sourceRoot":"","sources":["../../../src/providers/core/decorators.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAGjD;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAA6B,QAAW;IACtE,OAAO,gBAAgB,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;AACrD,CAAC"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Provider Core Module
3
+ *
4
+ * Main exports for provider plugin architecture
5
+ */
6
+ export type { ProviderTemplate, ProviderCapability, ModelMetadata, ModelInfo, HealthCheckResult, HealthCheckDetail, HealthCheckConfig, ProviderHealthCheck, InstallProgress, ModelInstallerProxy, ProviderModelFetcher, ProviderCredentials, ValidationResult, ProviderSetupSteps } from './types.js';
7
+ export { ProviderRegistry } from './registry.js';
8
+ export { registerProvider } from './decorators.js';
9
+ export { BaseHealthCheck } from './base/BaseHealthCheck.js';
10
+ export { BaseModelProxy } from './base/BaseModelProxy.js';
11
+ export { HTTPClient } from './base/http-client.js';
12
+ export type { HTTPClientConfig, HTTPResponse } from './base/http-client.js';
13
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/core/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,YAAY,EACV,gBAAgB,EAChB,kBAAkB,EAClB,aAAa,EACb,SAAS,EACT,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,EACjB,mBAAmB,EACnB,eAAe,EACf,mBAAmB,EACnB,oBAAoB,EACpB,mBAAmB,EACnB,gBAAgB,EAChB,kBAAkB,EACnB,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAGjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAGnD,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,YAAY,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Provider Core Module
3
+ *
4
+ * Main exports for provider plugin architecture
5
+ */
6
+ // Registry
7
+ export { ProviderRegistry } from './registry.js';
8
+ // Decorators
9
+ export { registerProvider } from './decorators.js';
10
+ // Base Classes
11
+ export { BaseHealthCheck } from './base/BaseHealthCheck.js';
12
+ export { BaseModelProxy } from './base/BaseModelProxy.js';
13
+ export { HTTPClient } from './base/http-client.js';
14
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/providers/core/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAoBH,WAAW;AACX,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEjD,aAAa;AACb,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAEnD,eAAe;AACf,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC"}
@@ -0,0 +1,66 @@
1
+ /**
2
+ * Provider Registry
3
+ *
4
+ * Central registry for all provider plugins
5
+ */
6
+ import type { ProviderTemplate, ProviderHealthCheck, ProviderModelFetcher, ProviderSetupSteps } from './types.js';
7
+ /**
8
+ * Provider Registry
9
+ *
10
+ * Central registry for all provider plugins
11
+ */
12
+ export declare class ProviderRegistry {
13
+ private static providers;
14
+ private static healthChecks;
15
+ private static modelProxies;
16
+ private static setupSteps;
17
+ /**
18
+ * Register provider template
19
+ */
20
+ static registerProvider<T extends ProviderTemplate>(template: T): T;
21
+ /**
22
+ * Register health check
23
+ */
24
+ static registerHealthCheck(name: string, healthCheck: ProviderHealthCheck): void;
25
+ /**
26
+ * Register model proxy
27
+ */
28
+ static registerModelProxy(name: string, proxy: ProviderModelFetcher): void;
29
+ /**
30
+ * Register setup steps
31
+ */
32
+ static registerSetupSteps(name: string, steps: ProviderSetupSteps): void;
33
+ /**
34
+ * Get provider by name
35
+ */
36
+ static getProvider(name: string): ProviderTemplate | undefined;
37
+ /**
38
+ * Get all providers
39
+ */
40
+ static getAllProviders(): ProviderTemplate[];
41
+ /**
42
+ * Get health check for provider
43
+ */
44
+ static getHealthCheck(provider: string): ProviderHealthCheck | undefined;
45
+ /**
46
+ * Get model proxy for provider
47
+ */
48
+ static getModelProxy(provider: string): ProviderModelFetcher | undefined;
49
+ /**
50
+ * Get setup steps for provider
51
+ */
52
+ static getSetupSteps(provider: string): ProviderSetupSteps | undefined;
53
+ /**
54
+ * Check if provider is registered
55
+ */
56
+ static hasProvider(name: string): boolean;
57
+ /**
58
+ * Get all provider names
59
+ */
60
+ static getProviderNames(): string[];
61
+ /**
62
+ * Clear all registrations (mainly for testing)
63
+ */
64
+ static clear(): void;
65
+ }
66
+ //# sourceMappingURL=registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../src/providers/core/registry.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EACV,gBAAgB,EAChB,mBAAmB,EACnB,oBAAoB,EACpB,kBAAkB,EACnB,MAAM,YAAY,CAAC;AAEpB;;;;GAIG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,MAAM,CAAC,SAAS,CAA4C;IACpE,OAAO,CAAC,MAAM,CAAC,YAAY,CAA+C;IAC1E,OAAO,CAAC,MAAM,CAAC,YAAY,CAAgD;IAC3E,OAAO,CAAC,MAAM,CAAC,UAAU,CAA8C;IAEvE;;OAEG;IACH,MAAM,CAAC,gBAAgB,CAAC,CAAC,SAAS,gBAAgB,EAAE,QAAQ,EAAE,CAAC,GAAG,CAAC;IAKnE;;OAEG;IACH,MAAM,CAAC,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,mBAAmB,GAAG,IAAI;IAIhF;;OAEG;IACH,MAAM,CAAC,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,oBAAoB,GAAG,IAAI;IAI1E;;OAEG;IACH,MAAM,CAAC,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,kBAAkB,GAAG,IAAI;IAIxE;;OAEG;IACH,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB,GAAG,SAAS;IAI9D;;OAEG;IACH,MAAM,CAAC,eAAe,IAAI,gBAAgB,EAAE;IAI5C;;OAEG;IACH,MAAM,CAAC,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,mBAAmB,GAAG,SAAS;IAUxE;;OAEG;IACH,MAAM,CAAC,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,oBAAoB,GAAG,SAAS;IAUxE;;OAEG;IACH,MAAM,CAAC,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,kBAAkB,GAAG,SAAS;IAItE;;OAEG;IACH,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAIzC;;OAEG;IACH,MAAM,CAAC,gBAAgB,IAAI,MAAM,EAAE;IAInC;;OAEG;IACH,MAAM,CAAC,KAAK,IAAI,IAAI;CAMrB"}
@@ -0,0 +1,105 @@
1
+ /**
2
+ * Provider Registry
3
+ *
4
+ * Central registry for all provider plugins
5
+ */
6
+ /**
7
+ * Provider Registry
8
+ *
9
+ * Central registry for all provider plugins
10
+ */
11
+ export class ProviderRegistry {
12
+ static providers = new Map();
13
+ static healthChecks = new Map();
14
+ static modelProxies = new Map();
15
+ static setupSteps = new Map();
16
+ /**
17
+ * Register provider template
18
+ */
19
+ static registerProvider(template) {
20
+ this.providers.set(template.name, template);
21
+ return template;
22
+ }
23
+ /**
24
+ * Register health check
25
+ */
26
+ static registerHealthCheck(name, healthCheck) {
27
+ this.healthChecks.set(name, healthCheck);
28
+ }
29
+ /**
30
+ * Register model proxy
31
+ */
32
+ static registerModelProxy(name, proxy) {
33
+ this.modelProxies.set(name, proxy);
34
+ }
35
+ /**
36
+ * Register setup steps
37
+ */
38
+ static registerSetupSteps(name, steps) {
39
+ this.setupSteps.set(name, steps);
40
+ }
41
+ /**
42
+ * Get provider by name
43
+ */
44
+ static getProvider(name) {
45
+ return this.providers.get(name);
46
+ }
47
+ /**
48
+ * Get all providers
49
+ */
50
+ static getAllProviders() {
51
+ return Array.from(this.providers.values());
52
+ }
53
+ /**
54
+ * Get health check for provider
55
+ */
56
+ static getHealthCheck(provider) {
57
+ // Find health check that supports this provider
58
+ for (const healthCheck of this.healthChecks.values()) {
59
+ if (healthCheck.supports(provider)) {
60
+ return healthCheck;
61
+ }
62
+ }
63
+ return undefined;
64
+ }
65
+ /**
66
+ * Get model proxy for provider
67
+ */
68
+ static getModelProxy(provider) {
69
+ // Find model proxy that supports this provider
70
+ for (const proxy of this.modelProxies.values()) {
71
+ if (proxy.supports(provider)) {
72
+ return proxy;
73
+ }
74
+ }
75
+ return undefined;
76
+ }
77
+ /**
78
+ * Get setup steps for provider
79
+ */
80
+ static getSetupSteps(provider) {
81
+ return this.setupSteps.get(provider);
82
+ }
83
+ /**
84
+ * Check if provider is registered
85
+ */
86
+ static hasProvider(name) {
87
+ return this.providers.has(name);
88
+ }
89
+ /**
90
+ * Get all provider names
91
+ */
92
+ static getProviderNames() {
93
+ return Array.from(this.providers.keys());
94
+ }
95
+ /**
96
+ * Clear all registrations (mainly for testing)
97
+ */
98
+ static clear() {
99
+ this.providers.clear();
100
+ this.healthChecks.clear();
101
+ this.modelProxies.clear();
102
+ this.setupSteps.clear();
103
+ }
104
+ }
105
+ //# sourceMappingURL=registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../src/providers/core/registry.ts"],"names":[],"mappings":"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"}