zaxy-memory 2.3.3__tar.gz → 2.4.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (566) hide show
  1. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/AGENTS.md +1 -1
  2. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/CHANGELOG.md +41 -0
  3. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/PKG-INFO +3 -1
  4. zaxy_memory-2.4.0/docs/experimental/portable-export-conformance.md +62 -0
  5. zaxy_memory-2.4.0/docs/experimental/portable-export-security.md +95 -0
  6. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/docs/hooks.md +43 -0
  7. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/pyproject.toml +6 -1
  8. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/scripts/build-site-docs.py +4 -0
  9. zaxy_memory-2.4.0/scripts/chunk_rag_token_compare.py +166 -0
  10. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/site/docs/hooks.html +10 -0
  11. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/site/index.html +2 -2
  12. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/src/zaxy/cli/workspace.py +110 -0
  13. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/src/zaxy/observation.py +27 -2
  14. zaxy_memory-2.4.0/src/zaxy/offload.py +108 -0
  15. zaxy_memory-2.4.0/src/zaxy/portable/__init__.py +44 -0
  16. zaxy_memory-2.4.0/src/zaxy/portable/anchor.py +48 -0
  17. zaxy_memory-2.4.0/src/zaxy/portable/envelope.py +109 -0
  18. zaxy_memory-2.4.0/src/zaxy/portable/export.py +148 -0
  19. zaxy_memory-2.4.0/src/zaxy/portable/merkle.py +73 -0
  20. zaxy_memory-2.4.0/src/zaxy/portable/rehydration.py +82 -0
  21. zaxy_memory-2.4.0/src/zaxy/portable/signing.py +76 -0
  22. zaxy_memory-2.4.0/tests/test_anchor.py +32 -0
  23. zaxy_memory-2.4.0/tests/test_chunk_rag_methodology.py +51 -0
  24. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/tests/test_docs_site.py +1 -1
  25. zaxy_memory-2.4.0/tests/test_envelope.py +81 -0
  26. zaxy_memory-2.4.0/tests/test_offload.py +120 -0
  27. zaxy_memory-2.4.0/tests/test_portable_export.py +201 -0
  28. zaxy_memory-2.4.0/tests/test_rehydration.py +58 -0
  29. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/.gitignore +0 -0
  30. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/Dockerfile +0 -0
  31. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/LICENSE +0 -0
  32. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/README.md +0 -0
  33. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/docker-compose.prod.yml +0 -0
  34. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/docker-compose.yml +0 -0
  35. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/docs/agent-events.md +0 -0
  36. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/docs/announcements/zaxy-0.4.0.md +0 -0
  37. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/docs/announcements/zaxy-coordinate.md +0 -0
  38. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/docs/announcements/zaxy-v1.0-x-article.md +0 -0
  39. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/docs/announcements/zaxy-v1.0.md +0 -0
  40. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/docs/announcements/zaxy-v1.1-x-article.md +0 -0
  41. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/docs/announcements/zaxy-v2.1.md +0 -0
  42. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/docs/announcements/zaxy-v2.2-x-article.md +0 -0
  43. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/docs/announcements/zaxy-v2.3-x-article.md +0 -0
  44. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/docs/api-inventory.md +0 -0
  45. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/docs/api.md +0 -0
  46. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/docs/architecture.md +0 -0
  47. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/docs/archive/benchmark-contributions.md +0 -0
  48. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/docs/archive/benchmark-review.md +0 -0
  49. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/docs/archive/competitive-positioning.md +0 -0
  50. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/docs/archive/experimental-associative-memory.md +0 -0
  51. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/docs/archive/longmembench.md +0 -0
  52. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/docs/archive/memory-is-purpose-zaxy-analysis.md +0 -0
  53. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/docs/archive/release-validation-checklist.md +0 -0
  54. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/docs/archive/synthesis-context-research.md +0 -0
  55. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/docs/archive/v09-gate-audit.md +0 -0
  56. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/docs/archive/v1-roadmap.md +0 -0
  57. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/docs/archive/v10-gate-audit.md +0 -0
  58. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/docs/archive/zero-friction-runtime-roadmap.md +0 -0
  59. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/docs/assets/zaxy-coordinate-header.png +0 -0
  60. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/docs/assets/zaxy-v1-header.png +0 -0
  61. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/docs/assets/zaxy-v1.1-header.png +0 -0
  62. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/docs/assets/zaxy-v2.1-header.png +0 -0
  63. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/docs/assets/zaxy-v2.1-hero.png +0 -0
  64. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/docs/assets/zaxy-v2.2-header.png +0 -0
  65. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/docs/assets/zaxy-v2.3-header.png +0 -0
  66. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/docs/benchmarks.md +0 -0
  67. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/docs/codebase.md +0 -0
  68. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/docs/configuration.md +0 -0
  69. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/docs/consolidation.md +0 -0
  70. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/docs/coordinate-quickstart.md +0 -0
  71. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/docs/coordinate-roadmap.md +0 -0
  72. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/docs/deployment.md +0 -0
  73. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/docs/embeddings.md +0 -0
  74. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/docs/eventloom.md +0 -0
  75. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/docs/examples/external-validation-report.example.json +0 -0
  76. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/docs/examples/first-run-timing-report.json +0 -0
  77. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/docs/examples/mcp-response-snapshots.json +0 -0
  78. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/docs/examples/mcp-tool-contract.json +0 -0
  79. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/docs/examples/memory-checkout-contract.json +0 -0
  80. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/docs/examples/native-integration-contract.json +0 -0
  81. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/docs/examples/v1-schema-freeze.json +0 -0
  82. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/docs/external-validation.md +0 -0
  83. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/docs/first-run-validation.md +0 -0
  84. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/docs/getting-started.md +0 -0
  85. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/docs/graph-schema.md +0 -0
  86. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/docs/integrations.md +0 -0
  87. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/docs/mcp-install-targets.md +0 -0
  88. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/docs/mcp-quickstart.md +0 -0
  89. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/docs/mcp.md +0 -0
  90. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/docs/media/zaxy-2-5-3-0-latent-memory-roadmap-header.png +0 -0
  91. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/docs/media/zaxy-codebase-review-header.png +0 -0
  92. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/docs/media/zaxy-collaborate-demo.gif +0 -0
  93. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/docs/media/zaxy-collaborate-demo.md +0 -0
  94. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/docs/media/zaxy-collaborate-demo.mp4 +0 -0
  95. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/docs/migration.md +0 -0
  96. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/docs/operations.md +0 -0
  97. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/docs/packet-analyzer.md +0 -0
  98. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/docs/research/ann-engineering-2026-06.md +0 -0
  99. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/docs/research/artifacts/2-3-research/backend-options.md +0 -0
  100. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/docs/research/artifacts/2-3-research/external-validation.md +0 -0
  101. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/docs/research/artifacts/2-3-research/int8_bench_e_results.json +0 -0
  102. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/docs/research/artifacts/2-3-research/int8_bench_results.json +0 -0
  103. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/docs/research/artifacts/2-3-research/kuzu-usage-audit.md +0 -0
  104. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/docs/research/artifacts/2-3-research/promotion-pass.md +0 -0
  105. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/docs/research/artifacts/ann-2026-06/BASELINE.md +0 -0
  106. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/docs/research/artifacts/ann-2026-06/after-dim1536-r1.json +0 -0
  107. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/docs/research/artifacts/ann-2026-06/after-dim1536-r2.json +0 -0
  108. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/docs/research/artifacts/ann-2026-06/after-dim64-100k.json +0 -0
  109. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/docs/research/artifacts/ann-2026-06/after-dim64-r1.json +0 -0
  110. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/docs/research/artifacts/ann-2026-06/after-dim64-r2.json +0 -0
  111. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/docs/research/artifacts/ann-2026-06/after-dim64-r3.json +0 -0
  112. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/docs/research/artifacts/ann-2026-06/ann2-d64-10k-postcopy.json +0 -0
  113. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/docs/research/artifacts/ann-2026-06/ann3-d1536-10k-gauss-r1.json +0 -0
  114. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/docs/research/artifacts/ann-2026-06/ann3-d1536-10k-gauss-r2.json +0 -0
  115. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/docs/research/artifacts/ann-2026-06/ann3-d1536-10k-hash-r1.json +0 -0
  116. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/docs/research/artifacts/ann-2026-06/ann3-d1536-10k-hash-record.json +0 -0
  117. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/docs/research/artifacts/ann-2026-06/ann3-d1536-50k-gauss-crossover.json +0 -0
  118. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/docs/research/artifacts/ann-2026-06/ann3-d64-100k-r1.json +0 -0
  119. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/docs/research/artifacts/ann-2026-06/ann3-d64-100k-r2.json +0 -0
  120. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/docs/research/artifacts/ann-2026-06/ann4-d1536-50k-dimension-gated.json +0 -0
  121. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/docs/research/artifacts/ann-2026-06/ann4-d1536-50k-gauss-efs800.json +0 -0
  122. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/docs/research/artifacts/ann-2026-06/ann4-d1536-50k-gauss-r2.json +0 -0
  123. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/docs/research/artifacts/ann-2026-06/ann4-d64-100k-confirm.json +0 -0
  124. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/docs/research/artifacts/ann-2026-06/baseline-dim1536.json +0 -0
  125. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/docs/research/artifacts/ann-2026-06/baseline-dim64.json +0 -0
  126. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/docs/research/artifacts/ann-2026-06/diag-d1536-f32-ceiling.json +0 -0
  127. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/docs/research/artifacts/ann-2026-06/diag-gauss-efs-sweep.json +0 -0
  128. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/docs/research/artifacts/ann-2026-06/diag-ties-gaussian.json +0 -0
  129. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/docs/research/artifacts/ann-2026-06/experiments-e1-e4.json +0 -0
  130. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/docs/research/artifacts/ann-2026-06/profiling-a2.json +0 -0
  131. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/docs/research/codebase-review-2026-06-09.md +0 -0
  132. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/docs/research/zaxy-memory-fabric-paper.md +0 -0
  133. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/docs/retrieval.md +0 -0
  134. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/docs/runbook.md +0 -0
  135. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/docs/security.md +0 -0
  136. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/docs/stability-commitment.md +0 -0
  137. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/docs/superpowers/plans/2026-05-08-codebase-file-map.md +0 -0
  138. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/docs/superpowers/plans/2026-05-08-domain-separated-defaults.md +0 -0
  139. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/docs/superpowers/plans/2026-05-08-local-first-retrieval.md +0 -0
  140. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/docs/superpowers/plans/2026-05-08-remote-mcp-rate-limit-audit.md +0 -0
  141. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/docs/superpowers/plans/2026-05-09-agent-integration-templates.md +0 -0
  142. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/docs/superpowers/plans/2026-05-09-retention-metadata-extraction.md +0 -0
  143. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/docs/superpowers/plans/2026-05-09-retrieval-feedback-events.md +0 -0
  144. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/docs/superpowers/plans/2026-05-10-merge-sprint.md +0 -0
  145. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/docs/superpowers/plans/2026-05-16-runtime-dashboard.md +0 -0
  146. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/docs/superpowers/plans/2026-05-17-skill-memory.md +0 -0
  147. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/docs/superpowers/plans/2026-05-18-pggraph-adapter.md +0 -0
  148. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/docs/superpowers/plans/2026-05-18-projection-backend-contract.md +0 -0
  149. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/docs/superpowers/plans/2026-05-20-zero-friction-embedded-graph-runtime.md +0 -0
  150. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/docs/superpowers/plans/2026-05-30-v0-5-public-positioning-first-run-trust.md +0 -0
  151. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/docs/superpowers/plans/2026-05-31-v1-release-docs-media.md +0 -0
  152. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/docs/superpowers/plans/2026-06-07-zaxy-2-0-alpha-1-causal-consolidation.md +0 -0
  153. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/docs/superpowers/plans/2026-06-07-zaxy-2-0-alpha-2-review-gated-consolidation.md +0 -0
  154. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/docs/superpowers/plans/2026-06-07-zaxy-2-0-beta-1-reasoning-loop-primitives.md +0 -0
  155. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/docs/superpowers/plans/2026-06-08-zaxy-2-0-beta-2-metacognitive-procedural-hardening.md +0 -0
  156. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/docs/superpowers/plans/2026-06-08-zaxy-2-0-rc-1-benchmark-freeze.md +0 -0
  157. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/docs/superpowers/plans/2026-06-09-codebase-review-high-value-remediation.md +0 -0
  158. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/docs/superpowers/specs/2026-05-08-codebase-file-map-design.md +0 -0
  159. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/docs/superpowers/specs/2026-05-08-domain-separated-defaults-design.md +0 -0
  160. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/docs/superpowers/specs/2026-05-08-local-first-retrieval-design.md +0 -0
  161. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/docs/superpowers/specs/2026-05-08-remote-mcp-rate-limit-audit-design.md +0 -0
  162. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/docs/superpowers/specs/2026-05-16-runtime-dashboard-design.md +0 -0
  163. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/docs/superpowers/specs/2026-05-17-skill-memory-pggraph-evaluation-design.md +0 -0
  164. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/docs/superpowers/specs/2026-05-31-v1-release-docs-media-design.md +0 -0
  165. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/docs/superpowers/specs/2026-06-07-zaxy-2-0-roadmap-design.md +0 -0
  166. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/docs/superpowers/specs/2026-06-09-zaxy-2-5-3-0-latent-memory-roadmap-design.md +0 -0
  167. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/docs/superpowers/specs/2026-06-10-zaxy-2-1-2-3-agent-experience-cognitive-memory-roadmap-design.md +0 -0
  168. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/docs/superpowers/specs/2026-06-10-zaxy-2-1-2-3-implementation-plan.md +0 -0
  169. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/docs/superpowers/specs/2026-06-11-zaxy-2-2-ann-engineering-plan.md +0 -0
  170. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/docs/superpowers/specs/2026-06-11-zaxy-2-3-readiness-research.md +0 -0
  171. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/docs/testing.md +0 -0
  172. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/docs/why-zaxy.md +0 -0
  173. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/docs/workspace-genesis.md +0 -0
  174. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/examples/__init__.py +0 -0
  175. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/examples/adapters/coordinationbench_zaxy_adapter.py +0 -0
  176. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/examples/claude_compatible_memory.py +0 -0
  177. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/examples/coordinate_three_worker_project.py +0 -0
  178. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/examples/langgraph_memory.py +0 -0
  179. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/examples/openai_compatible_memory.py +0 -0
  180. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/examples/single_agent_memory.py +0 -0
  181. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/reports/archive/benchmarks/longmembench-adapter-kit/README.md +0 -0
  182. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/reports/archive/benchmarks/purpose-v1/holdouts/public-derived-purpose-v1/README.md +0 -0
  183. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/reports/benchmarks/purpose-v1/holdouts/public-derived-purpose-v1/README.md +0 -0
  184. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/scripts/backend-shootout.py +0 -0
  185. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/scripts/backup.sh +0 -0
  186. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/scripts/benchmark-guardrails.sh +0 -0
  187. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/scripts/beta-uat.sh +0 -0
  188. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/scripts/build-backend-shootout-workload.py +0 -0
  189. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/scripts/build-dist.sh +0 -0
  190. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/scripts/check-backend-shootout.py +0 -0
  191. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/scripts/check-coverage.py +0 -0
  192. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/scripts/check-external-validation.py +0 -0
  193. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/scripts/check-state-recovery-benchmark.py +0 -0
  194. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/scripts/generate-certs.sh +0 -0
  195. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/scripts/generate-release-media.py +0 -0
  196. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/scripts/integration-check.sh +0 -0
  197. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/scripts/live-benchmark.sh +0 -0
  198. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/scripts/mcp_smoke_test.py +0 -0
  199. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/scripts/release-check.sh +0 -0
  200. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/scripts/restore.sh +0 -0
  201. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/scripts/rotate-logs.sh +0 -0
  202. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/scripts/setup.sh +0 -0
  203. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/scripts/setup_neo4j_indexes.cypher +0 -0
  204. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/scripts/validate-deployment.sh +0 -0
  205. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/scripts/validate-docs.sh +0 -0
  206. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/site/README.html +0 -0
  207. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/site/assets/graph.png +0 -0
  208. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/site/assets/zaxy-coordinate-header.png +0 -0
  209. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/site/assets/zaxy-v1-header.png +0 -0
  210. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/site/assets/zaxy-v1.1-header.png +0 -0
  211. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/site/assets/zaxy-v2.1-header.png +0 -0
  212. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/site/assets/zaxy-v2.1-hero.png +0 -0
  213. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/site/assets/zaxy-v2.2-header.png +0 -0
  214. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/site/assets/zaxy-v2.3-header.png +0 -0
  215. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/site/docs/agent-events.html +0 -0
  216. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/site/docs/announcements/zaxy-0.4.0.html +0 -0
  217. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/site/docs/announcements/zaxy-coordinate.html +0 -0
  218. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/site/docs/announcements/zaxy-v1.0-x-article.html +0 -0
  219. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/site/docs/announcements/zaxy-v1.0.html +0 -0
  220. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/site/docs/announcements/zaxy-v1.1-x-article.html +0 -0
  221. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/site/docs/announcements/zaxy-v2.1.html +0 -0
  222. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/site/docs/announcements/zaxy-v2.2-x-article.html +0 -0
  223. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/site/docs/announcements/zaxy-v2.3-x-article.html +0 -0
  224. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/site/docs/api-inventory.html +0 -0
  225. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/site/docs/api.html +0 -0
  226. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/site/docs/architecture.html +0 -0
  227. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/site/docs/archive/benchmark-contributions.html +0 -0
  228. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/site/docs/archive/benchmark-review.html +0 -0
  229. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/site/docs/archive/competitive-positioning.html +0 -0
  230. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/site/docs/archive/experimental-associative-memory.html +0 -0
  231. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/site/docs/archive/longmembench.html +0 -0
  232. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/site/docs/archive/memory-is-purpose-zaxy-analysis.html +0 -0
  233. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/site/docs/archive/release-validation-checklist.html +0 -0
  234. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/site/docs/archive/synthesis-context-research.html +0 -0
  235. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/site/docs/archive/v09-gate-audit.html +0 -0
  236. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/site/docs/archive/v1-roadmap.html +0 -0
  237. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/site/docs/archive/v10-gate-audit.html +0 -0
  238. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/site/docs/archive/zero-friction-runtime-roadmap.html +0 -0
  239. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/site/docs/benchmarks.html +0 -0
  240. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/site/docs/codebase.html +0 -0
  241. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/site/docs/configuration.html +0 -0
  242. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/site/docs/consolidation.html +0 -0
  243. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/site/docs/coordinate-quickstart.html +0 -0
  244. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/site/docs/coordinate-roadmap.html +0 -0
  245. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/site/docs/deployment.html +0 -0
  246. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/site/docs/embeddings.html +0 -0
  247. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/site/docs/eventloom.html +0 -0
  248. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/site/docs/external-validation.html +0 -0
  249. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/site/docs/first-run-validation.html +0 -0
  250. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/site/docs/getting-started.html +0 -0
  251. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/site/docs/graph-schema.html +0 -0
  252. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/site/docs/integrations.html +0 -0
  253. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/site/docs/mcp-install-targets.html +0 -0
  254. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/site/docs/mcp-quickstart.html +0 -0
  255. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/site/docs/mcp.html +0 -0
  256. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/site/docs/media/zaxy-collaborate-demo.html +0 -0
  257. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/site/docs/migration.html +0 -0
  258. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/site/docs/operations.html +0 -0
  259. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/site/docs/packet-analyzer.html +0 -0
  260. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/site/docs/research/ann-engineering-2026-06.html +0 -0
  261. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/site/docs/research/artifacts/2-3-research/backend-options.html +0 -0
  262. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/site/docs/research/artifacts/2-3-research/external-validation.html +0 -0
  263. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/site/docs/research/artifacts/2-3-research/kuzu-usage-audit.html +0 -0
  264. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/site/docs/research/artifacts/2-3-research/promotion-pass.html +0 -0
  265. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/site/docs/research/artifacts/ann-2026-06/BASELINE.html +0 -0
  266. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/site/docs/research/codebase-review-2026-06-09.html +0 -0
  267. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/site/docs/research/zaxy-memory-fabric-paper.html +0 -0
  268. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/site/docs/retrieval.html +0 -0
  269. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/site/docs/runbook.html +0 -0
  270. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/site/docs/security.html +0 -0
  271. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/site/docs/stability-commitment.html +0 -0
  272. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/site/docs/superpowers/plans/2026-05-08-codebase-file-map.html +0 -0
  273. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/site/docs/superpowers/plans/2026-05-08-domain-separated-defaults.html +0 -0
  274. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/site/docs/superpowers/plans/2026-05-08-local-first-retrieval.html +0 -0
  275. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/site/docs/superpowers/plans/2026-05-08-remote-mcp-rate-limit-audit.html +0 -0
  276. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/site/docs/superpowers/plans/2026-05-09-agent-integration-templates.html +0 -0
  277. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/site/docs/superpowers/plans/2026-05-09-retention-metadata-extraction.html +0 -0
  278. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/site/docs/superpowers/plans/2026-05-09-retrieval-feedback-events.html +0 -0
  279. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/site/docs/superpowers/plans/2026-05-10-merge-sprint.html +0 -0
  280. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/site/docs/superpowers/plans/2026-05-16-runtime-dashboard.html +0 -0
  281. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/site/docs/superpowers/plans/2026-05-17-skill-memory.html +0 -0
  282. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/site/docs/superpowers/plans/2026-05-18-pggraph-adapter.html +0 -0
  283. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/site/docs/superpowers/plans/2026-05-18-projection-backend-contract.html +0 -0
  284. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/site/docs/superpowers/plans/2026-05-20-zero-friction-embedded-graph-runtime.html +0 -0
  285. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/site/docs/superpowers/plans/2026-05-30-v0-5-public-positioning-first-run-trust.html +0 -0
  286. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/site/docs/superpowers/plans/2026-05-31-v1-release-docs-media.html +0 -0
  287. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/site/docs/superpowers/plans/2026-06-07-zaxy-2-0-alpha-1-causal-consolidation.html +0 -0
  288. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/site/docs/superpowers/plans/2026-06-07-zaxy-2-0-alpha-2-review-gated-consolidation.html +0 -0
  289. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/site/docs/superpowers/plans/2026-06-07-zaxy-2-0-beta-1-reasoning-loop-primitives.html +0 -0
  290. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/site/docs/superpowers/plans/2026-06-08-zaxy-2-0-beta-2-metacognitive-procedural-hardening.html +0 -0
  291. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/site/docs/superpowers/plans/2026-06-08-zaxy-2-0-rc-1-benchmark-freeze.html +0 -0
  292. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/site/docs/superpowers/plans/2026-06-09-codebase-review-high-value-remediation.html +0 -0
  293. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/site/docs/superpowers/specs/2026-05-08-codebase-file-map-design.html +0 -0
  294. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/site/docs/superpowers/specs/2026-05-08-domain-separated-defaults-design.html +0 -0
  295. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/site/docs/superpowers/specs/2026-05-08-local-first-retrieval-design.html +0 -0
  296. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/site/docs/superpowers/specs/2026-05-08-remote-mcp-rate-limit-audit-design.html +0 -0
  297. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/site/docs/superpowers/specs/2026-05-16-runtime-dashboard-design.html +0 -0
  298. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/site/docs/superpowers/specs/2026-05-17-skill-memory-pggraph-evaluation-design.html +0 -0
  299. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/site/docs/superpowers/specs/2026-05-31-v1-release-docs-media-design.html +0 -0
  300. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/site/docs/superpowers/specs/2026-06-07-zaxy-2-0-roadmap-design.html +0 -0
  301. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/site/docs/superpowers/specs/2026-06-09-zaxy-2-5-3-0-latent-memory-roadmap-design.html +0 -0
  302. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/site/docs/superpowers/specs/2026-06-10-zaxy-2-1-2-3-agent-experience-cognitive-memory-roadmap-design.html +0 -0
  303. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/site/docs/superpowers/specs/2026-06-10-zaxy-2-1-2-3-implementation-plan.html +0 -0
  304. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/site/docs/superpowers/specs/2026-06-11-zaxy-2-2-ann-engineering-plan.html +0 -0
  305. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/site/docs/superpowers/specs/2026-06-11-zaxy-2-3-readiness-research.html +0 -0
  306. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/site/docs/testing.html +0 -0
  307. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/site/docs/why-zaxy.html +0 -0
  308. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/site/docs/workspace-genesis.html +0 -0
  309. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/site/style.css +0 -0
  310. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/src/zaxy/__init__.py +0 -0
  311. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/src/zaxy/__main__.py +0 -0
  312. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/src/zaxy/adapters/__init__.py +0 -0
  313. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/src/zaxy/adapters/_common.py +0 -0
  314. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/src/zaxy/adapters/claude_compatible.py +0 -0
  315. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/src/zaxy/adapters/coordination.py +0 -0
  316. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/src/zaxy/adapters/crewai.py +0 -0
  317. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/src/zaxy/adapters/langgraph.py +0 -0
  318. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/src/zaxy/adapters/openai_compatible.py +0 -0
  319. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/src/zaxy/associative_memory.py +0 -0
  320. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/src/zaxy/capabilities.py +0 -0
  321. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/src/zaxy/capture_manager.py +0 -0
  322. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/src/zaxy/capture_soak.py +0 -0
  323. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/src/zaxy/causal.py +0 -0
  324. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/src/zaxy/checkout.py +0 -0
  325. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/src/zaxy/cli/__init__.py +0 -0
  326. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/src/zaxy/cli/benchmarks.py +0 -0
  327. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/src/zaxy/cli/evaluation.py +0 -0
  328. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/src/zaxy/cli/runtime.py +0 -0
  329. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/src/zaxy/cli/serving.py +0 -0
  330. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/src/zaxy/codebase.py +0 -0
  331. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/src/zaxy/codex_capture.py +0 -0
  332. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/src/zaxy/compaction.py +0 -0
  333. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/src/zaxy/config.py +0 -0
  334. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/src/zaxy/consolidation.py +0 -0
  335. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/src/zaxy/consolidation_pipeline.py +0 -0
  336. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/src/zaxy/context.py +0 -0
  337. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/src/zaxy/context_refresh.py +0 -0
  338. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/src/zaxy/coordination.py +0 -0
  339. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/src/zaxy/coordination_git.py +0 -0
  340. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/src/zaxy/coordination_semantic.py +0 -0
  341. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/src/zaxy/coordination_templates.py +0 -0
  342. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/src/zaxy/coordinationbench_adapter.py +0 -0
  343. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/src/zaxy/core.py +0 -0
  344. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/src/zaxy/dashboard.py +0 -0
  345. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/src/zaxy/doctor.py +0 -0
  346. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/src/zaxy/documents.py +0 -0
  347. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/src/zaxy/domain.py +0 -0
  348. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/src/zaxy/embedded_graph_store.py +0 -0
  349. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/src/zaxy/embedding.py +0 -0
  350. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/src/zaxy/event.py +0 -0
  351. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/src/zaxy/event_context.py +0 -0
  352. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/src/zaxy/evidence.py +0 -0
  353. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/src/zaxy/evidence_candidates.py +0 -0
  354. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/src/zaxy/evidence_program.py +0 -0
  355. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/src/zaxy/external_validation.py +0 -0
  356. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/src/zaxy/extract.py +0 -0
  357. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/src/zaxy/extract_templates.py +0 -0
  358. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/src/zaxy/feature_evidence.py +0 -0
  359. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/src/zaxy/graph.py +0 -0
  360. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/src/zaxy/graph_walk.py +0 -0
  361. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/src/zaxy/hooks.py +0 -0
  362. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/src/zaxy/inference.py +0 -0
  363. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/src/zaxy/install.py +0 -0
  364. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/src/zaxy/integrations.py +0 -0
  365. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/src/zaxy/latticedb_store.py +0 -0
  366. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/src/zaxy/lifecycle.py +0 -0
  367. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/src/zaxy/local_profile.py +0 -0
  368. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/src/zaxy/log.py +0 -0
  369. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/src/zaxy/mcp_runtime.py +0 -0
  370. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/src/zaxy/mcp_server.py +0 -0
  371. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/src/zaxy/memory_persistence.py +0 -0
  372. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/src/zaxy/memory_status.py +0 -0
  373. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/src/zaxy/metacognition.py +0 -0
  374. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/src/zaxy/metrics.py +0 -0
  375. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/src/zaxy/neutral.py +0 -0
  376. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/src/zaxy/onboarding.py +0 -0
  377. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/src/zaxy/packet_analyzer.py +0 -0
  378. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/src/zaxy/packet_guidance.py +0 -0
  379. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/src/zaxy/packet_projection.py +0 -0
  380. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/src/zaxy/pagination.py +0 -0
  381. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/src/zaxy/pggraph_store.py +0 -0
  382. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/src/zaxy/procedural_planning.py +0 -0
  383. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/src/zaxy/procedure_mining.py +0 -0
  384. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/src/zaxy/projection.py +0 -0
  385. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/src/zaxy/projection_backends.py +0 -0
  386. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/src/zaxy/purpose.py +0 -0
  387. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/src/zaxy/purpose_control.py +0 -0
  388. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/src/zaxy/py.typed +0 -0
  389. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/src/zaxy/query.py +0 -0
  390. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/src/zaxy/reasoning_primitives.py +0 -0
  391. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/src/zaxy/recall.py +0 -0
  392. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/src/zaxy/recovery.py +0 -0
  393. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/src/zaxy/refs.py +0 -0
  394. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/src/zaxy/release.py +0 -0
  395. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/src/zaxy/remote_security.py +0 -0
  396. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/src/zaxy/resources/__init__.py +0 -0
  397. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/src/zaxy/resources/coordinationbench/README.md +0 -0
  398. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/src/zaxy/resources/coordinationbench/__init__.py +0 -0
  399. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/src/zaxy/resources/coordinationbench/schemas/result.schema.json +0 -0
  400. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/src/zaxy/resources/coordinationbench/schemas/runner-manifest.schema.json +0 -0
  401. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/src/zaxy/resources/coordinationbench/templates/activegraph.runner-manifest.template.json +0 -0
  402. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/src/zaxy/resources/coordinationbench/templates/agent_memory.runner-manifest.template.json +0 -0
  403. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/src/zaxy/resources/coordinationbench/templates/hybi.runner-manifest.template.json +0 -0
  404. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/src/zaxy/resources/coordinationbench/templates/mem0.runner-manifest.template.json +0 -0
  405. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/src/zaxy/resources/coordinationbench/templates/quarq.runner-manifest.template.json +0 -0
  406. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/src/zaxy/resources/coordinationbench/unsupported_runner.py +0 -0
  407. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/src/zaxy/retrieval_intent.py +0 -0
  408. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/src/zaxy/retrieval_plan/__init__.py +0 -0
  409. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/src/zaxy/retrieval_plan/bundles.py +0 -0
  410. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/src/zaxy/retrieval_plan/duration_evidence.py +0 -0
  411. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/src/zaxy/retrieval_plan/fact_queries.py +0 -0
  412. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/src/zaxy/retrieval_plan/foundations.py +0 -0
  413. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/src/zaxy/retrieval_plan/ordering.py +0 -0
  414. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/src/zaxy/retrieval_plan/scalars.py +0 -0
  415. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/src/zaxy/retrieval_profile.py +0 -0
  416. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/src/zaxy/runtime.py +0 -0
  417. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/src/zaxy/salience.py +0 -0
  418. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/src/zaxy/schema.py +0 -0
  419. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/src/zaxy/security.py +0 -0
  420. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/src/zaxy/session.py +0 -0
  421. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/src/zaxy/synthesis/__init__.py +0 -0
  422. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/src/zaxy/synthesis/evidence_rows.py +0 -0
  423. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/src/zaxy/synthesis/foundations.py +0 -0
  424. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/src/zaxy/synthesis/labels.py +0 -0
  425. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/src/zaxy/synthesis/ledgers.py +0 -0
  426. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/src/zaxy/synthesis/operations.py +0 -0
  427. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/src/zaxy/synthesis_artifact.py +0 -0
  428. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/src/zaxy/synthesis_packet.py +0 -0
  429. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/src/zaxy/token_budget.py +0 -0
  430. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/src/zaxy/tool_profiles.py +0 -0
  431. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/src/zaxy/trace.py +0 -0
  432. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/src/zaxy/transcripts.py +0 -0
  433. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/src/zaxy/verbatim.py +0 -0
  434. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/src/zaxy/viewer.py +0 -0
  435. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/src/zaxy/working_set.py +0 -0
  436. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/src/zaxy/workspace.py +0 -0
  437. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/tests/conftest.py +0 -0
  438. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/tests/test_agent_experience_lanes.py +0 -0
  439. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/tests/test_associative_memory.py +0 -0
  440. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/tests/test_backend_shootout.py +0 -0
  441. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/tests/test_benchmarks.py +0 -0
  442. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/tests/test_capabilities.py +0 -0
  443. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/tests/test_capture_manager.py +0 -0
  444. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/tests/test_capture_soak.py +0 -0
  445. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/tests/test_causal.py +0 -0
  446. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/tests/test_causal_benchmark.py +0 -0
  447. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/tests/test_causal_checkout.py +0 -0
  448. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/tests/test_checkout.py +0 -0
  449. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/tests/test_claude_compatible_adapter.py +0 -0
  450. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/tests/test_cli.py +0 -0
  451. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/tests/test_codebase.py +0 -0
  452. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/tests/test_codex_capture.py +0 -0
  453. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/tests/test_cognitive_lanes.py +0 -0
  454. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/tests/test_cognitive_profile.py +0 -0
  455. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/tests/test_compaction.py +0 -0
  456. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/tests/test_competitive_benchmarks.py +0 -0
  457. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/tests/test_compose.py +0 -0
  458. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/tests/test_config.py +0 -0
  459. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/tests/test_consolidation.py +0 -0
  460. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/tests/test_consolidation_benchmark.py +0 -0
  461. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/tests/test_consolidation_pipeline.py +0 -0
  462. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/tests/test_context.py +0 -0
  463. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/tests/test_context_refresh.py +0 -0
  464. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/tests/test_coordination.py +0 -0
  465. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/tests/test_coordination_adapters.py +0 -0
  466. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/tests/test_coordination_benchmark.py +0 -0
  467. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/tests/test_coordination_semantic.py +0 -0
  468. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/tests/test_coordinationbench_adapter.py +0 -0
  469. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/tests/test_core.py +0 -0
  470. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/tests/test_coverage_ratchet.py +0 -0
  471. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/tests/test_crewai_adapter.py +0 -0
  472. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/tests/test_dashboard.py +0 -0
  473. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/tests/test_doctor.py +0 -0
  474. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/tests/test_documents.py +0 -0
  475. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/tests/test_domain.py +0 -0
  476. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/tests/test_embedded_graph_store.py +0 -0
  477. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/tests/test_embedding.py +0 -0
  478. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/tests/test_event.py +0 -0
  479. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/tests/test_evidence.py +0 -0
  480. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/tests/test_evidence_program.py +0 -0
  481. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/tests/test_examples_v05.py +0 -0
  482. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/tests/test_extract.py +0 -0
  483. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/tests/test_extract_templates.py +0 -0
  484. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/tests/test_feature_evidence.py +0 -0
  485. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/tests/test_graph.py +0 -0
  486. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/tests/test_graph_scale_lanes.py +0 -0
  487. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/tests/test_graph_walk.py +0 -0
  488. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/tests/test_harvey_lab_benchmark.py +0 -0
  489. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/tests/test_inference.py +0 -0
  490. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/tests/test_install.py +0 -0
  491. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/tests/test_integration_check_script.py +0 -0
  492. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/tests/test_integrations.py +0 -0
  493. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/tests/test_langgraph_adapter.py +0 -0
  494. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/tests/test_latticedb_store.py +0 -0
  495. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/tests/test_lifecycle.py +0 -0
  496. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/tests/test_live_benchmark.py +0 -0
  497. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/tests/test_local_profile.py +0 -0
  498. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/tests/test_longmembench.py +0 -0
  499. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/tests/test_mcp.py +0 -0
  500. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/tests/test_mcp_runtime.py +0 -0
  501. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/tests/test_mcp_server.py +0 -0
  502. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/tests/test_memory_injection.py +0 -0
  503. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/tests/test_memory_persistence.py +0 -0
  504. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/tests/test_memory_status.py +0 -0
  505. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/tests/test_metacognition.py +0 -0
  506. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/tests/test_metrics.py +0 -0
  507. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/tests/test_neutral.py +0 -0
  508. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/tests/test_observation.py +0 -0
  509. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/tests/test_onboarding.py +0 -0
  510. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/tests/test_openai_compatible_adapter.py +0 -0
  511. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/tests/test_ops_scripts.py +0 -0
  512. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/tests/test_packaging.py +0 -0
  513. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/tests/test_packet_analyzer.py +0 -0
  514. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/tests/test_packet_memory_e2e.py +0 -0
  515. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/tests/test_packet_projection.py +0 -0
  516. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/tests/test_pagination.py +0 -0
  517. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/tests/test_pggraph_store.py +0 -0
  518. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/tests/test_procedural_planning.py +0 -0
  519. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/tests/test_procedure_mining.py +0 -0
  520. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/tests/test_projection.py +0 -0
  521. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/tests/test_purpose.py +0 -0
  522. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/tests/test_purpose_benchmark.py +0 -0
  523. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/tests/test_purpose_control.py +0 -0
  524. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/tests/test_query.py +0 -0
  525. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/tests/test_rc_benchmark_freeze.py +0 -0
  526. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/tests/test_reasoning_benchmark.py +0 -0
  527. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/tests/test_reasoning_primitives.py +0 -0
  528. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/tests/test_recovery.py +0 -0
  529. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/tests/test_refs.py +0 -0
  530. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/tests/test_remote_security.py +0 -0
  531. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/tests/test_retrieval_plan.py +0 -0
  532. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/tests/test_retrieval_profiles.py +0 -0
  533. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/tests/test_runtime.py +0 -0
  534. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/tests/test_salience.py +0 -0
  535. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/tests/test_schema_migrations.py +0 -0
  536. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/tests/test_security.py +0 -0
  537. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/tests/test_session.py +0 -0
  538. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/tests/test_setup_script.py +0 -0
  539. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/tests/test_statistical_benchmark.py +0 -0
  540. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/tests/test_synthesis.py +0 -0
  541. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/tests/test_synthesis_artifact.py +0 -0
  542. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/tests/test_synthesis_packet.py +0 -0
  543. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/tests/test_token_budget.py +0 -0
  544. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/tests/test_trace.py +0 -0
  545. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/tests/test_transcripts.py +0 -0
  546. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/tests/test_v05_positioning.py +0 -0
  547. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/tests/test_verbatim.py +0 -0
  548. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/tests/test_viewer.py +0 -0
  549. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/tests/test_working_set.py +0 -0
  550. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/tests/test_workspace.py +0 -0
  551. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/zaxy_benchmarks/__init__.py +0 -0
  552. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/zaxy_benchmarks/agent_experience_lanes.py +0 -0
  553. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/zaxy_benchmarks/benchmark.py +0 -0
  554. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/zaxy_benchmarks/causal_benchmark.py +0 -0
  555. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/zaxy_benchmarks/consolidation_benchmark.py +0 -0
  556. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/zaxy_benchmarks/coordination_benchmark.py +0 -0
  557. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/zaxy_benchmarks/fok_calibration_lane.py +0 -0
  558. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/zaxy_benchmarks/forgetting_lane.py +0 -0
  559. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/zaxy_benchmarks/graph_walk_lane.py +0 -0
  560. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/zaxy_benchmarks/harvey_lab_benchmark.py +0 -0
  561. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/zaxy_benchmarks/live_benchmark.py +0 -0
  562. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/zaxy_benchmarks/longmembench.py +0 -0
  563. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/zaxy_benchmarks/purpose_benchmark.py +0 -0
  564. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/zaxy_benchmarks/rc_benchmark_freeze.py +0 -0
  565. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/zaxy_benchmarks/reasoning_benchmark.py +0 -0
  566. {zaxy_memory-2.3.3 → zaxy_memory-2.4.0}/zaxy_benchmarks/vector_scale_lane.py +0 -0
@@ -184,7 +184,7 @@ Run with coverage: `pytest --cov` (default in pyproject.toml)
184
184
  | Neo4j upsert | <100ms | MERGE + index lookup |
185
185
  | Hybrid query | <200ms | Parallel exact + keyword + traversal |
186
186
  | Total context retrieval | <300ms | End-to-end |
187
- | Token reduction vs. chunk RAG | 70–90% | Structured paths vs. raw text |
187
+ | Token reduction vs. chunk RAG | 70–90% (target; unvalidated) | Structured paths vs. raw text. Validate with `scripts/chunk_rag_token_compare.py` — quality-controlled (token reduction at *equal answer-bearing recall*, pinned chunk-RAG baseline) — driven by a gold-labeled QA dataset through the gated benchmark. |
188
188
 
189
189
  ## Current Status
190
190
 
@@ -2,6 +2,47 @@
2
2
 
3
3
  All notable Zaxy release changes are recorded here.
4
4
 
5
+ ## 2.4.0 - 2026-06-14
6
+
7
+ - **Portable signed memory export — EXPERIMENTAL / UNAUDITED, opt-in.** New
8
+ `zaxy.portable` module (install `zaxy-memory[export]`) for self-sovereign,
9
+ cryptographically-signed, verifiable memory export:
10
+ - Signed bundles: post-quantum **ML-DSA-65** (FIPS-204) primary, Ed25519
11
+ fallback; a domain-separated Merkle tree binds the entries and enables
12
+ **verifiable partial disclosure** (prove a subset without revealing the rest);
13
+ the signature binds the root and all metadata; public-key pinning.
14
+ - **Injection-resistant rehydration** of recalled content (data-not-instructions
15
+ fencing); opt-in `zaxy offload-get --fenced`.
16
+ - **Encryption envelope + cryptographic erasure** (per-cell AES-256-GCM, KEK
17
+ wrap, key-destruction erasure for GDPR Art.17) and capability-scoped sharing.
18
+ - Pluggable public anchor (offline stub + OpenTimestamps hook).
19
+ - CLI: `export-keygen`, `export`, `verify-export`.
20
+ > ⚠️ This is **experimental, unaudited** cryptographic code. It uses only vetted
21
+ > primitives (pyca/cryptography) and ships behind an opt-in extra with a loud
22
+ > import-time warning. **Do not rely on it for high-value secrets or compliance.**
23
+ > It has had an adversarial self-review (a layer, not a substitute for
24
+ > independent human review); see `docs/experimental/portable-export-security.md`.
25
+ - No changes to the default runtime, capture, recall, or existing MCP tools;
26
+ nothing in core imports `zaxy.portable`.
27
+
28
+ ## 2.3.4 - 2026-06-14
29
+
30
+ - **Opt-in full tool-I/O provenance (offload sink).** Default capture stays lean
31
+ (240-char excerpts, redacted args). With `ZAXY_OFFLOAD_TOOL_IO` enabled, the
32
+ full command output / tool arguments are also written to a content-addressed
33
+ blob under `<eventloom>/refs/`, and the lean event carries a `full_io_ref`
34
+ (`{ref, sha256, bytes}`). The blob id *is* its sha256 and lives inside the
35
+ Eventloom directory, so it is self-contained and tamper-evident (unlike the
36
+ foreign `codex_source_ref` pointers, which the hash chain can't attest to).
37
+ Context and `memory_checkout` still see only the summary; drill down on demand
38
+ with `zaxy offload-get <sha256>`. Arguments are secret-masked before offload.
39
+ This closes the provenance gap on tool I/O without touching token leanness.
40
+ - **Chunk-RAG token-reduction methodology** (`scripts/chunk_rag_token_compare.py`):
41
+ a quality-controlled harness that measures token reduction at *equal
42
+ answer-bearing recall* against a pinned chunk-RAG baseline, so the AGENTS.md
43
+ "70–90% vs chunk RAG" figure can be validated (it is now labeled an unvalidated
44
+ target pending a gated QA-dataset run) instead of asserted.
45
+
5
46
  ## 2.3.3 - 2026-06-13
6
47
 
7
48
  - Extended deterministic per-turn memory injection to **Codex**. Codex now ships
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: zaxy-memory
3
- Version: 2.3.3
3
+ Version: 2.4.0
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
@@ -48,6 +48,8 @@ Requires-Dist: twine>=5.0.0; extra == 'dev'
48
48
  Requires-Dist: types-pyyaml>=6.0.12; extra == 'dev'
49
49
  Requires-Dist: types-requests>=2.32.0; extra == 'dev'
50
50
  Provides-Extra: embedded
51
+ Provides-Extra: export
52
+ Requires-Dist: cryptography>=46.0; extra == 'export'
51
53
  Provides-Extra: frameworks
52
54
  Requires-Dist: autogen-agentchat>=0.7; extra == 'frameworks'
53
55
  Requires-Dist: crewai>=0.100; extra == 'frameworks'
@@ -0,0 +1,62 @@
1
+ # Portable Export — W3C Interop Conformance Mapping (dev target #3)
2
+
3
+ Status: **reference implementation, held for independent review. Not released.**
4
+
5
+ This maps Zaxy's signed portable-export implementation to the scope of the W3C
6
+ "AI Agent Memory Interoperability" Community Group (proposed 2026-05-18). **Full
7
+ conformance is intentionally deferred until the CG spec is finalized** — you
8
+ cannot conform to an unfinalized standard. The pieces below are built against the
9
+ *announced scope* and will be reconciled to exact field names / serialization once
10
+ the spec stabilizes.
11
+
12
+ | W3C CG scope item | Zaxy implementation | Status |
13
+ |---|---|---|
14
+ | Identity binding (post-quantum signatures, ML-DSA-65 / FIPS-204 reference) | `portable/signing.py` — ML-DSA-65 primary, Ed25519 classical fallback (vetted pyca) | ✅ built |
15
+ | Tamper-evident provenance | `portable/merkle.py` + `export.py` — domain-separated Merkle root, signed; verifiable subset disclosure | ✅ built |
16
+ | Memory cell shape (encrypted unit + metadata) | `portable/envelope.py` — per-cell AES-256-GCM | ⚠️ primitive built; canonical cell schema pending spec |
17
+ | Encryption envelope (per-cell DEK; KEK wrap; rotation) | `portable/envelope.py` — DEK + KEK wrap (local KEK; wallet-derived KEK deferred) | ⚠️ partial |
18
+ | Cryptographic erasure (DEK destroy + tombstone + content-address blacklist; GDPR Art.17) | `portable/envelope.py::ErasureVault` | ✅ built |
19
+ | Sharing contracts (temporary / permanent / syndicate + revocation) | `portable/envelope.py::Capability` | ✅ built (policy layer) |
20
+ | Audit anchor (public-chain receipts; operator-independent verifiability) | `portable/anchor.py` — pluggable; deterministic stub + OpenTimestamps hook | ⚠️ interface built; real public-chain anchor not wired |
21
+ | Serialization (JSON-first, optional CBOR) | JSON bundle implemented | ⚠️ CBOR deferred |
22
+
23
+ ## Trust model (no external authority required)
24
+ Self-sovereign: the exporter holds its own keypair; the public key (or a DID) is
25
+ the identity. No CA. Verifiers pin the key / trust-on-first-use. Operator-
26
+ independent verification is provided by the public-chain anchor (OpenTimestamps),
27
+ not a private signing authority. A managed "notary" service is a future product
28
+ layer, never a dependency.
29
+
30
+ ## Adversarial self-review (2026-06-14)
31
+
32
+ A structured red-team of the protocol logic (not a credentialed human audit).
33
+ Held: domain-separated Merkle blocks the duplicate-leaf forgery class
34
+ (CVE-2012-2459); the signature binds the root **and** all metadata; `verify_*`
35
+ fails closed on exceptions; per-cell DEKs avoid AES-GCM nonce reuse; the fence
36
+ escape prevents literal delimiter forgery.
37
+
38
+ **Fixed by this pass:**
39
+ - *Crypto-erasure invariant* — made explicit (see `ErasureVault` docstring): key
40
+ material must NEVER enter the immutable Eventloom, or erasure is a false claim.
41
+ - *`temporary` capability without expiry* now fails **closed** (was grant-forever).
42
+ - *`verify_*` now version-allow-lists* the bundle (rejects unknown versions).
43
+
44
+ **Residual caveats (documented, not yet addressed — for human review / later phases):**
45
+ - *Canonicalization*: signing uses sorted-key compact JSON; adopt JCS (RFC 8785)
46
+ and forbid floats/NaN to remove canonicalization ambiguity before production.
47
+ - *KEK nonce volume*: random 96-bit nonces are safe per-DEK (used once) but a KEK
48
+ wrapping many DEKs should rotate or use counter nonces beyond ~2^32 wraps.
49
+ - *Anchor stub*: `verify_anchor` on a `type: "stub"` anchor proves internal
50
+ consistency only — NOT external timestamping. Real assurance needs the
51
+ OpenTimestamps/public-chain hook.
52
+ - *Subset proof length* leaks an approximate total entry count (tree depth).
53
+ - *Rehydration (P2)* is defense-in-depth (semantic guard), explicitly NOT a
54
+ guarantee against indirect prompt injection.
55
+
56
+ ## Review gate
57
+ This is security-critical reference code using vetted primitives only. The
58
+ adversarial self-review above is a layer, **not** a substitute for independent
59
+ human review. For a resource-constrained project the proportionate path is:
60
+ ship clearly labeled `experimental / unaudited`, open it for community + W3C-CG
61
+ scrutiny, and pursue a formal audit only when usage/stakes warrant. Until then,
62
+ make no "audited/secure" claims. Nothing here has been published.
@@ -0,0 +1,95 @@
1
+ # Portable Export — Security Status & Review Requests
2
+
3
+ > ## ⚠️ EXPERIMENTAL · UNAUDITED
4
+ > The portable signed-export / rehydration / envelope code (`src/zaxy/portable/`)
5
+ > is a **reference implementation**. It has **not** had independent cryptographic
6
+ > review. **Do not rely on it to protect high-value secrets or for compliance
7
+ > guarantees.** No "audited" or "secure" claim is made. It lives on a feature
8
+ > branch and has not been released.
9
+
10
+ ## What is and isn't assured
11
+
12
+ **Assured by design / tests:**
13
+ - Only **vetted primitives** (pyca/cryptography): ML-DSA-65, Ed25519, AES-256-GCM,
14
+ SHA-256. No homegrown cryptographic primitives.
15
+ - Adversarial test suite (forge, tamper, drop, swapped-key, metadata-binding,
16
+ subset non-leakage, forged-proof, GCM auth-fail, key-destruction erasure,
17
+ capability expiry/revocation, anchor tamper-detection).
18
+ - An **adversarial self-review** of the protocol/composition logic
19
+ (see `portable-export-conformance.md`). This is a *layer*, **not** a substitute
20
+ for independent human review.
21
+
22
+ **Not assured (needs human review and/or later phases):**
23
+ - Protocol composition beyond the tested cases.
24
+ - Canonicalization is sorted-key compact JSON — not yet JCS (RFC 8785); floats
25
+ are a known canonicalization hazard.
26
+ - KEK nonce management at high volume; wallet-derived KEK not implemented.
27
+ - The public anchor ships as an offline **stub**; real OpenTimestamps/public-chain
28
+ anchoring is a hook, not wired. A stub anchor proves *consistency only*, not
29
+ external timestamping.
30
+ - W3C interop conformance is deferred until the spec (CG proposed 2026-05-18)
31
+ finalizes.
32
+
33
+ ## What it provides (threat model summary)
34
+ - **Authenticity + integrity** of an exported memory bundle (signature binds the
35
+ Merkle root and all metadata), with **self-sovereign** keys (no CA; pin the key
36
+ or use a DID; trust-on-first-use).
37
+ - **Verifiable partial disclosure**: prove a subset of entries belongs to the
38
+ signed set without revealing the rest.
39
+ - **Confidentiality + cryptographic erasure** of memory cells (per-cell DEK;
40
+ destroy-the-key erasure). **Invariant:** key material must never enter the
41
+ immutable Eventloom log, or erasure is void.
42
+ - **Injection-resistant rehydration**: defense-in-depth fencing of recalled
43
+ untrusted content — explicitly **not** a guarantee against prompt injection.
44
+
45
+ **Non-goals (v1):** CA/PKI federation, threshold/multi-party signing, confidential
46
+ compute, replay/rollback prevention beyond per-bundle nonce + timestamp.
47
+
48
+ ## Reporting issues
49
+ Found a flaw? Please open a private report (security contact / GitHub security
50
+ advisory) rather than a public issue, and allow reasonable time to fix. Since this
51
+ is pre-release experimental code, coordinated disclosure is appreciated but there
52
+ is no production deployment at risk.
53
+
54
+ ---
55
+
56
+ ## Review request — W3C AI Agent Memory Interoperability CG
57
+
58
+ > **Subject: Reference impl + review request — self-sovereign signed memory export (ML-DSA-65 + Merkle subset proofs)**
59
+ >
60
+ > Hi all — I've built an open, experimental reference implementation aligned with
61
+ > the CG's announced scope (identity binding via ML-DSA-65/FIPS-204, Merkle
62
+ > provenance with verifiable partial disclosure, per-cell encryption envelope,
63
+ > cryptographic erasure for GDPR Art.17, capability-scoped sharing). It's
64
+ > self-sovereign (no CA) with a public-chain anchor hook.
65
+ >
66
+ > It is **experimental and unaudited** — I'm a resource-constrained project and
67
+ > can't commission a formal audit, so I'd hugely value eyes on the *protocol/
68
+ > composition logic*: how the signature binds the Merkle root + metadata, the
69
+ > subset-disclosure proofs, and the crypto-erasure model in an append-only store.
70
+ > Vetted primitives only (pyca/cryptography); adversarial tests included.
71
+ >
72
+ > Repo + threat model: <link>. Happy to align field names/serialization to the
73
+ > spec as it stabilizes, and to contribute findings back. What have I gotten wrong?
74
+
75
+ ## Review request — crypto.stackexchange
76
+
77
+ > **Title: Is this composition sound? Signed Merkle-root memory bundle with verifiable subset disclosure + crypto-erasure**
78
+ >
79
+ > I have an experimental protocol for portable, signed agent-memory bundles and
80
+ > want to sanity-check the *composition* (primitives are pyca: ML-DSA-65/Ed25519,
81
+ > AES-256-GCM, SHA-256 — I'm not rolling my own).
82
+ >
83
+ > 1. A bundle's signature is computed over a canonical header that includes the
84
+ > Merkle root of the entries **plus** all metadata (version, alg, pubkey,
85
+ > session id, created-at, nonce). Is binding metadata-with-root this way
86
+ > sufficient to prevent metadata-swap / cross-bundle attacks?
87
+ > 2. Subset disclosure reveals chosen entries + Merkle inclusion proofs (leaf
88
+ > prefix `0x00`, node prefix `0x01`, unpaired nodes promoted not duplicated).
89
+ > Any forgery/second-preimage concern, given the proofs aren't position-bound?
90
+ > 3. "Cryptographic erasure" = destroy the (wrapped) DEK + tombstone + blacklist;
91
+ > ciphertext is otherwise immutable. Are there pitfalls beyond "ensure no other
92
+ > copy of the key survives"?
93
+ >
94
+ > Canonicalization is sorted-key compact JSON (I know JCS/RFC 8785 is the better
95
+ > answer). Threat model + code: <link>. Where does this break?
@@ -138,6 +138,32 @@ session, long tool run, or roadmap/status question, Zaxy appends
138
138
  the agent: call `memory_bootstrap` if awareness is unclear, then call
139
139
  `memory_checkout` and trust only cited current checkout facts.
140
140
 
141
+ ## Per-Turn Memory Injection (`UserPromptSubmit`)
142
+
143
+ Capture is deterministic, but recall used to be advisory: nothing re-injected the
144
+ memory contract into the model's context, so long sessions drifted. The
145
+ `UserPromptSubmit` hook closes that recall gap. On every turn it re-checks memory
146
+ freshness and, when memory is stale, injects a single terse declarative line that
147
+ names the session, how many events have passed since the last memory use, and the
148
+ recommended `memory_checkout`. When memory is fresh it stays silent and adds no
149
+ context noise. Wire it via:
150
+
151
+ ```bash
152
+ zaxy hooks claude-code --eventloom-path .eventloom --domain my-project
153
+ ```
154
+
155
+ Codex ships Claude-parity hooks, so the same `UserPromptSubmit` /
156
+ `additionalContext` injection works there too. `render_hook_config("codex")`
157
+ emits a `.codex/hooks.json` with the same per-turn recall behavior:
158
+
159
+ ```bash
160
+ zaxy hooks codex --eventloom-path .eventloom --domain my-project
161
+ ```
162
+
163
+ The injected line is plain prose rather than JSON or glyphs, and it is assembled
164
+ read-only from Eventloom-backed state, so it stays small enough to prepend to the
165
+ prompt verbatim without risking stale context after a checkout.
166
+
141
167
  Checkpoint hooks can include retrieval-useful metadata:
142
168
 
143
169
  ```bash
@@ -241,6 +267,23 @@ persist argument keys but not raw argument values. Transcript-turn observations
241
267
  sanitize content before append so they can serve as source-recall material
242
268
  without storing obvious secrets.
243
269
 
270
+ ### Tool-I/O Offload Provenance (`ZAXY_OFFLOAD_TOOL_IO`)
271
+
272
+ Default capture stays lean, so it truncates command output and keeps only tool
273
+ argument keys. When you need full, replayable provenance for tool I/O, set
274
+ `ZAXY_OFFLOAD_TOOL_IO`. The full command output or tool arguments are then written
275
+ to a content-addressed, tamper-evident blob under `<eventloom>/refs/` (the blob id
276
+ is its own sha256), and the lean event carries a `full_io_ref` pointer. Context
277
+ assembly and `memory_checkout` still see only the summary; drill down to the full
278
+ text on demand:
279
+
280
+ ```bash
281
+ zaxy offload-get <sha256>
282
+ ```
283
+
284
+ Offload is opt-in, and secret-looking argument values are still masked before the
285
+ blob is written, so the lean default and the privacy guarantees are preserved.
286
+
244
287
  ## Payload
245
288
 
246
289
  Hook events use actor `zaxy-hook` and append to the selected session log. The
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "zaxy-memory"
3
- version = "2.3.3"
3
+ version = "2.4.0"
4
4
  description = "Coordinator memory for auditable multi-agent projects"
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.11"
@@ -76,6 +76,11 @@ embedded = [
76
76
  latticedb = [
77
77
  "latticedb>=0.9.6",
78
78
  ]
79
+ export = [
80
+ # Portable signed export. Ed25519 works with the cryptography that PyJWT[crypto]
81
+ # already pulls in; ML-DSA-65 (post-quantum) requires cryptography >= 46.
82
+ "cryptography>=46.0",
83
+ ]
79
84
  frameworks = [
80
85
  "langgraph>=0.6",
81
86
  "crewai>=0.100",
@@ -52,6 +52,10 @@ def main() -> int:
52
52
 
53
53
  def build_pages() -> list[RenderedPage]:
54
54
  sources = [ROOT / "README.md", *sorted(DOCS_ROOT.rglob("*.md"))]
55
+ # docs/experimental/ is contributor-only (e.g. unreleased/experimental crypto)
56
+ # and must never be rendered into the public site.
57
+ experimental = DOCS_ROOT / "experimental"
58
+ sources = [s for s in sources if not is_relative_to(s, experimental)]
55
59
  return [render_page(source) for source in sources]
56
60
 
57
61
 
@@ -0,0 +1,166 @@
1
+ """Quality-controlled token-reduction methodology: structured cited memory vs chunk-RAG.
2
+
3
+ Dev target #2: the AGENTS.md Performance-Targets table states "Token reduction vs
4
+ chunk RAG: 70-90% (structured paths vs raw text)". That is an *unvalidated target*.
5
+ This module is the reproducible methodology to validate (or correct) it.
6
+
7
+ The trap this avoids: a raw token ratio is meaningless, because you can always
8
+ "save tokens" by retrieving less and answering worse. So every comparison is
9
+ **quality-controlled** — measured at EQUAL ANSWER-BEARING RECALL: both arms must
10
+ surface the gold answer span, and we count the tokens each needs to get there.
11
+
12
+ reduction = 1 - structured_tokens / chunkrag_tokens (over cases where BOTH reach gold)
13
+
14
+ The chunk-RAG baseline is pinned and reported (chunk size, ranking) so the ratio
15
+ is not gameable by quietly weakening the baseline.
16
+
17
+ Run `python3 scripts/chunk_rag_token_compare.py` for a self-test on a worked
18
+ example. To produce a *publishable* number, drive `compare_corpus()` with a real
19
+ QA dataset (e.g. LongMemEval) through the gated benchmark apparatus; the headline
20
+ number depends on workload and must be reported with both.
21
+ """
22
+
23
+ from __future__ import annotations
24
+
25
+ import re
26
+ from collections.abc import Callable
27
+ from dataclasses import dataclass
28
+
29
+ # Prefer a real BPE tokenizer when available (benchmark runs), but stay
30
+ # dependency-free otherwise: the methodology only needs a *consistent* tokenizer,
31
+ # since it compares token counts at equal recall between two arms.
32
+ _encode: Callable[[str], list]
33
+ _decode: Callable[[list], str]
34
+ try: # pragma: no cover - depends on optional install
35
+ import tiktoken
36
+
37
+ _ENC = tiktoken.get_encoding("cl100k_base")
38
+ _encode = _ENC.encode
39
+ _decode = _ENC.decode
40
+ TOKENIZER = "tiktoken/cl100k_base"
41
+ except Exception: # noqa: BLE001 - any import/runtime failure -> fallback
42
+ _encode = lambda s: s.split() # noqa: E731 - whitespace tokens
43
+ _decode = lambda t: " ".join(t) # noqa: E731
44
+ TOKENIZER = "whitespace-fallback"
45
+
46
+ DEFAULT_CHUNK_TOKENS = 512
47
+
48
+
49
+ def tokens(text: str) -> int:
50
+ return len(_encode(text))
51
+
52
+
53
+ def chunk_text(text: str, chunk_tokens: int = DEFAULT_CHUNK_TOKENS) -> list[str]:
54
+ toks = _encode(text)
55
+ return [_decode(toks[i : i + chunk_tokens]) for i in range(0, len(toks), chunk_tokens)]
56
+
57
+
58
+ def _kw(text: str) -> list[str]:
59
+ return re.findall(r"\w+", text.lower())
60
+
61
+
62
+ def _score(passage: str, query: str) -> int:
63
+ q = set(_kw(query))
64
+ return sum(1 for w in _kw(passage) if w in q)
65
+
66
+
67
+ def _tokens_to_gold(passages: list[str], query: str, gold: str) -> tuple[int, bool]:
68
+ """Greedily accumulate the highest-scoring passages until gold appears.
69
+
70
+ Returns (tokens_used, reached_gold). Pure keyword ranking — a standard,
71
+ embedding-free chunk-RAG baseline (note: vector-RAG could differ).
72
+ """
73
+ ranked = sorted(passages, key=lambda p: -_score(p, query))
74
+ used: list[str] = []
75
+ total = 0
76
+ gold_l = gold.lower()
77
+ for p in ranked:
78
+ used.append(p)
79
+ total += tokens(p)
80
+ if gold_l in " ".join(used).lower():
81
+ return total, True
82
+ return total, False
83
+
84
+
85
+ @dataclass
86
+ class CaseResult:
87
+ query: str
88
+ structured_tokens: int
89
+ chunkrag_tokens: int
90
+ both_reached: bool
91
+
92
+ @property
93
+ def reduction(self) -> float | None:
94
+ if not self.both_reached or self.chunkrag_tokens == 0:
95
+ return None
96
+ return 1 - self.structured_tokens / self.chunkrag_tokens
97
+
98
+
99
+ def compare_case(
100
+ *, query: str, gold: str, facts: list[str], raw_text: str, chunk_tokens: int = DEFAULT_CHUNK_TOKENS
101
+ ) -> CaseResult:
102
+ """One query: structured-cited retrieval vs chunk-RAG over raw_text, at equal recall."""
103
+ s_tok, s_ok = _tokens_to_gold(facts, query, gold)
104
+ c_tok, c_ok = _tokens_to_gold(chunk_text(raw_text, chunk_tokens), query, gold)
105
+ return CaseResult(query, s_tok, c_tok, s_ok and c_ok)
106
+
107
+
108
+ def compare_corpus(cases: list[dict], *, chunk_tokens: int = DEFAULT_CHUNK_TOKENS) -> dict:
109
+ """Run a corpus of {query, gold, facts, raw_text} cases. Returns aggregate stats.
110
+
111
+ Only cases where BOTH arms reach gold count toward the reduction (equal recall).
112
+ """
113
+ results = [compare_case(chunk_tokens=chunk_tokens, **c) for c in cases]
114
+ scored = [r for r in results if r.reduction is not None]
115
+ reductions = [r.reduction for r in scored]
116
+ return {
117
+ "baseline": {
118
+ "chunk_tokens": chunk_tokens,
119
+ "ranking": "keyword-overlap (embedding-free)",
120
+ "tokenizer": TOKENIZER,
121
+ },
122
+ "cases_total": len(results),
123
+ "cases_equal_recall": len(scored),
124
+ "median_reduction": (sorted(reductions)[len(reductions) // 2] if reductions else None),
125
+ "mean_reduction": (sum(reductions) / len(reductions) if reductions else None),
126
+ "per_case": [
127
+ {"query": r.query, "structured_tok": r.structured_tokens,
128
+ "chunkrag_tok": r.chunkrag_tokens, "reduction": r.reduction}
129
+ for r in results
130
+ ],
131
+ }
132
+
133
+
134
+ def _self_test_corpus() -> list[dict]:
135
+ """A worked example: a fact buried in verbose tool/dialogue text vs a compact card.
136
+
137
+ Illustrative only — the magnitude depends on raw verbosity, which is exactly why
138
+ a real run needs a QA dataset + the gated apparatus.
139
+ """
140
+ noise = ("INFO build step ok; cache warm; 0 warnings; retrying; " * 60)
141
+ raw = (
142
+ noise
143
+ + " The team decided the canonical session id is zaxy-default and froze the legacy zaxy session. "
144
+ + noise
145
+ + " Unrelated: the default graph backend for beta is Neo4j. "
146
+ + noise
147
+ )
148
+ facts = [
149
+ "[decision] canonical session id = zaxy-default; legacy 'zaxy' frozen. (eventloom://zaxy-default/events/77848)",
150
+ "[decision] default graph backend (beta) = Neo4j. (eventloom://zaxy-default/events/1200)",
151
+ "[goal] ship per-turn memory injection. (eventloom://zaxy-default/events/77889)",
152
+ ]
153
+ return [
154
+ {"query": "which session id is canonical", "gold": "zaxy-default", "facts": facts, "raw_text": raw},
155
+ {"query": "default graph backend for beta", "gold": "Neo4j", "facts": facts, "raw_text": raw},
156
+ ]
157
+
158
+
159
+ if __name__ == "__main__":
160
+ import json
161
+
162
+ out = compare_corpus(_self_test_corpus())
163
+ print(json.dumps(out, indent=2))
164
+ print("\nNOTE: self-test is illustrative. A publishable 'X% vs chunk-RAG' number "
165
+ "requires driving compare_corpus() with a real QA dataset (gold-labeled) "
166
+ "through the freeze/gate/audit apparatus, reported with workload + baseline.")
@@ -139,6 +139,12 @@ zaxy hook-event heartbeat --eventloom-path .eventloom --session-id my-project-de
139
139
  </table>
140
140
  <p>Unknown triggers are rejected before writing.</p>
141
141
  <p>Lifecycle hooks also run the memory persistence policy. If Zaxy has not been used recently, or the hook marks a session start, resume, compaction, long session, long tool run, or roadmap/status question, Zaxy appends <code>memory.reminder.suggested</code>. That event is intentionally read-only guidance for the agent: call <code>memory_bootstrap</code> if awareness is unclear, then call <code>memory_checkout</code> and trust only cited current checkout facts.</p>
142
+ <h2 id="per-turn-memory-injection-userpromptsubmit">Per-Turn Memory Injection (<code>UserPromptSubmit</code>)</h2>
143
+ <p>Capture is deterministic, but recall used to be advisory: nothing re-injected the memory contract into the model&#x27;s context, so long sessions drifted. The <code>UserPromptSubmit</code> hook closes that recall gap. On every turn it re-checks memory freshness and, when memory is stale, injects a single terse declarative line that names the session, how many events have passed since the last memory use, and the recommended <code>memory_checkout</code>. When memory is fresh it stays silent and adds no context noise. Wire it via:</p>
144
+ <pre><code class="language-bash">zaxy hooks claude-code --eventloom-path .eventloom --domain my-project</code></pre>
145
+ <p>Codex ships Claude-parity hooks, so the same <code>UserPromptSubmit</code> / <code>additionalContext</code> injection works there too. <code>render_hook_config(&quot;codex&quot;)</code> emits a <code>.codex/hooks.json</code> with the same per-turn recall behavior:</p>
146
+ <pre><code class="language-bash">zaxy hooks codex --eventloom-path .eventloom --domain my-project</code></pre>
147
+ <p>The injected line is plain prose rather than JSON or glyphs, and it is assembled read-only from Eventloom-backed state, so it stays small enough to prepend to the prompt verbatim without risking stale context after a checkout.</p>
142
148
  <p>Checkpoint hooks can include retrieval-useful metadata:</p>
143
149
  <pre><code class="language-bash">zaxy hook-event checkpoint \
144
150
  --eventloom-path .eventloom \
@@ -204,6 +210,10 @@ zaxy hook-event transcript-turn \
204
210
  }</code></pre>
205
211
  <p>Any harness with a post-compaction or resume hook can use the same command; the packet is plain text bracketed by <code>=== ZAXY RECOVERY PACKET ... ===</code> markers. <code>zaxy doctor</code> complements the loop with hash-chain, projection freshness, embedding-dimension, and vector-cache headroom checks so a resumed session can trust what it recovers.</p>
206
212
  <p>Command observations redact common secret-bearing arguments and bound stdout and stderr excerpts. File-edit observations persist path, operation, summary, and line count metadata; they do not persist source content. Tool-call observations persist argument keys but not raw argument values. Transcript-turn observations sanitize content before append so they can serve as source-recall material without storing obvious secrets.</p>
213
+ <h3 id="tool-io-offload-provenance-zaxyoffloadtoolio">Tool-I/O Offload Provenance (<code>ZAXY_OFFLOAD_TOOL_IO</code>)</h3>
214
+ <p>Default capture stays lean, so it truncates command output and keeps only tool argument keys. When you need full, replayable provenance for tool I/O, set <code>ZAXY_OFFLOAD_TOOL_IO</code>. The full command output or tool arguments are then written to a content-addressed, tamper-evident blob under <code>&lt;eventloom&gt;/refs/</code> (the blob id is its own sha256), and the lean event carries a <code>full_io_ref</code> pointer. Context assembly and <code>memory_checkout</code> still see only the summary; drill down to the full text on demand:</p>
215
+ <pre><code class="language-bash">zaxy offload-get &lt;sha256&gt;</code></pre>
216
+ <p>Offload is opt-in, and secret-looking argument values are still masked before the blob is written, so the lean default and the privacy guarantees are preserved.</p>
207
217
  <h2 id="payload">Payload</h2>
208
218
  <p>Hook events use actor <code>zaxy-hook</code> and append to the selected session log. The payload is intentionally small:</p>
209
219
  <pre><code class="language-json">{
@@ -62,7 +62,7 @@
62
62
  </section>
63
63
 
64
64
  <section class="proof-strip" aria-label="Project status">
65
- <span>PyPI 2.3.1</span>
65
+ <span>PyPI 2.4.0</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.3.1 - MIT</span>
337
+ <span>Zaxy v2.4.0 - 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>