{"_id":"pi-herdr-agents","_rev":"30-f510ca5ec1ea52454ebefd62f5d4c58d","name":"pi-herdr-agents","dist-tags":{"latest":"2.0.5"},"versions":{"0.0.1":{"name":"pi-herdr-agents","version":"0.0.1","keywords":["pi-package","pi","herdr","subagents","agents","worktrees","orchestration"],"author":{"url":"https://github.com/giuseppecrj","name":"Giuseppe Rodriguez"},"license":"MIT","_id":"pi-herdr-agents@0.0.1","maintainers":[{"name":"giuseppecrj","email":"giuseppecrj@gmail.com"}],"homepage":"https://github.com/giuseppecrj/pi-herdr-agents#readme","bugs":{"url":"https://github.com/giuseppecrj/pi-herdr-agents/issues"},"pi":{"skills":["./skills"],"extensions":["./pi-extension/subagents/index.ts"]},"dist":{"shasum":"87e0cd6c18466f60cd9f6a08cd04d16ec490b06a","tarball":"https://registry.npmjs.org/pi-herdr-agents/-/pi-herdr-agents-0.0.1.tgz","fileCount":49,"integrity":"sha512-fgRUDuaTklOykvqMAtgIDr343BtFhL+mT7uL0OIVRLjWvUFkMq5eoEW9fjkuRQpSDCenJXoc8MIzkH6GtAprVA==","signatures":[{"sig":"MEQCICcTtrtYpjS9v01oyUWlPPc3PhTUPlmtqzIUaglsPsg5AiAKMdNufWDXZeLec1zptKxxYMaipSy9eFMVs2AcEXirig==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":606569},"type":"module","gitHead":"4ffd68f55f58cedbfb9fd84cd139f81c107552eb","scripts":{"lint":"oxlint pi-extension test","test":"node --experimental-strip-types --test test/test.ts test/runtime-routing.test.ts test/release-workflow.test.ts test/workflow.test.ts test/package-skill.test.js","test:integration":"node --experimental-strip-types --test --test-concurrency=1 test/integration/*.test.ts","test:integration:live":"PI_TEST_LIVE=1 node --experimental-strip-types --test --test-concurrency=1 test/integration/*.test.ts"},"_npmUser":{"name":"giuseppecrj","email":"giuseppecrj@gmail.com"},"repository":{"url":"git+https://github.com/giuseppecrj/pi-herdr-agents.git","type":"git"},"_npmVersion":"11.16.0","description":"Asynchronous Pi subagents and approved review workflows in Herdr, with optional isolated Git worktrees","directories":{},"_nodeVersion":"26.3.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"oxlint":"^1.73.0","@sinclair/typebox":"^0.34.52","@earendil-works/pi-ai":"^0.83.0","@earendil-works/pi-tui":"^0.83.0","@earendil-works/pi-coding-agent":"^0.83.0"},"peerDependencies":{"@sinclair/typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-herdr-agents_0.0.1_1785947491624_0.7847288835436819","host":"s3://npm-registry-packages-npm-production"}},"0.0.2":{"name":"pi-herdr-agents","version":"0.0.2","keywords":["pi-package","pi","herdr","subagents","agents","worktrees","orchestration"],"author":{"url":"https://github.com/giuseppecrj","name":"Giuseppe Rodriguez"},"license":"MIT","_id":"pi-herdr-agents@0.0.2","maintainers":[{"name":"giuseppecrj","email":"giuseppecrj@gmail.com"}],"homepage":"https://github.com/giuseppecrj/pi-herdr-agents#readme","bugs":{"url":"https://github.com/giuseppecrj/pi-herdr-agents/issues"},"pi":{"skills":["./skills"],"extensions":["./pi-extension/subagents/index.ts"]},"dist":{"shasum":"2adb3ccce81f889dedcdef96ca58ace406abfb1b","tarball":"https://registry.npmjs.org/pi-herdr-agents/-/pi-herdr-agents-0.0.2.tgz","fileCount":49,"integrity":"sha512-atWPCdZ0060z+zmMQNydcSG9Zn/q8XRiB4TkhcBmJHTv74IiBdU7IWWqNzLXa3RrO0Lsx3g+QlQ5BdklgIO32Q==","signatures":[{"sig":"MEQCID0er+puiNMB+nCy5KuEm2zGx+Nen2rem2KlnxEI+FMvAiAwQEhk9ZwPnhrpUE7cQjgXZFnwXYteen+6265Lcs38DQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/pi-herdr-agents@0.0.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":606576},"type":"module","gitHead":"5d6e65d4c25a8df427dd057b77267985bb505d1a","scripts":{"lint":"oxlint pi-extension test","test":"node --experimental-strip-types --test test/test.ts test/runtime-routing.test.ts test/release-workflow.test.ts test/workflow.test.ts test/package-skill.test.js","test:integration":"node --experimental-strip-types --test --test-concurrency=1 test/integration/*.test.ts","test:integration:live":"PI_TEST_LIVE=1 node --experimental-strip-types --test --test-concurrency=1 test/integration/*.test.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:967eca68-051e-4a74-a82d-be7eb0d76932"}},"repository":{"url":"git+https://github.com/giuseppecrj/pi-herdr-agents.git","type":"git"},"_npmVersion":"11.16.0","description":"Asynchronous Pi subagents and approved review workflows in Herdr, with optional isolated Git worktrees","directories":{},"_nodeVersion":"26.3.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"oxlint":"^1.73.0","@sinclair/typebox":"^0.34.52","@earendil-works/pi-ai":"^0.83.0","@earendil-works/pi-tui":"^0.83.0","@earendil-works/pi-coding-agent":"^0.83.0"},"peerDependencies":{"@sinclair/typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-herdr-agents_0.0.2_1785948540591_0.4681389224237422","host":"s3://npm-registry-packages-npm-production"}},"0.0.3":{"name":"pi-herdr-agents","version":"0.0.3","keywords":["pi-package","pi","herdr","subagents","agents","worktrees","orchestration"],"author":{"url":"https://github.com/giuseppecrj","name":"Giuseppe Rodriguez"},"license":"MIT","_id":"pi-herdr-agents@0.0.3","maintainers":[{"name":"giuseppecrj","email":"giuseppecrj@gmail.com"}],"homepage":"https://github.com/giuseppecrj/pi-herdr-agents#readme","bugs":{"url":"https://github.com/giuseppecrj/pi-herdr-agents/issues"},"pi":{"skills":["./skills"],"extensions":["./pi-extension/subagents/index.ts"]},"dist":{"shasum":"ff0df32d1a3d115f833c701f1d21a161581a8de7","tarball":"https://registry.npmjs.org/pi-herdr-agents/-/pi-herdr-agents-0.0.3.tgz","fileCount":48,"integrity":"sha512-Vkhr72Yp6WSqAIv+3s3e9PjyLkTKNIbH5VSBKwAcxiTonuCBOFcY9QhGx1W/KRXZChVFoyXsUAJIhNjY0Lt9Zg==","signatures":[{"sig":"MEQCIFuYV0IA9G6XHN/+PjKqhwAwpBS0HC58B9Ml/1wOnyc5AiBgn9KqzGz57jckXztKlvoaR9gcrNwhmrnbPxOf7Br+EA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/pi-herdr-agents@0.0.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":590524},"type":"module","gitHead":"c6ce52c6af3b9a3157c073aa257ea69f826597ad","scripts":{"lint":"oxlint pi-extension test","test":"node --experimental-strip-types --test test/test.ts test/runtime-routing.test.ts test/release-workflow.test.ts test/workflow.test.ts test/package-skill.test.js","test:integration":"node --experimental-strip-types --test --test-concurrency=1 test/integration/*.test.ts","test:integration:live":"PI_TEST_LIVE=1 node --experimental-strip-types --test --test-concurrency=1 test/integration/*.test.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:967eca68-051e-4a74-a82d-be7eb0d76932"}},"repository":{"url":"git+https://github.com/giuseppecrj/pi-herdr-agents.git","type":"git"},"_npmVersion":"11.16.0","description":"Asynchronous Pi subagents and approved review workflows in Herdr, with optional isolated Git worktrees","directories":{},"_nodeVersion":"26.3.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"oxlint":"^1.73.0","@sinclair/typebox":"^0.34.52","@earendil-works/pi-ai":"^0.83.0","@earendil-works/pi-tui":"^0.83.0","@earendil-works/pi-coding-agent":"^0.83.0"},"peerDependencies":{"@sinclair/typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-herdr-agents_0.0.3_1785962518769_0.6539509897700049","host":"s3://npm-registry-packages-npm-production"}},"0.0.4":{"name":"pi-herdr-agents","version":"0.0.4","keywords":["pi-package","pi","herdr","subagents","agents","worktrees","orchestration"],"author":{"url":"https://github.com/giuseppecrj","name":"Giuseppe Rodriguez"},"license":"MIT","_id":"pi-herdr-agents@0.0.4","maintainers":[{"name":"giuseppecrj","email":"giuseppecrj@gmail.com"}],"homepage":"https://github.com/giuseppecrj/pi-herdr-agents#readme","bugs":{"url":"https://github.com/giuseppecrj/pi-herdr-agents/issues"},"pi":{"skills":["./skills"],"extensions":["./pi-extension/subagents/index.ts"]},"dist":{"shasum":"de62fecc78758b8856013afad190d7f288ef474f","tarball":"https://registry.npmjs.org/pi-herdr-agents/-/pi-herdr-agents-0.0.4.tgz","fileCount":49,"integrity":"sha512-DZN7hdBRGC7KuL5ieEaBIaSYy+Wv3mhXEkFILAHwpLysDAWn1a+mMWknhTx6/NdSNGMJfoEFSgyGUVxozlT7VA==","signatures":[{"sig":"MEUCICr6nAljy6Qa8VipQ1IVO3hbG1IRr5cJUkBza7eB/Z5wAiEAzQ2WbSY6ilpe4R7zj23L5P+EsCIhgkMxu7S7Qe0S6QQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/pi-herdr-agents@0.0.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":591736},"type":"module","gitHead":"c685c3553ec76d987972c1786d966b704ad9197b","scripts":{"lint":"oxlint pi-extension test","test":"node --experimental-strip-types --test test/test.ts test/runtime-routing.test.ts test/release-workflow.test.ts test/workflow.test.ts test/package-skill.test.js","test:integration":"node --experimental-strip-types --test --test-concurrency=1 test/integration/*.test.ts","test:integration:live":"PI_TEST_LIVE=1 node --experimental-strip-types --test --test-concurrency=1 test/integration/*.test.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:967eca68-051e-4a74-a82d-be7eb0d76932"}},"repository":{"url":"git+https://github.com/giuseppecrj/pi-herdr-agents.git","type":"git"},"_npmVersion":"11.16.0","description":"Asynchronous Pi subagents and approved review workflows in Herdr, with optional isolated Git worktrees","directories":{},"_nodeVersion":"26.3.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"oxlint":"^1.73.0","@sinclair/typebox":"^0.34.52","@earendil-works/pi-ai":"^0.83.0","@earendil-works/pi-tui":"^0.83.0","@earendil-works/pi-coding-agent":"^0.83.0"},"peerDependencies":{"@sinclair/typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-herdr-agents_0.0.4_1785965217273_0.10182618819635492","host":"s3://npm-registry-packages-npm-production"}},"0.1.0":{"name":"pi-herdr-agents","version":"0.1.0","keywords":["pi-package","pi","herdr","subagents","agents","worktrees","orchestration"],"author":{"url":"https://github.com/giuseppecrj","name":"Giuseppe Rodriguez"},"license":"MIT","_id":"pi-herdr-agents@0.1.0","maintainers":[{"name":"giuseppecrj","email":"giuseppecrj@gmail.com"}],"homepage":"https://github.com/giuseppecrj/pi-herdr-agents#readme","bugs":{"url":"https://github.com/giuseppecrj/pi-herdr-agents/issues"},"pi":{"skills":["./skills"],"extensions":["./pi-extension/subagents/index.ts"]},"dist":{"shasum":"5a0e4166e8b874befc8cba620e0643126f940e7b","tarball":"https://registry.npmjs.org/pi-herdr-agents/-/pi-herdr-agents-0.1.0.tgz","fileCount":49,"integrity":"sha512-4bYvuOR6/Ma7anaNbpaV5dtwbdYpx5BP6gfhoChqzdRzzCrUWeBtXb3IGSbKm268uH3C+ZMSufClm3xKmDyGgA==","signatures":[{"sig":"MEUCIQD0eYeXAPesDNr7dlrpJAJ7jdxtWgh5GwFn35A4PeUYhwIgX1YIhJlNHUCssuTvhs8YXwOmjuUUJp4ni5XZMlcNKHw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/pi-herdr-agents@0.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":598327},"type":"module","gitHead":"b409457f58b738734b48a4e7cf3418da957db271","scripts":{"lint":"oxlint pi-extension test","test":"node --experimental-strip-types --test test/test.ts test/runtime-routing.test.ts test/release-workflow.test.ts test/workflow.test.ts test/package-skill.test.js","test:integration":"node --experimental-strip-types --test --test-concurrency=1 test/integration/*.test.ts","test:integration:live":"PI_TEST_LIVE=1 node --experimental-strip-types --test --test-concurrency=1 test/integration/*.test.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:967eca68-051e-4a74-a82d-be7eb0d76932"}},"repository":{"url":"git+https://github.com/giuseppecrj/pi-herdr-agents.git","type":"git"},"_npmVersion":"11.16.0","description":"Asynchronous Pi subagents and approved review workflows in Herdr, with optional isolated Git worktrees","directories":{},"_nodeVersion":"26.3.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"oxlint":"^1.73.0","@sinclair/typebox":"^0.34.52","@earendil-works/pi-ai":"^0.83.0","@earendil-works/pi-tui":"^0.83.0","@earendil-works/pi-coding-agent":"^0.83.0"},"peerDependencies":{"@sinclair/typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-herdr-agents_0.1.0_1785970735340_0.08808708334719739","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"pi-herdr-agents","version":"0.1.1","keywords":["pi-package","pi","herdr","subagents","agents","worktrees","orchestration"],"author":{"url":"https://github.com/giuseppecrj","name":"Giuseppe Rodriguez"},"license":"MIT","_id":"pi-herdr-agents@0.1.1","maintainers":[{"name":"giuseppecrj","email":"giuseppecrj@gmail.com"}],"homepage":"https://github.com/giuseppecrj/pi-herdr-agents#readme","bugs":{"url":"https://github.com/giuseppecrj/pi-herdr-agents/issues"},"pi":{"skills":["./skills"],"extensions":["./pi-extension/subagents/index.ts"]},"dist":{"shasum":"e0aad04d56016dc8e48a0b6b3e4c470ca85faf6d","tarball":"https://registry.npmjs.org/pi-herdr-agents/-/pi-herdr-agents-0.1.1.tgz","fileCount":49,"integrity":"sha512-h5Pvb9OWEjCUhgZj/qHB2s8FUZfPjmEALh1X4xZzm3Efh5BVmudG6kic6wcKfez1QOM4b4KbO8rYqkOYs6ExNw==","signatures":[{"sig":"MEYCIQCVzr56fumNu2q2r7E+UHrECkmPce16///fRHGfdXtwVgIhAJCCIF6meo4Qql2RA0wTZ6RNswqFlz8mDM7s3P9RDIS0","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/pi-herdr-agents@0.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":598991},"type":"module","gitHead":"9b9a3c9ded45f65be7c2814cb34230ee5bf82532","scripts":{"lint":"oxlint pi-extension test","test":"node --experimental-strip-types --test test/test.ts test/runtime-routing.test.ts test/release-workflow.test.ts test/workflow.test.ts test/package-skill.test.js","test:integration":"node --experimental-strip-types --test --test-concurrency=1 test/integration/*.test.ts","test:integration:live":"PI_TEST_LIVE=1 node --experimental-strip-types --test --test-concurrency=1 test/integration/*.test.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:967eca68-051e-4a74-a82d-be7eb0d76932"}},"repository":{"url":"git+https://github.com/giuseppecrj/pi-herdr-agents.git","type":"git"},"_npmVersion":"11.16.0","description":"Asynchronous Pi subagents and approved review workflows in Herdr, with optional isolated Git worktrees","directories":{},"_nodeVersion":"26.3.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"oxlint":"^1.73.0","@sinclair/typebox":"^0.34.52","@earendil-works/pi-ai":"^0.83.0","@earendil-works/pi-tui":"^0.83.0","@earendil-works/pi-coding-agent":"^0.83.0"},"peerDependencies":{"@sinclair/typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-herdr-agents_0.1.1_1786062195861_0.5707474757326185","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"pi-herdr-agents","version":"0.1.2","keywords":["pi-package","pi","herdr","subagents","agents","worktrees","orchestration"],"author":{"url":"https://github.com/giuseppecrj","name":"Giuseppe Rodriguez"},"license":"MIT","_id":"pi-herdr-agents@0.1.2","maintainers":[{"name":"giuseppecrj","email":"giuseppecrj@gmail.com"}],"homepage":"https://github.com/giuseppecrj/pi-herdr-agents#readme","bugs":{"url":"https://github.com/giuseppecrj/pi-herdr-agents/issues"},"pi":{"skills":["./skills"],"extensions":["./pi-extension/subagents/index.ts"]},"dist":{"shasum":"ad48d9d5bb47c74afd54c71c7baf5688de0cb837","tarball":"https://registry.npmjs.org/pi-herdr-agents/-/pi-herdr-agents-0.1.2.tgz","fileCount":49,"integrity":"sha512-NMDv9GGgKz4CNC+SSB9AyGE17ChVxZgaX81ZtieOuzurhIoYu32BAWA1VwlIkiSSr1iRNTZN4bFlSzx1yD2mGw==","signatures":[{"sig":"MEYCIQD5ifWz9jxw3UPp6mhcWhCRSRkDu/6/1Q1aQh4OhtsvzQIhAI3+YgIqyksTm0amBLcAhWNgaSWoDfMuZTweOZZAjs+z","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/pi-herdr-agents@0.1.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":598991},"type":"module","gitHead":"67608a5b1950222b522277c2fb4a246cbffb91f8","scripts":{"lint":"oxlint pi-extension test","test":"node --experimental-strip-types --test test/test.ts test/runtime-routing.test.ts test/release-workflow.test.ts test/workflow.test.ts test/package-skill.test.js","test:integration":"node --experimental-strip-types --test --test-concurrency=1 test/integration/*.test.ts","test:integration:live":"PI_TEST_LIVE=1 node --experimental-strip-types --test --test-concurrency=1 test/integration/*.test.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:967eca68-051e-4a74-a82d-be7eb0d76932"}},"repository":{"url":"git+https://github.com/giuseppecrj/pi-herdr-agents.git","type":"git"},"_npmVersion":"11.16.0","description":"Asynchronous Pi subagents and approved review workflows in Herdr, with optional isolated Git worktrees","directories":{},"_nodeVersion":"26.3.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"oxlint":"^1.73.0","@sinclair/typebox":"^0.34.52","@earendil-works/pi-ai":"^0.84.0","@earendil-works/pi-tui":"^0.84.0","@earendil-works/pi-coding-agent":"^0.84.0"},"peerDependencies":{"@sinclair/typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-herdr-agents_0.1.2_1786062887898_0.39096411652733587","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"pi-herdr-agents","version":"0.1.3","keywords":["pi-package","pi","herdr","subagents","agents","worktrees","orchestration"],"author":{"url":"https://github.com/giuseppecrj","name":"Giuseppe Rodriguez"},"license":"MIT","_id":"pi-herdr-agents@0.1.3","maintainers":[{"name":"giuseppecrj","email":"giuseppecrj@gmail.com"}],"homepage":"https://github.com/giuseppecrj/pi-herdr-agents#readme","bugs":{"url":"https://github.com/giuseppecrj/pi-herdr-agents/issues"},"pi":{"skills":["./skills"],"extensions":["./pi-extension/subagents/index.ts"]},"dist":{"shasum":"d386b422ffc41fad4fee9add053442c67849417f","tarball":"https://registry.npmjs.org/pi-herdr-agents/-/pi-herdr-agents-0.1.3.tgz","fileCount":49,"integrity":"sha512-LMKe2tcejAiswUo9Ehpq+VGWaJS5hers8rYGm9CN+9L9QWMkk8kp3gig3vlDtI6A0Cg9WSWraValcjlsDZ8h1g==","signatures":[{"sig":"MEUCICIjlvzhM4rXLhPm3iCMrFyKXxsaPXoMUNulGa7P/HUZAiEAo4hPyenuJOLIc6jQFfBBSzzpacis0qBF8unTlljwRCs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/pi-herdr-agents@0.1.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":601118},"type":"module","gitHead":"a2cd1b5ab424226e371ee6388e79d8ccf3e9a304","scripts":{"lint":"oxlint pi-extension test","test":"node --experimental-strip-types --test test/test.ts test/runtime-routing.test.ts test/release-workflow.test.ts test/workflow.test.ts test/package-skill.test.js","test:integration":"node --experimental-strip-types --test --test-concurrency=1 test/integration/*.test.ts","test:integration:live":"PI_TEST_LIVE=1 node --experimental-strip-types --test --test-concurrency=1 test/integration/*.test.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:967eca68-051e-4a74-a82d-be7eb0d76932"}},"repository":{"url":"git+https://github.com/giuseppecrj/pi-herdr-agents.git","type":"git"},"_npmVersion":"11.16.0","description":"Asynchronous Pi subagents and approved review workflows in Herdr, with optional isolated Git worktrees","directories":{},"_nodeVersion":"26.3.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"oxlint":"^1.73.0","@sinclair/typebox":"^0.34.52","@earendil-works/pi-ai":"^0.84.0","@earendil-works/pi-tui":"^0.84.0","@earendil-works/pi-coding-agent":"^0.84.0"},"peerDependencies":{"@sinclair/typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-herdr-agents_0.1.3_1786133738717_0.7889357008107656","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"pi-herdr-agents","version":"0.1.4","keywords":["pi-package","pi","herdr","subagents","agents","worktrees","orchestration"],"author":{"url":"https://github.com/giuseppecrj","name":"Giuseppe Rodriguez"},"license":"MIT","_id":"pi-herdr-agents@0.1.4","maintainers":[{"name":"giuseppecrj","email":"giuseppecrj@gmail.com"}],"homepage":"https://github.com/giuseppecrj/pi-herdr-agents#readme","bugs":{"url":"https://github.com/giuseppecrj/pi-herdr-agents/issues"},"pi":{"skills":["./skills"],"extensions":["./pi-extension/subagents/index.ts"]},"dist":{"shasum":"1befb249d4d8bd5e9a3d7bfda5052415a06bd62e","tarball":"https://registry.npmjs.org/pi-herdr-agents/-/pi-herdr-agents-0.1.4.tgz","fileCount":49,"integrity":"sha512-agFsvVYUIN3cQ3ZICwfHL8kT6mUYwOGPZU/Nixax6FEtyuDSuFHd0dyC+VnOthwYfp8WUKRWhWVI9QlOOpH8QQ==","signatures":[{"sig":"MEYCIQDIPZonu2Lphk5uOhtUHZzbRzWkH3kng2VJNcsIHy2XUwIhAMdh+QDJ31d3T70YCryt/8zSqKJjInxW/bDiK2N90m+f","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/pi-herdr-agents@0.1.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":604570},"type":"module","gitHead":"0ce2fe45b3c76a2bffe1df561076d1c62537c139","scripts":{"lint":"oxlint pi-extension test","test":"node --experimental-strip-types --test test/test.ts test/runtime-routing.test.ts test/release-workflow.test.ts test/workflow.test.ts test/package-skill.test.js","test:integration":"node --experimental-strip-types --test --test-concurrency=1 test/integration/*.test.ts","test:integration:live":"PI_TEST_LIVE=1 node --experimental-strip-types --test --test-concurrency=1 test/integration/*.test.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:967eca68-051e-4a74-a82d-be7eb0d76932"}},"repository":{"url":"git+https://github.com/giuseppecrj/pi-herdr-agents.git","type":"git"},"_npmVersion":"11.16.0","description":"Asynchronous Pi subagents and approved review workflows in Herdr, with optional isolated Git worktrees","directories":{},"_nodeVersion":"26.3.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"oxlint":"^1.73.0","@sinclair/typebox":"^0.34.52","@earendil-works/pi-ai":"^0.84.0","@earendil-works/pi-tui":"^0.84.0","@earendil-works/pi-coding-agent":"^0.84.0"},"peerDependencies":{"@sinclair/typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-herdr-agents_0.1.4_1786378336306_0.3577382244252336","host":"s3://npm-registry-packages-npm-production"}},"1.0.0":{"name":"pi-herdr-agents","version":"1.0.0","keywords":["pi-package","pi","herdr","subagents","agents","worktrees","orchestration"],"author":{"url":"https://github.com/giuseppecrj","name":"Giuseppe Rodriguez"},"license":"MIT","_id":"pi-herdr-agents@1.0.0","maintainers":[{"name":"giuseppecrj","email":"giuseppecrj@gmail.com"}],"homepage":"https://github.com/giuseppecrj/pi-herdr-agents#readme","bugs":{"url":"https://github.com/giuseppecrj/pi-herdr-agents/issues"},"pi":{"skills":["./skills"],"extensions":["./pi-extension/subagents/index.ts"]},"dist":{"shasum":"c2e86717e0c39e49ab81c59319741edf9e4aebac","tarball":"https://registry.npmjs.org/pi-herdr-agents/-/pi-herdr-agents-1.0.0.tgz","fileCount":47,"integrity":"sha512-4WW2pW+eqINueXLH7JGzhK/z6GmHX68BMyC6L45Q9QOundl28S8bVIEQHB3dpPaf8v1lk0tvwd3d6DQY3IVrpQ==","signatures":[{"sig":"MEUCIQDSSXik6/xphEHCfN6XLIf6NFYCuuOpqni0xXnuiZj6CAIgZb84pRMtIjIsAb7EvDbXVFmVqy//eHsdD9pUoAHH3zM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/pi-herdr-agents@1.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":596926},"type":"module","gitHead":"ccc0045f3bd6b937bf6acd238b97fe48341bd8ba","scripts":{"lint":"oxlint pi-extension test","test":"node --experimental-strip-types --test test/test.ts test/launch.test.ts test/runtime-routing.test.ts test/release-workflow.test.ts test/workflow.test.ts test/package-skill.test.js","test:integration":"node --experimental-strip-types --test --test-concurrency=1 test/integration/*.test.ts","test:integration:live":"PI_TEST_LIVE=1 node --experimental-strip-types --test --test-concurrency=1 test/integration/*.test.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:967eca68-051e-4a74-a82d-be7eb0d76932"}},"repository":{"url":"git+https://github.com/giuseppecrj/pi-herdr-agents.git","type":"git"},"_npmVersion":"11.16.0","description":"Asynchronous Pi subagents and approved review workflows in Herdr, with optional isolated Git worktrees","directories":{},"_nodeVersion":"26.3.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"oxlint":"^1.73.0","@sinclair/typebox":"^0.34.52","@earendil-works/pi-ai":"^0.84.0","@earendil-works/pi-tui":"^0.84.0","@earendil-works/pi-coding-agent":"^0.84.0"},"peerDependencies":{"@sinclair/typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-herdr-agents_1.0.0_1786420423225_0.6979799846228842","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"pi-herdr-agents","version":"1.1.0","keywords":["pi-package","pi","herdr","subagents","agents","worktrees","orchestration"],"author":{"url":"https://github.com/giuseppecrj","name":"Giuseppe Rodriguez"},"license":"MIT","_id":"pi-herdr-agents@1.1.0","maintainers":[{"name":"giuseppecrj","email":"giuseppecrj@gmail.com"}],"homepage":"https://github.com/giuseppecrj/pi-herdr-agents#readme","bugs":{"url":"https://github.com/giuseppecrj/pi-herdr-agents/issues"},"pi":{"skills":["./skills"],"extensions":["./pi-extension/subagents/index.ts"]},"dist":{"shasum":"7f66ff424b9b12198cb54cfb0dafdfe42f1d1212","tarball":"https://registry.npmjs.org/pi-herdr-agents/-/pi-herdr-agents-1.1.0.tgz","fileCount":48,"integrity":"sha512-7fBZjMmO1YGHzoMJUyZEsXGa4jTjKDMtUL8jUkatcBgSO4Hbgz51xobjJz2iJ28F4GenbuwU6hMFsx1wrNAohw==","signatures":[{"sig":"MEUCIGsoFzA8YLd9l4hzTGhFyhWNGN5YvlqY+ruvhSxw6EMWAiEA1tZ2WYlSNSs+NDmh9189lQqvco+OfD7B9Ws2Lr4hMgI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/pi-herdr-agents@1.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":603981},"type":"module","gitHead":"732c0dcef0f0a85be737b9dd6023a59eb2771178","scripts":{"lint":"oxlint pi-extension test","test":"node --experimental-strip-types --test test/test.ts test/launch.test.ts test/runtime-routing.test.ts test/release-workflow.test.ts test/workflow.test.ts test/package-skill.test.js","version":"auto-changelog --package && git add CHANGELOG.md","changelog":"auto-changelog","test:integration":"node --experimental-strip-types --test --test-concurrency=1 test/integration/*.test.ts","test:integration:live":"PI_TEST_LIVE=1 node --experimental-strip-types --test --test-concurrency=1 test/integration/*.test.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:967eca68-051e-4a74-a82d-be7eb0d76932"}},"repository":{"url":"git+https://github.com/giuseppecrj/pi-herdr-agents.git","type":"git"},"_npmVersion":"11.16.0","description":"Asynchronous Pi subagents and approved review workflows in Herdr, with optional isolated Git worktrees","directories":{},"_nodeVersion":"26.3.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"auto-changelog":{"template":"keepachangelog","unreleased":true,"commitLimit":false},"devDependencies":{"oxlint":"^1.73.0","auto-changelog":"^2.6.0","@sinclair/typebox":"^0.34.52","@earendil-works/pi-ai":"^0.84.0","@earendil-works/pi-tui":"^0.84.0","@earendil-works/pi-coding-agent":"^0.84.0"},"peerDependencies":{"@sinclair/typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-herdr-agents_1.1.0_1786481642623_0.5192849663223866","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"pi-herdr-agents","version":"1.2.0","keywords":["pi-package","pi","herdr","subagents","agents","worktrees","orchestration"],"author":{"url":"https://github.com/giuseppecrj","name":"Giuseppe Rodriguez"},"license":"MIT","_id":"pi-herdr-agents@1.2.0","maintainers":[{"name":"giuseppecrj","email":"giuseppecrj@gmail.com"}],"homepage":"https://github.com/giuseppecrj/pi-herdr-agents#readme","bugs":{"url":"https://github.com/giuseppecrj/pi-herdr-agents/issues"},"pi":{"skills":["./skills"],"extensions":["./pi-extension/subagents/index.ts"]},"dist":{"shasum":"973886ce7e17c77b8a2e9a1c200503befd66a0f0","tarball":"https://registry.npmjs.org/pi-herdr-agents/-/pi-herdr-agents-1.2.0.tgz","fileCount":49,"integrity":"sha512-G+q6tyM+F5eAFlEruYEBTy8jmAtyxUdRza2ek8J0SsIgEc2H8JSl4qs7im9aSlwFALt78mFXi3+NNNy+PFGdDA==","signatures":[{"sig":"MEUCIQDH+ll5mfG/uMXUaTb3oA9OD08w3IOMFEkYwToxHH+F6wIgJ5OuyWMHTRvLJnHCnGUuW3oh6Uqtgq1A84Xa4DSw8jY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/pi-herdr-agents@1.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":633977},"type":"module","gitHead":"dba1ab5564b9ef64ae1f0f57b6df4bb40502970c","scripts":{"lint":"oxlint pi-extension test","test":"node --experimental-strip-types --test test/test.ts test/launch.test.ts test/runtime-routing.test.ts test/release-workflow.test.ts test/workflow.test.ts test/package-skill.test.js","version":"auto-changelog --package && git add CHANGELOG.md","changelog":"auto-changelog","test:integration":"node --experimental-strip-types --test --test-concurrency=1 test/integration/*.test.ts","test:integration:live":"PI_TEST_LIVE=1 node --experimental-strip-types --test --test-concurrency=1 test/integration/*.test.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:967eca68-051e-4a74-a82d-be7eb0d76932"}},"repository":{"url":"git+https://github.com/giuseppecrj/pi-herdr-agents.git","type":"git"},"_npmVersion":"11.16.0","description":"Asynchronous Pi subagents and approved review workflows in Herdr, with optional isolated Git worktrees","directories":{},"_nodeVersion":"26.3.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"auto-changelog":{"template":"keepachangelog","unreleased":true,"commitLimit":false},"devDependencies":{"oxlint":"^1.73.0","auto-changelog":"^2.6.0","@sinclair/typebox":"^0.34.52","@earendil-works/pi-ai":"^0.84.0","@earendil-works/pi-tui":"^0.84.0","@earendil-works/pi-coding-agent":"^0.84.0"},"peerDependencies":{"@sinclair/typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-herdr-agents_1.2.0_1786592067124_0.9271729778844033","host":"s3://npm-registry-packages-npm-production"}},"1.2.1":{"name":"pi-herdr-agents","version":"1.2.1","keywords":["pi-package","pi","herdr","subagents","agents","worktrees","orchestration"],"author":{"url":"https://github.com/giuseppecrj","name":"Giuseppe Rodriguez"},"license":"MIT","_id":"pi-herdr-agents@1.2.1","maintainers":[{"name":"giuseppecrj","email":"giuseppecrj@gmail.com"}],"homepage":"https://github.com/giuseppecrj/pi-herdr-agents#readme","bugs":{"url":"https://github.com/giuseppecrj/pi-herdr-agents/issues"},"pi":{"image":"https://raw.githubusercontent.com/giuseppecrj/pi-herdr-agents/main/docs/assets/pi-herdr-agents-gallery.png","skills":["./skills"],"extensions":["./pi-extension/subagents/index.ts"]},"dist":{"shasum":"ecdf783b48873669250f2b5891caf047f5b4836f","tarball":"https://registry.npmjs.org/pi-herdr-agents/-/pi-herdr-agents-1.2.1.tgz","fileCount":49,"integrity":"sha512-3Vz+pwhCtlXySYFZ6mlMsizY7k20VNWSvnfLTzRpACtIsIWum7Bv4dZWNCUfmX1Di3MfvIodZw4N0aj7Ls6HGw==","signatures":[{"sig":"MEQCIF4Nc+uq6SVp5MdUxNIx5gIKmuHN1gUmPvag8PTwgBIMAiAt5fSmOqwXswwZbokOJOJT6BeZV7z77rpH254EZTbCJQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/pi-herdr-agents@1.2.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":635275},"type":"module","gitHead":"df87f126ec5cad4735c441752471aa8bd724f2e9","scripts":{"lint":"oxlint pi-extension test","test":"node --experimental-strip-types --test test/test.ts test/launch.test.ts test/runtime-routing.test.ts test/release-workflow.test.ts test/workflow.test.ts test/package-skill.test.js","version":"auto-changelog --package && git add CHANGELOG.md","changelog":"auto-changelog","test:integration":"node --experimental-strip-types --test --test-concurrency=1 test/integration/*.test.ts","test:integration:live":"PI_TEST_LIVE=1 node --experimental-strip-types --test --test-concurrency=1 test/integration/*.test.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:967eca68-051e-4a74-a82d-be7eb0d76932"}},"repository":{"url":"git+https://github.com/giuseppecrj/pi-herdr-agents.git","type":"git"},"_npmVersion":"11.16.0","description":"Asynchronous Pi subagents and approved review workflows in Herdr, with optional isolated Git worktrees","directories":{},"_nodeVersion":"26.3.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"auto-changelog":{"template":"keepachangelog","unreleased":true,"commitLimit":false},"devDependencies":{"oxlint":"^1.73.0","auto-changelog":"^2.6.0","@sinclair/typebox":"^0.34.52","@earendil-works/pi-ai":"^0.84.0","@earendil-works/pi-tui":"^0.84.0","@earendil-works/pi-coding-agent":"^0.84.0"},"peerDependencies":{"@sinclair/typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-herdr-agents_1.2.1_1786593370448_0.8511941760707114","host":"s3://npm-registry-packages-npm-production"}},"1.2.2":{"name":"pi-herdr-agents","version":"1.2.2","keywords":["pi-package","pi","herdr","subagents","agents","worktrees","orchestration"],"author":{"url":"https://github.com/giuseppecrj","name":"Giuseppe Rodriguez"},"license":"MIT","_id":"pi-herdr-agents@1.2.2","maintainers":[{"name":"giuseppecrj","email":"giuseppecrj@gmail.com"}],"homepage":"https://github.com/giuseppecrj/pi-herdr-agents#readme","bugs":{"url":"https://github.com/giuseppecrj/pi-herdr-agents/issues"},"pi":{"image":"https://raw.githubusercontent.com/giuseppecrj/pi-herdr-agents/main/docs/assets/pi-herdr-agents-gallery.png","skills":["./skills"],"extensions":["./pi-extension/subagents/index.ts"]},"dist":{"shasum":"e4e761e8cb01a2a527352c98642a7a708b8655e9","tarball":"https://registry.npmjs.org/pi-herdr-agents/-/pi-herdr-agents-1.2.2.tgz","fileCount":49,"integrity":"sha512-Fk5WhAjrVeyoaMXHsLhTRlUUheawmcsfUPKDC0N3Lobc/QXPFXybEU2btDkcT5Gj//py/5WGoj1ykM9XQmdKgQ==","signatures":[{"sig":"MEUCIAIY32hsXXKXTZ4SAj65MYdCXT6eoRKA0kHSzoqv82v4AiEAwtZjFZKiA6J5XbUuyDZkuJE9lTJ8Gj5rHQ2yIQjSG8o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/pi-herdr-agents@1.2.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":635007},"type":"module","gitHead":"ab7843b4919574789029c985f27509b968242b05","scripts":{"lint":"oxlint pi-extension test","test":"node --experimental-strip-types --test test/test.ts test/launch.test.ts test/runtime-routing.test.ts test/release-workflow.test.ts test/workflow.test.ts test/package-skill.test.js","version":"auto-changelog --package && git add CHANGELOG.md","changelog":"auto-changelog","test:integration":"node --experimental-strip-types --test --test-concurrency=1 test/integration/*.test.ts","test:integration:live":"PI_TEST_LIVE=1 node --experimental-strip-types --test --test-concurrency=1 test/integration/*.test.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:967eca68-051e-4a74-a82d-be7eb0d76932"}},"repository":{"url":"git+https://github.com/giuseppecrj/pi-herdr-agents.git","type":"git"},"_npmVersion":"11.16.0","description":"Asynchronous Pi subagents and approved review workflows in Herdr, with optional isolated Git worktrees","directories":{},"_nodeVersion":"26.3.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"auto-changelog":{"template":"keepachangelog","unreleased":true,"commitLimit":false},"devDependencies":{"oxlint":"^1.73.0","auto-changelog":"^2.6.0","@sinclair/typebox":"^0.34.52","@earendil-works/pi-ai":"^0.84.0","@earendil-works/pi-tui":"^0.84.0","@earendil-works/pi-coding-agent":"^0.84.0"},"peerDependencies":{"@sinclair/typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-herdr-agents_1.2.2_1787025005615_0.2024108039895729","host":"s3://npm-registry-packages-npm-production"}},"1.2.3":{"name":"pi-herdr-agents","version":"1.2.3","keywords":["pi-package","pi","herdr","subagents","agents","worktrees","orchestration"],"author":{"url":"https://github.com/giuseppecrj","name":"Giuseppe Rodriguez"},"license":"MIT","_id":"pi-herdr-agents@1.2.3","maintainers":[{"name":"giuseppecrj","email":"giuseppecrj@gmail.com"}],"homepage":"https://github.com/giuseppecrj/pi-herdr-agents#readme","bugs":{"url":"https://github.com/giuseppecrj/pi-herdr-agents/issues"},"pi":{"image":"https://raw.githubusercontent.com/giuseppecrj/pi-herdr-agents/main/docs/assets/pi-herdr-agents-gallery.png","skills":["./skills"],"extensions":["./pi-extension/subagents/index.ts"]},"dist":{"shasum":"25bfb65461343f3d2e4a049f3bf8b59b2bd1e518","tarball":"https://registry.npmjs.org/pi-herdr-agents/-/pi-herdr-agents-1.2.3.tgz","fileCount":49,"integrity":"sha512-/tVRY8TeEjQT1bZPwZL54WxxBuvZqFRPDMAojna6EFsda15VKaeunKuyKrdsXX8kWep6qlCmbo4PBRGgk5skOg==","signatures":[{"sig":"MEYCIQCXdlRIwBjnEb28PoPhiKB5miNmCYU6Tljb91jveRxDOAIhAImbl8lJEt8l3FfwCZUDSQ0QoPwAHkPlNj4cV7eOTugd","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/pi-herdr-agents@1.2.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":635076},"type":"module","gitHead":"cd5036e6254ee5d28d8da3ddfd55e8cc4e0db413","scripts":{"lint":"oxlint pi-extension test","test":"node --experimental-strip-types --test test/test.ts test/launch.test.ts test/runtime-routing.test.ts test/release-workflow.test.ts test/workflow.test.ts test/package-skill.test.js","version":"auto-changelog --package && git add CHANGELOG.md","changelog":"auto-changelog","test:integration":"node --experimental-strip-types --test --test-concurrency=1 test/integration/*.test.ts","test:integration:live":"PI_TEST_LIVE=1 node --experimental-strip-types --test --test-concurrency=1 test/integration/*.test.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:967eca68-051e-4a74-a82d-be7eb0d76932"}},"repository":{"url":"git+https://github.com/giuseppecrj/pi-herdr-agents.git","type":"git"},"_npmVersion":"11.16.0","description":"Asynchronous Pi subagents and approved review workflows in Herdr, with optional isolated Git worktrees","directories":{},"_nodeVersion":"26.3.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"auto-changelog":{"template":"keepachangelog","unreleased":true,"commitLimit":false},"devDependencies":{"oxlint":"^1.73.0","auto-changelog":"^2.6.0","@sinclair/typebox":"^0.34.52","@earendil-works/pi-ai":"^0.84.0","@earendil-works/pi-tui":"^0.84.0","@earendil-works/pi-coding-agent":"^0.84.0"},"peerDependencies":{"@sinclair/typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-herdr-agents_1.2.3_1787061915459_0.5404773276011527","host":"s3://npm-registry-packages-npm-production"}},"1.3.0":{"name":"pi-herdr-agents","version":"1.3.0","keywords":["pi-package","pi","herdr","subagents","agents","worktrees","orchestration"],"author":{"url":"https://github.com/giuseppecrj","name":"Giuseppe Rodriguez"},"license":"MIT","_id":"pi-herdr-agents@1.3.0","maintainers":[{"name":"giuseppecrj","email":"giuseppecrj@gmail.com"}],"homepage":"https://github.com/giuseppecrj/pi-herdr-agents#readme","bugs":{"url":"https://github.com/giuseppecrj/pi-herdr-agents/issues"},"pi":{"image":"https://raw.githubusercontent.com/giuseppecrj/pi-herdr-agents/main/docs/assets/pi-herdr-agents-gallery.png","skills":["./skills"],"extensions":["./pi-extension/subagents/index.ts"]},"dist":{"shasum":"db2653ac0c033e1bbd0f7e4115a73400834147a6","tarball":"https://registry.npmjs.org/pi-herdr-agents/-/pi-herdr-agents-1.3.0.tgz","fileCount":49,"integrity":"sha512-Ac7Tb0ZbhjJ31tdesICZmb+Nhg2v5J6v6PWLlMfUBuQQT0It9V5fRFXglbLvD7H8CtY29nFfvt8l/ggZMnOOqQ==","signatures":[{"sig":"MEUCIFTwtRZH2U48MTXcgH8BJgsYEr/x1SnrXs9wxiOttdVOAiEA5lEdLik+jECUg7L0iSit/piZ62zLueG0HnQCiUwor2U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/pi-herdr-agents@1.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":637194},"type":"module","gitHead":"36c8187098e24f3d65dc309e19ccd44e6432f8ce","scripts":{"lint":"oxlint pi-extension test","test":"node --experimental-strip-types --test test/test.ts test/launch.test.ts test/runtime-routing.test.ts test/release-workflow.test.ts test/workflow.test.ts test/package-skill.test.js","version":"auto-changelog --package && git add CHANGELOG.md","changelog":"auto-changelog","test:integration":"node --experimental-strip-types --test --test-concurrency=1 test/integration/*.test.ts","test:integration:live":"PI_TEST_LIVE=1 node --experimental-strip-types --test --test-concurrency=1 test/integration/*.test.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:967eca68-051e-4a74-a82d-be7eb0d76932"}},"repository":{"url":"git+https://github.com/giuseppecrj/pi-herdr-agents.git","type":"git"},"_npmVersion":"11.16.0","description":"Asynchronous Pi subagents and approved review workflows in Herdr, with optional isolated Git worktrees","directories":{},"_nodeVersion":"26.3.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"auto-changelog":{"template":"keepachangelog","unreleased":true,"commitLimit":false},"devDependencies":{"oxlint":"^1.73.0","auto-changelog":"^2.6.0","@sinclair/typebox":"^0.34.52","@earendil-works/pi-ai":"^0.84.0","@earendil-works/pi-tui":"^0.84.0","@earendil-works/pi-coding-agent":"^0.84.0"},"peerDependencies":{"@sinclair/typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-herdr-agents_1.3.0_1787087200246_0.085200484811222","host":"s3://npm-registry-packages-npm-production"}},"1.3.1":{"name":"pi-herdr-agents","version":"1.3.1","keywords":["pi-package","pi","herdr","subagents","agents","worktrees","orchestration"],"author":{"url":"https://github.com/giuseppecrj","name":"Giuseppe Rodriguez"},"license":"MIT","_id":"pi-herdr-agents@1.3.1","maintainers":[{"name":"giuseppecrj","email":"giuseppecrj@gmail.com"}],"homepage":"https://github.com/giuseppecrj/pi-herdr-agents#readme","bugs":{"url":"https://github.com/giuseppecrj/pi-herdr-agents/issues"},"pi":{"image":"https://raw.githubusercontent.com/giuseppecrj/pi-herdr-agents/main/docs/assets/pi-herdr-agents-gallery.png","skills":["./skills"],"extensions":["./pi-extension/subagents/index.ts"]},"dist":{"shasum":"66f0cc7b208fb4cf6ff3cf54fa4532d8cf348493","tarball":"https://registry.npmjs.org/pi-herdr-agents/-/pi-herdr-agents-1.3.1.tgz","fileCount":49,"integrity":"sha512-+Eqzs4g9IGW9q/O+X146uZR9sRfj+e90Av/pzY3hBf04mTvXFDDy3B07csiDiPRV/DDiK/PSnzw2aBtb7Plbjw==","signatures":[{"sig":"MEQCIB2dCsxF7sJfaXJ7ByP+wJL/GQysugNUeHklkSTqzVo2AiBO1yyIFmWmcuwws2LlmcCtEXmGhsQpluujRP5tDJ1+Rg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/pi-herdr-agents@1.3.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":641570},"type":"module","gitHead":"79fce1fd88717c9d7b15701939bb649bbdefb05b","scripts":{"lint":"oxlint pi-extension test","test":"node --experimental-strip-types --test test/test.ts test/launch.test.ts test/runtime-routing.test.ts test/release-workflow.test.ts test/workflow.test.ts test/package-skill.test.js","version":"auto-changelog --package && git add CHANGELOG.md","changelog":"auto-changelog","test:integration":"node --experimental-strip-types --test --test-concurrency=1 test/integration/*.test.ts","test:integration:live":"PI_TEST_LIVE=1 node --experimental-strip-types --test --test-concurrency=1 test/integration/*.test.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:967eca68-051e-4a74-a82d-be7eb0d76932"}},"repository":{"url":"git+https://github.com/giuseppecrj/pi-herdr-agents.git","type":"git"},"_npmVersion":"11.16.0","description":"Asynchronous Pi subagents and approved review workflows in Herdr, with optional isolated Git worktrees","directories":{},"_nodeVersion":"26.3.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"auto-changelog":{"template":"keepachangelog","unreleased":true,"commitLimit":false},"devDependencies":{"oxlint":"^1.73.0","auto-changelog":"^2.6.0","@sinclair/typebox":"^0.34.52","@earendil-works/pi-ai":"^0.84.0","@earendil-works/pi-tui":"^0.84.0","@earendil-works/pi-coding-agent":"^0.84.0"},"peerDependencies":{"@sinclair/typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-herdr-agents_1.3.1_1787980014115_0.21575279609877485","host":"s3://npm-registry-packages-npm-production"}},"1.4.0":{"name":"pi-herdr-agents","version":"1.4.0","keywords":["pi-package","pi","herdr","subagents","agents","worktrees","orchestration"],"author":{"url":"https://github.com/giuseppecrj","name":"Giuseppe Rodriguez"},"license":"MIT","_id":"pi-herdr-agents@1.4.0","maintainers":[{"name":"giuseppecrj","email":"giuseppecrj@gmail.com"}],"homepage":"https://github.com/giuseppecrj/pi-herdr-agents#readme","bugs":{"url":"https://github.com/giuseppecrj/pi-herdr-agents/issues"},"pi":{"image":"https://raw.githubusercontent.com/giuseppecrj/pi-herdr-agents/main/docs/assets/pi-herdr-agents-gallery.png","skills":["./skills"],"extensions":["./pi-extension/subagents/index.ts"]},"dist":{"shasum":"5f22ba0b9019f63e67c9e01db76e38714a487ae4","tarball":"https://registry.npmjs.org/pi-herdr-agents/-/pi-herdr-agents-1.4.0.tgz","fileCount":49,"integrity":"sha512-JoIzLuiPP4wd1/ax0OLBNIZ4YrwVYlgRTdhz2grX2VPAggm4yFn0cXXN0RopCI+RKJzXYsRmiESGKD1EWFRbEw==","signatures":[{"sig":"MEUCIBdA1GqedqqhcqIrx2omsY7thHTCz8pGKsM5k51zD9mzAiEAtLWpoSuWZrZHmkRHDfkveQsfNOjLTqY1tjStWTfJo4U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/pi-herdr-agents@1.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":643835},"type":"module","gitHead":"0480689cc6914738406d0dab9c260744c7666df3","scripts":{"lint":"oxlint pi-extension test","test":"node --experimental-strip-types --test test/test.ts test/launch.test.ts test/runtime-routing.test.ts test/release-workflow.test.ts test/workflow.test.ts test/package-skill.test.js","version":"auto-changelog --package && git add CHANGELOG.md","changelog":"auto-changelog","test:integration":"node --experimental-strip-types --test --test-concurrency=1 test/integration/*.test.ts","test:integration:live":"PI_TEST_LIVE=1 node --experimental-strip-types --test --test-concurrency=1 test/integration/*.test.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:967eca68-051e-4a74-a82d-be7eb0d76932"}},"repository":{"url":"git+https://github.com/giuseppecrj/pi-herdr-agents.git","type":"git"},"_npmVersion":"11.16.0","description":"Asynchronous Pi subagents and approved review workflows in Herdr, with optional isolated Git worktrees","directories":{},"_nodeVersion":"26.3.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"auto-changelog":{"template":"keepachangelog","unreleased":true,"commitLimit":false},"devDependencies":{"oxlint":"^1.73.0","auto-changelog":"^2.6.0","@sinclair/typebox":"^0.34.52","@earendil-works/pi-ai":"^0.84.0","@earendil-works/pi-tui":"^0.84.0","@earendil-works/pi-coding-agent":"^0.84.0"},"peerDependencies":{"@sinclair/typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-herdr-agents_1.4.0_1788181773475_0.340680769354045","host":"s3://npm-registry-packages-npm-production"}},"1.4.1":{"name":"pi-herdr-agents","version":"1.4.1","keywords":["pi-package","pi","herdr","subagents","agents","worktrees","orchestration"],"author":{"url":"https://github.com/giuseppecrj","name":"Giuseppe Rodriguez"},"license":"MIT","_id":"pi-herdr-agents@1.4.1","maintainers":[{"name":"giuseppecrj","email":"giuseppecrj@gmail.com"}],"homepage":"https://github.com/giuseppecrj/pi-herdr-agents#readme","bugs":{"url":"https://github.com/giuseppecrj/pi-herdr-agents/issues"},"pi":{"image":"https://raw.githubusercontent.com/giuseppecrj/pi-herdr-agents/main/docs/assets/pi-herdr-agents-gallery.png","skills":["./skills"],"extensions":["./pi-extension/subagents/index.ts"]},"dist":{"shasum":"40d584e682ae2e51f0fc2a6148dc87d59ba662c2","tarball":"https://registry.npmjs.org/pi-herdr-agents/-/pi-herdr-agents-1.4.1.tgz","fileCount":50,"integrity":"sha512-trBlozMrWwdcUF2savdbbpMvLI/mU6sA1GZ8c7N3iPUD8SRzX6QqzVowrEFRFmwiQTv0FcRxsIs1pli4Gc66hg==","signatures":[{"sig":"MEQCIDYeq4zvxBNaogXdNCiMH7Tqsy9diEMSHHjdQ4gICnI8AiAcLVZT0zMJn0AI0wUca7QbED4N4KCXEKPUgLAffG2Few==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/pi-herdr-agents@1.4.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":649334},"type":"module","gitHead":"49d50e2cd64abed8a74db46c103b22e944a5c614","scripts":{"lint":"oxlint pi-extension test","test":"node --experimental-strip-types --test test/test.ts test/launch.test.ts test/runtime-routing.test.ts test/release-workflow.test.ts test/workflow.test.ts test/package-skill.test.js","version":"auto-changelog --package && git add CHANGELOG.md","changelog":"auto-changelog","test:integration":"node --experimental-strip-types --test --test-concurrency=1 test/integration/*.test.ts","test:integration:live":"PI_TEST_LIVE=1 node --experimental-strip-types --test --test-concurrency=1 test/integration/*.test.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:967eca68-051e-4a74-a82d-be7eb0d76932"}},"repository":{"url":"git+https://github.com/giuseppecrj/pi-herdr-agents.git","type":"git"},"_npmVersion":"11.16.0","description":"Asynchronous Pi subagents and approved review workflows in Herdr, with optional isolated Git worktrees","directories":{},"_nodeVersion":"26.3.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"auto-changelog":{"template":"keepachangelog","unreleased":true,"commitLimit":false},"devDependencies":{"oxlint":"^1.80.0","auto-changelog":"^2.6.0","@oxlint/plugins":"^1.80.0","@sinclair/typebox":"^0.34.52","@earendil-works/pi-ai":"^0.84.0","@earendil-works/pi-tui":"^0.84.0","@earendil-works/pi-coding-agent":"^0.84.0"},"peerDependencies":{"@sinclair/typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-herdr-agents_1.4.1_1788183479877_0.07763493956820278","host":"s3://npm-registry-packages-npm-production"}},"1.4.2":{"name":"pi-herdr-agents","version":"1.4.2","keywords":["pi-package","pi","herdr","subagents","agents","worktrees","orchestration"],"author":{"url":"https://github.com/giuseppecrj","name":"Giuseppe Rodriguez"},"license":"MIT","_id":"pi-herdr-agents@1.4.2","maintainers":[{"name":"giuseppecrj","email":"giuseppecrj@gmail.com"}],"homepage":"https://github.com/giuseppecrj/pi-herdr-agents#readme","bugs":{"url":"https://github.com/giuseppecrj/pi-herdr-agents/issues"},"pi":{"image":"https://raw.githubusercontent.com/giuseppecrj/pi-herdr-agents/main/docs/assets/pi-herdr-agents-gallery.png","skills":["./skills"],"extensions":["./pi-extension/subagents/index.ts"]},"dist":{"shasum":"c68073d6f004c7d0c85b4a0651f9c95fdcf2ca87","tarball":"https://registry.npmjs.org/pi-herdr-agents/-/pi-herdr-agents-1.4.2.tgz","fileCount":50,"integrity":"sha512-8piq1e2/qKagC+PHNp2GP0FAy3LBnlbYxHh7FcCCPK8JvPSY2oNODZ91C9X2sLFjPlvTufOAsccvbYdGMIa8gw==","signatures":[{"sig":"MEQCIF5Kpe3ffdZYOICmgU97YV9O/qPF0rHeNHh2dwamUqzPAiAnrQMZXlnSdVeSvhYBqi9p3FLO8bC7jvQRURFhSxF60g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/pi-herdr-agents@1.4.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":650792},"type":"module","gitHead":"5c38516bb78707c55682ee0e85ad991719332027","scripts":{"lint":"oxlint pi-extension test","test":"node --experimental-strip-types --test test/test.ts test/launch.test.ts test/runtime-routing.test.ts test/release-workflow.test.ts test/workflow.test.ts test/package-skill.test.js","format":"biome format --write pi-extension test","version":"auto-changelog --package && git add CHANGELOG.md","changelog":"auto-changelog","format:check":"biome format pi-extension test","test:integration":"node --experimental-strip-types --test --test-concurrency=1 test/integration/*.test.ts","test:integration:live":"PI_TEST_LIVE=1 node --experimental-strip-types --test --test-concurrency=1 test/integration/*.test.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:967eca68-051e-4a74-a82d-be7eb0d76932"}},"repository":{"url":"git+https://github.com/giuseppecrj/pi-herdr-agents.git","type":"git"},"_npmVersion":"11.16.0","description":"Asynchronous Pi subagents and approved review workflows in Herdr, with optional isolated Git worktrees","directories":{},"_nodeVersion":"26.3.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"auto-changelog":{"template":"keepachangelog","unreleased":true,"commitLimit":false},"devDependencies":{"oxlint":"^1.80.0","@biomejs/biome":"2.5.11","auto-changelog":"^2.6.0","@oxlint/plugins":"^1.80.0","@sinclair/typebox":"^0.34.52","@earendil-works/pi-ai":"^0.84.0","@earendil-works/pi-tui":"^0.84.0","@earendil-works/pi-coding-agent":"^0.84.0"},"peerDependencies":{"@sinclair/typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-herdr-agents_1.4.2_1788193554261_0.8068273979020519","host":"s3://npm-registry-packages-npm-production"}},"1.5.0":{"name":"pi-herdr-agents","version":"1.5.0","keywords":["pi-package","pi","herdr","subagents","agents","worktrees","orchestration"],"author":{"url":"https://github.com/giuseppecrj","name":"Giuseppe Rodriguez"},"license":"MIT","_id":"pi-herdr-agents@1.5.0","maintainers":[{"name":"giuseppecrj","email":"giuseppecrj@gmail.com"}],"homepage":"https://github.com/giuseppecrj/pi-herdr-agents#readme","bugs":{"url":"https://github.com/giuseppecrj/pi-herdr-agents/issues"},"pi":{"image":"https://raw.githubusercontent.com/giuseppecrj/pi-herdr-agents/main/docs/assets/pi-herdr-agents-gallery.png","skills":["./skills"],"extensions":["./pi-extension/subagents/index.ts"]},"dist":{"shasum":"2aa0343c57f1c0fcfd7098e4bf7845843a1f23aa","tarball":"https://registry.npmjs.org/pi-herdr-agents/-/pi-herdr-agents-1.5.0.tgz","fileCount":55,"integrity":"sha512-ZkpHQYKC6V/kyMWrw3eYLVLUW5oO2sysBYzKMJMH6IaJrzLCm56cCcDRxIluGu6awBDP2U7fxQRNjq9Lo4zQKQ==","signatures":[{"sig":"MEYCIQClKMq+PeXO/TYXzYZS3VKkclO+syg6QxiXotFAVjRhBAIhAMSeUdcV7nGWHr+CoJaOYiiY4YgYEgM9nmxUJg68kvlc","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/pi-herdr-agents@1.5.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":724674},"type":"module","gitHead":"d77714c79123db91d4741838587b4851527c4615","scripts":{"lint":"oxlint pi-extension test skills/orchestrate/adversarial-review-example.js","test":"node --experimental-strip-types --test test/test.ts test/launch.test.ts test/runtime-routing.test.ts test/release-workflow.test.ts test/workflow.test.ts test/package-skill.test.js test/evals/*.test.mjs","format":"biome format --write pi-extension test skills/orchestrate/adversarial-review-example.js","version":"auto-changelog --package && git add CHANGELOG.md","changelog":"auto-changelog","format:check":"biome format pi-extension test skills/orchestrate/adversarial-review-example.js","test:integration":"node --experimental-strip-types --test --test-concurrency=1 test/integration/*.test.ts","test:integration:live":"PI_TEST_LIVE=1 node --experimental-strip-types --test --test-concurrency=1 test/integration/*.test.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:967eca68-051e-4a74-a82d-be7eb0d76932"}},"repository":{"url":"git+https://github.com/giuseppecrj/pi-herdr-agents.git","type":"git"},"_npmVersion":"11.16.0","description":"Asynchronous Pi subagents and approved review workflows in Herdr, with optional isolated Git worktrees","directories":{},"_nodeVersion":"26.3.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"auto-changelog":{"template":"keepachangelog","unreleased":true,"commitLimit":false},"devDependencies":{"oxlint":"^1.80.0","@biomejs/biome":"2.5.11","auto-changelog":"^2.6.0","@oxlint/plugins":"^1.80.0","@sinclair/typebox":"^0.34.52","@earendil-works/pi-ai":"^0.84.0","@earendil-works/pi-tui":"^0.84.0","@earendil-works/pi-coding-agent":"^0.84.0"},"peerDependencies":{"@sinclair/typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-herdr-agents_1.5.0_1788577762869_0.6546488602601102","host":"s3://npm-registry-packages-npm-production"}},"1.5.1":{"name":"pi-herdr-agents","version":"1.5.1","keywords":["pi-package","pi","herdr","subagents","agents","worktrees","orchestration"],"author":{"url":"https://github.com/giuseppecrj","name":"Giuseppe Rodriguez"},"license":"MIT","_id":"pi-herdr-agents@1.5.1","maintainers":[{"name":"giuseppecrj","email":"giuseppecrj@gmail.com"}],"homepage":"https://github.com/giuseppecrj/pi-herdr-agents#readme","bugs":{"url":"https://github.com/giuseppecrj/pi-herdr-agents/issues"},"pi":{"image":"https://raw.githubusercontent.com/giuseppecrj/pi-herdr-agents/main/docs/assets/pi-herdr-agents-gallery.png","skills":["./skills"],"extensions":["./pi-extension/subagents/index.ts"]},"dist":{"shasum":"de3cc15fd1d4879a645a61ca3f19a1e39102e20e","tarball":"https://registry.npmjs.org/pi-herdr-agents/-/pi-herdr-agents-1.5.1.tgz","fileCount":55,"integrity":"sha512-kde2tmy/vcn1zmSLVOboG/1KFxJSDD+WjPSDWEB0p+YBkF9PHQemdfZm0/0YPBdoWMGhWhy1UfNjkeVKiPLSPA==","signatures":[{"sig":"MEUCIQDe6WCqoPZLk6DY8ugMG4Ha3R5MqT+5P//1/in6+0MBgQIgdPlMUrRTTlAo1zZ27QrqXF/UMb8DwQRD2ZndHH9aI7o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/pi-herdr-agents@1.5.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":742375},"type":"module","gitHead":"ebef2657b0b21177373868d83d66965fdf77febd","scripts":{"lint":"oxlint pi-extension test skills/orchestrate/adversarial-review-example.js","test":"node --experimental-strip-types --test test/test.ts test/launch.test.ts test/runtime-routing.test.ts test/release-workflow.test.ts test/workflow.test.ts test/package-skill.test.js test/evals/*.test.mjs","format":"biome format --write pi-extension test skills/orchestrate/adversarial-review-example.js","version":"auto-changelog --package && git add CHANGELOG.md","changelog":"auto-changelog","format:check":"biome format pi-extension test skills/orchestrate/adversarial-review-example.js","test:integration":"node --experimental-strip-types --test --test-concurrency=1 test/integration/*.test.ts","test:integration:live":"PI_TEST_LIVE=1 node --experimental-strip-types --test --test-concurrency=1 test/integration/*.test.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:967eca68-051e-4a74-a82d-be7eb0d76932"}},"repository":{"url":"git+https://github.com/giuseppecrj/pi-herdr-agents.git","type":"git"},"_npmVersion":"11.16.0","description":"Asynchronous Pi subagents and approved review workflows in Herdr, with optional isolated Git worktrees","directories":{},"_nodeVersion":"26.3.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"auto-changelog":{"template":"keepachangelog","unreleased":true,"commitLimit":false},"devDependencies":{"oxlint":"^1.80.0","@biomejs/biome":"2.5.11","auto-changelog":"^2.6.0","@oxlint/plugins":"^1.80.0","@sinclair/typebox":"^0.34.52","@earendil-works/pi-ai":"^0.84.0","@earendil-works/pi-tui":"^0.84.0","@earendil-works/pi-coding-agent":"^0.84.0"},"peerDependencies":{"@sinclair/typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-herdr-agents_1.5.1_1788641148920_0.24969935393722098","host":"s3://npm-registry-packages-npm-production"}},"1.6.0":{"name":"pi-herdr-agents","version":"1.6.0","keywords":["pi-package","pi","herdr","subagents","agents","worktrees","orchestration"],"author":{"url":"https://github.com/giuseppecrj","name":"Giuseppe Rodriguez"},"license":"MIT","_id":"pi-herdr-agents@1.6.0","maintainers":[{"name":"giuseppecrj","email":"giuseppecrj@gmail.com"}],"homepage":"https://github.com/giuseppecrj/pi-herdr-agents#readme","bugs":{"url":"https://github.com/giuseppecrj/pi-herdr-agents/issues"},"pi":{"image":"https://raw.githubusercontent.com/giuseppecrj/pi-herdr-agents/main/docs/assets/pi-herdr-agents-gallery.png","skills":["./skills"],"extensions":["./pi-extension/subagents/index.ts"]},"dist":{"shasum":"a988e69291c40e55be6f0cf4fca43ab13388f959","tarball":"https://registry.npmjs.org/pi-herdr-agents/-/pi-herdr-agents-1.6.0.tgz","fileCount":59,"integrity":"sha512-EkgQrvK1N7QEOLq8fYZEgqPOwU7rpQwQup/GCmMisvsh5oOMCX5YIvIdE/RA+b3qTf0tKbS5ogmxvrHnWZUFAQ==","signatures":[{"sig":"MEUCIQDBPH+ablrafpdUhfM50pr9CjL+rd6V41J2Mi7bw3KCeQIgJ5e5hpUURMLmeyUb9qCRHiItXsrrk9PwNXIiL+A4+Mw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/pi-herdr-agents@1.6.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":697607},"type":"module","gitHead":"8a181890479f46d5955d4f1bac3be759a2d39010","scripts":{"lint":"oxlint pi-extension test skills/orchestrate/adversarial-review-example.js","test":"node --experimental-strip-types --test test/test.ts test/launch.test.ts test/runtime-routing.test.ts test/release-workflow.test.ts test/package-skill.test.js test/evals/*.test.mjs","format":"biome format --write pi-extension test skills/orchestrate/adversarial-review-example.js","version":"auto-changelog --package && git add CHANGELOG.md","changelog":"auto-changelog","format:check":"biome format pi-extension test skills/orchestrate/adversarial-review-example.js","test:integration":"node --experimental-strip-types --test --test-concurrency=1 test/integration/*.test.ts","test:integration:live":"PI_TEST_LIVE=1 node --experimental-strip-types --test --test-concurrency=1 test/integration/*.test.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:967eca68-051e-4a74-a82d-be7eb0d76932"}},"repository":{"url":"git+https://github.com/giuseppecrj/pi-herdr-agents.git","type":"git"},"_npmVersion":"11.16.0","description":"Asynchronous Pi subagents in Herdr, with optional isolated Git worktrees","directories":{},"_nodeVersion":"26.3.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"auto-changelog":{"template":"keepachangelog","unreleased":true,"commitLimit":false},"devDependencies":{"oxlint":"^1.80.0","@biomejs/biome":"2.5.11","auto-changelog":"^2.6.0","@oxlint/plugins":"^1.80.0","@sinclair/typebox":"^0.34.52","@earendil-works/pi-ai":"^0.84.0","@earendil-works/pi-tui":"^0.84.0","@earendil-works/pi-coding-agent":"^0.84.0"},"peerDependencies":{"@sinclair/typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-herdr-agents_1.6.0_1788881483512_0.700939836467465","host":"s3://npm-registry-packages-npm-production"}},"1.7.0":{"name":"pi-herdr-agents","version":"1.7.0","keywords":["pi-package","pi","herdr","subagents","agents","worktrees","orchestration"],"author":{"url":"https://github.com/giuseppecrj","name":"Giuseppe Rodriguez"},"license":"MIT","_id":"pi-herdr-agents@1.7.0","maintainers":[{"name":"giuseppecrj","email":"giuseppecrj@gmail.com"}],"homepage":"https://github.com/giuseppecrj/pi-herdr-agents#readme","bugs":{"url":"https://github.com/giuseppecrj/pi-herdr-agents/issues"},"pi":{"image":"https://raw.githubusercontent.com/giuseppecrj/pi-herdr-agents/main/docs/assets/pi-herdr-agents-gallery.png","skills":["./skills"],"extensions":["./pi-extension/subagents/index.ts"]},"dist":{"shasum":"306c336b7c0346b8d4fc27f47d01146072203ce9","tarball":"https://registry.npmjs.org/pi-herdr-agents/-/pi-herdr-agents-1.7.0.tgz","fileCount":59,"integrity":"sha512-wYs6xfWtO9WKXu5lr+mUGr9S1HWABx2ZHmiOTmwTh6VGPsS69hZX4XJGI629rxIo05aNjvEh4XnVCXUtfmZP4A==","signatures":[{"sig":"MEUCICM6Ie39zH+Kui8DTLxfjQUxb8nj5gOZuhkiibO/AUDCAiEA2/ejgQiIqqUwyDHzIwHRxyvU1/I+iWRjJR41pUhy1+U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/pi-herdr-agents@1.7.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":720818},"type":"module","gitHead":"371265e74fb7485afbfbc7c028d60dc4f98d2779","scripts":{"lint":"oxlint pi-extension test skills/orchestrate/adversarial-review-example.js","test":"node --experimental-strip-types --test test/test.ts test/launch.test.ts test/runtime-routing.test.ts test/release-workflow.test.ts test/package-skill.test.js test/evals/*.test.mjs","format":"biome format --write pi-extension test skills/orchestrate/adversarial-review-example.js","version":"auto-changelog --package && git add CHANGELOG.md","changelog":"auto-changelog","format:check":"biome format pi-extension test skills/orchestrate/adversarial-review-example.js","test:integration":"node --experimental-strip-types --test --test-concurrency=1 test/integration/*.test.ts","test:integration:live":"PI_TEST_LIVE=1 node --experimental-strip-types --test --test-concurrency=1 test/integration/*.test.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:967eca68-051e-4a74-a82d-be7eb0d76932"}},"repository":{"url":"git+https://github.com/giuseppecrj/pi-herdr-agents.git","type":"git"},"_npmVersion":"11.16.0","description":"Asynchronous Pi subagents in Herdr, with optional isolated Git worktrees","directories":{},"_nodeVersion":"26.3.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"auto-changelog":{"template":"keepachangelog","unreleased":true,"commitLimit":false},"devDependencies":{"oxlint":"^1.80.0","@biomejs/biome":"2.5.11","auto-changelog":"^2.6.0","@oxlint/plugins":"^1.80.0","@sinclair/typebox":"^0.34.52","@earendil-works/pi-ai":"^0.84.0","@earendil-works/pi-tui":"^0.84.0","@earendil-works/pi-coding-agent":"^0.84.0"},"peerDependencies":{"@sinclair/typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-herdr-agents_1.7.0_1788922355103_0.27974042261959586","host":"s3://npm-registry-packages-npm-production"}},"2.0.0":{"name":"pi-herdr-agents","version":"2.0.0","keywords":["pi-package","pi","herdr","subagents","agents","worktrees","orchestration"],"author":{"url":"https://github.com/giuseppecrj","name":"Giuseppe Rodriguez"},"license":"MIT","_id":"pi-herdr-agents@2.0.0","maintainers":[{"name":"giuseppecrj","email":"giuseppecrj@gmail.com"}],"homepage":"https://github.com/giuseppecrj/pi-herdr-agents#readme","bugs":{"url":"https://github.com/giuseppecrj/pi-herdr-agents/issues"},"pi":{"image":"https://raw.githubusercontent.com/giuseppecrj/pi-herdr-agents/main/docs/assets/pi-herdr-agents-gallery.png","skills":["./skills"],"extensions":["./pi-extension/subagents/index.ts"]},"dist":{"shasum":"1217f1f0f0cc18c41512e89d901193be3d7a19d2","tarball":"https://registry.npmjs.org/pi-herdr-agents/-/pi-herdr-agents-2.0.0.tgz","fileCount":62,"integrity":"sha512-+7abVbh5Hxh0s6+4ZY6iON1LzIEulyG6DS0M1aWjkmKshm0o0TO5jIvRra11Lux+weRQXkNy851tZfg0DG371g==","signatures":[{"sig":"MEUCIQC0HGUqmnMkHp3yE/KRprhk4hY/kSSQeFdev/j2/rzlgwIgQW9HzDfPjIVL4zW3eMDQ6FU5/OObXm1nh4vqMuQSCYg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIHd4ma6ZvtZu0Lww+x7uw+ss6EncRQIclmCtEK3H7YYCAiAW/dAsAe9aBnUA2Et97/uCi3g1YjxV4oay1yF0Q0y1CQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/pi-herdr-agents@2.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":785468},"type":"module","gitHead":"211a43b01c304b59e867ee7003b6f68573cebeda","scripts":{"lint":"oxlint pi-extension test skills/orchestrate/adversarial-review-example.js","test":"node --experimental-strip-types --test test/test.ts test/worktree-cleanup.test.ts test/launch.test.ts test/runtime-routing.test.ts test/release-workflow.test.ts test/package-skill.test.js test/evals/*.test.mjs","format":"biome format --write pi-extension test skills/orchestrate/adversarial-review-example.js","version":"auto-changelog --package && git add CHANGELOG.md","changelog":"auto-changelog","format:check":"biome format pi-extension test skills/orchestrate/adversarial-review-example.js","test:integration":"node --experimental-strip-types --test --test-concurrency=1 test/integration/*.test.ts","test:integration:live":"PI_TEST_LIVE=1 node --experimental-strip-types --test --test-concurrency=1 test/integration/*.test.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:967eca68-051e-4a74-a82d-be7eb0d76932"}},"repository":{"url":"git+https://github.com/giuseppecrj/pi-herdr-agents.git","type":"git"},"_npmVersion":"11.16.0","description":"Asynchronous Pi subagents in Herdr, with optional isolated Git worktrees","directories":{},"_nodeVersion":"26.3.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"auto-changelog":{"template":"keepachangelog","unreleased":true,"commitLimit":false},"devDependencies":{"oxlint":"^1.80.0","@biomejs/biome":"2.5.11","auto-changelog":"^2.6.0","@oxlint/plugins":"^1.80.0","@sinclair/typebox":"^0.34.52","@earendil-works/pi-ai":"^0.84.0","@earendil-works/pi-tui":"^0.84.0","@earendil-works/pi-coding-agent":"^0.84.0"},"peerDependencies":{"@sinclair/typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-herdr-agents_2.0.0_1789693622150_0.8197663563055744","host":"s3://npm-registry-packages-npm-production"}},"2.0.1":{"name":"pi-herdr-agents","version":"2.0.1","keywords":["pi-package","pi","herdr","subagents","agents","worktrees","orchestration"],"author":{"url":"https://github.com/giuseppecrj","name":"Giuseppe Rodriguez"},"license":"MIT","_id":"pi-herdr-agents@2.0.1","maintainers":[{"name":"giuseppecrj","email":"giuseppecrj@gmail.com"}],"homepage":"https://github.com/giuseppecrj/pi-herdr-agents#readme","bugs":{"url":"https://github.com/giuseppecrj/pi-herdr-agents/issues"},"pi":{"image":"https://raw.githubusercontent.com/giuseppecrj/pi-herdr-agents/main/docs/assets/pi-herdr-agents-gallery.png","skills":["./skills"],"extensions":["./pi-extension/subagents/index.ts"]},"dist":{"shasum":"ed7b49f235c1d73fd2525138d3b52adfdfa2da28","tarball":"https://registry.npmjs.org/pi-herdr-agents/-/pi-herdr-agents-2.0.1.tgz","fileCount":63,"integrity":"sha512-kCAObI0PlVog21nNpLTvC2NF20qFo0TXfc1BAvBu/uOyTNL9jSZwUFzvgRoUjctHJsD0U+zhAHdQn1U9N1DzBA==","signatures":[{"sig":"MEQCICyXAShFVJgUbN9bkDMguY1lCcC/s6fcaxc3iq1vpG0OAiBnXCOll6ZUPcdt+K2ZGZMglDT6rTxdKoKUJ/3mHcqfMQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIBTfx0whFOPfJrpAif8YAR5TjUW32unkIH+gT3b5jjjeAiAnBL1zxUT7gf30PJYlA+2mIt2gYkrTlqOKxT5E2eqlMQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/pi-herdr-agents@2.0.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":796524},"type":"module","gitHead":"838bef0bec83e11af26874b9c3e1724aaeee4c12","scripts":{"lint":"oxlint pi-extension test skills/orchestrate/adversarial-review-example.js","test":"node --experimental-strip-types --test test/test.ts test/worktree-cleanup.test.ts test/launch.test.ts test/runtime-routing.test.ts test/release-workflow.test.ts test/package-skill.test.js test/evals/*.test.mjs","format":"biome format --write pi-extension test skills/orchestrate/adversarial-review-example.js","version":"auto-changelog --package && git add CHANGELOG.md","changelog":"auto-changelog","format:check":"biome format pi-extension test skills/orchestrate/adversarial-review-example.js","test:integration":"node --experimental-strip-types --test --test-concurrency=1 test/integration/*.test.ts","test:integration:live":"PI_TEST_LIVE=1 node --experimental-strip-types --test --test-concurrency=1 test/integration/*.test.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:967eca68-051e-4a74-a82d-be7eb0d76932"}},"repository":{"url":"git+https://github.com/giuseppecrj/pi-herdr-agents.git","type":"git"},"_npmVersion":"11.16.0","description":"Asynchronous Pi subagents in Herdr, with optional isolated Git worktrees","directories":{},"_nodeVersion":"26.3.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"auto-changelog":{"template":"keepachangelog","unreleased":true,"commitLimit":false},"devDependencies":{"oxlint":"^1.80.0","@biomejs/biome":"2.5.11","auto-changelog":"^2.6.0","@oxlint/plugins":"^1.80.0","@sinclair/typebox":"^0.34.52","@earendil-works/pi-ai":"^0.84.0","@earendil-works/pi-tui":"^0.84.0","@earendil-works/pi-coding-agent":"^0.84.0"},"peerDependencies":{"@sinclair/typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-herdr-agents_2.0.1_1789705249381_0.06704693350539692","host":"s3://npm-registry-packages-npm-production"}},"2.0.2":{"name":"pi-herdr-agents","version":"2.0.2","keywords":["pi-package","pi","herdr","subagents","agents","worktrees","orchestration"],"author":{"url":"https://github.com/giuseppecrj","name":"Giuseppe Rodriguez"},"license":"MIT","_id":"pi-herdr-agents@2.0.2","maintainers":[{"name":"giuseppecrj","email":"giuseppecrj@gmail.com"}],"homepage":"https://github.com/giuseppecrj/pi-herdr-agents#readme","bugs":{"url":"https://github.com/giuseppecrj/pi-herdr-agents/issues"},"pi":{"image":"https://raw.githubusercontent.com/giuseppecrj/pi-herdr-agents/main/docs/assets/pi-herdr-agents-gallery.png","skills":["./skills"],"extensions":["./pi-extension/subagents/index.ts"]},"dist":{"shasum":"213ad7e6674bf1a5de70d1da0af99cf4b2410bfd","tarball":"https://registry.npmjs.org/pi-herdr-agents/-/pi-herdr-agents-2.0.2.tgz","fileCount":63,"integrity":"sha512-R0TIJOQioT1M8UZS+5/hgU/8afQryMj9XajpZUBbmtJa/JLvZiFnWRFTzqSwHGan5DXblk+7oYUefU5fRzrrOg==","signatures":[{"sig":"MEQCIH5CG33RhXKBSzeWpn4I/HTVSzEmGhOHs8Q51gidwjEVAiBKhewvgqC6qJlpmpnEMoLdKpJGO0fZJj5sXr8ljjIALA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIH36P9OKz4HJPg27kKtrdSC8f8umnP532ZUX/d/RRXWfAiEAnexXY3ac+bfS7iQ2XkmVDSYqTx/UqFYbJG4FSJlBaOU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/pi-herdr-agents@2.0.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":800197},"type":"module","gitHead":"49efa52bf671fbef00ad1be2d8b679188c5d1de3","scripts":{"lint":"oxlint pi-extension test skills/orchestrate/adversarial-review-example.js","test":"node --experimental-strip-types --test test/test.ts test/worktree-cleanup.test.ts test/launch.test.ts test/runtime-routing.test.ts test/release-workflow.test.ts test/package-skill.test.js test/evals/*.test.mjs","format":"biome format --write pi-extension test skills/orchestrate/adversarial-review-example.js","version":"auto-changelog --package && git add CHANGELOG.md","changelog":"auto-changelog","format:check":"biome format pi-extension test skills/orchestrate/adversarial-review-example.js","test:integration":"node --experimental-strip-types --test --test-concurrency=1 test/integration/*.test.ts","test:integration:live":"PI_TEST_LIVE=1 node --experimental-strip-types --test --test-concurrency=1 test/integration/*.test.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:967eca68-051e-4a74-a82d-be7eb0d76932"}},"repository":{"url":"git+https://github.com/giuseppecrj/pi-herdr-agents.git","type":"git"},"_npmVersion":"11.16.0","description":"Asynchronous Pi subagents in Herdr, with optional isolated Git worktrees","directories":{},"_nodeVersion":"26.3.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"auto-changelog":{"template":"keepachangelog","unreleased":true,"commitLimit":false},"devDependencies":{"oxlint":"^1.80.0","@biomejs/biome":"2.5.11","auto-changelog":"^2.6.0","@oxlint/plugins":"^1.80.0","@sinclair/typebox":"^0.34.52","@earendil-works/pi-ai":"^0.84.0","@earendil-works/pi-tui":"^0.84.0","@earendil-works/pi-coding-agent":"^0.84.0"},"peerDependencies":{"@sinclair/typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-herdr-agents_2.0.2_1789779340426_0.8736249738932305","host":"s3://npm-registry-packages-npm-production"}},"2.0.3":{"name":"pi-herdr-agents","version":"2.0.3","keywords":["pi-package","pi","herdr","subagents","agents","worktrees","orchestration"],"author":{"url":"https://github.com/giuseppecrj","name":"Giuseppe Rodriguez"},"license":"MIT","_id":"pi-herdr-agents@2.0.3","maintainers":[{"name":"giuseppecrj","email":"giuseppecrj@gmail.com"}],"homepage":"https://github.com/giuseppecrj/pi-herdr-agents#readme","bugs":{"url":"https://github.com/giuseppecrj/pi-herdr-agents/issues"},"pi":{"image":"https://raw.githubusercontent.com/giuseppecrj/pi-herdr-agents/main/docs/assets/pi-herdr-agents-gallery.png","skills":["./skills"],"extensions":["./pi-extension/subagents/index.ts"]},"dist":{"shasum":"f620490077f225d8d23ce4a51151d18f9cb2900a","tarball":"https://registry.npmjs.org/pi-herdr-agents/-/pi-herdr-agents-2.0.3.tgz","fileCount":63,"integrity":"sha512-U6Xia/wYY+xmoZskCFyOYrBqu36lPENVULG9RFNnkfwo81BrblAWcEEX1aBU376ttd/7yZcL6rnUXNApnmTs7A==","signatures":[{"sig":"MEQCICkukHg/6SzfWLYfJwIYZjlxiOzduGjzNIiOpoG7lDnEAiAKrJBHlYPZ3rM3pSSggS4TSwkYngZc3zTt4ajcWAmsFQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIFUuh2+/t8WmCtnqbqqKGltAYLnCOw6LVcVbddUXM3GuAiEA+oCIGReYBhJidkiNIUr4xMf7shlXJLpyTsTuRVuehmo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/pi-herdr-agents@2.0.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":800983},"type":"module","gitHead":"60888f2dea48317257909abbcd0dd374ed861d77","scripts":{"lint":"oxlint pi-extension test skills/orchestrate/adversarial-review-example.js","test":"node --experimental-strip-types --test test/test.ts test/worktree-cleanup.test.ts test/launch.test.ts test/runtime-routing.test.ts test/release-workflow.test.ts test/package-skill.test.js test/evals/*.test.mjs","format":"biome format --write pi-extension test skills/orchestrate/adversarial-review-example.js","version":"auto-changelog --package && git add CHANGELOG.md","changelog":"auto-changelog","format:check":"biome format pi-extension test skills/orchestrate/adversarial-review-example.js","test:integration":"node --experimental-strip-types --test --test-concurrency=1 test/integration/*.test.ts","test:integration:live":"PI_TEST_LIVE=1 node --experimental-strip-types --test --test-concurrency=1 test/integration/*.test.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:967eca68-051e-4a74-a82d-be7eb0d76932"}},"repository":{"url":"git+https://github.com/giuseppecrj/pi-herdr-agents.git","type":"git"},"_npmVersion":"11.16.0","description":"Asynchronous Pi subagents in Herdr, with optional isolated Git worktrees","directories":{},"_nodeVersion":"26.3.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"auto-changelog":{"template":"keepachangelog","unreleased":true,"commitLimit":false},"devDependencies":{"oxlint":"^1.80.0","@biomejs/biome":"2.5.11","auto-changelog":"^2.6.0","@oxlint/plugins":"^1.80.0","@sinclair/typebox":"^0.34.52","@earendil-works/pi-ai":"^0.84.0","@earendil-works/pi-tui":"^0.84.0","@earendil-works/pi-coding-agent":"^0.84.0"},"peerDependencies":{"@sinclair/typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-herdr-agents_2.0.3_1790009964934_0.8838595214249592","host":"s3://npm-registry-packages-npm-production"}},"2.0.4":{"name":"pi-herdr-agents","version":"2.0.4","keywords":["pi-package","pi","herdr","subagents","agents","worktrees","orchestration"],"author":{"url":"https://github.com/giuseppecrj","name":"Giuseppe Rodriguez"},"license":"MIT","_id":"pi-herdr-agents@2.0.4","maintainers":[{"name":"giuseppecrj","email":"giuseppecrj@gmail.com"}],"homepage":"https://github.com/giuseppecrj/pi-herdr-agents#readme","bugs":{"url":"https://github.com/giuseppecrj/pi-herdr-agents/issues"},"pi":{"image":"https://raw.githubusercontent.com/giuseppecrj/pi-herdr-agents/main/docs/assets/pi-herdr-agents-gallery.png","skills":["./skills"],"extensions":["./pi-extension/subagents/index.ts"]},"dist":{"shasum":"05360cd7bbe79452a8f0f323cb74274f56736760","tarball":"https://registry.npmjs.org/pi-herdr-agents/-/pi-herdr-agents-2.0.4.tgz","fileCount":63,"integrity":"sha512-wermdJcuebH4yfGSa4l1+7HUO0aOwQ7HC2TdbiPGuR4tCvmKPqUJUhifsKPOHY8D+Qqwgh2DLZWlpAqGJzHB3Q==","signatures":[{"sig":"MEQCIE37dY6h7wH7do5xnsIZwqKTdALnxfXR38W41v7+tSBZAiBUP4eAGbVxjjLuGb+aLkiaOnihl5J0TNC2+/sMtOa4Nw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIDPNyIeuTMILjGy30AglC4+t8XgPwF4G0KgMKOE5jev5AiBoJehz3g/NTREDAkkiTFeVPD9g4NYg/9yCznfIies2Ww==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/pi-herdr-agents@2.0.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":801887},"type":"module","gitHead":"4cacc1a65c3cb8627f05264b61684a8089cb7512","scripts":{"lint":"oxlint pi-extension test skills/orchestrate/adversarial-review-example.js","test":"node --experimental-strip-types --test test/test.ts test/worktree-cleanup.test.ts test/launch.test.ts test/runtime-routing.test.ts test/release-workflow.test.ts test/package-skill.test.js test/evals/*.test.mjs","format":"biome format --write pi-extension test skills/orchestrate/adversarial-review-example.js","version":"auto-changelog --package && git add CHANGELOG.md","changelog":"auto-changelog","format:check":"biome format pi-extension test skills/orchestrate/adversarial-review-example.js","test:integration":"node --experimental-strip-types --test --test-concurrency=1 test/integration/*.test.ts","test:integration:live":"PI_TEST_LIVE=1 node --experimental-strip-types --test --test-concurrency=1 test/integration/*.test.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:967eca68-051e-4a74-a82d-be7eb0d76932"}},"repository":{"url":"git+https://github.com/giuseppecrj/pi-herdr-agents.git","type":"git"},"_npmVersion":"11.16.0","description":"Asynchronous Pi subagents in Herdr, with optional isolated Git worktrees","directories":{},"_nodeVersion":"26.3.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"auto-changelog":{"template":"keepachangelog","unreleased":true,"commitLimit":false},"devDependencies":{"oxlint":"^1.80.0","@biomejs/biome":"2.5.11","auto-changelog":"^2.6.0","@oxlint/plugins":"^1.80.0","@sinclair/typebox":"^0.34.52","@earendil-works/pi-ai":"^0.84.0","@earendil-works/pi-tui":"^0.84.0","@earendil-works/pi-coding-agent":"^0.84.0"},"peerDependencies":{"@sinclair/typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-herdr-agents_2.0.4_1790111747680_0.23636750961639308","host":"s3://npm-registry-packages-npm-production"}},"2.0.5":{"pi":{"image":"https://raw.githubusercontent.com/giuseppecrj/pi-herdr-agents/main/docs/assets/pi-herdr-agents-gallery.png","skills":["./skills"],"extensions":["./pi-extension/subagents/index.ts"]},"_id":"pi-herdr-agents@2.0.5","bugs":{"url":"https://github.com/giuseppecrj/pi-herdr-agents/issues"},"dist":{"shasum":"1b7e3b2c9c6703dbff3e0185b4a3d1b61ae62454","tarball":"https://registry.npmjs.org/pi-herdr-agents/-/pi-herdr-agents-2.0.5.tgz","fileCount":63,"integrity":"sha512-kGqfljjfTtAkfuore1Z939i7s6aadI+0EtY7azT3qWC27La3uZwXQ8Bh6pzUL57TRm06lfWQ6Y8kqC1rBShmuw==","signatures":[{"sig":"MEUCIQDFk+0zp5eum4GFLWIOV1BnIfWKn/IbMt8HfVOK8iTKEAIgE7J5z20lGuANPnwKcG9VvKt0HcJrVMUFskFXTXD04Fs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIDC4Tr3JBxJv++115Lx3Q1X7sz4ROgVZsb1CpTVfk4fNAiEA1Zu+lblBtKaVRJSW3PZyfKQqPCGq7JmXKz95EArZewY="}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/pi-herdr-agents@2.0.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":807538},"name":"pi-herdr-agents","type":"module","author":{"url":"https://github.com/giuseppecrj","name":"Giuseppe Rodriguez"},"gitHead":"ada60185600383a207bb2a24e43d9b66b9ed8288","license":"MIT","scripts":{"lint":"oxlint pi-extension test skills/orchestrate/adversarial-review-example.js","test":"node --experimental-strip-types --test test/test.ts test/worktree-cleanup.test.ts test/launch.test.ts test/runtime-routing.test.ts test/release-workflow.test.ts test/package-skill.test.js test/evals/*.test.mjs","format":"biome format --write pi-extension test skills/orchestrate/adversarial-review-example.js","version":"auto-changelog --package && git add CHANGELOG.md","changelog":"auto-changelog","format:check":"biome format pi-extension test skills/orchestrate/adversarial-review-example.js","test:integration":"node --experimental-strip-types --test --test-concurrency=1 test/integration/*.test.ts","test:integration:live":"PI_TEST_LIVE=1 node --experimental-strip-types --test --test-concurrency=1 test/integration/*.test.ts"},"version":"2.0.5","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"967eca68-051e-4a74-a82d-be7eb0d76932"}},"homepage":"https://github.com/giuseppecrj/pi-herdr-agents#readme","keywords":["pi-package","pi","herdr","subagents","agents","worktrees","orchestration"],"repository":{"url":"git+https://github.com/giuseppecrj/pi-herdr-agents.git","type":"git"},"_npmVersion":"11.16.0","description":"Asynchronous Pi subagents in Herdr, with optional isolated Git worktrees","directories":{},"maintainers":[{"name":"giuseppecrj","email":"giuseppecrj@gmail.com"}],"_nodeVersion":"26.3.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"auto-changelog":{"template":"keepachangelog","unreleased":true,"commitLimit":false},"devDependencies":{"oxlint":"^1.80.0","@biomejs/biome":"2.5.11","auto-changelog":"^2.6.0","@oxlint/plugins":"^1.80.0","@sinclair/typebox":"^0.34.52","@earendil-works/pi-ai":"^0.84.0","@earendil-works/pi-tui":"^0.84.0","@earendil-works/pi-coding-agent":"^0.84.0"},"peerDependencies":{"@sinclair/typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/pi-herdr-agents_2.0.5_1790633292870_0.6639645532043406"}}},"time":{"created":"2026-08-05T16:31:31.361Z","modified":"2026-09-28T22:08:13.307Z","0.0.1":"2026-08-05T16:31:31.803Z","0.0.2":"2026-08-05T16:49:00.797Z","0.0.3":"2026-08-05T20:41:58.954Z","0.0.4":"2026-08-05T21:26:57.452Z","0.1.0":"2026-08-05T22:58:55.513Z","0.1.1":"2026-08-07T00:23:16.021Z","0.1.2":"2026-08-07T00:34:48.082Z","0.1.3":"2026-08-07T20:15:38.893Z","0.1.4":"2026-08-10T16:12:16.597Z","1.0.0":"2026-08-11T03:53:43.410Z","1.1.0":"2026-08-11T20:54:02.783Z","1.2.0":"2026-08-13T03:34:27.325Z","1.2.1":"2026-08-13T03:56:10.595Z","1.2.2":"2026-08-18T03:50:05.753Z","1.2.3":"2026-08-18T14:05:15.618Z","1.3.0":"2026-08-18T21:06:40.438Z","1.3.1":"2026-08-29T05:06:54.276Z","1.4.0":"2026-08-31T13:09:33.612Z","1.4.1":"2026-08-31T13:38:00.013Z","1.4.2":"2026-08-31T16:25:54.414Z","1.5.0":"2026-09-05T03:09:23.014Z","1.5.1":"2026-09-05T20:45:49.081Z","1.6.0":"2026-09-08T15:31:23.652Z","1.7.0":"2026-09-09T02:52:35.249Z","2.0.0":"2026-09-18T01:07:02.271Z","2.0.1":"2026-09-18T04:20:49.567Z","2.0.2":"2026-09-19T00:55:40.545Z","2.0.3":"2026-09-21T16:59:25.042Z","2.0.4":"2026-09-22T21:15:47.784Z","2.0.5":"2026-09-28T22:08:12.996Z"},"bugs":{"url":"https://github.com/giuseppecrj/pi-herdr-agents/issues"},"author":{"url":"https://github.com/giuseppecrj","name":"Giuseppe Rodriguez"},"license":"MIT","homepage":"https://github.com/giuseppecrj/pi-herdr-agents#readme","keywords":["pi-package","pi","herdr","subagents","agents","worktrees","orchestration"],"repository":{"url":"git+https://github.com/giuseppecrj/pi-herdr-agents.git","type":"git"},"description":"Asynchronous Pi subagents in Herdr, with optional isolated Git worktrees","maintainers":[{"name":"giuseppecrj","email":"giuseppecrj@gmail.com"}],"readme":"# Pi Herdr Agents\n\n![Pi Herdr Agents: parallel Pi agents running asynchronously in dedicated Herdr panes and managed worktrees.](https://raw.githubusercontent.com/giuseppecrj/pi-herdr-agents/main/docs/assets/pi-herdr-agents-gallery.png)\n\nAsynchronous subagents for [Pi](https://github.com/earendil-works/pi), running exclusively in [Herdr](https://herdr.dev).\n\nDelegate investigation, implementation, and review without blocking the parent session. Each child runs as a real Pi process in its own Herdr surface; results return automatically when the child finishes.\n\n## Features\n\n- **Non-blocking delegation** — `subagent` acknowledges launch immediately while the parent keeps working.\n- **Parallel execution** — run independent scouts, workers, and reviewers at the same time.\n- **Live supervision** — track process and turn state in Pi's subagent widget; interrupt one child turn without destroying its session.\n- **Managed worktrees** — isolate writing agents in retained Herdr workspaces with explicit Git ownership and recovery details.\n- **Conversation handoff** — continue the active Pi conversation in a new worktree with `/worktree` while preserving the parent session.\n- **Orchestrated reviews** — fan out fresh public reviewers and synthesize their evidence in the parent.\n- **Reusable roles** — use bundled agents, project or global definitions, and installable role packs.\n- **Persistent specialists** — retain one policy-bound Pi session for sequential, turn-based tasks.\n\n## Requirements\n\n- [Pi](https://github.com/earendil-works/pi) with package support\n- [Herdr](https://herdr.dev) and its CLI\n- `HERDR_ENV=1` — start Pi from inside Herdr\n\nOther terminal multiplexers are not supported. Session startup skips worktree inventory to avoid blocking Pi initialization; use `/worktree list` or `worktree_list` to inspect managed worktrees. Outside Herdr, explicit inventory tools still report unavailable inspection as unknown. Worktrees isolate Git checkouts, not processes or permissions; child agents and installed Pi packages run with your user account's access.\n\n## Install\n\nInstall from npm:\n\n```bash\npi install npm:pi-herdr-agents\n```\n\nInstall project-locally or try it for one run:\n\n```bash\npi install -l npm:pi-herdr-agents\npi -e npm:pi-herdr-agents\n```\n\nThen start Pi inside Herdr:\n\n```bash\nherdr\npi\n```\n\nRestart or `/reload` Pi after installation. Review package source before installing any Pi package.\n\n## Quick start\n\nAsk Pi to delegate naturally:\n\n```text\nUse two scouts in parallel to map the authentication flow, then summarize their findings.\n```\n\nOr launch a named role directly:\n\n```text\n/subagent scout Analyze the authentication module and report relevant files and risks\n```\n\nFor an isolated writing task:\n\n```text\n/worktree auth-fix Implement the approved authentication fix and run the focused tests\n```\n\nPi can also call the tool directly:\n\n```typescript\nsubagent({ name: \"Auth scout\", agent: \"scout\", model: \"<provider>/<fast-tier-id>\", thinking: \"low\", task: \"Map the authentication flow\" });\nsubagent({ name: \"DB scout\", agent: \"scout\", model: \"<provider>/<fast-tier-id>\", thinking: \"low\", task: \"Map the session schema\" });\n// Both return immediately; each result comes back independently.\n```\n\nUse ordinary panes for read-only agents. A single or sequential writer can work in the parent checkout; give each parallel independent writing agent a unique managed worktree. The parent acts as coordinator: decompose work, give each child one bounded outcome with its goal, allowed files, verification, and commit instruction, and keep dependent writes sequential. Children are leaves by default; the parent owns integration and final verification. See [Worktree subagents](docs/worktree-subagents.md).\n\n## How it works\n\n![Pi Herdr Agents lifecycle: spawn a child, run it in Herdr, supervise live state, and deliver one bounded result to the parent.](https://raw.githubusercontent.com/giuseppecrj/pi-herdr-agents/main/docs/assets/async-subagent-lifecycle.png)\n\nA `subagent` call selects the target checkout, reuses its Herdr workspace, and gives the child a pane in an extension-owned `Agents` tab. Four panes fit in each tab by default; overflow opens another tab in the same workspace. A worktree is created only when explicitly requested for checkout isolation. The call launches a child Pi session and returns `started`. The parent watcher combines Herdr process state with child activity details and projects the result into a live widget:\n\n```text\n╭─ Subagents ──────────────────── 1 active · 1 open ─╮\n│ 00:23  Scout: Auth (scout)        active · read 7m │\n│ 00:45  Reviewer (reviewer)              waiting 2m │\n╰────────────────────────────────────────────────────╯\n```\n\nWhen the child completes, the parent receives one bounded `subagent_result` message and starts a new turn with that result in context. Disposable ordinary panes close after result delivery; Herdr removes a tab when its last pane closes. Persistent specialists keep their pane between tasks, and managed worktree roots return to retained interactive shells. Callers never need to poll, tail session files, or wait in a shell loop.\n\n## Troubleshooting completion delivery\n\nIf a child finishes but the parent returns an empty or unrelated response, first verify that the result reached the parent session:\n\n```bash\njq -c 'select(.type == \"custom_message\" and .customType == \"subagent_result\")' \"$PI_SESSION_FILE\" | tail -1\n```\n\nIf the entry exists, spawning and result extraction worked; investigate parent wake-up and model-facing delivery rather than the child process. Completion wake-ups must contain the bounded result directly—do not send a separate message that merely tells the parent to look at an adjacent custom message.\n\nGit package refs are pinned. To move an installed development copy back to the current `main`, install that ref explicitly and reload the active Pi session:\n\n```bash\npi install git:github.com/giuseppecrj/pi-herdr-agents@main\n# Then run /reload inside Pi.\n```\n\nSmoke-test delivery with an autonomous subagent instructed to return one exact marker. Success means the marker itself—not only a generic wake-up notice—automatically appears in the parent turn.\n\nSubagent tabs, panes, and worktree workspaces are created without stealing keyboard focus. Launch commands target child panes by explicit ID, so focus and command delivery are independent. If a fresh or resumed launch fails, the extension closes the ordinary pane that it created and preserves the original launch error. It does not close a caller-supplied surface, and managed worktree workspaces remain retained on failure. Note: the `interactive` option controls parent status notifications, not terminal focus.\n\n## What's Included\n\n### Extensions\n\n**Subagents** — 9 parent-session tools + 7 commands, plus 2 child-only tools:\n\n| Tool                 | Description                                                                                 |\n| -------------------- | ------------------------------------------------------------------------------------------- |\n| `subagent`           | Spawn a sub-agent in a dedicated herdr pane (async — returns immediately)             |\n| `subagent_interrupt` | Interrupt a running Pi-backed subagent's current turn                                       |\n| `subagent_send`      | Deliver a follow-up task to an idle persistent specialist                                   |\n| `subagent_stop`      | Gracefully stop a persistent specialist after its active task settles                      |\n| `subagents_list`     | List available agent definitions                                                            |\n| `worktree_list` | Parent-only inspect-only inventory of managed worktrees and cleanup blockers |\n| `worktree_remove` | Parent-only explicit removal by `target` path, branch, or workspace ID; optional `preserve: true` commits dirty state first |\n| `subagent_resume`    | Resume a previous Pi-backed sub-agent session in a new ordinary pane (async)                          |\n| `subagents_write_task_models` | Parent-only internal tool that validates and atomically writes `models.tasks` preferences |\n\n| Pi child-only tool | Description |\n| ---------------- | ------------------------------------------------------------------------- |\n| `caller_ping` | Ask the parent for help; ordinary children exit, persistent specialists stay alive |\n| `subagent_done` | Mark an interactive child complete and exit; autonomous agents auto-exit |\n\n| Command                    | Description                          |\n| -------------------------- | ------------------------------------ |\n| `/plan`                    | Start a full planning workflow       |\n| `/iterate`                 | Fork into a subagent for quick fixes |\n| `/btw <question>`          | Open an ephemeral side-question session in a background tab |\n| `/btw-close`               | Close the current BTW session        |\n| `/worktree <name> [task]`  | Continue this session in a new managed worktree (`/worktree list` lists them) |\n| `/subagent <agent> <task>` | Spawn a named agent directly (`/subagent list` lists available agents) |\n| `/subagents-init [preferences]` | Draft task-category model preferences from the live authenticated registry, with optional ranking preferences |\n\n### Taxonomy and discovery\n\nThis package distinguishes directly runnable **agent roles**, Pi-native\n**skills**, and authenticated Pi **runtimes**. A multi-stage user outcome may\nbe a command or skill that composes roles; it is not itself an agent role.\n\nThe current orchestration inventory is:\n\n| Surface | Entry point | Behavior |\n| --- | --- | --- |\n| Planning | `/plan` | Scout, interactive planner, workers, and reviewer; writes plan artifacts. |\n| Iteration | `/iterate` | Opens one interactive full-context Pi fork. |\n| Side question | `/btw`, `/btw-close` | Opens one replaceable interactive Pi side session. |\n| Worktree handoff | `/worktree <name> [task]`, `/worktree list` | Forks the active conversation into a managed worktree. |\n| Orchestrated review | `/skill:orchestrate` | Parent materializes evidence, fans out public reviewers, and synthesizes results. |\n| Adversarial review | `/skill:orchestrate`, `adversarial-reviewer` | Risk-based public discovery, cross-family verification, and parent synthesis. |\n\nSee [ADR-0002](docs/adr/0002-agent-workflow-skill-runtime-taxonomy.md) and\n[ADR-0009](docs/adr/0009-remove-workflow-subsystem.md).\n\n### Bundled visible definitions\n\n| Definition | Classification | Default runtime | Responsibility |\n| ---------- | -------------- | --------------- | -------------- |\n| **planner** | Coordinator agent role | Config, then parent | Clarifies requirements, explores approaches, and writes plans with ordered tasks. |\n| **scout** | Leaf agent role | Config, then parent | Maps relevant code, conventions, and verification paths. |\n| **worker** | Leaf agent role | Config, then parent | Implements bounded tasks and verifies the result. |\n| **reviewer** | Leaf agent role | Config, then parent | Reviews changes for correctness, security, and maintainability. |\n| **visual-tester** | Leaf agent role | Config, then parent | Performs visual QA through the `chrome-cdp` skill. |\n| **poteto** | Coordinator agent role | Config, then parent | Autonomously investigates, edits minimally, delegates independent work, and verifies. |\n| **adversarial-reviewer** | Coordinator role | Exact eligible authenticated Pi models selected by risk and project policy | Runs two routine or three high-risk discovery reviewers, candidate-dependent cross-family verification, and parent synthesis through public asynchronous children. |\n\nAll subagents execute through Pi. Claude models remain available through normal\nPi provider/model routing. Legacy role definitions that contain `cli` fail before\nHerdr creates a pane or worktree; remove `cli` and `cli-model`, then select an\nauthenticated Pi `provider/model-id`.\n\nOptional prerequisites fail closed and are not bundled:\n\n- `visual-tester` needs an external `chrome-cdp` skill that provides `scripts/cdp.mjs`.\n- Adversarial review needs a resolved standalone `reviewer` role, confirmed human-only authorship or known author model families, and enough distinct exact authenticated Pi models to satisfy project author-family exclusion and cross-family verification. Routine discovery uses two distinct IDs; concrete high-risk surfaces use three distinct lenses. The parent materializes pinned evidence before public fan-out. A project-approved reduced topology must disclose omitted coverage.\n- `/plan` uses the bundled scout and planner roles and records ordered tasks in\n  `plan.md`; it does not require a researcher role, todo tool, or `write-todos` skill.\n\nThis package does not install optional prerequisites.\n\nBundled agents use model defaults from `config.json` when configured; otherwise\nthey inherit the parent model. Thinking defaults still come from agent\nfrontmatter or the parent level. This resolution chain remains available as a\nfallback, but orchestrators should explicitly set each child's exact\nauthenticated `provider/model-id` and supported thinking level. Select the\nmodel tier first: fast for bounded mechanical work and recon, mid for ordinary\nimplementation or review, and frontier for architecture, security, hard\ndiagnosis, or adversarial review. Then select thinking within that model's\nsupported range. Cross-family independent review requires a reviewer from a\ndifferent model family than the author. For ordinary review, prefer a different\nauthenticated model family. When no other authenticated model family is\navailable, ordinary review may use a same-family reviewer in a fresh standalone\nsession. Disclose that this review is context-isolated, not cross-family\nindependent. Cross-family verification, `/skill:orchestrate`, and\n`adversarial-reviewer` must not use this fallback. A stronger model in the same\nfamily is a quality escalation, not cross-family\nindependent review. Family is the independence boundary; project policy may\nseparately require a different provider.\n\nDiscovery loads definitions in **package → global → project** order, so effective\npriority remains **project** (`.pi/agents/`) > **global**\n(`$PI_CODING_AGENT_DIR/agents/`, defaulting to `~/.pi/agent/agents/`) >\n**package**. Package definitions include bundled roles and roles contributed by\ninstalled Pi role packs. Both `subagents_list` and `/subagent list` show each\nvisible definition's source; contributed roles include their package identity,\nfor example `(package:@acme/security-roles)`. A hidden higher-priority definition\nstill suppresses a visible lower-priority definition.\n\nCustom roles and installable role packs are the package's main extension points.\nSee [Custom Agents](#custom-agents) for the complete create, package, verify, and\nlaunch workflow.\n\n---\n\n## Async Subagent Flow\n\n```\n1. Agent calls subagent()          → returns immediately (\"started\")\n2. Sub-agent runs in herdr pane    → widget shows live status\n3. User keeps chatting             → main session fully interactive\n4. Sub-agent finishes              → result steered back as a normal completion/failure\n5. Main agent processes result     → continues with new context\n```\n\nMultiple subagents run concurrently — each steers its result back independently as it finishes. Active watchers survive parent `/reload`, `/new`, `/resume`, and `/fork` transitions, so completion is delivered into the replacement session. Quitting Pi still stops parent-side delivery. The live widget above the input tracks every agent still in flight:\n\n```\n╭─ Subagents ──────────────────── 1 active · 2 open ─╮\n│ 01:23  Scout: Auth (scout)             active · read 7m │\n│ 00:45  Reviewer (reviewer)                   stalled 4m │\n│ 00:12  Scout: DB (scout)                      starting… │\n╰─────────────────────────────────────────────────────────╯\n```\n\nCompletion messages render with a colored background and are expandable with `Ctrl+O`. Results larger than 16,000 characters are abbreviated in the parent context while preserving their beginning, conclusion, and session path; the complete result remains in the child session. The extension includes that bounded result and a continuation instruction directly in the single custom `subagent_result` message that triggers or steers Pi, avoiding empty turns caused by a separate context-free wake-up. The renderer uses the unadorned bounded result from structured details. Completed rows are removed from the widget as soon as their result is delivered or suppressed.\n\n### In-progress status updates\n\nThe widget projects each sub-agent from a **process + turn lifecycle**:\n\n- **Herdr pane inspection** is the coarse authority for whether the child process is present and whether Herdr reports it as idle, working, blocked, or done.\n- **Child activity snapshots** enrich the label with Pi-only detail (tool name, streaming, etc.) when available.\n- Session JSONL is still used for transcript, resume, lineage, and result extraction — not for liveness.\n\nProjected labels include:\n\n- `starting` — launched; pane/activity confirmation is still settling\n- `active` — processing work (agent turn, provider request, streaming, or tool execution)\n- `blocked` — Herdr reports the child as blocked\n- `waiting` — turn finished; the process is intentionally open for more input or another stage\n- `interrupted` — the current turn was cancelled (Escape / `subagent_interrupt`); the process stays open and is **not** treated as active processing\n- `stalled` — pane inspection is unhealthy long enough that the parent can no longer trust the run\n- `running` — fallback when only coarse process presence is known (e.g. non-Pi backends)\n- `finalizing` — completion was observed and delivery is in progress; the process elapsed timer freezes here\n\nThe widget header counts **active** vs **open**:\n\n- **active** — `active`, `starting`, `running`, or `blocked`\n- **open** — everything else still tracked (`waiting`, `interrupted`, `stalled`, `finalizing`, …)\n\nWhen `activeCount === 0` (every tracked row is open), the border uses an amber accent. Process elapsed time (`MM:SS` on the left) freezes when the process reaches finalizing/completed/failed. Interrupt does **not** freeze that process clock; the interrupted state shows its own duration on the right while the process remains open.\n\nA fixed internal watchdog marks a run as `stalled` when pane inspection fails or the pane disappears without a completion sidecar; valid long-running `active` or `waiting` states do not become `stalled` just because time passes. When a run enters `stalled` or recovers from it, the parent agent receives a steer message so it can react. All other status transitions stay in the widget only.\n\n**Interactive subagents stay silent.** Long-running user-driven subagents (e.g. `planner`, or any `/iterate` fork) do not wake the parent session on `stalled`/`recovered` transitions — the user is working directly in the subagent's pane, and a steer message there would just burn an orchestrator turn on a no-op \"still waiting\" ping. The widget still updates normally, and activity snapshots are still recorded/classified regardless of the `interactive` setting. By default, agents with `auto-exit: true` are treated as autonomous and get stall pings; agents without it are treated as interactive and stay quiet. Override per-agent with `interactive: true|false` in frontmatter, or per-spawn with `interactive: true|false` on the tool call.\n\n#### Configuration\n\nThe durable user configuration is `$PI_CODING_AGENT_DIR/herdr-agents/config.json`,\ndefaulting to `~/.pi/agent/herdr-agents/config.json`. It is not read from the\ninstalled package root, so npm and git package upgrades do not overwrite it.\nCreate it by copying the installed package's `config.json.example`, or run\n`/subagents-init` to seed and draft model task preferences. This is a breaking\nmigration: manually move an existing package-local `config.json` to this path,\nor re-run `/subagents-init`.\n\n```json\n{\n  \"status\": {\n    \"enabled\": true\n  },\n  \"models\": {\n    \"agents\": {}\n  },\n  \"roles\": {\n    \"bundled\": true\n  },\n  \"persistent\": {\n    \"maxAgents\": 3\n  },\n  \"supervision\": {\n    \"forcePolling\": false,\n    \"hangWarningMinutes\": 15\n  },\n  \"panes\": {\n    \"mode\": \"grouped\",\n    \"direction\": \"right\",\n    \"maxPerTab\": 4\n  }\n}\n```\n\nIf `config.json` is absent, status, role, pane, and persistent-specialist settings fall back to `config.json.example`.\nModel routing does not read the example: no model overrides apply until a real\n`config.json` exists.\n\nThe copyable example is model-neutral, so it works without requiring credentials\nfor a specific provider. To configure models, replace the empty section with\nexact IDs from your authenticated model catalog:\n\n```json\n{\n  \"models\": {\n    \"default\": \"your-provider/your-default-model\",\n    \"agents\": {\n      \"scout\": \"your-provider/your-fast-model\",\n      \"reviewer\": \"your-provider/your-review-model\"\n    },\n    \"tasks\": {\n      \"coding\": [\"your-provider/your-coding-model\"],\n      \"review\": [\"your-provider/your-review-model\"],\n      \"recon\": [\"your-provider/your-fast-model\"],\n      \"qa\": [\"your-provider/your-qa-model\"],\n      \"architecture\": [\"your-provider/your-architecture-model\"],\n      \"docs\": [\"your-provider/your-docs-model\"]\n    },\n    \"tasksMeta\": {\n      \"generatedAt\": \"2026-09-17T00:00:00Z\",\n      \"method\": \"research\"\n    }\n  }\n}\n```\n\n`models.tasks` candidates are ordered exact authenticated IDs. Use\n`task:<category>` only in the `subagent` tool's `model` argument; it is not\nvalid in frontmatter or model defaults. Cross-family independent review requires\na reviewer from a different model family than the author. For ordinary review,\nprefer a different authenticated model family. When no other authenticated\nmodel family is available, ordinary review may use a same-family reviewer in a\nfresh standalone session. Disclose that this review is context-isolated, not\ncross-family independent. Cross-family verification, `/skill:orchestrate`, and\n`adversarial-reviewer` must not use this fallback. Use an exact authenticated\nshortlist `provider/model-id` when the\nauthoring family is known; `task:review` does not establish independence. Family\nis the independence boundary; project policy may separately require a different\nprovider. This is guidance, not extension enforcement.\n\nRun `/subagents-init [preferences]` to draft task-model preferences. For example:\n\n```text\n/subagents-init Prefer capability over price for implementation; keep recon inexpensive\n```\n\nThe command supplies a sanitized snapshot of **all available models from the\nactive session registry**, including extension-registered providers, exact IDs,\ndisplay names, reported base token costs, context/output limits, input\nmodalities, reasoning, and supported thinking levels. Safe extension-registration and auth-source\nmetadata is included when Pi exposes it; credentials, endpoints, and raw auth\nlabels are not. Configured authentication does not prove account access or a\nsuccessful request. Missing costs remain unknown; reported zero does not mean\nfree, and OAuth does not establish subscription billing. The brief uses compact\nJSON without truncating models and reports its model count and JSON character\ncount (not a token estimate); large catalogs still consume context. This is the\ncurrent synchronous snapshot: a dynamic provider whose initial catalog refresh\nhas not completed might be absent. Init does not refresh providers or probe the\nnetwork for availability.\n\nThe draft considers current saved task, default, and per-agent preferences.\nOptional command arguments set ranking preferences. Otherwise it favors\ncapability for substantive work and efficiency for bounded reconnaissance and\ntest execution. Categories describe work, not complexity tiers:\n\n| Category | Work |\n| --- | --- |\n| `coding` | Implementation workers |\n| `review` | Code reviewers |\n| `recon` | Reconnaissance scouts |\n| `qa` | Software and test runners |\n| `architecture` | Planning and diagnosis |\n| `docs` | Documentation workers |\n\nInit asks the agent to research major candidates across providers using primary\nsources, disclose uncertainty and notable exclusions, and avoid duplicate\nupstream models across routes unless deliberate redundancy is explained. Display\nnames help identify candidates but, like aliases, do not prove upstream\nequivalence; research is still required. Price or context size alone is not\nquality evidence. It reports `registry-only` when\nsearch is unavailable or yields no usable evidence; no live model probes run.\n\nThe writer validates and atomically replaces `models.tasks` and `tasksMeta`,\npreserving unrelated settings. Its tool schema accepts partial nonempty\ncategories (omitted categories are removed), rejects empty `tasks: {}` input,\nand rejects exact duplicate refs within a category after trimming;\nIDs remain case-sensitive. Its result includes normalized saved `tasks`,\n`tasksMeta`, `configPath`, and `missingCategories`. Init requests all six categories\nand a before/after table based on that saved result, not the unsaved draft. It\nmust explain missing categories or changed choices; with no available models,\nit must report the limitation without writing.\n\n`task:<category>` values select subagent models; they are not slash commands and\ndo not change the parent model. Ordered authenticated candidate plans resolve\nbefore launch. Ordinary nonpersistent runs can retry later candidates after\nlaunch failure or after a running child settles with a provider/agent error,\nnot after a completed negative task result. Persistent specialists do not\nadvance after a running-child error. This is not per-step routing; worktrees\nuse the first authenticated candidate only, without fallback retries.\nShortlists do not enforce reviewer independence. Cross-family independent\nreview requires a reviewer from a different model family than the author. For\nordinary review, prefer a different authenticated model family. When no other\nauthenticated model family is available, ordinary review may use a same-family\nreviewer in a fresh standalone session. Disclose that this review is\ncontext-isolated, not cross-family independent. Cross-family verification,\n`/skill:orchestrate`, and `adversarial-reviewer` must not use this fallback.\nAnother route to the same family is not\nindependent review. Family is the independence boundary; project policy may\nseparately require a different provider. Run `/reload` (or start a new session)\nafter writing preferences.\n\nSet `persistent.maxAgents` to the maximum concurrently retained persistent specialists. It defaults to `3`; a persistent spawn at the cap is rejected before Herdr creates a pane or workspace, and no specialist is evicted.\n\nSet `roles.bundled` to `false` to exclude this package's bundled role definitions from listing and exact-name launch. It defaults to `true`. Registered role packs remain available, and global and project definitions keep their existing precedence. A role-pack name collides with a bundled role only while that bundled layer is enabled; when it is disabled, the role pack can supply that name.\n\n### Supervision transport\n\nOn supported local filesystems, supervision uses file wake-ups plus one shared\n4.8-second pane reconciliation. A wake-up only prompts fresh evidence\ncollection; it never establishes a result by itself. If the watcher or shared\npane inspection becomes unavailable, supervision quietly returns to the legacy\none-second polling cadence. No caller action is required.\n\nSet `supervision.forcePolling` to `true` in the durable user `config.json` to\ndisable wake-ups and use that legacy cadence deliberately. The setting is read\nwhen the coordinator is created, so run `/reload` after changing it.\n`subagents_list` reports the active transport mode (`wake+batch`,\n`polling(forced)`, or `polling(fallback)`) and watcher count.\n\n`supervision.hangWarningMinutes` defaults to `15`; set it to `0` to disable\nno-progress advisories. For example, this keeps the default transport and sets\na 30-minute advisory budget:\n\n```json\n{\n  \"supervision\": {\n    \"forcePolling\": false,\n    \"hangWarningMinutes\": 30\n  }\n}\n```\n\nWhile a child projects active or blocked, the parent compares durable session\nJSONL and activity-snapshot updates against this budget. An advisory is warning-only, fires once per no-progress episode, and\nnever interrupts, kills, retries, or restarts a child. It identifies `blocked-tool` (an outstanding tool call may still complete),\n`truncated-turn` (an observed `toolUse` stop with no tool call; its cause is unknown), or\n`generic-no-progress` when neither condition is established, then\nincludes the session path and manual recovery options. Ordinary children can be\ninterrupted or, after manual termination, resumed or newly spawned. Persistent\nordinary-pane specialists can be interrupted or stopped with `subagent_stop` and\nreplaced; they cannot be resumed. Managed-worktree children, including persistent\nones, retain their workspace and continue there only after the previous process\nhas exited; do not use `subagent_resume` or start a concurrent writer. Interactive children stay\nquiet just as they do for stalled/recovered notices; their widget state still\nupdates. A later durable update clears the episode and sends the corresponding\nrecovered notice for non-interactive children.\n`polling(fallback)` means at least one tracked child is using per-child polling;\nother children can still use wake+batch.\n\nA Linux manual benchmark on 2026-09-06 used isolated Herdr panes held pending,\n20-second windows, and the extension's completion/supervision seams. At 10\nchildren across three rotated rounds, wake+batch averaged 2.20 CLI launches/s\nversus 14.20 for forced polling (84.5% fewer); mean evidence-to-resolver\nlatency was 3.2 ms versus 449.0 ms, and the largest reconciliation probe gap\nwas 4.82 s. The benchmark measures `/proc` CPU ticks for the supervisor and\nisolated Herdr tree, not parent-model latency; raw samples are written to\n`/tmp/issue29-bench/` by `test/bench/supervision-bench.mjs`.\n\n`panes.mode` defaults to `\"grouped\"` when omitted. Ordinary public `subagent` and `subagent_resume` launches, including bare forks and `/iterate`, fill extension-owned `Agents`, `Agents 2`, etc. tabs in the target checkout's existing workspace. `panes.maxPerTab` is a positive safe integer, defaults to `4`, and counts all live panes in each owned tab, including user-added panes and retained shells. Overlapping launches in one parent respect this cap. It is independent of `persistent.maxAgents`.\n\nCheckout matching uses Herdr's canonical `worktree.checkout_path` and includes descendant directories. Shell working directories do not establish workspace ownership. If no checkout matches (including non-Git directories), placement uses the caller's workspace; overflow never creates a workspace. A reviewer with `cwd` set to a managed checkout joins that workspace without creating another worktree. Resume placement uses the saved session's cwd.\n\nExplicit `panes.mode: \"tab\"` preserves one new tab per ordinary child in the caller's workspace. Explicit `\"split\"` preserves splits of the stable parent pane. `panes.direction` is `\"right\"` (default) or `\"down\"` and applies to grouped and legacy splits. `maxPerTab` does not affect these legacy modes. Managed worktrees retain their separate workspaces, while `/btw` keeps its existing tab behavior.\n\nOwnership is tracked by returned pane/tab/workspace IDs, never labels. Separate parent processes own separate groups; `/reload` preserves a parent's in-memory ownership, but a full restart does not adopt old tabs. Placement never moves existing panes or renames user tabs. Background launches preserve focus; Herdr may resize sibling panes when splitting or closing. User-added panes are never closed by automatic tab cleanup. An owned tab remains reusable while user panes remain, even after all child panes close.\n\nRun `/reload` after changing role, model, or pane settings.\n\n`models.default` sets the model for subagents that do not specify a model.\n`models.agents` sets per-agent defaults, keyed by the agent name passed to\n`subagent({ agent: ... })`. Explicit `model` tool arguments take precedence,\nfollowed by agent frontmatter, per-agent config, the global default, and finally\nthe parent model. Model values must be exact authenticated `provider/model-id`\nreferences. A value can contain an ordered comma-separated fallback list, for\nexample `provider/preferred, provider/fallback`. The tool argument also accepts\n`task:<category>` as its complete value (not in a list), for configured\n`coding`, `review`, `recon`, `qa`, `architecture`, or `docs` preferences. The extension validates every\ncandidate before launch, then launches later candidates only after the selected\nchild settles with a provider/agent error. Pi owns any automatic transient\nretrying inside that child; the extension does not infer retry counts or\npermanence from the error text. A completed child result, including a negative\ntask result, never switches models. Completion metadata reports the requested\ncandidate, every attempted candidate, the model actually used, and each raw\nmodel failure in attempt order when fallbacks are tried.\n\nA catalog-listed model and configured authentication do not prove that the\nactive provider account can use that model. Providers may reject an account /\nmodel combination only when the request is made. The completion preserves each\nraw provider reason with its model and suggests checking account access,\nspawning a new subagent with a supported model, or choosing an appropriate\nconfigured fallback. `subagent_resume` does not select a model and should be\nused only after the session's stored model is usable. Persistent session sidecars fail closed: v1 does not resume or revive a stopped or crashed specialist; retain its evidence and spawn a new specialist. The completion does not\nclaim a permanent failure or a retry count that Pi has not exposed. Reliable\nstructured permanence and retry counts require an upstream Pi/ExtensionAPI\ndiagnostics seam for final provider errors and retry outcomes.\n\n`config.json` is durable user state under the Pi agent directory and is loaded\nwhen the extension starts. Run `/reload` after changing it. Package-root\n`config.json` files are ignored; move them manually or re-run `/subagents-init`.\n\n---\n\n## Spawning Subagents\n\n```typescript\n// Explicit fast-tier runtime for bounded reconnaissance\nsubagent({ name: \"Scout\", agent: \"scout\", model: \"<provider>/<fast-tier-id>\", thinking: \"low\", task: \"Analyze the codebase...\" });\n\n// Force a full-context fork for this spawn\nsubagent({ name: \"Iterate\", fork: true, model: \"<provider>/<mid-tier-id>\", thinking: \"medium\", task: \"Fix the bug where...\" });\n\n// Explicit frontier-tier runtime for architecture work\nsubagent({ name: \"Planner\", agent: \"planner\", model: \"<provider>/<frontier-tier-id>\", thinking: \"high\", task: \"Work through the design with me\" });\n\n// Explicit mid-tier runtime with a custom working directory\nsubagent({ name: \"Designer\", agent: \"game-designer\", model: \"<provider>/<mid-tier-id>\", thinking: \"medium\", cwd: \"agents/game-designer\", task: \"...\" });\n\n// Isolated ticket branch in a Herdr-managed Git worktree\nsubagent({\n  name: \"Ticket 123\",\n  agent: \"worker\",\n  model: \"<provider>/<mid-tier-id>\",\n  thinking: \"medium\",\n  worktree: { branch: \"ticket/123\", base: \"main\" },\n  task: \"Implement ticket 123, test it, and commit the result\",\n});\n```\n\n### Parameters\n\n| Parameter              | Type    | Default        | Description                                                                                       |\n| ---------------------- | ------- | -------------- | ------------------------------------------------------------------------------------------------- |\n| `name`                 | string  | required       | Short stable child label; coordinated groups use `<task>-<role>[-n]` (widget and pane title)      |\n| `task`                 | string  | required       | Task prompt for the sub-agent                                                                     |\n| `agent`                | string  | —              | Load defaults from agent definition                                                               |\n| `fork`                 | boolean | —              | Override the child session mode: `true` forces fork, `false` forces standalone. Omit to inherit the agent `session-mode` frontmatter |\n| `persistent`           | boolean | `false`        | Keep one specialist session alive for sequential tasks; follow-ups use `subagent_send` only       |\n| `interactive`          | boolean | derived        | Mark this spawn as interactive (don't wake the parent on stall/recovery). Defaults to the agent's `interactive` frontmatter, otherwise the inverse of `auto-exit`. |\n| `model`                | string  | configured or parent | Exact authenticated `provider/model-id`, ordered fallback list, or whole-value `task:<category>` (coding, review, recon, qa, architecture, docs). Task routing is tool-only; worktrees use its first authenticated candidate. Resolution is tool argument → agent frontmatter → per-agent config → global config → parent |\n| `thinking`             | string  | parent level   | Pick the model tier first, then set thinking within that model's range: minimal/low for bounded mechanical work, medium for ordinary implementation or review, high+ for architecture, security, or hard diagnosis. Omitting still inherits the parent level; this is a discouraged fallback for orchestrated children. |\n| `systemPrompt`         | string  | —              | Role/system-prompt text for a bare spawn; named agents keep their definition body                  |\n| `skills`               | string  | —              | Comma-separated skill names                                                                       |\n| `tools`                | string  | —              | Comma-separated tool names                                                                        |\n| `cwd`                  | string  | —              | Working directory, or source repository when `worktree` is set (see [Role Folders](#role-folders)) |\n| `worktree`             | object \\| null | —          | Isolated Herdr-managed Git worktree; requires `branch`, with optional `base` (committed `HEAD` by default). Omit or pass `null` to use an ordinary pane in `cwd` when a client requires the property. |\n\n### Naming coordinated children\n\nBefore launching a new group, choose a short task slug and label each new child\n`<task>-<role>[-n]`, such as `login-api` or `login-test2`. Roles are `plan`,\n`research`, `ui`, `api`, `build`, `test`, `review`, `browser`, `security`,\n`perf`, and `merge`. Leave existing labels unchanged. After the final launch,\nprint `name | agent kind | role | model | worktree` and use each name in\nprompts, handoffs, and results.\n\n### Isolated worktree runs\n\nUse one worktree per parallel independent writing task; a single or sequential writer can work in the parent checkout, and read-only agents use ordinary panes. Omit `worktree` for an ordinary pane; clients whose generated tool schema requires every property may send `worktree: null` with the same effect. `cwd` selects the source Git repository, `branch` must be unique, and `base` is resolved to an exact commit before creation. If `cwd` is a linked checkout, Herdr provisioning uses the principal checkout while the requested checkout supplies the base SHA and manifest provenance. A successful launch from that linked checkout does not itself authorize cleanup there: cleanup checks the canonical principal/source repository under the invoking parent session's cwd, not `manifest.sourceCwd` or shared Git identity. If cleanup is needed, start the parent Pi session rooted at the principal checkout or an ancestor containing it, then use the normal explicit cleanup flow; changing directories inside an existing Pi session does not change its session cwd. If `base` is omitted, the source checkout's committed `HEAD` is used. Parent-checkout changes that have not been committed are not copied.\n\nA launch with `worktree` and an effective bundled `scout`, `reviewer`, or `adversarial-reviewer` returns a non-blocking warning. Scouts and reviewers normally need an ordinary pane; the adversarial reviewer is a coordinator that uses an ordinary pane for its child reviewers. To inspect or review an existing worker result, start an ordinary child in that retained worktree path. Project or global role overrides do not receive these bundled-role warnings. A `read,bash` allowlist is not an enforced read-only boundary because shell commands can mutate files; report-only roles must restrict Bash to safe inspection and avoid artifact-generating verification in the reviewed checkout.\n\nThe child starts at the returned worktree root. Tell writing agents to test and commit when you want a commit-based handoff, and tell them not to push, merge, switch branches, or remove the worktree. The parent owns review and integration.\n\nSuccessful, failed, and help-requesting worktree runs retain their workspace and root shell. A reviewer's disposable pane can close without closing that root, tab, or checkout. Completion includes the worktree path, Herdr workspace, branch, base/head SHAs, commits ahead, changed and untracked files, and clean/dirty/conflicted state. Here, `clean` means no uncommitted files; the branch may still contain commits. If Git inspection fails, state is reported as unknown rather than guessed.\n\nAn ownership manifest is written under the parent session's `artifacts/<session-id>/worktree-runs/` directory before Herdr creates resources. V1 does not automatically recover watchers after a full process restart, and `subagent_resume` does not reattach the managed worktree lifecycle.\n\nThe extension does **not** push, create a PR, merge, cherry-pick, or remove the worktree or branch automatically. For task selection, lifecycle states, review commands, failure recovery, and safe cleanup, read [Worktree subagents](docs/worktree-subagents.md). The [research report](docs/research/worktree-subagent-orchestration.md) records the rationale and deferred roadmap.\n\n---\n\n## Persistent specialists\n\nSet `persistent: true` on a `subagent` launch to create one logical specialist with one v1 session generation. Its resolved tools, denied tools, model, thinking level, and optional worktree binding are snapshotted at launch and do not change when work is sent later. `subagents_list` shows each live specialist's logical ID, generation ID, state, completed-task count, and effective policy.\n\nThe initial task and each `subagent_send({ id|name, message })` task are delivered exactly once with a task ID. A specialist accepts one task at a time. Sends while it is working are recorded as `rejected-busy`; no queue is retained. After a task result arrives, it is idle and accepts the next task. A persistent child's `caller_ping` records a help request but keeps the session alive; answer with `subagent_send`.\n\nUse `subagent_stop({ id|name })` to request graceful shutdown. If a task is active, stop becomes `stop-pending` and the task reaches its terminal outcome first. The parent reports `stopped` only after process-exit evidence is confirmed, then closes an ordinary pane it created and releases the name. If confirmation times out, the specialist is `stalled` in an unconfirmed-stop state: `subagent_send` rejects follow-up work while retaining evidence. Request `subagent_stop` again to make another bounded exit check, or spawn a new specialist. A pane or process disappearance without a stop directive produces one facts-only crash notice; persistent sessions cannot be resumed in v1, so spawn a new specialist. There is no automatic restart, replay, or revival.\n\nA persistent specialist with a worktree holds that lease for its entire lifetime. It cannot be re-bound to another checkout. Otherwise it runs in an ordinary pane.\n\n## Interrupting a running subagent\n\nUse `subagent_interrupt` to cancel the active turn of a running Pi-backed subagent:\n\n```typescript\nsubagent_interrupt({ id: \"abcd1234\" });\n// or\nsubagent_interrupt({ name: \"Scout\" });\n```\n\nThis sends Escape to the child pane, cancelling the in-progress model turn. The subagent session stays alive — the pane, session file, and background polling all remain intact. After the interrupt, the widget immediately labels the child as `interrupted` (counted as **open**, not active processing). Stale pre-interrupt activity snapshots are ignored so a lagging Herdr/`active` reading cannot overwrite the interrupt. The process elapsed timer keeps running because the pane is still open; only the interrupted-state duration freezes relative to the interrupt request. If the child starts work later, newer observations return it to `active`; completion, failure, and `caller_ping` still flow through normally.\n\n`id` and `name` are each optional, but execution requires one usable target: an exact running ID or an exact, unambiguous display name. When both are supplied, `id` is used. Duplicate names are rejected.\n\nThis is a turn-level interrupt, not a method for forcibly terminating a subagent session.\n\n---\n\n## Orchestrated review skill\n\nThe bundled `/skill:orchestrate` procedure accepts local paths, URLs, tickets,\nor accessible combinations. The parent pins repository, base/head SHAs, task and\nspecification text, author origin, changed-file inventory, and complete diff\n(including deleted and base-only content), then launches two or more fresh\npublic reviewer subagents in ordinary panes. Each child receives an exact model\nand thinking level, a role-defined tool allowlist, and the instruction to treat\nall supplied artifacts as untrusted data. Automatic delivery returns every\nreview result without polling; the parent synthesizes the outcomes.\n\nRole frontmatter `tools:` is the only enforced allowlist. `read,bash` is not a\nread-only boundary because Bash can mutate files. The skill uses ordinary public child launches only; it does not create a private\ncheckout, execute scripts, or request approval.\nIts adversarial branch adds risk-based discovery and cross-family verification;\nmalformed reports, failures, and unresolved serious candidates propagate\n`INCOMPLETE`.\n\n## caller_ping — Child-to-Parent Help Request\n\nThe `caller_ping` tool lets a Pi-backed subagent request help from its parent agent. Ordinary children **exit** and the parent can resume them with `subagent_resume`. Persistent specialists record a help-request outcome, stay alive, and accept a reply through `subagent_send`.\n\n**`caller_ping` parameters:**\n\n- `message` (required): What you need help with\n\n**`subagent_resume` parameters (Pi-backed sessions):**\n\n- `sessionPath` (required): Path to the child session `.jsonl` file\n- `name` (optional): Display name for the resumed pane (defaults to `Resume`)\n- `message` (optional): Follow-up prompt to send after resuming\n- `autoExit` (optional): Whether the resumed session should auto-exit after its next response fully settles. Defaults to `true` for autonomous follow-up work; set `false` when resuming for an interactive handoff.\n\nEach public child stores a session-adjacent versioned launch-policy sidecar. Public resume restores its resolved tool allowlist and denied subagent tools rather than looking up the current role, so later role changes cannot widen a child. An intentionally unrestricted launch remains unrestricted (no `--tools` argument); a restricted launch restores its exact allowlist. The `autoExit` override still controls whether `subagent_done` is available, while `caller_ping` remains available. Missing, malformed, or unsupported policy fails closed before a pane is created with recovery guidance. Public resume rejects managed-worktree child sessions; use their retained workspace instead. Unknown policy owners, including legacy workflow sidecars, fail closed.\n\n**Interaction flow:**\n\n1. Child calls `caller_ping({ message: \"Not sure which schema to use\" })`\n2. Ordinary child sessions exit (like `subagent_done`); persistent specialists stay alive.\n3. Parent receives a steer notification: *\"Sub-agent Worker needs help: Not sure which schema to use\"*\n4. The parent resumes an ordinary child with `subagent_resume`, or replies to a persistent specialist with `subagent_send`.\n5. The child picks up with the parent's guidance\n\n**Example:**\n\n```typescript\n// Inside a worker subagent\nawait caller_ping({\n  message: \"Found two conflicting migration files — should I use v1 or v2?\"\n});\n// Session exits here. Parent receives the ping, then resumes this session\n// with guidance like \"Use v2, v1 is deprecated\"\n```\n\n> **Note:** `caller_ping` is only available inside Pi-backed subagent contexts. Calling it from a standalone Pi session returns an error. For a worktree child, the help handoff retains the workspace, but `subagent_resume` does not reattach worktree tracking; continue the work in the retained workspace.\n\n---\n\n## The `/plan` Workflow\n\nThe `/plan` command orchestrates a full planning-to-implementation pipeline.\n\n```\n/plan Add a dark mode toggle to the settings page\n```\n\n```\nPhase 1: Investigation    → Autonomous scout maps the codebase\nPhase 2: Planning         → Interactive planner subagent (user collaborates)\nPhase 3: Review Plan      → Confirm ordered tasks, adjust if needed\nPhase 4: Execute          → Shared-checkout sequential workers by default; isolated parallel workers for independent tasks\nPhase 5: Integrate        → Parent reviews and integrates worktree branches one at a time, only when worktrees are used\nPhase 6: Review           → Reviewer subagent checks the integrated changes\n```\n\nThe parent workspace and tab names stay unchanged. Subagents use the configured placement policy; grouped mode reuses available space in owned Agents tabs.\n\n---\n\n## The `/iterate` Workflow\n\nFor quick, focused work without polluting the main session's context.\n\n```\n/iterate Fix the off-by-one error in the pagination logic\n```\n\nThis always forks the current session into a subagent with full conversation context. It does not inherit an agent default `session-mode`. Make the fix, verify it, and exit to return. The main session gets a summary of what was done.\n\n---\n\n## The `/btw` Workflow\n\nUse `/btw` for a quick side question without adding a turn to the main session:\n\n```text\n/btw What did we decide about session cleanup?\n```\n\nThe extension snapshots the current active conversation branch, opens a non-focused Herdr tab, and starts an interactive Pi session with the same model and thinking level. The answer stays in that tab and is never delivered as a subagent result. A second `/btw` replaces the previous one; `/btw-close` closes it explicitly.\n\nBTW shares the current working directory. It treats inherited work as reference context and modifies the workspace only when the side question explicitly requests it. Cleanup is best effort; if closing fails, the tab remains available for manual recovery.\n\n---\n\n## The `/worktree` Workflow\n\n`/worktree <worktree> [task]` creates a Herdr-managed worktree from the current committed branch and launches a new interactive Pi session there with the active conversation branch. The original session remains available. Use `/worktree list` or `worktree_list({})` to inspect managed worktrees, including cross-session orphans, whose canonical source repositories are inside the session's cwd subtree. This is a new-process handoff, not an in-place move of the existing shell or Pi process.\n\n---\n\n### Explicit worktree cleanup\n\nParent sessions can call `worktree_remove({ target: \"<path|branch|workspace-id>\", preserve: true })` or `/worktree remove <target> [--preserve]`. Preservation is optional and never implied: dirty work is blocked unless explicitly committed first or preserved as a WIP commit. The result reports its SHA even if removal later fails or is refused. A failed preservation commit restores the pre-preservation index and never proceeds to removal. Inventory and removal reports disclose exact ignored-file counts: enumeration is streamed rather than buffered as one listing. Ignored files do not block cleanup and are not captured by preservation; failed counting still blocks removal.\n\nEligibility is rechecked at removal time: canonical source-repository cwd containment, registered linked checkout, no detected process holder, known live child, or persistent lease, and clean Git state with no untracked files or conflicts. A successful launch from a linked checkout does not itself authorize its removal; cleanup uses the canonical principal/source repository under the invoking parent session's cwd, not `manifest.sourceCwd` or shared Git identity. Start the parent Pi session rooted at that principal checkout or an ancestor containing it, then use normal explicit cleanup; `cd` inside an existing Pi session does not change the session cwd. Unknown inspection, identity disagreements, detached HEAD, locked checkouts, and initialized submodules block removal. Out-of-scope repositories are never eligible. Open workspaces use Herdr removal; orphans use Git removal and registration pruning after checkout absence is verified. Owned reachable manifests are marked `removed`; manifests from other sessions are not required or rewritten. Stale removed manifests never govern a recreated checkout. Missing or dangling manifest paths do not affect unrelated checkouts; undecidable or conflicting manifest identity still blocks removal. A failed manifest update after removal is reported as a warning. Symlinked ancestors are supported; checkout symlinks escaping the canonical managed root are blocked. Process inspection covers observable same-user processes across sessions, regardless of runtime name, exempting only Herdr-confirmed idle retained shells, never runtimes at the same PID. Unreadable individual process details produce non-blocking warnings without an override flag; scanning continues so another observable holder still blocks removal. Human and structured inventory/removal results disclose incomplete coverage, including warnings seen before a later recheck or failure. Same-user inspection is permission-limited, and other-user processes are not inspected: a protected process could hold the checkout undetected. Warnings aggregate counts and bounded PID samples, not commands or environments. Linux uses `/proc`; macOS uses same-user `lsof` cwd records and warns for unreadable individual records. Unsupported platforms, failed global enumeration (including a failed `lsof` with partial output), and other unverifiable eligibility evidence still block removal. Cleanup Git and Herdr calls have 30-second timeouts.\n\nCleanup never deletes or rewrites branches, uses force flags, or runs automatically. Session startup does not scan worktree inventory, avoiding blocking Pi initialization; use `/worktree list` or `worktree_list` for an explicit inventory. Child sessions retain `/worktree list` and `/worktree <name>`, but receive neither cleanup tools nor the remove subcommand. Their repository-local listing labels detached entries `(detached HEAD)`; a detached sibling does not prevent inspection of named branches. See [cleanup and recovery](docs/worktree-subagents.md#cleanup) for details.\n\n## Custom Agents\n\nCustom agent roles are the package's primary extension mechanism. Create one\nwhen a child needs a reusable, bounded responsibility such as scouting,\nimplementation, or review. If the new concept instead describes a multi-stage\nuser outcome, make it a workflow, command, or Pi skill that composes roles; do\nnot disguise a workflow as an agent definition.\n\n### 1. Choose the scope\n\n| Scope | Location | Use when |\n| ----- | -------- | -------- |\n| Project | `.pi/agents/<name>.md` | The role belongs to one repository |\n| Global | `$PI_CODING_AGENT_DIR/agents/<name>.md` | The role should be available everywhere; the default root is `~/.pi/agent` |\n| Role pack | An installed Pi package's registered `roles/` directory | The role should be independently installable and shareable |\n| Bundled | This package's `agents/<name>.md` | Contributing a fallback role maintained with `pi-herdr-agents` |\n\nThe filename stem is the launch key. `name` frontmatter is optional because it\ndefaults to the filename stem. If supplied, keep it identical so overrides remain\npredictable; role packs reject mismatches.\n\n### 2. Create the definition\n\n```markdown\n---\ndescription: Reviews a bounded change for concrete security vulnerabilities\nthinking: high\ntools: read, bash\nsystem-prompt: append\nsession-mode: standalone\nspawning: false\nauto-exit: true\n---\n\n# Security Reviewer\n\nReview only the requested change. Trace trust boundaries and affected callers.\nReport concrete findings with file and line references, exploit conditions,\nseverity, and the smallest safe correction. Do not modify files.\n```\n\nOmit `model` to use `models.agents.<name>`, then `models.default`, then the\nparent model. Put `model` in frontmatter only when the role itself needs a\nspecific exact authenticated `provider/model-id`.\n\n`tools` is passed to Pi's `--tools` allowlist and may name any registered\nbuilt-in, extension, or custom tool. Listing a tool does not install its\nextension. Use one non-empty inline comma-separated scalar, such as\n`tools: read, grep`; do not use YAML lists, containers, quotes, or comments.\nOmitting `tools` intentionally leaves the role unrestricted. Likewise, `skills`\nnames must already be discoverable by Pi; this package does not install role\nprerequisites.\n\n### 3. Verify and launch\n\n```text\n/subagent list\n/subagent security-reviewer Review the authentication changes against main\n```\n\nOr call the tool directly:\n\n```typescript\nsubagent({\n  name: \"Security review\",\n  agent: \"security-reviewer\",\n  task: \"Review the authentication changes against main.\",\n});\n```\n\nAgent files are read when definitions are listed or launched, so creating or\nediting one normally does not require `/reload`. Installing, removing, updating,\nor changing the extension code of a role pack uses Pi's normal `/reload` flow.\n\n### Publish a role pack\n\nA role pack is an ordinary Pi package with Markdown definitions and a tiny\nextension that registers their directory through Pi's public inter-extension\nevent bus:\n\n```text\nsecurity-roles/\n├── package.json\n├── extension.ts\n└── roles/\n    └── security-reviewer.md\n```\n\n```json\n{\n  \"name\": \"@acme/security-roles\",\n  \"version\": \"1.0.0\",\n  \"keywords\": [\"pi-package\"],\n  \"type\": \"module\",\n  \"pi\": {\n    \"extensions\": [\"./extension.ts\"]\n  },\n  \"peerDependencies\": {\n    \"@earendil-works/pi-coding-agent\": \"*\"\n  }\n}\n```\n\n```typescript\nimport { fileURLToPath } from \"node:url\";\n\nconst roles = fileURLToPath(new URL(\"./roles\", import.meta.url));\n\nexport default (pi: any) => {\n  const unsubscribe = pi.events.on(\n    \"pi-herdr-subagents:roles:discover:v1\",  // stable protocol identifier\n    (request: { apiVersion: number; register(path: string): void }) => {\n      if (request.apiVersion === 1) request.register(roles);\n    },\n  );\n  pi.on(\"session_shutdown\", unsubscribe);\n};\n```\n\nInstall both packages through Pi; the role pack remains inert if\n`pi-herdr-agents` is absent:\n\n```bash\npi install npm:pi-herdr-agents\npi install npm:@acme/security-roles\n```\n\nRegistration is synchronous and accepts one absolute Markdown file or a\ndirectory whose direct `.md` children are roles. The bridge must unsubscribe on\n`session_shutdown` as shown so removed or updated packages do not survive a\nreload. A copyable package lives in [`examples/role-pack/`](examples/role-pack/).\nThe host reads and validates\nthe files, derives package name/version from the nearest `package.json`, and\nreports invalid paths, missing descriptions, filename/name mismatches, and\npackage-layer collisions in the listing surfaces.\n\nRole packs cannot replace an enabled bundled role, and duplicate role names\nfrom multiple role packs are disabled rather than resolved by extension load\norder. Use a global or project definition for an intentional override.\n\nSee [ADR-0003](docs/adr/0003-installable-role-packs.md) for the registration seam,\ncollision rules, and rejected alternatives.\n\n### Authoring checklist\n\n- The role has one bounded responsibility and a clear report or handoff contract.\n- The filename stem is the role name; if `name` is present, it matches the stem.\n- `description` states the role's input/output responsibility.\n- `tools` and `skills` contain only installed, necessary capabilities.\n- Leaf roles set `spawning: false`.\n- Autonomous roles set `auto-exit: true`; interactive roles leave it off.\n- Generic roles omit `model` unless a particular runtime is functionally required.\n- `/subagent list` shows the expected source and a smoke launch succeeds.\n\nCapability declarations are strict: use the unquoted, unindented keys\n`tools:`, `deny-tools:`, and `spawning:` exactly once when present. Declare\n`tools` and `deny-tools` as non-empty inline comma-separated scalars, and\n`spawning` as exactly `true` or `false`. YAML lists, containers, multiline\nvalues, quotes, comments, empty values, duplicates, noncanonical key spelling,\nand invalid booleans are rejected. A role with an invalid capability declaration\nis excluded from discovery, and an exact-name launch reports the diagnostic\nbefore creating a Herdr pane or worktree. Other unsupported or unknown\nfrontmatter may still be ignored.\nCompare definitions against the reference below and verify them with\n`/subagent list` plus a smoke launch.\n\n### Frontmatter Reference\n\n| Field         | Type    | Description                                                                                                                                                                                                                                                                 |\n| ------------- | ------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| `name`        | string  | Optional explicit agent name used in `agent: \"my-agent\"`; defaults to the filename stem and must match it in role packs                                                                                                                                                                                            |\n| `description` | string  | Shown in `subagents_list` output                                                                                                                                                                                                                                            |\n| `model`       | string  | Optional exact authenticated Pi model default or ordered comma-separated fallback list; omit to use per-agent config, global config, then the parent                                                                                                                       |\n| `thinking`    | string  | Optional Pi thinking default (`off` through `max`); omit to inherit the parent                                                                                                                                   |\n| `system-prompt` | string | `append` passes the agent body through Pi's appended system prompt; `replace` replaces Pi's default system prompt. Without this field, the body is included in the task wrapper                                                                                                                                                                                                                                 |\n| `tools`       | string  | One non-empty inline comma-separated Pi `--tools` allowlist under the exact unquoted key `tools:`; may contain any registered built-in, extension, or custom tool name. Omit to leave unrestricted. YAML lists, containers, multiline values, quotes, comments, noncanonical keys, and duplicates are rejected. |\n| `skills`      | string  | Comma-separated installed skill names to auto-load. Use this plural form for new definitions; legacy project/global definitions using singular `skill` remain compatible. |\n| `session-mode` | string | Default child-session mode: `standalone`, `lineage-only`, or `fork` |\n| `spawning`    | boolean | Set exactly `false` to deny all subagent-spawning tools under the exact unquoted key `spawning:`. Only one `true` or `false` declaration is accepted. |\n| `deny-tools`  | string  | One non-empty inline comma-separated `pi-herdr-agents` tool list to suppress under the exact unquoted key `deny-tools:`; this is not a universal cross-extension deny list. YAML lists, containers, multiline values, quotes, comments, noncanonical keys, and duplicates are rejected. |\n| `auto-exit`   | boolean | Auto-shutdown after Pi fully settles when the latest assistant turn does not end with `stopReason: \"aborted\"` — no `subagent_done` call needed. User input does not permanently disable auto-exit. Recommended for autonomous agents (scout, worker); not for interactive ones (planner). Also determines the default value of `interactive` (see below). |\n| `interactive` | boolean | Override whether stall/recovery transitions wake the parent session. Defaults to the inverse of `auto-exit`: autonomous agents (`auto-exit: true`) are non-interactive and get stall pings; agents without `auto-exit` are interactiv","readmeFilename":"README.md"}