zaxy-memory 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.
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/CHANGELOG.md +32 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/PKG-INFO +1 -1
- zaxy_memory-2.4.2/docs/announcements/zaxy-v2.4-x-article.md +102 -0
- zaxy_memory-2.4.2/docs/assets/zaxy-v2.4-header.png +0 -0
- zaxy_memory-2.4.2/docs/assets/zaxy-v2.4-header.svg +65 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/pyproject.toml +4 -1
- zaxy_memory-2.4.2/site/assets/zaxy-v2.4-header.png +0 -0
- zaxy_memory-2.4.2/site/docs/announcements/zaxy-v2.4-x-article.html +63 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/index.html +2 -2
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/core.py +98 -8
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/event.py +93 -41
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/verbatim.py +66 -4
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_core.py +87 -16
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_docs_site.py +1 -1
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_event.py +27 -1
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_verbatim.py +80 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/.gitignore +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/AGENTS.md +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/Dockerfile +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/LICENSE +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/README.md +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docker-compose.prod.yml +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docker-compose.yml +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/agent-events.md +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/announcements/zaxy-0.4.0.md +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/announcements/zaxy-coordinate.md +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/announcements/zaxy-v1.0-x-article.md +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/announcements/zaxy-v1.0.md +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/announcements/zaxy-v1.1-x-article.md +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/announcements/zaxy-v2.1.md +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/announcements/zaxy-v2.2-x-article.md +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/announcements/zaxy-v2.3-x-article.md +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/api-inventory.md +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/api.md +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/architecture.md +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/archive/benchmark-contributions.md +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/archive/benchmark-review.md +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/archive/competitive-positioning.md +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/archive/experimental-associative-memory.md +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/archive/longmembench.md +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/archive/memory-is-purpose-zaxy-analysis.md +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/archive/release-validation-checklist.md +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/archive/synthesis-context-research.md +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/archive/v09-gate-audit.md +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/archive/v1-roadmap.md +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/archive/v10-gate-audit.md +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/archive/zero-friction-runtime-roadmap.md +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/assets/zaxy-coordinate-header.png +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/assets/zaxy-v1-header.png +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/assets/zaxy-v1.1-header.png +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/assets/zaxy-v2.1-header.png +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/assets/zaxy-v2.1-hero.png +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/assets/zaxy-v2.2-header.png +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/assets/zaxy-v2.3-header.png +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/benchmarks.md +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/codebase.md +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/configuration.md +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/consolidation.md +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/coordinate-quickstart.md +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/coordinate-roadmap.md +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/deployment.md +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/embeddings.md +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/eventloom.md +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/examples/external-validation-report.example.json +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/examples/first-run-timing-report.json +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/examples/mcp-response-snapshots.json +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/examples/mcp-tool-contract.json +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/examples/memory-checkout-contract.json +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/examples/native-integration-contract.json +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/examples/v1-schema-freeze.json +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/experimental/portable-export-conformance.md +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/experimental/portable-export-security.md +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/external-validation.md +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/first-run-validation.md +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/getting-started.md +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/graph-schema.md +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/hooks.md +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/integrations.md +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/mcp-install-targets.md +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/mcp-quickstart.md +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/mcp.md +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/media/zaxy-2-5-3-0-latent-memory-roadmap-header.png +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/media/zaxy-codebase-review-header.png +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/media/zaxy-collaborate-demo.gif +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/media/zaxy-collaborate-demo.md +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/media/zaxy-collaborate-demo.mp4 +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/migration.md +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/operations.md +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/packet-analyzer.md +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/research/ann-engineering-2026-06.md +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/research/artifacts/2-3-research/backend-options.md +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/research/artifacts/2-3-research/external-validation.md +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/research/artifacts/2-3-research/int8_bench_e_results.json +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/research/artifacts/2-3-research/int8_bench_results.json +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/research/artifacts/2-3-research/kuzu-usage-audit.md +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/research/artifacts/2-3-research/promotion-pass.md +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/research/artifacts/ann-2026-06/BASELINE.md +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/research/artifacts/ann-2026-06/after-dim1536-r1.json +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/research/artifacts/ann-2026-06/after-dim1536-r2.json +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/research/artifacts/ann-2026-06/after-dim64-100k.json +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/research/artifacts/ann-2026-06/after-dim64-r1.json +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/research/artifacts/ann-2026-06/after-dim64-r2.json +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/research/artifacts/ann-2026-06/after-dim64-r3.json +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/research/artifacts/ann-2026-06/ann2-d64-10k-postcopy.json +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/research/artifacts/ann-2026-06/ann3-d1536-10k-gauss-r1.json +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/research/artifacts/ann-2026-06/ann3-d1536-10k-gauss-r2.json +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/research/artifacts/ann-2026-06/ann3-d1536-10k-hash-r1.json +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/research/artifacts/ann-2026-06/ann3-d1536-10k-hash-record.json +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/research/artifacts/ann-2026-06/ann3-d1536-50k-gauss-crossover.json +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/research/artifacts/ann-2026-06/ann3-d64-100k-r1.json +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/research/artifacts/ann-2026-06/ann3-d64-100k-r2.json +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/research/artifacts/ann-2026-06/ann4-d1536-50k-dimension-gated.json +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/research/artifacts/ann-2026-06/ann4-d1536-50k-gauss-efs800.json +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/research/artifacts/ann-2026-06/ann4-d1536-50k-gauss-r2.json +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/research/artifacts/ann-2026-06/ann4-d64-100k-confirm.json +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/research/artifacts/ann-2026-06/baseline-dim1536.json +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/research/artifacts/ann-2026-06/baseline-dim64.json +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/research/artifacts/ann-2026-06/diag-d1536-f32-ceiling.json +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/research/artifacts/ann-2026-06/diag-gauss-efs-sweep.json +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/research/artifacts/ann-2026-06/diag-ties-gaussian.json +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/research/artifacts/ann-2026-06/experiments-e1-e4.json +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/research/artifacts/ann-2026-06/profiling-a2.json +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/research/codebase-review-2026-06-09.md +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/research/zaxy-memory-fabric-paper.md +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/retrieval.md +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/runbook.md +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/security.md +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/stability-commitment.md +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/superpowers/plans/2026-05-08-codebase-file-map.md +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/superpowers/plans/2026-05-08-domain-separated-defaults.md +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/superpowers/plans/2026-05-08-local-first-retrieval.md +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/superpowers/plans/2026-05-08-remote-mcp-rate-limit-audit.md +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/superpowers/plans/2026-05-09-agent-integration-templates.md +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/superpowers/plans/2026-05-09-retention-metadata-extraction.md +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/superpowers/plans/2026-05-09-retrieval-feedback-events.md +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/superpowers/plans/2026-05-10-merge-sprint.md +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/superpowers/plans/2026-05-16-runtime-dashboard.md +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/superpowers/plans/2026-05-17-skill-memory.md +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/superpowers/plans/2026-05-18-pggraph-adapter.md +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/superpowers/plans/2026-05-18-projection-backend-contract.md +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/superpowers/plans/2026-05-20-zero-friction-embedded-graph-runtime.md +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/superpowers/plans/2026-05-30-v0-5-public-positioning-first-run-trust.md +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/superpowers/plans/2026-05-31-v1-release-docs-media.md +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/superpowers/plans/2026-06-07-zaxy-2-0-alpha-1-causal-consolidation.md +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/superpowers/plans/2026-06-07-zaxy-2-0-alpha-2-review-gated-consolidation.md +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/superpowers/plans/2026-06-07-zaxy-2-0-beta-1-reasoning-loop-primitives.md +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/superpowers/plans/2026-06-08-zaxy-2-0-beta-2-metacognitive-procedural-hardening.md +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/superpowers/plans/2026-06-08-zaxy-2-0-rc-1-benchmark-freeze.md +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/superpowers/plans/2026-06-09-codebase-review-high-value-remediation.md +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/superpowers/specs/2026-05-08-codebase-file-map-design.md +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/superpowers/specs/2026-05-08-domain-separated-defaults-design.md +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/superpowers/specs/2026-05-08-local-first-retrieval-design.md +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/superpowers/specs/2026-05-08-remote-mcp-rate-limit-audit-design.md +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/superpowers/specs/2026-05-16-runtime-dashboard-design.md +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/superpowers/specs/2026-05-17-skill-memory-pggraph-evaluation-design.md +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/superpowers/specs/2026-05-31-v1-release-docs-media-design.md +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/superpowers/specs/2026-06-07-zaxy-2-0-roadmap-design.md +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/superpowers/specs/2026-06-09-zaxy-2-5-3-0-latent-memory-roadmap-design.md +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/superpowers/specs/2026-06-10-zaxy-2-1-2-3-agent-experience-cognitive-memory-roadmap-design.md +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/superpowers/specs/2026-06-10-zaxy-2-1-2-3-implementation-plan.md +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/superpowers/specs/2026-06-11-zaxy-2-2-ann-engineering-plan.md +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/superpowers/specs/2026-06-11-zaxy-2-3-readiness-research.md +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/testing.md +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/why-zaxy.md +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/docs/workspace-genesis.md +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/examples/__init__.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/examples/adapters/coordinationbench_zaxy_adapter.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/examples/claude_compatible_memory.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/examples/coordinate_three_worker_project.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/examples/langgraph_memory.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/examples/openai_compatible_memory.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/examples/single_agent_memory.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/reports/archive/benchmarks/longmembench-adapter-kit/README.md +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/reports/archive/benchmarks/purpose-v1/holdouts/public-derived-purpose-v1/README.md +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/reports/benchmarks/purpose-v1/holdouts/public-derived-purpose-v1/README.md +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/scripts/backend-shootout.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/scripts/backup.sh +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/scripts/benchmark-guardrails.sh +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/scripts/beta-uat.sh +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/scripts/build-backend-shootout-workload.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/scripts/build-dist.sh +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/scripts/build-site-docs.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/scripts/check-backend-shootout.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/scripts/check-coverage.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/scripts/check-external-validation.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/scripts/check-state-recovery-benchmark.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/scripts/chunk_rag_token_compare.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/scripts/generate-certs.sh +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/scripts/generate-release-media.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/scripts/integration-check.sh +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/scripts/live-benchmark.sh +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/scripts/mcp_smoke_test.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/scripts/release-check.sh +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/scripts/restore.sh +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/scripts/rotate-logs.sh +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/scripts/setup.sh +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/scripts/setup_neo4j_indexes.cypher +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/scripts/validate-deployment.sh +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/scripts/validate-docs.sh +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/README.html +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/assets/graph.png +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/assets/zaxy-coordinate-header.png +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/assets/zaxy-v1-header.png +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/assets/zaxy-v1.1-header.png +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/assets/zaxy-v2.1-header.png +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/assets/zaxy-v2.1-hero.png +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/assets/zaxy-v2.2-header.png +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/assets/zaxy-v2.3-header.png +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/docs/agent-events.html +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/docs/announcements/zaxy-0.4.0.html +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/docs/announcements/zaxy-coordinate.html +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/docs/announcements/zaxy-v1.0-x-article.html +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/docs/announcements/zaxy-v1.0.html +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/docs/announcements/zaxy-v1.1-x-article.html +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/docs/announcements/zaxy-v2.1.html +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/docs/announcements/zaxy-v2.2-x-article.html +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/docs/announcements/zaxy-v2.3-x-article.html +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/docs/api-inventory.html +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/docs/api.html +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/docs/architecture.html +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/docs/archive/benchmark-contributions.html +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/docs/archive/benchmark-review.html +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/docs/archive/competitive-positioning.html +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/docs/archive/experimental-associative-memory.html +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/docs/archive/longmembench.html +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/docs/archive/memory-is-purpose-zaxy-analysis.html +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/docs/archive/release-validation-checklist.html +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/docs/archive/synthesis-context-research.html +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/docs/archive/v09-gate-audit.html +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/docs/archive/v1-roadmap.html +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/docs/archive/v10-gate-audit.html +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/docs/archive/zero-friction-runtime-roadmap.html +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/docs/benchmarks.html +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/docs/codebase.html +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/docs/configuration.html +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/docs/consolidation.html +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/docs/coordinate-quickstart.html +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/docs/coordinate-roadmap.html +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/docs/deployment.html +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/docs/embeddings.html +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/docs/eventloom.html +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/docs/external-validation.html +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/docs/first-run-validation.html +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/docs/getting-started.html +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/docs/graph-schema.html +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/docs/hooks.html +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/docs/integrations.html +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/docs/mcp-install-targets.html +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/docs/mcp-quickstart.html +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/docs/mcp.html +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/docs/media/zaxy-collaborate-demo.html +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/docs/migration.html +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/docs/operations.html +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/docs/packet-analyzer.html +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/docs/research/ann-engineering-2026-06.html +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/docs/research/artifacts/2-3-research/backend-options.html +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/docs/research/artifacts/2-3-research/external-validation.html +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/docs/research/artifacts/2-3-research/kuzu-usage-audit.html +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/docs/research/artifacts/2-3-research/promotion-pass.html +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/docs/research/artifacts/ann-2026-06/BASELINE.html +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/docs/research/codebase-review-2026-06-09.html +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/docs/research/zaxy-memory-fabric-paper.html +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/docs/retrieval.html +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/docs/runbook.html +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/docs/security.html +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/docs/stability-commitment.html +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/docs/superpowers/plans/2026-05-08-codebase-file-map.html +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/docs/superpowers/plans/2026-05-08-domain-separated-defaults.html +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/docs/superpowers/plans/2026-05-08-local-first-retrieval.html +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/docs/superpowers/plans/2026-05-08-remote-mcp-rate-limit-audit.html +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/docs/superpowers/plans/2026-05-09-agent-integration-templates.html +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/docs/superpowers/plans/2026-05-09-retention-metadata-extraction.html +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/docs/superpowers/plans/2026-05-09-retrieval-feedback-events.html +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/docs/superpowers/plans/2026-05-10-merge-sprint.html +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/docs/superpowers/plans/2026-05-16-runtime-dashboard.html +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/docs/superpowers/plans/2026-05-17-skill-memory.html +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/docs/superpowers/plans/2026-05-18-pggraph-adapter.html +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/docs/superpowers/plans/2026-05-18-projection-backend-contract.html +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/docs/superpowers/plans/2026-05-20-zero-friction-embedded-graph-runtime.html +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/docs/superpowers/plans/2026-05-30-v0-5-public-positioning-first-run-trust.html +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/docs/superpowers/plans/2026-05-31-v1-release-docs-media.html +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/docs/superpowers/plans/2026-06-07-zaxy-2-0-alpha-1-causal-consolidation.html +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/docs/superpowers/plans/2026-06-07-zaxy-2-0-alpha-2-review-gated-consolidation.html +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/docs/superpowers/plans/2026-06-07-zaxy-2-0-beta-1-reasoning-loop-primitives.html +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/docs/superpowers/plans/2026-06-08-zaxy-2-0-beta-2-metacognitive-procedural-hardening.html +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/docs/superpowers/plans/2026-06-08-zaxy-2-0-rc-1-benchmark-freeze.html +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/docs/superpowers/plans/2026-06-09-codebase-review-high-value-remediation.html +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/docs/superpowers/specs/2026-05-08-codebase-file-map-design.html +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/docs/superpowers/specs/2026-05-08-domain-separated-defaults-design.html +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/docs/superpowers/specs/2026-05-08-local-first-retrieval-design.html +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/docs/superpowers/specs/2026-05-08-remote-mcp-rate-limit-audit-design.html +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/docs/superpowers/specs/2026-05-16-runtime-dashboard-design.html +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/docs/superpowers/specs/2026-05-17-skill-memory-pggraph-evaluation-design.html +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/docs/superpowers/specs/2026-05-31-v1-release-docs-media-design.html +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/docs/superpowers/specs/2026-06-07-zaxy-2-0-roadmap-design.html +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/docs/superpowers/specs/2026-06-09-zaxy-2-5-3-0-latent-memory-roadmap-design.html +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/docs/superpowers/specs/2026-06-10-zaxy-2-1-2-3-agent-experience-cognitive-memory-roadmap-design.html +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/docs/superpowers/specs/2026-06-10-zaxy-2-1-2-3-implementation-plan.html +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/docs/superpowers/specs/2026-06-11-zaxy-2-2-ann-engineering-plan.html +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/docs/superpowers/specs/2026-06-11-zaxy-2-3-readiness-research.html +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/docs/testing.html +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/docs/why-zaxy.html +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/docs/workspace-genesis.html +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/site/style.css +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/__init__.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/__main__.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/adapters/__init__.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/adapters/_common.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/adapters/claude_compatible.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/adapters/coordination.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/adapters/crewai.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/adapters/langgraph.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/adapters/openai_compatible.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/associative_memory.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/capabilities.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/capture_manager.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/capture_soak.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/causal.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/checkout.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/cli/__init__.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/cli/benchmarks.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/cli/evaluation.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/cli/runtime.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/cli/serving.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/cli/workspace.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/codebase.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/codex_capture.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/compaction.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/config.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/consolidation.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/consolidation_pipeline.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/context.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/context_refresh.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/coordination.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/coordination_git.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/coordination_semantic.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/coordination_templates.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/coordinationbench_adapter.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/dashboard.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/doctor.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/documents.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/domain.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/embedded_graph_store.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/embedding.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/event_context.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/evidence.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/evidence_candidates.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/evidence_program.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/external_validation.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/extract.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/extract_templates.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/feature_evidence.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/graph.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/graph_walk.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/hooks.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/inference.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/install.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/integrations.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/latticedb_store.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/lifecycle.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/local_profile.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/log.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/mcp_runtime.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/mcp_server.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/memory_persistence.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/memory_status.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/metacognition.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/metrics.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/neutral.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/observation.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/offload.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/onboarding.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/packet_analyzer.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/packet_guidance.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/packet_projection.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/pagination.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/pggraph_store.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/portable/__init__.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/portable/anchor.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/portable/envelope.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/portable/export.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/portable/merkle.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/portable/rehydration.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/portable/signing.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/procedural_planning.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/procedure_mining.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/projection.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/projection_backends.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/purpose.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/purpose_control.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/py.typed +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/query.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/reasoning_primitives.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/recall.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/recovery.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/refs.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/release.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/remote_security.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/resources/__init__.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/resources/coordinationbench/README.md +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/resources/coordinationbench/__init__.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/resources/coordinationbench/schemas/result.schema.json +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/resources/coordinationbench/schemas/runner-manifest.schema.json +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/resources/coordinationbench/templates/activegraph.runner-manifest.template.json +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/resources/coordinationbench/templates/agent_memory.runner-manifest.template.json +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/resources/coordinationbench/templates/hybi.runner-manifest.template.json +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/resources/coordinationbench/templates/mem0.runner-manifest.template.json +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/resources/coordinationbench/templates/quarq.runner-manifest.template.json +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/resources/coordinationbench/unsupported_runner.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/retrieval_intent.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/retrieval_plan/__init__.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/retrieval_plan/bundles.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/retrieval_plan/duration_evidence.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/retrieval_plan/fact_queries.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/retrieval_plan/foundations.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/retrieval_plan/ordering.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/retrieval_plan/scalars.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/retrieval_profile.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/runtime.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/salience.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/schema.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/security.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/session.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/synthesis/__init__.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/synthesis/evidence_rows.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/synthesis/foundations.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/synthesis/labels.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/synthesis/ledgers.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/synthesis/operations.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/synthesis_artifact.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/synthesis_packet.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/token_budget.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/tool_profiles.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/trace.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/transcripts.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/viewer.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/working_set.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/src/zaxy/workspace.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/conftest.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_agent_experience_lanes.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_anchor.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_associative_memory.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_backend_shootout.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_benchmarks.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_capabilities.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_capture_manager.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_capture_soak.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_causal.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_causal_benchmark.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_causal_checkout.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_checkout.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_chunk_rag_methodology.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_claude_compatible_adapter.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_cli.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_codebase.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_codex_capture.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_cognitive_lanes.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_cognitive_profile.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_compaction.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_competitive_benchmarks.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_compose.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_config.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_consolidation.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_consolidation_benchmark.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_consolidation_pipeline.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_context.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_context_refresh.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_coordination.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_coordination_adapters.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_coordination_benchmark.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_coordination_semantic.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_coordinationbench_adapter.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_coverage_ratchet.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_crewai_adapter.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_dashboard.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_doctor.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_documents.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_domain.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_embedded_graph_store.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_embedding.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_envelope.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_evidence.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_evidence_program.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_examples_v05.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_extract.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_extract_templates.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_feature_evidence.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_graph.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_graph_scale_lanes.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_graph_walk.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_harvey_lab_benchmark.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_inference.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_install.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_integration_check_script.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_integrations.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_langgraph_adapter.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_latticedb_store.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_lifecycle.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_live_benchmark.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_local_profile.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_longmembench.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_mcp.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_mcp_runtime.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_mcp_server.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_memory_injection.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_memory_persistence.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_memory_status.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_metacognition.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_metrics.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_neutral.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_observation.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_offload.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_onboarding.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_openai_compatible_adapter.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_ops_scripts.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_packaging.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_packet_analyzer.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_packet_memory_e2e.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_packet_projection.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_pagination.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_pggraph_store.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_portable_export.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_procedural_planning.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_procedure_mining.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_projection.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_purpose.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_purpose_benchmark.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_purpose_control.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_query.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_rc_benchmark_freeze.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_reasoning_benchmark.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_reasoning_primitives.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_recovery.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_refs.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_rehydration.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_remote_security.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_retrieval_plan.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_retrieval_profiles.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_runtime.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_salience.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_schema_migrations.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_security.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_session.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_setup_script.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_statistical_benchmark.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_synthesis.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_synthesis_artifact.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_synthesis_packet.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_token_budget.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_trace.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_transcripts.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_v05_positioning.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_viewer.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_working_set.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/tests/test_workspace.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/zaxy_benchmarks/__init__.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/zaxy_benchmarks/agent_experience_lanes.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/zaxy_benchmarks/benchmark.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/zaxy_benchmarks/causal_benchmark.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/zaxy_benchmarks/consolidation_benchmark.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/zaxy_benchmarks/coordination_benchmark.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/zaxy_benchmarks/fok_calibration_lane.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/zaxy_benchmarks/forgetting_lane.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/zaxy_benchmarks/graph_walk_lane.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/zaxy_benchmarks/harvey_lab_benchmark.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/zaxy_benchmarks/live_benchmark.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/zaxy_benchmarks/longmembench.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/zaxy_benchmarks/purpose_benchmark.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/zaxy_benchmarks/rc_benchmark_freeze.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/zaxy_benchmarks/reasoning_benchmark.py +0 -0
- {zaxy_memory-2.4.0 → zaxy_memory-2.4.2}/zaxy_benchmarks/vector_scale_lane.py +0 -0
|
@@ -2,6 +2,38 @@
|
|
|
2
2
|
|
|
3
3
|
All notable Zaxy release changes are recorded here.
|
|
4
4
|
|
|
5
|
+
## 2.4.2 - 2026-06-15
|
|
6
|
+
|
|
7
|
+
- **Memory Checkout latency fix — warm `memory_checkout` ~19s → ~1.6s on a
|
|
8
|
+
78k-event session.** Two retrieval costs that previously scaled with the
|
|
9
|
+
whole log on *every* checkout (the BM25 verbatim index and the verified
|
|
10
|
+
replay) are now cached per session and extended incrementally, so they scale
|
|
11
|
+
with newly appended events instead of the full corpus. Every append —
|
|
12
|
+
including checkout's own salience-reinforcement write — used to invalidate
|
|
13
|
+
both caches and force a full rebuild; on large, active sessions that pushed
|
|
14
|
+
checkout past the MCP stdio call timeout (the "checkout hangs over MCP"
|
|
15
|
+
symptom). Steady-state checkout is now well under the timeout.
|
|
16
|
+
- `VerbatimIndex.append_chunks()` extends the index reusing prior
|
|
17
|
+
tokenization; results are byte-identical to a full rebuild.
|
|
18
|
+
- `EventLog.read_from_offset()` tail-reads only newly appended bytes;
|
|
19
|
+
`verify_event_chain()` verifies the appended tail against the
|
|
20
|
+
already-verified prefix. The tail verification is also a consistency
|
|
21
|
+
guard — any offset skew or log rewrite falls back to a full verified
|
|
22
|
+
replay, so the fast path never silently misses, duplicates, or trusts a
|
|
23
|
+
bad event. The hash-chain integrity guarantee is preserved, not dropped.
|
|
24
|
+
- No API or behavior change; same cited facts are surfaced.
|
|
25
|
+
|
|
26
|
+
## 2.4.1 - 2026-06-14
|
|
27
|
+
|
|
28
|
+
- Fixed MCP-directory installability (Glama listed the server as "cannot be
|
|
29
|
+
installed"). The package shipped only a `zaxy` console script, but directory
|
|
30
|
+
auto-installers assume the script name matches the package name — so
|
|
31
|
+
`uvx zaxy-memory serve` failed with "executable `zaxy-memory` is not provided".
|
|
32
|
+
Added a `zaxy-memory` console-script alias (same entrypoint), declared the
|
|
33
|
+
launch in `server.json` (`runtimeHint: uvx`, `packageArguments: ["serve"]`), and
|
|
34
|
+
added `glama.json` (maintainer claim). `uvx zaxy-memory serve` now starts the
|
|
35
|
+
stdio MCP server directly. No code/runtime changes.
|
|
36
|
+
|
|
5
37
|
## 2.4.0 - 2026-06-14
|
|
6
38
|
|
|
7
39
|
- **Portable signed memory export — EXPERIMENTAL / UNAUDITED, opt-in.** New
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: zaxy-memory
|
|
3
|
-
Version: 2.4.
|
|
3
|
+
Version: 2.4.2
|
|
4
4
|
Summary: Coordinator memory for auditable multi-agent projects
|
|
5
5
|
Project-URL: Homepage, https://syndicalt.github.io/zaxy/
|
|
6
6
|
Project-URL: Documentation, https://syndicalt.github.io/zaxy/docs/getting-started.html
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
# X Article Draft: Zaxy 2.4.0
|
|
2
|
+
|
|
3
|
+

|
|
4
|
+
|
|
5
|
+
Zaxy 2.4.0 ships the first piece of **portable, signed agent memory** — and the
|
|
6
|
+
honest headline is that it is **experimental, unaudited, and we are asking for
|
|
7
|
+
review before anyone trusts it.**
|
|
8
|
+
|
|
9
|
+
The short version: agent memory is locked inside vendor runtimes, and the moment
|
|
10
|
+
you want to move it — between models, between agents, across a dispute — you need
|
|
11
|
+
a way to prove *what* the memory is and *who* vouches for it, while revealing only
|
|
12
|
+
the parts you choose. 2.4 adds that, built to the shape the [W3C "AI Agent Memory
|
|
13
|
+
Interoperability" Community Group](https://www.w3.org/community/ai-agent-memory-interop/)
|
|
14
|
+
(proposed weeks ago) and the *Portable Agent Memory* paper are converging on. It
|
|
15
|
+
is opt-in (`pip install zaxy-memory[export]`), it warns loudly on import, and it
|
|
16
|
+
makes no security claims it has not earned.
|
|
17
|
+
|
|
18
|
+
## What shipped
|
|
19
|
+
|
|
20
|
+
`zaxy.portable` — a self-sovereign, verifiable memory-export layer on top of
|
|
21
|
+
Eventloom's existing hash-chained integrity:
|
|
22
|
+
|
|
23
|
+
- **Signed export bundles.** Post-quantum **ML-DSA-65** (NIST FIPS-204) signatures,
|
|
24
|
+
with Ed25519 as a classical fallback — using vetted `pyca/cryptography`
|
|
25
|
+
primitives, never homegrown ones. Self-sovereign: you hold the key, the public
|
|
26
|
+
key *is* the identity, no certificate authority.
|
|
27
|
+
- **Verifiable partial disclosure.** A domain-separated Merkle tree lets you hand
|
|
28
|
+
someone a *subset* of your memory plus an inclusion proof, and they can verify
|
|
29
|
+
it belongs to the signed set **without seeing the rest**.
|
|
30
|
+
- **Injection-resistant rehydration.** Recalled content (tool output, transcripts)
|
|
31
|
+
is treated as data, not instructions — guarded fencing + flagging — so resurfaced
|
|
32
|
+
memory can't hijack the next model. Defense-in-depth, not a guarantee.
|
|
33
|
+
- **Encryption envelope + cryptographic erasure.** Per-cell AES-256-GCM keys, and
|
|
34
|
+
GDPR-Article-17 erasure by destroying the key (the immutable ciphertext stays,
|
|
35
|
+
permanently undecryptable) — with the hard invariant that key material must never
|
|
36
|
+
enter the append-only log.
|
|
37
|
+
- **Capability-scoped sharing** and a pluggable **public anchor** (offline stub
|
|
38
|
+
today; an OpenTimestamps hook for operator-independent verification).
|
|
39
|
+
|
|
40
|
+
This sits on the 2.3 line that made memory *stick*: per-turn memory injection
|
|
41
|
+
(2.3.2, extended to Codex in 2.3.3) that closed the recall-persistence gap, and
|
|
42
|
+
opt-in tool-I/O offload provenance (2.3.4).
|
|
43
|
+
|
|
44
|
+
## Why it matters
|
|
45
|
+
|
|
46
|
+
Memory you can't move is a lock-in. Memory you *can* move but can't *verify* is a
|
|
47
|
+
liability. The interesting problem isn't storage — it's a transfer format that is
|
|
48
|
+
**authentic** (signed), **minimally disclosed** (prove a slice, not the whole
|
|
49
|
+
history), **forgettable** (cryptographic erasure in an append-only world), and
|
|
50
|
+
**safe to rehydrate** into a different model. That's an open frontier — a W3C group
|
|
51
|
+
and fresh research are forming around it right now — and Zaxy already had the
|
|
52
|
+
right substrate for it: an immutable, hash-chained event log where provenance is
|
|
53
|
+
the product, not an afterthought.
|
|
54
|
+
|
|
55
|
+
## The research behind it
|
|
56
|
+
|
|
57
|
+
This release is the end of an honest chain of experiments, not a leap of faith:
|
|
58
|
+
|
|
59
|
+
- We tested whether a **dense symbolic encoding** of memory would help models obey
|
|
60
|
+
it. It didn't: an invented glyph notation *failed comprehension* on both Claude
|
|
61
|
+
and GPT-4.1, and bought ~0% token savings over plain prose. The lesson — reuse a
|
|
62
|
+
notation the model already knows; don't invent one — shaped everything after.
|
|
63
|
+
- We found the real lever was **injection, not format**: putting declarative state
|
|
64
|
+
in front of the model lifted adherence from ~0.25 to ~1.0, even buried in a long
|
|
65
|
+
context. That became the 2.3.2 recall fix.
|
|
66
|
+
- Hardening tool-I/O provenance (2.3.4) surfaced that our own capture *truncated*
|
|
67
|
+
tool output — a gap in the audit trail. Closing it is what pointed at a proper
|
|
68
|
+
signed-export design.
|
|
69
|
+
- For 2.4 we built to the emerging standard's choices — PQ signatures, Merkle
|
|
70
|
+
provenance, crypto-erasure — rather than a bespoke format, so it can interoperate
|
|
71
|
+
instead of fork.
|
|
72
|
+
|
|
73
|
+
## The honest part — and the ask
|
|
74
|
+
|
|
75
|
+
We are a small project. We **cannot commission a formal cryptographic audit**, and
|
|
76
|
+
we will not pretend a clean self-review is one. What we *have* done is the
|
|
77
|
+
proportionate thing: vetted primitives only, an adversarial self-review of the
|
|
78
|
+
protocol composition (which already caught and fixed three real issues), opt-in
|
|
79
|
+
packaging, a loud import warning, and a written threat model. The self-review is a
|
|
80
|
+
*layer*, not a substitute for independent human eyes.
|
|
81
|
+
|
|
82
|
+
So this is a genuine **call for review**. If you do cryptography or agent-memory
|
|
83
|
+
work, please poke holes:
|
|
84
|
+
|
|
85
|
+
- The composition questions are on
|
|
86
|
+
[crypto.stackexchange](https://crypto.stackexchange.com/) — does binding the
|
|
87
|
+
Merkle root + all metadata under one signature prevent swap attacks; are the
|
|
88
|
+
(non-position-bound) subset proofs forgeable; what breaks crypto-erasure beyond
|
|
89
|
+
"ensure no other key copy survives."
|
|
90
|
+
- Design, threat model, and conformance mapping:
|
|
91
|
+
[`docs/experimental/portable-export-security.md`](https://github.com/syndicalt/zaxy/blob/v2.4.0/docs/experimental/portable-export-security.md)
|
|
92
|
+
and the [`zaxy.portable` source](https://github.com/syndicalt/zaxy/tree/v2.4.0/src/zaxy/portable)
|
|
93
|
+
(pinned to v2.4.0).
|
|
94
|
+
- If you're in the W3C interop CG: tell us where we diverge from where the spec is
|
|
95
|
+
heading.
|
|
96
|
+
|
|
97
|
+
Try it: `pip install "zaxy-memory[export]"`, then `zaxy export-keygen`, `zaxy
|
|
98
|
+
export`, `zaxy verify-export`. The import warning is intentional — keep it in mind.
|
|
99
|
+
|
|
100
|
+
Until real review comes back, it stays experimental and unadvertised as anything
|
|
101
|
+
more. That's the deal, and we'd rather say it out loud than ship a quiet "trust
|
|
102
|
+
me." Findings welcome — break it.
|
|
Binary file
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
<svg width="1600" height="640" viewBox="0 0 1600 640" xmlns="http://www.w3.org/2000/svg" font-family="Inter, system-ui, sans-serif">
|
|
2
|
+
<defs>
|
|
3
|
+
<pattern id="grid" width="86" height="86" patternUnits="userSpaceOnUse">
|
|
4
|
+
<path d="M86 0H0V86" fill="none" stroke="#dce6e2" stroke-opacity="0.05" stroke-width="1"/>
|
|
5
|
+
</pattern>
|
|
6
|
+
<radialGradient id="vig" cx="64%" cy="40%" r="80%">
|
|
7
|
+
<stop offset="0%" stop-color="#16212b"/>
|
|
8
|
+
<stop offset="72%" stop-color="#0b1014"/>
|
|
9
|
+
<stop offset="100%" stop-color="#070b0e"/>
|
|
10
|
+
</radialGradient>
|
|
11
|
+
<filter id="glow" x="-60%" y="-60%" width="220%" height="220%"><feGaussianBlur stdDeviation="3"/></filter>
|
|
12
|
+
<g id="zmark">
|
|
13
|
+
<rect x="-19" y="-19" width="38" height="38" rx="9" fill="#f8faf7"/>
|
|
14
|
+
<path d="M-9,-7 H9 L-9,7 H10" fill="none" stroke="#0b1014" stroke-width="3.6" stroke-linejoin="round" stroke-linecap="round"/>
|
|
15
|
+
</g>
|
|
16
|
+
</defs>
|
|
17
|
+
|
|
18
|
+
<rect width="1600" height="640" fill="url(#vig)"/>
|
|
19
|
+
<rect width="1600" height="640" fill="url(#grid)"/>
|
|
20
|
+
|
|
21
|
+
<!-- LEFT: title block -->
|
|
22
|
+
<text x="96" y="150" font-family="JetBrains Mono, monospace" font-size="22" letter-spacing="5" fill="#2eb7a4">RELEASE · v2.4.0</text>
|
|
23
|
+
<text x="92" y="248" font-family="Georgia, 'Times New Roman', serif" font-size="84" font-weight="700" fill="#f8faf7">Portable, signed</text>
|
|
24
|
+
<text x="92" y="332" font-family="Georgia, 'Times New Roman', serif" font-size="84" font-weight="700" fill="#f8faf7">memory.</text>
|
|
25
|
+
<text x="96" y="392" font-family="Inter, system-ui, sans-serif" font-size="25" fill="#9fb0aa">Self-sovereign export · post-quantum signatures ·</text>
|
|
26
|
+
<text x="96" y="426" font-family="Inter, system-ui, sans-serif" font-size="25" fill="#9fb0aa">verifiable subset disclosure · injection-resistant rehydration</text>
|
|
27
|
+
|
|
28
|
+
<!-- experimental / review pill (honest, even on the card) -->
|
|
29
|
+
<g transform="translate(96,470)">
|
|
30
|
+
<rect x="0" y="0" width="340" height="44" rx="22" fill="none" stroke="#c58b2c" stroke-width="2"/>
|
|
31
|
+
<circle cx="26" cy="22" r="6" fill="#c58b2c"/>
|
|
32
|
+
<text x="44" y="29" font-family="JetBrains Mono, monospace" font-size="17" fill="#e0c08a">EXPERIMENTAL · UNAUDITED · review welcome</text>
|
|
33
|
+
</g>
|
|
34
|
+
|
|
35
|
+
<!-- RIGHT: Merkle tree with a signature seal at the root -->
|
|
36
|
+
<g transform="translate(1230,300)" stroke="#2eb7a4" fill="none">
|
|
37
|
+
<!-- edges -->
|
|
38
|
+
<g stroke-width="2.5" stroke-opacity="0.7">
|
|
39
|
+
<line x1="0" y1="-92" x2="-90" y2="0"/><line x1="0" y1="-92" x2="90" y2="0"/>
|
|
40
|
+
<line x1="-90" y1="0" x2="-140" y2="92"/><line x1="-90" y1="0" x2="-46" y2="92"/>
|
|
41
|
+
<line x1="90" y1="0" x2="46" y2="92"/><line x1="90" y1="0" x2="140" y2="92"/>
|
|
42
|
+
</g>
|
|
43
|
+
<!-- leaves -->
|
|
44
|
+
<g fill="#0e1620" stroke-width="2.5">
|
|
45
|
+
<rect x="-160" y="78" width="40" height="28" rx="5"/><rect x="-66" y="78" width="40" height="28" rx="5"/>
|
|
46
|
+
<rect x="26" y="78" width="40" height="28" rx="5"/><rect x="120" y="78" width="40" height="28" rx="5"/>
|
|
47
|
+
</g>
|
|
48
|
+
<!-- internal nodes -->
|
|
49
|
+
<circle cx="-90" cy="0" r="15" fill="#0e1620" stroke-width="2.5"/>
|
|
50
|
+
<circle cx="90" cy="0" r="15" fill="#0e1620" stroke-width="2.5"/>
|
|
51
|
+
<!-- root + seal -->
|
|
52
|
+
<circle cx="0" cy="-92" r="40" fill="#0e1620" stroke-width="3" filter="url(#glow)"/>
|
|
53
|
+
<circle cx="0" cy="-92" r="40" fill="none" stroke="#2eb7a4" stroke-width="3"/>
|
|
54
|
+
<path d="M-16,-92 l10,11 l20,-22" stroke="#2eb7a4" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"/>
|
|
55
|
+
<circle cx="0" cy="-92" r="54" stroke="#2eb7a4" stroke-opacity="0.35" stroke-width="1.5"/>
|
|
56
|
+
</g>
|
|
57
|
+
<text x="1230" y="470" text-anchor="middle" font-family="JetBrains Mono, monospace" font-size="15" fill="#66747a">ML-DSA · Merkle root · signed</text>
|
|
58
|
+
|
|
59
|
+
<!-- footer brand -->
|
|
60
|
+
<g transform="translate(98,560)">
|
|
61
|
+
<use href="#zmark" transform="scale(0.85)"/>
|
|
62
|
+
<text x="32" y="7" font-family="Georgia, 'Times New Roman', serif" font-size="27" font-weight="700" fill="#f8faf7">Zaxy</text>
|
|
63
|
+
<text x="104" y="7" font-family="JetBrains Mono, monospace" font-size="15" fill="#66747a">auditable agent memory · MIT</text>
|
|
64
|
+
</g>
|
|
65
|
+
</svg>
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "zaxy-memory"
|
|
3
|
-
version = "2.4.
|
|
3
|
+
version = "2.4.2"
|
|
4
4
|
description = "Coordinator memory for auditable multi-agent projects"
|
|
5
5
|
readme = "README.md"
|
|
6
6
|
requires-python = ">=3.11"
|
|
@@ -105,6 +105,9 @@ dev = [
|
|
|
105
105
|
|
|
106
106
|
[project.scripts]
|
|
107
107
|
zaxy = "zaxy.__main__:main"
|
|
108
|
+
# Alias so directory auto-installers that assume the console-script name matches
|
|
109
|
+
# the package name can launch it: `uvx zaxy-memory serve`.
|
|
110
|
+
zaxy-memory = "zaxy.__main__:main"
|
|
108
111
|
|
|
109
112
|
[project.urls]
|
|
110
113
|
Homepage = "https://syndicalt.github.io/zaxy/"
|
|
Binary file
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
<!doctype html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="utf-8" />
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
6
|
+
<title>X Article Draft: Zaxy 2.4.0 - Zaxy Docs</title>
|
|
7
|
+
<link rel="preconnect" href="https://fonts.googleapis.com" />
|
|
8
|
+
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
|
|
9
|
+
<link href="https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,300;9..144,600&family=Inter:wght@400;550;650;750;850&family=JetBrains+Mono:wght@500;700&display=swap" rel="stylesheet" />
|
|
10
|
+
<link rel="stylesheet" href="../../style.css" />
|
|
11
|
+
</head>
|
|
12
|
+
<body class="doc-page">
|
|
13
|
+
<nav class="nav" aria-label="Documentation">
|
|
14
|
+
<a class="brand" href="../../index.html"><span class="brand-mark" aria-hidden="true"></span>Zaxy</a>
|
|
15
|
+
<div class="nav-links">
|
|
16
|
+
<a href="../../index.html">Overview</a>
|
|
17
|
+
<a href="../../docs/coordinate-roadmap.html">Coordinate</a>
|
|
18
|
+
<a href="../../docs/why-zaxy.html">Why Zaxy</a>
|
|
19
|
+
<a href="../../docs/benchmarks.html">Benchmarks</a>
|
|
20
|
+
<a href="../getting-started.html">Start</a>
|
|
21
|
+
<a href="https://github.com/syndicalt/zaxy" class="nav-cta">GitHub</a>
|
|
22
|
+
</div>
|
|
23
|
+
</nav>
|
|
24
|
+
<main class="doc-layout">
|
|
25
|
+
<article class="doc-content">
|
|
26
|
+
<h1 id="x-article-draft-zaxy-240">X Article Draft: Zaxy 2.4.0</h1>
|
|
27
|
+
<p><img src="../../assets/zaxy-v2.4-header.png" alt="Zaxy 2.4 release header" /></p>
|
|
28
|
+
<p>Zaxy 2.4.0 ships the first piece of <strong>portable, signed agent memory</strong> — and the honest headline is that it is <strong>experimental, unaudited, and we are asking for review before anyone trusts it.</strong></p>
|
|
29
|
+
<p>The short version: agent memory is locked inside vendor runtimes, and the moment you want to move it — between models, between agents, across a dispute — you need a way to prove <em>what</em> the memory is and <em>who</em> vouches for it, while revealing only the parts you choose. 2.4 adds that, built to the shape the <a href="https://www.w3.org/community/ai-agent-memory-interop/">W3C "AI Agent Memory Interoperability" Community Group</a> (proposed weeks ago) and the <em>Portable Agent Memory</em> paper are converging on. It is opt-in (<code>pip install zaxy-memory[export]</code>), it warns loudly on import, and it makes no security claims it has not earned.</p>
|
|
30
|
+
<h2 id="what-shipped">What shipped</h2>
|
|
31
|
+
<p><code>zaxy.portable</code> — a self-sovereign, verifiable memory-export layer on top of Eventloom's existing hash-chained integrity:</p>
|
|
32
|
+
<ul>
|
|
33
|
+
<li><strong>Signed export bundles.</strong> Post-quantum <strong>ML-DSA-65</strong> (NIST FIPS-204) signatures, with Ed25519 as a classical fallback — using vetted <code>pyca/cryptography</code> primitives, never homegrown ones. Self-sovereign: you hold the key, the public key <em>is</em> the identity, no certificate authority.</li>
|
|
34
|
+
<li><strong>Verifiable partial disclosure.</strong> A domain-separated Merkle tree lets you hand someone a <em>subset</em> of your memory plus an inclusion proof, and they can verify it belongs to the signed set <strong>without seeing the rest</strong>.</li>
|
|
35
|
+
<li><strong>Injection-resistant rehydration.</strong> Recalled content (tool output, transcripts) is treated as data, not instructions — guarded fencing + flagging — so resurfaced memory can't hijack the next model. Defense-in-depth, not a guarantee.</li>
|
|
36
|
+
<li><strong>Encryption envelope + cryptographic erasure.</strong> Per-cell AES-256-GCM keys, and GDPR-Article-17 erasure by destroying the key (the immutable ciphertext stays, permanently undecryptable) — with the hard invariant that key material must never enter the append-only log.</li>
|
|
37
|
+
<li><strong>Capability-scoped sharing</strong> and a pluggable <strong>public anchor</strong> (offline stub today; an OpenTimestamps hook for operator-independent verification).</li>
|
|
38
|
+
</ul>
|
|
39
|
+
<p>This sits on the 2.3 line that made memory <em>stick</em>: per-turn memory injection (2.3.2, extended to Codex in 2.3.3) that closed the recall-persistence gap, and opt-in tool-I/O offload provenance (2.3.4).</p>
|
|
40
|
+
<h2 id="why-it-matters">Why it matters</h2>
|
|
41
|
+
<p>Memory you can't move is a lock-in. Memory you <em>can</em> move but can't <em>verify</em> is a liability. The interesting problem isn't storage — it's a transfer format that is <strong>authentic</strong> (signed), <strong>minimally disclosed</strong> (prove a slice, not the whole history), <strong>forgettable</strong> (cryptographic erasure in an append-only world), and <strong>safe to rehydrate</strong> into a different model. That's an open frontier — a W3C group and fresh research are forming around it right now — and Zaxy already had the right substrate for it: an immutable, hash-chained event log where provenance is the product, not an afterthought.</p>
|
|
42
|
+
<h2 id="the-research-behind-it">The research behind it</h2>
|
|
43
|
+
<p>This release is the end of an honest chain of experiments, not a leap of faith:</p>
|
|
44
|
+
<ul>
|
|
45
|
+
<li>We tested whether a <strong>dense symbolic encoding</strong> of memory would help models obey it. It didn't: an invented glyph notation <em>failed comprehension</em> on both Claude and GPT-4.1, and bought ~0% token savings over plain prose. The lesson — reuse a notation the model already knows; don't invent one — shaped everything after.</li>
|
|
46
|
+
<li>We found the real lever was <strong>injection, not format</strong>: putting declarative state in front of the model lifted adherence from ~0.25 to ~1.0, even buried in a long context. That became the 2.3.2 recall fix.</li>
|
|
47
|
+
<li>Hardening tool-I/O provenance (2.3.4) surfaced that our own capture <em>truncated</em> tool output — a gap in the audit trail. Closing it is what pointed at a proper signed-export design.</li>
|
|
48
|
+
<li>For 2.4 we built to the emerging standard's choices — PQ signatures, Merkle provenance, crypto-erasure — rather than a bespoke format, so it can interoperate instead of fork.</li>
|
|
49
|
+
</ul>
|
|
50
|
+
<h2 id="the-honest-part-and-the-ask">The honest part — and the ask</h2>
|
|
51
|
+
<p>We are a small project. We <strong>cannot commission a formal cryptographic audit</strong>, and we will not pretend a clean self-review is one. What we <em>have</em> done is the proportionate thing: vetted primitives only, an adversarial self-review of the protocol composition (which already caught and fixed three real issues), opt-in packaging, a loud import warning, and a written threat model. The self-review is a <em>layer</em>, not a substitute for independent human eyes.</p>
|
|
52
|
+
<p>So this is a genuine <strong>call for review</strong>. If you do cryptography or agent-memory work, please poke holes:</p>
|
|
53
|
+
<ul>
|
|
54
|
+
<li>The composition questions are on <a href="https://crypto.stackexchange.com/">crypto.stackexchange</a> — does binding the Merkle root + all metadata under one signature prevent swap attacks; are the (non-position-bound) subset proofs forgeable; what breaks crypto-erasure beyond "ensure no other key copy survives."</li>
|
|
55
|
+
<li>Design, threat model, and conformance mapping: <a href="https://github.com/syndicalt/zaxy/blob/v2.4.0/docs/experimental/portable-export-security.md"><code>docs/experimental/portable-export-security.md</code></a> and the <a href="https://github.com/syndicalt/zaxy/tree/v2.4.0/src/zaxy/portable"><code>zaxy.portable</code> source</a> (pinned to v2.4.0).</li>
|
|
56
|
+
<li>If you're in the W3C interop CG: tell us where we diverge from where the spec is heading.</li>
|
|
57
|
+
</ul>
|
|
58
|
+
<p>Try it: <code>pip install "zaxy-memory[export]"</code>, then <code>zaxy export-keygen</code>, <code>zaxy export</code>, <code>zaxy verify-export</code>. The import warning is intentional — keep it in mind.</p>
|
|
59
|
+
<p>Until real review comes back, it stays experimental and unadvertised as anything more. That's the deal, and we'd rather say it out loud than ship a quiet "trust me." Findings welcome — break it.</p>
|
|
60
|
+
</article>
|
|
61
|
+
</main>
|
|
62
|
+
</body>
|
|
63
|
+
</html>
|
|
@@ -62,7 +62,7 @@
|
|
|
62
62
|
</section>
|
|
63
63
|
|
|
64
64
|
<section class="proof-strip" aria-label="Project status">
|
|
65
|
-
<span>PyPI 2.4.
|
|
65
|
+
<span>PyPI 2.4.2</span>
|
|
66
66
|
<span>47 MCP tools, 8-tool core profile</span>
|
|
67
67
|
<span>cognitive ranking default</span>
|
|
68
68
|
<span>embedded local runtime</span>
|
|
@@ -334,7 +334,7 @@ zaxy coordinate checkout --mission auth-main</code></pre>
|
|
|
334
334
|
</main>
|
|
335
335
|
|
|
336
336
|
<footer>
|
|
337
|
-
<span>Zaxy v2.4.
|
|
337
|
+
<span>Zaxy v2.4.2 - MIT</span>
|
|
338
338
|
<span><a href="README.html">README</a> <a href="docs/runbook.html">Runbook</a></span>
|
|
339
339
|
</footer>
|
|
340
340
|
</body>
|
|
@@ -54,7 +54,12 @@ from zaxy.context_refresh import (
|
|
|
54
54
|
)
|
|
55
55
|
from zaxy.documents import collect_document_events
|
|
56
56
|
from zaxy.embedding import build_embedding_provider, embed_extraction
|
|
57
|
-
from zaxy.event import
|
|
57
|
+
from zaxy.event import ( # noqa: F401 - ReplayResult re-export for existing tests
|
|
58
|
+
EventLog,
|
|
59
|
+
IntegrityReport,
|
|
60
|
+
ReplayResult,
|
|
61
|
+
verify_event_chain,
|
|
62
|
+
)
|
|
58
63
|
from zaxy.evidence import select_checkout_evidence
|
|
59
64
|
from zaxy.extract import extract
|
|
60
65
|
from zaxy.inference import build_inferred_edge_events
|
|
@@ -138,7 +143,7 @@ from zaxy.synthesis_artifact import (
|
|
|
138
143
|
from zaxy.synthesis_packet import synthesis_packet_from_items
|
|
139
144
|
from zaxy.trace import MemoryTracer
|
|
140
145
|
from zaxy.transcripts import collect_transcript_events
|
|
141
|
-
from zaxy.verbatim import VerbatimIndex
|
|
146
|
+
from zaxy.verbatim import VerbatimIndex, _chunks_from_events
|
|
142
147
|
from zaxy.working_set import build_working_set, format_working_set
|
|
143
148
|
from zaxy.workspace import (
|
|
144
149
|
WorkspaceProfile,
|
|
@@ -404,7 +409,8 @@ class MemoryFabric:
|
|
|
404
409
|
packet_memory_enabled=resolved_settings.context_packet_memory_enabled,
|
|
405
410
|
packet_memory_slots=resolved_settings.context_packet_memory_slots,
|
|
406
411
|
)
|
|
407
|
-
self._verbatim_index_cache: dict[str, tuple[tuple[int, int], VerbatimIndex]] = {}
|
|
412
|
+
self._verbatim_index_cache: dict[str, tuple[tuple[int, int], VerbatimIndex, int]] = {}
|
|
413
|
+
self._replay_cache: dict[str, tuple[tuple[int, int], ReplayResult, int]] = {}
|
|
408
414
|
self._event_ref_index_cache: dict[str, tuple[tuple[int, int], dict[int, tuple[str, str]]]] = {}
|
|
409
415
|
self._session_cue_index_cache: dict[str, tuple[tuple[int, int], dict[int, frozenset[str]]]] = {}
|
|
410
416
|
self._query_page_cache: dict[
|
|
@@ -2156,14 +2162,30 @@ class MemoryFabric:
|
|
|
2156
2162
|
return contexts
|
|
2157
2163
|
|
|
2158
2164
|
def _verbatim_index(self, session_id: str) -> VerbatimIndex:
|
|
2159
|
-
"""Return a
|
|
2165
|
+
"""Return a verbatim index for the current Eventloom file state.
|
|
2166
|
+
|
|
2167
|
+
The index is cached per session and extended incrementally: when the
|
|
2168
|
+
append-only log has only grown, just the newly appended events are read
|
|
2169
|
+
and tokenized (:meth:`VerbatimIndex.append_chunks`) instead of
|
|
2170
|
+
rebuilding the BM25 index over the whole corpus on every change. The
|
|
2171
|
+
stored cursor is the exact byte offset that was indexed, so concurrent
|
|
2172
|
+
appends during a build never cause missed or duplicated events. A full
|
|
2173
|
+
rebuild only happens on a cold cache or if the log shrank / was
|
|
2174
|
+
rewritten (e.g. compaction).
|
|
2175
|
+
"""
|
|
2160
2176
|
eventlog = self.session_manager.get(session_id).eventlog
|
|
2161
2177
|
signature = _eventlog_file_signature(eventlog)
|
|
2162
2178
|
cached = self._verbatim_index_cache.get(session_id)
|
|
2163
2179
|
if cached is not None and cached[0] == signature:
|
|
2164
2180
|
return cached[1]
|
|
2165
|
-
|
|
2166
|
-
|
|
2181
|
+
if cached is not None and signature[1] > cached[2]:
|
|
2182
|
+
new_events, end_offset = eventlog.read_from_offset(cached[2])
|
|
2183
|
+
index = cached[1].append_chunks(_chunks_from_events(new_events))
|
|
2184
|
+
self._verbatim_index_cache[session_id] = (signature, index, end_offset)
|
|
2185
|
+
return index
|
|
2186
|
+
events, end_offset = eventlog.read_from_offset(0)
|
|
2187
|
+
index = VerbatimIndex.from_events(events)
|
|
2188
|
+
self._verbatim_index_cache[session_id] = (signature, index, end_offset)
|
|
2167
2189
|
return index
|
|
2168
2190
|
|
|
2169
2191
|
def _session_event_ref_index(self, session_id: str) -> dict[int, tuple[str, str]]:
|
|
@@ -2389,9 +2411,77 @@ class MemoryFabric:
|
|
|
2389
2411
|
async def replay(self, from_seq: int = 1, session_id: str = "default") -> ReplayResult:
|
|
2390
2412
|
"""Replay events from the log starting at a sequence number.
|
|
2391
2413
|
|
|
2392
|
-
Returns the full replay result including integrity verification.
|
|
2414
|
+
Returns the full replay result including integrity verification. The
|
|
2415
|
+
verified replay is cached per session and extended incrementally as the
|
|
2416
|
+
append-only log grows: only newly appended events are parsed and
|
|
2417
|
+
integrity-checked (their seals plus the chain link to the cached,
|
|
2418
|
+
already-verified prefix) instead of re-reading and re-hashing the entire
|
|
2419
|
+
log on every call. A full re-verify happens on a cold cache, if the log
|
|
2420
|
+
shrank / was rewritten, or if incremental verification detects a break.
|
|
2421
|
+
"""
|
|
2422
|
+
result = self._cached_full_replay(session_id)
|
|
2423
|
+
if from_seq <= 1:
|
|
2424
|
+
return result
|
|
2425
|
+
filtered = [event for event in result.events if event.seq >= from_seq]
|
|
2426
|
+
return ReplayResult.model_construct(events=filtered, integrity=result.integrity)
|
|
2427
|
+
|
|
2428
|
+
def _cached_full_replay(self, session_id: str) -> ReplayResult:
|
|
2429
|
+
"""Return the full verified replay for a session, cached + incremental.
|
|
2430
|
+
|
|
2431
|
+
The cold/full path delegates to ``session_manager.replay`` (the
|
|
2432
|
+
authoritative read + full integrity verify). When the cached log has
|
|
2433
|
+
only grown, the appended tail is read and verified against the cached
|
|
2434
|
+
prefix instead. The tail verification doubles as a consistency guard:
|
|
2435
|
+
any offset skew (a concurrent append during the cold read, a rewrite)
|
|
2436
|
+
surfaces as a seq/hash mismatch and falls back to a full replay, so the
|
|
2437
|
+
fast path can never silently miss, duplicate, or trust a bad event.
|
|
2438
|
+
"""
|
|
2439
|
+
eventlog = self.session_manager.get(session_id).eventlog
|
|
2440
|
+
signature = _eventlog_file_signature(eventlog)
|
|
2441
|
+
cached = self._replay_cache.get(session_id)
|
|
2442
|
+
if cached is not None and cached[0] == signature:
|
|
2443
|
+
return cached[1]
|
|
2444
|
+
if (
|
|
2445
|
+
cached is not None
|
|
2446
|
+
and isinstance(cached[2], int)
|
|
2447
|
+
and isinstance(signature[1], int)
|
|
2448
|
+
and signature[1] > cached[2]
|
|
2449
|
+
and cached[1].integrity is not None
|
|
2450
|
+
and cached[1].integrity.ok
|
|
2451
|
+
):
|
|
2452
|
+
new_events, end_offset = eventlog.read_from_offset(cached[2])
|
|
2453
|
+
extended = self._extend_replay(cached[1], new_events)
|
|
2454
|
+
if extended is not None:
|
|
2455
|
+
self._replay_cache[session_id] = (signature, extended, end_offset)
|
|
2456
|
+
return extended
|
|
2457
|
+
result = cast(ReplayResult, self.session_manager.replay(session_id, from_seq=1))
|
|
2458
|
+
offset = _eventlog_file_signature(eventlog)[1]
|
|
2459
|
+
self._replay_cache[session_id] = (signature, result, offset)
|
|
2460
|
+
return result
|
|
2461
|
+
|
|
2462
|
+
@staticmethod
|
|
2463
|
+
def _extend_replay(cached: ReplayResult, new_events: list[Any]) -> ReplayResult | None:
|
|
2464
|
+
"""Extend a verified replay with appended events, or None to rebuild.
|
|
2465
|
+
|
|
2466
|
+
Verifies only the new tail against the cached prefix's last event.
|
|
2467
|
+
Returns ``None`` (signalling a full re-verify) when the tail fails
|
|
2468
|
+
verification, so a tampered or reordered append never silently passes.
|
|
2393
2469
|
"""
|
|
2394
|
-
|
|
2470
|
+
if not new_events:
|
|
2471
|
+
return cached
|
|
2472
|
+
last = cached.events[-1] if cached.events else None
|
|
2473
|
+
tail = verify_event_chain(
|
|
2474
|
+
new_events,
|
|
2475
|
+
first_seq=(last.seq + 1) if last is not None else 1,
|
|
2476
|
+
prev_hash=last.hash if last is not None else None,
|
|
2477
|
+
)
|
|
2478
|
+
if not tail.ok:
|
|
2479
|
+
return None
|
|
2480
|
+
combined = [*cached.events, *new_events]
|
|
2481
|
+
return ReplayResult(
|
|
2482
|
+
events=combined,
|
|
2483
|
+
integrity=IntegrityReport(ok=True, total_events=len(combined)),
|
|
2484
|
+
)
|
|
2395
2485
|
|
|
2396
2486
|
async def propose_consolidation_candidates(
|
|
2397
2487
|
self,
|
|
@@ -149,6 +149,62 @@ class ReplayResult(BaseModel):
|
|
|
149
149
|
projection: dict[str, Any] = Field(default_factory=dict)
|
|
150
150
|
|
|
151
151
|
|
|
152
|
+
def verify_event_chain(
|
|
153
|
+
events: list[Event],
|
|
154
|
+
*,
|
|
155
|
+
first_seq: int = 1,
|
|
156
|
+
prev_hash: str | None = None,
|
|
157
|
+
) -> IntegrityReport:
|
|
158
|
+
"""Verify a contiguous run of events: per-event seals + hash-chain links.
|
|
159
|
+
|
|
160
|
+
``first_seq`` and ``prev_hash`` let a caller verify a tail segment against
|
|
161
|
+
an already-verified prefix (incremental replay): pass the sequence number
|
|
162
|
+
and hash of the event immediately preceding ``events[0]``. With the
|
|
163
|
+
defaults this verifies a whole log from the genesis event. ``total_events``
|
|
164
|
+
counts only the events passed here; a caller stitching a verified prefix to
|
|
165
|
+
a verified tail computes the combined total itself.
|
|
166
|
+
"""
|
|
167
|
+
total = len(events)
|
|
168
|
+
if total == 0:
|
|
169
|
+
return IntegrityReport(ok=True, total_events=0)
|
|
170
|
+
|
|
171
|
+
expected_seq = first_seq
|
|
172
|
+
for ev in events:
|
|
173
|
+
if ev.seq != expected_seq:
|
|
174
|
+
return IntegrityReport(
|
|
175
|
+
ok=False,
|
|
176
|
+
total_events=total,
|
|
177
|
+
broken_at_seq=ev.seq,
|
|
178
|
+
broken_reason=f"Event sequence expected {expected_seq} but found {ev.seq}",
|
|
179
|
+
)
|
|
180
|
+
if not ev.verify():
|
|
181
|
+
return IntegrityReport(
|
|
182
|
+
ok=False,
|
|
183
|
+
total_events=total,
|
|
184
|
+
broken_at_seq=ev.seq,
|
|
185
|
+
broken_reason=f"Event {ev.seq} hash mismatch",
|
|
186
|
+
)
|
|
187
|
+
if expected_seq == 1:
|
|
188
|
+
if ev.prev_hash is not None:
|
|
189
|
+
return IntegrityReport(
|
|
190
|
+
ok=False,
|
|
191
|
+
total_events=total,
|
|
192
|
+
broken_at_seq=ev.seq,
|
|
193
|
+
broken_reason="First event has prev_hash set",
|
|
194
|
+
)
|
|
195
|
+
elif ev.prev_hash != prev_hash:
|
|
196
|
+
return IntegrityReport(
|
|
197
|
+
ok=False,
|
|
198
|
+
total_events=total,
|
|
199
|
+
broken_at_seq=ev.seq,
|
|
200
|
+
broken_reason=f"Event {ev.seq} prev_hash does not link to previous",
|
|
201
|
+
)
|
|
202
|
+
prev_hash = ev.hash
|
|
203
|
+
expected_seq += 1
|
|
204
|
+
|
|
205
|
+
return IntegrityReport(ok=True, total_events=total)
|
|
206
|
+
|
|
207
|
+
|
|
152
208
|
class EventLog:
|
|
153
209
|
"""Append-only event log backed by a JSONL file.
|
|
154
210
|
|
|
@@ -313,47 +369,7 @@ class EventLog:
|
|
|
313
369
|
|
|
314
370
|
def verify(self) -> IntegrityReport:
|
|
315
371
|
"""Verify the entire log: hash chain + individual event seals."""
|
|
316
|
-
|
|
317
|
-
total = len(events)
|
|
318
|
-
|
|
319
|
-
if total == 0:
|
|
320
|
-
return IntegrityReport(ok=True, total_events=0)
|
|
321
|
-
|
|
322
|
-
prev_hash: str | None = None
|
|
323
|
-
for i, ev in enumerate(events, start=1):
|
|
324
|
-
if ev.seq != i:
|
|
325
|
-
return IntegrityReport(
|
|
326
|
-
ok=False,
|
|
327
|
-
total_events=total,
|
|
328
|
-
broken_at_seq=ev.seq,
|
|
329
|
-
broken_reason=f"Event sequence expected {i} but found {ev.seq}",
|
|
330
|
-
)
|
|
331
|
-
if not ev.verify():
|
|
332
|
-
return IntegrityReport(
|
|
333
|
-
ok=False,
|
|
334
|
-
total_events=total,
|
|
335
|
-
broken_at_seq=ev.seq,
|
|
336
|
-
broken_reason=f"Event {ev.seq} hash mismatch",
|
|
337
|
-
)
|
|
338
|
-
if i == 1:
|
|
339
|
-
if ev.prev_hash is not None:
|
|
340
|
-
return IntegrityReport(
|
|
341
|
-
ok=False,
|
|
342
|
-
total_events=total,
|
|
343
|
-
broken_at_seq=ev.seq,
|
|
344
|
-
broken_reason="First event has prev_hash set",
|
|
345
|
-
)
|
|
346
|
-
else:
|
|
347
|
-
if ev.prev_hash != prev_hash:
|
|
348
|
-
return IntegrityReport(
|
|
349
|
-
ok=False,
|
|
350
|
-
total_events=total,
|
|
351
|
-
broken_at_seq=ev.seq,
|
|
352
|
-
broken_reason=f"Event {ev.seq} prev_hash does not link to previous",
|
|
353
|
-
)
|
|
354
|
-
prev_hash = ev.hash
|
|
355
|
-
|
|
356
|
-
return IntegrityReport(ok=True, total_events=total)
|
|
372
|
+
return verify_event_chain(self.read_all())
|
|
357
373
|
|
|
358
374
|
def replay(
|
|
359
375
|
self,
|
|
@@ -402,6 +418,42 @@ class EventLog:
|
|
|
402
418
|
self._unlock(fh.fileno())
|
|
403
419
|
return [_event_from_json_line(line) for line in lines]
|
|
404
420
|
|
|
421
|
+
def read_from_offset(self, offset: int) -> tuple[list[Event], int]:
|
|
422
|
+
"""Read events appended at or after byte ``offset``.
|
|
423
|
+
|
|
424
|
+
Returns ``(events, end_offset)`` where ``events`` are parsed from
|
|
425
|
+
``offset`` to the current end of file and ``end_offset`` is the new
|
|
426
|
+
byte length. ``offset`` must fall on a record boundary (e.g. a value
|
|
427
|
+
previously returned here, or a file size); ``offset=0`` reads the
|
|
428
|
+
whole log, so this is a superset of :meth:`read_all` that also reports
|
|
429
|
+
the cursor. A shared lock guarantees no concurrent append is observed
|
|
430
|
+
mid-record, and the append-only hash chain guarantees the prefix
|
|
431
|
+
before ``offset`` is immutable, so incremental readers never miss or
|
|
432
|
+
duplicate events.
|
|
433
|
+
"""
|
|
434
|
+
if not self.path.exists():
|
|
435
|
+
return [], 0
|
|
436
|
+
if offset < 0:
|
|
437
|
+
offset = 0
|
|
438
|
+
with open(self.path, "rb") as fh:
|
|
439
|
+
self._lock(fh.fileno(), exclusive=False)
|
|
440
|
+
try:
|
|
441
|
+
fh.seek(0, os.SEEK_END)
|
|
442
|
+
end = fh.tell()
|
|
443
|
+
if offset >= end:
|
|
444
|
+
return [], end
|
|
445
|
+
fh.seek(offset)
|
|
446
|
+
data = fh.read(end - offset)
|
|
447
|
+
finally:
|
|
448
|
+
self._unlock(fh.fileno())
|
|
449
|
+
events: list[Event] = []
|
|
450
|
+
for raw in data.split(b"\n"):
|
|
451
|
+
line = raw.strip()
|
|
452
|
+
if not line:
|
|
453
|
+
continue
|
|
454
|
+
events.append(_event_from_json_line(line.decode("utf-8")))
|
|
455
|
+
return events, end
|
|
456
|
+
|
|
405
457
|
# ------------------------------------------------------------------
|
|
406
458
|
# Handoff & Summaries
|
|
407
459
|
# ------------------------------------------------------------------
|