trustgraph-flow 2.2.26__tar.gz → 2.3.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (361) hide show
  1. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/PKG-INFO +2 -2
  2. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/pyproject.toml +1 -1
  3. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/agent/orchestrator/meta_router.py +14 -9
  4. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/agent/orchestrator/pattern_base.py +54 -5
  5. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/agent/orchestrator/plan_pattern.py +23 -9
  6. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/agent/orchestrator/react_pattern.py +7 -2
  7. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/agent/orchestrator/service.py +7 -4
  8. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/agent/orchestrator/supervisor_pattern.py +15 -5
  9. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/agent/react/agent_manager.py +11 -4
  10. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/agent/react/tools.py +4 -2
  11. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/extract/kg/definitions/extract.py +2 -1
  12. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/extract/kg/ontology/extract.py +2 -1
  13. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/extract/kg/relationships/extract.py +2 -1
  14. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/extract/kg/rows/processor.py +3 -2
  15. trustgraph_flow-2.3.0/trustgraph/flow_version.py +1 -0
  16. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/prompt/template/service.py +22 -22
  17. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/retrieval/document_rag/document_rag.py +36 -9
  18. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/retrieval/document_rag/rag.py +14 -7
  19. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/retrieval/graph_rag/graph_rag.py +64 -58
  20. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/retrieval/graph_rag/rag.py +12 -5
  21. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph_flow.egg-info/PKG-INFO +2 -2
  22. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph_flow.egg-info/requires.txt +1 -1
  23. trustgraph_flow-2.2.26/trustgraph/flow_version.py +0 -1
  24. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/README.md +0 -0
  25. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/setup.cfg +0 -0
  26. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/__init__.py +0 -0
  27. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/agent/__init__.py +0 -0
  28. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/agent/mcp_tool/__init__.py +0 -0
  29. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/agent/mcp_tool/__main__.py +0 -0
  30. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/agent/mcp_tool/service.py +0 -0
  31. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/agent/orchestrator/__init__.py +0 -0
  32. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/agent/orchestrator/__main__.py +0 -0
  33. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/agent/orchestrator/aggregator.py +0 -0
  34. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/agent/react/__init__.py +0 -0
  35. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/agent/react/__main__.py +0 -0
  36. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/agent/react/service.py +0 -0
  37. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/agent/react/streaming_parser.py +0 -0
  38. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/agent/react/types.py +0 -0
  39. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/agent/tool_filter.py +0 -0
  40. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/chunking/__init__.py +0 -0
  41. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/chunking/recursive/__init__.py +0 -0
  42. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/chunking/recursive/__main__.py +0 -0
  43. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/chunking/recursive/chunker.py +0 -0
  44. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/chunking/token/__init__.py +0 -0
  45. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/chunking/token/__main__.py +0 -0
  46. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/chunking/token/chunker.py +0 -0
  47. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/config/service/__init__.py +0 -0
  48. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/config/service/__main__.py +0 -0
  49. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/config/service/config.py +0 -0
  50. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/config/service/flow.py +0 -0
  51. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/config/service/service.py +0 -0
  52. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/cores/__init__.py +0 -0
  53. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/cores/__main__.py +0 -0
  54. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/cores/knowledge.py +0 -0
  55. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/cores/service.py +0 -0
  56. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/decoding/__init__.py +0 -0
  57. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/decoding/mistral_ocr/__init__.py +0 -0
  58. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/decoding/mistral_ocr/__main__.py +0 -0
  59. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/decoding/mistral_ocr/processor.py +0 -0
  60. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/decoding/pdf/__init__.py +0 -0
  61. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/decoding/pdf/__main__.py +0 -0
  62. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/decoding/pdf/pdf_decoder.py +0 -0
  63. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/direct/__init__.py +0 -0
  64. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/direct/cassandra_kg.py +0 -0
  65. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/direct/milvus_doc_embeddings.py +0 -0
  66. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/direct/milvus_graph_embeddings.py +0 -0
  67. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/embeddings/__init__.py +0 -0
  68. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/embeddings/document_embeddings/__init__.py +0 -0
  69. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/embeddings/document_embeddings/__main__.py +0 -0
  70. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/embeddings/document_embeddings/embeddings.py +0 -0
  71. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/embeddings/fastembed/__init__.py +0 -0
  72. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/embeddings/fastembed/__main__.py +0 -0
  73. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/embeddings/fastembed/processor.py +0 -0
  74. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/embeddings/graph_embeddings/__init__.py +0 -0
  75. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/embeddings/graph_embeddings/__main__.py +0 -0
  76. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/embeddings/graph_embeddings/embeddings.py +0 -0
  77. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/embeddings/ollama/__init__.py +0 -0
  78. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/embeddings/ollama/__main__.py +0 -0
  79. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/embeddings/ollama/processor.py +0 -0
  80. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/embeddings/row_embeddings/__init__.py +0 -0
  81. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/embeddings/row_embeddings/__main__.py +0 -0
  82. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/embeddings/row_embeddings/embeddings.py +0 -0
  83. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/external/__init__.py +0 -0
  84. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/external/wikipedia/__init__.py +0 -0
  85. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/external/wikipedia/__main__.py +0 -0
  86. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/external/wikipedia/service.py +0 -0
  87. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/extract/__init__.py +0 -0
  88. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/extract/kg/__init__.py +0 -0
  89. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/extract/kg/agent/__init__.py +0 -0
  90. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/extract/kg/agent/__main__.py +0 -0
  91. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/extract/kg/agent/extract.py +0 -0
  92. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/extract/kg/definitions/__init__.py +0 -0
  93. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/extract/kg/definitions/__main__.py +0 -0
  94. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/extract/kg/ontology/__init__.py +0 -0
  95. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/extract/kg/ontology/entity_normalizer.py +0 -0
  96. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/extract/kg/ontology/ontology_embedder.py +0 -0
  97. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/extract/kg/ontology/ontology_loader.py +0 -0
  98. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/extract/kg/ontology/ontology_selector.py +0 -0
  99. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/extract/kg/ontology/run.py +0 -0
  100. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/extract/kg/ontology/simplified_parser.py +0 -0
  101. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/extract/kg/ontology/text_processor.py +0 -0
  102. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/extract/kg/ontology/triple_converter.py +0 -0
  103. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/extract/kg/ontology/vector_store.py +0 -0
  104. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/extract/kg/relationships/__init__.py +0 -0
  105. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/extract/kg/relationships/__main__.py +0 -0
  106. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/extract/kg/rows/__init__.py +0 -0
  107. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/extract/kg/rows/__main__.py +0 -0
  108. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/extract/kg/topics/__init__.py +0 -0
  109. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/extract/kg/topics/__main__.py +0 -0
  110. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/extract/kg/topics/extract.py +0 -0
  111. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/gateway/__init__.py +0 -0
  112. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/gateway/__main__.py +0 -0
  113. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/gateway/auth.py +0 -0
  114. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/gateway/config/receiver.py +0 -0
  115. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/gateway/dispatch/agent.py +0 -0
  116. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/gateway/dispatch/collection_management.py +0 -0
  117. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/gateway/dispatch/config.py +0 -0
  118. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/gateway/dispatch/core_export.py +0 -0
  119. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/gateway/dispatch/core_import.py +0 -0
  120. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/gateway/dispatch/document_embeddings_export.py +0 -0
  121. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/gateway/dispatch/document_embeddings_import.py +0 -0
  122. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/gateway/dispatch/document_embeddings_query.py +0 -0
  123. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/gateway/dispatch/document_load.py +0 -0
  124. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/gateway/dispatch/document_rag.py +0 -0
  125. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/gateway/dispatch/document_stream.py +0 -0
  126. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/gateway/dispatch/embeddings.py +0 -0
  127. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/gateway/dispatch/entity_contexts_export.py +0 -0
  128. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/gateway/dispatch/entity_contexts_import.py +0 -0
  129. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/gateway/dispatch/flow.py +0 -0
  130. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/gateway/dispatch/graph_embeddings_export.py +0 -0
  131. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/gateway/dispatch/graph_embeddings_import.py +0 -0
  132. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/gateway/dispatch/graph_embeddings_query.py +0 -0
  133. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/gateway/dispatch/graph_rag.py +0 -0
  134. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/gateway/dispatch/knowledge.py +0 -0
  135. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/gateway/dispatch/librarian.py +0 -0
  136. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/gateway/dispatch/manager.py +0 -0
  137. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/gateway/dispatch/mcp_tool.py +0 -0
  138. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/gateway/dispatch/mux.py +0 -0
  139. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/gateway/dispatch/nlp_query.py +0 -0
  140. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/gateway/dispatch/prompt.py +0 -0
  141. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/gateway/dispatch/requestor.py +0 -0
  142. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/gateway/dispatch/row_embeddings_query.py +0 -0
  143. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/gateway/dispatch/rows_import.py +0 -0
  144. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/gateway/dispatch/rows_query.py +0 -0
  145. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/gateway/dispatch/sender.py +0 -0
  146. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/gateway/dispatch/serialize.py +0 -0
  147. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/gateway/dispatch/sparql_query.py +0 -0
  148. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/gateway/dispatch/streamer.py +0 -0
  149. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/gateway/dispatch/structured_diag.py +0 -0
  150. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/gateway/dispatch/structured_query.py +0 -0
  151. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/gateway/dispatch/text_completion.py +0 -0
  152. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/gateway/dispatch/text_load.py +0 -0
  153. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/gateway/dispatch/triples_export.py +0 -0
  154. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/gateway/dispatch/triples_import.py +0 -0
  155. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/gateway/dispatch/triples_query.py +0 -0
  156. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/gateway/endpoint/constant_endpoint.py +0 -0
  157. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/gateway/endpoint/manager.py +0 -0
  158. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/gateway/endpoint/metrics.py +0 -0
  159. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/gateway/endpoint/socket.py +0 -0
  160. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/gateway/endpoint/stream_endpoint.py +0 -0
  161. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/gateway/endpoint/variable_endpoint.py +0 -0
  162. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/gateway/running.py +0 -0
  163. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/gateway/service.py +0 -0
  164. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/gateway/unused/dbpedia.py +0 -0
  165. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/gateway/unused/encyclopedia.py +0 -0
  166. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/gateway/unused/internet_search.py +0 -0
  167. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/librarian/__init__.py +0 -0
  168. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/librarian/__main__.py +0 -0
  169. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/librarian/blob_store.py +0 -0
  170. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/librarian/collection_manager.py +0 -0
  171. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/librarian/librarian.py +0 -0
  172. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/librarian/service.py +0 -0
  173. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/metering/__init__.py +0 -0
  174. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/metering/__main__.py +0 -0
  175. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/metering/counter.py +0 -0
  176. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/model/__init__.py +0 -0
  177. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/model/text_completion/__init__.py +0 -0
  178. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/model/text_completion/azure/__init__.py +0 -0
  179. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/model/text_completion/azure/__main__.py +0 -0
  180. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/model/text_completion/azure/llm.py +0 -0
  181. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/model/text_completion/azure_openai/__init__.py +0 -0
  182. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/model/text_completion/azure_openai/__main__.py +0 -0
  183. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/model/text_completion/azure_openai/llm.py +0 -0
  184. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/model/text_completion/claude/__init__.py +0 -0
  185. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/model/text_completion/claude/__main__.py +0 -0
  186. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/model/text_completion/claude/llm.py +0 -0
  187. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/model/text_completion/cohere/__init__.py +0 -0
  188. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/model/text_completion/cohere/__main__.py +0 -0
  189. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/model/text_completion/cohere/llm.py +0 -0
  190. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/model/text_completion/llamafile/__init__.py +0 -0
  191. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/model/text_completion/llamafile/__main__.py +0 -0
  192. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/model/text_completion/llamafile/llm.py +0 -0
  193. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/model/text_completion/lmstudio/__init__.py +0 -0
  194. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/model/text_completion/lmstudio/__main__.py +0 -0
  195. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/model/text_completion/lmstudio/llm.py +0 -0
  196. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/model/text_completion/mistral/__init__.py +0 -0
  197. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/model/text_completion/mistral/__main__.py +0 -0
  198. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/model/text_completion/mistral/llm.py +0 -0
  199. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/model/text_completion/ollama/__init__.py +0 -0
  200. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/model/text_completion/ollama/__main__.py +0 -0
  201. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/model/text_completion/ollama/llm.py +0 -0
  202. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/model/text_completion/openai/__init__.py +0 -0
  203. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/model/text_completion/openai/__main__.py +0 -0
  204. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/model/text_completion/openai/llm.py +0 -0
  205. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/model/text_completion/tgi/__init__.py +0 -0
  206. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/model/text_completion/tgi/__main__.py +0 -0
  207. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/model/text_completion/tgi/llm.py +0 -0
  208. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/model/text_completion/vllm/__init__.py +0 -0
  209. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/model/text_completion/vllm/__main__.py +0 -0
  210. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/model/text_completion/vllm/llm.py +0 -0
  211. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/processing/__init__.py +0 -0
  212. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/processing/__main__.py +0 -0
  213. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/processing/processing.py +0 -0
  214. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/prompt/__init__.py +0 -0
  215. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/prompt/template/__init__.py +0 -0
  216. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/prompt/template/__main__.py +0 -0
  217. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/query/__init__.py +0 -0
  218. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/query/doc_embeddings/__init__.py +0 -0
  219. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/query/doc_embeddings/milvus/__init__.py +0 -0
  220. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/query/doc_embeddings/milvus/__main__.py +0 -0
  221. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/query/doc_embeddings/milvus/service.py +0 -0
  222. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/query/doc_embeddings/pinecone/__init__.py +0 -0
  223. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/query/doc_embeddings/pinecone/__main__.py +0 -0
  224. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/query/doc_embeddings/pinecone/service.py +0 -0
  225. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/query/doc_embeddings/qdrant/__init__.py +0 -0
  226. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/query/doc_embeddings/qdrant/__main__.py +0 -0
  227. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/query/doc_embeddings/qdrant/service.py +0 -0
  228. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/query/graph_embeddings/__init__.py +0 -0
  229. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/query/graph_embeddings/milvus/__init__.py +0 -0
  230. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/query/graph_embeddings/milvus/__main__.py +0 -0
  231. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/query/graph_embeddings/milvus/service.py +0 -0
  232. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/query/graph_embeddings/pinecone/__init__.py +0 -0
  233. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/query/graph_embeddings/pinecone/__main__.py +0 -0
  234. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/query/graph_embeddings/pinecone/service.py +0 -0
  235. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/query/graph_embeddings/qdrant/__init__.py +0 -0
  236. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/query/graph_embeddings/qdrant/__main__.py +0 -0
  237. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/query/graph_embeddings/qdrant/service.py +0 -0
  238. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/query/graphql/__init__.py +0 -0
  239. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/query/graphql/filters.py +0 -0
  240. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/query/graphql/schema.py +0 -0
  241. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/query/graphql/types.py +0 -0
  242. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/query/ontology/__init__.py +0 -0
  243. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/query/ontology/answer_generator.py +0 -0
  244. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/query/ontology/backend_router.py +0 -0
  245. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/query/ontology/cache.py +0 -0
  246. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/query/ontology/cypher_executor.py +0 -0
  247. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/query/ontology/cypher_generator.py +0 -0
  248. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/query/ontology/error_handling.py +0 -0
  249. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/query/ontology/monitoring.py +0 -0
  250. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/query/ontology/multi_language.py +0 -0
  251. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/query/ontology/ontology_matcher.py +0 -0
  252. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/query/ontology/query_explanation.py +0 -0
  253. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/query/ontology/query_optimizer.py +0 -0
  254. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/query/ontology/query_service.py +0 -0
  255. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/query/ontology/question_analyzer.py +0 -0
  256. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/query/ontology/sparql_cassandra.py +0 -0
  257. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/query/ontology/sparql_generator.py +0 -0
  258. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/query/row_embeddings/__init__.py +0 -0
  259. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/query/row_embeddings/qdrant/__init__.py +0 -0
  260. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/query/row_embeddings/qdrant/__main__.py +0 -0
  261. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/query/row_embeddings/qdrant/service.py +0 -0
  262. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/query/rows/__init__.py +0 -0
  263. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/query/rows/cassandra/__init__.py +0 -0
  264. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/query/rows/cassandra/__main__.py +0 -0
  265. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/query/rows/cassandra/service.py +0 -0
  266. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/query/sparql/__init__.py +0 -0
  267. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/query/sparql/__main__.py +0 -0
  268. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/query/sparql/algebra.py +0 -0
  269. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/query/sparql/expressions.py +0 -0
  270. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/query/sparql/parser.py +0 -0
  271. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/query/sparql/service.py +0 -0
  272. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/query/sparql/solutions.py +0 -0
  273. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/query/triples/__init__.py +0 -0
  274. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/query/triples/cassandra/__init__.py +0 -0
  275. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/query/triples/cassandra/__main__.py +0 -0
  276. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/query/triples/cassandra/service.py +0 -0
  277. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/query/triples/falkordb/__init__.py +0 -0
  278. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/query/triples/falkordb/__main__.py +0 -0
  279. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/query/triples/falkordb/service.py +0 -0
  280. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/query/triples/memgraph/__init__.py +0 -0
  281. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/query/triples/memgraph/__main__.py +0 -0
  282. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/query/triples/memgraph/service.py +0 -0
  283. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/query/triples/neo4j/__init__.py +0 -0
  284. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/query/triples/neo4j/__main__.py +0 -0
  285. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/query/triples/neo4j/service.py +0 -0
  286. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/retrieval/__init__.py +0 -0
  287. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/retrieval/document_rag/__init__.py +0 -0
  288. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/retrieval/document_rag/__main__.py +0 -0
  289. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/retrieval/graph_rag/__init__.py +0 -0
  290. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/retrieval/graph_rag/__main__.py +0 -0
  291. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/retrieval/nlp_query/__init__.py +0 -0
  292. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/retrieval/nlp_query/__main__.py +0 -0
  293. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/retrieval/nlp_query/service.py +0 -0
  294. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/retrieval/structured_diag/__init__.py +0 -0
  295. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/retrieval/structured_diag/service.py +0 -0
  296. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/retrieval/structured_diag/type_detector.py +0 -0
  297. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/retrieval/structured_query/__init__.py +0 -0
  298. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/retrieval/structured_query/__main__.py +0 -0
  299. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/retrieval/structured_query/service.py +0 -0
  300. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/rev_gateway/__init__.py +0 -0
  301. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/rev_gateway/__main__.py +0 -0
  302. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/rev_gateway/dispatcher.py +0 -0
  303. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/rev_gateway/service.py +0 -0
  304. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/storage/__init__.py +0 -0
  305. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/storage/doc_embeddings/__init__.py +0 -0
  306. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/storage/doc_embeddings/milvus/__init__.py +0 -0
  307. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/storage/doc_embeddings/milvus/__main__.py +0 -0
  308. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/storage/doc_embeddings/milvus/write.py +0 -0
  309. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/storage/doc_embeddings/pinecone/__init__.py +0 -0
  310. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/storage/doc_embeddings/pinecone/__main__.py +0 -0
  311. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/storage/doc_embeddings/pinecone/write.py +0 -0
  312. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/storage/doc_embeddings/qdrant/__init__.py +0 -0
  313. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/storage/doc_embeddings/qdrant/__main__.py +0 -0
  314. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/storage/doc_embeddings/qdrant/write.py +0 -0
  315. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/storage/graph_embeddings/__init__.py +0 -0
  316. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/storage/graph_embeddings/milvus/__init__.py +0 -0
  317. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/storage/graph_embeddings/milvus/__main__.py +0 -0
  318. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/storage/graph_embeddings/milvus/write.py +0 -0
  319. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/storage/graph_embeddings/pinecone/__init__.py +0 -0
  320. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/storage/graph_embeddings/pinecone/__main__.py +0 -0
  321. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/storage/graph_embeddings/pinecone/write.py +0 -0
  322. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/storage/graph_embeddings/qdrant/__init__.py +0 -0
  323. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/storage/graph_embeddings/qdrant/__main__.py +0 -0
  324. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/storage/graph_embeddings/qdrant/write.py +0 -0
  325. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/storage/knowledge/__init__.py +0 -0
  326. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/storage/knowledge/__main__.py +0 -0
  327. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/storage/knowledge/store.py +0 -0
  328. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/storage/row_embeddings/__init__.py +0 -0
  329. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/storage/row_embeddings/qdrant/__init__.py +0 -0
  330. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/storage/row_embeddings/qdrant/__main__.py +0 -0
  331. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/storage/row_embeddings/qdrant/write.py +0 -0
  332. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/storage/rows/__init__.py +0 -0
  333. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/storage/rows/cassandra/__init__.py +0 -0
  334. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/storage/rows/cassandra/__main__.py +0 -0
  335. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/storage/rows/cassandra/write.py +0 -0
  336. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/storage/triples/__init__.py +0 -0
  337. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/storage/triples/cassandra/__init__.py +0 -0
  338. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/storage/triples/cassandra/__main__.py +0 -0
  339. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/storage/triples/cassandra/write.py +0 -0
  340. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/storage/triples/falkordb/__init__.py +0 -0
  341. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/storage/triples/falkordb/__main__.py +0 -0
  342. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/storage/triples/falkordb/write.py +0 -0
  343. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/storage/triples/memgraph/__init__.py +0 -0
  344. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/storage/triples/memgraph/__main__.py +0 -0
  345. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/storage/triples/memgraph/write.py +0 -0
  346. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/storage/triples/neo4j/__init__.py +0 -0
  347. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/storage/triples/neo4j/__main__.py +0 -0
  348. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/storage/triples/neo4j/write.py +0 -0
  349. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/tables/__init__.py +0 -0
  350. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/tables/config.py +0 -0
  351. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/tables/knowledge.py +0 -0
  352. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/tables/library.py +0 -0
  353. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/template/__init__.py +0 -0
  354. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/template/prompt_manager.py +0 -0
  355. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/tool_service/__init__.py +0 -0
  356. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/tool_service/joke/__init__.py +0 -0
  357. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/tool_service/joke/service.py +0 -0
  358. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph_flow.egg-info/SOURCES.txt +0 -0
  359. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph_flow.egg-info/dependency_links.txt +0 -0
  360. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph_flow.egg-info/entry_points.txt +0 -0
  361. {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/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.2.26
3
+ Version: 2.3.0
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
@@ -8,7 +8,7 @@ Classifier: Programming Language :: Python :: 3
8
8
  Classifier: Operating System :: OS Independent
9
9
  Requires-Python: >=3.8
10
10
  Description-Content-Type: text/markdown
11
- Requires-Dist: trustgraph-base<2.3,>=2.2
11
+ Requires-Dist: trustgraph-base<2.4,>=2.3
12
12
  Requires-Dist: aiohttp
13
13
  Requires-Dist: anthropic
14
14
  Requires-Dist: scylla-driver
@@ -10,7 +10,7 @@ description = "TrustGraph provides a means to run a pipeline of flexible AI proc
10
10
  readme = "README.md"
11
11
  requires-python = ">=3.8"
12
12
  dependencies = [
13
- "trustgraph-base>=2.2,<2.3",
13
+ "trustgraph-base>=2.3,<2.4",
14
14
  "aiohttp",
15
15
  "anthropic",
16
16
  "scylla-driver",
@@ -53,7 +53,7 @@ class MetaRouter:
53
53
  "general": {"name": "general", "description": "General queries", "valid_patterns": ["react"], "framing": ""},
54
54
  }
55
55
 
56
- async def identify_task_type(self, question, context):
56
+ async def identify_task_type(self, question, context, usage=None):
57
57
  """
58
58
  Use the LLM to classify the question into one of the known task types.
59
59
 
@@ -71,7 +71,7 @@ class MetaRouter:
71
71
 
72
72
  try:
73
73
  client = context("prompt-request")
74
- response = await client.prompt(
74
+ result = await client.prompt(
75
75
  id="task-type-classify",
76
76
  variables={
77
77
  "question": question,
@@ -81,7 +81,9 @@ class MetaRouter:
81
81
  ],
82
82
  },
83
83
  )
84
- selected = response.strip().lower().replace('"', '').replace("'", "")
84
+ if usage:
85
+ usage.track(result)
86
+ selected = result.text.strip().lower().replace('"', '').replace("'", "")
85
87
 
86
88
  if selected in self.task_types:
87
89
  framing = self.task_types[selected].get("framing", DEFAULT_FRAMING)
@@ -100,7 +102,7 @@ class MetaRouter:
100
102
  )
101
103
  return DEFAULT_TASK_TYPE, framing
102
104
 
103
- async def select_pattern(self, question, task_type, context):
105
+ async def select_pattern(self, question, task_type, context, usage=None):
104
106
  """
105
107
  Use the LLM to select the best execution pattern for this task type.
106
108
 
@@ -120,7 +122,7 @@ class MetaRouter:
120
122
 
121
123
  try:
122
124
  client = context("prompt-request")
123
- response = await client.prompt(
125
+ result = await client.prompt(
124
126
  id="pattern-select",
125
127
  variables={
126
128
  "question": question,
@@ -133,7 +135,9 @@ class MetaRouter:
133
135
  ],
134
136
  },
135
137
  )
136
- selected = response.strip().lower().replace('"', '').replace("'", "")
138
+ if usage:
139
+ usage.track(result)
140
+ selected = result.text.strip().lower().replace('"', '').replace("'", "")
137
141
 
138
142
  if selected in valid_patterns:
139
143
  logger.info(f"MetaRouter: selected pattern '{selected}'")
@@ -148,19 +152,20 @@ class MetaRouter:
148
152
  logger.warning(f"MetaRouter: pattern selection failed: {e}")
149
153
  return valid_patterns[0] if valid_patterns else DEFAULT_PATTERN
150
154
 
151
- async def route(self, question, context):
155
+ async def route(self, question, context, usage=None):
152
156
  """
153
157
  Full routing pipeline: identify task type, then select pattern.
154
158
 
155
159
  Args:
156
160
  question: The user's query.
157
161
  context: UserAwareContext (flow wrapper).
162
+ usage: Optional UsageTracker for token counting.
158
163
 
159
164
  Returns:
160
165
  (pattern, task_type, framing) tuple.
161
166
  """
162
- task_type, framing = await self.identify_task_type(question, context)
163
- pattern = await self.select_pattern(question, task_type, context)
167
+ task_type, framing = await self.identify_task_type(question, context, usage=usage)
168
+ pattern = await self.select_pattern(question, task_type, context, usage=usage)
164
169
  logger.info(
165
170
  f"MetaRouter: route result — "
166
171
  f"pattern={pattern}, task_type={task_type}, framing={framing!r}"
@@ -65,6 +65,37 @@ class UserAwareContext:
65
65
  return client
66
66
 
67
67
 
68
+ class UsageTracker:
69
+ """Accumulates token usage across multiple prompt calls."""
70
+
71
+ def __init__(self):
72
+ self.total_in = 0
73
+ self.total_out = 0
74
+ self.last_model = None
75
+
76
+ def track(self, result):
77
+ """Track usage from a PromptResult."""
78
+ if result is not None:
79
+ if getattr(result, "in_token", None) is not None:
80
+ self.total_in += result.in_token
81
+ if getattr(result, "out_token", None) is not None:
82
+ self.total_out += result.out_token
83
+ if getattr(result, "model", None) is not None:
84
+ self.last_model = result.model
85
+
86
+ @property
87
+ def in_token(self):
88
+ return self.total_in if self.total_in > 0 else None
89
+
90
+ @property
91
+ def out_token(self):
92
+ return self.total_out if self.total_out > 0 else None
93
+
94
+ @property
95
+ def model(self):
96
+ return self.last_model
97
+
98
+
68
99
  class PatternBase:
69
100
  """
70
101
  Shared infrastructure for all agent patterns.
@@ -571,7 +602,8 @@ class PatternBase:
571
602
  # ---- Response helpers ---------------------------------------------------
572
603
 
573
604
  async def prompt_as_answer(self, client, prompt_id, variables,
574
- respond, streaming, message_id=""):
605
+ respond, streaming, message_id="",
606
+ usage=None):
575
607
  """Call a prompt template, forwarding chunks as answer
576
608
  AgentResponse messages when streaming is enabled.
577
609
 
@@ -591,22 +623,28 @@ class PatternBase:
591
623
  message_id=message_id,
592
624
  ))
593
625
 
594
- await client.prompt(
626
+ result = await client.prompt(
595
627
  id=prompt_id,
596
628
  variables=variables,
597
629
  streaming=True,
598
630
  chunk_callback=on_chunk,
599
631
  )
632
+ if usage:
633
+ usage.track(result)
600
634
 
601
635
  return "".join(accumulated)
602
636
  else:
603
- return await client.prompt(
637
+ result = await client.prompt(
604
638
  id=prompt_id,
605
639
  variables=variables,
606
640
  )
641
+ if usage:
642
+ usage.track(result)
643
+ return result.text
607
644
 
608
645
  async def send_final_response(self, respond, streaming, answer_text,
609
- already_streamed=False, message_id=""):
646
+ already_streamed=False, message_id="",
647
+ usage=None):
610
648
  """Send the answer content and end-of-dialog marker.
611
649
 
612
650
  Args:
@@ -614,7 +652,16 @@ class PatternBase:
614
652
  via streaming callbacks (e.g. ReactPattern). Only the
615
653
  end-of-dialog marker is emitted.
616
654
  message_id: Provenance URI for the answer entity.
655
+ usage: UsageTracker with accumulated token counts.
617
656
  """
657
+ usage_kwargs = {}
658
+ if usage:
659
+ usage_kwargs = {
660
+ "in_token": usage.in_token,
661
+ "out_token": usage.out_token,
662
+ "model": usage.model,
663
+ }
664
+
618
665
  if streaming and not already_streamed:
619
666
  # Answer wasn't streamed yet — send it as a chunk first
620
667
  if answer_text:
@@ -626,13 +673,14 @@ class PatternBase:
626
673
  message_id=message_id,
627
674
  ))
628
675
  if streaming:
629
- # End-of-dialog marker
676
+ # End-of-dialog marker with usage
630
677
  await respond(AgentResponse(
631
678
  chunk_type="answer",
632
679
  content="",
633
680
  end_of_message=True,
634
681
  end_of_dialog=True,
635
682
  message_id=message_id,
683
+ **usage_kwargs,
636
684
  ))
637
685
  else:
638
686
  await respond(AgentResponse(
@@ -641,6 +689,7 @@ class PatternBase:
641
689
  end_of_message=True,
642
690
  end_of_dialog=True,
643
691
  message_id=message_id,
692
+ **usage_kwargs,
644
693
  ))
645
694
 
646
695
  def build_next_request(self, request, history, session_id, collection,
@@ -18,7 +18,7 @@ from trustgraph.provenance import (
18
18
  agent_synthesis_uri,
19
19
  )
20
20
 
21
- from . pattern_base import PatternBase
21
+ from . pattern_base import PatternBase, UsageTracker
22
22
 
23
23
  logger = logging.getLogger(__name__)
24
24
 
@@ -35,7 +35,10 @@ class PlanThenExecutePattern(PatternBase):
35
35
  Subsequent calls execute the next pending plan step via ReACT.
36
36
  """
37
37
 
38
- async def iterate(self, request, respond, next, flow):
38
+ async def iterate(self, request, respond, next, flow, usage=None):
39
+
40
+ if usage is None:
41
+ usage = UsageTracker()
39
42
 
40
43
  streaming = getattr(request, 'streaming', False)
41
44
  session_id = getattr(request, 'session_id', '') or str(uuid.uuid4())
@@ -67,13 +70,13 @@ class PlanThenExecutePattern(PatternBase):
67
70
  await self._planning_iteration(
68
71
  request, respond, next, flow,
69
72
  session_id, collection, streaming, session_uri,
70
- iteration_num,
73
+ iteration_num, usage=usage,
71
74
  )
72
75
  else:
73
76
  await self._execution_iteration(
74
77
  request, respond, next, flow,
75
78
  session_id, collection, streaming, session_uri,
76
- iteration_num, plan,
79
+ iteration_num, plan, usage=usage,
77
80
  )
78
81
 
79
82
  def _extract_plan(self, history):
@@ -98,7 +101,7 @@ class PlanThenExecutePattern(PatternBase):
98
101
 
99
102
  async def _planning_iteration(self, request, respond, next, flow,
100
103
  session_id, collection, streaming,
101
- session_uri, iteration_num):
104
+ session_uri, iteration_num, usage=None):
102
105
  """Ask the LLM to produce a structured plan."""
103
106
 
104
107
  think = self.make_think_callback(respond, streaming)
@@ -113,7 +116,7 @@ class PlanThenExecutePattern(PatternBase):
113
116
  client = context("prompt-request")
114
117
 
115
118
  # Use the plan-create prompt template
116
- plan_steps = await client.prompt(
119
+ result = await client.prompt(
117
120
  id="plan-create",
118
121
  variables={
119
122
  "question": request.question,
@@ -124,7 +127,10 @@ class PlanThenExecutePattern(PatternBase):
124
127
  ],
125
128
  },
126
129
  )
130
+ if usage:
131
+ usage.track(result)
127
132
 
133
+ plan_steps = result.objects
128
134
  # Validate we got a list
129
135
  if not isinstance(plan_steps, list) or not plan_steps:
130
136
  logger.warning("plan-create returned invalid result, falling back to single step")
@@ -187,7 +193,8 @@ class PlanThenExecutePattern(PatternBase):
187
193
 
188
194
  async def _execution_iteration(self, request, respond, next, flow,
189
195
  session_id, collection, streaming,
190
- session_uri, iteration_num, plan):
196
+ session_uri, iteration_num, plan,
197
+ usage=None):
191
198
  """Execute the next pending plan step via single-shot tool call."""
192
199
 
193
200
  pending_idx = self._find_next_pending_step(plan)
@@ -198,6 +205,7 @@ class PlanThenExecutePattern(PatternBase):
198
205
  request, respond, next, flow,
199
206
  session_id, collection, streaming,
200
207
  session_uri, iteration_num, plan,
208
+ usage=usage,
201
209
  )
202
210
  return
203
211
 
@@ -240,7 +248,7 @@ class PlanThenExecutePattern(PatternBase):
240
248
  client = context("prompt-request")
241
249
 
242
250
  # Single-shot: ask LLM which tool + arguments to use for this goal
243
- tool_call = await client.prompt(
251
+ result = await client.prompt(
244
252
  id="plan-step-execute",
245
253
  variables={
246
254
  "goal": goal,
@@ -258,7 +266,10 @@ class PlanThenExecutePattern(PatternBase):
258
266
  ],
259
267
  },
260
268
  )
269
+ if usage:
270
+ usage.track(result)
261
271
 
272
+ tool_call = result.object
262
273
  tool_name = tool_call.get("tool", "")
263
274
  tool_arguments = tool_call.get("arguments", {})
264
275
 
@@ -330,7 +341,8 @@ class PlanThenExecutePattern(PatternBase):
330
341
 
331
342
  async def _synthesise(self, request, respond, next, flow,
332
343
  session_id, collection, streaming,
333
- session_uri, iteration_num, plan):
344
+ session_uri, iteration_num, plan,
345
+ usage=None):
334
346
  """Synthesise a final answer from all completed plan step results."""
335
347
 
336
348
  think = self.make_think_callback(respond, streaming)
@@ -365,6 +377,7 @@ class PlanThenExecutePattern(PatternBase):
365
377
  respond=respond,
366
378
  streaming=streaming,
367
379
  message_id=synthesis_msg_id,
380
+ usage=usage,
368
381
  )
369
382
 
370
383
  # Emit synthesis provenance (links back to last step result)
@@ -380,4 +393,5 @@ class PlanThenExecutePattern(PatternBase):
380
393
  await self.send_final_response(
381
394
  respond, streaming, response_text, already_streamed=streaming,
382
395
  message_id=synthesis_msg_id,
396
+ usage=usage,
383
397
  )
@@ -23,7 +23,7 @@ from ..react.agent_manager import AgentManager
23
23
  from ..react.types import Action, Final
24
24
  from ..tool_filter import get_next_state
25
25
 
26
- from . pattern_base import PatternBase
26
+ from . pattern_base import PatternBase, UsageTracker
27
27
 
28
28
  logger = logging.getLogger(__name__)
29
29
 
@@ -37,7 +37,10 @@ class ReactPattern(PatternBase):
37
37
  result is appended to history and a next-request is emitted.
38
38
  """
39
39
 
40
- async def iterate(self, request, respond, next, flow):
40
+ async def iterate(self, request, respond, next, flow, usage=None):
41
+
42
+ if usage is None:
43
+ usage = UsageTracker()
41
44
 
42
45
  streaming = getattr(request, 'streaming', False)
43
46
  session_id = getattr(request, 'session_id', '') or str(uuid.uuid4())
@@ -121,6 +124,7 @@ class ReactPattern(PatternBase):
121
124
  context=context,
122
125
  streaming=streaming,
123
126
  on_action=on_action,
127
+ usage=usage,
124
128
  )
125
129
 
126
130
  logger.debug(f"Action: {act}")
@@ -144,6 +148,7 @@ class ReactPattern(PatternBase):
144
148
  await self.send_final_response(
145
149
  respond, streaming, f, already_streamed=streaming,
146
150
  message_id=answer_msg_id,
151
+ usage=usage,
147
152
  )
148
153
  return
149
154
 
@@ -23,6 +23,7 @@ from ... base import Consumer, Producer
23
23
  from ... base import ConsumerMetrics, ProducerMetrics
24
24
 
25
25
  from ... schema import AgentRequest, AgentResponse, AgentStep, Error
26
+ from ..orchestrator.pattern_base import UsageTracker
26
27
  from ... schema import Triples, Metadata
27
28
  from ... schema import LibrarianRequest, LibrarianResponse, DocumentMetadata
28
29
  from ... schema import librarian_request_queue, librarian_response_queue
@@ -493,6 +494,8 @@ class Processor(AgentService):
493
494
 
494
495
  async def agent_request(self, request, respond, next, flow):
495
496
 
497
+ usage = UsageTracker()
498
+
496
499
  try:
497
500
 
498
501
  # Intercept subagent completion messages
@@ -516,7 +519,7 @@ class Processor(AgentService):
516
519
 
517
520
  if self.meta_router:
518
521
  pattern, task_type, framing = await self.meta_router.route(
519
- request.question, context,
522
+ request.question, context, usage=usage,
520
523
  )
521
524
  else:
522
525
  pattern = "react"
@@ -536,16 +539,16 @@ class Processor(AgentService):
536
539
  # Dispatch to the selected pattern
537
540
  if pattern == "plan-then-execute":
538
541
  await self.plan_pattern.iterate(
539
- request, respond, next, flow,
542
+ request, respond, next, flow, usage=usage,
540
543
  )
541
544
  elif pattern == "supervisor":
542
545
  await self.supervisor_pattern.iterate(
543
- request, respond, next, flow,
546
+ request, respond, next, flow, usage=usage,
544
547
  )
545
548
  else:
546
549
  # Default to react
547
550
  await self.react_pattern.iterate(
548
- request, respond, next, flow,
551
+ request, respond, next, flow, usage=usage,
549
552
  )
550
553
 
551
554
  except Exception as e:
@@ -22,7 +22,7 @@ from trustgraph.provenance import (
22
22
  agent_synthesis_uri,
23
23
  )
24
24
 
25
- from . pattern_base import PatternBase
25
+ from . pattern_base import PatternBase, UsageTracker
26
26
 
27
27
  logger = logging.getLogger(__name__)
28
28
 
@@ -38,7 +38,10 @@ class SupervisorPattern(PatternBase):
38
38
  - "synthesise": triggered by aggregator with results in subagent_results
39
39
  """
40
40
 
41
- async def iterate(self, request, respond, next, flow):
41
+ async def iterate(self, request, respond, next, flow, usage=None):
42
+
43
+ if usage is None:
44
+ usage = UsageTracker()
42
45
 
43
46
  streaming = getattr(request, 'streaming', False)
44
47
  session_id = getattr(request, 'session_id', '') or str(uuid.uuid4())
@@ -72,17 +75,19 @@ class SupervisorPattern(PatternBase):
72
75
  request, respond, next, flow,
73
76
  session_id, collection, streaming,
74
77
  session_uri, iteration_num,
78
+ usage=usage,
75
79
  )
76
80
  else:
77
81
  await self._decompose_and_fanout(
78
82
  request, respond, next, flow,
79
83
  session_id, collection, streaming,
80
84
  session_uri, iteration_num,
85
+ usage=usage,
81
86
  )
82
87
 
83
88
  async def _decompose_and_fanout(self, request, respond, next, flow,
84
89
  session_id, collection, streaming,
85
- session_uri, iteration_num):
90
+ session_uri, iteration_num, usage=None):
86
91
  """Decompose the question into sub-goals and fan out subagents."""
87
92
 
88
93
  decompose_msg_id = agent_decomposition_uri(session_id)
@@ -100,7 +105,7 @@ class SupervisorPattern(PatternBase):
100
105
  client = context("prompt-request")
101
106
 
102
107
  # Use the supervisor-decompose prompt template
103
- goals = await client.prompt(
108
+ result = await client.prompt(
104
109
  id="supervisor-decompose",
105
110
  variables={
106
111
  "question": request.question,
@@ -112,7 +117,10 @@ class SupervisorPattern(PatternBase):
112
117
  ],
113
118
  },
114
119
  )
120
+ if usage:
121
+ usage.track(result)
115
122
 
123
+ goals = result.objects
116
124
  # Validate result
117
125
  if not isinstance(goals, list):
118
126
  goals = []
@@ -175,7 +183,7 @@ class SupervisorPattern(PatternBase):
175
183
 
176
184
  async def _synthesise(self, request, respond, next, flow,
177
185
  session_id, collection, streaming,
178
- session_uri, iteration_num):
186
+ session_uri, iteration_num, usage=None):
179
187
  """Synthesise final answer from subagent results."""
180
188
 
181
189
  synthesis_msg_id = agent_synthesis_uri(session_id)
@@ -216,6 +224,7 @@ class SupervisorPattern(PatternBase):
216
224
  respond=respond,
217
225
  streaming=streaming,
218
226
  message_id=synthesis_msg_id,
227
+ usage=usage,
219
228
  )
220
229
 
221
230
  # Emit synthesis provenance (links back to all findings)
@@ -231,4 +240,5 @@ class SupervisorPattern(PatternBase):
231
240
  await self.send_final_response(
232
241
  respond, streaming, response_text, already_streamed=streaming,
233
242
  message_id=synthesis_msg_id,
243
+ usage=usage,
234
244
  )
@@ -170,7 +170,7 @@ class AgentManager:
170
170
 
171
171
  raise ValueError(f"Could not parse response: {text}")
172
172
 
173
- async def reason(self, question, history, context, streaming=False, think=None, observe=None, answer=None):
173
+ async def reason(self, question, history, context, streaming=False, think=None, observe=None, answer=None, usage=None):
174
174
 
175
175
  logger.debug(f"calling reason: {question}")
176
176
 
@@ -255,11 +255,13 @@ class AgentManager:
255
255
  client = context("prompt-request")
256
256
 
257
257
  # Get streaming response
258
- response_text = await client.agent_react(
258
+ prompt_result = await client.agent_react(
259
259
  variables=variables,
260
260
  streaming=True,
261
261
  chunk_callback=on_chunk
262
262
  )
263
+ if usage:
264
+ usage.track(prompt_result)
263
265
 
264
266
  # Finalize parser
265
267
  parser.finalize()
@@ -275,10 +277,13 @@ class AgentManager:
275
277
  # Non-streaming path - get complete text and parse
276
278
  client = context("prompt-request")
277
279
 
278
- response_text = await client.agent_react(
280
+ prompt_result = await client.agent_react(
279
281
  variables=variables,
280
282
  streaming=False
281
283
  )
284
+ if usage:
285
+ usage.track(prompt_result)
286
+ response_text = prompt_result.text
282
287
 
283
288
  logger.debug(f"Response text:\n{response_text}")
284
289
 
@@ -292,7 +297,8 @@ class AgentManager:
292
297
  raise RuntimeError(f"Failed to parse agent response: {e}")
293
298
 
294
299
  async def react(self, question, history, think, observe, context,
295
- streaming=False, answer=None, on_action=None):
300
+ streaming=False, answer=None, on_action=None,
301
+ usage=None):
296
302
 
297
303
  act = await self.reason(
298
304
  question = question,
@@ -302,6 +308,7 @@ class AgentManager:
302
308
  think = think,
303
309
  observe = observe,
304
310
  answer = answer,
311
+ usage = usage,
305
312
  )
306
313
 
307
314
  if isinstance(act, Final):
@@ -78,9 +78,10 @@ class TextCompletionImpl:
78
78
  async def invoke(self, **arguments):
79
79
  client = self.context("prompt-request")
80
80
  logger.debug("Prompt question...")
81
- return await client.question(
81
+ result = await client.question(
82
82
  arguments.get("question")
83
83
  )
84
+ return result.text
84
85
 
85
86
  # This tool implementation knows how to do MCP tool invocation. This uses
86
87
  # the mcp-tool service.
@@ -227,10 +228,11 @@ class PromptImpl:
227
228
  async def invoke(self, **arguments):
228
229
  client = self.context("prompt-request")
229
230
  logger.debug(f"Prompt template invocation: {self.template_id}...")
230
- return await client.prompt(
231
+ result = await client.prompt(
231
232
  id=self.template_id,
232
233
  variables=arguments
233
234
  )
235
+ return result.text
234
236
 
235
237
 
236
238
  # This tool implementation invokes a dynamically configured tool service
@@ -117,10 +117,11 @@ class Processor(FlowProcessor):
117
117
 
118
118
  try:
119
119
 
120
- defs = await flow("prompt-request").extract_definitions(
120
+ result = await flow("prompt-request").extract_definitions(
121
121
  text = chunk
122
122
  )
123
123
 
124
+ defs = result.objects
124
125
  logger.debug(f"Definitions response: {defs}")
125
126
 
126
127
  if type(defs) != list:
@@ -376,10 +376,11 @@ class Processor(FlowProcessor):
376
376
  """
377
377
  try:
378
378
  # Call prompt service with simplified format prompt
379
- extraction_response = await flow("prompt-request").prompt(
379
+ result = await flow("prompt-request").prompt(
380
380
  id="extract-with-ontologies",
381
381
  variables=prompt_variables
382
382
  )
383
+ extraction_response = result.object
383
384
  logger.debug(f"Simplified extraction response: {extraction_response}")
384
385
 
385
386
  # Parse response into structured format
@@ -100,10 +100,11 @@ class Processor(FlowProcessor):
100
100
 
101
101
  try:
102
102
 
103
- rels = await flow("prompt-request").extract_relationships(
103
+ result = await flow("prompt-request").extract_relationships(
104
104
  text = chunk
105
105
  )
106
106
 
107
+ rels = result.objects
107
108
  logger.debug(f"Prompt response: {rels}")
108
109
 
109
110
  if type(rels) != list:
@@ -148,11 +148,12 @@ class Processor(FlowProcessor):
148
148
  schema_dict = row_schema_translator.encode(schema)
149
149
 
150
150
  # Use prompt client to extract rows based on schema
151
- objects = await flow("prompt-request").extract_objects(
151
+ result = await flow("prompt-request").extract_objects(
152
152
  schema=schema_dict,
153
153
  text=text
154
154
  )
155
-
155
+
156
+ objects = result.objects
156
157
  if not isinstance(objects, list):
157
158
  return []
158
159
 
@@ -0,0 +1 @@
1
+ __version__ = "2.3.0"