diff --git a/package-lock.json b/package-lock.json index d4cc569e..20386dfd 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,7 +10,7 @@ "license": "Apache-2.0", "dependencies": { "@agentclientprotocol/sdk": "0.13.0", - "@anthropic-ai/claude-agent-sdk": "0.2.6", + "@anthropic-ai/claude-agent-sdk": "0.2.7", "@modelcontextprotocol/sdk": "1.25.2", "diff": "8.0.3", "minimatch": "10.1.1" @@ -20,13 +20,13 @@ }, "devDependencies": { "@anthropic-ai/sdk": "0.71.2", - "@types/node": "25.0.7", + "@types/node": "25.0.8", "@typescript-eslint/eslint-plugin": "8.53.0", "@typescript-eslint/parser": "8.53.0", "eslint": "9.39.2", "eslint-config-prettier": "10.1.8", "globals": "17.0.0", - "prettier": "3.7.4", + "prettier": "3.8.0", "ts-node": "10.9.2", "typescript": "5.9.3", "vitest": "4.0.17" @@ -42,9 +42,9 @@ } }, "node_modules/@anthropic-ai/claude-agent-sdk": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/@anthropic-ai/claude-agent-sdk/-/claude-agent-sdk-0.2.6.tgz", - "integrity": "sha512-lwswHo6z/Kh9djafk2ajPju62+VqHwJ23gueG1alfaLNK4GRYHgCROfiX6/wlxAd8sRvgTo6ry1hNzkyz7bOpw==", + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/@anthropic-ai/claude-agent-sdk/-/claude-agent-sdk-0.2.7.tgz", + "integrity": "sha512-I1/zcnLah74kZeRkj/1QnDaC6ItJ2m/Bftlm25uoaRkZx7i7SkcpqM9jGE/r2A8PMxnw5WpabP60Xgj99CrTuw==", "license": "SEE LICENSE IN README.md", "engines": { "node": ">=18.0.0" @@ -754,9 +754,9 @@ } }, "node_modules/@hono/node-server": { - "version": "1.19.8", - "resolved": "https://registry.npmjs.org/@hono/node-server/-/node-server-1.19.8.tgz", - "integrity": "sha512-0/g2lIOPzX8f3vzW1ggQgvG5mjtFBDBHFAzI5SFAi2DzSqS9luJwqg9T6O/gKYLi+inS7eNxBeIFkkghIPvrMA==", + "version": "1.19.9", + "resolved": "https://registry.npmjs.org/@hono/node-server/-/node-server-1.19.9.tgz", + "integrity": "sha512-vHL6w3ecZsky+8P5MD+eFfaGTyCeOHUIFYMGpQGbrBTSmNNoxv0if69rEZ5giu36weC5saFuznL411gRX7bJDw==", "license": "MIT", "engines": { "node": ">=18.14.1" @@ -1608,12 +1608,11 @@ "license": "MIT" }, "node_modules/@types/node": { - "version": "25.0.7", - "resolved": "https://registry.npmjs.org/@types/node/-/node-25.0.7.tgz", - "integrity": "sha512-C/er7DlIZgRJO7WtTdYovjIFzGsz0I95UlMyR9anTb4aCpBSRWe5Jc1/RvLKUfzmOxHPGjSE5+63HgLtndxU4w==", + "version": "25.0.8", + "resolved": "https://registry.npmjs.org/@types/node/-/node-25.0.8.tgz", + "integrity": "sha512-powIePYMmC3ibL0UJ2i2s0WIbq6cg6UyVFQxSCpaPxxzAaziRfimGivjdF943sSGV6RADVbk0Nvlm5P/FB44Zg==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "undici-types": "~7.16.0" } @@ -1653,7 +1652,6 @@ "integrity": "sha512-npiaib8XzbjtzS2N4HlqPvlpxpmZ14FjSJrteZpPxGUaYPlvhzlzUZ4mZyABo0EFrOWnvyd0Xxroq//hKhtAWg==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@typescript-eslint/scope-manager": "8.53.0", "@typescript-eslint/types": "8.53.0", @@ -2008,7 +2006,6 @@ "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", "dev": true, "license": "MIT", - "peer": true, "bin": { "acorn": "bin/acorn" }, @@ -2505,7 +2502,6 @@ "integrity": "sha512-LEyamqS7W5HB3ujJyvi0HQK/dtVINZvd5mAAp9eT5S/ujByGjiZLCzPcHVzuXbpJDJF/cxwHlfceVUDZ2lnSTw==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@eslint-community/eslint-utils": "^4.8.0", "@eslint-community/regexpp": "^4.12.1", @@ -2798,7 +2794,6 @@ "resolved": "https://registry.npmjs.org/express/-/express-5.2.1.tgz", "integrity": "sha512-hIS4idWWai69NezIdRt2xFVofaF4j+6INOpJlVOLDO8zXGpUVEVzIYk12UUi2JzjEzWL3IOAxcTubgz9Po0yXw==", "license": "MIT", - "peer": true, "dependencies": { "accepts": "^2.0.0", "body-parser": "^2.2.1", @@ -3673,7 +3668,6 @@ "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=12" }, @@ -3730,9 +3724,9 @@ } }, "node_modules/prettier": { - "version": "3.7.4", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.7.4.tgz", - "integrity": "sha512-v6UNi1+3hSlVvv8fSaoUbggEM5VErKmmpGA7Pl3HF8V6uKY7rvClBOJlH6yNwQtfTueNkGVpOv/mtWL9L4bgRA==", + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.8.0.tgz", + "integrity": "sha512-yEPsovQfpxYfgWNhCfECjG5AQaO+K3dp6XERmOepyPDVqcJm+bjyCVO3pmU+nAPe0N5dDvekfGezt/EIiRe1TA==", "dev": true, "license": "MIT", "bin": { @@ -4276,7 +4270,6 @@ "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", "dev": true, "license": "Apache-2.0", - "peer": true, "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -4333,7 +4326,6 @@ "integrity": "sha512-w+N7Hifpc3gRjZ63vYBXA56dvvRlNWRczTdmCBBa+CotUzAPf5b7YMdMR/8CQoeYE5LX3W4wj6RYTgonm1b9DA==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "esbuild": "^0.27.0", "fdir": "^6.5.0", @@ -4557,7 +4549,6 @@ "resolved": "https://registry.npmjs.org/zod/-/zod-4.3.5.tgz", "integrity": "sha512-k7Nwx6vuWx1IJ9Bjuf4Zt1PEllcwe7cls3VNzm4CQ1/hgtFUK2bRNG3rvnpPUhFjmqJKAKtjV576KnUkHocg/g==", "license": "MIT", - "peer": true, "funding": { "url": "https://github.com/sponsors/colinhacks" } diff --git a/package.json b/package.json index ba16aff5..5e3826df 100644 --- a/package.json +++ b/package.json @@ -52,20 +52,20 @@ "license": "Apache-2.0", "dependencies": { "@agentclientprotocol/sdk": "0.13.0", - "@anthropic-ai/claude-agent-sdk": "0.2.6", + "@anthropic-ai/claude-agent-sdk": "0.2.7", "@modelcontextprotocol/sdk": "1.25.2", "diff": "8.0.3", "minimatch": "10.1.1" }, "devDependencies": { "@anthropic-ai/sdk": "0.71.2", - "@types/node": "25.0.7", + "@types/node": "25.0.8", "@typescript-eslint/eslint-plugin": "8.53.0", "@typescript-eslint/parser": "8.53.0", "eslint": "9.39.2", "eslint-config-prettier": "10.1.8", "globals": "17.0.0", - "prettier": "3.7.4", + "prettier": "3.8.0", "ts-node": "10.9.2", "typescript": "5.9.3", "vitest": "4.0.17" diff --git a/src/acp-agent.ts b/src/acp-agent.ts index 61776934..1aa7deb1 100644 --- a/src/acp-agent.ts +++ b/src/acp-agent.ts @@ -691,6 +691,7 @@ export class ClaudeAcpAgent implements Agent { ...(process.env.CLAUDE_CODE_EXECUTABLE && { pathToClaudeCodeExecutable: process.env.CLAUDE_CODE_EXECUTABLE, }), + tools: { type: "preset", preset: "claude_code" }, hooks: { ...userProvidedOptions?.hooks, PreToolUse: [ @@ -871,7 +872,13 @@ async function getAvailableSlashCommands(query: Query): Promise { - const input = command.argumentHint ? { hint: command.argumentHint } : null; + const input = command.argumentHint + ? { + hint: Array.isArray(command.argumentHint) + ? command.argumentHint.join(" ") + : command.argumentHint, + } + : null; let name = command.name; if (command.name.endsWith(" (MCP)")) { name = `mcp:${name.replace(" (MCP)", "")}`; diff --git a/src/tests/.claude/commands/say-hello.md b/src/tests/.claude/commands/say-hello.md index 3ec102b7..387b0a17 100644 --- a/src/tests/.claude/commands/say-hello.md +++ b/src/tests/.claude/commands/say-hello.md @@ -1,6 +1,6 @@ --- description: Say hello -argument-hint: name +argument-hint: [name] --- Respond with "Hello $1" and nothing else.