@kya-os/mcp-i-core 1.7.0 → 1.8.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (121) hide show
  1. package/README.md +1 -1
  2. package/dist/conformance/capability-verifier-adapter.d.ts +66 -0
  3. package/dist/conformance/capability-verifier-adapter.js +61 -0
  4. package/dist/conformance/index.d.ts +10 -0
  5. package/dist/conformance/index.js +19 -0
  6. package/dist/conformance/validate-level2.d.ts +203 -0
  7. package/dist/conformance/validate-level2.js +294 -0
  8. package/dist/conformance/vc-jwt-verifier.d.ts +55 -0
  9. package/dist/conformance/vc-jwt-verifier.js +147 -0
  10. package/dist/delegation/did-web-resolver.d.ts +60 -0
  11. package/dist/delegation/did-web-resolver.js +129 -0
  12. package/dist/delegation/outbound-proof.d.ts +3 -2
  13. package/dist/delegation/outbound-proof.js +3 -2
  14. package/dist/delegation/utils.d.ts +3 -1
  15. package/dist/index.d.ts +9 -63
  16. package/dist/index.js +22 -161
  17. package/dist/utils/base58.d.ts +4 -28
  18. package/dist/utils/base58.js +18 -98
  19. package/dist/utils/base64.d.ts +4 -29
  20. package/dist/utils/base64.js +18 -167
  21. package/dist/utils/did-helpers.d.ts +4 -165
  22. package/dist/utils/did-helpers.js +18 -217
  23. package/package.json +5 -7
  24. package/dist/auth/handshake.d.ts +0 -119
  25. package/dist/auth/handshake.js +0 -250
  26. package/dist/auth/index.d.ts +0 -6
  27. package/dist/auth/index.js +0 -11
  28. package/dist/auth/types.d.ts +0 -46
  29. package/dist/auth/types.js +0 -10
  30. package/dist/cache/oauth-config-cache.d.ts +0 -69
  31. package/dist/cache/oauth-config-cache.js +0 -76
  32. package/dist/cache/tool-protection-cache.d.ts +0 -89
  33. package/dist/cache/tool-protection-cache.js +0 -118
  34. package/dist/compliance/index.d.ts +0 -8
  35. package/dist/compliance/index.js +0 -24
  36. package/dist/compliance/schema-registry.d.ts +0 -50
  37. package/dist/compliance/schema-registry.js +0 -438
  38. package/dist/compliance/schema-verifier.d.ts +0 -110
  39. package/dist/compliance/schema-verifier.js +0 -518
  40. package/dist/config/remote-config.d.ts +0 -173
  41. package/dist/config/remote-config.js +0 -253
  42. package/dist/config.d.ts +0 -182
  43. package/dist/config.js +0 -148
  44. package/dist/identity/idp-token-resolver.d.ts +0 -69
  45. package/dist/identity/idp-token-resolver.js +0 -136
  46. package/dist/identity/idp-token-storage.interface.d.ts +0 -80
  47. package/dist/identity/idp-token-storage.interface.js +0 -14
  48. package/dist/identity/user-did-manager.d.ts +0 -228
  49. package/dist/identity/user-did-manager.js +0 -356
  50. package/dist/logging/index.d.ts +0 -5
  51. package/dist/logging/index.js +0 -10
  52. package/dist/logging/logger.d.ts +0 -33
  53. package/dist/logging/logger.js +0 -104
  54. package/dist/proof/generator.d.ts +0 -109
  55. package/dist/proof/generator.js +0 -236
  56. package/dist/proof/index.d.ts +0 -5
  57. package/dist/proof/index.js +0 -11
  58. package/dist/providers/base.d.ts +0 -95
  59. package/dist/providers/base.js +0 -47
  60. package/dist/providers/memory.d.ts +0 -42
  61. package/dist/providers/memory.js +0 -121
  62. package/dist/runtime/audit-logger.d.ts +0 -37
  63. package/dist/runtime/audit-logger.js +0 -9
  64. package/dist/runtime/base.d.ts +0 -375
  65. package/dist/runtime/base.js +0 -1491
  66. package/dist/runtime/ext-apps-constants.d.ts +0 -14
  67. package/dist/runtime/ext-apps-constants.js +0 -17
  68. package/dist/services/access-control.service.d.ts +0 -138
  69. package/dist/services/access-control.service.js +0 -721
  70. package/dist/services/authorization/authorization-registry.d.ts +0 -29
  71. package/dist/services/authorization/authorization-registry.js +0 -58
  72. package/dist/services/authorization/types.d.ts +0 -53
  73. package/dist/services/authorization/types.js +0 -10
  74. package/dist/services/batch-delegation.service.d.ts +0 -53
  75. package/dist/services/batch-delegation.service.js +0 -95
  76. package/dist/services/crypto.service.d.ts +0 -69
  77. package/dist/services/crypto.service.js +0 -225
  78. package/dist/services/delegation-error-formatter.d.ts +0 -124
  79. package/dist/services/delegation-error-formatter.js +0 -214
  80. package/dist/services/errors.d.ts +0 -49
  81. package/dist/services/errors.js +0 -66
  82. package/dist/services/index.d.ts +0 -9
  83. package/dist/services/index.js +0 -15
  84. package/dist/services/oauth-config.service.d.ts +0 -53
  85. package/dist/services/oauth-config.service.js +0 -141
  86. package/dist/services/oauth-provider-registry.d.ts +0 -88
  87. package/dist/services/oauth-provider-registry.js +0 -128
  88. package/dist/services/oauth-service.d.ts +0 -122
  89. package/dist/services/oauth-service.js +0 -442
  90. package/dist/services/oauth-token-retrieval.service.d.ts +0 -49
  91. package/dist/services/oauth-token-retrieval.service.js +0 -150
  92. package/dist/services/policy.service.d.ts +0 -130
  93. package/dist/services/policy.service.js +0 -399
  94. package/dist/services/proof-verifier.d.ts +0 -98
  95. package/dist/services/proof-verifier.js +0 -319
  96. package/dist/services/provider-resolver.d.ts +0 -89
  97. package/dist/services/provider-resolver.js +0 -196
  98. package/dist/services/provider-validator.d.ts +0 -55
  99. package/dist/services/provider-validator.js +0 -135
  100. package/dist/services/session-registration.service.d.ts +0 -80
  101. package/dist/services/session-registration.service.js +0 -174
  102. package/dist/services/storage.service.d.ts +0 -116
  103. package/dist/services/storage.service.js +0 -411
  104. package/dist/services/tool-context-builder.d.ts +0 -74
  105. package/dist/services/tool-context-builder.js +0 -215
  106. package/dist/services/tool-protection.service.d.ts +0 -193
  107. package/dist/services/tool-protection.service.js +0 -736
  108. package/dist/session/index.d.ts +0 -5
  109. package/dist/session/index.js +0 -11
  110. package/dist/session/manager.d.ts +0 -113
  111. package/dist/session/manager.js +0 -273
  112. package/dist/types/oauth-required-error.d.ts +0 -46
  113. package/dist/types/oauth-required-error.js +0 -42
  114. package/dist/types/tool-protection.d.ts +0 -144
  115. package/dist/types/tool-protection.js +0 -48
  116. package/dist/utils/cors.d.ts +0 -44
  117. package/dist/utils/cors.js +0 -71
  118. package/dist/utils/index.d.ts +0 -8
  119. package/dist/utils/index.js +0 -24
  120. package/dist/utils/storage-keys.d.ts +0 -120
  121. 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