iris-vector-graph 1.98.0__tar.gz → 1.99.1__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 (611) hide show
  1. iris_vector_graph-1.98.0/README.md → iris_vector_graph-1.99.1/PKG-INFO +111 -0
  2. iris_vector_graph-1.98.0/PKG-INFO → iris_vector_graph-1.99.1/README.md +28 -77
  3. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_src/src/Graph/KG/GraphIndex.cls +1 -1
  4. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_src/src/Graph/KG/NKGAccel.cls +221 -0
  5. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_src/src/Graph/KG/Traversal.cls +10 -0
  6. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/__init__.py +1 -0
  7. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/_validate.py +21 -0
  8. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/cypher/translator.py +228 -1
  9. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/engine.py +226 -1
  10. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/schema.py +63 -0
  11. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/store_protocol.py +10 -0
  12. iris_vector_graph-1.99.1/iris_vector_graph/stores/_khop_state.py +19 -0
  13. iris_vector_graph-1.99.1/iris_vector_graph/stores/arno_bridge.py +784 -0
  14. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/stores/iris_sql_store.py +467 -187
  15. iris_vector_graph-1.99.1/iris_vector_graph/stores/lazy_kg.py +214 -0
  16. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/pyproject.toml +9 -1
  17. iris_vector_graph-1.99.1/tests/e2e/fixtures/community_graphs.py +172 -0
  18. iris_vector_graph-1.99.1/tests/e2e/fixtures/khop_graphs.py +95 -0
  19. iris_vector_graph-1.99.1/tests/e2e/test_communities_e2e.py +550 -0
  20. iris_vector_graph-1.99.1/tests/e2e/test_communities_perf.py +100 -0
  21. iris_vector_graph-1.99.1/tests/e2e/test_khop_seedlocal_e2e.py +290 -0
  22. iris_vector_graph-1.99.1/tests/e2e/test_lazy_kg_e2e.py +81 -0
  23. iris_vector_graph-1.99.1/tests/perf/test_khop_seedlocal_perf.py +96 -0
  24. iris_vector_graph-1.99.1/tests/perf/test_leiden_four_way.py +413 -0
  25. iris_vector_graph-1.99.1/tests/unit/cypher/__init__.py +0 -0
  26. iris_vector_graph-1.99.1/tests/unit/test_arno_bridge.py +132 -0
  27. iris_vector_graph-1.99.1/tests/unit/test_communities_translator.py +73 -0
  28. iris_vector_graph-1.99.1/tests/unit/test_communities_unit.py +171 -0
  29. iris_vector_graph-1.99.1/tests/unit/test_khop_seedlocal_unit.py +115 -0
  30. iris_vector_graph-1.99.1/tests/unit/test_lazy_kg.py +196 -0
  31. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/unit/test_store_protocol.py +15 -0
  32. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/.gitignore +0 -0
  33. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/LICENSE +0 -0
  34. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/examples/demo_biomedical.py +0 -0
  35. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/examples/demo_fraud_detection.py +0 -0
  36. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/examples/demo_fraud_detection_sql.py +0 -0
  37. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/examples/demo_utils.py +0 -0
  38. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/examples/demo_working_system.py +0 -0
  39. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/examples/domains/__init__.py +0 -0
  40. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/examples/domains/biomedical/__init__.py +0 -0
  41. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/examples/domains/biomedical/loaders.py +0 -0
  42. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/examples/domains/biomedical/resolver.py +0 -0
  43. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/examples/domains/biomedical/types.py +0 -0
  44. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/examples/domains/biomedical_legacy/__init__.py +0 -0
  45. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/examples/domains/biomedical_legacy/biomedical_engine.py +0 -0
  46. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/examples/domains/biomedical_legacy/biomedical_schema.py +0 -0
  47. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/examples/domains/biomedical_legacy/legacy_wrapper.py +0 -0
  48. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/examples/domains/fraud/__init__.py +0 -0
  49. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/examples/domains/fraud/loaders.py +0 -0
  50. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/examples/domains/fraud/resolver.py +0 -0
  51. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/examples/domains/fraud/types.py +0 -0
  52. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/examples/graphQL.http +0 -0
  53. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/examples/hybrid_vector_graph_query.cypher +0 -0
  54. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/examples/rest.http +0 -0
  55. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_src/src/Graph/KG/Algorithms.cls +0 -0
  56. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_src/src/Graph/KG/ArnoAccel.cls +0 -0
  57. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_src/src/Graph/KG/BM25Index.cls +0 -0
  58. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_src/src/Graph/KG/BenchFormat.cls +0 -0
  59. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_src/src/Graph/KG/BenchSeeder.cls +0 -0
  60. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_src/src/Graph/KG/Benchmark.cls +0 -0
  61. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_src/src/Graph/KG/Centrality.cls +0 -0
  62. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_src/src/Graph/KG/Edge.cls +0 -0
  63. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_src/src/Graph/KG/EdgeScan.cls +0 -0
  64. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_src/src/Graph/KG/EmbedQueue.cls +0 -0
  65. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_src/src/Graph/KG/IVFIndex.cls +0 -0
  66. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_src/src/Graph/KG/Loader.cls +0 -0
  67. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_src/src/Graph/KG/MCPService.cls +0 -0
  68. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_src/src/Graph/KG/MCPToolSet.cls +0 -0
  69. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_src/src/Graph/KG/MCPTools.cls +0 -0
  70. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_src/src/Graph/KG/Meta.cls +0 -0
  71. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_src/src/Graph/KG/PLAIDSearch.cls +0 -0
  72. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_src/src/Graph/KG/PageRank.cls +0 -0
  73. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_src/src/Graph/KG/PyOps.cls +0 -0
  74. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_src/src/Graph/KG/Service.cls +0 -0
  75. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_src/src/Graph/KG/Snapshot.cls +0 -0
  76. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_src/src/Graph/KG/Subgraph.cls +0 -0
  77. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_src/src/Graph/KG/TemporalIndex.cls +0 -0
  78. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_src/src/Graph/KG/TestEdge.cls +0 -0
  79. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_src/src/Graph/KG/VecIndex.cls +0 -0
  80. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_src/src/IVG/CypherEngine.cls +0 -0
  81. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_src/src/IVG/Percentile.cls +0 -0
  82. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_src/src/PageRankEmbedded.cls +0 -0
  83. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_src/src/User.Exec.cls +0 -0
  84. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_src/src/iris/vector/graph/GraphOperators.cls +0 -0
  85. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/bolt_server.py +0 -0
  86. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/0-b124e26129aa436b26fe.bundle.js +0 -0
  87. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/1-b124e26129aa436b26fe.bundle.js +0 -0
  88. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/10-b124e26129aa436b26fe.bundle.js +0 -0
  89. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/11-b124e26129aa436b26fe.bundle.js +0 -0
  90. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/12-b124e26129aa436b26fe.bundle.js +0 -0
  91. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/13-b124e26129aa436b26fe.bundle.js +0 -0
  92. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/14-b124e26129aa436b26fe.bundle.js +0 -0
  93. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/15-b124e26129aa436b26fe.bundle.js +0 -0
  94. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/16-b124e26129aa436b26fe.bundle.js +0 -0
  95. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/17-b124e26129aa436b26fe.bundle.js +0 -0
  96. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/18-b124e26129aa436b26fe.bundle.js +0 -0
  97. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/19-b124e26129aa436b26fe.bundle.js +0 -0
  98. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/20-b124e26129aa436b26fe.bundle.js +0 -0
  99. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/21-b124e26129aa436b26fe.bundle.js +0 -0
  100. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/22-b124e26129aa436b26fe.bundle.js +0 -0
  101. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/23-b124e26129aa436b26fe.bundle.js +0 -0
  102. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/24-b124e26129aa436b26fe.bundle.js +0 -0
  103. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/25-b124e26129aa436b26fe.bundle.js +0 -0
  104. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/26-b124e26129aa436b26fe.bundle.js +0 -0
  105. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/27-b124e26129aa436b26fe.bundle.js +0 -0
  106. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/28-b124e26129aa436b26fe.bundle.js +0 -0
  107. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/29-b124e26129aa436b26fe.bundle.js +0 -0
  108. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/30-b124e26129aa436b26fe.bundle.js +0 -0
  109. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/31-b124e26129aa436b26fe.bundle.js +0 -0
  110. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/32-b124e26129aa436b26fe.bundle.js +0 -0
  111. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/33-b124e26129aa436b26fe.bundle.js +0 -0
  112. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/34-b124e26129aa436b26fe.bundle.js +0 -0
  113. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/35-b124e26129aa436b26fe.bundle.js +0 -0
  114. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/36-b124e26129aa436b26fe.bundle.js +0 -0
  115. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/37-b124e26129aa436b26fe.bundle.js +0 -0
  116. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/38-b124e26129aa436b26fe.bundle.js +0 -0
  117. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/39-b124e26129aa436b26fe.bundle.js +0 -0
  118. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/40-b124e26129aa436b26fe.bundle.js +0 -0
  119. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/41-b124e26129aa436b26fe.bundle.js +0 -0
  120. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/42-b124e26129aa436b26fe.bundle.js +0 -0
  121. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/43-b124e26129aa436b26fe.bundle.js +0 -0
  122. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/44-b124e26129aa436b26fe.bundle.js +0 -0
  123. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/45-b124e26129aa436b26fe.bundle.js +0 -0
  124. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/46-b124e26129aa436b26fe.bundle.js +0 -0
  125. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/47-b124e26129aa436b26fe.bundle.js +0 -0
  126. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/48-b124e26129aa436b26fe.bundle.js +0 -0
  127. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/49-b124e26129aa436b26fe.bundle.js +0 -0
  128. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/50-b124e26129aa436b26fe.bundle.js +0 -0
  129. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/51-b124e26129aa436b26fe.bundle.js +0 -0
  130. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/52-b124e26129aa436b26fe.bundle.js +0 -0
  131. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/53-b124e26129aa436b26fe.bundle.js +0 -0
  132. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/54-b124e26129aa436b26fe.bundle.js +0 -0
  133. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/55-b124e26129aa436b26fe.bundle.js +0 -0
  134. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/56-b124e26129aa436b26fe.bundle.js +0 -0
  135. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/57-b124e26129aa436b26fe.bundle.js +0 -0
  136. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/58-b124e26129aa436b26fe.bundle.js +0 -0
  137. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/59-b124e26129aa436b26fe.bundle.js +0 -0
  138. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/6-b124e26129aa436b26fe.bundle.js +0 -0
  139. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/60-b124e26129aa436b26fe.bundle.js +0 -0
  140. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/61-b124e26129aa436b26fe.bundle.js +0 -0
  141. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/62-b124e26129aa436b26fe.bundle.js +0 -0
  142. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/63-b124e26129aa436b26fe.bundle.js +0 -0
  143. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/64-b124e26129aa436b26fe.bundle.js +0 -0
  144. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/65-b124e26129aa436b26fe.bundle.js +0 -0
  145. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/66-b124e26129aa436b26fe.bundle.js +0 -0
  146. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/67-b124e26129aa436b26fe.bundle.js +0 -0
  147. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/68-b124e26129aa436b26fe.bundle.js +0 -0
  148. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/69-b124e26129aa436b26fe.bundle.js +0 -0
  149. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/7-b124e26129aa436b26fe.bundle.js +0 -0
  150. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/70-b124e26129aa436b26fe.bundle.js +0 -0
  151. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/71-b124e26129aa436b26fe.bundle.js +0 -0
  152. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/72-b124e26129aa436b26fe.bundle.js +0 -0
  153. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/73-b124e26129aa436b26fe.bundle.js +0 -0
  154. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/74-b124e26129aa436b26fe.bundle.js +0 -0
  155. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/75-b124e26129aa436b26fe.bundle.js +0 -0
  156. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/8-b124e26129aa436b26fe.bundle.js +0 -0
  157. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/9-b124e26129aa436b26fe.bundle.js +0 -0
  158. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/app-b124e26129aa436b26fe.js +0 -0
  159. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/assets/filter-a7c44e713bf19d31f6b2849160b1bba8.svg +0 -0
  160. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/assets/fonts/FiraCode-Bold.eot +0 -0
  161. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/assets/fonts/FiraCode-Bold.ttf +0 -0
  162. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/assets/fonts/FiraCode-Bold.woff +0 -0
  163. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/assets/fonts/FiraCode-Bold.woff2 +0 -0
  164. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/assets/fonts/FiraCode-Light.eot +0 -0
  165. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/assets/fonts/FiraCode-Light.ttf +0 -0
  166. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/assets/fonts/FiraCode-Light.woff +0 -0
  167. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/assets/fonts/FiraCode-Light.woff2 +0 -0
  168. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/assets/fonts/FiraCode-Medium.eot +0 -0
  169. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/assets/fonts/FiraCode-Medium.ttf +0 -0
  170. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/assets/fonts/FiraCode-Medium.woff +0 -0
  171. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/assets/fonts/FiraCode-Medium.woff2 +0 -0
  172. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/assets/fonts/FiraCode-Regular.eot +0 -0
  173. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/assets/fonts/FiraCode-Regular.ttf +0 -0
  174. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/assets/fonts/FiraCode-Regular.woff +0 -0
  175. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/assets/fonts/FiraCode-Regular.woff2 +0 -0
  176. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/assets/fonts/OpenSans-Bold.ttf +0 -0
  177. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/assets/fonts/OpenSans-BoldItalic.ttf +0 -0
  178. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/assets/fonts/OpenSans-ExtraBold.ttf +0 -0
  179. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/assets/fonts/OpenSans-ExtraBoldItalic.ttf +0 -0
  180. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/assets/fonts/OpenSans-Italic.ttf +0 -0
  181. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/assets/fonts/OpenSans-Light.ttf +0 -0
  182. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/assets/fonts/OpenSans-LightItalic.ttf +0 -0
  183. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/assets/fonts/OpenSans-Regular.ttf +0 -0
  184. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/assets/fonts/OpenSans-Semibold.ttf +0 -0
  185. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/assets/fonts/OpenSans-SemiboldItalic.ttf +0 -0
  186. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/assets/fonts/codicon.ttf +0 -0
  187. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/assets/fonts/filter.svg +0 -0
  188. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/assets/fonts/fontawesome-webfont.eot +0 -0
  189. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/assets/fonts/fontawesome-webfont.svg +0 -0
  190. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/assets/fonts/fontawesome-webfont.ttf +0 -0
  191. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/assets/fonts/fontawesome-webfont.woff +0 -0
  192. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/assets/fonts/fontawesome-webfont.woff2 +0 -0
  193. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/assets/fonts/group-by.svg +0 -0
  194. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/assets/fonts/neo4j-world.eot +0 -0
  195. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/assets/fonts/neo4j-world.svg +0 -0
  196. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/assets/fonts/neo4j-world.ttf +0 -0
  197. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/assets/fonts/neo4j-world.woff +0 -0
  198. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/assets/fonts/sort.svg +0 -0
  199. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/assets/fonts/sort1.svg +0 -0
  200. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/assets/fonts/sort2.svg +0 -0
  201. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/assets/fonts/streamline.eot +0 -0
  202. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/assets/fonts/streamline.svg +0 -0
  203. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/assets/fonts/streamline.ttf +0 -0
  204. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/assets/fonts/streamline.woff +0 -0
  205. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/assets/group-by-89c6aaa756bc3548cc6ab3d2be4d2862.svg +0 -0
  206. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/assets/images/Favorites.mp4 +0 -0
  207. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/assets/images/Keystrokes.mp4 +0 -0
  208. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/assets/images/ProjectFiles.mp4 +0 -0
  209. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/assets/images/ReusableFrame.mp4 +0 -0
  210. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/assets/images/SidebarDB_Iinfo.png +0 -0
  211. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/assets/images/Stream.png +0 -0
  212. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/assets/images/aura-logo-inverted.svg +0 -0
  213. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/assets/images/aura-logo.svg +0 -0
  214. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/assets/images/books.png +0 -0
  215. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/assets/images/clusters.svg +0 -0
  216. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/assets/images/community.jpg +0 -0
  217. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/assets/images/device-icons/android-icon-144x144.png +0 -0
  218. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/assets/images/device-icons/android-icon-192x192.png +0 -0
  219. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/assets/images/device-icons/android-icon-36x36.png +0 -0
  220. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/assets/images/device-icons/android-icon-48x48.png +0 -0
  221. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/assets/images/device-icons/android-icon-72x72.png +0 -0
  222. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/assets/images/device-icons/android-icon-96x96.png +0 -0
  223. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/assets/images/device-icons/apple-icon-114x114.png +0 -0
  224. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/assets/images/device-icons/apple-icon-120x120.png +0 -0
  225. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/assets/images/device-icons/apple-icon-144x144.png +0 -0
  226. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/assets/images/device-icons/apple-icon-152x152.png +0 -0
  227. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/assets/images/device-icons/apple-icon-180x180.png +0 -0
  228. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/assets/images/device-icons/apple-icon-57x57.png +0 -0
  229. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/assets/images/device-icons/apple-icon-60x60.png +0 -0
  230. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/assets/images/device-icons/apple-icon-72x72.png +0 -0
  231. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/assets/images/device-icons/apple-icon-76x76.png +0 -0
  232. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/assets/images/device-icons/apple-icon-precomposed.png +0 -0
  233. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/assets/images/device-icons/apple-icon.png +0 -0
  234. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/assets/images/device-icons/browserconfig.xml +0 -0
  235. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/assets/images/device-icons/favicon-16x16.png +0 -0
  236. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/assets/images/device-icons/favicon-32x32.png +0 -0
  237. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/assets/images/device-icons/favicon-96x96.png +0 -0
  238. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/assets/images/device-icons/favicon.ico +0 -0
  239. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/assets/images/device-icons/manifest.json +0 -0
  240. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/assets/images/device-icons/ms-icon-144x144.png +0 -0
  241. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/assets/images/device-icons/ms-icon-150x150.png +0 -0
  242. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/assets/images/device-icons/ms-icon-310x310.png +0 -0
  243. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/assets/images/device-icons/ms-icon-70x70.png +0 -0
  244. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/assets/images/device-icons/neo4j-browser-canary.svg +0 -0
  245. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/assets/images/device-icons/neo4j-browser.svg +0 -0
  246. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/assets/images/labeled_node.png +0 -0
  247. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/assets/images/more_nodes.png +0 -0
  248. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/assets/images/neo4j-favicon.ico +0 -0
  249. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/assets/images/neo4j-logo-inverted.svg +0 -0
  250. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/assets/images/neo4j-logo.svg +0 -0
  251. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/assets/images/northwind/customer-orders.png +0 -0
  252. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/assets/images/northwind/order-graph.png +0 -0
  253. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/assets/images/northwind/product-category-supplier.png +0 -0
  254. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/assets/images/northwind/product-graph.png +0 -0
  255. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/assets/images/one_node.png +0 -0
  256. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/assets/images/query-plan-operator-cost.svg +0 -0
  257. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/assets/images/query-plan-operator-details.svg +0 -0
  258. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/assets/images/query-plan-operator-rows.svg +0 -0
  259. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/assets/images/query-plan.svg +0 -0
  260. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/assets/images/rel-props.png +0 -0
  261. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/assets/images/relationships.png +0 -0
  262. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/assets/images/screen_code_frame.png +0 -0
  263. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/assets/images/screen_cypher_warn.png +0 -0
  264. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/assets/images/screen_editor.png +0 -0
  265. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/assets/images/screen_sidebar.png +0 -0
  266. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/assets/images/screen_stream.png +0 -0
  267. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/assets/sort-8d6f482c21de572ceeb5ac93623e6c97.svg +0 -0
  268. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/assets/sort1-d2dc515571213fc0ca99b0341b88e413.svg +0 -0
  269. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/assets/sort2-31050964e7eb2042325f7bcbba3d58ad.svg +0 -0
  270. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/bolt-worker-dfa551eb0861cc080843.js +0 -0
  271. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/cypher-editor-b124e26129aa436b26fe.bundle.js +0 -0
  272. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/editor-455af92e7e1dc39fdbc8060f6680ab32.worker.js +0 -0
  273. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/index.html +0 -0
  274. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/manifest.json +0 -0
  275. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/preview/assets/CoseBilkentLayout.worker-FEt6e_rV.js +0 -0
  276. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/preview/assets/HierarchicalLayout.worker-O6WHYssL.js +0 -0
  277. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/preview/assets/asciidoc.8O6YIVRy.js +0 -0
  278. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/preview/assets/auto-track.BlKugDvg.js +0 -0
  279. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/preview/assets/bash.CLAyaf9k.js +0 -0
  280. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/preview/assets/c.l4fEI10z.js +0 -0
  281. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/preview/assets/connect-icon-Br2hQy_e.svg +0 -0
  282. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/preview/assets/csharp.ChqrQYCS.js +0 -0
  283. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/preview/assets/css-extras.Bi-4v17d.js +0 -0
  284. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/preview/assets/css.B1LHiudN.js +0 -0
  285. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/preview/assets/cypher-editor-auto-completions.gif +0 -0
  286. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/preview/assets/cypher-editor-inline-help.png +0 -0
  287. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/preview/assets/cypher-editor-linting.png +0 -0
  288. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/preview/assets/cypher-editor-syntax-highlighting.png +0 -0
  289. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/preview/assets/cypher-reference.gif +0 -0
  290. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/preview/assets/cypher.C3qdyJ5B.js +0 -0
  291. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/preview/assets/docker.CF7EZT1T.js +0 -0
  292. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/preview/assets/fira-code-400-regular-normal-BzypJxJk.woff2 +0 -0
  293. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/preview/assets/fira-code-500-medium-normal-CRWzqcWa.woff2 +0 -0
  294. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/preview/assets/fira-code-700-bold-normal-hUmNV4O0.woff2 +0 -0
  295. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/preview/assets/go.FsJyBHVG.js +0 -0
  296. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/preview/assets/graphql.BlTzkzAJ.js +0 -0
  297. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/preview/assets/history-quick-search.gif +0 -0
  298. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/preview/assets/index-CY0cZcsW.js +0 -0
  299. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/preview/assets/index-H7L207gH.css +0 -0
  300. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/preview/assets/index.BpRu7Js3.js +0 -0
  301. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/preview/assets/index.C74acnU7.js +0 -0
  302. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/preview/assets/index.CHatcJcU.js +0 -0
  303. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/preview/assets/index.D6ZMQedT.js +0 -0
  304. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/preview/assets/index.DPZla5MT.js +0 -0
  305. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/preview/assets/index.dzIUqrzq.js +0 -0
  306. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/preview/assets/index.leyiHvaQ.js +0 -0
  307. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/preview/assets/index.qJ6VE118.js +0 -0
  308. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/preview/assets/index.umd.B9yhfa5Y.js +0 -0
  309. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/preview/assets/is-plan-event-enabled.DeNtQvA5.js +0 -0
  310. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/preview/assets/java.BBXwBh9f.js +0 -0
  311. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/preview/assets/java.CQ1iJ0-D.js +0 -0
  312. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/preview/assets/javadoc.UnquSOIj.js +0 -0
  313. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/preview/assets/javascript.CYTqTa0W.js +0 -0
  314. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/preview/assets/json.BIkJg-Cj.js +0 -0
  315. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/preview/assets/jsx.Cy_hP1z6.js +0 -0
  316. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/preview/assets/kotlin.D_6l0VkM.js +0 -0
  317. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/preview/assets/lintWorker-QNEp56W3.js +0 -0
  318. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/preview/assets/logo-aura-white-DCfUnkCN.svg +0 -0
  319. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/preview/assets/movie-model.png +0 -0
  320. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/preview/assets/movies-active-B2SzHIc1.svg +0 -0
  321. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/preview/assets/neo4j-logo-active-CieUxroh.svg +0 -0
  322. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/preview/assets/patterned-banner-background-C_nO-Yn8.svg +0 -0
  323. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/preview/assets/php.BKb6XVba.js +0 -0
  324. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/preview/assets/plan-graph-worker-s17nF19Q.js +0 -0
  325. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/preview/assets/public-sans-300-light-normal-CG9e8kLa.woff2 +0 -0
  326. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/preview/assets/public-sans-400-regular-italic-D9FlViiB.woff2 +0 -0
  327. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/preview/assets/public-sans-400-regular-normal-D4F9yfFi.woff2 +0 -0
  328. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/preview/assets/public-sans-500-medium-normal-ChZcBEnJ.woff2 +0 -0
  329. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/preview/assets/public-sans-600-semi-bold-normal-Ck6TyfRI.woff2 +0 -0
  330. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/preview/assets/public-sans-700-bold-normal-CGjRhW-d.woff2 +0 -0
  331. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/preview/assets/python.tCcUC3U7.js +0 -0
  332. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/preview/assets/query-fundamentals-active-jvTJU1K2.svg +0 -0
  333. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/preview/assets/query.snake-frame.DmvXOQIM.js +0 -0
  334. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/preview/assets/regex.C_VuIVtC.js +0 -0
  335. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/preview/assets/rust.CtSATZMt.js +0 -0
  336. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/preview/assets/saved-cypher.gif +0 -0
  337. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/preview/assets/scalable-graph-visualization.gif +0 -0
  338. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/preview/assets/sql.CfOAbw6n.js +0 -0
  339. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/preview/assets/syne-neo-500-medium-normal-A5GXmYUf.woff2 +0 -0
  340. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/preview/assets/table-visualization.gif +0 -0
  341. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/preview/assets/typescript.3Tbm37mD.js +0 -0
  342. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/preview/assets/xml-doc.h79Tu9Aw.js +0 -0
  343. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/preview/assets/yaml.B-Jvd59g.js +0 -0
  344. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/preview/favicons/android-chrome-192x192.png +0 -0
  345. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/preview/favicons/apple-touch-icon.png +0 -0
  346. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/preview/favicons/favicon-16x16.png +0 -0
  347. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/preview/favicons/favicon-194x194.png +0 -0
  348. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/preview/favicons/favicon-32x32.png +0 -0
  349. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/preview/favicons/favicon.ico +0 -0
  350. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/preview/favicons/safari-pinned-tab.svg +0 -0
  351. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/preview/index.html +0 -0
  352. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/preview/manifest.json +0 -0
  353. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/ui-libs-b124e26129aa436b26fe.bundle.js +0 -0
  354. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/browser_static/vendor-b124e26129aa436b26fe.bundle.js +0 -0
  355. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/bulk_loader.py +0 -0
  356. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/capabilities.py +0 -0
  357. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/cli.py +0 -0
  358. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/cypher/__init__.py +0 -0
  359. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/cypher/algorithms/__init__.py +0 -0
  360. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/cypher/algorithms/paths.py +0 -0
  361. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/cypher/aql/__init__.py +0 -0
  362. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/cypher/aql/ast.py +0 -0
  363. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/cypher/aql/lexer.py +0 -0
  364. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/cypher/aql/parser.py +0 -0
  365. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/cypher/aql/translator.py +0 -0
  366. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/cypher/ast.py +0 -0
  367. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/cypher/lexer.py +0 -0
  368. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/cypher/parser.py +0 -0
  369. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/cypher_api.py +0 -0
  370. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/dbapi_utils.py +0 -0
  371. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/embedded.py +0 -0
  372. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/fhir_bridge.py +0 -0
  373. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/fusion.py +0 -0
  374. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/gql/__init__.py +0 -0
  375. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/gql/constants.py +0 -0
  376. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/gql/engine.py +0 -0
  377. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/gql/pooling.py +0 -0
  378. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/gql/resolvers.py +0 -0
  379. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/gql/schema.py +0 -0
  380. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/index_protocol.py +0 -0
  381. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/models.py +0 -0
  382. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/operators.py +0 -0
  383. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/py.typed +0 -0
  384. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/result.py +0 -0
  385. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/sdk.py +0 -0
  386. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/security.py +0 -0
  387. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/status.py +0 -0
  388. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/stores/__init__.py +0 -0
  389. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/text_search.py +0 -0
  390. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/utils.py +0 -0
  391. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/iris_vector_graph/vector_utils.py +0 -0
  392. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/sql/fhir_bridges.sql +0 -0
  393. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/sql/fraud_sample_data.sql +0 -0
  394. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/sql/globals_schema.sql +0 -0
  395. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/sql/graph_path_globals.sql +0 -0
  396. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/sql/graph_walk_tvf.sql +0 -0
  397. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/sql/migrations/000_base_schema_iris.sql +0 -0
  398. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/sql/migrations/001_add_nodepk_table.sql +0 -0
  399. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/sql/migrations/001_rollback_nodepk.sql +0 -0
  400. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/sql/migrations/002_add_fk_constraints.sql +0 -0
  401. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/sql/operators.sql +0 -0
  402. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/sql/operators_fixed.sql +0 -0
  403. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/sql/procedures/kg_PageRank.sql +0 -0
  404. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/sql/rdf_reifications.sql +0 -0
  405. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/sql/schema.sql +0 -0
  406. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/TESTING.md +0 -0
  407. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/benchmark_parser.py +0 -0
  408. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/benchmarks/README.md +0 -0
  409. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/benchmarks/bench.py +0 -0
  410. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/benchmarks/bench_utils.py +0 -0
  411. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/benchmarks/benchmark_neo4j.py +0 -0
  412. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/benchmarks/bfs_benchmark.py +0 -0
  413. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/benchmarks/establish_baseline.py +0 -0
  414. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/benchmarks/graph_gen.py +0 -0
  415. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/benchmarks/ic2_profile.py +0 -0
  416. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/benchmarks/iris_baseline_run.py +0 -0
  417. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/benchmarks/iris_os_run.py +0 -0
  418. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/benchmarks/ldbc_full_loader.py +0 -0
  419. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/benchmarks/load_neo4j.py +0 -0
  420. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/benchmarks/synthetic_baseline.csv +0 -0
  421. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/conftest.py +0 -0
  422. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/contract/__init__.py +0 -0
  423. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/contract/test_cypher_api.py +0 -0
  424. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/contract/test_cypher_api_errors.py +0 -0
  425. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/contract/test_graphql_queries.py +0 -0
  426. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/contract/test_graphql_schema.py +0 -0
  427. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/contract/test_ppr_api.py +0 -0
  428. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/curl_suite.sh +0 -0
  429. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/e2e/__init__.py +0 -0
  430. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/e2e/conftest.py +0 -0
  431. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/e2e/fixtures/__init__.py +0 -0
  432. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/e2e/fixtures/centrality_graphs.py +0 -0
  433. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/e2e/test_approx_count_distinct.py +0 -0
  434. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/e2e/test_aql_e2e.py +0 -0
  435. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/e2e/test_arno_bfs_global.py +0 -0
  436. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/e2e/test_arno_bfs_unified.py +0 -0
  437. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/e2e/test_biomedical_demo.py +0 -0
  438. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/e2e/test_biomedical_ui.py +0 -0
  439. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/e2e/test_centrality_e2e.py +0 -0
  440. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/e2e/test_cypher_coerce_e2e.py +0 -0
  441. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/e2e/test_cypher_gaps_e2e.py +0 -0
  442. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/e2e/test_cypher_sprints_e2e.py +0 -0
  443. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/e2e/test_cypher_vector_search.py +0 -0
  444. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/e2e/test_cypher_vl_path_bfs.py +0 -0
  445. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/e2e/test_embed_queue_e2e.py +0 -0
  446. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/e2e/test_embedded_wgproto_e2e.py +0 -0
  447. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/e2e/test_execution_contexts.py +0 -0
  448. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/e2e/test_execution_contexts_new.py +0 -0
  449. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/e2e/test_fhir_bridges_e2e.py +0 -0
  450. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/e2e/test_fraud_demo.py +0 -0
  451. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/e2e/test_fraud_ui.py +0 -0
  452. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/e2e/test_gql_autogen_startup.py +0 -0
  453. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/e2e/test_gql_cypher_passthrough.py +0 -0
  454. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/e2e/test_gql_node_queries.py +0 -0
  455. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/e2e/test_gql_semantic_search.py +0 -0
  456. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/e2e/test_gql_traversal.py +0 -0
  457. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/e2e/test_graph_kernels_e2e.py +0 -0
  458. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/e2e/test_hla_kg_e2e.py +0 -0
  459. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/e2e/test_ic13_shortest_path.py +0 -0
  460. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/e2e/test_ic3_exact_count.py +0 -0
  461. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/e2e/test_index_protocol.py +0 -0
  462. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/e2e/test_introspection_api.py +0 -0
  463. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/e2e/test_ivf_insert.py +0 -0
  464. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/e2e/test_large_output_chunked.py +0 -0
  465. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/e2e/test_lazy_node_resolution.py +0 -0
  466. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/e2e/test_multi_query_engine_platform.py +0 -0
  467. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/e2e/test_named_paths_e2e.py +0 -0
  468. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/e2e/test_nkg_index_e2e.py +0 -0
  469. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/e2e/test_operator_wiring_e2e.py +0 -0
  470. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/e2e/test_pattern_comprehension_reduce.py +0 -0
  471. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/e2e/test_plaid.py +0 -0
  472. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/e2e/test_plaid_search_e2e.py +0 -0
  473. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/e2e/test_ppr_cls_fast_path.py +0 -0
  474. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/e2e/test_ppr_guided_e2e.py +0 -0
  475. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/e2e/test_procedure_installation.py +0 -0
  476. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/e2e/test_reification_e2e.py +0 -0
  477. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/e2e/test_schema_procedures_e2e.py +0 -0
  478. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/e2e/test_store_injection_e2e.py +0 -0
  479. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/e2e/test_streaming_bfs.py +0 -0
  480. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/e2e/test_stress_api.py +0 -0
  481. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/e2e/test_stress_ingest.py +0 -0
  482. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/e2e/test_stress_multi_context.py +0 -0
  483. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/e2e/test_stress_search.py +0 -0
  484. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/e2e/test_stress_setup.py +0 -0
  485. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/e2e/test_stress_traversal.py +0 -0
  486. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/e2e/test_subgraph_e2e.py +0 -0
  487. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/e2e/test_subquery_call_e2e.py +0 -0
  488. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/e2e/test_temporal_store_e2e.py +0 -0
  489. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/e2e/test_untested_methods.py +0 -0
  490. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/e2e/test_vecindex_e2e.py +0 -0
  491. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/integration/__init__.py +0 -0
  492. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/integration/conftest.py +0 -0
  493. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/integration/gql/__init__.py +0 -0
  494. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/integration/gql/test_graphql_mutations.py +0 -0
  495. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/integration/gql/test_graphql_nested_queries.py +0 -0
  496. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/integration/gql/test_graphql_queries.py +0 -0
  497. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/integration/gql/test_graphql_vector_search.py +0 -0
  498. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/integration/test_bidirectional_ppr.py +0 -0
  499. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/integration/test_cls_layer.py +0 -0
  500. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/integration/test_cypher_advanced.py +0 -0
  501. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/integration/test_cypher_enhancements.py +0 -0
  502. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/integration/test_cypher_multi_type.py +0 -0
  503. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/integration/test_cypher_rd.py +0 -0
  504. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/integration/test_cypher_rel_vars.py +0 -0
  505. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/integration/test_cypher_single_type.py +0 -0
  506. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/integration/test_cypher_untyped.py +0 -0
  507. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/integration/test_cypher_vector_search.py +0 -0
  508. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/integration/test_embeddings_api.py +0 -0
  509. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/integration/test_fastapi_graphql.py +0 -0
  510. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/integration/test_fhir_bridges_integration.py +0 -0
  511. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/integration/test_named_paths_integration.py +0 -0
  512. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/integration/test_nodepk_advanced_benchmarks.py +0 -0
  513. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/integration/test_nodepk_constraints.py +0 -0
  514. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/integration/test_nodepk_graph_analytics.py +0 -0
  515. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/integration/test_nodepk_migration.py +0 -0
  516. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/integration/test_nodepk_performance.py +0 -0
  517. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/integration/test_nodepk_production_scale.py +0 -0
  518. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/integration/test_objectscript_classes.py +0 -0
  519. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/integration/test_pagerank_sql_optimization.py +0 -0
  520. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/integration/test_reification_integration.py +0 -0
  521. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/integration/test_schema_migration.py +0 -0
  522. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/integration/test_stored_procedure_install.py +0 -0
  523. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/integration/test_subquery_call_integration.py +0 -0
  524. {iris_vector_graph-1.98.0/tests/unit/cypher → iris_vector_graph-1.99.1/tests/perf}/__init__.py +0 -0
  525. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/performance/conftest.py +0 -0
  526. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/performance/scale_benchmark.py +0 -0
  527. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/performance/test_ppr_stress.py +0 -0
  528. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/performance/test_stress_v1_5.py +0 -0
  529. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/python/run_all_tests.py +0 -0
  530. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/python/test_iris_rest_api.py +0 -0
  531. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/python/test_networkx_loader.py +0 -0
  532. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/python/test_performance_benchmarks.py +0 -0
  533. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/python/test_pyops_vector_conversion.py +0 -0
  534. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/python/test_python_operators.py +0 -0
  535. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/python/test_python_sdk.py +0 -0
  536. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/python/test_schema_validation.py +0 -0
  537. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/python/test_sql_queries.py +0 -0
  538. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/python/test_vector_functions.py +0 -0
  539. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/unit/cypher/test_lexer.py +0 -0
  540. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/unit/cypher/test_lexer_advanced.py +0 -0
  541. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/unit/cypher/test_parser.py +0 -0
  542. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/unit/cypher/test_parser_advanced.py +0 -0
  543. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/unit/test_aql_lexer.py +0 -0
  544. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/unit/test_aql_parser.py +0 -0
  545. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/unit/test_aql_translator.py +0 -0
  546. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/unit/test_batch_mutations.py +0 -0
  547. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/unit/test_bfs_arno.py +0 -0
  548. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/unit/test_bm25_index.py +0 -0
  549. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/unit/test_bolt_server.py +0 -0
  550. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/unit/test_centrality_translator.py +0 -0
  551. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/unit/test_centrality_unit.py +0 -0
  552. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/unit/test_cls_deployment.py +0 -0
  553. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/unit/test_coverage_boost.py +0 -0
  554. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/unit/test_cypher_benchmark.py +0 -0
  555. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/unit/test_cypher_benchmark_scale.py +0 -0
  556. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/unit/test_cypher_case_when.py +0 -0
  557. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/unit/test_cypher_e2e_new_features.py +0 -0
  558. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/unit/test_cypher_functions.py +0 -0
  559. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/unit/test_cypher_parser.py +0 -0
  560. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/unit/test_cypher_posos_bugs.py +0 -0
  561. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/unit/test_cypher_procedures.py +0 -0
  562. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/unit/test_cypher_translator.py +0 -0
  563. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/unit/test_cypher_union_exists.py +0 -0
  564. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/unit/test_cypher_var_length.py +0 -0
  565. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/unit/test_cypher_vector_search.py +0 -0
  566. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/unit/test_edge_embeddings.py +0 -0
  567. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/unit/test_edgeprop_ndjson.py +0 -0
  568. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/unit/test_embed_nodes_params.py +0 -0
  569. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/unit/test_embedded.py +0 -0
  570. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/unit/test_embedded_wgproto.py +0 -0
  571. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/unit/test_engine_deep.py +0 -0
  572. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/unit/test_engine_dimension_fix.py +0 -0
  573. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/unit/test_engine_embeddings.py +0 -0
  574. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/unit/test_engine_mocked.py +0 -0
  575. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/unit/test_engine_status.py +0 -0
  576. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/unit/test_fhir_bridge.py +0 -0
  577. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/unit/test_fhir_bridges.py +0 -0
  578. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/unit/test_get_nodes.py +0 -0
  579. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/unit/test_graph_kernels.py +0 -0
  580. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/unit/test_graphql_dataloader.py +0 -0
  581. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/unit/test_index_handle.py +0 -0
  582. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/unit/test_index_protocol.py +0 -0
  583. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/unit/test_ingest_formats.py +0 -0
  584. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/unit/test_introspection_api.py +0 -0
  585. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/unit/test_ivf_index.py +0 -0
  586. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/unit/test_ivgresult.py +0 -0
  587. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/unit/test_module_coverage.py +0 -0
  588. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/unit/test_named_graphs.py +0 -0
  589. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/unit/test_named_paths.py +0 -0
  590. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/unit/test_operators_coverage.py +0 -0
  591. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/unit/test_operators_wiring.py +0 -0
  592. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/unit/test_plaid_search.py +0 -0
  593. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/unit/test_ppr_guided_subgraph.py +0 -0
  594. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/unit/test_reification.py +0 -0
  595. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/unit/test_retrieve_and_vector_distance.py +0 -0
  596. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/unit/test_schema_init.py +0 -0
  597. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/unit/test_schema_procedures.py +0 -0
  598. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/unit/test_shortest_path.py +0 -0
  599. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/unit/test_snapshot.py +0 -0
  600. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/unit/test_sql_splitter.py +0 -0
  601. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/unit/test_sql_table_bridge.py +0 -0
  602. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/unit/test_subgraph.py +0 -0
  603. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/unit/test_subquery_call.py +0 -0
  604. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/unit/test_supporting_modules.py +0 -0
  605. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/unit/test_temporal_cypher.py +0 -0
  606. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/unit/test_temporal_edges.py +0 -0
  607. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/unit/test_translator_coverage.py +0 -0
  608. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/unit/test_unified_edge_store.py +0 -0
  609. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/unit/test_validation.py +0 -0
  610. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/unit/test_vector_search_routing.py +0 -0
  611. {iris_vector_graph-1.98.0 → iris_vector_graph-1.99.1}/tests/unit/test_weighted_shortest_path.py +0 -0
@@ -1,3 +1,86 @@
1
+ Metadata-Version: 2.4
2
+ Name: iris-vector-graph
3
+ Version: 1.99.1
4
+ Summary: Transactional Graph + Vector retrieval system for InterSystems IRIS with hybrid search, openCypher, and GraphQL APIs
5
+ Project-URL: Homepage, https://github.com/intersystems-community/iris-vector-graph
6
+ Project-URL: Documentation, https://github.com/intersystems-community/iris-vector-graph/tree/main/docs
7
+ Project-URL: Repository, https://github.com/intersystems-community/iris-vector-graph
8
+ Project-URL: Issues, https://github.com/intersystems-community/iris-vector-graph/issues
9
+ Author-email: InterSystems Community Team <grants@intersystems.com>
10
+ License-Expression: MIT
11
+ License-File: LICENSE
12
+ Keywords: bioinformatics,biomedical,graph,iris,knowledge-graph,protein-interactions,vector-search
13
+ Classifier: Development Status :: 4 - Beta
14
+ Classifier: Intended Audience :: Science/Research
15
+ Classifier: License :: OSI Approved :: MIT License
16
+ Classifier: Operating System :: OS Independent
17
+ Classifier: Programming Language :: Python :: 3
18
+ Classifier: Programming Language :: Python :: 3.9
19
+ Classifier: Programming Language :: Python :: 3.10
20
+ Classifier: Programming Language :: Python :: 3.11
21
+ Classifier: Programming Language :: Python :: 3.12
22
+ Classifier: Topic :: Database
23
+ Classifier: Topic :: Scientific/Engineering
24
+ Classifier: Topic :: Scientific/Engineering :: Bio-Informatics
25
+ Requires-Python: >=3.10
26
+ Requires-Dist: intersystems-iris>=1.0.0
27
+ Provides-Extra: biodata
28
+ Requires-Dist: biopython>=1.81; extra == 'biodata'
29
+ Requires-Dist: bioservices>=1.11.0; extra == 'biodata'
30
+ Requires-Dist: mygene>=3.2.0; extra == 'biodata'
31
+ Requires-Dist: obonet>=1.0.0; extra == 'biodata'
32
+ Provides-Extra: cli
33
+ Requires-Dist: click>=8.0.0; extra == 'cli'
34
+ Requires-Dist: httpx>=0.28.1; extra == 'cli'
35
+ Requires-Dist: tabulate>=0.9.0; extra == 'cli'
36
+ Provides-Extra: communities
37
+ Requires-Dist: leidenalg>=0.10; extra == 'communities'
38
+ Requires-Dist: networkx>=3.0; extra == 'communities'
39
+ Requires-Dist: python-igraph>=0.11; extra == 'communities'
40
+ Provides-Extra: core
41
+ Requires-Dist: intersystems-iris>=1.0.0; extra == 'core'
42
+ Provides-Extra: demo
43
+ Requires-Dist: python-fasthtml>=0.12.0; extra == 'demo'
44
+ Provides-Extra: dev
45
+ Requires-Dist: black>=23.0.0; extra == 'dev'
46
+ Requires-Dist: flake8>=6.0.0; extra == 'dev'
47
+ Requires-Dist: iris-devtester>=1.18.1; extra == 'dev'
48
+ Requires-Dist: isort>=5.12.0; extra == 'dev'
49
+ Requires-Dist: mypy>=1.5.0; extra == 'dev'
50
+ Requires-Dist: pytest-asyncio>=0.21.0; extra == 'dev'
51
+ Requires-Dist: pytest-playwright>=0.7.0; extra == 'dev'
52
+ Requires-Dist: pytest>=7.4.0; extra == 'dev'
53
+ Provides-Extra: full
54
+ Requires-Dist: fastapi>=0.118.0; extra == 'full'
55
+ Requires-Dist: httpx>=0.28.1; extra == 'full'
56
+ Requires-Dist: iris-embedded-python-wrapper>=0.5.20; extra == 'full'
57
+ Requires-Dist: leidenalg>=0.10; extra == 'full'
58
+ Requires-Dist: networkx>=3.0; extra == 'full'
59
+ Requires-Dist: numpy>=1.24.0; extra == 'full'
60
+ Requires-Dist: pandas>=2.0.0; extra == 'full'
61
+ Requires-Dist: pydantic>=2.11.9; extra == 'full'
62
+ Requires-Dist: python-dotenv>=1.0.0; extra == 'full'
63
+ Requires-Dist: python-igraph>=0.11; extra == 'full'
64
+ Requires-Dist: rdflib>=6.0.0; extra == 'full'
65
+ Requires-Dist: requests>=2.28.0; extra == 'full'
66
+ Requires-Dist: strawberry-graphql[fastapi]>=0.280.0; extra == 'full'
67
+ Requires-Dist: uvicorn>=0.37.0; extra == 'full'
68
+ Provides-Extra: ml
69
+ Requires-Dist: scikit-learn>=1.3.0; extra == 'ml'
70
+ Requires-Dist: scipy>=1.11.0; extra == 'ml'
71
+ Requires-Dist: torch>=2.0.0; extra == 'ml'
72
+ Provides-Extra: performance
73
+ Requires-Dist: memory-profiler>=0.61.0; extra == 'performance'
74
+ Requires-Dist: psutil>=5.9.0; extra == 'performance'
75
+ Provides-Extra: plaid
76
+ Requires-Dist: numpy>=1.24.0; extra == 'plaid'
77
+ Requires-Dist: scikit-learn>=1.3.0; extra == 'plaid'
78
+ Provides-Extra: visualization
79
+ Requires-Dist: graphviz>=0.20.0; extra == 'visualization'
80
+ Requires-Dist: matplotlib>=3.7.0; extra == 'visualization'
81
+ Requires-Dist: plotly>=5.15.0; extra == 'visualization'
82
+ Description-Content-Type: text/markdown
83
+
1
84
  # iris-vector-graph
2
85
 
3
86
  **Knowledge graph engine for InterSystems IRIS** — temporal property graph, vector search, openCypher, graph analytics, and pre-aggregated analytics.
@@ -733,6 +816,34 @@ conditions = tool("patient-123") # → {"conditions": [...], "error": None}
733
816
 
734
817
  ## Changelog
735
818
 
819
+ ### v1.99.1 (2026-05-29)
820
+ - **perf(spec-164)**: Seed-local k-hop fast path — `engine.khop_seedlocal(seed, hops, predicate, max_results)` and routed `engine.khop()` for `hops ≤ IVG_KHOP_SEEDLOCAL_MAX_HOPS` (default 2). Walks `^NKG(-1, sIdx, *, *)` directly via ObjectScript `$Order`, bypassing the Rust `KHopNeighbors` whole-graph serialization tax. **1-hop: 179µs → ≤150µs** (1.95× faster) on 50K-node / 145K-edge fixture. 2-hop: ≤300µs. Falls back to `^KG` walk when `^NKG` not built; emits `RuntimeWarning` once per Python process.
821
+ - **fix(spec-164)**: `Graph.KG.GraphIndex.EmptyHLL` — fixed `..EmptyHLL()` → `##class(Graph.KG.GraphIndex).EmptyHLL()` to prevent `<No such method>` compile error when `Graph.KG.Edge.cls` is compiled in a fresh container.
822
+ - **feat(spec-164)**: `IVG_TEST_PORT` env var for `scripts/test-container.sh up` — allows running `ivg-iris` on any free host port when default 1972 is occupied by other containers.
823
+ - **soft-deprecation(spec-164)**: `Graph.KG.Traversal.KHopNeighborIds` and `KHop2NeighborIds` — docstring deprecation notice pointing at `KHopNeighborsSeedLocal` as the preferred path. Methods retained for backward compat.
824
+
825
+
826
+ - **feat**: Spec 163 — Community Detection & Cluster Analysis Suite. Four new graph algorithms via the GraphStore protocol + Cypher procedures + dual-path architecture (arno Rust accelerator primary + LazyKG pure-Python fallback):
827
+ - `engine.leiden_communities(max_levels, gamma, tol, top_k, mem_budget_mb, random_seed, progress_callback)` — Leiden community detection (Traag et al. 2019). At `gamma=1.0` uses `ModularityVertexPartition` (canonical Leiden); at `gamma != 1.0` uses `CPMVertexPartition` for resolution control. ARI = 1.0 with `leidenalg` reference (4-way benchmark on karate, ER(500), ER(2000)).
828
+ - `engine.triangle_count(top_k, progress_callback)` — symmetrized triangle count + LCC. Pearson > 0.95 with `networkx.triangles(networkx.Graph(G_directed))` on Erdős-Rényi 100-node fixture.
829
+ - `engine.strongly_connected_components(top_k, progress_callback)` — iterative Tarjan (1972) with explicit DFS stack frames (avoids Python recursion limit on graphs with deep DFS chains). Exact set-equality with `networkx.strongly_connected_components`.
830
+ - `engine.k_core_decomposition(top_k, progress_callback)` — Batagelj-Zaversnik (2003) bucket-sort O(V+E) over symmetrized adjacency. Per-node exact match with `networkx.core_number`.
831
+ - **feat**: 4 Cypher procedures `CALL ivg.leiden({...}) YIELD node, community, size`, `CALL ivg.triangleCount({...}) YIELD node, triangles, lcc`, `CALL ivg.scc({...}) YIELD node, component, size`, `CALL ivg.kcore({...}) YIELD node, coreness`. Map-parameter syntax with FR-015 unknown-key rejection (reserves `weighted` key for future weighted-Leiden variants).
832
+ - **feat**: `engine.get_community_warnings(max_entries=50)` reads `^IVG.warnings("communities", *)` for memory-budget skip events.
833
+ - **feat**: 4 new `GraphStore` protocol methods (`execute_leiden`, `execute_triangle_count`, `execute_scc`, `execute_k_core`) + 4 capability keys.
834
+ - **feat**: 4 new Pydantic input models exported from package root: `LeidenInput`, `TriangleCountInput`, `SCCInput`, `KCoreInput`.
835
+ - **feat (architecture)**: **LazyKG adapter** (`iris_vector_graph.stores.lazy_kg.LazyKG`) — on-demand `^KG` global access via the IRIS Native API with per-node-level neighbor caching. Bug-S-immune (no `##class()` calls). Powers all 4 spec 163 algorithms; ready to power spec 162 retrofit.
836
+ - **feat (architecture)**: **arno Rust accelerator bridge** (`iris_vector_graph.stores.arno_bridge`) — calls `$ZF(-5)` user functions via Native API to invoke `libarno_callout.so` Rust kernels (`kg_leiden_run`, `kg_triangle_count_run`, `kg_scc_run`, `kg_kcore_run`). When `libarno_callout.so` is deployed, all 4 community algorithms route through Rust automatically; falls back transparently to LazyKG when not deployed. The Rust Leiden kernel is backed by the `leiden-rs` v0.8 crate (full Traag 2019 three-phase: local moving + refinement + aggregation, CPM/Modularity/RBC quality functions). Disable via `IVG_DISABLE_ARNO=1` to force LazyKG.
837
+ - **feat (perf)**: Server-side `^KG` walk via SQL OBJECTSCRIPT function (`ivg_arno_build_adj`) — single Python→IRIS round-trip replaces ~20K Native-API `nextSubscript` hops. Drops graph serialization from 944ms to 9–60ms on ER(2000, 9941e), making total IVG Leiden time competitive with native Neo4j GDS.
838
+ - **feat**: 4-way Leiden benchmark (`tests/perf/test_leiden_four_way.py`) — runs the same fixture through (1) `engine.leiden_communities()` (arno path when libarno deployed, LazyKG otherwise), (2) `networkx.community.louvain_communities`, (3) `leidenalg.find_partition` direct, (4) Neo4j GDS `gds.leiden.stream`. All four engines run **Modularity Leiden at γ=1.0** for apples-to-apples comparison; reports both end-to-end and kernel-only times. Captures wall-clock + modularity + community count + pairwise ARI; emits structured JSON to `benchmarks/leiden_4way_<timestamp>.json`. **Quality**: IVG ≡ leidenalg direct (ARI=1.0 on karate, 4 communities, Q=0.420 — identical partition); IVG ≡ Neo4j GDS Leiden (ARI=0.898 on karate). **End-to-end speed (post-optimization)**: IVG 6ms vs GDS 206ms on ER(500, 2437e) — **34× faster**; IVG 60ms vs GDS 60ms on ER(2000, 9941e) — tied; IVG 96ms vs GDS 115ms on karate — **1.2× faster**. Quality matches the leidenalg reference exactly while delivering competitive-to-superior performance.
839
+ - **feat**: New `[communities]` optional install extra: `pip install iris-vector-graph[communities]` pulls `python-igraph>=0.11`, `leidenalg>=0.10`, `networkx>=3.0`. `[full]` extra now includes these by default.
840
+ - **feat**: Test fixture loader (`tests/e2e/fixtures/community_graphs.py`) with 7 graph builders: Zachary's karate club, Erdős-Rényi, complete `K_n`, star, directed cycle, path, simple DAG. `load_into_engine()` automatically calls `engine.build_graph_globals()` after SQL ingest to repair `^KG` (Bug S workaround for `Graph.KG.EdgeScan` failure on external Python).
841
+ - **fix (FR-007 honest threshold)**: Karate club ARI gate relaxed from > 0.85 to > 0.75 with mandatory cardinality check (must produce 17+17 partition). Across seeds 0-49 with string-sorted node IDs (UUID-prefixed in IVG), the maximum achievable ARI for any leidenalg configuration is 0.772; the original 0.85 threshold assumed igraph's natural integer vertex ordering preserves Zachary's canonical partition, which IVG's string-ID convention breaks. The 17+17 cardinality assertion is the actual algorithmic correctness gate.
842
+ - **test**: 12 new e2e tests in `tests/e2e/test_communities_e2e.py` (3 per algorithm + 1 arno-vs-LazyKG cross-check, all PASS against `ivg-iris`) + 4 xfail-marked Cypher procedure tests pending Bug S upstream fix.
843
+ - **test**: 52 new unit tests across `tests/unit/test_communities_unit.py`, `tests/unit/test_communities_translator.py`, `tests/unit/test_lazy_kg.py`, `tests/unit/test_arno_bridge.py`. 82/82 spec 163 unit tests PASS.
844
+ - **docs**: `specs/163-communities/{spec,plan,research,data-model,quickstart,tasks,contracts/}` — full speckit artifacts with 6 clarifications, 26 functional requirements, 9 NFRs.
845
+ - **docs**: ENGINEERING_DEBT.md Bug S marked MITIGATED (LazyKG + Native API gref bypass on production path; SQL function path remains xfail-blocked pending kernel-team fix to `%SYS.DBSRV` user-class XDCall lookup).
846
+
736
847
  ### v1.98.0 (2026-05-28)
737
848
  - **feat**: Spec 162 — Centrality Suite. Four new graph centrality algorithms shipping via the GraphStore protocol + Cypher procedures, closing the biggest coverage gap vs Neo4j GDS:
738
849
  - `engine.degree_centrality(direction, predicate, top_k)` — out/in/both, predicate-filtered, normalized to (n-1)
@@ -1,80 +1,3 @@
1
- Metadata-Version: 2.4
2
- Name: iris-vector-graph
3
- Version: 1.98.0
4
- Summary: Transactional Graph + Vector retrieval system for InterSystems IRIS with hybrid search, openCypher, and GraphQL APIs
5
- Project-URL: Homepage, https://github.com/intersystems-community/iris-vector-graph
6
- Project-URL: Documentation, https://github.com/intersystems-community/iris-vector-graph/tree/main/docs
7
- Project-URL: Repository, https://github.com/intersystems-community/iris-vector-graph
8
- Project-URL: Issues, https://github.com/intersystems-community/iris-vector-graph/issues
9
- Author-email: InterSystems Community Team <grants@intersystems.com>
10
- License-Expression: MIT
11
- License-File: LICENSE
12
- Keywords: bioinformatics,biomedical,graph,iris,knowledge-graph,protein-interactions,vector-search
13
- Classifier: Development Status :: 4 - Beta
14
- Classifier: Intended Audience :: Science/Research
15
- Classifier: License :: OSI Approved :: MIT License
16
- Classifier: Operating System :: OS Independent
17
- Classifier: Programming Language :: Python :: 3
18
- Classifier: Programming Language :: Python :: 3.9
19
- Classifier: Programming Language :: Python :: 3.10
20
- Classifier: Programming Language :: Python :: 3.11
21
- Classifier: Programming Language :: Python :: 3.12
22
- Classifier: Topic :: Database
23
- Classifier: Topic :: Scientific/Engineering
24
- Classifier: Topic :: Scientific/Engineering :: Bio-Informatics
25
- Requires-Python: >=3.10
26
- Requires-Dist: intersystems-iris>=1.0.0
27
- Provides-Extra: biodata
28
- Requires-Dist: biopython>=1.81; extra == 'biodata'
29
- Requires-Dist: bioservices>=1.11.0; extra == 'biodata'
30
- Requires-Dist: mygene>=3.2.0; extra == 'biodata'
31
- Requires-Dist: obonet>=1.0.0; extra == 'biodata'
32
- Provides-Extra: cli
33
- Requires-Dist: click>=8.0.0; extra == 'cli'
34
- Requires-Dist: httpx>=0.28.1; extra == 'cli'
35
- Requires-Dist: tabulate>=0.9.0; extra == 'cli'
36
- Provides-Extra: core
37
- Requires-Dist: intersystems-iris>=1.0.0; extra == 'core'
38
- Provides-Extra: demo
39
- Requires-Dist: python-fasthtml>=0.12.0; extra == 'demo'
40
- Provides-Extra: dev
41
- Requires-Dist: black>=23.0.0; extra == 'dev'
42
- Requires-Dist: flake8>=6.0.0; extra == 'dev'
43
- Requires-Dist: iris-devtester>=1.18.1; extra == 'dev'
44
- Requires-Dist: isort>=5.12.0; extra == 'dev'
45
- Requires-Dist: mypy>=1.5.0; extra == 'dev'
46
- Requires-Dist: pytest-asyncio>=0.21.0; extra == 'dev'
47
- Requires-Dist: pytest-playwright>=0.7.0; extra == 'dev'
48
- Requires-Dist: pytest>=7.4.0; extra == 'dev'
49
- Provides-Extra: full
50
- Requires-Dist: fastapi>=0.118.0; extra == 'full'
51
- Requires-Dist: httpx>=0.28.1; extra == 'full'
52
- Requires-Dist: iris-embedded-python-wrapper>=0.5.20; extra == 'full'
53
- Requires-Dist: networkx>=3.0; extra == 'full'
54
- Requires-Dist: numpy>=1.24.0; extra == 'full'
55
- Requires-Dist: pandas>=2.0.0; extra == 'full'
56
- Requires-Dist: pydantic>=2.11.9; extra == 'full'
57
- Requires-Dist: python-dotenv>=1.0.0; extra == 'full'
58
- Requires-Dist: rdflib>=6.0.0; extra == 'full'
59
- Requires-Dist: requests>=2.28.0; extra == 'full'
60
- Requires-Dist: strawberry-graphql[fastapi]>=0.280.0; extra == 'full'
61
- Requires-Dist: uvicorn>=0.37.0; extra == 'full'
62
- Provides-Extra: ml
63
- Requires-Dist: scikit-learn>=1.3.0; extra == 'ml'
64
- Requires-Dist: scipy>=1.11.0; extra == 'ml'
65
- Requires-Dist: torch>=2.0.0; extra == 'ml'
66
- Provides-Extra: performance
67
- Requires-Dist: memory-profiler>=0.61.0; extra == 'performance'
68
- Requires-Dist: psutil>=5.9.0; extra == 'performance'
69
- Provides-Extra: plaid
70
- Requires-Dist: numpy>=1.24.0; extra == 'plaid'
71
- Requires-Dist: scikit-learn>=1.3.0; extra == 'plaid'
72
- Provides-Extra: visualization
73
- Requires-Dist: graphviz>=0.20.0; extra == 'visualization'
74
- Requires-Dist: matplotlib>=3.7.0; extra == 'visualization'
75
- Requires-Dist: plotly>=5.15.0; extra == 'visualization'
76
- Description-Content-Type: text/markdown
77
-
78
1
  # iris-vector-graph
79
2
 
80
3
  **Knowledge graph engine for InterSystems IRIS** — temporal property graph, vector search, openCypher, graph analytics, and pre-aggregated analytics.
@@ -810,6 +733,34 @@ conditions = tool("patient-123") # → {"conditions": [...], "error": None}
810
733
 
811
734
  ## Changelog
812
735
 
736
+ ### v1.99.1 (2026-05-29)
737
+ - **perf(spec-164)**: Seed-local k-hop fast path — `engine.khop_seedlocal(seed, hops, predicate, max_results)` and routed `engine.khop()` for `hops ≤ IVG_KHOP_SEEDLOCAL_MAX_HOPS` (default 2). Walks `^NKG(-1, sIdx, *, *)` directly via ObjectScript `$Order`, bypassing the Rust `KHopNeighbors` whole-graph serialization tax. **1-hop: 179µs → ≤150µs** (1.95× faster) on 50K-node / 145K-edge fixture. 2-hop: ≤300µs. Falls back to `^KG` walk when `^NKG` not built; emits `RuntimeWarning` once per Python process.
738
+ - **fix(spec-164)**: `Graph.KG.GraphIndex.EmptyHLL` — fixed `..EmptyHLL()` → `##class(Graph.KG.GraphIndex).EmptyHLL()` to prevent `<No such method>` compile error when `Graph.KG.Edge.cls` is compiled in a fresh container.
739
+ - **feat(spec-164)**: `IVG_TEST_PORT` env var for `scripts/test-container.sh up` — allows running `ivg-iris` on any free host port when default 1972 is occupied by other containers.
740
+ - **soft-deprecation(spec-164)**: `Graph.KG.Traversal.KHopNeighborIds` and `KHop2NeighborIds` — docstring deprecation notice pointing at `KHopNeighborsSeedLocal` as the preferred path. Methods retained for backward compat.
741
+
742
+
743
+ - **feat**: Spec 163 — Community Detection & Cluster Analysis Suite. Four new graph algorithms via the GraphStore protocol + Cypher procedures + dual-path architecture (arno Rust accelerator primary + LazyKG pure-Python fallback):
744
+ - `engine.leiden_communities(max_levels, gamma, tol, top_k, mem_budget_mb, random_seed, progress_callback)` — Leiden community detection (Traag et al. 2019). At `gamma=1.0` uses `ModularityVertexPartition` (canonical Leiden); at `gamma != 1.0` uses `CPMVertexPartition` for resolution control. ARI = 1.0 with `leidenalg` reference (4-way benchmark on karate, ER(500), ER(2000)).
745
+ - `engine.triangle_count(top_k, progress_callback)` — symmetrized triangle count + LCC. Pearson > 0.95 with `networkx.triangles(networkx.Graph(G_directed))` on Erdős-Rényi 100-node fixture.
746
+ - `engine.strongly_connected_components(top_k, progress_callback)` — iterative Tarjan (1972) with explicit DFS stack frames (avoids Python recursion limit on graphs with deep DFS chains). Exact set-equality with `networkx.strongly_connected_components`.
747
+ - `engine.k_core_decomposition(top_k, progress_callback)` — Batagelj-Zaversnik (2003) bucket-sort O(V+E) over symmetrized adjacency. Per-node exact match with `networkx.core_number`.
748
+ - **feat**: 4 Cypher procedures `CALL ivg.leiden({...}) YIELD node, community, size`, `CALL ivg.triangleCount({...}) YIELD node, triangles, lcc`, `CALL ivg.scc({...}) YIELD node, component, size`, `CALL ivg.kcore({...}) YIELD node, coreness`. Map-parameter syntax with FR-015 unknown-key rejection (reserves `weighted` key for future weighted-Leiden variants).
749
+ - **feat**: `engine.get_community_warnings(max_entries=50)` reads `^IVG.warnings("communities", *)` for memory-budget skip events.
750
+ - **feat**: 4 new `GraphStore` protocol methods (`execute_leiden`, `execute_triangle_count`, `execute_scc`, `execute_k_core`) + 4 capability keys.
751
+ - **feat**: 4 new Pydantic input models exported from package root: `LeidenInput`, `TriangleCountInput`, `SCCInput`, `KCoreInput`.
752
+ - **feat (architecture)**: **LazyKG adapter** (`iris_vector_graph.stores.lazy_kg.LazyKG`) — on-demand `^KG` global access via the IRIS Native API with per-node-level neighbor caching. Bug-S-immune (no `##class()` calls). Powers all 4 spec 163 algorithms; ready to power spec 162 retrofit.
753
+ - **feat (architecture)**: **arno Rust accelerator bridge** (`iris_vector_graph.stores.arno_bridge`) — calls `$ZF(-5)` user functions via Native API to invoke `libarno_callout.so` Rust kernels (`kg_leiden_run`, `kg_triangle_count_run`, `kg_scc_run`, `kg_kcore_run`). When `libarno_callout.so` is deployed, all 4 community algorithms route through Rust automatically; falls back transparently to LazyKG when not deployed. The Rust Leiden kernel is backed by the `leiden-rs` v0.8 crate (full Traag 2019 three-phase: local moving + refinement + aggregation, CPM/Modularity/RBC quality functions). Disable via `IVG_DISABLE_ARNO=1` to force LazyKG.
754
+ - **feat (perf)**: Server-side `^KG` walk via SQL OBJECTSCRIPT function (`ivg_arno_build_adj`) — single Python→IRIS round-trip replaces ~20K Native-API `nextSubscript` hops. Drops graph serialization from 944ms to 9–60ms on ER(2000, 9941e), making total IVG Leiden time competitive with native Neo4j GDS.
755
+ - **feat**: 4-way Leiden benchmark (`tests/perf/test_leiden_four_way.py`) — runs the same fixture through (1) `engine.leiden_communities()` (arno path when libarno deployed, LazyKG otherwise), (2) `networkx.community.louvain_communities`, (3) `leidenalg.find_partition` direct, (4) Neo4j GDS `gds.leiden.stream`. All four engines run **Modularity Leiden at γ=1.0** for apples-to-apples comparison; reports both end-to-end and kernel-only times. Captures wall-clock + modularity + community count + pairwise ARI; emits structured JSON to `benchmarks/leiden_4way_<timestamp>.json`. **Quality**: IVG ≡ leidenalg direct (ARI=1.0 on karate, 4 communities, Q=0.420 — identical partition); IVG ≡ Neo4j GDS Leiden (ARI=0.898 on karate). **End-to-end speed (post-optimization)**: IVG 6ms vs GDS 206ms on ER(500, 2437e) — **34× faster**; IVG 60ms vs GDS 60ms on ER(2000, 9941e) — tied; IVG 96ms vs GDS 115ms on karate — **1.2× faster**. Quality matches the leidenalg reference exactly while delivering competitive-to-superior performance.
756
+ - **feat**: New `[communities]` optional install extra: `pip install iris-vector-graph[communities]` pulls `python-igraph>=0.11`, `leidenalg>=0.10`, `networkx>=3.0`. `[full]` extra now includes these by default.
757
+ - **feat**: Test fixture loader (`tests/e2e/fixtures/community_graphs.py`) with 7 graph builders: Zachary's karate club, Erdős-Rényi, complete `K_n`, star, directed cycle, path, simple DAG. `load_into_engine()` automatically calls `engine.build_graph_globals()` after SQL ingest to repair `^KG` (Bug S workaround for `Graph.KG.EdgeScan` failure on external Python).
758
+ - **fix (FR-007 honest threshold)**: Karate club ARI gate relaxed from > 0.85 to > 0.75 with mandatory cardinality check (must produce 17+17 partition). Across seeds 0-49 with string-sorted node IDs (UUID-prefixed in IVG), the maximum achievable ARI for any leidenalg configuration is 0.772; the original 0.85 threshold assumed igraph's natural integer vertex ordering preserves Zachary's canonical partition, which IVG's string-ID convention breaks. The 17+17 cardinality assertion is the actual algorithmic correctness gate.
759
+ - **test**: 12 new e2e tests in `tests/e2e/test_communities_e2e.py` (3 per algorithm + 1 arno-vs-LazyKG cross-check, all PASS against `ivg-iris`) + 4 xfail-marked Cypher procedure tests pending Bug S upstream fix.
760
+ - **test**: 52 new unit tests across `tests/unit/test_communities_unit.py`, `tests/unit/test_communities_translator.py`, `tests/unit/test_lazy_kg.py`, `tests/unit/test_arno_bridge.py`. 82/82 spec 163 unit tests PASS.
761
+ - **docs**: `specs/163-communities/{spec,plan,research,data-model,quickstart,tasks,contracts/}` — full speckit artifacts with 6 clarifications, 26 functional requirements, 9 NFRs.
762
+ - **docs**: ENGINEERING_DEBT.md Bug S marked MITIGATED (LazyKG + Native API gref bypass on production path; SQL function path remains xfail-blocked pending kernel-team fix to `%SYS.DBSRV` user-class XDCall lookup).
763
+
813
764
  ### v1.98.0 (2026-05-28)
814
765
  - **feat**: Spec 162 — Centrality Suite. Four new graph centrality algorithms shipping via the GraphStore protocol + Cypher procedures, closing the biggest coverage gap vs Neo4j GDS:
815
766
  - `engine.degree_centrality(direction, predicate, top_k)` — out/in/both, predicate-filtered, normalized to (n-1)
@@ -91,7 +91,7 @@ ClassMethod UpdateStructuralHLL(sIdx As %Integer, pIdx As %Integer, oIdx As %Int
91
91
  } Else {
92
92
  While (b1 # 2) = 0 { Set lz = lz + 1, b1 = b1 \ 2 }
93
93
  }
94
- Set hll = $Get(^NKG("$agg", sIdx, pIdx, "hll"), ..EmptyHLL())
94
+ Set hll = $Get(^NKG("$agg", sIdx, pIdx, "hll"), ##class(Graph.KG.GraphIndex).EmptyHLL())
95
95
  If lz > $List(hll, regIdx) {
96
96
  Set $List(hll, regIdx) = lz
97
97
  Set ^NKG("$agg", sIdx, pIdx, "hll") = hll
@@ -1071,4 +1071,225 @@ ClassMethod Build2HopExact() As %Boolean
1071
1071
  Return 1
1072
1072
  }
1073
1073
 
1074
+ /// Spec 164 (FR-164-001..005): Seed-local k-hop walk via ^NKG without serializing
1075
+ /// the whole graph. ~5x faster than KHopNeighbors for hops=1.
1076
+ ///
1077
+ /// Walks ^NKG(-1, sIdx, *, *) directly via $Order. Returns JSON array
1078
+ /// [{"node_id": ..., "hops": N}] ordered hops-ascending, then ^NKG subscript
1079
+ /// order within each hop (FR-164-001 / round-1 Q1 BFS layer order).
1080
+ ///
1081
+ /// Edge cases (FR-164-004 / round-1 Q5):
1082
+ /// - hops=0 → "[]"
1083
+ /// - seedId not in $NI → delegate to KHopFromKGGlobalFallback
1084
+ /// - predicate not in $LI → "[]"
1085
+ /// - maxResults=0 → unlimited
1086
+ ClassMethod KHopNeighborsSeedLocal(seedId As %String, hops As %Integer = 1, predicate As %String = "", maxResults As %Integer = 10000) As %String
1087
+ {
1088
+ If (seedId = "") || (hops = 0) {
1089
+ Return "SEEDLOCAL:[]"
1090
+ }
1091
+ Set sIdx = $Get(^NKG("$NI", seedId))
1092
+ If sIdx = "" {
1093
+ Return "KGFALLBACK:"_..KHopFromKGGlobalFallback(seedId, hops, predicate, maxResults)
1094
+ }
1095
+
1096
+ Kill ^||khopSeen, ^||khopResult
1097
+ Set ^||khopSeen(sIdx) = 0
1098
+ Set count = 0, frontStart = 1, frontEnd = 0
1099
+ Set capped = 0
1100
+ If predicate '= "" {
1101
+ Set pIdx = $Get(^NKG("$LI", predicate))
1102
+ If pIdx = "" {
1103
+ Kill ^||khopSeen, ^||khopResult
1104
+ Return "[]"
1105
+ }
1106
+ Set negP = -(pIdx + 1)
1107
+ Set oIdx = $Order(^NKG(-1, sIdx, negP, ""))
1108
+ While (oIdx '= "") && ('capped) {
1109
+ If '$Data(^||khopSeen(oIdx)) {
1110
+ Set ^||khopSeen(oIdx) = 1
1111
+ Set count = count + 1
1112
+ Set frontEnd = count
1113
+ Set ^||khopResult(count, "id") = $Get(^NKG("$ND", oIdx))
1114
+ Set ^||khopResult(count, "hops") = 1
1115
+ Set ^||khopResult(count, "idx") = oIdx
1116
+ If (maxResults > 0) && (count >= maxResults) Set capped = 1
1117
+ }
1118
+ Set oIdx = $Order(^NKG(-1, sIdx, negP, oIdx))
1119
+ }
1120
+ } Else {
1121
+ Set negP = $Order(^NKG(-1, sIdx, ""))
1122
+ While (negP '= "") && ('capped) {
1123
+ Set oIdx = $Order(^NKG(-1, sIdx, negP, ""))
1124
+ While (oIdx '= "") && ('capped) {
1125
+ If '$Data(^||khopSeen(oIdx)) {
1126
+ Set ^||khopSeen(oIdx) = 1
1127
+ Set count = count + 1
1128
+ Set frontEnd = count
1129
+ Set ^||khopResult(count, "id") = $Get(^NKG("$ND", oIdx))
1130
+ Set ^||khopResult(count, "hops") = 1
1131
+ Set ^||khopResult(count, "idx") = oIdx
1132
+ If (maxResults > 0) && (count >= maxResults) Set capped = 1
1133
+ }
1134
+ Set oIdx = $Order(^NKG(-1, sIdx, negP, oIdx))
1135
+ }
1136
+ Set negP = $Order(^NKG(-1, sIdx, negP))
1137
+ }
1138
+ }
1139
+
1140
+ If (hops >= 2) && ('capped) {
1141
+ For i = frontStart:1:frontEnd {
1142
+ Quit:capped
1143
+ Set fIdx = $Get(^||khopResult(i, "idx"))
1144
+ If fIdx = "" Continue
1145
+ If predicate '= "" {
1146
+ Set pIdx2 = $Get(^NKG("$LI", predicate))
1147
+ Quit:pIdx2=""
1148
+ Set negP2 = -(pIdx2 + 1)
1149
+ Set oIdx2 = $Order(^NKG(-1, fIdx, negP2, ""))
1150
+ While (oIdx2 '= "") && ('capped) {
1151
+ If '$Data(^||khopSeen(oIdx2)) {
1152
+ Set ^||khopSeen(oIdx2) = 1
1153
+ Set count = count + 1
1154
+ Set ^||khopResult(count, "id") = $Get(^NKG("$ND", oIdx2))
1155
+ Set ^||khopResult(count, "hops") = 2
1156
+ Set ^||khopResult(count, "idx") = oIdx2
1157
+ If (maxResults > 0) && (count >= maxResults) Set capped = 1
1158
+ }
1159
+ Set oIdx2 = $Order(^NKG(-1, fIdx, negP2, oIdx2))
1160
+ }
1161
+ } Else {
1162
+ Set negP2 = $Order(^NKG(-1, fIdx, ""))
1163
+ While (negP2 '= "") && ('capped) {
1164
+ Set oIdx2 = $Order(^NKG(-1, fIdx, negP2, ""))
1165
+ While (oIdx2 '= "") && ('capped) {
1166
+ If '$Data(^||khopSeen(oIdx2)) {
1167
+ Set ^||khopSeen(oIdx2) = 1
1168
+ Set count = count + 1
1169
+ Set ^||khopResult(count, "id") = $Get(^NKG("$ND", oIdx2))
1170
+ Set ^||khopResult(count, "hops") = 2
1171
+ Set ^||khopResult(count, "idx") = oIdx2
1172
+ If (maxResults > 0) && (count >= maxResults) Set capped = 1
1173
+ }
1174
+ Set oIdx2 = $Order(^NKG(-1, fIdx, negP2, oIdx2))
1175
+ }
1176
+ Set negP2 = $Order(^NKG(-1, fIdx, negP2))
1177
+ }
1178
+ }
1179
+ }
1180
+ }
1181
+
1182
+ Set json = "["
1183
+ Set sep = ""
1184
+ For j = 1:1:count {
1185
+ Set nid = $Get(^||khopResult(j, "id"))
1186
+ Set h = $Get(^||khopResult(j, "hops"))
1187
+ Set escNid = $Replace($Replace(nid, "\", "\\"), """", "\""")
1188
+ Set json = json _ sep _ "{""node_id"":""" _ escNid _ """,""hops"":" _ h _ "}"
1189
+ Set sep = ","
1190
+ }
1191
+ Set json = json _ "]"
1192
+
1193
+ Kill ^||khopSeen, ^||khopResult
1194
+ Return "SEEDLOCAL:"_json
1195
+ }
1196
+ /// Spec 164 FR-164-008 / round-2 Q3 — `^KG` walk fallback when `^NKG("$NI", seedId)`
1197
+ /// is empty. Emits **identical JSON schema** to KHopNeighborsSeedLocal:
1198
+ /// [{"node_id": "...", "hops": N}, ...] hops-ascending, BFS layer order.
1199
+ /// Uses `^||khopSeenId` (string-keyed) for dedup since `^KG` is string-keyed.
1200
+ ClassMethod KHopFromKGGlobalFallback(seedId As %String, hops As %Integer = 1, predicate As %String = "", maxResults As %Integer = 10000) As %String [ Private ]
1201
+ {
1202
+ If (seedId = "") || (hops = 0) {
1203
+ Return "[]"
1204
+ }
1205
+
1206
+ Kill ^||khopSeenId, ^||khopResult
1207
+ Set ^||khopSeenId(seedId) = 0
1208
+ Set count = 0, frontStart = 1, frontEnd = 0
1209
+ Set capped = 0
1210
+
1211
+ If predicate '= "" {
1212
+ Set dst = $Order(^KG("out", 0, seedId, predicate, ""))
1213
+ While (dst '= "") && ('capped) {
1214
+ If '$Data(^||khopSeenId(dst)) {
1215
+ Set ^||khopSeenId(dst) = 1
1216
+ Set count = count + 1
1217
+ Set frontEnd = count
1218
+ Set ^||khopResult(count, "id") = dst
1219
+ Set ^||khopResult(count, "hops") = 1
1220
+ If (maxResults > 0) && (count >= maxResults) Set capped = 1
1221
+ }
1222
+ Set dst = $Order(^KG("out", 0, seedId, predicate, dst))
1223
+ }
1224
+ } Else {
1225
+ Set pred = $Order(^KG("out", 0, seedId, ""))
1226
+ While (pred '= "") && ('capped) {
1227
+ Set dst = $Order(^KG("out", 0, seedId, pred, ""))
1228
+ While (dst '= "") && ('capped) {
1229
+ If '$Data(^||khopSeenId(dst)) {
1230
+ Set ^||khopSeenId(dst) = 1
1231
+ Set count = count + 1
1232
+ Set frontEnd = count
1233
+ Set ^||khopResult(count, "id") = dst
1234
+ Set ^||khopResult(count, "hops") = 1
1235
+ If (maxResults > 0) && (count >= maxResults) Set capped = 1
1236
+ }
1237
+ Set dst = $Order(^KG("out", 0, seedId, pred, dst))
1238
+ }
1239
+ Set pred = $Order(^KG("out", 0, seedId, pred))
1240
+ }
1241
+ }
1242
+
1243
+ If (hops >= 2) && ('capped) {
1244
+ For i = frontStart:1:frontEnd {
1245
+ Quit:capped
1246
+ Set fId = $Get(^||khopResult(i, "id"))
1247
+ If fId = "" Continue
1248
+ If predicate '= "" {
1249
+ Set d2 = $Order(^KG("out", 0, fId, predicate, ""))
1250
+ While (d2 '= "") && ('capped) {
1251
+ If '$Data(^||khopSeenId(d2)) {
1252
+ Set ^||khopSeenId(d2) = 1
1253
+ Set count = count + 1
1254
+ Set ^||khopResult(count, "id") = d2
1255
+ Set ^||khopResult(count, "hops") = 2
1256
+ If (maxResults > 0) && (count >= maxResults) Set capped = 1
1257
+ }
1258
+ Set d2 = $Order(^KG("out", 0, fId, predicate, d2))
1259
+ }
1260
+ } Else {
1261
+ Set p2 = $Order(^KG("out", 0, fId, ""))
1262
+ While (p2 '= "") && ('capped) {
1263
+ Set d2 = $Order(^KG("out", 0, fId, p2, ""))
1264
+ While (d2 '= "") && ('capped) {
1265
+ If '$Data(^||khopSeenId(d2)) {
1266
+ Set ^||khopSeenId(d2) = 1
1267
+ Set count = count + 1
1268
+ Set ^||khopResult(count, "id") = d2
1269
+ Set ^||khopResult(count, "hops") = 2
1270
+ If (maxResults > 0) && (count >= maxResults) Set capped = 1
1271
+ }
1272
+ Set d2 = $Order(^KG("out", 0, fId, p2, d2))
1273
+ }
1274
+ Set p2 = $Order(^KG("out", 0, fId, p2))
1275
+ }
1276
+ }
1277
+ }
1278
+ }
1279
+
1280
+ Set json = "["
1281
+ Set sep = ""
1282
+ For j = 1:1:count {
1283
+ Set nid = $Get(^||khopResult(j, "id"))
1284
+ Set h = $Get(^||khopResult(j, "hops"))
1285
+ Set escNid = $Replace($Replace(nid, "\", "\\"), """", "\""")
1286
+ Set json = json _ sep _ "{""node_id"":""" _ escNid _ """,""hops"":" _ h _ "}"
1287
+ Set sep = ","
1288
+ }
1289
+ Set json = json _ "]"
1290
+
1291
+ Kill ^||khopSeenId, ^||khopResult
1292
+ Return json
1293
+ }
1294
+
1074
1295
  }
@@ -1027,6 +1027,13 @@ ClassMethod KHopCount(srcId As %String, pred As %String = "") As %Integer
1027
1027
 
1028
1028
  /// Returns 1-hop neighbor IDs as a newline-delimited string — no JSON overhead.
1029
1029
  /// ~10x faster than BFSFastJson for large neighbor sets when only IDs are needed.
1030
+ /// DEPRECATED (spec 164, 2026-05-29): Prefer
1031
+ /// Graph.KG.NKGAccel.KHopNeighborsSeedLocal which walks ^NKG directly
1032
+ /// via $Order without the whole-graph serialization tax (~86µs vs ~455µs
1033
+ /// SQL BFS on 50K-node graph). This method is retained for backward
1034
+ /// compatibility with direct-classMethodValue callers outside the engine
1035
+ /// layer (custom dashboards, debug scripts); the engine itself now
1036
+ /// dispatches to KHopNeighborsSeedLocal for hops<=IVG_KHOP_SEEDLOCAL_MAX_HOPS.
1030
1037
  ClassMethod KHopNeighborIds(srcId As %String, pred As %String = "") As %String
1031
1038
  {
1032
1039
  Set result = ""
@@ -1125,6 +1132,9 @@ ClassMethod KHop2Count(srcId As %String, pred As %String = "") As %Integer
1125
1132
 
1126
1133
  /// Returns 2-hop distinct neighbor IDs as newline-delimited string.
1127
1134
  /// Excludes srcId. Uses process-private globals for dedup — no JSON.
1135
+ /// DEPRECATED (spec 164, 2026-05-29): Prefer
1136
+ /// Graph.KG.NKGAccel.KHopNeighborsSeedLocal(seedId, 2, ...) which walks ^NKG
1137
+ /// directly. See KHopNeighborIds deprecation notice for full rationale.
1128
1138
  ClassMethod KHop2NeighborIds(srcId As %String, pred As %String = "", maxResults As %Integer = 0) As %String
1129
1139
  {
1130
1140
  Kill ^||kh2s, ^||kh2all
@@ -18,6 +18,7 @@ from ._validate import (
18
18
  BM25BuildInput, BM25SearchInput,
19
19
  KHop2Input, TemporalEdgeInput, VecSearchInput,
20
20
  DegreeCentralityInput, BetweennessInput, ClosenessInput, EigenvectorInput,
21
+ LeidenInput, TriangleCountInput, SCCInput, KCoreInput,
21
22
  )
22
23
  from .vector_utils import VectorOptimizer
23
24
  from .text_search import TextSearchEngine
@@ -210,3 +210,24 @@ class EigenvectorInput(BaseModel):
210
210
  max_iter: int = Field(default=30, ge=1, le=1000)
211
211
  tol: float = Field(default=1e-6, gt=0.0, lt=1.0)
212
212
  top_k: int = Field(default=10000, ge=0, le=1_000_000)
213
+
214
+
215
+ class LeidenInput(BaseModel):
216
+ max_levels: int = Field(default=10, ge=1, le=100)
217
+ gamma: float = Field(default=1.0, gt=0.0, le=100.0)
218
+ tol: float = Field(default=1e-4, gt=0.0, lt=1.0)
219
+ top_k: int = Field(default=10000, ge=0, le=1_000_000)
220
+ mem_budget_mb: int = Field(default=256, ge=16, le=8192)
221
+ random_seed: Optional[int] = Field(default=None, ge=0, le=2**32 - 1)
222
+
223
+
224
+ class TriangleCountInput(BaseModel):
225
+ top_k: int = Field(default=10000, ge=0, le=1_000_000)
226
+
227
+
228
+ class SCCInput(BaseModel):
229
+ top_k: int = Field(default=10000, ge=0, le=1_000_000)
230
+
231
+
232
+ class KCoreInput(BaseModel):
233
+ top_k: int = Field(default=10000, ge=0, le=1_000_000)