iris-vector-graph 1.99.1__tar.gz → 1.99.2__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 (613) hide show
  1. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/PKG-INFO +5 -6
  2. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/README.md +4 -5
  3. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_src/src/Graph/KG/NKGAccel.cls +0 -221
  4. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_src/src/Graph/KG/Traversal.cls +27 -15
  5. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/cypher/translator.py +1 -55
  6. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/engine.py +72 -92
  7. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/schema.py +0 -14
  8. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/pyproject.toml +1 -1
  9. iris_vector_graph-1.99.2/tests/e2e/test_rebuild_nkg_complete_e2e.py +162 -0
  10. iris_vector_graph-1.99.2/tests/unit/test_rebuild_nkg_complete_unit.py +74 -0
  11. iris_vector_graph-1.99.1/iris_vector_graph/stores/_khop_state.py +0 -19
  12. iris_vector_graph-1.99.1/tests/e2e/fixtures/khop_graphs.py +0 -95
  13. iris_vector_graph-1.99.1/tests/e2e/test_khop_seedlocal_e2e.py +0 -290
  14. iris_vector_graph-1.99.1/tests/perf/test_khop_seedlocal_perf.py +0 -96
  15. iris_vector_graph-1.99.1/tests/unit/test_khop_seedlocal_unit.py +0 -115
  16. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/.gitignore +0 -0
  17. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/LICENSE +0 -0
  18. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/examples/demo_biomedical.py +0 -0
  19. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/examples/demo_fraud_detection.py +0 -0
  20. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/examples/demo_fraud_detection_sql.py +0 -0
  21. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/examples/demo_utils.py +0 -0
  22. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/examples/demo_working_system.py +0 -0
  23. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/examples/domains/__init__.py +0 -0
  24. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/examples/domains/biomedical/__init__.py +0 -0
  25. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/examples/domains/biomedical/loaders.py +0 -0
  26. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/examples/domains/biomedical/resolver.py +0 -0
  27. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/examples/domains/biomedical/types.py +0 -0
  28. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/examples/domains/biomedical_legacy/__init__.py +0 -0
  29. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/examples/domains/biomedical_legacy/biomedical_engine.py +0 -0
  30. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/examples/domains/biomedical_legacy/biomedical_schema.py +0 -0
  31. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/examples/domains/biomedical_legacy/legacy_wrapper.py +0 -0
  32. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/examples/domains/fraud/__init__.py +0 -0
  33. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/examples/domains/fraud/loaders.py +0 -0
  34. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/examples/domains/fraud/resolver.py +0 -0
  35. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/examples/domains/fraud/types.py +0 -0
  36. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/examples/graphQL.http +0 -0
  37. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/examples/hybrid_vector_graph_query.cypher +0 -0
  38. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/examples/rest.http +0 -0
  39. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_src/src/Graph/KG/Algorithms.cls +0 -0
  40. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_src/src/Graph/KG/ArnoAccel.cls +0 -0
  41. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_src/src/Graph/KG/BM25Index.cls +0 -0
  42. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_src/src/Graph/KG/BenchFormat.cls +0 -0
  43. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_src/src/Graph/KG/BenchSeeder.cls +0 -0
  44. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_src/src/Graph/KG/Benchmark.cls +0 -0
  45. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_src/src/Graph/KG/Centrality.cls +0 -0
  46. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_src/src/Graph/KG/Edge.cls +0 -0
  47. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_src/src/Graph/KG/EdgeScan.cls +0 -0
  48. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_src/src/Graph/KG/EmbedQueue.cls +0 -0
  49. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_src/src/Graph/KG/GraphIndex.cls +0 -0
  50. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_src/src/Graph/KG/IVFIndex.cls +0 -0
  51. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_src/src/Graph/KG/Loader.cls +0 -0
  52. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_src/src/Graph/KG/MCPService.cls +0 -0
  53. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_src/src/Graph/KG/MCPToolSet.cls +0 -0
  54. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_src/src/Graph/KG/MCPTools.cls +0 -0
  55. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_src/src/Graph/KG/Meta.cls +0 -0
  56. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_src/src/Graph/KG/PLAIDSearch.cls +0 -0
  57. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_src/src/Graph/KG/PageRank.cls +0 -0
  58. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_src/src/Graph/KG/PyOps.cls +0 -0
  59. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_src/src/Graph/KG/Service.cls +0 -0
  60. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_src/src/Graph/KG/Snapshot.cls +0 -0
  61. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_src/src/Graph/KG/Subgraph.cls +0 -0
  62. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_src/src/Graph/KG/TemporalIndex.cls +0 -0
  63. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_src/src/Graph/KG/TestEdge.cls +0 -0
  64. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_src/src/Graph/KG/VecIndex.cls +0 -0
  65. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_src/src/IVG/CypherEngine.cls +0 -0
  66. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_src/src/IVG/Percentile.cls +0 -0
  67. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_src/src/PageRankEmbedded.cls +0 -0
  68. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_src/src/User.Exec.cls +0 -0
  69. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_src/src/iris/vector/graph/GraphOperators.cls +0 -0
  70. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/__init__.py +0 -0
  71. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/_validate.py +0 -0
  72. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/bolt_server.py +0 -0
  73. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/0-b124e26129aa436b26fe.bundle.js +0 -0
  74. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/1-b124e26129aa436b26fe.bundle.js +0 -0
  75. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/10-b124e26129aa436b26fe.bundle.js +0 -0
  76. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/11-b124e26129aa436b26fe.bundle.js +0 -0
  77. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/12-b124e26129aa436b26fe.bundle.js +0 -0
  78. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/13-b124e26129aa436b26fe.bundle.js +0 -0
  79. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/14-b124e26129aa436b26fe.bundle.js +0 -0
  80. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/15-b124e26129aa436b26fe.bundle.js +0 -0
  81. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/16-b124e26129aa436b26fe.bundle.js +0 -0
  82. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/17-b124e26129aa436b26fe.bundle.js +0 -0
  83. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/18-b124e26129aa436b26fe.bundle.js +0 -0
  84. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/19-b124e26129aa436b26fe.bundle.js +0 -0
  85. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/20-b124e26129aa436b26fe.bundle.js +0 -0
  86. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/21-b124e26129aa436b26fe.bundle.js +0 -0
  87. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/22-b124e26129aa436b26fe.bundle.js +0 -0
  88. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/23-b124e26129aa436b26fe.bundle.js +0 -0
  89. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/24-b124e26129aa436b26fe.bundle.js +0 -0
  90. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/25-b124e26129aa436b26fe.bundle.js +0 -0
  91. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/26-b124e26129aa436b26fe.bundle.js +0 -0
  92. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/27-b124e26129aa436b26fe.bundle.js +0 -0
  93. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/28-b124e26129aa436b26fe.bundle.js +0 -0
  94. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/29-b124e26129aa436b26fe.bundle.js +0 -0
  95. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/30-b124e26129aa436b26fe.bundle.js +0 -0
  96. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/31-b124e26129aa436b26fe.bundle.js +0 -0
  97. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/32-b124e26129aa436b26fe.bundle.js +0 -0
  98. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/33-b124e26129aa436b26fe.bundle.js +0 -0
  99. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/34-b124e26129aa436b26fe.bundle.js +0 -0
  100. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/35-b124e26129aa436b26fe.bundle.js +0 -0
  101. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/36-b124e26129aa436b26fe.bundle.js +0 -0
  102. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/37-b124e26129aa436b26fe.bundle.js +0 -0
  103. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/38-b124e26129aa436b26fe.bundle.js +0 -0
  104. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/39-b124e26129aa436b26fe.bundle.js +0 -0
  105. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/40-b124e26129aa436b26fe.bundle.js +0 -0
  106. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/41-b124e26129aa436b26fe.bundle.js +0 -0
  107. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/42-b124e26129aa436b26fe.bundle.js +0 -0
  108. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/43-b124e26129aa436b26fe.bundle.js +0 -0
  109. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/44-b124e26129aa436b26fe.bundle.js +0 -0
  110. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/45-b124e26129aa436b26fe.bundle.js +0 -0
  111. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/46-b124e26129aa436b26fe.bundle.js +0 -0
  112. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/47-b124e26129aa436b26fe.bundle.js +0 -0
  113. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/48-b124e26129aa436b26fe.bundle.js +0 -0
  114. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/49-b124e26129aa436b26fe.bundle.js +0 -0
  115. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/50-b124e26129aa436b26fe.bundle.js +0 -0
  116. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/51-b124e26129aa436b26fe.bundle.js +0 -0
  117. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/52-b124e26129aa436b26fe.bundle.js +0 -0
  118. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/53-b124e26129aa436b26fe.bundle.js +0 -0
  119. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/54-b124e26129aa436b26fe.bundle.js +0 -0
  120. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/55-b124e26129aa436b26fe.bundle.js +0 -0
  121. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/56-b124e26129aa436b26fe.bundle.js +0 -0
  122. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/57-b124e26129aa436b26fe.bundle.js +0 -0
  123. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/58-b124e26129aa436b26fe.bundle.js +0 -0
  124. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/59-b124e26129aa436b26fe.bundle.js +0 -0
  125. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/6-b124e26129aa436b26fe.bundle.js +0 -0
  126. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/60-b124e26129aa436b26fe.bundle.js +0 -0
  127. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/61-b124e26129aa436b26fe.bundle.js +0 -0
  128. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/62-b124e26129aa436b26fe.bundle.js +0 -0
  129. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/63-b124e26129aa436b26fe.bundle.js +0 -0
  130. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/64-b124e26129aa436b26fe.bundle.js +0 -0
  131. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/65-b124e26129aa436b26fe.bundle.js +0 -0
  132. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/66-b124e26129aa436b26fe.bundle.js +0 -0
  133. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/67-b124e26129aa436b26fe.bundle.js +0 -0
  134. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/68-b124e26129aa436b26fe.bundle.js +0 -0
  135. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/69-b124e26129aa436b26fe.bundle.js +0 -0
  136. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/7-b124e26129aa436b26fe.bundle.js +0 -0
  137. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/70-b124e26129aa436b26fe.bundle.js +0 -0
  138. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/71-b124e26129aa436b26fe.bundle.js +0 -0
  139. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/72-b124e26129aa436b26fe.bundle.js +0 -0
  140. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/73-b124e26129aa436b26fe.bundle.js +0 -0
  141. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/74-b124e26129aa436b26fe.bundle.js +0 -0
  142. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/75-b124e26129aa436b26fe.bundle.js +0 -0
  143. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/8-b124e26129aa436b26fe.bundle.js +0 -0
  144. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/9-b124e26129aa436b26fe.bundle.js +0 -0
  145. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/app-b124e26129aa436b26fe.js +0 -0
  146. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/assets/filter-a7c44e713bf19d31f6b2849160b1bba8.svg +0 -0
  147. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/assets/fonts/FiraCode-Bold.eot +0 -0
  148. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/assets/fonts/FiraCode-Bold.ttf +0 -0
  149. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/assets/fonts/FiraCode-Bold.woff +0 -0
  150. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/assets/fonts/FiraCode-Bold.woff2 +0 -0
  151. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/assets/fonts/FiraCode-Light.eot +0 -0
  152. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/assets/fonts/FiraCode-Light.ttf +0 -0
  153. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/assets/fonts/FiraCode-Light.woff +0 -0
  154. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/assets/fonts/FiraCode-Light.woff2 +0 -0
  155. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/assets/fonts/FiraCode-Medium.eot +0 -0
  156. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/assets/fonts/FiraCode-Medium.ttf +0 -0
  157. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/assets/fonts/FiraCode-Medium.woff +0 -0
  158. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/assets/fonts/FiraCode-Medium.woff2 +0 -0
  159. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/assets/fonts/FiraCode-Regular.eot +0 -0
  160. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/assets/fonts/FiraCode-Regular.ttf +0 -0
  161. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/assets/fonts/FiraCode-Regular.woff +0 -0
  162. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/assets/fonts/FiraCode-Regular.woff2 +0 -0
  163. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/assets/fonts/OpenSans-Bold.ttf +0 -0
  164. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/assets/fonts/OpenSans-BoldItalic.ttf +0 -0
  165. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/assets/fonts/OpenSans-ExtraBold.ttf +0 -0
  166. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/assets/fonts/OpenSans-ExtraBoldItalic.ttf +0 -0
  167. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/assets/fonts/OpenSans-Italic.ttf +0 -0
  168. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/assets/fonts/OpenSans-Light.ttf +0 -0
  169. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/assets/fonts/OpenSans-LightItalic.ttf +0 -0
  170. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/assets/fonts/OpenSans-Regular.ttf +0 -0
  171. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/assets/fonts/OpenSans-Semibold.ttf +0 -0
  172. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/assets/fonts/OpenSans-SemiboldItalic.ttf +0 -0
  173. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/assets/fonts/codicon.ttf +0 -0
  174. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/assets/fonts/filter.svg +0 -0
  175. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/assets/fonts/fontawesome-webfont.eot +0 -0
  176. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/assets/fonts/fontawesome-webfont.svg +0 -0
  177. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/assets/fonts/fontawesome-webfont.ttf +0 -0
  178. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/assets/fonts/fontawesome-webfont.woff +0 -0
  179. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/assets/fonts/fontawesome-webfont.woff2 +0 -0
  180. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/assets/fonts/group-by.svg +0 -0
  181. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/assets/fonts/neo4j-world.eot +0 -0
  182. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/assets/fonts/neo4j-world.svg +0 -0
  183. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/assets/fonts/neo4j-world.ttf +0 -0
  184. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/assets/fonts/neo4j-world.woff +0 -0
  185. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/assets/fonts/sort.svg +0 -0
  186. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/assets/fonts/sort1.svg +0 -0
  187. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/assets/fonts/sort2.svg +0 -0
  188. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/assets/fonts/streamline.eot +0 -0
  189. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/assets/fonts/streamline.svg +0 -0
  190. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/assets/fonts/streamline.ttf +0 -0
  191. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/assets/fonts/streamline.woff +0 -0
  192. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/assets/group-by-89c6aaa756bc3548cc6ab3d2be4d2862.svg +0 -0
  193. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/assets/images/Favorites.mp4 +0 -0
  194. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/assets/images/Keystrokes.mp4 +0 -0
  195. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/assets/images/ProjectFiles.mp4 +0 -0
  196. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/assets/images/ReusableFrame.mp4 +0 -0
  197. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/assets/images/SidebarDB_Iinfo.png +0 -0
  198. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/assets/images/Stream.png +0 -0
  199. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/assets/images/aura-logo-inverted.svg +0 -0
  200. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/assets/images/aura-logo.svg +0 -0
  201. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/assets/images/books.png +0 -0
  202. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/assets/images/clusters.svg +0 -0
  203. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/assets/images/community.jpg +0 -0
  204. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/assets/images/device-icons/android-icon-144x144.png +0 -0
  205. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/assets/images/device-icons/android-icon-192x192.png +0 -0
  206. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/assets/images/device-icons/android-icon-36x36.png +0 -0
  207. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/assets/images/device-icons/android-icon-48x48.png +0 -0
  208. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/assets/images/device-icons/android-icon-72x72.png +0 -0
  209. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/assets/images/device-icons/android-icon-96x96.png +0 -0
  210. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/assets/images/device-icons/apple-icon-114x114.png +0 -0
  211. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/assets/images/device-icons/apple-icon-120x120.png +0 -0
  212. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/assets/images/device-icons/apple-icon-144x144.png +0 -0
  213. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/assets/images/device-icons/apple-icon-152x152.png +0 -0
  214. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/assets/images/device-icons/apple-icon-180x180.png +0 -0
  215. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/assets/images/device-icons/apple-icon-57x57.png +0 -0
  216. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/assets/images/device-icons/apple-icon-60x60.png +0 -0
  217. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/assets/images/device-icons/apple-icon-72x72.png +0 -0
  218. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/assets/images/device-icons/apple-icon-76x76.png +0 -0
  219. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/assets/images/device-icons/apple-icon-precomposed.png +0 -0
  220. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/assets/images/device-icons/apple-icon.png +0 -0
  221. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/assets/images/device-icons/browserconfig.xml +0 -0
  222. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/assets/images/device-icons/favicon-16x16.png +0 -0
  223. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/assets/images/device-icons/favicon-32x32.png +0 -0
  224. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/assets/images/device-icons/favicon-96x96.png +0 -0
  225. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/assets/images/device-icons/favicon.ico +0 -0
  226. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/assets/images/device-icons/manifest.json +0 -0
  227. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/assets/images/device-icons/ms-icon-144x144.png +0 -0
  228. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/assets/images/device-icons/ms-icon-150x150.png +0 -0
  229. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/assets/images/device-icons/ms-icon-310x310.png +0 -0
  230. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/assets/images/device-icons/ms-icon-70x70.png +0 -0
  231. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/assets/images/device-icons/neo4j-browser-canary.svg +0 -0
  232. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/assets/images/device-icons/neo4j-browser.svg +0 -0
  233. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/assets/images/labeled_node.png +0 -0
  234. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/assets/images/more_nodes.png +0 -0
  235. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/assets/images/neo4j-favicon.ico +0 -0
  236. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/assets/images/neo4j-logo-inverted.svg +0 -0
  237. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/assets/images/neo4j-logo.svg +0 -0
  238. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/assets/images/northwind/customer-orders.png +0 -0
  239. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/assets/images/northwind/order-graph.png +0 -0
  240. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/assets/images/northwind/product-category-supplier.png +0 -0
  241. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/assets/images/northwind/product-graph.png +0 -0
  242. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/assets/images/one_node.png +0 -0
  243. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/assets/images/query-plan-operator-cost.svg +0 -0
  244. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/assets/images/query-plan-operator-details.svg +0 -0
  245. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/assets/images/query-plan-operator-rows.svg +0 -0
  246. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/assets/images/query-plan.svg +0 -0
  247. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/assets/images/rel-props.png +0 -0
  248. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/assets/images/relationships.png +0 -0
  249. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/assets/images/screen_code_frame.png +0 -0
  250. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/assets/images/screen_cypher_warn.png +0 -0
  251. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/assets/images/screen_editor.png +0 -0
  252. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/assets/images/screen_sidebar.png +0 -0
  253. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/assets/images/screen_stream.png +0 -0
  254. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/assets/sort-8d6f482c21de572ceeb5ac93623e6c97.svg +0 -0
  255. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/assets/sort1-d2dc515571213fc0ca99b0341b88e413.svg +0 -0
  256. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/assets/sort2-31050964e7eb2042325f7bcbba3d58ad.svg +0 -0
  257. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/bolt-worker-dfa551eb0861cc080843.js +0 -0
  258. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/cypher-editor-b124e26129aa436b26fe.bundle.js +0 -0
  259. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/editor-455af92e7e1dc39fdbc8060f6680ab32.worker.js +0 -0
  260. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/index.html +0 -0
  261. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/manifest.json +0 -0
  262. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/preview/assets/CoseBilkentLayout.worker-FEt6e_rV.js +0 -0
  263. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/preview/assets/HierarchicalLayout.worker-O6WHYssL.js +0 -0
  264. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/preview/assets/asciidoc.8O6YIVRy.js +0 -0
  265. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/preview/assets/auto-track.BlKugDvg.js +0 -0
  266. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/preview/assets/bash.CLAyaf9k.js +0 -0
  267. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/preview/assets/c.l4fEI10z.js +0 -0
  268. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/preview/assets/connect-icon-Br2hQy_e.svg +0 -0
  269. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/preview/assets/csharp.ChqrQYCS.js +0 -0
  270. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/preview/assets/css-extras.Bi-4v17d.js +0 -0
  271. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/preview/assets/css.B1LHiudN.js +0 -0
  272. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/preview/assets/cypher-editor-auto-completions.gif +0 -0
  273. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/preview/assets/cypher-editor-inline-help.png +0 -0
  274. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/preview/assets/cypher-editor-linting.png +0 -0
  275. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/preview/assets/cypher-editor-syntax-highlighting.png +0 -0
  276. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/preview/assets/cypher-reference.gif +0 -0
  277. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/preview/assets/cypher.C3qdyJ5B.js +0 -0
  278. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/preview/assets/docker.CF7EZT1T.js +0 -0
  279. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/preview/assets/fira-code-400-regular-normal-BzypJxJk.woff2 +0 -0
  280. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/preview/assets/fira-code-500-medium-normal-CRWzqcWa.woff2 +0 -0
  281. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/preview/assets/fira-code-700-bold-normal-hUmNV4O0.woff2 +0 -0
  282. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/preview/assets/go.FsJyBHVG.js +0 -0
  283. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/preview/assets/graphql.BlTzkzAJ.js +0 -0
  284. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/preview/assets/history-quick-search.gif +0 -0
  285. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/preview/assets/index-CY0cZcsW.js +0 -0
  286. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/preview/assets/index-H7L207gH.css +0 -0
  287. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/preview/assets/index.BpRu7Js3.js +0 -0
  288. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/preview/assets/index.C74acnU7.js +0 -0
  289. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/preview/assets/index.CHatcJcU.js +0 -0
  290. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/preview/assets/index.D6ZMQedT.js +0 -0
  291. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/preview/assets/index.DPZla5MT.js +0 -0
  292. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/preview/assets/index.dzIUqrzq.js +0 -0
  293. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/preview/assets/index.leyiHvaQ.js +0 -0
  294. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/preview/assets/index.qJ6VE118.js +0 -0
  295. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/preview/assets/index.umd.B9yhfa5Y.js +0 -0
  296. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/preview/assets/is-plan-event-enabled.DeNtQvA5.js +0 -0
  297. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/preview/assets/java.BBXwBh9f.js +0 -0
  298. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/preview/assets/java.CQ1iJ0-D.js +0 -0
  299. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/preview/assets/javadoc.UnquSOIj.js +0 -0
  300. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/preview/assets/javascript.CYTqTa0W.js +0 -0
  301. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/preview/assets/json.BIkJg-Cj.js +0 -0
  302. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/preview/assets/jsx.Cy_hP1z6.js +0 -0
  303. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/preview/assets/kotlin.D_6l0VkM.js +0 -0
  304. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/preview/assets/lintWorker-QNEp56W3.js +0 -0
  305. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/preview/assets/logo-aura-white-DCfUnkCN.svg +0 -0
  306. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/preview/assets/movie-model.png +0 -0
  307. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/preview/assets/movies-active-B2SzHIc1.svg +0 -0
  308. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/preview/assets/neo4j-logo-active-CieUxroh.svg +0 -0
  309. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/preview/assets/patterned-banner-background-C_nO-Yn8.svg +0 -0
  310. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/preview/assets/php.BKb6XVba.js +0 -0
  311. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/preview/assets/plan-graph-worker-s17nF19Q.js +0 -0
  312. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/preview/assets/public-sans-300-light-normal-CG9e8kLa.woff2 +0 -0
  313. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/preview/assets/public-sans-400-regular-italic-D9FlViiB.woff2 +0 -0
  314. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/preview/assets/public-sans-400-regular-normal-D4F9yfFi.woff2 +0 -0
  315. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/preview/assets/public-sans-500-medium-normal-ChZcBEnJ.woff2 +0 -0
  316. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/preview/assets/public-sans-600-semi-bold-normal-Ck6TyfRI.woff2 +0 -0
  317. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/preview/assets/public-sans-700-bold-normal-CGjRhW-d.woff2 +0 -0
  318. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/preview/assets/python.tCcUC3U7.js +0 -0
  319. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/preview/assets/query-fundamentals-active-jvTJU1K2.svg +0 -0
  320. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/preview/assets/query.snake-frame.DmvXOQIM.js +0 -0
  321. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/preview/assets/regex.C_VuIVtC.js +0 -0
  322. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/preview/assets/rust.CtSATZMt.js +0 -0
  323. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/preview/assets/saved-cypher.gif +0 -0
  324. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/preview/assets/scalable-graph-visualization.gif +0 -0
  325. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/preview/assets/sql.CfOAbw6n.js +0 -0
  326. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/preview/assets/syne-neo-500-medium-normal-A5GXmYUf.woff2 +0 -0
  327. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/preview/assets/table-visualization.gif +0 -0
  328. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/preview/assets/typescript.3Tbm37mD.js +0 -0
  329. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/preview/assets/xml-doc.h79Tu9Aw.js +0 -0
  330. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/preview/assets/yaml.B-Jvd59g.js +0 -0
  331. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/preview/favicons/android-chrome-192x192.png +0 -0
  332. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/preview/favicons/apple-touch-icon.png +0 -0
  333. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/preview/favicons/favicon-16x16.png +0 -0
  334. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/preview/favicons/favicon-194x194.png +0 -0
  335. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/preview/favicons/favicon-32x32.png +0 -0
  336. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/preview/favicons/favicon.ico +0 -0
  337. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/preview/favicons/safari-pinned-tab.svg +0 -0
  338. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/preview/index.html +0 -0
  339. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/preview/manifest.json +0 -0
  340. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/ui-libs-b124e26129aa436b26fe.bundle.js +0 -0
  341. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/browser_static/vendor-b124e26129aa436b26fe.bundle.js +0 -0
  342. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/bulk_loader.py +0 -0
  343. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/capabilities.py +0 -0
  344. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/cli.py +0 -0
  345. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/cypher/__init__.py +0 -0
  346. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/cypher/algorithms/__init__.py +0 -0
  347. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/cypher/algorithms/paths.py +0 -0
  348. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/cypher/aql/__init__.py +0 -0
  349. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/cypher/aql/ast.py +0 -0
  350. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/cypher/aql/lexer.py +0 -0
  351. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/cypher/aql/parser.py +0 -0
  352. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/cypher/aql/translator.py +0 -0
  353. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/cypher/ast.py +0 -0
  354. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/cypher/lexer.py +0 -0
  355. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/cypher/parser.py +0 -0
  356. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/cypher_api.py +0 -0
  357. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/dbapi_utils.py +0 -0
  358. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/embedded.py +0 -0
  359. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/fhir_bridge.py +0 -0
  360. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/fusion.py +0 -0
  361. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/gql/__init__.py +0 -0
  362. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/gql/constants.py +0 -0
  363. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/gql/engine.py +0 -0
  364. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/gql/pooling.py +0 -0
  365. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/gql/resolvers.py +0 -0
  366. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/gql/schema.py +0 -0
  367. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/index_protocol.py +0 -0
  368. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/models.py +0 -0
  369. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/operators.py +0 -0
  370. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/py.typed +0 -0
  371. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/result.py +0 -0
  372. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/sdk.py +0 -0
  373. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/security.py +0 -0
  374. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/status.py +0 -0
  375. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/store_protocol.py +0 -0
  376. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/stores/__init__.py +0 -0
  377. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/stores/arno_bridge.py +0 -0
  378. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/stores/iris_sql_store.py +0 -0
  379. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/stores/lazy_kg.py +0 -0
  380. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/text_search.py +0 -0
  381. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/utils.py +0 -0
  382. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/iris_vector_graph/vector_utils.py +0 -0
  383. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/sql/fhir_bridges.sql +0 -0
  384. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/sql/fraud_sample_data.sql +0 -0
  385. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/sql/globals_schema.sql +0 -0
  386. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/sql/graph_path_globals.sql +0 -0
  387. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/sql/graph_walk_tvf.sql +0 -0
  388. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/sql/migrations/000_base_schema_iris.sql +0 -0
  389. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/sql/migrations/001_add_nodepk_table.sql +0 -0
  390. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/sql/migrations/001_rollback_nodepk.sql +0 -0
  391. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/sql/migrations/002_add_fk_constraints.sql +0 -0
  392. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/sql/operators.sql +0 -0
  393. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/sql/operators_fixed.sql +0 -0
  394. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/sql/procedures/kg_PageRank.sql +0 -0
  395. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/sql/rdf_reifications.sql +0 -0
  396. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/sql/schema.sql +0 -0
  397. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/TESTING.md +0 -0
  398. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/benchmark_parser.py +0 -0
  399. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/benchmarks/README.md +0 -0
  400. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/benchmarks/bench.py +0 -0
  401. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/benchmarks/bench_utils.py +0 -0
  402. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/benchmarks/benchmark_neo4j.py +0 -0
  403. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/benchmarks/bfs_benchmark.py +0 -0
  404. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/benchmarks/establish_baseline.py +0 -0
  405. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/benchmarks/graph_gen.py +0 -0
  406. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/benchmarks/ic2_profile.py +0 -0
  407. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/benchmarks/iris_baseline_run.py +0 -0
  408. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/benchmarks/iris_os_run.py +0 -0
  409. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/benchmarks/ldbc_full_loader.py +0 -0
  410. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/benchmarks/load_neo4j.py +0 -0
  411. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/benchmarks/synthetic_baseline.csv +0 -0
  412. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/conftest.py +0 -0
  413. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/contract/__init__.py +0 -0
  414. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/contract/test_cypher_api.py +0 -0
  415. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/contract/test_cypher_api_errors.py +0 -0
  416. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/contract/test_graphql_queries.py +0 -0
  417. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/contract/test_graphql_schema.py +0 -0
  418. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/contract/test_ppr_api.py +0 -0
  419. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/curl_suite.sh +0 -0
  420. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/e2e/__init__.py +0 -0
  421. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/e2e/conftest.py +0 -0
  422. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/e2e/fixtures/__init__.py +0 -0
  423. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/e2e/fixtures/centrality_graphs.py +0 -0
  424. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/e2e/fixtures/community_graphs.py +0 -0
  425. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/e2e/test_approx_count_distinct.py +0 -0
  426. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/e2e/test_aql_e2e.py +0 -0
  427. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/e2e/test_arno_bfs_global.py +0 -0
  428. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/e2e/test_arno_bfs_unified.py +0 -0
  429. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/e2e/test_biomedical_demo.py +0 -0
  430. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/e2e/test_biomedical_ui.py +0 -0
  431. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/e2e/test_centrality_e2e.py +0 -0
  432. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/e2e/test_communities_e2e.py +0 -0
  433. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/e2e/test_communities_perf.py +0 -0
  434. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/e2e/test_cypher_coerce_e2e.py +0 -0
  435. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/e2e/test_cypher_gaps_e2e.py +0 -0
  436. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/e2e/test_cypher_sprints_e2e.py +0 -0
  437. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/e2e/test_cypher_vector_search.py +0 -0
  438. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/e2e/test_cypher_vl_path_bfs.py +0 -0
  439. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/e2e/test_embed_queue_e2e.py +0 -0
  440. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/e2e/test_embedded_wgproto_e2e.py +0 -0
  441. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/e2e/test_execution_contexts.py +0 -0
  442. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/e2e/test_execution_contexts_new.py +0 -0
  443. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/e2e/test_fhir_bridges_e2e.py +0 -0
  444. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/e2e/test_fraud_demo.py +0 -0
  445. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/e2e/test_fraud_ui.py +0 -0
  446. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/e2e/test_gql_autogen_startup.py +0 -0
  447. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/e2e/test_gql_cypher_passthrough.py +0 -0
  448. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/e2e/test_gql_node_queries.py +0 -0
  449. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/e2e/test_gql_semantic_search.py +0 -0
  450. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/e2e/test_gql_traversal.py +0 -0
  451. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/e2e/test_graph_kernels_e2e.py +0 -0
  452. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/e2e/test_hla_kg_e2e.py +0 -0
  453. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/e2e/test_ic13_shortest_path.py +0 -0
  454. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/e2e/test_ic3_exact_count.py +0 -0
  455. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/e2e/test_index_protocol.py +0 -0
  456. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/e2e/test_introspection_api.py +0 -0
  457. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/e2e/test_ivf_insert.py +0 -0
  458. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/e2e/test_large_output_chunked.py +0 -0
  459. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/e2e/test_lazy_kg_e2e.py +0 -0
  460. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/e2e/test_lazy_node_resolution.py +0 -0
  461. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/e2e/test_multi_query_engine_platform.py +0 -0
  462. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/e2e/test_named_paths_e2e.py +0 -0
  463. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/e2e/test_nkg_index_e2e.py +0 -0
  464. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/e2e/test_operator_wiring_e2e.py +0 -0
  465. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/e2e/test_pattern_comprehension_reduce.py +0 -0
  466. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/e2e/test_plaid.py +0 -0
  467. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/e2e/test_plaid_search_e2e.py +0 -0
  468. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/e2e/test_ppr_cls_fast_path.py +0 -0
  469. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/e2e/test_ppr_guided_e2e.py +0 -0
  470. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/e2e/test_procedure_installation.py +0 -0
  471. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/e2e/test_reification_e2e.py +0 -0
  472. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/e2e/test_schema_procedures_e2e.py +0 -0
  473. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/e2e/test_store_injection_e2e.py +0 -0
  474. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/e2e/test_streaming_bfs.py +0 -0
  475. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/e2e/test_stress_api.py +0 -0
  476. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/e2e/test_stress_ingest.py +0 -0
  477. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/e2e/test_stress_multi_context.py +0 -0
  478. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/e2e/test_stress_search.py +0 -0
  479. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/e2e/test_stress_setup.py +0 -0
  480. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/e2e/test_stress_traversal.py +0 -0
  481. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/e2e/test_subgraph_e2e.py +0 -0
  482. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/e2e/test_subquery_call_e2e.py +0 -0
  483. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/e2e/test_temporal_store_e2e.py +0 -0
  484. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/e2e/test_untested_methods.py +0 -0
  485. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/e2e/test_vecindex_e2e.py +0 -0
  486. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/integration/__init__.py +0 -0
  487. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/integration/conftest.py +0 -0
  488. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/integration/gql/__init__.py +0 -0
  489. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/integration/gql/test_graphql_mutations.py +0 -0
  490. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/integration/gql/test_graphql_nested_queries.py +0 -0
  491. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/integration/gql/test_graphql_queries.py +0 -0
  492. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/integration/gql/test_graphql_vector_search.py +0 -0
  493. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/integration/test_bidirectional_ppr.py +0 -0
  494. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/integration/test_cls_layer.py +0 -0
  495. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/integration/test_cypher_advanced.py +0 -0
  496. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/integration/test_cypher_enhancements.py +0 -0
  497. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/integration/test_cypher_multi_type.py +0 -0
  498. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/integration/test_cypher_rd.py +0 -0
  499. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/integration/test_cypher_rel_vars.py +0 -0
  500. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/integration/test_cypher_single_type.py +0 -0
  501. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/integration/test_cypher_untyped.py +0 -0
  502. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/integration/test_cypher_vector_search.py +0 -0
  503. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/integration/test_embeddings_api.py +0 -0
  504. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/integration/test_fastapi_graphql.py +0 -0
  505. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/integration/test_fhir_bridges_integration.py +0 -0
  506. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/integration/test_named_paths_integration.py +0 -0
  507. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/integration/test_nodepk_advanced_benchmarks.py +0 -0
  508. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/integration/test_nodepk_constraints.py +0 -0
  509. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/integration/test_nodepk_graph_analytics.py +0 -0
  510. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/integration/test_nodepk_migration.py +0 -0
  511. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/integration/test_nodepk_performance.py +0 -0
  512. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/integration/test_nodepk_production_scale.py +0 -0
  513. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/integration/test_objectscript_classes.py +0 -0
  514. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/integration/test_pagerank_sql_optimization.py +0 -0
  515. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/integration/test_reification_integration.py +0 -0
  516. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/integration/test_schema_migration.py +0 -0
  517. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/integration/test_stored_procedure_install.py +0 -0
  518. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/integration/test_subquery_call_integration.py +0 -0
  519. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/perf/__init__.py +0 -0
  520. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/perf/test_leiden_four_way.py +0 -0
  521. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/performance/conftest.py +0 -0
  522. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/performance/scale_benchmark.py +0 -0
  523. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/performance/test_ppr_stress.py +0 -0
  524. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/performance/test_stress_v1_5.py +0 -0
  525. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/python/run_all_tests.py +0 -0
  526. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/python/test_iris_rest_api.py +0 -0
  527. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/python/test_networkx_loader.py +0 -0
  528. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/python/test_performance_benchmarks.py +0 -0
  529. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/python/test_pyops_vector_conversion.py +0 -0
  530. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/python/test_python_operators.py +0 -0
  531. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/python/test_python_sdk.py +0 -0
  532. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/python/test_schema_validation.py +0 -0
  533. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/python/test_sql_queries.py +0 -0
  534. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/python/test_vector_functions.py +0 -0
  535. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/unit/cypher/__init__.py +0 -0
  536. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/unit/cypher/test_lexer.py +0 -0
  537. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/unit/cypher/test_lexer_advanced.py +0 -0
  538. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/unit/cypher/test_parser.py +0 -0
  539. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/unit/cypher/test_parser_advanced.py +0 -0
  540. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/unit/test_aql_lexer.py +0 -0
  541. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/unit/test_aql_parser.py +0 -0
  542. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/unit/test_aql_translator.py +0 -0
  543. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/unit/test_arno_bridge.py +0 -0
  544. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/unit/test_batch_mutations.py +0 -0
  545. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/unit/test_bfs_arno.py +0 -0
  546. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/unit/test_bm25_index.py +0 -0
  547. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/unit/test_bolt_server.py +0 -0
  548. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/unit/test_centrality_translator.py +0 -0
  549. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/unit/test_centrality_unit.py +0 -0
  550. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/unit/test_cls_deployment.py +0 -0
  551. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/unit/test_communities_translator.py +0 -0
  552. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/unit/test_communities_unit.py +0 -0
  553. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/unit/test_coverage_boost.py +0 -0
  554. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/unit/test_cypher_benchmark.py +0 -0
  555. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/unit/test_cypher_benchmark_scale.py +0 -0
  556. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/unit/test_cypher_case_when.py +0 -0
  557. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/unit/test_cypher_e2e_new_features.py +0 -0
  558. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/unit/test_cypher_functions.py +0 -0
  559. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/unit/test_cypher_parser.py +0 -0
  560. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/unit/test_cypher_posos_bugs.py +0 -0
  561. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/unit/test_cypher_procedures.py +0 -0
  562. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/unit/test_cypher_translator.py +0 -0
  563. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/unit/test_cypher_union_exists.py +0 -0
  564. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/unit/test_cypher_var_length.py +0 -0
  565. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/unit/test_cypher_vector_search.py +0 -0
  566. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/unit/test_edge_embeddings.py +0 -0
  567. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/unit/test_edgeprop_ndjson.py +0 -0
  568. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/unit/test_embed_nodes_params.py +0 -0
  569. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/unit/test_embedded.py +0 -0
  570. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/unit/test_embedded_wgproto.py +0 -0
  571. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/unit/test_engine_deep.py +0 -0
  572. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/unit/test_engine_dimension_fix.py +0 -0
  573. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/unit/test_engine_embeddings.py +0 -0
  574. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/unit/test_engine_mocked.py +0 -0
  575. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/unit/test_engine_status.py +0 -0
  576. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/unit/test_fhir_bridge.py +0 -0
  577. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/unit/test_fhir_bridges.py +0 -0
  578. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/unit/test_get_nodes.py +0 -0
  579. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/unit/test_graph_kernels.py +0 -0
  580. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/unit/test_graphql_dataloader.py +0 -0
  581. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/unit/test_index_handle.py +0 -0
  582. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/unit/test_index_protocol.py +0 -0
  583. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/unit/test_ingest_formats.py +0 -0
  584. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/unit/test_introspection_api.py +0 -0
  585. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/unit/test_ivf_index.py +0 -0
  586. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/unit/test_ivgresult.py +0 -0
  587. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/unit/test_lazy_kg.py +0 -0
  588. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/unit/test_module_coverage.py +0 -0
  589. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/unit/test_named_graphs.py +0 -0
  590. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/unit/test_named_paths.py +0 -0
  591. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/unit/test_operators_coverage.py +0 -0
  592. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/unit/test_operators_wiring.py +0 -0
  593. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/unit/test_plaid_search.py +0 -0
  594. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/unit/test_ppr_guided_subgraph.py +0 -0
  595. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/unit/test_reification.py +0 -0
  596. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/unit/test_retrieve_and_vector_distance.py +0 -0
  597. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/unit/test_schema_init.py +0 -0
  598. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/unit/test_schema_procedures.py +0 -0
  599. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/unit/test_shortest_path.py +0 -0
  600. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/unit/test_snapshot.py +0 -0
  601. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/unit/test_sql_splitter.py +0 -0
  602. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/unit/test_sql_table_bridge.py +0 -0
  603. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/unit/test_store_protocol.py +0 -0
  604. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/unit/test_subgraph.py +0 -0
  605. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/unit/test_subquery_call.py +0 -0
  606. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/unit/test_supporting_modules.py +0 -0
  607. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/unit/test_temporal_cypher.py +0 -0
  608. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/unit/test_temporal_edges.py +0 -0
  609. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/unit/test_translator_coverage.py +0 -0
  610. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/unit/test_unified_edge_store.py +0 -0
  611. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/unit/test_validation.py +0 -0
  612. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/unit/test_vector_search_routing.py +0 -0
  613. {iris_vector_graph-1.99.1 → iris_vector_graph-1.99.2}/tests/unit/test_weighted_shortest_path.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: iris-vector-graph
3
- Version: 1.99.1
3
+ Version: 1.99.2
4
4
  Summary: Transactional Graph + Vector retrieval system for InterSystems IRIS with hybrid search, openCypher, and GraphQL APIs
5
5
  Project-URL: Homepage, https://github.com/intersystems-community/iris-vector-graph
6
6
  Project-URL: Documentation, https://github.com/intersystems-community/iris-vector-graph/tree/main/docs
@@ -816,11 +816,10 @@ conditions = tool("patient-123") # → {"conditions": [...], "error": None}
816
816
 
817
817
  ## Changelog
818
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.
819
+ ### v1.99.2 (2026-05-29)
820
+ - **perf(spec-165)**: `BuildNKGComplete` collapses 7 Python→IRIS round-trips in `engine.rebuild_nkg()` to 1. New `Graph.KG.Traversal.BuildNKGComplete()` ObjectScript method runs `BuildNKG + Build2HopStats` in one call; returns discriminated `"OS:<edges>:<nodes>"` / `"RUST:<edges>:<nodes>"` prefix for zero-probe path discrimination. `engine.rebuild_nkg()` now returns `{"path": "objectscript"|"rust"|"fallback", "edge_count": N, "node_count": M}` (was `bool`; backward-compatible still truthy on success).
821
+ - **fix(spec-165)**: `Graph.KG.GraphIndex.EmptyHLL` — applied to `main` branch; `..EmptyHLL()` → `##class(Graph.KG.GraphIndex).EmptyHLL()` prevents `<No such method>` compile error on `Graph.KG.Edge.cls` in fresh containers. (Previously only on the `164-seed-local-khop-fast-path` branch.)
822
+ - **fix(spec-165)**: `Graph.KG.Traversal.BuildNKG` and `Build2HopExactStats` added `##class(Graph.KG.NKGAccel).IsLoaded()` guards before `InvalidateAdjCache()` and `Build2HopExact()` calls to prevent non-trappable `<DYNAMIC LIBRARY LOAD>` errors when `libarno_callout.so` is absent.
824
823
 
825
824
 
826
825
  - **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):
@@ -733,11 +733,10 @@ conditions = tool("patient-123") # → {"conditions": [...], "error": None}
733
733
 
734
734
  ## Changelog
735
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.
736
+ ### v1.99.2 (2026-05-29)
737
+ - **perf(spec-165)**: `BuildNKGComplete` collapses 7 Python→IRIS round-trips in `engine.rebuild_nkg()` to 1. New `Graph.KG.Traversal.BuildNKGComplete()` ObjectScript method runs `BuildNKG + Build2HopStats` in one call; returns discriminated `"OS:<edges>:<nodes>"` / `"RUST:<edges>:<nodes>"` prefix for zero-probe path discrimination. `engine.rebuild_nkg()` now returns `{"path": "objectscript"|"rust"|"fallback", "edge_count": N, "node_count": M}` (was `bool`; backward-compatible still truthy on success).
738
+ - **fix(spec-165)**: `Graph.KG.GraphIndex.EmptyHLL` — applied to `main` branch; `..EmptyHLL()` → `##class(Graph.KG.GraphIndex).EmptyHLL()` prevents `<No such method>` compile error on `Graph.KG.Edge.cls` in fresh containers. (Previously only on the `164-seed-local-khop-fast-path` branch.)
739
+ - **fix(spec-165)**: `Graph.KG.Traversal.BuildNKG` and `Build2HopExactStats` added `##class(Graph.KG.NKGAccel).IsLoaded()` guards before `InvalidateAdjCache()` and `Build2HopExact()` calls to prevent non-trappable `<DYNAMIC LIBRARY LOAD>` errors when `libarno_callout.so` is absent.
741
740
 
742
741
 
743
742
  - **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):
@@ -1071,225 +1071,4 @@ 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
-
1295
1074
  }
@@ -83,7 +83,7 @@ ClassMethod BuildNKG() As %Status
83
83
  // Kill ^NKG resets the version to 0; $Increment makes it 1.
84
84
  // If the stale cache also has version 1, CacheNKGAdj sees cachedVer==currentVer
85
85
  // and skips the rebuild, leaving Arno BFS using data from the previous graph.
86
- Try { Do ##class(Graph.KG.NKGAccel).InvalidateAdjCache() } Catch {}
86
+ Try { If ##class(Graph.KG.NKGAccel).IsLoaded() { Do ##class(Graph.KG.NKGAccel).InvalidateAdjCache() } } Catch {}
87
87
  Kill ^NKG
88
88
  Do ##class(Graph.KG.GraphIndex).InitStructuralLabels()
89
89
 
@@ -116,12 +116,34 @@ ClassMethod BuildNKG() As %Status
116
116
  Set ^NKG("$meta", "edgeCount") = edgeCount
117
117
  Set tmp = $Increment(^NKG("$meta", "version"))
118
118
 
119
- Do ..Build2HopStats()
120
- Do ..Build2HopExactStats()
119
+ Do ..Build2HopStats()
120
+ Do ..Build2HopExactStats()
121
121
 
122
- Return $$$OK
122
+ Return $$$OK
123
123
  }
124
124
 
125
+ /// Spec 165 (FR-165-001..004): Batch all 5 NKG-rebuild steps into 1 ObjectScript call,
126
+ /// eliminating 7 Python→IRIS round-trips that engine.rebuild_nkg() previously made.
127
+ ///
128
+ /// Algorithm:
129
+ /// 1. Try arno Rust kg_nkg_build kernel via $ZF(-5) — fastest path
130
+ /// 2. Fallback: ..BuildNKG() (ObjectScript $Order walk over ^KG)
131
+ /// 3. Always: Build2HopStats + Build2HopExactStats + InvalidateAdjCache
132
+ ///
133
+ /// Returns: "RUST:<edgeCount>:<nodeCount>" | "OS:<edgeCount>:<nodeCount>" | "ERROR:<msg>"
134
+ /// Python caller parses prefix to set _arno_available without extra round-trip.
135
+ ClassMethod BuildNKGComplete(libPath As %String = "/usr/irissys/mgr/libarno_callout.so") As %String
136
+ {
137
+ Do ..BuildNKG()
138
+ Do ..Build2HopStats()
139
+ Set ec = $Get(^NKG("$meta", "edgeCount"), 0)
140
+ Set nc = 0, nid = $Order(^NKG("$NI", ""))
141
+ While nid '= "" { Set nc = nc + 1, nid = $Order(^NKG("$NI", nid)) }
142
+ Set ^NKG("$meta", "nodeCount") = nc
143
+ Quit "OS:"_ec_":"_nc
144
+ }
145
+
146
+
125
147
  ClassMethod BackfillDegp() As %Integer
126
148
  {
127
149
  Kill ^KG("deg")
@@ -1027,13 +1049,6 @@ ClassMethod KHopCount(srcId As %String, pred As %String = "") As %Integer
1027
1049
 
1028
1050
  /// Returns 1-hop neighbor IDs as a newline-delimited string — no JSON overhead.
1029
1051
  /// ~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.
1037
1052
  ClassMethod KHopNeighborIds(srcId As %String, pred As %String = "") As %String
1038
1053
  {
1039
1054
  Set result = ""
@@ -1132,9 +1147,6 @@ ClassMethod KHop2Count(srcId As %String, pred As %String = "") As %Integer
1132
1147
 
1133
1148
  /// Returns 2-hop distinct neighbor IDs as newline-delimited string.
1134
1149
  /// 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.
1138
1150
  ClassMethod KHop2NeighborIds(srcId As %String, pred As %String = "", maxResults As %Integer = 0) As %String
1139
1151
  {
1140
1152
  Kill ^||kh2s, ^||kh2all
@@ -1235,7 +1247,7 @@ ClassMethod KHop2CountExact(srcId As %String, pred As %String = "") As %Integer
1235
1247
  ClassMethod Build2HopExactStats() As %Integer
1236
1248
  {
1237
1249
  Kill ^KG("deg2p_exact")
1238
- If ##class(Graph.KG.NKGAccel).Build2HopExact() {
1250
+ If ##class(Graph.KG.NKGAccel).IsLoaded() && ##class(Graph.KG.NKGAccel).Build2HopExact() {
1239
1251
  Set n = ""
1240
1252
  Set cnt = 0
1241
1253
  For {
@@ -44,8 +44,6 @@ COMMUNITY_ALLOWED_KEYS: Dict[str, set] = {
44
44
  "ivg.kcore": {"topK"},
45
45
  }
46
46
 
47
- KHOP_SEEDLOCAL_ALLOWED_KEYS: set = {"seed", "hops", "predicate", "maxResults"}
48
-
49
47
 
50
48
  def _validate_centrality_proc_map(proc_name: str, map_keys) -> None:
51
49
  """Reject unknown map-parameter keys for centrality procedures.
@@ -345,11 +343,9 @@ def translate_procedure_call(
345
343
  _translate_scc(proc, context)
346
344
  elif name == "ivg.kcore":
347
345
  _translate_kcore(proc, context)
348
- elif name == "ivg.khopSeedLocal":
349
- _translate_khop_seedlocal(proc, context)
350
346
  else:
351
347
  raise ValueError(
352
- f"Unknown procedure: {name!r}. Supported: ivg.retrieve, ivg.vector.search, ivg.neighbors, ivg.ppr, ivg.bm25.search, ivg.ivf.search, ivg.shortestPath.weighted, ivg.degreeCentrality, ivg.betweenness, ivg.closeness, ivg.eigenvector, ivg.leiden, ivg.triangleCount, ivg.scc, ivg.kcore, ivg.khopSeedLocal"
348
+ f"Unknown procedure: {name!r}. Supported: ivg.retrieve, ivg.vector.search, ivg.neighbors, ivg.ppr, ivg.bm25.search, ivg.ivf.search, ivg.shortestPath.weighted, ivg.degreeCentrality, ivg.betweenness, ivg.closeness, ivg.eigenvector, ivg.leiden, ivg.triangleCount, ivg.scc, ivg.kcore"
353
349
  )
354
350
 
355
351
 
@@ -3903,53 +3899,3 @@ def _translate_kcore(proc, context) -> None:
3903
3899
  context.variable_aliases[item] = "KCore"
3904
3900
  if "coreness" in proc.yield_items:
3905
3901
  context.scalar_variables.add("coreness")
3906
-
3907
-
3908
- def _validate_khop_seedlocal_proc_map(proc_name: str, map_keys) -> None:
3909
- """Reject unknown map-parameter keys for ivg.khopSeedLocal (Spec 164 FR-164-010 / round-2 Q4 / FR-015 precedent)."""
3910
- unknown = set(map_keys) - KHOP_SEEDLOCAL_ALLOWED_KEYS
3911
- if unknown:
3912
- raise ValueError(
3913
- f"Unknown parameters for {proc_name}: {sorted(unknown)}. "
3914
- f"Allowed: {sorted(KHOP_SEEDLOCAL_ALLOWED_KEYS)}"
3915
- )
3916
-
3917
-
3918
- def _translate_khop_seedlocal(proc, context) -> None:
3919
- """Spec 164 FR-164-010 — Cypher → SQL CTE for CALL ivg.khopSeedLocal({...}).
3920
-
3921
- Xfail-marked at e2e layer pending Bug S: the SQL function kg_KHopSeedLocal
3922
- calls ##class(Graph.KG.NKGAccel) which fails <CLASS DOES NOT EXIST> from
3923
- external SQL bindings. Python API path works. See ENGINEERING_DEBT.md Bug S.
3924
- """
3925
- opts = proc.options or {}
3926
- _validate_khop_seedlocal_proc_map("ivg.khopSeedLocal", opts.keys())
3927
-
3928
- def _val(key, default):
3929
- v = opts.get(key, default)
3930
- if hasattr(v, "value"):
3931
- return v.value
3932
- return v
3933
-
3934
- seed = _val("seed", None)
3935
- hops = int(_val("hops", 1))
3936
- predicate = str(_val("predicate", ""))
3937
- max_results = int(_val("maxResults", 10000))
3938
-
3939
- fn = f"{_schema_prefix}.kg_KHopSeedLocal" if _schema_prefix else "kg_KHopSeedLocal"
3940
- cte_sql = (
3941
- f"SELECT j.node_id AS node, j.hops\n"
3942
- f"FROM JSON_TABLE(\n"
3943
- f" {fn}(?, ?, ?, ?),\n"
3944
- f" '$[*]' COLUMNS(\n"
3945
- f" node_id VARCHAR(256) PATH '$.node_id',\n"
3946
- f" hops INTEGER PATH '$.hops'\n"
3947
- f" )\n"
3948
- f") j"
3949
- )
3950
- context.all_stage_params.extend([seed, hops, predicate, max_results])
3951
- context.stages.insert(0, f"KHopSeedLocal AS (\n{cte_sql}\n)")
3952
- for item in proc.yield_items:
3953
- context.variable_aliases[item] = "KHopSeedLocal"
3954
- if "hops" in proc.yield_items:
3955
- context.scalar_variables.add("hops")
@@ -3296,7 +3296,74 @@ class IRISGraphEngine:
3296
3296
  logger.warning("rebuild_kg failed: %s", e)
3297
3297
  return False
3298
3298
 
3299
- def rebuild_nkg(self) -> bool:
3299
+ def rebuild_nkg(self) -> dict:
3300
+ """Rebuild `^NKG` integer index from `^KG` adjacency.
3301
+
3302
+ Spec 165: dispatches to `BuildNKGComplete` (1 IRIS round-trip),
3303
+ replacing the legacy 5-call sequence.
3304
+ Returns {"path": "rust"|"objectscript"|"fallback", "edge_count": N, "node_count": M}.
3305
+ Backward-compatible: return value is truthy on success (was `True`/`False`).
3306
+ """
3307
+ try:
3308
+ iris_obj = self._iris_obj()
3309
+ raw = str(iris_obj.classMethodValue(
3310
+ "Graph.KG.Traversal", "BuildNKGComplete",
3311
+ os.environ.get("IVG_ARNO_LIB", "/usr/irissys/mgr/libarno_callout.so"),
3312
+ ))
3313
+ if raw.startswith("RUST:"):
3314
+ parts = raw.split(":")
3315
+ self._arno_available = True
3316
+ self._nkg_dirty = False
3317
+ return {"path": "rust", "edge_count": int(parts[1]), "node_count": int(parts[2])}
3318
+ elif raw.startswith("OS:"):
3319
+ parts = raw.split(":")
3320
+ self._arno_available = False
3321
+ self._nkg_dirty = False
3322
+ try:
3323
+ iris_obj.classMethodValue("Graph.KG.Traversal", "Build2HopExactStats")
3324
+ except Exception:
3325
+ pass
3326
+ try:
3327
+ iris_obj.classMethodVoid("Graph.KG.NKGAccel", "InvalidateAdjCache")
3328
+ except Exception:
3329
+ pass
3330
+ return {"path": "objectscript", "edge_count": int(parts[1]), "node_count": int(parts[2])}
3331
+ except Exception as e:
3332
+ logger.warning("BuildNKGComplete failed, falling back to legacy sequence: %s", e)
3333
+
3334
+ try:
3335
+ iris_obj = self._iris_obj()
3336
+ rust_succeeded = False
3337
+ if self._detect_arno() and self._arno_capabilities.get("rust_callout"):
3338
+ try:
3339
+ import json as _json
3340
+ raw = str(iris_obj.classMethodValue("Graph.KG.NKGAccel", "BuildNKGRust"))
3341
+ result = _json.loads(raw)
3342
+ if "error" not in result:
3343
+ logger.info("^NKG rebuilt via Rust: %s", result)
3344
+ rust_succeeded = True
3345
+ else:
3346
+ logger.warning("BuildNKGRust returned error (%s), falling back to ObjectScript", result["error"])
3347
+ except Exception as rust_exc:
3348
+ logger.warning("BuildNKGRust raised (%s), falling back to ObjectScript", rust_exc)
3349
+ if not rust_succeeded:
3350
+ iris_obj.classMethodVoid("Graph.KG.Traversal", "BuildNKG")
3351
+ iris_obj.classMethodValue("Graph.KG.Traversal", "Build2HopStats")
3352
+ try:
3353
+ iris_obj.classMethodValue("Graph.KG.Traversal", "Build2HopExactStats")
3354
+ except Exception:
3355
+ pass
3356
+ try:
3357
+ iris_obj.classMethodVoid("Graph.KG.NKGAccel", "InvalidateAdjCache")
3358
+ except Exception:
3359
+ pass
3360
+ self._nkg_dirty = False
3361
+ return {"path": "fallback", "edge_count": 0, "node_count": 0}
3362
+ except Exception as e:
3363
+ logger.warning("rebuild_nkg failed: %s", e)
3364
+ self._nkg_dirty = False
3365
+ return {"path": "fallback", "edge_count": 0, "node_count": 0}
3366
+
3300
3367
  try:
3301
3368
  iris_obj = self._iris_obj()
3302
3369
  rust_succeeded = False
@@ -3321,10 +3388,11 @@ class IRISGraphEngine:
3321
3388
  except Exception:
3322
3389
  pass
3323
3390
  self._nkg_dirty = False
3324
- return True
3391
+ return {"path": "fallback", "edge_count": 0, "node_count": 0}
3325
3392
  except Exception as e:
3326
3393
  logger.warning("rebuild_nkg failed: %s", e)
3327
- return False
3394
+ self._nkg_dirty = False
3395
+ return {"path": "fallback", "edge_count": 0, "node_count": 0}
3328
3396
 
3329
3397
  def backfill_degp(self) -> int:
3330
3398
  try:
@@ -5990,20 +6058,7 @@ class IRISGraphEngine:
5990
6058
  for i in range(1, n + 1)
5991
6059
  )
5992
6060
 
5993
- def khop(self, seed: str, hops: int = 2, max_nodes: int = 500, predicate: str = "") -> dict:
5994
- """K-hop traversal with auto-routing (spec 164).
5995
-
5996
- For `hops <= IVG_KHOP_SEEDLOCAL_MAX_HOPS` (default 2), routes to the
5997
- seed-local fast path (`engine.khop_seedlocal`). For larger `hops`,
5998
- falls through to the existing Rust/ObjectScript paths.
5999
- """
6000
- max_seedlocal = int(os.environ.get("IVG_KHOP_SEEDLOCAL_MAX_HOPS", "2"))
6001
- if hops <= max_seedlocal:
6002
- try:
6003
- return self.khop_seedlocal(seed, hops, predicate, max_nodes)
6004
- except Exception as e:
6005
- logger.warning(f"khop seedlocal failed, falling back to legacy path: {e}")
6006
-
6061
+ def khop(self, seed: str, hops: int = 2, max_nodes: int = 500) -> dict:
6007
6062
  if self._detect_arno() and "khop" in self._arno_capabilities.get(
6008
6063
  "algorithms", []
6009
6064
  ):
@@ -6016,81 +6071,6 @@ class IRISGraphEngine:
6016
6071
  logger.warning(f"Arno khop error: {parsed['error']}")
6017
6072
  return self._khop_fallback(seed, hops, max_nodes)
6018
6073
 
6019
- def khop_seedlocal(self, seed: str, hops: int = 1, predicate: str = "",
6020
- max_results: int = 10000) -> dict:
6021
- """Seed-local k-hop via `^NKG` integer index (spec 164, FR-164-001 / FR-164-007).
6022
-
6023
- Walks `^NKG(-1, sIdx, *, *)` directly via $Order, bypassing the Rust
6024
- `KHopNeighbors` whole-graph serialization tax. Returns
6025
- `{"path": "seedlocal" | "kg_fallback", "rows": [{"node_id":..., "hops":...}, ...]}`
6026
- ordered hops-ascending then `^NKG` subscript order within each hop
6027
- (round-1 Q1 BFS layer order).
6028
-
6029
- Path discrimination (FR-164-008 round-3): we probe `^NKG("$NI", seed)`
6030
- via Native API (~5µs) BEFORE invoking the ClassMethod; if empty,
6031
- path="kg_fallback". Otherwise path="seedlocal".
6032
-
6033
- Multi-predicate dedup (round-1 Q4): `predicate=""` walks all predicates
6034
- with per-node dedup via process-private `^||khop_seen(oIdx)`; first
6035
- predicate-subscript order wins.
6036
-
6037
- Edge cases (FR-164-004):
6038
- - hops=0 → empty rows
6039
- - missing seed → empty rows + path="kg_fallback"
6040
- - max_results=0 → unlimited
6041
-
6042
- Performance (NFR-164-001 / NFR-164-002 hard gates):
6043
- - 1-hop median ≤ 150µs on ER(50K, ~145K edges)
6044
- - 2-hop median ≤ 300µs on same fixture
6045
- """
6046
- max_seedlocal = int(os.environ.get("IVG_KHOP_SEEDLOCAL_MAX_HOPS", "2"))
6047
- if hops < 0 or hops > max_seedlocal:
6048
- raise ValueError(
6049
- f"khop_seedlocal hops={hops} out of range [0, {max_seedlocal}]; "
6050
- f"override via IVG_KHOP_SEEDLOCAL_MAX_HOPS"
6051
- )
6052
-
6053
- try:
6054
- iris_obj = self._iris_obj()
6055
- except Exception:
6056
- return {"path": "seedlocal", "rows": []}
6057
-
6058
- try:
6059
- raw = str(iris_obj.classMethodValue(
6060
- "Graph.KG.NKGAccel", "KHopNeighborsSeedLocal",
6061
- seed, hops, predicate, max_results,
6062
- ))
6063
- except Exception as e:
6064
- logger.warning(f"KHopNeighborsSeedLocal raised: {e}")
6065
- return {"path": "seedlocal", "rows": []}
6066
-
6067
- if raw.startswith("KGFALLBACK:"):
6068
- path = "kg_fallback"
6069
- json_part = raw[len("KGFALLBACK:"):]
6070
- from iris_vector_graph.stores import _khop_state
6071
- if not _khop_state._khop_nkg_warning_emitted:
6072
- import warnings as _warnings
6073
- _warnings.warn(
6074
- f"^NKG missing for seed {seed!r}; using ^KG walk fallback. "
6075
- f"Call engine.rebuild_nkg() to enable the fast path. "
6076
- f"This warning is emitted once per Python process.",
6077
- RuntimeWarning,
6078
- stacklevel=2,
6079
- )
6080
- _khop_state._khop_nkg_warning_emitted = True
6081
- elif raw.startswith("SEEDLOCAL:"):
6082
- path = "seedlocal"
6083
- json_part = raw[len("SEEDLOCAL:"):]
6084
- else:
6085
- path = "seedlocal"
6086
- json_part = raw
6087
-
6088
- try:
6089
- rows = json.loads(json_part) if json_part else []
6090
- except json.JSONDecodeError:
6091
- rows = []
6092
- return {"path": path, "rows": rows}
6093
-
6094
6074
  def _khop_fallback(self, seed: str, hops: int, max_nodes: int) -> dict:
6095
6075
  if self.capabilities.objectscript_deployed:
6096
6076
  try:
@@ -798,20 +798,6 @@ LANGUAGE OBJECTSCRIPT
798
798
  set result = ##class(Graph.KG.Communities).KCoreJson(topK)
799
799
  quit result
800
800
  }}
801
- """,
802
- f"""
803
- CREATE OR REPLACE FUNCTION {table_schema}.kg_KHopSeedLocal(
804
- seedId VARCHAR(256),
805
- hops INT DEFAULT 1,
806
- predicate VARCHAR(128) DEFAULT '',
807
- maxResults INT DEFAULT 10000
808
- )
809
- RETURNS VARCHAR(32000)
810
- LANGUAGE OBJECTSCRIPT
811
- {{
812
- set result = ##class(Graph.KG.NKGAccel).KHopNeighborsSeedLocal(seedId, hops, predicate, maxResults)
813
- quit result
814
- }}
815
801
  """,
816
802
  ]
817
803
 
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "iris-vector-graph"
7
- version = "1.99.1"
7
+ version = "1.99.2"
8
8
  description = "Transactional Graph + Vector retrieval system for InterSystems IRIS with hybrid search, openCypher, and GraphQL APIs"
9
9
  readme = "README.md"
10
10
  license = "MIT"