{"_id":"@buihongduc132/pi-acp-agents","_rev":"10-9546160929233cecf200f0f7c6a6ca20","name":"@buihongduc132/pi-acp-agents","dist-tags":{"latest":"0.5.1"},"versions":{"0.3.1":{"name":"@buihongduc132/pi-acp-agents","version":"0.3.1","keywords":["pi-package","pi-extension","pi","pi-coding-agent","acp","agent-client-protocol","multi-agent","pi","pi-coding-agent"],"author":{"name":"buihongduc132"},"license":"MIT","_id":"@buihongduc132/pi-acp-agents@0.3.1","maintainers":[{"name":"buihongduc132","email":"buihongduc132@yahoo.com"}],"homepage":"https://github.com/buihongduc132/pi-acp-agents#readme","bugs":{"url":"https://github.com/buihongduc132/pi-acp-agents/issues"},"pi":{"skills":["./skills"],"extensions":["./index.ts"]},"dist":{"shasum":"5df8b8561930ab3c30d5a39d63b56a44b00bd556","tarball":"https://registry.npmjs.org/@buihongduc132/pi-acp-agents/-/pi-acp-agents-0.3.1.tgz","fileCount":43,"integrity":"sha512-CcoeXgzO1RK6RHxFZp0tSbE+eKBoOcARxZeHbsynTl1a/CwtscBdcUvZzyd/vS0jiWkQcf2aPADHnRWxls7rPg==","signatures":[{"sig":"MEQCIGczr6Yfs7zvTxGcT+gemSlIiyNE1G0EPhcopJpfykEyAiAGRvk214O2VwHpo88zcLL9KgtpPCAPUHru3fXBfO0WJw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":290434},"main":"./index.ts","type":"module","types":"./src/public-api.ts","engines":{"node":">=22.0.0"},"exports":{".":{"types":"./src/public-api.ts","import":"./index.ts"},"./api":{"types":"./src/public-api.ts","import":"./src/public-api.ts"}},"gitHead":"dbb5d8c980adbdc0e9ee065f331affd350477c98","scripts":{"test":"vitest run","prepack":"node scripts/prepack.mjs","test:ci":"vitest run --coverage","version":"node scripts/version-sync.mjs","postpack":"node scripts/postpack.mjs","typecheck":"tsc --noEmit","test:watch":"vitest","publish:dry":"npm publish --dry-run --access public","publish:beta":"npm publish --tag beta --access public","publish:next":"npm publish --tag next --access public","release:beta":"npm version prerelease --preid=beta -m 'release: v%s'","release:major":"npm version major -m 'release: v%s'","release:minor":"npm version minor -m 'release: v%s'","release:patch":"npm version patch -m 'release: v%s'","prepublishOnly":"npm run test:ci"},"_npmUser":{"name":"buihongduc132","email":"buihongduc132@yahoo.com"},"repository":{"url":"git+https://github.com/buihongduc132/pi-acp-agents.git","type":"git"},"workspaces":["packages/*"],"_npmVersion":"10.9.7","description":"Pi extension: ACP agent client — spawn and control ACP-compatible agents (Gemini CLI, etc.) from within pi","directories":{},"_nodeVersion":"22.22.2","dependencies":{"pi-acp-types":"workspace:*","@agentclientprotocol/sdk":"^0.21.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.5","typebox":"^1.1.37","typescript":"^6.0.3","@types/node":"^22.0.0","@vitest/coverage-v8":"^4.1.5","@mariozechner/pi-tui":"^0.73.0","@mariozechner/pi-coding-agent":"^0.73.0"},"peerDependencies":{"typebox":"*","@mariozechner/pi-coding-agent":"*"},"peerDependenciesMeta":{"typebox":{"optional":true},"@mariozechner/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pi-acp-agents_0.3.1_1781742484156_0.4977960531714656","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@buihongduc132/pi-acp-agents","version":"0.4.0","keywords":["pi-package","pi-extension","pi","pi-coding-agent","acp","agent-client-protocol","multi-agent","pi","pi-coding-agent"],"author":{"name":"buihongduc132"},"license":"MIT","_id":"@buihongduc132/pi-acp-agents@0.4.0","maintainers":[{"name":"buihongduc132","email":"buihongduc132@yahoo.com"}],"homepage":"https://github.com/buihongduc132/pi-acp-agents#readme","bugs":{"url":"https://github.com/buihongduc132/pi-acp-agents/issues"},"pi":{"skills":["./skills"],"extensions":["./index.ts"]},"dist":{"shasum":"180a68e9d5b2586b0d72ef7455e2f7b0c051f38e","tarball":"https://registry.npmjs.org/@buihongduc132/pi-acp-agents/-/pi-acp-agents-0.4.0.tgz","fileCount":49,"integrity":"sha512-Sk9UNzm36UVq8TkOFgwkbUgEia3t1hQvVIbtzBpyUM/esyb47tzyV6MpmWwM8BLGt1bpKnnbFf2pbnp9Qkq9lw==","signatures":[{"sig":"MEUCIQCjl3r8NQwA+JTKBjQUyR2z3CnJpV17kqr+HJG60j7CHAIgcEGz3JvO+/hb55PqfsfEA+aI1F28Av688lwuCzvjWN4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":388062},"main":"./index.ts","type":"module","types":"./src/public-api.ts","engines":{"node":">=22.0.0"},"exports":{".":{"types":"./src/public-api.ts","import":"./index.ts"},"./api":{"types":"./src/public-api.ts","import":"./src/public-api.ts"}},"scripts":{"test":"vitest run","prepack":"node scripts/prepack.mjs","test:ci":"vitest run --coverage","version":"node scripts/version-sync.mjs","postpack":"node scripts/postpack.mjs","typecheck":"tsc --noEmit","test:watch":"vitest","publish:dry":"npm publish --dry-run --access public","publish:beta":"npm publish --tag beta --access public","publish:next":"npm publish --tag next --access public","release:beta":"npm version prerelease --preid=beta -m 'release: v%s'","release:major":"npm version major -m 'release: v%s'","release:minor":"npm version minor -m 'release: v%s'","release:patch":"npm version patch -m 'release: v%s'","prepublishOnly":"npm run test:ci"},"_npmUser":{"name":"buihongduc132","email":"buihongduc132@yahoo.com"},"deprecated":"Broken: workspace:* dep unresolved. Use 0.4.1+","repository":{"url":"git+https://github.com/buihongduc132/pi-acp-agents.git","type":"git"},"workspaces":["packages/*"],"_npmVersion":"10.9.7","description":"Pi extension: ACP agent client — spawn and control ACP-compatible agents (Gemini CLI, etc.) from within pi","directories":{},"_nodeVersion":"22.22.2","dependencies":{"pi-acp-types":"workspace:*","@agentclientprotocol/sdk":"^0.21.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.5","typebox":"^1.1.37","typescript":"^6.0.3","@types/node":"^22.0.0","@vitest/coverage-v8":"^4.1.5","@mariozechner/pi-tui":"^0.73.0","@mariozechner/pi-coding-agent":"^0.73.0"},"peerDependencies":{"typebox":"*","@mariozechner/pi-coding-agent":"*"},"peerDependenciesMeta":{"typebox":{"optional":true},"@mariozechner/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pi-acp-agents_0.4.0_1782540885755_0.5361122545193246","host":"s3://npm-registry-packages-npm-production"}},"0.4.1":{"name":"@buihongduc132/pi-acp-agents","version":"0.4.1","keywords":["pi-package","pi-extension","pi","pi-coding-agent","acp","agent-client-protocol","multi-agent","pi","pi-coding-agent"],"author":{"name":"buihongduc132"},"license":"MIT","_id":"@buihongduc132/pi-acp-agents@0.4.1","maintainers":[{"name":"buihongduc132","email":"buihongduc132@yahoo.com"}],"homepage":"https://github.com/buihongduc132/pi-acp-agents#readme","bugs":{"url":"https://github.com/buihongduc132/pi-acp-agents/issues"},"pi":{"skills":["./skills"],"extensions":["./index.ts"]},"dist":{"shasum":"825cc94ccc22bc3d9397e5a7b051945fd8e28c5f","tarball":"https://registry.npmjs.org/@buihongduc132/pi-acp-agents/-/pi-acp-agents-0.4.1.tgz","fileCount":53,"integrity":"sha512-G2W+FbF2n+ziCXJsmRuTetiMBdDZbRkDfPkNjdkTqcR39CFzA8KgUyAVO5oisl0AZdC7U3jtoTw/0kcMhORD3g==","signatures":[{"sig":"MEYCIQCjPL4Po+HwssFWSG0koJpnwUR1NMdw0km8IMlNL8BzZQIhAKv5VQZxy/mW5p6WWqhXIlCm4ypCVYPM1IuUEyXo2LZa","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":418112},"main":"./index.ts","type":"module","_from":"file:buihongduc132-pi-acp-agents-0.4.1.tgz","types":"./src/public-api.ts","engines":{"node":">=22.0.0"},"exports":{".":{"types":"./src/public-api.ts","import":"./index.ts"},"./api":{"types":"./src/public-api.ts","import":"./src/public-api.ts"}},"scripts":{"test":"vitest run","test:ci":"vitest run --coverage","version":"node scripts/version-sync.mjs","typecheck":"tsc --noEmit","test:watch":"vitest","publish:dry":"npm publish --dry-run --access public","publish:beta":"npm publish --tag beta --access public","publish:next":"npm publish --tag next --access public","release:beta":"npm version prerelease --preid=beta -m 'release: v%s'","release:major":"npm version major -m 'release: v%s'","release:minor":"npm version minor -m 'release: v%s'","release:patch":"npm version patch -m 'release: v%s'"},"_npmUser":{"name":"buihongduc132","email":"buihongduc132@yahoo.com"},"_resolved":"/tmp/dfec5e976c7134eb5398ba74497ac274/buihongduc132-pi-acp-agents-0.4.1.tgz","_integrity":"sha512-G2W+FbF2n+ziCXJsmRuTetiMBdDZbRkDfPkNjdkTqcR39CFzA8KgUyAVO5oisl0AZdC7U3jtoTw/0kcMhORD3g==","repository":{"url":"git+https://github.com/buihongduc132/pi-acp-agents.git","type":"git"},"workspaces":["packages/*"],"_npmVersion":"10.9.7","description":"Pi extension: ACP agent client — spawn and control ACP-compatible agents (Gemini CLI, etc.) from within pi","directories":{},"_nodeVersion":"22.22.2","dependencies":{"pi-acp-types":"0.1.0","@agentclientprotocol/sdk":"^0.21.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.5","typebox":"^1.1.37","typescript":"^6.0.3","@types/node":"^22.0.0","@vitest/coverage-v8":"^4.1.5","@mariozechner/pi-tui":"^0.73.0","@mariozechner/pi-coding-agent":"^0.73.0"},"peerDependencies":{"typebox":"*","@mariozechner/pi-coding-agent":"*"},"peerDependenciesMeta":{"typebox":{"optional":true},"@mariozechner/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pi-acp-agents_0.4.1_1783206431992_0.19466065720244052","host":"s3://npm-registry-packages-npm-production"}},"0.4.3":{"name":"@buihongduc132/pi-acp-agents","version":"0.4.3","keywords":["pi-package","pi-extension","pi","pi-coding-agent","acp","agent-client-protocol","multi-agent","pi","pi-coding-agent"],"author":{"name":"buihongduc132"},"license":"MIT","_id":"@buihongduc132/pi-acp-agents@0.4.3","maintainers":[{"name":"buihongduc132","email":"buihongduc132@yahoo.com"}],"homepage":"https://github.com/buihongduc132/pi-acp-agents#readme","bugs":{"url":"https://github.com/buihongduc132/pi-acp-agents/issues"},"pi":{"skills":["./skills"],"extensions":["./index.ts"]},"dist":{"shasum":"7cd71265ba59bd9418be927e5c674a850133c1c2","tarball":"https://registry.npmjs.org/@buihongduc132/pi-acp-agents/-/pi-acp-agents-0.4.3.tgz","fileCount":54,"integrity":"sha512-UCVz9EHASByU5X+TyaiC52SPwCSIf0lvxexiDVgx4K96g2PXJQTFAMc7N6YyUqM1BaU6Kfn7QgmTd5kpz9/uig==","signatures":[{"sig":"MEUCICSD8RPwOMP0CjtggjNMWDDPrpupU8JSHSTxUD3TChW6AiEA2eAI2rrhgvafkd2m51uVQQ1bouiW4wimRvfFykp0nlo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":422174},"main":"./index.ts","type":"module","_from":"file:buihongduc132-pi-acp-agents-0.4.3.tgz","types":"./src/public-api.ts","engines":{"node":">=22.0.0"},"exports":{".":{"types":"./src/public-api.ts","import":"./index.ts"},"./api":{"types":"./src/public-api.ts","import":"./src/public-api.ts"}},"scripts":{"test":"vitest run","test:ci":"vitest run --coverage","version":"node scripts/version-sync.mjs","typecheck":"tsc --noEmit","test:watch":"vitest","publish:dry":"npm publish --dry-run --access public","publish:beta":"npm publish --tag beta --access public","publish:next":"npm publish --tag next --access public","release:beta":"npm version prerelease --preid=beta -m 'release: v%s'","release:major":"npm version major -m 'release: v%s'","release:minor":"npm version minor -m 'release: v%s'","release:patch":"npm version patch -m 'release: v%s'"},"_npmUser":{"name":"buihongduc132","email":"buihongduc132@yahoo.com"},"_resolved":"/tmp/b69edc2270abfa6d89cd82b6758a539c/buihongduc132-pi-acp-agents-0.4.3.tgz","_integrity":"sha512-UCVz9EHASByU5X+TyaiC52SPwCSIf0lvxexiDVgx4K96g2PXJQTFAMc7N6YyUqM1BaU6Kfn7QgmTd5kpz9/uig==","repository":{"url":"git+https://github.com/buihongduc132/pi-acp-agents.git","type":"git"},"workspaces":["packages/*"],"_npmVersion":"10.9.7","description":"Pi extension: ACP agent client — spawn and control ACP-compatible agents (Gemini CLI, etc.) from within pi","directories":{},"_nodeVersion":"22.22.2","dependencies":{"pi-acp-types":"0.1.0","@agentclientprotocol/sdk":"^0.21.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.5","typebox":"^1.1.37","typescript":"^6.0.3","@types/node":"^22.0.0","@vitest/coverage-v8":"^4.1.5","@mariozechner/pi-tui":"^0.73.0","@mariozechner/pi-coding-agent":"^0.73.0"},"peerDependencies":{"typebox":"*","@mariozechner/pi-coding-agent":"*"},"peerDependenciesMeta":{"typebox":{"optional":true},"@mariozechner/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pi-acp-agents_0.4.3_1783413448778_0.6216802456905881","host":"s3://npm-registry-packages-npm-production"}},"0.4.4":{"name":"@buihongduc132/pi-acp-agents","version":"0.4.4","keywords":["pi-package","pi-extension","pi","pi-coding-agent","acp","agent-client-protocol","multi-agent","pi","pi-coding-agent"],"author":{"name":"buihongduc132"},"license":"MIT","_id":"@buihongduc132/pi-acp-agents@0.4.4","maintainers":[{"name":"buihongduc132","email":"buihongduc132@yahoo.com"}],"homepage":"https://github.com/buihongduc132/pi-acp-agents#readme","bugs":{"url":"https://github.com/buihongduc132/pi-acp-agents/issues"},"pi":{"skills":["./skills"],"extensions":["./index.ts"]},"dist":{"shasum":"bccfc0904556eabfa7c9e72d7bd403ac9aa68858","tarball":"https://registry.npmjs.org/@buihongduc132/pi-acp-agents/-/pi-acp-agents-0.4.4.tgz","fileCount":55,"integrity":"sha512-mwLOL6pHkpUG4vqSm4pT43v9wlEwlhINhrERqsaAm5w32ZGPvpehCavDLZjg149gR+QDvTC/GgD2tyYkS98iYA==","signatures":[{"sig":"MEUCIBzUqVAql3khtuXQaK4qJXeoW6OQdp+j4uyWkdAY1S4hAiEA3UAcrgVoYCHC3I3BODyOXdskyedtf53yNhE0NP84Pms=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":429103},"main":"./index.ts","type":"module","_from":"file:buihongduc132-pi-acp-agents-0.4.4.tgz","types":"./src/public-api.ts","engines":{"node":">=22.0.0"},"exports":{".":{"types":"./src/public-api.ts","import":"./index.ts"},"./api":{"types":"./src/public-api.ts","import":"./src/public-api.ts"}},"scripts":{"test":"vitest run","test:ci":"vitest run --coverage","version":"node scripts/version-sync.mjs","typecheck":"tsc --noEmit","test:watch":"vitest","publish:dry":"npm publish --dry-run --access public","publish:beta":"npm publish --tag beta --access public","publish:next":"npm publish --tag next --access public","release:beta":"npm version prerelease --preid=beta -m 'release: v%s'","release:major":"npm version major -m 'release: v%s'","release:minor":"npm version minor -m 'release: v%s'","release:patch":"npm version patch -m 'release: v%s'"},"_npmUser":{"name":"buihongduc132","email":"buihongduc132@yahoo.com"},"_resolved":"/tmp/b395cdb29d607b06b39095257e86742e/buihongduc132-pi-acp-agents-0.4.4.tgz","_integrity":"sha512-mwLOL6pHkpUG4vqSm4pT43v9wlEwlhINhrERqsaAm5w32ZGPvpehCavDLZjg149gR+QDvTC/GgD2tyYkS98iYA==","repository":{"url":"git+https://github.com/buihongduc132/pi-acp-agents.git","type":"git"},"workspaces":["packages/*"],"_npmVersion":"10.9.7","description":"Pi extension: ACP agent client — spawn and control ACP-compatible agents (Gemini CLI, etc.) from within pi","directories":{},"_nodeVersion":"22.22.2","dependencies":{"pi-acp-types":"0.1.0","@agentclientprotocol/sdk":"^0.21.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.5","typebox":"^1.1.37","typescript":"^6.0.3","@types/node":"^22.0.0","@vitest/coverage-v8":"^4.1.5","@mariozechner/pi-tui":"^0.73.0","@mariozechner/pi-coding-agent":"^0.73.0"},"peerDependencies":{"typebox":"*","@mariozechner/pi-coding-agent":"*"},"peerDependenciesMeta":{"typebox":{"optional":true},"@mariozechner/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pi-acp-agents_0.4.4_1783428916709_0.7174519126652019","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"@buihongduc132/pi-acp-agents","version":"0.5.0","keywords":["pi-package","pi-extension","pi","pi-coding-agent","acp","agent-client-protocol","multi-agent","pi","pi-coding-agent"],"author":{"name":"buihongduc132"},"license":"MIT","_id":"@buihongduc132/pi-acp-agents@0.5.0","maintainers":[{"name":"buihongduc132","email":"buihongduc132@yahoo.com"}],"homepage":"https://github.com/buihongduc132/pi-acp-agents#readme","bugs":{"url":"https://github.com/buihongduc132/pi-acp-agents/issues"},"pi":{"skills":["./skills"],"extensions":["./index.ts"]},"dist":{"shasum":"12f848df7080621d5e4631fb4b562f56345f6d51","tarball":"https://registry.npmjs.org/@buihongduc132/pi-acp-agents/-/pi-acp-agents-0.5.0.tgz","fileCount":66,"integrity":"sha512-BdJiP7qboIvGQMJDd4+inrVqTLFQlT/4daYmjwA11wDK+6Df2SVh+evGoGwjt1sVtv8mU+3T+pZDNAGXkwJT0Q==","signatures":[{"sig":"MEQCIHJCFbi6z3tOKPUfqRVCgLjcEhjFPSvo9kU2+6YXKHxKAiB4aOeaH7NWjSZmj0yLLtCmFEpdlJ7tItvBkbwptMO0IA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":519239},"main":"./index.ts","type":"module","_from":"file:buihongduc132-pi-acp-agents-0.5.0.tgz","types":"./src/public-api.ts","engines":{"node":">=22.0.0"},"exports":{".":{"types":"./src/public-api.ts","import":"./index.ts"},"./api":{"types":"./src/public-api.ts","import":"./src/public-api.ts"}},"scripts":{"test":"vitest run","test:ci":"vitest run --coverage","version":"node scripts/version-sync.mjs","typecheck":"tsc --noEmit","test:watch":"vitest","publish:dry":"npm publish --dry-run --access public","publish:beta":"npm publish --tag beta --access public","publish:next":"npm publish --tag next --access public","release:beta":"npm version prerelease --preid=beta -m 'release: v%s'","release:major":"npm version major -m 'release: v%s'","release:minor":"npm version minor -m 'release: v%s'","release:patch":"npm version patch -m 'release: v%s'"},"_npmUser":{"name":"buihongduc132","email":"buihongduc132@yahoo.com"},"_resolved":"/tmp/3a6fa08962066d25969fcc4ccef442d1/buihongduc132-pi-acp-agents-0.5.0.tgz","_integrity":"sha512-BdJiP7qboIvGQMJDd4+inrVqTLFQlT/4daYmjwA11wDK+6Df2SVh+evGoGwjt1sVtv8mU+3T+pZDNAGXkwJT0Q==","repository":{"url":"git+https://github.com/buihongduc132/pi-acp-agents.git","type":"git"},"workspaces":["packages/*"],"_npmVersion":"10.9.7","description":"Pi extension: ACP agent client — spawn and control ACP-compatible agents (Gemini CLI, etc.) from within pi","directories":{},"_nodeVersion":"22.22.2","dependencies":{"pi-acp-types":"0.1.0","@agentclientprotocol/sdk":"^0.21.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.5","typebox":"^1.1.37","typescript":"^6.0.3","@types/node":"^22.0.0","@vitest/coverage-v8":"^4.1.5","@mariozechner/pi-tui":"^0.73.0","@mariozechner/pi-coding-agent":"^0.73.0"},"peerDependencies":{"typebox":"*","@mariozechner/pi-coding-agent":"*"},"peerDependenciesMeta":{"typebox":{"optional":true},"@mariozechner/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pi-acp-agents_0.5.0_1783617408598_0.8857456556224879","host":"s3://npm-registry-packages-npm-production"}},"0.5.1":{"name":"@buihongduc132/pi-acp-agents","version":"0.5.1","description":"Pi extension: ACP agent client — spawn and control ACP-compatible agents (Gemini CLI, etc.) from within pi","keywords":["pi-package","pi-extension","pi","pi-coding-agent","acp","agent-client-protocol","multi-agent","pi","pi-coding-agent"],"type":"module","main":"./index.ts","types":"./src/public-api.ts","exports":{".":{"types":"./src/public-api.ts","import":"./index.ts"},"./api":{"types":"./src/public-api.ts","import":"./src/public-api.ts"}},"license":"MIT","author":{"name":"buihongduc132"},"repository":{"type":"git","url":"git+https://github.com/buihongduc132/pi-acp-agents.git"},"homepage":"https://github.com/buihongduc132/pi-acp-agents#readme","bugs":{"url":"https://github.com/buihongduc132/pi-acp-agents/issues"},"pi":{"extensions":["./index.ts"],"skills":["./skills"]},"peerDependencies":{"@mariozechner/pi-coding-agent":"*","typebox":"*"},"peerDependenciesMeta":{"@mariozechner/pi-coding-agent":{"optional":true},"typebox":{"optional":true}},"dependencies":{"@agentclientprotocol/sdk":"^0.21.0","pi-acp-types":"^0.1.0"},"devDependencies":{"@mariozechner/pi-coding-agent":"^0.73.0","@mariozechner/pi-tui":"^0.73.0","@types/node":"^22.0.0","@vitest/coverage-v8":"^4.1.5","typebox":"^1.1.37","typescript":"^6.0.3","vitest":"^4.1.5"},"scripts":{"test":"vitest run","test:ci":"vitest run --coverage","test:watch":"vitest","typecheck":"tsc --noEmit","prepublishOnly":"npm run test:ci","prepack":"node scripts/prepack.mjs","postpack":"node scripts/postpack.mjs","version":"node scripts/version-sync.mjs","release:patch":"npm version patch -m 'release: v%s'","release:minor":"npm version minor -m 'release: v%s'","release:major":"npm version major -m 'release: v%s'","release:beta":"npm version prerelease --preid=beta -m 'release: v%s'","publish:beta":"npm publish --tag beta --access public","publish:next":"npm publish --tag next --access public","publish:dry":"npm publish --dry-run --access public"},"engines":{"node":">=22.0.0"},"_id":"@buihongduc132/pi-acp-agents@0.5.1","gitHead":"cb4315135b1fbbc529399bc0f598e5ee356d9060","_nodeVersion":"22.22.2","_npmVersion":"10.9.7","dist":{"integrity":"sha512-ftudbHq2DvxMKyUEV75BNLoaF8H1HMPtNGm9/MqM/12Ln8dU5Orwsawz2eliNwBkD7i8OOx+tDPIfffa2ARJHA==","shasum":"a45ec4633aaf18e7f70576f8f04c23d6c5c81ecb","tarball":"https://registry.npmjs.org/@buihongduc132/pi-acp-agents/-/pi-acp-agents-0.5.1.tgz","fileCount":67,"unpackedSize":600702,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDX9DCUW/nYhwCRzKPftczGcsU6I4ToIP6xG06ndVtCawIgJFGuUXgje5SF5q/2u/SEFwxsTBywUL1E2dphHrO7sBY="}]},"_npmUser":{"name":"buihongduc132","email":"buihongduc132@yahoo.com"},"directories":{},"maintainers":[{"name":"buihongduc132","email":"buihongduc132@yahoo.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/pi-acp-agents_0.5.1_1786087740260_0.016899319524269263"},"_hasShrinkwrap":false}},"time":{"created":"2026-06-18T00:28:03.964Z","modified":"2026-08-07T07:29:00.575Z","0.3.1":"2026-06-18T00:28:04.289Z","0.4.0":"2026-06-27T06:14:45.900Z","0.4.1":"2026-07-04T23:07:12.144Z","0.4.2":"2026-07-07T07:10:39.719Z","0.4.3":"2026-07-07T08:37:28.925Z","0.4.4":"2026-07-07T12:55:16.861Z","0.5.0":"2026-07-09T17:16:48.746Z","0.5.1":"2026-08-07T07:29:00.417Z"},"bugs":{"url":"https://github.com/buihongduc132/pi-acp-agents/issues"},"author":{"name":"buihongduc132"},"license":"MIT","homepage":"https://github.com/buihongduc132/pi-acp-agents#readme","keywords":["pi-package","pi-extension","pi","pi-coding-agent","acp","agent-client-protocol","multi-agent","pi","pi-coding-agent"],"repository":{"type":"git","url":"git+https://github.com/buihongduc132/pi-acp-agents.git"},"description":"Pi extension: ACP agent client — spawn and control ACP-compatible agents (Gemini CLI, etc.) from within pi","maintainers":[{"name":"buihongduc132","email":"buihongduc132@yahoo.com"}],"readme":"# @buihongduc132/pi-acp-agents\n\n> Multi-agent orchestration for pi — spawn, control, and coordinate ACP-compatible agents (Gemini CLI, Claude, Codex, custom) as first-class tools within the pi coding agent.\n\n[![npm version](https://img.shields.io/npm/v/@buihongduc132/pi-acp-agents.svg)](https://www.npmjs.com/package/@buihongduc132/pi-acp-agents)\n[![CI](https://github.com/buihongduc132/pi-acp-agents/actions/workflows/ci.yml/badge.svg)](https://github.com/buihongduc132/pi-acp-agents/actions/workflows/ci.yml)\n[![license](https://img.shields.io/npm/l/@buihongduc132/pi-acp-agents.svg)](https://github.com/buihongduc132/pi-acp-agents/blob/main/LICENSE)\n\n---\n\n## Table of Contents\n\n- [What works vs what does not](#what-works-vs-what-does-not) ← **read this first**\n- [Install](#install)\n- [Quick start](#quick-start)\n- [Tool surface](#tool-surface)\n- [DAG delegation](#dag-delegation)\n- [Alias resolver + fallback chains](#alias-resolver--fallback-chains)\n- [Persistent workers](#persistent-workers)\n- [Configuration](#configuration)\n- [Architecture](#architecture)\n- [Resilience](#resilience)\n- [Logs](#logs)\n- [Supported agents](#supported-agents)\n- [Development](#development)\n- [Release process](#release-process)\n- [Further documentation](#further-documentation)\n\n---\n\n## What works vs what does not\n\nStatus as of `0.5.0`. Verified by full test suite (`npx vitest run` → 2081 passed / 0 failed / 104 skipped / 1 todo). Consolidated tool surface: **9 tools registered** (7 ACP core + 2 ACP hooks policy), down from the legacy 33-tool surface. See [Tool surface](#tool-surface).\n\n### ✅ Working\n\n| Capability | Notes |\n|---|---|\n| `acp_spawn` (single agent) | Spawn a session + optional prompt; absorbs legacy acp_prompt / acp_session_new |\n| `acp_msg` (messaging) | Session prompt/steer/cancel + mailbox send/list; absorbs acp_message |\n| `acp_status` (diagnostic) | Agent list, sessions, circuit breaker; absorbs acp_doctor / acp_runtime_info |\n| `acp_fanout` (broadcast/compare) | Same prompt → N agents; absorbs acp_broadcast / acp_compare |\n| `acp_governance` | Plan request/resolve + model policy |\n| `acp_task` (action: create\\|update) | Unified task tool: status / assignee / deps / bulk `*` filter |\n| `acp_dag` (action: submit\\|status\\|cancel) | Wave-based topological DAG execution, persistent resume |\n| `acp_hooks_policy_get` / `acp_hooks_policy_set` | Runtime hooks failure-policy inspection + mutation |\n| **Alias resolver** (failover + race) | `AliasResolver` class — sequential fallback OR parallel first-wins with cancel of losers |\n| **Circuit breaker** | 3 failures → open, 60s → half-open, auto-recover |\n| **Health monitor** | 30s background polling; distinct no-response vs completed-idle timers |\n| **Session-scoped stores** | `tasks`/`mailboxes`/`governance`/`workers` partitioned per host session ID; `session-archive`/`session-name-registry`/`event-log` global |\n| **Legacy migration** | Non-destructive flat → `legacy/` on first run after partitioning |\n| **DAG widget** | `dagIndexEntryToWidgetDag` helper renders DAG state in TUI |\n| **TUI widget** | Real-time session + DAG status panel |\n| **Gemini CLI adapter** | Auto-auth, default |\n| **Custom adapter** | Any ACP-speaking stdio agent |\n| **Stall timeout** | Per-op with SIGTERM → SIGKILL escalation |\n| **EPIPE safety** | stdin/stdout broken-pipe handled |\n| **Tag-triggered CI publish** | `git push --follow-tags` → npm publish with provenance |\n\n### ❌ Not working / not implemented\n\n| Gap | Status |\n|---|---|\n| **One-call parallel batch delegate** | No single-call parallel batch — use `acp_fanout` (broadcast/compare) instead of spawning N sessions manually |\n| **Plan approval flow as tool** | `acp_plan_request` / `acp_plan_resolve` are command-only stubs, not tools |\n| **Hooks policy** | No `hooks_policy_*` — retry governance absent |\n| **Model policy as tool** | `acp_model_policy_get` / `_check` are command-only |\n| **Predefined teams** | No `predefined_teams_*` |\n| **Workspace isolation (worktree mode)** | Workers use `cwd` only — no `git worktree` isolation |\n| **Context inheritance** | No `contextMode: \"branch\"` (clone leader session) |\n| **`task_dep_ls`** | Only add/rm via `task_update` — cannot list blockers |\n| **`task_get` (single)** | Not exposed — only create + update |\n| **Diagnostics as tools** | `acp_doctor`, `acp_runtime_info`, `acp_event_log`, `acp_env`, `acp_cleanup` are slash commands only |\n| **Session lifecycle tools** | `acp_session_list` / `_shutdown` / `_kill` / `_prune` / `_set_model` / `_set_mode` are not exposed (automation-only) |\n| **Streaming responses** | Planned — currently returns after full prompt completes |\n| **Tool use forwarding** | Planned — ACP agent tool calls not relayed back to pi |\n| **OAuth / token auth** | Planned — env vars only |\n| **Config hot-reload** | Manual restart required |\n| **Retry with backoff** | Circuit breaker handles fail-closed; no exponential backoff |\n| **Session sharing across pi instances** | Single-host only |\n| **Metrics export (Prometheus)** | Planned |\n| **Agent routing (auto-select)** | Manual via alias or explicit |\n| **Ensemble / chain-of-agents** | Manual via DAG composition |\n| **Cost tracking** | Planned |\n| **Claude Code / Codex ACP adapters** | Pending upstream ACP mode |\n\n### ⚠️ Known surface drift\n\n`src/settings/config.ts` ships a legacy `ACP_TOOL_NAMES` array of **42 entries** (a settings toggle schema) while only **16 tools are actually registered** in `index.ts`. The 26-entry delta is NOT missing tools — it is the per-tool enable/disable toggle schema for `/acp settings`. See [`../pi-plugins/flow/intentions/pi-acp-agents/tool-consolidation.md`](https://github.com/buihongduc132/pi-plugins/blob/main/flow/intentions/pi-acp-agents/tool-consolidation.md) for the planned consolidation (42 → 7 multiplexed tools).\n\n---\n\n## Install\n\n### For humans\n\n```bash\nnpm install @buihongduc132/pi-acp-agents\n```\n\n### For AI agents\n\nAdd to `~/.pi/agent/settings.json`:\n\n```json\n{\n  \"packages\": [\"npm:@buihongduc132/pi-acp-agents\"]\n}\n```\n\nOr:\n\n```bash\npi install npm:@buihongduc132/pi-acp-agents\n```\n\n### Git-sourced\n\n```json\n{\n  \"gitPackages\": [\n    { \"url\": \"https://github.com/buihongduc132/pi-acp-agents.git\" }\n  ]\n}\n```\n\n---\n\n## Quick start\n\n1. Install an ACP agent (Gemini CLI default):\n\n   ```bash\n   gemini --version\n   gemini  # first run to authenticate\n   ```\n\n2. (Optional) Configure:\n\n   ```bash\n   mkdir -p ~/.pi/acp-agents\n   cat > ~/.pi/acp-agents/config.json << 'EOF'\n   {\n     \"agent_servers\": {\n       \"gemini\": {\n         \"command\": \"gemini\",\n         \"args\": [\"--acp\"],\n         \"default_model\": \"gemini-2.5-pro\"\n       }\n     },\n     \"defaultAgent\": \"gemini\"\n   }\n   EOF\n   ```\n\n3. Use in pi:\n\n   ```\n   Use the acp_spawn tool to spawn a gemini session, then acp_msg to ask \"What is the capital of France?\"\n   ```\n\nFor full usage patterns, DAG examples, alias configuration, and worker orchestration see [`docs/USAGE.md`](docs/USAGE.md).\n\n---\n\n## Tool surface\n\n**9 tools registered** (7 ACP core + 2 hooks policy, gated by `/acp settings` per-tool toggles):\n\n| Tool | Purpose |\n|---|---|\n| `acp_spawn` | Spawn a session + optional prompt (absorbs acp_prompt / acp_session_new) |\n| `acp_msg` | Session prompt/steer/cancel + mailbox send/list (absorbs acp_message / acp_cancel) |\n| `acp_governance` | Plan request/resolve + model policy (absorbs acp_plan_*, acp_model_policy_*) |\n| `acp_status` | Agents, sessions, circuit breaker, cleanup, prune (absorbs acp_doctor / acp_runtime_info / acp_cleanup) |\n| `acp_fanout` | Broadcast to N agents + compare mode (absorbs acp_broadcast / acp_compare) |\n| `acp_task` | Unified task tool: action:'create' or action:'update' (absorbs acp_task_create / acp_task_update) |\n| `acp_dag` | DAG delegation: action:'submit'\\|'status'\\|'cancel' (absorbs acp_dag_submit / _status / _cancel) |\n| `acp_hooks_policy_get` | Inspect the ACP hooks failure policy |\n| `acp_hooks_policy_set` | Update the ACP hooks failure policy |\n\n**Slash command surface** (`/acp ...`):\n\n```\n/acp session <new|load|list|shutdown|kill|prune|set-model|set-mode|cancel>\n/acp prompt\n/acp delegate\n/acp broadcast\n/acp compare\n/acp task <create|list|get|assign|set-status|dep-add|dep-rm|clear>\n/acp message <send|list>\n/acp plan <request|resolve>\n/acp runtime <status|config|env|info|event-log|cleanup|doctor>\n/acp settings — configure tool visibility\nAliases: /acp-doctor, /acp-config\n```\n\nFor tool-parameter reference and examples see [`docs/USAGE.md`](docs/USAGE.md).\n\n---\n\n## DAG delegation\n\nSubmit a complete DAG of ACP agent tasks in a single call. The DAG executor:\n- **Validates statically** (cycles, dangling refs, duplicate IDs, agent availability)\n- **Persists state** to disk under `<runtimeDir>/dag/`\n- **Executes in topological wave-order** (parallel within wave, serial across waves)\n- **Resumes automatically** after pi restart (running steps retried, completed steps skipped)\n\n### Submission JSON\n\n```json\n{\n  \"tasks\": [\n    { \"id\": \"analyze\", \"agent\": \"gemini\", \"prompt\": \"Analyze the codebase for security issues\" },\n    { \"id\": \"fix\", \"agent\": \"claude\", \"prompt\": \"Fix the issues: {analyze.output}\", \"dependsOn\": [\"analyze\"] },\n    { \"id\": \"verify\", \"agent\": \"gemini\", \"prompt\": \"Verify: {fix.output}\", \"dependsOn\": [\"fix\"], \"gate\": \"after\" }\n  ],\n  \"args\": { \"project\": \"my-app\" },\n  \"options\": { \"failFast\": true, \"maxRetries\": 0 },\n  \"cwd\": \"/path/to/project\"\n}\n```\n\n### Template variables\n\n| Variable | Resolves to |\n|---|---|\n| `{<step-id>.output}` | Output of referenced step (truncated to `dagOutputTruncateChars`) |\n| `{<step-id>.status}` | Terminal status (`completed` / `failed` / `skipped` / `cancelled`) |\n| `{dag.args.<key>}` | Workflow arg from `args` at submission |\n\nUnresolvable variables fail the step at dispatch time.\n\n### Gates\n\n| Gate | Behavior |\n|---|---|\n| `needs` (default) | **Success-gate** — all deps must `complete`. Failure cascades. |\n| `after` | **Completion-gate** — deps just need a terminal state. Use for cleanup/verify steps. |\n\n### Config\n\n| Option | Default | Description |\n|---|---|---|\n| `dagStaleTimeoutMs` | `3_600_000` (1h) | No step transitions for this long → `stale` |\n| `dagOutputTruncateChars` | `8000` | Max chars injected into downstream prompts |\n\nFor DAG executor internals, persistence model, and resume semantics see [`docs/USAGE.md`](docs/USAGE.md).\n\n---\n\n## Alias resolver + fallback chains\n\nResolves an alias name to a concrete agent using configurable strategies. Used internally by `acp_spawn` / `acp_fanout` when called with an alias name.\n\n| Strategy | Behavior |\n|---|---|\n| **failover** (sequential) | Try agents in order; first success wins; throws `AllAgentsFailedError` if all fail |\n| **race** (parallel) | Send to all healthy agents in parallel; first success cancels losers (default race timeout 30s) |\n\nBoth strategies consult the circuit breaker (`isHealthyFn`) before dispatching and skip unhealthy agents.\n\nFor alias configuration schema and examples see [`docs/USAGE.md`](docs/USAGE.md).\n\n---\n\n## Persistent workers\n\nSpawn long-lived named workers via `acp_spawn`. Workers persist across task completions and are managed via the unified tools:\n\nWorkers share the caller's filesystem (no `git worktree` isolation). For parallel worktree-isolated delegation use the `teams` pi-plugin instead.\n\n---\n\n## Async run lifecycle (telemetry, steer, interrupt, resume, worktree)\n\nAsync runs (spawned with `async: true` or `acp_dag`) now support full lifecycle management, aligning ACP with subagents:\n\n### Fleet view\n\n```\nacp_status({ action: \"fleet\" })  // or acp_status({ view: \"fleet\" })\n```\nReturns compact list of active runs with telemetry (turns, toolCalls, tokensUsed, filesWritten, lastActivityAt).\n\n### Interrupt / Resume\n\n```\nacp_status({ action: \"interrupt\", id: \"<runId>\" })   // abort in-flight turn → needs-attention\nacp_status({ action: \"resume\", id: \"<runId>\", message: \"Continue with X\" })\n```\n\n### Silent-failure detection\n\nRuns that complete with zero tool calls, zero file writes, AND empty text are auto-flagged as `failed` with `error: \"silent-no-output\"`.\n\n### Worktree isolation\n\n```\nacp_spawn({ agent: \"gemini\", prompt: \"...\", worktree: true })          // isolated git worktree\nacp_spawn({ agent: \"gemini\", prompt: \"...\", worktree: true, keepWorktree: true })  // keep after run\n```\n\nCreates a git worktree at `<cwd>/.worktrees/acp-<runId>`. Cleaned up on run dispose unless `keepWorktree: true`.\n\n\n---\n\n## Configuration\n\nConfig file: `~/.pi/acp-agents/config.json`\n\n```json\n{\n  \"agent_servers\": {\n    \"gemini\": { \"command\": \"gemini\", \"args\": [\"--acp\"], \"default_model\": \"gemini-2.5-pro\" },\n    \"custom\": { \"command\": \"/path/to/my-acp-agent\", \"args\": [\"--mode\", \"acp\"] }\n  },\n  \"defaultAgent\": \"gemini\",\n  \"staleTimeoutMs\": 3600000,\n  \"healthCheckIntervalMs\": 30000,\n  \"circuitBreakerMaxFailures\": 3,\n  \"circuitBreakerResetMs\": 60000,\n  \"stallTimeoutMs\": 3600000\n}\n```\n\n### Global\n\n| Field | Default | Description |\n|---|---|---|\n| `agent_servers` | `{ gemini: {...} }` | Map of agent name → config |\n| `defaultAgent` | `\"gemini\"` | Agent used when not specified |\n| `staleTimeoutMs` | `3600000` (1h) | Auto-close: stalled-no-response AND completed-idle |\n| `healthCheckIntervalMs` | `30000` (30s) | Background health polling interval |\n| `circuitBreakerMaxFailures` | `3` | Consecutive failures before circuit opens |\n| `circuitBreakerResetMs` | `60000` (60s) | Time before circuit half-opens |\n| `stallTimeoutMs` | `3600000` (1h) | Per-operation timeout |\n| `logsDir` | `~/.pi/acp-agents/logs` | Log directory |\n| `dagStaleTimeoutMs` | `3600000` | DAG stale threshold |\n| `dagOutputTruncateChars` | `8000` | DAG downstream prompt truncation |\n\n### Per-agent\n\n| Field | Required | Description |\n|---|---|---|\n| `command` | **yes** | Executable to spawn |\n| `args` | no | Args (e.g. `[\"--acp\"]`) |\n| `env` | no | Extra env vars |\n| `cwd` | no | Working dir override |\n| `default_model` | no | Default model ID |\n\nFor aliases, model policy, and runtime store paths see [`docs/USAGE.md`](docs/USAGE.md).\n\n---\n\n## Architecture\n\n```\n┌─────────────────────────────────────────────────────┐\n│                    pi agent                          │\n│                                                      │\n│  acp_spawn ───┐                                      │\n│  acp_status ──┤                                      │\n│  acp_msg ─────┤──► AliasResolver ──► Coordinator ──┐ │\n│  acp_dag ─────┤                       │            │ │\n│  acp_fanout ──┤                       ▼            │ │\n│  acp_task ────┤              AcpCircuitBreaker     │ │\n│  acp_governance┘                       │            │ │\n│                              ┌────────┴────────┐   │ │\n│                              │ Adapter Factory │   │ │\n│                              └────┬───────┬────┘   │ │\n│                            GeminiAdapter│          │ │\n│                                  CustomAdapter     │ │\n│                                       │            │ │\n│                              AcpClient (stdio)     │ │\n│                                       │            │ │\n│                              HealthMonitor ◄───────┤ │\n│                              SessionManager        │ │\n│                              DagStore + DagExecutor│ │\n│                              WorkerStore           │ │\n│                              SessionStoreFactory   │ │\n└─────────────────────────────────────────────────────┘\n```\n\n### Patterns\n\n| Pattern | Implementation |\n|---|---|\n| **Adapter** | `AcpAgentAdapter` → `GeminiAcpAdapter` / `CustomAcpAdapter` |\n| **Factory** | `createAdapter()` — string dispatch |\n| **Circuit breaker** | Closed → Open → Half-Open with configurable thresholds |\n| **Health monitor** | Background polling; distinct no-response and completed-idle auto-close |\n| **Coordinator** | Multi-agent delegate / broadcast / compare |\n| **Alias resolver** | failover (sequential) + race (parallel first-wins) |\n| **DAG executor** | Topological wave-execution + persistent resume |\n| **Session-store factory** | Per-host-session lazy-instantiated stores (4 session-scoped + 3 global) |\n\n---\n\n## Resilience\n\n| Feature | Default | Description |\n|---|---|---|\n| Circuit breaker | 3 failures → open | Auto-recovers after 60s in half-open state |\n| Stall timeout | 1 hour | Per-operation timeout with SIGTERM → SIGKILL escalation |\n| Health polling | 30s | Background monitor with separate no-response and completed-idle timers |\n| Busy mutex | per-session | Prevents concurrent prompts on the same session |\n| Process safety | SIGTERM → SIGKILL | Graceful shutdown with escalation |\n| EPIPE handling | stdin / stdout | Prevents crashes on broken pipes |\n| Non-blocking | all paths | Errors return as tool error results, never unhandled throws |\n| Alias failover | automatic | Sequential fallback on agent failure |\n| Alias race | 30s timeout | Parallel first-wins with cancel of losers |\n| DAG resume | on pi restart | `resumeAll()` discovers running DAGs, skips completed steps |\n\n---\n\n## Logs\n\nCentral logs at `~/.pi/acp-agents/logs/`:\n\n- `main.log` — general structured JSON log\n- `session-{id}/trace.jsonl` — per-session ACP JSON-RPC traces\n- `<runtimeDir>/dag/<dagId>.json` + `dag-index.json` — DAG state persistence\n- `<runtimeDir>/<sessionId>/{tasks,mailboxes,governance,workers}.json` — session-scoped stores\n- `<runtimeDir>/{events,session-archive,session-name-registry}.jsonl|json` — global stores\n\n---\n\n## Supported agents\n\n| Agent | Status | Config |\n|---|---|---|\n| **Gemini CLI** | ✅ Built-in | `command: \"gemini\", args: [\"--acp\"]` |\n| **Claude Code** | 🔜 Planned | ACP mode pending upstream |\n| **Codex** | 🔜 Planned | ACP mode pending upstream |\n| **Custom** | ✅ Via `CustomAcpAdapter` | Any command speaking ACP over stdio |\n\n---\n\n## Development\n\n```bash\nnpm install\nnpm test              # all tests\nnpm run test:ci       # with coverage\nnpm run typecheck     # TypeScript validation\nnpm run publish:dry   # verify package contents before publish\n```\n\n---\n\n## Release process\n\n```bash\nnpm run release:patch    # 0.4.0 → 0.4.1\nnpm run release:minor    # 0.4.0 → 0.5.0\nnpm run release:beta     # 0.4.0 → 0.4.1-beta.0\ngit push --follow-tags   # triggers CI → auto-publish with provenance\n```\n\n---\n\n## Further documentation\n\n| Topic | Location |\n|---|---|\n| **Full usage guide** (DAG examples, alias config, worker patterns, slash command reference) | [`docs/USAGE.md`](docs/USAGE.md) |\n| **Tool consolidation plan** (33 → 7 ACP core multiplexed tools; 9 total with hooks policy) | [`../pi-plugins/flow/intentions/pi-acp-agents/tool-consolidation.md`](https://github.com/buihongduc132/pi-plugins/blob/main/flow/intentions/pi-acp-agents/tool-consolidation.md) |\n| **ACP vs teams gap analysis** | [`../pi-plugins/flow/findings/acp-vs-teams-analysis.md`](https://github.com/buihongduc132/pi-plugins/blob/main/flow/findings/acp-vs-teams-analysis.md) |\n| **DAG delegation design** | [`openspec/changes/archive/2026-06-20-acp-dag-delegation/`](openspec/changes/archive/2026-06-20-acp-dag-delegation/) |\n| **DAG widget design** | [`openspec/changes/archive/2026-06-22-acp-dag-widget/`](openspec/changes/archive/2026-06-22-acp-dag-widget/) |\n| **Session-scoped runtime stores** | [`openspec/changes/archive/2026-06-19-scope-runtime-stores-per-session/`](openspec/changes/archive/2026-06-19-scope-runtime-stores-per-session/) |\n| **Branch consolidation record** (this release) | [`docs/branch-consolidation-2026-06-22.md`](docs/branch-consolidation-2026-06-22.md) |\n| **OpenSpec changes** | [`openspec/changes/`](openspec/changes/) |\n| **Specs (canonical)** | [`openspec/specs/`](openspec/specs/) |\n","readmeFilename":"README.md"}