@kya-os/mcp-i 0.1.0-alpha.3.9 → 1.2.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 +350 -213
- package/dist/149.js +1 -0
- package/dist/189.js +1 -0
- package/dist/261.js +1 -0
- package/dist/28.js +1 -0
- package/dist/295.js +1 -0
- package/dist/460.js +1 -0
- package/dist/570.js +1 -0
- package/dist/634.js +1 -0
- package/dist/647.js +1 -0
- package/dist/67.js +1 -0
- package/dist/739.js +1 -0
- package/dist/742.js +1 -0
- package/dist/904.js +1 -0
- package/dist/938.js +1 -0
- package/dist/auth/api-key.d.ts +16 -0
- package/dist/auth/api-key.js +82 -0
- package/dist/auth/jwt.d.ts +43 -0
- package/dist/auth/jwt.js +51 -0
- package/dist/auth/oauth/factory.d.ts +12 -0
- package/dist/auth/oauth/factory.js +36 -0
- package/dist/auth/oauth/index.d.ts +5 -0
- package/dist/auth/oauth/index.js +27 -0
- package/dist/auth/oauth/providers/proxy-provider.d.ts +13 -0
- package/dist/auth/oauth/providers/proxy-provider.js +159 -0
- package/dist/auth/oauth/router.d.ts +4 -0
- package/dist/auth/oauth/router.js +294 -0
- package/dist/auth/oauth/storage/memory-storage.d.ts +12 -0
- package/dist/auth/oauth/storage/memory-storage.js +40 -0
- package/dist/auth/oauth/types.d.ts +112 -0
- package/dist/cache/__tests__/cloudflare-kv-nonce-cache.test.d.ts +4 -0
- package/dist/cache/__tests__/cloudflare-kv-nonce-cache.test.js +176 -0
- package/dist/cache/__tests__/concurrency.test.d.ts +5 -0
- package/dist/cache/__tests__/concurrency.test.js +300 -0
- package/dist/cache/__tests__/dynamodb-nonce-cache.test.d.ts +4 -0
- package/dist/cache/__tests__/dynamodb-nonce-cache.test.js +176 -0
- package/dist/cache/__tests__/memory-nonce-cache.test.d.ts +4 -0
- package/dist/cache/__tests__/memory-nonce-cache.test.js +132 -0
- package/dist/cache/__tests__/nonce-cache-factory-simple.test.d.ts +4 -0
- package/dist/cache/__tests__/nonce-cache-factory-simple.test.js +133 -0
- package/dist/cache/__tests__/nonce-cache-factory.test.d.ts +4 -0
- package/dist/cache/__tests__/nonce-cache-factory.test.js +252 -0
- package/dist/cache/__tests__/redis-nonce-cache.test.d.ts +4 -0
- package/dist/cache/__tests__/redis-nonce-cache.test.js +95 -0
- package/dist/cache/cloudflare-kv-nonce-cache.d.ts +14 -0
- package/dist/cache/cloudflare-kv-nonce-cache.js +93 -0
- package/dist/cache/dynamodb-nonce-cache.d.ts +15 -0
- package/dist/cache/dynamodb-nonce-cache.js +92 -0
- package/dist/cache/index.d.ts +16 -0
- package/dist/cache/index.js +32 -0
- package/dist/cache/memory-nonce-cache.d.ts +44 -0
- package/dist/cache/memory-nonce-cache.js +105 -0
- package/dist/cache/nonce-cache-factory.d.ts +20 -0
- package/dist/cache/nonce-cache-factory.js +208 -0
- package/dist/cache/redis-nonce-cache.d.ts +14 -0
- package/dist/cache/redis-nonce-cache.js +53 -0
- package/dist/compiler/compiler-context.d.ts +23 -0
- package/dist/compiler/compiler-context.js +24 -0
- package/dist/compiler/config/constants.d.ts +41 -0
- package/dist/compiler/config/constants.js +45 -0
- package/dist/compiler/config/index.d.ts +252 -0
- package/dist/compiler/config/index.js +15 -0
- package/dist/compiler/config/injection.d.ts +26 -0
- package/dist/compiler/config/injection.js +58 -0
- package/dist/compiler/config/schemas/experimental/index.d.ts +91 -0
- package/dist/compiler/config/schemas/experimental/index.js +16 -0
- package/dist/compiler/config/schemas/experimental/oauth.d.ts +74 -0
- package/dist/compiler/config/schemas/experimental/oauth.js +25 -0
- package/dist/compiler/config/schemas/index.d.ts +6 -0
- package/dist/compiler/config/schemas/index.js +17 -0
- package/dist/compiler/config/schemas/paths.d.ts +9 -0
- package/dist/compiler/config/schemas/paths.js +12 -0
- package/dist/compiler/config/schemas/transport/http.d.ts +82 -0
- package/dist/compiler/config/schemas/transport/http.js +33 -0
- package/dist/compiler/config/schemas/transport/stdio.d.ts +9 -0
- package/dist/compiler/config/schemas/transport/stdio.js +15 -0
- package/dist/compiler/config/schemas/webpack.d.ts +3 -0
- package/dist/compiler/config/schemas/webpack.js +15 -0
- package/dist/compiler/config/types.d.ts +1 -0
- package/dist/compiler/config/types.js +2 -0
- package/dist/compiler/config/utils.d.ts +20 -0
- package/dist/compiler/config/utils.js +36 -0
- package/dist/compiler/generate-env-code.d.ts +1 -0
- package/dist/compiler/generate-env-code.js +8 -0
- package/dist/compiler/generate-import-code.d.ts +1 -0
- package/dist/compiler/generate-import-code.js +24 -0
- package/dist/compiler/get-webpack-config/get-entries.d.ts +3 -0
- package/dist/compiler/get-webpack-config/get-entries.js +29 -0
- package/dist/compiler/get-webpack-config/get-externals.d.ts +7 -0
- package/dist/compiler/get-webpack-config/get-externals.js +88 -0
- package/dist/compiler/get-webpack-config/get-injected-variables.d.ts +8 -0
- package/dist/compiler/get-webpack-config/get-injected-variables.js +25 -0
- package/dist/compiler/get-webpack-config/index.d.ts +4 -0
- package/dist/compiler/get-webpack-config/index.js +101 -0
- package/dist/compiler/get-webpack-config/plugins.d.ts +8 -0
- package/dist/compiler/get-webpack-config/plugins.js +132 -0
- package/dist/compiler/get-webpack-config/resolve-tsconfig-paths.d.ts +9 -0
- package/dist/compiler/get-webpack-config/resolve-tsconfig-paths.js +40 -0
- package/dist/compiler/index.d.ts +6 -0
- package/dist/compiler/index.js +194 -0
- package/dist/compiler/on-first-build.d.ts +3 -0
- package/dist/compiler/on-first-build.js +58 -0
- package/dist/compiler/parse-xmcp-config.d.ts +9 -0
- package/dist/compiler/parse-xmcp-config.js +155 -0
- package/dist/compiler/start-http-server.d.ts +1 -0
- package/dist/compiler/start-http-server.js +34 -0
- package/dist/index.d.ts +12 -0
- package/dist/index.js +38 -0
- package/dist/index.js.LICENSE.txt +49 -0
- package/dist/runtime/__tests__/audit.test.d.ts +4 -0
- package/dist/runtime/__tests__/audit.test.js +328 -0
- package/dist/runtime/__tests__/identity.test.d.ts +4 -0
- package/dist/runtime/__tests__/identity.test.js +164 -0
- package/dist/runtime/__tests__/mcpi-runtime.test.d.ts +4 -0
- package/dist/runtime/__tests__/mcpi-runtime.test.js +372 -0
- package/dist/runtime/__tests__/proof.test.d.ts +4 -0
- package/dist/runtime/__tests__/proof.test.js +302 -0
- package/dist/runtime/__tests__/session.test.d.ts +4 -0
- package/dist/runtime/__tests__/session.test.js +254 -0
- package/dist/runtime/__tests__/well-known.test.d.ts +4 -0
- package/dist/runtime/__tests__/well-known.test.js +312 -0
- package/dist/runtime/adapter-express.js +2 -0
- package/dist/runtime/adapter-express.js.LICENSE.txt +252 -0
- package/dist/runtime/adapter-nextjs.js +2 -0
- package/dist/runtime/adapter-nextjs.js.LICENSE.txt +53 -0
- package/dist/runtime/adapters/express/index.d.ts +2 -0
- package/dist/runtime/adapters/express/index.js +48 -0
- package/dist/runtime/adapters/nextjs/index.d.ts +8 -0
- package/dist/runtime/adapters/nextjs/index.js +18 -0
- package/dist/runtime/audit.d.ts +93 -0
- package/dist/runtime/audit.js +212 -0
- package/dist/runtime/debug.d.ts +118 -0
- package/dist/runtime/debug.js +612 -0
- package/dist/runtime/delegation-hooks.d.ts +85 -0
- package/dist/runtime/delegation-hooks.js +116 -0
- package/dist/runtime/demo.d.ts +71 -0
- package/dist/runtime/demo.js +135 -0
- package/dist/runtime/headers.d.ts +1 -0
- package/dist/runtime/headers.js +9 -0
- package/dist/runtime/http.js +2 -0
- package/dist/runtime/http.js.LICENSE.txt +252 -0
- package/dist/runtime/identity.d.ts +105 -0
- package/dist/runtime/identity.js +232 -0
- package/dist/runtime/index.d.ts +16 -0
- package/dist/runtime/index.js +56 -0
- package/dist/runtime/mcpi-runtime.d.ts +164 -0
- package/dist/runtime/mcpi-runtime.js +352 -0
- package/dist/runtime/proof.d.ts +87 -0
- package/dist/runtime/proof.js +223 -0
- package/dist/runtime/session.d.ts +88 -0
- package/dist/runtime/session.js +216 -0
- package/dist/runtime/stdio.js +2 -0
- package/dist/runtime/stdio.js.LICENSE.txt +1 -0
- package/dist/runtime/templates/home.d.ts +2 -0
- package/dist/runtime/templates/home.js +50 -0
- package/dist/runtime/transports/http/base-streamable-http.d.ts +25 -0
- package/dist/runtime/transports/http/base-streamable-http.js +16 -0
- package/dist/runtime/transports/http/http-context.d.ts +9 -0
- package/dist/runtime/transports/http/http-context.js +8 -0
- package/dist/runtime/transports/http/index.js +55 -0
- package/dist/runtime/transports/http/setup-cors.d.ts +4 -0
- package/dist/runtime/transports/http/setup-cors.js +24 -0
- package/dist/runtime/transports/http/stateless-streamable-http.d.ts +39 -0
- package/dist/runtime/transports/http/stateless-streamable-http.js +331 -0
- package/dist/runtime/transports/stdio/index.d.ts +1 -0
- package/dist/runtime/transports/stdio/index.js +51 -0
- package/dist/runtime/utils/server.d.ts +42 -0
- package/dist/runtime/utils/server.js +39 -0
- package/dist/runtime/utils/tools.d.ts +8 -0
- package/dist/runtime/utils/tools.js +115 -0
- package/dist/runtime/verifier-middleware.d.ts +76 -0
- package/dist/runtime/verifier-middleware.js +322 -0
- package/dist/runtime/well-known.d.ts +151 -0
- package/dist/runtime/well-known.js +258 -0
- package/dist/storage/config.d.ts +28 -0
- package/dist/storage/config.js +79 -0
- package/dist/storage/delegation.d.ts +59 -0
- package/dist/storage/delegation.js +130 -0
- package/dist/storage/merkle-verifier.d.ts +84 -0
- package/dist/storage/merkle-verifier.js +261 -0
- package/dist/test/__tests__/nonce-cache-integration.test.d.ts +1 -0
- package/dist/test/__tests__/nonce-cache-integration.test.js +116 -0
- package/dist/test/__tests__/nonce-cache.test.d.ts +1 -0
- package/dist/test/__tests__/nonce-cache.test.js +122 -0
- package/dist/test/__tests__/runtime-integration.test.d.ts +4 -0
- package/dist/test/__tests__/runtime-integration.test.js +192 -0
- package/dist/test/__tests__/test-infrastructure.test.d.ts +4 -0
- package/dist/test/__tests__/test-infrastructure.test.js +178 -0
- package/dist/test/deterministic-keys.d.ts +31 -0
- package/dist/test/deterministic-keys.js +108 -0
- package/dist/test/examples/test-usage-example.d.ts +140 -0
- package/dist/test/examples/test-usage-example.js +175 -0
- package/dist/test/index.d.ts +11 -0
- package/dist/test/index.js +27 -0
- package/dist/test/local-verification.d.ts +28 -0
- package/dist/test/local-verification.js +342 -0
- package/dist/test/mock-identity-provider.d.ts +96 -0
- package/dist/test/mock-identity-provider.js +243 -0
- package/dist/test/runtime-integration.d.ts +63 -0
- package/dist/test/runtime-integration.js +140 -0
- package/dist/test/test-environment.d.ts +26 -0
- package/dist/test/test-environment.js +50 -0
- package/dist/types/declarations.d.ts +1 -0
- package/dist/types/declarations.js +6 -0
- package/dist/types/middleware.d.ts +2 -0
- package/dist/types/middleware.js +2 -0
- package/dist/types/tool.d.ts +80 -0
- package/dist/types/tool.js +2 -0
- package/dist/utils/cli-icons.d.ts +3 -0
- package/dist/utils/cli-icons.js +7 -0
- package/dist/utils/constants.d.ts +6 -0
- package/dist/utils/constants.js +13 -0
- package/dist/utils/context.d.ts +33 -0
- package/dist/utils/context.js +58 -0
- package/dist/utils/file-watcher.d.ts +19 -0
- package/dist/utils/file-watcher.js +49 -0
- package/dist/utils/fs-utils.d.ts +2 -0
- package/dist/utils/fs-utils.js +22 -0
- package/dist/utils/path-validation.d.ts +3 -0
- package/dist/utils/path-validation.js +56 -0
- package/dist/utils/spawn-process.d.ts +9 -0
- package/dist/utils/spawn-process.js +50 -0
- package/dist/utils/subscribable.d.ts +12 -0
- package/dist/utils/subscribable.js +44 -0
- package/package.json +91 -77
- package/dist/cjs/auto.js +0 -16
- package/dist/cjs/cli-mode.d.ts +0 -16
- package/dist/cjs/cli-mode.js +0 -32
- package/dist/cjs/crypto.d.ts +0 -16
- package/dist/cjs/crypto.js +0 -212
- package/dist/cjs/dev-helper.d.ts +0 -3
- package/dist/cjs/dev-helper.js +0 -46
- package/dist/cjs/encrypted-storage.d.ts +0 -11
- package/dist/cjs/encrypted-storage.js +0 -73
- package/dist/cjs/index.d.ts +0 -56
- package/dist/cjs/index.js +0 -727
- package/dist/cjs/logger.d.ts +0 -32
- package/dist/cjs/logger.js +0 -85
- package/dist/cjs/nextjs.d.ts +0 -10
- package/dist/cjs/nextjs.js +0 -83
- package/dist/cjs/platform-info.d.ts +0 -36
- package/dist/cjs/platform-info.js +0 -274
- package/dist/cjs/polling.d.ts +0 -13
- package/dist/cjs/polling.js +0 -52
- package/dist/cjs/registry/index.d.ts +0 -12
- package/dist/cjs/registry/index.js +0 -56
- package/dist/cjs/registry/knowthat.d.ts +0 -17
- package/dist/cjs/registry/knowthat.js +0 -173
- package/dist/cjs/rotation.d.ts +0 -35
- package/dist/cjs/rotation.js +0 -102
- package/dist/cjs/storage.d.ts +0 -41
- package/dist/cjs/storage.js +0 -163
- package/dist/cjs/transport.d.ts +0 -35
- package/dist/cjs/transport.js +0 -300
- package/dist/cjs/types.d.ts +0 -206
- package/dist/cjs/vercel-adapter.d.ts +0 -8
- package/dist/cjs/vercel-adapter.js +0 -67
- package/dist/esm/auto.d.ts +0 -13
- package/dist/esm/auto.d.ts.map +0 -1
- package/dist/esm/auto.js +0 -30
- package/dist/esm/auto.js.map +0 -1
- package/dist/esm/cli-mode.d.ts +0 -52
- package/dist/esm/cli-mode.d.ts.map +0 -1
- package/dist/esm/cli-mode.js +0 -59
- package/dist/esm/cli-mode.js.map +0 -1
- package/dist/esm/crypto.d.ts +0 -51
- package/dist/esm/crypto.d.ts.map +0 -1
- package/dist/esm/crypto.js +0 -230
- package/dist/esm/crypto.js.map +0 -1
- package/dist/esm/dev-helper.d.ts +0 -15
- package/dist/esm/dev-helper.d.ts.map +0 -1
- package/dist/esm/dev-helper.js +0 -63
- package/dist/esm/dev-helper.js.map +0 -1
- package/dist/esm/encrypted-storage.d.ts +0 -19
- package/dist/esm/encrypted-storage.d.ts.map +0 -1
- package/dist/esm/encrypted-storage.js +0 -48
- package/dist/esm/encrypted-storage.js.map +0 -1
- package/dist/esm/index.d.ts +0 -129
- package/dist/esm/index.d.ts.map +0 -1
- package/dist/esm/index.js +0 -853
- package/dist/esm/index.js.map +0 -1
- package/dist/esm/logger.d.ts +0 -46
- package/dist/esm/logger.d.ts.map +0 -1
- package/dist/esm/logger.js +0 -100
- package/dist/esm/logger.js.map +0 -1
- package/dist/esm/nextjs.d.ts +0 -22
- package/dist/esm/nextjs.d.ts.map +0 -1
- package/dist/esm/nextjs.js +0 -83
- package/dist/esm/nextjs.js.map +0 -1
- package/dist/esm/package.json +0 -1
- package/dist/esm/platform-info.d.ts +0 -74
- package/dist/esm/platform-info.d.ts.map +0 -1
- package/dist/esm/platform-info.js +0 -293
- package/dist/esm/platform-info.js.map +0 -1
- package/dist/esm/polling.d.ts +0 -29
- package/dist/esm/polling.d.ts.map +0 -1
- package/dist/esm/polling.js +0 -76
- package/dist/esm/polling.js.map +0 -1
- package/dist/esm/registry/index.d.ts +0 -43
- package/dist/esm/registry/index.d.ts.map +0 -1
- package/dist/esm/registry/index.js +0 -89
- package/dist/esm/registry/index.js.map +0 -1
- package/dist/esm/registry/knowthat.d.ts +0 -44
- package/dist/esm/registry/knowthat.d.ts.map +0 -1
- package/dist/esm/registry/knowthat.js +0 -220
- package/dist/esm/registry/knowthat.js.map +0 -1
- package/dist/esm/rotation.d.ts +0 -57
- package/dist/esm/rotation.d.ts.map +0 -1
- package/dist/esm/rotation.js +0 -133
- package/dist/esm/rotation.js.map +0 -1
- package/dist/esm/storage.d.ts +0 -65
- package/dist/esm/storage.d.ts.map +0 -1
- package/dist/esm/storage.js +0 -160
- package/dist/esm/storage.js.map +0 -1
- package/dist/esm/transport.d.ts +0 -52
- package/dist/esm/transport.d.ts.map +0 -1
- package/dist/esm/transport.js +0 -340
- package/dist/esm/transport.js.map +0 -1
- package/dist/esm/types.d.ts +0 -293
- package/dist/esm/types.d.ts.map +0 -1
- package/dist/esm/types.js +0 -5
- package/dist/esm/types.js.map +0 -1
- package/dist/esm/vercel-adapter.d.ts +0 -26
- package/dist/esm/vercel-adapter.d.ts.map +0 -1
- package/dist/esm/vercel-adapter.js +0 -80
- package/dist/esm/vercel-adapter.js.map +0 -1
- /package/dist/{cjs → auth/oauth}/types.js +0 -0
- /package/dist/{cjs/auto.d.ts → runtime/transports/http/index.d.ts} +0 -0
|
@@ -1,220 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* KnowThat.ai Registry Adapter
|
|
3
|
-
* Primary registry that can host DIDs
|
|
4
|
-
*/
|
|
5
|
-
import { TransportFactory } from '../transport.js';
|
|
6
|
-
import { pollRegistrationStatus, isAsyncRegistrationResponse } from '../polling.js';
|
|
7
|
-
import { getLogger } from '../logger.js';
|
|
8
|
-
import { generateClientInfo } from '../platform-info.js';
|
|
9
|
-
export class KnowThatRegistry {
|
|
10
|
-
name = 'knowthat';
|
|
11
|
-
type = 'primary';
|
|
12
|
-
endpoint;
|
|
13
|
-
transport;
|
|
14
|
-
options;
|
|
15
|
-
constructor(endpoint = 'https://knowthat.ai', transport, options) {
|
|
16
|
-
this.endpoint = endpoint;
|
|
17
|
-
this.transport = transport || TransportFactory.create();
|
|
18
|
-
this.options = options;
|
|
19
|
-
}
|
|
20
|
-
/**
|
|
21
|
-
* Use the fast CLI registration endpoint
|
|
22
|
-
*/
|
|
23
|
-
async publishViaCLI(data) {
|
|
24
|
-
const logger = getLogger();
|
|
25
|
-
try {
|
|
26
|
-
logger.debug('Using fast CLI registration endpoint');
|
|
27
|
-
// Submit registration request with flat structure
|
|
28
|
-
const response = await this.transport.post(`${this.endpoint}/api/agents/cli-register`, {
|
|
29
|
-
name: data.name,
|
|
30
|
-
description: data.description,
|
|
31
|
-
repository: data.repository,
|
|
32
|
-
publicKey: data.publicKey
|
|
33
|
-
}, {
|
|
34
|
-
timeout: 5000, // 5 second timeout for CLI endpoint
|
|
35
|
-
headers: {
|
|
36
|
-
'Content-Type': 'application/json',
|
|
37
|
-
'User-Agent': `@kya-os/mcp-i/${generateClientInfo().sdkVersion}`
|
|
38
|
-
}
|
|
39
|
-
});
|
|
40
|
-
logger.debug(`CLI registration completed in ${response.data.responseTime}ms`);
|
|
41
|
-
// Handle key generation if the server generated keys
|
|
42
|
-
if (response.data.keys && !data.publicKey) {
|
|
43
|
-
logger.warn(response.data.keys.warning || 'Server generated keys - store them securely!');
|
|
44
|
-
}
|
|
45
|
-
return {
|
|
46
|
-
success: true,
|
|
47
|
-
registryAgentId: response.data.agent.id,
|
|
48
|
-
profileUrl: response.data.agent.url,
|
|
49
|
-
claimUrl: response.data.claimUrl,
|
|
50
|
-
claimToken: response.data.claimToken,
|
|
51
|
-
generatedKeys: response.data.keys
|
|
52
|
-
};
|
|
53
|
-
}
|
|
54
|
-
catch (error) {
|
|
55
|
-
logger.debug(`CLI registration failed: ${error.message}`);
|
|
56
|
-
throw error; // Re-throw for fallback handling
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
/**
|
|
60
|
-
* Determine which endpoint to use based on configuration and context
|
|
61
|
-
*/
|
|
62
|
-
shouldUseCLIEndpoint() {
|
|
63
|
-
// Explicit configuration takes precedence
|
|
64
|
-
if (this.options?.registryEndpoint === 'cli')
|
|
65
|
-
return true;
|
|
66
|
-
if (this.options?.registryEndpoint === 'auto-register')
|
|
67
|
-
return false;
|
|
68
|
-
// Auto mode: use CLI endpoint if we're in a context that suggests CLI usage
|
|
69
|
-
if (this.options?.registryEndpoint === 'auto' || !this.options?.registryEndpoint) {
|
|
70
|
-
// Check if we have a progress callback (indicates CLI usage)
|
|
71
|
-
if (this.options?.onProgress)
|
|
72
|
-
return true;
|
|
73
|
-
// Check if processingMode is explicitly set to sync (CLI preference)
|
|
74
|
-
if (this.options?.processingMode === 'sync')
|
|
75
|
-
return true;
|
|
76
|
-
// Check if we're in a TTY environment (interactive terminal)
|
|
77
|
-
if (process.stdout?.isTTY)
|
|
78
|
-
return true;
|
|
79
|
-
}
|
|
80
|
-
return false;
|
|
81
|
-
}
|
|
82
|
-
/**
|
|
83
|
-
* Primary registration - creates DID and hosts DID document
|
|
84
|
-
* Now supports both CLI (fast) and auto-register (async) endpoints
|
|
85
|
-
*/
|
|
86
|
-
async publish(data) {
|
|
87
|
-
const logger = getLogger();
|
|
88
|
-
// Determine which endpoint to use
|
|
89
|
-
const useCLI = this.shouldUseCLIEndpoint();
|
|
90
|
-
if (useCLI) {
|
|
91
|
-
try {
|
|
92
|
-
return await this.publishViaCLI(data);
|
|
93
|
-
}
|
|
94
|
-
catch (error) {
|
|
95
|
-
logger.debug('CLI endpoint failed, falling back to auto-register');
|
|
96
|
-
// Fall through to auto-register
|
|
97
|
-
}
|
|
98
|
-
}
|
|
99
|
-
// Use auto-register endpoint (existing implementation)
|
|
100
|
-
return await this.publishViaAutoRegister(data);
|
|
101
|
-
}
|
|
102
|
-
/**
|
|
103
|
-
* Original auto-register implementation
|
|
104
|
-
*/
|
|
105
|
-
async publishViaAutoRegister(data) {
|
|
106
|
-
const logger = getLogger();
|
|
107
|
-
try {
|
|
108
|
-
// Generate dynamic client info based on runtime environment
|
|
109
|
-
const clientInfo = generateClientInfo({
|
|
110
|
-
// Convert 'auto' to undefined to let platform detection decide
|
|
111
|
-
processingMode: this.options?.processingMode === 'auto'
|
|
112
|
-
? undefined
|
|
113
|
-
: this.options?.processingMode || 'sync',
|
|
114
|
-
customMetadata: {
|
|
115
|
-
source: 'mcp-i-sdk'
|
|
116
|
-
}
|
|
117
|
-
});
|
|
118
|
-
logger.debug(`Generated client info: ${JSON.stringify(clientInfo)}`);
|
|
119
|
-
// Submit registration request
|
|
120
|
-
const response = await this.transport.post(`${this.endpoint}/api/agents/auto-register`, {
|
|
121
|
-
metadata: {
|
|
122
|
-
name: data.name,
|
|
123
|
-
description: data.description,
|
|
124
|
-
repository: data.repository,
|
|
125
|
-
version: '1.0.0'
|
|
126
|
-
},
|
|
127
|
-
clientInfo,
|
|
128
|
-
// If we already have a public key, send it
|
|
129
|
-
publicKey: data.publicKey || undefined
|
|
130
|
-
}, {
|
|
131
|
-
timeout: 30000,
|
|
132
|
-
headers: {
|
|
133
|
-
'Content-Type': 'application/json',
|
|
134
|
-
'User-Agent': `@kya-os/mcp-i/${clientInfo.sdkVersion}`
|
|
135
|
-
}
|
|
136
|
-
});
|
|
137
|
-
logger.debug(`Registration response status: ${response.status}`);
|
|
138
|
-
logger.debug(`Registration response data: ${JSON.stringify(response.data, null, 2)}`);
|
|
139
|
-
// Check if we got an async response (v2.0 API)
|
|
140
|
-
if (response.status === 202 && isAsyncRegistrationResponse(response.data)) {
|
|
141
|
-
logger.debug('Got async registration response, polling for completion...');
|
|
142
|
-
// Poll for completion using simple 2-second intervals
|
|
143
|
-
const result = await pollRegistrationStatus(response.data.status, // Status URL
|
|
144
|
-
this.transport, {
|
|
145
|
-
pollInterval: 2000, // Fixed 2-second intervals
|
|
146
|
-
maxPollingTime: 60000, // 60 seconds max
|
|
147
|
-
logger,
|
|
148
|
-
onProgress: (message) => {
|
|
149
|
-
logger.debug(message);
|
|
150
|
-
}
|
|
151
|
-
});
|
|
152
|
-
// Return the same structure as sync response
|
|
153
|
-
return {
|
|
154
|
-
success: true,
|
|
155
|
-
registryAgentId: result.agent.id,
|
|
156
|
-
profileUrl: result.agent.url
|
|
157
|
-
};
|
|
158
|
-
}
|
|
159
|
-
// Handle sync response (backward compatibility)
|
|
160
|
-
const syncResponse = response.data;
|
|
161
|
-
return {
|
|
162
|
-
success: true,
|
|
163
|
-
registryAgentId: syncResponse.agent.id,
|
|
164
|
-
profileUrl: syncResponse.agent.url
|
|
165
|
-
};
|
|
166
|
-
}
|
|
167
|
-
catch (error) {
|
|
168
|
-
// The transport layer now provides clearer error messages
|
|
169
|
-
return {
|
|
170
|
-
success: false,
|
|
171
|
-
error: error.message || 'Failed to register with KnowThat.ai'
|
|
172
|
-
};
|
|
173
|
-
}
|
|
174
|
-
}
|
|
175
|
-
/**
|
|
176
|
-
* Verify agent exists and is valid
|
|
177
|
-
*/
|
|
178
|
-
async verify(did) {
|
|
179
|
-
try {
|
|
180
|
-
const agentSlug = this.extractAgentSlug(did);
|
|
181
|
-
const response = await this.transport.get(`${this.endpoint}/api/agents/${agentSlug}/verify`, { timeout: 5000 });
|
|
182
|
-
return response.data.valid === true;
|
|
183
|
-
}
|
|
184
|
-
catch {
|
|
185
|
-
return false;
|
|
186
|
-
}
|
|
187
|
-
}
|
|
188
|
-
/**
|
|
189
|
-
* Get agent status in KnowThat registry
|
|
190
|
-
*/
|
|
191
|
-
async getStatus(did) {
|
|
192
|
-
try {
|
|
193
|
-
const agentSlug = this.extractAgentSlug(did);
|
|
194
|
-
const response = await this.transport.get(`${this.endpoint}/api/agents/${agentSlug}/status`, { timeout: 5000 });
|
|
195
|
-
return {
|
|
196
|
-
name: this.name,
|
|
197
|
-
status: response.data.verified ? 'active' : 'pending',
|
|
198
|
-
registeredAt: response.data.registeredAt,
|
|
199
|
-
type: 'primary'
|
|
200
|
-
};
|
|
201
|
-
}
|
|
202
|
-
catch (error) {
|
|
203
|
-
return {
|
|
204
|
-
name: this.name,
|
|
205
|
-
status: 'failed',
|
|
206
|
-
type: 'primary',
|
|
207
|
-
error: 'Failed to get status'
|
|
208
|
-
};
|
|
209
|
-
}
|
|
210
|
-
}
|
|
211
|
-
/**
|
|
212
|
-
* Extract agent slug from DID
|
|
213
|
-
*/
|
|
214
|
-
extractAgentSlug(did) {
|
|
215
|
-
// did:web:knowthat.ai:agents:my-agent -> my-agent
|
|
216
|
-
const parts = did.split(':');
|
|
217
|
-
return parts[parts.length - 1];
|
|
218
|
-
}
|
|
219
|
-
}
|
|
220
|
-
//# sourceMappingURL=knowthat.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"knowthat.js","sourceRoot":"","sources":["../../../src/registry/knowthat.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/rotation.d.ts
DELETED
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Key rotation support for MCP-I
|
|
3
|
-
*/
|
|
4
|
-
import { PersistedIdentity } from './types';
|
|
5
|
-
import { Transport } from './transport';
|
|
6
|
-
export interface KeyRotationPolicy {
|
|
7
|
-
maxAge?: number;
|
|
8
|
-
maxSignatures?: number;
|
|
9
|
-
algorithm?: string;
|
|
10
|
-
}
|
|
11
|
-
export interface KeyRotationResult {
|
|
12
|
-
success: boolean;
|
|
13
|
-
newKeyId?: string;
|
|
14
|
-
oldKeyId?: string;
|
|
15
|
-
gracePeriodEnd?: Date;
|
|
16
|
-
error?: string;
|
|
17
|
-
}
|
|
18
|
-
export interface KeyHealth {
|
|
19
|
-
age: number;
|
|
20
|
-
signatureCount: number;
|
|
21
|
-
shouldRotate: boolean;
|
|
22
|
-
lastRotated?: Date;
|
|
23
|
-
}
|
|
24
|
-
export declare class KeyRotationManager {
|
|
25
|
-
private identity;
|
|
26
|
-
private transport;
|
|
27
|
-
private policy;
|
|
28
|
-
private signatureCount;
|
|
29
|
-
private keyCreatedAt;
|
|
30
|
-
private lastRotatedAt?;
|
|
31
|
-
constructor(identity: PersistedIdentity, transport: Transport, policy?: KeyRotationPolicy);
|
|
32
|
-
/**
|
|
33
|
-
* Check key health and rotation needs
|
|
34
|
-
*/
|
|
35
|
-
checkKeyHealth(): KeyHealth;
|
|
36
|
-
/**
|
|
37
|
-
* Increment signature count
|
|
38
|
-
*/
|
|
39
|
-
incrementSignatureCount(): void;
|
|
40
|
-
/**
|
|
41
|
-
* Rotate keys with the registry
|
|
42
|
-
*/
|
|
43
|
-
rotateKeys(reason?: string): Promise<KeyRotationResult>;
|
|
44
|
-
/**
|
|
45
|
-
* Setup automatic rotation based on policy
|
|
46
|
-
*/
|
|
47
|
-
setupAutoRotation(callback?: (result: KeyRotationResult) => void): NodeJS.Timer;
|
|
48
|
-
/**
|
|
49
|
-
* Get registry URL based on DID host
|
|
50
|
-
*/
|
|
51
|
-
private getRegistryUrl;
|
|
52
|
-
/**
|
|
53
|
-
* Extract agent ID from DID or identity
|
|
54
|
-
*/
|
|
55
|
-
private extractAgentId;
|
|
56
|
-
}
|
|
57
|
-
//# sourceMappingURL=rotation.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"rotation.d.ts","sourceRoot":"","sources":["../../src/rotation.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,MAAM,WAAW,iBAAiB;IAChC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,IAAI,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,SAAS;IACxB,GAAG,EAAE,MAAM,CAAC;IACZ,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,OAAO,CAAC;IACtB,WAAW,CAAC,EAAE,IAAI,CAAC;CACpB;AAED,qBAAa,kBAAkB;IAM3B,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,MAAM;IAPhB,OAAO,CAAC,cAAc,CAAa;IACnC,OAAO,CAAC,YAAY,CAAO;IAC3B,OAAO,CAAC,aAAa,CAAC,CAAO;gBAGnB,QAAQ,EAAE,iBAAiB,EAC3B,SAAS,EAAE,SAAS,EACpB,MAAM,GAAE,iBAAsB;IAKxC;;OAEG;IACH,cAAc,IAAI,SAAS;IAgB3B;;OAEG;IACH,uBAAuB,IAAI,IAAI;IAI/B;;OAEG;IACG,UAAU,CAAC,MAAM,GAAE,MAAoB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAiE1E;;OAEG;IACH,iBAAiB,CAAC,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,iBAAiB,KAAK,IAAI,GAAG,MAAM,CAAC,KAAK;IAe/E;;OAEG;IACH,OAAO,CAAC,cAAc;IAKtB;;OAEG;IACH,OAAO,CAAC,cAAc;CASvB"}
|
package/dist/esm/rotation.js
DELETED
|
@@ -1,133 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Key rotation support for MCP-I
|
|
3
|
-
*/
|
|
4
|
-
import { generateKeyPair, sign } from './crypto.js';
|
|
5
|
-
export class KeyRotationManager {
|
|
6
|
-
identity;
|
|
7
|
-
transport;
|
|
8
|
-
policy;
|
|
9
|
-
signatureCount = 0;
|
|
10
|
-
keyCreatedAt;
|
|
11
|
-
lastRotatedAt;
|
|
12
|
-
constructor(identity, transport, policy = {}) {
|
|
13
|
-
this.identity = identity;
|
|
14
|
-
this.transport = transport;
|
|
15
|
-
this.policy = policy;
|
|
16
|
-
this.keyCreatedAt = new Date(identity.registeredAt);
|
|
17
|
-
}
|
|
18
|
-
/**
|
|
19
|
-
* Check key health and rotation needs
|
|
20
|
-
*/
|
|
21
|
-
checkKeyHealth() {
|
|
22
|
-
const now = new Date();
|
|
23
|
-
const age = now.getTime() - this.keyCreatedAt.getTime();
|
|
24
|
-
const maxAge = this.policy.maxAge || 90 * 24 * 60 * 60 * 1000; // 90 days default
|
|
25
|
-
const maxSignatures = this.policy.maxSignatures || 1000000; // 1M default
|
|
26
|
-
const shouldRotate = age > maxAge || this.signatureCount > maxSignatures;
|
|
27
|
-
return {
|
|
28
|
-
age,
|
|
29
|
-
signatureCount: this.signatureCount,
|
|
30
|
-
shouldRotate,
|
|
31
|
-
lastRotated: this.lastRotatedAt
|
|
32
|
-
};
|
|
33
|
-
}
|
|
34
|
-
/**
|
|
35
|
-
* Increment signature count
|
|
36
|
-
*/
|
|
37
|
-
incrementSignatureCount() {
|
|
38
|
-
this.signatureCount++;
|
|
39
|
-
}
|
|
40
|
-
/**
|
|
41
|
-
* Rotate keys with the registry
|
|
42
|
-
*/
|
|
43
|
-
async rotateKeys(reason = 'scheduled') {
|
|
44
|
-
try {
|
|
45
|
-
// Generate new key pair
|
|
46
|
-
const newKeyPair = await generateKeyPair();
|
|
47
|
-
// Create rotation request
|
|
48
|
-
const timestamp = Date.now();
|
|
49
|
-
const message = `rotate-keys:${this.identity.did}:${timestamp}:${reason}`;
|
|
50
|
-
const signature = await sign(message, this.identity.privateKey);
|
|
51
|
-
// Prepare rotation payload
|
|
52
|
-
const rotationRequest = {
|
|
53
|
-
newPublicKey: {
|
|
54
|
-
type: 'Ed25519VerificationKey2020',
|
|
55
|
-
publicKeyBase64: newKeyPair.publicKey
|
|
56
|
-
},
|
|
57
|
-
rotationReason: reason,
|
|
58
|
-
signedStatement: signature,
|
|
59
|
-
timestamp
|
|
60
|
-
};
|
|
61
|
-
// Get the correct registry URL
|
|
62
|
-
const registryUrl = this.getRegistryUrl();
|
|
63
|
-
const agentId = this.extractAgentId();
|
|
64
|
-
// Submit rotation request
|
|
65
|
-
const response = await this.transport.post(`${registryUrl}/api/agents/${agentId}/rotate-key`, rotationRequest, {
|
|
66
|
-
headers: {
|
|
67
|
-
'Authorization': `DID-Auth ${signature}`,
|
|
68
|
-
'Content-Type': 'application/json'
|
|
69
|
-
}
|
|
70
|
-
});
|
|
71
|
-
if (response.data.success) {
|
|
72
|
-
// Update local identity with new keys
|
|
73
|
-
this.identity.publicKey = newKeyPair.publicKey;
|
|
74
|
-
this.identity.privateKey = newKeyPair.privateKey;
|
|
75
|
-
this.lastRotatedAt = new Date();
|
|
76
|
-
this.keyCreatedAt = new Date();
|
|
77
|
-
this.signatureCount = 0;
|
|
78
|
-
return {
|
|
79
|
-
success: true,
|
|
80
|
-
newKeyId: response.data.newKeyId,
|
|
81
|
-
oldKeyId: response.data.oldKeyId,
|
|
82
|
-
gracePeriodEnd: new Date(response.data.gracePeriodEnd)
|
|
83
|
-
};
|
|
84
|
-
}
|
|
85
|
-
else {
|
|
86
|
-
return {
|
|
87
|
-
success: false,
|
|
88
|
-
error: response.data.error || 'Key rotation failed'
|
|
89
|
-
};
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
catch (error) {
|
|
93
|
-
return {
|
|
94
|
-
success: false,
|
|
95
|
-
error: error.message || 'Key rotation error'
|
|
96
|
-
};
|
|
97
|
-
}
|
|
98
|
-
}
|
|
99
|
-
/**
|
|
100
|
-
* Setup automatic rotation based on policy
|
|
101
|
-
*/
|
|
102
|
-
setupAutoRotation(callback) {
|
|
103
|
-
const checkInterval = 24 * 60 * 60 * 1000; // Check daily
|
|
104
|
-
return setInterval(async () => {
|
|
105
|
-
const health = this.checkKeyHealth();
|
|
106
|
-
if (health.shouldRotate) {
|
|
107
|
-
const result = await this.rotateKeys('auto-rotation');
|
|
108
|
-
if (callback) {
|
|
109
|
-
callback(result);
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
}, checkInterval);
|
|
113
|
-
}
|
|
114
|
-
/**
|
|
115
|
-
* Get registry URL based on DID host
|
|
116
|
-
*/
|
|
117
|
-
getRegistryUrl() {
|
|
118
|
-
// Always use knowthat.ai as the registry
|
|
119
|
-
return 'https://knowthat.ai';
|
|
120
|
-
}
|
|
121
|
-
/**
|
|
122
|
-
* Extract agent ID from DID or identity
|
|
123
|
-
*/
|
|
124
|
-
extractAgentId() {
|
|
125
|
-
if (this.identity.agentId) {
|
|
126
|
-
return this.identity.agentId;
|
|
127
|
-
}
|
|
128
|
-
// Extract from DID (e.g., did:web:knowthat.ai:agents:my-agent -> my-agent)
|
|
129
|
-
const parts = this.identity.did.split(':');
|
|
130
|
-
return parts[parts.length - 1];
|
|
131
|
-
}
|
|
132
|
-
}
|
|
133
|
-
//# sourceMappingURL=rotation.js.map
|
package/dist/esm/rotation.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"rotation.js","sourceRoot":"","sources":["../../src/rotation.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/storage.d.ts
DELETED
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Storage abstraction for MCP-I identity
|
|
3
|
-
* Supports both file-based and in-memory storage for different runtime environments
|
|
4
|
-
*/
|
|
5
|
-
import { PersistedIdentity } from './types';
|
|
6
|
-
export interface StorageProvider {
|
|
7
|
-
load(): Promise<PersistedIdentity | null>;
|
|
8
|
-
save(identity: PersistedIdentity): Promise<void>;
|
|
9
|
-
exists(): Promise<boolean>;
|
|
10
|
-
}
|
|
11
|
-
/**
|
|
12
|
-
* File-based storage for traditional Node.js environments
|
|
13
|
-
*/
|
|
14
|
-
export declare class FileStorage implements StorageProvider {
|
|
15
|
-
private filePath;
|
|
16
|
-
constructor(customPath?: string);
|
|
17
|
-
load(): Promise<PersistedIdentity | null>;
|
|
18
|
-
save(identity: PersistedIdentity): Promise<void>;
|
|
19
|
-
exists(): Promise<boolean>;
|
|
20
|
-
}
|
|
21
|
-
/**
|
|
22
|
-
* In-memory storage for Lambda/Edge runtime environments
|
|
23
|
-
*/
|
|
24
|
-
export declare class MemoryStorage implements StorageProvider {
|
|
25
|
-
private static instances;
|
|
26
|
-
private key;
|
|
27
|
-
constructor(key?: string);
|
|
28
|
-
load(): Promise<PersistedIdentity | null>;
|
|
29
|
-
save(identity: PersistedIdentity): Promise<void>;
|
|
30
|
-
exists(): Promise<boolean>;
|
|
31
|
-
/**
|
|
32
|
-
* Clear all stored identities (useful for testing)
|
|
33
|
-
*/
|
|
34
|
-
static clear(): void;
|
|
35
|
-
}
|
|
36
|
-
/**
|
|
37
|
-
* Environment variable storage loader
|
|
38
|
-
* This works with both file and memory storage as a fallback
|
|
39
|
-
*/
|
|
40
|
-
export declare class EnvironmentStorage {
|
|
41
|
-
static load(): PersistedIdentity | null;
|
|
42
|
-
}
|
|
43
|
-
/**
|
|
44
|
-
* Combined storage that tries multiple providers in order
|
|
45
|
-
*/
|
|
46
|
-
export declare class CombinedStorage implements StorageProvider {
|
|
47
|
-
private providers;
|
|
48
|
-
private primaryProvider;
|
|
49
|
-
constructor(providers: StorageProvider[]);
|
|
50
|
-
load(): Promise<PersistedIdentity | null>;
|
|
51
|
-
save(identity: PersistedIdentity): Promise<void>;
|
|
52
|
-
exists(): Promise<boolean>;
|
|
53
|
-
}
|
|
54
|
-
/**
|
|
55
|
-
* Storage factory based on runtime detection
|
|
56
|
-
*/
|
|
57
|
-
export declare class StorageFactory {
|
|
58
|
-
static create(options?: {
|
|
59
|
-
storage?: 'file' | 'memory' | 'auto';
|
|
60
|
-
customPath?: string;
|
|
61
|
-
memoryKey?: string;
|
|
62
|
-
encryptionPassword?: string;
|
|
63
|
-
}): StorageProvider;
|
|
64
|
-
}
|
|
65
|
-
//# sourceMappingURL=storage.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../src/storage.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAE5C,MAAM,WAAW,eAAe;IAC9B,IAAI,IAAI,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAAC;IAC1C,IAAI,CAAC,QAAQ,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACjD,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;CAC5B;AAED;;GAEG;AACH,qBAAa,WAAY,YAAW,eAAe;IACjD,OAAO,CAAC,QAAQ,CAAS;gBAEb,UAAU,CAAC,EAAE,MAAM;IAIzB,IAAI,IAAI,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC;IAYzC,IAAI,CAAC,QAAQ,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IAIhD,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC;CAGjC;AAED;;GAEG;AACH,qBAAa,aAAc,YAAW,eAAe;IACnD,OAAO,CAAC,MAAM,CAAC,SAAS,CAAwC;IAChE,OAAO,CAAC,GAAG,CAAS;gBAER,GAAG,CAAC,EAAE,MAAM;IAKlB,IAAI,IAAI,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC;IAIzC,IAAI,CAAC,QAAQ,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IAIhD,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC;IAIhC;;OAEG;IACH,MAAM,CAAC,KAAK,IAAI,IAAI;CAGrB;AAED;;;GAGG;AACH,qBAAa,kBAAkB;IAC7B,MAAM,CAAC,IAAI,IAAI,iBAAiB,GAAG,IAAI;CAaxC;AAED;;GAEG;AACH,qBAAa,eAAgB,YAAW,eAAe;IACrD,OAAO,CAAC,SAAS,CAAoB;IACrC,OAAO,CAAC,eAAe,CAAkB;gBAE7B,SAAS,EAAE,eAAe,EAAE;IAQlC,IAAI,IAAI,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC;IAiBzC,IAAI,CAAC,QAAQ,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IAKhD,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC;CASjC;AAED;;GAEG;AACH,qBAAa,cAAc;IACzB,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE;QACtB,OAAO,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,MAAM,CAAC;QACrC,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,kBAAkB,CAAC,EAAE,MAAM,CAAC;KAC7B,GAAG,eAAe;CAiCpB"}
|
package/dist/esm/storage.js
DELETED
|
@@ -1,160 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Storage abstraction for MCP-I identity
|
|
3
|
-
* Supports both file-based and in-memory storage for different runtime environments
|
|
4
|
-
*/
|
|
5
|
-
import * as fs from 'fs';
|
|
6
|
-
import * as path from 'path';
|
|
7
|
-
/**
|
|
8
|
-
* File-based storage for traditional Node.js environments
|
|
9
|
-
*/
|
|
10
|
-
export class FileStorage {
|
|
11
|
-
filePath;
|
|
12
|
-
constructor(customPath) {
|
|
13
|
-
this.filePath = customPath || path.join(process.cwd(), '.mcp-identity.json');
|
|
14
|
-
}
|
|
15
|
-
async load() {
|
|
16
|
-
try {
|
|
17
|
-
if (fs.existsSync(this.filePath)) {
|
|
18
|
-
const content = fs.readFileSync(this.filePath, 'utf-8');
|
|
19
|
-
return JSON.parse(content);
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
catch {
|
|
23
|
-
// Ignore errors
|
|
24
|
-
}
|
|
25
|
-
return null;
|
|
26
|
-
}
|
|
27
|
-
async save(identity) {
|
|
28
|
-
fs.writeFileSync(this.filePath, JSON.stringify(identity, null, 2));
|
|
29
|
-
}
|
|
30
|
-
async exists() {
|
|
31
|
-
return fs.existsSync(this.filePath);
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
/**
|
|
35
|
-
* In-memory storage for Lambda/Edge runtime environments
|
|
36
|
-
*/
|
|
37
|
-
export class MemoryStorage {
|
|
38
|
-
static instances = new Map();
|
|
39
|
-
key;
|
|
40
|
-
constructor(key) {
|
|
41
|
-
// Use a unique key for this instance (e.g., based on agent name)
|
|
42
|
-
this.key = key || 'default';
|
|
43
|
-
}
|
|
44
|
-
async load() {
|
|
45
|
-
return MemoryStorage.instances.get(this.key) || null;
|
|
46
|
-
}
|
|
47
|
-
async save(identity) {
|
|
48
|
-
MemoryStorage.instances.set(this.key, identity);
|
|
49
|
-
}
|
|
50
|
-
async exists() {
|
|
51
|
-
return MemoryStorage.instances.has(this.key);
|
|
52
|
-
}
|
|
53
|
-
/**
|
|
54
|
-
* Clear all stored identities (useful for testing)
|
|
55
|
-
*/
|
|
56
|
-
static clear() {
|
|
57
|
-
MemoryStorage.instances.clear();
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
/**
|
|
61
|
-
* Environment variable storage loader
|
|
62
|
-
* This works with both file and memory storage as a fallback
|
|
63
|
-
*/
|
|
64
|
-
export class EnvironmentStorage {
|
|
65
|
-
static load() {
|
|
66
|
-
if (process.env.AGENT_DID && process.env.AGENT_PUBLIC_KEY && process.env.AGENT_PRIVATE_KEY) {
|
|
67
|
-
return {
|
|
68
|
-
did: process.env.AGENT_DID,
|
|
69
|
-
publicKey: process.env.AGENT_PUBLIC_KEY,
|
|
70
|
-
privateKey: process.env.AGENT_PRIVATE_KEY,
|
|
71
|
-
agentId: process.env.AGENT_ID || '',
|
|
72
|
-
agentSlug: process.env.AGENT_SLUG || '',
|
|
73
|
-
registeredAt: process.env.AGENT_REGISTERED_AT || new Date().toISOString()
|
|
74
|
-
};
|
|
75
|
-
}
|
|
76
|
-
return null;
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
/**
|
|
80
|
-
* Combined storage that tries multiple providers in order
|
|
81
|
-
*/
|
|
82
|
-
export class CombinedStorage {
|
|
83
|
-
providers;
|
|
84
|
-
primaryProvider;
|
|
85
|
-
constructor(providers) {
|
|
86
|
-
if (providers.length === 0) {
|
|
87
|
-
throw new Error('At least one storage provider is required');
|
|
88
|
-
}
|
|
89
|
-
this.providers = providers;
|
|
90
|
-
this.primaryProvider = providers[0];
|
|
91
|
-
}
|
|
92
|
-
async load() {
|
|
93
|
-
// Try environment variables first
|
|
94
|
-
const envIdentity = EnvironmentStorage.load();
|
|
95
|
-
if (envIdentity) {
|
|
96
|
-
return envIdentity;
|
|
97
|
-
}
|
|
98
|
-
// Try each provider in order
|
|
99
|
-
for (const provider of this.providers) {
|
|
100
|
-
const identity = await provider.load();
|
|
101
|
-
if (identity) {
|
|
102
|
-
return identity;
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
return null;
|
|
106
|
-
}
|
|
107
|
-
async save(identity) {
|
|
108
|
-
// Save to primary provider only
|
|
109
|
-
await this.primaryProvider.save(identity);
|
|
110
|
-
}
|
|
111
|
-
async exists() {
|
|
112
|
-
// Check if identity exists in any provider
|
|
113
|
-
for (const provider of this.providers) {
|
|
114
|
-
if (await provider.exists()) {
|
|
115
|
-
return true;
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
return false;
|
|
119
|
-
}
|
|
120
|
-
}
|
|
121
|
-
/**
|
|
122
|
-
* Storage factory based on runtime detection
|
|
123
|
-
*/
|
|
124
|
-
export class StorageFactory {
|
|
125
|
-
static create(options) {
|
|
126
|
-
const storageType = options?.storage || 'auto';
|
|
127
|
-
let baseStorage;
|
|
128
|
-
if (storageType === 'memory') {
|
|
129
|
-
baseStorage = new MemoryStorage(options?.memoryKey);
|
|
130
|
-
}
|
|
131
|
-
else if (storageType === 'file') {
|
|
132
|
-
baseStorage = new FileStorage(options?.customPath);
|
|
133
|
-
}
|
|
134
|
-
else if (storageType === 'auto') {
|
|
135
|
-
// Auto-detect based on runtime
|
|
136
|
-
// Check if we're in a Lambda/Edge environment
|
|
137
|
-
if (process.env.AWS_LAMBDA_FUNCTION_NAME ||
|
|
138
|
-
process.env.VERCEL ||
|
|
139
|
-
process.env.NETLIFY ||
|
|
140
|
-
!fs.existsSync ||
|
|
141
|
-
typeof fs.writeFileSync !== 'function') {
|
|
142
|
-
baseStorage = new MemoryStorage(options?.memoryKey);
|
|
143
|
-
}
|
|
144
|
-
else {
|
|
145
|
-
// Default to file storage for Node.js
|
|
146
|
-
baseStorage = new FileStorage(options?.customPath);
|
|
147
|
-
}
|
|
148
|
-
}
|
|
149
|
-
else {
|
|
150
|
-
throw new Error(`Unknown storage type: ${storageType}`);
|
|
151
|
-
}
|
|
152
|
-
// Wrap with encryption if password provided
|
|
153
|
-
if (options?.encryptionPassword) {
|
|
154
|
-
const { createEncryptedStorage } = require('./encrypted-storage');
|
|
155
|
-
return createEncryptedStorage(baseStorage, options.encryptionPassword);
|
|
156
|
-
}
|
|
157
|
-
return baseStorage;
|
|
158
|
-
}
|
|
159
|
-
}
|
|
160
|
-
//# sourceMappingURL=storage.js.map
|
package/dist/esm/storage.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"storage.js","sourceRoot":"","sources":["../../src/storage.ts"],"names":[],"mappings":"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"}
|