{"_id":"@dogfood-lab/dogfood-swarm","_rev":"31-ad131b6fb451adabd60ede81a02cf457","name":"@dogfood-lab/dogfood-swarm","dist-tags":{"latest":"1.26.0"},"versions":{"1.2.1":{"name":"@dogfood-lab/dogfood-swarm","version":"1.2.1","keywords":["testing-os","dogfood-lab","swarm","agent-protocol","audit","recovery","rewind","redrive","revalidate"],"author":{"name":"mcp-tool-shop"},"license":"MIT","_id":"@dogfood-lab/dogfood-swarm@1.2.1","maintainers":[{"name":"mikefrilot","email":"mikeyfrilot@gmail.com"}],"homepage":"https://github.com/dogfood-lab/testing-os","bugs":{"url":"https://github.com/dogfood-lab/testing-os/issues"},"bin":{"swarm":"cli.js"},"dist":{"shasum":"9a6a25b1a9f2d30f55b311a636bfd387358f60f3","tarball":"https://registry.npmjs.org/@dogfood-lab/dogfood-swarm/-/dogfood-swarm-1.2.1.tgz","fileCount":49,"integrity":"sha512-Cm9EGc7lFTc0dDax0Ov94m8h0njQZjSn3BzbCWS8zrsy7ku7T8rydXP4gAFR6WxalpzQlxP72r1MuAi38rJGSQ==","signatures":[{"sig":"MEYCIQCJ8FMO0Zr4tHvO0Kn4jRb9NplPRG2PRkQSV5xy9L+2IQIhANP8efrd6MQiuGc2swBRqDGQWOdHL25iTEUr2NMFtxX1","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":474636},"main":"cli.js","type":"module","engines":{"node":">=20"},"exports":{".":"./cli.js","./lib/*":"./lib/*","./persist-results.js":"./persist-results.js"},"gitHead":"2c35e6605d3e1063f09bce73405a2209a2f3bc90","scripts":{"test":"node --test control-plane.test.js hardening.test.js verify.test.js verify-fixed.test.js verify-verb-family.test.js advance.test.js persist.test.js swarm.test.js dispatch-amend-filter.test.js dispatch-state-machine.test.js dispatch-prompt-schema.test.js self-inspection.test.js wave9-defensive-depth.test.js wave10-docs-identity-drift.test.js wave12-observability.test.js wave17-display-layer.test.js wave18-operator-ux.test.js wave23-findings-format.test.js wave28-cross-fix.test.js revalidate.test.js verification-discipline.test.js stage-c-truth-pins.test.js cli-smoke.test.js wave-state-machine.test.js wave-history-breadcrumb.test.js rewind.test.js redrive.test.js lib/verify-classifier-v2.test.js"},"_npmUser":{"name":"mikefrilot","email":"mikeyfrilot@gmail.com"},"repository":{"url":"git+https://github.com/dogfood-lab/testing-os.git","type":"git","directory":"packages/dogfood-swarm"},"_npmVersion":"10.9.4","description":"10-phase parallel-agent protocol runner for testing-os. SQLite-backed control plane, durable receipts, domain-aware orchestration. Three R's recovery contract: revalidate / rewind / redrive.","directories":{},"_nodeVersion":"22.21.1","dependencies":{"ajv":"^8.18.0","minimatch":"^10.0.0","ajv-formats":"^3.0.1","better-sqlite3":"^11.0.0","@dogfood-lab/report":"^1.2.0","@dogfood-lab/findings":"^1.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/dogfood-swarm_1.2.1_1778771753863_0.6002468467956259","host":"s3://npm-registry-packages-npm-production"}},"1.2.2":{"name":"@dogfood-lab/dogfood-swarm","version":"1.2.2","keywords":["testing-os","dogfood-lab","swarm","agent-protocol","audit","recovery","rewind","redrive","revalidate"],"author":{"name":"mcp-tool-shop"},"license":"MIT","_id":"@dogfood-lab/dogfood-swarm@1.2.2","maintainers":[{"name":"mikefrilot","email":"mikeyfrilot@gmail.com"}],"homepage":"https://github.com/dogfood-lab/testing-os","bugs":{"url":"https://github.com/dogfood-lab/testing-os/issues"},"bin":{"swarm":"cli.js"},"dist":{"shasum":"bb9a1801dec33d80a48e00c3f66e1c18e7ec12be","tarball":"https://registry.npmjs.org/@dogfood-lab/dogfood-swarm/-/dogfood-swarm-1.2.2.tgz","fileCount":49,"integrity":"sha512-hzHPt80aA8K7Aif5Z9N2dVslA/hvMsRjzeS0FoAPGYq/t9bdF0LYACYZVGPqM7dxpLWdBJDfpe7QG5qRv1RFdA==","signatures":[{"sig":"MEYCIQCgnc/n626wjyvc02LE9EtEFgC/1zqb0g6Gz4ocNj/FBwIhAKav0snUCX8oBo9AUoGdZ1LeqvAF1uwOIB71eZJSoOCV","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":474637},"main":"cli.js","type":"module","engines":{"node":">=20"},"exports":{".":"./cli.js","./lib/*":"./lib/*","./persist-results.js":"./persist-results.js"},"gitHead":"ddc414658152e9108aba3eba58a2f85ed1d529ac","scripts":{"test":"node --test control-plane.test.js hardening.test.js verify.test.js verify-fixed.test.js verify-verb-family.test.js advance.test.js persist.test.js swarm.test.js dispatch-amend-filter.test.js dispatch-state-machine.test.js dispatch-prompt-schema.test.js self-inspection.test.js wave9-defensive-depth.test.js wave10-docs-identity-drift.test.js wave12-observability.test.js wave17-display-layer.test.js wave18-operator-ux.test.js wave23-findings-format.test.js wave28-cross-fix.test.js revalidate.test.js verification-discipline.test.js stage-c-truth-pins.test.js cli-smoke.test.js wave-state-machine.test.js wave-history-breadcrumb.test.js rewind.test.js redrive.test.js lib/verify-classifier-v2.test.js"},"_npmUser":{"name":"mikefrilot","email":"mikeyfrilot@gmail.com"},"repository":{"url":"git+https://github.com/dogfood-lab/testing-os.git","type":"git","directory":"packages/dogfood-swarm"},"_npmVersion":"10.9.4","description":"10-phase parallel-agent protocol runner for testing-os. SQLite-backed control plane, durable receipts, domain-aware orchestration. Three R's recovery contract: revalidate / rewind / redrive.","directories":{},"_nodeVersion":"22.21.1","dependencies":{"ajv":"^8.18.0","minimatch":"^10.0.0","ajv-formats":"^3.0.1","better-sqlite3":"^12.10.0","@dogfood-lab/report":"^1.2.0","@dogfood-lab/findings":"^1.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/dogfood-swarm_1.2.2_1778779647138_0.426683073531978","host":"s3://npm-registry-packages-npm-production"}},"1.2.3":{"name":"@dogfood-lab/dogfood-swarm","version":"1.2.3","keywords":["testing-os","dogfood-lab","swarm","agent-protocol","audit","recovery","rewind","redrive","revalidate"],"author":{"name":"mcp-tool-shop"},"license":"MIT","_id":"@dogfood-lab/dogfood-swarm@1.2.3","maintainers":[{"name":"mikefrilot","email":"mikeyfrilot@gmail.com"}],"homepage":"https://github.com/dogfood-lab/testing-os","bugs":{"url":"https://github.com/dogfood-lab/testing-os/issues"},"bin":{"swarm":"cli.js"},"dist":{"shasum":"bd10df6221a8a719172b086b2ed434d34d652633","tarball":"https://registry.npmjs.org/@dogfood-lab/dogfood-swarm/-/dogfood-swarm-1.2.3.tgz","fileCount":49,"integrity":"sha512-NyqXaWf7lyE4ohftSzGoDkDKfOlr3uycrPL/yV1JeZM8LChJXAY8RCgA8QzWqBo/xQS93xH3DQeVN0dqz6MLcw==","signatures":[{"sig":"MEUCID6bIFvKl1ozw5coIRnv5qzIA+8R7v837FqQTxBc31U4AiEA9OXZmOGjqhrqscUevPbJEliOn9RbZVp4Mxvk75aCoZ4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dogfood-lab%2fdogfood-swarm@1.2.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":473087},"main":"cli.js","type":"module","engines":{"node":">=22"},"exports":{".":"./cli.js","./lib/*":"./lib/*","./persist-results.js":"./persist-results.js"},"gitHead":"b07f2e29cd0a289d10986961253190e00092ad35","scripts":{"test":"node --test control-plane.test.js hardening.test.js verify.test.js verify-fixed.test.js verify-verb-family.test.js advance.test.js persist.test.js swarm.test.js dispatch-amend-filter.test.js dispatch-state-machine.test.js dispatch-prompt-schema.test.js self-inspection.test.js wave9-defensive-depth.test.js wave10-docs-identity-drift.test.js wave12-observability.test.js wave17-display-layer.test.js wave18-operator-ux.test.js wave23-findings-format.test.js wave28-cross-fix.test.js revalidate.test.js verification-discipline.test.js stage-c-truth-pins.test.js cli-smoke.test.js wave-state-machine.test.js wave-history-breadcrumb.test.js rewind.test.js redrive.test.js lib/verify-classifier-v2.test.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4847da7f-112e-4b68-bb04-12ab0108da81"}},"repository":{"url":"git+https://github.com/dogfood-lab/testing-os.git","type":"git","directory":"packages/dogfood-swarm"},"_npmVersion":"11.15.0","description":"10-phase parallel-agent protocol runner for testing-os. SQLite-backed control plane, durable receipts, domain-aware orchestration. Three R's recovery contract: revalidate / rewind / redrive.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"ajv":"^8.18.0","minimatch":"^10.0.0","ajv-formats":"^3.0.1","better-sqlite3":"^12.10.0","@dogfood-lab/report":"^1.2.0","@dogfood-lab/findings":"^1.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/dogfood-swarm_1.2.3_1779334879529_0.6129935143687169","host":"s3://npm-registry-packages-npm-production"}},"1.3.0":{"name":"@dogfood-lab/dogfood-swarm","version":"1.3.0","keywords":["testing-os","dogfood-lab","swarm","agent-protocol","audit","recovery","rewind","redrive","revalidate"],"author":{"name":"mcp-tool-shop"},"license":"MIT","_id":"@dogfood-lab/dogfood-swarm@1.3.0","maintainers":[{"name":"mikefrilot","email":"mikeyfrilot@gmail.com"}],"homepage":"https://github.com/dogfood-lab/testing-os","bugs":{"url":"https://github.com/dogfood-lab/testing-os/issues"},"bin":{"swarm":"cli.js"},"dist":{"shasum":"b842dd397bb3da8b8232004ea111c58da11f46eb","tarball":"https://registry.npmjs.org/@dogfood-lab/dogfood-swarm/-/dogfood-swarm-1.3.0.tgz","fileCount":51,"integrity":"sha512-Egu+SVDKY65ohYSkanI9c39ycqlI9yYHXhCHYrDHjkFm26/09Q6pX9wLQmbqdfP3fGwHUZPD4NdIU+onfSBJnQ==","signatures":[{"sig":"MEUCIQDLnR3t5hvNkFroDIRNF/1AKcvOzKURU7Z7gNMnhaQTqgIgRE80FMBPL3BVL6sbaDOprkhhQYMeEV36Lu4i5gBXqQ0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dogfood-lab%2fdogfood-swarm@1.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":509699},"main":"cli.js","type":"module","engines":{"node":">=22"},"exports":{".":"./cli.js","./lib/*":"./lib/*","./persist-results.js":"./persist-results.js"},"gitHead":"4acb725cdc64e9bc0a2f5977ff80e10692514023","scripts":{"test":"node --test \"*.test.js\" \"lib/*.test.js\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4847da7f-112e-4b68-bb04-12ab0108da81"}},"repository":{"url":"git+https://github.com/dogfood-lab/testing-os.git","type":"git","directory":"packages/dogfood-swarm"},"_npmVersion":"11.16.0","description":"10-phase parallel-agent protocol runner for testing-os. SQLite-backed control plane, durable receipts, domain-aware orchestration. Three R's recovery contract: revalidate / rewind / redrive.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"ajv":"^8.18.0","minimatch":"^10.0.0","ajv-formats":"^3.0.1","better-sqlite3":"^12.10.0","@dogfood-lab/report":"^1.2.0","@dogfood-lab/findings":"^1.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/dogfood-swarm_1.3.0_1780292388141_0.020573375943327976","host":"s3://npm-registry-packages-npm-production"}},"1.3.1":{"name":"@dogfood-lab/dogfood-swarm","version":"1.3.1","keywords":["testing-os","dogfood-lab","swarm","agent-protocol","audit","recovery","rewind","redrive","revalidate"],"author":{"name":"mcp-tool-shop"},"license":"MIT","_id":"@dogfood-lab/dogfood-swarm@1.3.1","maintainers":[{"name":"mikefrilot","email":"mikeyfrilot@gmail.com"}],"homepage":"https://github.com/dogfood-lab/testing-os","bugs":{"url":"https://github.com/dogfood-lab/testing-os/issues"},"bin":{"swarm":"cli.js"},"dist":{"shasum":"c0d7cee638377267762d12778183bae3e97bd7cc","tarball":"https://registry.npmjs.org/@dogfood-lab/dogfood-swarm/-/dogfood-swarm-1.3.1.tgz","fileCount":51,"integrity":"sha512-qWG7gUOywHLTWGap/P3glfT1pKlEuLexjUn1CAcbqvt5OIUZV+KMI8DChQbFR70n37vJaxcY37uYPIEVsxZtSw==","signatures":[{"sig":"MEYCIQDmfoUi+uWIarzAfiF6fFxKacZz5vm1JVP3jS1gJL/UiAIhAM/489eqXJL7ytWAm8hS3CmWVtkY7Fs6+Y9yqTR50qZ5","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dogfood-lab%2fdogfood-swarm@1.3.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":511489},"main":"cli.js","type":"module","engines":{"node":">=22"},"exports":{".":"./cli.js","./lib/*":"./lib/*","./persist-results.js":"./persist-results.js"},"gitHead":"db74c9b1de6d75eec6004d0940c4294df832aab7","scripts":{"test":"node --test \"*.test.js\" \"lib/*.test.js\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4847da7f-112e-4b68-bb04-12ab0108da81"}},"repository":{"url":"git+https://github.com/dogfood-lab/testing-os.git","type":"git","directory":"packages/dogfood-swarm"},"_npmVersion":"11.16.0","description":"10-phase parallel-agent protocol runner for testing-os. SQLite-backed control plane, durable receipts, domain-aware orchestration. Three R's recovery contract: revalidate / rewind / redrive.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"ajv":"^8.18.0","minimatch":"^10.0.0","ajv-formats":"^3.0.1","better-sqlite3":"^12.10.0","@dogfood-lab/report":"^1.2.0","@dogfood-lab/findings":"^1.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/dogfood-swarm_1.3.1_1780299479459_0.4470682621913049","host":"s3://npm-registry-packages-npm-production"}},"1.3.2":{"name":"@dogfood-lab/dogfood-swarm","version":"1.3.2","keywords":["testing-os","dogfood-lab","swarm","agent-protocol","audit","recovery","rewind","redrive","revalidate"],"author":{"name":"mcp-tool-shop"},"license":"MIT","_id":"@dogfood-lab/dogfood-swarm@1.3.2","maintainers":[{"name":"mikefrilot","email":"mikeyfrilot@gmail.com"}],"homepage":"https://github.com/dogfood-lab/testing-os","bugs":{"url":"https://github.com/dogfood-lab/testing-os/issues"},"bin":{"swarm":"cli.js"},"dist":{"shasum":"84b28e9db6fa586f4ca6e8847f95a8264da53895","tarball":"https://registry.npmjs.org/@dogfood-lab/dogfood-swarm/-/dogfood-swarm-1.3.2.tgz","fileCount":51,"integrity":"sha512-IOUi15L8ch2hv+1HNYUGxAPf7W79XV/NJUngX9MSoXSYn+SVOn9CLpXE/Ga3NdGMoAVBb1wIhspouuScenbrtw==","signatures":[{"sig":"MEUCICwlC8ltrL6OJh7Tjng5rZuJ83CFwly5b+4TMlpWB4C9AiEA63r1t6p/Dd44Xs84IBZhzFVoZN3Nn0Gps0d3TUwn5e4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dogfood-lab%2fdogfood-swarm@1.3.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":589368},"main":"cli.js","type":"module","engines":{"node":">=22"},"exports":{".":"./cli.js","./lib/*":"./lib/*","./persist-results.js":"./persist-results.js"},"gitHead":"f7d95a0bef5a7fa8b5935e829f257f977f1df12d","scripts":{"test":"node --test \"*.test.js\" \"lib/*.test.js\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4847da7f-112e-4b68-bb04-12ab0108da81"}},"repository":{"url":"git+https://github.com/dogfood-lab/testing-os.git","type":"git","directory":"packages/dogfood-swarm"},"_npmVersion":"11.16.0","description":"10-phase parallel-agent protocol runner for testing-os. SQLite-backed control plane, durable receipts, domain-aware orchestration. Three R's recovery contract: revalidate / rewind / redrive.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"ajv":"^8.18.0","minimatch":"^10.0.0","ajv-formats":"^3.0.1","better-sqlite3":"^12.10.0","@dogfood-lab/report":"^1.2.0","@dogfood-lab/schemas":"^1.2.0","@dogfood-lab/findings":"^1.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/dogfood-swarm_1.3.2_1780434795450_0.8415717125415856","host":"s3://npm-registry-packages-npm-production"}},"1.4.0":{"name":"@dogfood-lab/dogfood-swarm","version":"1.4.0","keywords":["testing-os","dogfood-lab","swarm","agent-protocol","audit","recovery","rewind","redrive","revalidate"],"author":{"name":"mcp-tool-shop"},"license":"MIT","_id":"@dogfood-lab/dogfood-swarm@1.4.0","maintainers":[{"name":"mikefrilot","email":"mikeyfrilot@gmail.com"}],"homepage":"https://github.com/dogfood-lab/testing-os","bugs":{"url":"https://github.com/dogfood-lab/testing-os/issues"},"bin":{"swarm":"cli.js"},"dist":{"shasum":"5a341c2a6a44353b0612f9521d404099c3b0d9d5","tarball":"https://registry.npmjs.org/@dogfood-lab/dogfood-swarm/-/dogfood-swarm-1.4.0.tgz","fileCount":54,"integrity":"sha512-nDRwc4GexbYFYhavuPbRqKz5CK4tV3fL34S36VC1a2rQrQDfZRwtXBGogGUzjAIfZbkEGpqYFKGonFgcL4EAQg==","signatures":[{"sig":"MEUCIE7hCv2E1B09J0gvInhVv81WXsMOLchbk3fW2uS/RpAfAiEA2tsJC1q4RATBfOe8Mn13UAYrbmTKJBU3ZlysKNf5b40=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dogfood-lab%2fdogfood-swarm@1.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":671200},"main":"cli.js","type":"module","engines":{"node":">=22"},"exports":{".":"./cli.js","./lib/*":"./lib/*","./persist-results.js":"./persist-results.js"},"gitHead":"eabbfcb057f57e040441ec018f9d1400c5bf7a30","scripts":{"test":"node --test \"*.test.js\" \"lib/*.test.js\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4847da7f-112e-4b68-bb04-12ab0108da81"}},"repository":{"url":"git+https://github.com/dogfood-lab/testing-os.git","type":"git","directory":"packages/dogfood-swarm"},"_npmVersion":"11.17.0","description":"10-phase parallel-agent protocol runner for testing-os. SQLite-backed control plane, durable receipts, domain-aware orchestration. Three R's recovery contract: revalidate / rewind / redrive.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"ajv":"^8.18.0","minimatch":"^10.0.0","ajv-formats":"^3.0.1","better-sqlite3":"^12.10.0","@dogfood-lab/report":"^1.2.0","@dogfood-lab/schemas":"^1.2.0","@dogfood-lab/findings":"^1.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/dogfood-swarm_1.4.0_1781365491001_0.6476293636176802","host":"s3://npm-registry-packages-npm-production"}},"1.5.0":{"name":"@dogfood-lab/dogfood-swarm","version":"1.5.0","keywords":["testing-os","dogfood-lab","swarm","agent-protocol","audit","recovery","rewind","redrive","revalidate"],"author":{"name":"mcp-tool-shop"},"license":"MIT","_id":"@dogfood-lab/dogfood-swarm@1.5.0","maintainers":[{"name":"mikefrilot","email":"mikeyfrilot@gmail.com"}],"homepage":"https://github.com/dogfood-lab/testing-os","bugs":{"url":"https://github.com/dogfood-lab/testing-os/issues"},"bin":{"swarm":"cli.js"},"dist":{"shasum":"aaa5ea1e07d73ca30883dcac6c76f86160a29653","tarball":"https://registry.npmjs.org/@dogfood-lab/dogfood-swarm/-/dogfood-swarm-1.5.0.tgz","fileCount":54,"integrity":"sha512-ncoCqU6IwN7N0FBspFu+QgQFeP17Ywpw2ub2Ld0ELYJJFBDqmmFvhsHy06aYyzKSjay+kuNPUWSuJN5kY9BKNw==","signatures":[{"sig":"MEUCIG3r6MZ+9yCdmBksitGXoqt9Ia9HYZxpl0m0IZIEze6bAiEAh5RPyybriNV1rO7cq3cFIbEAplBk5wkn6tKT/H/a61I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dogfood-lab%2fdogfood-swarm@1.5.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":684313},"main":"cli.js","type":"module","engines":{"node":">=22"},"exports":{".":"./cli.js","./lib/*":"./lib/*","./persist-results.js":"./persist-results.js"},"gitHead":"261299bb2feec04e9838af2fcb4d7d2b9d410073","scripts":{"test":"node --test \"*.test.js\" \"lib/*.test.js\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4847da7f-112e-4b68-bb04-12ab0108da81"}},"repository":{"url":"git+https://github.com/dogfood-lab/testing-os.git","type":"git","directory":"packages/dogfood-swarm"},"_npmVersion":"11.17.0","description":"10-phase parallel-agent protocol runner for testing-os. SQLite-backed control plane, durable receipts, domain-aware orchestration. Three R's recovery contract: revalidate / rewind / redrive.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"ajv":"^8.18.0","minimatch":"^10.0.0","ajv-formats":"^3.0.1","better-sqlite3":"^12.10.0","@dogfood-lab/report":"^1.2.0","@dogfood-lab/schemas":"^1.2.0","@dogfood-lab/findings":"^1.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/dogfood-swarm_1.5.0_1782094968582_0.9741308385668683","host":"s3://npm-registry-packages-npm-production"}},"1.6.0":{"name":"@dogfood-lab/dogfood-swarm","version":"1.6.0","keywords":["testing-os","dogfood-lab","swarm","agent-protocol","audit","recovery","rewind","redrive","revalidate"],"author":{"name":"mcp-tool-shop"},"license":"MIT","_id":"@dogfood-lab/dogfood-swarm@1.6.0","maintainers":[{"name":"mikefrilot","email":"mikeyfrilot@gmail.com"}],"homepage":"https://github.com/dogfood-lab/testing-os","bugs":{"url":"https://github.com/dogfood-lab/testing-os/issues"},"bin":{"swarm":"cli.js"},"dist":{"shasum":"29497e9c000ec6879d7e5dfdcd2dd11380b246f7","tarball":"https://registry.npmjs.org/@dogfood-lab/dogfood-swarm/-/dogfood-swarm-1.6.0.tgz","fileCount":57,"integrity":"sha512-+KHF3TxXw6AjrgnSyRC7xjzv2uDBX3qaurWcoI4wREINDM249BdrBcV7PkkV9oNhHWsJKbUq8fwPI7uQMh99uw==","signatures":[{"sig":"MEYCIQCOhDJK0wrbPtX31tsHTBj6XWHJDbnaj/hxHQjkxMBmoQIhANSR+JXQPz58lJmZug45qytqABVObEaGhI1QiVRQ0LIr","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dogfood-lab%2fdogfood-swarm@1.6.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":717471},"main":"cli.js","type":"module","engines":{"node":">=22"},"exports":{".":"./cli.js","./lib/*":"./lib/*","./persist-results.js":"./persist-results.js"},"gitHead":"7442c21cfa10a3d0bd6509af9da62e0d87084624","scripts":{"test":"node --test \"*.test.js\" \"lib/*.test.js\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4847da7f-112e-4b68-bb04-12ab0108da81"}},"repository":{"url":"git+https://github.com/dogfood-lab/testing-os.git","type":"git","directory":"packages/dogfood-swarm"},"_npmVersion":"11.18.0","description":"10-phase parallel-agent protocol runner for testing-os. SQLite-backed control plane, durable receipts, domain-aware orchestration. Three R's recovery contract: revalidate / rewind / redrive.","directories":{},"_nodeVersion":"22.23.0","dependencies":{"ajv":"^8.18.0","minimatch":"^10.0.0","ajv-formats":"^3.0.1","better-sqlite3":"^12.11.1","@dogfood-lab/report":"^1.2.0","@dogfood-lab/schemas":"^1.2.0","@dogfood-lab/findings":"^1.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/dogfood-swarm_1.6.0_1782783123342_0.4664541348427256","host":"s3://npm-registry-packages-npm-production"}},"1.7.0":{"name":"@dogfood-lab/dogfood-swarm","version":"1.7.0","keywords":["testing-os","dogfood-lab","swarm","agent-protocol","audit","recovery","rewind","redrive","revalidate"],"author":{"name":"mcp-tool-shop"},"license":"MIT","_id":"@dogfood-lab/dogfood-swarm@1.7.0","maintainers":[{"name":"mikefrilot","email":"mikeyfrilot@gmail.com"}],"homepage":"https://github.com/dogfood-lab/testing-os","bugs":{"url":"https://github.com/dogfood-lab/testing-os/issues"},"bin":{"swarm":"cli.js"},"dist":{"shasum":"7c37f66dfb87de6ebb2a40de65aac5e525798887","tarball":"https://registry.npmjs.org/@dogfood-lab/dogfood-swarm/-/dogfood-swarm-1.7.0.tgz","fileCount":57,"integrity":"sha512-PC0kJ9d1wPfO+TnMtiC3bQWKC26UoI5USSfjjDj1wRt3sKbwqCWe8wNIYtfTgvXZHSDcb1royLhpFFEjL5oWIw==","signatures":[{"sig":"MEUCIQDa0gbGFxG7H3koNpHV3mbtvQuRiwxpPZB549eEciROZwIgYgOKS5QLjtGtYMqqgJLyM+ys5MTDeSkYkJ7grG7ZaK4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dogfood-lab%2fdogfood-swarm@1.7.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":717471},"main":"cli.js","type":"module","engines":{"node":">=22"},"exports":{".":"./cli.js","./lib/*":"./lib/*","./persist-results.js":"./persist-results.js"},"gitHead":"c6de7f862da19f6737064baf087a7d39fe8decf9","scripts":{"test":"node --test \"*.test.js\" \"lib/*.test.js\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4847da7f-112e-4b68-bb04-12ab0108da81"}},"repository":{"url":"git+https://github.com/dogfood-lab/testing-os.git","type":"git","directory":"packages/dogfood-swarm"},"_npmVersion":"11.18.0","description":"10-phase parallel-agent protocol runner for testing-os. SQLite-backed control plane, durable receipts, domain-aware orchestration. Three R's recovery contract: revalidate / rewind / redrive.","directories":{},"_nodeVersion":"22.23.0","dependencies":{"ajv":"^8.18.0","minimatch":"^10.0.0","ajv-formats":"^3.0.1","better-sqlite3":"^12.11.1","@dogfood-lab/report":"^1.2.0","@dogfood-lab/schemas":"^1.2.0","@dogfood-lab/findings":"^1.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/dogfood-swarm_1.7.0_1782793451105_0.46936854081110546","host":"s3://npm-registry-packages-npm-production"}},"1.8.0":{"name":"@dogfood-lab/dogfood-swarm","version":"1.8.0","keywords":["testing-os","dogfood-lab","swarm","agent-protocol","audit","recovery","rewind","redrive","revalidate"],"author":{"name":"mcp-tool-shop"},"license":"MIT","_id":"@dogfood-lab/dogfood-swarm@1.8.0","maintainers":[{"name":"mikefrilot","email":"mikeyfrilot@gmail.com"}],"homepage":"https://github.com/dogfood-lab/testing-os","bugs":{"url":"https://github.com/dogfood-lab/testing-os/issues"},"bin":{"swarm":"cli.js"},"dist":{"shasum":"bf479bf34666eb55c4a076e91d38640671709a94","tarball":"https://registry.npmjs.org/@dogfood-lab/dogfood-swarm/-/dogfood-swarm-1.8.0.tgz","fileCount":57,"integrity":"sha512-VjO9CqdkzATDBgo39mpbC6MrBA5sAG3Onp7YqyjecqUEjsddztSN0EmKP0HcyGUhaHIjVC3V+wmpSEKhhp4sOA==","signatures":[{"sig":"MEUCIGFAD6acAEBO952I7HT8K4kkz5SzNS6M+hVp272XCSh2AiEAqHvTRmMNq8vip5qFBFyqi2tDDP5IhRb1p8CV770xf5M=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dogfood-lab%2fdogfood-swarm@1.8.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":717471},"main":"cli.js","type":"module","engines":{"node":">=22"},"exports":{".":"./cli.js","./lib/*":"./lib/*","./persist-results.js":"./persist-results.js"},"gitHead":"b7b3f307f52100c9b927f6c798e5e0d8466c1e77","scripts":{"test":"node --test \"*.test.js\" \"lib/*.test.js\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4847da7f-112e-4b68-bb04-12ab0108da81"}},"repository":{"url":"git+https://github.com/dogfood-lab/testing-os.git","type":"git","directory":"packages/dogfood-swarm"},"_npmVersion":"11.18.0","description":"10-phase parallel-agent protocol runner for testing-os. SQLite-backed control plane, durable receipts, domain-aware orchestration. Three R's recovery contract: revalidate / rewind / redrive.","directories":{},"_nodeVersion":"22.23.0","dependencies":{"ajv":"^8.18.0","minimatch":"^10.0.0","ajv-formats":"^3.0.1","better-sqlite3":"^12.11.1","@dogfood-lab/report":"^1.2.0","@dogfood-lab/schemas":"^1.2.0","@dogfood-lab/findings":"^1.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/dogfood-swarm_1.8.0_1782797351510_0.2350763302788592","host":"s3://npm-registry-packages-npm-production"}},"1.9.0":{"name":"@dogfood-lab/dogfood-swarm","version":"1.9.0","keywords":["testing-os","dogfood-lab","swarm","agent-protocol","audit","recovery","rewind","redrive","revalidate"],"author":{"name":"mcp-tool-shop"},"license":"MIT","_id":"@dogfood-lab/dogfood-swarm@1.9.0","maintainers":[{"name":"mikefrilot","email":"mikeyfrilot@gmail.com"}],"homepage":"https://github.com/dogfood-lab/testing-os","bugs":{"url":"https://github.com/dogfood-lab/testing-os/issues"},"bin":{"swarm":"cli.js"},"dist":{"shasum":"7cc79d6f5feb28b6cf1d6863ea130cebb4e3d569","tarball":"https://registry.npmjs.org/@dogfood-lab/dogfood-swarm/-/dogfood-swarm-1.9.0.tgz","fileCount":59,"integrity":"sha512-EQ1ZzcwXfF7xvK2jX8APpCiJcQWK5jKDI8yYVSs5zQ7pvPYG8MtCAisDh7xcA9ZATyfXoqhh0o1+a7SEh0twxA==","signatures":[{"sig":"MEQCIADfDCHJgH0DQu2j/HQeRCPjOo/1kei5MVAvIhjZ7UCpAiB2ejssabKndQ8VdBnRr0+jWoJwVfif/6lx8weYCbctEQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dogfood-lab%2fdogfood-swarm@1.9.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":790444},"main":"cli.js","type":"module","engines":{"node":">=22"},"exports":{".":"./cli.js","./lib/*":"./lib/*","./persist-results.js":"./persist-results.js"},"gitHead":"e5f7caa9342ab7a7b12fb5e321f1a6ef57548597","scripts":{"test":"node --test \"*.test.js\" \"lib/*.test.js\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4847da7f-112e-4b68-bb04-12ab0108da81"}},"repository":{"url":"git+https://github.com/dogfood-lab/testing-os.git","type":"git","directory":"packages/dogfood-swarm"},"_npmVersion":"11.18.0","description":"10-phase parallel-agent protocol runner for testing-os. SQLite-backed control plane, durable receipts, domain-aware orchestration. Three R's recovery contract: revalidate / rewind / redrive.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"ajv":"^8.18.0","minimatch":"^10.0.0","ajv-formats":"^3.0.1","better-sqlite3":"^12.11.1","@dogfood-lab/report":"^1.2.0","@dogfood-lab/schemas":"^1.2.0","@dogfood-lab/findings":"^1.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/dogfood-swarm_1.9.0_1783059007182_0.44809001332823994","host":"s3://npm-registry-packages-npm-production"}},"1.10.0":{"name":"@dogfood-lab/dogfood-swarm","version":"1.10.0","keywords":["testing-os","dogfood-lab","swarm","agent-protocol","audit","recovery","rewind","redrive","revalidate"],"author":{"name":"mcp-tool-shop"},"license":"MIT","_id":"@dogfood-lab/dogfood-swarm@1.10.0","maintainers":[{"name":"mikefrilot","email":"mikeyfrilot@gmail.com"}],"homepage":"https://github.com/dogfood-lab/testing-os","bugs":{"url":"https://github.com/dogfood-lab/testing-os/issues"},"bin":{"swarm":"cli.js"},"dist":{"shasum":"75659bd1a40522ad5eb15385fe4979f6174e2624","tarball":"https://registry.npmjs.org/@dogfood-lab/dogfood-swarm/-/dogfood-swarm-1.10.0.tgz","fileCount":83,"integrity":"sha512-B4AZDnYmrhRMG3yV1/+lmhJF99FUghqJhLAdfuu0uizHzoIkC0kcRNuafeQxU8dD55QQ2SpjziKvVuWEu00kMA==","signatures":[{"sig":"MEQCIDNsR7ixROlSRv/s0PqWJ77yJi+G9JOcjyX1VDZrspTgAiAw25G/JBO/p5U6M8xl2q82dAZCIrIhFxbKwPlLXIrn1Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dogfood-lab%2fdogfood-swarm@1.10.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1545232},"main":"cli.js","type":"module","engines":{"node":">=22"},"exports":{".":"./cli.js","./lib/*":"./lib/*","./persist-results.js":"./persist-results.js"},"gitHead":"6128dbc61920e3aa85354a6f2dcc027556273f3e","scripts":{"test":"node --test \"*.test.js\" \"lib/*.test.js\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4847da7f-112e-4b68-bb04-12ab0108da81"}},"repository":{"url":"git+https://github.com/dogfood-lab/testing-os.git","type":"git","directory":"packages/dogfood-swarm"},"_npmVersion":"11.5.1","description":"10-phase parallel-agent protocol runner for testing-os. SQLite-backed control plane, durable receipts, domain-aware orchestration. Three R's recovery contract: revalidate / rewind / redrive.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"ajv":"^8.18.0","minimatch":"^10.0.0","ajv-formats":"^3.0.1","better-sqlite3":"^12.11.1","@dogfood-lab/report":"^1.2.0","@dogfood-lab/schemas":"^1.2.0","@dogfood-lab/findings":"^1.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/dogfood-swarm_1.10.0_1784317107568_0.33763265168998213","host":"s3://npm-registry-packages-npm-production"}},"1.11.0":{"name":"@dogfood-lab/dogfood-swarm","version":"1.11.0","keywords":["testing-os","dogfood-lab","swarm","agent-protocol","audit","recovery","rewind","redrive","revalidate"],"author":{"name":"mcp-tool-shop"},"license":"MIT","_id":"@dogfood-lab/dogfood-swarm@1.11.0","maintainers":[{"name":"mikefrilot","email":"mikeyfrilot@gmail.com"}],"homepage":"https://github.com/dogfood-lab/testing-os","bugs":{"url":"https://github.com/dogfood-lab/testing-os/issues"},"bin":{"swarm":"cli.js"},"dist":{"shasum":"0f5ca4305828d5d1ef0e9c6ad89e7c8b0319685f","tarball":"https://registry.npmjs.org/@dogfood-lab/dogfood-swarm/-/dogfood-swarm-1.11.0.tgz","fileCount":89,"integrity":"sha512-HvhsDOehR36FR5FgIsb/TAm+9b332zQ2dZ4FbZmrM99/cqbxTCT8jgGktw1Wk1uGGkUKRtytZUP4wAAz2tFhpA==","signatures":[{"sig":"MEYCIQCeuhkyJSw+QAjnTk24YinrLdU/u50Vecduwr0bMtfHDQIhALKUQvO5WzuRSuIvt+fLSBcdV7aIQ56OFXz5idD5Zj0o","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dogfood-lab%2fdogfood-swarm@1.11.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1733011},"main":"cli.js","type":"module","engines":{"node":">=22"},"exports":{".":"./cli.js","./lib/*":"./lib/*","./persist-results.js":"./persist-results.js"},"gitHead":"e697247296d95afdeee35bcd11633820b27a1ea0","scripts":{"test":"node --test \"*.test.js\" \"lib/*.test.js\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4847da7f-112e-4b68-bb04-12ab0108da81"}},"repository":{"url":"git+https://github.com/dogfood-lab/testing-os.git","type":"git","directory":"packages/dogfood-swarm"},"_npmVersion":"11.5.1","description":"10-phase parallel-agent protocol runner for testing-os. SQLite-backed control plane, durable receipts, domain-aware orchestration. Three R's recovery contract: revalidate / rewind / redrive.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"ajv":"^8.18.0","minimatch":"^10.0.0","ajv-formats":"^3.0.1","better-sqlite3":"^12.11.1","@dogfood-lab/report":"^1.2.0","@dogfood-lab/schemas":"^1.2.0","@dogfood-lab/findings":"^1.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/dogfood-swarm_1.11.0_1787722552371_0.01742152467610425","host":"s3://npm-registry-packages-npm-production"}},"1.12.0":{"name":"@dogfood-lab/dogfood-swarm","version":"1.12.0","keywords":["testing-os","dogfood-lab","swarm","agent-protocol","audit","recovery","rewind","redrive","revalidate"],"author":{"name":"mcp-tool-shop"},"license":"MIT","_id":"@dogfood-lab/dogfood-swarm@1.12.0","maintainers":[{"name":"mikefrilot","email":"mikeyfrilot@gmail.com"}],"homepage":"https://github.com/dogfood-lab/testing-os","bugs":{"url":"https://github.com/dogfood-lab/testing-os/issues"},"bin":{"swarm":"cli.js"},"dist":{"shasum":"f16b77cdba9eb61172b17c6b3dc86d599ad1b477","tarball":"https://registry.npmjs.org/@dogfood-lab/dogfood-swarm/-/dogfood-swarm-1.12.0.tgz","fileCount":89,"integrity":"sha512-oOjSOXVO0sRh+FN6Gm8Ar6wCyEkqJg3V3A4spC3ZF1G0SLpP/MXpu0O/wQ3AyHhXmvfONQnk0hD7efygM0C84g==","signatures":[{"sig":"MEYCIQCDMJSWaHRI/CNsS3o2WtaFzbY1iML2mn2CV7ikUdlPRwIhAOcB++JiF9+dxps0w/b2aG5AshK87K8QqVPSsL+xxSRj","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dogfood-lab%2fdogfood-swarm@1.12.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1745728},"main":"cli.js","type":"module","engines":{"node":">=22"},"exports":{".":"./cli.js","./lib/*":"./lib/*","./persist-results.js":"./persist-results.js"},"gitHead":"fc5f0b8ffb54dc92146cde7fb8275866a78af289","scripts":{"test":"node --test \"*.test.js\" \"lib/*.test.js\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4847da7f-112e-4b68-bb04-12ab0108da81"}},"repository":{"url":"git+https://github.com/dogfood-lab/testing-os.git","type":"git","directory":"packages/dogfood-swarm"},"_npmVersion":"11.5.1","description":"10-phase parallel-agent protocol runner for testing-os. SQLite-backed control plane, durable receipts, domain-aware orchestration. Three R's recovery contract: revalidate / rewind / redrive.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"ajv":"^8.18.0","minimatch":"^10.0.0","ajv-formats":"^3.0.1","better-sqlite3":"^12.11.1","@dogfood-lab/report":"^1.2.0","@dogfood-lab/schemas":"^1.2.0","@dogfood-lab/findings":"^1.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/dogfood-swarm_1.12.0_1788734892764_0.3732818671387226","host":"s3://npm-registry-packages-npm-production"}},"1.13.0":{"name":"@dogfood-lab/dogfood-swarm","version":"1.13.0","keywords":["testing-os","dogfood-lab","swarm","agent-protocol","audit","recovery","rewind","redrive","revalidate"],"author":{"name":"mcp-tool-shop"},"license":"MIT","_id":"@dogfood-lab/dogfood-swarm@1.13.0","maintainers":[{"name":"mikefrilot","email":"mikeyfrilot@gmail.com"}],"homepage":"https://github.com/dogfood-lab/testing-os","bugs":{"url":"https://github.com/dogfood-lab/testing-os/issues"},"bin":{"swarm":"cli.js"},"dist":{"shasum":"5883c85123cbb7b947ce0a48dfb6f026303ce40b","tarball":"https://registry.npmjs.org/@dogfood-lab/dogfood-swarm/-/dogfood-swarm-1.13.0.tgz","fileCount":89,"integrity":"sha512-aIjVXRazv1b6b4wWt09N/OC1BRmjl6J5Um91RvElNJS4BY1HgtEV1eOZ8gJfB6CIYB4b505z0BWFR/ElkH1Vhw==","signatures":[{"sig":"MEQCIB+Gab4MzuDAiTZpT54O5LY0Ai84YFYyYY1cVSF1JJQeAiAvv73IrIHi9t0YprZTJVbNFJbPqmFA3i33qMHCrUFO1w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDifpfqHgNhlptRkPclRcV5HCyaCBLBMM0HIdJjNfT8NAIhAMNchl71YPnDQzim/ff97NuZ9kGxUnDM0e/+diVsRMts","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dogfood-lab%2fdogfood-swarm@1.13.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1745806},"main":"cli.js","type":"module","engines":{"node":">=22"},"exports":{".":"./cli.js","./lib/*":"./lib/*","./persist-results.js":"./persist-results.js"},"gitHead":"bb21b74cf9df12d3c060ed5cb30a512e55eb94d0","scripts":{"test":"node --test \"*.test.js\" \"lib/*.test.js\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4847da7f-112e-4b68-bb04-12ab0108da81"}},"repository":{"url":"git+https://github.com/dogfood-lab/testing-os.git","type":"git","directory":"packages/dogfood-swarm"},"_npmVersion":"11.5.1","description":"10-phase parallel-agent protocol runner for testing-os. SQLite-backed control plane, durable receipts, domain-aware orchestration. Three R's recovery contract: revalidate / rewind / redrive.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"ajv":"^8.18.0","minimatch":"^10.0.0","ajv-formats":"^3.0.1","better-sqlite3":"^12.11.1","@dogfood-lab/report":"^1.2.0","@dogfood-lab/schemas":"^1.2.0","@dogfood-lab/findings":"^1.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/dogfood-swarm_1.13.0_1790130957007_0.6339093081428708","host":"s3://npm-registry-packages-npm-production"}},"1.14.0":{"name":"@dogfood-lab/dogfood-swarm","version":"1.14.0","keywords":["testing-os","dogfood-lab","swarm","agent-protocol","audit","recovery","rewind","redrive","revalidate"],"author":{"name":"mcp-tool-shop"},"license":"MIT","_id":"@dogfood-lab/dogfood-swarm@1.14.0","maintainers":[{"name":"mikefrilot","email":"mikeyfrilot@gmail.com"}],"homepage":"https://github.com/dogfood-lab/testing-os","bugs":{"url":"https://github.com/dogfood-lab/testing-os/issues"},"bin":{"swarm":"cli.js"},"dist":{"shasum":"ac758b120fb13a0dc9f3f20f1576e97a355f6206","tarball":"https://registry.npmjs.org/@dogfood-lab/dogfood-swarm/-/dogfood-swarm-1.14.0.tgz","fileCount":89,"integrity":"sha512-i6l21gHiuxTCKlyZMJxEYZYnMMvqnkPN6cZxyOVEVkx3EZ0RprUgj3ZUq1h7UyjizTbCiaiSiDvGc2oQCNoFvg==","signatures":[{"sig":"MEUCIQCh0NQFm5qfl5QO6cozp3+iQklEZMcW8/CRVMbQ21V69QIgMW4I+X9dzSbDW0ZG4HOTuIH15+7CNHkyown2KHa+nXI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIA8B6yAvY9NM8O6ofXg/xQ7hBH4/8uKgnBd3f3PfWoV4AiBfPm4ZWNLZOQNT8Bwnr9jslgRkSMKrYa8xoVy2Nq7sqQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dogfood-lab%2fdogfood-swarm@1.14.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1745806},"main":"cli.js","type":"module","engines":{"node":">=22"},"exports":{".":"./cli.js","./lib/*":"./lib/*","./persist-results.js":"./persist-results.js"},"gitHead":"e258de5112e43aecac2da3237388c108430bf4ba","scripts":{"test":"node --test \"*.test.js\" \"lib/*.test.js\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4847da7f-112e-4b68-bb04-12ab0108da81"}},"repository":{"url":"git+https://github.com/dogfood-lab/testing-os.git","type":"git","directory":"packages/dogfood-swarm"},"_npmVersion":"11.5.1","description":"10-phase parallel-agent protocol runner for testing-os. SQLite-backed control plane, durable receipts, domain-aware orchestration. Three R's recovery contract: revalidate / rewind / redrive.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"ajv":"^8.18.0","minimatch":"^10.0.0","ajv-formats":"^3.0.1","better-sqlite3":"^12.11.1","@dogfood-lab/report":"^1.2.0","@dogfood-lab/schemas":"^1.2.0","@dogfood-lab/findings":"^1.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/dogfood-swarm_1.14.0_1790172054837_0.5461450583515097","host":"s3://npm-registry-packages-npm-production"}},"1.15.0":{"name":"@dogfood-lab/dogfood-swarm","version":"1.15.0","keywords":["testing-os","dogfood-lab","swarm","agent-protocol","audit","recovery","rewind","redrive","revalidate"],"author":{"name":"mcp-tool-shop"},"license":"MIT","_id":"@dogfood-lab/dogfood-swarm@1.15.0","maintainers":[{"name":"mikefrilot","email":"mikeyfrilot@gmail.com"}],"homepage":"https://github.com/dogfood-lab/testing-os","bugs":{"url":"https://github.com/dogfood-lab/testing-os/issues"},"bin":{"swarm":"cli.js"},"dist":{"shasum":"0c4bb807bb1394c0dbdf9666c82dbc283955e84a","tarball":"https://registry.npmjs.org/@dogfood-lab/dogfood-swarm/-/dogfood-swarm-1.15.0.tgz","fileCount":89,"integrity":"sha512-ZEqwXprY6rsWESc/r/c4vrOdWXH0SHIp9QbW8G6zGhAXWdYkzp+Xw85aJoOpi3t2xUc0L4sChrwTL4Kvx02b8A==","signatures":[{"sig":"MEQCIBWbnQnYdZkH/2XD4fsRmz3lzrPEUDzw9SMDDa6Hn9n7AiAau6Yor8BVZHMrAPk1L66Ha5rp7TVXg+En7LGJNS6WTQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIHPYazTczgPTaTI3ZVUqkvyAWeTLnqX1pfHSYhXSTyeBAiEAiK80exIAx3XCX7JIrMY2F9/pLZ6QqSYhhaXdixqOOEA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dogfood-lab%2fdogfood-swarm@1.15.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1745806},"main":"cli.js","type":"module","engines":{"node":">=22"},"exports":{".":"./cli.js","./lib/*":"./lib/*","./persist-results.js":"./persist-results.js"},"gitHead":"fdb54ffc61437b8eaff381a5cd3ce6024cb950f8","scripts":{"test":"node --test \"*.test.js\" \"lib/*.test.js\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4847da7f-112e-4b68-bb04-12ab0108da81"}},"repository":{"url":"git+https://github.com/dogfood-lab/testing-os.git","type":"git","directory":"packages/dogfood-swarm"},"_npmVersion":"11.5.1","description":"10-phase parallel-agent protocol runner for testing-os. SQLite-backed control plane, durable receipts, domain-aware orchestration. Three R's recovery contract: revalidate / rewind / redrive.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"ajv":"^8.18.0","minimatch":"^10.0.0","ajv-formats":"^3.0.1","better-sqlite3":"^12.11.1","@dogfood-lab/report":"^1.2.0","@dogfood-lab/schemas":"^1.2.0","@dogfood-lab/findings":"^1.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/dogfood-swarm_1.15.0_1790197796895_0.35375843209642577","host":"s3://npm-registry-packages-npm-production"}},"1.16.0":{"name":"@dogfood-lab/dogfood-swarm","version":"1.16.0","keywords":["testing-os","dogfood-lab","swarm","agent-protocol","audit","recovery","rewind","redrive","revalidate"],"author":{"name":"mcp-tool-shop"},"license":"MIT","_id":"@dogfood-lab/dogfood-swarm@1.16.0","maintainers":[{"name":"mikefrilot","email":"mikeyfrilot@gmail.com"}],"homepage":"https://github.com/dogfood-lab/testing-os","bugs":{"url":"https://github.com/dogfood-lab/testing-os/issues"},"bin":{"swarm":"cli.js"},"dist":{"shasum":"f47b72c7714bdaf04651899efe183fe8012f5b42","tarball":"https://registry.npmjs.org/@dogfood-lab/dogfood-swarm/-/dogfood-swarm-1.16.0.tgz","fileCount":93,"integrity":"sha512-oMmLP70hrvUDUwOq0QfUuQE8EeEao8eGGdw/g6QI4Ffrxap9pUICfiUtJPG6cv3Vy+BUn5d0nZQNWhyizioDxg==","signatures":[{"sig":"MEYCIQDZrwmdauvjUPLSDNDFPgjabU8iGksCwl2RXnrXJANu+QIhALNEhcygExSW2nHKjAq3+J6UTCH+wm2WxHKNmawcQOEt","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIDf28opWJDm87GAyfltEmczmDD+cJ7dMTbYIkkTYbWx0AiBc8YfE4mORp4VkcFarRzMDg/f6v7s9ND22U3E6mk1gOA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dogfood-lab%2fdogfood-swarm@1.16.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1800292},"main":"cli.js","type":"module","engines":{"node":">=22"},"exports":{".":"./cli.js","./lib/*":"./lib/*","./persist-results.js":"./persist-results.js"},"gitHead":"d7c3b75fbe7e6acf9e24eb1655a9fd03c162c0f6","scripts":{"test":"node --test \"*.test.js\" \"lib/*.test.js\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4847da7f-112e-4b68-bb04-12ab0108da81"}},"repository":{"url":"git+https://github.com/dogfood-lab/testing-os.git","type":"git","directory":"packages/dogfood-swarm"},"_npmVersion":"11.5.1","description":"10-phase parallel-agent protocol runner for testing-os. SQLite-backed control plane, durable receipts, domain-aware orchestration. Three R's recovery contract: revalidate / rewind / redrive.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"ajv":"^8.18.0","minimatch":"^10.0.0","ajv-formats":"^3.0.1","better-sqlite3":"^12.11.1","@dogfood-lab/report":"^1.2.0","@dogfood-lab/schemas":"^1.2.0","@dogfood-lab/findings":"^1.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/dogfood-swarm_1.16.0_1790215036259_0.18350207507814953","host":"s3://npm-registry-packages-npm-production"}},"1.17.0":{"name":"@dogfood-lab/dogfood-swarm","version":"1.17.0","keywords":["testing-os","dogfood-lab","swarm","agent-protocol","audit","recovery","rewind","redrive","revalidate"],"author":{"name":"mcp-tool-shop"},"license":"MIT","_id":"@dogfood-lab/dogfood-swarm@1.17.0","maintainers":[{"name":"mikefrilot","email":"mikeyfrilot@gmail.com"}],"homepage":"https://github.com/dogfood-lab/testing-os","bugs":{"url":"https://github.com/dogfood-lab/testing-os/issues"},"bin":{"swarm":"cli.js"},"dist":{"shasum":"852eba99fe300dfbe32ed9ed18af0c21a65fa4b2","tarball":"https://registry.npmjs.org/@dogfood-lab/dogfood-swarm/-/dogfood-swarm-1.17.0.tgz","fileCount":93,"integrity":"sha512-wmIyF833UnwhiYXOwR4UPjaizvCP6X1qgJXFg5cVLSR0PnrTcWbAYjFPk2W0QX8XHzvKwei3VuUtxUOMA84Stw==","signatures":[{"sig":"MEUCIGwRF0tgL2gN+ceT9HP55S8XOJ6NGeofqmguOUOc9/L5AiEAk8we2sGh+SytdfUZqROgmqv6DiFOXCLLYJIqV7VWCVk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDzBBOmKIYIwkeOmkhnWMgwOAbI2CJfYSiKZNJx+RxTBgIgFjoHFVM08rHOx80+zOlUymiUaPAyVdtOrPxZw/2UJPs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dogfood-lab%2fdogfood-swarm@1.17.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1800292},"main":"cli.js","type":"module","engines":{"node":">=22"},"exports":{".":"./cli.js","./lib/*":"./lib/*","./persist-results.js":"./persist-results.js"},"gitHead":"c380b5bccbe97d632dec6b56efe5dc54902fe4ff","scripts":{"test":"node --test \"*.test.js\" \"lib/*.test.js\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4847da7f-112e-4b68-bb04-12ab0108da81"}},"repository":{"url":"git+https://github.com/dogfood-lab/testing-os.git","type":"git","directory":"packages/dogfood-swarm"},"_npmVersion":"11.5.1","description":"10-phase parallel-agent protocol runner for testing-os. SQLite-backed control plane, durable receipts, domain-aware orchestration. Three R's recovery contract: revalidate / rewind / redrive.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"ajv":"^8.18.0","minimatch":"^10.0.0","ajv-formats":"^3.0.1","better-sqlite3":"^12.11.1","@dogfood-lab/report":"^1.2.0","@dogfood-lab/schemas":"^1.2.0","@dogfood-lab/findings":"^1.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/dogfood-swarm_1.17.0_1790238344555_0.845591858707295","host":"s3://npm-registry-packages-npm-production"}},"1.18.0":{"name":"@dogfood-lab/dogfood-swarm","version":"1.18.0","keywords":["testing-os","dogfood-lab","swarm","agent-protocol","audit","recovery","rewind","redrive","revalidate"],"author":{"name":"mcp-tool-shop"},"license":"MIT","_id":"@dogfood-lab/dogfood-swarm@1.18.0","maintainers":[{"name":"mikefrilot","email":"mikeyfrilot@gmail.com"}],"homepage":"https://github.com/dogfood-lab/testing-os","bugs":{"url":"https://github.com/dogfood-lab/testing-os/issues"},"bin":{"swarm":"cli.js"},"dist":{"shasum":"5d98bacb078aa594b17090468bb1ca161b740978","tarball":"https://registry.npmjs.org/@dogfood-lab/dogfood-swarm/-/dogfood-swarm-1.18.0.tgz","fileCount":93,"integrity":"sha512-yt05aLu5MWUbIVR8iICBfNzEoszZD9vfaykj0RbN7ZOszQOTJHub1n5qosKjlL6ydEm/eS/M+V+AEKqcfC38qA==","signatures":[{"sig":"MEYCIQC6sEZgTHoPJ962N3nrilRKuI7sWgskgiqK4JDJCpQpLQIhAMzFW146+b4XurgSRnrqC1HJ7VwDdWJU4pVPIENoWoF+","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCTP32snY3PfEirEhXG1cImfLOUTrlWV2Gf4xCMs6KFkgIgFNjAktP3zsadK8ZYhlNo5aJmMvo66srG69SLxLVKXl8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dogfood-lab%2fdogfood-swarm@1.18.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1800292},"main":"cli.js","type":"module","engines":{"node":">=22"},"exports":{".":"./cli.js","./lib/*":"./lib/*","./persist-results.js":"./persist-results.js"},"gitHead":"f18041c8a1adf6919b845eae3af90d1d5d88a932","scripts":{"test":"node --test \"*.test.js\" \"lib/*.test.js\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4847da7f-112e-4b68-bb04-12ab0108da81"}},"repository":{"url":"git+https://github.com/dogfood-lab/testing-os.git","type":"git","directory":"packages/dogfood-swarm"},"_npmVersion":"11.5.1","description":"10-phase parallel-agent protocol runner for testing-os. SQLite-backed control plane, durable receipts, domain-aware orchestration. Three R's recovery contract: revalidate / rewind / redrive.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"ajv":"^8.18.0","minimatch":"^10.0.0","ajv-formats":"^3.0.1","better-sqlite3":"^12.11.1","@dogfood-lab/report":"^1.2.0","@dogfood-lab/schemas":"^1.2.0","@dogfood-lab/findings":"^1.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/dogfood-swarm_1.18.0_1790273264038_0.9939181741229961","host":"s3://npm-registry-packages-npm-production"}},"1.19.0":{"name":"@dogfood-lab/dogfood-swarm","version":"1.19.0","keywords":["testing-os","dogfood-lab","swarm","agent-protocol","audit","recovery","rewind","redrive","revalidate"],"author":{"name":"mcp-tool-shop"},"license":"MIT","_id":"@dogfood-lab/dogfood-swarm@1.19.0","maintainers":[{"name":"mikefrilot","email":"mikeyfrilot@gmail.com"}],"homepage":"https://github.com/dogfood-lab/testing-os","bugs":{"url":"https://github.com/dogfood-lab/testing-os/issues"},"bin":{"swarm":"cli.js"},"dist":{"shasum":"2bafaac03bbe67a65fd37dd84220d62d93f74da6","tarball":"https://registry.npmjs.org/@dogfood-lab/dogfood-swarm/-/dogfood-swarm-1.19.0.tgz","fileCount":93,"integrity":"sha512-uQpRdhhg514cbnKuB7QJZKI1ZfpXBT8j1lsvMHp5y22nMCHTCtxXljjJd7W4rNTwdLj2jy0qWjFLG3Rv3x9Rbw==","signatures":[{"sig":"MEUCIQCalI9wb8N0TxhRnjT3iV9avyJX7pmVMY0gnCYTE8MkMQIgcIpbJf7At4COcC8LzJPqZgOnAavY98K0KMcRNdmQzgU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIFz24Sos0edMBclh4blTUPVa/0z+b46eCeltKWuPwgHVAiAB//NT6NkBrFBgi80Us5h4578n9Q1Z33FsPPo9iLEaOQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dogfood-lab%2fdogfood-swarm@1.19.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1800292},"main":"cli.js","type":"module","engines":{"node":">=22"},"exports":{".":"./cli.js","./lib/*":"./lib/*","./persist-results.js":"./persist-results.js"},"gitHead":"1e7a010f449cea56213a425faca868b6be6240e0","scripts":{"test":"node --test \"*.test.js\" \"lib/*.test.js\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4847da7f-112e-4b68-bb04-12ab0108da81"}},"repository":{"url":"git+https://github.com/dogfood-lab/testing-os.git","type":"git","directory":"packages/dogfood-swarm"},"_npmVersion":"11.5.1","description":"10-phase parallel-agent protocol runner for testing-os. SQLite-backed control plane, durable receipts, domain-aware orchestration. Three R's recovery contract: revalidate / rewind / redrive.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"ajv":"^8.18.0","minimatch":"^10.0.0","ajv-formats":"^3.0.1","better-sqlite3":"^12.11.1","@dogfood-lab/report":"^1.2.0","@dogfood-lab/schemas":"^1.2.0","@dogfood-lab/findings":"^1.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/dogfood-swarm_1.19.0_1790285442037_0.07197337998406828","host":"s3://npm-registry-packages-npm-production"}},"1.20.0":{"name":"@dogfood-lab/dogfood-swarm","version":"1.20.0","keywords":["testing-os","dogfood-lab","swarm","agent-protocol","audit","recovery","rewind","redrive","revalidate"],"author":{"name":"mcp-tool-shop"},"license":"MIT","_id":"@dogfood-lab/dogfood-swarm@1.20.0","maintainers":[{"name":"mikefrilot","email":"mikeyfrilot@gmail.com"}],"homepage":"https://github.com/dogfood-lab/testing-os","bugs":{"url":"https://github.com/dogfood-lab/testing-os/issues"},"bin":{"swarm":"cli.js"},"dist":{"shasum":"bdc1528a28ba6c86a9808df2c449a5c2d482cfe3","tarball":"https://registry.npmjs.org/@dogfood-lab/dogfood-swarm/-/dogfood-swarm-1.20.0.tgz","fileCount":93,"integrity":"sha512-OO7/4LFWM1Idnu7AWenjGB4HHFchPSnJYGFI0Z0CmhocxMq9DidXfq3Qkf2EPRopT9mAV73JIQoDjmEjoFmrgw==","signatures":[{"sig":"MEYCIQD+vuPsleTkBkkd/6lbvbmaTYfRCOhTphTLZzk2wyLCzAIhAOBVVQtltjfoiWt4PCe829WvPGhgDl396Vd3C2M5zlhE","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQD9ddi+9BW5EdiFvRlU+cui82Q5Wd7/jAdfaIFSyzZr6gIgK2ITnauMwiVU67q+eKi+w3VfMk/hTnWqyGDx9SDnlBg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dogfood-lab%2fdogfood-swarm@1.20.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1800292},"main":"cli.js","type":"module","engines":{"node":">=22"},"exports":{".":"./cli.js","./lib/*":"./lib/*","./persist-results.js":"./persist-results.js"},"gitHead":"eb5e397cb01b621f7c667941eaa5edfea75451fc","scripts":{"test":"node --test \"*.test.js\" \"lib/*.test.js\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4847da7f-112e-4b68-bb04-12ab0108da81"}},"repository":{"url":"git+https://github.com/dogfood-lab/testing-os.git","type":"git","directory":"packages/dogfood-swarm"},"_npmVersion":"11.5.1","description":"10-phase parallel-agent protocol runner for testing-os. SQLite-backed control plane, durable receipts, domain-aware orchestration. Three R's recovery contract: revalidate / rewind / redrive.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"ajv":"^8.18.0","minimatch":"^10.0.0","ajv-formats":"^3.0.1","better-sqlite3":"^12.11.1","@dogfood-lab/report":"^1.2.0","@dogfood-lab/schemas":"^1.2.0","@dogfood-lab/findings":"^1.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/dogfood-swarm_1.20.0_1790301598403_0.6970476987884804","host":"s3://npm-registry-packages-npm-production"}},"1.21.0":{"name":"@dogfood-lab/dogfood-swarm","version":"1.21.0","keywords":["testing-os","dogfood-lab","swarm","agent-protocol","audit","recovery","rewind","redrive","revalidate"],"author":{"name":"mcp-tool-shop"},"license":"MIT","_id":"@dogfood-lab/dogfood-swarm@1.21.0","maintainers":[{"name":"mikefrilot","email":"mikeyfrilot@gmail.com"}],"homepage":"https://github.com/dogfood-lab/testing-os","bugs":{"url":"https://github.com/dogfood-lab/testing-os/issues"},"bin":{"swarm":"cli.js"},"dist":{"shasum":"94d6f95fc93829a5c854561973ca337e255a0fc1","tarball":"https://registry.npmjs.org/@dogfood-lab/dogfood-swarm/-/dogfood-swarm-1.21.0.tgz","fileCount":93,"integrity":"sha512-FNXC3k5vHVGzfgwIWVWLBz0NS9pmvfTPlEJWiMWYPj8LKAnYkrTopuT86LOhjldOAmUkmMG9ffMGVqyiHmJEwQ==","signatures":[{"sig":"MEUCIFzVjjISja68VaM0zVQW8MhKpjsMxmMbZO4xI/x7Yu0tAiEA/sQofHZoe+alrTsJiER69SsLX9W06jJn9Upz+IDgfSg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIHIDuvkpBiIxCAr4/PiNnXCs/MKdU7XgKxXqNg0pXGXgAiEA2kCi0oQLWx66n0rzBWGKIMmNOKCvc3VCVCsDxUoKLhY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dogfood-lab%2fdogfood-swarm@1.21.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1800292},"main":"cli.js","type":"module","engines":{"node":">=22"},"exports":{".":"./cli.js","./lib/*":"./lib/*","./persist-results.js":"./persist-results.js"},"gitHead":"64a7293876f55d6693c4aec1748bd1d178f08bec","scripts":{"test":"node --test \"*.test.js\" \"lib/*.test.js\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4847da7f-112e-4b68-bb04-12ab0108da81"}},"repository":{"url":"git+https://github.com/dogfood-lab/testing-os.git","type":"git","directory":"packages/dogfood-swarm"},"_npmVersion":"11.5.1","description":"10-phase parallel-agent protocol runner for testing-os. SQLite-backed control plane, durable receipts, domain-aware orchestration. Three R's recovery contract: revalidate / rewind / redrive.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"ajv":"^8.18.0","minimatch":"^10.0.0","ajv-formats":"^3.0.1","better-sqlite3":"^12.11.1","@dogfood-lab/report":"^1.2.0","@dogfood-lab/schemas":"^1.2.0","@dogfood-lab/findings":"^1.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/dogfood-swarm_1.21.0_1790327133346_0.3050837588843134","host":"s3://npm-registry-packages-npm-production"}},"1.22.0":{"name":"@dogfood-lab/dogfood-swarm","version":"1.22.0","keywords":["testing-os","dogfood-lab","swarm","agent-protocol","audit","recovery","rewind","redrive","revalidate"],"author":{"name":"mcp-tool-shop"},"license":"MIT","_id":"@dogfood-lab/dogfood-swarm@1.22.0","maintainers":[{"name":"mikefrilot","email":"mikeyfrilot@gmail.com"}],"homepage":"https://github.com/dogfood-lab/testing-os","bugs":{"url":"https://github.com/dogfood-lab/testing-os/issues"},"bin":{"swarm":"cli.js"},"dist":{"shasum":"30b2ecb605d23906b08d3fa1960e970c8b03a04f","tarball":"https://registry.npmjs.org/@dogfood-lab/dogfood-swarm/-/dogfood-swarm-1.22.0.tgz","fileCount":93,"integrity":"sha512-jkTO6oVfR05wBuwsjDHcM5ChzJzUKGc2gG5YOU+5cKojvScA9eVgykFmAfTZEC/+pl/zlE7iu2Isa1WAv1R/tQ==","signatures":[{"sig":"MEUCIQC7DHo5lAVkHyl+1Dm5M+iovqNVPY5iW/jhGvhY8Dp/UQIgBFFR97jHJM5AXQkGo535vUn+8jslcY05LKWrzxWaqHI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCICWP5sNXU1HOrTLauUjKzCHvUVO+hyXqtYluMCOB8P0FAiEApenvuZacxMION5WkYX3FjiIeH6B079jAMe08ayzvocQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dogfood-lab%2fdogfood-swarm@1.22.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1800292},"main":"cli.js","type":"module","engines":{"node":">=22"},"exports":{".":"./cli.js","./lib/*":"./lib/*","./persist-results.js":"./persist-results.js"},"gitHead":"0871aa3312c2d122455f7f99d7ec2187682dd8c6","scripts":{"test":"node --test \"*.test.js\" \"lib/*.test.js\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4847da7f-112e-4b68-bb04-12ab0108da81"}},"repository":{"url":"git+https://github.com/dogfood-lab/testing-os.git","type":"git","directory":"packages/dogfood-swarm"},"_npmVersion":"11.5.1","description":"10-phase parallel-agent protocol runner for testing-os. SQLite-backed control plane, durable receipts, domain-aware orchestration. Three R's recovery contract: revalidate / rewind / redrive.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"ajv":"^8.18.0","minimatch":"^10.0.0","ajv-formats":"^3.0.1","better-sqlite3":"^12.11.1","@dogfood-lab/report":"^1.2.0","@dogfood-lab/schemas":"^1.2.0","@dogfood-lab/findings":"^1.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/dogfood-swarm_1.22.0_1790352912579_0.20676914060576346","host":"s3://npm-registry-packages-npm-production"}},"1.23.0":{"name":"@dogfood-lab/dogfood-swarm","version":"1.23.0","keywords":["testing-os","dogfood-lab","swarm","agent-protocol","audit","recovery","rewind","redrive","revalidate"],"author":{"name":"mcp-tool-shop"},"license":"MIT","_id":"@dogfood-lab/dogfood-swarm@1.23.0","maintainers":[{"name":"mikefrilot","email":"mikeyfrilot@gmail.com"}],"homepage":"https://github.com/dogfood-lab/testing-os","bugs":{"url":"https://github.com/dogfood-lab/testing-os/issues"},"bin":{"swarm":"cli.js"},"dist":{"shasum":"6b4c1b6ff537a0933253fad6767cd3591b878886","tarball":"https://registry.npmjs.org/@dogfood-lab/dogfood-swarm/-/dogfood-swarm-1.23.0.tgz","fileCount":93,"integrity":"sha512-3XFeeamSFyjGjFfrdL7e0nd5im4oE3qr5p6lfxU8i/HluyXbz3yTFZYTJC+8Nn/fqfWqb0Pm7oeFjSRKbibanA==","signatures":[{"sig":"MEUCIQCZrsWBWYINs4XDANsUK6ePr85qdVgYSGV6YHsbV5vD/gIgU818x9HhnzeAsdiIGwyRxIlIcffyk1gDhbW0ggJYKmc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCICHtxnjXTU4btXZhjkDrNxzUxAz9QNHn+BJcMlEo92h9AiBaH/LzPyNyqiDuBtlJQLA17wEYLxSSeWthltAGNvXE0A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dogfood-lab%2fdogfood-swarm@1.23.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1800292},"main":"cli.js","type":"module","engines":{"node":">=22"},"exports":{".":"./cli.js","./lib/*":"./lib/*","./persist-results.js":"./persist-results.js"},"gitHead":"73d302957fcfbf0e31ca6614894358230ce56339","scripts":{"test":"node --test \"*.test.js\" \"lib/*.test.js\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4847da7f-112e-4b68-bb04-12ab0108da81"}},"repository":{"url":"git+https://github.com/dogfood-lab/testing-os.git","type":"git","directory":"packages/dogfood-swarm"},"_npmVersion":"11.5.1","description":"10-phase parallel-agent protocol runner for testing-os. SQLite-backed control plane, durable receipts, domain-aware orchestration. Three R's recovery contract: revalidate / rewind / redrive.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"ajv":"^8.18.0","minimatch":"^10.0.0","ajv-formats":"^3.0.1","better-sqlite3":"^12.11.1","@dogfood-lab/report":"^1.2.0","@dogfood-lab/schemas":"^1.2.0","@dogfood-lab/findings":"^1.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/dogfood-swarm_1.23.0_1790433760235_0.49497850976646984","host":"s3://npm-registry-packages-npm-production"}},"1.23.4":{"name":"@dogfood-lab/dogfood-swarm","version":"1.23.4","keywords":["testing-os","dogfood-lab","swarm","agent-protocol","audit","recovery","rewind","redrive","revalidate"],"author":{"name":"mcp-tool-shop"},"license":"MIT","_id":"@dogfood-lab/dogfood-swarm@1.23.4","maintainers":[{"name":"mikefrilot","email":"mikeyfrilot@gmail.com"}],"homepage":"https://github.com/dogfood-lab/testing-os","bugs":{"url":"https://github.com/dogfood-lab/testing-os/issues"},"bin":{"swarm":"cli.js"},"dist":{"shasum":"a27f33d4a00a9d3d5d50d9854409047b4d62c476","tarball":"https://registry.npmjs.org/@dogfood-lab/dogfood-swarm/-/dogfood-swarm-1.23.4.tgz","fileCount":93,"integrity":"sha512-GALVvIrz9LCQ+fJl5uapFY+h43rOt5k2Pc3MTF01f3E/5bYvlALvbc5i7NMzEj4yie1v6uSMFG0hmK1Sd8zIeA==","signatures":[{"sig":"MEUCIFrHqYMJKTZmjmXWNrGJYVQNZmzvVi/hh1gacQ905ZH1AiEAgCTH2t53O1EzPWDI4tbOleOFqvhUk9hjNPEtHgENX8w=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIHV+7Iv3sph8yG6McItjHHXhRuqXV6Jg2nhOcfuJ1VPOAiEAgr95iwnzQkAMFqYK5oUwsFDZc+J3+F9CYM6bOWnTKxg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dogfood-lab%2fdogfood-swarm@1.23.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1800292},"main":"cli.js","type":"module","engines":{"node":">=22"},"exports":{".":"./cli.js","./lib/*":"./lib/*","./persist-results.js":"./persist-results.js"},"gitHead":"bb0da47e72e2d9e470c41a18ccbde88a47162c9d","scripts":{"test":"node --test \"*.test.js\" \"lib/*.test.js\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4847da7f-112e-4b68-bb04-12ab0108da81"}},"repository":{"url":"git+https://github.com/dogfood-lab/testing-os.git","type":"git","directory":"packages/dogfood-swarm"},"_npmVersion":"11.5.1","description":"10-phase parallel-agent protocol runner for testing-os. SQLite-backed control plane, durable receipts, domain-aware orchestration. Three R's recovery contract: revalidate / rewind / redrive.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"ajv":"^8.18.0","minimatch":"^10.0.0","ajv-formats":"^3.0.1","better-sqlite3":"^12.11.1","@dogfood-lab/report":"^1.2.0","@dogfood-lab/schemas":"^1.2.0","@dogfood-lab/findings":"^1.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/dogfood-swarm_1.23.4_1790464554197_0.43553112937927496","host":"s3://npm-registry-packages-npm-production"}},"1.23.5":{"name":"@dogfood-lab/dogfood-swarm","version":"1.23.5","keywords":["testing-os","dogfood-lab","swarm","agent-protocol","audit","recovery","rewind","redrive","revalidate"],"author":{"name":"mcp-tool-shop"},"license":"MIT","_id":"@dogfood-lab/dogfood-swarm@1.23.5","maintainers":[{"name":"mikefrilot","email":"mikeyfrilot@gmail.com"}],"homepage":"https://github.com/dogfood-lab/testing-os","bugs":{"url":"https://github.com/dogfood-lab/testing-os/issues"},"bin":{"swarm":"cli.js"},"dist":{"shasum":"3f119ab4ba744bc13df836dcd6c48270aee66e06","tarball":"https://registry.npmjs.org/@dogfood-lab/dogfood-swarm/-/dogfood-swarm-1.23.5.tgz","fileCount":93,"integrity":"sha512-SMsfyDl8awDo0US1gIOc6i2+SRDicGswgVEjUeyYztrL50PNFDflVWcc0c8CRIrteO6jMd2Sz42as+wwOJOSgg==","signatures":[{"sig":"MEQCIBz8I8IbKRQIz2KZv5OQUbrnkFDHkxWSf58Ikw1pUs3DAiBDeFMVNPizhhdRy65YnbSz1ZOz7Mh6YrYXRiiQn0BW5A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDfpf3L+C1cnoFwdcoIJAE2HJIfHgdEg+0SdycIsvZWPAIhAM2ya823YLBrVQMrBpVgzJniveIh7+vOcM+EdZVYxnd6","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dogfood-lab%2fdogfood-swarm@1.23.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1800377},"main":"cli.js","type":"module","engines":{"node":">=22"},"exports":{".":"./cli.js","./lib/*":"./lib/*","./persist-results.js":"./persist-results.js"},"gitHead":"29fbe4c4a3fba2f488be40cc054d540ac2267aa5","scripts":{"test":"node --test \"*.test.js\" \"lib/*.test.js\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"4847da7f-112e-4b68-bb04-12ab0108da81"}},"repository":{"url":"git+https://github.com/dogfood-lab/testing-os.git","type":"git","directory":"packages/dogfood-swarm"},"_npmVersion":"11.5.1","description":"10-phase parallel-agent protocol runner for testing-os. SQLite-backed control plane, durable receipts, domain-aware orchestration. Three R's recovery contract: revalidate / rewind / redrive.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"ajv":"^8.18.0","minimatch":"^10.0.0","ajv-formats":"^3.0.1","better-sqlite3":"^12.11.1","@dogfood-lab/report":"^1.2.0","@dogfood-lab/schemas":"^1.2.0","@dogfood-lab/findings":"^1.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/dogfood-swarm_1.23.5_1790731377939_0.12603200215111543","host":"s3://npm-registry-packages-npm-production"}},"1.24.0":{"name":"@dogfood-lab/dogfood-swarm","version":"1.24.0","keywords":["testing-os","dogfood-lab","swarm","agent-protocol","audit","recovery","rewind","redrive","revalidate"],"author":{"name":"mcp-tool-shop"},"license":"MIT","_id":"@dogfood-lab/dogfood-swarm@1.24.0","maintainers":[{"name":"mikefrilot","email":"mikeyfrilot@gmail.com"}],"homepage":"https://github.com/dogfood-lab/testing-os","bugs":{"url":"https://github.com/dogfood-lab/testing-os/issues"},"bin":{"swarm":"cli.js"},"dist":{"shasum":"148435ac59a97f99f6e2fc7a9b0cc21ece661ae5","tarball":"https://registry.npmjs.org/@dogfood-lab/dogfood-swarm/-/dogfood-swarm-1.24.0.tgz","fileCount":93,"integrity":"sha512-X3MOxxhWHj4F9Tjr8eJqt73jtpo/ArG3d0nvT8lhstk+RixgjA2mUJ1mCqK6qvtMyYekpmVJ6U8/b9fydJtbQg==","signatures":[{"sig":"MEUCIQCqHSFqcaVQVkDUkBT/8gp8nSCsXm04nuHyEalK1bTuXAIgAJx7NnzlqUYahxxf7GoH0OEVYJZMmLnTdVOpRT6uqR4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDnhqsStOwYcVt8rVhdoFAjsmx8GMc5CGd++/pOin6YzwIhAPBatu+2kmBKROkg8FrJ+No7JBFMXeqLB84r7kbEjhfu","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dogfood-lab%2fdogfood-swarm@1.24.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1800377},"main":"cli.js","type":"module","engines":{"node":">=22"},"exports":{".":"./cli.js","./lib/*":"./lib/*","./persist-results.js":"./persist-results.js"},"gitHead":"4655baf736718668b774ed2de69e76c6e1d0dbcc","scripts":{"test":"node --test \"*.test.js\" \"lib/*.test.js\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"4847da7f-112e-4b68-bb04-12ab0108da81"}},"repository":{"url":"git+https://github.com/dogfood-lab/testing-os.git","type":"git","directory":"packages/dogfood-swarm"},"_npmVersion":"11.5.1","description":"10-phase parallel-agent protocol runner for testing-os. SQLite-backed control plane, durable receipts, domain-aware orchestration. Three R's recovery contract: revalidate / rewind / redrive.","directories":{},"_nodeVersion":"22.23.3","dependencies":{"ajv":"^8.18.0","minimatch":"^10.0.0","ajv-formats":"^3.0.1","better-sqlite3":"^12.11.1","@dogfood-lab/report":"^1.2.0","@dogfood-lab/schemas":"^1.2.0","@dogfood-lab/findings":"^1.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/dogfood-swarm_1.24.0_1790794313916_0.6732130569046977","host":"s3://npm-registry-packages-npm-production"}},"1.25.0":{"name":"@dogfood-lab/dogfood-swarm","version":"1.25.0","keywords":["testing-os","dogfood-lab","swarm","agent-protocol","audit","recovery","rewind","redrive","revalidate"],"author":{"name":"mcp-tool-shop"},"license":"MIT","_id":"@dogfood-lab/dogfood-swarm@1.25.0","maintainers":[{"name":"mikefrilot","email":"mikeyfrilot@gmail.com"}],"homepage":"https://github.com/dogfood-lab/testing-os","bugs":{"url":"https://github.com/dogfood-lab/testing-os/issues"},"bin":{"swarm":"cli.js"},"dist":{"shasum":"8e0859cec0d1441bee99c4c1bcb8dfbcb4b15197","tarball":"https://registry.npmjs.org/@dogfood-lab/dogfood-swarm/-/dogfood-swarm-1.25.0.tgz","fileCount":93,"integrity":"sha512-YziZctOAj1zC1vdB+fyegivaY0LH39Vm+v9mGIv+g7syXkEOMqnUbS0CgB0u0iYtVjCkoAVbVYUopKHCvzqYKg==","signatures":[{"sig":"MEQCIEk1Otop/5ukJOk7TRk6ews10GhbHnxj/IH7o88VlwnbAiBlSYL/RgCIhXqMC/vRrINmqnATF76ac1BVs3owWfDi8A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIC9bC0KwXUmkGOsnphgT5Wv1XlavxW8jofEj72abSehsAiEAhUJN2moxWB6cLt+GHf5osypNn9FOM6+JBMacxYiwlHI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dogfood-lab%2fdogfood-swarm@1.25.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1800421},"main":"cli.js","type":"module","engines":{"node":">=22"},"exports":{".":"./cli.js","./lib/*":"./lib/*","./persist-results.js":"./persist-results.js"},"gitHead":"c633fa86d7f2b8f7df7f7f83998bcb2d0637e175","scripts":{"test":"node --test --import=../../scripts/lib/git-test-env.mjs \"*.test.js\" \"lib/*.test.js\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"4847da7f-112e-4b68-bb04-12ab0108da81"}},"repository":{"url":"git+https://github.com/dogfood-lab/testing-os.git","type":"git","directory":"packages/dogfood-swarm"},"_npmVersion":"11.5.1","description":"10-phase parallel-agent protocol runner for testing-os. SQLite-backed control plane, durable receipts, domain-aware orchestration. Three R's recovery contract: revalidate / rewind / redrive.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"ajv":"^8.18.0","minimatch":"^10.0.0","ajv-formats":"^3.0.1","better-sqlite3":"^12.11.1","@dogfood-lab/report":"^1.2.0","@dogfood-lab/schemas":"^1.2.0","@dogfood-lab/findings":"^1.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/dogfood-swarm_1.25.0_1790818628852_0.40692644370502884","host":"s3://npm-registry-packages-npm-production"}},"1.26.0":{"_id":"@dogfood-lab/dogfood-swarm@1.26.0","bin":{"swarm":"cli.js"},"bugs":{"url":"https://github.com/dogfood-lab/testing-os/issues"},"dist":{"shasum":"37e19f28db51d7b0cac6dbb6dfbf5f9beb29224f","tarball":"https://registry.npmjs.org/@dogfood-lab/dogfood-swarm/-/dogfood-swarm-1.26.0.tgz","fileCount":93,"integrity":"sha512-jXNA4T5ejNKJ+HNMjOyk/5EQLvqSdRaVT7ts9WhEn0f3WafwP7DDX1yaY2I5QDvcdvCbDNu3+AB4FQDkX/Sc5Q==","signatures":[{"sig":"MEUCIQD5cx12hXleaQyAFGJXoBqynocFDAUJjRxKePiwgtkzNAIgR5DqKTMhFbQCHu4zF+wCkfjG+ohaS/7EMQ74EcfeQH0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIA/ttZYnHWGui07f//s7tif0gM77YF307kDQpM5J03SeAiBkydLI8mXCXX4aBr9NwBmwlX+347tWOrV7ntZ42pjgNA=="}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dogfood-lab%2fdogfood-swarm@1.26.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1800421},"main":"cli.js","name":"@dogfood-lab/dogfood-swarm","type":"module","author":{"name":"mcp-tool-shop"},"engines":{"node":">=22"},"exports":{".":"./cli.js","./lib/*":"./lib/*","./persist-results.js":"./persist-results.js"},"gitHead":"437109e2c36bfad17960d438023359e2aa98dc9b","license":"MIT","scripts":{"test":"node --test --import=../../scripts/lib/git-test-env.mjs \"*.test.js\" \"lib/*.test.js\""},"version":"1.26.0","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"4847da7f-112e-4b68-bb04-12ab0108da81"}},"homepage":"https://github.com/dogfood-lab/testing-os","keywords":["testing-os","dogfood-lab","swarm","agent-protocol","audit","recovery","rewind","redrive","revalidate"],"repository":{"url":"git+https://github.com/dogfood-lab/testing-os.git","type":"git","directory":"packages/dogfood-swarm"},"_npmVersion":"11.5.1","description":"10-phase parallel-agent protocol runner for testing-os. SQLite-backed control plane, durable receipts, domain-aware orchestration. Three R's recovery contract: revalidate / rewind / redrive.","directories":{},"maintainers":[{"name":"mikefrilot","email":"mikeyfrilot@gmail.com"}],"_nodeVersion":"22.23.2","dependencies":{"ajv":"^8.18.0","minimatch":"^10.0.0","ajv-formats":"^3.0.1","better-sqlite3":"^12.11.1","@dogfood-lab/report":"^1.2.0","@dogfood-lab/schemas":"^1.2.0","@dogfood-lab/findings":"^1.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/dogfood-swarm_1.26.0_1790843346954_0.8435840015754961"}}},"time":{"created":"2026-05-14T15:15:53.658Z","modified":"2026-10-01T08:29:07.449Z","1.2.1":"2026-05-14T15:15:54.048Z","1.2.2":"2026-05-14T17:27:27.293Z","1.2.3":"2026-05-21T03:41:19.734Z","1.3.0":"2026-06-01T05:39:48.330Z","1.3.1":"2026-06-01T07:37:59.640Z","1.3.2":"2026-06-02T21:13:15.616Z","1.4.0":"2026-06-13T15:44:51.167Z","1.5.0":"2026-06-22T02:22:48.751Z","1.6.0":"2026-06-30T01:32:03.540Z","1.7.0":"2026-06-30T04:24:11.296Z","1.8.0":"2026-06-30T05:29:11.675Z","1.9.0":"2026-07-03T06:10:07.359Z","1.10.0":"2026-07-17T19:38:27.767Z","1.11.0":"2026-08-26T05:35:52.544Z","1.12.0":"2026-09-06T22:48:12.945Z","1.13.0":"2026-09-23T02:35:57.176Z","1.14.0":"2026-09-23T14:00:54.930Z","1.15.0":"2026-09-23T21:09:57.024Z","1.16.0":"2026-09-24T01:57:16.361Z","1.17.0":"2026-09-24T08:25:44.638Z","1.18.0":"2026-09-24T18:07:44.153Z","1.19.0":"2026-09-24T21:30:42.343Z","1.20.0":"2026-09-25T01:59:58.504Z","1.21.0":"2026-09-25T09:05:33.514Z","1.22.0":"2026-09-25T16:15:12.686Z","1.23.0":"2026-09-26T14:42:40.331Z","1.23.4":"2026-09-26T23:15:54.306Z","1.23.5":"2026-09-30T01:22:58.075Z","1.24.0":"2026-09-30T18:51:54.046Z","1.25.0":"2026-10-01T01:37:08.979Z","1.26.0":"2026-10-01T08:29:07.074Z"},"bugs":{"url":"https://github.com/dogfood-lab/testing-os/issues"},"author":{"name":"mcp-tool-shop"},"license":"MIT","homepage":"https://github.com/dogfood-lab/testing-os","keywords":["testing-os","dogfood-lab","swarm","agent-protocol","audit","recovery","rewind","redrive","revalidate"],"repository":{"url":"git+https://github.com/dogfood-lab/testing-os.git","type":"git","directory":"packages/dogfood-swarm"},"description":"10-phase parallel-agent protocol runner for testing-os. SQLite-backed control plane, durable receipts, domain-aware orchestration. Three R's recovery contract: revalidate / rewind / redrive.","maintainers":[{"name":"mikefrilot","email":"mikeyfrilot@gmail.com"}],"readme":"<p align=\"center\">\n  <a href=\"https://github.com/dogfood-lab/testing-os\">\n    <img src=\"https://raw.githubusercontent.com/dogfood-lab/testing-os/main/assets/logo.png\" alt=\"testing-os\" width=\"280\">\n  </a>\n</p>\n\n# @dogfood-lab/dogfood-swarm\n\n> 10-phase parallel-agent protocol runner for testing-os. SQLite-backed control plane, durable receipts, domain-aware orchestration. Three R's recovery contract: `revalidate` / `rewind` / `redrive`.\n\nPart of the [`testing-os`](https://github.com/dogfood-lab/testing-os) monorepo — the operating system for testing in the AI era.\n\nThe `swarm` CLI runs parallel-agent audits against a codebase. Each wave dispatches multiple agents under exclusive file ownership, collects their outputs through the verifier, and persists durable receipts to a SQLite control plane. The wave-level and agent-level state machines surface every status transition as an auditable event; the recovery verbs (`revalidate`, `rewind`, `redrive`) handle wave failures lawfully without raw SQL surgery.\n\n## Install\n\n```bash\nnpm install -g @dogfood-lab/dogfood-swarm\n```\n\nBinary: `swarm`. Requires Node ≥ 22.\n\n## Quick start\n\n```bash\n# Initialize a swarm run — drafts domains from the Atlas map when there is one, else detects them; records a save-point\nswarm init <repo-path>\n\n# Review the detected domain draft, then freeze it (dispatch refuses\n# to run until the domain map is frozen)\nswarm domains <run-id> --freeze\n\n# Dispatch a wave for a named phase (NOT a wave number — phase names below)\nswarm dispatch <run-id> <phase>\n\n# (Agents execute externally — e.g., parallel Claude sessions — and write\n#  their outputs to swarms/<run-id>/wave-N/<domain>/output.json)\n\n# Collect outputs through the verifier — one --domain per dispatched agent\nswarm collect <run-id> \\\n  --domain=backend:swarms/<run-id>/wave-N/backend/output.json \\\n  --domain=tests:swarms/<run-id>/wave-N/tests/output.json\n\n# Inspect current wave + agent state\nswarm status <run-id>\n\n# Preflight the environment before dispatching (read-only checks)\nswarm doctor\n\n# Same status as a structured object for machine consumers / scripts\nswarm status <run-id> --format=json\n\n# List all runs (text), or as a JSON array of per-run rollups\nswarm runs\nswarm runs --format=json\n\n# Inspect wave transition history (full audit chain)\nswarm history <wave-id>\n\n# Generate per-wave receipt artifact\nswarm receipt <run-id>\n\n# Approve findings so the next amend phase routes them to agents\n# (or close them without a fix — see Finding disposition)\nswarm approve <run-id> --all\n\n# Hand a case-file to the cross-family jury — advisory evidence for the\n# advance gate. Free local seats by default.\nswarm adjudicate <run-id> --case-file <path>\n\n# The stronger per-criterion tier (slower, more abstention-prone)\nswarm adjudicate <run-id> --case-file <path> --jury=prism\n\n# Advance to the next phase once gates pass\nswarm advance <run-id>\n```\n\n### Collecting outputs — `--all` vs explicit `--domain`\n\n`swarm collect` needs one agent-output path per dispatched domain. You can\nhand-type them, or let `--all` auto-discover them from the deterministic\ndispatch layout (`swarms/<run-id>/wave-N/<domain>/output.json`):\n\n```text\n# Auto-discover the latest dispatched wave's agent outputs\nswarm collect <run-id> --all\n\n# Equivalent explicit form (--all expands to this)\nswarm collect <run-id> \\\n  --domain=backend:swarms/<run-id>/wave-N/backend/output.json \\\n  --domain=tests:swarms/<run-id>/wave-N/tests/output.json\n```\n\n`--all` reads the latest dispatched wave from the control plane and resolves\neach dispatched domain's expected output path. A domain whose output file is\n**missing** is a non-fatal warning — collect proceeds with the present ones,\nand the absent agent is reported `failed` (re-run it, or supply its path with\n`--domain`). `--all` and explicit `--domain` are **mutually exclusive**: pass\na `--domain` and it overrides `--all` (the manual path stays unchanged).\n\n### Preflight — `swarm doctor`\n\nBefore a real dispatch, `swarm doctor` runs cheap **read-only** environment\nchecks and prints a structured pass/warn/fail report:\n\n```bash\nswarm doctor\n```\n\nIt verifies Node ≥ 22 (the `engines.node` floor), that the control-plane\ndirectory is writable **and** hardlink-capable (the cross-process file lock\nuses `link(2)`, which exFAT/FAT32 do not support — the documented FS trap),\nand that the on-disk `control-plane.db` schema is not newer than this build.\nIt exits non-zero **only** on a hard FAIL; warnings exit `0`.\n\nEvery other verb is scoped to a single run. `swarm trends` is the one\n**cross-run** verb — it reads the data the control plane accumulates across\nruns (content-addressed finding fingerprints, per-run rollups) and answers\n\"what keeps coming back?\" Pick a query with `--query`, optionally `--format=json`:\n\n```bash\n# Findings whose fingerprint was seen in more than one run (a fix that\n# regressed, or a defect class the swarm keeps re-discovering)\nswarm trends --query recurring\n\n# Per-run history, newest first — optionally filtered by repo substring\nswarm trends --query history --repo my-repo\n\n# Recurrence-rate stats over the run population (optional trailing window)\nswarm trends --query recurrence --window-days 30 --format=json\n```\n\n`<phase>` is a named phase, not a wave number. The valid values are:\n`health-audit-a`, `health-audit-b`, `health-audit-c`, `stage-d-audit`,\n`feature-audit` (audit phases) and `health-amend-a`, `health-amend-b`,\n`health-amend-c`, `stage-d-amend`, `feature-execute` (amend phases). Run\n`swarm dispatch --help` for the same list.\n\n## Recovery — the Three R's\n\n| Verb | When to use | Behavior |\n|---|---|---|\n| `swarm revalidate` | Agents wrote `invalid_output` — schema mismatch, validator rejection | Repairs in place; transitions agent_runs out of BLOCKED status via override (with operator `--reason`); wave-level rollback if all 4 agents repaired |\n| `swarm rewind` | Wave needs full restart from a save-point; tree state needs reset | Restores tree via `git reset --hard <tag>`; lawfully aborts orphaned in-flight runs to terminal `aborted_for_rewind`; preserves audit chain (append-only) |\n| `swarm redrive` | Some agents failed, others completed; want to resume the failing tail without re-running completed work | Same `wave_id`, completed receipts preserved byte-identical, only failed/pending agents made re-dispatchable |\n\nAll three recovery verbs share the same operator-safety contract:\n\n- **Dry-run by default** — `--apply` required to mutate\n- **`--reason \"<text>\"` required, non-empty** — recorded in `wave_state_events` / `agent_state_events` with a verb-specific prefix (`revalidate:` / `rewind:` / `redrive:`)\n- **Zero raw SQL on `agent_runs.status` or `waves.status`** — every state mutation routes through `transitionAgent` / `transitionWave`; static-scan guard test (Pattern #10) blocks regressions\n\nExample session:\n\n```bash\n# Failed wave needs schema-mismatch repair (re-supply the agent's output path)\nswarm revalidate <run-id> --reason \"wave-2 schema mismatch corrected\" \\\n  --domain=backend:swarms/<run-id>/wave-2/backend/output.json --apply\n\n# Wedged wave — restart from save-point tag\nswarm rewind <save-point-tag> --reason \"rolling back wedged amend wave\" --apply\n\n# Transient infra failure — resume only the failed agents\nswarm redrive <wave-id> --reason \"GitHub API outage retry\" --apply\n\n# Audit the full transition chain for any wave\nswarm history <wave-id>\n```\n\n### Reclaiming stranded worktrees — `swarm clean`\n\nUnder `--isolate` each agent works in its own git worktree, torn down when the run reaches its terminal `complete` transition. A run abandoned, rewound, or interrupted before `complete` strands those worktrees on disk. `swarm clean` is the operator reclaim — dry-run by default, like the Three R's:\n\n```bash\n# Preview the stranded worktrees + swarm/* branches for a run\nswarm clean <run-id>\n\n# Remove them\nswarm clean <run-id> --apply\n```\n\n### Cleaning phantom violation claims — `swarm clean-claims`\n\nA corrected pass (a `revalidate` repair, a fixed diff base) supersedes an earlier pass's `violation=1` file_claims rows — but once the wave is **terminal** (`advanced` / `aborted_for_rewind`), no lawful verb can revisit them: `collect` needs a `dispatched` wave, `revalidate` only repairs blocked agents on the run's latest wave, and `redrive` refuses terminal waves. The stranded rows corrupt `swarm status`'s violation count and every exported receipt for that wave. `swarm clean-claims` is the lawful reclaim: file_claims rows are *claims about what a pass observed*, not audit events — deleting a superseded claim is the lawful write, and the `agent_state_events` audit trail is never touched (the dry-run shows it as the evidence that supersedes each row).\n\n```bash\n# Preview the phantom rows + the state-event evidence that supersedes them\nswarm clean-claims <run-id>\n\n# Delete them (scoped to wave 4), with a restorable domain_events audit row\nswarm clean-claims <run-id> --wave=4 --apply --reason \"broken diff base superseded\"\n```\n\nRows on non-terminal waves are refused with the verb that still owns them; `violation=0` rows and other runs' rows are never touched (re-verified inside the delete transaction — a violated invariant rolls everything back).\n\n## Exit codes\n\nThe verbs designed to gate CI propagate a machine-readable exit code, not just human-readable stdout. Wire these into a workflow step or a `&&` chain and the gate fails closed:\n\n| Verb | Exit code contract |\n|---|---|\n| `swarm verify` | `0` **only** when the verdict is `pass`; `1` for every other verdict (`fail`, `skip`, `no_tests`, `tool_missing`). Each non-pass verdict is \"not a verified pass\" — see [Verify verdicts](#verify-verdicts) — so the machine signal matches the human one and a CI `&&` chain fails closed (a `no_tests` or `tool_missing` never reads as success). |\n| `swarm verify-fixed` | `0` clean / `1` threshold exceeded (`regressed + claimed-but-still-present > --threshold`, default 0) / `2` audit pipeline broken |\n| `swarm verify-recurring` | `0` / `1` / `2` (same 3-way contract as `verify-fixed`) |\n| `swarm verify-unverified` | `0` / `1` / `2` (same 3-way contract) |\n| `swarm verify-approved` | `0` / `1` / `2` — exit `2` (broken finding anchor) is the pre-amend gate that blocks subsequent `swarm dispatch` of an amend phase |\n| `swarm adjudicate` | `0` **only** when the overall jury verdict is `corroborate`; `1` for every other verdict (`refute`, `contested`, `insufficient_context`) — the same pass-only-exit-0 contract as `swarm verify`, so a CI `&&` chain fails closed. The verdict is **advisory**, and this exit code is not the wave gate: what a non-corroborate blocks is the adjudication gate in `swarm advance`, which is Director-overridable. See [Adjudication](#adjudication). |\n| `swarm findings` | `0` clean / `1` findings present / `2` audit pipeline broken |\n| `swarm persist --ingest` | `0` when the dogfood ingest succeeded (or was a `--dry-run`); `1` when the ingest failed. A bare `swarm persist` with no `--ingest` exits `0`. |\n\nAny command also exits `1` on a structured operator error (the typed `code` / `message` / `Next:` envelope). Exit `2` is reserved for the \"pipeline broken\" case on the verbs above so a CI gate can tell *findings/regressions exist* (1) apart from *the audit itself could not run* (2).\n\n## Troubleshooting — when a wave fails\n\nEvery command emits its stage transitions as **NDJSON on stderr**, so the first move in an incident is to capture that forensic stream and read it back:\n\n```bash\nswarm collect <run-id> \\\n  --domain=backend:swarms/<run-id>/wave-N/backend/output.json 2>collect.ndjson\ngrep '\"stage\"' collect.ndjson   # the ordered chain of what happened, with codes\n```\n\nThen map the symptom to the recovery verb:\n\n| Symptom | What it means | Recovery |\n|---|---|---|\n| `collect` failed mid-upsert (`COLLECT_UPSERT_FAILED`) | One agent's output failed validation or the merge transaction aborted; the wave is `failed`. | `swarm revalidate <run-id> --reason \"...\" --domain=name:path --apply` — re-runs the same validators on the re-supplied output, and on pass flips the wave back to `collected` in one transaction. |\n| Wave stuck in `dispatched` — never reached `collected` | Agents didn't all finish, or the run was interrupted before `collect`. | First look, don't act: `swarm status <run-id>` marks overdue agents `[STALE]`, and `swarm resume <run-id> --dry-run` reports exactly what a resume would time out and redispatch — both write nothing. Then `swarm resume <run-id>` to re-dispatch the incomplete agents; or `swarm redrive <wave-id> --reason \"...\" --apply` to resume only the failed/unstarted tail while preserving completed receipts byte-identical. |\n| Agents look stuck and you want to know if they're alive | `swarm resume` is **not** a liveness probe — applying the timeout policy transitions overdue agents to `timed_out`, which redispatches them. Asking the question mutates the answer. | `swarm status <run-id>` (overdue rows render `[STALE — past timeout policy]`) or `swarm resume <run-id> --dry-run`. Both share the same timeout predicate as the mutating pass, so a preview cannot disagree with the outcome. |\n| Agents `BLOCKED` (`invalid_output` / `ownership_violation`) | Schema mismatch, or an agent wrote outside its frozen domain. | `invalid_output` → `swarm revalidate`. `ownership_violation` → extend the domain via `swarm domains --unfreeze … --edit … --freeze`, then `swarm revalidate`. |\n| Wave wedged — tree state needs a full reset | The working tree drifted and the wave must restart from a save-point. | `swarm rewind <save-point-tag> --reason \"...\" --apply` — `git reset --hard <tag>` plus lawful abort of orphaned in-flight runs, audit chain preserved. |\n| `swarm status` / `swarm receipt` report violations on a wave that already **advanced** clean | Stale `violation=1` file_claims from a superseded pass (a revalidate repair or corrected diff base) stranded on a terminal wave — collect/revalidate/redrive can no longer reach them. | `swarm clean-claims <run-id>` to preview the phantom rows + superseding evidence, then `--apply --reason \"...\"` to delete them with a restorable `domain_events` audit row. |\n\nMost recovery verbs — `revalidate`, `rewind`, `redrive`, `clean`, `clean-claims` — are **dry-run by default**: run them without `--apply` first to preview the transitions, then add `--apply`.\n\n**`resume` is the exception, and it is the one that catches people.** It mutates by default and has no `--apply` gate, because redispatching is its whole job. Preview it with `swarm resume <run-id> --dry-run` (opt-in, not the default — flipping the default would silently break every script that already calls the bare verb expecting it to act).\n\nThe wave moves with the agents. When `resume` redispatches at least one agent on a wave that is not already `dispatched` — a `failed` wave, most often — it returns the wave to `dispatched` in the same transaction, audited in `wave_state_events` with a `resume:` reason. That is what makes its own closing instruction (\"run the redispatched agent(s), then `swarm collect`\") true, since `collect` requires a `dispatched` wave. A resume that redispatches nothing leaves the wave exactly as it found it.\n\nEvery error carries a typed `code` and a `Next:` hint; the full table is in the handbook.\n\n📖 Deeper incident docs: **[Recovery](https://dogfood-lab.github.io/testing-os/handbook/recovery/)** · **[Error codes](https://dogfood-lab.github.io/testing-os/handbook/error-codes/)**\n\n## State machines\n\nTwo parallel state machines:\n\n- **Agent runs** (`lib/state-machine.js`): `pending → dispatched → running → complete | failed | timed_out | invalid_output | ownership_violation | aborted_for_rewind`\n- **Waves** (`lib/wave-state-machine.js`): `dispatched → collected → verified → advanced | failed | aborted_for_rewind`\n\nDiscipline:\n\n- **Terminal statuses** (`complete`, `advanced`, `aborted_for_rewind`) cannot be transitioned out of — not even with `override=true`.\n- **BLOCKED statuses** (`failed`, `invalid_output`, `ownership_violation`) require explicit `override=true` + non-empty `reason` to transition out.\n- Every transition lands in `wave_state_events` / `agent_state_events` **atomically** with the underlying status mutation, inside the same SQLite transaction.\n\n## Verify verdicts\n\n`swarm verify <run-id>` runs the build-verification adapter and prints `Verification: <VERDICT>`. Only `pass` advances the wave to `verified` — the other four verdicts are deliberately distinct so a no-op never masquerades as a clean pass:\n\n| Verdict | Means | Advances the wave? |\n|---|---|---|\n| `pass` | Every required step ran and passed. | Yes |\n| `fail` | A required step ran and failed — the code is broken. | No |\n| `skip` | No required steps ran (every step was optional or filtered away). Nothing was verified. | No |\n| `no_tests` | The repo has no `test` script; `npm test --if-present` ran zero tests. **Not** a verified pass — supply a real test command via a step override or pick an explicit `--adapter`. | No |\n| `tool_missing` | A required tool (e.g. `npm`, `npx`) is absent from `PATH`, so verification could not run in this environment. **Not** a failure of the code under test — install the tool or run on a host that has it. | No |\n\n`no_tests` and `tool_missing` exist precisely so the wave gate stays honest: it refuses to advance without positive evidence, but it does not falsely report `FAIL` when the cause is a missing test script or a missing build tool rather than a real regression.\n\n## Adjudication\n\n`swarm adjudicate <run-id> --case-file <path>` hands a neutral case-file to a jury of **non-Claude** models and fuses their per-criterion answers into one overall verdict. The panel is family-different by construction — the crew that produces the work under test is Claude-family, so only a non-Claude jury is an independent check, and the producing family never holds a seat.\n\nTwo tiers sit behind the same boundary:\n\n- **`--jury=local`** (default) — one model call per seat, over all criteria. Free, fast, family-diverse.\n- **`--jury=prism`** — one prism verification *per criterion* (four decorrelated lenses, with collapse-refusal). Stronger per-criterion evidence, bought with wall clock and a higher abstention rate.\n\n`--cloud` opts either tier into the paid cloud seats. `PRISM_PYTHON` selects the interpreter that runs the prism seat shim — see [Environment variables](#environment-variables).\n\nThe verdict is **evidence, not law**:\n\n| Overall | Means | `swarm advance` gate |\n|---|---|---|\n| `corroborate` | The panel agrees the artifact meets its criteria. | Passes |\n| `refute` | The panel decided a criterion is unmet. | Blocks — overridable |\n| `contested` | The panel split. Genuine disagreement, surfaced rather than averaged away. | Blocks — overridable |\n| `insufficient_context` | The panel could not reach quorum — a gap in the brief to fill, **not** a fail. | Blocks — overridable |\n\nOnly the deterministic floor (`swarm verify` — the real tests, plus the `atlas-check` step and the structural delta in a repository with an Atlas map) is law. A delta that adds an import between parts, closes a cycle, or adds a writer to a place blocks `swarm advance` on the `atlas_delta` gate until a person disposes of it with `--override --reason`. A `corroborate` does not advance a wave on its own; a wave that never ran the jury advances on the floor plus findings; and a non-corroborate blocks *overridably*, requiring a Director disposition (`swarm advance --override --reason \"...\"`) so the verdict is consciously dispositioned rather than silently rolled past.\n\n📖 Both tiers side by side, the honest boundary of the prism tier, and the case-file neutrality rules: **[The two jury tiers](https://github.com/dogfood-lab/testing-os/blob/main/docs/case-file-contract.md#the-two-jury-tiers)**\n\n## Finding disposition\n\nAn open `CRITICAL` or `HIGH` finding blocks the severity gate on the finding-gated phases (`health-audit-a`, `health-audit-b`, `health-audit-c`, `stage-d-audit`) until it reaches a closed status: `fixed`, `deferred`, or `rejected`. Lower severities never block that gate — a `MEDIUM` or `LOW` can stay open across an advance.\n\nThree verbs act on an open finding:\n\n| Verb | What it does | Closes the finding? |\n|---|---|---|\n| `swarm approve` | Routes it to the next amend phase for an agent to fix. | Not by itself — the amend's fix is what marks it `fixed` |\n| `swarm defer` | Accepted and postponed: a real defect, but not this wave. | Yes, without a fix |\n| `swarm reject` | Not a defect: the finding itself is wrong. | Yes, without a fix |\n\n\"The amend's fix is what marks it `fixed`\" is mechanical, not aspirational: when `swarm collect` accepts an amend agent as `complete`, the agent's `fixes[]` declarations close the approved findings they name — status `fixed`, `closure_kind='declared'`, `verified_how='self_attested'`, one `finding_events` row naming the wave, the agent, and the declaring domain (observed missing in run swarm-1784601601-bd4a, where amended findings stayed `approved` forever and later audit lenses swept them to `unverified`). The declaration is gated by the same one-rule authority as routing and vouching: only `approved` findings the declaring domain owns (glob match on the file, `filed_by_domain` for file-less rows) can close; unknown, unowned, and non-approved ids are skipped loudly on the collect report. The closure is self-attested by design — `swarm verify-fixed` is the independent pass that audits every `fixed` row afterwards.\n\n```bash\n# Approve every open finding, or a subset by id\nswarm approve <run-id> --all\nswarm approve <run-id> --ids F-001,F-002\n\n# Close without a fix — targeted only, --reason required\nswarm defer <run-id> --ids F-001,F-002 --reason \"accepted; scheduled for v2\"\nswarm reject <run-id> --ids F-001,F-002 --reason \"false positive — the guard is upstream\"\n```\n\n`defer` and `reject` are deliberately targeted: there is no `--all`, and a non-empty `--reason` is mandatory. The reason lands in the append-only `finding_events` log in the same transaction as the status flip, so a finding closed without a fix always carries the operator's justification. Both are idempotent — an already-closed finding is skipped rather than re-evented.\n\n### Reopening a wrongly-closed finding — `swarm reopen`\n\n`approve`/`defer`/`reject` only ever move an *open* finding to a closed status — none of them can undo a mistaken closure. `swarm reopen` is the lawful undo: it moves a `fixed`, `deferred`, or `rejected` finding back to `recurring` (open, amendable again). Like the recovery verbs below, it is dry-run by default; `--apply` is required to mutate, and it previews exactly which findings are eligible before you consent:\n\n```bash\n# Preview only\nswarm reopen <run-id> --ids F-001,F-002 --reason \"the fix regressed\" --evidence \"repro script attached, fails again on main\"\n\n# Apply\nswarm reopen <run-id> --ids F-001,F-002 --reason \"the fix regressed\" --evidence \"repro script attached, fails again on main\" --apply\n```\n\nBoth `--reason` and `--evidence` are mandatory (a reason without evidence is not enough to reopen settled history). There is no `--all` — reopening a run's entire closed history in one keystroke is out of scope. The prior closure's `finding_events` row is never touched; reopening writes a new, additional `reopened` event, so the full history — closed once, reopened, why — stays intact.\n\n### Operator-closing a finding — `swarm close`\n\nSome findings are structurally unclosable by the normal amend path — an unowned file no domain's globs cover, or a Director-directed disposal. `swarm close` is the operator-closure verb for exactly that case. It only supports `--as fixed` (deferring/rejecting stay the standalone `swarm defer`/`swarm reject` verbs above — `close` does not duplicate them), and it requires `--verified-how` naming how the fix was actually verified:\n\n```bash\nswarm close <run-id> --ids F-001,F-002 \\\n  --reason \"file is unowned by any domain; fixed out-of-band\" \\\n  --evidence \"PR #42 on the upstream repo\" \\\n  --verified-how independent \\\n  --apply\n```\n\n`--verified-how` is one of `independent` (someone other than the fixer verified it), `self_attested` (the fixer's own claim, unverified by anyone else), or `operator_evidence` (the Director's own direct evidence) — it is mandatory, not optional, since it is the field that predicts whether a closure holds or reopens later.\n\n### Coordinator-resolved closure — `swarm resolve`\n\nThe dispatch banner for unrouted approved findings has always named a recovery path: land the fix yourself, then attach `coordinator_resolved: true` plus a one-line `verified_via_evidence` so `swarm verify-fixed` classifies the closure as **allowlist** (operator-attested) instead of unverifiable. `swarm resolve` is that path as a verb — before it, the columns were reachable only by editing the database directly, which left zero `finding_events` rows (observed in run swarm-1784601601-bd4a: 16 hand-closed rows, no audit trail):\n\n```bash\nswarm resolve <run-id> --ids F-001,F-002 \\\n  --evidence \"fix landed in commit abc123; package suite green\" \\\n  --apply\n```\n\nIt closes open rows as `fixed` and persists `coordinator_resolved=1` + `verified_via_evidence=<--evidence>` on the row — the exact columns `swarm verify-fixed`'s allowlist channel reads — plus `closure_kind='operator'`, `verified_how='operator_evidence'`, and one `finding_events` row per closure. `--reason` is optional (the evidence doubles as the reason); dry-run by default, `--apply` to mutate. Where `swarm close` records how *you* verified a fix, `resolve` *is* the evidence-carrying attestation.\n\n## Control plane\n\nSQLite-backed. Each swarm run gets `swarms/<run-id>/control-plane.db`:\n\n| Table | Purpose |\n|---|---|\n| `waves` | Wave records (status, phase, wave_number, run_id, snapshot, serial_verify_required) |\n| `agent_runs` | Per-agent dispatch records (status, domain, output_path, verification_skipped) |\n| `wave_state_events` | Append-only wave-status audit log (from_status, to_status, reason, created_at) |\n| `agent_state_events` | Append-only agent-status audit log (mirror shape of wave_state_events) |\n| `findings` | Findings derived from agent outputs |\n| `domain_events` | Domain-map mutation audit log (unfreeze / edit / freeze), plus the restorable `file_claims_cleaned` audit rows written by `swarm clean-claims --apply` |\n\nRead via `swarm status`, `swarm history`, `swarm receipt`. Never via raw SQL in scripts — the state-machine helpers are the supported interface and the audit chain depends on going through them.\n\n## Trajectory layer — `swarm roadmap`\n\nA single run's findings/receipts are durable, but nothing carried *forward*: a second swarm run against the same repo started cold, re-discovering the same hotspots the last run already found. `swarm roadmap` closes that gap with a **compiled, never authored** artifact — every section is a query against the control-plane DB and git, run fresh at compile time, plus a small, bounded set of human-authored operator notes.\n\n```bash\n# Compile the trajectory artifact for a completed run\nswarm roadmap compile <run-id>\n\n# Read the latest (or a specific --version) compiled roadmap\nswarm roadmap show <run-id>\nswarm roadmap show <run-id> --version=2\n```\n\nWhat gets compiled: open/deferred/approved findings, the grandfathered/deferred-findings drain queue, recurrence stats, and a per-file **attention list** — labeled `ADVISORY — NOT A GATE` in every render, because it is a transparent heuristic (recent churn × prior-finding recency × cross-domain fragmentation) meant to focus a *human's* attention, never to gate, predict, or auto-blame a wave or a domain.\n\nOperator notes are the only hand-authored part: at most 7, each a `theme`, an `open-question`, or an `invariant`. An `invariant` note must name an `enforced_by` gate or test file that actually exists on disk — a lesson with no mechanical verifier behind it is refused at compile time rather than silently accepted as an unenforced promise. Notes past their `expires` date are dropped from the compile, but listed as `EXPIRED` in the output — never silently disappeared.\n\nEach `compile` is versioned; recompiling a run supersedes with a new sequence number rather than overwriting history.\n\n## Environment variables\n\nSeven environment variables are part of the scriptable surface:\n\n| Variable | Accepted values | Effect |\n|---|---|---|\n| `SWARM_DB` | a filesystem path | Overrides the control-plane DB path. Unset → the default `swarms/<run-id>/control-plane.db`. Point this at a non-default DB to run against an alternate control plane. |\n| `SWARM_VERIFY_MAX_BUFFER_BYTES` | a positive integer (bytes) | Overrides the default 64 MB `execFileSync` stdout+stderr capture ceiling for every `swarm verify` step. Unset → the module default. Set it above a failing step's reported byte count when its own output legitimately exceeds 64 MB (mirrors `step.maxBufferBytes` for programmatic callers). |\n| `SWARM_VERIFY_STEP_TIMEOUT_MS` | a positive integer (milliseconds) | Overrides the per-step wall-clock timeout `swarm verify` gives each adapter step (the test run, the build). Unset → the adapter default. Set it when a suite legitimately runs longer than the default — a 7,500-test suite on a shared rig needed 900000 — rather than splitting the suite; a step that exceeds it is a FAIL receipt naming the timeout, never a hung verify. |\n| `DOGFOOD_FINDINGS_FORMAT` | `raw` \\| `human` \\| `json` | Forces the `swarm findings` output format, overriding both the `--format` flag and TTY auto-detection. `raw` → markdown, `human` → text, `json` → JSON. |\n| `DOGFOOD_LOG_HUMAN` | `0` \\| `1` | Controls the human-readable companion banner printed alongside the NDJSON stage stream on **stderr**. `0` → never emit the banner (deterministic machine-readable stderr for CI), `1` → always emit it. Unset → emit only when stderr is a TTY. |\n| `INGEST_REPO_ROOT` | a filesystem path | Overrides the **data root** the dogfood ingest writes to when `swarm persist --ingest` (or `persist-results.js`) shells out to `packages/ingest/run.js`. Both ingest with stub provenance, so unset → the ingest is refused (exit 1, `Ingested: NO`) and nothing is written: a stub record in the live `records/` + `indexes/` corpus would read as provenance-confirmed and fork the integrity chain. Point it at a scratch dir holding a copy of `policies/`. |\n| `PRISM_PYTHON` | a path to a Python interpreter | Selects the interpreter that runs the prism seat shim for `swarm adjudicate --jury=prism`. Unset → `python` on `PATH`. Set it to a full path when `python` is absent, ambiguous, or is not the interpreter that has `prism-verify` installed (the Windows PATHEXT trap). Ignored by the default `--jury=local` tier, which makes no prism calls. |\n\nStage transitions are emitted as **NDJSON on stderr** — one JSON object per line, greppable — while stdout carries the command's parse target. Set `DOGFOOD_LOG_HUMAN=0` when you want a clean, machine-parseable stderr stream (e.g. `swarm collect ... 2>collect.ndjson`).\n\n## 10-phase protocol\n\n| Phase | Purpose |\n|---|---|\n| 1–4 (Health Pass) | Audit → Review → Amend → Repeat. Three stages: A (bug/security fix), B (proactive health), C (humanization), D (visual/presentation truth). Closes at 0 CRIT / 0 HIGH. |\n| 5–8 (Feature Pass) | Feature audit → user review → execution → repeat. Production-readiness focus. |\n| 9 | Final test pass — comprehensive validation across the whole system. |\n| 10 | Full Treatment — shipcheck, README finalize + translations, landing page, handbook, repo-knowledge DB entry, deploy + verify. |\n\nEach wave produces a manifest (`swarms/<run-id>/manifest.json`) and per-wave receipts (`swarms/<run-id>/wave-N/receipt.md`) for durable audit. A swarm is **not complete** until Phase 10 finishes.\n\n## Domain ownership\n\nAgents in a wave have exclusive file ownership scoped to their domain. In a repository with an Atlas map the domains are unions of its parts, named after the largest (`swarm init` drafts them; `--no-atlas`, `--domains <n>`, `--tests-domain` and `swarm domains --from-atlas` adjust the draft), and freezing runs `atlas check` on the map; without a map the typical domains are backend, bridge, tests, ci-tooling, frontend and docs. The frozen domain map at dispatch time is the canonical authority; the agent prompt is derived from the frozen state so dispatch + agent + verifier all consume the same shape.\n\nCross-domain mutation surfaces at collect time as status `ownership_violation` (BLOCKED). Recovery options:\n\n- `swarm domains --unfreeze --reason \"...\" → --edit <domain> --globs \"...\" → --freeze` — to legitimately extend a domain's scope (recorded in `domain_events`)\n- `swarm revalidate` — if the agent's `files_changed` self-report turns out to match the original frozen scope after coordinator review\n\n## Save-point discipline\n\nThe repo's git tags + commits ARE the save points. Commits on `main` are the durable mechanism for \"I can roll back to here.\" `swarm rewind` accepts any git tag matching `swarm-save-*` by default (`--force-arbitrary-ref` opts into any ref). Rewind is dry-run safe; verified by an explicit HEAD-guard test that confirms the actual repo's HEAD is unchanged after the rewind test suite runs (cordoned-test discipline).\n\n## Docs\n\n📖 Full handbook: **<https://dogfood-lab.github.io/testing-os/handbook/>**\n\n## License\n\nMIT © 2026 mcp-tool-shop\n","readmeFilename":"README.md"}