{"_id":"@blowmage/cursor-agent-acp","_rev":"9-9c56283ef5ac94f161d2ae43bb2a3b49","name":"@blowmage/cursor-agent-acp","dist-tags":{"latest":"0.7.1"},"versions":{"0.1.0":{"name":"@blowmage/cursor-agent-acp","version":"0.1.0","keywords":["acp","agent-client-protocol","cursor","cursor-cli","ai","coding-assistant","editor","zed","neovim","typescript","llm","agent","tools"],"author":{"name":"Mike Moore","email":"blowmage@gmail.com"},"license":"MIT","_id":"@blowmage/cursor-agent-acp@0.1.0","maintainers":[{"name":"blowmage","email":"mike@blowmage.com"}],"homepage":"https://github.com/blowmage/cursor-agent-acp#readme","bugs":{"url":"https://github.com/blowmage/cursor-agent-acp/issues"},"bin":{"cursor-agent-acp":"dist/bin/cursor-agent-acp.js"},"dist":{"shasum":"f857a5651a35f1e0fc660a38725458c369ee264f","tarball":"https://registry.npmjs.org/@blowmage/cursor-agent-acp/-/cursor-agent-acp-0.1.0.tgz","fileCount":68,"integrity":"sha512-mqQfddPJjEnqhbS04akiPLlLEKjNsDiFygpD+dyRnKaCKzSChZfV9b7i0b2xrNVD3r8uixDN1zNzNByYKCZX1Q==","signatures":[{"sig":"MEUCIFuzGvD07ZPDjzXMnyJXySUI5rxXErxhcyPcpZGj6x8kAiEAxz99tPx5qalc/fyHUrLwhGdhK+ixNB9AHqgJlC9Ql3g=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":510057},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"abae40c86b8635e93d4de9f797a4e2842c5312d9","scripts":{"dev":"tsx src/bin/cursor-agent-acp.ts","lint":"eslint src/ tests/ --ext .ts","test":"jest","build":"tsc","clean":"rimraf dist","start":"node dist/bin/cursor-agent-acp.js","format":"prettier --write \"src/**/*.ts\" \"tests/**/*.ts\"","prepare":"npm run build","lint:fix":"eslint src/ tests/ --ext .ts --fix","test:all":"npm run test && npm run test:integration","test:watch":"jest --watch","build:watch":"tsc --watch","format:check":"prettier --check \"src/**/*.ts\" \"tests/**/*.ts\"","example:build":"npm run build && node dist/examples/complete-integration.js","test:coverage":"jest --coverage","prepublishOnly":"npm run clean && npm run build && npm run test:all && npm run lint","example:complete":"tsx examples/complete-integration.ts","test:integration":"jest --config=jest.integration.config.js","test:no-coverage":"jest --passWithNoTests --coverage=false"},"_npmUser":{"name":"blowmage","email":"mike@blowmage.com"},"repository":{"url":"git+https://github.com/blowmage/cursor-agent-acp.git","type":"git"},"_npmVersion":"11.6.1","description":"Production-ready Agent Client Protocol (ACP) adapter for Cursor CLI with comprehensive tool system, security framework, and seamless AI-powered coding assistance in ACP-compliant editors like Zed","directories":{},"_nodeVersion":"24.10.0","dependencies":{"uuid":"^9.0.1","winston":"^3.11.0","commander":"^11.1.0","@agentclientprotocol/sdk":"^0.5.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.1.4","jest":"^29.7.0","eslint":"^8.53.0","rimraf":"^5.0.5","ts-jest":"^29.1.1","prettier":"^3.0.3","typescript":"^5.2.2","@types/jest":"^29.5.8","@types/node":"^20.8.10","@types/uuid":"^9.0.7","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.1","@typescript-eslint/parser":"^6.21.0","@typescript-eslint/eslint-plugin":"^6.21.0"},"peerDependencies":{"cursor-agent":">=1.0.0"},"peerDependenciesMeta":{"cursor-agent":{"optional":false}},"_npmOperationalInternal":{"tmp":"tmp/cursor-agent-acp_0.1.0_1762238735202_0.09980355206302804","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@blowmage/cursor-agent-acp","version":"0.2.0","keywords":["acp","agent-client-protocol","cursor","cursor-cli","ai","coding-assistant","editor","zed","neovim","typescript","llm","agent","tools"],"author":{"name":"Mike Moore","email":"blowmage@gmail.com"},"license":"MIT","_id":"@blowmage/cursor-agent-acp@0.2.0","maintainers":[{"name":"blowmage","email":"mike@blowmage.com"}],"homepage":"https://github.com/blowmage/cursor-agent-acp#readme","bugs":{"url":"https://github.com/blowmage/cursor-agent-acp/issues"},"bin":{"cursor-agent-acp":"dist/bin/cursor-agent-acp.js"},"dist":{"shasum":"71ee1dd8c660d1311f6f8f9c16f334cb4fb04172","tarball":"https://registry.npmjs.org/@blowmage/cursor-agent-acp/-/cursor-agent-acp-0.2.0.tgz","fileCount":68,"integrity":"sha512-pdUhDY+c6M5hWAUiUfT3hyxPUuO24FScwiORxDtqlflDro57sz6ZOy0+8shcRrifvpIG82eckKJyGJ6XLEurTw==","signatures":[{"sig":"MEUCICMHWVWaohoG9ZyQ5n/IAo/H0C40+XQbzT6MF1MopR8bAiEA2nV/bTf9ARKNTBDoEdfhojWux4DZPcUKeWqnAsptTkk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":515573},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"f7745ad01c29b932eedff75b3e49e7a27b9e7209","scripts":{"dev":"tsx src/bin/cursor-agent-acp.ts","lint":"eslint src/ tests/ --ext .ts","test":"jest","build":"tsc","clean":"rimraf dist","start":"node dist/bin/cursor-agent-acp.js","format":"prettier --write \"src/**/*.ts\" \"tests/**/*.ts\"","prepare":"npm run build","lint:fix":"eslint src/ tests/ --ext .ts --fix","test:all":"npm run test && npm run test:integration","test:watch":"jest --watch","build:watch":"tsc --watch","format:check":"prettier --check \"src/**/*.ts\" \"tests/**/*.ts\"","example:build":"npm run build && node dist/examples/complete-integration.js","test:coverage":"jest --coverage","prepublishOnly":"npm run clean && npm run build && npm run test:all && npm run lint","example:complete":"tsx examples/complete-integration.ts","test:integration":"jest --config=jest.integration.config.js","test:no-coverage":"jest --passWithNoTests --coverage=false"},"_npmUser":{"name":"blowmage","email":"mike@blowmage.com"},"repository":{"url":"git+https://github.com/blowmage/cursor-agent-acp.git","type":"git"},"_npmVersion":"11.6.1","description":"Production-ready Agent Client Protocol (ACP) adapter for Cursor CLI with comprehensive tool system, security framework, and seamless AI-powered coding assistance in ACP-compliant editors like Zed","directories":{},"_nodeVersion":"24.10.0","dependencies":{"uuid":"^9.0.1","winston":"^3.11.0","commander":"^11.1.0","@agentclientprotocol/sdk":"^0.5.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.1.4","jest":"^29.7.0","eslint":"^8.53.0","rimraf":"^5.0.5","ts-jest":"^29.1.1","prettier":"^3.0.3","typescript":"^5.2.2","@types/jest":"^29.5.8","@types/node":"^20.8.10","@types/uuid":"^9.0.7","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.1","@typescript-eslint/parser":"^6.21.0","@typescript-eslint/eslint-plugin":"^6.21.0"},"peerDependencies":{"cursor-agent":">=1.0.0"},"peerDependenciesMeta":{"cursor-agent":{"optional":false}},"_npmOperationalInternal":{"tmp":"tmp/cursor-agent-acp_0.2.0_1762322536511_0.05223251392040562","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@blowmage/cursor-agent-acp","version":"0.3.0","keywords":["acp","agent-client-protocol","cursor","cursor-cli","ai","coding-assistant","editor","zed","neovim","typescript","llm","agent","tools"],"author":{"name":"Mike Moore","email":"blowmage@gmail.com"},"license":"MIT","_id":"@blowmage/cursor-agent-acp@0.3.0","maintainers":[{"name":"blowmage","email":"mike@blowmage.com"}],"homepage":"https://github.com/blowmage/cursor-agent-acp#readme","bugs":{"url":"https://github.com/blowmage/cursor-agent-acp/issues"},"bin":{"cursor-agent-acp":"dist/bin/cursor-agent-acp.js"},"dist":{"shasum":"328290502eccea8df672706e81a3172ba2f2f6f7","tarball":"https://registry.npmjs.org/@blowmage/cursor-agent-acp/-/cursor-agent-acp-0.3.0.tgz","fileCount":104,"integrity":"sha512-kJY87E/+EiUvo6xQxX6NaXPCAy6PddZdARTLztUMsOh3MZWyLZ/PxYOeJPfiOxbAvvGRw0u7Cf2RZC98uCweow==","signatures":[{"sig":"MEUCIQCe5fcnm4bz+lz+zKuA4hGn1Jj6reXxXkWyJszmZ5nE7AIgZtu+CHD02Nkya0agldw64QRvfYLnw9VQdHCe6SZ44ho=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":938554},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=18.14.0"},"gitHead":"4e76975e1f74d47964c5047f5705006525979eb3","scripts":{"ci":"npm run test && npm run test:integration && npm run lint && npm run format","dev":"tsx src/bin/cursor-agent-acp.ts","fix":"npm run lint:fix && npm run format:fix","lint":"eslint src/ tests/ --ext .ts","test":"jest","build":"tsc","clean":"rimraf dist","start":"node dist/bin/cursor-agent-acp.js","format":"prettier --check \"src/**/*.ts\" \"tests/**/*.ts\"","prepare":"npm run build","lint:fix":"eslint src/ tests/ --ext .ts --fix","test:all":"npm run test && npm run test:integration","format:fix":"prettier --write \"src/**/*.ts\" \"tests/**/*.ts\"","test:watch":"jest --watch","build:watch":"tsc --watch","example:build":"npm run build && node dist/examples/complete-integration.js","test:coverage":"jest --coverage","prepublishOnly":"npm run clean && npm run build && npm run ci","example:complete":"tsx examples/complete-integration.ts","test:integration":"jest --config=jest.integration.config.js","test:no-coverage":"jest --passWithNoTests --coverage=false"},"_npmUser":{"name":"blowmage","email":"mike@blowmage.com"},"repository":{"url":"git+https://github.com/blowmage/cursor-agent-acp.git","type":"git"},"_npmVersion":"11.6.1","description":"Production-ready Agent Client Protocol (ACP) adapter for Cursor CLI with comprehensive tool system, security framework, and seamless AI-powered coding assistance in ACP-compliant editors like Zed","directories":{},"_nodeVersion":"24.10.0","dependencies":{"uuid":"^13.0.0","winston":"^3.18.3","commander":"^14.0.2","@agentclientprotocol/sdk":"^0.5.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.6","jest":"^30.2.0","eslint":"^9.39.1","rimraf":"^6.1.2","globals":"^16.5.0","ts-jest":"^29.4.5","prettier":"^3.7.1","@eslint/js":"^9.39.1","typescript":"^5.9.3","@types/jest":"^30.0.0","@types/node":"^24.10.1","@eslint/eslintrc":"^3.3.1","@jest/test-sequencer":"^30.2.0","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.4","@typescript-eslint/parser":"^8.48.0","@typescript-eslint/eslint-plugin":"^8.48.0"},"peerDependencies":{"cursor-agent":">=1.0.0"},"peerDependenciesMeta":{"cursor-agent":{"optional":false}},"_npmOperationalInternal":{"tmp":"tmp/cursor-agent-acp_0.3.0_1764283562170_0.06234282965481541","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"@blowmage/cursor-agent-acp","version":"0.5.0","keywords":["acp","agent-client-protocol","cursor","cursor-cli","ai","coding-assistant","editor","zed","neovim","typescript","llm","agent","tools"],"author":{"name":"Mike Moore","email":"blowmage@gmail.com"},"license":"MIT","_id":"@blowmage/cursor-agent-acp@0.5.0","maintainers":[{"name":"blowmage","email":"mike@blowmage.com"}],"homepage":"https://github.com/blowmage/cursor-agent-acp#readme","bugs":{"url":"https://github.com/blowmage/cursor-agent-acp/issues"},"bin":{"cursor-agent-acp":"dist/bin/cursor-agent-acp.js"},"dist":{"shasum":"b918c87cc2909d29e3d5df84096f1cc1cb0a24c4","tarball":"https://registry.npmjs.org/@blowmage/cursor-agent-acp/-/cursor-agent-acp-0.5.0.tgz","fileCount":104,"integrity":"sha512-CcHNtO7E/cWzyXBoZJl8lJgUPEtvXPUTrctilZo3a6ymqU2cZu0MPNI2ZQjDFumxnjgysue++1uACpjokEzasw==","signatures":[{"sig":"MEYCIQCmuQhwHdjpbCFWQQq1hNUIBOpNezCK3fGeWCTuqn427wIhALgz//cV25/yF0djsMf6N6ZavunbWXO8xL0MC2bgGaYF","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":954450},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=18.14.0"},"gitHead":"3d8fa024bba207adc12f5a51c674a15a73ff08e8","scripts":{"ci":"npm run test && npm run test:integration && npm run lint && npm run format","dev":"tsx src/bin/cursor-agent-acp.ts","fix":"npm run lint:fix && npm run format:fix","lint":"eslint src/ tests/ --ext .ts","test":"jest","build":"tsc","clean":"rimraf dist","start":"node dist/bin/cursor-agent-acp.js","format":"prettier --check \"src/**/*.ts\" \"tests/**/*.ts\"","prepare":"npm run build","lint:fix":"eslint src/ tests/ --ext .ts --fix","test:all":"npm run test && npm run test:integration","format:fix":"prettier --write \"src/**/*.ts\" \"tests/**/*.ts\"","test:watch":"jest --watch","build:watch":"tsc --watch","example:build":"npm run build && node dist/examples/complete-integration.js","test:coverage":"jest --coverage","prepublishOnly":"npm run clean && npm run build && npm run ci","example:complete":"tsx examples/complete-integration.ts","test:integration":"jest --config=jest.integration.config.js","test:no-coverage":"jest --passWithNoTests --coverage=false"},"_npmUser":{"name":"blowmage","email":"mike@blowmage.com"},"repository":{"url":"git+https://github.com/blowmage/cursor-agent-acp.git","type":"git"},"_npmVersion":"11.6.1","description":"Production-ready Agent Client Protocol (ACP) adapter for Cursor CLI with comprehensive tool system, security framework, and seamless AI-powered coding assistance in ACP-compliant editors like Zed","directories":{},"_nodeVersion":"24.10.0","dependencies":{"uuid":"^13.0.0","winston":"^3.18.3","commander":"^14.0.2","@agentclientprotocol/sdk":"^0.5.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.6","jest":"^30.2.0","eslint":"^9.39.1","rimraf":"^6.1.2","globals":"^16.5.0","ts-jest":"^29.4.5","prettier":"^3.7.1","@eslint/js":"^9.39.1","typescript":"^5.9.3","@types/jest":"^30.0.0","@types/node":"^24.10.1","@eslint/eslintrc":"^3.3.1","@jest/test-sequencer":"^30.2.0","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.4","@typescript-eslint/parser":"^8.48.0","@typescript-eslint/eslint-plugin":"^8.48.0"},"peerDependencies":{"cursor-agent":">=1.0.0"},"peerDependenciesMeta":{"cursor-agent":{"optional":false}},"_npmOperationalInternal":{"tmp":"tmp/cursor-agent-acp_0.5.0_1764297090017_0.36692123511695973","host":"s3://npm-registry-packages-npm-production"}},"0.5.1":{"name":"@blowmage/cursor-agent-acp","version":"0.5.1","keywords":["acp","agent-client-protocol","cursor","cursor-cli","ai","coding-assistant","editor","zed","neovim","typescript","llm","agent","tools"],"author":{"name":"Mike Moore","email":"blowmage@gmail.com"},"license":"MIT","_id":"@blowmage/cursor-agent-acp@0.5.1","maintainers":[{"name":"blowmage","email":"mike@blowmage.com"}],"homepage":"https://github.com/blowmage/cursor-agent-acp#readme","bugs":{"url":"https://github.com/blowmage/cursor-agent-acp/issues"},"bin":{"cursor-agent-acp":"dist/bin/cursor-agent-acp.js"},"dist":{"shasum":"393bed7d44f0ff93e0d52dde609c26a4416b4d61","tarball":"https://registry.npmjs.org/@blowmage/cursor-agent-acp/-/cursor-agent-acp-0.5.1.tgz","fileCount":104,"integrity":"sha512-ZP1Yi+rM9ZtAu4P42YrO0nos03sJTIkCD7KSrYSDSlCsK21Yf1Q4v81Oq6HRFezlCwOFaCpOkBpysXQSLALRXA==","signatures":[{"sig":"MEQCIGpQfVVncRaOycjnMIwiBbOmYYdHbVWzfGcaxy5YyfmAAiALPnTriHuXCKOaMTB3pMw0sgoQNAZc7qODGQLvil335Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":979115},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=18.14.0"},"gitHead":"5f0094c76103471f65502b5734d6e167e850a1e2","scripts":{"ci":"npm run test && npm run test:integration && npm run lint && npm run format","dev":"tsx src/bin/cursor-agent-acp.ts","fix":"npm run lint:fix && npm run format:fix","lint":"eslint src/ tests/ --ext .ts","test":"jest","build":"tsc","clean":"rimraf dist","start":"node dist/bin/cursor-agent-acp.js","format":"prettier --check \"src/**/*.ts\" \"tests/**/*.ts\"","prepare":"npm run build","lint:fix":"eslint src/ tests/ --ext .ts --fix","test:all":"npm run test && npm run test:integration","format:fix":"prettier --write \"src/**/*.ts\" \"tests/**/*.ts\"","test:watch":"jest --watch","build:watch":"tsc --watch","example:build":"npm run build && node dist/examples/complete-integration.js","test:coverage":"jest --coverage","prepublishOnly":"npm run clean && npm run build && npm run ci","example:complete":"tsx examples/complete-integration.ts","test:integration":"jest --config=jest.integration.config.js","test:no-coverage":"jest --passWithNoTests --coverage=false"},"_npmUser":{"name":"blowmage","email":"mike@blowmage.com"},"repository":{"url":"git+https://github.com/blowmage/cursor-agent-acp.git","type":"git"},"_npmVersion":"11.6.2","description":"Production-ready Agent Client Protocol (ACP) adapter for Cursor CLI with comprehensive tool system, security framework, and seamless AI-powered coding assistance in ACP-compliant editors like Zed","directories":{},"_nodeVersion":"25.2.1","dependencies":{"uuid":"^13.0.0","winston":"^3.18.3","commander":"^14.0.2","@agentclientprotocol/sdk":"^0.5.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.6","jest":"^30.2.0","eslint":"^9.39.1","rimraf":"^6.1.2","globals":"^16.5.0","ts-jest":"^29.4.5","prettier":"^3.7.1","@eslint/js":"^9.39.1","typescript":"^5.9.3","@types/jest":"^30.0.0","@types/node":"^24.10.1","@eslint/eslintrc":"^3.3.1","@jest/test-sequencer":"^30.2.0","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.4","@typescript-eslint/parser":"^8.48.0","@typescript-eslint/eslint-plugin":"^8.48.0"},"peerDependencies":{"cursor-agent":">=1.0.0"},"peerDependenciesMeta":{"cursor-agent":{"optional":false}},"_npmOperationalInternal":{"tmp":"tmp/cursor-agent-acp_0.5.1_1765237092824_0.4385589268022321","host":"s3://npm-registry-packages-npm-production"}},"0.5.2":{"name":"@blowmage/cursor-agent-acp","version":"0.5.2","keywords":["acp","agent-client-protocol","cursor","cursor-cli","ai","coding-assistant","editor","zed","neovim","typescript","llm","agent","tools"],"author":{"name":"Mike Moore","email":"blowmage@gmail.com"},"license":"MIT","_id":"@blowmage/cursor-agent-acp@0.5.2","maintainers":[{"name":"blowmage","email":"mike@blowmage.com"}],"homepage":"https://github.com/blowmage/cursor-agent-acp#readme","bugs":{"url":"https://github.com/blowmage/cursor-agent-acp/issues"},"bin":{"cursor-agent-acp":"dist/bin/cursor-agent-acp.js"},"dist":{"shasum":"6fb00765e79de1c11991320afbf64a6f7d2c64b8","tarball":"https://registry.npmjs.org/@blowmage/cursor-agent-acp/-/cursor-agent-acp-0.5.2.tgz","fileCount":104,"integrity":"sha512-UuIXzykRLsKK/mgfjIE/9EQgn+SKYtvwqgfCTKJT1aE3paTgd3Y+k0vqKhSg+iZOP6jovh5ckks4bMSwMqturg==","signatures":[{"sig":"MEUCIByHLEZ6sh9n+Sb9+0zBCKZvUbNNo9cXT37+go3uted5AiEA2tkdslx1oB2IcL4FOe3t6r3DGXOHHOlW0Zj6eA4lBSE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":985957},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=18.14.0"},"gitHead":"6d1b94b6916ea17a19c94ac6bb195470236fb544","scripts":{"ci":"npm run test && npm run test:integration && npm run lint && npm run format","dev":"tsx src/bin/cursor-agent-acp.ts","fix":"npm run lint:fix && npm run format:fix","lint":"eslint src/ tests/ --ext .ts","test":"jest","build":"tsc","clean":"rimraf dist","start":"node dist/bin/cursor-agent-acp.js","format":"prettier --check \"src/**/*.ts\" \"tests/**/*.ts\"","prepare":"npm run build","lint:fix":"eslint src/ tests/ --ext .ts --fix","test:all":"npm run test && npm run test:integration","format:fix":"prettier --write \"src/**/*.ts\" \"tests/**/*.ts\"","test:watch":"jest --watch","build:watch":"tsc --watch","example:build":"npm run build && node dist/examples/complete-integration.js","test:coverage":"jest --coverage","prepublishOnly":"npm run clean && npm run build && npm run ci","example:complete":"tsx examples/complete-integration.ts","test:integration":"jest --config=jest.integration.config.js","test:no-coverage":"jest --passWithNoTests --coverage=false"},"_npmUser":{"name":"blowmage","email":"mike@blowmage.com"},"repository":{"url":"git+https://github.com/blowmage/cursor-agent-acp.git","type":"git"},"_npmVersion":"11.6.2","description":"Production-ready Agent Client Protocol (ACP) adapter for Cursor CLI with comprehensive tool system, security framework, and seamless AI-powered coding assistance in ACP-compliant editors like Zed","directories":{},"_nodeVersion":"25.2.1","dependencies":{"uuid":"^13.0.0","winston":"^3.18.3","commander":"^14.0.2","@agentclientprotocol/sdk":"^0.5.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.6","jest":"^30.2.0","eslint":"^9.39.1","rimraf":"^6.1.2","globals":"^16.5.0","ts-jest":"^29.4.5","prettier":"^3.7.1","@eslint/js":"^9.39.1","typescript":"^5.9.3","@types/jest":"^30.0.0","@types/node":"^24.10.1","@eslint/eslintrc":"^3.3.1","@jest/test-sequencer":"^30.2.0","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.4","@typescript-eslint/parser":"^8.48.0","@typescript-eslint/eslint-plugin":"^8.48.0"},"peerDependencies":{"cursor-agent":">=1.0.0"},"peerDependenciesMeta":{"cursor-agent":{"optional":false}},"_npmOperationalInternal":{"tmp":"tmp/cursor-agent-acp_0.5.2_1765305406294_0.6841557455105338","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"@blowmage/cursor-agent-acp","version":"0.6.0","keywords":["acp","agent-client-protocol","cursor","cursor-cli","ai","coding-assistant","editor","zed","neovim","typescript","llm","agent","tools"],"author":{"name":"Mike Moore","email":"blowmage@gmail.com"},"license":"MIT","_id":"@blowmage/cursor-agent-acp@0.6.0","maintainers":[{"name":"blowmage","email":"mike@blowmage.com"}],"homepage":"https://github.com/blowmage/cursor-agent-acp-npm#readme","bugs":{"url":"https://github.com/blowmage/cursor-agent-acp-npm/issues"},"bin":{"cursor-agent-acp":"dist/bin/cursor-agent-acp.js"},"dist":{"shasum":"f8fd0c0b10973b4bd2e5e1cb79015709582b28d6","tarball":"https://registry.npmjs.org/@blowmage/cursor-agent-acp/-/cursor-agent-acp-0.6.0.tgz","fileCount":104,"integrity":"sha512-t93xRuR65ky+oa3zIxIbohxjlhwL6zpiuHUKeH/RM+CcC4fXuXUFSvnD1U2FG2osfQb/J+CSWAtJp9EFqboS/A==","signatures":[{"sig":"MEQCICDiLqg9+ns19FVeaCFNtm0scrcr2IMs1VpR+ytNv5cmAiBtRRXyye++xXAUAVyiE7l10/ZFFwyOTUW2k8lnmUrUpA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1012262},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=18.14.0"},"gitHead":"b5fe30a1cec9fae1bb691be34fcac2d5a8a30a4b","scripts":{"ci":"npm run test && npm run test:integration && npm run lint && npm run format","dev":"tsx src/bin/cursor-agent-acp.ts","fix":"npm run lint:fix && npm run format:fix","lint":"eslint src/ tests/ --ext .ts","test":"jest","build":"tsc","clean":"rimraf dist","start":"node dist/bin/cursor-agent-acp.js","format":"prettier --check \"src/**/*.ts\" \"tests/**/*.ts\"","prepare":"npm run build","lint:fix":"eslint src/ tests/ --ext .ts --fix","test:all":"npm run test && npm run test:integration","format:fix":"prettier --write \"src/**/*.ts\" \"tests/**/*.ts\"","test:watch":"jest --watch","build:watch":"tsc --watch","example:build":"npm run build && node dist/examples/complete-integration.js","test:coverage":"jest --coverage","prepublishOnly":"npm run clean && npm run build && npm run ci","example:complete":"tsx examples/complete-integration.ts","test:integration":"jest --config=jest.integration.config.js","test:no-coverage":"jest --passWithNoTests --coverage=false"},"_npmUser":{"name":"blowmage","email":"mike@blowmage.com"},"repository":{"url":"git+https://github.com/blowmage/cursor-agent-acp-npm.git","type":"git"},"_npmVersion":"11.6.2","description":"Production-ready Agent Client Protocol (ACP) adapter for Cursor CLI with comprehensive tool system, security framework, and seamless AI-powered coding assistance in ACP-compliant editors like Zed","directories":{},"_nodeVersion":"25.3.0","dependencies":{"uuid":"^13.0.0","winston":"^3.19.0","commander":"^14.0.2","@agentclientprotocol/sdk":"^0.13.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","jest":"^30.2.0","eslint":"^9.39.2","rimraf":"^6.1.2","globals":"^17.0.0","ts-jest":"^29.4.6","prettier":"^3.8.0","@eslint/js":"^9.39.2","typescript":"^5.9.3","@types/jest":"^30.0.0","@types/node":"^25.0.9","@eslint/eslintrc":"^3.3.3","@jest/test-sequencer":"^30.2.0","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.5","@typescript-eslint/parser":"^8.53.1","@typescript-eslint/eslint-plugin":"^8.53.1"},"peerDependencies":{"zod":"^3.25.0 || ^4.0.0","cursor-agent":">=1.0.0"},"peerDependenciesMeta":{"cursor-agent":{"optional":false}},"_npmOperationalInternal":{"tmp":"tmp/cursor-agent-acp_0.6.0_1768948261879_0.5842533233722409","host":"s3://npm-registry-packages-npm-production"}},"0.7.0":{"name":"@blowmage/cursor-agent-acp","version":"0.7.0","keywords":["acp","agent-client-protocol","cursor","cursor-cli","ai","coding-assistant","editor","zed","neovim","typescript","llm","agent","tools"],"author":{"name":"Mike Moore","email":"blowmage@gmail.com"},"license":"MIT","_id":"@blowmage/cursor-agent-acp@0.7.0","maintainers":[{"name":"blowmage","email":"mike@blowmage.com"}],"homepage":"https://github.com/blowmage/cursor-agent-acp-npm#readme","bugs":{"url":"https://github.com/blowmage/cursor-agent-acp-npm/issues"},"bin":{"cursor-agent-acp":"dist/bin/cursor-agent-acp.js"},"dist":{"shasum":"703e572e9bad7c04ae88937c9c343a1ded612f63","tarball":"https://registry.npmjs.org/@blowmage/cursor-agent-acp/-/cursor-agent-acp-0.7.0.tgz","fileCount":104,"integrity":"sha512-h7imBN4objlUWNqX2HpPNoXehvuqhl6cG8jCiQG3aPvtD8T68tP82GX17eaC0pf5jZlMV813wzwJO3ABh2x3RQ==","signatures":[{"sig":"MEQCIE+ly+NXoJweVwsK4paAeBtcT4sEQlD7+NunN8c80WDCAiBiZGO4tosSqC+iHokv4SmlfnSDhHm44ttS4a2tBGtD5Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1012146},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=18.14.0"},"gitHead":"d9b6d99d3cfe484f0246ef5edaccdff7d68dc62b","scripts":{"ci":"npm run test && npm run test:integration && npm run lint && npm run format","dev":"tsx src/bin/cursor-agent-acp.ts","fix":"npm run lint:fix && npm run format:fix","lint":"eslint src/ tests/ --ext .ts","test":"jest","build":"tsc","clean":"rimraf dist","start":"node dist/bin/cursor-agent-acp.js","format":"prettier --check \"src/**/*.ts\" \"tests/**/*.ts\"","prepare":"npm run build","lint:fix":"eslint src/ tests/ --ext .ts --fix","test:all":"npm run test && npm run test:integration","format:fix":"prettier --write \"src/**/*.ts\" \"tests/**/*.ts\"","test:watch":"jest --watch","build:watch":"tsc --watch","example:build":"npm run build && node dist/examples/complete-integration.js","test:coverage":"jest --coverage","prepublishOnly":"npm run clean && npm run build && npm run ci","example:complete":"tsx examples/complete-integration.ts","test:integration":"jest --config=jest.integration.config.js","test:no-coverage":"jest --passWithNoTests --coverage=false"},"_npmUser":{"name":"blowmage","email":"mike@blowmage.com"},"repository":{"url":"git+https://github.com/blowmage/cursor-agent-acp-npm.git","type":"git"},"_npmVersion":"11.6.2","description":"Production-ready Agent Client Protocol (ACP) adapter for Cursor CLI with comprehensive tool system, security framework, and seamless AI-powered coding assistance in ACP-compliant editors like Zed","directories":{},"_nodeVersion":"25.3.0","dependencies":{"uuid":"^13.0.0","winston":"^3.19.0","commander":"^14.0.2","@agentclientprotocol/sdk":"^0.13.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","jest":"^30.2.0","eslint":"^9.39.2","rimraf":"^6.1.2","globals":"^17.0.0","ts-jest":"^29.4.6","prettier":"^3.8.0","@eslint/js":"^9.39.2","typescript":"^5.9.3","@types/jest":"^30.0.0","@types/node":"^25.0.9","@eslint/eslintrc":"^3.3.3","@jest/test-sequencer":"^30.2.0","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.5","@typescript-eslint/parser":"^8.53.1","@typescript-eslint/eslint-plugin":"^8.53.1"},"peerDependencies":{"zod":"^3.25.0 || ^4.0.0"},"_npmOperationalInternal":{"tmp":"tmp/cursor-agent-acp_0.7.0_1768965277964_0.044019088332420075","host":"s3://npm-registry-packages-npm-production"}},"0.7.1":{"name":"@blowmage/cursor-agent-acp","version":"0.7.1","description":"Production-ready Agent Client Protocol (ACP) adapter for Cursor CLI with comprehensive tool system, security framework, and seamless AI-powered coding assistance in ACP-compliant editors like Zed","main":"dist/index.js","bin":{"cursor-agent-acp":"dist/bin/cursor-agent-acp.js"},"publishConfig":{"access":"public"},"types":"dist/index.d.ts","scripts":{"build":"tsc","build:watch":"tsc --watch","ci":"npm run test && npm run test:integration && npm run lint && npm run format","fix":"npm run lint:fix && npm run format:fix","test":"jest","test:watch":"jest --watch","test:coverage":"jest --coverage","test:no-coverage":"jest --passWithNoTests --coverage=false","test:integration":"jest --config=jest.integration.config.js","test:all":"npm run test && npm run test:integration","lint":"eslint src/ tests/ --ext .ts","lint:fix":"eslint src/ tests/ --ext .ts --fix","format":"prettier --check \"src/**/*.ts\" \"tests/**/*.ts\"","format:fix":"prettier --write \"src/**/*.ts\" \"tests/**/*.ts\"","clean":"rimraf dist","prepare":"npm run build","prepublishOnly":"npm run clean && npm run build && npm run ci","dev":"tsx src/bin/cursor-agent-acp.ts","start":"node dist/bin/cursor-agent-acp.js","example:complete":"tsx examples/complete-integration.ts","example:build":"npm run build && node dist/examples/complete-integration.js"},"keywords":["acp","agent-client-protocol","cursor","cursor-cli","ai","coding-assistant","editor","zed","neovim","typescript","llm","agent","tools"],"author":{"name":"Mike Moore","email":"blowmage@gmail.com"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/blowmage/cursor-agent-acp-npm.git"},"bugs":{"url":"https://github.com/blowmage/cursor-agent-acp-npm/issues"},"homepage":"https://github.com/blowmage/cursor-agent-acp-npm#readme","engines":{"node":">=18.14.0"},"dependencies":{"@agentclientprotocol/sdk":"^0.13.0","commander":"^14.0.2","uuid":"^13.0.0","winston":"^3.19.0"},"devDependencies":{"@eslint/eslintrc":"^3.3.3","@eslint/js":"^9.39.2","@jest/test-sequencer":"^30.2.0","@types/jest":"^30.0.0","@types/node":"^25.0.9","@typescript-eslint/eslint-plugin":"^8.53.1","@typescript-eslint/parser":"^8.53.1","eslint":"^9.39.2","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.5","globals":"^17.0.0","jest":"^30.2.0","prettier":"^3.8.0","rimraf":"^6.1.2","ts-jest":"^29.4.6","tsx":"^4.21.0","typescript":"^5.9.3"},"peerDependencies":{"zod":"^3.25.0 || ^4.0.0"},"gitHead":"caf3583f550b776475d5c7a129c584fb9be7d450","_id":"@blowmage/cursor-agent-acp@0.7.1","_nodeVersion":"25.3.0","_npmVersion":"11.6.2","dist":{"integrity":"sha512-pVSkjsNIYRT2ypYutoNLOw7yWF2RbbE61HzXdVfLDvwFAoc+P4kNLC1oc4jlOYoqsPcO+EAHIGw4M1LAULKA+g==","shasum":"d184da6404a0cde399bdc28147bef4b315c35ffd","tarball":"https://registry.npmjs.org/@blowmage/cursor-agent-acp/-/cursor-agent-acp-0.7.1.tgz","fileCount":104,"unpackedSize":1028950,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDLRGKRrzeHA2MYYY1gCUYUJzfKhNe9mtXa5A3fNcaP+wIgE+txeE0Biz0ry9Whz0YBS9uZpQljlNy4wR024zEIkis="}]},"_npmUser":{"name":"blowmage","email":"mike@blowmage.com"},"directories":{},"maintainers":[{"name":"blowmage","email":"mike@blowmage.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/cursor-agent-acp_0.7.1_1768965438351_0.6832367561582722"},"_hasShrinkwrap":false}},"time":{"created":"2025-11-04T06:45:35.099Z","modified":"2026-01-21T03:17:18.698Z","0.1.0":"2025-11-04T06:45:35.429Z","0.2.0":"2025-11-05T06:02:16.729Z","0.3.0":"2025-11-27T22:46:02.440Z","0.5.0":"2025-11-28T02:31:30.226Z","0.5.1":"2025-12-08T23:38:13.005Z","0.5.2":"2025-12-09T18:36:46.467Z","0.6.0":"2026-01-20T22:31:02.108Z","0.7.0":"2026-01-21T03:14:38.151Z","0.7.1":"2026-01-21T03:17:18.593Z"},"bugs":{"url":"https://github.com/blowmage/cursor-agent-acp-npm/issues"},"author":{"name":"Mike Moore","email":"blowmage@gmail.com"},"license":"MIT","homepage":"https://github.com/blowmage/cursor-agent-acp-npm#readme","keywords":["acp","agent-client-protocol","cursor","cursor-cli","ai","coding-assistant","editor","zed","neovim","typescript","llm","agent","tools"],"repository":{"type":"git","url":"git+https://github.com/blowmage/cursor-agent-acp-npm.git"},"description":"Production-ready Agent Client Protocol (ACP) adapter for Cursor CLI with comprehensive tool system, security framework, and seamless AI-powered coding assistance in ACP-compliant editors like Zed","maintainers":[{"name":"blowmage","email":"mike@blowmage.com"}],"readme":"# Cursor Agent ACP Adapter\n\nA full-featured Agent Client Protocol (ACP) adapter for Cursor CLI, enabling seamless AI-powered coding assistance in ACP-compliant editors like Zed.\n\n## Overview\n\nThis TypeScript implementation provides a production-ready bridge between the Cursor CLI and editors that support the Agent Client Protocol. Built on the standard **stdio transport** per ACP specification, it offers feature parity with Zed's built-in Claude and Codex adapters while maintaining high performance and reliability.\n\n## Features\n\n- **ACP Protocol Core** - Initialize, session management, prompt processing\n- **Strict Schema Compliance** - 100% adherence to [ACP Schema](https://agentclientprotocol.com/protocol/schema)\n- **Stdio Transport** - Standard ACP stdio transport per protocol specification\n- **Session Management** - Persistent sessions with metadata and history\n- **Content Processing** - Text, code, and image block handling per ContentBlock schema\n- **Real-time Streaming** - Live response streaming for immediate feedback\n- **Complete Tool System** - Filesystem, terminal, and Cursor-specific tools\n- **Security Framework** - Path validation, command filtering, access controls\n- **Error Handling & Recovery** - Robust error handling with comprehensive validation\n- **Type Safety** - Written in TypeScript with strict type checking using `@agentclientprotocol/sdk`\n- **SDK Integration** - All protocol types imported from official `@agentclientprotocol/sdk`\n- **Test Coverage** - 200+ unit and integration tests with security coverage\n- **Cursor CLI Integration** - Complete integration with cursor-agent CLI features\n- **Advanced Tool Registry** - Dynamic provider management and validation\n- **Cross-Tool Workflows** - Seamless filesystem, terminal, and code operations\n- **High Performance** - <100ms average response time optimization\n- **Memory Efficiency** - Zero memory leaks, optimal resource usage\n- **Cross-platform** - Works on macOS, Linux, and Windows\n\n## ACP Schema Compliance\n\nThis adapter strictly adheres to the [Agent Client Protocol Schema](https://agentclientprotocol.com/protocol/schema). Key compliance features:\n\n### Protocol Types\n- **All types imported from `@agentclientprotocol/sdk`** - No custom protocol type definitions\n- **PromptRequest** - Uses `prompt` field per schema (ContentBlock[])\n- **SessionUpdate** - Full union type support (user_message_chunk, agent_message_chunk, agent_thought_chunk, tool_call, tool_call_update, plan, available_commands_update, current_mode_update)\n- **ContentBlock** - Complete support for text, image, audio, resource, resource_link\n- **SessionCapabilities** - Properly declared in AgentCapabilities\n- **Terminal types** - Full Terminal, TerminalHandle, TerminalExitStatus support\n\n### Validation\n- **Content block validation** - Strict validation against ContentBlock schema\n- **Annotations support** - Full Annotations type support with _meta extensions\n- **Error responses** - JSON-RPC 2.0 compliant error structures\n- **Type guards** - Runtime validation using SDK type structures\n\n### Documentation\n- **TSDoc comments** - All protocol methods link to ACP schema documentation\n- **Schema references** - Direct links to relevant schema sections\n- **Internal vs Protocol types** - Clear separation and documentation\n\n## Installation\n\n### Prerequisites\n\n1. **Node.js 18+** - Required for running the adapter\n2. **Cursor CLI** - Must be installed and authenticated\n\n```bash\n# Install Cursor CLI\ncurl https://cursor.com/install -fsSL | bash\n\n# Authenticate with your Cursor account\ncursor-agent login\n```\n\n### Install the Adapter\n\n```bash\n# Install globally\nnpm install -g @blowmage/cursor-agent-acp\n\n# Or install locally in your project\nnpm install @blowmage/cursor-agent-acp\n```\n\n## Usage\n\n### Basic Usage\n\n```bash\n# Start the ACP adapter with stdio transport\ncursor-agent-acp\n\n# Or run directly with npx\nnpx cursor-agent-acp\n```\n\nThe adapter uses **stdio transport** by default, which is the standard transport for the Agent Client Protocol. The adapter reads JSON-RPC messages from stdin and writes responses to stdout, with messages delimited by newlines as specified in the [ACP Transport Specification](https://agentclientprotocol.com/protocol/transports).\n\n### Zed Editor Integration\n\nAdd this configuration to your Zed settings (`~/.config/zed/settings.json`):\n\n```json\n{\n  \"agent_servers\": {\n    \"cursor-agent\": {\n      \"command\": \"cursor-agent-acp\",\n      \"args\": [],\n      \"env\": {}\n    }\n  }\n}\n```\n\nIf installed locally:\n\n```json\n{\n  \"agent_servers\": {\n    \"cursor-agent\": {\n      \"command\": \"npx\",\n      \"args\": [\"@blowmage/cursor-agent-acp\"],\n      \"env\": {}\n    }\n  }\n}\n```\n\n### JetBrains IDE Integration\n\nThe adapter supports JetBrains IDEs (WebStorm, IntelliJ IDEA, PyCharm, etc.) version 25.3 and later.\n\nCreate or edit `~/.jetbrains/acp.json`:\n\n```json\n{\n  \"agent_servers\": {\n    \"Cursor Agent\": {\n      \"command\": \"cursor-agent-acp\",\n      \"args\": [],\n      \"env\": {}\n    }\n  }\n}\n```\n\nOr configure through the IDE:\n1. Open **AI Chat** tool window\n2. Click ⚙️ settings → **\"Configure ACP Agents\"**\n3. Add the configuration above\n\n### Using with Other Editors\n\nThe adapter works with any ACP-compliant editor using the standard stdio transport. Configure your editor to launch `cursor-agent-acp` as an agent server process.\n\n## Transport Layer\n\nThis adapter implements the **stdio transport** as specified in the [ACP Transport Specification](https://agentclientprotocol.com/protocol/transports).\n\n### Stdio Transport (Default)\n\nThe stdio transport is the recommended transport for ACP:\n\n- **Standard Communication**: JSON-RPC messages over stdin/stdout\n- **Message Format**: Newline-delimited JSON (`\\n` delimiter)\n- **Logging**: Uses stderr for diagnostic output\n- **No Embedded Newlines**: Messages must not contain `\\n` or `\\r`\n- **SDK Compliant**: Uses `@agentclientprotocol/sdk` for all protocol handling\n\n### Why Stdio?\n\nStdio is the default and recommended transport for ACP because:\n\n1. **Universal Support**: Works with any process-based editor integration\n2. **Simple & Reliable**: Well-understood subprocess communication\n3. **Specification Compliant**: Follows ACP transport specification exactly\n4. **SDK Integration**: Full support via `@agentclientprotocol/sdk`\n\n## Configuration\n\nThe adapter supports various configuration options:\n\n```bash\n# Custom configuration file\ncursor-agent-acp --config /path/to/config.json\n\n# Set log level\ncursor-agent-acp --log-level debug\n\n# Specify session storage directory\ncursor-agent-acp --session-dir ~/.cursor-sessions\n```\n\n### Configuration File Example\n\n```json\n{\n  \"logLevel\": \"info\",\n  \"sessionDir\": \"~/.cursor-sessions\",\n  \"maxSessions\": 100,\n  \"sessionTimeout\": 3600000,\n  \"tools\": {\n    \"filesystem\": {\n      \"enabled\": true,\n      \"allowedPaths\": [\"./\"],\n      \"maxFileSize\": 10485760,\n      \"allowedExtensions\": [\".ts\", \".js\", \".json\", \".md\"]\n    },\n    \"terminal\": {\n      \"enabled\": true,\n      \"maxProcesses\": 5,\n      \"defaultOutputByteLimit\": 10485760,\n      \"maxOutputByteLimit\": 52428800,\n      \"forbiddenCommands\": [\"rm\", \"sudo\", \"su\"],\n      \"allowedCommands\": [],\n      \"defaultCwd\": \"./\"\n    },\n    \"cursor\": {\n      \"enabled\": true,\n      \"enableCodeModification\": true,\n      \"enableTestExecution\": true,\n      \"maxSearchResults\": 50\n    }\n  },\n  \"cursor\": {\n    \"timeout\": 30000,\n    \"retries\": 3\n  }\n}\n```\n\n## Development\n\n### Setup\n\n```bash\n# Clone the repository\ngit clone https://github.com/blowmage/cursor-agent-acp.git\ncd cursor-agent-acp\n\n# Install dependencies\nnpm install\n\n# Build the project\nnpm run build\n```\n\n### Testing\n\n```bash\n# Run unit tests\nnpm test\n\n# Run integration tests\nnpm run test:integration\n\n# Run all tests with coverage\nnpm run test:coverage\n\n# Watch mode for development\nnpm run test:watch\n```\n\n### Development Server\n\n```bash\n# Run in development mode with hot reload\nnpm run dev\n\n# Build and watch for changes\nnpm run build:watch\n```\n\n## Architecture\n\n```\n┌─────────────────────────────────────────────────────┐\n│                 ACP Editor (Zed)                    │\n└─────────────────┬───────────────────────────────────┘\n                  │ JSON-RPC over stdio\n┌─────────────────▼───────────────────────────────────┐\n│             Cursor Agent ACP Adapter                │\n│  ┌─────────────────────────────────────────────────┐│\n│  │           Protocol Layer                        ││\n│  │  • Initialization  • Session Management         ││\n│  │  • Prompt Handling • Content Processing         ││\n│  │  • Tool Calling    • Error Handling             ││\n│  └─────────────────────────────────────────────────┘│\n│  ┌─────────────────────────────────────────────────┐│\n│  │           Integration Layer                     ││\n│  │  • CLI Bridge     • Authentication              ││\n│  │  • Session Sync   • Response Translation        ││\n│  └─────────────────────────────────────────────────┘│\n└─────────────────┬───────────────────────────────────┘\n                  │ Command execution\n┌─────────────────▼───────────────────────────────────┐\n│                Cursor CLI                           │\n└─────────────────────────────────────────────────────┘\n```\n\n## API Documentation\n\n### Core Classes\n\n- **`CursorAgentAdapter`** - Main adapter class implementing ACP protocol\n- **`SessionManager`** - Handles session lifecycle and persistence\n- **`CursorCliBridge`** - Interfaces with cursor-agent CLI\n- **`ToolRegistry`** - Manages available tools and capabilities\n\n### Supported ACP Methods\n\n- `initialize` - Initialize the adapter with capabilities\n- `session/new` - Create a new conversation session\n- `session/load` - Load an existing session\n- `session/list` - List all available sessions\n- `session/update` - Update session metadata\n- `session/delete` - Delete a session\n- `session/prompt` - Send a prompt and receive streaming response\n\n### Available Tools\n\n- **File System Tools**\n  - `read_file` - Read file contents with security validation\n  - `write_file` - Write file contents with path restrictions\n  - `list_directory` - List directory contents recursively\n  - `create_directory` - Create directories with parent support\n  - `delete_file` - Delete files/directories with safety checks\n  - `get_file_info` - Get detailed file/directory information\n\n- **Terminal Tools**\n  - `execute_command` - Execute shell commands with security filtering\n  - `start_shell_session` - Start interactive shell sessions\n  - `send_to_shell` - Send input to active shell sessions\n  - `close_shell_session` - Close and cleanup shell sessions\n  - `list_processes` - List active processes and sessions\n\n- **Cursor-Specific Tools**\n  - `search_codebase` - Advanced code search with pattern matching\n  - `analyze_code` - Code structure and quality analysis\n  - `apply_code_changes` - Atomic code modifications with backup\n  - `run_tests` - Execute tests with framework auto-detection\n  - `get_project_info` - Project metadata and dependency information\n  - `explain_code` - AI-powered code explanations and suggestions\n\n## Troubleshooting\n\n### Common Issues\n\n**\"cursor-agent not found\"**\n```bash\n# Install Cursor CLI\ncurl https://cursor.com/install -fsSL | bash\n\n# Verify installation\ncursor-agent --version\n```\n\n**\"Authentication required\"**\n```bash\n# Login to Cursor\ncursor-agent login\n\n# Check authentication status\ncursor-agent status\n```\n\n**\"Permission denied\"**\n```bash\n# Make sure the binary is executable\nchmod +x ./node_modules/.bin/cursor-agent-acp\n```\n\n**\"Session not found\"**\n- Sessions are stored locally and may expire\n- Check session directory permissions\n- Verify session storage configuration\n\n### Debug Mode\n\nEnable debug logging to troubleshoot issues:\n\n```bash\ncursor-agent-acp --log-level debug\n```\n\nCheck logs in:\n- **macOS/Linux**: `~/.cursor-agent-acp/logs/`\n- **Windows**: `%APPDATA%\\cursor-agent-acp\\logs\\`\n\n## Contributing\n\nWe welcome contributions! Please see our [Contributing Guidelines](CONTRIBUTING.md) for details.\n\n### Development Workflow\n\n1. Fork the repository\n2. Create a feature branch\n3. Write tests for your changes\n4. Implement the feature\n5. Ensure all tests pass\n6. Submit a pull request\n\n### Code Standards\n\n- **TypeScript**: Strict mode enabled\n- **Testing**: >95% test coverage required\n- **Linting**: ESLint + Prettier\n- **Commits**: Conventional commit messages\n\n## License\n\nMIT License - see [LICENSE](LICENSE) file for details.\n\n## Support\n\n- **Issues**: [GitHub Issues](https://github.com/blowmage/cursor-agent-acp/issues)\n- **Discussions**: [GitHub Discussions](https://github.com/blowmage/cursor-agent-acp/discussions)\n- **Documentation**: [Full API Docs](https://blowmage.github.io/cursor-agent-acp)\n\n## Related Projects\n\n- [Agent Client Protocol](https://agentclientprotocol.com) - Official ACP specification\n- [Cursor CLI](https://cursor.com/docs/cli) - Official Cursor command-line interface\n- [Zed Editor](https://zed.dev) - High-performance code editor with ACP support\n","readmeFilename":"README.md"}