diff --git a/CHANGELOG.md b/CHANGELOG.md index 1bacac1e..47dfd7d6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,10 @@ # Changelog +## 0.7.0 + +- Allow importing from this package as a library in addition to running it as a CLI. Allows for easier integration into existing node applications. +- Update to @anthropic-ai/claude-agent-sdk@v0.1.27 + ## 0.6.10 - Provide `agentInfo` on initialization response. diff --git a/package-lock.json b/package-lock.json index dedd30db..673ae32c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,17 +1,17 @@ { "name": "@zed-industries/claude-code-acp", - "version": "0.6.10", + "version": "0.7.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@zed-industries/claude-code-acp", - "version": "0.6.10", + "version": "0.7.0", "license": "Apache-2.0", "dependencies": { "@agentclientprotocol/sdk": "0.5.1", - "@anthropic-ai/claude-agent-sdk": "0.1.26", - "@anthropic-ai/claude-code": "2.0.26", + "@anthropic-ai/claude-agent-sdk": "0.1.27", + "@anthropic-ai/claude-code": "2.0.27", "@modelcontextprotocol/sdk": "1.20.2", "diff": "8.0.2", "express": "5.1.0", @@ -49,9 +49,9 @@ } }, "node_modules/@anthropic-ai/claude-agent-sdk": { - "version": "0.1.26", - "resolved": "https://registry.npmjs.org/@anthropic-ai/claude-agent-sdk/-/claude-agent-sdk-0.1.26.tgz", - "integrity": "sha512-daVGe5x6KOFy9DKyDojw15eljBP+tPx+spAyGll/Rp/B6t+NP0Oiwpaiib0afjbCRbqXkWEHUJPE3yDFrMcZlA==", + "version": "0.1.27", + "resolved": "https://registry.npmjs.org/@anthropic-ai/claude-agent-sdk/-/claude-agent-sdk-0.1.27.tgz", + "integrity": "sha512-HuMPW6spj2q8FODiP/WBCqUZAYGwDPoI1EpicP9KUXvuYk+2MZQYSaD7oiN6iNPupR2T5oJ2HY/D9OzjyCD2Mw==", "license": "SEE LICENSE IN README.md", "engines": { "node": ">=18.0.0" @@ -69,9 +69,9 @@ } }, "node_modules/@anthropic-ai/claude-code": { - "version": "2.0.26", - "resolved": "https://registry.npmjs.org/@anthropic-ai/claude-code/-/claude-code-2.0.26.tgz", - "integrity": "sha512-bk/sxGdTEbI0N7g+pTwYq5CNUjdAcvIKXvf/x5oRV9q24b42uq3gijrZGycSbWmtYTIjbzFAHeWw5n7Ic43/6w==", + "version": "2.0.27", + "resolved": "https://registry.npmjs.org/@anthropic-ai/claude-code/-/claude-code-2.0.27.tgz", + "integrity": "sha512-Ml4tnBeJu+K7MUFLTg8q7U2BE39Vx2D+KI7t86QnFX/K90c58ekFDUUDnfAp1PqTe9vRms6vARJiWzNxrePinA==", "license": "SEE LICENSE IN README.md", "bin": { "claude": "cli.js" diff --git a/package.json b/package.json index f3ebb2b3..d4016f17 100644 --- a/package.json +++ b/package.json @@ -6,7 +6,7 @@ "bin": { "claude-code-acp": "./dist/cli.js" }, - "version": "0.6.10", + "version": "0.7.0", "description": "An ACP-compatible coding agent powered by the Claude Code SDK (TypeScript)", "main": "dist/index.js", "type": "module", @@ -18,7 +18,7 @@ ], "scripts": { "build": "tsc", - "start": "node dist/index.js", + "start": "node dist/cli.js", "dev": "npm run build && npm run start", "lint": "eslint src --ext .ts", "lint:fix": "eslint src --ext .ts --fix", @@ -52,8 +52,8 @@ "license": "Apache-2.0", "dependencies": { "@agentclientprotocol/sdk": "0.5.1", - "@anthropic-ai/claude-agent-sdk": "0.1.26", - "@anthropic-ai/claude-code": "2.0.26", + "@anthropic-ai/claude-agent-sdk": "0.1.27", + "@anthropic-ai/claude-code": "2.0.27", "@modelcontextprotocol/sdk": "1.20.2", "diff": "8.0.2", "express": "5.1.0", diff --git a/src/acp-agent.ts b/src/acp-agent.ts index 3ace6109..e30f4d32 100644 --- a/src/acp-agent.ts +++ b/src/acp-agent.ts @@ -210,9 +210,10 @@ export class ClaudeAcpAgent implements Agent { mcpServers, systemPrompt, settingSources: ["user", "project", "local"], - // If we want bypassPermissions to be an option, we have to start the session with it on. - // We change it immediately back to default below before returning the session. - permissionMode: IS_ROOT ? permissionMode : "bypassPermissions", + // If we want bypassPermissions to be an option, we have to allow it here. + // But it doesn't work in root mode, so we only activate it if it will work. + allowDangerouslySkipPermissions: !IS_ROOT, + permissionMode, permissionPromptToolName: PERMISSION_TOOL_NAME, stderr: (err) => console.error(err), // note: although not documented by the types, passing an absolute path @@ -258,10 +259,6 @@ export class ClaudeAcpAgent implements Agent { const availableCommands = await getAvailableSlashCommands(q); const models = await getAvailableModels(q); - // Change it back to default - if (!IS_ROOT) { - await q.setPermissionMode(permissionMode); - } // Needs to happen after we return the session setTimeout(() => {