hypermind 0.32.0__tar.gz → 0.34.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {hypermind-0.32.0 → hypermind-0.34.0}/.env.example +10 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/CHANGELOG.md +20 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/PKG-INFO +2 -2
- {hypermind-0.32.0 → hypermind-0.34.0}/README.md +1 -1
- {hypermind-0.32.0 → hypermind-0.34.0}/pyproject.toml +1 -1
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hmctl/orgs_cmd.py +21 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/__init__.py +1 -1
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/mind/memory_store.py +10 -2
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/orgs/__init__.py +30 -0
- hypermind-0.34.0/src/hypermind/orgs/charter.py +164 -0
- hypermind-0.34.0/src/hypermind/orgs/evidence.py +131 -0
- hypermind-0.34.0/src/hypermind/orgs/mcp_config.py +94 -0
- hypermind-0.34.0/src/hypermind/orgs/prompts.py +285 -0
- hypermind-0.34.0/src/hypermind/orgs/refine.py +102 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/orgs/report.py +22 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/orgs/sim.py +157 -7
- hypermind-0.34.0/src/hypermind/orgs/tool_providers.py +325 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/responders/structured.py +16 -5
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/responders/tools.py +2 -1
- hypermind-0.34.0/tests/orgs/test_evidence.py +60 -0
- hypermind-0.34.0/tests/orgs/test_mcp_config.py +60 -0
- hypermind-0.34.0/tests/orgs/test_prompts.py +51 -0
- hypermind-0.34.0/tests/orgs/test_refine.py +113 -0
- hypermind-0.34.0/tests/orgs/test_tool_providers.py +190 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/orgs/test_tool_traces.py +22 -4
- {hypermind-0.32.0 → hypermind-0.34.0}/.editorconfig +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/.gitattributes +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/.github/FUNDING.yml +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/.github/renovate.json +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/.github/workflows/check-license.yml +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/.github/workflows/code-review-pr.yml +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/.github/workflows/hotfix-security.yml +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/.github/workflows/issue-auto-fix.yml +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/.github/workflows/issue-triage.yml +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/.github/workflows/pr-standards.yml +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/.github/workflows/quality.yml +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/.github/workflows/release.yml +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/.github/workflows/security.yml +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/.github/workflows/stale.yml +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/.github/workflows-disabled/branch-flow-check.yml +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/.github/workflows-disabled/chaos.yml +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/.github/workflows-disabled/check-license.yml +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/.github/workflows-disabled/ci.yml +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/.github/workflows-disabled/code-freeze.yml +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/.github/workflows-disabled/code-review-pr.yml +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/.github/workflows-disabled/code-review.yml +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/.github/workflows-disabled/codeql.yml +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/.github/workflows-disabled/dco.yml +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/.github/workflows-disabled/docs-to-wiki.yml +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/.github/workflows-disabled/docs.yml +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/.github/workflows-disabled/formal.yml +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/.github/workflows-disabled/fuzz.yml +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/.github/workflows-disabled/hotfix-security.yml +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/.github/workflows-disabled/issue-auto-fix.yml +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/.github/workflows-disabled/issue-triage.yml +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/.github/workflows-disabled/merge-comment.yml +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/.github/workflows-disabled/pip-audit.yml +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/.github/workflows-disabled/pr-standards.yml +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/.github/workflows-disabled/quality.yml +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/.github/workflows-disabled/release.yml +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/.github/workflows-disabled/sbom.yml +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/.github/workflows-disabled/scorecard.yml +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/.github/workflows-disabled/security.yml +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/.github/workflows-disabled/sprint-retro.yml +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/.github/workflows-disabled/stale.yml +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/.gitignore +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/.pre-commit-config.yaml +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/.tool-versions +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/CHARTER.md +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/CODEOWNERS +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/CODE_OF_CONDUCT.md +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/CONTRIBUTING.md +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/GOVERNANCE.md +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/LICENSE +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/MAINTAINERS.md +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/Makefile +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/RELATA_COMPATIBILITY.md +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/RELATA_INTEGRATION_PLAN.md +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/RELATA_STORAGE.md +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/ROADMAP.md +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/SECURITY.md +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/bench/README.md +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/bench/__init__.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/bench/baselines/v0.6.json +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/bench/bench_consult.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/bench/bench_dispute.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/bench/bench_publish.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/bench/coordination/README.md +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/bench/coordination/__init__.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/bench/coordination/baselines/v0.10.json +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/bench/coordination/bench_rfp_latency.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/bench/coordination/bench_task_throughput.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/bench/coordination/bench_workflow_replay.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/bench/coordination/run_all.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/bench/question_sets/geopolitics_q20.json +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/bench/question_sets/msft_outlook_q10.json +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/bench/run_bench.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/chaos/README.md +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/chaos/__init__.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/chaos/p1_partition_recovery.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/chaos/p2_witness_compromise.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/chaos/p3_key_rotation.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/chaos/p4_dispute_backlog.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/chaos/p5_wire_cutover.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/chaos/p6_quorum_loss.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/chaos/p7_clock_skew.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/chaos/p8_recorder_outage.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/chaos/run_chaos.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/deploy/Dockerfile +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/deploy/README.md +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/deploy/docker-compose.yml +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/deploy/grafana/dashboards/hypermind-coordination.json +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/deploy/grafana/dashboards/hypermind-v06.json +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/deploy/grafana/dashboards/hypermind.json +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/deploy/grafana/provisioning/dashboards/hypermind.yml +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/deploy/grafana/provisioning/datasources/prometheus.yml +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/deploy/k8s/hypermind-deployment.yaml +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/deploy/k8s/orgs-distributed.yaml +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/deploy/prometheus/prometheus.yml +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/deploy/systemd/hypermind.service +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/docs/README.md +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/docs/SIMLAB.md +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/docs/SIMLAB_AUDIT_PLAN.md +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/docs/_meta/glossary.md +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/docs/_meta/provenance.md +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/docs/_meta/public-surface.md +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/docs/_meta/standards-map.md +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/docs/api/agent.md +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/docs/api/agent_card.md +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/docs/api/capability.md +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/docs/api/crypto.md +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/docs/api/dispute.md +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/docs/api/knowledge.md +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/docs/api/observability.md +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/docs/api/simlab-openapi.yaml +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/docs/api/sync.md +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/docs/api/tasks.md +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/docs/api/transport.md +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/docs/api/wire.md +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/docs/architecture-v0.6.md +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/docs/assets/hero-swarm.svg +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/docs/audit/findings.md +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/docs/audit/scope.md +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/docs/concepts.md +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/docs/conformance/authority.md +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/docs/conformance/bake-off-report.md +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/docs/conformance/mark-policy.md +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/docs/decide/01-disqualifiers.md +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/docs/decide/02-alternatives.md +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/docs/decide/03-incentive-aligned-cases.md +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/docs/decide/04-use-cases.md +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/docs/design/01-architecture.md +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/docs/design/02-traces.md +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/docs/design/03-failure-modes.md +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/docs/design/04-poisoning-defenses.md +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/docs/design/05-deployment-topology.md +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/docs/feature-matrix.md +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/docs/getting-started.md +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/docs/governance/cna.md +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/docs/governance/foundation-evaluation.md +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/docs/hypermind-protocol-spec.md +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/docs/index.md +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/docs/legal/export-classification.md +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/docs/lts.md +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/docs/migrate/v0.x-to-v1.0.md +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/docs/migration/v0.7.md +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/docs/onboarding/00-prerequisites.md +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/docs/onboarding/README.md +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/docs/onboarding/after.md +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/docs/onboarding/exercises/e01-run-the-loop.md +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/docs/onboarding/exercises/e02-draw-the-architecture.md +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/docs/onboarding/exercises/e03-trace-a-claim.md +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/docs/onboarding/exercises/e04-read-a-spec-section.md +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/docs/onboarding/exercises/e05-break-it.md +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/docs/onboarding/exercises/e06-add-a-test.md +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/docs/onboarding/exercises/e07-first-pr.md +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/docs/onboarding/glossary.md +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/docs/onboarding/topics/00-what-is-hypermind.md +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/docs/onboarding/topics/01-agents-and-swarms.md +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/docs/onboarding/topics/02-architecture-tour.md +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/docs/onboarding/topics/03-spec-literacy.md +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/docs/onboarding/topics/04-cryptography.md +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/docs/onboarding/topics/05-cbor-cose.md +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/docs/onboarding/topics/06-transparency-logs.md +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/docs/onboarding/topics/07-distributed-systems.md +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/docs/onboarding/topics/08-async-python.md +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/docs/onboarding/topics/09-security-mindset.md +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/docs/onboarding/week-1-foundations.md +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/docs/onboarding/week-2-deep-dive.md +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/docs/operate/01-deployment.md +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/docs/operate/02-runbook.md +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/docs/operate/03-resource-budget.md +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/docs/operate/backup-restore.md +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/docs/operate/data-residency.md +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/docs/operate/key-rotation.md +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/docs/operate/runbooks/dispute-backlog-drain.md +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/docs/operate/runbooks/key-rotation.md +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/docs/operate/runbooks/kms-rotation.md +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/docs/operate/runbooks/multi-host-deploy.md +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/docs/operate/runbooks/partition-heal.md +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/docs/operate/runbooks/quorum-loss.md +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/docs/operate/runbooks/rfp-dispute-triage.md +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/docs/operate/runbooks/wire-cutover.md +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/docs/operate/runbooks/witness-compromise.md +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/docs/operate/runbooks/workflow-replay.md +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/docs/operate/slo.md +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/docs/paper/00-patent.md +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/docs/paper/hypermind-paper-draft.md +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/docs/paper/hypermind-paper.docx +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/docs/paper/hypermind-paper.tex +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/docs/release-notes/v1.0-checklist.md +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/docs/release-notes/v1.0.0.md +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/docs/security/threat-model.md +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/docs/simlab/modes.md +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/docs/simulations.md +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/docs/spec/00-overview.md +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/docs/spec/01-transport.md +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/docs/spec/02-cryptography.md +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/docs/spec/03-messages.md +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/docs/spec/04-knowledge-model.md +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/docs/spec/05-routing.md +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/docs/spec/06-conformance.md +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/docs/spec/07-trust-access-layer.md +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/docs/spec/08-onboarding-contract.md +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/docs/spec/09-agent-sdk.md +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/docs/spec/10-disputes.md +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/docs/spec/11-witness-transparency.md +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/docs/spec/12-governance.md +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/docs/spec/13-observability.md +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/docs/spec/14-threat-model.md +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/docs/spec/15-living-transmission.md +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/docs/spec/16-reference-comparisons.md +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/docs/spec/17-upgrade-v1.md +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/docs/spec/18-revocation.md +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/docs/spec/19-autonomy-contract.md +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/docs/spec/20-swarm-intelligence.md +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/docs/spec/21-belief-state.md +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/docs/spec/21-private-namespaces.md +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/docs/spec/22-transport-mtls.md +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/docs/spec/23-envelope-encryption.md +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/docs/spec/24-namespace-identity.md +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/docs/spec/25-capability-extensions.md +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/docs/spec/26-workflow.md +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/docs/spec/27-contract-net.md +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/docs/spec/28-distributed-trace.md +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/docs/spec/_meta/gaps-closed.md +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/docs/spec/appendix-N-calibration.md +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/docs/spec/appendix-TLA.md +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/docs/spec/appendix-z.md +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/docs/spec/errata.md +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/docs/spec/index.md +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/docs/spec/invariants.md +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/docs/spec/normative-trace.md +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/docs/supply-chain/sbom.md +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/docs/supply-chain/slsa.md +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/docs/supply-chain/verify-self.md +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/docs/sustainability.md +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/examples/01_hello_world.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/examples/02_two_agents_dispute.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/examples/03_consult_panel.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/examples/04_oracle_resolve.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/examples/05_consult_to_synthesis.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/examples/06_hybrid_pq.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/examples/07_frost_threshold.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/examples/08_ramp_and_diagnostics.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/examples/09_audit_export_chain.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/examples/10_autonomous_agent.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/examples/11_swarm_deliberation.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/examples/12_swarm_iq_scorecard.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/examples/13_role_specialisation.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/examples/14_active_learning_loop.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/examples/16_wire_message.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/examples/17_tool_delegation.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/examples/18_custom_responder.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/examples/19_governance.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/examples/20_conformance_check.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/examples/21_revocation.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/examples/22_agent_card.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/examples/23_task_delegation.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/examples/24_mcp_tool_call.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/examples/25_swarm_trace.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/examples/README.md +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/examples/coordination/01_durable_workflow.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/examples/coordination/02_contract_net.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/examples/coordination/03_belief_and_plan.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/examples/coordination/__init__.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/examples/coordination/usecases/__init__.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/examples/coordination/usecases/ai_01_fed_benchmark.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/examples/coordination/usecases/ai_alignment_redteam.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/examples/coordination/usecases/cy_05_ir_swarm.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/examples/coordination/usecases/cy_11_ransomware_intel.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/examples/coordination/usecases/ed_credentials.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/examples/coordination/usecases/en_grid_coordinate.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/examples/coordination/usecases/fi_04_bsa_314b.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/examples/coordination/usecases/fi_22_ma_dataroom.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/examples/coordination/usecases/gv_01_intel_sharing.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/examples/coordination/usecases/gv_21_red_team.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/examples/coordination/usecases/hc_06_rare_disease.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/examples/coordination/usecases/hc_21_fed_learning.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/examples/coordination/usecases/lg_ediscovery.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/examples/coordination/usecases/mf_supply_chain.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/examples/e2e_many_agents.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/examples/full_e2e_demo.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/examples/lifecycle.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/examples/org_distributed.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/examples/org_university.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/examples/scenario_aar.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/examples/scenario_backtest.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/examples/scenario_capability_attenuation.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/examples/scenario_conformance.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/examples/scenario_crisis_tabletop.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/examples/scenario_cross_namespace_federation.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/examples/scenario_decision_tournament.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/examples/scenario_dispute_lifecycle_async.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/examples/scenario_evaluation.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/examples/scenario_geopolitical_crisis.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/examples/scenario_geopolitical_traced.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/examples/scenario_governance_committee.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/examples/scenario_information_pipeline.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/examples/scenario_learning_loop.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/examples/scenario_namespace_trust.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/examples/scenario_persona_panel.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/examples/scenario_private_namespace.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/examples/scenario_red_team.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/examples/scenario_regulated_consortium.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/examples/scenario_threat_intel.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/examples/scenario_vouch_chain.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/examples/scenario_what_if_tree.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/examples/serve_api.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/examples/two_node_tcp.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/formal/README.md +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/formal/hax-rust/README.md +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/formal/hax-rust/scope.md +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/formal/proverif/dispute_fsm.pv +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/formal/proverif/dispute_liveness.pv +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/formal/tamarin/capability_chain.spthy +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/formal/tamarin/dispute_fsm.spthy +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/formal/tamarin/signed_statement.spthy +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/formal/tamarin/wire_security.spthy +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/fuzz/README.md +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/fuzz/__init__.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/fuzz/fuzz_agent_card.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/fuzz/fuzz_anti_entropy.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/fuzz/fuzz_capability.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/fuzz/fuzz_dispute.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/fuzz/fuzz_inclusion_proof.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/fuzz/fuzz_wire.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/fuzz/seed_corpus.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/harness/__init__.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/harness/__main__.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/harness/assertions.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/harness/fixtures.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/harness/report.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/harness/roles.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/harness/runner.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/harness/scenario.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/harness/scenarios/__init__.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/harness/scenarios/autonomous_evolution.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/harness/scenarios/swarm_iq_benchmark.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/harness/scenarios/threat_intel.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/mkdocs.yml +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/reference_verifier/__init__.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/reference_verifier/schemas/encrypted_statement.cddl +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/reference_verifier/schemas/namespace_accept.cddl +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/reference_verifier/schemas/namespace_create.cddl +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/reference_verifier/schemas/namespace_founding_attest.cddl +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/reference_verifier/schemas/namespace_invite.cddl +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/reference_verifier/schemas/wire-v0.1.cddl +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/reference_verifier/verifier.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/review/__init__.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/review/__main__.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/review/agents.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/review/models.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/review/runner.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hmctl/__init__.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hmctl/cli.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hmctl/dashboard.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/_deprecations.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/agent.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/agent_card.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/api/__init__.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/api/app.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/capability.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/consult.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/consult_bias.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/contract_net.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/crypto/__init__.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/crypto/cose_encrypt.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/crypto/dkg.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/crypto/domain.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/crypto/frost.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/crypto/hashing.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/crypto/hlc.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/crypto/hpke.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/crypto/kms.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/crypto/kms_backends/__init__.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/crypto/kms_backends/aws.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/crypto/kms_backends/azure.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/crypto/kms_backends/gcp.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/crypto/kms_backends/vault.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/crypto/namespace_root.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/crypto/pq.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/crypto/room_epoch.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/crypto/signing.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/deliberation.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/did_web.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/dispute.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/errors.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/eval/__init__.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/eval/calibration.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/eval/comparison.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/eval/replay.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/eval/swarm_iq.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/knowledge/__init__.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/knowledge/citation_graph.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/knowledge/correlated_agreement.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/knowledge/embedding_registry.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/knowledge/kernel_store.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/knowledge/rekor.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/knowledge/reputation.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/knowledge/swarm_memory.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/knowledge/transparency.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/mcp/__init__.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/mcp/bridge.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/mcp/client.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/mcp/provenance.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/mcp/relata_tools.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/mcp/server.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/mcp/transport.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/mind/__init__.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/mind/active.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/mind/belief.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/mind/deliberator.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/mind/diversity.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/mind/evolve.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/mind/federation.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/mind/goals.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/mind/integration.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/mind/mediator.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/mind/policy.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/mind/records.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/mind/roles.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/mind/sybil_guard.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/mind/world_model.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/namespace.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/namespace_policy.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/observability/__init__.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/observability/asgi.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/observability/cost.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/observability/otel_export.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/observability/recorder.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/observability/swarm_trace.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/orgs/context.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/orgs/deliberate.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/orgs/distributed/__init__.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/orgs/distributed/__main__.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/orgs/distributed/coordinator.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/orgs/distributed/planning.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/orgs/distributed/protocol.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/orgs/distributed/provision.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/orgs/distributed/serde.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/orgs/distributed/worker.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/orgs/experiment.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/orgs/groundtruth.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/orgs/interaction.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/orgs/intervention.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/orgs/metrics.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/orgs/model.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/orgs/quality.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/orgs/query.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/orgs/receipt.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/orgs/retrieval.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/orgs/stream.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/orgs/templates/__init__.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/orgs/think.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/orgs/tools.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/pin_policy.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/py.typed +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/responders/__init__.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/responders/anthropic.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/responders/base.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/responders/openai.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/responders/router.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/revocation.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/rule_ids.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/schemas/encrypted_statement.cddl +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/schemas/namespace_accept.cddl +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/schemas/namespace_create.cddl +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/schemas/namespace_founding_attest.cddl +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/schemas/namespace_invite.cddl +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/schemas/wire-v0.1.cddl +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/simlab/__init__.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/simlab/_persona_registry.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/simlab/_scenario_impl.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/simlab/app.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/simlab/backends/__init__.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/simlab/backends/anchor.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/simlab/backends/local.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/simlab/backends/server.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/simlab/cli_command.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/simlab/config.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/simlab/deployment.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/simlab/knowledge.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/simlab/learning.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/simlab/modes/__init__.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/simlab/modes/_eval_real_llm.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/simlab/modes/aar.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/simlab/modes/backtest.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/simlab/modes/binary_forecast.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/simlab/modes/conformance.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/simlab/modes/evaluation.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/simlab/modes/governance.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/simlab/modes/redteam.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/simlab/modes/tabletop.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/simlab/modes/tournament.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/simlab/modes/whatif.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/simlab/namespace.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/simlab/personas.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/simlab/prompt_generator.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/simlab/question_sets/geopolitics_q20.json +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/simlab/question_sets/governance_q5.json +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/simlab/question_sets/msft_outlook_q10.json +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/simlab/question_sets/whatif_q3.json +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/simlab/registry.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/simlab/runner.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/simlab/scenario.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/simlab/swarms.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/simlab/tool_handlers/__init__.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/simlab/tool_handlers/alpha_vantage.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/simlab/tool_handlers/brave.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/simlab/tool_handlers/newsapi.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/simlab/tool_handlers/openweather.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/simlab/tool_handlers/pinecone.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/simlab/tool_handlers/qdrant.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/simlab/tool_handlers/query_knowledge_base.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/simlab/tool_handlers/relata_recall.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/simlab/tool_handlers/retrieve_document.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/simlab/tool_handlers/serper.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/simlab/tool_handlers/tavily.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/simlab/tool_handlers/weaviate.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/simlab/tool_handlers/wikipedia.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/simlab/tool_handlers/wolfram.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/simlab/tool_handlers/yahoo_finance.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/simlab/tool_registry.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/simlab/topic_adapter.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/simlab/topic_questions.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/storage/__init__.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/storage/backend.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/storage/relata.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/storage/sqlite.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/sync.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/tal.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/tasks.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/testing.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/tools/__init__.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/tools/registry.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/transport/__init__.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/transport/anti_entropy.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/transport/bus.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/transport/knows_delta.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/transport/libp2p.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/transport/placement.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/transport/tcp.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/transport/tls_profile.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/types.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/uncertainty.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/wire.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/workflow/__init__.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/workflow/engine.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/workflow/plan.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/src/hypermind/workflow/repair.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/storage-backend-requirements.md +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/__init__.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/api/__init__.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/api/test_eval_endpoints.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/api/test_events_stream.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/api/test_management_app.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/chaos/__init__.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/chaos/test_gossip_amplification.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/chaos/test_kill_agent_during_rfp.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/chaos/test_partition_during_workflow.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/chaos/test_slow_consumer_backpressure.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/chaos/test_slow_peer.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/conformance/__init__.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/conformance/generate_vectors.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/conformance/vectors/SIGNING.md +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/conformance/vectors/agent-card-01.json +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/conformance/vectors/agent-card-02.json +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/conformance/vectors/capability-01.json +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/conformance/vectors/capability-02.json +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/conformance/vectors/capability-03.json +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/conformance/vectors/dispute-01.json +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/conformance/vectors/dispute-02.json +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/conformance/vectors/dispute-03.json +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/conformance/vectors/dispute-04.json +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/conformance/vectors/dispute-05.json +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/conformance/vectors/frost-01.json +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/conformance/vectors/frost-02.json +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/conformance/vectors/frost-03.json +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/conformance/vectors/knows-delta-01.json +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/conformance/vectors/knows-delta-02.json +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/conformance/vectors/mcp-prov-01.json +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/conformance/vectors/mcp-prov-02.json +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/conformance/vectors/merkle-01.json +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/conformance/vectors/merkle-02.json +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/conformance/vectors/merkle-03.json +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/conformance/vectors/merkle-04.json +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/conformance/vectors/rep-decay-01.json +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/conformance/vectors/task-01.json +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/conformance/vectors/task-02.json +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/conformance/vectors/trace-01.json +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/conformance/vectors/trace-02.json +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/conformance/vectors/wire-envelope-01.json +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/conformance/vectors/wire-envelope-02.json +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/conformance/vectors/wire-envelope-03.json +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/conformance/vectors/wire-envelope-04.json +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/conformance/vectors/wire-envelope-05.json +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/conftest.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/fake_kms.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/harness/__init__.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/harness/conftest.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/harness/test_assertion_library.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/harness/test_runner_lifecycle.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/harness/test_threat_intel_harness.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/integration/__init__.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/integration/test_kms_aws.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/integration/test_kms_azure.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/integration/test_kms_gcp.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/integration/test_kms_vault.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/integration/test_relata_server.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/orgs/_fakes.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/orgs/test_adversarial.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/orgs/test_concurrency.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/orgs/test_context.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/orgs/test_convergence.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/orgs/test_cross_shard.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/orgs/test_deliberator.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/orgs/test_distributed.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/orgs/test_embeddings.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/orgs/test_experiment.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/orgs/test_graph_retrieval.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/orgs/test_groundtruth.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/orgs/test_hybrid_retriever.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/orgs/test_interaction.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/orgs/test_intervention.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/orgs/test_lightweight.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/orgs/test_metrics.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/orgs/test_model.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/orgs/test_ner.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/orgs/test_quality.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/orgs/test_query.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/orgs/test_rag.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/orgs/test_receipt.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/orgs/test_report.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/orgs/test_scale.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/orgs/test_sim.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/orgs/test_stream.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/orgs/test_templates.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/orgs/test_think.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/orgs/test_tools.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/responders/__init__.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/responders/test_responders.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/responders/test_router.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/responders/test_structured_response.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/responders/test_tools.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/review/__init__.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/review/test_agents_parser.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/review/test_models.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/review/test_runner.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/simlab/__init__.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/simlab/conftest.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/simlab/test_app_endpoints.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/simlab/test_knowledge.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/simlab/test_knowledge_reuse.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/simlab/test_modes_aar.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/simlab/test_modes_backtest.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/simlab/test_modes_conformance.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/simlab/test_modes_evaluation.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/simlab/test_modes_governance.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/simlab/test_modes_redteam.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/simlab/test_modes_tabletop.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/simlab/test_modes_tournament.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/simlab/test_modes_whatif.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/simlab/test_personas.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/simlab/test_personas_endpoints.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/simlab/test_recorder_scoping.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/simlab/test_registry.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/simlab/test_resolve_outcomes.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/simlab/test_responder_timeout.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/simlab/test_runner.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/simlab/test_swarms.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/storage/__init__.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/storage/test_relata_backend.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/storage/test_sqlite_backend.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_active_multi_step.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_agent_card.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_agent_e2e.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_agent_edge.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_anti_entropy.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_anti_entropy_multiround.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_anti_entropy_selfheal.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_appendix_z_conformance.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_appendix_z_vectors.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_arg_dag_edge_types.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_backpressure.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_belief_revision.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_bias_detector.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_block_reason.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_calibration.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_capability.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_capability_canonical.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_capability_chain.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_capability_edge.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_capability_enforcement.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_capability_namespace_caveat.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_capability_revocation.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_citation_graph.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_cli.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_cli_interop.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_cli_orgs.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_composite_lamps_prefix.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_consult.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_consult_stream.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_consult_stream_t4.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_contract_net_disputed_award.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_contract_net_frost_award.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_contract_net_happy.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_contract_net_reputation_scoring.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_contract_net_sybil_filter.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_correlated_agreement.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_cose_encrypt_roundtrip.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_cost_tracker.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_cross_namespace_consult.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_crypto.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_dashboard.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_deliberation.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_deliberator_cap.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_deliberator_observe.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_deprecation_registry.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_determinism_corpus.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_dispute.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_dispute_fsm_full.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_dispute_mediate.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_dispute_quorum.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_dissent.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_diversity_quorum.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_dkg.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_embedding_registry.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_eval_comparison.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_examples_runnable.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_final_coverage.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_frost.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_frost_edge.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_frost_hedged_nonces.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_frost_persistence.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_frost_transcript_store_swap.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_hlc_clock_source.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_hpke_vectors.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_info_gain_routing.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_kernel_store.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_kms_backends.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_kms_fake.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_knows_delta.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_lamps_oid_canonical.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_last_lines.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_libp2p_peer_id.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_libp2p_scaffold.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_libp2p_stub.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_mcp_bridge.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_mcp_provenance.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_mcp_tools_list.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_mcp_transport.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_merkle_transparency.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_mind_active.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_mind_deliberator.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_mind_diversity_sybil_mediator.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_mind_evolve.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_mind_goals_policy.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_mind_records.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_mind_roles.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_mind_world_model.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_misc_edge.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_mtls_profile.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_namespace_lifecycle.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_namespace_policy.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_namespace_policy_acl.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_observability_asgi.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_observability_otel.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_open_factory.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_oracle_backprop.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_otel_export.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_pin_policy.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_placement_consistent_hash.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_placement_hint.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_plan_dag.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_plan_repair.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_portable_inclusion_proof.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_pq_default.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_pq_dual_vendor.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_pq_signing.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_priv_ns_conformance_coverage.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_property_based.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_protocol_version.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_public_surface_v05.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_pursue_workflow.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_rate_caveat.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_recorder_bounded.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_recorder_tail.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_reference_verifier_v2.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_rekor_client.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_rekor_downgrade.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_relata_memory_store.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_relata_tools.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_remaining_gaps.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_replay.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_reputation.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_reputation_memory.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_reputation_staleness.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_review_fixes.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_revocation.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_revocation_lifecycle.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_room_epoch.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_schema_hash_pinned.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_secret_redaction.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_self_heal_cycle1.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_self_heal_cycle2.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_self_heal_cycle3.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_self_heal_cycle3_cascade_isolate.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_self_heal_cycle3_governance.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_self_heal_cycle4.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_self_heal_cycle4_deliberator_broadcast.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_self_heal_cycle5.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_signer_protocol.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_sth_cross_gossip.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_swarm_iq.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_swarm_iq_at_scale.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_swarm_iq_recommend.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_swarm_memory.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_swarm_memory_federation.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_swarm_trace.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_swarm_vector_overflow.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_sync_agent.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_tal.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_task_handle.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_task_handle_network.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_tcp_duplicate_kid_attack.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_tcp_edge.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_tcp_final.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_tcp_read_loop_cleanup.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_tcp_transport.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_theory_of_mind.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_transport.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_two_impl_interop.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_uncertainty.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_uncertainty_edge.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_wire.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_wire_edge_cases.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_wire_kid_stability.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_wire_p3.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_wire_v2.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_wire_version.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_witness_preimage_length_prefix.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_workflow_compensation.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_workflow_engine.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/test_workflow_replay.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/usecases/__init__.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/usecases/conftest.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/usecases/test_ai_01_fed_benchmark.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/usecases/test_ai_alignment_redteam.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/usecases/test_cy_05_ir_swarm.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/usecases/test_cy_11_ransomware_intel.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/usecases/test_ed_credentials.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/usecases/test_en_grid_coordinate.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/usecases/test_fi_04_bsa_314b.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/usecases/test_fi_22_ma_dataroom.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/usecases/test_gv_01_intel_sharing.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/usecases/test_gv_21_red_team.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/usecases/test_hc_06_rare_disease.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/usecases/test_hc_21_fed_learning.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/usecases/test_lg_ediscovery.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/tests/usecases/test_mf_supply_chain.py +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/transport-rust/Cargo.toml +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/transport-rust/README.md +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/transport-rust/pyproject.toml +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/transport-rust/src/lib.rs +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/webui/index.html +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/webui/package-lock.json +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/webui/package.json +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/webui/src/App.vue +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/webui/src/api/client.ts +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/webui/src/components/ActivityCanvas.vue +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/webui/src/components/AgentContribution.vue +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/webui/src/components/BrierHeatmap.vue +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/webui/src/components/CIQTrajectory.vue +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/webui/src/components/CitationGraph.vue +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/webui/src/components/DisputeTimeline.vue +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/webui/src/components/DissentList.vue +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/webui/src/components/Logo.vue +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/webui/src/components/NowAsking.vue +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/webui/src/components/PersonaRadar.vue +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/webui/src/components/PopulationGenerator.vue +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/webui/src/components/Term.vue +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/webui/src/components/forms/SchemaForm.vue +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/webui/src/components/result/AARTimeline.vue +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/webui/src/components/result/BacktestScorecard.vue +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/webui/src/components/result/ConformanceReport.vue +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/webui/src/components/result/CrisisTabletop.vue +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/webui/src/components/result/DecisionBracket.vue +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/webui/src/components/result/EvaluationReport.vue +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/webui/src/components/result/GovernanceReceipt.vue +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/webui/src/components/result/MethodNote.vue +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/webui/src/components/result/RedTeamReport.vue +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/webui/src/components/result/ScenarioTree.vue +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/webui/src/docs/index.ts +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/webui/src/docs/render.ts +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/webui/src/main.ts +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/webui/src/router.ts +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/webui/src/stores/sims.ts +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/webui/src/styles.css +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/webui/src/types/trace.ts +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/webui/src/views/Agents.vue +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/webui/src/views/Docs.vue +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/webui/src/views/Evidence.vue +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/webui/src/views/Home.vue +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/webui/src/views/HowItWorks.vue +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/webui/src/views/Knowledge.vue +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/webui/src/views/Namespaces.vue +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/webui/src/views/Report.vue +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/webui/src/views/Security.vue +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/webui/src/views/SimCompare.vue +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/webui/src/views/SimDetail.vue +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/webui/src/views/SimList.vue +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/webui/src/views/SimLive.vue +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/webui/src/views/SimNew.vue +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/webui/src/views/Tools.vue +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/webui/src/views/UseCases.vue +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/webui/tsconfig.json +0 -0
- {hypermind-0.32.0 → hypermind-0.34.0}/webui/vite.config.ts +0 -0
|
@@ -24,3 +24,13 @@ RELATA_URL=http://localhost:9090
|
|
|
24
24
|
# RELATA_ACL_GRANT="HmClaim:read+write,HmDispute:read+write,HmReputation:read+write,HmTranscript:read+write" \
|
|
25
25
|
# relata serve
|
|
26
26
|
# Verify with: hmctl orgs doctor
|
|
27
|
+
|
|
28
|
+
# --- Tools (optional) -------------------------------------------------------
|
|
29
|
+
# Keyless: DuckDuckGo works out of the box. Add any of these to enable more:
|
|
30
|
+
# TAVILY_API_KEY=
|
|
31
|
+
# BRAVE_API_KEY=
|
|
32
|
+
# SERPER_API_KEY=
|
|
33
|
+
#
|
|
34
|
+
# MCP servers (10s–100s of tools): drop a standard `mcpServers` JSON at
|
|
35
|
+
# ~/.config/hypermind/mcp.json (or set HYPERMIND_MCP_CONFIG)
|
|
36
|
+
# e.g. {"mcpServers":{"searchapi":{"command":"npx","args":["mcp-remote","https://www.searchapi.io/mcp?token=…"]}}}
|
|
@@ -16,6 +16,26 @@ changes only on major-version bumps.
|
|
|
16
16
|
|
|
17
17
|
_Current trunk._
|
|
18
18
|
|
|
19
|
+
## [0.34.0] — 2026-07-09
|
|
20
|
+
|
|
21
|
+
### Added
|
|
22
|
+
- **100% evidence retention** — every claim now persists a COMPLETE evidence record: untruncated reasoning, verbatim LLM payload, and **full raw tool output** (previously capped at 500 chars). Kept off the size-bounded signed claim and stored durably in the agent's Relata notebook. `OrgReport.evidence()` / `evidence_for(kid)` expose it. (`responders/tools.py`, `responders/structured.py` adds `reasoning_full` + uncapped `raw_json`, `orgs/sim.py`).
|
|
23
|
+
- **Structured citations + real grounding** (`hypermind.orgs.evidence`) — parses raw tool output (searchapi JSON + DuckDuckGo text) into de-duplicated `Citation`s ranked by multi-expert corroboration. `OrgSim._retrieve` now grounds the judge/answer on **real source snippets**, not only the swarm's own summaries. `OrgReport.references()` is the study bibliography. Pure parsing, cached by claim count — no added LLM latency.
|
|
24
|
+
- **Self-refined master decomposition** — `hypermind.orgs.prompts` (planner prompt + curated few-shot exemplars, one-/multi-shot), `charter.plan_research(shots=, critique=)`, and `hypermind.orgs.refine` (`score_plan` + `plan_and_refine`) re-plan the decomposition on a structural critique (distinct areas, role diversity, tool breadth, on-topic, vs-k) **before** spending the simulation. No framework, reproducible.
|
|
25
|
+
- `RelataMemoryStore(single_tenant=True)` — omit `X-Organization-Id` for single-tenant / trial (`max_tenants:0`) servers, isolating by `session_id` (agent kid); `OrgSim(relata_single_tenant=…)`.
|
|
26
|
+
|
|
27
|
+
### Fixed
|
|
28
|
+
- **MCP transport** — 16 MB stdio buffer for MCP subprocesses; large Google Scholar/Patents results no longer trip asyncio's 64 KB `LimitOverrunError` (`orgs/mcp_config.py`).
|
|
29
|
+
- Tool-call traces key the tool name under `tool` (matching production `ToolCallingResponder`); tests aligned.
|
|
30
|
+
|
|
31
|
+
## [0.33.0] — 2026-07-09
|
|
32
|
+
|
|
33
|
+
### Added
|
|
34
|
+
- **Pluggable tools — provider registry + per-cycle gateway** (`hypermind.orgs.tool_providers`). Each `ToolProvider` declares its env gate + health; the `ToolGateway` refreshes availability **every round** and exposes only live tools (call-time gated), emitting a `tool_status` event. Built-in web search: **DuckDuckGo** (keyless) + **Tavily / Brave / Serper** (key-gated).
|
|
35
|
+
- **MCP auto-discovery** — a standard `mcpServers` JSON at `~/.config/hypermind/mcp.json` (or `$HYPERMIND_MCP_CONFIG`, same shape as Claude); every server's tools are discovered, registered, and health-checked per cycle (`attach_mcp_config`, `ToolGateway.add_mcp`). HTTP servers bridge via `npx mcp-remote <url>`.
|
|
36
|
+
- **`hmctl orgs simulate/ask --tools/--no-tools`** (default on) — wires the gateway (built-in search + MCP servers) into the run.
|
|
37
|
+
- `OrgSim(tool_gateway=…)` — per-cycle status check + live tools for tool-using seats.
|
|
38
|
+
|
|
19
39
|
## [0.32.0] — 2026-07-09
|
|
20
40
|
|
|
21
41
|
### Added
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: hypermind
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.34.0
|
|
4
4
|
Summary: Federated agent intelligence — reference SDK for the HyperMind SCITT contested-claims profile
|
|
5
5
|
Project-URL: Homepage, https://github.com/ZySec-AI/hypermind
|
|
6
6
|
Project-URL: Documentation, https://github.com/ZySec-AI/hypermind/tree/main/docs
|
|
@@ -230,7 +230,7 @@ report.print() # reputation ranking · citation graph · dispute ledger
|
|
|
230
230
|
|
|
231
231
|
- **Generic core, template library.** `OrgModel` / `Unit` / `Seat` are org-agnostic; `hypermind.orgs.templates` ships ready presets (`university`, `hospital`, `city_at_war`, `foreign_policy_cabinet`, `un_security_council`, `internet_crowd`, `research_lab`) — pure convenience data the core never imports. Roll your own network from the primitives.
|
|
232
232
|
- **Per-agent models.** Any seat can pin its own provider/model (`Seat("Professor", llm="anthropic", model="claude-opus-4-8")`), or hand `OrgSim` a router for random / cost-aware assignment.
|
|
233
|
-
- **Native tools, group-scoped.** Tools
|
|
233
|
+
- **Native tools, group-scoped + live.** Tools are granted per unit/seat and enforced (ungranted = *absent*). Real tools plug in via a **provider registry + per-cycle gateway**: built-in web search (**DuckDuckGo** keyless; Tavily/Brave/Serper key-gated), each env-gated and health-checked **every round** (🟢/🔴 status emitted). For 10s–100s of tools, drop a standard **`mcpServers` JSON** at `~/.config/hypermind/mcp.json` (same shape as Claude) — every MCP tool is auto-discovered and health-checked per cycle. `--no-tools` to disable.
|
|
234
234
|
- **Relata end-to-end.** Organisation → tenant; member → private memory session (agent kid); claims / disputes / reputation → tenant-scoped ledger rows; chain of custody → the Merkle log. Restart replays the whole org.
|
|
235
235
|
- **Study → ask (a queryable swarm).** Let the swarm learn a topic, then question it: `await sim.study(topic)` then `await sim.ask("...")` — every member recalls what it learned, reasons, and the answers are aggregated weighted by earned standing. `sim.ask` studies first automatically if you skip the explicit step.
|
|
236
236
|
- **Proper RAG.** Retrieval for `ask` is pluggable: lexical (default), semantic embeddings (`embedder=`), the claim↔entity graph (`use_graph_retrieval=True`), or `hybrid_retriever(...)` which fuses dense + graph + lexical via Reciprocal Rank Fusion with an optional cross-encoder rerank. Relata *is* the vector store + graph (`relata_retriever(..., "search_knowledge" / "find_connections")`).
|
|
@@ -142,7 +142,7 @@ report.print() # reputation ranking · citation graph · dispute ledger
|
|
|
142
142
|
|
|
143
143
|
- **Generic core, template library.** `OrgModel` / `Unit` / `Seat` are org-agnostic; `hypermind.orgs.templates` ships ready presets (`university`, `hospital`, `city_at_war`, `foreign_policy_cabinet`, `un_security_council`, `internet_crowd`, `research_lab`) — pure convenience data the core never imports. Roll your own network from the primitives.
|
|
144
144
|
- **Per-agent models.** Any seat can pin its own provider/model (`Seat("Professor", llm="anthropic", model="claude-opus-4-8")`), or hand `OrgSim` a router for random / cost-aware assignment.
|
|
145
|
-
- **Native tools, group-scoped.** Tools
|
|
145
|
+
- **Native tools, group-scoped + live.** Tools are granted per unit/seat and enforced (ungranted = *absent*). Real tools plug in via a **provider registry + per-cycle gateway**: built-in web search (**DuckDuckGo** keyless; Tavily/Brave/Serper key-gated), each env-gated and health-checked **every round** (🟢/🔴 status emitted). For 10s–100s of tools, drop a standard **`mcpServers` JSON** at `~/.config/hypermind/mcp.json` (same shape as Claude) — every MCP tool is auto-discovered and health-checked per cycle. `--no-tools` to disable.
|
|
146
146
|
- **Relata end-to-end.** Organisation → tenant; member → private memory session (agent kid); claims / disputes / reputation → tenant-scoped ledger rows; chain of custody → the Merkle log. Restart replays the whole org.
|
|
147
147
|
- **Study → ask (a queryable swarm).** Let the swarm learn a topic, then question it: `await sim.study(topic)` then `await sim.ask("...")` — every member recalls what it learned, reasons, and the answers are aggregated weighted by earned standing. `sim.ask` studies first automatically if you skip the explicit step.
|
|
148
148
|
- **Proper RAG.** Retrieval for `ask` is pluggable: lexical (default), semantic embeddings (`embedder=`), the claim↔entity graph (`use_graph_retrieval=True`), or `hybrid_retriever(...)` which fuses dense + graph + lexical via Reciprocal Rank Fusion with an optional cross-encoder rerank. Relata *is* the vector store + graph (`relata_retriever(..., "search_knowledge" / "find_connections")`).
|
|
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "hypermind"
|
|
7
|
-
version = "0.
|
|
7
|
+
version = "0.34.0"
|
|
8
8
|
description = "Federated agent intelligence — reference SDK for the HyperMind SCITT contested-claims profile"
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
requires-python = ">=3.11,<3.14"
|
|
@@ -118,6 +118,21 @@ def _run(go, dash):
|
|
|
118
118
|
return asyncio.run(go())
|
|
119
119
|
|
|
120
120
|
|
|
121
|
+
async def _build_gateway(enabled: bool):
|
|
122
|
+
"""A ToolGateway with the built-in providers + any MCP servers from
|
|
123
|
+
~/.config/hypermind/mcp.json, or None when tools are off."""
|
|
124
|
+
if not enabled:
|
|
125
|
+
return None
|
|
126
|
+
from hypermind.orgs import ToolGateway
|
|
127
|
+
from hypermind.orgs.mcp_config import attach_mcp_config
|
|
128
|
+
|
|
129
|
+
gateway = ToolGateway() # all registered providers; refresh() env-gates them
|
|
130
|
+
added = await attach_mcp_config(gateway) # connect mcp.json servers (if any)
|
|
131
|
+
if added:
|
|
132
|
+
click.echo(f"MCP: {sum(added.values())} tool(s) from {', '.join(added)}")
|
|
133
|
+
return gateway
|
|
134
|
+
|
|
135
|
+
|
|
121
136
|
def _config_paths() -> list[str]:
|
|
122
137
|
"""Where hmctl looks for persistent env, highest precedence first."""
|
|
123
138
|
import os
|
|
@@ -279,6 +294,7 @@ def _write_html(report: Any, path: str) -> None:
|
|
|
279
294
|
@click.option("--topic", required=True, help="what the org researches")
|
|
280
295
|
@click.option("--html", "html_path", default=None, help="write an HTML report to PATH")
|
|
281
296
|
@click.option("--live", is_flag=True, help="show a live colourful dashboard while it runs")
|
|
297
|
+
@click.option("--tools/--no-tools", default=True, help="enable real tools (search + MCP servers)")
|
|
282
298
|
def simulate_cmd(
|
|
283
299
|
template,
|
|
284
300
|
members,
|
|
@@ -293,6 +309,7 @@ def simulate_cmd(
|
|
|
293
309
|
topic,
|
|
294
310
|
html_path,
|
|
295
311
|
live,
|
|
312
|
+
tools,
|
|
296
313
|
) -> None:
|
|
297
314
|
"""Run a simulation and print (or save) the report."""
|
|
298
315
|
url = _require_relata(relata_url)
|
|
@@ -314,6 +331,7 @@ def simulate_cmd(
|
|
|
314
331
|
llm_model=llm_model,
|
|
315
332
|
llm_client=client,
|
|
316
333
|
on_event=dash.handle if dash else None,
|
|
334
|
+
tool_gateway=await _build_gateway(tools),
|
|
317
335
|
)
|
|
318
336
|
return await sim.simulate(topic=topic, rounds=rounds)
|
|
319
337
|
|
|
@@ -331,6 +349,7 @@ def simulate_cmd(
|
|
|
331
349
|
@click.option("--samples", type=int, default=1, help="ask N times (enables self-consistency)")
|
|
332
350
|
@click.option("--quality/--no-quality", default=True, help="score the answer (on by default)")
|
|
333
351
|
@click.option("--live", is_flag=True, help="show a live colourful dashboard during study")
|
|
352
|
+
@click.option("--tools/--no-tools", default=True, help="enable real tools (search + MCP servers)")
|
|
334
353
|
def ask_cmd(
|
|
335
354
|
template,
|
|
336
355
|
members,
|
|
@@ -347,6 +366,7 @@ def ask_cmd(
|
|
|
347
366
|
samples,
|
|
348
367
|
quality,
|
|
349
368
|
live,
|
|
369
|
+
tools,
|
|
350
370
|
) -> None:
|
|
351
371
|
"""Study a topic, then ask the swarm — with quality rubrics on by default."""
|
|
352
372
|
url = _require_relata(relata_url)
|
|
@@ -369,6 +389,7 @@ def ask_cmd(
|
|
|
369
389
|
llm_model=llm_model,
|
|
370
390
|
llm_client=client,
|
|
371
391
|
on_event=dash.handle if dash else None,
|
|
392
|
+
tool_gateway=await _build_gateway(tools),
|
|
372
393
|
)
|
|
373
394
|
async with sim:
|
|
374
395
|
await sim.study(topic or question, rounds=rounds)
|
|
@@ -73,7 +73,7 @@ open = HyperMindAgent.open
|
|
|
73
73
|
#: is held until the §External & human gates clear (IETF I-D, IANA,
|
|
74
74
|
#: third-party audit, OpenSSF acceptance, ≥3 pilots) — at that point we
|
|
75
75
|
#: cut ``1.0.0`` GA. See ROADMAP.md §Status snapshot.
|
|
76
|
-
__version__ = "0.
|
|
76
|
+
__version__ = "0.34.0"
|
|
77
77
|
|
|
78
78
|
#: SLSA build-provenance level committed for every release artefact.
|
|
79
79
|
#: Cosign keyless signing + slsa-github-generator + PEP 740 attestations
|
|
@@ -48,6 +48,7 @@ class RelataMemoryStore:
|
|
|
48
48
|
purpose: str = _PURPOSE,
|
|
49
49
|
bearer_token: str | None = None,
|
|
50
50
|
memory_factory: MemoryFactory | None = None,
|
|
51
|
+
single_tenant: bool = False,
|
|
51
52
|
) -> None:
|
|
52
53
|
self._url = base_url
|
|
53
54
|
self._ns = namespace_id
|
|
@@ -55,6 +56,10 @@ class RelataMemoryStore:
|
|
|
55
56
|
self._purpose = purpose
|
|
56
57
|
self._tok = bearer_token
|
|
57
58
|
self._factory = memory_factory
|
|
59
|
+
# Single-tenant servers (e.g. a trial license with max_tenants=0) reject
|
|
60
|
+
# any X-Organization-Id; omit the tenant header and rely on session_id
|
|
61
|
+
# (the agent kid) for per-agent isolation.
|
|
62
|
+
self._single_tenant = single_tenant
|
|
58
63
|
self._m: Any = None
|
|
59
64
|
|
|
60
65
|
def open(self) -> None:
|
|
@@ -65,12 +70,15 @@ class RelataMemoryStore:
|
|
|
65
70
|
else: # pragma: no cover - requires the optional `relata` SDK + live server
|
|
66
71
|
from relata import Memory
|
|
67
72
|
|
|
73
|
+
# Multi-tenant: partition by X-Organization-Id. Single-tenant: omit it
|
|
74
|
+
# (the server rejects org headers) and isolate by session_id alone.
|
|
75
|
+
extra = {} if self._single_tenant else {"X-Organization-Id": self._ns}
|
|
68
76
|
self._m = Memory(
|
|
69
77
|
self._url,
|
|
70
78
|
purpose=self._purpose,
|
|
71
79
|
bearer_token=self._tok,
|
|
72
80
|
session_id=self._session, # per-agent partition
|
|
73
|
-
extra_headers=
|
|
81
|
+
extra_headers=extra,
|
|
74
82
|
)
|
|
75
83
|
|
|
76
84
|
def close(self) -> None:
|
|
@@ -93,7 +101,7 @@ class RelataMemoryStore:
|
|
|
93
101
|
|
|
94
102
|
def remember_batch(
|
|
95
103
|
self,
|
|
96
|
-
items:
|
|
104
|
+
items: list[str | dict],
|
|
97
105
|
*,
|
|
98
106
|
session_id: str | None = None,
|
|
99
107
|
) -> list[str]:
|
|
@@ -24,7 +24,9 @@ worked examples of the mapping.
|
|
|
24
24
|
|
|
25
25
|
from __future__ import annotations
|
|
26
26
|
|
|
27
|
+
from hypermind.orgs.charter import ResearchPlan, Subsection, build_expert_model, plan_research
|
|
27
28
|
from hypermind.orgs.context import ContextBuilder, default_context_builder
|
|
29
|
+
from hypermind.orgs.refine import plan_and_refine, score_plan
|
|
28
30
|
from hypermind.orgs.deliberate import build_deliberator, policies_for_role
|
|
29
31
|
from hypermind.orgs.experiment import (
|
|
30
32
|
Experiment,
|
|
@@ -51,6 +53,12 @@ from hypermind.orgs.intervention import (
|
|
|
51
53
|
Intervention,
|
|
52
54
|
RemoveMember,
|
|
53
55
|
)
|
|
56
|
+
from hypermind.orgs.mcp_config import (
|
|
57
|
+
attach_mcp_config,
|
|
58
|
+
config_path,
|
|
59
|
+
connect_mcp_server,
|
|
60
|
+
load_mcp_config,
|
|
61
|
+
)
|
|
54
62
|
from hypermind.orgs.metrics import ScoreCard, compute_scorecard
|
|
55
63
|
from hypermind.orgs.model import (
|
|
56
64
|
DynamicsConfig,
|
|
@@ -83,6 +91,13 @@ from hypermind.orgs.retrieval import (
|
|
|
83
91
|
)
|
|
84
92
|
from hypermind.orgs.sim import OrgSim
|
|
85
93
|
from hypermind.orgs.stream import graph_snapshot
|
|
94
|
+
from hypermind.orgs.tool_providers import (
|
|
95
|
+
ToolGateway,
|
|
96
|
+
ToolProvider,
|
|
97
|
+
get_provider,
|
|
98
|
+
list_providers,
|
|
99
|
+
register_provider,
|
|
100
|
+
)
|
|
86
101
|
from hypermind.orgs.tools import (
|
|
87
102
|
build_tool,
|
|
88
103
|
declarative_grants,
|
|
@@ -117,39 +132,54 @@ __all__ = [
|
|
|
117
132
|
"OrgSim",
|
|
118
133
|
"QualityReport",
|
|
119
134
|
"RemoveMember",
|
|
135
|
+
"ResearchPlan",
|
|
120
136
|
"ScoreCard",
|
|
121
137
|
"Seat",
|
|
122
138
|
"Slot",
|
|
123
139
|
"StaticGroundTruth",
|
|
140
|
+
"Subsection",
|
|
141
|
+
"ToolGateway",
|
|
142
|
+
"ToolProvider",
|
|
124
143
|
"Unit",
|
|
125
144
|
"Variant",
|
|
126
145
|
"VariantResult",
|
|
127
146
|
"VerifyResult",
|
|
128
147
|
"aggregate_answer",
|
|
129
148
|
"assess_answer",
|
|
149
|
+
"attach_mcp_config",
|
|
130
150
|
"build_deliberator",
|
|
151
|
+
"build_expert_model",
|
|
131
152
|
"build_receipt",
|
|
132
153
|
"build_tool",
|
|
133
154
|
"chat_ner_extractor",
|
|
134
155
|
"compute_scorecard",
|
|
156
|
+
"config_path",
|
|
157
|
+
"connect_mcp_server",
|
|
135
158
|
"cosine",
|
|
136
159
|
"declarative_grants",
|
|
137
160
|
"default_context_builder",
|
|
138
161
|
"extract_mentions",
|
|
139
162
|
"get_interaction",
|
|
163
|
+
"get_provider",
|
|
140
164
|
"graph_retriever",
|
|
141
165
|
"graph_snapshot",
|
|
142
166
|
"hybrid_retriever",
|
|
167
|
+
"list_providers",
|
|
143
168
|
"list_tools",
|
|
144
169
|
"llm_judge",
|
|
145
170
|
"llm_ner_extractor",
|
|
171
|
+
"load_mcp_config",
|
|
146
172
|
"openai_embedder",
|
|
147
173
|
"pioneer_ner_extractor",
|
|
174
|
+
"plan_and_refine",
|
|
175
|
+
"plan_research",
|
|
148
176
|
"policies_for_role",
|
|
149
177
|
"random_grants",
|
|
150
178
|
"reciprocal_rank_fusion",
|
|
179
|
+
"register_provider",
|
|
151
180
|
"register_tool",
|
|
152
181
|
"relata_retriever",
|
|
182
|
+
"score_plan",
|
|
153
183
|
"unregister_tool",
|
|
154
184
|
"verify_receipt",
|
|
155
185
|
]
|
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
"""Master-planned research teams (#charter).
|
|
2
|
+
|
|
3
|
+
Instead of a fixed template staffed with N clones, a **master (principal
|
|
4
|
+
investigator)** decomposes a research problem into distinct sub-areas and staffs
|
|
5
|
+
each with a purpose-built **expert** — a role, a persona/system-prompt, a skill
|
|
6
|
+
set, preferred tools, and a precise research angle. :func:`plan_research` runs
|
|
7
|
+
that decomposition (one LLM call); :func:`build_expert_model` turns the plan into
|
|
8
|
+
an :class:`OrgModel` (one unit per sub-area + a coordination unit with the PI
|
|
9
|
+
oracle and a synthesist). The result is a genuinely differentiated swarm: each
|
|
10
|
+
expert attacks a different angle with different tools, rather than everyone
|
|
11
|
+
running the same search.
|
|
12
|
+
"""
|
|
13
|
+
|
|
14
|
+
from __future__ import annotations
|
|
15
|
+
|
|
16
|
+
import json
|
|
17
|
+
import re
|
|
18
|
+
from dataclasses import dataclass, field
|
|
19
|
+
from typing import Any
|
|
20
|
+
|
|
21
|
+
from hypermind.orgs.model import VALID_ROLES, DynamicsConfig, OrgModel, Seat, Unit
|
|
22
|
+
from hypermind.orgs.prompts import KNOWN_TOOLS, Exemplar, build_plan_messages
|
|
23
|
+
|
|
24
|
+
# Prompt contract + few-shot exemplars live in prompts.py (one editable place).
|
|
25
|
+
_KNOWN_TOOLS = KNOWN_TOOLS
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
@dataclass
|
|
29
|
+
class Subsection:
|
|
30
|
+
area: str
|
|
31
|
+
expert_title: str
|
|
32
|
+
role: str
|
|
33
|
+
persona: str
|
|
34
|
+
angle: str
|
|
35
|
+
skills: list[str] = field(default_factory=list)
|
|
36
|
+
tools: list[str] = field(default_factory=list)
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
@dataclass
|
|
40
|
+
class ResearchPlan:
|
|
41
|
+
topic: str
|
|
42
|
+
title: str
|
|
43
|
+
subsections: list[Subsection]
|
|
44
|
+
|
|
45
|
+
def to_dict(self) -> dict[str, Any]:
|
|
46
|
+
return {
|
|
47
|
+
"topic": self.topic,
|
|
48
|
+
"title": self.title,
|
|
49
|
+
"subsections": [vars(s) for s in self.subsections],
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
def _slug(s: str, i: int) -> str:
|
|
54
|
+
out = re.sub(r"[^a-z0-9]+", "-", s.lower()).strip("-")[:24]
|
|
55
|
+
return out or f"area-{i}"
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
def plan_from_dict(topic: str, data: dict[str, Any]) -> ResearchPlan:
|
|
59
|
+
"""Build a validated ResearchPlan from a planner's JSON (lenient)."""
|
|
60
|
+
subs: list[Subsection] = []
|
|
61
|
+
for s in data.get("subsections", []):
|
|
62
|
+
role = str(s.get("role", "scout")).lower()
|
|
63
|
+
if role not in VALID_ROLES:
|
|
64
|
+
role = "scout"
|
|
65
|
+
tools = [t for t in s.get("tools", []) if t in _KNOWN_TOOLS] or ["web_search_ddg"]
|
|
66
|
+
subs.append(
|
|
67
|
+
Subsection(
|
|
68
|
+
area=str(s.get("area", "area")),
|
|
69
|
+
expert_title=str(s.get("expert_title", "Researcher"))[:48],
|
|
70
|
+
role=role,
|
|
71
|
+
persona=str(s.get("persona", "A domain expert.")),
|
|
72
|
+
angle=str(s.get("angle", "")),
|
|
73
|
+
skills=[str(x) for x in s.get("skills", [])][:6],
|
|
74
|
+
tools=tools,
|
|
75
|
+
)
|
|
76
|
+
)
|
|
77
|
+
return ResearchPlan(topic=topic, title=str(data.get("title", topic))[:120], subsections=subs)
|
|
78
|
+
|
|
79
|
+
|
|
80
|
+
async def plan_research(
|
|
81
|
+
topic: str,
|
|
82
|
+
*,
|
|
83
|
+
client: Any,
|
|
84
|
+
model: str,
|
|
85
|
+
k: int = 6,
|
|
86
|
+
shots: int = 2,
|
|
87
|
+
critique: str | None = None,
|
|
88
|
+
exemplars: list[Exemplar] | None = None,
|
|
89
|
+
) -> ResearchPlan:
|
|
90
|
+
"""Master decomposition: one LLM call → a ResearchPlan of expert subsections.
|
|
91
|
+
|
|
92
|
+
``shots`` few-shot exemplars (0 = zero-shot) steer the decomposition toward
|
|
93
|
+
distinct, well-staffed experts; ``critique`` lets a prior scored run ask for
|
|
94
|
+
a targeted revision (self-refine loop). See :mod:`hypermind.orgs.prompts`."""
|
|
95
|
+
resp = await client.chat.completions.create(
|
|
96
|
+
model=model,
|
|
97
|
+
temperature=0.3,
|
|
98
|
+
messages=build_plan_messages(
|
|
99
|
+
topic, k=k, shots=shots, critique=critique, exemplars=exemplars
|
|
100
|
+
),
|
|
101
|
+
response_format={"type": "json_object"},
|
|
102
|
+
)
|
|
103
|
+
content = resp.choices[0].message.content or "{}"
|
|
104
|
+
m = re.search(r"\{.*\}", content, re.S)
|
|
105
|
+
data = json.loads(m.group(0)) if m else {}
|
|
106
|
+
plan = plan_from_dict(topic, data)
|
|
107
|
+
if not plan.subsections: # planner returned nothing usable → one generalist
|
|
108
|
+
plan.subsections = [
|
|
109
|
+
Subsection("general", "Lead Researcher", "generalist", "A rigorous generalist.", topic)
|
|
110
|
+
]
|
|
111
|
+
return plan
|
|
112
|
+
|
|
113
|
+
|
|
114
|
+
def build_expert_model(
|
|
115
|
+
plan: ResearchPlan, *, namespace: str, dynamics: DynamicsConfig | None = None
|
|
116
|
+
) -> OrgModel:
|
|
117
|
+
"""Turn a ResearchPlan into an OrgModel: one unit per expert sub-area + a
|
|
118
|
+
coordination unit (PI oracle + synthesist) so disputes resolve and findings
|
|
119
|
+
are synthesised across areas."""
|
|
120
|
+
units: list[Unit] = []
|
|
121
|
+
seen: set[str] = set()
|
|
122
|
+
for i, s in enumerate(plan.subsections):
|
|
123
|
+
name = _slug(s.area, i)
|
|
124
|
+
while name in seen: # keep unit names unique
|
|
125
|
+
name = f"{name}-{i}"
|
|
126
|
+
seen.add(name)
|
|
127
|
+
system = f"{s.persona}\nYour research angle: {s.angle}" if s.angle else s.persona
|
|
128
|
+
units.append(
|
|
129
|
+
Unit(
|
|
130
|
+
name=name,
|
|
131
|
+
seats=(
|
|
132
|
+
Seat(
|
|
133
|
+
title=s.expert_title or f"Expert {i + 1}",
|
|
134
|
+
role=s.role,
|
|
135
|
+
system=system,
|
|
136
|
+
authority=0.6,
|
|
137
|
+
tools=tuple(s.tools),
|
|
138
|
+
),
|
|
139
|
+
),
|
|
140
|
+
)
|
|
141
|
+
)
|
|
142
|
+
units.append(
|
|
143
|
+
Unit(
|
|
144
|
+
name="coordination",
|
|
145
|
+
seats=(
|
|
146
|
+
Seat(
|
|
147
|
+
"Principal Investigator", role="oracle", authority=0.95,
|
|
148
|
+
system="You are the PI. Ground and adjudicate claims across sub-areas; "
|
|
149
|
+
"reward rigor and evidence, penalise hand-waving.",
|
|
150
|
+
tools=("searchapi_google_scholar",),
|
|
151
|
+
),
|
|
152
|
+
Seat(
|
|
153
|
+
"Synthesist", role="synthesist", authority=0.8,
|
|
154
|
+
system="You synthesise findings across the lab's sub-areas into a coherent "
|
|
155
|
+
"position, citing the strongest evidence.",
|
|
156
|
+
tools=("web_search_ddg",),
|
|
157
|
+
),
|
|
158
|
+
),
|
|
159
|
+
)
|
|
160
|
+
)
|
|
161
|
+
return OrgModel(
|
|
162
|
+
name=plan.title or "research", namespace=namespace, units=tuple(units),
|
|
163
|
+
dynamics=dynamics or DynamicsConfig(rounds=6),
|
|
164
|
+
)
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
"""Turn captured raw tool output into structured, usable citations (#evidence).
|
|
2
|
+
|
|
3
|
+
We already persist every tool call's full raw output (see ``sim._publish``). This
|
|
4
|
+
module parses that JSON/text into :class:`Citation` records — title, url,
|
|
5
|
+
snippet, authors, year — so the swarm can *use* its primary sources instead of
|
|
6
|
+
only its own summaries:
|
|
7
|
+
|
|
8
|
+
* **grounding** — feed real source snippets to the judge (an external check,
|
|
9
|
+
not summary-vs-summary);
|
|
10
|
+
* **bibliography** — a de-duplicated, multi-expert-ranked reference list;
|
|
11
|
+
* **retrieval** — real passages for later rounds.
|
|
12
|
+
|
|
13
|
+
Everything here is pure parsing (no LLM, no network) — cheap enough to run per
|
|
14
|
+
retrieval and cached by claim count in the engine, so it adds no latency.
|
|
15
|
+
"""
|
|
16
|
+
|
|
17
|
+
from __future__ import annotations
|
|
18
|
+
|
|
19
|
+
import json
|
|
20
|
+
import re
|
|
21
|
+
from dataclasses import dataclass, field
|
|
22
|
+
|
|
23
|
+
_YEAR = re.compile(r"\b(19|20)\d{2}\b")
|
|
24
|
+
_DDG_URL = re.compile(r"\((https?://[^)]+)\)\s*$")
|
|
25
|
+
# searchapi/SERP shapes vary by endpoint; these are the arrays that hold hits.
|
|
26
|
+
_RESULT_KEYS = ("organic_results", "results", "scholar_results", "news_results", "items")
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
@dataclass
|
|
30
|
+
class Citation:
|
|
31
|
+
title: str
|
|
32
|
+
url: str = ""
|
|
33
|
+
snippet: str = ""
|
|
34
|
+
authors: str = ""
|
|
35
|
+
year: str = ""
|
|
36
|
+
source: str = "" # the tool that surfaced it
|
|
37
|
+
found_by: set[str] = field(default_factory=set) # expert labels that cited it
|
|
38
|
+
|
|
39
|
+
def key(self) -> str:
|
|
40
|
+
"""Dedup key: prefer URL, else normalised title."""
|
|
41
|
+
return (self.url or self.title).strip().lower()
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
def _year_of(*texts: str) -> str:
|
|
45
|
+
for t in texts:
|
|
46
|
+
m = _YEAR.search(t or "")
|
|
47
|
+
if m:
|
|
48
|
+
return m.group(0)
|
|
49
|
+
return ""
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
def parse_tool_result(tool: str, result: str) -> list[Citation]:
|
|
53
|
+
"""Parse one tool result (searchapi JSON or DuckDuckGo text) into citations.
|
|
54
|
+
|
|
55
|
+
Lenient by design: unknown shapes yield an empty list, never an error."""
|
|
56
|
+
result = result or ""
|
|
57
|
+
out: list[Citation] = []
|
|
58
|
+
try:
|
|
59
|
+
data = json.loads(result)
|
|
60
|
+
except (json.JSONDecodeError, ValueError):
|
|
61
|
+
data = None
|
|
62
|
+
|
|
63
|
+
if isinstance(data, dict):
|
|
64
|
+
arr = next((data[k] for k in _RESULT_KEYS if isinstance(data.get(k), list)), None)
|
|
65
|
+
for r in arr or []:
|
|
66
|
+
if not isinstance(r, dict):
|
|
67
|
+
continue
|
|
68
|
+
title = str(r.get("title") or r.get("name") or "").strip()
|
|
69
|
+
url = str(r.get("link") or r.get("url") or r.get("patent_link") or "").strip()
|
|
70
|
+
snippet = str(r.get("snippet") or r.get("description") or r.get("abstract") or "").strip()
|
|
71
|
+
pub = r.get("publication_info")
|
|
72
|
+
authors = str(pub.get("summary", "")).strip() if isinstance(pub, dict) else ""
|
|
73
|
+
year = _year_of(authors, str(r.get("year", "")), title)
|
|
74
|
+
if title or url:
|
|
75
|
+
out.append(Citation(title, url, snippet, authors, year, tool))
|
|
76
|
+
else:
|
|
77
|
+
# DuckDuckGo _fmt lines: "- title: snippet (url)"
|
|
78
|
+
for line in result.splitlines():
|
|
79
|
+
line = line.strip().lstrip("-").strip()
|
|
80
|
+
if not line:
|
|
81
|
+
continue
|
|
82
|
+
m = _DDG_URL.search(line)
|
|
83
|
+
if not m: # real result lines carry a "(url)"; skip free prose
|
|
84
|
+
continue
|
|
85
|
+
url, line = m.group(1), line[: m.start()].strip()
|
|
86
|
+
title, _sep, snippet = line.partition(":")
|
|
87
|
+
out.append(Citation(title.strip(), url, snippet.strip(), "", _year_of(line), tool))
|
|
88
|
+
return out
|
|
89
|
+
|
|
90
|
+
|
|
91
|
+
def extract_citations(evidence_records: list[dict]) -> list[Citation]:
|
|
92
|
+
"""Parse + de-duplicate citations across all evidence records.
|
|
93
|
+
|
|
94
|
+
Merges duplicates (same URL/title), unions the experts that surfaced each,
|
|
95
|
+
keeps the longest snippet, and ranks by **multi-expert corroboration** then
|
|
96
|
+
snippet richness — sources several experts independently found rank first."""
|
|
97
|
+
by_key: dict[str, Citation] = {}
|
|
98
|
+
for rec in evidence_records:
|
|
99
|
+
by = rec.get("by")
|
|
100
|
+
for tc in rec.get("tool_calls", []):
|
|
101
|
+
for c in parse_tool_result(str(tc.get("tool", "")), str(tc.get("result", ""))):
|
|
102
|
+
k = c.key()
|
|
103
|
+
if not k:
|
|
104
|
+
continue
|
|
105
|
+
cur = by_key.get(k)
|
|
106
|
+
if cur is None:
|
|
107
|
+
if by:
|
|
108
|
+
c.found_by.add(by)
|
|
109
|
+
by_key[k] = c
|
|
110
|
+
else:
|
|
111
|
+
if by:
|
|
112
|
+
cur.found_by.add(by)
|
|
113
|
+
if len(c.snippet) > len(cur.snippet):
|
|
114
|
+
cur.snippet = c.snippet
|
|
115
|
+
if not cur.year:
|
|
116
|
+
cur.year = c.year
|
|
117
|
+
cites = list(by_key.values())
|
|
118
|
+
cites.sort(key=lambda c: (-len(c.found_by), -len(c.snippet), c.title))
|
|
119
|
+
return cites
|
|
120
|
+
|
|
121
|
+
|
|
122
|
+
def citation_context(cites: list[Citation], k: int) -> list[tuple[str, str]]:
|
|
123
|
+
"""Top-``k`` citations as ``(source_label, text)`` grounding pairs — real
|
|
124
|
+
source snippets for the judge/answer to ground on."""
|
|
125
|
+
out: list[tuple[str, str]] = []
|
|
126
|
+
for c in cites[: max(0, k)]:
|
|
127
|
+
head = c.title or c.url or "source"
|
|
128
|
+
meta = f" ({c.authors})" if c.authors else (f" ({c.year})" if c.year else "")
|
|
129
|
+
body = c.snippet or c.title
|
|
130
|
+
out.append((f"src:{c.source}", f"{head}{meta}: {body}".strip()))
|
|
131
|
+
return out
|