engraphis 1.5__tar.gz → 1.7__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 (538) hide show
  1. {engraphis-1.5 → engraphis-1.7}/.env.example +25 -17
  2. {engraphis-1.5 → engraphis-1.7}/BENCHMARKS.md +380 -372
  3. {engraphis-1.5 → engraphis-1.7}/CHANGELOG.md +472 -3
  4. {engraphis-1.5 → engraphis-1.7}/Dockerfile +2 -1
  5. {engraphis-1.5 → engraphis-1.7}/MANIFEST.in +3 -0
  6. {engraphis-1.5 → engraphis-1.7}/NOTICE +5 -2
  7. {engraphis-1.5 → engraphis-1.7}/PKG-INFO +244 -98
  8. {engraphis-1.5 → engraphis-1.7}/README.md +234 -90
  9. engraphis-1.7/deploy/force-graph-1.51.4.licenses.json +399 -0
  10. engraphis-1.7/deploy/force-graph-1.51.4.yarn.lock +2344 -0
  11. engraphis-1.7/docs/DOCUMENT_IMPORT.md +150 -0
  12. engraphis-1.7/docs/OBSIDIAN_IMPORT.md +125 -0
  13. {engraphis-1.5 → engraphis-1.7}/docs/RECALL_RECOVERY.md +30 -3
  14. engraphis-1.7/docs/images/context-efficiency.svg +41 -0
  15. {engraphis-1.5 → engraphis-1.7}/engraphis/__init__.py +25 -2
  16. {engraphis-1.5 → engraphis-1.7}/engraphis/app.py +90 -56
  17. {engraphis-1.5 → engraphis-1.7}/engraphis/backends/codegraph.py +153 -18
  18. {engraphis-1.5 → engraphis-1.7}/engraphis/backends/embedder_api.py +38 -5
  19. {engraphis-1.5 → engraphis-1.7}/engraphis/backends/embedder_deterministic.py +7 -1
  20. engraphis-1.7/engraphis/backends/embedder_st.py +350 -0
  21. {engraphis-1.5 → engraphis-1.7}/engraphis/backends/encrypted_db.py +133 -48
  22. {engraphis-1.5 → engraphis-1.7}/engraphis/backends/extractor.py +157 -17
  23. {engraphis-1.5 → engraphis-1.7}/engraphis/backends/graph_extractor.py +17 -3
  24. {engraphis-1.5 → engraphis-1.7}/engraphis/backends/postgres_schema.py +66 -27
  25. engraphis-1.7/engraphis/backends/query_planner.py +151 -0
  26. {engraphis-1.5 → engraphis-1.7}/engraphis/backends/reranker.py +24 -5
  27. {engraphis-1.5 → engraphis-1.7}/engraphis/backends/resources.py +126 -69
  28. {engraphis-1.5 → engraphis-1.7}/engraphis/backends/retention.py +32 -2
  29. {engraphis-1.5 → engraphis-1.7}/engraphis/backends/sync_folder.py +48 -21
  30. {engraphis-1.5 → engraphis-1.7}/engraphis/backends/sync_relay.py +116 -33
  31. {engraphis-1.5 → engraphis-1.7}/engraphis/backends/vector_numpy.py +15 -3
  32. engraphis-1.7/engraphis/backends/vector_sqlitevec.py +565 -0
  33. {engraphis-1.5/engraphis/static → engraphis-1.7/engraphis/classic_assets}/dashboard.css +10 -3
  34. {engraphis-1.5 → engraphis-1.7}/engraphis/classic_assets/dashboard.js +1822 -1727
  35. {engraphis-1.5 → engraphis-1.7}/engraphis/classic_assets/index.html +24 -12
  36. engraphis-1.7/engraphis/classic_assets/vendor/d3.min.js +2 -0
  37. engraphis-1.7/engraphis/classic_assets/vendor/force-graph.min.js +5 -0
  38. engraphis-1.7/engraphis/cloud_authz.py +138 -0
  39. {engraphis-1.5 → engraphis-1.7}/engraphis/cloud_features.py +7 -2
  40. {engraphis-1.5 → engraphis-1.7}/engraphis/cloud_session.py +106 -12
  41. {engraphis-1.5 → engraphis-1.7}/engraphis/commercial_manifest.json +1 -1
  42. {engraphis-1.5 → engraphis-1.7}/engraphis/config.py +464 -45
  43. {engraphis-1.5 → engraphis-1.7}/engraphis/core/__init__.py +4 -2
  44. {engraphis-1.5 → engraphis-1.7}/engraphis/core/consolidate.py +482 -183
  45. {engraphis-1.5 → engraphis-1.7}/engraphis/core/context.py +102 -9
  46. engraphis-1.7/engraphis/core/documents.py +1759 -0
  47. {engraphis-1.5 → engraphis-1.7}/engraphis/core/engine.py +1986 -609
  48. engraphis-1.7/engraphis/core/fsutil.py +47 -0
  49. engraphis-1.7/engraphis/core/graph_scene.py +3082 -0
  50. {engraphis-1.5 → engraphis-1.7}/engraphis/core/graphrank.py +34 -1
  51. {engraphis-1.5 → engraphis-1.7}/engraphis/core/grounded.py +36 -14
  52. engraphis-1.7/engraphis/core/ids.py +86 -0
  53. {engraphis-1.5 → engraphis-1.7}/engraphis/core/interfaces.py +217 -9
  54. engraphis-1.7/engraphis/core/obsidian.py +569 -0
  55. {engraphis-1.5 → engraphis-1.7}/engraphis/core/poisoning.py +50 -1
  56. {engraphis-1.5 → engraphis-1.7}/engraphis/core/query_planner.py +11 -6
  57. {engraphis-1.5 → engraphis-1.7}/engraphis/core/recall.py +522 -144
  58. engraphis-1.7/engraphis/core/resolve.py +866 -0
  59. {engraphis-1.5 → engraphis-1.7}/engraphis/core/retrieval_policy.py +26 -6
  60. {engraphis-1.5 → engraphis-1.7}/engraphis/core/schema.py +303 -5
  61. {engraphis-1.5 → engraphis-1.7}/engraphis/core/scoring.py +12 -1
  62. {engraphis-1.5 → engraphis-1.7}/engraphis/core/store.py +3454 -464
  63. {engraphis-1.5 → engraphis-1.7}/engraphis/core/sync.py +1018 -240
  64. {engraphis-1.5 → engraphis-1.7}/engraphis/core/user_model.py +56 -18
  65. engraphis-1.7/engraphis/dashboard_app.py +1384 -0
  66. engraphis-1.7/engraphis/dashboard_assets/engraphis-graph-every-worker.js +479 -0
  67. engraphis-1.7/engraphis/dashboard_assets/engraphis-graph-every.js +1534 -0
  68. engraphis-1.7/engraphis/dashboard_assets/engraphis-graph.js +10973 -0
  69. engraphis-1.7/engraphis/dashboard_assets/engraphis-spacetime.js +276 -0
  70. {engraphis-1.5 → engraphis-1.7}/engraphis/dashboard_assets/index.html +128 -33
  71. {engraphis-1.5 → engraphis-1.7}/engraphis/dashboard_assets/ledger.css +307 -29
  72. {engraphis-1.5 → engraphis-1.7}/engraphis/dashboard_assets/ledger.js +2113 -235
  73. engraphis-1.7/engraphis/dashboard_assets/vendor/d3.min.js +2 -0
  74. engraphis-1.7/engraphis/dashboard_assets/vendor/force-graph.min.js +5 -0
  75. engraphis-1.7/engraphis/dashboard_assets/vendor/manifest.json +29 -0
  76. {engraphis-1.5 → engraphis-1.7}/engraphis/device_connect.py +5 -0
  77. engraphis-1.7/engraphis/document_import.py +278 -0
  78. {engraphis-1.5 → engraphis-1.7}/engraphis/engines/embedder.py +44 -3
  79. {engraphis-1.5 → engraphis-1.7}/engraphis/engines/ingest.py +165 -65
  80. {engraphis-1.5 → engraphis-1.7}/engraphis/engines/intelligence.py +22 -11
  81. {engraphis-1.5 → engraphis-1.7}/engraphis/engines/recall.py +14 -9
  82. engraphis-1.7/engraphis/engines/reweight.py +166 -0
  83. {engraphis-1.5 → engraphis-1.7}/engraphis/engines/thoughts.py +9 -1
  84. engraphis-1.7/engraphis/factory.py +251 -0
  85. {engraphis-1.5 → engraphis-1.7}/engraphis/graphdata.py +12 -3
  86. {engraphis-1.5 → engraphis-1.7}/engraphis/hosted_client.py +1 -0
  87. {engraphis-1.5 → engraphis-1.7}/engraphis/http_security.py +7 -0
  88. {engraphis-1.5 → engraphis-1.7}/engraphis/inspector/app.py +89 -47
  89. {engraphis-1.5 → engraphis-1.7}/engraphis/llm/client.py +280 -12
  90. {engraphis-1.5 → engraphis-1.7}/engraphis/mcp_classic_cli.py +7 -0
  91. {engraphis-1.5 → engraphis-1.7}/engraphis/mcp_cli.py +1 -1
  92. {engraphis-1.5 → engraphis-1.7}/engraphis/mcp_http_cli.py +171 -113
  93. {engraphis-1.5 → engraphis-1.7}/engraphis/mcp_server.py +628 -111
  94. engraphis-1.7/engraphis/models.py +254 -0
  95. engraphis-1.7/engraphis/obsidian_import.py +1583 -0
  96. {engraphis-1.5 → engraphis-1.7}/engraphis/private_state.py +148 -9
  97. engraphis-1.7/engraphis/read_only_api.py +406 -0
  98. {engraphis-1.5 → engraphis-1.7}/engraphis/routes/memory.py +150 -76
  99. {engraphis-1.5 → engraphis-1.7}/engraphis/routes/v2_api.py +577 -207
  100. {engraphis-1.5 → engraphis-1.7}/engraphis/routes/vault.py +369 -147
  101. {engraphis-1.5 → engraphis-1.7}/engraphis/service.py +4171 -461
  102. {engraphis-1.5/engraphis/classic_assets → engraphis-1.7/engraphis/static}/dashboard.css +10 -3
  103. {engraphis-1.5 → engraphis-1.7}/engraphis/static/dashboard.js +1822 -1727
  104. {engraphis-1.5 → engraphis-1.7}/engraphis/static/index.html +354 -342
  105. engraphis-1.7/engraphis/static/vendor/d3.min.js +2 -0
  106. engraphis-1.7/engraphis/static/vendor/force-graph.min.js +5 -0
  107. {engraphis-1.5 → engraphis-1.7}/engraphis/stores/__init__.py +92 -1
  108. engraphis-1.7/engraphis/stores/graph.py +296 -0
  109. {engraphis-1.5 → engraphis-1.7}/engraphis/stores/ledger.py +52 -14
  110. {engraphis-1.5 → engraphis-1.7}/engraphis/stores/vaults.py +72 -17
  111. {engraphis-1.5 → engraphis-1.7}/engraphis/stores/vectors.py +223 -82
  112. {engraphis-1.5 → engraphis-1.7}/engraphis/update_check.py +153 -52
  113. {engraphis-1.5 → engraphis-1.7}/engraphis.egg-info/PKG-INFO +244 -98
  114. {engraphis-1.5 → engraphis-1.7}/engraphis.egg-info/SOURCES.txt +71 -1
  115. {engraphis-1.5 → engraphis-1.7}/engraphis.egg-info/entry_points.txt +2 -0
  116. {engraphis-1.5 → engraphis-1.7}/engraphis.egg-info/requires.txt +7 -7
  117. {engraphis-1.5 → engraphis-1.7}/eval/EVIDENCE.md +9 -0
  118. {engraphis-1.5 → engraphis-1.7}/eval/ablation.py +29 -6
  119. {engraphis-1.5 → engraphis-1.7}/eval/agent_benchmarks.py +1 -0
  120. {engraphis-1.5 → engraphis-1.7}/eval/benchmark.py +74 -83
  121. engraphis-1.7/eval/code_arm.py +183 -0
  122. {engraphis-1.5 → engraphis-1.7}/eval/configs/longmemeval_v2_engraphis_planner_type_limits.json +1 -1
  123. {engraphis-1.5 → engraphis-1.7}/eval/configs/longmemeval_v2_engraphis_type_limits.json +1 -1
  124. engraphis-1.7/eval/context_efficiency_guardrails.py +146 -0
  125. engraphis-1.7/eval/datasets/code_arm.jsonl +2 -0
  126. engraphis-1.7/eval/datasets/grounded_distractors.jsonl +6 -0
  127. engraphis-1.7/eval/datasets/handoff_quality.jsonl +3 -0
  128. engraphis-1.7/eval/datasets/resolver_reworded_corrections.jsonl +44 -0
  129. engraphis-1.7/eval/datasets/sample.jsonl +7 -0
  130. engraphis-1.7/eval/extractor_quality.py +217 -0
  131. engraphis-1.7/eval/graph_every_bench.py +67 -0
  132. {engraphis-1.5 → engraphis-1.7}/eval/grounded.py +47 -2
  133. engraphis-1.7/eval/handoff_quality.py +297 -0
  134. {engraphis-1.5 → engraphis-1.7}/eval/harness.py +209 -33
  135. {engraphis-1.5 → engraphis-1.7}/eval/hosted_ledger.py +61 -16
  136. {engraphis-1.5 → engraphis-1.7}/eval/longmemeval_v2.py +58 -4
  137. engraphis-1.7/eval/longmemeval_v2_evidence.py +603 -0
  138. {engraphis-1.5 → engraphis-1.7}/eval/longmemeval_v2_matrix.py +17 -4
  139. {engraphis-1.5 → engraphis-1.7}/eval/metrics.py +24 -8
  140. {engraphis-1.5 → engraphis-1.7}/eval/performance.py +10 -4
  141. {engraphis-1.5 → engraphis-1.7}/eval/productivity.py +7 -8
  142. {engraphis-1.5 → engraphis-1.7}/eval/public_readiness.py +79 -19
  143. {engraphis-1.5 → engraphis-1.7}/eval/reinforcement.py +26 -3
  144. engraphis-1.7/eval/resolver_reworded_corrections.py +163 -0
  145. engraphis-1.7/eval/run_longmemeval_v2.py +270 -0
  146. {engraphis-1.5 → engraphis-1.7}/pyproject.toml +18 -9
  147. {engraphis-1.5 → engraphis-1.7}/requirements.txt +1 -0
  148. {engraphis-1.5 → engraphis-1.7}/scripts/approve_memory.py +1 -2
  149. {engraphis-1.5 → engraphis-1.7}/scripts/backfill_graph.py +62 -60
  150. {engraphis-1.5 → engraphis-1.7}/scripts/check_codeql_sarif.py +82 -5
  151. {engraphis-1.5 → engraphis-1.7}/scripts/check_commercial_manifest.py +3 -3
  152. {engraphis-1.5 → engraphis-1.7}/scripts/cli.py +171 -68
  153. {engraphis-1.5 → engraphis-1.7}/scripts/connect.py +1 -1
  154. {engraphis-1.5 → engraphis-1.7}/scripts/consolidate.py +10 -11
  155. {engraphis-1.5 → engraphis-1.7}/scripts/entry.py +4 -0
  156. {engraphis-1.5 → engraphis-1.7}/scripts/externalize_dashboard_assets.py +26 -5
  157. {engraphis-1.5 → engraphis-1.7}/scripts/graph_cli.py +63 -37
  158. {engraphis-1.5 → engraphis-1.7}/scripts/graph_server.py +1 -1
  159. engraphis-1.7/scripts/importer.py +528 -0
  160. {engraphis-1.5 → engraphis-1.7}/scripts/init.py +86 -56
  161. engraphis-1.7/scripts/install_cc_hook.py +188 -0
  162. engraphis-1.7/scripts/install_prime_agent.py +30 -0
  163. {engraphis-1.5 → engraphis-1.7}/scripts/install_shortcuts.py +186 -64
  164. engraphis-1.7/scripts/migrate_to_v2.py +916 -0
  165. engraphis-1.7/scripts/release_evidence.py +1159 -0
  166. engraphis-1.7/scripts/repair_embed_dim.py +150 -0
  167. engraphis-1.7/scripts/sdk_compat.py +74 -0
  168. engraphis-1.7/scripts/seed_from_obsidian.py +80 -0
  169. {engraphis-1.5 → engraphis-1.7}/scripts/smoke_entry_points.py +2 -0
  170. {engraphis-1.5 → engraphis-1.7}/scripts/start_dashboard.py +127 -7
  171. {engraphis-1.5 → engraphis-1.7}/scripts/sync.py +221 -26
  172. {engraphis-1.5 → engraphis-1.7}/scripts/test_routes.py +6 -1
  173. {engraphis-1.5 → engraphis-1.7}/scripts/update.py +203 -98
  174. engraphis-1.7/scripts/validate_compose_contract.py +164 -0
  175. {engraphis-1.5 → engraphis-1.7}/scripts/verify_distribution_contents.py +4 -0
  176. engraphis-1.7/scripts/watch_repo.py +476 -0
  177. {engraphis-1.5 → engraphis-1.7}/tests/test_agent_connect.py +30 -0
  178. {engraphis-1.5 → engraphis-1.7}/tests/test_backends_factories.py +234 -18
  179. {engraphis-1.5 → engraphis-1.7}/tests/test_benchmark_evidence.py +1215 -1076
  180. {engraphis-1.5 → engraphis-1.7}/tests/test_benchmark_longmemeval_v2.py +147 -1
  181. {engraphis-1.5 → engraphis-1.7}/tests/test_bitemporal_recall.py +1 -1
  182. engraphis-1.7/tests/test_bounded_uploads.py +109 -0
  183. {engraphis-1.5 → engraphis-1.7}/tests/test_canonical_export.py +31 -0
  184. {engraphis-1.5 → engraphis-1.7}/tests/test_chunking_extractor.py +159 -0
  185. engraphis-1.7/tests/test_cli_entrypoints.py +793 -0
  186. {engraphis-1.5 → engraphis-1.7}/tests/test_cloud_features.py +22 -0
  187. {engraphis-1.5 → engraphis-1.7}/tests/test_cloud_session.py +63 -0
  188. {engraphis-1.5 → engraphis-1.7}/tests/test_codegraph.py +85 -8
  189. {engraphis-1.5 → engraphis-1.7}/tests/test_codeql_sarif_gate.py +73 -0
  190. engraphis-1.7/tests/test_config.py +516 -0
  191. {engraphis-1.5 → engraphis-1.7}/tests/test_consolidate.py +897 -42
  192. {engraphis-1.5 → engraphis-1.7}/tests/test_consolidate_recall.py +156 -3
  193. {engraphis-1.5 → engraphis-1.7}/tests/test_context_economy.py +9 -0
  194. engraphis-1.7/tests/test_context_efficiency_guardrails.py +48 -0
  195. {engraphis-1.5 → engraphis-1.7}/tests/test_context_packing.py +98 -0
  196. engraphis-1.7/tests/test_core_ids.py +61 -0
  197. {engraphis-1.5 → engraphis-1.7}/tests/test_core_store.py +1506 -34
  198. {engraphis-1.5 → engraphis-1.7}/tests/test_dashboard_auth_placement.py +19 -1
  199. {engraphis-1.5 → engraphis-1.7}/tests/test_dashboard_button_regressions.py +7 -0
  200. {engraphis-1.5 → engraphis-1.7}/tests/test_dashboard_security_headers_and_open_window.py +11 -5
  201. {engraphis-1.5 → engraphis-1.7}/tests/test_dashboard_v2.py +2210 -1288
  202. engraphis-1.7/tests/test_dashboard_vendor_assets.py +47 -0
  203. {engraphis-1.5 → engraphis-1.7}/tests/test_db_path_default.py +105 -0
  204. engraphis-1.7/tests/test_deployment_mode_isolation.py +120 -0
  205. {engraphis-1.5 → engraphis-1.7}/tests/test_device_connect.py +49 -0
  206. engraphis-1.7/tests/test_document_import_cli.py +528 -0
  207. engraphis-1.7/tests/test_document_importer.py +565 -0
  208. engraphis-1.7/tests/test_documentation_contracts.py +294 -0
  209. engraphis-1.7/tests/test_documents.py +901 -0
  210. {engraphis-1.5 → engraphis-1.7}/tests/test_embedder_threading.py +25 -0
  211. {engraphis-1.5 → engraphis-1.7}/tests/test_embeddings.py +79 -2
  212. {engraphis-1.5 → engraphis-1.7}/tests/test_encrypted_store.py +135 -0
  213. engraphis-1.7/tests/test_encryption_dependency.py +257 -0
  214. {engraphis-1.5 → engraphis-1.7}/tests/test_engine.py +1203 -0
  215. engraphis-1.7/tests/test_envelope_additions_v16.py +142 -0
  216. {engraphis-1.5 → engraphis-1.7}/tests/test_eval_agent_benchmarks.py +45 -1
  217. engraphis-1.7/tests/test_eval_code_arm.py +29 -0
  218. {engraphis-1.5 → engraphis-1.7}/tests/test_eval_external.py +7 -1
  219. {engraphis-1.5 → engraphis-1.7}/tests/test_eval_harness.py +119 -8
  220. {engraphis-1.5 → engraphis-1.7}/tests/test_eval_performance.py +1 -1
  221. engraphis-1.7/tests/test_eval_reinforcement.py +24 -0
  222. engraphis-1.7/tests/test_extractor.py +324 -0
  223. engraphis-1.7/tests/test_fsutil.py +65 -0
  224. engraphis-1.7/tests/test_galaxy_gravity_floor.py +287 -0
  225. engraphis-1.7/tests/test_galaxy_gravity_slider.py +389 -0
  226. engraphis-1.7/tests/test_galaxy_gravity_slider_no_dead_zone.py +219 -0
  227. {engraphis-1.5 → engraphis-1.7}/tests/test_graph_cli.py +22 -0
  228. engraphis-1.7/tests/test_graph_engine_asset.py +12192 -0
  229. engraphis-1.7/tests/test_graph_every_asset.py +512 -0
  230. engraphis-1.7/tests/test_graph_explorer_v2.py +4347 -0
  231. engraphis-1.7/tests/test_graph_scene_contract.py +170 -0
  232. {engraphis-1.5 → engraphis-1.7}/tests/test_graph_server.py +18 -5
  233. {engraphis-1.5 → engraphis-1.7}/tests/test_graph_trust_backfill.py +50 -0
  234. {engraphis-1.5 → engraphis-1.7}/tests/test_graphdata.py +30 -5
  235. {engraphis-1.5 → engraphis-1.7}/tests/test_grounded.py +38 -0
  236. {engraphis-1.5 → engraphis-1.7}/tests/test_hosted_client.py +1 -0
  237. {engraphis-1.5 → engraphis-1.7}/tests/test_hosted_ledger.py +158 -0
  238. {engraphis-1.5 → engraphis-1.7}/tests/test_hosted_plan_resolution.py +104 -5
  239. engraphis-1.7/tests/test_hotfix_security.py +33 -0
  240. {engraphis-1.5 → engraphis-1.7}/tests/test_http_security.py +26 -0
  241. {engraphis-1.5 → engraphis-1.7}/tests/test_import_chunking.py +28 -1
  242. {engraphis-1.5 → engraphis-1.7}/tests/test_import_error_redaction.py +5 -1
  243. {engraphis-1.5 → engraphis-1.7}/tests/test_ingest_entities.py +2 -0
  244. {engraphis-1.5 → engraphis-1.7}/tests/test_init.py +86 -25
  245. {engraphis-1.5 → engraphis-1.7}/tests/test_inspector.py +118 -0
  246. {engraphis-1.5 → engraphis-1.7}/tests/test_inspector_pro.py +16 -0
  247. engraphis-1.7/tests/test_install_cc_hook.py +243 -0
  248. {engraphis-1.5 → engraphis-1.7}/tests/test_install_shortcuts.py +119 -11
  249. engraphis-1.7/tests/test_intelligence.py +34 -0
  250. {engraphis-1.5 → engraphis-1.7}/tests/test_legacy_reference_surface.py +49 -0
  251. {engraphis-1.5 → engraphis-1.7}/tests/test_llm_dashboard.py +66 -3
  252. engraphis-1.7/tests/test_local_isolation.py +59 -0
  253. engraphis-1.7/tests/test_longmemeval_v2_evidence.py +371 -0
  254. engraphis-1.7/tests/test_longmemeval_v2_matrix.py +27 -0
  255. {engraphis-1.5 → engraphis-1.7}/tests/test_mcp_annotation_idempotency.py +13 -10
  256. {engraphis-1.5 → engraphis-1.7}/tests/test_mcp_server.py +529 -8
  257. {engraphis-1.5 → engraphis-1.7}/tests/test_memory_routes_fixes.py +276 -13
  258. {engraphis-1.5 → engraphis-1.7}/tests/test_metadata_activity_forgery.py +11 -0
  259. {engraphis-1.5 → engraphis-1.7}/tests/test_migration.py +210 -0
  260. engraphis-1.7/tests/test_obsidian_cli.py +222 -0
  261. engraphis-1.7/tests/test_obsidian_import_schema.py +694 -0
  262. engraphis-1.7/tests/test_obsidian_importer.py +813 -0
  263. engraphis-1.7/tests/test_obsidian_parser.py +193 -0
  264. engraphis-1.7/tests/test_obsidian_service.py +444 -0
  265. {engraphis-1.5 → engraphis-1.7}/tests/test_packaging.py +150 -7
  266. engraphis-1.7/tests/test_parse_provider_chain.py +139 -0
  267. {engraphis-1.5 → engraphis-1.7}/tests/test_planned_recall.py +85 -2
  268. {engraphis-1.5 → engraphis-1.7}/tests/test_poisoning.py +57 -1
  269. {engraphis-1.5 → engraphis-1.7}/tests/test_postgres_schema.py +305 -4
  270. {engraphis-1.5 → engraphis-1.7}/tests/test_pro_cta.py +4 -1
  271. {engraphis-1.5 → engraphis-1.7}/tests/test_productivity_eval.py +44 -0
  272. {engraphis-1.5 → engraphis-1.7}/tests/test_protocol_upgrades.py +2 -2
  273. {engraphis-1.5 → engraphis-1.7}/tests/test_provider_error_redaction.py +3 -2
  274. {engraphis-1.5 → engraphis-1.7}/tests/test_public_readiness.py +73 -2
  275. {engraphis-1.5 → engraphis-1.7}/tests/test_public_research_boundary.py +15 -1
  276. {engraphis-1.5 → engraphis-1.7}/tests/test_railway_runtime.py +30 -1
  277. {engraphis-1.5 → engraphis-1.7}/tests/test_read_only_api.py +214 -1
  278. engraphis-1.7/tests/test_ready.py +163 -0
  279. {engraphis-1.5 → engraphis-1.7}/tests/test_recall.py +162 -7
  280. engraphis-1.7/tests/test_recall_arm_candidate_k_cap.py +266 -0
  281. {engraphis-1.5 → engraphis-1.7}/tests/test_recall_recovery.py +73 -0
  282. engraphis-1.7/tests/test_recall_release.py +280 -0
  283. {engraphis-1.5 → engraphis-1.7}/tests/test_receipts.py +90 -0
  284. engraphis-1.7/tests/test_release_evidence.py +1324 -0
  285. engraphis-1.7/tests/test_release_grounded_eval.py +32 -0
  286. {engraphis-1.5 → engraphis-1.7}/tests/test_release_infrastructure.py +119 -25
  287. engraphis-1.7/tests/test_release_manifest_gate.py +41 -0
  288. engraphis-1.7/tests/test_release_proactive_divergence.py +109 -0
  289. engraphis-1.7/tests/test_release_py39_parity.py +154 -0
  290. engraphis-1.7/tests/test_release_recall_contract.py +171 -0
  291. engraphis-1.7/tests/test_release_write_path.py +90 -0
  292. engraphis-1.7/tests/test_remember_many.py +374 -0
  293. {engraphis-1.5 → engraphis-1.7}/tests/test_rescan_poisoning.py +27 -0
  294. engraphis-1.7/tests/test_resolve.py +664 -0
  295. engraphis-1.7/tests/test_resources.py +300 -0
  296. {engraphis-1.5 → engraphis-1.7}/tests/test_retention.py +22 -0
  297. {engraphis-1.5 → engraphis-1.7}/tests/test_round17_fixes.py +29 -2
  298. {engraphis-1.5 → engraphis-1.7}/tests/test_savings.py +420 -218
  299. {engraphis-1.5 → engraphis-1.7}/tests/test_scoring.py +20 -0
  300. engraphis-1.7/tests/test_screen_demo.py +33 -0
  301. engraphis-1.7/tests/test_secret_hygiene.py +515 -0
  302. {engraphis-1.5 → engraphis-1.7}/tests/test_service.py +796 -12
  303. {engraphis-1.5 → engraphis-1.7}/tests/test_service_graph.py +510 -16
  304. engraphis-1.7/tests/test_session_start_hook.py +282 -0
  305. engraphis-1.7/tests/test_setup_plugin_distribution.py +91 -0
  306. engraphis-1.7/tests/test_skill_package.py +132 -0
  307. engraphis-1.7/tests/test_slider_response.py +111 -0
  308. {engraphis-1.5 → engraphis-1.7}/tests/test_smart_mcp_gateway.py +108 -8
  309. {engraphis-1.5 → engraphis-1.7}/tests/test_start_dashboard.py +142 -6
  310. engraphis-1.7/tests/test_store_class_integrity.py +172 -0
  311. {engraphis-1.5 → engraphis-1.7}/tests/test_store_v4_migration.py +222 -1
  312. {engraphis-1.5 → engraphis-1.7}/tests/test_sync.py +1622 -120
  313. {engraphis-1.5 → engraphis-1.7}/tests/test_sync_cli.py +170 -8
  314. {engraphis-1.5 → engraphis-1.7}/tests/test_sync_e2ee.py +98 -3
  315. {engraphis-1.5 → engraphis-1.7}/tests/test_sync_tombstones.py +333 -50
  316. {engraphis-1.5 → engraphis-1.7}/tests/test_update.py +36 -0
  317. {engraphis-1.5 → engraphis-1.7}/tests/test_update_check.py +429 -302
  318. {engraphis-1.5 → engraphis-1.7}/tests/test_user_model.py +58 -0
  319. engraphis-1.7/tests/test_v1_auto_migrate.py +335 -0
  320. {engraphis-1.5 → engraphis-1.7}/tests/test_v1_hardening.py +62 -1
  321. engraphis-1.7/tests/test_v1_ingest_trust.py +324 -0
  322. {engraphis-1.5 → engraphis-1.7}/tests/test_v1_licensing.py +20 -0
  323. engraphis-1.7/tests/test_v2_service_binding.py +536 -0
  324. {engraphis-1.5 → engraphis-1.7}/tests/test_vector_numpy.py +37 -2
  325. engraphis-1.7/tests/test_vector_sqlitevec_backend.py +703 -0
  326. {engraphis-1.5 → engraphis-1.7}/tests/test_workspace_ops.py +353 -12
  327. engraphis-1.5/docs/images/context-efficiency.svg +0 -106
  328. engraphis-1.5/engraphis/backends/embedder_st.py +0 -163
  329. engraphis-1.5/engraphis/backends/query_planner.py +0 -93
  330. engraphis-1.5/engraphis/backends/vector_sqlitevec.py +0 -286
  331. engraphis-1.5/engraphis/classic_assets/vendor/d3.min.js +0 -2
  332. engraphis-1.5/engraphis/classic_assets/vendor/force-graph.min.js +0 -5
  333. engraphis-1.5/engraphis/core/graph_scene.py +0 -1742
  334. engraphis-1.5/engraphis/core/ids.py +0 -57
  335. engraphis-1.5/engraphis/core/resolve.py +0 -220
  336. engraphis-1.5/engraphis/dashboard_app.py +0 -532
  337. engraphis-1.5/engraphis/dashboard_assets/engraphis-graph.js +0 -2273
  338. engraphis-1.5/engraphis/dashboard_assets/vendor/d3.min.js +0 -2
  339. engraphis-1.5/engraphis/dashboard_assets/vendor/force-graph.min.js +0 -5
  340. engraphis-1.5/engraphis/engines/reweight.py +0 -115
  341. engraphis-1.5/engraphis/models.py +0 -180
  342. engraphis-1.5/engraphis/read_only_api.py +0 -229
  343. engraphis-1.5/engraphis/static/vendor/d3.min.js +0 -2
  344. engraphis-1.5/engraphis/static/vendor/force-graph.min.js +0 -5
  345. engraphis-1.5/engraphis/stores/graph.py +0 -141
  346. engraphis-1.5/eval/datasets/sample.jsonl +0 -4
  347. engraphis-1.5/eval/longmemeval_v2_evidence.py +0 -349
  348. engraphis-1.5/eval/run_longmemeval_v2.py +0 -110
  349. engraphis-1.5/scripts/migrate_to_v2.py +0 -425
  350. engraphis-1.5/scripts/release_evidence.py +0 -464
  351. engraphis-1.5/scripts/repair_embed_dim.py +0 -97
  352. engraphis-1.5/scripts/sdk_compat.py +0 -45
  353. engraphis-1.5/scripts/seed_from_obsidian.py +0 -98
  354. engraphis-1.5/tests/test_cli_entrypoints.py +0 -342
  355. engraphis-1.5/tests/test_config.py +0 -217
  356. engraphis-1.5/tests/test_core_ids.py +0 -22
  357. engraphis-1.5/tests/test_encryption_dependency.py +0 -28
  358. engraphis-1.5/tests/test_extractor.py +0 -140
  359. engraphis-1.5/tests/test_graph_engine_asset.py +0 -2459
  360. engraphis-1.5/tests/test_graph_explorer_v2.py +0 -1828
  361. engraphis-1.5/tests/test_graph_scene_contract.py +0 -64
  362. engraphis-1.5/tests/test_hermes_integration.py +0 -85
  363. engraphis-1.5/tests/test_longmemeval_v2_evidence.py +0 -172
  364. engraphis-1.5/tests/test_longmemeval_v2_matrix.py +0 -15
  365. engraphis-1.5/tests/test_ready.py +0 -101
  366. engraphis-1.5/tests/test_release_evidence.py +0 -285
  367. engraphis-1.5/tests/test_resolve.py +0 -298
  368. engraphis-1.5/tests/test_resources.py +0 -125
  369. engraphis-1.5/tests/test_secret_hygiene.py +0 -246
  370. engraphis-1.5/tests/test_v1_auto_migrate.py +0 -126
  371. engraphis-1.5/tests/test_v1_ingest_trust.py +0 -151
  372. engraphis-1.5/tests/test_v2_service_binding.py +0 -57
  373. engraphis-1.5/tests/test_vector_sqlitevec_backend.py +0 -309
  374. {engraphis-1.5 → engraphis-1.7}/LICENSE +0 -0
  375. {engraphis-1.5 → engraphis-1.7}/docker-compose.lan.yml +0 -0
  376. {engraphis-1.5 → engraphis-1.7}/docker-compose.yml +0 -0
  377. {engraphis-1.5 → engraphis-1.7}/docker-entrypoint.sh +0 -0
  378. {engraphis-1.5 → engraphis-1.7}/engraphis/ai_context.py +0 -0
  379. {engraphis-1.5 → engraphis-1.7}/engraphis/backends/__init__.py +0 -0
  380. {engraphis-1.5 → engraphis-1.7}/engraphis/backends/model_source.py +0 -0
  381. {engraphis-1.5 → engraphis-1.7}/engraphis/classic_assets/__init__.py +0 -0
  382. {engraphis-1.5 → engraphis-1.7}/engraphis/classic_assets/engraphis-graph.js +0 -0
  383. {engraphis-1.5 → engraphis-1.7}/engraphis/classic_assets/engraphis-icon.png +0 -0
  384. {engraphis-1.5 → engraphis-1.7}/engraphis/classic_assets/engraphis.ico +0 -0
  385. {engraphis-1.5 → engraphis-1.7}/engraphis/classic_assets/favicon-32.png +0 -0
  386. {engraphis-1.5 → engraphis-1.7}/engraphis/classic_assets/vendor/d3.LICENSE +0 -0
  387. {engraphis-1.5 → engraphis-1.7}/engraphis/classic_assets/vendor/force-graph.LICENSE +0 -0
  388. {engraphis-1.5 → engraphis-1.7}/engraphis/classic_assets/vendor/marked.LICENSE +0 -0
  389. {engraphis-1.5 → engraphis-1.7}/engraphis/classic_assets/vendor/marked.min.js +0 -0
  390. {engraphis-1.5 → engraphis-1.7}/engraphis/classic_assets/vendor/purify.min.js +0 -0
  391. {engraphis-1.5 → engraphis-1.7}/engraphis/commercial.py +0 -0
  392. {engraphis-1.5 → engraphis-1.7}/engraphis/core/adaptive_context.py +0 -0
  393. {engraphis-1.5 → engraphis-1.7}/engraphis/core/codegraph_export.py +0 -0
  394. {engraphis-1.5 → engraphis-1.7}/engraphis/core/conflicts.py +0 -0
  395. {engraphis-1.5 → engraphis-1.7}/engraphis/core/graph_layers.py +0 -0
  396. {engraphis-1.5 → engraphis-1.7}/engraphis/core/graph_policy.py +0 -0
  397. {engraphis-1.5 → engraphis-1.7}/engraphis/core/retention_policy.py +0 -0
  398. {engraphis-1.5 → engraphis-1.7}/engraphis/core/savings.py +0 -0
  399. {engraphis-1.5 → engraphis-1.7}/engraphis/core/secrets.py +0 -0
  400. {engraphis-1.5 → engraphis-1.7}/engraphis/core/textutil.py +0 -0
  401. {engraphis-1.5 → engraphis-1.7}/engraphis/dashboard_assets/__init__.py +0 -0
  402. {engraphis-1.5 → engraphis-1.7}/engraphis/dashboard_assets/engraphis-graph-compat.js +0 -0
  403. {engraphis-1.5 → engraphis-1.7}/engraphis/dashboard_assets/engraphis-icon.png +0 -0
  404. {engraphis-1.5 → engraphis-1.7}/engraphis/dashboard_assets/engraphis.ico +0 -0
  405. {engraphis-1.5 → engraphis-1.7}/engraphis/dashboard_assets/favicon-32.png +0 -0
  406. {engraphis-1.5 → engraphis-1.7}/engraphis/dashboard_assets/vendor/d3.LICENSE +0 -0
  407. {engraphis-1.5 → engraphis-1.7}/engraphis/dashboard_assets/vendor/force-graph.LICENSE +0 -0
  408. {engraphis-1.5 → engraphis-1.7}/engraphis/engines/__init__.py +0 -0
  409. {engraphis-1.5 → engraphis-1.7}/engraphis/inspector/__init__.py +0 -0
  410. {engraphis-1.5 → engraphis-1.7}/engraphis/licensing.py +0 -0
  411. {engraphis-1.5 → engraphis-1.7}/engraphis/llm/__init__.py +0 -0
  412. {engraphis-1.5 → engraphis-1.7}/engraphis/local_auth.py +0 -0
  413. {engraphis-1.5 → engraphis-1.7}/engraphis/logging_setup.py +0 -0
  414. {engraphis-1.5 → engraphis-1.7}/engraphis/netutil.py +0 -0
  415. {engraphis-1.5 → engraphis-1.7}/engraphis/observability.py +0 -0
  416. {engraphis-1.5 → engraphis-1.7}/engraphis/redirector.py +0 -0
  417. {engraphis-1.5 → engraphis-1.7}/engraphis/routes/__init__.py +0 -0
  418. {engraphis-1.5 → engraphis-1.7}/engraphis/static/__init__.py +0 -0
  419. {engraphis-1.5 → engraphis-1.7}/engraphis/static/engraphis-graph.js +0 -0
  420. {engraphis-1.5 → engraphis-1.7}/engraphis/static/engraphis-icon.png +0 -0
  421. {engraphis-1.5 → engraphis-1.7}/engraphis/static/engraphis.ico +0 -0
  422. {engraphis-1.5 → engraphis-1.7}/engraphis/static/favicon-32.png +0 -0
  423. {engraphis-1.5 → engraphis-1.7}/engraphis/static/vendor/d3.LICENSE +0 -0
  424. {engraphis-1.5 → engraphis-1.7}/engraphis/static/vendor/force-graph.LICENSE +0 -0
  425. {engraphis-1.5 → engraphis-1.7}/engraphis/static/vendor/marked.LICENSE +0 -0
  426. {engraphis-1.5 → engraphis-1.7}/engraphis/static/vendor/marked.min.js +0 -0
  427. {engraphis-1.5 → engraphis-1.7}/engraphis/static/vendor/purify.min.js +0 -0
  428. {engraphis-1.5 → engraphis-1.7}/engraphis.egg-info/dependency_links.txt +0 -0
  429. {engraphis-1.5 → engraphis-1.7}/engraphis.egg-info/top_level.txt +0 -0
  430. {engraphis-1.5 → engraphis-1.7}/eval/BASELINES.md +0 -0
  431. {engraphis-1.5 → engraphis-1.7}/eval/__init__.py +0 -0
  432. {engraphis-1.5 → engraphis-1.7}/eval/adversarial_memory_security.py +0 -0
  433. {engraphis-1.5 → engraphis-1.7}/eval/chunking_eval.py +0 -0
  434. {engraphis-1.5 → engraphis-1.7}/eval/code_agent_ab.py +0 -0
  435. {engraphis-1.5 → engraphis-1.7}/eval/configs/longmemeval_v2_engraphis.json +0 -0
  436. {engraphis-1.5 → engraphis-1.7}/eval/configs/longmemeval_v2_engraphis_planner.json +0 -0
  437. {engraphis-1.5 → engraphis-1.7}/eval/consolidation_ranking.py +0 -0
  438. {engraphis-1.5 → engraphis-1.7}/eval/context_economy.py +0 -0
  439. {engraphis-1.5 → engraphis-1.7}/eval/datasets/adversarial.jsonl +0 -0
  440. {engraphis-1.5 → engraphis-1.7}/eval/datasets/codemem.jsonl +0 -0
  441. {engraphis-1.5 → engraphis-1.7}/eval/datasets/consolidation_ranking.jsonl +0 -0
  442. {engraphis-1.5 → engraphis-1.7}/eval/datasets/context_routing_stress.jsonl +0 -0
  443. {engraphis-1.5 → engraphis-1.7}/eval/datasets/graph_layer_routing.jsonl +0 -0
  444. {engraphis-1.5 → engraphis-1.7}/eval/datasets/graph_multihop.jsonl +0 -0
  445. {engraphis-1.5 → engraphis-1.7}/eval/datasets/locomo10_repair_manifest.json +0 -0
  446. {engraphis-1.5 → engraphis-1.7}/eval/datasets/longdoc.jsonl +0 -0
  447. {engraphis-1.5 → engraphis-1.7}/eval/datasets/proactive_ranking.jsonl +0 -0
  448. {engraphis-1.5 → engraphis-1.7}/eval/datasets/redteam_poisoning.jsonl +0 -0
  449. {engraphis-1.5 → engraphis-1.7}/eval/external.py +0 -0
  450. {engraphis-1.5 → engraphis-1.7}/eval/graph_traversal.py +0 -0
  451. {engraphis-1.5 → engraphis-1.7}/eval/hosted_evidence.py +0 -0
  452. {engraphis-1.5 → engraphis-1.7}/eval/hosted_luna.py +0 -0
  453. {engraphis-1.5 → engraphis-1.7}/eval/planned_recall.py +0 -0
  454. {engraphis-1.5 → engraphis-1.7}/eval/proactive_ranking.py +0 -0
  455. {engraphis-1.5 → engraphis-1.7}/eval/redteam_poisoning.py +0 -0
  456. {engraphis-1.5 → engraphis-1.7}/eval/resource_hierarchy.py +0 -0
  457. {engraphis-1.5 → engraphis-1.7}/eval/vector_scale.py +0 -0
  458. {engraphis-1.5 → engraphis-1.7}/railway.json +0 -0
  459. {engraphis-1.5 → engraphis-1.7}/scripts/__init__.py +0 -0
  460. {engraphis-1.5 → engraphis-1.7}/scripts/inspector.py +0 -0
  461. {engraphis-1.5 → engraphis-1.7}/scripts/legacy_reference.py +0 -0
  462. {engraphis-1.5 → engraphis-1.7}/scripts/mcp_server_http.py +0 -0
  463. {engraphis-1.5 → engraphis-1.7}/scripts/normalize_sdist.py +0 -0
  464. {engraphis-1.5 → engraphis-1.7}/scripts/rescan_poisoning.py +0 -0
  465. {engraphis-1.5 → engraphis-1.7}/scripts/run_public_benchmark.py +0 -0
  466. {engraphis-1.5 → engraphis-1.7}/scripts/start_server.py +0 -0
  467. {engraphis-1.5 → engraphis-1.7}/scripts/verify_release_artifacts.py +0 -0
  468. {engraphis-1.5 → engraphis-1.7}/setup.cfg +0 -0
  469. {engraphis-1.5 → engraphis-1.7}/setup.py +0 -0
  470. {engraphis-1.5 → engraphis-1.7}/tests/__init__.py +0 -0
  471. {engraphis-1.5 → engraphis-1.7}/tests/conftest.py +0 -0
  472. {engraphis-1.5 → engraphis-1.7}/tests/test_adaptive_context.py +0 -0
  473. {engraphis-1.5 → engraphis-1.7}/tests/test_adaptive_context_route.py +0 -0
  474. {engraphis-1.5 → engraphis-1.7}/tests/test_app_auth.py +0 -0
  475. {engraphis-1.5 → engraphis-1.7}/tests/test_artifact_smoke.py +0 -0
  476. {engraphis-1.5 → engraphis-1.7}/tests/test_benchmark_adversarial.py +0 -0
  477. {engraphis-1.5 → engraphis-1.7}/tests/test_chunking_eval.py +0 -0
  478. {engraphis-1.5 → engraphis-1.7}/tests/test_client_launch.py +0 -0
  479. {engraphis-1.5 → engraphis-1.7}/tests/test_code_agent_ab.py +0 -0
  480. {engraphis-1.5 → engraphis-1.7}/tests/test_code_index_route_security.py +0 -0
  481. {engraphis-1.5 → engraphis-1.7}/tests/test_code_recall_arm.py +0 -0
  482. {engraphis-1.5 → engraphis-1.7}/tests/test_commercial_hardening.py +0 -0
  483. {engraphis-1.5 → engraphis-1.7}/tests/test_compact_recall.py +0 -0
  484. {engraphis-1.5 → engraphis-1.7}/tests/test_conflict_repair.py +0 -0
  485. {engraphis-1.5 → engraphis-1.7}/tests/test_conflicts.py +0 -0
  486. {engraphis-1.5 → engraphis-1.7}/tests/test_consolidation_loop.py +0 -0
  487. {engraphis-1.5 → engraphis-1.7}/tests/test_cron_write_tools_workspace_default.py +0 -0
  488. {engraphis-1.5 → engraphis-1.7}/tests/test_customer_node_hardening.py +0 -0
  489. {engraphis-1.5 → engraphis-1.7}/tests/test_dashboard_dream_ui.py +0 -0
  490. {engraphis-1.5 → engraphis-1.7}/tests/test_decay_idempotent.py +0 -0
  491. {engraphis-1.5 → engraphis-1.7}/tests/test_entity_resolution.py +0 -0
  492. {engraphis-1.5 → engraphis-1.7}/tests/test_eval_ablation.py +0 -0
  493. {engraphis-1.5 → engraphis-1.7}/tests/test_eval_adversarial_memory_security.py +0 -0
  494. {engraphis-1.5 → engraphis-1.7}/tests/test_eval_consolidation_ranking.py +0 -0
  495. {engraphis-1.5 → engraphis-1.7}/tests/test_eval_external_locomo_evidence.py +0 -0
  496. {engraphis-1.5 → engraphis-1.7}/tests/test_eval_graph_traversal.py +0 -0
  497. {engraphis-1.5 → engraphis-1.7}/tests/test_eval_grounded.py +0 -0
  498. {engraphis-1.5 → engraphis-1.7}/tests/test_eval_redteam_poisoning.py +0 -0
  499. {engraphis-1.5 → engraphis-1.7}/tests/test_externalize_dashboard_assets.py +0 -0
  500. {engraphis-1.5 → engraphis-1.7}/tests/test_graph_extractor.py +0 -0
  501. {engraphis-1.5 → engraphis-1.7}/tests/test_graphrank.py +0 -0
  502. {engraphis-1.5 → engraphis-1.7}/tests/test_hosted_evidence.py +0 -0
  503. {engraphis-1.5 → engraphis-1.7}/tests/test_hosted_luna.py +0 -0
  504. {engraphis-1.5 → engraphis-1.7}/tests/test_intent_paywall.py +0 -0
  505. {engraphis-1.5 → engraphis-1.7}/tests/test_licensing_boundary_docs.py +0 -0
  506. {engraphis-1.5 → engraphis-1.7}/tests/test_licensing_launch.py +0 -0
  507. {engraphis-1.5 → engraphis-1.7}/tests/test_llm_config.py +0 -0
  508. {engraphis-1.5 → engraphis-1.7}/tests/test_local_auth_browser_session.py +0 -0
  509. {engraphis-1.5 → engraphis-1.7}/tests/test_logging_setup.py +0 -0
  510. {engraphis-1.5 → engraphis-1.7}/tests/test_merge.py +0 -0
  511. {engraphis-1.5 → engraphis-1.7}/tests/test_netutil.py +0 -0
  512. {engraphis-1.5 → engraphis-1.7}/tests/test_observability.py +0 -0
  513. {engraphis-1.5 → engraphis-1.7}/tests/test_personal_folders.py +0 -0
  514. {engraphis-1.5 → engraphis-1.7}/tests/test_planned_recall_eval.py +0 -0
  515. {engraphis-1.5 → engraphis-1.7}/tests/test_private_state_boundaries.py +0 -0
  516. {engraphis-1.5 → engraphis-1.7}/tests/test_proactive_context.py +0 -0
  517. {engraphis-1.5 → engraphis-1.7}/tests/test_proactive_ranking.py +0 -0
  518. {engraphis-1.5 → engraphis-1.7}/tests/test_provenance_flags.py +0 -0
  519. {engraphis-1.5 → engraphis-1.7}/tests/test_provider_docs.py +0 -0
  520. {engraphis-1.5 → engraphis-1.7}/tests/test_public_benchmark_workflow.py +0 -0
  521. {engraphis-1.5 → engraphis-1.7}/tests/test_public_retrieval_benchmark_workflow.py +0 -0
  522. {engraphis-1.5 → engraphis-1.7}/tests/test_recall_entity_workspace_widening.py +0 -0
  523. {engraphis-1.5 → engraphis-1.7}/tests/test_relay_device_credentials.py +0 -0
  524. {engraphis-1.5 → engraphis-1.7}/tests/test_release_artifacts.py +0 -0
  525. {engraphis-1.5 → engraphis-1.7}/tests/test_remember_atomicity.py +0 -0
  526. {engraphis-1.5 → engraphis-1.7}/tests/test_reproducible_sdist.py +0 -0
  527. {engraphis-1.5 → engraphis-1.7}/tests/test_resource_hierarchy_eval.py +0 -0
  528. {engraphis-1.5 → engraphis-1.7}/tests/test_retention_policy.py +0 -0
  529. {engraphis-1.5 → engraphis-1.7}/tests/test_retrieval_policy.py +0 -0
  530. {engraphis-1.5 → engraphis-1.7}/tests/test_run_public_benchmark.py +0 -0
  531. {engraphis-1.5 → engraphis-1.7}/tests/test_secrets_edge_cases.py +0 -0
  532. {engraphis-1.5 → engraphis-1.7}/tests/test_security_fixes.py +0 -0
  533. {engraphis-1.5 → engraphis-1.7}/tests/test_service_isolation.py +0 -0
  534. {engraphis-1.5 → engraphis-1.7}/tests/test_session_idempotent.py +0 -0
  535. {engraphis-1.5 → engraphis-1.7}/tests/test_start_session_workspace_default.py +0 -0
  536. {engraphis-1.5 → engraphis-1.7}/tests/test_sync_dashboard.py +0 -0
  537. {engraphis-1.5 → engraphis-1.7}/tests/test_vector_scale.py +0 -0
  538. {engraphis-1.5 → engraphis-1.7}/tests/test_workspace_isolation.py +0 -0
@@ -1,11 +1,15 @@
1
1
  # ── Engraphis Configuration ──────────────────────────────────────────
2
- # Copy this file to .env and edit only the settings you need. Commented values preserve
3
- # the platform-aware defaults in engraphis/config.py; hosted deployments additionally
4
- # require the authentication and public-URL settings described below.
2
+ # Put the settings you need in the owner-private `~/.engraphis/config.env` created by
3
+ # `engraphis-init`, or export them in the process environment. To select another file,
4
+ # export ENGRAPHIS_ENV_FILE as an absolute owner-private regular-file path before launch.
5
+ # Engraphis deliberately ignores arbitrary working-directory `.env` files.
5
6
 
6
7
  # ── Server ──────────────────────────────────────────────────────────────────
7
8
  ENGRAPHIS_HOST=127.0.0.1
8
9
  ENGRAPHIS_PORT=8700
10
+ # Port precedence for the dashboard bind: a platform-injected $PORT (Railway/Fly/Heroku)
11
+ # wins over ENGRAPHIS_PORT; local and Compose runs without $PORT use ENGRAPHIS_PORT.
12
+ # Docker Compose pins both PORT and ENGRAPHIS_PORT to ENGRAPHIS_COMPOSE_PORT (below).
9
13
  # The public package supports only customer mode: dashboard, memory, and managed-service
10
14
  # clients. Hosted vendor, relay, compute, and worker roles are not distributed here.
11
15
  ENGRAPHIS_SERVICE_MODE=customer
@@ -79,6 +83,8 @@ ENGRAPHIS_EMBED_MODEL=sentence-transformers/all-MiniLM-L6-v2
79
83
  # ENGRAPHIS_EMBED_REVISION=<lowercase 40-character model commit>
80
84
  # Reject mutable remote embedding, reranker, and chunk-tokenizer tags before loading. Off by default.
81
85
  # ENGRAPHIS_REQUIRE_IMMUTABLE_MODELS=0
86
+ # Fail startup when a configured optional backend cannot load instead of silently falling back.
87
+ # ENGRAPHIS_REQUIRE_EXACT_BACKENDS=0
82
88
  # Embedding dimension is auto-detected from the model. Override only if needed.
83
89
  # ENGRAPHIS_EMBED_DIM=384
84
90
  # Vector index backend for server entrypoints: "auto" (default; use sqlite-vec when
@@ -204,17 +210,17 @@ ENGRAPHIS_LLM_MODEL=gpt-4o-mini
204
210
  # engraphis connect --token engr_ct_... # the command your account portal shows
205
211
  # printf %s "$TOKEN" | engraphis connect --token - # keep the token out of shell history
206
212
  #
207
- # That is the supported way to connect a client. It redeems the one-time connect token, saves
208
- # the rotating refresh credential with 0600 permissions, and keeps it rotated afterwards, so
209
- # none of the variables below are needed on an interactive machine. Set
210
- # ENGRAPHIS_CLOUD_COMPUTE_URL (or pass --compute-url) only if your account portal shows a
211
- # compute endpoint different from the default. See docs/AGENT_CONNECT.md.
213
+ # That is the supported way to connect a client. It redeems the one-time connect token,
214
+ # saves the rotating refresh credential with 0600 permissions, and keeps it rotated.
215
+ # The saved control and compute endpoints are immutable members of that credential family:
216
+ # later environment changes cannot redirect its refresh or workspace upload. Reconnect
217
+ # explicitly to change either endpoint. See docs/AGENT_CONNECT.md.
212
218
  #
213
- # For non-interactive deployments a refresh credential may be injected as a bootstrap secret.
214
- # It rotates on use; the owner-only saved replacement takes precedence afterward, even while
215
- # the environment variable remains set. Never commit it. Bind environment-only bootstrap
216
- # credentials to the subject assigned at onboarding (device or member). A short-lived access
217
- # token is supported for jobs.
219
+ # For non-interactive deployments a refresh credential may be injected as a bootstrap
220
+ # secret. It rotates on use; the owner-only saved replacement and its bound endpoints take
221
+ # precedence afterward, even while the environment variables remain set. Never commit it.
222
+ # Bind environment-only bootstrap credentials to the subject assigned at onboarding
223
+ # (device or member). A short-lived access token is supported for jobs.
218
224
  # ENGRAPHIS_CLOUD_REFRESH_CREDENTIAL=
219
225
  # ENGRAPHIS_CLOUD_TOKEN_SUBJECT=member
220
226
  # ENGRAPHIS_CLOUD_ACCESS_TOKEN=
@@ -320,13 +326,14 @@ ENGRAPHIS_LLM_MODEL=gpt-4o-mini
320
326
  # rerankers when ENGRAPHIS_REQUIRE_IMMUTABLE_MODELS=1.
321
327
  # ENGRAPHIS_RERANK_REVISION=<lowercase 40-character model commit>
322
328
 
323
- # Workspace allow-list: comma-separated names. Empty = all allowed.
324
- # ENGRAPHIS_WORKSPACES=acme,personal
325
-
326
329
  # Cloud Sync relay: endpoint and optional token for self-hosted relay.
327
330
  # ENGRAPHIS_RELAY_URL=https://relay.example.com
328
331
  # ENGRAPHIS_SYNC_TOKEN=
329
332
  # ENGRAPHIS_SYNC_READ_ONLY=0
333
+ # Origin binding for standalone sync tokens. Must match the relay origin that issued
334
+ # the token; prevents cross-origin token reuse. Required when using ENGRAPHIS_SYNC_TOKEN
335
+ # without a full session credential.
336
+ # ENGRAPHIS_SYNC_TOKEN_ORIGIN=https://relay.example.com
330
337
  # End-to-end encryption key for Cloud Sync bundles (relay transport). A single
331
338
  # immutable 32-byte URL-safe base64 value (43 chars, or 44 with one '=' pad) that
332
339
  # every authorized device shares; changing it makes previously stored ciphertext
@@ -338,7 +345,8 @@ ENGRAPHIS_LLM_MODEL=gpt-4o-mini
338
345
  # ENGRAPHIS_PRO_UPGRADE_URL=
339
346
  # ENGRAPHIS_TEAM_UPGRADE_URL=
340
347
 
341
- # Update check cache duration (seconds). Default: 86400 (1 day).
348
+ # Update check cache duration (seconds), bounded to 1..31622400. Invalid values use the
349
+ # 86400-second (1 day) default. The cache path is fixed under owner-private Engraphis state.
342
350
  # ENGRAPHIS_UPDATE_CACHE=86400
343
351
 
344
352
  # Legacy inspector port (retired 2026-07-10; redirects to dashboard).