hypermind 2.4.0__tar.gz → 2.4.2__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-2.4.0 → hypermind-2.4.2}/.github/workflows/release.yml +6 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/CHANGELOG.md +90 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/CLAUDE.md +2 -2
- {hypermind-2.4.0 → hypermind-2.4.2}/PKG-INFO +1 -1
- {hypermind-2.4.0 → hypermind-2.4.2}/pyproject.toml +1 -1
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/agent.py +1 -1
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/storage/relata.py +88 -33
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/viz/canvas_html.py +33 -2
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/viz/snapshot.py +49 -1
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/storage/test_relata_backend.py +70 -1
- hypermind-2.4.2/tests/test_agent_cite_default.py +24 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_relata_cbor_disputes.py +2 -1
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_storage_relata_sentinels.py +1 -1
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/viz/test_canvas_html.py +22 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/viz/test_relata.py +96 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/viz/test_snapshot.py +113 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/.editorconfig +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/.env.example +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/.gitattributes +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/.githooks/pre-push +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/.github/FUNDING.yml +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/.github/renovate.json +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/.github/workflows/check-license.yml +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/.github/workflows/code-review-pr.yml +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/.github/workflows/hotfix-security.yml +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/.github/workflows/issue-auto-fix.yml +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/.github/workflows/issue-triage.yml +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/.github/workflows/pr-standards.yml +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/.github/workflows/quality.yml +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/.github/workflows/release-simple.yml.bak +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/.github/workflows/rust-ci.yml +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/.github/workflows/security.yml +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/.github/workflows/stale.yml +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/.github/workflows-disabled/branch-flow-check.yml +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/.github/workflows-disabled/chaos.yml +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/.github/workflows-disabled/check-license.yml +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/.github/workflows-disabled/ci.yml +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/.github/workflows-disabled/code-freeze.yml +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/.github/workflows-disabled/code-review-pr.yml +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/.github/workflows-disabled/code-review.yml +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/.github/workflows-disabled/codeql.yml +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/.github/workflows-disabled/dco.yml +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/.github/workflows-disabled/docs-to-wiki.yml +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/.github/workflows-disabled/docs.yml +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/.github/workflows-disabled/formal.yml +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/.github/workflows-disabled/fuzz.yml +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/.github/workflows-disabled/hotfix-security.yml +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/.github/workflows-disabled/issue-auto-fix.yml +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/.github/workflows-disabled/issue-triage.yml +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/.github/workflows-disabled/merge-comment.yml +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/.github/workflows-disabled/pip-audit.yml +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/.github/workflows-disabled/pr-standards.yml +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/.github/workflows-disabled/quality.yml +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/.github/workflows-disabled/sbom.yml +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/.github/workflows-disabled/scorecard.yml +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/.github/workflows-disabled/security.yml +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/.github/workflows-disabled/sprint-retro.yml +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/.github/workflows-disabled/stale.yml +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/.gitignore +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/.gitleaks.toml +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/.gitleaksignore +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/.pre-commit-config.yaml +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/.tool-versions +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/CODEOWNERS +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/CODE_OF_CONDUCT.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/CONTRIBUTING.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/LICENSE +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/Makefile +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/README.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/SECURITY.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/bench/README.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/bench/__init__.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/bench/baselines/v0.6.json +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/bench/bench_consult.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/bench/bench_dispute.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/bench/bench_publish.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/bench/coordination/README.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/bench/coordination/__init__.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/bench/coordination/baselines/v0.10.json +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/bench/coordination/bench_rfp_latency.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/bench/coordination/bench_task_throughput.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/bench/coordination/bench_workflow_replay.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/bench/coordination/run_all.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/bench/question_sets/geopolitics_q20.json +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/bench/question_sets/msft_outlook_q10.json +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/bench/run_bench.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/chaos/README.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/chaos/__init__.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/chaos/p1_partition_recovery.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/chaos/p2_witness_compromise.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/chaos/p3_key_rotation.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/chaos/p4_dispute_backlog.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/chaos/p5_wire_cutover.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/chaos/p6_quorum_loss.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/chaos/p7_clock_skew.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/chaos/p8_recorder_outage.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/chaos/run_chaos.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/deploy/.env.example +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/deploy/Dockerfile +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/deploy/Dockerfile.mcp +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/deploy/Dockerfile.mcp-http +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/deploy/README.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/deploy/docker-compose.mcp-http.yml +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/deploy/docker-compose.mcp.yml +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/deploy/k8s/hypermind-deployment.yaml +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/deploy/k8s/orgs-distributed.yaml +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/deploy/mcp-http-entrypoint.sh +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/deploy/mcp.example.toml +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/deploy/relata-serve.sh +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/deploy/standalone/.env.example +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/deploy/standalone/.gitignore +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/deploy/standalone/README.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/deploy/standalone/config/mcp.example.json +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/deploy/standalone/docker-compose.yml +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/deploy/standalone/setup.sh +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/deploy/systemd/hypermind.service +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/INDEX.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/SIMLAB.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/_meta/glossary.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/_meta/provenance.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/_meta/public-surface.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/_meta/standards-map.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/adr/0001-tcp-federation-chosen-as-v1-transport.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/adr/0002-cloud-kms-signing-removed-local-signer-is-shipped-backend.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/adr/0003-libp2p-deferred-to-optional-external-binding.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/adr/0004-verified-corpus-is-a-first-class-product-surface.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/adr/0005-ground-truth-anchoring-is-tiered-and-provenance-bearing.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/adr/0006-three-layer-event-driven-integration.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/adr/0007-per-agent-deliberator-with-declarative-role-bundles.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/adr/0008-llm-decomposed-expert-seats-and-reasoning-strategies.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/adr/0009-dual-storage-backend-sqlite-local-default-and-relata-federated.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/adr/0010-composite-ed25519-mldsa65-signing-pq-hybrid.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/adr/README.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/api/agent.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/api/agent_card.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/api/capability.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/api/consult.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/api/contract_net.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/api/crypto.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/api/dataset.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/api/dispute.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/api/errors.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/api/eval.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/api/ingest.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/api/integrations.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/api/knowledge.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/api/mcp.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/api/mind.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/api/moa.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/api/namespace.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/api/observability.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/api/orgs.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/api/responders.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/api/revocation.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/api/simlab-openapi.yaml +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/api/simlab.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/api/storage.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/api/sync.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/api/tal.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/api/tasks.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/api/testing.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/api/transport.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/api/types.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/api/uncertainty.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/api/wire.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/assets/hero-swarm.svg +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/audit/docs-vs-code-alignment-2026-07-25.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/audit/docs-vs-code-alignment-2026-07-27.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/audit/findings.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/audit/scope.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/concepts.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/configuration.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/conformance/authority.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/conformance/bake-off-report.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/conformance/mark-policy.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/decide/01-disqualifiers.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/decide/02-alternatives.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/decide/03-incentive-aligned-cases.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/decide/04-use-cases.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/deploy/add-mcp-server.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/deploy/add-tool-provider.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/deploy/index.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/deploy/mcp-connect.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/deploy/quickstart.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/deploy/rest-api.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/deploy/scheduled-research.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/deploy/troubleshooting.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/deploy/use-cases.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/deploy/write-scenario.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/design/01-architecture.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/design/02-traces.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/design/03-failure-modes.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/design/04-poisoning-defenses.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/design/05-deployment-topology.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/eval-programme.html +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/feature-matrix.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/getting-started.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/governance/cna.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/governance/foundation-evaluation.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/index.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/integrations.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/legal/export-classification.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/lts.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/migrate/v0.x-to-v1.0.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/onboarding/00-prerequisites.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/onboarding/README.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/onboarding/after.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/onboarding/exercises/e01-run-the-loop.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/onboarding/exercises/e02-draw-the-architecture.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/onboarding/exercises/e03-trace-a-claim.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/onboarding/exercises/e04-read-a-spec-section.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/onboarding/exercises/e05-break-it.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/onboarding/exercises/e06-add-a-test.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/onboarding/exercises/e07-first-pr.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/onboarding/glossary.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/onboarding/topics/00-what-is-hypermind.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/onboarding/topics/01-agents-and-swarms.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/onboarding/topics/02-architecture-tour.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/onboarding/topics/03-spec-literacy.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/onboarding/topics/04-cryptography.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/onboarding/topics/05-cbor-cose.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/onboarding/topics/06-transparency-logs.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/onboarding/topics/07-distributed-systems.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/onboarding/topics/08-async-python.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/onboarding/topics/09-security-mindset.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/onboarding/week-1-foundations.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/onboarding/week-2-deep-dive.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/operate/01-deployment.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/operate/02-runbook.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/operate/03-resource-budget.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/operate/backup-restore.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/operate/data-residency.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/operate/key-rotation.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/operate/runbooks/dispute-backlog-drain.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/operate/runbooks/key-rotation.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/operate/runbooks/kms-rotation.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/operate/runbooks/multi-host-deploy.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/operate/runbooks/partition-heal.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/operate/runbooks/quorum-loss.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/operate/runbooks/rfp-dispute-triage.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/operate/runbooks/wire-cutover.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/operate/runbooks/witness-compromise.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/operate/runbooks/workflow-replay.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/operate/slo.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/paper/00-patent.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/paper/hypermind-paper-draft.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/paper/hypermind-paper.docx +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/paper/hypermind-paper.tex +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/project/autonomy-audit.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/project/charter.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/project/governance.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/project/maintainers.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/project/repo-map.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/project/roadmap.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/project/v2.0-plan.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/quickstart.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/release-notes/v1.0.0.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/release-notes/v1.1.0.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/release-notes/v1.10.1.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/release-notes/v1.11.0.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/release-notes/v1.12.0.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/release-notes/v1.12.1.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/release-notes/v1.13.0-draft.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/release-notes/v1.2.0.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/release-notes/v1.3.0.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/release-notes/v1.4.0.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/release-notes/v1.5.0.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/release-notes/v1.6.0.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/release-notes/v1.6.1.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/release-notes/v1.6.2.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/release-notes/v1.6.3.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/release-notes/v1.6.4.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/release-notes/v1.6.5.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/release-notes/v1.6.6.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/release-notes/v1.6.7.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/release-notes/v1.6.8.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/release-notes/v1.6.9.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/release-notes/v1.7.0.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/release-notes/v1.7.1.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/release-notes/v1.7.10.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/release-notes/v1.7.2.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/release-notes/v1.7.3.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/release-notes/v1.7.4.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/release-notes/v1.7.5.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/release-notes/v1.7.6.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/release-notes/v1.7.7.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/release-notes/v1.7.8.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/release-notes/v1.7.9.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/release-notes/v1.8.0.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/release-notes/v1.8.1.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/release-notes/v1.8.2.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/release-notes/v1.8.3.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/release-notes/v1.9.0.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/release-notes/v1.9.1.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/release-notes/v1.9.3.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/release-notes/v1.9.4.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/release-notes/v1.9.5.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/release-notes/v1.9.6.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/release-notes/v1.9.7.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/release-notes/v2.0.0.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/release-notes/v2.1.0.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/release-notes/v2.1.1.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/release-notes/v2.1.2.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/release-notes/v2.1.3.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/release-notes/v2.1.4.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/release-notes/v2.1.5.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/release-notes/v2.2.0.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/release-notes/v2.2.1.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/release-notes/v2.3.0.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/security/threat-model.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/simlab/modes.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/simulations.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/sop-knowledge-quality.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/spec/00-overview.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/spec/01-transport.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/spec/02-cryptography.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/spec/03-messages.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/spec/04-knowledge-model.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/spec/05-routing.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/spec/06-conformance.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/spec/07-trust-access-layer.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/spec/08-onboarding-contract.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/spec/09-agent-sdk.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/spec/10-disputes.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/spec/11-witness-transparency.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/spec/12-governance.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/spec/13-observability.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/spec/14-threat-model.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/spec/15-living-transmission.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/spec/16-reference-comparisons.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/spec/17-upgrade-v1.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/spec/18-revocation.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/spec/19-autonomy-contract.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/spec/20-swarm-intelligence.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/spec/21-private-namespaces.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/spec/22-transport-mtls.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/spec/23-envelope-encryption.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/spec/24-namespace-identity.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/spec/25-capability-extensions.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/spec/26-workflow.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/spec/27-contract-net.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/spec/28-distributed-trace.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/spec/29-verified-corpus.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/spec/30-ground-truth-anchor.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/spec/31-deep-research-engine.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/spec/32-belief-state.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/spec/appendix-N-calibration.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/spec/appendix-TLA.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/spec/appendix-z.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/spec/errata.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/spec/index.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/spec/invariants.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/spec/normative-trace.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/supply-chain/sbom.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/supply-chain/slsa.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/supply-chain/verify-self.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/sustainability.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/docs/verified-corpus.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/examples/01_hello_world.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/examples/02_two_agents_dispute.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/examples/03_consult_panel.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/examples/04_oracle_resolve.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/examples/05_consult_to_synthesis.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/examples/06_hybrid_pq.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/examples/07_frost_threshold.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/examples/08_ramp_and_diagnostics.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/examples/09_audit_export_chain.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/examples/10_autonomous_agent.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/examples/11_swarm_deliberation.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/examples/12_swarm_iq_scorecard.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/examples/13_role_specialisation.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/examples/14_active_learning_loop.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/examples/16_wire_message.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/examples/17_tool_delegation.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/examples/18_custom_responder.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/examples/19_governance.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/examples/20_conformance_check.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/examples/21_revocation.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/examples/22_agent_card.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/examples/23_task_delegation.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/examples/24_mcp_tool_call.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/examples/25_swarm_trace.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/examples/26_submit_goal_and_goal_handle.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/examples/27_safety_policies.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/examples/28_relata_connection.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/examples/29_quick_research_sim.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/examples/30_moa_endpoint.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/examples/README.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/examples/coordination/01_durable_workflow.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/examples/coordination/02_contract_net.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/examples/coordination/03_belief_and_plan.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/examples/coordination/__init__.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/examples/coordination/usecases/__init__.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/examples/coordination/usecases/ai_01_fed_benchmark.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/examples/coordination/usecases/ai_alignment_redteam.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/examples/coordination/usecases/cy_05_ir_swarm.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/examples/coordination/usecases/cy_11_ransomware_intel.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/examples/coordination/usecases/ed_credentials.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/examples/coordination/usecases/en_grid_coordinate.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/examples/coordination/usecases/fi_04_bsa_314b.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/examples/coordination/usecases/fi_22_ma_dataroom.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/examples/coordination/usecases/gv_01_intel_sharing.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/examples/coordination/usecases/gv_21_red_team.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/examples/coordination/usecases/hc_06_rare_disease.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/examples/coordination/usecases/hc_21_fed_learning.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/examples/coordination/usecases/lg_ediscovery.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/examples/coordination/usecases/mf_supply_chain.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/examples/e2e_many_agents.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/examples/full_e2e_demo.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/examples/lifecycle.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/examples/org_distributed.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/examples/org_university.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/examples/scenario_aar.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/examples/scenario_backtest.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/examples/scenario_capability_attenuation.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/examples/scenario_conformance.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/examples/scenario_crisis_tabletop.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/examples/scenario_cross_namespace_federation.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/examples/scenario_decision_tournament.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/examples/scenario_dispute_lifecycle_async.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/examples/scenario_evaluation.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/examples/scenario_geopolitical_crisis.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/examples/scenario_geopolitical_traced.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/examples/scenario_governance_committee.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/examples/scenario_information_pipeline.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/examples/scenario_ingest_pipeline.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/examples/scenario_learning_loop.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/examples/scenario_namespace_trust.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/examples/scenario_persona_panel.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/examples/scenario_population_lifecycle.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/examples/scenario_private_namespace.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/examples/scenario_red_team.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/examples/scenario_regulated_consortium.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/examples/scenario_social_media_research.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/examples/scenario_threat_intel.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/examples/scenario_vouch_chain.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/examples/scenario_what_if_tree.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/examples/serve_api.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/examples/sim_criminology_tech.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/examples/two_node_tcp.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/formal/README.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/formal/hax-rust/README.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/formal/hax-rust/scope.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/formal/proverif/dispute_fsm.pv +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/formal/proverif/dispute_liveness.pv +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/formal/tamarin/capability_chain.spthy +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/formal/tamarin/dispute_fsm.spthy +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/formal/tamarin/signed_statement.spthy +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/formal/tamarin/wire_security.spthy +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/fuzz/README.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/fuzz/__init__.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/fuzz/fuzz_agent_card.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/fuzz/fuzz_anti_entropy.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/fuzz/fuzz_capability.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/fuzz/fuzz_dispute.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/fuzz/fuzz_inclusion_proof.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/fuzz/fuzz_wire.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/fuzz/seed_corpus.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/harness/__init__.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/harness/__main__.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/harness/assertions.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/harness/fixtures.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/harness/report.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/harness/roles.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/harness/runner.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/harness/scenario.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/harness/scenarios/__init__.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/harness/scenarios/autonomous_evolution.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/harness/scenarios/swarm_iq_benchmark.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/harness/scenarios/threat_intel.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/mkdocs.yml +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/reference_verifier/__init__.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/reference_verifier/schemas/encrypted_statement.cddl +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/reference_verifier/schemas/namespace_accept.cddl +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/reference_verifier/schemas/namespace_create.cddl +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/reference_verifier/schemas/namespace_founding_attest.cddl +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/reference_verifier/schemas/namespace_invite.cddl +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/reference_verifier/schemas/wire-v0.1.cddl +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/reference_verifier/verifier.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/review/__init__.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/review/__main__.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/review/agents.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/review/models.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/review/runner.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/rust/Cargo.lock +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/rust/Cargo.toml +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/rust/README.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/rust/crates/hmctl/Cargo.toml +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/rust/crates/hmctl/src/config.rs +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/rust/crates/hmctl/src/daemon.rs +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/rust/crates/hmctl/src/main.rs +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/rust/crates/hypermind-proto/Cargo.toml +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/rust/crates/hypermind-proto/examples/frost_interop.rs +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/rust/crates/hypermind-proto/examples/mldsa_interop.rs +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/rust/crates/hypermind-proto/examples/tcp_interop.rs +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/rust/crates/hypermind-proto/examples/wire_interop.rs +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/rust/crates/hypermind-proto/schemas/namespace_accept.cddl +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/rust/crates/hypermind-proto/schemas/namespace_create.cddl +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/rust/crates/hypermind-proto/schemas/namespace_founding_attest.cddl +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/rust/crates/hypermind-proto/schemas/namespace_invite.cddl +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/rust/crates/hypermind-proto/schemas/wire-v0.1.cddl +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/rust/crates/hypermind-proto/src/anti_entropy.rs +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/rust/crates/hypermind-proto/src/cbor.rs +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/rust/crates/hypermind-proto/src/dispute.rs +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/rust/crates/hypermind-proto/src/domain.rs +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/rust/crates/hypermind-proto/src/frost.rs +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/rust/crates/hypermind-proto/src/hlc.rs +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/rust/crates/hypermind-proto/src/lib.rs +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/rust/crates/hypermind-proto/src/reputation.rs +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/rust/crates/hypermind-proto/src/signing.rs +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/rust/crates/hypermind-proto/src/transport.rs +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/rust/crates/hypermind-proto/src/wire.rs +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/rust/crates/hypermind-proto/tests/conformance_frost.rs +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/rust/crates/hypermind-proto/tests/conformance_reputation_dispute.rs +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/rust/crates/hypermind-proto/tests/conformance_wire.rs +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/rust/crates/hypermind-proto/tests/proptest_roundtrip.rs +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/scripts/e2e/README.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/scripts/e2e/e2e_features_test.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/scripts/e2e/e2e_mcp_sequential.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/scripts/e2e/e2e_mcp_test.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/scripts/sync_version.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hmctl/__init__.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hmctl/cli.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hmctl/dashboard.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hmctl/envfile.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hmctl/eval_cmd.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hmctl/orgs_cmd.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hmctl/setup_cmd.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hmctl/show_cmd.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/__init__.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/agent_card.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/api/__init__.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/api/app.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/cap_revocation.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/capability.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/config.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/consult.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/consult_bias.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/contract_net.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/crypto/__init__.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/crypto/cose_encrypt.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/crypto/dkg.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/crypto/domain.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/crypto/frost.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/crypto/hashing.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/crypto/hlc.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/crypto/hpke.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/crypto/kms.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/crypto/namespace_root.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/crypto/pq.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/crypto/room_epoch.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/crypto/signing.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/dataset.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/deliberation.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/did_web.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/dispute.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/domains/__init__.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/domains/defense.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/domains/legal.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/domains/medical.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/errors.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/eval/__init__.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/eval/calibration.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/eval/comparison.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/eval/composite.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/eval/dispute_bench.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/eval/replay.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/eval/report.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/eval/suite.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/eval/swarm_iq.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/ingest.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/integrations/__init__.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/integrations/autogen.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/integrations/client.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/integrations/contradiction.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/integrations/crewai.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/integrations/evolution.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/integrations/federation_manager.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/integrations/freshness.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/integrations/hooks.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/integrations/langchain.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/integrations/llamaindex.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/integrations/loop.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/integrations/mcp_tools.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/integrations/notifier.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/integrations/openai_agents.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/integrations/openai_endpoint.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/integrations/openai_shapes.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/integrations/population.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/integrations/quickstart.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/integrations/research.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/integrations/sse.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/integrations/startup.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/integrations/topic_clustering.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/integrations/webhook_server.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/integrations/working_memory.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/knowledge/__init__.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/knowledge/citation_graph.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/knowledge/correlated_agreement.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/knowledge/embedding_registry.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/knowledge/kernel_store.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/knowledge/rekor.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/knowledge/reputation.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/knowledge/reputation_store.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/knowledge/swarm_memory.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/knowledge/transparency.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/machine.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/mcp/__init__.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/mcp/bridge.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/mcp/client.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/mcp/provenance.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/mcp/relata_tools.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/mcp/server.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/mcp/transport.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/mind/__init__.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/mind/active.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/mind/belief.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/mind/deliberator.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/mind/diversity.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/mind/epistemic_transfer.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/mind/evolve.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/mind/federation.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/mind/fitness.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/mind/goals.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/mind/grounding_gaps.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/mind/integration.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/mind/mediator.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/mind/memory_store.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/mind/metacognition.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/mind/niche.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/mind/policy.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/mind/records.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/mind/roles.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/mind/selfplay.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/mind/skills.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/mind/sybil_guard.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/mind/world_model.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/moa/__init__.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/moa/aggregate.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/moa/benchmark.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/moa/codeexec.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/moa/costs.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/moa/digest.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/moa/federation.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/moa/gaps.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/moa/learn.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/moa/model.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/moa/orchestration_evolution.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/moa/population.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/moa/propose.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/moa/readiness.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/moa/refine.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/moa/reproducibility.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/moa/serve.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/moa/verifiability.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/namespace.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/namespace_policy.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/observability/__init__.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/observability/asgi.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/observability/cost.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/observability/health.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/observability/logging_config.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/observability/metrics.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/observability/otel_export.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/observability/recorder.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/observability/sample_efficiency.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/observability/silent_failures.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/observability/swarm_trace.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/orgs/__init__.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/orgs/adversarial_gate.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/orgs/analysis.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/orgs/anchor.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/orgs/charter.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/orgs/coevolution.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/orgs/context.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/orgs/corpus.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/orgs/decomposition_search.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/orgs/deliberate.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/orgs/distributed/__init__.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/orgs/distributed/__main__.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/orgs/distributed/coordinator.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/orgs/distributed/planning.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/orgs/distributed/protocol.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/orgs/distributed/provision.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/orgs/distributed/serde.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/orgs/distributed/worker.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/orgs/entities.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/orgs/evidence.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/orgs/experiment.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/orgs/graph_export.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/orgs/groundtruth.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/orgs/hypothesis.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/orgs/integrity_monitor.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/orgs/interaction.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/orgs/intervention.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/orgs/mcp_config.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/orgs/metrics.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/orgs/model.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/orgs/patterns.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/orgs/prompts.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/orgs/quality.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/orgs/query.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/orgs/receipt.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/orgs/refine.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/orgs/replay.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/orgs/report.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/orgs/retrieval.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/orgs/server.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/orgs/sim.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/orgs/source_ranking.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/orgs/strategies.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/orgs/stream.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/orgs/subdecompose.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/orgs/templates/__init__.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/orgs/think.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/orgs/tool_providers.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/orgs/tools.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/orgs/web_capture.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/orgs/web_crawl.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/pin_policy.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/profiles.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/py.typed +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/responders/__init__.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/responders/anthropic.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/responders/base.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/responders/cache.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/responders/openai.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/responders/router.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/responders/structured.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/responders/tools.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/revocation.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/rule_ids.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/schemas/encrypted_statement.cddl +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/schemas/namespace_accept.cddl +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/schemas/namespace_create.cddl +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/schemas/namespace_founding_attest.cddl +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/schemas/namespace_invite.cddl +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/schemas/wire-v0.1.cddl +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/security/__init__.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/security/prompt_guard.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/simlab/__init__.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/simlab/_persona_registry.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/simlab/_scenario_impl.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/simlab/app.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/simlab/backends/__init__.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/simlab/backends/anchor.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/simlab/backends/local.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/simlab/backends/server.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/simlab/cli_command.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/simlab/config.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/simlab/deployment.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/simlab/knowledge.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/simlab/learning.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/simlab/modes/__init__.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/simlab/modes/_eval_real_llm.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/simlab/modes/aar.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/simlab/modes/backtest.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/simlab/modes/binary_forecast.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/simlab/modes/conformance.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/simlab/modes/evaluation.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/simlab/modes/governance.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/simlab/modes/redteam.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/simlab/modes/tabletop.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/simlab/modes/tournament.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/simlab/modes/whatif.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/simlab/namespace.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/simlab/personas.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/simlab/prompt_generator.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/simlab/question_sets/geopolitics_q20.json +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/simlab/question_sets/governance_q5.json +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/simlab/question_sets/msft_outlook_q10.json +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/simlab/question_sets/whatif_q3.json +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/simlab/registry.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/simlab/runner.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/simlab/scenario.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/simlab/swarms.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/simlab/tool_handlers/__init__.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/simlab/tool_handlers/alpha_vantage.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/simlab/tool_handlers/brave.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/simlab/tool_handlers/newsapi.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/simlab/tool_handlers/openweather.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/simlab/tool_handlers/pinecone.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/simlab/tool_handlers/qdrant.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/simlab/tool_handlers/query_knowledge_base.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/simlab/tool_handlers/relata_recall.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/simlab/tool_handlers/retrieve_document.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/simlab/tool_handlers/serper.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/simlab/tool_handlers/tavily.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/simlab/tool_handlers/weaviate.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/simlab/tool_handlers/wikipedia.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/simlab/tool_handlers/wolfram.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/simlab/tool_handlers/yahoo_finance.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/simlab/tool_registry.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/simlab/topic_adapter.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/simlab/topic_questions.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/skill_signing.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/storage/__init__.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/storage/backend.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/storage/s3_backup.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/storage/sqlite.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/storage/tenancy.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/sync.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/tal.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/tal_wire.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/tasks.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/testing.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/tools/__init__.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/tools/registry.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/transport/__init__.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/transport/anti_entropy.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/transport/bus.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/transport/cap_revoke_gossip.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/transport/knows_delta.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/transport/libp2p.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/transport/placement.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/transport/tcp.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/transport/tls_profile.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/types.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/uncertainty.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/viz/__init__.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/viz/server.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/wire.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/workflow/__init__.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/workflow/engine.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/workflow/plan.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/src/hypermind/workflow/repair.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/__init__.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/api/__init__.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/api/test_eval_endpoints.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/api/test_events_stream.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/api/test_management_app.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/chaos/__init__.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/chaos/test_gossip_amplification.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/chaos/test_kill_agent_during_rfp.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/chaos/test_partition_during_workflow.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/chaos/test_slow_consumer_backpressure.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/chaos/test_slow_peer.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/conformance/__init__.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/conformance/generate_vectors.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/conformance/generate_z66.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/conformance/vectors/SIGNING.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/conformance/vectors/agent-card-01.json +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/conformance/vectors/agent-card-02.json +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/conformance/vectors/capability-01.json +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/conformance/vectors/capability-02.json +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/conformance/vectors/capability-03.json +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/conformance/vectors/dispute-01.json +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/conformance/vectors/dispute-02.json +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/conformance/vectors/dispute-03.json +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/conformance/vectors/dispute-04.json +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/conformance/vectors/dispute-05.json +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/conformance/vectors/frost-01.json +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/conformance/vectors/frost-02.json +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/conformance/vectors/frost-03.json +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/conformance/vectors/knows-delta-01.json +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/conformance/vectors/knows-delta-02.json +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/conformance/vectors/mcp-prov-01.json +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/conformance/vectors/mcp-prov-02.json +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/conformance/vectors/merkle-01.json +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/conformance/vectors/merkle-02.json +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/conformance/vectors/merkle-03.json +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/conformance/vectors/merkle-04.json +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/conformance/vectors/rep-decay-01.json +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/conformance/vectors/reputation-kernel-01.json +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/conformance/vectors/reputation-kernel-02.json +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/conformance/vectors/revocation-01.json +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/conformance/vectors/revocation-02.json +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/conformance/vectors/revocation-03.json +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/conformance/vectors/task-01.json +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/conformance/vectors/task-02.json +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/conformance/vectors/trace-01.json +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/conformance/vectors/trace-02.json +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/conformance/vectors/wire-envelope-01.json +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/conformance/vectors/wire-envelope-02.json +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/conformance/vectors/wire-envelope-03.json +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/conformance/vectors/wire-envelope-04.json +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/conformance/vectors/wire-envelope-05.json +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/conftest.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/harness/__init__.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/harness/conftest.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/harness/test_assertion_library.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/harness/test_autonomous_evolution.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/harness/test_runner_lifecycle.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/harness/test_threat_intel_harness.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/helpers/tcp_gossip_interop_peer.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/integration/__init__.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/integration/test_relata_server.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/integration/test_tool_calling_e2e.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/integrations/__init__.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/integrations/test_895_904_hm_calibration_feedback.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/integrations/test_989_kernel_fact_curation_tick.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/integrations/test_all_mcp_tools.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/integrations/test_autogen.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/integrations/test_autonomous.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/integrations/test_c1_gene_pool.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/integrations/test_c2_archive.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/integrations/test_crewai.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/integrations/test_datasys_hm_related_sqli.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/integrations/test_env_vars_cmd.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/integrations/test_evolution.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/integrations/test_facade.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/integrations/test_fixes_525_526_527.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/integrations/test_hooks.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/integrations/test_langchain.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/integrations/test_llamaindex.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/integrations/test_local_mode.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/integrations/test_loop_logging.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/integrations/test_loop_persistence.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/integrations/test_mcp_desktop.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/integrations/test_mcp_tool_descriptions.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/integrations/test_mcp_tools.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/integrations/test_moa_adoption_971.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/integrations/test_no_duplicate_subscriptions.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/integrations/test_notifier.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/integrations/test_openai_agents.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/integrations/test_openai_endpoint.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/integrations/test_openai_endpoint_moa.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/integrations/test_openai_shapes.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/integrations/test_otel_serve_wiring.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/integrations/test_population_checkpoint_v2.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/integrations/test_population_tools.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/integrations/test_quickstart.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/integrations/test_research_mcp_shared_client.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/integrations/test_research_tool.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/integrations/test_retrieve_author_field.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/integrations/test_sse.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/integrations/test_startup_wiring.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/integrations/test_verifiable_rag.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/integrations/test_verify_v160_tools.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/integrations/test_webhook_server.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/integrations/test_working_memory_atomic_flush.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/mcp/__init__.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/mcp/test_multi_connection.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/mind/__init__.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/mind/test_940_sybil_cluster_detection.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/mind/test_c3_goal_tool_loop.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/mind/test_deliberator_logging.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/mind/test_deliberator_otel_tick.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/mind/test_deliberator_save_learning_nonblocking.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/mind/test_deliberator_sybil_guard_default.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/mind/test_mind_assign_role.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/mind/test_mind_memory_bounds.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/mind/test_mind_research_antiherd.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/mind/test_selfplay.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/mind/test_skill_learning_pipeline.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/moa/__init__.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/moa/conftest.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/moa/test_aggregate.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/moa/test_benchmark.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/moa/test_bounds.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/moa/test_codeexec.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/moa/test_convergence_and_confidence.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/moa/test_digest.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/moa/test_federation.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/moa/test_health_gap_wiring.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/moa/test_learn.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/moa/test_model.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/moa/test_model_tiering.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/moa/test_orchestration_evolution.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/moa/test_population.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/moa/test_profile_wiring.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/moa/test_propose.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/moa/test_readiness.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/moa/test_readiness_gate.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/moa/test_refine.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/moa/test_reproducibility.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/moa/test_serve.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/moa/test_verifiability.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/orgs/_fakes.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/orgs/test_1004_sqlite_backend_parity.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/orgs/test_1005_breadth_cap_and_tiebreak.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/orgs/test_1008_select_experts_finding_truncation.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/orgs/test_1019_auto_ingest_manifest_wiring.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/orgs/test_1021_research_probe_gate.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/orgs/test_847_intent_routing.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/orgs/test_852_auto_ingest.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/orgs/test_854_local_vector_retrieval.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/orgs/test_855_consensus_protocol.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/orgs/test_857_swarm_iq_feedback.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/orgs/test_859_pattern_detection.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/orgs/test_864_auto_distill.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/orgs/test_891_self_directed_research.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/orgs/test_892_902_dynamic_team_formation.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/orgs/test_939_select_experts_real_reputation.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/orgs/test_940_retrieval_clusters_dynamic_seats.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/orgs/test_975_checkpoint_resume.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/orgs/test_987_select_experts_recency_dispute.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/orgs/test_a1_prediction_gating.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/orgs/test_a2_oracle_anchoring.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/orgs/test_adversarial.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/orgs/test_adversarial_gate.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/orgs/test_analysis.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/orgs/test_anchor.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/orgs/test_b1_source_credibility.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/orgs/test_b4_evidence_quality.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/orgs/test_c5_coevolution_wiring.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/orgs/test_c5_loop_wiring.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/orgs/test_coevolution.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/orgs/test_coevolution_s3_backup.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/orgs/test_concurrency.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/orgs/test_context.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/orgs/test_convergence.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/orgs/test_corpus.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/orgs/test_cross_shard.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/orgs/test_datasys_selfreflector_wiring.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/orgs/test_decomposition_search.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/orgs/test_deliberator.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/orgs/test_distributed.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/orgs/test_embeddings.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/orgs/test_entities.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/orgs/test_evidence.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/orgs/test_evidence_gate.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/orgs/test_experiment.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/orgs/test_fact_merge.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/orgs/test_graph_export.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/orgs/test_graph_retrieval.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/orgs/test_grounding_contradiction.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/orgs/test_grounding_verification.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/orgs/test_groundtruth.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/orgs/test_hybrid_retriever.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/orgs/test_hypothesis.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/orgs/test_integrity_monitor.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/orgs/test_interaction.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/orgs/test_intervention.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/orgs/test_learned_fact_provenance.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/orgs/test_lightweight.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/orgs/test_mcp_config.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/orgs/test_metrics.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/orgs/test_model.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/orgs/test_ner.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/orgs/test_panel_herding.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/orgs/test_persist_identities.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/orgs/test_prompts.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/orgs/test_provider_cache.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/orgs/test_publish_atomicity.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/orgs/test_quality.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/orgs/test_quality_and_contradiction_wiring.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/orgs/test_query.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/orgs/test_rag.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/orgs/test_receipt.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/orgs/test_refine.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/orgs/test_refuted_claim_retrieval.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/orgs/test_replay.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/orgs/test_report.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/orgs/test_response_cache_wiring.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/orgs/test_scale.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/orgs/test_select_experts_relevance.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/orgs/test_sim.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/orgs/test_sim_events.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/orgs/test_source_ranking.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/orgs/test_ssrf_redirect.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/orgs/test_strategies.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/orgs/test_stream.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/orgs/test_stream_query.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/orgs/test_subdecompose.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/orgs/test_templates.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/orgs/test_think.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/orgs/test_tool_outcomes_bias.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/orgs/test_tool_providers.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/orgs/test_tool_traces.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/orgs/test_tools.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/orgs/test_web_capture.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/orgs/test_web_crawl.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/orgs/test_zero_retrieval_abstention.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/orgsim/__init__.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/orgsim/test_gap_33_fixes.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/orgsim/test_gap_34_fixes.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/orgsim/test_gap_35_fixes.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/orgsim/test_gap_36_fixes.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/orgsim/test_gap_37_fixes.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/orgsim/test_gap_38_fixes.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/orgsim/test_gap_39_fixes.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/orgsim/test_gap_39b_fixes.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/orgsim/test_gap_40_fixes.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/orgsim/test_gap_41_fixes.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/orgsim/test_gap_42_fixes.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/orgsim/test_gap_46_fixes.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/orgsim/test_gap_47_fixes.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/orgsim/test_gap_48_fixes.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/orgsim/test_gap_49_fixes.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/orgsim/test_gap_50_fixes.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/orgsim/test_gap_50_runtime.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/orgsim/test_gap_50b_runtime.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/orgsim/test_gap_51_fixes.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/orgsim/test_gap_52_fixes.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/orgsim/test_gap_c_fixes.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/orgsim/test_gap_rt001_cross_run_facts.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/orgsim/test_gap_rt002_brier_e2e.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/orgsim/test_gap_rt005_done_condition.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/orgsim/test_gap_rt006_checkpoint_resume.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/orgsim/test_gap_rt007_skill_promotion.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/orgsim/test_gap_rt_cite_rep.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/orgsim/test_gap_rt_dispute_fsm.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/orgsim/test_gap_rt_done_factories.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/orgsim/test_gap_rt_wire9_evidence.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/orgsim/test_orgsim_observability.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/orgsim/test_orgsim_persona_evolution.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/responders/__init__.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/responders/test_responders.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/responders/test_router.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/responders/test_structured_response.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/responders/test_tools.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/review/__init__.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/review/test_agents_parser.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/review/test_models.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/review/test_runner.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/simlab/__init__.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/simlab/conftest.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/simlab/test_app_endpoints.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/simlab/test_knowledge.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/simlab/test_knowledge_reuse.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/simlab/test_modes_aar.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/simlab/test_modes_backtest.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/simlab/test_modes_conformance.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/simlab/test_modes_evaluation.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/simlab/test_modes_governance.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/simlab/test_modes_redteam.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/simlab/test_modes_tabletop.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/simlab/test_modes_tournament.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/simlab/test_modes_whatif.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/simlab/test_personas.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/simlab/test_personas_endpoints.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/simlab/test_recorder_scoping.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/simlab/test_registry.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/simlab/test_resolve_outcomes.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/simlab/test_responder_timeout.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/simlab/test_runner.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/simlab/test_swarms.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/storage/__init__.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/storage/test_1019_document_ingest_backends.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/storage/test_s3_backup.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/storage/test_sqlite_backend.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/storage/test_tenancy.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_1019_document_ingest_manifest.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_848_ingest_formats.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_853_849_skill_composition_and_templates.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_865_federated_skill_exchange.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_866_niche_construction.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_867_epistemic_transfer.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_868_red_team_role.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_869_metacognition.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_880_weighted_retention.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_884_silent_degraded_modes.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_891_grounding_gap_tracker.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_892_902_eigentrust.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_894_903_sealed_lattice.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_895_904_evolve_and_calibration_feedback.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_896_905_policy_as_dispute.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_900_850_skill_versioning_and_synthesis_quality_gate.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_910_911_prompt_budget_and_recency.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_914_storage_integrity.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_918_sqlite_fts.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_921_prompt_guard.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_922_skill_auto_demote.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_923_skill_local_persistence.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_946_degenerate_score_fallback.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_974_consult_knowledge_injection.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_a4_reputation_persistence.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_active_multi_step.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_agent_card.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_agent_e2e.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_agent_edge.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_agent_synthesize.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_anthropic_responder_caching.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_anti_entropy.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_anti_entropy_multiround.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_anti_entropy_selfheal.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_appendix_z_conformance.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_appendix_z_vectors.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_arg_dag_edge_types.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_assessment_fixes_config_and_diversity.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_auto_model.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_b2_hybrid_rank_fusion.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_b3_routing_and_cache.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_backpressure.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_belief_revision.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_belief_weight_per_candidate.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_bias_detector.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_block_reason.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_c4_silent_failures.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_calibration.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_cap_revoke_gossip.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_capability.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_capability_canonical.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_capability_chain.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_capability_edge.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_capability_enforcement.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_capability_namespace_caveat.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_capability_revocation.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_citation_graph.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_cli.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_cli_agent_goal_fixes.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_cli_doctor_ledger.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_cli_interop.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_cli_mcp_install.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_cli_moa.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_cli_orgs.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_cli_setup.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_cli_show.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_composite_lamps_prefix.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_consult.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_consult_stream.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_consult_stream_t4.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_contract_net_disputed_award.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_contract_net_frost_award.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_contract_net_happy.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_contract_net_reputation_scoring.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_contract_net_sybil_filter.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_correlated_agreement.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_cose_encrypt_roundtrip.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_cost_tracker.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_cross_namespace_consult.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_crypto.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_dashboard.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_dataset.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_datasys_atomic_loop_state.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_datasys_brier_feedback_wired.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_datasys_brier_no_self_assess_in_research.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_datasys_citation_dedup.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_datasys_claim_length_bound.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_datasys_confidence_range_check.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_datasys_deliberator_research_dedup.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_datasys_deliberator_stop_persistence.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_datasys_hm_ingest_sandbox.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_datasys_hypothesis_propose_empty_reasoning.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_datasys_job_ttl.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_datasys_loop_security.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_datasys_oracle_audit_export.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_datasys_oracle_resolve_rep_signal_fallback.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_datasys_orgsim_run_forever_candidate_question.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_datasys_panel_size_cap.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_datasys_reputation_persistence_on_close.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_datasys_rounds_cap.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_datasys_storage_write_failure_observability.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_deliberation.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_deliberator_cap.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_deliberator_observe.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_deliberator_parallel_tick.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_deploy_mcp_http_gateway.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_determinism_corpus.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_dispute.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_dispute_close_deliberator_notify.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_dispute_fsm_full.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_dispute_mediate.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_dispute_quorum.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_dispute_retrieval_decay.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_dispute_suspended.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_dissent.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_diversity_guard_synthesize.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_diversity_guard_synthesize_jaccard.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_diversity_quorum.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_dkg.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_e2e_fictional_story.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_e2e_research_chain.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_embedding_registry.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_engine_cross_process_behaviors.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_envfile.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_eval_comparison.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_eval_suite.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_evolution_gaps.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_examples_runnable.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_final_coverage.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_frost.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_frost_edge.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_frost_hedged_nonces.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_frost_persistence.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_frost_rust_interop.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_frost_transcript_store_swap.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_health_consumer.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_hlc_clock_source.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_hpke_vectors.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_info_gain_routing.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_issue_355_brier_apply_after_research.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_issue_356_run_cycle_findings_key.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_issue_357_relata_kernel_query_rows.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_issue_359_deliberator_stop_on_teardown.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_issue_360_curriculum_assign_called.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_issue_487_loop_deliberator_observe.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_issue_491_run_cycle_error_logging.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_issue_492_oracle_resolve_fsm_sequence.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_kernel_store.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_kernel_store_bitemporal_and_citation.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_kernel_store_remote.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_knows_delta.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_lamps_oid_canonical.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_last_lines.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_learning_retention.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_libp2p_peer_id.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_libp2p_scaffold.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_libp2p_stub.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_machine_identity.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_mcp_bridge.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_mcp_gap_fixes.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_mcp_provenance.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_mcp_tools_list.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_mcp_transport.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_merkle_transparency.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_mind_active.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_mind_assign_role.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_mind_auto_relay_research.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_mind_deliberator.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_mind_diversity_sybil_mediator.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_mind_evolve.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_mind_goal_handle.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_mind_goal_queue_bounds.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_mind_goals_policy.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_mind_learning_persistence.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_mind_planner_wiring.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_mind_records.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_mind_research_antiherd.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_mind_research_brier.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_mind_research_ledger.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_mind_research_memory.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_mind_roles.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_mind_world_model.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_mind_world_model_priority.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_misc_edge.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_mldsa_rust_interop.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_mtls_profile.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_namespace_lifecycle.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_namespace_policy.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_namespace_policy_acl.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_observability_asgi.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_observability_issues_350_351_352.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_observability_otel.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_open_factory.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_oracle_backprop.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_oracle_resolve_closes_dispute.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_oracle_resolve_events.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_orgs_cmd_hypermind_home.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_orgs_replay_reputation.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_orgsim_kernel_store_persist.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_orgsim_persona_evolution.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_orgsim_persona_ticking.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_otel_export.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_pin_policy.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_pin_policy_compose_zero.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_placement_consistent_hash.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_placement_hint.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_plan_dag.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_plan_repair.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_portable_inclusion_proof.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_pq_default.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_pq_dual_vendor.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_pq_signing.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_priv_ns_conformance_coverage.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_profiles.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_property_based.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_protocol_version.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_public_surface_v05.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_pursue_workflow.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_rate_caveat.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_recorder_bounded.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_recorder_tail.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_reference_verifier_v2.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_rekor_client.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_rekor_downgrade.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_relata_author_hex.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_relata_grounding.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_relata_hybrid_search.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_relata_memory_store.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_relata_tools.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_remaining_gaps.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_replay.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_reputation.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_reputation_concurrency.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_reputation_memory.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_reputation_staleness.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_reputation_weighted_slashing.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_research_tool_gateway.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_review_fixes.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_revocation.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_revocation_lifecycle.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_room_epoch.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_sample_efficiency.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_schema_hash_pinned.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_secret_redaction.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_security_regressions_495_490_493_494.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_self_heal_cycle1.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_self_heal_cycle2.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_self_heal_cycle3.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_self_heal_cycle3_cascade_isolate.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_self_heal_cycle3_governance.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_self_heal_cycle4.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_self_heal_cycle4_deliberator_broadcast.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_self_heal_cycle5.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_self_heal_cycle6.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_self_heal_cycle6_security_hardening.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_signer_protocol.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_skill_registry.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_sqlite_vector_hybrid.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_sth_cross_gossip.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_swarm_iq.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_swarm_iq_at_scale.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_swarm_iq_recommend.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_swarm_memory.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_swarm_memory_federation.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_swarm_trace.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_swarm_vector_overflow.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_sybil_guard_consult.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_sync_agent.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_tal.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_tal_decay_hlc_wallclock.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_tal_decay_wired.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_tal_wire.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_task_execution.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_task_handle.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_task_handle_network.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_tcp_duplicate_kid_attack.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_tcp_edge.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_tcp_federation.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_tcp_final.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_tcp_read_loop_cleanup.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_tcp_transport.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_tcp_transport_rust_interop.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_theory_of_mind.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_transport.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_transport_scale_gaps.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_two_impl_interop.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_uncertainty.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_uncertainty_edge.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_verify_brier_research_not_self_referential.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_verify_build_mcp_server_no_loop.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_verify_deliberator_posteriors_hydrated.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_verify_hypothesis_book_oracle_resolve.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_verify_self_reflector_topic_kwarg.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_wire.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_wire_edge_cases.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_wire_kid_stability.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_wire_p3.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_wire_v2.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_wire_version.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_witness_preimage_length_prefix.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_workflow_compensation.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_workflow_engine.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/test_workflow_replay.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/usecases/__init__.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/usecases/conftest.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/usecases/test_ai_01_fed_benchmark.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/usecases/test_ai_alignment_redteam.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/usecases/test_cy_05_ir_swarm.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/usecases/test_cy_11_ransomware_intel.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/usecases/test_ed_credentials.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/usecases/test_en_grid_coordinate.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/usecases/test_fi_04_bsa_314b.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/usecases/test_fi_22_ma_dataroom.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/usecases/test_gv_01_intel_sharing.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/usecases/test_gv_21_red_team.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/usecases/test_hc_06_rare_disease.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/usecases/test_hc_21_fed_learning.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/usecases/test_lg_ediscovery.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/usecases/test_mf_supply_chain.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/tests/viz/test_server.py +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/transport-rust/Cargo.toml +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/transport-rust/README.md +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/transport-rust/pyproject.toml +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/transport-rust/src/lib.rs +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/uv.lock +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/vercel.json +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/webui/index.html +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/webui/package-lock.json +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/webui/package.json +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/webui/src/App.vue +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/webui/src/api/client.ts +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/webui/src/components/ActivityCanvas.vue +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/webui/src/components/AgentContribution.vue +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/webui/src/components/BrierHeatmap.vue +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/webui/src/components/CIQTrajectory.vue +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/webui/src/components/CitationGraph.vue +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/webui/src/components/DisputeTimeline.vue +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/webui/src/components/DissentList.vue +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/webui/src/components/Logo.vue +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/webui/src/components/NowAsking.vue +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/webui/src/components/PersonaRadar.vue +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/webui/src/components/PopulationGenerator.vue +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/webui/src/components/Term.vue +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/webui/src/components/forms/SchemaForm.vue +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/webui/src/components/result/AARTimeline.vue +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/webui/src/components/result/BacktestScorecard.vue +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/webui/src/components/result/ConformanceReport.vue +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/webui/src/components/result/CrisisTabletop.vue +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/webui/src/components/result/DecisionBracket.vue +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/webui/src/components/result/EvaluationReport.vue +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/webui/src/components/result/GovernanceReceipt.vue +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/webui/src/components/result/MethodNote.vue +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/webui/src/components/result/RedTeamReport.vue +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/webui/src/components/result/ScenarioTree.vue +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/webui/src/docs/index.ts +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/webui/src/docs/render.ts +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/webui/src/main.ts +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/webui/src/router.ts +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/webui/src/stores/sims.ts +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/webui/src/styles.css +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/webui/src/types/trace.ts +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/webui/src/views/Agents.vue +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/webui/src/views/Docs.vue +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/webui/src/views/Evidence.vue +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/webui/src/views/Home.vue +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/webui/src/views/HowItWorks.vue +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/webui/src/views/Knowledge.vue +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/webui/src/views/Landing.vue +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/webui/src/views/Namespaces.vue +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/webui/src/views/Report.vue +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/webui/src/views/Security.vue +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/webui/src/views/SimCompare.vue +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/webui/src/views/SimDetail.vue +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/webui/src/views/SimList.vue +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/webui/src/views/SimLive.vue +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/webui/src/views/SimNew.vue +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/webui/src/views/Tools.vue +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/webui/src/views/UseCases.vue +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/webui/tsconfig.json +0 -0
- {hypermind-2.4.0 → hypermind-2.4.2}/webui/vite.config.ts +0 -0
|
@@ -40,6 +40,9 @@ jobs:
|
|
|
40
40
|
name: test (py${{ matrix.python }})
|
|
41
41
|
needs: guard-source-branch
|
|
42
42
|
runs-on: ubuntu-latest
|
|
43
|
+
# A wedged self-hosted runner would otherwise sit on the 360-min default
|
|
44
|
+
# (observed 2026-08-24: run tests step stalled 24+ min vs ~6 min baseline).
|
|
45
|
+
timeout-minutes: 25
|
|
43
46
|
strategy:
|
|
44
47
|
fail-fast: false
|
|
45
48
|
matrix:
|
|
@@ -59,6 +62,7 @@ jobs:
|
|
|
59
62
|
build:
|
|
60
63
|
name: build sdist + wheel
|
|
61
64
|
runs-on: ubuntu-latest
|
|
65
|
+
timeout-minutes: 15
|
|
62
66
|
needs: test
|
|
63
67
|
outputs:
|
|
64
68
|
hashes: ${{ steps.hash.outputs.hashes }}
|
|
@@ -159,6 +163,7 @@ jobs:
|
|
|
159
163
|
publish-pypi:
|
|
160
164
|
name: publish → PyPI
|
|
161
165
|
runs-on: ubuntu-latest
|
|
166
|
+
timeout-minutes: 15
|
|
162
167
|
needs: build
|
|
163
168
|
if: startsWith(github.ref, 'refs/tags/v')
|
|
164
169
|
environment:
|
|
@@ -232,6 +237,7 @@ jobs:
|
|
|
232
237
|
docker:
|
|
233
238
|
name: docker — hub.docker.com/openworkbench/hypermind
|
|
234
239
|
runs-on: ubuntu-latest
|
|
240
|
+
timeout-minutes: 45 # multi-arch (amd64+arm64) QEMU build; observed ~95s warm, ~15 min cold
|
|
235
241
|
needs: build
|
|
236
242
|
if: startsWith(github.ref, 'refs/tags/v')
|
|
237
243
|
permissions:
|
|
@@ -14,6 +14,96 @@ changes only on major-version bumps.
|
|
|
14
14
|
|
|
15
15
|
## [Unreleased]
|
|
16
16
|
|
|
17
|
+
(nothing yet)
|
|
18
|
+
|
|
19
|
+
## [2.4.2] — 2026-08-24
|
|
20
|
+
|
|
21
|
+
### Fixed
|
|
22
|
+
All three fixes below are live-validated workarounds for relata-db 2.0.0
|
|
23
|
+
(build 2026-08-10) server bugs, filed upstream as
|
|
24
|
+
[relatadb/RelataDB#4627](https://github.com/relatadb/RelataDB/issues/4627)–[#4629](https://github.com/relatadb/RelataDB/issues/4629).
|
|
25
|
+
|
|
26
|
+
- **Relata disputes and citation counters silently lost (`/ingest` async queue).**
|
|
27
|
+
The relata server's single-row `upsert` endpoint (`POST /ingest`) returns an
|
|
28
|
+
*async task receipt* — the write only becomes query-visible when the
|
|
29
|
+
server's background ingest queue drains, and is dropped entirely if the
|
|
30
|
+
server stops first. `RelataBackend.append_dispute` and
|
|
31
|
+
`increment_citations` used that path, so disputes filed late in a run
|
|
32
|
+
vanished on restart and citation counts lagged indefinitely
|
|
33
|
+
(live-observed 2026-08-24). Both now route through `batch_upsert`
|
|
34
|
+
(`POST /ingest/bulk`), which commits synchronously — read-after-write
|
|
35
|
+
holds and a stop can no longer drop the write.
|
|
36
|
+
- **Relata reads return every bi-temporal version, not current state.**
|
|
37
|
+
A plain relata `SELECT` on the 2026-08-10 build returns all versions of a
|
|
38
|
+
row (live-observed 2026-08-24: re-appending the same kid under
|
|
39
|
+
`on_conflict=skip` left seq-1 and seq-2 rows, and both came back), so
|
|
40
|
+
restore/replay double-counted re-published claims. `load_claims` and
|
|
41
|
+
`load_claim_stubs` now collapse duplicates by kid (first / newest version
|
|
42
|
+
respectively); `load_disputes` orders by `updated_ms` so last-write-wins
|
|
43
|
+
keeps the latest dispute state.
|
|
44
|
+
- **Relata single-column `SELECT`s return 0 rows.** On the 2026-08-10
|
|
45
|
+
relata-db build, a single-column projection (`SELECT wire_b64 FROM HmClaim`,
|
|
46
|
+
`SELECT seq FROM HmClaim … LIMIT 1`) deterministically returns 0 rows while
|
|
47
|
+
adding any second column returns every row (live-observed 2026-08-24, same
|
|
48
|
+
session, same data). `load_claims` came back empty (blank `hmctl show`
|
|
49
|
+
canvases from Relata) and the `open()` high-water probe silently reset the
|
|
50
|
+
sequence counter, breaking append order across restarts. Both now project
|
|
51
|
+
two columns and read the one they need; the other reads were already
|
|
52
|
+
multi-column.
|
|
53
|
+
|
|
54
|
+
### Deployment notes
|
|
55
|
+
- **macOS hosts: do not put the relata data dir on a virtiofs bind mount.**
|
|
56
|
+
The server's WAL-mirror sync fails continuously under virtiofs
|
|
57
|
+
(`ETag mismatch`) and seal-time compaction then silently loses the entire
|
|
58
|
+
ledger — across restarts *and* mid-session (live-observed 2026-08-24, filed
|
|
59
|
+
upstream as
|
|
60
|
+
[#4627](https://github.com/relatadb/RelataDB/issues/4627)). The Apple
|
|
61
|
+
`container` runtime path in hypermind-deploy's `start.sh` now runs
|
|
62
|
+
hm-relatadb on the container's own disk; see that repo for details and the
|
|
63
|
+
Docker-compose caveat.
|
|
64
|
+
|
|
65
|
+
## [2.4.1] — 2026-08-24
|
|
66
|
+
|
|
67
|
+
### Fixed
|
|
68
|
+
- **Relata read path broken by relata-db ≥2026-08-10 builds (`AS OF CURRENT`).**
|
|
69
|
+
Every `RelataBackend` read (`load_claims`, `load_claim_stubs`, head-seq,
|
|
70
|
+
recent-findings) carried a bi-temporal `AS OF CURRENT` clause; on the
|
|
71
|
+
2026-08-10 server build that filter reduces `HmClaim` queries to the
|
|
72
|
+
table's internal sentinel rows only (live-validated 2026-08-24: 1
|
|
73
|
+
sentinel row returned vs 411 claims without the clause), so every
|
|
74
|
+
Relata-backed read — restore-on-startup, `hmctl show --relata-url`,
|
|
75
|
+
replay — silently came back empty. A plain `SELECT` is already
|
|
76
|
+
current-state semantics and works on every build; the clause is removed
|
|
77
|
+
from all four read sites.
|
|
78
|
+
- **`from_relata()` node labels.** DB-sourced canvases showed bare hex ids;
|
|
79
|
+
the per-author label is now harvested from the GAP-R10 claim stubs
|
|
80
|
+
alongside unit/role.
|
|
81
|
+
- **`hmctl show` community/unit mapping (org structure was invisible).**
|
|
82
|
+
Communities detected from cite/vouch affinity were labelled anonymously
|
|
83
|
+
("community 1/2/…") and org structure (e.g. a university template's
|
|
84
|
+
departments) leaked into the *topic* filter instead. The canvas now:
|
|
85
|
+
- names each community after its members' dominant `unit` (nodes carry
|
|
86
|
+
`community`; `meta.communities` lists them; clusters with no unit info
|
|
87
|
+
keep the stable generic label);
|
|
88
|
+
- ships a dedicated **community filter** (`#hm-community`) across the
|
|
89
|
+
agents / conversation / claims panes, and the cluster legend uses the
|
|
90
|
+
real names;
|
|
91
|
+
- `from_relata()` harvests per-author unit/role from the GAP-R10 claim
|
|
92
|
+
stub columns, so DB-sourced canvases carry attribution without a live
|
|
93
|
+
world;
|
|
94
|
+
- `RelataBackend.append_claim()` derives `label`/`unit`/`role` from the
|
|
95
|
+
claim payload when the caller passes none (GAP-R10 parity for the bare
|
|
96
|
+
agent path — `world.persist_claim` → `append_claim(stmt)` used to
|
|
97
|
+
persist empty attribution for every plain `publish_claim()`).
|
|
98
|
+
Regression-pinned in `tests/viz/` (naming, fallback label, from_relata
|
|
99
|
+
enrichment, filter markup).
|
|
100
|
+
- **`HyperMindAgent.cite()` default-uncertainty crash.** The no-`uncertainty=`
|
|
101
|
+
branch built `Uncertainty(alpha=9.0, beta=1.0)` against the current
|
|
102
|
+
`(kind, params)` constructor, so every cite without an explicit
|
|
103
|
+
`Uncertainty` raised `TypeError`. Found live during tenant-onboarding
|
|
104
|
+
validation (2026-08-24); regression-pinned in
|
|
105
|
+
`tests/test_agent_cite_default.py`.
|
|
106
|
+
|
|
17
107
|
## [2.4.0] — 2026-08-24
|
|
18
108
|
|
|
19
109
|
### Added
|
|
@@ -250,9 +250,9 @@ When changing a public verb, check that every example in `examples/` still runs
|
|
|
250
250
|
|
|
251
251
|
## Active milestone
|
|
252
252
|
|
|
253
|
-
As of 2026-08-24, the SDK is at **2.4.
|
|
253
|
+
As of 2026-08-24, the SDK is at **2.4.2** on the **engineering GA** line (engineering GA shipped 2026-07-09 as 1.0.0; SemVer is binding). The protocol core, the full swarm-intelligence / mind layer, the `hypermind.orgs` deep-research engine (decomposition + self-refine, reasoning strategies + structured outcome parsing, hypothesis lifecycle with prediction-matching, architecture-native metrics, evidence retention + citations, cross-sim learned-fit persistence via KernelStore, streaming query, full-run replay, real Relata ledger + TCP federation, PDF/site-crawl discovery + RelataDB `document_ingest` alignment, goal-driven charter-decomposed swarms), and the independent Rust second-language port (`rust/`) have all landed. Remaining gates are **ecosystem, not code** — IETF I-D submission, IANA early-allocation, OpenSSF Sandbox/Incubating acceptance, third-party security audit, full Tamarin/ProVerif proofs, NLnet/Alpha-Omega awards, ≥2 non-ZySec maintainers, ≥3 pilot MOUs, 7-day chaos-test green run, side-channel CT 30d-green. See [`docs/project/roadmap.md`](docs/project/roadmap.md) for item-numbered status.
|
|
254
254
|
|
|
255
|
-
> **Recent releases.** v2.0.0 (SemVer-major consolidation: wire-version 3 supported, deprecated-API removal, libp2p first-class transport binding, TAL v0.2 wire messages, Sealed/Citeable lattice, second-language port in progress). v2.1.0–v2.1.5 (2026-07-27): Rust port landed (`rust/`), L1–L5 autonomy stack, FTS5 storage, MoA endpoint, IEEE-defensible eval benchmark, dark-theme HTML report. v2.2.0 (2026-07-28): autonomy pass (#983) — SSRF redirect/hostname hardening, deployment `profiles`, `coevolution`, `silent_failures`/`health`, `reputation_store`, `CachingResponder`/`DifficultyRouter`, hybrid SQLite search, active grounding gates (defaults changed, API-compatible). v2.2.1 (2026-07-29): CAP_REVOKE gossip + canonical-CBOR gate (#943 P1), TAL v0.2 signed wire messages (#943 P2), bi-temporal recall + cross-namespace Merkle citation proofs (#942), streamable-HTTP MCP gateway (#1013). v2.3.0 (2026-07-31): PDF/site-crawl discovery (#1018), RelataDB `document_ingest` alignment (#1019), goal-driven charter swarms (#1020), intra-expert research probe gate (#1021). v2.4.0 (2026-08-24): `hmctl show` live network canvas (`hypermind.viz`), ledger tenancy onboarding (`hmctl setup` + `hypermind.storage.tenancy`), admin-key handling contract, `mcp serve --namespace`, doctor ledger checks, live-validated Relata read fixes (sentinel rows, projection quirk). The 2026-07-25 security-hardening fixes (issues #839-#844) shipped in 2.0 Phase 0. See [`CHANGELOG.md`](CHANGELOG.md) and [`docs/project/v2.0-plan.md`](docs/project/v2.0-plan.md).
|
|
255
|
+
> **Recent releases.** v2.0.0 (SemVer-major consolidation: wire-version 3 supported, deprecated-API removal, libp2p first-class transport binding, TAL v0.2 wire messages, Sealed/Citeable lattice, second-language port in progress). v2.1.0–v2.1.5 (2026-07-27): Rust port landed (`rust/`), L1–L5 autonomy stack, FTS5 storage, MoA endpoint, IEEE-defensible eval benchmark, dark-theme HTML report. v2.2.0 (2026-07-28): autonomy pass (#983) — SSRF redirect/hostname hardening, deployment `profiles`, `coevolution`, `silent_failures`/`health`, `reputation_store`, `CachingResponder`/`DifficultyRouter`, hybrid SQLite search, active grounding gates (defaults changed, API-compatible). v2.2.1 (2026-07-29): CAP_REVOKE gossip + canonical-CBOR gate (#943 P1), TAL v0.2 signed wire messages (#943 P2), bi-temporal recall + cross-namespace Merkle citation proofs (#942), streamable-HTTP MCP gateway (#1013). v2.3.0 (2026-07-31): PDF/site-crawl discovery (#1018), RelataDB `document_ingest` alignment (#1019), goal-driven charter swarms (#1020), intra-expert research probe gate (#1021). v2.4.0 (2026-08-24): `hmctl show` live network canvas (`hypermind.viz`), ledger tenancy onboarding (`hmctl setup` + `hypermind.storage.tenancy`), admin-key handling contract, `mcp serve --namespace`, doctor ledger checks, live-validated Relata read fixes (sentinel rows, projection quirk). v2.4.1 (2026-08-24): drop `AS OF CURRENT` from all Relata reads (new server build returns sentinel-only). v2.4.2 (2026-08-24): three more live-validated Relata durability/correctness fixes — synchronous bulk writes for disputes/citations, ≥2-column projections (1-column SELECTs return 0 rows), bi-temporal version collapse on reads; macOS virtiofs data-loss deployment note (upstream relatadb/RelataDB#4627–#4630). The 2026-07-25 security-hardening fixes (issues #839-#844) shipped in 2.0 Phase 0. See [`CHANGELOG.md`](CHANGELOG.md) and [`docs/project/v2.0-plan.md`](docs/project/v2.0-plan.md).
|
|
256
256
|
|
|
257
257
|
> **Note on doc locations (2026-07-25):** `CHARTER.md`, `GOVERNANCE.md`, `MAINTAINERS.md`, `ROADMAP.md`, and `REPO_MAP.md` were moved from the repo root into [`docs/project/`](docs/project/) (renamed lowercase). Root retains only the GitHub platform files (`README`, `LICENSE`, `SECURITY`, `CODE_OF_CONDUCT`, `CONTRIBUTING`, `CHANGELOG`, `CODEOWNERS`) plus `CLAUDE.md`. See [`docs/INDEX.md`](docs/INDEX.md) for the full doc map.
|
|
258
258
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: hypermind
|
|
3
|
-
Version: 2.4.
|
|
3
|
+
Version: 2.4.2
|
|
4
4
|
Summary: Federated agent intelligence — reference SDK for the HyperMind SCITT contested-claims profile
|
|
5
5
|
Project-URL: Homepage, https://github.com/ZySec-AI/hypermind
|
|
6
6
|
Project-URL: Documentation, https://github.com/ZySec-AI/hypermind/tree/main/docs
|
|
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "hypermind"
|
|
7
|
-
version = "2.4.
|
|
7
|
+
version = "2.4.2"
|
|
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.12,<3.15"
|
|
@@ -3173,7 +3173,7 @@ class HyperMindAgent:
|
|
|
3173
3173
|
# Publish the citation record so it is sealed and auditable.
|
|
3174
3174
|
from hypermind.uncertainty import Uncertainty as _Uncertainty
|
|
3175
3175
|
|
|
3176
|
-
_unc = uncertainty if uncertainty is not None else _Uncertainty(
|
|
3176
|
+
_unc = uncertainty if uncertainty is not None else _Uncertainty("beta", (9.0, 1.0))
|
|
3177
3177
|
return await self.publish_claim(
|
|
3178
3178
|
{
|
|
3179
3179
|
"claim_type": "cite",
|
|
@@ -140,7 +140,15 @@ class RelataBackend:
|
|
|
140
140
|
# Initialise next_seq from the high-water mark so append order survives
|
|
141
141
|
# restart. Relata's SQL subset rejects COALESCE(MAX(...)); use ORDER BY
|
|
142
142
|
# DESC LIMIT 1 instead (verified against the live server).
|
|
143
|
-
|
|
143
|
+
# NOTE: deliberately no `AS OF CURRENT` — the relata-db 2026-08-10
|
|
144
|
+
# build's bi-temporal filter reduces `SELECT * … AS OF CURRENT` to
|
|
145
|
+
# the table's internal sentinel rows only (live-validated 2026-08-24:
|
|
146
|
+
# 1 sentinel row vs 411 claims without the clause). A plain SELECT is
|
|
147
|
+
# already current-state semantics, and works on every build.
|
|
148
|
+
# RELATA-1COL-BUG: never project a single column — `SELECT seq …`
|
|
149
|
+
# returns 0 rows on this build (see load_claims), which would silently
|
|
150
|
+
# reset the sequence counter and break append order.
|
|
151
|
+
rows = self._rows("SELECT id, seq FROM HmClaim ORDER BY seq DESC LIMIT 1")
|
|
144
152
|
# Sentinel rows share the table and carry no seq (see load_claims).
|
|
145
153
|
self._seq = (int(rows[0]["seq"]) + 1) if rows and rows[0].get("seq") is not None else 1
|
|
146
154
|
|
|
@@ -203,6 +211,14 @@ class RelataBackend:
|
|
|
203
211
|
confidence = float(user.get("confidence", 0.7))
|
|
204
212
|
if topic is None:
|
|
205
213
|
topic = user.get("topic") or None
|
|
214
|
+
# GAP-R10 parity for the bare agent path: ``world.persist_claim``
|
|
215
|
+
# calls ``append_claim(stmt)`` with no attribution kwargs, which
|
|
216
|
+
# left label/unit/role empty for every plain ``publish_claim()``.
|
|
217
|
+
# Derive from the payload exactly like text/topic so DB-backed
|
|
218
|
+
# canvases can name communities by unit.
|
|
219
|
+
label = label or str(user.get("label", "") or "")
|
|
220
|
+
unit = unit or str(user.get("unit", "") or "")
|
|
221
|
+
role = role or str(user.get("role", "") or "")
|
|
206
222
|
source_url = str(user.get("source_url", "") or "")
|
|
207
223
|
source_type = str(user.get("source_type", "") or "")
|
|
208
224
|
arxiv_id = str(user.get("arxiv_id", "") or "")
|
|
@@ -302,7 +318,10 @@ class RelataBackend:
|
|
|
302
318
|
try:
|
|
303
319
|
existing = self._obj.get("HmClaim", kid_hex) or {}
|
|
304
320
|
count = int(existing.get("citations_received") or 0) + 1
|
|
305
|
-
|
|
321
|
+
# RELATA-ASYNC-INGEST: batch_upsert commits synchronously (see
|
|
322
|
+
# append_dispute) — single upsert would only queue the counter
|
|
323
|
+
# write and lose it on server shutdown.
|
|
324
|
+
self._obj.batch_upsert("HmClaim", [{"id": kid_hex, "citations_received": count}])
|
|
306
325
|
except Exception as _sf_exc:
|
|
307
326
|
_record_suppressed("storage.relata.increment_citations", _sf_exc)
|
|
308
327
|
|
|
@@ -321,7 +340,7 @@ class RelataBackend:
|
|
|
321
340
|
self.flush_claims()
|
|
322
341
|
# RELATA-005: include namespace column so cross-sim claim bleed is filtered.
|
|
323
342
|
rows = self._rows(
|
|
324
|
-
f"SELECT wire_b64, namespace FROM HmClaim
|
|
343
|
+
f"SELECT wire_b64, namespace FROM HmClaim ORDER BY created_ms DESC LIMIT {int(max(1, limit))}"
|
|
325
344
|
)
|
|
326
345
|
_ns = self._ns
|
|
327
346
|
out: list[tuple[str, str]] = []
|
|
@@ -345,12 +364,23 @@ class RelataBackend:
|
|
|
345
364
|
from hypermind.wire import SignedStatement
|
|
346
365
|
|
|
347
366
|
self.flush_claims()
|
|
348
|
-
#
|
|
349
|
-
# rows
|
|
350
|
-
#
|
|
351
|
-
|
|
367
|
+
# RELATA-1COL-BUG: single-column projections deterministically return
|
|
368
|
+
# 0 rows on this build (live-observed 2026-08-24: `SELECT wire_b64 …`
|
|
369
|
+
# → 0 rows while `SELECT id, wire_b64 …` → all rows, same session) —
|
|
370
|
+
# always project at least two columns and read the one we need.
|
|
371
|
+
rows = self._rows("SELECT id, wire_b64 FROM HmClaim ORDER BY seq ASC")
|
|
352
372
|
out: list[SignedStatement] = []
|
|
373
|
+
seen_ids: set[str] = set()
|
|
353
374
|
for r in rows:
|
|
375
|
+
# Plain SELECT returns every bi-temporal version, not just current
|
|
376
|
+
# state (live-observed 2026-08-24: re-appending the same kid under
|
|
377
|
+
# on_conflict=skip still leaves seq 1 and seq 2 rows). Collapse to
|
|
378
|
+
# the first version — the original publish order.
|
|
379
|
+
_id = r.get("id")
|
|
380
|
+
if _id:
|
|
381
|
+
if _id in seen_ids:
|
|
382
|
+
continue
|
|
383
|
+
seen_ids.add(_id)
|
|
354
384
|
wire = r.get("wire_b64")
|
|
355
385
|
if not wire:
|
|
356
386
|
# Server builds keep internal sentinel objects in the HmClaim
|
|
@@ -367,42 +397,67 @@ class RelataBackend:
|
|
|
367
397
|
survives restarts without a full CBOR decode.
|
|
368
398
|
"""
|
|
369
399
|
self.flush_claims()
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
400
|
+
# ≥2-column projection (1-col SELECTs return 0 rows — see load_claims).
|
|
401
|
+
# Rows are seq DESC → first row per id is the newest version; collapse
|
|
402
|
+
# the bi-temporal duplicates.
|
|
403
|
+
rows = self._rows(
|
|
404
|
+
"SELECT id, author_hex, label, unit, role, confidence, "
|
|
405
|
+
"text, evidenced, topic FROM HmClaim ORDER BY seq DESC"
|
|
406
|
+
)
|
|
407
|
+
stubs: list[dict[str, Any]] = []
|
|
408
|
+
seen: set[str] = set()
|
|
409
|
+
for r in rows:
|
|
410
|
+
kid_hex = r.get("id") or ""
|
|
411
|
+
if kid_hex in seen:
|
|
412
|
+
continue
|
|
413
|
+
seen.add(kid_hex)
|
|
414
|
+
stubs.append(
|
|
415
|
+
{
|
|
416
|
+
"kid_hex": kid_hex,
|
|
417
|
+
"author_hex": r.get("author_hex", ""),
|
|
418
|
+
"label": r.get("label", ""),
|
|
419
|
+
"unit": r.get("unit", ""),
|
|
420
|
+
"role": r.get("role", ""),
|
|
421
|
+
"confidence": float(r.get("confidence") or 0.7),
|
|
422
|
+
"finding": str(r.get("text") or ""),
|
|
423
|
+
"evidenced": bool(r.get("evidenced")),
|
|
424
|
+
"topic": r.get("topic", ""),
|
|
425
|
+
}
|
|
426
|
+
)
|
|
427
|
+
if len(stubs) >= limit:
|
|
428
|
+
break
|
|
429
|
+
return stubs
|
|
385
430
|
|
|
386
431
|
# ---- Disputes (upsert by claim kid) ---------------------------------
|
|
387
432
|
|
|
388
433
|
def append_dispute(self, kid: Kid, dispute: Dispute) -> None:
|
|
389
434
|
payload = _dispute_to_cbor(dispute)
|
|
390
|
-
|
|
435
|
+
kid_hex = bytes(kid).hex()
|
|
436
|
+
# RELATA-ASYNC-INGEST: the single-row `upsert` (`POST /ingest`) returns
|
|
437
|
+
# an async task receipt (rows_queued/task_id) — the write only becomes
|
|
438
|
+
# query-visible when the server's background ingest queue drains, and
|
|
439
|
+
# is LOST if the server stops first (live-observed 2026-08-24: seeded
|
|
440
|
+
# disputes vanished on container restart). `/ingest/bulk`
|
|
441
|
+
# (batch_upsert) commits synchronously, so route the one-row write
|
|
442
|
+
# through it — read-after-write holds and shutdown can't drop it.
|
|
443
|
+
self._obj.batch_upsert(
|
|
391
444
|
"HmDispute",
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
445
|
+
[
|
|
446
|
+
{
|
|
447
|
+
"id": kid_hex,
|
|
448
|
+
"claim_kid": kid_hex,
|
|
449
|
+
"payload_b64": base64.b64encode(payload).decode("ascii"),
|
|
450
|
+
"updated_ms": int(time.time() * 1000),
|
|
451
|
+
}
|
|
452
|
+
],
|
|
398
453
|
)
|
|
399
454
|
|
|
400
455
|
def load_disputes(self) -> dict[Kid, Dispute]:
|
|
401
456
|
out: dict[bytes, Dispute] = {}
|
|
402
|
-
#
|
|
403
|
-
#
|
|
404
|
-
#
|
|
405
|
-
for r in self._rows("SELECT
|
|
457
|
+
# explicit ≥2-column projection (see load_claims). Plain SELECT
|
|
458
|
+
# returns every bi-temporal version; ordered ASC by updated_ms so the
|
|
459
|
+
# dict's last-write-wins keeps the LATEST dispute state per kid.
|
|
460
|
+
for r in self._rows("SELECT claim_kid, payload_b64 FROM HmDispute ORDER BY updated_ms ASC"):
|
|
406
461
|
try:
|
|
407
462
|
out[bytes.fromhex(r["claim_kid"])] = _cbor_to_dispute(
|
|
408
463
|
base64.b64decode(r["payload_b64"])
|
|
@@ -300,6 +300,7 @@ def render_canvas_html(
|
|
|
300
300
|
<div class="filters" id="hm-filters">
|
|
301
301
|
<input id="hm-search" type="search" placeholder="Search agents, findings, reasons…" autocomplete="off">
|
|
302
302
|
<select id="hm-topic" aria-label="filter by topic"><option value="">all topics</option></select>
|
|
303
|
+
<select id="hm-community" aria-label="filter by community"><option value="">all communities</option></select>
|
|
303
304
|
<label class="toggle"><input type="checkbox" checked data-edge="cites"><span class="key cites"></span>cites</label>
|
|
304
305
|
<label class="toggle"><input type="checkbox" checked data-edge="vouches"><span class="key vouches"></span>vouches</label>
|
|
305
306
|
<label class="toggle"><input type="checkbox" checked data-edge="disputes"><span class="key disputes"></span>disputes</label>
|
|
@@ -538,7 +539,7 @@ _JS = """
|
|
|
538
539
|
function edgeColor(t) { return (EDGE_COLOR[t] || OTHER)[dark ? 1 : 0]; }
|
|
539
540
|
|
|
540
541
|
// ---- state ----------------------------------------------------------
|
|
541
|
-
var state = { tab: 'graph', search: '', topic: '', edgeTypes: { cites: true, vouches: true, disputes: true }, cursor: 0, sort: { key: null, dir: 1 } };
|
|
542
|
+
var state = { tab: 'graph', search: '', topic: '', community: '', edgeTypes: { cites: true, vouches: true, disputes: true }, cursor: 0, sort: { key: null, dir: 1 } };
|
|
542
543
|
|
|
543
544
|
var nodeById = {};
|
|
544
545
|
var clusterColor = {}, clusterLabel = {};
|
|
@@ -553,9 +554,17 @@ _JS = """
|
|
|
553
554
|
var sizes = {};
|
|
554
555
|
nodes.forEach(function (n) { var c = n.cluster == null ? 0 : n.cluster; sizes[c] = (sizes[c] || 0) + 1; });
|
|
555
556
|
var order = Object.keys(sizes).sort(function (a, b) { return sizes[b] - sizes[a] || (+a) - (+b); });
|
|
557
|
+
// Prefer the backend-provided community name (dominant unit of the
|
|
558
|
+
// cluster's members — e.g. a university template's departments); fall
|
|
559
|
+
// back to the anonymous slot label when the source has no unit info.
|
|
560
|
+
var nameByCluster = {};
|
|
561
|
+
nodes.forEach(function (n) {
|
|
562
|
+
var c = String(n.cluster == null ? 0 : n.cluster);
|
|
563
|
+
if (n.community && !(c in nameByCluster)) nameByCluster[c] = n.community;
|
|
564
|
+
});
|
|
556
565
|
clusterLabel = {};
|
|
557
566
|
order.forEach(function (c, i) {
|
|
558
|
-
clusterLabel[c] = i < CATEGORICAL.length ? 'community ' + (+c + 1) : 'other';
|
|
567
|
+
clusterLabel[c] = i < CATEGORICAL.length ? (nameByCluster[c] || 'community ' + (+c + 1)) : 'other';
|
|
559
568
|
});
|
|
560
569
|
return sizes;
|
|
561
570
|
}
|
|
@@ -582,6 +591,19 @@ _JS = """
|
|
|
582
591
|
});
|
|
583
592
|
sel.value = (prevTopic === '' || topics[prevTopic]) ? prevTopic : '';
|
|
584
593
|
state.topic = sel.value;
|
|
594
|
+
// Community filter options rebuilt the same way; a selection survives
|
|
595
|
+
// only if the community still exists.
|
|
596
|
+
var csel = document.getElementById('hm-community');
|
|
597
|
+
var prevCommunity = csel.value;
|
|
598
|
+
var communities = {};
|
|
599
|
+
nodes.forEach(function (n) { if (n.community) communities[n.community] = 1; });
|
|
600
|
+
csel.textContent = '';
|
|
601
|
+
var call = el('option'); call.value = ''; call.textContent = 'all communities'; csel.appendChild(call);
|
|
602
|
+
Object.keys(communities).sort().forEach(function (c) {
|
|
603
|
+
var o = el('option'); o.value = c; o.textContent = c; csel.appendChild(o);
|
|
604
|
+
});
|
|
605
|
+
csel.value = (prevCommunity === '' || communities[prevCommunity]) ? prevCommunity : '';
|
|
606
|
+
state.community = csel.value;
|
|
585
607
|
// Tab badges + header stat tiles follow the new data.
|
|
586
608
|
var counts = { agents: nodes.length, conversation: events.length, claims: claims.length, disputes: disputes.length, research: hypotheses.length + evidence.length };
|
|
587
609
|
document.querySelectorAll('#hm-tabs .tab').forEach(function (b) {
|
|
@@ -610,6 +632,12 @@ _JS = """
|
|
|
610
632
|
document.getElementById('hm-topic').addEventListener('change', function () {
|
|
611
633
|
var sel = document.getElementById('hm-topic'); state.topic = sel.value; renderAll();
|
|
612
634
|
});
|
|
635
|
+
document.getElementById('hm-community').addEventListener('change', function () {
|
|
636
|
+
var csel = document.getElementById('hm-community'); state.community = csel.value; renderAll();
|
|
637
|
+
});
|
|
638
|
+
// Community of an event/claim/dispute actor: falls back to '' (matches
|
|
639
|
+
// no community filter) when the actor isn't a known node.
|
|
640
|
+
function communityOf(id) { var n = nodeById[id]; return n ? (n.community || '') : ''; }
|
|
613
641
|
function n_topic_scan() {
|
|
614
642
|
var ts = [];
|
|
615
643
|
claims.forEach(function (c) { if (c.topic) ts.push(c.topic); });
|
|
@@ -937,6 +965,7 @@ _JS = """
|
|
|
937
965
|
var rows = nodes.filter(function (n) {
|
|
938
966
|
if (visible && !visible[n.id]) return false;
|
|
939
967
|
if (state.topic && !(n.reputation || {})[state.topic]) return false;
|
|
968
|
+
if (state.community && (n.community || '') !== state.community) return false;
|
|
940
969
|
return true;
|
|
941
970
|
});
|
|
942
971
|
if (!rows.length) { host.appendChild(el('div', 'empty', 'no agents match the current filters')); return; }
|
|
@@ -1014,6 +1043,7 @@ _JS = """
|
|
|
1014
1043
|
var visible = matchesSearch();
|
|
1015
1044
|
var rows = events.filter(function (ev) {
|
|
1016
1045
|
if (state.topic && ev.topic !== state.topic) return false;
|
|
1046
|
+
if (state.community && communityOf(ev.actor) !== state.community) return false;
|
|
1017
1047
|
if (visible && !(ev.actor && visible[ev.actor]) && !(ev.target && visible[ev.target])) return false;
|
|
1018
1048
|
if (state.search) {
|
|
1019
1049
|
var hay = ((ev.text || '') + ' ' + (ev.detail || '') + ' ' + (ev.topic || '')).toLowerCase();
|
|
@@ -1064,6 +1094,7 @@ _JS = """
|
|
|
1064
1094
|
host.textContent = '';
|
|
1065
1095
|
var rows = claims.filter(function (c) {
|
|
1066
1096
|
if (state.topic && c.topic !== state.topic) return false;
|
|
1097
|
+
if (state.community && communityOf(c.author) !== state.community) return false;
|
|
1067
1098
|
if (state.search) {
|
|
1068
1099
|
var hay = ((c.finding || '') + ' ' + (c.claim_type || '') + ' ' + (c.author || '') + ' ' + labelOf(c.author)).toLowerCase();
|
|
1069
1100
|
if (hay.indexOf(state.search) === -1) return false;
|
|
@@ -26,6 +26,7 @@ from __future__ import annotations
|
|
|
26
26
|
|
|
27
27
|
import base64
|
|
28
28
|
import json
|
|
29
|
+
from collections import Counter
|
|
29
30
|
from dataclasses import dataclass, field
|
|
30
31
|
from typing import Any
|
|
31
32
|
|
|
@@ -116,6 +117,23 @@ def _finish(
|
|
|
116
117
|
clusters = _detect_communities(nodes, edges)
|
|
117
118
|
for node_id, cluster_id in clusters.items():
|
|
118
119
|
nodes[node_id]["cluster"] = cluster_id
|
|
120
|
+
# Name each community by the dominant `unit` of its members so org
|
|
121
|
+
# structure (e.g. a university template's departments) is legible
|
|
122
|
+
# instead of an anonymous "community N". Interaction-derived clusters
|
|
123
|
+
# with no unit info keep the generic label.
|
|
124
|
+
unit_tally: dict[int, Counter[str]] = {}
|
|
125
|
+
for node in nodes.values():
|
|
126
|
+
unit = node.get("unit")
|
|
127
|
+
if unit:
|
|
128
|
+
unit_tally.setdefault(node["cluster"], Counter())[unit] += 1
|
|
129
|
+
community_names: dict[int, str] = {}
|
|
130
|
+
for cluster_id in set(clusters.values()):
|
|
131
|
+
tally = unit_tally.get(cluster_id)
|
|
132
|
+
community_names[cluster_id] = (
|
|
133
|
+
tally.most_common(1)[0][0] if tally else f"community {cluster_id + 1}"
|
|
134
|
+
)
|
|
135
|
+
for node in nodes.values():
|
|
136
|
+
node["community"] = community_names[node["cluster"]]
|
|
119
137
|
node_list = sorted(nodes.values(), key=lambda n: n["id"])
|
|
120
138
|
return NetworkSnapshot(
|
|
121
139
|
nodes=node_list,
|
|
@@ -131,6 +149,7 @@ def _finish(
|
|
|
131
149
|
"n_edges": len(edges),
|
|
132
150
|
"n_events": len(events),
|
|
133
151
|
"n_clusters": len(set(clusters.values())),
|
|
152
|
+
"communities": sorted(set(community_names.values())),
|
|
134
153
|
"source": source,
|
|
135
154
|
},
|
|
136
155
|
)
|
|
@@ -438,11 +457,40 @@ def from_relata(url: str, *, namespace: str, token: str | None = None) -> Networ
|
|
|
438
457
|
{"kid": kid.hex(), "topic": topic, "alpha": alpha, "beta": beta}
|
|
439
458
|
for kid, topic, alpha, beta, _last_update_ms in backend.load_reputation()
|
|
440
459
|
]
|
|
460
|
+
stubs = backend.load_claim_stubs()
|
|
441
461
|
finally:
|
|
442
462
|
backend.close()
|
|
443
463
|
|
|
464
|
+
# Per-author attribution from the GAP-R10 claim columns: the majority
|
|
465
|
+
# unit/role/label across each author's claims. from_live_world gets this
|
|
466
|
+
# from the live agent objects; a Relata deployment only has what was
|
|
467
|
+
# persisted on claims — without this, DB-sourced canvases have no unit
|
|
468
|
+
# info (communities fall back to anonymous labels) and every node shows
|
|
469
|
+
# a bare hex id instead of a human label.
|
|
470
|
+
unit_tally: dict[str, Counter[str]] = {}
|
|
471
|
+
role_tally: dict[str, Counter[str]] = {}
|
|
472
|
+
label_tally: dict[str, Counter[str]] = {}
|
|
473
|
+
for s in stubs:
|
|
474
|
+
author = s.get("author_hex") or ""
|
|
475
|
+
if s.get("unit"):
|
|
476
|
+
unit_tally.setdefault(author, Counter())[s["unit"]] += 1
|
|
477
|
+
if s.get("role"):
|
|
478
|
+
role_tally.setdefault(author, Counter())[s["role"]] += 1
|
|
479
|
+
if s.get("label"):
|
|
480
|
+
label_tally.setdefault(author, Counter())[s["label"]] += 1
|
|
481
|
+
agents_meta = {
|
|
482
|
+
author: {
|
|
483
|
+
"role": role_tally[author].most_common(1)[0][0] if author in role_tally else None,
|
|
484
|
+
"unit": unit_tally[author].most_common(1)[0][0] if author in unit_tally else None,
|
|
485
|
+
"label": label_tally[author].most_common(1)[0][0] if author in label_tally else None,
|
|
486
|
+
"namespace": namespace,
|
|
487
|
+
"rooms": [],
|
|
488
|
+
}
|
|
489
|
+
for author in set(role_tally) | set(unit_tally) | set(label_tally)
|
|
490
|
+
}
|
|
491
|
+
|
|
444
492
|
return _build_from_native(
|
|
445
|
-
agents_meta=
|
|
493
|
+
agents_meta=agents_meta,
|
|
446
494
|
sealed=sealed,
|
|
447
495
|
disputes=disputes,
|
|
448
496
|
rep_rows=rep_rows,
|
|
@@ -124,7 +124,9 @@ class _FakeClient:
|
|
|
124
124
|
return _FakeResult([{"seq": max(seqs)}] if seqs else [])
|
|
125
125
|
if "FROM HmClaim" in sql:
|
|
126
126
|
rows = sorted(objs.get("HmClaim", {}).values(), key=lambda f: f["seq"])
|
|
127
|
-
return _FakeResult(
|
|
127
|
+
return _FakeResult(
|
|
128
|
+
[{"id": f["id"], "wire_b64": f["wire_b64"], "seq": f["seq"]} for f in rows]
|
|
129
|
+
)
|
|
128
130
|
if "FROM HmDispute" in sql:
|
|
129
131
|
return _FakeResult(
|
|
130
132
|
[
|
|
@@ -246,6 +248,73 @@ def test_dispute_round_trip():
|
|
|
246
248
|
b.close()
|
|
247
249
|
|
|
248
250
|
|
|
251
|
+
def test_reads_collapse_bi_temporal_version_duplicates(monkeypatch):
|
|
252
|
+
"""A plain relata SELECT returns every bi-temporal version, not just
|
|
253
|
+
current state (live-observed 2026-08-24 on relata-db 2026-08-10:
|
|
254
|
+
re-appending the same kid under on_conflict=skip left seq-1 and seq-2
|
|
255
|
+
rows; both came back). The read paths must collapse duplicates so
|
|
256
|
+
restore/replay never double-counts a claim."""
|
|
257
|
+
from hypermind.crypto.hlc import HLC
|
|
258
|
+
from hypermind.crypto.signing import Keypair
|
|
259
|
+
from hypermind.wire import SignedStatement
|
|
260
|
+
|
|
261
|
+
b = _backend()
|
|
262
|
+
b.open()
|
|
263
|
+
kp = Keypair.generate()
|
|
264
|
+
stmt = SignedStatement.sign(
|
|
265
|
+
keypair=kp,
|
|
266
|
+
record_type="SEAL",
|
|
267
|
+
namespace_id=b"\x00" * 16,
|
|
268
|
+
hlc=HLC(logical_ms=1, counter=0, node_id=b"\x00" * 8),
|
|
269
|
+
payload=b"versioned",
|
|
270
|
+
)
|
|
271
|
+
wire = stmt.to_bytes()
|
|
272
|
+
import base64 as _b64
|
|
273
|
+
|
|
274
|
+
wire_b64 = _b64.b64encode(wire).decode("ascii")
|
|
275
|
+
kid_hex = stmt.kid.hex()
|
|
276
|
+
|
|
277
|
+
def fake_rows(sql: str):
|
|
278
|
+
if "ORDER BY seq ASC" in sql: # load_claims
|
|
279
|
+
return [
|
|
280
|
+
{"id": kid_hex, "wire_b64": wire_b64, "seq": 1},
|
|
281
|
+
{"id": kid_hex, "wire_b64": wire_b64, "seq": 2},
|
|
282
|
+
]
|
|
283
|
+
if "ORDER BY seq DESC" in sql: # load_claim_stubs
|
|
284
|
+
return [
|
|
285
|
+
{
|
|
286
|
+
"id": kid_hex,
|
|
287
|
+
"author_hex": kp.kid.hex(),
|
|
288
|
+
"label": "",
|
|
289
|
+
"unit": "u",
|
|
290
|
+
"role": "",
|
|
291
|
+
"confidence": 0.9,
|
|
292
|
+
"text": "v2",
|
|
293
|
+
"evidenced": 0,
|
|
294
|
+
"topic": "t",
|
|
295
|
+
},
|
|
296
|
+
{
|
|
297
|
+
"id": kid_hex,
|
|
298
|
+
"author_hex": kp.kid.hex(),
|
|
299
|
+
"label": "",
|
|
300
|
+
"unit": "u",
|
|
301
|
+
"role": "",
|
|
302
|
+
"confidence": 0.5,
|
|
303
|
+
"text": "v1",
|
|
304
|
+
"evidenced": 0,
|
|
305
|
+
"topic": "t",
|
|
306
|
+
},
|
|
307
|
+
]
|
|
308
|
+
return []
|
|
309
|
+
|
|
310
|
+
monkeypatch.setattr(b, "_rows", fake_rows)
|
|
311
|
+
assert len(b.load_claims()) == 1
|
|
312
|
+
stubs = b.load_claim_stubs()
|
|
313
|
+
assert len(stubs) == 1
|
|
314
|
+
assert stubs[0]["finding"] == "v2" # newest version wins
|
|
315
|
+
b.close()
|
|
316
|
+
|
|
317
|
+
|
|
249
318
|
# --------------------------------------------------------------------------
|
|
250
319
|
# Agent integration — publish persists, and a fresh backend restores
|
|
251
320
|
# --------------------------------------------------------------------------
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"""Regression: `cite()` with no explicit uncertainty must not crash.
|
|
2
|
+
|
|
3
|
+
The default branch once built `Uncertainty(alpha=9.0, beta=1.0)` against a
|
|
4
|
+
constructor that takes `(kind, params)` — found live while onboarding a tenant
|
|
5
|
+
(2026-08-24). Every other path passed an explicit Uncertainty, so only the
|
|
6
|
+
default was broken.
|
|
7
|
+
"""
|
|
8
|
+
|
|
9
|
+
from hypermind import HyperMindAgent, Uncertainty
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
async def test_cite_without_explicit_uncertainty_uses_beta_default() -> None:
|
|
13
|
+
async with HyperMindAgent.sandbox(room="cite-default") as alice:
|
|
14
|
+
first = await alice.publish_claim(
|
|
15
|
+
{"finding": "ground truth for the citation"},
|
|
16
|
+
uncertainty=Uncertainty.beta(7, 3),
|
|
17
|
+
)
|
|
18
|
+
second = await alice.publish_claim(
|
|
19
|
+
{"finding": "the citing claim"},
|
|
20
|
+
uncertainty=Uncertainty.beta(5, 5),
|
|
21
|
+
)
|
|
22
|
+
# No `uncertainty=` — exercises the default-branch constructor.
|
|
23
|
+
cite_kid = await alice.cite(second, first)
|
|
24
|
+
assert cite_kid.hex() != first.hex()
|