hypermind 0.22.0__tar.gz → 0.24.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {hypermind-0.22.0 → hypermind-0.24.0}/CHANGELOG.md +38 -1
- {hypermind-0.22.0 → hypermind-0.24.0}/PKG-INFO +7 -3
- {hypermind-0.22.0 → hypermind-0.24.0}/README.md +6 -2
- {hypermind-0.22.0 → hypermind-0.24.0}/examples/README.md +1 -0
- hypermind-0.24.0/examples/org_distributed.py +74 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/pyproject.toml +1 -1
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hypermind/__init__.py +1 -1
- hypermind-0.24.0/src/hypermind/orgs/distributed/__init__.py +135 -0
- hypermind-0.24.0/src/hypermind/orgs/distributed/__main__.py +110 -0
- hypermind-0.24.0/src/hypermind/orgs/distributed/coordinator.py +251 -0
- hypermind-0.24.0/src/hypermind/orgs/distributed/planning.py +170 -0
- hypermind-0.24.0/src/hypermind/orgs/distributed/protocol.py +47 -0
- hypermind-0.24.0/src/hypermind/orgs/distributed/provision.py +57 -0
- hypermind-0.24.0/src/hypermind/orgs/distributed/serde.py +71 -0
- hypermind-0.24.0/src/hypermind/orgs/distributed/worker.py +119 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hypermind/orgs/sim.py +41 -0
- hypermind-0.24.0/tests/orgs/test_distributed.py +566 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/.editorconfig +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/.gitattributes +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/.github/FUNDING.yml +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/.github/renovate.json +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/.github/workflows/check-license.yml +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/.github/workflows/code-review-pr.yml +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/.github/workflows/hotfix-security.yml +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/.github/workflows/issue-auto-fix.yml +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/.github/workflows/issue-triage.yml +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/.github/workflows/pr-standards.yml +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/.github/workflows/quality.yml +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/.github/workflows/release.yml +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/.github/workflows/security.yml +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/.github/workflows/stale.yml +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/.github/workflows-disabled/branch-flow-check.yml +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/.github/workflows-disabled/chaos.yml +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/.github/workflows-disabled/check-license.yml +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/.github/workflows-disabled/ci.yml +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/.github/workflows-disabled/code-freeze.yml +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/.github/workflows-disabled/code-review-pr.yml +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/.github/workflows-disabled/code-review.yml +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/.github/workflows-disabled/codeql.yml +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/.github/workflows-disabled/dco.yml +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/.github/workflows-disabled/docs-to-wiki.yml +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/.github/workflows-disabled/docs.yml +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/.github/workflows-disabled/formal.yml +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/.github/workflows-disabled/fuzz.yml +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/.github/workflows-disabled/hotfix-security.yml +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/.github/workflows-disabled/issue-auto-fix.yml +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/.github/workflows-disabled/issue-triage.yml +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/.github/workflows-disabled/merge-comment.yml +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/.github/workflows-disabled/pip-audit.yml +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/.github/workflows-disabled/pr-standards.yml +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/.github/workflows-disabled/quality.yml +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/.github/workflows-disabled/release.yml +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/.github/workflows-disabled/sbom.yml +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/.github/workflows-disabled/scorecard.yml +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/.github/workflows-disabled/security.yml +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/.github/workflows-disabled/sprint-retro.yml +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/.github/workflows-disabled/stale.yml +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/.gitignore +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/.pre-commit-config.yaml +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/.tool-versions +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/CHARTER.md +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/CODEOWNERS +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/CODE_OF_CONDUCT.md +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/CONTRIBUTING.md +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/GOVERNANCE.md +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/LICENSE +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/MAINTAINERS.md +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/Makefile +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/RELATA_COMPATIBILITY.md +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/RELATA_INTEGRATION_PLAN.md +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/RELATA_STORAGE.md +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/ROADMAP.md +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/SECURITY.md +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/bench/README.md +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/bench/__init__.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/bench/baselines/v0.6.json +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/bench/bench_consult.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/bench/bench_dispute.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/bench/bench_publish.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/bench/coordination/README.md +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/bench/coordination/__init__.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/bench/coordination/baselines/v0.10.json +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/bench/coordination/bench_rfp_latency.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/bench/coordination/bench_task_throughput.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/bench/coordination/bench_workflow_replay.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/bench/coordination/run_all.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/bench/question_sets/geopolitics_q20.json +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/bench/question_sets/msft_outlook_q10.json +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/bench/run_bench.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/chaos/README.md +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/chaos/__init__.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/chaos/p1_partition_recovery.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/chaos/p2_witness_compromise.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/chaos/p3_key_rotation.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/chaos/p4_dispute_backlog.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/chaos/p5_wire_cutover.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/chaos/p6_quorum_loss.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/chaos/p7_clock_skew.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/chaos/p8_recorder_outage.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/chaos/run_chaos.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/deploy/Dockerfile +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/deploy/README.md +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/deploy/docker-compose.yml +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/deploy/grafana/dashboards/hypermind-coordination.json +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/deploy/grafana/dashboards/hypermind-v06.json +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/deploy/grafana/dashboards/hypermind.json +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/deploy/grafana/provisioning/dashboards/hypermind.yml +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/deploy/grafana/provisioning/datasources/prometheus.yml +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/deploy/k8s/hypermind-deployment.yaml +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/deploy/prometheus/prometheus.yml +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/deploy/systemd/hypermind.service +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/docs/README.md +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/docs/SIMLAB.md +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/docs/SIMLAB_AUDIT_PLAN.md +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/docs/_meta/glossary.md +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/docs/_meta/provenance.md +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/docs/_meta/public-surface.md +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/docs/_meta/standards-map.md +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/docs/api/agent.md +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/docs/api/agent_card.md +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/docs/api/capability.md +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/docs/api/crypto.md +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/docs/api/dispute.md +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/docs/api/knowledge.md +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/docs/api/observability.md +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/docs/api/simlab-openapi.yaml +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/docs/api/sync.md +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/docs/api/tasks.md +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/docs/api/transport.md +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/docs/api/wire.md +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/docs/architecture-v0.6.md +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/docs/assets/hero-swarm.svg +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/docs/audit/findings.md +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/docs/audit/scope.md +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/docs/concepts.md +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/docs/conformance/authority.md +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/docs/conformance/bake-off-report.md +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/docs/conformance/mark-policy.md +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/docs/decide/01-disqualifiers.md +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/docs/decide/02-alternatives.md +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/docs/decide/03-incentive-aligned-cases.md +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/docs/decide/04-use-cases.md +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/docs/design/01-architecture.md +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/docs/design/02-traces.md +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/docs/design/03-failure-modes.md +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/docs/design/04-poisoning-defenses.md +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/docs/design/05-deployment-topology.md +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/docs/feature-matrix.md +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/docs/getting-started.md +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/docs/governance/cna.md +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/docs/governance/foundation-evaluation.md +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/docs/hypermind-protocol-spec.md +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/docs/index.md +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/docs/legal/export-classification.md +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/docs/lts.md +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/docs/migrate/v0.x-to-v1.0.md +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/docs/migration/v0.7.md +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/docs/onboarding/00-prerequisites.md +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/docs/onboarding/README.md +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/docs/onboarding/after.md +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/docs/onboarding/exercises/e01-run-the-loop.md +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/docs/onboarding/exercises/e02-draw-the-architecture.md +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/docs/onboarding/exercises/e03-trace-a-claim.md +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/docs/onboarding/exercises/e04-read-a-spec-section.md +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/docs/onboarding/exercises/e05-break-it.md +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/docs/onboarding/exercises/e06-add-a-test.md +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/docs/onboarding/exercises/e07-first-pr.md +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/docs/onboarding/glossary.md +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/docs/onboarding/topics/00-what-is-hypermind.md +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/docs/onboarding/topics/01-agents-and-swarms.md +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/docs/onboarding/topics/02-architecture-tour.md +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/docs/onboarding/topics/03-spec-literacy.md +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/docs/onboarding/topics/04-cryptography.md +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/docs/onboarding/topics/05-cbor-cose.md +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/docs/onboarding/topics/06-transparency-logs.md +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/docs/onboarding/topics/07-distributed-systems.md +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/docs/onboarding/topics/08-async-python.md +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/docs/onboarding/topics/09-security-mindset.md +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/docs/onboarding/week-1-foundations.md +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/docs/onboarding/week-2-deep-dive.md +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/docs/operate/01-deployment.md +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/docs/operate/02-runbook.md +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/docs/operate/03-resource-budget.md +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/docs/operate/backup-restore.md +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/docs/operate/data-residency.md +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/docs/operate/key-rotation.md +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/docs/operate/runbooks/dispute-backlog-drain.md +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/docs/operate/runbooks/key-rotation.md +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/docs/operate/runbooks/kms-rotation.md +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/docs/operate/runbooks/multi-host-deploy.md +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/docs/operate/runbooks/partition-heal.md +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/docs/operate/runbooks/quorum-loss.md +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/docs/operate/runbooks/rfp-dispute-triage.md +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/docs/operate/runbooks/wire-cutover.md +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/docs/operate/runbooks/witness-compromise.md +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/docs/operate/runbooks/workflow-replay.md +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/docs/operate/slo.md +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/docs/paper/00-patent.md +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/docs/paper/hypermind-paper-draft.md +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/docs/paper/hypermind-paper.docx +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/docs/paper/hypermind-paper.tex +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/docs/release-notes/v1.0-checklist.md +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/docs/release-notes/v1.0.0.md +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/docs/security/threat-model.md +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/docs/simlab/modes.md +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/docs/simulations.md +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/docs/spec/00-overview.md +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/docs/spec/01-transport.md +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/docs/spec/02-cryptography.md +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/docs/spec/03-messages.md +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/docs/spec/04-knowledge-model.md +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/docs/spec/05-routing.md +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/docs/spec/06-conformance.md +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/docs/spec/07-trust-access-layer.md +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/docs/spec/08-onboarding-contract.md +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/docs/spec/09-agent-sdk.md +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/docs/spec/10-disputes.md +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/docs/spec/11-witness-transparency.md +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/docs/spec/12-governance.md +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/docs/spec/13-observability.md +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/docs/spec/14-threat-model.md +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/docs/spec/15-living-transmission.md +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/docs/spec/16-reference-comparisons.md +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/docs/spec/17-upgrade-v1.md +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/docs/spec/18-revocation.md +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/docs/spec/19-autonomy-contract.md +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/docs/spec/20-swarm-intelligence.md +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/docs/spec/21-belief-state.md +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/docs/spec/21-private-namespaces.md +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/docs/spec/22-transport-mtls.md +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/docs/spec/23-envelope-encryption.md +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/docs/spec/24-namespace-identity.md +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/docs/spec/25-capability-extensions.md +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/docs/spec/26-workflow.md +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/docs/spec/27-contract-net.md +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/docs/spec/28-distributed-trace.md +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/docs/spec/_meta/gaps-closed.md +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/docs/spec/appendix-N-calibration.md +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/docs/spec/appendix-TLA.md +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/docs/spec/appendix-z.md +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/docs/spec/errata.md +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/docs/spec/index.md +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/docs/spec/invariants.md +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/docs/spec/normative-trace.md +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/docs/supply-chain/sbom.md +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/docs/supply-chain/slsa.md +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/docs/supply-chain/verify-self.md +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/docs/sustainability.md +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/examples/01_hello_world.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/examples/02_two_agents_dispute.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/examples/03_consult_panel.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/examples/04_oracle_resolve.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/examples/05_consult_to_synthesis.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/examples/06_hybrid_pq.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/examples/07_frost_threshold.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/examples/08_ramp_and_diagnostics.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/examples/09_audit_export_chain.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/examples/10_autonomous_agent.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/examples/11_swarm_deliberation.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/examples/12_swarm_iq_scorecard.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/examples/13_role_specialisation.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/examples/14_active_learning_loop.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/examples/16_wire_message.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/examples/17_tool_delegation.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/examples/18_custom_responder.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/examples/19_governance.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/examples/20_conformance_check.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/examples/21_revocation.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/examples/22_agent_card.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/examples/23_task_delegation.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/examples/24_mcp_tool_call.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/examples/25_swarm_trace.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/examples/coordination/01_durable_workflow.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/examples/coordination/02_contract_net.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/examples/coordination/03_belief_and_plan.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/examples/coordination/__init__.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/examples/coordination/usecases/__init__.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/examples/coordination/usecases/ai_01_fed_benchmark.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/examples/coordination/usecases/ai_alignment_redteam.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/examples/coordination/usecases/cy_05_ir_swarm.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/examples/coordination/usecases/cy_11_ransomware_intel.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/examples/coordination/usecases/ed_credentials.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/examples/coordination/usecases/en_grid_coordinate.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/examples/coordination/usecases/fi_04_bsa_314b.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/examples/coordination/usecases/fi_22_ma_dataroom.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/examples/coordination/usecases/gv_01_intel_sharing.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/examples/coordination/usecases/gv_21_red_team.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/examples/coordination/usecases/hc_06_rare_disease.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/examples/coordination/usecases/hc_21_fed_learning.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/examples/coordination/usecases/lg_ediscovery.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/examples/coordination/usecases/mf_supply_chain.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/examples/e2e_many_agents.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/examples/full_e2e_demo.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/examples/lifecycle.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/examples/org_university.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/examples/scenario_aar.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/examples/scenario_backtest.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/examples/scenario_capability_attenuation.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/examples/scenario_conformance.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/examples/scenario_crisis_tabletop.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/examples/scenario_cross_namespace_federation.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/examples/scenario_decision_tournament.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/examples/scenario_dispute_lifecycle_async.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/examples/scenario_evaluation.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/examples/scenario_geopolitical_crisis.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/examples/scenario_geopolitical_traced.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/examples/scenario_governance_committee.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/examples/scenario_information_pipeline.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/examples/scenario_learning_loop.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/examples/scenario_namespace_trust.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/examples/scenario_persona_panel.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/examples/scenario_private_namespace.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/examples/scenario_red_team.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/examples/scenario_regulated_consortium.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/examples/scenario_threat_intel.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/examples/scenario_vouch_chain.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/examples/scenario_what_if_tree.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/examples/serve_api.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/examples/two_node_tcp.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/formal/README.md +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/formal/hax-rust/README.md +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/formal/hax-rust/scope.md +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/formal/proverif/dispute_fsm.pv +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/formal/proverif/dispute_liveness.pv +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/formal/tamarin/capability_chain.spthy +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/formal/tamarin/dispute_fsm.spthy +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/formal/tamarin/signed_statement.spthy +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/formal/tamarin/wire_security.spthy +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/fuzz/README.md +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/fuzz/__init__.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/fuzz/fuzz_agent_card.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/fuzz/fuzz_anti_entropy.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/fuzz/fuzz_capability.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/fuzz/fuzz_dispute.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/fuzz/fuzz_inclusion_proof.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/fuzz/fuzz_wire.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/fuzz/seed_corpus.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/harness/__init__.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/harness/__main__.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/harness/assertions.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/harness/fixtures.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/harness/report.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/harness/roles.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/harness/runner.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/harness/scenario.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/harness/scenarios/__init__.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/harness/scenarios/autonomous_evolution.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/harness/scenarios/swarm_iq_benchmark.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/harness/scenarios/threat_intel.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/mkdocs.yml +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/reference_verifier/__init__.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/reference_verifier/schemas/encrypted_statement.cddl +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/reference_verifier/schemas/namespace_accept.cddl +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/reference_verifier/schemas/namespace_create.cddl +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/reference_verifier/schemas/namespace_founding_attest.cddl +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/reference_verifier/schemas/namespace_invite.cddl +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/reference_verifier/schemas/wire-v0.1.cddl +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/reference_verifier/verifier.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/review/__init__.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/review/__main__.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/review/agents.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/review/models.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/review/runner.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hmctl/__init__.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hmctl/cli.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hypermind/_deprecations.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hypermind/agent.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hypermind/agent_card.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hypermind/api/__init__.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hypermind/api/app.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hypermind/capability.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hypermind/consult.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hypermind/consult_bias.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hypermind/contract_net.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hypermind/crypto/__init__.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hypermind/crypto/cose_encrypt.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hypermind/crypto/dkg.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hypermind/crypto/domain.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hypermind/crypto/frost.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hypermind/crypto/hashing.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hypermind/crypto/hlc.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hypermind/crypto/hpke.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hypermind/crypto/kms.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hypermind/crypto/kms_backends/__init__.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hypermind/crypto/kms_backends/aws.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hypermind/crypto/kms_backends/azure.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hypermind/crypto/kms_backends/gcp.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hypermind/crypto/kms_backends/vault.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hypermind/crypto/namespace_root.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hypermind/crypto/pq.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hypermind/crypto/room_epoch.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hypermind/crypto/signing.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hypermind/deliberation.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hypermind/did_web.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hypermind/dispute.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hypermind/errors.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hypermind/eval/__init__.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hypermind/eval/calibration.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hypermind/eval/comparison.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hypermind/eval/replay.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hypermind/eval/swarm_iq.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hypermind/knowledge/__init__.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hypermind/knowledge/citation_graph.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hypermind/knowledge/correlated_agreement.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hypermind/knowledge/embedding_registry.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hypermind/knowledge/kernel_store.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hypermind/knowledge/rekor.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hypermind/knowledge/reputation.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hypermind/knowledge/swarm_memory.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hypermind/knowledge/transparency.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hypermind/mcp/__init__.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hypermind/mcp/bridge.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hypermind/mcp/client.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hypermind/mcp/provenance.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hypermind/mcp/relata_tools.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hypermind/mcp/server.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hypermind/mcp/transport.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hypermind/mind/__init__.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hypermind/mind/active.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hypermind/mind/belief.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hypermind/mind/deliberator.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hypermind/mind/diversity.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hypermind/mind/evolve.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hypermind/mind/federation.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hypermind/mind/goals.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hypermind/mind/integration.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hypermind/mind/mediator.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hypermind/mind/memory_store.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hypermind/mind/policy.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hypermind/mind/records.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hypermind/mind/roles.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hypermind/mind/sybil_guard.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hypermind/mind/world_model.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hypermind/namespace.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hypermind/namespace_policy.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hypermind/observability/__init__.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hypermind/observability/asgi.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hypermind/observability/cost.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hypermind/observability/otel_export.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hypermind/observability/recorder.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hypermind/observability/swarm_trace.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hypermind/orgs/__init__.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hypermind/orgs/context.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hypermind/orgs/deliberate.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hypermind/orgs/experiment.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hypermind/orgs/groundtruth.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hypermind/orgs/interaction.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hypermind/orgs/intervention.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hypermind/orgs/metrics.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hypermind/orgs/model.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hypermind/orgs/quality.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hypermind/orgs/query.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hypermind/orgs/receipt.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hypermind/orgs/report.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hypermind/orgs/retrieval.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hypermind/orgs/stream.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hypermind/orgs/templates/__init__.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hypermind/orgs/think.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hypermind/orgs/tools.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hypermind/pin_policy.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hypermind/py.typed +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hypermind/responders/__init__.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hypermind/responders/anthropic.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hypermind/responders/base.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hypermind/responders/openai.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hypermind/responders/router.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hypermind/responders/structured.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hypermind/responders/tools.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hypermind/revocation.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hypermind/rule_ids.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hypermind/schemas/encrypted_statement.cddl +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hypermind/schemas/namespace_accept.cddl +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hypermind/schemas/namespace_create.cddl +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hypermind/schemas/namespace_founding_attest.cddl +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hypermind/schemas/namespace_invite.cddl +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hypermind/schemas/wire-v0.1.cddl +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hypermind/simlab/__init__.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hypermind/simlab/_persona_registry.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hypermind/simlab/_scenario_impl.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hypermind/simlab/app.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hypermind/simlab/backends/__init__.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hypermind/simlab/backends/anchor.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hypermind/simlab/backends/local.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hypermind/simlab/backends/server.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hypermind/simlab/cli_command.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hypermind/simlab/config.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hypermind/simlab/deployment.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hypermind/simlab/knowledge.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hypermind/simlab/learning.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hypermind/simlab/modes/__init__.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hypermind/simlab/modes/_eval_real_llm.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hypermind/simlab/modes/aar.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hypermind/simlab/modes/backtest.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hypermind/simlab/modes/binary_forecast.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hypermind/simlab/modes/conformance.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hypermind/simlab/modes/evaluation.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hypermind/simlab/modes/governance.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hypermind/simlab/modes/redteam.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hypermind/simlab/modes/tabletop.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hypermind/simlab/modes/tournament.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hypermind/simlab/modes/whatif.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hypermind/simlab/namespace.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hypermind/simlab/personas.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hypermind/simlab/prompt_generator.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hypermind/simlab/question_sets/geopolitics_q20.json +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hypermind/simlab/question_sets/governance_q5.json +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hypermind/simlab/question_sets/msft_outlook_q10.json +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hypermind/simlab/question_sets/whatif_q3.json +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hypermind/simlab/registry.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hypermind/simlab/runner.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hypermind/simlab/scenario.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hypermind/simlab/swarms.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hypermind/simlab/tool_handlers/__init__.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hypermind/simlab/tool_handlers/alpha_vantage.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hypermind/simlab/tool_handlers/brave.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hypermind/simlab/tool_handlers/newsapi.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hypermind/simlab/tool_handlers/openweather.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hypermind/simlab/tool_handlers/pinecone.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hypermind/simlab/tool_handlers/qdrant.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hypermind/simlab/tool_handlers/query_knowledge_base.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hypermind/simlab/tool_handlers/relata_recall.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hypermind/simlab/tool_handlers/retrieve_document.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hypermind/simlab/tool_handlers/serper.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hypermind/simlab/tool_handlers/tavily.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hypermind/simlab/tool_handlers/weaviate.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hypermind/simlab/tool_handlers/wikipedia.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hypermind/simlab/tool_handlers/wolfram.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hypermind/simlab/tool_handlers/yahoo_finance.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hypermind/simlab/tool_registry.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hypermind/simlab/topic_adapter.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hypermind/simlab/topic_questions.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hypermind/storage/__init__.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hypermind/storage/backend.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hypermind/storage/relata.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hypermind/storage/sqlite.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hypermind/sync.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hypermind/tal.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hypermind/tasks.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hypermind/testing.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hypermind/tools/__init__.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hypermind/tools/registry.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hypermind/transport/__init__.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hypermind/transport/anti_entropy.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hypermind/transport/bus.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hypermind/transport/knows_delta.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hypermind/transport/libp2p.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hypermind/transport/placement.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hypermind/transport/tcp.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hypermind/transport/tls_profile.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hypermind/types.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hypermind/uncertainty.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hypermind/wire.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hypermind/workflow/__init__.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hypermind/workflow/engine.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hypermind/workflow/plan.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/src/hypermind/workflow/repair.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/storage-backend-requirements.md +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/__init__.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/api/__init__.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/api/test_eval_endpoints.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/api/test_events_stream.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/api/test_management_app.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/chaos/__init__.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/chaos/test_gossip_amplification.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/chaos/test_kill_agent_during_rfp.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/chaos/test_partition_during_workflow.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/chaos/test_slow_consumer_backpressure.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/chaos/test_slow_peer.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/conformance/__init__.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/conformance/generate_vectors.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/conformance/vectors/SIGNING.md +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/conformance/vectors/agent-card-01.json +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/conformance/vectors/agent-card-02.json +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/conformance/vectors/capability-01.json +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/conformance/vectors/capability-02.json +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/conformance/vectors/capability-03.json +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/conformance/vectors/dispute-01.json +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/conformance/vectors/dispute-02.json +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/conformance/vectors/dispute-03.json +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/conformance/vectors/dispute-04.json +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/conformance/vectors/dispute-05.json +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/conformance/vectors/frost-01.json +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/conformance/vectors/frost-02.json +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/conformance/vectors/frost-03.json +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/conformance/vectors/knows-delta-01.json +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/conformance/vectors/knows-delta-02.json +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/conformance/vectors/mcp-prov-01.json +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/conformance/vectors/mcp-prov-02.json +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/conformance/vectors/merkle-01.json +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/conformance/vectors/merkle-02.json +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/conformance/vectors/merkle-03.json +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/conformance/vectors/merkle-04.json +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/conformance/vectors/rep-decay-01.json +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/conformance/vectors/task-01.json +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/conformance/vectors/task-02.json +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/conformance/vectors/trace-01.json +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/conformance/vectors/trace-02.json +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/conformance/vectors/wire-envelope-01.json +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/conformance/vectors/wire-envelope-02.json +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/conformance/vectors/wire-envelope-03.json +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/conformance/vectors/wire-envelope-04.json +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/conformance/vectors/wire-envelope-05.json +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/conftest.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/fake_kms.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/harness/__init__.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/harness/conftest.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/harness/test_assertion_library.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/harness/test_runner_lifecycle.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/harness/test_threat_intel_harness.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/integration/__init__.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/integration/test_kms_aws.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/integration/test_kms_azure.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/integration/test_kms_gcp.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/integration/test_kms_vault.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/integration/test_relata_server.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/orgs/_fakes.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/orgs/test_adversarial.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/orgs/test_concurrency.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/orgs/test_context.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/orgs/test_convergence.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/orgs/test_deliberator.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/orgs/test_embeddings.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/orgs/test_experiment.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/orgs/test_graph_retrieval.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/orgs/test_groundtruth.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/orgs/test_hybrid_retriever.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/orgs/test_interaction.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/orgs/test_intervention.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/orgs/test_lightweight.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/orgs/test_metrics.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/orgs/test_model.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/orgs/test_ner.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/orgs/test_quality.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/orgs/test_query.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/orgs/test_rag.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/orgs/test_receipt.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/orgs/test_report.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/orgs/test_scale.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/orgs/test_sim.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/orgs/test_stream.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/orgs/test_templates.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/orgs/test_think.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/orgs/test_tool_traces.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/orgs/test_tools.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/responders/__init__.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/responders/test_responders.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/responders/test_router.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/responders/test_structured_response.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/responders/test_tools.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/review/__init__.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/review/test_agents_parser.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/review/test_models.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/review/test_runner.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/simlab/__init__.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/simlab/conftest.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/simlab/test_app_endpoints.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/simlab/test_knowledge.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/simlab/test_knowledge_reuse.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/simlab/test_modes_aar.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/simlab/test_modes_backtest.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/simlab/test_modes_conformance.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/simlab/test_modes_evaluation.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/simlab/test_modes_governance.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/simlab/test_modes_redteam.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/simlab/test_modes_tabletop.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/simlab/test_modes_tournament.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/simlab/test_modes_whatif.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/simlab/test_personas.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/simlab/test_personas_endpoints.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/simlab/test_recorder_scoping.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/simlab/test_registry.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/simlab/test_resolve_outcomes.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/simlab/test_responder_timeout.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/simlab/test_runner.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/simlab/test_swarms.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/storage/__init__.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/storage/test_relata_backend.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/storage/test_sqlite_backend.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/test_active_multi_step.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/test_agent_card.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/test_agent_e2e.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/test_agent_edge.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/test_anti_entropy.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/test_anti_entropy_multiround.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/test_anti_entropy_selfheal.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/test_appendix_z_conformance.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/test_appendix_z_vectors.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/test_arg_dag_edge_types.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/test_backpressure.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/test_belief_revision.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/test_bias_detector.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/test_block_reason.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/test_calibration.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/test_capability.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/test_capability_canonical.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/test_capability_chain.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/test_capability_edge.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/test_capability_enforcement.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/test_capability_namespace_caveat.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/test_capability_revocation.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/test_citation_graph.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/test_cli.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/test_cli_interop.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/test_composite_lamps_prefix.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/test_consult.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/test_consult_stream.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/test_consult_stream_t4.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/test_contract_net_disputed_award.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/test_contract_net_frost_award.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/test_contract_net_happy.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/test_contract_net_reputation_scoring.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/test_contract_net_sybil_filter.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/test_correlated_agreement.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/test_cose_encrypt_roundtrip.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/test_cost_tracker.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/test_cross_namespace_consult.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/test_crypto.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/test_deliberation.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/test_deliberator_cap.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/test_deliberator_observe.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/test_deprecation_registry.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/test_determinism_corpus.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/test_dispute.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/test_dispute_fsm_full.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/test_dispute_mediate.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/test_dispute_quorum.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/test_dissent.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/test_diversity_quorum.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/test_dkg.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/test_embedding_registry.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/test_eval_comparison.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/test_examples_runnable.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/test_final_coverage.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/test_frost.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/test_frost_edge.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/test_frost_hedged_nonces.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/test_frost_persistence.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/test_frost_transcript_store_swap.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/test_hlc_clock_source.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/test_hpke_vectors.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/test_info_gain_routing.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/test_kernel_store.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/test_kms_backends.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/test_kms_fake.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/test_knows_delta.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/test_lamps_oid_canonical.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/test_last_lines.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/test_libp2p_peer_id.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/test_libp2p_scaffold.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/test_libp2p_stub.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/test_mcp_bridge.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/test_mcp_provenance.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/test_mcp_tools_list.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/test_mcp_transport.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/test_merkle_transparency.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/test_mind_active.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/test_mind_deliberator.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/test_mind_diversity_sybil_mediator.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/test_mind_evolve.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/test_mind_goals_policy.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/test_mind_records.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/test_mind_roles.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/test_mind_world_model.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/test_misc_edge.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/test_mtls_profile.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/test_namespace_lifecycle.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/test_namespace_policy.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/test_namespace_policy_acl.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/test_observability_asgi.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/test_observability_otel.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/test_open_factory.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/test_oracle_backprop.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/test_otel_export.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/test_pin_policy.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/test_placement_consistent_hash.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/test_placement_hint.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/test_plan_dag.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/test_plan_repair.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/test_portable_inclusion_proof.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/test_pq_default.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/test_pq_dual_vendor.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/test_pq_signing.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/test_priv_ns_conformance_coverage.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/test_property_based.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/test_protocol_version.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/test_public_surface_v05.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/test_pursue_workflow.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/test_rate_caveat.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/test_recorder_bounded.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/test_recorder_tail.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/test_reference_verifier_v2.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/test_rekor_client.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/test_rekor_downgrade.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/test_relata_memory_store.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/test_relata_tools.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/test_remaining_gaps.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/test_replay.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/test_reputation.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/test_reputation_memory.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/test_reputation_staleness.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/test_review_fixes.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/test_revocation.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/test_revocation_lifecycle.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/test_room_epoch.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/test_schema_hash_pinned.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/test_secret_redaction.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/test_self_heal_cycle1.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/test_self_heal_cycle2.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/test_self_heal_cycle3.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/test_self_heal_cycle3_cascade_isolate.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/test_self_heal_cycle3_governance.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/test_self_heal_cycle4.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/test_self_heal_cycle4_deliberator_broadcast.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/test_self_heal_cycle5.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/test_signer_protocol.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/test_sth_cross_gossip.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/test_swarm_iq.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/test_swarm_iq_at_scale.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/test_swarm_iq_recommend.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/test_swarm_memory.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/test_swarm_memory_federation.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/test_swarm_trace.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/test_swarm_vector_overflow.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/test_sync_agent.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/test_tal.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/test_task_handle.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/test_task_handle_network.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/test_tcp_duplicate_kid_attack.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/test_tcp_edge.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/test_tcp_final.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/test_tcp_read_loop_cleanup.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/test_tcp_transport.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/test_theory_of_mind.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/test_transport.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/test_two_impl_interop.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/test_uncertainty.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/test_uncertainty_edge.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/test_wire.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/test_wire_edge_cases.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/test_wire_kid_stability.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/test_wire_p3.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/test_wire_v2.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/test_wire_version.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/test_witness_preimage_length_prefix.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/test_workflow_compensation.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/test_workflow_engine.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/test_workflow_replay.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/usecases/__init__.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/usecases/conftest.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/usecases/test_ai_01_fed_benchmark.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/usecases/test_ai_alignment_redteam.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/usecases/test_cy_05_ir_swarm.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/usecases/test_cy_11_ransomware_intel.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/usecases/test_ed_credentials.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/usecases/test_en_grid_coordinate.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/usecases/test_fi_04_bsa_314b.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/usecases/test_fi_22_ma_dataroom.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/usecases/test_gv_01_intel_sharing.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/usecases/test_gv_21_red_team.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/usecases/test_hc_06_rare_disease.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/usecases/test_hc_21_fed_learning.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/usecases/test_lg_ediscovery.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/tests/usecases/test_mf_supply_chain.py +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/transport-rust/Cargo.toml +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/transport-rust/README.md +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/transport-rust/pyproject.toml +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/transport-rust/src/lib.rs +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/webui/index.html +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/webui/package-lock.json +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/webui/package.json +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/webui/src/App.vue +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/webui/src/api/client.ts +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/webui/src/components/ActivityCanvas.vue +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/webui/src/components/AgentContribution.vue +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/webui/src/components/BrierHeatmap.vue +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/webui/src/components/CIQTrajectory.vue +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/webui/src/components/CitationGraph.vue +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/webui/src/components/DisputeTimeline.vue +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/webui/src/components/DissentList.vue +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/webui/src/components/Logo.vue +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/webui/src/components/NowAsking.vue +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/webui/src/components/PersonaRadar.vue +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/webui/src/components/PopulationGenerator.vue +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/webui/src/components/Term.vue +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/webui/src/components/forms/SchemaForm.vue +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/webui/src/components/result/AARTimeline.vue +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/webui/src/components/result/BacktestScorecard.vue +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/webui/src/components/result/ConformanceReport.vue +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/webui/src/components/result/CrisisTabletop.vue +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/webui/src/components/result/DecisionBracket.vue +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/webui/src/components/result/EvaluationReport.vue +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/webui/src/components/result/GovernanceReceipt.vue +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/webui/src/components/result/MethodNote.vue +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/webui/src/components/result/RedTeamReport.vue +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/webui/src/components/result/ScenarioTree.vue +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/webui/src/docs/index.ts +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/webui/src/docs/render.ts +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/webui/src/main.ts +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/webui/src/router.ts +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/webui/src/stores/sims.ts +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/webui/src/styles.css +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/webui/src/types/trace.ts +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/webui/src/views/Agents.vue +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/webui/src/views/Docs.vue +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/webui/src/views/Evidence.vue +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/webui/src/views/Home.vue +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/webui/src/views/HowItWorks.vue +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/webui/src/views/Knowledge.vue +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/webui/src/views/Namespaces.vue +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/webui/src/views/Report.vue +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/webui/src/views/Security.vue +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/webui/src/views/SimCompare.vue +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/webui/src/views/SimDetail.vue +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/webui/src/views/SimList.vue +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/webui/src/views/SimLive.vue +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/webui/src/views/SimNew.vue +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/webui/src/views/Tools.vue +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/webui/src/views/UseCases.vue +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/webui/tsconfig.json +0 -0
- {hypermind-0.22.0 → hypermind-0.24.0}/webui/vite.config.ts +0 -0
|
@@ -14,7 +14,44 @@ changes only on major-version bumps.
|
|
|
14
14
|
|
|
15
15
|
## [Unreleased]
|
|
16
16
|
|
|
17
|
-
_Current trunk
|
|
17
|
+
_Current trunk._
|
|
18
|
+
|
|
19
|
+
## [0.23.0] — 2026-07-08
|
|
20
|
+
|
|
21
|
+
### Added
|
|
22
|
+
- **Distributed, Locust-style execution** — `hypermind.orgs.distributed`. A master coordinator shards a swarm across workers (other machines or local processes) over a TCP control plane (length-prefixed CBOR frames); each worker runs its shard as `OrgSim(lightweight=True)` against the **shared Relata namespace** and returns bounded aggregates, merged into one `OrgReport` (#177).
|
|
23
|
+
- `Coordinator` / `Worker`, `run_distributed(...)` (single-host convenience), and a `master` / `worker` CLI (`python -m hypermind.orgs.distributed`).
|
|
24
|
+
- Capacity-weighted shard planning; a worker that drops before returning is recorded as a failed shard — the run completes and notes it, never hangs.
|
|
25
|
+
- `OrgSim.export_aggregates()` for the merge; `OrgModel` wire (de)serialisation.
|
|
26
|
+
|
|
27
|
+
## [0.22.0] — 2026-07-08
|
|
28
|
+
|
|
29
|
+
### Added
|
|
30
|
+
- **Batched Relata writes** — `RelataBackend(write_batch_size=N)` buffers claim rows and flushes via one bulk `batch_upsert` instead of a per-claim round-trip; `OrgSim` defaults to 64. ~batch× fewer round-trips at scale (#175).
|
|
31
|
+
- **Bounded / streaming report** — `OrgSim(lightweight=True)` caps memory to O(members + windows), not O(records): per-member streaming aggregates + a rolling claim window, exact scorecard totals. `metrics.scorecard_from_aggregates(...)` (#176).
|
|
32
|
+
- Parallel keypair generation at `testbed()` spin-up (thread pool; the crypto releases the GIL) — part of #177.
|
|
33
|
+
|
|
34
|
+
## [0.21.0] — 2026-07-08
|
|
35
|
+
|
|
36
|
+
### Added
|
|
37
|
+
- **Native response-quality rubrics** — `hypermind.orgs.quality`: `sim.assess(question)` → `QualityReport`. Four rubric groups, all on by default, switchable via `disable`: native/deterministic (provenance coverage, dispute exposure, reputation support, consensus, abstention — verifiable from the signed ledger), judge-based faithfulness (grounding, hallucination rate, answer relevance, context precision), calibration (Brier, self-consistency), and context recall. Missing deps degrade to informational notes. `llm_judge(...)` factory.
|
|
38
|
+
|
|
39
|
+
## [0.20.0] — 2026-07-08
|
|
40
|
+
|
|
41
|
+
### Added
|
|
42
|
+
- **Hybrid retrieval** — `reciprocal_rank_fusion(...)` and `hybrid_retriever(*retrievers, reranker=None)` fuse dense + entity-graph + lexical signals (RRF) with an optional cross-encoder rerank, over our own Relata data. Plugs into the existing `OrgSim(retriever=...)` seam.
|
|
43
|
+
|
|
44
|
+
## [0.12.0] – [0.19.0] — 2026-06 … 2026-07
|
|
45
|
+
|
|
46
|
+
### Added
|
|
47
|
+
- **`hypermind.orgs` — the living-simulation engine.** Turn a declarative `OrgModel` / `Unit` / `Seat` into a running multi-agent simulation (research → publish → cite → dispute → resolve → learn → evolve) persisted to Relata, driven by pluggable `Interaction` strategies (`cooperative` / `adversarial` / `crowd`).
|
|
48
|
+
- **Template library**: `university`, `hospital`, `city_at_war`, `foreign_policy_cabinet`, `un_security_council`, `internet_crowd`, `research_lab`, … via `list_templates()` / `get_template()` — the core never imports them.
|
|
49
|
+
- **Per-agent models** (per-seat provider/model or a router) and **group-scoped native tools** (declarative or random grants; ungranted tools are absent, not refused).
|
|
50
|
+
- **Study → ask**: `sim.study(topic)` then `sim.ask(question)` — a transparent, queryable swarm that answers from what it learned, weighted by earned standing.
|
|
51
|
+
- **Proper RAG** for `ask`: lexical → semantic embeddings (`embedder=`, `openai_embedder`) → claim↔entity graph (`use_graph_retrieval`, `MentionGraph`) → real NER hooks (`llm_ner_extractor`, `chat_ner_extractor`, `pioneer_ner_extractor`) → Relata-backed retrieval (`relata_retriever`).
|
|
52
|
+
- **Scorecard & analysis**: reputation ranking, citation DAG, dispute ledger, Brier calibration (#151), convergence metrics (#152), memory-RAG (#153), deliberator mode (#154), tool-trace capture (#155), adversarial dynamics (#156), pluggable ground truth (#157), experiment/variant harness (#158), interventions (#159), visualization snapshots (#160), verifiable receipts (#161).
|
|
53
|
+
- **Scalability hardening** across the engine: bounded peer window, O(1) member indices, top-k cross-pollination, concurrent think phase (`asyncio.gather` + semaphore) and concurrent blocking I/O (`asyncio.to_thread`).
|
|
54
|
+
- `examples/org_university.py` and an expanded examples index.
|
|
18
55
|
|
|
19
56
|
## [0.11.0] — 2026-05-10
|
|
20
57
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: hypermind
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.24.0
|
|
4
4
|
Summary: Federated agent intelligence — reference SDK for the HyperMind SCITT contested-claims profile
|
|
5
5
|
Project-URL: Homepage, https://github.com/ZySec-AI/hypermind
|
|
6
6
|
Project-URL: Documentation, https://github.com/ZySec-AI/hypermind/tree/main/docs
|
|
@@ -102,7 +102,7 @@ Agents share what they learn. Dispute what they doubt. Build trust over time.
|
|
|
102
102
|
[](https://pypi.org/project/hypermind/)
|
|
103
103
|
[](https://pypi.org/project/hypermind/)
|
|
104
104
|
[](LICENSE)
|
|
105
|
-
[](#testing--quality)
|
|
106
106
|
[](#testing--quality)
|
|
107
107
|
[](#project-status)
|
|
108
108
|
|
|
@@ -147,7 +147,7 @@ Open **http://127.0.0.1:8765** and you'll see:
|
|
|
147
147
|
```bash
|
|
148
148
|
make run-fast # skip the webui rebuild (when JS hasn't changed)
|
|
149
149
|
make webui-dev # Vite dev server with hot-reload on :5173
|
|
150
|
-
make test #
|
|
150
|
+
make test # 2133 tests pass, ~80s
|
|
151
151
|
make demo # examples/01_hello_world from the CLI
|
|
152
152
|
make demos # all numbered tutorials + scenarios sequentially
|
|
153
153
|
make help # show all targets
|
|
@@ -232,6 +232,10 @@ report.print() # reputation ranking · citation graph · dispute ledger
|
|
|
232
232
|
- **Per-agent models.** Any seat can pin its own provider/model (`Seat("Professor", llm="anthropic", model="claude-opus-4-8")`), or hand `OrgSim` a router for random / cost-aware assignment.
|
|
233
233
|
- **Native tools, group-scoped.** Tools (web search, retrieval, KB query, Relata research) are granted per unit/seat and enforced — an ungranted tool is *absent* from that agent's toolset. Grants can be declarative or randomised; register your own with `hypermind.orgs.register_tool(...)`.
|
|
234
234
|
- **Relata end-to-end.** Organisation → tenant; member → private memory session (agent kid); claims / disputes / reputation → tenant-scoped ledger rows; chain of custody → the Merkle log. Restart replays the whole org.
|
|
235
|
+
- **Study → ask (a queryable swarm).** Let the swarm learn a topic, then question it: `await sim.study(topic)` then `await sim.ask("...")` — every member recalls what it learned, reasons, and the answers are aggregated weighted by earned standing. `sim.ask` studies first automatically if you skip the explicit step.
|
|
236
|
+
- **Proper RAG.** Retrieval for `ask` is pluggable: lexical (default), semantic embeddings (`embedder=`), the claim↔entity graph (`use_graph_retrieval=True`), or `hybrid_retriever(...)` which fuses dense + graph + lexical via Reciprocal Rank Fusion with an optional cross-encoder rerank. Relata *is* the vector store + graph (`relata_retriever(..., "search_knowledge" / "find_connections")`).
|
|
237
|
+
- **Answer quality, natively.** `await sim.assess(question)` returns a `QualityReport` scoring grounding, hallucination rate, calibration (Brier), self-consistency, and hm-native rubrics that are *verifiable from the signed ledger* — provenance coverage, dispute exposure, reputation-weighted support. All rubrics on by default; missing deps (judge / ground-truth) degrade to informational notes.
|
|
238
|
+
- **Scales like Locust.** `OrgSim(lightweight=True)` caps RAM to O(members), not O(records); Relata writes are batched. For horizontal scale, `hypermind.orgs.distributed` runs a **master/worker** control plane — shard a swarm across processes or machines against the shared Relata namespace, merged into one report (`python -m hypermind.orgs.distributed master/worker`, or `run_distributed(...)`).
|
|
235
239
|
|
|
236
240
|
Worked example: [`examples/org_university.py`](examples/org_university.py). Discover all presets via `hypermind.orgs.templates.list_templates()`.
|
|
237
241
|
|
|
@@ -14,7 +14,7 @@ Agents share what they learn. Dispute what they doubt. Build trust over time.
|
|
|
14
14
|
[](https://pypi.org/project/hypermind/)
|
|
15
15
|
[](https://pypi.org/project/hypermind/)
|
|
16
16
|
[](LICENSE)
|
|
17
|
-
[](#testing--quality)
|
|
18
18
|
[](#testing--quality)
|
|
19
19
|
[](#project-status)
|
|
20
20
|
|
|
@@ -59,7 +59,7 @@ Open **http://127.0.0.1:8765** and you'll see:
|
|
|
59
59
|
```bash
|
|
60
60
|
make run-fast # skip the webui rebuild (when JS hasn't changed)
|
|
61
61
|
make webui-dev # Vite dev server with hot-reload on :5173
|
|
62
|
-
make test #
|
|
62
|
+
make test # 2133 tests pass, ~80s
|
|
63
63
|
make demo # examples/01_hello_world from the CLI
|
|
64
64
|
make demos # all numbered tutorials + scenarios sequentially
|
|
65
65
|
make help # show all targets
|
|
@@ -144,6 +144,10 @@ report.print() # reputation ranking · citation graph · dispute ledger
|
|
|
144
144
|
- **Per-agent models.** Any seat can pin its own provider/model (`Seat("Professor", llm="anthropic", model="claude-opus-4-8")`), or hand `OrgSim` a router for random / cost-aware assignment.
|
|
145
145
|
- **Native tools, group-scoped.** Tools (web search, retrieval, KB query, Relata research) are granted per unit/seat and enforced — an ungranted tool is *absent* from that agent's toolset. Grants can be declarative or randomised; register your own with `hypermind.orgs.register_tool(...)`.
|
|
146
146
|
- **Relata end-to-end.** Organisation → tenant; member → private memory session (agent kid); claims / disputes / reputation → tenant-scoped ledger rows; chain of custody → the Merkle log. Restart replays the whole org.
|
|
147
|
+
- **Study → ask (a queryable swarm).** Let the swarm learn a topic, then question it: `await sim.study(topic)` then `await sim.ask("...")` — every member recalls what it learned, reasons, and the answers are aggregated weighted by earned standing. `sim.ask` studies first automatically if you skip the explicit step.
|
|
148
|
+
- **Proper RAG.** Retrieval for `ask` is pluggable: lexical (default), semantic embeddings (`embedder=`), the claim↔entity graph (`use_graph_retrieval=True`), or `hybrid_retriever(...)` which fuses dense + graph + lexical via Reciprocal Rank Fusion with an optional cross-encoder rerank. Relata *is* the vector store + graph (`relata_retriever(..., "search_knowledge" / "find_connections")`).
|
|
149
|
+
- **Answer quality, natively.** `await sim.assess(question)` returns a `QualityReport` scoring grounding, hallucination rate, calibration (Brier), self-consistency, and hm-native rubrics that are *verifiable from the signed ledger* — provenance coverage, dispute exposure, reputation-weighted support. All rubrics on by default; missing deps (judge / ground-truth) degrade to informational notes.
|
|
150
|
+
- **Scales like Locust.** `OrgSim(lightweight=True)` caps RAM to O(members), not O(records); Relata writes are batched. For horizontal scale, `hypermind.orgs.distributed` runs a **master/worker** control plane — shard a swarm across processes or machines against the shared Relata namespace, merged into one report (`python -m hypermind.orgs.distributed master/worker`, or `run_distributed(...)`).
|
|
147
151
|
|
|
148
152
|
Worked example: [`examples/org_university.py`](examples/org_university.py). Discover all presets via `hypermind.orgs.templates.list_templates()`.
|
|
149
153
|
|
|
@@ -87,6 +87,7 @@ Pick one that matches your domain.
|
|
|
87
87
|
| File | Domain | What it shows |
|
|
88
88
|
|---|---|---|
|
|
89
89
|
| [`org_university.py`](org_university.py) | Any network | Spin up a templated org (university / city / UNO / crowd), run research → cite → dispute → resolve → evolve, print a reputation + citation report. Per-agent models + group-scoped tools, persisted to Relata. |
|
|
90
|
+
| [`org_distributed.py`](org_distributed.py) | Scale-out | Locust-style distributed run: a master coordinator shards the swarm across workers (processes or machines) against the shared Relata namespace, merged into one report (`hypermind.orgs.distributed`). Single-host convenience + multi-machine CLI. |
|
|
90
91
|
|
|
91
92
|
### Pilot-shaped demonstrations
|
|
92
93
|
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
"""THE STORY — one swarm, many workers: scale a simulation like Locust.
|
|
2
|
+
|
|
3
|
+
The single-process engine (``examples/org_university.py``) is great to ~1000s of
|
|
4
|
+
agents. Beyond that you scale *out*: ``hypermind.orgs.distributed`` runs a
|
|
5
|
+
**master coordinator** that shards the swarm across **workers** — processes on
|
|
6
|
+
this box or on other machines — each running its slice as
|
|
7
|
+
``OrgSim(lightweight=True)`` against the **shared Relata namespace** (the source
|
|
8
|
+
of truth). The coordinator merges every worker's bounded aggregates into one
|
|
9
|
+
``OrgReport``.
|
|
10
|
+
|
|
11
|
+
This script shows the single-host convenience path (``run_distributed`` starts a
|
|
12
|
+
coordinator plus in-process workers over loopback) — the *same* code path as
|
|
13
|
+
multi-machine. For true multi-machine, use the CLI instead::
|
|
14
|
+
|
|
15
|
+
# on the master host
|
|
16
|
+
python -m hypermind.orgs.distributed master --template university \
|
|
17
|
+
--topic "..." --members 10000 --rounds 8 --expected-workers 4 \
|
|
18
|
+
--host 0.0.0.0 --port 8765 --llm openai --llm-model openai/gpt-4o-mini
|
|
19
|
+
|
|
20
|
+
# on each worker host
|
|
21
|
+
python -m hypermind.orgs.distributed worker \
|
|
22
|
+
--master-host <master-ip> --port 8765 --capacity 2500
|
|
23
|
+
|
|
24
|
+
PREREQUISITES
|
|
25
|
+
* A running Relata instance: docker compose -f deploy/docker-compose.yml up -d relata
|
|
26
|
+
* export RELATA_URL=http://localhost:9090 RELATA_TOKEN=...
|
|
27
|
+
* export OPENAI_API_KEY=... (workers build their own client from env)
|
|
28
|
+
|
|
29
|
+
Run with: python -m examples.org_distributed
|
|
30
|
+
"""
|
|
31
|
+
|
|
32
|
+
from __future__ import annotations
|
|
33
|
+
|
|
34
|
+
import asyncio
|
|
35
|
+
import os
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
async def main() -> None:
|
|
39
|
+
from hypermind.orgs.distributed import run_distributed
|
|
40
|
+
from hypermind.orgs.templates import university
|
|
41
|
+
|
|
42
|
+
relata_url = os.environ.get("RELATA_URL")
|
|
43
|
+
if not relata_url:
|
|
44
|
+
raise SystemExit(
|
|
45
|
+
"Set RELATA_URL (and RELATA_TOKEN) to a running Relata instance. "
|
|
46
|
+
"See deploy/docker-compose.yml."
|
|
47
|
+
)
|
|
48
|
+
|
|
49
|
+
model = university() # the shape; run_distributed scales it across workers
|
|
50
|
+
report = await run_distributed(
|
|
51
|
+
model,
|
|
52
|
+
topic="What limits the accuracy of ab-initio protein folding?",
|
|
53
|
+
members=48, # sharded across the workers below
|
|
54
|
+
rounds=4,
|
|
55
|
+
workers=4, # 4 in-process workers over loopback (each ~12 members)
|
|
56
|
+
config={
|
|
57
|
+
"llm": "openai",
|
|
58
|
+
"llm_model": "openai/gpt-4o-mini",
|
|
59
|
+
"base_url": os.environ.get("OPENAI_BASE_URL"), # e.g. OpenRouter
|
|
60
|
+
"relata_url": relata_url,
|
|
61
|
+
"relata_token": os.environ.get("RELATA_TOKEN"),
|
|
62
|
+
},
|
|
63
|
+
)
|
|
64
|
+
|
|
65
|
+
report.print()
|
|
66
|
+
sc = report.scorecard
|
|
67
|
+
print(
|
|
68
|
+
f"\nmerged across workers → {sc['claims']} claims · {sc['citations']} citations · "
|
|
69
|
+
f"{len(report.standings)} members"
|
|
70
|
+
)
|
|
71
|
+
|
|
72
|
+
|
|
73
|
+
if __name__ == "__main__":
|
|
74
|
+
asyncio.run(main())
|
|
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "hypermind"
|
|
7
|
-
version = "0.
|
|
7
|
+
version = "0.24.0"
|
|
8
8
|
description = "Federated agent intelligence — reference SDK for the HyperMind SCITT contested-claims profile"
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
requires-python = ">=3.11,<3.14"
|
|
@@ -73,7 +73,7 @@ open = HyperMindAgent.open
|
|
|
73
73
|
#: is held until the §External & human gates clear (IETF I-D, IANA,
|
|
74
74
|
#: third-party audit, OpenSSF acceptance, ≥3 pilots) — at that point we
|
|
75
75
|
#: cut ``1.0.0`` GA. See ROADMAP.md §Status snapshot.
|
|
76
|
-
__version__ = "0.
|
|
76
|
+
__version__ = "0.24.0"
|
|
77
77
|
|
|
78
78
|
#: SLSA build-provenance level committed for every release artefact.
|
|
79
79
|
#: Cosign keyless signing + slsa-github-generator + PEP 740 attestations
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
"""Distributed, Locust-style execution for OrgSim (#177).
|
|
2
|
+
|
|
3
|
+
A **master coordinator** shards a swarm across **workers** (processes on the
|
|
4
|
+
same box or other machines) over a TCP control plane; every worker runs its
|
|
5
|
+
shard as an ``OrgSim(lightweight=True)`` against the **shared Relata namespace**
|
|
6
|
+
(the source of truth) and returns bounded aggregates, which the coordinator
|
|
7
|
+
merges into one :class:`~hypermind.orgs.report.OrgReport`.
|
|
8
|
+
|
|
9
|
+
Multi-machine (the Locust model)::
|
|
10
|
+
|
|
11
|
+
# on the master host
|
|
12
|
+
python -m hypermind.orgs.distributed master \
|
|
13
|
+
--template university --members 10000 --rounds 8 \
|
|
14
|
+
--expected-workers 4 --host 0.0.0.0 --port 8765
|
|
15
|
+
|
|
16
|
+
# on each worker host
|
|
17
|
+
python -m hypermind.orgs.distributed worker \
|
|
18
|
+
--master-host <master-ip> --port 8765 --capacity 2500 \
|
|
19
|
+
--llm openai --llm-model openai/gpt-4o-mini
|
|
20
|
+
|
|
21
|
+
Single host (convenience — coordinator + in-process workers over loopback)::
|
|
22
|
+
|
|
23
|
+
from hypermind.orgs.distributed import run_distributed
|
|
24
|
+
from hypermind.orgs.templates import university
|
|
25
|
+
report = await run_distributed(university(), "protein folding",
|
|
26
|
+
members=2000, rounds=6, workers=8, config={...})
|
|
27
|
+
"""
|
|
28
|
+
|
|
29
|
+
from __future__ import annotations
|
|
30
|
+
|
|
31
|
+
import asyncio
|
|
32
|
+
import logging
|
|
33
|
+
from typing import Any
|
|
34
|
+
|
|
35
|
+
from hypermind.orgs.distributed.coordinator import Coordinator
|
|
36
|
+
from hypermind.orgs.distributed.planning import (
|
|
37
|
+
merge_results,
|
|
38
|
+
plan_shards,
|
|
39
|
+
seat_count,
|
|
40
|
+
validate_shardable,
|
|
41
|
+
)
|
|
42
|
+
from hypermind.orgs.distributed.provision import provision_hm_types
|
|
43
|
+
from hypermind.orgs.distributed.worker import Worker, default_shard_runner
|
|
44
|
+
from hypermind.orgs.model import OrgModel
|
|
45
|
+
from hypermind.orgs.report import OrgReport
|
|
46
|
+
|
|
47
|
+
logger = logging.getLogger("hypermind.orgs.distributed")
|
|
48
|
+
|
|
49
|
+
__all__ = [
|
|
50
|
+
"Coordinator",
|
|
51
|
+
"DistributedError",
|
|
52
|
+
"Worker",
|
|
53
|
+
"default_shard_runner",
|
|
54
|
+
"merge_results",
|
|
55
|
+
"plan_shards",
|
|
56
|
+
"provision_hm_types",
|
|
57
|
+
"run_distributed",
|
|
58
|
+
"seat_count",
|
|
59
|
+
"validate_shardable",
|
|
60
|
+
]
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
class DistributedError(RuntimeError):
|
|
64
|
+
"""Raised when a distributed run cannot produce any result (all shards failed)."""
|
|
65
|
+
|
|
66
|
+
|
|
67
|
+
async def run_distributed(
|
|
68
|
+
model: OrgModel,
|
|
69
|
+
topic: str,
|
|
70
|
+
*,
|
|
71
|
+
members: int,
|
|
72
|
+
rounds: int,
|
|
73
|
+
workers: int = 4,
|
|
74
|
+
capacity_each: int = 1,
|
|
75
|
+
config: dict[str, Any] | None = None,
|
|
76
|
+
host: str = "127.0.0.1",
|
|
77
|
+
shard_runner: Any = None,
|
|
78
|
+
) -> OrgReport:
|
|
79
|
+
"""Run a distributed simulation on this host: start a coordinator and
|
|
80
|
+
``workers`` in-process workers (over loopback), shard ``members`` across
|
|
81
|
+
them, and return the merged report.
|
|
82
|
+
|
|
83
|
+
Same code path as multi-machine — the only difference is the workers live in
|
|
84
|
+
this process instead of on remote hosts. Pass ``shard_runner`` to stub the
|
|
85
|
+
per-shard work (tests); omit it for the real ``OrgSim`` runner.
|
|
86
|
+
|
|
87
|
+
Raises ``ValueError`` up front if the shard plan isn't viable (#190) and
|
|
88
|
+
``DistributedError`` if every shard fails (#191).
|
|
89
|
+
"""
|
|
90
|
+
# Pre-flight: fail fast with a clear message if a shard would be too small.
|
|
91
|
+
validate_shardable(model, members, [capacity_each] * workers)
|
|
92
|
+
|
|
93
|
+
coord = Coordinator(
|
|
94
|
+
model,
|
|
95
|
+
topic,
|
|
96
|
+
members=members,
|
|
97
|
+
rounds=rounds,
|
|
98
|
+
expected_workers=workers,
|
|
99
|
+
host=host,
|
|
100
|
+
port=0,
|
|
101
|
+
config=config,
|
|
102
|
+
)
|
|
103
|
+
|
|
104
|
+
async def _serve() -> OrgReport:
|
|
105
|
+
return await coord.run()
|
|
106
|
+
|
|
107
|
+
coord_task = asyncio.create_task(_serve())
|
|
108
|
+
# Wait for the server to bind before workers dial in.
|
|
109
|
+
while coord.port == 0:
|
|
110
|
+
await asyncio.sleep(0.005)
|
|
111
|
+
|
|
112
|
+
worker_tasks = [
|
|
113
|
+
asyncio.create_task(
|
|
114
|
+
Worker(
|
|
115
|
+
host,
|
|
116
|
+
coord.port,
|
|
117
|
+
worker_id=f"w{i}",
|
|
118
|
+
capacity=capacity_each,
|
|
119
|
+
shard_runner=shard_runner,
|
|
120
|
+
).run()
|
|
121
|
+
)
|
|
122
|
+
for i in range(workers)
|
|
123
|
+
]
|
|
124
|
+
report = await coord_task
|
|
125
|
+
await asyncio.gather(*worker_tasks, return_exceptions=True)
|
|
126
|
+
|
|
127
|
+
# Surface shard failures loudly (#191).
|
|
128
|
+
failed = next((e for e in report.events if e["event"] == "shards_failed"), None)
|
|
129
|
+
succeeded = next((e["shards"] for e in report.events if e["event"] == "distributed"), 0)
|
|
130
|
+
if failed:
|
|
131
|
+
msg = f"{failed['count']} shard(s) failed: {failed['detail']}"
|
|
132
|
+
if succeeded == 0:
|
|
133
|
+
raise DistributedError(f"distributed run produced no results — {msg}")
|
|
134
|
+
logger.warning("distributed run completed with failures — %s", msg)
|
|
135
|
+
return report
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
"""CLI for distributed OrgSim (#177): ``master`` and ``worker`` subcommands.
|
|
2
|
+
|
|
3
|
+
python -m hypermind.orgs.distributed master --template university \
|
|
4
|
+
--members 10000 --rounds 8 --expected-workers 4 --host 0.0.0.0 --port 8765
|
|
5
|
+
|
|
6
|
+
python -m hypermind.orgs.distributed worker --master-host <ip> --port 8765 \
|
|
7
|
+
--capacity 2500 --llm openai --llm-model openai/gpt-4o-mini
|
|
8
|
+
"""
|
|
9
|
+
|
|
10
|
+
from __future__ import annotations
|
|
11
|
+
|
|
12
|
+
import argparse
|
|
13
|
+
import asyncio
|
|
14
|
+
import json
|
|
15
|
+
import sys
|
|
16
|
+
|
|
17
|
+
from hypermind.orgs.distributed.coordinator import Coordinator
|
|
18
|
+
from hypermind.orgs.distributed.worker import Worker
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
def _load_model(args: argparse.Namespace):
|
|
22
|
+
from hypermind.orgs.templates import get_template
|
|
23
|
+
|
|
24
|
+
return get_template(args.template)(namespace=args.namespace)
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
async def _run_master(args: argparse.Namespace) -> int:
|
|
28
|
+
model = _load_model(args)
|
|
29
|
+
config = {
|
|
30
|
+
"llm": args.llm,
|
|
31
|
+
"llm_model": args.llm_model,
|
|
32
|
+
"relata_url": args.relata_url,
|
|
33
|
+
"relata_token": args.relata_token,
|
|
34
|
+
"base_url": args.base_url,
|
|
35
|
+
"api_key_env": args.api_key_env,
|
|
36
|
+
}
|
|
37
|
+
coord = Coordinator(
|
|
38
|
+
model,
|
|
39
|
+
args.topic,
|
|
40
|
+
members=args.members,
|
|
41
|
+
rounds=args.rounds,
|
|
42
|
+
expected_workers=args.expected_workers,
|
|
43
|
+
host=args.host,
|
|
44
|
+
port=args.port,
|
|
45
|
+
config=config,
|
|
46
|
+
)
|
|
47
|
+
print(
|
|
48
|
+
f"master: binding {args.host}:{args.port}, waiting for {args.expected_workers} worker(s)…"
|
|
49
|
+
)
|
|
50
|
+
report = await coord.run()
|
|
51
|
+
out = (
|
|
52
|
+
report.to_json() if hasattr(report, "to_json") else json.dumps(report.__dict__, default=str)
|
|
53
|
+
)
|
|
54
|
+
if args.output:
|
|
55
|
+
with open(args.output, "w") as f:
|
|
56
|
+
f.write(out)
|
|
57
|
+
print(f"master: wrote report → {args.output}")
|
|
58
|
+
else:
|
|
59
|
+
report.print()
|
|
60
|
+
return 0
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
async def _run_worker(args: argparse.Namespace) -> int:
|
|
64
|
+
print(
|
|
65
|
+
f"worker {args.worker_id}: connecting to {args.master_host}:{args.port} (cap {args.capacity})…"
|
|
66
|
+
)
|
|
67
|
+
await Worker(
|
|
68
|
+
args.master_host, args.port, worker_id=args.worker_id, capacity=args.capacity
|
|
69
|
+
).run()
|
|
70
|
+
print(f"worker {args.worker_id}: done")
|
|
71
|
+
return 0
|
|
72
|
+
|
|
73
|
+
|
|
74
|
+
def _build_parser() -> argparse.ArgumentParser:
|
|
75
|
+
ap = argparse.ArgumentParser(prog="python -m hypermind.orgs.distributed")
|
|
76
|
+
sub = ap.add_subparsers(dest="cmd", required=True)
|
|
77
|
+
|
|
78
|
+
m = sub.add_parser("master", help="run the coordinator")
|
|
79
|
+
m.add_argument("--template", default="university")
|
|
80
|
+
m.add_argument("--namespace", default="dist-run")
|
|
81
|
+
m.add_argument("--topic", required=True)
|
|
82
|
+
m.add_argument("--members", type=int, required=True)
|
|
83
|
+
m.add_argument("--rounds", type=int, default=6)
|
|
84
|
+
m.add_argument("--expected-workers", type=int, required=True)
|
|
85
|
+
m.add_argument("--host", default="0.0.0.0")
|
|
86
|
+
m.add_argument("--port", type=int, default=8765)
|
|
87
|
+
m.add_argument("--llm", default="openai")
|
|
88
|
+
m.add_argument("--llm-model", default=None)
|
|
89
|
+
m.add_argument("--base-url", default=None)
|
|
90
|
+
m.add_argument("--api-key-env", default="OPENAI_API_KEY")
|
|
91
|
+
m.add_argument("--relata-url", default="http://localhost:9090")
|
|
92
|
+
m.add_argument("--relata-token", default=None)
|
|
93
|
+
m.add_argument("--output", default=None)
|
|
94
|
+
|
|
95
|
+
w = sub.add_parser("worker", help="run a worker")
|
|
96
|
+
w.add_argument("--master-host", required=True)
|
|
97
|
+
w.add_argument("--port", type=int, default=8765)
|
|
98
|
+
w.add_argument("--worker-id", default="worker-1")
|
|
99
|
+
w.add_argument("--capacity", type=int, default=1)
|
|
100
|
+
return ap
|
|
101
|
+
|
|
102
|
+
|
|
103
|
+
def main(argv: list[str] | None = None) -> int:
|
|
104
|
+
args = _build_parser().parse_args(argv)
|
|
105
|
+
runner = _run_master if args.cmd == "master" else _run_worker
|
|
106
|
+
return asyncio.run(runner(args))
|
|
107
|
+
|
|
108
|
+
|
|
109
|
+
if __name__ == "__main__":
|
|
110
|
+
sys.exit(main())
|