hypermind 0.32.0__tar.gz → 0.34.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 (942) hide show
  1. {hypermind-0.32.0 → hypermind-0.34.0}/.env.example +10 -0
  2. {hypermind-0.32.0 → hypermind-0.34.0}/CHANGELOG.md +20 -0
  3. {hypermind-0.32.0 → hypermind-0.34.0}/PKG-INFO +2 -2
  4. {hypermind-0.32.0 → hypermind-0.34.0}/README.md +1 -1
  5. {hypermind-0.32.0 → hypermind-0.34.0}/pyproject.toml +1 -1
  6. {hypermind-0.32.0 → hypermind-0.34.0}/src/hmctl/orgs_cmd.py +21 -0
  7. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/__init__.py +1 -1
  8. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/mind/memory_store.py +10 -2
  9. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/orgs/__init__.py +30 -0
  10. hypermind-0.34.0/src/hypermind/orgs/charter.py +164 -0
  11. hypermind-0.34.0/src/hypermind/orgs/evidence.py +131 -0
  12. hypermind-0.34.0/src/hypermind/orgs/mcp_config.py +94 -0
  13. hypermind-0.34.0/src/hypermind/orgs/prompts.py +285 -0
  14. hypermind-0.34.0/src/hypermind/orgs/refine.py +102 -0
  15. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/orgs/report.py +22 -0
  16. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/orgs/sim.py +157 -7
  17. hypermind-0.34.0/src/hypermind/orgs/tool_providers.py +325 -0
  18. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/responders/structured.py +16 -5
  19. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/responders/tools.py +2 -1
  20. hypermind-0.34.0/tests/orgs/test_evidence.py +60 -0
  21. hypermind-0.34.0/tests/orgs/test_mcp_config.py +60 -0
  22. hypermind-0.34.0/tests/orgs/test_prompts.py +51 -0
  23. hypermind-0.34.0/tests/orgs/test_refine.py +113 -0
  24. hypermind-0.34.0/tests/orgs/test_tool_providers.py +190 -0
  25. {hypermind-0.32.0 → hypermind-0.34.0}/tests/orgs/test_tool_traces.py +22 -4
  26. {hypermind-0.32.0 → hypermind-0.34.0}/.editorconfig +0 -0
  27. {hypermind-0.32.0 → hypermind-0.34.0}/.gitattributes +0 -0
  28. {hypermind-0.32.0 → hypermind-0.34.0}/.github/FUNDING.yml +0 -0
  29. {hypermind-0.32.0 → hypermind-0.34.0}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
  30. {hypermind-0.32.0 → hypermind-0.34.0}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  31. {hypermind-0.32.0 → hypermind-0.34.0}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -0
  32. {hypermind-0.32.0 → hypermind-0.34.0}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
  33. {hypermind-0.32.0 → hypermind-0.34.0}/.github/renovate.json +0 -0
  34. {hypermind-0.32.0 → hypermind-0.34.0}/.github/workflows/check-license.yml +0 -0
  35. {hypermind-0.32.0 → hypermind-0.34.0}/.github/workflows/code-review-pr.yml +0 -0
  36. {hypermind-0.32.0 → hypermind-0.34.0}/.github/workflows/hotfix-security.yml +0 -0
  37. {hypermind-0.32.0 → hypermind-0.34.0}/.github/workflows/issue-auto-fix.yml +0 -0
  38. {hypermind-0.32.0 → hypermind-0.34.0}/.github/workflows/issue-triage.yml +0 -0
  39. {hypermind-0.32.0 → hypermind-0.34.0}/.github/workflows/pr-standards.yml +0 -0
  40. {hypermind-0.32.0 → hypermind-0.34.0}/.github/workflows/quality.yml +0 -0
  41. {hypermind-0.32.0 → hypermind-0.34.0}/.github/workflows/release.yml +0 -0
  42. {hypermind-0.32.0 → hypermind-0.34.0}/.github/workflows/security.yml +0 -0
  43. {hypermind-0.32.0 → hypermind-0.34.0}/.github/workflows/stale.yml +0 -0
  44. {hypermind-0.32.0 → hypermind-0.34.0}/.github/workflows-disabled/branch-flow-check.yml +0 -0
  45. {hypermind-0.32.0 → hypermind-0.34.0}/.github/workflows-disabled/chaos.yml +0 -0
  46. {hypermind-0.32.0 → hypermind-0.34.0}/.github/workflows-disabled/check-license.yml +0 -0
  47. {hypermind-0.32.0 → hypermind-0.34.0}/.github/workflows-disabled/ci.yml +0 -0
  48. {hypermind-0.32.0 → hypermind-0.34.0}/.github/workflows-disabled/code-freeze.yml +0 -0
  49. {hypermind-0.32.0 → hypermind-0.34.0}/.github/workflows-disabled/code-review-pr.yml +0 -0
  50. {hypermind-0.32.0 → hypermind-0.34.0}/.github/workflows-disabled/code-review.yml +0 -0
  51. {hypermind-0.32.0 → hypermind-0.34.0}/.github/workflows-disabled/codeql.yml +0 -0
  52. {hypermind-0.32.0 → hypermind-0.34.0}/.github/workflows-disabled/dco.yml +0 -0
  53. {hypermind-0.32.0 → hypermind-0.34.0}/.github/workflows-disabled/docs-to-wiki.yml +0 -0
  54. {hypermind-0.32.0 → hypermind-0.34.0}/.github/workflows-disabled/docs.yml +0 -0
  55. {hypermind-0.32.0 → hypermind-0.34.0}/.github/workflows-disabled/formal.yml +0 -0
  56. {hypermind-0.32.0 → hypermind-0.34.0}/.github/workflows-disabled/fuzz.yml +0 -0
  57. {hypermind-0.32.0 → hypermind-0.34.0}/.github/workflows-disabled/hotfix-security.yml +0 -0
  58. {hypermind-0.32.0 → hypermind-0.34.0}/.github/workflows-disabled/issue-auto-fix.yml +0 -0
  59. {hypermind-0.32.0 → hypermind-0.34.0}/.github/workflows-disabled/issue-triage.yml +0 -0
  60. {hypermind-0.32.0 → hypermind-0.34.0}/.github/workflows-disabled/merge-comment.yml +0 -0
  61. {hypermind-0.32.0 → hypermind-0.34.0}/.github/workflows-disabled/pip-audit.yml +0 -0
  62. {hypermind-0.32.0 → hypermind-0.34.0}/.github/workflows-disabled/pr-standards.yml +0 -0
  63. {hypermind-0.32.0 → hypermind-0.34.0}/.github/workflows-disabled/quality.yml +0 -0
  64. {hypermind-0.32.0 → hypermind-0.34.0}/.github/workflows-disabled/release.yml +0 -0
  65. {hypermind-0.32.0 → hypermind-0.34.0}/.github/workflows-disabled/sbom.yml +0 -0
  66. {hypermind-0.32.0 → hypermind-0.34.0}/.github/workflows-disabled/scorecard.yml +0 -0
  67. {hypermind-0.32.0 → hypermind-0.34.0}/.github/workflows-disabled/security.yml +0 -0
  68. {hypermind-0.32.0 → hypermind-0.34.0}/.github/workflows-disabled/sprint-retro.yml +0 -0
  69. {hypermind-0.32.0 → hypermind-0.34.0}/.github/workflows-disabled/stale.yml +0 -0
  70. {hypermind-0.32.0 → hypermind-0.34.0}/.gitignore +0 -0
  71. {hypermind-0.32.0 → hypermind-0.34.0}/.pre-commit-config.yaml +0 -0
  72. {hypermind-0.32.0 → hypermind-0.34.0}/.tool-versions +0 -0
  73. {hypermind-0.32.0 → hypermind-0.34.0}/CHARTER.md +0 -0
  74. {hypermind-0.32.0 → hypermind-0.34.0}/CODEOWNERS +0 -0
  75. {hypermind-0.32.0 → hypermind-0.34.0}/CODE_OF_CONDUCT.md +0 -0
  76. {hypermind-0.32.0 → hypermind-0.34.0}/CONTRIBUTING.md +0 -0
  77. {hypermind-0.32.0 → hypermind-0.34.0}/GOVERNANCE.md +0 -0
  78. {hypermind-0.32.0 → hypermind-0.34.0}/LICENSE +0 -0
  79. {hypermind-0.32.0 → hypermind-0.34.0}/MAINTAINERS.md +0 -0
  80. {hypermind-0.32.0 → hypermind-0.34.0}/Makefile +0 -0
  81. {hypermind-0.32.0 → hypermind-0.34.0}/RELATA_COMPATIBILITY.md +0 -0
  82. {hypermind-0.32.0 → hypermind-0.34.0}/RELATA_INTEGRATION_PLAN.md +0 -0
  83. {hypermind-0.32.0 → hypermind-0.34.0}/RELATA_STORAGE.md +0 -0
  84. {hypermind-0.32.0 → hypermind-0.34.0}/ROADMAP.md +0 -0
  85. {hypermind-0.32.0 → hypermind-0.34.0}/SECURITY.md +0 -0
  86. {hypermind-0.32.0 → hypermind-0.34.0}/bench/README.md +0 -0
  87. {hypermind-0.32.0 → hypermind-0.34.0}/bench/__init__.py +0 -0
  88. {hypermind-0.32.0 → hypermind-0.34.0}/bench/baselines/v0.6.json +0 -0
  89. {hypermind-0.32.0 → hypermind-0.34.0}/bench/bench_consult.py +0 -0
  90. {hypermind-0.32.0 → hypermind-0.34.0}/bench/bench_dispute.py +0 -0
  91. {hypermind-0.32.0 → hypermind-0.34.0}/bench/bench_publish.py +0 -0
  92. {hypermind-0.32.0 → hypermind-0.34.0}/bench/coordination/README.md +0 -0
  93. {hypermind-0.32.0 → hypermind-0.34.0}/bench/coordination/__init__.py +0 -0
  94. {hypermind-0.32.0 → hypermind-0.34.0}/bench/coordination/baselines/v0.10.json +0 -0
  95. {hypermind-0.32.0 → hypermind-0.34.0}/bench/coordination/bench_rfp_latency.py +0 -0
  96. {hypermind-0.32.0 → hypermind-0.34.0}/bench/coordination/bench_task_throughput.py +0 -0
  97. {hypermind-0.32.0 → hypermind-0.34.0}/bench/coordination/bench_workflow_replay.py +0 -0
  98. {hypermind-0.32.0 → hypermind-0.34.0}/bench/coordination/run_all.py +0 -0
  99. {hypermind-0.32.0 → hypermind-0.34.0}/bench/question_sets/geopolitics_q20.json +0 -0
  100. {hypermind-0.32.0 → hypermind-0.34.0}/bench/question_sets/msft_outlook_q10.json +0 -0
  101. {hypermind-0.32.0 → hypermind-0.34.0}/bench/run_bench.py +0 -0
  102. {hypermind-0.32.0 → hypermind-0.34.0}/chaos/README.md +0 -0
  103. {hypermind-0.32.0 → hypermind-0.34.0}/chaos/__init__.py +0 -0
  104. {hypermind-0.32.0 → hypermind-0.34.0}/chaos/p1_partition_recovery.py +0 -0
  105. {hypermind-0.32.0 → hypermind-0.34.0}/chaos/p2_witness_compromise.py +0 -0
  106. {hypermind-0.32.0 → hypermind-0.34.0}/chaos/p3_key_rotation.py +0 -0
  107. {hypermind-0.32.0 → hypermind-0.34.0}/chaos/p4_dispute_backlog.py +0 -0
  108. {hypermind-0.32.0 → hypermind-0.34.0}/chaos/p5_wire_cutover.py +0 -0
  109. {hypermind-0.32.0 → hypermind-0.34.0}/chaos/p6_quorum_loss.py +0 -0
  110. {hypermind-0.32.0 → hypermind-0.34.0}/chaos/p7_clock_skew.py +0 -0
  111. {hypermind-0.32.0 → hypermind-0.34.0}/chaos/p8_recorder_outage.py +0 -0
  112. {hypermind-0.32.0 → hypermind-0.34.0}/chaos/run_chaos.py +0 -0
  113. {hypermind-0.32.0 → hypermind-0.34.0}/deploy/Dockerfile +0 -0
  114. {hypermind-0.32.0 → hypermind-0.34.0}/deploy/README.md +0 -0
  115. {hypermind-0.32.0 → hypermind-0.34.0}/deploy/docker-compose.yml +0 -0
  116. {hypermind-0.32.0 → hypermind-0.34.0}/deploy/grafana/dashboards/hypermind-coordination.json +0 -0
  117. {hypermind-0.32.0 → hypermind-0.34.0}/deploy/grafana/dashboards/hypermind-v06.json +0 -0
  118. {hypermind-0.32.0 → hypermind-0.34.0}/deploy/grafana/dashboards/hypermind.json +0 -0
  119. {hypermind-0.32.0 → hypermind-0.34.0}/deploy/grafana/provisioning/dashboards/hypermind.yml +0 -0
  120. {hypermind-0.32.0 → hypermind-0.34.0}/deploy/grafana/provisioning/datasources/prometheus.yml +0 -0
  121. {hypermind-0.32.0 → hypermind-0.34.0}/deploy/k8s/hypermind-deployment.yaml +0 -0
  122. {hypermind-0.32.0 → hypermind-0.34.0}/deploy/k8s/orgs-distributed.yaml +0 -0
  123. {hypermind-0.32.0 → hypermind-0.34.0}/deploy/prometheus/prometheus.yml +0 -0
  124. {hypermind-0.32.0 → hypermind-0.34.0}/deploy/systemd/hypermind.service +0 -0
  125. {hypermind-0.32.0 → hypermind-0.34.0}/docs/README.md +0 -0
  126. {hypermind-0.32.0 → hypermind-0.34.0}/docs/SIMLAB.md +0 -0
  127. {hypermind-0.32.0 → hypermind-0.34.0}/docs/SIMLAB_AUDIT_PLAN.md +0 -0
  128. {hypermind-0.32.0 → hypermind-0.34.0}/docs/_meta/glossary.md +0 -0
  129. {hypermind-0.32.0 → hypermind-0.34.0}/docs/_meta/provenance.md +0 -0
  130. {hypermind-0.32.0 → hypermind-0.34.0}/docs/_meta/public-surface.md +0 -0
  131. {hypermind-0.32.0 → hypermind-0.34.0}/docs/_meta/standards-map.md +0 -0
  132. {hypermind-0.32.0 → hypermind-0.34.0}/docs/api/agent.md +0 -0
  133. {hypermind-0.32.0 → hypermind-0.34.0}/docs/api/agent_card.md +0 -0
  134. {hypermind-0.32.0 → hypermind-0.34.0}/docs/api/capability.md +0 -0
  135. {hypermind-0.32.0 → hypermind-0.34.0}/docs/api/crypto.md +0 -0
  136. {hypermind-0.32.0 → hypermind-0.34.0}/docs/api/dispute.md +0 -0
  137. {hypermind-0.32.0 → hypermind-0.34.0}/docs/api/knowledge.md +0 -0
  138. {hypermind-0.32.0 → hypermind-0.34.0}/docs/api/observability.md +0 -0
  139. {hypermind-0.32.0 → hypermind-0.34.0}/docs/api/simlab-openapi.yaml +0 -0
  140. {hypermind-0.32.0 → hypermind-0.34.0}/docs/api/sync.md +0 -0
  141. {hypermind-0.32.0 → hypermind-0.34.0}/docs/api/tasks.md +0 -0
  142. {hypermind-0.32.0 → hypermind-0.34.0}/docs/api/transport.md +0 -0
  143. {hypermind-0.32.0 → hypermind-0.34.0}/docs/api/wire.md +0 -0
  144. {hypermind-0.32.0 → hypermind-0.34.0}/docs/architecture-v0.6.md +0 -0
  145. {hypermind-0.32.0 → hypermind-0.34.0}/docs/assets/hero-swarm.svg +0 -0
  146. {hypermind-0.32.0 → hypermind-0.34.0}/docs/audit/findings.md +0 -0
  147. {hypermind-0.32.0 → hypermind-0.34.0}/docs/audit/scope.md +0 -0
  148. {hypermind-0.32.0 → hypermind-0.34.0}/docs/concepts.md +0 -0
  149. {hypermind-0.32.0 → hypermind-0.34.0}/docs/conformance/authority.md +0 -0
  150. {hypermind-0.32.0 → hypermind-0.34.0}/docs/conformance/bake-off-report.md +0 -0
  151. {hypermind-0.32.0 → hypermind-0.34.0}/docs/conformance/mark-policy.md +0 -0
  152. {hypermind-0.32.0 → hypermind-0.34.0}/docs/decide/01-disqualifiers.md +0 -0
  153. {hypermind-0.32.0 → hypermind-0.34.0}/docs/decide/02-alternatives.md +0 -0
  154. {hypermind-0.32.0 → hypermind-0.34.0}/docs/decide/03-incentive-aligned-cases.md +0 -0
  155. {hypermind-0.32.0 → hypermind-0.34.0}/docs/decide/04-use-cases.md +0 -0
  156. {hypermind-0.32.0 → hypermind-0.34.0}/docs/design/01-architecture.md +0 -0
  157. {hypermind-0.32.0 → hypermind-0.34.0}/docs/design/02-traces.md +0 -0
  158. {hypermind-0.32.0 → hypermind-0.34.0}/docs/design/03-failure-modes.md +0 -0
  159. {hypermind-0.32.0 → hypermind-0.34.0}/docs/design/04-poisoning-defenses.md +0 -0
  160. {hypermind-0.32.0 → hypermind-0.34.0}/docs/design/05-deployment-topology.md +0 -0
  161. {hypermind-0.32.0 → hypermind-0.34.0}/docs/feature-matrix.md +0 -0
  162. {hypermind-0.32.0 → hypermind-0.34.0}/docs/getting-started.md +0 -0
  163. {hypermind-0.32.0 → hypermind-0.34.0}/docs/governance/cna.md +0 -0
  164. {hypermind-0.32.0 → hypermind-0.34.0}/docs/governance/foundation-evaluation.md +0 -0
  165. {hypermind-0.32.0 → hypermind-0.34.0}/docs/hypermind-protocol-spec.md +0 -0
  166. {hypermind-0.32.0 → hypermind-0.34.0}/docs/index.md +0 -0
  167. {hypermind-0.32.0 → hypermind-0.34.0}/docs/legal/export-classification.md +0 -0
  168. {hypermind-0.32.0 → hypermind-0.34.0}/docs/lts.md +0 -0
  169. {hypermind-0.32.0 → hypermind-0.34.0}/docs/migrate/v0.x-to-v1.0.md +0 -0
  170. {hypermind-0.32.0 → hypermind-0.34.0}/docs/migration/v0.7.md +0 -0
  171. {hypermind-0.32.0 → hypermind-0.34.0}/docs/onboarding/00-prerequisites.md +0 -0
  172. {hypermind-0.32.0 → hypermind-0.34.0}/docs/onboarding/README.md +0 -0
  173. {hypermind-0.32.0 → hypermind-0.34.0}/docs/onboarding/after.md +0 -0
  174. {hypermind-0.32.0 → hypermind-0.34.0}/docs/onboarding/exercises/e01-run-the-loop.md +0 -0
  175. {hypermind-0.32.0 → hypermind-0.34.0}/docs/onboarding/exercises/e02-draw-the-architecture.md +0 -0
  176. {hypermind-0.32.0 → hypermind-0.34.0}/docs/onboarding/exercises/e03-trace-a-claim.md +0 -0
  177. {hypermind-0.32.0 → hypermind-0.34.0}/docs/onboarding/exercises/e04-read-a-spec-section.md +0 -0
  178. {hypermind-0.32.0 → hypermind-0.34.0}/docs/onboarding/exercises/e05-break-it.md +0 -0
  179. {hypermind-0.32.0 → hypermind-0.34.0}/docs/onboarding/exercises/e06-add-a-test.md +0 -0
  180. {hypermind-0.32.0 → hypermind-0.34.0}/docs/onboarding/exercises/e07-first-pr.md +0 -0
  181. {hypermind-0.32.0 → hypermind-0.34.0}/docs/onboarding/glossary.md +0 -0
  182. {hypermind-0.32.0 → hypermind-0.34.0}/docs/onboarding/topics/00-what-is-hypermind.md +0 -0
  183. {hypermind-0.32.0 → hypermind-0.34.0}/docs/onboarding/topics/01-agents-and-swarms.md +0 -0
  184. {hypermind-0.32.0 → hypermind-0.34.0}/docs/onboarding/topics/02-architecture-tour.md +0 -0
  185. {hypermind-0.32.0 → hypermind-0.34.0}/docs/onboarding/topics/03-spec-literacy.md +0 -0
  186. {hypermind-0.32.0 → hypermind-0.34.0}/docs/onboarding/topics/04-cryptography.md +0 -0
  187. {hypermind-0.32.0 → hypermind-0.34.0}/docs/onboarding/topics/05-cbor-cose.md +0 -0
  188. {hypermind-0.32.0 → hypermind-0.34.0}/docs/onboarding/topics/06-transparency-logs.md +0 -0
  189. {hypermind-0.32.0 → hypermind-0.34.0}/docs/onboarding/topics/07-distributed-systems.md +0 -0
  190. {hypermind-0.32.0 → hypermind-0.34.0}/docs/onboarding/topics/08-async-python.md +0 -0
  191. {hypermind-0.32.0 → hypermind-0.34.0}/docs/onboarding/topics/09-security-mindset.md +0 -0
  192. {hypermind-0.32.0 → hypermind-0.34.0}/docs/onboarding/week-1-foundations.md +0 -0
  193. {hypermind-0.32.0 → hypermind-0.34.0}/docs/onboarding/week-2-deep-dive.md +0 -0
  194. {hypermind-0.32.0 → hypermind-0.34.0}/docs/operate/01-deployment.md +0 -0
  195. {hypermind-0.32.0 → hypermind-0.34.0}/docs/operate/02-runbook.md +0 -0
  196. {hypermind-0.32.0 → hypermind-0.34.0}/docs/operate/03-resource-budget.md +0 -0
  197. {hypermind-0.32.0 → hypermind-0.34.0}/docs/operate/backup-restore.md +0 -0
  198. {hypermind-0.32.0 → hypermind-0.34.0}/docs/operate/data-residency.md +0 -0
  199. {hypermind-0.32.0 → hypermind-0.34.0}/docs/operate/key-rotation.md +0 -0
  200. {hypermind-0.32.0 → hypermind-0.34.0}/docs/operate/runbooks/dispute-backlog-drain.md +0 -0
  201. {hypermind-0.32.0 → hypermind-0.34.0}/docs/operate/runbooks/key-rotation.md +0 -0
  202. {hypermind-0.32.0 → hypermind-0.34.0}/docs/operate/runbooks/kms-rotation.md +0 -0
  203. {hypermind-0.32.0 → hypermind-0.34.0}/docs/operate/runbooks/multi-host-deploy.md +0 -0
  204. {hypermind-0.32.0 → hypermind-0.34.0}/docs/operate/runbooks/partition-heal.md +0 -0
  205. {hypermind-0.32.0 → hypermind-0.34.0}/docs/operate/runbooks/quorum-loss.md +0 -0
  206. {hypermind-0.32.0 → hypermind-0.34.0}/docs/operate/runbooks/rfp-dispute-triage.md +0 -0
  207. {hypermind-0.32.0 → hypermind-0.34.0}/docs/operate/runbooks/wire-cutover.md +0 -0
  208. {hypermind-0.32.0 → hypermind-0.34.0}/docs/operate/runbooks/witness-compromise.md +0 -0
  209. {hypermind-0.32.0 → hypermind-0.34.0}/docs/operate/runbooks/workflow-replay.md +0 -0
  210. {hypermind-0.32.0 → hypermind-0.34.0}/docs/operate/slo.md +0 -0
  211. {hypermind-0.32.0 → hypermind-0.34.0}/docs/paper/00-patent.md +0 -0
  212. {hypermind-0.32.0 → hypermind-0.34.0}/docs/paper/hypermind-paper-draft.md +0 -0
  213. {hypermind-0.32.0 → hypermind-0.34.0}/docs/paper/hypermind-paper.docx +0 -0
  214. {hypermind-0.32.0 → hypermind-0.34.0}/docs/paper/hypermind-paper.tex +0 -0
  215. {hypermind-0.32.0 → hypermind-0.34.0}/docs/release-notes/v1.0-checklist.md +0 -0
  216. {hypermind-0.32.0 → hypermind-0.34.0}/docs/release-notes/v1.0.0.md +0 -0
  217. {hypermind-0.32.0 → hypermind-0.34.0}/docs/security/threat-model.md +0 -0
  218. {hypermind-0.32.0 → hypermind-0.34.0}/docs/simlab/modes.md +0 -0
  219. {hypermind-0.32.0 → hypermind-0.34.0}/docs/simulations.md +0 -0
  220. {hypermind-0.32.0 → hypermind-0.34.0}/docs/spec/00-overview.md +0 -0
  221. {hypermind-0.32.0 → hypermind-0.34.0}/docs/spec/01-transport.md +0 -0
  222. {hypermind-0.32.0 → hypermind-0.34.0}/docs/spec/02-cryptography.md +0 -0
  223. {hypermind-0.32.0 → hypermind-0.34.0}/docs/spec/03-messages.md +0 -0
  224. {hypermind-0.32.0 → hypermind-0.34.0}/docs/spec/04-knowledge-model.md +0 -0
  225. {hypermind-0.32.0 → hypermind-0.34.0}/docs/spec/05-routing.md +0 -0
  226. {hypermind-0.32.0 → hypermind-0.34.0}/docs/spec/06-conformance.md +0 -0
  227. {hypermind-0.32.0 → hypermind-0.34.0}/docs/spec/07-trust-access-layer.md +0 -0
  228. {hypermind-0.32.0 → hypermind-0.34.0}/docs/spec/08-onboarding-contract.md +0 -0
  229. {hypermind-0.32.0 → hypermind-0.34.0}/docs/spec/09-agent-sdk.md +0 -0
  230. {hypermind-0.32.0 → hypermind-0.34.0}/docs/spec/10-disputes.md +0 -0
  231. {hypermind-0.32.0 → hypermind-0.34.0}/docs/spec/11-witness-transparency.md +0 -0
  232. {hypermind-0.32.0 → hypermind-0.34.0}/docs/spec/12-governance.md +0 -0
  233. {hypermind-0.32.0 → hypermind-0.34.0}/docs/spec/13-observability.md +0 -0
  234. {hypermind-0.32.0 → hypermind-0.34.0}/docs/spec/14-threat-model.md +0 -0
  235. {hypermind-0.32.0 → hypermind-0.34.0}/docs/spec/15-living-transmission.md +0 -0
  236. {hypermind-0.32.0 → hypermind-0.34.0}/docs/spec/16-reference-comparisons.md +0 -0
  237. {hypermind-0.32.0 → hypermind-0.34.0}/docs/spec/17-upgrade-v1.md +0 -0
  238. {hypermind-0.32.0 → hypermind-0.34.0}/docs/spec/18-revocation.md +0 -0
  239. {hypermind-0.32.0 → hypermind-0.34.0}/docs/spec/19-autonomy-contract.md +0 -0
  240. {hypermind-0.32.0 → hypermind-0.34.0}/docs/spec/20-swarm-intelligence.md +0 -0
  241. {hypermind-0.32.0 → hypermind-0.34.0}/docs/spec/21-belief-state.md +0 -0
  242. {hypermind-0.32.0 → hypermind-0.34.0}/docs/spec/21-private-namespaces.md +0 -0
  243. {hypermind-0.32.0 → hypermind-0.34.0}/docs/spec/22-transport-mtls.md +0 -0
  244. {hypermind-0.32.0 → hypermind-0.34.0}/docs/spec/23-envelope-encryption.md +0 -0
  245. {hypermind-0.32.0 → hypermind-0.34.0}/docs/spec/24-namespace-identity.md +0 -0
  246. {hypermind-0.32.0 → hypermind-0.34.0}/docs/spec/25-capability-extensions.md +0 -0
  247. {hypermind-0.32.0 → hypermind-0.34.0}/docs/spec/26-workflow.md +0 -0
  248. {hypermind-0.32.0 → hypermind-0.34.0}/docs/spec/27-contract-net.md +0 -0
  249. {hypermind-0.32.0 → hypermind-0.34.0}/docs/spec/28-distributed-trace.md +0 -0
  250. {hypermind-0.32.0 → hypermind-0.34.0}/docs/spec/_meta/gaps-closed.md +0 -0
  251. {hypermind-0.32.0 → hypermind-0.34.0}/docs/spec/appendix-N-calibration.md +0 -0
  252. {hypermind-0.32.0 → hypermind-0.34.0}/docs/spec/appendix-TLA.md +0 -0
  253. {hypermind-0.32.0 → hypermind-0.34.0}/docs/spec/appendix-z.md +0 -0
  254. {hypermind-0.32.0 → hypermind-0.34.0}/docs/spec/errata.md +0 -0
  255. {hypermind-0.32.0 → hypermind-0.34.0}/docs/spec/index.md +0 -0
  256. {hypermind-0.32.0 → hypermind-0.34.0}/docs/spec/invariants.md +0 -0
  257. {hypermind-0.32.0 → hypermind-0.34.0}/docs/spec/normative-trace.md +0 -0
  258. {hypermind-0.32.0 → hypermind-0.34.0}/docs/supply-chain/sbom.md +0 -0
  259. {hypermind-0.32.0 → hypermind-0.34.0}/docs/supply-chain/slsa.md +0 -0
  260. {hypermind-0.32.0 → hypermind-0.34.0}/docs/supply-chain/verify-self.md +0 -0
  261. {hypermind-0.32.0 → hypermind-0.34.0}/docs/sustainability.md +0 -0
  262. {hypermind-0.32.0 → hypermind-0.34.0}/examples/01_hello_world.py +0 -0
  263. {hypermind-0.32.0 → hypermind-0.34.0}/examples/02_two_agents_dispute.py +0 -0
  264. {hypermind-0.32.0 → hypermind-0.34.0}/examples/03_consult_panel.py +0 -0
  265. {hypermind-0.32.0 → hypermind-0.34.0}/examples/04_oracle_resolve.py +0 -0
  266. {hypermind-0.32.0 → hypermind-0.34.0}/examples/05_consult_to_synthesis.py +0 -0
  267. {hypermind-0.32.0 → hypermind-0.34.0}/examples/06_hybrid_pq.py +0 -0
  268. {hypermind-0.32.0 → hypermind-0.34.0}/examples/07_frost_threshold.py +0 -0
  269. {hypermind-0.32.0 → hypermind-0.34.0}/examples/08_ramp_and_diagnostics.py +0 -0
  270. {hypermind-0.32.0 → hypermind-0.34.0}/examples/09_audit_export_chain.py +0 -0
  271. {hypermind-0.32.0 → hypermind-0.34.0}/examples/10_autonomous_agent.py +0 -0
  272. {hypermind-0.32.0 → hypermind-0.34.0}/examples/11_swarm_deliberation.py +0 -0
  273. {hypermind-0.32.0 → hypermind-0.34.0}/examples/12_swarm_iq_scorecard.py +0 -0
  274. {hypermind-0.32.0 → hypermind-0.34.0}/examples/13_role_specialisation.py +0 -0
  275. {hypermind-0.32.0 → hypermind-0.34.0}/examples/14_active_learning_loop.py +0 -0
  276. {hypermind-0.32.0 → hypermind-0.34.0}/examples/16_wire_message.py +0 -0
  277. {hypermind-0.32.0 → hypermind-0.34.0}/examples/17_tool_delegation.py +0 -0
  278. {hypermind-0.32.0 → hypermind-0.34.0}/examples/18_custom_responder.py +0 -0
  279. {hypermind-0.32.0 → hypermind-0.34.0}/examples/19_governance.py +0 -0
  280. {hypermind-0.32.0 → hypermind-0.34.0}/examples/20_conformance_check.py +0 -0
  281. {hypermind-0.32.0 → hypermind-0.34.0}/examples/21_revocation.py +0 -0
  282. {hypermind-0.32.0 → hypermind-0.34.0}/examples/22_agent_card.py +0 -0
  283. {hypermind-0.32.0 → hypermind-0.34.0}/examples/23_task_delegation.py +0 -0
  284. {hypermind-0.32.0 → hypermind-0.34.0}/examples/24_mcp_tool_call.py +0 -0
  285. {hypermind-0.32.0 → hypermind-0.34.0}/examples/25_swarm_trace.py +0 -0
  286. {hypermind-0.32.0 → hypermind-0.34.0}/examples/README.md +0 -0
  287. {hypermind-0.32.0 → hypermind-0.34.0}/examples/coordination/01_durable_workflow.py +0 -0
  288. {hypermind-0.32.0 → hypermind-0.34.0}/examples/coordination/02_contract_net.py +0 -0
  289. {hypermind-0.32.0 → hypermind-0.34.0}/examples/coordination/03_belief_and_plan.py +0 -0
  290. {hypermind-0.32.0 → hypermind-0.34.0}/examples/coordination/__init__.py +0 -0
  291. {hypermind-0.32.0 → hypermind-0.34.0}/examples/coordination/usecases/__init__.py +0 -0
  292. {hypermind-0.32.0 → hypermind-0.34.0}/examples/coordination/usecases/ai_01_fed_benchmark.py +0 -0
  293. {hypermind-0.32.0 → hypermind-0.34.0}/examples/coordination/usecases/ai_alignment_redteam.py +0 -0
  294. {hypermind-0.32.0 → hypermind-0.34.0}/examples/coordination/usecases/cy_05_ir_swarm.py +0 -0
  295. {hypermind-0.32.0 → hypermind-0.34.0}/examples/coordination/usecases/cy_11_ransomware_intel.py +0 -0
  296. {hypermind-0.32.0 → hypermind-0.34.0}/examples/coordination/usecases/ed_credentials.py +0 -0
  297. {hypermind-0.32.0 → hypermind-0.34.0}/examples/coordination/usecases/en_grid_coordinate.py +0 -0
  298. {hypermind-0.32.0 → hypermind-0.34.0}/examples/coordination/usecases/fi_04_bsa_314b.py +0 -0
  299. {hypermind-0.32.0 → hypermind-0.34.0}/examples/coordination/usecases/fi_22_ma_dataroom.py +0 -0
  300. {hypermind-0.32.0 → hypermind-0.34.0}/examples/coordination/usecases/gv_01_intel_sharing.py +0 -0
  301. {hypermind-0.32.0 → hypermind-0.34.0}/examples/coordination/usecases/gv_21_red_team.py +0 -0
  302. {hypermind-0.32.0 → hypermind-0.34.0}/examples/coordination/usecases/hc_06_rare_disease.py +0 -0
  303. {hypermind-0.32.0 → hypermind-0.34.0}/examples/coordination/usecases/hc_21_fed_learning.py +0 -0
  304. {hypermind-0.32.0 → hypermind-0.34.0}/examples/coordination/usecases/lg_ediscovery.py +0 -0
  305. {hypermind-0.32.0 → hypermind-0.34.0}/examples/coordination/usecases/mf_supply_chain.py +0 -0
  306. {hypermind-0.32.0 → hypermind-0.34.0}/examples/e2e_many_agents.py +0 -0
  307. {hypermind-0.32.0 → hypermind-0.34.0}/examples/full_e2e_demo.py +0 -0
  308. {hypermind-0.32.0 → hypermind-0.34.0}/examples/lifecycle.py +0 -0
  309. {hypermind-0.32.0 → hypermind-0.34.0}/examples/org_distributed.py +0 -0
  310. {hypermind-0.32.0 → hypermind-0.34.0}/examples/org_university.py +0 -0
  311. {hypermind-0.32.0 → hypermind-0.34.0}/examples/scenario_aar.py +0 -0
  312. {hypermind-0.32.0 → hypermind-0.34.0}/examples/scenario_backtest.py +0 -0
  313. {hypermind-0.32.0 → hypermind-0.34.0}/examples/scenario_capability_attenuation.py +0 -0
  314. {hypermind-0.32.0 → hypermind-0.34.0}/examples/scenario_conformance.py +0 -0
  315. {hypermind-0.32.0 → hypermind-0.34.0}/examples/scenario_crisis_tabletop.py +0 -0
  316. {hypermind-0.32.0 → hypermind-0.34.0}/examples/scenario_cross_namespace_federation.py +0 -0
  317. {hypermind-0.32.0 → hypermind-0.34.0}/examples/scenario_decision_tournament.py +0 -0
  318. {hypermind-0.32.0 → hypermind-0.34.0}/examples/scenario_dispute_lifecycle_async.py +0 -0
  319. {hypermind-0.32.0 → hypermind-0.34.0}/examples/scenario_evaluation.py +0 -0
  320. {hypermind-0.32.0 → hypermind-0.34.0}/examples/scenario_geopolitical_crisis.py +0 -0
  321. {hypermind-0.32.0 → hypermind-0.34.0}/examples/scenario_geopolitical_traced.py +0 -0
  322. {hypermind-0.32.0 → hypermind-0.34.0}/examples/scenario_governance_committee.py +0 -0
  323. {hypermind-0.32.0 → hypermind-0.34.0}/examples/scenario_information_pipeline.py +0 -0
  324. {hypermind-0.32.0 → hypermind-0.34.0}/examples/scenario_learning_loop.py +0 -0
  325. {hypermind-0.32.0 → hypermind-0.34.0}/examples/scenario_namespace_trust.py +0 -0
  326. {hypermind-0.32.0 → hypermind-0.34.0}/examples/scenario_persona_panel.py +0 -0
  327. {hypermind-0.32.0 → hypermind-0.34.0}/examples/scenario_private_namespace.py +0 -0
  328. {hypermind-0.32.0 → hypermind-0.34.0}/examples/scenario_red_team.py +0 -0
  329. {hypermind-0.32.0 → hypermind-0.34.0}/examples/scenario_regulated_consortium.py +0 -0
  330. {hypermind-0.32.0 → hypermind-0.34.0}/examples/scenario_threat_intel.py +0 -0
  331. {hypermind-0.32.0 → hypermind-0.34.0}/examples/scenario_vouch_chain.py +0 -0
  332. {hypermind-0.32.0 → hypermind-0.34.0}/examples/scenario_what_if_tree.py +0 -0
  333. {hypermind-0.32.0 → hypermind-0.34.0}/examples/serve_api.py +0 -0
  334. {hypermind-0.32.0 → hypermind-0.34.0}/examples/two_node_tcp.py +0 -0
  335. {hypermind-0.32.0 → hypermind-0.34.0}/formal/README.md +0 -0
  336. {hypermind-0.32.0 → hypermind-0.34.0}/formal/hax-rust/README.md +0 -0
  337. {hypermind-0.32.0 → hypermind-0.34.0}/formal/hax-rust/scope.md +0 -0
  338. {hypermind-0.32.0 → hypermind-0.34.0}/formal/proverif/dispute_fsm.pv +0 -0
  339. {hypermind-0.32.0 → hypermind-0.34.0}/formal/proverif/dispute_liveness.pv +0 -0
  340. {hypermind-0.32.0 → hypermind-0.34.0}/formal/tamarin/capability_chain.spthy +0 -0
  341. {hypermind-0.32.0 → hypermind-0.34.0}/formal/tamarin/dispute_fsm.spthy +0 -0
  342. {hypermind-0.32.0 → hypermind-0.34.0}/formal/tamarin/signed_statement.spthy +0 -0
  343. {hypermind-0.32.0 → hypermind-0.34.0}/formal/tamarin/wire_security.spthy +0 -0
  344. {hypermind-0.32.0 → hypermind-0.34.0}/fuzz/README.md +0 -0
  345. {hypermind-0.32.0 → hypermind-0.34.0}/fuzz/__init__.py +0 -0
  346. {hypermind-0.32.0 → hypermind-0.34.0}/fuzz/fuzz_agent_card.py +0 -0
  347. {hypermind-0.32.0 → hypermind-0.34.0}/fuzz/fuzz_anti_entropy.py +0 -0
  348. {hypermind-0.32.0 → hypermind-0.34.0}/fuzz/fuzz_capability.py +0 -0
  349. {hypermind-0.32.0 → hypermind-0.34.0}/fuzz/fuzz_dispute.py +0 -0
  350. {hypermind-0.32.0 → hypermind-0.34.0}/fuzz/fuzz_inclusion_proof.py +0 -0
  351. {hypermind-0.32.0 → hypermind-0.34.0}/fuzz/fuzz_wire.py +0 -0
  352. {hypermind-0.32.0 → hypermind-0.34.0}/fuzz/seed_corpus.py +0 -0
  353. {hypermind-0.32.0 → hypermind-0.34.0}/harness/__init__.py +0 -0
  354. {hypermind-0.32.0 → hypermind-0.34.0}/harness/__main__.py +0 -0
  355. {hypermind-0.32.0 → hypermind-0.34.0}/harness/assertions.py +0 -0
  356. {hypermind-0.32.0 → hypermind-0.34.0}/harness/fixtures.py +0 -0
  357. {hypermind-0.32.0 → hypermind-0.34.0}/harness/report.py +0 -0
  358. {hypermind-0.32.0 → hypermind-0.34.0}/harness/roles.py +0 -0
  359. {hypermind-0.32.0 → hypermind-0.34.0}/harness/runner.py +0 -0
  360. {hypermind-0.32.0 → hypermind-0.34.0}/harness/scenario.py +0 -0
  361. {hypermind-0.32.0 → hypermind-0.34.0}/harness/scenarios/__init__.py +0 -0
  362. {hypermind-0.32.0 → hypermind-0.34.0}/harness/scenarios/autonomous_evolution.py +0 -0
  363. {hypermind-0.32.0 → hypermind-0.34.0}/harness/scenarios/swarm_iq_benchmark.py +0 -0
  364. {hypermind-0.32.0 → hypermind-0.34.0}/harness/scenarios/threat_intel.py +0 -0
  365. {hypermind-0.32.0 → hypermind-0.34.0}/mkdocs.yml +0 -0
  366. {hypermind-0.32.0 → hypermind-0.34.0}/reference_verifier/__init__.py +0 -0
  367. {hypermind-0.32.0 → hypermind-0.34.0}/reference_verifier/schemas/encrypted_statement.cddl +0 -0
  368. {hypermind-0.32.0 → hypermind-0.34.0}/reference_verifier/schemas/namespace_accept.cddl +0 -0
  369. {hypermind-0.32.0 → hypermind-0.34.0}/reference_verifier/schemas/namespace_create.cddl +0 -0
  370. {hypermind-0.32.0 → hypermind-0.34.0}/reference_verifier/schemas/namespace_founding_attest.cddl +0 -0
  371. {hypermind-0.32.0 → hypermind-0.34.0}/reference_verifier/schemas/namespace_invite.cddl +0 -0
  372. {hypermind-0.32.0 → hypermind-0.34.0}/reference_verifier/schemas/wire-v0.1.cddl +0 -0
  373. {hypermind-0.32.0 → hypermind-0.34.0}/reference_verifier/verifier.py +0 -0
  374. {hypermind-0.32.0 → hypermind-0.34.0}/review/__init__.py +0 -0
  375. {hypermind-0.32.0 → hypermind-0.34.0}/review/__main__.py +0 -0
  376. {hypermind-0.32.0 → hypermind-0.34.0}/review/agents.py +0 -0
  377. {hypermind-0.32.0 → hypermind-0.34.0}/review/models.py +0 -0
  378. {hypermind-0.32.0 → hypermind-0.34.0}/review/runner.py +0 -0
  379. {hypermind-0.32.0 → hypermind-0.34.0}/src/hmctl/__init__.py +0 -0
  380. {hypermind-0.32.0 → hypermind-0.34.0}/src/hmctl/cli.py +0 -0
  381. {hypermind-0.32.0 → hypermind-0.34.0}/src/hmctl/dashboard.py +0 -0
  382. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/_deprecations.py +0 -0
  383. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/agent.py +0 -0
  384. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/agent_card.py +0 -0
  385. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/api/__init__.py +0 -0
  386. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/api/app.py +0 -0
  387. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/capability.py +0 -0
  388. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/consult.py +0 -0
  389. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/consult_bias.py +0 -0
  390. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/contract_net.py +0 -0
  391. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/crypto/__init__.py +0 -0
  392. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/crypto/cose_encrypt.py +0 -0
  393. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/crypto/dkg.py +0 -0
  394. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/crypto/domain.py +0 -0
  395. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/crypto/frost.py +0 -0
  396. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/crypto/hashing.py +0 -0
  397. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/crypto/hlc.py +0 -0
  398. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/crypto/hpke.py +0 -0
  399. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/crypto/kms.py +0 -0
  400. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/crypto/kms_backends/__init__.py +0 -0
  401. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/crypto/kms_backends/aws.py +0 -0
  402. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/crypto/kms_backends/azure.py +0 -0
  403. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/crypto/kms_backends/gcp.py +0 -0
  404. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/crypto/kms_backends/vault.py +0 -0
  405. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/crypto/namespace_root.py +0 -0
  406. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/crypto/pq.py +0 -0
  407. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/crypto/room_epoch.py +0 -0
  408. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/crypto/signing.py +0 -0
  409. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/deliberation.py +0 -0
  410. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/did_web.py +0 -0
  411. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/dispute.py +0 -0
  412. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/errors.py +0 -0
  413. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/eval/__init__.py +0 -0
  414. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/eval/calibration.py +0 -0
  415. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/eval/comparison.py +0 -0
  416. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/eval/replay.py +0 -0
  417. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/eval/swarm_iq.py +0 -0
  418. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/knowledge/__init__.py +0 -0
  419. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/knowledge/citation_graph.py +0 -0
  420. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/knowledge/correlated_agreement.py +0 -0
  421. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/knowledge/embedding_registry.py +0 -0
  422. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/knowledge/kernel_store.py +0 -0
  423. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/knowledge/rekor.py +0 -0
  424. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/knowledge/reputation.py +0 -0
  425. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/knowledge/swarm_memory.py +0 -0
  426. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/knowledge/transparency.py +0 -0
  427. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/mcp/__init__.py +0 -0
  428. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/mcp/bridge.py +0 -0
  429. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/mcp/client.py +0 -0
  430. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/mcp/provenance.py +0 -0
  431. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/mcp/relata_tools.py +0 -0
  432. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/mcp/server.py +0 -0
  433. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/mcp/transport.py +0 -0
  434. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/mind/__init__.py +0 -0
  435. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/mind/active.py +0 -0
  436. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/mind/belief.py +0 -0
  437. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/mind/deliberator.py +0 -0
  438. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/mind/diversity.py +0 -0
  439. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/mind/evolve.py +0 -0
  440. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/mind/federation.py +0 -0
  441. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/mind/goals.py +0 -0
  442. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/mind/integration.py +0 -0
  443. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/mind/mediator.py +0 -0
  444. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/mind/policy.py +0 -0
  445. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/mind/records.py +0 -0
  446. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/mind/roles.py +0 -0
  447. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/mind/sybil_guard.py +0 -0
  448. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/mind/world_model.py +0 -0
  449. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/namespace.py +0 -0
  450. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/namespace_policy.py +0 -0
  451. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/observability/__init__.py +0 -0
  452. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/observability/asgi.py +0 -0
  453. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/observability/cost.py +0 -0
  454. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/observability/otel_export.py +0 -0
  455. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/observability/recorder.py +0 -0
  456. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/observability/swarm_trace.py +0 -0
  457. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/orgs/context.py +0 -0
  458. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/orgs/deliberate.py +0 -0
  459. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/orgs/distributed/__init__.py +0 -0
  460. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/orgs/distributed/__main__.py +0 -0
  461. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/orgs/distributed/coordinator.py +0 -0
  462. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/orgs/distributed/planning.py +0 -0
  463. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/orgs/distributed/protocol.py +0 -0
  464. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/orgs/distributed/provision.py +0 -0
  465. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/orgs/distributed/serde.py +0 -0
  466. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/orgs/distributed/worker.py +0 -0
  467. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/orgs/experiment.py +0 -0
  468. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/orgs/groundtruth.py +0 -0
  469. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/orgs/interaction.py +0 -0
  470. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/orgs/intervention.py +0 -0
  471. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/orgs/metrics.py +0 -0
  472. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/orgs/model.py +0 -0
  473. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/orgs/quality.py +0 -0
  474. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/orgs/query.py +0 -0
  475. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/orgs/receipt.py +0 -0
  476. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/orgs/retrieval.py +0 -0
  477. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/orgs/stream.py +0 -0
  478. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/orgs/templates/__init__.py +0 -0
  479. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/orgs/think.py +0 -0
  480. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/orgs/tools.py +0 -0
  481. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/pin_policy.py +0 -0
  482. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/py.typed +0 -0
  483. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/responders/__init__.py +0 -0
  484. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/responders/anthropic.py +0 -0
  485. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/responders/base.py +0 -0
  486. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/responders/openai.py +0 -0
  487. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/responders/router.py +0 -0
  488. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/revocation.py +0 -0
  489. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/rule_ids.py +0 -0
  490. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/schemas/encrypted_statement.cddl +0 -0
  491. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/schemas/namespace_accept.cddl +0 -0
  492. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/schemas/namespace_create.cddl +0 -0
  493. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/schemas/namespace_founding_attest.cddl +0 -0
  494. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/schemas/namespace_invite.cddl +0 -0
  495. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/schemas/wire-v0.1.cddl +0 -0
  496. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/simlab/__init__.py +0 -0
  497. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/simlab/_persona_registry.py +0 -0
  498. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/simlab/_scenario_impl.py +0 -0
  499. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/simlab/app.py +0 -0
  500. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/simlab/backends/__init__.py +0 -0
  501. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/simlab/backends/anchor.py +0 -0
  502. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/simlab/backends/local.py +0 -0
  503. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/simlab/backends/server.py +0 -0
  504. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/simlab/cli_command.py +0 -0
  505. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/simlab/config.py +0 -0
  506. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/simlab/deployment.py +0 -0
  507. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/simlab/knowledge.py +0 -0
  508. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/simlab/learning.py +0 -0
  509. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/simlab/modes/__init__.py +0 -0
  510. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/simlab/modes/_eval_real_llm.py +0 -0
  511. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/simlab/modes/aar.py +0 -0
  512. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/simlab/modes/backtest.py +0 -0
  513. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/simlab/modes/binary_forecast.py +0 -0
  514. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/simlab/modes/conformance.py +0 -0
  515. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/simlab/modes/evaluation.py +0 -0
  516. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/simlab/modes/governance.py +0 -0
  517. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/simlab/modes/redteam.py +0 -0
  518. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/simlab/modes/tabletop.py +0 -0
  519. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/simlab/modes/tournament.py +0 -0
  520. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/simlab/modes/whatif.py +0 -0
  521. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/simlab/namespace.py +0 -0
  522. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/simlab/personas.py +0 -0
  523. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/simlab/prompt_generator.py +0 -0
  524. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/simlab/question_sets/geopolitics_q20.json +0 -0
  525. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/simlab/question_sets/governance_q5.json +0 -0
  526. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/simlab/question_sets/msft_outlook_q10.json +0 -0
  527. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/simlab/question_sets/whatif_q3.json +0 -0
  528. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/simlab/registry.py +0 -0
  529. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/simlab/runner.py +0 -0
  530. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/simlab/scenario.py +0 -0
  531. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/simlab/swarms.py +0 -0
  532. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/simlab/tool_handlers/__init__.py +0 -0
  533. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/simlab/tool_handlers/alpha_vantage.py +0 -0
  534. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/simlab/tool_handlers/brave.py +0 -0
  535. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/simlab/tool_handlers/newsapi.py +0 -0
  536. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/simlab/tool_handlers/openweather.py +0 -0
  537. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/simlab/tool_handlers/pinecone.py +0 -0
  538. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/simlab/tool_handlers/qdrant.py +0 -0
  539. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/simlab/tool_handlers/query_knowledge_base.py +0 -0
  540. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/simlab/tool_handlers/relata_recall.py +0 -0
  541. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/simlab/tool_handlers/retrieve_document.py +0 -0
  542. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/simlab/tool_handlers/serper.py +0 -0
  543. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/simlab/tool_handlers/tavily.py +0 -0
  544. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/simlab/tool_handlers/weaviate.py +0 -0
  545. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/simlab/tool_handlers/wikipedia.py +0 -0
  546. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/simlab/tool_handlers/wolfram.py +0 -0
  547. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/simlab/tool_handlers/yahoo_finance.py +0 -0
  548. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/simlab/tool_registry.py +0 -0
  549. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/simlab/topic_adapter.py +0 -0
  550. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/simlab/topic_questions.py +0 -0
  551. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/storage/__init__.py +0 -0
  552. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/storage/backend.py +0 -0
  553. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/storage/relata.py +0 -0
  554. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/storage/sqlite.py +0 -0
  555. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/sync.py +0 -0
  556. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/tal.py +0 -0
  557. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/tasks.py +0 -0
  558. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/testing.py +0 -0
  559. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/tools/__init__.py +0 -0
  560. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/tools/registry.py +0 -0
  561. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/transport/__init__.py +0 -0
  562. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/transport/anti_entropy.py +0 -0
  563. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/transport/bus.py +0 -0
  564. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/transport/knows_delta.py +0 -0
  565. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/transport/libp2p.py +0 -0
  566. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/transport/placement.py +0 -0
  567. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/transport/tcp.py +0 -0
  568. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/transport/tls_profile.py +0 -0
  569. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/types.py +0 -0
  570. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/uncertainty.py +0 -0
  571. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/wire.py +0 -0
  572. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/workflow/__init__.py +0 -0
  573. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/workflow/engine.py +0 -0
  574. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/workflow/plan.py +0 -0
  575. {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/workflow/repair.py +0 -0
  576. {hypermind-0.32.0 → hypermind-0.34.0}/storage-backend-requirements.md +0 -0
  577. {hypermind-0.32.0 → hypermind-0.34.0}/tests/__init__.py +0 -0
  578. {hypermind-0.32.0 → hypermind-0.34.0}/tests/api/__init__.py +0 -0
  579. {hypermind-0.32.0 → hypermind-0.34.0}/tests/api/test_eval_endpoints.py +0 -0
  580. {hypermind-0.32.0 → hypermind-0.34.0}/tests/api/test_events_stream.py +0 -0
  581. {hypermind-0.32.0 → hypermind-0.34.0}/tests/api/test_management_app.py +0 -0
  582. {hypermind-0.32.0 → hypermind-0.34.0}/tests/chaos/__init__.py +0 -0
  583. {hypermind-0.32.0 → hypermind-0.34.0}/tests/chaos/test_gossip_amplification.py +0 -0
  584. {hypermind-0.32.0 → hypermind-0.34.0}/tests/chaos/test_kill_agent_during_rfp.py +0 -0
  585. {hypermind-0.32.0 → hypermind-0.34.0}/tests/chaos/test_partition_during_workflow.py +0 -0
  586. {hypermind-0.32.0 → hypermind-0.34.0}/tests/chaos/test_slow_consumer_backpressure.py +0 -0
  587. {hypermind-0.32.0 → hypermind-0.34.0}/tests/chaos/test_slow_peer.py +0 -0
  588. {hypermind-0.32.0 → hypermind-0.34.0}/tests/conformance/__init__.py +0 -0
  589. {hypermind-0.32.0 → hypermind-0.34.0}/tests/conformance/generate_vectors.py +0 -0
  590. {hypermind-0.32.0 → hypermind-0.34.0}/tests/conformance/vectors/SIGNING.md +0 -0
  591. {hypermind-0.32.0 → hypermind-0.34.0}/tests/conformance/vectors/agent-card-01.json +0 -0
  592. {hypermind-0.32.0 → hypermind-0.34.0}/tests/conformance/vectors/agent-card-02.json +0 -0
  593. {hypermind-0.32.0 → hypermind-0.34.0}/tests/conformance/vectors/capability-01.json +0 -0
  594. {hypermind-0.32.0 → hypermind-0.34.0}/tests/conformance/vectors/capability-02.json +0 -0
  595. {hypermind-0.32.0 → hypermind-0.34.0}/tests/conformance/vectors/capability-03.json +0 -0
  596. {hypermind-0.32.0 → hypermind-0.34.0}/tests/conformance/vectors/dispute-01.json +0 -0
  597. {hypermind-0.32.0 → hypermind-0.34.0}/tests/conformance/vectors/dispute-02.json +0 -0
  598. {hypermind-0.32.0 → hypermind-0.34.0}/tests/conformance/vectors/dispute-03.json +0 -0
  599. {hypermind-0.32.0 → hypermind-0.34.0}/tests/conformance/vectors/dispute-04.json +0 -0
  600. {hypermind-0.32.0 → hypermind-0.34.0}/tests/conformance/vectors/dispute-05.json +0 -0
  601. {hypermind-0.32.0 → hypermind-0.34.0}/tests/conformance/vectors/frost-01.json +0 -0
  602. {hypermind-0.32.0 → hypermind-0.34.0}/tests/conformance/vectors/frost-02.json +0 -0
  603. {hypermind-0.32.0 → hypermind-0.34.0}/tests/conformance/vectors/frost-03.json +0 -0
  604. {hypermind-0.32.0 → hypermind-0.34.0}/tests/conformance/vectors/knows-delta-01.json +0 -0
  605. {hypermind-0.32.0 → hypermind-0.34.0}/tests/conformance/vectors/knows-delta-02.json +0 -0
  606. {hypermind-0.32.0 → hypermind-0.34.0}/tests/conformance/vectors/mcp-prov-01.json +0 -0
  607. {hypermind-0.32.0 → hypermind-0.34.0}/tests/conformance/vectors/mcp-prov-02.json +0 -0
  608. {hypermind-0.32.0 → hypermind-0.34.0}/tests/conformance/vectors/merkle-01.json +0 -0
  609. {hypermind-0.32.0 → hypermind-0.34.0}/tests/conformance/vectors/merkle-02.json +0 -0
  610. {hypermind-0.32.0 → hypermind-0.34.0}/tests/conformance/vectors/merkle-03.json +0 -0
  611. {hypermind-0.32.0 → hypermind-0.34.0}/tests/conformance/vectors/merkle-04.json +0 -0
  612. {hypermind-0.32.0 → hypermind-0.34.0}/tests/conformance/vectors/rep-decay-01.json +0 -0
  613. {hypermind-0.32.0 → hypermind-0.34.0}/tests/conformance/vectors/task-01.json +0 -0
  614. {hypermind-0.32.0 → hypermind-0.34.0}/tests/conformance/vectors/task-02.json +0 -0
  615. {hypermind-0.32.0 → hypermind-0.34.0}/tests/conformance/vectors/trace-01.json +0 -0
  616. {hypermind-0.32.0 → hypermind-0.34.0}/tests/conformance/vectors/trace-02.json +0 -0
  617. {hypermind-0.32.0 → hypermind-0.34.0}/tests/conformance/vectors/wire-envelope-01.json +0 -0
  618. {hypermind-0.32.0 → hypermind-0.34.0}/tests/conformance/vectors/wire-envelope-02.json +0 -0
  619. {hypermind-0.32.0 → hypermind-0.34.0}/tests/conformance/vectors/wire-envelope-03.json +0 -0
  620. {hypermind-0.32.0 → hypermind-0.34.0}/tests/conformance/vectors/wire-envelope-04.json +0 -0
  621. {hypermind-0.32.0 → hypermind-0.34.0}/tests/conformance/vectors/wire-envelope-05.json +0 -0
  622. {hypermind-0.32.0 → hypermind-0.34.0}/tests/conftest.py +0 -0
  623. {hypermind-0.32.0 → hypermind-0.34.0}/tests/fake_kms.py +0 -0
  624. {hypermind-0.32.0 → hypermind-0.34.0}/tests/harness/__init__.py +0 -0
  625. {hypermind-0.32.0 → hypermind-0.34.0}/tests/harness/conftest.py +0 -0
  626. {hypermind-0.32.0 → hypermind-0.34.0}/tests/harness/test_assertion_library.py +0 -0
  627. {hypermind-0.32.0 → hypermind-0.34.0}/tests/harness/test_runner_lifecycle.py +0 -0
  628. {hypermind-0.32.0 → hypermind-0.34.0}/tests/harness/test_threat_intel_harness.py +0 -0
  629. {hypermind-0.32.0 → hypermind-0.34.0}/tests/integration/__init__.py +0 -0
  630. {hypermind-0.32.0 → hypermind-0.34.0}/tests/integration/test_kms_aws.py +0 -0
  631. {hypermind-0.32.0 → hypermind-0.34.0}/tests/integration/test_kms_azure.py +0 -0
  632. {hypermind-0.32.0 → hypermind-0.34.0}/tests/integration/test_kms_gcp.py +0 -0
  633. {hypermind-0.32.0 → hypermind-0.34.0}/tests/integration/test_kms_vault.py +0 -0
  634. {hypermind-0.32.0 → hypermind-0.34.0}/tests/integration/test_relata_server.py +0 -0
  635. {hypermind-0.32.0 → hypermind-0.34.0}/tests/orgs/_fakes.py +0 -0
  636. {hypermind-0.32.0 → hypermind-0.34.0}/tests/orgs/test_adversarial.py +0 -0
  637. {hypermind-0.32.0 → hypermind-0.34.0}/tests/orgs/test_concurrency.py +0 -0
  638. {hypermind-0.32.0 → hypermind-0.34.0}/tests/orgs/test_context.py +0 -0
  639. {hypermind-0.32.0 → hypermind-0.34.0}/tests/orgs/test_convergence.py +0 -0
  640. {hypermind-0.32.0 → hypermind-0.34.0}/tests/orgs/test_cross_shard.py +0 -0
  641. {hypermind-0.32.0 → hypermind-0.34.0}/tests/orgs/test_deliberator.py +0 -0
  642. {hypermind-0.32.0 → hypermind-0.34.0}/tests/orgs/test_distributed.py +0 -0
  643. {hypermind-0.32.0 → hypermind-0.34.0}/tests/orgs/test_embeddings.py +0 -0
  644. {hypermind-0.32.0 → hypermind-0.34.0}/tests/orgs/test_experiment.py +0 -0
  645. {hypermind-0.32.0 → hypermind-0.34.0}/tests/orgs/test_graph_retrieval.py +0 -0
  646. {hypermind-0.32.0 → hypermind-0.34.0}/tests/orgs/test_groundtruth.py +0 -0
  647. {hypermind-0.32.0 → hypermind-0.34.0}/tests/orgs/test_hybrid_retriever.py +0 -0
  648. {hypermind-0.32.0 → hypermind-0.34.0}/tests/orgs/test_interaction.py +0 -0
  649. {hypermind-0.32.0 → hypermind-0.34.0}/tests/orgs/test_intervention.py +0 -0
  650. {hypermind-0.32.0 → hypermind-0.34.0}/tests/orgs/test_lightweight.py +0 -0
  651. {hypermind-0.32.0 → hypermind-0.34.0}/tests/orgs/test_metrics.py +0 -0
  652. {hypermind-0.32.0 → hypermind-0.34.0}/tests/orgs/test_model.py +0 -0
  653. {hypermind-0.32.0 → hypermind-0.34.0}/tests/orgs/test_ner.py +0 -0
  654. {hypermind-0.32.0 → hypermind-0.34.0}/tests/orgs/test_quality.py +0 -0
  655. {hypermind-0.32.0 → hypermind-0.34.0}/tests/orgs/test_query.py +0 -0
  656. {hypermind-0.32.0 → hypermind-0.34.0}/tests/orgs/test_rag.py +0 -0
  657. {hypermind-0.32.0 → hypermind-0.34.0}/tests/orgs/test_receipt.py +0 -0
  658. {hypermind-0.32.0 → hypermind-0.34.0}/tests/orgs/test_report.py +0 -0
  659. {hypermind-0.32.0 → hypermind-0.34.0}/tests/orgs/test_scale.py +0 -0
  660. {hypermind-0.32.0 → hypermind-0.34.0}/tests/orgs/test_sim.py +0 -0
  661. {hypermind-0.32.0 → hypermind-0.34.0}/tests/orgs/test_stream.py +0 -0
  662. {hypermind-0.32.0 → hypermind-0.34.0}/tests/orgs/test_templates.py +0 -0
  663. {hypermind-0.32.0 → hypermind-0.34.0}/tests/orgs/test_think.py +0 -0
  664. {hypermind-0.32.0 → hypermind-0.34.0}/tests/orgs/test_tools.py +0 -0
  665. {hypermind-0.32.0 → hypermind-0.34.0}/tests/responders/__init__.py +0 -0
  666. {hypermind-0.32.0 → hypermind-0.34.0}/tests/responders/test_responders.py +0 -0
  667. {hypermind-0.32.0 → hypermind-0.34.0}/tests/responders/test_router.py +0 -0
  668. {hypermind-0.32.0 → hypermind-0.34.0}/tests/responders/test_structured_response.py +0 -0
  669. {hypermind-0.32.0 → hypermind-0.34.0}/tests/responders/test_tools.py +0 -0
  670. {hypermind-0.32.0 → hypermind-0.34.0}/tests/review/__init__.py +0 -0
  671. {hypermind-0.32.0 → hypermind-0.34.0}/tests/review/test_agents_parser.py +0 -0
  672. {hypermind-0.32.0 → hypermind-0.34.0}/tests/review/test_models.py +0 -0
  673. {hypermind-0.32.0 → hypermind-0.34.0}/tests/review/test_runner.py +0 -0
  674. {hypermind-0.32.0 → hypermind-0.34.0}/tests/simlab/__init__.py +0 -0
  675. {hypermind-0.32.0 → hypermind-0.34.0}/tests/simlab/conftest.py +0 -0
  676. {hypermind-0.32.0 → hypermind-0.34.0}/tests/simlab/test_app_endpoints.py +0 -0
  677. {hypermind-0.32.0 → hypermind-0.34.0}/tests/simlab/test_knowledge.py +0 -0
  678. {hypermind-0.32.0 → hypermind-0.34.0}/tests/simlab/test_knowledge_reuse.py +0 -0
  679. {hypermind-0.32.0 → hypermind-0.34.0}/tests/simlab/test_modes_aar.py +0 -0
  680. {hypermind-0.32.0 → hypermind-0.34.0}/tests/simlab/test_modes_backtest.py +0 -0
  681. {hypermind-0.32.0 → hypermind-0.34.0}/tests/simlab/test_modes_conformance.py +0 -0
  682. {hypermind-0.32.0 → hypermind-0.34.0}/tests/simlab/test_modes_evaluation.py +0 -0
  683. {hypermind-0.32.0 → hypermind-0.34.0}/tests/simlab/test_modes_governance.py +0 -0
  684. {hypermind-0.32.0 → hypermind-0.34.0}/tests/simlab/test_modes_redteam.py +0 -0
  685. {hypermind-0.32.0 → hypermind-0.34.0}/tests/simlab/test_modes_tabletop.py +0 -0
  686. {hypermind-0.32.0 → hypermind-0.34.0}/tests/simlab/test_modes_tournament.py +0 -0
  687. {hypermind-0.32.0 → hypermind-0.34.0}/tests/simlab/test_modes_whatif.py +0 -0
  688. {hypermind-0.32.0 → hypermind-0.34.0}/tests/simlab/test_personas.py +0 -0
  689. {hypermind-0.32.0 → hypermind-0.34.0}/tests/simlab/test_personas_endpoints.py +0 -0
  690. {hypermind-0.32.0 → hypermind-0.34.0}/tests/simlab/test_recorder_scoping.py +0 -0
  691. {hypermind-0.32.0 → hypermind-0.34.0}/tests/simlab/test_registry.py +0 -0
  692. {hypermind-0.32.0 → hypermind-0.34.0}/tests/simlab/test_resolve_outcomes.py +0 -0
  693. {hypermind-0.32.0 → hypermind-0.34.0}/tests/simlab/test_responder_timeout.py +0 -0
  694. {hypermind-0.32.0 → hypermind-0.34.0}/tests/simlab/test_runner.py +0 -0
  695. {hypermind-0.32.0 → hypermind-0.34.0}/tests/simlab/test_swarms.py +0 -0
  696. {hypermind-0.32.0 → hypermind-0.34.0}/tests/storage/__init__.py +0 -0
  697. {hypermind-0.32.0 → hypermind-0.34.0}/tests/storage/test_relata_backend.py +0 -0
  698. {hypermind-0.32.0 → hypermind-0.34.0}/tests/storage/test_sqlite_backend.py +0 -0
  699. {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_active_multi_step.py +0 -0
  700. {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_agent_card.py +0 -0
  701. {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_agent_e2e.py +0 -0
  702. {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_agent_edge.py +0 -0
  703. {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_anti_entropy.py +0 -0
  704. {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_anti_entropy_multiround.py +0 -0
  705. {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_anti_entropy_selfheal.py +0 -0
  706. {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_appendix_z_conformance.py +0 -0
  707. {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_appendix_z_vectors.py +0 -0
  708. {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_arg_dag_edge_types.py +0 -0
  709. {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_backpressure.py +0 -0
  710. {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_belief_revision.py +0 -0
  711. {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_bias_detector.py +0 -0
  712. {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_block_reason.py +0 -0
  713. {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_calibration.py +0 -0
  714. {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_capability.py +0 -0
  715. {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_capability_canonical.py +0 -0
  716. {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_capability_chain.py +0 -0
  717. {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_capability_edge.py +0 -0
  718. {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_capability_enforcement.py +0 -0
  719. {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_capability_namespace_caveat.py +0 -0
  720. {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_capability_revocation.py +0 -0
  721. {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_citation_graph.py +0 -0
  722. {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_cli.py +0 -0
  723. {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_cli_interop.py +0 -0
  724. {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_cli_orgs.py +0 -0
  725. {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_composite_lamps_prefix.py +0 -0
  726. {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_consult.py +0 -0
  727. {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_consult_stream.py +0 -0
  728. {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_consult_stream_t4.py +0 -0
  729. {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_contract_net_disputed_award.py +0 -0
  730. {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_contract_net_frost_award.py +0 -0
  731. {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_contract_net_happy.py +0 -0
  732. {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_contract_net_reputation_scoring.py +0 -0
  733. {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_contract_net_sybil_filter.py +0 -0
  734. {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_correlated_agreement.py +0 -0
  735. {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_cose_encrypt_roundtrip.py +0 -0
  736. {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_cost_tracker.py +0 -0
  737. {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_cross_namespace_consult.py +0 -0
  738. {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_crypto.py +0 -0
  739. {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_dashboard.py +0 -0
  740. {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_deliberation.py +0 -0
  741. {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_deliberator_cap.py +0 -0
  742. {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_deliberator_observe.py +0 -0
  743. {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_deprecation_registry.py +0 -0
  744. {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_determinism_corpus.py +0 -0
  745. {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_dispute.py +0 -0
  746. {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_dispute_fsm_full.py +0 -0
  747. {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_dispute_mediate.py +0 -0
  748. {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_dispute_quorum.py +0 -0
  749. {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_dissent.py +0 -0
  750. {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_diversity_quorum.py +0 -0
  751. {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_dkg.py +0 -0
  752. {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_embedding_registry.py +0 -0
  753. {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_eval_comparison.py +0 -0
  754. {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_examples_runnable.py +0 -0
  755. {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_final_coverage.py +0 -0
  756. {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_frost.py +0 -0
  757. {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_frost_edge.py +0 -0
  758. {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_frost_hedged_nonces.py +0 -0
  759. {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_frost_persistence.py +0 -0
  760. {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_frost_transcript_store_swap.py +0 -0
  761. {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_hlc_clock_source.py +0 -0
  762. {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_hpke_vectors.py +0 -0
  763. {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_info_gain_routing.py +0 -0
  764. {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_kernel_store.py +0 -0
  765. {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_kms_backends.py +0 -0
  766. {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_kms_fake.py +0 -0
  767. {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_knows_delta.py +0 -0
  768. {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_lamps_oid_canonical.py +0 -0
  769. {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_last_lines.py +0 -0
  770. {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_libp2p_peer_id.py +0 -0
  771. {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_libp2p_scaffold.py +0 -0
  772. {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_libp2p_stub.py +0 -0
  773. {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_mcp_bridge.py +0 -0
  774. {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_mcp_provenance.py +0 -0
  775. {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_mcp_tools_list.py +0 -0
  776. {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_mcp_transport.py +0 -0
  777. {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_merkle_transparency.py +0 -0
  778. {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_mind_active.py +0 -0
  779. {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_mind_deliberator.py +0 -0
  780. {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_mind_diversity_sybil_mediator.py +0 -0
  781. {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_mind_evolve.py +0 -0
  782. {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_mind_goals_policy.py +0 -0
  783. {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_mind_records.py +0 -0
  784. {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_mind_roles.py +0 -0
  785. {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_mind_world_model.py +0 -0
  786. {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_misc_edge.py +0 -0
  787. {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_mtls_profile.py +0 -0
  788. {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_namespace_lifecycle.py +0 -0
  789. {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_namespace_policy.py +0 -0
  790. {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_namespace_policy_acl.py +0 -0
  791. {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_observability_asgi.py +0 -0
  792. {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_observability_otel.py +0 -0
  793. {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_open_factory.py +0 -0
  794. {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_oracle_backprop.py +0 -0
  795. {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_otel_export.py +0 -0
  796. {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_pin_policy.py +0 -0
  797. {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_placement_consistent_hash.py +0 -0
  798. {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_placement_hint.py +0 -0
  799. {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_plan_dag.py +0 -0
  800. {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_plan_repair.py +0 -0
  801. {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_portable_inclusion_proof.py +0 -0
  802. {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_pq_default.py +0 -0
  803. {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_pq_dual_vendor.py +0 -0
  804. {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_pq_signing.py +0 -0
  805. {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_priv_ns_conformance_coverage.py +0 -0
  806. {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_property_based.py +0 -0
  807. {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_protocol_version.py +0 -0
  808. {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_public_surface_v05.py +0 -0
  809. {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_pursue_workflow.py +0 -0
  810. {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_rate_caveat.py +0 -0
  811. {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_recorder_bounded.py +0 -0
  812. {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_recorder_tail.py +0 -0
  813. {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_reference_verifier_v2.py +0 -0
  814. {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_rekor_client.py +0 -0
  815. {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_rekor_downgrade.py +0 -0
  816. {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_relata_memory_store.py +0 -0
  817. {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_relata_tools.py +0 -0
  818. {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_remaining_gaps.py +0 -0
  819. {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_replay.py +0 -0
  820. {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_reputation.py +0 -0
  821. {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_reputation_memory.py +0 -0
  822. {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_reputation_staleness.py +0 -0
  823. {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_review_fixes.py +0 -0
  824. {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_revocation.py +0 -0
  825. {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_revocation_lifecycle.py +0 -0
  826. {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_room_epoch.py +0 -0
  827. {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_schema_hash_pinned.py +0 -0
  828. {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_secret_redaction.py +0 -0
  829. {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_self_heal_cycle1.py +0 -0
  830. {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_self_heal_cycle2.py +0 -0
  831. {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_self_heal_cycle3.py +0 -0
  832. {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_self_heal_cycle3_cascade_isolate.py +0 -0
  833. {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_self_heal_cycle3_governance.py +0 -0
  834. {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_self_heal_cycle4.py +0 -0
  835. {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_self_heal_cycle4_deliberator_broadcast.py +0 -0
  836. {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_self_heal_cycle5.py +0 -0
  837. {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_signer_protocol.py +0 -0
  838. {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_sth_cross_gossip.py +0 -0
  839. {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_swarm_iq.py +0 -0
  840. {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_swarm_iq_at_scale.py +0 -0
  841. {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_swarm_iq_recommend.py +0 -0
  842. {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_swarm_memory.py +0 -0
  843. {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_swarm_memory_federation.py +0 -0
  844. {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_swarm_trace.py +0 -0
  845. {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_swarm_vector_overflow.py +0 -0
  846. {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_sync_agent.py +0 -0
  847. {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_tal.py +0 -0
  848. {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_task_handle.py +0 -0
  849. {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_task_handle_network.py +0 -0
  850. {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_tcp_duplicate_kid_attack.py +0 -0
  851. {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_tcp_edge.py +0 -0
  852. {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_tcp_final.py +0 -0
  853. {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_tcp_read_loop_cleanup.py +0 -0
  854. {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_tcp_transport.py +0 -0
  855. {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_theory_of_mind.py +0 -0
  856. {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_transport.py +0 -0
  857. {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_two_impl_interop.py +0 -0
  858. {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_uncertainty.py +0 -0
  859. {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_uncertainty_edge.py +0 -0
  860. {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_wire.py +0 -0
  861. {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_wire_edge_cases.py +0 -0
  862. {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_wire_kid_stability.py +0 -0
  863. {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_wire_p3.py +0 -0
  864. {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_wire_v2.py +0 -0
  865. {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_wire_version.py +0 -0
  866. {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_witness_preimage_length_prefix.py +0 -0
  867. {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_workflow_compensation.py +0 -0
  868. {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_workflow_engine.py +0 -0
  869. {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_workflow_replay.py +0 -0
  870. {hypermind-0.32.0 → hypermind-0.34.0}/tests/usecases/__init__.py +0 -0
  871. {hypermind-0.32.0 → hypermind-0.34.0}/tests/usecases/conftest.py +0 -0
  872. {hypermind-0.32.0 → hypermind-0.34.0}/tests/usecases/test_ai_01_fed_benchmark.py +0 -0
  873. {hypermind-0.32.0 → hypermind-0.34.0}/tests/usecases/test_ai_alignment_redteam.py +0 -0
  874. {hypermind-0.32.0 → hypermind-0.34.0}/tests/usecases/test_cy_05_ir_swarm.py +0 -0
  875. {hypermind-0.32.0 → hypermind-0.34.0}/tests/usecases/test_cy_11_ransomware_intel.py +0 -0
  876. {hypermind-0.32.0 → hypermind-0.34.0}/tests/usecases/test_ed_credentials.py +0 -0
  877. {hypermind-0.32.0 → hypermind-0.34.0}/tests/usecases/test_en_grid_coordinate.py +0 -0
  878. {hypermind-0.32.0 → hypermind-0.34.0}/tests/usecases/test_fi_04_bsa_314b.py +0 -0
  879. {hypermind-0.32.0 → hypermind-0.34.0}/tests/usecases/test_fi_22_ma_dataroom.py +0 -0
  880. {hypermind-0.32.0 → hypermind-0.34.0}/tests/usecases/test_gv_01_intel_sharing.py +0 -0
  881. {hypermind-0.32.0 → hypermind-0.34.0}/tests/usecases/test_gv_21_red_team.py +0 -0
  882. {hypermind-0.32.0 → hypermind-0.34.0}/tests/usecases/test_hc_06_rare_disease.py +0 -0
  883. {hypermind-0.32.0 → hypermind-0.34.0}/tests/usecases/test_hc_21_fed_learning.py +0 -0
  884. {hypermind-0.32.0 → hypermind-0.34.0}/tests/usecases/test_lg_ediscovery.py +0 -0
  885. {hypermind-0.32.0 → hypermind-0.34.0}/tests/usecases/test_mf_supply_chain.py +0 -0
  886. {hypermind-0.32.0 → hypermind-0.34.0}/transport-rust/Cargo.toml +0 -0
  887. {hypermind-0.32.0 → hypermind-0.34.0}/transport-rust/README.md +0 -0
  888. {hypermind-0.32.0 → hypermind-0.34.0}/transport-rust/pyproject.toml +0 -0
  889. {hypermind-0.32.0 → hypermind-0.34.0}/transport-rust/src/lib.rs +0 -0
  890. {hypermind-0.32.0 → hypermind-0.34.0}/webui/index.html +0 -0
  891. {hypermind-0.32.0 → hypermind-0.34.0}/webui/package-lock.json +0 -0
  892. {hypermind-0.32.0 → hypermind-0.34.0}/webui/package.json +0 -0
  893. {hypermind-0.32.0 → hypermind-0.34.0}/webui/src/App.vue +0 -0
  894. {hypermind-0.32.0 → hypermind-0.34.0}/webui/src/api/client.ts +0 -0
  895. {hypermind-0.32.0 → hypermind-0.34.0}/webui/src/components/ActivityCanvas.vue +0 -0
  896. {hypermind-0.32.0 → hypermind-0.34.0}/webui/src/components/AgentContribution.vue +0 -0
  897. {hypermind-0.32.0 → hypermind-0.34.0}/webui/src/components/BrierHeatmap.vue +0 -0
  898. {hypermind-0.32.0 → hypermind-0.34.0}/webui/src/components/CIQTrajectory.vue +0 -0
  899. {hypermind-0.32.0 → hypermind-0.34.0}/webui/src/components/CitationGraph.vue +0 -0
  900. {hypermind-0.32.0 → hypermind-0.34.0}/webui/src/components/DisputeTimeline.vue +0 -0
  901. {hypermind-0.32.0 → hypermind-0.34.0}/webui/src/components/DissentList.vue +0 -0
  902. {hypermind-0.32.0 → hypermind-0.34.0}/webui/src/components/Logo.vue +0 -0
  903. {hypermind-0.32.0 → hypermind-0.34.0}/webui/src/components/NowAsking.vue +0 -0
  904. {hypermind-0.32.0 → hypermind-0.34.0}/webui/src/components/PersonaRadar.vue +0 -0
  905. {hypermind-0.32.0 → hypermind-0.34.0}/webui/src/components/PopulationGenerator.vue +0 -0
  906. {hypermind-0.32.0 → hypermind-0.34.0}/webui/src/components/Term.vue +0 -0
  907. {hypermind-0.32.0 → hypermind-0.34.0}/webui/src/components/forms/SchemaForm.vue +0 -0
  908. {hypermind-0.32.0 → hypermind-0.34.0}/webui/src/components/result/AARTimeline.vue +0 -0
  909. {hypermind-0.32.0 → hypermind-0.34.0}/webui/src/components/result/BacktestScorecard.vue +0 -0
  910. {hypermind-0.32.0 → hypermind-0.34.0}/webui/src/components/result/ConformanceReport.vue +0 -0
  911. {hypermind-0.32.0 → hypermind-0.34.0}/webui/src/components/result/CrisisTabletop.vue +0 -0
  912. {hypermind-0.32.0 → hypermind-0.34.0}/webui/src/components/result/DecisionBracket.vue +0 -0
  913. {hypermind-0.32.0 → hypermind-0.34.0}/webui/src/components/result/EvaluationReport.vue +0 -0
  914. {hypermind-0.32.0 → hypermind-0.34.0}/webui/src/components/result/GovernanceReceipt.vue +0 -0
  915. {hypermind-0.32.0 → hypermind-0.34.0}/webui/src/components/result/MethodNote.vue +0 -0
  916. {hypermind-0.32.0 → hypermind-0.34.0}/webui/src/components/result/RedTeamReport.vue +0 -0
  917. {hypermind-0.32.0 → hypermind-0.34.0}/webui/src/components/result/ScenarioTree.vue +0 -0
  918. {hypermind-0.32.0 → hypermind-0.34.0}/webui/src/docs/index.ts +0 -0
  919. {hypermind-0.32.0 → hypermind-0.34.0}/webui/src/docs/render.ts +0 -0
  920. {hypermind-0.32.0 → hypermind-0.34.0}/webui/src/main.ts +0 -0
  921. {hypermind-0.32.0 → hypermind-0.34.0}/webui/src/router.ts +0 -0
  922. {hypermind-0.32.0 → hypermind-0.34.0}/webui/src/stores/sims.ts +0 -0
  923. {hypermind-0.32.0 → hypermind-0.34.0}/webui/src/styles.css +0 -0
  924. {hypermind-0.32.0 → hypermind-0.34.0}/webui/src/types/trace.ts +0 -0
  925. {hypermind-0.32.0 → hypermind-0.34.0}/webui/src/views/Agents.vue +0 -0
  926. {hypermind-0.32.0 → hypermind-0.34.0}/webui/src/views/Docs.vue +0 -0
  927. {hypermind-0.32.0 → hypermind-0.34.0}/webui/src/views/Evidence.vue +0 -0
  928. {hypermind-0.32.0 → hypermind-0.34.0}/webui/src/views/Home.vue +0 -0
  929. {hypermind-0.32.0 → hypermind-0.34.0}/webui/src/views/HowItWorks.vue +0 -0
  930. {hypermind-0.32.0 → hypermind-0.34.0}/webui/src/views/Knowledge.vue +0 -0
  931. {hypermind-0.32.0 → hypermind-0.34.0}/webui/src/views/Namespaces.vue +0 -0
  932. {hypermind-0.32.0 → hypermind-0.34.0}/webui/src/views/Report.vue +0 -0
  933. {hypermind-0.32.0 → hypermind-0.34.0}/webui/src/views/Security.vue +0 -0
  934. {hypermind-0.32.0 → hypermind-0.34.0}/webui/src/views/SimCompare.vue +0 -0
  935. {hypermind-0.32.0 → hypermind-0.34.0}/webui/src/views/SimDetail.vue +0 -0
  936. {hypermind-0.32.0 → hypermind-0.34.0}/webui/src/views/SimList.vue +0 -0
  937. {hypermind-0.32.0 → hypermind-0.34.0}/webui/src/views/SimLive.vue +0 -0
  938. {hypermind-0.32.0 → hypermind-0.34.0}/webui/src/views/SimNew.vue +0 -0
  939. {hypermind-0.32.0 → hypermind-0.34.0}/webui/src/views/Tools.vue +0 -0
  940. {hypermind-0.32.0 → hypermind-0.34.0}/webui/src/views/UseCases.vue +0 -0
  941. {hypermind-0.32.0 → hypermind-0.34.0}/webui/tsconfig.json +0 -0
  942. {hypermind-0.32.0 → hypermind-0.34.0}/webui/vite.config.ts +0 -0
@@ -24,3 +24,13 @@ RELATA_URL=http://localhost:9090
24
24
  # RELATA_ACL_GRANT="HmClaim:read+write,HmDispute:read+write,HmReputation:read+write,HmTranscript:read+write" \
25
25
  # relata serve
26
26
  # Verify with: hmctl orgs doctor
27
+
28
+ # --- Tools (optional) -------------------------------------------------------
29
+ # Keyless: DuckDuckGo works out of the box. Add any of these to enable more:
30
+ # TAVILY_API_KEY=
31
+ # BRAVE_API_KEY=
32
+ # SERPER_API_KEY=
33
+ #
34
+ # MCP servers (10s–100s of tools): drop a standard `mcpServers` JSON at
35
+ # ~/.config/hypermind/mcp.json (or set HYPERMIND_MCP_CONFIG)
36
+ # e.g. {"mcpServers":{"searchapi":{"command":"npx","args":["mcp-remote","https://www.searchapi.io/mcp?token=…"]}}}
@@ -16,6 +16,26 @@ changes only on major-version bumps.
16
16
 
17
17
  _Current trunk._
18
18
 
19
+ ## [0.34.0] — 2026-07-09
20
+
21
+ ### Added
22
+ - **100% evidence retention** — every claim now persists a COMPLETE evidence record: untruncated reasoning, verbatim LLM payload, and **full raw tool output** (previously capped at 500 chars). Kept off the size-bounded signed claim and stored durably in the agent's Relata notebook. `OrgReport.evidence()` / `evidence_for(kid)` expose it. (`responders/tools.py`, `responders/structured.py` adds `reasoning_full` + uncapped `raw_json`, `orgs/sim.py`).
23
+ - **Structured citations + real grounding** (`hypermind.orgs.evidence`) — parses raw tool output (searchapi JSON + DuckDuckGo text) into de-duplicated `Citation`s ranked by multi-expert corroboration. `OrgSim._retrieve` now grounds the judge/answer on **real source snippets**, not only the swarm's own summaries. `OrgReport.references()` is the study bibliography. Pure parsing, cached by claim count — no added LLM latency.
24
+ - **Self-refined master decomposition** — `hypermind.orgs.prompts` (planner prompt + curated few-shot exemplars, one-/multi-shot), `charter.plan_research(shots=, critique=)`, and `hypermind.orgs.refine` (`score_plan` + `plan_and_refine`) re-plan the decomposition on a structural critique (distinct areas, role diversity, tool breadth, on-topic, vs-k) **before** spending the simulation. No framework, reproducible.
25
+ - `RelataMemoryStore(single_tenant=True)` — omit `X-Organization-Id` for single-tenant / trial (`max_tenants:0`) servers, isolating by `session_id` (agent kid); `OrgSim(relata_single_tenant=…)`.
26
+
27
+ ### Fixed
28
+ - **MCP transport** — 16 MB stdio buffer for MCP subprocesses; large Google Scholar/Patents results no longer trip asyncio's 64 KB `LimitOverrunError` (`orgs/mcp_config.py`).
29
+ - Tool-call traces key the tool name under `tool` (matching production `ToolCallingResponder`); tests aligned.
30
+
31
+ ## [0.33.0] — 2026-07-09
32
+
33
+ ### Added
34
+ - **Pluggable tools — provider registry + per-cycle gateway** (`hypermind.orgs.tool_providers`). Each `ToolProvider` declares its env gate + health; the `ToolGateway` refreshes availability **every round** and exposes only live tools (call-time gated), emitting a `tool_status` event. Built-in web search: **DuckDuckGo** (keyless) + **Tavily / Brave / Serper** (key-gated).
35
+ - **MCP auto-discovery** — a standard `mcpServers` JSON at `~/.config/hypermind/mcp.json` (or `$HYPERMIND_MCP_CONFIG`, same shape as Claude); every server's tools are discovered, registered, and health-checked per cycle (`attach_mcp_config`, `ToolGateway.add_mcp`). HTTP servers bridge via `npx mcp-remote <url>`.
36
+ - **`hmctl orgs simulate/ask --tools/--no-tools`** (default on) — wires the gateway (built-in search + MCP servers) into the run.
37
+ - `OrgSim(tool_gateway=…)` — per-cycle status check + live tools for tool-using seats.
38
+
19
39
  ## [0.32.0] — 2026-07-09
20
40
 
21
41
  ### Added
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: hypermind
3
- Version: 0.32.0
3
+ Version: 0.34.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
@@ -230,7 +230,7 @@ report.print() # reputation ranking · citation graph · dispute ledger
230
230
 
231
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
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(...)`.
233
+ - **Native tools, group-scoped + live.** Tools are granted per unit/seat and enforced (ungranted = *absent*). Real tools plug in via a **provider registry + per-cycle gateway**: built-in web search (**DuckDuckGo** keyless; Tavily/Brave/Serper key-gated), each env-gated and health-checked **every round** (🟢/🔴 status emitted). For 10s–100s of tools, drop a standard **`mcpServers` JSON** at `~/.config/hypermind/mcp.json` (same shape as Claude) — every MCP tool is auto-discovered and health-checked per cycle. `--no-tools` to disable.
234
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
235
  - **Study → ask (a queryable swarm).** Let the swarm learn a topic, then question it: `await sim.study(topic)` then `await sim.ask("...")` — every member recalls what it learned, reasons, and the answers are aggregated weighted by earned standing. `sim.ask` studies first automatically if you skip the explicit step.
236
236
  - **Proper RAG.** Retrieval for `ask` is pluggable: lexical (default), semantic embeddings (`embedder=`), the claim↔entity graph (`use_graph_retrieval=True`), or `hybrid_retriever(...)` which fuses dense + graph + lexical via Reciprocal Rank Fusion with an optional cross-encoder rerank. Relata *is* the vector store + graph (`relata_retriever(..., "search_knowledge" / "find_connections")`).
@@ -142,7 +142,7 @@ report.print() # reputation ranking · citation graph · dispute ledger
142
142
 
143
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
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(...)`.
145
+ - **Native tools, group-scoped + live.** Tools are granted per unit/seat and enforced (ungranted = *absent*). Real tools plug in via a **provider registry + per-cycle gateway**: built-in web search (**DuckDuckGo** keyless; Tavily/Brave/Serper key-gated), each env-gated and health-checked **every round** (🟢/🔴 status emitted). For 10s–100s of tools, drop a standard **`mcpServers` JSON** at `~/.config/hypermind/mcp.json` (same shape as Claude) — every MCP tool is auto-discovered and health-checked per cycle. `--no-tools` to disable.
146
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
147
  - **Study → ask (a queryable swarm).** Let the swarm learn a topic, then question it: `await sim.study(topic)` then `await sim.ask("...")` — every member recalls what it learned, reasons, and the answers are aggregated weighted by earned standing. `sim.ask` studies first automatically if you skip the explicit step.
148
148
  - **Proper RAG.** Retrieval for `ask` is pluggable: lexical (default), semantic embeddings (`embedder=`), the claim↔entity graph (`use_graph_retrieval=True`), or `hybrid_retriever(...)` which fuses dense + graph + lexical via Reciprocal Rank Fusion with an optional cross-encoder rerank. Relata *is* the vector store + graph (`relata_retriever(..., "search_knowledge" / "find_connections")`).
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "hypermind"
7
- version = "0.32.0"
7
+ version = "0.34.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"
@@ -118,6 +118,21 @@ def _run(go, dash):
118
118
  return asyncio.run(go())
119
119
 
120
120
 
121
+ async def _build_gateway(enabled: bool):
122
+ """A ToolGateway with the built-in providers + any MCP servers from
123
+ ~/.config/hypermind/mcp.json, or None when tools are off."""
124
+ if not enabled:
125
+ return None
126
+ from hypermind.orgs import ToolGateway
127
+ from hypermind.orgs.mcp_config import attach_mcp_config
128
+
129
+ gateway = ToolGateway() # all registered providers; refresh() env-gates them
130
+ added = await attach_mcp_config(gateway) # connect mcp.json servers (if any)
131
+ if added:
132
+ click.echo(f"MCP: {sum(added.values())} tool(s) from {', '.join(added)}")
133
+ return gateway
134
+
135
+
121
136
  def _config_paths() -> list[str]:
122
137
  """Where hmctl looks for persistent env, highest precedence first."""
123
138
  import os
@@ -279,6 +294,7 @@ def _write_html(report: Any, path: str) -> None:
279
294
  @click.option("--topic", required=True, help="what the org researches")
280
295
  @click.option("--html", "html_path", default=None, help="write an HTML report to PATH")
281
296
  @click.option("--live", is_flag=True, help="show a live colourful dashboard while it runs")
297
+ @click.option("--tools/--no-tools", default=True, help="enable real tools (search + MCP servers)")
282
298
  def simulate_cmd(
283
299
  template,
284
300
  members,
@@ -293,6 +309,7 @@ def simulate_cmd(
293
309
  topic,
294
310
  html_path,
295
311
  live,
312
+ tools,
296
313
  ) -> None:
297
314
  """Run a simulation and print (or save) the report."""
298
315
  url = _require_relata(relata_url)
@@ -314,6 +331,7 @@ def simulate_cmd(
314
331
  llm_model=llm_model,
315
332
  llm_client=client,
316
333
  on_event=dash.handle if dash else None,
334
+ tool_gateway=await _build_gateway(tools),
317
335
  )
318
336
  return await sim.simulate(topic=topic, rounds=rounds)
319
337
 
@@ -331,6 +349,7 @@ def simulate_cmd(
331
349
  @click.option("--samples", type=int, default=1, help="ask N times (enables self-consistency)")
332
350
  @click.option("--quality/--no-quality", default=True, help="score the answer (on by default)")
333
351
  @click.option("--live", is_flag=True, help="show a live colourful dashboard during study")
352
+ @click.option("--tools/--no-tools", default=True, help="enable real tools (search + MCP servers)")
334
353
  def ask_cmd(
335
354
  template,
336
355
  members,
@@ -347,6 +366,7 @@ def ask_cmd(
347
366
  samples,
348
367
  quality,
349
368
  live,
369
+ tools,
350
370
  ) -> None:
351
371
  """Study a topic, then ask the swarm — with quality rubrics on by default."""
352
372
  url = _require_relata(relata_url)
@@ -369,6 +389,7 @@ def ask_cmd(
369
389
  llm_model=llm_model,
370
390
  llm_client=client,
371
391
  on_event=dash.handle if dash else None,
392
+ tool_gateway=await _build_gateway(tools),
372
393
  )
373
394
  async with sim:
374
395
  await sim.study(topic or question, rounds=rounds)
@@ -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.32.0"
76
+ __version__ = "0.34.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
@@ -48,6 +48,7 @@ class RelataMemoryStore:
48
48
  purpose: str = _PURPOSE,
49
49
  bearer_token: str | None = None,
50
50
  memory_factory: MemoryFactory | None = None,
51
+ single_tenant: bool = False,
51
52
  ) -> None:
52
53
  self._url = base_url
53
54
  self._ns = namespace_id
@@ -55,6 +56,10 @@ class RelataMemoryStore:
55
56
  self._purpose = purpose
56
57
  self._tok = bearer_token
57
58
  self._factory = memory_factory
59
+ # Single-tenant servers (e.g. a trial license with max_tenants=0) reject
60
+ # any X-Organization-Id; omit the tenant header and rely on session_id
61
+ # (the agent kid) for per-agent isolation.
62
+ self._single_tenant = single_tenant
58
63
  self._m: Any = None
59
64
 
60
65
  def open(self) -> None:
@@ -65,12 +70,15 @@ class RelataMemoryStore:
65
70
  else: # pragma: no cover - requires the optional `relata` SDK + live server
66
71
  from relata import Memory
67
72
 
73
+ # Multi-tenant: partition by X-Organization-Id. Single-tenant: omit it
74
+ # (the server rejects org headers) and isolate by session_id alone.
75
+ extra = {} if self._single_tenant else {"X-Organization-Id": self._ns}
68
76
  self._m = Memory(
69
77
  self._url,
70
78
  purpose=self._purpose,
71
79
  bearer_token=self._tok,
72
80
  session_id=self._session, # per-agent partition
73
- extra_headers={"X-Organization-Id": self._ns}, # tenant isolation
81
+ extra_headers=extra,
74
82
  )
75
83
 
76
84
  def close(self) -> None:
@@ -93,7 +101,7 @@ class RelataMemoryStore:
93
101
 
94
102
  def remember_batch(
95
103
  self,
96
- items: "list[str | dict]",
104
+ items: list[str | dict],
97
105
  *,
98
106
  session_id: str | None = None,
99
107
  ) -> list[str]:
@@ -24,7 +24,9 @@ worked examples of the mapping.
24
24
 
25
25
  from __future__ import annotations
26
26
 
27
+ from hypermind.orgs.charter import ResearchPlan, Subsection, build_expert_model, plan_research
27
28
  from hypermind.orgs.context import ContextBuilder, default_context_builder
29
+ from hypermind.orgs.refine import plan_and_refine, score_plan
28
30
  from hypermind.orgs.deliberate import build_deliberator, policies_for_role
29
31
  from hypermind.orgs.experiment import (
30
32
  Experiment,
@@ -51,6 +53,12 @@ from hypermind.orgs.intervention import (
51
53
  Intervention,
52
54
  RemoveMember,
53
55
  )
56
+ from hypermind.orgs.mcp_config import (
57
+ attach_mcp_config,
58
+ config_path,
59
+ connect_mcp_server,
60
+ load_mcp_config,
61
+ )
54
62
  from hypermind.orgs.metrics import ScoreCard, compute_scorecard
55
63
  from hypermind.orgs.model import (
56
64
  DynamicsConfig,
@@ -83,6 +91,13 @@ from hypermind.orgs.retrieval import (
83
91
  )
84
92
  from hypermind.orgs.sim import OrgSim
85
93
  from hypermind.orgs.stream import graph_snapshot
94
+ from hypermind.orgs.tool_providers import (
95
+ ToolGateway,
96
+ ToolProvider,
97
+ get_provider,
98
+ list_providers,
99
+ register_provider,
100
+ )
86
101
  from hypermind.orgs.tools import (
87
102
  build_tool,
88
103
  declarative_grants,
@@ -117,39 +132,54 @@ __all__ = [
117
132
  "OrgSim",
118
133
  "QualityReport",
119
134
  "RemoveMember",
135
+ "ResearchPlan",
120
136
  "ScoreCard",
121
137
  "Seat",
122
138
  "Slot",
123
139
  "StaticGroundTruth",
140
+ "Subsection",
141
+ "ToolGateway",
142
+ "ToolProvider",
124
143
  "Unit",
125
144
  "Variant",
126
145
  "VariantResult",
127
146
  "VerifyResult",
128
147
  "aggregate_answer",
129
148
  "assess_answer",
149
+ "attach_mcp_config",
130
150
  "build_deliberator",
151
+ "build_expert_model",
131
152
  "build_receipt",
132
153
  "build_tool",
133
154
  "chat_ner_extractor",
134
155
  "compute_scorecard",
156
+ "config_path",
157
+ "connect_mcp_server",
135
158
  "cosine",
136
159
  "declarative_grants",
137
160
  "default_context_builder",
138
161
  "extract_mentions",
139
162
  "get_interaction",
163
+ "get_provider",
140
164
  "graph_retriever",
141
165
  "graph_snapshot",
142
166
  "hybrid_retriever",
167
+ "list_providers",
143
168
  "list_tools",
144
169
  "llm_judge",
145
170
  "llm_ner_extractor",
171
+ "load_mcp_config",
146
172
  "openai_embedder",
147
173
  "pioneer_ner_extractor",
174
+ "plan_and_refine",
175
+ "plan_research",
148
176
  "policies_for_role",
149
177
  "random_grants",
150
178
  "reciprocal_rank_fusion",
179
+ "register_provider",
151
180
  "register_tool",
152
181
  "relata_retriever",
182
+ "score_plan",
153
183
  "unregister_tool",
154
184
  "verify_receipt",
155
185
  ]
@@ -0,0 +1,164 @@
1
+ """Master-planned research teams (#charter).
2
+
3
+ Instead of a fixed template staffed with N clones, a **master (principal
4
+ investigator)** decomposes a research problem into distinct sub-areas and staffs
5
+ each with a purpose-built **expert** — a role, a persona/system-prompt, a skill
6
+ set, preferred tools, and a precise research angle. :func:`plan_research` runs
7
+ that decomposition (one LLM call); :func:`build_expert_model` turns the plan into
8
+ an :class:`OrgModel` (one unit per sub-area + a coordination unit with the PI
9
+ oracle and a synthesist). The result is a genuinely differentiated swarm: each
10
+ expert attacks a different angle with different tools, rather than everyone
11
+ running the same search.
12
+ """
13
+
14
+ from __future__ import annotations
15
+
16
+ import json
17
+ import re
18
+ from dataclasses import dataclass, field
19
+ from typing import Any
20
+
21
+ from hypermind.orgs.model import VALID_ROLES, DynamicsConfig, OrgModel, Seat, Unit
22
+ from hypermind.orgs.prompts import KNOWN_TOOLS, Exemplar, build_plan_messages
23
+
24
+ # Prompt contract + few-shot exemplars live in prompts.py (one editable place).
25
+ _KNOWN_TOOLS = KNOWN_TOOLS
26
+
27
+
28
+ @dataclass
29
+ class Subsection:
30
+ area: str
31
+ expert_title: str
32
+ role: str
33
+ persona: str
34
+ angle: str
35
+ skills: list[str] = field(default_factory=list)
36
+ tools: list[str] = field(default_factory=list)
37
+
38
+
39
+ @dataclass
40
+ class ResearchPlan:
41
+ topic: str
42
+ title: str
43
+ subsections: list[Subsection]
44
+
45
+ def to_dict(self) -> dict[str, Any]:
46
+ return {
47
+ "topic": self.topic,
48
+ "title": self.title,
49
+ "subsections": [vars(s) for s in self.subsections],
50
+ }
51
+
52
+
53
+ def _slug(s: str, i: int) -> str:
54
+ out = re.sub(r"[^a-z0-9]+", "-", s.lower()).strip("-")[:24]
55
+ return out or f"area-{i}"
56
+
57
+
58
+ def plan_from_dict(topic: str, data: dict[str, Any]) -> ResearchPlan:
59
+ """Build a validated ResearchPlan from a planner's JSON (lenient)."""
60
+ subs: list[Subsection] = []
61
+ for s in data.get("subsections", []):
62
+ role = str(s.get("role", "scout")).lower()
63
+ if role not in VALID_ROLES:
64
+ role = "scout"
65
+ tools = [t for t in s.get("tools", []) if t in _KNOWN_TOOLS] or ["web_search_ddg"]
66
+ subs.append(
67
+ Subsection(
68
+ area=str(s.get("area", "area")),
69
+ expert_title=str(s.get("expert_title", "Researcher"))[:48],
70
+ role=role,
71
+ persona=str(s.get("persona", "A domain expert.")),
72
+ angle=str(s.get("angle", "")),
73
+ skills=[str(x) for x in s.get("skills", [])][:6],
74
+ tools=tools,
75
+ )
76
+ )
77
+ return ResearchPlan(topic=topic, title=str(data.get("title", topic))[:120], subsections=subs)
78
+
79
+
80
+ async def plan_research(
81
+ topic: str,
82
+ *,
83
+ client: Any,
84
+ model: str,
85
+ k: int = 6,
86
+ shots: int = 2,
87
+ critique: str | None = None,
88
+ exemplars: list[Exemplar] | None = None,
89
+ ) -> ResearchPlan:
90
+ """Master decomposition: one LLM call → a ResearchPlan of expert subsections.
91
+
92
+ ``shots`` few-shot exemplars (0 = zero-shot) steer the decomposition toward
93
+ distinct, well-staffed experts; ``critique`` lets a prior scored run ask for
94
+ a targeted revision (self-refine loop). See :mod:`hypermind.orgs.prompts`."""
95
+ resp = await client.chat.completions.create(
96
+ model=model,
97
+ temperature=0.3,
98
+ messages=build_plan_messages(
99
+ topic, k=k, shots=shots, critique=critique, exemplars=exemplars
100
+ ),
101
+ response_format={"type": "json_object"},
102
+ )
103
+ content = resp.choices[0].message.content or "{}"
104
+ m = re.search(r"\{.*\}", content, re.S)
105
+ data = json.loads(m.group(0)) if m else {}
106
+ plan = plan_from_dict(topic, data)
107
+ if not plan.subsections: # planner returned nothing usable → one generalist
108
+ plan.subsections = [
109
+ Subsection("general", "Lead Researcher", "generalist", "A rigorous generalist.", topic)
110
+ ]
111
+ return plan
112
+
113
+
114
+ def build_expert_model(
115
+ plan: ResearchPlan, *, namespace: str, dynamics: DynamicsConfig | None = None
116
+ ) -> OrgModel:
117
+ """Turn a ResearchPlan into an OrgModel: one unit per expert sub-area + a
118
+ coordination unit (PI oracle + synthesist) so disputes resolve and findings
119
+ are synthesised across areas."""
120
+ units: list[Unit] = []
121
+ seen: set[str] = set()
122
+ for i, s in enumerate(plan.subsections):
123
+ name = _slug(s.area, i)
124
+ while name in seen: # keep unit names unique
125
+ name = f"{name}-{i}"
126
+ seen.add(name)
127
+ system = f"{s.persona}\nYour research angle: {s.angle}" if s.angle else s.persona
128
+ units.append(
129
+ Unit(
130
+ name=name,
131
+ seats=(
132
+ Seat(
133
+ title=s.expert_title or f"Expert {i + 1}",
134
+ role=s.role,
135
+ system=system,
136
+ authority=0.6,
137
+ tools=tuple(s.tools),
138
+ ),
139
+ ),
140
+ )
141
+ )
142
+ units.append(
143
+ Unit(
144
+ name="coordination",
145
+ seats=(
146
+ Seat(
147
+ "Principal Investigator", role="oracle", authority=0.95,
148
+ system="You are the PI. Ground and adjudicate claims across sub-areas; "
149
+ "reward rigor and evidence, penalise hand-waving.",
150
+ tools=("searchapi_google_scholar",),
151
+ ),
152
+ Seat(
153
+ "Synthesist", role="synthesist", authority=0.8,
154
+ system="You synthesise findings across the lab's sub-areas into a coherent "
155
+ "position, citing the strongest evidence.",
156
+ tools=("web_search_ddg",),
157
+ ),
158
+ ),
159
+ )
160
+ )
161
+ return OrgModel(
162
+ name=plan.title or "research", namespace=namespace, units=tuple(units),
163
+ dynamics=dynamics or DynamicsConfig(rounds=6),
164
+ )
@@ -0,0 +1,131 @@
1
+ """Turn captured raw tool output into structured, usable citations (#evidence).
2
+
3
+ We already persist every tool call's full raw output (see ``sim._publish``). This
4
+ module parses that JSON/text into :class:`Citation` records — title, url,
5
+ snippet, authors, year — so the swarm can *use* its primary sources instead of
6
+ only its own summaries:
7
+
8
+ * **grounding** — feed real source snippets to the judge (an external check,
9
+ not summary-vs-summary);
10
+ * **bibliography** — a de-duplicated, multi-expert-ranked reference list;
11
+ * **retrieval** — real passages for later rounds.
12
+
13
+ Everything here is pure parsing (no LLM, no network) — cheap enough to run per
14
+ retrieval and cached by claim count in the engine, so it adds no latency.
15
+ """
16
+
17
+ from __future__ import annotations
18
+
19
+ import json
20
+ import re
21
+ from dataclasses import dataclass, field
22
+
23
+ _YEAR = re.compile(r"\b(19|20)\d{2}\b")
24
+ _DDG_URL = re.compile(r"\((https?://[^)]+)\)\s*$")
25
+ # searchapi/SERP shapes vary by endpoint; these are the arrays that hold hits.
26
+ _RESULT_KEYS = ("organic_results", "results", "scholar_results", "news_results", "items")
27
+
28
+
29
+ @dataclass
30
+ class Citation:
31
+ title: str
32
+ url: str = ""
33
+ snippet: str = ""
34
+ authors: str = ""
35
+ year: str = ""
36
+ source: str = "" # the tool that surfaced it
37
+ found_by: set[str] = field(default_factory=set) # expert labels that cited it
38
+
39
+ def key(self) -> str:
40
+ """Dedup key: prefer URL, else normalised title."""
41
+ return (self.url or self.title).strip().lower()
42
+
43
+
44
+ def _year_of(*texts: str) -> str:
45
+ for t in texts:
46
+ m = _YEAR.search(t or "")
47
+ if m:
48
+ return m.group(0)
49
+ return ""
50
+
51
+
52
+ def parse_tool_result(tool: str, result: str) -> list[Citation]:
53
+ """Parse one tool result (searchapi JSON or DuckDuckGo text) into citations.
54
+
55
+ Lenient by design: unknown shapes yield an empty list, never an error."""
56
+ result = result or ""
57
+ out: list[Citation] = []
58
+ try:
59
+ data = json.loads(result)
60
+ except (json.JSONDecodeError, ValueError):
61
+ data = None
62
+
63
+ if isinstance(data, dict):
64
+ arr = next((data[k] for k in _RESULT_KEYS if isinstance(data.get(k), list)), None)
65
+ for r in arr or []:
66
+ if not isinstance(r, dict):
67
+ continue
68
+ title = str(r.get("title") or r.get("name") or "").strip()
69
+ url = str(r.get("link") or r.get("url") or r.get("patent_link") or "").strip()
70
+ snippet = str(r.get("snippet") or r.get("description") or r.get("abstract") or "").strip()
71
+ pub = r.get("publication_info")
72
+ authors = str(pub.get("summary", "")).strip() if isinstance(pub, dict) else ""
73
+ year = _year_of(authors, str(r.get("year", "")), title)
74
+ if title or url:
75
+ out.append(Citation(title, url, snippet, authors, year, tool))
76
+ else:
77
+ # DuckDuckGo _fmt lines: "- title: snippet (url)"
78
+ for line in result.splitlines():
79
+ line = line.strip().lstrip("-").strip()
80
+ if not line:
81
+ continue
82
+ m = _DDG_URL.search(line)
83
+ if not m: # real result lines carry a "(url)"; skip free prose
84
+ continue
85
+ url, line = m.group(1), line[: m.start()].strip()
86
+ title, _sep, snippet = line.partition(":")
87
+ out.append(Citation(title.strip(), url, snippet.strip(), "", _year_of(line), tool))
88
+ return out
89
+
90
+
91
+ def extract_citations(evidence_records: list[dict]) -> list[Citation]:
92
+ """Parse + de-duplicate citations across all evidence records.
93
+
94
+ Merges duplicates (same URL/title), unions the experts that surfaced each,
95
+ keeps the longest snippet, and ranks by **multi-expert corroboration** then
96
+ snippet richness — sources several experts independently found rank first."""
97
+ by_key: dict[str, Citation] = {}
98
+ for rec in evidence_records:
99
+ by = rec.get("by")
100
+ for tc in rec.get("tool_calls", []):
101
+ for c in parse_tool_result(str(tc.get("tool", "")), str(tc.get("result", ""))):
102
+ k = c.key()
103
+ if not k:
104
+ continue
105
+ cur = by_key.get(k)
106
+ if cur is None:
107
+ if by:
108
+ c.found_by.add(by)
109
+ by_key[k] = c
110
+ else:
111
+ if by:
112
+ cur.found_by.add(by)
113
+ if len(c.snippet) > len(cur.snippet):
114
+ cur.snippet = c.snippet
115
+ if not cur.year:
116
+ cur.year = c.year
117
+ cites = list(by_key.values())
118
+ cites.sort(key=lambda c: (-len(c.found_by), -len(c.snippet), c.title))
119
+ return cites
120
+
121
+
122
+ def citation_context(cites: list[Citation], k: int) -> list[tuple[str, str]]:
123
+ """Top-``k`` citations as ``(source_label, text)`` grounding pairs — real
124
+ source snippets for the judge/answer to ground on."""
125
+ out: list[tuple[str, str]] = []
126
+ for c in cites[: max(0, k)]:
127
+ head = c.title or c.url or "source"
128
+ meta = f" ({c.authors})" if c.authors else (f" ({c.year})" if c.year else "")
129
+ body = c.snippet or c.title
130
+ out.append((f"src:{c.source}", f"{head}{meta}: {body}".strip()))
131
+ return out