pygeai 0.2.7b43__tar.gz → 0.2.7b45__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.7b43/pygeai.egg-info → pygeai-0.2.7b45}/PKG-INFO +1 -1
- pygeai-0.2.7b45/docs/geai-proxy/README.md +256 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/man/man1/geai-proxy.1 +15 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45/pygeai.egg-info}/PKG-INFO +1 -1
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pyproject.toml +1 -1
- pygeai-0.2.7b43/docs/geai-proxy/README.md +0 -237
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/LICENSE +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/MANIFEST.in +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/README.md +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/__init__.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/admin/__init__.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/admin/clients.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/admin/endpoints.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/assistant/__init__.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/assistant/clients.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/assistant/data/__init__.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/assistant/data/clients.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/assistant/data_analyst/__init__.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/assistant/data_analyst/clients.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/assistant/data_analyst/endpoints.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/assistant/endpoints.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/assistant/managers.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/assistant/mappers.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/assistant/rag/__init__.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/assistant/rag/clients.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/assistant/rag/endpoints.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/assistant/rag/mappers.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/assistant/rag/models.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/assistant/rag/responses.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/chat/__init__.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/chat/clients.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/chat/endpoints.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/chat/iris.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/chat/managers.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/chat/session.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/chat/settings.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/chat/ui.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/cli/__init__.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/cli/__main__.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/cli/commands/__init__.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/cli/commands/admin.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/cli/commands/assistant.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/cli/commands/base.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/cli/commands/builders.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/cli/commands/chat.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/cli/commands/common.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/cli/commands/configuration.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/cli/commands/embeddings.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/cli/commands/evaluation.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/cli/commands/feedback.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/cli/commands/files.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/cli/commands/flows/__init__.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/cli/commands/gam.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/cli/commands/lab/__init__.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/cli/commands/lab/ai_lab.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/cli/commands/lab/common.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/cli/commands/lab/spec.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/cli/commands/llm.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/cli/commands/migrate.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/cli/commands/options.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/cli/commands/organization.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/cli/commands/rag.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/cli/commands/rerank.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/cli/commands/secrets.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/cli/commands/usage_limits.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/cli/commands/validators.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/cli/commands/version.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/cli/geai.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/cli/geai_proxy.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/cli/install_man.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/cli/parsers.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/cli/texts/__init__.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/cli/texts/help.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/core/__init__.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/core/base/__init__.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/core/base/clients.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/core/base/mappers.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/core/base/models.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/core/base/responses.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/core/base/session.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/core/common/__init__.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/core/common/config.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/core/common/decorators.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/core/common/exceptions.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/core/embeddings/__init__.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/core/embeddings/clients.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/core/embeddings/endpoints.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/core/embeddings/managers.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/core/embeddings/mappers.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/core/embeddings/models.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/core/embeddings/responses.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/core/feedback/__init__.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/core/feedback/clients.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/core/feedback/endpoints.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/core/feedback/models.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/core/files/__init__.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/core/files/clients.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/core/files/endpoints.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/core/files/managers.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/core/files/mappers.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/core/files/models.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/core/files/responses.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/core/handlers.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/core/llm/__init__.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/core/llm/clients.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/core/llm/endpoints.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/core/models.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/core/plugins/__init__.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/core/plugins/clients.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/core/plugins/endpoints.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/core/plugins/models.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/core/rerank/__init__.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/core/rerank/clients.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/core/rerank/endpoints.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/core/rerank/managers.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/core/rerank/mappers.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/core/rerank/models.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/core/responses.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/core/secrets/__init__.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/core/secrets/clients.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/core/secrets/endpoints.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/core/services/__init__.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/core/services/llm/__init__.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/core/services/llm/model.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/core/services/llm/providers.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/core/services/response.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/core/services/rest.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/core/singleton.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/core/utils/__init__.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/core/utils/console.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/dbg/__init__.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/dbg/debugger.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/evaluation/__init__.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/evaluation/clients.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/evaluation/dataset/__init__.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/evaluation/dataset/clients.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/evaluation/dataset/endpoints.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/evaluation/plan/__init__.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/evaluation/plan/clients.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/evaluation/plan/endpoints.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/evaluation/result/__init__.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/evaluation/result/clients.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/evaluation/result/endpoints.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/flows/__init__.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/flows/endpoints.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/flows/models.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/gam/__init__.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/gam/clients.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/gam/endpoints.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/health/__init__.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/health/clients.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/health/endpoints.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/lab/__init__.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/lab/agents/__init__.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/lab/agents/clients.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/lab/agents/endpoints.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/lab/agents/mappers.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/lab/constants.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/lab/managers.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/lab/models.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/lab/processes/__init__.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/lab/processes/clients.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/lab/processes/endpoints.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/lab/processes/mappers.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/lab/runners.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/lab/spec/__init__.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/lab/spec/loader.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/lab/spec/parsers.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/lab/strategies/__init__.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/lab/strategies/clients.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/lab/strategies/endpoints.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/lab/strategies/mappers.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/lab/tools/__init__.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/lab/tools/clients.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/lab/tools/endpoints.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/lab/tools/mappers.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/man/__init__.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/man/man1/__init__.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/man/man1/geai.1 +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/migration/__init__.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/migration/strategies.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/migration/tools.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/organization/__init__.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/organization/clients.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/organization/endpoints.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/organization/limits/__init__.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/organization/limits/clients.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/organization/limits/endpoints.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/organization/limits/managers.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/organization/limits/mappers.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/organization/managers.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/organization/mappers.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/organization/responses.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/proxy/__init__.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/proxy/clients.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/proxy/config.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/proxy/managers.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/proxy/servers.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/proxy/tool.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/__init__.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/admin/__init__.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/admin/test_clients.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/assistants/__init__.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/assistants/rag/__init__.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/assistants/rag/test_clients.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/assistants/rag/test_mappers.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/assistants/rag/test_models.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/assistants/test_clients.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/assistants/test_managers.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/assistants/test_mappers.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/chat/__init__.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/chat/test_clients.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/chat/test_iris.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/chat/test_session.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/chat/test_ui.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/cli/__init__.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/cli/commands/__init__.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/cli/commands/lab/__init__.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/cli/commands/lab/test_ai_lab.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/cli/commands/lab/test_common.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/cli/commands/lab/test_spec.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/cli/commands/test_assistant.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/cli/commands/test_chat.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/cli/commands/test_common.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/cli/commands/test_embeddings.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/cli/commands/test_feedback.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/cli/commands/test_files.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/cli/commands/test_gam.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/cli/commands/test_llm.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/cli/commands/test_migrate.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/cli/commands/test_organization.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/cli/commands/test_rag.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/cli/commands/test_rerank.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/cli/commands/test_show_help.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/cli/commands/test_usage_limits.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/cli/commands/test_validators.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/cli/commands/test_version.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/cli/test_parsers.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/core/__init__.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/core/base/__init__.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/core/base/data/__init__.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/core/base/data/mappers.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/core/base/data/models.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/core/base/test_mappers.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/core/base/test_models.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/core/common/__init__.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/core/common/data/__init__.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/core/common/test_config.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/core/common/test_decorators.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/core/embeddings/__init__.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/core/embeddings/test_clients.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/core/feedback/__init__.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/core/feedback/test_clients.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/core/files/__init__.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/core/files/test_clients.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/core/files/test_managers.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/core/files/test_models.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/core/files/test_responses.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/core/llm/__init__.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/core/llm/test_clients.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/core/rerank/__init__.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/core/rerank/test_clients.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/core/rerank/test_managers.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/core/rerank/test_mappers.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/core/secrets/__init__.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/core/secrets/test_clients.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/core/services/__init__.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/core/services/test_rest.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/core/test_handlers.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/core/utils/__init__.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/core/utils/test_console.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/dbg/__init__.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/dbg/test_debugger.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/gam/__init__.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/gam/test_clients.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/health/__init__.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/health/test_clients.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/integration/__init__.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/integration/lab/__init__.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/integration/lab/agents/__init__.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/integration/lab/agents/test_agents_list.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/integration/lab/agents/test_create_agent.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/integration/lab/agents/test_create_sharing_link.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/integration/lab/agents/test_delete_agent.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/integration/lab/agents/test_get_agent.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/integration/lab/agents/test_publish_agent_revision.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/integration/lab/agents/test_update_agent.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/lab/__init__.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/lab/agents/__init__.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/lab/agents/test_clients.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/lab/agents/test_mappers.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/lab/processes/__init__.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/lab/processes/test_clients.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/lab/processes/test_mappers.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/lab/spec/__init__.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/lab/spec/test_loader.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/lab/spec/test_parsers.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/lab/strategies/__init__.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/lab/strategies/test_clients.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/lab/strategies/test_mappers.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/lab/test_managers.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/lab/test_mappers.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/lab/test_models.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/lab/tools/__init__.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/lab/tools/test_clients.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/lab/tools/test_mappers.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/migration/__init__.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/migration/test_strategies.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/migration/test_tools.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/organization/__init__.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/organization/limits/__init__.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/organization/limits/test_clients.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/organization/limits/test_managers.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/organization/test_clients.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/organization/test_managers.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/organization/test_mappers.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/snippets/__init__.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/snippets/assistants/__init__.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/snippets/assistants/create_chat_assistant.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/snippets/assistants/create_text_assistant.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/snippets/assistants/data_analyst/__init__.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/snippets/assistants/data_analyst/extend_and_check.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/snippets/assistants/data_analyst/extend_dataset.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/snippets/assistants/data_analyst/get_status.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/snippets/assistants/file_summarizer_assistant.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/snippets/assistants/get_assistant_data.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/snippets/assistants/get_assistant_list.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/snippets/assistants/rag/__init__.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/snippets/assistants/rag/create_rag_assistant.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/snippets/assistants/rag/delete_al_documents.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/snippets/assistants/rag/delete_document.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/snippets/assistants/rag/delete_rag_assistant.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/snippets/assistants/rag/get_document.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/snippets/assistants/rag/get_documents.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/snippets/assistants/rag/get_rag_assistant_data.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/snippets/assistants/rag/update_rag_assistant.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/snippets/assistants/rag/upload_document.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/snippets/assistants/send_feedback.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/snippets/assistants/update_chat_assistant.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/snippets/chat/__init__.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/snippets/chat/cancel_request.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/snippets/chat/chat_completion.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/snippets/chat/chat_completion_1.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/snippets/chat/chat_completion_2.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/snippets/chat/chat_completion_3.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/snippets/chat/chat_completion_4.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/snippets/chat/chat_completion_streaming.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/snippets/chat/get_request_status.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/snippets/chat/send_chat_request.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/snippets/embeddings/__init__.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/snippets/embeddings/generate_embeddings.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/snippets/evaluation/__init__.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/snippets/files/__init__.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/snippets/files/delete_file.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/snippets/files/get_file_content.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/snippets/files/get_file_data.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/snippets/files/get_file_list.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/snippets/files/upload_file.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/snippets/gam/__init__.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/snippets/gam/gam_access_token.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/snippets/lab/__init__.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/snippets/lab/agentic_flow_example_1.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/snippets/lab/agentic_flow_example_2.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/snippets/lab/agentic_flow_example_3.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/snippets/lab/agentic_flow_example_4.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/snippets/lab/agents/__init__.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/snippets/lab/agents/create_agent.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/snippets/lab/agents/create_agent_2.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/snippets/lab/agents/delete_agent.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/snippets/lab/agents/get_agent.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/snippets/lab/agents/get_sharing_link.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/snippets/lab/agents/list_agents.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/snippets/lab/agents/publish_agent_revision.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/snippets/lab/agents/update_agent.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/snippets/lab/assistant_to_agent.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/snippets/lab/crud_ui.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/snippets/lab/processes/__init__.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/snippets/lab/processes/create_process.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/snippets/lab/processes/create_task.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/snippets/lab/processes/jobs/__init__.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/snippets/lab/processes/jobs/list_jobs.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/snippets/lab/processes/kbs/__init__.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/snippets/lab/processes/kbs/create_kb.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/snippets/lab/processes/kbs/get_kb.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/snippets/lab/processes/kbs/list_kbs.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/snippets/lab/processes/kbs/try_all.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/snippets/lab/processes/list_processes.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/snippets/lab/runner_1.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/snippets/lab/samples/__init__.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/snippets/lab/samples/summarize_files.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/snippets/lab/strategies/__init__.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/snippets/lab/strategies/create_reasoning_strategy.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/snippets/lab/strategies/get_reasoning_strategy.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/snippets/lab/strategies/list_reasoning_strategies.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/snippets/lab/strategies/update_reasoning_strategy.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/snippets/lab/tools/__init__.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/snippets/lab/tools/create_tool.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/snippets/lab/tools/delete_tool.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/snippets/lab/tools/get_parameter.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/snippets/lab/tools/get_tool.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/snippets/lab/tools/list_tools.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/snippets/lab/tools/publish_tool_revision.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/snippets/lab/tools/set_parameters.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/snippets/lab/tools/update_tool.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/snippets/lab/use_cases/__init__.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/snippets/lab/use_cases/c_code_fixer_agent_flow.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/snippets/lab/use_cases/create_cli_expert.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/snippets/lab/use_cases/create_lab_expert.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/snippets/lab/use_cases/create_tool_headless_web_browser.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/snippets/lab/use_cases/create_web_designer.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/snippets/lab/use_cases/create_web_reader.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/snippets/lab/use_cases/file_summarizer_example.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/snippets/lab/use_cases/file_summarizer_example_2.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/snippets/lab/use_cases/update_cli_expert.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/snippets/lab/use_cases/update_lab_expert.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/snippets/lab/use_cases/update_web_designer.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/snippets/lab/use_cases/update_web_reader.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/snippets/lab/use_cases/update_web_reader_with_tool.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/snippets/migrate/__init__.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/snippets/organization/__init__.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/snippets/organization/create_project.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/snippets/organization/delete_project.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/snippets/organization/export_request_data.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/snippets/organization/get_project_data.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/snippets/organization/get_project_list.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/snippets/organization/get_project_tokens.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/snippets/organization/update_project.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/snippets/rerank/__init__.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/snippets/rerank/rerank_chunks.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/snippets/secrets/__init__.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/snippets/usage_limit/__init__.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/snippets/usage_limit/delete_usage_limit.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/snippets/usage_limit/get_all_usage_limit_from_organization.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/snippets/usage_limit/get_usage_limit_from_organization.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/snippets/usage_limit/get_usage_limit_from_project.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/snippets/usage_limit/set_usage_limit_organization.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/snippets/usage_limit/set_usage_limit_project.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/snippets/usage_limit/update_usage_limit_organization.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/tests/snippets/usage_limit/update_usage_limit_project.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/vendor/a2a/__init__.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/vendor/a2a/auth/__init__.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/vendor/a2a/auth/user.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/vendor/a2a/client/__init__.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/vendor/a2a/client/client.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/vendor/a2a/client/errors.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/vendor/a2a/client/helpers.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/vendor/a2a/py.typed +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/vendor/a2a/server/__init__.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/vendor/a2a/server/agent_execution/__init__.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/vendor/a2a/server/agent_execution/agent_executor.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/vendor/a2a/server/agent_execution/context.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/vendor/a2a/server/agent_execution/request_context_builder.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/vendor/a2a/server/agent_execution/simple_request_context_builder.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/vendor/a2a/server/apps/__init__.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/vendor/a2a/server/apps/jsonrpc/__init__.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/vendor/a2a/server/apps/jsonrpc/fastapi_app.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/vendor/a2a/server/apps/jsonrpc/jsonrpc_app.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/vendor/a2a/server/apps/jsonrpc/starlette_app.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/vendor/a2a/server/context.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/vendor/a2a/server/events/__init__.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/vendor/a2a/server/events/event_consumer.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/vendor/a2a/server/events/event_queue.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/vendor/a2a/server/events/in_memory_queue_manager.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/vendor/a2a/server/events/queue_manager.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/vendor/a2a/server/request_handlers/__init__.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/vendor/a2a/server/request_handlers/default_request_handler.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/vendor/a2a/server/request_handlers/jsonrpc_handler.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/vendor/a2a/server/request_handlers/request_handler.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/vendor/a2a/server/request_handlers/response_helpers.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/vendor/a2a/server/tasks/__init__.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/vendor/a2a/server/tasks/inmemory_push_notifier.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/vendor/a2a/server/tasks/inmemory_task_store.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/vendor/a2a/server/tasks/push_notifier.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/vendor/a2a/server/tasks/result_aggregator.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/vendor/a2a/server/tasks/task_manager.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/vendor/a2a/server/tasks/task_store.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/vendor/a2a/server/tasks/task_updater.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/vendor/a2a/types.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/vendor/a2a/utils/__init__.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/vendor/a2a/utils/artifact.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/vendor/a2a/utils/errors.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/vendor/a2a/utils/helpers.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/vendor/a2a/utils/message.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/vendor/a2a/utils/task.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai/vendor/a2a/utils/telemetry.py +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai.egg-info/SOURCES.txt +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai.egg-info/dependency_links.txt +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai.egg-info/entry_points.txt +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai.egg-info/requires.txt +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/pygeai.egg-info/top_level.txt +0 -0
- {pygeai-0.2.7b43 → pygeai-0.2.7b45}/setup.cfg +0 -0
|
@@ -0,0 +1,256 @@
|
|
|
1
|
+
# GEAI Proxy Documentation
|
|
2
|
+
|
|
3
|
+
## NAME
|
|
4
|
+
`geai-proxy` – proxy service for managing Model Context Protocol (MCP) servers with GEAI
|
|
5
|
+
|
|
6
|
+
## SYNOPSIS
|
|
7
|
+
```bash
|
|
8
|
+
geai-proxy [OPTIONS] CONFIG_FILE
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## DESCRIPTION
|
|
12
|
+
The GEAI Proxy is a Python-based tool that acts as an intermediary between the GEAI API and various tool servers. It manages the registration, execution, and result handling of tool operations through a proxy service.
|
|
13
|
+
|
|
14
|
+
To install:
|
|
15
|
+
|
|
16
|
+
```bash
|
|
17
|
+
pip install pygeai
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
## CONFIGURATION
|
|
21
|
+
|
|
22
|
+
The GEAI Proxy requires two distinct types of configuration:
|
|
23
|
+
|
|
24
|
+
### 1. MCP Servers Configuration
|
|
25
|
+
|
|
26
|
+
This section declares the Model Context Protocol (MCP) servers that this proxy will link with GEAI. The configuration follows the Claude Desktop standard format and supports multiple servers in one file.
|
|
27
|
+
|
|
28
|
+
#### Configuration File Format
|
|
29
|
+
|
|
30
|
+
```json
|
|
31
|
+
{
|
|
32
|
+
"mcpServers": {
|
|
33
|
+
"serverName1": {
|
|
34
|
+
"command": "command-to-launch-server",
|
|
35
|
+
"args": ["arg1", "arg2", "..."]
|
|
36
|
+
},
|
|
37
|
+
"serverName2": {
|
|
38
|
+
"command": "command-to-launch-server",
|
|
39
|
+
"args": ["arg1", "arg2", "..."]
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
#### Example: Puppeteer Server
|
|
46
|
+
|
|
47
|
+
```json
|
|
48
|
+
{
|
|
49
|
+
"mcpServers": {
|
|
50
|
+
"puppeteer": {
|
|
51
|
+
"command": "npx",
|
|
52
|
+
"args": ["-y", "@modelcontextprotocol/server-puppeteer"]
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
#### Example: Filesystem Server
|
|
59
|
+
|
|
60
|
+
```json
|
|
61
|
+
{
|
|
62
|
+
"mcpServers": {
|
|
63
|
+
"filesystem": {
|
|
64
|
+
"command": "npx",
|
|
65
|
+
"args": ["-y", "@modelcontextprotocol/server-filesystem", "~/mcp-shared-folder"]
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
#### Example: HTTP+SSE Server
|
|
72
|
+
|
|
73
|
+
```json
|
|
74
|
+
{
|
|
75
|
+
"mcpServers": {
|
|
76
|
+
"markitdown": {
|
|
77
|
+
"uri": "http://localhost:5000/sse"
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
#### Example: Multiple Servers Combined
|
|
84
|
+
|
|
85
|
+
```json
|
|
86
|
+
{
|
|
87
|
+
"mcpServers": {
|
|
88
|
+
"puppeteer": {
|
|
89
|
+
"command": "npx",
|
|
90
|
+
"args": ["-y", "@modelcontextprotocol/server-puppeteer"]
|
|
91
|
+
},
|
|
92
|
+
"filesystem": {
|
|
93
|
+
"command": "npx",
|
|
94
|
+
"args": ["-y", "@modelcontextprotocol/server-filesystem", "~/mcp-shared-folder"]
|
|
95
|
+
},
|
|
96
|
+
"markitdown": {
|
|
97
|
+
"uri": "http://localhost:5000/sse"
|
|
98
|
+
},
|
|
99
|
+
"custom-server": {
|
|
100
|
+
"command": "python",
|
|
101
|
+
"args": ["path/to/your/custom_mcp_server.py"]
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
## PUBLIC TOOL REGISTRATION
|
|
108
|
+
|
|
109
|
+
Tools provided by both MCP and A2A servers can be published to GEAI under a public namespace by including the `public_prefix` field in their configuration entry.
|
|
110
|
+
|
|
111
|
+
This allows tools to be registered under a well-defined global identifier, making them discoverable and shareable across proxies and clients.
|
|
112
|
+
|
|
113
|
+
### MCP Server Example with Public Prefix
|
|
114
|
+
|
|
115
|
+
Registers tools from the `puppeteer` MCP server under the prefix `com.globant.puppeteer`:
|
|
116
|
+
|
|
117
|
+
```json
|
|
118
|
+
{
|
|
119
|
+
"mcpServers": {
|
|
120
|
+
"public_prefix": "com.globant.puppeteer",
|
|
121
|
+
"puppeteer": {
|
|
122
|
+
"command": "npx",
|
|
123
|
+
"args": ["-y", "@modelcontextprotocol/server-puppeteer"]
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
### A2A Server Example with Public Prefix
|
|
130
|
+
|
|
131
|
+
Registers tools from the `hello-world` A2A agent under the prefix `com.genexus.a2a.sampleagent`:
|
|
132
|
+
|
|
133
|
+
```json
|
|
134
|
+
{
|
|
135
|
+
"a2aServers": {
|
|
136
|
+
"hello-world": {
|
|
137
|
+
"public_prefix": "com.genexus.a2a.sampleagent",
|
|
138
|
+
"url": "http://localhost:9999",
|
|
139
|
+
"headers": {
|
|
140
|
+
"Authorization": "Bearer fh84ff...."
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
### Resulting Tool Identifiers
|
|
148
|
+
|
|
149
|
+
For example, a tool named `translate_text` would be available as:
|
|
150
|
+
|
|
151
|
+
```text
|
|
152
|
+
com.genexus.a2a.sampleagent.translate_text
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
### 2. Proxy Authentication Configuration
|
|
156
|
+
|
|
157
|
+
This section establishes the connection between the proxy and GEAI and manages user aliases.
|
|
158
|
+
|
|
159
|
+
#### Automatic Configuration (First Run)
|
|
160
|
+
|
|
161
|
+
```bash
|
|
162
|
+
geai-proxy sample-mcp-config.json --alias myalias
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
#### Manual Configuration (Reconfiguration)
|
|
166
|
+
|
|
167
|
+
```bash
|
|
168
|
+
geai-proxy --configure --alias myalias
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
During interactive setup, the CLI will prompt:
|
|
172
|
+
|
|
173
|
+
```
|
|
174
|
+
# Configuring GEAI proxy settings...
|
|
175
|
+
Generated new proxy ID: 37bae96b-bc99-4110-bb61-b912b28f9e32
|
|
176
|
+
-> Insert proxy ID (UUID) (Current: 37bae96b-bc99-4110-bb61-b912b28f9e32, Leave empty to keep):
|
|
177
|
+
-> Insert proxy API key:
|
|
178
|
+
-> Insert proxy base URL:
|
|
179
|
+
-> Insert proxy name:
|
|
180
|
+
-> Insert proxy description:
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
## PROXY CONFIGURATION PARAMETERS
|
|
184
|
+
|
|
185
|
+
During interactive setup, the following parameters are requested:
|
|
186
|
+
|
|
187
|
+
- **proxy ID (UUID)**
|
|
188
|
+
A unique identifier for this proxy instance. If left empty, the automatically generated UUID will be used.
|
|
189
|
+
|
|
190
|
+
- **proxy API key**
|
|
191
|
+
The API key used to authenticate the proxy with the GEAI backend. Must be a token from GEAI for a specific project.
|
|
192
|
+
|
|
193
|
+
- **proxy base URL**
|
|
194
|
+
The base URL of the GEAI installation to connect to.
|
|
195
|
+
Example: `https://api.beta.saia.ai`
|
|
196
|
+
|
|
197
|
+
- **proxy name**
|
|
198
|
+
Human-readable name for this proxy instance, stored under the alias.
|
|
199
|
+
|
|
200
|
+
- **proxy description**
|
|
201
|
+
Optional. Helps identify this proxy instance when using multiple aliases.
|
|
202
|
+
|
|
203
|
+
### Environment Variables
|
|
204
|
+
|
|
205
|
+
All of the above configuration parameters can also be set via environment variables:
|
|
206
|
+
|
|
207
|
+
- `GEAI_API_KEY`
|
|
208
|
+
- `GEAI_API_BASE_URL`
|
|
209
|
+
- `PROXY_ID`
|
|
210
|
+
- `PROXY_NAME`
|
|
211
|
+
- `PROXY_DESCRIPTION`
|
|
212
|
+
|
|
213
|
+
These environment variables override or represent the configuration of the **default alias**. Therefore, they will only be taken into account if the proxy is invoked with `--alias default`. When using a different alias, these variables are ignored.
|
|
214
|
+
|
|
215
|
+
## USAGE
|
|
216
|
+
|
|
217
|
+
To start the proxy server with a config and alias:
|
|
218
|
+
|
|
219
|
+
```bash
|
|
220
|
+
geai-proxy sample-mcp-config.json --alias myalias
|
|
221
|
+
```
|
|
222
|
+
|
|
223
|
+
### Command Line Arguments
|
|
224
|
+
|
|
225
|
+
- **config_file**: Path to the MCP servers configuration file (JSON).
|
|
226
|
+
- **--alias ALIAS**: Alias for the proxy settings.
|
|
227
|
+
- **--configure**: Reconfigure proxy authentication settings.
|
|
228
|
+
|
|
229
|
+
## FILES
|
|
230
|
+
|
|
231
|
+
- `pygeai/proxy/sample-mcp-config.json` – Sample configuration file for MCP servers.
|
|
232
|
+
|
|
233
|
+
## SEE ALSO
|
|
234
|
+
|
|
235
|
+
- `pygeai (1)`
|
|
236
|
+
|
|
237
|
+
## THIRD-PARTY COMPONENTS
|
|
238
|
+
|
|
239
|
+
This software includes code from the `a2a-python` project by Google LLC, licensed under the Apache License 2.0.
|
|
240
|
+
|
|
241
|
+
Only the vendored component in `pygeai/vendor/a2a/` is Apache-licensed. The rest is MIT-licensed.
|
|
242
|
+
|
|
243
|
+
License sources:
|
|
244
|
+
|
|
245
|
+
- https://github.com/google/a2a-python
|
|
246
|
+
- `pygeai/vendor/a2a/LICENSE`
|
|
247
|
+
|
|
248
|
+
## AUTHOR
|
|
249
|
+
|
|
250
|
+
Written by the GEAI development team.
|
|
251
|
+
|
|
252
|
+
## COPYRIGHT
|
|
253
|
+
|
|
254
|
+
Copyright © 2025 GEAI development team.
|
|
255
|
+
|
|
256
|
+
This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
|
@@ -191,6 +191,21 @@ A human-readable name assigned to this instance of \fBgeai-proxy\fR. This name i
|
|
|
191
191
|
\fBproxy description\fR
|
|
192
192
|
An optional description to help identify this proxy instance, especially when multiple proxies are used under different aliases.
|
|
193
193
|
|
|
194
|
+
.SS Environment Variables
|
|
195
|
+
The above configuration parameters can also be set using environment variables:
|
|
196
|
+
|
|
197
|
+
.TP
|
|
198
|
+
\fBGEAI_API_KEY\fR
|
|
199
|
+
.TP
|
|
200
|
+
\fBGEAI_API_BASE_URL\fR
|
|
201
|
+
.TP
|
|
202
|
+
\fBPROXY_ID\fR
|
|
203
|
+
.TP
|
|
204
|
+
\fBPROXY_NAME\fR
|
|
205
|
+
.TP
|
|
206
|
+
\fBPROXY_DESCRIPTION\fR
|
|
207
|
+
|
|
208
|
+
These environment variables override or represent the configuration of the \fBdefault alias\fR. Therefore, they are only taken into account if the proxy is invoked with \fB\-\-alias default\fR. When using a different alias, these variables are ignored.
|
|
194
209
|
|
|
195
210
|
.SH USAGE
|
|
196
211
|
To start the proxy server with a specific configuration and alias:
|
|
@@ -1,237 +0,0 @@
|
|
|
1
|
-
# GEAI Proxy Documentation
|
|
2
|
-
|
|
3
|
-
## Overview
|
|
4
|
-
|
|
5
|
-
The GEAI Proxy is a Python-based tool that acts as an intermediary between the GEAI API and various tool servers. It manages the registration, execution, and result handling of tool operations through a proxy service.
|
|
6
|
-
|
|
7
|
-
## Installation
|
|
8
|
-
|
|
9
|
-
## Third-party Components
|
|
10
|
-
|
|
11
|
-
This project includes code from [`a2a-python`](https://github.com/google/a2a-python) by Google LLC, used under the Apache License, Version 2.0.
|
|
12
|
-
|
|
13
|
-
Only the vendored component located in `pygeai/vendor/a2a/` is subject to the Apache License.
|
|
14
|
-
The rest of this project is licensed under the MIT License (see `LICENSE` file for details).
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
```bash
|
|
18
|
-
pip install pygeai
|
|
19
|
-
```
|
|
20
|
-
|
|
21
|
-
## Configuration
|
|
22
|
-
|
|
23
|
-
The GEAI Proxy requires two distinct types of configuration:
|
|
24
|
-
|
|
25
|
-
### 1. MCP Servers Configuration
|
|
26
|
-
|
|
27
|
-
This section declares the Model Context Protocol (MCP) servers that this proxy will link with GEAI. The configuration follows the Claude Desktop standard format and supports multiple servers in one file.
|
|
28
|
-
|
|
29
|
-
#### Configuration File Format
|
|
30
|
-
|
|
31
|
-
```json
|
|
32
|
-
{
|
|
33
|
-
"mcpServers": {
|
|
34
|
-
"serverName1": {
|
|
35
|
-
"command": "command-to-launch-server",
|
|
36
|
-
"args": ["arg1", "arg2", ...]
|
|
37
|
-
},
|
|
38
|
-
"serverName2": {
|
|
39
|
-
"command": "command-to-launch-server",
|
|
40
|
-
"args": ["arg1", "arg2", ...]
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
```
|
|
45
|
-
|
|
46
|
-
#### Example Configurations
|
|
47
|
-
|
|
48
|
-
1. **Puppeteer Server** (for web automation):
|
|
49
|
-
```json
|
|
50
|
-
{
|
|
51
|
-
"mcpServers": {
|
|
52
|
-
"puppeteer": {
|
|
53
|
-
"command": "npx",
|
|
54
|
-
"args": ["-y", "@modelcontextprotocol/server-puppeteer"]
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
```
|
|
59
|
-
|
|
60
|
-
2. **Filesystem Server** (for file operations):
|
|
61
|
-
```json
|
|
62
|
-
{
|
|
63
|
-
"mcpServers": {
|
|
64
|
-
"filesystem": {
|
|
65
|
-
"command": "npx",
|
|
66
|
-
"args": [
|
|
67
|
-
"-y",
|
|
68
|
-
"@modelcontextprotocol/server-filesystem",
|
|
69
|
-
"~/mcp-shared-folder"
|
|
70
|
-
]
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
```
|
|
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
|
-
|
|
90
|
-
3. **Multiple Servers Combined**:
|
|
91
|
-
```json
|
|
92
|
-
{
|
|
93
|
-
"mcpServers": {
|
|
94
|
-
"puppeteer": {
|
|
95
|
-
"command": "npx",
|
|
96
|
-
"args": ["-y", "@modelcontextprotocol/server-puppeteer"]
|
|
97
|
-
},
|
|
98
|
-
"filesystem": {
|
|
99
|
-
"command": "npx",
|
|
100
|
-
"args": [
|
|
101
|
-
"-y",
|
|
102
|
-
"@modelcontextprotocol/server-filesystem",
|
|
103
|
-
"~/mcp-shared-folder"
|
|
104
|
-
]
|
|
105
|
-
},
|
|
106
|
-
"custom-server": {
|
|
107
|
-
"command": "python",
|
|
108
|
-
"args": ["path/to/your/custom_mcp_server.py"]
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
```
|
|
113
|
-
|
|
114
|
-
### 1. A2A Servers Configuration
|
|
115
|
-
|
|
116
|
-
This section declares the Agent to Agent Protocol (A2A) servers that this proxy will link with GEAI. The configuration follows the standard format and supports multiple servers in one file.
|
|
117
|
-
|
|
118
|
-
#### Configuration File Format
|
|
119
|
-
|
|
120
|
-
```json
|
|
121
|
-
{
|
|
122
|
-
"a2aServers": {
|
|
123
|
-
"hello-world": {
|
|
124
|
-
"url": "http://localhost:9999",
|
|
125
|
-
"headers":{
|
|
126
|
-
"Authorization": "Bearer fh84ff...."
|
|
127
|
-
}
|
|
128
|
-
}
|
|
129
|
-
}
|
|
130
|
-
}
|
|
131
|
-
```
|
|
132
|
-
|
|
133
|
-
A sample configuration file is provided at:
|
|
134
|
-
```
|
|
135
|
-
pygeai/proxy/sample-mcp-config.json
|
|
136
|
-
```
|
|
137
|
-
|
|
138
|
-
### 2. Proxy Authentication Configuration
|
|
139
|
-
|
|
140
|
-
This section establishes the connection between the proxy and GEAI and manages user aliases. You can configure it automatically on first run or manually reconfigure an existing alias.
|
|
141
|
-
|
|
142
|
-
#### Automatic Configuration (First Run)
|
|
143
|
-
```bash
|
|
144
|
-
geai-proxy sample-mcp-config.json --alias myalias
|
|
145
|
-
```
|
|
146
|
-
|
|
147
|
-
#### Manual Configuration (Reconfiguration)
|
|
148
|
-
```bash
|
|
149
|
-
geai-proxy --configure --alias myalias
|
|
150
|
-
```
|
|
151
|
-
|
|
152
|
-
During interactive setup, the CLI will prompt you for each required setting:
|
|
153
|
-
|
|
154
|
-
```bash
|
|
155
|
-
# Configuring GEAI proxy settings...
|
|
156
|
-
Generated new proxy ID: 37bae96b-bc99-4110-bb61-b912b28f9e32
|
|
157
|
-
-> Insert proxy ID (UUID) (Current: 37bae96b-bc99-4110-bb61-b912b28f9e32, Leave empty to keep):
|
|
158
|
-
-> Insert proxy API key:
|
|
159
|
-
-> Insert proxy base URL:
|
|
160
|
-
-> Insert proxy name:
|
|
161
|
-
-> Insert proxy description:
|
|
162
|
-
```
|
|
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
|
-
|
|
186
|
-
## Usage
|
|
187
|
-
|
|
188
|
-
### Starting the Proxy
|
|
189
|
-
|
|
190
|
-
To start the proxy server with a specific configuration and alias:
|
|
191
|
-
|
|
192
|
-
```bash
|
|
193
|
-
geai-proxy sample-mcp-config.json --alias myalias
|
|
194
|
-
```
|
|
195
|
-
|
|
196
|
-
### Command Line Arguments
|
|
197
|
-
|
|
198
|
-
| Argument | Description | Required |
|
|
199
|
-
|----------|-------------|----------|
|
|
200
|
-
| `config_file` | Path to the MCP servers configuration file (JSON format) | Yes |
|
|
201
|
-
| `--alias` | Alias for the proxy settings | No |
|
|
202
|
-
| `--configure` | Command to reconfigure proxy authentication | No |
|
|
203
|
-
|
|
204
|
-
## Command Line Usage
|
|
205
|
-
|
|
206
|
-
```bash
|
|
207
|
-
geai-proxy sample-mcp-config.json --alias beta
|
|
208
|
-
```
|
|
209
|
-
|
|
210
|
-
## Architecture
|
|
211
|
-
|
|
212
|
-
```mermaid
|
|
213
|
-
graph TD
|
|
214
|
-
user["User (Person)\nClient interacting with the GEAI"]
|
|
215
|
-
geai["GEAI (Software System)\nGlobant Enterprise AI"]
|
|
216
|
-
proxy["MCP Proxy \nProxy that connects to multiple MCP Servers to call tools"]
|
|
217
|
-
|
|
218
|
-
mcpA["MCP Server A"]
|
|
219
|
-
a2aB["A2A Server B "]
|
|
220
|
-
mcpC["MCP Server C "]
|
|
221
|
-
|
|
222
|
-
%% Conexiones
|
|
223
|
-
user -->|Interacts/Calls tools via| geai
|
|
224
|
-
geai -->|Returns tool responses| user
|
|
225
|
-
geai -->|Calls tools via| proxy
|
|
226
|
-
proxy -->|Returns tool responses| geai
|
|
227
|
-
|
|
228
|
-
user -->|Calls Search Tool| proxy
|
|
229
|
-
proxy -->|Calls Search Tool| mcpA
|
|
230
|
-
mcpA -->|Returns search results| proxy
|
|
231
|
-
|
|
232
|
-
proxy -->|Calls Code Tool| a2aB
|
|
233
|
-
mcpB -->|Returns code output| proxy
|
|
234
|
-
|
|
235
|
-
proxy -->|Calls DB Tool| mcpC
|
|
236
|
-
mcpC -->|Returns query results| proxy
|
|
237
|
-
```
|
|
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
|