@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,139 @@
1
+ /**
2
+ * SSO Model Management
3
+ *
4
+ * Fetches available models from CodeMie SSO API.
5
+ * Handles both direct model listing and LiteLLM integration discovery.
6
+ */
7
+ import { BaseModelProxy } from '../../core/base/BaseModelProxy.js';
8
+ import { ProviderRegistry } from '../../core/registry.js';
9
+ import { SSOTemplate } from './sso.template.js';
10
+ import { CodeMieSSO } from './sso.auth.js';
11
+ import { fetchCodeMieModels, fetchCodeMieIntegrations, CODEMIE_ENDPOINTS } from './sso.http-client.js';
12
+ import { logger } from '../../../utils/logger.js';
13
+ /**
14
+ * SSO Model Proxy
15
+ *
16
+ * Fetches models from CodeMie SSO API and LiteLLM integrations
17
+ */
18
+ export class SSOModelProxy extends BaseModelProxy {
19
+ sso;
20
+ constructor(baseUrl) {
21
+ // SSO doesn't have a fixed base URL, it's resolved from config
22
+ super(baseUrl || '', 10000);
23
+ this.sso = new CodeMieSSO();
24
+ }
25
+ /**
26
+ * Check if this proxy supports the given provider
27
+ */
28
+ supports(provider) {
29
+ return provider === 'ai-run-sso';
30
+ }
31
+ /**
32
+ * SSO does not support local model installation
33
+ */
34
+ supportsInstallation() {
35
+ return false;
36
+ }
37
+ /**
38
+ * List models from SSO API
39
+ *
40
+ * Note: This is mainly for consistency with the interface.
41
+ * For SSO, listModels and fetchModels are essentially the same.
42
+ */
43
+ async listModels() {
44
+ try {
45
+ const credentials = await this.sso.getStoredCredentials();
46
+ if (!credentials) {
47
+ throw new Error('No SSO credentials found. Run: codemie auth login');
48
+ }
49
+ return await this.fetchModelsFromAPI(credentials.apiUrl, credentials.cookies);
50
+ }
51
+ catch (error) {
52
+ logger.debug('Failed to list SSO models:', error);
53
+ throw error;
54
+ }
55
+ }
56
+ /**
57
+ * Fetch models for setup wizard
58
+ *
59
+ * Returns models from CodeMie SSO API
60
+ */
61
+ async fetchModels(config) {
62
+ try {
63
+ // Try to get credentials
64
+ const credentials = await this.sso.getStoredCredentials();
65
+ if (!credentials) {
66
+ // If no credentials yet, return empty array (setup wizard will handle auth)
67
+ logger.debug('No SSO credentials found, returning empty model list');
68
+ return [];
69
+ }
70
+ // Use API URL from credentials or config
71
+ const apiUrl = credentials.apiUrl || config.codeMieUrl;
72
+ if (!apiUrl) {
73
+ throw new Error('No CodeMie URL configured');
74
+ }
75
+ return await this.fetchModelsFromAPI(apiUrl, credentials.cookies);
76
+ }
77
+ catch (error) {
78
+ logger.debug('Failed to fetch SSO models:', error);
79
+ // Return empty array instead of throwing - setup wizard will handle this
80
+ return [];
81
+ }
82
+ }
83
+ /**
84
+ * Fetch LiteLLM integrations
85
+ */
86
+ async fetchIntegrations(codeMieUrl) {
87
+ const credentials = await this.sso.getStoredCredentials();
88
+ if (!credentials) {
89
+ logger.debug('No SSO credentials found for fetching integrations');
90
+ throw new Error('No SSO credentials found. Please authenticate first.');
91
+ }
92
+ const apiUrl = credentials.apiUrl || codeMieUrl;
93
+ logger.debug(`Fetching integrations from: ${apiUrl}${CODEMIE_ENDPOINTS.USER_SETTINGS}`);
94
+ try {
95
+ // Use the working utility function that handles redirects and SSL
96
+ return await fetchCodeMieIntegrations(apiUrl, credentials.cookies, CODEMIE_ENDPOINTS.USER_SETTINGS);
97
+ }
98
+ catch (error) {
99
+ const errorMsg = error instanceof Error ? error.message : String(error);
100
+ const errorStack = error instanceof Error ? error.stack : undefined;
101
+ // Log error details properly
102
+ logger.debug('Failed to fetch SSO integrations:', errorMsg);
103
+ if (errorStack && process.env.CODEMIE_DEBUG) {
104
+ logger.debug('Stack trace:', errorStack);
105
+ }
106
+ // Re-throw with more context
107
+ throw new Error(`Failed to fetch integrations: ${errorMsg}`);
108
+ }
109
+ }
110
+ /**
111
+ * Fetch models from CodeMie API
112
+ */
113
+ async fetchModelsFromAPI(apiUrl, cookies) {
114
+ try {
115
+ // Use the working utility function that handles redirects, SSL, and retry logic
116
+ const modelIds = await fetchCodeMieModels(apiUrl, cookies);
117
+ if (modelIds.length === 0) {
118
+ return [];
119
+ }
120
+ // Transform model IDs to ModelInfo format
121
+ // Mark recommended models as popular for highlighting (⭐)
122
+ const models = modelIds.map(id => {
123
+ const isRecommended = SSOTemplate.recommendedModels.includes(id);
124
+ return {
125
+ id,
126
+ name: id, // Use label from API
127
+ popular: isRecommended // Adds ⭐ to recommended models
128
+ };
129
+ });
130
+ return models;
131
+ }
132
+ catch (error) {
133
+ throw new Error(`Failed to fetch models from SSO API: ${error instanceof Error ? error.message : 'Unknown error'}`);
134
+ }
135
+ }
136
+ }
137
+ // Auto-register model proxy
138
+ ProviderRegistry.registerModelProxy('ai-run-sso', new SSOModelProxy());
139
+ //# sourceMappingURL=sso.models.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sso.models.js","sourceRoot":"","sources":["../../../../src/providers/plugins/sso/sso.models.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * SSO Provider Setup Steps
3
+ *
4
+ * Implements interactive setup flow for CodeMie SSO provider.
5
+ * Features:
6
+ * - Browser-based SSO authentication
7
+ * - CodeMie URL configuration
8
+ * - LiteLLM integration discovery (optional)
9
+ * - Model fetching from SSO API
10
+ */
11
+ import type { ProviderSetupSteps } from '../../core/types.js';
12
+ /**
13
+ * SSO setup steps implementation
14
+ */
15
+ export declare const SSOSetupSteps: ProviderSetupSteps;
16
+ //# sourceMappingURL=sso.setup-steps.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sso.setup-steps.d.ts","sourceRoot":"","sources":["../../../../src/providers/plugins/sso/sso.setup-steps.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAIH,OAAO,KAAK,EACV,kBAAkB,EAEnB,MAAM,qBAAqB,CAAC;AAO7B;;GAEG;AACH,eAAO,MAAM,aAAa,EAAE,kBAyI3B,CAAC"}
@@ -0,0 +1,145 @@
1
+ /**
2
+ * SSO Provider Setup Steps
3
+ *
4
+ * Implements interactive setup flow for CodeMie SSO provider.
5
+ * Features:
6
+ * - Browser-based SSO authentication
7
+ * - CodeMie URL configuration
8
+ * - LiteLLM integration discovery (optional)
9
+ * - Model fetching from SSO API
10
+ */
11
+ import inquirer from 'inquirer';
12
+ import chalk from 'chalk';
13
+ import { ProviderRegistry } from '../../core/registry.js';
14
+ import { SSOTemplate } from './sso.template.js';
15
+ import { CodeMieSSO } from './sso.auth.js';
16
+ import { SSOModelProxy } from './sso.models.js';
17
+ /**
18
+ * SSO setup steps implementation
19
+ */
20
+ export const SSOSetupSteps = {
21
+ name: 'ai-run-sso',
22
+ /**
23
+ * Step 1: Gather credentials/configuration
24
+ *
25
+ * Prompts for CodeMie URL and performs browser-based authentication
26
+ */
27
+ async getCredentials() {
28
+ // Prompt for CodeMie URL
29
+ const answers = await inquirer.prompt([
30
+ {
31
+ type: 'input',
32
+ name: 'codeMieUrl',
33
+ message: 'CodeMie organization URL:',
34
+ default: SSOTemplate.defaultBaseUrl,
35
+ validate: (input) => {
36
+ if (!input.trim()) {
37
+ return 'CodeMie URL is required';
38
+ }
39
+ if (!input.startsWith('http://') && !input.startsWith('https://')) {
40
+ return 'Please enter a valid URL starting with http:// or https://';
41
+ }
42
+ return true;
43
+ }
44
+ }
45
+ ]);
46
+ const codeMieUrl = answers.codeMieUrl.trim();
47
+ // Authenticate via browser
48
+ console.log(chalk.cyan('\n🔐 Authenticating via browser...\n'));
49
+ const sso = new CodeMieSSO();
50
+ const authResult = await sso.authenticate({
51
+ codeMieUrl,
52
+ timeout: 120000 // 2 minutes
53
+ });
54
+ if (!authResult.success) {
55
+ throw new Error(`SSO authentication failed: ${authResult.error || 'Unknown error'}`);
56
+ }
57
+ console.log(chalk.green('✓ Authentication successful!\n'));
58
+ // Check for LiteLLM integrations
59
+ const modelProxy = new SSOModelProxy(authResult.apiUrl);
60
+ let integrations;
61
+ let integrationsFetchError;
62
+ try {
63
+ integrations = await modelProxy.fetchIntegrations(codeMieUrl);
64
+ }
65
+ catch (error) {
66
+ // Log error but don't fail setup - integrations are optional
67
+ integrationsFetchError = error instanceof Error ? error.message : String(error);
68
+ console.log(chalk.yellow(`⚠️ Could not fetch integrations: ${integrationsFetchError}\n`));
69
+ integrations = [];
70
+ }
71
+ // Always prompt for integration selection
72
+ let integrationInfo;
73
+ if (integrations.length > 0) {
74
+ console.log(chalk.cyan(`📦 Found ${integrations.length} LiteLLM integration(s)\n`));
75
+ const integrationAnswers = await inquirer.prompt([
76
+ {
77
+ type: 'list',
78
+ name: 'integration',
79
+ message: 'Select LiteLLM integration (optional):',
80
+ choices: [
81
+ { name: 'None (use CodeMie models directly)', value: null },
82
+ ...integrations.map(i => ({
83
+ name: `${i.alias} (${i.project_name || 'Default'})`,
84
+ value: { id: i.id, alias: i.alias }
85
+ }))
86
+ ]
87
+ }
88
+ ]);
89
+ integrationInfo = integrationAnswers.integration;
90
+ }
91
+ else {
92
+ // Show message if no integrations found
93
+ if (integrationsFetchError) {
94
+ console.log(chalk.dim('ℹ️ Proceeding without LiteLLM integration (fetch failed)\n'));
95
+ }
96
+ else {
97
+ console.log(chalk.dim('ℹ️ No LiteLLM integrations configured\n'));
98
+ }
99
+ }
100
+ return {
101
+ baseUrl: authResult.apiUrl,
102
+ additionalConfig: {
103
+ codeMieUrl,
104
+ codeMieIntegration: integrationInfo,
105
+ apiUrl: authResult.apiUrl
106
+ }
107
+ };
108
+ },
109
+ /**
110
+ * Step 2: Fetch available models
111
+ *
112
+ * Queries SSO API to discover available models
113
+ */
114
+ async fetchModels(credentials) {
115
+ const modelProxy = new SSOModelProxy(credentials.baseUrl);
116
+ const models = await modelProxy.fetchModels({
117
+ codeMieUrl: credentials.additionalConfig?.codeMieUrl,
118
+ baseUrl: credentials.baseUrl
119
+ });
120
+ return models.map(m => m.id);
121
+ },
122
+ /**
123
+ * Step 3: Build final configuration
124
+ *
125
+ * Transform credentials + model selection into CodeMieConfigOptions
126
+ */
127
+ buildConfig(credentials, selectedModel) {
128
+ const config = {
129
+ provider: 'ai-run-sso',
130
+ codeMieUrl: credentials.additionalConfig?.codeMieUrl,
131
+ apiKey: "sso-provided",
132
+ baseUrl: credentials.baseUrl,
133
+ model: selectedModel
134
+ };
135
+ // Only include codeMieIntegration if it has a value
136
+ const integration = credentials.additionalConfig?.codeMieIntegration;
137
+ if (integration) {
138
+ config.codeMieIntegration = integration;
139
+ }
140
+ return config;
141
+ }
142
+ };
143
+ // Auto-register setup steps
144
+ ProviderRegistry.registerSetupSteps('ai-run-sso', SSOSetupSteps);
145
+ //# sourceMappingURL=sso.setup-steps.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sso.setup-steps.js","sourceRoot":"","sources":["../../../../src/providers/plugins/sso/sso.setup-steps.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * SSO Provider Template
3
+ *
4
+ * Template definition for AI-Run SSO (CodeMie SSO) provider.
5
+ * Enterprise SSO authentication with centralized model management.
6
+ *
7
+ * Auto-registers on import via registerProvider().
8
+ */
9
+ import type { ProviderTemplate } from '../../core/types.js';
10
+ export declare const SSOTemplate: ProviderTemplate;
11
+ //# sourceMappingURL=sso.template.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sso.template.d.ts","sourceRoot":"","sources":["../../../../src/providers/plugins/sso/sso.template.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAG5D,eAAO,MAAM,WAAW,kBAwBtB,CAAC"}
@@ -0,0 +1,35 @@
1
+ /**
2
+ * SSO Provider Template
3
+ *
4
+ * Template definition for AI-Run SSO (CodeMie SSO) provider.
5
+ * Enterprise SSO authentication with centralized model management.
6
+ *
7
+ * Auto-registers on import via registerProvider().
8
+ */
9
+ import { registerProvider } from '../../core/decorators.js';
10
+ export const SSOTemplate = registerProvider({
11
+ name: 'ai-run-sso',
12
+ displayName: 'CodeMie SSO',
13
+ description: 'Enterprise SSO Authentication with centralized model management',
14
+ defaultBaseUrl: 'https://codemie.lab.epam.com', // Default CodeMie URL
15
+ requiresAuth: true,
16
+ authType: 'sso',
17
+ priority: 0, // Highest priority (shown first)
18
+ defaultProfileName: 'codemie-sso',
19
+ recommendedModels: [
20
+ 'claude-4-5-sonnet',
21
+ ],
22
+ capabilities: ['streaming', 'tools', 'sso-auth', 'function-calling', 'embeddings'],
23
+ supportsModelInstallation: false,
24
+ supportsStreaming: true,
25
+ envMapping: {
26
+ baseUrl: ['OPENAI_BASE_URL', 'ANTHROPIC_BASE_URL', 'GOOGLE_GEMINI_BASE_URL'],
27
+ apiKey: ['OPENAI_API_KEY', 'ANTHROPIC_AUTH_TOKEN', 'GEMINI_API_KEY'],
28
+ model: ['OPENAI_MODEL', 'ANTHROPIC_MODEL', 'GEMINI_MODEL']
29
+ },
30
+ customProperties: {
31
+ requiresIntegration: true,
32
+ sessionDuration: 86400000 // 24 hours
33
+ }
34
+ });
35
+ //# sourceMappingURL=sso.template.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sso.template.js","sourceRoot":"","sources":["../../../../src/providers/plugins/sso/sso.template.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAE5D,MAAM,CAAC,MAAM,WAAW,GAAG,gBAAgB,CAAmB;IAC5D,IAAI,EAAE,YAAY;IAClB,WAAW,EAAE,aAAa;IAC1B,WAAW,EAAE,iEAAiE;IAC9E,cAAc,EAAE,8BAA8B,EAAE,sBAAsB;IACtE,YAAY,EAAE,IAAI;IAClB,QAAQ,EAAE,KAAK;IACf,QAAQ,EAAE,CAAC,EAAE,iCAAiC;IAC9C,kBAAkB,EAAE,aAAa;IACjC,iBAAiB,EAAE;QACjB,mBAAmB;KACpB;IACD,YAAY,EAAE,CAAC,WAAW,EAAE,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,YAAY,CAAC;IAClF,yBAAyB,EAAE,KAAK;IAChC,iBAAiB,EAAE,IAAI;IACvB,UAAU,EAAE;QACV,OAAO,EAAE,CAAC,iBAAiB,EAAE,oBAAoB,EAAE,wBAAwB,CAAC;QAC5E,MAAM,EAAE,CAAC,gBAAgB,EAAE,sBAAsB,EAAE,gBAAgB,CAAC;QACpE,KAAK,EAAE,CAAC,cAAc,EAAE,iBAAiB,EAAE,cAAc,CAAC;KAC3D;IACD,gBAAgB,EAAE;QAChB,mBAAmB,EAAE,IAAI;QACzB,eAAe,EAAE,QAAQ,CAAC,WAAW;KACtC;CACF,CAAC,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/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;CASlC;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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/proxy/errors.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http-client.d.ts","sourceRoot":"","sources":["../../src/proxy/http-client.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,IAAI,MAAM,MAAM,CAAC;AAIxB,MAAM,WAAW,iBAAiB;IAChC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,UAAU,CAAc;IAChC,OAAO,CAAC,SAAS,CAAa;IAC9B,OAAO,CAAC,OAAO,CAAS;gBAEZ,OAAO,GAAE,iBAAsB;IAmB3C;;;OAGG;IACG,OAAO,CACX,GAAG,EAAE,GAAG,EACR,OAAO,EAAE,qBAAqB,GAC7B,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC;IAgEhC;;;OAGG;IACG,YAAY,CAChB,QAAQ,EAAE,IAAI,CAAC,eAAe,EAC9B,UAAU,EAAE,IAAI,CAAC,cAAc,EAC/B,WAAW,GAAE,MAAM,EAAwC,GAC1D,OAAO,CAAC,IAAI,CAAC;IAsBhB;;;;OAIG;IACG,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC;IAUvE;;OAEG;IACH,KAAK,IAAI,IAAI;CAId"}
@@ -8,7 +8,7 @@ import { pipeline } from 'stream/promises';
8
8
  import https from 'https';
9
9
  import http from 'http';
10
10
  import { TimeoutError, NetworkError } from './errors.js';
11
- import { logger } from '../logger.js';
11
+ import { logger } from '../utils/logger.js';
12
12
  /**
13
13
  * Simple streaming HTTP client for proxy forwarding
14
14
  */
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http-client.js","sourceRoot":"","sources":["../../src/proxy/http-client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"header-injection.plugin.d.ts","sourceRoot":"","sources":["../../../src/proxy/plugins/header-injection.plugin.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAK1E,qBAAa,qBAAsB,YAAW,WAAW;IACvD,EAAE,SAA4B;IAC9B,IAAI,SAAsB;IAC1B,OAAO,SAAW;IAClB,QAAQ,SAAM;IAER,iBAAiB,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,gBAAgB,CAAC;CAG3E"}
@@ -5,7 +5,8 @@
5
5
  * SOLID: Single responsibility = inject CodeMie headers
6
6
  * KISS: Straightforward header injection
7
7
  */
8
- import { logger } from '../../logger.js';
8
+ import { ProviderRegistry } from '../../providers/core/registry.js';
9
+ import { logger } from '../../utils/logger.js';
9
10
  export class HeaderInjectionPlugin {
10
11
  id = '@codemie/proxy-headers';
11
12
  name = 'Header Injection';
@@ -26,8 +27,11 @@ class HeaderInjectionInterceptor {
26
27
  context.headers['X-CodeMie-Request-ID'] = context.requestId;
27
28
  context.headers['X-CodeMie-Session-ID'] = context.sessionId;
28
29
  const config = this.context.config;
29
- // Add integration header only for ai-run-sso provider
30
- if (config.provider === 'ai-run-sso' && config.integrationId) {
30
+ // Check if provider requires integration header
31
+ const provider = ProviderRegistry.getProvider(config.provider || '');
32
+ const requiresIntegration = provider?.customProperties?.requiresIntegration === true;
33
+ // Add integration header for providers that require it
34
+ if (requiresIntegration && config.integrationId) {
31
35
  context.headers['X-CodeMie-Integration'] = config.integrationId;
32
36
  }
33
37
  // Add model header if configured (for all providers)
@@ -0,0 +1 @@
1
+ {"version":3,"file":"header-injection.plugin.js","sourceRoot":"","sources":["../../../src/proxy/plugins/header-injection.plugin.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACpE,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAE/C,MAAM,OAAO,qBAAqB;IAChC,EAAE,GAAG,wBAAwB,CAAC;IAC9B,IAAI,GAAG,kBAAkB,CAAC;IAC1B,OAAO,GAAG,OAAO,CAAC;IAClB,QAAQ,GAAG,EAAE,CAAC;IAEd,KAAK,CAAC,iBAAiB,CAAC,OAAsB;QAC5C,OAAO,IAAI,0BAA0B,CAAC,OAAO,CAAC,CAAC;IACjD,CAAC;CACF;AAED,MAAM,0BAA0B;IAGV;IAFpB,IAAI,GAAG,kBAAkB,CAAC;IAE1B,YAAoB,OAAsB;QAAtB,YAAO,GAAP,OAAO,CAAe;IAAG,CAAC;IAE9C,KAAK,CAAC,SAAS,CAAC,OAAqB;QACnC,iCAAiC;QACjC,OAAO,CAAC,OAAO,CAAC,sBAAsB,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC;QAC5D,OAAO,CAAC,OAAO,CAAC,sBAAsB,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC;QAE5D,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;QAEnC,gDAAgD;QAChD,MAAM,QAAQ,GAAG,gBAAgB,CAAC,WAAW,CAAC,MAAM,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC;QACrE,MAAM,mBAAmB,GAAG,QAAQ,EAAE,gBAAgB,EAAE,mBAAmB,KAAK,IAAI,CAAC;QAErF,uDAAuD;QACvD,IAAI,mBAAmB,IAAI,MAAM,CAAC,aAAa,EAAE,CAAC;YAChD,OAAO,CAAC,OAAO,CAAC,uBAAuB,CAAC,GAAG,MAAM,CAAC,aAAa,CAAC;QAClE,CAAC;QAED,qDAAqD;QACrD,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;YACjB,OAAO,CAAC,OAAO,CAAC,qBAAqB,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC;QACxD,CAAC;QAED,uDAAuD;QACvD,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACnB,OAAO,CAAC,OAAO,CAAC,uBAAuB,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACpE,CAAC;QAED,yBAAyB;QACzB,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;YACtB,OAAO,CAAC,OAAO,CAAC,kBAAkB,CAAC,GAAG,MAAM,CAAC,UAAU,CAAC;QAC1D,CAAC;QAED,MAAM,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,4BAA4B,CAAC,CAAC;IAC1D,CAAC;CACF"}
@@ -6,13 +6,13 @@
6
6
  */
7
7
  import { SSOAuthPlugin } from './sso-auth.plugin.js';
8
8
  import { HeaderInjectionPlugin } from './header-injection.plugin.js';
9
- import { AnalyticsPlugin } from './analytics.plugin.js';
9
+ import { LoggingPlugin } from './logging.plugin.js';
10
10
  /**
11
11
  * Register core plugins
12
12
  * Called at app startup
13
13
  */
14
14
  export declare function registerCorePlugins(): void;
15
- export { SSOAuthPlugin, HeaderInjectionPlugin, AnalyticsPlugin };
15
+ export { SSOAuthPlugin, HeaderInjectionPlugin, LoggingPlugin };
16
16
  export { getPluginRegistry, resetPluginRegistry } from './registry.js';
17
17
  export * from './types.js';
18
18
  //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/proxy/plugins/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD;;;GAGG;AACH,wBAAgB,mBAAmB,IAAI,IAAI,CAO1C;AAMD,OAAO,EAAE,aAAa,EAAE,qBAAqB,EAAE,aAAa,EAAE,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACvE,cAAc,YAAY,CAAC"}
@@ -7,7 +7,7 @@
7
7
  import { getPluginRegistry } from './registry.js';
8
8
  import { SSOAuthPlugin } from './sso-auth.plugin.js';
9
9
  import { HeaderInjectionPlugin } from './header-injection.plugin.js';
10
- import { AnalyticsPlugin } from './analytics.plugin.js';
10
+ import { LoggingPlugin } from './logging.plugin.js';
11
11
  /**
12
12
  * Register core plugins
13
13
  * Called at app startup
@@ -17,14 +17,12 @@ export function registerCorePlugins() {
17
17
  // Register in any order (priority determines execution order)
18
18
  registry.register(new SSOAuthPlugin());
19
19
  registry.register(new HeaderInjectionPlugin());
20
- registry.register(new AnalyticsPlugin(), {
21
- enabled: false // Disabled by default (enabled in proxy start() if analytics is enabled)
22
- });
20
+ registry.register(new LoggingPlugin()); // Always enabled - logs to log files at INFO level
23
21
  }
24
22
  // Auto-register on import
25
23
  registerCorePlugins();
26
24
  // Re-export for convenience
27
- export { SSOAuthPlugin, HeaderInjectionPlugin, AnalyticsPlugin };
25
+ export { SSOAuthPlugin, HeaderInjectionPlugin, LoggingPlugin };
28
26
  export { getPluginRegistry, resetPluginRegistry } from './registry.js';
29
27
  export * from './types.js';
30
28
  //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/proxy/plugins/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD;;;GAGG;AACH,MAAM,UAAU,mBAAmB;IACjC,MAAM,QAAQ,GAAG,iBAAiB,EAAE,CAAC;IAErC,8DAA8D;IAC9D,QAAQ,CAAC,QAAQ,CAAC,IAAI,aAAa,EAAE,CAAC,CAAC;IACvC,QAAQ,CAAC,QAAQ,CAAC,IAAI,qBAAqB,EAAE,CAAC,CAAC;IAC/C,QAAQ,CAAC,QAAQ,CAAC,IAAI,aAAa,EAAE,CAAC,CAAC,CAAC,mDAAmD;AAC7F,CAAC;AAED,0BAA0B;AAC1B,mBAAmB,EAAE,CAAC;AAEtB,4BAA4B;AAC5B,OAAO,EAAE,aAAa,EAAE,qBAAqB,EAAE,aAAa,EAAE,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACvE,cAAc,YAAY,CAAC"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Logging Plugin - Request/Response Logging to Log Files
3
+ * Priority: 50 (runs before analytics)
4
+ *
5
+ * Purpose: Logs detailed proxy request/response information to log files
6
+ * Separates operational logging from analytics metrics
7
+ *
8
+ * Log Level: INFO (file-only, no console output)
9
+ * Log Location: ~/.codemie/logs/debug-YYYY-MM-DD.log
10
+ *
11
+ * SOLID: Single responsibility = log proxy activity
12
+ * KISS: Simple logging, reuses Logger system
13
+ */
14
+ import { ProxyPlugin, PluginContext, ProxyInterceptor } from './types.js';
15
+ export declare class LoggingPlugin implements ProxyPlugin {
16
+ id: string;
17
+ name: string;
18
+ version: string;
19
+ priority: number;
20
+ createInterceptor(_context: PluginContext): Promise<ProxyInterceptor>;
21
+ }
22
+ //# sourceMappingURL=logging.plugin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logging.plugin.d.ts","sourceRoot":"","sources":["../../../src/proxy/plugins/logging.plugin.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,gBAAgB,EAAoB,MAAM,YAAY,CAAC;AAI5F,qBAAa,aAAc,YAAW,WAAW;IAC/C,EAAE,SAA4B;IAC9B,IAAI,SAAa;IACjB,OAAO,SAAW;IAClB,QAAQ,SAAM;IAER,iBAAiB,CAAC,QAAQ,EAAE,aAAa,GAAG,OAAO,CAAC,gBAAgB,CAAC;CAG5E"}
@@ -0,0 +1,92 @@
1
+ /**
2
+ * Logging Plugin - Request/Response Logging to Log Files
3
+ * Priority: 50 (runs before analytics)
4
+ *
5
+ * Purpose: Logs detailed proxy request/response information to log files
6
+ * Separates operational logging from analytics metrics
7
+ *
8
+ * Log Level: INFO (file-only, no console output)
9
+ * Log Location: ~/.codemie/logs/debug-YYYY-MM-DD.log
10
+ *
11
+ * SOLID: Single responsibility = log proxy activity
12
+ * KISS: Simple logging, reuses Logger system
13
+ */
14
+ import { logger } from '../../utils/logger.js';
15
+ export class LoggingPlugin {
16
+ id = '@codemie/proxy-logging';
17
+ name = 'Logging';
18
+ version = '1.0.0';
19
+ priority = 50; // Run before analytics
20
+ async createInterceptor(_context) {
21
+ return new LoggingInterceptor();
22
+ }
23
+ }
24
+ class LoggingInterceptor {
25
+ name = 'logging';
26
+ async onRequest(context) {
27
+ try {
28
+ logger.info(`[proxy-request] ${context.method} ${context.url}`, {
29
+ requestId: context.requestId,
30
+ sessionId: context.sessionId,
31
+ agent: context.agentName,
32
+ targetUrl: context.targetUrl,
33
+ bodySize: context.requestBody?.length || 0,
34
+ headers: this.sanitizeHeaders(context.headers)
35
+ });
36
+ }
37
+ catch (error) {
38
+ // Don't break proxy flow on logging errors
39
+ logger.error(`[${this.name}] Error logging request:`, error);
40
+ }
41
+ }
42
+ async onResponseComplete(context, metadata) {
43
+ try {
44
+ logger.info(`[proxy-response] ${metadata.statusCode} ${context.url} (${metadata.durationMs}ms)`, {
45
+ requestId: context.requestId,
46
+ statusCode: metadata.statusCode,
47
+ statusMessage: metadata.statusMessage,
48
+ bytesSent: metadata.bytesSent,
49
+ durationMs: metadata.durationMs
50
+ });
51
+ }
52
+ catch (error) {
53
+ // Don't break proxy flow on logging errors
54
+ logger.error(`[${this.name}] Error logging response:`, error);
55
+ }
56
+ }
57
+ async onError(context, error) {
58
+ try {
59
+ logger.info(`[proxy-error] ${error.name}: ${error.message}`, {
60
+ requestId: context.requestId,
61
+ url: context.url,
62
+ errorType: error.name,
63
+ errorStack: error.stack
64
+ });
65
+ }
66
+ catch (logError) {
67
+ // Don't break proxy flow on logging errors
68
+ logger.error(`[${this.name}] Error logging error:`, logError);
69
+ }
70
+ }
71
+ /**
72
+ * Sanitize headers to remove sensitive data
73
+ */
74
+ sanitizeHeaders(headers) {
75
+ const sanitized = {};
76
+ for (const [key, value] of Object.entries(headers)) {
77
+ const lowerKey = key.toLowerCase();
78
+ // Mask sensitive headers
79
+ if (lowerKey.includes('authorization') ||
80
+ lowerKey.includes('api-key') ||
81
+ lowerKey.includes('token') ||
82
+ lowerKey.includes('cookie')) {
83
+ sanitized[key] = '[REDACTED]';
84
+ }
85
+ else {
86
+ sanitized[key] = value;
87
+ }
88
+ }
89
+ return sanitized;
90
+ }
91
+ }
92
+ //# sourceMappingURL=logging.plugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logging.plugin.js","sourceRoot":"","sources":["../../../src/proxy/plugins/logging.plugin.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../src/proxy/plugins/registry.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAGxF;;GAEG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,OAAO,CAAkC;IACjD,OAAO,CAAC,OAAO,CAAmC;IAClD,OAAO,CAAC,YAAY,CAAuC;IAE3D;;OAEG;IACH,QAAQ,CAAC,MAAM,EAAE,WAAW,EAAE,MAAM,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,IAAI;IAanE;;OAEG;IACG,UAAU,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAoBrE;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAiB/B;;OAEG;IACG,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAkBnE;;OAEG;IACH,MAAM,IAAI,WAAW,EAAE;IAIvB;;OAEG;IACH,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS;IAIrD;;OAEG;IACH,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,IAAI;IAOpE;;OAEG;IACH,KAAK,IAAI,IAAI;CAKd;AAKD,wBAAgB,iBAAiB,IAAI,cAAc,CAKlD;AAED,wBAAgB,mBAAmB,IAAI,IAAI,CAE1C"}