engraphis 1.7__tar.gz → 1.7.3__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.
- {engraphis-1.7 → engraphis-1.7.3}/BENCHMARKS.md +4 -4
- {engraphis-1.7 → engraphis-1.7.3}/CHANGELOG.md +118 -10
- {engraphis-1.7 → engraphis-1.7.3}/MANIFEST.in +2 -0
- {engraphis-1.7 → engraphis-1.7.3}/PKG-INFO +24 -8
- {engraphis-1.7 → engraphis-1.7.3}/README.md +20 -4
- engraphis-1.7.3/docs/CODING_ACCEPTANCE_CORPUS.md +159 -0
- engraphis-1.7.3/docs/ENGINE_CAPACITY_PROTOCOL.md +177 -0
- engraphis-1.7.3/docs/PAID_EVALUATION_PROPOSAL.md +111 -0
- engraphis-1.7.3/docs/REWORK_EXECUTION.md +139 -0
- engraphis-1.7.3/docs/images/context-efficiency.svg +161 -0
- {engraphis-1.7 → engraphis-1.7.3}/engraphis/__init__.py +2 -2
- {engraphis-1.7 → engraphis-1.7.3}/engraphis/backends/embedder_st.py +12 -0
- {engraphis-1.7 → engraphis-1.7.3}/engraphis/backends/encrypted_db.py +14 -4
- {engraphis-1.7 → engraphis-1.7.3}/engraphis/backends/vector_numpy.py +8 -52
- {engraphis-1.7 → engraphis-1.7.3}/engraphis/backends/vector_sqlitevec.py +20 -39
- engraphis-1.7.3/engraphis/build_info.py +42 -0
- {engraphis-1.7/engraphis/static → engraphis-1.7.3/engraphis/classic_assets}/dashboard.js +26 -17
- {engraphis-1.7 → engraphis-1.7.3}/engraphis/classic_assets/index.html +1 -1
- {engraphis-1.7 → engraphis-1.7.3}/engraphis/cloud_features.py +30 -25
- {engraphis-1.7 → engraphis-1.7.3}/engraphis/commercial.py +13 -0
- {engraphis-1.7 → engraphis-1.7.3}/engraphis/commercial_manifest.json +12 -3
- {engraphis-1.7 → engraphis-1.7.3}/engraphis/core/__init__.py +8 -0
- engraphis-1.7.3/engraphis/core/browsing.py +165 -0
- {engraphis-1.7 → engraphis-1.7.3}/engraphis/core/context.py +200 -121
- engraphis-1.7.3/engraphis/core/diagnostics.py +32 -0
- {engraphis-1.7 → engraphis-1.7.3}/engraphis/core/engine.py +432 -289
- {engraphis-1.7 → engraphis-1.7.3}/engraphis/core/graph_scene.py +150 -42
- {engraphis-1.7 → engraphis-1.7.3}/engraphis/core/graphrank.py +45 -35
- {engraphis-1.7 → engraphis-1.7.3}/engraphis/core/grounded.py +66 -66
- {engraphis-1.7 → engraphis-1.7.3}/engraphis/core/interfaces.py +9 -0
- engraphis-1.7.3/engraphis/core/mutations.py +178 -0
- engraphis-1.7.3/engraphis/core/read_snapshots.py +206 -0
- {engraphis-1.7 → engraphis-1.7.3}/engraphis/core/recall.py +71 -27
- {engraphis-1.7 → engraphis-1.7.3}/engraphis/core/resolve.py +45 -1
- {engraphis-1.7 → engraphis-1.7.3}/engraphis/core/retrieval_policy.py +2 -2
- {engraphis-1.7 → engraphis-1.7.3}/engraphis/core/schema.py +140 -1
- {engraphis-1.7 → engraphis-1.7.3}/engraphis/core/secrets.py +122 -8
- {engraphis-1.7 → engraphis-1.7.3}/engraphis/core/store.py +297 -9
- {engraphis-1.7 → engraphis-1.7.3}/engraphis/core/sync.py +66 -70
- engraphis-1.7.3/engraphis/core/vector_repair.py +208 -0
- engraphis-1.7.3/engraphis/core/vector_search.py +55 -0
- {engraphis-1.7 → engraphis-1.7.3}/engraphis/dashboard_app.py +14 -1
- engraphis-1.7.3/engraphis/dashboard_assets/ask-requests.js +105 -0
- {engraphis-1.7 → engraphis-1.7.3}/engraphis/dashboard_assets/engraphis-graph-every.js +31 -5
- {engraphis-1.7 → engraphis-1.7.3}/engraphis/dashboard_assets/engraphis-graph.js +746 -121
- engraphis-1.7.3/engraphis/dashboard_assets/graph-lifecycle.js +105 -0
- {engraphis-1.7 → engraphis-1.7.3}/engraphis/dashboard_assets/index.html +158 -43
- {engraphis-1.7 → engraphis-1.7.3}/engraphis/dashboard_assets/ledger.css +7 -1
- {engraphis-1.7 → engraphis-1.7.3}/engraphis/dashboard_assets/ledger.js +539 -176
- engraphis-1.7.3/engraphis/dashboard_assets/managed-processing.js +82 -0
- engraphis-1.7.3/engraphis/dashboard_assets/memory-history.js +111 -0
- engraphis-1.7.3/engraphis/dashboard_assets/memory-revision.js +34 -0
- engraphis-1.7.3/engraphis/dashboard_assets/memory-workflow.css +61 -0
- engraphis-1.7.3/engraphis/dashboard_assets/workflow-context.js +168 -0
- engraphis-1.7.3/engraphis/managed_processing.py +106 -0
- {engraphis-1.7 → engraphis-1.7.3}/engraphis/mcp_server.py +177 -27
- {engraphis-1.7 → engraphis-1.7.3}/engraphis/routes/v2_api.py +193 -54
- {engraphis-1.7 → engraphis-1.7.3}/engraphis/service.py +354 -86
- engraphis-1.7.3/engraphis/service_context.py +58 -0
- {engraphis-1.7/engraphis/classic_assets → engraphis-1.7.3/engraphis/static}/dashboard.js +26 -17
- {engraphis-1.7 → engraphis-1.7.3}/engraphis/static/index.html +1 -1
- {engraphis-1.7 → engraphis-1.7.3}/engraphis.egg-info/PKG-INFO +24 -8
- {engraphis-1.7 → engraphis-1.7.3}/engraphis.egg-info/SOURCES.txt +68 -0
- {engraphis-1.7 → engraphis-1.7.3}/engraphis.egg-info/requires.txt +3 -3
- engraphis-1.7.3/eval/capacity_matrix.py +336 -0
- engraphis-1.7.3/eval/coding_acceptance.py +234 -0
- engraphis-1.7.3/eval/datasets/resolver_write_acceptance.jsonl +12 -0
- engraphis-1.7.3/eval/engine_capacity.py +493 -0
- engraphis-1.7.3/eval/fts_insert_scaling.py +102 -0
- engraphis-1.7.3/eval/native_coverage_scaling.py +166 -0
- engraphis-1.7.3/eval/repair_discovery.py +179 -0
- engraphis-1.7.3/eval/resolver_reworded_corrections.py +297 -0
- engraphis-1.7.3/eval/rework_statistics.py +26 -0
- engraphis-1.7.3/eval/task_pairs.py +218 -0
- {engraphis-1.7 → engraphis-1.7.3}/eval/vector_scale.py +45 -0
- engraphis-1.7.3/eval/vector_scale_storage.py +429 -0
- engraphis-1.7.3/eval/vector_scan_plan.py +141 -0
- {engraphis-1.7 → engraphis-1.7.3}/pyproject.toml +4 -4
- {engraphis-1.7 → engraphis-1.7.3}/scripts/check_commercial_manifest.py +12 -1
- engraphis-1.7.3/scripts/export_mcp_contract.py +68 -0
- {engraphis-1.7 → engraphis-1.7.3}/scripts/init.py +154 -28
- engraphis-1.7.3/scripts/installation_profile.py +64 -0
- {engraphis-1.7 → engraphis-1.7.3}/scripts/update.py +22 -6
- {engraphis-1.7 → engraphis-1.7.3}/scripts/verify_distribution_contents.py +17 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_backends_factories.py +46 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_benchmark_evidence.py +120 -63
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_bitemporal_recall.py +21 -1
- engraphis-1.7.3/tests/test_browse_portable.py +252 -0
- engraphis-1.7.3/tests/test_capacity_matrix.py +133 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_cloud_features.py +36 -69
- engraphis-1.7.3/tests/test_coding_acceptance.py +114 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_context_economy.py +3 -2
- engraphis-1.7.3/tests/test_context_evidence_preservation.py +165 -0
- engraphis-1.7.3/tests/test_context_packer.py +247 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_context_packing.py +17 -13
- engraphis-1.7.3/tests/test_context_scope_grounding.py +266 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_dashboard_auth_placement.py +31 -25
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_dashboard_v2.py +71 -5
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_decay_idempotent.py +9 -1
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_documentation_contracts.py +18 -7
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_encrypted_store.py +22 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_engine.py +1 -1
- engraphis-1.7.3/tests/test_engine_capacity.py +84 -0
- engraphis-1.7.3/tests/test_fts_insert_scaling.py +13 -0
- engraphis-1.7.3/tests/test_galaxy_operating_bounds.py +235 -0
- engraphis-1.7.3/tests/test_governed_concurrency.py +307 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_graph_engine_asset.py +315 -21
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_graph_explorer_v2.py +29 -2
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_graph_scene_contract.py +2 -2
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_grounded.py +3 -2
- engraphis-1.7.3/tests/test_history_scope.py +184 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_hosted_plan_resolution.py +29 -2
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_init.py +135 -0
- engraphis-1.7.3/tests/test_installation_profile.py +54 -0
- engraphis-1.7.3/tests/test_ledger_sliders_and_physics.py +520 -0
- engraphis-1.7.3/tests/test_live_read_snapshots.py +308 -0
- engraphis-1.7.3/tests/test_managed_processing_policy.py +479 -0
- engraphis-1.7.3/tests/test_manual_graph_probe.py +40 -0
- engraphis-1.7.3/tests/test_mcp_contract.py +90 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_mcp_server.py +155 -0
- engraphis-1.7.3/tests/test_memory_browsing.py +134 -0
- engraphis-1.7.3/tests/test_memory_revisions.py +276 -0
- engraphis-1.7.3/tests/test_native_coverage_equivalence.py +60 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_obsidian_import_schema.py +4 -4
- engraphis-1.7.3/tests/test_pro_cta.py +117 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_recall.py +41 -0
- engraphis-1.7.3/tests/test_recall_narrow_arm_opt_in.py +195 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_release_evidence.py +2 -2
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_release_infrastructure.py +1 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_release_write_path.py +24 -0
- engraphis-1.7.3/tests/test_repair_discovery_probe.py +35 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_resolve.py +68 -0
- engraphis-1.7.3/tests/test_resolver_acceptance.py +107 -0
- engraphis-1.7.3/tests/test_resource_import_atomicity.py +354 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_retrieval_policy.py +3 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_secret_hygiene.py +18 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_secrets_edge_cases.py +12 -0
- engraphis-1.7.3/tests/test_service_context.py +70 -0
- engraphis-1.7.3/tests/test_startup_transform_gates.py +116 -0
- engraphis-1.7.3/tests/test_storage_concurrency_repair.py +756 -0
- engraphis-1.7.3/tests/test_store_fts_insert.py +167 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_sync.py +2 -2
- engraphis-1.7.3/tests/test_sync_index_repair.py +405 -0
- engraphis-1.7.3/tests/test_task_pairs.py +103 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_update.py +72 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_vector_numpy.py +2 -2
- engraphis-1.7.3/tests/test_vector_repair_discovery.py +275 -0
- engraphis-1.7.3/tests/test_vector_scale_storage.py +104 -0
- engraphis-1.7.3/tests/test_vector_scan_plan.py +15 -0
- engraphis-1.7.3/tests/test_vector_snapshot_plan.py +81 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_vector_sqlitevec_backend.py +106 -0
- engraphis-1.7.3/tests/test_workflow_diagnostics.py +101 -0
- engraphis-1.7/docs/images/context-efficiency.svg +0 -41
- engraphis-1.7/eval/resolver_reworded_corrections.py +0 -163
- engraphis-1.7/tests/test_pro_cta.py +0 -54
- {engraphis-1.7 → engraphis-1.7.3}/.env.example +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/Dockerfile +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/LICENSE +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/NOTICE +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/deploy/force-graph-1.51.4.licenses.json +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/deploy/force-graph-1.51.4.yarn.lock +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/docker-compose.lan.yml +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/docker-compose.yml +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/docker-entrypoint.sh +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/docs/DOCUMENT_IMPORT.md +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/docs/OBSIDIAN_IMPORT.md +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/docs/RECALL_RECOVERY.md +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/engraphis/ai_context.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/engraphis/app.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/engraphis/backends/__init__.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/engraphis/backends/codegraph.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/engraphis/backends/embedder_api.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/engraphis/backends/embedder_deterministic.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/engraphis/backends/extractor.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/engraphis/backends/graph_extractor.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/engraphis/backends/model_source.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/engraphis/backends/postgres_schema.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/engraphis/backends/query_planner.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/engraphis/backends/reranker.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/engraphis/backends/resources.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/engraphis/backends/retention.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/engraphis/backends/sync_folder.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/engraphis/backends/sync_relay.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/engraphis/classic_assets/__init__.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/engraphis/classic_assets/dashboard.css +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/engraphis/classic_assets/engraphis-graph.js +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/engraphis/classic_assets/engraphis-icon.png +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/engraphis/classic_assets/engraphis.ico +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/engraphis/classic_assets/favicon-32.png +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/engraphis/classic_assets/vendor/d3.LICENSE +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/engraphis/classic_assets/vendor/d3.min.js +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/engraphis/classic_assets/vendor/force-graph.LICENSE +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/engraphis/classic_assets/vendor/force-graph.min.js +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/engraphis/classic_assets/vendor/marked.LICENSE +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/engraphis/classic_assets/vendor/marked.min.js +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/engraphis/classic_assets/vendor/purify.min.js +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/engraphis/cloud_authz.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/engraphis/cloud_session.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/engraphis/config.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/engraphis/core/adaptive_context.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/engraphis/core/codegraph_export.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/engraphis/core/conflicts.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/engraphis/core/consolidate.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/engraphis/core/documents.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/engraphis/core/fsutil.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/engraphis/core/graph_layers.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/engraphis/core/graph_policy.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/engraphis/core/ids.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/engraphis/core/obsidian.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/engraphis/core/poisoning.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/engraphis/core/query_planner.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/engraphis/core/retention_policy.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/engraphis/core/savings.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/engraphis/core/scoring.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/engraphis/core/textutil.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/engraphis/core/user_model.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/engraphis/dashboard_assets/__init__.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/engraphis/dashboard_assets/engraphis-graph-compat.js +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/engraphis/dashboard_assets/engraphis-graph-every-worker.js +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/engraphis/dashboard_assets/engraphis-icon.png +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/engraphis/dashboard_assets/engraphis-spacetime.js +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/engraphis/dashboard_assets/engraphis.ico +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/engraphis/dashboard_assets/favicon-32.png +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/engraphis/dashboard_assets/vendor/d3.LICENSE +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/engraphis/dashboard_assets/vendor/d3.min.js +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/engraphis/dashboard_assets/vendor/force-graph.LICENSE +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/engraphis/dashboard_assets/vendor/force-graph.min.js +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/engraphis/dashboard_assets/vendor/manifest.json +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/engraphis/device_connect.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/engraphis/document_import.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/engraphis/engines/__init__.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/engraphis/engines/embedder.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/engraphis/engines/ingest.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/engraphis/engines/intelligence.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/engraphis/engines/recall.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/engraphis/engines/reweight.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/engraphis/engines/thoughts.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/engraphis/factory.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/engraphis/graphdata.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/engraphis/hosted_client.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/engraphis/http_security.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/engraphis/inspector/__init__.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/engraphis/inspector/app.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/engraphis/licensing.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/engraphis/llm/__init__.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/engraphis/llm/client.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/engraphis/local_auth.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/engraphis/logging_setup.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/engraphis/mcp_classic_cli.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/engraphis/mcp_cli.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/engraphis/mcp_http_cli.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/engraphis/models.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/engraphis/netutil.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/engraphis/observability.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/engraphis/obsidian_import.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/engraphis/private_state.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/engraphis/read_only_api.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/engraphis/redirector.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/engraphis/routes/__init__.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/engraphis/routes/memory.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/engraphis/routes/vault.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/engraphis/static/__init__.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/engraphis/static/dashboard.css +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/engraphis/static/engraphis-graph.js +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/engraphis/static/engraphis-icon.png +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/engraphis/static/engraphis.ico +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/engraphis/static/favicon-32.png +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/engraphis/static/vendor/d3.LICENSE +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/engraphis/static/vendor/d3.min.js +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/engraphis/static/vendor/force-graph.LICENSE +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/engraphis/static/vendor/force-graph.min.js +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/engraphis/static/vendor/marked.LICENSE +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/engraphis/static/vendor/marked.min.js +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/engraphis/static/vendor/purify.min.js +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/engraphis/stores/__init__.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/engraphis/stores/graph.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/engraphis/stores/ledger.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/engraphis/stores/vaults.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/engraphis/stores/vectors.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/engraphis/update_check.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/engraphis.egg-info/dependency_links.txt +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/engraphis.egg-info/entry_points.txt +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/engraphis.egg-info/top_level.txt +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/eval/BASELINES.md +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/eval/EVIDENCE.md +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/eval/__init__.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/eval/ablation.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/eval/adversarial_memory_security.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/eval/agent_benchmarks.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/eval/benchmark.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/eval/chunking_eval.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/eval/code_agent_ab.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/eval/code_arm.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/eval/configs/longmemeval_v2_engraphis.json +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/eval/configs/longmemeval_v2_engraphis_planner.json +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/eval/configs/longmemeval_v2_engraphis_planner_type_limits.json +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/eval/configs/longmemeval_v2_engraphis_type_limits.json +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/eval/consolidation_ranking.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/eval/context_economy.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/eval/context_efficiency_guardrails.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/eval/datasets/adversarial.jsonl +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/eval/datasets/code_arm.jsonl +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/eval/datasets/codemem.jsonl +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/eval/datasets/consolidation_ranking.jsonl +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/eval/datasets/context_routing_stress.jsonl +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/eval/datasets/graph_layer_routing.jsonl +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/eval/datasets/graph_multihop.jsonl +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/eval/datasets/grounded_distractors.jsonl +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/eval/datasets/handoff_quality.jsonl +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/eval/datasets/locomo10_repair_manifest.json +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/eval/datasets/longdoc.jsonl +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/eval/datasets/proactive_ranking.jsonl +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/eval/datasets/redteam_poisoning.jsonl +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/eval/datasets/resolver_reworded_corrections.jsonl +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/eval/datasets/sample.jsonl +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/eval/external.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/eval/extractor_quality.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/eval/graph_every_bench.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/eval/graph_traversal.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/eval/grounded.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/eval/handoff_quality.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/eval/harness.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/eval/hosted_evidence.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/eval/hosted_ledger.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/eval/hosted_luna.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/eval/longmemeval_v2.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/eval/longmemeval_v2_evidence.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/eval/longmemeval_v2_matrix.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/eval/metrics.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/eval/performance.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/eval/planned_recall.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/eval/proactive_ranking.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/eval/productivity.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/eval/public_readiness.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/eval/redteam_poisoning.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/eval/reinforcement.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/eval/resource_hierarchy.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/eval/run_longmemeval_v2.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/railway.json +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/requirements.txt +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/scripts/__init__.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/scripts/approve_memory.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/scripts/backfill_graph.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/scripts/check_codeql_sarif.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/scripts/cli.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/scripts/connect.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/scripts/consolidate.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/scripts/entry.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/scripts/externalize_dashboard_assets.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/scripts/graph_cli.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/scripts/graph_server.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/scripts/importer.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/scripts/inspector.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/scripts/install_cc_hook.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/scripts/install_prime_agent.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/scripts/install_shortcuts.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/scripts/legacy_reference.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/scripts/mcp_server_http.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/scripts/migrate_to_v2.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/scripts/normalize_sdist.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/scripts/release_evidence.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/scripts/repair_embed_dim.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/scripts/rescan_poisoning.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/scripts/run_public_benchmark.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/scripts/sdk_compat.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/scripts/seed_from_obsidian.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/scripts/smoke_entry_points.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/scripts/start_dashboard.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/scripts/start_server.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/scripts/sync.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/scripts/test_routes.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/scripts/validate_compose_contract.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/scripts/verify_release_artifacts.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/scripts/watch_repo.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/setup.cfg +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/setup.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/__init__.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/conftest.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_adaptive_context.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_adaptive_context_route.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_agent_connect.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_app_auth.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_artifact_smoke.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_benchmark_adversarial.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_benchmark_longmemeval_v2.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_bounded_uploads.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_canonical_export.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_chunking_eval.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_chunking_extractor.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_cli_entrypoints.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_client_launch.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_cloud_session.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_code_agent_ab.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_code_index_route_security.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_code_recall_arm.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_codegraph.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_codeql_sarif_gate.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_commercial_hardening.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_compact_recall.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_config.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_conflict_repair.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_conflicts.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_consolidate.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_consolidate_recall.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_consolidation_loop.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_context_efficiency_guardrails.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_core_ids.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_core_store.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_cron_write_tools_workspace_default.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_customer_node_hardening.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_dashboard_button_regressions.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_dashboard_dream_ui.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_dashboard_security_headers_and_open_window.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_dashboard_vendor_assets.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_db_path_default.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_deployment_mode_isolation.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_device_connect.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_document_import_cli.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_document_importer.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_documents.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_embedder_threading.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_embeddings.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_encryption_dependency.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_entity_resolution.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_envelope_additions_v16.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_eval_ablation.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_eval_adversarial_memory_security.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_eval_agent_benchmarks.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_eval_code_arm.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_eval_consolidation_ranking.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_eval_external.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_eval_external_locomo_evidence.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_eval_graph_traversal.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_eval_grounded.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_eval_harness.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_eval_performance.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_eval_redteam_poisoning.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_eval_reinforcement.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_externalize_dashboard_assets.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_extractor.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_fsutil.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_galaxy_gravity_floor.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_galaxy_gravity_slider.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_galaxy_gravity_slider_no_dead_zone.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_graph_cli.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_graph_every_asset.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_graph_extractor.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_graph_server.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_graph_trust_backfill.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_graphdata.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_graphrank.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_hosted_client.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_hosted_evidence.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_hosted_ledger.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_hosted_luna.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_hotfix_security.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_http_security.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_import_chunking.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_import_error_redaction.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_ingest_entities.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_inspector.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_inspector_pro.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_install_cc_hook.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_install_shortcuts.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_intelligence.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_intent_paywall.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_legacy_reference_surface.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_licensing_boundary_docs.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_licensing_launch.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_llm_config.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_llm_dashboard.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_local_auth_browser_session.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_local_isolation.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_logging_setup.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_longmemeval_v2_evidence.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_longmemeval_v2_matrix.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_mcp_annotation_idempotency.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_memory_routes_fixes.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_merge.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_metadata_activity_forgery.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_migration.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_netutil.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_observability.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_obsidian_cli.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_obsidian_importer.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_obsidian_parser.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_obsidian_service.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_packaging.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_parse_provider_chain.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_personal_folders.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_planned_recall.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_planned_recall_eval.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_poisoning.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_postgres_schema.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_private_state_boundaries.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_proactive_context.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_proactive_ranking.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_productivity_eval.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_protocol_upgrades.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_provenance_flags.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_provider_docs.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_provider_error_redaction.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_public_benchmark_workflow.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_public_readiness.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_public_research_boundary.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_public_retrieval_benchmark_workflow.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_railway_runtime.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_read_only_api.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_ready.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_recall_arm_candidate_k_cap.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_recall_entity_workspace_widening.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_recall_recovery.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_recall_release.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_receipts.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_relay_device_credentials.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_release_artifacts.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_release_grounded_eval.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_release_manifest_gate.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_release_proactive_divergence.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_release_py39_parity.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_release_recall_contract.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_remember_atomicity.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_remember_many.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_reproducible_sdist.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_rescan_poisoning.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_resource_hierarchy_eval.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_resources.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_retention.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_retention_policy.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_round17_fixes.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_run_public_benchmark.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_savings.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_scoring.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_screen_demo.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_security_fixes.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_service.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_service_graph.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_service_isolation.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_session_idempotent.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_session_start_hook.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_setup_plugin_distribution.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_skill_package.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_slider_response.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_smart_mcp_gateway.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_start_dashboard.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_start_session_workspace_default.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_store_class_integrity.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_store_v4_migration.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_sync_cli.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_sync_dashboard.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_sync_e2ee.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_sync_tombstones.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_update_check.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_user_model.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_v1_auto_migrate.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_v1_hardening.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_v1_ingest_trust.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_v1_licensing.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_v2_service_binding.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_vector_scale.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_workspace_isolation.py +0 -0
- {engraphis-1.7 → engraphis-1.7.3}/tests/test_workspace_ops.py +0 -0
|
@@ -11,12 +11,12 @@ For the locked operator sequence for a public canonical run, see
|
|
|
11
11
|
Every exact public aggregate retained below comes from the checked-in, public-safe
|
|
12
12
|
[`offline-fixtures-v1.json`](docs/benchmark-evidence/offline-fixtures-v1.json) artifact. Its
|
|
13
13
|
SHA-256 is
|
|
14
|
-
`
|
|
14
|
+
`4d5056d137182ae5cf116c5d59af18b38a7a0ed7731885e9597f63e549cb46b7`, also recorded in the
|
|
15
15
|
adjacent `.sha256` file. The artifact contains no raw questions, answers, prompts, customer data,
|
|
16
16
|
or per-record content fingerprints.
|
|
17
17
|
|
|
18
18
|
The fixture-suite digest is
|
|
19
|
-
`
|
|
19
|
+
`f5544b56f009b2fc16dbae992039971899daf2b0095ee8d15bad5914c7f399a9`. The artifact defines
|
|
20
20
|
the digest algorithm and records the SHA-256 of every suite and dataset file. Each evidence ID
|
|
21
21
|
also binds its exact command through `sha256(UTF-8 exact command)`:
|
|
22
22
|
|
|
@@ -72,8 +72,8 @@ frontier-model QA score.
|
|
|
72
72
|
JSON-safe schema. Payload proxies are sampled once per question, independently of the number
|
|
73
73
|
of timed iterations; they are not serialized MCP envelopes or transport responses. In the
|
|
74
74
|
registered CodeMem run, 26 payload samples total **23,810** full-proxy
|
|
75
|
-
`engraphis.regex.v1` tokens versus **10,
|
|
76
|
-
tokens (**
|
|
75
|
+
`engraphis.regex.v1` tokens versus **10,982** compact-proxy tokens, avoiding **12,828** proxy
|
|
76
|
+
tokens (**53.88% lower**), while 260 recalls are timed. Packed context across the same 26
|
|
77
77
|
samples averages **85.38** tokens and reaches **108** under a 1,500-token cap; Recall@5,
|
|
78
78
|
hit@5, and answer-token recall remain 1.000. These aggregates are evidence ID
|
|
79
79
|
`offline-performance` in the registry above. `--filler-memories`, `--candidate-k`, and
|
|
@@ -1,7 +1,114 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
-
All notable changes to Engraphis are documented here. Format loosely follows
|
|
4
|
-
[Keep a Changelog](https://keepachangelog.com/); versions use SemVer.
|
|
3
|
+
All notable changes to Engraphis are documented here. Format loosely follows
|
|
4
|
+
[Keep a Changelog](https://keepachangelog.com/); versions use SemVer.
|
|
5
|
+
|
|
6
|
+
## [Unreleased]
|
|
7
|
+
|
|
8
|
+
- Added schema 18 content-free command receipts and cross-process source revalidation for
|
|
9
|
+
corrections, approvals, promotions and merges. Combined memory revisions have expected
|
|
10
|
+
versions, operation IDs, atomic metadata/history, and typed conflicts.
|
|
11
|
+
- Sync publication uses current canonical state and generation-aware repair; delayed work
|
|
12
|
+
cannot restore erased vectors. Native-index failures roll back canonical changes.
|
|
13
|
+
- Context retains distinct scoped evidence; synthesis falls back when complete source
|
|
14
|
+
units, titles, values or conditions are lost. Answer coverage defaults to unknown.
|
|
15
|
+
- Added project-aware memory workflows and paginated record history.
|
|
16
|
+
- Library cursors survive unrelated activity and work across processes. File-backed
|
|
17
|
+
browsing uses bounded live read snapshots; completed graph migrations are not
|
|
18
|
+
repeated at ordinary startup.
|
|
19
|
+
- Ask separates answer/preview retries, cancellation and answer coverage. Home uses
|
|
20
|
+
actionable review state; Explore pauses hidden views through existing renderers.
|
|
21
|
+
- Added content-free diagnostics and build/capability information, strict coding
|
|
22
|
+
acceptance validation and a file-backed independent-process capacity harness.
|
|
23
|
+
These provide measurement infrastructure, not verified 100k capacity claims.
|
|
24
|
+
|
|
25
|
+
## [1.7.3] - 2026-09-07
|
|
26
|
+
|
|
27
|
+
### Fixed
|
|
28
|
+
|
|
29
|
+
- Preserved Galaxy carrier lane and kinematic orbit invariants through central-field slider
|
|
30
|
+
changes, including the global and core cached radii used by the next fixed slice.
|
|
31
|
+
- Refreshed the retained local orbital speed budget when the effective local-gravity control
|
|
32
|
+
changes, preventing a stale phase cache from masking the slider.
|
|
33
|
+
- Kept high-density Galaxy layouts inside the strict speed cap while maintaining authored
|
|
34
|
+
carrier and nested local orbit phase.
|
|
35
|
+
- Bounded the zero central-gravity radius response so finite far-field envelopes cannot leave
|
|
36
|
+
oversized kinematic carrier caches behind, and counted fallback speed-cap activations.
|
|
37
|
+
- Bumped the deterministic Galaxy scene algorithm identity to `galaxy-v13-responsive-compact-orbits`
|
|
38
|
+
so cached layouts cannot be confused with the revised placement contract.
|
|
39
|
+
|
|
40
|
+
### Tests
|
|
41
|
+
|
|
42
|
+
- Added deterministic regressions for central-field cache scaling and local-gravity phase
|
|
43
|
+
invalidation, alongside the existing 500-body and browser accessibility coverage.
|
|
44
|
+
|
|
45
|
+
## [1.7.2] - 2026-09-05
|
|
46
|
+
|
|
47
|
+
### Added
|
|
48
|
+
|
|
49
|
+
- Added `idx_vector_index_repairs_queue` composite index on `(identity, generation, memory_id)`
|
|
50
|
+
in `engraphis/core/schema.py` to prevent table scans during external vector repair queue dequeue.
|
|
51
|
+
- Added explicit operator opt-out verification with `403 Forbidden` (`processing_operator_disabled`)
|
|
52
|
+
for authenticated direct POST requests to `/managed-processing` in `engraphis/routes/v2_api.py`.
|
|
53
|
+
- Added `_only_environment_title_order_changed` in `engraphis/core/resolve.py` ensuring unkeyed
|
|
54
|
+
facts with permuted environment titles resolve to `NOOP` rather than false conflicts.
|
|
55
|
+
- Added comprehensive reliability regression coverage covering storage concurrency, vector index
|
|
56
|
+
repair indexing, and managed processing policy enforcement.
|
|
57
|
+
|
|
58
|
+
### Fixed
|
|
59
|
+
|
|
60
|
+
- Preserved `[all]` extras fallback for legacy editable installations in `scripts/update.py`
|
|
61
|
+
when no installation profile is recorded.
|
|
62
|
+
- Fixed external vector index hydration on physical index recreation and rebuilds.
|
|
63
|
+
- Fixed docstring dedenting and contract normalization across Python 3.9 through 3.14.
|
|
64
|
+
|
|
65
|
+
### Changed
|
|
66
|
+
|
|
67
|
+
- Bumped `tree-sitter-language-pack` to 1.16.1.
|
|
68
|
+
- Updated `codeql-action`, `anchore/scan-action`, and `anchore/sbom-action` GitHub Actions dependencies.
|
|
69
|
+
|
|
70
|
+
### Reliability and privacy
|
|
71
|
+
|
|
72
|
+
- Preserve distinct context claims, qualified sentences and complete units under tight budgets;
|
|
73
|
+
measure false NOOP outcomes through real write sequences.
|
|
74
|
+
- Preserve separate sources during packing and keep MCP gist responses within the canonical
|
|
75
|
+
context budget. Response caps retain or omit complete context and report accurate usage.
|
|
76
|
+
- Canonical temporal browsing, server-side Library filtering/pagination, independent Ask states,
|
|
77
|
+
actionable setup diagnostics and retained installation capabilities.
|
|
78
|
+
- Cross-process write resolution and schema 17 durable vector-index repair, with canonical
|
|
79
|
+
fallback and bounded NumPy scans. Public engine entrypoints remain compatible.
|
|
80
|
+
- Commit native batch indexing with canonical memory state and roll back both on failure.
|
|
81
|
+
Retain the established 12,000-memory graph window pending quality evidence for a smaller one.
|
|
82
|
+
- Explicit workspace managed-processing approval; missing legacy policy pauses readable uploads.
|
|
83
|
+
Requires the compatible cloud migration before rollout. Encrypted sync remains separate.
|
|
84
|
+
- Generated Smart/Classic MCP contract and integration inputs; Pro three-day and Team ten-day
|
|
85
|
+
trial copy aligned with cloud authority. Real browser and Workers evidence remains distinct
|
|
86
|
+
from production verification. See `docs/RELIABILITY_PROGRAM.md`.
|
|
87
|
+
- Isolate the manual graph diagnostic on an available local port with a private in-memory
|
|
88
|
+
server; fail before contacting an existing service when the requested port is occupied.
|
|
89
|
+
|
|
90
|
+
## [1.7.1] - 2026-09-03
|
|
91
|
+
|
|
92
|
+
### Fixed
|
|
93
|
+
|
|
94
|
+
- Isolated stdio transport wire in `engraphis.mcp_server`: redirected `sys.stdout`
|
|
95
|
+
to `sys.stderr` while preserving the raw binary stream for JSON-RPC wire
|
|
96
|
+
communication, preventing external library stdout chatter (e.g. PyTorch,
|
|
97
|
+
Hugging Face, tqdm) from corrupting the wire and triggering `write EOF` stream
|
|
98
|
+
disconnection errors in Node.js harnesses (Command Code, Cursor, Claude Code, Cline).
|
|
99
|
+
- Added thread-safe singleton initialization with `threading.Lock()` to
|
|
100
|
+
`engraphis.mcp_server.service()`.
|
|
101
|
+
- Added non-blocking background daemon warmup (`_start_background_warmup()`) in
|
|
102
|
+
`engraphis.mcp_server` to pre-warm the database and embedder, eliminating
|
|
103
|
+
cold-start latency and timeout disconnects on the first MCP tool call. Can be
|
|
104
|
+
bypassed with `ENGRAPHIS_MCP_WARMUP=0`.
|
|
105
|
+
- Added cache-first fast path (`local_files_only=True`) in
|
|
106
|
+
`SentenceTransformerEmbedder` (`engraphis/backends/embedder_st.py`), allowing
|
|
107
|
+
locally cached models to initialize in ~0.3s without network calls or remote
|
|
108
|
+
registry checks.
|
|
109
|
+
- Added embedder forward-pass diagnostic check to `engraphis-init --check` and
|
|
110
|
+
added `engraphis-init --prefetch` command to download and cache model weights
|
|
111
|
+
during setup.
|
|
5
112
|
|
|
6
113
|
## [1.7] - 2026-09-03
|
|
7
114
|
|
|
@@ -13,9 +120,8 @@ All notable changes to Engraphis are documented here. Format loosely follows
|
|
|
13
120
|
(savings_ratio 0.0 -> 0.4975) with no caller-side arguments. The packer is the
|
|
14
121
|
existing 1.6 contract; the change just makes it the default fast path.
|
|
15
122
|
- Smart MCP `engraphis_remember` now accepts and forwards `subject_key` and
|
|
16
|
-
`claim_kind` to the classic tool
|
|
17
|
-
|
|
18
|
-
documented safe-supersession mechanism is now reachable through MCP.
|
|
123
|
+
`claim_kind` to the classic tool, so the documented safe-supersession
|
|
124
|
+
mechanism is reachable through MCP.
|
|
19
125
|
- A new integration at `integrations/commandcode/session_start_hook.py` (with
|
|
20
126
|
`scripts/install_cc_hook.py` for idempotent user-scope install/uninstall) wires
|
|
21
127
|
durable-memory recall into Command Code's SessionStart lifecycle: each new
|
|
@@ -27,7 +133,11 @@ All notable changes to Engraphis are documented here. Format loosely follows
|
|
|
27
133
|
/ `ENGRAPHIS_RERANK_MODEL`). Evaluated offline on the bundled retrieval gates
|
|
28
134
|
(sample.jsonl, codemem.jsonl, k=5): hit@5 stays at 1.0 with zero per-question
|
|
29
135
|
regressions, MRR@5 lifts 0.889 -> 0.944 (sample) and 0.962 -> 0.981 (codemem),
|
|
30
|
-
with ~15 ms per query added. Not the default;
|
|
136
|
+
with ~15 ms per query added. Not the default; set the value in the trusted
|
|
137
|
+
config file (`~/.engraphis/config.env` on the operator account, or as a
|
|
138
|
+
process environment variable); Engraphis deliberately does not read the
|
|
139
|
+
CWD `.env`, so editing `./.env` and restarting leaves the identity
|
|
140
|
+
reranker active. Restart the MCP server and dashboard after the change.
|
|
31
141
|
|
|
32
142
|
### Changed
|
|
33
143
|
|
|
@@ -55,10 +165,8 @@ All notable changes to Engraphis are documented here. Format loosely follows
|
|
|
55
165
|
|
|
56
166
|
### Fixed
|
|
57
167
|
|
|
58
|
-
- The Smart MCP gateway `engraphis_remember`
|
|
59
|
-
`
|
|
60
|
-
benchmark correction-miss pattern that the reworded-correction detector
|
|
61
|
-
then had to compensate for.
|
|
168
|
+
- The Smart MCP gateway `engraphis_remember` now forwards `subject_key` and
|
|
169
|
+
`claim_kind` end to end, matching the **Added** entry above.
|
|
62
170
|
|
|
63
171
|
### Operational
|
|
64
172
|
|
|
@@ -10,6 +10,8 @@ recursive-include engraphis/dashboard_assets/vendor *
|
|
|
10
10
|
include engraphis/commercial_manifest.json
|
|
11
11
|
include LICENSE NOTICE README.md CHANGELOG.md BENCHMARKS.md
|
|
12
12
|
include docs/RECALL_RECOVERY.md
|
|
13
|
+
include docs/REWORK_EXECUTION.md docs/ENGINE_CAPACITY_PROTOCOL.md docs/CODING_ACCEPTANCE_CORPUS.md
|
|
14
|
+
include docs/PAID_EVALUATION_PROPOSAL.md
|
|
13
15
|
include docs/DOCUMENT_IMPORT.md docs/OBSIDIAN_IMPORT.md
|
|
14
16
|
include docs/images/context-efficiency.svg
|
|
15
17
|
include pyproject.toml
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: engraphis
|
|
3
|
-
Version: 1.7
|
|
3
|
+
Version: 1.7.3
|
|
4
4
|
Summary: Local-first AI memory engine for agents — Ebbinghaus decay, interaction-aware recall, bi-temporal facts, hybrid retrieval, and an MCP server. You bring the LLM.
|
|
5
5
|
Author: The Engraphis Authors
|
|
6
6
|
License-Expression: Apache-2.0
|
|
@@ -52,7 +52,7 @@ Requires-Dist: sentence-transformers>=2.7; python_version >= "3.10" and extra ==
|
|
|
52
52
|
Provides-Extra: code
|
|
53
53
|
Requires-Dist: tree-sitter>=0.23; python_version >= "3.10" and extra == "code"
|
|
54
54
|
Requires-Dist: tree-sitter-language-pack==0.9.0; python_version < "3.10" and extra == "code"
|
|
55
|
-
Requires-Dist: tree-sitter-language-pack==1.
|
|
55
|
+
Requires-Dist: tree-sitter-language-pack==1.16.1; python_version >= "3.10" and extra == "code"
|
|
56
56
|
Provides-Extra: documents
|
|
57
57
|
Requires-Dist: pypdf>=6.15.0; extra == "documents"
|
|
58
58
|
Requires-Dist: Pillow>=12.3.0; python_version >= "3.10" and extra == "documents"
|
|
@@ -78,7 +78,7 @@ Requires-Dist: pydantic-settings>=2.14.2; python_version >= "3.10" and extra ==
|
|
|
78
78
|
Requires-Dist: cryptography>=50.0.0; python_version >= "3.10" and extra == "all"
|
|
79
79
|
Requires-Dist: tree-sitter>=0.23; python_version >= "3.10" and extra == "all"
|
|
80
80
|
Requires-Dist: tree-sitter-language-pack==0.9.0; python_version < "3.10" and extra == "all"
|
|
81
|
-
Requires-Dist: tree-sitter-language-pack==1.
|
|
81
|
+
Requires-Dist: tree-sitter-language-pack==1.16.1; python_version >= "3.10" and extra == "all"
|
|
82
82
|
Requires-Dist: pypdf>=6.15.0; extra == "all"
|
|
83
83
|
Requires-Dist: Pillow>=12.3.0; python_version >= "3.10" and extra == "all"
|
|
84
84
|
Requires-Dist: pytesseract>=0.3.10; python_version >= "3.10" and extra == "all"
|
|
@@ -107,7 +107,7 @@ Requires-Dist: pydantic-settings>=2.14.2; python_version >= "3.10" and extra ==
|
|
|
107
107
|
Requires-Dist: cryptography>=50.0.0; python_version >= "3.10" and extra == "test"
|
|
108
108
|
Requires-Dist: tree-sitter>=0.23; python_version >= "3.10" and extra == "test"
|
|
109
109
|
Requires-Dist: tree-sitter-language-pack==0.9.0; python_version < "3.10" and extra == "test"
|
|
110
|
-
Requires-Dist: tree-sitter-language-pack==1.
|
|
110
|
+
Requires-Dist: tree-sitter-language-pack==1.16.1; python_version >= "3.10" and extra == "test"
|
|
111
111
|
Requires-Dist: pypdf>=6.15.0; extra == "test"
|
|
112
112
|
Requires-Dist: Pillow>=12.3.0; python_version >= "3.10" and extra == "test"
|
|
113
113
|
Requires-Dist: pytesseract>=0.3.10; python_version >= "3.10" and extra == "test"
|
|
@@ -162,7 +162,7 @@ by default, or accept an explicit workspace plus optional `from_ts`, `to_ts`, an
|
|
|
162
162
|
`release_version` filters.
|
|
163
163
|
|
|
164
164
|
<p align="center">
|
|
165
|
-
<img src="https://raw.githubusercontent.com/Coding-Dev-Tools/engraphis/main/docs/images/context-efficiency.svg" alt="Dark chart of local measurements and deterministic fixtures, including a local LoCoMo diagnostic marked with an asterisk. Cross-session handoff satisfaction rises from 3 of 15 queries with the last memories to 15 of 15 with proactive ranking or a consolidated summary. Intent-layered graph routing rises from 0 of 3 to 3 of 3 correct top-1 targets, and two-hop graph recall rises from 0 of 3 with one-hop expansion to 3 of 3 with Personalized PageRank. Consolidation-aware ranking selects the expected digest in 2 of 2 summary cases instead of 0 of 2 for the baseline. Structure-aware chunks reduce context from 740.3 to 214.3 tokens and the smallest evidence-holding memory from 162.2 to 42.4 tokens. A compact JSON-shape proxy uses 10,
|
|
165
|
+
<img src="https://raw.githubusercontent.com/Coding-Dev-Tools/engraphis/main/docs/images/context-efficiency.svg" alt="Dark chart of local measurements and deterministic fixtures, including a local LoCoMo diagnostic marked with an asterisk. Cross-session handoff satisfaction rises from 3 of 15 queries with the last memories to 15 of 15 with proactive ranking or a consolidated summary. Intent-layered graph routing rises from 0 of 3 to 3 of 3 correct top-1 targets, and two-hop graph recall rises from 0 of 3 with one-hop expansion to 3 of 3 with Personalized PageRank. Consolidation-aware ranking selects the expected digest in 2 of 2 summary cases instead of 0 of 2 for the baseline. Structure-aware chunks reduce context from 740.3 to 214.3 tokens and the smallest evidence-holding memory from 162.2 to 42.4 tokens. A compact JSON-shape proxy uses 10,982 rather than 23,810 tokens. Grounded recall makes 11 of 11 correct decisions and packed context averages 85.38 tokens under a 1,500-token cap." width="100%">
|
|
166
166
|
<br>
|
|
167
167
|
<sup>Less repeated history means more room for the task, tools, and useful evidence.</sup>
|
|
168
168
|
</p>
|
|
@@ -191,13 +191,13 @@ its counting boundary explicit.
|
|
|
191
191
|
|---|---|---|---|
|
|
192
192
|
| Retrieved top-5 memory content, averaged per question | Whole documents: **740.3** tokens → structure-aware chunks: **214.3** tokens | **526.0 fewer tokens per question** (**71.1% lower**, about **3.5× smaller**) | Recall@5 **1.000** in both modes across 6 documents and 18 questions |
|
|
193
193
|
| Smallest returned memory that contains the reference evidence | Whole documents: **162.2** tokens → chunks: **42.4** tokens | **119.8 fewer tokens to evidence** (**73.9% lower**, about **3.8× smaller**) | The same 18 questions had a returned evidence-holding memory in both modes |
|
|
194
|
-
| Full versus compact recall payload proxy across one 26-question pass within a 260-timed-recall CodeMem run | Full proxy: **23,810** `engraphis.regex.v1` tokens → compact proxy: **10,
|
|
194
|
+
| Full versus compact recall payload proxy across one 26-question pass within a 260-timed-recall CodeMem run | Full proxy: **23,810** `engraphis.regex.v1` tokens → compact proxy: **10,982** tokens | **12,828 proxy tokens avoided** (**53.88% lower**) | 26 payload samples; 260 timed recalls; Recall@5, hit@5, and answer-token recall all **1.000** |
|
|
195
195
|
| Packed prompt-context usage in the same 26-question CodeMem sample pass | Hard budget: **1,500** tokens; observed mean: **85.38**; observed maximum: **108** | A hard cap prevents a recall from exceeding its configured context budget | This is usage accounting, not a before/after savings comparison |
|
|
196
196
|
|
|
197
197
|
These values are evidence IDs `offline-chunking` and `offline-performance` in
|
|
198
198
|
[`offline-fixtures-v1.json`](https://github.com/Coding-Dev-Tools/engraphis/blob/main/docs/benchmark-evidence/offline-fixtures-v1.json),
|
|
199
199
|
SHA-256
|
|
200
|
-
`
|
|
200
|
+
`4d5056d137182ae5cf116c5d59af18b38a7a0ed7731885e9597f63e549cb46b7`.
|
|
201
201
|
[`BENCHMARKS.md`](https://github.com/Coding-Dev-Tools/engraphis/blob/main/BENCHMARKS.md#public-numeric-evidence-registry)
|
|
202
202
|
records the matching suite digest, exact commands, and per-command config digests. External,
|
|
203
203
|
model-dependent, consolidation, productivity, and latency results remain unpublished until the
|
|
@@ -922,7 +922,7 @@ file. It never searches the working directory for `.env`, and explicit process v
|
|
|
922
922
|
| `ENGRAPHIS_CLOUD_REFRESH_CREDENTIAL` | Not set | Bootstrap-only rotating hosted credential; after first use the owner-only cloud session replacement takes precedence |
|
|
923
923
|
| `ENGRAPHIS_CLOUD_TOKEN_SUBJECT` | `member` | Subject fixed during hosted bootstrap (`device` or `member`); set explicitly with an environment-only refresh credential |
|
|
924
924
|
| `ENGRAPHIS_CLOUD_ACCESS_TOKEN` | Not set | Optional short-lived access token for ephemeral jobs |
|
|
925
|
-
| `ENGRAPHIS_MANAGED_COMPUTE_CONSENT` | *(
|
|
925
|
+
| `ENGRAPHIS_MANAGED_COMPUTE_CONSENT` | *(unset)* | Deny-only operator override: `0` pauses readable managed processing. A truthy value cannot grant approval. Each workspace requires explicit confirmation in Manage → Settings; encrypted sync is separate |
|
|
926
926
|
|
|
927
927
|
The optional cross-encoder reranker is model- and hardware-dependent. Treat its quality and
|
|
928
928
|
latency as deployment-specific until a versioned model identity, exact configuration, and
|
|
@@ -987,3 +987,19 @@ under Apache-2.0 keeps that grant; later releases cannot retroactively withdraw
|
|
|
987
987
|
official hosted control plane, its production credentials and records, managed operations,
|
|
988
988
|
support, and future separately delivered commercial modules are outside the public source
|
|
989
989
|
grant. See [`docs/LICENSING.md`](https://github.com/Coding-Dev-Tools/engraphis/blob/main/docs/LICENSING.md) for the complete boundary.
|
|
990
|
+
|
|
991
|
+
### Reliability implementation candidate
|
|
992
|
+
|
|
993
|
+
The current source uses schema 18 for durable, content-free vector-index repair and
|
|
994
|
+
atomic memory-command receipts. Upgrades use the existing verified-backup migration path.
|
|
995
|
+
The [rework execution register](https://github.com/Coding-Dev-Tools/engraphis/blob/main/docs/REWORK_EXECUTION.md) records the current findings,
|
|
996
|
+
compatibility decisions, acceptance evidence, remaining work and recovery procedure.
|
|
997
|
+
See [the reliability program](https://github.com/Coding-Dev-Tools/engraphis/blob/main/docs/RELIABILITY_PROGRAM.md) for exact implementation,
|
|
998
|
+
validation, migration and release boundaries. Managed processing now requires explicit
|
|
999
|
+
workspace approval in Settings. Existing installations start with readable
|
|
1000
|
+
uploads paused until confirmed; connecting an account does not grant approval.
|
|
1001
|
+
|
|
1002
|
+
For setup diagnostics use `engraphis-init --check --json`. New configurations get an
|
|
1003
|
+
owner-private local API token. Existing configs are preserved. Record selected install
|
|
1004
|
+
capabilities with `engraphis-init --extras server,mcp` or `--extras none`; future updates
|
|
1005
|
+
preserve that choice. `ENGRAPHIS_UPDATE_EXTRAS` remains an explicit override.
|
|
@@ -44,7 +44,7 @@ by default, or accept an explicit workspace plus optional `from_ts`, `to_ts`, an
|
|
|
44
44
|
`release_version` filters.
|
|
45
45
|
|
|
46
46
|
<p align="center">
|
|
47
|
-
<img src="https://raw.githubusercontent.com/Coding-Dev-Tools/engraphis/main/docs/images/context-efficiency.svg" alt="Dark chart of local measurements and deterministic fixtures, including a local LoCoMo diagnostic marked with an asterisk. Cross-session handoff satisfaction rises from 3 of 15 queries with the last memories to 15 of 15 with proactive ranking or a consolidated summary. Intent-layered graph routing rises from 0 of 3 to 3 of 3 correct top-1 targets, and two-hop graph recall rises from 0 of 3 with one-hop expansion to 3 of 3 with Personalized PageRank. Consolidation-aware ranking selects the expected digest in 2 of 2 summary cases instead of 0 of 2 for the baseline. Structure-aware chunks reduce context from 740.3 to 214.3 tokens and the smallest evidence-holding memory from 162.2 to 42.4 tokens. A compact JSON-shape proxy uses 10,
|
|
47
|
+
<img src="https://raw.githubusercontent.com/Coding-Dev-Tools/engraphis/main/docs/images/context-efficiency.svg" alt="Dark chart of local measurements and deterministic fixtures, including a local LoCoMo diagnostic marked with an asterisk. Cross-session handoff satisfaction rises from 3 of 15 queries with the last memories to 15 of 15 with proactive ranking or a consolidated summary. Intent-layered graph routing rises from 0 of 3 to 3 of 3 correct top-1 targets, and two-hop graph recall rises from 0 of 3 with one-hop expansion to 3 of 3 with Personalized PageRank. Consolidation-aware ranking selects the expected digest in 2 of 2 summary cases instead of 0 of 2 for the baseline. Structure-aware chunks reduce context from 740.3 to 214.3 tokens and the smallest evidence-holding memory from 162.2 to 42.4 tokens. A compact JSON-shape proxy uses 10,982 rather than 23,810 tokens. Grounded recall makes 11 of 11 correct decisions and packed context averages 85.38 tokens under a 1,500-token cap." width="100%">
|
|
48
48
|
<br>
|
|
49
49
|
<sup>Less repeated history means more room for the task, tools, and useful evidence.</sup>
|
|
50
50
|
</p>
|
|
@@ -73,13 +73,13 @@ its counting boundary explicit.
|
|
|
73
73
|
|---|---|---|---|
|
|
74
74
|
| Retrieved top-5 memory content, averaged per question | Whole documents: **740.3** tokens → structure-aware chunks: **214.3** tokens | **526.0 fewer tokens per question** (**71.1% lower**, about **3.5× smaller**) | Recall@5 **1.000** in both modes across 6 documents and 18 questions |
|
|
75
75
|
| Smallest returned memory that contains the reference evidence | Whole documents: **162.2** tokens → chunks: **42.4** tokens | **119.8 fewer tokens to evidence** (**73.9% lower**, about **3.8× smaller**) | The same 18 questions had a returned evidence-holding memory in both modes |
|
|
76
|
-
| Full versus compact recall payload proxy across one 26-question pass within a 260-timed-recall CodeMem run | Full proxy: **23,810** `engraphis.regex.v1` tokens → compact proxy: **10,
|
|
76
|
+
| Full versus compact recall payload proxy across one 26-question pass within a 260-timed-recall CodeMem run | Full proxy: **23,810** `engraphis.regex.v1` tokens → compact proxy: **10,982** tokens | **12,828 proxy tokens avoided** (**53.88% lower**) | 26 payload samples; 260 timed recalls; Recall@5, hit@5, and answer-token recall all **1.000** |
|
|
77
77
|
| Packed prompt-context usage in the same 26-question CodeMem sample pass | Hard budget: **1,500** tokens; observed mean: **85.38**; observed maximum: **108** | A hard cap prevents a recall from exceeding its configured context budget | This is usage accounting, not a before/after savings comparison |
|
|
78
78
|
|
|
79
79
|
These values are evidence IDs `offline-chunking` and `offline-performance` in
|
|
80
80
|
[`offline-fixtures-v1.json`](https://github.com/Coding-Dev-Tools/engraphis/blob/main/docs/benchmark-evidence/offline-fixtures-v1.json),
|
|
81
81
|
SHA-256
|
|
82
|
-
`
|
|
82
|
+
`4d5056d137182ae5cf116c5d59af18b38a7a0ed7731885e9597f63e549cb46b7`.
|
|
83
83
|
[`BENCHMARKS.md`](https://github.com/Coding-Dev-Tools/engraphis/blob/main/BENCHMARKS.md#public-numeric-evidence-registry)
|
|
84
84
|
records the matching suite digest, exact commands, and per-command config digests. External,
|
|
85
85
|
model-dependent, consolidation, productivity, and latency results remain unpublished until the
|
|
@@ -804,7 +804,7 @@ file. It never searches the working directory for `.env`, and explicit process v
|
|
|
804
804
|
| `ENGRAPHIS_CLOUD_REFRESH_CREDENTIAL` | Not set | Bootstrap-only rotating hosted credential; after first use the owner-only cloud session replacement takes precedence |
|
|
805
805
|
| `ENGRAPHIS_CLOUD_TOKEN_SUBJECT` | `member` | Subject fixed during hosted bootstrap (`device` or `member`); set explicitly with an environment-only refresh credential |
|
|
806
806
|
| `ENGRAPHIS_CLOUD_ACCESS_TOKEN` | Not set | Optional short-lived access token for ephemeral jobs |
|
|
807
|
-
| `ENGRAPHIS_MANAGED_COMPUTE_CONSENT` | *(
|
|
807
|
+
| `ENGRAPHIS_MANAGED_COMPUTE_CONSENT` | *(unset)* | Deny-only operator override: `0` pauses readable managed processing. A truthy value cannot grant approval. Each workspace requires explicit confirmation in Manage → Settings; encrypted sync is separate |
|
|
808
808
|
|
|
809
809
|
The optional cross-encoder reranker is model- and hardware-dependent. Treat its quality and
|
|
810
810
|
latency as deployment-specific until a versioned model identity, exact configuration, and
|
|
@@ -869,3 +869,19 @@ under Apache-2.0 keeps that grant; later releases cannot retroactively withdraw
|
|
|
869
869
|
official hosted control plane, its production credentials and records, managed operations,
|
|
870
870
|
support, and future separately delivered commercial modules are outside the public source
|
|
871
871
|
grant. See [`docs/LICENSING.md`](https://github.com/Coding-Dev-Tools/engraphis/blob/main/docs/LICENSING.md) for the complete boundary.
|
|
872
|
+
|
|
873
|
+
### Reliability implementation candidate
|
|
874
|
+
|
|
875
|
+
The current source uses schema 18 for durable, content-free vector-index repair and
|
|
876
|
+
atomic memory-command receipts. Upgrades use the existing verified-backup migration path.
|
|
877
|
+
The [rework execution register](https://github.com/Coding-Dev-Tools/engraphis/blob/main/docs/REWORK_EXECUTION.md) records the current findings,
|
|
878
|
+
compatibility decisions, acceptance evidence, remaining work and recovery procedure.
|
|
879
|
+
See [the reliability program](https://github.com/Coding-Dev-Tools/engraphis/blob/main/docs/RELIABILITY_PROGRAM.md) for exact implementation,
|
|
880
|
+
validation, migration and release boundaries. Managed processing now requires explicit
|
|
881
|
+
workspace approval in Settings. Existing installations start with readable
|
|
882
|
+
uploads paused until confirmed; connecting an account does not grant approval.
|
|
883
|
+
|
|
884
|
+
For setup diagnostics use `engraphis-init --check --json`. New configurations get an
|
|
885
|
+
owner-private local API token. Existing configs are preserved. Record selected install
|
|
886
|
+
capabilities with `engraphis-init --extras server,mcp` or `--extras none`; future updates
|
|
887
|
+
preserve that choice. `ENGRAPHIS_UPDATE_EXTRAS` remains an explicit override.
|
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
# Independent coding-memory acceptance corpus
|
|
2
|
+
|
|
3
|
+
`eval.coding_acceptance` defines a versioned manifest and validates structural
|
|
4
|
+
and provenance declarations. It does not contain an independently authored corpus,
|
|
5
|
+
execute model calls, prove authorship, or authorize evaluation spending.
|
|
6
|
+
Existing deterministic fixtures remain useful regression tests and keep their
|
|
7
|
+
implementation-authored or synthetic labels.
|
|
8
|
+
|
|
9
|
+
## Frozen task structure
|
|
10
|
+
|
|
11
|
+
Require **400 scenarios in 40 repository families**. Each family supplies exactly
|
|
12
|
+
one scenario in each of these ten categories:
|
|
13
|
+
|
|
14
|
+
| Category | Required behavior to label |
|
|
15
|
+
| --- | --- |
|
|
16
|
+
| Corrections | Real remember/correct/recall sequence; false NOOP and false merge |
|
|
17
|
+
| Temporal history | Future/current/expired facts, known-at and valid-at history |
|
|
18
|
+
| Scope boundaries | Workspace/repository/session ownership and equal-content facts |
|
|
19
|
+
| Paraphrases | Retrieval with a pinned semantic embedder; no supplied similarities |
|
|
20
|
+
| Code relationships | Symbols, files/calls and explicit evidence bridges |
|
|
21
|
+
| Unsupported questions | Grounded abstention and unsupported-answer rate |
|
|
22
|
+
| Poisoning | Untrusted ingested instructions cannot change review/authorization |
|
|
23
|
+
| Conditions and values | Complete subjects, numbers, units, negation and conditions |
|
|
24
|
+
| Long documents | Evidence beyond early chunks; budget omissions remain explicit |
|
|
25
|
+
| Multilingual | Whole conditions and titles retained across languages |
|
|
26
|
+
|
|
27
|
+
The split is by family, never by question: **80 development, 80 validation and
|
|
28
|
+
240 held-out** scenarios. Sort families by SHA-256 of `split_seed:family_id`; assign
|
|
29
|
+
the first eight families to development, the next eight to validation and the
|
|
30
|
+
remaining 24 to held-out. Freeze the family identities and seed before tuning.
|
|
31
|
+
Human reviewers must also check related forks, shared templates and paraphrased
|
|
32
|
+
tasks across families; an identifier validator cannot detect semantic leakage.
|
|
33
|
+
|
|
34
|
+
Each scenario binds an ID, family, category, split, declared origin, author IDs,
|
|
35
|
+
source SHA-256, oracle SHA-256 and required evidence IDs. The manifest binds the
|
|
36
|
+
implementation authors, two distinct reviewers, a timezone-aware freeze time and
|
|
37
|
+
an authorship-attestation SHA-256. Independent task authors, implementation
|
|
38
|
+
authors and reviewers must not overlap. Licensing, consent, authorship method,
|
|
39
|
+
family lineage and review/adjudication should be recorded in the attestation.
|
|
40
|
+
|
|
41
|
+
Source and oracle hashes reference separately frozen task artifacts. Those
|
|
42
|
+
artifacts must contain the initial history/repository, ordered operations, query,
|
|
43
|
+
scope/time anchors, expected memory transitions, evidence units, unsupported
|
|
44
|
+
claims, deterministic task oracle and safe disposable setup/cleanup instructions.
|
|
45
|
+
This manifest validator checks the hash format, not the referenced bytes or the
|
|
46
|
+
behavior of those tasks. A future corpus loader must verify the bytes and execute
|
|
47
|
+
the sequence before a report can claim coverage.
|
|
48
|
+
|
|
49
|
+
## Validator use and evidence boundaries
|
|
50
|
+
|
|
51
|
+
```console
|
|
52
|
+
python -m eval.coding_acceptance
|
|
53
|
+
python -m eval.coding_acceptance --corpus corpus.json --attestation authorship.txt
|
|
54
|
+
python -m eval.coding_acceptance --corpus generated-fixture.json --fixture
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
With no corpus, the command emits portable JSON Schema. The Python validator also
|
|
58
|
+
enforces cross-row counts, categories, exact family splits, unique IDs, author
|
|
59
|
+
separation and the matched arms/budgets. Candidate independent validation requires
|
|
60
|
+
the actual attestation file to match its digest. `--fixture` permits a structural
|
|
61
|
+
check while retaining the declared origin.
|
|
62
|
+
|
|
63
|
+
Synthetic and implementation-authored manifests are rejected by the independent
|
|
64
|
+
candidate mode. Changing only a manifest's origin cannot relabel its scenarios.
|
|
65
|
+
No automated metadata check can prove that every declaration is truthful: even a
|
|
66
|
+
matching attestation returns `independently_authored_verified=false`,
|
|
67
|
+
`publication_ready=false` and at most `authorship_status=attested_unverified`.
|
|
68
|
+
The generated 400-row test data is explicitly a test of this validator, never
|
|
69
|
+
400 completed acceptance tasks or independent evidence.
|
|
70
|
+
|
|
71
|
+
## Matched comparison bindings
|
|
72
|
+
|
|
73
|
+
Use **five arms** (no memory, full history, lexical, dense, hybrid) at **three
|
|
74
|
+
retrieval budgets** (512, 1,500, 4,096). A binding file contains exactly 15 cells.
|
|
75
|
+
All cells share corpus/prompt/source-visibility hashes, reader and tokenizer
|
|
76
|
+
identities/revisions, local semantic embedding identity/revision, random seed,
|
|
77
|
+
and hard input/output ceilings. Hashing cannot be declared a semantic dense
|
|
78
|
+
baseline. Validate with:
|
|
79
|
+
|
|
80
|
+
```console
|
|
81
|
+
python -m eval.coding_acceptance --bindings bindings.json
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
Each cell contains `arm`, `token_budget`, `corpus_sha256`, `prompt_sha256`,
|
|
85
|
+
`reader_id`, `reader_revision`, `tokenizer_id`, `tokenizer_revision`,
|
|
86
|
+
`max_input_tokens`, `max_output_tokens`, `embedding_id`, `embedding_revision`,
|
|
87
|
+
`embedding_semantic`, `source_visibility_sha256`, `history_overflow_policy` and
|
|
88
|
+
`seed`. All fields except arm/budget must be identical. The overflow policy is
|
|
89
|
+
`fail_preflight`: full history receives all eligible history within the common
|
|
90
|
+
hard input ceiling, or that task fails preflight for every matched arm. Do not
|
|
91
|
+
silently truncate full history. No-memory/full-history are repeated in each
|
|
92
|
+
budget stratum and must not be counted as new independent tasks.
|
|
93
|
+
|
|
94
|
+
Bindings are a preflight contract, not an execution adapter. Validation reports
|
|
95
|
+
zero model calls and `paid_run_authorized=false`. The cost and execution-approval
|
|
96
|
+
boundary remains [the separate paid evaluation proposal](PAID_EVALUATION_PROPOSAL.md).
|
|
97
|
+
|
|
98
|
+
## Scoring and release gates
|
|
99
|
+
|
|
100
|
+
Keep candidate discovery, write resolution, ranking, packing, grounding and final
|
|
101
|
+
task success separate. Citation validity asks whether a cited source supports a
|
|
102
|
+
claim; answer completeness asks whether all required evidence was covered. Count
|
|
103
|
+
false NOOPs, false merges, unsupported assertions, missed conditions, scope/time
|
|
104
|
+
violations and abstention independently. Record context/model tokens, latency,
|
|
105
|
+
memory, disk and costs without using token reduction as evidence of correctness.
|
|
106
|
+
|
|
107
|
+
Run development tasks while tuning; freeze the candidate and all bindings before
|
|
108
|
+
validation; reserve held-out families for the final comparison. Require zero
|
|
109
|
+
critical integrity/authorization violations. Predeclare one percentage point as
|
|
110
|
+
the task-success non-inferiority margin and require paired family-cluster 95%
|
|
111
|
+
intervals, with category-level failures reported. If uncertainty cannot exclude
|
|
112
|
+
the declared degradation, retain the current default. Missing/error outcomes
|
|
113
|
+
stay in the denominator; do not silently retry or exclude difficult tasks.
|
|
114
|
+
|
|
115
|
+
The remaining work is actual independent authorship and adjudication, frozen
|
|
116
|
+
artifact/license verification, the executable five-arm adapter, task-oracle and
|
|
117
|
+
budget-interruption tests, and approved paired validation/held-out runs. Passing
|
|
118
|
+
this validator establishes none of those operational results.
|
|
119
|
+
|
|
120
|
+
## Matched outcome aggregation
|
|
121
|
+
|
|
122
|
+
`eval.task_pairs` analyzes one matched arm/budget comparison using the full corpus
|
|
123
|
+
manifest and its 15 run bindings. It does not execute tasks or call models.
|
|
124
|
+
|
|
125
|
+
```console
|
|
126
|
+
python -m eval.task_pairs --baseline baseline.json --candidate candidate.json --corpus corpus.json --bindings bindings.json --output paired-results.json
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
The default comparison is full history versus hybrid, budget 1,500, 240 held-out
|
|
130
|
+
tasks and three repetitions. Outcomes bind `scenario_id`, source/oracle hashes,
|
|
131
|
+
the canonical run-binding hash, `repetition` (zero-based), `status`, boolean
|
|
132
|
+
`task_success`, `evidence_retained_ids`, `critical_violations`, implementation
|
|
133
|
+
source hash and a unique `run_id`. Only arm identity and the explicitly reported
|
|
134
|
+
implementation source identity may differ between paired conditions. The common
|
|
135
|
+
reader, model, tokenizer, prompts, resource limits and source visibility are bound
|
|
136
|
+
through the validated matrix. Duplicate attempts and incompatible bindings fail.
|
|
137
|
+
|
|
138
|
+
Missing attempts remain zero-success/zero-retention failures in the predeclared
|
|
139
|
+
denominator and disable non-inferiority. Tasks with no required evidence report
|
|
140
|
+
retention as unavailable, rather than receiving a free perfect score. Task success
|
|
141
|
+
and evidence retention have separate means and candidate-minus-baseline intervals;
|
|
142
|
+
required-evidence coverage does not establish citation validity or answer completeness.
|
|
143
|
+
|
|
144
|
+
The 95% percentile bootstrap first averages paired effects within each repository
|
|
145
|
+
family, then resamples families as blocks. Repeated answers never become new
|
|
146
|
+
independent families. Report category intervals as exploratory; they have no
|
|
147
|
+
multiple-comparison adjustment and cannot select a winning default independently.
|
|
148
|
+
At least 24 held-out families, 240 tasks and three repetitions are required before
|
|
149
|
+
the statistical non-inferiority check at margin 0.01 is eligible. The lower bound
|
|
150
|
+
must strictly exceed -0.01; incomplete/error pairs, critical violations, synthetic
|
|
151
|
+
authorship and degenerate intervals disable that check. Constant effects produce
|
|
152
|
+
no defensible resampling uncertainty and cannot manufacture a pass, even when
|
|
153
|
+
both conditions report perfect scores. These minima are not a power guarantee.
|
|
154
|
+
|
|
155
|
+
Even statistical support retains `default_action=keep_current_defaults` and
|
|
156
|
+
`independently_authored_verified=false`: matching declarations and attestations
|
|
157
|
+
cannot prove real execution or independent authorship. Completing one pair is
|
|
158
|
+
also not execution of the full five-arm corpus. Local tests and benchmarking are
|
|
159
|
+
already authorized; paid calls remain governed by their separate proposal.
|