pygeai 0.4.0b10__tar.gz → 0.4.0b12__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.
Potentially problematic release.
This version of pygeai might be problematic. Click here for more details.
- {pygeai-0.4.0b10/pygeai.egg-info → pygeai-0.4.0b12}/PKG-INFO +1 -1
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/chat/ui.py +0 -1
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/cli/commands/chat.py +47 -55
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/cli/commands/lab/ai_lab.py +0 -1
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/core/common/config.py +0 -2
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/lab/managers.py +2 -2
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/lab/tools/clients.py +13 -17
- pygeai-0.4.0b12/pygeai/tests/integration/assistants/rag/test_create_rag.py +72 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/integration/lab/agents/test_create_agent.py +0 -1
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/integration/lab/agents/test_publish_agent_revision.py +0 -1
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/integration/lab/agents/test_update_agent.py +0 -1
- pygeai-0.4.0b12/pygeai/tests/integration/lab/tools/test_get_parameter.py +98 -0
- pygeai-0.4.0b12/pygeai/tests/integration/lab/tools/test_publish_tool_revision.py +119 -0
- pygeai-0.4.0b12/pygeai/tests/integration/lab/tools/test_set_parameter.py +114 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/snippets/lab/agents/get_sharing_link.py +1 -2
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/snippets/lab/tools/create_tool.py +1 -1
- pygeai-0.4.0b12/pygeai/vendor/a2a/auth/__init__.py +0 -0
- pygeai-0.4.0b12/pygeai/vendor/a2a/py.typed +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12/pygeai.egg-info}/PKG-INFO +1 -1
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai.egg-info/SOURCES.txt +6 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pyproject.toml +1 -1
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/LICENSE +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/MANIFEST.in +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/README.md +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/docs/geai-proxy/README.md +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/__init__.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/admin/__init__.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/admin/clients.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/admin/endpoints.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/assistant/__init__.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/assistant/clients.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/assistant/data/__init__.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/assistant/data/clients.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/assistant/data_analyst/__init__.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/assistant/data_analyst/clients.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/assistant/data_analyst/endpoints.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/assistant/endpoints.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/assistant/managers.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/assistant/mappers.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/assistant/rag/__init__.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/assistant/rag/clients.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/assistant/rag/endpoints.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/assistant/rag/mappers.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/assistant/rag/models.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/assistant/rag/responses.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/chat/__init__.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/chat/clients.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/chat/endpoints.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/chat/iris.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/chat/managers.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/chat/session.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/chat/settings.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/cli/__init__.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/cli/__main__.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/cli/commands/__init__.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/cli/commands/admin.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/cli/commands/assistant.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/cli/commands/base.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/cli/commands/builders.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/cli/commands/common.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/cli/commands/configuration.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/cli/commands/embeddings.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/cli/commands/evaluation.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/cli/commands/feedback.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/cli/commands/files.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/cli/commands/flows/__init__.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/cli/commands/gam.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/cli/commands/lab/__init__.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/cli/commands/lab/common.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/cli/commands/lab/options.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/cli/commands/lab/spec.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/cli/commands/lab/utils.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/cli/commands/llm.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/cli/commands/migrate.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/cli/commands/options.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/cli/commands/organization.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/cli/commands/rag.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/cli/commands/rerank.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/cli/commands/secrets.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/cli/commands/usage_limits.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/cli/commands/validators.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/cli/commands/version.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/cli/geai.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/cli/geai_proxy.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/cli/install_man.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/cli/parsers.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/cli/texts/__init__.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/cli/texts/help.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/core/__init__.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/core/base/__init__.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/core/base/clients.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/core/base/mappers.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/core/base/models.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/core/base/responses.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/core/base/session.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/core/common/__init__.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/core/common/decorators.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/core/common/exceptions.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/core/embeddings/__init__.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/core/embeddings/clients.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/core/embeddings/endpoints.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/core/embeddings/managers.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/core/embeddings/mappers.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/core/embeddings/models.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/core/embeddings/responses.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/core/feedback/__init__.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/core/feedback/clients.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/core/feedback/endpoints.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/core/feedback/models.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/core/files/__init__.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/core/files/clients.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/core/files/endpoints.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/core/files/managers.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/core/files/mappers.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/core/files/models.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/core/files/responses.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/core/handlers.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/core/llm/__init__.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/core/llm/clients.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/core/llm/endpoints.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/core/models.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/core/plugins/__init__.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/core/plugins/clients.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/core/plugins/endpoints.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/core/plugins/models.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/core/rerank/__init__.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/core/rerank/clients.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/core/rerank/endpoints.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/core/rerank/managers.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/core/rerank/mappers.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/core/rerank/models.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/core/responses.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/core/secrets/__init__.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/core/secrets/clients.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/core/secrets/endpoints.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/core/services/__init__.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/core/services/llm/__init__.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/core/services/llm/model.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/core/services/llm/providers.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/core/services/response.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/core/services/rest.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/core/singleton.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/core/utils/__init__.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/core/utils/console.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/dbg/__init__.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/dbg/debugger.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/evaluation/__init__.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/evaluation/clients.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/evaluation/dataset/__init__.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/evaluation/dataset/clients.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/evaluation/dataset/endpoints.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/evaluation/plan/__init__.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/evaluation/plan/clients.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/evaluation/plan/endpoints.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/evaluation/result/__init__.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/evaluation/result/clients.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/evaluation/result/endpoints.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/flows/__init__.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/flows/endpoints.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/flows/models.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/gam/__init__.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/gam/clients.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/gam/endpoints.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/health/__init__.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/health/clients.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/health/endpoints.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/lab/__init__.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/lab/agents/__init__.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/lab/agents/clients.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/lab/agents/endpoints.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/lab/agents/mappers.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/lab/clients.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/lab/constants.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/lab/models.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/lab/processes/__init__.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/lab/processes/clients.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/lab/processes/endpoints.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/lab/processes/mappers.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/lab/runners.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/lab/spec/__init__.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/lab/spec/loader.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/lab/spec/parsers.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/lab/strategies/__init__.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/lab/strategies/clients.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/lab/strategies/endpoints.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/lab/strategies/mappers.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/lab/tools/__init__.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/lab/tools/endpoints.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/lab/tools/mappers.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/man/__init__.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/man/man1/__init__.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/man/man1/geai-proxy.1 +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/man/man1/geai.1 +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/migration/__init__.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/migration/strategies.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/migration/tools.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/organization/__init__.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/organization/clients.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/organization/endpoints.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/organization/limits/__init__.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/organization/limits/clients.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/organization/limits/endpoints.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/organization/limits/managers.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/organization/limits/mappers.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/organization/managers.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/organization/mappers.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/organization/responses.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/proxy/__init__.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/proxy/clients.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/proxy/config.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/proxy/managers.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/proxy/servers.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/proxy/tool.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/__init__.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/admin/__init__.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/admin/test_clients.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/assistants/__init__.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/assistants/rag/__init__.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/assistants/rag/test_clients.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/assistants/rag/test_mappers.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/assistants/rag/test_models.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/assistants/test_clients.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/assistants/test_managers.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/assistants/test_mappers.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/chat/__init__.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/chat/test_clients.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/chat/test_iris.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/chat/test_session.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/chat/test_ui.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/cli/__init__.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/cli/commands/__init__.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/cli/commands/lab/__init__.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/cli/commands/lab/test_ai_lab.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/cli/commands/lab/test_common.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/cli/commands/lab/test_spec.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/cli/commands/test_assistant.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/cli/commands/test_chat.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/cli/commands/test_common.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/cli/commands/test_embeddings.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/cli/commands/test_feedback.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/cli/commands/test_files.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/cli/commands/test_gam.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/cli/commands/test_llm.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/cli/commands/test_migrate.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/cli/commands/test_organization.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/cli/commands/test_rag.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/cli/commands/test_rerank.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/cli/commands/test_show_help.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/cli/commands/test_usage_limits.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/cli/commands/test_validators.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/cli/commands/test_version.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/cli/test_parsers.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/core/__init__.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/core/base/__init__.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/core/base/data/__init__.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/core/base/data/mappers.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/core/base/data/models.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/core/base/test_mappers.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/core/base/test_models.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/core/common/__init__.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/core/common/data/__init__.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/core/common/test_config.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/core/common/test_decorators.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/core/embeddings/__init__.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/core/embeddings/test_clients.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/core/feedback/__init__.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/core/feedback/test_clients.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/core/files/__init__.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/core/files/test_clients.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/core/files/test_managers.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/core/files/test_models.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/core/files/test_responses.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/core/llm/__init__.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/core/llm/test_clients.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/core/rerank/__init__.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/core/rerank/test_clients.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/core/rerank/test_managers.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/core/rerank/test_mappers.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/core/secrets/__init__.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/core/secrets/test_clients.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/core/services/__init__.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/core/services/test_rest.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/core/test_handlers.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/core/utils/__init__.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/core/utils/test_console.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/dbg/__init__.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/dbg/test_debugger.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/gam/__init__.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/gam/test_clients.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/health/__init__.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/health/test_clients.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/integration/__init__.py +0 -0
- {pygeai-0.4.0b10/pygeai/tests/integration/chat → pygeai-0.4.0b12/pygeai/tests/integration/assistants}/__init__.py +0 -0
- {pygeai-0.4.0b10/pygeai/tests/integration/lab → pygeai-0.4.0b12/pygeai/tests/integration/assistants/rag}/__init__.py +0 -0
- {pygeai-0.4.0b10/pygeai/tests/integration/lab/agents → pygeai-0.4.0b12/pygeai/tests/integration/chat}/__init__.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/integration/chat/test_generate_image.py +0 -0
- {pygeai-0.4.0b10/pygeai/tests/integration/lab/tools → pygeai-0.4.0b12/pygeai/tests/integration/lab}/__init__.py +0 -0
- {pygeai-0.4.0b10/pygeai/tests/lab → pygeai-0.4.0b12/pygeai/tests/integration/lab/agents}/__init__.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/integration/lab/agents/test_agents_list.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/integration/lab/agents/test_create_sharing_link.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/integration/lab/agents/test_delete_agent.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/integration/lab/agents/test_get_agent.py +0 -0
- {pygeai-0.4.0b10/pygeai/tests/lab/agents → pygeai-0.4.0b12/pygeai/tests/integration/lab/tools}/__init__.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/integration/lab/tools/test_create_tool.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/integration/lab/tools/test_delete_tool.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/integration/lab/tools/test_get_tool.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/integration/lab/tools/test_list_tools.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/integration/lab/tools/test_update_tool.py +0 -0
- {pygeai-0.4.0b10/pygeai/tests/lab/processes → pygeai-0.4.0b12/pygeai/tests/lab}/__init__.py +0 -0
- {pygeai-0.4.0b10/pygeai/tests/lab/spec → pygeai-0.4.0b12/pygeai/tests/lab/agents}/__init__.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/lab/agents/test_clients.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/lab/agents/test_mappers.py +0 -0
- {pygeai-0.4.0b10/pygeai/tests/lab/strategies → pygeai-0.4.0b12/pygeai/tests/lab/processes}/__init__.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/lab/processes/test_clients.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/lab/processes/test_mappers.py +0 -0
- {pygeai-0.4.0b10/pygeai/tests/lab/tools → pygeai-0.4.0b12/pygeai/tests/lab/spec}/__init__.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/lab/spec/test_loader.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/lab/spec/test_parsers.py +0 -0
- {pygeai-0.4.0b10/pygeai/tests/migration → pygeai-0.4.0b12/pygeai/tests/lab/strategies}/__init__.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/lab/strategies/test_clients.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/lab/strategies/test_mappers.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/lab/test_managers.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/lab/test_mappers.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/lab/test_models.py +0 -0
- {pygeai-0.4.0b10/pygeai/tests/organization → pygeai-0.4.0b12/pygeai/tests/lab/tools}/__init__.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/lab/tools/test_clients.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/lab/tools/test_mappers.py +0 -0
- {pygeai-0.4.0b10/pygeai/tests/organization/limits → pygeai-0.4.0b12/pygeai/tests/migration}/__init__.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/migration/test_strategies.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/migration/test_tools.py +0 -0
- {pygeai-0.4.0b10/pygeai/tests/snippets → pygeai-0.4.0b12/pygeai/tests/organization}/__init__.py +0 -0
- {pygeai-0.4.0b10/pygeai/tests/snippets/assistants → pygeai-0.4.0b12/pygeai/tests/organization/limits}/__init__.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/organization/limits/test_clients.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/organization/limits/test_managers.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/organization/test_clients.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/organization/test_managers.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/organization/test_mappers.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/proxy/__init__.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/proxy/test_clients.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/proxy/test_config.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/proxy/test_integration.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/proxy/test_managers.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/proxy/test_servers.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/proxy/test_tool.py +0 -0
- {pygeai-0.4.0b10/pygeai/tests/snippets/assistants/data_analyst → pygeai-0.4.0b12/pygeai/tests/snippets}/__init__.py +0 -0
- {pygeai-0.4.0b10/pygeai/tests/snippets/assistants/rag → pygeai-0.4.0b12/pygeai/tests/snippets/assistants}/__init__.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/snippets/assistants/create_chat_assistant.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/snippets/assistants/create_text_assistant.py +0 -0
- {pygeai-0.4.0b10/pygeai/tests/snippets/chat → pygeai-0.4.0b12/pygeai/tests/snippets/assistants/data_analyst}/__init__.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/snippets/assistants/data_analyst/extend_and_check.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/snippets/assistants/data_analyst/extend_dataset.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/snippets/assistants/data_analyst/get_status.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/snippets/assistants/file_summarizer_assistant.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/snippets/assistants/get_assistant_data.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/snippets/assistants/get_assistant_list.py +0 -0
- {pygeai-0.4.0b10/pygeai/tests/snippets/embeddings → pygeai-0.4.0b12/pygeai/tests/snippets/assistants/rag}/__init__.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/snippets/assistants/rag/create_rag_assistant.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/snippets/assistants/rag/delete_al_documents.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/snippets/assistants/rag/delete_document.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/snippets/assistants/rag/delete_rag_assistant.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/snippets/assistants/rag/get_document.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/snippets/assistants/rag/get_documents.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/snippets/assistants/rag/get_rag_assistant_data.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/snippets/assistants/rag/update_rag_assistant.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/snippets/assistants/rag/upload_document.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/snippets/assistants/send_feedback.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/snippets/assistants/update_chat_assistant.py +0 -0
- {pygeai-0.4.0b10/pygeai/tests/snippets/evaluation → pygeai-0.4.0b12/pygeai/tests/snippets/chat}/__init__.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/snippets/chat/cancel_request.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/snippets/chat/chat_completion.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/snippets/chat/chat_completion_1.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/snippets/chat/chat_completion_2.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/snippets/chat/chat_completion_3.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/snippets/chat/chat_completion_4.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/snippets/chat/chat_completion_streaming.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/snippets/chat/get_request_status.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/snippets/chat/send_chat_request.py +0 -0
- {pygeai-0.4.0b10/pygeai/tests/snippets/files → pygeai-0.4.0b12/pygeai/tests/snippets/embeddings}/__init__.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/snippets/embeddings/generate_embeddings.py +0 -0
- {pygeai-0.4.0b10/pygeai/tests/snippets/gam → pygeai-0.4.0b12/pygeai/tests/snippets/evaluation}/__init__.py +0 -0
- {pygeai-0.4.0b10/pygeai/tests/snippets/lab → pygeai-0.4.0b12/pygeai/tests/snippets/files}/__init__.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/snippets/files/delete_file.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/snippets/files/get_file_content.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/snippets/files/get_file_data.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/snippets/files/get_file_list.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/snippets/files/upload_file.py +0 -0
- {pygeai-0.4.0b10/pygeai/tests/snippets/lab/agents → pygeai-0.4.0b12/pygeai/tests/snippets/gam}/__init__.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/snippets/gam/gam_access_token.py +0 -0
- {pygeai-0.4.0b10/pygeai/tests/snippets/lab/processes → pygeai-0.4.0b12/pygeai/tests/snippets/lab}/__init__.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/snippets/lab/agentic_flow_example_1.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/snippets/lab/agentic_flow_example_2.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/snippets/lab/agentic_flow_example_3.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/snippets/lab/agentic_flow_example_4.py +0 -0
- {pygeai-0.4.0b10/pygeai/tests/snippets/lab/processes/jobs → pygeai-0.4.0b12/pygeai/tests/snippets/lab/agents}/__init__.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/snippets/lab/agents/create_agent.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/snippets/lab/agents/create_agent_2.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/snippets/lab/agents/create_agent_edge_case.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/snippets/lab/agents/create_agent_without_instructions.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/snippets/lab/agents/delete_agent.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/snippets/lab/agents/get_agent.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/snippets/lab/agents/list_agents.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/snippets/lab/agents/publish_agent_revision.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/snippets/lab/agents/update_agent.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/snippets/lab/assistant_to_agent.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/snippets/lab/crud_ui.py +0 -0
- {pygeai-0.4.0b10/pygeai/tests/snippets/lab/processes/kbs → pygeai-0.4.0b12/pygeai/tests/snippets/lab/processes}/__init__.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/snippets/lab/processes/create_process.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/snippets/lab/processes/create_task.py +0 -0
- {pygeai-0.4.0b10/pygeai/tests/snippets/lab/samples → pygeai-0.4.0b12/pygeai/tests/snippets/lab/processes/jobs}/__init__.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/snippets/lab/processes/jobs/list_jobs.py +0 -0
- {pygeai-0.4.0b10/pygeai/tests/snippets/lab/strategies → pygeai-0.4.0b12/pygeai/tests/snippets/lab/processes/kbs}/__init__.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/snippets/lab/processes/kbs/create_kb.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/snippets/lab/processes/kbs/get_kb.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/snippets/lab/processes/kbs/list_kbs.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/snippets/lab/processes/kbs/try_all.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/snippets/lab/processes/list_processes.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/snippets/lab/runner_1.py +0 -0
- {pygeai-0.4.0b10/pygeai/tests/snippets/lab/tools → pygeai-0.4.0b12/pygeai/tests/snippets/lab/samples}/__init__.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/snippets/lab/samples/summarize_files.py +0 -0
- {pygeai-0.4.0b10/pygeai/tests/snippets/lab/use_cases → pygeai-0.4.0b12/pygeai/tests/snippets/lab/strategies}/__init__.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/snippets/lab/strategies/create_reasoning_strategy.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/snippets/lab/strategies/get_reasoning_strategy.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/snippets/lab/strategies/list_reasoning_strategies.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/snippets/lab/strategies/update_reasoning_strategy.py +0 -0
- {pygeai-0.4.0b10/pygeai/tests/snippets/migrate → pygeai-0.4.0b12/pygeai/tests/snippets/lab/tools}/__init__.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/snippets/lab/tools/create_tool_edge_case.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/snippets/lab/tools/delete_tool.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/snippets/lab/tools/get_parameter.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/snippets/lab/tools/get_tool.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/snippets/lab/tools/list_tools.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/snippets/lab/tools/publish_tool_revision.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/snippets/lab/tools/set_parameters.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/snippets/lab/tools/update_tool.py +0 -0
- {pygeai-0.4.0b10/pygeai/tests/snippets/organization → pygeai-0.4.0b12/pygeai/tests/snippets/lab/use_cases}/__init__.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/snippets/lab/use_cases/c_code_fixer_agent_flow.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/snippets/lab/use_cases/create_cli_expert.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/snippets/lab/use_cases/create_lab_expert.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/snippets/lab/use_cases/create_tool_headless_web_browser.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/snippets/lab/use_cases/create_web_designer.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/snippets/lab/use_cases/create_web_reader.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/snippets/lab/use_cases/file_summarizer_example.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/snippets/lab/use_cases/file_summarizer_example_2.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/snippets/lab/use_cases/update_cli_expert.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/snippets/lab/use_cases/update_lab_expert.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/snippets/lab/use_cases/update_web_designer.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/snippets/lab/use_cases/update_web_reader.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/snippets/lab/use_cases/update_web_reader_with_tool.py +0 -0
- {pygeai-0.4.0b10/pygeai/tests/snippets/rerank → pygeai-0.4.0b12/pygeai/tests/snippets/migrate}/__init__.py +0 -0
- {pygeai-0.4.0b10/pygeai/tests/snippets/secrets → pygeai-0.4.0b12/pygeai/tests/snippets/organization}/__init__.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/snippets/organization/create_project.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/snippets/organization/delete_project.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/snippets/organization/export_request_data.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/snippets/organization/get_project_data.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/snippets/organization/get_project_list.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/snippets/organization/get_project_tokens.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/snippets/organization/update_project.py +0 -0
- {pygeai-0.4.0b10/pygeai/tests/snippets/usage_limit → pygeai-0.4.0b12/pygeai/tests/snippets/rerank}/__init__.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/snippets/rerank/rerank_chunks.py +0 -0
- {pygeai-0.4.0b10/pygeai/vendor/a2a/auth → pygeai-0.4.0b12/pygeai/tests/snippets/secrets}/__init__.py +0 -0
- /pygeai-0.4.0b10/pygeai/vendor/a2a/py.typed → /pygeai-0.4.0b12/pygeai/tests/snippets/usage_limit/__init__.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/snippets/usage_limit/delete_usage_limit.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/snippets/usage_limit/get_all_usage_limit_from_organization.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/snippets/usage_limit/get_usage_limit_from_organization.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/snippets/usage_limit/get_usage_limit_from_project.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/snippets/usage_limit/set_usage_limit_organization.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/snippets/usage_limit/set_usage_limit_project.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/snippets/usage_limit/update_usage_limit_organization.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/snippets/usage_limit/update_usage_limit_project.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/vendor/a2a/__init__.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/vendor/a2a/auth/user.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/vendor/a2a/client/__init__.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/vendor/a2a/client/client.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/vendor/a2a/client/errors.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/vendor/a2a/client/helpers.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/vendor/a2a/server/__init__.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/vendor/a2a/server/agent_execution/__init__.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/vendor/a2a/server/agent_execution/agent_executor.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/vendor/a2a/server/agent_execution/context.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/vendor/a2a/server/agent_execution/request_context_builder.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/vendor/a2a/server/agent_execution/simple_request_context_builder.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/vendor/a2a/server/apps/__init__.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/vendor/a2a/server/apps/jsonrpc/__init__.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/vendor/a2a/server/apps/jsonrpc/fastapi_app.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/vendor/a2a/server/apps/jsonrpc/jsonrpc_app.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/vendor/a2a/server/apps/jsonrpc/starlette_app.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/vendor/a2a/server/context.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/vendor/a2a/server/events/__init__.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/vendor/a2a/server/events/event_consumer.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/vendor/a2a/server/events/event_queue.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/vendor/a2a/server/events/in_memory_queue_manager.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/vendor/a2a/server/events/queue_manager.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/vendor/a2a/server/request_handlers/__init__.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/vendor/a2a/server/request_handlers/default_request_handler.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/vendor/a2a/server/request_handlers/jsonrpc_handler.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/vendor/a2a/server/request_handlers/request_handler.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/vendor/a2a/server/request_handlers/response_helpers.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/vendor/a2a/server/tasks/__init__.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/vendor/a2a/server/tasks/inmemory_push_notifier.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/vendor/a2a/server/tasks/inmemory_task_store.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/vendor/a2a/server/tasks/push_notifier.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/vendor/a2a/server/tasks/result_aggregator.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/vendor/a2a/server/tasks/task_manager.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/vendor/a2a/server/tasks/task_store.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/vendor/a2a/server/tasks/task_updater.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/vendor/a2a/types.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/vendor/a2a/utils/__init__.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/vendor/a2a/utils/artifact.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/vendor/a2a/utils/errors.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/vendor/a2a/utils/helpers.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/vendor/a2a/utils/message.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/vendor/a2a/utils/task.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/vendor/a2a/utils/telemetry.py +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai.egg-info/dependency_links.txt +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai.egg-info/entry_points.txt +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai.egg-info/requires.txt +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai.egg-info/top_level.txt +0 -0
- {pygeai-0.4.0b10 → pygeai-0.4.0b12}/setup.cfg +0 -0
|
@@ -362,7 +362,7 @@ def chat_with_agent(option_list: list):
|
|
|
362
362
|
raise MissingRequirementException(f"Agent name must be specified.")
|
|
363
363
|
|
|
364
364
|
project_id = get_project_id()
|
|
365
|
-
agent_data = AgentClient().get_agent(
|
|
365
|
+
agent_data = AgentClient(project_id=project_id).get_agent(agent_id=agent_name)
|
|
366
366
|
if 'errors' in agent_data:
|
|
367
367
|
raise InvalidAgentException(f"There is no agent with that name: {agent_data.get('errors')}")
|
|
368
368
|
|
|
@@ -374,62 +374,54 @@ def chat_with_agent(option_list: list):
|
|
|
374
374
|
Console.write_stderr("Streamlit is required for GUI mode. Install it with 'pip install streamlit'.")
|
|
375
375
|
sys.exit(1)
|
|
376
376
|
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
377
|
+
try:
|
|
378
|
+
ui_path = resources.files("pygeai.chat").joinpath("ui.py")
|
|
379
|
+
ui_file_path = str(ui_path)
|
|
380
|
+
|
|
381
|
+
# Add the top-level project root to PYTHONPATH
|
|
382
|
+
package_root = str(Path(ui_file_path).resolve().parents[2])
|
|
383
|
+
env = os.environ.copy()
|
|
384
|
+
env["PYTHONPATH"] = package_root + os.pathsep + env.get("PYTHONPATH", "")
|
|
385
|
+
|
|
386
|
+
streamlit_cmd = [
|
|
387
|
+
sys.executable, "-m", "streamlit", "run", ui_file_path,
|
|
388
|
+
"--server.address", "127.0.0.1",
|
|
389
|
+
"--", "--agent-name", agent_name
|
|
390
|
+
]
|
|
391
|
+
|
|
392
|
+
if platform.system() == "Linux":
|
|
393
|
+
streamlit_cmd.insert(5, "--server.headless=true")
|
|
394
|
+
|
|
395
|
+
process = subprocess.Popen(
|
|
396
|
+
streamlit_cmd,
|
|
397
|
+
stdout=subprocess.PIPE,
|
|
398
|
+
stderr=subprocess.PIPE,
|
|
399
|
+
text=True
|
|
400
|
+
)
|
|
384
401
|
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
# Add the top-level project root to PYTHONPATH
|
|
390
|
-
package_root = str(Path(ui_file_path).resolve().parents[2])
|
|
391
|
-
env = os.environ.copy()
|
|
392
|
-
env["PYTHONPATH"] = package_root + os.pathsep + env.get("PYTHONPATH", "")
|
|
393
|
-
|
|
394
|
-
streamlit_cmd = [
|
|
395
|
-
sys.executable, "-m", "streamlit", "run", ui_file_path,
|
|
396
|
-
"--server.address", "127.0.0.1",
|
|
397
|
-
"--", "--agent-name", agent_name
|
|
398
|
-
]
|
|
399
|
-
|
|
400
|
-
if platform.system() == "Linux":
|
|
401
|
-
streamlit_cmd.insert(5, "--server.headless=true")
|
|
402
|
-
|
|
403
|
-
process = subprocess.Popen(
|
|
404
|
-
streamlit_cmd,
|
|
405
|
-
stdout=subprocess.PIPE,
|
|
406
|
-
stderr=subprocess.PIPE,
|
|
407
|
-
text=True
|
|
408
|
-
)
|
|
409
|
-
|
|
410
|
-
url = "http://localhost:8501"
|
|
411
|
-
if platform.system() == "Linux":
|
|
412
|
-
Console.write_stdout(f"Open Streamlit app at {url} (or next port like 8502 if 8501 is taken)")
|
|
413
|
-
|
|
414
|
-
try:
|
|
415
|
-
stdout, stderr = process.communicate()
|
|
416
|
-
if stderr:
|
|
417
|
-
logger.error(f"Streamlit stderr:\n{stderr}")
|
|
418
|
-
Console.write_stderr(f"Streamlit error:\n{stderr}")
|
|
419
|
-
except KeyboardInterrupt:
|
|
420
|
-
process.terminate()
|
|
421
|
-
Console.write_stdout("Streamlit stopped.")
|
|
422
|
-
sys.exit(0)
|
|
402
|
+
url = "http://localhost:8501"
|
|
403
|
+
if platform.system() == "Linux":
|
|
404
|
+
Console.write_stdout(f"Open Streamlit app at {url} (or next port like 8502 if 8501 is taken)")
|
|
423
405
|
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
sys.exit(
|
|
406
|
+
try:
|
|
407
|
+
stdout, stderr = process.communicate()
|
|
408
|
+
if stderr:
|
|
409
|
+
logger.error(f"Streamlit stderr:\n{stderr}")
|
|
410
|
+
Console.write_stderr(f"Streamlit error:\n{stderr}")
|
|
411
|
+
except KeyboardInterrupt:
|
|
412
|
+
process.terminate()
|
|
413
|
+
Console.write_stdout("Streamlit stopped.")
|
|
414
|
+
sys.exit(0)
|
|
415
|
+
|
|
416
|
+
except FileNotFoundError:
|
|
417
|
+
logger.error("Could not locate pygeai/chat/ui.py")
|
|
418
|
+
Console.write_stderr("Streamlit UI file not found. Ensure pygeai is installed correctly.")
|
|
419
|
+
sys.exit(1)
|
|
420
|
+
except Exception as e:
|
|
421
|
+
logger.error(f"Streamlit error: {e}")
|
|
422
|
+
Console.write_stderr(
|
|
423
|
+
f"Failed to launch Streamlit. Check port with 'lsof -i :8501' and kill any process, or try {url}.")
|
|
424
|
+
sys.exit(1)
|
|
433
425
|
else:
|
|
434
426
|
chat_session = AgentChatSession(agent_name)
|
|
435
427
|
messages = list()
|
|
@@ -15,7 +15,6 @@ from pygeai.lab.processes.clients import AgenticProcessClient
|
|
|
15
15
|
from pygeai.lab.strategies.clients import ReasoningStrategyClient
|
|
16
16
|
from pygeai.lab.tools.clients import ToolClient
|
|
17
17
|
from pygeai.lab.constants import VALID_SCOPES
|
|
18
|
-
from pygeai.tests.snippets.lab.crud_ui import project_id
|
|
19
18
|
|
|
20
19
|
|
|
21
20
|
def show_help():
|
|
@@ -114,9 +114,7 @@ def get_settings():
|
|
|
114
114
|
|
|
115
115
|
if __name__ == "__main__":
|
|
116
116
|
settings = get_settings()
|
|
117
|
-
geai_api_key = settings.get_api_key()
|
|
118
117
|
geai_base_url = settings.get_base_url()
|
|
119
118
|
geai_eval_url = settings.get_eval_url()
|
|
120
|
-
print(f"api_key: {geai_api_key}")
|
|
121
119
|
print(f"base_url: {geai_base_url}")
|
|
122
120
|
print(f"eval_url: {geai_eval_url}")
|
|
@@ -559,7 +559,7 @@ class AILabManager:
|
|
|
559
559
|
tool_id: Optional[str] = None,
|
|
560
560
|
tool_public_name: Optional[str] = None,
|
|
561
561
|
parameters: List[ToolParameter] = None
|
|
562
|
-
) ->
|
|
562
|
+
) -> EmptyResponse:
|
|
563
563
|
"""
|
|
564
564
|
Sets or updates parameters for a specific tool in the specified project.
|
|
565
565
|
|
|
@@ -591,7 +591,7 @@ class AILabManager:
|
|
|
591
591
|
logger.error(f"Error received while setting tool parameters: {error}")
|
|
592
592
|
raise APIError(f"Error received while setting tool parameters: {error}")
|
|
593
593
|
|
|
594
|
-
result =
|
|
594
|
+
result = ResponseMapper.map_to_empty_response(response_data or "Parameter set successfully")
|
|
595
595
|
return result
|
|
596
596
|
|
|
597
597
|
def list_reasoning_strategies(
|
|
@@ -114,7 +114,8 @@ class ToolClient(AILabClient):
|
|
|
114
114
|
headers=headers,
|
|
115
115
|
data=data
|
|
116
116
|
)
|
|
117
|
-
|
|
117
|
+
|
|
118
|
+
if response.status_code >= 300:
|
|
118
119
|
logger.error(f"Invalid status code returned from the API endpoint: {response.text}")
|
|
119
120
|
raise APIResponseError(f"API returned an error: {response.text}")
|
|
120
121
|
try:
|
|
@@ -168,7 +169,7 @@ class ToolClient(AILabClient):
|
|
|
168
169
|
"allowExternal": allow_external
|
|
169
170
|
}
|
|
170
171
|
)
|
|
171
|
-
if response.status_code
|
|
172
|
+
if response.status_code >= 300:
|
|
172
173
|
logger.error(f"Invalid status code returned from the API endpoint: {response.text}")
|
|
173
174
|
raise APIResponseError(f"API returned an error: {response.text}")
|
|
174
175
|
try:
|
|
@@ -212,7 +213,7 @@ class ToolClient(AILabClient):
|
|
|
212
213
|
"allowDrafts": allow_drafts,
|
|
213
214
|
}
|
|
214
215
|
)
|
|
215
|
-
if response.status_code
|
|
216
|
+
if response.status_code >= 300:
|
|
216
217
|
logger.error(f"Invalid status code returned from the API endpoint: {response.text}")
|
|
217
218
|
raise APIResponseError(f"API returned an error: {response.text}")
|
|
218
219
|
try:
|
|
@@ -255,7 +256,7 @@ class ToolClient(AILabClient):
|
|
|
255
256
|
endpoint=endpoint,
|
|
256
257
|
headers=headers
|
|
257
258
|
)
|
|
258
|
-
if response.status_code
|
|
259
|
+
if response.status_code >= 300:
|
|
259
260
|
logger.error(f"Invalid status code returned from the API endpoint: {response.text}")
|
|
260
261
|
raise APIResponseError(f"API returned an error: {response.text}")
|
|
261
262
|
|
|
@@ -375,7 +376,7 @@ class ToolClient(AILabClient):
|
|
|
375
376
|
headers=headers,
|
|
376
377
|
data=data
|
|
377
378
|
)
|
|
378
|
-
if response.status_code
|
|
379
|
+
if response.status_code >= 300:
|
|
379
380
|
logger.error(f"Invalid status code returned from the API endpoint: {response.text}")
|
|
380
381
|
raise APIResponseError(f"API returned an error: {response.text}")
|
|
381
382
|
try:
|
|
@@ -463,7 +464,7 @@ class ToolClient(AILabClient):
|
|
|
463
464
|
"allowDrafts": allow_drafts,
|
|
464
465
|
}
|
|
465
466
|
)
|
|
466
|
-
if response.status_code
|
|
467
|
+
if response.status_code >= 300:
|
|
467
468
|
logger.error(f"Invalid status code returned from the API endpoint: {response.text}")
|
|
468
469
|
raise APIResponseError(f"API returned an error: {response.text}")
|
|
469
470
|
try:
|
|
@@ -520,16 +521,11 @@ class ToolClient(AILabClient):
|
|
|
520
521
|
headers=headers,
|
|
521
522
|
data=data
|
|
522
523
|
)
|
|
523
|
-
if response.status_code !=
|
|
524
|
-
logger.error(f"
|
|
525
|
-
raise
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
except JSONDecodeError as e:
|
|
529
|
-
logger.error(f"Unable to set parameters for tool {tool_id or tool_public_name} in project {self.project_id}: JSON parsing error (status {response.status_code}): {e}. Response: {response.text}")
|
|
530
|
-
raise InvalidAPIResponseException(f"Unable to set parameters for tool {tool_id or tool_public_name} in project {self.project_id}: {response.text}")
|
|
531
|
-
|
|
532
|
-
return result
|
|
524
|
+
if response.status_code != 204:
|
|
525
|
+
logger.error(f"Unable to set parameter for tool {tool_id or tool_public_name} from project {self.project_id}: JSON parsing error (status {response.status_code}). Response: {response.text}")
|
|
526
|
+
raise InvalidAPIResponseException(f"Unable to set parameter for tool {tool_id or tool_public_name} from project {self.project_id}: {response.text}")
|
|
527
|
+
else:
|
|
528
|
+
return {}
|
|
533
529
|
|
|
534
530
|
def export_tool(
|
|
535
531
|
self,
|
|
@@ -559,7 +555,7 @@ class ToolClient(AILabClient):
|
|
|
559
555
|
endpoint=endpoint,
|
|
560
556
|
headers=headers,
|
|
561
557
|
)
|
|
562
|
-
if response.status_code
|
|
558
|
+
if response.status_code >= 300:
|
|
563
559
|
logger.error(f"Invalid status code returned from the API endpoint: {response.text}")
|
|
564
560
|
raise APIResponseError(f"API returned an error: {response.text}")
|
|
565
561
|
try:
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
from unittest import TestCase
|
|
2
|
+
from pygeai.assistant.managers import AssistantManager
|
|
3
|
+
from pygeai.core.models import WelcomeData, LlmSettings
|
|
4
|
+
from pygeai.assistant.rag.models import (
|
|
5
|
+
Search,
|
|
6
|
+
RetrieverOptions,
|
|
7
|
+
SearchOptions,
|
|
8
|
+
ChunkOptions,
|
|
9
|
+
IndexOptions,
|
|
10
|
+
RAGAssistant,
|
|
11
|
+
)
|
|
12
|
+
|
|
13
|
+
assistant_manager = AssistantManager(alias="beta")
|
|
14
|
+
|
|
15
|
+
class TestAssistantCreateRagIntegration(TestCase):
|
|
16
|
+
|
|
17
|
+
def __load_rag(self):
|
|
18
|
+
llm_options = LlmSettings(
|
|
19
|
+
cache=False,
|
|
20
|
+
temperature=0.1,
|
|
21
|
+
max_tokens=999,
|
|
22
|
+
model_name="gpt-3.5-turbo-16k",
|
|
23
|
+
n=1,
|
|
24
|
+
presence_penalty=0,
|
|
25
|
+
frequency_penalty=0,
|
|
26
|
+
provider="OpenAI",
|
|
27
|
+
stream=False,
|
|
28
|
+
top_p=1.0,
|
|
29
|
+
type=None,
|
|
30
|
+
verbose=True,
|
|
31
|
+
)
|
|
32
|
+
|
|
33
|
+
retriever_options = RetrieverOptions(type="vectorStore")
|
|
34
|
+
|
|
35
|
+
search_options = SearchOptions(
|
|
36
|
+
history_count=2,
|
|
37
|
+
llm=llm_options,
|
|
38
|
+
search=Search(
|
|
39
|
+
k=5,
|
|
40
|
+
return_source_documents=False,
|
|
41
|
+
score_threshold=0,
|
|
42
|
+
prompt="Use {context} and {question}",
|
|
43
|
+
template="",
|
|
44
|
+
),
|
|
45
|
+
retriever=retriever_options,
|
|
46
|
+
)
|
|
47
|
+
|
|
48
|
+
chunk_options = ChunkOptions(chunk_size=999, chunk_overlap=0)
|
|
49
|
+
|
|
50
|
+
index_options = IndexOptions(chunks=chunk_options)
|
|
51
|
+
|
|
52
|
+
welcome_data = WelcomeData(
|
|
53
|
+
title="Test Profile Welcome Data",
|
|
54
|
+
description="Test Profile with WelcomeData",
|
|
55
|
+
features=[],
|
|
56
|
+
examples_prompt=[],
|
|
57
|
+
)
|
|
58
|
+
|
|
59
|
+
return RAGAssistant(
|
|
60
|
+
name="Testaasdfasdfsasdfdfsdfsdf123in123g12355",
|
|
61
|
+
description="Test Profile with WelcomeData",
|
|
62
|
+
search_options=search_options,
|
|
63
|
+
index_options=index_options,
|
|
64
|
+
welcome_data=welcome_data,
|
|
65
|
+
)
|
|
66
|
+
|
|
67
|
+
|
|
68
|
+
def test_create_rag_assistant(self):
|
|
69
|
+
rag_assistant = self.__load_rag()
|
|
70
|
+
response = assistant_manager.create_assistant(rag_assistant)
|
|
71
|
+
|
|
72
|
+
self.assertIsInstance(response, RAGAssistant, "Failed to create RAG assistant")
|
{pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/integration/lab/agents/test_create_agent.py
RENAMED
|
@@ -33,7 +33,6 @@ class TestAILabCreateAgentIntegration(TestCase):
|
|
|
33
33
|
access_scope="public",
|
|
34
34
|
public_name=f"public_{random_str}",
|
|
35
35
|
job_description="Translator",
|
|
36
|
-
avatar_image="https://www.shareicon.net/data/128x128/2016/11/09/851442_logo_512x512.png",
|
|
37
36
|
description="Agent that translates from any language to english.",
|
|
38
37
|
agent_data=AgentData(
|
|
39
38
|
prompt=Prompt(
|
|
@@ -28,7 +28,6 @@ class TestAILabPublishAgentRevisionIntegration(TestCase):
|
|
|
28
28
|
access_scope="public",
|
|
29
29
|
public_name=f"public_{random_str}",
|
|
30
30
|
job_description=f"SummarizerAgent{random_str}",
|
|
31
|
-
avatar_image="https://www.shareicon.net/data/128x128/2016/11/09/851442_logo_512x512.png",
|
|
32
31
|
description=f"Agent that summarized documents. {random_str}",
|
|
33
32
|
agent_data=AgentData(
|
|
34
33
|
prompt=Prompt(
|
{pygeai-0.4.0b10 → pygeai-0.4.0b12}/pygeai/tests/integration/lab/agents/test_update_agent.py
RENAMED
|
@@ -25,7 +25,6 @@ class TestAILabUpdateAgentIntegration(TestCase):
|
|
|
25
25
|
access_scope="public",
|
|
26
26
|
public_name=f"public_{random_str}",
|
|
27
27
|
job_description=f"SummarizerAgent{random_str}",
|
|
28
|
-
avatar_image="https://www.shareicon.net/data/128x128/2016/11/09/851442_logo_512x512.png",
|
|
29
28
|
description=f"Agent that summarized documents. {random_str}",
|
|
30
29
|
agent_data=AgentData(
|
|
31
30
|
prompt=Prompt(
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
from unittest import TestCase
|
|
2
|
+
from pygeai.lab.managers import AILabManager
|
|
3
|
+
from pygeai.lab.models import FilterSettings, ToolParameter
|
|
4
|
+
from pygeai.core.common.exceptions import APIResponseError, MissingRequirementException
|
|
5
|
+
import copy
|
|
6
|
+
|
|
7
|
+
ai_lab_manager: AILabManager
|
|
8
|
+
|
|
9
|
+
class TestAILabGetParameterIntegration(TestCase):
|
|
10
|
+
|
|
11
|
+
def setUp(self):
|
|
12
|
+
self.ai_lab_manager = AILabManager(alias="beta")
|
|
13
|
+
self.tool_id = "42610b61-cb47-49bf-9475-36ee652f31f3"
|
|
14
|
+
self.filter_settings = FilterSettings(
|
|
15
|
+
revision="0",
|
|
16
|
+
version="0",
|
|
17
|
+
allow_drafts=True
|
|
18
|
+
)
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
def __get_parameter(self, tool_id: str = None, tool_public_name: str = None, filter_settings: FilterSettings = None):
|
|
22
|
+
return self.ai_lab_manager.get_parameter(
|
|
23
|
+
tool_id=self.tool_id if tool_id is None else tool_id,
|
|
24
|
+
tool_public_name=tool_public_name,
|
|
25
|
+
filter_settings=self.filter_settings if filter_settings is None else filter_settings
|
|
26
|
+
)
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
def test_get_parameter(self):
|
|
30
|
+
tool_parameters = self.__get_parameter()
|
|
31
|
+
|
|
32
|
+
for param in tool_parameters:
|
|
33
|
+
self.assertIsInstance(param, ToolParameter, "Expected a tool parameter")
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
def test_get_parameter_invalid_tool_id(self):
|
|
37
|
+
invalid_id = "0026e53d-ea78-4cac-af9f-12650invalid"
|
|
38
|
+
|
|
39
|
+
with self.assertRaises(APIResponseError) as exception:
|
|
40
|
+
self.__get_parameter(tool_id=invalid_id)
|
|
41
|
+
self.assertIn(
|
|
42
|
+
f"Tool not found [IdOrName= {invalid_id}]",
|
|
43
|
+
str(exception.exception),
|
|
44
|
+
"Expected error when trying to send an invalid tool id"
|
|
45
|
+
)
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
def test_get_parameter_no_tool_id(self):
|
|
49
|
+
with self.assertRaises(MissingRequirementException) as exception:
|
|
50
|
+
self.__get_parameter(tool_id="")
|
|
51
|
+
self.assertIn(
|
|
52
|
+
"Either tool_id or tool_public_name must be provided.",
|
|
53
|
+
str(exception.exception),
|
|
54
|
+
"Expected error when trying to send a request without tool_id"
|
|
55
|
+
)
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
def test_get_parameter_by_tool_public_name(self):
|
|
59
|
+
tool_parameters = self.__get_parameter(tool_public_name="test.sdk.beta.tool")
|
|
60
|
+
|
|
61
|
+
for param in tool_parameters:
|
|
62
|
+
self.assertIsInstance(param, ToolParameter, "Expected a tool parameter")
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
def test_get_parameter_by_invalid_public_name(self):
|
|
66
|
+
invalid_public_name = "test.sdk.beta.tool.invalid"
|
|
67
|
+
|
|
68
|
+
with self.assertRaises(APIResponseError) as exception:
|
|
69
|
+
self.__get_parameter(tool_public_name=invalid_public_name)
|
|
70
|
+
self.assertIn(
|
|
71
|
+
f"Tool not found [IdOrName= {invalid_public_name}]",
|
|
72
|
+
str(exception.exception),
|
|
73
|
+
"Expected error when trying to send a request without tool_id"
|
|
74
|
+
)
|
|
75
|
+
|
|
76
|
+
|
|
77
|
+
def test_get_parameter_by_past_revision(self):
|
|
78
|
+
filter_settings = copy.deepcopy(self.filter_settings)
|
|
79
|
+
filter_settings.revision = "3"
|
|
80
|
+
|
|
81
|
+
with self.assertRaises(APIResponseError) as exception:
|
|
82
|
+
self.__get_parameter(filter_settings=filter_settings)
|
|
83
|
+
self.assertIn(
|
|
84
|
+
"Requested revision not found [revision=3].",
|
|
85
|
+
str(exception.exception),
|
|
86
|
+
"Expected error when trying to send a request without tool_id"
|
|
87
|
+
)
|
|
88
|
+
|
|
89
|
+
|
|
90
|
+
def test_get_parameter_by_draft_revision(self):
|
|
91
|
+
filter_settings = copy.deepcopy(self.filter_settings)
|
|
92
|
+
filter_settings.revision = "10"
|
|
93
|
+
tool_parameters = self.__get_parameter(filter_settings=filter_settings)
|
|
94
|
+
|
|
95
|
+
for param in tool_parameters:
|
|
96
|
+
self.assertIsInstance(param, ToolParameter, "Expected a tool parameter")
|
|
97
|
+
|
|
98
|
+
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
from unittest import TestCase
|
|
2
|
+
import uuid
|
|
3
|
+
from pygeai.lab.managers import AILabManager
|
|
4
|
+
from pygeai.lab.models import Tool
|
|
5
|
+
from pygeai.core.common.exceptions import APIError
|
|
6
|
+
|
|
7
|
+
ai_lab_manager: AILabManager
|
|
8
|
+
|
|
9
|
+
class TestAILabPublishToolRevisionIntegration(TestCase):
|
|
10
|
+
|
|
11
|
+
def setUp(self):
|
|
12
|
+
self.ai_lab_manager = AILabManager(alias="beta")
|
|
13
|
+
self.tool_id = "c77e1f2e-0322-4dd0-b6ec-aff217f1cb32"
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
def __publish_tool_revision(self, revision: str, tool_id=None):
|
|
17
|
+
return self.ai_lab_manager.publish_tool_revision(
|
|
18
|
+
tool_id=self.tool_id if tool_id is None else tool_id,
|
|
19
|
+
revision=revision
|
|
20
|
+
)
|
|
21
|
+
|
|
22
|
+
def __load_tool(self):
|
|
23
|
+
self.random_str = str(uuid.uuid4())
|
|
24
|
+
return Tool(
|
|
25
|
+
id="c77e1f2e-0322-4dd0-b6ec-aff217f1cb32",
|
|
26
|
+
name=f"sdk_project_updated_tool_{self.random_str}",
|
|
27
|
+
description=f"Tool updated for sdk testing purposes {self.random_str}",
|
|
28
|
+
scope="builtin",
|
|
29
|
+
openApi="https://raw.usercontent.com//openapi.json",
|
|
30
|
+
openApiJson={"openapi": "3.0.0","info": {"title": f"Simple API overview {self.random_str}","version": "3.0.0"}},
|
|
31
|
+
accessScope="private",
|
|
32
|
+
reportEvents="None",
|
|
33
|
+
parameters=[{
|
|
34
|
+
"key": "param",
|
|
35
|
+
"description": f"param description {self.random_str}",
|
|
36
|
+
"type":"app",
|
|
37
|
+
"value": f"value {self.random_str}",
|
|
38
|
+
"data_type": "String",
|
|
39
|
+
"isRequired": False
|
|
40
|
+
}]
|
|
41
|
+
)
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
def __update_tool(self, tool: Tool = None, automatic_publish: bool = False, upsert: bool = False):
|
|
45
|
+
"""
|
|
46
|
+
Helper method to update a tool.
|
|
47
|
+
"""
|
|
48
|
+
tool = self.__load_tool()
|
|
49
|
+
return self.ai_lab_manager.update_tool(
|
|
50
|
+
tool = tool,
|
|
51
|
+
automatic_publish=False,
|
|
52
|
+
upsert=False
|
|
53
|
+
)
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
def test_publish_tool_revision(self):
|
|
57
|
+
updated_tool = self.__update_tool()
|
|
58
|
+
new_revision = updated_tool.revision
|
|
59
|
+
|
|
60
|
+
published_tool = self.__publish_tool_revision(revision=str(new_revision))
|
|
61
|
+
|
|
62
|
+
self.assertFalse(published_tool.is_draft, "Expected draft to be false after publishing the revision")
|
|
63
|
+
self.assertEqual(published_tool.revision, new_revision, "Expected last revision to be published")
|
|
64
|
+
|
|
65
|
+
|
|
66
|
+
def test_publish_tool_earlier_revision_with_newer_revision_published(self):
|
|
67
|
+
with self.assertRaises(APIError) as exception:
|
|
68
|
+
self.__publish_tool_revision(revision="1")
|
|
69
|
+
self.assertIn(
|
|
70
|
+
"There are newer published revisions.",
|
|
71
|
+
str(exception.exception),
|
|
72
|
+
"Expected error when trying to send a earlier revision"
|
|
73
|
+
)
|
|
74
|
+
|
|
75
|
+
|
|
76
|
+
def test_publish_tool_earlier_revision(self):
|
|
77
|
+
earlier_revision = (self.__update_tool()).revision
|
|
78
|
+
#update the tool to create a newer revision
|
|
79
|
+
self.__update_tool()
|
|
80
|
+
|
|
81
|
+
published_tool = self.__publish_tool_revision(revision=earlier_revision)
|
|
82
|
+
|
|
83
|
+
self.assertFalse(published_tool.is_draft, "Expected draft to be false after publishing the revision")
|
|
84
|
+
self.assertEqual(published_tool.revision, earlier_revision, "Expected last revision to be published")
|
|
85
|
+
|
|
86
|
+
|
|
87
|
+
def test_publish_tool_invalid_revision(self):
|
|
88
|
+
with self.assertRaises(APIError) as exception:
|
|
89
|
+
self.__publish_tool_revision(revision="10000000")
|
|
90
|
+
self.assertIn(
|
|
91
|
+
"Invalid revision [rev=10000000]",
|
|
92
|
+
str(exception.exception),
|
|
93
|
+
"Expected error when trying to send a revision that does not exist"
|
|
94
|
+
)
|
|
95
|
+
|
|
96
|
+
|
|
97
|
+
def test_publish_tool_string_revision(self):
|
|
98
|
+
with self.assertRaises(APIError) as exception:
|
|
99
|
+
self.__publish_tool_revision(revision="revision")
|
|
100
|
+
self.assertIn("Bad Request", str(exception.exception))
|
|
101
|
+
self.assertIn("400", str(exception.exception))
|
|
102
|
+
|
|
103
|
+
|
|
104
|
+
def test_publish_tool_invalid_tool_id(self):
|
|
105
|
+
invalid_id = "0026e53d-ea78-4cac-af9f-12650invalid"
|
|
106
|
+
with self.assertRaises(APIError) as exception:
|
|
107
|
+
self.__publish_tool_revision(revision="103", tool_id=invalid_id)
|
|
108
|
+
self.assertIn(
|
|
109
|
+
f"Tool not found [IdOrName= {invalid_id}].",
|
|
110
|
+
str(exception.exception),
|
|
111
|
+
"Expected error when sending and invalid agent id"
|
|
112
|
+
)
|
|
113
|
+
|
|
114
|
+
|
|
115
|
+
def test_publish_tool_no_tool_id(self):
|
|
116
|
+
with self.assertRaises(APIError) as exception:
|
|
117
|
+
self.__publish_tool_revision(revision="103", tool_id="")
|
|
118
|
+
self.assertIn("Not Found", str(exception.exception))
|
|
119
|
+
self.assertIn("404", str(exception.exception))
|