{"_id":"@tranhoangnguyen0310/pi-flow-external","_rev":"42-759ec3899daeda05c253ef2b6a5029a8","name":"@tranhoangnguyen0310/pi-flow-external","dist-tags":{"latest":"3.2.0-external.0"},"versions":{"1.0.10-external.0":{"name":"@tranhoangnguyen0310/pi-flow-external","version":"1.0.10-external.0","keywords":["pi-package","pi-extension","subagent","workflow","multi-agent","codex","claude"],"license":"MIT","_id":"@tranhoangnguyen0310/pi-flow-external@1.0.10-external.0","maintainers":[{"name":"tranhoangnguyen0310","email":"tranhoangnguyen03@gmail.com"}],"homepage":"https://github.com/tranhoangnguyen03/pi-flow-external#readme","bugs":{"url":"https://github.com/tranhoangnguyen03/pi-flow-external/issues"},"pi":{"image":"https://raw.githubusercontent.com/tranhoangnguyen03/pi-flow-external/main/assets/subagents.png","extensions":["./index.ts"]},"dist":{"shasum":"44849559b79c66c0fd08d95fcaf659e9d9ffbf4d","tarball":"https://registry.npmjs.org/@tranhoangnguyen0310/pi-flow-external/-/pi-flow-external-1.0.10-external.0.tgz","fileCount":37,"integrity":"sha512-hrpJp9ubu+yow6CcHk1ebYAFnsUPab7VZtBRzu4ORO55A06EUYtDn1d4OaH9y3RZ598qX2ckwE1TEkM4PJgaqw==","signatures":[{"sig":"MEUCIEWFil09y8soW6skVSEINr0grRGjzMvthJTfJ6doGBMyAiEA/3Pr7SHzq9UmpNhHE9Qzc/yVvjikU2J7H/u/FMHxQBs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":517851},"main":"./index.ts","type":"module","engines":{"node":">=22.19.0"},"exports":"./index.ts","gitHead":"52cd57012de46b77d7959069bf90db14ac3a0b3b","scripts":{"e2e":"node scripts/e2e/main-agent-comparison.mjs","test":"vitest run","build":"tsc","check":"tsc --noEmit && vitest run","e2e:codex-subagent":"node scripts/e2e/codex-subagent.mjs","e2e:compare-claude":"node scripts/e2e/main-agent-comparison.mjs --with-claude","e2e:claude-subagent":"node scripts/e2e/claude-subagent.mjs","e2e:workflow-features":"node scripts/e2e/workflow-features.mjs"},"_npmUser":{"name":"tranhoangnguyen0310","email":"tranhoangnguyen03@gmail.com"},"repository":{"url":"git+https://github.com/tranhoangnguyen03/pi-flow-external.git","type":"git"},"_npmVersion":"11.11.0","description":"External Claude Code and Codex delegation for pi.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"acorn":"^8.17.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.2.4","typebox":"1.1.38","typescript":"^5.9.3","@types/node":"^24.12.4","@earendil-works/pi-ai":"0.79.4","@earendil-works/pi-tui":"0.79.4","@earendil-works/pi-agent-core":"0.79.4","@earendil-works/pi-coding-agent":"0.79.4"},"peerDependencies":{"typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-agent-core":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-flow-external_1.0.10-external.0_1782037321706_0.3875660522718778","host":"s3://npm-registry-packages-npm-production"}},"1.0.10-external.1":{"name":"@tranhoangnguyen0310/pi-flow-external","version":"1.0.10-external.1","keywords":["pi-package","pi-extension","subagent","workflow","multi-agent","codex","claude"],"license":"MIT","_id":"@tranhoangnguyen0310/pi-flow-external@1.0.10-external.1","maintainers":[{"name":"tranhoangnguyen0310","email":"tranhoangnguyen03@gmail.com"}],"homepage":"https://github.com/tranhoangnguyen03/pi-flow-external#readme","bugs":{"url":"https://github.com/tranhoangnguyen03/pi-flow-external/issues"},"pi":{"image":"https://raw.githubusercontent.com/tranhoangnguyen03/pi-flow-external/main/assets/subagents.png","extensions":["./index.ts"]},"dist":{"shasum":"bdbde20bcc94126c0674b890a71ec97700b93e2e","tarball":"https://registry.npmjs.org/@tranhoangnguyen0310/pi-flow-external/-/pi-flow-external-1.0.10-external.1.tgz","fileCount":38,"integrity":"sha512-G42evzWaeZDOiXgY7Jhm4bEQqHdSv8ygRqChjf64poFLdbT6nTyrVoWAY4eDdsdqNvPP4OOwu59LMRyq/8giPg==","signatures":[{"sig":"MEQCIGg4W7oxihn3l2r05ZKxJm83QSwv6873FWzbpkmp674OAiBtW//KbP7OZLYy3eDxgIO3LpggK9gEvo5HerIPIAQ4kg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":525555},"main":"./index.ts","type":"module","engines":{"node":">=22.19.0"},"exports":"./index.ts","gitHead":"157149ea456d52a6c7729d5ec34bbab8eb00b7fc","scripts":{"e2e":"node scripts/e2e/main-agent-comparison.mjs","test":"vitest run","build":"tsc","check":"tsc --noEmit && vitest run","e2e:codex-subagent":"node scripts/e2e/codex-subagent.mjs","e2e:compare-claude":"node scripts/e2e/main-agent-comparison.mjs --with-claude","e2e:claude-subagent":"node scripts/e2e/claude-subagent.mjs","e2e:workflow-features":"node scripts/e2e/workflow-features.mjs"},"_npmUser":{"name":"tranhoangnguyen0310","email":"tranhoangnguyen03@gmail.com"},"repository":{"url":"git+https://github.com/tranhoangnguyen03/pi-flow-external.git","type":"git"},"_npmVersion":"11.11.0","description":"External Claude Code and Codex delegation for pi.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"acorn":"^8.17.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.2.4","typebox":"1.1.38","typescript":"^5.9.3","@types/node":"^24.12.4","@earendil-works/pi-ai":"0.79.4","@earendil-works/pi-tui":"0.79.4","@earendil-works/pi-agent-core":"0.79.4","@earendil-works/pi-coding-agent":"0.79.4"},"peerDependencies":{"typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-agent-core":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-flow-external_1.0.10-external.1_1782038783812_0.022969277748733807","host":"s3://npm-registry-packages-npm-production"}},"1.0.10-external.2":{"name":"@tranhoangnguyen0310/pi-flow-external","version":"1.0.10-external.2","keywords":["pi-package","pi-extension","subagent","workflow","multi-agent","codex","claude","agy","antigravity"],"license":"MIT","_id":"@tranhoangnguyen0310/pi-flow-external@1.0.10-external.2","maintainers":[{"name":"tranhoangnguyen0310","email":"tranhoangnguyen03@gmail.com"}],"homepage":"https://github.com/tranhoangnguyen03/pi-flow-external#readme","bugs":{"url":"https://github.com/tranhoangnguyen03/pi-flow-external/issues"},"pi":{"image":"https://raw.githubusercontent.com/tranhoangnguyen03/pi-flow-external/main/assets/pi-flow.png","extensions":["./index.ts"]},"dist":{"shasum":"e7ac299e9271c59d489a7c29ca92e0e76db971fa","tarball":"https://registry.npmjs.org/@tranhoangnguyen0310/pi-flow-external/-/pi-flow-external-1.0.10-external.2.tgz","fileCount":38,"integrity":"sha512-3WZ65X9lH5EfEQh2qEFqB1jTmGqsJzgbUT1JScEJKlTgZZXh0uoBP4iG2aVFvPtg8C5PGrwfA/qDXLMGWj+GEw==","signatures":[{"sig":"MEUCIBkbWntsnMerjJuyBEJLeajZwjPtdaaNThjyH0x/VfxuAiEAvHIfEXqrZ2QWg/o2ApURCAxYOpNRQ38sgY5hcj2h4DQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":528572},"main":"./index.ts","type":"module","engines":{"node":">=22.19.0"},"exports":"./index.ts","gitHead":"5cc39a052fd135c7c4168dfe58cb84d6724c5f28","scripts":{"e2e":"node scripts/e2e/main-agent-comparison.mjs","test":"vitest run","build":"tsc","check":"tsc --noEmit && vitest run","e2e:codex-subagent":"node scripts/e2e/codex-subagent.mjs","e2e:compare-claude":"node scripts/e2e/main-agent-comparison.mjs --with-claude","e2e:claude-subagent":"node scripts/e2e/claude-subagent.mjs","e2e:workflow-features":"node scripts/e2e/workflow-features.mjs"},"_npmUser":{"name":"tranhoangnguyen0310","email":"tranhoangnguyen03@gmail.com"},"repository":{"url":"git+https://github.com/tranhoangnguyen03/pi-flow-external.git","type":"git"},"_npmVersion":"11.11.0","description":"External Claude Code, Codex CLI, and Antigravity delegation for pi.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"acorn":"^8.17.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.2.4","typebox":"1.1.38","typescript":"^5.9.3","@types/node":"^24.12.4","@earendil-works/pi-ai":"0.79.4","@earendil-works/pi-tui":"0.79.4","@earendil-works/pi-agent-core":"0.79.4","@earendil-works/pi-coding-agent":"0.79.4"},"peerDependencies":{"typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-agent-core":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-flow-external_1.0.10-external.2_1784195783852_0.6014792529170654","host":"s3://npm-registry-packages-npm-production"}},"1.0.10-external.3":{"name":"@tranhoangnguyen0310/pi-flow-external","version":"1.0.10-external.3","keywords":["pi-package","pi-extension","subagent","workflow","multi-agent","codex","claude","agy","antigravity"],"license":"MIT","_id":"@tranhoangnguyen0310/pi-flow-external@1.0.10-external.3","maintainers":[{"name":"tranhoangnguyen0310","email":"tranhoangnguyen03@gmail.com"}],"homepage":"https://github.com/tranhoangnguyen03/pi-flow-external#readme","bugs":{"url":"https://github.com/tranhoangnguyen03/pi-flow-external/issues"},"pi":{"image":"https://raw.githubusercontent.com/tranhoangnguyen03/pi-flow-external/main/assets/pi-flow.png","extensions":["./index.ts"]},"dist":{"shasum":"149b7f2568de7183f0237673e1776d055e0cd305","tarball":"https://registry.npmjs.org/@tranhoangnguyen0310/pi-flow-external/-/pi-flow-external-1.0.10-external.3.tgz","fileCount":39,"integrity":"sha512-tzD7YZgZatQHTEF7NhE+9uEO4Fb5rpipyKPxSnWpa3l9hK1eGU2kh7MhY3PzEzpF2w7SY67aUZYsGDuzz0kxLg==","signatures":[{"sig":"MEUCIQDWZ38QaUoE6OTrb0W25H82QyexxBwAXSi4Y2fW8QakYwIgSGkCeAYDik7FGNYRMLZlLEiJ5xMy8MihxlecTyMOoOo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":546737},"main":"./index.ts","type":"module","engines":{"node":">=22.19.0"},"exports":"./index.ts","gitHead":"0012eb531452a5ae3fe231090cbcf75c4025bd51","scripts":{"e2e":"node scripts/e2e/main-agent-comparison.mjs","test":"vitest run","build":"tsc","check":"tsc --noEmit && vitest run","e2e:codex-subagent":"node scripts/e2e/codex-subagent.mjs","e2e:compare-claude":"node scripts/e2e/main-agent-comparison.mjs --with-claude","e2e:claude-subagent":"node scripts/e2e/claude-subagent.mjs","e2e:workflow-features":"node scripts/e2e/workflow-features.mjs"},"_npmUser":{"name":"tranhoangnguyen0310","email":"tranhoangnguyen03@gmail.com"},"repository":{"url":"git+https://github.com/tranhoangnguyen03/pi-flow-external.git","type":"git"},"_npmVersion":"11.11.0","description":"External Claude Code, Codex CLI, and Antigravity delegation for pi.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"acorn":"^8.17.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.2.4","typebox":"1.1.38","typescript":"^5.9.3","@types/node":"^24.12.4","@earendil-works/pi-ai":"0.79.4","@earendil-works/pi-tui":"0.79.4","@earendil-works/pi-agent-core":"0.79.4","@earendil-works/pi-coding-agent":"0.79.4"},"peerDependencies":{"typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-agent-core":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-flow-external_1.0.10-external.3_1786090237712_0.17446152288907624","host":"s3://npm-registry-packages-npm-production"}},"1.0.10-external.4":{"name":"@tranhoangnguyen0310/pi-flow-external","version":"1.0.10-external.4","keywords":["pi-package","pi-extension","subagent","workflow","multi-agent","codex","claude","agy","antigravity"],"license":"MIT","_id":"@tranhoangnguyen0310/pi-flow-external@1.0.10-external.4","maintainers":[{"name":"tranhoangnguyen0310","email":"tranhoangnguyen03@gmail.com"}],"homepage":"https://github.com/tranhoangnguyen03/pi-flow-external#readme","bugs":{"url":"https://github.com/tranhoangnguyen03/pi-flow-external/issues"},"pi":{"image":"https://raw.githubusercontent.com/tranhoangnguyen03/pi-flow-external/main/assets/pi-flow.png","extensions":["./index.ts"]},"dist":{"shasum":"f9a5c935f694c3a6a1eb6247b347b2791b8e5f3f","tarball":"https://registry.npmjs.org/@tranhoangnguyen0310/pi-flow-external/-/pi-flow-external-1.0.10-external.4.tgz","fileCount":41,"integrity":"sha512-b0l4g6E1Pq+ux0FndIUoel4LZiFK+P0uoo9puYSgy2i36mntCBBbQwgyFe+LzKRbGKWOVVCqRAjQ9R8ZyAPLDg==","signatures":[{"sig":"MEYCIQD0PK0l6DbTDiqRU9DCNYpFfcANVnxqqJVX+k2eHCq+QAIhAIRgupxdJVr20fKjc8R4G/MeThbpO/gnSmLRN3aRLhst","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":583391},"main":"./index.ts","type":"module","engines":{"node":">=22.19.0"},"exports":"./index.ts","gitHead":"4d88995736f41b26df8d84777b9b5c1fe558d843","scripts":{"e2e":"node scripts/e2e/main-agent-comparison.mjs","test":"vitest run","build":"tsc","check":"tsc --noEmit && vitest run","field-report":"node scripts/field-report.mjs","e2e:codex-subagent":"node scripts/e2e/codex-subagent.mjs","e2e:compare-claude":"node scripts/e2e/main-agent-comparison.mjs --with-claude","e2e:claude-subagent":"node scripts/e2e/claude-subagent.mjs","e2e:workflow-features":"node scripts/e2e/workflow-features.mjs"},"_npmUser":{"name":"tranhoangnguyen0310","email":"tranhoangnguyen03@gmail.com"},"repository":{"url":"git+https://github.com/tranhoangnguyen03/pi-flow-external.git","type":"git"},"_npmVersion":"11.11.0","description":"External Claude Code, Codex CLI, and Antigravity delegation for pi.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"acorn":"^8.17.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.2.4","typebox":"1.1.38","typescript":"^5.9.3","@types/node":"^24.12.4","@earendil-works/pi-ai":"0.79.4","@earendil-works/pi-tui":"0.79.4","@earendil-works/pi-agent-core":"0.79.4","@earendil-works/pi-coding-agent":"0.79.4"},"peerDependencies":{"typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-agent-core":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-flow-external_1.0.10-external.4_1787336192392_0.5255818639553063","host":"s3://npm-registry-packages-npm-production"}},"1.0.10-external.5":{"name":"@tranhoangnguyen0310/pi-flow-external","version":"1.0.10-external.5","keywords":["pi-package","pi-extension","subagent","workflow","multi-agent","codex","claude","agy","antigravity"],"license":"MIT","_id":"@tranhoangnguyen0310/pi-flow-external@1.0.10-external.5","maintainers":[{"name":"tranhoangnguyen0310","email":"tranhoangnguyen03@gmail.com"}],"homepage":"https://github.com/tranhoangnguyen03/pi-flow-external#readme","bugs":{"url":"https://github.com/tranhoangnguyen03/pi-flow-external/issues"},"pi":{"image":"https://raw.githubusercontent.com/tranhoangnguyen03/pi-flow-external/main/assets/pi-flow.png","extensions":["./index.ts"]},"dist":{"shasum":"302ede4c5878231d2b0a69df1288a11137b82e68","tarball":"https://registry.npmjs.org/@tranhoangnguyen0310/pi-flow-external/-/pi-flow-external-1.0.10-external.5.tgz","fileCount":46,"integrity":"sha512-HBZyWoTgrKE1Ojne55ZjX7lBWUPxj5n1zFnwNz6BkJI8TSrvnCTqe2Lps5sE4q2/bGvVNqWW8gjixp7xxBe/vA==","signatures":[{"sig":"MEUCIQCENL6X9/0bGpKFJO+iRpKvtLduWkzKuRxx/l5QGZ3HWgIgc8rGWLvL0QTa5OJXWFFUrsbfIhx4mLVVYlPXyLVI8LE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":607340},"main":"./index.ts","type":"module","engines":{"node":">=22.19.0"},"exports":"./index.ts","gitHead":"23868c4dbce4e7207d6d6947ccc29408d07ec6f9","scripts":{"e2e":"node scripts/e2e/main-agent-comparison.mjs","test":"vitest run","build":"tsc","check":"tsc --noEmit && vitest run","field-report":"node scripts/field-report.mjs","e2e:codex-subagent":"node scripts/e2e/codex-subagent.mjs","e2e:compare-claude":"node scripts/e2e/main-agent-comparison.mjs --with-claude","e2e:claude-subagent":"node scripts/e2e/claude-subagent.mjs","e2e:workflow-features":"node scripts/e2e/workflow-features.mjs"},"_npmUser":{"name":"tranhoangnguyen0310","email":"tranhoangnguyen03@gmail.com"},"repository":{"url":"git+https://github.com/tranhoangnguyen03/pi-flow-external.git","type":"git"},"_npmVersion":"11.11.0","description":"External Claude Code, Codex CLI, and Antigravity delegation for pi.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"acorn":"^8.17.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.2.4","typebox":"1.1.38","typescript":"^5.9.3","@types/node":"^24.12.4","@earendil-works/pi-ai":"0.79.4","@earendil-works/pi-tui":"0.79.4","@earendil-works/pi-agent-core":"0.79.4","@earendil-works/pi-coding-agent":"0.79.4"},"peerDependencies":{"typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-agent-core":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-flow-external_1.0.10-external.5_1787338980290_0.9043448335208988","host":"s3://npm-registry-packages-npm-production"}},"1.1.0-external.0":{"name":"@tranhoangnguyen0310/pi-flow-external","version":"1.1.0-external.0","keywords":["pi-package","pi-extension","subagent","workflow","multi-agent","codex","claude","agy","antigravity"],"license":"MIT","_id":"@tranhoangnguyen0310/pi-flow-external@1.1.0-external.0","maintainers":[{"name":"tranhoangnguyen0310","email":"tranhoangnguyen03@gmail.com"}],"homepage":"https://github.com/tranhoangnguyen03/pi-flow-external#readme","bugs":{"url":"https://github.com/tranhoangnguyen03/pi-flow-external/issues"},"pi":{"image":"https://raw.githubusercontent.com/tranhoangnguyen03/pi-flow-external/main/assets/pi-flow.png","extensions":["./index.ts"]},"dist":{"shasum":"2c21f949735f6392f9fc30bde6e9f0e627bbd7f1","tarball":"https://registry.npmjs.org/@tranhoangnguyen0310/pi-flow-external/-/pi-flow-external-1.1.0-external.0.tgz","fileCount":42,"integrity":"sha512-NYcGCq2n5DcKlfxTFJT8D6T7mQl4+76f7ez48QMi3r0Fo+2z3jsQFE51bIWSvCUAJKxXWWkYVQbF/Mi6aR8DTg==","signatures":[{"sig":"MEUCIQDEkK9IOELsR57PBJhLu/37wHmIZiglAqiG9gCEuhooOgIgM7kY1wHgER7thcSd6CMS0Pf1IC7t9ymnQQPJf5SZOeo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":510303},"main":"./index.ts","type":"module","engines":{"node":">=22.19.0"},"exports":"./index.ts","gitHead":"85616d8bb2909e7f6c3025136140b2f8f83e0400","scripts":{"e2e":"node scripts/e2e/external.mjs","test":"vitest run","build":"tsc","check":"tsc --noEmit && vitest run","field-report":"node scripts/field-report.mjs"},"_npmUser":{"name":"tranhoangnguyen0310","email":"tranhoangnguyen03@gmail.com"},"repository":{"url":"git+https://github.com/tranhoangnguyen03/pi-flow-external.git","type":"git"},"_npmVersion":"11.11.0","description":"External Claude Code, Codex CLI, and Antigravity delegation for pi.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"acorn":"^8.17.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.2.4","typebox":"1.1.38","typescript":"^5.9.3","@types/node":"^24.12.4","@earendil-works/pi-ai":"0.79.4","@earendil-works/pi-tui":"0.79.4","@earendil-works/pi-agent-core":"0.79.4","@earendil-works/pi-coding-agent":"0.79.4"},"peerDependencies":{"typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-agent-core":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-flow-external_1.1.0-external.0_1787412667577_0.8522904689592694","host":"s3://npm-registry-packages-npm-production"}},"1.1.0-external.1":{"name":"@tranhoangnguyen0310/pi-flow-external","version":"1.1.0-external.1","keywords":["pi-package","pi-extension","subagent","workflow","multi-agent","codex","claude","agy","antigravity"],"license":"MIT","_id":"@tranhoangnguyen0310/pi-flow-external@1.1.0-external.1","maintainers":[{"name":"tranhoangnguyen0310","email":"tranhoangnguyen03@gmail.com"}],"homepage":"https://github.com/tranhoangnguyen03/pi-flow-external#readme","bugs":{"url":"https://github.com/tranhoangnguyen03/pi-flow-external/issues"},"pi":{"image":"https://raw.githubusercontent.com/tranhoangnguyen03/pi-flow-external/main/assets/pi-flow.png","extensions":["./index.ts"]},"dist":{"shasum":"0de3d6aeba1efae4acf494503d4cfff0840c6048","tarball":"https://registry.npmjs.org/@tranhoangnguyen0310/pi-flow-external/-/pi-flow-external-1.1.0-external.1.tgz","fileCount":42,"integrity":"sha512-g+4FNMIKW2tbydURnT8cPFqE3Av99N76G9dcmJvkXPI9iK8hzyb4LhPfidyjGSEZTFfOGkG0GGv+b5cpzQppEw==","signatures":[{"sig":"MEYCIQDRRP8IOiWbdig75TtcOBU5HHX8T684frj1xo9a6Nbh7QIhAJ1jeEEoST7di+a9FQU/KbQ15dcpMGYqdHHAG1WCHTin","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":504859},"main":"./index.ts","type":"module","engines":{"node":">=22.19.0"},"exports":"./index.ts","gitHead":"50f789f871f0e7aca95d50b2005a1a804f10f586","scripts":{"e2e":"node scripts/e2e/external.mjs","test":"vitest run","build":"tsc","check":"tsc --noEmit && vitest run","field-report":"node scripts/field-report.mjs"},"_npmUser":{"name":"tranhoangnguyen0310","email":"tranhoangnguyen03@gmail.com"},"repository":{"url":"git+https://github.com/tranhoangnguyen03/pi-flow-external.git","type":"git"},"_npmVersion":"11.11.0","description":"External Claude Code, Codex CLI, and Antigravity delegation for pi.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"acorn":"^8.17.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.2.4","typebox":"1.1.38","typescript":"^5.9.3","@types/node":"^24.12.4","@earendil-works/pi-ai":"0.79.4","@earendil-works/pi-tui":"0.79.4","@earendil-works/pi-agent-core":"0.79.4","@earendil-works/pi-coding-agent":"0.79.4"},"peerDependencies":{"typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-agent-core":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-flow-external_1.1.0-external.1_1787506215232_0.7364085436388113","host":"s3://npm-registry-packages-npm-production"}},"1.1.0-external.2":{"name":"@tranhoangnguyen0310/pi-flow-external","version":"1.1.0-external.2","keywords":["pi-package","pi-extension","subagent","workflow","multi-agent","codex","claude","agy","antigravity"],"license":"MIT","_id":"@tranhoangnguyen0310/pi-flow-external@1.1.0-external.2","maintainers":[{"name":"tranhoangnguyen0310","email":"tranhoangnguyen03@gmail.com"}],"homepage":"https://github.com/tranhoangnguyen03/pi-flow-external#readme","bugs":{"url":"https://github.com/tranhoangnguyen03/pi-flow-external/issues"},"pi":{"image":"https://raw.githubusercontent.com/tranhoangnguyen03/pi-flow-external/main/assets/pi-flow.png","extensions":["./index.ts"]},"dist":{"shasum":"42398a91c4160a998bac059ef2c16ebfb7b8d074","tarball":"https://registry.npmjs.org/@tranhoangnguyen0310/pi-flow-external/-/pi-flow-external-1.1.0-external.2.tgz","fileCount":43,"integrity":"sha512-GduPiG4Z0e8A6Ukt4YYkqJ7ptaZAJM2xS6JaoUKhdZjNv9owL9lJnjINW6224tBgddb6RIwd4q7ulcSPAzrHdA==","signatures":[{"sig":"MEYCIQCy9r6fnEuocm18I9bgcNyTSiQ59yRF9k8pNtd1szz9QQIhALLayQgf3S1LWbp1D4ZeQUoGAn7ogXl/dZJbKo+O3Jr7","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":510848},"main":"./index.ts","type":"module","engines":{"node":">=22.19.0"},"exports":"./index.ts","gitHead":"3306c776a3c55ef646b29a79bd65ffdef2b74d5a","scripts":{"e2e":"node scripts/e2e/external.mjs","test":"vitest run","build":"tsc","check":"tsc --noEmit && vitest run","field-report":"node scripts/field-report.mjs"},"_npmUser":{"name":"tranhoangnguyen0310","email":"tranhoangnguyen03@gmail.com"},"repository":{"url":"git+https://github.com/tranhoangnguyen03/pi-flow-external.git","type":"git"},"_npmVersion":"11.11.0","description":"External Claude Code, Codex CLI, and Antigravity delegation for pi.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"acorn":"^8.17.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.2.4","typebox":"1.1.38","typescript":"^5.9.3","@types/node":"^24.12.4","@earendil-works/pi-ai":"0.79.4","@earendil-works/pi-tui":"0.79.4","@earendil-works/pi-agent-core":"0.79.4","@earendil-works/pi-coding-agent":"0.79.4"},"peerDependencies":{"typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-agent-core":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-flow-external_1.1.0-external.2_1787567945389_0.8932665963478781","host":"s3://npm-registry-packages-npm-production"}},"1.1.0-external.3":{"name":"@tranhoangnguyen0310/pi-flow-external","version":"1.1.0-external.3","keywords":["pi-package","pi-extension","subagent","workflow","multi-agent","codex","claude","agy","antigravity"],"license":"MIT","_id":"@tranhoangnguyen0310/pi-flow-external@1.1.0-external.3","maintainers":[{"name":"tranhoangnguyen0310","email":"tranhoangnguyen03@gmail.com"}],"homepage":"https://github.com/tranhoangnguyen03/pi-flow-external#readme","bugs":{"url":"https://github.com/tranhoangnguyen03/pi-flow-external/issues"},"pi":{"image":"https://raw.githubusercontent.com/tranhoangnguyen03/pi-flow-external/main/assets/pi-flow.png","extensions":["./index.ts"]},"dist":{"shasum":"eb9df6e95dfb9ce1bb7e6e2f9460845597ed542a","tarball":"https://registry.npmjs.org/@tranhoangnguyen0310/pi-flow-external/-/pi-flow-external-1.1.0-external.3.tgz","fileCount":43,"integrity":"sha512-WHXbPXFB+LmIfPd4oILIY9RgAr5j6fgWYkBtreaNMspal0MPHgnPe0RHB1vOZ2FccFFn76rP2hMSKGtRncAIJA==","signatures":[{"sig":"MEUCIGaKab1qTQpbVroTfnrpoIbodJ/j0ZSxXmuPM+G0kdJjAiEAt8tQPJm/Olu//44gnlbKbyyarfcVB/F7nTeFAwPtvL0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":512017},"main":"./index.ts","type":"module","engines":{"node":">=22.19.0"},"exports":"./index.ts","gitHead":"23717916671ced7909bb8f9a7dd81cf1e857c12b","scripts":{"e2e":"node scripts/e2e/external.mjs","test":"vitest run","build":"tsc","check":"tsc --noEmit && vitest run","field-report":"node scripts/field-report.mjs"},"_npmUser":{"name":"tranhoangnguyen0310","email":"tranhoangnguyen03@gmail.com"},"repository":{"url":"git+https://github.com/tranhoangnguyen03/pi-flow-external.git","type":"git"},"_npmVersion":"11.11.0","description":"External Claude Code, Codex CLI, and Antigravity delegation for pi.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"acorn":"^8.17.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.2.4","typebox":"1.1.38","typescript":"^5.9.3","@types/node":"^24.12.4","@earendil-works/pi-ai":"0.79.4","@earendil-works/pi-tui":"0.79.4","@earendil-works/pi-agent-core":"0.79.4","@earendil-works/pi-coding-agent":"0.79.4"},"peerDependencies":{"typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-agent-core":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-flow-external_1.1.0-external.3_1787884628335_0.05230064216002339","host":"s3://npm-registry-packages-npm-production"}},"1.2.0-external.0":{"name":"@tranhoangnguyen0310/pi-flow-external","version":"1.2.0-external.0","keywords":["pi-package","pi-extension","subagent","workflow","multi-agent","codex","claude","agy","antigravity"],"license":"MIT","_id":"@tranhoangnguyen0310/pi-flow-external@1.2.0-external.0","maintainers":[{"name":"tranhoangnguyen0310","email":"tranhoangnguyen03@gmail.com"}],"homepage":"https://github.com/tranhoangnguyen03/pi-flow-external#readme","bugs":{"url":"https://github.com/tranhoangnguyen03/pi-flow-external/issues"},"pi":{"image":"https://raw.githubusercontent.com/tranhoangnguyen03/pi-flow-external/main/assets/pi-flow.png","extensions":["./index.ts"]},"dist":{"shasum":"d536c78ae357125ca29993c4997d6e8dc2b0fa65","tarball":"https://registry.npmjs.org/@tranhoangnguyen0310/pi-flow-external/-/pi-flow-external-1.2.0-external.0.tgz","fileCount":46,"integrity":"sha512-D+vxx8KFNumBv0dQ8s9cpTitzx8W0IDg55OfPg6qK/EqjYfoKL3bFEt8nYdHwhL//ccwi71TNdGHDjUoyA/rCQ==","signatures":[{"sig":"MEUCIAboTc9lkX1UoLpFirt4uFOGVb22DdDzj2a44VNpgJdKAiEA7a9JiAe/wcm+MMRnqS41lmDNZYE7oyspI9FENIUlNCk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":540184},"main":"./index.ts","type":"module","engines":{"node":">=22.19.0"},"exports":"./index.ts","gitHead":"2815f5fa22eead3f3b84508b1088eff08999c68d","scripts":{"e2e":"node scripts/e2e/external.mjs","test":"vitest run","build":"tsc","check":"tsc --noEmit && vitest run","field-report":"node scripts/field-report.mjs"},"_npmUser":{"name":"tranhoangnguyen0310","email":"tranhoangnguyen03@gmail.com"},"repository":{"url":"git+https://github.com/tranhoangnguyen03/pi-flow-external.git","type":"git"},"_npmVersion":"11.11.0","description":"External Claude Code, Codex CLI, and Antigravity delegation for pi.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"acorn":"^8.17.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.2.4","typebox":"1.1.38","typescript":"^5.9.3","@types/node":"^24.12.4","@earendil-works/pi-ai":"0.79.4","@earendil-works/pi-tui":"0.79.4","@earendil-works/pi-agent-core":"0.79.4","@earendil-works/pi-coding-agent":"0.79.4"},"peerDependencies":{"typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-agent-core":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-flow-external_1.2.0-external.0_1788027469972_0.2585776999021112","host":"s3://npm-registry-packages-npm-production"}},"1.3.0-external.0":{"name":"@tranhoangnguyen0310/pi-flow-external","version":"1.3.0-external.0","keywords":["pi-package","pi-extension","subagent","workflow","multi-agent","codex","claude","agy","antigravity"],"license":"MIT","_id":"@tranhoangnguyen0310/pi-flow-external@1.3.0-external.0","maintainers":[{"name":"tranhoangnguyen0310","email":"tranhoangnguyen03@gmail.com"}],"homepage":"https://github.com/tranhoangnguyen03/pi-flow-external#readme","bugs":{"url":"https://github.com/tranhoangnguyen03/pi-flow-external/issues"},"pi":{"image":"https://raw.githubusercontent.com/tranhoangnguyen03/pi-flow-external/main/assets/pi-flow.png","extensions":["./index.ts"]},"dist":{"shasum":"757a28623990d36fcb56a367dd0a8785e91b005f","tarball":"https://registry.npmjs.org/@tranhoangnguyen0310/pi-flow-external/-/pi-flow-external-1.3.0-external.0.tgz","fileCount":46,"integrity":"sha512-R90xBIGEo9j+r08xhWQ0p+fkpmao5gG2P5jyk79X/BgCI3sA4YuRdhMFmmxnaV6IXqE2WPavMyUGCVaSrpx5Ig==","signatures":[{"sig":"MEUCIQDWdGa4VwropQwAxFeNt0r68sXuKMveenL3ndFiZSbyyQIgNVAdMBWoCH3cRcpd7CjnZVbVIqGvvOQydKswrXxPpws=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":544307},"main":"./index.ts","type":"module","engines":{"node":">=22.19.0"},"exports":"./index.ts","gitHead":"fa9c74eb8999aadd01bd974127e7a8ca1c8e6f09","scripts":{"e2e":"node scripts/e2e/external.mjs","test":"vitest run","build":"tsc","check":"tsc --noEmit && vitest run","field-report":"node scripts/field-report.mjs"},"_npmUser":{"name":"tranhoangnguyen0310","email":"tranhoangnguyen03@gmail.com"},"repository":{"url":"git+https://github.com/tranhoangnguyen03/pi-flow-external.git","type":"git"},"_npmVersion":"11.11.0","description":"External Claude Code, Codex CLI, and Antigravity delegation for pi.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"acorn":"^8.17.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.2.4","typebox":"1.1.38","typescript":"^5.9.3","@types/node":"^24.12.4","@earendil-works/pi-ai":"0.79.4","@earendil-works/pi-tui":"0.79.4","@earendil-works/pi-agent-core":"0.79.4","@earendil-works/pi-coding-agent":"0.79.4"},"peerDependencies":{"typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-agent-core":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-flow-external_1.3.0-external.0_1788685704592_0.23086119935274918","host":"s3://npm-registry-packages-npm-production"}},"1.4.0-external.0":{"name":"@tranhoangnguyen0310/pi-flow-external","version":"1.4.0-external.0","keywords":["pi-package","pi-extension","subagent","workflow","multi-agent","codex","claude","agy","antigravity"],"license":"MIT","_id":"@tranhoangnguyen0310/pi-flow-external@1.4.0-external.0","maintainers":[{"name":"tranhoangnguyen0310","email":"tranhoangnguyen03@gmail.com"}],"homepage":"https://github.com/tranhoangnguyen03/pi-flow-external#readme","bugs":{"url":"https://github.com/tranhoangnguyen03/pi-flow-external/issues"},"pi":{"image":"https://raw.githubusercontent.com/tranhoangnguyen03/pi-flow-external/main/assets/pi-flow.png","extensions":["./index.ts"]},"dist":{"shasum":"bf43dbf9f5b3b43c46c7cf6b456af7f3698709a2","tarball":"https://registry.npmjs.org/@tranhoangnguyen0310/pi-flow-external/-/pi-flow-external-1.4.0-external.0.tgz","fileCount":46,"integrity":"sha512-WhEEhTfkQ3Z0DRf4lql0s9nOBq86cWChCPtghtS0ixbA1B5baxvLPZm5q2+6Y8/y3UbMgpYV/Vl24e+zg5LX0A==","signatures":[{"sig":"MEYCIQD5Y9a2l5cL3I7FM6q23KcZkLoeyNAoZZxz2t19nJ5A4gIhAP+swdK9MbcnxMdixFz4Cni9ngO7Xgees5LK07l30Upx","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":546007},"main":"./index.ts","type":"module","engines":{"node":">=22.19.0"},"exports":"./index.ts","gitHead":"af853a0a0331f10df4a11a396d0a9bc83b0e4a76","scripts":{"e2e":"node scripts/e2e/external.mjs","test":"vitest run","build":"tsc","check":"tsc --noEmit && vitest run","field-report":"node scripts/field-report.mjs"},"_npmUser":{"name":"tranhoangnguyen0310","email":"tranhoangnguyen03@gmail.com"},"repository":{"url":"git+https://github.com/tranhoangnguyen03/pi-flow-external.git","type":"git"},"_npmVersion":"11.11.0","description":"External Claude Code, Codex CLI, and Antigravity delegation for pi.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"acorn":"^8.17.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.2.4","typebox":"1.1.38","typescript":"^5.9.3","@types/node":"^24.12.4","@earendil-works/pi-ai":"0.79.4","@earendil-works/pi-tui":"0.79.4","@earendil-works/pi-agent-core":"0.79.4","@earendil-works/pi-coding-agent":"0.79.4"},"peerDependencies":{"typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-agent-core":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-flow-external_1.4.0-external.0_1788704302105_0.4722620667759678","host":"s3://npm-registry-packages-npm-production"}},"1.5.0-external.0":{"name":"@tranhoangnguyen0310/pi-flow-external","version":"1.5.0-external.0","keywords":["pi-package","pi-extension","subagent","workflow","multi-agent","codex","claude","agy","antigravity"],"license":"MIT","_id":"@tranhoangnguyen0310/pi-flow-external@1.5.0-external.0","maintainers":[{"name":"tranhoangnguyen0310","email":"tranhoangnguyen03@gmail.com"}],"homepage":"https://github.com/tranhoangnguyen03/pi-flow-external#readme","bugs":{"url":"https://github.com/tranhoangnguyen03/pi-flow-external/issues"},"pi":{"image":"https://raw.githubusercontent.com/tranhoangnguyen03/pi-flow-external/main/assets/pi-flow.png","extensions":["./index.ts"]},"dist":{"shasum":"792271aac13b0f4ff7836562e2cd8ab719ec1b66","tarball":"https://registry.npmjs.org/@tranhoangnguyen0310/pi-flow-external/-/pi-flow-external-1.5.0-external.0.tgz","fileCount":46,"integrity":"sha512-9pWZHfpS1qVBmXr5N3K5KraFdeefKSriiV5scsFlue8XIG0E67CYoQuuAzXB1HbWDuWT1A+TVtuf9ewM+52xHA==","signatures":[{"sig":"MEUCIQCXM0Rf2jq5BPJHxNZJvnQjbmHlwTpxoj2n3MeIRIYTDAIgEfqMhs0G8/Hs+Qqh1FbpWFJayAvH9n2GAeCjXXH5gKE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":551986},"main":"./index.ts","type":"module","engines":{"node":">=22.19.0"},"exports":"./index.ts","gitHead":"62eb292b45395e63c806f30b1f4b328470725584","scripts":{"e2e":"node scripts/e2e/external.mjs","test":"vitest run","build":"tsc","check":"tsc --noEmit && vitest run","field-report":"node scripts/field-report.mjs"},"_npmUser":{"name":"tranhoangnguyen0310","email":"tranhoangnguyen03@gmail.com"},"repository":{"url":"git+https://github.com/tranhoangnguyen03/pi-flow-external.git","type":"git"},"_npmVersion":"11.11.0","description":"External Claude Code, Codex CLI, and Antigravity delegation for pi.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"acorn":"^8.17.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.2.4","typebox":"1.1.38","typescript":"^5.9.3","@types/node":"^24.12.4","@earendil-works/pi-ai":"0.79.4","@earendil-works/pi-tui":"0.79.4","@earendil-works/pi-agent-core":"0.79.4","@earendil-works/pi-coding-agent":"0.79.4"},"peerDependencies":{"typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-agent-core":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-flow-external_1.5.0-external.0_1788714121932_0.36013345914994876","host":"s3://npm-registry-packages-npm-production"}},"1.6.0-external.0":{"name":"@tranhoangnguyen0310/pi-flow-external","version":"1.6.0-external.0","keywords":["pi-package","pi-extension","subagent","workflow","multi-agent","codex","claude","agy","antigravity"],"license":"MIT","_id":"@tranhoangnguyen0310/pi-flow-external@1.6.0-external.0","maintainers":[{"name":"tranhoangnguyen0310","email":"tranhoangnguyen03@gmail.com"}],"homepage":"https://github.com/tranhoangnguyen03/pi-flow-external#readme","bugs":{"url":"https://github.com/tranhoangnguyen03/pi-flow-external/issues"},"pi":{"image":"https://raw.githubusercontent.com/tranhoangnguyen03/pi-flow-external/main/assets/pi-flow.png","extensions":["./index.ts"]},"dist":{"shasum":"6e7a1e7d20fcddbdfbfcfbcd60762ba26b9ef491","tarball":"https://registry.npmjs.org/@tranhoangnguyen0310/pi-flow-external/-/pi-flow-external-1.6.0-external.0.tgz","fileCount":46,"integrity":"sha512-VBbC1JxMWx65PCr8kyTnBoMNlUPmcMXdykn4jCe1VvZXeHRrfdRq8PUIdI3r6b/7UQaY9Ei7oY3RZtC2xznatQ==","signatures":[{"sig":"MEQCIG7iAiYSKAWwmAYKwaC2XrnHBjyfzge/pYuFSFFzWTWKAiA5DYYSb4/dhfyAvmkseOrAblO2fM+jmPTFTZbs2vJqjw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":554969},"main":"./index.ts","type":"module","engines":{"node":">=22.19.0"},"exports":"./index.ts","gitHead":"2c4337a4b7d54bc6a7e0f05c83099ed153da4f32","scripts":{"e2e":"node scripts/e2e/external.mjs","test":"vitest run","build":"tsc","check":"tsc --noEmit && vitest run","field-report":"node scripts/field-report.mjs"},"_npmUser":{"name":"tranhoangnguyen0310","email":"tranhoangnguyen03@gmail.com"},"repository":{"url":"git+https://github.com/tranhoangnguyen03/pi-flow-external.git","type":"git"},"_npmVersion":"11.11.0","description":"External Claude Code, Codex CLI, and Antigravity delegation for pi.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"acorn":"^8.17.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.2.4","typebox":"1.1.38","typescript":"^5.9.3","@types/node":"^24.12.4","@earendil-works/pi-ai":"0.79.4","@earendil-works/pi-tui":"0.79.4","@earendil-works/pi-agent-core":"0.79.4","@earendil-works/pi-coding-agent":"0.79.4"},"peerDependencies":{"typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-agent-core":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-flow-external_1.6.0-external.0_1788774594613_0.33756704793136505","host":"s3://npm-registry-packages-npm-production"}},"1.7.0-external.0":{"name":"@tranhoangnguyen0310/pi-flow-external","version":"1.7.0-external.0","keywords":["pi-package","pi-extension","subagent","workflow","multi-agent","codex","claude","agy","antigravity"],"license":"MIT","_id":"@tranhoangnguyen0310/pi-flow-external@1.7.0-external.0","maintainers":[{"name":"tranhoangnguyen0310","email":"tranhoangnguyen03@gmail.com"}],"homepage":"https://github.com/tranhoangnguyen03/pi-flow-external#readme","bugs":{"url":"https://github.com/tranhoangnguyen03/pi-flow-external/issues"},"pi":{"image":"https://raw.githubusercontent.com/tranhoangnguyen03/pi-flow-external/main/assets/pi-flow.png","extensions":["./index.ts"]},"dist":{"shasum":"a28e3ec9b65f27a8fa9704d9df3500af91a80261","tarball":"https://registry.npmjs.org/@tranhoangnguyen0310/pi-flow-external/-/pi-flow-external-1.7.0-external.0.tgz","fileCount":47,"integrity":"sha512-nL8kiqL6RMDD49c6iuogMfh6GwVrh90QOTK71ZsDfVR0Yeb7i3/nQYy95L0PhGUNbzdIC9x7CRMXT5VPe9oIhg==","signatures":[{"sig":"MEUCIDqIxJT/xqWk1vBH1CZ4jkH8IytvH2ocXL3PQzYIL6zDAiEAoKoZdiOtsGgisAl0FqmjLFvUBp7Z7FgPgKm7dgJOkZo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":565419},"main":"./index.ts","type":"module","engines":{"node":">=22.19.0"},"exports":"./index.ts","gitHead":"0ba643d562c5845d968a1cdab57d0f61245b27d5","scripts":{"e2e":"node scripts/e2e/external.mjs","test":"vitest run","build":"tsc","check":"tsc --noEmit && vitest run","field-report":"node scripts/field-report.mjs"},"_npmUser":{"name":"tranhoangnguyen0310","email":"tranhoangnguyen03@gmail.com"},"repository":{"url":"git+https://github.com/tranhoangnguyen03/pi-flow-external.git","type":"git"},"_npmVersion":"11.11.0","description":"External Claude Code, Codex CLI, and Antigravity delegation for pi.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"acorn":"^8.17.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.2.4","typebox":"1.1.38","typescript":"^5.9.3","@types/node":"^24.12.4","@earendil-works/pi-ai":"0.79.4","@earendil-works/pi-tui":"0.79.4","@earendil-works/pi-agent-core":"0.79.4","@earendil-works/pi-coding-agent":"0.79.4"},"peerDependencies":{"typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-agent-core":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-flow-external_1.7.0-external.0_1788793408798_0.8082474052497164","host":"s3://npm-registry-packages-npm-production"}},"1.7.0-external.1":{"name":"@tranhoangnguyen0310/pi-flow-external","version":"1.7.0-external.1","keywords":["pi-package","pi-extension","subagent","workflow","multi-agent","codex","claude","agy","antigravity"],"license":"MIT","_id":"@tranhoangnguyen0310/pi-flow-external@1.7.0-external.1","maintainers":[{"name":"tranhoangnguyen0310","email":"tranhoangnguyen03@gmail.com"}],"homepage":"https://github.com/tranhoangnguyen03/pi-flow-external#readme","bugs":{"url":"https://github.com/tranhoangnguyen03/pi-flow-external/issues"},"pi":{"image":"https://raw.githubusercontent.com/tranhoangnguyen03/pi-flow-external/main/assets/pi-flow.png","extensions":["./index.ts"]},"dist":{"shasum":"c8acc7cb3e8913da99f919a96cc1daa75d7ebfc6","tarball":"https://registry.npmjs.org/@tranhoangnguyen0310/pi-flow-external/-/pi-flow-external-1.7.0-external.1.tgz","fileCount":47,"integrity":"sha512-2hA5B6JIVlwLbGFtSUXcX8Noo1ayR90TOmxZQzB2vVwCpXDBV+h6RzPbiKrIGZcP/bZt6F7TlOMlxEQj9N+DJw==","signatures":[{"sig":"MEUCIQDKqvTyO7+vGVg/OGDjd9i5IN4f3c3iupni5LZh8USerAIgdP75f7I6ko4ViRgeWhEABpRzYX2Rzaymky0rlsILqk4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":568778},"main":"./index.ts","type":"module","engines":{"node":">=22.19.0"},"exports":"./index.ts","gitHead":"9103342eb099db3427a1e030f5dc1d2cc3a099c8","scripts":{"e2e":"node scripts/e2e/external.mjs","test":"vitest run","build":"tsc","check":"tsc --noEmit && vitest run","field-report":"node scripts/field-report.mjs"},"_npmUser":{"name":"tranhoangnguyen0310","email":"tranhoangnguyen03@gmail.com"},"repository":{"url":"git+https://github.com/tranhoangnguyen03/pi-flow-external.git","type":"git"},"_npmVersion":"11.11.0","description":"External Claude Code, Codex CLI, and Antigravity delegation for pi.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"acorn":"^8.17.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.2.4","typebox":"1.1.38","typescript":"^5.9.3","@types/node":"^24.12.4","@earendil-works/pi-ai":"0.79.4","@earendil-works/pi-tui":"0.79.4","@earendil-works/pi-agent-core":"0.79.4","@earendil-works/pi-coding-agent":"0.79.4"},"peerDependencies":{"typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-agent-core":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-flow-external_1.7.0-external.1_1788794881666_0.5315808989704307","host":"s3://npm-registry-packages-npm-production"}},"1.8.0-external.0":{"name":"@tranhoangnguyen0310/pi-flow-external","version":"1.8.0-external.0","keywords":["pi-package","pi-extension","subagent","workflow","multi-agent","codex","claude","agy","antigravity"],"license":"MIT","_id":"@tranhoangnguyen0310/pi-flow-external@1.8.0-external.0","maintainers":[{"name":"tranhoangnguyen0310","email":"tranhoangnguyen03@gmail.com"}],"homepage":"https://github.com/tranhoangnguyen03/pi-flow-external#readme","bugs":{"url":"https://github.com/tranhoangnguyen03/pi-flow-external/issues"},"pi":{"image":"https://raw.githubusercontent.com/tranhoangnguyen03/pi-flow-external/main/assets/pi-flow.png","extensions":["./index.ts"]},"dist":{"shasum":"f3449161cadbe05b0ad5b2f15de9a9c9fcf541a7","tarball":"https://registry.npmjs.org/@tranhoangnguyen0310/pi-flow-external/-/pi-flow-external-1.8.0-external.0.tgz","fileCount":48,"integrity":"sha512-/txfF/JNvMqlb6NlLWfe0IdpVkfQdSjPWMI2v/ibFrTz4rV9+z9DmFqyg86d4JqrSpekzhqpTTdC+bql2YBDTA==","signatures":[{"sig":"MEYCIQD4/ZFANiG5wrnqbx6Ujvmfzw57dPTXfLx67DyxKPNqSQIhAOjDFnj20yl9PeMzYlplFXScTFwUKWJ27RUEKPLtONvQ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":585149},"main":"./index.ts","type":"module","engines":{"node":">=22.19.0"},"exports":"./index.ts","gitHead":"f460f08d0bb16d4c88fe953f02ccbedee7a339c4","scripts":{"e2e":"node scripts/e2e/external.mjs","test":"vitest run","build":"tsc","check":"tsc --noEmit && vitest run","field-report":"node scripts/field-report.mjs"},"_npmUser":{"name":"tranhoangnguyen0310","email":"tranhoangnguyen03@gmail.com"},"repository":{"url":"git+https://github.com/tranhoangnguyen03/pi-flow-external.git","type":"git"},"_npmVersion":"11.11.0","description":"External Claude Code, Codex CLI, and Antigravity delegation for pi.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"acorn":"^8.17.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.2.4","typebox":"1.1.38","typescript":"^5.9.3","@types/node":"^24.12.4","@earendil-works/pi-ai":"0.79.4","@earendil-works/pi-tui":"0.79.4","@earendil-works/pi-agent-core":"0.79.4","@earendil-works/pi-coding-agent":"0.79.4"},"peerDependencies":{"typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-agent-core":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-flow-external_1.8.0-external.0_1788855676030_0.10044502437148872","host":"s3://npm-registry-packages-npm-production"}},"1.8.0-external.1":{"name":"@tranhoangnguyen0310/pi-flow-external","version":"1.8.0-external.1","keywords":["pi-package","pi-extension","subagent","workflow","multi-agent","codex","claude","agy","antigravity"],"license":"MIT","_id":"@tranhoangnguyen0310/pi-flow-external@1.8.0-external.1","maintainers":[{"name":"tranhoangnguyen0310","email":"tranhoangnguyen03@gmail.com"}],"homepage":"https://github.com/tranhoangnguyen03/pi-flow-external#readme","bugs":{"url":"https://github.com/tranhoangnguyen03/pi-flow-external/issues"},"pi":{"image":"https://raw.githubusercontent.com/tranhoangnguyen03/pi-flow-external/main/assets/pi-flow.png","extensions":["./index.ts"]},"dist":{"shasum":"a845880b83c2bdfec2642a3f720d30db1e14c535","tarball":"https://registry.npmjs.org/@tranhoangnguyen0310/pi-flow-external/-/pi-flow-external-1.8.0-external.1.tgz","fileCount":48,"integrity":"sha512-G+/SEVKuS4aeseMyW2EUD48C1ZyWqE1egZS31MMAjY2k4k8ouM93EyU8/kH/QE6ceBov5crBQ3Hwn2d7kuBFjw==","signatures":[{"sig":"MEUCIQC1YlB5e1mwihzjhdb2DWTZ38PGz6890uCTAshKPg6z2wIgSO5hk4WaS3MBv/4eJxlYG2uR5SOkcpeKJ4Qzl5YGEWI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":586337},"main":"./index.ts","type":"module","engines":{"node":">=22.19.0"},"exports":"./index.ts","gitHead":"f06c280f9b22ed4e3e6bad9a42e42fd2b17c9392","scripts":{"e2e":"node scripts/e2e/external.mjs","test":"vitest run","build":"tsc","check":"tsc --noEmit && vitest run","field-report":"node scripts/field-report.mjs"},"_npmUser":{"name":"tranhoangnguyen0310","email":"tranhoangnguyen03@gmail.com"},"repository":{"url":"git+https://github.com/tranhoangnguyen03/pi-flow-external.git","type":"git"},"_npmVersion":"11.11.0","description":"External Claude Code, Codex CLI, and Antigravity delegation for pi.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"acorn":"^8.17.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.2.4","typebox":"1.1.38","typescript":"^5.9.3","@types/node":"^24.12.4","@earendil-works/pi-ai":"0.79.4","@earendil-works/pi-tui":"0.79.4","@earendil-works/pi-agent-core":"0.79.4","@earendil-works/pi-coding-agent":"0.79.4"},"peerDependencies":{"typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-agent-core":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-flow-external_1.8.0-external.1_1788883832447_0.31786594567868565","host":"s3://npm-registry-packages-npm-production"}},"1.9.0-external.0":{"name":"@tranhoangnguyen0310/pi-flow-external","version":"1.9.0-external.0","keywords":["pi-package","pi-extension","subagent","workflow","multi-agent","codex","claude","agy","antigravity"],"license":"MIT","_id":"@tranhoangnguyen0310/pi-flow-external@1.9.0-external.0","maintainers":[{"name":"tranhoangnguyen0310","email":"tranhoangnguyen03@gmail.com"}],"homepage":"https://github.com/tranhoangnguyen03/pi-flow-external#readme","bugs":{"url":"https://github.com/tranhoangnguyen03/pi-flow-external/issues"},"pi":{"image":"https://raw.githubusercontent.com/tranhoangnguyen03/pi-flow-external/main/assets/pi-flow.png","extensions":["./index.ts"]},"dist":{"shasum":"98e87dabb3c419be4ed293011802ce7279c02f3a","tarball":"https://registry.npmjs.org/@tranhoangnguyen0310/pi-flow-external/-/pi-flow-external-1.9.0-external.0.tgz","fileCount":49,"integrity":"sha512-+QRyBx0QHUY0812863VMOgCk4Mb/qm344PsIuwwsnetfIoIzkFrCeuxTH7fJbjyjAe2Egf5HkYa3pepldJoGXw==","signatures":[{"sig":"MEYCIQCVVia9y6/Sv+7w4/QoeRI1egiTW2wSQ+oc2Dgolv9TsgIhAOya9RsoicVTGiVqwG1Uvvm2+yBxDlJQ732GjqUL2hdO","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":606436},"main":"./index.ts","type":"module","engines":{"node":">=22.19.0"},"exports":"./index.ts","gitHead":"52662b58f338d6a4a59dd022930fee54013fa108","scripts":{"e2e":"node scripts/e2e/external.mjs","test":"vitest run","build":"tsc","check":"tsc --noEmit && vitest run","field-report":"node scripts/field-report.mjs"},"_npmUser":{"name":"tranhoangnguyen0310","email":"tranhoangnguyen03@gmail.com"},"repository":{"url":"git+https://github.com/tranhoangnguyen03/pi-flow-external.git","type":"git"},"_npmVersion":"11.11.0","description":"External Claude Code, Codex CLI, and Antigravity delegation for pi.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"acorn":"^8.17.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.2.4","typebox":"1.1.38","typescript":"^5.9.3","@types/node":"^24.12.4","@earendil-works/pi-ai":"0.79.4","@earendil-works/pi-tui":"0.79.4","@earendil-works/pi-agent-core":"0.79.4","@earendil-works/pi-coding-agent":"0.79.4"},"peerDependencies":{"typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-agent-core":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-flow-external_1.9.0-external.0_1788889602663_0.5460299687912129","host":"s3://npm-registry-packages-npm-production"}},"1.10.0-external.0":{"name":"@tranhoangnguyen0310/pi-flow-external","version":"1.10.0-external.0","keywords":["pi-package","pi-extension","subagent","workflow","multi-agent","codex","claude","agy","antigravity"],"license":"MIT","_id":"@tranhoangnguyen0310/pi-flow-external@1.10.0-external.0","maintainers":[{"name":"tranhoangnguyen0310","email":"tranhoangnguyen03@gmail.com"}],"homepage":"https://github.com/tranhoangnguyen03/pi-flow-external#readme","bugs":{"url":"https://github.com/tranhoangnguyen03/pi-flow-external/issues"},"pi":{"image":"https://raw.githubusercontent.com/tranhoangnguyen03/pi-flow-external/main/assets/pi-flow.png","extensions":["./index.ts"]},"dist":{"shasum":"f383c663b54239570bd0a443fac28156d9c84708","tarball":"https://registry.npmjs.org/@tranhoangnguyen0310/pi-flow-external/-/pi-flow-external-1.10.0-external.0.tgz","fileCount":49,"integrity":"sha512-f9RiDbJb8dfmTimqYNoFX+0OzWTddiFjkdSpIUoe3aYEOvrulShRyfgKCXZc451mjgeqjp0VG84jc14I8ZERmw==","signatures":[{"sig":"MEQCIEwn7bl51GBc7dgLPTbvSh+0XjwpldjvK7skEjPRJWveAiBcU9aAjotl4bGcS/+KUdteQou4GvFXoGl44bEsVF/fBg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":617680},"main":"./index.ts","type":"module","engines":{"node":">=22.19.0"},"exports":"./index.ts","gitHead":"5317fc14dc30020c1776225f20fc7ef24dbb13ec","scripts":{"e2e":"node scripts/e2e/external.mjs","test":"vitest run","build":"tsc","check":"tsc --noEmit && vitest run","field-report":"node scripts/field-report.mjs"},"_npmUser":{"name":"tranhoangnguyen0310","email":"tranhoangnguyen03@gmail.com"},"repository":{"url":"git+https://github.com/tranhoangnguyen03/pi-flow-external.git","type":"git"},"_npmVersion":"11.11.0","description":"External Claude Code, Codex CLI, and Antigravity delegation for pi.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"acorn":"^8.17.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.2.4","typebox":"1.1.38","typescript":"^5.9.3","@types/node":"^24.12.4","@earendil-works/pi-ai":"0.79.4","@earendil-works/pi-tui":"0.79.4","@earendil-works/pi-agent-core":"0.79.4","@earendil-works/pi-coding-agent":"0.79.4"},"peerDependencies":{"typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-agent-core":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-flow-external_1.10.0-external.0_1789210136598_0.9747232383332649","host":"s3://npm-registry-packages-npm-production"}},"2.0.0-external.0":{"name":"@tranhoangnguyen0310/pi-flow-external","version":"2.0.0-external.0","keywords":["pi-package","pi-extension","subagent","workflow","multi-agent","codex","claude","agy","antigravity"],"license":"MIT","_id":"@tranhoangnguyen0310/pi-flow-external@2.0.0-external.0","maintainers":[{"name":"tranhoangnguyen0310","email":"tranhoangnguyen03@gmail.com"}],"homepage":"https://github.com/tranhoangnguyen03/pi-flow-external#readme","bugs":{"url":"https://github.com/tranhoangnguyen03/pi-flow-external/issues"},"pi":{"image":"https://raw.githubusercontent.com/tranhoangnguyen03/pi-flow-external/main/assets/pi-flow.png","extensions":["./index.ts"]},"dist":{"shasum":"483879c529c8e1bab9311975342adef4bd5f18ed","tarball":"https://registry.npmjs.org/@tranhoangnguyen0310/pi-flow-external/-/pi-flow-external-2.0.0-external.0.tgz","fileCount":53,"integrity":"sha512-A9/tE3kKXeCg5XmqC47l726V58fgnT6faaQ1MIgEFKRkEDEMYmusSkx456VWws3EtQykyOZugIkWOVvS87gO0w==","signatures":[{"sig":"MEUCIQD4NEvI1qm8KC9NXwKMxZ7Er2amC9PYFsMHi4RAX5DflwIgHtKx+CUwAUBYovVyPZDUdyMIdOUTtKSRUj81xRk8N4g=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIGh1Z5U7HGxSNKcKT5I0gSHrLByquM6Cm7E9PvbfK4VRAiEAs0E2rvzDLPMeku4TlOWRqCaNJMLt+eaLhVPYc981Dy8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@tranhoangnguyen0310%2fpi-flow-external@2.0.0-external.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":735119},"main":"./index.ts","type":"module","engines":{"node":">=22.19.0"},"exports":"./index.ts","gitHead":"45151fb6001f06a7c7a07f196bebb77cce57ed8d","scripts":{"e2e":"node scripts/e2e/external.mjs","test":"vitest run","build":"tsc","check":"tsc --noEmit && vitest run","field-report":"node scripts/field-report.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:31e1212f-b31b-4217-ba3c-aaaf18ce5ce3"}},"repository":{"url":"git+https://github.com/tranhoangnguyen03/pi-flow-external.git","type":"git"},"_npmVersion":"11.19.0","description":"External Claude Code, Codex CLI, and Antigravity delegation for pi.","directories":{},"_nodeVersion":"24.20.0","dependencies":{"acorn":"^8.17.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.2.4","typebox":"1.1.38","typescript":"^5.9.3","@types/node":"^24.12.4","@earendil-works/pi-ai":"0.79.4","@earendil-works/pi-tui":"0.79.4","@earendil-works/pi-agent-core":"0.79.4","@earendil-works/pi-coding-agent":"0.79.4"},"peerDependencies":{"typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-agent-core":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-flow-external_2.0.0-external.0_1789466532137_0.8755922895212211","host":"s3://npm-registry-packages-npm-production"}},"2.1.0-external.0":{"name":"@tranhoangnguyen0310/pi-flow-external","version":"2.1.0-external.0","keywords":["pi-package","pi-extension","subagent","workflow","multi-agent","codex","claude","agy","antigravity"],"license":"MIT","_id":"@tranhoangnguyen0310/pi-flow-external@2.1.0-external.0","maintainers":[{"name":"tranhoangnguyen0310","email":"tranhoangnguyen03@gmail.com"}],"homepage":"https://github.com/tranhoangnguyen03/pi-flow-external#readme","bugs":{"url":"https://github.com/tranhoangnguyen03/pi-flow-external/issues"},"pi":{"image":"https://raw.githubusercontent.com/tranhoangnguyen03/pi-flow-external/main/assets/pi-flow.png","extensions":["./index.ts"]},"dist":{"shasum":"f67fa3ac91b11253260681b4dc1afbcd40fda9d4","tarball":"https://registry.npmjs.org/@tranhoangnguyen0310/pi-flow-external/-/pi-flow-external-2.1.0-external.0.tgz","fileCount":55,"integrity":"sha512-kVVjhzVAfnycvZRlnoBnunC40ps7DPlQ7NektPUMsdZiYzlravyzoDsv8LgRJbwk8BycfRRsKfiKa8Ci9N9FiA==","signatures":[{"sig":"MEYCIQCzxjvVT40Ra0PjLq6jKViaZ889f7JNoytQuMggaxlwcgIhALJ8MlCjpByzeGgtL4PL78sFDT3v9nGRJts3rVuYKHmZ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDcLyZyHLYluzAERtFWBSs4sIn/17leN/+qTJ+gf+rG5gIgbPymIt37J6YjGKM6K+7eEuTxMYtVWuShnPtVTFi6mfE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@tranhoangnguyen0310%2fpi-flow-external@2.1.0-external.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":802386},"main":"./index.ts","type":"module","engines":{"node":">=22.19.0"},"exports":"./index.ts","gitHead":"985cf97c8d42c8bfaebe8c35a26b90ec593fab4b","scripts":{"e2e":"node scripts/e2e/external.mjs","test":"vitest run","build":"tsc","check":"tsc --noEmit && vitest run","field-report":"node scripts/field-report.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:31e1212f-b31b-4217-ba3c-aaaf18ce5ce3"}},"repository":{"url":"git+https://github.com/tranhoangnguyen03/pi-flow-external.git","type":"git"},"_npmVersion":"11.19.0","description":"External Claude Code, Codex CLI, and Antigravity delegation for pi.","directories":{},"_nodeVersion":"24.20.0","dependencies":{"acorn":"^8.17.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.2.4","typebox":"1.1.38","typescript":"^5.9.3","@types/node":"^24.12.4","@earendil-works/pi-ai":"0.79.4","@earendil-works/pi-tui":"0.79.4","@earendil-works/pi-agent-core":"0.79.4","@earendil-works/pi-coding-agent":"0.79.4"},"peerDependencies":{"typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-agent-core":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-flow-external_2.1.0-external.0_1789466952767_0.15802940310391445","host":"s3://npm-registry-packages-npm-production"}},"2.1.0-external.1":{"name":"@tranhoangnguyen0310/pi-flow-external","version":"2.1.0-external.1","keywords":["pi-package","pi-extension","subagent","workflow","multi-agent","codex","claude","agy","antigravity"],"license":"MIT","_id":"@tranhoangnguyen0310/pi-flow-external@2.1.0-external.1","maintainers":[{"name":"tranhoangnguyen0310","email":"tranhoangnguyen03@gmail.com"}],"homepage":"https://github.com/tranhoangnguyen03/pi-flow-external#readme","bugs":{"url":"https://github.com/tranhoangnguyen03/pi-flow-external/issues"},"pi":{"image":"https://raw.githubusercontent.com/tranhoangnguyen03/pi-flow-external/main/assets/pi-flow.png","extensions":["./index.ts"]},"dist":{"shasum":"c3103fd879627bc32c721aa7416ab58fc7e1d2d7","tarball":"https://registry.npmjs.org/@tranhoangnguyen0310/pi-flow-external/-/pi-flow-external-2.1.0-external.1.tgz","fileCount":55,"integrity":"sha512-ygSokDhffKm5h7jWOJlN/xPayj1iRpWfZHh2PE6PqRWTxdvhtrd+CNn55SDIdPiuA2vEJhspupMtgIaP7gQtsg==","signatures":[{"sig":"MEQCIB/EJQey1BQODhzBSwksKlBwMZT1MjS65brBKuggmwNWAiA03FNoiGK8kn/rmR8IAhdDAvJAY3DtHOSiUXvNkM/abw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCICHdBkbi1FoB38OTcvcIrr/fxyHbuETTfdNJdTEbfrIbAiBxziGC0IlTkrZvr26n9u7kcw3N+2LokqHXRv4sx+JO0Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@tranhoangnguyen0310%2fpi-flow-external@2.1.0-external.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":806031},"main":"./index.ts","type":"module","engines":{"node":">=22.19.0"},"exports":"./index.ts","gitHead":"01b28a31480ffc8411ed3093ac5ba6a50daa3fb0","scripts":{"e2e":"node scripts/e2e/external.mjs","test":"vitest run","build":"tsc","check":"tsc --noEmit && vitest run","field-report":"node scripts/field-report.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:31e1212f-b31b-4217-ba3c-aaaf18ce5ce3"}},"repository":{"url":"git+https://github.com/tranhoangnguyen03/pi-flow-external.git","type":"git"},"_npmVersion":"11.19.0","description":"External Claude Code, Codex CLI, and Antigravity delegation for pi.","directories":{},"_nodeVersion":"24.20.0","dependencies":{"acorn":"^8.17.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.2.4","typebox":"1.1.38","typescript":"^5.9.3","@types/node":"^24.12.4","@earendil-works/pi-ai":"0.79.4","@earendil-works/pi-tui":"0.79.4","@earendil-works/pi-agent-core":"0.79.4","@earendil-works/pi-coding-agent":"0.79.4"},"peerDependencies":{"typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-agent-core":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-flow-external_2.1.0-external.1_1789641813215_0.7408628356834217","host":"s3://npm-registry-packages-npm-production"}},"2.1.0-external.2":{"name":"@tranhoangnguyen0310/pi-flow-external","version":"2.1.0-external.2","keywords":["pi-package","pi-extension","subagent","workflow","multi-agent","codex","claude","agy","antigravity"],"license":"MIT","_id":"@tranhoangnguyen0310/pi-flow-external@2.1.0-external.2","maintainers":[{"name":"tranhoangnguyen0310","email":"tranhoangnguyen03@gmail.com"}],"homepage":"https://github.com/tranhoangnguyen03/pi-flow-external#readme","bugs":{"url":"https://github.com/tranhoangnguyen03/pi-flow-external/issues"},"pi":{"image":"https://raw.githubusercontent.com/tranhoangnguyen03/pi-flow-external/main/assets/pi-flow.png","extensions":["./index.ts"]},"dist":{"shasum":"b1b29fb99ad81c33384dfb56300760ef156cb9ca","tarball":"https://registry.npmjs.org/@tranhoangnguyen0310/pi-flow-external/-/pi-flow-external-2.1.0-external.2.tgz","fileCount":55,"integrity":"sha512-EWIkYHfX5Aqb6Yb4zaWJkjIEo0Q9rg67hZ1KJn5ens/u7ETET7ekgY96lqNa69GHgsFKZe9/NrQ2Ag6UFOyvQg==","signatures":[{"sig":"MEUCIQC685+WHr77S43tnCQQmBPPLRYk7NjmdNdmwMphdpmJXwIgfbWY00p2/x/4z86MnGe7lhKe2R4ybjMbO7+t4jKGdbY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDt5jE7n61WdHC8C17fjhR8gl6z6aDrwfCC6WjdBA3B6AIgIO5SyqTyC90MKvKvNuPY91m4egKG4cFIlb6oP9Lle5M=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@tranhoangnguyen0310%2fpi-flow-external@2.1.0-external.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":809390},"main":"./index.ts","type":"module","engines":{"node":">=22.19.0"},"exports":"./index.ts","gitHead":"a2edf1618ed8ec952b8bf3e702754a613b6f469e","scripts":{"e2e":"node scripts/e2e/external.mjs","test":"vitest run","build":"tsc","check":"tsc --noEmit && vitest run","field-report":"node scripts/field-report.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:31e1212f-b31b-4217-ba3c-aaaf18ce5ce3"}},"repository":{"url":"git+https://github.com/tranhoangnguyen03/pi-flow-external.git","type":"git"},"_npmVersion":"11.19.0","description":"External Claude Code, Codex CLI, and Antigravity delegation for pi.","directories":{},"_nodeVersion":"24.20.0","dependencies":{"acorn":"^8.17.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.2.4","typebox":"1.1.38","typescript":"^5.9.3","@types/node":"^24.12.4","@earendil-works/pi-ai":"0.79.4","@earendil-works/pi-tui":"0.79.4","@earendil-works/pi-agent-core":"0.79.4","@earendil-works/pi-coding-agent":"0.79.4"},"peerDependencies":{"typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-agent-core":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-flow-external_2.1.0-external.2_1789711225405_0.5565674391072681","host":"s3://npm-registry-packages-npm-production"}},"2.1.0-external.3":{"name":"@tranhoangnguyen0310/pi-flow-external","version":"2.1.0-external.3","keywords":["pi-package","pi-extension","subagent","workflow","multi-agent","codex","claude","agy","antigravity"],"license":"MIT","_id":"@tranhoangnguyen0310/pi-flow-external@2.1.0-external.3","maintainers":[{"name":"tranhoangnguyen0310","email":"tranhoangnguyen03@gmail.com"}],"homepage":"https://github.com/tranhoangnguyen03/pi-flow-external#readme","bugs":{"url":"https://github.com/tranhoangnguyen03/pi-flow-external/issues"},"pi":{"image":"https://raw.githubusercontent.com/tranhoangnguyen03/pi-flow-external/main/assets/pi-flow.png","extensions":["./index.ts"]},"dist":{"shasum":"98dee5b215b3677f92628fe20362389f7449ce64","tarball":"https://registry.npmjs.org/@tranhoangnguyen0310/pi-flow-external/-/pi-flow-external-2.1.0-external.3.tgz","fileCount":55,"integrity":"sha512-hDoqlYyJTecWVbMrur2zi9vTvJveKqQ6NuGZxQ49Xa64Ixi1WFJEAi836i3nx0NWDCFACEZXqD4+5FtNIr2N7g==","signatures":[{"sig":"MEUCIQCUeKygxzvVINxlZqZVmVMu8mlwMhJ6pKSPGx6htDhzHgIgbbcg2/IZSGwj/1J2BbgSFWHunc9o6qcUvU6GiMnCWes=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQChUOUugxcSd6ZAZNCMkbfOp9ENB4EhyCfVSWrMxsYbkgIhAP2Hllfcgn/IxhLbB6HXCCF3HJii3ccHy/U6sk2HzaWe","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@tranhoangnguyen0310%2fpi-flow-external@2.1.0-external.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":810387},"main":"./index.ts","type":"module","engines":{"node":">=22.19.0"},"exports":"./index.ts","gitHead":"c12d8f241e7bd8a3c4df50d4d03b7a9ce6acd7b1","scripts":{"e2e":"node scripts/e2e/external.mjs","test":"vitest run","build":"tsc","check":"tsc --noEmit && vitest run","field-report":"node scripts/field-report.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:31e1212f-b31b-4217-ba3c-aaaf18ce5ce3"}},"repository":{"url":"git+https://github.com/tranhoangnguyen03/pi-flow-external.git","type":"git"},"_npmVersion":"11.19.0","description":"External Claude Code, Codex CLI, and Antigravity delegation for pi.","directories":{},"_nodeVersion":"24.20.0","dependencies":{"acorn":"^8.17.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.2.4","typebox":"1.1.38","typescript":"^5.9.3","@types/node":"^24.12.4","@earendil-works/pi-ai":"0.79.4","@earendil-works/pi-tui":"0.79.4","@earendil-works/pi-agent-core":"0.79.4","@earendil-works/pi-coding-agent":"0.79.4"},"peerDependencies":{"typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-agent-core":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-flow-external_2.1.0-external.3_1789715163196_0.7340311020753154","host":"s3://npm-registry-packages-npm-production"}},"2.2.0-external.0":{"name":"@tranhoangnguyen0310/pi-flow-external","version":"2.2.0-external.0","keywords":["pi-package","pi-extension","subagent","workflow","multi-agent","codex","claude","agy","antigravity"],"license":"MIT","_id":"@tranhoangnguyen0310/pi-flow-external@2.2.0-external.0","maintainers":[{"name":"tranhoangnguyen0310","email":"tranhoangnguyen03@gmail.com"}],"homepage":"https://github.com/tranhoangnguyen03/pi-flow-external#readme","bugs":{"url":"https://github.com/tranhoangnguyen03/pi-flow-external/issues"},"pi":{"image":"https://raw.githubusercontent.com/tranhoangnguyen03/pi-flow-external/main/assets/pi-flow.png","extensions":["./index.ts"]},"dist":{"shasum":"dd4eb53d457520e0c74443fb7e52e49d55cae88c","tarball":"https://registry.npmjs.org/@tranhoangnguyen0310/pi-flow-external/-/pi-flow-external-2.2.0-external.0.tgz","fileCount":55,"integrity":"sha512-uBx2oq8T3y9vPG59K0jh0KL4RvcSv7QBL9lOE0D1zzVh8jM7aW5ZwtY5J5c1ixr0jcdhD+srT0ULFIYy+VRuZg==","signatures":[{"sig":"MEQCIDHOiKZxYkV7vJP05Dmv+KUBx5BUj5MSnrjS8l6Ak9gfAiASBBNyyjur8Exe8QhFIxGAJxEQ2cXHOyWtPEU/tE+pHg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDJrAfiV86Inp79kChK/M5XW776E5CjL6Q2ae/ruu5nyQIgbRuMRQtdOwqVJvFPTYeOc+0zV4QOZVsRUYvbE/Ufv9U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@tranhoangnguyen0310%2fpi-flow-external@2.2.0-external.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":854886},"main":"./index.ts","type":"module","engines":{"node":">=22.19.0"},"exports":"./index.ts","gitHead":"42f3238e86902b2ca6f42317bfc9aad6991dd686","scripts":{"e2e":"node scripts/e2e/external.mjs","test":"vitest run","build":"tsc","check":"tsc --noEmit && vitest run","field-report":"node scripts/field-report.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:31e1212f-b31b-4217-ba3c-aaaf18ce5ce3"}},"repository":{"url":"git+https://github.com/tranhoangnguyen03/pi-flow-external.git","type":"git"},"_npmVersion":"11.19.0","description":"External Claude Code, Codex CLI, and Antigravity delegation for pi.","directories":{},"_nodeVersion":"24.20.0","dependencies":{"acorn":"^8.17.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.2.4","typebox":"1.1.38","typescript":"^5.9.3","@types/node":"^24.12.4","@earendil-works/pi-ai":"0.79.4","@earendil-works/pi-tui":"0.79.4","@earendil-works/pi-agent-core":"0.79.4","@earendil-works/pi-coding-agent":"0.79.4"},"peerDependencies":{"typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-agent-core":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-flow-external_2.2.0-external.0_1789924087003_0.022561046952559227","host":"s3://npm-registry-packages-npm-production"}},"2.3.0-external.0":{"name":"@tranhoangnguyen0310/pi-flow-external","version":"2.3.0-external.0","keywords":["pi-package","pi-extension","subagent","workflow","multi-agent","codex","claude","agy","antigravity","grok"],"license":"MIT","_id":"@tranhoangnguyen0310/pi-flow-external@2.3.0-external.0","maintainers":[{"name":"tranhoangnguyen0310","email":"tranhoangnguyen03@gmail.com"}],"homepage":"https://github.com/tranhoangnguyen03/pi-flow-external#readme","bugs":{"url":"https://github.com/tranhoangnguyen03/pi-flow-external/issues"},"pi":{"image":"https://raw.githubusercontent.com/tranhoangnguyen03/pi-flow-external/main/assets/pi-flow.png","extensions":["./index.ts"]},"dist":{"shasum":"38476dc0c3c1891e393824f5dfa2b046f58472cb","tarball":"https://registry.npmjs.org/@tranhoangnguyen0310/pi-flow-external/-/pi-flow-external-2.3.0-external.0.tgz","fileCount":56,"integrity":"sha512-MiR8+IChQOsQEKEe7CuR/ey5xnalgejXaTIErIMRdzLOqPIOCx759Y6o/oZp3XQYZMBgOm/T9oWwmLuViKUC7A==","signatures":[{"sig":"MEYCIQCyl0GzQvD0SHa9083Jh6yzcR2BBdFochSx2Z88QKrIgwIhAI4yox+ND6XTn4KALA1CrwbbX3FvYsa9vhzVpVWHNaF3","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDMFWBkq2O4D320kbw6FkD79AtmoxXRTY9503MMvky/OgIhAPDaDedlbuiKuVldejUsq2ONOlS2VmgIlhjTr3ciuzx1","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@tranhoangnguyen0310%2fpi-flow-external@2.3.0-external.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":892443},"main":"./index.ts","type":"module","engines":{"node":">=22.19.0"},"exports":"./index.ts","gitHead":"88d866ceff1dbd41289bacb0d168394fff03cda1","scripts":{"e2e":"node --experimental-transform-types scripts/e2e/external.mjs","test":"vitest run","build":"tsc","check":"tsc --noEmit && vitest run","field-report":"node scripts/field-report.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:31e1212f-b31b-4217-ba3c-aaaf18ce5ce3"}},"repository":{"url":"git+https://github.com/tranhoangnguyen03/pi-flow-external.git","type":"git"},"_npmVersion":"11.19.0","description":"External Claude Code, Codex CLI, Antigravity, and Grok Build CLI delegation for pi.","directories":{},"_nodeVersion":"24.20.0","dependencies":{"acorn":"^8.17.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.2.4","typebox":"1.1.38","typescript":"^5.9.3","@types/node":"^24.12.4","@earendil-works/pi-ai":"0.79.4","@earendil-works/pi-tui":"0.79.4","@earendil-works/pi-agent-core":"0.79.4","@earendil-works/pi-coding-agent":"0.79.4"},"peerDependencies":{"typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-agent-core":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-flow-external_2.3.0-external.0_1789987026354_0.7930521774325439","host":"s3://npm-registry-packages-npm-production"}},"2.3.1-external.0":{"name":"@tranhoangnguyen0310/pi-flow-external","version":"2.3.1-external.0","keywords":["pi-package","pi-extension","subagent","workflow","multi-agent","codex","claude","agy","antigravity","grok"],"license":"MIT","_id":"@tranhoangnguyen0310/pi-flow-external@2.3.1-external.0","maintainers":[{"name":"tranhoangnguyen0310","email":"tranhoangnguyen03@gmail.com"}],"homepage":"https://github.com/tranhoangnguyen03/pi-flow-external#readme","bugs":{"url":"https://github.com/tranhoangnguyen03/pi-flow-external/issues"},"pi":{"image":"https://raw.githubusercontent.com/tranhoangnguyen03/pi-flow-external/main/assets/pi-flow.png","extensions":["./index.ts"]},"dist":{"shasum":"3627e5401f6e0d9e66075b8a795aabd92f0fb580","tarball":"https://registry.npmjs.org/@tranhoangnguyen0310/pi-flow-external/-/pi-flow-external-2.3.1-external.0.tgz","fileCount":59,"integrity":"sha512-APH1C51gNuQLsiWPogyy6QL4qEkn3e0qeR0LLFFXW+UELEViE8vl50cotK3JFZNIIHn1GpAZuWfyg0WzXr4R5w==","signatures":[{"sig":"MEQCICoEp4oAVY6bY0htuTPf5mHT0FyLe3vBJWVYmQL4oJiYAiAGQWhbNFn8+qYIVvKOVincV4C50HwneSqv4M5b4XePDQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIBbvLWSqXhMCoXcAg7xyB9H8zfDsNMVHaZMH2GR566uXAiAr6fwW/Pv38Tz/Y7xk+csFbAFpRJyOkdE7PNYnG7UQug==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@tranhoangnguyen0310%2fpi-flow-external@2.3.1-external.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":938239},"main":"./index.ts","type":"module","engines":{"node":">=22.19.0"},"exports":"./index.ts","gitHead":"1e31939540e0ac58aa2712a6b8a5f40b92d70e3b","scripts":{"e2e":"node --experimental-transform-types scripts/e2e/external.mjs","test":"vitest run","build":"tsc","check":"tsc --noEmit && vitest run","field-report":"node scripts/field-report.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:31e1212f-b31b-4217-ba3c-aaaf18ce5ce3"}},"repository":{"url":"git+https://github.com/tranhoangnguyen03/pi-flow-external.git","type":"git"},"_npmVersion":"11.19.0","description":"External Claude Code, Codex CLI, Antigravity, and Grok Build CLI delegation for pi.","directories":{},"_nodeVersion":"24.20.0","dependencies":{"acorn":"^8.17.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.2.4","typebox":"1.1.38","typescript":"^5.9.3","@types/node":"^24.12.4","@earendil-works/pi-ai":"0.79.4","@earendil-works/pi-tui":"0.79.4","@earendil-works/pi-agent-core":"0.79.4","@earendil-works/pi-coding-agent":"0.79.4"},"peerDependencies":{"typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-agent-core":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-flow-external_2.3.1-external.0_1789991953765_0.6186970431546372","host":"s3://npm-registry-packages-npm-production"}},"2.4.0-external.0":{"name":"@tranhoangnguyen0310/pi-flow-external","version":"2.4.0-external.0","keywords":["pi-package","pi-extension","subagent","workflow","multi-agent","codex","claude","agy","antigravity","grok","muse"],"license":"MIT","_id":"@tranhoangnguyen0310/pi-flow-external@2.4.0-external.0","maintainers":[{"name":"tranhoangnguyen0310","email":"tranhoangnguyen03@gmail.com"}],"homepage":"https://github.com/tranhoangnguyen03/pi-flow-external#readme","bugs":{"url":"https://github.com/tranhoangnguyen03/pi-flow-external/issues"},"pi":{"image":"https://raw.githubusercontent.com/tranhoangnguyen03/pi-flow-external/main/assets/pi-flow.png","extensions":["./index.ts"]},"dist":{"shasum":"1855cc6f13713b121a055d9a2e8fd7521fd3df42","tarball":"https://registry.npmjs.org/@tranhoangnguyen0310/pi-flow-external/-/pi-flow-external-2.4.0-external.0.tgz","fileCount":60,"integrity":"sha512-BA6TAacxzpQRth57Gxibh8uRqVWgJaeYR6Kdw8E235IVQVYeCz9hMbfO0aRWsLWB8Zt11PB6tUXXtYlUNa8XPg==","signatures":[{"sig":"MEUCIQDEWWQ0LUrIdt9OAjicykO0GpZdYKkSQXvuQM7reFd24gIgTFZLrOxI31gEY8W90YI95vDOM6vxoDM72UVGHmnEuc4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDTwgGc7WIh0tK9jsPRgv03fxz4Pyihw69fcqC4etpqpAIgdQ2GyvTzV3p+wrIuQS8dHsPOeTZVkyiGLvLxCiMoOlc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@tranhoangnguyen0310%2fpi-flow-external@2.4.0-external.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":974983},"main":"./index.ts","type":"module","engines":{"node":">=22.19.0"},"exports":"./index.ts","gitHead":"a7183c5748d17e89fe33b0c928daf5409639244d","scripts":{"e2e":"node --experimental-transform-types scripts/e2e/external.mjs","test":"vitest run","build":"tsc","check":"tsc --noEmit && vitest run","field-report":"node scripts/field-report.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:31e1212f-b31b-4217-ba3c-aaaf18ce5ce3"}},"repository":{"url":"git+https://github.com/tranhoangnguyen03/pi-flow-external.git","type":"git"},"_npmVersion":"11.19.0","description":"External Claude Code, Codex CLI, Antigravity, Grok Build CLI, and Muse Code delegation for pi.","directories":{},"_nodeVersion":"24.20.0","dependencies":{"acorn":"^8.17.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.2.4","typebox":"1.1.38","typescript":"^5.9.3","@types/node":"^24.12.4","@earendil-works/pi-ai":"0.79.4","@earendil-works/pi-tui":"0.79.4","@earendil-works/pi-agent-core":"0.79.4","@earendil-works/pi-coding-agent":"0.79.4"},"peerDependencies":{"typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-agent-core":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-flow-external_2.4.0-external.0_1789996931125_0.56115556892869","host":"s3://npm-registry-packages-npm-production"}},"2.4.1-external.0":{"name":"@tranhoangnguyen0310/pi-flow-external","version":"2.4.1-external.0","keywords":["pi-package","pi-extension","subagent","workflow","multi-agent","codex","claude","agy","antigravity","grok","muse"],"license":"MIT","_id":"@tranhoangnguyen0310/pi-flow-external@2.4.1-external.0","maintainers":[{"name":"tranhoangnguyen0310","email":"tranhoangnguyen03@gmail.com"}],"homepage":"https://github.com/tranhoangnguyen03/pi-flow-external#readme","bugs":{"url":"https://github.com/tranhoangnguyen03/pi-flow-external/issues"},"pi":{"image":"https://raw.githubusercontent.com/tranhoangnguyen03/pi-flow-external/main/assets/pi-flow.png","extensions":["./index.ts"]},"dist":{"shasum":"afe8d08d431887ce5a6aea2894cabcdc9104d6d6","tarball":"https://registry.npmjs.org/@tranhoangnguyen0310/pi-flow-external/-/pi-flow-external-2.4.1-external.0.tgz","fileCount":60,"integrity":"sha512-9cR3xJT35qsktF6lgR3G8j2rwLTlzDFkdLwL/gdmlDoqj6mtwFPQflNf9jlIfYmPLyncjHoiV+z5mIAs9s7S9Q==","signatures":[{"sig":"MEYCIQCYFGBv20XAhbu6ogTkRrK6BNnJ7TGNWu5ImwFeb2X2sAIhAPyZlREiiX47XValX0W510waePKTQICotEZB2w+LIVFZ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIG2oXuibqRttT8rmosNkL9zvme96dbVzZLxrlWqGkPSpAiEAj3aWydWkGNWHHwM6vipv3htu+YCp36SMoW03cYi2QKI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@tranhoangnguyen0310%2fpi-flow-external@2.4.1-external.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":980331},"main":"./index.ts","type":"module","engines":{"node":">=22.19.0"},"exports":"./index.ts","gitHead":"43a251005e183dde6c819909ff27e349f0285d42","scripts":{"e2e":"node --experimental-transform-types scripts/e2e/external.mjs","test":"vitest run","build":"tsc","check":"tsc --noEmit && vitest run","field-report":"node scripts/field-report.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:31e1212f-b31b-4217-ba3c-aaaf18ce5ce3"}},"repository":{"url":"git+https://github.com/tranhoangnguyen03/pi-flow-external.git","type":"git"},"_npmVersion":"11.19.0","description":"External Claude Code, Codex CLI, Antigravity, Grok Build CLI, and Muse Code delegation for pi.","directories":{},"_nodeVersion":"24.20.0","dependencies":{"acorn":"^8.17.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.2.4","typebox":"1.1.38","typescript":"^5.9.3","@types/node":"^24.12.4","@earendil-works/pi-ai":"0.79.4","@earendil-works/pi-tui":"0.79.4","@earendil-works/pi-agent-core":"0.79.4","@earendil-works/pi-coding-agent":"0.79.4"},"peerDependencies":{"typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-agent-core":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-flow-external_2.4.1-external.0_1790133038355_0.5997494891169577","host":"s3://npm-registry-packages-npm-production"}},"2.4.2-external.0":{"name":"@tranhoangnguyen0310/pi-flow-external","version":"2.4.2-external.0","keywords":["pi-package","pi-extension","subagent","workflow","multi-agent","codex","claude","agy","antigravity","grok","muse"],"license":"MIT","_id":"@tranhoangnguyen0310/pi-flow-external@2.4.2-external.0","maintainers":[{"name":"tranhoangnguyen0310","email":"tranhoangnguyen03@gmail.com"}],"homepage":"https://github.com/tranhoangnguyen03/pi-flow-external#readme","bugs":{"url":"https://github.com/tranhoangnguyen03/pi-flow-external/issues"},"pi":{"image":"https://raw.githubusercontent.com/tranhoangnguyen03/pi-flow-external/main/assets/pi-flow.png","extensions":["./index.ts"]},"dist":{"shasum":"bb4beb1394bf25b91119afe28414177342dc909d","tarball":"https://registry.npmjs.org/@tranhoangnguyen0310/pi-flow-external/-/pi-flow-external-2.4.2-external.0.tgz","fileCount":60,"integrity":"sha512-7/1ZQWr0hD03gU/RwIPh1uxAe+7jnNM9USCIcsJRgeMrJeBp0N8ZeBoV/3MvpXzjuK53R/Il+kTazlNEU6mHYQ==","signatures":[{"sig":"MEUCID9GozEctqDYPyME3pYqD/SV6gDMaMqAQ7oUwMqcXqwsAiEA95a54f3fxi1/7Y6yo5fVcK2sNuiFbYxkWoa4AXkGMys=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIDrqBm7gWeYwYMhjcemahjvkdvyPT1O1OFe5n9vtTUHvAiB0FM3/wserDLeL0qzTCkG5EWdRQIRSsvIorjKv2VT3wA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@tranhoangnguyen0310%2fpi-flow-external@2.4.2-external.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":984455},"main":"./index.ts","type":"module","engines":{"node":">=22.19.0"},"exports":"./index.ts","gitHead":"67fe7e78852c18af38f86b73b334b63f0281115e","scripts":{"e2e":"node --experimental-transform-types scripts/e2e/external.mjs","test":"vitest run","build":"tsc","check":"tsc --noEmit && vitest run","field-report":"node scripts/field-report.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:31e1212f-b31b-4217-ba3c-aaaf18ce5ce3"}},"repository":{"url":"git+https://github.com/tranhoangnguyen03/pi-flow-external.git","type":"git"},"_npmVersion":"11.19.0","description":"External Claude Code, Codex CLI, Antigravity, Grok Build CLI, and Muse Code delegation for pi.","directories":{},"_nodeVersion":"24.20.0","dependencies":{"acorn":"^8.17.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.2.4","typebox":"1.1.38","typescript":"^5.9.3","@types/node":"^24.12.4","@earendil-works/pi-ai":"0.79.4","@earendil-works/pi-tui":"0.79.4","@earendil-works/pi-agent-core":"0.79.4","@earendil-works/pi-coding-agent":"0.79.4"},"peerDependencies":{"typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-agent-core":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-flow-external_2.4.2-external.0_1790140866069_0.7991798578089726","host":"s3://npm-registry-packages-npm-production"}},"2.5.0-external.0":{"name":"@tranhoangnguyen0310/pi-flow-external","version":"2.5.0-external.0","keywords":["pi-package","pi-extension","subagent","workflow","multi-agent","codex","claude","agy","antigravity","grok","muse"],"license":"MIT","_id":"@tranhoangnguyen0310/pi-flow-external@2.5.0-external.0","maintainers":[{"name":"tranhoangnguyen0310","email":"tranhoangnguyen03@gmail.com"}],"homepage":"https://github.com/tranhoangnguyen03/pi-flow-external#readme","bugs":{"url":"https://github.com/tranhoangnguyen03/pi-flow-external/issues"},"pi":{"image":"https://raw.githubusercontent.com/tranhoangnguyen03/pi-flow-external/main/assets/pi-flow.png","extensions":["./index.ts"]},"dist":{"shasum":"f37172f155259e6fb0cbf7acc184562f26569709","tarball":"https://registry.npmjs.org/@tranhoangnguyen0310/pi-flow-external/-/pi-flow-external-2.5.0-external.0.tgz","fileCount":61,"integrity":"sha512-TJE2T0A57JNYNs49TA5i3IcFVf1VnC+Bj58+stKqguLdtyv97R8i085Z2C/cbKJuZsXcYvk3R2WkYs3fHVUCSg==","signatures":[{"sig":"MEUCIApSPKUwjLUYdHZXCmQWqCejrAVLu/uJqxpu6QG9zBReAiEA0N/R00YZznx+IXptZNbCyAlAv2SQd0GFXLB5uS4DxyQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIF8+HXp9YVtCkRnTX3EItp1BvJLuWXh10PEbfIrpoR+GAiAxGxjXGaQBzAMTr7ZAtCC+N4jKT6R2ZnLMaSOKyHi8yA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@tranhoangnguyen0310%2fpi-flow-external@2.5.0-external.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1050681},"main":"./index.ts","type":"module","engines":{"node":">=22.19.0"},"exports":"./index.ts","gitHead":"19d3d2d9291bb62fa3b98d4abe21164f26e901ec","scripts":{"e2e":"node --experimental-transform-types scripts/e2e/external.mjs","test":"vitest run","build":"tsc","check":"tsc --noEmit && vitest run","field-report":"node scripts/field-report.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:31e1212f-b31b-4217-ba3c-aaaf18ce5ce3"}},"repository":{"url":"git+https://github.com/tranhoangnguyen03/pi-flow-external.git","type":"git"},"_npmVersion":"11.19.0","description":"External Claude Code, Codex CLI, Antigravity, Grok Build CLI, and Muse Code delegation for pi.","directories":{},"_nodeVersion":"24.21.0","dependencies":{"acorn":"^8.17.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.2.4","typebox":"1.1.38","typescript":"^5.9.3","@types/node":"^24.12.4","@earendil-works/pi-ai":"0.79.4","@earendil-works/pi-tui":"0.79.4","@earendil-works/pi-agent-core":"0.79.4","@earendil-works/pi-coding-agent":"0.79.4"},"peerDependencies":{"typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-agent-core":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-flow-external_2.5.0-external.0_1790152670052_0.714116748159739","host":"s3://npm-registry-packages-npm-production"}},"2.6.0-external.0":{"name":"@tranhoangnguyen0310/pi-flow-external","version":"2.6.0-external.0","keywords":["pi-package","pi-extension","subagent","workflow","multi-agent","codex","claude","agy","antigravity","grok","muse"],"license":"MIT","_id":"@tranhoangnguyen0310/pi-flow-external@2.6.0-external.0","maintainers":[{"name":"tranhoangnguyen0310","email":"tranhoangnguyen03@gmail.com"}],"homepage":"https://github.com/tranhoangnguyen03/pi-flow-external#readme","bugs":{"url":"https://github.com/tranhoangnguyen03/pi-flow-external/issues"},"pi":{"image":"https://raw.githubusercontent.com/tranhoangnguyen03/pi-flow-external/main/assets/pi-flow.png","extensions":["./index.ts"]},"dist":{"shasum":"4936faca46d610d1b3aefecf0824fa2198a649ec","tarball":"https://registry.npmjs.org/@tranhoangnguyen0310/pi-flow-external/-/pi-flow-external-2.6.0-external.0.tgz","fileCount":61,"integrity":"sha512-382GQpAIvljjpLEe4Cy3cyz8PcTnoExyWR9yxTY02T2x5i3t4qkmIEoeiSakzTAx7Ywv+NBV3rfeTBOz/4om4Q==","signatures":[{"sig":"MEQCIC2XJfclz6fl8teMr6o1nHMVG6jXjVyKqvNs8FcOVaoLAiAy9j89QlR20n0d/sbmOEsbNOPW5gVX6vqGtDYsemUviA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQD+uxG2hX8Ajxqrk1YrhWrARQg6wzF4Of7MSLVqL2Eu9wIgLamRkZO0IQYbDDVWHtsNmhpLRchecP9XrOsMhT4m6vc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@tranhoangnguyen0310%2fpi-flow-external@2.6.0-external.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1082021},"main":"./index.ts","type":"module","engines":{"node":">=22.19.0"},"exports":"./index.ts","gitHead":"1990a7a9f4d70b19f0ad9870793fc75d813d0961","scripts":{"e2e":"node --experimental-transform-types scripts/e2e/external.mjs","test":"vitest run","build":"tsc","check":"tsc --noEmit && vitest run","field-report":"node scripts/field-report.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:31e1212f-b31b-4217-ba3c-aaaf18ce5ce3"}},"repository":{"url":"git+https://github.com/tranhoangnguyen03/pi-flow-external.git","type":"git"},"_npmVersion":"11.19.0","description":"External Claude Code, Codex CLI, Antigravity, Grok Build CLI, and Muse Code delegation for pi.","directories":{},"_nodeVersion":"24.21.0","dependencies":{"acorn":"^8.17.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.2.4","typebox":"1.1.38","typescript":"^5.9.3","@types/node":"^24.12.4","@earendil-works/pi-ai":"0.79.4","@earendil-works/pi-tui":"0.79.4","@earendil-works/pi-agent-core":"0.79.4","@earendil-works/pi-coding-agent":"0.79.4"},"peerDependencies":{"typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-agent-core":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-flow-external_2.6.0-external.0_1790226008536_0.47708078354182026","host":"s3://npm-registry-packages-npm-production"}},"2.7.0-external.0":{"name":"@tranhoangnguyen0310/pi-flow-external","version":"2.7.0-external.0","keywords":["pi-package","pi-extension","subagent","workflow","multi-agent","codex","claude","agy","antigravity","grok","muse"],"license":"MIT","_id":"@tranhoangnguyen0310/pi-flow-external@2.7.0-external.0","maintainers":[{"name":"tranhoangnguyen0310","email":"tranhoangnguyen03@gmail.com"}],"homepage":"https://github.com/tranhoangnguyen03/pi-flow-external#readme","bugs":{"url":"https://github.com/tranhoangnguyen03/pi-flow-external/issues"},"pi":{"image":"https://raw.githubusercontent.com/tranhoangnguyen03/pi-flow-external/main/assets/pi-flow.png","extensions":["./index.ts"]},"dist":{"shasum":"d6142174132c94aeeba7bed14e409c9dc27aebad","tarball":"https://registry.npmjs.org/@tranhoangnguyen0310/pi-flow-external/-/pi-flow-external-2.7.0-external.0.tgz","fileCount":61,"integrity":"sha512-sxLbbeLsVkx7YyVaPwUOJtuaPmMQgnIqpupeYBvTFUaUWK3ZT2kOJFbROIHqhBxY+E8PMj7kMrpDNiPW7oDwgQ==","signatures":[{"sig":"MEUCIEPEZ55NfQlaoJSLE2lLhTbacZx1QJ/U6pXvsodR7Td3AiEApssyPXOwTkqfbYxNM8vqinMSxJFX/oiTf7e2IecvF5M=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIE/6NRI9Er7dhshIkneocb0DQOBP0xO+eKXKam/5cfKFAiEAurS8ck9crW/rZnao3i7L16thkaas7BtouNVrb1SOxIo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@tranhoangnguyen0310%2fpi-flow-external@2.7.0-external.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1094489},"main":"./index.ts","type":"module","engines":{"node":">=22.19.0"},"exports":"./index.ts","gitHead":"00917c9021f146fdb9ebb5acb45896cfa5ae16c9","scripts":{"e2e":"node --experimental-transform-types scripts/e2e/external.mjs","test":"vitest run","build":"tsc","check":"tsc --noEmit && vitest run","field-report":"node scripts/field-report.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:31e1212f-b31b-4217-ba3c-aaaf18ce5ce3"}},"repository":{"url":"git+https://github.com/tranhoangnguyen03/pi-flow-external.git","type":"git"},"_npmVersion":"11.19.0","description":"External Claude Code, Codex CLI, Antigravity, Grok Build CLI, and Muse Code delegation for pi.","directories":{},"_nodeVersion":"24.20.0","dependencies":{"acorn":"^8.17.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.2.4","typebox":"1.1.38","typescript":"^5.9.3","@types/node":"^24.12.4","@earendil-works/pi-ai":"0.79.4","@earendil-works/pi-tui":"0.79.4","@earendil-works/pi-agent-core":"0.79.4","@earendil-works/pi-coding-agent":"0.79.4"},"peerDependencies":{"typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-agent-core":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-flow-external_2.7.0-external.0_1790248754191_0.9103880840104162","host":"s3://npm-registry-packages-npm-production"}},"2.8.0-external.0":{"name":"@tranhoangnguyen0310/pi-flow-external","version":"2.8.0-external.0","keywords":["pi-package","pi-extension","subagent","workflow","multi-agent","codex","claude","agy","antigravity","grok","muse"],"license":"MIT","_id":"@tranhoangnguyen0310/pi-flow-external@2.8.0-external.0","maintainers":[{"name":"tranhoangnguyen0310","email":"tranhoangnguyen03@gmail.com"}],"homepage":"https://github.com/tranhoangnguyen03/pi-flow-external#readme","bugs":{"url":"https://github.com/tranhoangnguyen03/pi-flow-external/issues"},"pi":{"image":"https://raw.githubusercontent.com/tranhoangnguyen03/pi-flow-external/main/assets/pi-flow.png","extensions":["./index.ts"]},"dist":{"shasum":"23fb030838ad653b1fde1c7383949a0dee441791","tarball":"https://registry.npmjs.org/@tranhoangnguyen0310/pi-flow-external/-/pi-flow-external-2.8.0-external.0.tgz","fileCount":63,"integrity":"sha512-vkEQpdYzAtsb7j/z7EkIpB2X2d29OpSJ7usb2ze9debVX7rdy9/I8J41+rKobK4UbYMRZwWf6NzSIFJ0jYapqg==","signatures":[{"sig":"MEUCIFAD1oNcVNN/dglb8pnuISPe6yBImAN0w4FHdWVaDEvfAiEA0P3JwstwJjkp6KWQIj6I16thQhfyjx3hfxHvZ6dB3KA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIBuvfEGLlHQBnS06Ir299ldpq+X1GOA2VSDg3zHPV8l0AiEApx4VprLIpXecsmPQiYjyp7X4cL9j0mQNjXxM45/dBnk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@tranhoangnguyen0310%2fpi-flow-external@2.8.0-external.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1104579},"main":"./index.ts","type":"module","engines":{"node":">=22.19.0"},"exports":"./index.ts","gitHead":"f6e177d45fb2a00cbf3fa2f24fe6d8ad3113d2be","scripts":{"e2e":"node --experimental-transform-types scripts/e2e/external.mjs","test":"vitest run","build":"tsc","check":"tsc --noEmit && vitest run","field-report":"node scripts/field-report.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:31e1212f-b31b-4217-ba3c-aaaf18ce5ce3"}},"repository":{"url":"git+https://github.com/tranhoangnguyen03/pi-flow-external.git","type":"git"},"_npmVersion":"11.19.0","description":"External Claude Code, Codex CLI, Antigravity, Grok Build CLI, and Muse Code delegation for pi.","directories":{},"_nodeVersion":"24.21.0","dependencies":{"acorn":"^8.17.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.2.4","typebox":"1.1.38","typescript":"^5.9.3","@types/node":"^24.12.4","@earendil-works/pi-ai":"0.79.4","@earendil-works/pi-tui":"0.79.4","@earendil-works/pi-agent-core":"0.79.4","@earendil-works/pi-coding-agent":"0.79.4"},"peerDependencies":{"typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-agent-core":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-flow-external_2.8.0-external.0_1790310210662_0.9339423568387095","host":"s3://npm-registry-packages-npm-production"}},"2.9.0-external.0":{"name":"@tranhoangnguyen0310/pi-flow-external","version":"2.9.0-external.0","keywords":["pi-package","pi-extension","subagent","workflow","multi-agent","codex","claude","agy","antigravity","grok","muse"],"license":"MIT","_id":"@tranhoangnguyen0310/pi-flow-external@2.9.0-external.0","maintainers":[{"name":"tranhoangnguyen0310","email":"tranhoangnguyen03@gmail.com"}],"homepage":"https://github.com/tranhoangnguyen03/pi-flow-external#readme","bugs":{"url":"https://github.com/tranhoangnguyen03/pi-flow-external/issues"},"pi":{"image":"https://raw.githubusercontent.com/tranhoangnguyen03/pi-flow-external/main/assets/pi-flow.png","extensions":["./index.ts"]},"dist":{"shasum":"459ec246b2544e281adbd40af6b4fc7d1c2e9347","tarball":"https://registry.npmjs.org/@tranhoangnguyen0310/pi-flow-external/-/pi-flow-external-2.9.0-external.0.tgz","fileCount":64,"integrity":"sha512-jmWIfysgiRDOzlV5OQ/17H+C190IpJGJlAyUQAuI6jKJVd94HQoQDslq1fU4GVLE+K5nlmMHMrXTq5y/PDtj2Q==","signatures":[{"sig":"MEQCIAobHe3Ipl+qnBcm/NvpZ2emOLxYdSn2DATHZp+O+mcLAiBFNgalUq4Bm3DurWr32V+SJRnuoA6d3a/v/1XkWARWiQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIHk0eRwxG3x2NdHesssW7hGIpVlb9MLbLI3C2a/HRUeuAiEAsOdYzU2Gzf4stXOQIhCrHtrGw3gOipWKxBIsclEva68=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@tranhoangnguyen0310%2fpi-flow-external@2.9.0-external.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1161848},"main":"./index.ts","type":"module","engines":{"node":">=22.19.0"},"exports":"./index.ts","gitHead":"dbf185544c67acd93efb1f7425ac9ba0b931579d","scripts":{"e2e":"node --experimental-transform-types scripts/e2e/external.mjs","test":"vitest run","build":"tsc","check":"tsc --noEmit && vitest run","field-report":"node scripts/field-report.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:31e1212f-b31b-4217-ba3c-aaaf18ce5ce3"}},"repository":{"url":"git+https://github.com/tranhoangnguyen03/pi-flow-external.git","type":"git"},"_npmVersion":"11.19.0","description":"External Claude Code, Codex CLI, Antigravity, Grok Build CLI, Muse Code, and OpenCode delegation for pi.","directories":{},"_nodeVersion":"24.21.0","dependencies":{"acorn":"^8.17.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.2.4","typebox":"1.1.38","typescript":"^5.9.3","@types/node":"^24.12.4","@earendil-works/pi-ai":"0.79.4","@earendil-works/pi-tui":"0.79.4","@earendil-works/pi-agent-core":"0.79.4","@earendil-works/pi-coding-agent":"0.79.4"},"peerDependencies":{"typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-agent-core":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-flow-external_2.9.0-external.0_1790310518063_0.49864482199197857","host":"s3://npm-registry-packages-npm-production"}},"2.10.0-external.0":{"name":"@tranhoangnguyen0310/pi-flow-external","version":"2.10.0-external.0","keywords":["pi-package","pi-extension","subagent","workflow","multi-agent","codex","claude","agy","antigravity","grok","muse"],"license":"MIT","_id":"@tranhoangnguyen0310/pi-flow-external@2.10.0-external.0","maintainers":[{"name":"tranhoangnguyen0310","email":"tranhoangnguyen03@gmail.com"}],"homepage":"https://github.com/tranhoangnguyen03/pi-flow-external#readme","bugs":{"url":"https://github.com/tranhoangnguyen03/pi-flow-external/issues"},"pi":{"image":"https://raw.githubusercontent.com/tranhoangnguyen03/pi-flow-external/main/assets/pi-flow.png","extensions":["./index.ts"]},"dist":{"shasum":"24f1308a36e7a06718000dbd6567d1f0a67cf070","tarball":"https://registry.npmjs.org/@tranhoangnguyen0310/pi-flow-external/-/pi-flow-external-2.10.0-external.0.tgz","fileCount":64,"integrity":"sha512-wATEyf6dDRjGTELtSG1xCNyb6l2dwJK/bexK7ROqsz739RRiigpDQBaPrS8bjIqqjCMlbkBP5cIilstOGFv33A==","signatures":[{"sig":"MEUCIEdgF2UN7NkABn82ryNftKQD46M7je39L4/ScHLHIuSAAiEAtshT2mtuCGFvkyr76oLuM/xQeDeaI19To+vhdFQJvwI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCID/xZdBmV2SWhfQqIUanqKC5+c6RYLobluSc58U48EOoAiBfOSKgN3KO8nUkAtP2ICUK+nUAH4heA3bbCPjsDRV5vQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@tranhoangnguyen0310%2fpi-flow-external@2.10.0-external.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1172162},"main":"./index.ts","type":"module","engines":{"node":">=22.19.0"},"exports":"./index.ts","gitHead":"ae04c8883470dcc16995f75ea2a39b5b32e729db","scripts":{"e2e":"node --experimental-transform-types scripts/e2e/external.mjs","test":"vitest run","build":"tsc","check":"tsc --noEmit && vitest run","field-report":"node scripts/field-report.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:31e1212f-b31b-4217-ba3c-aaaf18ce5ce3"}},"repository":{"url":"git+https://github.com/tranhoangnguyen03/pi-flow-external.git","type":"git"},"_npmVersion":"11.19.0","description":"External Claude Code, Codex CLI, Antigravity, Grok Build CLI, Muse Code, and OpenCode delegation for pi.","directories":{},"_nodeVersion":"24.21.0","dependencies":{"acorn":"^8.17.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.2.4","typebox":"1.1.38","typescript":"^5.9.3","@types/node":"^24.12.4","@earendil-works/pi-ai":"0.79.4","@earendil-works/pi-tui":"0.79.4","@earendil-works/pi-agent-core":"0.79.4","@earendil-works/pi-coding-agent":"0.79.4"},"peerDependencies":{"typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-agent-core":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-flow-external_2.10.0-external.0_1790320418411_0.22728838135291918","host":"s3://npm-registry-packages-npm-production"}},"3.0.0-external.0":{"name":"@tranhoangnguyen0310/pi-flow-external","version":"3.0.0-external.0","keywords":["pi-package","pi-extension","subagent","workflow","multi-agent","codex","claude","agy","antigravity","grok","muse"],"license":"MIT","_id":"@tranhoangnguyen0310/pi-flow-external@3.0.0-external.0","maintainers":[{"name":"tranhoangnguyen0310","email":"tranhoangnguyen03@gmail.com"}],"homepage":"https://github.com/tranhoangnguyen03/pi-flow-external#readme","bugs":{"url":"https://github.com/tranhoangnguyen03/pi-flow-external/issues"},"pi":{"image":"https://raw.githubusercontent.com/tranhoangnguyen03/pi-flow-external/main/assets/pi-flow.png","extensions":["./index.ts"]},"dist":{"shasum":"debfa7055115114babae3c66fa9717f7d8ab6e73","tarball":"https://registry.npmjs.org/@tranhoangnguyen0310/pi-flow-external/-/pi-flow-external-3.0.0-external.0.tgz","fileCount":73,"integrity":"sha512-Yrsa77tSMcgLTclXgQhcDI70VDAM/4Jcv5+1fcIiwbLhmR45l+IRUZ6mOQDsTjuv8cyQaGCqtIGuU890orrbRw==","signatures":[{"sig":"MEQCIBi8O9sqvMreQRpmmo/OcON7USgvRBPusTLgWstjU6NyAiAbT0m4QPakPOLsF79roli792wZFR2269GWYR9QdWvf+Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIGR5lOtv2sBRXJgK3w9829A7xU2reiR72SkEKz1DKir7AiEAi3BQNLirvayN6n4rw9fxcJVxnxf3fX9HB5RL5/Y8PFg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@tranhoangnguyen0310%2fpi-flow-external@3.0.0-external.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1378689},"main":"./index.ts","type":"module","engines":{"node":">=22.19.0"},"exports":"./index.ts","gitHead":"b217060f56589790f6bf0be714e5656e6400dc34","scripts":{"e2e":"node --experimental-transform-types scripts/e2e/external.mjs","test":"vitest run","build":"tsc","check":"tsc --noEmit && vitest run","field-report":"node scripts/field-report.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"31e1212f-b31b-4217-ba3c-aaaf18ce5ce3"}},"repository":{"url":"git+https://github.com/tranhoangnguyen03/pi-flow-external.git","type":"git"},"_npmVersion":"11.19.0","description":"External Claude Code, Codex CLI, Antigravity, Grok Build CLI, Muse Code, and OpenCode delegation for pi.","directories":{},"_nodeVersion":"24.21.0","dependencies":{"acorn":"^8.17.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.2.4","typebox":"1.1.38","typescript":"^5.9.3","@types/node":"^24.12.4","@earendil-works/pi-ai":"0.79.4","@earendil-works/pi-tui":"0.79.4","@earendil-works/pi-agent-core":"0.79.4","@earendil-works/pi-coding-agent":"0.79.4"},"peerDependencies":{"typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-agent-core":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-flow-external_3.0.0-external.0_1790845828556_0.6264039684566951","host":"s3://npm-registry-packages-npm-production"}},"3.1.0-external.0":{"name":"@tranhoangnguyen0310/pi-flow-external","version":"3.1.0-external.0","keywords":["pi-package","pi-extension","subagent","workflow","multi-agent","codex","claude","agy","antigravity","grok","muse"],"license":"MIT","_id":"@tranhoangnguyen0310/pi-flow-external@3.1.0-external.0","maintainers":[{"name":"tranhoangnguyen0310","email":"tranhoangnguyen03@gmail.com"}],"homepage":"https://github.com/tranhoangnguyen03/pi-flow-external#readme","bugs":{"url":"https://github.com/tranhoangnguyen03/pi-flow-external/issues"},"pi":{"image":"https://raw.githubusercontent.com/tranhoangnguyen03/pi-flow-external/main/assets/pi-flow.png","extensions":["./index.ts"]},"dist":{"shasum":"6a2b69ff53ce5c9d83952d33e3d60fe2560d67a4","tarball":"https://registry.npmjs.org/@tranhoangnguyen0310/pi-flow-external/-/pi-flow-external-3.1.0-external.0.tgz","fileCount":76,"integrity":"sha512-Nj0zuuUrr+ncCVye6ExRpfRknJhZz1dgBnEylrmLLMCHLlQRceI65SQlWdpuO32+Lq1CGSDRRfpgQPaFMwnEiw==","signatures":[{"sig":"MEYCIQDvnU/aFLijndGwUSmO/JBSdHNsizipwbo0VxQSayhrewIhAK9TfSa+xywkpjOZ5dV6xYybrvCh4NNI620FEGOjbu6G","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIBKtCrf4r2c3CUgzPIJsxQQ6+8j3UDu/Ml3QgmPRkWMiAiEA7oFOtZfF//qkaSnAkJrd6/UZdjuJNUzNwcQBYrLpShM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@tranhoangnguyen0310%2fpi-flow-external@3.1.0-external.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1393986},"main":"./index.ts","type":"module","engines":{"node":">=22.19.0"},"exports":"./index.ts","gitHead":"b490ade9e4cc6bcbb8300ce2748155d9542bbef2","scripts":{"e2e":"node --experimental-transform-types scripts/e2e/external.mjs","test":"vitest run","build":"tsc","check":"tsc --noEmit && vitest run","field-report":"node scripts/field-report.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"31e1212f-b31b-4217-ba3c-aaaf18ce5ce3"}},"repository":{"url":"git+https://github.com/tranhoangnguyen03/pi-flow-external.git","type":"git"},"_npmVersion":"11.19.0","description":"External Claude Code, Codex CLI, Antigravity, Grok Build CLI, Muse Code, and OpenCode delegation for pi.","directories":{},"_nodeVersion":"24.21.0","dependencies":{"acorn":"^8.17.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.2.4","typebox":"1.1.38","typescript":"^5.9.3","@types/node":"^24.12.4","@earendil-works/pi-ai":"0.99.2","@earendil-works/pi-tui":"0.99.2","@earendil-works/pi-agent-core":"0.99.2","@earendil-works/pi-coding-agent":"0.99.2"},"peerDependencies":{"typebox":"*","@earendil-works/pi-ai":"~0.99.2","@earendil-works/pi-tui":"~0.99.2","@earendil-works/pi-agent-core":"~0.99.2","@earendil-works/pi-coding-agent":"~0.99.2"},"_npmOperationalInternal":{"tmp":"tmp/pi-flow-external_3.1.0-external.0_1790916299303_0.14618541205029123","host":"s3://npm-registry-packages-npm-production"}},"3.1.1-external.0":{"name":"@tranhoangnguyen0310/pi-flow-external","version":"3.1.1-external.0","keywords":["pi-package","pi-extension","subagent","workflow","multi-agent","codex","claude","agy","antigravity","grok","muse"],"license":"MIT","_id":"@tranhoangnguyen0310/pi-flow-external@3.1.1-external.0","maintainers":[{"name":"tranhoangnguyen0310","email":"tranhoangnguyen03@gmail.com"}],"homepage":"https://github.com/tranhoangnguyen03/pi-flow-external#readme","bugs":{"url":"https://github.com/tranhoangnguyen03/pi-flow-external/issues"},"pi":{"image":"https://raw.githubusercontent.com/tranhoangnguyen03/pi-flow-external/main/assets/pi-flow.png","extensions":["./index.ts"]},"dist":{"shasum":"535f1e3a20f5f4f126e585896e914b84afb99841","tarball":"https://registry.npmjs.org/@tranhoangnguyen0310/pi-flow-external/-/pi-flow-external-3.1.1-external.0.tgz","fileCount":76,"integrity":"sha512-03dQxqUZiHAgnzt+6FEKb3IAgrvVgj98qOf8JOgUUUWZXxy88UM9jjnns1Gm0C6u2qXrKRcVz7IKy9qljHtPNQ==","signatures":[{"sig":"MEUCIBeNoGEDtd8IlZsr9DeGw9+vPTVwJC9tvkubxeh0NvNBAiEAjFA4NTwcn8lE4anPSGeIz3741B2OUM+mwKAoJGCTnBw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIHELZG6dujujFpo4WQ6p7LgHUcVzLLGYxear3vt94VWiAiEAv30DYED+F8TKL/RUOwS7TWC7Lv5ltAA8lRXljwR73+o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@tranhoangnguyen0310%2fpi-flow-external@3.1.1-external.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1402875},"main":"./index.ts","type":"module","engines":{"node":">=22.19.0"},"exports":"./index.ts","gitHead":"e1a5e1ebff43f8ab7996fc04f2c22e28037e6ac5","scripts":{"e2e":"node --experimental-transform-types scripts/e2e/external.mjs","test":"vitest run","build":"tsc","check":"tsc --noEmit && vitest run","field-report":"node scripts/field-report.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"31e1212f-b31b-4217-ba3c-aaaf18ce5ce3"}},"repository":{"url":"git+https://github.com/tranhoangnguyen03/pi-flow-external.git","type":"git"},"_npmVersion":"11.19.0","description":"External Claude Code, Codex CLI, Antigravity, Grok Build CLI, Muse Code, and OpenCode delegation for pi.","directories":{},"_nodeVersion":"24.21.0","dependencies":{"acorn":"^8.17.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.2.4","typebox":"1.1.38","typescript":"^5.9.3","@types/node":"^24.12.4","@earendil-works/pi-ai":"0.99.2","@earendil-works/pi-tui":"0.99.2","@earendil-works/pi-agent-core":"0.99.2","@earendil-works/pi-coding-agent":"0.99.2"},"peerDependencies":{"typebox":"*","@earendil-works/pi-ai":"~0.99.2","@earendil-works/pi-tui":"~0.99.2","@earendil-works/pi-agent-core":"~0.99.2","@earendil-works/pi-coding-agent":"~0.99.2"},"_npmOperationalInternal":{"tmp":"tmp/pi-flow-external_3.1.1-external.0_1791104084440_0.3271176611783895","host":"s3://npm-registry-packages-npm-production"}},"3.2.0-external.0":{"pi":{"image":"https://raw.githubusercontent.com/tranhoangnguyen03/pi-flow-external/main/assets/pi-flow.png","extensions":["./index.ts"]},"_id":"@tranhoangnguyen0310/pi-flow-external@3.2.0-external.0","bugs":{"url":"https://github.com/tranhoangnguyen03/pi-flow-external/issues"},"dist":{"shasum":"d45bd6f8de4f8f78ba3ac67f862ffd0bb3868107","tarball":"https://registry.npmjs.org/@tranhoangnguyen0310/pi-flow-external/-/pi-flow-external-3.2.0-external.0.tgz","fileCount":80,"integrity":"sha512-0GcmIhSO9bPShbetDQcBqG7CsHtVUXDKx2OEwAPTSuLIz9NbFCjiCNMHfCmFWeGA5j8T2p5lXS9C6rRP1kUETg==","signatures":[{"sig":"MEUCIEeiP3BceMHAxYVULyIMkKLxvtkle9Eb1CRNqbLiVymeAiEA1JzwpvF9QsfnIKalFUzu4R4UJ6zhi7CF5abqE5v0bXk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDaZTKAKkHWZvHON+avliOJKTk/w+bEodUwodCOitPE7gIhAKR4aCXiyxmMft91IvDTgAS5ZlI88ycrLXMUHPnNQZgD"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@tranhoangnguyen0310%2fpi-flow-external@3.2.0-external.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1445563},"main":"./index.ts","name":"@tranhoangnguyen0310/pi-flow-external","type":"module","engines":{"node":">=22.19.0"},"exports":"./index.ts","gitHead":"b45f6669c0b539bd27f34e1af09114d4a1526463","license":"MIT","scripts":{"e2e":"node --experimental-transform-types scripts/e2e/external.mjs","test":"vitest run","build":"tsc","check":"tsc --noEmit && vitest run","field-report":"node scripts/field-report.mjs"},"version":"3.2.0-external.0","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"31e1212f-b31b-4217-ba3c-aaaf18ce5ce3"}},"homepage":"https://github.com/tranhoangnguyen03/pi-flow-external#readme","keywords":["pi-package","pi-extension","subagent","workflow","multi-agent","codex","claude","agy","antigravity","grok","muse"],"repository":{"url":"git+https://github.com/tranhoangnguyen03/pi-flow-external.git","type":"git"},"_npmVersion":"11.19.0","description":"External Claude Code, Codex CLI, Antigravity, Grok Build CLI, Muse Code, and OpenCode delegation for pi.","directories":{},"maintainers":[{"name":"tranhoangnguyen0310","email":"tranhoangnguyen03@gmail.com"}],"_nodeVersion":"24.21.0","dependencies":{"acorn":"^8.17.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.2.4","typebox":"1.1.38","typescript":"^5.9.3","@types/node":"^24.12.4","@earendil-works/pi-ai":"0.99.2","@earendil-works/pi-tui":"0.99.2","@earendil-works/pi-agent-core":"0.99.2","@earendil-works/pi-coding-agent":"0.99.2"},"peerDependencies":{"typebox":"*","@earendil-works/pi-ai":"~0.99.2","@earendil-works/pi-tui":"~0.99.2","@earendil-works/pi-agent-core":"~0.99.2","@earendil-works/pi-coding-agent":"~0.99.2"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/pi-flow-external_3.2.0-external.0_1791104634023_0.3693533608716255"}}},"time":{"created":"2026-06-21T10:22:01.453Z","modified":"2026-10-04T09:03:54.469Z","1.0.10-external.0":"2026-06-21T10:22:01.897Z","1.0.10-external.1":"2026-06-21T10:46:23.965Z","1.0.10-external.2":"2026-07-16T09:56:24.051Z","1.0.10-external.3":"2026-08-07T08:10:37.861Z","1.0.10-external.4":"2026-08-21T18:16:32.524Z","1.0.10-external.5":"2026-08-21T19:03:00.457Z","1.1.0-external.0":"2026-08-22T15:31:07.772Z","1.1.0-external.1":"2026-08-23T17:30:15.440Z","1.1.0-external.2":"2026-08-24T10:39:05.548Z","1.1.0-external.3":"2026-08-28T02:37:08.522Z","1.2.0-external.0":"2026-08-29T18:17:50.104Z","1.3.0-external.0":"2026-09-06T09:08:24.749Z","1.4.0-external.0":"2026-09-06T14:18:22.255Z","1.5.0-external.0":"2026-09-06T17:02:02.102Z","1.6.0-external.0":"2026-09-07T09:49:54.779Z","1.7.0-external.0":"2026-09-07T15:03:28.936Z","1.7.0-external.1":"2026-09-07T15:28:01.811Z","1.8.0-external.0":"2026-09-08T08:21:16.180Z","1.8.0-external.1":"2026-09-08T16:10:32.640Z","1.9.0-external.0":"2026-09-08T17:46:42.801Z","1.10.0-external.0":"2026-09-12T10:48:56.742Z","2.0.0-external.0":"2026-09-15T10:02:12.244Z","2.1.0-external.0":"2026-09-15T10:09:12.854Z","2.1.0-external.1":"2026-09-17T10:43:33.351Z","2.1.0-external.2":"2026-09-18T06:00:25.501Z","2.1.0-external.3":"2026-09-18T07:06:03.374Z","2.2.0-external.0":"2026-09-20T17:08:07.109Z","2.3.0-external.0":"2026-09-21T10:37:06.454Z","2.3.1-external.0":"2026-09-21T11:59:13.854Z","2.4.0-external.0":"2026-09-21T13:22:11.240Z","2.4.1-external.0":"2026-09-23T03:10:38.450Z","2.4.2-external.0":"2026-09-23T05:21:06.155Z","2.5.0-external.0":"2026-09-23T08:37:50.212Z","2.6.0-external.0":"2026-09-24T05:00:08.661Z","2.7.0-external.0":"2026-09-24T11:19:14.324Z","2.8.0-external.0":"2026-09-25T04:23:30.744Z","2.9.0-external.0":"2026-09-25T04:28:38.183Z","2.10.0-external.0":"2026-09-25T07:13:38.566Z","3.0.0-external.0":"2026-10-01T09:10:28.711Z","3.1.0-external.0":"2026-10-02T04:44:59.413Z","3.1.1-external.0":"2026-10-04T08:54:44.532Z","3.2.0-external.0":"2026-10-04T09:03:54.136Z"},"bugs":{"url":"https://github.com/tranhoangnguyen03/pi-flow-external/issues"},"license":"MIT","homepage":"https://github.com/tranhoangnguyen03/pi-flow-external#readme","keywords":["pi-package","pi-extension","subagent","workflow","multi-agent","codex","claude","agy","antigravity","grok","muse"],"repository":{"url":"git+https://github.com/tranhoangnguyen03/pi-flow-external.git","type":"git"},"description":"External Claude Code, Codex CLI, Antigravity, Grok Build CLI, Muse Code, and OpenCode delegation for pi.","maintainers":[{"name":"tranhoangnguyen0310","email":"tranhoangnguyen03@gmail.com"}],"readme":"# pi-flow external\n\nExternal agent delegation for [pi](https://github.com/earendil-works/pi). A **role** is the work. A **harness** is where and how that role executes. The harnesses are:\n\n- Antigravity (`agy`)\n- [Claude Code](https://docs.anthropic.com/en/docs/claude-code) (`claude`)\n- [Codex CLI](https://github.com/openai/codex) (`codex`)\n- [Grok Build CLI](https://github.com/xai-org/grok-build) (`grok`)\n- Muse Code (`muse`)\n- [OpenCode](https://opencode.ai/docs/cli/) (`opencode`)\n- Named Pi harnesses (`pi-<label>`) — in-process, per-model configs you register yourself, not a spawned CLI\n\nSix built-in roles are available in memory on every one of those harnesses. A fresh installation writes no profile files.\n\nThe ordinary driver has four tools (`workflow` can be disabled):\n\n- `Agent` resolves and runs one external role.\n- `workflow` orchestrates multiple external roles with trusted JavaScript.\n- `external_help` returns the usage playbook, role details, permission behavior, or workflow guidance on demand.\n- `external_runs` lists, inspects, waits for, and cancels session-owned runs.\n\n`Agent`, `workflow` and `external_runs` return a [versioned public contract](docs/public-contract.md) to native Pi codemode. Expected failures are returned with a typed `error.code` rather than thrown, so scripts must check `ok`.\n\n`Agent` and `workflow` accept a role with an optional harness — `agy`, `claude`, `codex`, `grok`, `muse`, `opencode`, or a registered `pi-*` name. A registered Pi harness uses that same selection. Legacy exact `subagent_type` remains available and cannot be combined with `role` or `harness`. `pi_flow_role_create` is active only during `/external config role assist`. `pi_flow_harness_create` is active only during `/external config harness assist`. Worked calls are `external_help` topic `usage`.\n\n## Install\n\nHost baseline: **Pi 0.99.2**, with Pi peers restricted to `~0.99.2` (0.99.x patches from 0.99.2). The offline suite is pinned to exactly 0.99.2; older hosts and later minor versions are not claimed as supported.\n\nGlobal installation:\n\n```bash\npi install npm:@tranhoangnguyen0310/pi-flow-external\npi list\n```\n\nProject-only installation:\n\n```bash\npi install -l npm:@tranhoangnguyen0310/pi-flow-external\n```\n\nProject packages load after project trust. Use `pi list --approve` to inspect and approve packages in a new project.\n\nUpdate installed extensions with:\n\n```bash\npi update --extensions\npi list\n```\n\n## Requirements and security\n\nInstall and authenticate each external CLI you intend to use:\n\n```bash\nclaude --version\ncodex --version\nagy --version\ngrok --version\nmuse --version\nopencode --version\n```\n\nPi's coordinator model and the external CLIs authenticate independently. A working Claude, Codex, Antigravity, Grok, Muse, or OpenCode login does not authenticate the root Pi model. The Grok Build CLI installs and authenticates entirely separately from Pi: install with `curl -fsSL https://x.ai/cli/install.sh | bash`, then authenticate with `grok login` or an `XAI_API_KEY` environment variable. This integration is verified against Grok Build CLI `1.0.40`. Muse Code likewise installs and authenticates separately from Pi; this integration is verified against Muse Code `1.3.0` against its `meta` provider.\n\nExternal agents use the effective permission tier and each harness's native mechanism:\n\n- Claude: `--permission-mode plan`, `--permission-mode acceptEdits`, or `--dangerously-skip-permissions`\n- Codex: `--sandbox read-only`, `workspace-write`, or `danger-full-access`\n- Antigravity: only `--dangerously-skip-permissions`. `readonly` and `edit` are rejected.\n- Grok: `--sandbox read-only`, `workspace`, or `off`, always alongside `--permission-mode bypassPermissions` — bypass only skips the interactive approval prompt; the kernel sandbox remains the enforced boundary. `readonly`'s network-blocking guarantee is Linux-only (a no-op on macOS), and sandbox startup can fail closed on some macOS hosts (for example when `/var/run/docker.sock` resolves to a symlink) rather than silently running unsandboxed.\n- Muse: every tier passes `--disable-approval` (approval and Muse's own sandbox are ON by default, and headless runs must not hang on an interactive prompt); `readonly` additionally passes `--disable-write --disable-shell`; `edit` leaves the sandbox enabled with only approval bypassed; `danger` uses `--yolo`, which disables approval and the sandbox and additionally trusts the workspace for this run (loads its skills/rules) — a broader grant than an unsandboxed run alone.\n- OpenCode: `danger` uses `--auto`; restricted tiers inject deny-by-default native tool rules. These are not an OS sandbox; plugins and MCP still load. See the OpenCode section for restrictions.\n- Named Pi harnesses: a curated tool list (`read`/`grep`/`find`/`ls` at `readonly`; those plus `edit`/`write` at `edit`), or the SDK's own default active tools (`read`/`bash`/`edit`/`write`) at `danger`. That list is not an OS sandbox. The registration preset is `minimal` (skills stay unloaded; the default when the field is absent) or `skills` (installed skills load; project skills load only when the project is trusted). Extensions, prompt templates, and themes stay unloaded.\n\nThe effective tier is the call's `permission`, or settings `defaultPermission` when the call omits it. The default is `danger`. A role does not change the tier. Claude refuses bypass mode when its effective UID is `0`; danger then uses `--permission-mode auto`. Claude `edit` denies Bash headlessly. Pass `danger` on the call when the task needs a shell. Run external agents only in repositories you trust and state whether each task is read-only or may edit files.\n\nThe TUI labels a direct run with its effective access, including `unsandboxed external CLI` for danger, `Pi SDK child · host access · curated tools` for a danger-tier named Pi harness, and `external host access` while workflow work is active. These labels disclose actual execution authority. A read-only instruction in a role is intent, not that authority.\n\n## Quick start\n\nThe six built-in roles — explorer, planner, implementer, reviewer, qa, and worker — are already available on `agy`, `claude`, `codex`, `grok`, `muse`, `opencode`, and any enabled named Pi harness you register. Nothing has to be authored first.\n\n1. Run `/external` to open the guided settings window. Check the default agent, pick a model or reasoning level if you want, and close it.\n2. Run `/external doctor` to check CLI installation and reported sign-in separately from configuration. A configured agent can still be uninstalled or unauthenticated.\n3. Delegate by role. The built-in default harness is `agy`:\n\n```text\nUse the Agent tool with role \"explorer\" and harness \"claude\" to map this repository read-only.\n```\n\nExisting v4 installations must convert first; `/external` opens a **Settings need attention** screen (see [Breaking upgrade](#breaking-upgrade)).\n\n## Configure agents\n\n`/external` and `/external config` open the same guided window. Agents are listed by name (Antigravity, Claude Code, Codex CLI, Grok CLI, Muse Code, OpenCode, and `Pi · <label>` for registered Pi agents), with the default and any **Off** state marked.\n\n```text\nExternal agents\nDefault: <agent>\n  <agent> · Default · <model>      → Model · Reasoning · Make default · Role customizations…\n                                     Check installation and sign-in… (CLI) | Check model and credentials… (Pi)\n                                     Send a test message… (may incur cost) (Pi only) · Turn on | Turn off · Advanced…\n  Add a Pi agent…                  → provider → model → name → Review new agent → Create agent\n  Roles…                           → <role> → Edit shared instructions… · Customize for an agent… ·\n                                     Turn off everywhere · Details · Restore original instructions… | Remove role…\n                                     Create a role…\n  Recent runs…                     → the same navigator as /external runs\n  Advanced…                        → Global default… · Default access · Default spending cap (USD) · Concurrent runs ·\n                                     Run timeout · Retained completed runs · Configuration details · Edit settings file… ·\n                                     Diagnostics (checks installation/sign-in)… · Legacy selectors… · Purge old files…\n  Close\n```\n\nPickers mark the current choice with `· Current`; settings screens show current values in their rows. Choices save immediately (\"Saved · applies to future calls.\"). Cancelling an input or editor saves nothing from that step, and closing the window does not undo earlier saves. There is no undo history: remove a customization with the **Same as …**, **Use shared instructions**, or **Restore …** choices described below. Removal and restore keep their impact previews. In the terminal window, confirmations start on **Cancel**.\n\nAccess is global, not per agent. The agent screen shows the global default (for example `Access: Full access via agent permissions`); change it under **Advanced → Default access**, and a call's `permission` still overrides it. Antigravity shows **Full access only**, and the window will not make it the default unless default access is Full access.\n\n### Walkthrough: change an agent's model\n\n1. `/external` → select **Codex CLI** → **Model · …**.\n2. Select a row such as `<name> · <id>`. Type `/` and part of a name to filter. **Enter a custom model ID…** accepts an unlisted ID; **About this model list** says where the list came from.\n3. The window confirms `Saved model for Codex CLI. Used by roles without their own setting`. **Use Codex CLI settings** removes the pin again so the CLI's own default applies.\n\n**Reasoning · …** works the same way. **Match my Pi session** stores a snapshot policy: each new call copies your current Pi session level. It is not available for OpenCode, whose reasoning is a model variant (**Enter model variant…**) that requires a pinned model. For Antigravity and Grok, the window offers only the levels those adapters forward unchanged; the explicit commands accept the full validated set.\n\n### Walkthrough: customize one role, then return to inheritance\n\n1. `/external` → **Roles…** → **reviewer** → **Customize for an agent…** → **Codex CLI**. The screen says `Changes here affect this agent only`.\n2. **Reasoning · …** → **High**. The window confirms `Saved reasoning for reviewer on Codex CLI only.` In settings this is a sparse `harnesses.codex.roles.reviewer` entry; no instructions are copied.\n3. To undo it, open **Reasoning · …** again and choose **Same as Codex CLI · …**. That removes the role's own value, so it follows the agent again.\n\nTwo choices look similar but differ:\n\n| Choice on a role's model/reasoning | Result |\n|---|---|\n| **Same as Codex CLI · …** | Removes this role's setting; the role inherits whatever the agent uses now or later |\n| **Use Codex CLI settings** | Stores an explicit `native` value for this role; the CLI's own default applies even if the agent has a pinned model |\n\n**Instructions · …** offers **Customize for this agent…** (a replacement for this agent only), **Use shared instructions** (removes that replacement after a preview and confirmation), and **View effective instructions**. Role-level **Advanced…** holds the spending cap, **Allowed tools** (Pi agents only), Details, and **Restore these role customizations…**. If a role is unavailable, **Reasons and fixes…** lists every blocking gate and offers only the fixes that apply, such as **Turn on reviewer for Codex CLI only**.\n\n### Walkthrough: add a Pi agent\n\n1. `/external` → **Add a Pi agent…** → **Choose a model provider**. Providers with configured credentials are listed, or every provider when none are configured. **Show all providers…** appears when others exist.\n2. Pick a model under `Models › <provider>`. Rows read `<name> · <id> · Account configured` or `· Account not configured`.\n3. **Name this Pi agent**: lowercase letters, numbers, and hyphens. `fast` becomes `pi-fast`, shown as `Pi · fast`.\n4. **Review new agent** shows **Model**, **Reasoning · Off**, and **Skills · Not loaded**; change any of them, then choose **Create agent**. Nothing is saved before that.\n\nCreating sends no prompt. **Check model and credentials…** is also offline: it looks the model up in Pi's registry and reports whether credentials are configured. **Send a test message… (may incur cost)** is the only request the window sends. It asks for confirmation, then sends one readonly-tool prompt from an empty temporary directory. It may wait for a free run slot, stops after 60 seconds, and writes no run record. Esc cancels it in the terminal window. A pass shows that this one request worked; it does not judge role quality.\n\n### Where model lists come from\n\n| Agent | List source |\n|---|---|\n| Codex CLI | Codex's local model catalog (`$CODEX_HOME/models_cache.json`, default `~/.codex`); may be stale; no request. Open Codex once if it is missing |\n| Claude Code | The `sonnet`, `opus`, and `fable` aliases; the CLI resolves the version when it runs |\n| Antigravity, Grok CLI, OpenCode | The CLI's own `models` command, run only when you open the picker (10-second limit). Grok and OpenCode names are derived from IDs |\n| Muse Code | No listing; current and previously configured IDs plus a custom ID |\n| Pi agents | Pi's model registry, grouped by provider |\n\nListing never sends a prompt, but a CLI may contact its own service. A listed model, **Account configured**, or a successful sign-in check does not prove that your account can use that model. Access is checked by an actual request. If a CLI listing fails, the window says so and you can still enter an ID. Pi choices must resolve through Pi's registry; add missing models to Pi first.\n\n### Terminal, RPC, and headless behavior\n\n- **Terminal (TUI):** one overlay. ↑/↓ navigate, Enter selects, `/` filters list rows, Esc clears the filter, then goes back, then closes. PgUp/PgDn scroll previews. In the instructions editor, Shift+Enter adds a line and Ctrl+G opens `$VISUAL`/`$EDITOR` (a failed editor keeps the draft). Esc cancels model listing and the Pi test.\n- **RPC:** the same menus use the client's standard select, input, editor, and confirm dialogs. Text screens appear as a dialog with **Back**. Filtering depends on the client, and model listing or a confirmed Pi test cannot be cancelled from the dialog; they end at their time limits.\n- **Without UI:** `/external` prints a short overview and `/external config` prints the configuration text. Use the commands under [Command reference](#command-reference) instead.\n\nOpening the window runs no probes and sends no model requests. Invalid, outdated, or future-version settings open **Settings need attention** with **Preview format update…** (only when a conversion is ready), **Edit settings file…**, and **Show problem and file location**. If settings become invalid while the window is open, it reports **Settings changed** and returns to that screen. It never runs on fallback settings.\n\n## Breaking upgrade\n\nSettings are now **version 5**. Existing v4 installations need an explicit conversion; reads never migrate. Open `/external` and choose **Preview format update…**, or run `/external config convert`. The preview preserves all instructions (including empty full overrides), model/effort pins, and independent disabled scopes. It writes an immutable `settings.v4.backup.json` and nested instruction copies before activating v5. Originals remain untouched. Conflicting destinations or changed sources block activation; identical interrupted copies can be reused.\n\nConversion notes disclose retained exclusions and exact Pi selectors whose effective model/effort become explicit pins. Legacy CLI `tools` metadata is omitted with a source-specific note because CLI backends never enforced it; Pi tool restrictions are preserved. Unsupported effort blocks conversion with the source file and repair guidance—values are never silently remapped. Editing `version` in the settings editor cannot bypass conversion or perform a downgrade.\n\nPre-v4 installations use the existing conservative first conversion to v4, then run the command again to preview v5. No old layout remains a live fallback. Ordinary delegation does not require purging originals. Repeated model pins are **not** automatically promoted to harness defaults: that changes future-role behavior and requires a separate reviewed consolidation.\n\nCommand changes. Removed routes are not aliases and do not run; `/external help` lists them too:\n\n| Old | Current |\n|---|---|\n| `/external` (printed an overview) | Opens the guided window in the terminal and RPC; prints the overview only without UI |\n| `/external config` (printed configuration) | Opens the guided window in the terminal and RPC; `/external config text` prints the configuration in any mode |\n| `/external config harnesses` | `/external config harness list` |\n| `/external config enable\\|disable\\|default NAME` | `/external config harness enable\\|disable\\|default NAME` |\n| `/external config harness create` (interview) | `/external config harness create pi-NAME --model provider/model` (no request), or `/external config harness assist` for the interview |\n| `/external roles` | `/external config role list` |\n| `/external role create` | `/external config role create NAME`, or `/external config role assist` |\n| `/external role inspect ROLE [HARNESS]` | `/external config role inspect ROLE [--harness HARNESS]` |\n| `/external role override ROLE HARNESS` | `/external config role edit ROLE --harness HARNESS` for instructions; `/external config role set ROLE --harness HARNESS` for model, effort, budget, or tools |\n\nThe older `/external settings`, `/external profiles`, `/external profile create`, `/pi-flow-profile create`, and `/external harnesses` routes remain removed. Agent/workflow selection APIs are unchanged. Canonical pair identities are now `harness/role`; unambiguous legacy exact pair names remain supported.\n\n### Optional purge\n\nDelegation after conversion does not require deleting anything. `/external [danger]purge-old-files` is a separate destructive maintenance command. The brackets and the word `danger` are part of the spelling.\n\nIt lists the exact candidate paths and whether customized content was copied. Nothing is preselected. You toggle each path, then confirm deletion of that selection. It requires converted settings (v4 or v5), so it cannot erase the only harness registry or deletion markers before they are recorded. Delegation still requires v5. Customized copies inside the inventory can be deleted too.\n\n| Candidate | Scope |\n|---|---|\n| Legacy seeded profiles | The exact 30 `<agy\\|claude\\|codex\\|grok\\|muse>-<explorer\\|planner\\|implementer\\|reviewer\\|qa\\|worker>.md` names under the old `subagents/` directory |\n| Legacy custom CLI profiles | Harness-prefixed Markdown files declaring the matching external backend |\n| Legacy named Pi profiles | `pi-<label>-<role>.md` declaring `backend: pi` and the matching harness, identified from the file |\n| Legacy shared Pi templates | `subagents/pi-<role>.md` declaring `harness: \"pi-*\"`. Conversion already copied these into `roles/<role>.md` |\n| Seed markers | `.pi-flow-defaults-seeded-v1`, `.pi-flow-defaults-seeded-v2`, and `.pi-flow-defaults-seeded-v3` |\n| Old harness registry | The exact `pi-flow-external/harnesses.json` path |\n\nNonstandard exact-only legacy names are listed separately for an explicit choice. Symlinks and other non-regular entries are skipped. The command does not recurse. It does not remove the `subagents/` directory, native or unrelated profiles, current settings, roles, overrides, project configuration, or run evidence. It reports deleted, skipped, and failed paths. Running it again is harmless. A file that changes after the preview is skipped and reported.\n\nDowngrade after a purge needs your own backup of the deleted files. Originals remain available only until you purge them.\n\n## Command reference\n\nThe guided window covers everyday configuration. These commands are for automation, sessions without UI, diagnostics, and fields the window does not edit. Creation, editing, and lifecycle changes are deterministic and do not need a model. Commands that need an editor or confirmation require UI; `assist` and explicit Pi tests are separate model-request paths.\n\n```text\n/external config harness set codex --model <model-id> --effort high\n/external config harness reset codex --effort\n/external config harness default claude\n/external config harness disable muse\n/external config role set reviewer --harness codex --effort xhigh\n/external config role edit reviewer --harness codex\n/external config role reset reviewer --harness codex --instructions\n```\n\n| Command | Purpose |\n|---|---|\n| `/external` | Guided settings window (short text overview without UI) |\n| `/external config` | The same guided window (configuration text without UI) |\n| `/external config text` | Print effective configuration, its sources, and the settings path in any mode |\n| `/external config edit` | Edit and validate canonical settings in the standard editor |\n| `/external config convert` | Preview and apply explicit configuration conversion |\n| `/external doctor` | Validate the catalog, then report CLI and named-Pi readiness separately |\n| `/external config harness list` | Harnesses with model, effort, preset, enabled, and default state. Readiness is separate |\n| `/external config harness inspect NAME` | Effective defaults with their origin, role exceptions, instruction overrides, and remaining gates |\n| `/external config harness create pi-NAME --model provider/model` | Register a named Pi harness (`--effort`, `--preset minimal\\|skills`). Sends no request |\n| `/external config harness edit NAME` | Edit one harness entry in the standard editor; validated before saving |\n| `/external config harness enable\\|disable NAME` | Toggle a harness for new calls; configuration is preserved |\n| `/external config harness set NAME` | Set `--model`, `--effort`, and on Pi `--preset` |\n| `/external config harness reset NAME` | Reset `--model`/`--effort`/`--preset`, or everything after a confirmed preview; gates stay |\n| `/external config harness delete pi-NAME` | Delete a named Pi harness and its overrides after a confirmed preview |\n| `/external config harness default NAME` | Choose an enabled global default; trusted project overrides still take precedence |\n| `/external config harness test NAME` | Explicit readiness check; see below |\n| `/external config harness assist` | Assisted named Pi harness interview; smoke-tests before saving |\n| `/external config role list` | One row per role with source, enabled state, and harnesses with exceptions |\n| `/external config role inspect NAME [--harness H]` | Per-harness availability, or one binding's instructions, values with origins, gates, and real authority |\n| `/external config role create NAME` | Author one reusable role in the editor |\n| `/external config role edit NAME [--harness H]` | Edit shared instructions, or one harness's replacement instructions |\n| `/external config role enable\\|disable NAME [--harness H]` | Toggle a role everywhere, or one binding |\n| `/external config role set NAME --harness H` | Binding `--model`, `--effort`, `--budget`, and Pi `--tools a,b` |\n| `/external config role reset NAME [--harness H]` | Reset selected fields or `--instructions`, or everything after a confirmed preview; gates stay |\n| `/external config role delete NAME` | Delete a custom role everywhere after a confirmed preview |\n| `/external config role assist` | Optional assisted role-authoring interview |\n| `/external [danger]purge-old-files` | List and delete obsolete extension files. Secondary maintenance; the brackets are literal |\n| `/external workflows` | List saved workflows |\n| `/external runs` | Interactively browse current-session runs, every workflow child, paged output/diagnostics, and cancellation |\n| `/external runs summary` | Summarize durable run records |\n| `/external runs --prune` | Prune eligible completed run records |\n| `/external help` | Show the command reference and the replaced commands ([mapping](#breaking-upgrade)) |\n\nOne harness setting covers every current and future role on that harness. A role exception on one harness (`role set NAME --harness H`) stores only the changed fields and copies no instructions. `role edit NAME` changes the shared instructions; `role edit NAME --harness H` writes a replacement for that one harness only. Model, effort, budget, and tools always need `--harness`; `--tools` applies to named Pi harnesses only. `model native` on a binding selects the CLI's own model, even over a harness pin. This is the window's **Use … settings** choice; resetting the field is **Same as …**.\n\nThree gates apply together: the harness, the role (every harness), and one binding (`--harness`). Enabling one gate reports any gate that still blocks the selection. Disabling preserves definitions, removes the selection from executable discovery, and never switches a call to another harness. Choose another default before disabling the current default; a disabled harness cannot become the default. Existing children and already-running workflows keep their invocation-time configuration.\n\n`reset` with field flags deletes only those properties so they inherit again; without field flags it previews every customization it will remove and asks for confirmation. Reset never enables anything. A role reset removes instruction files before scalar settings; failed file removal keeps scalars intact. Partial removals or a later settings-write failure are reported, and a new preview can finish the reset. Built-in roles and the six CLI harnesses cannot be deleted: reset or disable them instead. Deleting a custom role or a named Pi harness previews every owned file and settings field, refuses while the harness is a global or trusted-project default, disables the entity before removing its files, and leaves it disabled if a file cannot be removed. Run receipts and native CLI configuration are never touched. Every change applies from the next invocation.\n\nPi agent creation paths differ in what they send:\n\n| Path | Requests |\n|---|---|\n| **Add a Pi agent…** or `config harness create` | None. Saving is structural |\n| **Check model and credentials…** | None. Registry lookup and configured-credential state only |\n| **Send a test message…** or `config harness test pi-NAME` | One confirmed, potentially paid readonly request. Needs a UI for the confirmation; without one it reports `Test cancelled`. The command form cannot be cancelled with Esc and ends at the 60-second limit |\n| `config harness assist` | An interview with your root Pi model, then a smoke test against the chosen model before saving; a failed test is rolled back |\n\nFor a CLI, `config harness test` and **Check installation and sign-in…** run the CLI's version and login-status checks and send no model request. A harness smoke test does not judge role quality. `/external doctor` reports disabled harnesses without probing their readiness.\n\n`/external doctor` reports CLI availability separately from provider authentication and catalog validity. Claude and Codex use their non-interactive login-status commands; other CLIs report login as unverified. Credential presence does not prove a request will succeed. Known inherited authentication/routing environment variables are listed by name only, never value. Native status commands may access credential storage or perform network activity; no model prompts or quota requests are sent, and no credentials are changed.\n\nDoctor also reads retained run summaries for this project and shows the latest recorded usage-limit observation per harness, its source run, any reset time, and whether a later run succeeded. These are historical observations, not current account status. New failed Claude runs can preserve structured rate-limit rejections; Antigravity runs can preserve terminal individual-quota errors. Other backends and older records may have no evidence. Missing, malformed, or oversized summaries are skipped and counted; backend event logs and model answers are never searched. Remaining allowance stays unavailable.\n\nWithout UI, `/external` prints an overview like this:\n\n```text\nExternal agents\nDefault: pi-deepseek (global)\nRoles: 7 known\nHarnesses: 6 CLI · 1 named Pi (see /external config)\nSettings: ~/.pi/agent/pi-flow-external/settings.json\n```\n\nThe built-in default harness on a fresh installation is `agy`. The overview above is a directory that has already registered `pi-deepseek` and authored one extra role.\n\n## Configuration\n\nOne extension-owned home. Reads do not create directories or write defaults. The extension does not write Pi's root settings or Pi's native `subagents/` directory.\n\n```text\n$PI_CODING_AGENT_DIR/pi-flow-external/\n  settings.json             # only execution-configuration file; optional\n  roles/                    # user-authored shared roles; created when you save one\n    security-reviewer.md\n  overrides/                # instruction replacements only\n    claude/reviewer.md\n  runs/                     # operational evidence\n```\n\nNormally `$PI_CODING_AGENT_DIR` is `~/.pi/agent`. Markdown holds authored instructions. JSON holds scalar execution settings. Project-local roles are not supported; the global catalog is used for both global and project-only package installations. A trusted project may still override `defaultHarness` only, described under Settings.\n\nAt each direct call the extension loads one catalog snapshot. A workflow freezes that same snapshot for the whole run. Resolution order:\n\n1. Harness: explicit call, then the trusted project default, then the global default, then the built-in default (`agy`).\n2. Harness, role, and binding enabled gates must all permit execution. Invalid configuration blocks the selection; no harness substitution.\n3. Instructions: `overrides/<harness>/<role>.md`, then `roles/<role>.md`, then built-in instructions.\n4. Model/effort: sparse `harnesses.<harness>.roles.<role>` setting, then harness default, then native CLI defaults (Pi requires a model). Permission remains call then global default.\n\nAn omitted scalar inherits. `thinking: parent` snapshots the parent effort; `native` omits the CLI override. `off` requests a level, not reset. Reset removes only the chosen customization. Explicit unsupported effort fails; OpenCode variants require a pinned model. With `parent`, the root level must be supported by the selected backend (for example Claude/Codex reject `off`); change the root level, pin a supported effort, or use CLI-native effort. Inspection reports origins and adapter constraints. A native unresolved default cannot establish replay equivalence.\n\nLinked/non-directory configuration roots block the catalog instead of loading instructions through an unsafe ancestor. An invalid higher-priority override blocks that selection. An unrelated invalid file is reported and does not take a different role offline. Invalid settings JSON, or a settings version this release does not support, blocks delegation. `/external config`, `/external config convert`, and `/external config role inspect` remain available. The next invocation reads settings, roles, and overrides from disk. A workflow that has already started keeps the snapshot it froze at start. A change to `maxConcurrentSubagents` waits until no subagent is active and none are queued.\n\nCanonical binding identities are `<harness>/<role>`, with separate role/harness fields. Legacy `<harness>-<role>` selectors remain accepted when unambiguous; ambiguous names fail and request explicit role/harness selection. Converted nonstandard exact selectors remain explicit compatibility records. Stored exact selectors take precedence over inferred legacy aliases, without replacing structured bindings. They are listed and inspectable under `config role`; edit/remove their preserved JSON `exact` entry through `config edit`. They retain legacy instructions there and deliberately do not participate in ordinary role deletion/reset. Permission is the call, or `defaultPermission`. It is not a role field.\n\nNames may contain lowercase letters, numbers, and hyphens. A role `description` is the user-visible reason for selection, so keep it concise. Instructions become the external agent's system instructions. Shared role files accept `description` only. `permission`, `capabilitySet`, `backend`, `model`, and `thinking` on a shared role are rejected with a diagnostic.\n\n`roles/security-reviewer.md` works with any harness, with no backend prefix:\n\n```md\n---\ndescription: Review security-sensitive changes and report actionable findings.\n---\n\nReview the supplied changes without editing files. Prioritize exploitable\nissues, cite locations, and distinguish verified findings from speculation.\n```\n\nRole instructions do not erase harness differences. Antigravity accepts only autonomous danger. A CLI harness does not gain a named Pi harness's curated tool list. That list is not an OS sandbox.\n\n### Sparse execution settings and instruction replacements\n\nSet all Codex roles once, including future shared roles:\n\n```text\n/external config harness set codex --model gpt-6.1-sol --effort high\n/external config role set reviewer --harness codex --effort xhigh\n```\n\nThese write JSON, never copy role instructions:\n\n```json\n{\n  \"version\": 5,\n  \"harnesses\": {\n    \"codex\": {\n      \"model\": \"gpt-6.1-sol\",\n      \"thinking\": \"high\",\n      \"roles\": { \"reviewer\": { \"thinking\": \"xhigh\" } }\n    }\n  }\n}\n```\n\nModel names are installation/account-specific examples, not availability promises. Role-specific model/effort settings also work on named Pi harnesses. `preset` remains harness-owned. `tools` is accepted only on Pi and intersected with the permission tier.\n\nTo replace instructions, use `/external config role edit reviewer --harness claude`. Its `overrides/claude/reviewer.md` has only description frontmatter and the replacement body. A missing file inherits instructions; an empty body explicitly clears them. Removing an instruction replacement restores the shared/built-in body. This never changes scalar settings or enablement.\n\n### Built-in roles\n\nexplorer, planner, implementer, reviewer, qa, and worker ship in memory for `agy`, `claude`, `codex`, `grok`, `muse`, and `opencode`, and for every registered named Pi harness. Session start writes no default files and no seed markers. Fresh CLI roles use native model/effort defaults unless configured. Converted installations preserve legacy parent-effort inheritance explicitly. A named Pi harness's roles inherit its model/effort defaults unless a binding overrides them. Adding a harness writes no role files. Seven authored roles are seven files under `roles/`, whatever the harness count is.\n\nDisable a role everywhere with `/external config role disable reviewer`, or add `--harness codex` for one binding. Enable clears only the named gate and reports remaining blockers. Reset does not enable. Built-in roles cannot be deleted; custom definitions can be deleted after an impact preview.\n\n### Named Pi harness configurations\n\nA named Pi harness runs in-process through Pi's own SDK, for physical models Pi can already resolve (built-in, self-hosted, or a custom-registered provider). Children inherit in-memory provider registrations and the selected provider's runtime API key; stored authentication uses the same agent directory. Virtual model registrations cannot be transferred through the SDK registry and are rejected. Flow retains six concrete thinking levels; SDK `max` remains unsupported. Register it with **Add a Pi agent…** in `/external`, or with `/external config harness create pi-NAME --model provider/model`: a `pi-<label>` name, a `provider/model` id, a reasoning policy (`off`, `minimal`, `low`, `medium`, `high`, `xhigh`, or `parent`, stored explicitly on creation), and a resource preset (`minimal` or `skills`). `minimal` is the default and leaves skills unloaded. `skills` loads installed skills, and project skills only when the project is trusted. Registration is saved into the `harnesses` object of `settings.json` without sending a request. `/external config harness assist` is the model-assisted alternative; its smoke test uses the selected preset and runs before saving. A legacy entry that omits `preset` is `minimal`. The six CLI harnesses are built in and do not need entries there.\n\n```json\n{\n  \"version\": 5,\n  \"defaultHarness\": \"pi-deepseek\",\n  \"maxConcurrentSubagents\": 12,\n  \"subagentTimeoutMs\": 7200000,\n  \"defaultPermission\": \"danger\",\n  \"defaultMaxBudgetUsd\": null,\n  \"maxRunRecords\": 200,\n  \"harnesses\": {\n    \"pi-deepseek\": {\n      \"model\": \"deepseek/deepseek-chat\",\n      \"thinking\": \"high\",\n      \"preset\": \"minimal\"\n    }\n  }\n}\n```\n\nThe six built-in roles are available on that harness immediately. Delegate the same way as a CLI harness:\n\n```ts\nAgent({\n  description: \"Cheap repository review\",\n  prompt: \"Review this diff read-only.\",\n  role: \"reviewer\",\n  harness: \"pi-deepseek\",\n});\n```\n\nA custom role is the one shared file from `/external config role create`. Use `/external config role edit reviewer --harness pi-deepseek` when only that harness needs a different body, and `/external config role set reviewer --harness pi-deepseek --tools read,grep --budget 2` for tools or budget. Permission stays on the call or in `defaultPermission`; an override cannot set it. Model and effort inherit from the harness, with validated role-specific exceptions allowed.\n\nSettings writes use a private staged file and a same-directory replacement, and they preserve unrelated fields. The extension refuses to overwrite a malformed or newer-version file. Replacement avoids a torn write. Concurrent sessions can still overwrite each other's update: there is no inter-process lock. In `assist`, the smoke test finishes before that short commit, and the writer then rereads and checks for a duplicate or a conflict.\n\n**v1 scope, by design:** a pi child's tools are the SDK builtins (`read`/`bash`/`edit`/`write`, plus `grep`/`find`/`ls` at `readonly`/`edit`). The registration preset selects `minimal` (skills stay unloaded) or `skills` (installed skills load; project skills require a trusted project). Extensions, prompt templates, and themes stay unloaded. The tool list is not an OS sandbox, and `bash` at `danger` is host access. Retry is disabled per pi child (in-memory, never touching your real Pi settings). Pi children cannot resume a prior conversation and have no enforced budget cap. Trusted extensions, MCP, resumable sessions, and budget controls remain [issue #43](https://github.com/tranhoangnguyen03/pi-flow-external/issues/43).\n\n### OpenCode\n\nInstall and authenticate OpenCode separately (`opencode auth login`); use `opencode models` for available `provider/model` IDs. The adapter targets **OpenCode 2** (`@opencode/cli`, verified against **2.0.16**) only; OpenCode 1.x is not supported. Every run is `opencode run --standalone --format json`, which starts a private server that the run owns. It never uses or stops your shared background service (`opencode service`). The prompt goes over stdin. OpenCode 2 has no `--dir`; the run takes its project from `PWD` and the working directory, which the adapter sets to the Pi workspace. An omitted model uses OpenCode's configured default. For a role-specific setting:\n\n```text\n/external config role set reviewer --harness opencode --model anthropic/claude-sonnet-4-5 --effort high\n```\n\nChoose an ID available in your own installation. `thinking` is optional and is passed as the model variant (`--model provider/model#high`), so it needs a pinned `model` and must name a variant that model offers. OpenCode 2 rejects an unknown variant before the prompt runs. Inherited Pi thinking is never forwarded. Structured workflow `schema` is unsupported and rejected; plain text results remain available.\n\n`danger` uses `--auto`; explicit OpenCode deny rules still apply. `readonly` and `edit` inject a private, deny-by-default agent through `OPENCODE_CONFIG_CONTENT` and select it with `--agent` on every run, resumes included. A resumed session otherwise keeps the agent it was saved with; OpenCode's `default_agent` applies only to new sessions. The agent allows read/grep/glob, plus edit/write/patch at `edit`. Shell, subagent delegation, web, and every other tool are hidden, and edits outside the workspace are denied. That config reaches only the private standalone server. These are **native tool permission rules, not an OS sandbox**; plugins and MCP servers still load. Restricted tiers refuse an existing `OPENCODE_CONFIG_CONTENT` rather than overwrite it. A restricted resume of a session that carries its own permission rules is refused, because OpenCode applies those after the agent's. A `danger` resume of a session last run by one of these per-run agents is refused too, because that agent no longer exists and the session would run with no tools. Resume it at `readonly` or `edit`, or start a new run.\n\nThe streamed JSON is progress only. OpenCode 2 stops forwarding events once the session is idle, and it exits 0 even after an interruption or a cancelled MCP form. So after a zero exit, the adapter reads the persisted session with `opencode session export --standalone <id>`. The export's output is bounded, and it honors the run's cancellation and timeout. A resume also exports the session once before running. Success requires all of the following:\n- the session ID the run reported;\n- a new user turn carrying exactly this prompt: the only one in a new session, or one absent from the pre-run export on a resume;\n- after that turn, a session outcome and a terminal idle outcome of `succeeded`;\n- a last assistant message that completed with `stop` and no error, with nonempty text;\n- on restricted tiers, every assistant message of the turn run by the injected agent.\n\nThe result is that last assistant message's text, never streamed narration, which can include late or stale text. A malformed, oversized, or unknown export fails the run. Usage is this turn's assistant messages only. Cost is unknown if one lacks usage or ran a native `subagent`, whose child usage is not included. No budget cap is enforced. OpenCode retries transient provider errors internally (up to 10 retries); this extension does not retry it. Cancelling a run ends the CLI; its private server exits when the CLI's lease pipe closes.\n\n## Agent usage\n\nA direct tool call requires `description`, `prompt`, and either `role` or legacy exact-profile `subagent_type`. With `role`, `harness` is optional and uses the trusted project default when present, otherwise the global `defaultHarness` setting:\n\n```ts\nAgent({\n  description: \"Claude repository map\",\n  prompt: \"Map this repository read-only and summarize important files.\",\n  role: \"explorer\",\n  harness: \"claude\",\n});\n```\n\nResolution always targets the structured `<harness>/<role>` identity and does not switch harness. If a role is unavailable, the error lists the harnesses that provide it. Existing calls may instead use `subagent_type` as an exact-identity escape hatch; do not combine it with `role` or `harness`. Nonstandard override names are exact-only.\n\nThe parent prompt always includes one compact catalog of role names, restricted harness availability, exact-only names, the default harness, and a short operating guide. It does not repeat role descriptions, the usage playbook, or the workflow manual. Call `external_help` with topic `usage` for worked examples, `roles` for descriptions, `permissions` for harness caveats, or `workflow` for syntax and saved workflow discovery. The optional `harness` filter applies to `roles` and `permissions`; workflow help also accepts it while explaining cross-harness syntax. A listed role is a catalog entry. It does not mean the CLI is installed or authenticated.\n\nExternal agents start fresh in the requested working directory unless `resume` continues a previous child. By default, they receive only the task briefing and the resolved role instructions. The parent can explicitly share conversation context:\n\n```ts\nAgent({\n  description: \"Review agreed design\",\n  role: \"reviewer\",\n  prompt: \"Review the agreed design read-only. Repository: /absolute/repo.\",\n  context: { mode: \"recent\", turns: 5 },\n});\n```\n\n| `context` | Shares |\n|---|---|\n| Omitted or `{ mode: \"none\" }` | No parent history; write a self-contained prompt |\n| `{ mode: \"recent\", turns: N }` | Last N available user turns, including the current turn |\n| `{ mode: \"full\" }` | Available current-branch conversation after compaction, including summaries |\n\nA **user turn** starts with a user message and includes subsequent assistant messages and tool exchanges until the next user message. This is not Pi's per-model-response turn count. `turns` must be a positive integer. If fewer turns remain, all available user turns are shared and the receipt shows the actual/requested count. Recent mode does not automatically include older compaction summaries. Associated tool calls are retained when a result crosses the selected turn boundary.\n\nChoose the smallest sufficient context: `recent` for focused follow-ups, `full` when older discussion matters, and `none` for independent tasks. Supply missing older decisions explicitly. Use `resume` to follow up with an existing child; it cannot be combined with context sharing.\n\nSnapshots are frozen before queueing. They contain labeled background text and completed tool exchanges, never parent system instructions, thinking blocks, tool-result metadata, or pending tool calls. Images/unsupported content and snapshots over **1 MiB** fail explicitly rather than being silently truncated. Full means available post-compaction context, not recovery of old transcripts or a byte-for-byte model request. External agents retain their own instructions and permissions.\n\nThis is text transfer into a new external conversation, not a native session clone or guaranteed prompt-cache reuse. Shared content goes to the selected external harness and may persist in its conversation storage and private local run evidence; do not share sensitive history unnecessarily. Receipts report mode, actual turns, message count, byte size, and compaction status.\n\nBackend-native nested agents may start in another workspace. Include the repository's absolute path when asking an external agent to delegate further.\n\n## Delegation transparency\n\nDirect calls keep their intent card visible during execution:\n\n```text\nDelegating Claude Code → claude/explorer · unsandboxed external CLI\nTask Map repository architecture\nWhy Repository exploration through Claude Code.\nContext recent · up to 5 user turns\nWorkspace /path/to/project\n⠋ Claude Code(claude/explorer, Map repository architecture) external host access · 12s\n```\n\nThe `Context` line appears only when the parent shares conversation content, so extra data leaving for the external harness is visible before the run. Completed rows summarize what was actually shared (`context recent 4/5 turns`).\n\nCompleted rows show a short evidence identifier and result preview. Press **Ctrl+O** (the default tool-expansion binding) to reveal bounded canonical output, its full run ID, a `/external runs` navigation hint, and advanced local evidence details:\n\n```text\n✓ Claude Code(claude/explorer, Map repository architecture) 42s evidence 8f21a004 -> Architecture mapped.\n  Final output\n  Architecture mapped.\n  Run run_... · /external runs for full paged output and diagnostics\n  Evidence ~/.pi/agent/pi-flow-external/runs/run_... · 15 backend events\n```\n\nWorkflows show access once at the workflow level, retain done/active/queued/failed counts, and expose bounded final output plus the workflow journal when expanded. Hidden child rows remain reachable through `/external runs`. Active rows report last-activity freshness independently of the spinner. Raw backend events remain in local records rather than flooding the default terminal view.\n\n`Agent`, `workflow`, and `external_runs` all register their own `renderCall`/`renderResult` — the same reusable header, status/timing/output presentation, and disclosure rules across all three, so a workflow's card is more hierarchy over the same visual language rather than a different one, and `external_runs` (list/inspect/wait) reads like the tools it observes rather than raw JSON. A text answer's final output — `Agent`'s own expanded result, a workflow's string result, and `external_runs`' `output`/`final` views — renders as Markdown where a host theme is available, falling back to plain text (never a crash) otherwise; a workflow's structured (object/array) result stays formatted data rather than Markdown-interpreted prose.\n\n### Host renderer integration\n\nStock Pi renders every tool's own `renderCall`/`renderResult` directly, so the cards above work with no configuration.\n\n**Compatibility caveat — pi-cc / ccstyle:** our live progress renderers are not compatible with the default rendering overrides in [`pi-cc-extensions`](https://www.npmjs.com/package/pi-cc-extensions). Manual testing showed workflow and wait progress replaced by a generic `Pending…` display while Agent retained its dedicated renderer. Expanded generic output can also duplicate raw JSON. This is a display limitation, not evidence that the underlying run has stopped.\n\nTo preserve this extension's renderers, add its three tool names to pi-cc's `excludeRenderers` setting in `~/.pi/agent/pi-cc-extensions.json`. Merge these entries into your existing configuration; do not replace other settings or exclusions:\n\n```json\n{\n  \"excludeRenderers\": [\"Agent\", \"workflow\", \"external_runs\"]\n}\n```\n\nRestart Pi after changing the configuration. Exclusions use **tool names**, not the extension's package name. All three tools above provide custom renderers. This is pi-cc's supported renderer-preservation mechanism; do not edit its installed package files. End-to-end progress rendering with these exclusions still needs confirmation in your installed pi-cc version. If it continues to show only `Pending…`, disable pi-cc when you need our live progress display. Full compatibility with pi-cc's default overrides is not claimed.\n\n## Background runs and supervision\n\n`Agent` and `workflow` are blocking by default — an ordinary call waits for its child and returns the result, run everything this way unless the parent has other work to do first. Add `background: true` only when the parent can productively proceed before completion; it returns a stable `run_...` or `wf_...` handle after validation and registration while the originating Pi session continues to own the work:\n\n```ts\nAgent({\n  description: \"Long repository audit\",\n  prompt: \"Audit /absolute/repo read-only.\",\n  role: \"reviewer\",\n  background: true,\n});\n```\n\nUse `external_runs` with these actions:\n\n- `list`: current session/project runs; use `cursor` for run pages and `workflowCursor` for workflow pages. `workflowRunId` filters children of one workflow. Rows carry a `timing` projection (`queueDelayMs`, `elapsedMs`, `activityAgeMs` when live, `processDurationMs`) plus `outputAvailable`/`finalAvailable`. A live run shows live state on the page where its record falls; live runs with no record yet come first and count against `limit`. `nextCursor` means the scan stopped early, not that more rows exist, so a next page can be empty.\n- `inspect`: single-entry `runIds` with `view: \"summary\" | \"output\" | \"diagnostics\" | \"final\" | \"launch\"`, and optional opaque `cursor`/`limitBytes` (max 64 KiB, same cap for every view). Follow `nextCursor` to avoid truncation. Output and diagnostics pages concatenate losslessly. `summary` includes the same `timing` projection as `list`, plus `output.finalAvailable`. `final` returns only the verified canonical terminal answer — empty with `finalAvailable: false` until a successful terminal boundary exists; it never promotes partial/narration text. `output` stays the combined stream (assistant messages plus canonical result). `launch` shows the recorded prompt, shared context and execution configuration; it is sensitive and only for explicit inspection.\n- `inspect` with `runIds` (summary view) (up to 20, deduplicated, order preserved): a single bounded batch of `summary`-only projections — one cheap request to see whether several selected background children are queued, running, or terminal, each with `outputRef`/`diagnosticsRef` for follow-up detail. A single-entry `runIds` with the summary view (or no view) also returns this batch form; use `view` to read one run's pages instead. Ownership of every requested ID is validated before any page is returned. Reuses the same `limitBytes` cap as single-run inspection, which must fit both the text and the structured result; pages contain whole target entries and continue through `nextCursor`, without invalidation from ordinary live progress. If one compact entry cannot fit, the call fails with `page_too_small`, asking you to increase `limitBytes` or inspect that run individually; no target is silently dropped. The legacy `runId` selector remains accepted by programmatic callers but is no longer advertised to models. Multiple targets require `summary`.\n- `wait`: selected `runIds` (one or more), with `mode: \"any\" | \"all\"`. It returns terminal outcomes plus still-pending IDs; an unsuccessful workflow returns early even in `all` mode. It never chooses a winner or cancels pending work. While waiting, a bounded heartbeat (independent of any single target settling) reports live progress — watched targets, completed/pending counts, and recent activity — through the tool's update channel; it stops automatically on settlement, error, or interruption. Each settled outcome's `result` is spent from one shared byte budget (`limitBytes`, default 32768) across the whole response, in the requested `runId`/`runIds` order — never settlement race order, so the same targets and final states spend the budget identically regardless of which one happened to settle first: a result that fits is returned complete, one that does not is truncated with `resultTruncated: true` and the existing `outputRef`/`diagnosticsRef` to continue reading it — not a fixed-length teaser regardless of size. A target's evidence is never read from disk once the shared budget is already exhausted.\n- `cancel`: single-entry `runIds` and optional reason. Whole-workflow cancellation stops active children; targeted child cancellation remains a catchable workflow outcome. Cancellation does not roll back edits or other side effects.\n\nInterrupting a blocking `Agent`/`workflow` call cancels its work. Interrupting `external_runs wait` stops only that wait. Background work survives its launching tool return and ordinary parent turns, but not the owning session: orderly session shutdown requests cancellation and waits for bounded cleanup. This is not a daemon. After a host crash or unconfirmed shutdown, unfinished evidence is `interrupted_or_uncertain`; restart restores evidence access, never live ownership or guaranteed retrospective process termination. No routine activity wakes the parent, and live steering is not supported.\n\nA parent's own `sleep`/wait duration (or its process lifetime) is not a measurement of, and does not bound, how long a delegated command actually takes to run — a background child keeps running under the session's ownership regardless of what the parent does next. A realistic collection shape:\n\n```ts\n// Launch two independent background runs.\nconst one = Agent({ description: \"Audit auth module\", prompt: \"Audit /absolute/repo/auth read-only.\", role: \"reviewer\", background: true }); // -> run_...\nconst two = Agent({ description: \"Audit billing module\", prompt: \"Audit /absolute/repo/billing read-only.\", role: \"reviewer\", background: true }); // -> run_...\n\n// Optional: give both a head start before doing anything else. This sleep\n// bounds nothing about the children's own runtime — it is just the parent\n// choosing when to next check in, not a deadline or a proxy for command time.\n// sleep(30_000)\n\n// Do unrelated parent work here (read files, answer the user, plan next steps)\n// while both children continue running under the session, not the parent turn.\n\n// Check on both at once, without waiting for either to finish:\n// external_runs({ action: \"inspect\", runIds: [one.runId, two.runId] })\n\n// Leave them running and come back later in the conversation (or after\n// further parent work) to collect final output once each is actually done:\n// external_runs({ action: \"inspect\", runIds: [one.runId], view: \"final\" })\n```\n\nA task that sounds like a 30-second command can legitimately take substantially longer end-to-end once queueing and backend overhead are included — inspect and wait, do not assume.\n\n## Workflow usage\n\nThe `workflow` tool runs trusted JavaScript that calls one or more external roles and returns a JSON-serializable result. Workflows are for explicit fan-out — and for the case this extension was built to make explicit: running several children on the **same** harness at once. Example:\n\n```js\nexport const meta = { apiVersion: 1, name: \"triage\", description: \"Three parallel agy reviewers\" };\nconst [a, b, c] = await parallel([\n  () => agent(\"Review slice A read-only: /absolute/repo\", { label: \"rev-a\", role: \"reviewer\", harness: \"agy\" }),\n  () => agent(\"Review slice B read-only: /absolute/repo\", { label: \"rev-b\", role: \"reviewer\", harness: \"agy\" }),\n  () => agent(\"Review slice C read-only: /absolute/repo\", { label: \"rev-c\", role: \"reviewer\", harness: \"agy\" }),\n]);\nreturn { a, b, c };\n```\n\nSequential `await agent(...)` stays serial by construction; `parallel([...])` is how parallel children share the single `maxConcurrentSubagents` limiter at once. Top-level direct `Agent` calls issued together also run together (`executionMode: \"parallel\"`, default under one limiter). `external_runs wait` and `external_runs inspect` cover both surfaces. Its first statement must be the current declaration `export const meta = { apiVersion: 1, name, description }`; missing or unsupported versions fail before any child launches. Every `agent()` child uses the same `role`/optional `harness` resolution as direct `Agent` calls, with legacy exact `subagent_type` also supported. `agent()`'s second argument accepts `description` as the common task-name option shared with direct `Agent` calls; `label` remains a compatible alias for existing scripts. Setting both to different values is rejected rather than silently preferring one.\n\n`background: true` belongs to the `workflow` tool call itself (`workflow({ script, background: true })`), never to `meta` — `meta` fields other than `apiVersion`/`name`/`description`/`phases` are ignored, so `export const meta = { ..., background: true }` does not run the workflow in the background.\n\nSaved workflows are discovered on demand through `external_help({ topic: \"workflow\" })`; project `.pi/workflows` entries are included only when Pi reports the project trusted.\n\nExample request:\n\n```text\nUse the workflow tool to ask role \"explorer\" on harness \"claude\" for an architecture map and role \"reviewer\" on harness \"codex\" for a risk review, then synthesize their findings.\n```\n\nDirect `Agent` calls and workflow children share one concurrency limiter (`maxConcurrentSubagents`, default 12) and the same timeout controls. There is no per-harness cap: three `agy` children run together when started together — `parallel([() => agent(..., { harness: \"agy\" }), ...])` in a workflow, or three `background: true` `Agent` calls in one turn followed by `external_runs wait`. Sequentially `await`ed children stay serial by construction. Direct calls default `executionMode: \"parallel\"` so top-level `Agent` calls issued together run together. Workflow `agent(prompt, { role, context: { mode: \"recent\", turns: 5 } })` accepts the same context modes. Every current-version `agent()` returns its value or throws a catchable `ChildRunError` with `runId`, `outcome` (`failed`, `cancelled`, or `timed_out`), `message`, and output/diagnostic references. Catch an optional failure explicitly; an uncaught child error fails the workflow and drains active siblings. A workflow that succeeded after catching failures stays successful: its receipt counts them in `run.children.failed`, adds the warning `handled_child_failures`, and says so in the text result. `parallel` and `pipeline` preserve this contract and never convert failure to `null`.\n\nEvery child selects from one parent snapshot and effective settings frozen at workflow invocation; earlier child results must still be passed explicitly. `resumeFromRunId` is explicit replay for a persisted `scriptPath`: it reuses only the longest unchanged prefix of successful child calls. The API version, transferred context, prompt, selection, and relevant options participate in fingerprints. The first changed, failed, cancelled, or timed-out call and everything after it executes again. Recomposition is cheap, but rerun children may cost money or repeat side effects; the runtime never retries or replays a repaired script automatically.\n\n## Permission tiers, budgets, and resume\n\nEvery `Agent` call and workflow `agent()` child also accepts these optional run parameters (`context` is covered under agent usage above):\n\n- `permission`: `readonly` | `edit` | `danger`. Omit it to use settings `defaultPermission` (`danger` unless changed). A role or override `permission` field is obsolete and is rejected. Tiers map onto native harness mechanisms where the backend can enforce them. Antigravity accepts only `danger` (`--dangerously-skip-permissions`) and rejects `readonly` and `edit`. Claude `readonly`/`edit` auto-deny shell commands headlessly; denials are surfaced in the receipt. A named Pi harness restricts tool names. That is not an OS sandbox.\n- `max_budget_usd`: a spending cap. Claude Code enforces it mid-run with its native `--max-budget-usd` flag. Codex estimates cost from a price map and agy does not report cost at all; Grok reports its own native cost (`total_cost_usd`) but exposes no enforcement flag; Muse has never been observed to report cost at all. OpenCode reports root-step cost but cannot account for nested subagent sessions. For codex, agy, grok, muse, and opencode alike, the cap is recorded and marked `budget unenforceable` instead of pretended.\n- `resume`: a prior run id. Continues the same backend conversation (Claude `--resume`, Codex `exec resume`, agy `--conversation`, Grok `--resume`, Muse `exec --session-id`, OpenCode `run --session`) instead of starting from scratch. The prior run must use the same backend. Claude sessions persist in Claude Code's own local storage (this extension no longer passes `--no-session-persistence`) so recorded session ids stay resumable; remove old conversations from Claude Code itself if that matters to you. Muse's `--session-id` resume was verified directly: two independent `muse exec` processes sharing the same `--session-id` reported the same session, and the second recalled a fact only told to the first. `resume` cannot be combined with `context` sharing — continue an existing child, or start a new one with a snapshot.\n\nResolution order for the tier is call `permission`, then settings `defaultPermission`. Budget order is call `max_budget_usd`, then a role-on-harness setting's `max_budget_usd`, then the settings default. Conversion of a pre-v4 install drops `permission` and `capabilitySet` from copied overrides, turns `harness: \"pi-*\"` templates into ordinary roles, and does not copy `piCapabilitySets`.\n\n## Settings and runtime limits\n\nThe only execution-configuration file is:\n\n```text\n$PI_CODING_AGENT_DIR/pi-flow-external/settings.json\n```\n\nNormally this resolves to `~/.pi/agent/pi-flow-external/settings.json`. A missing file uses these defaults in memory and is not created by a read:\n\n```json\n{\n  \"version\": 5,\n  \"defaultHarness\": \"agy\",\n  \"maxConcurrentSubagents\": 12,\n  \"subagentTimeoutMs\": 7200000,\n  \"defaultPermission\": \"danger\",\n  \"defaultMaxBudgetUsd\": null,\n  \"maxRunRecords\": 200\n}\n```\n\nRuntime field names and units are unchanged. `harnesses` contains optional CLI defaults and required named Pi registrations. Set `enabled: false` on a harness, root role, or harness-role patch to block that scope. Empty objects may be omitted. Legacy unresolved exclusions remain compatibility state; use the lifecycle commands instead of adding flattened names manually. `maxRunRecords` prunes the oldest completed run records at session start and via `/external runs --prune`; records still running or interrupted are never pruned, and `0` keeps everything.\n\n`/external config` opens guided settings. **Advanced → Configuration details**, or `/external config text` in any mode, shows effective values, their sources and the canonical path. When conversion is ready, use **Preview format update…** in the window or `/external config convert`. `/external config edit` opens that JSON in the standard editor and validates it before saving. The next invocation reads the saved file. A workflow already running keeps the snapshot it froze at start. A new `maxConcurrentSubagents` value waits until active and queued work has drained.\n\nPre-v4 files are not applied as live settings. Convert them once with `/external config convert`, as described in Breaking upgrade. After v5 activation, old files are ignored.\n\n### Project default-harness override\n\nA trusted project can override the global `de","readmeFilename":"README.md"}