trustgraph-base 2.7.12__tar.gz → 2.7.13__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (198) hide show
  1. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/PKG-INFO +1 -1
  2. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/trustgraph/base/agent_service.py +0 -1
  3. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/trustgraph/base/async_processor.py +22 -9
  4. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/trustgraph/base/audit_publisher.py +1 -2
  5. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/trustgraph/base/consumer_spec.py +2 -1
  6. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/trustgraph/base/dynamic_tool_service.py +4 -4
  7. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/trustgraph/base/embeddings_service.py +0 -1
  8. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/trustgraph/base/image_to_text_service.py +4 -6
  9. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/trustgraph/base/librarian_client.py +5 -2
  10. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/trustgraph/base/librarian_spec.py +1 -0
  11. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/trustgraph/base/llm_service.py +5 -8
  12. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/trustgraph/base/metrics.py +38 -30
  13. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/trustgraph/base/producer.py +17 -15
  14. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/trustgraph/base/producer_spec.py +2 -1
  15. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/trustgraph/base/request_response_spec.py +4 -2
  16. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/trustgraph/base/subscriber_spec.py +2 -1
  17. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/trustgraph/base/tool_service.py +3 -2
  18. trustgraph_base-2.7.13/trustgraph/base_version.py +1 -0
  19. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/trustgraph/schema/services/config.py +3 -2
  20. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/trustgraph_base.egg-info/PKG-INFO +1 -1
  21. trustgraph_base-2.7.12/trustgraph/base_version.py +0 -1
  22. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/README.md +0 -0
  23. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/pyproject.toml +0 -0
  24. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/setup.cfg +0 -0
  25. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/trustgraph/api/__init__.py +0 -0
  26. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/trustgraph/api/api.py +0 -0
  27. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/trustgraph/api/async_bulk_client.py +0 -0
  28. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/trustgraph/api/async_flow.py +0 -0
  29. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/trustgraph/api/async_metrics.py +0 -0
  30. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/trustgraph/api/async_socket_client.py +0 -0
  31. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/trustgraph/api/bulk_client.py +0 -0
  32. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/trustgraph/api/collection.py +0 -0
  33. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/trustgraph/api/config.py +0 -0
  34. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/trustgraph/api/exceptions.py +0 -0
  35. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/trustgraph/api/explainability.py +0 -0
  36. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/trustgraph/api/flow.py +0 -0
  37. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/trustgraph/api/knowledge.py +0 -0
  38. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/trustgraph/api/library.py +0 -0
  39. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/trustgraph/api/metrics.py +0 -0
  40. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/trustgraph/api/socket_client.py +0 -0
  41. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/trustgraph/api/types.py +0 -0
  42. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/trustgraph/base/__init__.py +0 -0
  43. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/trustgraph/base/agent_client.py +0 -0
  44. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/trustgraph/base/backend.py +0 -0
  45. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/trustgraph/base/cassandra_config.py +0 -0
  46. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/trustgraph/base/chunking_service.py +0 -0
  47. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/trustgraph/base/collection_config_handler.py +0 -0
  48. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/trustgraph/base/config_client.py +0 -0
  49. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/trustgraph/base/consumer.py +0 -0
  50. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/trustgraph/base/document_embeddings_client.py +0 -0
  51. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/trustgraph/base/document_embeddings_query_service.py +0 -0
  52. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/trustgraph/base/document_embeddings_store_service.py +0 -0
  53. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/trustgraph/base/embeddings_client.py +0 -0
  54. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/trustgraph/base/flow.py +0 -0
  55. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/trustgraph/base/flow_processor.py +0 -0
  56. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/trustgraph/base/graph_embeddings_client.py +0 -0
  57. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/trustgraph/base/graph_embeddings_query_service.py +0 -0
  58. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/trustgraph/base/graph_embeddings_store_service.py +0 -0
  59. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/trustgraph/base/graph_rag_client.py +0 -0
  60. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/trustgraph/base/iam_client.py +0 -0
  61. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/trustgraph/base/kafka_backend.py +0 -0
  62. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/trustgraph/base/keyword_index_client.py +0 -0
  63. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/trustgraph/base/keyword_index_service.py +0 -0
  64. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/trustgraph/base/logging.py +0 -0
  65. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/trustgraph/base/parameter_spec.py +0 -0
  66. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/trustgraph/base/processor_group.py +0 -0
  67. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/trustgraph/base/prompt_client.py +0 -0
  68. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/trustgraph/base/publisher.py +0 -0
  69. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/trustgraph/base/pubsub.py +0 -0
  70. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/trustgraph/base/pulsar_backend.py +0 -0
  71. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/trustgraph/base/qdrant_config.py +0 -0
  72. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/trustgraph/base/rabbitmq_backend.py +0 -0
  73. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/trustgraph/base/reranker_client.py +0 -0
  74. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/trustgraph/base/reranker_service.py +0 -0
  75. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/trustgraph/base/row_embeddings_query_client.py +0 -0
  76. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/trustgraph/base/schema_compatibility.py +0 -0
  77. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/trustgraph/base/serialization.py +0 -0
  78. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/trustgraph/base/spec.py +0 -0
  79. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/trustgraph/base/structured_query_client.py +0 -0
  80. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/trustgraph/base/subscriber.py +0 -0
  81. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/trustgraph/base/text_completion_client.py +0 -0
  82. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/trustgraph/base/tool_client.py +0 -0
  83. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/trustgraph/base/tool_service_client.py +0 -0
  84. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/trustgraph/base/triples_client.py +0 -0
  85. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/trustgraph/base/triples_query_service.py +0 -0
  86. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/trustgraph/base/triples_store_service.py +0 -0
  87. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/trustgraph/base/workspace_processor.py +0 -0
  88. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/trustgraph/clients/__init__.py +0 -0
  89. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/trustgraph/clients/agent_client.py +0 -0
  90. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/trustgraph/clients/base.py +0 -0
  91. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/trustgraph/clients/config_client.py +0 -0
  92. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/trustgraph/clients/document_embeddings_client.py +0 -0
  93. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/trustgraph/clients/document_rag_client.py +0 -0
  94. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/trustgraph/clients/embeddings_client.py +0 -0
  95. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/trustgraph/clients/graph_embeddings_client.py +0 -0
  96. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/trustgraph/clients/graph_rag_client.py +0 -0
  97. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/trustgraph/clients/llm_client.py +0 -0
  98. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/trustgraph/clients/prompt_client.py +0 -0
  99. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/trustgraph/clients/row_embeddings_client.py +0 -0
  100. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/trustgraph/clients/triples_query_client.py +0 -0
  101. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/trustgraph/exceptions.py +0 -0
  102. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/trustgraph/i18n/__init__.py +0 -0
  103. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/trustgraph/i18n/packs/__init__.py +0 -0
  104. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/trustgraph/i18n/packs/ar.json +0 -0
  105. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/trustgraph/i18n/packs/en.json +0 -0
  106. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/trustgraph/i18n/packs/es.json +0 -0
  107. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/trustgraph/i18n/packs/he.json +0 -0
  108. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/trustgraph/i18n/packs/hi.json +0 -0
  109. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/trustgraph/i18n/packs/pt.json +0 -0
  110. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/trustgraph/i18n/packs/ru.json +0 -0
  111. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/trustgraph/i18n/packs/sw.json +0 -0
  112. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/trustgraph/i18n/packs/tr.json +0 -0
  113. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/trustgraph/i18n/packs/zh-cn.json +0 -0
  114. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/trustgraph/knowledge/__init__.py +0 -0
  115. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/trustgraph/knowledge/defs.py +0 -0
  116. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/trustgraph/knowledge/document.py +0 -0
  117. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/trustgraph/knowledge/identifier.py +0 -0
  118. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/trustgraph/knowledge/organization.py +0 -0
  119. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/trustgraph/knowledge/publication.py +0 -0
  120. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/trustgraph/log_level.py +0 -0
  121. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/trustgraph/messaging/__init__.py +0 -0
  122. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/trustgraph/messaging/registry.py +0 -0
  123. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/trustgraph/messaging/translators/__init__.py +0 -0
  124. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/trustgraph/messaging/translators/agent.py +0 -0
  125. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/trustgraph/messaging/translators/base.py +0 -0
  126. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/trustgraph/messaging/translators/collection.py +0 -0
  127. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/trustgraph/messaging/translators/config.py +0 -0
  128. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/trustgraph/messaging/translators/diagnosis.py +0 -0
  129. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/trustgraph/messaging/translators/document_loading.py +0 -0
  130. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/trustgraph/messaging/translators/embeddings.py +0 -0
  131. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/trustgraph/messaging/translators/embeddings_query.py +0 -0
  132. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/trustgraph/messaging/translators/flow.py +0 -0
  133. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/trustgraph/messaging/translators/iam.py +0 -0
  134. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/trustgraph/messaging/translators/image_to_text.py +0 -0
  135. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/trustgraph/messaging/translators/knowledge.py +0 -0
  136. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/trustgraph/messaging/translators/library.py +0 -0
  137. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/trustgraph/messaging/translators/metadata.py +0 -0
  138. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/trustgraph/messaging/translators/nlp_query.py +0 -0
  139. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/trustgraph/messaging/translators/primitives.py +0 -0
  140. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/trustgraph/messaging/translators/prompt.py +0 -0
  141. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/trustgraph/messaging/translators/reranker.py +0 -0
  142. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/trustgraph/messaging/translators/retrieval.py +0 -0
  143. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/trustgraph/messaging/translators/rows_query.py +0 -0
  144. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/trustgraph/messaging/translators/sparql_query.py +0 -0
  145. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/trustgraph/messaging/translators/structured_query.py +0 -0
  146. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/trustgraph/messaging/translators/text_completion.py +0 -0
  147. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/trustgraph/messaging/translators/tool.py +0 -0
  148. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/trustgraph/messaging/translators/triples.py +0 -0
  149. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/trustgraph/objects/__init__.py +0 -0
  150. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/trustgraph/objects/field.py +0 -0
  151. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/trustgraph/objects/object.py +0 -0
  152. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/trustgraph/provenance/__init__.py +0 -0
  153. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/trustgraph/provenance/agent.py +0 -0
  154. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/trustgraph/provenance/namespaces.py +0 -0
  155. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/trustgraph/provenance/triples.py +0 -0
  156. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/trustgraph/provenance/uris.py +0 -0
  157. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/trustgraph/provenance/vocabulary.py +0 -0
  158. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/trustgraph/rdf.py +0 -0
  159. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/trustgraph/schema/__init__.py +0 -0
  160. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/trustgraph/schema/core/__init__.py +0 -0
  161. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/trustgraph/schema/core/metadata.py +0 -0
  162. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/trustgraph/schema/core/primitives.py +0 -0
  163. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/trustgraph/schema/core/topic.py +0 -0
  164. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/trustgraph/schema/knowledge/__init__.py +0 -0
  165. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/trustgraph/schema/knowledge/document.py +0 -0
  166. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/trustgraph/schema/knowledge/embeddings.py +0 -0
  167. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/trustgraph/schema/knowledge/graph.py +0 -0
  168. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/trustgraph/schema/knowledge/knowledge.py +0 -0
  169. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/trustgraph/schema/knowledge/nlp.py +0 -0
  170. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/trustgraph/schema/knowledge/object.py +0 -0
  171. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/trustgraph/schema/knowledge/rows.py +0 -0
  172. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/trustgraph/schema/knowledge/structured.py +0 -0
  173. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/trustgraph/schema/services/__init__.py +0 -0
  174. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/trustgraph/schema/services/agent.py +0 -0
  175. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/trustgraph/schema/services/audit.py +0 -0
  176. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/trustgraph/schema/services/collection.py +0 -0
  177. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/trustgraph/schema/services/diagnosis.py +0 -0
  178. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/trustgraph/schema/services/flow.py +0 -0
  179. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/trustgraph/schema/services/iam.py +0 -0
  180. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/trustgraph/schema/services/image_to_text.py +0 -0
  181. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/trustgraph/schema/services/library.py +0 -0
  182. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/trustgraph/schema/services/llm.py +0 -0
  183. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/trustgraph/schema/services/lookup.py +0 -0
  184. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/trustgraph/schema/services/nlp_query.py +0 -0
  185. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/trustgraph/schema/services/prompt.py +0 -0
  186. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/trustgraph/schema/services/query.py +0 -0
  187. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/trustgraph/schema/services/reranker.py +0 -0
  188. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/trustgraph/schema/services/retrieval.py +0 -0
  189. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/trustgraph/schema/services/rows_query.py +0 -0
  190. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/trustgraph/schema/services/sparql_query.py +0 -0
  191. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/trustgraph/schema/services/storage.py +0 -0
  192. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/trustgraph/schema/services/structured_query.py +0 -0
  193. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/trustgraph/schema/services/tool_service.py +0 -0
  194. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/trustgraph_base.egg-info/SOURCES.txt +0 -0
  195. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/trustgraph_base.egg-info/dependency_links.txt +0 -0
  196. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/trustgraph_base.egg-info/entry_points.txt +0 -0
  197. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/trustgraph_base.egg-info/requires.txt +0 -0
  198. {trustgraph_base-2.7.12 → trustgraph_base-2.7.13}/trustgraph_base.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: trustgraph-base
3
- Version: 2.7.12
3
+ Version: 2.7.13
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,6 @@ from argparse import ArgumentParser
8
8
 
9
9
  import time
10
10
  import logging
11
- from prometheus_client import Histogram
12
11
 
13
12
  from .. schema import AgentRequest, AgentResponse, Error
14
13
  from .. exceptions import TooManyRequests
@@ -84,7 +84,7 @@ class AsyncProcessor:
84
84
  config_subscriber_id = str(uuid.uuid4())
85
85
 
86
86
  config_consumer_metrics = ConsumerMetrics(
87
- processor = self.id, flow = None, name = "config",
87
+ processor=self.id, consumer="config",
88
88
  )
89
89
 
90
90
  # Subscribe to config notify queue
@@ -112,10 +112,10 @@ class AsyncProcessor:
112
112
  config_rr_id = str(uuid.uuid4())
113
113
 
114
114
  config_req_metrics = ProducerMetrics(
115
- processor = self.id, flow = None, name = "config-request",
115
+ processor=self.id, producer="config-request",
116
116
  )
117
117
  config_resp_metrics = SubscriberMetrics(
118
- processor = self.id, flow = None, name = "config-response",
118
+ processor=self.id, subscriber="config-response",
119
119
  )
120
120
 
121
121
  return RequestResponse(
@@ -147,10 +147,13 @@ class AsyncProcessor:
147
147
 
148
148
  async def _fetch_type_all_workspaces(self, client, config_type):
149
149
  """Fetch config values of a single type across all workspaces.
150
- Returns dict of {workspace: {key: value}}."""
150
+ Uses getkeys-all-ws to discover workspaces, then fetches values
151
+ per-workspace to avoid oversized responses."""
152
+
153
+ # Step 1: get workspace/key pairs (small response)
151
154
  resp = await client.request(
152
155
  ConfigRequest(
153
- operation="getvalues-all-ws",
156
+ operation="getkeys-all-ws",
154
157
  type=config_type,
155
158
  ),
156
159
  timeout=10,
@@ -158,11 +161,21 @@ class AsyncProcessor:
158
161
  if resp.error:
159
162
  raise RuntimeError(f"Config error: {resp.error.message}")
160
163
 
161
- grouped = {}
164
+ version = resp.version
165
+
166
+ # Group keys by workspace
167
+ workspaces = set()
162
168
  for v in resp.values:
163
- ws = grouped.setdefault(v.workspace, {})
164
- ws[v.key] = v.value
165
- return grouped, resp.version
169
+ workspaces.add(v.workspace)
170
+
171
+ # Step 2: fetch values per workspace
172
+ grouped = {}
173
+ for ws in workspaces:
174
+ kv = await self._fetch_type_workspace(client, ws, config_type)
175
+ if kv:
176
+ grouped[ws] = kv
177
+
178
+ return grouped, version
166
179
 
167
180
  # This is called to start dynamic behaviour.
168
181
  # Implements the subscribe-then-fetch pattern to avoid race conditions.
@@ -21,8 +21,7 @@ class AuditPublisher:
21
21
  schema=AuditEvent,
22
22
  metrics=ProducerMetrics(
23
23
  processor=processor_id or component_name,
24
- flow=None,
25
- name="audit-events",
24
+ producer="audit-events",
26
25
  ),
27
26
  )
28
27
 
@@ -16,7 +16,8 @@ class ConsumerSpec(Spec):
16
16
  def add(self, flow: Any, processor: Any, definition: dict[str, Any]) -> None:
17
17
 
18
18
  consumer_metrics = ConsumerMetrics(
19
- processor = flow.id, flow = flow.name, name = self.name,
19
+ processor=flow.id, consumer=self.name,
20
+ workspace=flow.workspace, flow=flow.name,
20
21
  )
21
22
 
22
23
  consumer = Consumer(
@@ -63,7 +63,7 @@ class DynamicToolService(AsyncProcessor):
63
63
 
64
64
  # Create consumer for requests
65
65
  consumer_metrics = ConsumerMetrics(
66
- processor=self.id, flow=None, name="request"
66
+ processor=self.id, consumer="request",
67
67
  )
68
68
 
69
69
  self.consumer = Consumer(
@@ -79,7 +79,7 @@ class DynamicToolService(AsyncProcessor):
79
79
 
80
80
  # Create producer for responses
81
81
  producer_metrics = ProducerMetrics(
82
- processor=self.id, flow=None, name="response"
82
+ processor=self.id, producer="response",
83
83
  )
84
84
 
85
85
  self.producer = Producer(
@@ -93,7 +93,7 @@ class DynamicToolService(AsyncProcessor):
93
93
  __class__.tool_service_metric = Counter(
94
94
  'dynamic_tool_service_invocation_count',
95
95
  'Dynamic tool service invocation count',
96
- ["id"],
96
+ ["processor"],
97
97
  )
98
98
 
99
99
  async def start(self):
@@ -133,7 +133,7 @@ class DynamicToolService(AsyncProcessor):
133
133
  )
134
134
 
135
135
  __class__.tool_service_metric.labels(
136
- id=self.id,
136
+ processor=self.id,
137
137
  ).inc()
138
138
 
139
139
  except TooManyRequests as e:
@@ -8,7 +8,6 @@ from argparse import ArgumentParser
8
8
 
9
9
  import time
10
10
  import logging
11
- from prometheus_client import Histogram
12
11
 
13
12
  from .. schema import EmbeddingsRequest, EmbeddingsResponse, Error
14
13
  from .. exceptions import TooManyRequests
@@ -75,7 +75,7 @@ class ImageToTextService(FlowProcessor):
75
75
  __class__.image_to_text_metric = Histogram(
76
76
  'image_to_text_duration',
77
77
  'Image-to-text duration (seconds)',
78
- ["id", "flow"],
78
+ ["processor"],
79
79
  buckets=[
80
80
  0.25, 0.5, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0,
81
81
  8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0,
@@ -89,7 +89,7 @@ class ImageToTextService(FlowProcessor):
89
89
  __class__.image_to_text_model_metric = Info(
90
90
  'image_to_text_model',
91
91
  'Image-to-text model',
92
- ["processor", "flow"]
92
+ ["processor"]
93
93
  )
94
94
 
95
95
  async def on_request(self, msg, consumer, flow):
@@ -105,8 +105,7 @@ class ImageToTextService(FlowProcessor):
105
105
  model = flow("model")
106
106
 
107
107
  with __class__.image_to_text_metric.labels(
108
- id=self.id,
109
- flow=f"{flow.name}-{consumer.name}",
108
+ processor=self.id,
110
109
  ).time():
111
110
 
112
111
  response = await self.describe_image(
@@ -126,8 +125,7 @@ class ImageToTextService(FlowProcessor):
126
125
  )
127
126
 
128
127
  __class__.image_to_text_model_metric.labels(
129
- processor = self.id,
130
- flow = flow.name
128
+ processor=self.id,
131
129
  ).info({
132
130
  "model": str(model) if model is not None else "",
133
131
  })
@@ -43,10 +43,12 @@ class LibrarianClient:
43
43
  "librarian_subscriber", f"{id}-librarian",
44
44
  )
45
45
 
46
+ workspace = params.get("workspace")
46
47
  flow_name = params.get("flow_name")
47
48
 
48
49
  librarian_request_metrics = ProducerMetrics(
49
- processor=id, flow=flow_name, name="librarian-request",
50
+ processor=id, producer="librarian-request",
51
+ workspace=workspace, flow=flow_name,
50
52
  )
51
53
 
52
54
  self._producer = Producer(
@@ -57,7 +59,8 @@ class LibrarianClient:
57
59
  )
58
60
 
59
61
  librarian_response_metrics = ConsumerMetrics(
60
- processor=id, flow=flow_name, name="librarian-response",
62
+ processor=id, consumer="librarian-response",
63
+ workspace=workspace, flow=flow_name,
61
64
  )
62
65
 
63
66
  self._consumer = Consumer(
@@ -25,6 +25,7 @@ class LibrarianSpec(Spec):
25
25
  processor.id + "--" + flow.workspace + "--" +
26
26
  flow.name + "--librarian--" + str(uuid.uuid4())
27
27
  ),
28
+ workspace=flow.workspace,
28
29
  flow_name=flow.name,
29
30
  )
30
31
 
@@ -94,7 +94,7 @@ class LlmService(FlowProcessor):
94
94
  __class__.text_completion_metric = Histogram(
95
95
  'text_completion_duration',
96
96
  'Text completion duration (seconds)',
97
- ["id", "flow"],
97
+ ["processor"],
98
98
  buckets=[
99
99
  0.25, 0.5, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0,
100
100
  8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0,
@@ -108,7 +108,7 @@ class LlmService(FlowProcessor):
108
108
  __class__.text_completion_model_metric = Info(
109
109
  'text_completion_model',
110
110
  'Text completion model',
111
- ["processor", "flow"]
111
+ ["processor"]
112
112
  )
113
113
 
114
114
  async def on_request(self, msg, consumer, flow):
@@ -133,8 +133,7 @@ class LlmService(FlowProcessor):
133
133
 
134
134
  # Streaming mode
135
135
  with __class__.text_completion_metric.labels(
136
- id=self.id,
137
- flow=f"{flow.name}-{consumer.name}",
136
+ processor=self.id,
138
137
  ).time():
139
138
 
140
139
  async for chunk in self.generate_content_stream(
@@ -157,8 +156,7 @@ class LlmService(FlowProcessor):
157
156
 
158
157
  # Non-streaming mode (original behavior)
159
158
  with __class__.text_completion_metric.labels(
160
- id=self.id,
161
- flow=f"{flow.name}-{consumer.name}",
159
+ processor=self.id,
162
160
  ).time():
163
161
 
164
162
  response = await self.generate_content(
@@ -179,8 +177,7 @@ class LlmService(FlowProcessor):
179
177
  )
180
178
 
181
179
  __class__.text_completion_model_metric.labels(
182
- processor = self.id,
183
- flow = flow.name
180
+ processor=self.id,
184
181
  ).info({
185
182
  "model": str(model) if model is not None else "",
186
183
  "temperature": str(temperature) if temperature is not None else "",
@@ -6,82 +6,85 @@ from prometheus_client import start_http_server, Info, Enum, Histogram
6
6
  from prometheus_client import Counter
7
7
 
8
8
  class ConsumerMetrics:
9
- """
10
- Metrics tracking and reporting for flow consumers.
11
-
12
- This class manages prometheus metrics specifically related to consumers
13
- within the flow, including state, requests, processing time, and queues.
14
- """
15
9
 
16
- def __init__(self, processor: str, flow: str, name: str) -> None:
10
+ def __init__(self, processor: str, consumer: str,
11
+ workspace: str | None = None,
12
+ flow: str | None = None) -> None:
17
13
 
18
14
  self.processor = processor
15
+ self.consumer = consumer
16
+ self.workspace = workspace
19
17
  self.flow = flow
20
- self.name = name
21
18
 
22
19
  if not hasattr(__class__, "state_metric"):
23
20
  __class__.state_metric = Enum(
24
21
  'consumer_state', 'Consumer state',
25
- ["processor", "flow", "name"],
22
+ ["processor", "workspace", "flow", "consumer"],
26
23
  states=['stopped', 'running']
27
24
  )
28
25
 
29
26
  if not hasattr(__class__, "request_metric"):
30
27
  __class__.request_metric = Histogram(
31
28
  'request_latency', 'Request latency (seconds)',
32
- ["processor", "flow", "name"],
29
+ ["processor", "consumer"],
33
30
  )
34
31
 
35
32
  if not hasattr(__class__, "processing_metric"):
36
33
  __class__.processing_metric = Counter(
37
34
  'processing_count', 'Processing count',
38
- ["processor", "flow", "name", "status"],
35
+ ["processor", "workspace", "flow", "consumer", "status"],
39
36
  )
40
37
 
41
38
  if not hasattr(__class__, "rate_limit_metric"):
42
39
  __class__.rate_limit_metric = Counter(
43
40
  'rate_limit_count', 'Rate limit event count',
44
- ["processor", "flow", "name"],
41
+ ["processor", "workspace", "flow", "consumer"],
45
42
  )
46
43
 
47
44
  def process(self, status: str) -> None:
48
45
  __class__.processing_metric.labels(
49
- processor = self.processor, flow = self.flow, name = self.name,
50
- status=status
46
+ processor=self.processor, workspace=self.workspace,
47
+ flow=self.flow, consumer=self.consumer, status=status,
51
48
  ).inc()
52
49
 
53
50
  def rate_limit(self) -> None:
54
51
  __class__.rate_limit_metric.labels(
55
- processor = self.processor, flow = self.flow, name = self.name,
52
+ processor=self.processor, workspace=self.workspace,
53
+ flow=self.flow, consumer=self.consumer,
56
54
  ).inc()
57
55
 
58
56
  def state(self, state: str) -> None:
59
57
  __class__.state_metric.labels(
60
- processor = self.processor, flow = self.flow, name = self.name,
58
+ processor=self.processor, workspace=self.workspace,
59
+ flow=self.flow, consumer=self.consumer,
61
60
  ).state(state)
62
61
 
63
62
  def record_time(self) -> Any:
64
63
  return __class__.request_metric.labels(
65
- processor = self.processor, flow = self.flow, name = self.name,
64
+ processor=self.processor, consumer=self.consumer,
66
65
  ).time()
67
66
 
68
67
  class ProducerMetrics:
69
68
 
70
- def __init__(self, processor: str, flow: str, name: str) -> None:
69
+ def __init__(self, processor: str, producer: str,
70
+ workspace: str | None = None,
71
+ flow: str | None = None) -> None:
71
72
 
72
73
  self.processor = processor
74
+ self.producer = producer
75
+ self.workspace = workspace
73
76
  self.flow = flow
74
- self.name = name
75
77
 
76
78
  if not hasattr(__class__, "producer_metric"):
77
79
  __class__.producer_metric = Counter(
78
80
  'producer_count', 'Output items produced',
79
- ["processor", "flow", "name"],
81
+ ["processor", "workspace", "flow", "producer"],
80
82
  )
81
83
 
82
84
  def inc(self) -> None:
83
85
  __class__.producer_metric.labels(
84
- processor = self.processor, flow = self.flow, name = self.name
86
+ processor=self.processor, workspace=self.workspace,
87
+ flow=self.flow, producer=self.producer,
85
88
  ).inc()
86
89
 
87
90
  class ProcessorMetrics:
@@ -102,43 +105,48 @@ class ProcessorMetrics:
102
105
 
103
106
  class SubscriberMetrics:
104
107
 
105
- def __init__(self, processor: str, flow: str, name: str) -> None:
108
+ def __init__(self, processor: str, subscriber: str,
109
+ workspace: str | None = None,
110
+ flow: str | None = None) -> None:
106
111
 
107
112
  self.processor = processor
113
+ self.subscriber = subscriber
114
+ self.workspace = workspace
108
115
  self.flow = flow
109
- self.name = name
110
116
 
111
117
  if not hasattr(__class__, "state_metric"):
112
118
  __class__.state_metric = Enum(
113
119
  'subscriber_state', 'Subscriber state',
114
- ["processor", "flow", "name"],
120
+ ["processor", "workspace", "flow", "subscriber"],
115
121
  states=['stopped', 'running']
116
122
  )
117
123
 
118
124
  if not hasattr(__class__, "received_metric"):
119
125
  __class__.received_metric = Counter(
120
126
  'received_count', 'Received count',
121
- ["processor", "flow", "name"],
127
+ ["processor", "workspace", "flow", "subscriber"],
122
128
  )
123
129
 
124
130
  if not hasattr(__class__, "dropped_metric"):
125
131
  __class__.dropped_metric = Counter(
126
132
  'dropped_count', 'Dropped messages count',
127
- ["processor", "flow", "name"],
133
+ ["processor", "workspace", "flow", "subscriber"],
128
134
  )
129
135
 
130
136
  def received(self) -> None:
131
137
  __class__.received_metric.labels(
132
- processor = self.processor, flow = self.flow, name = self.name,
138
+ processor=self.processor, workspace=self.workspace,
139
+ flow=self.flow, subscriber=self.subscriber,
133
140
  ).inc()
134
141
 
135
142
  def state(self, state: str) -> None:
136
-
137
143
  __class__.state_metric.labels(
138
- processor = self.processor, flow = self.flow, name = self.name,
144
+ processor=self.processor, workspace=self.workspace,
145
+ flow=self.flow, subscriber=self.subscriber,
139
146
  ).state(state)
140
147
 
141
148
  def dropped(self, state: str) -> None:
142
149
  __class__.dropped_metric.labels(
143
- processor = self.processor, flow = self.flow, name = self.name,
150
+ processor=self.processor, workspace=self.workspace,
151
+ flow=self.flow, subscriber=self.subscriber,
144
152
  ).inc()
@@ -42,24 +42,25 @@ class Producer:
42
42
 
43
43
  if not self.running: return
44
44
 
45
- while self.running and self.producer is None:
45
+ while self.running:
46
46
 
47
- try:
48
- logger.info(f"Connecting publisher to {self.topic}...")
49
- self.producer = self.backend.create_producer(
50
- topic = self.topic,
51
- schema = self.schema,
52
- chunking_enabled = self.chunking_enabled,
53
- )
54
- logger.info(f"Connected publisher to {self.topic}")
55
- except Exception as e:
56
- logger.error(f"Exception connecting publisher: {e}", exc_info=True)
57
- await asyncio.sleep(2)
47
+ # Reconnect if needed
48
+ while self.running and self.producer is None:
49
+
50
+ try:
51
+ logger.info(f"Connecting publisher to {self.topic}...")
52
+ self.producer = self.backend.create_producer(
53
+ topic = self.topic,
54
+ schema = self.schema,
55
+ chunking_enabled = self.chunking_enabled,
56
+ )
57
+ logger.info(f"Connected publisher to {self.topic}")
58
+ except Exception as e:
59
+ logger.error(f"Exception connecting publisher: {e}", exc_info=True)
60
+ await asyncio.sleep(2)
58
61
 
59
62
  if not self.running: break
60
63
 
61
- while self.running:
62
-
63
64
  try:
64
65
 
65
66
  await asyncio.to_thread(
@@ -75,6 +76,7 @@ class Producer:
75
76
 
76
77
  except Exception as e:
77
78
  logger.error(f"Exception sending message: {e}", exc_info=True)
78
- self.producer.close()
79
+ if self.producer:
80
+ self.producer.close()
79
81
  self.producer = None
80
82
 
@@ -14,7 +14,8 @@ class ProducerSpec(Spec):
14
14
  def add(self, flow: Any, processor: Any, definition: dict[str, Any]) -> None:
15
15
 
16
16
  producer_metrics = ProducerMetrics(
17
- processor = flow.id, flow = flow.name, name = self.name
17
+ processor=flow.id, producer=self.name,
18
+ workspace=flow.workspace, flow=flow.name,
18
19
  )
19
20
 
20
21
  producer = Producer(
@@ -132,11 +132,13 @@ class RequestResponseSpec(Spec):
132
132
  return
133
133
 
134
134
  request_metrics = ProducerMetrics(
135
- processor = flow.id, flow = flow.name, name = self.request_name
135
+ processor=flow.id, producer=self.request_name,
136
+ workspace=flow.workspace, flow=flow.name,
136
137
  )
137
138
 
138
139
  response_metrics = SubscriberMetrics(
139
- processor = flow.id, flow = flow.name, name = self.request_name
140
+ processor=flow.id, subscriber=self.response_name,
141
+ workspace=flow.workspace, flow=flow.name,
140
142
  )
141
143
 
142
144
  rr = self.impl(
@@ -15,7 +15,8 @@ class SubscriberSpec(Spec):
15
15
  def add(self, flow: Any, processor: Any, definition: dict[str, Any]) -> None:
16
16
 
17
17
  subscriber_metrics = SubscriberMetrics(
18
- processor = flow.id, flow = flow.name, name = self.name
18
+ processor=flow.id, subscriber=self.name,
19
+ workspace=flow.workspace, flow=flow.name,
19
20
  )
20
21
 
21
22
  subscriber = Subscriber(
@@ -50,7 +50,7 @@ class ToolService(FlowProcessor):
50
50
  if not hasattr(__class__, "tool_invocation_metric"):
51
51
  __class__.tool_invocation_metric = Counter(
52
52
  'tool_invocation_count', 'Tool invocation count',
53
- ["id", "flow", "name"],
53
+ ["processor", "workspace", "flow", "tool"],
54
54
  )
55
55
 
56
56
  async def on_request(self, msg, consumer, flow):
@@ -89,7 +89,8 @@ class ToolService(FlowProcessor):
89
89
  )
90
90
 
91
91
  __class__.tool_invocation_metric.labels(
92
- id = self.id, flow = flow.name, name = request.name,
92
+ processor=self.id, workspace=flow.workspace,
93
+ flow=flow.name, tool=request.name,
93
94
  ).inc()
94
95
 
95
96
  except TooManyRequests as e:
@@ -0,0 +1 @@
1
+ __version__ = "2.7.13"
@@ -11,6 +11,7 @@ from ..core.primitives import Error
11
11
  # list(workspace, type) -> (version, directory)
12
12
  # getvalues(workspace, type) -> (version, values)
13
13
  # getvalues-all-ws(type) -> (version, values with workspace field)
14
+ # getkeys-all-ws(type) -> (version, values with workspace+key, no value)
14
15
  # put(workspace, values) -> ()
15
16
  # delete(workspace, keys) -> ()
16
17
  # config(workspace) -> (version, config)
@@ -36,8 +37,8 @@ class ConfigValue:
36
37
 
37
38
  @dataclass
38
39
  class ConfigRequest:
39
- # Operations: get, list, getvalues, getvalues-all-ws, delete, put,
40
- # config
40
+ # Operations: get, list, getvalues, getvalues-all-ws,
41
+ # getkeys-all-ws, delete, put, config
41
42
  operation: str = ""
42
43
 
43
44
  # Workspace scope — required on all operations except
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: trustgraph-base
3
- Version: 2.7.12
3
+ Version: 2.7.13
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.7.12"