graphmind 0.6.3__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (451) hide show
  1. graphmind-0.6.3/.cargo/config.toml +6 -0
  2. graphmind-0.6.3/.dockerignore +13 -0
  3. graphmind-0.6.3/.env.example +2 -0
  4. graphmind-0.6.3/.github/workflows/ci.yml +53 -0
  5. graphmind-0.6.3/.github/workflows/deploy-docs.yml +54 -0
  6. graphmind-0.6.3/.github/workflows/publish-crate.yml +54 -0
  7. graphmind-0.6.3/.github/workflows/release.yml +157 -0
  8. graphmind-0.6.3/.gitignore +21 -0
  9. graphmind-0.6.3/CLAUDE.md +295 -0
  10. graphmind-0.6.3/CODEOWNERS +9 -0
  11. graphmind-0.6.3/Cargo.lock +4400 -0
  12. graphmind-0.6.3/Cargo.toml +150 -0
  13. graphmind-0.6.3/Dockerfile +60 -0
  14. graphmind-0.6.3/LICENSE +202 -0
  15. graphmind-0.6.3/PKG-INFO +14 -0
  16. graphmind-0.6.3/README.md +402 -0
  17. graphmind-0.6.3/ROADMAP.md +120 -0
  18. graphmind-0.6.3/api/openapi.yaml +732 -0
  19. graphmind-0.6.3/benches/bench_setup.rs +102 -0
  20. graphmind-0.6.3/benches/finbench_benchmark.rs +708 -0
  21. graphmind-0.6.3/benches/finbench_common/mod.rs +1666 -0
  22. graphmind-0.6.3/benches/full_benchmark.rs +464 -0
  23. graphmind-0.6.3/benches/graph_benchmarks.rs +199 -0
  24. graphmind-0.6.3/benches/graph_optimization_benchmark.rs +254 -0
  25. graphmind-0.6.3/benches/graphalytics_benchmark.rs +910 -0
  26. graphmind-0.6.3/benches/graphalytics_common/mod.rs +419 -0
  27. graphmind-0.6.3/benches/late_materialization_bench.rs +236 -0
  28. graphmind-0.6.3/benches/ldbc_benchmark.rs +763 -0
  29. graphmind-0.6.3/benches/ldbc_bi_benchmark.rs +694 -0
  30. graphmind-0.6.3/benches/ldbc_bi_common/mod.rs +35 -0
  31. graphmind-0.6.3/benches/ldbc_common/mod.rs +1078 -0
  32. graphmind-0.6.3/benches/mvcc_benchmark.rs +369 -0
  33. graphmind-0.6.3/benches/vector_benchmark.rs +399 -0
  34. graphmind-0.6.3/crates/graphmind-graph-algorithms/Cargo.toml +17 -0
  35. graphmind-0.6.3/crates/graphmind-graph-algorithms/README.md +27 -0
  36. graphmind-0.6.3/crates/graphmind-graph-algorithms/src/cdlp.rs +161 -0
  37. graphmind-0.6.3/crates/graphmind-graph-algorithms/src/common.rs +117 -0
  38. graphmind-0.6.3/crates/graphmind-graph-algorithms/src/community.rs +236 -0
  39. graphmind-0.6.3/crates/graphmind-graph-algorithms/src/flow.rs +183 -0
  40. graphmind-0.6.3/crates/graphmind-graph-algorithms/src/lcc.rs +275 -0
  41. graphmind-0.6.3/crates/graphmind-graph-algorithms/src/lib.rs +23 -0
  42. graphmind-0.6.3/crates/graphmind-graph-algorithms/src/mst.rs +191 -0
  43. graphmind-0.6.3/crates/graphmind-graph-algorithms/src/pagerank.rs +360 -0
  44. graphmind-0.6.3/crates/graphmind-graph-algorithms/src/pathfinding.rs +374 -0
  45. graphmind-0.6.3/crates/graphmind-graph-algorithms/src/pca.rs +1003 -0
  46. graphmind-0.6.3/crates/graphmind-graph-algorithms/src/topology.rs +88 -0
  47. graphmind-0.6.3/crates/graphmind-optimization/Cargo.toml +22 -0
  48. graphmind-0.6.3/crates/graphmind-optimization/README.md +35 -0
  49. graphmind-0.6.3/crates/graphmind-optimization/src/algorithms/abc.rs +163 -0
  50. graphmind-0.6.3/crates/graphmind-optimization/src/algorithms/bat.rs +118 -0
  51. graphmind-0.6.3/crates/graphmind-optimization/src/algorithms/bmr.rs +126 -0
  52. graphmind-0.6.3/crates/graphmind-optimization/src/algorithms/bwr.rs +110 -0
  53. graphmind-0.6.3/crates/graphmind-optimization/src/algorithms/cuckoo.rs +173 -0
  54. graphmind-0.6.3/crates/graphmind-optimization/src/algorithms/de.rs +118 -0
  55. graphmind-0.6.3/crates/graphmind-optimization/src/algorithms/firefly.rs +150 -0
  56. graphmind-0.6.3/crates/graphmind-optimization/src/algorithms/fpa.rs +134 -0
  57. graphmind-0.6.3/crates/graphmind-optimization/src/algorithms/ga.rs +141 -0
  58. graphmind-0.6.3/crates/graphmind-optimization/src/algorithms/gotlbo.rs +160 -0
  59. graphmind-0.6.3/crates/graphmind-optimization/src/algorithms/gsa.rs +122 -0
  60. graphmind-0.6.3/crates/graphmind-optimization/src/algorithms/gwo.rs +104 -0
  61. graphmind-0.6.3/crates/graphmind-optimization/src/algorithms/hs.rs +93 -0
  62. graphmind-0.6.3/crates/graphmind-optimization/src/algorithms/itlbo.rs +152 -0
  63. graphmind-0.6.3/crates/graphmind-optimization/src/algorithms/jaya.rs +97 -0
  64. graphmind-0.6.3/crates/graphmind-optimization/src/algorithms/mod.rs +45 -0
  65. graphmind-0.6.3/crates/graphmind-optimization/src/algorithms/motlbo.rs +252 -0
  66. graphmind-0.6.3/crates/graphmind-optimization/src/algorithms/nsga2.rs +265 -0
  67. graphmind-0.6.3/crates/graphmind-optimization/src/algorithms/pso.rs +133 -0
  68. graphmind-0.6.3/crates/graphmind-optimization/src/algorithms/qojaya.rs +155 -0
  69. graphmind-0.6.3/crates/graphmind-optimization/src/algorithms/rao.rs +145 -0
  70. graphmind-0.6.3/crates/graphmind-optimization/src/algorithms/sa.rs +83 -0
  71. graphmind-0.6.3/crates/graphmind-optimization/src/algorithms/tlbo.rs +131 -0
  72. graphmind-0.6.3/crates/graphmind-optimization/src/common.rs +136 -0
  73. graphmind-0.6.3/crates/graphmind-optimization/src/lib.rs +10 -0
  74. graphmind-0.6.3/crates/graphmind-optimization/tests/test_solvers.rs +601 -0
  75. graphmind-0.6.3/crates/graphmind-sdk/Cargo.toml +41 -0
  76. graphmind-0.6.3/crates/graphmind-sdk/README.md +71 -0
  77. graphmind-0.6.3/crates/graphmind-sdk/src/algo.rs +405 -0
  78. graphmind-0.6.3/crates/graphmind-sdk/src/client.rs +40 -0
  79. graphmind-0.6.3/crates/graphmind-sdk/src/embedded.rs +765 -0
  80. graphmind-0.6.3/crates/graphmind-sdk/src/error.rs +45 -0
  81. graphmind-0.6.3/crates/graphmind-sdk/src/lib.rs +137 -0
  82. graphmind-0.6.3/crates/graphmind-sdk/src/models.rs +79 -0
  83. graphmind-0.6.3/crates/graphmind-sdk/src/remote.rs +141 -0
  84. graphmind-0.6.3/crates/graphmind-sdk/src/vector_ext.rs +139 -0
  85. graphmind-0.6.3/deny.toml +32 -0
  86. graphmind-0.6.3/dist/config.toml +39 -0
  87. graphmind-0.6.3/dist/graphmind.service +30 -0
  88. graphmind-0.6.3/dist/install.sh +53 -0
  89. graphmind-0.6.3/docs/ACID_GUARANTEES.md +67 -0
  90. graphmind-0.6.3/docs/ADR/ADR-001-use-rust-as-primary-language.md +277 -0
  91. graphmind-0.6.3/docs/ADR/ADR-002-use-rocksdb-for-persistence.md +412 -0
  92. graphmind-0.6.3/docs/ADR/ADR-003-use-resp-protocol.md +469 -0
  93. graphmind-0.6.3/docs/ADR/ADR-004-use-raft-consensus.md +561 -0
  94. graphmind-0.6.3/docs/ADR/ADR-005-use-capnproto-serialization.md +517 -0
  95. graphmind-0.6.3/docs/ADR/ADR-006-use-tokio-async-runtime.md +86 -0
  96. graphmind-0.6.3/docs/ADR/ADR-007-volcano-iterator-execution.md +104 -0
  97. graphmind-0.6.3/docs/ADR/ADR-008-multi-tenancy-namespace-isolation.md +133 -0
  98. graphmind-0.6.3/docs/ADR/ADR-009-graph-partitioning-strategy.md +169 -0
  99. graphmind-0.6.3/docs/ADR/ADR-010-observability-stack.md +199 -0
  100. graphmind-0.6.3/docs/ADR/ADR-011-cypher-crud-operations.md +206 -0
  101. graphmind-0.6.3/docs/ADR/ADR-012-late-materialization.md +153 -0
  102. graphmind-0.6.3/docs/ADR/ADR-013-peg-grammar-atomic-keywords.md +176 -0
  103. graphmind-0.6.3/docs/ADR/ADR-014-explain-profile-queries.md +239 -0
  104. graphmind-0.6.3/docs/ADR/ADR-015-graph-native-query-planning.md +186 -0
  105. graphmind-0.6.3/docs/ADR/README.md +63 -0
  106. graphmind-0.6.3/docs/ARCHITECTURE.md +1355 -0
  107. graphmind-0.6.3/docs/CYPHER_COMPATIBILITY.md +88 -0
  108. graphmind-0.6.3/docs/GLOSSARY.md +93 -0
  109. graphmind-0.6.3/docs/README.md +49 -0
  110. graphmind-0.6.3/docs/REQUIREMENTS.md +311 -0
  111. graphmind-0.6.3/docs/SDK_API_CLI_ARCHITECTURE.md +341 -0
  112. graphmind-0.6.3/docs/SUPPLY_CHAIN_GUARDIAN_DEMO.md +98 -0
  113. graphmind-0.6.3/docs/TECHNOLOGY_COMPARISONS.md +768 -0
  114. graphmind-0.6.3/docs/TECH_STACK.md +1130 -0
  115. graphmind-0.6.3/docs/archive/AGENCY_ENRICHMENT_PROPOSAL.md +59 -0
  116. graphmind-0.6.3/docs/archive/ARCHITECTURE_ROADMAP.md +67 -0
  117. graphmind-0.6.3/docs/archive/GNN_PROPOSAL.md +47 -0
  118. graphmind-0.6.3/docs/archive/PERFORMANCE_ROADMAP.md +67 -0
  119. graphmind-0.6.3/docs/archive/PROGRESS.md +45 -0
  120. graphmind-0.6.3/docs/ldbc/FINBENCH.md +160 -0
  121. graphmind-0.6.3/docs/ldbc/GRAPHALYTICS.md +231 -0
  122. graphmind-0.6.3/docs/ldbc/README.md +67 -0
  123. graphmind-0.6.3/docs/ldbc/SNB_BI.md +110 -0
  124. graphmind-0.6.3/docs/ldbc/SNB_INTERACTIVE.md +149 -0
  125. graphmind-0.6.3/docs/optimization/CASE_STUDY_HEALTHCARE.md +34 -0
  126. graphmind-0.6.3/docs/optimization/pypi_publish_workflow.yml +56 -0
  127. graphmind-0.6.3/docs/performance/BENCHMARKS.md +94 -0
  128. graphmind-0.6.3/docs/performance/BENCHMARK_COMPARISON.md +51 -0
  129. graphmind-0.6.3/docs/performance/BENCHMARK_RESULTS_v0.5.0.md +73 -0
  130. graphmind-0.6.3/docs/product/README.md +316 -0
  131. graphmind-0.6.3/docs/product/personas.csv +13 -0
  132. graphmind-0.6.3/docs/product/testcases.csv +45 -0
  133. graphmind-0.6.3/docs/product/traceability_matrix.csv +111 -0
  134. graphmind-0.6.3/docs/product/usecases.csv +30 -0
  135. graphmind-0.6.3/docs/product/workflows.csv +18 -0
  136. graphmind-0.6.3/docs/test-results/COMPREHENSIVE_TEST_REPORT.md +851 -0
  137. graphmind-0.6.3/docs/test-results/PHASE2_RESP_TESTS.md +190 -0
  138. graphmind-0.6.3/docs/test-results/README.md +217 -0
  139. graphmind-0.6.3/docs-site/.gitignore +3 -0
  140. graphmind-0.6.3/docs-site/README.md +41 -0
  141. graphmind-0.6.3/docs-site/docs/admin/authentication.md +117 -0
  142. graphmind-0.6.3/docs-site/docs/admin/backup-restore.md +112 -0
  143. graphmind-0.6.3/docs-site/docs/admin/monitoring.md +143 -0
  144. graphmind-0.6.3/docs-site/docs/admin/multi-tenancy.md +150 -0
  145. graphmind-0.6.3/docs-site/docs/adr/001-rust.md +103 -0
  146. graphmind-0.6.3/docs-site/docs/adr/002-rocksdb.md +95 -0
  147. graphmind-0.6.3/docs-site/docs/adr/003-resp.md +87 -0
  148. graphmind-0.6.3/docs-site/docs/adr/004-raft.md +87 -0
  149. graphmind-0.6.3/docs-site/docs/adr/005-capnproto.md +86 -0
  150. graphmind-0.6.3/docs-site/docs/adr/006-tokio.md +56 -0
  151. graphmind-0.6.3/docs-site/docs/adr/007-volcano.md +65 -0
  152. graphmind-0.6.3/docs-site/docs/adr/008-multi-tenancy.md +64 -0
  153. graphmind-0.6.3/docs-site/docs/adr/009-partitioning.md +68 -0
  154. graphmind-0.6.3/docs-site/docs/adr/010-observability.md +65 -0
  155. graphmind-0.6.3/docs-site/docs/adr/011-cypher-crud.md +80 -0
  156. graphmind-0.6.3/docs-site/docs/adr/012-late-materialization.md +79 -0
  157. graphmind-0.6.3/docs-site/docs/adr/013-peg-grammar.md +71 -0
  158. graphmind-0.6.3/docs-site/docs/adr/014-explain-profile.md +88 -0
  159. graphmind-0.6.3/docs-site/docs/adr/015-graph-native-planner.md +106 -0
  160. graphmind-0.6.3/docs-site/docs/adr/_category_.json +6 -0
  161. graphmind-0.6.3/docs-site/docs/advanced/algorithms.md +185 -0
  162. graphmind-0.6.3/docs-site/docs/advanced/architecture.md +181 -0
  163. graphmind-0.6.3/docs-site/docs/advanced/nlq.md +119 -0
  164. graphmind-0.6.3/docs-site/docs/advanced/vector-search.md +142 -0
  165. graphmind-0.6.3/docs-site/docs/cypher/aggregations.md +162 -0
  166. graphmind-0.6.3/docs-site/docs/cypher/basics.md +196 -0
  167. graphmind-0.6.3/docs-site/docs/cypher/crud.md +217 -0
  168. graphmind-0.6.3/docs-site/docs/cypher/functions.md +143 -0
  169. graphmind-0.6.3/docs-site/docs/cypher/patterns.md +190 -0
  170. graphmind-0.6.3/docs-site/docs/getting-started.md +107 -0
  171. graphmind-0.6.3/docs-site/docs/glossary.md +81 -0
  172. graphmind-0.6.3/docs-site/docs/installation/binary.md +101 -0
  173. graphmind-0.6.3/docs-site/docs/installation/configuration.md +130 -0
  174. graphmind-0.6.3/docs-site/docs/installation/docker.md +133 -0
  175. graphmind-0.6.3/docs-site/docs/installation/source.md +131 -0
  176. graphmind-0.6.3/docs-site/docs/ldbc/_category_.json +6 -0
  177. graphmind-0.6.3/docs-site/docs/ldbc/finbench.md +125 -0
  178. graphmind-0.6.3/docs-site/docs/ldbc/graphalytics.md +110 -0
  179. graphmind-0.6.3/docs-site/docs/ldbc/index.md +66 -0
  180. graphmind-0.6.3/docs-site/docs/ldbc/snb-bi.md +73 -0
  181. graphmind-0.6.3/docs-site/docs/ldbc/snb-interactive.md +97 -0
  182. graphmind-0.6.3/docs-site/docs/performance/_category_.json +6 -0
  183. graphmind-0.6.3/docs-site/docs/performance/benchmarks.md +98 -0
  184. graphmind-0.6.3/docs-site/docs/performance/comparison.md +50 -0
  185. graphmind-0.6.3/docs-site/docs/sdks/_category_.json +5 -0
  186. graphmind-0.6.3/docs-site/docs/sdks/index.md +81 -0
  187. graphmind-0.6.3/docs-site/docs/sdks/python.md +395 -0
  188. graphmind-0.6.3/docs-site/docs/sdks/resp-protocol.md +282 -0
  189. graphmind-0.6.3/docs-site/docs/sdks/rest-api.md +412 -0
  190. graphmind-0.6.3/docs-site/docs/sdks/rust.md +385 -0
  191. graphmind-0.6.3/docs-site/docs/sdks/typescript.md +385 -0
  192. graphmind-0.6.3/docs-site/docs/visualizer/features.md +178 -0
  193. graphmind-0.6.3/docs-site/docs/visualizer/index.md +77 -0
  194. graphmind-0.6.3/docs-site/docusaurus.config.ts +144 -0
  195. graphmind-0.6.3/docs-site/package-lock.json +19710 -0
  196. graphmind-0.6.3/docs-site/package.json +48 -0
  197. graphmind-0.6.3/docs-site/sidebars.ts +64 -0
  198. graphmind-0.6.3/docs-site/src/css/custom.css +48 -0
  199. graphmind-0.6.3/docs-site/src/pages/index.module.css +426 -0
  200. graphmind-0.6.3/docs-site/src/pages/index.tsx +358 -0
  201. graphmind-0.6.3/docs-site/static/.nojekyll +0 -0
  202. graphmind-0.6.3/docs-site/static/img/favicon.ico +0 -0
  203. graphmind-0.6.3/docs-site/static/img/logo.svg +10 -0
  204. graphmind-0.6.3/docs-site/tsconfig.json +8 -0
  205. graphmind-0.6.3/examples/aact_common/mod.rs +1589 -0
  206. graphmind-0.6.3/examples/aact_loader.rs +167 -0
  207. graphmind-0.6.3/examples/agentic_enrichment_demo.rs +371 -0
  208. graphmind-0.6.3/examples/banking_demo.rs +2262 -0
  209. graphmind-0.6.3/examples/clinical_trials_demo.rs +2224 -0
  210. graphmind-0.6.3/examples/cluster_demo.rs +444 -0
  211. graphmind-0.6.3/examples/cricket_common/mod.rs +875 -0
  212. graphmind-0.6.3/examples/cricket_loader.rs +163 -0
  213. graphmind-0.6.3/examples/druginteractions_common/mod.rs +529 -0
  214. graphmind-0.6.3/examples/druginteractions_loader.rs +164 -0
  215. graphmind-0.6.3/examples/enterprise_soc_demo.rs +2139 -0
  216. graphmind-0.6.3/examples/finbench_common/mod.rs +1667 -0
  217. graphmind-0.6.3/examples/finbench_loader.rs +138 -0
  218. graphmind-0.6.3/examples/industrial_kg_demo.rs +1307 -0
  219. graphmind-0.6.3/examples/knowledge_graph_demo.rs +1653 -0
  220. graphmind-0.6.3/examples/ldbc_common/mod.rs +1078 -0
  221. graphmind-0.6.3/examples/ldbc_loader.rs +119 -0
  222. graphmind-0.6.3/examples/pathways_common/mod.rs +1231 -0
  223. graphmind-0.6.3/examples/pathways_loader.rs +179 -0
  224. graphmind-0.6.3/examples/pca_demo.rs +629 -0
  225. graphmind-0.6.3/examples/sdk_demo.rs +252 -0
  226. graphmind-0.6.3/examples/simple_client_demo.py +248 -0
  227. graphmind-0.6.3/examples/smart_manufacturing_demo.rs +1075 -0
  228. graphmind-0.6.3/examples/social_network_demo.rs +913 -0
  229. graphmind-0.6.3/examples/supply_chain_demo.rs +2515 -0
  230. graphmind-0.6.3/examples/surveillance_common/mod.rs +418 -0
  231. graphmind-0.6.3/examples/surveillance_loader.rs +130 -0
  232. graphmind-0.6.3/graphmind_mcp/__init__.py +8 -0
  233. graphmind-0.6.3/graphmind_mcp/__main__.py +5 -0
  234. graphmind-0.6.3/graphmind_mcp/cli.py +172 -0
  235. graphmind-0.6.3/graphmind_mcp/config.py +58 -0
  236. graphmind-0.6.3/graphmind_mcp/escape.py +53 -0
  237. graphmind-0.6.3/graphmind_mcp/generators/__init__.py +15 -0
  238. graphmind-0.6.3/graphmind_mcp/generators/algorithm_tools.py +169 -0
  239. graphmind-0.6.3/graphmind_mcp/generators/base.py +36 -0
  240. graphmind-0.6.3/graphmind_mcp/generators/edge_tools.py +144 -0
  241. graphmind-0.6.3/graphmind_mcp/generators/generic_tools.py +50 -0
  242. graphmind-0.6.3/graphmind_mcp/generators/node_tools.py +155 -0
  243. graphmind-0.6.3/graphmind_mcp/generators/vector_tools.py +72 -0
  244. graphmind-0.6.3/graphmind_mcp/schema.py +259 -0
  245. graphmind-0.6.3/graphmind_mcp/server.py +193 -0
  246. graphmind-0.6.3/ldbc-benchmark-results.png +0 -0
  247. graphmind-0.6.3/pyproject.toml +30 -0
  248. graphmind-0.6.3/scripts/README.md +141 -0
  249. graphmind-0.6.3/scripts/coverage.sh +77 -0
  250. graphmind-0.6.3/scripts/distributed_test.sh +56 -0
  251. graphmind-0.6.3/scripts/download_finbench.sh +338 -0
  252. graphmind-0.6.3/scripts/download_graphalytics.sh +234 -0
  253. graphmind-0.6.3/scripts/download_snapshot.py +109 -0
  254. graphmind-0.6.3/scripts/enrich_clinical_trials.py +332 -0
  255. graphmind-0.6.3/scripts/run_all_examples.sh +310 -0
  256. graphmind-0.6.3/scripts/social_network_demo.cypher +322 -0
  257. graphmind-0.6.3/scripts/upload_snapshot.py +123 -0
  258. graphmind-0.6.3/sdk/python/.gitignore +6 -0
  259. graphmind-0.6.3/sdk/python/Cargo.lock +4265 -0
  260. graphmind-0.6.3/sdk/python/Cargo.toml +20 -0
  261. graphmind-0.6.3/sdk/python/README.md +79 -0
  262. graphmind-0.6.3/sdk/python/src/lib.rs +563 -0
  263. graphmind-0.6.3/sdk/python/tests/test_embedded.py +59 -0
  264. graphmind-0.6.3/sdk/python/tests/test_mcp_escape.py +141 -0
  265. graphmind-0.6.3/sdk/python/tests/test_mcp_generators.py +391 -0
  266. graphmind-0.6.3/sdk/python/tests/test_mcp_schema.py +201 -0
  267. graphmind-0.6.3/sdk/python/tests/test_mcp_server.py +217 -0
  268. graphmind-0.6.3/sdk/python/tests/test_vector.py +38 -0
  269. graphmind-0.6.3/sdk/typescript/.gitignore +5 -0
  270. graphmind-0.6.3/sdk/typescript/README.md +73 -0
  271. graphmind-0.6.3/sdk/typescript/package-lock.json +48 -0
  272. graphmind-0.6.3/sdk/typescript/package.json +34 -0
  273. graphmind-0.6.3/sdk/typescript/src/client.ts +191 -0
  274. graphmind-0.6.3/sdk/typescript/src/http-client.ts +137 -0
  275. graphmind-0.6.3/sdk/typescript/src/index.ts +17 -0
  276. graphmind-0.6.3/sdk/typescript/src/types.ts +143 -0
  277. graphmind-0.6.3/sdk/typescript/tests/client.test.ts +118 -0
  278. graphmind-0.6.3/sdk/typescript/tsconfig.json +20 -0
  279. graphmind-0.6.3/src/agent/mod.rs +136 -0
  280. graphmind-0.6.3/src/agent/tools.rs +107 -0
  281. graphmind-0.6.3/src/algo/mod.rs +134 -0
  282. graphmind-0.6.3/src/audit.rs +121 -0
  283. graphmind-0.6.3/src/auth.rs +112 -0
  284. graphmind-0.6.3/src/embed/client.rs +697 -0
  285. graphmind-0.6.3/src/embed/mod.rs +180 -0
  286. graphmind-0.6.3/src/graph/catalog.rs +923 -0
  287. graphmind-0.6.3/src/graph/edge.rs +297 -0
  288. graphmind-0.6.3/src/graph/event.rs +36 -0
  289. graphmind-0.6.3/src/graph/mod.rs +72 -0
  290. graphmind-0.6.3/src/graph/node.rs +332 -0
  291. graphmind-0.6.3/src/graph/property.rs +1327 -0
  292. graphmind-0.6.3/src/graph/storage/columnar.rs +131 -0
  293. graphmind-0.6.3/src/graph/storage/mod.rs +3 -0
  294. graphmind-0.6.3/src/graph/store.rs +3376 -0
  295. graphmind-0.6.3/src/graph/types.rs +200 -0
  296. graphmind-0.6.3/src/http/handler.rs +1506 -0
  297. graphmind-0.6.3/src/http/mod.rs +6 -0
  298. graphmind-0.6.3/src/http/server.rs +400 -0
  299. graphmind-0.6.3/src/http/static/assets/index-DRQhgRiT.js +33 -0
  300. graphmind-0.6.3/src/http/static/assets/index-DpPSVizJ.css +2 -0
  301. graphmind-0.6.3/src/http/static/favicon.svg +1 -0
  302. graphmind-0.6.3/src/http/static/icons.svg +24 -0
  303. graphmind-0.6.3/src/http/static/index.html +14 -0
  304. graphmind-0.6.3/src/index/manager.rs +640 -0
  305. graphmind-0.6.3/src/index/mod.rs +9 -0
  306. graphmind-0.6.3/src/index/property_index.rs +108 -0
  307. graphmind-0.6.3/src/lib.rs +236 -0
  308. graphmind-0.6.3/src/main.rs +818 -0
  309. graphmind-0.6.3/src/metrics.rs +53 -0
  310. graphmind-0.6.3/src/nlq/client.rs +616 -0
  311. graphmind-0.6.3/src/nlq/mod.rs +390 -0
  312. graphmind-0.6.3/src/persistence/mod.rs +550 -0
  313. graphmind-0.6.3/src/persistence/storage.rs +755 -0
  314. graphmind-0.6.3/src/persistence/tenant.rs +1655 -0
  315. graphmind-0.6.3/src/persistence/wal.rs +471 -0
  316. graphmind-0.6.3/src/protocol/command.rs +1031 -0
  317. graphmind-0.6.3/src/protocol/mod.rs +57 -0
  318. graphmind-0.6.3/src/protocol/resp.rs +1180 -0
  319. graphmind-0.6.3/src/protocol/server.rs +788 -0
  320. graphmind-0.6.3/src/query/ast.rs +688 -0
  321. graphmind-0.6.3/src/query/cypher.pest +196 -0
  322. graphmind-0.6.3/src/query/executor/cost_model.rs +358 -0
  323. graphmind-0.6.3/src/query/executor/logical_optimizer.rs +510 -0
  324. graphmind-0.6.3/src/query/executor/logical_plan.rs +457 -0
  325. graphmind-0.6.3/src/query/executor/mod.rs +8558 -0
  326. graphmind-0.6.3/src/query/executor/operator.rs +11031 -0
  327. graphmind-0.6.3/src/query/executor/physical_planner.rs +255 -0
  328. graphmind-0.6.3/src/query/executor/plan_enumerator.rs +676 -0
  329. graphmind-0.6.3/src/query/executor/planner.rs +3586 -0
  330. graphmind-0.6.3/src/query/executor/record.rs +913 -0
  331. graphmind-0.6.3/src/query/mod.rs +614 -0
  332. graphmind-0.6.3/src/query/parser.rs +3899 -0
  333. graphmind-0.6.3/src/raft/cluster.rs +719 -0
  334. graphmind-0.6.3/src/raft/mod.rs +107 -0
  335. graphmind-0.6.3/src/raft/network.rs +549 -0
  336. graphmind-0.6.3/src/raft/node.rs +450 -0
  337. graphmind-0.6.3/src/raft/state_machine.rs +670 -0
  338. graphmind-0.6.3/src/raft/storage.rs +246 -0
  339. graphmind-0.6.3/src/rbac.rs +107 -0
  340. graphmind-0.6.3/src/rdf/mapping.rs +159 -0
  341. graphmind-0.6.3/src/rdf/mod.rs +74 -0
  342. graphmind-0.6.3/src/rdf/namespace.rs +169 -0
  343. graphmind-0.6.3/src/rdf/schema.rs +119 -0
  344. graphmind-0.6.3/src/rdf/serialization/jsonld.rs +112 -0
  345. graphmind-0.6.3/src/rdf/serialization/mod.rs +217 -0
  346. graphmind-0.6.3/src/rdf/serialization/ntriples.rs +636 -0
  347. graphmind-0.6.3/src/rdf/serialization/rdfxml.rs +401 -0
  348. graphmind-0.6.3/src/rdf/serialization/turtle.rs +205 -0
  349. graphmind-0.6.3/src/rdf/store.rs +934 -0
  350. graphmind-0.6.3/src/rdf/types.rs +1323 -0
  351. graphmind-0.6.3/src/sharding/mod.rs +9 -0
  352. graphmind-0.6.3/src/sharding/proxy.rs +73 -0
  353. graphmind-0.6.3/src/sharding/router.rs +112 -0
  354. graphmind-0.6.3/src/snapshot/format.rs +61 -0
  355. graphmind-0.6.3/src/snapshot/mod.rs +787 -0
  356. graphmind-0.6.3/src/sparql/algebra.rs +18 -0
  357. graphmind-0.6.3/src/sparql/executor.rs +102 -0
  358. graphmind-0.6.3/src/sparql/http.rs +43 -0
  359. graphmind-0.6.3/src/sparql/mod.rs +128 -0
  360. graphmind-0.6.3/src/sparql/optimizer.rs +48 -0
  361. graphmind-0.6.3/src/sparql/parser.rs +47 -0
  362. graphmind-0.6.3/src/sparql/results.rs +148 -0
  363. graphmind-0.6.3/src/tenant_store.rs +186 -0
  364. graphmind-0.6.3/src/vector/index.rs +336 -0
  365. graphmind-0.6.3/src/vector/manager.rs +172 -0
  366. graphmind-0.6.3/src/vector/mod.rs +52 -0
  367. graphmind-0.6.3/tests/advanced_aggregations.rs +122 -0
  368. graphmind-0.6.3/tests/advanced_cypher.rs +163 -0
  369. graphmind-0.6.3/tests/ai_features_test.rs +52 -0
  370. graphmind-0.6.3/tests/algo_integration_test.rs +110 -0
  371. graphmind-0.6.3/tests/algo_test.rs +98 -0
  372. graphmind-0.6.3/tests/comprehensive_test.rs +320 -0
  373. graphmind-0.6.3/tests/cypher_crud_test.rs +837 -0
  374. graphmind-0.6.3/tests/distributed_client.py +49 -0
  375. graphmind-0.6.3/tests/index_test.rs +81 -0
  376. graphmind-0.6.3/tests/integration/README.md +235 -0
  377. graphmind-0.6.3/tests/integration/test_resp_basic.py +107 -0
  378. graphmind-0.6.3/tests/integration/test_resp_visual.py +122 -0
  379. graphmind-0.6.3/tests/multi_objective_test.rs +81 -0
  380. graphmind-0.6.3/tests/mvcc_test.rs +71 -0
  381. graphmind-0.6.3/tests/optimization_test.rs +98 -0
  382. graphmind-0.6.3/tests/sharding_test.rs +118 -0
  383. graphmind-0.6.3/tests/target_node_filter_test.rs +667 -0
  384. graphmind-0.6.3/tests/v060_features_test.rs +700 -0
  385. graphmind-0.6.3/tests/vector_query_test.rs +179 -0
  386. graphmind-0.6.3/tests/vector_search_test.rs +90 -0
  387. graphmind-0.6.3/ui/.agents/skills/shadcn/SKILL.md +242 -0
  388. graphmind-0.6.3/ui/.agents/skills/shadcn/agents/openai.yml +5 -0
  389. graphmind-0.6.3/ui/.agents/skills/shadcn/assets/shadcn-small.png +0 -0
  390. graphmind-0.6.3/ui/.agents/skills/shadcn/assets/shadcn.png +0 -0
  391. graphmind-0.6.3/ui/.agents/skills/shadcn/cli.md +257 -0
  392. graphmind-0.6.3/ui/.agents/skills/shadcn/customization.md +202 -0
  393. graphmind-0.6.3/ui/.agents/skills/shadcn/evals/evals.json +47 -0
  394. graphmind-0.6.3/ui/.agents/skills/shadcn/mcp.md +94 -0
  395. graphmind-0.6.3/ui/.agents/skills/shadcn/rules/base-vs-radix.md +306 -0
  396. graphmind-0.6.3/ui/.agents/skills/shadcn/rules/composition.md +195 -0
  397. graphmind-0.6.3/ui/.agents/skills/shadcn/rules/forms.md +192 -0
  398. graphmind-0.6.3/ui/.agents/skills/shadcn/rules/icons.md +101 -0
  399. graphmind-0.6.3/ui/.agents/skills/shadcn/rules/styling.md +162 -0
  400. graphmind-0.6.3/ui/.gitignore +2 -0
  401. graphmind-0.6.3/ui/README.md +73 -0
  402. graphmind-0.6.3/ui/components.json +25 -0
  403. graphmind-0.6.3/ui/eslint.config.js +23 -0
  404. graphmind-0.6.3/ui/index.html +13 -0
  405. graphmind-0.6.3/ui/package-lock.json +8135 -0
  406. graphmind-0.6.3/ui/package.json +55 -0
  407. graphmind-0.6.3/ui/public/favicon.svg +1 -0
  408. graphmind-0.6.3/ui/public/icons.svg +24 -0
  409. graphmind-0.6.3/ui/skills-lock.json +10 -0
  410. graphmind-0.6.3/ui/src/App.tsx +106 -0
  411. graphmind-0.6.3/ui/src/api/client.ts +147 -0
  412. graphmind-0.6.3/ui/src/components/editor/CypherEditor.tsx +371 -0
  413. graphmind-0.6.3/ui/src/components/editor/SavedQueries.tsx +158 -0
  414. graphmind-0.6.3/ui/src/components/graph/ForceGraph.tsx +1688 -0
  415. graphmind-0.6.3/ui/src/components/graph/FullscreenExplorer.tsx +758 -0
  416. graphmind-0.6.3/ui/src/components/graph/GraphStats.tsx +249 -0
  417. graphmind-0.6.3/ui/src/components/graph/GraphToolbar.tsx +235 -0
  418. graphmind-0.6.3/ui/src/components/graph/KeyboardShortcutsHelp.tsx +96 -0
  419. graphmind-0.6.3/ui/src/components/inspector/PropertyInspector.tsx +170 -0
  420. graphmind-0.6.3/ui/src/components/inspector/RightPanel.tsx +35 -0
  421. graphmind-0.6.3/ui/src/components/inspector/SchemaBrowser.tsx +416 -0
  422. graphmind-0.6.3/ui/src/components/layout/AppShell.tsx +64 -0
  423. graphmind-0.6.3/ui/src/components/layout/LeftPanel.tsx +422 -0
  424. graphmind-0.6.3/ui/src/components/layout/Navbar.tsx +182 -0
  425. graphmind-0.6.3/ui/src/components/results/BottomPanel.tsx +33 -0
  426. graphmind-0.6.3/ui/src/components/results/ResultsTable.tsx +137 -0
  427. graphmind-0.6.3/ui/src/components/theme-provider.tsx +68 -0
  428. graphmind-0.6.3/ui/src/components/ui/badge.tsx +25 -0
  429. graphmind-0.6.3/ui/src/components/ui/button.tsx +39 -0
  430. graphmind-0.6.3/ui/src/components/ui/graph-selector.tsx +132 -0
  431. graphmind-0.6.3/ui/src/components/ui/icon-picker.tsx +175 -0
  432. graphmind-0.6.3/ui/src/components/ui/resizable.tsx +48 -0
  433. graphmind-0.6.3/ui/src/components/ui/tabs.tsx +40 -0
  434. graphmind-0.6.3/ui/src/components/ui/theme-toggle.tsx +33 -0
  435. graphmind-0.6.3/ui/src/index.css +194 -0
  436. graphmind-0.6.3/ui/src/lib/colors.ts +140 -0
  437. graphmind-0.6.3/ui/src/lib/cypher.ts +120 -0
  438. graphmind-0.6.3/ui/src/lib/icons.ts +126 -0
  439. graphmind-0.6.3/ui/src/lib/shortcuts.ts +84 -0
  440. graphmind-0.6.3/ui/src/lib/utils.ts +6 -0
  441. graphmind-0.6.3/ui/src/main.tsx +10 -0
  442. graphmind-0.6.3/ui/src/stores/graphSettingsStore.ts +122 -0
  443. graphmind-0.6.3/ui/src/stores/graphStore.ts +108 -0
  444. graphmind-0.6.3/ui/src/stores/queryStore.ts +148 -0
  445. graphmind-0.6.3/ui/src/stores/uiStore.ts +55 -0
  446. graphmind-0.6.3/ui/src/types/api.ts +65 -0
  447. graphmind-0.6.3/ui/tsconfig.app.json +32 -0
  448. graphmind-0.6.3/ui/tsconfig.json +13 -0
  449. graphmind-0.6.3/ui/tsconfig.node.json +26 -0
  450. graphmind-0.6.3/ui/vite.config.ts +26 -0
  451. graphmind-0.6.3/visualization.svg +1 -0
@@ -0,0 +1,6 @@
1
+ # Workaround for GCC 13+ requiring explicit <cstdint> includes.
2
+ # The bundled librocksdb-sys 0.16 headers lack this include.
3
+ # Remove this once rocksdb is upgraded to a version with the fix
4
+ # and libclang-dev is available for bindgen.
5
+ [env]
6
+ CXXFLAGS = "-include cstdint"
@@ -0,0 +1,13 @@
1
+ target/
2
+ .git/
3
+ .gitignore
4
+ *.md
5
+ docs/
6
+ tests/
7
+ .claude/
8
+ *_data/
9
+ vectors/
10
+ wal/
11
+ data/
12
+ visualization.svg
13
+ vis.png
@@ -0,0 +1,2 @@
1
+ # Gemini API Key for AI/Agent Demos
2
+ GEMINI_API_KEY=your_gemini_api_key_here
@@ -0,0 +1,53 @@
1
+ name: CI
2
+
3
+ on:
4
+ push:
5
+ branches: [main]
6
+ pull_request:
7
+ branches: [main]
8
+
9
+ env:
10
+ CARGO_TERM_COLOR: always
11
+ CXXFLAGS: "-include cstdint"
12
+
13
+ jobs:
14
+ test:
15
+ name: Test (${{ matrix.os }})
16
+ runs-on: ${{ matrix.os }}
17
+ strategy:
18
+ matrix:
19
+ os: [ubuntu-latest, macos-latest, windows-latest]
20
+ steps:
21
+ - uses: actions/checkout@v4
22
+ - uses: dtolnay/rust-toolchain@stable
23
+ - uses: Swatinem/rust-cache@v2
24
+ - name: Build
25
+ run: cargo build --verbose
26
+ - name: Run tests
27
+ run: cargo test --verbose
28
+
29
+ lint:
30
+ name: Lint
31
+ runs-on: ubuntu-latest
32
+ steps:
33
+ - uses: actions/checkout@v4
34
+ - uses: dtolnay/rust-toolchain@stable
35
+ with:
36
+ components: clippy, rustfmt
37
+ - uses: Swatinem/rust-cache@v2
38
+ - name: Check formatting
39
+ run: cargo fmt -- --check
40
+ - name: Clippy
41
+ run: cargo clippy -- -D warnings
42
+
43
+ ui:
44
+ name: UI Build
45
+ runs-on: ubuntu-latest
46
+ steps:
47
+ - uses: actions/checkout@v4
48
+ - uses: actions/setup-node@v4
49
+ with:
50
+ node-version: 20
51
+ cache: npm
52
+ cache-dependency-path: ui/package-lock.json
53
+ - run: cd ui && npm ci && npm run build
@@ -0,0 +1,54 @@
1
+ name: Deploy Documentation
2
+
3
+ on:
4
+ push:
5
+ branches: [main]
6
+ paths:
7
+ - 'docs-site/**'
8
+ - 'docs/**'
9
+ workflow_dispatch:
10
+
11
+ permissions:
12
+ contents: read
13
+ pages: write
14
+ id-token: write
15
+
16
+ concurrency:
17
+ group: "pages"
18
+ cancel-in-progress: false
19
+
20
+ jobs:
21
+ build:
22
+ runs-on: ubuntu-latest
23
+ steps:
24
+ - uses: actions/checkout@v4
25
+
26
+ - uses: actions/setup-node@v4
27
+ with:
28
+ node-version: 20
29
+ cache: npm
30
+ cache-dependency-path: docs-site/package-lock.json
31
+
32
+ - name: Install dependencies
33
+ working-directory: docs-site
34
+ run: npm ci
35
+
36
+ - name: Build docs
37
+ working-directory: docs-site
38
+ run: npm run build
39
+
40
+ - name: Upload artifact
41
+ uses: actions/upload-pages-artifact@v3
42
+ with:
43
+ path: docs-site/build
44
+
45
+ deploy:
46
+ environment:
47
+ name: github-pages
48
+ url: ${{ steps.deployment.outputs.page_url }}
49
+ runs-on: ubuntu-latest
50
+ needs: build
51
+ steps:
52
+ - name: Deploy to GitHub Pages
53
+ id: deployment
54
+ uses: actions/deploy-pages@v4
@@ -0,0 +1,54 @@
1
+ name: Publish Crate to Crates.io
2
+
3
+ on:
4
+ release:
5
+ types: [created]
6
+ workflow_dispatch:
7
+
8
+ env:
9
+ CARGO_TERM_COLOR: always
10
+
11
+ jobs:
12
+ publish:
13
+ name: Publish graphmind-optimization
14
+ runs-on: ubuntu-latest
15
+ steps:
16
+ - name: Checkout code
17
+ uses: actions/checkout@v4
18
+
19
+ - name: Install Rust toolchain
20
+ uses: dtolnay/rust-toolchain@stable
21
+
22
+ - name: Publish to crates.io
23
+ env:
24
+ CARGO_REGISTRY_TOKEN: ${{ secrets.CRATES_IO_TOKEN }}
25
+ shell: bash
26
+ run: |
27
+ publish_crate() {
28
+ CRATE=$1
29
+ echo "--------------------------------------------------"
30
+ echo "🚀 Processing $CRATE..."
31
+
32
+ # Dry run first to check compilation/packaging
33
+ # cargo publish --dry-run -p $CRATE
34
+
35
+ # Attempt real publish
36
+ OUTPUT=$(cargo publish -p $CRATE 2>&1)
37
+ EXIT_CODE=$?
38
+
39
+ if [ $EXIT_CODE -eq 0 ]; then
40
+ echo "✅ Success: $CRATE published."
41
+ elif echo "$OUTPUT" | grep -q "already exists"; then
42
+ echo "⚠️ Skipping: Version already exists on crates.io."
43
+ elif echo "$OUTPUT" | grep -q "already uploaded"; then
44
+ echo "⚠️ Skipping: Version already exists on crates.io."
45
+ else
46
+ echo "❌ Error: Failed to publish $CRATE"
47
+ echo "$OUTPUT"
48
+ return $EXIT_CODE
49
+ fi
50
+ }
51
+
52
+ # Publish order matters if there are dependencies
53
+ publish_crate graphmind-graph-algorithms
54
+ publish_crate graphmind-optimization
@@ -0,0 +1,157 @@
1
+ name: Release
2
+
3
+ on:
4
+ push:
5
+ tags: ['v*']
6
+
7
+ permissions:
8
+ contents: write
9
+
10
+ jobs:
11
+ build:
12
+ name: Build (${{ matrix.target }})
13
+ runs-on: ${{ matrix.os }}
14
+ strategy:
15
+ fail-fast: false
16
+ matrix:
17
+ include:
18
+ - target: x86_64-unknown-linux-gnu
19
+ os: ubuntu-latest
20
+ archive: tar.gz
21
+ - target: x86_64-apple-darwin
22
+ os: macos-latest
23
+ archive: tar.gz
24
+ - target: aarch64-apple-darwin
25
+ os: macos-latest
26
+ archive: tar.gz
27
+ - target: x86_64-pc-windows-msvc
28
+ os: windows-latest
29
+ archive: zip
30
+ env:
31
+ CXXFLAGS: "-include cstdint"
32
+ steps:
33
+ - uses: actions/checkout@v4
34
+ - uses: dtolnay/rust-toolchain@stable
35
+ with:
36
+ targets: ${{ matrix.target }}
37
+ - uses: Swatinem/rust-cache@v2
38
+
39
+ - name: Build UI
40
+ run: |
41
+ cd ui && npm ci && npm run build
42
+
43
+ - name: Build release binary
44
+ run: cargo build --release --target ${{ matrix.target }}
45
+
46
+ - name: Package (Unix)
47
+ if: matrix.archive == 'tar.gz'
48
+ run: |
49
+ mkdir -p dist
50
+ cp target/${{ matrix.target }}/release/graphmind dist/ 2>/dev/null || true
51
+ cp target/${{ matrix.target }}/release/graphmind-cli dist/ 2>/dev/null || true
52
+ cp README.md LICENSE dist/
53
+ cp dist/graphmind.conf.example dist/ 2>/dev/null || true
54
+ tar -czf graphmind-${{ github.ref_name }}-${{ matrix.target }}.tar.gz -C dist .
55
+
56
+ - name: Package (Windows)
57
+ if: matrix.archive == 'zip'
58
+ shell: pwsh
59
+ run: |
60
+ New-Item -ItemType Directory -Force dist
61
+ Copy-Item target/${{ matrix.target }}/release/graphmind.exe dist/ -ErrorAction SilentlyContinue
62
+ Copy-Item target/${{ matrix.target }}/release/graphmind-cli.exe dist/ -ErrorAction SilentlyContinue
63
+ Copy-Item README.md,LICENSE dist/
64
+ Compress-Archive -Path dist/* -DestinationPath graphmind-${{ github.ref_name }}-${{ matrix.target }}.zip
65
+
66
+ - name: Upload artifact
67
+ uses: actions/upload-artifact@v4
68
+ with:
69
+ name: graphmind-${{ matrix.target }}
70
+ path: graphmind-${{ github.ref_name }}-${{ matrix.target }}.*
71
+
72
+ release:
73
+ name: Create Release
74
+ if: always()
75
+ needs: build
76
+ runs-on: ubuntu-latest
77
+ steps:
78
+ - uses: actions/download-artifact@v4
79
+ with:
80
+ merge-multiple: true
81
+ - name: Create GitHub Release
82
+ uses: softprops/action-gh-release@v2
83
+ with:
84
+ files: graphmind-*
85
+ generate_release_notes: true
86
+
87
+ docker:
88
+ name: Docker
89
+ runs-on: ubuntu-latest
90
+ steps:
91
+ - uses: actions/checkout@v4
92
+ - uses: docker/setup-buildx-action@v3
93
+ - uses: docker/login-action@v3
94
+ with:
95
+ username: ${{ secrets.DOCKERHUB_USERNAME }}
96
+ password: ${{ secrets.DOCKERHUB_TOKEN }}
97
+ - uses: docker/build-push-action@v6
98
+ with:
99
+ context: .
100
+ push: true
101
+ platforms: linux/amd64
102
+ tags: |
103
+ fabischk/graphmind:${{ github.ref_name }}
104
+ fabischk/graphmind:latest
105
+
106
+ publish-pypi:
107
+ name: PyPI
108
+ runs-on: ubuntu-latest
109
+ env:
110
+ CXXFLAGS: "-include cstdint"
111
+ steps:
112
+ - uses: actions/checkout@v4
113
+ - uses: PyO3/maturin-action@v1
114
+ with:
115
+ working-directory: sdk/python
116
+ command: publish
117
+ args: --skip-existing
118
+ manylinux: manylinux_2_28
119
+ before-script-linux: |
120
+ dnf install -y clang-devel cmake || true
121
+ env:
122
+ MATURIN_PYPI_TOKEN: ${{ secrets.PYPI_TOKEN }}
123
+
124
+ publish-npm:
125
+ name: npm
126
+ runs-on: ubuntu-latest
127
+ steps:
128
+ - uses: actions/checkout@v4
129
+ - uses: actions/setup-node@v4
130
+ with:
131
+ node-version: 20
132
+ registry-url: https://registry.npmjs.org
133
+ - run: cd sdk/typescript && npm ci && npm publish --access public || echo "Already published, skipping"
134
+ env:
135
+ NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
136
+
137
+ publish-crates:
138
+ name: Crates.io
139
+ runs-on: ubuntu-latest
140
+ env:
141
+ CXXFLAGS: "-include cstdint"
142
+ steps:
143
+ - uses: actions/checkout@v4
144
+ - uses: dtolnay/rust-toolchain@stable
145
+ - name: Publish crates (in dependency order)
146
+ run: |
147
+ cargo publish -p graphmind-graph-algorithms --allow-dirty || true
148
+ sleep 30
149
+ cargo publish -p graphmind-optimization --allow-dirty || true
150
+ sleep 30
151
+ cargo publish -p graphmind --allow-dirty || true
152
+ sleep 30
153
+ cargo publish -p graphmind-sdk --allow-dirty || true
154
+ sleep 30
155
+ cargo publish -p graphmind-cli --allow-dirty || true
156
+ env:
157
+ CARGO_REGISTRY_TOKEN: ${{ secrets.CARGO_REGISTRY_TOKEN }}
@@ -0,0 +1,21 @@
1
+ /target
2
+
3
+ # Project overview
4
+ project_overview.txt
5
+
6
+ # Temporary files
7
+ temp.txt
8
+
9
+ # Documentation (generated)
10
+ docs/CREATE_IMPLEMENTATION.md
11
+
12
+ # Generated banking demo data
13
+ docs/banking/data/
14
+ *.tsv
15
+
16
+ # DB Data Directories
17
+ *_data/
18
+ vectors/
19
+ wal/
20
+ data/
21
+ .env
@@ -0,0 +1,295 @@
1
+ # CLAUDE.md
2
+
3
+ This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
4
+
5
+ ## Project Overview
6
+
7
+ Graphmind is a high-performance distributed graph database written in Rust with ~90% OpenCypher query support, Redis protocol (RESP) compatibility, multi-tenancy, vector search, NLQ, and graph algorithms. Currently at Phase 4 (High Availability Foundation), version v0.6.1.
8
+
9
+ ## Build & Development Commands
10
+
11
+ ```bash
12
+ # Build
13
+ cargo build # Debug build
14
+ cargo build --release # Release build (optimized)
15
+
16
+ # Run tests (1842 unit tests)
17
+ cargo test # All tests
18
+ cargo test graph::node # Specific module tests
19
+ cargo test -- --nocapture # Tests with output
20
+
21
+ # Benchmarks (all in benches/)
22
+ cargo bench # All benchmarks
23
+ cargo bench --bench graph_benchmarks # Criterion micro-benchmarks (15 benches)
24
+ cargo bench --bench full_benchmark # Full suite (ingestion, vector, traversal, algorithms)
25
+ cargo bench --bench vector_benchmark # HNSW vector search
26
+ cargo bench --bench graphalytics_benchmark # LDBC Graphalytics algorithms
27
+ cargo bench --bench mvcc_benchmark # MVCC & arena allocation
28
+ cargo bench --bench late_materialization_bench # Late materialization traversal
29
+ cargo bench --bench graph_optimization_benchmark # Metaheuristic optimization solvers
30
+ cargo bench --bench ldbc_benchmark # LDBC SNB Interactive queries (needs data)
31
+ cargo bench --bench ldbc_bi_benchmark # LDBC SNB BI queries (needs data)
32
+ cargo bench --bench finbench_benchmark # LDBC FinBench queries (synthetic data)
33
+
34
+ # Run examples
35
+ cargo run --example banking_demo # Banking fraud detection + NLQ
36
+ cargo run --example clinical_trials_demo # Clinical trials + vector search
37
+ cargo run --example supply_chain_demo # Supply chain + optimization
38
+ cargo run --example smart_manufacturing_demo # Digital twin + scheduling
39
+ cargo run --example social_network_demo # Social network analysis
40
+ cargo run --example knowledge_graph_demo # Enterprise knowledge graph
41
+ cargo run --example enterprise_soc_demo # Security operations center
42
+ cargo run --example agentic_enrichment_demo # GAK (Generation-Augmented Knowledge)
43
+ cargo run --example persistence_demo # Persistence & multi-tenancy
44
+ cargo run --example cluster_demo # Raft clustering
45
+ cargo run --example ldbc_loader # Load LDBC SNB SF1 dataset
46
+ cargo run --example finbench_loader # Load/generate FinBench dataset
47
+ cargo run --release --example cricket_loader # Load 21K Cricsheet matches
48
+ cargo run --release --example aact_loader # Load AACT clinical trials dataset
49
+
50
+ # Start RESP server
51
+ cargo run # RESP on 127.0.0.1:6379, HTTP on :8080
52
+
53
+ # Code quality
54
+ cargo fmt -- --check # Check formatting
55
+ cargo clippy -- -D warnings # Lint checks
56
+
57
+ # Integration tests (requires running server)
58
+ cd tests/integration
59
+ python3 test_resp_basic.py
60
+ python3 test_resp_visual.py
61
+
62
+ # Frontend UI (React)
63
+ cd ui && npm install # Install frontend dependencies
64
+ cd ui && npm run dev # Dev server on :5173 (proxies /api to :8080)
65
+ cd ui && npm run build # Production build → ui/dist/
66
+ ```
67
+
68
+ ## Architecture
69
+
70
+ ### Module Structure
71
+
72
+ ```
73
+ src/
74
+ ├── graph/ # Property Graph Model
75
+ │ ├── store.rs # GraphStore - in-memory storage with indices + cardinality stats
76
+ │ ├── node.rs # Node with labels and properties
77
+ │ ├── edge.rs # Directed edges with types
78
+ │ ├── property.rs # PropertyValue (String, Integer, Float, Boolean, DateTime, Array, Map, Null)
79
+ │ └── types.rs # NodeId, EdgeId, Label, EdgeType
80
+
81
+ ├── query/ # OpenCypher Query Engine (~90% coverage)
82
+ │ ├── parser.rs # Pest-based OpenCypher parser
83
+ │ ├── cypher.pest # PEG grammar (atomic keyword rules for word boundaries)
84
+ │ ├── ast.rs # Query AST
85
+ │ └── executor/
86
+ │ ├── planner.rs # Query planner (AST → ExecutionPlan)
87
+ │ ├── operator.rs # Physical operators (Volcano iterator model)
88
+ │ └── record.rs # Record, RecordBatch, Value (with late materialization)
89
+
90
+ ├── protocol/ # RESP Protocol
91
+ │ ├── resp.rs # RESP3 encoder/decoder
92
+ │ ├── server.rs # Tokio TCP server
93
+ │ └── command.rs # GRAPH.* command handler
94
+
95
+ ├── persistence/ # Persistence & Multi-Tenancy
96
+ │ ├── storage.rs # RocksDB with column families
97
+ │ ├── wal.rs # Write-Ahead Log
98
+ │ └── tenant.rs # Multi-tenancy & resource quotas
99
+
100
+ ├── raft/ # High Availability
101
+ │ ├── node.rs # RaftNode using openraft
102
+ │ ├── state_machine.rs # GraphStateMachine
103
+ │ ├── cluster.rs # ClusterConfig, ClusterManager
104
+ │ ├── network.rs # Inter-node communication
105
+ │ └── storage.rs # Raft log storage
106
+
107
+ ├── nlq/ # Natural Language Query Pipeline
108
+ │ ├── mod.rs # NLQPipeline (text_to_cypher, extract_cypher, is_safe_query)
109
+ │ └── client.rs # NLQClient (OpenAI, Gemini, Ollama, Claude Code providers)
110
+
111
+ ├── vector/ # HNSW Vector Index
112
+ ├── snapshot/ # Portable .sgsnap export/import
113
+ └── sharding/ # Tenant-level sharding
114
+ ```
115
+
116
+ ### Key Architectural Patterns
117
+
118
+ 1. **Volcano Iterator Model (ADR-007)**: Lazy, pull-based operators:
119
+ - `NodeScanOperator` → `FilterOperator` → `ExpandOperator` → `ProjectOperator` → `LimitOperator`
120
+
121
+ 2. **Late Materialization (ADR-012)**: Scan produces `Value::NodeRef(id)` not full clones. Properties resolved on demand via `resolve_property()`.
122
+
123
+ 3. **In-Memory Graph Storage**: O(1) lookups via HashMaps with adjacency lists for traversal.
124
+
125
+ 4. **Multi-Tenancy**: RocksDB column families with tenant-prefixed keys, per-tenant quotas.
126
+
127
+ 5. **Raft Consensus**: Uses `openraft` crate with custom `GraphStateMachine`.
128
+
129
+ 6. **Cross-Type Coercion**: Integer/Float promotion, String/Boolean coercion, Null propagation (three-valued logic).
130
+
131
+ ### Frontend (React UI)
132
+
133
+ The web-based visualizer is a React 19 + TypeScript application in `ui/`.
134
+
135
+ ```
136
+ ui/src/
137
+ ├── api/client.ts # Typed fetch client for all API endpoints
138
+ ├── stores/ # Zustand state management
139
+ │ ├── graphStore.ts # Nodes, edges, selection, multi-select
140
+ │ ├── queryStore.ts # Query execution, history, saved queries
141
+ │ ├── uiStore.ts # Connection status, schema, panel state
142
+ │ └── graphSettingsStore.ts # Colors, icons, captions (persisted)
143
+ ├── components/
144
+ │ ├── editor/ # CodeMirror 6 Cypher editor, query templates, saved queries
145
+ │ ├── graph/ # D3 force graph, fullscreen explorer, toolbar, stats, minimap
146
+ │ ├── inspector/ # Property inspector, schema browser with color/icon pickers
147
+ │ ├── layout/ # AppShell, Navbar, resizable panels
148
+ │ ├── results/ # TanStack Table for query results
149
+ │ └── ui/ # Reusable components (button, badge, tabs, resizable, theme toggle, icon picker)
150
+ ├── lib/
151
+ │ ├── cypher.ts # Cypher keywords/functions/procedures for autocomplete
152
+ │ ├── colors.ts # Node label color mapping with custom override support
153
+ │ ├── icons.ts # 55+ SVG icon catalog for node visualization
154
+ │ ├── shortcuts.ts # Keyboard shortcuts system
155
+ │ └── utils.ts # Tailwind merge utility
156
+ └── types/api.ts # TypeScript interfaces matching backend API
157
+ ```
158
+
159
+ **Tech stack:** React 19, Vite 6, TypeScript, Tailwind CSS v4, shadcn/ui, D3.js (d3-force), CodeMirror 6, TanStack Table, Zustand
160
+
161
+ **Dev commands:**
162
+ ```bash
163
+ cd ui
164
+ npm install # Install dependencies
165
+ npm run dev # Dev server on :5173 (proxies /api to :8080)
166
+ npm run build # Production build → ui/dist/
167
+ ```
168
+
169
+ ## Cypher Support
170
+
171
+ **Supported clauses:** MATCH, OPTIONAL MATCH, CREATE, DELETE, SET, REMOVE, MERGE, WITH, UNWIND, UNION, RETURN DISTINCT, ORDER BY, SKIP, LIMIT, EXPLAIN, EXISTS subqueries.
172
+
173
+ **Supported functions (30+):** toUpper, toLower, trim, replace, substring, left, right, reverse, toString, toInteger, toFloat, abs, ceil, floor, round, sqrt, sign, count, sum, avg, min, max, collect, size, length, head, last, tail, keys, id, labels, type, exists, coalesce.
174
+
175
+ **Remaining gaps:** list slicing, pattern comprehensions, named paths, collect(DISTINCT x).
176
+
177
+ ## API Patterns
178
+
179
+ ### Query Engine
180
+ ```rust
181
+ // Read-only queries
182
+ let executor = QueryExecutor::new(&store);
183
+ let result: RecordBatch = executor.execute(&query)?;
184
+
185
+ // Write queries (CREATE, DELETE, SET, MERGE)
186
+ let mut executor = MutQueryExecutor::new(&mut store, tenant_id);
187
+ executor.execute(&query)?;
188
+
189
+ // EXPLAIN (no execution)
190
+ // Returns plan as RecordBatch with operator descriptions
191
+ ```
192
+
193
+ ### NLQ Pipeline
194
+ ```rust
195
+ let pipeline = NLQPipeline::new(nlq_config)?;
196
+ let cypher = pipeline.text_to_cypher("Who knows Alice?", &schema_summary).await?;
197
+ // Returns clean Cypher with markdown fences stripped and safety validation
198
+ ```
199
+
200
+ ### Graph Store
201
+ ```rust
202
+ let mut graph = GraphStore::new();
203
+ let node_id = graph.create_node("Person");
204
+ graph.get_node_mut(node_id)?.set_property("name", "Alice");
205
+ graph.create_edge(source_id, target_id, "KNOWS")?;
206
+ ```
207
+
208
+ ### HTTP API Endpoints
209
+
210
+ The Axum HTTP server runs on port 8080 alongside the RESP server on port 6379.
211
+
212
+ | Method | Path | Description |
213
+ |--------|------|-------------|
214
+ | POST | `/api/query` | Execute a single Cypher query |
215
+ | POST | `/api/script` | Execute multi-statement Cypher script (line-by-line) |
216
+ | POST | `/api/nlq` | Translate natural language to Cypher via LLM |
217
+ | GET | `/api/status` | Server health, node/edge counts, cache stats |
218
+ | GET | `/api/schema` | Schema introspection (labels, types, properties, stats) |
219
+ | POST | `/api/sample` | Sample a subgraph for visualization |
220
+ | POST | `/api/import/csv` | Import nodes from CSV |
221
+ | POST | `/api/import/json` | Import nodes from JSON |
222
+ | POST | `/api/snapshot/export` | Export graph as .sgsnap |
223
+ | POST | `/api/snapshot/import` | Import .sgsnap snapshot |
224
+
225
+ #### Script Endpoint
226
+ ```bash
227
+ # Execute a .cypher file with multiple statements
228
+ curl -X POST http://localhost:8080/api/script \
229
+ -H 'Content-Type: application/json' \
230
+ -d '{"query": "CREATE (a:Person {name: '\''Alice'\''})\nCREATE (b:Person {name: '\''Bob'\''})"}'
231
+ # Response: {"status":"ok","executed":2,"errors":[],"storage":{"nodes":2,"edges":0}}
232
+ ```
233
+
234
+ #### NLQ Endpoint (Natural Language Queries)
235
+ Requires an LLM provider configured via environment variables:
236
+ - `OPENAI_API_KEY` — Uses OpenAI (model: `OPENAI_MODEL` or `gpt-4o-mini`)
237
+ - `GEMINI_API_KEY` — Uses Google Gemini (model: `GEMINI_MODEL` or `gemini-2.0-flash`)
238
+ - `CLAUDE_CODE_NLQ=1` — Uses Claude Code CLI
239
+
240
+ ```bash
241
+ OPENAI_API_KEY=sk-... cargo run
242
+ # Then:
243
+ curl -X POST http://localhost:8080/api/nlq \
244
+ -H 'Content-Type: application/json' \
245
+ -d '{"query": "Who are Alice'\''s friends?"}'
246
+ # Response: {"cypher":"MATCH (a:Person {name:'Alice'})-[:FRIENDS_WITH]-(b) RETURN a,b","provider":"OpenAI","model":"gpt-4o-mini"}
247
+ ```
248
+
249
+ ## Testing
250
+
251
+ - **1842 unit tests** across all modules (89.7% coverage)
252
+ - **10 benchmark binaries** in `benches/` (Criterion micro-benchmarks + domain benchmarks)
253
+ - **Integration tests**: Python scripts in `tests/integration/`
254
+ - **8 domain-specific example demos** with NLQ integration
255
+ - **4 data loaders** (LDBC SNB, FinBench, Cricket, AACT) in `examples/`
256
+ - **28 CRUD integration tests** in `tests/cypher_crud_test.rs` (CREATE, MATCH, SET, DELETE, MERGE, WITH, UNWIND, OPTIONAL MATCH, EXPLAIN)
257
+
258
+ ## Demo Scripts
259
+
260
+ ```bash
261
+ # Social Network Demo — 52 nodes, 142 edges
262
+ # Load via UI script button or API:
263
+ curl -X POST http://localhost:8080/api/script \
264
+ -H 'Content-Type: application/json' \
265
+ -d @scripts/social_network_demo.cypher
266
+
267
+ # Or paste into the UI editor and use the Upload button
268
+ ```
269
+
270
+ The demo creates: 16 Person, 6 City, 5 Company, 7 Property, 6 Car, 5 Pet, 8 Hobby, 4 University nodes with MARRIED_TO, LIVES_IN, FRIENDS_WITH, WORKS_AT, OWNS, ATTENDED, ENJOYS, INVESTED_IN, HEADQUARTERED_IN relationships. Includes 25 test queries (Q1-Q25).
271
+
272
+ ## UI Features (Visualizer)
273
+
274
+ The web visualizer at `http://localhost:8080` provides:
275
+
276
+ - **Cypher Editor**: CodeMirror 6 with syntax highlighting, autocomplete (keywords, functions, schema labels/types, variables), Ctrl+Enter to execute
277
+ - **D3 Force Graph**: Canvas-based rendering with zoom/pan, node dragging, click selection, right-click context menu (expand neighbors, load all relationships)
278
+ - **Graph Layouts**: Force-directed (default), circular, hierarchical, grid
279
+ - **Fullscreen Explorer**: Immersive mode with floating glassmorphism legend, search, minimap, and property inspector
280
+ - **Query Templates**: Pre-built queries organized by category (Exploration, Pathfinding, Analytics, Social Network, Algorithms)
281
+ - **Saved Queries**: Name and save queries, persisted to localStorage
282
+ - **NLQ Mode**: Natural language to Cypher translation (requires LLM API key)
283
+ - **Search**: Type to highlight matching nodes on canvas, dims non-matching
284
+ - **Shortest Path**: Click two nodes to find and visualize shortest path (BFS)
285
+ - **Highlight Mode**: Select a node to highlight connected nodes, dim the rest
286
+ - **Multi-select**: Shift+click to select multiple nodes
287
+ - **Node Icons**: 55+ built-in SVG icons assignable per label, auto-detect image URLs
288
+ - **Color Customization**: Per-label node colors and per-type edge colors (persisted)
289
+ - **Caption Property**: Choose which property displays on each node label
290
+ - **Export**: PNG screenshot, CSV data, JSON graph
291
+ - **Graph Stats**: Floating panel with node/edge distribution and degree metrics
292
+ - **Dark/Light Theme**: Toggle with system preference support
293
+ - **Keyboard Shortcuts**: F5 (run), Escape (clear), Delete (remove from canvas), ? (help)
294
+ - **Script Loader**: Upload .cypher files to execute all statements
295
+ - **Query History**: With play/delete buttons and timeline scrubber
@@ -0,0 +1,9 @@
1
+ # Code Owners for Graphmind Graph
2
+ # This file defines who owns the code and who should review changes.
3
+
4
+ # Global owner (matches everything)
5
+ * @sandeepkunkunuru
6
+
7
+ # Specific component owners (examples for future)
8
+ # /crates/graphmind-optimization/ @expert-optimizer
9
+ # /docs/ @tech-writer