@kya-os/mcp-i-core 1.8.0 → 1.8.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/dist/conformance/capability-verifier-adapter.d.ts +66 -0
- package/dist/conformance/capability-verifier-adapter.js +61 -0
- package/dist/conformance/index.d.ts +3 -1
- package/dist/conformance/index.js +7 -1
- package/dist/conformance/validate-level2.d.ts +13 -3
- package/dist/conformance/validate-level2.js +15 -5
- package/dist/conformance/vc-jwt-verifier.d.ts +55 -0
- package/dist/conformance/vc-jwt-verifier.js +147 -0
- package/dist/delegation/did-web-resolver.d.ts +60 -0
- package/dist/delegation/did-web-resolver.js +129 -0
- package/dist/index.d.ts +2 -1
- package/dist/index.js +9 -1
- package/package.json +3 -3
- package/dist/auth/handshake.d.ts +0 -119
- package/dist/auth/handshake.js +0 -250
- package/dist/auth/index.d.ts +0 -6
- package/dist/auth/index.js +0 -11
- package/dist/auth/types.d.ts +0 -46
- package/dist/auth/types.js +0 -10
- package/dist/cache/oauth-config-cache.d.ts +0 -69
- package/dist/cache/oauth-config-cache.js +0 -76
- package/dist/cache/tool-protection-cache.d.ts +0 -89
- package/dist/cache/tool-protection-cache.js +0 -118
- package/dist/compliance/index.d.ts +0 -8
- package/dist/compliance/index.js +0 -24
- package/dist/compliance/schema-registry.d.ts +0 -50
- package/dist/compliance/schema-registry.js +0 -438
- package/dist/compliance/schema-verifier.d.ts +0 -110
- package/dist/compliance/schema-verifier.js +0 -518
- package/dist/config/remote-config.d.ts +0 -173
- package/dist/config/remote-config.js +0 -253
- package/dist/config.d.ts +0 -182
- package/dist/config.js +0 -148
- package/dist/identity/idp-token-resolver.d.ts +0 -69
- package/dist/identity/idp-token-resolver.js +0 -136
- package/dist/identity/idp-token-storage.interface.d.ts +0 -80
- package/dist/identity/idp-token-storage.interface.js +0 -14
- package/dist/identity/user-did-manager.d.ts +0 -228
- package/dist/identity/user-did-manager.js +0 -356
- package/dist/logging/index.d.ts +0 -5
- package/dist/logging/index.js +0 -10
- package/dist/logging/logger.d.ts +0 -33
- package/dist/logging/logger.js +0 -104
- package/dist/proof/generator.d.ts +0 -109
- package/dist/proof/generator.js +0 -236
- package/dist/proof/index.d.ts +0 -5
- package/dist/proof/index.js +0 -11
- package/dist/providers/base.d.ts +0 -95
- package/dist/providers/base.js +0 -47
- package/dist/providers/memory.d.ts +0 -42
- package/dist/providers/memory.js +0 -121
- package/dist/runtime/audit-logger.d.ts +0 -37
- package/dist/runtime/audit-logger.js +0 -9
- package/dist/runtime/base.d.ts +0 -375
- package/dist/runtime/base.js +0 -1491
- package/dist/runtime/ext-apps-constants.d.ts +0 -14
- package/dist/runtime/ext-apps-constants.js +0 -17
- package/dist/services/access-control.service.d.ts +0 -138
- package/dist/services/access-control.service.js +0 -721
- package/dist/services/authorization/authorization-registry.d.ts +0 -29
- package/dist/services/authorization/authorization-registry.js +0 -58
- package/dist/services/authorization/types.d.ts +0 -53
- package/dist/services/authorization/types.js +0 -10
- package/dist/services/batch-delegation.service.d.ts +0 -53
- package/dist/services/batch-delegation.service.js +0 -95
- package/dist/services/crypto.service.d.ts +0 -69
- package/dist/services/crypto.service.js +0 -225
- package/dist/services/delegation-error-formatter.d.ts +0 -124
- package/dist/services/delegation-error-formatter.js +0 -214
- package/dist/services/errors.d.ts +0 -49
- package/dist/services/errors.js +0 -66
- package/dist/services/index.d.ts +0 -9
- package/dist/services/index.js +0 -15
- package/dist/services/oauth-config.service.d.ts +0 -53
- package/dist/services/oauth-config.service.js +0 -141
- package/dist/services/oauth-provider-registry.d.ts +0 -88
- package/dist/services/oauth-provider-registry.js +0 -128
- package/dist/services/oauth-service.d.ts +0 -122
- package/dist/services/oauth-service.js +0 -442
- package/dist/services/oauth-token-retrieval.service.d.ts +0 -49
- package/dist/services/oauth-token-retrieval.service.js +0 -150
- package/dist/services/policy.service.d.ts +0 -130
- package/dist/services/policy.service.js +0 -399
- package/dist/services/proof-verifier.d.ts +0 -98
- package/dist/services/proof-verifier.js +0 -319
- package/dist/services/provider-resolver.d.ts +0 -89
- package/dist/services/provider-resolver.js +0 -196
- package/dist/services/provider-validator.d.ts +0 -55
- package/dist/services/provider-validator.js +0 -135
- package/dist/services/session-registration.service.d.ts +0 -80
- package/dist/services/session-registration.service.js +0 -174
- package/dist/services/storage.service.d.ts +0 -116
- package/dist/services/storage.service.js +0 -411
- package/dist/services/tool-context-builder.d.ts +0 -74
- package/dist/services/tool-context-builder.js +0 -215
- package/dist/services/tool-protection.service.d.ts +0 -193
- package/dist/services/tool-protection.service.js +0 -736
- package/dist/session/index.d.ts +0 -5
- package/dist/session/index.js +0 -11
- package/dist/session/manager.d.ts +0 -113
- package/dist/session/manager.js +0 -273
- package/dist/types/oauth-required-error.d.ts +0 -46
- package/dist/types/oauth-required-error.js +0 -42
- package/dist/types/tool-protection.d.ts +0 -144
- package/dist/types/tool-protection.js +0 -48
- package/dist/utils/cors.d.ts +0 -44
- package/dist/utils/cors.js +0 -71
- package/dist/utils/index.d.ts +0 -8
- package/dist/utils/index.js +0 -24
- package/dist/utils/storage-keys.d.ts +0 -120
- package/dist/utils/storage-keys.js +0 -217
|
@@ -1,88 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* OAuth Provider Registry
|
|
3
|
-
*
|
|
4
|
-
* Manages OAuth provider configurations loaded from AgentShield API.
|
|
5
|
-
* Provides efficient lookup and caching of provider configurations.
|
|
6
|
-
*
|
|
7
|
-
* @package @kya-os/mcp-i-core
|
|
8
|
-
*/
|
|
9
|
-
import type { OAuthProvider } from "@kya-os/contracts/config";
|
|
10
|
-
import type { OAuthConfigService } from "./oauth-config.service.js";
|
|
11
|
-
import type { ProviderValidator } from "./provider-validator.js";
|
|
12
|
-
/**
|
|
13
|
-
* Registry for OAuth providers
|
|
14
|
-
*
|
|
15
|
-
* Wraps OAuthConfigService to provide a simple lookup interface
|
|
16
|
-
* for provider configurations.
|
|
17
|
-
*/
|
|
18
|
-
export declare class OAuthProviderRegistry {
|
|
19
|
-
private configService;
|
|
20
|
-
private validator?;
|
|
21
|
-
private providers;
|
|
22
|
-
private _configuredProvider;
|
|
23
|
-
constructor(configService: OAuthConfigService, validator?: ProviderValidator | undefined);
|
|
24
|
-
/**
|
|
25
|
-
* Load providers from AgentShield API
|
|
26
|
-
*
|
|
27
|
-
* Fetches OAuth configuration and caches providers in memory.
|
|
28
|
-
* Clears existing providers before loading new ones.
|
|
29
|
-
* Also stores the configured provider from the API response.
|
|
30
|
-
*
|
|
31
|
-
* @param projectId - Project ID to load providers for
|
|
32
|
-
*/
|
|
33
|
-
loadFromAgentShield(projectId: string): Promise<void>;
|
|
34
|
-
/**
|
|
35
|
-
* Get the explicitly configured provider for this project
|
|
36
|
-
*
|
|
37
|
-
* Returns the provider that the user has configured in AgentShield dashboard.
|
|
38
|
-
* Used by ProviderResolver as fallback when tool doesn't specify oauthProvider.
|
|
39
|
-
*
|
|
40
|
-
* @returns Configured provider name, or null if no provider is configured
|
|
41
|
-
*/
|
|
42
|
-
getConfiguredProvider(): string | null;
|
|
43
|
-
/**
|
|
44
|
-
* Get provider by name
|
|
45
|
-
*
|
|
46
|
-
* @param name - Provider name (e.g., "github", "google")
|
|
47
|
-
* @returns Provider configuration or null if not found
|
|
48
|
-
*/
|
|
49
|
-
getProvider(name: string): OAuthProvider | null;
|
|
50
|
-
/**
|
|
51
|
-
* Get all providers
|
|
52
|
-
*
|
|
53
|
-
* @returns Array of all registered provider configurations
|
|
54
|
-
*/
|
|
55
|
-
getAllProviders(): OAuthProvider[];
|
|
56
|
-
/**
|
|
57
|
-
* Check if provider exists
|
|
58
|
-
*
|
|
59
|
-
* @param name - Provider name to check
|
|
60
|
-
* @returns True if provider is registered, false otherwise
|
|
61
|
-
*/
|
|
62
|
-
hasProvider(name: string): boolean;
|
|
63
|
-
/**
|
|
64
|
-
* Get all provider names
|
|
65
|
-
*
|
|
66
|
-
* @returns Array of provider names
|
|
67
|
-
*/
|
|
68
|
-
getProviderNames(): string[];
|
|
69
|
-
/**
|
|
70
|
-
* Register a custom provider with validation
|
|
71
|
-
*
|
|
72
|
-
* @param name - Provider name (e.g., "custom-idp")
|
|
73
|
-
* @param provider - Provider configuration
|
|
74
|
-
* @throws ProviderValidationError if validation fails
|
|
75
|
-
*/
|
|
76
|
-
registerCustomProvider(name: string, provider: OAuthProvider): void;
|
|
77
|
-
/**
|
|
78
|
-
* Get provider with custom parameters merged
|
|
79
|
-
*
|
|
80
|
-
* Convenience method that returns provider config with custom parameters
|
|
81
|
-
* already applied to authorization URL building context.
|
|
82
|
-
*
|
|
83
|
-
* @param name - Provider name
|
|
84
|
-
* @returns Provider configuration with custom params, or null if not found
|
|
85
|
-
*/
|
|
86
|
-
getProviderWithParams(name: string): OAuthProvider | null;
|
|
87
|
-
}
|
|
88
|
-
//# sourceMappingURL=oauth-provider-registry.d.ts.map
|
|
@@ -1,128 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* OAuth Provider Registry
|
|
4
|
-
*
|
|
5
|
-
* Manages OAuth provider configurations loaded from AgentShield API.
|
|
6
|
-
* Provides efficient lookup and caching of provider configurations.
|
|
7
|
-
*
|
|
8
|
-
* @package @kya-os/mcp-i-core
|
|
9
|
-
*/
|
|
10
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
11
|
-
exports.OAuthProviderRegistry = void 0;
|
|
12
|
-
/**
|
|
13
|
-
* Registry for OAuth providers
|
|
14
|
-
*
|
|
15
|
-
* Wraps OAuthConfigService to provide a simple lookup interface
|
|
16
|
-
* for provider configurations.
|
|
17
|
-
*/
|
|
18
|
-
class OAuthProviderRegistry {
|
|
19
|
-
configService;
|
|
20
|
-
validator;
|
|
21
|
-
providers = new Map();
|
|
22
|
-
_configuredProvider = null;
|
|
23
|
-
constructor(configService, validator) {
|
|
24
|
-
this.configService = configService;
|
|
25
|
-
this.validator = validator;
|
|
26
|
-
}
|
|
27
|
-
/**
|
|
28
|
-
* Load providers from AgentShield API
|
|
29
|
-
*
|
|
30
|
-
* Fetches OAuth configuration and caches providers in memory.
|
|
31
|
-
* Clears existing providers before loading new ones.
|
|
32
|
-
* Also stores the configured provider from the API response.
|
|
33
|
-
*
|
|
34
|
-
* @param projectId - Project ID to load providers for
|
|
35
|
-
*/
|
|
36
|
-
async loadFromAgentShield(projectId) {
|
|
37
|
-
const config = await this.configService.getOAuthConfig(projectId);
|
|
38
|
-
// Clear existing providers
|
|
39
|
-
this.providers.clear();
|
|
40
|
-
// Store the configured provider from API response
|
|
41
|
-
// This is the provider the user has explicitly configured in AgentShield dashboard
|
|
42
|
-
this._configuredProvider = config.configuredProvider || null;
|
|
43
|
-
// Register all providers from config
|
|
44
|
-
for (const [name, providerConfig] of Object.entries(config.providers)) {
|
|
45
|
-
this.providers.set(name, providerConfig);
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
/**
|
|
49
|
-
* Get the explicitly configured provider for this project
|
|
50
|
-
*
|
|
51
|
-
* Returns the provider that the user has configured in AgentShield dashboard.
|
|
52
|
-
* Used by ProviderResolver as fallback when tool doesn't specify oauthProvider.
|
|
53
|
-
*
|
|
54
|
-
* @returns Configured provider name, or null if no provider is configured
|
|
55
|
-
*/
|
|
56
|
-
getConfiguredProvider() {
|
|
57
|
-
return this._configuredProvider;
|
|
58
|
-
}
|
|
59
|
-
/**
|
|
60
|
-
* Get provider by name
|
|
61
|
-
*
|
|
62
|
-
* @param name - Provider name (e.g., "github", "google")
|
|
63
|
-
* @returns Provider configuration or null if not found
|
|
64
|
-
*/
|
|
65
|
-
getProvider(name) {
|
|
66
|
-
return this.providers.get(name) || null;
|
|
67
|
-
}
|
|
68
|
-
/**
|
|
69
|
-
* Get all providers
|
|
70
|
-
*
|
|
71
|
-
* @returns Array of all registered provider configurations
|
|
72
|
-
*/
|
|
73
|
-
getAllProviders() {
|
|
74
|
-
return Array.from(this.providers.values());
|
|
75
|
-
}
|
|
76
|
-
/**
|
|
77
|
-
* Check if provider exists
|
|
78
|
-
*
|
|
79
|
-
* @param name - Provider name to check
|
|
80
|
-
* @returns True if provider is registered, false otherwise
|
|
81
|
-
*/
|
|
82
|
-
hasProvider(name) {
|
|
83
|
-
return this.providers.has(name);
|
|
84
|
-
}
|
|
85
|
-
/**
|
|
86
|
-
* Get all provider names
|
|
87
|
-
*
|
|
88
|
-
* @returns Array of provider names
|
|
89
|
-
*/
|
|
90
|
-
getProviderNames() {
|
|
91
|
-
return Array.from(this.providers.keys());
|
|
92
|
-
}
|
|
93
|
-
/**
|
|
94
|
-
* Register a custom provider with validation
|
|
95
|
-
*
|
|
96
|
-
* @param name - Provider name (e.g., "custom-idp")
|
|
97
|
-
* @param provider - Provider configuration
|
|
98
|
-
* @throws ProviderValidationError if validation fails
|
|
99
|
-
*/
|
|
100
|
-
registerCustomProvider(name, provider) {
|
|
101
|
-
// Validate provider configuration if validator is available
|
|
102
|
-
if (this.validator) {
|
|
103
|
-
this.validator.validate(provider, name);
|
|
104
|
-
}
|
|
105
|
-
// Register provider
|
|
106
|
-
this.providers.set(name, provider);
|
|
107
|
-
}
|
|
108
|
-
/**
|
|
109
|
-
* Get provider with custom parameters merged
|
|
110
|
-
*
|
|
111
|
-
* Convenience method that returns provider config with custom parameters
|
|
112
|
-
* already applied to authorization URL building context.
|
|
113
|
-
*
|
|
114
|
-
* @param name - Provider name
|
|
115
|
-
* @returns Provider configuration with custom params, or null if not found
|
|
116
|
-
*/
|
|
117
|
-
getProviderWithParams(name) {
|
|
118
|
-
const provider = this.getProvider(name);
|
|
119
|
-
if (!provider) {
|
|
120
|
-
return null;
|
|
121
|
-
}
|
|
122
|
-
// Return provider as-is (customParams are already in the config)
|
|
123
|
-
// This method exists for future extensibility if we need to merge params
|
|
124
|
-
return provider;
|
|
125
|
-
}
|
|
126
|
-
}
|
|
127
|
-
exports.OAuthProviderRegistry = OAuthProviderRegistry;
|
|
128
|
-
//# sourceMappingURL=oauth-provider-registry.js.map
|
|
@@ -1,122 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* OAuth Service
|
|
3
|
-
*
|
|
4
|
-
* Handles OAuth token exchange and refresh using PKCE (Proof Key for Code Exchange).
|
|
5
|
-
* Supports both direct PKCE exchange with OAuth providers and proxy mode via AgentShield.
|
|
6
|
-
*
|
|
7
|
-
* MCP-I Provider Registry Model:
|
|
8
|
-
* - Client secrets are NOT sent via the API response
|
|
9
|
-
* - Agents receive metadata.clientSecretName from AgentShield
|
|
10
|
-
* - Secrets are resolved at runtime from secure storage (Cloudflare Worker env)
|
|
11
|
-
* - The SecretResolver interface enables platform-specific secret resolution
|
|
12
|
-
*
|
|
13
|
-
* @package @kya-os/mcp-i-core
|
|
14
|
-
*/
|
|
15
|
-
import type { FetchProvider } from "../providers/base.js";
|
|
16
|
-
import type { OAuthConfigService } from "./oauth-config.service.js";
|
|
17
|
-
import type { IdpTokens, OAuthProvider } from "@kya-os/contracts/config";
|
|
18
|
-
/**
|
|
19
|
-
* Secret Resolver Interface
|
|
20
|
-
*
|
|
21
|
-
* Platform-specific interface for resolving secrets from secure storage.
|
|
22
|
-
* Implementations:
|
|
23
|
-
* - Cloudflare Workers: Resolves from env bindings
|
|
24
|
-
* - Node.js: Resolves from process.env
|
|
25
|
-
* - Other platforms: Custom implementations
|
|
26
|
-
*/
|
|
27
|
-
export interface SecretResolver {
|
|
28
|
-
/**
|
|
29
|
-
* Resolve a secret by its name from secure storage
|
|
30
|
-
* @param secretName - The name/key of the secret (e.g., 'KYA_PROD_MYPROJ_GITHUB_CLIENT_SECRET')
|
|
31
|
-
* @returns The secret value, or undefined if not found
|
|
32
|
-
*/
|
|
33
|
-
resolveSecret(secretName: string): Promise<string | undefined>;
|
|
34
|
-
}
|
|
35
|
-
/**
|
|
36
|
-
* Default secret resolver that uses environment variables
|
|
37
|
-
* Used when no custom resolver is provided
|
|
38
|
-
*/
|
|
39
|
-
export declare const defaultSecretResolver: SecretResolver;
|
|
40
|
-
export interface OAuthServiceConfig {
|
|
41
|
-
/** OAuth config service for fetching provider configurations */
|
|
42
|
-
configService: OAuthConfigService;
|
|
43
|
-
/** Fetch provider for making HTTP requests */
|
|
44
|
-
fetchProvider: FetchProvider;
|
|
45
|
-
/** AgentShield API URL (for proxy mode) */
|
|
46
|
-
agentShieldApiUrl: string;
|
|
47
|
-
/** AgentShield API key (for proxy mode) */
|
|
48
|
-
agentShieldApiKey: string;
|
|
49
|
-
/** Project ID for fetching OAuth config */
|
|
50
|
-
projectId: string;
|
|
51
|
-
/** Optional logger callback for diagnostics */
|
|
52
|
-
logger?: (message: string, data?: unknown) => void;
|
|
53
|
-
/**
|
|
54
|
-
* Optional secret resolver for MCP-I provider-registry model
|
|
55
|
-
* Used to resolve client secrets from secure storage
|
|
56
|
-
* Default: Uses environment variables (process.env)
|
|
57
|
-
*/
|
|
58
|
-
secretResolver?: SecretResolver;
|
|
59
|
-
}
|
|
60
|
-
/**
|
|
61
|
-
* Service for OAuth token exchange and refresh
|
|
62
|
-
*/
|
|
63
|
-
export declare class OAuthService {
|
|
64
|
-
private config;
|
|
65
|
-
constructor(config: OAuthServiceConfig);
|
|
66
|
-
/**
|
|
67
|
-
* Resolve client secret for a provider using the MCP-I provider-registry model
|
|
68
|
-
*
|
|
69
|
-
* Resolution order:
|
|
70
|
-
* 1. If metadata.clientSecretName exists, resolve from secure storage
|
|
71
|
-
* 2. Fall back to clientSecret field (legacy/backward compatibility)
|
|
72
|
-
*
|
|
73
|
-
* @param providerConfig - The OAuth provider configuration
|
|
74
|
-
* @returns The resolved client secret, or undefined if not available
|
|
75
|
-
*/
|
|
76
|
-
resolveClientSecret(providerConfig: OAuthProvider): Promise<string | undefined>;
|
|
77
|
-
/**
|
|
78
|
-
* Exchange authorization code for IDP tokens using PKCE
|
|
79
|
-
*
|
|
80
|
-
* For PKCE providers: Exchanges code directly with OAuth provider (no client secret)
|
|
81
|
-
* For proxy mode: Exchanges code via AgentShield API
|
|
82
|
-
*
|
|
83
|
-
* @param provider - OAuth provider name (e.g., "github", "google")
|
|
84
|
-
* @param code - Authorization code from OAuth callback
|
|
85
|
-
* @param codeVerifier - PKCE code verifier (optional for non-PKCE providers in proxy mode)
|
|
86
|
-
* @param redirectUri - Redirect URI used in authorization request
|
|
87
|
-
* @returns IDP tokens (access_token, refresh_token, expires_at, etc.)
|
|
88
|
-
*/
|
|
89
|
-
exchangeToken(provider: string, code: string, codeVerifier?: string, redirectUri?: string): Promise<IdpTokens>;
|
|
90
|
-
/**
|
|
91
|
-
* Exchange token directly with OAuth provider using PKCE
|
|
92
|
-
*/
|
|
93
|
-
private exchangeTokenPKCE;
|
|
94
|
-
/**
|
|
95
|
-
* Exchange token via AgentShield proxy (for providers that require proxy mode)
|
|
96
|
-
*
|
|
97
|
-
* Note: For Phase 3 two-step flow, OAuth tokens are retrieved separately via
|
|
98
|
-
* OAuthTokenRetrievalService in the callback handler. This method maintains
|
|
99
|
-
* backward compatibility for direct proxy mode usage.
|
|
100
|
-
*/
|
|
101
|
-
private exchangeTokenProxy;
|
|
102
|
-
/**
|
|
103
|
-
* Refresh IDP access token using refresh token
|
|
104
|
-
*
|
|
105
|
-
* For PKCE providers: Refreshes directly with OAuth provider
|
|
106
|
-
* For proxy mode: Refreshes via AgentShield API
|
|
107
|
-
*
|
|
108
|
-
* @param provider - OAuth provider name
|
|
109
|
-
* @param refreshToken - Refresh token from previous token exchange
|
|
110
|
-
* @returns New IDP tokens or null if refresh failed
|
|
111
|
-
*/
|
|
112
|
-
refreshToken(provider: string, refreshToken: string): Promise<IdpTokens | null>;
|
|
113
|
-
/**
|
|
114
|
-
* Refresh token directly with OAuth provider using PKCE
|
|
115
|
-
*/
|
|
116
|
-
private refreshTokenPKCE;
|
|
117
|
-
/**
|
|
118
|
-
* Refresh token via AgentShield proxy
|
|
119
|
-
*/
|
|
120
|
-
private refreshTokenProxy;
|
|
121
|
-
}
|
|
122
|
-
//# sourceMappingURL=oauth-service.d.ts.map
|