extra parameter - remain optional for backwards compatibility

This commit is contained in:
Konstantin Konstantinov 2025-06-24 19:39:37 +03:00
commit 166da76b00
No known key found for this signature in database
6 changed files with 9 additions and 8 deletions

1
package-lock.json generated
View file

@ -1,5 +1,6 @@
{
"name": "@modelcontextprotocol/sdk",
"version": "1.13.1",
"lockfileVersion": 3,
"requires": true,
"packages": {

View file

@ -20,7 +20,7 @@ export class SSEServerTransport implements Transport {
private _sessionId: string;
onclose?: () => void;
onerror?: (error: Error) => void;
onmessage?: (message: JSONRPCMessage, extra: { authInfo?: AuthInfo, requestInfo: RequestInfo }) => void;
onmessage?: (message: JSONRPCMessage, extra?: MessageExtraInfo) => void;
/**
* Creates a new SSE server transport, which will direct the client to POST messages to the relative or absolute URL identified by `_endpoint`.
@ -119,7 +119,7 @@ export class SSEServerTransport implements Transport {
/**
* Handle a client message, regardless of how it arrived. This can be used to inform the server of messages that arrive via a means different than HTTP POST.
*/
async handleMessage(message: unknown, extra: MessageExtraInfo): Promise<void> {
async handleMessage(message: unknown, extra?: MessageExtraInfo): Promise<void> {
let parsedMessage: JSONRPCMessage;
try {
parsedMessage = JSONRPCMessageSchema.parse(message);

View file

@ -114,7 +114,7 @@ export class StreamableHTTPServerTransport implements Transport {
sessionId?: string;
onclose?: () => void;
onerror?: (error: Error) => void;
onmessage?: (message: JSONRPCMessage, extra: MessageExtraInfo) => void;
onmessage?: (message: JSONRPCMessage, extra?: MessageExtraInfo) => void;
constructor(options: StreamableHTTPServerTransportOptions) {
this.sessionIdGenerator = options.sessionIdGenerator;

View file

@ -22,7 +22,7 @@ export interface MessageExtraInfo {
/**
* The request information.
*/
requestInfo: RequestInfo;
requestInfo?: RequestInfo;
/**
* The authentication information.

View file

@ -131,7 +131,7 @@ export type RequestHandlerExtra<SendRequestT extends Request,
/**
* The original HTTP request.
*/
requestInfo: RequestInfo;
requestInfo?: RequestInfo;
/**
* Sends a notification that relates to the current request being handled.
@ -345,7 +345,7 @@ export abstract class Protocol<
);
}
private _onrequest(request: JSONRPCRequest, extra: MessageExtraInfo): void {
private _onrequest(request: JSONRPCRequest, extra?: MessageExtraInfo): void {
const handler =
this._requestHandlers.get(request.method) ?? this.fallbackRequestHandler;
@ -381,7 +381,7 @@ export abstract class Protocol<
this.request(r, resultSchema, { ...options, relatedRequestId: request.id }),
authInfo: extra?.authInfo,
requestId: request.id,
requestInfo: extra.requestInfo
requestInfo: extra?.requestInfo
};
// Starting with Promise.resolve() puts any synchronous errors into the monad as well.

View file

@ -70,7 +70,7 @@ export interface Transport {
*
* The requestInfo can be used to get the original request information (headers, etc.)
*/
onmessage?: (message: JSONRPCMessage, extra: MessageExtraInfo) => void;
onmessage?: (message: JSONRPCMessage, extra?: MessageExtraInfo) => void;
/**
* The session ID generated for this connection.