vault-graph 0.1.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (350) hide show
  1. vault_graph-0.1.0/.github/workflows/ci.yml +27 -0
  2. vault_graph-0.1.0/.github/workflows/publish-pypi.yml +37 -0
  3. vault_graph-0.1.0/.github/workflows/publish-testpypi.yml +35 -0
  4. vault_graph-0.1.0/.gitignore +8 -0
  5. vault_graph-0.1.0/AGENTS.md +138 -0
  6. vault_graph-0.1.0/LICENSE +21 -0
  7. vault_graph-0.1.0/PKG-INFO +222 -0
  8. vault_graph-0.1.0/README.md +193 -0
  9. vault_graph-0.1.0/configs/vaults.yaml +13 -0
  10. vault_graph-0.1.0/docs/CONVENTIONS.md +129 -0
  11. vault_graph-0.1.0/docs/DECISIONS.md +397 -0
  12. vault_graph-0.1.0/docs/DESIGN.md +1754 -0
  13. vault_graph-0.1.0/docs/FEATURES.md +702 -0
  14. vault_graph-0.1.0/docs/PATCH_LOG.md +1991 -0
  15. vault_graph-0.1.0/docs/PUBLISHING.md +106 -0
  16. vault_graph-0.1.0/docs/SEARCH_ARCHITECTURE.md +418 -0
  17. vault_graph-0.1.0/docs/SPEC.md +2665 -0
  18. vault_graph-0.1.0/docs/stenc/.gitignore +9 -0
  19. vault_graph-0.1.0/docs/stenc/content/plans/2026-06-05-phase-1-vault-catalog-metadata.plan.json +1554 -0
  20. vault_graph-0.1.0/docs/stenc/content/plans/2026-06-08-phase-2a-retrieval-contract-vectorstore-boundary.plan.json +1232 -0
  21. vault_graph-0.1.0/docs/stenc/content/plans/2026-06-08-phase-2b-local-vector-indexing.plan.json +1685 -0
  22. vault_graph-0.1.0/docs/stenc/content/plans/2026-06-09-phase-2c-evidence-first-keyword-vector-search.plan.json +1763 -0
  23. vault_graph-0.1.0/docs/stenc/content/plans/2026-06-10-phase-3a-graphstore-contract-readiness.plan.json +1519 -0
  24. vault_graph-0.1.0/docs/stenc/content/plans/2026-06-11-phase-3b-local-entity-relationship-indexing.plan.json +1895 -0
  25. vault_graph-0.1.0/docs/stenc/content/plans/2026-06-11-phase-3c-graph-projection-retrieval.plan.json +1875 -0
  26. vault_graph-0.1.0/docs/stenc/content/plans/2026-06-12-phase-4a-context-pack-contract-builder-boundary.plan.json +1617 -0
  27. vault_graph-0.1.0/docs/stenc/content/plans/2026-06-12-phase-4b-local-context-pack-assembly-rendering.plan.json +1348 -0
  28. vault_graph-0.1.0/docs/stenc/content/plans/2026-06-15-phase-5a-mcp-server-foundation-stdio.plan.json +1466 -0
  29. vault_graph-0.1.0/docs/stenc/content/plans/2026-06-17-phase-5b-mcp-resources-context-pack-resources.plan.json +1635 -0
  30. vault_graph-0.1.0/docs/stenc/content/plans/2026-06-18-phase-5c-mcp-tools-prompts-agent-workflows-ko.plan.json +828 -0
  31. vault_graph-0.1.0/docs/stenc/content/site.json +4 -0
  32. vault_graph-0.1.0/docs/stenc/content/specs/2026-06-08-phase-2a-retrieval-contract-vectorstore-boundary-design.spec.json +937 -0
  33. vault_graph-0.1.0/docs/stenc/content/specs/2026-06-08-phase-2b-local-vector-indexing-design.spec.json +854 -0
  34. vault_graph-0.1.0/docs/stenc/content/specs/2026-06-09-phase-2c-evidence-first-keyword-vector-search-design.spec.json +806 -0
  35. vault_graph-0.1.0/docs/stenc/content/specs/2026-06-10-phase-3-overview-design.spec.json +526 -0
  36. vault_graph-0.1.0/docs/stenc/content/specs/2026-06-10-phase-3a-graphstore-contract-readiness-design.spec.json +885 -0
  37. vault_graph-0.1.0/docs/stenc/content/specs/2026-06-10-phase-3b-local-entity-relationship-indexing-design.spec.json +906 -0
  38. vault_graph-0.1.0/docs/stenc/content/specs/2026-06-10-phase-3c-graph-projection-retrieval-design.spec.json +931 -0
  39. vault_graph-0.1.0/docs/stenc/content/specs/2026-06-12-phase-4-context-pack-overview-design.spec.json +517 -0
  40. vault_graph-0.1.0/docs/stenc/content/specs/2026-06-12-phase-4a-context-pack-contract-builder-boundary-design.spec.json +717 -0
  41. vault_graph-0.1.0/docs/stenc/content/specs/2026-06-12-phase-4b-local-context-pack-assembly-rendering-design.spec.json +645 -0
  42. vault_graph-0.1.0/docs/stenc/content/specs/2026-06-15-phase-5-mcp-server-overview-design.spec.json +556 -0
  43. vault_graph-0.1.0/docs/stenc/content/specs/2026-06-15-phase-5a-mcp-server-foundation-stdio-design.spec.json +699 -0
  44. vault_graph-0.1.0/docs/stenc/content/specs/2026-06-15-phase-5b-mcp-resources-context-pack-resources-design.spec.json +1121 -0
  45. vault_graph-0.1.0/docs/stenc/content/specs/2026-06-15-phase-5c-mcp-tools-prompts-agent-workflows-design.spec.json +1430 -0
  46. vault_graph-0.1.0/docs/stenc/content/specs/specs-phase-3-context.spec.json +310 -0
  47. vault_graph-0.1.0/docs/stenc/content/specs/specs-phase-3-readme.spec.json +254 -0
  48. vault_graph-0.1.0/docs/stenc/content/specs/specs-phase-4-readme.spec.json +252 -0
  49. vault_graph-0.1.0/docs/stenc/content/specs/specs-phase-5-readme.spec.json +252 -0
  50. vault_graph-0.1.0/docs/superpowers/plans/2026-06-05-phase-1-vault-catalog-metadata.md +1783 -0
  51. vault_graph-0.1.0/docs/superpowers/plans/2026-06-08-phase-2a-retrieval-contract-vectorstore-boundary.md +1852 -0
  52. vault_graph-0.1.0/docs/superpowers/plans/2026-06-08-phase-2b-local-vector-indexing.md +2388 -0
  53. vault_graph-0.1.0/docs/superpowers/plans/2026-06-09-phase-2c-evidence-first-keyword-vector-search.md +2867 -0
  54. vault_graph-0.1.0/docs/superpowers/plans/2026-06-10-phase-3a-graphstore-contract-readiness.md +2708 -0
  55. vault_graph-0.1.0/docs/superpowers/plans/2026-06-11-phase-3b-local-entity-relationship-indexing.md +1896 -0
  56. vault_graph-0.1.0/docs/superpowers/plans/2026-06-11-phase-3c-graph-projection-retrieval.md +2755 -0
  57. vault_graph-0.1.0/docs/superpowers/plans/2026-06-12-phase-4a-context-pack-contract-builder-boundary.md +1545 -0
  58. vault_graph-0.1.0/docs/superpowers/plans/2026-06-12-phase-4b-local-context-pack-assembly-rendering.md +1774 -0
  59. vault_graph-0.1.0/docs/superpowers/plans/2026-06-15-phase-5a-mcp-server-foundation-stdio.md +1779 -0
  60. vault_graph-0.1.0/docs/superpowers/plans/2026-06-17-phase-5b-mcp-resources-context-pack-resources.md +1544 -0
  61. vault_graph-0.1.0/docs/superpowers/plans/2026-06-18-phase-5c-mcp-tools-prompts-agent-workflows-ko.md +827 -0
  62. vault_graph-0.1.0/docs/superpowers/plans/2026-06-18-phase-5c-mcp-tools-prompts-agent-workflows.md +2039 -0
  63. vault_graph-0.1.0/docs/superpowers/plans/2026-06-19-phase-6a-result-explanation-contract.md +1336 -0
  64. vault_graph-0.1.0/docs/superpowers/plans/2026-06-19-phase-6b-project-decision-issue-memory.md +1808 -0
  65. vault_graph-0.1.0/docs/superpowers/plans/2026-06-22-phase-6c-timeline-health-explorer.md +3056 -0
  66. vault_graph-0.1.0/docs/superpowers/plans/2026-06-23-acceptance-review-guide.md +649 -0
  67. vault_graph-0.1.0/docs/superpowers/plans/2026-06-23-implementation-success-criteria-acceptance-review.md +794 -0
  68. vault_graph-0.1.0/docs/superpowers/plans/2026-06-26-cli-todo-command-implementation.md +1475 -0
  69. vault_graph-0.1.0/docs/superpowers/plans/2026-06-26-evidence-first-ask-and-reasoning.md +1457 -0
  70. vault_graph-0.1.0/docs/superpowers/reviews/2026-06-23-implementation-success-criteria-acceptance-review-ko.md +220 -0
  71. vault_graph-0.1.0/docs/superpowers/reviews/2026-06-23-implementation-success-criteria-acceptance-review.md +218 -0
  72. vault_graph-0.1.0/docs/superpowers/specs/2026-06-08-phase-2a-retrieval-contract-vectorstore-boundary-design.md +742 -0
  73. vault_graph-0.1.0/docs/superpowers/specs/2026-06-08-phase-2b-local-vector-indexing-design.md +692 -0
  74. vault_graph-0.1.0/docs/superpowers/specs/2026-06-09-phase-2c-evidence-first-keyword-vector-search-design.md +612 -0
  75. vault_graph-0.1.0/docs/superpowers/specs/2026-06-24-cli-todo-command-implementation-design.md +715 -0
  76. vault_graph-0.1.0/docs/superpowers/specs/2026-06-25-evidence-first-ask-and-reasoning-design.md +1065 -0
  77. vault_graph-0.1.0/docs/superpowers/specs/2026-06-29-okf-compatible-vault-graph-projection-design.md +665 -0
  78. vault_graph-0.1.0/docs/superpowers/specs/phase-3/2026-06-10-phase-3-overview-design.md +180 -0
  79. vault_graph-0.1.0/docs/superpowers/specs/phase-3/2026-06-10-phase-3a-graphstore-contract-readiness-design.md +711 -0
  80. vault_graph-0.1.0/docs/superpowers/specs/phase-3/2026-06-10-phase-3b-local-entity-relationship-indexing-design.md +1021 -0
  81. vault_graph-0.1.0/docs/superpowers/specs/phase-3/2026-06-10-phase-3c-graph-projection-retrieval-design.md +1037 -0
  82. vault_graph-0.1.0/docs/superpowers/specs/phase-3/CONTEXT.md +122 -0
  83. vault_graph-0.1.0/docs/superpowers/specs/phase-3/README.md +26 -0
  84. vault_graph-0.1.0/docs/superpowers/specs/phase-4/2026-06-12-phase-4-context-pack-overview-design.md +155 -0
  85. vault_graph-0.1.0/docs/superpowers/specs/phase-4/2026-06-12-phase-4a-context-pack-contract-builder-boundary-design.md +528 -0
  86. vault_graph-0.1.0/docs/superpowers/specs/phase-4/2026-06-12-phase-4b-local-context-pack-assembly-rendering-design.md +312 -0
  87. vault_graph-0.1.0/docs/superpowers/specs/phase-4/README.md +23 -0
  88. vault_graph-0.1.0/docs/superpowers/specs/phase-5/2026-06-15-phase-5-mcp-server-overview-design.md +188 -0
  89. vault_graph-0.1.0/docs/superpowers/specs/phase-5/2026-06-15-phase-5a-mcp-server-foundation-stdio-design.md +276 -0
  90. vault_graph-0.1.0/docs/superpowers/specs/phase-5/2026-06-15-phase-5b-mcp-resources-context-pack-resources-design.md +822 -0
  91. vault_graph-0.1.0/docs/superpowers/specs/phase-5/2026-06-15-phase-5c-mcp-tools-prompts-agent-workflows-design.md +961 -0
  92. vault_graph-0.1.0/docs/superpowers/specs/phase-5/README.md +25 -0
  93. vault_graph-0.1.0/docs/superpowers/specs/phase-5/codex-local-stdio-config.example.json +17 -0
  94. vault_graph-0.1.0/docs/superpowers/specs/phase-6/2026-06-18-phase-6-memory-and-explorer-views-overview-design-ko.md +230 -0
  95. vault_graph-0.1.0/docs/superpowers/specs/phase-6/2026-06-18-phase-6-memory-and-explorer-views-overview-design.md +234 -0
  96. vault_graph-0.1.0/docs/superpowers/specs/phase-6/2026-06-18-phase-6a-result-explanation-contract-design-ko.md +317 -0
  97. vault_graph-0.1.0/docs/superpowers/specs/phase-6/2026-06-18-phase-6a-result-explanation-contract-design.md +317 -0
  98. vault_graph-0.1.0/docs/superpowers/specs/phase-6/2026-06-18-phase-6b-project-decision-issue-memory-design-ko.md +976 -0
  99. vault_graph-0.1.0/docs/superpowers/specs/phase-6/2026-06-18-phase-6b-project-decision-issue-memory-design.md +995 -0
  100. vault_graph-0.1.0/docs/superpowers/specs/phase-6/2026-06-18-phase-6c-timeline-health-explorer-design-ko.md +858 -0
  101. vault_graph-0.1.0/docs/superpowers/specs/phase-6/2026-06-18-phase-6c-timeline-health-explorer-design.md +873 -0
  102. vault_graph-0.1.0/docs/superpowers/specs/phase-6/README-ko.md +32 -0
  103. vault_graph-0.1.0/docs/superpowers/specs/phase-6/README.md +31 -0
  104. vault_graph-0.1.0/docs/superpowers/specs/phase-7/2026-06-23-phase-7b-timeline-health-ui-design.md +369 -0
  105. vault_graph-0.1.0/docs/superpowers/specs/phase-7/2026-06-23-phase-7c-decision-agent-workspace-design.md +439 -0
  106. vault_graph-0.1.0/open-docs.sh +155 -0
  107. vault_graph-0.1.0/pyproject.toml +71 -0
  108. vault_graph-0.1.0/src/vault_graph/__init__.py +1 -0
  109. vault_graph-0.1.0/src/vault_graph/answer/__init__.py +90 -0
  110. vault_graph-0.1.0/src/vault_graph/answer/answer_composer.py +76 -0
  111. vault_graph-0.1.0/src/vault_graph/answer/answer_plan.py +113 -0
  112. vault_graph-0.1.0/src/vault_graph/answer/answer_renderer.py +106 -0
  113. vault_graph-0.1.0/src/vault_graph/answer/answer_response.py +237 -0
  114. vault_graph-0.1.0/src/vault_graph/answer/citation_guard.py +36 -0
  115. vault_graph-0.1.0/src/vault_graph/answer/evidence_planner.py +475 -0
  116. vault_graph-0.1.0/src/vault_graph/app/__init__.py +1 -0
  117. vault_graph-0.1.0/src/vault_graph/app/answer_service.py +63 -0
  118. vault_graph-0.1.0/src/vault_graph/app/catalog_service.py +65 -0
  119. vault_graph-0.1.0/src/vault_graph/app/graph_readiness_service.py +460 -0
  120. vault_graph-0.1.0/src/vault_graph/app/graph_resource_service.py +240 -0
  121. vault_graph-0.1.0/src/vault_graph/app/graph_retrieval_service.py +1025 -0
  122. vault_graph-0.1.0/src/vault_graph/app/index_service.py +471 -0
  123. vault_graph-0.1.0/src/vault_graph/app/local_index_service_factory.py +86 -0
  124. vault_graph-0.1.0/src/vault_graph/app/path_guard.py +40 -0
  125. vault_graph-0.1.0/src/vault_graph/app/query_scope_resolution.py +3 -0
  126. vault_graph-0.1.0/src/vault_graph/app/read_only_service_factory.py +337 -0
  127. vault_graph-0.1.0/src/vault_graph/app/search_readiness_service.py +146 -0
  128. vault_graph-0.1.0/src/vault_graph/app/setup_service.py +127 -0
  129. vault_graph-0.1.0/src/vault_graph/app/watch_service.py +92 -0
  130. vault_graph-0.1.0/src/vault_graph/cli/__init__.py +1 -0
  131. vault_graph-0.1.0/src/vault_graph/cli/main.py +1328 -0
  132. vault_graph-0.1.0/src/vault_graph/context/__init__.py +125 -0
  133. vault_graph-0.1.0/src/vault_graph/context/context_pack.py +356 -0
  134. vault_graph-0.1.0/src/vault_graph/context/context_pack_builder.py +633 -0
  135. vault_graph-0.1.0/src/vault_graph/context/context_pack_renderer.py +221 -0
  136. vault_graph-0.1.0/src/vault_graph/context/context_pack_serialization.py +107 -0
  137. vault_graph-0.1.0/src/vault_graph/context/context_pack_warnings.py +157 -0
  138. vault_graph-0.1.0/src/vault_graph/embeddings/__init__.py +21 -0
  139. vault_graph-0.1.0/src/vault_graph/embeddings/fastembed_text_embeddings.py +173 -0
  140. vault_graph-0.1.0/src/vault_graph/embeddings/text_embeddings.py +57 -0
  141. vault_graph-0.1.0/src/vault_graph/errors.py +94 -0
  142. vault_graph-0.1.0/src/vault_graph/extraction/__init__.py +1 -0
  143. vault_graph-0.1.0/src/vault_graph/extraction/entity_extractor.py +308 -0
  144. vault_graph-0.1.0/src/vault_graph/extraction/graph_occurrences.py +119 -0
  145. vault_graph-0.1.0/src/vault_graph/extraction/graph_source_store.py +130 -0
  146. vault_graph-0.1.0/src/vault_graph/extraction/relationship_extractor.py +175 -0
  147. vault_graph-0.1.0/src/vault_graph/graph/__init__.py +49 -0
  148. vault_graph-0.1.0/src/vault_graph/graph/graph_contracts.py +416 -0
  149. vault_graph-0.1.0/src/vault_graph/graph/graph_identity.py +78 -0
  150. vault_graph-0.1.0/src/vault_graph/graph/graph_query.py +114 -0
  151. vault_graph-0.1.0/src/vault_graph/graph/graph_readiness.py +56 -0
  152. vault_graph-0.1.0/src/vault_graph/http/__init__.py +1 -0
  153. vault_graph-0.1.0/src/vault_graph/http/http_errors.py +119 -0
  154. vault_graph-0.1.0/src/vault_graph/http/http_explanation_serialization.py +612 -0
  155. vault_graph-0.1.0/src/vault_graph/http/http_serialization.py +58 -0
  156. vault_graph-0.1.0/src/vault_graph/http/http_server.py +297 -0
  157. vault_graph-0.1.0/src/vault_graph/http/http_service_factory.py +48 -0
  158. vault_graph-0.1.0/src/vault_graph/indexing/__init__.py +1 -0
  159. vault_graph-0.1.0/src/vault_graph/indexing/graph_indexer.py +732 -0
  160. vault_graph-0.1.0/src/vault_graph/indexing/metadata_indexer.py +155 -0
  161. vault_graph-0.1.0/src/vault_graph/indexing/revision_planner.py +21 -0
  162. vault_graph-0.1.0/src/vault_graph/indexing/vector_indexer.py +321 -0
  163. vault_graph-0.1.0/src/vault_graph/ingestion/__init__.py +1 -0
  164. vault_graph-0.1.0/src/vault_graph/ingestion/document_normalizer.py +92 -0
  165. vault_graph-0.1.0/src/vault_graph/ingestion/markdown_parser.py +40 -0
  166. vault_graph-0.1.0/src/vault_graph/ingestion/query_scope_resolution.py +30 -0
  167. vault_graph-0.1.0/src/vault_graph/ingestion/vault_catalog.py +188 -0
  168. vault_graph-0.1.0/src/vault_graph/ingestion/vault_frontmatter_reader.py +31 -0
  169. vault_graph-0.1.0/src/vault_graph/ingestion/vault_loader.py +66 -0
  170. vault_graph-0.1.0/src/vault_graph/mcp/__init__.py +173 -0
  171. vault_graph-0.1.0/src/vault_graph/mcp/context_pack_resource_cache.py +79 -0
  172. vault_graph-0.1.0/src/vault_graph/mcp/graph_resource_reader.py +176 -0
  173. vault_graph-0.1.0/src/vault_graph/mcp/mcp_answer_serialization.py +142 -0
  174. vault_graph-0.1.0/src/vault_graph/mcp/mcp_config_examples.py +36 -0
  175. vault_graph-0.1.0/src/vault_graph/mcp/mcp_config_registration.py +153 -0
  176. vault_graph-0.1.0/src/vault_graph/mcp/mcp_errors.py +197 -0
  177. vault_graph-0.1.0/src/vault_graph/mcp/mcp_memory_serialization.py +418 -0
  178. vault_graph-0.1.0/src/vault_graph/mcp/mcp_prompts.py +235 -0
  179. vault_graph-0.1.0/src/vault_graph/mcp/mcp_resources.py +431 -0
  180. vault_graph-0.1.0/src/vault_graph/mcp/mcp_scope.py +76 -0
  181. vault_graph-0.1.0/src/vault_graph/mcp/mcp_server.py +127 -0
  182. vault_graph-0.1.0/src/vault_graph/mcp/mcp_service_factory.py +92 -0
  183. vault_graph-0.1.0/src/vault_graph/mcp/mcp_tool_serialization.py +895 -0
  184. vault_graph-0.1.0/src/vault_graph/mcp/mcp_tools.py +1108 -0
  185. vault_graph-0.1.0/src/vault_graph/mcp/mcp_uri.py +220 -0
  186. vault_graph-0.1.0/src/vault_graph/mcp/metadata_resource_reader.py +234 -0
  187. vault_graph-0.1.0/src/vault_graph/mcp/result_explanation_cache.py +5 -0
  188. vault_graph-0.1.0/src/vault_graph/memory/__init__.py +263 -0
  189. vault_graph-0.1.0/src/vault_graph/memory/decision_memory.py +395 -0
  190. vault_graph-0.1.0/src/vault_graph/memory/health_explorer.py +292 -0
  191. vault_graph-0.1.0/src/vault_graph/memory/issue_memory.py +293 -0
  192. vault_graph-0.1.0/src/vault_graph/memory/memory_models.py +300 -0
  193. vault_graph-0.1.0/src/vault_graph/memory/memory_request_context.py +69 -0
  194. vault_graph-0.1.0/src/vault_graph/memory/memory_source_reader.py +159 -0
  195. vault_graph-0.1.0/src/vault_graph/memory/project_memory.py +404 -0
  196. vault_graph-0.1.0/src/vault_graph/memory/result_explanation.py +232 -0
  197. vault_graph-0.1.0/src/vault_graph/memory/result_explanation_cache.py +58 -0
  198. vault_graph-0.1.0/src/vault_graph/memory/timeline_memory.py +648 -0
  199. vault_graph-0.1.0/src/vault_graph/projection/__init__.py +51 -0
  200. vault_graph-0.1.0/src/vault_graph/projection/graph_projection.py +105 -0
  201. vault_graph-0.1.0/src/vault_graph/projection/rustworkx_projection.py +249 -0
  202. vault_graph-0.1.0/src/vault_graph/retrieval/__init__.py +73 -0
  203. vault_graph-0.1.0/src/vault_graph/retrieval/graph_candidates.py +96 -0
  204. vault_graph-0.1.0/src/vault_graph/retrieval/graph_retrieval.py +158 -0
  205. vault_graph-0.1.0/src/vault_graph/retrieval/retrieval_candidate.py +24 -0
  206. vault_graph-0.1.0/src/vault_graph/retrieval/retrieval_result.py +113 -0
  207. vault_graph-0.1.0/src/vault_graph/retrieval/retrieval_service.py +474 -0
  208. vault_graph-0.1.0/src/vault_graph/retrieval/search_readiness.py +30 -0
  209. vault_graph-0.1.0/src/vault_graph/retrieval/search_response.py +101 -0
  210. vault_graph-0.1.0/src/vault_graph/storage/__init__.py +1 -0
  211. vault_graph-0.1.0/src/vault_graph/storage/interfaces/__init__.py +27 -0
  212. vault_graph-0.1.0/src/vault_graph/storage/interfaces/graph_store.py +73 -0
  213. vault_graph-0.1.0/src/vault_graph/storage/interfaces/keyword_index.py +57 -0
  214. vault_graph-0.1.0/src/vault_graph/storage/interfaces/metadata_store.py +83 -0
  215. vault_graph-0.1.0/src/vault_graph/storage/interfaces/store_health.py +10 -0
  216. vault_graph-0.1.0/src/vault_graph/storage/interfaces/vector_store.py +150 -0
  217. vault_graph-0.1.0/src/vault_graph/storage/local/__init__.py +5 -0
  218. vault_graph-0.1.0/src/vault_graph/storage/local/chroma_vector_store.py +531 -0
  219. vault_graph-0.1.0/src/vault_graph/storage/local/graph_status_store.py +99 -0
  220. vault_graph-0.1.0/src/vault_graph/storage/local/sqlite_graph_store.py +1822 -0
  221. vault_graph-0.1.0/src/vault_graph/storage/local/sqlite_keyword_index.py +283 -0
  222. vault_graph-0.1.0/src/vault_graph/storage/local/sqlite_metadata_store.py +545 -0
  223. vault_graph-0.1.0/src/vault_graph/storage/local/vector_status_store.py +98 -0
  224. vault_graph-0.1.0/tests/__init__.py +1 -0
  225. vault_graph-0.1.0/tests/conftest.py +11 -0
  226. vault_graph-0.1.0/tests/fakes/__init__.py +1 -0
  227. vault_graph-0.1.0/tests/fakes/deterministic_text_embeddings.py +41 -0
  228. vault_graph-0.1.0/tests/fakes/in_memory_graph_store.py +673 -0
  229. vault_graph-0.1.0/tests/fakes/in_memory_keyword_index.py +56 -0
  230. vault_graph-0.1.0/tests/fakes/in_memory_vector_store.py +127 -0
  231. vault_graph-0.1.0/tests/fakes/search_readiness.py +44 -0
  232. vault_graph-0.1.0/tests/test_acceptance_success_criteria.py +220 -0
  233. vault_graph-0.1.0/tests/test_answer_composer.py +106 -0
  234. vault_graph-0.1.0/tests/test_answer_import_boundaries.py +26 -0
  235. vault_graph-0.1.0/tests/test_answer_plan_contract.py +77 -0
  236. vault_graph-0.1.0/tests/test_answer_renderer.py +55 -0
  237. vault_graph-0.1.0/tests/test_answer_response_contract.py +175 -0
  238. vault_graph-0.1.0/tests/test_answer_service.py +117 -0
  239. vault_graph-0.1.0/tests/test_app_search_readiness_service.py +98 -0
  240. vault_graph-0.1.0/tests/test_chroma_vector_store.py +257 -0
  241. vault_graph-0.1.0/tests/test_citation_guard.py +100 -0
  242. vault_graph-0.1.0/tests/test_cli_ask.py +105 -0
  243. vault_graph-0.1.0/tests/test_cli_catalog_metadata.py +133 -0
  244. vault_graph-0.1.0/tests/test_cli_context.py +607 -0
  245. vault_graph-0.1.0/tests/test_cli_decision_trace.py +246 -0
  246. vault_graph-0.1.0/tests/test_cli_graph_indexing.py +124 -0
  247. vault_graph-0.1.0/tests/test_cli_graph_status.py +84 -0
  248. vault_graph-0.1.0/tests/test_cli_mcp_config.py +59 -0
  249. vault_graph-0.1.0/tests/test_cli_mcp_serve.py +90 -0
  250. vault_graph-0.1.0/tests/test_cli_related.py +249 -0
  251. vault_graph-0.1.0/tests/test_cli_search.py +286 -0
  252. vault_graph-0.1.0/tests/test_cli_setup.py +36 -0
  253. vault_graph-0.1.0/tests/test_cli_surface_boundary.py +33 -0
  254. vault_graph-0.1.0/tests/test_cli_vector_indexing.py +119 -0
  255. vault_graph-0.1.0/tests/test_cli_watch.py +76 -0
  256. vault_graph-0.1.0/tests/test_context_pack_builder.py +699 -0
  257. vault_graph-0.1.0/tests/test_context_pack_contract.py +195 -0
  258. vault_graph-0.1.0/tests/test_context_pack_docs_contract.py +53 -0
  259. vault_graph-0.1.0/tests/test_context_pack_evidence_budget.py +160 -0
  260. vault_graph-0.1.0/tests/test_context_pack_import_boundaries.py +78 -0
  261. vault_graph-0.1.0/tests/test_context_pack_read_only_boundary.py +44 -0
  262. vault_graph-0.1.0/tests/test_context_pack_renderer.py +113 -0
  263. vault_graph-0.1.0/tests/test_context_pack_resource_cache.py +79 -0
  264. vault_graph-0.1.0/tests/test_context_pack_serialization.py +121 -0
  265. vault_graph-0.1.0/tests/test_context_pack_warnings.py +149 -0
  266. vault_graph-0.1.0/tests/test_decision_memory_service.py +297 -0
  267. vault_graph-0.1.0/tests/test_document_normalizer.py +75 -0
  268. vault_graph-0.1.0/tests/test_entity_extractor.py +143 -0
  269. vault_graph-0.1.0/tests/test_evidence_planner.py +144 -0
  270. vault_graph-0.1.0/tests/test_fastembed_text_embeddings.py +152 -0
  271. vault_graph-0.1.0/tests/test_graph_contracts.py +158 -0
  272. vault_graph-0.1.0/tests/test_graph_indexer.py +310 -0
  273. vault_graph-0.1.0/tests/test_graph_indexing_read_only_boundary.py +80 -0
  274. vault_graph-0.1.0/tests/test_graph_occurrences.py +98 -0
  275. vault_graph-0.1.0/tests/test_graph_projection.py +298 -0
  276. vault_graph-0.1.0/tests/test_graph_query_contract.py +97 -0
  277. vault_graph-0.1.0/tests/test_graph_readiness.py +460 -0
  278. vault_graph-0.1.0/tests/test_graph_resource_reader.py +307 -0
  279. vault_graph-0.1.0/tests/test_graph_retrieval_contract.py +150 -0
  280. vault_graph-0.1.0/tests/test_graph_retrieval_read_only_boundary.py +118 -0
  281. vault_graph-0.1.0/tests/test_graph_retrieval_service.py +603 -0
  282. vault_graph-0.1.0/tests/test_graph_source_store.py +68 -0
  283. vault_graph-0.1.0/tests/test_graph_status_store.py +52 -0
  284. vault_graph-0.1.0/tests/test_graph_store_contract.py +674 -0
  285. vault_graph-0.1.0/tests/test_health_explorer_service.py +111 -0
  286. vault_graph-0.1.0/tests/test_http_server.py +96 -0
  287. vault_graph-0.1.0/tests/test_index_service_graph_reconcile.py +211 -0
  288. vault_graph-0.1.0/tests/test_index_service_vector_reconcile.py +151 -0
  289. vault_graph-0.1.0/tests/test_issue_memory_service.py +178 -0
  290. vault_graph-0.1.0/tests/test_keyword_index_contract.py +48 -0
  291. vault_graph-0.1.0/tests/test_mcp_ask_vault.py +77 -0
  292. vault_graph-0.1.0/tests/test_mcp_config_examples.py +38 -0
  293. vault_graph-0.1.0/tests/test_mcp_config_registration.py +69 -0
  294. vault_graph-0.1.0/tests/test_mcp_current_context_resource.py +132 -0
  295. vault_graph-0.1.0/tests/test_mcp_errors.py +88 -0
  296. vault_graph-0.1.0/tests/test_mcp_explain_result.py +156 -0
  297. vault_graph-0.1.0/tests/test_mcp_import_boundaries.py +179 -0
  298. vault_graph-0.1.0/tests/test_mcp_memory_tools.py +379 -0
  299. vault_graph-0.1.0/tests/test_mcp_prompts.py +83 -0
  300. vault_graph-0.1.0/tests/test_mcp_recent_changes_tool.py +157 -0
  301. vault_graph-0.1.0/tests/test_mcp_resource_read_only_boundary.py +131 -0
  302. vault_graph-0.1.0/tests/test_mcp_resources.py +177 -0
  303. vault_graph-0.1.0/tests/test_mcp_result_explanation_cache.py +75 -0
  304. vault_graph-0.1.0/tests/test_mcp_scope.py +86 -0
  305. vault_graph-0.1.0/tests/test_mcp_server.py +68 -0
  306. vault_graph-0.1.0/tests/test_mcp_service_factory.py +347 -0
  307. vault_graph-0.1.0/tests/test_mcp_stdio_smoke.py +70 -0
  308. vault_graph-0.1.0/tests/test_mcp_timeline_resource.py +50 -0
  309. vault_graph-0.1.0/tests/test_mcp_tool_read_only_boundary.py +224 -0
  310. vault_graph-0.1.0/tests/test_mcp_tool_serialization.py +412 -0
  311. vault_graph-0.1.0/tests/test_mcp_tools.py +632 -0
  312. vault_graph-0.1.0/tests/test_mcp_uri.py +117 -0
  313. vault_graph-0.1.0/tests/test_memory_models.py +188 -0
  314. vault_graph-0.1.0/tests/test_memory_request_context.py +118 -0
  315. vault_graph-0.1.0/tests/test_memory_source_reader.py +159 -0
  316. vault_graph-0.1.0/tests/test_metadata_chunk_listing.py +88 -0
  317. vault_graph-0.1.0/tests/test_metadata_evidence_resolution.py +193 -0
  318. vault_graph-0.1.0/tests/test_metadata_indexer.py +155 -0
  319. vault_graph-0.1.0/tests/test_metadata_resource_reader.py +344 -0
  320. vault_graph-0.1.0/tests/test_multi_vault_graph_identity.py +168 -0
  321. vault_graph-0.1.0/tests/test_multi_vault_graph_indexing.py +53 -0
  322. vault_graph-0.1.0/tests/test_multi_vault_graph_retrieval.py +212 -0
  323. vault_graph-0.1.0/tests/test_multi_vault_identity.py +49 -0
  324. vault_graph-0.1.0/tests/test_multi_vault_search.py +60 -0
  325. vault_graph-0.1.0/tests/test_naming_conventions.py +51 -0
  326. vault_graph-0.1.0/tests/test_package_import.py +12 -0
  327. vault_graph-0.1.0/tests/test_project_memory_service.py +264 -0
  328. vault_graph-0.1.0/tests/test_query_scope_resolution.py +56 -0
  329. vault_graph-0.1.0/tests/test_read_only_boundary.py +135 -0
  330. vault_graph-0.1.0/tests/test_relationship_extractor.py +177 -0
  331. vault_graph-0.1.0/tests/test_result_explanation.py +192 -0
  332. vault_graph-0.1.0/tests/test_retrieval_import_boundaries.py +65 -0
  333. vault_graph-0.1.0/tests/test_retrieval_result_contract.py +275 -0
  334. vault_graph-0.1.0/tests/test_retrieval_service_search.py +497 -0
  335. vault_graph-0.1.0/tests/test_search_include_graph.py +208 -0
  336. vault_graph-0.1.0/tests/test_search_read_only_boundary.py +59 -0
  337. vault_graph-0.1.0/tests/test_search_response_contract.py +137 -0
  338. vault_graph-0.1.0/tests/test_setup_service.py +110 -0
  339. vault_graph-0.1.0/tests/test_sqlite_graph_store.py +216 -0
  340. vault_graph-0.1.0/tests/test_sqlite_keyword_index.py +128 -0
  341. vault_graph-0.1.0/tests/test_sqlite_metadata_store.py +405 -0
  342. vault_graph-0.1.0/tests/test_text_embeddings_contract.py +127 -0
  343. vault_graph-0.1.0/tests/test_timeline_memory_service.py +301 -0
  344. vault_graph-0.1.0/tests/test_vault_catalog.py +97 -0
  345. vault_graph-0.1.0/tests/test_vault_loader.py +97 -0
  346. vault_graph-0.1.0/tests/test_vector_indexer.py +161 -0
  347. vault_graph-0.1.0/tests/test_vector_indexing_read_only_boundary.py +71 -0
  348. vault_graph-0.1.0/tests/test_vector_store_contract.py +438 -0
  349. vault_graph-0.1.0/tests/test_watch_service.py +45 -0
  350. vault_graph-0.1.0/uv.lock +2879 -0
@@ -0,0 +1,27 @@
1
+ name: ci
2
+
3
+ on:
4
+ pull_request:
5
+ push:
6
+ branches:
7
+ - main
8
+
9
+ permissions:
10
+ contents: read
11
+
12
+ jobs:
13
+ verify:
14
+ runs-on: ubuntu-latest
15
+ steps:
16
+ - uses: actions/checkout@v4
17
+ - uses: astral-sh/setup-uv@v6
18
+ - name: Lint
19
+ run: uv run --python 3.12 ruff check src tests
20
+ - name: Type check
21
+ run: uv run --python 3.12 mypy src tests
22
+ - name: Test
23
+ run: uv run --python 3.12 pytest -q
24
+ - name: Build distributions
25
+ run: uv build
26
+ - name: Check distributions
27
+ run: uv run --python 3.12 --with twine python -m twine check dist/*
@@ -0,0 +1,37 @@
1
+ name: publish-pypi
2
+
3
+ on:
4
+ release:
5
+ types:
6
+ - published
7
+
8
+ permissions:
9
+ contents: read
10
+
11
+ concurrency:
12
+ group: publish-pypi
13
+ cancel-in-progress: false
14
+
15
+ jobs:
16
+ publish:
17
+ if: github.repository == 'cutehackers/vault-graph'
18
+ runs-on: ubuntu-latest
19
+ environment: pypi
20
+ permissions:
21
+ contents: read
22
+ id-token: write
23
+ steps:
24
+ - uses: actions/checkout@v4
25
+ - uses: astral-sh/setup-uv@v6
26
+ - name: Lint
27
+ run: uv run --python 3.12 ruff check src tests
28
+ - name: Type check
29
+ run: uv run --python 3.12 mypy src tests
30
+ - name: Test
31
+ run: uv run --python 3.12 pytest -q
32
+ - name: Build distributions
33
+ run: uv build
34
+ - name: Check distributions
35
+ run: uv run --python 3.12 --with twine python -m twine check dist/*
36
+ - name: Publish to PyPI
37
+ run: uv publish --trusted-publishing always
@@ -0,0 +1,35 @@
1
+ name: publish-testpypi
2
+
3
+ on:
4
+ workflow_dispatch:
5
+
6
+ permissions:
7
+ contents: read
8
+
9
+ concurrency:
10
+ group: publish-testpypi
11
+ cancel-in-progress: false
12
+
13
+ jobs:
14
+ publish:
15
+ if: github.repository == 'cutehackers/vault-graph'
16
+ runs-on: ubuntu-latest
17
+ environment: testpypi
18
+ permissions:
19
+ contents: read
20
+ id-token: write
21
+ steps:
22
+ - uses: actions/checkout@v4
23
+ - uses: astral-sh/setup-uv@v6
24
+ - name: Lint
25
+ run: uv run --python 3.12 ruff check src tests
26
+ - name: Type check
27
+ run: uv run --python 3.12 mypy src tests
28
+ - name: Test
29
+ run: uv run --python 3.12 pytest -q
30
+ - name: Build distributions
31
+ run: uv build
32
+ - name: Check distributions
33
+ run: uv run --python 3.12 --with twine python -m twine check dist/*
34
+ - name: Publish to TestPyPI
35
+ run: uv publish --publish-url https://test.pypi.org/legacy/ --trusted-publishing always
@@ -0,0 +1,8 @@
1
+ __pycache__/
2
+ *.py[cod]
3
+
4
+ .mypy_cache/
5
+ .pytest_cache/
6
+ .ruff_cache/
7
+ .venv/
8
+ .vault-graph/
@@ -0,0 +1,138 @@
1
+ # AGENTS.md
2
+
3
+ ## Project Boundary
4
+
5
+ Vault Graph is a read-only, rebuildable access layer over Vault. Do not make
6
+ Vault Graph a durable knowledge source, and do not add behavior that edits,
7
+ renames, rewrites, or deletes Vault content.
8
+
9
+ ## Source Documents
10
+
11
+ - Read `docs/SPEC.md` before changing architecture, indexing, retrieval, graph,
12
+ or context-pack behavior.
13
+ - Follow `docs/CONVENTIONS.md` for Python style and naming.
14
+
15
+ ## Documentation Operation Rules
16
+
17
+ Use these rules when writing specs, implementation plans, or prompt templates.
18
+
19
+ - Keep prompt templates compact. Move repeatable repository policy here instead
20
+ of duplicating it inside every goal prompt.
21
+ - `docs/PATCH_LOG.md` records corrections made after review or verification.
22
+ Use it only when a plan, spec, or implementation is changed because a mismatch,
23
+ defect, or risk was found.
24
+ - New patch entries must match the existing project style:
25
+ `## YYYY-MM-DD - <Short Title>`, then `**Trigger:**`, `**Scope:**`,
26
+ `**Core Values Protected:**`, `**Changes Applied:**`, and
27
+ `**Verification:**`.
28
+ - `docs/DECISIONS.md` records accepted product, architecture, and policy
29
+ decisions only. Do not add pending decisions there.
30
+ - If a decision needs user judgment, keep it in the active plan under
31
+ `Open Decisions` with context, options, trade-offs, and a recommendation.
32
+ Move it to `docs/DECISIONS.md` only after approval, using the existing
33
+ `Question`, `Decision`, `Reason`, and `Implications` style.
34
+ - For both logs, be short, specific, and evidence-linked. Do not copy long
35
+ implementation-plan content into them.
36
+
37
+ ## 🤖 Software Engineering Philosophy
38
+
39
+ > **Core Principle:**
40
+ > "Always prioritize **'Deep Modules'**, **'Less Complexity'**, and **'Changeability'** over quick implementations."
41
+
42
+ ### 1. Complexity & Changeability
43
+
44
+ - **Definition of Complexity:** Anything in the software structure that makes it hard to understand or modify.
45
+ - **The Goal:** Maintain a codebase where changes are easy and predictable. A good codebase is one that rewards future development rather than punishing it.
46
+ - **Anti-Entropy:** Actively resist "Software Entropy." Do not just add code; improve the design with every change. If a task increases entropy, **refactor first**, then implement.
47
+
48
+ ### 2. Deep Modules vs. Shallow Modules
49
+
50
+ - **Deep Modules (Preferred):** High functionality hidden behind a simple, stable interface. These modules encapsulate complexity and reduce the cognitive load for both humans and AI.
51
+ - **Shallow Modules (Avoid):** Small pieces of code with complex interfaces that expose internal logic. These lead to fragmented, fragile systems.
52
+ - **Information Hiding:** Hide implementation details. The consumer of a module should never need to know _how_ it works, only _what_ it does.
53
+
54
+ ### 3. Strategic Programming
55
+
56
+ - **Think Strategically:** Don't just solve the immediate problem (Tactical Programming). Design for the long-term health of the system.
57
+ - **Shared Design Concept:** Before coding, ensure a shared understanding of the architecture. Reach a "shared mental model" through rigorous planning and questioning (e.g., "Grilling" process).
58
+ - **Ubiquitous Language:** Use consistent terminology across documentation, design, and code to minimize communication gaps.
59
+
60
+ ### 4. Development Workflow & Safety
61
+
62
+ - **Test-Driven Safety:** Use **TDD** and **Static Typing** (like Dart/Flutter) as a "speed limit." Never outrun your headlights; take small, verifiable steps.
63
+ - **Interface-First:** Focus on designing robust interfaces. Delegate the tactical implementation to the AI while keeping it strictly within the defined boundaries.
64
+ - **Modern Standards:** Always prioritize improved versions of methods and current industry standards over legacy or deprecated patterns.
65
+
66
+ ### 5. Human-AI Collaboration Role
67
+
68
+ - **Human:** **Strategic Leader & Architect.** Focus on high-level design, module boundaries, and complexity management.
69
+ - **AI:** **Tactical Programmer.** Execute implementation details, refactor according to the philosophy, and ensure code adheres to the strategic boundaries.
70
+
71
+ ## Coding Guidelines
72
+
73
+ **Tradeoff:** These guidelines bias toward caution over speed. For trivial tasks, use judgment.
74
+
75
+ ### 1. Think Before Coding
76
+
77
+ **Don't assume. Don't hide confusion. Surface tradeoffs.**
78
+
79
+ Before implementing:
80
+
81
+ - State your assumptions explicitly. If uncertain, ask.
82
+ - If multiple interpretations exist, present them - don't pick silently.
83
+ - If a simpler approach exists, say so. Push back when warranted.
84
+ - If something is unclear, stop. Name what's confusing. Ask.
85
+
86
+ ### 2. Simplicity First
87
+
88
+ **Minimum code that solves the problem. Nothing speculative.**
89
+
90
+ - No features beyond what was asked.
91
+ - No abstractions for single-use code.
92
+ - No "flexibility" or "configurability" that wasn't requested.
93
+ - No error handling for impossible scenarios.
94
+ - If you write 200 lines and it could be 50, rewrite it.
95
+
96
+ Ask yourself: "Would a senior engineer say this is overcomplicated?" If yes, simplify.
97
+
98
+ ### 3. Surgical Changes
99
+
100
+ **Touch only what you must. Clean up only your own mess.**
101
+
102
+ When editing existing code:
103
+
104
+ - Don't "improve" adjacent code, comments, or formatting.
105
+ - Don't refactor things that aren't broken.
106
+ - Match existing style, even if you'd do it differently.
107
+ - If you notice unrelated dead code, mention it - don't delete it.
108
+
109
+ When your changes create orphans:
110
+
111
+ - Remove imports/variables/functions that YOUR changes made unused.
112
+ - Don't remove pre-existing dead code unless asked.
113
+
114
+ The test: Every changed line should trace directly to the user's request.
115
+
116
+ ### 4. Goal-Driven Execution
117
+
118
+ **Define success criteria. Loop until verified.**
119
+
120
+ Transform tasks into verifiable goals:
121
+
122
+ - "Add validation" → "Write tests for invalid inputs, then make them pass"
123
+ - "Fix the bug" → "Write a test that reproduces it, then make it pass"
124
+ - "Refactor X" → "Ensure tests pass before and after"
125
+
126
+ For multi-step tasks, state a brief plan:
127
+
128
+ ```
129
+ 1. [Step] → verify: [check]
130
+ 2. [Step] → verify: [check]
131
+ 3. [Step] → verify: [check]
132
+ ```
133
+
134
+ Strong success criteria let you loop independently. Weak criteria ("make it work") require constant clarification.
135
+
136
+ ---
137
+
138
+ **These guidelines are working if:** fewer unnecessary changes in diffs, fewer rewrites due to overcomplication, and clarifying questions come before implementation rather than after mistakes.
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Jun Hyoung Lee
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,222 @@
1
+ Metadata-Version: 2.4
2
+ Name: vault-graph
3
+ Version: 0.1.0
4
+ Summary: Read-only, rebuildable knowledge access layer over Vault.
5
+ Project-URL: Homepage, https://github.com/cutehackers/vault-graph
6
+ Project-URL: Repository, https://github.com/cutehackers/vault-graph
7
+ Project-URL: Issues, https://github.com/cutehackers/vault-graph/issues
8
+ Author: Jun Hyoung Lee
9
+ License-Expression: MIT
10
+ License-File: LICENSE
11
+ Classifier: Development Status :: 3 - Alpha
12
+ Classifier: Environment :: Console
13
+ Classifier: Intended Audience :: Developers
14
+ Classifier: License :: OSI Approved :: MIT License
15
+ Classifier: Programming Language :: Python :: 3
16
+ Classifier: Programming Language :: Python :: 3.12
17
+ Classifier: Topic :: Text Processing :: Indexing
18
+ Requires-Python: >=3.12
19
+ Requires-Dist: chromadb<2.0,>=1.5.9
20
+ Requires-Dist: fastapi<1,>=0.115
21
+ Requires-Dist: fastembed<1.0,>=0.8.0
22
+ Requires-Dist: huggingface-hub<1.0,>=0.31
23
+ Requires-Dist: mcp<2,>=1.27
24
+ Requires-Dist: pyyaml>=6.0.2
25
+ Requires-Dist: rustworkx<1.0,>=0.17
26
+ Requires-Dist: typer>=0.12.5
27
+ Requires-Dist: uvicorn<1,>=0.30
28
+ Description-Content-Type: text/markdown
29
+
30
+ # Vault Graph
31
+
32
+ Status: Active local development
33
+
34
+ Vault Graph is a read-only, rebuildable knowledge access layer over Vault.
35
+
36
+ It helps humans and agents search Vault, trace decisions, inspect project
37
+ memory, and build task-specific context packs without turning retrieval output
38
+ into durable knowledge.
39
+
40
+ Vault remains the source of truth. Vault Graph reads, indexes, retrieves, and
41
+ explains Vault-derived context. It does not publish wiki pages, mutate raw
42
+ sources, edit Vault documents, or replace Vault's validation workflow.
43
+
44
+ ## Install
45
+
46
+ Prerequisites:
47
+
48
+ - Python 3.12+
49
+ - [`uv`](https://docs.astral.sh/uv/)
50
+
51
+ Current source-checkout install:
52
+
53
+ ```bash
54
+ git clone git@me.github.com:cutehackers/vault-graph.git
55
+ cd vault-graph
56
+ uv sync
57
+ uv run --python 3.12 vg --help
58
+ ```
59
+
60
+ Optional local command install from this checkout:
61
+
62
+ ```bash
63
+ uv tool install -e .
64
+ vg --help
65
+ ```
66
+
67
+ PyPI registration is not required to use the current source checkout. It becomes
68
+ necessary only when Vault Graph wants to promise this public install path:
69
+
70
+ ```bash
71
+ uv tool install vault-graph
72
+ ```
73
+
74
+ Do not advertise the PyPI command as the primary install path until the package
75
+ has been published.
76
+
77
+ ## Quick Start
78
+
79
+ Keep Vault Graph state outside your Vault:
80
+
81
+ ```bash
82
+ vg init --vault /path/to/llm-wiki --state ~/.vault-graph
83
+ vg index --state ~/.vault-graph
84
+ vg status --state ~/.vault-graph
85
+ vg search --state ~/.vault-graph "GraphRAG"
86
+ vg context --state ~/.vault-graph "Implement GraphRAG MVP"
87
+ ```
88
+
89
+ The first index builds local metadata, keyword, vector, and graph projections.
90
+ Vault Graph uses local storage and local embeddings by default; it does not
91
+ require hosted services for normal use.
92
+
93
+ ## Common Commands
94
+
95
+ | Goal | Command |
96
+ | --- | --- |
97
+ | Register a Vault | `vg init --vault /path/to/llm-wiki --state ~/.vault-graph` |
98
+ | Add another Vault | `vg vault add work --path /path/to/other-vault --state ~/.vault-graph` |
99
+ | List Vaults | `vg vault list --state ~/.vault-graph` |
100
+ | Index the active Vault | `vg index --state ~/.vault-graph` |
101
+ | Index one Vault | `vg index --vault-id work --state ~/.vault-graph` |
102
+ | Index all Vaults | `vg index --all-vaults --state ~/.vault-graph` |
103
+ | Check health | `vg status --state ~/.vault-graph` |
104
+ | Search evidence | `vg search --state ~/.vault-graph "query"` |
105
+ | Include graph signals | `vg search --include-graph --state ~/.vault-graph "query"` |
106
+ | Ask with evidence | `vg ask --state ~/.vault-graph "question"` |
107
+ | Build a context pack | `vg context --state ~/.vault-graph "goal"` |
108
+ | Find related items | `vg related --state ~/.vault-graph GraphRAG` |
109
+ | Trace a decision | `vg decision-trace --state ~/.vault-graph GraphRAG` |
110
+
111
+ Commands that accept `--vault-id` operate on one registered Vault. Commands that
112
+ accept `--all-vaults` expand to all enabled registered Vaults. Commands without
113
+ either option use the active Vault.
114
+
115
+ ## Connect An Agent Through MCP
116
+
117
+ MCP server installation and MCP server registration are different things:
118
+
119
+ - installation makes the `vg` command available
120
+ - registration tells an agent how to start `vg serve --mcp`
121
+
122
+ After indexing your Vault, register this stdio server in the agent's MCP config:
123
+
124
+ ```json
125
+ {
126
+ "mcpServers": {
127
+ "vault-graph": {
128
+ "command": "uv",
129
+ "args": [
130
+ "run",
131
+ "--python",
132
+ "3.12",
133
+ "vg",
134
+ "serve",
135
+ "--mcp",
136
+ "--state",
137
+ "/path/to/.vault-graph"
138
+ ]
139
+ }
140
+ }
141
+ }
142
+ ```
143
+
144
+ The current Codex-style example lives at
145
+ [`docs/superpowers/specs/phase-5/codex-local-stdio-config.example.json`](docs/superpowers/specs/phase-5/codex-local-stdio-config.example.json).
146
+
147
+ Once connected, the agent can use these MCP tools:
148
+
149
+ - `search_vault`
150
+ - `build_context_pack`
151
+ - `find_related`
152
+ - `get_decision_trace`
153
+ - `check_index_status`
154
+ - `explain_result`
155
+ - `summarize_project_memory`
156
+ - `get_open_questions`
157
+ - `get_recent_changes`
158
+ - `ask_vault`
159
+
160
+ Vault Graph provides evidence-first working context and evidence-first answers
161
+ through `ask_vault` and `vg ask`.
162
+
163
+ ## Recommended Easy Setup
164
+
165
+ The accepted onboarding target is a one-command setup flow:
166
+
167
+ ```bash
168
+ vg setup --vault /path/to/llm-wiki --agent codex
169
+ ```
170
+
171
+ This command:
172
+
173
+ - uses `~/.vault-graph` as the default state path when `--state` is omitted
174
+ - registers the Vault path
175
+ - runs indexing
176
+ - prepares MCP registration for the selected agent
177
+ - prints the MCP server command or writes it only to an explicit agent config path
178
+
179
+ The lower-level MCP commands should remain available for explicit control:
180
+
181
+ ```bash
182
+ vg mcp register --agent codex --state ~/.vault-graph --config-path /path/to/agent-config.json
183
+ vg mcp config --agent codex --state ~/.vault-graph --print
184
+ ```
185
+
186
+ These commands are implemented product features. Their implementation design
187
+ lives at
188
+ [`docs/superpowers/specs/2026-06-24-cli-todo-command-implementation-design.md`](docs/superpowers/specs/2026-06-24-cli-todo-command-implementation-design.md):
189
+
190
+ ```bash
191
+ vg setup --vault /path/to/llm-wiki --agent codex
192
+ vg mcp register --agent codex --state ~/.vault-graph --config-path /path/to/agent-config.json
193
+ vg mcp config --agent codex --state ~/.vault-graph --print
194
+ vg watch
195
+ vg ask "question"
196
+ vg serve --http
197
+ ```
198
+
199
+ ## Guarantees
200
+
201
+ Vault Graph user-facing features preserve these guarantees:
202
+
203
+ - read-only access to Vault
204
+ - local-first operation without mandatory hosted services
205
+ - evidence-first retrieval, context packs, and answers
206
+ - clear separation between stated facts and inferred links
207
+ - warnings for stale, missing, contested, or deprecated material
208
+ - reproducible indexes that can be deleted and rebuilt from Vault
209
+ - Vault-scoped identity for multiple registered Vault roots
210
+ - visible backend health and index freshness status
211
+ - durable knowledge publication only through Vault
212
+
213
+ ## More Documentation
214
+
215
+ - [`docs/FEATURES.md`](docs/FEATURES.md): user-facing feature catalog
216
+ - [`docs/SPEC.md`](docs/SPEC.md): product specification and architecture
217
+ - [`docs/DESIGN.md`](docs/DESIGN.md): design goals and boundaries
218
+ - [`docs/PUBLISHING.md`](docs/PUBLISHING.md): PyPI release workflow and permissions
219
+
220
+ ## License
221
+
222
+ Vault Graph is distributed under the MIT License. See [`LICENSE`](LICENSE).
@@ -0,0 +1,193 @@
1
+ # Vault Graph
2
+
3
+ Status: Active local development
4
+
5
+ Vault Graph is a read-only, rebuildable knowledge access layer over Vault.
6
+
7
+ It helps humans and agents search Vault, trace decisions, inspect project
8
+ memory, and build task-specific context packs without turning retrieval output
9
+ into durable knowledge.
10
+
11
+ Vault remains the source of truth. Vault Graph reads, indexes, retrieves, and
12
+ explains Vault-derived context. It does not publish wiki pages, mutate raw
13
+ sources, edit Vault documents, or replace Vault's validation workflow.
14
+
15
+ ## Install
16
+
17
+ Prerequisites:
18
+
19
+ - Python 3.12+
20
+ - [`uv`](https://docs.astral.sh/uv/)
21
+
22
+ Current source-checkout install:
23
+
24
+ ```bash
25
+ git clone git@me.github.com:cutehackers/vault-graph.git
26
+ cd vault-graph
27
+ uv sync
28
+ uv run --python 3.12 vg --help
29
+ ```
30
+
31
+ Optional local command install from this checkout:
32
+
33
+ ```bash
34
+ uv tool install -e .
35
+ vg --help
36
+ ```
37
+
38
+ PyPI registration is not required to use the current source checkout. It becomes
39
+ necessary only when Vault Graph wants to promise this public install path:
40
+
41
+ ```bash
42
+ uv tool install vault-graph
43
+ ```
44
+
45
+ Do not advertise the PyPI command as the primary install path until the package
46
+ has been published.
47
+
48
+ ## Quick Start
49
+
50
+ Keep Vault Graph state outside your Vault:
51
+
52
+ ```bash
53
+ vg init --vault /path/to/llm-wiki --state ~/.vault-graph
54
+ vg index --state ~/.vault-graph
55
+ vg status --state ~/.vault-graph
56
+ vg search --state ~/.vault-graph "GraphRAG"
57
+ vg context --state ~/.vault-graph "Implement GraphRAG MVP"
58
+ ```
59
+
60
+ The first index builds local metadata, keyword, vector, and graph projections.
61
+ Vault Graph uses local storage and local embeddings by default; it does not
62
+ require hosted services for normal use.
63
+
64
+ ## Common Commands
65
+
66
+ | Goal | Command |
67
+ | --- | --- |
68
+ | Register a Vault | `vg init --vault /path/to/llm-wiki --state ~/.vault-graph` |
69
+ | Add another Vault | `vg vault add work --path /path/to/other-vault --state ~/.vault-graph` |
70
+ | List Vaults | `vg vault list --state ~/.vault-graph` |
71
+ | Index the active Vault | `vg index --state ~/.vault-graph` |
72
+ | Index one Vault | `vg index --vault-id work --state ~/.vault-graph` |
73
+ | Index all Vaults | `vg index --all-vaults --state ~/.vault-graph` |
74
+ | Check health | `vg status --state ~/.vault-graph` |
75
+ | Search evidence | `vg search --state ~/.vault-graph "query"` |
76
+ | Include graph signals | `vg search --include-graph --state ~/.vault-graph "query"` |
77
+ | Ask with evidence | `vg ask --state ~/.vault-graph "question"` |
78
+ | Build a context pack | `vg context --state ~/.vault-graph "goal"` |
79
+ | Find related items | `vg related --state ~/.vault-graph GraphRAG` |
80
+ | Trace a decision | `vg decision-trace --state ~/.vault-graph GraphRAG` |
81
+
82
+ Commands that accept `--vault-id` operate on one registered Vault. Commands that
83
+ accept `--all-vaults` expand to all enabled registered Vaults. Commands without
84
+ either option use the active Vault.
85
+
86
+ ## Connect An Agent Through MCP
87
+
88
+ MCP server installation and MCP server registration are different things:
89
+
90
+ - installation makes the `vg` command available
91
+ - registration tells an agent how to start `vg serve --mcp`
92
+
93
+ After indexing your Vault, register this stdio server in the agent's MCP config:
94
+
95
+ ```json
96
+ {
97
+ "mcpServers": {
98
+ "vault-graph": {
99
+ "command": "uv",
100
+ "args": [
101
+ "run",
102
+ "--python",
103
+ "3.12",
104
+ "vg",
105
+ "serve",
106
+ "--mcp",
107
+ "--state",
108
+ "/path/to/.vault-graph"
109
+ ]
110
+ }
111
+ }
112
+ }
113
+ ```
114
+
115
+ The current Codex-style example lives at
116
+ [`docs/superpowers/specs/phase-5/codex-local-stdio-config.example.json`](docs/superpowers/specs/phase-5/codex-local-stdio-config.example.json).
117
+
118
+ Once connected, the agent can use these MCP tools:
119
+
120
+ - `search_vault`
121
+ - `build_context_pack`
122
+ - `find_related`
123
+ - `get_decision_trace`
124
+ - `check_index_status`
125
+ - `explain_result`
126
+ - `summarize_project_memory`
127
+ - `get_open_questions`
128
+ - `get_recent_changes`
129
+ - `ask_vault`
130
+
131
+ Vault Graph provides evidence-first working context and evidence-first answers
132
+ through `ask_vault` and `vg ask`.
133
+
134
+ ## Recommended Easy Setup
135
+
136
+ The accepted onboarding target is a one-command setup flow:
137
+
138
+ ```bash
139
+ vg setup --vault /path/to/llm-wiki --agent codex
140
+ ```
141
+
142
+ This command:
143
+
144
+ - uses `~/.vault-graph` as the default state path when `--state` is omitted
145
+ - registers the Vault path
146
+ - runs indexing
147
+ - prepares MCP registration for the selected agent
148
+ - prints the MCP server command or writes it only to an explicit agent config path
149
+
150
+ The lower-level MCP commands should remain available for explicit control:
151
+
152
+ ```bash
153
+ vg mcp register --agent codex --state ~/.vault-graph --config-path /path/to/agent-config.json
154
+ vg mcp config --agent codex --state ~/.vault-graph --print
155
+ ```
156
+
157
+ These commands are implemented product features. Their implementation design
158
+ lives at
159
+ [`docs/superpowers/specs/2026-06-24-cli-todo-command-implementation-design.md`](docs/superpowers/specs/2026-06-24-cli-todo-command-implementation-design.md):
160
+
161
+ ```bash
162
+ vg setup --vault /path/to/llm-wiki --agent codex
163
+ vg mcp register --agent codex --state ~/.vault-graph --config-path /path/to/agent-config.json
164
+ vg mcp config --agent codex --state ~/.vault-graph --print
165
+ vg watch
166
+ vg ask "question"
167
+ vg serve --http
168
+ ```
169
+
170
+ ## Guarantees
171
+
172
+ Vault Graph user-facing features preserve these guarantees:
173
+
174
+ - read-only access to Vault
175
+ - local-first operation without mandatory hosted services
176
+ - evidence-first retrieval, context packs, and answers
177
+ - clear separation between stated facts and inferred links
178
+ - warnings for stale, missing, contested, or deprecated material
179
+ - reproducible indexes that can be deleted and rebuilt from Vault
180
+ - Vault-scoped identity for multiple registered Vault roots
181
+ - visible backend health and index freshness status
182
+ - durable knowledge publication only through Vault
183
+
184
+ ## More Documentation
185
+
186
+ - [`docs/FEATURES.md`](docs/FEATURES.md): user-facing feature catalog
187
+ - [`docs/SPEC.md`](docs/SPEC.md): product specification and architecture
188
+ - [`docs/DESIGN.md`](docs/DESIGN.md): design goals and boundaries
189
+ - [`docs/PUBLISHING.md`](docs/PUBLISHING.md): PyPI release workflow and permissions
190
+
191
+ ## License
192
+
193
+ Vault Graph is distributed under the MIT License. See [`LICENSE`](LICENSE).