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.
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/PKG-INFO +2 -2
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/pyproject.toml +1 -1
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/agent/orchestrator/meta_router.py +14 -9
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/agent/orchestrator/pattern_base.py +54 -5
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/agent/orchestrator/plan_pattern.py +23 -9
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/agent/orchestrator/react_pattern.py +7 -2
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/agent/orchestrator/service.py +7 -4
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/agent/orchestrator/supervisor_pattern.py +15 -5
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/agent/react/agent_manager.py +11 -4
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/agent/react/tools.py +4 -2
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/extract/kg/definitions/extract.py +2 -1
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/extract/kg/ontology/extract.py +2 -1
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/extract/kg/relationships/extract.py +2 -1
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/extract/kg/rows/processor.py +3 -2
- trustgraph_flow-2.3.0/trustgraph/flow_version.py +1 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/prompt/template/service.py +22 -22
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/retrieval/document_rag/document_rag.py +36 -9
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/retrieval/document_rag/rag.py +14 -7
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/retrieval/graph_rag/graph_rag.py +64 -58
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/retrieval/graph_rag/rag.py +12 -5
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph_flow.egg-info/PKG-INFO +2 -2
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph_flow.egg-info/requires.txt +1 -1
- trustgraph_flow-2.2.26/trustgraph/flow_version.py +0 -1
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/README.md +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/setup.cfg +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/__init__.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/agent/__init__.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/agent/mcp_tool/__init__.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/agent/mcp_tool/__main__.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/agent/mcp_tool/service.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/agent/orchestrator/__init__.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/agent/orchestrator/__main__.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/agent/orchestrator/aggregator.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/agent/react/__init__.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/agent/react/__main__.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/agent/react/service.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/agent/react/streaming_parser.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/agent/react/types.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/agent/tool_filter.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/chunking/__init__.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/chunking/recursive/__init__.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/chunking/recursive/__main__.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/chunking/recursive/chunker.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/chunking/token/__init__.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/chunking/token/__main__.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/chunking/token/chunker.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/config/service/__init__.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/config/service/__main__.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/config/service/config.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/config/service/flow.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/config/service/service.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/cores/__init__.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/cores/__main__.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/cores/knowledge.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/cores/service.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/decoding/__init__.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/decoding/mistral_ocr/__init__.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/decoding/mistral_ocr/__main__.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/decoding/mistral_ocr/processor.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/decoding/pdf/__init__.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/decoding/pdf/__main__.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/decoding/pdf/pdf_decoder.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/direct/__init__.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/direct/cassandra_kg.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/direct/milvus_doc_embeddings.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/direct/milvus_graph_embeddings.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/embeddings/__init__.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/embeddings/document_embeddings/__init__.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/embeddings/document_embeddings/__main__.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/embeddings/document_embeddings/embeddings.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/embeddings/fastembed/__init__.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/embeddings/fastembed/__main__.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/embeddings/fastembed/processor.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/embeddings/graph_embeddings/__init__.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/embeddings/graph_embeddings/__main__.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/embeddings/graph_embeddings/embeddings.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/embeddings/ollama/__init__.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/embeddings/ollama/__main__.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/embeddings/ollama/processor.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/embeddings/row_embeddings/__init__.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/embeddings/row_embeddings/__main__.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/embeddings/row_embeddings/embeddings.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/external/__init__.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/external/wikipedia/__init__.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/external/wikipedia/__main__.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/external/wikipedia/service.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/extract/__init__.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/extract/kg/__init__.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/extract/kg/agent/__init__.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/extract/kg/agent/__main__.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/extract/kg/agent/extract.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/extract/kg/definitions/__init__.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/extract/kg/definitions/__main__.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/extract/kg/ontology/__init__.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/extract/kg/ontology/entity_normalizer.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/extract/kg/ontology/ontology_embedder.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/extract/kg/ontology/ontology_loader.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/extract/kg/ontology/ontology_selector.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/extract/kg/ontology/run.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/extract/kg/ontology/simplified_parser.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/extract/kg/ontology/text_processor.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/extract/kg/ontology/triple_converter.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/extract/kg/ontology/vector_store.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/extract/kg/relationships/__init__.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/extract/kg/relationships/__main__.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/extract/kg/rows/__init__.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/extract/kg/rows/__main__.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/extract/kg/topics/__init__.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/extract/kg/topics/__main__.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/extract/kg/topics/extract.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/gateway/__init__.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/gateway/__main__.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/gateway/auth.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/gateway/config/receiver.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/gateway/dispatch/agent.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/gateway/dispatch/collection_management.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/gateway/dispatch/config.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/gateway/dispatch/core_export.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/gateway/dispatch/core_import.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/gateway/dispatch/document_embeddings_export.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/gateway/dispatch/document_embeddings_import.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/gateway/dispatch/document_embeddings_query.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/gateway/dispatch/document_load.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/gateway/dispatch/document_rag.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/gateway/dispatch/document_stream.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/gateway/dispatch/embeddings.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/gateway/dispatch/entity_contexts_export.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/gateway/dispatch/entity_contexts_import.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/gateway/dispatch/flow.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/gateway/dispatch/graph_embeddings_export.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/gateway/dispatch/graph_embeddings_import.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/gateway/dispatch/graph_embeddings_query.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/gateway/dispatch/graph_rag.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/gateway/dispatch/knowledge.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/gateway/dispatch/librarian.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/gateway/dispatch/manager.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/gateway/dispatch/mcp_tool.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/gateway/dispatch/mux.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/gateway/dispatch/nlp_query.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/gateway/dispatch/prompt.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/gateway/dispatch/requestor.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/gateway/dispatch/row_embeddings_query.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/gateway/dispatch/rows_import.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/gateway/dispatch/rows_query.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/gateway/dispatch/sender.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/gateway/dispatch/serialize.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/gateway/dispatch/sparql_query.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/gateway/dispatch/streamer.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/gateway/dispatch/structured_diag.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/gateway/dispatch/structured_query.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/gateway/dispatch/text_completion.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/gateway/dispatch/text_load.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/gateway/dispatch/triples_export.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/gateway/dispatch/triples_import.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/gateway/dispatch/triples_query.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/gateway/endpoint/constant_endpoint.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/gateway/endpoint/manager.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/gateway/endpoint/metrics.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/gateway/endpoint/socket.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/gateway/endpoint/stream_endpoint.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/gateway/endpoint/variable_endpoint.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/gateway/running.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/gateway/service.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/gateway/unused/dbpedia.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/gateway/unused/encyclopedia.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/gateway/unused/internet_search.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/librarian/__init__.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/librarian/__main__.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/librarian/blob_store.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/librarian/collection_manager.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/librarian/librarian.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/librarian/service.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/metering/__init__.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/metering/__main__.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/metering/counter.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/model/__init__.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/model/text_completion/__init__.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/model/text_completion/azure/__init__.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/model/text_completion/azure/__main__.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/model/text_completion/azure/llm.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/model/text_completion/azure_openai/__init__.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/model/text_completion/azure_openai/__main__.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/model/text_completion/azure_openai/llm.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/model/text_completion/claude/__init__.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/model/text_completion/claude/__main__.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/model/text_completion/claude/llm.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/model/text_completion/cohere/__init__.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/model/text_completion/cohere/__main__.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/model/text_completion/cohere/llm.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/model/text_completion/llamafile/__init__.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/model/text_completion/llamafile/__main__.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/model/text_completion/llamafile/llm.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/model/text_completion/lmstudio/__init__.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/model/text_completion/lmstudio/__main__.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/model/text_completion/lmstudio/llm.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/model/text_completion/mistral/__init__.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/model/text_completion/mistral/__main__.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/model/text_completion/mistral/llm.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/model/text_completion/ollama/__init__.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/model/text_completion/ollama/__main__.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/model/text_completion/ollama/llm.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/model/text_completion/openai/__init__.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/model/text_completion/openai/__main__.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/model/text_completion/openai/llm.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/model/text_completion/tgi/__init__.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/model/text_completion/tgi/__main__.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/model/text_completion/tgi/llm.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/model/text_completion/vllm/__init__.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/model/text_completion/vllm/__main__.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/model/text_completion/vllm/llm.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/processing/__init__.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/processing/__main__.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/processing/processing.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/prompt/__init__.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/prompt/template/__init__.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/prompt/template/__main__.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/query/__init__.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/query/doc_embeddings/__init__.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/query/doc_embeddings/milvus/__init__.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/query/doc_embeddings/milvus/__main__.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/query/doc_embeddings/milvus/service.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/query/doc_embeddings/pinecone/__init__.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/query/doc_embeddings/pinecone/__main__.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/query/doc_embeddings/pinecone/service.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/query/doc_embeddings/qdrant/__init__.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/query/doc_embeddings/qdrant/__main__.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/query/doc_embeddings/qdrant/service.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/query/graph_embeddings/__init__.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/query/graph_embeddings/milvus/__init__.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/query/graph_embeddings/milvus/__main__.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/query/graph_embeddings/milvus/service.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/query/graph_embeddings/pinecone/__init__.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/query/graph_embeddings/pinecone/__main__.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/query/graph_embeddings/pinecone/service.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/query/graph_embeddings/qdrant/__init__.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/query/graph_embeddings/qdrant/__main__.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/query/graph_embeddings/qdrant/service.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/query/graphql/__init__.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/query/graphql/filters.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/query/graphql/schema.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/query/graphql/types.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/query/ontology/__init__.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/query/ontology/answer_generator.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/query/ontology/backend_router.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/query/ontology/cache.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/query/ontology/cypher_executor.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/query/ontology/cypher_generator.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/query/ontology/error_handling.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/query/ontology/monitoring.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/query/ontology/multi_language.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/query/ontology/ontology_matcher.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/query/ontology/query_explanation.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/query/ontology/query_optimizer.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/query/ontology/query_service.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/query/ontology/question_analyzer.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/query/ontology/sparql_cassandra.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/query/ontology/sparql_generator.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/query/row_embeddings/__init__.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/query/row_embeddings/qdrant/__init__.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/query/row_embeddings/qdrant/__main__.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/query/row_embeddings/qdrant/service.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/query/rows/__init__.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/query/rows/cassandra/__init__.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/query/rows/cassandra/__main__.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/query/rows/cassandra/service.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/query/sparql/__init__.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/query/sparql/__main__.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/query/sparql/algebra.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/query/sparql/expressions.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/query/sparql/parser.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/query/sparql/service.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/query/sparql/solutions.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/query/triples/__init__.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/query/triples/cassandra/__init__.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/query/triples/cassandra/__main__.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/query/triples/cassandra/service.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/query/triples/falkordb/__init__.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/query/triples/falkordb/__main__.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/query/triples/falkordb/service.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/query/triples/memgraph/__init__.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/query/triples/memgraph/__main__.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/query/triples/memgraph/service.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/query/triples/neo4j/__init__.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/query/triples/neo4j/__main__.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/query/triples/neo4j/service.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/retrieval/__init__.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/retrieval/document_rag/__init__.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/retrieval/document_rag/__main__.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/retrieval/graph_rag/__init__.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/retrieval/graph_rag/__main__.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/retrieval/nlp_query/__init__.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/retrieval/nlp_query/__main__.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/retrieval/nlp_query/service.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/retrieval/structured_diag/__init__.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/retrieval/structured_diag/service.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/retrieval/structured_diag/type_detector.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/retrieval/structured_query/__init__.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/retrieval/structured_query/__main__.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/retrieval/structured_query/service.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/rev_gateway/__init__.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/rev_gateway/__main__.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/rev_gateway/dispatcher.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/rev_gateway/service.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/storage/__init__.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/storage/doc_embeddings/__init__.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/storage/doc_embeddings/milvus/__init__.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/storage/doc_embeddings/milvus/__main__.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/storage/doc_embeddings/milvus/write.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/storage/doc_embeddings/pinecone/__init__.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/storage/doc_embeddings/pinecone/__main__.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/storage/doc_embeddings/pinecone/write.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/storage/doc_embeddings/qdrant/__init__.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/storage/doc_embeddings/qdrant/__main__.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/storage/doc_embeddings/qdrant/write.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/storage/graph_embeddings/__init__.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/storage/graph_embeddings/milvus/__init__.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/storage/graph_embeddings/milvus/__main__.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/storage/graph_embeddings/milvus/write.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/storage/graph_embeddings/pinecone/__init__.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/storage/graph_embeddings/pinecone/__main__.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/storage/graph_embeddings/pinecone/write.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/storage/graph_embeddings/qdrant/__init__.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/storage/graph_embeddings/qdrant/__main__.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/storage/graph_embeddings/qdrant/write.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/storage/knowledge/__init__.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/storage/knowledge/__main__.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/storage/knowledge/store.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/storage/row_embeddings/__init__.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/storage/row_embeddings/qdrant/__init__.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/storage/row_embeddings/qdrant/__main__.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/storage/row_embeddings/qdrant/write.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/storage/rows/__init__.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/storage/rows/cassandra/__init__.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/storage/rows/cassandra/__main__.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/storage/rows/cassandra/write.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/storage/triples/__init__.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/storage/triples/cassandra/__init__.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/storage/triples/cassandra/__main__.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/storage/triples/cassandra/write.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/storage/triples/falkordb/__init__.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/storage/triples/falkordb/__main__.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/storage/triples/falkordb/write.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/storage/triples/memgraph/__init__.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/storage/triples/memgraph/__main__.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/storage/triples/memgraph/write.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/storage/triples/neo4j/__init__.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/storage/triples/neo4j/__main__.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/storage/triples/neo4j/write.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/tables/__init__.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/tables/config.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/tables/knowledge.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/tables/library.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/template/__init__.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/template/prompt_manager.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/tool_service/__init__.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/tool_service/joke/__init__.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/tool_service/joke/service.py +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph_flow.egg-info/SOURCES.txt +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph_flow.egg-info/dependency_links.txt +0 -0
- {trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph_flow.egg-info/entry_points.txt +0 -0
- {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.
|
|
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.
|
|
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.
|
|
13
|
+
"trustgraph-base>=2.3,<2.4",
|
|
14
14
|
"aiohttp",
|
|
15
15
|
"anthropic",
|
|
16
16
|
"scylla-driver",
|
{trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/agent/orchestrator/meta_router.py
RENAMED
|
@@ -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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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}"
|
{trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/agent/orchestrator/pattern_base.py
RENAMED
|
@@ -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
|
-
|
|
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,
|
{trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/agent/orchestrator/plan_pattern.py
RENAMED
|
@@ -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
|
-
|
|
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
|
-
|
|
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
|
)
|
{trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/agent/orchestrator/react_pattern.py
RENAMED
|
@@ -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:
|
{trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/agent/orchestrator/supervisor_pattern.py
RENAMED
|
@@ -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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
{trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/extract/kg/definitions/extract.py
RENAMED
|
@@ -117,10 +117,11 @@ class Processor(FlowProcessor):
|
|
|
117
117
|
|
|
118
118
|
try:
|
|
119
119
|
|
|
120
|
-
|
|
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
|
-
|
|
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
|
{trustgraph_flow-2.2.26 → trustgraph_flow-2.3.0}/trustgraph/extract/kg/relationships/extract.py
RENAMED
|
@@ -100,10 +100,11 @@ class Processor(FlowProcessor):
|
|
|
100
100
|
|
|
101
101
|
try:
|
|
102
102
|
|
|
103
|
-
|
|
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
|
-
|
|
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"
|