@kya-os/mcp-i-cloudflare 1.6.1 → 1.6.2-canary.clientinfo.20251125192351
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 +6 -0
- package/dist/agent.d.ts.map +1 -1
- package/dist/agent.js +32 -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/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/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,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"}
|
|
@@ -0,0 +1,178 @@
|
|
|
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
|
+
/**
|
|
8
|
+
* Normalize client info from various formats
|
|
9
|
+
*
|
|
10
|
+
* @param value Client info from request (could be from initialize or handshake)
|
|
11
|
+
* @returns Normalized client info or undefined if invalid
|
|
12
|
+
*/
|
|
13
|
+
export function normalizeClientInfo(value) {
|
|
14
|
+
if (!isRecord(value)) {
|
|
15
|
+
return undefined;
|
|
16
|
+
}
|
|
17
|
+
const normalized = {};
|
|
18
|
+
const record = value;
|
|
19
|
+
const name = record.name;
|
|
20
|
+
if (typeof name === "string" && name.trim().length > 0) {
|
|
21
|
+
normalized.name = name.trim();
|
|
22
|
+
}
|
|
23
|
+
const title = record.title;
|
|
24
|
+
if (typeof title === "string" && title.trim().length > 0) {
|
|
25
|
+
normalized.title = title.trim();
|
|
26
|
+
}
|
|
27
|
+
const version = record.version;
|
|
28
|
+
if (typeof version === "string" && version.trim().length > 0) {
|
|
29
|
+
normalized.version = version.trim();
|
|
30
|
+
}
|
|
31
|
+
const platform = record.platform;
|
|
32
|
+
if (typeof platform === "string" && platform.trim().length > 0) {
|
|
33
|
+
normalized.platform = platform.trim();
|
|
34
|
+
}
|
|
35
|
+
const vendor = record.vendor;
|
|
36
|
+
if (typeof vendor === "string" && vendor.trim().length > 0) {
|
|
37
|
+
normalized.vendor = vendor.trim();
|
|
38
|
+
}
|
|
39
|
+
const persistentId = record.persistentId;
|
|
40
|
+
if (typeof persistentId === "string" && persistentId.trim().length > 0) {
|
|
41
|
+
normalized.persistentId = persistentId.trim();
|
|
42
|
+
}
|
|
43
|
+
return Object.keys(normalized).length > 0 ? normalized : undefined;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Extract MCP client information from handshake request and initialize context
|
|
47
|
+
*
|
|
48
|
+
* @param request Handshake request
|
|
49
|
+
* @param initializeContext Optional context from previous initialize call
|
|
50
|
+
* @returns Extracted and normalized client info or undefined
|
|
51
|
+
*/
|
|
52
|
+
export function extractMCPClient(request, initializeContext) {
|
|
53
|
+
const fromHandshake = normalizeClientInfo(request.clientInfo);
|
|
54
|
+
const merged = {
|
|
55
|
+
...(initializeContext?.clientInfo ?? {}),
|
|
56
|
+
...(fromHandshake ?? {}),
|
|
57
|
+
};
|
|
58
|
+
const handshakeClientId = isRecord(request.clientInfo) &&
|
|
59
|
+
typeof request.clientInfo.clientId === "string" &&
|
|
60
|
+
request.clientInfo.clientId.trim().length > 0
|
|
61
|
+
? request.clientInfo.clientId.trim()
|
|
62
|
+
: undefined;
|
|
63
|
+
const hasClientMetadata = Object.keys(merged).length > 0 ||
|
|
64
|
+
handshakeClientId ||
|
|
65
|
+
typeof request.clientProtocolVersion === "string" ||
|
|
66
|
+
isRecord(request.clientCapabilities);
|
|
67
|
+
if (!hasClientMetadata) {
|
|
68
|
+
return undefined;
|
|
69
|
+
}
|
|
70
|
+
const nameValue = merged.name;
|
|
71
|
+
const name = typeof nameValue === "string" && nameValue.trim().length > 0
|
|
72
|
+
? nameValue.trim()
|
|
73
|
+
: "unknown";
|
|
74
|
+
const clientId = handshakeClientId || crypto.randomUUID();
|
|
75
|
+
const capabilities = isRecord(request.clientCapabilities)
|
|
76
|
+
? request.clientCapabilities
|
|
77
|
+
: initializeContext?.capabilities;
|
|
78
|
+
return {
|
|
79
|
+
name,
|
|
80
|
+
title: merged.title,
|
|
81
|
+
version: merged.version,
|
|
82
|
+
platform: merged.platform,
|
|
83
|
+
vendor: merged.vendor,
|
|
84
|
+
persistentId: merged.persistentId,
|
|
85
|
+
protocolVersion: request.clientProtocolVersion ??
|
|
86
|
+
initializeContext?.protocolVersion ??
|
|
87
|
+
merged.protocolVersion,
|
|
88
|
+
capabilities,
|
|
89
|
+
clientId,
|
|
90
|
+
};
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Prepare handshake payload with client information from initialize context
|
|
94
|
+
*
|
|
95
|
+
* @param params Original handshake request parameters
|
|
96
|
+
* @param initializeContext Optional context from previous initialize call
|
|
97
|
+
* @returns Enhanced handshake request with client info
|
|
98
|
+
*/
|
|
99
|
+
export function prepareHandshakePayload(params, initializeContext) {
|
|
100
|
+
const payload = {
|
|
101
|
+
...params,
|
|
102
|
+
};
|
|
103
|
+
if (!payload.clientProtocolVersion && initializeContext?.protocolVersion) {
|
|
104
|
+
payload.clientProtocolVersion = initializeContext.protocolVersion;
|
|
105
|
+
}
|
|
106
|
+
if (!payload.clientCapabilities && initializeContext?.capabilities) {
|
|
107
|
+
payload.clientCapabilities = initializeContext.capabilities;
|
|
108
|
+
}
|
|
109
|
+
if (!payload.clientInfo && initializeContext?.clientInfo?.name) {
|
|
110
|
+
const source = initializeContext.clientInfo;
|
|
111
|
+
const name = source.name;
|
|
112
|
+
if (!name) {
|
|
113
|
+
return payload;
|
|
114
|
+
}
|
|
115
|
+
payload.clientInfo = {
|
|
116
|
+
name,
|
|
117
|
+
...(source.title ? { title: source.title } : {}),
|
|
118
|
+
...(source.version ? { version: source.version } : {}),
|
|
119
|
+
...(source.platform ? { platform: source.platform } : {}),
|
|
120
|
+
...(source.vendor ? { vendor: source.vendor } : {}),
|
|
121
|
+
...(source.persistentId ? { persistentId: source.persistentId } : {}),
|
|
122
|
+
};
|
|
123
|
+
}
|
|
124
|
+
return payload;
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* Clone capabilities object (deep copy)
|
|
128
|
+
*
|
|
129
|
+
* @param capabilities Capabilities to clone
|
|
130
|
+
* @returns Cloned capabilities or undefined
|
|
131
|
+
*/
|
|
132
|
+
export function cloneCapabilities(capabilities) {
|
|
133
|
+
if (!isRecord(capabilities)) {
|
|
134
|
+
return undefined;
|
|
135
|
+
}
|
|
136
|
+
return JSON.parse(JSON.stringify(capabilities));
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* Type guard for record objects
|
|
140
|
+
*
|
|
141
|
+
* @param value Value to check
|
|
142
|
+
* @returns true if value is a record object
|
|
143
|
+
*/
|
|
144
|
+
export function isRecord(value) {
|
|
145
|
+
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
146
|
+
}
|
|
147
|
+
/**
|
|
148
|
+
* Extract client ID from client info if available
|
|
149
|
+
*
|
|
150
|
+
* @param clientInfo Client info object
|
|
151
|
+
* @returns Client ID or undefined
|
|
152
|
+
*/
|
|
153
|
+
export function extractClientId(clientInfo) {
|
|
154
|
+
if (!isRecord(clientInfo)) {
|
|
155
|
+
return undefined;
|
|
156
|
+
}
|
|
157
|
+
const clientId = clientInfo.clientId;
|
|
158
|
+
if (typeof clientId === "string" && clientId.trim().length > 0) {
|
|
159
|
+
return clientId.trim();
|
|
160
|
+
}
|
|
161
|
+
return undefined;
|
|
162
|
+
}
|
|
163
|
+
/**
|
|
164
|
+
* Merge client info from multiple sources
|
|
165
|
+
*
|
|
166
|
+
* @param sources Array of potential client info sources (later sources override earlier)
|
|
167
|
+
* @returns Merged client info
|
|
168
|
+
*/
|
|
169
|
+
export function mergeClientInfo(...sources) {
|
|
170
|
+
const merged = {};
|
|
171
|
+
for (const source of sources) {
|
|
172
|
+
if (source) {
|
|
173
|
+
Object.assign(merged, source);
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
return merged;
|
|
177
|
+
}
|
|
178
|
+
//# sourceMappingURL=client-info.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client-info.js","sourceRoot":"","sources":["../../src/utils/client-info.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Error Formatter Utility
|
|
3
|
+
*
|
|
4
|
+
* Provides consistent JSON-RPC error response formatting for all error types.
|
|
5
|
+
* Handles special cases like DelegationRequiredError and OAuthRequiredError.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* JSON-RPC error response structure
|
|
9
|
+
*/
|
|
10
|
+
export interface JsonRpcErrorResponse {
|
|
11
|
+
jsonrpc: string;
|
|
12
|
+
id: unknown;
|
|
13
|
+
error: {
|
|
14
|
+
code: number;
|
|
15
|
+
message: string;
|
|
16
|
+
data?: any;
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Error codes for different error types
|
|
21
|
+
*/
|
|
22
|
+
export declare const ERROR_CODES: {
|
|
23
|
+
readonly PARSE_ERROR: -32700;
|
|
24
|
+
readonly INVALID_REQUEST: -32600;
|
|
25
|
+
readonly METHOD_NOT_FOUND: -32601;
|
|
26
|
+
readonly INVALID_PARAMS: -32602;
|
|
27
|
+
readonly INTERNAL_ERROR: -32603;
|
|
28
|
+
readonly DELEGATION_REQUIRED: -32001;
|
|
29
|
+
readonly OAUTH_REQUIRED: -32002;
|
|
30
|
+
readonly AUTHORIZATION_REQUIRED: -32003;
|
|
31
|
+
readonly SESSION_EXPIRED: -32004;
|
|
32
|
+
};
|
|
33
|
+
/**
|
|
34
|
+
* Format a generic error into JSON-RPC response
|
|
35
|
+
*
|
|
36
|
+
* @param error The error to format
|
|
37
|
+
* @param id Request ID from JSON-RPC request
|
|
38
|
+
* @returns Formatted JSON-RPC error response
|
|
39
|
+
*/
|
|
40
|
+
export declare function formatJsonRpcError(error: unknown, id: unknown): JsonRpcErrorResponse;
|
|
41
|
+
/**
|
|
42
|
+
* Format DelegationRequiredError into JSON-RPC response
|
|
43
|
+
*
|
|
44
|
+
* @param error Delegation required error
|
|
45
|
+
* @param id Request ID
|
|
46
|
+
* @returns Formatted error response with consent URL
|
|
47
|
+
*/
|
|
48
|
+
export declare function formatDelegationError(error: any, id: unknown): JsonRpcErrorResponse;
|
|
49
|
+
/**
|
|
50
|
+
* Format OAuthRequiredError into JSON-RPC response
|
|
51
|
+
*
|
|
52
|
+
* @param error OAuth required error
|
|
53
|
+
* @param id Request ID
|
|
54
|
+
* @returns Formatted error response with OAuth URL
|
|
55
|
+
*/
|
|
56
|
+
export declare function formatOAuthError(error: any, id: unknown): JsonRpcErrorResponse;
|
|
57
|
+
/**
|
|
58
|
+
* Check if error is a DelegationRequiredError
|
|
59
|
+
*
|
|
60
|
+
* @param error Error to check
|
|
61
|
+
* @returns true if it's a delegation required error
|
|
62
|
+
*/
|
|
63
|
+
export declare function isDelegationRequiredError(error: unknown): boolean;
|
|
64
|
+
/**
|
|
65
|
+
* Check if error is an OAuthRequiredError
|
|
66
|
+
*
|
|
67
|
+
* @param error Error to check
|
|
68
|
+
* @returns true if it's an OAuth required error
|
|
69
|
+
*/
|
|
70
|
+
export declare function isOAuthRequiredError(error: unknown): boolean;
|
|
71
|
+
/**
|
|
72
|
+
* Format method not found error
|
|
73
|
+
*
|
|
74
|
+
* @param method The method that was not found
|
|
75
|
+
* @param id Request ID
|
|
76
|
+
* @returns Formatted error response
|
|
77
|
+
*/
|
|
78
|
+
export declare function formatMethodNotFoundError(method: string, id: unknown): JsonRpcErrorResponse;
|
|
79
|
+
/**
|
|
80
|
+
* Format tool not found error
|
|
81
|
+
*
|
|
82
|
+
* @param toolName The tool that was not found
|
|
83
|
+
* @param id Request ID
|
|
84
|
+
* @returns Formatted error response
|
|
85
|
+
*/
|
|
86
|
+
export declare function formatToolNotFoundError(toolName: string, id: unknown): JsonRpcErrorResponse;
|
|
87
|
+
/**
|
|
88
|
+
* Format session expired error
|
|
89
|
+
*
|
|
90
|
+
* @param sessionId The expired session ID
|
|
91
|
+
* @param id Request ID
|
|
92
|
+
* @returns Formatted error response
|
|
93
|
+
*/
|
|
94
|
+
export declare function formatSessionExpiredError(sessionId: string, id: unknown): JsonRpcErrorResponse;
|
|
95
|
+
/**
|
|
96
|
+
* Create a success response wrapper
|
|
97
|
+
*
|
|
98
|
+
* @param result The result to wrap
|
|
99
|
+
* @param id Request ID
|
|
100
|
+
* @returns JSON-RPC success response
|
|
101
|
+
*/
|
|
102
|
+
export declare function formatSuccessResponse(result: any, id: unknown): any;
|
|
103
|
+
//# sourceMappingURL=error-formatter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"error-formatter.d.ts","sourceRoot":"","sources":["../../src/utils/error-formatter.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,EAAE,EAAE,OAAO,CAAC;IACZ,KAAK,EAAE;QACL,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,CAAC,EAAE,GAAG,CAAC;KACZ,CAAC;CACH;AAED;;GAEG;AACH,eAAO,MAAM,WAAW;;;;;;;;;;CAad,CAAC;AAEX;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,GAAG,oBAAoB,CAoDpF;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,EAAE,OAAO,GAAG,oBAAoB,CA4BnF;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,EAAE,OAAO,GAAG,oBAAoB,CA8B9E;AAED;;;;;GAKG;AACH,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAWjE;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAW5D;AAED;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,GAAG,oBAAoB,CAS3F;AAED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,GAAG,oBAAoB,CAS3F;AAED;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,GAAG,oBAAoB,CAY9F;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE,OAAO,GAAG,GAAG,CAMnE"}
|