// Lightweight mock for @agentclientprotocol/sdk so unit tests can import // modules that reference its runtime values (RequestError, ClientSideConnection, // PROTOCOL_VERSION, ndJsonStream) without pulling the real ESM package // through ts-jest. Tests that need behavior beyond this mock should stub // their own. class RequestError extends Error { constructor(code, message, data) { super(message); this.code = code; this.data = data; this.name = "RequestError"; } static parseError(data, msg) { return new RequestError(-32700, msg ?? "Parse error", data); } static invalidRequest(data, msg) { return new RequestError(-32600, msg ?? "Invalid Request", data); } static methodNotFound(method) { return new RequestError(-32601, `Method not found: ${method}`); } static invalidParams(data, msg) { return new RequestError(-32602, msg ?? "Invalid params", data); } static internalError(data, msg) { return new RequestError(-32603, msg ?? "Internal error", data); } static authRequired(data, msg) { return new RequestError(-32000, msg ?? "Authentication required", data); } static resourceNotFound(uri) { return new RequestError(-32001, `Resource not found${uri ? `: ${uri}` : ""}`); } toResult() { return { error: this.toErrorResponse() }; } toErrorResponse() { return { code: this.code, message: this.message, data: this.data }; } } class ClientSideConnection { constructor(toClient, _stream) { this._client = toClient(this); } initialize = jest.fn(async () => ({ protocolVersion: 1 })); newSession = jest.fn(async () => ({ sessionId: "test-session" })); prompt = jest.fn(async () => ({ stopReason: "end_turn" })); cancel = jest.fn(async () => undefined); } const ndJsonStream = jest.fn(() => ({})); const PROTOCOL_VERSION = 1; module.exports = { RequestError, ClientSideConnection, ndJsonStream, PROTOCOL_VERSION, };