{"_id":"@duyviet1804/pi-moa","_rev":"21-f43c36ea42e08b3778733e98f9d6c08e","name":"@duyviet1804/pi-moa","dist-tags":{"latest":"0.5.3"},"versions":{"0.1.0":{"name":"@duyviet1804/pi-moa","version":"0.1.0","keywords":["pi-package","pi","pi-extension","moa","mixture-of-agents","coding-agent"],"author":{"name":"duyviet1804"},"license":"MIT","_id":"@duyviet1804/pi-moa@0.1.0","maintainers":[{"name":"duyviet1804","email":"duyviet1804@gmail.com"}],"homepage":"https://github.com/bacnh85/pi-moa#readme","bugs":{"url":"https://github.com/bacnh85/pi-moa/issues"},"pi":{"extensions":["./extensions/pi-moa.ts"]},"dist":{"shasum":"c73b3d80a480cfbd31f7bc43bd8f41eabc58757b","tarball":"https://registry.npmjs.org/@duyviet1804/pi-moa/-/pi-moa-0.1.0.tgz","fileCount":5,"integrity":"sha512-rQtbpzit3sVc9HqZ46PYAPzFpTFCOp2X/ktTM8j5rPdYmsYBcfhmkhndnduh+AJKIAd6/fS0nSGJrMt1Ap5bkA==","signatures":[{"sig":"MEQCIB6DujOQFzFDMAi4mXJq8TjUF2uz/+70jRJdAB/NO46IAiA9wPd9ja+TOhmDygGLPsusxvLTsSnG3G/2hZTfSMBiQg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":25050},"type":"module","_npmUser":{"name":"duyviet1804","email":"duyviet1804@gmail.com"},"repository":{"url":"git+https://github.com/bacnh85/pi-moa.git","type":"git"},"_npmVersion":"11.16.0","description":"Mixture of Agents (MoA) Fusion workflow provider for pi","directories":{},"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"@earendil-works/pi-ai":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-moa_0.1.0_1783496965498_0.04093212582633887","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@duyviet1804/pi-moa","version":"0.1.1","keywords":["pi-package","pi","pi-extension","moa","mixture-of-agents","coding-agent"],"author":{"name":"duyviet1804"},"license":"MIT","_id":"@duyviet1804/pi-moa@0.1.1","maintainers":[{"name":"duyviet1804","email":"duyviet1804@gmail.com"}],"homepage":"https://github.com/bacnh85/pi-moa#readme","bugs":{"url":"https://github.com/bacnh85/pi-moa/issues"},"pi":{"extensions":["./extensions/pi-moa.ts"]},"dist":{"shasum":"62209c88d529e9da88ab399cab864fe7e5ce2f68","tarball":"https://registry.npmjs.org/@duyviet1804/pi-moa/-/pi-moa-0.1.1.tgz","fileCount":5,"integrity":"sha512-w1V7fIEgJp5DBK4XjIPV2PbnzsHgBpi3DURUU31BbKH2Ow83o47WHtJCFzfDOTZYyRVrGA6aDZi0vdeCYZASwA==","signatures":[{"sig":"MEQCICV/Uz6Mpt+Tf72eVr0B2uaea4S2KmVdFEMTOtZvSVzLAiAEWli8BlOkI8x2Cl525xUwddl5R2II3RtAzzAy9q+32g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":25132},"type":"module","_npmUser":{"name":"duyviet1804","email":"duyviet1804@gmail.com"},"repository":{"url":"git+https://github.com/bacnh85/pi-moa.git","type":"git"},"_npmVersion":"11.16.0","description":"Mixture of Agents (MoA) Fusion workflow provider for pi","directories":{},"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"@earendil-works/pi-ai":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-moa_0.1.1_1783497571586_0.7637525344579685","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@duyviet1804/pi-moa","version":"0.2.0","keywords":["pi-package","pi","pi-extension","moa","mixture-of-agents","coding-agent"],"author":{"name":"duyviet1804"},"license":"MIT","_id":"@duyviet1804/pi-moa@0.2.0","maintainers":[{"name":"duyviet1804","email":"duyviet1804@gmail.com"}],"homepage":"https://github.com/bacnh85/pi-moa#readme","bugs":{"url":"https://github.com/bacnh85/pi-moa/issues"},"pi":{"extensions":["./extensions/pi-moa.ts"]},"dist":{"shasum":"1ce159749c57e18e3799ad9a196597e1413c02d9","tarball":"https://registry.npmjs.org/@duyviet1804/pi-moa/-/pi-moa-0.2.0.tgz","fileCount":6,"integrity":"sha512-jGMNnCIfE1uW8KKD7JlF2j/3x33cTBQ3ga3qCJhFeNBJ8JuEIY/zHCvHQbr+WKrLqsItXU8N+93GxA2r+hoT4w==","signatures":[{"sig":"MEQCIBajnwRzT/J6d1bvdOMsVNOavQw1ZeqWdtXwfe9XypyqAiBEfY0A4svoA3Nz35iTz5XdvrEkHUGVjIjhxamABhN/fA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":44484},"type":"module","gitHead":"4ca2d229debed46802f34e60289b87ed77eb4e36","scripts":{"test":"node --import tsx --test test/unit/*.test.ts","typecheck":"tsc --noEmit"},"_npmUser":{"name":"duyviet1804","email":"duyviet1804@gmail.com"},"repository":{"url":"git+https://github.com/bacnh85/pi-moa.git","type":"git"},"_npmVersion":"11.16.0","description":"Mixture of Agents (MoA) Fusion workflow provider for pi","directories":{},"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"latest","typescript":"latest","@types/node":"latest"},"peerDependencies":{"@earendil-works/pi-ai":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-moa_0.2.0_1783524831543_0.031996194315655924","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@duyviet1804/pi-moa","version":"0.2.1","keywords":["pi-package","pi","pi-extension","moa","mixture-of-agents","coding-agent"],"author":{"name":"duyviet1804"},"license":"MIT","_id":"@duyviet1804/pi-moa@0.2.1","maintainers":[{"name":"duyviet1804","email":"duyviet1804@gmail.com"}],"homepage":"https://github.com/bacnh85/pi-moa#readme","bugs":{"url":"https://github.com/bacnh85/pi-moa/issues"},"pi":{"extensions":["./extensions/pi-moa.ts"]},"dist":{"shasum":"7fefabf5528d79ef3753375619a466d4da0bdf02","tarball":"https://registry.npmjs.org/@duyviet1804/pi-moa/-/pi-moa-0.2.1.tgz","fileCount":6,"integrity":"sha512-nTlRLxtczoOSb7b/FUT0Ox20+rzgk0KVHCOkwwbSlkn3m4Tg3h+l3YoN/bT+f+pQOwzUyhIfJvKLy9Jm5EJHWw==","signatures":[{"sig":"MEQCIFiY+CSC0ZaUOjLoQwozYyIoX6t8t5pOLp4WByQHQPmKAiACa0VHkjGaa60lzTsHVjHxFAnq+P+a18K5pEz1IisP7A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":43998},"type":"module","gitHead":"4ca2d229debed46802f34e60289b87ed77eb4e36","scripts":{"test":"node --import tsx --test test/unit/*.test.ts","typecheck":"tsc --noEmit"},"_npmUser":{"name":"duyviet1804","email":"duyviet1804@gmail.com"},"repository":{"url":"git+https://github.com/bacnh85/pi-moa.git","type":"git"},"_npmVersion":"11.16.0","description":"Mixture of Agents (MoA) Fusion workflow provider for pi","directories":{},"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"latest","typescript":"latest","@types/node":"latest"},"peerDependencies":{"@earendil-works/pi-ai":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-moa_0.2.1_1783580941109_0.5700051065895777","host":"s3://npm-registry-packages-npm-production"}},"0.2.3":{"name":"@duyviet1804/pi-moa","version":"0.2.3","keywords":["pi-package","pi","pi-extension","moa","mixture-of-agents","coding-agent"],"author":{"name":"duyviet1804"},"license":"MIT","_id":"@duyviet1804/pi-moa@0.2.3","maintainers":[{"name":"duyviet1804","email":"duyviet1804@gmail.com"}],"homepage":"https://github.com/duyviet1804/pi-moa#readme","bugs":{"url":"https://github.com/duyviet1804/pi-moa/issues"},"pi":{"extensions":["./extensions/pi-moa.ts"]},"dist":{"shasum":"a931ba61efea2c591c6b7c3ba81d1d7f3dc70e5e","tarball":"https://registry.npmjs.org/@duyviet1804/pi-moa/-/pi-moa-0.2.3.tgz","fileCount":7,"integrity":"sha512-X6EtHYy1FiMMOkFEltG/KnDBe+1Di+mHvdYeb0/cCZ3oKPePZ3ikg1r31gNsQY9tnKrS7et9j14PrcNso5XU2w==","signatures":[{"sig":"MEUCIDITJUJeRXbYB+EIWX4iSHQZudGP1VKgkKJd/0sihV31AiEA/LL7ksMVQv4Dzb/bkNH4XOupwyDIou1iJShYrzaDp+Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":56426},"type":"module","gitHead":"4ca2d229debed46802f34e60289b87ed77eb4e36","scripts":{"test":"node --import tsx --test test/unit/*.test.ts","typecheck":"tsc --noEmit"},"_npmUser":{"name":"duyviet1804","email":"duyviet1804@gmail.com"},"repository":{"url":"git+https://github.com/duyviet1804/pi-moa.git","type":"git"},"_npmVersion":"11.16.0","description":"Mixture of Agents (MoA) Fusion workflow provider for pi","directories":{},"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"latest","typescript":"latest","@types/node":"latest"},"peerDependencies":{"@earendil-works/pi-ai":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-moa_0.2.3_1783738150940_0.5382712345436629","host":"s3://npm-registry-packages-npm-production"}},"0.2.4":{"name":"@duyviet1804/pi-moa","version":"0.2.4","keywords":["pi-package","pi","pi-extension","moa","mixture-of-agents","coding-agent"],"author":{"name":"duyviet1804"},"license":"MIT","_id":"@duyviet1804/pi-moa@0.2.4","maintainers":[{"name":"duyviet1804","email":"duyviet1804@gmail.com"}],"homepage":"https://github.com/duyviet1804/pi-moa#readme","bugs":{"url":"https://github.com/duyviet1804/pi-moa/issues"},"pi":{"extensions":["./extensions/pi-moa.ts"]},"dist":{"shasum":"c6f3e15e0f2d4e518d65354cc261adc0c7c97572","tarball":"https://registry.npmjs.org/@duyviet1804/pi-moa/-/pi-moa-0.2.4.tgz","fileCount":7,"integrity":"sha512-Muny6tQhiMoNLySsbmUX2BG3pahdLXg2WYegcx40fNZOkTbakaB1Pu4WEqHYkNwtxZIWMQkkyV/osXBu8irG9A==","signatures":[{"sig":"MEUCID+YF6ehjqxTisdAaplmMgxifNa9hYbLr+terLvx2oSIAiEA34pPhOvqrkUzn2IpLUMQlEH3XM9CIluPAH8wXRroyEs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":57560},"type":"module","gitHead":"4ca2d229debed46802f34e60289b87ed77eb4e36","scripts":{"test":"node --import tsx --test test/unit/*.test.ts","typecheck":"tsc --noEmit"},"_npmUser":{"name":"duyviet1804","email":"duyviet1804@gmail.com"},"repository":{"url":"git+https://github.com/duyviet1804/pi-moa.git","type":"git"},"_npmVersion":"11.16.0","description":"Mixture of Agents (MoA) Fusion workflow provider for pi","directories":{},"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"latest","typescript":"latest","@types/node":"latest"},"peerDependencies":{"@earendil-works/pi-ai":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-moa_0.2.4_1783739315738_0.6470116432269502","host":"s3://npm-registry-packages-npm-production"}},"0.2.5":{"name":"@duyviet1804/pi-moa","version":"0.2.5","keywords":["pi-package","pi","pi-extension","moa","mixture-of-agents","coding-agent"],"author":{"name":"duyviet1804"},"license":"MIT","_id":"@duyviet1804/pi-moa@0.2.5","maintainers":[{"name":"duyviet1804","email":"duyviet1804@gmail.com"}],"homepage":"https://github.com/duyviet1804/pi-moa#readme","bugs":{"url":"https://github.com/duyviet1804/pi-moa/issues"},"pi":{"extensions":["./extensions/pi-moa.ts"]},"dist":{"shasum":"8c07c4a898c905f577eca61ac35b1d40384a409f","tarball":"https://registry.npmjs.org/@duyviet1804/pi-moa/-/pi-moa-0.2.5.tgz","fileCount":7,"integrity":"sha512-bjiD8nG9+YFjyu50whgjJWSH7Vu6AL3p8gWxQBp82gk3bDh7xfi/d3p3jctt65vgJ3ujM2lOxBaaHCpO2g6aYg==","signatures":[{"sig":"MEUCIQDKaKpqLI4E+lHZkmWMTe3r/PwYHJyowrYa9SMlmxSqIQIgBSZ2HUnCEtOpyL1bivV4CIfs3mqxTmXXIFHf6kEcDCA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":57894},"type":"module","gitHead":"4ca2d229debed46802f34e60289b87ed77eb4e36","scripts":{"test":"node --import tsx --test test/unit/*.test.ts","typecheck":"tsc --noEmit"},"_npmUser":{"name":"duyviet1804","email":"duyviet1804@gmail.com"},"repository":{"url":"git+https://github.com/duyviet1804/pi-moa.git","type":"git"},"_npmVersion":"11.16.0","description":"Mixture of Agents (MoA) Fusion workflow provider for pi","directories":{},"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"latest","typescript":"latest","@types/node":"latest"},"peerDependencies":{"@earendil-works/pi-ai":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-moa_0.2.5_1783740733390_0.21434033988500012","host":"s3://npm-registry-packages-npm-production"}},"0.2.6":{"name":"@duyviet1804/pi-moa","version":"0.2.6","keywords":["pi-package","pi","pi-extension","moa","mixture-of-agents","coding-agent"],"author":{"name":"duyviet1804"},"license":"MIT","_id":"@duyviet1804/pi-moa@0.2.6","maintainers":[{"name":"duyviet1804","email":"duyviet1804@gmail.com"}],"homepage":"https://github.com/duyviet1804/pi-moa#readme","bugs":{"url":"https://github.com/duyviet1804/pi-moa/issues"},"pi":{"extensions":["./extensions/pi-moa.ts"]},"dist":{"shasum":"0249581f57eee14bbd5d9d93ad704b14a6257e08","tarball":"https://registry.npmjs.org/@duyviet1804/pi-moa/-/pi-moa-0.2.6.tgz","fileCount":7,"integrity":"sha512-ny0kN9oEgIqPkW/K1L0ADRwe5jrhz3DgHidXE3q007hK4QfKpIoFWRZ0hxlmE5PmhSNG8T6nbFubZcCv/opSuA==","signatures":[{"sig":"MEYCIQDKgE5ZxhzcwmiRheAKXwYGcbDU6k7CWIDK5LIAnckhAAIhAKDS+Qok1p11VSy79AeFsxWkqb6TcuLy/27pq+kxmfDl","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":58306},"type":"module","gitHead":"4ca2d229debed46802f34e60289b87ed77eb4e36","scripts":{"test":"node --import tsx --test test/unit/*.test.ts","typecheck":"tsc --noEmit"},"_npmUser":{"name":"duyviet1804","email":"duyviet1804@gmail.com"},"repository":{"url":"git+https://github.com/duyviet1804/pi-moa.git","type":"git"},"_npmVersion":"11.16.0","description":"Mixture of Agents (MoA) Fusion workflow provider for pi","directories":{},"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"latest","typescript":"latest","@types/node":"latest"},"peerDependencies":{"@earendil-works/pi-ai":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-moa_0.2.6_1783750245846_0.1780003077171899","host":"s3://npm-registry-packages-npm-production"}},"0.2.7":{"name":"@duyviet1804/pi-moa","version":"0.2.7","keywords":["pi-package","pi","pi-extension","moa","mixture-of-agents","coding-agent"],"author":{"name":"duyviet1804"},"license":"MIT","_id":"@duyviet1804/pi-moa@0.2.7","maintainers":[{"name":"duyviet1804","email":"duyviet1804@gmail.com"}],"homepage":"https://github.com/duyviet1804/pi-moa#readme","bugs":{"url":"https://github.com/duyviet1804/pi-moa/issues"},"pi":{"extensions":["./extensions/pi-moa.ts"]},"dist":{"shasum":"281e8b2c47304b02ece48f1112bec548cf8a499d","tarball":"https://registry.npmjs.org/@duyviet1804/pi-moa/-/pi-moa-0.2.7.tgz","fileCount":7,"integrity":"sha512-+TBb43BwG/vnPJX6pUBPCjvZGzeBTZ0sAYeviZPvMOd609aT2Cr9XRB27EDWP8FMI6b8lG8Wxh1Pm3Vs0RT2oQ==","signatures":[{"sig":"MEUCIA62C0vaYT0/FH05/y5TNfI/9dYet/6Zm9coLGRuhjYBAiEA0cKGaou3rJBYJZY44AcuYJIDrjLs3rpwomfi4/Dw5/0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":59149},"type":"module","gitHead":"3f9fc3f82c746456114b434e3070ee6d2fd088b4","scripts":{"test":"node --import tsx --test test/unit/*.test.ts","typecheck":"tsc --noEmit"},"_npmUser":{"name":"duyviet1804","email":"duyviet1804@gmail.com"},"repository":{"url":"git+https://github.com/duyviet1804/pi-moa.git","type":"git"},"_npmVersion":"11.16.0","description":"Mixture of Agents (MoA) Fusion workflow provider for pi","directories":{},"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"latest","typescript":"latest","@types/node":"latest"},"peerDependencies":{"@earendil-works/pi-ai":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-moa_0.2.7_1783856289705_0.5825374258935669","host":"s3://npm-registry-packages-npm-production"}},"0.2.8":{"name":"@duyviet1804/pi-moa","version":"0.2.8","keywords":["pi-package","pi","pi-extension","moa","mixture-of-agents","coding-agent"],"author":{"name":"duyviet1804"},"license":"MIT","_id":"@duyviet1804/pi-moa@0.2.8","maintainers":[{"name":"duyviet1804","email":"duyviet1804@gmail.com"}],"homepage":"https://github.com/duyviet1804/pi-moa#readme","bugs":{"url":"https://github.com/duyviet1804/pi-moa/issues"},"pi":{"extensions":["./extensions/pi-moa.ts"]},"dist":{"shasum":"2de7973e7bc5e4396942bc3133cb2eabbca191e8","tarball":"https://registry.npmjs.org/@duyviet1804/pi-moa/-/pi-moa-0.2.8.tgz","fileCount":7,"integrity":"sha512-Bl7Q/TOEpJ7V1UUDGtQprGb8RdJvTHI9JNvadDI4NVjD2Ld9UTnpQ4kX7wEBZnuozAwtpJMOnu5z7Ruvhaswrw==","signatures":[{"sig":"MEQCICAxQxt1oBYljFbmGMw2RqDwHg3vsMjd7z0+aMrr0iglAiA61O9u6Kn1nDKS812z8Fb2RSNZ6pvJE2tQv3hBm5LwLA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":63429},"type":"module","gitHead":"3f9fc3f82c746456114b434e3070ee6d2fd088b4","scripts":{"test":"node --import tsx --test test/unit/*.test.ts","typecheck":"tsc --noEmit"},"_npmUser":{"name":"duyviet1804","email":"duyviet1804@gmail.com"},"repository":{"url":"git+https://github.com/duyviet1804/pi-moa.git","type":"git"},"_npmVersion":"11.16.0","description":"Mixture of Agents (MoA) Fusion workflow provider for pi","directories":{},"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"latest","typescript":"latest","@types/node":"latest"},"peerDependencies":{"@earendil-works/pi-ai":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-moa_0.2.8_1783865030701_0.4142160794020955","host":"s3://npm-registry-packages-npm-production"}},"0.2.9":{"name":"@duyviet1804/pi-moa","version":"0.2.9","keywords":["pi-package","pi","pi-extension","moa","mixture-of-agents","coding-agent"],"author":{"name":"duyviet1804"},"license":"MIT","_id":"@duyviet1804/pi-moa@0.2.9","maintainers":[{"name":"duyviet1804","email":"duyviet1804@gmail.com"}],"homepage":"https://github.com/duyviet1804/pi-moa#readme","bugs":{"url":"https://github.com/duyviet1804/pi-moa/issues"},"pi":{"extensions":["./extensions/pi-moa.ts"]},"dist":{"shasum":"4ba1a8e7da3ee31450016994e92fd995ef82ca08","tarball":"https://registry.npmjs.org/@duyviet1804/pi-moa/-/pi-moa-0.2.9.tgz","fileCount":7,"integrity":"sha512-kGrW+RnRGXx9cRBZ+o+l4tFMUNTABpgMeUQxl1QNAIYzA6J/eYxzxnOTRLVCxFSFVZdSF72jNRzIcRkXh6r58Q==","signatures":[{"sig":"MEYCIQDgcAe+geVPgU12fEcMTh/PhKUTOShNc5A4hq4BEOk6QgIhAKjM+ddR4MvjZ0HfnpTtm+hkx3jXTXu5c4hyM3PCkuCZ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":65949},"type":"module","gitHead":"3f9fc3f82c746456114b434e3070ee6d2fd088b4","scripts":{"test":"node --import tsx --test test/unit/*.test.ts","typecheck":"tsc --noEmit"},"_npmUser":{"name":"duyviet1804","email":"duyviet1804@gmail.com"},"repository":{"url":"git+https://github.com/duyviet1804/pi-moa.git","type":"git"},"_npmVersion":"11.16.0","description":"Mixture of Agents (MoA) Fusion workflow provider for pi","directories":{},"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"latest","typescript":"latest","@types/node":"latest"},"peerDependencies":{"@earendil-works/pi-ai":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-moa_0.2.9_1783877086628_0.734239717499892","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@duyviet1804/pi-moa","version":"0.3.0","keywords":["pi-package","pi","pi-extension","moa","mixture-of-agents","coding-agent"],"author":{"name":"duyviet1804"},"license":"MIT","_id":"@duyviet1804/pi-moa@0.3.0","maintainers":[{"name":"duyviet1804","email":"duyviet1804@gmail.com"}],"homepage":"https://github.com/duyviet1804/pi-moa#readme","bugs":{"url":"https://github.com/duyviet1804/pi-moa/issues"},"pi":{"extensions":["./extensions/pi-moa.ts"]},"dist":{"shasum":"89a69413b0398ddfbf6ec3b8c2db9d738bd9a940","tarball":"https://registry.npmjs.org/@duyviet1804/pi-moa/-/pi-moa-0.3.0.tgz","fileCount":7,"integrity":"sha512-yF8vOL57Cnt5vvtgZLX5h8vVvThIHMdFVIxCnHk0m7LILLNNTkXRtbBUMj0danH/NZFAHzG3cfiQs3dhnhKbQQ==","signatures":[{"sig":"MEUCIQDrwfngpoyEGjhteylDy+CIDUF+ZNLmj+eoN2fw/DCzrgIgYEgIgBz9pr6zQjo2sWFcaaVvWQ+LD4sDeFcGkv2EsYk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":39890},"type":"module","gitHead":"d2415f5e63238a9e6ce61652e2107799f2f60ed7","scripts":{"test":"node --test test/unit/*.test.ts","typecheck":"tsc --noEmit"},"_npmUser":{"name":"duyviet1804","email":"duyviet1804@gmail.com"},"repository":{"url":"git+https://github.com/duyviet1804/pi-moa.git","type":"git"},"_npmVersion":"11.16.0","description":"Mixture of Agents (MoA) Fusion workflow provider for pi","directories":{},"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"latest","@types/node":"latest"},"peerDependencies":{"@earendil-works/pi-ai":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-moa_0.3.0_1783960851725_0.604430186026939","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@duyviet1804/pi-moa","version":"0.4.0","keywords":["pi-package","pi","pi-extension","moa","mixture-of-agents","coding-agent"],"author":{"name":"duyviet1804"},"license":"MIT","_id":"@duyviet1804/pi-moa@0.4.0","maintainers":[{"name":"duyviet1804","email":"duyviet1804@gmail.com"}],"homepage":"https://github.com/VietDo1804/pi-moa#readme","bugs":{"url":"https://github.com/VietDo1804/pi-moa/issues"},"pi":{"extensions":["./extensions/pi-moa.ts"]},"dist":{"shasum":"a81ea1add2ea8fe73091d597c198fa3663df9a5c","tarball":"https://registry.npmjs.org/@duyviet1804/pi-moa/-/pi-moa-0.4.0.tgz","fileCount":8,"integrity":"sha512-7nXomJ5fBy6/MTZ9ryzKnN0DwsH5QlQ0LCYEib0gRPmp1meP8bfkEXxccTdFxpemHNb8Wp1r9Fp/T2PhWBwDEA==","signatures":[{"sig":"MEQCIE3quoiqcmPsN73V8sWuojxAHZ9pDOz159O7lMqPFFLsAiBu+oqLTtRbknZwX9h7LwCqaekGa5vt0/sSlOOJAe493A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":43578},"type":"module","engines":{"node":">=22.19.0"},"gitHead":"baa1edf5ec6546fdc90713863f2f4cda0fcdf5b0","scripts":{"test":"node --test test/unit/*.test.ts","typecheck":"tsc --noEmit"},"_npmUser":{"name":"duyviet1804","email":"duyviet1804@gmail.com"},"repository":{"url":"git+https://github.com/VietDo1804/pi-moa.git","type":"git"},"_npmVersion":"11.16.0","description":"Mixture of Agents (MoA) Fusion workflow provider for pi","directories":{},"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"latest","@types/node":"latest"},"peerDependencies":{"@earendil-works/pi-ai":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-moa_0.4.0_1784536938064_0.28003946500920684","host":"s3://npm-registry-packages-npm-production"}},"0.4.1":{"name":"@duyviet1804/pi-moa","version":"0.4.1","keywords":["pi-package","pi","pi-extension","moa","mixture-of-agents","coding-agent"],"author":{"name":"duyviet1804"},"license":"MIT","_id":"@duyviet1804/pi-moa@0.4.1","maintainers":[{"name":"duyviet1804","email":"duyviet1804@gmail.com"}],"homepage":"https://github.com/VietDo1804/pi-moa#readme","bugs":{"url":"https://github.com/VietDo1804/pi-moa/issues"},"pi":{"extensions":["./extensions/pi-moa.ts"]},"dist":{"shasum":"44dea1636de8d4673346f1a72c652fc90b1ae81c","tarball":"https://registry.npmjs.org/@duyviet1804/pi-moa/-/pi-moa-0.4.1.tgz","fileCount":8,"integrity":"sha512-vvJFr4gAP+Oaouk33COgaPP6oUPBzRn/OSCHantMA5th7khlpuQnWDUZYee3xGm56sclxM5FkPpz0HPNdT0WFQ==","signatures":[{"sig":"MEUCIQDxE6oo0+SCSGiIEIgCgGKTHLY6MZH+suwJ6d9stnt70wIgSlJGR3b/3GdNWqJ9CPFX5TwfUJ66IO3ZHAo5wFTXCbw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":44495},"type":"module","engines":{"node":">=22.19.0"},"gitHead":"baa1edf5ec6546fdc90713863f2f4cda0fcdf5b0","scripts":{"test":"node --test test/unit/*.test.ts","typecheck":"tsc --noEmit"},"_npmUser":{"name":"duyviet1804","email":"duyviet1804@gmail.com"},"repository":{"url":"git+https://github.com/VietDo1804/pi-moa.git","type":"git"},"_npmVersion":"11.16.0","description":"Mixture of Agents (MoA) Fusion workflow provider for pi","directories":{},"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"latest","@types/node":"latest"},"peerDependencies":{"@earendil-works/pi-ai":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-moa_0.4.1_1784537628752_0.28656460885271584","host":"s3://npm-registry-packages-npm-production"}},"0.4.2":{"name":"@duyviet1804/pi-moa","version":"0.4.2","keywords":["pi-package","pi","pi-extension","moa","mixture-of-agents","coding-agent"],"author":{"name":"duyviet1804"},"license":"MIT","_id":"@duyviet1804/pi-moa@0.4.2","maintainers":[{"name":"duyviet1804","email":"duyviet1804@gmail.com"}],"homepage":"https://github.com/VietDo1804/pi-moa#readme","bugs":{"url":"https://github.com/VietDo1804/pi-moa/issues"},"pi":{"extensions":["./extensions/pi-moa.ts"]},"dist":{"shasum":"5ebc7ea4c7603c60abb09ed814c79bb76108b630","tarball":"https://registry.npmjs.org/@duyviet1804/pi-moa/-/pi-moa-0.4.2.tgz","fileCount":8,"integrity":"sha512-FKQEf6DLv/sMmsB0DYi2q3Q795WA1GvLULraFp+5mG8dGub6MKuuZ5mUdLxMW8PgUki7P4fVmOEidOUS+AuZMQ==","signatures":[{"sig":"MEUCIQDKRJ8FWob8ZA3Wara+61Tusquj3YB1qocdCuyeiQ6VKAIgNYCOaTlKnFgFwv6BOq3NcKLySISsZCnF9nh3RkxjbSc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":45298},"type":"module","engines":{"node":">=22.19.0"},"gitHead":"3ff77df1ac0e3b0f2ce859739e4b375e7db4e5e8","scripts":{"test":"node --test test/unit/*.test.ts","typecheck":"tsc --noEmit"},"_npmUser":{"name":"duyviet1804","email":"duyviet1804@gmail.com"},"repository":{"url":"git+https://github.com/VietDo1804/pi-moa.git","type":"git"},"_npmVersion":"11.16.0","description":"Mixture of Agents (MoA) Fusion workflow provider for pi","directories":{},"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"latest","@types/node":"latest"},"peerDependencies":{"@earendil-works/pi-ai":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-moa_0.4.2_1784543191144_0.1872961834598983","host":"s3://npm-registry-packages-npm-production"}},"0.4.3":{"name":"@duyviet1804/pi-moa","version":"0.4.3","keywords":["pi-package","pi","pi-extension","moa","mixture-of-agents","coding-agent"],"author":{"name":"duyviet1804"},"license":"MIT","_id":"@duyviet1804/pi-moa@0.4.3","maintainers":[{"name":"duyviet1804","email":"duyviet1804@gmail.com"}],"homepage":"https://github.com/VietDo1804/pi-moa#readme","bugs":{"url":"https://github.com/VietDo1804/pi-moa/issues"},"pi":{"extensions":["./extensions/pi-moa.ts"]},"dist":{"shasum":"1f79cda98614cb14d1ca610ae4b4d9eb34349bbb","tarball":"https://registry.npmjs.org/@duyviet1804/pi-moa/-/pi-moa-0.4.3.tgz","fileCount":8,"integrity":"sha512-dccWFXzpFzy7SQi9XF71UOKi6pdF1m8A0doPWRuSebk/8puf7hg+Q5nf/DshVauogFuwEisx5htzdjV8el4uFQ==","signatures":[{"sig":"MEYCIQDYJJKMRKOUTox4X774QCS0jT1MVDz753aJJfBoy14A9AIhAMSwDDOGgkk58BLORrxYZfAjPcXGs304GGH61BuOuXNy","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":50078},"type":"module","engines":{"node":">=22.19.0"},"gitHead":"780e7f13728b81904077de16c248740180862ca3","scripts":{"test":"node --test test/unit/*.test.ts","typecheck":"tsc --noEmit"},"_npmUser":{"name":"duyviet1804","email":"duyviet1804@gmail.com"},"repository":{"url":"git+https://github.com/VietDo1804/pi-moa.git","type":"git"},"_npmVersion":"11.16.0","description":"Mixture of Agents (MoA) Fusion workflow provider for pi","directories":{},"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"latest","@types/node":"latest"},"peerDependencies":{"@earendil-works/pi-ai":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-moa_0.4.3_1784563097482_0.9789531385444581","host":"s3://npm-registry-packages-npm-production"}},"0.4.5":{"name":"@duyviet1804/pi-moa","version":"0.4.5","keywords":["pi-package","pi","pi-extension","moa","mixture-of-agents","coding-agent"],"author":{"name":"duyviet1804"},"license":"MIT","_id":"@duyviet1804/pi-moa@0.4.5","maintainers":[{"name":"duyviet1804","email":"duyviet1804@gmail.com"}],"homepage":"https://github.com/VietDo1804/pi-moa#readme","bugs":{"url":"https://github.com/VietDo1804/pi-moa/issues"},"pi":{"extensions":["./extensions/pi-moa.ts"]},"dist":{"shasum":"dca56526b1a5ae771574761f55ff3d383629c21e","tarball":"https://registry.npmjs.org/@duyviet1804/pi-moa/-/pi-moa-0.4.5.tgz","fileCount":8,"integrity":"sha512-RNFFLhp1pIv2mjmjs0qMz2GaTg+ziGvkK0QxS9sMmvpg9nF64VSIQm2RP3FFyHvLyxdj4NGgRH2Nc6+v70Ydng==","signatures":[{"sig":"MEQCIEcyL45OYB03PupEypjvYgDoMKaoWzHSGke03Iqt/9CmAiAYZS/FkNVwphOTGRfAmwCKx+yiCgszfADBJgRSPb/9YQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":71423},"type":"module","engines":{"node":">=22.19.0"},"gitHead":"1a0990657781148dc762b09cb2e218e63f25c863","scripts":{"test":"node --test test/unit/*.test.ts","typecheck":"tsc --noEmit"},"_npmUser":{"name":"duyviet1804","email":"duyviet1804@gmail.com"},"repository":{"url":"git+https://github.com/VietDo1804/pi-moa.git","type":"git"},"_npmVersion":"11.16.0","description":"Mixture of Agents (MoA) Fusion workflow provider for pi","directories":{},"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"latest","@types/node":"latest","@earendil-works/pi-tui":"0.80.6"},"peerDependencies":{"@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-moa_0.4.5_1784910161647_0.8518643719152152","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"@duyviet1804/pi-moa","version":"0.5.0","keywords":["pi-package","pi","pi-extension","moa","mixture-of-agents","coding-agent"],"author":{"name":"duyviet1804"},"license":"MIT","_id":"@duyviet1804/pi-moa@0.5.0","maintainers":[{"name":"duyviet1804","email":"duyviet1804@gmail.com"}],"homepage":"https://github.com/VietDo1804/pi-moa#readme","bugs":{"url":"https://github.com/VietDo1804/pi-moa/issues"},"pi":{"extensions":["./extensions/pi-moa.ts"]},"dist":{"shasum":"0d7e9d487e40039cdfdaafef83d72c3cb25dbe55","tarball":"https://registry.npmjs.org/@duyviet1804/pi-moa/-/pi-moa-0.5.0.tgz","fileCount":8,"integrity":"sha512-+io1haCBGzew6cUMjHnr9Tvj8ufTAwBityzUdY7LigmCE5pZBe8VgKz9wbBEP8ksLvl2uUnAeE2WZ7CmmBX24Q==","signatures":[{"sig":"MEUCIQDi/VoDLsXhWGKYCNfIxnbE5uUYdPudrl47Gsq6lFa/3AIgcAVdry6uAQRVJtbb5Z7MO8qEPana7vNUGaowy35sfnU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":83440},"type":"module","_from":"file:/home/vietdo/test/pi-moa-0.5.0-publish/duyviet1804-pi-moa-0.5.0.tgz","engines":{"node":">=22.19.0"},"scripts":{"test":"node --test test/unit/*.test.ts","typecheck":"tsc --noEmit"},"_npmUser":{"name":"duyviet1804","email":"duyviet1804@gmail.com"},"_resolved":"/home/vietdo/test/pi-moa-0.5.0-publish/duyviet1804-pi-moa-0.5.0.tgz","_integrity":"sha512-+io1haCBGzew6cUMjHnr9Tvj8ufTAwBityzUdY7LigmCE5pZBe8VgKz9wbBEP8ksLvl2uUnAeE2WZ7CmmBX24Q==","repository":{"url":"git+https://github.com/VietDo1804/pi-moa.git","type":"git"},"_npmVersion":"11.16.0","description":"Mixture of Agents (MoA) Fusion workflow provider for pi","directories":{},"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"latest","@types/node":"latest","@earendil-works/pi-tui":"0.82.0"},"peerDependencies":{"@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-moa_0.5.0_1784945274343_0.06800392474567785","host":"s3://npm-registry-packages-npm-production"}},"0.5.1":{"name":"@duyviet1804/pi-moa","version":"0.5.1","keywords":["pi-package","pi","pi-extension","moa","mixture-of-agents","coding-agent"],"author":{"name":"duyviet1804"},"license":"MIT","_id":"@duyviet1804/pi-moa@0.5.1","maintainers":[{"name":"duyviet1804","email":"duyviet1804@gmail.com"}],"homepage":"https://github.com/VietDo1804/pi-moa#readme","bugs":{"url":"https://github.com/VietDo1804/pi-moa/issues"},"pi":{"extensions":["./extensions/pi-moa.ts"]},"dist":{"shasum":"0cd66b93ed1e595f339e8e0ac39392397e2197ae","tarball":"https://registry.npmjs.org/@duyviet1804/pi-moa/-/pi-moa-0.5.1.tgz","fileCount":8,"integrity":"sha512-1S4S5VBX+V9Z+RHcXSbzCz74sKwwpZ0708ljaWWOFsN5Y0ARn3s/O1J71QSSl2h9qJSpLuM/ry3j56mgr8gMkQ==","signatures":[{"sig":"MEQCIDyO9sG8ZpqX9vQ9C8n+dt2mB+gzMxB2+dQrW8a4fdgbAiAIZt9SVS76yDY8PKpFJH+x/ox35RKWoyV55VOoMoRHTw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":130076},"type":"module","engines":{"node":">=22.19.0"},"gitHead":"883486af1334da1c71797a3ade64461b4f807ad8","scripts":{"test":"node --test test/unit/*.test.ts","typecheck":"tsc --noEmit"},"_npmUser":{"name":"duyviet1804","email":"duyviet1804@gmail.com"},"repository":{"url":"git+https://github.com/VietDo1804/pi-moa.git","type":"git"},"_npmVersion":"11.16.0","description":"Mixture of Agents (MoA) Fusion workflow provider for pi","directories":{},"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"latest","@types/node":"latest","@earendil-works/pi-tui":"0.82.0"},"peerDependencies":{"@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-moa_0.5.1_1785046406482_0.780057638013725","host":"s3://npm-registry-packages-npm-production"}},"0.5.2":{"name":"@duyviet1804/pi-moa","version":"0.5.2","keywords":["pi-package","pi","pi-extension","moa","mixture-of-agents","coding-agent"],"author":{"name":"duyviet1804"},"license":"MIT","_id":"@duyviet1804/pi-moa@0.5.2","maintainers":[{"name":"duyviet1804","email":"duyviet1804@gmail.com"}],"homepage":"https://github.com/VietDo1804/pi-moa#readme","bugs":{"url":"https://github.com/VietDo1804/pi-moa/issues"},"pi":{"extensions":["./extensions/pi-moa.ts"]},"dist":{"shasum":"d71680606d4bf7d13b31058e8c58687ad40a6ecd","tarball":"https://registry.npmjs.org/@duyviet1804/pi-moa/-/pi-moa-0.5.2.tgz","fileCount":8,"integrity":"sha512-9QCDJB9Cpqsibdn7+1I6tKbmaTL6OdPvo7eZoLPp05t1TjLH+8Dlxho1ead8IGOGLiUHeZQJC0i32c3btCZROw==","signatures":[{"sig":"MEUCIQDdDZbpCamG6zhZ0AeUmcG2yPUxpY2oUOTnj5D6zgTK8QIgYgmOZh+eztKpN9Y39RUkALgS8YBfbC6EjmFszdu00gk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":136017},"type":"module","engines":{"node":">=22.19.0"},"gitHead":"646d4148d25a89f8b3f788e0d2ad8a8ee2c32d84","scripts":{"test":"node --test test/unit/*.test.ts","typecheck":"tsc --noEmit"},"_npmUser":{"name":"duyviet1804","email":"duyviet1804@gmail.com"},"repository":{"url":"git+https://github.com/VietDo1804/pi-moa.git","type":"git"},"_npmVersion":"11.16.0","description":"Mixture of Agents (MoA) Fusion workflow provider for pi","directories":{},"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"latest","@types/node":"latest","@earendil-works/pi-tui":"0.82.0"},"peerDependencies":{"@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-moa_0.5.2_1785081228319_0.050084417291013095","host":"s3://npm-registry-packages-npm-production"}},"0.5.3":{"name":"@duyviet1804/pi-moa","version":"0.5.3","description":"Mixture of Agents (MoA) Fusion workflow provider for pi","license":"MIT","author":{"name":"duyviet1804"},"publishConfig":{"access":"public"},"type":"module","keywords":["pi-package","pi","pi-extension","moa","mixture-of-agents","coding-agent"],"repository":{"type":"git","url":"git+https://github.com/VietDo1804/pi-moa.git"},"bugs":{"url":"https://github.com/VietDo1804/pi-moa/issues"},"homepage":"https://github.com/VietDo1804/pi-moa#readme","scripts":{"test":"node --import tsx --test test/unit/*.test.ts","typecheck":"tsc --noEmit"},"engines":{"node":">=22.19.0"},"pi":{"extensions":["./extensions/pi-moa.ts"]},"peerDependencies":{"@earendil-works/pi-ai":"*","@earendil-works/pi-coding-agent":"*","@earendil-works/pi-tui":"*","typebox":"*"},"devDependencies":{"@earendil-works/pi-tui":"0.82.0","@types/node":"latest","tsx":"^4.23.1","typescript":"latest"},"dependencies":{"@bacnh85/pi-model-tools":"0.3.2"},"_id":"@duyviet1804/pi-moa@0.5.3","bundleDependencies":["@bacnh85/pi-model-tools"],"_integrity":"sha512-6T1Tl1UWVYSFDK85D1R/CuFLgghPCIKLIpR4UqsP4AwmCceweJkbBmsdICueJ97YeZ0JApgFUDm6eta6VnsmoQ==","_resolved":"/home/vietdo/vietdo_workspace/pi_extension/pi-moa/duyviet1804-pi-moa-0.5.3.tgz","_from":"file:duyviet1804-pi-moa-0.5.3.tgz","_nodeVersion":"24.18.0","_npmVersion":"11.16.0","dist":{"integrity":"sha512-6T1Tl1UWVYSFDK85D1R/CuFLgghPCIKLIpR4UqsP4AwmCceweJkbBmsdICueJ97YeZ0JApgFUDm6eta6VnsmoQ==","shasum":"b6be6f7f183cfbff9604e66b2fa84c188bca5bc6","tarball":"https://registry.npmjs.org/@duyviet1804/pi-moa/-/pi-moa-0.5.3.tgz","fileCount":21,"unpackedSize":314744,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDt25mFsiCa9yXGithLLrToAeCqGrNhxqdUMun54Fl4ygIgZxWRb7I4qoY+y5pA3qhUxx+6F7V41GydShU2DaPoNGU="}]},"_npmUser":{"name":"duyviet1804","email":"duyviet1804@gmail.com"},"directories":{},"maintainers":[{"name":"duyviet1804","email":"duyviet1804@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/pi-moa_0.5.3_1785742773786_0.09880877318754888"},"_hasShrinkwrap":false}},"time":{"created":"2026-07-08T07:49:25.316Z","modified":"2026-08-03T07:39:34.047Z","0.1.0":"2026-07-08T07:49:25.642Z","0.1.1":"2026-07-08T07:59:31.751Z","0.2.0":"2026-07-08T15:33:51.686Z","0.2.1":"2026-07-09T07:09:01.291Z","0.2.3":"2026-07-11T02:49:11.093Z","0.2.4":"2026-07-11T03:08:35.911Z","0.2.5":"2026-07-11T03:32:13.561Z","0.2.6":"2026-07-11T06:10:46.005Z","0.2.7":"2026-07-12T11:38:09.843Z","0.2.8":"2026-07-12T14:03:50.831Z","0.2.9":"2026-07-12T17:24:46.780Z","0.3.0":"2026-07-13T16:40:51.878Z","0.4.0":"2026-07-20T08:42:18.215Z","0.4.1":"2026-07-20T08:53:48.888Z","0.4.2":"2026-07-20T10:26:31.301Z","0.4.3":"2026-07-20T15:58:17.648Z","0.4.5":"2026-07-24T16:22:41.805Z","0.5.0":"2026-07-25T02:07:54.499Z","0.5.1":"2026-07-26T06:13:26.631Z","0.5.2":"2026-07-26T15:53:48.479Z","0.5.3":"2026-08-03T07:39:33.906Z"},"bugs":{"url":"https://github.com/VietDo1804/pi-moa/issues"},"author":{"name":"duyviet1804"},"license":"MIT","homepage":"https://github.com/VietDo1804/pi-moa#readme","keywords":["pi-package","pi","pi-extension","moa","mixture-of-agents","coding-agent"],"repository":{"type":"git","url":"git+https://github.com/VietDo1804/pi-moa.git"},"description":"Mixture of Agents (MoA) Fusion workflow provider for pi","maintainers":[{"name":"duyviet1804","email":"duyviet1804@gmail.com"}],"readme":"# pi-moa\n\n`pi-moa` is a [Pi](https://pi.dev) `0.80.6+` package that adds two local Mixture of Agents workflow models. By default, one read-only advisor plan guides the normal Pi actor; successful tool batches stay actor-only and final review is off.\n\n## Choose a preset\n\n### Fusion Fast — stable\n\n`Fusion Fast` is the recommended daily preset. Its built-in actor is `opencode-go:deepseek-v4-flash`; `opencode-go:glm-5.2` supplies the initial plan with an 8000-token output cap.\n\n### Fusion — improving\n\n`Fusion` uses the same actor with parallel plans from `opencode-go:glm-5.2` and `opencode-go:kimi-k2.6`.\n\n| Path | Actor calls | Advisor calls | Notes |\n|---|---:|---:|---|\n| Happy terminal answer | 1 | 1 | One initial advisor batch; no final review |\n| First failed batch | 1 | 2 | Initial plan plus one failure checkpoint |\n| Successful continuation | 1 | 0 | Retained plan is reused |\n\nBoth presets default to `brain-once`: initial planning, retained advice, failure-only checkpoints, and `finalGate:false`. `actor-first-reviewed` remains selectable when strict provider-owned final review is worth the extra latency and possible candidate withholding.\n\nSee [CHANGELOG.md](CHANGELOG.md) for release details.\n\n## 0.5.3 highlights\n\n- **Hybrid task routing.** Advisors classify work as `DIRECT`, `PLAN`, or `EXECUTION-CONTRACT`: clear tasks go straight to the actor, ambiguous tasks retain a plan, approved plans remain authoritative, and materialized skills run actor-first with bounded review.\n- **Brain on Demand is available without becoming the default.** `actor-first-reviewed` starts with the actor, permits one failure rescue, privately reviews terminal candidates, allows one correction, and keeps unavailable reviews retryable; daily `brain-once` remains the default with final review off.\n- **Actor-aware tool reliability is bundled.** DeepSeek V4/GLM guidance, schema-shaped argument repair, exact-write and safety guards, failure hints, and conditional `apply_patch` registration use the configured actor rather than the outer Fusion model.\n- **Live, bounded advisor visibility.** Redacted reasoning tails and partial Markdown stream transiently while bounded final responses remain in local activity cards outside model context.\n\n### Compared with 0.5.2\n\n| Area | 0.5.2 | 0.5.3 |\n|---|---|---|\n| Workflow | Initial advisor plan plus actor | Hybrid `DIRECT`/`PLAN`/`EXECUTION-CONTRACT`, plus opt-in actor-first review |\n| Final review | Optional parallel unanimous approval | Ordered availability fallback, one persisted correction, and `/pi-moa retry-review` |\n| Skills and plans | Approved plans execute directly | Approved plans become execution contracts; materialized skills run actor-first with bounded review |\n| Actor tools | Prompt-level DeepSeek routing | Actor-aware repair, guards, recovery hints, and bundled `apply_patch` |\n| Advisor UI | Completed bounded activity cards | Transient live stream plus completed bounded cards |\n\n## 0.5.2 highlights\n\n- **Fusion Fast is the stable preset.** It is the recommended daily default; the two-advisor Fusion preset remains available while its quality/latency tradeoff is still improving.\n- **Tool turns keep nested internals private.** Final-gated tool steps publish only the `toolCall` blocks, not actor thinking or prose, and execution/correction guidance no longer exposes MoA wrappers or provider labels.\n- **Final corrections tolerate safe reviewer preambles.** A valid trailing `REVISE` block is actionable even when the reviewer prefixes prose; only that revision block reaches the actor. `APPROVE` remains exact, unanimous, and fail-closed.\n- **Fusion Fast now routes semantic work like direct DeepSeek.** When Serena tools are active, symbol/declaration/reference work is directed to Serena first. Explicit run/build/lint requests use `bash` first without exploratory file inspection, while discovery prompts are not forced down that path.\n- **Controlled routing results reached parity on the target paths.** Across 48 matched runs, Fusion first-tool correctness rose from 21/24 to 24/24, required sequences from 21/24 to 23/24, corrected completion from 20/24 to 24/24, and blank finals from four to zero. Serena-first improved from 0/3 to 3/3 and bash-first from 2/3 to 3/3.\n\n## 0.5.1 highlights\n\n- **Fusion Fast acts with DeepSeek V4 Flash.** The built-in fallback and shipped Fast example both use `opencode-go:deepseek-v4-flash`; existing model-slot overrides remain authoritative.\n- **Same-session follow-ups retain advisor context.** The opt-in `advisorContextMode: \"session\"` supplies the plan advisor with Pi's sanitized prior session context plus the latest turn, fixing follow-ups after a completed task and stop/switch/`continue` handoffs without adding a second memory system. The default remains `turn`.\n- **The latest turn keeps the budget.** Session history uses only the space left after current-turn evidence and preserves the history head and recent tail. By default Pi MoA derives the safe bound from the smallest configured advisor `contextWindow`, reserving output/reasoning, prompts, read-only tools, and provider overhead; a positive `maxAdvisorContextChars` remains an optional smaller failsafe.\n- **Context use is measurable.** Advisor diagnostics record model-window tokens, reserved tokens, effective budget source/characters, configured/effective scope, source characters, sent characters, and truncation—never raw context. `/pi-moa` reports `auto` or the explicit override.\n- **Final review stays short and fail-closed.** When the opt-in final gate is enabled, its primary verdict uses `minimal` reasoning and at most 4096 output tokens; only unanimous valid `APPROVE` verdicts release the candidate. Malformed, unavailable, or repeatedly revising reviews withhold it; plan and failure-checkpoint budgets are unchanged.\n- **Advisor work is visible live.** While each Advisor runs, Pi shows a transient, secret-redacted reasoning tail and rendered partial Markdown. The widget is cleared after the batch; only the configured Advisors' bounded final responses enter the existing local activity card, never reasoning, actor messages, diagnostics, or model context.\n- **Cards stay compact and context-private.** Pi shows a short collapsed preview and bounded multiline output when expanded. The display copy is stored in local session history but remains outside actor messages and LLM context; cache hits add no duplicate card or model call.\n- **Durable output is bounded safely.** Each stored advisor display is capped at 20,000 Unicode code points with surrogate-safe middle truncation, and terminal control characters are stripped. The actor still receives the original authoritative response.\n- **Plan Mode stops at external approval.** Under `pi-plan`'s canonical Plan Mode, Pi MoA keeps `write_plan` status at `draft` and settles locally with zero tokens after the plan is written. After approval, the actor executes that plan directly without another planning-advisor call; failure checkpoints and the optional final review remain separate.\n- **Blocking choices remain interactive.** The actor retains `ask_plan_question` and the Plan Mode instructions, waits for the user's selection, then resumes planning and can write the draft. Deterministic coverage proves no plan write, approval, or implementation occurs before the answer, and no follow-up inner model call runs while the question is waiting.\n- **Plans survive reloads without replanning.** Generated plans are stored as Pi custom entries outside LLM context and restored only for the exact user-turn key. This removes dependence on transient `advisorTurnPlans` state without adding cross-session memory.\n- **Parallel failures cannot hide behind later successes.** Checkpoint gating evaluates every result from the latest actor tool-call batch, independent of completion order, while later successful batches still supersede failures that were already reviewed.\n- **Plans and reviews require usable evidence.** Every explicit requirement maps to a finite criterion; current external facts must be verified before use, dependent operations stay sequential, and setup/deployment completion requires redacted effective-state evidence rather than health alone.\n\n### 0.5.1 live validation\n\n- **Real tool routing passed.** A fresh Fusion Fast run completed 9/9 representative calls across Serena, FFF, Munin, Brave/pi-web, and RTK. It used one plan plus the opt-in final review, and RTK rewriting appeared in the real tool event chain.\n- **Failure checkpoints corrected a real deployment fault.** During a separate Crawl4AI 0.9.2 setup, failed health checks triggered evidence-based checkpoints that identified its secure-by-default loopback binding. Final approval waited for direct health, PNG, PDF, and Pi-tool evidence; all seven pi-web tools then passed in that local environment.\n\nThese are environment-specific integration results. Pi MoA does not install or bundle Serena, FFF, Munin, pi-web, RTK, Firecrawl, Brave, or Crawl4AI.\n\n## Bundled actor tool core\n\nInstalling `pi-moa` now includes a Pi-MoA-aware subset of `pi-model-tools` for\nFusion and Fusion Fast. It detects the configured actor rather than the outer\n`pi-moa/Fusion*` model ID:\n\n- DeepSeek V4 actors receive first-tool/Serena guidance, semantic-miss steering,\n  shared safety guards, schema-shaped argument repair, recovery hints, and\n  `apply_patch` preference.\n- GLM actors receive the shared prompt-aware hints, argument repair, safety\n  guards, and recovery hints without DeepSeek-only steering.\n- Unsupported actor families cleanly disable the model-specific core. `/pi-moa`\n  reports the effective family for each preset.\n\n`apply_patch` is registered only when another extension has not already provided\nit. The bundled core does not override Pi's seven built-ins and does not include\n`pi-model-tools` reasoning cleanup, Super Power Mode, or automatic `edit` retry.\nInstall standalone `@bacnh85/pi-model-tools` only when direct, non-Pi-MoA\nDeepSeek/GLM sessions also need its full behavior; both packages may coexist.\n\nThe bundled core reuses these optional `pi-model-tools` settings:\n\n| Variable | Default | Purpose |\n|---|---:|---|\n| `PI_MODEL_TOOLS_REPAIR_ENABLED` | `1` | Repair schema-shaped actor tool arguments |\n| `PI_MODEL_TOOLS_SELECTION_GUIDANCE` | on | DeepSeek first-tool guidance |\n| `PI_MODEL_TOOLS_STRICT_SERENA` | off | Block simple bash substitutes for dedicated tools |\n| `PI_MODEL_TOOLS_AUTO_BLOCK_AFTER_REMINDERS` | `0` | Block repeated dedicated-tool misses after N reminders |\n| `PI_MODEL_TOOLS_BLOCK_DANGEROUS_COMMANDS` | `1` | Block destructive absolute-path commands |\n\n### Serena and FFF with Fusion\n\n`pi-serena` and `pi-fff` do not need source patches for Fusion. For persistent,\nupgrade-safe routing, launch Pi with their public settings:\n\n```bash\nPI_FFF_MODE=override PI_SERENA_REMIND_ON_FIRST_MISS=1 pi\n```\n\nFFF is model-agnostic; override mode makes generic `find` and `grep` use FFF\neven when the actor does not select `fffind` or `ffgrep`. Serena tools and\nSerena-first guidance are also model-agnostic, while Pi MoA applies its own\nDeepSeek behavior from the configured effective actor. Put these variables in a\nshell profile or Pi wrapper to retain them across launches; `/fff-mode override`\nonly changes the current process. Strict Serena mode remains opt-in because an\nactor that ignores blocked-call guidance can retry-loop.\n\nPi still reports `ctx.model` as `pi-moa/Fusion*`; Pi 0.82.1 has no delegated\n`effectiveModel` lifecycle API. The configured actor is exposed as the response\nmodel and in `/pi-moa` status, but changing generic extension lifecycle identity\nrequires upstream Pi support.\n\n## Install\n\n```bash\npi install npm:@duyviet1804/pi-moa\n```\n\nPinned version:\n\n```bash\npi install npm:@duyviet1804/pi-moa@0.5.3\n```\n\nFrom git or a local checkout:\n\n```bash\npi install git:github.com/duyviet1804/pi-moa\npi install ./path/to/pi-moa\n```\n\n## Authentication\n\n`Fusion` requires:\n\n- `opencode-go:glm-5.2`;\n- `opencode-go:kimi-k2.6`;\n- `opencode-go:deepseek-v4-flash`.\n\n`Fusion Fast` keeps the OpenCode Go-only default:\n\n- `opencode-go:glm-5.2`;\n- `opencode-go:deepseek-v4-flash`.\n\nRun `/login` in Pi and authenticate OpenCode Go, or use its supported environment variable:\n\n```bash\nexport OPENCODE_API_KEY=\"...\"\n```\n\nAuthenticate every provider referenced by the selected preset or a custom config. Never put credentials in MoA JSON or committed files. Z.AI (`zai`) models such as `zai:glm-5.2` may also be selected for any advisor or actor slot through `/pi-moa`; authenticate Z.AI via `/login` or its environment variable first.\n\n## Usage\n\n```bash\npi --provider pi-moa --model Fusion\npi --provider pi-moa --model \"Fusion Fast\" --thinking high\n```\n\nUse `Fusion Fast:high` for daily work. `Fusion` adds a second parallel planning advisor. `/pi-moa` selects the workflow, advisor/actor slots, reasoning budget, planning context, and optional brain-once final gate. Timeout/empty recovery remains `minimal`.\n\nAfter a successful iteration, Pi's footer shows `MoA <n> tok/s`: acting-model output divided by the complete advisor-plus-actor elapsed time for that iteration.\n\n### Change settings with `/pi-moa`\n\nIn Pi's TUI, run `/pi-moa`. Select `actor-first-reviewed` (Brain on Demand) or `brain-once`, choose authenticated `openai-codex`, `opencode-go`, and `zai` model slots, and set advisor reasoning. `turn`/`session` controls brain-once initial-plan scope only; actor-first rescue/final packets always use a fixed bounded task/evidence envelope. Use `Retry pending final review` or `/pi-moa retry-review` only after an unavailable final review.\n\nFor example, change both Fusion Fast slots:\n\n```text\n/pi-moa\n  Select: Change Fusion Fast advisor\n  Select: openai-codex:gpt-5.4-mini\n\n/pi-moa\n  Select: Change Fusion Fast advisor reasoning\n  Select: max\n\n/pi-moa\n  Select: Change Fusion Fast advisor context\n  Select: session\n\n/pi-moa\n  Select: Change Fusion Fast actor\n  Select: opencode-go:deepseek-v4-flash\n\n/reload\n```\n\nThe advisor menu can instead select `opencode-go:glm-5.2` or `zai:glm-5.2` when available. Changing advisor reasoning also updates `referenceMaxTokens` to the preset's matching budget. Fusion Fast selections are saved to `~/.pi/agent/moa-fast.json`; the corresponding Fusion actions save to `~/.pi/agent/moa.json`. Cancelling either menu writes nothing and leaves the existing configuration unchanged. Run `/reload` after model changes so picker metadata follows the configured actor.\n\nRPC, JSON, and print modes continue to show status immediately without opening a dialog.\n\n## Configuration\n\nEach model reads its own optional file:\n\n| Model | File |\n|---|---|\n| `Fusion` | `~/.pi/agent/moa.json` |\n| `Fusion Fast` | `~/.pi/agent/moa-fast.json` |\n\n`PI_CODING_AGENT_DIR` replaces `~/.pi/agent` when set. Missing files use built-in defaults; selecting a setting creates the corresponding file from those defaults. `/pi-moa` preserves untouched settings and only lists currently available/authenticated `opencode-go`, `openai-codex`, and `zai` models. Invalid files fail loudly and are never overwritten by the menu.\n\nStart from the shipped examples instead of copying defaults from this README. Both examples explicitly select `brain-once` with final review off; the Fast example uses GPT-5.4 Mini before the same DeepSeek V4 Flash actor.\n\n- [`pi-moa.example.json`](pi-moa.example.json)\n- [`pi-moa-fast.example.json`](pi-moa-fast.example.json)\n\n```bash\nmkdir -p ~/.pi/agent\ncp pi-moa.example.json ~/.pi/agent/moa.json\ncp pi-moa-fast.example.json ~/.pi/agent/moa-fast.json\n```\n\n| Field | Required | Meaning |\n|---|---:|---|\n| `referenceModels` | yes | Non-empty advisor model list; each entry needs `provider` and `model`. |\n| `aggregator` | yes | Acting model that retains normal Pi tools. It receives an approved/generated plan in brain-once, or acts directly in Brain on Demand. |\n| `referenceReasoning` | no | Advisor reasoning level: `high` (default) or `max`. Final review and recovery remain `minimal`. |\n| `advisorContextMode` | no | `turn` (default) or opt-in `session`; affects brain-once initial planning only and never controls advisor cadence. |\n| `advisorWorkflow` | no | `brain-once` (default) or strict `actor-first-reviewed`. Legacy files without this field also load as brain-once. |\n| `referenceTemperature` | yes | Advisor temperature when supported; omitted for `openai-codex`. |\n| `aggregatorTemperature` | yes | Acting-aggregator temperature when supported; omitted for `openai-codex`. |\n| `referenceMaxTokens` | yes | Per-advisor output limit; `/pi-moa` sets Fusion to 16k/32k and Fusion Fast to 8k/16k for `high`/`max`. |\n| `maxToolResultChars` | no | Per-tool-result truncation limit; default `6000`. |\n| `maxAdvisorContextChars` | no | Optional smaller serialized-input failsafe. `0` (default) uses the advisor model metadata automatically; positive values cap characters without bypassing the safe model budget. |\n| `finalGate` | no | `false` by default. Required `true` for `actor-first-reviewed`; brain-once may opt in. Final calls use `minimal` reasoning and at most 4096 output tokens. |\n\n### Advisor context and independent limits\n\nPi MoA uses the smallest configured advisor model's catalog `contextWindow` and Pi's conservative chars/4 estimate. It subtracts the stage's `referenceMaxTokens` reasoning/output allowance, the actual advisor system prompt, room for up to eight bounded read-only tool results, tool-schema overhead, and provider slack. `maxAdvisorContextChars: 0` uses that computed capacity; a positive value is only a smaller failsafe. The 180-second advisor deadline remains independent.\n\n| Advisor stage | `turn` | `session` |\n|---|---|---|\n| Plan without authoritative `pi-plan` | Latest user turn and its evidence | Bounded sanitized prior Pi context, then the latest turn |\n| Approved `pi-plan` execution | Actor executes the approved plan directly | Same as `turn`; no initial planning-advisor call |\n| Failure checkpoint (brain-once) | Retained plan plus latest-turn evidence | Same as `turn` |\n| Actor-first rescue/final | Fixed bounded current task, approved plan if any, candidate where relevant, and exact current-turn evidence | Same fixed packet; this setting does not apply |\n| Final review (brain-once) | Retained/approved plan, latest-turn evidence, and candidate answer | Same as `turn` |\n\nFor a brain-once same-session follow-up that needs older task context, select `session` under `/pi-moa`, keep automatic budgeting, and run `/reload`:\n\n```json\n{\n  \"advisorContextMode\": \"session\",\n  \"maxAdvisorContextChars\": 0\n}\n```\n\nLarger brain-once planning input can increase provider disclosure, prefill cost, latency, and timeout risk. Set a positive character value only when a smaller operational failsafe is needed. Session mode still omits assistant draft prose, hidden thinking, image bytes, and normal tool arguments; user text and bounded tool-result text may be sent. Actor-first review packets ignore this scope setting. The retired `initial`, `postTool`, `full`, and speculative `auto` scope values fail validation.\n\nAfter editing either file manually, run `/reload` so model-picker metadata follows the configured aggregator.\n\n## Upgrading\n\n### From 0.3.0\n\nValid 0.3.0-shaped configs need no field migration, but an override keeps the model slots it names. Remove it or start from the shipped examples to adopt the new defaults, then run `/reload`.\n\n0.5.3-brain-on-demand adds `advisorWorkflow`. Existing override files without it load as `brain-once`; an omitted legacy `finalGate` remains off. Saving through `/pi-moa` writes both fields explicitly. Switch to `actor-first-reviewed` only to opt into Brain on Demand's strict final review.\n\n### From 0.2.9 or older\n\nMigrate an override to the current fields shown in the shipped examples, or back up and remove `moa.json` / `moa-fast.json` to use built-in defaults. Retired and unknown fields are rejected without printing their values.\n\n## How it works\n\n### `actor-first-reviewed` — opt-in strict review\n\n1. Pi MoA binds the real user request to an immutable turn key and stores a bounded task envelope outside LLM context. A no-user continuation reuses that active turn; without a real/restored turn it fails locally with zero model calls.\n2. An approved `pi-plan` is loaded with workspace-containment checks and passed directly to the actor. Otherwise the actor begins from the user request and current tool evidence—there is no initial advisor.\n3. Successful batches continue actor-only. The first failed current-turn batch may invoke one read-only rescue using configured advisors in order; later slots run only when an earlier slot is unavailable. The rescue is marked consumed even when none succeeds.\n4. A terminal no-tool candidate stays private. Final reviewers run in configured order under one shared deadline and must return the exact JSON verdict/checks/issues contract. Malformed or unavailable output falls through; the first valid `APPROVE` or `REVISE` is authoritative.\n5. `APPROVE` releases the candidate. The first `REVISE` stores evidence-backed guidance and allows one actor correction plus one re-review, surviving tool calls and reloads. A second `REVISE` withholds. Exhausted availability stores the bounded sanitized packet and candidate locally for `/pi-moa retry-review`; retry never calls the actor or planner first.\n\n### `brain-once` — default\n\n1. Missing retained/approved plans invoke parallel planning advisors and pass their raw responses directly to the actor.\n2. The retained plan guides actor tool batches. Successful batches bypass advisors; a failed latest batch invokes the existing `PASS`/`REVISE` checkpoint.\n3. `finalGate:false` streams actor output as before. With the gate enabled, brain-once shares the same ordered structured final-review, persisted correction, and fail-closed retry machinery as actor-first.\n\nAdvisor stages appear in Pi's working row, with transient secret-redacted reasoning tails and partial Markdown while calls stream, then bounded local activity cards containing only final responses. Cache hits add no model usage. Diagnostics record workflow, stage, review attempt, correction count, fallback order/selected slot, safe digests, context budget/truncation/redaction counts, runtime/failure categories, and token usage—never task/candidate/context text, tool arguments, raw provider errors, credentials, or hidden reasoning. Explicit cancellation remains fail-closed.\n\n## Task guidance\n\nFor coding work, advisors and the acting model use generic task-derived checks:\n\n- derive acceptance criteria from the request and repository contract;\n- inspect relevant source, tests, and tool evidence;\n- prefer the smallest compatible existing or standard-library solution;\n- preserve API and data invariants;\n- consider failure, concurrency, mutation, and ordering only when relevant;\n- run requested tests plus one focused risk check, then stop.\n\nRuntime prompts intentionally contain no benchmark-specific expected fixes or hidden-test vocabulary.\n\n## Maintenance\n\n```bash\npi update npm:@duyviet1804/pi-moa\npi remove npm:@duyviet1804/pi-moa\n```\n\nIf configuration fails, fix the JSON or remove it to restore defaults:\n\n```bash\nrm ~/.pi/agent/moa.json ~/.pi/agent/moa-fast.json\n```\n\nIf a configured model is missing, inspect Pi's catalog:\n\n```bash\npi --list-models\n```\n\n## Package contents\n\n```text\npackage.json\nREADME.md\nCHANGELOG.md\nTHIRD_PARTY_NOTICES.md\nLICENSE\nextensions/pi-moa.ts\nsrc/moa-core.ts\nsrc/pi-moa-tools.ts\npi-moa.example.json\npi-moa-fast.example.json\nnode_modules/@bacnh85/pi-model-tools/ (bundled core helpers)\n```\n\nSee [`test/README.md`](test/README.md) for the capability-v3 benchmark, isolation boundary, metrics, and no-live gate.\n\n## Security\n\n- Inner-model credentials are resolved per request through Pi's model registry and never copied into prompts or diagnostics; advisor errors are reduced to stable categories before the actor sees them.\n- Wrapper-provider API keys, headers, and environment values are discarded; only credentials resolved for the selected inner model are forwarded.\n- Advisor contexts omit image bytes, hidden thinking, assistant draft text, and normal tool arguments. Opt-in session mode sends additional sanitized prior user/tool evidence to configured advisor providers only for plan stages without an authoritative plan.\n- Completed advisor display copies plus exact-turn plan state are stored in local Pi session history but remain outside normal session LLM context and diagnostics. They may repeat workspace content, so protect session files like other local development history.\n- Advisors may send content from any file they inspect inside the real workspace to their configured providers. Traversal, symlink escapes, missing targets, and unreadable targets are rejected without blocking the actor; advisors receive no write, shell, or network tools.\n- The npm allowlist excludes local config, authentication, sessions, and environment files.\n- Pi extensions run with local user permissions; install only trusted packages.\n\n## License\n\nMIT\n","readmeFilename":"README.md"}