pygeai 0.2.7b46__tar.gz → 0.2.7b47__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 (490) hide show
  1. {pygeai-0.2.7b46/pygeai.egg-info → pygeai-0.2.7b47}/PKG-INFO +1 -1
  2. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/chat/clients.py +8 -2
  3. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/integration/lab/agents/test_agents_list.py +2 -2
  4. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/integration/lab/agents/test_create_agent.py +19 -15
  5. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/integration/lab/agents/test_create_sharing_link.py +8 -42
  6. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/integration/lab/agents/test_delete_agent.py +7 -32
  7. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/integration/lab/agents/test_get_agent.py +2 -14
  8. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/integration/lab/agents/test_publish_agent_revision.py +12 -23
  9. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/integration/lab/agents/test_update_agent.py +3 -4
  10. {pygeai-0.2.7b46 → pygeai-0.2.7b47/pygeai.egg-info}/PKG-INFO +1 -1
  11. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pyproject.toml +1 -1
  12. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/LICENSE +0 -0
  13. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/MANIFEST.in +0 -0
  14. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/README.md +0 -0
  15. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/docs/geai-proxy/README.md +0 -0
  16. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/__init__.py +0 -0
  17. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/admin/__init__.py +0 -0
  18. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/admin/clients.py +0 -0
  19. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/admin/endpoints.py +0 -0
  20. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/assistant/__init__.py +0 -0
  21. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/assistant/clients.py +0 -0
  22. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/assistant/data/__init__.py +0 -0
  23. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/assistant/data/clients.py +0 -0
  24. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/assistant/data_analyst/__init__.py +0 -0
  25. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/assistant/data_analyst/clients.py +0 -0
  26. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/assistant/data_analyst/endpoints.py +0 -0
  27. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/assistant/endpoints.py +0 -0
  28. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/assistant/managers.py +0 -0
  29. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/assistant/mappers.py +0 -0
  30. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/assistant/rag/__init__.py +0 -0
  31. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/assistant/rag/clients.py +0 -0
  32. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/assistant/rag/endpoints.py +0 -0
  33. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/assistant/rag/mappers.py +0 -0
  34. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/assistant/rag/models.py +0 -0
  35. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/assistant/rag/responses.py +0 -0
  36. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/chat/__init__.py +0 -0
  37. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/chat/endpoints.py +0 -0
  38. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/chat/iris.py +0 -0
  39. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/chat/managers.py +0 -0
  40. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/chat/session.py +0 -0
  41. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/chat/settings.py +0 -0
  42. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/chat/ui.py +0 -0
  43. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/cli/__init__.py +0 -0
  44. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/cli/__main__.py +0 -0
  45. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/cli/commands/__init__.py +0 -0
  46. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/cli/commands/admin.py +0 -0
  47. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/cli/commands/assistant.py +0 -0
  48. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/cli/commands/base.py +0 -0
  49. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/cli/commands/builders.py +0 -0
  50. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/cli/commands/chat.py +0 -0
  51. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/cli/commands/common.py +0 -0
  52. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/cli/commands/configuration.py +0 -0
  53. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/cli/commands/embeddings.py +0 -0
  54. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/cli/commands/evaluation.py +0 -0
  55. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/cli/commands/feedback.py +0 -0
  56. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/cli/commands/files.py +0 -0
  57. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/cli/commands/flows/__init__.py +0 -0
  58. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/cli/commands/gam.py +0 -0
  59. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/cli/commands/lab/__init__.py +0 -0
  60. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/cli/commands/lab/ai_lab.py +0 -0
  61. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/cli/commands/lab/common.py +0 -0
  62. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/cli/commands/lab/spec.py +0 -0
  63. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/cli/commands/llm.py +0 -0
  64. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/cli/commands/migrate.py +0 -0
  65. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/cli/commands/options.py +0 -0
  66. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/cli/commands/organization.py +0 -0
  67. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/cli/commands/rag.py +0 -0
  68. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/cli/commands/rerank.py +0 -0
  69. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/cli/commands/secrets.py +0 -0
  70. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/cli/commands/usage_limits.py +0 -0
  71. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/cli/commands/validators.py +0 -0
  72. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/cli/commands/version.py +0 -0
  73. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/cli/geai.py +0 -0
  74. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/cli/geai_proxy.py +0 -0
  75. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/cli/install_man.py +0 -0
  76. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/cli/parsers.py +0 -0
  77. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/cli/texts/__init__.py +0 -0
  78. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/cli/texts/help.py +0 -0
  79. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/core/__init__.py +0 -0
  80. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/core/base/__init__.py +0 -0
  81. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/core/base/clients.py +0 -0
  82. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/core/base/mappers.py +0 -0
  83. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/core/base/models.py +0 -0
  84. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/core/base/responses.py +0 -0
  85. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/core/base/session.py +0 -0
  86. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/core/common/__init__.py +0 -0
  87. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/core/common/config.py +0 -0
  88. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/core/common/decorators.py +0 -0
  89. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/core/common/exceptions.py +0 -0
  90. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/core/embeddings/__init__.py +0 -0
  91. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/core/embeddings/clients.py +0 -0
  92. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/core/embeddings/endpoints.py +0 -0
  93. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/core/embeddings/managers.py +0 -0
  94. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/core/embeddings/mappers.py +0 -0
  95. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/core/embeddings/models.py +0 -0
  96. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/core/embeddings/responses.py +0 -0
  97. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/core/feedback/__init__.py +0 -0
  98. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/core/feedback/clients.py +0 -0
  99. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/core/feedback/endpoints.py +0 -0
  100. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/core/feedback/models.py +0 -0
  101. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/core/files/__init__.py +0 -0
  102. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/core/files/clients.py +0 -0
  103. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/core/files/endpoints.py +0 -0
  104. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/core/files/managers.py +0 -0
  105. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/core/files/mappers.py +0 -0
  106. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/core/files/models.py +0 -0
  107. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/core/files/responses.py +0 -0
  108. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/core/handlers.py +0 -0
  109. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/core/llm/__init__.py +0 -0
  110. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/core/llm/clients.py +0 -0
  111. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/core/llm/endpoints.py +0 -0
  112. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/core/models.py +0 -0
  113. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/core/plugins/__init__.py +0 -0
  114. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/core/plugins/clients.py +0 -0
  115. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/core/plugins/endpoints.py +0 -0
  116. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/core/plugins/models.py +0 -0
  117. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/core/rerank/__init__.py +0 -0
  118. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/core/rerank/clients.py +0 -0
  119. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/core/rerank/endpoints.py +0 -0
  120. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/core/rerank/managers.py +0 -0
  121. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/core/rerank/mappers.py +0 -0
  122. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/core/rerank/models.py +0 -0
  123. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/core/responses.py +0 -0
  124. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/core/secrets/__init__.py +0 -0
  125. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/core/secrets/clients.py +0 -0
  126. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/core/secrets/endpoints.py +0 -0
  127. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/core/services/__init__.py +0 -0
  128. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/core/services/llm/__init__.py +0 -0
  129. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/core/services/llm/model.py +0 -0
  130. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/core/services/llm/providers.py +0 -0
  131. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/core/services/response.py +0 -0
  132. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/core/services/rest.py +0 -0
  133. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/core/singleton.py +0 -0
  134. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/core/utils/__init__.py +0 -0
  135. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/core/utils/console.py +0 -0
  136. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/dbg/__init__.py +0 -0
  137. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/dbg/debugger.py +0 -0
  138. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/evaluation/__init__.py +0 -0
  139. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/evaluation/clients.py +0 -0
  140. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/evaluation/dataset/__init__.py +0 -0
  141. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/evaluation/dataset/clients.py +0 -0
  142. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/evaluation/dataset/endpoints.py +0 -0
  143. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/evaluation/plan/__init__.py +0 -0
  144. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/evaluation/plan/clients.py +0 -0
  145. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/evaluation/plan/endpoints.py +0 -0
  146. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/evaluation/result/__init__.py +0 -0
  147. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/evaluation/result/clients.py +0 -0
  148. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/evaluation/result/endpoints.py +0 -0
  149. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/flows/__init__.py +0 -0
  150. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/flows/endpoints.py +0 -0
  151. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/flows/models.py +0 -0
  152. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/gam/__init__.py +0 -0
  153. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/gam/clients.py +0 -0
  154. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/gam/endpoints.py +0 -0
  155. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/health/__init__.py +0 -0
  156. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/health/clients.py +0 -0
  157. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/health/endpoints.py +0 -0
  158. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/lab/__init__.py +0 -0
  159. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/lab/agents/__init__.py +0 -0
  160. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/lab/agents/clients.py +0 -0
  161. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/lab/agents/endpoints.py +0 -0
  162. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/lab/agents/mappers.py +0 -0
  163. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/lab/constants.py +0 -0
  164. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/lab/managers.py +0 -0
  165. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/lab/models.py +0 -0
  166. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/lab/processes/__init__.py +0 -0
  167. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/lab/processes/clients.py +0 -0
  168. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/lab/processes/endpoints.py +0 -0
  169. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/lab/processes/mappers.py +0 -0
  170. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/lab/runners.py +0 -0
  171. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/lab/spec/__init__.py +0 -0
  172. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/lab/spec/loader.py +0 -0
  173. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/lab/spec/parsers.py +0 -0
  174. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/lab/strategies/__init__.py +0 -0
  175. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/lab/strategies/clients.py +0 -0
  176. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/lab/strategies/endpoints.py +0 -0
  177. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/lab/strategies/mappers.py +0 -0
  178. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/lab/tools/__init__.py +0 -0
  179. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/lab/tools/clients.py +0 -0
  180. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/lab/tools/endpoints.py +0 -0
  181. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/lab/tools/mappers.py +0 -0
  182. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/man/__init__.py +0 -0
  183. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/man/man1/__init__.py +0 -0
  184. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/man/man1/geai-proxy.1 +0 -0
  185. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/man/man1/geai.1 +0 -0
  186. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/migration/__init__.py +0 -0
  187. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/migration/strategies.py +0 -0
  188. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/migration/tools.py +0 -0
  189. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/organization/__init__.py +0 -0
  190. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/organization/clients.py +0 -0
  191. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/organization/endpoints.py +0 -0
  192. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/organization/limits/__init__.py +0 -0
  193. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/organization/limits/clients.py +0 -0
  194. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/organization/limits/endpoints.py +0 -0
  195. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/organization/limits/managers.py +0 -0
  196. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/organization/limits/mappers.py +0 -0
  197. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/organization/managers.py +0 -0
  198. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/organization/mappers.py +0 -0
  199. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/organization/responses.py +0 -0
  200. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/proxy/__init__.py +0 -0
  201. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/proxy/clients.py +0 -0
  202. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/proxy/config.py +0 -0
  203. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/proxy/managers.py +0 -0
  204. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/proxy/servers.py +0 -0
  205. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/proxy/tool.py +0 -0
  206. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/__init__.py +0 -0
  207. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/admin/__init__.py +0 -0
  208. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/admin/test_clients.py +0 -0
  209. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/assistants/__init__.py +0 -0
  210. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/assistants/rag/__init__.py +0 -0
  211. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/assistants/rag/test_clients.py +0 -0
  212. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/assistants/rag/test_mappers.py +0 -0
  213. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/assistants/rag/test_models.py +0 -0
  214. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/assistants/test_clients.py +0 -0
  215. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/assistants/test_managers.py +0 -0
  216. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/assistants/test_mappers.py +0 -0
  217. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/chat/__init__.py +0 -0
  218. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/chat/test_clients.py +0 -0
  219. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/chat/test_iris.py +0 -0
  220. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/chat/test_session.py +0 -0
  221. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/chat/test_ui.py +0 -0
  222. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/cli/__init__.py +0 -0
  223. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/cli/commands/__init__.py +0 -0
  224. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/cli/commands/lab/__init__.py +0 -0
  225. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/cli/commands/lab/test_ai_lab.py +0 -0
  226. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/cli/commands/lab/test_common.py +0 -0
  227. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/cli/commands/lab/test_spec.py +0 -0
  228. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/cli/commands/test_assistant.py +0 -0
  229. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/cli/commands/test_chat.py +0 -0
  230. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/cli/commands/test_common.py +0 -0
  231. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/cli/commands/test_embeddings.py +0 -0
  232. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/cli/commands/test_feedback.py +0 -0
  233. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/cli/commands/test_files.py +0 -0
  234. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/cli/commands/test_gam.py +0 -0
  235. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/cli/commands/test_llm.py +0 -0
  236. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/cli/commands/test_migrate.py +0 -0
  237. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/cli/commands/test_organization.py +0 -0
  238. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/cli/commands/test_rag.py +0 -0
  239. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/cli/commands/test_rerank.py +0 -0
  240. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/cli/commands/test_show_help.py +0 -0
  241. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/cli/commands/test_usage_limits.py +0 -0
  242. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/cli/commands/test_validators.py +0 -0
  243. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/cli/commands/test_version.py +0 -0
  244. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/cli/test_parsers.py +0 -0
  245. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/core/__init__.py +0 -0
  246. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/core/base/__init__.py +0 -0
  247. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/core/base/data/__init__.py +0 -0
  248. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/core/base/data/mappers.py +0 -0
  249. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/core/base/data/models.py +0 -0
  250. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/core/base/test_mappers.py +0 -0
  251. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/core/base/test_models.py +0 -0
  252. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/core/common/__init__.py +0 -0
  253. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/core/common/data/__init__.py +0 -0
  254. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/core/common/test_config.py +0 -0
  255. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/core/common/test_decorators.py +0 -0
  256. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/core/embeddings/__init__.py +0 -0
  257. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/core/embeddings/test_clients.py +0 -0
  258. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/core/feedback/__init__.py +0 -0
  259. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/core/feedback/test_clients.py +0 -0
  260. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/core/files/__init__.py +0 -0
  261. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/core/files/test_clients.py +0 -0
  262. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/core/files/test_managers.py +0 -0
  263. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/core/files/test_models.py +0 -0
  264. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/core/files/test_responses.py +0 -0
  265. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/core/llm/__init__.py +0 -0
  266. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/core/llm/test_clients.py +0 -0
  267. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/core/rerank/__init__.py +0 -0
  268. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/core/rerank/test_clients.py +0 -0
  269. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/core/rerank/test_managers.py +0 -0
  270. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/core/rerank/test_mappers.py +0 -0
  271. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/core/secrets/__init__.py +0 -0
  272. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/core/secrets/test_clients.py +0 -0
  273. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/core/services/__init__.py +0 -0
  274. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/core/services/test_rest.py +0 -0
  275. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/core/test_handlers.py +0 -0
  276. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/core/utils/__init__.py +0 -0
  277. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/core/utils/test_console.py +0 -0
  278. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/dbg/__init__.py +0 -0
  279. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/dbg/test_debugger.py +0 -0
  280. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/gam/__init__.py +0 -0
  281. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/gam/test_clients.py +0 -0
  282. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/health/__init__.py +0 -0
  283. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/health/test_clients.py +0 -0
  284. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/integration/__init__.py +0 -0
  285. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/integration/lab/__init__.py +0 -0
  286. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/integration/lab/agents/__init__.py +0 -0
  287. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/lab/__init__.py +0 -0
  288. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/lab/agents/__init__.py +0 -0
  289. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/lab/agents/test_clients.py +0 -0
  290. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/lab/agents/test_mappers.py +0 -0
  291. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/lab/processes/__init__.py +0 -0
  292. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/lab/processes/test_clients.py +0 -0
  293. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/lab/processes/test_mappers.py +0 -0
  294. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/lab/spec/__init__.py +0 -0
  295. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/lab/spec/test_loader.py +0 -0
  296. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/lab/spec/test_parsers.py +0 -0
  297. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/lab/strategies/__init__.py +0 -0
  298. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/lab/strategies/test_clients.py +0 -0
  299. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/lab/strategies/test_mappers.py +0 -0
  300. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/lab/test_managers.py +0 -0
  301. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/lab/test_mappers.py +0 -0
  302. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/lab/test_models.py +0 -0
  303. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/lab/tools/__init__.py +0 -0
  304. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/lab/tools/test_clients.py +0 -0
  305. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/lab/tools/test_mappers.py +0 -0
  306. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/migration/__init__.py +0 -0
  307. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/migration/test_strategies.py +0 -0
  308. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/migration/test_tools.py +0 -0
  309. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/organization/__init__.py +0 -0
  310. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/organization/limits/__init__.py +0 -0
  311. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/organization/limits/test_clients.py +0 -0
  312. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/organization/limits/test_managers.py +0 -0
  313. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/organization/test_clients.py +0 -0
  314. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/organization/test_managers.py +0 -0
  315. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/organization/test_mappers.py +0 -0
  316. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/snippets/__init__.py +0 -0
  317. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/snippets/assistants/__init__.py +0 -0
  318. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/snippets/assistants/create_chat_assistant.py +0 -0
  319. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/snippets/assistants/create_text_assistant.py +0 -0
  320. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/snippets/assistants/data_analyst/__init__.py +0 -0
  321. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/snippets/assistants/data_analyst/extend_and_check.py +0 -0
  322. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/snippets/assistants/data_analyst/extend_dataset.py +0 -0
  323. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/snippets/assistants/data_analyst/get_status.py +0 -0
  324. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/snippets/assistants/file_summarizer_assistant.py +0 -0
  325. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/snippets/assistants/get_assistant_data.py +0 -0
  326. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/snippets/assistants/get_assistant_list.py +0 -0
  327. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/snippets/assistants/rag/__init__.py +0 -0
  328. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/snippets/assistants/rag/create_rag_assistant.py +0 -0
  329. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/snippets/assistants/rag/delete_al_documents.py +0 -0
  330. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/snippets/assistants/rag/delete_document.py +0 -0
  331. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/snippets/assistants/rag/delete_rag_assistant.py +0 -0
  332. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/snippets/assistants/rag/get_document.py +0 -0
  333. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/snippets/assistants/rag/get_documents.py +0 -0
  334. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/snippets/assistants/rag/get_rag_assistant_data.py +0 -0
  335. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/snippets/assistants/rag/update_rag_assistant.py +0 -0
  336. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/snippets/assistants/rag/upload_document.py +0 -0
  337. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/snippets/assistants/send_feedback.py +0 -0
  338. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/snippets/assistants/update_chat_assistant.py +0 -0
  339. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/snippets/chat/__init__.py +0 -0
  340. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/snippets/chat/cancel_request.py +0 -0
  341. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/snippets/chat/chat_completion.py +0 -0
  342. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/snippets/chat/chat_completion_1.py +0 -0
  343. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/snippets/chat/chat_completion_2.py +0 -0
  344. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/snippets/chat/chat_completion_3.py +0 -0
  345. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/snippets/chat/chat_completion_4.py +0 -0
  346. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/snippets/chat/chat_completion_streaming.py +0 -0
  347. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/snippets/chat/get_request_status.py +0 -0
  348. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/snippets/chat/send_chat_request.py +0 -0
  349. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/snippets/embeddings/__init__.py +0 -0
  350. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/snippets/embeddings/generate_embeddings.py +0 -0
  351. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/snippets/evaluation/__init__.py +0 -0
  352. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/snippets/files/__init__.py +0 -0
  353. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/snippets/files/delete_file.py +0 -0
  354. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/snippets/files/get_file_content.py +0 -0
  355. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/snippets/files/get_file_data.py +0 -0
  356. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/snippets/files/get_file_list.py +0 -0
  357. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/snippets/files/upload_file.py +0 -0
  358. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/snippets/gam/__init__.py +0 -0
  359. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/snippets/gam/gam_access_token.py +0 -0
  360. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/snippets/lab/__init__.py +0 -0
  361. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/snippets/lab/agentic_flow_example_1.py +0 -0
  362. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/snippets/lab/agentic_flow_example_2.py +0 -0
  363. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/snippets/lab/agentic_flow_example_3.py +0 -0
  364. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/snippets/lab/agentic_flow_example_4.py +0 -0
  365. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/snippets/lab/agents/__init__.py +0 -0
  366. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/snippets/lab/agents/create_agent.py +0 -0
  367. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/snippets/lab/agents/create_agent_2.py +0 -0
  368. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/snippets/lab/agents/delete_agent.py +0 -0
  369. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/snippets/lab/agents/get_agent.py +0 -0
  370. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/snippets/lab/agents/get_sharing_link.py +0 -0
  371. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/snippets/lab/agents/list_agents.py +0 -0
  372. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/snippets/lab/agents/publish_agent_revision.py +0 -0
  373. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/snippets/lab/agents/update_agent.py +0 -0
  374. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/snippets/lab/assistant_to_agent.py +0 -0
  375. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/snippets/lab/crud_ui.py +0 -0
  376. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/snippets/lab/processes/__init__.py +0 -0
  377. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/snippets/lab/processes/create_process.py +0 -0
  378. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/snippets/lab/processes/create_task.py +0 -0
  379. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/snippets/lab/processes/jobs/__init__.py +0 -0
  380. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/snippets/lab/processes/jobs/list_jobs.py +0 -0
  381. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/snippets/lab/processes/kbs/__init__.py +0 -0
  382. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/snippets/lab/processes/kbs/create_kb.py +0 -0
  383. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/snippets/lab/processes/kbs/get_kb.py +0 -0
  384. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/snippets/lab/processes/kbs/list_kbs.py +0 -0
  385. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/snippets/lab/processes/kbs/try_all.py +0 -0
  386. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/snippets/lab/processes/list_processes.py +0 -0
  387. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/snippets/lab/runner_1.py +0 -0
  388. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/snippets/lab/samples/__init__.py +0 -0
  389. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/snippets/lab/samples/summarize_files.py +0 -0
  390. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/snippets/lab/strategies/__init__.py +0 -0
  391. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/snippets/lab/strategies/create_reasoning_strategy.py +0 -0
  392. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/snippets/lab/strategies/get_reasoning_strategy.py +0 -0
  393. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/snippets/lab/strategies/list_reasoning_strategies.py +0 -0
  394. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/snippets/lab/strategies/update_reasoning_strategy.py +0 -0
  395. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/snippets/lab/tools/__init__.py +0 -0
  396. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/snippets/lab/tools/create_tool.py +0 -0
  397. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/snippets/lab/tools/delete_tool.py +0 -0
  398. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/snippets/lab/tools/get_parameter.py +0 -0
  399. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/snippets/lab/tools/get_tool.py +0 -0
  400. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/snippets/lab/tools/list_tools.py +0 -0
  401. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/snippets/lab/tools/publish_tool_revision.py +0 -0
  402. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/snippets/lab/tools/set_parameters.py +0 -0
  403. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/snippets/lab/tools/update_tool.py +0 -0
  404. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/snippets/lab/use_cases/__init__.py +0 -0
  405. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/snippets/lab/use_cases/c_code_fixer_agent_flow.py +0 -0
  406. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/snippets/lab/use_cases/create_cli_expert.py +0 -0
  407. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/snippets/lab/use_cases/create_lab_expert.py +0 -0
  408. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/snippets/lab/use_cases/create_tool_headless_web_browser.py +0 -0
  409. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/snippets/lab/use_cases/create_web_designer.py +0 -0
  410. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/snippets/lab/use_cases/create_web_reader.py +0 -0
  411. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/snippets/lab/use_cases/file_summarizer_example.py +0 -0
  412. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/snippets/lab/use_cases/file_summarizer_example_2.py +0 -0
  413. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/snippets/lab/use_cases/update_cli_expert.py +0 -0
  414. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/snippets/lab/use_cases/update_lab_expert.py +0 -0
  415. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/snippets/lab/use_cases/update_web_designer.py +0 -0
  416. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/snippets/lab/use_cases/update_web_reader.py +0 -0
  417. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/snippets/lab/use_cases/update_web_reader_with_tool.py +0 -0
  418. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/snippets/migrate/__init__.py +0 -0
  419. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/snippets/organization/__init__.py +0 -0
  420. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/snippets/organization/create_project.py +0 -0
  421. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/snippets/organization/delete_project.py +0 -0
  422. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/snippets/organization/export_request_data.py +0 -0
  423. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/snippets/organization/get_project_data.py +0 -0
  424. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/snippets/organization/get_project_list.py +0 -0
  425. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/snippets/organization/get_project_tokens.py +0 -0
  426. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/snippets/organization/update_project.py +0 -0
  427. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/snippets/rerank/__init__.py +0 -0
  428. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/snippets/rerank/rerank_chunks.py +0 -0
  429. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/snippets/secrets/__init__.py +0 -0
  430. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/snippets/usage_limit/__init__.py +0 -0
  431. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/snippets/usage_limit/delete_usage_limit.py +0 -0
  432. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/snippets/usage_limit/get_all_usage_limit_from_organization.py +0 -0
  433. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/snippets/usage_limit/get_usage_limit_from_organization.py +0 -0
  434. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/snippets/usage_limit/get_usage_limit_from_project.py +0 -0
  435. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/snippets/usage_limit/set_usage_limit_organization.py +0 -0
  436. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/snippets/usage_limit/set_usage_limit_project.py +0 -0
  437. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/snippets/usage_limit/update_usage_limit_organization.py +0 -0
  438. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/tests/snippets/usage_limit/update_usage_limit_project.py +0 -0
  439. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/vendor/a2a/__init__.py +0 -0
  440. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/vendor/a2a/auth/__init__.py +0 -0
  441. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/vendor/a2a/auth/user.py +0 -0
  442. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/vendor/a2a/client/__init__.py +0 -0
  443. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/vendor/a2a/client/client.py +0 -0
  444. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/vendor/a2a/client/errors.py +0 -0
  445. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/vendor/a2a/client/helpers.py +0 -0
  446. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/vendor/a2a/py.typed +0 -0
  447. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/vendor/a2a/server/__init__.py +0 -0
  448. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/vendor/a2a/server/agent_execution/__init__.py +0 -0
  449. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/vendor/a2a/server/agent_execution/agent_executor.py +0 -0
  450. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/vendor/a2a/server/agent_execution/context.py +0 -0
  451. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/vendor/a2a/server/agent_execution/request_context_builder.py +0 -0
  452. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/vendor/a2a/server/agent_execution/simple_request_context_builder.py +0 -0
  453. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/vendor/a2a/server/apps/__init__.py +0 -0
  454. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/vendor/a2a/server/apps/jsonrpc/__init__.py +0 -0
  455. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/vendor/a2a/server/apps/jsonrpc/fastapi_app.py +0 -0
  456. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/vendor/a2a/server/apps/jsonrpc/jsonrpc_app.py +0 -0
  457. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/vendor/a2a/server/apps/jsonrpc/starlette_app.py +0 -0
  458. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/vendor/a2a/server/context.py +0 -0
  459. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/vendor/a2a/server/events/__init__.py +0 -0
  460. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/vendor/a2a/server/events/event_consumer.py +0 -0
  461. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/vendor/a2a/server/events/event_queue.py +0 -0
  462. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/vendor/a2a/server/events/in_memory_queue_manager.py +0 -0
  463. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/vendor/a2a/server/events/queue_manager.py +0 -0
  464. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/vendor/a2a/server/request_handlers/__init__.py +0 -0
  465. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/vendor/a2a/server/request_handlers/default_request_handler.py +0 -0
  466. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/vendor/a2a/server/request_handlers/jsonrpc_handler.py +0 -0
  467. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/vendor/a2a/server/request_handlers/request_handler.py +0 -0
  468. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/vendor/a2a/server/request_handlers/response_helpers.py +0 -0
  469. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/vendor/a2a/server/tasks/__init__.py +0 -0
  470. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/vendor/a2a/server/tasks/inmemory_push_notifier.py +0 -0
  471. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/vendor/a2a/server/tasks/inmemory_task_store.py +0 -0
  472. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/vendor/a2a/server/tasks/push_notifier.py +0 -0
  473. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/vendor/a2a/server/tasks/result_aggregator.py +0 -0
  474. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/vendor/a2a/server/tasks/task_manager.py +0 -0
  475. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/vendor/a2a/server/tasks/task_store.py +0 -0
  476. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/vendor/a2a/server/tasks/task_updater.py +0 -0
  477. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/vendor/a2a/types.py +0 -0
  478. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/vendor/a2a/utils/__init__.py +0 -0
  479. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/vendor/a2a/utils/artifact.py +0 -0
  480. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/vendor/a2a/utils/errors.py +0 -0
  481. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/vendor/a2a/utils/helpers.py +0 -0
  482. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/vendor/a2a/utils/message.py +0 -0
  483. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/vendor/a2a/utils/task.py +0 -0
  484. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai/vendor/a2a/utils/telemetry.py +0 -0
  485. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai.egg-info/SOURCES.txt +0 -0
  486. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai.egg-info/dependency_links.txt +0 -0
  487. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai.egg-info/entry_points.txt +0 -0
  488. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai.egg-info/requires.txt +0 -0
  489. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/pygeai.egg-info/top_level.txt +0 -0
  490. {pygeai-0.2.7b46 → pygeai-0.2.7b47}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pygeai
3
- Version: 0.2.7b46
3
+ Version: 0.2.7b47
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
@@ -140,18 +140,24 @@ class ChatClient(BaseClient):
140
140
  if user is not None:
141
141
  data['user'] = user
142
142
 
143
+ headers = {}
144
+ if thread_id:
145
+ headers["saia-conversation-id"] = thread_id
146
+
143
147
  logger.debug(f"Generating chat completion with data: {data}")
144
148
 
145
149
  if stream:
146
150
  response = self.api_service.stream_post(
147
151
  endpoint=CHAT_V1,
148
- data=data
152
+ data=data,
153
+ headers=headers
149
154
  )
150
155
  return self.stream_chat_generator(response)
151
156
  else:
152
157
  response = self.api_service.post(
153
158
  endpoint=CHAT_V1,
154
- data=data
159
+ data=data,
160
+ headers=headers
155
161
  )
156
162
  try:
157
163
  result = response.json()
@@ -14,7 +14,6 @@ class TestAILabAgentsListIntegration(TestCase):
14
14
 
15
15
  def setUp(self):
16
16
  self.ai_lab_manager = AILabManager(alias="beta")
17
- self.project_id = "be4889df-cacc-4e6f-b3bb-153c4ac0d168"
18
17
  self.filter_settings = FilterSettings(
19
18
  allow_external=False,
20
19
  allow_drafts=True,
@@ -24,7 +23,6 @@ class TestAILabAgentsListIntegration(TestCase):
24
23
 
25
24
  def __get_agent_list(self, filter_settings: FilterSettings = None):
26
25
  return self.ai_lab_manager.get_agent_list(
27
- project_id=self.project_id,
28
26
  filter_settings= self.filter_settings if filter_settings is None else filter_settings
29
27
  )
30
28
 
@@ -42,6 +40,7 @@ class TestAILabAgentsListIntegration(TestCase):
42
40
  )
43
41
  self.assertEqual(agent.access_scope, "public", "Expected all agents to be public")
44
42
 
43
+
45
44
  def test_get_private_agent_list(self):
46
45
  result = self.__get_agent_list()
47
46
 
@@ -72,6 +71,7 @@ class TestAILabAgentsListIntegration(TestCase):
72
71
  "Expected at least one agent to be a draft"
73
72
  )
74
73
 
74
+
75
75
  def test_get_agent_list_no_draft(self):
76
76
  filter_settings = copy.deepcopy(self.filter_settings)
77
77
  filter_settings.allow_drafts = False
@@ -23,9 +23,7 @@ class TestAILabCreateAgentIntegration(TestCase):
23
23
  This can be used to delete the created agent or reset the state.
24
24
  """
25
25
  if isinstance(self.created_agent, Agent):
26
- #TODO: Remove exception catch when delete_agent stop returning an unexpected error
27
- with self.assertRaises(InvalidAPIResponseException) as e:
28
- self.ai_lab_manager.delete_agent(self.created_agent.id)
26
+ self.ai_lab_manager.delete_agent(self.created_agent.id)
29
27
 
30
28
 
31
29
  def __load_agent(self):
@@ -144,10 +142,12 @@ class TestAILabCreateAgentIntegration(TestCase):
144
142
  self.assertEqual(prompt.inputs, agent.agent_data.prompt.inputs)
145
143
 
146
144
 
145
+ @unittest.skip("Skipping test due to mismatch in expected behavior")
147
146
  def test_create_agent_without_required_data(self):
148
147
  test_params = [ True, False ]
149
148
 
150
149
  for auto_publish in test_params:
150
+
151
151
  with self.subTest(input=auto_publish):
152
152
  self.new_agent = Agent(
153
153
  name=str(uuid.uuid4())
@@ -223,11 +223,11 @@ class TestAILabCreateAgentIntegration(TestCase):
223
223
  self.new_agent.access_scope = "project"
224
224
  with self.assertRaises(ValueError) as exc:
225
225
  self.__create_agent()
226
- self.assertEqual(
227
- str(exc.exception),
228
- "Access scope must be one of public, private",
229
- "Expected a ValueError exception for invalid access scope"
230
- )
226
+ self.assertEqual(
227
+ str(exc.exception),
228
+ "Access scope must be one of public, private.",
229
+ "Expected a ValueError exception for invalid access scope"
230
+ )
231
231
 
232
232
 
233
233
  def test_create_agent_default_scope(self):
@@ -292,13 +292,17 @@ class TestAILabCreateAgentIntegration(TestCase):
292
292
  self.new_agent.agent_data.prompt.instructions = ""
293
293
  with self.assertRaises(ValidationError) as exception:
294
294
  self.__create_agent()
295
-
296
- self.assertIn(
297
- """instructions
298
- Input should be a valid string [type=string_type, input_value=None, input_type=NoneType]""",
299
- str(exception.exception),
300
- "Expected a validation error about allowed values for instructions"
301
- )
295
+ self.assertIn(
296
+ "instructions",
297
+ str(exception.exception),
298
+ "Expected a validation error about allowed values for instructions"
299
+ )
300
+
301
+ self.assertIn(
302
+ "Input should be a valid string [type=string_type, input_value=None, input_type=NoneType]",
303
+ str(exception.exception),
304
+ "Expected a validation error about allowed values for instructions"
305
+ )
302
306
 
303
307
 
304
308
  def test_create_agent_autopublish(self):
@@ -1,8 +1,7 @@
1
1
  from unittest import TestCase
2
- import unittest
3
2
  from pygeai.lab.managers import AILabManager
4
3
  from pygeai.lab.models import SharingLink
5
- from pygeai.core.common.exceptions import MissingRequirementException
4
+ from pygeai.core.common.exceptions import APIError, MissingRequirementException
6
5
 
7
6
  ai_lab_manager: AILabManager
8
7
 
@@ -10,12 +9,10 @@ class TestAILabCreateSharingLinkIntegration(TestCase):
10
9
 
11
10
  def setUp(self):
12
11
  self.ai_lab_manager = AILabManager(alias="beta")
13
- self.project_id = "be4889df-cacc-4e6f-b3bb-153c4ac0d168"
14
12
  self.agent_id = "0026e53d-ea78-4cac-af9f-12650e5bb6d9"
15
13
 
16
- def __create_sharing_link(self, agent_id=None, project_id=None):
14
+ def __create_sharing_link(self, agent_id=None):
17
15
  return self.ai_lab_manager.create_sharing_link(
18
- project_id=self.project_id if project_id is None else project_id,
19
16
  agent_id=self.agent_id if agent_id is None else agent_id
20
17
  )
21
18
 
@@ -49,16 +46,6 @@ class TestAILabCreateSharingLinkIntegration(TestCase):
49
46
  )
50
47
 
51
48
 
52
- def test_create_sharing_link_no_project(self):
53
- with self.assertRaises(MissingRequirementException) as context:
54
- self.__create_sharing_link(project_id="")
55
- self.assertEqual(
56
- str(context.exception),
57
- "Cannot create sharing link without specifying project_id",
58
- "Expected exception for missing project_id"
59
- )
60
-
61
-
62
49
  def test_create_sharing_link_no_agent_id(self):
63
50
  with self.assertRaises(MissingRequirementException) as context:
64
51
  self.__create_sharing_link(agent_id="")
@@ -68,34 +55,13 @@ class TestAILabCreateSharingLinkIntegration(TestCase):
68
55
  "Expected exception for missing agent_id"
69
56
  )
70
57
 
71
- @unittest.skip("A descriptive error exception is expected")
72
- def test_create_sharing_link_invalid_agent_id(self):
73
- invalid_id = "0026e53d-ea78-4cac-af9f-12650invalid"
74
- shared_link = self.__create_sharing_link(agent_id=invalid_id)
75
58
 
76
- """ self.assertEqual(
77
- deleted_agent.content["messages"][0]["description"],
59
+ def test_create_sharing_link_invalid_agent_id(self):
60
+ with self.assertRaises(APIError) as exception:
61
+ invalid_id = "0026e53d-ea78-4cac-af9f-12650invalid"
62
+ self.__create_sharing_link(agent_id=invalid_id)
63
+ self.assertIn(
78
64
  f"Agent not found [IdOrName= {invalid_id}].",
65
+ str(exception.exception),
79
66
  "Expected error message for invalid agent id"
80
- ) """
81
-
82
-
83
- def test_create_sharing_link_invalid_project_id(self):
84
- invalid_id = "0026e53d-ea78-4cac-af9f-12650invalid"
85
- shared_link = self.__create_sharing_link(project_id=invalid_id)
86
-
87
- self.assertIsInstance(shared_link, SharingLink, "Expected response to be an instance of SharingLink")
88
-
89
- self.assertEqual(
90
- shared_link.agent_id,
91
- self.agent_id,
92
- "Returned agentId should match the requested agent_id"
93
- )
94
- self.assertTrue(
95
- shared_link.api_token.startswith("shared-"),
96
- "apiToken should start with 'shared-'"
97
- )
98
- self.assertTrue(
99
- shared_link.shared_link.startswith("https://"),
100
- "sharedLink should be a valid URL"
101
67
  )
@@ -2,7 +2,7 @@ from unittest import TestCase
2
2
  import uuid
3
3
  from pygeai.lab.managers import AILabManager
4
4
  from pygeai.lab.models import Agent, AgentData, Prompt, LlmConfig, Model
5
- from pygeai.core.common.exceptions import APIError
5
+ from pygeai.core.common.exceptions import InvalidAPIResponseException
6
6
 
7
7
  ai_lab_manager: AILabManager
8
8
 
@@ -10,7 +10,6 @@ class TestAILabDeleteAgentIntegration(TestCase):
10
10
 
11
11
  def setUp(self):
12
12
  self.ai_lab_manager = AILabManager(alias="beta")
13
- self.project_id = "be4889df-cacc-4e6f-b3bb-153c4ac0d168"
14
13
 
15
14
 
16
15
  def __create_agent(self):
@@ -36,13 +35,11 @@ class TestAILabDeleteAgentIntegration(TestCase):
36
35
 
37
36
 
38
37
  return self.ai_lab_manager.create_agent(
39
- project_id=self.project_id,
40
38
  agent=agent
41
39
  )
42
40
 
43
- def __delete_agent(self, agent_id: str, project_id=None):
41
+ def __delete_agent(self, agent_id: str):
44
42
  return self.ai_lab_manager.delete_agent(
45
- project_id=self.project_id if project_id is None else project_id,
46
43
  agent_id=agent_id
47
44
  )
48
45
 
@@ -58,19 +55,8 @@ class TestAILabDeleteAgentIntegration(TestCase):
58
55
  )
59
56
 
60
57
 
61
- def test_delete_agent_no_project(self):
62
- create_agent = self.__create_agent()
63
- deleted_agent = self.__delete_agent(agent_id=create_agent.id, project_id="")
64
-
65
- self.assertEqual(
66
- deleted_agent.content,
67
- "Agent deleted successfully",
68
- "Expected confirmation message after deletion even with missing project_id"
69
- )
70
-
71
-
72
58
  def test_delete_agent_no_agent_id(self):
73
- with self.assertRaises(APIError) as exception:
59
+ with self.assertRaises(InvalidAPIResponseException) as exception:
74
60
  self.__delete_agent(agent_id="")
75
61
 
76
62
  self.assertIn("405",str(exception.exception))
@@ -79,22 +65,11 @@ class TestAILabDeleteAgentIntegration(TestCase):
79
65
 
80
66
  def test_delete_agent_invalid_agent_id(self):
81
67
  invalid_id = "0026e53d-ea78-4cac-af9f-12650invalid"
82
- deleted_agent = self.__delete_agent(agent_id=invalid_id)
68
+ with self.assertRaises(InvalidAPIResponseException) as exception:
69
+ self.__delete_agent(agent_id=invalid_id)
83
70
 
84
- self.assertEqual(
85
- deleted_agent.content["messages"][0]["description"],
71
+ self.assertIn(
86
72
  f"Agent not found [IdOrName= {invalid_id}].",
73
+ str(exception.exception),
87
74
  "Expected error message for invalid agent id"
88
- )
89
-
90
-
91
- def test_delete_agent_invalid_project_id(self):
92
- invalid_id = "0026e53d-ea78-4cac-af9f-12650invalid"
93
- create_agent = self.__create_agent()
94
- deleted_agent = self.__delete_agent(agent_id=create_agent.id, project_id=invalid_id)
95
-
96
- self.assertEqual(
97
- deleted_agent.content,
98
- "Agent deleted successfully",
99
- "Expected confirmation message after deletion even with invalid project id"
100
75
  )
@@ -15,16 +15,14 @@ class TestAILabGetAgentIntegration(TestCase):
15
15
 
16
16
  def setUp(self):
17
17
  self.ai_lab_manager = AILabManager(alias="beta")
18
- self.project_id = "be4889df-cacc-4e6f-b3bb-153c4ac0d168"
19
18
  self.agent_id = "0026e53d-ea78-4cac-af9f-12650e5bb6d9"
20
19
  self.filter_settings = FilterSettings(
21
20
  revision="0",
22
21
  version="0"
23
22
  )
24
23
 
25
- def __get_agent(self, project_id=None, agent_id=None, filter_settings: FilterSettings = None):
24
+ def __get_agent(self, agent_id=None, filter_settings: FilterSettings = None):
26
25
  return self.ai_lab_manager.get_agent(
27
- project_id=self.project_id if project_id is None else project_id,
28
26
  agent_id=self.agent_id if agent_id is None else agent_id,
29
27
  filter_settings=self.filter_settings if filter_settings is None else filter_settings
30
28
  )
@@ -38,17 +36,7 @@ class TestAILabGetAgentIntegration(TestCase):
38
36
  hasattr(agent, attr),
39
37
  f"Agent should have an '{attr}' attribute"
40
38
  )
41
-
42
-
43
- def test_get_agent_no_project(self):
44
- with self.assertRaises(MissingRequirementException) as excepcion:
45
- self.__get_agent(project_id="")
46
- self.assertIn(
47
- "Cannot retrieve agent without specifying project_id",
48
- str(excepcion.exception),
49
- "Expected exception for missing project_id"
50
- )
51
-
39
+
52
40
 
53
41
  def test_get_agent_no_agent_id(self):
54
42
  with self.assertRaises(Exception) as context:
@@ -10,13 +10,11 @@ class TestAILabPublishAgentRevisionIntegration(TestCase):
10
10
 
11
11
  def setUp(self):
12
12
  self.ai_lab_manager = AILabManager(alias="beta")
13
- self.project_id = "be4889df-cacc-4e6f-b3bb-153c4ac0d168"
14
13
  self.agent_id = "b4b09935-2ad2-42c0-bd55-1ee6fa4b6034"
15
14
 
16
15
 
17
- def __publish_agent_revision(self, revision: str, project_id=None, agent_id=None):
16
+ def __publish_agent_revision(self, revision: str, agent_id=None):
18
17
  return self.ai_lab_manager.publish_agent_revision(
19
- project_id=self.project_id if project_id is None else project_id,
20
18
  agent_id=self.agent_id if agent_id is None else agent_id,
21
19
  revision=revision
22
20
  )
@@ -62,7 +60,6 @@ class TestAILabPublishAgentRevisionIntegration(TestCase):
62
60
  """
63
61
  agent = self.__load_agent()
64
62
  return self.ai_lab_manager.update_agent(
65
- project_id=self.project_id,
66
63
  agent=agent,
67
64
  automatic_publish=False,
68
65
  upsert=False
@@ -77,7 +74,7 @@ class TestAILabPublishAgentRevisionIntegration(TestCase):
77
74
  self.assertEqual(published_agent.revision, new_revision, "Expected last revision to be published")
78
75
 
79
76
 
80
- def test_publish_agent_earlier_revision(self):
77
+ def test_publish_agent_earlier_revision_with_newer_revision_published(self):
81
78
  with self.assertRaises(APIError) as exception:
82
79
  self.__publish_agent_revision(revision="1")
83
80
  self.assertIn(
@@ -87,6 +84,15 @@ class TestAILabPublishAgentRevisionIntegration(TestCase):
87
84
  )
88
85
 
89
86
 
87
+ def test_publish_agent_earlier_revision(self):
88
+ earlier_revision = (self.__update_agent()).revision
89
+ self.__update_agent()
90
+ published_agent = self.__publish_agent_revision(revision=earlier_revision)
91
+
92
+ self.assertFalse(published_agent.is_draft, "Expected draft to be false after publishing the revision")
93
+ self.assertEqual(published_agent.revision, earlier_revision, "Expected last revision to be published")
94
+
95
+
90
96
  def test_publish_agent_invalid_revision(self):
91
97
  with self.assertRaises(APIError) as exception:
92
98
  self.__publish_agent_revision(revision="10000000")
@@ -119,21 +125,4 @@ class TestAILabPublishAgentRevisionIntegration(TestCase):
119
125
  with self.assertRaises(APIError) as exception:
120
126
  self.__publish_agent_revision(revision="103", agent_id="")
121
127
  self.assertIn("Not Found", str(exception.exception))
122
- self.assertIn("404", str(exception.exception))
123
-
124
-
125
- def test_publish_agent_invalid_project_id(self):
126
- new_revision = (self.__update_agent()).revision
127
- invalid_id = "0026e53d-ea78-4cac-af9f-12650invalid"
128
- published_agent = self.__publish_agent_revision(revision=new_revision, project_id=invalid_id)
129
-
130
- self.assertFalse(published_agent.is_draft, "Expected draft to be false after publishing the revision")
131
- self.assertEqual(published_agent.revision, new_revision, "Expected last revision to be published")
132
-
133
-
134
- def test_publish_agent_no_project_id(self):
135
- new_revision = (self.__update_agent()).revision
136
- published_agent = self.__publish_agent_revision(revision=new_revision, project_id="")
137
-
138
- self.assertFalse(published_agent.is_draft, "Expected draft to be false after publishing the revision")
139
- self.assertEqual(published_agent.revision, new_revision, "Expected last revision to be published")
128
+ self.assertIn("404", str(exception.exception))
@@ -12,7 +12,6 @@ class TestAILabUpdateAgentIntegration(TestCase):
12
12
  Set up the test environment.
13
13
  """
14
14
  self.ai_lab_manager = AILabManager(alias="beta")
15
- self.project_id = "be4889df-cacc-4e6f-b3bb-153c4ac0d168"
16
15
 
17
16
  load_agent = self.__load_agent()
18
17
  self.agent_to_update = load_agent["agent"]
@@ -61,7 +60,6 @@ class TestAILabUpdateAgentIntegration(TestCase):
61
60
  If automatic_publish is None, do not pass it (useful for tests that omit it).
62
61
  """
63
62
  return self.ai_lab_manager.update_agent(
64
- project_id=self.project_id,
65
63
  agent=self.agent_to_update if agent is None else agent,
66
64
  automatic_publish=automatic_publish,
67
65
  upsert=upsert
@@ -85,7 +83,7 @@ class TestAILabUpdateAgentIntegration(TestCase):
85
83
  self.assertTrue(updated_agent.is_draft, "gemini/gemini-1.5-flash-8b-exp-0827")
86
84
 
87
85
  self.agent_to_update.agent_data.models[0].name = "openai/gpt-4-turbo-preview"
88
- updated_agent = self.__update_agent()
86
+ self.__update_agent()
89
87
 
90
88
 
91
89
  def test_update_agent_no_name(self):
@@ -119,7 +117,7 @@ class TestAILabUpdateAgentIntegration(TestCase):
119
117
  )
120
118
 
121
119
 
122
- def test_update_agent_invalidName_name(self):
120
+ def test_update_agent_invalid_name(self):
123
121
  test_params = [ True, False ]
124
122
  self.agent_to_update.name = f"{self.agent_to_update.name}:/"
125
123
 
@@ -241,6 +239,7 @@ class TestAILabUpdateAgentIntegration(TestCase):
241
239
  "Expected a validation error about allowed values for model name"
242
240
  )
243
241
 
242
+
244
243
  def test_update_agent_autopublish(self):
245
244
  updated_agent = self.__update_agent(automatic_publish=True)
246
245
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pygeai
3
- Version: 0.2.7b46
3
+ Version: 0.2.7b47
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
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "pygeai"
7
- version = "0.2.7b46"
7
+ version = "0.2.7b47"
8
8
  description = "Software Development Kit to interact with Globant Enterprise AI."
9
9
  license = "MIT"
10
10
  requires-python = ">=3.10"
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes