Convenience methods for Client

This commit is contained in:
Justin Spahr-Summers 2024-11-04 22:12:43 +00:00
commit 3d32ce69df
No known key found for this signature in database

View file

@ -11,6 +11,24 @@ import {
Request,
Result,
ServerCapabilities,
CompleteRequest,
GetPromptRequest,
ListPromptsRequest,
ListResourcesRequest,
ReadResourceRequest,
SubscribeRequest,
UnsubscribeRequest,
CallToolRequest,
ListToolsRequest,
CompleteResultSchema,
GetPromptResultSchema,
ListPromptsResultSchema,
ListResourcesResultSchema,
ReadResourceResultSchema,
CallToolResultSchema,
ListToolsResultSchema,
EmptyResultSchema,
LoggingLevel,
} from "../types.js";
/**
@ -103,4 +121,75 @@ export class Client<
getServerVersion(): Implementation | undefined {
return this._serverVersion;
}
async ping() {
return this.request({ method: "ping" }, EmptyResultSchema);
}
async complete(params: CompleteRequest["params"]) {
return this.request(
{ method: "completion/complete", params },
CompleteResultSchema,
);
}
async setLoggingLevel(level: LoggingLevel) {
return this.request(
{ method: "logging/setLevel", params: { level } },
EmptyResultSchema,
);
}
async getPrompt(params: GetPromptRequest["params"]) {
return this.request(
{ method: "prompts/get", params },
GetPromptResultSchema,
);
}
async listPrompts(params?: ListPromptsRequest["params"]) {
return this.request(
{ method: "prompts/list", params },
ListPromptsResultSchema,
);
}
async listResources(params?: ListResourcesRequest["params"]) {
return this.request(
{ method: "resources/list", params },
ListResourcesResultSchema,
);
}
async readResource(params: ReadResourceRequest["params"]) {
return this.request(
{ method: "resources/read", params },
ReadResourceResultSchema,
);
}
async subscribeResource(params: SubscribeRequest["params"]) {
return this.request(
{ method: "resources/subscribe", params },
EmptyResultSchema,
);
}
async unsubscribeResource(params: UnsubscribeRequest["params"]) {
return this.request(
{ method: "resources/unsubscribe", params },
EmptyResultSchema,
);
}
async callTool(params: CallToolRequest["params"]) {
return this.request({ method: "tools/call", params }, CallToolResultSchema);
}
async listTools(params?: ListToolsRequest["params"]) {
return this.request(
{ method: "tools/list", params },
ListToolsResultSchema,
);
}
}