Merge pull request #268 from morinokami/patch-2

fix: Ensure the correct capability is checked for `completion/complete`
This commit is contained in:
Justin Spahr-Summers 2025-04-07 11:29:04 +01:00 • committed by GitHub
commit a76b2639d7
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 12 additions and 3 deletions

View file

@ -227,10 +227,19 @@ test("should respect server capabilities", async () => {
await expect(client.listResources()).resolves.not.toThrow();
await expect(client.listTools()).resolves.not.toThrow();
// This should throw because prompts are not supported
// These should throw because prompts, logging, and completions are not supported
await expect(client.listPrompts()).rejects.toThrow(
"Server does not support prompts",
);
await expect(client.setLoggingLevel("error")).rejects.toThrow(
"Server does not support logging",
);
await expect(
client.complete({
ref: { type: "ref/prompt", name: "test" },
argument: { name: "test", value: "test" },
}),
).rejects.toThrow("Server does not support completions");
});
test("should respect client notification capabilities", async () => {

View file

@ -237,9 +237,9 @@ export class Client<
break;
case "completion/complete":
if (!this._serverCapabilities?.prompts) {
if (!this._serverCapabilities?.completions) {
throw new Error(
`Server does not support prompts (required for ${method})`,
`Server does not support completions (required for ${method})`,
);
}
break;