@kya-os/mcp-i-cloudflare 1.6.20-canary.clientinfo.20251126125404 → 1.6.20
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.map +1 -1
- package/dist/adapter.js +86 -20
- package/dist/adapter.js.map +1 -1
- package/dist/agent.d.ts.map +1 -1
- package/dist/agent.js +78 -102
- package/dist/agent.js.map +1 -1
- package/dist/runtime/oauth-handler.d.ts.map +1 -1
- package/dist/runtime/oauth-handler.js.map +1 -1
- package/dist/services/kta-client-lookup.d.ts +3 -5
- package/dist/services/kta-client-lookup.d.ts.map +1 -1
- package/dist/services/kta-client-lookup.js +34 -10
- package/dist/services/kta-client-lookup.js.map +1 -1
- package/dist/utils/known-clients.d.ts +6 -14
- package/dist/utils/known-clients.d.ts.map +1 -1
- package/dist/utils/known-clients.js +11 -30
- package/dist/utils/known-clients.js.map +1 -1
- package/package.json +2 -2
- package/dist/__tests__/e2e/test-config.d.ts +0 -37
- package/dist/__tests__/e2e/test-config.d.ts.map +0 -1
- package/dist/__tests__/e2e/test-config.js +0 -62
- package/dist/__tests__/e2e/test-config.js.map +0 -1
- package/dist/utils/client-info.d.ts +0 -69
- package/dist/utils/client-info.d.ts.map +0 -1
- package/dist/utils/client-info.js +0 -178
- package/dist/utils/client-info.js.map +0 -1
- package/dist/utils/error-formatter.d.ts +0 -103
- package/dist/utils/error-formatter.d.ts.map +0 -1
- package/dist/utils/error-formatter.js +0 -245
- package/dist/utils/error-formatter.js.map +0 -1
- package/dist/utils/initialize-context.d.ts +0 -91
- package/dist/utils/initialize-context.d.ts.map +0 -1
- package/dist/utils/initialize-context.js +0 -169
- package/dist/utils/initialize-context.js.map +0 -1
- package/dist/utils/oauth-identity.d.ts +0 -58
- package/dist/utils/oauth-identity.d.ts.map +0 -1
- package/dist/utils/oauth-identity.js +0 -215
- package/dist/utils/oauth-identity.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"client-info.js","sourceRoot":"","sources":["../../src/utils/client-info.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,103 +0,0 @@
|
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|
|
@@ -1,245 +0,0 @@
|
|
|
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
|
-
* Error codes for different error types
|
|
9
|
-
*/
|
|
10
|
-
export const ERROR_CODES = {
|
|
11
|
-
// Standard JSON-RPC error codes
|
|
12
|
-
PARSE_ERROR: -32700,
|
|
13
|
-
INVALID_REQUEST: -32600,
|
|
14
|
-
METHOD_NOT_FOUND: -32601,
|
|
15
|
-
INVALID_PARAMS: -32602,
|
|
16
|
-
INTERNAL_ERROR: -32603,
|
|
17
|
-
// Custom error codes for MCP-I
|
|
18
|
-
DELEGATION_REQUIRED: -32001,
|
|
19
|
-
OAUTH_REQUIRED: -32002,
|
|
20
|
-
AUTHORIZATION_REQUIRED: -32003,
|
|
21
|
-
SESSION_EXPIRED: -32004,
|
|
22
|
-
};
|
|
23
|
-
/**
|
|
24
|
-
* Format a generic error into JSON-RPC response
|
|
25
|
-
*
|
|
26
|
-
* @param error The error to format
|
|
27
|
-
* @param id Request ID from JSON-RPC request
|
|
28
|
-
* @returns Formatted JSON-RPC error response
|
|
29
|
-
*/
|
|
30
|
-
export function formatJsonRpcError(error, id) {
|
|
31
|
-
// Check if this is a special error type
|
|
32
|
-
if (isDelegationRequiredError(error)) {
|
|
33
|
-
return formatDelegationError(error, id);
|
|
34
|
-
}
|
|
35
|
-
if (isOAuthRequiredError(error)) {
|
|
36
|
-
return formatOAuthError(error, id);
|
|
37
|
-
}
|
|
38
|
-
// Generic error handling
|
|
39
|
-
let errorMessage = "Internal error";
|
|
40
|
-
let errorCode = ERROR_CODES.INTERNAL_ERROR;
|
|
41
|
-
let errorData = undefined;
|
|
42
|
-
if (error) {
|
|
43
|
-
// Check if it's an Error object with a message
|
|
44
|
-
if (typeof error === "object" && error instanceof Error && error.message) {
|
|
45
|
-
errorMessage = error.message;
|
|
46
|
-
}
|
|
47
|
-
// Check for custom error properties
|
|
48
|
-
else if (typeof error === "object" && "message" in error) {
|
|
49
|
-
errorMessage = String(error.message);
|
|
50
|
-
}
|
|
51
|
-
// For non-Error objects (strings, etc.), try to convert to string
|
|
52
|
-
else if (typeof error === "string") {
|
|
53
|
-
errorMessage = error;
|
|
54
|
-
}
|
|
55
|
-
// Extract additional error data if available
|
|
56
|
-
if (typeof error === "object" && "data" in error) {
|
|
57
|
-
errorData = error.data;
|
|
58
|
-
}
|
|
59
|
-
// Check for custom error code
|
|
60
|
-
if (typeof error === "object" && "code" in error) {
|
|
61
|
-
const customCode = error.code;
|
|
62
|
-
if (typeof customCode === "number") {
|
|
63
|
-
errorCode = customCode;
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
return {
|
|
68
|
-
jsonrpc: "2.0",
|
|
69
|
-
id,
|
|
70
|
-
error: {
|
|
71
|
-
code: errorCode,
|
|
72
|
-
message: errorMessage,
|
|
73
|
-
...(errorData !== undefined && { data: errorData }),
|
|
74
|
-
},
|
|
75
|
-
};
|
|
76
|
-
}
|
|
77
|
-
/**
|
|
78
|
-
* Format DelegationRequiredError into JSON-RPC response
|
|
79
|
-
*
|
|
80
|
-
* @param error Delegation required error
|
|
81
|
-
* @param id Request ID
|
|
82
|
-
* @returns Formatted error response with consent URL
|
|
83
|
-
*/
|
|
84
|
-
export function formatDelegationError(error, id) {
|
|
85
|
-
const toolName = error.toolName || "unknown";
|
|
86
|
-
const requiredScopes = error.requiredScopes || [];
|
|
87
|
-
const consentUrl = error.consentUrl;
|
|
88
|
-
const resumeToken = error.resumeToken;
|
|
89
|
-
// Format message with consent URL in MCP format
|
|
90
|
-
let message = error.message || `Delegation required for tool "${toolName}"`;
|
|
91
|
-
if (consentUrl) {
|
|
92
|
-
message = `${message}. <authorization_url>${consentUrl}</authorization_url>`;
|
|
93
|
-
}
|
|
94
|
-
return {
|
|
95
|
-
jsonrpc: "2.0",
|
|
96
|
-
id,
|
|
97
|
-
error: {
|
|
98
|
-
code: ERROR_CODES.DELEGATION_REQUIRED,
|
|
99
|
-
message,
|
|
100
|
-
data: {
|
|
101
|
-
toolName,
|
|
102
|
-
requiredScopes,
|
|
103
|
-
consentUrl,
|
|
104
|
-
resumeToken,
|
|
105
|
-
// MCP-I specific: provide authorization URL for client to display
|
|
106
|
-
authorizationUrl: consentUrl,
|
|
107
|
-
},
|
|
108
|
-
},
|
|
109
|
-
};
|
|
110
|
-
}
|
|
111
|
-
/**
|
|
112
|
-
* Format OAuthRequiredError into JSON-RPC response
|
|
113
|
-
*
|
|
114
|
-
* @param error OAuth required error
|
|
115
|
-
* @param id Request ID
|
|
116
|
-
* @returns Formatted error response with OAuth URL
|
|
117
|
-
*/
|
|
118
|
-
export function formatOAuthError(error, id) {
|
|
119
|
-
const toolName = error.toolName || "unknown";
|
|
120
|
-
const requiredScopes = error.requiredScopes || [];
|
|
121
|
-
const provider = error.provider;
|
|
122
|
-
const oauthUrl = error.oauthUrl;
|
|
123
|
-
const resumeToken = error.resumeToken;
|
|
124
|
-
// Format message with OAuth URL in MCP format
|
|
125
|
-
let message = error.message || `OAuth required for tool "${toolName}"`;
|
|
126
|
-
if (oauthUrl) {
|
|
127
|
-
message = `${message}. <authorization_url>${oauthUrl}</authorization_url>`;
|
|
128
|
-
}
|
|
129
|
-
return {
|
|
130
|
-
jsonrpc: "2.0",
|
|
131
|
-
id,
|
|
132
|
-
error: {
|
|
133
|
-
code: ERROR_CODES.OAUTH_REQUIRED,
|
|
134
|
-
message,
|
|
135
|
-
data: {
|
|
136
|
-
toolName,
|
|
137
|
-
requiredScopes,
|
|
138
|
-
provider,
|
|
139
|
-
oauthUrl,
|
|
140
|
-
resumeToken,
|
|
141
|
-
// MCP-I specific: provide authorization URL for client to display
|
|
142
|
-
authorizationUrl: oauthUrl,
|
|
143
|
-
},
|
|
144
|
-
},
|
|
145
|
-
};
|
|
146
|
-
}
|
|
147
|
-
/**
|
|
148
|
-
* Check if error is a DelegationRequiredError
|
|
149
|
-
*
|
|
150
|
-
* @param error Error to check
|
|
151
|
-
* @returns true if it's a delegation required error
|
|
152
|
-
*/
|
|
153
|
-
export function isDelegationRequiredError(error) {
|
|
154
|
-
if (!error || typeof error !== "object") {
|
|
155
|
-
return false;
|
|
156
|
-
}
|
|
157
|
-
const err = error;
|
|
158
|
-
return (err.name === "DelegationRequiredError" ||
|
|
159
|
-
err.constructor?.name === "DelegationRequiredError" ||
|
|
160
|
-
(err.code === ERROR_CODES.DELEGATION_REQUIRED && err.consentUrl));
|
|
161
|
-
}
|
|
162
|
-
/**
|
|
163
|
-
* Check if error is an OAuthRequiredError
|
|
164
|
-
*
|
|
165
|
-
* @param error Error to check
|
|
166
|
-
* @returns true if it's an OAuth required error
|
|
167
|
-
*/
|
|
168
|
-
export function isOAuthRequiredError(error) {
|
|
169
|
-
if (!error || typeof error !== "object") {
|
|
170
|
-
return false;
|
|
171
|
-
}
|
|
172
|
-
const err = error;
|
|
173
|
-
return (err.name === "OAuthRequiredError" ||
|
|
174
|
-
err.constructor?.name === "OAuthRequiredError" ||
|
|
175
|
-
(err.code === ERROR_CODES.OAUTH_REQUIRED && err.oauthUrl));
|
|
176
|
-
}
|
|
177
|
-
/**
|
|
178
|
-
* Format method not found error
|
|
179
|
-
*
|
|
180
|
-
* @param method The method that was not found
|
|
181
|
-
* @param id Request ID
|
|
182
|
-
* @returns Formatted error response
|
|
183
|
-
*/
|
|
184
|
-
export function formatMethodNotFoundError(method, id) {
|
|
185
|
-
return {
|
|
186
|
-
jsonrpc: "2.0",
|
|
187
|
-
id,
|
|
188
|
-
error: {
|
|
189
|
-
code: ERROR_CODES.METHOD_NOT_FOUND,
|
|
190
|
-
message: `Unknown method: ${method}`,
|
|
191
|
-
},
|
|
192
|
-
};
|
|
193
|
-
}
|
|
194
|
-
/**
|
|
195
|
-
* Format tool not found error
|
|
196
|
-
*
|
|
197
|
-
* @param toolName The tool that was not found
|
|
198
|
-
* @param id Request ID
|
|
199
|
-
* @returns Formatted error response
|
|
200
|
-
*/
|
|
201
|
-
export function formatToolNotFoundError(toolName, id) {
|
|
202
|
-
return {
|
|
203
|
-
jsonrpc: "2.0",
|
|
204
|
-
id,
|
|
205
|
-
error: {
|
|
206
|
-
code: ERROR_CODES.INVALID_PARAMS,
|
|
207
|
-
message: `Tool not found: ${toolName}`,
|
|
208
|
-
},
|
|
209
|
-
};
|
|
210
|
-
}
|
|
211
|
-
/**
|
|
212
|
-
* Format session expired error
|
|
213
|
-
*
|
|
214
|
-
* @param sessionId The expired session ID
|
|
215
|
-
* @param id Request ID
|
|
216
|
-
* @returns Formatted error response
|
|
217
|
-
*/
|
|
218
|
-
export function formatSessionExpiredError(sessionId, id) {
|
|
219
|
-
return {
|
|
220
|
-
jsonrpc: "2.0",
|
|
221
|
-
id,
|
|
222
|
-
error: {
|
|
223
|
-
code: ERROR_CODES.SESSION_EXPIRED,
|
|
224
|
-
message: "Session has expired",
|
|
225
|
-
data: {
|
|
226
|
-
sessionId,
|
|
227
|
-
},
|
|
228
|
-
},
|
|
229
|
-
};
|
|
230
|
-
}
|
|
231
|
-
/**
|
|
232
|
-
* Create a success response wrapper
|
|
233
|
-
*
|
|
234
|
-
* @param result The result to wrap
|
|
235
|
-
* @param id Request ID
|
|
236
|
-
* @returns JSON-RPC success response
|
|
237
|
-
*/
|
|
238
|
-
export function formatSuccessResponse(result, id) {
|
|
239
|
-
return {
|
|
240
|
-
jsonrpc: "2.0",
|
|
241
|
-
id,
|
|
242
|
-
result,
|
|
243
|
-
};
|
|
244
|
-
}
|
|
245
|
-
//# sourceMappingURL=error-formatter.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"error-formatter.js","sourceRoot":"","sources":["../../src/utils/error-formatter.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,91 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Initialize Context Manager
|
|
3
|
-
*
|
|
4
|
-
* Manages MCP initialize context storage and retrieval for cross-request state.
|
|
5
|
-
* This allows us to preserve client info between initialize and handshake calls.
|
|
6
|
-
*/
|
|
7
|
-
import type { MCPClientCapabilities } from "@kya-os/contracts/handshake";
|
|
8
|
-
import type { MCPClientInfo as SessionClientInfo } from "../types/client";
|
|
9
|
-
/**
|
|
10
|
-
* Context stored from initialize request
|
|
11
|
-
*/
|
|
12
|
-
export interface InitializeContext {
|
|
13
|
-
timestamp: number;
|
|
14
|
-
protocolVersion?: string;
|
|
15
|
-
capabilities?: MCPClientCapabilities;
|
|
16
|
-
clientInfo?: Partial<SessionClientInfo>;
|
|
17
|
-
}
|
|
18
|
-
/**
|
|
19
|
-
* Request metadata for fingerprinting
|
|
20
|
-
*/
|
|
21
|
-
export interface RequestMeta {
|
|
22
|
-
fingerprint?: string;
|
|
23
|
-
userAgent?: string;
|
|
24
|
-
ip?: string;
|
|
25
|
-
cfRay?: string;
|
|
26
|
-
request?: Request;
|
|
27
|
-
}
|
|
28
|
-
/**
|
|
29
|
-
* Manages initialize contexts for session continuity
|
|
30
|
-
*/
|
|
31
|
-
export declare class InitializeContextManager {
|
|
32
|
-
private contexts;
|
|
33
|
-
constructor();
|
|
34
|
-
/**
|
|
35
|
-
* Store initialize context for later use in handshake
|
|
36
|
-
*
|
|
37
|
-
* @param meta Request metadata for fingerprinting
|
|
38
|
-
* @param params Initialize request parameters
|
|
39
|
-
*/
|
|
40
|
-
store(meta: RequestMeta | undefined, params: unknown): void;
|
|
41
|
-
/**
|
|
42
|
-
* Consume initialize context (removes it after retrieval)
|
|
43
|
-
*
|
|
44
|
-
* @param meta Request metadata for fingerprinting
|
|
45
|
-
* @returns Initialize context if found and valid, undefined otherwise
|
|
46
|
-
*/
|
|
47
|
-
consume(meta: RequestMeta | undefined): InitializeContext | undefined;
|
|
48
|
-
/**
|
|
49
|
-
* Prune expired contexts
|
|
50
|
-
*/
|
|
51
|
-
private prune;
|
|
52
|
-
/**
|
|
53
|
-
* Normalize client info from various formats
|
|
54
|
-
*
|
|
55
|
-
* @param value Client info from request
|
|
56
|
-
* @returns Normalized client info or undefined
|
|
57
|
-
*/
|
|
58
|
-
private normalizeClientInfo;
|
|
59
|
-
/**
|
|
60
|
-
* Clone capabilities object (deep copy)
|
|
61
|
-
*
|
|
62
|
-
* @param capabilities Capabilities to clone
|
|
63
|
-
* @returns Cloned capabilities or undefined
|
|
64
|
-
*/
|
|
65
|
-
private cloneCapabilities;
|
|
66
|
-
/**
|
|
67
|
-
* Type guard for record objects
|
|
68
|
-
*
|
|
69
|
-
* @param value Value to check
|
|
70
|
-
* @returns true if value is a record object
|
|
71
|
-
*/
|
|
72
|
-
private isRecord;
|
|
73
|
-
/**
|
|
74
|
-
* Get current size of context cache (for monitoring)
|
|
75
|
-
*
|
|
76
|
-
* @returns Number of stored contexts
|
|
77
|
-
*/
|
|
78
|
-
size(): number;
|
|
79
|
-
/**
|
|
80
|
-
* Clear all contexts (for testing)
|
|
81
|
-
*/
|
|
82
|
-
clear(): void;
|
|
83
|
-
}
|
|
84
|
-
/**
|
|
85
|
-
* Build request metadata from HTTP request
|
|
86
|
-
*
|
|
87
|
-
* @param request HTTP request
|
|
88
|
-
* @returns Request metadata with fingerprint
|
|
89
|
-
*/
|
|
90
|
-
export declare function buildRequestMeta(request: Request): RequestMeta;
|
|
91
|
-
//# sourceMappingURL=initialize-context.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"initialize-context.d.ts","sourceRoot":"","sources":["../../src/utils/initialize-context.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AACzE,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;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAKD;;GAEG;AACH,qBAAa,wBAAwB;IACnC,OAAO,CAAC,QAAQ,CAAiC;;IAMjD;;;;;OAKG;IACH,KAAK,CAAC,IAAI,EAAE,WAAW,GAAG,SAAS,EAAE,MAAM,EAAE,OAAO,GAAG,IAAI;IAqB3D;;;;;OAKG;IACH,OAAO,CAAC,IAAI,EAAE,WAAW,GAAG,SAAS,GAAG,iBAAiB,GAAG,SAAS;IAoBrE;;OAEG;IACH,OAAO,CAAC,KAAK;IASb;;;;;OAKG;IACH,OAAO,CAAC,mBAAmB;IA2C3B;;;;;OAKG;IACH,OAAO,CAAC,iBAAiB;IAUzB;;;;;OAKG;IACH,OAAO,CAAC,QAAQ;IAIhB;;;;OAIG;IACH,IAAI,IAAI,MAAM;IAId;;OAEG;IACH,KAAK,IAAI,IAAI;CAGd;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,OAAO,GAAG,WAAW,CAsB9D"}
|
|
@@ -1,169 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Initialize Context Manager
|
|
3
|
-
*
|
|
4
|
-
* Manages MCP initialize context storage and retrieval for cross-request state.
|
|
5
|
-
* This allows us to preserve client info between initialize and handshake calls.
|
|
6
|
-
*/
|
|
7
|
-
// TTL for initialize contexts (60 seconds)
|
|
8
|
-
const INITIALIZE_CONTEXT_TTL_MS = 60_000;
|
|
9
|
-
/**
|
|
10
|
-
* Manages initialize contexts for session continuity
|
|
11
|
-
*/
|
|
12
|
-
export class InitializeContextManager {
|
|
13
|
-
contexts;
|
|
14
|
-
constructor() {
|
|
15
|
-
this.contexts = new Map();
|
|
16
|
-
}
|
|
17
|
-
/**
|
|
18
|
-
* Store initialize context for later use in handshake
|
|
19
|
-
*
|
|
20
|
-
* @param meta Request metadata for fingerprinting
|
|
21
|
-
* @param params Initialize request parameters
|
|
22
|
-
*/
|
|
23
|
-
store(meta, params) {
|
|
24
|
-
if (!meta?.fingerprint || !this.isRecord(params)) {
|
|
25
|
-
return;
|
|
26
|
-
}
|
|
27
|
-
const protocolVersion = params.protocolVersion;
|
|
28
|
-
const capabilities = params.capabilities;
|
|
29
|
-
const clientInfo = this.normalizeClientInfo(params.clientInfo);
|
|
30
|
-
const context = {
|
|
31
|
-
timestamp: Date.now(),
|
|
32
|
-
protocolVersion: typeof protocolVersion === "string" ? protocolVersion : undefined,
|
|
33
|
-
capabilities: this.cloneCapabilities(capabilities),
|
|
34
|
-
clientInfo,
|
|
35
|
-
};
|
|
36
|
-
this.contexts.set(meta.fingerprint, context);
|
|
37
|
-
this.prune();
|
|
38
|
-
}
|
|
39
|
-
/**
|
|
40
|
-
* Consume initialize context (removes it after retrieval)
|
|
41
|
-
*
|
|
42
|
-
* @param meta Request metadata for fingerprinting
|
|
43
|
-
* @returns Initialize context if found and valid, undefined otherwise
|
|
44
|
-
*/
|
|
45
|
-
consume(meta) {
|
|
46
|
-
if (!meta?.fingerprint) {
|
|
47
|
-
return undefined;
|
|
48
|
-
}
|
|
49
|
-
const context = this.contexts.get(meta.fingerprint);
|
|
50
|
-
if (!context) {
|
|
51
|
-
return undefined;
|
|
52
|
-
}
|
|
53
|
-
if (Date.now() - context.timestamp > INITIALIZE_CONTEXT_TTL_MS) {
|
|
54
|
-
this.contexts.delete(meta.fingerprint);
|
|
55
|
-
return undefined;
|
|
56
|
-
}
|
|
57
|
-
// Remove after consumption to prevent cross-session leakage
|
|
58
|
-
this.contexts.delete(meta.fingerprint);
|
|
59
|
-
return context;
|
|
60
|
-
}
|
|
61
|
-
/**
|
|
62
|
-
* Prune expired contexts
|
|
63
|
-
*/
|
|
64
|
-
prune() {
|
|
65
|
-
const now = Date.now();
|
|
66
|
-
for (const [key, context] of this.contexts.entries()) {
|
|
67
|
-
if (now - context.timestamp > INITIALIZE_CONTEXT_TTL_MS) {
|
|
68
|
-
this.contexts.delete(key);
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
/**
|
|
73
|
-
* Normalize client info from various formats
|
|
74
|
-
*
|
|
75
|
-
* @param value Client info from request
|
|
76
|
-
* @returns Normalized client info or undefined
|
|
77
|
-
*/
|
|
78
|
-
normalizeClientInfo(value) {
|
|
79
|
-
if (!this.isRecord(value)) {
|
|
80
|
-
return undefined;
|
|
81
|
-
}
|
|
82
|
-
const normalized = {};
|
|
83
|
-
const record = value;
|
|
84
|
-
const name = record.name;
|
|
85
|
-
if (typeof name === "string" && name.trim().length > 0) {
|
|
86
|
-
normalized.name = name.trim();
|
|
87
|
-
}
|
|
88
|
-
const title = record.title;
|
|
89
|
-
if (typeof title === "string" && title.trim().length > 0) {
|
|
90
|
-
normalized.title = title.trim();
|
|
91
|
-
}
|
|
92
|
-
const version = record.version;
|
|
93
|
-
if (typeof version === "string" && version.trim().length > 0) {
|
|
94
|
-
normalized.version = version.trim();
|
|
95
|
-
}
|
|
96
|
-
const platform = record.platform;
|
|
97
|
-
if (typeof platform === "string" && platform.trim().length > 0) {
|
|
98
|
-
normalized.platform = platform.trim();
|
|
99
|
-
}
|
|
100
|
-
const vendor = record.vendor;
|
|
101
|
-
if (typeof vendor === "string" && vendor.trim().length > 0) {
|
|
102
|
-
normalized.vendor = vendor.trim();
|
|
103
|
-
}
|
|
104
|
-
const persistentId = record.persistentId;
|
|
105
|
-
if (typeof persistentId === "string" && persistentId.trim().length > 0) {
|
|
106
|
-
normalized.persistentId = persistentId.trim();
|
|
107
|
-
}
|
|
108
|
-
return Object.keys(normalized).length > 0 ? normalized : undefined;
|
|
109
|
-
}
|
|
110
|
-
/**
|
|
111
|
-
* Clone capabilities object (deep copy)
|
|
112
|
-
*
|
|
113
|
-
* @param capabilities Capabilities to clone
|
|
114
|
-
* @returns Cloned capabilities or undefined
|
|
115
|
-
*/
|
|
116
|
-
cloneCapabilities(capabilities) {
|
|
117
|
-
if (!this.isRecord(capabilities)) {
|
|
118
|
-
return undefined;
|
|
119
|
-
}
|
|
120
|
-
return JSON.parse(JSON.stringify(capabilities));
|
|
121
|
-
}
|
|
122
|
-
/**
|
|
123
|
-
* Type guard for record objects
|
|
124
|
-
*
|
|
125
|
-
* @param value Value to check
|
|
126
|
-
* @returns true if value is a record object
|
|
127
|
-
*/
|
|
128
|
-
isRecord(value) {
|
|
129
|
-
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
130
|
-
}
|
|
131
|
-
/**
|
|
132
|
-
* Get current size of context cache (for monitoring)
|
|
133
|
-
*
|
|
134
|
-
* @returns Number of stored contexts
|
|
135
|
-
*/
|
|
136
|
-
size() {
|
|
137
|
-
return this.contexts.size;
|
|
138
|
-
}
|
|
139
|
-
/**
|
|
140
|
-
* Clear all contexts (for testing)
|
|
141
|
-
*/
|
|
142
|
-
clear() {
|
|
143
|
-
this.contexts.clear();
|
|
144
|
-
}
|
|
145
|
-
}
|
|
146
|
-
/**
|
|
147
|
-
* Build request metadata from HTTP request
|
|
148
|
-
*
|
|
149
|
-
* @param request HTTP request
|
|
150
|
-
* @returns Request metadata with fingerprint
|
|
151
|
-
*/
|
|
152
|
-
export function buildRequestMeta(request) {
|
|
153
|
-
const ip = request.headers.get("cf-connecting-ip") ??
|
|
154
|
-
request.headers.get("x-forwarded-for") ??
|
|
155
|
-
undefined;
|
|
156
|
-
const userAgent = request.headers.get("user-agent") ?? undefined;
|
|
157
|
-
const cfRay = request.headers.get("cf-ray") ?? undefined;
|
|
158
|
-
const origin = request.headers.get("origin") ?? undefined;
|
|
159
|
-
const secChUa = request.headers.get("sec-ch-ua") ?? undefined;
|
|
160
|
-
const fingerprintParts = [ip, userAgent, cfRay, origin, secChUa].filter((value) => typeof value === "string" && value.length > 0);
|
|
161
|
-
return {
|
|
162
|
-
fingerprint: fingerprintParts.length > 0 ? fingerprintParts.join("|") : undefined,
|
|
163
|
-
ip,
|
|
164
|
-
userAgent,
|
|
165
|
-
cfRay,
|
|
166
|
-
request, // Include request for cookie access
|
|
167
|
-
};
|
|
168
|
-
}
|
|
169
|
-
//# sourceMappingURL=initialize-context.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"initialize-context.js","sourceRoot":"","sources":["../../src/utils/initialize-context.ts"],"names":[],"mappings":"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"}
|