hypermind 0.11.0__tar.gz → 0.12.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (880) hide show
  1. {hypermind-0.11.0 → hypermind-0.12.0}/PKG-INFO +27 -3
  2. {hypermind-0.11.0 → hypermind-0.12.0}/README.md +26 -2
  3. {hypermind-0.11.0 → hypermind-0.12.0}/examples/README.md +6 -0
  4. hypermind-0.12.0/examples/org_university.py +66 -0
  5. {hypermind-0.11.0 → hypermind-0.12.0}/pyproject.toml +1 -1
  6. {hypermind-0.11.0 → hypermind-0.12.0}/src/hypermind/__init__.py +1 -1
  7. hypermind-0.12.0/src/hypermind/orgs/__init__.py +72 -0
  8. hypermind-0.12.0/src/hypermind/orgs/interaction.py +177 -0
  9. hypermind-0.12.0/src/hypermind/orgs/model.py +246 -0
  10. hypermind-0.12.0/src/hypermind/orgs/report.py +87 -0
  11. hypermind-0.12.0/src/hypermind/orgs/sim.py +463 -0
  12. hypermind-0.12.0/src/hypermind/orgs/templates/__init__.py +411 -0
  13. hypermind-0.12.0/src/hypermind/orgs/think.py +109 -0
  14. hypermind-0.12.0/src/hypermind/orgs/tools.py +202 -0
  15. hypermind-0.12.0/tests/orgs/test_interaction.py +123 -0
  16. hypermind-0.12.0/tests/orgs/test_model.py +207 -0
  17. hypermind-0.12.0/tests/orgs/test_report.py +81 -0
  18. hypermind-0.12.0/tests/orgs/test_sim.py +444 -0
  19. hypermind-0.12.0/tests/orgs/test_templates.py +37 -0
  20. hypermind-0.12.0/tests/orgs/test_think.py +91 -0
  21. hypermind-0.12.0/tests/orgs/test_tools.py +143 -0
  22. {hypermind-0.11.0 → hypermind-0.12.0}/.editorconfig +0 -0
  23. {hypermind-0.11.0 → hypermind-0.12.0}/.gitattributes +0 -0
  24. {hypermind-0.11.0 → hypermind-0.12.0}/.github/FUNDING.yml +0 -0
  25. {hypermind-0.11.0 → hypermind-0.12.0}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
  26. {hypermind-0.11.0 → hypermind-0.12.0}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  27. {hypermind-0.11.0 → hypermind-0.12.0}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -0
  28. {hypermind-0.11.0 → hypermind-0.12.0}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
  29. {hypermind-0.11.0 → hypermind-0.12.0}/.github/renovate.json +0 -0
  30. {hypermind-0.11.0 → hypermind-0.12.0}/.github/workflows/check-license.yml +0 -0
  31. {hypermind-0.11.0 → hypermind-0.12.0}/.github/workflows/code-review-pr.yml +0 -0
  32. {hypermind-0.11.0 → hypermind-0.12.0}/.github/workflows/hotfix-security.yml +0 -0
  33. {hypermind-0.11.0 → hypermind-0.12.0}/.github/workflows/issue-auto-fix.yml +0 -0
  34. {hypermind-0.11.0 → hypermind-0.12.0}/.github/workflows/issue-triage.yml +0 -0
  35. {hypermind-0.11.0 → hypermind-0.12.0}/.github/workflows/pr-standards.yml +0 -0
  36. {hypermind-0.11.0 → hypermind-0.12.0}/.github/workflows/quality.yml +0 -0
  37. {hypermind-0.11.0 → hypermind-0.12.0}/.github/workflows/release.yml +0 -0
  38. {hypermind-0.11.0 → hypermind-0.12.0}/.github/workflows/security.yml +0 -0
  39. {hypermind-0.11.0 → hypermind-0.12.0}/.github/workflows/stale.yml +0 -0
  40. {hypermind-0.11.0 → hypermind-0.12.0}/.github/workflows-disabled/branch-flow-check.yml +0 -0
  41. {hypermind-0.11.0 → hypermind-0.12.0}/.github/workflows-disabled/chaos.yml +0 -0
  42. {hypermind-0.11.0 → hypermind-0.12.0}/.github/workflows-disabled/check-license.yml +0 -0
  43. {hypermind-0.11.0 → hypermind-0.12.0}/.github/workflows-disabled/ci.yml +0 -0
  44. {hypermind-0.11.0 → hypermind-0.12.0}/.github/workflows-disabled/code-freeze.yml +0 -0
  45. {hypermind-0.11.0 → hypermind-0.12.0}/.github/workflows-disabled/code-review-pr.yml +0 -0
  46. {hypermind-0.11.0 → hypermind-0.12.0}/.github/workflows-disabled/code-review.yml +0 -0
  47. {hypermind-0.11.0 → hypermind-0.12.0}/.github/workflows-disabled/codeql.yml +0 -0
  48. {hypermind-0.11.0 → hypermind-0.12.0}/.github/workflows-disabled/dco.yml +0 -0
  49. {hypermind-0.11.0 → hypermind-0.12.0}/.github/workflows-disabled/docs-to-wiki.yml +0 -0
  50. {hypermind-0.11.0 → hypermind-0.12.0}/.github/workflows-disabled/docs.yml +0 -0
  51. {hypermind-0.11.0 → hypermind-0.12.0}/.github/workflows-disabled/formal.yml +0 -0
  52. {hypermind-0.11.0 → hypermind-0.12.0}/.github/workflows-disabled/fuzz.yml +0 -0
  53. {hypermind-0.11.0 → hypermind-0.12.0}/.github/workflows-disabled/hotfix-security.yml +0 -0
  54. {hypermind-0.11.0 → hypermind-0.12.0}/.github/workflows-disabled/issue-auto-fix.yml +0 -0
  55. {hypermind-0.11.0 → hypermind-0.12.0}/.github/workflows-disabled/issue-triage.yml +0 -0
  56. {hypermind-0.11.0 → hypermind-0.12.0}/.github/workflows-disabled/merge-comment.yml +0 -0
  57. {hypermind-0.11.0 → hypermind-0.12.0}/.github/workflows-disabled/pip-audit.yml +0 -0
  58. {hypermind-0.11.0 → hypermind-0.12.0}/.github/workflows-disabled/pr-standards.yml +0 -0
  59. {hypermind-0.11.0 → hypermind-0.12.0}/.github/workflows-disabled/quality.yml +0 -0
  60. {hypermind-0.11.0 → hypermind-0.12.0}/.github/workflows-disabled/release.yml +0 -0
  61. {hypermind-0.11.0 → hypermind-0.12.0}/.github/workflows-disabled/sbom.yml +0 -0
  62. {hypermind-0.11.0 → hypermind-0.12.0}/.github/workflows-disabled/scorecard.yml +0 -0
  63. {hypermind-0.11.0 → hypermind-0.12.0}/.github/workflows-disabled/security.yml +0 -0
  64. {hypermind-0.11.0 → hypermind-0.12.0}/.github/workflows-disabled/sprint-retro.yml +0 -0
  65. {hypermind-0.11.0 → hypermind-0.12.0}/.github/workflows-disabled/stale.yml +0 -0
  66. {hypermind-0.11.0 → hypermind-0.12.0}/.gitignore +0 -0
  67. {hypermind-0.11.0 → hypermind-0.12.0}/.pre-commit-config.yaml +0 -0
  68. {hypermind-0.11.0 → hypermind-0.12.0}/.tool-versions +0 -0
  69. {hypermind-0.11.0 → hypermind-0.12.0}/CHANGELOG.md +0 -0
  70. {hypermind-0.11.0 → hypermind-0.12.0}/CHARTER.md +0 -0
  71. {hypermind-0.11.0 → hypermind-0.12.0}/CODEOWNERS +0 -0
  72. {hypermind-0.11.0 → hypermind-0.12.0}/CODE_OF_CONDUCT.md +0 -0
  73. {hypermind-0.11.0 → hypermind-0.12.0}/CONTRIBUTING.md +0 -0
  74. {hypermind-0.11.0 → hypermind-0.12.0}/GOVERNANCE.md +0 -0
  75. {hypermind-0.11.0 → hypermind-0.12.0}/LICENSE +0 -0
  76. {hypermind-0.11.0 → hypermind-0.12.0}/MAINTAINERS.md +0 -0
  77. {hypermind-0.11.0 → hypermind-0.12.0}/Makefile +0 -0
  78. {hypermind-0.11.0 → hypermind-0.12.0}/RELATA_COMPATIBILITY.md +0 -0
  79. {hypermind-0.11.0 → hypermind-0.12.0}/RELATA_INTEGRATION_PLAN.md +0 -0
  80. {hypermind-0.11.0 → hypermind-0.12.0}/ROADMAP.md +0 -0
  81. {hypermind-0.11.0 → hypermind-0.12.0}/SECURITY.md +0 -0
  82. {hypermind-0.11.0 → hypermind-0.12.0}/bench/README.md +0 -0
  83. {hypermind-0.11.0 → hypermind-0.12.0}/bench/__init__.py +0 -0
  84. {hypermind-0.11.0 → hypermind-0.12.0}/bench/baselines/v0.6.json +0 -0
  85. {hypermind-0.11.0 → hypermind-0.12.0}/bench/bench_consult.py +0 -0
  86. {hypermind-0.11.0 → hypermind-0.12.0}/bench/bench_dispute.py +0 -0
  87. {hypermind-0.11.0 → hypermind-0.12.0}/bench/bench_publish.py +0 -0
  88. {hypermind-0.11.0 → hypermind-0.12.0}/bench/coordination/README.md +0 -0
  89. {hypermind-0.11.0 → hypermind-0.12.0}/bench/coordination/__init__.py +0 -0
  90. {hypermind-0.11.0 → hypermind-0.12.0}/bench/coordination/baselines/v0.10.json +0 -0
  91. {hypermind-0.11.0 → hypermind-0.12.0}/bench/coordination/bench_rfp_latency.py +0 -0
  92. {hypermind-0.11.0 → hypermind-0.12.0}/bench/coordination/bench_task_throughput.py +0 -0
  93. {hypermind-0.11.0 → hypermind-0.12.0}/bench/coordination/bench_workflow_replay.py +0 -0
  94. {hypermind-0.11.0 → hypermind-0.12.0}/bench/coordination/run_all.py +0 -0
  95. {hypermind-0.11.0 → hypermind-0.12.0}/bench/question_sets/geopolitics_q20.json +0 -0
  96. {hypermind-0.11.0 → hypermind-0.12.0}/bench/question_sets/msft_outlook_q10.json +0 -0
  97. {hypermind-0.11.0 → hypermind-0.12.0}/bench/run_bench.py +0 -0
  98. {hypermind-0.11.0 → hypermind-0.12.0}/chaos/README.md +0 -0
  99. {hypermind-0.11.0 → hypermind-0.12.0}/chaos/__init__.py +0 -0
  100. {hypermind-0.11.0 → hypermind-0.12.0}/chaos/p1_partition_recovery.py +0 -0
  101. {hypermind-0.11.0 → hypermind-0.12.0}/chaos/p2_witness_compromise.py +0 -0
  102. {hypermind-0.11.0 → hypermind-0.12.0}/chaos/p3_key_rotation.py +0 -0
  103. {hypermind-0.11.0 → hypermind-0.12.0}/chaos/p4_dispute_backlog.py +0 -0
  104. {hypermind-0.11.0 → hypermind-0.12.0}/chaos/p5_wire_cutover.py +0 -0
  105. {hypermind-0.11.0 → hypermind-0.12.0}/chaos/p6_quorum_loss.py +0 -0
  106. {hypermind-0.11.0 → hypermind-0.12.0}/chaos/p7_clock_skew.py +0 -0
  107. {hypermind-0.11.0 → hypermind-0.12.0}/chaos/p8_recorder_outage.py +0 -0
  108. {hypermind-0.11.0 → hypermind-0.12.0}/chaos/run_chaos.py +0 -0
  109. {hypermind-0.11.0 → hypermind-0.12.0}/deploy/Dockerfile +0 -0
  110. {hypermind-0.11.0 → hypermind-0.12.0}/deploy/README.md +0 -0
  111. {hypermind-0.11.0 → hypermind-0.12.0}/deploy/docker-compose.yml +0 -0
  112. {hypermind-0.11.0 → hypermind-0.12.0}/deploy/grafana/dashboards/hypermind-coordination.json +0 -0
  113. {hypermind-0.11.0 → hypermind-0.12.0}/deploy/grafana/dashboards/hypermind-v06.json +0 -0
  114. {hypermind-0.11.0 → hypermind-0.12.0}/deploy/grafana/dashboards/hypermind.json +0 -0
  115. {hypermind-0.11.0 → hypermind-0.12.0}/deploy/grafana/provisioning/dashboards/hypermind.yml +0 -0
  116. {hypermind-0.11.0 → hypermind-0.12.0}/deploy/grafana/provisioning/datasources/prometheus.yml +0 -0
  117. {hypermind-0.11.0 → hypermind-0.12.0}/deploy/k8s/hypermind-deployment.yaml +0 -0
  118. {hypermind-0.11.0 → hypermind-0.12.0}/deploy/prometheus/prometheus.yml +0 -0
  119. {hypermind-0.11.0 → hypermind-0.12.0}/deploy/systemd/hypermind.service +0 -0
  120. {hypermind-0.11.0 → hypermind-0.12.0}/docs/README.md +0 -0
  121. {hypermind-0.11.0 → hypermind-0.12.0}/docs/SIMLAB.md +0 -0
  122. {hypermind-0.11.0 → hypermind-0.12.0}/docs/SIMLAB_AUDIT_PLAN.md +0 -0
  123. {hypermind-0.11.0 → hypermind-0.12.0}/docs/_meta/glossary.md +0 -0
  124. {hypermind-0.11.0 → hypermind-0.12.0}/docs/_meta/provenance.md +0 -0
  125. {hypermind-0.11.0 → hypermind-0.12.0}/docs/_meta/public-surface.md +0 -0
  126. {hypermind-0.11.0 → hypermind-0.12.0}/docs/_meta/standards-map.md +0 -0
  127. {hypermind-0.11.0 → hypermind-0.12.0}/docs/api/agent.md +0 -0
  128. {hypermind-0.11.0 → hypermind-0.12.0}/docs/api/agent_card.md +0 -0
  129. {hypermind-0.11.0 → hypermind-0.12.0}/docs/api/capability.md +0 -0
  130. {hypermind-0.11.0 → hypermind-0.12.0}/docs/api/crypto.md +0 -0
  131. {hypermind-0.11.0 → hypermind-0.12.0}/docs/api/dispute.md +0 -0
  132. {hypermind-0.11.0 → hypermind-0.12.0}/docs/api/knowledge.md +0 -0
  133. {hypermind-0.11.0 → hypermind-0.12.0}/docs/api/observability.md +0 -0
  134. {hypermind-0.11.0 → hypermind-0.12.0}/docs/api/simlab-openapi.yaml +0 -0
  135. {hypermind-0.11.0 → hypermind-0.12.0}/docs/api/sync.md +0 -0
  136. {hypermind-0.11.0 → hypermind-0.12.0}/docs/api/tasks.md +0 -0
  137. {hypermind-0.11.0 → hypermind-0.12.0}/docs/api/transport.md +0 -0
  138. {hypermind-0.11.0 → hypermind-0.12.0}/docs/api/wire.md +0 -0
  139. {hypermind-0.11.0 → hypermind-0.12.0}/docs/architecture-v0.6.md +0 -0
  140. {hypermind-0.11.0 → hypermind-0.12.0}/docs/assets/hero-swarm.svg +0 -0
  141. {hypermind-0.11.0 → hypermind-0.12.0}/docs/audit/findings.md +0 -0
  142. {hypermind-0.11.0 → hypermind-0.12.0}/docs/audit/scope.md +0 -0
  143. {hypermind-0.11.0 → hypermind-0.12.0}/docs/concepts.md +0 -0
  144. {hypermind-0.11.0 → hypermind-0.12.0}/docs/conformance/authority.md +0 -0
  145. {hypermind-0.11.0 → hypermind-0.12.0}/docs/conformance/bake-off-report.md +0 -0
  146. {hypermind-0.11.0 → hypermind-0.12.0}/docs/conformance/mark-policy.md +0 -0
  147. {hypermind-0.11.0 → hypermind-0.12.0}/docs/decide/01-disqualifiers.md +0 -0
  148. {hypermind-0.11.0 → hypermind-0.12.0}/docs/decide/02-alternatives.md +0 -0
  149. {hypermind-0.11.0 → hypermind-0.12.0}/docs/decide/03-incentive-aligned-cases.md +0 -0
  150. {hypermind-0.11.0 → hypermind-0.12.0}/docs/decide/04-use-cases.md +0 -0
  151. {hypermind-0.11.0 → hypermind-0.12.0}/docs/design/01-architecture.md +0 -0
  152. {hypermind-0.11.0 → hypermind-0.12.0}/docs/design/02-traces.md +0 -0
  153. {hypermind-0.11.0 → hypermind-0.12.0}/docs/design/03-failure-modes.md +0 -0
  154. {hypermind-0.11.0 → hypermind-0.12.0}/docs/design/04-poisoning-defenses.md +0 -0
  155. {hypermind-0.11.0 → hypermind-0.12.0}/docs/design/05-deployment-topology.md +0 -0
  156. {hypermind-0.11.0 → hypermind-0.12.0}/docs/feature-matrix.md +0 -0
  157. {hypermind-0.11.0 → hypermind-0.12.0}/docs/getting-started.md +0 -0
  158. {hypermind-0.11.0 → hypermind-0.12.0}/docs/governance/cna.md +0 -0
  159. {hypermind-0.11.0 → hypermind-0.12.0}/docs/governance/foundation-evaluation.md +0 -0
  160. {hypermind-0.11.0 → hypermind-0.12.0}/docs/hypermind-protocol-spec.md +0 -0
  161. {hypermind-0.11.0 → hypermind-0.12.0}/docs/index.md +0 -0
  162. {hypermind-0.11.0 → hypermind-0.12.0}/docs/legal/export-classification.md +0 -0
  163. {hypermind-0.11.0 → hypermind-0.12.0}/docs/lts.md +0 -0
  164. {hypermind-0.11.0 → hypermind-0.12.0}/docs/migrate/v0.x-to-v1.0.md +0 -0
  165. {hypermind-0.11.0 → hypermind-0.12.0}/docs/migration/v0.7.md +0 -0
  166. {hypermind-0.11.0 → hypermind-0.12.0}/docs/onboarding/00-prerequisites.md +0 -0
  167. {hypermind-0.11.0 → hypermind-0.12.0}/docs/onboarding/README.md +0 -0
  168. {hypermind-0.11.0 → hypermind-0.12.0}/docs/onboarding/after.md +0 -0
  169. {hypermind-0.11.0 → hypermind-0.12.0}/docs/onboarding/exercises/e01-run-the-loop.md +0 -0
  170. {hypermind-0.11.0 → hypermind-0.12.0}/docs/onboarding/exercises/e02-draw-the-architecture.md +0 -0
  171. {hypermind-0.11.0 → hypermind-0.12.0}/docs/onboarding/exercises/e03-trace-a-claim.md +0 -0
  172. {hypermind-0.11.0 → hypermind-0.12.0}/docs/onboarding/exercises/e04-read-a-spec-section.md +0 -0
  173. {hypermind-0.11.0 → hypermind-0.12.0}/docs/onboarding/exercises/e05-break-it.md +0 -0
  174. {hypermind-0.11.0 → hypermind-0.12.0}/docs/onboarding/exercises/e06-add-a-test.md +0 -0
  175. {hypermind-0.11.0 → hypermind-0.12.0}/docs/onboarding/exercises/e07-first-pr.md +0 -0
  176. {hypermind-0.11.0 → hypermind-0.12.0}/docs/onboarding/glossary.md +0 -0
  177. {hypermind-0.11.0 → hypermind-0.12.0}/docs/onboarding/topics/00-what-is-hypermind.md +0 -0
  178. {hypermind-0.11.0 → hypermind-0.12.0}/docs/onboarding/topics/01-agents-and-swarms.md +0 -0
  179. {hypermind-0.11.0 → hypermind-0.12.0}/docs/onboarding/topics/02-architecture-tour.md +0 -0
  180. {hypermind-0.11.0 → hypermind-0.12.0}/docs/onboarding/topics/03-spec-literacy.md +0 -0
  181. {hypermind-0.11.0 → hypermind-0.12.0}/docs/onboarding/topics/04-cryptography.md +0 -0
  182. {hypermind-0.11.0 → hypermind-0.12.0}/docs/onboarding/topics/05-cbor-cose.md +0 -0
  183. {hypermind-0.11.0 → hypermind-0.12.0}/docs/onboarding/topics/06-transparency-logs.md +0 -0
  184. {hypermind-0.11.0 → hypermind-0.12.0}/docs/onboarding/topics/07-distributed-systems.md +0 -0
  185. {hypermind-0.11.0 → hypermind-0.12.0}/docs/onboarding/topics/08-async-python.md +0 -0
  186. {hypermind-0.11.0 → hypermind-0.12.0}/docs/onboarding/topics/09-security-mindset.md +0 -0
  187. {hypermind-0.11.0 → hypermind-0.12.0}/docs/onboarding/week-1-foundations.md +0 -0
  188. {hypermind-0.11.0 → hypermind-0.12.0}/docs/onboarding/week-2-deep-dive.md +0 -0
  189. {hypermind-0.11.0 → hypermind-0.12.0}/docs/operate/01-deployment.md +0 -0
  190. {hypermind-0.11.0 → hypermind-0.12.0}/docs/operate/02-runbook.md +0 -0
  191. {hypermind-0.11.0 → hypermind-0.12.0}/docs/operate/03-resource-budget.md +0 -0
  192. {hypermind-0.11.0 → hypermind-0.12.0}/docs/operate/backup-restore.md +0 -0
  193. {hypermind-0.11.0 → hypermind-0.12.0}/docs/operate/data-residency.md +0 -0
  194. {hypermind-0.11.0 → hypermind-0.12.0}/docs/operate/key-rotation.md +0 -0
  195. {hypermind-0.11.0 → hypermind-0.12.0}/docs/operate/runbooks/dispute-backlog-drain.md +0 -0
  196. {hypermind-0.11.0 → hypermind-0.12.0}/docs/operate/runbooks/key-rotation.md +0 -0
  197. {hypermind-0.11.0 → hypermind-0.12.0}/docs/operate/runbooks/kms-rotation.md +0 -0
  198. {hypermind-0.11.0 → hypermind-0.12.0}/docs/operate/runbooks/multi-host-deploy.md +0 -0
  199. {hypermind-0.11.0 → hypermind-0.12.0}/docs/operate/runbooks/partition-heal.md +0 -0
  200. {hypermind-0.11.0 → hypermind-0.12.0}/docs/operate/runbooks/quorum-loss.md +0 -0
  201. {hypermind-0.11.0 → hypermind-0.12.0}/docs/operate/runbooks/rfp-dispute-triage.md +0 -0
  202. {hypermind-0.11.0 → hypermind-0.12.0}/docs/operate/runbooks/wire-cutover.md +0 -0
  203. {hypermind-0.11.0 → hypermind-0.12.0}/docs/operate/runbooks/witness-compromise.md +0 -0
  204. {hypermind-0.11.0 → hypermind-0.12.0}/docs/operate/runbooks/workflow-replay.md +0 -0
  205. {hypermind-0.11.0 → hypermind-0.12.0}/docs/operate/slo.md +0 -0
  206. {hypermind-0.11.0 → hypermind-0.12.0}/docs/paper/00-patent.md +0 -0
  207. {hypermind-0.11.0 → hypermind-0.12.0}/docs/paper/hypermind-paper-draft.md +0 -0
  208. {hypermind-0.11.0 → hypermind-0.12.0}/docs/paper/hypermind-paper.docx +0 -0
  209. {hypermind-0.11.0 → hypermind-0.12.0}/docs/paper/hypermind-paper.tex +0 -0
  210. {hypermind-0.11.0 → hypermind-0.12.0}/docs/release-notes/v1.0-checklist.md +0 -0
  211. {hypermind-0.11.0 → hypermind-0.12.0}/docs/release-notes/v1.0.0.md +0 -0
  212. {hypermind-0.11.0 → hypermind-0.12.0}/docs/security/threat-model.md +0 -0
  213. {hypermind-0.11.0 → hypermind-0.12.0}/docs/simlab/modes.md +0 -0
  214. {hypermind-0.11.0 → hypermind-0.12.0}/docs/simulations.md +0 -0
  215. {hypermind-0.11.0 → hypermind-0.12.0}/docs/spec/00-overview.md +0 -0
  216. {hypermind-0.11.0 → hypermind-0.12.0}/docs/spec/01-transport.md +0 -0
  217. {hypermind-0.11.0 → hypermind-0.12.0}/docs/spec/02-cryptography.md +0 -0
  218. {hypermind-0.11.0 → hypermind-0.12.0}/docs/spec/03-messages.md +0 -0
  219. {hypermind-0.11.0 → hypermind-0.12.0}/docs/spec/04-knowledge-model.md +0 -0
  220. {hypermind-0.11.0 → hypermind-0.12.0}/docs/spec/05-routing.md +0 -0
  221. {hypermind-0.11.0 → hypermind-0.12.0}/docs/spec/06-conformance.md +0 -0
  222. {hypermind-0.11.0 → hypermind-0.12.0}/docs/spec/07-trust-access-layer.md +0 -0
  223. {hypermind-0.11.0 → hypermind-0.12.0}/docs/spec/08-onboarding-contract.md +0 -0
  224. {hypermind-0.11.0 → hypermind-0.12.0}/docs/spec/09-agent-sdk.md +0 -0
  225. {hypermind-0.11.0 → hypermind-0.12.0}/docs/spec/10-disputes.md +0 -0
  226. {hypermind-0.11.0 → hypermind-0.12.0}/docs/spec/11-witness-transparency.md +0 -0
  227. {hypermind-0.11.0 → hypermind-0.12.0}/docs/spec/12-governance.md +0 -0
  228. {hypermind-0.11.0 → hypermind-0.12.0}/docs/spec/13-observability.md +0 -0
  229. {hypermind-0.11.0 → hypermind-0.12.0}/docs/spec/14-threat-model.md +0 -0
  230. {hypermind-0.11.0 → hypermind-0.12.0}/docs/spec/15-living-transmission.md +0 -0
  231. {hypermind-0.11.0 → hypermind-0.12.0}/docs/spec/16-reference-comparisons.md +0 -0
  232. {hypermind-0.11.0 → hypermind-0.12.0}/docs/spec/17-upgrade-v1.md +0 -0
  233. {hypermind-0.11.0 → hypermind-0.12.0}/docs/spec/18-revocation.md +0 -0
  234. {hypermind-0.11.0 → hypermind-0.12.0}/docs/spec/19-autonomy-contract.md +0 -0
  235. {hypermind-0.11.0 → hypermind-0.12.0}/docs/spec/20-swarm-intelligence.md +0 -0
  236. {hypermind-0.11.0 → hypermind-0.12.0}/docs/spec/21-belief-state.md +0 -0
  237. {hypermind-0.11.0 → hypermind-0.12.0}/docs/spec/21-private-namespaces.md +0 -0
  238. {hypermind-0.11.0 → hypermind-0.12.0}/docs/spec/22-transport-mtls.md +0 -0
  239. {hypermind-0.11.0 → hypermind-0.12.0}/docs/spec/23-envelope-encryption.md +0 -0
  240. {hypermind-0.11.0 → hypermind-0.12.0}/docs/spec/24-namespace-identity.md +0 -0
  241. {hypermind-0.11.0 → hypermind-0.12.0}/docs/spec/25-capability-extensions.md +0 -0
  242. {hypermind-0.11.0 → hypermind-0.12.0}/docs/spec/26-workflow.md +0 -0
  243. {hypermind-0.11.0 → hypermind-0.12.0}/docs/spec/27-contract-net.md +0 -0
  244. {hypermind-0.11.0 → hypermind-0.12.0}/docs/spec/28-distributed-trace.md +0 -0
  245. {hypermind-0.11.0 → hypermind-0.12.0}/docs/spec/_meta/gaps-closed.md +0 -0
  246. {hypermind-0.11.0 → hypermind-0.12.0}/docs/spec/appendix-N-calibration.md +0 -0
  247. {hypermind-0.11.0 → hypermind-0.12.0}/docs/spec/appendix-TLA.md +0 -0
  248. {hypermind-0.11.0 → hypermind-0.12.0}/docs/spec/appendix-z.md +0 -0
  249. {hypermind-0.11.0 → hypermind-0.12.0}/docs/spec/errata.md +0 -0
  250. {hypermind-0.11.0 → hypermind-0.12.0}/docs/spec/index.md +0 -0
  251. {hypermind-0.11.0 → hypermind-0.12.0}/docs/spec/invariants.md +0 -0
  252. {hypermind-0.11.0 → hypermind-0.12.0}/docs/spec/normative-trace.md +0 -0
  253. {hypermind-0.11.0 → hypermind-0.12.0}/docs/supply-chain/sbom.md +0 -0
  254. {hypermind-0.11.0 → hypermind-0.12.0}/docs/supply-chain/slsa.md +0 -0
  255. {hypermind-0.11.0 → hypermind-0.12.0}/docs/supply-chain/verify-self.md +0 -0
  256. {hypermind-0.11.0 → hypermind-0.12.0}/docs/sustainability.md +0 -0
  257. {hypermind-0.11.0 → hypermind-0.12.0}/examples/01_hello_world.py +0 -0
  258. {hypermind-0.11.0 → hypermind-0.12.0}/examples/02_two_agents_dispute.py +0 -0
  259. {hypermind-0.11.0 → hypermind-0.12.0}/examples/03_consult_panel.py +0 -0
  260. {hypermind-0.11.0 → hypermind-0.12.0}/examples/04_oracle_resolve.py +0 -0
  261. {hypermind-0.11.0 → hypermind-0.12.0}/examples/05_consult_to_synthesis.py +0 -0
  262. {hypermind-0.11.0 → hypermind-0.12.0}/examples/06_hybrid_pq.py +0 -0
  263. {hypermind-0.11.0 → hypermind-0.12.0}/examples/07_frost_threshold.py +0 -0
  264. {hypermind-0.11.0 → hypermind-0.12.0}/examples/08_ramp_and_diagnostics.py +0 -0
  265. {hypermind-0.11.0 → hypermind-0.12.0}/examples/09_audit_export_chain.py +0 -0
  266. {hypermind-0.11.0 → hypermind-0.12.0}/examples/10_autonomous_agent.py +0 -0
  267. {hypermind-0.11.0 → hypermind-0.12.0}/examples/11_swarm_deliberation.py +0 -0
  268. {hypermind-0.11.0 → hypermind-0.12.0}/examples/12_swarm_iq_scorecard.py +0 -0
  269. {hypermind-0.11.0 → hypermind-0.12.0}/examples/13_role_specialisation.py +0 -0
  270. {hypermind-0.11.0 → hypermind-0.12.0}/examples/14_active_learning_loop.py +0 -0
  271. {hypermind-0.11.0 → hypermind-0.12.0}/examples/16_wire_message.py +0 -0
  272. {hypermind-0.11.0 → hypermind-0.12.0}/examples/17_tool_delegation.py +0 -0
  273. {hypermind-0.11.0 → hypermind-0.12.0}/examples/18_custom_responder.py +0 -0
  274. {hypermind-0.11.0 → hypermind-0.12.0}/examples/19_governance.py +0 -0
  275. {hypermind-0.11.0 → hypermind-0.12.0}/examples/20_conformance_check.py +0 -0
  276. {hypermind-0.11.0 → hypermind-0.12.0}/examples/21_revocation.py +0 -0
  277. {hypermind-0.11.0 → hypermind-0.12.0}/examples/22_agent_card.py +0 -0
  278. {hypermind-0.11.0 → hypermind-0.12.0}/examples/23_task_delegation.py +0 -0
  279. {hypermind-0.11.0 → hypermind-0.12.0}/examples/24_mcp_tool_call.py +0 -0
  280. {hypermind-0.11.0 → hypermind-0.12.0}/examples/25_swarm_trace.py +0 -0
  281. {hypermind-0.11.0 → hypermind-0.12.0}/examples/coordination/01_durable_workflow.py +0 -0
  282. {hypermind-0.11.0 → hypermind-0.12.0}/examples/coordination/02_contract_net.py +0 -0
  283. {hypermind-0.11.0 → hypermind-0.12.0}/examples/coordination/03_belief_and_plan.py +0 -0
  284. {hypermind-0.11.0 → hypermind-0.12.0}/examples/coordination/__init__.py +0 -0
  285. {hypermind-0.11.0 → hypermind-0.12.0}/examples/coordination/usecases/__init__.py +0 -0
  286. {hypermind-0.11.0 → hypermind-0.12.0}/examples/coordination/usecases/ai_01_fed_benchmark.py +0 -0
  287. {hypermind-0.11.0 → hypermind-0.12.0}/examples/coordination/usecases/ai_alignment_redteam.py +0 -0
  288. {hypermind-0.11.0 → hypermind-0.12.0}/examples/coordination/usecases/cy_05_ir_swarm.py +0 -0
  289. {hypermind-0.11.0 → hypermind-0.12.0}/examples/coordination/usecases/cy_11_ransomware_intel.py +0 -0
  290. {hypermind-0.11.0 → hypermind-0.12.0}/examples/coordination/usecases/ed_credentials.py +0 -0
  291. {hypermind-0.11.0 → hypermind-0.12.0}/examples/coordination/usecases/en_grid_coordinate.py +0 -0
  292. {hypermind-0.11.0 → hypermind-0.12.0}/examples/coordination/usecases/fi_04_bsa_314b.py +0 -0
  293. {hypermind-0.11.0 → hypermind-0.12.0}/examples/coordination/usecases/fi_22_ma_dataroom.py +0 -0
  294. {hypermind-0.11.0 → hypermind-0.12.0}/examples/coordination/usecases/gv_01_intel_sharing.py +0 -0
  295. {hypermind-0.11.0 → hypermind-0.12.0}/examples/coordination/usecases/gv_21_red_team.py +0 -0
  296. {hypermind-0.11.0 → hypermind-0.12.0}/examples/coordination/usecases/hc_06_rare_disease.py +0 -0
  297. {hypermind-0.11.0 → hypermind-0.12.0}/examples/coordination/usecases/hc_21_fed_learning.py +0 -0
  298. {hypermind-0.11.0 → hypermind-0.12.0}/examples/coordination/usecases/lg_ediscovery.py +0 -0
  299. {hypermind-0.11.0 → hypermind-0.12.0}/examples/coordination/usecases/mf_supply_chain.py +0 -0
  300. {hypermind-0.11.0 → hypermind-0.12.0}/examples/e2e_many_agents.py +0 -0
  301. {hypermind-0.11.0 → hypermind-0.12.0}/examples/full_e2e_demo.py +0 -0
  302. {hypermind-0.11.0 → hypermind-0.12.0}/examples/lifecycle.py +0 -0
  303. {hypermind-0.11.0 → hypermind-0.12.0}/examples/scenario_aar.py +0 -0
  304. {hypermind-0.11.0 → hypermind-0.12.0}/examples/scenario_backtest.py +0 -0
  305. {hypermind-0.11.0 → hypermind-0.12.0}/examples/scenario_capability_attenuation.py +0 -0
  306. {hypermind-0.11.0 → hypermind-0.12.0}/examples/scenario_conformance.py +0 -0
  307. {hypermind-0.11.0 → hypermind-0.12.0}/examples/scenario_crisis_tabletop.py +0 -0
  308. {hypermind-0.11.0 → hypermind-0.12.0}/examples/scenario_cross_namespace_federation.py +0 -0
  309. {hypermind-0.11.0 → hypermind-0.12.0}/examples/scenario_decision_tournament.py +0 -0
  310. {hypermind-0.11.0 → hypermind-0.12.0}/examples/scenario_dispute_lifecycle_async.py +0 -0
  311. {hypermind-0.11.0 → hypermind-0.12.0}/examples/scenario_evaluation.py +0 -0
  312. {hypermind-0.11.0 → hypermind-0.12.0}/examples/scenario_geopolitical_crisis.py +0 -0
  313. {hypermind-0.11.0 → hypermind-0.12.0}/examples/scenario_geopolitical_traced.py +0 -0
  314. {hypermind-0.11.0 → hypermind-0.12.0}/examples/scenario_governance_committee.py +0 -0
  315. {hypermind-0.11.0 → hypermind-0.12.0}/examples/scenario_information_pipeline.py +0 -0
  316. {hypermind-0.11.0 → hypermind-0.12.0}/examples/scenario_learning_loop.py +0 -0
  317. {hypermind-0.11.0 → hypermind-0.12.0}/examples/scenario_namespace_trust.py +0 -0
  318. {hypermind-0.11.0 → hypermind-0.12.0}/examples/scenario_persona_panel.py +0 -0
  319. {hypermind-0.11.0 → hypermind-0.12.0}/examples/scenario_private_namespace.py +0 -0
  320. {hypermind-0.11.0 → hypermind-0.12.0}/examples/scenario_red_team.py +0 -0
  321. {hypermind-0.11.0 → hypermind-0.12.0}/examples/scenario_regulated_consortium.py +0 -0
  322. {hypermind-0.11.0 → hypermind-0.12.0}/examples/scenario_threat_intel.py +0 -0
  323. {hypermind-0.11.0 → hypermind-0.12.0}/examples/scenario_vouch_chain.py +0 -0
  324. {hypermind-0.11.0 → hypermind-0.12.0}/examples/scenario_what_if_tree.py +0 -0
  325. {hypermind-0.11.0 → hypermind-0.12.0}/examples/serve_api.py +0 -0
  326. {hypermind-0.11.0 → hypermind-0.12.0}/examples/two_node_tcp.py +0 -0
  327. {hypermind-0.11.0 → hypermind-0.12.0}/formal/README.md +0 -0
  328. {hypermind-0.11.0 → hypermind-0.12.0}/formal/hax-rust/README.md +0 -0
  329. {hypermind-0.11.0 → hypermind-0.12.0}/formal/hax-rust/scope.md +0 -0
  330. {hypermind-0.11.0 → hypermind-0.12.0}/formal/proverif/dispute_fsm.pv +0 -0
  331. {hypermind-0.11.0 → hypermind-0.12.0}/formal/proverif/dispute_liveness.pv +0 -0
  332. {hypermind-0.11.0 → hypermind-0.12.0}/formal/tamarin/capability_chain.spthy +0 -0
  333. {hypermind-0.11.0 → hypermind-0.12.0}/formal/tamarin/dispute_fsm.spthy +0 -0
  334. {hypermind-0.11.0 → hypermind-0.12.0}/formal/tamarin/signed_statement.spthy +0 -0
  335. {hypermind-0.11.0 → hypermind-0.12.0}/formal/tamarin/wire_security.spthy +0 -0
  336. {hypermind-0.11.0 → hypermind-0.12.0}/fuzz/README.md +0 -0
  337. {hypermind-0.11.0 → hypermind-0.12.0}/fuzz/__init__.py +0 -0
  338. {hypermind-0.11.0 → hypermind-0.12.0}/fuzz/fuzz_agent_card.py +0 -0
  339. {hypermind-0.11.0 → hypermind-0.12.0}/fuzz/fuzz_anti_entropy.py +0 -0
  340. {hypermind-0.11.0 → hypermind-0.12.0}/fuzz/fuzz_capability.py +0 -0
  341. {hypermind-0.11.0 → hypermind-0.12.0}/fuzz/fuzz_dispute.py +0 -0
  342. {hypermind-0.11.0 → hypermind-0.12.0}/fuzz/fuzz_inclusion_proof.py +0 -0
  343. {hypermind-0.11.0 → hypermind-0.12.0}/fuzz/fuzz_wire.py +0 -0
  344. {hypermind-0.11.0 → hypermind-0.12.0}/fuzz/seed_corpus.py +0 -0
  345. {hypermind-0.11.0 → hypermind-0.12.0}/harness/__init__.py +0 -0
  346. {hypermind-0.11.0 → hypermind-0.12.0}/harness/__main__.py +0 -0
  347. {hypermind-0.11.0 → hypermind-0.12.0}/harness/assertions.py +0 -0
  348. {hypermind-0.11.0 → hypermind-0.12.0}/harness/fixtures.py +0 -0
  349. {hypermind-0.11.0 → hypermind-0.12.0}/harness/report.py +0 -0
  350. {hypermind-0.11.0 → hypermind-0.12.0}/harness/roles.py +0 -0
  351. {hypermind-0.11.0 → hypermind-0.12.0}/harness/runner.py +0 -0
  352. {hypermind-0.11.0 → hypermind-0.12.0}/harness/scenario.py +0 -0
  353. {hypermind-0.11.0 → hypermind-0.12.0}/harness/scenarios/__init__.py +0 -0
  354. {hypermind-0.11.0 → hypermind-0.12.0}/harness/scenarios/autonomous_evolution.py +0 -0
  355. {hypermind-0.11.0 → hypermind-0.12.0}/harness/scenarios/swarm_iq_benchmark.py +0 -0
  356. {hypermind-0.11.0 → hypermind-0.12.0}/harness/scenarios/threat_intel.py +0 -0
  357. {hypermind-0.11.0 → hypermind-0.12.0}/mkdocs.yml +0 -0
  358. {hypermind-0.11.0 → hypermind-0.12.0}/reference_verifier/__init__.py +0 -0
  359. {hypermind-0.11.0 → hypermind-0.12.0}/reference_verifier/schemas/encrypted_statement.cddl +0 -0
  360. {hypermind-0.11.0 → hypermind-0.12.0}/reference_verifier/schemas/namespace_accept.cddl +0 -0
  361. {hypermind-0.11.0 → hypermind-0.12.0}/reference_verifier/schemas/namespace_create.cddl +0 -0
  362. {hypermind-0.11.0 → hypermind-0.12.0}/reference_verifier/schemas/namespace_founding_attest.cddl +0 -0
  363. {hypermind-0.11.0 → hypermind-0.12.0}/reference_verifier/schemas/namespace_invite.cddl +0 -0
  364. {hypermind-0.11.0 → hypermind-0.12.0}/reference_verifier/schemas/wire-v0.1.cddl +0 -0
  365. {hypermind-0.11.0 → hypermind-0.12.0}/reference_verifier/verifier.py +0 -0
  366. {hypermind-0.11.0 → hypermind-0.12.0}/review/__init__.py +0 -0
  367. {hypermind-0.11.0 → hypermind-0.12.0}/review/__main__.py +0 -0
  368. {hypermind-0.11.0 → hypermind-0.12.0}/review/agents.py +0 -0
  369. {hypermind-0.11.0 → hypermind-0.12.0}/review/models.py +0 -0
  370. {hypermind-0.11.0 → hypermind-0.12.0}/review/runner.py +0 -0
  371. {hypermind-0.11.0 → hypermind-0.12.0}/src/hmctl/__init__.py +0 -0
  372. {hypermind-0.11.0 → hypermind-0.12.0}/src/hmctl/cli.py +0 -0
  373. {hypermind-0.11.0 → hypermind-0.12.0}/src/hypermind/_deprecations.py +0 -0
  374. {hypermind-0.11.0 → hypermind-0.12.0}/src/hypermind/agent.py +0 -0
  375. {hypermind-0.11.0 → hypermind-0.12.0}/src/hypermind/agent_card.py +0 -0
  376. {hypermind-0.11.0 → hypermind-0.12.0}/src/hypermind/api/__init__.py +0 -0
  377. {hypermind-0.11.0 → hypermind-0.12.0}/src/hypermind/api/app.py +0 -0
  378. {hypermind-0.11.0 → hypermind-0.12.0}/src/hypermind/capability.py +0 -0
  379. {hypermind-0.11.0 → hypermind-0.12.0}/src/hypermind/consult.py +0 -0
  380. {hypermind-0.11.0 → hypermind-0.12.0}/src/hypermind/consult_bias.py +0 -0
  381. {hypermind-0.11.0 → hypermind-0.12.0}/src/hypermind/contract_net.py +0 -0
  382. {hypermind-0.11.0 → hypermind-0.12.0}/src/hypermind/crypto/__init__.py +0 -0
  383. {hypermind-0.11.0 → hypermind-0.12.0}/src/hypermind/crypto/cose_encrypt.py +0 -0
  384. {hypermind-0.11.0 → hypermind-0.12.0}/src/hypermind/crypto/dkg.py +0 -0
  385. {hypermind-0.11.0 → hypermind-0.12.0}/src/hypermind/crypto/domain.py +0 -0
  386. {hypermind-0.11.0 → hypermind-0.12.0}/src/hypermind/crypto/frost.py +0 -0
  387. {hypermind-0.11.0 → hypermind-0.12.0}/src/hypermind/crypto/hashing.py +0 -0
  388. {hypermind-0.11.0 → hypermind-0.12.0}/src/hypermind/crypto/hlc.py +0 -0
  389. {hypermind-0.11.0 → hypermind-0.12.0}/src/hypermind/crypto/hpke.py +0 -0
  390. {hypermind-0.11.0 → hypermind-0.12.0}/src/hypermind/crypto/kms.py +0 -0
  391. {hypermind-0.11.0 → hypermind-0.12.0}/src/hypermind/crypto/kms_backends/__init__.py +0 -0
  392. {hypermind-0.11.0 → hypermind-0.12.0}/src/hypermind/crypto/kms_backends/aws.py +0 -0
  393. {hypermind-0.11.0 → hypermind-0.12.0}/src/hypermind/crypto/kms_backends/azure.py +0 -0
  394. {hypermind-0.11.0 → hypermind-0.12.0}/src/hypermind/crypto/kms_backends/gcp.py +0 -0
  395. {hypermind-0.11.0 → hypermind-0.12.0}/src/hypermind/crypto/kms_backends/vault.py +0 -0
  396. {hypermind-0.11.0 → hypermind-0.12.0}/src/hypermind/crypto/namespace_root.py +0 -0
  397. {hypermind-0.11.0 → hypermind-0.12.0}/src/hypermind/crypto/pq.py +0 -0
  398. {hypermind-0.11.0 → hypermind-0.12.0}/src/hypermind/crypto/room_epoch.py +0 -0
  399. {hypermind-0.11.0 → hypermind-0.12.0}/src/hypermind/crypto/signing.py +0 -0
  400. {hypermind-0.11.0 → hypermind-0.12.0}/src/hypermind/deliberation.py +0 -0
  401. {hypermind-0.11.0 → hypermind-0.12.0}/src/hypermind/did_web.py +0 -0
  402. {hypermind-0.11.0 → hypermind-0.12.0}/src/hypermind/dispute.py +0 -0
  403. {hypermind-0.11.0 → hypermind-0.12.0}/src/hypermind/errors.py +0 -0
  404. {hypermind-0.11.0 → hypermind-0.12.0}/src/hypermind/eval/__init__.py +0 -0
  405. {hypermind-0.11.0 → hypermind-0.12.0}/src/hypermind/eval/calibration.py +0 -0
  406. {hypermind-0.11.0 → hypermind-0.12.0}/src/hypermind/eval/comparison.py +0 -0
  407. {hypermind-0.11.0 → hypermind-0.12.0}/src/hypermind/eval/replay.py +0 -0
  408. {hypermind-0.11.0 → hypermind-0.12.0}/src/hypermind/eval/swarm_iq.py +0 -0
  409. {hypermind-0.11.0 → hypermind-0.12.0}/src/hypermind/knowledge/__init__.py +0 -0
  410. {hypermind-0.11.0 → hypermind-0.12.0}/src/hypermind/knowledge/citation_graph.py +0 -0
  411. {hypermind-0.11.0 → hypermind-0.12.0}/src/hypermind/knowledge/correlated_agreement.py +0 -0
  412. {hypermind-0.11.0 → hypermind-0.12.0}/src/hypermind/knowledge/embedding_registry.py +0 -0
  413. {hypermind-0.11.0 → hypermind-0.12.0}/src/hypermind/knowledge/kernel_store.py +0 -0
  414. {hypermind-0.11.0 → hypermind-0.12.0}/src/hypermind/knowledge/rekor.py +0 -0
  415. {hypermind-0.11.0 → hypermind-0.12.0}/src/hypermind/knowledge/reputation.py +0 -0
  416. {hypermind-0.11.0 → hypermind-0.12.0}/src/hypermind/knowledge/swarm_memory.py +0 -0
  417. {hypermind-0.11.0 → hypermind-0.12.0}/src/hypermind/knowledge/transparency.py +0 -0
  418. {hypermind-0.11.0 → hypermind-0.12.0}/src/hypermind/mcp/__init__.py +0 -0
  419. {hypermind-0.11.0 → hypermind-0.12.0}/src/hypermind/mcp/bridge.py +0 -0
  420. {hypermind-0.11.0 → hypermind-0.12.0}/src/hypermind/mcp/client.py +0 -0
  421. {hypermind-0.11.0 → hypermind-0.12.0}/src/hypermind/mcp/provenance.py +0 -0
  422. {hypermind-0.11.0 → hypermind-0.12.0}/src/hypermind/mcp/relata_tools.py +0 -0
  423. {hypermind-0.11.0 → hypermind-0.12.0}/src/hypermind/mcp/server.py +0 -0
  424. {hypermind-0.11.0 → hypermind-0.12.0}/src/hypermind/mcp/transport.py +0 -0
  425. {hypermind-0.11.0 → hypermind-0.12.0}/src/hypermind/mind/__init__.py +0 -0
  426. {hypermind-0.11.0 → hypermind-0.12.0}/src/hypermind/mind/active.py +0 -0
  427. {hypermind-0.11.0 → hypermind-0.12.0}/src/hypermind/mind/belief.py +0 -0
  428. {hypermind-0.11.0 → hypermind-0.12.0}/src/hypermind/mind/deliberator.py +0 -0
  429. {hypermind-0.11.0 → hypermind-0.12.0}/src/hypermind/mind/diversity.py +0 -0
  430. {hypermind-0.11.0 → hypermind-0.12.0}/src/hypermind/mind/evolve.py +0 -0
  431. {hypermind-0.11.0 → hypermind-0.12.0}/src/hypermind/mind/federation.py +0 -0
  432. {hypermind-0.11.0 → hypermind-0.12.0}/src/hypermind/mind/goals.py +0 -0
  433. {hypermind-0.11.0 → hypermind-0.12.0}/src/hypermind/mind/integration.py +0 -0
  434. {hypermind-0.11.0 → hypermind-0.12.0}/src/hypermind/mind/mediator.py +0 -0
  435. {hypermind-0.11.0 → hypermind-0.12.0}/src/hypermind/mind/memory_store.py +0 -0
  436. {hypermind-0.11.0 → hypermind-0.12.0}/src/hypermind/mind/policy.py +0 -0
  437. {hypermind-0.11.0 → hypermind-0.12.0}/src/hypermind/mind/records.py +0 -0
  438. {hypermind-0.11.0 → hypermind-0.12.0}/src/hypermind/mind/roles.py +0 -0
  439. {hypermind-0.11.0 → hypermind-0.12.0}/src/hypermind/mind/sybil_guard.py +0 -0
  440. {hypermind-0.11.0 → hypermind-0.12.0}/src/hypermind/mind/world_model.py +0 -0
  441. {hypermind-0.11.0 → hypermind-0.12.0}/src/hypermind/namespace.py +0 -0
  442. {hypermind-0.11.0 → hypermind-0.12.0}/src/hypermind/namespace_policy.py +0 -0
  443. {hypermind-0.11.0 → hypermind-0.12.0}/src/hypermind/observability/__init__.py +0 -0
  444. {hypermind-0.11.0 → hypermind-0.12.0}/src/hypermind/observability/asgi.py +0 -0
  445. {hypermind-0.11.0 → hypermind-0.12.0}/src/hypermind/observability/cost.py +0 -0
  446. {hypermind-0.11.0 → hypermind-0.12.0}/src/hypermind/observability/otel_export.py +0 -0
  447. {hypermind-0.11.0 → hypermind-0.12.0}/src/hypermind/observability/recorder.py +0 -0
  448. {hypermind-0.11.0 → hypermind-0.12.0}/src/hypermind/observability/swarm_trace.py +0 -0
  449. {hypermind-0.11.0 → hypermind-0.12.0}/src/hypermind/pin_policy.py +0 -0
  450. {hypermind-0.11.0 → hypermind-0.12.0}/src/hypermind/py.typed +0 -0
  451. {hypermind-0.11.0 → hypermind-0.12.0}/src/hypermind/responders/__init__.py +0 -0
  452. {hypermind-0.11.0 → hypermind-0.12.0}/src/hypermind/responders/anthropic.py +0 -0
  453. {hypermind-0.11.0 → hypermind-0.12.0}/src/hypermind/responders/base.py +0 -0
  454. {hypermind-0.11.0 → hypermind-0.12.0}/src/hypermind/responders/openai.py +0 -0
  455. {hypermind-0.11.0 → hypermind-0.12.0}/src/hypermind/responders/router.py +0 -0
  456. {hypermind-0.11.0 → hypermind-0.12.0}/src/hypermind/responders/structured.py +0 -0
  457. {hypermind-0.11.0 → hypermind-0.12.0}/src/hypermind/responders/tools.py +0 -0
  458. {hypermind-0.11.0 → hypermind-0.12.0}/src/hypermind/revocation.py +0 -0
  459. {hypermind-0.11.0 → hypermind-0.12.0}/src/hypermind/rule_ids.py +0 -0
  460. {hypermind-0.11.0 → hypermind-0.12.0}/src/hypermind/schemas/encrypted_statement.cddl +0 -0
  461. {hypermind-0.11.0 → hypermind-0.12.0}/src/hypermind/schemas/namespace_accept.cddl +0 -0
  462. {hypermind-0.11.0 → hypermind-0.12.0}/src/hypermind/schemas/namespace_create.cddl +0 -0
  463. {hypermind-0.11.0 → hypermind-0.12.0}/src/hypermind/schemas/namespace_founding_attest.cddl +0 -0
  464. {hypermind-0.11.0 → hypermind-0.12.0}/src/hypermind/schemas/namespace_invite.cddl +0 -0
  465. {hypermind-0.11.0 → hypermind-0.12.0}/src/hypermind/schemas/wire-v0.1.cddl +0 -0
  466. {hypermind-0.11.0 → hypermind-0.12.0}/src/hypermind/simlab/__init__.py +0 -0
  467. {hypermind-0.11.0 → hypermind-0.12.0}/src/hypermind/simlab/_persona_registry.py +0 -0
  468. {hypermind-0.11.0 → hypermind-0.12.0}/src/hypermind/simlab/_scenario_impl.py +0 -0
  469. {hypermind-0.11.0 → hypermind-0.12.0}/src/hypermind/simlab/app.py +0 -0
  470. {hypermind-0.11.0 → hypermind-0.12.0}/src/hypermind/simlab/backends/__init__.py +0 -0
  471. {hypermind-0.11.0 → hypermind-0.12.0}/src/hypermind/simlab/backends/anchor.py +0 -0
  472. {hypermind-0.11.0 → hypermind-0.12.0}/src/hypermind/simlab/backends/local.py +0 -0
  473. {hypermind-0.11.0 → hypermind-0.12.0}/src/hypermind/simlab/backends/server.py +0 -0
  474. {hypermind-0.11.0 → hypermind-0.12.0}/src/hypermind/simlab/cli_command.py +0 -0
  475. {hypermind-0.11.0 → hypermind-0.12.0}/src/hypermind/simlab/config.py +0 -0
  476. {hypermind-0.11.0 → hypermind-0.12.0}/src/hypermind/simlab/deployment.py +0 -0
  477. {hypermind-0.11.0 → hypermind-0.12.0}/src/hypermind/simlab/knowledge.py +0 -0
  478. {hypermind-0.11.0 → hypermind-0.12.0}/src/hypermind/simlab/learning.py +0 -0
  479. {hypermind-0.11.0 → hypermind-0.12.0}/src/hypermind/simlab/modes/__init__.py +0 -0
  480. {hypermind-0.11.0 → hypermind-0.12.0}/src/hypermind/simlab/modes/_eval_real_llm.py +0 -0
  481. {hypermind-0.11.0 → hypermind-0.12.0}/src/hypermind/simlab/modes/aar.py +0 -0
  482. {hypermind-0.11.0 → hypermind-0.12.0}/src/hypermind/simlab/modes/backtest.py +0 -0
  483. {hypermind-0.11.0 → hypermind-0.12.0}/src/hypermind/simlab/modes/binary_forecast.py +0 -0
  484. {hypermind-0.11.0 → hypermind-0.12.0}/src/hypermind/simlab/modes/conformance.py +0 -0
  485. {hypermind-0.11.0 → hypermind-0.12.0}/src/hypermind/simlab/modes/evaluation.py +0 -0
  486. {hypermind-0.11.0 → hypermind-0.12.0}/src/hypermind/simlab/modes/governance.py +0 -0
  487. {hypermind-0.11.0 → hypermind-0.12.0}/src/hypermind/simlab/modes/redteam.py +0 -0
  488. {hypermind-0.11.0 → hypermind-0.12.0}/src/hypermind/simlab/modes/tabletop.py +0 -0
  489. {hypermind-0.11.0 → hypermind-0.12.0}/src/hypermind/simlab/modes/tournament.py +0 -0
  490. {hypermind-0.11.0 → hypermind-0.12.0}/src/hypermind/simlab/modes/whatif.py +0 -0
  491. {hypermind-0.11.0 → hypermind-0.12.0}/src/hypermind/simlab/namespace.py +0 -0
  492. {hypermind-0.11.0 → hypermind-0.12.0}/src/hypermind/simlab/personas.py +0 -0
  493. {hypermind-0.11.0 → hypermind-0.12.0}/src/hypermind/simlab/prompt_generator.py +0 -0
  494. {hypermind-0.11.0 → hypermind-0.12.0}/src/hypermind/simlab/question_sets/geopolitics_q20.json +0 -0
  495. {hypermind-0.11.0 → hypermind-0.12.0}/src/hypermind/simlab/question_sets/governance_q5.json +0 -0
  496. {hypermind-0.11.0 → hypermind-0.12.0}/src/hypermind/simlab/question_sets/msft_outlook_q10.json +0 -0
  497. {hypermind-0.11.0 → hypermind-0.12.0}/src/hypermind/simlab/question_sets/whatif_q3.json +0 -0
  498. {hypermind-0.11.0 → hypermind-0.12.0}/src/hypermind/simlab/registry.py +0 -0
  499. {hypermind-0.11.0 → hypermind-0.12.0}/src/hypermind/simlab/runner.py +0 -0
  500. {hypermind-0.11.0 → hypermind-0.12.0}/src/hypermind/simlab/scenario.py +0 -0
  501. {hypermind-0.11.0 → hypermind-0.12.0}/src/hypermind/simlab/swarms.py +0 -0
  502. {hypermind-0.11.0 → hypermind-0.12.0}/src/hypermind/simlab/tool_handlers/__init__.py +0 -0
  503. {hypermind-0.11.0 → hypermind-0.12.0}/src/hypermind/simlab/tool_handlers/alpha_vantage.py +0 -0
  504. {hypermind-0.11.0 → hypermind-0.12.0}/src/hypermind/simlab/tool_handlers/brave.py +0 -0
  505. {hypermind-0.11.0 → hypermind-0.12.0}/src/hypermind/simlab/tool_handlers/newsapi.py +0 -0
  506. {hypermind-0.11.0 → hypermind-0.12.0}/src/hypermind/simlab/tool_handlers/openweather.py +0 -0
  507. {hypermind-0.11.0 → hypermind-0.12.0}/src/hypermind/simlab/tool_handlers/pinecone.py +0 -0
  508. {hypermind-0.11.0 → hypermind-0.12.0}/src/hypermind/simlab/tool_handlers/qdrant.py +0 -0
  509. {hypermind-0.11.0 → hypermind-0.12.0}/src/hypermind/simlab/tool_handlers/query_knowledge_base.py +0 -0
  510. {hypermind-0.11.0 → hypermind-0.12.0}/src/hypermind/simlab/tool_handlers/relata_recall.py +0 -0
  511. {hypermind-0.11.0 → hypermind-0.12.0}/src/hypermind/simlab/tool_handlers/retrieve_document.py +0 -0
  512. {hypermind-0.11.0 → hypermind-0.12.0}/src/hypermind/simlab/tool_handlers/serper.py +0 -0
  513. {hypermind-0.11.0 → hypermind-0.12.0}/src/hypermind/simlab/tool_handlers/tavily.py +0 -0
  514. {hypermind-0.11.0 → hypermind-0.12.0}/src/hypermind/simlab/tool_handlers/weaviate.py +0 -0
  515. {hypermind-0.11.0 → hypermind-0.12.0}/src/hypermind/simlab/tool_handlers/wikipedia.py +0 -0
  516. {hypermind-0.11.0 → hypermind-0.12.0}/src/hypermind/simlab/tool_handlers/wolfram.py +0 -0
  517. {hypermind-0.11.0 → hypermind-0.12.0}/src/hypermind/simlab/tool_handlers/yahoo_finance.py +0 -0
  518. {hypermind-0.11.0 → hypermind-0.12.0}/src/hypermind/simlab/tool_registry.py +0 -0
  519. {hypermind-0.11.0 → hypermind-0.12.0}/src/hypermind/simlab/topic_adapter.py +0 -0
  520. {hypermind-0.11.0 → hypermind-0.12.0}/src/hypermind/simlab/topic_questions.py +0 -0
  521. {hypermind-0.11.0 → hypermind-0.12.0}/src/hypermind/storage/__init__.py +0 -0
  522. {hypermind-0.11.0 → hypermind-0.12.0}/src/hypermind/storage/backend.py +0 -0
  523. {hypermind-0.11.0 → hypermind-0.12.0}/src/hypermind/storage/relata.py +0 -0
  524. {hypermind-0.11.0 → hypermind-0.12.0}/src/hypermind/storage/sqlite.py +0 -0
  525. {hypermind-0.11.0 → hypermind-0.12.0}/src/hypermind/sync.py +0 -0
  526. {hypermind-0.11.0 → hypermind-0.12.0}/src/hypermind/tal.py +0 -0
  527. {hypermind-0.11.0 → hypermind-0.12.0}/src/hypermind/tasks.py +0 -0
  528. {hypermind-0.11.0 → hypermind-0.12.0}/src/hypermind/testing.py +0 -0
  529. {hypermind-0.11.0 → hypermind-0.12.0}/src/hypermind/tools/__init__.py +0 -0
  530. {hypermind-0.11.0 → hypermind-0.12.0}/src/hypermind/tools/registry.py +0 -0
  531. {hypermind-0.11.0 → hypermind-0.12.0}/src/hypermind/transport/__init__.py +0 -0
  532. {hypermind-0.11.0 → hypermind-0.12.0}/src/hypermind/transport/anti_entropy.py +0 -0
  533. {hypermind-0.11.0 → hypermind-0.12.0}/src/hypermind/transport/bus.py +0 -0
  534. {hypermind-0.11.0 → hypermind-0.12.0}/src/hypermind/transport/knows_delta.py +0 -0
  535. {hypermind-0.11.0 → hypermind-0.12.0}/src/hypermind/transport/libp2p.py +0 -0
  536. {hypermind-0.11.0 → hypermind-0.12.0}/src/hypermind/transport/placement.py +0 -0
  537. {hypermind-0.11.0 → hypermind-0.12.0}/src/hypermind/transport/tcp.py +0 -0
  538. {hypermind-0.11.0 → hypermind-0.12.0}/src/hypermind/transport/tls_profile.py +0 -0
  539. {hypermind-0.11.0 → hypermind-0.12.0}/src/hypermind/types.py +0 -0
  540. {hypermind-0.11.0 → hypermind-0.12.0}/src/hypermind/uncertainty.py +0 -0
  541. {hypermind-0.11.0 → hypermind-0.12.0}/src/hypermind/wire.py +0 -0
  542. {hypermind-0.11.0 → hypermind-0.12.0}/src/hypermind/workflow/__init__.py +0 -0
  543. {hypermind-0.11.0 → hypermind-0.12.0}/src/hypermind/workflow/engine.py +0 -0
  544. {hypermind-0.11.0 → hypermind-0.12.0}/src/hypermind/workflow/plan.py +0 -0
  545. {hypermind-0.11.0 → hypermind-0.12.0}/src/hypermind/workflow/repair.py +0 -0
  546. {hypermind-0.11.0 → hypermind-0.12.0}/storage-backend-requirements.md +0 -0
  547. {hypermind-0.11.0 → hypermind-0.12.0}/tests/__init__.py +0 -0
  548. {hypermind-0.11.0 → hypermind-0.12.0}/tests/api/__init__.py +0 -0
  549. {hypermind-0.11.0 → hypermind-0.12.0}/tests/api/test_eval_endpoints.py +0 -0
  550. {hypermind-0.11.0 → hypermind-0.12.0}/tests/api/test_events_stream.py +0 -0
  551. {hypermind-0.11.0 → hypermind-0.12.0}/tests/api/test_management_app.py +0 -0
  552. {hypermind-0.11.0 → hypermind-0.12.0}/tests/chaos/__init__.py +0 -0
  553. {hypermind-0.11.0 → hypermind-0.12.0}/tests/chaos/test_gossip_amplification.py +0 -0
  554. {hypermind-0.11.0 → hypermind-0.12.0}/tests/chaos/test_kill_agent_during_rfp.py +0 -0
  555. {hypermind-0.11.0 → hypermind-0.12.0}/tests/chaos/test_partition_during_workflow.py +0 -0
  556. {hypermind-0.11.0 → hypermind-0.12.0}/tests/chaos/test_slow_consumer_backpressure.py +0 -0
  557. {hypermind-0.11.0 → hypermind-0.12.0}/tests/chaos/test_slow_peer.py +0 -0
  558. {hypermind-0.11.0 → hypermind-0.12.0}/tests/conformance/__init__.py +0 -0
  559. {hypermind-0.11.0 → hypermind-0.12.0}/tests/conformance/generate_vectors.py +0 -0
  560. {hypermind-0.11.0 → hypermind-0.12.0}/tests/conformance/vectors/SIGNING.md +0 -0
  561. {hypermind-0.11.0 → hypermind-0.12.0}/tests/conformance/vectors/agent-card-01.json +0 -0
  562. {hypermind-0.11.0 → hypermind-0.12.0}/tests/conformance/vectors/agent-card-02.json +0 -0
  563. {hypermind-0.11.0 → hypermind-0.12.0}/tests/conformance/vectors/capability-01.json +0 -0
  564. {hypermind-0.11.0 → hypermind-0.12.0}/tests/conformance/vectors/capability-02.json +0 -0
  565. {hypermind-0.11.0 → hypermind-0.12.0}/tests/conformance/vectors/capability-03.json +0 -0
  566. {hypermind-0.11.0 → hypermind-0.12.0}/tests/conformance/vectors/dispute-01.json +0 -0
  567. {hypermind-0.11.0 → hypermind-0.12.0}/tests/conformance/vectors/dispute-02.json +0 -0
  568. {hypermind-0.11.0 → hypermind-0.12.0}/tests/conformance/vectors/dispute-03.json +0 -0
  569. {hypermind-0.11.0 → hypermind-0.12.0}/tests/conformance/vectors/dispute-04.json +0 -0
  570. {hypermind-0.11.0 → hypermind-0.12.0}/tests/conformance/vectors/dispute-05.json +0 -0
  571. {hypermind-0.11.0 → hypermind-0.12.0}/tests/conformance/vectors/frost-01.json +0 -0
  572. {hypermind-0.11.0 → hypermind-0.12.0}/tests/conformance/vectors/frost-02.json +0 -0
  573. {hypermind-0.11.0 → hypermind-0.12.0}/tests/conformance/vectors/frost-03.json +0 -0
  574. {hypermind-0.11.0 → hypermind-0.12.0}/tests/conformance/vectors/knows-delta-01.json +0 -0
  575. {hypermind-0.11.0 → hypermind-0.12.0}/tests/conformance/vectors/knows-delta-02.json +0 -0
  576. {hypermind-0.11.0 → hypermind-0.12.0}/tests/conformance/vectors/mcp-prov-01.json +0 -0
  577. {hypermind-0.11.0 → hypermind-0.12.0}/tests/conformance/vectors/mcp-prov-02.json +0 -0
  578. {hypermind-0.11.0 → hypermind-0.12.0}/tests/conformance/vectors/merkle-01.json +0 -0
  579. {hypermind-0.11.0 → hypermind-0.12.0}/tests/conformance/vectors/merkle-02.json +0 -0
  580. {hypermind-0.11.0 → hypermind-0.12.0}/tests/conformance/vectors/merkle-03.json +0 -0
  581. {hypermind-0.11.0 → hypermind-0.12.0}/tests/conformance/vectors/merkle-04.json +0 -0
  582. {hypermind-0.11.0 → hypermind-0.12.0}/tests/conformance/vectors/rep-decay-01.json +0 -0
  583. {hypermind-0.11.0 → hypermind-0.12.0}/tests/conformance/vectors/task-01.json +0 -0
  584. {hypermind-0.11.0 → hypermind-0.12.0}/tests/conformance/vectors/task-02.json +0 -0
  585. {hypermind-0.11.0 → hypermind-0.12.0}/tests/conformance/vectors/trace-01.json +0 -0
  586. {hypermind-0.11.0 → hypermind-0.12.0}/tests/conformance/vectors/trace-02.json +0 -0
  587. {hypermind-0.11.0 → hypermind-0.12.0}/tests/conformance/vectors/wire-envelope-01.json +0 -0
  588. {hypermind-0.11.0 → hypermind-0.12.0}/tests/conformance/vectors/wire-envelope-02.json +0 -0
  589. {hypermind-0.11.0 → hypermind-0.12.0}/tests/conformance/vectors/wire-envelope-03.json +0 -0
  590. {hypermind-0.11.0 → hypermind-0.12.0}/tests/conformance/vectors/wire-envelope-04.json +0 -0
  591. {hypermind-0.11.0 → hypermind-0.12.0}/tests/conformance/vectors/wire-envelope-05.json +0 -0
  592. {hypermind-0.11.0 → hypermind-0.12.0}/tests/conftest.py +0 -0
  593. {hypermind-0.11.0 → hypermind-0.12.0}/tests/fake_kms.py +0 -0
  594. {hypermind-0.11.0 → hypermind-0.12.0}/tests/harness/__init__.py +0 -0
  595. {hypermind-0.11.0 → hypermind-0.12.0}/tests/harness/conftest.py +0 -0
  596. {hypermind-0.11.0 → hypermind-0.12.0}/tests/harness/test_assertion_library.py +0 -0
  597. {hypermind-0.11.0 → hypermind-0.12.0}/tests/harness/test_runner_lifecycle.py +0 -0
  598. {hypermind-0.11.0 → hypermind-0.12.0}/tests/harness/test_threat_intel_harness.py +0 -0
  599. {hypermind-0.11.0 → hypermind-0.12.0}/tests/integration/__init__.py +0 -0
  600. {hypermind-0.11.0 → hypermind-0.12.0}/tests/integration/test_kms_aws.py +0 -0
  601. {hypermind-0.11.0 → hypermind-0.12.0}/tests/integration/test_kms_azure.py +0 -0
  602. {hypermind-0.11.0 → hypermind-0.12.0}/tests/integration/test_kms_gcp.py +0 -0
  603. {hypermind-0.11.0 → hypermind-0.12.0}/tests/integration/test_kms_vault.py +0 -0
  604. {hypermind-0.11.0 → hypermind-0.12.0}/tests/integration/test_relata_server.py +0 -0
  605. {hypermind-0.11.0 → hypermind-0.12.0}/tests/responders/__init__.py +0 -0
  606. {hypermind-0.11.0 → hypermind-0.12.0}/tests/responders/test_responders.py +0 -0
  607. {hypermind-0.11.0 → hypermind-0.12.0}/tests/responders/test_router.py +0 -0
  608. {hypermind-0.11.0 → hypermind-0.12.0}/tests/responders/test_structured_response.py +0 -0
  609. {hypermind-0.11.0 → hypermind-0.12.0}/tests/responders/test_tools.py +0 -0
  610. {hypermind-0.11.0 → hypermind-0.12.0}/tests/review/__init__.py +0 -0
  611. {hypermind-0.11.0 → hypermind-0.12.0}/tests/review/test_agents_parser.py +0 -0
  612. {hypermind-0.11.0 → hypermind-0.12.0}/tests/review/test_models.py +0 -0
  613. {hypermind-0.11.0 → hypermind-0.12.0}/tests/review/test_runner.py +0 -0
  614. {hypermind-0.11.0 → hypermind-0.12.0}/tests/simlab/__init__.py +0 -0
  615. {hypermind-0.11.0 → hypermind-0.12.0}/tests/simlab/conftest.py +0 -0
  616. {hypermind-0.11.0 → hypermind-0.12.0}/tests/simlab/test_app_endpoints.py +0 -0
  617. {hypermind-0.11.0 → hypermind-0.12.0}/tests/simlab/test_knowledge.py +0 -0
  618. {hypermind-0.11.0 → hypermind-0.12.0}/tests/simlab/test_knowledge_reuse.py +0 -0
  619. {hypermind-0.11.0 → hypermind-0.12.0}/tests/simlab/test_modes_aar.py +0 -0
  620. {hypermind-0.11.0 → hypermind-0.12.0}/tests/simlab/test_modes_backtest.py +0 -0
  621. {hypermind-0.11.0 → hypermind-0.12.0}/tests/simlab/test_modes_conformance.py +0 -0
  622. {hypermind-0.11.0 → hypermind-0.12.0}/tests/simlab/test_modes_evaluation.py +0 -0
  623. {hypermind-0.11.0 → hypermind-0.12.0}/tests/simlab/test_modes_governance.py +0 -0
  624. {hypermind-0.11.0 → hypermind-0.12.0}/tests/simlab/test_modes_redteam.py +0 -0
  625. {hypermind-0.11.0 → hypermind-0.12.0}/tests/simlab/test_modes_tabletop.py +0 -0
  626. {hypermind-0.11.0 → hypermind-0.12.0}/tests/simlab/test_modes_tournament.py +0 -0
  627. {hypermind-0.11.0 → hypermind-0.12.0}/tests/simlab/test_modes_whatif.py +0 -0
  628. {hypermind-0.11.0 → hypermind-0.12.0}/tests/simlab/test_personas.py +0 -0
  629. {hypermind-0.11.0 → hypermind-0.12.0}/tests/simlab/test_personas_endpoints.py +0 -0
  630. {hypermind-0.11.0 → hypermind-0.12.0}/tests/simlab/test_recorder_scoping.py +0 -0
  631. {hypermind-0.11.0 → hypermind-0.12.0}/tests/simlab/test_registry.py +0 -0
  632. {hypermind-0.11.0 → hypermind-0.12.0}/tests/simlab/test_resolve_outcomes.py +0 -0
  633. {hypermind-0.11.0 → hypermind-0.12.0}/tests/simlab/test_responder_timeout.py +0 -0
  634. {hypermind-0.11.0 → hypermind-0.12.0}/tests/simlab/test_runner.py +0 -0
  635. {hypermind-0.11.0 → hypermind-0.12.0}/tests/simlab/test_swarms.py +0 -0
  636. {hypermind-0.11.0 → hypermind-0.12.0}/tests/storage/__init__.py +0 -0
  637. {hypermind-0.11.0 → hypermind-0.12.0}/tests/storage/test_relata_backend.py +0 -0
  638. {hypermind-0.11.0 → hypermind-0.12.0}/tests/storage/test_sqlite_backend.py +0 -0
  639. {hypermind-0.11.0 → hypermind-0.12.0}/tests/test_active_multi_step.py +0 -0
  640. {hypermind-0.11.0 → hypermind-0.12.0}/tests/test_agent_card.py +0 -0
  641. {hypermind-0.11.0 → hypermind-0.12.0}/tests/test_agent_e2e.py +0 -0
  642. {hypermind-0.11.0 → hypermind-0.12.0}/tests/test_agent_edge.py +0 -0
  643. {hypermind-0.11.0 → hypermind-0.12.0}/tests/test_anti_entropy.py +0 -0
  644. {hypermind-0.11.0 → hypermind-0.12.0}/tests/test_anti_entropy_multiround.py +0 -0
  645. {hypermind-0.11.0 → hypermind-0.12.0}/tests/test_anti_entropy_selfheal.py +0 -0
  646. {hypermind-0.11.0 → hypermind-0.12.0}/tests/test_appendix_z_conformance.py +0 -0
  647. {hypermind-0.11.0 → hypermind-0.12.0}/tests/test_appendix_z_vectors.py +0 -0
  648. {hypermind-0.11.0 → hypermind-0.12.0}/tests/test_arg_dag_edge_types.py +0 -0
  649. {hypermind-0.11.0 → hypermind-0.12.0}/tests/test_backpressure.py +0 -0
  650. {hypermind-0.11.0 → hypermind-0.12.0}/tests/test_belief_revision.py +0 -0
  651. {hypermind-0.11.0 → hypermind-0.12.0}/tests/test_bias_detector.py +0 -0
  652. {hypermind-0.11.0 → hypermind-0.12.0}/tests/test_block_reason.py +0 -0
  653. {hypermind-0.11.0 → hypermind-0.12.0}/tests/test_calibration.py +0 -0
  654. {hypermind-0.11.0 → hypermind-0.12.0}/tests/test_capability.py +0 -0
  655. {hypermind-0.11.0 → hypermind-0.12.0}/tests/test_capability_canonical.py +0 -0
  656. {hypermind-0.11.0 → hypermind-0.12.0}/tests/test_capability_chain.py +0 -0
  657. {hypermind-0.11.0 → hypermind-0.12.0}/tests/test_capability_edge.py +0 -0
  658. {hypermind-0.11.0 → hypermind-0.12.0}/tests/test_capability_enforcement.py +0 -0
  659. {hypermind-0.11.0 → hypermind-0.12.0}/tests/test_capability_namespace_caveat.py +0 -0
  660. {hypermind-0.11.0 → hypermind-0.12.0}/tests/test_capability_revocation.py +0 -0
  661. {hypermind-0.11.0 → hypermind-0.12.0}/tests/test_citation_graph.py +0 -0
  662. {hypermind-0.11.0 → hypermind-0.12.0}/tests/test_cli.py +0 -0
  663. {hypermind-0.11.0 → hypermind-0.12.0}/tests/test_cli_interop.py +0 -0
  664. {hypermind-0.11.0 → hypermind-0.12.0}/tests/test_composite_lamps_prefix.py +0 -0
  665. {hypermind-0.11.0 → hypermind-0.12.0}/tests/test_consult.py +0 -0
  666. {hypermind-0.11.0 → hypermind-0.12.0}/tests/test_consult_stream.py +0 -0
  667. {hypermind-0.11.0 → hypermind-0.12.0}/tests/test_consult_stream_t4.py +0 -0
  668. {hypermind-0.11.0 → hypermind-0.12.0}/tests/test_contract_net_disputed_award.py +0 -0
  669. {hypermind-0.11.0 → hypermind-0.12.0}/tests/test_contract_net_frost_award.py +0 -0
  670. {hypermind-0.11.0 → hypermind-0.12.0}/tests/test_contract_net_happy.py +0 -0
  671. {hypermind-0.11.0 → hypermind-0.12.0}/tests/test_contract_net_reputation_scoring.py +0 -0
  672. {hypermind-0.11.0 → hypermind-0.12.0}/tests/test_contract_net_sybil_filter.py +0 -0
  673. {hypermind-0.11.0 → hypermind-0.12.0}/tests/test_correlated_agreement.py +0 -0
  674. {hypermind-0.11.0 → hypermind-0.12.0}/tests/test_cose_encrypt_roundtrip.py +0 -0
  675. {hypermind-0.11.0 → hypermind-0.12.0}/tests/test_cost_tracker.py +0 -0
  676. {hypermind-0.11.0 → hypermind-0.12.0}/tests/test_cross_namespace_consult.py +0 -0
  677. {hypermind-0.11.0 → hypermind-0.12.0}/tests/test_crypto.py +0 -0
  678. {hypermind-0.11.0 → hypermind-0.12.0}/tests/test_deliberation.py +0 -0
  679. {hypermind-0.11.0 → hypermind-0.12.0}/tests/test_deliberator_cap.py +0 -0
  680. {hypermind-0.11.0 → hypermind-0.12.0}/tests/test_deliberator_observe.py +0 -0
  681. {hypermind-0.11.0 → hypermind-0.12.0}/tests/test_deprecation_registry.py +0 -0
  682. {hypermind-0.11.0 → hypermind-0.12.0}/tests/test_determinism_corpus.py +0 -0
  683. {hypermind-0.11.0 → hypermind-0.12.0}/tests/test_dispute.py +0 -0
  684. {hypermind-0.11.0 → hypermind-0.12.0}/tests/test_dispute_fsm_full.py +0 -0
  685. {hypermind-0.11.0 → hypermind-0.12.0}/tests/test_dispute_mediate.py +0 -0
  686. {hypermind-0.11.0 → hypermind-0.12.0}/tests/test_dispute_quorum.py +0 -0
  687. {hypermind-0.11.0 → hypermind-0.12.0}/tests/test_dissent.py +0 -0
  688. {hypermind-0.11.0 → hypermind-0.12.0}/tests/test_diversity_quorum.py +0 -0
  689. {hypermind-0.11.0 → hypermind-0.12.0}/tests/test_dkg.py +0 -0
  690. {hypermind-0.11.0 → hypermind-0.12.0}/tests/test_embedding_registry.py +0 -0
  691. {hypermind-0.11.0 → hypermind-0.12.0}/tests/test_eval_comparison.py +0 -0
  692. {hypermind-0.11.0 → hypermind-0.12.0}/tests/test_examples_runnable.py +0 -0
  693. {hypermind-0.11.0 → hypermind-0.12.0}/tests/test_final_coverage.py +0 -0
  694. {hypermind-0.11.0 → hypermind-0.12.0}/tests/test_frost.py +0 -0
  695. {hypermind-0.11.0 → hypermind-0.12.0}/tests/test_frost_edge.py +0 -0
  696. {hypermind-0.11.0 → hypermind-0.12.0}/tests/test_frost_hedged_nonces.py +0 -0
  697. {hypermind-0.11.0 → hypermind-0.12.0}/tests/test_frost_persistence.py +0 -0
  698. {hypermind-0.11.0 → hypermind-0.12.0}/tests/test_frost_transcript_store_swap.py +0 -0
  699. {hypermind-0.11.0 → hypermind-0.12.0}/tests/test_hlc_clock_source.py +0 -0
  700. {hypermind-0.11.0 → hypermind-0.12.0}/tests/test_hpke_vectors.py +0 -0
  701. {hypermind-0.11.0 → hypermind-0.12.0}/tests/test_info_gain_routing.py +0 -0
  702. {hypermind-0.11.0 → hypermind-0.12.0}/tests/test_kernel_store.py +0 -0
  703. {hypermind-0.11.0 → hypermind-0.12.0}/tests/test_kms_backends.py +0 -0
  704. {hypermind-0.11.0 → hypermind-0.12.0}/tests/test_kms_fake.py +0 -0
  705. {hypermind-0.11.0 → hypermind-0.12.0}/tests/test_knows_delta.py +0 -0
  706. {hypermind-0.11.0 → hypermind-0.12.0}/tests/test_lamps_oid_canonical.py +0 -0
  707. {hypermind-0.11.0 → hypermind-0.12.0}/tests/test_last_lines.py +0 -0
  708. {hypermind-0.11.0 → hypermind-0.12.0}/tests/test_libp2p_peer_id.py +0 -0
  709. {hypermind-0.11.0 → hypermind-0.12.0}/tests/test_libp2p_scaffold.py +0 -0
  710. {hypermind-0.11.0 → hypermind-0.12.0}/tests/test_libp2p_stub.py +0 -0
  711. {hypermind-0.11.0 → hypermind-0.12.0}/tests/test_mcp_bridge.py +0 -0
  712. {hypermind-0.11.0 → hypermind-0.12.0}/tests/test_mcp_provenance.py +0 -0
  713. {hypermind-0.11.0 → hypermind-0.12.0}/tests/test_mcp_tools_list.py +0 -0
  714. {hypermind-0.11.0 → hypermind-0.12.0}/tests/test_mcp_transport.py +0 -0
  715. {hypermind-0.11.0 → hypermind-0.12.0}/tests/test_merkle_transparency.py +0 -0
  716. {hypermind-0.11.0 → hypermind-0.12.0}/tests/test_mind_active.py +0 -0
  717. {hypermind-0.11.0 → hypermind-0.12.0}/tests/test_mind_deliberator.py +0 -0
  718. {hypermind-0.11.0 → hypermind-0.12.0}/tests/test_mind_diversity_sybil_mediator.py +0 -0
  719. {hypermind-0.11.0 → hypermind-0.12.0}/tests/test_mind_evolve.py +0 -0
  720. {hypermind-0.11.0 → hypermind-0.12.0}/tests/test_mind_goals_policy.py +0 -0
  721. {hypermind-0.11.0 → hypermind-0.12.0}/tests/test_mind_records.py +0 -0
  722. {hypermind-0.11.0 → hypermind-0.12.0}/tests/test_mind_roles.py +0 -0
  723. {hypermind-0.11.0 → hypermind-0.12.0}/tests/test_mind_world_model.py +0 -0
  724. {hypermind-0.11.0 → hypermind-0.12.0}/tests/test_misc_edge.py +0 -0
  725. {hypermind-0.11.0 → hypermind-0.12.0}/tests/test_mtls_profile.py +0 -0
  726. {hypermind-0.11.0 → hypermind-0.12.0}/tests/test_namespace_lifecycle.py +0 -0
  727. {hypermind-0.11.0 → hypermind-0.12.0}/tests/test_namespace_policy.py +0 -0
  728. {hypermind-0.11.0 → hypermind-0.12.0}/tests/test_namespace_policy_acl.py +0 -0
  729. {hypermind-0.11.0 → hypermind-0.12.0}/tests/test_observability_asgi.py +0 -0
  730. {hypermind-0.11.0 → hypermind-0.12.0}/tests/test_observability_otel.py +0 -0
  731. {hypermind-0.11.0 → hypermind-0.12.0}/tests/test_open_factory.py +0 -0
  732. {hypermind-0.11.0 → hypermind-0.12.0}/tests/test_oracle_backprop.py +0 -0
  733. {hypermind-0.11.0 → hypermind-0.12.0}/tests/test_otel_export.py +0 -0
  734. {hypermind-0.11.0 → hypermind-0.12.0}/tests/test_pin_policy.py +0 -0
  735. {hypermind-0.11.0 → hypermind-0.12.0}/tests/test_placement_consistent_hash.py +0 -0
  736. {hypermind-0.11.0 → hypermind-0.12.0}/tests/test_placement_hint.py +0 -0
  737. {hypermind-0.11.0 → hypermind-0.12.0}/tests/test_plan_dag.py +0 -0
  738. {hypermind-0.11.0 → hypermind-0.12.0}/tests/test_plan_repair.py +0 -0
  739. {hypermind-0.11.0 → hypermind-0.12.0}/tests/test_portable_inclusion_proof.py +0 -0
  740. {hypermind-0.11.0 → hypermind-0.12.0}/tests/test_pq_default.py +0 -0
  741. {hypermind-0.11.0 → hypermind-0.12.0}/tests/test_pq_dual_vendor.py +0 -0
  742. {hypermind-0.11.0 → hypermind-0.12.0}/tests/test_pq_signing.py +0 -0
  743. {hypermind-0.11.0 → hypermind-0.12.0}/tests/test_priv_ns_conformance_coverage.py +0 -0
  744. {hypermind-0.11.0 → hypermind-0.12.0}/tests/test_property_based.py +0 -0
  745. {hypermind-0.11.0 → hypermind-0.12.0}/tests/test_protocol_version.py +0 -0
  746. {hypermind-0.11.0 → hypermind-0.12.0}/tests/test_public_surface_v05.py +0 -0
  747. {hypermind-0.11.0 → hypermind-0.12.0}/tests/test_pursue_workflow.py +0 -0
  748. {hypermind-0.11.0 → hypermind-0.12.0}/tests/test_rate_caveat.py +0 -0
  749. {hypermind-0.11.0 → hypermind-0.12.0}/tests/test_recorder_bounded.py +0 -0
  750. {hypermind-0.11.0 → hypermind-0.12.0}/tests/test_recorder_tail.py +0 -0
  751. {hypermind-0.11.0 → hypermind-0.12.0}/tests/test_reference_verifier_v2.py +0 -0
  752. {hypermind-0.11.0 → hypermind-0.12.0}/tests/test_rekor_client.py +0 -0
  753. {hypermind-0.11.0 → hypermind-0.12.0}/tests/test_rekor_downgrade.py +0 -0
  754. {hypermind-0.11.0 → hypermind-0.12.0}/tests/test_relata_memory_store.py +0 -0
  755. {hypermind-0.11.0 → hypermind-0.12.0}/tests/test_relata_tools.py +0 -0
  756. {hypermind-0.11.0 → hypermind-0.12.0}/tests/test_remaining_gaps.py +0 -0
  757. {hypermind-0.11.0 → hypermind-0.12.0}/tests/test_replay.py +0 -0
  758. {hypermind-0.11.0 → hypermind-0.12.0}/tests/test_reputation.py +0 -0
  759. {hypermind-0.11.0 → hypermind-0.12.0}/tests/test_reputation_memory.py +0 -0
  760. {hypermind-0.11.0 → hypermind-0.12.0}/tests/test_reputation_staleness.py +0 -0
  761. {hypermind-0.11.0 → hypermind-0.12.0}/tests/test_review_fixes.py +0 -0
  762. {hypermind-0.11.0 → hypermind-0.12.0}/tests/test_revocation.py +0 -0
  763. {hypermind-0.11.0 → hypermind-0.12.0}/tests/test_revocation_lifecycle.py +0 -0
  764. {hypermind-0.11.0 → hypermind-0.12.0}/tests/test_room_epoch.py +0 -0
  765. {hypermind-0.11.0 → hypermind-0.12.0}/tests/test_schema_hash_pinned.py +0 -0
  766. {hypermind-0.11.0 → hypermind-0.12.0}/tests/test_secret_redaction.py +0 -0
  767. {hypermind-0.11.0 → hypermind-0.12.0}/tests/test_self_heal_cycle1.py +0 -0
  768. {hypermind-0.11.0 → hypermind-0.12.0}/tests/test_self_heal_cycle2.py +0 -0
  769. {hypermind-0.11.0 → hypermind-0.12.0}/tests/test_self_heal_cycle3.py +0 -0
  770. {hypermind-0.11.0 → hypermind-0.12.0}/tests/test_self_heal_cycle3_cascade_isolate.py +0 -0
  771. {hypermind-0.11.0 → hypermind-0.12.0}/tests/test_self_heal_cycle3_governance.py +0 -0
  772. {hypermind-0.11.0 → hypermind-0.12.0}/tests/test_self_heal_cycle4.py +0 -0
  773. {hypermind-0.11.0 → hypermind-0.12.0}/tests/test_self_heal_cycle4_deliberator_broadcast.py +0 -0
  774. {hypermind-0.11.0 → hypermind-0.12.0}/tests/test_self_heal_cycle5.py +0 -0
  775. {hypermind-0.11.0 → hypermind-0.12.0}/tests/test_signer_protocol.py +0 -0
  776. {hypermind-0.11.0 → hypermind-0.12.0}/tests/test_sth_cross_gossip.py +0 -0
  777. {hypermind-0.11.0 → hypermind-0.12.0}/tests/test_swarm_iq.py +0 -0
  778. {hypermind-0.11.0 → hypermind-0.12.0}/tests/test_swarm_iq_at_scale.py +0 -0
  779. {hypermind-0.11.0 → hypermind-0.12.0}/tests/test_swarm_iq_recommend.py +0 -0
  780. {hypermind-0.11.0 → hypermind-0.12.0}/tests/test_swarm_memory.py +0 -0
  781. {hypermind-0.11.0 → hypermind-0.12.0}/tests/test_swarm_memory_federation.py +0 -0
  782. {hypermind-0.11.0 → hypermind-0.12.0}/tests/test_swarm_trace.py +0 -0
  783. {hypermind-0.11.0 → hypermind-0.12.0}/tests/test_swarm_vector_overflow.py +0 -0
  784. {hypermind-0.11.0 → hypermind-0.12.0}/tests/test_sync_agent.py +0 -0
  785. {hypermind-0.11.0 → hypermind-0.12.0}/tests/test_tal.py +0 -0
  786. {hypermind-0.11.0 → hypermind-0.12.0}/tests/test_task_handle.py +0 -0
  787. {hypermind-0.11.0 → hypermind-0.12.0}/tests/test_task_handle_network.py +0 -0
  788. {hypermind-0.11.0 → hypermind-0.12.0}/tests/test_tcp_duplicate_kid_attack.py +0 -0
  789. {hypermind-0.11.0 → hypermind-0.12.0}/tests/test_tcp_edge.py +0 -0
  790. {hypermind-0.11.0 → hypermind-0.12.0}/tests/test_tcp_final.py +0 -0
  791. {hypermind-0.11.0 → hypermind-0.12.0}/tests/test_tcp_read_loop_cleanup.py +0 -0
  792. {hypermind-0.11.0 → hypermind-0.12.0}/tests/test_tcp_transport.py +0 -0
  793. {hypermind-0.11.0 → hypermind-0.12.0}/tests/test_theory_of_mind.py +0 -0
  794. {hypermind-0.11.0 → hypermind-0.12.0}/tests/test_transport.py +0 -0
  795. {hypermind-0.11.0 → hypermind-0.12.0}/tests/test_two_impl_interop.py +0 -0
  796. {hypermind-0.11.0 → hypermind-0.12.0}/tests/test_uncertainty.py +0 -0
  797. {hypermind-0.11.0 → hypermind-0.12.0}/tests/test_uncertainty_edge.py +0 -0
  798. {hypermind-0.11.0 → hypermind-0.12.0}/tests/test_wire.py +0 -0
  799. {hypermind-0.11.0 → hypermind-0.12.0}/tests/test_wire_edge_cases.py +0 -0
  800. {hypermind-0.11.0 → hypermind-0.12.0}/tests/test_wire_kid_stability.py +0 -0
  801. {hypermind-0.11.0 → hypermind-0.12.0}/tests/test_wire_p3.py +0 -0
  802. {hypermind-0.11.0 → hypermind-0.12.0}/tests/test_wire_v2.py +0 -0
  803. {hypermind-0.11.0 → hypermind-0.12.0}/tests/test_wire_version.py +0 -0
  804. {hypermind-0.11.0 → hypermind-0.12.0}/tests/test_witness_preimage_length_prefix.py +0 -0
  805. {hypermind-0.11.0 → hypermind-0.12.0}/tests/test_workflow_compensation.py +0 -0
  806. {hypermind-0.11.0 → hypermind-0.12.0}/tests/test_workflow_engine.py +0 -0
  807. {hypermind-0.11.0 → hypermind-0.12.0}/tests/test_workflow_replay.py +0 -0
  808. {hypermind-0.11.0 → hypermind-0.12.0}/tests/usecases/__init__.py +0 -0
  809. {hypermind-0.11.0 → hypermind-0.12.0}/tests/usecases/conftest.py +0 -0
  810. {hypermind-0.11.0 → hypermind-0.12.0}/tests/usecases/test_ai_01_fed_benchmark.py +0 -0
  811. {hypermind-0.11.0 → hypermind-0.12.0}/tests/usecases/test_ai_alignment_redteam.py +0 -0
  812. {hypermind-0.11.0 → hypermind-0.12.0}/tests/usecases/test_cy_05_ir_swarm.py +0 -0
  813. {hypermind-0.11.0 → hypermind-0.12.0}/tests/usecases/test_cy_11_ransomware_intel.py +0 -0
  814. {hypermind-0.11.0 → hypermind-0.12.0}/tests/usecases/test_ed_credentials.py +0 -0
  815. {hypermind-0.11.0 → hypermind-0.12.0}/tests/usecases/test_en_grid_coordinate.py +0 -0
  816. {hypermind-0.11.0 → hypermind-0.12.0}/tests/usecases/test_fi_04_bsa_314b.py +0 -0
  817. {hypermind-0.11.0 → hypermind-0.12.0}/tests/usecases/test_fi_22_ma_dataroom.py +0 -0
  818. {hypermind-0.11.0 → hypermind-0.12.0}/tests/usecases/test_gv_01_intel_sharing.py +0 -0
  819. {hypermind-0.11.0 → hypermind-0.12.0}/tests/usecases/test_gv_21_red_team.py +0 -0
  820. {hypermind-0.11.0 → hypermind-0.12.0}/tests/usecases/test_hc_06_rare_disease.py +0 -0
  821. {hypermind-0.11.0 → hypermind-0.12.0}/tests/usecases/test_hc_21_fed_learning.py +0 -0
  822. {hypermind-0.11.0 → hypermind-0.12.0}/tests/usecases/test_lg_ediscovery.py +0 -0
  823. {hypermind-0.11.0 → hypermind-0.12.0}/tests/usecases/test_mf_supply_chain.py +0 -0
  824. {hypermind-0.11.0 → hypermind-0.12.0}/transport-rust/Cargo.toml +0 -0
  825. {hypermind-0.11.0 → hypermind-0.12.0}/transport-rust/README.md +0 -0
  826. {hypermind-0.11.0 → hypermind-0.12.0}/transport-rust/pyproject.toml +0 -0
  827. {hypermind-0.11.0 → hypermind-0.12.0}/transport-rust/src/lib.rs +0 -0
  828. {hypermind-0.11.0 → hypermind-0.12.0}/webui/index.html +0 -0
  829. {hypermind-0.11.0 → hypermind-0.12.0}/webui/package-lock.json +0 -0
  830. {hypermind-0.11.0 → hypermind-0.12.0}/webui/package.json +0 -0
  831. {hypermind-0.11.0 → hypermind-0.12.0}/webui/src/App.vue +0 -0
  832. {hypermind-0.11.0 → hypermind-0.12.0}/webui/src/api/client.ts +0 -0
  833. {hypermind-0.11.0 → hypermind-0.12.0}/webui/src/components/ActivityCanvas.vue +0 -0
  834. {hypermind-0.11.0 → hypermind-0.12.0}/webui/src/components/AgentContribution.vue +0 -0
  835. {hypermind-0.11.0 → hypermind-0.12.0}/webui/src/components/BrierHeatmap.vue +0 -0
  836. {hypermind-0.11.0 → hypermind-0.12.0}/webui/src/components/CIQTrajectory.vue +0 -0
  837. {hypermind-0.11.0 → hypermind-0.12.0}/webui/src/components/CitationGraph.vue +0 -0
  838. {hypermind-0.11.0 → hypermind-0.12.0}/webui/src/components/DisputeTimeline.vue +0 -0
  839. {hypermind-0.11.0 → hypermind-0.12.0}/webui/src/components/DissentList.vue +0 -0
  840. {hypermind-0.11.0 → hypermind-0.12.0}/webui/src/components/Logo.vue +0 -0
  841. {hypermind-0.11.0 → hypermind-0.12.0}/webui/src/components/NowAsking.vue +0 -0
  842. {hypermind-0.11.0 → hypermind-0.12.0}/webui/src/components/PersonaRadar.vue +0 -0
  843. {hypermind-0.11.0 → hypermind-0.12.0}/webui/src/components/PopulationGenerator.vue +0 -0
  844. {hypermind-0.11.0 → hypermind-0.12.0}/webui/src/components/Term.vue +0 -0
  845. {hypermind-0.11.0 → hypermind-0.12.0}/webui/src/components/forms/SchemaForm.vue +0 -0
  846. {hypermind-0.11.0 → hypermind-0.12.0}/webui/src/components/result/AARTimeline.vue +0 -0
  847. {hypermind-0.11.0 → hypermind-0.12.0}/webui/src/components/result/BacktestScorecard.vue +0 -0
  848. {hypermind-0.11.0 → hypermind-0.12.0}/webui/src/components/result/ConformanceReport.vue +0 -0
  849. {hypermind-0.11.0 → hypermind-0.12.0}/webui/src/components/result/CrisisTabletop.vue +0 -0
  850. {hypermind-0.11.0 → hypermind-0.12.0}/webui/src/components/result/DecisionBracket.vue +0 -0
  851. {hypermind-0.11.0 → hypermind-0.12.0}/webui/src/components/result/EvaluationReport.vue +0 -0
  852. {hypermind-0.11.0 → hypermind-0.12.0}/webui/src/components/result/GovernanceReceipt.vue +0 -0
  853. {hypermind-0.11.0 → hypermind-0.12.0}/webui/src/components/result/MethodNote.vue +0 -0
  854. {hypermind-0.11.0 → hypermind-0.12.0}/webui/src/components/result/RedTeamReport.vue +0 -0
  855. {hypermind-0.11.0 → hypermind-0.12.0}/webui/src/components/result/ScenarioTree.vue +0 -0
  856. {hypermind-0.11.0 → hypermind-0.12.0}/webui/src/docs/index.ts +0 -0
  857. {hypermind-0.11.0 → hypermind-0.12.0}/webui/src/docs/render.ts +0 -0
  858. {hypermind-0.11.0 → hypermind-0.12.0}/webui/src/main.ts +0 -0
  859. {hypermind-0.11.0 → hypermind-0.12.0}/webui/src/router.ts +0 -0
  860. {hypermind-0.11.0 → hypermind-0.12.0}/webui/src/stores/sims.ts +0 -0
  861. {hypermind-0.11.0 → hypermind-0.12.0}/webui/src/styles.css +0 -0
  862. {hypermind-0.11.0 → hypermind-0.12.0}/webui/src/types/trace.ts +0 -0
  863. {hypermind-0.11.0 → hypermind-0.12.0}/webui/src/views/Agents.vue +0 -0
  864. {hypermind-0.11.0 → hypermind-0.12.0}/webui/src/views/Docs.vue +0 -0
  865. {hypermind-0.11.0 → hypermind-0.12.0}/webui/src/views/Evidence.vue +0 -0
  866. {hypermind-0.11.0 → hypermind-0.12.0}/webui/src/views/Home.vue +0 -0
  867. {hypermind-0.11.0 → hypermind-0.12.0}/webui/src/views/HowItWorks.vue +0 -0
  868. {hypermind-0.11.0 → hypermind-0.12.0}/webui/src/views/Knowledge.vue +0 -0
  869. {hypermind-0.11.0 → hypermind-0.12.0}/webui/src/views/Namespaces.vue +0 -0
  870. {hypermind-0.11.0 → hypermind-0.12.0}/webui/src/views/Report.vue +0 -0
  871. {hypermind-0.11.0 → hypermind-0.12.0}/webui/src/views/Security.vue +0 -0
  872. {hypermind-0.11.0 → hypermind-0.12.0}/webui/src/views/SimCompare.vue +0 -0
  873. {hypermind-0.11.0 → hypermind-0.12.0}/webui/src/views/SimDetail.vue +0 -0
  874. {hypermind-0.11.0 → hypermind-0.12.0}/webui/src/views/SimList.vue +0 -0
  875. {hypermind-0.11.0 → hypermind-0.12.0}/webui/src/views/SimLive.vue +0 -0
  876. {hypermind-0.11.0 → hypermind-0.12.0}/webui/src/views/SimNew.vue +0 -0
  877. {hypermind-0.11.0 → hypermind-0.12.0}/webui/src/views/Tools.vue +0 -0
  878. {hypermind-0.11.0 → hypermind-0.12.0}/webui/src/views/UseCases.vue +0 -0
  879. {hypermind-0.11.0 → hypermind-0.12.0}/webui/tsconfig.json +0 -0
  880. {hypermind-0.11.0 → hypermind-0.12.0}/webui/vite.config.ts +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: hypermind
3
- Version: 0.11.0
3
+ Version: 0.12.0
4
4
  Summary: Federated agent intelligence — reference SDK for the HyperMind SCITT contested-claims profile
5
5
  Project-URL: Homepage, https://github.com/ZySec-AI/hypermind
6
6
  Project-URL: Documentation, https://github.com/ZySec-AI/hypermind/tree/main/docs
@@ -213,9 +213,33 @@ This is how humans work. We talk, we cite, we disagree, we build reputations, we
213
213
 
214
214
  ---
215
215
 
216
- ## SimLab modes (the demo)
216
+ ## Simulate any network — `hypermind.orgs` (the engine)
217
217
 
218
- `hmctl simlab` ships 8 deliberation modes that exercise different protocol primitives:
218
+ The SDK ships a **living-simulation engine**: spin up a network of LLM-backed agents with roles, per-agent models, and group-scoped native tools, then run a `research → publish → cite → dispute → resolve → learn → evolve` loop persisted to Relata. One general engine expresses many scenarios — a university researching a hard problem, a city at war, a foreign-policy cabinet, an internet crowd reacting to a what-if — via pluggable **interaction strategies** (`cooperative` / `adversarial` / `crowd`) and an override hook for custom phases.
219
+
220
+ ```python
221
+ from hypermind.orgs import OrgSim
222
+ from hypermind.orgs.templates import university # or: city_at_war, un_security_council, ...
223
+
224
+ model = university(members=24) # generic OrgModel, scaled to 24 people
225
+ report = await OrgSim(model, relata_url="http://localhost:9090",
226
+ llm="anthropic", llm_client=client).simulate(
227
+ topic="What limits ab-initio protein folding?", rounds=6)
228
+ report.print() # reputation ranking · citation graph · dispute ledger · calibration
229
+ ```
230
+
231
+ - **Generic core, template library.** `OrgModel` / `Unit` / `Seat` are org-agnostic; `hypermind.orgs.templates` ships ready presets (`university`, `hospital`, `city_at_war`, `foreign_policy_cabinet`, `un_security_council`, `internet_crowd`, `research_lab`) — pure convenience data the core never imports. Roll your own network from the primitives.
232
+ - **Per-agent models.** Any seat can pin its own provider/model (`Seat("Professor", llm="anthropic", model="claude-opus-4-8")`), or hand `OrgSim` a router for random / cost-aware assignment.
233
+ - **Native tools, group-scoped.** Tools (web search, retrieval, KB query, Relata research) are granted per unit/seat and enforced — an ungranted tool is *absent* from that agent's toolset. Grants can be declarative or randomised; register your own with `hypermind.orgs.register_tool(...)`.
234
+ - **Relata end-to-end.** Organisation → tenant; member → private memory session (agent kid); claims / disputes / reputation → tenant-scoped ledger rows; chain of custody → the Merkle log. Restart replays the whole org.
235
+
236
+ Worked example: [`examples/org_university.py`](examples/org_university.py). Discover all presets via `hypermind.orgs.templates.list_templates()`.
237
+
238
+ ---
239
+
240
+ ## SimLab modes (the demo UI)
241
+
242
+ **SimLab is a demo app**, not the core — a Vue web UI (bundled under `hypermind.simlab`) that visualises the same SDK primitives the `hypermind.orgs` engine drives programmatically. Use `hypermind.orgs` to build simulations; use SimLab to *watch* one. `hmctl simlab` ships 8 deliberation modes that exercise different protocol primitives:
219
243
 
220
244
  | Mode | One-liner |
221
245
  |---|---|
@@ -125,9 +125,33 @@ This is how humans work. We talk, we cite, we disagree, we build reputations, we
125
125
 
126
126
  ---
127
127
 
128
- ## SimLab modes (the demo)
128
+ ## Simulate any network — `hypermind.orgs` (the engine)
129
129
 
130
- `hmctl simlab` ships 8 deliberation modes that exercise different protocol primitives:
130
+ The SDK ships a **living-simulation engine**: spin up a network of LLM-backed agents with roles, per-agent models, and group-scoped native tools, then run a `research → publish → cite → dispute → resolve → learn → evolve` loop persisted to Relata. One general engine expresses many scenarios — a university researching a hard problem, a city at war, a foreign-policy cabinet, an internet crowd reacting to a what-if — via pluggable **interaction strategies** (`cooperative` / `adversarial` / `crowd`) and an override hook for custom phases.
131
+
132
+ ```python
133
+ from hypermind.orgs import OrgSim
134
+ from hypermind.orgs.templates import university # or: city_at_war, un_security_council, ...
135
+
136
+ model = university(members=24) # generic OrgModel, scaled to 24 people
137
+ report = await OrgSim(model, relata_url="http://localhost:9090",
138
+ llm="anthropic", llm_client=client).simulate(
139
+ topic="What limits ab-initio protein folding?", rounds=6)
140
+ report.print() # reputation ranking · citation graph · dispute ledger · calibration
141
+ ```
142
+
143
+ - **Generic core, template library.** `OrgModel` / `Unit` / `Seat` are org-agnostic; `hypermind.orgs.templates` ships ready presets (`university`, `hospital`, `city_at_war`, `foreign_policy_cabinet`, `un_security_council`, `internet_crowd`, `research_lab`) — pure convenience data the core never imports. Roll your own network from the primitives.
144
+ - **Per-agent models.** Any seat can pin its own provider/model (`Seat("Professor", llm="anthropic", model="claude-opus-4-8")`), or hand `OrgSim` a router for random / cost-aware assignment.
145
+ - **Native tools, group-scoped.** Tools (web search, retrieval, KB query, Relata research) are granted per unit/seat and enforced — an ungranted tool is *absent* from that agent's toolset. Grants can be declarative or randomised; register your own with `hypermind.orgs.register_tool(...)`.
146
+ - **Relata end-to-end.** Organisation → tenant; member → private memory session (agent kid); claims / disputes / reputation → tenant-scoped ledger rows; chain of custody → the Merkle log. Restart replays the whole org.
147
+
148
+ Worked example: [`examples/org_university.py`](examples/org_university.py). Discover all presets via `hypermind.orgs.templates.list_templates()`.
149
+
150
+ ---
151
+
152
+ ## SimLab modes (the demo UI)
153
+
154
+ **SimLab is a demo app**, not the core — a Vue web UI (bundled under `hypermind.simlab`) that visualises the same SDK primitives the `hypermind.orgs` engine drives programmatically. Use `hypermind.orgs` to build simulations; use SimLab to *watch* one. `hmctl simlab` ships 8 deliberation modes that exercise different protocol primitives:
131
155
 
132
156
  | Mode | One-liner |
133
157
  |---|---|
@@ -82,6 +82,12 @@ Read in order. Each builds on the previous one's mental model.
82
82
 
83
83
  Pick one that matches your domain.
84
84
 
85
+ ### Living-simulation engine (`hypermind.orgs`)
86
+
87
+ | File | Domain | What it shows |
88
+ |---|---|---|
89
+ | [`org_university.py`](org_university.py) | Any network | Spin up a templated org (university / city / UNO / crowd), run research → cite → dispute → resolve → evolve, print a reputation + citation report. Per-agent models + group-scoped tools, persisted to Relata. |
90
+
85
91
  ### Pilot-shaped demonstrations
86
92
 
87
93
  | File | Domain | What it shows |
@@ -0,0 +1,66 @@
1
+ """THE STORY — a university researches a hard problem, and standing emerges.
2
+
3
+ This is the ``hypermind.orgs`` living-simulation engine in ~15 lines: pick a
4
+ preconfigured template, point it at a Relata instance and an LLM, and run. Over
5
+ several rounds the departments publish findings, cite the strongest peers,
6
+ peer-review (dispute) weak claims, and the professors ground results — so
7
+ reputation, a citation graph, and a dispute ledger all emerge from agent
8
+ behaviour rather than being scripted.
9
+
10
+ Swap ``university`` for ``city_at_war``, ``foreign_policy_cabinet``,
11
+ ``un_security_council`` or ``internet_crowd`` to run a completely different
12
+ scenario on the same engine — the only thing that changes is the org template
13
+ and its interaction mode.
14
+
15
+ PREREQUISITES
16
+ * A running Relata instance: docker compose -f deploy/docker-compose.yml up -d relata
17
+ * export RELATA_URL=http://localhost:9090 RELATA_TOKEN=...
18
+ * export ANTHROPIC_API_KEY=... (or use llm="openai" + OPENAI_API_KEY)
19
+
20
+ Run with: python -m examples.org_university
21
+ """
22
+
23
+ from __future__ import annotations
24
+
25
+ import asyncio
26
+ import os
27
+
28
+
29
+ async def main() -> None:
30
+ from hypermind.orgs import OrgSim
31
+ from hypermind.orgs.templates import university
32
+
33
+ relata_url = os.environ.get("RELATA_URL")
34
+ if not relata_url:
35
+ raise SystemExit(
36
+ "Set RELATA_URL (and RELATA_TOKEN) to a running Relata instance. "
37
+ "See deploy/docker-compose.yml."
38
+ )
39
+
40
+ # Build an Anthropic client for the members to think with.
41
+ import anthropic
42
+
43
+ client = anthropic.AsyncAnthropic() # reads ANTHROPIC_API_KEY
44
+
45
+ model = university(members=24) # 2 departments, scaled to 24 people
46
+ sim = OrgSim(
47
+ model,
48
+ relata_url=relata_url,
49
+ relata_token=os.environ.get("RELATA_TOKEN"),
50
+ llm="anthropic",
51
+ llm_client=client,
52
+ )
53
+
54
+ report = await sim.simulate(
55
+ topic="What limits the accuracy of ab-initio protein folding?",
56
+ rounds=6,
57
+ )
58
+
59
+ report.print()
60
+ print("\nMost-cited papers:")
61
+ for c in report.most_cited(3):
62
+ print(f" {c['citations_received']} cites {c['by']} ({c['unit']})")
63
+
64
+
65
+ if __name__ == "__main__":
66
+ asyncio.run(main())
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "hypermind"
7
- version = "0.11.0"
7
+ version = "0.12.0"
8
8
  description = "Federated agent intelligence — reference SDK for the HyperMind SCITT contested-claims profile"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.11,<3.14"
@@ -73,7 +73,7 @@ open = HyperMindAgent.open
73
73
  #: is held until the §External & human gates clear (IETF I-D, IANA,
74
74
  #: third-party audit, OpenSSF acceptance, ≥3 pilots) — at that point we
75
75
  #: cut ``1.0.0`` GA. See ROADMAP.md §Status snapshot.
76
- __version__ = "0.11.0"
76
+ __version__ = "0.12.0"
77
77
 
78
78
  #: SLSA build-provenance level committed for every release artefact.
79
79
  #: Cosign keyless signing + slsa-github-generator + PEP 740 attestations
@@ -0,0 +1,72 @@
1
+ """hypermind.orgs — an agentic living-simulation engine.
2
+
3
+ Spin up a network of LLM-backed agents with roles, per-agent models, and
4
+ group-scoped native tools, then run a research → publish → cite → dispute →
5
+ resolve → learn → evolve loop persisted to Relata. One general engine expresses
6
+ many scenarios (research, war, foreign policy, internet crowd) via pluggable
7
+ interaction strategies.
8
+
9
+ Quick start (preconfigured template)::
10
+
11
+ from hypermind.orgs.templates import university
12
+ from hypermind.orgs import OrgSim
13
+
14
+ model = university(members=24)
15
+ report = await OrgSim(model, relata_url="http://localhost:9090",
16
+ llm="anthropic", llm_client=client).simulate(
17
+ topic="protein folding", rounds=8)
18
+ report.print()
19
+
20
+ The generic core (`OrgModel`/`Unit`/`Seat`) never imports the template library,
21
+ so custom networks are first-class — see `hypermind.orgs.templates` for
22
+ worked examples of the mapping.
23
+ """
24
+
25
+ from __future__ import annotations
26
+
27
+ from hypermind.orgs.interaction import (
28
+ Adversarial,
29
+ Cooperative,
30
+ Crowd,
31
+ Interaction,
32
+ get_interaction,
33
+ )
34
+ from hypermind.orgs.model import (
35
+ DynamicsConfig,
36
+ OrgModel,
37
+ Seat,
38
+ Slot,
39
+ Unit,
40
+ )
41
+ from hypermind.orgs.report import MemberStanding, OrgReport
42
+ from hypermind.orgs.sim import OrgSim
43
+ from hypermind.orgs.tools import (
44
+ build_tool,
45
+ declarative_grants,
46
+ list_tools,
47
+ random_grants,
48
+ register_tool,
49
+ unregister_tool,
50
+ )
51
+
52
+ __all__ = [
53
+ "Adversarial",
54
+ "Cooperative",
55
+ "Crowd",
56
+ "DynamicsConfig",
57
+ "Interaction",
58
+ "MemberStanding",
59
+ "OrgModel",
60
+ "OrgReport",
61
+ "OrgSim",
62
+ "Seat",
63
+ "Slot",
64
+ "Unit",
65
+ "build_tool",
66
+ "declarative_grants",
67
+ "get_interaction",
68
+ "list_tools",
69
+ "random_grants",
70
+ "register_tool",
71
+ "unregister_tool",
72
+ ]
@@ -0,0 +1,177 @@
1
+ """Interaction strategies — how members treat each other's claims each round.
2
+
3
+ The engine (:mod:`hypermind.orgs.sim`) runs one general
4
+ research → publish → cite → dispute → resolve loop. *How* each phase behaves is
5
+ delegated to an :class:`Interaction` strategy, so the same loop expresses very
6
+ different scenarios:
7
+
8
+ * ``cooperative`` — cite freely across the org, dispute only on wide
9
+ contradiction (a university researching problem X).
10
+ * ``adversarial`` — cite within your own unit, dispute rival units hard (a city
11
+ at war, rival factions, contested foreign policy).
12
+ * ``crowd`` — many low-authority voices, synthesists aggregate, disputes are
13
+ rare (a what-if over an internet crowd).
14
+
15
+ Subclass :class:`Interaction` and override a single method to customise one
16
+ phase without rewriting the loop ("general loop + override hook").
17
+ """
18
+
19
+ from __future__ import annotations
20
+
21
+ from dataclasses import dataclass
22
+
23
+
24
+ @dataclass(frozen=True)
25
+ class ClaimRec:
26
+ """A claim published this round, as seen by the interaction strategy."""
27
+
28
+ kid: bytes
29
+ member_label: str
30
+ member_kid: bytes
31
+ unit: str
32
+ role: str
33
+ confidence: float
34
+
35
+
36
+ class Interaction:
37
+ """Default (cooperative) strategy. Override methods to change one phase."""
38
+
39
+ name = "cooperative"
40
+
41
+ # ---- publish -------------------------------------------------------
42
+ def publish_floor(self, *, role: str, base_floor: float) -> float:
43
+ """Confidence gate to publish, scaled by role.
44
+
45
+ Scouts surface early (lower bar); sceptics hold fire (higher bar).
46
+ """
47
+ if role == "scout":
48
+ return max(0.0, base_floor - 0.15)
49
+ if role == "sceptic":
50
+ return min(1.0, base_floor + 0.15)
51
+ return base_floor
52
+
53
+ # ---- cite ----------------------------------------------------------
54
+ def cite_targets(
55
+ self,
56
+ *,
57
+ member_unit: str,
58
+ member_role: str,
59
+ own_kid: bytes,
60
+ claims: list[ClaimRec],
61
+ ) -> list[bytes]:
62
+ """Which peer claims this member cites. Cooperative: the single
63
+ highest-confidence peer claim anywhere in the org."""
64
+ peers = [c for c in claims if c.kid != own_kid]
65
+ if not peers:
66
+ return []
67
+ best = max(peers, key=lambda c: c.confidence)
68
+ return [best.kid]
69
+
70
+ # ---- dispute -------------------------------------------------------
71
+ def should_dispute(
72
+ self, *, disputer_role: str, disputer_mean: float, claim: ClaimRec, gap: float
73
+ ) -> bool:
74
+ """Whether ``disputer`` challenges ``claim``. Cooperative: only
75
+ sceptics, only on a wide belief gap."""
76
+ if disputer_role != "sceptic":
77
+ return False
78
+ return abs(disputer_mean - claim.confidence) >= gap
79
+
80
+ # ---- resolve -------------------------------------------------------
81
+ def resolve_outcome(self, *, claim: ClaimRec, ground_truth: bool | None) -> bool:
82
+ """Ground-truth outcome for reputation back-prop. Default: caller's
83
+ signal, else 'confident claims are treated as correct'."""
84
+ if ground_truth is not None:
85
+ return ground_truth
86
+ return claim.confidence >= 0.5
87
+
88
+
89
+ class Cooperative(Interaction):
90
+ name = "cooperative"
91
+
92
+
93
+ class Adversarial(Interaction):
94
+ """Rival units: cite your own side, attack the other side."""
95
+
96
+ name = "adversarial"
97
+
98
+ def cite_targets(
99
+ self,
100
+ *,
101
+ member_unit: str,
102
+ member_role: str,
103
+ own_kid: bytes,
104
+ claims: list[ClaimRec],
105
+ ) -> list[bytes]:
106
+ # Cite the strongest claim from *your own* unit (rally your side).
107
+ allies = [c for c in claims if c.unit == member_unit and c.kid != own_kid]
108
+ if not allies:
109
+ return []
110
+ best = max(allies, key=lambda c: c.confidence)
111
+ return [best.kid]
112
+
113
+ def should_dispute(
114
+ self, *, disputer_role: str, disputer_mean: float, claim: ClaimRec, gap: float
115
+ ) -> bool:
116
+ # Anyone disputes a rival unit's claim if it diverges at all past a
117
+ # softened gap; sceptics are the most aggressive.
118
+ if claim.role == "oracle":
119
+ return False
120
+ effective_gap = gap * (0.5 if disputer_role == "sceptic" else 1.0)
121
+ return abs(disputer_mean - claim.confidence) >= effective_gap
122
+
123
+
124
+ class Crowd(Interaction):
125
+ """Large, low-authority population; synthesists aggregate; few disputes."""
126
+
127
+ name = "crowd"
128
+
129
+ def publish_floor(self, *, role: str, base_floor: float) -> float:
130
+ # Crowds speak up readily; the bar is low except for the aggregator.
131
+ if role == "synthesist":
132
+ return base_floor
133
+ return max(0.0, base_floor - 0.3)
134
+
135
+ def cite_targets(
136
+ self,
137
+ *,
138
+ member_unit: str,
139
+ member_role: str,
140
+ own_kid: bytes,
141
+ claims: list[ClaimRec],
142
+ ) -> list[bytes]:
143
+ # Only synthesists aggregate — they cite the top few loudest voices.
144
+ if member_role != "synthesist":
145
+ return []
146
+ peers = sorted(
147
+ (c for c in claims if c.kid != own_kid),
148
+ key=lambda c: c.confidence,
149
+ reverse=True,
150
+ )
151
+ return [c.kid for c in peers[:3]]
152
+
153
+ def should_dispute(
154
+ self, *, disputer_role: str, disputer_mean: float, claim: ClaimRec, gap: float
155
+ ) -> bool:
156
+ # The crowd rarely disputes; only sceptics, only on very wide gaps.
157
+ if disputer_role != "sceptic":
158
+ return False
159
+ return abs(disputer_mean - claim.confidence) >= min(1.0, gap + 0.2)
160
+
161
+
162
+ _PRESETS: dict[str, type[Interaction]] = {
163
+ "cooperative": Cooperative,
164
+ "adversarial": Adversarial,
165
+ "crowd": Crowd,
166
+ }
167
+
168
+
169
+ def get_interaction(name: str) -> Interaction:
170
+ """Instantiate a preset interaction strategy by name."""
171
+ try:
172
+ return _PRESETS[name]()
173
+ except KeyError:
174
+ raise ValueError(
175
+ f"unknown interaction {name!r}; presets: {sorted(_PRESETS)}. "
176
+ "Pass an Interaction subclass instance to override phases."
177
+ ) from None
@@ -0,0 +1,246 @@
1
+ """Declarative organisation model — the generic core.
2
+
3
+ An :class:`OrgModel` describes *what* an organisation looks like — its units
4
+ (departments / districts / factions), the seats within each unit, and the
5
+ HyperMind role + persona each seat plays — without any organisation-specific
6
+ logic. The :class:`~hypermind.orgs.sim.OrgSim` engine turns a model into a
7
+ running multi-agent simulation.
8
+
9
+ Nothing here imports the template library or the engine, so the core stays
10
+ dependency-free and every concrete org (university, hospital, UNO, ...) is
11
+ just data.
12
+ """
13
+
14
+ from __future__ import annotations
15
+
16
+ from dataclasses import dataclass, field, replace
17
+
18
+ # The closed set of HyperMind roles a seat may map onto. Mirrors
19
+ # ``hypermind.mind.roles`` (scout, sceptic, generalist, synthesist, mediator,
20
+ # oracle). Kept as a plain frozenset so ``model.py`` has no mind-layer import.
21
+ VALID_ROLES = frozenset({"scout", "sceptic", "generalist", "synthesist", "mediator", "oracle"})
22
+
23
+ # Roles that adjudicate rather than publish primary claims. An org needs at
24
+ # least one of these to resolve disputes and ground claims.
25
+ RESOLVER_ROLES = frozenset({"oracle", "mediator"})
26
+
27
+
28
+ @dataclass(frozen=True)
29
+ class Seat:
30
+ """One kind of member within a unit.
31
+
32
+ ``authority`` (0..1) seeds the member's starting reputation weight, vouch
33
+ power, and LLM ``effective_n`` (higher authority → tighter calibration).
34
+ ``headcount`` is how many members occupy this seat *per unit*.
35
+
36
+ ``llm`` / ``model`` pin this seat's provider and model (mixed models in one
37
+ simulation); ``None`` inherits the simulation default. ``tools`` is this
38
+ seat's tool allowlist — names resolved against the tool registry; members
39
+ can only call tools granted to their seat or their unit.
40
+ """
41
+
42
+ title: str
43
+ role: str = "generalist"
44
+ system: str | None = None
45
+ authority: float = 0.5
46
+ headcount: int = 1
47
+ llm: str | None = None
48
+ model: str | None = None
49
+ tools: tuple[str, ...] = ()
50
+
51
+ def __post_init__(self) -> None:
52
+ if self.role not in VALID_ROLES:
53
+ raise ValueError(
54
+ f"seat {self.title!r}: unknown role {self.role!r}; "
55
+ f"valid roles are {sorted(VALID_ROLES)}"
56
+ )
57
+ if not 0.0 <= self.authority <= 1.0:
58
+ raise ValueError(
59
+ f"seat {self.title!r}: authority must be in [0, 1], got {self.authority}"
60
+ )
61
+ if self.headcount < 1:
62
+ raise ValueError(f"seat {self.title!r}: headcount must be >= 1, got {self.headcount}")
63
+ if not isinstance(self.tools, tuple):
64
+ object.__setattr__(self, "tools", tuple(self.tools))
65
+
66
+
67
+ @dataclass(frozen=True)
68
+ class Unit:
69
+ """A group of seats — maps to one HyperMind room within the org namespace.
70
+
71
+ ``tools`` granted at the unit level apply to every seat in the unit (union
72
+ with each seat's own allowlist) — the natural way to say "the intel
73
+ department may use satellite imagery, the law department may not."
74
+ """
75
+
76
+ name: str
77
+ seats: tuple[Seat, ...] = ()
78
+ tools: tuple[str, ...] = ()
79
+
80
+ def __post_init__(self) -> None:
81
+ if not self.name.strip():
82
+ raise ValueError("unit name is required")
83
+ if not self.seats:
84
+ raise ValueError(f"unit {self.name!r} has no seats")
85
+ # Normalise lists to tuples so the dataclass stays hashable/frozen.
86
+ if not isinstance(self.seats, tuple):
87
+ object.__setattr__(self, "seats", tuple(self.seats))
88
+ if not isinstance(self.tools, tuple):
89
+ object.__setattr__(self, "tools", tuple(self.tools))
90
+
91
+
92
+ # Interaction modes shape how members treat each other's claims in the loop.
93
+ # cooperative — cite freely, dispute only on wide contradiction (research).
94
+ # adversarial — cite within your own unit, dispute across units aggressively
95
+ # (war / rival factions / contested policy).
96
+ # crowd — many low-authority voices, a synthesist aggregates, minimal
97
+ # disputes (what-if over an internet crowd).
98
+ VALID_INTERACTIONS = frozenset({"cooperative", "adversarial", "crowd"})
99
+
100
+
101
+ @dataclass(frozen=True)
102
+ class DynamicsConfig:
103
+ """Knobs for the research → learn → evolve loop."""
104
+
105
+ rounds: int = 5
106
+ publish_floor: float = 0.7
107
+ dispute_gap: float = 0.4
108
+ oracle_resolve_frac: float = 0.3
109
+ vouch_juniors: bool = True
110
+ evolve: bool = True
111
+ interaction: str = "cooperative"
112
+
113
+ def __post_init__(self) -> None:
114
+ if self.rounds < 1:
115
+ raise ValueError(f"rounds must be >= 1, got {self.rounds}")
116
+ for name in ("publish_floor", "dispute_gap", "oracle_resolve_frac"):
117
+ v = getattr(self, name)
118
+ if not 0.0 <= v <= 1.0:
119
+ raise ValueError(f"{name} must be in [0, 1], got {v}")
120
+ if self.interaction not in VALID_INTERACTIONS:
121
+ raise ValueError(
122
+ f"interaction must be one of {sorted(VALID_INTERACTIONS)}, got {self.interaction!r}"
123
+ )
124
+
125
+
126
+ @dataclass(frozen=True)
127
+ class Slot:
128
+ """A concrete member position produced by :meth:`OrgModel.roster`."""
129
+
130
+ unit: str
131
+ seat: Seat
132
+ index: int # 0-based occupant index within (unit, seat)
133
+
134
+ @property
135
+ def label(self) -> str:
136
+ return f"{self.unit}/{self.seat.title}#{self.index + 1}"
137
+
138
+
139
+ @dataclass(frozen=True)
140
+ class OrgModel:
141
+ """A complete, generic organisation definition."""
142
+
143
+ name: str
144
+ namespace: str
145
+ units: tuple[Unit, ...] = ()
146
+ lexicon: dict[str, str] = field(default_factory=dict)
147
+ dynamics: DynamicsConfig = field(default_factory=DynamicsConfig)
148
+
149
+ def __post_init__(self) -> None:
150
+ if not isinstance(self.units, tuple):
151
+ object.__setattr__(self, "units", tuple(self.units))
152
+ self.validate()
153
+
154
+ def validate(self) -> None:
155
+ if not self.name.strip():
156
+ raise ValueError("org name is required")
157
+ if not self.namespace.strip():
158
+ raise ValueError("org namespace is required")
159
+ if not self.units:
160
+ raise ValueError(f"org {self.name!r} has no units")
161
+ names = [u.name for u in self.units]
162
+ if len(names) != len(set(names)):
163
+ raise ValueError(f"org {self.name!r} has duplicate unit names: {names}")
164
+ roles = {s.role for u in self.units for s in u.seats}
165
+ if not (roles & RESOLVER_ROLES):
166
+ raise ValueError(
167
+ f"org {self.name!r} needs at least one oracle or mediator seat "
168
+ "to resolve disputes and ground claims"
169
+ )
170
+
171
+ def roster(self, members: int | None = None) -> list[Slot]:
172
+ """Expand the model into concrete member slots.
173
+
174
+ With ``members=None`` every seat contributes exactly its ``headcount``.
175
+ With an explicit ``members`` target, seat headcounts are scaled
176
+ proportionally (largest-remainder) to hit the target while keeping at
177
+ least one occupant per seat, so no role silently disappears.
178
+ """
179
+ base = [
180
+ Slot(unit=u.name, seat=s, index=i)
181
+ for u in self.units
182
+ for s in u.seats
183
+ for i in range(s.headcount)
184
+ ]
185
+ if members is None or members == len(base):
186
+ return base
187
+ if members < 1:
188
+ raise ValueError(f"members must be >= 1, got {members}")
189
+
190
+ seats = [(u.name, s) for u in self.units for s in u.seats]
191
+ n_seats = len(seats)
192
+ if members < n_seats:
193
+ raise ValueError(
194
+ f"members={members} is fewer than the {n_seats} distinct seats in "
195
+ f"{self.name!r}; each seat needs at least one occupant"
196
+ )
197
+ # Proportional scale on the base headcounts, floored at 1.
198
+ base_total = len(base)
199
+ weights = [s.headcount for _, s in seats]
200
+ raw = [members * w / base_total for w in weights]
201
+ counts = [max(1, int(x)) for x in raw]
202
+ # Distribute the remainder by largest fractional part until we hit target.
203
+ deficit = members - sum(counts)
204
+ order = sorted(range(n_seats), key=lambda i: raw[i] - int(raw[i]), reverse=True)
205
+ i = 0
206
+ while deficit > 0 and order:
207
+ counts[order[i % n_seats]] += 1
208
+ deficit -= 1
209
+ i += 1
210
+ while deficit < 0: # target below floors — trim the largest counts
211
+ j = max(range(n_seats), key=lambda k: counts[k])
212
+ if counts[j] <= 1:
213
+ break # pragma: no cover - unreachable: members >= n_seats guarantees a trimmable seat
214
+ counts[j] -= 1
215
+ deficit += 1
216
+ return [
217
+ Slot(unit=unit, seat=seat, index=i)
218
+ for (unit, seat), c in zip(seats, counts, strict=True)
219
+ for i in range(c)
220
+ ]
221
+
222
+ def relabel(self, key: str, default: str) -> str:
223
+ """Look up a display term from the lexicon (e.g. 'claim' → 'paper')."""
224
+ return self.lexicon.get(key, default)
225
+
226
+ def scaled(self, members: int) -> OrgModel:
227
+ """Return a copy whose seat headcounts realise ``members`` occupants.
228
+
229
+ Handy for templates: ``university(members=40)`` calls this so the
230
+ returned model's ``roster()`` (no arg) already yields 40 slots.
231
+ """
232
+ slots = self.roster(members)
233
+ counts: dict[tuple[str, str], int] = {}
234
+ for sl in slots:
235
+ counts[(sl.unit, sl.seat.title)] = counts.get((sl.unit, sl.seat.title), 0) + 1
236
+ new_units = tuple(
237
+ replace(
238
+ u,
239
+ seats=tuple(
240
+ replace(s, headcount=counts.get((u.name, s.title), s.headcount))
241
+ for s in u.seats
242
+ ),
243
+ )
244
+ for u in self.units
245
+ )
246
+ return replace(self, units=new_units)