@1mcp/agent 0.34.4 → 0.35.0-beta.2
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 +1 -0
- package/build/admin/assets/admin-console-C5_zD_qW.css +1 -0
- package/build/admin/assets/admin-console-CbHHoqLr.js +61 -0
- package/build/admin/index.html +13 -0
- package/build/application/services/healthService.d.ts +32 -0
- package/build/application/services/healthService.d.ts.map +1 -1
- package/build/application/services/healthService.js +49 -0
- package/build/application/services/healthService.js.map +1 -1
- package/build/commands/admin/admin.d.ts +90 -0
- package/build/commands/admin/admin.d.ts.map +1 -0
- package/build/commands/admin/admin.js +545 -0
- package/build/commands/admin/admin.js.map +1 -0
- package/build/commands/admin/index.d.ts +3 -0
- package/build/commands/admin/index.d.ts.map +1 -0
- package/build/commands/admin/index.js +99 -0
- package/build/commands/admin/index.js.map +1 -0
- package/build/commands/auth/index.d.ts.map +1 -1
- package/build/commands/auth/index.js +24 -5
- package/build/commands/auth/index.js.map +1 -1
- package/build/commands/auth/login.d.ts +1 -0
- package/build/commands/auth/login.d.ts.map +1 -1
- package/build/commands/auth/login.js +6 -10
- package/build/commands/auth/login.js.map +1 -1
- package/build/commands/auth/logout.d.ts +3 -0
- package/build/commands/auth/logout.d.ts.map +1 -1
- package/build/commands/auth/logout.js +19 -32
- package/build/commands/auth/logout.js.map +1 -1
- package/build/commands/auth/runtimeTargetContext.d.ts +25 -0
- package/build/commands/auth/runtimeTargetContext.d.ts.map +1 -0
- package/build/commands/auth/runtimeTargetContext.js +69 -0
- package/build/commands/auth/runtimeTargetContext.js.map +1 -0
- package/build/commands/auth/status.d.ts +1 -0
- package/build/commands/auth/status.d.ts.map +1 -1
- package/build/commands/auth/status.js +10 -33
- package/build/commands/auth/status.js.map +1 -1
- package/build/commands/inspect/index.d.ts.map +1 -1
- package/build/commands/inspect/index.js +4 -0
- package/build/commands/inspect/index.js.map +1 -1
- package/build/commands/inspect/inspect.d.ts +1 -0
- package/build/commands/inspect/inspect.d.ts.map +1 -1
- package/build/commands/inspect/inspect.js +2 -2
- package/build/commands/inspect/inspect.js.map +1 -1
- package/build/commands/instructions/index.d.ts.map +1 -1
- package/build/commands/instructions/index.js +4 -0
- package/build/commands/instructions/index.js.map +1 -1
- package/build/commands/instructions/instructions.d.ts +1 -0
- package/build/commands/instructions/instructions.d.ts.map +1 -1
- package/build/commands/instructions/instructions.js.map +1 -1
- package/build/commands/instructions/instructionsUtils.js +1 -1
- package/build/commands/instructions/instructionsUtils.js.map +1 -1
- package/build/commands/mcp/enable.d.ts +89 -2
- package/build/commands/mcp/enable.d.ts.map +1 -1
- package/build/commands/mcp/enable.js +555 -35
- package/build/commands/mcp/enable.js.map +1 -1
- package/build/commands/mcp/index.d.ts.map +1 -1
- package/build/commands/mcp/index.js +10 -0
- package/build/commands/mcp/index.js.map +1 -1
- package/build/commands/mcp/restart.d.ts +69 -0
- package/build/commands/mcp/restart.d.ts.map +1 -0
- package/build/commands/mcp/restart.js +259 -0
- package/build/commands/mcp/restart.js.map +1 -0
- package/build/commands/mcp/status.d.ts +24 -1
- package/build/commands/mcp/status.d.ts.map +1 -1
- package/build/commands/mcp/status.js +158 -14
- package/build/commands/mcp/status.js.map +1 -1
- package/build/commands/proxy/index.d.ts +1 -0
- package/build/commands/proxy/index.d.ts.map +1 -1
- package/build/commands/proxy/index.js +4 -0
- package/build/commands/proxy/index.js.map +1 -1
- package/build/commands/run/index.d.ts.map +1 -1
- package/build/commands/run/index.js +4 -0
- package/build/commands/run/index.js.map +1 -1
- package/build/commands/run/run.d.ts +1 -0
- package/build/commands/run/run.d.ts.map +1 -1
- package/build/commands/run/run.js +2 -2
- package/build/commands/run/run.js.map +1 -1
- package/build/commands/serve/index.d.ts +8 -0
- package/build/commands/serve/index.d.ts.map +1 -1
- package/build/commands/serve/index.js +12 -0
- package/build/commands/serve/index.js.map +1 -1
- package/build/commands/serve/serve.d.ts +13 -0
- package/build/commands/serve/serve.d.ts.map +1 -1
- package/build/commands/serve/serve.js +115 -57
- package/build/commands/serve/serve.js.map +1 -1
- package/build/commands/serve/serveBackground.d.ts +48 -26
- package/build/commands/serve/serveBackground.d.ts.map +1 -1
- package/build/commands/serve/serveBackground.js +230 -61
- package/build/commands/serve/serveBackground.js.map +1 -1
- package/build/commands/serve/serveRestart.d.ts +1 -1
- package/build/commands/serve/serveRestart.js +1 -1
- package/build/commands/serve/serveStatus.d.ts +20 -10
- package/build/commands/serve/serveStatus.d.ts.map +1 -1
- package/build/commands/serve/serveStatus.js +174 -13
- package/build/commands/serve/serveStatus.js.map +1 -1
- package/build/commands/serve/serveStop.d.ts +13 -4
- package/build/commands/serve/serveStop.d.ts.map +1 -1
- package/build/commands/serve/serveStop.js +212 -23
- package/build/commands/serve/serveStop.js.map +1 -1
- package/build/commands/shared/apiClient.d.ts +5 -1
- package/build/commands/shared/apiClient.d.ts.map +1 -1
- package/build/commands/shared/apiClient.js +17 -9
- package/build/commands/shared/apiClient.js.map +1 -1
- package/build/commands/shared/clientSurfaceAttachment.d.ts +14 -0
- package/build/commands/shared/clientSurfaceAttachment.d.ts.map +1 -1
- package/build/commands/shared/clientSurfaceAttachment.js +51 -9
- package/build/commands/shared/clientSurfaceAttachment.js.map +1 -1
- package/build/commands/shared/commandRunner.d.ts +3 -1
- package/build/commands/shared/commandRunner.d.ts.map +1 -1
- package/build/commands/shared/commandRunner.js +59 -2
- package/build/commands/shared/commandRunner.js.map +1 -1
- package/build/commands/shared/serveTargetResolver.d.ts +14 -1
- package/build/commands/shared/serveTargetResolver.d.ts.map +1 -1
- package/build/commands/shared/serveTargetResolver.js +145 -3
- package/build/commands/shared/serveTargetResolver.js.map +1 -1
- package/build/commands/target/index.d.ts +3 -0
- package/build/commands/target/index.d.ts.map +1 -0
- package/build/commands/target/index.js +171 -0
- package/build/commands/target/index.js.map +1 -0
- package/build/commands/target/target.d.ts +78 -0
- package/build/commands/target/target.d.ts.map +1 -0
- package/build/commands/target/target.js +471 -0
- package/build/commands/target/target.js.map +1 -0
- package/build/config/configManager.d.ts +2 -0
- package/build/config/configManager.d.ts.map +1 -1
- package/build/config/configManager.js +19 -8
- package/build/config/configManager.js.map +1 -1
- package/build/config/mcpConfigMerge.d.ts.map +1 -1
- package/build/config/mcpConfigMerge.js +13 -2
- package/build/config/mcpConfigMerge.js.map +1 -1
- package/build/constants/mcp.d.ts +1 -1
- package/build/constants/mcp.d.ts.map +1 -1
- package/build/constants/mcp.js +1 -1
- package/build/constants/mcp.js.map +1 -1
- package/build/core/client/clientManager.d.ts +24 -1
- package/build/core/client/clientManager.d.ts.map +1 -1
- package/build/core/client/clientManager.js +268 -2
- package/build/core/client/clientManager.js.map +1 -1
- package/build/core/client/connectionHandler.d.ts.map +1 -1
- package/build/core/client/connectionHandler.js +18 -1
- package/build/core/client/connectionHandler.js.map +1 -1
- package/build/core/configChangeHandler.d.ts +1 -0
- package/build/core/configChangeHandler.d.ts.map +1 -1
- package/build/core/configChangeHandler.js +14 -0
- package/build/core/configChangeHandler.js.map +1 -1
- package/build/core/loading/mcpLoadingManager.d.ts.map +1 -1
- package/build/core/loading/mcpLoadingManager.js +16 -4
- package/build/core/loading/mcpLoadingManager.js.map +1 -1
- package/build/core/runtime/runtimeIdentityService.d.ts +30 -0
- package/build/core/runtime/runtimeIdentityService.d.ts.map +1 -0
- package/build/core/runtime/runtimeIdentityService.js +63 -0
- package/build/core/runtime/runtimeIdentityService.js.map +1 -0
- package/build/core/server/agentConfig.d.ts +4 -0
- package/build/core/server/agentConfig.d.ts.map +1 -1
- package/build/core/server/agentConfig.js +3 -0
- package/build/core/server/agentConfig.js.map +1 -1
- package/build/core/server/backendStdioSupervisor.d.ts +73 -0
- package/build/core/server/backendStdioSupervisor.d.ts.map +1 -0
- package/build/core/server/backendStdioSupervisor.js +191 -0
- package/build/core/server/backendStdioSupervisor.js.map +1 -0
- package/build/core/server/backgroundLaunchConfig.d.ts +15 -0
- package/build/core/server/backgroundLaunchConfig.d.ts.map +1 -0
- package/build/core/server/backgroundLaunchConfig.js +46 -0
- package/build/core/server/backgroundLaunchConfig.js.map +1 -0
- package/build/core/server/backgroundRuntimeSupervisor.d.ts +44 -0
- package/build/core/server/backgroundRuntimeSupervisor.d.ts.map +1 -0
- package/build/core/server/backgroundRuntimeSupervisor.js +252 -0
- package/build/core/server/backgroundRuntimeSupervisor.js.map +1 -0
- package/build/core/server/backgroundRuntimeSupervisorState.d.ts +30 -0
- package/build/core/server/backgroundRuntimeSupervisorState.d.ts.map +1 -0
- package/build/core/server/backgroundRuntimeSupervisorState.js +81 -0
- package/build/core/server/backgroundRuntimeSupervisorState.js.map +1 -0
- package/build/core/server/clientInstanceFactory.d.ts.map +1 -1
- package/build/core/server/clientInstanceFactory.js +1 -0
- package/build/core/server/clientInstanceFactory.js.map +1 -1
- package/build/core/server/clientInstancePool.d.ts +17 -5
- package/build/core/server/clientInstancePool.d.ts.map +1 -1
- package/build/core/server/clientInstancePool.js +198 -33
- package/build/core/server/clientInstancePool.js.map +1 -1
- package/build/core/server/clientInstancePoolTypes.d.ts +7 -1
- package/build/core/server/clientInstancePoolTypes.d.ts.map +1 -1
- package/build/core/server/clientInstancePoolTypes.js.map +1 -1
- package/build/core/server/runtimeScopeOwnership.d.ts +61 -0
- package/build/core/server/runtimeScopeOwnership.d.ts.map +1 -0
- package/build/core/server/runtimeScopeOwnership.js +544 -0
- package/build/core/server/runtimeScopeOwnership.js.map +1 -0
- package/build/core/server/serverManager.d.ts +2 -0
- package/build/core/server/serverManager.d.ts.map +1 -1
- package/build/core/server/serverManager.js +30 -0
- package/build/core/server/serverManager.js.map +1 -1
- package/build/core/server/templateIdentity.d.ts +10 -0
- package/build/core/server/templateIdentity.d.ts.map +1 -1
- package/build/core/server/templateIdentity.js +33 -0
- package/build/core/server/templateIdentity.js.map +1 -1
- package/build/core/server/templateServerCleanup.d.ts.map +1 -1
- package/build/core/server/templateServerCleanup.js +7 -1
- package/build/core/server/templateServerCleanup.js.map +1 -1
- package/build/core/server/templateServerManager.d.ts +13 -0
- package/build/core/server/templateServerManager.d.ts.map +1 -1
- package/build/core/server/templateServerManager.js +129 -4
- package/build/core/server/templateServerManager.js.map +1 -1
- package/build/core/tools/handlers/serverManagementHandler.d.ts +117 -11
- package/build/core/tools/handlers/serverManagementHandler.d.ts.map +1 -1
- package/build/core/tools/handlers/serverManagementHandler.js +103 -45
- package/build/core/tools/handlers/serverManagementHandler.js.map +1 -1
- package/build/core/tools/internal/adapters/helpers/configTransformers.d.ts +2 -2
- package/build/core/tools/internal/adapters/management/managementAdapter.d.ts +2 -2
- package/build/core/tools/internal/adapters/management/managementAdapter.d.ts.map +1 -1
- package/build/core/tools/internal/adapters/management/managementAdapter.js +45 -26
- package/build/core/tools/internal/adapters/management/managementAdapter.js.map +1 -1
- package/build/core/tools/internal/adapters/management/types.d.ts +21 -2
- package/build/core/tools/internal/adapters/management/types.d.ts.map +1 -1
- package/build/core/tools/internal/managementHandlers.d.ts.map +1 -1
- package/build/core/tools/internal/managementHandlers.js +73 -22
- package/build/core/tools/internal/managementHandlers.js.map +1 -1
- package/build/core/tools/internal/schemas/discovery.d.ts +3 -3
- package/build/core/tools/internal/schemas/edit.js +1 -1
- package/build/core/tools/internal/schemas/edit.js.map +1 -1
- package/build/core/tools/internal/schemas/index.d.ts +90 -19
- package/build/core/tools/internal/schemas/index.d.ts.map +1 -1
- package/build/core/tools/internal/schemas/installation.d.ts +7 -7
- package/build/core/tools/internal/schemas/management.d.ts +80 -9
- package/build/core/tools/internal/schemas/management.d.ts.map +1 -1
- package/build/core/tools/internal/schemas/management.js +69 -2
- package/build/core/tools/internal/schemas/management.js.map +1 -1
- package/build/core/types/client.d.ts +9 -2
- package/build/core/types/client.d.ts.map +1 -1
- package/build/core/types/client.js +4 -0
- package/build/core/types/client.js.map +1 -1
- package/build/core/types/transport.d.ts +34 -4
- package/build/core/types/transport.d.ts.map +1 -1
- package/build/core/types/transport.js +26 -3
- package/build/core/types/transport.js.map +1 -1
- package/build/domains/admin/adminBackendRestartService.d.ts +41 -0
- package/build/domains/admin/adminBackendRestartService.d.ts.map +1 -0
- package/build/domains/admin/adminBackendRestartService.js +22 -0
- package/build/domains/admin/adminBackendRestartService.js.map +1 -0
- package/build/domains/admin/adminConfiguredServerService.d.ts +275 -0
- package/build/domains/admin/adminConfiguredServerService.d.ts.map +1 -0
- package/build/domains/admin/adminConfiguredServerService.js +1926 -0
- package/build/domains/admin/adminConfiguredServerService.js.map +1 -0
- package/build/domains/admin/adminConnectivityChecker.d.ts +7 -0
- package/build/domains/admin/adminConnectivityChecker.d.ts.map +1 -0
- package/build/domains/admin/adminConnectivityChecker.js +42 -0
- package/build/domains/admin/adminConnectivityChecker.js.map +1 -0
- package/build/domains/admin/adminDomain.d.ts +36 -0
- package/build/domains/admin/adminDomain.d.ts.map +1 -0
- package/build/domains/admin/adminDomain.js +52 -0
- package/build/domains/admin/adminDomain.js.map +1 -0
- package/build/domains/admin/adminIdentityService.d.ts +75 -0
- package/build/domains/admin/adminIdentityService.d.ts.map +1 -0
- package/build/domains/admin/adminIdentityService.js +321 -0
- package/build/domains/admin/adminIdentityService.js.map +1 -0
- package/build/domains/admin/adminOAuthService.d.ts +26 -0
- package/build/domains/admin/adminOAuthService.d.ts.map +1 -0
- package/build/domains/admin/adminOAuthService.js +71 -0
- package/build/domains/admin/adminOAuthService.js.map +1 -0
- package/build/domains/admin/adminOperationService.d.ts +203 -0
- package/build/domains/admin/adminOperationService.d.ts.map +1 -0
- package/build/domains/admin/adminOperationService.js +749 -0
- package/build/domains/admin/adminOperationService.js.map +1 -0
- package/build/domains/admin/adminPresetService.d.ts +140 -0
- package/build/domains/admin/adminPresetService.d.ts.map +1 -0
- package/build/domains/admin/adminPresetService.js +248 -0
- package/build/domains/admin/adminPresetService.js.map +1 -0
- package/build/domains/admin/runtimeScopeAdminLock.d.ts +22 -0
- package/build/domains/admin/runtimeScopeAdminLock.d.ts.map +1 -0
- package/build/domains/admin/runtimeScopeAdminLock.js +121 -0
- package/build/domains/admin/runtimeScopeAdminLock.js.map +1 -0
- package/build/domains/admin/runtimeServerManagerBackendRestartService.d.ts +20 -0
- package/build/domains/admin/runtimeServerManagerBackendRestartService.d.ts.map +1 -0
- package/build/domains/admin/runtimeServerManagerBackendRestartService.js +78 -0
- package/build/domains/admin/runtimeServerManagerBackendRestartService.js.map +1 -0
- package/build/domains/config-change/configChange.d.ts +6 -1
- package/build/domains/config-change/configChange.d.ts.map +1 -1
- package/build/domains/config-change/configChange.js +344 -0
- package/build/domains/config-change/configChange.js.map +1 -1
- package/build/domains/config-change/types.d.ts +18 -3
- package/build/domains/config-change/types.d.ts.map +1 -1
- package/build/domains/preset/manager/presetManager.d.ts +1 -0
- package/build/domains/preset/manager/presetManager.d.ts.map +1 -1
- package/build/domains/preset/manager/presetManager.js +3 -0
- package/build/domains/preset/manager/presetManager.js.map +1 -1
- package/build/domains/preset/tagAuthoring.d.ts +10 -0
- package/build/domains/preset/tagAuthoring.d.ts.map +1 -0
- package/build/domains/preset/tagAuthoring.js +94 -0
- package/build/domains/preset/tagAuthoring.js.map +1 -0
- package/build/domains/runtime-targets/runtimeIdentityVerification.d.ts +51 -0
- package/build/domains/runtime-targets/runtimeIdentityVerification.d.ts.map +1 -0
- package/build/domains/runtime-targets/runtimeIdentityVerification.js +258 -0
- package/build/domains/runtime-targets/runtimeIdentityVerification.js.map +1 -0
- package/build/domains/runtime-targets/runtimeTargetStore.d.ts +222 -0
- package/build/domains/runtime-targets/runtimeTargetStore.d.ts.map +1 -0
- package/build/domains/runtime-targets/runtimeTargetStore.js +1456 -0
- package/build/domains/runtime-targets/runtimeTargetStore.js.map +1 -0
- package/build/index.d.ts.map +1 -1
- package/build/index.js +7 -1
- package/build/index.js.map +1 -1
- package/build/server.d.ts.map +1 -1
- package/build/server.js +18 -2
- package/build/server.js.map +1 -1
- package/build/transport/http/routes/adminRoutes.d.ts +38 -0
- package/build/transport/http/routes/adminRoutes.d.ts.map +1 -0
- package/build/transport/http/routes/adminRoutes.js +1475 -0
- package/build/transport/http/routes/adminRoutes.js.map +1 -0
- package/build/transport/http/routes/healthRoutes.d.ts.map +1 -1
- package/build/transport/http/routes/healthRoutes.js +70 -2
- package/build/transport/http/routes/healthRoutes.js.map +1 -1
- package/build/transport/http/routes/oauthRoutes.d.ts +4 -1
- package/build/transport/http/routes/oauthRoutes.d.ts.map +1 -1
- package/build/transport/http/routes/oauthRoutes.js +12 -190
- package/build/transport/http/routes/oauthRoutes.js.map +1 -1
- package/build/transport/http/routes/runtimeIdentityRoutes.d.ts +7 -0
- package/build/transport/http/routes/runtimeIdentityRoutes.d.ts.map +1 -0
- package/build/transport/http/routes/runtimeIdentityRoutes.js +9 -0
- package/build/transport/http/routes/runtimeIdentityRoutes.js.map +1 -0
- package/build/transport/http/server.d.ts +3 -0
- package/build/transport/http/server.d.ts.map +1 -1
- package/build/transport/http/server.js +102 -4
- package/build/transport/http/server.js.map +1 -1
- package/build/transport/transportFactory.d.ts.map +1 -1
- package/build/transport/transportFactory.js +27 -15
- package/build/transport/transportFactory.js.map +1 -1
- package/build/transport/transportFactory.testSetup.js +2 -0
- package/build/transport/transportFactory.testSetup.js.map +1 -1
- package/build/utils/core/errorTypes.d.ts +3 -0
- package/build/utils/core/errorTypes.d.ts.map +1 -1
- package/build/utils/core/errorTypes.js +7 -0
- package/build/utils/core/errorTypes.js.map +1 -1
- package/build/utils/validation/urlDetection.d.ts +13 -2
- package/build/utils/validation/urlDetection.d.ts.map +1 -1
- package/build/utils/validation/urlDetection.js +37 -6
- package/build/utils/validation/urlDetection.js.map +1 -1
- package/package.json +22 -9
|
@@ -27,16 +27,18 @@ export class ApiClient {
|
|
|
27
27
|
}
|
|
28
28
|
return this.request(url.toString(), 'GET');
|
|
29
29
|
}
|
|
30
|
-
async post(path, body) {
|
|
30
|
+
async post(path, body, options = {}) {
|
|
31
31
|
const url = `${this.baseUrl}${path}`;
|
|
32
|
-
return this.request(url, 'POST', body);
|
|
32
|
+
return this.request(url, 'POST', body, options);
|
|
33
33
|
}
|
|
34
|
-
async request(url, method, body) {
|
|
34
|
+
async request(url, method, body, options = {}) {
|
|
35
35
|
const controller = new AbortController();
|
|
36
|
-
const
|
|
36
|
+
const timeout = options.timeout ?? this.timeout;
|
|
37
|
+
const timer = setTimeout(() => controller.abort(), timeout);
|
|
37
38
|
const headers = {
|
|
38
39
|
'User-Agent': `1MCP/${MCP_SERVER_VERSION}`,
|
|
39
40
|
Accept: 'application/json',
|
|
41
|
+
...options.headers,
|
|
40
42
|
};
|
|
41
43
|
if (this.bearerToken) {
|
|
42
44
|
headers.Authorization = `Bearer ${this.bearerToken}`;
|
|
@@ -62,17 +64,20 @@ export class ApiClient {
|
|
|
62
64
|
if (contentType.includes('application/json')) {
|
|
63
65
|
try {
|
|
64
66
|
const json = (await response.json());
|
|
67
|
+
data = json;
|
|
65
68
|
if (response.ok) {
|
|
66
|
-
|
|
69
|
+
error = undefined;
|
|
67
70
|
}
|
|
68
71
|
else {
|
|
69
72
|
const errObj = json;
|
|
70
73
|
error =
|
|
71
74
|
typeof errObj.error === 'string'
|
|
72
75
|
? errObj.error
|
|
73
|
-
: typeof errObj.message === 'string'
|
|
74
|
-
? errObj.message
|
|
75
|
-
:
|
|
76
|
+
: isErrorObject(errObj.error) && typeof errObj.error.message === 'string'
|
|
77
|
+
? errObj.error.message
|
|
78
|
+
: typeof errObj.message === 'string'
|
|
79
|
+
? errObj.message
|
|
80
|
+
: `HTTP ${response.status}`;
|
|
76
81
|
}
|
|
77
82
|
}
|
|
78
83
|
catch {
|
|
@@ -87,10 +92,13 @@ export class ApiClient {
|
|
|
87
92
|
catch (err) {
|
|
88
93
|
clearTimeout(timer);
|
|
89
94
|
if (err instanceof Error && err.name === 'AbortError') {
|
|
90
|
-
return { ok: false, status: 0, error: `Request timed out after ${
|
|
95
|
+
return { ok: false, status: 0, error: `Request timed out after ${timeout}ms` };
|
|
91
96
|
}
|
|
92
97
|
return { ok: false, status: 0, error: err instanceof Error ? err.message : String(err) };
|
|
93
98
|
}
|
|
94
99
|
}
|
|
95
100
|
}
|
|
101
|
+
function isErrorObject(value) {
|
|
102
|
+
return typeof value === 'object' && value !== null;
|
|
103
|
+
}
|
|
96
104
|
//# sourceMappingURL=apiClient.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"apiClient.js","sourceRoot":"","sources":["../../../src/commands/shared/apiClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,+CAA+C,CAAC;
|
|
1
|
+
{"version":3,"file":"apiClient.js","sourceRoot":"","sources":["../../../src/commands/shared/apiClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,6 +2,7 @@ import { type AuthProfile } from '../../commands/shared/authProfileStore.js';
|
|
|
2
2
|
import { type CliSessionCache } from '../../commands/shared/serveClient.js';
|
|
3
3
|
import { type ResolvableServeTargetOptions } from '../../commands/shared/serveTargetResolver.js';
|
|
4
4
|
import type { ProjectConfig } from '../../config/projectConfigTypes.js';
|
|
5
|
+
import type { RuntimeIdentityWarning } from '../../domains/runtime-targets/runtimeIdentityVerification.js';
|
|
5
6
|
import type { ContextData } from '../../types/context.js';
|
|
6
7
|
export type ReusableClientSurface = 'run' | 'inspect' | 'instructions';
|
|
7
8
|
export type FreshClientSurface = 'stdio-proxy';
|
|
@@ -15,10 +16,17 @@ export interface ResolvedAttachmentTarget<TOptions extends ResolvableServeTarget
|
|
|
15
16
|
serverUrl: URL;
|
|
16
17
|
serverPid?: number;
|
|
17
18
|
source: 'user' | 'pidfile' | 'portscan';
|
|
19
|
+
runtimeTargetContext?: {
|
|
20
|
+
name: string;
|
|
21
|
+
kind: 'local' | 'remote';
|
|
22
|
+
runtimeScopeId?: string;
|
|
23
|
+
};
|
|
24
|
+
runtimeIdentityWarnings?: RuntimeIdentityWarning[];
|
|
18
25
|
}
|
|
19
26
|
export interface ClientSurfaceAttachmentPorts<TOptions extends ResolvableServeTargetOptions> {
|
|
20
27
|
resolveTarget: (options: TOptions) => Promise<ResolvedAttachmentTarget<TOptions>>;
|
|
21
28
|
loadAuthProfile: (configDir: string | undefined, normalizedBaseUrl: string) => Promise<AuthProfile | null>;
|
|
29
|
+
getOAuthTokenReference: (contextName: string, runtimeScopeId: string) => Promise<unknown | undefined>;
|
|
22
30
|
readSessionCache: (cachePath: string, serverUrl: string, contextHash: string) => Promise<CliSessionCache | null>;
|
|
23
31
|
writeSessionCache: (cachePath: string, cache: CliSessionCache) => Promise<void>;
|
|
24
32
|
deleteSessionCache: (cachePath: string) => Promise<void>;
|
|
@@ -38,6 +46,11 @@ export interface ClientSurfaceAttachmentContext<TOptions extends ResolvableServe
|
|
|
38
46
|
sessionId: string;
|
|
39
47
|
restSupport?: boolean;
|
|
40
48
|
}
|
|
49
|
+
export interface ClientSurfaceAuthRequiredContext<TOptions extends ResolvableServeTargetOptions = ResolvableServeTargetOptions> {
|
|
50
|
+
baseUrl: string;
|
|
51
|
+
options: TOptions;
|
|
52
|
+
target: Pick<ResolvedAttachmentTarget<TOptions>, 'runtimeTargetContext'>;
|
|
53
|
+
}
|
|
41
54
|
export interface FreshClientSurfaceAttachmentResult<TOptions extends ResolvableServeTargetOptions> {
|
|
42
55
|
target: ResolvedAttachmentTarget<TOptions>;
|
|
43
56
|
options: TOptions;
|
|
@@ -129,4 +142,5 @@ export interface AttachFreshClientSurfaceOptions<TOptions extends ResolvableServ
|
|
|
129
142
|
}
|
|
130
143
|
export declare function attachFreshClientSurface<TOptions extends ResolvableServeTargetOptions>(input: AttachFreshClientSurfaceOptions<TOptions>): Promise<FreshClientSurfaceAttachmentResult<TOptions>>;
|
|
131
144
|
export declare function attachReusableClientSurface<TOptions extends ResolvableServeTargetOptions, TValue>(input: AttachReusableClientSurfaceOptions<TOptions, TValue>): Promise<ReusableClientSurfaceAttachmentResult<TOptions, TValue>>;
|
|
145
|
+
export declare function formatClientSurfaceAuthRequiredMessage<TOptions extends ResolvableServeTargetOptions>(context: ClientSurfaceAuthRequiredContext<TOptions>): string;
|
|
132
146
|
//# sourceMappingURL=clientSurfaceAttachment.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"clientSurfaceAttachment.d.ts","sourceRoot":"","sources":["../../../src/commands/shared/clientSurfaceAttachment.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,WAAW,EAAuC,MAAM,0CAA0C,CAAC;AAEjH,OAAO,EACL,KAAK,eAAe,EAMrB,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EACL,KAAK,4BAA4B,EAGlC,MAAM,6CAA6C,CAAC;AACrD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AACvE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAIzD,MAAM,MAAM,qBAAqB,GAAG,KAAK,GAAG,SAAS,GAAG,cAAc,CAAC;AACvE,MAAM,MAAM,kBAAkB,GAAG,aAAa,CAAC;AAC/C,MAAM,MAAM,kBAAkB,GAAG,kBAAkB,GAAG,mBAAmB,GAAG,cAAc,CAAC;AAE3F,MAAM,WAAW,wBAAwB,CACvC,QAAQ,SAAS,4BAA4B,GAAG,4BAA4B;IAE5E,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,aAAa,GAAG,IAAI,CAAC;IACpC,aAAa,EAAE,QAAQ,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,GAAG,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"clientSurfaceAttachment.d.ts","sourceRoot":"","sources":["../../../src/commands/shared/clientSurfaceAttachment.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,11 +2,13 @@ import { loadAuthProfile, normalizeServerUrl } from '../../commands/shared/authP
|
|
|
2
2
|
import { buildCliContext, generateStreamableSessionId } from '../../commands/shared/cliContext.js';
|
|
3
3
|
import { deleteCliSessionCache, getCliSessionCachePath, getCliSessionContextHash, readCliSessionCache, writeCliSessionCache, } from '../../commands/shared/serveClient.js';
|
|
4
4
|
import { resolveServeTarget, } from '../../commands/shared/serveTargetResolver.js';
|
|
5
|
+
import { RuntimeTargetStore } from '../../domains/runtime-targets/runtimeTargetStore.js';
|
|
5
6
|
import { resolveCanonicalSessionId, withCanonicalSessionId } from '../../utils/context/sessionIdentity.js';
|
|
6
7
|
import { stripMcpSuffix } from '../../utils/urlUtils.js';
|
|
7
8
|
export async function attachFreshClientSurface(input) {
|
|
8
9
|
const ports = withDefaultPorts(input.ports);
|
|
9
10
|
const target = await ports.resolveTarget(input.options);
|
|
11
|
+
writeRuntimeTargetWarnings(target.runtimeIdentityWarnings);
|
|
10
12
|
const options = target.mergedOptions;
|
|
11
13
|
const freshSessionId = generateStreamableSessionId();
|
|
12
14
|
const baseContext = buildCliContext({
|
|
@@ -19,7 +21,7 @@ export async function attachFreshClientSurface(input) {
|
|
|
19
21
|
});
|
|
20
22
|
const contextHash = getCliSessionContextHash(baseContext);
|
|
21
23
|
const baseUrl = stripMcpSuffix(target.discoveredUrl);
|
|
22
|
-
const
|
|
24
|
+
const bearerToken = await loadBearerToken(ports, target, options, baseUrl);
|
|
23
25
|
const requestSessionId = resolveCanonicalSessionId({ context: baseContext, transportSessionId: freshSessionId });
|
|
24
26
|
const context = withCanonicalSessionId(baseContext, requestSessionId);
|
|
25
27
|
return {
|
|
@@ -27,7 +29,7 @@ export async function attachFreshClientSurface(input) {
|
|
|
27
29
|
options,
|
|
28
30
|
baseUrl,
|
|
29
31
|
serverUrl: target.serverUrl,
|
|
30
|
-
bearerToken
|
|
32
|
+
bearerToken,
|
|
31
33
|
context,
|
|
32
34
|
contextHash,
|
|
33
35
|
requestSessionId,
|
|
@@ -37,6 +39,7 @@ export async function attachFreshClientSurface(input) {
|
|
|
37
39
|
export async function attachReusableClientSurface(input) {
|
|
38
40
|
const ports = withDefaultPorts(input.ports);
|
|
39
41
|
const target = await ports.resolveTarget(input.options);
|
|
42
|
+
writeRuntimeTargetWarnings(target.runtimeIdentityWarnings);
|
|
40
43
|
const options = target.mergedOptions;
|
|
41
44
|
const baseContext = buildCliContext({
|
|
42
45
|
cwd: target.cwd,
|
|
@@ -53,8 +56,9 @@ export async function attachReusableClientSurface(input) {
|
|
|
53
56
|
contextHash,
|
|
54
57
|
});
|
|
55
58
|
const baseUrl = stripMcpSuffix(target.discoveredUrl);
|
|
56
|
-
const
|
|
57
|
-
|
|
59
|
+
const bearerTokenPromise = loadBearerToken(ports, target, options, baseUrl);
|
|
60
|
+
const [bearerToken, cachedSession] = await Promise.all([
|
|
61
|
+
bearerTokenPromise,
|
|
58
62
|
ports.readSessionCache(cachePath, target.serverUrl.toString(), contextHash),
|
|
59
63
|
]);
|
|
60
64
|
const requestSessionId = resolveCanonicalSessionId({
|
|
@@ -68,7 +72,7 @@ export async function attachReusableClientSurface(input) {
|
|
|
68
72
|
options,
|
|
69
73
|
baseUrl,
|
|
70
74
|
serverUrl: target.serverUrl,
|
|
71
|
-
bearerToken
|
|
75
|
+
bearerToken,
|
|
72
76
|
context,
|
|
73
77
|
contextHash,
|
|
74
78
|
cachePath,
|
|
@@ -99,7 +103,7 @@ export async function attachReusableClientSurface(input) {
|
|
|
99
103
|
cachePath,
|
|
100
104
|
target,
|
|
101
105
|
baseUrl,
|
|
102
|
-
bearerToken
|
|
106
|
+
bearerToken,
|
|
103
107
|
cachedSession,
|
|
104
108
|
restSupport,
|
|
105
109
|
observed: restResponse.observed,
|
|
@@ -115,7 +119,7 @@ export async function attachReusableClientSurface(input) {
|
|
|
115
119
|
cachePath,
|
|
116
120
|
target,
|
|
117
121
|
baseUrl,
|
|
118
|
-
bearerToken
|
|
122
|
+
bearerToken,
|
|
119
123
|
cachedSession,
|
|
120
124
|
restSupport,
|
|
121
125
|
observed: restResponse.observed,
|
|
@@ -159,7 +163,7 @@ export async function attachReusableClientSurface(input) {
|
|
|
159
163
|
cachePath,
|
|
160
164
|
target,
|
|
161
165
|
baseUrl,
|
|
162
|
-
bearerToken
|
|
166
|
+
bearerToken,
|
|
163
167
|
cachedSession,
|
|
164
168
|
restSupport,
|
|
165
169
|
observed: mcpResponse.observed,
|
|
@@ -174,7 +178,7 @@ export async function attachReusableClientSurface(input) {
|
|
|
174
178
|
cachePath,
|
|
175
179
|
target,
|
|
176
180
|
baseUrl,
|
|
177
|
-
bearerToken
|
|
181
|
+
bearerToken,
|
|
178
182
|
cachedSession,
|
|
179
183
|
restSupport,
|
|
180
184
|
observed: mcpResponse.observed,
|
|
@@ -184,12 +188,50 @@ function withDefaultPorts(ports) {
|
|
|
184
188
|
return {
|
|
185
189
|
resolveTarget: ports?.resolveTarget ?? ((options) => resolveServeTarget(options)),
|
|
186
190
|
loadAuthProfile: ports?.loadAuthProfile ?? loadAuthProfile,
|
|
191
|
+
getOAuthTokenReference: ports?.getOAuthTokenReference ??
|
|
192
|
+
((contextName, runtimeScopeId) => Promise.resolve(new RuntimeTargetStore().getOAuthTokenReference(contextName, runtimeScopeId))),
|
|
187
193
|
readSessionCache: ports?.readSessionCache ?? readCliSessionCache,
|
|
188
194
|
writeSessionCache: ports?.writeSessionCache ?? writeCliSessionCache,
|
|
189
195
|
deleteSessionCache: ports?.deleteSessionCache ?? deleteCliSessionCache,
|
|
190
196
|
now: ports?.now ?? Date.now,
|
|
191
197
|
};
|
|
192
198
|
}
|
|
199
|
+
async function loadBearerToken(ports, target, options, baseUrl) {
|
|
200
|
+
if (options.url) {
|
|
201
|
+
return undefined;
|
|
202
|
+
}
|
|
203
|
+
const runtimeTargetContext = target.runtimeTargetContext;
|
|
204
|
+
if (runtimeTargetContext) {
|
|
205
|
+
if (!runtimeTargetContext.runtimeScopeId) {
|
|
206
|
+
return undefined;
|
|
207
|
+
}
|
|
208
|
+
const reference = await ports.getOAuthTokenReference(runtimeTargetContext.name, runtimeTargetContext.runtimeScopeId);
|
|
209
|
+
return toOAuthTokenReference(reference)?.token;
|
|
210
|
+
}
|
|
211
|
+
const authProfile = await ports.loadAuthProfile(options['config-dir'], normalizeServerUrl(baseUrl));
|
|
212
|
+
return authProfile?.token;
|
|
213
|
+
}
|
|
214
|
+
export function formatClientSurfaceAuthRequiredMessage(context) {
|
|
215
|
+
if (context.target.runtimeTargetContext) {
|
|
216
|
+
return `Authentication required for target context "${context.target.runtimeTargetContext.name}". Run: 1mcp auth login --context ${context.target.runtimeTargetContext.name} --token <your-token>`;
|
|
217
|
+
}
|
|
218
|
+
if (context.options.url) {
|
|
219
|
+
return `Authentication required for ephemeral URL target. Ephemeral URLs are credentialless; run: 1mcp target add <name> ${context.baseUrl} and retry with --context <name> after context-scoped credentials are available.`;
|
|
220
|
+
}
|
|
221
|
+
return 'Authentication required. Run: 1mcp auth login --context local --token <your-token>';
|
|
222
|
+
}
|
|
223
|
+
function toOAuthTokenReference(value) {
|
|
224
|
+
if (typeof value !== 'object' || value === null) {
|
|
225
|
+
return undefined;
|
|
226
|
+
}
|
|
227
|
+
const candidate = value;
|
|
228
|
+
return typeof candidate.token === 'string' && candidate.token.length > 0 ? { token: candidate.token } : undefined;
|
|
229
|
+
}
|
|
230
|
+
function writeRuntimeTargetWarnings(warnings) {
|
|
231
|
+
for (const warning of warnings ?? []) {
|
|
232
|
+
process.stderr.write(`${warning.code}: ${warning.message}\n`);
|
|
233
|
+
}
|
|
234
|
+
}
|
|
193
235
|
async function persistSession(ports, cachePath, options) {
|
|
194
236
|
await ports.writeSessionCache(cachePath, {
|
|
195
237
|
sessionId: options.sessionId,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"clientSurfaceAttachment.js","sourceRoot":"","sources":["../../../src/commands/shared/clientSurfaceAttachment.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,eAAe,EAAE,kBAAkB,EAAE,MAAM,0CAA0C,CAAC;AACjH,OAAO,EAAE,eAAe,EAAE,2BAA2B,EAAE,MAAM,oCAAoC,CAAC;AAClG,OAAO,EAEL,qBAAqB,EACrB,sBAAsB,EACtB,wBAAwB,EACxB,mBAAmB,EACnB,oBAAoB,GACrB,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EAGL,kBAAkB,GACnB,MAAM,6CAA6C,CAAC;AAGrD,OAAO,EAAE,yBAAyB,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAC1G,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"clientSurfaceAttachment.js","sourceRoot":"","sources":["../../../src/commands/shared/clientSurfaceAttachment.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
1
|
import type { GlobalOptions } from '../../globalOptions.js';
|
|
2
|
-
export declare function runCliCommand<T extends GlobalOptions
|
|
2
|
+
export declare function runCliCommand<T extends GlobalOptions & {
|
|
3
|
+
json?: boolean;
|
|
4
|
+
}>(argv: T, fn: (argv: T) => Promise<void>): Promise<void>;
|
|
3
5
|
//# sourceMappingURL=commandRunner.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commandRunner.d.ts","sourceRoot":"","sources":["../../../src/commands/shared/commandRunner.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAE3D,wBAAsB,aAAa,CAAC,CAAC,SAAS,aAAa,EAAE,IAAI,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"commandRunner.d.ts","sourceRoot":"","sources":["../../../src/commands/shared/commandRunner.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAE3D,wBAAsB,aAAa,CAAC,CAAC,SAAS,aAAa,GAAG;IAAE,IAAI,CAAC,EAAE,OAAO,CAAA;CAAE,EAC9E,IAAI,EAAE,CAAC,EACP,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,GAC7B,OAAO,CAAC,IAAI,CAAC,CAgBf"}
|
|
@@ -6,8 +6,65 @@ export async function runCliCommand(argv, fn) {
|
|
|
6
6
|
}
|
|
7
7
|
catch (error) {
|
|
8
8
|
const message = error instanceof Error ? error.message : String(error);
|
|
9
|
-
|
|
10
|
-
|
|
9
|
+
const exitCode = exitCodeForError(error);
|
|
10
|
+
if (hasJsonOutput(argv)) {
|
|
11
|
+
process.stdout.write(`${JSON.stringify(jsonFailureEnvelope(error, message))}\n`);
|
|
12
|
+
process.exitCode = exitCode;
|
|
13
|
+
return;
|
|
14
|
+
}
|
|
15
|
+
process.stderr.write(`${formatErrorForHuman(error, message)}\n`);
|
|
16
|
+
process.exit(exitCode);
|
|
11
17
|
}
|
|
12
18
|
}
|
|
19
|
+
function hasJsonOutput(argv) {
|
|
20
|
+
return argv.json === true;
|
|
21
|
+
}
|
|
22
|
+
function jsonFailureEnvelope(error, message) {
|
|
23
|
+
const coded = isCodedError(error) ? error : undefined;
|
|
24
|
+
return {
|
|
25
|
+
ok: false,
|
|
26
|
+
cliProtocolVersion: '1',
|
|
27
|
+
requestId: createCliRequestId(),
|
|
28
|
+
error: {
|
|
29
|
+
code: coded?.code ?? 'command_failed',
|
|
30
|
+
message,
|
|
31
|
+
...(coded?.recoveryCommand ? { recoveryCommand: coded.recoveryCommand } : {}),
|
|
32
|
+
...(coded && 'details' in coded && coded.details !== undefined ? { details: coded.details } : {}),
|
|
33
|
+
},
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
function isCodedError(error) {
|
|
37
|
+
return typeof error === 'object' && error !== null && 'code' in error && typeof error.code === 'string';
|
|
38
|
+
}
|
|
39
|
+
function formatErrorForHuman(error, message) {
|
|
40
|
+
if (!isCodedError(error)) {
|
|
41
|
+
return message;
|
|
42
|
+
}
|
|
43
|
+
const detailsMessage = 'details' in error && error.details !== undefined ? `\nDetails: ${JSON.stringify(error.details)}` : '';
|
|
44
|
+
return `${error.code}: ${message}${detailsMessage}${error.recoveryCommand ? `\nRecovery: ${error.recoveryCommand}` : ''}`;
|
|
45
|
+
}
|
|
46
|
+
function exitCodeForError(error) {
|
|
47
|
+
if (!isCodedError(error)) {
|
|
48
|
+
return 1;
|
|
49
|
+
}
|
|
50
|
+
if (error.code === 'target_argument_missing' ||
|
|
51
|
+
error.code.startsWith('credential_') ||
|
|
52
|
+
error.code.startsWith('validation_') ||
|
|
53
|
+
error.code.endsWith('_validation_failed')) {
|
|
54
|
+
return 2;
|
|
55
|
+
}
|
|
56
|
+
if (error.code.startsWith('auth_') || error.code.includes('session')) {
|
|
57
|
+
return 3;
|
|
58
|
+
}
|
|
59
|
+
if (error.code.startsWith('target_') ||
|
|
60
|
+
error.code.startsWith('identity_') ||
|
|
61
|
+
error.code.includes('protocol') ||
|
|
62
|
+
error.code.includes('capability')) {
|
|
63
|
+
return 4;
|
|
64
|
+
}
|
|
65
|
+
return 1;
|
|
66
|
+
}
|
|
67
|
+
function createCliRequestId() {
|
|
68
|
+
return `cli_${Date.now().toString(36)}_${Math.random().toString(36).slice(2, 10)}`;
|
|
69
|
+
}
|
|
13
70
|
//# sourceMappingURL=commandRunner.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commandRunner.js","sourceRoot":"","sources":["../../../src/commands/shared/commandRunner.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,KAAK,UAAU,aAAa,
|
|
1
|
+
{"version":3,"file":"commandRunner.js","sourceRoot":"","sources":["../../../src/commands/shared/commandRunner.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
import { type ServeUrlOptions } from '../../commands/shared/serveClient.js';
|
|
2
2
|
import type { ProjectConfig } from '../../config/projectConfigTypes.js';
|
|
3
|
+
import { type RuntimeIdentityWarning, verifyRuntimeIdentityForTarget } from '../../domains/runtime-targets/runtimeIdentityVerification.js';
|
|
4
|
+
import { RuntimeTargetStore } from '../../domains/runtime-targets/runtimeTargetStore.js';
|
|
3
5
|
import type { GlobalOptions } from '../../globalOptions.js';
|
|
4
6
|
export interface ResolvableServeTargetOptions extends GlobalOptions, ServeUrlOptions {
|
|
5
7
|
url?: string;
|
|
8
|
+
context?: string;
|
|
6
9
|
}
|
|
7
10
|
export interface ResolvedServeTarget<TOptions extends ResolvableServeTargetOptions> {
|
|
8
11
|
cwd: string;
|
|
@@ -15,7 +18,17 @@ export interface ResolvedServeTarget<TOptions extends ResolvableServeTargetOptio
|
|
|
15
18
|
serverPid?: number;
|
|
16
19
|
source: 'user' | 'pidfile' | 'portscan';
|
|
17
20
|
projectContextSource: 'project-config' | 'repo-root' | 'cwd';
|
|
21
|
+
runtimeTargetContext?: {
|
|
22
|
+
name: string;
|
|
23
|
+
kind: 'local' | 'remote';
|
|
24
|
+
runtimeScopeId?: string;
|
|
25
|
+
};
|
|
26
|
+
runtimeIdentityWarnings?: RuntimeIdentityWarning[];
|
|
27
|
+
}
|
|
28
|
+
export interface ServeTargetResolverPorts {
|
|
29
|
+
runtimeTargetStore?: Pick<RuntimeTargetStore, 'current' | 'inspect' | 'requireInsecureTlsConfirmation' | 'updateObservedIdentityMetadata'> & Partial<Pick<RuntimeTargetStore, 'resolveForConnection'>>;
|
|
30
|
+
verifyRuntimeIdentity?: typeof verifyRuntimeIdentityForTarget;
|
|
18
31
|
}
|
|
19
32
|
export declare function mergeServeTargetOptions<TOptions extends ResolvableServeTargetOptions>(options: TOptions, projectConfig: ProjectConfig | null): TOptions;
|
|
20
|
-
export declare function resolveServeTarget<TOptions extends ResolvableServeTargetOptions>(options: TOptions): Promise<ResolvedServeTarget<TOptions>>;
|
|
33
|
+
export declare function resolveServeTarget<TOptions extends ResolvableServeTargetOptions>(options: TOptions, ports?: ServeTargetResolverPorts): Promise<ResolvedServeTarget<TOptions>>;
|
|
21
34
|
//# sourceMappingURL=serveTargetResolver.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serveTargetResolver.d.ts","sourceRoot":"","sources":["../../../src/commands/shared/serveTargetResolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,KAAK,eAAe,EAAE,MAAM,qCAAqC,CAAC;AAE3F,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AACvE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAG3D,MAAM,WAAW,4BAA6B,SAAQ,aAAa,EAAE,eAAe;IAClF,GAAG,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"serveTargetResolver.d.ts","sourceRoot":"","sources":["../../../src/commands/shared/serveTargetResolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,KAAK,eAAe,EAAE,MAAM,qCAAqC,CAAC;AAE3F,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AACvE,OAAO,EACL,KAAK,sBAAsB,EAE3B,8BAA8B,EAC/B,MAAM,6DAA6D,CAAC;AACrE,OAAO,EAIL,kBAAkB,EAEnB,MAAM,oDAAoD,CAAC;AAC5D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAG3D,MAAM,WAAW,4BAA6B,SAAQ,aAAa,EAAE,eAAe;IAClF,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,mBAAmB,CAAC,QAAQ,SAAS,4BAA4B;IAChF,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,aAAa,GAAG,IAAI,CAAC;IACpC,aAAa,EAAE,QAAQ,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,GAAG,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,UAAU,CAAC;IACxC,oBAAoB,EAAE,gBAAgB,GAAG,WAAW,GAAG,KAAK,CAAC;IAC7D,oBAAoB,CAAC,EAAE;QACrB,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,OAAO,GAAG,QAAQ,CAAC;QACzB,cAAc,CAAC,EAAE,MAAM,CAAC;KACzB,CAAC;IACF,uBAAuB,CAAC,EAAE,sBAAsB,EAAE,CAAC;CACpD;AAED,MAAM,WAAW,wBAAwB;IACvC,kBAAkB,CAAC,EAAE,IAAI,CACvB,kBAAkB,EAClB,SAAS,GAAG,SAAS,GAAG,gCAAgC,GAAG,gCAAgC,CAC5F,GACC,OAAO,CAAC,IAAI,CAAC,kBAAkB,EAAE,sBAAsB,CAAC,CAAC,CAAC;IAC5D,qBAAqB,CAAC,EAAE,OAAO,8BAA8B,CAAC;CAC/D;AAED,wBAAgB,uBAAuB,CAAC,QAAQ,SAAS,4BAA4B,EACnF,OAAO,EAAE,QAAQ,EACjB,aAAa,EAAE,aAAa,GAAG,IAAI,GAClC,QAAQ,CAgBV;AAsCD,wBAAsB,kBAAkB,CAAC,QAAQ,SAAS,4BAA4B,EACpF,OAAO,EAAE,QAAQ,EACjB,KAAK,GAAE,wBAA6B,GACnC,OAAO,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC,CA+FxC"}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { buildServerUrl } from '../../commands/shared/serveClient.js';
|
|
2
2
|
import { normalizeTags, resolveProjectContext } from '../../config/projectConfigLoader.js';
|
|
3
|
+
import { verifyRuntimeIdentityForTarget, } from '../../domains/runtime-targets/runtimeIdentityVerification.js';
|
|
4
|
+
import { assertRuntimeTargetConfigDirAllowed, normalizeRuntimeTargetUrl, RuntimeTargetStore, RuntimeTargetStoreError, } from '../../domains/runtime-targets/runtimeTargetStore.js';
|
|
3
5
|
import { discoverServerWithPidFile, validateServer1mcpUrl } from '../../utils/validation/urlDetection.js';
|
|
4
6
|
export function mergeServeTargetOptions(options, projectConfig) {
|
|
5
7
|
const explicitSelectorInput = collectFilterInput(options);
|
|
@@ -48,14 +50,71 @@ function selectOneFilterInput(options) {
|
|
|
48
50
|
}
|
|
49
51
|
return { hasAnySelector, tags: collected.tags };
|
|
50
52
|
}
|
|
51
|
-
export async function resolveServeTarget(options) {
|
|
53
|
+
export async function resolveServeTarget(options, ports = {}) {
|
|
54
|
+
if (options.url && options.context) {
|
|
55
|
+
throw new RuntimeTargetStoreError('target_selector_conflict', 'Use either --url or --context, not both, when selecting a runtime target');
|
|
56
|
+
}
|
|
52
57
|
const resolvedProjectContext = await resolveProjectContext();
|
|
53
|
-
const
|
|
54
|
-
const
|
|
58
|
+
const normalizedOptions = normalizeEphemeralUrlOption(options);
|
|
59
|
+
const mergedOptions = mergeServeTargetOptions(normalizedOptions, resolvedProjectContext.projectConfig);
|
|
60
|
+
const remoteTarget = await resolveRemoteRuntimeTargetContext(mergedOptions, ports);
|
|
61
|
+
if (remoteTarget) {
|
|
62
|
+
const discoveredUrl = withMcpSuffix(remoteTarget.url);
|
|
63
|
+
const tlsOptions = targetTlsOptions({
|
|
64
|
+
caFile: remoteTarget.caFile,
|
|
65
|
+
insecureSkipVerify: remoteTarget.insecureSkipVerify,
|
|
66
|
+
});
|
|
67
|
+
const validation = tlsOptions
|
|
68
|
+
? await validateServer1mcpUrl(discoveredUrl, tlsOptions)
|
|
69
|
+
: await validateServer1mcpUrl(discoveredUrl);
|
|
70
|
+
if (!validation.valid) {
|
|
71
|
+
throw new Error(validation.error || 'Cannot connect to the running 1MCP server.');
|
|
72
|
+
}
|
|
73
|
+
return {
|
|
74
|
+
cwd: resolvedProjectContext.cwd,
|
|
75
|
+
projectRoot: resolvedProjectContext.projectRoot,
|
|
76
|
+
projectName: resolvedProjectContext.projectName,
|
|
77
|
+
projectConfig: resolvedProjectContext.projectConfig,
|
|
78
|
+
mergedOptions,
|
|
79
|
+
discoveredUrl,
|
|
80
|
+
serverUrl: buildServerUrl(discoveredUrl, mergedOptions),
|
|
81
|
+
source: 'user',
|
|
82
|
+
projectContextSource: resolvedProjectContext.source,
|
|
83
|
+
runtimeTargetContext: {
|
|
84
|
+
name: remoteTarget.name,
|
|
85
|
+
kind: 'remote',
|
|
86
|
+
runtimeScopeId: remoteTarget.observedIdentity?.runtimeScopeId,
|
|
87
|
+
},
|
|
88
|
+
runtimeIdentityWarnings: remoteTarget.runtimeIdentityWarnings,
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
const localDiscovery = mergedOptions.context === 'local'
|
|
92
|
+
? await discoverServerWithPidFile(mergedOptions['config-dir'], mergedOptions.url, {
|
|
93
|
+
failOnOwnedRuntimeUnavailable: true,
|
|
94
|
+
})
|
|
95
|
+
: await discoverServerWithPidFile(mergedOptions['config-dir'], mergedOptions.url);
|
|
96
|
+
const { url: discoveredUrl, pid: serverPid, source } = localDiscovery;
|
|
55
97
|
const validation = await validateServer1mcpUrl(discoveredUrl);
|
|
56
98
|
if (!validation.valid) {
|
|
57
99
|
throw new Error(validation.error || 'Cannot connect to the running 1MCP server.');
|
|
58
100
|
}
|
|
101
|
+
let localRuntimeIdentity;
|
|
102
|
+
if (!mergedOptions.url && mergedOptions.context === 'local') {
|
|
103
|
+
try {
|
|
104
|
+
localRuntimeIdentity = await (ports.verifyRuntimeIdentity ?? verifyRuntimeIdentityForTarget)({
|
|
105
|
+
target: {
|
|
106
|
+
name: 'local',
|
|
107
|
+
url: withoutMcpSuffix(discoveredUrl),
|
|
108
|
+
observedIdentity: undefined,
|
|
109
|
+
},
|
|
110
|
+
});
|
|
111
|
+
}
|
|
112
|
+
catch (error) {
|
|
113
|
+
if (mergedOptions.context === 'local') {
|
|
114
|
+
throw error;
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
}
|
|
59
118
|
return {
|
|
60
119
|
cwd: resolvedProjectContext.cwd,
|
|
61
120
|
projectRoot: resolvedProjectContext.projectRoot,
|
|
@@ -67,6 +126,89 @@ export async function resolveServeTarget(options) {
|
|
|
67
126
|
serverPid,
|
|
68
127
|
source,
|
|
69
128
|
projectContextSource: resolvedProjectContext.source,
|
|
129
|
+
runtimeTargetContext: localRuntimeIdentity
|
|
130
|
+
? {
|
|
131
|
+
name: 'local',
|
|
132
|
+
kind: 'local',
|
|
133
|
+
runtimeScopeId: localRuntimeIdentity.identity.runtimeScopeId,
|
|
134
|
+
}
|
|
135
|
+
: undefined,
|
|
136
|
+
runtimeIdentityWarnings: localRuntimeIdentity?.warnings,
|
|
137
|
+
};
|
|
138
|
+
}
|
|
139
|
+
async function resolveRemoteRuntimeTargetContext(options, ports) {
|
|
140
|
+
if (options.url) {
|
|
141
|
+
return null;
|
|
142
|
+
}
|
|
143
|
+
const store = ports.runtimeTargetStore ?? new RuntimeTargetStore();
|
|
144
|
+
const target = store.resolveForConnection
|
|
145
|
+
? store.resolveForConnection(options.context)
|
|
146
|
+
: options.context
|
|
147
|
+
? store.inspect(options.context)
|
|
148
|
+
: store.current();
|
|
149
|
+
if (target.name === 'local') {
|
|
150
|
+
return null;
|
|
151
|
+
}
|
|
152
|
+
assertRuntimeTargetConfigDirAllowed({
|
|
153
|
+
command: 'verify',
|
|
154
|
+
targetName: target.name,
|
|
155
|
+
configDir: options['config-dir'],
|
|
156
|
+
});
|
|
157
|
+
if (target.kind !== 'remote' || !target.url) {
|
|
158
|
+
throw new RuntimeTargetStoreError('target_not_found', `Runtime target "${target.name}" was not found`);
|
|
159
|
+
}
|
|
160
|
+
store.requireInsecureTlsConfirmation({
|
|
161
|
+
name: target.name,
|
|
162
|
+
operation: 'credentialed-attach',
|
|
163
|
+
});
|
|
164
|
+
const remoteTarget = { ...target, url: target.url };
|
|
165
|
+
const verifyRuntimeIdentity = ports.verifyRuntimeIdentity ?? verifyRuntimeIdentityForTarget;
|
|
166
|
+
const verification = await verifyRuntimeIdentity({
|
|
167
|
+
target: {
|
|
168
|
+
name: remoteTarget.name,
|
|
169
|
+
url: remoteTarget.url,
|
|
170
|
+
caFile: remoteTarget.caFile,
|
|
171
|
+
insecureSkipVerify: remoteTarget.insecureSkipVerify,
|
|
172
|
+
observedIdentity: remoteTarget.observedIdentity,
|
|
173
|
+
},
|
|
174
|
+
});
|
|
175
|
+
store.updateObservedIdentityMetadata(remoteTarget.name, verification.identity);
|
|
176
|
+
return {
|
|
177
|
+
...remoteTarget,
|
|
178
|
+
observedIdentity: verification.identity,
|
|
179
|
+
runtimeIdentityWarnings: verification.warnings,
|
|
180
|
+
};
|
|
181
|
+
}
|
|
182
|
+
function withMcpSuffix(url) {
|
|
183
|
+
const parsed = new URL(url);
|
|
184
|
+
parsed.search = '';
|
|
185
|
+
parsed.hash = '';
|
|
186
|
+
const normalized = parsed.toString().replace(/\/$/, '');
|
|
187
|
+
return normalized.endsWith('/mcp') ? normalized : `${normalized}/mcp`;
|
|
188
|
+
}
|
|
189
|
+
function withoutMcpSuffix(url) {
|
|
190
|
+
const parsed = new URL(url);
|
|
191
|
+
parsed.search = '';
|
|
192
|
+
parsed.hash = '';
|
|
193
|
+
const normalized = parsed.toString().replace(/\/$/, '');
|
|
194
|
+
return normalized.endsWith('/mcp') ? normalized.slice(0, -4) : normalized;
|
|
195
|
+
}
|
|
196
|
+
function targetTlsOptions(tls) {
|
|
197
|
+
return tls.caFile || tls.insecureSkipVerify
|
|
198
|
+
? {
|
|
199
|
+
...(tls.caFile ? { caFile: tls.caFile } : {}),
|
|
200
|
+
...(tls.insecureSkipVerify ? { insecureSkipVerify: true } : {}),
|
|
201
|
+
}
|
|
202
|
+
: undefined;
|
|
203
|
+
}
|
|
204
|
+
function normalizeEphemeralUrlOption(options) {
|
|
205
|
+
if (!options.url) {
|
|
206
|
+
return options;
|
|
207
|
+
}
|
|
208
|
+
const normalizedUrl = normalizeRuntimeTargetUrl(options.url);
|
|
209
|
+
return {
|
|
210
|
+
...options,
|
|
211
|
+
url: withMcpSuffix(normalizedUrl),
|
|
70
212
|
};
|
|
71
213
|
}
|
|
72
214
|
//# sourceMappingURL=serveTargetResolver.js.map
|