pygeai 0.4.0b9__tar.gz → 0.5.0b3__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (526) hide show
  1. {pygeai-0.4.0b9/pygeai.egg-info → pygeai-0.5.0b3}/PKG-INFO +44 -16
  2. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/README.md +43 -15
  3. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/__init__.py +1 -1
  4. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/chat/ui.py +0 -1
  5. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/cli/__init__.py +1 -1
  6. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/cli/commands/chat.py +47 -55
  7. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/cli/commands/lab/ai_lab.py +0 -1
  8. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/core/base/session.py +1 -1
  9. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/core/common/config.py +0 -2
  10. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/lab/managers.py +2 -2
  11. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/lab/tools/clients.py +13 -17
  12. pygeai-0.5.0b3/pygeai/tests/integration/assistants/rag/test_create_rag.py +91 -0
  13. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/integration/chat/test_generate_image.py +1 -5
  14. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/integration/lab/agents/test_create_agent.py +13 -8
  15. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/integration/lab/agents/test_create_sharing_link.py +4 -1
  16. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/integration/lab/agents/test_publish_agent_revision.py +0 -1
  17. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/integration/lab/agents/test_update_agent.py +15 -19
  18. pygeai-0.5.0b3/pygeai/tests/integration/lab/processes/test_create_process.py +345 -0
  19. pygeai-0.5.0b3/pygeai/tests/integration/lab/processes/test_get_process.py +201 -0
  20. pygeai-0.5.0b3/pygeai/tests/integration/lab/processes/test_update_process.py +289 -0
  21. pygeai-0.5.0b3/pygeai/tests/integration/lab/reasoning_strategies/test_get_reasoning_strategy.py +70 -0
  22. pygeai-0.5.0b3/pygeai/tests/integration/lab/reasoning_strategies/test_list_reasoning_strategies.py +93 -0
  23. pygeai-0.5.0b3/pygeai/tests/integration/lab/reasoning_strategies/test_update_reasoning_strategy.py +149 -0
  24. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/integration/lab/tools/test_create_tool.py +12 -16
  25. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/integration/lab/tools/test_delete_tool.py +3 -3
  26. pygeai-0.5.0b3/pygeai/tests/integration/lab/tools/test_get_parameter.py +98 -0
  27. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/integration/lab/tools/test_get_tool.py +3 -3
  28. pygeai-0.5.0b3/pygeai/tests/integration/lab/tools/test_publish_tool_revision.py +119 -0
  29. pygeai-0.5.0b3/pygeai/tests/integration/lab/tools/test_set_parameter.py +114 -0
  30. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/integration/lab/tools/test_update_tool.py +8 -9
  31. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/lab/agentic_flow_example_4.py +23 -23
  32. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/lab/agents/get_sharing_link.py +1 -2
  33. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/lab/samples/summarize_files.py +3 -3
  34. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/lab/tools/create_tool.py +1 -1
  35. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/lab/use_cases/file_summarizer_example.py +3 -3
  36. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/lab/use_cases/file_summarizer_example_2.py +11 -11
  37. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/lab/use_cases/update_web_reader.py +1 -2
  38. pygeai-0.5.0b3/pygeai/tests/snippets/rerank/__init__.py +0 -0
  39. pygeai-0.5.0b3/pygeai/tests/snippets/secrets/__init__.py +0 -0
  40. pygeai-0.5.0b3/pygeai/tests/snippets/usage_limit/__init__.py +0 -0
  41. pygeai-0.5.0b3/pygeai/vendor/a2a/auth/__init__.py +0 -0
  42. pygeai-0.5.0b3/pygeai/vendor/a2a/py.typed +0 -0
  43. {pygeai-0.4.0b9 → pygeai-0.5.0b3/pygeai.egg-info}/PKG-INFO +44 -16
  44. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai.egg-info/SOURCES.txt +15 -0
  45. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pyproject.toml +1 -1
  46. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/LICENSE +0 -0
  47. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/MANIFEST.in +0 -0
  48. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/docs/geai-proxy/README.md +0 -0
  49. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/admin/__init__.py +0 -0
  50. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/admin/clients.py +0 -0
  51. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/admin/endpoints.py +0 -0
  52. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/assistant/__init__.py +0 -0
  53. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/assistant/clients.py +0 -0
  54. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/assistant/data/__init__.py +0 -0
  55. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/assistant/data/clients.py +0 -0
  56. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/assistant/data_analyst/__init__.py +0 -0
  57. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/assistant/data_analyst/clients.py +0 -0
  58. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/assistant/data_analyst/endpoints.py +0 -0
  59. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/assistant/endpoints.py +0 -0
  60. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/assistant/managers.py +0 -0
  61. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/assistant/mappers.py +0 -0
  62. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/assistant/rag/__init__.py +0 -0
  63. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/assistant/rag/clients.py +0 -0
  64. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/assistant/rag/endpoints.py +0 -0
  65. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/assistant/rag/mappers.py +0 -0
  66. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/assistant/rag/models.py +0 -0
  67. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/assistant/rag/responses.py +0 -0
  68. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/chat/__init__.py +0 -0
  69. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/chat/clients.py +0 -0
  70. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/chat/endpoints.py +0 -0
  71. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/chat/iris.py +0 -0
  72. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/chat/managers.py +0 -0
  73. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/chat/session.py +0 -0
  74. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/chat/settings.py +0 -0
  75. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/cli/__main__.py +0 -0
  76. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/cli/commands/__init__.py +0 -0
  77. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/cli/commands/admin.py +0 -0
  78. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/cli/commands/assistant.py +0 -0
  79. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/cli/commands/base.py +0 -0
  80. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/cli/commands/builders.py +0 -0
  81. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/cli/commands/common.py +0 -0
  82. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/cli/commands/configuration.py +0 -0
  83. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/cli/commands/embeddings.py +0 -0
  84. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/cli/commands/evaluation.py +0 -0
  85. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/cli/commands/feedback.py +0 -0
  86. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/cli/commands/files.py +0 -0
  87. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/cli/commands/flows/__init__.py +0 -0
  88. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/cli/commands/gam.py +0 -0
  89. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/cli/commands/lab/__init__.py +0 -0
  90. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/cli/commands/lab/common.py +0 -0
  91. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/cli/commands/lab/options.py +0 -0
  92. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/cli/commands/lab/spec.py +0 -0
  93. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/cli/commands/lab/utils.py +0 -0
  94. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/cli/commands/llm.py +0 -0
  95. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/cli/commands/migrate.py +0 -0
  96. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/cli/commands/options.py +0 -0
  97. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/cli/commands/organization.py +0 -0
  98. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/cli/commands/rag.py +0 -0
  99. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/cli/commands/rerank.py +0 -0
  100. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/cli/commands/secrets.py +0 -0
  101. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/cli/commands/usage_limits.py +0 -0
  102. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/cli/commands/validators.py +0 -0
  103. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/cli/commands/version.py +0 -0
  104. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/cli/geai.py +0 -0
  105. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/cli/geai_proxy.py +0 -0
  106. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/cli/install_man.py +0 -0
  107. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/cli/parsers.py +0 -0
  108. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/cli/texts/__init__.py +0 -0
  109. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/cli/texts/help.py +0 -0
  110. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/core/__init__.py +0 -0
  111. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/core/base/__init__.py +0 -0
  112. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/core/base/clients.py +0 -0
  113. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/core/base/mappers.py +0 -0
  114. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/core/base/models.py +0 -0
  115. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/core/base/responses.py +0 -0
  116. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/core/common/__init__.py +0 -0
  117. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/core/common/decorators.py +0 -0
  118. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/core/common/exceptions.py +0 -0
  119. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/core/embeddings/__init__.py +0 -0
  120. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/core/embeddings/clients.py +0 -0
  121. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/core/embeddings/endpoints.py +0 -0
  122. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/core/embeddings/managers.py +0 -0
  123. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/core/embeddings/mappers.py +0 -0
  124. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/core/embeddings/models.py +0 -0
  125. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/core/embeddings/responses.py +0 -0
  126. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/core/feedback/__init__.py +0 -0
  127. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/core/feedback/clients.py +0 -0
  128. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/core/feedback/endpoints.py +0 -0
  129. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/core/feedback/models.py +0 -0
  130. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/core/files/__init__.py +0 -0
  131. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/core/files/clients.py +0 -0
  132. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/core/files/endpoints.py +0 -0
  133. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/core/files/managers.py +0 -0
  134. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/core/files/mappers.py +0 -0
  135. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/core/files/models.py +0 -0
  136. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/core/files/responses.py +0 -0
  137. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/core/handlers.py +0 -0
  138. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/core/llm/__init__.py +0 -0
  139. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/core/llm/clients.py +0 -0
  140. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/core/llm/endpoints.py +0 -0
  141. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/core/models.py +0 -0
  142. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/core/plugins/__init__.py +0 -0
  143. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/core/plugins/clients.py +0 -0
  144. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/core/plugins/endpoints.py +0 -0
  145. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/core/plugins/models.py +0 -0
  146. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/core/rerank/__init__.py +0 -0
  147. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/core/rerank/clients.py +0 -0
  148. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/core/rerank/endpoints.py +0 -0
  149. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/core/rerank/managers.py +0 -0
  150. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/core/rerank/mappers.py +0 -0
  151. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/core/rerank/models.py +0 -0
  152. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/core/responses.py +0 -0
  153. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/core/secrets/__init__.py +0 -0
  154. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/core/secrets/clients.py +0 -0
  155. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/core/secrets/endpoints.py +0 -0
  156. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/core/services/__init__.py +0 -0
  157. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/core/services/llm/__init__.py +0 -0
  158. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/core/services/llm/model.py +0 -0
  159. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/core/services/llm/providers.py +0 -0
  160. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/core/services/response.py +0 -0
  161. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/core/services/rest.py +0 -0
  162. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/core/singleton.py +0 -0
  163. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/core/utils/__init__.py +0 -0
  164. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/core/utils/console.py +0 -0
  165. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/dbg/__init__.py +0 -0
  166. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/dbg/debugger.py +0 -0
  167. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/evaluation/__init__.py +0 -0
  168. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/evaluation/clients.py +0 -0
  169. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/evaluation/dataset/__init__.py +0 -0
  170. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/evaluation/dataset/clients.py +0 -0
  171. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/evaluation/dataset/endpoints.py +0 -0
  172. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/evaluation/plan/__init__.py +0 -0
  173. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/evaluation/plan/clients.py +0 -0
  174. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/evaluation/plan/endpoints.py +0 -0
  175. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/evaluation/result/__init__.py +0 -0
  176. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/evaluation/result/clients.py +0 -0
  177. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/evaluation/result/endpoints.py +0 -0
  178. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/flows/__init__.py +0 -0
  179. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/flows/endpoints.py +0 -0
  180. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/flows/models.py +0 -0
  181. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/gam/__init__.py +0 -0
  182. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/gam/clients.py +0 -0
  183. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/gam/endpoints.py +0 -0
  184. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/health/__init__.py +0 -0
  185. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/health/clients.py +0 -0
  186. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/health/endpoints.py +0 -0
  187. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/lab/__init__.py +0 -0
  188. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/lab/agents/__init__.py +0 -0
  189. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/lab/agents/clients.py +0 -0
  190. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/lab/agents/endpoints.py +0 -0
  191. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/lab/agents/mappers.py +0 -0
  192. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/lab/clients.py +0 -0
  193. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/lab/constants.py +0 -0
  194. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/lab/models.py +0 -0
  195. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/lab/processes/__init__.py +0 -0
  196. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/lab/processes/clients.py +0 -0
  197. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/lab/processes/endpoints.py +0 -0
  198. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/lab/processes/mappers.py +0 -0
  199. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/lab/runners.py +0 -0
  200. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/lab/spec/__init__.py +0 -0
  201. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/lab/spec/loader.py +0 -0
  202. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/lab/spec/parsers.py +0 -0
  203. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/lab/strategies/__init__.py +0 -0
  204. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/lab/strategies/clients.py +0 -0
  205. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/lab/strategies/endpoints.py +0 -0
  206. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/lab/strategies/mappers.py +0 -0
  207. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/lab/tools/__init__.py +0 -0
  208. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/lab/tools/endpoints.py +0 -0
  209. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/lab/tools/mappers.py +0 -0
  210. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/man/__init__.py +0 -0
  211. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/man/man1/__init__.py +0 -0
  212. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/man/man1/geai-proxy.1 +0 -0
  213. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/man/man1/geai.1 +0 -0
  214. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/migration/__init__.py +0 -0
  215. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/migration/strategies.py +0 -0
  216. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/migration/tools.py +0 -0
  217. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/organization/__init__.py +0 -0
  218. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/organization/clients.py +0 -0
  219. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/organization/endpoints.py +0 -0
  220. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/organization/limits/__init__.py +0 -0
  221. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/organization/limits/clients.py +0 -0
  222. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/organization/limits/endpoints.py +0 -0
  223. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/organization/limits/managers.py +0 -0
  224. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/organization/limits/mappers.py +0 -0
  225. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/organization/managers.py +0 -0
  226. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/organization/mappers.py +0 -0
  227. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/organization/responses.py +0 -0
  228. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/proxy/__init__.py +0 -0
  229. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/proxy/clients.py +0 -0
  230. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/proxy/config.py +0 -0
  231. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/proxy/managers.py +0 -0
  232. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/proxy/servers.py +0 -0
  233. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/proxy/tool.py +0 -0
  234. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/__init__.py +0 -0
  235. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/admin/__init__.py +0 -0
  236. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/admin/test_clients.py +0 -0
  237. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/assistants/__init__.py +0 -0
  238. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/assistants/rag/__init__.py +0 -0
  239. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/assistants/rag/test_clients.py +0 -0
  240. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/assistants/rag/test_mappers.py +0 -0
  241. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/assistants/rag/test_models.py +0 -0
  242. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/assistants/test_clients.py +0 -0
  243. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/assistants/test_managers.py +0 -0
  244. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/assistants/test_mappers.py +0 -0
  245. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/chat/__init__.py +0 -0
  246. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/chat/test_clients.py +0 -0
  247. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/chat/test_iris.py +0 -0
  248. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/chat/test_session.py +0 -0
  249. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/chat/test_ui.py +0 -0
  250. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/cli/__init__.py +0 -0
  251. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/cli/commands/__init__.py +0 -0
  252. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/cli/commands/lab/__init__.py +0 -0
  253. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/cli/commands/lab/test_ai_lab.py +0 -0
  254. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/cli/commands/lab/test_common.py +0 -0
  255. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/cli/commands/lab/test_spec.py +0 -0
  256. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/cli/commands/test_assistant.py +0 -0
  257. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/cli/commands/test_chat.py +0 -0
  258. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/cli/commands/test_common.py +0 -0
  259. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/cli/commands/test_embeddings.py +0 -0
  260. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/cli/commands/test_feedback.py +0 -0
  261. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/cli/commands/test_files.py +0 -0
  262. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/cli/commands/test_gam.py +0 -0
  263. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/cli/commands/test_llm.py +0 -0
  264. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/cli/commands/test_migrate.py +0 -0
  265. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/cli/commands/test_organization.py +0 -0
  266. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/cli/commands/test_rag.py +0 -0
  267. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/cli/commands/test_rerank.py +0 -0
  268. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/cli/commands/test_show_help.py +0 -0
  269. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/cli/commands/test_usage_limits.py +0 -0
  270. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/cli/commands/test_validators.py +0 -0
  271. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/cli/commands/test_version.py +0 -0
  272. {pygeai-0.4.0b9/pygeai/tests/core → pygeai-0.5.0b3/pygeai/tests/cli/docker}/__init__.py +0 -0
  273. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/cli/test_parsers.py +0 -0
  274. {pygeai-0.4.0b9/pygeai/tests/core/base → pygeai-0.5.0b3/pygeai/tests/core}/__init__.py +0 -0
  275. {pygeai-0.4.0b9/pygeai/tests/core/base/data → pygeai-0.5.0b3/pygeai/tests/core/base}/__init__.py +0 -0
  276. {pygeai-0.4.0b9/pygeai/tests/core/common → pygeai-0.5.0b3/pygeai/tests/core/base/data}/__init__.py +0 -0
  277. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/core/base/data/mappers.py +0 -0
  278. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/core/base/data/models.py +0 -0
  279. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/core/base/test_mappers.py +0 -0
  280. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/core/base/test_models.py +0 -0
  281. {pygeai-0.4.0b9/pygeai/tests/core/common/data → pygeai-0.5.0b3/pygeai/tests/core/common}/__init__.py +0 -0
  282. {pygeai-0.4.0b9/pygeai/tests/core/embeddings → pygeai-0.5.0b3/pygeai/tests/core/common/data}/__init__.py +0 -0
  283. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/core/common/test_config.py +0 -0
  284. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/core/common/test_decorators.py +0 -0
  285. {pygeai-0.4.0b9/pygeai/tests/core/feedback → pygeai-0.5.0b3/pygeai/tests/core/embeddings}/__init__.py +0 -0
  286. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/core/embeddings/test_clients.py +0 -0
  287. {pygeai-0.4.0b9/pygeai/tests/core/files → pygeai-0.5.0b3/pygeai/tests/core/feedback}/__init__.py +0 -0
  288. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/core/feedback/test_clients.py +0 -0
  289. {pygeai-0.4.0b9/pygeai/tests/core/llm → pygeai-0.5.0b3/pygeai/tests/core/files}/__init__.py +0 -0
  290. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/core/files/test_clients.py +0 -0
  291. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/core/files/test_managers.py +0 -0
  292. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/core/files/test_models.py +0 -0
  293. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/core/files/test_responses.py +0 -0
  294. {pygeai-0.4.0b9/pygeai/tests/core/rerank → pygeai-0.5.0b3/pygeai/tests/core/llm}/__init__.py +0 -0
  295. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/core/llm/test_clients.py +0 -0
  296. {pygeai-0.4.0b9/pygeai/tests/core/secrets → pygeai-0.5.0b3/pygeai/tests/core/rerank}/__init__.py +0 -0
  297. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/core/rerank/test_clients.py +0 -0
  298. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/core/rerank/test_managers.py +0 -0
  299. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/core/rerank/test_mappers.py +0 -0
  300. {pygeai-0.4.0b9/pygeai/tests/core/services → pygeai-0.5.0b3/pygeai/tests/core/secrets}/__init__.py +0 -0
  301. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/core/secrets/test_clients.py +0 -0
  302. {pygeai-0.4.0b9/pygeai/tests/core/utils → pygeai-0.5.0b3/pygeai/tests/core/services}/__init__.py +0 -0
  303. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/core/services/test_rest.py +0 -0
  304. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/core/test_handlers.py +0 -0
  305. {pygeai-0.4.0b9/pygeai/tests/dbg → pygeai-0.5.0b3/pygeai/tests/core/utils}/__init__.py +0 -0
  306. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/core/utils/test_console.py +0 -0
  307. {pygeai-0.4.0b9/pygeai/tests/gam → pygeai-0.5.0b3/pygeai/tests/dbg}/__init__.py +0 -0
  308. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/dbg/test_debugger.py +0 -0
  309. {pygeai-0.4.0b9/pygeai/tests/health → pygeai-0.5.0b3/pygeai/tests/gam}/__init__.py +0 -0
  310. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/gam/test_clients.py +0 -0
  311. {pygeai-0.4.0b9/pygeai/tests/integration → pygeai-0.5.0b3/pygeai/tests/health}/__init__.py +0 -0
  312. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/health/test_clients.py +0 -0
  313. {pygeai-0.4.0b9/pygeai/tests/integration/chat → pygeai-0.5.0b3/pygeai/tests/integration}/__init__.py +0 -0
  314. {pygeai-0.4.0b9/pygeai/tests/integration/lab → pygeai-0.5.0b3/pygeai/tests/integration/assistants}/__init__.py +0 -0
  315. {pygeai-0.4.0b9/pygeai/tests/integration/lab/agents → pygeai-0.5.0b3/pygeai/tests/integration/assistants/rag}/__init__.py +0 -0
  316. {pygeai-0.4.0b9/pygeai/tests/integration/lab/tools → pygeai-0.5.0b3/pygeai/tests/integration/chat}/__init__.py +0 -0
  317. {pygeai-0.4.0b9/pygeai/tests → pygeai-0.5.0b3/pygeai/tests/integration}/lab/__init__.py +0 -0
  318. {pygeai-0.4.0b9/pygeai/tests → pygeai-0.5.0b3/pygeai/tests/integration}/lab/agents/__init__.py +0 -0
  319. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/integration/lab/agents/test_agents_list.py +0 -0
  320. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/integration/lab/agents/test_delete_agent.py +0 -0
  321. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/integration/lab/agents/test_get_agent.py +0 -0
  322. {pygeai-0.4.0b9/pygeai/tests → pygeai-0.5.0b3/pygeai/tests/integration}/lab/processes/__init__.py +0 -0
  323. {pygeai-0.4.0b9/pygeai/tests/lab/spec → pygeai-0.5.0b3/pygeai/tests/integration/lab/reasoning_strategies}/__init__.py +0 -0
  324. {pygeai-0.4.0b9/pygeai/tests/lab/strategies → pygeai-0.5.0b3/pygeai/tests/integration/lab/tools}/__init__.py +0 -0
  325. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/integration/lab/tools/test_list_tools.py +0 -0
  326. {pygeai-0.4.0b9/pygeai/tests/lab/tools → pygeai-0.5.0b3/pygeai/tests/lab}/__init__.py +0 -0
  327. {pygeai-0.4.0b9/pygeai/tests/migration → pygeai-0.5.0b3/pygeai/tests/lab/agents}/__init__.py +0 -0
  328. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/lab/agents/test_clients.py +0 -0
  329. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/lab/agents/test_mappers.py +0 -0
  330. {pygeai-0.4.0b9/pygeai/tests/organization → pygeai-0.5.0b3/pygeai/tests/lab/processes}/__init__.py +0 -0
  331. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/lab/processes/test_clients.py +0 -0
  332. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/lab/processes/test_mappers.py +0 -0
  333. {pygeai-0.4.0b9/pygeai/tests/organization/limits → pygeai-0.5.0b3/pygeai/tests/lab/spec}/__init__.py +0 -0
  334. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/lab/spec/test_loader.py +0 -0
  335. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/lab/spec/test_parsers.py +0 -0
  336. {pygeai-0.4.0b9/pygeai/tests/snippets → pygeai-0.5.0b3/pygeai/tests/lab/strategies}/__init__.py +0 -0
  337. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/lab/strategies/test_clients.py +0 -0
  338. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/lab/strategies/test_mappers.py +0 -0
  339. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/lab/test_managers.py +0 -0
  340. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/lab/test_mappers.py +0 -0
  341. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/lab/test_models.py +0 -0
  342. {pygeai-0.4.0b9/pygeai/tests/snippets/assistants → pygeai-0.5.0b3/pygeai/tests/lab/tools}/__init__.py +0 -0
  343. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/lab/tools/test_clients.py +0 -0
  344. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/lab/tools/test_mappers.py +0 -0
  345. {pygeai-0.4.0b9/pygeai/tests/snippets/assistants/data_analyst → pygeai-0.5.0b3/pygeai/tests/migration}/__init__.py +0 -0
  346. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/migration/test_strategies.py +0 -0
  347. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/migration/test_tools.py +0 -0
  348. {pygeai-0.4.0b9/pygeai/tests/snippets/assistants/rag → pygeai-0.5.0b3/pygeai/tests/organization}/__init__.py +0 -0
  349. {pygeai-0.4.0b9/pygeai/tests/snippets/chat → pygeai-0.5.0b3/pygeai/tests/organization/limits}/__init__.py +0 -0
  350. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/organization/limits/test_clients.py +0 -0
  351. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/organization/limits/test_managers.py +0 -0
  352. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/organization/test_clients.py +0 -0
  353. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/organization/test_managers.py +0 -0
  354. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/organization/test_mappers.py +0 -0
  355. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/proxy/__init__.py +0 -0
  356. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/proxy/test_clients.py +0 -0
  357. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/proxy/test_config.py +0 -0
  358. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/proxy/test_integration.py +0 -0
  359. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/proxy/test_managers.py +0 -0
  360. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/proxy/test_servers.py +0 -0
  361. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/proxy/test_tool.py +0 -0
  362. {pygeai-0.4.0b9/pygeai/tests/snippets/embeddings → pygeai-0.5.0b3/pygeai/tests/snippets}/__init__.py +0 -0
  363. {pygeai-0.4.0b9/pygeai/tests/snippets/evaluation → pygeai-0.5.0b3/pygeai/tests/snippets/assistants}/__init__.py +0 -0
  364. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/assistants/create_chat_assistant.py +0 -0
  365. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/assistants/create_text_assistant.py +0 -0
  366. {pygeai-0.4.0b9/pygeai/tests/snippets/files → pygeai-0.5.0b3/pygeai/tests/snippets/assistants/data_analyst}/__init__.py +0 -0
  367. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/assistants/data_analyst/extend_and_check.py +0 -0
  368. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/assistants/data_analyst/extend_dataset.py +0 -0
  369. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/assistants/data_analyst/get_status.py +0 -0
  370. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/assistants/file_summarizer_assistant.py +0 -0
  371. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/assistants/get_assistant_data.py +0 -0
  372. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/assistants/get_assistant_list.py +0 -0
  373. {pygeai-0.4.0b9/pygeai/tests/snippets/gam → pygeai-0.5.0b3/pygeai/tests/snippets/assistants/rag}/__init__.py +0 -0
  374. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/assistants/rag/create_rag_assistant.py +0 -0
  375. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/assistants/rag/delete_al_documents.py +0 -0
  376. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/assistants/rag/delete_document.py +0 -0
  377. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/assistants/rag/delete_rag_assistant.py +0 -0
  378. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/assistants/rag/get_document.py +0 -0
  379. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/assistants/rag/get_documents.py +0 -0
  380. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/assistants/rag/get_rag_assistant_data.py +0 -0
  381. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/assistants/rag/update_rag_assistant.py +0 -0
  382. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/assistants/rag/upload_document.py +0 -0
  383. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/assistants/send_feedback.py +0 -0
  384. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/assistants/update_chat_assistant.py +0 -0
  385. {pygeai-0.4.0b9/pygeai/tests/snippets/lab → pygeai-0.5.0b3/pygeai/tests/snippets/chat}/__init__.py +0 -0
  386. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/chat/cancel_request.py +0 -0
  387. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/chat/chat_completion.py +0 -0
  388. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/chat/chat_completion_1.py +0 -0
  389. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/chat/chat_completion_2.py +0 -0
  390. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/chat/chat_completion_3.py +0 -0
  391. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/chat/chat_completion_4.py +0 -0
  392. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/chat/chat_completion_streaming.py +0 -0
  393. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/chat/get_request_status.py +0 -0
  394. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/chat/send_chat_request.py +0 -0
  395. {pygeai-0.4.0b9/pygeai/tests/snippets/lab/agents → pygeai-0.5.0b3/pygeai/tests/snippets/embeddings}/__init__.py +0 -0
  396. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/embeddings/generate_embeddings.py +0 -0
  397. {pygeai-0.4.0b9/pygeai/tests/snippets/lab/processes → pygeai-0.5.0b3/pygeai/tests/snippets/evaluation}/__init__.py +0 -0
  398. {pygeai-0.4.0b9/pygeai/tests/snippets/lab/processes/jobs → pygeai-0.5.0b3/pygeai/tests/snippets/files}/__init__.py +0 -0
  399. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/files/delete_file.py +0 -0
  400. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/files/get_file_content.py +0 -0
  401. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/files/get_file_data.py +0 -0
  402. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/files/get_file_list.py +0 -0
  403. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/files/upload_file.py +0 -0
  404. {pygeai-0.4.0b9/pygeai/tests/snippets/lab/processes/kbs → pygeai-0.5.0b3/pygeai/tests/snippets/gam}/__init__.py +0 -0
  405. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/gam/gam_access_token.py +0 -0
  406. {pygeai-0.4.0b9/pygeai/tests/snippets/lab/samples → pygeai-0.5.0b3/pygeai/tests/snippets/lab}/__init__.py +0 -0
  407. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/lab/agentic_flow_example_1.py +0 -0
  408. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/lab/agentic_flow_example_2.py +0 -0
  409. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/lab/agentic_flow_example_3.py +0 -0
  410. {pygeai-0.4.0b9/pygeai/tests/snippets/lab/strategies → pygeai-0.5.0b3/pygeai/tests/snippets/lab/agents}/__init__.py +0 -0
  411. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/lab/agents/create_agent.py +0 -0
  412. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/lab/agents/create_agent_2.py +0 -0
  413. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/lab/agents/create_agent_edge_case.py +0 -0
  414. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/lab/agents/create_agent_without_instructions.py +0 -0
  415. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/lab/agents/delete_agent.py +0 -0
  416. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/lab/agents/get_agent.py +0 -0
  417. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/lab/agents/list_agents.py +0 -0
  418. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/lab/agents/publish_agent_revision.py +0 -0
  419. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/lab/agents/update_agent.py +0 -0
  420. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/lab/assistant_to_agent.py +0 -0
  421. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/lab/crud_ui.py +0 -0
  422. {pygeai-0.4.0b9/pygeai/tests/snippets/lab/tools → pygeai-0.5.0b3/pygeai/tests/snippets/lab/processes}/__init__.py +0 -0
  423. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/lab/processes/create_process.py +0 -0
  424. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/lab/processes/create_task.py +0 -0
  425. {pygeai-0.4.0b9/pygeai/tests/snippets/lab/use_cases → pygeai-0.5.0b3/pygeai/tests/snippets/lab/processes/jobs}/__init__.py +0 -0
  426. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/lab/processes/jobs/list_jobs.py +0 -0
  427. {pygeai-0.4.0b9/pygeai/tests/snippets/migrate → pygeai-0.5.0b3/pygeai/tests/snippets/lab/processes/kbs}/__init__.py +0 -0
  428. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/lab/processes/kbs/create_kb.py +0 -0
  429. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/lab/processes/kbs/get_kb.py +0 -0
  430. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/lab/processes/kbs/list_kbs.py +0 -0
  431. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/lab/processes/kbs/try_all.py +0 -0
  432. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/lab/processes/list_processes.py +0 -0
  433. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/lab/runner_1.py +0 -0
  434. {pygeai-0.4.0b9/pygeai/tests/snippets/organization → pygeai-0.5.0b3/pygeai/tests/snippets/lab/samples}/__init__.py +0 -0
  435. {pygeai-0.4.0b9/pygeai/tests/snippets/rerank → pygeai-0.5.0b3/pygeai/tests/snippets/lab/strategies}/__init__.py +0 -0
  436. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/lab/strategies/create_reasoning_strategy.py +0 -0
  437. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/lab/strategies/get_reasoning_strategy.py +0 -0
  438. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/lab/strategies/list_reasoning_strategies.py +0 -0
  439. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/lab/strategies/update_reasoning_strategy.py +0 -0
  440. {pygeai-0.4.0b9/pygeai/tests/snippets/secrets → pygeai-0.5.0b3/pygeai/tests/snippets/lab/tools}/__init__.py +0 -0
  441. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/lab/tools/create_tool_edge_case.py +0 -0
  442. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/lab/tools/delete_tool.py +0 -0
  443. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/lab/tools/get_parameter.py +0 -0
  444. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/lab/tools/get_tool.py +0 -0
  445. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/lab/tools/list_tools.py +0 -0
  446. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/lab/tools/publish_tool_revision.py +0 -0
  447. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/lab/tools/set_parameters.py +0 -0
  448. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/lab/tools/update_tool.py +0 -0
  449. {pygeai-0.4.0b9/pygeai/tests/snippets/usage_limit → pygeai-0.5.0b3/pygeai/tests/snippets/lab/use_cases}/__init__.py +0 -0
  450. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/lab/use_cases/c_code_fixer_agent_flow.py +0 -0
  451. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/lab/use_cases/create_cli_expert.py +0 -0
  452. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/lab/use_cases/create_lab_expert.py +0 -0
  453. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/lab/use_cases/create_tool_headless_web_browser.py +0 -0
  454. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/lab/use_cases/create_web_designer.py +0 -0
  455. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/lab/use_cases/create_web_reader.py +0 -0
  456. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/lab/use_cases/update_cli_expert.py +0 -0
  457. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/lab/use_cases/update_lab_expert.py +0 -0
  458. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/lab/use_cases/update_web_designer.py +0 -0
  459. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/lab/use_cases/update_web_reader_with_tool.py +0 -0
  460. {pygeai-0.4.0b9/pygeai/vendor/a2a/auth → pygeai-0.5.0b3/pygeai/tests/snippets/migrate}/__init__.py +0 -0
  461. /pygeai-0.4.0b9/pygeai/vendor/a2a/py.typed → /pygeai-0.5.0b3/pygeai/tests/snippets/organization/__init__.py +0 -0
  462. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/organization/create_project.py +0 -0
  463. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/organization/delete_project.py +0 -0
  464. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/organization/export_request_data.py +0 -0
  465. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/organization/get_project_data.py +0 -0
  466. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/organization/get_project_list.py +0 -0
  467. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/organization/get_project_tokens.py +0 -0
  468. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/organization/update_project.py +0 -0
  469. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/rerank/rerank_chunks.py +0 -0
  470. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/usage_limit/delete_usage_limit.py +0 -0
  471. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/usage_limit/get_all_usage_limit_from_organization.py +0 -0
  472. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/usage_limit/get_usage_limit_from_organization.py +0 -0
  473. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/usage_limit/get_usage_limit_from_project.py +0 -0
  474. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/usage_limit/set_usage_limit_organization.py +0 -0
  475. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/usage_limit/set_usage_limit_project.py +0 -0
  476. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/usage_limit/update_usage_limit_organization.py +0 -0
  477. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/usage_limit/update_usage_limit_project.py +0 -0
  478. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/vendor/a2a/__init__.py +0 -0
  479. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/vendor/a2a/auth/user.py +0 -0
  480. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/vendor/a2a/client/__init__.py +0 -0
  481. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/vendor/a2a/client/client.py +0 -0
  482. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/vendor/a2a/client/errors.py +0 -0
  483. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/vendor/a2a/client/helpers.py +0 -0
  484. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/vendor/a2a/server/__init__.py +0 -0
  485. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/vendor/a2a/server/agent_execution/__init__.py +0 -0
  486. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/vendor/a2a/server/agent_execution/agent_executor.py +0 -0
  487. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/vendor/a2a/server/agent_execution/context.py +0 -0
  488. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/vendor/a2a/server/agent_execution/request_context_builder.py +0 -0
  489. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/vendor/a2a/server/agent_execution/simple_request_context_builder.py +0 -0
  490. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/vendor/a2a/server/apps/__init__.py +0 -0
  491. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/vendor/a2a/server/apps/jsonrpc/__init__.py +0 -0
  492. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/vendor/a2a/server/apps/jsonrpc/fastapi_app.py +0 -0
  493. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/vendor/a2a/server/apps/jsonrpc/jsonrpc_app.py +0 -0
  494. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/vendor/a2a/server/apps/jsonrpc/starlette_app.py +0 -0
  495. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/vendor/a2a/server/context.py +0 -0
  496. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/vendor/a2a/server/events/__init__.py +0 -0
  497. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/vendor/a2a/server/events/event_consumer.py +0 -0
  498. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/vendor/a2a/server/events/event_queue.py +0 -0
  499. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/vendor/a2a/server/events/in_memory_queue_manager.py +0 -0
  500. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/vendor/a2a/server/events/queue_manager.py +0 -0
  501. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/vendor/a2a/server/request_handlers/__init__.py +0 -0
  502. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/vendor/a2a/server/request_handlers/default_request_handler.py +0 -0
  503. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/vendor/a2a/server/request_handlers/jsonrpc_handler.py +0 -0
  504. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/vendor/a2a/server/request_handlers/request_handler.py +0 -0
  505. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/vendor/a2a/server/request_handlers/response_helpers.py +0 -0
  506. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/vendor/a2a/server/tasks/__init__.py +0 -0
  507. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/vendor/a2a/server/tasks/inmemory_push_notifier.py +0 -0
  508. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/vendor/a2a/server/tasks/inmemory_task_store.py +0 -0
  509. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/vendor/a2a/server/tasks/push_notifier.py +0 -0
  510. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/vendor/a2a/server/tasks/result_aggregator.py +0 -0
  511. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/vendor/a2a/server/tasks/task_manager.py +0 -0
  512. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/vendor/a2a/server/tasks/task_store.py +0 -0
  513. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/vendor/a2a/server/tasks/task_updater.py +0 -0
  514. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/vendor/a2a/types.py +0 -0
  515. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/vendor/a2a/utils/__init__.py +0 -0
  516. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/vendor/a2a/utils/artifact.py +0 -0
  517. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/vendor/a2a/utils/errors.py +0 -0
  518. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/vendor/a2a/utils/helpers.py +0 -0
  519. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/vendor/a2a/utils/message.py +0 -0
  520. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/vendor/a2a/utils/task.py +0 -0
  521. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/vendor/a2a/utils/telemetry.py +0 -0
  522. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai.egg-info/dependency_links.txt +0 -0
  523. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai.egg-info/entry_points.txt +0 -0
  524. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai.egg-info/requires.txt +0 -0
  525. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai.egg-info/top_level.txt +0 -0
  526. {pygeai-0.4.0b9 → pygeai-0.5.0b3}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pygeai
3
- Version: 0.4.0b9
3
+ Version: 0.5.0b3
4
4
  Summary: Software Development Kit to interact with Globant Enterprise AI.
5
5
  Author-email: Globant <geai-sdk@globant.com>
6
6
  License-Expression: MIT
@@ -48,7 +48,7 @@ By using the Python SDK to interact with Globant Enterprise AI, you agree with t
48
48
  [Terms and Conditions](https://www.globant.com/enterprise-ai/terms-of-use)
49
49
 
50
50
  ## Compatibility
51
- This package is compatible with the Globant Enterprise AI release from June 2025.
51
+ This package is compatible with the Globant Enterprise AI release from November 2025.
52
52
 
53
53
  ## Configuration
54
54
 
@@ -60,22 +60,50 @@ Before using the SDK, you need to define `GEAI_API_KEY` (`$SAIA_APITOKEN`) and `
60
60
 
61
61
  **Note:** If you plan to use the [Evaluation Module](https://wiki.genexus.com/enterprise-ai/wiki?896,Evaluation), you must also define `GEAI_API_EVAL_URL`
62
62
 
63
+ ### Credentials file
64
+ The credentials file is organized via profiles, so one can interact with different instances of Globant Enterprise AI by just
65
+ referencing which profile one wishes to use. This also applies to different levels of permissions.
66
+
67
+ The structure of the credentials file is as follows:
68
+
69
+ ```
70
+ [default]
71
+ geai_api_key = <API_TOKEN>
72
+ geai_api_base_url = <GEAI_BASE_URL>
73
+ geai_api_evaul_url = <GEAI_EVALUATION_MODULE_URL>
74
+
75
+ [<another alias>]
76
+ geai_api_key = <API_TOKEN>
77
+ geai_api_base_url = <GEAI_BASE_URL>
78
+ geai_api_evaul_url = <GEAI_EVALUATION_MODULE_URL>
79
+
80
+ ```
81
+
82
+ After setting the profiles, one can use them with the --alias option, for example:
83
+
84
+ ```bash
85
+ geai --alias test llm list-providers
86
+ ```
87
+
63
88
  ## Modules
64
89
 
65
- The SDK consists of several modules, all accessible through a meta-package:
66
-
67
- - **`pygeai`**: This meta-package encapsulates all components of the SDK.
68
- - **`pygeai-cli`**: This package provides a command-line tool for interacting with the SDK.
69
- - **`pygeai-chat`**: This package offers facilities to chat with assistants/agents created in Globant Enterprise AI.
70
- - **`pygeai-dbg`**: This package includes a debugger to troubleshoot potential SDK issues and gain detailed insights into its operations.
71
- - **`pygeai-core`**: This package handles interactions with the fundamental components of Globant Enterprise AI, including users, groups, permissions, API keys, organizations, and [Projects](https://wiki.genexus.com/enterprise-ai/wiki?565,Projects).
72
- - **`pygeai-admin`**: This package enables interactions with the Globant Enterprise AI instance.
73
- - **`pygeai-lab`**: This package facilitates interactions with AI LAB.
74
- - **`pygeai-evaluation`**: This package provides functionality from the evaluation module.
75
- - **`pygeai-gam`**: This package allows interaction with [GAM] (https://wiki.genexus.com/commwiki/wiki?24746,Table+of+contents%3AGeneXus+Access+Manager+%28GAM%29,).
76
- - **`pygeai-assistant`**: This package handles interactions with various Assistants, including [Data Analyst Assistants](https://wiki.genexus.com/enterprise-ai/wiki?886,Data+Analyst+Assistant+2.0), [RAG Assistants](https://wiki.genexus.com/enterprise-ai/wiki?44,RAG+Assistants+Introduction), [Chat with Data Assistants](https://wiki.genexus.com/enterprise-ai/wiki?159,Chat+with+Data+Assistant), [Chat with API Assistants](https://wiki.genexus.com/enterprise-ai/wiki?110,API+Assistant), and [Chat Assistants](https://wiki.genexus.com/enterprise-ai/wiki?708,Chat+Assistant).
77
- - **`pygeai-organization`**: This package facilitates interactions with Organizations in Globant Enterprise AI.
78
- - **`pygeai-flows`**: This package enables interactions with [Flows](https://wiki.genexus.com/enterprise-ai/wiki?321,Flows+in+Globant+Enterprise+AI) [in development].
90
+ The SDK consists of several modules, all accessible through a single package `pygeai`:
91
+
92
+ - **`pygeai`**: The package encapsulates all components of the SDK.
93
+ - **`admin`**: Allows the user to interact with some of the administration endpoints of Globant Enterprise AI.
94
+ - **`assistant`**: This module handles interactions with various Assistants, including [Data Analyst Assistants](https://wiki.genexus.com/enterprise-ai/wiki?886,Data+Analyst+Assistant+2.0), [RAG Assistants](https://wiki.genexus.com/enterprise-ai/wiki?44,RAG+Assistants+Introduction), [Chat with Data Assistants](https://wiki.genexus.com/enterprise-ai/wiki?159,Chat+with+Data+Assistant), [Chat with API Assistants](https://wiki.genexus.com/enterprise-ai/wiki?110,API+Assistant), and [Chat Assistants](https://wiki.genexus.com/enterprise-ai/wiki?708,Chat+Assistant [soon to be deprecated]).
95
+ - **`chat`**: This module offers facilities to chat with assistants/agents created in Globant Enterprise AI.
96
+ - **`core`**: This module handles interactions with the fundamental components of Globant Enterprise.
97
+ - **`cli`**: This module provides a command-line tool for interacting with the SDK.
98
+ - **`dbg`**: This module includes a debugger to troubleshoot potential SDK issues and gain detailed insights into its operations.
99
+ - **`evaluation`**: This module provides functionality for the evaluation module.
100
+ - **`flows`**: This module enables interactions with [Flows](https://wiki.genexus.com/enterprise-ai/wiki?321,Flows+in+Globant+Enterprise+AI) [in development].
101
+ - **`gam`**: This module allows interaction with [GAM] (https://wiki.genexus.com/commwiki/wiki?24746,Table+of+contents%3AGeneXus+Access+Manager+%28GAM%29,).
102
+ - **`health`**: Provides an easy way to check the status of the Globant Enterprise AI instance one is using.
103
+ - **`lab`**: This module facilitates interactions with [The Lab] (https://docs.globant.ai/en/wiki?1671,The+Lab).
104
+ - **`organization`**: This module facilitates interactions with Organizations and [Projects](https://wiki.genexus.com/enterprise-ai/wiki?565,Projects) in Globant Enterprise AI.
105
+ - **`migration`**: This module provides functionality to migrate Agents, Tools and Projects between instances and organizations.
106
+ - **`proxy`**: This module handles [integrations with MCP and A2A] (https://docs.globant.ai/en/wiki?1179,Importing+Tools+using+MCP+and+A2A+Servers).
79
107
 
80
108
  ## Usage
81
109
 
@@ -9,7 +9,7 @@ By using the Python SDK to interact with Globant Enterprise AI, you agree with t
9
9
  [Terms and Conditions](https://www.globant.com/enterprise-ai/terms-of-use)
10
10
 
11
11
  ## Compatibility
12
- This package is compatible with the Globant Enterprise AI release from June 2025.
12
+ This package is compatible with the Globant Enterprise AI release from November 2025.
13
13
 
14
14
  ## Configuration
15
15
 
@@ -21,22 +21,50 @@ Before using the SDK, you need to define `GEAI_API_KEY` (`$SAIA_APITOKEN`) and `
21
21
 
22
22
  **Note:** If you plan to use the [Evaluation Module](https://wiki.genexus.com/enterprise-ai/wiki?896,Evaluation), you must also define `GEAI_API_EVAL_URL`
23
23
 
24
+ ### Credentials file
25
+ The credentials file is organized via profiles, so one can interact with different instances of Globant Enterprise AI by just
26
+ referencing which profile one wishes to use. This also applies to different levels of permissions.
27
+
28
+ The structure of the credentials file is as follows:
29
+
30
+ ```
31
+ [default]
32
+ geai_api_key = <API_TOKEN>
33
+ geai_api_base_url = <GEAI_BASE_URL>
34
+ geai_api_evaul_url = <GEAI_EVALUATION_MODULE_URL>
35
+
36
+ [<another alias>]
37
+ geai_api_key = <API_TOKEN>
38
+ geai_api_base_url = <GEAI_BASE_URL>
39
+ geai_api_evaul_url = <GEAI_EVALUATION_MODULE_URL>
40
+
41
+ ```
42
+
43
+ After setting the profiles, one can use them with the --alias option, for example:
44
+
45
+ ```bash
46
+ geai --alias test llm list-providers
47
+ ```
48
+
24
49
  ## Modules
25
50
 
26
- The SDK consists of several modules, all accessible through a meta-package:
27
-
28
- - **`pygeai`**: This meta-package encapsulates all components of the SDK.
29
- - **`pygeai-cli`**: This package provides a command-line tool for interacting with the SDK.
30
- - **`pygeai-chat`**: This package offers facilities to chat with assistants/agents created in Globant Enterprise AI.
31
- - **`pygeai-dbg`**: This package includes a debugger to troubleshoot potential SDK issues and gain detailed insights into its operations.
32
- - **`pygeai-core`**: This package handles interactions with the fundamental components of Globant Enterprise AI, including users, groups, permissions, API keys, organizations, and [Projects](https://wiki.genexus.com/enterprise-ai/wiki?565,Projects).
33
- - **`pygeai-admin`**: This package enables interactions with the Globant Enterprise AI instance.
34
- - **`pygeai-lab`**: This package facilitates interactions with AI LAB.
35
- - **`pygeai-evaluation`**: This package provides functionality from the evaluation module.
36
- - **`pygeai-gam`**: This package allows interaction with [GAM] (https://wiki.genexus.com/commwiki/wiki?24746,Table+of+contents%3AGeneXus+Access+Manager+%28GAM%29,).
37
- - **`pygeai-assistant`**: This package handles interactions with various Assistants, including [Data Analyst Assistants](https://wiki.genexus.com/enterprise-ai/wiki?886,Data+Analyst+Assistant+2.0), [RAG Assistants](https://wiki.genexus.com/enterprise-ai/wiki?44,RAG+Assistants+Introduction), [Chat with Data Assistants](https://wiki.genexus.com/enterprise-ai/wiki?159,Chat+with+Data+Assistant), [Chat with API Assistants](https://wiki.genexus.com/enterprise-ai/wiki?110,API+Assistant), and [Chat Assistants](https://wiki.genexus.com/enterprise-ai/wiki?708,Chat+Assistant).
38
- - **`pygeai-organization`**: This package facilitates interactions with Organizations in Globant Enterprise AI.
39
- - **`pygeai-flows`**: This package enables interactions with [Flows](https://wiki.genexus.com/enterprise-ai/wiki?321,Flows+in+Globant+Enterprise+AI) [in development].
51
+ The SDK consists of several modules, all accessible through a single package `pygeai`:
52
+
53
+ - **`pygeai`**: The package encapsulates all components of the SDK.
54
+ - **`admin`**: Allows the user to interact with some of the administration endpoints of Globant Enterprise AI.
55
+ - **`assistant`**: This module handles interactions with various Assistants, including [Data Analyst Assistants](https://wiki.genexus.com/enterprise-ai/wiki?886,Data+Analyst+Assistant+2.0), [RAG Assistants](https://wiki.genexus.com/enterprise-ai/wiki?44,RAG+Assistants+Introduction), [Chat with Data Assistants](https://wiki.genexus.com/enterprise-ai/wiki?159,Chat+with+Data+Assistant), [Chat with API Assistants](https://wiki.genexus.com/enterprise-ai/wiki?110,API+Assistant), and [Chat Assistants](https://wiki.genexus.com/enterprise-ai/wiki?708,Chat+Assistant [soon to be deprecated]).
56
+ - **`chat`**: This module offers facilities to chat with assistants/agents created in Globant Enterprise AI.
57
+ - **`core`**: This module handles interactions with the fundamental components of Globant Enterprise.
58
+ - **`cli`**: This module provides a command-line tool for interacting with the SDK.
59
+ - **`dbg`**: This module includes a debugger to troubleshoot potential SDK issues and gain detailed insights into its operations.
60
+ - **`evaluation`**: This module provides functionality for the evaluation module.
61
+ - **`flows`**: This module enables interactions with [Flows](https://wiki.genexus.com/enterprise-ai/wiki?321,Flows+in+Globant+Enterprise+AI) [in development].
62
+ - **`gam`**: This module allows interaction with [GAM] (https://wiki.genexus.com/commwiki/wiki?24746,Table+of+contents%3AGeneXus+Access+Manager+%28GAM%29,).
63
+ - **`health`**: Provides an easy way to check the status of the Globant Enterprise AI instance one is using.
64
+ - **`lab`**: This module facilitates interactions with [The Lab] (https://docs.globant.ai/en/wiki?1671,The+Lab).
65
+ - **`organization`**: This module facilitates interactions with Organizations and [Projects](https://wiki.genexus.com/enterprise-ai/wiki?565,Projects) in Globant Enterprise AI.
66
+ - **`migration`**: This module provides functionality to migrate Agents, Tools and Projects between instances and organizations.
67
+ - **`proxy`**: This module handles [integrations with MCP and A2A] (https://docs.globant.ai/en/wiki?1179,Importing+Tools+using+MCP+and+A2A+Servers).
40
68
 
41
69
  ## Usage
42
70
 
@@ -4,7 +4,7 @@ import sys
4
4
  from pathlib import Path
5
5
 
6
6
  __author__ = 'Globant'
7
- __version__ = '0.4.0'
7
+ __version__ = '0.5.0'
8
8
 
9
9
  # Add vendor directory to Python path
10
10
  package_root = Path(__file__).parent
@@ -1,5 +1,4 @@
1
1
  import logging
2
- from pathlib import Path
3
2
 
4
3
  import streamlit as st
5
4
  import argparse
@@ -4,5 +4,5 @@ GEAI - ClI
4
4
  Command line interface to interact with Globant Enterprise AI.
5
5
  """
6
6
 
7
- __version__ = '0.4.0'
7
+ __version__ = '0.5.0'
8
8
 
@@ -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(project_id=project_id, agent_id=agent_name)
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
- if use_gui:
378
- try:
379
- import streamlit
380
- except ImportError:
381
- logger.error("Streamlit not installed")
382
- Console.write_stderr("Streamlit is required for GUI mode. Install it with 'pip install streamlit'.")
383
- sys.exit(1)
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
- try:
386
- ui_path = resources.files("pygeai.chat").joinpath("ui.py")
387
- ui_file_path = str(ui_path)
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
- except FileNotFoundError:
425
- logger.error("Could not locate pygeai/chat/ui.py")
426
- Console.write_stderr("Streamlit UI file not found. Ensure pygeai is installed correctly.")
427
- sys.exit(1)
428
- except Exception as e:
429
- logger.error(f"Streamlit error: {e}")
430
- Console.write_stderr(
431
- f"Failed to launch Streamlit. Check port with 'lsof -i :8501' and kill any process, or try {url}.")
432
- sys.exit(1)
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():
@@ -30,7 +30,7 @@ class Session(metaclass=Singleton):
30
30
  eval_url: Optional[str] = None,
31
31
  ):
32
32
  if not api_key or not base_url:
33
- raise MissingRequirementException("Cannot instantiate session without api_key and base_url")
33
+ logger.warning("Cannot instantiate session without api_key and base_url")
34
34
 
35
35
  self.__api_key = api_key
36
36
  self.__base_url = base_url
@@ -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
- ) -> Tool:
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 = ToolMapper.map_to_tool(response_data)
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
- if response.status_code != 200:
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 != 200:
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 != 200:
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 != 200:
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 != 200:
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 != 200:
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 != 200:
524
- logger.error(f"Invalid status code returned from the API endpoint: {response.text}")
525
- raise APIResponseError(f"API returned an error: {response.text}")
526
- try:
527
- result = response.json()
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 != 200:
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,91 @@
1
+ from unittest import TestCase
2
+ import uuid
3
+ from pygeai.assistant.managers import AssistantManager
4
+ from pygeai.core.models import WelcomeData, LlmSettings
5
+ from pygeai.assistant.rag.models import (
6
+ Search,
7
+ RetrieverOptions,
8
+ SearchOptions,
9
+ ChunkOptions,
10
+ IndexOptions,
11
+ RAGAssistant,
12
+ )
13
+
14
+
15
+ class TestAssistantCreateRagIntegration(TestCase):
16
+
17
+ def setUp(self):
18
+ """
19
+ Set up the test environment.
20
+ """
21
+ self.assistant_manager = AssistantManager(alias="beta")
22
+
23
+ self.new_rag = self.__load_rag()
24
+ self.created_rag: RAGAssistant = None
25
+
26
+
27
+ def tearDown(self):
28
+ """
29
+ Clean up after each test if necessary.
30
+ This can be used to delete the created tool
31
+ """
32
+ if isinstance(self.created_rag, RAGAssistant):
33
+ self.assistant_manager.delete_assistant(assistant_name=self.created_rag.name)
34
+
35
+
36
+ def __load_rag(self):
37
+ llm_options = LlmSettings(
38
+ cache=False,
39
+ temperature=0.1,
40
+ max_tokens=999,
41
+ model_name="gpt-3.5-turbo-16k",
42
+ n=1,
43
+ presence_penalty=0,
44
+ frequency_penalty=0,
45
+ provider="OpenAI",
46
+ stream=False,
47
+ top_p=1.0,
48
+ type=None,
49
+ verbose=True,
50
+ )
51
+
52
+ retriever_options = RetrieverOptions(type="vectorStore")
53
+
54
+ search_options = SearchOptions(
55
+ history_count=2,
56
+ llm=llm_options,
57
+ search=Search(
58
+ k=5,
59
+ return_source_documents=False,
60
+ score_threshold=0,
61
+ prompt="Use {context} and {question}",
62
+ template="",
63
+ ),
64
+ retriever=retriever_options,
65
+ )
66
+
67
+ chunk_options = ChunkOptions(chunk_size=999, chunk_overlap=0)
68
+
69
+ index_options = IndexOptions(chunks=chunk_options)
70
+
71
+ welcome_data = WelcomeData(
72
+ title="Test Profile Welcome Data",
73
+ description="Test Profile with WelcomeData",
74
+ features=[],
75
+ examples_prompt=[],
76
+ )
77
+
78
+ return RAGAssistant(
79
+ name=str(uuid.uuid4()),
80
+ description="Test Profile with WelcomeData",
81
+ search_options=search_options,
82
+ index_options=index_options,
83
+ welcome_data=welcome_data,
84
+ )
85
+
86
+
87
+ def test_create_rag_assistant(self):
88
+ rag_assistant = self.__load_rag()
89
+ self.created_rag = self.assistant_manager.create_assistant(rag_assistant)
90
+
91
+ self.assertIsInstance(self.created_rag, RAGAssistant, "Failed to create RAG assistant")
@@ -56,13 +56,9 @@ class TestChatGenerateImageIntegration(TestCase):
56
56
  self.new_image["model"] = ""
57
57
  created_image = self.__generate_image()
58
58
 
59
- self.assertEqual(
60
- created_image["error"]["code"], 400,
61
- "Expected a 400 code for no model"
62
- )
63
59
  self.assertEqual(
64
60
  created_image["error"]["message"],
65
- "Invalid 'model' name. Must follow pattern {provider}/{modelName}",
61
+ "LLM Provider NOT provided. Pass in the LLM provider you are trying to call",
66
62
  "Expected an error message when no model is provided"
67
63
  )
68
64
 
@@ -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(
@@ -142,7 +141,6 @@ class TestAILabCreateAgentIntegration(TestCase):
142
141
  self.assertEqual(prompt.inputs, agent.agent_data.prompt.inputs)
143
142
 
144
143
 
145
- @unittest.skip("Skipping test due to mismatch in expected behavior")
146
144
  def test_create_agent_without_required_data(self):
147
145
  test_params = [ True, False ]
148
146
 
@@ -152,12 +150,19 @@ class TestAILabCreateAgentIntegration(TestCase):
152
150
  self.new_agent = Agent(
153
151
  name=str(uuid.uuid4())
154
152
  )
155
- with self.assertRaises(APIError) as exception:
156
- self.__create_agent(automatic_publish=auto_publish)
157
-
158
- #TODO: Change validation error to a more specific one
159
- self.assertIn("400",str(exception.exception))
160
- self.assertIn("Bad Request",str(exception.exception))
153
+ if auto_publish:
154
+
155
+ with self.assertRaises(APIError) as exception:
156
+ self.__create_agent(automatic_publish=auto_publish)
157
+
158
+ #TODO: Change validation error to a more specific one
159
+ self.assertIn(
160
+ "A valid prompt is required. To be valid, it must provide clear instructions to the model",
161
+ str(exception.exception)
162
+ )
163
+ else:
164
+ created_agent = self.__create_agent(automatic_publish=auto_publish)
165
+ self.assertTrue(isinstance(created_agent, Agent), "Expected a created agent")
161
166
 
162
167
 
163
168
  def test_create_agent_no_name(self):
@@ -1,4 +1,5 @@
1
1
  from unittest import TestCase
2
+ import unittest
2
3
  from pygeai.lab.managers import AILabManager
3
4
  from pygeai.lab.models import SharingLink
4
5
  from pygeai.core.common.exceptions import APIError, MissingRequirementException
@@ -16,7 +17,7 @@ class TestAILabCreateSharingLinkIntegration(TestCase):
16
17
  agent_id=self.agent_id if agent_id is None else agent_id
17
18
  )
18
19
 
19
-
20
+ @unittest.skip("Endpoint is not found. Validate if it was deleted")
20
21
  def test_create_sharing_link(self):
21
22
  shared_link = self.__create_sharing_link()
22
23
  self.assertIsInstance(shared_link, SharingLink, "Expected response to be an instance of SharingLink")
@@ -46,6 +47,7 @@ class TestAILabCreateSharingLinkIntegration(TestCase):
46
47
  )
47
48
 
48
49
 
50
+ @unittest.skip("Endpoint is not found. Validate if it was deleted")
49
51
  def test_create_sharing_link_no_agent_id(self):
50
52
  with self.assertRaises(MissingRequirementException) as context:
51
53
  self.__create_sharing_link(agent_id="")
@@ -56,6 +58,7 @@ class TestAILabCreateSharingLinkIntegration(TestCase):
56
58
  )
57
59
 
58
60
 
61
+ @unittest.skip("Endpoint is not found. Validate if it was deleted")
59
62
  def test_create_sharing_link_invalid_agent_id(self):
60
63
  with self.assertRaises(APIError) as exception:
61
64
  invalid_id = "0026e53d-ea78-4cac-af9f-12650invalid"
@@ -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(