trustgraph-base 2.3.8__tar.gz → 2.3.10__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_base-2.3.8 → trustgraph_base-2.3.10}/PKG-INFO +1 -1
- {trustgraph_base-2.3.8 → trustgraph_base-2.3.10}/pyproject.toml +6 -0
- {trustgraph_base-2.3.8 → trustgraph_base-2.3.10}/trustgraph/base/parameter_spec.py +2 -2
- trustgraph_base-2.3.10/trustgraph/base/processor_group.py +197 -0
- trustgraph_base-2.3.10/trustgraph/base_version.py +1 -0
- trustgraph_base-2.3.10/trustgraph/i18n/__init__.py +156 -0
- trustgraph_base-2.3.10/trustgraph/i18n/packs/__init__.py +1 -0
- trustgraph_base-2.3.10/trustgraph/i18n/packs/ar.json +54 -0
- trustgraph_base-2.3.10/trustgraph/i18n/packs/en.json +54 -0
- trustgraph_base-2.3.10/trustgraph/i18n/packs/es.json +54 -0
- trustgraph_base-2.3.10/trustgraph/i18n/packs/he.json +54 -0
- trustgraph_base-2.3.10/trustgraph/i18n/packs/hi.json +54 -0
- trustgraph_base-2.3.10/trustgraph/i18n/packs/pt.json +54 -0
- trustgraph_base-2.3.10/trustgraph/i18n/packs/ru.json +54 -0
- trustgraph_base-2.3.10/trustgraph/i18n/packs/sw.json +54 -0
- trustgraph_base-2.3.10/trustgraph/i18n/packs/tr.json +54 -0
- trustgraph_base-2.3.10/trustgraph/i18n/packs/zh-cn.json +54 -0
- {trustgraph_base-2.3.8 → trustgraph_base-2.3.10}/trustgraph_base.egg-info/PKG-INFO +1 -1
- {trustgraph_base-2.3.8 → trustgraph_base-2.3.10}/trustgraph_base.egg-info/SOURCES.txt +14 -0
- trustgraph_base-2.3.10/trustgraph_base.egg-info/entry_points.txt +2 -0
- trustgraph_base-2.3.8/trustgraph/base_version.py +0 -1
- {trustgraph_base-2.3.8 → trustgraph_base-2.3.10}/README.md +0 -0
- {trustgraph_base-2.3.8 → trustgraph_base-2.3.10}/setup.cfg +0 -0
- {trustgraph_base-2.3.8 → trustgraph_base-2.3.10}/trustgraph/api/__init__.py +0 -0
- {trustgraph_base-2.3.8 → trustgraph_base-2.3.10}/trustgraph/api/api.py +0 -0
- {trustgraph_base-2.3.8 → trustgraph_base-2.3.10}/trustgraph/api/async_bulk_client.py +0 -0
- {trustgraph_base-2.3.8 → trustgraph_base-2.3.10}/trustgraph/api/async_flow.py +0 -0
- {trustgraph_base-2.3.8 → trustgraph_base-2.3.10}/trustgraph/api/async_metrics.py +0 -0
- {trustgraph_base-2.3.8 → trustgraph_base-2.3.10}/trustgraph/api/async_socket_client.py +0 -0
- {trustgraph_base-2.3.8 → trustgraph_base-2.3.10}/trustgraph/api/bulk_client.py +0 -0
- {trustgraph_base-2.3.8 → trustgraph_base-2.3.10}/trustgraph/api/collection.py +0 -0
- {trustgraph_base-2.3.8 → trustgraph_base-2.3.10}/trustgraph/api/config.py +0 -0
- {trustgraph_base-2.3.8 → trustgraph_base-2.3.10}/trustgraph/api/exceptions.py +0 -0
- {trustgraph_base-2.3.8 → trustgraph_base-2.3.10}/trustgraph/api/explainability.py +0 -0
- {trustgraph_base-2.3.8 → trustgraph_base-2.3.10}/trustgraph/api/flow.py +0 -0
- {trustgraph_base-2.3.8 → trustgraph_base-2.3.10}/trustgraph/api/knowledge.py +0 -0
- {trustgraph_base-2.3.8 → trustgraph_base-2.3.10}/trustgraph/api/library.py +0 -0
- {trustgraph_base-2.3.8 → trustgraph_base-2.3.10}/trustgraph/api/metrics.py +0 -0
- {trustgraph_base-2.3.8 → trustgraph_base-2.3.10}/trustgraph/api/socket_client.py +0 -0
- {trustgraph_base-2.3.8 → trustgraph_base-2.3.10}/trustgraph/api/types.py +0 -0
- {trustgraph_base-2.3.8 → trustgraph_base-2.3.10}/trustgraph/base/__init__.py +0 -0
- {trustgraph_base-2.3.8 → trustgraph_base-2.3.10}/trustgraph/base/agent_client.py +0 -0
- {trustgraph_base-2.3.8 → trustgraph_base-2.3.10}/trustgraph/base/agent_service.py +0 -0
- {trustgraph_base-2.3.8 → trustgraph_base-2.3.10}/trustgraph/base/async_processor.py +0 -0
- {trustgraph_base-2.3.8 → trustgraph_base-2.3.10}/trustgraph/base/backend.py +0 -0
- {trustgraph_base-2.3.8 → trustgraph_base-2.3.10}/trustgraph/base/cassandra_config.py +0 -0
- {trustgraph_base-2.3.8 → trustgraph_base-2.3.10}/trustgraph/base/chunking_service.py +0 -0
- {trustgraph_base-2.3.8 → trustgraph_base-2.3.10}/trustgraph/base/collection_config_handler.py +0 -0
- {trustgraph_base-2.3.8 → trustgraph_base-2.3.10}/trustgraph/base/consumer.py +0 -0
- {trustgraph_base-2.3.8 → trustgraph_base-2.3.10}/trustgraph/base/consumer_spec.py +0 -0
- {trustgraph_base-2.3.8 → trustgraph_base-2.3.10}/trustgraph/base/document_embeddings_client.py +0 -0
- {trustgraph_base-2.3.8 → trustgraph_base-2.3.10}/trustgraph/base/document_embeddings_query_service.py +0 -0
- {trustgraph_base-2.3.8 → trustgraph_base-2.3.10}/trustgraph/base/document_embeddings_store_service.py +0 -0
- {trustgraph_base-2.3.8 → trustgraph_base-2.3.10}/trustgraph/base/dynamic_tool_service.py +0 -0
- {trustgraph_base-2.3.8 → trustgraph_base-2.3.10}/trustgraph/base/embeddings_client.py +0 -0
- {trustgraph_base-2.3.8 → trustgraph_base-2.3.10}/trustgraph/base/embeddings_service.py +0 -0
- {trustgraph_base-2.3.8 → trustgraph_base-2.3.10}/trustgraph/base/flow.py +0 -0
- {trustgraph_base-2.3.8 → trustgraph_base-2.3.10}/trustgraph/base/flow_processor.py +0 -0
- {trustgraph_base-2.3.8 → trustgraph_base-2.3.10}/trustgraph/base/graph_embeddings_client.py +0 -0
- {trustgraph_base-2.3.8 → trustgraph_base-2.3.10}/trustgraph/base/graph_embeddings_query_service.py +0 -0
- {trustgraph_base-2.3.8 → trustgraph_base-2.3.10}/trustgraph/base/graph_embeddings_store_service.py +0 -0
- {trustgraph_base-2.3.8 → trustgraph_base-2.3.10}/trustgraph/base/graph_rag_client.py +0 -0
- {trustgraph_base-2.3.8 → trustgraph_base-2.3.10}/trustgraph/base/librarian_client.py +0 -0
- {trustgraph_base-2.3.8 → trustgraph_base-2.3.10}/trustgraph/base/llm_service.py +0 -0
- {trustgraph_base-2.3.8 → trustgraph_base-2.3.10}/trustgraph/base/logging.py +0 -0
- {trustgraph_base-2.3.8 → trustgraph_base-2.3.10}/trustgraph/base/metrics.py +0 -0
- {trustgraph_base-2.3.8 → trustgraph_base-2.3.10}/trustgraph/base/producer.py +0 -0
- {trustgraph_base-2.3.8 → trustgraph_base-2.3.10}/trustgraph/base/producer_spec.py +0 -0
- {trustgraph_base-2.3.8 → trustgraph_base-2.3.10}/trustgraph/base/prompt_client.py +0 -0
- {trustgraph_base-2.3.8 → trustgraph_base-2.3.10}/trustgraph/base/publisher.py +0 -0
- {trustgraph_base-2.3.8 → trustgraph_base-2.3.10}/trustgraph/base/pubsub.py +0 -0
- {trustgraph_base-2.3.8 → trustgraph_base-2.3.10}/trustgraph/base/pulsar_backend.py +0 -0
- {trustgraph_base-2.3.8 → trustgraph_base-2.3.10}/trustgraph/base/rabbitmq_backend.py +0 -0
- {trustgraph_base-2.3.8 → trustgraph_base-2.3.10}/trustgraph/base/request_response_spec.py +0 -0
- {trustgraph_base-2.3.8 → trustgraph_base-2.3.10}/trustgraph/base/row_embeddings_query_client.py +0 -0
- {trustgraph_base-2.3.8 → trustgraph_base-2.3.10}/trustgraph/base/serialization.py +0 -0
- {trustgraph_base-2.3.8 → trustgraph_base-2.3.10}/trustgraph/base/spec.py +0 -0
- {trustgraph_base-2.3.8 → trustgraph_base-2.3.10}/trustgraph/base/structured_query_client.py +0 -0
- {trustgraph_base-2.3.8 → trustgraph_base-2.3.10}/trustgraph/base/subscriber.py +0 -0
- {trustgraph_base-2.3.8 → trustgraph_base-2.3.10}/trustgraph/base/subscriber_spec.py +0 -0
- {trustgraph_base-2.3.8 → trustgraph_base-2.3.10}/trustgraph/base/text_completion_client.py +0 -0
- {trustgraph_base-2.3.8 → trustgraph_base-2.3.10}/trustgraph/base/tool_client.py +0 -0
- {trustgraph_base-2.3.8 → trustgraph_base-2.3.10}/trustgraph/base/tool_service.py +0 -0
- {trustgraph_base-2.3.8 → trustgraph_base-2.3.10}/trustgraph/base/tool_service_client.py +0 -0
- {trustgraph_base-2.3.8 → trustgraph_base-2.3.10}/trustgraph/base/triples_client.py +0 -0
- {trustgraph_base-2.3.8 → trustgraph_base-2.3.10}/trustgraph/base/triples_query_service.py +0 -0
- {trustgraph_base-2.3.8 → trustgraph_base-2.3.10}/trustgraph/base/triples_store_service.py +0 -0
- {trustgraph_base-2.3.8 → trustgraph_base-2.3.10}/trustgraph/clients/__init__.py +0 -0
- {trustgraph_base-2.3.8 → trustgraph_base-2.3.10}/trustgraph/clients/agent_client.py +0 -0
- {trustgraph_base-2.3.8 → trustgraph_base-2.3.10}/trustgraph/clients/base.py +0 -0
- {trustgraph_base-2.3.8 → trustgraph_base-2.3.10}/trustgraph/clients/config_client.py +0 -0
- {trustgraph_base-2.3.8 → trustgraph_base-2.3.10}/trustgraph/clients/document_embeddings_client.py +0 -0
- {trustgraph_base-2.3.8 → trustgraph_base-2.3.10}/trustgraph/clients/document_rag_client.py +0 -0
- {trustgraph_base-2.3.8 → trustgraph_base-2.3.10}/trustgraph/clients/embeddings_client.py +0 -0
- {trustgraph_base-2.3.8 → trustgraph_base-2.3.10}/trustgraph/clients/graph_embeddings_client.py +0 -0
- {trustgraph_base-2.3.8 → trustgraph_base-2.3.10}/trustgraph/clients/graph_rag_client.py +0 -0
- {trustgraph_base-2.3.8 → trustgraph_base-2.3.10}/trustgraph/clients/llm_client.py +0 -0
- {trustgraph_base-2.3.8 → trustgraph_base-2.3.10}/trustgraph/clients/prompt_client.py +0 -0
- {trustgraph_base-2.3.8 → trustgraph_base-2.3.10}/trustgraph/clients/row_embeddings_client.py +0 -0
- {trustgraph_base-2.3.8 → trustgraph_base-2.3.10}/trustgraph/clients/triples_query_client.py +0 -0
- {trustgraph_base-2.3.8 → trustgraph_base-2.3.10}/trustgraph/exceptions.py +0 -0
- {trustgraph_base-2.3.8 → trustgraph_base-2.3.10}/trustgraph/knowledge/__init__.py +0 -0
- {trustgraph_base-2.3.8 → trustgraph_base-2.3.10}/trustgraph/knowledge/defs.py +0 -0
- {trustgraph_base-2.3.8 → trustgraph_base-2.3.10}/trustgraph/knowledge/document.py +0 -0
- {trustgraph_base-2.3.8 → trustgraph_base-2.3.10}/trustgraph/knowledge/identifier.py +0 -0
- {trustgraph_base-2.3.8 → trustgraph_base-2.3.10}/trustgraph/knowledge/organization.py +0 -0
- {trustgraph_base-2.3.8 → trustgraph_base-2.3.10}/trustgraph/knowledge/publication.py +0 -0
- {trustgraph_base-2.3.8 → trustgraph_base-2.3.10}/trustgraph/log_level.py +0 -0
- {trustgraph_base-2.3.8 → trustgraph_base-2.3.10}/trustgraph/messaging/__init__.py +0 -0
- {trustgraph_base-2.3.8 → trustgraph_base-2.3.10}/trustgraph/messaging/registry.py +0 -0
- {trustgraph_base-2.3.8 → trustgraph_base-2.3.10}/trustgraph/messaging/translators/__init__.py +0 -0
- {trustgraph_base-2.3.8 → trustgraph_base-2.3.10}/trustgraph/messaging/translators/agent.py +0 -0
- {trustgraph_base-2.3.8 → trustgraph_base-2.3.10}/trustgraph/messaging/translators/base.py +0 -0
- {trustgraph_base-2.3.8 → trustgraph_base-2.3.10}/trustgraph/messaging/translators/collection.py +0 -0
- {trustgraph_base-2.3.8 → trustgraph_base-2.3.10}/trustgraph/messaging/translators/config.py +0 -0
- {trustgraph_base-2.3.8 → trustgraph_base-2.3.10}/trustgraph/messaging/translators/diagnosis.py +0 -0
- {trustgraph_base-2.3.8 → trustgraph_base-2.3.10}/trustgraph/messaging/translators/document_loading.py +0 -0
- {trustgraph_base-2.3.8 → trustgraph_base-2.3.10}/trustgraph/messaging/translators/embeddings.py +0 -0
- {trustgraph_base-2.3.8 → trustgraph_base-2.3.10}/trustgraph/messaging/translators/embeddings_query.py +0 -0
- {trustgraph_base-2.3.8 → trustgraph_base-2.3.10}/trustgraph/messaging/translators/flow.py +0 -0
- {trustgraph_base-2.3.8 → trustgraph_base-2.3.10}/trustgraph/messaging/translators/knowledge.py +0 -0
- {trustgraph_base-2.3.8 → trustgraph_base-2.3.10}/trustgraph/messaging/translators/library.py +0 -0
- {trustgraph_base-2.3.8 → trustgraph_base-2.3.10}/trustgraph/messaging/translators/metadata.py +0 -0
- {trustgraph_base-2.3.8 → trustgraph_base-2.3.10}/trustgraph/messaging/translators/nlp_query.py +0 -0
- {trustgraph_base-2.3.8 → trustgraph_base-2.3.10}/trustgraph/messaging/translators/primitives.py +0 -0
- {trustgraph_base-2.3.8 → trustgraph_base-2.3.10}/trustgraph/messaging/translators/prompt.py +0 -0
- {trustgraph_base-2.3.8 → trustgraph_base-2.3.10}/trustgraph/messaging/translators/retrieval.py +0 -0
- {trustgraph_base-2.3.8 → trustgraph_base-2.3.10}/trustgraph/messaging/translators/rows_query.py +0 -0
- {trustgraph_base-2.3.8 → trustgraph_base-2.3.10}/trustgraph/messaging/translators/sparql_query.py +0 -0
- {trustgraph_base-2.3.8 → trustgraph_base-2.3.10}/trustgraph/messaging/translators/structured_query.py +0 -0
- {trustgraph_base-2.3.8 → trustgraph_base-2.3.10}/trustgraph/messaging/translators/text_completion.py +0 -0
- {trustgraph_base-2.3.8 → trustgraph_base-2.3.10}/trustgraph/messaging/translators/tool.py +0 -0
- {trustgraph_base-2.3.8 → trustgraph_base-2.3.10}/trustgraph/messaging/translators/triples.py +0 -0
- {trustgraph_base-2.3.8 → trustgraph_base-2.3.10}/trustgraph/objects/__init__.py +0 -0
- {trustgraph_base-2.3.8 → trustgraph_base-2.3.10}/trustgraph/objects/field.py +0 -0
- {trustgraph_base-2.3.8 → trustgraph_base-2.3.10}/trustgraph/objects/object.py +0 -0
- {trustgraph_base-2.3.8 → trustgraph_base-2.3.10}/trustgraph/provenance/__init__.py +0 -0
- {trustgraph_base-2.3.8 → trustgraph_base-2.3.10}/trustgraph/provenance/agent.py +0 -0
- {trustgraph_base-2.3.8 → trustgraph_base-2.3.10}/trustgraph/provenance/namespaces.py +0 -0
- {trustgraph_base-2.3.8 → trustgraph_base-2.3.10}/trustgraph/provenance/triples.py +0 -0
- {trustgraph_base-2.3.8 → trustgraph_base-2.3.10}/trustgraph/provenance/uris.py +0 -0
- {trustgraph_base-2.3.8 → trustgraph_base-2.3.10}/trustgraph/provenance/vocabulary.py +0 -0
- {trustgraph_base-2.3.8 → trustgraph_base-2.3.10}/trustgraph/rdf.py +0 -0
- {trustgraph_base-2.3.8 → trustgraph_base-2.3.10}/trustgraph/schema/__init__.py +0 -0
- {trustgraph_base-2.3.8 → trustgraph_base-2.3.10}/trustgraph/schema/core/__init__.py +0 -0
- {trustgraph_base-2.3.8 → trustgraph_base-2.3.10}/trustgraph/schema/core/metadata.py +0 -0
- {trustgraph_base-2.3.8 → trustgraph_base-2.3.10}/trustgraph/schema/core/primitives.py +0 -0
- {trustgraph_base-2.3.8 → trustgraph_base-2.3.10}/trustgraph/schema/core/topic.py +0 -0
- {trustgraph_base-2.3.8 → trustgraph_base-2.3.10}/trustgraph/schema/knowledge/__init__.py +0 -0
- {trustgraph_base-2.3.8 → trustgraph_base-2.3.10}/trustgraph/schema/knowledge/document.py +0 -0
- {trustgraph_base-2.3.8 → trustgraph_base-2.3.10}/trustgraph/schema/knowledge/embeddings.py +0 -0
- {trustgraph_base-2.3.8 → trustgraph_base-2.3.10}/trustgraph/schema/knowledge/graph.py +0 -0
- {trustgraph_base-2.3.8 → trustgraph_base-2.3.10}/trustgraph/schema/knowledge/knowledge.py +0 -0
- {trustgraph_base-2.3.8 → trustgraph_base-2.3.10}/trustgraph/schema/knowledge/nlp.py +0 -0
- {trustgraph_base-2.3.8 → trustgraph_base-2.3.10}/trustgraph/schema/knowledge/object.py +0 -0
- {trustgraph_base-2.3.8 → trustgraph_base-2.3.10}/trustgraph/schema/knowledge/rows.py +0 -0
- {trustgraph_base-2.3.8 → trustgraph_base-2.3.10}/trustgraph/schema/knowledge/structured.py +0 -0
- {trustgraph_base-2.3.8 → trustgraph_base-2.3.10}/trustgraph/schema/services/__init__.py +0 -0
- {trustgraph_base-2.3.8 → trustgraph_base-2.3.10}/trustgraph/schema/services/agent.py +0 -0
- {trustgraph_base-2.3.8 → trustgraph_base-2.3.10}/trustgraph/schema/services/collection.py +0 -0
- {trustgraph_base-2.3.8 → trustgraph_base-2.3.10}/trustgraph/schema/services/config.py +0 -0
- {trustgraph_base-2.3.8 → trustgraph_base-2.3.10}/trustgraph/schema/services/diagnosis.py +0 -0
- {trustgraph_base-2.3.8 → trustgraph_base-2.3.10}/trustgraph/schema/services/flow.py +0 -0
- {trustgraph_base-2.3.8 → trustgraph_base-2.3.10}/trustgraph/schema/services/library.py +0 -0
- {trustgraph_base-2.3.8 → trustgraph_base-2.3.10}/trustgraph/schema/services/llm.py +0 -0
- {trustgraph_base-2.3.8 → trustgraph_base-2.3.10}/trustgraph/schema/services/lookup.py +0 -0
- {trustgraph_base-2.3.8 → trustgraph_base-2.3.10}/trustgraph/schema/services/nlp_query.py +0 -0
- {trustgraph_base-2.3.8 → trustgraph_base-2.3.10}/trustgraph/schema/services/prompt.py +0 -0
- {trustgraph_base-2.3.8 → trustgraph_base-2.3.10}/trustgraph/schema/services/query.py +0 -0
- {trustgraph_base-2.3.8 → trustgraph_base-2.3.10}/trustgraph/schema/services/retrieval.py +0 -0
- {trustgraph_base-2.3.8 → trustgraph_base-2.3.10}/trustgraph/schema/services/rows_query.py +0 -0
- {trustgraph_base-2.3.8 → trustgraph_base-2.3.10}/trustgraph/schema/services/sparql_query.py +0 -0
- {trustgraph_base-2.3.8 → trustgraph_base-2.3.10}/trustgraph/schema/services/storage.py +0 -0
- {trustgraph_base-2.3.8 → trustgraph_base-2.3.10}/trustgraph/schema/services/structured_query.py +0 -0
- {trustgraph_base-2.3.8 → trustgraph_base-2.3.10}/trustgraph/schema/services/tool_service.py +0 -0
- {trustgraph_base-2.3.8 → trustgraph_base-2.3.10}/trustgraph_base.egg-info/dependency_links.txt +0 -0
- {trustgraph_base-2.3.8 → trustgraph_base-2.3.10}/trustgraph_base.egg-info/requires.txt +0 -0
- {trustgraph_base-2.3.8 → trustgraph_base-2.3.10}/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.3.
|
|
3
|
+
Version: 2.3.10
|
|
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
|
|
@@ -24,8 +24,14 @@ classifiers = [
|
|
|
24
24
|
[project.urls]
|
|
25
25
|
Homepage = "https://github.com/trustgraph-ai/trustgraph"
|
|
26
26
|
|
|
27
|
+
[project.scripts]
|
|
28
|
+
processor-group = "trustgraph.base.processor_group:run"
|
|
29
|
+
|
|
27
30
|
[tool.setuptools.packages.find]
|
|
28
31
|
include = ["trustgraph*"]
|
|
29
32
|
|
|
33
|
+
[tool.setuptools.package-data]
|
|
34
|
+
"trustgraph.i18n.packs" = ["*.json"]
|
|
35
|
+
|
|
30
36
|
[tool.setuptools.dynamic]
|
|
31
37
|
version = {attr = "trustgraph.base_version.__version__"}
|
|
@@ -0,0 +1,197 @@
|
|
|
1
|
+
|
|
2
|
+
# Multi-processor group runner. Runs multiple AsyncProcessor descendants
|
|
3
|
+
# as concurrent tasks inside a single process, sharing one event loop,
|
|
4
|
+
# one Prometheus HTTP server, and one pub/sub backend pool.
|
|
5
|
+
#
|
|
6
|
+
# Intended for dev and resource-constrained deployments. Scale deployments
|
|
7
|
+
# should continue to use per-processor endpoints.
|
|
8
|
+
#
|
|
9
|
+
# Group config is a YAML or JSON file with shape:
|
|
10
|
+
#
|
|
11
|
+
# processors:
|
|
12
|
+
# - class: trustgraph.extract.kg.definitions.extract.Processor
|
|
13
|
+
# params:
|
|
14
|
+
# id: kg-extract-definitions
|
|
15
|
+
# triples_batch_size: 1000
|
|
16
|
+
# - class: trustgraph.chunking.recursive.Processor
|
|
17
|
+
# params:
|
|
18
|
+
# id: chunker-recursive
|
|
19
|
+
#
|
|
20
|
+
# Each entry's params are passed directly to the class constructor alongside
|
|
21
|
+
# the shared taskgroup. Defaults live inside each processor class.
|
|
22
|
+
|
|
23
|
+
import argparse
|
|
24
|
+
import asyncio
|
|
25
|
+
import importlib
|
|
26
|
+
import json
|
|
27
|
+
import logging
|
|
28
|
+
import time
|
|
29
|
+
|
|
30
|
+
from prometheus_client import start_http_server
|
|
31
|
+
|
|
32
|
+
from . logging import add_logging_args, setup_logging
|
|
33
|
+
|
|
34
|
+
logger = logging.getLogger(__name__)
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
def _load_config(path):
|
|
38
|
+
with open(path) as f:
|
|
39
|
+
text = f.read()
|
|
40
|
+
if path.endswith((".yaml", ".yml")):
|
|
41
|
+
import yaml
|
|
42
|
+
return yaml.safe_load(text)
|
|
43
|
+
return json.loads(text)
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
def _resolve_class(dotted):
|
|
47
|
+
module_path, _, class_name = dotted.rpartition(".")
|
|
48
|
+
if not module_path:
|
|
49
|
+
raise ValueError(
|
|
50
|
+
f"Processor class must be a dotted path, got {dotted!r}"
|
|
51
|
+
)
|
|
52
|
+
module = importlib.import_module(module_path)
|
|
53
|
+
return getattr(module, class_name)
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
RESTART_DELAY_SECONDS = 4
|
|
57
|
+
|
|
58
|
+
|
|
59
|
+
async def _supervise(entry):
|
|
60
|
+
"""Run one processor with its own nested TaskGroup, restarting on any
|
|
61
|
+
failure. Each processor is isolated from its siblings — a crash here
|
|
62
|
+
does not propagate to the outer group."""
|
|
63
|
+
|
|
64
|
+
pid = entry["params"]["id"]
|
|
65
|
+
class_path = entry["class"]
|
|
66
|
+
|
|
67
|
+
while True:
|
|
68
|
+
|
|
69
|
+
try:
|
|
70
|
+
|
|
71
|
+
async with asyncio.TaskGroup() as inner_tg:
|
|
72
|
+
|
|
73
|
+
cls = _resolve_class(class_path)
|
|
74
|
+
params = dict(entry.get("params", {}))
|
|
75
|
+
params["taskgroup"] = inner_tg
|
|
76
|
+
|
|
77
|
+
logger.info(f"Starting {class_path} as {pid}")
|
|
78
|
+
|
|
79
|
+
p = cls(**params)
|
|
80
|
+
await p.start()
|
|
81
|
+
inner_tg.create_task(p.run())
|
|
82
|
+
|
|
83
|
+
# Clean exit — processor's run() returned without raising.
|
|
84
|
+
# Treat as a transient shutdown and restart, matching the
|
|
85
|
+
# behaviour of per-container `restart: on-failure`.
|
|
86
|
+
logger.warning(
|
|
87
|
+
f"Processor {pid} exited cleanly, will restart"
|
|
88
|
+
)
|
|
89
|
+
|
|
90
|
+
except asyncio.CancelledError:
|
|
91
|
+
logger.info(f"Processor {pid} cancelled")
|
|
92
|
+
raise
|
|
93
|
+
|
|
94
|
+
except BaseExceptionGroup as eg:
|
|
95
|
+
for e in eg.exceptions:
|
|
96
|
+
logger.error(
|
|
97
|
+
f"Processor {pid} failure: {type(e).__name__}: {e}",
|
|
98
|
+
exc_info=e,
|
|
99
|
+
)
|
|
100
|
+
|
|
101
|
+
except Exception as e:
|
|
102
|
+
logger.error(
|
|
103
|
+
f"Processor {pid} failure: {type(e).__name__}: {e}",
|
|
104
|
+
exc_info=True,
|
|
105
|
+
)
|
|
106
|
+
|
|
107
|
+
logger.info(
|
|
108
|
+
f"Restarting {pid} in {RESTART_DELAY_SECONDS}s..."
|
|
109
|
+
)
|
|
110
|
+
await asyncio.sleep(RESTART_DELAY_SECONDS)
|
|
111
|
+
|
|
112
|
+
|
|
113
|
+
async def run_group(config):
|
|
114
|
+
|
|
115
|
+
entries = config.get("processors", [])
|
|
116
|
+
if not entries:
|
|
117
|
+
raise RuntimeError("Group config has no processors")
|
|
118
|
+
|
|
119
|
+
seen_ids = set()
|
|
120
|
+
for entry in entries:
|
|
121
|
+
pid = entry.get("params", {}).get("id")
|
|
122
|
+
if pid is None:
|
|
123
|
+
raise RuntimeError(
|
|
124
|
+
f"Entry {entry.get('class')!r} missing params.id — "
|
|
125
|
+
f"required for metrics labelling"
|
|
126
|
+
)
|
|
127
|
+
if pid in seen_ids:
|
|
128
|
+
raise RuntimeError(f"Duplicate processor id {pid!r} in group")
|
|
129
|
+
seen_ids.add(pid)
|
|
130
|
+
|
|
131
|
+
async with asyncio.TaskGroup() as outer_tg:
|
|
132
|
+
for entry in entries:
|
|
133
|
+
outer_tg.create_task(_supervise(entry))
|
|
134
|
+
|
|
135
|
+
|
|
136
|
+
def run():
|
|
137
|
+
|
|
138
|
+
parser = argparse.ArgumentParser(
|
|
139
|
+
prog="processor-group",
|
|
140
|
+
description="Run multiple processors as tasks in one process",
|
|
141
|
+
)
|
|
142
|
+
|
|
143
|
+
parser.add_argument(
|
|
144
|
+
"-c", "--config",
|
|
145
|
+
required=True,
|
|
146
|
+
help="Path to group config file (JSON or YAML)",
|
|
147
|
+
)
|
|
148
|
+
|
|
149
|
+
parser.add_argument(
|
|
150
|
+
"--metrics",
|
|
151
|
+
action=argparse.BooleanOptionalAction,
|
|
152
|
+
default=True,
|
|
153
|
+
help="Metrics enabled (default: true)",
|
|
154
|
+
)
|
|
155
|
+
|
|
156
|
+
parser.add_argument(
|
|
157
|
+
"-P", "--metrics-port",
|
|
158
|
+
type=int,
|
|
159
|
+
default=8000,
|
|
160
|
+
help="Prometheus metrics port (default: 8000)",
|
|
161
|
+
)
|
|
162
|
+
|
|
163
|
+
add_logging_args(parser)
|
|
164
|
+
|
|
165
|
+
args = vars(parser.parse_args())
|
|
166
|
+
|
|
167
|
+
setup_logging(args)
|
|
168
|
+
|
|
169
|
+
config = _load_config(args["config"])
|
|
170
|
+
|
|
171
|
+
if args["metrics"]:
|
|
172
|
+
start_http_server(args["metrics_port"])
|
|
173
|
+
|
|
174
|
+
while True:
|
|
175
|
+
|
|
176
|
+
logger.info("Starting group...")
|
|
177
|
+
|
|
178
|
+
try:
|
|
179
|
+
asyncio.run(run_group(config))
|
|
180
|
+
|
|
181
|
+
except KeyboardInterrupt:
|
|
182
|
+
logger.info("Keyboard interrupt.")
|
|
183
|
+
return
|
|
184
|
+
|
|
185
|
+
except ExceptionGroup as e:
|
|
186
|
+
logger.error("Exception group:")
|
|
187
|
+
for se in e.exceptions:
|
|
188
|
+
logger.error(f" Type: {type(se)}")
|
|
189
|
+
logger.error(f" Exception: {se}", exc_info=se)
|
|
190
|
+
|
|
191
|
+
except Exception as e:
|
|
192
|
+
logger.error(f"Type: {type(e)}")
|
|
193
|
+
logger.error(f"Exception: {e}", exc_info=True)
|
|
194
|
+
|
|
195
|
+
logger.warning("Will retry...")
|
|
196
|
+
time.sleep(4)
|
|
197
|
+
logger.info("Retrying...")
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "2.3.10"
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
"""Minimal i18n support for TrustGraph.
|
|
2
|
+
|
|
3
|
+
This module intentionally stays lightweight:
|
|
4
|
+
- No runtime translation calls
|
|
5
|
+
- Translations are pre-generated and shipped as language packs
|
|
6
|
+
|
|
7
|
+
Consumers (CLI/API/Workbench) select a language code (e.g. "es") and
|
|
8
|
+
use `Translator.t(key, **kwargs)` to format localized strings.
|
|
9
|
+
"""
|
|
10
|
+
|
|
11
|
+
from __future__ import annotations
|
|
12
|
+
|
|
13
|
+
import json
|
|
14
|
+
from dataclasses import dataclass
|
|
15
|
+
from functools import lru_cache
|
|
16
|
+
from typing import Any, Dict, Mapping, Optional
|
|
17
|
+
|
|
18
|
+
import importlib.resources as importlib_resources
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
SUPPORTED_LANGUAGES: Mapping[str, str] = {
|
|
22
|
+
"en": "English",
|
|
23
|
+
"es": "Spanish",
|
|
24
|
+
"sw": "Swahili",
|
|
25
|
+
"pt": "Portuguese",
|
|
26
|
+
"tr": "Turkish",
|
|
27
|
+
"hi": "Hindi",
|
|
28
|
+
"he": "Hebrew",
|
|
29
|
+
"ar": "Arabic",
|
|
30
|
+
"zh-cn": "Chinese (simplified)",
|
|
31
|
+
"ru": "Russian",
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
_LANGUAGE_ALIASES: Mapping[str, str] = {
|
|
35
|
+
"zh": "zh-cn",
|
|
36
|
+
"zh-hans": "zh-cn",
|
|
37
|
+
"zh-hans-cn": "zh-cn",
|
|
38
|
+
"zh-cn": "zh-cn",
|
|
39
|
+
"zh_cn": "zh-cn",
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
def normalize_language(value: Optional[str]) -> str:
|
|
44
|
+
"""Normalize language inputs to our supported codes.
|
|
45
|
+
|
|
46
|
+
Accepts:
|
|
47
|
+
- Simple codes: "es"
|
|
48
|
+
- Region tags: "es-ES", "en-US"
|
|
49
|
+
- Accept-Language style: "es-ES,es;q=0.9,en;q=0.8"
|
|
50
|
+
|
|
51
|
+
Falls back to "en" when unknown.
|
|
52
|
+
"""
|
|
53
|
+
|
|
54
|
+
if not value:
|
|
55
|
+
return "en"
|
|
56
|
+
|
|
57
|
+
# Accept-Language: take first entry
|
|
58
|
+
token = value.split(",", 1)[0].strip()
|
|
59
|
+
if not token:
|
|
60
|
+
return "en"
|
|
61
|
+
|
|
62
|
+
token = token.replace("_", "-").lower()
|
|
63
|
+
|
|
64
|
+
# Exact alias mapping
|
|
65
|
+
if token in _LANGUAGE_ALIASES:
|
|
66
|
+
token = _LANGUAGE_ALIASES[token]
|
|
67
|
+
|
|
68
|
+
# Collapse common regional tags
|
|
69
|
+
if token.startswith("en-"):
|
|
70
|
+
token = "en"
|
|
71
|
+
elif token.startswith("es-"):
|
|
72
|
+
token = "es"
|
|
73
|
+
elif token.startswith("pt-"):
|
|
74
|
+
token = "pt"
|
|
75
|
+
elif token.startswith("tr-"):
|
|
76
|
+
token = "tr"
|
|
77
|
+
elif token.startswith("hi-"):
|
|
78
|
+
token = "hi"
|
|
79
|
+
elif token.startswith("he-"):
|
|
80
|
+
token = "he"
|
|
81
|
+
elif token.startswith("ar-"):
|
|
82
|
+
token = "ar"
|
|
83
|
+
elif token.startswith("sw-"):
|
|
84
|
+
token = "sw"
|
|
85
|
+
elif token.startswith("ru-"):
|
|
86
|
+
token = "ru"
|
|
87
|
+
elif token.startswith("zh-"):
|
|
88
|
+
token = "zh-cn"
|
|
89
|
+
|
|
90
|
+
# Otherwise use primary subtag
|
|
91
|
+
primary = token.split("-", 1)[0]
|
|
92
|
+
if primary in SUPPORTED_LANGUAGES:
|
|
93
|
+
return primary
|
|
94
|
+
|
|
95
|
+
if token in SUPPORTED_LANGUAGES:
|
|
96
|
+
return token
|
|
97
|
+
|
|
98
|
+
return "en"
|
|
99
|
+
|
|
100
|
+
|
|
101
|
+
# Returns a mutable object - caller must not mutate!
|
|
102
|
+
@lru_cache(maxsize=32)
|
|
103
|
+
def get_language_pack(language: str) -> Dict[str, str]:
|
|
104
|
+
"""Load the language pack for `language` from package resources."""
|
|
105
|
+
|
|
106
|
+
lang = normalize_language(language)
|
|
107
|
+
if lang not in SUPPORTED_LANGUAGES:
|
|
108
|
+
lang = "en"
|
|
109
|
+
|
|
110
|
+
try:
|
|
111
|
+
with importlib_resources.open_text(
|
|
112
|
+
"trustgraph.i18n.packs", f"{lang}.json", encoding="utf-8"
|
|
113
|
+
) as f:
|
|
114
|
+
data = json.load(f)
|
|
115
|
+
except FileNotFoundError:
|
|
116
|
+
data = {}
|
|
117
|
+
|
|
118
|
+
if not isinstance(data, dict):
|
|
119
|
+
return {}
|
|
120
|
+
|
|
121
|
+
# Ensure values are strings
|
|
122
|
+
out: Dict[str, str] = {}
|
|
123
|
+
for k, v in data.items():
|
|
124
|
+
if isinstance(k, str) and isinstance(v, str):
|
|
125
|
+
out[k] = v
|
|
126
|
+
return out
|
|
127
|
+
|
|
128
|
+
|
|
129
|
+
@dataclass(frozen=True)
|
|
130
|
+
class Translator:
|
|
131
|
+
language: str
|
|
132
|
+
|
|
133
|
+
def t(self, key: str, **kwargs: Any) -> str:
|
|
134
|
+
"""Translate `key` using the current language pack.
|
|
135
|
+
|
|
136
|
+
Falls back to English pack, then the key itself.
|
|
137
|
+
Supports `.format(**kwargs)` placeholder substitution.
|
|
138
|
+
"""
|
|
139
|
+
|
|
140
|
+
lang = normalize_language(self.language)
|
|
141
|
+
pack = get_language_pack(lang)
|
|
142
|
+
fallback = get_language_pack("en")
|
|
143
|
+
|
|
144
|
+
template = pack.get(key) or fallback.get(key) or key
|
|
145
|
+
if not kwargs:
|
|
146
|
+
return template
|
|
147
|
+
|
|
148
|
+
try:
|
|
149
|
+
return template.format(**kwargs)
|
|
150
|
+
except Exception:
|
|
151
|
+
# If formatting fails, return the untranslated template
|
|
152
|
+
return template
|
|
153
|
+
|
|
154
|
+
|
|
155
|
+
def get_translator(language: Optional[str]) -> Translator:
|
|
156
|
+
return Translator(language=normalize_language(language))
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
# Language packs live next to this module as JSON files.
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
{
|
|
2
|
+
"cli.verify_system_status.title": "التحقق من حالة نظام TrustGraph.",
|
|
3
|
+
"cli.verify_system_status.phase_1": "المرحلة الأولى: البنية التحتية.",
|
|
4
|
+
"cli.verify_system_status.phase_2": "المرحلة الثانية: الخدمات الأساسية.",
|
|
5
|
+
"cli.verify_system_status.phase_3": "المرحلة الثالثة: خدمات البيانات.",
|
|
6
|
+
"cli.verify_system_status.phase_4": "المرحلة الرابعة: واجهة المستخدم.",
|
|
7
|
+
"cli.verify_system_status.summary": "ملخص.",
|
|
8
|
+
"cli.verify_system_status.checking": "التحقق من {name}...",
|
|
9
|
+
"cli.verify_system_status.checking_attempt": "التحقق من {name}... (المحاولة {attempt}).",
|
|
10
|
+
"cli.verify_system_status.failed_timeout": "{name}: فشل (انتهت المهلة بعد {attempt} محاولة).",
|
|
11
|
+
"cli.verify_system_status.pulsar_not_responding": "Pulsar لا تستجيب - قد تفشل عمليات التحقق الأخرى.",
|
|
12
|
+
"cli.verify_system_status.checks_passed": "عمليات التحقق التي نجحت: {passed}/{total}.",
|
|
13
|
+
"cli.verify_system_status.checks_failed": "عمليات التحقق التي فشلت: {failed}/{total}.",
|
|
14
|
+
"cli.verify_system_status.total_time": "إجمالي الوقت: {elapsed}.",
|
|
15
|
+
"cli.verify_system_status.system_healthy": "النظام يعمل بشكل صحيح!",
|
|
16
|
+
"cli.verify_system_status.system_failing": "النظام لديه {failed} عملية تحقق فاشلة.",
|
|
17
|
+
"cli.verify_system_status.check_name.pulsar": "Pulsar.",
|
|
18
|
+
"cli.verify_system_status.check_name.api_gateway": "بوابة واجهة برمجة التطبيقات (API Gateway).",
|
|
19
|
+
"cli.verify_system_status.check_name.processors": "المعالجات (Processors).",
|
|
20
|
+
"cli.verify_system_status.check_name.flow_blueprints": "مخططات التدفق (Flow Blueprints).",
|
|
21
|
+
"cli.verify_system_status.check_name.flows": "التدفقات (Flows).",
|
|
22
|
+
"cli.verify_system_status.check_name.prompts": "المطالبات (Prompts).",
|
|
23
|
+
"cli.verify_system_status.check_name.library": "المكتبة (Library).",
|
|
24
|
+
"cli.verify_system_status.check_name.workbench_ui": "واجهة المستخدم الخاصة بـ Workbench.",
|
|
25
|
+
"cli.verify_system_status.pulsar.healthy": "Pulsar تعمل بشكل صحيح ({clusters} مجموعة).",
|
|
26
|
+
"cli.verify_system_status.pulsar.status": "Pulsar أرجعت الحالة {status_code}.",
|
|
27
|
+
"cli.verify_system_status.pulsar.timeout": "Pulsar: انتهاء المهلة.",
|
|
28
|
+
"cli.verify_system_status.pulsar.cannot_connect": "لا يمكن الاتصال بـ Pulsar.",
|
|
29
|
+
"cli.verify_system_status.pulsar.error": "Pulsar: خطأ: {error}.",
|
|
30
|
+
"cli.verify_system_status.api_gateway.responding": "بوابة واجهة برمجة التطبيقات (API Gateway) تستجيب.",
|
|
31
|
+
"cli.verify_system_status.api_gateway.status": "بوابة واجهة برمجة التطبيقات (API Gateway) أرجعت الحالة {status_code}.",
|
|
32
|
+
"cli.verify_system_status.api_gateway.timeout": "بوابة واجهة برمجة التطبيقات (API Gateway): انتهاء المهلة.",
|
|
33
|
+
"cli.verify_system_status.api_gateway.cannot_connect": "لا يمكن الاتصال بـ بوابة واجهة برمجة التطبيقات (API Gateway).",
|
|
34
|
+
"cli.verify_system_status.api_gateway.error": "بوابة واجهة برمجة التطبيقات (API Gateway): خطأ: {error}.",
|
|
35
|
+
"cli.verify_system_status.processors.found": "تم العثور على {count} معالج (≥ {min}).",
|
|
36
|
+
"cli.verify_system_status.processors.only": "فقط {count} معالج قيد التشغيل (مطلوب {min}).",
|
|
37
|
+
"cli.verify_system_status.processors.metrics_status": "المقاييس أرجعت الحالة {status_code}.",
|
|
38
|
+
"cli.verify_system_status.processors.error": "خطأ في فحص المعالج: {error}.",
|
|
39
|
+
"cli.verify_system_status.flow_blueprints.found": "تم العثور على {count} مخطط تدفق.",
|
|
40
|
+
"cli.verify_system_status.flow_blueprints.none": "لم يتم العثور على أي مخططات تدفق.",
|
|
41
|
+
"cli.verify_system_status.flow_blueprints.error": "خطأ في فحص مخططات التدفق: {error}.",
|
|
42
|
+
"cli.verify_system_status.flows.responding": "مدير التدفق يستجيب ({count} تدفق).",
|
|
43
|
+
"cli.verify_system_status.flows.error": "خطأ في فحص مدير التدفق: {error}.",
|
|
44
|
+
"cli.verify_system_status.prompts.found": "تم العثور على {count} مطالبة.",
|
|
45
|
+
"cli.verify_system_status.prompts.none": "لم يتم العثور على أي مطالبات.",
|
|
46
|
+
"cli.verify_system_status.prompts.error": "خطأ في فحص المطالبات: {error}.",
|
|
47
|
+
"cli.verify_system_status.library.responding": "المكتبة تستجيب ({count} مستند).",
|
|
48
|
+
"cli.verify_system_status.library.error": "خطأ في فحص المكتبة: {error}.",
|
|
49
|
+
"cli.verify_system_status.ui.responding": "واجهة المستخدم الخاصة بـ Workbench تستجيب.",
|
|
50
|
+
"cli.verify_system_status.ui.status": "واجهة المستخدم أرجعت الحالة {status_code}.",
|
|
51
|
+
"cli.verify_system_status.ui.timeout": "واجهة المستخدم: انتهاء المهلة.",
|
|
52
|
+
"cli.verify_system_status.ui.cannot_connect": "لا يمكن الاتصال بواجهة المستخدم.",
|
|
53
|
+
"cli.verify_system_status.ui.error": "واجهة المستخدم: خطأ: {error}."
|
|
54
|
+
}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
{
|
|
2
|
+
"cli.verify_system_status.title": "TrustGraph System Status Verification",
|
|
3
|
+
"cli.verify_system_status.phase_1": "Phase 1: Infrastructure",
|
|
4
|
+
"cli.verify_system_status.phase_2": "Phase 2: Core Services",
|
|
5
|
+
"cli.verify_system_status.phase_3": "Phase 3: Data Services",
|
|
6
|
+
"cli.verify_system_status.phase_4": "Phase 4: User Interface",
|
|
7
|
+
"cli.verify_system_status.summary": "Summary",
|
|
8
|
+
"cli.verify_system_status.checking": "Checking {name}...",
|
|
9
|
+
"cli.verify_system_status.checking_attempt": "Checking {name}... (attempt {attempt})",
|
|
10
|
+
"cli.verify_system_status.failed_timeout": "{name}: Failed (timeout after {attempt} attempts)",
|
|
11
|
+
"cli.verify_system_status.pulsar_not_responding": "Pulsar is not responding - other checks may fail",
|
|
12
|
+
"cli.verify_system_status.checks_passed": "Checks passed: {passed}/{total}",
|
|
13
|
+
"cli.verify_system_status.checks_failed": "Checks failed: {failed}/{total}",
|
|
14
|
+
"cli.verify_system_status.total_time": "Total time: {elapsed}",
|
|
15
|
+
"cli.verify_system_status.system_healthy": "System is healthy!",
|
|
16
|
+
"cli.verify_system_status.system_failing": "System has {failed} failing check(s)",
|
|
17
|
+
"cli.verify_system_status.check_name.pulsar": "Pulsar",
|
|
18
|
+
"cli.verify_system_status.check_name.api_gateway": "API Gateway",
|
|
19
|
+
"cli.verify_system_status.check_name.processors": "Processors",
|
|
20
|
+
"cli.verify_system_status.check_name.flow_blueprints": "Flow Blueprints",
|
|
21
|
+
"cli.verify_system_status.check_name.flows": "Flows",
|
|
22
|
+
"cli.verify_system_status.check_name.prompts": "Prompts",
|
|
23
|
+
"cli.verify_system_status.check_name.library": "Library",
|
|
24
|
+
"cli.verify_system_status.check_name.workbench_ui": "Workbench UI",
|
|
25
|
+
"cli.verify_system_status.pulsar.healthy": "Pulsar healthy ({clusters} cluster(s))",
|
|
26
|
+
"cli.verify_system_status.pulsar.status": "Pulsar returned status {status_code}",
|
|
27
|
+
"cli.verify_system_status.pulsar.timeout": "Pulsar connection timeout",
|
|
28
|
+
"cli.verify_system_status.pulsar.cannot_connect": "Cannot connect to Pulsar",
|
|
29
|
+
"cli.verify_system_status.pulsar.error": "Pulsar error: {error}",
|
|
30
|
+
"cli.verify_system_status.api_gateway.responding": "API Gateway is responding",
|
|
31
|
+
"cli.verify_system_status.api_gateway.status": "API Gateway returned status {status_code}",
|
|
32
|
+
"cli.verify_system_status.api_gateway.timeout": "API Gateway connection timeout",
|
|
33
|
+
"cli.verify_system_status.api_gateway.cannot_connect": "Cannot connect to API Gateway",
|
|
34
|
+
"cli.verify_system_status.api_gateway.error": "API Gateway error: {error}",
|
|
35
|
+
"cli.verify_system_status.processors.found": "Found {count} processors (≥ {min})",
|
|
36
|
+
"cli.verify_system_status.processors.only": "Only {count} processors running (need {min})",
|
|
37
|
+
"cli.verify_system_status.processors.metrics_status": "Metrics returned status {status_code}",
|
|
38
|
+
"cli.verify_system_status.processors.error": "Processor check error: {error}",
|
|
39
|
+
"cli.verify_system_status.flow_blueprints.found": "Found {count} flow blueprint(s)",
|
|
40
|
+
"cli.verify_system_status.flow_blueprints.none": "No flow blueprints found",
|
|
41
|
+
"cli.verify_system_status.flow_blueprints.error": "Flow blueprints check error: {error}",
|
|
42
|
+
"cli.verify_system_status.flows.responding": "Flow manager responding ({count} flow(s))",
|
|
43
|
+
"cli.verify_system_status.flows.error": "Flow manager check error: {error}",
|
|
44
|
+
"cli.verify_system_status.prompts.found": "Found {count} prompt(s)",
|
|
45
|
+
"cli.verify_system_status.prompts.none": "No prompts found",
|
|
46
|
+
"cli.verify_system_status.prompts.error": "Prompts check error: {error}",
|
|
47
|
+
"cli.verify_system_status.library.responding": "Library responding ({count} document(s))",
|
|
48
|
+
"cli.verify_system_status.library.error": "Library check error: {error}",
|
|
49
|
+
"cli.verify_system_status.ui.responding": "Workbench UI is responding",
|
|
50
|
+
"cli.verify_system_status.ui.status": "UI returned status {status_code}",
|
|
51
|
+
"cli.verify_system_status.ui.timeout": "UI connection timeout",
|
|
52
|
+
"cli.verify_system_status.ui.cannot_connect": "Cannot connect to UI",
|
|
53
|
+
"cli.verify_system_status.ui.error": "UI error: {error}"
|
|
54
|
+
}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
{
|
|
2
|
+
"cli.verify_system_status.title": "Verificación del estado del sistema TrustGraph",
|
|
3
|
+
"cli.verify_system_status.phase_1": "Fase 1: Infraestructura",
|
|
4
|
+
"cli.verify_system_status.phase_2": "Fase 2: Servicios principales",
|
|
5
|
+
"cli.verify_system_status.phase_3": "Fase 3: Servicios de datos",
|
|
6
|
+
"cli.verify_system_status.phase_4": "Fase 4: Interfaz de usuario",
|
|
7
|
+
"cli.verify_system_status.summary": "Resumen",
|
|
8
|
+
"cli.verify_system_status.checking": "Verificando {name}...",
|
|
9
|
+
"cli.verify_system_status.checking_attempt": "Verificando {name}... (intento {attempt})",
|
|
10
|
+
"cli.verify_system_status.failed_timeout": "{name}: Fallido (tiempo de espera después de {attempt} intentos)",
|
|
11
|
+
"cli.verify_system_status.pulsar_not_responding": "Pulsar no está respondiendo; otras verificaciones pueden fallar",
|
|
12
|
+
"cli.verify_system_status.checks_passed": "Verificaciones superadas: {passed}/{total}",
|
|
13
|
+
"cli.verify_system_status.checks_failed": "Verificaciones fallidas: {failed}/{total}",
|
|
14
|
+
"cli.verify_system_status.total_time": "Tiempo total: {elapsed}",
|
|
15
|
+
"cli.verify_system_status.system_healthy": "¡El sistema es saludable!",
|
|
16
|
+
"cli.verify_system_status.system_failing": "El sistema tiene {failed} verificación(es) fallida(s)",
|
|
17
|
+
"cli.verify_system_status.check_name.pulsar": "Pulsar",
|
|
18
|
+
"cli.verify_system_status.check_name.api_gateway": "API Gateway",
|
|
19
|
+
"cli.verify_system_status.check_name.processors": "Procesadores",
|
|
20
|
+
"cli.verify_system_status.check_name.flow_blueprints": "Plantillas de flujo",
|
|
21
|
+
"cli.verify_system_status.check_name.flows": "Flujos",
|
|
22
|
+
"cli.verify_system_status.check_name.prompts": "Indicaciones",
|
|
23
|
+
"cli.verify_system_status.check_name.library": "Biblioteca",
|
|
24
|
+
"cli.verify_system_status.check_name.workbench_ui": "Interfaz de usuario del entorno de trabajo",
|
|
25
|
+
"cli.verify_system_status.pulsar.healthy": "Pulsar saludable ({clusters} clúster(es))",
|
|
26
|
+
"cli.verify_system_status.pulsar.status": "Pulsar devolvió el estado {status_code}",
|
|
27
|
+
"cli.verify_system_status.pulsar.timeout": "Tiempo de espera de la conexión a Pulsar",
|
|
28
|
+
"cli.verify_system_status.pulsar.cannot_connect": "No se puede conectar a Pulsar",
|
|
29
|
+
"cli.verify_system_status.pulsar.error": "Error de Pulsar: {error}",
|
|
30
|
+
"cli.verify_system_status.api_gateway.responding": "API Gateway está respondiendo",
|
|
31
|
+
"cli.verify_system_status.api_gateway.status": "API Gateway devolvió el estado {status_code}",
|
|
32
|
+
"cli.verify_system_status.api_gateway.timeout": "Tiempo de espera de la conexión a API Gateway",
|
|
33
|
+
"cli.verify_system_status.api_gateway.cannot_connect": "No se puede conectar a API Gateway",
|
|
34
|
+
"cli.verify_system_status.api_gateway.error": "Error de API Gateway: {error}",
|
|
35
|
+
"cli.verify_system_status.processors.found": "Se encontraron {count} procesadores (≥ {min})",
|
|
36
|
+
"cli.verify_system_status.processors.only": "Solo {count} procesadores en ejecución (se necesitan {min})",
|
|
37
|
+
"cli.verify_system_status.processors.metrics_status": "Métricas devolvieron el estado {status_code}",
|
|
38
|
+
"cli.verify_system_status.processors.error": "Error de verificación del procesador: {error}",
|
|
39
|
+
"cli.verify_system_status.flow_blueprints.found": "Se encontraron {count} plantilla(s) de flujo",
|
|
40
|
+
"cli.verify_system_status.flow_blueprints.none": "No se encontraron plantillas de flujo",
|
|
41
|
+
"cli.verify_system_status.flow_blueprints.error": "Error de verificación de la plantilla de flujo: {error}",
|
|
42
|
+
"cli.verify_system_status.flows.responding": "El administrador de flujos está respondiendo ({count} flujo(s))",
|
|
43
|
+
"cli.verify_system_status.flows.error": "Error de verificación del administrador de flujos: {error}",
|
|
44
|
+
"cli.verify_system_status.prompts.found": "Se encontraron {count} indicación(es)",
|
|
45
|
+
"cli.verify_system_status.prompts.none": "No se encontraron indicaciones",
|
|
46
|
+
"cli.verify_system_status.prompts.error": "Error de verificación de la indicación: {error}",
|
|
47
|
+
"cli.verify_system_status.library.responding": "La biblioteca está respondiendo ({count} documento(s))",
|
|
48
|
+
"cli.verify_system_status.library.error": "Error de verificación de la biblioteca: {error}",
|
|
49
|
+
"cli.verify_system_status.ui.responding": "La interfaz de usuario del entorno de trabajo está respondiendo",
|
|
50
|
+
"cli.verify_system_status.ui.status": "La interfaz de usuario devolvió el estado {status_code}",
|
|
51
|
+
"cli.verify_system_status.ui.timeout": "Tiempo de espera de la conexión a la interfaz de usuario",
|
|
52
|
+
"cli.verify_system_status.ui.cannot_connect": "No se puede conectar a la interfaz de usuario",
|
|
53
|
+
"cli.verify_system_status.ui.error": "Error de la interfaz de usuario: {error}"
|
|
54
|
+
}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
{
|
|
2
|
+
"cli.verify_system_status.title": "אימות סטטוס מערכת TrustGraph",
|
|
3
|
+
"cli.verify_system_status.phase_1": "שלב 1: תשתית",
|
|
4
|
+
"cli.verify_system_status.phase_2": "שלב 2: שירותים מרכזיים",
|
|
5
|
+
"cli.verify_system_status.phase_3": "שלב 3: שירותי נתונים",
|
|
6
|
+
"cli.verify_system_status.phase_4": "שלב 4: ממשק משתמש",
|
|
7
|
+
"cli.verify_system_status.summary": "סיכום",
|
|
8
|
+
"cli.verify_system_status.checking": "בדיקת {name}...",
|
|
9
|
+
"cli.verify_system_status.checking_attempt": "בדיקת {name}... (ניסיון {attempt})",
|
|
10
|
+
"cli.verify_system_status.failed_timeout": "{name}: נכשל (תפוגה לאחר {attempt} ניסיונות)",
|
|
11
|
+
"cli.verify_system_status.pulsar_not_responding": "Pulsar אינו מגיב - בדיקות אחרות עשויות להיכשל",
|
|
12
|
+
"cli.verify_system_status.checks_passed": "בדיקות שעברו: {passed}/{total}",
|
|
13
|
+
"cli.verify_system_status.checks_failed": "בדיקות שנכשלו: {failed}/{total}",
|
|
14
|
+
"cli.verify_system_status.total_time": "זמן כולל: {elapsed}",
|
|
15
|
+
"cli.verify_system_status.system_healthy": "המערכת תקינה!",
|
|
16
|
+
"cli.verify_system_status.system_failing": "למערכת יש {failed} בדיקה/ות שנכשלו",
|
|
17
|
+
"cli.verify_system_status.check_name.pulsar": "Pulsar",
|
|
18
|
+
"cli.verify_system_status.check_name.api_gateway": "API Gateway",
|
|
19
|
+
"cli.verify_system_status.check_name.processors": "מעבדים",
|
|
20
|
+
"cli.verify_system_status.check_name.flow_blueprints": "תבניות זרימה",
|
|
21
|
+
"cli.verify_system_status.check_name.flows": "זרימות",
|
|
22
|
+
"cli.verify_system_status.check_name.prompts": "הנחיות",
|
|
23
|
+
"cli.verify_system_status.check_name.library": "ספרייה",
|
|
24
|
+
"cli.verify_system_status.check_name.workbench_ui": "ממשק משתמש (Workbench UI)",
|
|
25
|
+
"cli.verify_system_status.pulsar.healthy": "Pulsar תקין ({clusters} אשכולות)",
|
|
26
|
+
"cli.verify_system_status.pulsar.status": "Pulsar החזיר סטטוס {status_code}",
|
|
27
|
+
"cli.verify_system_status.pulsar.timeout": "תפוגת זמן חיבור ל-Pulsar",
|
|
28
|
+
"cli.verify_system_status.pulsar.cannot_connect": "לא ניתן להתחבר ל-Pulsar",
|
|
29
|
+
"cli.verify_system_status.pulsar.error": "שגיאה ב-Pulsar: {error}",
|
|
30
|
+
"cli.verify_system_status.api_gateway.responding": "API Gateway מגיב",
|
|
31
|
+
"cli.verify_system_status.api_gateway.status": "API Gateway החזיר סטטוס {status_code}",
|
|
32
|
+
"cli.verify_system_status.api_gateway.timeout": "תפוגת זמן חיבור ל-API Gateway",
|
|
33
|
+
"cli.verify_system_status.api_gateway.cannot_connect": "לא ניתן להתחבר ל-API Gateway",
|
|
34
|
+
"cli.verify_system_status.api_gateway.error": "שגיאה ב-API Gateway: {error}",
|
|
35
|
+
"cli.verify_system_status.processors.found": "נמצאו {count} מעבדים (≥ {min})",
|
|
36
|
+
"cli.verify_system_status.processors.only": "פועלים רק {count} מעבדים (נדרשים {min})",
|
|
37
|
+
"cli.verify_system_status.processors.metrics_status": "Metrics החזירו סטטוס {status_code}",
|
|
38
|
+
"cli.verify_system_status.processors.error": "שגיאת בדיקת מעבד: {error}",
|
|
39
|
+
"cli.verify_system_status.flow_blueprints.found": "נמצאו {count} תבניות זרימה",
|
|
40
|
+
"cli.verify_system_status.flow_blueprints.none": "לא נמצאו תבניות זרימה",
|
|
41
|
+
"cli.verify_system_status.flow_blueprints.error": "שגיאת בדיקת תבניות זרימה: {error}",
|
|
42
|
+
"cli.verify_system_status.flows.responding": "מנהל הזרימה מגיב ({count} זרימות)",
|
|
43
|
+
"cli.verify_system_status.flows.error": "שגיאת בדיקת מנהל הזרימה: {error}",
|
|
44
|
+
"cli.verify_system_status.prompts.found": "נמצאו {count} הנחיות",
|
|
45
|
+
"cli.verify_system_status.prompts.none": "לא נמצאו הנחיות",
|
|
46
|
+
"cli.verify_system_status.prompts.error": "שגיאת בדיקת הנחיות: {error}",
|
|
47
|
+
"cli.verify_system_status.library.responding": "הספרייה מגיבה ({count} מסמכים)",
|
|
48
|
+
"cli.verify_system_status.library.error": "שגיאת בדיקת ספרייה: {error}",
|
|
49
|
+
"cli.verify_system_status.ui.responding": "ממשק המשתמש (Workbench UI) מגיב",
|
|
50
|
+
"cli.verify_system_status.ui.status": "ממשק המשתמש החזיר סטטוס {status_code}",
|
|
51
|
+
"cli.verify_system_status.ui.timeout": "תפוגת זמן חיבור לממשק המשתמש",
|
|
52
|
+
"cli.verify_system_status.ui.cannot_connect": "לא ניתן להתחבר לממשק המשתמש",
|
|
53
|
+
"cli.verify_system_status.ui.error": "שגיאה בממשק המשתמש: {error}"
|
|
54
|
+
}
|