pygeai 0.2.7b42__tar.gz → 0.2.7b43__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.
- {pygeai-0.2.7b42/pygeai.egg-info → pygeai-0.2.7b43}/PKG-INFO +1 -1
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/docs/geai-proxy/README.md +45 -8
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/man/man1/geai-proxy.1 +76 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/proxy/managers.py +2 -2
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/proxy/servers.py +5 -5
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/proxy/tool.py +5 -5
- {pygeai-0.2.7b42 → pygeai-0.2.7b43/pygeai.egg-info}/PKG-INFO +1 -1
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pyproject.toml +1 -1
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/LICENSE +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/MANIFEST.in +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/README.md +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/__init__.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/admin/__init__.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/admin/clients.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/admin/endpoints.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/assistant/__init__.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/assistant/clients.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/assistant/data/__init__.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/assistant/data/clients.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/assistant/data_analyst/__init__.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/assistant/data_analyst/clients.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/assistant/data_analyst/endpoints.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/assistant/endpoints.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/assistant/managers.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/assistant/mappers.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/assistant/rag/__init__.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/assistant/rag/clients.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/assistant/rag/endpoints.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/assistant/rag/mappers.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/assistant/rag/models.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/assistant/rag/responses.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/chat/__init__.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/chat/clients.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/chat/endpoints.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/chat/iris.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/chat/managers.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/chat/session.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/chat/settings.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/chat/ui.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/cli/__init__.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/cli/__main__.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/cli/commands/__init__.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/cli/commands/admin.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/cli/commands/assistant.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/cli/commands/base.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/cli/commands/builders.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/cli/commands/chat.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/cli/commands/common.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/cli/commands/configuration.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/cli/commands/embeddings.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/cli/commands/evaluation.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/cli/commands/feedback.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/cli/commands/files.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/cli/commands/flows/__init__.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/cli/commands/gam.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/cli/commands/lab/__init__.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/cli/commands/lab/ai_lab.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/cli/commands/lab/common.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/cli/commands/lab/spec.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/cli/commands/llm.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/cli/commands/migrate.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/cli/commands/options.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/cli/commands/organization.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/cli/commands/rag.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/cli/commands/rerank.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/cli/commands/secrets.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/cli/commands/usage_limits.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/cli/commands/validators.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/cli/commands/version.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/cli/geai.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/cli/geai_proxy.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/cli/install_man.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/cli/parsers.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/cli/texts/__init__.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/cli/texts/help.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/core/__init__.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/core/base/__init__.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/core/base/clients.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/core/base/mappers.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/core/base/models.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/core/base/responses.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/core/base/session.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/core/common/__init__.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/core/common/config.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/core/common/decorators.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/core/common/exceptions.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/core/embeddings/__init__.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/core/embeddings/clients.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/core/embeddings/endpoints.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/core/embeddings/managers.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/core/embeddings/mappers.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/core/embeddings/models.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/core/embeddings/responses.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/core/feedback/__init__.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/core/feedback/clients.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/core/feedback/endpoints.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/core/feedback/models.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/core/files/__init__.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/core/files/clients.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/core/files/endpoints.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/core/files/managers.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/core/files/mappers.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/core/files/models.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/core/files/responses.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/core/handlers.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/core/llm/__init__.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/core/llm/clients.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/core/llm/endpoints.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/core/models.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/core/plugins/__init__.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/core/plugins/clients.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/core/plugins/endpoints.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/core/plugins/models.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/core/rerank/__init__.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/core/rerank/clients.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/core/rerank/endpoints.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/core/rerank/managers.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/core/rerank/mappers.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/core/rerank/models.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/core/responses.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/core/secrets/__init__.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/core/secrets/clients.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/core/secrets/endpoints.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/core/services/__init__.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/core/services/llm/__init__.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/core/services/llm/model.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/core/services/llm/providers.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/core/services/response.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/core/services/rest.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/core/singleton.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/core/utils/__init__.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/core/utils/console.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/dbg/__init__.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/dbg/debugger.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/evaluation/__init__.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/evaluation/clients.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/evaluation/dataset/__init__.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/evaluation/dataset/clients.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/evaluation/dataset/endpoints.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/evaluation/plan/__init__.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/evaluation/plan/clients.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/evaluation/plan/endpoints.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/evaluation/result/__init__.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/evaluation/result/clients.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/evaluation/result/endpoints.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/flows/__init__.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/flows/endpoints.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/flows/models.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/gam/__init__.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/gam/clients.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/gam/endpoints.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/health/__init__.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/health/clients.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/health/endpoints.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/lab/__init__.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/lab/agents/__init__.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/lab/agents/clients.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/lab/agents/endpoints.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/lab/agents/mappers.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/lab/constants.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/lab/managers.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/lab/models.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/lab/processes/__init__.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/lab/processes/clients.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/lab/processes/endpoints.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/lab/processes/mappers.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/lab/runners.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/lab/spec/__init__.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/lab/spec/loader.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/lab/spec/parsers.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/lab/strategies/__init__.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/lab/strategies/clients.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/lab/strategies/endpoints.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/lab/strategies/mappers.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/lab/tools/__init__.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/lab/tools/clients.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/lab/tools/endpoints.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/lab/tools/mappers.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/man/__init__.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/man/man1/__init__.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/man/man1/geai.1 +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/migration/__init__.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/migration/strategies.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/migration/tools.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/organization/__init__.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/organization/clients.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/organization/endpoints.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/organization/limits/__init__.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/organization/limits/clients.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/organization/limits/endpoints.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/organization/limits/managers.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/organization/limits/mappers.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/organization/managers.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/organization/mappers.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/organization/responses.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/proxy/__init__.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/proxy/clients.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/proxy/config.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/__init__.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/admin/__init__.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/admin/test_clients.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/assistants/__init__.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/assistants/rag/__init__.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/assistants/rag/test_clients.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/assistants/rag/test_mappers.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/assistants/rag/test_models.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/assistants/test_clients.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/assistants/test_managers.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/assistants/test_mappers.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/chat/__init__.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/chat/test_clients.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/chat/test_iris.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/chat/test_session.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/chat/test_ui.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/cli/__init__.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/cli/commands/__init__.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/cli/commands/lab/__init__.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/cli/commands/lab/test_ai_lab.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/cli/commands/lab/test_common.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/cli/commands/lab/test_spec.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/cli/commands/test_assistant.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/cli/commands/test_chat.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/cli/commands/test_common.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/cli/commands/test_embeddings.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/cli/commands/test_feedback.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/cli/commands/test_files.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/cli/commands/test_gam.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/cli/commands/test_llm.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/cli/commands/test_migrate.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/cli/commands/test_organization.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/cli/commands/test_rag.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/cli/commands/test_rerank.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/cli/commands/test_show_help.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/cli/commands/test_usage_limits.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/cli/commands/test_validators.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/cli/commands/test_version.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/cli/test_parsers.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/core/__init__.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/core/base/__init__.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/core/base/data/__init__.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/core/base/data/mappers.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/core/base/data/models.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/core/base/test_mappers.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/core/base/test_models.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/core/common/__init__.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/core/common/data/__init__.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/core/common/test_config.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/core/common/test_decorators.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/core/embeddings/__init__.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/core/embeddings/test_clients.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/core/feedback/__init__.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/core/feedback/test_clients.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/core/files/__init__.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/core/files/test_clients.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/core/files/test_managers.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/core/files/test_models.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/core/files/test_responses.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/core/llm/__init__.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/core/llm/test_clients.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/core/rerank/__init__.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/core/rerank/test_clients.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/core/rerank/test_managers.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/core/rerank/test_mappers.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/core/secrets/__init__.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/core/secrets/test_clients.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/core/services/__init__.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/core/services/test_rest.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/core/test_handlers.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/core/utils/__init__.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/core/utils/test_console.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/dbg/__init__.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/dbg/test_debugger.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/gam/__init__.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/gam/test_clients.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/health/__init__.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/health/test_clients.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/integration/__init__.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/integration/lab/__init__.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/integration/lab/agents/__init__.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/integration/lab/agents/test_agents_list.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/integration/lab/agents/test_create_agent.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/integration/lab/agents/test_create_sharing_link.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/integration/lab/agents/test_delete_agent.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/integration/lab/agents/test_get_agent.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/integration/lab/agents/test_publish_agent_revision.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/integration/lab/agents/test_update_agent.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/lab/__init__.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/lab/agents/__init__.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/lab/agents/test_clients.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/lab/agents/test_mappers.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/lab/processes/__init__.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/lab/processes/test_clients.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/lab/processes/test_mappers.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/lab/spec/__init__.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/lab/spec/test_loader.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/lab/spec/test_parsers.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/lab/strategies/__init__.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/lab/strategies/test_clients.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/lab/strategies/test_mappers.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/lab/test_managers.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/lab/test_mappers.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/lab/test_models.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/lab/tools/__init__.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/lab/tools/test_clients.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/lab/tools/test_mappers.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/migration/__init__.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/migration/test_strategies.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/migration/test_tools.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/organization/__init__.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/organization/limits/__init__.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/organization/limits/test_clients.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/organization/limits/test_managers.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/organization/test_clients.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/organization/test_managers.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/organization/test_mappers.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/snippets/__init__.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/snippets/assistants/__init__.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/snippets/assistants/create_chat_assistant.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/snippets/assistants/create_text_assistant.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/snippets/assistants/data_analyst/__init__.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/snippets/assistants/data_analyst/extend_and_check.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/snippets/assistants/data_analyst/extend_dataset.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/snippets/assistants/data_analyst/get_status.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/snippets/assistants/file_summarizer_assistant.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/snippets/assistants/get_assistant_data.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/snippets/assistants/get_assistant_list.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/snippets/assistants/rag/__init__.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/snippets/assistants/rag/create_rag_assistant.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/snippets/assistants/rag/delete_al_documents.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/snippets/assistants/rag/delete_document.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/snippets/assistants/rag/delete_rag_assistant.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/snippets/assistants/rag/get_document.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/snippets/assistants/rag/get_documents.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/snippets/assistants/rag/get_rag_assistant_data.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/snippets/assistants/rag/update_rag_assistant.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/snippets/assistants/rag/upload_document.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/snippets/assistants/send_feedback.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/snippets/assistants/update_chat_assistant.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/snippets/chat/__init__.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/snippets/chat/cancel_request.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/snippets/chat/chat_completion.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/snippets/chat/chat_completion_1.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/snippets/chat/chat_completion_2.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/snippets/chat/chat_completion_3.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/snippets/chat/chat_completion_4.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/snippets/chat/chat_completion_streaming.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/snippets/chat/get_request_status.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/snippets/chat/send_chat_request.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/snippets/embeddings/__init__.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/snippets/embeddings/generate_embeddings.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/snippets/evaluation/__init__.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/snippets/files/__init__.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/snippets/files/delete_file.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/snippets/files/get_file_content.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/snippets/files/get_file_data.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/snippets/files/get_file_list.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/snippets/files/upload_file.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/snippets/gam/__init__.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/snippets/gam/gam_access_token.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/snippets/lab/__init__.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/snippets/lab/agentic_flow_example_1.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/snippets/lab/agentic_flow_example_2.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/snippets/lab/agentic_flow_example_3.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/snippets/lab/agentic_flow_example_4.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/snippets/lab/agents/__init__.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/snippets/lab/agents/create_agent.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/snippets/lab/agents/create_agent_2.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/snippets/lab/agents/delete_agent.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/snippets/lab/agents/get_agent.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/snippets/lab/agents/get_sharing_link.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/snippets/lab/agents/list_agents.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/snippets/lab/agents/publish_agent_revision.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/snippets/lab/agents/update_agent.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/snippets/lab/assistant_to_agent.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/snippets/lab/crud_ui.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/snippets/lab/processes/__init__.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/snippets/lab/processes/create_process.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/snippets/lab/processes/create_task.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/snippets/lab/processes/jobs/__init__.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/snippets/lab/processes/jobs/list_jobs.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/snippets/lab/processes/kbs/__init__.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/snippets/lab/processes/kbs/create_kb.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/snippets/lab/processes/kbs/get_kb.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/snippets/lab/processes/kbs/list_kbs.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/snippets/lab/processes/kbs/try_all.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/snippets/lab/processes/list_processes.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/snippets/lab/runner_1.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/snippets/lab/samples/__init__.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/snippets/lab/samples/summarize_files.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/snippets/lab/strategies/__init__.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/snippets/lab/strategies/create_reasoning_strategy.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/snippets/lab/strategies/get_reasoning_strategy.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/snippets/lab/strategies/list_reasoning_strategies.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/snippets/lab/strategies/update_reasoning_strategy.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/snippets/lab/tools/__init__.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/snippets/lab/tools/create_tool.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/snippets/lab/tools/delete_tool.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/snippets/lab/tools/get_parameter.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/snippets/lab/tools/get_tool.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/snippets/lab/tools/list_tools.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/snippets/lab/tools/publish_tool_revision.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/snippets/lab/tools/set_parameters.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/snippets/lab/tools/update_tool.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/snippets/lab/use_cases/__init__.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/snippets/lab/use_cases/c_code_fixer_agent_flow.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/snippets/lab/use_cases/create_cli_expert.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/snippets/lab/use_cases/create_lab_expert.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/snippets/lab/use_cases/create_tool_headless_web_browser.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/snippets/lab/use_cases/create_web_designer.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/snippets/lab/use_cases/create_web_reader.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/snippets/lab/use_cases/file_summarizer_example.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/snippets/lab/use_cases/file_summarizer_example_2.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/snippets/lab/use_cases/update_cli_expert.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/snippets/lab/use_cases/update_lab_expert.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/snippets/lab/use_cases/update_web_designer.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/snippets/lab/use_cases/update_web_reader.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/snippets/lab/use_cases/update_web_reader_with_tool.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/snippets/migrate/__init__.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/snippets/organization/__init__.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/snippets/organization/create_project.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/snippets/organization/delete_project.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/snippets/organization/export_request_data.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/snippets/organization/get_project_data.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/snippets/organization/get_project_list.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/snippets/organization/get_project_tokens.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/snippets/organization/update_project.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/snippets/rerank/__init__.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/snippets/rerank/rerank_chunks.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/snippets/secrets/__init__.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/snippets/usage_limit/__init__.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/snippets/usage_limit/delete_usage_limit.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/snippets/usage_limit/get_all_usage_limit_from_organization.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/snippets/usage_limit/get_usage_limit_from_organization.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/snippets/usage_limit/get_usage_limit_from_project.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/snippets/usage_limit/set_usage_limit_organization.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/snippets/usage_limit/set_usage_limit_project.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/snippets/usage_limit/update_usage_limit_organization.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/tests/snippets/usage_limit/update_usage_limit_project.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/vendor/a2a/__init__.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/vendor/a2a/auth/__init__.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/vendor/a2a/auth/user.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/vendor/a2a/client/__init__.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/vendor/a2a/client/client.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/vendor/a2a/client/errors.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/vendor/a2a/client/helpers.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/vendor/a2a/py.typed +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/vendor/a2a/server/__init__.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/vendor/a2a/server/agent_execution/__init__.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/vendor/a2a/server/agent_execution/agent_executor.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/vendor/a2a/server/agent_execution/context.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/vendor/a2a/server/agent_execution/request_context_builder.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/vendor/a2a/server/agent_execution/simple_request_context_builder.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/vendor/a2a/server/apps/__init__.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/vendor/a2a/server/apps/jsonrpc/__init__.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/vendor/a2a/server/apps/jsonrpc/fastapi_app.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/vendor/a2a/server/apps/jsonrpc/jsonrpc_app.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/vendor/a2a/server/apps/jsonrpc/starlette_app.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/vendor/a2a/server/context.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/vendor/a2a/server/events/__init__.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/vendor/a2a/server/events/event_consumer.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/vendor/a2a/server/events/event_queue.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/vendor/a2a/server/events/in_memory_queue_manager.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/vendor/a2a/server/events/queue_manager.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/vendor/a2a/server/request_handlers/__init__.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/vendor/a2a/server/request_handlers/default_request_handler.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/vendor/a2a/server/request_handlers/jsonrpc_handler.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/vendor/a2a/server/request_handlers/request_handler.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/vendor/a2a/server/request_handlers/response_helpers.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/vendor/a2a/server/tasks/__init__.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/vendor/a2a/server/tasks/inmemory_push_notifier.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/vendor/a2a/server/tasks/inmemory_task_store.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/vendor/a2a/server/tasks/push_notifier.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/vendor/a2a/server/tasks/result_aggregator.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/vendor/a2a/server/tasks/task_manager.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/vendor/a2a/server/tasks/task_store.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/vendor/a2a/server/tasks/task_updater.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/vendor/a2a/types.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/vendor/a2a/utils/__init__.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/vendor/a2a/utils/artifact.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/vendor/a2a/utils/errors.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/vendor/a2a/utils/helpers.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/vendor/a2a/utils/message.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/vendor/a2a/utils/task.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai/vendor/a2a/utils/telemetry.py +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai.egg-info/SOURCES.txt +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai.egg-info/dependency_links.txt +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai.egg-info/entry_points.txt +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai.egg-info/requires.txt +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/pygeai.egg-info/top_level.txt +0 -0
- {pygeai-0.2.7b42 → pygeai-0.2.7b43}/setup.cfg +0 -0
|
@@ -73,6 +73,20 @@ This section declares the Model Context Protocol (MCP) servers that this proxy w
|
|
|
73
73
|
}
|
|
74
74
|
```
|
|
75
75
|
|
|
76
|
+
2. **Location Services Server** (Using http+sse protocol):
|
|
77
|
+
```json
|
|
78
|
+
{
|
|
79
|
+
"mcpServers": {
|
|
80
|
+
"location-services": {
|
|
81
|
+
"uri": "https://location.public-services.com/",
|
|
82
|
+
"headers": [
|
|
83
|
+
"X-API-KEY", "<my api key"
|
|
84
|
+
]
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
```
|
|
89
|
+
|
|
76
90
|
3. **Multiple Servers Combined**:
|
|
77
91
|
```json
|
|
78
92
|
{
|
|
@@ -107,8 +121,10 @@ This section declares the Agent to Agent Protocol (A2A) servers that this proxy
|
|
|
107
121
|
{
|
|
108
122
|
"a2aServers": {
|
|
109
123
|
"hello-world": {
|
|
110
|
-
"
|
|
111
|
-
"
|
|
124
|
+
"url": "http://localhost:9999",
|
|
125
|
+
"headers":{
|
|
126
|
+
"Authorization": "Bearer fh84ff...."
|
|
127
|
+
}
|
|
112
128
|
}
|
|
113
129
|
}
|
|
114
130
|
}
|
|
@@ -145,6 +161,28 @@ Generated new proxy ID: 37bae96b-bc99-4110-bb61-b912b28f9e32
|
|
|
145
161
|
-> Insert proxy description:
|
|
146
162
|
```
|
|
147
163
|
|
|
164
|
+
## Proxy Configuration Parameters
|
|
165
|
+
|
|
166
|
+
During interactive setup, the following parameters are requested:
|
|
167
|
+
|
|
168
|
+
- **proxy ID (UUID)**
|
|
169
|
+
A unique identifier for this proxy instance. If left empty, the automatically generated UUID will be used.
|
|
170
|
+
|
|
171
|
+
- **proxy API key**
|
|
172
|
+
The API key used to authenticate the proxy with the GEAI backend.
|
|
173
|
+
This must be an API token generated in GEAI for a specific project.
|
|
174
|
+
|
|
175
|
+
- **proxy base URL**
|
|
176
|
+
The base URL of the GEAI installation this proxy will connect to.
|
|
177
|
+
For example: `https://api.beta.saia.ai`
|
|
178
|
+
|
|
179
|
+
- **proxy name**
|
|
180
|
+
A human-readable name assigned to this instance of `geai-proxy`.
|
|
181
|
+
This name is stored under the configured alias.
|
|
182
|
+
|
|
183
|
+
- **proxy description**
|
|
184
|
+
An optional description to help identify this proxy instance, especially when using multiple proxies under different aliases.
|
|
185
|
+
|
|
148
186
|
## Usage
|
|
149
187
|
|
|
150
188
|
### Starting the Proxy
|
|
@@ -173,14 +211,13 @@ geai-proxy sample-mcp-config.json --alias beta
|
|
|
173
211
|
|
|
174
212
|
```mermaid
|
|
175
213
|
graph TD
|
|
176
|
-
%% Elementos principales
|
|
177
214
|
user["User (Person)\nClient interacting with the GEAI"]
|
|
178
215
|
geai["GEAI (Software System)\nGlobant Enterprise AI"]
|
|
179
|
-
proxy["MCP Proxy
|
|
216
|
+
proxy["MCP Proxy \nProxy that connects to multiple MCP Servers to call tools"]
|
|
180
217
|
|
|
181
|
-
mcpA["MCP Server A
|
|
182
|
-
|
|
183
|
-
mcpC["MCP Server C
|
|
218
|
+
mcpA["MCP Server A"]
|
|
219
|
+
a2aB["A2A Server B "]
|
|
220
|
+
mcpC["MCP Server C "]
|
|
184
221
|
|
|
185
222
|
%% Conexiones
|
|
186
223
|
user -->|Interacts/Calls tools via| geai
|
|
@@ -192,7 +229,7 @@ graph TD
|
|
|
192
229
|
proxy -->|Calls Search Tool| mcpA
|
|
193
230
|
mcpA -->|Returns search results| proxy
|
|
194
231
|
|
|
195
|
-
proxy -->|Calls Code Tool|
|
|
232
|
+
proxy -->|Calls Code Tool| a2aB
|
|
196
233
|
mcpB -->|Returns code output| proxy
|
|
197
234
|
|
|
198
235
|
proxy -->|Calls DB Tool| mcpC
|
|
@@ -92,6 +92,55 @@ The configuration file should be in JSON format with the following structure:
|
|
|
92
92
|
}
|
|
93
93
|
.fi
|
|
94
94
|
|
|
95
|
+
.SH PUBLIC TOOL REGISTRATION
|
|
96
|
+
Tools provided by both MCP and A2A servers can be published to GEAI under a public namespace
|
|
97
|
+
by including the \fBpublic_prefix\fR field in their configuration entry.
|
|
98
|
+
|
|
99
|
+
This allows tools to be registered under a well-defined global identifier, making them
|
|
100
|
+
discoverable and shareable across proxies and clients.
|
|
101
|
+
|
|
102
|
+
.SS MCP SERVER EXAMPLE WITH PUBLIC PREFIX
|
|
103
|
+
The following configuration registers all tools from the \fBpuppeteer\fR MCP server under
|
|
104
|
+
the public prefix \fIcom.globant.puppeteer\fR:
|
|
105
|
+
|
|
106
|
+
.nf
|
|
107
|
+
{
|
|
108
|
+
"mcpServers": {
|
|
109
|
+
"public_prefix": "com.globant.puppeteer",
|
|
110
|
+
"puppeteer": {
|
|
111
|
+
"command": "npx",
|
|
112
|
+
"args": ["-y", "@modelcontextprotocol/server-puppeteer"]
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
.fi
|
|
117
|
+
|
|
118
|
+
.SS A2A SERVER EXAMPLE WITH PUBLIC PREFIX
|
|
119
|
+
The following configuration registers the tools provided by the \fBhello-world\fR A2A agent
|
|
120
|
+
under the prefix \fIcom.genexus.a2a.sampleagent\fR:
|
|
121
|
+
|
|
122
|
+
.nf
|
|
123
|
+
{
|
|
124
|
+
"a2aServers": {
|
|
125
|
+
"hello-world": {
|
|
126
|
+
"public_prefix": "com.genexus.a2a.sampleagent",
|
|
127
|
+
"url": "http://localhost:9999",
|
|
128
|
+
"headers": {
|
|
129
|
+
"Authorization": "Bearer fh84ff...."
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
.fi
|
|
135
|
+
|
|
136
|
+
.SS RESULTING TOOL IDENTIFIERS
|
|
137
|
+
When this prefix is set, all tools will be published using it. For example, a tool named
|
|
138
|
+
\fBtranslate_text\fR would be available as:
|
|
139
|
+
|
|
140
|
+
.nf
|
|
141
|
+
com.genexus.a2a.sampleagent.translate_text
|
|
142
|
+
.fi
|
|
143
|
+
|
|
95
144
|
.SS 2. Proxy Authentication Configuration
|
|
96
145
|
This section establishes the connection between the proxy and GEAI and manages user aliases.
|
|
97
146
|
.TP
|
|
@@ -116,6 +165,33 @@ Generated new proxy ID: 37bae96b-bc99-4110-bb61-b912b28f9e32
|
|
|
116
165
|
-> Insert proxy description:
|
|
117
166
|
.fi
|
|
118
167
|
|
|
168
|
+
.SH PROXY CONFIGURATION PARAMETERS
|
|
169
|
+
During interactive setup, the following parameters are requested:
|
|
170
|
+
|
|
171
|
+
.TP
|
|
172
|
+
\fBproxy ID (UUID)\fR
|
|
173
|
+
A unique identifier for this proxy instance. If left empty, the automatically generated UUID
|
|
174
|
+
will be used.
|
|
175
|
+
|
|
176
|
+
.TP
|
|
177
|
+
\fBproxy API key\fR
|
|
178
|
+
The API key used to authenticate the proxy with the GEAI backend. This must be an API token
|
|
179
|
+
generated in GEAI for a specific project.
|
|
180
|
+
|
|
181
|
+
.TP
|
|
182
|
+
\fBproxy base URL\fR
|
|
183
|
+
The base URL of the GEAI installation this proxy will connect to.
|
|
184
|
+
For example: \fIhttps://api.beta.saia.ai\fR
|
|
185
|
+
|
|
186
|
+
.TP
|
|
187
|
+
\fBproxy name\fR
|
|
188
|
+
A human-readable name assigned to this instance of \fBgeai-proxy\fR. This name is stored under the configured alias.
|
|
189
|
+
|
|
190
|
+
.TP
|
|
191
|
+
\fBproxy description\fR
|
|
192
|
+
An optional description to help identify this proxy instance, especially when multiple proxies are used under different aliases.
|
|
193
|
+
|
|
194
|
+
|
|
119
195
|
.SH USAGE
|
|
120
196
|
To start the proxy server with a specific configuration and alias:
|
|
121
197
|
.nf
|
|
@@ -59,8 +59,8 @@ class ServerManager:
|
|
|
59
59
|
|
|
60
60
|
for server in self.servers.values():
|
|
61
61
|
Console.write_stdout(f"Listing tools for server {server.name}", end="")
|
|
62
|
-
if server.
|
|
63
|
-
Console.write_stdout(f" | access scope:public prefix: {server.
|
|
62
|
+
if server.public_prefix:
|
|
63
|
+
Console.write_stdout(f" | access scope:public prefix: {server.public_prefix}")
|
|
64
64
|
else:
|
|
65
65
|
Console.write_stdout(" ! access scope:private")
|
|
66
66
|
|
|
@@ -40,7 +40,7 @@ class ToolServer(ABC):
|
|
|
40
40
|
self.config = config
|
|
41
41
|
self.settings = settings
|
|
42
42
|
self.name: str = sever_name
|
|
43
|
-
self.
|
|
43
|
+
self.public_prefix: str | None = None
|
|
44
44
|
self.exit_stack: AsyncExitStack = AsyncExitStack()
|
|
45
45
|
|
|
46
46
|
@abstractmethod
|
|
@@ -105,7 +105,7 @@ class A2AServer(ToolServer):
|
|
|
105
105
|
"""
|
|
106
106
|
try:
|
|
107
107
|
self.httpx_client = httpx.AsyncClient(timeout=60.0)
|
|
108
|
-
self.
|
|
108
|
+
self.public_prefix = self.config.get("public_prefix")
|
|
109
109
|
headers = self.config.get("headers")
|
|
110
110
|
if headers:
|
|
111
111
|
self.httpx_client.headers.update(headers)
|
|
@@ -138,7 +138,7 @@ class A2AServer(ToolServer):
|
|
|
138
138
|
}
|
|
139
139
|
tools = []
|
|
140
140
|
for skill in self.agent_card.skills:
|
|
141
|
-
tools.append(ProxiedTool(self.name, skill.id, skill.description, self.
|
|
141
|
+
tools.append(ProxiedTool(self.name, skill.id, skill.description, self.public_prefix, input_schema))
|
|
142
142
|
return tools
|
|
143
143
|
|
|
144
144
|
async def execute_tool(
|
|
@@ -197,7 +197,7 @@ class MCPServer(ToolServer):
|
|
|
197
197
|
self.session: ClientSession | None = None
|
|
198
198
|
|
|
199
199
|
async def initialize(self) -> None:
|
|
200
|
-
self.
|
|
200
|
+
self.public_prefix = self.config.get("public_prefix")
|
|
201
201
|
transport = self.config.get("transport") or (
|
|
202
202
|
"sse" if "uri" in self.config else "stdio"
|
|
203
203
|
)
|
|
@@ -264,7 +264,7 @@ class MCPServer(ToolServer):
|
|
|
264
264
|
self.name,
|
|
265
265
|
tool.name,
|
|
266
266
|
tool.description,
|
|
267
|
-
self.
|
|
267
|
+
self.public_prefix,
|
|
268
268
|
tool.inputSchema
|
|
269
269
|
)
|
|
270
270
|
)
|
|
@@ -9,7 +9,7 @@ class ProxiedTool:
|
|
|
9
9
|
:param server_name: str - Name of the server exposing the tool
|
|
10
10
|
:param name: str - Name of the tool
|
|
11
11
|
:param description: str - Description of the tool's functionality
|
|
12
|
-
:param
|
|
12
|
+
:param public_prefix: str - Public prefix of the tool
|
|
13
13
|
:param input_schema: dict[str, Any] - JSON schema defining the expected input for the tool
|
|
14
14
|
:return: ProxiedTool - Instance of the ProxiedTool class
|
|
15
15
|
:raises: ValueError - If any required parameter is invalid or missing
|
|
@@ -20,7 +20,7 @@ class ProxiedTool:
|
|
|
20
20
|
server_name: str,
|
|
21
21
|
name: str,
|
|
22
22
|
description: str,
|
|
23
|
-
|
|
23
|
+
public_prefix: str,
|
|
24
24
|
input_schema: dict[str, Any]
|
|
25
25
|
) -> None:
|
|
26
26
|
self.server_name: str = server_name
|
|
@@ -28,7 +28,7 @@ class ProxiedTool:
|
|
|
28
28
|
self.openai_compatible_name: str = self._get_openai_compatible_name(name)
|
|
29
29
|
self.description: str = description
|
|
30
30
|
self.input_schema: dict[str, Any] = input_schema
|
|
31
|
-
self.
|
|
31
|
+
self.public_prefix: str = public_prefix
|
|
32
32
|
|
|
33
33
|
def get_full_name(self) -> str:
|
|
34
34
|
"""Get the full name of the tool."""
|
|
@@ -36,12 +36,12 @@ class ProxiedTool:
|
|
|
36
36
|
|
|
37
37
|
def is_public(self) -> bool:
|
|
38
38
|
"""Check if the tool is public."""
|
|
39
|
-
return self.
|
|
39
|
+
return self.public_prefix is not None
|
|
40
40
|
|
|
41
41
|
def get_public_name(self) -> str:
|
|
42
42
|
"""Get the public name of the tool."""
|
|
43
43
|
return (
|
|
44
|
-
f"{self.
|
|
44
|
+
f"{self.public_prefix}.{self.name if self.server_name in self.public_prefix else self.get_full_name()}"
|
|
45
45
|
)
|
|
46
46
|
|
|
47
47
|
def format_for_llm(self) -> str:
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|