trustgraph-flow 2.10.2__tar.gz → 2.10.4__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 (415) hide show
  1. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/PKG-INFO +1 -1
  2. trustgraph_flow-2.10.4/trustgraph/flow_version.py +1 -0
  3. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/gateway/auth.py +7 -11
  4. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/gateway/dispatch/mux.py +9 -0
  5. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/gateway/endpoint/registry_endpoint.py +6 -0
  6. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/gateway/endpoint/variable_endpoint.py +2 -0
  7. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/gateway/registry.py +9 -0
  8. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/iam/service/iam.py +71 -0
  9. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/retrieval/graph_rag/graph_rag.py +204 -39
  10. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/retrieval/graph_rag/rag.py +18 -0
  11. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph_flow.egg-info/PKG-INFO +1 -1
  12. trustgraph_flow-2.10.2/trustgraph/flow_version.py +0 -1
  13. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/README.md +0 -0
  14. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/pyproject.toml +0 -0
  15. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/setup.cfg +0 -0
  16. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/__init__.py +0 -0
  17. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/agent/__init__.py +0 -0
  18. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/agent/mcp_tool/__init__.py +0 -0
  19. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/agent/mcp_tool/__main__.py +0 -0
  20. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/agent/mcp_tool/service.py +0 -0
  21. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/agent/orchestrator/__init__.py +0 -0
  22. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/agent/orchestrator/__main__.py +0 -0
  23. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/agent/orchestrator/aggregator.py +0 -0
  24. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/agent/orchestrator/meta_router.py +0 -0
  25. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/agent/orchestrator/pattern_base.py +0 -0
  26. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/agent/orchestrator/plan_pattern.py +0 -0
  27. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/agent/orchestrator/react_pattern.py +0 -0
  28. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/agent/orchestrator/service.py +0 -0
  29. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/agent/orchestrator/supervisor_pattern.py +0 -0
  30. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/agent/react/__init__.py +0 -0
  31. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/agent/react/__main__.py +0 -0
  32. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/agent/react/agent_manager.py +0 -0
  33. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/agent/react/service.py +0 -0
  34. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/agent/react/streaming_parser.py +0 -0
  35. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/agent/react/tools.py +0 -0
  36. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/agent/react/types.py +0 -0
  37. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/agent/tool_filter.py +0 -0
  38. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/bootstrap/__init__.py +0 -0
  39. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/bootstrap/base.py +0 -0
  40. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/bootstrap/bootstrapper/__init__.py +0 -0
  41. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/bootstrap/bootstrapper/__main__.py +0 -0
  42. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/bootstrap/bootstrapper/service.py +0 -0
  43. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/bootstrap/initialisers/__init__.py +0 -0
  44. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/bootstrap/initialisers/default_flow_start.py +0 -0
  45. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/bootstrap/initialisers/pulsar_topology.py +0 -0
  46. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/bootstrap/initialisers/template_seed.py +0 -0
  47. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/bootstrap/initialisers/workspace_init.py +0 -0
  48. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/chunking/__init__.py +0 -0
  49. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/chunking/recursive/__init__.py +0 -0
  50. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/chunking/recursive/__main__.py +0 -0
  51. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/chunking/recursive/chunker.py +0 -0
  52. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/chunking/token/__init__.py +0 -0
  53. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/chunking/token/__main__.py +0 -0
  54. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/chunking/token/chunker.py +0 -0
  55. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/config/service/__init__.py +0 -0
  56. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/config/service/__main__.py +0 -0
  57. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/config/service/config.py +0 -0
  58. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/config/service/service.py +0 -0
  59. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/cores/__init__.py +0 -0
  60. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/cores/__main__.py +0 -0
  61. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/cores/knowledge.py +0 -0
  62. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/cores/service.py +0 -0
  63. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/decoding/__init__.py +0 -0
  64. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/decoding/mistral_ocr/__init__.py +0 -0
  65. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/decoding/mistral_ocr/__main__.py +0 -0
  66. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/decoding/mistral_ocr/processor.py +0 -0
  67. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/decoding/pdf/__init__.py +0 -0
  68. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/decoding/pdf/__main__.py +0 -0
  69. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/decoding/pdf/pdf_decoder.py +0 -0
  70. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/direct/__init__.py +0 -0
  71. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/direct/cassandra_kg.py +0 -0
  72. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/direct/milvus_doc_embeddings.py +0 -0
  73. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/direct/milvus_graph_embeddings.py +0 -0
  74. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/embeddings/__init__.py +0 -0
  75. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/embeddings/document_embeddings/__init__.py +0 -0
  76. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/embeddings/document_embeddings/__main__.py +0 -0
  77. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/embeddings/document_embeddings/embeddings.py +0 -0
  78. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/embeddings/fastembed/__init__.py +0 -0
  79. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/embeddings/fastembed/__main__.py +0 -0
  80. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/embeddings/fastembed/processor.py +0 -0
  81. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/embeddings/graph_embeddings/__init__.py +0 -0
  82. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/embeddings/graph_embeddings/__main__.py +0 -0
  83. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/embeddings/graph_embeddings/embeddings.py +0 -0
  84. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/embeddings/ollama/__init__.py +0 -0
  85. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/embeddings/ollama/__main__.py +0 -0
  86. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/embeddings/ollama/processor.py +0 -0
  87. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/embeddings/row_embeddings/__init__.py +0 -0
  88. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/embeddings/row_embeddings/__main__.py +0 -0
  89. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/embeddings/row_embeddings/embeddings.py +0 -0
  90. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/external/__init__.py +0 -0
  91. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/external/wikipedia/__init__.py +0 -0
  92. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/external/wikipedia/__main__.py +0 -0
  93. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/external/wikipedia/service.py +0 -0
  94. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/extract/__init__.py +0 -0
  95. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/extract/kg/__init__.py +0 -0
  96. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/extract/kg/agent/__init__.py +0 -0
  97. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/extract/kg/agent/__main__.py +0 -0
  98. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/extract/kg/agent/extract.py +0 -0
  99. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/extract/kg/definitions/__init__.py +0 -0
  100. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/extract/kg/definitions/__main__.py +0 -0
  101. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/extract/kg/definitions/extract.py +0 -0
  102. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/extract/kg/extract_metrics.py +0 -0
  103. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/extract/kg/ontology/__init__.py +0 -0
  104. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/extract/kg/ontology/entity_normalizer.py +0 -0
  105. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/extract/kg/ontology/extract.py +0 -0
  106. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/extract/kg/ontology/ontology_embedder.py +0 -0
  107. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/extract/kg/ontology/ontology_loader.py +0 -0
  108. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/extract/kg/ontology/ontology_selector.py +0 -0
  109. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/extract/kg/ontology/run.py +0 -0
  110. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/extract/kg/ontology/simplified_parser.py +0 -0
  111. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/extract/kg/ontology/text_processor.py +0 -0
  112. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/extract/kg/ontology/triple_converter.py +0 -0
  113. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/extract/kg/ontology/vector_store.py +0 -0
  114. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/extract/kg/relationships/__init__.py +0 -0
  115. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/extract/kg/relationships/__main__.py +0 -0
  116. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/extract/kg/relationships/extract.py +0 -0
  117. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/extract/kg/rows/__init__.py +0 -0
  118. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/extract/kg/rows/__main__.py +0 -0
  119. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/extract/kg/rows/processor.py +0 -0
  120. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/extract/kg/topics/__init__.py +0 -0
  121. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/extract/kg/topics/__main__.py +0 -0
  122. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/extract/kg/topics/extract.py +0 -0
  123. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/flow/__init__.py +0 -0
  124. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/flow/service/__init__.py +0 -0
  125. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/flow/service/__main__.py +0 -0
  126. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/flow/service/flow.py +0 -0
  127. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/flow/service/service.py +0 -0
  128. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/gateway/__init__.py +0 -0
  129. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/gateway/__main__.py +0 -0
  130. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/gateway/audit.py +0 -0
  131. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/gateway/capabilities.py +0 -0
  132. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/gateway/config/receiver.py +0 -0
  133. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/gateway/dispatch/agent.py +0 -0
  134. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/gateway/dispatch/collection_management.py +0 -0
  135. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/gateway/dispatch/config.py +0 -0
  136. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/gateway/dispatch/core_export.py +0 -0
  137. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/gateway/dispatch/core_import.py +0 -0
  138. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/gateway/dispatch/document_embeddings_export.py +0 -0
  139. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/gateway/dispatch/document_embeddings_import.py +0 -0
  140. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/gateway/dispatch/document_embeddings_query.py +0 -0
  141. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/gateway/dispatch/document_load.py +0 -0
  142. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/gateway/dispatch/document_rag.py +0 -0
  143. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/gateway/dispatch/document_stream.py +0 -0
  144. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/gateway/dispatch/embeddings.py +0 -0
  145. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/gateway/dispatch/entity_contexts_export.py +0 -0
  146. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/gateway/dispatch/entity_contexts_import.py +0 -0
  147. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/gateway/dispatch/flow.py +0 -0
  148. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/gateway/dispatch/graph_embeddings_export.py +0 -0
  149. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/gateway/dispatch/graph_embeddings_import.py +0 -0
  150. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/gateway/dispatch/graph_embeddings_query.py +0 -0
  151. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/gateway/dispatch/graph_rag.py +0 -0
  152. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/gateway/dispatch/iam.py +0 -0
  153. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/gateway/dispatch/image_to_text.py +0 -0
  154. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/gateway/dispatch/knowledge.py +0 -0
  155. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/gateway/dispatch/librarian.py +0 -0
  156. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/gateway/dispatch/manager.py +0 -0
  157. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/gateway/dispatch/mcp_tool.py +0 -0
  158. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/gateway/dispatch/nlp_query.py +0 -0
  159. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/gateway/dispatch/passthrough.py +0 -0
  160. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/gateway/dispatch/prompt.py +0 -0
  161. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/gateway/dispatch/requestor.py +0 -0
  162. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/gateway/dispatch/reranker.py +0 -0
  163. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/gateway/dispatch/row_embeddings_query.py +0 -0
  164. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/gateway/dispatch/rows_import.py +0 -0
  165. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/gateway/dispatch/rows_query.py +0 -0
  166. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/gateway/dispatch/sender.py +0 -0
  167. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/gateway/dispatch/serialize.py +0 -0
  168. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/gateway/dispatch/sparql_query.py +0 -0
  169. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/gateway/dispatch/structured_diag.py +0 -0
  170. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/gateway/dispatch/structured_query.py +0 -0
  171. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/gateway/dispatch/text_completion.py +0 -0
  172. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/gateway/dispatch/text_load.py +0 -0
  173. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/gateway/dispatch/triples_export.py +0 -0
  174. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/gateway/dispatch/triples_import.py +0 -0
  175. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/gateway/dispatch/triples_query.py +0 -0
  176. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/gateway/endpoint/auth_endpoints.py +0 -0
  177. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/gateway/endpoint/constant_endpoint.py +0 -0
  178. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/gateway/endpoint/i18n.py +0 -0
  179. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/gateway/endpoint/iam_endpoint.py +0 -0
  180. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/gateway/endpoint/manager.py +0 -0
  181. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/gateway/endpoint/metrics.py +0 -0
  182. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/gateway/endpoint/socket.py +0 -0
  183. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/gateway/endpoint/stream_endpoint.py +0 -0
  184. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/gateway/running.py +0 -0
  185. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/gateway/service.py +0 -0
  186. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/gateway/unused/dbpedia.py +0 -0
  187. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/gateway/unused/encyclopedia.py +0 -0
  188. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/gateway/unused/internet_search.py +0 -0
  189. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/iam/__init__.py +0 -0
  190. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/iam/noauth/__init__.py +0 -0
  191. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/iam/noauth/__main__.py +0 -0
  192. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/iam/noauth/handler.py +0 -0
  193. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/iam/noauth/service.py +0 -0
  194. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/iam/service/__init__.py +0 -0
  195. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/iam/service/__main__.py +0 -0
  196. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/iam/service/service.py +0 -0
  197. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/librarian/__init__.py +0 -0
  198. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/librarian/__main__.py +0 -0
  199. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/librarian/blob_store.py +0 -0
  200. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/librarian/collection_manager.py +0 -0
  201. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/librarian/librarian.py +0 -0
  202. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/librarian/service.py +0 -0
  203. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/metering/__init__.py +0 -0
  204. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/metering/__main__.py +0 -0
  205. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/metering/counter.py +0 -0
  206. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/model/__init__.py +0 -0
  207. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/model/image_to_text/__init__.py +0 -0
  208. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/model/image_to_text/openai/__init__.py +0 -0
  209. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/model/image_to_text/openai/__main__.py +0 -0
  210. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/model/image_to_text/openai/service.py +0 -0
  211. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/model/text_completion/__init__.py +0 -0
  212. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/model/text_completion/azure/__init__.py +0 -0
  213. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/model/text_completion/azure/__main__.py +0 -0
  214. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/model/text_completion/azure/llm.py +0 -0
  215. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/model/text_completion/azure_openai/__init__.py +0 -0
  216. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/model/text_completion/azure_openai/__main__.py +0 -0
  217. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/model/text_completion/azure_openai/llm.py +0 -0
  218. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/model/text_completion/claude/__init__.py +0 -0
  219. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/model/text_completion/claude/__main__.py +0 -0
  220. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/model/text_completion/claude/llm.py +0 -0
  221. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/model/text_completion/cohere/__init__.py +0 -0
  222. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/model/text_completion/cohere/__main__.py +0 -0
  223. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/model/text_completion/cohere/llm.py +0 -0
  224. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/model/text_completion/llamafile/__init__.py +0 -0
  225. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/model/text_completion/llamafile/__main__.py +0 -0
  226. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/model/text_completion/llamafile/llm.py +0 -0
  227. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/model/text_completion/lmstudio/__init__.py +0 -0
  228. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/model/text_completion/lmstudio/__main__.py +0 -0
  229. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/model/text_completion/lmstudio/llm.py +0 -0
  230. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/model/text_completion/mistral/__init__.py +0 -0
  231. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/model/text_completion/mistral/__main__.py +0 -0
  232. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/model/text_completion/mistral/llm.py +0 -0
  233. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/model/text_completion/ollama/__init__.py +0 -0
  234. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/model/text_completion/ollama/__main__.py +0 -0
  235. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/model/text_completion/ollama/llm.py +0 -0
  236. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/model/text_completion/openai/__init__.py +0 -0
  237. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/model/text_completion/openai/__main__.py +0 -0
  238. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/model/text_completion/openai/llm.py +0 -0
  239. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/model/text_completion/openai/variants.py +0 -0
  240. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/model/text_completion/tgi/__init__.py +0 -0
  241. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/model/text_completion/tgi/__main__.py +0 -0
  242. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/model/text_completion/tgi/llm.py +0 -0
  243. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/model/text_completion/vllm/__init__.py +0 -0
  244. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/model/text_completion/vllm/__main__.py +0 -0
  245. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/model/text_completion/vllm/llm.py +0 -0
  246. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/policy/__init__.py +0 -0
  247. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/policy/policy_filter.py +0 -0
  248. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/policy/triples/__init__.py +0 -0
  249. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/policy/triples/service.py +0 -0
  250. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/processing/__init__.py +0 -0
  251. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/processing/__main__.py +0 -0
  252. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/processing/processing.py +0 -0
  253. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/prompt/__init__.py +0 -0
  254. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/prompt/template/__init__.py +0 -0
  255. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/prompt/template/__main__.py +0 -0
  256. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/prompt/template/service.py +0 -0
  257. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/query/__init__.py +0 -0
  258. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/query/doc_embeddings/__init__.py +0 -0
  259. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/query/doc_embeddings/milvus/__init__.py +0 -0
  260. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/query/doc_embeddings/milvus/__main__.py +0 -0
  261. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/query/doc_embeddings/milvus/service.py +0 -0
  262. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/query/doc_embeddings/pinecone/__init__.py +0 -0
  263. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/query/doc_embeddings/pinecone/__main__.py +0 -0
  264. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/query/doc_embeddings/pinecone/service.py +0 -0
  265. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/query/doc_embeddings/qdrant/__init__.py +0 -0
  266. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/query/doc_embeddings/qdrant/__main__.py +0 -0
  267. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/query/doc_embeddings/qdrant/service.py +0 -0
  268. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/query/graph_embeddings/__init__.py +0 -0
  269. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/query/graph_embeddings/milvus/__init__.py +0 -0
  270. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/query/graph_embeddings/milvus/__main__.py +0 -0
  271. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/query/graph_embeddings/milvus/service.py +0 -0
  272. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/query/graph_embeddings/pinecone/__init__.py +0 -0
  273. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/query/graph_embeddings/pinecone/__main__.py +0 -0
  274. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/query/graph_embeddings/pinecone/service.py +0 -0
  275. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/query/graph_embeddings/qdrant/__init__.py +0 -0
  276. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/query/graph_embeddings/qdrant/__main__.py +0 -0
  277. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/query/graph_embeddings/qdrant/service.py +0 -0
  278. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/query/graphql/__init__.py +0 -0
  279. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/query/graphql/filters.py +0 -0
  280. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/query/graphql/schema.py +0 -0
  281. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/query/graphql/types.py +0 -0
  282. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/query/ontology/__init__.py +0 -0
  283. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/query/ontology/answer_generator.py +0 -0
  284. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/query/ontology/backend_router.py +0 -0
  285. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/query/ontology/cache.py +0 -0
  286. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/query/ontology/cypher_executor.py +0 -0
  287. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/query/ontology/cypher_generator.py +0 -0
  288. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/query/ontology/error_handling.py +0 -0
  289. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/query/ontology/monitoring.py +0 -0
  290. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/query/ontology/multi_language.py +0 -0
  291. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/query/ontology/ontology_matcher.py +0 -0
  292. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/query/ontology/query_explanation.py +0 -0
  293. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/query/ontology/query_optimizer.py +0 -0
  294. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/query/ontology/query_service.py +0 -0
  295. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/query/ontology/question_analyzer.py +0 -0
  296. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/query/ontology/sparql_cassandra.py +0 -0
  297. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/query/ontology/sparql_generator.py +0 -0
  298. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/query/row_embeddings/__init__.py +0 -0
  299. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/query/row_embeddings/qdrant/__init__.py +0 -0
  300. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/query/row_embeddings/qdrant/__main__.py +0 -0
  301. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/query/row_embeddings/qdrant/service.py +0 -0
  302. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/query/rows/__init__.py +0 -0
  303. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/query/rows/cassandra/__init__.py +0 -0
  304. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/query/rows/cassandra/__main__.py +0 -0
  305. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/query/rows/cassandra/service.py +0 -0
  306. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/query/sparql/__init__.py +0 -0
  307. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/query/sparql/__main__.py +0 -0
  308. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/query/sparql/algebra.py +0 -0
  309. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/query/sparql/expressions.py +0 -0
  310. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/query/sparql/parser.py +0 -0
  311. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/query/sparql/service.py +0 -0
  312. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/query/sparql/solutions.py +0 -0
  313. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/query/triples/__init__.py +0 -0
  314. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/query/triples/cassandra/__init__.py +0 -0
  315. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/query/triples/cassandra/__main__.py +0 -0
  316. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/query/triples/cassandra/service.py +0 -0
  317. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/query/triples/falkordb/__init__.py +0 -0
  318. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/query/triples/falkordb/__main__.py +0 -0
  319. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/query/triples/falkordb/service.py +0 -0
  320. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/query/triples/memgraph/__init__.py +0 -0
  321. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/query/triples/memgraph/__main__.py +0 -0
  322. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/query/triples/memgraph/service.py +0 -0
  323. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/query/triples/neo4j/__init__.py +0 -0
  324. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/query/triples/neo4j/__main__.py +0 -0
  325. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/query/triples/neo4j/service.py +0 -0
  326. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/reranker/__init__.py +0 -0
  327. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/reranker/flashrank/__init__.py +0 -0
  328. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/reranker/flashrank/__main__.py +0 -0
  329. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/reranker/flashrank/processor.py +0 -0
  330. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/retrieval/__init__.py +0 -0
  331. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/retrieval/document_rag/__init__.py +0 -0
  332. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/retrieval/document_rag/__main__.py +0 -0
  333. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/retrieval/document_rag/document_rag.py +0 -0
  334. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/retrieval/document_rag/rag.py +0 -0
  335. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/retrieval/document_rag/rerank.py +0 -0
  336. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/retrieval/graph_rag/__init__.py +0 -0
  337. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/retrieval/graph_rag/__main__.py +0 -0
  338. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/retrieval/nlp_query/__init__.py +0 -0
  339. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/retrieval/nlp_query/__main__.py +0 -0
  340. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/retrieval/nlp_query/service.py +0 -0
  341. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/retrieval/structured_diag/__init__.py +0 -0
  342. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/retrieval/structured_diag/service.py +0 -0
  343. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/retrieval/structured_diag/type_detector.py +0 -0
  344. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/retrieval/structured_query/__init__.py +0 -0
  345. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/retrieval/structured_query/__main__.py +0 -0
  346. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/retrieval/structured_query/service.py +0 -0
  347. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/rev_gateway/__init__.py +0 -0
  348. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/rev_gateway/__main__.py +0 -0
  349. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/rev_gateway/dispatcher.py +0 -0
  350. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/rev_gateway/service.py +0 -0
  351. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/storage/__init__.py +0 -0
  352. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/storage/doc_embeddings/__init__.py +0 -0
  353. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/storage/doc_embeddings/milvus/__init__.py +0 -0
  354. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/storage/doc_embeddings/milvus/__main__.py +0 -0
  355. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/storage/doc_embeddings/milvus/write.py +0 -0
  356. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/storage/doc_embeddings/pinecone/__init__.py +0 -0
  357. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/storage/doc_embeddings/pinecone/__main__.py +0 -0
  358. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/storage/doc_embeddings/pinecone/write.py +0 -0
  359. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/storage/doc_embeddings/qdrant/__init__.py +0 -0
  360. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/storage/doc_embeddings/qdrant/__main__.py +0 -0
  361. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/storage/doc_embeddings/qdrant/write.py +0 -0
  362. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/storage/graph_embeddings/__init__.py +0 -0
  363. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/storage/graph_embeddings/milvus/__init__.py +0 -0
  364. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/storage/graph_embeddings/milvus/__main__.py +0 -0
  365. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/storage/graph_embeddings/milvus/write.py +0 -0
  366. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/storage/graph_embeddings/pinecone/__init__.py +0 -0
  367. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/storage/graph_embeddings/pinecone/__main__.py +0 -0
  368. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/storage/graph_embeddings/pinecone/write.py +0 -0
  369. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/storage/graph_embeddings/qdrant/__init__.py +0 -0
  370. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/storage/graph_embeddings/qdrant/__main__.py +0 -0
  371. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/storage/graph_embeddings/qdrant/write.py +0 -0
  372. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/storage/knowledge/__init__.py +0 -0
  373. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/storage/knowledge/__main__.py +0 -0
  374. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/storage/knowledge/store.py +0 -0
  375. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/storage/kw_index/__init__.py +0 -0
  376. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/storage/kw_index/fts5/__init__.py +0 -0
  377. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/storage/kw_index/fts5/__main__.py +0 -0
  378. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/storage/kw_index/fts5/service.py +0 -0
  379. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/storage/row_embeddings/__init__.py +0 -0
  380. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/storage/row_embeddings/qdrant/__init__.py +0 -0
  381. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/storage/row_embeddings/qdrant/__main__.py +0 -0
  382. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/storage/row_embeddings/qdrant/write.py +0 -0
  383. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/storage/rows/__init__.py +0 -0
  384. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/storage/rows/cassandra/__init__.py +0 -0
  385. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/storage/rows/cassandra/__main__.py +0 -0
  386. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/storage/rows/cassandra/write.py +0 -0
  387. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/storage/triples/__init__.py +0 -0
  388. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/storage/triples/cassandra/__init__.py +0 -0
  389. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/storage/triples/cassandra/__main__.py +0 -0
  390. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/storage/triples/cassandra/write.py +0 -0
  391. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/storage/triples/falkordb/__init__.py +0 -0
  392. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/storage/triples/falkordb/__main__.py +0 -0
  393. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/storage/triples/falkordb/write.py +0 -0
  394. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/storage/triples/memgraph/__init__.py +0 -0
  395. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/storage/triples/memgraph/__main__.py +0 -0
  396. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/storage/triples/memgraph/write.py +0 -0
  397. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/storage/triples/neo4j/__init__.py +0 -0
  398. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/storage/triples/neo4j/__main__.py +0 -0
  399. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/storage/triples/neo4j/write.py +0 -0
  400. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/tables/__init__.py +0 -0
  401. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/tables/cassandra_async.py +0 -0
  402. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/tables/config.py +0 -0
  403. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/tables/iam.py +0 -0
  404. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/tables/knowledge.py +0 -0
  405. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/tables/library.py +0 -0
  406. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/template/__init__.py +0 -0
  407. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/template/prompt_manager.py +0 -0
  408. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/tool_service/__init__.py +0 -0
  409. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/tool_service/joke/__init__.py +0 -0
  410. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph/tool_service/joke/service.py +0 -0
  411. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph_flow.egg-info/SOURCES.txt +0 -0
  412. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph_flow.egg-info/dependency_links.txt +0 -0
  413. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph_flow.egg-info/entry_points.txt +0 -0
  414. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph_flow.egg-info/requires.txt +0 -0
  415. {trustgraph_flow-2.10.2 → trustgraph_flow-2.10.4}/trustgraph_flow.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: trustgraph-flow
3
- Version: 2.10.2
3
+ Version: 2.10.4
4
4
  Summary: TrustGraph provides a means to run a pipeline of flexible AI processing components in a flexible means to achieve a processing pipeline.
5
5
  Author-email: "trustgraph.ai" <security@trustgraph.ai>
6
6
  Project-URL: Homepage, https://github.com/trustgraph-ai/trustgraph
@@ -0,0 +1 @@
1
+ __version__ = "2.10.4"
@@ -56,21 +56,14 @@ class Identity:
56
56
  the regime's ``authorise`` operation. The gateway itself never
57
57
  reads policy from this object.
58
58
  """
59
- # Opaque handle, quoted back when calling ``authorise``. For
60
- # the OSS regime this is the user record's id; the gateway
61
- # treats it as a string with no semantic content.
62
59
  handle: str
63
- # The user's default workspace. Used by the gateway as the
64
- # default-fill-in for operations that omit a workspace. Not a
65
- # permission boundary — workspace access is controlled by the
66
- # IAM regime's authorise() decision, not by this field.
67
60
  default_workspace: str
68
- # Stable identifier for audit logs. In OSS this is the same
69
- # value as ``handle``; not assumed equal in the contract.
70
61
  principal_id: str
71
- # How the credential was presented. Non-policy; useful for
72
- # logs / metrics only.
73
62
  source: str # "api-key" | "jwt" | "anonymous"
63
+ # When present, the UserContext extracted from a minted JWT.
64
+ # The gateway attaches this to downstream requests so that
65
+ # policy-aware services can make access-control decisions.
66
+ user_context: dict | None = None
74
67
 
75
68
 
76
69
  def _auth_failure():
@@ -333,9 +326,12 @@ class IamAuth:
333
326
  ).inc()
334
327
  raise _auth_failure()
335
328
 
329
+ uc = claims.get("user_context")
330
+
336
331
  return Identity(
337
332
  handle=sub, default_workspace=ws,
338
333
  principal_id=sub, source="jwt",
334
+ user_context=uc if isinstance(uc, dict) else None,
339
335
  )
340
336
 
341
337
  async def _authenticate_anonymous(self, request_id="", client_ip=""):
@@ -247,6 +247,15 @@ class Mux:
247
247
  ):
248
248
  data["request"]["actor"] = self.identity.handle
249
249
 
250
+ if (
251
+ self.identity is not None
252
+ and self.identity.user_context is not None
253
+ and isinstance(data.get("request"), dict)
254
+ ):
255
+ data["request"]["user-context"] = (
256
+ self.identity.user_context
257
+ )
258
+
250
259
  await self.q.put((
251
260
  data["id"],
252
261
  workspace,
@@ -123,6 +123,12 @@ class RegistryRoutedVariableEndpoint:
123
123
  ):
124
124
  raise workspace_not_found()
125
125
 
126
+ if (
127
+ identity is not None
128
+ and identity.user_context is not None
129
+ ):
130
+ body["user-context"] = identity.user_context
131
+
126
132
  async def responder(x, fin):
127
133
  pass
128
134
 
@@ -37,6 +37,8 @@ class VariableEndpoint:
37
37
 
38
38
  if identity is not None:
39
39
  await enforce_workspace(data, identity, self.auth)
40
+ if identity.user_context is not None:
41
+ data["user-context"] = identity.user_context
40
42
 
41
43
  async def responder(x, fin):
42
44
  pass
@@ -372,6 +372,15 @@ register(Operation(
372
372
  extract_parameters=_no_parameters,
373
373
  ))
374
374
 
375
+ # Token minting: admin mints a JWT with a caller-supplied UserContext.
376
+ register(Operation(
377
+ name="mint-token",
378
+ capability="mint-token",
379
+ resource_level=ResourceLevel.SYSTEM,
380
+ extract_resource=_empty_resource,
381
+ extract_parameters=_workspace_param_only,
382
+ ))
383
+
375
384
 
376
385
  # ---------------------------------------------------------------------------
377
386
  # Auth-surface entries.
@@ -102,6 +102,7 @@ _ADMIN_CAPS = _WRITER_CAPS | {
102
102
  "workspaces:admin",
103
103
  "iam:admin",
104
104
  "metrics:read",
105
+ "mint-token",
105
106
  }
106
107
 
107
108
  ROLE_DEFINITIONS = {
@@ -356,6 +357,8 @@ class IamService:
356
357
  return await self.handle_disable_workspace(v)
357
358
  if op == "rotate-signing-key":
358
359
  return await self.handle_rotate_signing_key(v)
360
+ if op == "mint-token":
361
+ return await self.handle_mint_token(v)
359
362
  if op == "authorise":
360
363
  return await self.handle_authorise(v)
361
364
  if op == "authorise-many":
@@ -653,6 +656,74 @@ class IamService:
653
656
  _, _, public_pem = await self._get_active_signing_key()
654
657
  return IamResponse(signing_key_public=public_pem)
655
658
 
659
+ # ------------------------------------------------------------------
660
+ # mint-token
661
+ # ------------------------------------------------------------------
662
+
663
+ async def handle_mint_token(self, v):
664
+ if not v.workspace:
665
+ return _err("invalid-argument", "workspace required")
666
+ if not v.user_context_json:
667
+ return _err("invalid-argument", "user_context required")
668
+
669
+ # Resolve the target user: user_id (UUID), username, or
670
+ # actor (--self). Exactly one must be supplied.
671
+ user_id = v.user_id
672
+ if v.username and user_id:
673
+ return _err(
674
+ "invalid-argument",
675
+ "supply user_id or username, not both",
676
+ )
677
+
678
+ if v.username:
679
+ user_id = await self.table_store.get_user_id_by_username(
680
+ v.username,
681
+ )
682
+ if not user_id:
683
+ return _err("not-found", "username not found")
684
+ elif not user_id:
685
+ if not v.actor:
686
+ return _err(
687
+ "invalid-argument",
688
+ "user_id, username, or actor (self) required",
689
+ )
690
+ user_id = v.actor
691
+
692
+ user_row = await self.table_store.get_user(user_id)
693
+ if user_row is None:
694
+ return _err("not-found", "user not found")
695
+ if not user_row[7]:
696
+ return _err("operation-not-permitted", "user is disabled")
697
+
698
+ try:
699
+ user_context = json.loads(v.user_context_json)
700
+ except json.JSONDecodeError as e:
701
+ return _err("invalid-argument", f"bad user_context json: {e}")
702
+
703
+ ws_row = await self.table_store.get_workspace(v.workspace)
704
+ if ws_row is None or not ws_row[2]:
705
+ return _err("not-found", "workspace not found or disabled")
706
+
707
+ kid, private_pem, _ = await self._get_active_signing_key()
708
+
709
+ now_ts = int(_now_dt().timestamp())
710
+ exp_ts = now_ts + JWT_TTL_SECONDS
711
+ claims = {
712
+ "iss": JWT_ISSUER,
713
+ "sub": user_id,
714
+ "default_workspace": v.workspace,
715
+ "user_context": user_context,
716
+ "iat": now_ts,
717
+ "exp": exp_ts,
718
+ }
719
+ token = _sign_jwt(kid, private_pem, claims)
720
+
721
+ expires_iso = datetime.datetime.fromtimestamp(
722
+ exp_ts, tz=datetime.timezone.utc,
723
+ ).isoformat()
724
+
725
+ return IamResponse(jwt=token, jwt_expires=expires_iso)
726
+
656
727
  # ------------------------------------------------------------------
657
728
  # Record-conversion helper for workspaces
658
729
  # ------------------------------------------------------------------
@@ -141,6 +141,10 @@ class Query:
141
141
  max_reranker_text_length=240,
142
142
  track_usage=None,
143
143
  user_context=None,
144
+ grounding_seeds=None,
145
+ graph_seeds=None,
146
+ languages=None,
147
+ traversal_instructions=None,
144
148
  ):
145
149
  self.rag = rag
146
150
  self.collection = collection
@@ -154,6 +158,10 @@ class Query:
154
158
  self.max_reranker_text_length = max_reranker_text_length
155
159
  self.track_usage = track_usage
156
160
  self.user_context = user_context
161
+ self.grounding_seeds = grounding_seeds or []
162
+ self.graph_seeds = graph_seeds or []
163
+ self.languages = languages or []
164
+ self.traversal_instructions = traversal_instructions or []
157
165
 
158
166
  async def extract_concepts(self, query):
159
167
  """Extract key concepts from query for independent embedding."""
@@ -195,13 +203,35 @@ class Query:
195
203
  """
196
204
  Extract concepts from query, embed them, and retrieve matching entities.
197
205
 
206
+ When graph_seeds are provided, bypasses both grounding and entity
207
+ lookup — returns the seeds directly with an empty concepts list.
208
+ When grounding_seeds are provided, bypasses LLM concept extraction
209
+ but still performs entity embedding lookup.
210
+
198
211
  Returns:
199
212
  tuple: (entities, concepts) where entities is a list of entity URI
200
213
  strings and concepts is the list of concept strings extracted
201
214
  from the query.
202
215
  """
203
216
 
204
- concepts = await self.extract_concepts(query)
217
+ if self.graph_seeds:
218
+ if self.verbose:
219
+ logger.debug(
220
+ f"Using {len(self.graph_seeds)} graph seeds, "
221
+ "skipping grounding and entity lookup"
222
+ )
223
+ return list(self.graph_seeds), [query]
224
+
225
+ if self.grounding_seeds:
226
+ if self.verbose:
227
+ logger.debug(
228
+ f"Using {len(self.grounding_seeds)} grounding seeds, "
229
+ "skipping LLM concept extraction"
230
+ )
231
+ concepts = list(self.grounding_seeds)
232
+ self.concepts_usage = None
233
+ else:
234
+ concepts = await self.extract_concepts(query)
205
235
 
206
236
  vectors = await self.get_vectors(concepts)
207
237
 
@@ -269,48 +299,60 @@ class Query:
269
299
  FROM_P = "from_p"
270
300
  FROM_O = "from_o"
271
301
 
272
- async def execute_batch_triple_queries(self, entities, limit_per_entity):
302
+ async def execute_batch_triple_queries(
303
+ self, entities, limit_per_entity, graphs=None,
304
+ ):
273
305
  """Execute triple queries for multiple entities concurrently.
274
306
 
307
+ Args:
308
+ entities: Entity URIs to query from.
309
+ limit_per_entity: Max triples per query.
310
+ graphs: Optional list of named graph URIs. When provided,
311
+ queries are issued once per graph; otherwise a single
312
+ query with g="" is used.
313
+
275
314
  Returns a list of (triple, direction) tuples where direction
276
315
  indicates which position the frontier entity occupied.
277
316
  """
317
+ graph_list = graphs if graphs else [""]
318
+
278
319
  tasks = []
279
320
  directions = []
280
321
 
281
- for entity in entities:
282
- tasks.append(
283
- self.rag.triples_client.query_stream(
284
- s=entity, p=None, o=None,
285
- limit=limit_per_entity,
286
- collection=self.collection,
287
- batch_size=20, g="",
288
- user_context=self.user_context,
289
- ),
290
- )
291
- directions.append(self.FROM_S)
292
-
293
- tasks.append(
294
- self.rag.triples_client.query_stream(
295
- s=None, p=entity, o=None,
296
- limit=limit_per_entity,
297
- collection=self.collection,
298
- batch_size=20, g="",
299
- user_context=self.user_context,
300
- ),
301
- )
302
- directions.append(self.FROM_P)
303
-
304
- tasks.append(
305
- self.rag.triples_client.query_stream(
306
- s=None, p=None, o=entity,
307
- limit=limit_per_entity,
308
- collection=self.collection,
309
- batch_size=20, g="",
310
- user_context=self.user_context,
311
- ),
312
- )
313
- directions.append(self.FROM_O)
322
+ for g in graph_list:
323
+ for entity in entities:
324
+ tasks.append(
325
+ self.rag.triples_client.query_stream(
326
+ s=entity, p=None, o=None,
327
+ limit=limit_per_entity,
328
+ collection=self.collection,
329
+ batch_size=20, g=g,
330
+ user_context=self.user_context,
331
+ ),
332
+ )
333
+ directions.append(self.FROM_S)
334
+
335
+ tasks.append(
336
+ self.rag.triples_client.query_stream(
337
+ s=None, p=entity, o=None,
338
+ limit=limit_per_entity,
339
+ collection=self.collection,
340
+ batch_size=20, g=g,
341
+ user_context=self.user_context,
342
+ ),
343
+ )
344
+ directions.append(self.FROM_P)
345
+
346
+ tasks.append(
347
+ self.rag.triples_client.query_stream(
348
+ s=None, p=None, o=entity,
349
+ limit=limit_per_entity,
350
+ collection=self.collection,
351
+ batch_size=20, g=g,
352
+ user_context=self.user_context,
353
+ ),
354
+ )
355
+ directions.append(self.FROM_O)
314
356
 
315
357
  results = await asyncio.gather(*tasks, return_exceptions=True)
316
358
 
@@ -326,14 +368,69 @@ class Query:
326
368
  tasks = [self.maybe_label(entity) for entity in entities]
327
369
  return await asyncio.gather(*tasks, return_exceptions=True)
328
370
 
371
+ def _matches_language(self, triple):
372
+ """Check if a triple's literal values match the language filter.
373
+
374
+ Returns True if no language filter is set, if the triple has no
375
+ literal components, or if at least one literal component matches
376
+ a specified language tag.
377
+ """
378
+ if not self.languages:
379
+ return True
380
+
381
+ lang_set = set(self.languages)
382
+ has_literal = False
383
+
384
+ for val in (triple.s, triple.o):
385
+ if hasattr(val, 'language'):
386
+ has_literal = True
387
+ lang = val.language if val.language is not None else ""
388
+ if lang in lang_set:
389
+ return True
390
+ elif hasattr(val, 'value'):
391
+ has_literal = True
392
+ if "" in lang_set:
393
+ return True
394
+
395
+ # No literals in this triple — let it through
396
+ return not has_literal
397
+
398
+ async def _get_types_for_entities(self, entities):
399
+ """Look up rdf:type for a batch of entities.
400
+
401
+ Returns a dict mapping entity URI -> set of type IRIs.
402
+ """
403
+ tasks = [
404
+ self.rag.triples_client.query(
405
+ s=e, p=RDF_TYPE, o=None, limit=20,
406
+ collection=self.collection,
407
+ g="",
408
+ user_context=self.user_context,
409
+ )
410
+ for e in entities
411
+ ]
412
+ results = await asyncio.gather(*tasks, return_exceptions=True)
413
+
414
+ type_map = {}
415
+ for entity, result in zip(entities, results):
416
+ types = set()
417
+ if not isinstance(result, Exception) and result:
418
+ for triple in result:
419
+ types.add(str(triple.o))
420
+ type_map[entity] = types
421
+
422
+ return type_map
423
+
329
424
  async def hop_and_filter(self, seed_entities, concepts):
330
425
  """Iterative hop-and-filter graph traversal with cross-encoder.
331
426
 
332
427
  At each hop:
333
428
  1. Retrieve all edges one hop from the frontier.
334
- 2. Resolve labels and represent each edge as "{p} {o}".
335
- 3. Score edges against concepts using the cross-encoder.
336
- 4. Select the top edges; their target nodes become the next
429
+ 2. Apply traversal instruction filters (relationship, type, graph).
430
+ 3. Apply language filters.
431
+ 4. Resolve labels and represent each edge as "{p} {o}".
432
+ 5. Score edges against concepts using the cross-encoder.
433
+ 6. Select the top edges; their target nodes become the next
337
434
  frontier.
338
435
 
339
436
  Returns:
@@ -349,6 +446,25 @@ class Query:
349
446
  visited_entities = set()
350
447
  seen_edges = set()
351
448
 
449
+ # Apply initial type restriction from traversal instructions
450
+ # (first step can only be a type restriction)
451
+ if self.traversal_instructions:
452
+ step0 = self.traversal_instructions[0]
453
+ if step0.types:
454
+ type_map = await self._get_types_for_entities(
455
+ list(frontier)
456
+ )
457
+ allowed = set(step0.types)
458
+ frontier = {
459
+ e for e in frontier
460
+ if type_map.get(e, set()) & allowed
461
+ }
462
+ if self.verbose:
463
+ logger.debug(
464
+ f"Type filter on seeds: {len(frontier)} entities "
465
+ f"remain after restricting to {step0.types}"
466
+ )
467
+
352
468
  for hop in range(self.max_path_length):
353
469
  if not frontier:
354
470
  break
@@ -362,9 +478,24 @@ class Query:
362
478
  f"Hop {hop + 1}: {len(unvisited)} frontier entities"
363
479
  )
364
480
 
481
+ # Get traversal instruction for this hop (offset by 1 since
482
+ # step 0 was the seed type filter)
483
+ ti_index = hop + 1
484
+ hop_instruction = None
485
+ if (
486
+ self.traversal_instructions
487
+ and ti_index < len(self.traversal_instructions)
488
+ ):
489
+ hop_instruction = self.traversal_instructions[ti_index]
490
+
365
491
  # Retrieve edges one hop from frontier
492
+ hop_graphs = (
493
+ hop_instruction.graphs
494
+ if hop_instruction and hop_instruction.graphs
495
+ else None
496
+ )
366
497
  triples = await self.execute_batch_triple_queries(
367
- unvisited, self.triple_limit,
498
+ unvisited, self.triple_limit, graphs=hop_graphs,
368
499
  )
369
500
 
370
501
  # Deduplicate and filter already-seen edges
@@ -372,11 +503,21 @@ class Query:
372
503
  hop_term_map = {}
373
504
  hop_directions = {}
374
505
  for triple, direction in triples:
506
+ # Language filter
507
+ if not self._matches_language(triple):
508
+ continue
509
+
375
510
  triple_tuple = (str(triple.s), str(triple.p), str(triple.o))
376
511
  if is_schema_predicate(triple_tuple[1]):
377
512
  continue
378
513
  if triple_tuple in seen_edges:
379
514
  continue
515
+
516
+ # Relationship restriction
517
+ if hop_instruction and hop_instruction.relationships:
518
+ if triple_tuple[1] not in hop_instruction.relationships:
519
+ continue
520
+
380
521
  seen_edges.add(triple_tuple)
381
522
  hop_triples.append(triple_tuple)
382
523
  hop_term_map[triple_tuple] = (
@@ -499,6 +640,22 @@ class Query:
499
640
  visited_entities.update(frontier)
500
641
  frontier = next_frontier - visited_entities
501
642
 
643
+ # Apply type restriction for the next hop's frontier
644
+ if hop_instruction and hop_instruction.types:
645
+ type_map = await self._get_types_for_entities(
646
+ list(frontier)
647
+ )
648
+ allowed = set(hop_instruction.types)
649
+ frontier = {
650
+ e for e in frontier
651
+ if type_map.get(e, set()) & allowed
652
+ }
653
+ if self.verbose:
654
+ logger.debug(
655
+ f"Hop {hop + 1}: type filter reduced frontier "
656
+ f"to {len(frontier)} entities"
657
+ )
658
+
502
659
  return all_selected_edges, uri_map, edge_metadata
503
660
 
504
661
  async def trace_source_documents(self, edge_uris):
@@ -661,6 +818,10 @@ class GraphRag:
661
818
  explain_callback = None, save_answer_callback = None,
662
819
  parent_uri = "",
663
820
  user_context = None,
821
+ grounding_seeds = None,
822
+ graph_seeds = None,
823
+ languages = None,
824
+ traversal_instructions = None,
664
825
  ):
665
826
  # Accumulate token usage across all prompt calls
666
827
  total_in = 0
@@ -714,6 +875,10 @@ class GraphRag:
714
875
  max_reranker_text_length = max_reranker_text_length,
715
876
  track_usage = track_usage,
716
877
  user_context = user_context,
878
+ grounding_seeds = grounding_seeds,
879
+ graph_seeds = graph_seeds,
880
+ languages = languages,
881
+ traversal_instructions = traversal_instructions,
717
882
  )
718
883
 
719
884
  # Step 1: Extract concepts and find seed entities
@@ -213,6 +213,16 @@ class Processor(FlowProcessor):
213
213
  else:
214
214
  max_reranker_input = self.default_max_reranker_input
215
215
 
216
+ grounding_seeds = v.grounding_seeds or []
217
+ graph_seeds = v.graph_seeds or []
218
+ languages = v.languages or []
219
+ traversal_instructions = v.traversal_instructions or []
220
+
221
+ if grounding_seeds and graph_seeds:
222
+ raise ValueError(
223
+ "grounding_seeds and graph_seeds are mutually exclusive"
224
+ )
225
+
216
226
  async def save_answer(doc_id, answer_text):
217
227
  await flow.librarian.save_document(
218
228
  doc_id=doc_id,
@@ -251,6 +261,10 @@ class Processor(FlowProcessor):
251
261
  save_answer_callback = save_answer,
252
262
  parent_uri = v.parent_uri,
253
263
  user_context = v.user_context,
264
+ grounding_seeds = grounding_seeds,
265
+ graph_seeds = graph_seeds,
266
+ languages = languages,
267
+ traversal_instructions = traversal_instructions,
254
268
  )
255
269
 
256
270
  else:
@@ -267,6 +281,10 @@ class Processor(FlowProcessor):
267
281
  save_answer_callback = save_answer,
268
282
  parent_uri = v.parent_uri,
269
283
  user_context = v.user_context,
284
+ grounding_seeds = grounding_seeds,
285
+ graph_seeds = graph_seeds,
286
+ languages = languages,
287
+ traversal_instructions = traversal_instructions,
270
288
  )
271
289
 
272
290
  # Send single response with answer and token usage
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: trustgraph-flow
3
- Version: 2.10.2
3
+ Version: 2.10.4
4
4
  Summary: TrustGraph provides a means to run a pipeline of flexible AI processing components in a flexible means to achieve a processing pipeline.
5
5
  Author-email: "trustgraph.ai" <security@trustgraph.ai>
6
6
  Project-URL: Homepage, https://github.com/trustgraph-ai/trustgraph
@@ -1 +0,0 @@
1
- __version__ = "2.10.2"