pygeai 0.3.2__tar.gz → 0.4.0__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 (517) hide show
  1. {pygeai-0.3.2/pygeai.egg-info → pygeai-0.4.0}/PKG-INFO +1 -1
  2. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/__init__.py +1 -1
  3. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/chat/ui.py +0 -1
  4. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/cli/__init__.py +1 -1
  5. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/cli/commands/chat.py +54 -56
  6. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/cli/commands/lab/ai_lab.py +129 -466
  7. pygeai-0.4.0/pygeai/cli/commands/lab/options.py +8 -0
  8. pygeai-0.4.0/pygeai/cli/commands/lab/utils.py +13 -0
  9. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/cli/geai.py +5 -2
  10. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/cli/texts/help.py +12 -0
  11. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/core/common/config.py +0 -2
  12. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/core/common/exceptions.py +6 -0
  13. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/lab/agents/clients.py +30 -61
  14. pygeai-0.4.0/pygeai/lab/clients.py +20 -0
  15. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/lab/managers.py +6 -58
  16. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/lab/processes/clients.py +81 -129
  17. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/lab/strategies/clients.py +11 -17
  18. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/lab/tools/clients.py +59 -59
  19. pygeai-0.4.0/pygeai/tests/integration/assistants/rag/test_create_rag.py +72 -0
  20. pygeai-0.4.0/pygeai/tests/integration/chat/test_generate_image.py +162 -0
  21. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/integration/lab/agents/test_create_agent.py +9 -13
  22. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/integration/lab/agents/test_publish_agent_revision.py +0 -1
  23. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/integration/lab/agents/test_update_agent.py +6 -15
  24. pygeai-0.4.0/pygeai/tests/integration/lab/tools/test_create_tool.py +292 -0
  25. pygeai-0.4.0/pygeai/tests/integration/lab/tools/test_delete_tool.py +87 -0
  26. pygeai-0.4.0/pygeai/tests/integration/lab/tools/test_get_parameter.py +98 -0
  27. pygeai-0.4.0/pygeai/tests/integration/lab/tools/test_get_tool.py +91 -0
  28. pygeai-0.4.0/pygeai/tests/integration/lab/tools/test_list_tools.py +106 -0
  29. pygeai-0.4.0/pygeai/tests/integration/lab/tools/test_publish_tool_revision.py +119 -0
  30. pygeai-0.4.0/pygeai/tests/integration/lab/tools/test_set_parameter.py +114 -0
  31. pygeai-0.4.0/pygeai/tests/integration/lab/tools/test_update_tool.py +268 -0
  32. pygeai-0.4.0/pygeai/tests/snippets/lab/agents/create_agent_edge_case.py +48 -0
  33. pygeai-0.4.0/pygeai/tests/snippets/lab/agents/create_agent_without_instructions.py +48 -0
  34. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/snippets/lab/agents/get_sharing_link.py +1 -2
  35. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/snippets/lab/tools/create_tool.py +1 -1
  36. pygeai-0.4.0/pygeai/tests/snippets/lab/tools/create_tool_edge_case.py +50 -0
  37. pygeai-0.4.0/pygeai/tests/snippets/secrets/__init__.py +0 -0
  38. pygeai-0.4.0/pygeai/tests/snippets/usage_limit/__init__.py +0 -0
  39. pygeai-0.4.0/pygeai/vendor/a2a/auth/__init__.py +0 -0
  40. pygeai-0.4.0/pygeai/vendor/a2a/py.typed +0 -0
  41. {pygeai-0.3.2 → pygeai-0.4.0/pygeai.egg-info}/PKG-INFO +1 -1
  42. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai.egg-info/SOURCES.txt +20 -0
  43. {pygeai-0.3.2 → pygeai-0.4.0}/pyproject.toml +1 -1
  44. {pygeai-0.3.2 → pygeai-0.4.0}/LICENSE +0 -0
  45. {pygeai-0.3.2 → pygeai-0.4.0}/MANIFEST.in +0 -0
  46. {pygeai-0.3.2 → pygeai-0.4.0}/README.md +0 -0
  47. {pygeai-0.3.2 → pygeai-0.4.0}/docs/geai-proxy/README.md +0 -0
  48. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/admin/__init__.py +0 -0
  49. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/admin/clients.py +0 -0
  50. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/admin/endpoints.py +0 -0
  51. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/assistant/__init__.py +0 -0
  52. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/assistant/clients.py +0 -0
  53. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/assistant/data/__init__.py +0 -0
  54. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/assistant/data/clients.py +0 -0
  55. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/assistant/data_analyst/__init__.py +0 -0
  56. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/assistant/data_analyst/clients.py +0 -0
  57. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/assistant/data_analyst/endpoints.py +0 -0
  58. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/assistant/endpoints.py +0 -0
  59. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/assistant/managers.py +0 -0
  60. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/assistant/mappers.py +0 -0
  61. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/assistant/rag/__init__.py +0 -0
  62. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/assistant/rag/clients.py +0 -0
  63. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/assistant/rag/endpoints.py +0 -0
  64. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/assistant/rag/mappers.py +0 -0
  65. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/assistant/rag/models.py +0 -0
  66. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/assistant/rag/responses.py +0 -0
  67. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/chat/__init__.py +0 -0
  68. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/chat/clients.py +0 -0
  69. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/chat/endpoints.py +0 -0
  70. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/chat/iris.py +0 -0
  71. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/chat/managers.py +0 -0
  72. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/chat/session.py +0 -0
  73. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/chat/settings.py +0 -0
  74. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/cli/__main__.py +0 -0
  75. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/cli/commands/__init__.py +0 -0
  76. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/cli/commands/admin.py +0 -0
  77. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/cli/commands/assistant.py +0 -0
  78. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/cli/commands/base.py +0 -0
  79. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/cli/commands/builders.py +0 -0
  80. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/cli/commands/common.py +0 -0
  81. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/cli/commands/configuration.py +0 -0
  82. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/cli/commands/embeddings.py +0 -0
  83. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/cli/commands/evaluation.py +0 -0
  84. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/cli/commands/feedback.py +0 -0
  85. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/cli/commands/files.py +0 -0
  86. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/cli/commands/flows/__init__.py +0 -0
  87. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/cli/commands/gam.py +0 -0
  88. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/cli/commands/lab/__init__.py +0 -0
  89. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/cli/commands/lab/common.py +0 -0
  90. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/cli/commands/lab/spec.py +0 -0
  91. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/cli/commands/llm.py +0 -0
  92. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/cli/commands/migrate.py +0 -0
  93. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/cli/commands/options.py +0 -0
  94. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/cli/commands/organization.py +0 -0
  95. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/cli/commands/rag.py +0 -0
  96. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/cli/commands/rerank.py +0 -0
  97. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/cli/commands/secrets.py +0 -0
  98. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/cli/commands/usage_limits.py +0 -0
  99. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/cli/commands/validators.py +0 -0
  100. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/cli/commands/version.py +0 -0
  101. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/cli/geai_proxy.py +0 -0
  102. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/cli/install_man.py +0 -0
  103. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/cli/parsers.py +0 -0
  104. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/cli/texts/__init__.py +0 -0
  105. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/core/__init__.py +0 -0
  106. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/core/base/__init__.py +0 -0
  107. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/core/base/clients.py +0 -0
  108. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/core/base/mappers.py +0 -0
  109. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/core/base/models.py +0 -0
  110. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/core/base/responses.py +0 -0
  111. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/core/base/session.py +0 -0
  112. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/core/common/__init__.py +0 -0
  113. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/core/common/decorators.py +0 -0
  114. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/core/embeddings/__init__.py +0 -0
  115. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/core/embeddings/clients.py +0 -0
  116. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/core/embeddings/endpoints.py +0 -0
  117. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/core/embeddings/managers.py +0 -0
  118. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/core/embeddings/mappers.py +0 -0
  119. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/core/embeddings/models.py +0 -0
  120. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/core/embeddings/responses.py +0 -0
  121. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/core/feedback/__init__.py +0 -0
  122. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/core/feedback/clients.py +0 -0
  123. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/core/feedback/endpoints.py +0 -0
  124. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/core/feedback/models.py +0 -0
  125. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/core/files/__init__.py +0 -0
  126. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/core/files/clients.py +0 -0
  127. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/core/files/endpoints.py +0 -0
  128. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/core/files/managers.py +0 -0
  129. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/core/files/mappers.py +0 -0
  130. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/core/files/models.py +0 -0
  131. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/core/files/responses.py +0 -0
  132. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/core/handlers.py +0 -0
  133. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/core/llm/__init__.py +0 -0
  134. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/core/llm/clients.py +0 -0
  135. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/core/llm/endpoints.py +0 -0
  136. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/core/models.py +0 -0
  137. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/core/plugins/__init__.py +0 -0
  138. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/core/plugins/clients.py +0 -0
  139. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/core/plugins/endpoints.py +0 -0
  140. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/core/plugins/models.py +0 -0
  141. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/core/rerank/__init__.py +0 -0
  142. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/core/rerank/clients.py +0 -0
  143. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/core/rerank/endpoints.py +0 -0
  144. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/core/rerank/managers.py +0 -0
  145. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/core/rerank/mappers.py +0 -0
  146. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/core/rerank/models.py +0 -0
  147. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/core/responses.py +0 -0
  148. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/core/secrets/__init__.py +0 -0
  149. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/core/secrets/clients.py +0 -0
  150. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/core/secrets/endpoints.py +0 -0
  151. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/core/services/__init__.py +0 -0
  152. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/core/services/llm/__init__.py +0 -0
  153. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/core/services/llm/model.py +0 -0
  154. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/core/services/llm/providers.py +0 -0
  155. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/core/services/response.py +0 -0
  156. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/core/services/rest.py +0 -0
  157. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/core/singleton.py +0 -0
  158. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/core/utils/__init__.py +0 -0
  159. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/core/utils/console.py +0 -0
  160. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/dbg/__init__.py +0 -0
  161. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/dbg/debugger.py +0 -0
  162. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/evaluation/__init__.py +0 -0
  163. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/evaluation/clients.py +0 -0
  164. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/evaluation/dataset/__init__.py +0 -0
  165. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/evaluation/dataset/clients.py +0 -0
  166. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/evaluation/dataset/endpoints.py +0 -0
  167. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/evaluation/plan/__init__.py +0 -0
  168. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/evaluation/plan/clients.py +0 -0
  169. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/evaluation/plan/endpoints.py +0 -0
  170. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/evaluation/result/__init__.py +0 -0
  171. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/evaluation/result/clients.py +0 -0
  172. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/evaluation/result/endpoints.py +0 -0
  173. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/flows/__init__.py +0 -0
  174. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/flows/endpoints.py +0 -0
  175. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/flows/models.py +0 -0
  176. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/gam/__init__.py +0 -0
  177. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/gam/clients.py +0 -0
  178. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/gam/endpoints.py +0 -0
  179. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/health/__init__.py +0 -0
  180. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/health/clients.py +0 -0
  181. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/health/endpoints.py +0 -0
  182. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/lab/__init__.py +0 -0
  183. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/lab/agents/__init__.py +0 -0
  184. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/lab/agents/endpoints.py +0 -0
  185. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/lab/agents/mappers.py +0 -0
  186. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/lab/constants.py +0 -0
  187. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/lab/models.py +0 -0
  188. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/lab/processes/__init__.py +0 -0
  189. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/lab/processes/endpoints.py +0 -0
  190. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/lab/processes/mappers.py +0 -0
  191. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/lab/runners.py +0 -0
  192. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/lab/spec/__init__.py +0 -0
  193. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/lab/spec/loader.py +0 -0
  194. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/lab/spec/parsers.py +0 -0
  195. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/lab/strategies/__init__.py +0 -0
  196. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/lab/strategies/endpoints.py +0 -0
  197. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/lab/strategies/mappers.py +0 -0
  198. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/lab/tools/__init__.py +0 -0
  199. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/lab/tools/endpoints.py +0 -0
  200. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/lab/tools/mappers.py +0 -0
  201. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/man/__init__.py +0 -0
  202. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/man/man1/__init__.py +0 -0
  203. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/man/man1/geai-proxy.1 +0 -0
  204. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/man/man1/geai.1 +0 -0
  205. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/migration/__init__.py +0 -0
  206. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/migration/strategies.py +0 -0
  207. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/migration/tools.py +0 -0
  208. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/organization/__init__.py +0 -0
  209. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/organization/clients.py +0 -0
  210. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/organization/endpoints.py +0 -0
  211. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/organization/limits/__init__.py +0 -0
  212. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/organization/limits/clients.py +0 -0
  213. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/organization/limits/endpoints.py +0 -0
  214. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/organization/limits/managers.py +0 -0
  215. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/organization/limits/mappers.py +0 -0
  216. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/organization/managers.py +0 -0
  217. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/organization/mappers.py +0 -0
  218. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/organization/responses.py +0 -0
  219. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/proxy/__init__.py +0 -0
  220. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/proxy/clients.py +0 -0
  221. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/proxy/config.py +0 -0
  222. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/proxy/managers.py +0 -0
  223. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/proxy/servers.py +0 -0
  224. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/proxy/tool.py +0 -0
  225. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/__init__.py +0 -0
  226. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/admin/__init__.py +0 -0
  227. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/admin/test_clients.py +0 -0
  228. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/assistants/__init__.py +0 -0
  229. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/assistants/rag/__init__.py +0 -0
  230. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/assistants/rag/test_clients.py +0 -0
  231. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/assistants/rag/test_mappers.py +0 -0
  232. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/assistants/rag/test_models.py +0 -0
  233. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/assistants/test_clients.py +0 -0
  234. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/assistants/test_managers.py +0 -0
  235. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/assistants/test_mappers.py +0 -0
  236. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/chat/__init__.py +0 -0
  237. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/chat/test_clients.py +0 -0
  238. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/chat/test_iris.py +0 -0
  239. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/chat/test_session.py +0 -0
  240. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/chat/test_ui.py +0 -0
  241. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/cli/__init__.py +0 -0
  242. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/cli/commands/__init__.py +0 -0
  243. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/cli/commands/lab/__init__.py +0 -0
  244. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/cli/commands/lab/test_ai_lab.py +0 -0
  245. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/cli/commands/lab/test_common.py +0 -0
  246. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/cli/commands/lab/test_spec.py +0 -0
  247. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/cli/commands/test_assistant.py +0 -0
  248. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/cli/commands/test_chat.py +0 -0
  249. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/cli/commands/test_common.py +0 -0
  250. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/cli/commands/test_embeddings.py +0 -0
  251. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/cli/commands/test_feedback.py +0 -0
  252. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/cli/commands/test_files.py +0 -0
  253. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/cli/commands/test_gam.py +0 -0
  254. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/cli/commands/test_llm.py +0 -0
  255. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/cli/commands/test_migrate.py +0 -0
  256. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/cli/commands/test_organization.py +0 -0
  257. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/cli/commands/test_rag.py +0 -0
  258. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/cli/commands/test_rerank.py +0 -0
  259. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/cli/commands/test_show_help.py +0 -0
  260. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/cli/commands/test_usage_limits.py +0 -0
  261. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/cli/commands/test_validators.py +0 -0
  262. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/cli/commands/test_version.py +0 -0
  263. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/cli/test_parsers.py +0 -0
  264. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/core/__init__.py +0 -0
  265. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/core/base/__init__.py +0 -0
  266. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/core/base/data/__init__.py +0 -0
  267. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/core/base/data/mappers.py +0 -0
  268. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/core/base/data/models.py +0 -0
  269. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/core/base/test_mappers.py +0 -0
  270. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/core/base/test_models.py +0 -0
  271. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/core/common/__init__.py +0 -0
  272. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/core/common/data/__init__.py +0 -0
  273. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/core/common/test_config.py +0 -0
  274. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/core/common/test_decorators.py +0 -0
  275. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/core/embeddings/__init__.py +0 -0
  276. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/core/embeddings/test_clients.py +0 -0
  277. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/core/feedback/__init__.py +0 -0
  278. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/core/feedback/test_clients.py +0 -0
  279. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/core/files/__init__.py +0 -0
  280. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/core/files/test_clients.py +0 -0
  281. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/core/files/test_managers.py +0 -0
  282. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/core/files/test_models.py +0 -0
  283. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/core/files/test_responses.py +0 -0
  284. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/core/llm/__init__.py +0 -0
  285. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/core/llm/test_clients.py +0 -0
  286. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/core/rerank/__init__.py +0 -0
  287. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/core/rerank/test_clients.py +0 -0
  288. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/core/rerank/test_managers.py +0 -0
  289. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/core/rerank/test_mappers.py +0 -0
  290. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/core/secrets/__init__.py +0 -0
  291. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/core/secrets/test_clients.py +0 -0
  292. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/core/services/__init__.py +0 -0
  293. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/core/services/test_rest.py +0 -0
  294. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/core/test_handlers.py +0 -0
  295. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/core/utils/__init__.py +0 -0
  296. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/core/utils/test_console.py +0 -0
  297. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/dbg/__init__.py +0 -0
  298. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/dbg/test_debugger.py +0 -0
  299. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/gam/__init__.py +0 -0
  300. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/gam/test_clients.py +0 -0
  301. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/health/__init__.py +0 -0
  302. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/health/test_clients.py +0 -0
  303. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/integration/__init__.py +0 -0
  304. {pygeai-0.3.2/pygeai/tests/integration/lab → pygeai-0.4.0/pygeai/tests/integration/assistants}/__init__.py +0 -0
  305. {pygeai-0.3.2/pygeai/tests/integration/lab/agents → pygeai-0.4.0/pygeai/tests/integration/assistants/rag}/__init__.py +0 -0
  306. {pygeai-0.3.2/pygeai/tests/lab → pygeai-0.4.0/pygeai/tests/integration/chat}/__init__.py +0 -0
  307. {pygeai-0.3.2/pygeai/tests/lab/agents → pygeai-0.4.0/pygeai/tests/integration/lab}/__init__.py +0 -0
  308. {pygeai-0.3.2/pygeai/tests/lab/processes → pygeai-0.4.0/pygeai/tests/integration/lab/agents}/__init__.py +0 -0
  309. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/integration/lab/agents/test_agents_list.py +0 -0
  310. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/integration/lab/agents/test_create_sharing_link.py +0 -0
  311. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/integration/lab/agents/test_delete_agent.py +0 -0
  312. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/integration/lab/agents/test_get_agent.py +0 -0
  313. {pygeai-0.3.2/pygeai/tests/lab/spec → pygeai-0.4.0/pygeai/tests/integration/lab/tools}/__init__.py +0 -0
  314. {pygeai-0.3.2/pygeai/tests/lab/strategies → pygeai-0.4.0/pygeai/tests/lab}/__init__.py +0 -0
  315. {pygeai-0.3.2/pygeai/tests/lab/tools → pygeai-0.4.0/pygeai/tests/lab/agents}/__init__.py +0 -0
  316. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/lab/agents/test_clients.py +0 -0
  317. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/lab/agents/test_mappers.py +0 -0
  318. {pygeai-0.3.2/pygeai/tests/migration → pygeai-0.4.0/pygeai/tests/lab/processes}/__init__.py +0 -0
  319. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/lab/processes/test_clients.py +0 -0
  320. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/lab/processes/test_mappers.py +0 -0
  321. {pygeai-0.3.2/pygeai/tests/organization → pygeai-0.4.0/pygeai/tests/lab/spec}/__init__.py +0 -0
  322. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/lab/spec/test_loader.py +0 -0
  323. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/lab/spec/test_parsers.py +0 -0
  324. {pygeai-0.3.2/pygeai/tests/organization/limits → pygeai-0.4.0/pygeai/tests/lab/strategies}/__init__.py +0 -0
  325. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/lab/strategies/test_clients.py +0 -0
  326. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/lab/strategies/test_mappers.py +0 -0
  327. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/lab/test_managers.py +0 -0
  328. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/lab/test_mappers.py +0 -0
  329. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/lab/test_models.py +0 -0
  330. {pygeai-0.3.2/pygeai/tests/snippets → pygeai-0.4.0/pygeai/tests/lab/tools}/__init__.py +0 -0
  331. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/lab/tools/test_clients.py +0 -0
  332. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/lab/tools/test_mappers.py +0 -0
  333. {pygeai-0.3.2/pygeai/tests/snippets/assistants → pygeai-0.4.0/pygeai/tests/migration}/__init__.py +0 -0
  334. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/migration/test_strategies.py +0 -0
  335. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/migration/test_tools.py +0 -0
  336. {pygeai-0.3.2/pygeai/tests/snippets/assistants/data_analyst → pygeai-0.4.0/pygeai/tests/organization}/__init__.py +0 -0
  337. {pygeai-0.3.2/pygeai/tests/snippets/assistants/rag → pygeai-0.4.0/pygeai/tests/organization/limits}/__init__.py +0 -0
  338. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/organization/limits/test_clients.py +0 -0
  339. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/organization/limits/test_managers.py +0 -0
  340. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/organization/test_clients.py +0 -0
  341. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/organization/test_managers.py +0 -0
  342. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/organization/test_mappers.py +0 -0
  343. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/proxy/__init__.py +0 -0
  344. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/proxy/test_clients.py +0 -0
  345. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/proxy/test_config.py +0 -0
  346. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/proxy/test_integration.py +0 -0
  347. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/proxy/test_managers.py +0 -0
  348. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/proxy/test_servers.py +0 -0
  349. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/proxy/test_tool.py +0 -0
  350. {pygeai-0.3.2/pygeai/tests/snippets/chat → pygeai-0.4.0/pygeai/tests/snippets}/__init__.py +0 -0
  351. {pygeai-0.3.2/pygeai/tests/snippets/embeddings → pygeai-0.4.0/pygeai/tests/snippets/assistants}/__init__.py +0 -0
  352. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/snippets/assistants/create_chat_assistant.py +0 -0
  353. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/snippets/assistants/create_text_assistant.py +0 -0
  354. {pygeai-0.3.2/pygeai/tests/snippets/evaluation → pygeai-0.4.0/pygeai/tests/snippets/assistants/data_analyst}/__init__.py +0 -0
  355. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/snippets/assistants/data_analyst/extend_and_check.py +0 -0
  356. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/snippets/assistants/data_analyst/extend_dataset.py +0 -0
  357. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/snippets/assistants/data_analyst/get_status.py +0 -0
  358. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/snippets/assistants/file_summarizer_assistant.py +0 -0
  359. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/snippets/assistants/get_assistant_data.py +0 -0
  360. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/snippets/assistants/get_assistant_list.py +0 -0
  361. {pygeai-0.3.2/pygeai/tests/snippets/files → pygeai-0.4.0/pygeai/tests/snippets/assistants/rag}/__init__.py +0 -0
  362. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/snippets/assistants/rag/create_rag_assistant.py +0 -0
  363. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/snippets/assistants/rag/delete_al_documents.py +0 -0
  364. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/snippets/assistants/rag/delete_document.py +0 -0
  365. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/snippets/assistants/rag/delete_rag_assistant.py +0 -0
  366. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/snippets/assistants/rag/get_document.py +0 -0
  367. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/snippets/assistants/rag/get_documents.py +0 -0
  368. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/snippets/assistants/rag/get_rag_assistant_data.py +0 -0
  369. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/snippets/assistants/rag/update_rag_assistant.py +0 -0
  370. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/snippets/assistants/rag/upload_document.py +0 -0
  371. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/snippets/assistants/send_feedback.py +0 -0
  372. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/snippets/assistants/update_chat_assistant.py +0 -0
  373. {pygeai-0.3.2/pygeai/tests/snippets/gam → pygeai-0.4.0/pygeai/tests/snippets/chat}/__init__.py +0 -0
  374. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/snippets/chat/cancel_request.py +0 -0
  375. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/snippets/chat/chat_completion.py +0 -0
  376. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/snippets/chat/chat_completion_1.py +0 -0
  377. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/snippets/chat/chat_completion_2.py +0 -0
  378. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/snippets/chat/chat_completion_3.py +0 -0
  379. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/snippets/chat/chat_completion_4.py +0 -0
  380. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/snippets/chat/chat_completion_streaming.py +0 -0
  381. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/snippets/chat/get_request_status.py +0 -0
  382. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/snippets/chat/send_chat_request.py +0 -0
  383. {pygeai-0.3.2/pygeai/tests/snippets/lab → pygeai-0.4.0/pygeai/tests/snippets/embeddings}/__init__.py +0 -0
  384. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/snippets/embeddings/generate_embeddings.py +0 -0
  385. {pygeai-0.3.2/pygeai/tests/snippets/lab/agents → pygeai-0.4.0/pygeai/tests/snippets/evaluation}/__init__.py +0 -0
  386. {pygeai-0.3.2/pygeai/tests/snippets/lab/processes → pygeai-0.4.0/pygeai/tests/snippets/files}/__init__.py +0 -0
  387. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/snippets/files/delete_file.py +0 -0
  388. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/snippets/files/get_file_content.py +0 -0
  389. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/snippets/files/get_file_data.py +0 -0
  390. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/snippets/files/get_file_list.py +0 -0
  391. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/snippets/files/upload_file.py +0 -0
  392. {pygeai-0.3.2/pygeai/tests/snippets/lab/processes/jobs → pygeai-0.4.0/pygeai/tests/snippets/gam}/__init__.py +0 -0
  393. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/snippets/gam/gam_access_token.py +0 -0
  394. {pygeai-0.3.2/pygeai/tests/snippets/lab/processes/kbs → pygeai-0.4.0/pygeai/tests/snippets/lab}/__init__.py +0 -0
  395. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/snippets/lab/agentic_flow_example_1.py +0 -0
  396. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/snippets/lab/agentic_flow_example_2.py +0 -0
  397. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/snippets/lab/agentic_flow_example_3.py +0 -0
  398. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/snippets/lab/agentic_flow_example_4.py +0 -0
  399. {pygeai-0.3.2/pygeai/tests/snippets/lab/samples → pygeai-0.4.0/pygeai/tests/snippets/lab/agents}/__init__.py +0 -0
  400. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/snippets/lab/agents/create_agent.py +0 -0
  401. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/snippets/lab/agents/create_agent_2.py +0 -0
  402. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/snippets/lab/agents/delete_agent.py +0 -0
  403. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/snippets/lab/agents/get_agent.py +0 -0
  404. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/snippets/lab/agents/list_agents.py +0 -0
  405. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/snippets/lab/agents/publish_agent_revision.py +0 -0
  406. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/snippets/lab/agents/update_agent.py +0 -0
  407. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/snippets/lab/assistant_to_agent.py +0 -0
  408. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/snippets/lab/crud_ui.py +0 -0
  409. {pygeai-0.3.2/pygeai/tests/snippets/lab/strategies → pygeai-0.4.0/pygeai/tests/snippets/lab/processes}/__init__.py +0 -0
  410. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/snippets/lab/processes/create_process.py +0 -0
  411. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/snippets/lab/processes/create_task.py +0 -0
  412. {pygeai-0.3.2/pygeai/tests/snippets/lab/tools → pygeai-0.4.0/pygeai/tests/snippets/lab/processes/jobs}/__init__.py +0 -0
  413. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/snippets/lab/processes/jobs/list_jobs.py +0 -0
  414. {pygeai-0.3.2/pygeai/tests/snippets/lab/use_cases → pygeai-0.4.0/pygeai/tests/snippets/lab/processes/kbs}/__init__.py +0 -0
  415. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/snippets/lab/processes/kbs/create_kb.py +0 -0
  416. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/snippets/lab/processes/kbs/get_kb.py +0 -0
  417. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/snippets/lab/processes/kbs/list_kbs.py +0 -0
  418. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/snippets/lab/processes/kbs/try_all.py +0 -0
  419. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/snippets/lab/processes/list_processes.py +0 -0
  420. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/snippets/lab/runner_1.py +0 -0
  421. {pygeai-0.3.2/pygeai/tests/snippets/migrate → pygeai-0.4.0/pygeai/tests/snippets/lab/samples}/__init__.py +0 -0
  422. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/snippets/lab/samples/summarize_files.py +0 -0
  423. {pygeai-0.3.2/pygeai/tests/snippets/organization → pygeai-0.4.0/pygeai/tests/snippets/lab/strategies}/__init__.py +0 -0
  424. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/snippets/lab/strategies/create_reasoning_strategy.py +0 -0
  425. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/snippets/lab/strategies/get_reasoning_strategy.py +0 -0
  426. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/snippets/lab/strategies/list_reasoning_strategies.py +0 -0
  427. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/snippets/lab/strategies/update_reasoning_strategy.py +0 -0
  428. {pygeai-0.3.2/pygeai/tests/snippets/rerank → pygeai-0.4.0/pygeai/tests/snippets/lab/tools}/__init__.py +0 -0
  429. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/snippets/lab/tools/delete_tool.py +0 -0
  430. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/snippets/lab/tools/get_parameter.py +0 -0
  431. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/snippets/lab/tools/get_tool.py +0 -0
  432. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/snippets/lab/tools/list_tools.py +0 -0
  433. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/snippets/lab/tools/publish_tool_revision.py +0 -0
  434. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/snippets/lab/tools/set_parameters.py +0 -0
  435. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/snippets/lab/tools/update_tool.py +0 -0
  436. {pygeai-0.3.2/pygeai/tests/snippets/secrets → pygeai-0.4.0/pygeai/tests/snippets/lab/use_cases}/__init__.py +0 -0
  437. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/snippets/lab/use_cases/c_code_fixer_agent_flow.py +0 -0
  438. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/snippets/lab/use_cases/create_cli_expert.py +0 -0
  439. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/snippets/lab/use_cases/create_lab_expert.py +0 -0
  440. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/snippets/lab/use_cases/create_tool_headless_web_browser.py +0 -0
  441. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/snippets/lab/use_cases/create_web_designer.py +0 -0
  442. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/snippets/lab/use_cases/create_web_reader.py +0 -0
  443. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/snippets/lab/use_cases/file_summarizer_example.py +0 -0
  444. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/snippets/lab/use_cases/file_summarizer_example_2.py +0 -0
  445. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/snippets/lab/use_cases/update_cli_expert.py +0 -0
  446. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/snippets/lab/use_cases/update_lab_expert.py +0 -0
  447. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/snippets/lab/use_cases/update_web_designer.py +0 -0
  448. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/snippets/lab/use_cases/update_web_reader.py +0 -0
  449. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/snippets/lab/use_cases/update_web_reader_with_tool.py +0 -0
  450. {pygeai-0.3.2/pygeai/tests/snippets/usage_limit → pygeai-0.4.0/pygeai/tests/snippets/migrate}/__init__.py +0 -0
  451. {pygeai-0.3.2/pygeai/vendor/a2a/auth → pygeai-0.4.0/pygeai/tests/snippets/organization}/__init__.py +0 -0
  452. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/snippets/organization/create_project.py +0 -0
  453. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/snippets/organization/delete_project.py +0 -0
  454. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/snippets/organization/export_request_data.py +0 -0
  455. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/snippets/organization/get_project_data.py +0 -0
  456. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/snippets/organization/get_project_list.py +0 -0
  457. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/snippets/organization/get_project_tokens.py +0 -0
  458. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/snippets/organization/update_project.py +0 -0
  459. /pygeai-0.3.2/pygeai/vendor/a2a/py.typed → /pygeai-0.4.0/pygeai/tests/snippets/rerank/__init__.py +0 -0
  460. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/snippets/rerank/rerank_chunks.py +0 -0
  461. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/snippets/usage_limit/delete_usage_limit.py +0 -0
  462. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/snippets/usage_limit/get_all_usage_limit_from_organization.py +0 -0
  463. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/snippets/usage_limit/get_usage_limit_from_organization.py +0 -0
  464. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/snippets/usage_limit/get_usage_limit_from_project.py +0 -0
  465. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/snippets/usage_limit/set_usage_limit_organization.py +0 -0
  466. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/snippets/usage_limit/set_usage_limit_project.py +0 -0
  467. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/snippets/usage_limit/update_usage_limit_organization.py +0 -0
  468. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/tests/snippets/usage_limit/update_usage_limit_project.py +0 -0
  469. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/vendor/a2a/__init__.py +0 -0
  470. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/vendor/a2a/auth/user.py +0 -0
  471. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/vendor/a2a/client/__init__.py +0 -0
  472. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/vendor/a2a/client/client.py +0 -0
  473. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/vendor/a2a/client/errors.py +0 -0
  474. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/vendor/a2a/client/helpers.py +0 -0
  475. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/vendor/a2a/server/__init__.py +0 -0
  476. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/vendor/a2a/server/agent_execution/__init__.py +0 -0
  477. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/vendor/a2a/server/agent_execution/agent_executor.py +0 -0
  478. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/vendor/a2a/server/agent_execution/context.py +0 -0
  479. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/vendor/a2a/server/agent_execution/request_context_builder.py +0 -0
  480. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/vendor/a2a/server/agent_execution/simple_request_context_builder.py +0 -0
  481. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/vendor/a2a/server/apps/__init__.py +0 -0
  482. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/vendor/a2a/server/apps/jsonrpc/__init__.py +0 -0
  483. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/vendor/a2a/server/apps/jsonrpc/fastapi_app.py +0 -0
  484. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/vendor/a2a/server/apps/jsonrpc/jsonrpc_app.py +0 -0
  485. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/vendor/a2a/server/apps/jsonrpc/starlette_app.py +0 -0
  486. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/vendor/a2a/server/context.py +0 -0
  487. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/vendor/a2a/server/events/__init__.py +0 -0
  488. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/vendor/a2a/server/events/event_consumer.py +0 -0
  489. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/vendor/a2a/server/events/event_queue.py +0 -0
  490. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/vendor/a2a/server/events/in_memory_queue_manager.py +0 -0
  491. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/vendor/a2a/server/events/queue_manager.py +0 -0
  492. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/vendor/a2a/server/request_handlers/__init__.py +0 -0
  493. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/vendor/a2a/server/request_handlers/default_request_handler.py +0 -0
  494. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/vendor/a2a/server/request_handlers/jsonrpc_handler.py +0 -0
  495. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/vendor/a2a/server/request_handlers/request_handler.py +0 -0
  496. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/vendor/a2a/server/request_handlers/response_helpers.py +0 -0
  497. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/vendor/a2a/server/tasks/__init__.py +0 -0
  498. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/vendor/a2a/server/tasks/inmemory_push_notifier.py +0 -0
  499. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/vendor/a2a/server/tasks/inmemory_task_store.py +0 -0
  500. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/vendor/a2a/server/tasks/push_notifier.py +0 -0
  501. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/vendor/a2a/server/tasks/result_aggregator.py +0 -0
  502. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/vendor/a2a/server/tasks/task_manager.py +0 -0
  503. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/vendor/a2a/server/tasks/task_store.py +0 -0
  504. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/vendor/a2a/server/tasks/task_updater.py +0 -0
  505. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/vendor/a2a/types.py +0 -0
  506. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/vendor/a2a/utils/__init__.py +0 -0
  507. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/vendor/a2a/utils/artifact.py +0 -0
  508. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/vendor/a2a/utils/errors.py +0 -0
  509. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/vendor/a2a/utils/helpers.py +0 -0
  510. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/vendor/a2a/utils/message.py +0 -0
  511. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/vendor/a2a/utils/task.py +0 -0
  512. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai/vendor/a2a/utils/telemetry.py +0 -0
  513. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai.egg-info/dependency_links.txt +0 -0
  514. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai.egg-info/entry_points.txt +0 -0
  515. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai.egg-info/requires.txt +0 -0
  516. {pygeai-0.3.2 → pygeai-0.4.0}/pygeai.egg-info/top_level.txt +0 -0
  517. {pygeai-0.3.2 → pygeai-0.4.0}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pygeai
3
- Version: 0.3.2
3
+ Version: 0.4.0
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 @@ import sys
4
4
  from pathlib import Path
5
5
 
6
6
  __author__ = 'Globant'
7
- __version__ = '0.3.2'
7
+ __version__ = '0.4.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.3.2'
7
+ __version__ = '0.4.0'
8
8
 
@@ -13,12 +13,14 @@ from pygeai.chat.session import AgentChatSession
13
13
  from pygeai.cli.commands import Command, Option, ArgumentsEnum
14
14
  from pygeai.cli.commands.builders import build_help_text
15
15
  from pygeai.cli.commands.common import get_messages, get_boolean_value, get_penalty_float_value
16
+ from pygeai.cli.commands.lab.utils import get_project_id
16
17
  from pygeai.cli.texts.help import CHAT_HELP_TEXT
17
- from pygeai.core.common.exceptions import MissingRequirementException, WrongArgumentError
18
+ from pygeai.core.common.exceptions import MissingRequirementException, WrongArgumentError, InvalidAgentException
18
19
  from prompt_toolkit import PromptSession
19
20
  from prompt_toolkit.history import InMemoryHistory
20
21
 
21
22
  from pygeai.core.utils.console import Console
23
+ from pygeai.lab.agents.clients import AgentClient
22
24
 
23
25
 
24
26
  def show_help():
@@ -359,71 +361,67 @@ def chat_with_agent(option_list: list):
359
361
  if not agent_name:
360
362
  raise MissingRequirementException(f"Agent name must be specified.")
361
363
 
364
+ project_id = get_project_id()
365
+ agent_data = AgentClient(project_id=project_id).get_agent(agent_id=agent_name)
366
+ if 'errors' in agent_data:
367
+ raise InvalidAgentException(f"There is no agent with that name: {agent_data.get('errors')}")
368
+
362
369
  if use_gui:
363
370
  try:
364
- # Check if Streamlit is installed
365
371
  import streamlit
366
372
  except ImportError:
367
373
  logger.error("Streamlit not installed")
368
374
  Console.write_stderr("Streamlit is required for GUI mode. Install it with 'pip install streamlit'.")
369
375
  sys.exit(1)
370
376
 
371
- if use_gui:
372
- try:
373
- import streamlit
374
- except ImportError:
375
- logger.error("Streamlit not installed")
376
- Console.write_stderr("Streamlit is required for GUI mode. Install it with 'pip install streamlit'.")
377
- 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
+ )
378
401
 
379
- try:
380
- ui_path = resources.files("pygeai.chat").joinpath("ui.py")
381
- ui_file_path = str(ui_path)
382
-
383
- # Add the top-level project root to PYTHONPATH
384
- package_root = str(Path(ui_file_path).resolve().parents[2])
385
- env = os.environ.copy()
386
- env["PYTHONPATH"] = package_root + os.pathsep + env.get("PYTHONPATH", "")
387
-
388
- streamlit_cmd = [
389
- sys.executable, "-m", "streamlit", "run", ui_file_path,
390
- "--server.address", "127.0.0.1",
391
- "--", "--agent-name", agent_name
392
- ]
393
-
394
- if platform.system() == "Linux":
395
- streamlit_cmd.insert(5, "--server.headless=true")
396
-
397
- process = subprocess.Popen(
398
- streamlit_cmd,
399
- stdout=subprocess.PIPE,
400
- stderr=subprocess.PIPE,
401
- text=True
402
- )
403
-
404
- url = "http://localhost:8501"
405
- if platform.system() == "Linux":
406
- Console.write_stdout(f"Open Streamlit app at {url} (or next port like 8502 if 8501 is taken)")
407
-
408
- try:
409
- stdout, stderr = process.communicate()
410
- if stderr:
411
- logger.error(f"Streamlit stderr:\n{stderr}")
412
- Console.write_stderr(f"Streamlit error:\n{stderr}")
413
- except KeyboardInterrupt:
414
- process.terminate()
415
- Console.write_stdout("Streamlit stopped.")
416
- 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)")
417
405
 
418
- except FileNotFoundError:
419
- logger.error("Could not locate pygeai/chat/ui.py")
420
- Console.write_stderr("Streamlit UI file not found. Ensure pygeai is installed correctly.")
421
- sys.exit(1)
422
- except Exception as e:
423
- logger.error(f"Streamlit error: {e}")
424
- Console.write_stderr(
425
- f"Failed to launch Streamlit. Check port with 'lsof -i :8501' and kill any process, or try {url}.")
426
- 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)
427
425
  else:
428
426
  chat_session = AgentChatSession(agent_name)
429
427
  messages = list()