{"_id":"@agentplat/collective-runtime","_rev":"11-4bc8d644c299aa183393916bc31ad786","name":"@agentplat/collective-runtime","dist-tags":{"agentplat-stage-74c331e7b716":"0.3.0-beta.3","latest":"1.0.0","agentplat-stage-61ee591e79b0":"0.3.0-beta.4","agentplat-stage-ffca668731c9":"0.3.0-beta.4","agentplat-stage-dbd047c3c9a9":"0.3.0-beta.4","agentplat-stage-dc16b2267584":"0.3.0-beta.5","next":"0.3.0-beta.8"},"versions":{"0.3.0-beta.3":{"name":"@agentplat/collective-runtime","version":"0.3.0-beta.3","license":"Apache-2.0","_id":"@agentplat/collective-runtime@0.3.0-beta.3","maintainers":[{"name":"douglas-grishen","email":"douglas@grishen.com"}],"homepage":"https://github.com/Agentplat/agentplat#readme","bugs":{"url":"https://github.com/Agentplat/agentplat/issues"},"dist":{"shasum":"8fa8188d724503a37705d0192395833183af9a12","tarball":"https://registry.npmjs.org/@agentplat/collective-runtime/-/collective-runtime-0.3.0-beta.3.tgz","fileCount":491,"integrity":"sha512-8YoENuc0cbAHoP+cF5rUe6G5vu4zAfQ4e9gZikFm8dL4HiuD8kfdFohHESzfqKmvU/ZxukTWxcJkGyIOwsyrBg==","signatures":[{"sig":"MEQCIDAW8VPbJMtXfJ+0C2bcrRAdmoVsj7cx47GnB3ffqBgdAiBpOkusygC0HRAklQlCieIi1txI5ixrwei82MShSuv/RQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4146145},"main":"./dist/index.js","type":"module","_from":"file:/tmp/agentplat-publish-vZAAOr/tarballs/agentplat-collective-runtime-0.3.0-beta.3.tgz","types":"./dist/index.d.ts","engines":{"node":">=20.19.3"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./host":{"types":"./dist/host.d.ts","import":"./dist/host.js"},"./node":{"types":"./dist/node.d.ts","import":"./dist/node.js"},"./peer":{"types":"./dist/peer.d.ts","import":"./dist/peer.js"},"./checkpoints":{"types":"./dist/checkpoints.d.ts","import":"./dist/checkpoints.js"},"./sparse-peer":{"types":"./dist/sparse-peer.d.ts","import":"./dist/sparse-peer.js"},"./team-execution":{"types":"./dist/team-execution.d.ts","import":"./dist/team-execution.js"},"./team-formation":{"types":"./dist/team-formation.d.ts","import":"./dist/team-formation.js"},"./capability-state":{"types":"./dist/capability-state.d.ts","import":"./dist/capability-state.js"},"./mission-lifecycle":{"types":"./dist/mission-lifecycle.d.ts","import":"./dist/mission-lifecycle.js"},"./mission-continuity":{"types":"./dist/mission-continuity.d.ts","import":"./dist/mission-continuity.js"},"./collective-decision":{"types":"./dist/collective-decision.d.ts","import":"./dist/collective-decision.js"},"./strategy-adaptation":{"types":"./dist/strategy-adaptation.d.ts","import":"./dist/strategy-adaptation.js"},"./coordination-control":{"types":"./dist/coordination-control.d.ts","import":"./dist/coordination-control.js"},"./mechanism-allocation":{"types":"./dist/mechanism-allocation.d.ts","import":"./dist/mechanism-allocation.js"},"./strategic-allocation":{"types":"./dist/strategic-allocation.d.ts","import":"./dist/strategic-allocation.js"},"./strategy-convergence":{"types":"./dist/strategy-convergence.d.ts","import":"./dist/strategy-convergence.js"},"./collective-invariants":{"types":"./dist/collective-invariants.d.ts","import":"./dist/collective-invariants.js"},"./autonomous-mission-loop":{"types":"./dist/autonomous-mission-loop.d.ts","import":"./dist/autonomous-mission-loop.js"},"./team-execution-exchange":{"types":"./dist/team-execution-exchange.d.ts","import":"./dist/team-execution-exchange.js"},"./attested-mission-control":{"types":"./dist/attested-mission-control.d.ts","import":"./dist/attested-mission-control.js"},"./compromise-aware-recovery":{"types":"./dist/compromise-aware-recovery.d.ts","import":"./dist/compromise-aware-recovery.js"},"./team-execution-continuity":{"types":"./dist/team-execution-continuity.d.ts","import":"./dist/team-execution-continuity.js"},"./team-structure-adaptation":{"types":"./dist/team-structure-adaptation.d.ts","import":"./dist/team-structure-adaptation.js"},"./strategy-evidence-exchange":{"types":"./dist/strategy-evidence-exchange.d.ts","import":"./dist/strategy-evidence-exchange.js"},"./distributed-team-allocation":{"types":"./dist/distributed-team-allocation.d.ts","import":"./dist/distributed-team-allocation.js"},"./coordination-control-guarantees":{"types":"./dist/coordination-control-guarantees.d.ts","import":"./dist/coordination-control-guarantees.js"}},"scripts":{"build":"tsc -p tsconfig.json","clean":"node -e \"require('node:fs').rmSync('dist',{recursive:true,force:true})\"","type-check":"tsc -p tsconfig.json --noEmit"},"_npmUser":{"name":"douglas-grishen","email":"douglas@grishen.com"},"_resolved":"/tmp/agentplat-publish-vZAAOr/tarballs/agentplat-collective-runtime-0.3.0-beta.3.tgz","_integrity":"sha512-8YoENuc0cbAHoP+cF5rUe6G5vu4zAfQ4e9gZikFm8dL4HiuD8kfdFohHESzfqKmvU/ZxukTWxcJkGyIOwsyrBg==","repository":{"url":"git+https://github.com/Agentplat/agentplat.git","type":"git","directory":"packages/collective-runtime"},"_npmVersion":"10.8.2","description":"High-level provider-neutral runtime for capability-based AgentPlat collectives.","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@agentplat/core":"^0.3.0-beta.3","@agentplat/mesh":"^0.3.0-beta.3","@agentplat/runtime":"^0.3.0-beta.3","@agentplat/mesh-crypto":"^0.3.0-beta.3","@agentplat/mesh-protocol":"^0.3.0-beta.3","@agentplat/collective-control":"^0.3.0-beta.3","@agentplat/collective-planning":"^0.3.0-beta.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/collective-runtime_0.3.0-beta.3_1786673555850_0.476071625416866","host":"s3://npm-registry-packages-npm-production"}},"0.3.0-beta.4":{"name":"@agentplat/collective-runtime","version":"0.3.0-beta.4","license":"Apache-2.0","_id":"@agentplat/collective-runtime@0.3.0-beta.4","maintainers":[{"name":"douglas-grishen","email":"douglas@grishen.com"}],"homepage":"https://github.com/Agentplat/agentplat#readme","bugs":{"url":"https://github.com/Agentplat/agentplat/issues"},"dist":{"shasum":"d820f78f5cfa284db4682a004ca6160b3412333f","tarball":"https://registry.npmjs.org/@agentplat/collective-runtime/-/collective-runtime-0.3.0-beta.4.tgz","fileCount":555,"integrity":"sha512-/eqwo7FkUJt90s62qQs89kI1GynA+tclSW7SGmHXv8aSf8RJrR84a9Z63/gpUga5IMxMqfteYT/6V7fDOq5ccg==","signatures":[{"sig":"MEUCIG/qbn0Nv7sa9oSHylqTwogN3iNRJRIiODh1qumQiHgeAiEA1AygKDifHDmbvrZzF0RD8buKX3qY6ZGQtg3nBsKIagE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4405815},"main":"./dist/index.js","type":"module","_from":"file:/tmp/agentplat-publish-jABHQZ/tarballs/agentplat-collective-runtime-0.3.0-beta.4.tgz","types":"./dist/index.d.ts","engines":{"node":">=20.19.3"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./host":{"types":"./dist/host.d.ts","import":"./dist/host.js"},"./node":{"types":"./dist/node.d.ts","import":"./dist/node.js"},"./peer":{"types":"./dist/peer.d.ts","import":"./dist/peer.js"},"./checkpoints":{"types":"./dist/checkpoints.d.ts","import":"./dist/checkpoints.js"},"./sparse-peer":{"types":"./dist/sparse-peer.d.ts","import":"./dist/sparse-peer.js"},"./team-execution":{"types":"./dist/team-execution.d.ts","import":"./dist/team-execution.js"},"./team-formation":{"types":"./dist/team-formation.d.ts","import":"./dist/team-formation.js"},"./capability-state":{"types":"./dist/capability-state.d.ts","import":"./dist/capability-state.js"},"./mission-lifecycle":{"types":"./dist/mission-lifecycle.d.ts","import":"./dist/mission-lifecycle.js"},"./mission-continuity":{"types":"./dist/mission-continuity.d.ts","import":"./dist/mission-continuity.js"},"./collective-decision":{"types":"./dist/collective-decision.d.ts","import":"./dist/collective-decision.js"},"./partition-operation":{"types":"./dist/partition-operation.d.ts","import":"./dist/partition-operation.js"},"./strategy-adaptation":{"types":"./dist/strategy-adaptation.d.ts","import":"./dist/strategy-adaptation.js"},"./topology-governance":{"types":"./dist/topology-governance.d.ts","import":"./dist/topology-governance.js"},"./approval-checkpoints":{"types":"./dist/approval-checkpoints.d.ts","import":"./dist/approval-checkpoints.js"},"./compromise-lifecycle":{"types":"./dist/compromise-lifecycle.d.ts","import":"./dist/compromise-lifecycle.js"},"./coordination-control":{"types":"./dist/coordination-control.d.ts","import":"./dist/coordination-control.js"},"./mechanism-allocation":{"types":"./dist/mechanism-allocation.d.ts","import":"./dist/mechanism-allocation.js"},"./strategic-allocation":{"types":"./dist/strategic-allocation.d.ts","import":"./dist/strategic-allocation.js"},"./strategy-convergence":{"types":"./dist/strategy-convergence.d.ts","import":"./dist/strategy-convergence.js"},"./collective-invariants":{"types":"./dist/collective-invariants.d.ts","import":"./dist/collective-invariants.js"},"./durable-runtime-state":{"types":"./dist/durable-runtime-state.d.ts","import":"./dist/durable-runtime-state.js"},"./forensic-preservation":{"types":"./dist/forensic-preservation.d.ts","import":"./dist/forensic-preservation.js"},"./degraded-effect-budget":{"types":"./dist/degraded-effect-budget.d.ts","import":"./dist/degraded-effect-budget.js"},"./autonomous-mission-loop":{"types":"./dist/autonomous-mission-loop.d.ts","import":"./dist/autonomous-mission-loop.js"},"./team-execution-exchange":{"types":"./dist/team-execution-exchange.d.ts","import":"./dist/team-execution-exchange.js"},"./attested-mission-control":{"types":"./dist/attested-mission-control.d.ts","import":"./dist/attested-mission-control.js"},"./partition-reconciliation":{"types":"./dist/partition-reconciliation.d.ts","import":"./dist/partition-reconciliation.js"},"./compromise-aware-recovery":{"types":"./dist/compromise-aware-recovery.d.ts","import":"./dist/compromise-aware-recovery.js"},"./team-execution-continuity":{"types":"./dist/team-execution-continuity.d.ts","import":"./dist/team-execution-continuity.js"},"./team-formation-strategies":{"types":"./dist/team-formation-strategies.d.ts","import":"./dist/team-formation-strategies.js"},"./team-structure-adaptation":{"types":"./dist/team-structure-adaptation.d.ts","import":"./dist/team-structure-adaptation.js"},"./strategy-evidence-exchange":{"types":"./dist/strategy-evidence-exchange.d.ts","import":"./dist/strategy-evidence-exchange.js"},"./distributed-team-allocation":{"types":"./dist/distributed-team-allocation.d.ts","import":"./dist/distributed-team-allocation.js"},"./governed-collective-runtime":{"types":"./dist/governed-collective-runtime.d.ts","import":"./dist/governed-collective-runtime.js"},"./inference-policy-projection":{"types":"./dist/inference-policy-projection.d.ts","import":"./dist/inference-policy-projection.js"},"./team-topology-transformation":{"types":"./dist/team-topology-transformation.d.ts","import":"./dist/team-topology-transformation.js"},"./compromise-authority-lifecycle":{"types":"./dist/compromise-authority-lifecycle.d.ts","import":"./dist/compromise-authority-lifecycle.js"},"./mission-continuity-disposition":{"types":"./dist/mission-continuity-disposition.d.ts","import":"./dist/mission-continuity-disposition.js"},"./coordination-control-guarantees":{"types":"./dist/coordination-control-guarantees.d.ts","import":"./dist/coordination-control-guarantees.js"}},"scripts":{"build":"tsc -p tsconfig.json","clean":"node -e \"require('node:fs').rmSync('dist',{recursive:true,force:true})\"","type-check":"tsc -p tsconfig.json --noEmit"},"_npmUser":{"name":"douglas-grishen","email":"douglas@grishen.com"},"_resolved":"/tmp/agentplat-publish-jABHQZ/tarballs/agentplat-collective-runtime-0.3.0-beta.4.tgz","_integrity":"sha512-/eqwo7FkUJt90s62qQs89kI1GynA+tclSW7SGmHXv8aSf8RJrR84a9Z63/gpUga5IMxMqfteYT/6V7fDOq5ccg==","repository":{"url":"git+https://github.com/Agentplat/agentplat.git","type":"git","directory":"packages/collective-runtime"},"_npmVersion":"10.8.2","description":"High-level provider-neutral runtime for capability-based AgentPlat collectives.","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@agentplat/core":"^0.3.0-beta.4","@agentplat/mesh":"^0.3.0-beta.4","@agentplat/runtime":"^0.3.0-beta.4","@agentplat/mesh-crypto":"^0.3.0-beta.4","@agentplat/mesh-protocol":"^0.3.0-beta.4","@agentplat/inference-control":"^0.3.0-beta.4","@agentplat/collective-control":"^0.3.0-beta.4","@agentplat/collective-planning":"^0.3.0-beta.4"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","_npmOperationalInternal":{"tmp":"tmp/collective-runtime_0.3.0-beta.4_1786996615581_0.850558455314737","host":"s3://npm-registry-packages-npm-production"}},"0.3.0-beta.5":{"name":"@agentplat/collective-runtime","version":"0.3.0-beta.5","license":"Apache-2.0","_id":"@agentplat/collective-runtime@0.3.0-beta.5","maintainers":[{"name":"douglas-grishen","email":"douglas@grishen.com"}],"homepage":"https://github.com/Agentplat/agentplat#readme","bugs":{"url":"https://github.com/Agentplat/agentplat/issues"},"dist":{"shasum":"acdac9191512026c4ed11f57feb933bb26d1d90c","tarball":"https://registry.npmjs.org/@agentplat/collective-runtime/-/collective-runtime-0.3.0-beta.5.tgz","fileCount":555,"integrity":"sha512-HWiYypjrAJINXEw9mhEzTI6OH2vZuV/so01tH+PdJEqRUf/UB2jcIusTo7FlaBWRo8s3O4sTD5ZISnmS3Hsadw==","signatures":[{"sig":"MEUCIQCl/pWpc0OzHTDRYykjuqU90v6SuE1snrefsZdACYbN7gIgc3lilff38QM2Tr4tHYGr2nvNzO5sgJ6tVvLhMfXVWlU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@agentplat%2fcollective-runtime@0.3.0-beta.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4405815},"main":"./dist/index.js","type":"module","_from":"file:/tmp/agentplat-publish-QbF2qw/tarballs/agentplat-collective-runtime-0.3.0-beta.5.tgz","types":"./dist/index.d.ts","engines":{"node":">=20.19.3"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./host":{"types":"./dist/host.d.ts","import":"./dist/host.js"},"./node":{"types":"./dist/node.d.ts","import":"./dist/node.js"},"./peer":{"types":"./dist/peer.d.ts","import":"./dist/peer.js"},"./checkpoints":{"types":"./dist/checkpoints.d.ts","import":"./dist/checkpoints.js"},"./sparse-peer":{"types":"./dist/sparse-peer.d.ts","import":"./dist/sparse-peer.js"},"./team-execution":{"types":"./dist/team-execution.d.ts","import":"./dist/team-execution.js"},"./team-formation":{"types":"./dist/team-formation.d.ts","import":"./dist/team-formation.js"},"./capability-state":{"types":"./dist/capability-state.d.ts","import":"./dist/capability-state.js"},"./mission-lifecycle":{"types":"./dist/mission-lifecycle.d.ts","import":"./dist/mission-lifecycle.js"},"./mission-continuity":{"types":"./dist/mission-continuity.d.ts","import":"./dist/mission-continuity.js"},"./collective-decision":{"types":"./dist/collective-decision.d.ts","import":"./dist/collective-decision.js"},"./partition-operation":{"types":"./dist/partition-operation.d.ts","import":"./dist/partition-operation.js"},"./strategy-adaptation":{"types":"./dist/strategy-adaptation.d.ts","import":"./dist/strategy-adaptation.js"},"./topology-governance":{"types":"./dist/topology-governance.d.ts","import":"./dist/topology-governance.js"},"./approval-checkpoints":{"types":"./dist/approval-checkpoints.d.ts","import":"./dist/approval-checkpoints.js"},"./compromise-lifecycle":{"types":"./dist/compromise-lifecycle.d.ts","import":"./dist/compromise-lifecycle.js"},"./coordination-control":{"types":"./dist/coordination-control.d.ts","import":"./dist/coordination-control.js"},"./mechanism-allocation":{"types":"./dist/mechanism-allocation.d.ts","import":"./dist/mechanism-allocation.js"},"./strategic-allocation":{"types":"./dist/strategic-allocation.d.ts","import":"./dist/strategic-allocation.js"},"./strategy-convergence":{"types":"./dist/strategy-convergence.d.ts","import":"./dist/strategy-convergence.js"},"./collective-invariants":{"types":"./dist/collective-invariants.d.ts","import":"./dist/collective-invariants.js"},"./durable-runtime-state":{"types":"./dist/durable-runtime-state.d.ts","import":"./dist/durable-runtime-state.js"},"./forensic-preservation":{"types":"./dist/forensic-preservation.d.ts","import":"./dist/forensic-preservation.js"},"./degraded-effect-budget":{"types":"./dist/degraded-effect-budget.d.ts","import":"./dist/degraded-effect-budget.js"},"./autonomous-mission-loop":{"types":"./dist/autonomous-mission-loop.d.ts","import":"./dist/autonomous-mission-loop.js"},"./team-execution-exchange":{"types":"./dist/team-execution-exchange.d.ts","import":"./dist/team-execution-exchange.js"},"./attested-mission-control":{"types":"./dist/attested-mission-control.d.ts","import":"./dist/attested-mission-control.js"},"./partition-reconciliation":{"types":"./dist/partition-reconciliation.d.ts","import":"./dist/partition-reconciliation.js"},"./compromise-aware-recovery":{"types":"./dist/compromise-aware-recovery.d.ts","import":"./dist/compromise-aware-recovery.js"},"./team-execution-continuity":{"types":"./dist/team-execution-continuity.d.ts","import":"./dist/team-execution-continuity.js"},"./team-formation-strategies":{"types":"./dist/team-formation-strategies.d.ts","import":"./dist/team-formation-strategies.js"},"./team-structure-adaptation":{"types":"./dist/team-structure-adaptation.d.ts","import":"./dist/team-structure-adaptation.js"},"./strategy-evidence-exchange":{"types":"./dist/strategy-evidence-exchange.d.ts","import":"./dist/strategy-evidence-exchange.js"},"./distributed-team-allocation":{"types":"./dist/distributed-team-allocation.d.ts","import":"./dist/distributed-team-allocation.js"},"./governed-collective-runtime":{"types":"./dist/governed-collective-runtime.d.ts","import":"./dist/governed-collective-runtime.js"},"./inference-policy-projection":{"types":"./dist/inference-policy-projection.d.ts","import":"./dist/inference-policy-projection.js"},"./team-topology-transformation":{"types":"./dist/team-topology-transformation.d.ts","import":"./dist/team-topology-transformation.js"},"./compromise-authority-lifecycle":{"types":"./dist/compromise-authority-lifecycle.d.ts","import":"./dist/compromise-authority-lifecycle.js"},"./mission-continuity-disposition":{"types":"./dist/mission-continuity-disposition.d.ts","import":"./dist/mission-continuity-disposition.js"},"./coordination-control-guarantees":{"types":"./dist/coordination-control-guarantees.d.ts","import":"./dist/coordination-control-guarantees.js"}},"scripts":{"build":"tsc -p tsconfig.json","clean":"node -e \"require('node:fs').rmSync('dist',{recursive:true,force:true})\"","type-check":"tsc -p tsconfig.json --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:33d87705-a0b5-4c3c-9f37-fe2fe5ee53cc"}},"_resolved":"/tmp/agentplat-publish-QbF2qw/tarballs/agentplat-collective-runtime-0.3.0-beta.5.tgz","_integrity":"sha512-HWiYypjrAJINXEw9mhEzTI6OH2vZuV/so01tH+PdJEqRUf/UB2jcIusTo7FlaBWRo8s3O4sTD5ZISnmS3Hsadw==","repository":{"url":"git+https://github.com/Agentplat/agentplat.git","type":"git","directory":"packages/collective-runtime"},"_npmVersion":"11.17.0","description":"High-level provider-neutral runtime for capability-based AgentPlat collectives.","directories":{},"sideEffects":false,"_nodeVersion":"24.19.0","dependencies":{"@agentplat/core":"^0.3.0-beta.5","@agentplat/mesh":"^0.3.0-beta.5","@agentplat/runtime":"^0.3.0-beta.5","@agentplat/mesh-crypto":"^0.3.0-beta.5","@agentplat/mesh-protocol":"^0.3.0-beta.5","@agentplat/inference-control":"^0.3.0-beta.5","@agentplat/collective-control":"^0.3.0-beta.5","@agentplat/collective-planning":"^0.3.0-beta.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","_npmOperationalInternal":{"tmp":"tmp/collective-runtime_0.3.0-beta.5_1787371852478_0.4546292910399652","host":"s3://npm-registry-packages-npm-production"}},"0.3.0-beta.7":{"name":"@agentplat/collective-runtime","version":"0.3.0-beta.7","license":"Apache-2.0","_id":"@agentplat/collective-runtime@0.3.0-beta.7","maintainers":[{"name":"douglas-grishen","email":"douglas@grishen.com"}],"homepage":"https://github.com/Agentplat/agentplat#readme","bugs":{"url":"https://github.com/Agentplat/agentplat/issues"},"dist":{"shasum":"80cd98e7e311243002d930b330f37ba3c7776fb2","tarball":"https://registry.npmjs.org/@agentplat/collective-runtime/-/collective-runtime-0.3.0-beta.7.tgz","fileCount":763,"integrity":"sha512-66bSw5ZMHG/8k+FYFgeLw/C6ZWfWgEjUHnUFM3VPb6uZF4dFQAYtPfVIAz26wJTm8rD22FD//dz7rGWLDjjCcA==","signatures":[{"sig":"MEUCICM1OsYTIq37bXca8P6hl/yH9ZbQmx5lIMYPqzNW+BaMAiEAz3eNJQaDO0qrJ2Db8JLAx+lUy797ECC9O7q/xfXtgO0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@agentplat%2fcollective-runtime@0.3.0-beta.7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":6109213},"main":"./dist/index.js","type":"module","_from":"file:/home/runner/work/agentplat/agentplat/release-artifacts/agentplat-collective-runtime-0.3.0-beta.7.tgz","types":"./dist/index.d.ts","engines":{"node":">=20.19.3"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./host":{"types":"./dist/host.d.ts","import":"./dist/host.js"},"./node":{"types":"./dist/node.d.ts","import":"./dist/node.js"},"./peer":{"types":"./dist/peer.d.ts","import":"./dist/peer.js"},"./checkpoints":{"types":"./dist/checkpoints.d.ts","import":"./dist/checkpoints.js"},"./sparse-peer":{"types":"./dist/sparse-peer.d.ts","import":"./dist/sparse-peer.js"},"./morphogenesis":{"types":"./dist/morphogenesis.d.ts","import":"./dist/morphogenesis.js"},"./team-execution":{"types":"./dist/team-execution.d.ts","import":"./dist/team-execution.js"},"./team-formation":{"types":"./dist/team-formation.d.ts","import":"./dist/team-formation.js"},"./capability-state":{"types":"./dist/capability-state.d.ts","import":"./dist/capability-state.js"},"./mission-lifecycle":{"types":"./dist/mission-lifecycle.d.ts","import":"./dist/mission-lifecycle.js"},"./mission-continuity":{"types":"./dist/mission-continuity.d.ts","import":"./dist/mission-continuity.js"},"./collective-decision":{"types":"./dist/collective-decision.d.ts","import":"./dist/collective-decision.js"},"./partition-operation":{"types":"./dist/partition-operation.d.ts","import":"./dist/partition-operation.js"},"./strategy-adaptation":{"types":"./dist/strategy-adaptation.d.ts","import":"./dist/strategy-adaptation.js"},"./topology-governance":{"types":"./dist/topology-governance.d.ts","import":"./dist/topology-governance.js"},"./approval-checkpoints":{"types":"./dist/approval-checkpoints.d.ts","import":"./dist/approval-checkpoints.js"},"./compromise-lifecycle":{"types":"./dist/compromise-lifecycle.d.ts","import":"./dist/compromise-lifecycle.js"},"./coordination-control":{"types":"./dist/coordination-control.d.ts","import":"./dist/coordination-control.js"},"./mechanism-allocation":{"types":"./dist/mechanism-allocation.d.ts","import":"./dist/mechanism-allocation.js"},"./strategic-allocation":{"types":"./dist/strategic-allocation.d.ts","import":"./dist/strategic-allocation.js"},"./strategy-convergence":{"types":"./dist/strategy-convergence.d.ts","import":"./dist/strategy-convergence.js"},"./collective-invariants":{"types":"./dist/collective-invariants.d.ts","import":"./dist/collective-invariants.js"},"./durable-runtime-state":{"types":"./dist/durable-runtime-state.d.ts","import":"./dist/durable-runtime-state.js"},"./forensic-preservation":{"types":"./dist/forensic-preservation.d.ts","import":"./dist/forensic-preservation.js"},"./degraded-effect-budget":{"types":"./dist/degraded-effect-budget.d.ts","import":"./dist/degraded-effect-budget.js"},"./autonomous-mission-loop":{"types":"./dist/autonomous-mission-loop.d.ts","import":"./dist/autonomous-mission-loop.js"},"./team-execution-exchange":{"types":"./dist/team-execution-exchange.d.ts","import":"./dist/team-execution-exchange.js"},"./attested-mission-control":{"types":"./dist/attested-mission-control.d.ts","import":"./dist/attested-mission-control.js"},"./partition-reconciliation":{"types":"./dist/partition-reconciliation.d.ts","import":"./dist/partition-reconciliation.js"},"./compromise-aware-recovery":{"types":"./dist/compromise-aware-recovery.d.ts","import":"./dist/compromise-aware-recovery.js"},"./team-execution-continuity":{"types":"./dist/team-execution-continuity.d.ts","import":"./dist/team-execution-continuity.js"},"./team-formation-strategies":{"types":"./dist/team-formation-strategies.d.ts","import":"./dist/team-formation-strategies.js"},"./team-structure-adaptation":{"types":"./dist/team-structure-adaptation.d.ts","import":"./dist/team-structure-adaptation.js"},"./strategy-evidence-exchange":{"types":"./dist/strategy-evidence-exchange.d.ts","import":"./dist/strategy-evidence-exchange.js"},"./distributed-team-allocation":{"types":"./dist/distributed-team-allocation.d.ts","import":"./dist/distributed-team-allocation.js"},"./governed-collective-runtime":{"types":"./dist/governed-collective-runtime.d.ts","import":"./dist/governed-collective-runtime.js"},"./inference-policy-projection":{"types":"./dist/inference-policy-projection.d.ts","import":"./dist/inference-policy-projection.js"},"./team-topology-transformation":{"types":"./dist/team-topology-transformation.d.ts","import":"./dist/team-topology-transformation.js"},"./compromise-authority-lifecycle":{"types":"./dist/compromise-authority-lifecycle.d.ts","import":"./dist/compromise-authority-lifecycle.js"},"./mission-continuity-disposition":{"types":"./dist/mission-continuity-disposition.d.ts","import":"./dist/mission-continuity-disposition.js"},"./coordination-control-guarantees":{"types":"./dist/coordination-control-guarantees.d.ts","import":"./dist/coordination-control-guarantees.js"}},"scripts":{"build":"tsc -p tsconfig.json","clean":"node -e \"require('node:fs').rmSync('dist',{recursive:true,force:true})\"","type-check":"tsc -p tsconfig.json --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","approver":{"name":"douglas-grishen","email":"douglas@grishen.com"},"trustedPublisher":{"id":"github","oidcConfigId":"oidc:54fbf89c-9e93-48ee-9078-8e8f1412ed6d"}},"_resolved":"/home/runner/work/agentplat/agentplat/release-artifacts/agentplat-collective-runtime-0.3.0-beta.7.tgz","_integrity":"sha512-66bSw5ZMHG/8k+FYFgeLw/C6ZWfWgEjUHnUFM3VPb6uZF4dFQAYtPfVIAz26wJTm8rD22FD//dz7rGWLDjjCcA==","repository":{"url":"git+https://github.com/Agentplat/agentplat.git","type":"git","directory":"packages/collective-runtime"},"_npmVersion":"11.19.0","description":"High-level provider-neutral runtime for capability-based AgentPlat collectives.","directories":{},"sideEffects":false,"_nodeVersion":"24.20.0","dependencies":{"@agentplat/core":"^0.3.0-beta.7","@agentplat/mesh":"^0.3.0-beta.7","@agentplat/runtime":"^0.3.0-beta.7","@agentplat/workflows":"^0.3.0-beta.7","@agentplat/mesh-crypto":"^0.3.0-beta.7","@agentplat/mesh-protocol":"^0.3.0-beta.7","@agentplat/inference-control":"^0.3.0-beta.7","@agentplat/collective-control":"^0.3.0-beta.7","@agentplat/collective-planning":"^0.3.0-beta.7"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","_npmOperationalInternal":{"tmp":"tmp/collective-runtime_0.3.0-beta.7_1788979679023_0.6301271734284377","host":"s3://npm-registry-packages-npm-production"}},"0.3.0-beta.8":{"name":"@agentplat/collective-runtime","version":"0.3.0-beta.8","license":"Apache-2.0","_id":"@agentplat/collective-runtime@0.3.0-beta.8","maintainers":[{"name":"douglas-grishen","email":"douglas@grishen.com"}],"homepage":"https://github.com/Agentplat/agentplat#readme","bugs":{"url":"https://github.com/Agentplat/agentplat/issues"},"dist":{"shasum":"3f3deb29f76946fca7970634a72db375b1fc5236","tarball":"https://registry.npmjs.org/@agentplat/collective-runtime/-/collective-runtime-0.3.0-beta.8.tgz","fileCount":763,"integrity":"sha512-mWQv7X2yjwpmRL77cdfPljAFWDHrtdj1Q35C/Y67mNe5yQkUCkSMcRg3kmbwkxljuZg8hgaiqAn4zY09eWcY7Q==","signatures":[{"sig":"MEYCIQDjtAR1hmB7+traYbh1htJFVhVAfHzTlgkGz76DTr/hxQIhALwibUmqH7r6lLDLy2aLt30zpj2MzUGH9xwdZGe0Vfde","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@agentplat%2fcollective-runtime@0.3.0-beta.8","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":6112486},"main":"./dist/index.js","type":"module","_from":"file:/home/runner/work/agentplat/agentplat/release-artifacts/agentplat-collective-runtime-0.3.0-beta.8.tgz","types":"./dist/index.d.ts","engines":{"node":">=20.19.3"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./host":{"types":"./dist/host.d.ts","import":"./dist/host.js"},"./node":{"types":"./dist/node.d.ts","import":"./dist/node.js"},"./peer":{"types":"./dist/peer.d.ts","import":"./dist/peer.js"},"./checkpoints":{"types":"./dist/checkpoints.d.ts","import":"./dist/checkpoints.js"},"./sparse-peer":{"types":"./dist/sparse-peer.d.ts","import":"./dist/sparse-peer.js"},"./morphogenesis":{"types":"./dist/morphogenesis.d.ts","import":"./dist/morphogenesis.js"},"./team-execution":{"types":"./dist/team-execution.d.ts","import":"./dist/team-execution.js"},"./team-formation":{"types":"./dist/team-formation.d.ts","import":"./dist/team-formation.js"},"./capability-state":{"types":"./dist/capability-state.d.ts","import":"./dist/capability-state.js"},"./mission-lifecycle":{"types":"./dist/mission-lifecycle.d.ts","import":"./dist/mission-lifecycle.js"},"./mission-continuity":{"types":"./dist/mission-continuity.d.ts","import":"./dist/mission-continuity.js"},"./collective-decision":{"types":"./dist/collective-decision.d.ts","import":"./dist/collective-decision.js"},"./partition-operation":{"types":"./dist/partition-operation.d.ts","import":"./dist/partition-operation.js"},"./strategy-adaptation":{"types":"./dist/strategy-adaptation.d.ts","import":"./dist/strategy-adaptation.js"},"./topology-governance":{"types":"./dist/topology-governance.d.ts","import":"./dist/topology-governance.js"},"./approval-checkpoints":{"types":"./dist/approval-checkpoints.d.ts","import":"./dist/approval-checkpoints.js"},"./compromise-lifecycle":{"types":"./dist/compromise-lifecycle.d.ts","import":"./dist/compromise-lifecycle.js"},"./coordination-control":{"types":"./dist/coordination-control.d.ts","import":"./dist/coordination-control.js"},"./mechanism-allocation":{"types":"./dist/mechanism-allocation.d.ts","import":"./dist/mechanism-allocation.js"},"./strategic-allocation":{"types":"./dist/strategic-allocation.d.ts","import":"./dist/strategic-allocation.js"},"./strategy-convergence":{"types":"./dist/strategy-convergence.d.ts","import":"./dist/strategy-convergence.js"},"./collective-invariants":{"types":"./dist/collective-invariants.d.ts","import":"./dist/collective-invariants.js"},"./durable-runtime-state":{"types":"./dist/durable-runtime-state.d.ts","import":"./dist/durable-runtime-state.js"},"./forensic-preservation":{"types":"./dist/forensic-preservation.d.ts","import":"./dist/forensic-preservation.js"},"./degraded-effect-budget":{"types":"./dist/degraded-effect-budget.d.ts","import":"./dist/degraded-effect-budget.js"},"./autonomous-mission-loop":{"types":"./dist/autonomous-mission-loop.d.ts","import":"./dist/autonomous-mission-loop.js"},"./team-execution-exchange":{"types":"./dist/team-execution-exchange.d.ts","import":"./dist/team-execution-exchange.js"},"./attested-mission-control":{"types":"./dist/attested-mission-control.d.ts","import":"./dist/attested-mission-control.js"},"./partition-reconciliation":{"types":"./dist/partition-reconciliation.d.ts","import":"./dist/partition-reconciliation.js"},"./compromise-aware-recovery":{"types":"./dist/compromise-aware-recovery.d.ts","import":"./dist/compromise-aware-recovery.js"},"./team-execution-continuity":{"types":"./dist/team-execution-continuity.d.ts","import":"./dist/team-execution-continuity.js"},"./team-formation-strategies":{"types":"./dist/team-formation-strategies.d.ts","import":"./dist/team-formation-strategies.js"},"./team-structure-adaptation":{"types":"./dist/team-structure-adaptation.d.ts","import":"./dist/team-structure-adaptation.js"},"./strategy-evidence-exchange":{"types":"./dist/strategy-evidence-exchange.d.ts","import":"./dist/strategy-evidence-exchange.js"},"./distributed-team-allocation":{"types":"./dist/distributed-team-allocation.d.ts","import":"./dist/distributed-team-allocation.js"},"./governed-collective-runtime":{"types":"./dist/governed-collective-runtime.d.ts","import":"./dist/governed-collective-runtime.js"},"./inference-policy-projection":{"types":"./dist/inference-policy-projection.d.ts","import":"./dist/inference-policy-projection.js"},"./team-topology-transformation":{"types":"./dist/team-topology-transformation.d.ts","import":"./dist/team-topology-transformation.js"},"./compromise-authority-lifecycle":{"types":"./dist/compromise-authority-lifecycle.d.ts","import":"./dist/compromise-authority-lifecycle.js"},"./mission-continuity-disposition":{"types":"./dist/mission-continuity-disposition.d.ts","import":"./dist/mission-continuity-disposition.js"},"./coordination-control-guarantees":{"types":"./dist/coordination-control-guarantees.d.ts","import":"./dist/coordination-control-guarantees.js"}},"scripts":{"build":"tsc -p tsconfig.json","clean":"node -e \"require('node:fs').rmSync('dist',{recursive:true,force:true})\"","type-check":"tsc -p tsconfig.json --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","approver":{"name":"douglas-grishen","email":"douglas@grishen.com"},"trustedPublisher":{"id":"github","oidcConfigId":"oidc:54fbf89c-9e93-48ee-9078-8e8f1412ed6d"}},"_resolved":"/home/runner/work/agentplat/agentplat/release-artifacts/agentplat-collective-runtime-0.3.0-beta.8.tgz","_integrity":"sha512-mWQv7X2yjwpmRL77cdfPljAFWDHrtdj1Q35C/Y67mNe5yQkUCkSMcRg3kmbwkxljuZg8hgaiqAn4zY09eWcY7Q==","repository":{"url":"git+https://github.com/Agentplat/agentplat.git","type":"git","directory":"packages/collective-runtime"},"_npmVersion":"11.19.0","description":"High-level provider-neutral runtime for capability-based AgentPlat collectives.","directories":{},"sideEffects":false,"_nodeVersion":"24.20.0","dependencies":{"@agentplat/core":"^0.3.0-beta.8","@agentplat/mesh":"^0.3.0-beta.8","@agentplat/runtime":"^0.3.0-beta.8","@agentplat/workflows":"^0.3.0-beta.8","@agentplat/mesh-crypto":"^0.3.0-beta.8","@agentplat/mesh-protocol":"^0.3.0-beta.8","@agentplat/inference-control":"^0.3.0-beta.8","@agentplat/collective-control":"^0.3.0-beta.8","@agentplat/collective-planning":"^0.3.0-beta.8"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","_npmOperationalInternal":{"tmp":"tmp/collective-runtime_0.3.0-beta.8_1789349183906_0.23130897624501445","host":"s3://npm-registry-packages-npm-production"}},"1.0.0":{"_id":"@agentplat/collective-runtime@1.0.0","bugs":{"url":"https://github.com/Agentplat/agentplat/issues"},"dist":{"shasum":"e1625e0a1a62ba976c507f399fe406d124929d95","tarball":"https://registry.npmjs.org/@agentplat/collective-runtime/-/collective-runtime-1.0.0.tgz","fileCount":767,"integrity":"sha512-mHM14B3QyEQLqbGd9xr3aHY5vHxLBRbgB/CVZfAno0BdDRpK3UY3Za66DT9PzyvplXtDRMQ9h9xtSRznzqMn1Q==","signatures":[{"sig":"MEUCIAUvDBhHTwN9c4WEhmKW2gh0ASuzUjhNfCcyYipUyLSoAiEA3LBUaseuzxaSXt8qNmoQgn1K1lCA4qvYznJQbWzHgC0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIEOK+qQhqcLWINPrsggpLl59/p8hxcalHYCOCqpDx7d5AiEAkF1HOVZk+Uf/Nu/M554MCbR3ydEffq8Z3oNUq3oOZPg="}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@agentplat%2fcollective-runtime@1.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":6148899},"main":"./dist/index.js","name":"@agentplat/collective-runtime","type":"module","_from":"file:/home/runner/work/agentplat/agentplat/release-artifacts/agentplat-collective-runtime-1.0.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=20.19.3"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./host":{"types":"./dist/host.d.ts","import":"./dist/host.js"},"./node":{"types":"./dist/node.d.ts","import":"./dist/node.js"},"./peer":{"types":"./dist/peer.d.ts","import":"./dist/peer.js"},"./checkpoints":{"types":"./dist/checkpoints.d.ts","import":"./dist/checkpoints.js"},"./sparse-peer":{"types":"./dist/sparse-peer.d.ts","import":"./dist/sparse-peer.js"},"./morphogenesis":{"types":"./dist/morphogenesis.d.ts","import":"./dist/morphogenesis.js"},"./team-execution":{"types":"./dist/team-execution.d.ts","import":"./dist/team-execution.js"},"./team-formation":{"types":"./dist/team-formation.d.ts","import":"./dist/team-formation.js"},"./capability-state":{"types":"./dist/capability-state.d.ts","import":"./dist/capability-state.js"},"./mission-lifecycle":{"types":"./dist/mission-lifecycle.d.ts","import":"./dist/mission-lifecycle.js"},"./mission-continuity":{"types":"./dist/mission-continuity.d.ts","import":"./dist/mission-continuity.js"},"./collective-decision":{"types":"./dist/collective-decision.d.ts","import":"./dist/collective-decision.js"},"./partition-operation":{"types":"./dist/partition-operation.d.ts","import":"./dist/partition-operation.js"},"./strategy-adaptation":{"types":"./dist/strategy-adaptation.d.ts","import":"./dist/strategy-adaptation.js"},"./topology-governance":{"types":"./dist/topology-governance.d.ts","import":"./dist/topology-governance.js"},"./approval-checkpoints":{"types":"./dist/approval-checkpoints.d.ts","import":"./dist/approval-checkpoints.js"},"./compromise-lifecycle":{"types":"./dist/compromise-lifecycle.d.ts","import":"./dist/compromise-lifecycle.js"},"./coordination-control":{"types":"./dist/coordination-control.d.ts","import":"./dist/coordination-control.js"},"./mechanism-allocation":{"types":"./dist/mechanism-allocation.d.ts","import":"./dist/mechanism-allocation.js"},"./strategic-allocation":{"types":"./dist/strategic-allocation.d.ts","import":"./dist/strategic-allocation.js"},"./strategy-convergence":{"types":"./dist/strategy-convergence.d.ts","import":"./dist/strategy-convergence.js"},"./collective-invariants":{"types":"./dist/collective-invariants.d.ts","import":"./dist/collective-invariants.js"},"./durable-runtime-state":{"types":"./dist/durable-runtime-state.d.ts","import":"./dist/durable-runtime-state.js"},"./forensic-preservation":{"types":"./dist/forensic-preservation.d.ts","import":"./dist/forensic-preservation.js"},"./degraded-effect-budget":{"types":"./dist/degraded-effect-budget.d.ts","import":"./dist/degraded-effect-budget.js"},"./autonomous-mission-loop":{"types":"./dist/autonomous-mission-loop.d.ts","import":"./dist/autonomous-mission-loop.js"},"./team-execution-exchange":{"types":"./dist/team-execution-exchange.d.ts","import":"./dist/team-execution-exchange.js"},"./attested-mission-control":{"types":"./dist/attested-mission-control.d.ts","import":"./dist/attested-mission-control.js"},"./partition-reconciliation":{"types":"./dist/partition-reconciliation.d.ts","import":"./dist/partition-reconciliation.js"},"./compromise-aware-recovery":{"types":"./dist/compromise-aware-recovery.d.ts","import":"./dist/compromise-aware-recovery.js"},"./team-execution-continuity":{"types":"./dist/team-execution-continuity.d.ts","import":"./dist/team-execution-continuity.js"},"./team-formation-strategies":{"types":"./dist/team-formation-strategies.d.ts","import":"./dist/team-formation-strategies.js"},"./team-structure-adaptation":{"types":"./dist/team-structure-adaptation.d.ts","import":"./dist/team-structure-adaptation.js"},"./strategy-evidence-exchange":{"types":"./dist/strategy-evidence-exchange.d.ts","import":"./dist/strategy-evidence-exchange.js"},"./distributed-team-allocation":{"types":"./dist/distributed-team-allocation.d.ts","import":"./dist/distributed-team-allocation.js"},"./governed-collective-runtime":{"types":"./dist/governed-collective-runtime.d.ts","import":"./dist/governed-collective-runtime.js"},"./inference-policy-projection":{"types":"./dist/inference-policy-projection.d.ts","import":"./dist/inference-policy-projection.js"},"./team-topology-transformation":{"types":"./dist/team-topology-transformation.d.ts","import":"./dist/team-topology-transformation.js"},"./compromise-authority-lifecycle":{"types":"./dist/compromise-authority-lifecycle.d.ts","import":"./dist/compromise-authority-lifecycle.js"},"./mission-continuity-disposition":{"types":"./dist/mission-continuity-disposition.d.ts","import":"./dist/mission-continuity-disposition.js"},"./coordination-control-guarantees":{"types":"./dist/coordination-control-guarantees.d.ts","import":"./dist/coordination-control-guarantees.js"}},"license":"Apache-2.0","scripts":{"build":"tsc -p tsconfig.json","clean":"node -e \"require('node:fs').rmSync('dist',{recursive:true,force:true})\"","type-check":"tsc -p tsconfig.json --noEmit"},"version":"1.0.0","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:fcf36657-b3dc-4cac-b269-6405ade37e07"}},"homepage":"https://github.com/Agentplat/agentplat#readme","_resolved":"/home/runner/work/agentplat/agentplat/release-artifacts/agentplat-collective-runtime-1.0.0.tgz","_integrity":"sha512-mHM14B3QyEQLqbGd9xr3aHY5vHxLBRbgB/CVZfAno0BdDRpK3UY3Za66DT9PzyvplXtDRMQ9h9xtSRznzqMn1Q==","repository":{"url":"git+https://github.com/Agentplat/agentplat.git","type":"git","directory":"packages/collective-runtime"},"_npmVersion":"11.19.0","description":"High-level provider-neutral runtime for capability-based AgentPlat collectives.","directories":{},"maintainers":[{"name":"douglas-grishen","email":"douglas@grishen.com"}],"sideEffects":false,"_nodeVersion":"24.20.0","dependencies":{"@agentplat/core":"^1.0.0","@agentplat/mesh":"^1.0.0","@agentplat/runtime":"^1.0.0","@agentplat/workflows":"^1.0.0","@agentplat/mesh-crypto":"^1.0.0","@agentplat/mesh-protocol":"^1.0.0","@agentplat/inference-control":"^1.0.0","@agentplat/collective-control":"^1.0.0","@agentplat/collective-planning":"^1.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/collective-runtime_1.0.0_1790116414169_0.19554452813750567"}}},"time":{"created":"2026-08-14T02:12:35.665Z","modified":"2026-09-22T22:33:34.656Z","0.3.0-beta.3":"2026-08-14T02:12:36.069Z","0.3.0-beta.4":"2026-08-17T19:56:55.776Z","0.3.0-beta.5":"2026-08-22T04:10:52.690Z","0.3.0-beta.7":"2026-09-09T18:47:59.184Z","0.3.0-beta.8":"2026-09-14T01:26:24.002Z","1.0.0":"2026-09-22T22:33:34.320Z"},"bugs":{"url":"https://github.com/Agentplat/agentplat/issues"},"license":"Apache-2.0","homepage":"https://github.com/Agentplat/agentplat#readme","repository":{"url":"git+https://github.com/Agentplat/agentplat.git","type":"git","directory":"packages/collective-runtime"},"description":"High-level provider-neutral runtime for capability-based AgentPlat collectives.","maintainers":[{"name":"douglas-grishen","email":"douglas@grishen.com"}],"readme":"# `@agentplat/collective-runtime`\n\nApplication-level runtime for building capability-routed AgentPlat collectives.\nIt composes the public `AgentRuntime` provider registry with an explicit work\nplan, bounded policies, observable execution state and revision-checked\npersistence.\n\n## Installation (developer preview)\n\nInstall the coordinated preview explicitly:\n\n```sh\nnpm install @agentplat/collective-runtime@next\n```\n\nKeep all `@agentplat/*` packages on the same release version. npm's default\n`latest` tag can point to an older preview. See the\n[release channels](https://github.com/Agentplat/agentplat/blob/main/docs/release-channels.md)\nfor distribution status and version selection.\n\n## Installation\n\nRequires Node.js `>=20.19.3` and an npm client configured for the public npm\nregistry. The current coordinated prerelease is published under `next`; pin the\nexplicit version for reproducible consumer installs:\n\n```sh\nnpm install @agentplat/collective-runtime@0.3.0-beta.4 @agentplat/audit@0.3.0-beta.4\n```\n\n```ts\nimport { createMemoryAuditSink } from \"@agentplat/audit\";\nimport { createCollective } from \"@agentplat/collective-runtime\";\n\nconst auditSink = createMemoryAuditSink();\nvoid auditSink;\nvoid createCollective; // Configure runtime, agents and a plan before creating one.\n```\n\n## Agent Morphogenesis\n\n`@agentplat/collective-runtime/morphogenesis` is the opt-in, provider-neutral\nfuture-baseline surface for governed mission-scoped organizational change. It\nexports bounded morphology observations, needs, targets and proposals;\ncatalog, derived and independently certified synthesized instantiation\nprofiles; human/agent/policy/collective decisions;\nbudget and churn controls; the fixed Governed Durable Workflow definition;\nCAS-safe execution and morphology heads; continuity, fencing, retirement and\nfinal receipts; and in-memory reference stores.\n\nApplication and host adapters continue to own authenticated discovery,\nidentity/key material, profile certification, Agent Rooms, Agent Mesh,\nindividual Work Contracts, Action Gateway effects and external resources.\n`@agentplat/collective-host/morphogenesis` composes the existing governed agent\nlifecycle and Team Formation APIs. Durable morphology state is available from\n`@agentplat/collective-host-postgres`; generic process state remains in\n`@agentplat/workflows-postgres` and Temporal remains a wakeup transport.\n\nSee the [reference example](../../examples/agent-morphogenesis/README.md),\n[ADR 0046](../../docs/adr/0046-agent-morphogenesis.md), the [V2\nspecification](../../docs/specification/agent-morphogenesis-v2.md) and [source\nacceptance checklist](../../docs/collective-runtime/agent-morphogenesis-v2-acceptance-checklist.md).\n\n### Strategy Adaptation V3\n\nMorphogenesis V3 specializes the existing bounded local strategy learner for\nproposal generation. It binds selection to an immutable generator and exact\noperator plan, converts only observed outcomes into the existing five-metric\nfeedback contract, and governs promotion/degradation/retirement/rollback\nthrough independent agent, person or collective review. Counterfactual reports\nare reproducible advisory artifacts and never observed feedback.\n\nSee [ADR 0047](../../docs/adr/0047-agent-morphogenesis-strategy-adaptation.md),\nthe [V3 specification](../../docs/specification/agent-morphogenesis-v3.md) and\n[V3 threat model](../../docs/security/agent-morphogenesis-strategy-adaptation-threat-model.md).\n\n```ts\nimport { createCollective } from \"@agentplat/collective-runtime\";\nimport { DefaultAgentRuntime } from \"@agentplat/runtime\";\n\nconst runtime = new DefaultAgentRuntime();\nruntime.registerProvider(\"local\", provider);\n\nconst collective = createCollective({\n  collectiveId: \"launch-team\",\n  tenant: { tenantId: \"acme\" },\n  runtime,\n  objective: {\n    objectiveId: \"launch-brief\",\n    summary: \"Produce a checked launch brief.\",\n  },\n  plan: {\n    workItems: [\n      {\n        workItemId: \"research\",\n        summary: \"Collect the relevant facts.\",\n        requiredCapabilityKeys: [\"research\"],\n      },\n      {\n        workItemId: \"review\",\n        summary: \"Review the facts and produce the final brief.\",\n        requiredCapabilityKeys: [\"writing\"],\n        dependsOn: [\"research\"],\n      },\n    ],\n  },\n});\n\ncollective\n  .register({\n    agent: researcher,\n    capabilityKeys: [\"research\"],\n    roleKeys: [\"analyst\"],\n  })\n  .register({\n    agent: writer,\n    capabilityKeys: [\"writing\"],\n    roleKeys: [\"reviewer\"],\n  });\n\ncollective.subscribe((event) => console.log(event.type, event.payload));\nconst execution = await collective.run({ executionId: \"launch-run-1\" });\n```\n\nEvery underlying `AgentRuntime.run` receives a stable attempt ID as `runId`.\nProviders that can perform external effects should use that value as their\nidempotency key. If a process stops after dispatch but before the result is\npersisted, `resume(executionId)` replays the same running attempt with the same\n`runId`.\n\n## Planning and team formation\n\nPass either a static `plan` or a `planner` callback. A planner receives the\nobjective and safe descriptors for the currently registered agents; its plan\nis validated, normalized and persisted before execution starts. Dependencies\nmust form an acyclic graph.\n\nFor every ready work item, the runtime selects agents that provide every\nrequired capability and the optional role. It balances current assignment\nload, then applies priority and a stable agent-ID tie break. A failed attempt is\nreplanned to another eligible agent while the configured attempt ceiling\nallows it.\n\n## Policy boundary\n\n`authorizeAssignment` and `authorizeResult` are fail-closed callbacks. An\nexception, malformed response or explicit denial prevents that decision from\nbeing accepted. Limits bound work count, attempts, concurrency and persisted\nresult bytes.\n\n```ts\npolicies: {\n  policyId: 'approved-agents-v1',\n  maximumConcurrentWorkItems: 4,\n  maximumAttemptsPerWorkItem: 3,\n  authorizeAssignment: ({ agent, workItem }) => ({\n    allow: agent.capabilityKeys.includes('approved'),\n    reason: `policy:${workItem.workItemId}`,\n  }),\n}\n```\n\n`policyId` is required whenever a callback is installed. It is persisted and\nmust match when an execution resumes, preventing a restart from silently\nchanging the policy implementation.\n\n## Persistence and recovery\n\n`InMemoryCollectiveStateStore` is suitable for local applications and tests.\nProduction adapters implement `CollectiveStateStore.save` as an atomic\ncompare-and-swap over `expectedRevision`. State adapters must integrity-protect\nsnapshots and allow only one active coordinator for an execution.\n\nAbort a run with its `AbortSignal` to persist a `paused` execution. Construct a\nnew collective with the same configuration, agents and state store, then call\n`resume`. Completed dependency results and event history are retained.\nCalling `cancel(executionId)` on active local work first signals the provider,\nwaits for the paused checkpoint, and then persists a terminal cancellation.\n\nThis package is a high-level application coordinator. It does not replace the\nsigned decentralized peer, lease, fencing and certified-recovery protocols in\n`@agentplat/mesh`, nor does a collective assignment grant authority for an\nexternal side effect. Applications that need those boundaries compose them in\ntheir provider or transport adapter.\n\n## Governed runtime facade\n\nFor applications that want one provider-neutral mission cycle, use\n`@agentplat/collective-runtime/governed-collective-runtime`. It composes\nobservation, partition policy, topology, strategy, approval, inference,\neffects and forensics, returning a content-addressed receipt for each cycle.\nThe minimal reference example is\n[`examples/governed-collective-runtime.mjs`](../../examples/governed-collective-runtime.mjs).\n\nThe facade is intentionally opt-in. Existing `createCollective` behavior and\nthe default fail-closed policies remain unchanged. Applications that need\nrestart-safe persistence can implement the ports from\n`@agentplat/collective-runtime/durable-runtime-state`, or use\n`InMemoryDurableStateStoreV1` for local simulations.\n\n## Productive peer loop\n\nImport `@agentplat/collective-runtime/peer` to connect peer-local planning and\ncurrent Mesh assignments to `@agentplat/runtime/adapter`. This opt-in subpath\ndoes not change the high-level coordinator above.\n\n`CollectivePeerRuntimeV1.plan()` supplies one agent only the accepted mission\nintent, its bounded local plan view and its local observations. The agent may\nabstain or return a draft. The runtime owns proposer identity and all binding\ndigests, rejects references outside that local context and constructs a normal\n`PlanFragmentProposalV1`. The result remains proposal data until the existing\nplanning reducer accepts it.\n\n`CollectivePeerRuntimeV1.execute()` requires an exact `WorkContractV1` and\n`AdaptiveRoleBindingV1`. A construction-bound currentness port runs before and\nafter the portable agent step. If authority changes while the agent is working,\nthe result is withheld and the session is closed so that result cannot be\nreleased by an idempotent retry. A released action remains an inert action\nproposal; action grants, governed permits and downstream fencing still belong\nto their existing gateways.\n\nPeer sessions persist the exact Work Contract, adaptive role, adapter and\ncurrentness implementation bindings. Credentials and the current tenant actor\ncontext remain ephemeral. This gives applications a production composition\npath for model, policy, symbolic or hybrid agents without treating an agent's\noutput as assignment or effect authority.\n\n## Adaptive peer node\n\nImport `@agentplat/collective-runtime/node` for the long-lived, provider-neutral\npeer composition. `CollectivePeerNodeRuntimeV1` owns one concrete peer\nincarnation and connects the existing Mesh, planning reducer, portable-agent\nruntime, authority continuity, action gateway, durable repository and signed\ntransport boundaries.\n\nThe caller supplies only ephemeral step input and observations. The node never\naccepts a caller-created plan view, Work Contract, adaptive role or assignment\nauthority. It instead:\n\n1. restores its strict peer snapshot and durable inbox/outbox;\n2. creates local proposals from the accepted mission view and publishes signed\n   planning Work offers only while its `work_owner` continuity head is current;\n3. bids, awards and accepts Work using the retained Mesh evidence;\n4. reconstructs the Work Contract from the current signed offer, accepted\n   award, assignment fence, stored planning fragment and delegation mandate;\n5. requires the configured portable-agent control binding before inference;\n6. sends every action proposal through the injected action port and withholds\n   the result unless every resolution is durable and dispatched; and\n7. rechecks assignment and owner continuity before atomically committing the\n   completed planning state, signed checkpoint/result records, release record,\n   journal and causal outbox effects.\n\n`runOnce()` processes one durable transport batch and one local allocation\nreconciliation. Reconciliation consumes the earliest due generation-fenced\nMesh timer before issuing new bids, awards or acceptances, so bid windows,\nacceptance windows, Work deadlines and assignment leases advance without a\nglobal scheduler. Ready Work is reoffered from its retained planning fragment\nand current discovery view after a bid or acceptance attempt expires, bounded\nby the Mesh offer-attempt ceiling. `start()` repeats that cycle until its signal\nis aborted.\n\nAuthenticated messages that arrive before required award, acceptance, renewal,\ncheckpoint or recovery evidence are durably deferred instead of being\npermanently rejected. Authentication and admission happen before deferral, and\nthe signed envelope remains retryable only until its own bounded expiry.\n\nAn active assignee renews a lease during its final third, within the immutable\nObjective policy, Work deadline and renewal ceiling. Execution re-derives the\nsame stable assignment authority before every action and commit, so a confirmed\nrenewal may extend a long-running step without changing its action retry keys.\n\nAssignment evidence is copied in parallel to every eligible Objective recovery\nwitness; independent witnesses are not chained as transport dependencies. A\ncandidate that is itself a configured witness does not bid, and an assignment\nfails closed if excluding owner/assignee leaves fewer witnesses than the policy\nthreshold. After a lease and its recovery grace expire, eligible peers can\npropose the next assignment epoch. Witnesses vote only for the exact\nthreshold-certified decision returned by the required recovery-election port;\nthe decision is carried in the signed vote and certificate envelopes. The port\nmay implement peer-to-peer rounds or another quorum protocol, but a\nfirst-arrival or process-local quiet-window choice is not valid certification.\nThe Work owner counts only votes bound to the same live decision, then issues a\nnewly fenced recovery award. Certificate-to-award causality is fenced per\nrecipient, without serializing unrelated recipients. The replacement accepts\nand executes through the same Work Contract, inference-control, action and\ncommit boundaries as an initial assignee. When a checkpoint exists and\n`executionCheckpoints` is configured, acceptance waits for a membership-bound\nreplication certificate and exact artifact resolution; the portable session\nimports and restores that state before its first step. If the election port\ncannot certify a round or the certified state is unavailable, recovery fails\nclosed.\n\n## Capability-state fusion\n\nImport `@agentplat/collective-runtime/capability-state` to combine local Trust,\nrole coherence, capacity, sparse reachability and recovery projections before\nthe peer node considers a candidate for productive work.\n\n```ts\nimport {\n  CapabilityStateFusionRuntimeV1,\n  InMemoryCapabilityStateStoreV1,\n  createCapabilityStatePolicyV1,\n  createCapabilityStateResolutionPortV1,\n} from \"@agentplat/collective-runtime/capability-state\";\n\nconst policy = createCapabilityStatePolicyV1({\n  schemaVersion: 1,\n  policyId: \"local-candidate-policy\",\n  policyVersion: 1,\n  parentPolicyDigest: null,\n  requiredDimensions: {\n    offer_recipient: [\"trust\", \"reachability\"],\n    bid: [\"capacity\", \"role\", \"trust\"],\n    award: [\"capacity\", \"reachability\", \"trust\"],\n    assignment_acceptance: [\"capacity\", \"role\", \"trust\"],\n    recovery: [\"capacity\", \"reachability\", \"recovery\", \"trust\"],\n  },\n  maximumCandidates: 64,\n  maximumReasonCodesPerSignal: 8,\n  maximumStateHeads: 4096,\n  maximumDecisionTtlMs: 30_000,\n  maximumCommitAttempts: 4,\n});\n\nconst capabilityState = new CapabilityStateFusionRuntimeV1({\n  stateKey: \"peer-a.capability-state\",\n  fusionId: \"local-capability-state\",\n  fusionVersion: 1,\n  implementationId: \"local-capability-state.default\",\n  policy,\n  resolver: createCapabilityStateResolutionPortV1({\n    sources: [trustProjection, capacityProjection, reachabilityProjection],\n  }),\n  store: new InMemoryCapabilityStateStoreV1(policy),\n});\n```\n\nPass `capabilityState` as the optional port when constructing\n`CollectivePeerNodeRuntimeV1`. The node uses exact `eligible` decisions only to\nnarrow offer recipients, bid and award candidates, assignment acceptance,\nexecution and recovery. The fusion boundary cannot grant assignment, action or\nrecovery authority, and the existing selectors still run after filtering.\n\nSignals are content-free projections bound to candidate, operation, policy,\nsource revision and logical time. Missing, expired, future, conflicting or\nrolled-back inputs fail closed. Applications should use a durable\ncompare-and-swap state store in production; the in-memory store is intended for\nlocal composition and tests.\n\n## Bounded local strategy adaptation\n\nImport `@agentplat/collective-runtime/strategy-adaptation` to select among an\nimmutable catalog of local coordination strategies using bounded online\nfeedback. The controller can be used at explicit plan decomposition, offer\nrouting, bid submission, award selection and recovery selection seams.\n\n```ts\nimport {\n  LocalStrategyAdaptationRuntimeV1,\n  createLocalStrategyAdaptationPolicyV1,\n  createLocalStrategyCatalogV1,\n} from \"@agentplat/collective-runtime/strategy-adaptation\";\n\nconst catalog = createLocalStrategyCatalogV1({\n  schemaVersion: 1,\n  catalogId: \"local-coordination-strategies\",\n  catalogVersion: 1,\n  parentCatalogDigest: null,\n  strategies: [safeBaseline, adaptiveAlternative],\n  baselines: {\n    plan_decomposition: safeBaseline.strategyId,\n    offer_routing: safeBaseline.strategyId,\n    bid_submission: safeBaseline.strategyId,\n    award_selection: safeBaseline.strategyId,\n    recovery_selection: safeBaseline.strategyId,\n  },\n});\n\nconst policy = createLocalStrategyAdaptationPolicyV1({\n  // Bind safety dimensions, feedback sources, metric weights, learning,\n  // exploration, baseline probability, quarantine and state limits here.\n});\n\nconst adaptation = new LocalStrategyAdaptationRuntimeV1({\n  stateKey: \"peer-a.local-strategy-state\",\n  controllerId: \"local-strategy-controller\",\n  controllerVersion: 1,\n  implementationId: \"local-strategy-controller.default\",\n  policy,\n  catalog,\n  safety: safetyResolver,\n  entropy: productionEntropy,\n  store: durableStrategyStateStore,\n});\n```\n\nEvery selection requires current policy-defined safety projections. Trust,\nrole, capability-state, context-integrity and authority adapters can only keep\nor narrow their upstream disposition. The integer probability distribution\nalways totals 10,000 basis points, caps exploration and preserves the safe\nbaseline floor.\n\nFeedback binds one pending decision and an implementation-bound independent\nsource cohort. The controller derives reward from policy-defined clipped\nmetrics using a deterministic median; it never accepts a caller-provided\nscalar reward. Unsafe outcomes quarantine the selected alternative and roll\nthe operation back to baseline. Unsafe baseline outcomes pause that operation.\n\nThe dispatcher invokes only the selected catalog-bound implementation and\nexposes one method per supported coordination seam. Its result remains subject\nto existing planning acceptance, capability, assignment, recovery, action and\neffect controls. The feature is opt-in and does not alter existing selectors.\n\nUse a durable compare-and-swap store and unpredictable integrity-protected\nentropy in production. The in-memory store and deterministic entropy helper\nare intended for local composition, tests and reproducible simulation.\n\n## Peer-to-peer strategy evidence exchange\n\nImport `@agentplat/collective-runtime/strategy-evidence-exchange` when peers\nshould exchange authenticated, content-free outcome evidence for their\ninstalled strategy catalogs. The exchange runtime validates signed identity,\ncurrent membership and Trust eligibility, feedback schema, causal sequence,\nfreshness and local retention policy before an attestation may participate in\naggregation.\n\n```ts\nimport {\n  PeerStrategyEvidenceExchangeRuntimeV1,\n  createPeerStrategyEvidenceExchangePolicyV1,\n} from \"@agentplat/collective-runtime/strategy-evidence-exchange\";\n\nconst policy = createPeerStrategyEvidenceExchangePolicyV1({\n  schemaVersion: 1,\n  policyId: \"strategy-evidence.production\",\n  policyVersion: 1,\n  parentPolicyDigest: null,\n  feedbackSchemaDigest,\n  minimumDistinctPeers: 3,\n  minimumDistinctIndependenceGroups: 3,\n  minimumConfidenceBps: 7_500,\n  maximumPriorInfluenceBps: 2_000,\n  limits: {\n    maximumAttestations: 4_096,\n    maximumAttestationsPerPeer: 32,\n    maximumSourceHeads: 1_024,\n    maximumCertificates: 256,\n    maximumFeedbackSignalDigests: 16,\n    maximumAttestationTtlMs: 86_400_000,\n    maximumFutureSkewMs: 5_000,\n    maximumReasonCodesPerDecision: 8,\n    maximumCommitAttempts: 8,\n    maximumGossipFanout: 8,\n    maximumGossipHops: 12,\n  },\n});\n\nconst exchange = new PeerStrategyEvidenceExchangeRuntimeV1({\n  stateKey: \"peer-a.strategy-evidence\",\n  exchangerId: \"peer-strategy-evidence\",\n  exchangerVersion: 1,\n  implementationId: \"peer-strategy-evidence.default\",\n  policy,\n  eligibility: membershipSignatureAndTrustGate,\n  independence: localIndependenceClassifier,\n  store: durableEvidenceExchangeStore,\n});\n```\n\nThe runtime exchanges attestations, not strategy implementations, prompts,\nmodel outputs or model weights. A collective prior is advisory input to local\nstrategy adaptation: it cannot directly select a strategy, increase an\nalternative's safety disposition, grant planning or assignment authority, or\noverride the local baseline and control-plane vetoes. Missing, stale,\nequivocating or insufficiently independent evidence fails closed.\nOut-of-order evidence consumes the bounded pending-attestation budget but does\nnot reserve a source-head slot; that capacity is checked only when a complete\npredecessor chain becomes admissible.\n\nUse a durable compare-and-swap store in production. The in-memory reference\nstore and deterministic routing helpers are intended for local composition,\ntests and reproducible simulation. The optional CollectiveSync adapter maps\nthe same signed attestation stream into the existing authenticated causal\nreplication protocol; sparse-overlay gossip announces only content digests.\n\n## Decentralized strategy convergence and stability\n\nImport `@agentplat/collective-runtime/strategy-convergence` to turn locally\nvalidated evidence certificates into stable, short-lived recommendations for\nlocal strategy adaptation.\n\n```ts\nimport {\n  InMemoryStrategyConvergenceStoreV1,\n  StrategyConvergenceRuntimeV1,\n  createStrategyConvergencePolicyV1,\n} from \"@agentplat/collective-runtime/strategy-convergence\";\n\nconst convergencePolicy = createStrategyConvergencePolicyV1({\n  schemaVersion: 1,\n  policyId: \"strategy-convergence.production\",\n  policyVersion: 1,\n  parentPolicyDigest: null,\n  minimumConfidenceBps: 7_500,\n  minimumDistinctPeers: 3,\n  minimumDistinctIndependenceGroups: 3,\n  minimumStableCycles: 3,\n  recoveryStableCycles: 5,\n  improvementMarginBps: 750,\n  diversityPreservationMarginBps: 500,\n  minimumCycleIntervalMs: 30_000,\n  cooldownDurationMs: 300_000,\n  oscillationWindowMs: 900_000,\n  maximumTransitionsPerOscillationWindow: 3,\n  maximumPriorInfluenceBps: 2_000,\n  recommendationTtlMs: 60_000,\n  limits: {\n    maximumScopes: 256,\n    maximumStrategiesPerScope: 16,\n    maximumObservationsPerCycle: 128,\n    maximumHistoryPerScope: 64,\n    maximumSourceIdsPerObservation: 128,\n    maximumReasonCodesPerDecision: 12,\n    maximumObservationTtlMs: 86_400_000,\n    maximumFutureSkewMs: 5_000,\n    maximumCommitAttempts: 8,\n  },\n});\n\nconst convergence = new StrategyConvergenceRuntimeV1({\n  stateKey: \"peer-a.strategy-convergence\",\n  controllerId: \"strategy-convergence\",\n  controllerVersion: 1,\n  implementationId: \"strategy-convergence.default\",\n  policy: convergencePolicy,\n  store: new InMemoryStrategyConvergenceStoreV1(),\n});\n```\n\nApplications project certificates from the evidence exchange into a cycle and\nprovide only strategies already eligible under local catalog and safety\npolicy. Partitioned, divergent, oscillating, unsafe and insufficient views do\nnot emit a prior. A credible current strategy inside the diversity margin is\nretained, and a different leader must survive the configured time, hysteresis\nand recovery windows before it can be recommended.\n\nThe in-memory store is intended for composition, tests and deterministic\nsimulation. Use a durable compare-and-swap store and a trustworthy local\nconnectivity classifier in production.\n\n## Dynamic team formation and joint work contracts\n\nImport `@agentplat/collective-runtime/team-formation` when one unit of work\nrequires several complementary roles or capabilities. The runtime selects a\ncomplete roster from bounded, locally eligible position bids without a global\ncandidate registry or a central scheduler.\n\n```ts\nimport {\n  InMemoryTeamFormationStoreV1,\n  TeamFormationRuntimeV1,\n  createTeamFormationPolicyV1,\n} from \"@agentplat/collective-runtime/team-formation\";\n\nconst teamPolicy = createTeamFormationPolicyV1({\n  schemaVersion: 1,\n  policyId: \"dynamic-teams.production\",\n  policyVersion: 1,\n  parentPolicyDigest: null,\n  minimumDistinctPeers: 2,\n  minimumIndependenceGroups: 2,\n  maximumTotalBudgetUnits: 1_000,\n  requireDistinctPeerPerPosition: true,\n  limits: {\n    maximumPositions: 16,\n    maximumBidsPerPosition: 32,\n    maximumMembers: 16,\n    maximumSearchNodes: 100_000,\n    maximumReasonCodesPerDecision: 12,\n    maximumHistoryEntries: 32,\n    maximumRequestInvalidations: 1_024,\n    maximumRequestTtlMs: 300_000,\n    maximumTeamDurationMs: 86_400_000,\n    maximumCommitAttempts: 8,\n  },\n});\n\nconst teams = new TeamFormationRuntimeV1({\n  stateKey: \"peer-a.team-formation\",\n  formationId: \"dynamic-team-formation\",\n  formationVersion: 1,\n  implementationId: \"dynamic-team-formation.default\",\n  policy: teamPolicy,\n  store: new InMemoryTeamFormationStoreV1(),\n});\n```\n\nCapability-state decisions can be projected into team candidates, and\nauthenticated Mesh bids can be projected into local position bids. Selection\nis an exhaustive deterministic search inside a policy-defined node budget. It\noptimizes the complete roster rather than independently choosing the highest\nbid for every position; if the bounded search cannot prove a result it emits no\nproposal.\n\nProposal validation reconstructs every member identity and selection digest\nfrom the proposal's exact Team ID and epoch. For an initial proposal, the Team\nID is derived from scope plus formation-request digest, the epoch is exactly 1,\nand the predecessor joint contract is null.\n\nA `TeamProposalV1` is inert coordination data. `activate()` succeeds only when\nevery selected position is backed by an exact, current individual\n`WorkContractV1`. The resulting `JointWorkContractV1` composes those bindings\nbut never replaces them at an action boundary. Existing per-member assignment\nepochs, leases, fencing tokens and action budgets remain authoritative.\nFenced coordinators should pass `expectedProposalDigest` to `cancel()`; the\nruntime checks it inside the cancellation CAS and will not cancel a replacement\nteam that became current concurrently.\n\n`invalidate()` commits a durable negative fence for a formation-request digest,\nbound to the coordinator's formation authorization and the request validity\nwindow. `form()` checks that tombstone inside its Team-creation CAS, before\ndecision replay, so an invocation already in flight must either commit first or\nlose its CAS and observe the invalidation. Tombstones remain in state and\nhandoffs while their request can still arrive. Only entries whose\n`requestValidUntilLogicalMs` is at or below the durable logical-time high-water\nmay be compacted; exhausting `maximumRequestInvalidations` with unexpired\nentries fails closed.\n\nMember failure is handled as a new team epoch. Unaffected members may retain\ntheir current individual contracts, while the replacement must complete the\nordinary Mesh offer, award and acceptance flow. The new proposal names the\nprevious joint contract and cannot reuse a failed member's authority. Member\noutcomes are content-free and result-bound; the team completes only when every\ncurrent member reports success and fails closed on a failed or unsafe result.\n\nUse durable compare-and-swap storage in production. Formation requests, bids,\nrosters, outcomes and epoch history are bounded and contain no prompts, model\noutputs, credentials or hidden reasoning.\n\n## Autonomous team execution and causal replanning\n\nImport `@agentplat/collective-runtime/team-execution` to execute an activated\nteam's position dependency graph without a central scheduler.\n\n```ts\nimport {\n  InMemoryTeamExecutionArtifactPortV1,\n  InMemoryTeamExecutionStoreV1,\n  TeamExecutionRuntimeV1,\n  createTeamExecutionPolicyV1,\n} from \"@agentplat/collective-runtime/team-execution\";\n\nconst executionPolicy = createTeamExecutionPolicyV1({\n  schemaVersion: 1,\n  policyId: \"team-execution.production\",\n  policyVersion: 1,\n  parentPolicyDigest: null,\n  requireReferencedCompletionArtifact: true,\n  requireAllowedControlForProgress: true,\n  limits: {\n    maximumPositions: 16,\n    maximumStepsPerPosition: 64,\n    maximumArtifactsPerStep: 8,\n    maximumArtifactsPerPosition: 64,\n    maximumArtifactDependencies: 64,\n    maximumArtifactBytes: 16_777_216,\n    maximumPeerMessagesPerStep: 64,\n    maximumTotalPeerMessages: 4_096,\n    maximumRecoveryCount: 8,\n    maximumHistoryEntries: 16,\n    maximumExecutionDurationMs: 86_400_000,\n    maximumStepTtlMs: 300_000,\n    maximumCommitAttempts: 8,\n  },\n});\n\nconst execution = new TeamExecutionRuntimeV1({\n  stateKey: \"peer-a.team-execution\",\n  runtimeId: \"team-execution\",\n  runtimeVersion: 1,\n  implementationId: \"team-execution.default\",\n  policy: executionPolicy,\n  executor: controlledPortableMemberExecutor,\n  artifacts: new InMemoryTeamExecutionArtifactPortV1(),\n  store: new InMemoryTeamExecutionStoreV1(),\n});\n```\n\n`start()` requires an exact active `TeamProposalV1` and\n`JointWorkContractV1`. `runStep()` first commits a content-addressed dispatch,\nchecks every predecessor artifact locally, delegates to the configured member\nexecutor, publishes only durable artifact references and then settles the\nresult. The portable-agent adapter composes existing provider-neutral sessions\nand their pre-step, post-output and pre-action controls.\n\nFailed, unsafe and expired steps produce a recovery signal that can be adapted\ninto the existing team-reconfiguration flow. After a replacement is selected\nand activated, `rebind()` advances the execution epoch, retains the unaffected\ncompleted dependency subgraph and resets the failed position and all causal\nsuccessors.\n\nThe runtime does not execute tools or grant effect authority. A dispatch and a\njoint contract remain coordination data; action gateways must continue to\nvalidate the member's individual Work Contract, lease, epoch and fence. Use a\ndurable compare-and-swap store and durable content-addressed artifact service\nin production. The included in-memory ports are for composition, tests and\ndeterministic simulation.\n\n## Distributed team execution exchange\n\nImport `@agentplat/collective-runtime/team-execution-exchange` to carry team\ndispatches, artifact availability, results and recovery signals across peers.\nThe exchange record is embedded in a signed Mesh envelope under the critical\nextension `agentplat.team-execution-exchange.v1`. Inbound extraction accepts\nonly `VerifiedMeshEnvelope` values and then applies a separate local membership\ndecision; a transport signature alone never grants team membership.\n\nEach sender owns an append-only causal stream. Out-of-order records remain in a\nbounded pending set, exact replay is idempotent, forks fail closed and a narrow\nrecovery port can fetch missing authenticated predecessors after a partition.\nThe runtime persists `ready`/`handled` inbox and `pending`/`sent` outbox states\nwith compare-and-swap storage. Handlers and outbound publishers must use\n`messageId` as their durable idempotency key because a crash can repeat either\nexternal call before its local acknowledgement is committed.\n\nThe member adapter resolves dependency artifacts, executes through the existing\ncontrolled member port and announces durable references before returning a\nresult. The coordinator adapter verifies reference availability before calling\n`settleStep()`. Neither adapter grants tool or action authority: individual\nWork Contracts, leases, epochs, fencing tokens and action controls remain\nmandatory at the effect boundary. Use the in-memory store only for tests and\ndeterministic local simulations.\n\n## Team execution ownership continuity\n\nImport `@agentplat/collective-runtime/team-execution-continuity` when a team\nexecution must survive permanent coordinator loss. The runtime binds each\nprepared execution checkpoint to the exact current `work_owner` holder,\ninstance, generation, authority head and fencing token. Publication requires an\navailability certificate tied to the same membership configuration.\n\nA successor resolves and validates the latest certified checkpoint before\nimport. Pending dispatches retain their existing identifiers, so a member or\neffect gateway can return the same durable result instead of repeating work.\nThe injected execution and state ports must apply the supplied fence atomically\nat every durable CAS and effect boundary. With those fence-aware ports,\nownership changes prevent a stale coordinator from committing new progress.\nThe runtime consumes authority but does not elect an owner, move credentials or\nmake an execution checkpoint an effect grant.\n\n## Outcome-driven team structure adaptation\n\nImport `@agentplat/collective-runtime/team-structure-adaptation` to choose the\nshape of a future team from an immutable local catalog. Observations are derived\nfrom validated execution state and contain bounded outcome metrics rather than\nraw model output or an arbitrary caller-provided reward.\n\nDeterministic integer updates, minimum evidence, exploration caps, cooldown,\nhysteresis and quarantine prevent one result from causing an unbounded change.\nThe resulting selection is advisory for a future adaptation cycle. Its\npositions still pass through a fresh formation runtime at team epoch 1, which\nrechecks coverage, diversity, budget, eligibility and individual Work\nContracts. Active teams are never changed in place.\n\n## Integrated collective peer host\n\nImport `@agentplat/collective-runtime/host` as the transport-neutral composition\nroot for an operational peer. The host verifies or accepts verified Mesh\nenvelopes, classifies them once and admits each message to exactly one durable\nsubsystem. Unknown or ambiguous critical semantics fail closed, and an inbound\nmessage is acknowledged only after admission succeeds.\n\n`restore()`, bounded `runOnce()`, `start()`, `drain()` and `status()` control the\nhost scheduler without taking ownership of subsystem lifecycle or CAS state.\nOptional command ports expose formation, execution, continuity and structure\nadaptation through one facade. Directory and topology freshness may pause\ndispatch but never replace membership or Work authority. HTTP, databases,\nprovider SDKs and effect gateways remain outside this browser-safe package.\n\nThe host also accepts optional decision, mechanism-allocation and\ncoordination-control ports. Their facade methods preserve the authority of the\nunderlying subsystem: allocation and control remain advisory, while a certified\ncollective decision remains coordination authority rather than an action grant,\nlease or fencing token. Facade methods are independent: the application must\nexplicitly route each advisory proposal through its applicable approval gate.\n\n## Certified collective decisions\n\nImport `@agentplat/collective-runtime/collective-decision` to prepare, certify\nand durably accept content-free decisions for plan fragments, team rosters,\nexecution takeovers, team structures, role transitions and strategy changes.\nEvery candidate binds its scope, causal epoch, exact membership and external\npayload digest. Policy selects local, trusted-evidence or Byzantine-agreement\ncertification independently for each decision kind.\n\nThe runtime revalidates certificate bindings before an append-only CAS commit,\nrequires the injected certification port to authenticate externally retained\nproofs, rejects a conflicting value for an accepted slot and preserves a\nlogical-time high-water mark. Restore reauthenticates retained certificates;\nexpired full records become permanent digest-bound tombstones. Policy bounds\nboth active heads and tombstones and fails closed at either limit. Production\nstores must add a durable rollback-resistant integrity anchor; archival or state\ngeneration rotation must preserve replay protection for every compacted slot.\nThe in-memory store is only for local composition and tests. The concrete\nsigned-agreement adapter is exported by\n`@agentplat/collective-quorum/collective-decision`.\n\n## Mechanism-aware mission allocation\n\nImport `@agentplat/collective-runtime/mechanism-allocation` for bounded,\nnon-monetary commit/reveal allocation over semantic work slots. The deterministic\nclear enforces capability eligibility, dependency readiness, declared cost and\nbudget, resource limits, per-peer concentration and independence-group policy.\nEvery event must carry an admission from the required provider-neutral verifier,\nbinding actor peer, process instance, independence group, membership,\ncapabilities and logical validity. Exact admitted events are retained so restore\ncan reauthenticate them. Equivocating bidders are excluded, and a withdrawal\nreopens only affected slots in the next causal round.\n\nProduction allocation stores must atomically compare the expected revision and\nstate digest and retain a monotonic rollback-resistant head outside the mutable\nsnapshot. The in-memory store is only for local composition and tests.\n\n`createMechanismDecompositionFromPlanningStateV1()` projects one peer's accepted\nplanning view into an allocation proposal.\n`createTeamFormationRequestFromMechanismAllocationV1()` projects a complete\nallocation into the ordinary team-formation gate after rechecking the allocation\npolicy, formation policy and every persisted admission. Neither adapter creates\nan assignment or effect authority; formation and individual Work Contracts\nremain mandatory.\n\n`@agentplat/collective-runtime/distributed-team-allocation` composes those\nboundaries as a durable saga. It retains the complete certified roster decision\nand the exact formation command before dispatch. A canonical authorization\ndigest binds the planning state, allocation plan, decision candidate and\ncertificate, exact allocation-state/auction/round fence, request identity,\nmembership and validity window. A retained plan is rejected unless its\nproposal, auction digest and round still match the current allocation state.\n\nEvery retry reauthenticates the retained decision and reconstructs the exact\nplan-to-bid-to-member binding before `form()` or activation. Activation crosses\nan application-provided boundary that must atomically consume the exact fence.\nThat boundary also provides idempotent reconcile and cancel operations: after a\ncrash, the saga adopts a matching activation or cancels it before clearing a\nstale authorization. A changed/retired plan, expired or invalid certificate,\naltered command, or stale Work Contract fails closed and returns the affected\npositions to a fresh allocation round.\n\nFormation replay is discovered from the current durable Team proposal, not\nfrom `lastDecision`, because a concurrent request may overwrite the latter\nwhile leaving the Team non-terminal. Before the saga persists a proposal\ndigest, discovery requires its exact formation-request digest and canonical\nrequest-to-roster binding; afterwards it requires the exact recorded proposal\ndigest. `lastDecision` is consulted only to compare a freshly returned `form()`\nresponse that has no Team proposal to reconcile. A crash after Team Formation\ncommits is therefore adopted without encountering `non_terminal_team_exists`.\nBefore any later fence-clear or withdrawal, that exact awaiting/active proposal\nis cancelled through the CAS-bound `expectedProposalDigest`; a replacement\nproposal is never cancelled.\nInitial rosters are accepted only as epoch 1 with no predecessor and with the\ncanonical team ID, member IDs and selection digests reconstructed from the\nretained bids.\n\nFor activation-pending or active cleanup, the saga first cancels the exact\nactivation-boundary contract and only then cancels the exact Formation Team;\nthis removes effect authority before closing the Team while still preventing a\nlater round from failing with `non_terminal_team_exists`.\n\nBefore clearing a formation authorization or emitting a withdrawal, the saga\nfirst persists the request invalidation and then reconciles/cancels any exact\nproposal. This closes the no-Team-yet race: a delayed `form()` cannot create a\nTeam after cleanup has already observed an empty Formation state.\n\n## Integrated coordination-control loop\n\nImport `@agentplat/collective-runtime/coordination-control` to reduce fresh,\nsource-bound projections of role alignment, context integrity, uncertainty,\nTrust, capability and execution outcomes into a bounded advisory proposal. The\nclosed action set can continue, pause dispatch, restrict participation, or\nrequest role transition, work reassignment, team adaptation or replanning.\n\nMissing, stale, rolled-back or equivocating evidence fails closed. Cooldown and\nhysteresis reduce oscillation. Policy pins a source-registry digest and a\nrequired resolution port authenticates every projection before use. The durable\noutbox retains a live pending proposal until its injected delivery port\nacknowledges it. An expired proposal becomes an explicit `expired` non-delivery\nrecord and is never reported as delivered. The recipient still owns the\ndecision, assignment and effect-authority checks needed to enact the request.\nProduction control stores require the same revision-and-digest CAS plus an\nexternal monotonic head; the in-memory store is not a rollback anchor.\n\n## Governed autonomous mission lifecycle\n\nImport `@agentplat/collective-runtime/mission-lifecycle` to compose planning,\nallocation, formation, execution observation and coordination control as one\ndurable, bounded mission saga. The state is content-free: it retains exact\nscope, policy, request, operation, authorization and result digests rather than\nmission prompts or model output.\n\nEvery external operation is prepared durably before invocation and carries a\nstable operation ID plus exact authority epoch and fencing coordinates. Restore\nreauthenticates applied authorizations and resumes pending operations through\napplication-provided idempotent ports. Control output remains advisory until a\nseparate reconfiguration port enacts the approved pause, restriction, role\ntransition, reassignment, team adaptation or replanning action.\n\nAgent Morphogenesis is a distinct opt-in extension, not an alias for team\nadaptation. A policy must include `agent_morphogenesis` in\n`enabledExtensions`; control then emits `request_morphogenesis` with an exact\n`morphogenesisRequestDigest`, which prepares `enact_morphogenesis` through the\nordinary durable outbox and authorization fence.\n`GovernedMissionMorphogenesisReconfigurationPortV2` delegates only that action\nto a provider-neutral Morphogenesis cycle port, verifies the Mission scope and\nauthorization, requires an exact successful outcome and successor morphology\nepoch, and forwards every other reconfiguration to its existing owner.\n\nAdvanced operator plans use `MorphogenesisOperatorExecutionRuntimeV2` for the\nforward journal primitive. Applications enter it through\n`GovernedMorphogenesisOperatorExecutionRuntimeV2`, which binds the exact\nproposal operation and Policy V2 to an approved decision plus a separately\nissued execution authorization and fence. `MorphogenesisOperatorCompensationRuntimeV2` provides a distinct\npre-commit compensation journal. Compensation walks applied steps in reverse,\nuses stable operation IDs and reconciles ambiguous acknowledgements through the\nowning boundary. A completed execution is not eligible for this rollback path;\npost-commit failure remains an explicit successor recovery.\n\nThe runtime enforces action, reconfiguration, transition and CAS budgets.\nReplanning, formation and execution changes return to their corresponding\nphase instead of being reported as completed. The optional peer-host facade\nexposes `advanceMission()` and `recoverMission()` without taking ownership of\nthe underlying subsystem state or widening its authority.\n\n## Replicated execution checkpoint handoff\n\nImport `@agentplat/collective-runtime/checkpoints` for the provider-neutral\nartifact, certificate, repository and HTTP boundaries. Producers publish a\nportable adapter checkpoint only after the selected current members return the\nconfigured storage and certificate-custody thresholds. Recovery peers discover\nthe certificate from current members, fetch only from its signed receipt\nholders and verify every scope, membership, binding and digest before import.\n\nCheckpoint state is application state, never process memory, credentials,\nmodel prompts or hidden reasoning. The reference codec rejects common secret\nand hidden-reasoning keys and applies strict byte limits. Use independent\ndurable repositories in production; the in-memory repositories are intended\nfor local composition and tests.\n\n`execute()` remains explicit because observations, credentials and agent input\nare intentionally not persisted in the node snapshot. Its successful\n`committed` status means the checkpoint/result release and causal outbox are\ndurable locally; it does not claim that asynchronous remote delivery has\nalready completed.\n\nThe action port is part of the trusted application boundary. Its `execute()`\nimplementation must use the node-supplied `effectId` as its idempotency key,\npersist the returned resolution before acknowledging `dispatched`, and return\nthat same resolution when a crash or compare-and-swap retry replays the key.\nThe key is bound to tenant, mesh, Objective, Work revision, step and action—not\nto a mutable lease, continuity read or assignment epoch. A recovery assignee\ntherefore reuses the same effect key, and the action gateway must share durable\nreceipts across peers that can execute that Work. It\nmust also atomically revalidate the supplied Work Contract, assignment fence\ncontinuity binding and assignment confirmation at the downstream effect\nboundary. The assignment-confirmation port must return only after the owner and\nat least the configured witness threshold have semantically accepted the exact\nacceptance or latest renewal; local outbox enqueue/delivery alone is not\nsufficient execution authority. The continuity port\nmust implement `resolveScope()` for local owner commands and `resolve()` for a\nderived Work Contract, then check the exact current `work_owner` scope. Stale or\nunavailable authority withholds Work creation, offer/award/certificate\npublication, ingress, actions, commit and delivery. Owner envelopes carry the\nexact continuity head in the signed\n`agentplat.collective.owner-continuity.v1` extension, closing ABA delivery and\ningress races. The continuity port must explicitly declare\n`ownerTransferMode: \"stop_and_replan\"`: a Work whose logical owner transfers\nis stopped and must be replanned under the successor in this V1 profile.\nHistorical Objective policy\nis used for already accepted Work revisions; a current Objective cancellation\nremains terminal.\n\nPlanning fragment records are content-addressed. `put()` must be idempotent for\nthe same record, and `get()` must resolve authenticated records referenced by\nreceived offers (for example through a shared or replicated content store).\nConfigure `planningArtifacts` with a `PlanningArtifactAvailabilityPortV1` when\npeers do not share that store. After the normal inbound processor authenticates\nan offer and reports `planning_repository_missing`, the node resolves the exact\nreferenced artifact and processes the original envelope again. Temporary\nunavailability throws from inbox processing so the durable worker retries it;\nwithout the port, the existing terminal rejection remains unchanged.\n\n`CertifiedPlanningArtifactAvailabilityV2` from\n`@agentplat/planning-artifacts` implements the same port and adds a\ncurrent-membership, threshold-certified replica fallback after the normal\nsource-first attempt. Pair it with\n`CertifiedReplicatedPlanningFragmentRepositoryV2` on producers so work offers\nare not published until the configured artifact and certificate-custody\nthresholds succeed.\n\nFor joining, restarted, or partition-healed peers, configure the optional\n`synchronization` port. Planning, reconciliation/bidding, execution,\nassignment confirmation, and recovery-election participation then fail closed\nuntil the port reports membership-bound causal readiness. When an otherwise\nvalid inbound envelope lacks a predecessor, the port may fetch and replay that\nevidence and return the rehydrated runtime state; the node processes the\noriginal envelope again through the normal inbound reducer. No synchronization\npayload bypasses admission or authority checks. `@agentplat/collective-sync`\nprovides the reference operational adapter.\n\n## Replicated mission lifecycle continuity\n\nImport `@agentplat/collective-runtime/mission-continuity` to persist an exact\ngoverned mission state through `snapshot → replicate → checkpoint → takeover`.\nStable operation IDs, certified replica availability, checkpoint lineage,\nauthority epoch/fence bindings, revision-and-digest CAS and an external\nmonotonic head make interrupted retries and rollback explicit. Takeover copies\nprepared and applied lifecycle receipts exactly; it never invokes an effect\nport or replays a confirmed effect.\n\nProduction adapters provide immutable artifact custody, authenticated current\nauthority, availability verification, atomic CAS plus monotonic-head advance,\nand destination restore CAS. The in-memory ports are local composition aids.\n\n## Attested mission-control continuity\n\nImport `@agentplat/collective-runtime/attested-mission-control` when the mission\nlifecycle should consume a long, externally verified health sequence. The\nadapter implements the ordinary control port and emits `continue` only after\nthe configured contiguous healthy threshold, up to 10,000 decisions. Gaps,\nreplay, equivocation, expiry, source changes, mission/epoch/fence changes and\nrollback reset progress to a conservative advisory pause or replan.\n\nThe adapter stores only identifiers, counters and digests. It never executes\nthe proposal, and source authentication remains an application-provided port.\n\n## Collective capability closure\n\nThe additive collective capability closure composes autonomous mission planning,\ncertified context fusion, distributed team allocation, compromise-aware\nrecovery, semantic alignment/agility control, coordination-control guarantees\nand heterogeneous agent execution through provider-neutral ports. Each module\nretains its own policy, scope, CAS state and authority boundary.\n\n`DistributedTeamAllocationRuntimeV2` advances planning positions through\nauthenticated mechanism events, a certified team-roster decision, formation\nand Work-Contract activation. Formation rejection or activation expiry is\nreported through an authenticated withdrawal port for a later allocation round.\n`CoordinationControlGuaranteeRuntimeV1` intersects a verified local control\nguarantee with a planning target and emits an allow/deny dispatch gate with a\nbounded effective planning window. Its dispatch sink returns a durable receipt\nthat binds the exact proposal, scope, delivery time and configured team-control\nidentity. `createAuthenticatedGuaranteeTeamExecutionControlPortV1` accepts only\na proposal digest and obtains the proposal plus receipt through an\napplication-owned authenticated lookup. It cannot accept inline proposal bytes\nor a caller-selected `controlId`, version or implementation identity.\n\n`CompromiseAwareRecoveryRuntimeV1` requires its store to advance the saga\nsnapshot and rollback-resistant anchor atomically. It never repairs an anchor\nfrom a newer snapshot. Certified recovery chooses exactly one of checkpoint,\nreauction or replanning; a checkpoint decision without an exact checkpoint\ndigest is invalid. The store reads snapshot+anchor as one consistent pair, and\nthe production anchor must live on a monotonic/non-reversible boundary that is\nnot rolled back with ordinary state backups. The in-memory adapter demonstrates\natomic semantics only and is not that production boundary.\n\nThe saga is a nominal capability. Its state/anchor store, verdict verifier and\nall exclusion, fencing, activation and restoration effect methods are captured\nwith their original receiver at construction, while module-owned invokers bypass\nreplaceable public methods. Structural clones, prototype fabrication, monkey\npatches and dependency rebinding cannot acquire or redirect the durable saga.\n\nImport the same subpath to use `AutonomousCompromiseRecoveryRuntimeV1` as the\nbounded bridge from certified incident delivery to those durable, scope-local\nsagas. Its source is an at-least-once certificate inbox, not a raw anomaly\ndetector: an application-owned verifier remains inside each recovery runtime,\nand an application-owned request planner derives the current assignment epoch,\nfencing token, takeover candidates, witness policy and restoration choice from\nauthoritative repositories. Callers pass only logical time to `tick()`; they do\nnot inject a verdict or recovery request on each scheduling cycle.\n\nThe runtime resolves one saga per full recovery scope, resumes a retained saga\nbefore a later out-of-order delivery, bounds both certificates and saga steps,\nand acknowledges a certificate only after its terminal state is durable. A\nmissing runtime, unavailable request, rejected boundary, incomplete saga or\nexhausted batch prevents ordinary node progress. Even a completed recovery\nreturns `nodeProgressAllowed: false`; a subsequent empty delivery is the clean\ntick that permits work to resume. Source acknowledgement is idempotent and may\nrefer to a certificate delivered to the same consumer in an earlier pull.\n\nA blocked incident may be superseded only for the same subject. Its complete\nancestor chain remains non-terminal while the successor is blocked, so an\nancestor redelivery is rejected before planning or saga submission and remains\nunacknowledged. When a successor completes, the saga atomically records every\nancestor's durable disposition to that terminal certificate; after a restart,\nthose redeliveries can be acknowledged without rerunning recovery. Completed\nand superseded identities share one fail-closed capacity bound and are never\nevicted.\n\n`scopeAdmission` authenticates the complete tenant/mesh/mission/objective/work\nscope before a registry lookup. The required coordinator store persists a\nmission-wide logical-time high-water and the canonical set of admitted scopes\nwith monotonic CAS; it therefore rejects time rollback and fails closed at\n`maximumScopes` across restarts before an unknown runtime can be initialized.\nNo in-memory coordinator store is provided. Its production implementation must\nprevent rollback of both the high-water and retained scope set.\n\n`BoundedLifecycleCompromiseRecoveryRuntimeRegistryV1` is the reference safe\ncomposition for the integrated host. It accepts a fixed-capacity list of known\nscope configurations and constructs every `CompromiseAwareRecoveryRuntimeV1`\nitself. Each saga is wrapped with the exact same governed lifecycle and the\nsame assignment authority used to install fences; an inbox certificate cannot\ncreate a new scope or substitute either authority boundary.\n\nThe bounded registry is nominal and owns its resolve/admission invokers. The\nautonomous supervisor captures the exact source, planner, registry resolution,\nscope admission and coordinator-store methods at construction, then pins the\nfirst resolved saga identity for every full scope. Returning a different object\nfor an already retained scope is treated as registry substitution and fails\nclosed. Closed host composition additionally requires resolution and admission\nto be the same nominal bounded-registry instance, preventing split-brain scope\nadmission or a structurally forged registry from satisfying authority closure.\n\nCompose each saga with\n`createCompromiseRecoveryLifecycleExclusionPortV1()` so sparse exclusion also\nretires the subject from governed membership, and with\n`createCompromiseRecoveryFencingPortV1()` so assignment authority advances\nbefore takeover. Work-Contract execution paths additionally wrap their normal\npre/post currentness check with\n`createCompromiseRecoveryCurrentnessPortV1()`; the effect sink must share the\nsame durable assignment/fence repository and idempotency identity. Integrated\nassurance execution additionally binds scope, objective, work item, assignment\nepoch/token and membership generation into execution finality and submits that\nexact fence to the same repository for atomic compare-and-commit. These ports\ndo not create detector, membership, election, planning or effect authority.\n\nThe open-source intentionally provides no in-memory certified-verdict inbox and\nno production saga or coordinator store. The source must retain unacknowledged\ncertificates across process loss. The saga store must atomically commit snapshot\nand rollback-resistant anchor on a protection boundary that ordinary backup\nrestoration cannot rewind. The coordinator store must preserve its monotonic\ntime and never evict admitted scope identities. `InMemoryCompromiseRecoveryStoreV1`\nremains a local saga composition aid only.\n\n`AutonomousMissionLoopRuntimeV1` likewise reads one consistent state/anchor\npair and requires every CAS to advance both atomically. Its production anchor\nis independently keyed and lives on a monotonic protection boundary outside\nthe replaceable Mesh snapshot. A missing or divergent half fails closed: the\nruntime and `MeshDurableAutonomousMissionLoopStoreV1` neither derive an anchor\nfrom state nor repair one after an interrupted or rolled-back write. The\nMesh-backed adapter therefore requires an atomic repository that owns both the\nsnapshot transaction and the independent anchor advance.\n\nCompromise-aware sparse exclusion is replay-safe by certificate. A retry keeps\nthe original adaptive revision fence, but an already-applied locally certified\ncertificate is recognized before that stale revision is rejected. The sparse\nview is then reconciled if the crash occurred between adaptive application and\nlocal routing persistence, and the recovery receipt retains the original\napplication time.\n\nApplications provide durable stores, authenticated event/certificate sources,\ncurrent Work Contract resolution, logical time and fenced effect boundaries.\nThese runtimes do not provide a central scheduler, global plan graph, transport\nor execution authority. See [ADR 0042](../../docs/adr/0042-collective-capability-closure.md)\nand the [architecture and threat model](../../docs/security/collective-capability-closure-v1.md).\n\n## Cross-capability invariant guard\n\nImport `@agentplat/collective-runtime/collective-invariants` to enforce portable,\ncontent-free invariants immediately before a protected effect. The guard\nrequires an application-owned evidence verifier and rejects an effect unless\nauthorization, finality and an admissible semantic decision are all bound to\nthe exact observation. The same state machine prevents conflicting finality in\none scope/epoch, checks budget conservation and lineage attenuation, and\nadvances epoch, fence and checkpoint coordinates monotonically.\n\nDecisions produce content-addressed receipts and advance a CAS snapshot plus a\nmonotonic anchor. Observation identifiers are durable idempotency keys; bounded\nreceipt capacity fails closed instead of evicting replay protection. The\nruntime is created asynchronously with `CollectiveInvariantRuntimeV1.create`,\nwhich recomputes the complete policy digest, including trusted lineage roots\nand admissible semantic dispositions. Its evidence verifier must attest the\nentire observation digest and the exact claim-specific binding; independently\nvalid but unrelated certificates cannot be mixed into an effect permit. The\nin-memory store is a composition aid only. Production stores must atomically\ncommit the state with an independently protected rollback witness, and effect\nsinks must deduplicate by effect identity plus the exact invariant receipt.\n","readmeFilename":"README.md"}