@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.
- package/README.md +24 -9
- package/dist/agents/codemie-code/agent.js +2 -2
- package/dist/agents/codemie-code/agent.js.map +1 -1
- package/dist/agents/codemie-code/config.d.ts.map +1 -1
- package/dist/agents/codemie-code/config.js +12 -4
- package/dist/agents/codemie-code/config.js.map +1 -1
- package/dist/agents/codemie-code/tools/planning.d.ts +1 -1
- package/dist/agents/core/AgentCLI.d.ts.map +1 -1
- package/dist/agents/core/AgentCLI.js +5 -4
- package/dist/agents/core/AgentCLI.js.map +1 -1
- package/dist/agents/core/BaseAgentAdapter.d.ts +1 -5
- package/dist/agents/core/BaseAgentAdapter.d.ts.map +1 -1
- package/dist/agents/core/BaseAgentAdapter.js +5 -26
- package/dist/agents/core/BaseAgentAdapter.js.map +1 -1
- package/dist/agents/plugins/claude.plugin.js +1 -1
- package/dist/agents/plugins/claude.plugin.js.map +1 -1
- package/dist/agents/plugins/codemie-code.plugin.js +1 -1
- package/dist/agents/plugins/codemie-code.plugin.js.map +1 -1
- package/dist/agents/plugins/codex.plugin.js +2 -2
- package/dist/agents/plugins/codex.plugin.js.map +1 -1
- package/dist/agents/plugins/deepagents.plugin.js +1 -1
- package/dist/agents/plugins/deepagents.plugin.js.map +1 -1
- package/dist/agents/plugins/gemini.plugin.js +1 -1
- package/dist/agents/plugins/gemini.plugin.js.map +1 -1
- package/dist/analytics/index.d.ts.map +1 -1
- package/dist/analytics/index.js +3 -11
- package/dist/analytics/index.js.map +1 -1
- package/dist/analytics/remote-submission/cursor-manager.d.ts +1 -1
- package/dist/analytics/remote-submission/cursor-manager.js +2 -2
- package/dist/analytics/remote-submission/cursor-manager.js.map +1 -1
- package/dist/analytics/remote-submission/index.d.ts +2 -2
- package/dist/analytics/remote-submission/index.d.ts.map +1 -1
- package/dist/analytics/remote-submission/index.js +1 -1
- package/dist/analytics/remote-submission/index.js.map +1 -1
- package/dist/analytics/remote-submission/lock-manager.d.ts +1 -1
- package/dist/analytics/remote-submission/lock-manager.js +2 -2
- package/dist/analytics/remote-submission/lock-manager.js.map +1 -1
- package/dist/analytics/remote-submission/metric-transformer.d.ts +2 -30
- package/dist/analytics/remote-submission/metric-transformer.d.ts.map +1 -1
- package/dist/analytics/remote-submission/metric-transformer.js +24 -117
- package/dist/analytics/remote-submission/metric-transformer.js.map +1 -1
- package/dist/analytics/remote-submission/submitter.d.ts +1 -0
- package/dist/analytics/remote-submission/submitter.d.ts.map +1 -1
- package/dist/analytics/remote-submission/submitter.js +18 -37
- package/dist/analytics/remote-submission/submitter.js.map +1 -1
- package/dist/analytics/remote-submission/types.d.ts +5 -51
- package/dist/analytics/remote-submission/types.d.ts.map +1 -1
- package/dist/analytics/remote-submission/types.js.map +1 -1
- package/dist/cli/commands/auth.d.ts.map +1 -1
- package/dist/cli/commands/auth.js +10 -5
- package/dist/cli/commands/auth.js.map +1 -1
- package/dist/cli/commands/doctor/checks/AIConfigCheck.d.ts.map +1 -1
- package/dist/cli/commands/doctor/checks/AIConfigCheck.js +12 -5
- package/dist/cli/commands/doctor/checks/AIConfigCheck.js.map +1 -1
- package/dist/cli/commands/doctor/formatter.d.ts +1 -1
- package/dist/cli/commands/doctor/formatter.d.ts.map +1 -1
- package/dist/cli/commands/doctor/formatter.js +1 -6
- package/dist/cli/commands/doctor/formatter.js.map +1 -1
- package/dist/cli/commands/doctor/index.d.ts.map +1 -1
- package/dist/cli/commands/doctor/index.js +23 -8
- package/dist/cli/commands/doctor/index.js.map +1 -1
- package/dist/cli/commands/doctor/type-adapters.d.ts +18 -0
- package/dist/cli/commands/doctor/type-adapters.d.ts.map +1 -0
- package/dist/cli/commands/doctor/type-adapters.js +75 -0
- package/dist/cli/commands/doctor/type-adapters.js.map +1 -0
- package/dist/cli/commands/install.d.ts.map +1 -1
- package/dist/cli/commands/install.js +1 -6
- package/dist/cli/commands/install.js.map +1 -1
- package/dist/cli/commands/list.d.ts.map +1 -1
- package/dist/cli/commands/list.js +0 -5
- package/dist/cli/commands/list.js.map +1 -1
- package/dist/cli/commands/profile.js +90 -12
- package/dist/cli/commands/profile.js.map +1 -1
- package/dist/cli/commands/setup.d.ts.map +1 -1
- package/dist/cli/commands/setup.js +159 -660
- package/dist/cli/commands/setup.js.map +1 -1
- package/dist/cli/index.d.ts +1 -1
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +4 -1
- package/dist/cli/index.js.map +1 -1
- package/dist/providers/core/base/BaseHealthCheck.d.ts +57 -0
- package/dist/providers/core/base/BaseHealthCheck.d.ts.map +1 -0
- package/dist/providers/core/base/BaseHealthCheck.js +121 -0
- package/dist/providers/core/base/BaseHealthCheck.js.map +1 -0
- package/dist/providers/core/base/BaseModelProxy.d.ts +45 -0
- package/dist/providers/core/base/BaseModelProxy.d.ts.map +1 -0
- package/dist/providers/core/base/BaseModelProxy.js +43 -0
- package/dist/providers/core/base/BaseModelProxy.js.map +1 -0
- package/dist/providers/core/base/http-client.d.ts +57 -0
- package/dist/providers/core/base/http-client.d.ts.map +1 -0
- package/dist/providers/core/base/http-client.js +240 -0
- package/dist/providers/core/base/http-client.js.map +1 -0
- package/dist/providers/core/decorators.d.ts +13 -0
- package/dist/providers/core/decorators.d.ts.map +1 -0
- package/dist/providers/core/decorators.js +15 -0
- package/dist/providers/core/decorators.js.map +1 -0
- package/dist/providers/core/index.d.ts +13 -0
- package/dist/providers/core/index.d.ts.map +1 -0
- package/dist/providers/core/index.js +14 -0
- package/dist/providers/core/index.js.map +1 -0
- package/dist/providers/core/registry.d.ts +66 -0
- package/dist/providers/core/registry.d.ts.map +1 -0
- package/dist/providers/core/registry.js +105 -0
- package/dist/providers/core/registry.js.map +1 -0
- package/dist/providers/core/types.d.ts +285 -0
- package/dist/providers/core/types.d.ts.map +1 -0
- package/dist/providers/core/types.js +7 -0
- package/dist/providers/core/types.js.map +1 -0
- package/dist/providers/index.d.ts +20 -0
- package/dist/providers/index.d.ts.map +1 -0
- package/dist/providers/index.js +22 -0
- package/dist/providers/index.js.map +1 -0
- package/dist/providers/integration/setup-ui.d.ts +76 -0
- package/dist/providers/integration/setup-ui.d.ts.map +1 -0
- package/dist/providers/integration/setup-ui.js +141 -0
- package/dist/providers/integration/setup-ui.js.map +1 -0
- package/dist/providers/plugins/litellm/index.d.ts +8 -0
- package/dist/providers/plugins/litellm/index.d.ts.map +1 -0
- package/dist/providers/plugins/litellm/index.js +12 -0
- package/dist/providers/plugins/litellm/index.js.map +1 -0
- package/dist/providers/plugins/litellm/litellm.models.d.ts +27 -0
- package/dist/providers/plugins/litellm/litellm.models.d.ts.map +1 -0
- package/dist/providers/plugins/litellm/litellm.models.js +48 -0
- package/dist/providers/plugins/litellm/litellm.models.js.map +1 -0
- package/dist/providers/plugins/litellm/litellm.setup-steps.d.ts +8 -0
- package/dist/providers/plugins/litellm/litellm.setup-steps.d.ts.map +1 -0
- package/dist/providers/plugins/litellm/litellm.setup-steps.js +52 -0
- package/dist/providers/plugins/litellm/litellm.setup-steps.js.map +1 -0
- package/dist/providers/plugins/litellm/litellm.template.d.ts +11 -0
- package/dist/providers/plugins/litellm/litellm.template.d.ts.map +1 -0
- package/dist/providers/plugins/litellm/litellm.template.js +59 -0
- package/dist/providers/plugins/litellm/litellm.template.js.map +1 -0
- package/dist/providers/plugins/ollama/index.d.ts +11 -0
- package/dist/providers/plugins/ollama/index.d.ts.map +1 -0
- package/dist/providers/plugins/ollama/index.js +11 -0
- package/dist/providers/plugins/ollama/index.js.map +1 -0
- package/dist/providers/plugins/ollama/ollama.health.d.ts +48 -0
- package/dist/providers/plugins/ollama/ollama.health.d.ts.map +1 -0
- package/dist/providers/plugins/ollama/ollama.health.js +87 -0
- package/dist/providers/plugins/ollama/ollama.health.js.map +1 -0
- package/dist/providers/plugins/ollama/ollama.models.d.ts +47 -0
- package/dist/providers/plugins/ollama/ollama.models.d.ts.map +1 -0
- package/dist/providers/plugins/ollama/ollama.models.js +252 -0
- package/dist/providers/plugins/ollama/ollama.models.js.map +1 -0
- package/dist/providers/plugins/ollama/ollama.setup-steps.d.ts +16 -0
- package/dist/providers/plugins/ollama/ollama.setup-steps.d.ts.map +1 -0
- package/dist/providers/plugins/ollama/ollama.setup-steps.js +164 -0
- package/dist/providers/plugins/ollama/ollama.setup-steps.js.map +1 -0
- package/dist/providers/plugins/ollama/ollama.template.d.ts +11 -0
- package/dist/providers/plugins/ollama/ollama.template.d.ts.map +1 -0
- package/dist/providers/plugins/ollama/ollama.template.js +87 -0
- package/dist/providers/plugins/ollama/ollama.template.js.map +1 -0
- package/dist/providers/plugins/sso/index.d.ts +12 -0
- package/dist/providers/plugins/sso/index.d.ts.map +1 -0
- package/dist/providers/plugins/sso/index.js +12 -0
- package/dist/providers/plugins/sso/index.js.map +1 -0
- package/dist/providers/plugins/sso/sso.auth.d.ts +50 -0
- package/dist/providers/plugins/sso/sso.auth.d.ts.map +1 -0
- package/dist/{utils/sso-auth.js → providers/plugins/sso/sso.auth.js} +37 -2
- package/dist/providers/plugins/sso/sso.auth.js.map +1 -0
- package/dist/providers/plugins/sso/sso.health.d.ts +44 -0
- package/dist/providers/plugins/sso/sso.health.d.ts.map +1 -0
- package/dist/providers/plugins/sso/sso.health.js +178 -0
- package/dist/providers/plugins/sso/sso.health.js.map +1 -0
- package/dist/{utils/codemie-model-fetcher.d.ts → providers/plugins/sso/sso.http-client.d.ts} +16 -5
- package/dist/providers/plugins/sso/sso.http-client.d.ts.map +1 -0
- package/dist/providers/plugins/sso/sso.http-client.js +187 -0
- package/dist/providers/plugins/sso/sso.http-client.js.map +1 -0
- package/dist/providers/plugins/sso/sso.models.d.ts +48 -0
- package/dist/providers/plugins/sso/sso.models.d.ts.map +1 -0
- package/dist/providers/plugins/sso/sso.models.js +139 -0
- package/dist/providers/plugins/sso/sso.models.js.map +1 -0
- package/dist/providers/plugins/sso/sso.setup-steps.d.ts +16 -0
- package/dist/providers/plugins/sso/sso.setup-steps.d.ts.map +1 -0
- package/dist/providers/plugins/sso/sso.setup-steps.js +145 -0
- package/dist/providers/plugins/sso/sso.setup-steps.js.map +1 -0
- package/dist/providers/plugins/sso/sso.template.d.ts +11 -0
- package/dist/providers/plugins/sso/sso.template.d.ts.map +1 -0
- package/dist/providers/plugins/sso/sso.template.js +35 -0
- package/dist/providers/plugins/sso/sso.template.js.map +1 -0
- package/dist/proxy/errors.d.ts.map +1 -0
- package/dist/proxy/errors.js.map +1 -0
- package/dist/proxy/http-client.d.ts.map +1 -0
- package/dist/{utils/proxy → proxy}/http-client.js +1 -1
- package/dist/proxy/http-client.js.map +1 -0
- package/dist/proxy/plugins/header-injection.plugin.d.ts.map +1 -0
- package/dist/{utils/proxy → proxy}/plugins/header-injection.plugin.js +7 -3
- package/dist/proxy/plugins/header-injection.plugin.js.map +1 -0
- package/dist/{utils/proxy → proxy}/plugins/index.d.ts +2 -2
- package/dist/proxy/plugins/index.d.ts.map +1 -0
- package/dist/{utils/proxy → proxy}/plugins/index.js +3 -5
- package/dist/proxy/plugins/index.js.map +1 -0
- package/dist/proxy/plugins/logging.plugin.d.ts +22 -0
- package/dist/proxy/plugins/logging.plugin.d.ts.map +1 -0
- package/dist/proxy/plugins/logging.plugin.js +92 -0
- package/dist/proxy/plugins/logging.plugin.js.map +1 -0
- package/dist/proxy/plugins/registry.d.ts.map +1 -0
- package/dist/{utils/proxy → proxy}/plugins/registry.js +1 -1
- package/dist/proxy/plugins/registry.js.map +1 -0
- package/dist/proxy/plugins/sso-auth.plugin.d.ts.map +1 -0
- package/dist/{utils/proxy → proxy}/plugins/sso-auth.plugin.js +1 -1
- package/dist/proxy/plugins/sso-auth.plugin.js.map +1 -0
- package/dist/{utils/proxy → proxy}/plugins/types.d.ts +3 -3
- package/dist/proxy/plugins/types.d.ts.map +1 -0
- package/dist/proxy/plugins/types.js.map +1 -0
- package/dist/proxy/types.d.ts.map +1 -0
- package/dist/proxy/types.js.map +1 -0
- package/dist/utils/codemie-proxy.d.ts +5 -4
- package/dist/utils/codemie-proxy.d.ts.map +1 -1
- package/dist/utils/codemie-proxy.js +31 -26
- package/dist/utils/codemie-proxy.js.map +1 -1
- package/dist/utils/config-loader.d.ts +1 -6
- package/dist/utils/config-loader.d.ts.map +1 -1
- package/dist/utils/config-loader.js +30 -90
- package/dist/utils/config-loader.js.map +1 -1
- package/dist/utils/credential-store.d.ts +1 -1
- package/dist/utils/credential-store.d.ts.map +1 -1
- package/dist/utils/logger.d.ts.map +1 -1
- package/dist/utils/logger.js +0 -2
- package/dist/utils/logger.js.map +1 -1
- package/package.json +1 -1
- package/dist/cli/commands/doctor/providers/AIRunSSOProviderCheck.d.ts +0 -11
- package/dist/cli/commands/doctor/providers/AIRunSSOProviderCheck.d.ts.map +0 -1
- package/dist/cli/commands/doctor/providers/AIRunSSOProviderCheck.js +0 -264
- package/dist/cli/commands/doctor/providers/AIRunSSOProviderCheck.js.map +0 -1
- package/dist/cli/commands/doctor/providers/BaseProviderCheck.d.ts +0 -12
- package/dist/cli/commands/doctor/providers/BaseProviderCheck.d.ts.map +0 -1
- package/dist/cli/commands/doctor/providers/BaseProviderCheck.js +0 -12
- package/dist/cli/commands/doctor/providers/BaseProviderCheck.js.map +0 -1
- package/dist/cli/commands/doctor/providers/StandardProviderCheck.d.ts +0 -11
- package/dist/cli/commands/doctor/providers/StandardProviderCheck.d.ts.map +0 -1
- package/dist/cli/commands/doctor/providers/StandardProviderCheck.js +0 -97
- package/dist/cli/commands/doctor/providers/StandardProviderCheck.js.map +0 -1
- package/dist/cli/commands/doctor/providers/index.d.ts +0 -30
- package/dist/cli/commands/doctor/providers/index.d.ts.map +0 -1
- package/dist/cli/commands/doctor/providers/index.js +0 -66
- package/dist/cli/commands/doctor/providers/index.js.map +0 -1
- package/dist/types/sso.d.ts +0 -42
- package/dist/types/sso.d.ts.map +0 -1
- package/dist/types/sso.js +0 -2
- package/dist/types/sso.js.map +0 -1
- package/dist/utils/async-tips.d.ts +0 -64
- package/dist/utils/async-tips.d.ts.map +0 -1
- package/dist/utils/async-tips.js +0 -203
- package/dist/utils/async-tips.js.map +0 -1
- package/dist/utils/codemie-integration-validator.d.ts +0 -18
- package/dist/utils/codemie-integration-validator.d.ts.map +0 -1
- package/dist/utils/codemie-integration-validator.js +0 -119
- package/dist/utils/codemie-integration-validator.js.map +0 -1
- package/dist/utils/codemie-model-fetcher.d.ts.map +0 -1
- package/dist/utils/codemie-model-fetcher.js +0 -317
- package/dist/utils/codemie-model-fetcher.js.map +0 -1
- package/dist/utils/health-checker.d.ts +0 -20
- package/dist/utils/health-checker.d.ts.map +0 -1
- package/dist/utils/health-checker.js +0 -172
- package/dist/utils/health-checker.js.map +0 -1
- package/dist/utils/model-fetcher.d.ts +0 -21
- package/dist/utils/model-fetcher.d.ts.map +0 -1
- package/dist/utils/model-fetcher.js +0 -148
- package/dist/utils/model-fetcher.js.map +0 -1
- package/dist/utils/proxy/errors.d.ts.map +0 -1
- package/dist/utils/proxy/errors.js.map +0 -1
- package/dist/utils/proxy/http-client.d.ts.map +0 -1
- package/dist/utils/proxy/http-client.js.map +0 -1
- package/dist/utils/proxy/plugins/analytics.plugin.d.ts +0 -19
- package/dist/utils/proxy/plugins/analytics.plugin.d.ts.map +0 -1
- package/dist/utils/proxy/plugins/analytics.plugin.js +0 -84
- package/dist/utils/proxy/plugins/analytics.plugin.js.map +0 -1
- package/dist/utils/proxy/plugins/header-injection.plugin.d.ts.map +0 -1
- package/dist/utils/proxy/plugins/header-injection.plugin.js.map +0 -1
- package/dist/utils/proxy/plugins/index.d.ts.map +0 -1
- package/dist/utils/proxy/plugins/index.js.map +0 -1
- package/dist/utils/proxy/plugins/registry.d.ts.map +0 -1
- package/dist/utils/proxy/plugins/registry.js.map +0 -1
- package/dist/utils/proxy/plugins/sso-auth.plugin.d.ts.map +0 -1
- package/dist/utils/proxy/plugins/sso-auth.plugin.js.map +0 -1
- package/dist/utils/proxy/plugins/types.d.ts.map +0 -1
- package/dist/utils/proxy/plugins/types.js.map +0 -1
- package/dist/utils/proxy/types.d.ts.map +0 -1
- package/dist/utils/proxy/types.js.map +0 -1
- package/dist/utils/sso-auth.d.ts +0 -15
- package/dist/utils/sso-auth.d.ts.map +0 -1
- package/dist/utils/sso-auth.js.map +0 -1
- package/dist/utils/tips.d.ts +0 -35
- package/dist/utils/tips.d.ts.map +0 -1
- package/dist/utils/tips.js +0 -93
- package/dist/utils/tips.js.map +0 -1
- /package/dist/{utils/proxy → proxy}/errors.d.ts +0 -0
- /package/dist/{utils/proxy → proxy}/errors.js +0 -0
- /package/dist/{utils/proxy → proxy}/http-client.d.ts +0 -0
- /package/dist/{utils/proxy → proxy}/plugins/header-injection.plugin.d.ts +0 -0
- /package/dist/{utils/proxy → proxy}/plugins/registry.d.ts +0 -0
- /package/dist/{utils/proxy → proxy}/plugins/sso-auth.plugin.d.ts +0 -0
- /package/dist/{utils/proxy → proxy}/plugins/types.js +0 -0
- /package/dist/{utils/proxy → proxy}/types.d.ts +0 -0
- /package/dist/{utils/proxy → proxy}/types.js +0 -0
|
@@ -1,12 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SSO Authentication Module
|
|
3
|
+
*
|
|
4
|
+
* Handles browser-based SSO authentication for CodeMie provider.
|
|
5
|
+
* Manages credential storage and session lifecycle.
|
|
6
|
+
*/
|
|
1
7
|
import { createServer } from 'http';
|
|
2
8
|
import { URL } from 'url';
|
|
3
9
|
import open from 'open';
|
|
4
10
|
import chalk from 'chalk';
|
|
5
|
-
import { CredentialStore } from '
|
|
11
|
+
import { CredentialStore } from '../../../utils/credential-store.js';
|
|
12
|
+
/**
|
|
13
|
+
* CodeMie SSO Authentication
|
|
14
|
+
*
|
|
15
|
+
* Provides browser-based SSO authentication for CodeMie provider
|
|
16
|
+
*/
|
|
6
17
|
export class CodeMieSSO {
|
|
7
18
|
server;
|
|
8
19
|
callbackResult;
|
|
9
20
|
codeMieUrl;
|
|
21
|
+
/**
|
|
22
|
+
* Authenticate via browser SSO
|
|
23
|
+
*/
|
|
10
24
|
async authenticate(config) {
|
|
11
25
|
this.codeMieUrl = config.codeMieUrl;
|
|
12
26
|
try {
|
|
@@ -42,6 +56,9 @@ export class CodeMieSSO {
|
|
|
42
56
|
this.cleanup();
|
|
43
57
|
}
|
|
44
58
|
}
|
|
59
|
+
/**
|
|
60
|
+
* Get stored SSO credentials
|
|
61
|
+
*/
|
|
45
62
|
async getStoredCredentials() {
|
|
46
63
|
const store = CredentialStore.getInstance();
|
|
47
64
|
const credentials = await store.retrieveSSOCredentials();
|
|
@@ -52,10 +69,16 @@ export class CodeMieSSO {
|
|
|
52
69
|
}
|
|
53
70
|
return credentials;
|
|
54
71
|
}
|
|
72
|
+
/**
|
|
73
|
+
* Clear stored credentials
|
|
74
|
+
*/
|
|
55
75
|
async clearStoredCredentials() {
|
|
56
76
|
const store = CredentialStore.getInstance();
|
|
57
77
|
await store.clearSSOCredentials();
|
|
58
78
|
}
|
|
79
|
+
/**
|
|
80
|
+
* Ensure API base URL has correct format
|
|
81
|
+
*/
|
|
59
82
|
ensureApiBase(rawUrl) {
|
|
60
83
|
let base = rawUrl.replace(/\/$/, '');
|
|
61
84
|
// If user entered only host, append the known API context
|
|
@@ -64,6 +87,9 @@ export class CodeMieSSO {
|
|
|
64
87
|
}
|
|
65
88
|
return base;
|
|
66
89
|
}
|
|
90
|
+
/**
|
|
91
|
+
* Start local HTTP server for OAuth callback
|
|
92
|
+
*/
|
|
67
93
|
startLocalServer() {
|
|
68
94
|
return new Promise((resolve, reject) => {
|
|
69
95
|
let serverPort;
|
|
@@ -141,6 +167,9 @@ export class CodeMieSSO {
|
|
|
141
167
|
this.server.on('error', reject);
|
|
142
168
|
});
|
|
143
169
|
}
|
|
170
|
+
/**
|
|
171
|
+
* Handle OAuth callback from browser
|
|
172
|
+
*/
|
|
144
173
|
async handleCallback(url) {
|
|
145
174
|
try {
|
|
146
175
|
const query = url.searchParams;
|
|
@@ -194,6 +223,9 @@ export class CodeMieSSO {
|
|
|
194
223
|
};
|
|
195
224
|
}
|
|
196
225
|
}
|
|
226
|
+
/**
|
|
227
|
+
* Wait for OAuth callback with timeout
|
|
228
|
+
*/
|
|
197
229
|
async waitForCallback(timeout) {
|
|
198
230
|
return new Promise((resolve, reject) => {
|
|
199
231
|
const timer = setTimeout(() => {
|
|
@@ -211,6 +243,9 @@ export class CodeMieSSO {
|
|
|
211
243
|
checkResult();
|
|
212
244
|
});
|
|
213
245
|
}
|
|
246
|
+
/**
|
|
247
|
+
* Cleanup server resources
|
|
248
|
+
*/
|
|
214
249
|
cleanup() {
|
|
215
250
|
if (this.server) {
|
|
216
251
|
this.server.close();
|
|
@@ -218,4 +253,4 @@ export class CodeMieSSO {
|
|
|
218
253
|
}
|
|
219
254
|
}
|
|
220
255
|
}
|
|
221
|
-
//# sourceMappingURL=sso
|
|
256
|
+
//# sourceMappingURL=sso.auth.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sso.auth.js","sourceRoot":"","sources":["../../../../src/providers/plugins/sso/sso.auth.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SSO Health Check Implementation
|
|
3
|
+
*
|
|
4
|
+
* Validates SSO authentication and API connectivity.
|
|
5
|
+
* Checks credentials, expiration, and API access.
|
|
6
|
+
*/
|
|
7
|
+
import type { CodeMieConfigOptions } from '../../../env/types.js';
|
|
8
|
+
import type { HealthCheckResult } from '../../core/types.js';
|
|
9
|
+
import { BaseHealthCheck } from '../../core/base/BaseHealthCheck.js';
|
|
10
|
+
/**
|
|
11
|
+
* Health check implementation for SSO provider
|
|
12
|
+
*/
|
|
13
|
+
export declare class SSOHealthCheck extends BaseHealthCheck {
|
|
14
|
+
private sso;
|
|
15
|
+
private modelProxy;
|
|
16
|
+
constructor();
|
|
17
|
+
/**
|
|
18
|
+
* Main health check flow for SSO
|
|
19
|
+
*
|
|
20
|
+
* Overrides base implementation to provide SSO-specific checks
|
|
21
|
+
*/
|
|
22
|
+
check(config: CodeMieConfigOptions): Promise<HealthCheckResult>;
|
|
23
|
+
/**
|
|
24
|
+
* Ping implementation (not used for SSO, check() handles everything)
|
|
25
|
+
*/
|
|
26
|
+
protected ping(): Promise<void>;
|
|
27
|
+
/**
|
|
28
|
+
* Get version (SSO doesn't have a version endpoint)
|
|
29
|
+
*/
|
|
30
|
+
protected getVersion(): Promise<string | undefined>;
|
|
31
|
+
/**
|
|
32
|
+
* Get unreachable result
|
|
33
|
+
*/
|
|
34
|
+
protected getUnreachableResult(): HealthCheckResult;
|
|
35
|
+
/**
|
|
36
|
+
* Get healthy message
|
|
37
|
+
*/
|
|
38
|
+
protected getHealthyMessage(models: any[]): string;
|
|
39
|
+
/**
|
|
40
|
+
* Get no models remediation
|
|
41
|
+
*/
|
|
42
|
+
protected getNoModelsRemediation(): string;
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=sso.health.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sso.health.d.ts","sourceRoot":"","sources":["../../../../src/providers/plugins/sso/sso.health.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAClE,OAAO,KAAK,EAAE,iBAAiB,EAAqB,MAAM,qBAAqB,CAAC;AAChF,OAAO,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;AAMrE;;GAEG;AACH,qBAAa,cAAe,SAAQ,eAAe;IACjD,OAAO,CAAC,GAAG,CAAa;IACxB,OAAO,CAAC,UAAU,CAAgB;;IAYlC;;;;OAIG;IACG,KAAK,CAAC,MAAM,EAAE,oBAAoB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAqHrE;;OAEG;cACa,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAIrC;;OAEG;cACa,UAAU,IAAI,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAIzD;;OAEG;IACH,SAAS,CAAC,oBAAoB,IAAI,iBAAiB;IASnD;;OAEG;IACH,SAAS,CAAC,iBAAiB,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM;IAMlD;;OAEG;IACH,SAAS,CAAC,sBAAsB,IAAI,MAAM;CAG3C"}
|
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SSO Health Check Implementation
|
|
3
|
+
*
|
|
4
|
+
* Validates SSO authentication and API connectivity.
|
|
5
|
+
* Checks credentials, expiration, and API access.
|
|
6
|
+
*/
|
|
7
|
+
import { BaseHealthCheck } from '../../core/base/BaseHealthCheck.js';
|
|
8
|
+
import { ProviderRegistry } from '../../core/registry.js';
|
|
9
|
+
import { SSOTemplate } from './sso.template.js';
|
|
10
|
+
import { CodeMieSSO } from './sso.auth.js';
|
|
11
|
+
import { SSOModelProxy } from './sso.models.js';
|
|
12
|
+
/**
|
|
13
|
+
* Health check implementation for SSO provider
|
|
14
|
+
*/
|
|
15
|
+
export class SSOHealthCheck extends BaseHealthCheck {
|
|
16
|
+
sso;
|
|
17
|
+
modelProxy;
|
|
18
|
+
constructor() {
|
|
19
|
+
super({
|
|
20
|
+
provider: 'ai-run-sso',
|
|
21
|
+
baseUrl: '',
|
|
22
|
+
timeout: 10000
|
|
23
|
+
});
|
|
24
|
+
this.sso = new CodeMieSSO();
|
|
25
|
+
this.modelProxy = new SSOModelProxy();
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Main health check flow for SSO
|
|
29
|
+
*
|
|
30
|
+
* Overrides base implementation to provide SSO-specific checks
|
|
31
|
+
*/
|
|
32
|
+
async check(config) {
|
|
33
|
+
const details = [];
|
|
34
|
+
// 1. Check CodeMie URL
|
|
35
|
+
if (!config.codeMieUrl) {
|
|
36
|
+
details.push({
|
|
37
|
+
status: 'error',
|
|
38
|
+
message: 'CodeMie URL not configured',
|
|
39
|
+
hint: 'Run: codemie setup'
|
|
40
|
+
});
|
|
41
|
+
return {
|
|
42
|
+
provider: 'ai-run-sso',
|
|
43
|
+
status: 'unhealthy',
|
|
44
|
+
message: 'SSO Configuration incomplete',
|
|
45
|
+
details
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
details.push({
|
|
49
|
+
status: 'ok',
|
|
50
|
+
message: `CodeMie URL: ${config.codeMieUrl}`
|
|
51
|
+
});
|
|
52
|
+
// 2. Check credentials
|
|
53
|
+
const credentials = await this.sso.getStoredCredentials();
|
|
54
|
+
if (!credentials) {
|
|
55
|
+
details.push({
|
|
56
|
+
status: 'error',
|
|
57
|
+
message: 'SSO credentials not found',
|
|
58
|
+
hint: 'Run: codemie auth login'
|
|
59
|
+
});
|
|
60
|
+
return {
|
|
61
|
+
provider: 'ai-run-sso',
|
|
62
|
+
status: 'unhealthy',
|
|
63
|
+
message: 'SSO Authentication required',
|
|
64
|
+
details
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
details.push({
|
|
68
|
+
status: 'ok',
|
|
69
|
+
message: 'SSO credentials stored'
|
|
70
|
+
});
|
|
71
|
+
// 3. Check expiration
|
|
72
|
+
if (credentials.expiresAt && credentials.expiresAt < Date.now()) {
|
|
73
|
+
details.push({
|
|
74
|
+
status: 'error',
|
|
75
|
+
message: 'SSO session expired',
|
|
76
|
+
hint: 'Run: codemie auth login'
|
|
77
|
+
});
|
|
78
|
+
return {
|
|
79
|
+
provider: 'ai-run-sso',
|
|
80
|
+
status: 'unhealthy',
|
|
81
|
+
message: 'SSO Session expired',
|
|
82
|
+
details
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
const expiresInHours = credentials.expiresAt
|
|
86
|
+
? Math.round((credentials.expiresAt - Date.now()) / (1000 * 60 * 60))
|
|
87
|
+
: null;
|
|
88
|
+
if (expiresInHours !== null) {
|
|
89
|
+
details.push({
|
|
90
|
+
status: expiresInHours < 1 ? 'warning' : 'ok',
|
|
91
|
+
message: `Session expires in ${expiresInHours} hour(s)`,
|
|
92
|
+
hint: expiresInHours < 1 ? 'Consider refreshing session: codemie auth login' : undefined
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
// 4. Test API access and validate configured model
|
|
96
|
+
try {
|
|
97
|
+
const models = await this.modelProxy.listModels();
|
|
98
|
+
// Validate configured model is available
|
|
99
|
+
if (config.model) {
|
|
100
|
+
const configuredModel = config.model;
|
|
101
|
+
const modelAvailable = models.some(m => m.id === configuredModel);
|
|
102
|
+
if (modelAvailable) {
|
|
103
|
+
details.push({
|
|
104
|
+
status: 'ok',
|
|
105
|
+
message: `Model '${configuredModel}' available`
|
|
106
|
+
});
|
|
107
|
+
}
|
|
108
|
+
else {
|
|
109
|
+
details.push({
|
|
110
|
+
status: 'warning',
|
|
111
|
+
message: `Model '${configuredModel}' not found`,
|
|
112
|
+
hint: `Available: ${models.slice(0, 3).map(m => m.id).join(', ')}${models.length > 3 ? '...' : ''}`
|
|
113
|
+
});
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
return {
|
|
117
|
+
provider: 'ai-run-sso',
|
|
118
|
+
status: 'healthy',
|
|
119
|
+
message: 'Provider operational',
|
|
120
|
+
details,
|
|
121
|
+
models
|
|
122
|
+
};
|
|
123
|
+
}
|
|
124
|
+
catch (error) {
|
|
125
|
+
details.push({
|
|
126
|
+
status: 'error',
|
|
127
|
+
message: 'Provider unreachable',
|
|
128
|
+
hint: error instanceof Error ? error.message : String(error)
|
|
129
|
+
});
|
|
130
|
+
return {
|
|
131
|
+
provider: 'ai-run-sso',
|
|
132
|
+
status: 'unreachable',
|
|
133
|
+
message: 'Cannot connect to provider',
|
|
134
|
+
details
|
|
135
|
+
};
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* Ping implementation (not used for SSO, check() handles everything)
|
|
140
|
+
*/
|
|
141
|
+
async ping() {
|
|
142
|
+
// SSO ping handled in check() method
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* Get version (SSO doesn't have a version endpoint)
|
|
146
|
+
*/
|
|
147
|
+
async getVersion() {
|
|
148
|
+
return 'sso-v1';
|
|
149
|
+
}
|
|
150
|
+
/**
|
|
151
|
+
* Get unreachable result
|
|
152
|
+
*/
|
|
153
|
+
getUnreachableResult() {
|
|
154
|
+
return {
|
|
155
|
+
provider: 'ai-run-sso',
|
|
156
|
+
status: 'unreachable',
|
|
157
|
+
message: 'SSO provider is not configured or unreachable',
|
|
158
|
+
remediation: SSOTemplate.setupInstructions
|
|
159
|
+
};
|
|
160
|
+
}
|
|
161
|
+
/**
|
|
162
|
+
* Get healthy message
|
|
163
|
+
*/
|
|
164
|
+
getHealthyMessage(models) {
|
|
165
|
+
return models.length > 0
|
|
166
|
+
? `SSO is healthy with ${models.length} model(s) available`
|
|
167
|
+
: 'SSO is healthy';
|
|
168
|
+
}
|
|
169
|
+
/**
|
|
170
|
+
* Get no models remediation
|
|
171
|
+
*/
|
|
172
|
+
getNoModelsRemediation() {
|
|
173
|
+
return 'Contact your CodeMie administrator to enable models';
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
// Auto-register health check
|
|
177
|
+
ProviderRegistry.registerHealthCheck('ai-run-sso', new SSOHealthCheck());
|
|
178
|
+
//# sourceMappingURL=sso.health.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sso.health.js","sourceRoot":"","sources":["../../../../src/providers/plugins/sso/sso.health.ts"],"names":[],"mappings":"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"}
|
package/dist/{utils/codemie-model-fetcher.d.ts → providers/plugins/sso/sso.http-client.d.ts}
RENAMED
|
@@ -1,11 +1,22 @@
|
|
|
1
|
-
|
|
1
|
+
/**
|
|
2
|
+
* SSO HTTP Client
|
|
3
|
+
*
|
|
4
|
+
* CodeMie-specific HTTP client with SSO cookie handling
|
|
5
|
+
*/
|
|
6
|
+
import type { CodeMieIntegration } from '../../core/types.js';
|
|
7
|
+
/**
|
|
8
|
+
* CodeMie API endpoints
|
|
9
|
+
*/
|
|
2
10
|
export declare const CODEMIE_ENDPOINTS: {
|
|
3
11
|
readonly MODELS: "/v1/llm_models";
|
|
4
12
|
readonly USER_SETTINGS: "/v1/settings/user";
|
|
5
13
|
};
|
|
14
|
+
/**
|
|
15
|
+
* Fetch models from CodeMie SSO API
|
|
16
|
+
*/
|
|
6
17
|
export declare function fetchCodeMieModels(apiUrl: string, cookies: Record<string, string>): Promise<string[]>;
|
|
7
|
-
|
|
18
|
+
/**
|
|
19
|
+
* Fetch integrations from CodeMie SSO API (paginated)
|
|
20
|
+
*/
|
|
8
21
|
export declare function fetchCodeMieIntegrations(apiUrl: string, cookies: Record<string, string>, endpointPath?: string): Promise<CodeMieIntegration[]>;
|
|
9
|
-
|
|
10
|
-
export declare function validateCodeMieConnectivity(): Promise<void>;
|
|
11
|
-
//# sourceMappingURL=codemie-model-fetcher.d.ts.map
|
|
22
|
+
//# sourceMappingURL=sso.http-client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sso.http-client.d.ts","sourceRoot":"","sources":["../../../../src/providers/plugins/sso/sso.http-client.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAgB,kBAAkB,EAA+B,MAAM,qBAAqB,CAAC;AAEzG;;GAEG;AACH,eAAO,MAAM,iBAAiB;;;CAGpB,CAAC;AAEX;;GAEG;AACH,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC9B,OAAO,CAAC,MAAM,EAAE,CAAC,CAqDnB;AAED;;GAEG;AACH,wBAAsB,wBAAwB,CAC5C,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC/B,YAAY,GAAE,MAAwC,GACrD,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAuD/B"}
|
|
@@ -0,0 +1,187 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SSO HTTP Client
|
|
3
|
+
*
|
|
4
|
+
* CodeMie-specific HTTP client with SSO cookie handling
|
|
5
|
+
*/
|
|
6
|
+
import { HTTPClient } from '../../core/base/http-client.js';
|
|
7
|
+
/**
|
|
8
|
+
* CodeMie API endpoints
|
|
9
|
+
*/
|
|
10
|
+
export const CODEMIE_ENDPOINTS = {
|
|
11
|
+
MODELS: '/v1/llm_models',
|
|
12
|
+
USER_SETTINGS: '/v1/settings/user'
|
|
13
|
+
};
|
|
14
|
+
/**
|
|
15
|
+
* Fetch models from CodeMie SSO API
|
|
16
|
+
*/
|
|
17
|
+
export async function fetchCodeMieModels(apiUrl, cookies) {
|
|
18
|
+
const cookieString = Object.entries(cookies)
|
|
19
|
+
.map(([key, value]) => `${key}=${value}`)
|
|
20
|
+
.join(';');
|
|
21
|
+
const url = `${apiUrl}${CODEMIE_ENDPOINTS.MODELS}`;
|
|
22
|
+
const client = new HTTPClient({
|
|
23
|
+
timeout: 10000,
|
|
24
|
+
maxRetries: 3,
|
|
25
|
+
rejectUnauthorized: false
|
|
26
|
+
});
|
|
27
|
+
const response = await client.getRaw(url, {
|
|
28
|
+
'cookie': cookieString,
|
|
29
|
+
'Content-Type': 'application/json',
|
|
30
|
+
'User-Agent': 'CodeMie-CLI/1.0.0',
|
|
31
|
+
'X-CodeMie-Client': 'codemie-cli'
|
|
32
|
+
});
|
|
33
|
+
if (!response.statusCode || response.statusCode < 200 || response.statusCode >= 300) {
|
|
34
|
+
if (response.statusCode === 401 || response.statusCode === 403) {
|
|
35
|
+
throw new Error('SSO session expired - please run setup again');
|
|
36
|
+
}
|
|
37
|
+
throw new Error(`Failed to fetch models: ${response.statusCode} ${response.statusMessage}`);
|
|
38
|
+
}
|
|
39
|
+
// Parse the response
|
|
40
|
+
const models = JSON.parse(response.data);
|
|
41
|
+
if (!Array.isArray(models)) {
|
|
42
|
+
return [];
|
|
43
|
+
}
|
|
44
|
+
// Filter and map models based on the actual API response structure
|
|
45
|
+
const filteredModels = models
|
|
46
|
+
.filter(model => {
|
|
47
|
+
if (!model)
|
|
48
|
+
return false;
|
|
49
|
+
// Check for different possible model ID fields
|
|
50
|
+
const hasId = model.id && model.id.trim() !== '';
|
|
51
|
+
const hasBaseName = model.base_name && model.base_name.trim() !== '';
|
|
52
|
+
const hasDeploymentName = model.deployment_name && model.deployment_name.trim() !== '';
|
|
53
|
+
return hasId || hasBaseName || hasDeploymentName;
|
|
54
|
+
})
|
|
55
|
+
.map(model => {
|
|
56
|
+
// Use the most appropriate identifier field
|
|
57
|
+
return model.id || model.base_name || model.deployment_name || model.label || 'unknown';
|
|
58
|
+
})
|
|
59
|
+
.filter(id => id !== 'unknown')
|
|
60
|
+
.sort();
|
|
61
|
+
return filteredModels;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Fetch integrations from CodeMie SSO API (paginated)
|
|
65
|
+
*/
|
|
66
|
+
export async function fetchCodeMieIntegrations(apiUrl, cookies, endpointPath = CODEMIE_ENDPOINTS.USER_SETTINGS) {
|
|
67
|
+
const cookieString = Object.entries(cookies)
|
|
68
|
+
.map(([key, value]) => `${key}=${value}`)
|
|
69
|
+
.join(';');
|
|
70
|
+
const allIntegrations = [];
|
|
71
|
+
let currentPage = 0;
|
|
72
|
+
const perPage = 50;
|
|
73
|
+
let hasMorePages = true;
|
|
74
|
+
let lastError;
|
|
75
|
+
while (hasMorePages) {
|
|
76
|
+
try {
|
|
77
|
+
// Build URL with query parameters to filter by LiteLLM type
|
|
78
|
+
const filters = JSON.stringify({ type: ['LiteLLM'] });
|
|
79
|
+
const queryParams = new URLSearchParams({
|
|
80
|
+
page: currentPage.toString(),
|
|
81
|
+
per_page: perPage.toString(),
|
|
82
|
+
filters: filters
|
|
83
|
+
});
|
|
84
|
+
const fullUrl = `${apiUrl}${endpointPath}?${queryParams.toString()}`;
|
|
85
|
+
if (process.env.CODEMIE_DEBUG) {
|
|
86
|
+
console.log(`[DEBUG] Fetching integrations from: ${fullUrl}`);
|
|
87
|
+
}
|
|
88
|
+
else {
|
|
89
|
+
console.log(`[INFO] Requesting integrations from: ${fullUrl}`);
|
|
90
|
+
}
|
|
91
|
+
const pageIntegrations = await fetchIntegrationsPage(fullUrl, cookieString);
|
|
92
|
+
if (pageIntegrations.length === 0) {
|
|
93
|
+
hasMorePages = false;
|
|
94
|
+
}
|
|
95
|
+
else {
|
|
96
|
+
allIntegrations.push(...pageIntegrations);
|
|
97
|
+
// If we got fewer items than requested, we've reached the last page
|
|
98
|
+
if (pageIntegrations.length < perPage) {
|
|
99
|
+
hasMorePages = false;
|
|
100
|
+
}
|
|
101
|
+
else {
|
|
102
|
+
currentPage++;
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
catch (error) {
|
|
107
|
+
lastError = error instanceof Error ? error : new Error(String(error));
|
|
108
|
+
hasMorePages = false;
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
// If we got no integrations and had an error, throw it
|
|
112
|
+
if (allIntegrations.length === 0 && lastError) {
|
|
113
|
+
throw lastError;
|
|
114
|
+
}
|
|
115
|
+
return allIntegrations;
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Fetch single page of integrations
|
|
119
|
+
*/
|
|
120
|
+
async function fetchIntegrationsPage(fullUrl, cookieString) {
|
|
121
|
+
const client = new HTTPClient({
|
|
122
|
+
timeout: 10000,
|
|
123
|
+
maxRetries: 3,
|
|
124
|
+
rejectUnauthorized: false
|
|
125
|
+
});
|
|
126
|
+
const response = await client.getRaw(fullUrl, {
|
|
127
|
+
'cookie': cookieString,
|
|
128
|
+
'Content-Type': 'application/json',
|
|
129
|
+
'User-Agent': 'CodeMie-CLI/1.0.0',
|
|
130
|
+
'X-CodeMie-Client': 'codemie-cli'
|
|
131
|
+
});
|
|
132
|
+
if (!response.statusCode || response.statusCode < 200 || response.statusCode >= 300) {
|
|
133
|
+
if (response.statusCode === 401 || response.statusCode === 403) {
|
|
134
|
+
throw new Error('SSO session expired - please run setup again');
|
|
135
|
+
}
|
|
136
|
+
if (response.statusCode === 404) {
|
|
137
|
+
throw new Error(`Integrations endpoint not found. Response: ${response.data}`);
|
|
138
|
+
}
|
|
139
|
+
throw new Error(`Failed to fetch integrations: ${response.statusCode} ${response.statusMessage}`);
|
|
140
|
+
}
|
|
141
|
+
// Parse the response - handle flexible response structure
|
|
142
|
+
if (process.env.CODEMIE_DEBUG) {
|
|
143
|
+
console.log('[DEBUG] Integration API response:', response.data.substring(0, 500));
|
|
144
|
+
}
|
|
145
|
+
const responseData = JSON.parse(response.data);
|
|
146
|
+
// Extract integrations from response - try all possible locations
|
|
147
|
+
let integrations = [];
|
|
148
|
+
// Try different possible property names and structures
|
|
149
|
+
const possibleArrays = [
|
|
150
|
+
responseData, // Direct array
|
|
151
|
+
responseData.integrations,
|
|
152
|
+
responseData.credentials,
|
|
153
|
+
responseData.data,
|
|
154
|
+
responseData.items,
|
|
155
|
+
responseData.results,
|
|
156
|
+
responseData.user_integrations,
|
|
157
|
+
responseData.personal_integrations,
|
|
158
|
+
responseData.available_integrations
|
|
159
|
+
].filter(arr => Array.isArray(arr));
|
|
160
|
+
if (possibleArrays.length > 0) {
|
|
161
|
+
integrations = possibleArrays[0];
|
|
162
|
+
}
|
|
163
|
+
else {
|
|
164
|
+
// Try to find nested objects that might contain arrays
|
|
165
|
+
for (const value of Object.values(responseData)) {
|
|
166
|
+
if (typeof value === 'object' && value !== null) {
|
|
167
|
+
const nestedArrays = Object.values(value).filter(Array.isArray);
|
|
168
|
+
if (nestedArrays.length > 0) {
|
|
169
|
+
integrations = nestedArrays[0];
|
|
170
|
+
break;
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
// Filter and validate integrations (already filtered by API, but double-check)
|
|
176
|
+
const validIntegrations = integrations
|
|
177
|
+
.filter(integration => {
|
|
178
|
+
return integration &&
|
|
179
|
+
integration.alias &&
|
|
180
|
+
integration.credential_type &&
|
|
181
|
+
integration.alias.trim() !== '' &&
|
|
182
|
+
integration.credential_type.trim() !== '';
|
|
183
|
+
})
|
|
184
|
+
.sort((a, b) => a.alias.localeCompare(b.alias));
|
|
185
|
+
return validIntegrations;
|
|
186
|
+
}
|
|
187
|
+
//# sourceMappingURL=sso.http-client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sso.http-client.js","sourceRoot":"","sources":["../../../../src/providers/plugins/sso/sso.http-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,48 @@
|
|
|
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 type { CodeMieConfigOptions } from '../../../env/types.js';
|
|
8
|
+
import type { ModelInfo, CodeMieIntegration } from '../../core/types.js';
|
|
9
|
+
import { BaseModelProxy } from '../../core/base/BaseModelProxy.js';
|
|
10
|
+
/**
|
|
11
|
+
* SSO Model Proxy
|
|
12
|
+
*
|
|
13
|
+
* Fetches models from CodeMie SSO API and LiteLLM integrations
|
|
14
|
+
*/
|
|
15
|
+
export declare class SSOModelProxy extends BaseModelProxy {
|
|
16
|
+
private sso;
|
|
17
|
+
constructor(baseUrl?: string);
|
|
18
|
+
/**
|
|
19
|
+
* Check if this proxy supports the given provider
|
|
20
|
+
*/
|
|
21
|
+
supports(provider: string): boolean;
|
|
22
|
+
/**
|
|
23
|
+
* SSO does not support local model installation
|
|
24
|
+
*/
|
|
25
|
+
supportsInstallation(): boolean;
|
|
26
|
+
/**
|
|
27
|
+
* List models from SSO API
|
|
28
|
+
*
|
|
29
|
+
* Note: This is mainly for consistency with the interface.
|
|
30
|
+
* For SSO, listModels and fetchModels are essentially the same.
|
|
31
|
+
*/
|
|
32
|
+
listModels(): Promise<ModelInfo[]>;
|
|
33
|
+
/**
|
|
34
|
+
* Fetch models for setup wizard
|
|
35
|
+
*
|
|
36
|
+
* Returns models from CodeMie SSO API
|
|
37
|
+
*/
|
|
38
|
+
fetchModels(config: CodeMieConfigOptions): Promise<ModelInfo[]>;
|
|
39
|
+
/**
|
|
40
|
+
* Fetch LiteLLM integrations
|
|
41
|
+
*/
|
|
42
|
+
fetchIntegrations(codeMieUrl: string): Promise<CodeMieIntegration[]>;
|
|
43
|
+
/**
|
|
44
|
+
* Fetch models from CodeMie API
|
|
45
|
+
*/
|
|
46
|
+
private fetchModelsFromAPI;
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=sso.models.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sso.models.d.ts","sourceRoot":"","sources":["../../../../src/providers/plugins/sso/sso.models.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAClE,OAAO,KAAK,EAAE,SAAS,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzE,OAAO,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AAOnE;;;;GAIG;AACH,qBAAa,aAAc,SAAQ,cAAc;IAC/C,OAAO,CAAC,GAAG,CAAa;gBAEZ,OAAO,CAAC,EAAE,MAAM;IAM5B;;OAEG;IACH,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAInC;;OAEG;IACH,oBAAoB,IAAI,OAAO;IAI/B;;;;;OAKG;IACG,UAAU,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;IAcxC;;;;OAIG;IACG,WAAW,CAAC,MAAM,EAAE,oBAAoB,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IAyBrE;;OAEG;IACG,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC;IAiC1E;;OAEG;YACW,kBAAkB;CA0BjC"}
|