hypermind 1.8.2__tar.gz → 1.8.3__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 (1166) hide show
  1. {hypermind-1.8.2 → hypermind-1.8.3}/PKG-INFO +1 -1
  2. {hypermind-1.8.2 → hypermind-1.8.3}/pyproject.toml +1 -1
  3. {hypermind-1.8.2 → hypermind-1.8.3}/src/hmctl/cli.py +34 -8
  4. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/agent.py +344 -33
  5. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/capability.py +47 -5
  6. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/crypto/frost.py +1 -3
  7. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/integrations/client.py +64 -19
  8. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/integrations/loop.py +23 -26
  9. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/integrations/mcp_tools.py +146 -28
  10. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/integrations/research.py +3 -4
  11. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/integrations/working_memory.py +69 -13
  12. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/mind/active.py +28 -4
  13. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/mind/deliberator.py +150 -42
  14. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/mind/diversity.py +3 -0
  15. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/mind/evolve.py +19 -4
  16. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/mind/goals.py +163 -3
  17. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/mind/policy.py +19 -6
  18. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/mind/roles.py +6 -1
  19. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/mind/skills.py +206 -29
  20. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/mind/world_model.py +3 -1
  21. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/orgs/analysis.py +1 -2
  22. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/orgs/evidence.py +20 -1
  23. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/orgs/hypothesis.py +22 -1
  24. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/orgs/replay.py +1 -3
  25. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/orgs/sim.py +56 -13
  26. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/storage/relata.py +66 -8
  27. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/storage/sqlite.py +73 -27
  28. {hypermind-1.8.2 → hypermind-1.8.3}/tests/mind/test_skill_learning_pipeline.py +7 -3
  29. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_datasys_reputation_persistence_on_close.py +6 -0
  30. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_deliberator_parallel_tick.py +3 -1
  31. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_security_regressions_495_490_493_494.py +6 -0
  32. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_self_heal_cycle2.py +12 -0
  33. {hypermind-1.8.2 → hypermind-1.8.3}/.editorconfig +0 -0
  34. {hypermind-1.8.2 → hypermind-1.8.3}/.env.example +0 -0
  35. {hypermind-1.8.2 → hypermind-1.8.3}/.gitattributes +0 -0
  36. {hypermind-1.8.2 → hypermind-1.8.3}/.github/FUNDING.yml +0 -0
  37. {hypermind-1.8.2 → hypermind-1.8.3}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
  38. {hypermind-1.8.2 → hypermind-1.8.3}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  39. {hypermind-1.8.2 → hypermind-1.8.3}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -0
  40. {hypermind-1.8.2 → hypermind-1.8.3}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
  41. {hypermind-1.8.2 → hypermind-1.8.3}/.github/renovate.json +0 -0
  42. {hypermind-1.8.2 → hypermind-1.8.3}/.github/workflows/check-license.yml +0 -0
  43. {hypermind-1.8.2 → hypermind-1.8.3}/.github/workflows/code-review-pr.yml +0 -0
  44. {hypermind-1.8.2 → hypermind-1.8.3}/.github/workflows/hotfix-security.yml +0 -0
  45. {hypermind-1.8.2 → hypermind-1.8.3}/.github/workflows/issue-auto-fix.yml +0 -0
  46. {hypermind-1.8.2 → hypermind-1.8.3}/.github/workflows/issue-triage.yml +0 -0
  47. {hypermind-1.8.2 → hypermind-1.8.3}/.github/workflows/pr-standards.yml +0 -0
  48. {hypermind-1.8.2 → hypermind-1.8.3}/.github/workflows/quality.yml +0 -0
  49. {hypermind-1.8.2 → hypermind-1.8.3}/.github/workflows/release-simple.yml.bak +0 -0
  50. {hypermind-1.8.2 → hypermind-1.8.3}/.github/workflows/release.yml +0 -0
  51. {hypermind-1.8.2 → hypermind-1.8.3}/.github/workflows/security.yml +0 -0
  52. {hypermind-1.8.2 → hypermind-1.8.3}/.github/workflows/stale.yml +0 -0
  53. {hypermind-1.8.2 → hypermind-1.8.3}/.github/workflows-disabled/branch-flow-check.yml +0 -0
  54. {hypermind-1.8.2 → hypermind-1.8.3}/.github/workflows-disabled/chaos.yml +0 -0
  55. {hypermind-1.8.2 → hypermind-1.8.3}/.github/workflows-disabled/check-license.yml +0 -0
  56. {hypermind-1.8.2 → hypermind-1.8.3}/.github/workflows-disabled/ci.yml +0 -0
  57. {hypermind-1.8.2 → hypermind-1.8.3}/.github/workflows-disabled/code-freeze.yml +0 -0
  58. {hypermind-1.8.2 → hypermind-1.8.3}/.github/workflows-disabled/code-review-pr.yml +0 -0
  59. {hypermind-1.8.2 → hypermind-1.8.3}/.github/workflows-disabled/code-review.yml +0 -0
  60. {hypermind-1.8.2 → hypermind-1.8.3}/.github/workflows-disabled/codeql.yml +0 -0
  61. {hypermind-1.8.2 → hypermind-1.8.3}/.github/workflows-disabled/dco.yml +0 -0
  62. {hypermind-1.8.2 → hypermind-1.8.3}/.github/workflows-disabled/docs-to-wiki.yml +0 -0
  63. {hypermind-1.8.2 → hypermind-1.8.3}/.github/workflows-disabled/docs.yml +0 -0
  64. {hypermind-1.8.2 → hypermind-1.8.3}/.github/workflows-disabled/formal.yml +0 -0
  65. {hypermind-1.8.2 → hypermind-1.8.3}/.github/workflows-disabled/fuzz.yml +0 -0
  66. {hypermind-1.8.2 → hypermind-1.8.3}/.github/workflows-disabled/hotfix-security.yml +0 -0
  67. {hypermind-1.8.2 → hypermind-1.8.3}/.github/workflows-disabled/issue-auto-fix.yml +0 -0
  68. {hypermind-1.8.2 → hypermind-1.8.3}/.github/workflows-disabled/issue-triage.yml +0 -0
  69. {hypermind-1.8.2 → hypermind-1.8.3}/.github/workflows-disabled/merge-comment.yml +0 -0
  70. {hypermind-1.8.2 → hypermind-1.8.3}/.github/workflows-disabled/pip-audit.yml +0 -0
  71. {hypermind-1.8.2 → hypermind-1.8.3}/.github/workflows-disabled/pr-standards.yml +0 -0
  72. {hypermind-1.8.2 → hypermind-1.8.3}/.github/workflows-disabled/quality.yml +0 -0
  73. {hypermind-1.8.2 → hypermind-1.8.3}/.github/workflows-disabled/sbom.yml +0 -0
  74. {hypermind-1.8.2 → hypermind-1.8.3}/.github/workflows-disabled/scorecard.yml +0 -0
  75. {hypermind-1.8.2 → hypermind-1.8.3}/.github/workflows-disabled/security.yml +0 -0
  76. {hypermind-1.8.2 → hypermind-1.8.3}/.github/workflows-disabled/sprint-retro.yml +0 -0
  77. {hypermind-1.8.2 → hypermind-1.8.3}/.github/workflows-disabled/stale.yml +0 -0
  78. {hypermind-1.8.2 → hypermind-1.8.3}/.gitignore +0 -0
  79. {hypermind-1.8.2 → hypermind-1.8.3}/.gitleaks.toml +0 -0
  80. {hypermind-1.8.2 → hypermind-1.8.3}/.pre-commit-config.yaml +0 -0
  81. {hypermind-1.8.2 → hypermind-1.8.3}/.tool-versions +0 -0
  82. {hypermind-1.8.2 → hypermind-1.8.3}/CHANGELOG.md +0 -0
  83. {hypermind-1.8.2 → hypermind-1.8.3}/CHARTER.md +0 -0
  84. {hypermind-1.8.2 → hypermind-1.8.3}/CLAUDE.md +0 -0
  85. {hypermind-1.8.2 → hypermind-1.8.3}/CODEOWNERS +0 -0
  86. {hypermind-1.8.2 → hypermind-1.8.3}/CODE_OF_CONDUCT.md +0 -0
  87. {hypermind-1.8.2 → hypermind-1.8.3}/CONTRIBUTING.md +0 -0
  88. {hypermind-1.8.2 → hypermind-1.8.3}/GOVERNANCE.md +0 -0
  89. {hypermind-1.8.2 → hypermind-1.8.3}/LICENSE +0 -0
  90. {hypermind-1.8.2 → hypermind-1.8.3}/MAINTAINERS.md +0 -0
  91. {hypermind-1.8.2 → hypermind-1.8.3}/Makefile +0 -0
  92. {hypermind-1.8.2 → hypermind-1.8.3}/README.md +0 -0
  93. {hypermind-1.8.2 → hypermind-1.8.3}/ROADMAP.md +0 -0
  94. {hypermind-1.8.2 → hypermind-1.8.3}/SECURITY.md +0 -0
  95. {hypermind-1.8.2 → hypermind-1.8.3}/bench/README.md +0 -0
  96. {hypermind-1.8.2 → hypermind-1.8.3}/bench/__init__.py +0 -0
  97. {hypermind-1.8.2 → hypermind-1.8.3}/bench/baselines/v0.6.json +0 -0
  98. {hypermind-1.8.2 → hypermind-1.8.3}/bench/bench_consult.py +0 -0
  99. {hypermind-1.8.2 → hypermind-1.8.3}/bench/bench_dispute.py +0 -0
  100. {hypermind-1.8.2 → hypermind-1.8.3}/bench/bench_publish.py +0 -0
  101. {hypermind-1.8.2 → hypermind-1.8.3}/bench/coordination/README.md +0 -0
  102. {hypermind-1.8.2 → hypermind-1.8.3}/bench/coordination/__init__.py +0 -0
  103. {hypermind-1.8.2 → hypermind-1.8.3}/bench/coordination/baselines/v0.10.json +0 -0
  104. {hypermind-1.8.2 → hypermind-1.8.3}/bench/coordination/bench_rfp_latency.py +0 -0
  105. {hypermind-1.8.2 → hypermind-1.8.3}/bench/coordination/bench_task_throughput.py +0 -0
  106. {hypermind-1.8.2 → hypermind-1.8.3}/bench/coordination/bench_workflow_replay.py +0 -0
  107. {hypermind-1.8.2 → hypermind-1.8.3}/bench/coordination/run_all.py +0 -0
  108. {hypermind-1.8.2 → hypermind-1.8.3}/bench/question_sets/geopolitics_q20.json +0 -0
  109. {hypermind-1.8.2 → hypermind-1.8.3}/bench/question_sets/msft_outlook_q10.json +0 -0
  110. {hypermind-1.8.2 → hypermind-1.8.3}/bench/run_bench.py +0 -0
  111. {hypermind-1.8.2 → hypermind-1.8.3}/chaos/README.md +0 -0
  112. {hypermind-1.8.2 → hypermind-1.8.3}/chaos/__init__.py +0 -0
  113. {hypermind-1.8.2 → hypermind-1.8.3}/chaos/p1_partition_recovery.py +0 -0
  114. {hypermind-1.8.2 → hypermind-1.8.3}/chaos/p2_witness_compromise.py +0 -0
  115. {hypermind-1.8.2 → hypermind-1.8.3}/chaos/p3_key_rotation.py +0 -0
  116. {hypermind-1.8.2 → hypermind-1.8.3}/chaos/p4_dispute_backlog.py +0 -0
  117. {hypermind-1.8.2 → hypermind-1.8.3}/chaos/p5_wire_cutover.py +0 -0
  118. {hypermind-1.8.2 → hypermind-1.8.3}/chaos/p6_quorum_loss.py +0 -0
  119. {hypermind-1.8.2 → hypermind-1.8.3}/chaos/p7_clock_skew.py +0 -0
  120. {hypermind-1.8.2 → hypermind-1.8.3}/chaos/p8_recorder_outage.py +0 -0
  121. {hypermind-1.8.2 → hypermind-1.8.3}/chaos/run_chaos.py +0 -0
  122. {hypermind-1.8.2 → hypermind-1.8.3}/deploy/Dockerfile +0 -0
  123. {hypermind-1.8.2 → hypermind-1.8.3}/deploy/README.md +0 -0
  124. {hypermind-1.8.2 → hypermind-1.8.3}/deploy/docker-compose.yml +0 -0
  125. {hypermind-1.8.2 → hypermind-1.8.3}/deploy/grafana/dashboards/hypermind-coordination.json +0 -0
  126. {hypermind-1.8.2 → hypermind-1.8.3}/deploy/grafana/dashboards/hypermind-v06.json +0 -0
  127. {hypermind-1.8.2 → hypermind-1.8.3}/deploy/grafana/dashboards/hypermind.json +0 -0
  128. {hypermind-1.8.2 → hypermind-1.8.3}/deploy/grafana/provisioning/dashboards/hypermind.yml +0 -0
  129. {hypermind-1.8.2 → hypermind-1.8.3}/deploy/grafana/provisioning/datasources/prometheus.yml +0 -0
  130. {hypermind-1.8.2 → hypermind-1.8.3}/deploy/k8s/hypermind-deployment.yaml +0 -0
  131. {hypermind-1.8.2 → hypermind-1.8.3}/deploy/k8s/orgs-distributed.yaml +0 -0
  132. {hypermind-1.8.2 → hypermind-1.8.3}/deploy/prometheus/prometheus.yml +0 -0
  133. {hypermind-1.8.2 → hypermind-1.8.3}/deploy/relata-serve.sh +0 -0
  134. {hypermind-1.8.2 → hypermind-1.8.3}/deploy/systemd/hypermind.service +0 -0
  135. {hypermind-1.8.2 → hypermind-1.8.3}/docs/SIMLAB.md +0 -0
  136. {hypermind-1.8.2 → hypermind-1.8.3}/docs/_meta/glossary.md +0 -0
  137. {hypermind-1.8.2 → hypermind-1.8.3}/docs/_meta/provenance.md +0 -0
  138. {hypermind-1.8.2 → hypermind-1.8.3}/docs/_meta/public-surface.md +0 -0
  139. {hypermind-1.8.2 → hypermind-1.8.3}/docs/_meta/standards-map.md +0 -0
  140. {hypermind-1.8.2 → hypermind-1.8.3}/docs/adr/0001-tcp-federation-chosen-as-v1-transport.md +0 -0
  141. {hypermind-1.8.2 → hypermind-1.8.3}/docs/adr/0002-cloud-kms-signing-removed-local-signer-is-shipped-backend.md +0 -0
  142. {hypermind-1.8.2 → hypermind-1.8.3}/docs/adr/0003-libp2p-deferred-to-optional-external-binding.md +0 -0
  143. {hypermind-1.8.2 → hypermind-1.8.3}/docs/adr/0004-verified-corpus-is-a-first-class-product-surface.md +0 -0
  144. {hypermind-1.8.2 → hypermind-1.8.3}/docs/adr/0005-ground-truth-anchoring-is-tiered-and-provenance-bearing.md +0 -0
  145. {hypermind-1.8.2 → hypermind-1.8.3}/docs/adr/0006-three-layer-event-driven-integration.md +0 -0
  146. {hypermind-1.8.2 → hypermind-1.8.3}/docs/adr/0007-per-agent-deliberator-with-declarative-role-bundles.md +0 -0
  147. {hypermind-1.8.2 → hypermind-1.8.3}/docs/adr/0008-llm-decomposed-expert-seats-and-reasoning-strategies.md +0 -0
  148. {hypermind-1.8.2 → hypermind-1.8.3}/docs/adr/0009-dual-storage-backend-sqlite-local-default-and-relata-federated.md +0 -0
  149. {hypermind-1.8.2 → hypermind-1.8.3}/docs/adr/0010-composite-ed25519-mldsa65-signing-pq-hybrid.md +0 -0
  150. {hypermind-1.8.2 → hypermind-1.8.3}/docs/adr/README.md +0 -0
  151. {hypermind-1.8.2 → hypermind-1.8.3}/docs/api/agent.md +0 -0
  152. {hypermind-1.8.2 → hypermind-1.8.3}/docs/api/agent_card.md +0 -0
  153. {hypermind-1.8.2 → hypermind-1.8.3}/docs/api/capability.md +0 -0
  154. {hypermind-1.8.2 → hypermind-1.8.3}/docs/api/contract_net.md +0 -0
  155. {hypermind-1.8.2 → hypermind-1.8.3}/docs/api/crypto.md +0 -0
  156. {hypermind-1.8.2 → hypermind-1.8.3}/docs/api/dispute.md +0 -0
  157. {hypermind-1.8.2 → hypermind-1.8.3}/docs/api/eval.md +0 -0
  158. {hypermind-1.8.2 → hypermind-1.8.3}/docs/api/knowledge.md +0 -0
  159. {hypermind-1.8.2 → hypermind-1.8.3}/docs/api/observability.md +0 -0
  160. {hypermind-1.8.2 → hypermind-1.8.3}/docs/api/revocation.md +0 -0
  161. {hypermind-1.8.2 → hypermind-1.8.3}/docs/api/simlab-openapi.yaml +0 -0
  162. {hypermind-1.8.2 → hypermind-1.8.3}/docs/api/sync.md +0 -0
  163. {hypermind-1.8.2 → hypermind-1.8.3}/docs/api/tal.md +0 -0
  164. {hypermind-1.8.2 → hypermind-1.8.3}/docs/api/tasks.md +0 -0
  165. {hypermind-1.8.2 → hypermind-1.8.3}/docs/api/transport.md +0 -0
  166. {hypermind-1.8.2 → hypermind-1.8.3}/docs/api/wire.md +0 -0
  167. {hypermind-1.8.2 → hypermind-1.8.3}/docs/assets/hero-swarm.svg +0 -0
  168. {hypermind-1.8.2 → hypermind-1.8.3}/docs/audit/findings.md +0 -0
  169. {hypermind-1.8.2 → hypermind-1.8.3}/docs/audit/scope.md +0 -0
  170. {hypermind-1.8.2 → hypermind-1.8.3}/docs/concepts.md +0 -0
  171. {hypermind-1.8.2 → hypermind-1.8.3}/docs/configuration.md +0 -0
  172. {hypermind-1.8.2 → hypermind-1.8.3}/docs/conformance/authority.md +0 -0
  173. {hypermind-1.8.2 → hypermind-1.8.3}/docs/conformance/bake-off-report.md +0 -0
  174. {hypermind-1.8.2 → hypermind-1.8.3}/docs/conformance/mark-policy.md +0 -0
  175. {hypermind-1.8.2 → hypermind-1.8.3}/docs/decide/01-disqualifiers.md +0 -0
  176. {hypermind-1.8.2 → hypermind-1.8.3}/docs/decide/02-alternatives.md +0 -0
  177. {hypermind-1.8.2 → hypermind-1.8.3}/docs/decide/03-incentive-aligned-cases.md +0 -0
  178. {hypermind-1.8.2 → hypermind-1.8.3}/docs/decide/04-use-cases.md +0 -0
  179. {hypermind-1.8.2 → hypermind-1.8.3}/docs/design/01-architecture.md +0 -0
  180. {hypermind-1.8.2 → hypermind-1.8.3}/docs/design/02-traces.md +0 -0
  181. {hypermind-1.8.2 → hypermind-1.8.3}/docs/design/03-failure-modes.md +0 -0
  182. {hypermind-1.8.2 → hypermind-1.8.3}/docs/design/04-poisoning-defenses.md +0 -0
  183. {hypermind-1.8.2 → hypermind-1.8.3}/docs/design/05-deployment-topology.md +0 -0
  184. {hypermind-1.8.2 → hypermind-1.8.3}/docs/eval-programme.html +0 -0
  185. {hypermind-1.8.2 → hypermind-1.8.3}/docs/feature-matrix.md +0 -0
  186. {hypermind-1.8.2 → hypermind-1.8.3}/docs/getting-started.md +0 -0
  187. {hypermind-1.8.2 → hypermind-1.8.3}/docs/governance/cna.md +0 -0
  188. {hypermind-1.8.2 → hypermind-1.8.3}/docs/governance/foundation-evaluation.md +0 -0
  189. {hypermind-1.8.2 → hypermind-1.8.3}/docs/index.md +0 -0
  190. {hypermind-1.8.2 → hypermind-1.8.3}/docs/integrations.md +0 -0
  191. {hypermind-1.8.2 → hypermind-1.8.3}/docs/legal/export-classification.md +0 -0
  192. {hypermind-1.8.2 → hypermind-1.8.3}/docs/lts.md +0 -0
  193. {hypermind-1.8.2 → hypermind-1.8.3}/docs/migrate/v0.x-to-v1.0.md +0 -0
  194. {hypermind-1.8.2 → hypermind-1.8.3}/docs/onboarding/00-prerequisites.md +0 -0
  195. {hypermind-1.8.2 → hypermind-1.8.3}/docs/onboarding/README.md +0 -0
  196. {hypermind-1.8.2 → hypermind-1.8.3}/docs/onboarding/after.md +0 -0
  197. {hypermind-1.8.2 → hypermind-1.8.3}/docs/onboarding/exercises/e01-run-the-loop.md +0 -0
  198. {hypermind-1.8.2 → hypermind-1.8.3}/docs/onboarding/exercises/e02-draw-the-architecture.md +0 -0
  199. {hypermind-1.8.2 → hypermind-1.8.3}/docs/onboarding/exercises/e03-trace-a-claim.md +0 -0
  200. {hypermind-1.8.2 → hypermind-1.8.3}/docs/onboarding/exercises/e04-read-a-spec-section.md +0 -0
  201. {hypermind-1.8.2 → hypermind-1.8.3}/docs/onboarding/exercises/e05-break-it.md +0 -0
  202. {hypermind-1.8.2 → hypermind-1.8.3}/docs/onboarding/exercises/e06-add-a-test.md +0 -0
  203. {hypermind-1.8.2 → hypermind-1.8.3}/docs/onboarding/exercises/e07-first-pr.md +0 -0
  204. {hypermind-1.8.2 → hypermind-1.8.3}/docs/onboarding/glossary.md +0 -0
  205. {hypermind-1.8.2 → hypermind-1.8.3}/docs/onboarding/topics/00-what-is-hypermind.md +0 -0
  206. {hypermind-1.8.2 → hypermind-1.8.3}/docs/onboarding/topics/01-agents-and-swarms.md +0 -0
  207. {hypermind-1.8.2 → hypermind-1.8.3}/docs/onboarding/topics/02-architecture-tour.md +0 -0
  208. {hypermind-1.8.2 → hypermind-1.8.3}/docs/onboarding/topics/03-spec-literacy.md +0 -0
  209. {hypermind-1.8.2 → hypermind-1.8.3}/docs/onboarding/topics/04-cryptography.md +0 -0
  210. {hypermind-1.8.2 → hypermind-1.8.3}/docs/onboarding/topics/05-cbor-cose.md +0 -0
  211. {hypermind-1.8.2 → hypermind-1.8.3}/docs/onboarding/topics/06-transparency-logs.md +0 -0
  212. {hypermind-1.8.2 → hypermind-1.8.3}/docs/onboarding/topics/07-distributed-systems.md +0 -0
  213. {hypermind-1.8.2 → hypermind-1.8.3}/docs/onboarding/topics/08-async-python.md +0 -0
  214. {hypermind-1.8.2 → hypermind-1.8.3}/docs/onboarding/topics/09-security-mindset.md +0 -0
  215. {hypermind-1.8.2 → hypermind-1.8.3}/docs/onboarding/week-1-foundations.md +0 -0
  216. {hypermind-1.8.2 → hypermind-1.8.3}/docs/onboarding/week-2-deep-dive.md +0 -0
  217. {hypermind-1.8.2 → hypermind-1.8.3}/docs/operate/01-deployment.md +0 -0
  218. {hypermind-1.8.2 → hypermind-1.8.3}/docs/operate/02-runbook.md +0 -0
  219. {hypermind-1.8.2 → hypermind-1.8.3}/docs/operate/03-resource-budget.md +0 -0
  220. {hypermind-1.8.2 → hypermind-1.8.3}/docs/operate/backup-restore.md +0 -0
  221. {hypermind-1.8.2 → hypermind-1.8.3}/docs/operate/data-residency.md +0 -0
  222. {hypermind-1.8.2 → hypermind-1.8.3}/docs/operate/key-rotation.md +0 -0
  223. {hypermind-1.8.2 → hypermind-1.8.3}/docs/operate/runbooks/dispute-backlog-drain.md +0 -0
  224. {hypermind-1.8.2 → hypermind-1.8.3}/docs/operate/runbooks/key-rotation.md +0 -0
  225. {hypermind-1.8.2 → hypermind-1.8.3}/docs/operate/runbooks/kms-rotation.md +0 -0
  226. {hypermind-1.8.2 → hypermind-1.8.3}/docs/operate/runbooks/multi-host-deploy.md +0 -0
  227. {hypermind-1.8.2 → hypermind-1.8.3}/docs/operate/runbooks/partition-heal.md +0 -0
  228. {hypermind-1.8.2 → hypermind-1.8.3}/docs/operate/runbooks/quorum-loss.md +0 -0
  229. {hypermind-1.8.2 → hypermind-1.8.3}/docs/operate/runbooks/rfp-dispute-triage.md +0 -0
  230. {hypermind-1.8.2 → hypermind-1.8.3}/docs/operate/runbooks/wire-cutover.md +0 -0
  231. {hypermind-1.8.2 → hypermind-1.8.3}/docs/operate/runbooks/witness-compromise.md +0 -0
  232. {hypermind-1.8.2 → hypermind-1.8.3}/docs/operate/runbooks/workflow-replay.md +0 -0
  233. {hypermind-1.8.2 → hypermind-1.8.3}/docs/operate/slo.md +0 -0
  234. {hypermind-1.8.2 → hypermind-1.8.3}/docs/paper/00-patent.md +0 -0
  235. {hypermind-1.8.2 → hypermind-1.8.3}/docs/paper/hypermind-paper-draft.md +0 -0
  236. {hypermind-1.8.2 → hypermind-1.8.3}/docs/paper/hypermind-paper.docx +0 -0
  237. {hypermind-1.8.2 → hypermind-1.8.3}/docs/paper/hypermind-paper.tex +0 -0
  238. {hypermind-1.8.2 → hypermind-1.8.3}/docs/quickstart.md +0 -0
  239. {hypermind-1.8.2 → hypermind-1.8.3}/docs/release-notes/v1.0.0.md +0 -0
  240. {hypermind-1.8.2 → hypermind-1.8.3}/docs/release-notes/v1.1.0.md +0 -0
  241. {hypermind-1.8.2 → hypermind-1.8.3}/docs/release-notes/v1.2.0.md +0 -0
  242. {hypermind-1.8.2 → hypermind-1.8.3}/docs/release-notes/v1.3.0.md +0 -0
  243. {hypermind-1.8.2 → hypermind-1.8.3}/docs/release-notes/v1.4.0.md +0 -0
  244. {hypermind-1.8.2 → hypermind-1.8.3}/docs/release-notes/v1.5.0.md +0 -0
  245. {hypermind-1.8.2 → hypermind-1.8.3}/docs/release-notes/v1.6.0.md +0 -0
  246. {hypermind-1.8.2 → hypermind-1.8.3}/docs/release-notes/v1.6.1.md +0 -0
  247. {hypermind-1.8.2 → hypermind-1.8.3}/docs/release-notes/v1.6.2.md +0 -0
  248. {hypermind-1.8.2 → hypermind-1.8.3}/docs/release-notes/v1.6.3.md +0 -0
  249. {hypermind-1.8.2 → hypermind-1.8.3}/docs/release-notes/v1.6.4.md +0 -0
  250. {hypermind-1.8.2 → hypermind-1.8.3}/docs/release-notes/v1.6.5.md +0 -0
  251. {hypermind-1.8.2 → hypermind-1.8.3}/docs/release-notes/v1.6.6.md +0 -0
  252. {hypermind-1.8.2 → hypermind-1.8.3}/docs/release-notes/v1.6.7.md +0 -0
  253. {hypermind-1.8.2 → hypermind-1.8.3}/docs/release-notes/v1.6.8.md +0 -0
  254. {hypermind-1.8.2 → hypermind-1.8.3}/docs/release-notes/v1.6.9.md +0 -0
  255. {hypermind-1.8.2 → hypermind-1.8.3}/docs/release-notes/v1.7.0.md +0 -0
  256. {hypermind-1.8.2 → hypermind-1.8.3}/docs/release-notes/v1.7.1.md +0 -0
  257. {hypermind-1.8.2 → hypermind-1.8.3}/docs/release-notes/v1.7.2.md +0 -0
  258. {hypermind-1.8.2 → hypermind-1.8.3}/docs/release-notes/v1.7.3.md +0 -0
  259. {hypermind-1.8.2 → hypermind-1.8.3}/docs/security/threat-model.md +0 -0
  260. {hypermind-1.8.2 → hypermind-1.8.3}/docs/simlab/modes.md +0 -0
  261. {hypermind-1.8.2 → hypermind-1.8.3}/docs/simulations.md +0 -0
  262. {hypermind-1.8.2 → hypermind-1.8.3}/docs/sop-knowledge-quality.md +0 -0
  263. {hypermind-1.8.2 → hypermind-1.8.3}/docs/spec/00-overview.md +0 -0
  264. {hypermind-1.8.2 → hypermind-1.8.3}/docs/spec/01-transport.md +0 -0
  265. {hypermind-1.8.2 → hypermind-1.8.3}/docs/spec/02-cryptography.md +0 -0
  266. {hypermind-1.8.2 → hypermind-1.8.3}/docs/spec/03-messages.md +0 -0
  267. {hypermind-1.8.2 → hypermind-1.8.3}/docs/spec/04-knowledge-model.md +0 -0
  268. {hypermind-1.8.2 → hypermind-1.8.3}/docs/spec/05-routing.md +0 -0
  269. {hypermind-1.8.2 → hypermind-1.8.3}/docs/spec/06-conformance.md +0 -0
  270. {hypermind-1.8.2 → hypermind-1.8.3}/docs/spec/07-trust-access-layer.md +0 -0
  271. {hypermind-1.8.2 → hypermind-1.8.3}/docs/spec/08-onboarding-contract.md +0 -0
  272. {hypermind-1.8.2 → hypermind-1.8.3}/docs/spec/09-agent-sdk.md +0 -0
  273. {hypermind-1.8.2 → hypermind-1.8.3}/docs/spec/10-disputes.md +0 -0
  274. {hypermind-1.8.2 → hypermind-1.8.3}/docs/spec/11-witness-transparency.md +0 -0
  275. {hypermind-1.8.2 → hypermind-1.8.3}/docs/spec/12-governance.md +0 -0
  276. {hypermind-1.8.2 → hypermind-1.8.3}/docs/spec/13-observability.md +0 -0
  277. {hypermind-1.8.2 → hypermind-1.8.3}/docs/spec/14-threat-model.md +0 -0
  278. {hypermind-1.8.2 → hypermind-1.8.3}/docs/spec/15-living-transmission.md +0 -0
  279. {hypermind-1.8.2 → hypermind-1.8.3}/docs/spec/16-reference-comparisons.md +0 -0
  280. {hypermind-1.8.2 → hypermind-1.8.3}/docs/spec/17-upgrade-v1.md +0 -0
  281. {hypermind-1.8.2 → hypermind-1.8.3}/docs/spec/18-revocation.md +0 -0
  282. {hypermind-1.8.2 → hypermind-1.8.3}/docs/spec/19-autonomy-contract.md +0 -0
  283. {hypermind-1.8.2 → hypermind-1.8.3}/docs/spec/20-swarm-intelligence.md +0 -0
  284. {hypermind-1.8.2 → hypermind-1.8.3}/docs/spec/21-private-namespaces.md +0 -0
  285. {hypermind-1.8.2 → hypermind-1.8.3}/docs/spec/22-transport-mtls.md +0 -0
  286. {hypermind-1.8.2 → hypermind-1.8.3}/docs/spec/23-envelope-encryption.md +0 -0
  287. {hypermind-1.8.2 → hypermind-1.8.3}/docs/spec/24-namespace-identity.md +0 -0
  288. {hypermind-1.8.2 → hypermind-1.8.3}/docs/spec/25-capability-extensions.md +0 -0
  289. {hypermind-1.8.2 → hypermind-1.8.3}/docs/spec/26-workflow.md +0 -0
  290. {hypermind-1.8.2 → hypermind-1.8.3}/docs/spec/27-contract-net.md +0 -0
  291. {hypermind-1.8.2 → hypermind-1.8.3}/docs/spec/28-distributed-trace.md +0 -0
  292. {hypermind-1.8.2 → hypermind-1.8.3}/docs/spec/29-verified-corpus.md +0 -0
  293. {hypermind-1.8.2 → hypermind-1.8.3}/docs/spec/30-ground-truth-anchor.md +0 -0
  294. {hypermind-1.8.2 → hypermind-1.8.3}/docs/spec/31-deep-research-engine.md +0 -0
  295. {hypermind-1.8.2 → hypermind-1.8.3}/docs/spec/32-belief-state.md +0 -0
  296. {hypermind-1.8.2 → hypermind-1.8.3}/docs/spec/appendix-N-calibration.md +0 -0
  297. {hypermind-1.8.2 → hypermind-1.8.3}/docs/spec/appendix-TLA.md +0 -0
  298. {hypermind-1.8.2 → hypermind-1.8.3}/docs/spec/appendix-z.md +0 -0
  299. {hypermind-1.8.2 → hypermind-1.8.3}/docs/spec/errata.md +0 -0
  300. {hypermind-1.8.2 → hypermind-1.8.3}/docs/spec/index.md +0 -0
  301. {hypermind-1.8.2 → hypermind-1.8.3}/docs/spec/invariants.md +0 -0
  302. {hypermind-1.8.2 → hypermind-1.8.3}/docs/spec/normative-trace.md +0 -0
  303. {hypermind-1.8.2 → hypermind-1.8.3}/docs/supply-chain/sbom.md +0 -0
  304. {hypermind-1.8.2 → hypermind-1.8.3}/docs/supply-chain/slsa.md +0 -0
  305. {hypermind-1.8.2 → hypermind-1.8.3}/docs/supply-chain/verify-self.md +0 -0
  306. {hypermind-1.8.2 → hypermind-1.8.3}/docs/sustainability.md +0 -0
  307. {hypermind-1.8.2 → hypermind-1.8.3}/docs/verified-corpus.md +0 -0
  308. {hypermind-1.8.2 → hypermind-1.8.3}/e2e_features_test.py +0 -0
  309. {hypermind-1.8.2 → hypermind-1.8.3}/e2e_mcp_sequential.py +0 -0
  310. {hypermind-1.8.2 → hypermind-1.8.3}/e2e_mcp_test.py +0 -0
  311. {hypermind-1.8.2 → hypermind-1.8.3}/examples/01_hello_world.py +0 -0
  312. {hypermind-1.8.2 → hypermind-1.8.3}/examples/02_two_agents_dispute.py +0 -0
  313. {hypermind-1.8.2 → hypermind-1.8.3}/examples/03_consult_panel.py +0 -0
  314. {hypermind-1.8.2 → hypermind-1.8.3}/examples/04_oracle_resolve.py +0 -0
  315. {hypermind-1.8.2 → hypermind-1.8.3}/examples/05_consult_to_synthesis.py +0 -0
  316. {hypermind-1.8.2 → hypermind-1.8.3}/examples/06_hybrid_pq.py +0 -0
  317. {hypermind-1.8.2 → hypermind-1.8.3}/examples/07_frost_threshold.py +0 -0
  318. {hypermind-1.8.2 → hypermind-1.8.3}/examples/08_ramp_and_diagnostics.py +0 -0
  319. {hypermind-1.8.2 → hypermind-1.8.3}/examples/09_audit_export_chain.py +0 -0
  320. {hypermind-1.8.2 → hypermind-1.8.3}/examples/10_autonomous_agent.py +0 -0
  321. {hypermind-1.8.2 → hypermind-1.8.3}/examples/11_swarm_deliberation.py +0 -0
  322. {hypermind-1.8.2 → hypermind-1.8.3}/examples/12_swarm_iq_scorecard.py +0 -0
  323. {hypermind-1.8.2 → hypermind-1.8.3}/examples/13_role_specialisation.py +0 -0
  324. {hypermind-1.8.2 → hypermind-1.8.3}/examples/14_active_learning_loop.py +0 -0
  325. {hypermind-1.8.2 → hypermind-1.8.3}/examples/16_wire_message.py +0 -0
  326. {hypermind-1.8.2 → hypermind-1.8.3}/examples/17_tool_delegation.py +0 -0
  327. {hypermind-1.8.2 → hypermind-1.8.3}/examples/18_custom_responder.py +0 -0
  328. {hypermind-1.8.2 → hypermind-1.8.3}/examples/19_governance.py +0 -0
  329. {hypermind-1.8.2 → hypermind-1.8.3}/examples/20_conformance_check.py +0 -0
  330. {hypermind-1.8.2 → hypermind-1.8.3}/examples/21_revocation.py +0 -0
  331. {hypermind-1.8.2 → hypermind-1.8.3}/examples/22_agent_card.py +0 -0
  332. {hypermind-1.8.2 → hypermind-1.8.3}/examples/23_task_delegation.py +0 -0
  333. {hypermind-1.8.2 → hypermind-1.8.3}/examples/24_mcp_tool_call.py +0 -0
  334. {hypermind-1.8.2 → hypermind-1.8.3}/examples/25_swarm_trace.py +0 -0
  335. {hypermind-1.8.2 → hypermind-1.8.3}/examples/26_submit_goal_and_goal_handle.py +0 -0
  336. {hypermind-1.8.2 → hypermind-1.8.3}/examples/27_safety_policies.py +0 -0
  337. {hypermind-1.8.2 → hypermind-1.8.3}/examples/28_relata_connection.py +0 -0
  338. {hypermind-1.8.2 → hypermind-1.8.3}/examples/29_quick_research_sim.py +0 -0
  339. {hypermind-1.8.2 → hypermind-1.8.3}/examples/README.md +0 -0
  340. {hypermind-1.8.2 → hypermind-1.8.3}/examples/coordination/01_durable_workflow.py +0 -0
  341. {hypermind-1.8.2 → hypermind-1.8.3}/examples/coordination/02_contract_net.py +0 -0
  342. {hypermind-1.8.2 → hypermind-1.8.3}/examples/coordination/03_belief_and_plan.py +0 -0
  343. {hypermind-1.8.2 → hypermind-1.8.3}/examples/coordination/__init__.py +0 -0
  344. {hypermind-1.8.2 → hypermind-1.8.3}/examples/coordination/usecases/__init__.py +0 -0
  345. {hypermind-1.8.2 → hypermind-1.8.3}/examples/coordination/usecases/ai_01_fed_benchmark.py +0 -0
  346. {hypermind-1.8.2 → hypermind-1.8.3}/examples/coordination/usecases/ai_alignment_redteam.py +0 -0
  347. {hypermind-1.8.2 → hypermind-1.8.3}/examples/coordination/usecases/cy_05_ir_swarm.py +0 -0
  348. {hypermind-1.8.2 → hypermind-1.8.3}/examples/coordination/usecases/cy_11_ransomware_intel.py +0 -0
  349. {hypermind-1.8.2 → hypermind-1.8.3}/examples/coordination/usecases/ed_credentials.py +0 -0
  350. {hypermind-1.8.2 → hypermind-1.8.3}/examples/coordination/usecases/en_grid_coordinate.py +0 -0
  351. {hypermind-1.8.2 → hypermind-1.8.3}/examples/coordination/usecases/fi_04_bsa_314b.py +0 -0
  352. {hypermind-1.8.2 → hypermind-1.8.3}/examples/coordination/usecases/fi_22_ma_dataroom.py +0 -0
  353. {hypermind-1.8.2 → hypermind-1.8.3}/examples/coordination/usecases/gv_01_intel_sharing.py +0 -0
  354. {hypermind-1.8.2 → hypermind-1.8.3}/examples/coordination/usecases/gv_21_red_team.py +0 -0
  355. {hypermind-1.8.2 → hypermind-1.8.3}/examples/coordination/usecases/hc_06_rare_disease.py +0 -0
  356. {hypermind-1.8.2 → hypermind-1.8.3}/examples/coordination/usecases/hc_21_fed_learning.py +0 -0
  357. {hypermind-1.8.2 → hypermind-1.8.3}/examples/coordination/usecases/lg_ediscovery.py +0 -0
  358. {hypermind-1.8.2 → hypermind-1.8.3}/examples/coordination/usecases/mf_supply_chain.py +0 -0
  359. {hypermind-1.8.2 → hypermind-1.8.3}/examples/e2e_many_agents.py +0 -0
  360. {hypermind-1.8.2 → hypermind-1.8.3}/examples/full_e2e_demo.py +0 -0
  361. {hypermind-1.8.2 → hypermind-1.8.3}/examples/lifecycle.py +0 -0
  362. {hypermind-1.8.2 → hypermind-1.8.3}/examples/org_distributed.py +0 -0
  363. {hypermind-1.8.2 → hypermind-1.8.3}/examples/org_university.py +0 -0
  364. {hypermind-1.8.2 → hypermind-1.8.3}/examples/scenario_aar.py +0 -0
  365. {hypermind-1.8.2 → hypermind-1.8.3}/examples/scenario_backtest.py +0 -0
  366. {hypermind-1.8.2 → hypermind-1.8.3}/examples/scenario_capability_attenuation.py +0 -0
  367. {hypermind-1.8.2 → hypermind-1.8.3}/examples/scenario_conformance.py +0 -0
  368. {hypermind-1.8.2 → hypermind-1.8.3}/examples/scenario_crisis_tabletop.py +0 -0
  369. {hypermind-1.8.2 → hypermind-1.8.3}/examples/scenario_cross_namespace_federation.py +0 -0
  370. {hypermind-1.8.2 → hypermind-1.8.3}/examples/scenario_decision_tournament.py +0 -0
  371. {hypermind-1.8.2 → hypermind-1.8.3}/examples/scenario_dispute_lifecycle_async.py +0 -0
  372. {hypermind-1.8.2 → hypermind-1.8.3}/examples/scenario_evaluation.py +0 -0
  373. {hypermind-1.8.2 → hypermind-1.8.3}/examples/scenario_geopolitical_crisis.py +0 -0
  374. {hypermind-1.8.2 → hypermind-1.8.3}/examples/scenario_geopolitical_traced.py +0 -0
  375. {hypermind-1.8.2 → hypermind-1.8.3}/examples/scenario_governance_committee.py +0 -0
  376. {hypermind-1.8.2 → hypermind-1.8.3}/examples/scenario_information_pipeline.py +0 -0
  377. {hypermind-1.8.2 → hypermind-1.8.3}/examples/scenario_ingest_pipeline.py +0 -0
  378. {hypermind-1.8.2 → hypermind-1.8.3}/examples/scenario_learning_loop.py +0 -0
  379. {hypermind-1.8.2 → hypermind-1.8.3}/examples/scenario_namespace_trust.py +0 -0
  380. {hypermind-1.8.2 → hypermind-1.8.3}/examples/scenario_persona_panel.py +0 -0
  381. {hypermind-1.8.2 → hypermind-1.8.3}/examples/scenario_population_lifecycle.py +0 -0
  382. {hypermind-1.8.2 → hypermind-1.8.3}/examples/scenario_private_namespace.py +0 -0
  383. {hypermind-1.8.2 → hypermind-1.8.3}/examples/scenario_red_team.py +0 -0
  384. {hypermind-1.8.2 → hypermind-1.8.3}/examples/scenario_regulated_consortium.py +0 -0
  385. {hypermind-1.8.2 → hypermind-1.8.3}/examples/scenario_threat_intel.py +0 -0
  386. {hypermind-1.8.2 → hypermind-1.8.3}/examples/scenario_vouch_chain.py +0 -0
  387. {hypermind-1.8.2 → hypermind-1.8.3}/examples/scenario_what_if_tree.py +0 -0
  388. {hypermind-1.8.2 → hypermind-1.8.3}/examples/serve_api.py +0 -0
  389. {hypermind-1.8.2 → hypermind-1.8.3}/examples/two_node_tcp.py +0 -0
  390. {hypermind-1.8.2 → hypermind-1.8.3}/formal/README.md +0 -0
  391. {hypermind-1.8.2 → hypermind-1.8.3}/formal/hax-rust/README.md +0 -0
  392. {hypermind-1.8.2 → hypermind-1.8.3}/formal/hax-rust/scope.md +0 -0
  393. {hypermind-1.8.2 → hypermind-1.8.3}/formal/proverif/dispute_fsm.pv +0 -0
  394. {hypermind-1.8.2 → hypermind-1.8.3}/formal/proverif/dispute_liveness.pv +0 -0
  395. {hypermind-1.8.2 → hypermind-1.8.3}/formal/tamarin/capability_chain.spthy +0 -0
  396. {hypermind-1.8.2 → hypermind-1.8.3}/formal/tamarin/dispute_fsm.spthy +0 -0
  397. {hypermind-1.8.2 → hypermind-1.8.3}/formal/tamarin/signed_statement.spthy +0 -0
  398. {hypermind-1.8.2 → hypermind-1.8.3}/formal/tamarin/wire_security.spthy +0 -0
  399. {hypermind-1.8.2 → hypermind-1.8.3}/fuzz/README.md +0 -0
  400. {hypermind-1.8.2 → hypermind-1.8.3}/fuzz/__init__.py +0 -0
  401. {hypermind-1.8.2 → hypermind-1.8.3}/fuzz/fuzz_agent_card.py +0 -0
  402. {hypermind-1.8.2 → hypermind-1.8.3}/fuzz/fuzz_anti_entropy.py +0 -0
  403. {hypermind-1.8.2 → hypermind-1.8.3}/fuzz/fuzz_capability.py +0 -0
  404. {hypermind-1.8.2 → hypermind-1.8.3}/fuzz/fuzz_dispute.py +0 -0
  405. {hypermind-1.8.2 → hypermind-1.8.3}/fuzz/fuzz_inclusion_proof.py +0 -0
  406. {hypermind-1.8.2 → hypermind-1.8.3}/fuzz/fuzz_wire.py +0 -0
  407. {hypermind-1.8.2 → hypermind-1.8.3}/fuzz/seed_corpus.py +0 -0
  408. {hypermind-1.8.2 → hypermind-1.8.3}/harness/__init__.py +0 -0
  409. {hypermind-1.8.2 → hypermind-1.8.3}/harness/__main__.py +0 -0
  410. {hypermind-1.8.2 → hypermind-1.8.3}/harness/assertions.py +0 -0
  411. {hypermind-1.8.2 → hypermind-1.8.3}/harness/fixtures.py +0 -0
  412. {hypermind-1.8.2 → hypermind-1.8.3}/harness/report.py +0 -0
  413. {hypermind-1.8.2 → hypermind-1.8.3}/harness/roles.py +0 -0
  414. {hypermind-1.8.2 → hypermind-1.8.3}/harness/runner.py +0 -0
  415. {hypermind-1.8.2 → hypermind-1.8.3}/harness/scenario.py +0 -0
  416. {hypermind-1.8.2 → hypermind-1.8.3}/harness/scenarios/__init__.py +0 -0
  417. {hypermind-1.8.2 → hypermind-1.8.3}/harness/scenarios/autonomous_evolution.py +0 -0
  418. {hypermind-1.8.2 → hypermind-1.8.3}/harness/scenarios/swarm_iq_benchmark.py +0 -0
  419. {hypermind-1.8.2 → hypermind-1.8.3}/harness/scenarios/threat_intel.py +0 -0
  420. {hypermind-1.8.2 → hypermind-1.8.3}/mkdocs.yml +0 -0
  421. {hypermind-1.8.2 → hypermind-1.8.3}/reference_verifier/__init__.py +0 -0
  422. {hypermind-1.8.2 → hypermind-1.8.3}/reference_verifier/schemas/encrypted_statement.cddl +0 -0
  423. {hypermind-1.8.2 → hypermind-1.8.3}/reference_verifier/schemas/namespace_accept.cddl +0 -0
  424. {hypermind-1.8.2 → hypermind-1.8.3}/reference_verifier/schemas/namespace_create.cddl +0 -0
  425. {hypermind-1.8.2 → hypermind-1.8.3}/reference_verifier/schemas/namespace_founding_attest.cddl +0 -0
  426. {hypermind-1.8.2 → hypermind-1.8.3}/reference_verifier/schemas/namespace_invite.cddl +0 -0
  427. {hypermind-1.8.2 → hypermind-1.8.3}/reference_verifier/schemas/wire-v0.1.cddl +0 -0
  428. {hypermind-1.8.2 → hypermind-1.8.3}/reference_verifier/verifier.py +0 -0
  429. {hypermind-1.8.2 → hypermind-1.8.3}/review/__init__.py +0 -0
  430. {hypermind-1.8.2 → hypermind-1.8.3}/review/__main__.py +0 -0
  431. {hypermind-1.8.2 → hypermind-1.8.3}/review/agents.py +0 -0
  432. {hypermind-1.8.2 → hypermind-1.8.3}/review/models.py +0 -0
  433. {hypermind-1.8.2 → hypermind-1.8.3}/review/runner.py +0 -0
  434. {hypermind-1.8.2 → hypermind-1.8.3}/src/hmctl/__init__.py +0 -0
  435. {hypermind-1.8.2 → hypermind-1.8.3}/src/hmctl/dashboard.py +0 -0
  436. {hypermind-1.8.2 → hypermind-1.8.3}/src/hmctl/orgs_cmd.py +0 -0
  437. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/__init__.py +0 -0
  438. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/_deprecations.py +0 -0
  439. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/agent_card.py +0 -0
  440. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/api/__init__.py +0 -0
  441. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/api/app.py +0 -0
  442. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/consult.py +0 -0
  443. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/consult_bias.py +0 -0
  444. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/contract_net.py +0 -0
  445. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/crypto/__init__.py +0 -0
  446. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/crypto/cose_encrypt.py +0 -0
  447. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/crypto/dkg.py +0 -0
  448. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/crypto/domain.py +0 -0
  449. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/crypto/hashing.py +0 -0
  450. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/crypto/hlc.py +0 -0
  451. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/crypto/hpke.py +0 -0
  452. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/crypto/kms.py +0 -0
  453. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/crypto/namespace_root.py +0 -0
  454. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/crypto/pq.py +0 -0
  455. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/crypto/room_epoch.py +0 -0
  456. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/crypto/signing.py +0 -0
  457. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/dataset.py +0 -0
  458. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/deliberation.py +0 -0
  459. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/did_web.py +0 -0
  460. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/dispute.py +0 -0
  461. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/domains/__init__.py +0 -0
  462. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/domains/defense.py +0 -0
  463. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/domains/legal.py +0 -0
  464. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/domains/medical.py +0 -0
  465. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/errors.py +0 -0
  466. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/eval/__init__.py +0 -0
  467. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/eval/calibration.py +0 -0
  468. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/eval/comparison.py +0 -0
  469. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/eval/composite.py +0 -0
  470. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/eval/dispute_bench.py +0 -0
  471. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/eval/replay.py +0 -0
  472. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/eval/report.py +0 -0
  473. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/eval/suite.py +0 -0
  474. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/eval/swarm_iq.py +0 -0
  475. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/ingest.py +0 -0
  476. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/integrations/__init__.py +0 -0
  477. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/integrations/autogen.py +0 -0
  478. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/integrations/contradiction.py +0 -0
  479. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/integrations/crewai.py +0 -0
  480. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/integrations/evolution.py +0 -0
  481. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/integrations/federation_manager.py +0 -0
  482. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/integrations/freshness.py +0 -0
  483. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/integrations/hooks.py +0 -0
  484. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/integrations/langchain.py +0 -0
  485. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/integrations/llamaindex.py +0 -0
  486. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/integrations/notifier.py +0 -0
  487. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/integrations/openai_agents.py +0 -0
  488. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/integrations/openai_endpoint.py +0 -0
  489. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/integrations/population.py +0 -0
  490. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/integrations/quickstart.py +0 -0
  491. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/integrations/sse.py +0 -0
  492. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/integrations/startup.py +0 -0
  493. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/integrations/topic_clustering.py +0 -0
  494. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/integrations/webhook_server.py +0 -0
  495. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/knowledge/__init__.py +0 -0
  496. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/knowledge/citation_graph.py +0 -0
  497. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/knowledge/correlated_agreement.py +0 -0
  498. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/knowledge/embedding_registry.py +0 -0
  499. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/knowledge/kernel_store.py +0 -0
  500. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/knowledge/rekor.py +0 -0
  501. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/knowledge/reputation.py +0 -0
  502. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/knowledge/swarm_memory.py +0 -0
  503. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/knowledge/transparency.py +0 -0
  504. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/machine.py +0 -0
  505. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/mcp/__init__.py +0 -0
  506. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/mcp/bridge.py +0 -0
  507. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/mcp/client.py +0 -0
  508. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/mcp/provenance.py +0 -0
  509. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/mcp/relata_tools.py +0 -0
  510. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/mcp/server.py +0 -0
  511. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/mcp/transport.py +0 -0
  512. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/mind/__init__.py +0 -0
  513. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/mind/belief.py +0 -0
  514. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/mind/federation.py +0 -0
  515. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/mind/fitness.py +0 -0
  516. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/mind/integration.py +0 -0
  517. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/mind/mediator.py +0 -0
  518. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/mind/memory_store.py +0 -0
  519. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/mind/records.py +0 -0
  520. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/mind/selfplay.py +0 -0
  521. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/mind/sybil_guard.py +0 -0
  522. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/namespace.py +0 -0
  523. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/namespace_policy.py +0 -0
  524. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/observability/__init__.py +0 -0
  525. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/observability/asgi.py +0 -0
  526. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/observability/cost.py +0 -0
  527. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/observability/logging_config.py +0 -0
  528. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/observability/metrics.py +0 -0
  529. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/observability/otel_export.py +0 -0
  530. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/observability/recorder.py +0 -0
  531. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/observability/swarm_trace.py +0 -0
  532. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/orgs/__init__.py +0 -0
  533. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/orgs/anchor.py +0 -0
  534. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/orgs/charter.py +0 -0
  535. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/orgs/context.py +0 -0
  536. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/orgs/corpus.py +0 -0
  537. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/orgs/deliberate.py +0 -0
  538. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/orgs/distributed/__init__.py +0 -0
  539. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/orgs/distributed/__main__.py +0 -0
  540. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/orgs/distributed/coordinator.py +0 -0
  541. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/orgs/distributed/planning.py +0 -0
  542. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/orgs/distributed/protocol.py +0 -0
  543. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/orgs/distributed/provision.py +0 -0
  544. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/orgs/distributed/serde.py +0 -0
  545. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/orgs/distributed/worker.py +0 -0
  546. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/orgs/experiment.py +0 -0
  547. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/orgs/groundtruth.py +0 -0
  548. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/orgs/interaction.py +0 -0
  549. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/orgs/intervention.py +0 -0
  550. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/orgs/mcp_config.py +0 -0
  551. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/orgs/metrics.py +0 -0
  552. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/orgs/model.py +0 -0
  553. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/orgs/prompts.py +0 -0
  554. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/orgs/quality.py +0 -0
  555. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/orgs/query.py +0 -0
  556. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/orgs/receipt.py +0 -0
  557. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/orgs/refine.py +0 -0
  558. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/orgs/report.py +0 -0
  559. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/orgs/retrieval.py +0 -0
  560. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/orgs/strategies.py +0 -0
  561. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/orgs/stream.py +0 -0
  562. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/orgs/templates/__init__.py +0 -0
  563. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/orgs/think.py +0 -0
  564. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/orgs/tool_providers.py +0 -0
  565. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/orgs/tools.py +0 -0
  566. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/pin_policy.py +0 -0
  567. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/py.typed +0 -0
  568. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/responders/__init__.py +0 -0
  569. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/responders/anthropic.py +0 -0
  570. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/responders/base.py +0 -0
  571. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/responders/openai.py +0 -0
  572. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/responders/router.py +0 -0
  573. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/responders/structured.py +0 -0
  574. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/responders/tools.py +0 -0
  575. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/revocation.py +0 -0
  576. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/rule_ids.py +0 -0
  577. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/schemas/encrypted_statement.cddl +0 -0
  578. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/schemas/namespace_accept.cddl +0 -0
  579. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/schemas/namespace_create.cddl +0 -0
  580. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/schemas/namespace_founding_attest.cddl +0 -0
  581. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/schemas/namespace_invite.cddl +0 -0
  582. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/schemas/wire-v0.1.cddl +0 -0
  583. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/simlab/__init__.py +0 -0
  584. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/simlab/_persona_registry.py +0 -0
  585. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/simlab/_scenario_impl.py +0 -0
  586. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/simlab/app.py +0 -0
  587. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/simlab/backends/__init__.py +0 -0
  588. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/simlab/backends/anchor.py +0 -0
  589. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/simlab/backends/local.py +0 -0
  590. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/simlab/backends/server.py +0 -0
  591. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/simlab/cli_command.py +0 -0
  592. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/simlab/config.py +0 -0
  593. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/simlab/deployment.py +0 -0
  594. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/simlab/knowledge.py +0 -0
  595. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/simlab/learning.py +0 -0
  596. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/simlab/modes/__init__.py +0 -0
  597. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/simlab/modes/_eval_real_llm.py +0 -0
  598. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/simlab/modes/aar.py +0 -0
  599. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/simlab/modes/backtest.py +0 -0
  600. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/simlab/modes/binary_forecast.py +0 -0
  601. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/simlab/modes/conformance.py +0 -0
  602. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/simlab/modes/evaluation.py +0 -0
  603. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/simlab/modes/governance.py +0 -0
  604. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/simlab/modes/redteam.py +0 -0
  605. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/simlab/modes/tabletop.py +0 -0
  606. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/simlab/modes/tournament.py +0 -0
  607. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/simlab/modes/whatif.py +0 -0
  608. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/simlab/namespace.py +0 -0
  609. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/simlab/personas.py +0 -0
  610. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/simlab/prompt_generator.py +0 -0
  611. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/simlab/question_sets/geopolitics_q20.json +0 -0
  612. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/simlab/question_sets/governance_q5.json +0 -0
  613. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/simlab/question_sets/msft_outlook_q10.json +0 -0
  614. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/simlab/question_sets/whatif_q3.json +0 -0
  615. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/simlab/registry.py +0 -0
  616. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/simlab/runner.py +0 -0
  617. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/simlab/scenario.py +0 -0
  618. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/simlab/swarms.py +0 -0
  619. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/simlab/tool_handlers/__init__.py +0 -0
  620. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/simlab/tool_handlers/alpha_vantage.py +0 -0
  621. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/simlab/tool_handlers/brave.py +0 -0
  622. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/simlab/tool_handlers/newsapi.py +0 -0
  623. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/simlab/tool_handlers/openweather.py +0 -0
  624. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/simlab/tool_handlers/pinecone.py +0 -0
  625. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/simlab/tool_handlers/qdrant.py +0 -0
  626. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/simlab/tool_handlers/query_knowledge_base.py +0 -0
  627. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/simlab/tool_handlers/relata_recall.py +0 -0
  628. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/simlab/tool_handlers/retrieve_document.py +0 -0
  629. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/simlab/tool_handlers/serper.py +0 -0
  630. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/simlab/tool_handlers/tavily.py +0 -0
  631. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/simlab/tool_handlers/weaviate.py +0 -0
  632. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/simlab/tool_handlers/wikipedia.py +0 -0
  633. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/simlab/tool_handlers/wolfram.py +0 -0
  634. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/simlab/tool_handlers/yahoo_finance.py +0 -0
  635. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/simlab/tool_registry.py +0 -0
  636. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/simlab/topic_adapter.py +0 -0
  637. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/simlab/topic_questions.py +0 -0
  638. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/storage/__init__.py +0 -0
  639. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/storage/backend.py +0 -0
  640. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/sync.py +0 -0
  641. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/tal.py +0 -0
  642. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/tasks.py +0 -0
  643. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/testing.py +0 -0
  644. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/tools/__init__.py +0 -0
  645. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/tools/registry.py +0 -0
  646. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/transport/__init__.py +0 -0
  647. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/transport/anti_entropy.py +0 -0
  648. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/transport/bus.py +0 -0
  649. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/transport/knows_delta.py +0 -0
  650. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/transport/libp2p.py +0 -0
  651. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/transport/placement.py +0 -0
  652. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/transport/tcp.py +0 -0
  653. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/transport/tls_profile.py +0 -0
  654. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/types.py +0 -0
  655. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/uncertainty.py +0 -0
  656. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/wire.py +0 -0
  657. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/workflow/__init__.py +0 -0
  658. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/workflow/engine.py +0 -0
  659. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/workflow/plan.py +0 -0
  660. {hypermind-1.8.2 → hypermind-1.8.3}/src/hypermind/workflow/repair.py +0 -0
  661. {hypermind-1.8.2 → hypermind-1.8.3}/tests/__init__.py +0 -0
  662. {hypermind-1.8.2 → hypermind-1.8.3}/tests/api/__init__.py +0 -0
  663. {hypermind-1.8.2 → hypermind-1.8.3}/tests/api/test_eval_endpoints.py +0 -0
  664. {hypermind-1.8.2 → hypermind-1.8.3}/tests/api/test_events_stream.py +0 -0
  665. {hypermind-1.8.2 → hypermind-1.8.3}/tests/api/test_management_app.py +0 -0
  666. {hypermind-1.8.2 → hypermind-1.8.3}/tests/chaos/__init__.py +0 -0
  667. {hypermind-1.8.2 → hypermind-1.8.3}/tests/chaos/test_gossip_amplification.py +0 -0
  668. {hypermind-1.8.2 → hypermind-1.8.3}/tests/chaos/test_kill_agent_during_rfp.py +0 -0
  669. {hypermind-1.8.2 → hypermind-1.8.3}/tests/chaos/test_partition_during_workflow.py +0 -0
  670. {hypermind-1.8.2 → hypermind-1.8.3}/tests/chaos/test_slow_consumer_backpressure.py +0 -0
  671. {hypermind-1.8.2 → hypermind-1.8.3}/tests/chaos/test_slow_peer.py +0 -0
  672. {hypermind-1.8.2 → hypermind-1.8.3}/tests/conformance/__init__.py +0 -0
  673. {hypermind-1.8.2 → hypermind-1.8.3}/tests/conformance/generate_vectors.py +0 -0
  674. {hypermind-1.8.2 → hypermind-1.8.3}/tests/conformance/generate_z66.py +0 -0
  675. {hypermind-1.8.2 → hypermind-1.8.3}/tests/conformance/vectors/SIGNING.md +0 -0
  676. {hypermind-1.8.2 → hypermind-1.8.3}/tests/conformance/vectors/agent-card-01.json +0 -0
  677. {hypermind-1.8.2 → hypermind-1.8.3}/tests/conformance/vectors/agent-card-02.json +0 -0
  678. {hypermind-1.8.2 → hypermind-1.8.3}/tests/conformance/vectors/capability-01.json +0 -0
  679. {hypermind-1.8.2 → hypermind-1.8.3}/tests/conformance/vectors/capability-02.json +0 -0
  680. {hypermind-1.8.2 → hypermind-1.8.3}/tests/conformance/vectors/capability-03.json +0 -0
  681. {hypermind-1.8.2 → hypermind-1.8.3}/tests/conformance/vectors/dispute-01.json +0 -0
  682. {hypermind-1.8.2 → hypermind-1.8.3}/tests/conformance/vectors/dispute-02.json +0 -0
  683. {hypermind-1.8.2 → hypermind-1.8.3}/tests/conformance/vectors/dispute-03.json +0 -0
  684. {hypermind-1.8.2 → hypermind-1.8.3}/tests/conformance/vectors/dispute-04.json +0 -0
  685. {hypermind-1.8.2 → hypermind-1.8.3}/tests/conformance/vectors/dispute-05.json +0 -0
  686. {hypermind-1.8.2 → hypermind-1.8.3}/tests/conformance/vectors/frost-01.json +0 -0
  687. {hypermind-1.8.2 → hypermind-1.8.3}/tests/conformance/vectors/frost-02.json +0 -0
  688. {hypermind-1.8.2 → hypermind-1.8.3}/tests/conformance/vectors/frost-03.json +0 -0
  689. {hypermind-1.8.2 → hypermind-1.8.3}/tests/conformance/vectors/knows-delta-01.json +0 -0
  690. {hypermind-1.8.2 → hypermind-1.8.3}/tests/conformance/vectors/knows-delta-02.json +0 -0
  691. {hypermind-1.8.2 → hypermind-1.8.3}/tests/conformance/vectors/mcp-prov-01.json +0 -0
  692. {hypermind-1.8.2 → hypermind-1.8.3}/tests/conformance/vectors/mcp-prov-02.json +0 -0
  693. {hypermind-1.8.2 → hypermind-1.8.3}/tests/conformance/vectors/merkle-01.json +0 -0
  694. {hypermind-1.8.2 → hypermind-1.8.3}/tests/conformance/vectors/merkle-02.json +0 -0
  695. {hypermind-1.8.2 → hypermind-1.8.3}/tests/conformance/vectors/merkle-03.json +0 -0
  696. {hypermind-1.8.2 → hypermind-1.8.3}/tests/conformance/vectors/merkle-04.json +0 -0
  697. {hypermind-1.8.2 → hypermind-1.8.3}/tests/conformance/vectors/rep-decay-01.json +0 -0
  698. {hypermind-1.8.2 → hypermind-1.8.3}/tests/conformance/vectors/revocation-01.json +0 -0
  699. {hypermind-1.8.2 → hypermind-1.8.3}/tests/conformance/vectors/revocation-02.json +0 -0
  700. {hypermind-1.8.2 → hypermind-1.8.3}/tests/conformance/vectors/revocation-03.json +0 -0
  701. {hypermind-1.8.2 → hypermind-1.8.3}/tests/conformance/vectors/task-01.json +0 -0
  702. {hypermind-1.8.2 → hypermind-1.8.3}/tests/conformance/vectors/task-02.json +0 -0
  703. {hypermind-1.8.2 → hypermind-1.8.3}/tests/conformance/vectors/trace-01.json +0 -0
  704. {hypermind-1.8.2 → hypermind-1.8.3}/tests/conformance/vectors/trace-02.json +0 -0
  705. {hypermind-1.8.2 → hypermind-1.8.3}/tests/conformance/vectors/wire-envelope-01.json +0 -0
  706. {hypermind-1.8.2 → hypermind-1.8.3}/tests/conformance/vectors/wire-envelope-02.json +0 -0
  707. {hypermind-1.8.2 → hypermind-1.8.3}/tests/conformance/vectors/wire-envelope-03.json +0 -0
  708. {hypermind-1.8.2 → hypermind-1.8.3}/tests/conformance/vectors/wire-envelope-04.json +0 -0
  709. {hypermind-1.8.2 → hypermind-1.8.3}/tests/conformance/vectors/wire-envelope-05.json +0 -0
  710. {hypermind-1.8.2 → hypermind-1.8.3}/tests/conftest.py +0 -0
  711. {hypermind-1.8.2 → hypermind-1.8.3}/tests/harness/__init__.py +0 -0
  712. {hypermind-1.8.2 → hypermind-1.8.3}/tests/harness/conftest.py +0 -0
  713. {hypermind-1.8.2 → hypermind-1.8.3}/tests/harness/test_assertion_library.py +0 -0
  714. {hypermind-1.8.2 → hypermind-1.8.3}/tests/harness/test_autonomous_evolution.py +0 -0
  715. {hypermind-1.8.2 → hypermind-1.8.3}/tests/harness/test_runner_lifecycle.py +0 -0
  716. {hypermind-1.8.2 → hypermind-1.8.3}/tests/harness/test_threat_intel_harness.py +0 -0
  717. {hypermind-1.8.2 → hypermind-1.8.3}/tests/integration/__init__.py +0 -0
  718. {hypermind-1.8.2 → hypermind-1.8.3}/tests/integration/test_relata_server.py +0 -0
  719. {hypermind-1.8.2 → hypermind-1.8.3}/tests/integrations/__init__.py +0 -0
  720. {hypermind-1.8.2 → hypermind-1.8.3}/tests/integrations/test_all_mcp_tools.py +0 -0
  721. {hypermind-1.8.2 → hypermind-1.8.3}/tests/integrations/test_autogen.py +0 -0
  722. {hypermind-1.8.2 → hypermind-1.8.3}/tests/integrations/test_autonomous.py +0 -0
  723. {hypermind-1.8.2 → hypermind-1.8.3}/tests/integrations/test_crewai.py +0 -0
  724. {hypermind-1.8.2 → hypermind-1.8.3}/tests/integrations/test_datasys_hm_related_sqli.py +0 -0
  725. {hypermind-1.8.2 → hypermind-1.8.3}/tests/integrations/test_env_vars_cmd.py +0 -0
  726. {hypermind-1.8.2 → hypermind-1.8.3}/tests/integrations/test_evolution.py +0 -0
  727. {hypermind-1.8.2 → hypermind-1.8.3}/tests/integrations/test_facade.py +0 -0
  728. {hypermind-1.8.2 → hypermind-1.8.3}/tests/integrations/test_fixes_525_526_527.py +0 -0
  729. {hypermind-1.8.2 → hypermind-1.8.3}/tests/integrations/test_hooks.py +0 -0
  730. {hypermind-1.8.2 → hypermind-1.8.3}/tests/integrations/test_langchain.py +0 -0
  731. {hypermind-1.8.2 → hypermind-1.8.3}/tests/integrations/test_llamaindex.py +0 -0
  732. {hypermind-1.8.2 → hypermind-1.8.3}/tests/integrations/test_local_mode.py +0 -0
  733. {hypermind-1.8.2 → hypermind-1.8.3}/tests/integrations/test_loop_logging.py +0 -0
  734. {hypermind-1.8.2 → hypermind-1.8.3}/tests/integrations/test_loop_persistence.py +0 -0
  735. {hypermind-1.8.2 → hypermind-1.8.3}/tests/integrations/test_mcp_desktop.py +0 -0
  736. {hypermind-1.8.2 → hypermind-1.8.3}/tests/integrations/test_mcp_tool_descriptions.py +0 -0
  737. {hypermind-1.8.2 → hypermind-1.8.3}/tests/integrations/test_mcp_tools.py +0 -0
  738. {hypermind-1.8.2 → hypermind-1.8.3}/tests/integrations/test_no_duplicate_subscriptions.py +0 -0
  739. {hypermind-1.8.2 → hypermind-1.8.3}/tests/integrations/test_notifier.py +0 -0
  740. {hypermind-1.8.2 → hypermind-1.8.3}/tests/integrations/test_openai_agents.py +0 -0
  741. {hypermind-1.8.2 → hypermind-1.8.3}/tests/integrations/test_openai_endpoint.py +0 -0
  742. {hypermind-1.8.2 → hypermind-1.8.3}/tests/integrations/test_otel_serve_wiring.py +0 -0
  743. {hypermind-1.8.2 → hypermind-1.8.3}/tests/integrations/test_population_checkpoint_v2.py +0 -0
  744. {hypermind-1.8.2 → hypermind-1.8.3}/tests/integrations/test_population_tools.py +0 -0
  745. {hypermind-1.8.2 → hypermind-1.8.3}/tests/integrations/test_quickstart.py +0 -0
  746. {hypermind-1.8.2 → hypermind-1.8.3}/tests/integrations/test_research_mcp_shared_client.py +0 -0
  747. {hypermind-1.8.2 → hypermind-1.8.3}/tests/integrations/test_research_tool.py +0 -0
  748. {hypermind-1.8.2 → hypermind-1.8.3}/tests/integrations/test_retrieve_author_field.py +0 -0
  749. {hypermind-1.8.2 → hypermind-1.8.3}/tests/integrations/test_sse.py +0 -0
  750. {hypermind-1.8.2 → hypermind-1.8.3}/tests/integrations/test_startup_wiring.py +0 -0
  751. {hypermind-1.8.2 → hypermind-1.8.3}/tests/integrations/test_verifiable_rag.py +0 -0
  752. {hypermind-1.8.2 → hypermind-1.8.3}/tests/integrations/test_verify_v160_tools.py +0 -0
  753. {hypermind-1.8.2 → hypermind-1.8.3}/tests/integrations/test_webhook_server.py +0 -0
  754. {hypermind-1.8.2 → hypermind-1.8.3}/tests/integrations/test_working_memory_atomic_flush.py +0 -0
  755. {hypermind-1.8.2 → hypermind-1.8.3}/tests/mcp/__init__.py +0 -0
  756. {hypermind-1.8.2 → hypermind-1.8.3}/tests/mcp/test_multi_connection.py +0 -0
  757. {hypermind-1.8.2 → hypermind-1.8.3}/tests/mind/__init__.py +0 -0
  758. {hypermind-1.8.2 → hypermind-1.8.3}/tests/mind/test_deliberator_logging.py +0 -0
  759. {hypermind-1.8.2 → hypermind-1.8.3}/tests/mind/test_deliberator_otel_tick.py +0 -0
  760. {hypermind-1.8.2 → hypermind-1.8.3}/tests/mind/test_deliberator_save_learning_nonblocking.py +0 -0
  761. {hypermind-1.8.2 → hypermind-1.8.3}/tests/mind/test_deliberator_sybil_guard_default.py +0 -0
  762. {hypermind-1.8.2 → hypermind-1.8.3}/tests/mind/test_mind_assign_role.py +0 -0
  763. {hypermind-1.8.2 → hypermind-1.8.3}/tests/mind/test_mind_memory_bounds.py +0 -0
  764. {hypermind-1.8.2 → hypermind-1.8.3}/tests/mind/test_mind_research_antiherd.py +0 -0
  765. {hypermind-1.8.2 → hypermind-1.8.3}/tests/mind/test_selfplay.py +0 -0
  766. {hypermind-1.8.2 → hypermind-1.8.3}/tests/orgs/_fakes.py +0 -0
  767. {hypermind-1.8.2 → hypermind-1.8.3}/tests/orgs/test_adversarial.py +0 -0
  768. {hypermind-1.8.2 → hypermind-1.8.3}/tests/orgs/test_analysis.py +0 -0
  769. {hypermind-1.8.2 → hypermind-1.8.3}/tests/orgs/test_anchor.py +0 -0
  770. {hypermind-1.8.2 → hypermind-1.8.3}/tests/orgs/test_concurrency.py +0 -0
  771. {hypermind-1.8.2 → hypermind-1.8.3}/tests/orgs/test_context.py +0 -0
  772. {hypermind-1.8.2 → hypermind-1.8.3}/tests/orgs/test_convergence.py +0 -0
  773. {hypermind-1.8.2 → hypermind-1.8.3}/tests/orgs/test_corpus.py +0 -0
  774. {hypermind-1.8.2 → hypermind-1.8.3}/tests/orgs/test_cross_shard.py +0 -0
  775. {hypermind-1.8.2 → hypermind-1.8.3}/tests/orgs/test_datasys_selfreflector_wiring.py +0 -0
  776. {hypermind-1.8.2 → hypermind-1.8.3}/tests/orgs/test_deliberator.py +0 -0
  777. {hypermind-1.8.2 → hypermind-1.8.3}/tests/orgs/test_distributed.py +0 -0
  778. {hypermind-1.8.2 → hypermind-1.8.3}/tests/orgs/test_embeddings.py +0 -0
  779. {hypermind-1.8.2 → hypermind-1.8.3}/tests/orgs/test_evidence.py +0 -0
  780. {hypermind-1.8.2 → hypermind-1.8.3}/tests/orgs/test_experiment.py +0 -0
  781. {hypermind-1.8.2 → hypermind-1.8.3}/tests/orgs/test_graph_retrieval.py +0 -0
  782. {hypermind-1.8.2 → hypermind-1.8.3}/tests/orgs/test_groundtruth.py +0 -0
  783. {hypermind-1.8.2 → hypermind-1.8.3}/tests/orgs/test_hybrid_retriever.py +0 -0
  784. {hypermind-1.8.2 → hypermind-1.8.3}/tests/orgs/test_hypothesis.py +0 -0
  785. {hypermind-1.8.2 → hypermind-1.8.3}/tests/orgs/test_interaction.py +0 -0
  786. {hypermind-1.8.2 → hypermind-1.8.3}/tests/orgs/test_intervention.py +0 -0
  787. {hypermind-1.8.2 → hypermind-1.8.3}/tests/orgs/test_lightweight.py +0 -0
  788. {hypermind-1.8.2 → hypermind-1.8.3}/tests/orgs/test_mcp_config.py +0 -0
  789. {hypermind-1.8.2 → hypermind-1.8.3}/tests/orgs/test_metrics.py +0 -0
  790. {hypermind-1.8.2 → hypermind-1.8.3}/tests/orgs/test_model.py +0 -0
  791. {hypermind-1.8.2 → hypermind-1.8.3}/tests/orgs/test_ner.py +0 -0
  792. {hypermind-1.8.2 → hypermind-1.8.3}/tests/orgs/test_persist_identities.py +0 -0
  793. {hypermind-1.8.2 → hypermind-1.8.3}/tests/orgs/test_prompts.py +0 -0
  794. {hypermind-1.8.2 → hypermind-1.8.3}/tests/orgs/test_quality.py +0 -0
  795. {hypermind-1.8.2 → hypermind-1.8.3}/tests/orgs/test_query.py +0 -0
  796. {hypermind-1.8.2 → hypermind-1.8.3}/tests/orgs/test_rag.py +0 -0
  797. {hypermind-1.8.2 → hypermind-1.8.3}/tests/orgs/test_receipt.py +0 -0
  798. {hypermind-1.8.2 → hypermind-1.8.3}/tests/orgs/test_refine.py +0 -0
  799. {hypermind-1.8.2 → hypermind-1.8.3}/tests/orgs/test_replay.py +0 -0
  800. {hypermind-1.8.2 → hypermind-1.8.3}/tests/orgs/test_report.py +0 -0
  801. {hypermind-1.8.2 → hypermind-1.8.3}/tests/orgs/test_scale.py +0 -0
  802. {hypermind-1.8.2 → hypermind-1.8.3}/tests/orgs/test_sim.py +0 -0
  803. {hypermind-1.8.2 → hypermind-1.8.3}/tests/orgs/test_strategies.py +0 -0
  804. {hypermind-1.8.2 → hypermind-1.8.3}/tests/orgs/test_stream.py +0 -0
  805. {hypermind-1.8.2 → hypermind-1.8.3}/tests/orgs/test_stream_query.py +0 -0
  806. {hypermind-1.8.2 → hypermind-1.8.3}/tests/orgs/test_templates.py +0 -0
  807. {hypermind-1.8.2 → hypermind-1.8.3}/tests/orgs/test_think.py +0 -0
  808. {hypermind-1.8.2 → hypermind-1.8.3}/tests/orgs/test_tool_providers.py +0 -0
  809. {hypermind-1.8.2 → hypermind-1.8.3}/tests/orgs/test_tool_traces.py +0 -0
  810. {hypermind-1.8.2 → hypermind-1.8.3}/tests/orgs/test_tools.py +0 -0
  811. {hypermind-1.8.2 → hypermind-1.8.3}/tests/orgsim/__init__.py +0 -0
  812. {hypermind-1.8.2 → hypermind-1.8.3}/tests/orgsim/test_orgsim_observability.py +0 -0
  813. {hypermind-1.8.2 → hypermind-1.8.3}/tests/orgsim/test_orgsim_persona_evolution.py +0 -0
  814. {hypermind-1.8.2 → hypermind-1.8.3}/tests/responders/__init__.py +0 -0
  815. {hypermind-1.8.2 → hypermind-1.8.3}/tests/responders/test_responders.py +0 -0
  816. {hypermind-1.8.2 → hypermind-1.8.3}/tests/responders/test_router.py +0 -0
  817. {hypermind-1.8.2 → hypermind-1.8.3}/tests/responders/test_structured_response.py +0 -0
  818. {hypermind-1.8.2 → hypermind-1.8.3}/tests/responders/test_tools.py +0 -0
  819. {hypermind-1.8.2 → hypermind-1.8.3}/tests/review/__init__.py +0 -0
  820. {hypermind-1.8.2 → hypermind-1.8.3}/tests/review/test_agents_parser.py +0 -0
  821. {hypermind-1.8.2 → hypermind-1.8.3}/tests/review/test_models.py +0 -0
  822. {hypermind-1.8.2 → hypermind-1.8.3}/tests/review/test_runner.py +0 -0
  823. {hypermind-1.8.2 → hypermind-1.8.3}/tests/simlab/__init__.py +0 -0
  824. {hypermind-1.8.2 → hypermind-1.8.3}/tests/simlab/conftest.py +0 -0
  825. {hypermind-1.8.2 → hypermind-1.8.3}/tests/simlab/test_app_endpoints.py +0 -0
  826. {hypermind-1.8.2 → hypermind-1.8.3}/tests/simlab/test_knowledge.py +0 -0
  827. {hypermind-1.8.2 → hypermind-1.8.3}/tests/simlab/test_knowledge_reuse.py +0 -0
  828. {hypermind-1.8.2 → hypermind-1.8.3}/tests/simlab/test_modes_aar.py +0 -0
  829. {hypermind-1.8.2 → hypermind-1.8.3}/tests/simlab/test_modes_backtest.py +0 -0
  830. {hypermind-1.8.2 → hypermind-1.8.3}/tests/simlab/test_modes_conformance.py +0 -0
  831. {hypermind-1.8.2 → hypermind-1.8.3}/tests/simlab/test_modes_evaluation.py +0 -0
  832. {hypermind-1.8.2 → hypermind-1.8.3}/tests/simlab/test_modes_governance.py +0 -0
  833. {hypermind-1.8.2 → hypermind-1.8.3}/tests/simlab/test_modes_redteam.py +0 -0
  834. {hypermind-1.8.2 → hypermind-1.8.3}/tests/simlab/test_modes_tabletop.py +0 -0
  835. {hypermind-1.8.2 → hypermind-1.8.3}/tests/simlab/test_modes_tournament.py +0 -0
  836. {hypermind-1.8.2 → hypermind-1.8.3}/tests/simlab/test_modes_whatif.py +0 -0
  837. {hypermind-1.8.2 → hypermind-1.8.3}/tests/simlab/test_personas.py +0 -0
  838. {hypermind-1.8.2 → hypermind-1.8.3}/tests/simlab/test_personas_endpoints.py +0 -0
  839. {hypermind-1.8.2 → hypermind-1.8.3}/tests/simlab/test_recorder_scoping.py +0 -0
  840. {hypermind-1.8.2 → hypermind-1.8.3}/tests/simlab/test_registry.py +0 -0
  841. {hypermind-1.8.2 → hypermind-1.8.3}/tests/simlab/test_resolve_outcomes.py +0 -0
  842. {hypermind-1.8.2 → hypermind-1.8.3}/tests/simlab/test_responder_timeout.py +0 -0
  843. {hypermind-1.8.2 → hypermind-1.8.3}/tests/simlab/test_runner.py +0 -0
  844. {hypermind-1.8.2 → hypermind-1.8.3}/tests/simlab/test_swarms.py +0 -0
  845. {hypermind-1.8.2 → hypermind-1.8.3}/tests/storage/__init__.py +0 -0
  846. {hypermind-1.8.2 → hypermind-1.8.3}/tests/storage/test_relata_backend.py +0 -0
  847. {hypermind-1.8.2 → hypermind-1.8.3}/tests/storage/test_sqlite_backend.py +0 -0
  848. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_active_multi_step.py +0 -0
  849. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_agent_card.py +0 -0
  850. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_agent_e2e.py +0 -0
  851. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_agent_edge.py +0 -0
  852. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_agent_synthesize.py +0 -0
  853. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_anthropic_responder_caching.py +0 -0
  854. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_anti_entropy.py +0 -0
  855. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_anti_entropy_multiround.py +0 -0
  856. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_anti_entropy_selfheal.py +0 -0
  857. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_appendix_z_conformance.py +0 -0
  858. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_appendix_z_vectors.py +0 -0
  859. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_arg_dag_edge_types.py +0 -0
  860. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_backpressure.py +0 -0
  861. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_belief_revision.py +0 -0
  862. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_belief_weight_per_candidate.py +0 -0
  863. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_bias_detector.py +0 -0
  864. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_block_reason.py +0 -0
  865. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_calibration.py +0 -0
  866. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_capability.py +0 -0
  867. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_capability_canonical.py +0 -0
  868. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_capability_chain.py +0 -0
  869. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_capability_edge.py +0 -0
  870. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_capability_enforcement.py +0 -0
  871. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_capability_namespace_caveat.py +0 -0
  872. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_capability_revocation.py +0 -0
  873. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_citation_graph.py +0 -0
  874. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_cli.py +0 -0
  875. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_cli_agent_goal_fixes.py +0 -0
  876. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_cli_interop.py +0 -0
  877. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_cli_mcp_install.py +0 -0
  878. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_cli_orgs.py +0 -0
  879. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_composite_lamps_prefix.py +0 -0
  880. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_consult.py +0 -0
  881. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_consult_stream.py +0 -0
  882. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_consult_stream_t4.py +0 -0
  883. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_contract_net_disputed_award.py +0 -0
  884. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_contract_net_frost_award.py +0 -0
  885. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_contract_net_happy.py +0 -0
  886. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_contract_net_reputation_scoring.py +0 -0
  887. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_contract_net_sybil_filter.py +0 -0
  888. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_correlated_agreement.py +0 -0
  889. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_cose_encrypt_roundtrip.py +0 -0
  890. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_cost_tracker.py +0 -0
  891. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_cross_namespace_consult.py +0 -0
  892. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_crypto.py +0 -0
  893. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_dashboard.py +0 -0
  894. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_dataset.py +0 -0
  895. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_datasys_atomic_loop_state.py +0 -0
  896. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_datasys_brier_feedback_wired.py +0 -0
  897. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_datasys_brier_no_self_assess_in_research.py +0 -0
  898. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_datasys_citation_dedup.py +0 -0
  899. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_datasys_claim_length_bound.py +0 -0
  900. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_datasys_confidence_range_check.py +0 -0
  901. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_datasys_deliberator_research_dedup.py +0 -0
  902. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_datasys_deliberator_stop_persistence.py +0 -0
  903. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_datasys_hm_ingest_sandbox.py +0 -0
  904. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_datasys_hypothesis_propose_empty_reasoning.py +0 -0
  905. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_datasys_job_ttl.py +0 -0
  906. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_datasys_loop_security.py +0 -0
  907. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_datasys_oracle_audit_export.py +0 -0
  908. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_datasys_oracle_resolve_rep_signal_fallback.py +0 -0
  909. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_datasys_orgsim_run_forever_candidate_question.py +0 -0
  910. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_datasys_panel_size_cap.py +0 -0
  911. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_datasys_rounds_cap.py +0 -0
  912. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_datasys_storage_write_failure_observability.py +0 -0
  913. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_deliberation.py +0 -0
  914. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_deliberator_cap.py +0 -0
  915. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_deliberator_observe.py +0 -0
  916. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_deprecation_registry.py +0 -0
  917. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_determinism_corpus.py +0 -0
  918. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_dispute.py +0 -0
  919. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_dispute_close_deliberator_notify.py +0 -0
  920. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_dispute_fsm_full.py +0 -0
  921. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_dispute_mediate.py +0 -0
  922. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_dispute_quorum.py +0 -0
  923. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_dispute_retrieval_decay.py +0 -0
  924. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_dispute_suspended.py +0 -0
  925. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_dissent.py +0 -0
  926. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_diversity_guard_synthesize.py +0 -0
  927. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_diversity_guard_synthesize_jaccard.py +0 -0
  928. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_diversity_quorum.py +0 -0
  929. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_dkg.py +0 -0
  930. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_e2e_research_chain.py +0 -0
  931. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_embedding_registry.py +0 -0
  932. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_eval_comparison.py +0 -0
  933. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_eval_suite.py +0 -0
  934. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_examples_runnable.py +0 -0
  935. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_final_coverage.py +0 -0
  936. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_frost.py +0 -0
  937. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_frost_edge.py +0 -0
  938. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_frost_hedged_nonces.py +0 -0
  939. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_frost_persistence.py +0 -0
  940. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_frost_transcript_store_swap.py +0 -0
  941. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_hlc_clock_source.py +0 -0
  942. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_hpke_vectors.py +0 -0
  943. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_info_gain_routing.py +0 -0
  944. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_issue_355_brier_apply_after_research.py +0 -0
  945. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_issue_356_run_cycle_findings_key.py +0 -0
  946. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_issue_357_relata_kernel_query_rows.py +0 -0
  947. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_issue_359_deliberator_stop_on_teardown.py +0 -0
  948. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_issue_360_curriculum_assign_called.py +0 -0
  949. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_issue_487_loop_deliberator_observe.py +0 -0
  950. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_issue_491_run_cycle_error_logging.py +0 -0
  951. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_issue_492_oracle_resolve_fsm_sequence.py +0 -0
  952. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_kernel_store.py +0 -0
  953. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_kernel_store_remote.py +0 -0
  954. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_knows_delta.py +0 -0
  955. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_lamps_oid_canonical.py +0 -0
  956. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_last_lines.py +0 -0
  957. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_libp2p_peer_id.py +0 -0
  958. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_libp2p_scaffold.py +0 -0
  959. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_libp2p_stub.py +0 -0
  960. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_machine_identity.py +0 -0
  961. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_mcp_bridge.py +0 -0
  962. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_mcp_provenance.py +0 -0
  963. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_mcp_tools_list.py +0 -0
  964. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_mcp_transport.py +0 -0
  965. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_merkle_transparency.py +0 -0
  966. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_mind_active.py +0 -0
  967. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_mind_assign_role.py +0 -0
  968. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_mind_auto_relay_research.py +0 -0
  969. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_mind_deliberator.py +0 -0
  970. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_mind_diversity_sybil_mediator.py +0 -0
  971. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_mind_evolve.py +0 -0
  972. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_mind_goal_handle.py +0 -0
  973. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_mind_goal_queue_bounds.py +0 -0
  974. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_mind_goals_policy.py +0 -0
  975. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_mind_learning_persistence.py +0 -0
  976. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_mind_planner_wiring.py +0 -0
  977. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_mind_records.py +0 -0
  978. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_mind_research_antiherd.py +0 -0
  979. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_mind_research_brier.py +0 -0
  980. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_mind_research_ledger.py +0 -0
  981. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_mind_research_memory.py +0 -0
  982. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_mind_roles.py +0 -0
  983. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_mind_world_model.py +0 -0
  984. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_mind_world_model_priority.py +0 -0
  985. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_misc_edge.py +0 -0
  986. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_mtls_profile.py +0 -0
  987. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_namespace_lifecycle.py +0 -0
  988. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_namespace_policy.py +0 -0
  989. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_namespace_policy_acl.py +0 -0
  990. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_observability_asgi.py +0 -0
  991. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_observability_issues_350_351_352.py +0 -0
  992. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_observability_otel.py +0 -0
  993. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_open_factory.py +0 -0
  994. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_oracle_backprop.py +0 -0
  995. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_oracle_resolve_closes_dispute.py +0 -0
  996. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_oracle_resolve_events.py +0 -0
  997. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_orgs_replay_reputation.py +0 -0
  998. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_orgsim_kernel_store_persist.py +0 -0
  999. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_orgsim_persona_evolution.py +0 -0
  1000. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_orgsim_persona_ticking.py +0 -0
  1001. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_otel_export.py +0 -0
  1002. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_pin_policy.py +0 -0
  1003. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_pin_policy_compose_zero.py +0 -0
  1004. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_placement_consistent_hash.py +0 -0
  1005. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_placement_hint.py +0 -0
  1006. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_plan_dag.py +0 -0
  1007. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_plan_repair.py +0 -0
  1008. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_portable_inclusion_proof.py +0 -0
  1009. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_pq_default.py +0 -0
  1010. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_pq_dual_vendor.py +0 -0
  1011. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_pq_signing.py +0 -0
  1012. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_priv_ns_conformance_coverage.py +0 -0
  1013. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_property_based.py +0 -0
  1014. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_protocol_version.py +0 -0
  1015. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_public_surface_v05.py +0 -0
  1016. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_pursue_workflow.py +0 -0
  1017. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_rate_caveat.py +0 -0
  1018. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_recorder_bounded.py +0 -0
  1019. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_recorder_tail.py +0 -0
  1020. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_reference_verifier_v2.py +0 -0
  1021. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_rekor_client.py +0 -0
  1022. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_rekor_downgrade.py +0 -0
  1023. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_relata_author_hex.py +0 -0
  1024. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_relata_cbor_disputes.py +0 -0
  1025. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_relata_hybrid_search.py +0 -0
  1026. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_relata_memory_store.py +0 -0
  1027. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_relata_tools.py +0 -0
  1028. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_remaining_gaps.py +0 -0
  1029. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_replay.py +0 -0
  1030. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_reputation.py +0 -0
  1031. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_reputation_concurrency.py +0 -0
  1032. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_reputation_memory.py +0 -0
  1033. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_reputation_staleness.py +0 -0
  1034. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_review_fixes.py +0 -0
  1035. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_revocation.py +0 -0
  1036. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_revocation_lifecycle.py +0 -0
  1037. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_room_epoch.py +0 -0
  1038. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_schema_hash_pinned.py +0 -0
  1039. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_secret_redaction.py +0 -0
  1040. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_self_heal_cycle1.py +0 -0
  1041. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_self_heal_cycle3.py +0 -0
  1042. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_self_heal_cycle3_cascade_isolate.py +0 -0
  1043. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_self_heal_cycle3_governance.py +0 -0
  1044. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_self_heal_cycle4.py +0 -0
  1045. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_self_heal_cycle4_deliberator_broadcast.py +0 -0
  1046. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_self_heal_cycle5.py +0 -0
  1047. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_signer_protocol.py +0 -0
  1048. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_skill_registry.py +0 -0
  1049. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_sth_cross_gossip.py +0 -0
  1050. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_swarm_iq.py +0 -0
  1051. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_swarm_iq_at_scale.py +0 -0
  1052. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_swarm_iq_recommend.py +0 -0
  1053. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_swarm_memory.py +0 -0
  1054. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_swarm_memory_federation.py +0 -0
  1055. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_swarm_trace.py +0 -0
  1056. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_swarm_vector_overflow.py +0 -0
  1057. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_sybil_guard_consult.py +0 -0
  1058. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_sync_agent.py +0 -0
  1059. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_tal.py +0 -0
  1060. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_tal_decay_hlc_wallclock.py +0 -0
  1061. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_tal_decay_wired.py +0 -0
  1062. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_task_handle.py +0 -0
  1063. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_task_handle_network.py +0 -0
  1064. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_tcp_duplicate_kid_attack.py +0 -0
  1065. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_tcp_edge.py +0 -0
  1066. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_tcp_federation.py +0 -0
  1067. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_tcp_final.py +0 -0
  1068. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_tcp_read_loop_cleanup.py +0 -0
  1069. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_tcp_transport.py +0 -0
  1070. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_theory_of_mind.py +0 -0
  1071. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_transport.py +0 -0
  1072. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_transport_scale_gaps.py +0 -0
  1073. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_two_impl_interop.py +0 -0
  1074. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_uncertainty.py +0 -0
  1075. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_uncertainty_edge.py +0 -0
  1076. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_verify_brier_research_not_self_referential.py +0 -0
  1077. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_verify_build_mcp_server_no_loop.py +0 -0
  1078. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_verify_deliberator_posteriors_hydrated.py +0 -0
  1079. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_verify_hypothesis_book_oracle_resolve.py +0 -0
  1080. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_verify_self_reflector_topic_kwarg.py +0 -0
  1081. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_wire.py +0 -0
  1082. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_wire_edge_cases.py +0 -0
  1083. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_wire_kid_stability.py +0 -0
  1084. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_wire_p3.py +0 -0
  1085. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_wire_v2.py +0 -0
  1086. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_wire_version.py +0 -0
  1087. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_witness_preimage_length_prefix.py +0 -0
  1088. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_workflow_compensation.py +0 -0
  1089. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_workflow_engine.py +0 -0
  1090. {hypermind-1.8.2 → hypermind-1.8.3}/tests/test_workflow_replay.py +0 -0
  1091. {hypermind-1.8.2 → hypermind-1.8.3}/tests/usecases/__init__.py +0 -0
  1092. {hypermind-1.8.2 → hypermind-1.8.3}/tests/usecases/conftest.py +0 -0
  1093. {hypermind-1.8.2 → hypermind-1.8.3}/tests/usecases/test_ai_01_fed_benchmark.py +0 -0
  1094. {hypermind-1.8.2 → hypermind-1.8.3}/tests/usecases/test_ai_alignment_redteam.py +0 -0
  1095. {hypermind-1.8.2 → hypermind-1.8.3}/tests/usecases/test_cy_05_ir_swarm.py +0 -0
  1096. {hypermind-1.8.2 → hypermind-1.8.3}/tests/usecases/test_cy_11_ransomware_intel.py +0 -0
  1097. {hypermind-1.8.2 → hypermind-1.8.3}/tests/usecases/test_ed_credentials.py +0 -0
  1098. {hypermind-1.8.2 → hypermind-1.8.3}/tests/usecases/test_en_grid_coordinate.py +0 -0
  1099. {hypermind-1.8.2 → hypermind-1.8.3}/tests/usecases/test_fi_04_bsa_314b.py +0 -0
  1100. {hypermind-1.8.2 → hypermind-1.8.3}/tests/usecases/test_fi_22_ma_dataroom.py +0 -0
  1101. {hypermind-1.8.2 → hypermind-1.8.3}/tests/usecases/test_gv_01_intel_sharing.py +0 -0
  1102. {hypermind-1.8.2 → hypermind-1.8.3}/tests/usecases/test_gv_21_red_team.py +0 -0
  1103. {hypermind-1.8.2 → hypermind-1.8.3}/tests/usecases/test_hc_06_rare_disease.py +0 -0
  1104. {hypermind-1.8.2 → hypermind-1.8.3}/tests/usecases/test_hc_21_fed_learning.py +0 -0
  1105. {hypermind-1.8.2 → hypermind-1.8.3}/tests/usecases/test_lg_ediscovery.py +0 -0
  1106. {hypermind-1.8.2 → hypermind-1.8.3}/tests/usecases/test_mf_supply_chain.py +0 -0
  1107. {hypermind-1.8.2 → hypermind-1.8.3}/transport-rust/Cargo.toml +0 -0
  1108. {hypermind-1.8.2 → hypermind-1.8.3}/transport-rust/README.md +0 -0
  1109. {hypermind-1.8.2 → hypermind-1.8.3}/transport-rust/pyproject.toml +0 -0
  1110. {hypermind-1.8.2 → hypermind-1.8.3}/transport-rust/src/lib.rs +0 -0
  1111. {hypermind-1.8.2 → hypermind-1.8.3}/uv.lock +0 -0
  1112. {hypermind-1.8.2 → hypermind-1.8.3}/vercel.json +0 -0
  1113. {hypermind-1.8.2 → hypermind-1.8.3}/webui/index.html +0 -0
  1114. {hypermind-1.8.2 → hypermind-1.8.3}/webui/package-lock.json +0 -0
  1115. {hypermind-1.8.2 → hypermind-1.8.3}/webui/package.json +0 -0
  1116. {hypermind-1.8.2 → hypermind-1.8.3}/webui/src/App.vue +0 -0
  1117. {hypermind-1.8.2 → hypermind-1.8.3}/webui/src/api/client.ts +0 -0
  1118. {hypermind-1.8.2 → hypermind-1.8.3}/webui/src/components/ActivityCanvas.vue +0 -0
  1119. {hypermind-1.8.2 → hypermind-1.8.3}/webui/src/components/AgentContribution.vue +0 -0
  1120. {hypermind-1.8.2 → hypermind-1.8.3}/webui/src/components/BrierHeatmap.vue +0 -0
  1121. {hypermind-1.8.2 → hypermind-1.8.3}/webui/src/components/CIQTrajectory.vue +0 -0
  1122. {hypermind-1.8.2 → hypermind-1.8.3}/webui/src/components/CitationGraph.vue +0 -0
  1123. {hypermind-1.8.2 → hypermind-1.8.3}/webui/src/components/DisputeTimeline.vue +0 -0
  1124. {hypermind-1.8.2 → hypermind-1.8.3}/webui/src/components/DissentList.vue +0 -0
  1125. {hypermind-1.8.2 → hypermind-1.8.3}/webui/src/components/Logo.vue +0 -0
  1126. {hypermind-1.8.2 → hypermind-1.8.3}/webui/src/components/NowAsking.vue +0 -0
  1127. {hypermind-1.8.2 → hypermind-1.8.3}/webui/src/components/PersonaRadar.vue +0 -0
  1128. {hypermind-1.8.2 → hypermind-1.8.3}/webui/src/components/PopulationGenerator.vue +0 -0
  1129. {hypermind-1.8.2 → hypermind-1.8.3}/webui/src/components/Term.vue +0 -0
  1130. {hypermind-1.8.2 → hypermind-1.8.3}/webui/src/components/forms/SchemaForm.vue +0 -0
  1131. {hypermind-1.8.2 → hypermind-1.8.3}/webui/src/components/result/AARTimeline.vue +0 -0
  1132. {hypermind-1.8.2 → hypermind-1.8.3}/webui/src/components/result/BacktestScorecard.vue +0 -0
  1133. {hypermind-1.8.2 → hypermind-1.8.3}/webui/src/components/result/ConformanceReport.vue +0 -0
  1134. {hypermind-1.8.2 → hypermind-1.8.3}/webui/src/components/result/CrisisTabletop.vue +0 -0
  1135. {hypermind-1.8.2 → hypermind-1.8.3}/webui/src/components/result/DecisionBracket.vue +0 -0
  1136. {hypermind-1.8.2 → hypermind-1.8.3}/webui/src/components/result/EvaluationReport.vue +0 -0
  1137. {hypermind-1.8.2 → hypermind-1.8.3}/webui/src/components/result/GovernanceReceipt.vue +0 -0
  1138. {hypermind-1.8.2 → hypermind-1.8.3}/webui/src/components/result/MethodNote.vue +0 -0
  1139. {hypermind-1.8.2 → hypermind-1.8.3}/webui/src/components/result/RedTeamReport.vue +0 -0
  1140. {hypermind-1.8.2 → hypermind-1.8.3}/webui/src/components/result/ScenarioTree.vue +0 -0
  1141. {hypermind-1.8.2 → hypermind-1.8.3}/webui/src/docs/index.ts +0 -0
  1142. {hypermind-1.8.2 → hypermind-1.8.3}/webui/src/docs/render.ts +0 -0
  1143. {hypermind-1.8.2 → hypermind-1.8.3}/webui/src/main.ts +0 -0
  1144. {hypermind-1.8.2 → hypermind-1.8.3}/webui/src/router.ts +0 -0
  1145. {hypermind-1.8.2 → hypermind-1.8.3}/webui/src/stores/sims.ts +0 -0
  1146. {hypermind-1.8.2 → hypermind-1.8.3}/webui/src/styles.css +0 -0
  1147. {hypermind-1.8.2 → hypermind-1.8.3}/webui/src/types/trace.ts +0 -0
  1148. {hypermind-1.8.2 → hypermind-1.8.3}/webui/src/views/Agents.vue +0 -0
  1149. {hypermind-1.8.2 → hypermind-1.8.3}/webui/src/views/Docs.vue +0 -0
  1150. {hypermind-1.8.2 → hypermind-1.8.3}/webui/src/views/Evidence.vue +0 -0
  1151. {hypermind-1.8.2 → hypermind-1.8.3}/webui/src/views/Home.vue +0 -0
  1152. {hypermind-1.8.2 → hypermind-1.8.3}/webui/src/views/HowItWorks.vue +0 -0
  1153. {hypermind-1.8.2 → hypermind-1.8.3}/webui/src/views/Knowledge.vue +0 -0
  1154. {hypermind-1.8.2 → hypermind-1.8.3}/webui/src/views/Landing.vue +0 -0
  1155. {hypermind-1.8.2 → hypermind-1.8.3}/webui/src/views/Namespaces.vue +0 -0
  1156. {hypermind-1.8.2 → hypermind-1.8.3}/webui/src/views/Report.vue +0 -0
  1157. {hypermind-1.8.2 → hypermind-1.8.3}/webui/src/views/Security.vue +0 -0
  1158. {hypermind-1.8.2 → hypermind-1.8.3}/webui/src/views/SimCompare.vue +0 -0
  1159. {hypermind-1.8.2 → hypermind-1.8.3}/webui/src/views/SimDetail.vue +0 -0
  1160. {hypermind-1.8.2 → hypermind-1.8.3}/webui/src/views/SimList.vue +0 -0
  1161. {hypermind-1.8.2 → hypermind-1.8.3}/webui/src/views/SimLive.vue +0 -0
  1162. {hypermind-1.8.2 → hypermind-1.8.3}/webui/src/views/SimNew.vue +0 -0
  1163. {hypermind-1.8.2 → hypermind-1.8.3}/webui/src/views/Tools.vue +0 -0
  1164. {hypermind-1.8.2 → hypermind-1.8.3}/webui/src/views/UseCases.vue +0 -0
  1165. {hypermind-1.8.2 → hypermind-1.8.3}/webui/tsconfig.json +0 -0
  1166. {hypermind-1.8.2 → hypermind-1.8.3}/webui/vite.config.ts +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: hypermind
3
- Version: 1.8.2
3
+ Version: 1.8.3
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
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "hypermind"
7
- version = "1.8.2"
7
+ version = "1.8.3"
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"
@@ -496,7 +496,9 @@ def doctor(check_clock: bool, strict_pq: bool) -> None:
496
496
  for k, v in result.items():
497
497
  table.add_row(k, v)
498
498
  console.print(table)
499
- console.print("\n[dim]To use HyperMind in Claude Desktop: [bold]hmctl mcp install[/] then restart Claude.[/]")
499
+ console.print(
500
+ "\n[dim]To use HyperMind in Claude Desktop: [bold]hmctl mcp install[/] then restart Claude.[/]"
501
+ )
500
502
 
501
503
 
502
504
  def _doctor_check_clock() -> None:
@@ -3159,7 +3161,11 @@ def skill() -> None:
3159
3161
 
3160
3162
 
3161
3163
  def _skill_store() -> object:
3162
- """Return the active skill store: RelataBackend if RELATA_URL set, else SkillFileStore."""
3164
+ """Return the active skill store: RelataBackend if RELATA_URL set, else SkillFileStore.
3165
+
3166
+ #793: RelataBackend.open() is wrapped in a try/except so a misconfigured
3167
+ RELATA_URL produces a clear error rather than an unhandled exception.
3168
+ """
3163
3169
  import os
3164
3170
 
3165
3171
  from hypermind.mind.skills import SkillFileStore
@@ -3169,7 +3175,13 @@ def _skill_store() -> object:
3169
3175
  from hypermind.storage.relata import RelataBackend
3170
3176
 
3171
3177
  b = RelataBackend(relata_url)
3172
- b.open()
3178
+ try:
3179
+ b.open()
3180
+ except Exception as exc:
3181
+ raise click.ClickException(
3182
+ f"Could not connect to Relata at {relata_url!r}: {exc}. "
3183
+ "Check RELATA_URL and RELATA_BEARER_TOKEN, or unset RELATA_URL to use local storage."
3184
+ ) from exc
3173
3185
  return b
3174
3186
  return SkillFileStore()
3175
3187
 
@@ -3180,11 +3192,17 @@ def skill_upload(path: str) -> None:
3180
3192
  """Upload a .skill file to Relata (if configured) or ~/.hypermind/skills/."""
3181
3193
  import os
3182
3194
 
3183
- from hypermind.mind.skills import _parse_frontmatter
3195
+ from hypermind.mind.skills import _parse_frontmatter, _validate_skill_id
3184
3196
 
3185
- text = open(path).read()
3197
+ # #808: use explicit utf-8 encoding instead of platform default.
3198
+ text = open(path, encoding="utf-8").read()
3186
3199
  meta, code = _parse_frontmatter(text)
3187
3200
  skill_id = meta.get("skill_id") or os.path.splitext(os.path.basename(path))[0]
3201
+ # #751: validate skill_id from frontmatter before passing to the store.
3202
+ try:
3203
+ _validate_skill_id(skill_id)
3204
+ except ValueError as exc:
3205
+ raise click.ClickException(f"Invalid skill_id {skill_id!r}: {exc}") from exc
3188
3206
  description = meta.get("description", "")
3189
3207
  tags = meta.get("tags", "")
3190
3208
  store = _skill_store()
@@ -3194,8 +3212,12 @@ def skill_upload(path: str) -> None:
3194
3212
 
3195
3213
 
3196
3214
  @skill.command("list")
3197
- @click.option("--candidates", is_flag=True, default=False,
3198
- help="Show skill candidates surfaced from deliberator work history.")
3215
+ @click.option(
3216
+ "--candidates",
3217
+ is_flag=True,
3218
+ default=False,
3219
+ help="Show skill candidates surfaced from deliberator work history.",
3220
+ )
3199
3221
  def skill_list(candidates: bool) -> None:
3200
3222
  """List skills from Relata (if configured) or ~/.hypermind/skills/.
3201
3223
 
@@ -3204,8 +3226,10 @@ def skill_list(candidates: bool) -> None:
3204
3226
  """
3205
3227
  if candidates:
3206
3228
  import os as _os
3229
+
3207
3230
  _os.environ.setdefault("HYPERMIND_NO_ENV_FILE", "1")
3208
3231
  from hypermind.integrations.client import HyperMindClient
3232
+
3209
3233
  client = HyperMindClient.sandbox()
3210
3234
  book = getattr(getattr(client._primary, "_world", None), "hypothesis_book", None)
3211
3235
  if book is None:
@@ -3218,7 +3242,9 @@ def skill_list(candidates: bool) -> None:
3218
3242
  status = record.get("status", "open")
3219
3243
  click.echo(f"{record['id']:<50} [{status}] {record.get('statement', '')[:80]}")
3220
3244
  if not found:
3221
- click.echo("no skill candidates yet — run agents with a Deliberator to accumulate work history")
3245
+ click.echo(
3246
+ "no skill candidates yet — run agents with a Deliberator to accumulate work history"
3247
+ )
3222
3248
  return
3223
3249
  rows = _skill_store().load_skills()
3224
3250
  if not rows:
@@ -16,11 +16,13 @@ This class implements:
16
16
  from __future__ import annotations
17
17
 
18
18
  import asyncio
19
+ import collections
19
20
  import hashlib
20
21
  import json
21
22
  import logging
22
23
  import os
23
24
  import secrets
25
+ import threading
24
26
  import time
25
27
  import warnings
26
28
  from collections.abc import AsyncIterator, Awaitable, Callable, Sequence
@@ -106,6 +108,10 @@ ClaimType = Literal[
106
108
  # A caller that passes panel_size > MAX_PANEL_SIZE is silently clamped; a
107
109
  # warning is emitted so operators can see the clamping in logs.
108
110
  MAX_PANEL_SIZE: int = 50
111
+ # Maximum number of entries in _NamespaceWorld.panel_votes before LRU eviction (#770).
112
+ _PANEL_VOTES_MAX_ENTRIES: int = 1000
113
+ # Maximum number of claims to restore from storage at startup (#753).
114
+ _RESTORE_CLAIMS_MAX: int = int(os.environ.get("HYPERMIND_RESTORE_CLAIMS_MAX", "50000"))
109
115
 
110
116
  _logger = logging.getLogger(__name__)
111
117
 
@@ -247,15 +253,20 @@ class _DraftEntry:
247
253
  # Process-global registry of in-process namespaces (ROADMAP §0.4.1).
248
254
  # Used by cross-namespace federated CONSULT to discover sibling worlds
249
255
  # without callers having to thread `_NamespaceWorld` references manually.
256
+ # Guarded by _NAMESPACE_REGISTRY_LOCK to prevent data races on concurrent
257
+ # sandbox/testbed construction in multi-threaded callers (#803).
250
258
  _NAMESPACE_REGISTRY: dict[bytes, _NamespaceWorld] = {}
259
+ _NAMESPACE_REGISTRY_LOCK: threading.Lock = threading.Lock()
251
260
 
252
261
 
253
262
  def _register_namespace(world: _NamespaceWorld) -> None:
254
- _NAMESPACE_REGISTRY[bytes(world.namespace_id)] = world
263
+ with _NAMESPACE_REGISTRY_LOCK:
264
+ _NAMESPACE_REGISTRY[bytes(world.namespace_id)] = world
255
265
 
256
266
 
257
267
  def _lookup_namespace(namespace_id: bytes) -> _NamespaceWorld | None:
258
- return _NAMESPACE_REGISTRY.get(bytes(namespace_id))
268
+ with _NAMESPACE_REGISTRY_LOCK:
269
+ return _NAMESPACE_REGISTRY.get(bytes(namespace_id))
259
270
 
260
271
 
261
272
  @dataclass
@@ -279,7 +290,9 @@ class _NamespaceWorld:
279
290
  # (ROADMAP §0.3.2). Map claim_kid → list of (voter_kid, vote_bool,
280
291
  # topic). Used by `oracle_resolve(..., backprop=True)` to reward
281
292
  # voters who agreed with the oracle.
282
- panel_votes: dict[Kid, list[tuple[bytes, bool, str]]] = field(default_factory=dict)
293
+ # Capped at _PANEL_VOTES_MAX_ENTRIES via LRU eviction so resolved
294
+ # dedup keys don't grow unboundedly (#770).
295
+ panel_votes: collections.OrderedDict = field(default_factory=collections.OrderedDict)
283
296
  # rooms map name → {min reputation to publish, members}
284
297
  rooms: dict[str, dict[str, Any]] = field(default_factory=dict)
285
298
  #: Signalled whenever a new dispute is added to self.disputes.
@@ -438,9 +451,31 @@ class _NamespaceWorld:
438
451
 
439
452
  Idempotent: safe to call multiple times; later calls are no-ops
440
453
  once state is materialised.
454
+
455
+ The world starts in a degraded state when restore fails — never silently
456
+ broken (#744, #670). Each failure path logs at ERROR level and emits a
457
+ structured warning so operators can detect partial-restore with
458
+ ``hmctl doctor``.
441
459
  """
460
+ # --- Phase 1: Claims (bounded iteration, #753) ---
461
+ _claims_restored = 0
442
462
  try:
443
463
  for stmt in self.storage.load_claims():
464
+ if _claims_restored >= _RESTORE_CLAIMS_MAX:
465
+ _logger.error(
466
+ "restore_from_storage: hit HYPERMIND_RESTORE_CLAIMS_MAX=%d; "
467
+ "stopping claim restore early. Run hmctl doctor to diagnose.",
468
+ _RESTORE_CLAIMS_MAX,
469
+ )
470
+ self.recorder.emit(
471
+ namespace=self.namespace,
472
+ agent_id="world",
473
+ event_type="restore_claims_truncated",
474
+ severity="warning",
475
+ rule_id="HM-RESTORE-CAP-001",
476
+ claims_max=_RESTORE_CLAIMS_MAX,
477
+ )
478
+ break
444
479
  # Verify signature before admitting to sealed ledger.
445
480
  # from_bytes() enforces A-ALG-BOUND + canonical encoding;
446
481
  # verify() additionally checks the Ed25519/composite signature
@@ -461,24 +496,86 @@ class _NamespaceWorld:
461
496
  )
462
497
  continue
463
498
  self.sealed.setdefault(stmt.kid, stmt)
499
+ _claims_restored += 1
500
+ except (OSError, ValueError, KeyError, RuntimeError) as _exc:
501
+ _logger.error(
502
+ "restore_from_storage: claim restore failed after %d claims: %r. "
503
+ "World will start with partial claims. Run hmctl doctor.",
504
+ _claims_restored,
505
+ _exc,
506
+ )
507
+ self.recorder.emit(
508
+ namespace=self.namespace,
509
+ agent_id="world",
510
+ event_type="restore_claims_failed",
511
+ severity="error",
512
+ rule_id="HM-RESTORE-ERR-001",
513
+ claims_restored=_claims_restored,
514
+ error=str(_exc),
515
+ )
516
+
517
+ # --- Phase 2: Disputes ---
518
+ try:
464
519
  for kid, dispute in self.storage.load_disputes().items():
465
520
  self.disputes.setdefault(kid, dispute)
521
+ except (OSError, ValueError, KeyError, RuntimeError) as _exc:
522
+ _logger.error(
523
+ "restore_from_storage: dispute restore failed: %r. "
524
+ "World will start with no disputes. Run hmctl doctor.",
525
+ _exc,
526
+ )
527
+
528
+ # --- Phase 3: Reputation ---
529
+ try:
466
530
  for kid, topic, alpha, beta, last_ms in self.storage.load_reputation():
467
531
  p = self.reputation._get(kid, topic)
468
532
  p.alpha = alpha
469
533
  p.beta = beta
470
534
  p.last_update_ms = last_ms
471
- # Restore TAL state
472
- if self.tal is not None:
535
+ except (OSError, ValueError, KeyError, RuntimeError) as _exc:
536
+ _logger.error(
537
+ "restore_from_storage: reputation restore failed: %r. "
538
+ "World will start with default priors. Run hmctl doctor.",
539
+ _exc,
540
+ )
541
+
542
+ # --- Phase 4: TAL state (#762, #716) — outside claim iterator, always runs ---
543
+ if self.tal is not None:
544
+ try:
473
545
  tal_json = self.storage.get_kv("tal")
474
546
  if tal_json:
475
547
  import json as _json
476
548
 
477
549
  from hypermind.tal import TAL as _TAL
478
550
 
479
- self.tal = _TAL._from_dict(_json.loads(tal_json), self.reputation)
480
- # Restore HypothesisBook
481
- if self.hypothesis_book is not None:
551
+ _tal_data = _json.loads(tal_json)
552
+ # Basic schema validation before calling _from_dict to prevent
553
+ # corrupt KV blob from corrupting world state (#716).
554
+ if not isinstance(_tal_data, dict):
555
+ raise ValueError(
556
+ f"TAL KV blob is not a dict (got {type(_tal_data).__name__})"
557
+ )
558
+ if "rooms" not in _tal_data and "vouch_log" not in _tal_data:
559
+ raise ValueError("TAL KV blob missing expected keys 'rooms'/'vouch_log'")
560
+ self.tal = _TAL._from_dict(_tal_data, self.reputation)
561
+ except (OSError, ValueError, KeyError, RuntimeError) as _exc:
562
+ _logger.error(
563
+ "restore_from_storage: TAL restore failed: %r. "
564
+ "TAL will start empty. Run hmctl doctor.",
565
+ _exc,
566
+ )
567
+ self.recorder.emit(
568
+ namespace=self.namespace,
569
+ agent_id="world",
570
+ event_type="restore_tal_failed",
571
+ severity="error",
572
+ rule_id="HM-RESTORE-TAL-001",
573
+ error=str(_exc),
574
+ )
575
+
576
+ # --- Phase 5: HypothesisBook (#768) — outside claim iterator, always runs ---
577
+ if self.hypothesis_book is not None:
578
+ try:
482
579
  hyp_json = self.storage.get_kv("hypotheses")
483
580
  if hyp_json:
484
581
  import json as _json
@@ -486,13 +583,80 @@ class _NamespaceWorld:
486
583
  from hypermind.orgs.hypothesis import HypothesisBook as _HB
487
584
 
488
585
  self.hypothesis_book = _HB.from_records(_json.loads(hyp_json))
489
- # Restore BetaWorldModel for each deliberator in the namespace
490
- # (best-effort: deliberators are created lazily after this point)
491
- except Exception:
492
- # Restore is best-effort: a corrupt row should not prevent
493
- # process startup. Operators should run `hmctl doctor` to
494
- # diagnose. Real production code paths would log here.
495
- pass
586
+ except (OSError, ValueError, KeyError, RuntimeError) as _exc:
587
+ _logger.error(
588
+ "restore_from_storage: HypothesisBook restore failed: %r. "
589
+ "HypothesisBook will start empty. Run hmctl doctor.",
590
+ _exc,
591
+ )
592
+
593
+ # --- Phase 6: BetaWorldModel (#680) — best-effort, deliberators created lazily ---
594
+ try:
595
+ world_kv_raw = self.storage.get_kv("world_state")
596
+ if world_kv_raw:
597
+ import json as _json
598
+
599
+ _world_kv = _json.loads(world_kv_raw)
600
+ if isinstance(_world_kv, dict) and "beta_world_model" in _world_kv:
601
+ try:
602
+ from hypermind.mind.world_model import BetaWorldModel as _BWM
603
+
604
+ _bwm = _BWM()
605
+ _bwm.import_state(_world_kv["beta_world_model"])
606
+ # Attach to any existing deliberators (best-effort).
607
+ for _agent in self.agents.values():
608
+ _delib = getattr(_agent, "_deliberator", None)
609
+ if _delib is not None and hasattr(_delib, "world_model"):
610
+ _delib.world_model = _bwm
611
+ except Exception as _bwm_exc:
612
+ _logger.error(
613
+ "restore_from_storage: BetaWorldModel import_state failed: %r",
614
+ _bwm_exc,
615
+ )
616
+ except (OSError, ValueError, KeyError, RuntimeError) as _exc:
617
+ _logger.error(
618
+ "restore_from_storage: world_state KV restore failed: %r. "
619
+ "Continuing with empty state. Run hmctl doctor.",
620
+ _exc,
621
+ )
622
+
623
+ # --- Phase 7: Brier calibration (#669) ---
624
+ try:
625
+ _cal_json = self.storage.get_kv("calibration")
626
+ if _cal_json:
627
+ import json as _json
628
+
629
+ _cal_data = _json.loads(_cal_json)
630
+ if isinstance(_cal_data, dict):
631
+ # Restore calibration weights.
632
+ for _kid_hex, _weight in (_cal_data.get("calibration") or {}).items():
633
+ try:
634
+ self.reputation._calibration[bytes.fromhex(_kid_hex)] = float(_weight)
635
+ except Exception:
636
+ pass
637
+ # Restore Brier summaries into the tracker via restore_calibration().
638
+ _bt_summaries = _cal_data.get("brier_summaries") or []
639
+ if _bt_summaries:
640
+ try:
641
+ _bt = self.reputation.brier_tracker
642
+ for _s in _bt_summaries:
643
+ _bt.restore_calibration(
644
+ agent_kid=bytes.fromhex(_s["kid"]),
645
+ topic=str(_s["topic"]),
646
+ brier_mean=float(_s["brier_mean"]),
647
+ n_obs=int(_s["n_obs"]),
648
+ )
649
+ except Exception as _bt_exc:
650
+ _logger.error(
651
+ "restore_from_storage: BrierScoreTracker restore failed: %r",
652
+ _bt_exc,
653
+ )
654
+ except (OSError, ValueError, KeyError, RuntimeError) as _exc:
655
+ _logger.error(
656
+ "restore_from_storage: calibration restore failed: %r. "
657
+ "Continuing with default calibration weights.",
658
+ _exc,
659
+ )
496
660
 
497
661
  def persist_claim(self, stmt: SignedStatement) -> None:
498
662
  """Mirror a sealed claim to durable storage if attached. Best-effort.
@@ -547,13 +711,18 @@ class _NamespaceWorld:
547
711
  def checkpoint_reputation(self) -> None:
548
712
  """Snapshot every Beta posterior to storage. Call before close().
549
713
 
714
+ Acquires the reputation lock before reading _posteriors to prevent
715
+ races with concurrent record_outcome/vouch calls (#764).
716
+
550
717
  See :meth:`persist_claim` for the observability contract.
551
718
  """
552
719
  if self.storage is None:
553
720
  return
721
+ # Acquire the reputation lock before reading _posteriors (#764).
554
722
  rows: list[tuple[bytes, str, float, float, int]] = []
555
- for (kid, topic), p in self.reputation._posteriors.items():
556
- rows.append((kid, topic, p.alpha, p.beta, p.last_update_ms))
723
+ with self.reputation._lock:
724
+ for (kid, topic), p in self.reputation._posteriors.items():
725
+ rows.append((kid, topic, p.alpha, p.beta, p.last_update_ms))
557
726
  try:
558
727
  self.storage.snapshot_reputation(rows)
559
728
  except Exception as exc:
@@ -592,12 +761,80 @@ class _NamespaceWorld:
592
761
  "hypermind_storage_write_failures_total",
593
762
  op="checkpoint_world",
594
763
  )
764
+ # Snapshot Brier calibration data so calibration weights survive restart (#669).
765
+ try:
766
+ import json as _json
767
+
768
+ _cal = getattr(self.reputation, "_calibration", None)
769
+ _bt = getattr(self.reputation, "_brier_tracker", None)
770
+ _cal_snap: dict = {}
771
+ if _cal:
772
+ # Calibration weights: {kid_hex → float}
773
+ _cal_snap["calibration"] = {
774
+ (k.hex() if isinstance(k, (bytes, bytearray)) else k): float(v)
775
+ for k, v in _cal.items()
776
+ }
777
+ if _bt is not None:
778
+ # BrierScoreTracker._history: {(kid_bytes, topic) → list[BrierEntry]}.
779
+ # Serialize as compact per-key summaries (brier_mean + n_obs) so restore
780
+ # can call restore_calibration() without keeping the full observation log.
781
+ _bt_summaries: list[dict] = []
782
+ for (_kid_b, _topic), _entries in getattr(_bt, "_history", {}).items():
783
+ if not _entries:
784
+ continue
785
+ try:
786
+ _mean_b = sum(e.brier_score for e in _entries) / len(_entries)
787
+ _bt_summaries.append(
788
+ {
789
+ "kid": (
790
+ _kid_b.hex()
791
+ if isinstance(_kid_b, (bytes, bytearray))
792
+ else str(_kid_b)
793
+ ),
794
+ "topic": str(_topic),
795
+ "brier_mean": float(_mean_b),
796
+ "n_obs": len(_entries),
797
+ }
798
+ )
799
+ except Exception:
800
+ pass
801
+ if _bt_summaries:
802
+ _cal_snap["brier_summaries"] = _bt_summaries
803
+ if _cal_snap:
804
+ self.storage.set_kv("calibration", _json.dumps(_cal_snap))
805
+ except Exception as exc:
806
+ _logger.warning("checkpoint_reputation: failed to persist calibration data: %r", exc)
807
+ # Snapshot TransparencyService Merkle tree root (#649).
808
+ try:
809
+ import json as _json
810
+
811
+ _ts_root = getattr(self.ts, "root", None)
812
+ _ts_size = getattr(self.ts, "tree_size", None)
813
+ _ts_leaves = getattr(self.ts, "_leaves", None)
814
+ if _ts_root is not None:
815
+ _ts_snap: dict = {
816
+ "root": _ts_root.hex() if isinstance(_ts_root, bytes) else _ts_root
817
+ }
818
+ if _ts_size is not None:
819
+ _ts_snap["tree_size"] = _ts_size
820
+ if _ts_leaves is not None:
821
+ # Store raw leaf bytes (hex-encoded) so they can be replayed.
822
+ _ts_snap["leaves"] = [
823
+ lf.hex() if isinstance(lf, (bytes, bytearray)) else lf for lf in _ts_leaves
824
+ ]
825
+ self.storage.set_kv("ts_merkle", _json.dumps(_ts_snap))
826
+ except Exception as exc:
827
+ _logger.warning(
828
+ "checkpoint_reputation: failed to persist TransparencyService Merkle state: %r",
829
+ exc,
830
+ )
595
831
  # Auto-promote repeated (action, topic) patterns from deliberator work_history
596
832
  # directly into live skills — no human gate. Patterns meeting min_repetitions
597
833
  # get a generated .md file written to the skill store and are hot-loaded into
598
834
  # the registry immediately so subsequent ticks can invoke them by name.
599
835
  try:
600
836
  import hypermind.mind.skills as _skills_mod
837
+
601
838
  _history: list[dict] = []
602
839
  for _agent in self.agents.values():
603
840
  _delib = getattr(_agent, "_deliberator", None)
@@ -617,6 +854,18 @@ class _NamespaceWorld:
617
854
  f"Skill auto-promoted from work history: {_sid}",
618
855
  author="system",
619
856
  )
857
+ # #810: emit observability event for each promoted skill so
858
+ # monitors and tests can observe auto_promote firing.
859
+ for _sid in _promoted:
860
+ try:
861
+ self.recorder.emit(
862
+ namespace=self.namespace,
863
+ agent_id="world",
864
+ event_type="skill_promoted",
865
+ skill_id=_sid,
866
+ )
867
+ except Exception:
868
+ pass # never let recorder failure abort evolution
620
869
  except Exception:
621
870
  pass # evolution is best-effort, never block checkpoint
622
871
 
@@ -1310,13 +1559,17 @@ class HyperMindAgent:
1310
1559
  if not self._world.agents:
1311
1560
  # Last agent out — flush reputation before dropping the world
1312
1561
  # when non-default posteriors exist (avoids no-op writes).
1562
+ # checkpoint_reputation() does synchronous file I/O; wrap in
1563
+ # asyncio.to_thread() so we don't block the event loop (#682).
1313
1564
  if self._world.storage is not None:
1314
1565
  rep = self._world.reputation
1315
1566
  if getattr(rep, "_posteriors", None):
1316
- self._world.checkpoint_reputation()
1567
+ _world_ref = self._world
1568
+ await asyncio.to_thread(_world_ref.checkpoint_reputation)
1317
1569
  # Stop the proactive decay background task (#519).
1318
1570
  self._world.stop_decay_task()
1319
- _NAMESPACE_REGISTRY.pop(bytes(self._world.namespace_id), None)
1571
+ with _NAMESPACE_REGISTRY_LOCK:
1572
+ _NAMESPACE_REGISTRY.pop(bytes(self._world.namespace_id), None)
1320
1573
  self._closed = True
1321
1574
 
1322
1575
  # ---- placement (T5-02) ---------------------------------------------
@@ -1384,6 +1637,22 @@ class HyperMindAgent:
1384
1637
 
1385
1638
  self._require_cap("publish_claim", topic=topic)
1386
1639
 
1640
+ # #733: Mediator role (publishes_primary=False) must not publish primary claims.
1641
+ # Synthesis and oracle_resolution claim types are permitted; raw primary claims
1642
+ # are the footgun that this gate closes.
1643
+ _PRIMARY_BLOCKED_ROLES: frozenset[str] = frozenset({"mediator"})
1644
+ if self.role in _PRIMARY_BLOCKED_ROLES and claim_type not in (
1645
+ "synthesis",
1646
+ "oracle_resolution",
1647
+ ):
1648
+ from hypermind.errors import AuthError as _AuthError
1649
+
1650
+ raise _AuthError(
1651
+ f"agent role {self.role!r} cannot publish primary claims "
1652
+ f"(claim_type={claim_type!r}); only synthesis claims are permitted.",
1653
+ failed_caveat="claim_type",
1654
+ )
1655
+
1387
1656
  # MIND-009: validate leverage_factor if present — must be in [0.0, 1.0].
1388
1657
  if isinstance(payload, dict) and "leverage_factor" in payload:
1389
1658
  lf = payload["leverage_factor"]
@@ -2926,9 +3195,16 @@ class HyperMindAgent:
2926
3195
  if self._world is None:
2927
3196
  raise RuntimeError("record_panel_vote() requires a world")
2928
3197
  topic = topic or (self.rooms[0] if self.rooms else "default")
2929
- self._world.panel_votes.setdefault(claim_kid, []).append(
2930
- (bytes(voter_kid), bool(vote), topic)
2931
- )
3198
+ pv = self._world.panel_votes
3199
+ if claim_kid not in pv:
3200
+ # Evict oldest entry when cap is reached (LRU — OrderedDict insertion order).
3201
+ while len(pv) >= _PANEL_VOTES_MAX_ENTRIES:
3202
+ pv.popitem(last=False)
3203
+ pv[claim_kid] = []
3204
+ else:
3205
+ # Move to end so recently-touched entries survive eviction longest.
3206
+ pv.move_to_end(claim_kid)
3207
+ pv[claim_kid].append((bytes(voter_kid), bool(vote), topic))
2932
3208
 
2933
3209
  async def oracle_resolve(
2934
3210
  self,
@@ -3034,9 +3310,15 @@ class HyperMindAgent:
3034
3310
  newly_credited.append((voter, vote, vote_topic))
3035
3311
  already_set.add(key)
3036
3312
  if newly_credited:
3037
- self._world.panel_votes.setdefault(b"_resolved:" + claim_kid, []).extend(
3038
- newly_credited
3039
- )
3313
+ _resolved_key = b"_resolved:" + claim_kid
3314
+ pv = self._world.panel_votes
3315
+ if _resolved_key not in pv:
3316
+ while len(pv) >= _PANEL_VOTES_MAX_ENTRIES:
3317
+ pv.popitem(last=False)
3318
+ pv[_resolved_key] = []
3319
+ else:
3320
+ pv.move_to_end(_resolved_key)
3321
+ pv[_resolved_key].extend(newly_credited)
3040
3322
 
3041
3323
  # Spec §20 / HypothesisBook lifecycle: oracle verdict is authoritative —
3042
3324
  # transition the hypothesis riding on this claim from 'contested' (or any
@@ -3103,7 +3385,16 @@ class HyperMindAgent:
3103
3385
  # _verify_witness_cosign always validates with ALG_ED25519, so
3104
3386
  # the witness keypair must be a pure Ed25519 key regardless of
3105
3387
  # the oracle's own (potentially composite) signing algorithm.
3106
- _ed_witness_kp = Keypair.from_seed(_oracle_agent.keypair.secret_bytes[:32])
3388
+ # Extract exactly the first 32 bytes (Ed25519 seed) and validate
3389
+ # that they are present before passing to from_seed (#766).
3390
+ _oracle_secret = _oracle_agent.keypair.secret_bytes
3391
+ if len(_oracle_secret) < 32:
3392
+ raise ValueError(
3393
+ f"oracle_resolve: keypair secret_bytes is only "
3394
+ f"{len(_oracle_secret)} bytes; expected at least 32 "
3395
+ f"(Ed25519 seed). Key material is non-standard."
3396
+ )
3397
+ _ed_witness_kp = Keypair.from_seed(_oracle_secret[:32])
3107
3398
  _cosign = make_witness_cosign(
3108
3399
  _ed_witness_kp,
3109
3400
  dispute_id=_dispute_id,
@@ -3794,13 +4085,33 @@ class HyperMindAgent:
3794
4085
  if self.cap_token is None:
3795
4086
  return
3796
4087
 
3797
- self.cap_token.authorize(
3798
- action=action,
3799
- topic=topic or "",
3800
- tool=tool or "",
3801
- revocation_store=self._world.revocation_store if self._world else None,
3802
- hlc=(self._hlc.logical_ms, self._hlc.counter),
3803
- )
4088
+ # For delegated tokens (parent_sig != b""), verify the full chain first,
4089
+ # then call authorize() with require_chain=False (#675/#771).
4090
+ if self.cap_token.parent_sig != b"":
4091
+ if not self.cap_token.verify_chain_full(
4092
+ revocation_store=self._world.revocation_store if self._world else None,
4093
+ hlc=(self._hlc.logical_ms, self._hlc.counter),
4094
+ ):
4095
+ raise AuthError(
4096
+ "delegated capability chain verification failed",
4097
+ failed_caveat="signature",
4098
+ )
4099
+ self.cap_token.authorize(
4100
+ action=action,
4101
+ topic=topic or "",
4102
+ tool=tool or "",
4103
+ revocation_store=self._world.revocation_store if self._world else None,
4104
+ hlc=(self._hlc.logical_ms, self._hlc.counter),
4105
+ require_chain=False,
4106
+ )
4107
+ else:
4108
+ self.cap_token.authorize(
4109
+ action=action,
4110
+ topic=topic or "",
4111
+ tool=tool or "",
4112
+ revocation_store=self._world.revocation_store if self._world else None,
4113
+ hlc=(self._hlc.logical_ms, self._hlc.counter),
4114
+ )
3804
4115
 
3805
4116
  # P1-03: enforce rate caveat if present on this token.
3806
4117