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