@padua/cli 1.13.0 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +164 -11
- package/dist/commands/doctor/index.d.ts.map +1 -1
- package/dist/commands/doctor/index.js +85 -0
- package/dist/commands/doctor/index.js.map +1 -1
- package/dist/commands/doctor/mcp-checks.d.ts +36 -0
- package/dist/commands/doctor/mcp-checks.d.ts.map +1 -0
- package/dist/commands/doctor/mcp-checks.js +235 -0
- package/dist/commands/doctor/mcp-checks.js.map +1 -0
- package/dist/commands/doctor/mcp-service-checks.d.ts +35 -0
- package/dist/commands/doctor/mcp-service-checks.d.ts.map +1 -0
- package/dist/commands/doctor/mcp-service-checks.js +146 -0
- package/dist/commands/doctor/mcp-service-checks.js.map +1 -0
- package/dist/commands/doctor/types.d.ts +4 -1
- package/dist/commands/doctor/types.d.ts.map +1 -1
- package/dist/commands/doctor/types.js +1 -0
- package/dist/commands/doctor/types.js.map +1 -1
- package/dist/commands/init/sso-discovery.d.ts.map +1 -1
- package/dist/commands/init/sso-discovery.js +1 -0
- package/dist/commands/init/sso-discovery.js.map +1 -1
- package/dist/commands/login/index.d.ts +1 -1
- package/dist/commands/login/index.d.ts.map +1 -1
- package/dist/commands/login/index.js +44 -185
- package/dist/commands/login/index.js.map +1 -1
- package/dist/commands/login/mcp-steps.d.ts +38 -0
- package/dist/commands/login/mcp-steps.d.ts.map +1 -0
- package/dist/commands/login/mcp-steps.js +176 -0
- package/dist/commands/login/mcp-steps.js.map +1 -0
- package/dist/commands/login/npmrc.d.ts +10 -0
- package/dist/commands/login/npmrc.d.ts.map +1 -1
- package/dist/commands/login/npmrc.js +36 -3
- package/dist/commands/login/npmrc.js.map +1 -1
- package/dist/commands/login/orchestrator.d.ts +9 -0
- package/dist/commands/login/orchestrator.d.ts.map +1 -0
- package/dist/commands/login/orchestrator.js +251 -0
- package/dist/commands/login/orchestrator.js.map +1 -0
- package/dist/commands/login/types.d.ts +11 -0
- package/dist/commands/login/types.d.ts.map +1 -1
- package/dist/commands/login/types.js.map +1 -1
- package/dist/commands/status/aws-checks.d.ts +14 -0
- package/dist/commands/status/aws-checks.d.ts.map +1 -0
- package/dist/commands/status/aws-checks.js +145 -0
- package/dist/commands/status/aws-checks.js.map +1 -0
- package/dist/commands/status/checks.d.ts +9 -25
- package/dist/commands/status/checks.d.ts.map +1 -1
- package/dist/commands/status/checks.js +52 -254
- package/dist/commands/status/checks.js.map +1 -1
- package/dist/commands/status/index.d.ts.map +1 -1
- package/dist/commands/status/index.js +53 -1
- package/dist/commands/status/index.js.map +1 -1
- package/dist/commands/status/mcp-checks.d.ts +35 -0
- package/dist/commands/status/mcp-checks.d.ts.map +1 -0
- package/dist/commands/status/mcp-checks.js +175 -0
- package/dist/commands/status/mcp-checks.js.map +1 -0
- package/dist/commands/status/types.d.ts +34 -0
- package/dist/commands/status/types.d.ts.map +1 -1
- package/dist/mcp/config/index.d.ts +4 -0
- package/dist/mcp/config/index.d.ts.map +1 -0
- package/dist/mcp/config/index.js +14 -0
- package/dist/mcp/config/index.js.map +1 -0
- package/dist/mcp/config/loaders.d.ts +45 -0
- package/dist/mcp/config/loaders.d.ts.map +1 -0
- package/dist/mcp/config/loaders.js +149 -0
- package/dist/mcp/config/loaders.js.map +1 -0
- package/dist/mcp/config/types.d.ts +234 -0
- package/dist/mcp/config/types.d.ts.map +1 -0
- package/dist/mcp/config/types.js +45 -0
- package/dist/mcp/config/types.js.map +1 -0
- package/dist/mcp/daemon/entry-logic.d.ts +28 -0
- package/dist/mcp/daemon/entry-logic.d.ts.map +1 -0
- package/dist/mcp/daemon/entry-logic.js +82 -0
- package/dist/mcp/daemon/entry-logic.js.map +1 -0
- package/dist/mcp/daemon/entry.d.ts +8 -0
- package/dist/mcp/daemon/entry.d.ts.map +1 -0
- package/dist/mcp/daemon/entry.js +34 -0
- package/dist/mcp/daemon/entry.js.map +1 -0
- package/dist/mcp/daemon/fork.d.ts +21 -0
- package/dist/mcp/daemon/fork.d.ts.map +1 -0
- package/dist/mcp/daemon/fork.js +188 -0
- package/dist/mcp/daemon/fork.js.map +1 -0
- package/dist/mcp/daemon/health.d.ts +8 -0
- package/dist/mcp/daemon/health.d.ts.map +1 -0
- package/dist/mcp/daemon/health.js +50 -0
- package/dist/mcp/daemon/health.js.map +1 -0
- package/dist/mcp/daemon/index.d.ts +6 -0
- package/dist/mcp/daemon/index.d.ts.map +1 -0
- package/dist/mcp/daemon/index.js +22 -0
- package/dist/mcp/daemon/index.js.map +1 -0
- package/dist/mcp/daemon/types.d.ts +63 -0
- package/dist/mcp/daemon/types.d.ts.map +1 -0
- package/dist/mcp/daemon/types.js +18 -0
- package/dist/mcp/daemon/types.js.map +1 -0
- package/dist/mcp/errors/index.d.ts +3 -0
- package/dist/mcp/errors/index.d.ts.map +1 -0
- package/dist/mcp/errors/index.js +13 -0
- package/dist/mcp/errors/index.js.map +1 -0
- package/dist/mcp/errors/types.d.ts +83 -0
- package/dist/mcp/errors/types.d.ts.map +1 -0
- package/dist/mcp/errors/types.js +148 -0
- package/dist/mcp/errors/types.js.map +1 -0
- package/dist/mcp/providers/atlassian/auth.d.ts +34 -0
- package/dist/mcp/providers/atlassian/auth.d.ts.map +1 -0
- package/dist/mcp/providers/atlassian/auth.js +107 -0
- package/dist/mcp/providers/atlassian/auth.js.map +1 -0
- package/dist/mcp/providers/atlassian/client.d.ts +15 -0
- package/dist/mcp/providers/atlassian/client.d.ts.map +1 -0
- package/dist/mcp/providers/atlassian/client.js +38 -0
- package/dist/mcp/providers/atlassian/client.js.map +1 -0
- package/dist/mcp/providers/atlassian/index.d.ts +6 -0
- package/dist/mcp/providers/atlassian/index.d.ts.map +1 -0
- package/dist/mcp/providers/atlassian/index.js +11 -0
- package/dist/mcp/providers/atlassian/index.js.map +1 -0
- package/dist/mcp/providers/atlassian/markdown-to-adf/index.d.ts +17 -0
- package/dist/mcp/providers/atlassian/markdown-to-adf/index.d.ts.map +1 -0
- package/dist/mcp/providers/atlassian/markdown-to-adf/index.js +29 -0
- package/dist/mcp/providers/atlassian/markdown-to-adf/index.js.map +1 -0
- package/dist/mcp/providers/atlassian/markdown-to-adf/nodes.d.ts +43 -0
- package/dist/mcp/providers/atlassian/markdown-to-adf/nodes.d.ts.map +1 -0
- package/dist/mcp/providers/atlassian/markdown-to-adf/nodes.js +101 -0
- package/dist/mcp/providers/atlassian/markdown-to-adf/nodes.js.map +1 -0
- package/dist/mcp/providers/atlassian/markdown-to-adf/parser.d.ts +14 -0
- package/dist/mcp/providers/atlassian/markdown-to-adf/parser.d.ts.map +1 -0
- package/dist/mcp/providers/atlassian/markdown-to-adf/parser.js +250 -0
- package/dist/mcp/providers/atlassian/markdown-to-adf/parser.js.map +1 -0
- package/dist/mcp/providers/atlassian/provider.d.ts +38 -0
- package/dist/mcp/providers/atlassian/provider.d.ts.map +1 -0
- package/dist/mcp/providers/atlassian/provider.js +101 -0
- package/dist/mcp/providers/atlassian/provider.js.map +1 -0
- package/dist/mcp/providers/atlassian/resources.d.ts +4 -0
- package/dist/mcp/providers/atlassian/resources.d.ts.map +1 -0
- package/dist/mcp/providers/atlassian/resources.js +67 -0
- package/dist/mcp/providers/atlassian/resources.js.map +1 -0
- package/dist/mcp/providers/atlassian/tools/confluence.d.ts +4 -0
- package/dist/mcp/providers/atlassian/tools/confluence.d.ts.map +1 -0
- package/dist/mcp/providers/atlassian/tools/confluence.js +169 -0
- package/dist/mcp/providers/atlassian/tools/confluence.js.map +1 -0
- package/dist/mcp/providers/atlassian/tools/jira.d.ts +4 -0
- package/dist/mcp/providers/atlassian/tools/jira.d.ts.map +1 -0
- package/dist/mcp/providers/atlassian/tools/jira.js +274 -0
- package/dist/mcp/providers/atlassian/tools/jira.js.map +1 -0
- package/dist/mcp/providers/gitlab/auth.d.ts +10 -0
- package/dist/mcp/providers/gitlab/auth.d.ts.map +1 -0
- package/dist/mcp/providers/gitlab/auth.js +23 -0
- package/dist/mcp/providers/gitlab/auth.js.map +1 -0
- package/dist/mcp/providers/gitlab/client.d.ts +23 -0
- package/dist/mcp/providers/gitlab/client.d.ts.map +1 -0
- package/dist/mcp/providers/gitlab/client.js +17 -0
- package/dist/mcp/providers/gitlab/client.js.map +1 -0
- package/dist/mcp/providers/gitlab/index.d.ts +5 -0
- package/dist/mcp/providers/gitlab/index.d.ts.map +1 -0
- package/dist/mcp/providers/gitlab/index.js +10 -0
- package/dist/mcp/providers/gitlab/index.js.map +1 -0
- package/dist/mcp/providers/gitlab/provider.d.ts +25 -0
- package/dist/mcp/providers/gitlab/provider.d.ts.map +1 -0
- package/dist/mcp/providers/gitlab/provider.js +48 -0
- package/dist/mcp/providers/gitlab/provider.js.map +1 -0
- package/dist/mcp/providers/gitlab/resources.d.ts +11 -0
- package/dist/mcp/providers/gitlab/resources.d.ts.map +1 -0
- package/dist/mcp/providers/gitlab/resources.js +54 -0
- package/dist/mcp/providers/gitlab/resources.js.map +1 -0
- package/dist/mcp/providers/gitlab/tools/issues.d.ts +4 -0
- package/dist/mcp/providers/gitlab/tools/issues.d.ts.map +1 -0
- package/dist/mcp/providers/gitlab/tools/issues.js +120 -0
- package/dist/mcp/providers/gitlab/tools/issues.js.map +1 -0
- package/dist/mcp/providers/gitlab/tools/merge-requests.d.ts +11 -0
- package/dist/mcp/providers/gitlab/tools/merge-requests.d.ts.map +1 -0
- package/dist/mcp/providers/gitlab/tools/merge-requests.js +282 -0
- package/dist/mcp/providers/gitlab/tools/merge-requests.js.map +1 -0
- package/dist/mcp/providers/gitlab/tools/pipelines.d.ts +10 -0
- package/dist/mcp/providers/gitlab/tools/pipelines.d.ts.map +1 -0
- package/dist/mcp/providers/gitlab/tools/pipelines.js +173 -0
- package/dist/mcp/providers/gitlab/tools/pipelines.js.map +1 -0
- package/dist/mcp/providers/gitlab/tools/repository.d.ts +4 -0
- package/dist/mcp/providers/gitlab/tools/repository.d.ts.map +1 -0
- package/dist/mcp/providers/gitlab/tools/repository.js +191 -0
- package/dist/mcp/providers/gitlab/tools/repository.js.map +1 -0
- package/dist/mcp/providers/index.d.ts +4 -0
- package/dist/mcp/providers/index.d.ts.map +1 -0
- package/dist/mcp/providers/index.js +6 -0
- package/dist/mcp/providers/index.js.map +1 -0
- package/dist/mcp/providers/registry.d.ts +90 -0
- package/dist/mcp/providers/registry.d.ts.map +1 -0
- package/dist/mcp/providers/registry.js +128 -0
- package/dist/mcp/providers/registry.js.map +1 -0
- package/dist/mcp/providers/tool-helpers.d.ts +14 -0
- package/dist/mcp/providers/tool-helpers.d.ts.map +1 -0
- package/dist/mcp/providers/tool-helpers.js +12 -0
- package/dist/mcp/providers/tool-helpers.js.map +1 -0
- package/dist/mcp/providers/types.d.ts +80 -0
- package/dist/mcp/providers/types.d.ts.map +1 -0
- package/dist/mcp/providers/types.js +13 -0
- package/dist/mcp/providers/types.js.map +1 -0
- package/dist/mcp/server/auth.d.ts +8 -0
- package/dist/mcp/server/auth.d.ts.map +1 -0
- package/dist/mcp/server/auth.js +36 -0
- package/dist/mcp/server/auth.js.map +1 -0
- package/dist/mcp/server/health.d.ts +24 -0
- package/dist/mcp/server/health.d.ts.map +1 -0
- package/dist/mcp/server/health.js +37 -0
- package/dist/mcp/server/health.js.map +1 -0
- package/dist/mcp/server/index.d.ts +11 -0
- package/dist/mcp/server/index.d.ts.map +1 -0
- package/dist/mcp/server/index.js +27 -0
- package/dist/mcp/server/index.js.map +1 -0
- package/dist/mcp/server/logging.d.ts +46 -0
- package/dist/mcp/server/logging.d.ts.map +1 -0
- package/dist/mcp/server/logging.js +109 -0
- package/dist/mcp/server/logging.js.map +1 -0
- package/dist/mcp/server/ratelimit.d.ts +3 -0
- package/dist/mcp/server/ratelimit.d.ts.map +1 -0
- package/dist/mcp/server/ratelimit.js +70 -0
- package/dist/mcp/server/ratelimit.js.map +1 -0
- package/dist/mcp/server/routes.d.ts +3 -0
- package/dist/mcp/server/routes.d.ts.map +1 -0
- package/dist/mcp/server/routes.js +8 -0
- package/dist/mcp/server/routes.js.map +1 -0
- package/dist/mcp/server/server.d.ts +21 -0
- package/dist/mcp/server/server.d.ts.map +1 -0
- package/dist/mcp/server/server.js +114 -0
- package/dist/mcp/server/server.js.map +1 -0
- package/dist/mcp/server/validation.d.ts +22 -0
- package/dist/mcp/server/validation.d.ts.map +1 -0
- package/dist/mcp/server/validation.js +32 -0
- package/dist/mcp/server/validation.js.map +1 -0
- package/dist/mcp/store/encrypt.d.ts +22 -0
- package/dist/mcp/store/encrypt.d.ts.map +1 -0
- package/dist/mcp/store/encrypt.js +66 -0
- package/dist/mcp/store/encrypt.js.map +1 -0
- package/dist/mcp/store/index.d.ts +12 -0
- package/dist/mcp/store/index.d.ts.map +1 -0
- package/dist/mcp/store/index.js +16 -0
- package/dist/mcp/store/index.js.map +1 -0
- package/dist/mcp/store/migrate.d.ts +70 -0
- package/dist/mcp/store/migrate.d.ts.map +1 -0
- package/dist/mcp/store/migrate.js +211 -0
- package/dist/mcp/store/migrate.js.map +1 -0
- package/dist/mcp/store/null-token-store.d.ts +22 -0
- package/dist/mcp/store/null-token-store.d.ts.map +1 -0
- package/dist/mcp/store/null-token-store.js +40 -0
- package/dist/mcp/store/null-token-store.js.map +1 -0
- package/dist/mcp/store/sqlite.d.ts +27 -0
- package/dist/mcp/store/sqlite.d.ts.map +1 -0
- package/dist/mcp/store/sqlite.js +100 -0
- package/dist/mcp/store/sqlite.js.map +1 -0
- package/dist/mcp/store/types.d.ts +183 -0
- package/dist/mcp/store/types.d.ts.map +1 -0
- package/dist/mcp/store/types.js +13 -0
- package/dist/mcp/store/types.js.map +1 -0
- package/dist/mcp/token/http-client.d.ts +3 -0
- package/dist/mcp/token/http-client.d.ts.map +1 -0
- package/dist/mcp/token/http-client.js +186 -0
- package/dist/mcp/token/http-client.js.map +1 -0
- package/dist/mcp/token/index.d.ts +5 -0
- package/dist/mcp/token/index.d.ts.map +1 -0
- package/dist/mcp/token/index.js +15 -0
- package/dist/mcp/token/index.js.map +1 -0
- package/dist/mcp/token/manager.d.ts +54 -0
- package/dist/mcp/token/manager.d.ts.map +1 -0
- package/dist/mcp/token/manager.js +194 -0
- package/dist/mcp/token/manager.js.map +1 -0
- package/dist/mcp/token/null-token-manager.d.ts +19 -0
- package/dist/mcp/token/null-token-manager.d.ts.map +1 -0
- package/dist/mcp/token/null-token-manager.js +50 -0
- package/dist/mcp/token/null-token-manager.js.map +1 -0
- package/dist/mcp/token/oauth.d.ts +44 -0
- package/dist/mcp/token/oauth.d.ts.map +1 -0
- package/dist/mcp/token/oauth.js +257 -0
- package/dist/mcp/token/oauth.js.map +1 -0
- package/dist/mcp/token/types.d.ts +81 -0
- package/dist/mcp/token/types.d.ts.map +1 -0
- package/dist/mcp/token/types.js +6 -0
- package/dist/mcp/token/types.js.map +1 -0
- package/package.json +10 -3
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { ServiceResult } from './types';
|
|
2
|
+
import type { GitLabProviderConfig, AtlassianProviderConfig, McpLocalConfig } from '../../mcp/config/types';
|
|
3
|
+
import type { TokenStore } from '../../mcp/store/types';
|
|
4
|
+
/**
|
|
5
|
+
* Download the MCP providers config from S3 to ~/.padua/mcp-providers.json.
|
|
6
|
+
*
|
|
7
|
+
* Non-blocking: callers must not fail the overall login flow on error.
|
|
8
|
+
*/
|
|
9
|
+
export declare function downloadProvidersConfig(profile: string): Promise<ServiceResult>;
|
|
10
|
+
/**
|
|
11
|
+
* Authenticate to GitLab using the PKCE OAuth flow.
|
|
12
|
+
*
|
|
13
|
+
* Strategy: if a valid token already exists in the store, return immediately.
|
|
14
|
+
* Otherwise run the full PKCE flow via OAuthTokenManager.authenticate().
|
|
15
|
+
* The OAuthTokenManager handles token refresh internally via ensureFresh().
|
|
16
|
+
*
|
|
17
|
+
* Non-blocking: callers must not fail the overall login flow on error.
|
|
18
|
+
*/
|
|
19
|
+
export declare function authenticateGitLab(config: GitLabProviderConfig, tokenStore?: TokenStore): Promise<ServiceResult>;
|
|
20
|
+
/**
|
|
21
|
+
* Authenticate to Atlassian using the confidential client OAuth flow.
|
|
22
|
+
*
|
|
23
|
+
* Strategy: if a valid token already exists in the store, return immediately.
|
|
24
|
+
* Otherwise run the full OAuth flow via OAuthTokenManager.authenticate().
|
|
25
|
+
*
|
|
26
|
+
* Non-blocking: callers must not fail the overall login flow on error.
|
|
27
|
+
*/
|
|
28
|
+
export declare function authenticateAtlassian(config: AtlassianProviderConfig, tokenStore?: TokenStore): Promise<ServiceResult>;
|
|
29
|
+
/**
|
|
30
|
+
* Ensure the MCP daemon is running and healthy.
|
|
31
|
+
* - If a healthy daemon is already running, return immediately.
|
|
32
|
+
* - If an unhealthy daemon is running, stop it and start a fresh one.
|
|
33
|
+
* - If no daemon is running, fork a new one.
|
|
34
|
+
*
|
|
35
|
+
* Non-blocking: callers must not fail the overall login flow on error.
|
|
36
|
+
*/
|
|
37
|
+
export declare function ensureMcpDaemon(mcpConfig?: McpLocalConfig): Promise<ServiceResult>;
|
|
38
|
+
//# sourceMappingURL=mcp-steps.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp-steps.d.ts","sourceRoot":"","sources":["../../../src/commands/login/mcp-steps.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAQxC,OAAO,KAAK,EAAE,oBAAoB,EAAE,uBAAuB,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC5G,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAWxD;;;;GAIG;AACH,wBAAsB,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CA6CrF;AAED;;;;;;;;GAQG;AACH,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,oBAAoB,EAC5B,UAAU,CAAC,EAAE,UAAU,GACtB,OAAO,CAAC,aAAa,CAAC,CAyBxB;AAED;;;;;;;GAOG;AACH,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,uBAAuB,EAC/B,UAAU,CAAC,EAAE,UAAU,GACtB,OAAO,CAAC,aAAa,CAAC,CAyBxB;AAMD;;;;;;;GAOG;AACH,wBAAsB,eAAe,CAAC,SAAS,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,aAAa,CAAC,CAyBxF"}
|
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.downloadProvidersConfig = downloadProvidersConfig;
|
|
4
|
+
exports.authenticateGitLab = authenticateGitLab;
|
|
5
|
+
exports.authenticateAtlassian = authenticateAtlassian;
|
|
6
|
+
exports.ensureMcpDaemon = ensureMcpDaemon;
|
|
7
|
+
const child_process_1 = require("child_process");
|
|
8
|
+
const node_fs_1 = require("node:fs");
|
|
9
|
+
const node_path_1 = require("node:path");
|
|
10
|
+
const node_os_1 = require("node:os");
|
|
11
|
+
const utils_1 = require("./utils");
|
|
12
|
+
const manager_1 = require("../../mcp/token/manager");
|
|
13
|
+
const null_token_store_1 = require("../../mcp/store/null-token-store");
|
|
14
|
+
const auth_1 = require("../../mcp/providers/gitlab/auth");
|
|
15
|
+
const auth_2 = require("../../mcp/providers/atlassian/auth");
|
|
16
|
+
const fork_1 = require("../../mcp/daemon/fork");
|
|
17
|
+
const health_1 = require("../../mcp/daemon/health");
|
|
18
|
+
const PROVIDERS_CONFIG_S3_KEY = 'mcp-config.json';
|
|
19
|
+
const PROVIDERS_CONFIG_S3_BUCKET = 's3://paduafg-developers';
|
|
20
|
+
const PROVIDERS_CONFIG_LOCAL_DIR = '.padua';
|
|
21
|
+
const PROVIDERS_CONFIG_LOCAL_FILE = 'mcp-providers.json';
|
|
22
|
+
const S3_TIMEOUT_MS = 30_000;
|
|
23
|
+
const GITLAB_CALLBACK_PORT = 18080;
|
|
24
|
+
const ATLASSIAN_CALLBACK_PORT = 18081;
|
|
25
|
+
const DEFAULT_MCP_PORT = 8919;
|
|
26
|
+
/**
|
|
27
|
+
* Download the MCP providers config from S3 to ~/.padua/mcp-providers.json.
|
|
28
|
+
*
|
|
29
|
+
* Non-blocking: callers must not fail the overall login flow on error.
|
|
30
|
+
*/
|
|
31
|
+
async function downloadProvidersConfig(profile) {
|
|
32
|
+
const start = Date.now();
|
|
33
|
+
try {
|
|
34
|
+
const destDir = (0, node_path_1.join)((0, node_os_1.homedir)(), PROVIDERS_CONFIG_LOCAL_DIR);
|
|
35
|
+
(0, node_fs_1.mkdirSync)(destDir, { recursive: true });
|
|
36
|
+
const destPath = (0, node_path_1.join)(destDir, PROVIDERS_CONFIG_LOCAL_FILE);
|
|
37
|
+
const s3Uri = `${PROVIDERS_CONFIG_S3_BUCKET}/${PROVIDERS_CONFIG_S3_KEY}`;
|
|
38
|
+
const result = (0, child_process_1.spawnSync)('aws', ['s3', 'cp', s3Uri, destPath, '--profile', profile], {
|
|
39
|
+
timeout: S3_TIMEOUT_MS,
|
|
40
|
+
encoding: 'utf-8',
|
|
41
|
+
env: (0, utils_1.getSubprocessEnv)(),
|
|
42
|
+
});
|
|
43
|
+
if (result.error) {
|
|
44
|
+
return {
|
|
45
|
+
success: false,
|
|
46
|
+
skipped: false,
|
|
47
|
+
error: result.error.message,
|
|
48
|
+
duration: Date.now() - start,
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
if (result.status !== 0) {
|
|
52
|
+
const error = result.stderr?.trim() || 'Unknown S3 error';
|
|
53
|
+
return { success: false, skipped: false, error, duration: Date.now() - start };
|
|
54
|
+
}
|
|
55
|
+
(0, node_fs_1.chmodSync)(destPath, 0o600);
|
|
56
|
+
return { success: true, skipped: false, duration: Date.now() - start };
|
|
57
|
+
}
|
|
58
|
+
catch (error) {
|
|
59
|
+
return {
|
|
60
|
+
success: false,
|
|
61
|
+
skipped: false,
|
|
62
|
+
error: error.message,
|
|
63
|
+
duration: Date.now() - start,
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Authenticate to GitLab using the PKCE OAuth flow.
|
|
69
|
+
*
|
|
70
|
+
* Strategy: if a valid token already exists in the store, return immediately.
|
|
71
|
+
* Otherwise run the full PKCE flow via OAuthTokenManager.authenticate().
|
|
72
|
+
* The OAuthTokenManager handles token refresh internally via ensureFresh().
|
|
73
|
+
*
|
|
74
|
+
* Non-blocking: callers must not fail the overall login flow on error.
|
|
75
|
+
*/
|
|
76
|
+
async function authenticateGitLab(config, tokenStore) {
|
|
77
|
+
const start = Date.now();
|
|
78
|
+
const store = tokenStore ?? null_token_store_1.NullTokenStore.create();
|
|
79
|
+
const oauthConfig = (0, auth_1.createGitLabOAuthConfig)(config);
|
|
80
|
+
const tokenManager = new manager_1.OAuthTokenManager(oauthConfig, store, 'gitlab', GITLAB_CALLBACK_PORT);
|
|
81
|
+
try {
|
|
82
|
+
if (tokenManager.isAuthenticated()) {
|
|
83
|
+
tokenManager.shutdown();
|
|
84
|
+
return { success: true, skipped: false, duration: Date.now() - start };
|
|
85
|
+
}
|
|
86
|
+
await tokenManager.authenticate();
|
|
87
|
+
tokenManager.shutdown();
|
|
88
|
+
return { success: true, skipped: false, duration: Date.now() - start };
|
|
89
|
+
}
|
|
90
|
+
catch (error) {
|
|
91
|
+
tokenManager.shutdown();
|
|
92
|
+
return {
|
|
93
|
+
success: false,
|
|
94
|
+
skipped: false,
|
|
95
|
+
error: error.message,
|
|
96
|
+
duration: Date.now() - start,
|
|
97
|
+
};
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Authenticate to Atlassian using the confidential client OAuth flow.
|
|
102
|
+
*
|
|
103
|
+
* Strategy: if a valid token already exists in the store, return immediately.
|
|
104
|
+
* Otherwise run the full OAuth flow via OAuthTokenManager.authenticate().
|
|
105
|
+
*
|
|
106
|
+
* Non-blocking: callers must not fail the overall login flow on error.
|
|
107
|
+
*/
|
|
108
|
+
async function authenticateAtlassian(config, tokenStore) {
|
|
109
|
+
const start = Date.now();
|
|
110
|
+
const store = tokenStore ?? null_token_store_1.NullTokenStore.create();
|
|
111
|
+
const oauthConfig = (0, auth_2.createAtlassianOAuthConfig)(config);
|
|
112
|
+
const tokenManager = new manager_1.OAuthTokenManager(oauthConfig, store, 'atlassian', ATLASSIAN_CALLBACK_PORT);
|
|
113
|
+
try {
|
|
114
|
+
if (tokenManager.isAuthenticated()) {
|
|
115
|
+
tokenManager.shutdown();
|
|
116
|
+
return { success: true, skipped: false, duration: Date.now() - start };
|
|
117
|
+
}
|
|
118
|
+
await tokenManager.authenticate();
|
|
119
|
+
tokenManager.shutdown();
|
|
120
|
+
return { success: true, skipped: false, duration: Date.now() - start };
|
|
121
|
+
}
|
|
122
|
+
catch (error) {
|
|
123
|
+
tokenManager.shutdown();
|
|
124
|
+
return {
|
|
125
|
+
success: false,
|
|
126
|
+
skipped: false,
|
|
127
|
+
error: error.message,
|
|
128
|
+
duration: Date.now() - start,
|
|
129
|
+
};
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
// ---------------------------------------------------------------------------
|
|
133
|
+
// MCP Daemon step
|
|
134
|
+
// ---------------------------------------------------------------------------
|
|
135
|
+
/**
|
|
136
|
+
* Ensure the MCP daemon is running and healthy.
|
|
137
|
+
* - If a healthy daemon is already running, return immediately.
|
|
138
|
+
* - If an unhealthy daemon is running, stop it and start a fresh one.
|
|
139
|
+
* - If no daemon is running, fork a new one.
|
|
140
|
+
*
|
|
141
|
+
* Non-blocking: callers must not fail the overall login flow on error.
|
|
142
|
+
*/
|
|
143
|
+
async function ensureMcpDaemon(mcpConfig) {
|
|
144
|
+
const start = Date.now();
|
|
145
|
+
const port = mcpConfig?.port ?? DEFAULT_MCP_PORT;
|
|
146
|
+
try {
|
|
147
|
+
const existing = (0, fork_1.readExistingDaemon)();
|
|
148
|
+
if (existing !== null) {
|
|
149
|
+
const healthy = await checkExistingHealth(existing.port);
|
|
150
|
+
if (healthy) {
|
|
151
|
+
return { success: true, skipped: false, duration: Date.now() - start };
|
|
152
|
+
}
|
|
153
|
+
(0, fork_1.stopDaemon)();
|
|
154
|
+
}
|
|
155
|
+
await (0, fork_1.forkDaemon)(require.resolve('../../mcp/daemon/entry'), port);
|
|
156
|
+
return { success: true, skipped: false, duration: Date.now() - start };
|
|
157
|
+
}
|
|
158
|
+
catch (error) {
|
|
159
|
+
return {
|
|
160
|
+
success: false,
|
|
161
|
+
skipped: false,
|
|
162
|
+
error: error.message,
|
|
163
|
+
duration: Date.now() - start,
|
|
164
|
+
};
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
async function checkExistingHealth(port) {
|
|
168
|
+
try {
|
|
169
|
+
const health = await (0, health_1.checkHealth)(port);
|
|
170
|
+
return health.status !== 'error';
|
|
171
|
+
}
|
|
172
|
+
catch {
|
|
173
|
+
return false;
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
//# sourceMappingURL=mcp-steps.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp-steps.js","sourceRoot":"","sources":["../../../src/commands/login/mcp-steps.ts"],"names":[],"mappings":"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"}
|
|
@@ -29,6 +29,16 @@ export declare function writeProjectNpmrc(content: string): void;
|
|
|
29
29
|
* @throws Error if write fails
|
|
30
30
|
*/
|
|
31
31
|
export declare function writeGlobalNpmrc(content: string): void;
|
|
32
|
+
/**
|
|
33
|
+
* Test whether a line is managed by Padua (CodeArtifact config).
|
|
34
|
+
* Matches @paduafg scoped registry and codeartifact host lines.
|
|
35
|
+
*/
|
|
36
|
+
export declare function isPaduaManagedLine(line: string): boolean;
|
|
37
|
+
/**
|
|
38
|
+
* Merge new CodeArtifact content with existing .npmrc content,
|
|
39
|
+
* preserving non-Padua lines (e.g. npmjs.org auth tokens).
|
|
40
|
+
*/
|
|
41
|
+
export declare function mergeNpmrcContent(existingContent: string | null, newContent: string): string;
|
|
32
42
|
/**
|
|
33
43
|
* Read .npmrc from project root (current working directory)
|
|
34
44
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"npmrc.d.ts","sourceRoot":"","sources":["../../../src/commands/login/npmrc.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAE7C;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,kBAAkB,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAG5F;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAU7E;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAGvD;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAGtD;
|
|
1
|
+
{"version":3,"file":"npmrc.d.ts","sourceRoot":"","sources":["../../../src/commands/login/npmrc.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAE7C;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,kBAAkB,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAG5F;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAU7E;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAGvD;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAGtD;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAKxD;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,eAAe,EAAE,MAAM,GAAG,IAAI,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAgB5F;AAwBD;;;;GAIG;AACH,wBAAgB,gBAAgB,IAAI,MAAM,GAAG,IAAI,CAGhD;AAED;;;;GAIG;AACH,wBAAgB,eAAe,IAAI,MAAM,GAAG,IAAI,CAG/C;AAmBD;;;;GAIG;AACH,wBAAgB,kBAAkB,IAAI,OAAO,CAe5C"}
|
|
@@ -37,6 +37,8 @@ exports.buildCodeArtifactRegistry = buildCodeArtifactRegistry;
|
|
|
37
37
|
exports.constructNpmrcContent = constructNpmrcContent;
|
|
38
38
|
exports.writeProjectNpmrc = writeProjectNpmrc;
|
|
39
39
|
exports.writeGlobalNpmrc = writeGlobalNpmrc;
|
|
40
|
+
exports.isPaduaManagedLine = isPaduaManagedLine;
|
|
41
|
+
exports.mergeNpmrcContent = mergeNpmrcContent;
|
|
40
42
|
exports.readProjectNpmrc = readProjectNpmrc;
|
|
41
43
|
exports.readGlobalNpmrc = readGlobalNpmrc;
|
|
42
44
|
exports.isNpmrcInGitignore = isNpmrcInGitignore;
|
|
@@ -92,16 +94,47 @@ function writeGlobalNpmrc(content) {
|
|
|
92
94
|
writeNpmrcFile(npmrcPath, content);
|
|
93
95
|
}
|
|
94
96
|
/**
|
|
95
|
-
*
|
|
97
|
+
* Test whether a line is managed by Padua (CodeArtifact config).
|
|
98
|
+
* Matches @paduafg scoped registry and codeartifact host lines.
|
|
99
|
+
*/
|
|
100
|
+
function isPaduaManagedLine(line) {
|
|
101
|
+
const trimmed = line.trim();
|
|
102
|
+
if (trimmed.startsWith('@paduafg:registry='))
|
|
103
|
+
return true;
|
|
104
|
+
if (/^\/\/.*\.d\.codeartifact\..*\.amazonaws\.com\//.test(trimmed))
|
|
105
|
+
return true;
|
|
106
|
+
return false;
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Merge new CodeArtifact content with existing .npmrc content,
|
|
110
|
+
* preserving non-Padua lines (e.g. npmjs.org auth tokens).
|
|
111
|
+
*/
|
|
112
|
+
function mergeNpmrcContent(existingContent, newContent) {
|
|
113
|
+
if (!existingContent) {
|
|
114
|
+
return newContent;
|
|
115
|
+
}
|
|
116
|
+
const preservedLines = existingContent
|
|
117
|
+
.split('\n')
|
|
118
|
+
.filter(line => line.trim() !== '' && !isPaduaManagedLine(line));
|
|
119
|
+
const newLines = newContent.replace(/\n$/, '').split('\n');
|
|
120
|
+
if (preservedLines.length === 0) {
|
|
121
|
+
return newContent;
|
|
122
|
+
}
|
|
123
|
+
return [...preservedLines, ...newLines, ''].join('\n');
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Write .npmrc file with secure permissions, preserving non-Padua lines.
|
|
96
127
|
*
|
|
97
128
|
* @param filePath - Path to .npmrc file
|
|
98
|
-
* @param content -
|
|
129
|
+
* @param content - New CodeArtifact content
|
|
99
130
|
* @throws Error if write fails
|
|
100
131
|
*/
|
|
101
132
|
function writeNpmrcFile(filePath, content) {
|
|
102
133
|
try {
|
|
134
|
+
const existing = readNpmrcFile(filePath);
|
|
135
|
+
const merged = mergeNpmrcContent(existing, content);
|
|
103
136
|
// Write file with restrictive permissions (owner read/write only)
|
|
104
|
-
fs.writeFileSync(filePath,
|
|
137
|
+
fs.writeFileSync(filePath, merged, {
|
|
105
138
|
encoding: 'utf-8',
|
|
106
139
|
mode: 0o600,
|
|
107
140
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"npmrc.js","sourceRoot":"","sources":["../../../src/commands/login/npmrc.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAYA,8DAGC;AASD,sDAUC;AAQD,8CAGC;AAQD,4CAGC;
|
|
1
|
+
{"version":3,"file":"npmrc.js","sourceRoot":"","sources":["../../../src/commands/login/npmrc.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { LoginOptions, LoginResult, PaduaConfig } from './types';
|
|
2
|
+
/** Orchestrate the full login flow. Exit codes: 0 = ok, 1 = post-SSO failed, 2 = SSO failed. */
|
|
3
|
+
export declare function runLoginFlow(options: LoginOptions, config: PaduaConfig | null, profile: string): Promise<{
|
|
4
|
+
result: LoginResult;
|
|
5
|
+
exitCode: number;
|
|
6
|
+
}>;
|
|
7
|
+
/** Print login summary to the console. Respects --quiet flag. */
|
|
8
|
+
export declare function reportResults(result: LoginResult, options: LoginOptions): void;
|
|
9
|
+
//# sourceMappingURL=orchestrator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"orchestrator.d.ts","sourceRoot":"","sources":["../../../src/commands/login/orchestrator.ts"],"names":[],"mappings":"AAOA,OAAO,EACL,YAAY,EACZ,WAAW,EACX,WAAW,EAIZ,MAAM,SAAS,CAAC;AAuMjB,gGAAgG;AAChG,wBAAsB,YAAY,CAChC,OAAO,EAAE,YAAY,EACrB,MAAM,EAAE,WAAW,GAAG,IAAI,EAC1B,OAAO,EAAE,MAAM,GACd,OAAO,CAAC;IAAE,MAAM,EAAE,WAAW,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,CA0CpD;AAED,iEAAiE;AACjE,wBAAgB,aAAa,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,YAAY,GAAG,IAAI,CAyC9E"}
|
|
@@ -0,0 +1,251 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.runLoginFlow = runLoginFlow;
|
|
7
|
+
exports.reportResults = reportResults;
|
|
8
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
9
|
+
const sso_1 = require("./sso");
|
|
10
|
+
const codeartifact_1 = require("./codeartifact");
|
|
11
|
+
const ecr_1 = require("./ecr");
|
|
12
|
+
const mcp_steps_1 = require("./mcp-steps");
|
|
13
|
+
const loaders_1 = require("../../mcp/config/loaders");
|
|
14
|
+
const types_1 = require("./types");
|
|
15
|
+
const SKIPPED = { success: false, skipped: true, duration: 0 };
|
|
16
|
+
function makeFailure(error, start) {
|
|
17
|
+
return {
|
|
18
|
+
success: false,
|
|
19
|
+
skipped: false,
|
|
20
|
+
error: error.message,
|
|
21
|
+
duration: Date.now() - start,
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
async function runSSOStep(profile, options, totalSteps) {
|
|
25
|
+
if (!options.quiet) {
|
|
26
|
+
console.log(chalk_1.default.blue(`[1/${totalSteps}] AWS SSO ...`));
|
|
27
|
+
}
|
|
28
|
+
const start = Date.now();
|
|
29
|
+
try {
|
|
30
|
+
const result = await (0, sso_1.authenticateSSO)(profile, options);
|
|
31
|
+
const sso = { ...result, duration: Date.now() - start };
|
|
32
|
+
if (!options.quiet) {
|
|
33
|
+
console.log(chalk_1.default.green(` ✓ authenticated (profile: ${profile})`));
|
|
34
|
+
}
|
|
35
|
+
return sso;
|
|
36
|
+
}
|
|
37
|
+
catch (error) {
|
|
38
|
+
return makeFailure(error, start);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
async function runS3Step(profile, options, step, totalSteps) {
|
|
42
|
+
if (!options.quiet) {
|
|
43
|
+
console.log(chalk_1.default.blue(`[${step}/${totalSteps}] S3 Config ...`));
|
|
44
|
+
}
|
|
45
|
+
const result = await (0, mcp_steps_1.downloadProvidersConfig)(profile);
|
|
46
|
+
if (!options.quiet) {
|
|
47
|
+
if (result.success) {
|
|
48
|
+
console.log(chalk_1.default.green(` ✓ downloaded`));
|
|
49
|
+
}
|
|
50
|
+
else {
|
|
51
|
+
console.log(chalk_1.default.yellow(` ⚠ failed: ${result.error ?? 'Unknown error'}`));
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
return result;
|
|
55
|
+
}
|
|
56
|
+
async function runCAStep(config, profile, options, step, totalSteps) {
|
|
57
|
+
if (!options.quiet) {
|
|
58
|
+
console.log(chalk_1.default.blue(`[${step}/${totalSteps}] CodeArtifact (npm) ...`));
|
|
59
|
+
}
|
|
60
|
+
if (!config || !(0, types_1.hasCodeArtifactConfig)(config)) {
|
|
61
|
+
if (!options.quiet) {
|
|
62
|
+
console.log(chalk_1.default.gray(` ○ skipped (not configured)`));
|
|
63
|
+
}
|
|
64
|
+
return { ...SKIPPED };
|
|
65
|
+
}
|
|
66
|
+
const start = Date.now();
|
|
67
|
+
try {
|
|
68
|
+
const result = await (0, codeartifact_1.configureCodeArtifact)(config.codeartifact, profile, options, config);
|
|
69
|
+
const ca = { ...result, duration: Date.now() - start };
|
|
70
|
+
if (!options.quiet) {
|
|
71
|
+
console.log(chalk_1.default.green(` ✓ configured`));
|
|
72
|
+
}
|
|
73
|
+
return ca;
|
|
74
|
+
}
|
|
75
|
+
catch (error) {
|
|
76
|
+
if (!options.quiet) {
|
|
77
|
+
console.log(chalk_1.default.yellow(` ⚠ failed: ${error.message}`));
|
|
78
|
+
}
|
|
79
|
+
return makeFailure(error, start);
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
async function runECRStep(config, profile, options, step, totalSteps) {
|
|
83
|
+
if (!options.quiet) {
|
|
84
|
+
console.log(chalk_1.default.blue(`[${step}/${totalSteps}] ECR (Docker) ...`));
|
|
85
|
+
}
|
|
86
|
+
if (!config || !(0, types_1.hasEcrConfig)(config)) {
|
|
87
|
+
if (!options.quiet) {
|
|
88
|
+
console.log(chalk_1.default.gray(` ○ skipped (not configured)`));
|
|
89
|
+
}
|
|
90
|
+
return { ...SKIPPED };
|
|
91
|
+
}
|
|
92
|
+
const start = Date.now();
|
|
93
|
+
try {
|
|
94
|
+
const result = await (0, ecr_1.configureECR)(config.ecr, profile, options);
|
|
95
|
+
const ecr = { ...result, duration: Date.now() - start };
|
|
96
|
+
if (!options.quiet) {
|
|
97
|
+
console.log(chalk_1.default.green(` ✓ configured`));
|
|
98
|
+
}
|
|
99
|
+
return ecr;
|
|
100
|
+
}
|
|
101
|
+
catch (error) {
|
|
102
|
+
if (!options.quiet) {
|
|
103
|
+
console.log(chalk_1.default.yellow(` ⚠ failed: ${error.message}`));
|
|
104
|
+
}
|
|
105
|
+
return makeFailure(error, start);
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
async function runGitLabStep(providersConfig, options, step, totalSteps) {
|
|
109
|
+
if (!options.quiet) {
|
|
110
|
+
console.log(chalk_1.default.blue(`[${step}/${totalSteps}] GitLab Auth ...`));
|
|
111
|
+
}
|
|
112
|
+
if (!providersConfig?.providers.gitlab) {
|
|
113
|
+
if (!options.quiet) {
|
|
114
|
+
console.log(chalk_1.default.gray(` ○ skipped (not configured)`));
|
|
115
|
+
}
|
|
116
|
+
return { ...SKIPPED };
|
|
117
|
+
}
|
|
118
|
+
const result = await (0, mcp_steps_1.authenticateGitLab)(providersConfig.providers.gitlab);
|
|
119
|
+
if (!options.quiet) {
|
|
120
|
+
if (result.success) {
|
|
121
|
+
console.log(chalk_1.default.green(` ✓ authenticated`));
|
|
122
|
+
}
|
|
123
|
+
else {
|
|
124
|
+
console.log(chalk_1.default.yellow(` ⚠ failed: ${result.error ?? 'Unknown error'}`));
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
return result;
|
|
128
|
+
}
|
|
129
|
+
async function runAtlassianStep(providersConfig, options, step, totalSteps) {
|
|
130
|
+
if (!options.quiet) {
|
|
131
|
+
console.log(chalk_1.default.blue(`[${step}/${totalSteps}] Atlassian Auth ...`));
|
|
132
|
+
}
|
|
133
|
+
if (!providersConfig?.providers.atlassian) {
|
|
134
|
+
if (!options.quiet) {
|
|
135
|
+
console.log(chalk_1.default.gray(` ○ skipped (not configured)`));
|
|
136
|
+
}
|
|
137
|
+
return { ...SKIPPED };
|
|
138
|
+
}
|
|
139
|
+
const result = await (0, mcp_steps_1.authenticateAtlassian)(providersConfig.providers.atlassian);
|
|
140
|
+
if (!options.quiet) {
|
|
141
|
+
if (result.success) {
|
|
142
|
+
console.log(chalk_1.default.green(` ✓ authenticated`));
|
|
143
|
+
}
|
|
144
|
+
else {
|
|
145
|
+
console.log(chalk_1.default.yellow(` ⚠ failed: ${result.error ?? 'Unknown error'}`));
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
return result;
|
|
149
|
+
}
|
|
150
|
+
async function runDaemonStep(mcpConfig, options, step, totalSteps) {
|
|
151
|
+
if (!options.quiet)
|
|
152
|
+
console.log(chalk_1.default.blue(`[${step}/${totalSteps}] MCP Daemon ...`));
|
|
153
|
+
const result = await (0, mcp_steps_1.ensureMcpDaemon)(mcpConfig);
|
|
154
|
+
if (options.quiet)
|
|
155
|
+
return result;
|
|
156
|
+
if (result.success) {
|
|
157
|
+
console.log(chalk_1.default.green(` ✓ running (http://127.0.0.1:${mcpConfig?.port ?? 8919}/mcp)`));
|
|
158
|
+
}
|
|
159
|
+
else {
|
|
160
|
+
console.log(chalk_1.default.yellow(` ⚠ failed: ${result.error ?? 'Unknown error'}`));
|
|
161
|
+
}
|
|
162
|
+
return result;
|
|
163
|
+
}
|
|
164
|
+
function computeExitCode(result) {
|
|
165
|
+
const services = [
|
|
166
|
+
result.codeartifact,
|
|
167
|
+
result.ecr,
|
|
168
|
+
result.gitlab,
|
|
169
|
+
result.atlassian,
|
|
170
|
+
result.mcpDaemon,
|
|
171
|
+
];
|
|
172
|
+
const hasFailure = services.some(s => !s.success && !s.skipped);
|
|
173
|
+
return hasFailure ? 1 : 0;
|
|
174
|
+
}
|
|
175
|
+
/** Orchestrate the full login flow. Exit codes: 0 = ok, 1 = post-SSO failed, 2 = SSO failed. */
|
|
176
|
+
async function runLoginFlow(options, config, profile) {
|
|
177
|
+
const totalSteps = options.ssoOnly ? 3 : 7;
|
|
178
|
+
const result = {
|
|
179
|
+
sso: { success: false, skipped: false, duration: 0 },
|
|
180
|
+
s3Config: { ...SKIPPED },
|
|
181
|
+
codeartifact: { ...SKIPPED },
|
|
182
|
+
ecr: { ...SKIPPED },
|
|
183
|
+
gitlab: { ...SKIPPED },
|
|
184
|
+
atlassian: { ...SKIPPED },
|
|
185
|
+
mcpDaemon: { ...SKIPPED },
|
|
186
|
+
};
|
|
187
|
+
// Step 1: SSO (always required)
|
|
188
|
+
result.sso = await runSSOStep(profile, options, totalSteps);
|
|
189
|
+
if (!result.sso.success) {
|
|
190
|
+
// SSO failed — all downstream steps already initialised as skipped
|
|
191
|
+
return { result, exitCode: 2 };
|
|
192
|
+
}
|
|
193
|
+
if (options.ssoOnly) {
|
|
194
|
+
// Steps 2, 5, 6, 7 stay skipped; run CA (step 2/3) and ECR (step 3/3)
|
|
195
|
+
result.codeartifact = await runCAStep(config, profile, options, 2, totalSteps);
|
|
196
|
+
result.ecr = await runECRStep(config, profile, options, 3, totalSteps);
|
|
197
|
+
return { result, exitCode: computeExitCode(result) };
|
|
198
|
+
}
|
|
199
|
+
// Full 7-step flow
|
|
200
|
+
result.s3Config = await runS3Step(profile, options, 2, totalSteps);
|
|
201
|
+
result.codeartifact = await runCAStep(config, profile, options, 3, totalSteps);
|
|
202
|
+
result.ecr = await runECRStep(config, profile, options, 4, totalSteps);
|
|
203
|
+
// Steps 5-6: GitLab and Atlassian auth (non-blocking, independent)
|
|
204
|
+
const providersConfig = (0, loaders_1.loadProvidersConfig)();
|
|
205
|
+
result.gitlab = await runGitLabStep(providersConfig, options, 5, totalSteps);
|
|
206
|
+
result.atlassian = await runAtlassianStep(providersConfig, options, 6, totalSteps);
|
|
207
|
+
// Step 7: MCP Daemon
|
|
208
|
+
result.mcpDaemon = await runDaemonStep(config?.mcp, options, 7, totalSteps);
|
|
209
|
+
return { result, exitCode: computeExitCode(result) };
|
|
210
|
+
}
|
|
211
|
+
/** Print login summary to the console. Respects --quiet flag. */
|
|
212
|
+
function reportResults(result, options) {
|
|
213
|
+
if (options.quiet)
|
|
214
|
+
return;
|
|
215
|
+
console.log('');
|
|
216
|
+
console.log('=== Login Results ===');
|
|
217
|
+
const services = [
|
|
218
|
+
{ name: 'SSO', result: result.sso },
|
|
219
|
+
{ name: 'S3 Config', result: result.s3Config },
|
|
220
|
+
{ name: 'CodeArtifact', result: result.codeartifact },
|
|
221
|
+
{ name: 'ECR', result: result.ecr },
|
|
222
|
+
{ name: 'GitLab', result: result.gitlab },
|
|
223
|
+
{ name: 'Atlassian', result: result.atlassian },
|
|
224
|
+
{ name: 'MCP Daemon', result: result.mcpDaemon },
|
|
225
|
+
];
|
|
226
|
+
let successCount = 0;
|
|
227
|
+
let skippedCount = 0;
|
|
228
|
+
for (const service of services) {
|
|
229
|
+
let status;
|
|
230
|
+
if (service.result.skipped) {
|
|
231
|
+
status = chalk_1.default.gray('○ SKIPPED');
|
|
232
|
+
skippedCount++;
|
|
233
|
+
}
|
|
234
|
+
else if (service.result.success) {
|
|
235
|
+
status = chalk_1.default.green('✓ OK');
|
|
236
|
+
successCount++;
|
|
237
|
+
}
|
|
238
|
+
else {
|
|
239
|
+
status = chalk_1.default.red('✗ FAILED');
|
|
240
|
+
}
|
|
241
|
+
console.log(`${service.name}: ${status}`);
|
|
242
|
+
if (!service.result.success && !service.result.skipped && service.result.error) {
|
|
243
|
+
console.log(chalk_1.default.red(` → ${service.result.error}`));
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
const total = services.length - skippedCount;
|
|
247
|
+
console.log('');
|
|
248
|
+
console.log(`Total: ${successCount}/${total} services authenticated`);
|
|
249
|
+
console.log('');
|
|
250
|
+
}
|
|
251
|
+
//# sourceMappingURL=orchestrator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"orchestrator.js","sourceRoot":"","sources":["../../../src/commands/login/orchestrator.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
* - Login command outcomes
|
|
8
8
|
* - CLI command options
|
|
9
9
|
*/
|
|
10
|
+
import { McpLocalConfig } from '../../mcp/config/types';
|
|
10
11
|
/**
|
|
11
12
|
* PaduaConfig - Main configuration object persisted to padua.config.json
|
|
12
13
|
*/
|
|
@@ -19,6 +20,8 @@ export interface PaduaConfig {
|
|
|
19
20
|
codeartifact?: CodeArtifactConfig;
|
|
20
21
|
/** ECR registry configuration for Docker authentication */
|
|
21
22
|
ecr?: EcrConfig;
|
|
23
|
+
/** MCP daemon local settings (port, token store, logging) */
|
|
24
|
+
mcp?: McpLocalConfig;
|
|
22
25
|
}
|
|
23
26
|
/**
|
|
24
27
|
* CodeArtifactConfig - Configuration for AWS CodeArtifact npm repository access
|
|
@@ -59,10 +62,18 @@ export interface ServiceResult {
|
|
|
59
62
|
export interface LoginResult {
|
|
60
63
|
/** AWS SSO authentication result */
|
|
61
64
|
sso: ServiceResult;
|
|
65
|
+
/** S3 MCP provider config download result */
|
|
66
|
+
s3Config: ServiceResult;
|
|
62
67
|
/** CodeArtifact npm repository authentication result */
|
|
63
68
|
codeartifact: ServiceResult;
|
|
64
69
|
/** ECR Docker registry authentication result */
|
|
65
70
|
ecr: ServiceResult;
|
|
71
|
+
/** GitLab authentication result (stub for story-037) */
|
|
72
|
+
gitlab: ServiceResult;
|
|
73
|
+
/** Atlassian authentication result (stub for story-037) */
|
|
74
|
+
atlassian: ServiceResult;
|
|
75
|
+
/** MCP Daemon startup result (stub for story-038) */
|
|
76
|
+
mcpDaemon: ServiceResult;
|
|
66
77
|
}
|
|
67
78
|
/**
|
|
68
79
|
* LoginOptions - Command-line options and flags for `padua login`
|