@kya-os/mcp-i-cloudflare 1.6.1 → 1.6.2-canary.clientinfo.1764125403
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/adapter.d.ts +2 -1
- package/dist/adapter.d.ts.map +1 -1
- package/dist/adapter.js +14 -2
- package/dist/adapter.js.map +1 -1
- package/dist/agent.d.ts +31 -0
- package/dist/agent.d.ts.map +1 -1
- package/dist/agent.js +97 -0
- package/dist/agent.js.map +1 -1
- package/dist/app.d.ts.map +1 -1
- package/dist/app.js +76 -9
- package/dist/app.js.map +1 -1
- package/dist/services/kta-client-lookup.d.ts +59 -0
- package/dist/services/kta-client-lookup.d.ts.map +1 -0
- package/dist/services/kta-client-lookup.js +153 -0
- package/dist/services/kta-client-lookup.js.map +1 -0
- package/dist/types.d.ts +2 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/client-info.d.ts +69 -0
- package/dist/utils/client-info.d.ts.map +1 -0
- package/dist/utils/client-info.js +178 -0
- package/dist/utils/client-info.js.map +1 -0
- package/dist/utils/error-formatter.d.ts +103 -0
- package/dist/utils/error-formatter.d.ts.map +1 -0
- package/dist/utils/error-formatter.js +245 -0
- package/dist/utils/error-formatter.js.map +1 -0
- package/dist/utils/initialize-context.d.ts +91 -0
- package/dist/utils/initialize-context.d.ts.map +1 -0
- package/dist/utils/initialize-context.js +169 -0
- package/dist/utils/initialize-context.js.map +1 -0
- package/dist/utils/known-clients.d.ts +46 -0
- package/dist/utils/known-clients.d.ts.map +1 -0
- package/dist/utils/known-clients.js +117 -0
- package/dist/utils/known-clients.js.map +1 -0
- package/dist/utils/oauth-identity.d.ts +58 -0
- package/dist/utils/oauth-identity.d.ts.map +1 -0
- package/dist/utils/oauth-identity.js +215 -0
- package/dist/utils/oauth-identity.js.map +1 -0
- package/package.json +1 -1
- package/dist/services/oauth-service.d.ts +0 -66
- package/dist/services/oauth-service.d.ts.map +0 -1
- package/dist/services/oauth-service.js +0 -223
- package/dist/services/oauth-service.js.map +0 -1
- package/dist/services/tool-context-builder.d.ts +0 -55
- package/dist/services/tool-context-builder.d.ts.map +0 -1
- package/dist/services/tool-context-builder.js +0 -124
- package/dist/services/tool-context-builder.js.map +0 -1
- package/dist/types/tool-context.d.ts +0 -35
- package/dist/types/tool-context.d.ts.map +0 -1
- package/dist/types/tool-context.js +0 -13
- package/dist/types/tool-context.js.map +0 -1
package/dist/app.js
CHANGED
|
@@ -151,13 +151,41 @@ export function createMCPIApp(options) {
|
|
|
151
151
|
// This ensures cache invalidation happens at the DO's edge location
|
|
152
152
|
app.post("/admin/clear-cache", async (c) => {
|
|
153
153
|
console.log("[App] Admin clear-cache route hit - routing through DO for edge cache consistency");
|
|
154
|
+
// Map environment first (needed for auth and DO routing)
|
|
155
|
+
const mappedEnv = options.envPrefix
|
|
156
|
+
? mapPrefixedEnv(c.env, options.envPrefix)
|
|
157
|
+
: c.env;
|
|
158
|
+
// SECURITY: Validate API key before any cache operations
|
|
159
|
+
// This prevents unauthenticated cache clearing which could enable DoS attacks
|
|
160
|
+
const authHeader = c.req.raw.headers.get("Authorization");
|
|
161
|
+
if (!authHeader || !authHeader.startsWith("Bearer ")) {
|
|
162
|
+
console.warn("[App] Admin clear-cache: Missing or invalid Authorization header");
|
|
163
|
+
return new Response(JSON.stringify({
|
|
164
|
+
success: false,
|
|
165
|
+
error: {
|
|
166
|
+
code: "unauthorized",
|
|
167
|
+
message: "Unauthorized - Missing or invalid Authorization header",
|
|
168
|
+
},
|
|
169
|
+
}), {
|
|
170
|
+
status: 401,
|
|
171
|
+
headers: {
|
|
172
|
+
"Content-Type": "application/json",
|
|
173
|
+
"Access-Control-Allow-Origin": "*",
|
|
174
|
+
}
|
|
175
|
+
});
|
|
176
|
+
}
|
|
177
|
+
// Clone the request body BEFORE any operations that might consume it
|
|
178
|
+
// This ensures the fallback can still read the body if DO routing fails
|
|
179
|
+
let requestBodyText = null;
|
|
180
|
+
try {
|
|
181
|
+
requestBodyText = await c.req.raw.clone().text();
|
|
182
|
+
}
|
|
183
|
+
catch (e) {
|
|
184
|
+
console.warn("[App] Failed to clone request body:", e);
|
|
185
|
+
}
|
|
154
186
|
try {
|
|
155
|
-
//
|
|
187
|
+
// Get server instance for potential fallback
|
|
156
188
|
const server = await getMcpiServer(c.env);
|
|
157
|
-
// Map environment
|
|
158
|
-
const mappedEnv = options.envPrefix
|
|
159
|
-
? mapPrefixedEnv(c.env, options.envPrefix)
|
|
160
|
-
: c.env;
|
|
161
189
|
// Get agent namespace from environment
|
|
162
190
|
// Try both prefixed and non-prefixed names
|
|
163
191
|
const prefixUpper = options.envPrefix?.toUpperCase();
|
|
@@ -167,7 +195,13 @@ export function createMCPIApp(options) {
|
|
|
167
195
|
if (!agentNamespace) {
|
|
168
196
|
console.warn("[App] AGENT namespace not found, falling back to AdminService cache clear");
|
|
169
197
|
// Fall back to regular AdminService handling (cache clear at this edge location)
|
|
170
|
-
|
|
198
|
+
// Create new request with cloned body for AdminService
|
|
199
|
+
const fallbackRequest = new Request(c.req.raw.url, {
|
|
200
|
+
method: c.req.raw.method,
|
|
201
|
+
headers: c.req.raw.headers,
|
|
202
|
+
body: requestBodyText,
|
|
203
|
+
});
|
|
204
|
+
return server.handleRequest(fallbackRequest, c.executionCtx);
|
|
171
205
|
}
|
|
172
206
|
// Create a deterministic DO ID for admin operations
|
|
173
207
|
// Using "admin-cache-clear" ensures we always route to the same DO for cache operations
|
|
@@ -175,10 +209,11 @@ export function createMCPIApp(options) {
|
|
|
175
209
|
const doStub = agentNamespace.get(doId);
|
|
176
210
|
// Forward the request to the DO for cache clearing
|
|
177
211
|
// The DO will clear cache at its pinned edge location
|
|
212
|
+
// Use cloned body text instead of streaming body to avoid consumption issues
|
|
178
213
|
const doCacheRequest = new Request(new URL("/_do/cache-clear", c.req.url).toString(), {
|
|
179
214
|
method: "POST",
|
|
180
215
|
headers: c.req.raw.headers,
|
|
181
|
-
body:
|
|
216
|
+
body: requestBodyText,
|
|
182
217
|
});
|
|
183
218
|
console.log("[App] Forwarding cache-clear to DO:", {
|
|
184
219
|
doId: doId.toString(),
|
|
@@ -204,10 +239,17 @@ export function createMCPIApp(options) {
|
|
|
204
239
|
catch (error) {
|
|
205
240
|
console.error("[App] Admin clear-cache DO routing error:", error);
|
|
206
241
|
// Fall back to regular AdminService handling on error
|
|
242
|
+
// Use cloned body for the fallback request
|
|
207
243
|
try {
|
|
208
244
|
const server = await getMcpiServer(c.env);
|
|
209
245
|
console.warn("[App] Falling back to AdminService cache clear");
|
|
210
|
-
|
|
246
|
+
// Create new request with cloned body for AdminService
|
|
247
|
+
const fallbackRequest = new Request(c.req.raw.url, {
|
|
248
|
+
method: c.req.raw.method,
|
|
249
|
+
headers: c.req.raw.headers,
|
|
250
|
+
body: requestBodyText,
|
|
251
|
+
});
|
|
252
|
+
return server.handleRequest(fallbackRequest, c.executionCtx);
|
|
211
253
|
}
|
|
212
254
|
catch (fallbackError) {
|
|
213
255
|
return new Response(JSON.stringify({
|
|
@@ -229,8 +271,25 @@ export function createMCPIApp(options) {
|
|
|
229
271
|
});
|
|
230
272
|
// Internal cache-clear endpoint that routes through a Durable Object
|
|
231
273
|
// This ensures cache clear happens at the DO's edge location, bypassing KV edge caching issues
|
|
274
|
+
// SECURITY: Requires same API key authentication as /admin/clear-cache
|
|
232
275
|
app.post("/_internal/do-cache-clear", async (c) => {
|
|
233
276
|
console.log("[App] Internal DO cache-clear route hit");
|
|
277
|
+
// SECURITY: Validate API key before any cache operations
|
|
278
|
+
// This prevents unauthenticated cache clearing which could enable DoS attacks
|
|
279
|
+
const authHeader = c.req.raw.headers.get("Authorization");
|
|
280
|
+
if (!authHeader || !authHeader.startsWith("Bearer ")) {
|
|
281
|
+
console.warn("[App] Internal cache-clear: Missing or invalid Authorization header");
|
|
282
|
+
return new Response(JSON.stringify({
|
|
283
|
+
success: false,
|
|
284
|
+
error: {
|
|
285
|
+
code: "unauthorized",
|
|
286
|
+
message: "Unauthorized - Missing or invalid Authorization header",
|
|
287
|
+
},
|
|
288
|
+
}), {
|
|
289
|
+
status: 401,
|
|
290
|
+
headers: { "Content-Type": "application/json" }
|
|
291
|
+
});
|
|
292
|
+
}
|
|
234
293
|
try {
|
|
235
294
|
// Map environment
|
|
236
295
|
const mappedEnv = options.envPrefix
|
|
@@ -246,6 +305,14 @@ export function createMCPIApp(options) {
|
|
|
246
305
|
error: "AGENT Durable Object namespace not configured",
|
|
247
306
|
}), { status: 500, headers: { "Content-Type": "application/json" } });
|
|
248
307
|
}
|
|
308
|
+
// Clone body text before forwarding to avoid stream consumption issues
|
|
309
|
+
let requestBodyText = null;
|
|
310
|
+
try {
|
|
311
|
+
requestBodyText = await c.req.raw.clone().text();
|
|
312
|
+
}
|
|
313
|
+
catch (e) {
|
|
314
|
+
console.warn("[App] Failed to clone request body:", e);
|
|
315
|
+
}
|
|
249
316
|
// Create a deterministic DO ID for admin operations
|
|
250
317
|
// Using "admin-cache-clear" ensures we always route to the same DO for cache operations
|
|
251
318
|
const doId = agentNamespace.idFromName("admin-cache-clear");
|
|
@@ -255,7 +322,7 @@ export function createMCPIApp(options) {
|
|
|
255
322
|
const internalRequest = new Request(c.req.url.replace("/_internal/do-cache-clear", "/_do/cache-clear"), {
|
|
256
323
|
method: "POST",
|
|
257
324
|
headers: c.req.raw.headers,
|
|
258
|
-
body:
|
|
325
|
+
body: requestBodyText,
|
|
259
326
|
});
|
|
260
327
|
console.log("[App] Forwarding cache-clear to DO:", {
|
|
261
328
|
doId: doId.toString(),
|
package/dist/app.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app.js","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"app.js","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Know That AI Client DID Lookup Service
|
|
3
|
+
*
|
|
4
|
+
* Resolves client identities by looking up known MCP clients in KTA registry
|
|
5
|
+
* or generating ephemeral DIDs for unknown clients.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Client identity information
|
|
9
|
+
*/
|
|
10
|
+
export interface ClientIdentity {
|
|
11
|
+
/** The resolved DID for this client */
|
|
12
|
+
did: string;
|
|
13
|
+
/** Source of the DID */
|
|
14
|
+
source: "kta-registry" | "kta-lookup" | "generated";
|
|
15
|
+
/** Canonical client ID if known */
|
|
16
|
+
knownClientId?: string;
|
|
17
|
+
/** Display name for logging */
|
|
18
|
+
displayName: string;
|
|
19
|
+
/** Vendor/organization if known */
|
|
20
|
+
vendor?: string;
|
|
21
|
+
/** Whether this is a known/recognized client */
|
|
22
|
+
isKnown: boolean;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* MCP Client Info from initialize message
|
|
26
|
+
*/
|
|
27
|
+
export interface MCPClientInfo {
|
|
28
|
+
name?: string;
|
|
29
|
+
version?: string;
|
|
30
|
+
platform?: string;
|
|
31
|
+
vendor?: string;
|
|
32
|
+
clientId?: string;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Look up client DID from Know That AI API
|
|
36
|
+
*
|
|
37
|
+
* @param clientName - The client name to look up
|
|
38
|
+
* @param ktaApiUrl - Know That AI API URL
|
|
39
|
+
* @returns The registered DID or null if not found
|
|
40
|
+
*/
|
|
41
|
+
export declare function lookupClientDidFromKTA(clientName: string, ktaApiUrl?: string): Promise<string | null>;
|
|
42
|
+
/**
|
|
43
|
+
* Resolve client identity from MCP client info
|
|
44
|
+
*
|
|
45
|
+
* Priority:
|
|
46
|
+
* 1. Use pre-registered DID from known clients registry
|
|
47
|
+
* 2. Look up DID from KTA API (if API URL provided)
|
|
48
|
+
* 3. Generate ephemeral DID for unknown clients
|
|
49
|
+
*
|
|
50
|
+
* @param clientInfo - Client info from MCP initialize message
|
|
51
|
+
* @param ktaApiUrl - Optional KTA API URL for lookups
|
|
52
|
+
* @returns Resolved client identity
|
|
53
|
+
*/
|
|
54
|
+
export declare function resolveClientIdentity(clientInfo: MCPClientInfo | undefined, ktaApiUrl?: string): Promise<ClientIdentity>;
|
|
55
|
+
/**
|
|
56
|
+
* Clear the KTA lookup cache
|
|
57
|
+
*/
|
|
58
|
+
export declare function clearKTALookupCache(): void;
|
|
59
|
+
//# sourceMappingURL=kta-client-lookup.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"kta-client-lookup.d.ts","sourceRoot":"","sources":["../../src/services/kta-client-lookup.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAOH;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,uCAAuC;IACvC,GAAG,EAAE,MAAM,CAAC;IACZ,wBAAwB;IACxB,MAAM,EAAE,cAAc,GAAG,YAAY,GAAG,WAAW,CAAC;IACpD,mCAAmC;IACnC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,+BAA+B;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,mCAAmC;IACnC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gDAAgD;IAChD,OAAO,EAAE,OAAO,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AA+BD;;;;;;GAMG;AACH,wBAAsB,sBAAsB,CAC1C,UAAU,EAAE,MAAM,EAClB,SAAS,GAAE,MAA8B,GACxC,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAsCxB;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,qBAAqB,CACzC,UAAU,EAAE,aAAa,GAAG,SAAS,EACrC,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,cAAc,CAAC,CAsEzB;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,IAAI,CAE1C"}
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Know That AI Client DID Lookup Service
|
|
3
|
+
*
|
|
4
|
+
* Resolves client identities by looking up known MCP clients in KTA registry
|
|
5
|
+
* or generating ephemeral DIDs for unknown clients.
|
|
6
|
+
*/
|
|
7
|
+
import { findKnownClient, } from "../utils/known-clients";
|
|
8
|
+
// Simple cache for KTA lookups (in-memory, per-isolate)
|
|
9
|
+
const ktaLookupCache = new Map();
|
|
10
|
+
const CACHE_TTL_MS = 5 * 60 * 1000; // 5 minutes
|
|
11
|
+
/**
|
|
12
|
+
* Generate a deterministic ephemeral DID for unknown clients
|
|
13
|
+
*
|
|
14
|
+
* Uses a hash of the client name to create a consistent DID
|
|
15
|
+
* for the same unknown client across sessions.
|
|
16
|
+
*/
|
|
17
|
+
async function generateEphemeralDid(clientName) {
|
|
18
|
+
// Use Web Crypto API to create a deterministic hash
|
|
19
|
+
const encoder = new TextEncoder();
|
|
20
|
+
const data = encoder.encode(`mcp-client:${clientName.toLowerCase()}`);
|
|
21
|
+
const hashBuffer = await crypto.subtle.digest("SHA-256", data);
|
|
22
|
+
const hashArray = new Uint8Array(hashBuffer);
|
|
23
|
+
// Convert to base58-like string (simplified)
|
|
24
|
+
const hex = Array.from(hashArray)
|
|
25
|
+
.map((b) => b.toString(16).padStart(2, "0"))
|
|
26
|
+
.join("");
|
|
27
|
+
// Create a did:key-like identifier (not cryptographically valid, just for identification)
|
|
28
|
+
return `did:ephemeral:client:${hex.slice(0, 32)}`;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Look up client DID from Know That AI API
|
|
32
|
+
*
|
|
33
|
+
* @param clientName - The client name to look up
|
|
34
|
+
* @param ktaApiUrl - Know That AI API URL
|
|
35
|
+
* @returns The registered DID or null if not found
|
|
36
|
+
*/
|
|
37
|
+
export async function lookupClientDidFromKTA(clientName, ktaApiUrl = "https://knowthat.ai") {
|
|
38
|
+
// Check cache first
|
|
39
|
+
const cacheKey = clientName.toLowerCase();
|
|
40
|
+
const cached = ktaLookupCache.get(cacheKey);
|
|
41
|
+
if (cached && Date.now() - cached.timestamp < CACHE_TTL_MS) {
|
|
42
|
+
return cached.did;
|
|
43
|
+
}
|
|
44
|
+
try {
|
|
45
|
+
// Query KTA API for client registration
|
|
46
|
+
const response = await fetch(`${ktaApiUrl}/api/clients/lookup?name=${encodeURIComponent(clientName)}`, {
|
|
47
|
+
method: "GET",
|
|
48
|
+
headers: {
|
|
49
|
+
"Content-Type": "application/json",
|
|
50
|
+
"User-Agent": "@kya-os/mcp-i-cloudflare",
|
|
51
|
+
},
|
|
52
|
+
});
|
|
53
|
+
if (response.ok) {
|
|
54
|
+
const data = (await response.json());
|
|
55
|
+
const did = data.did || null;
|
|
56
|
+
// Cache the result
|
|
57
|
+
ktaLookupCache.set(cacheKey, { did, timestamp: Date.now() });
|
|
58
|
+
return did;
|
|
59
|
+
}
|
|
60
|
+
// Not found or error - cache as null
|
|
61
|
+
ktaLookupCache.set(cacheKey, { did: null, timestamp: Date.now() });
|
|
62
|
+
return null;
|
|
63
|
+
}
|
|
64
|
+
catch (error) {
|
|
65
|
+
// Network error - don't cache, return null
|
|
66
|
+
console.warn(`[KTAClientLookup] Failed to lookup client DID:`, error);
|
|
67
|
+
return null;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Resolve client identity from MCP client info
|
|
72
|
+
*
|
|
73
|
+
* Priority:
|
|
74
|
+
* 1. Use pre-registered DID from known clients registry
|
|
75
|
+
* 2. Look up DID from KTA API (if API URL provided)
|
|
76
|
+
* 3. Generate ephemeral DID for unknown clients
|
|
77
|
+
*
|
|
78
|
+
* @param clientInfo - Client info from MCP initialize message
|
|
79
|
+
* @param ktaApiUrl - Optional KTA API URL for lookups
|
|
80
|
+
* @returns Resolved client identity
|
|
81
|
+
*/
|
|
82
|
+
export async function resolveClientIdentity(clientInfo, ktaApiUrl) {
|
|
83
|
+
const clientName = clientInfo?.name || "Unknown";
|
|
84
|
+
// Check known clients registry first
|
|
85
|
+
const knownClient = findKnownClient(clientName);
|
|
86
|
+
if (knownClient) {
|
|
87
|
+
// Known client found
|
|
88
|
+
if (knownClient.ktaDid) {
|
|
89
|
+
// Has pre-registered DID
|
|
90
|
+
return {
|
|
91
|
+
did: knownClient.ktaDid,
|
|
92
|
+
source: "kta-registry",
|
|
93
|
+
knownClientId: knownClient.id,
|
|
94
|
+
displayName: knownClient.displayName,
|
|
95
|
+
vendor: knownClient.vendor,
|
|
96
|
+
isKnown: true,
|
|
97
|
+
};
|
|
98
|
+
}
|
|
99
|
+
// Known client but no pre-registered DID - try KTA lookup
|
|
100
|
+
if (ktaApiUrl) {
|
|
101
|
+
const ktaDid = await lookupClientDidFromKTA(clientName, ktaApiUrl);
|
|
102
|
+
if (ktaDid) {
|
|
103
|
+
return {
|
|
104
|
+
did: ktaDid,
|
|
105
|
+
source: "kta-lookup",
|
|
106
|
+
knownClientId: knownClient.id,
|
|
107
|
+
displayName: knownClient.displayName,
|
|
108
|
+
vendor: knownClient.vendor,
|
|
109
|
+
isKnown: true,
|
|
110
|
+
};
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
// Generate ephemeral DID for known client without registration
|
|
114
|
+
const ephemeralDid = await generateEphemeralDid(clientName);
|
|
115
|
+
return {
|
|
116
|
+
did: ephemeralDid,
|
|
117
|
+
source: "generated",
|
|
118
|
+
knownClientId: knownClient.id,
|
|
119
|
+
displayName: knownClient.displayName,
|
|
120
|
+
vendor: knownClient.vendor,
|
|
121
|
+
isKnown: true,
|
|
122
|
+
};
|
|
123
|
+
}
|
|
124
|
+
// Unknown client - try KTA lookup if API URL provided
|
|
125
|
+
if (ktaApiUrl) {
|
|
126
|
+
const ktaDid = await lookupClientDidFromKTA(clientName, ktaApiUrl);
|
|
127
|
+
if (ktaDid) {
|
|
128
|
+
return {
|
|
129
|
+
did: ktaDid,
|
|
130
|
+
source: "kta-lookup",
|
|
131
|
+
displayName: clientName,
|
|
132
|
+
vendor: clientInfo?.vendor,
|
|
133
|
+
isKnown: false,
|
|
134
|
+
};
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
// Generate ephemeral DID for unknown client
|
|
138
|
+
const ephemeralDid = await generateEphemeralDid(clientName);
|
|
139
|
+
return {
|
|
140
|
+
did: ephemeralDid,
|
|
141
|
+
source: "generated",
|
|
142
|
+
displayName: clientName,
|
|
143
|
+
vendor: clientInfo?.vendor,
|
|
144
|
+
isKnown: false,
|
|
145
|
+
};
|
|
146
|
+
}
|
|
147
|
+
/**
|
|
148
|
+
* Clear the KTA lookup cache
|
|
149
|
+
*/
|
|
150
|
+
export function clearKTALookupCache() {
|
|
151
|
+
ktaLookupCache.clear();
|
|
152
|
+
}
|
|
153
|
+
//# sourceMappingURL=kta-client-lookup.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"kta-client-lookup.js","sourceRoot":"","sources":["../../src/services/kta-client-lookup.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -47,6 +47,8 @@ export interface CloudflareEnv {
|
|
|
47
47
|
AGENTSHIELD_API_URL?: string;
|
|
48
48
|
AGENTSHIELD_API_KEY?: string;
|
|
49
49
|
AGENTSHIELD_PROJECT_ID?: string;
|
|
50
|
+
/** Know That AI API URL for client DID lookups */
|
|
51
|
+
KTA_API_URL?: string;
|
|
50
52
|
/** Optional encryption secret for OAuth token encryption (CSRF protection) */
|
|
51
53
|
OAUTH_ENCRYPTION_SECRET?: string;
|
|
52
54
|
MCPI_ENV?: string;
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAEjF;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,WAAW,aAAa;IAC5B,2EAA2E;IAC3E,WAAW,EAAE,WAAW,CAAC;IACzB,kEAAkE;IAClE,aAAa,CAAC,EAAE,WAAW,CAAC;IAC5B,kFAAkF;IAClF,gBAAgB,CAAC,EAAE,WAAW,CAAC;IAC/B,oGAAoG;IACpG,kBAAkB,CAAC,EAAE,WAAW,CAAC;IACjC,gFAAgF;IAChF,kBAAkB,CAAC,EAAE,WAAW,CAAC;IACjC,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,8EAA8E;IAC9E,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,6DAA6D;IAC7D,mBAAmB,CAAC,EAAE,kBAAkB,CAAC;CAC1C"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAEjF;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,WAAW,aAAa;IAC5B,2EAA2E;IAC3E,WAAW,EAAE,WAAW,CAAC;IACzB,kEAAkE;IAClE,aAAa,CAAC,EAAE,WAAW,CAAC;IAC5B,kFAAkF;IAClF,gBAAgB,CAAC,EAAE,WAAW,CAAC;IAC/B,oGAAoG;IACpG,kBAAkB,CAAC,EAAE,WAAW,CAAC;IACjC,gFAAgF;IAChF,kBAAkB,CAAC,EAAE,WAAW,CAAC;IACjC,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,kDAAkD;IAClD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,8EAA8E;IAC9E,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,6DAA6D;IAC7D,mBAAmB,CAAC,EAAE,kBAAkB,CAAC;CAC1C"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Client Info Utilities
|
|
3
|
+
*
|
|
4
|
+
* Handles MCP client information extraction, normalization, and handshake payload preparation.
|
|
5
|
+
* This consolidates logic for working with client metadata across initialize and handshake.
|
|
6
|
+
*/
|
|
7
|
+
import type { HandshakeRequest, MCPClientCapabilities } from "@kya-os/contracts/handshake";
|
|
8
|
+
import type { MCPClientInfo as SessionClientInfo } from "../types/client";
|
|
9
|
+
/**
|
|
10
|
+
* Initialize context with client information
|
|
11
|
+
*/
|
|
12
|
+
export interface InitializeContext {
|
|
13
|
+
timestamp: number;
|
|
14
|
+
protocolVersion?: string;
|
|
15
|
+
capabilities?: MCPClientCapabilities;
|
|
16
|
+
clientInfo?: Partial<SessionClientInfo>;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Normalize client info from various formats
|
|
20
|
+
*
|
|
21
|
+
* @param value Client info from request (could be from initialize or handshake)
|
|
22
|
+
* @returns Normalized client info or undefined if invalid
|
|
23
|
+
*/
|
|
24
|
+
export declare function normalizeClientInfo(value: unknown): Partial<SessionClientInfo> | undefined;
|
|
25
|
+
/**
|
|
26
|
+
* Extract MCP client information from handshake request and initialize context
|
|
27
|
+
*
|
|
28
|
+
* @param request Handshake request
|
|
29
|
+
* @param initializeContext Optional context from previous initialize call
|
|
30
|
+
* @returns Extracted and normalized client info or undefined
|
|
31
|
+
*/
|
|
32
|
+
export declare function extractMCPClient(request: HandshakeRequest, initializeContext?: InitializeContext): SessionClientInfo | undefined;
|
|
33
|
+
/**
|
|
34
|
+
* Prepare handshake payload with client information from initialize context
|
|
35
|
+
*
|
|
36
|
+
* @param params Original handshake request parameters
|
|
37
|
+
* @param initializeContext Optional context from previous initialize call
|
|
38
|
+
* @returns Enhanced handshake request with client info
|
|
39
|
+
*/
|
|
40
|
+
export declare function prepareHandshakePayload(params: HandshakeRequest, initializeContext?: InitializeContext): HandshakeRequest;
|
|
41
|
+
/**
|
|
42
|
+
* Clone capabilities object (deep copy)
|
|
43
|
+
*
|
|
44
|
+
* @param capabilities Capabilities to clone
|
|
45
|
+
* @returns Cloned capabilities or undefined
|
|
46
|
+
*/
|
|
47
|
+
export declare function cloneCapabilities(capabilities: unknown): MCPClientCapabilities | undefined;
|
|
48
|
+
/**
|
|
49
|
+
* Type guard for record objects
|
|
50
|
+
*
|
|
51
|
+
* @param value Value to check
|
|
52
|
+
* @returns true if value is a record object
|
|
53
|
+
*/
|
|
54
|
+
export declare function isRecord(value: unknown): value is Record<string, unknown>;
|
|
55
|
+
/**
|
|
56
|
+
* Extract client ID from client info if available
|
|
57
|
+
*
|
|
58
|
+
* @param clientInfo Client info object
|
|
59
|
+
* @returns Client ID or undefined
|
|
60
|
+
*/
|
|
61
|
+
export declare function extractClientId(clientInfo: unknown): string | undefined;
|
|
62
|
+
/**
|
|
63
|
+
* Merge client info from multiple sources
|
|
64
|
+
*
|
|
65
|
+
* @param sources Array of potential client info sources (later sources override earlier)
|
|
66
|
+
* @returns Merged client info
|
|
67
|
+
*/
|
|
68
|
+
export declare function mergeClientInfo(...sources: (Partial<SessionClientInfo> | undefined)[]): Partial<SessionClientInfo>;
|
|
69
|
+
//# sourceMappingURL=client-info.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client-info.d.ts","sourceRoot":"","sources":["../../src/utils/client-info.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AAC3F,OAAO,KAAK,EAAE,aAAa,IAAI,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAE1E;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,YAAY,CAAC,EAAE,qBAAqB,CAAC;IACrC,UAAU,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC;CACzC;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,OAAO,GACb,OAAO,CAAC,iBAAiB,CAAC,GAAG,SAAS,CAuCxC;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,gBAAgB,EACzB,iBAAiB,CAAC,EAAE,iBAAiB,GACpC,iBAAiB,GAAG,SAAS,CAkD/B;AAED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,gBAAgB,EACxB,iBAAiB,CAAC,EAAE,iBAAiB,GACpC,gBAAgB,CA8BlB;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAC/B,YAAY,EAAE,OAAO,GACpB,qBAAqB,GAAG,SAAS,CAMnC;AAED;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAEzE;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,UAAU,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAWvE;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAC7B,GAAG,OAAO,EAAE,CAAC,OAAO,CAAC,iBAAiB,CAAC,GAAG,SAAS,CAAC,EAAE,GACrD,OAAO,CAAC,iBAAiB,CAAC,CAU5B"}
|