pygeai 0.2.7b42__tar.gz → 0.2.7b44__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 (491) hide show
  1. {pygeai-0.2.7b42/pygeai.egg-info → pygeai-0.2.7b44}/PKG-INFO +1 -1
  2. pygeai-0.2.7b44/docs/geai-proxy/README.md +244 -0
  3. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/man/man1/geai-proxy.1 +76 -0
  4. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/proxy/managers.py +2 -2
  5. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/proxy/servers.py +5 -5
  6. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/proxy/tool.py +5 -5
  7. {pygeai-0.2.7b42 → pygeai-0.2.7b44/pygeai.egg-info}/PKG-INFO +1 -1
  8. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pyproject.toml +1 -1
  9. pygeai-0.2.7b42/docs/geai-proxy/README.md +0 -200
  10. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/LICENSE +0 -0
  11. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/MANIFEST.in +0 -0
  12. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/README.md +0 -0
  13. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/__init__.py +0 -0
  14. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/admin/__init__.py +0 -0
  15. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/admin/clients.py +0 -0
  16. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/admin/endpoints.py +0 -0
  17. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/assistant/__init__.py +0 -0
  18. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/assistant/clients.py +0 -0
  19. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/assistant/data/__init__.py +0 -0
  20. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/assistant/data/clients.py +0 -0
  21. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/assistant/data_analyst/__init__.py +0 -0
  22. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/assistant/data_analyst/clients.py +0 -0
  23. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/assistant/data_analyst/endpoints.py +0 -0
  24. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/assistant/endpoints.py +0 -0
  25. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/assistant/managers.py +0 -0
  26. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/assistant/mappers.py +0 -0
  27. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/assistant/rag/__init__.py +0 -0
  28. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/assistant/rag/clients.py +0 -0
  29. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/assistant/rag/endpoints.py +0 -0
  30. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/assistant/rag/mappers.py +0 -0
  31. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/assistant/rag/models.py +0 -0
  32. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/assistant/rag/responses.py +0 -0
  33. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/chat/__init__.py +0 -0
  34. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/chat/clients.py +0 -0
  35. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/chat/endpoints.py +0 -0
  36. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/chat/iris.py +0 -0
  37. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/chat/managers.py +0 -0
  38. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/chat/session.py +0 -0
  39. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/chat/settings.py +0 -0
  40. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/chat/ui.py +0 -0
  41. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/cli/__init__.py +0 -0
  42. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/cli/__main__.py +0 -0
  43. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/cli/commands/__init__.py +0 -0
  44. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/cli/commands/admin.py +0 -0
  45. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/cli/commands/assistant.py +0 -0
  46. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/cli/commands/base.py +0 -0
  47. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/cli/commands/builders.py +0 -0
  48. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/cli/commands/chat.py +0 -0
  49. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/cli/commands/common.py +0 -0
  50. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/cli/commands/configuration.py +0 -0
  51. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/cli/commands/embeddings.py +0 -0
  52. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/cli/commands/evaluation.py +0 -0
  53. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/cli/commands/feedback.py +0 -0
  54. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/cli/commands/files.py +0 -0
  55. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/cli/commands/flows/__init__.py +0 -0
  56. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/cli/commands/gam.py +0 -0
  57. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/cli/commands/lab/__init__.py +0 -0
  58. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/cli/commands/lab/ai_lab.py +0 -0
  59. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/cli/commands/lab/common.py +0 -0
  60. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/cli/commands/lab/spec.py +0 -0
  61. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/cli/commands/llm.py +0 -0
  62. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/cli/commands/migrate.py +0 -0
  63. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/cli/commands/options.py +0 -0
  64. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/cli/commands/organization.py +0 -0
  65. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/cli/commands/rag.py +0 -0
  66. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/cli/commands/rerank.py +0 -0
  67. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/cli/commands/secrets.py +0 -0
  68. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/cli/commands/usage_limits.py +0 -0
  69. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/cli/commands/validators.py +0 -0
  70. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/cli/commands/version.py +0 -0
  71. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/cli/geai.py +0 -0
  72. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/cli/geai_proxy.py +0 -0
  73. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/cli/install_man.py +0 -0
  74. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/cli/parsers.py +0 -0
  75. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/cli/texts/__init__.py +0 -0
  76. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/cli/texts/help.py +0 -0
  77. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/core/__init__.py +0 -0
  78. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/core/base/__init__.py +0 -0
  79. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/core/base/clients.py +0 -0
  80. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/core/base/mappers.py +0 -0
  81. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/core/base/models.py +0 -0
  82. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/core/base/responses.py +0 -0
  83. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/core/base/session.py +0 -0
  84. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/core/common/__init__.py +0 -0
  85. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/core/common/config.py +0 -0
  86. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/core/common/decorators.py +0 -0
  87. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/core/common/exceptions.py +0 -0
  88. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/core/embeddings/__init__.py +0 -0
  89. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/core/embeddings/clients.py +0 -0
  90. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/core/embeddings/endpoints.py +0 -0
  91. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/core/embeddings/managers.py +0 -0
  92. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/core/embeddings/mappers.py +0 -0
  93. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/core/embeddings/models.py +0 -0
  94. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/core/embeddings/responses.py +0 -0
  95. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/core/feedback/__init__.py +0 -0
  96. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/core/feedback/clients.py +0 -0
  97. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/core/feedback/endpoints.py +0 -0
  98. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/core/feedback/models.py +0 -0
  99. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/core/files/__init__.py +0 -0
  100. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/core/files/clients.py +0 -0
  101. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/core/files/endpoints.py +0 -0
  102. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/core/files/managers.py +0 -0
  103. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/core/files/mappers.py +0 -0
  104. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/core/files/models.py +0 -0
  105. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/core/files/responses.py +0 -0
  106. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/core/handlers.py +0 -0
  107. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/core/llm/__init__.py +0 -0
  108. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/core/llm/clients.py +0 -0
  109. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/core/llm/endpoints.py +0 -0
  110. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/core/models.py +0 -0
  111. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/core/plugins/__init__.py +0 -0
  112. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/core/plugins/clients.py +0 -0
  113. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/core/plugins/endpoints.py +0 -0
  114. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/core/plugins/models.py +0 -0
  115. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/core/rerank/__init__.py +0 -0
  116. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/core/rerank/clients.py +0 -0
  117. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/core/rerank/endpoints.py +0 -0
  118. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/core/rerank/managers.py +0 -0
  119. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/core/rerank/mappers.py +0 -0
  120. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/core/rerank/models.py +0 -0
  121. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/core/responses.py +0 -0
  122. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/core/secrets/__init__.py +0 -0
  123. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/core/secrets/clients.py +0 -0
  124. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/core/secrets/endpoints.py +0 -0
  125. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/core/services/__init__.py +0 -0
  126. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/core/services/llm/__init__.py +0 -0
  127. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/core/services/llm/model.py +0 -0
  128. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/core/services/llm/providers.py +0 -0
  129. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/core/services/response.py +0 -0
  130. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/core/services/rest.py +0 -0
  131. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/core/singleton.py +0 -0
  132. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/core/utils/__init__.py +0 -0
  133. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/core/utils/console.py +0 -0
  134. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/dbg/__init__.py +0 -0
  135. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/dbg/debugger.py +0 -0
  136. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/evaluation/__init__.py +0 -0
  137. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/evaluation/clients.py +0 -0
  138. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/evaluation/dataset/__init__.py +0 -0
  139. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/evaluation/dataset/clients.py +0 -0
  140. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/evaluation/dataset/endpoints.py +0 -0
  141. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/evaluation/plan/__init__.py +0 -0
  142. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/evaluation/plan/clients.py +0 -0
  143. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/evaluation/plan/endpoints.py +0 -0
  144. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/evaluation/result/__init__.py +0 -0
  145. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/evaluation/result/clients.py +0 -0
  146. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/evaluation/result/endpoints.py +0 -0
  147. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/flows/__init__.py +0 -0
  148. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/flows/endpoints.py +0 -0
  149. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/flows/models.py +0 -0
  150. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/gam/__init__.py +0 -0
  151. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/gam/clients.py +0 -0
  152. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/gam/endpoints.py +0 -0
  153. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/health/__init__.py +0 -0
  154. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/health/clients.py +0 -0
  155. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/health/endpoints.py +0 -0
  156. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/lab/__init__.py +0 -0
  157. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/lab/agents/__init__.py +0 -0
  158. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/lab/agents/clients.py +0 -0
  159. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/lab/agents/endpoints.py +0 -0
  160. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/lab/agents/mappers.py +0 -0
  161. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/lab/constants.py +0 -0
  162. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/lab/managers.py +0 -0
  163. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/lab/models.py +0 -0
  164. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/lab/processes/__init__.py +0 -0
  165. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/lab/processes/clients.py +0 -0
  166. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/lab/processes/endpoints.py +0 -0
  167. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/lab/processes/mappers.py +0 -0
  168. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/lab/runners.py +0 -0
  169. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/lab/spec/__init__.py +0 -0
  170. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/lab/spec/loader.py +0 -0
  171. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/lab/spec/parsers.py +0 -0
  172. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/lab/strategies/__init__.py +0 -0
  173. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/lab/strategies/clients.py +0 -0
  174. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/lab/strategies/endpoints.py +0 -0
  175. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/lab/strategies/mappers.py +0 -0
  176. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/lab/tools/__init__.py +0 -0
  177. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/lab/tools/clients.py +0 -0
  178. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/lab/tools/endpoints.py +0 -0
  179. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/lab/tools/mappers.py +0 -0
  180. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/man/__init__.py +0 -0
  181. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/man/man1/__init__.py +0 -0
  182. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/man/man1/geai.1 +0 -0
  183. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/migration/__init__.py +0 -0
  184. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/migration/strategies.py +0 -0
  185. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/migration/tools.py +0 -0
  186. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/organization/__init__.py +0 -0
  187. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/organization/clients.py +0 -0
  188. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/organization/endpoints.py +0 -0
  189. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/organization/limits/__init__.py +0 -0
  190. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/organization/limits/clients.py +0 -0
  191. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/organization/limits/endpoints.py +0 -0
  192. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/organization/limits/managers.py +0 -0
  193. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/organization/limits/mappers.py +0 -0
  194. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/organization/managers.py +0 -0
  195. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/organization/mappers.py +0 -0
  196. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/organization/responses.py +0 -0
  197. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/proxy/__init__.py +0 -0
  198. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/proxy/clients.py +0 -0
  199. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/proxy/config.py +0 -0
  200. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/__init__.py +0 -0
  201. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/admin/__init__.py +0 -0
  202. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/admin/test_clients.py +0 -0
  203. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/assistants/__init__.py +0 -0
  204. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/assistants/rag/__init__.py +0 -0
  205. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/assistants/rag/test_clients.py +0 -0
  206. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/assistants/rag/test_mappers.py +0 -0
  207. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/assistants/rag/test_models.py +0 -0
  208. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/assistants/test_clients.py +0 -0
  209. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/assistants/test_managers.py +0 -0
  210. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/assistants/test_mappers.py +0 -0
  211. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/chat/__init__.py +0 -0
  212. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/chat/test_clients.py +0 -0
  213. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/chat/test_iris.py +0 -0
  214. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/chat/test_session.py +0 -0
  215. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/chat/test_ui.py +0 -0
  216. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/cli/__init__.py +0 -0
  217. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/cli/commands/__init__.py +0 -0
  218. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/cli/commands/lab/__init__.py +0 -0
  219. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/cli/commands/lab/test_ai_lab.py +0 -0
  220. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/cli/commands/lab/test_common.py +0 -0
  221. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/cli/commands/lab/test_spec.py +0 -0
  222. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/cli/commands/test_assistant.py +0 -0
  223. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/cli/commands/test_chat.py +0 -0
  224. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/cli/commands/test_common.py +0 -0
  225. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/cli/commands/test_embeddings.py +0 -0
  226. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/cli/commands/test_feedback.py +0 -0
  227. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/cli/commands/test_files.py +0 -0
  228. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/cli/commands/test_gam.py +0 -0
  229. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/cli/commands/test_llm.py +0 -0
  230. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/cli/commands/test_migrate.py +0 -0
  231. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/cli/commands/test_organization.py +0 -0
  232. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/cli/commands/test_rag.py +0 -0
  233. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/cli/commands/test_rerank.py +0 -0
  234. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/cli/commands/test_show_help.py +0 -0
  235. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/cli/commands/test_usage_limits.py +0 -0
  236. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/cli/commands/test_validators.py +0 -0
  237. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/cli/commands/test_version.py +0 -0
  238. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/cli/test_parsers.py +0 -0
  239. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/core/__init__.py +0 -0
  240. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/core/base/__init__.py +0 -0
  241. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/core/base/data/__init__.py +0 -0
  242. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/core/base/data/mappers.py +0 -0
  243. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/core/base/data/models.py +0 -0
  244. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/core/base/test_mappers.py +0 -0
  245. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/core/base/test_models.py +0 -0
  246. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/core/common/__init__.py +0 -0
  247. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/core/common/data/__init__.py +0 -0
  248. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/core/common/test_config.py +0 -0
  249. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/core/common/test_decorators.py +0 -0
  250. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/core/embeddings/__init__.py +0 -0
  251. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/core/embeddings/test_clients.py +0 -0
  252. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/core/feedback/__init__.py +0 -0
  253. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/core/feedback/test_clients.py +0 -0
  254. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/core/files/__init__.py +0 -0
  255. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/core/files/test_clients.py +0 -0
  256. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/core/files/test_managers.py +0 -0
  257. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/core/files/test_models.py +0 -0
  258. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/core/files/test_responses.py +0 -0
  259. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/core/llm/__init__.py +0 -0
  260. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/core/llm/test_clients.py +0 -0
  261. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/core/rerank/__init__.py +0 -0
  262. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/core/rerank/test_clients.py +0 -0
  263. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/core/rerank/test_managers.py +0 -0
  264. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/core/rerank/test_mappers.py +0 -0
  265. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/core/secrets/__init__.py +0 -0
  266. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/core/secrets/test_clients.py +0 -0
  267. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/core/services/__init__.py +0 -0
  268. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/core/services/test_rest.py +0 -0
  269. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/core/test_handlers.py +0 -0
  270. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/core/utils/__init__.py +0 -0
  271. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/core/utils/test_console.py +0 -0
  272. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/dbg/__init__.py +0 -0
  273. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/dbg/test_debugger.py +0 -0
  274. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/gam/__init__.py +0 -0
  275. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/gam/test_clients.py +0 -0
  276. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/health/__init__.py +0 -0
  277. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/health/test_clients.py +0 -0
  278. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/integration/__init__.py +0 -0
  279. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/integration/lab/__init__.py +0 -0
  280. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/integration/lab/agents/__init__.py +0 -0
  281. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/integration/lab/agents/test_agents_list.py +0 -0
  282. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/integration/lab/agents/test_create_agent.py +0 -0
  283. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/integration/lab/agents/test_create_sharing_link.py +0 -0
  284. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/integration/lab/agents/test_delete_agent.py +0 -0
  285. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/integration/lab/agents/test_get_agent.py +0 -0
  286. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/integration/lab/agents/test_publish_agent_revision.py +0 -0
  287. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/integration/lab/agents/test_update_agent.py +0 -0
  288. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/lab/__init__.py +0 -0
  289. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/lab/agents/__init__.py +0 -0
  290. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/lab/agents/test_clients.py +0 -0
  291. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/lab/agents/test_mappers.py +0 -0
  292. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/lab/processes/__init__.py +0 -0
  293. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/lab/processes/test_clients.py +0 -0
  294. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/lab/processes/test_mappers.py +0 -0
  295. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/lab/spec/__init__.py +0 -0
  296. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/lab/spec/test_loader.py +0 -0
  297. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/lab/spec/test_parsers.py +0 -0
  298. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/lab/strategies/__init__.py +0 -0
  299. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/lab/strategies/test_clients.py +0 -0
  300. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/lab/strategies/test_mappers.py +0 -0
  301. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/lab/test_managers.py +0 -0
  302. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/lab/test_mappers.py +0 -0
  303. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/lab/test_models.py +0 -0
  304. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/lab/tools/__init__.py +0 -0
  305. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/lab/tools/test_clients.py +0 -0
  306. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/lab/tools/test_mappers.py +0 -0
  307. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/migration/__init__.py +0 -0
  308. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/migration/test_strategies.py +0 -0
  309. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/migration/test_tools.py +0 -0
  310. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/organization/__init__.py +0 -0
  311. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/organization/limits/__init__.py +0 -0
  312. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/organization/limits/test_clients.py +0 -0
  313. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/organization/limits/test_managers.py +0 -0
  314. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/organization/test_clients.py +0 -0
  315. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/organization/test_managers.py +0 -0
  316. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/organization/test_mappers.py +0 -0
  317. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/snippets/__init__.py +0 -0
  318. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/snippets/assistants/__init__.py +0 -0
  319. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/snippets/assistants/create_chat_assistant.py +0 -0
  320. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/snippets/assistants/create_text_assistant.py +0 -0
  321. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/snippets/assistants/data_analyst/__init__.py +0 -0
  322. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/snippets/assistants/data_analyst/extend_and_check.py +0 -0
  323. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/snippets/assistants/data_analyst/extend_dataset.py +0 -0
  324. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/snippets/assistants/data_analyst/get_status.py +0 -0
  325. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/snippets/assistants/file_summarizer_assistant.py +0 -0
  326. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/snippets/assistants/get_assistant_data.py +0 -0
  327. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/snippets/assistants/get_assistant_list.py +0 -0
  328. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/snippets/assistants/rag/__init__.py +0 -0
  329. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/snippets/assistants/rag/create_rag_assistant.py +0 -0
  330. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/snippets/assistants/rag/delete_al_documents.py +0 -0
  331. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/snippets/assistants/rag/delete_document.py +0 -0
  332. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/snippets/assistants/rag/delete_rag_assistant.py +0 -0
  333. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/snippets/assistants/rag/get_document.py +0 -0
  334. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/snippets/assistants/rag/get_documents.py +0 -0
  335. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/snippets/assistants/rag/get_rag_assistant_data.py +0 -0
  336. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/snippets/assistants/rag/update_rag_assistant.py +0 -0
  337. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/snippets/assistants/rag/upload_document.py +0 -0
  338. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/snippets/assistants/send_feedback.py +0 -0
  339. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/snippets/assistants/update_chat_assistant.py +0 -0
  340. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/snippets/chat/__init__.py +0 -0
  341. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/snippets/chat/cancel_request.py +0 -0
  342. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/snippets/chat/chat_completion.py +0 -0
  343. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/snippets/chat/chat_completion_1.py +0 -0
  344. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/snippets/chat/chat_completion_2.py +0 -0
  345. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/snippets/chat/chat_completion_3.py +0 -0
  346. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/snippets/chat/chat_completion_4.py +0 -0
  347. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/snippets/chat/chat_completion_streaming.py +0 -0
  348. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/snippets/chat/get_request_status.py +0 -0
  349. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/snippets/chat/send_chat_request.py +0 -0
  350. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/snippets/embeddings/__init__.py +0 -0
  351. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/snippets/embeddings/generate_embeddings.py +0 -0
  352. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/snippets/evaluation/__init__.py +0 -0
  353. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/snippets/files/__init__.py +0 -0
  354. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/snippets/files/delete_file.py +0 -0
  355. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/snippets/files/get_file_content.py +0 -0
  356. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/snippets/files/get_file_data.py +0 -0
  357. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/snippets/files/get_file_list.py +0 -0
  358. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/snippets/files/upload_file.py +0 -0
  359. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/snippets/gam/__init__.py +0 -0
  360. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/snippets/gam/gam_access_token.py +0 -0
  361. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/snippets/lab/__init__.py +0 -0
  362. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/snippets/lab/agentic_flow_example_1.py +0 -0
  363. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/snippets/lab/agentic_flow_example_2.py +0 -0
  364. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/snippets/lab/agentic_flow_example_3.py +0 -0
  365. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/snippets/lab/agentic_flow_example_4.py +0 -0
  366. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/snippets/lab/agents/__init__.py +0 -0
  367. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/snippets/lab/agents/create_agent.py +0 -0
  368. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/snippets/lab/agents/create_agent_2.py +0 -0
  369. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/snippets/lab/agents/delete_agent.py +0 -0
  370. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/snippets/lab/agents/get_agent.py +0 -0
  371. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/snippets/lab/agents/get_sharing_link.py +0 -0
  372. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/snippets/lab/agents/list_agents.py +0 -0
  373. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/snippets/lab/agents/publish_agent_revision.py +0 -0
  374. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/snippets/lab/agents/update_agent.py +0 -0
  375. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/snippets/lab/assistant_to_agent.py +0 -0
  376. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/snippets/lab/crud_ui.py +0 -0
  377. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/snippets/lab/processes/__init__.py +0 -0
  378. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/snippets/lab/processes/create_process.py +0 -0
  379. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/snippets/lab/processes/create_task.py +0 -0
  380. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/snippets/lab/processes/jobs/__init__.py +0 -0
  381. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/snippets/lab/processes/jobs/list_jobs.py +0 -0
  382. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/snippets/lab/processes/kbs/__init__.py +0 -0
  383. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/snippets/lab/processes/kbs/create_kb.py +0 -0
  384. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/snippets/lab/processes/kbs/get_kb.py +0 -0
  385. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/snippets/lab/processes/kbs/list_kbs.py +0 -0
  386. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/snippets/lab/processes/kbs/try_all.py +0 -0
  387. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/snippets/lab/processes/list_processes.py +0 -0
  388. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/snippets/lab/runner_1.py +0 -0
  389. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/snippets/lab/samples/__init__.py +0 -0
  390. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/snippets/lab/samples/summarize_files.py +0 -0
  391. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/snippets/lab/strategies/__init__.py +0 -0
  392. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/snippets/lab/strategies/create_reasoning_strategy.py +0 -0
  393. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/snippets/lab/strategies/get_reasoning_strategy.py +0 -0
  394. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/snippets/lab/strategies/list_reasoning_strategies.py +0 -0
  395. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/snippets/lab/strategies/update_reasoning_strategy.py +0 -0
  396. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/snippets/lab/tools/__init__.py +0 -0
  397. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/snippets/lab/tools/create_tool.py +0 -0
  398. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/snippets/lab/tools/delete_tool.py +0 -0
  399. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/snippets/lab/tools/get_parameter.py +0 -0
  400. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/snippets/lab/tools/get_tool.py +0 -0
  401. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/snippets/lab/tools/list_tools.py +0 -0
  402. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/snippets/lab/tools/publish_tool_revision.py +0 -0
  403. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/snippets/lab/tools/set_parameters.py +0 -0
  404. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/snippets/lab/tools/update_tool.py +0 -0
  405. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/snippets/lab/use_cases/__init__.py +0 -0
  406. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/snippets/lab/use_cases/c_code_fixer_agent_flow.py +0 -0
  407. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/snippets/lab/use_cases/create_cli_expert.py +0 -0
  408. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/snippets/lab/use_cases/create_lab_expert.py +0 -0
  409. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/snippets/lab/use_cases/create_tool_headless_web_browser.py +0 -0
  410. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/snippets/lab/use_cases/create_web_designer.py +0 -0
  411. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/snippets/lab/use_cases/create_web_reader.py +0 -0
  412. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/snippets/lab/use_cases/file_summarizer_example.py +0 -0
  413. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/snippets/lab/use_cases/file_summarizer_example_2.py +0 -0
  414. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/snippets/lab/use_cases/update_cli_expert.py +0 -0
  415. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/snippets/lab/use_cases/update_lab_expert.py +0 -0
  416. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/snippets/lab/use_cases/update_web_designer.py +0 -0
  417. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/snippets/lab/use_cases/update_web_reader.py +0 -0
  418. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/snippets/lab/use_cases/update_web_reader_with_tool.py +0 -0
  419. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/snippets/migrate/__init__.py +0 -0
  420. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/snippets/organization/__init__.py +0 -0
  421. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/snippets/organization/create_project.py +0 -0
  422. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/snippets/organization/delete_project.py +0 -0
  423. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/snippets/organization/export_request_data.py +0 -0
  424. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/snippets/organization/get_project_data.py +0 -0
  425. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/snippets/organization/get_project_list.py +0 -0
  426. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/snippets/organization/get_project_tokens.py +0 -0
  427. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/snippets/organization/update_project.py +0 -0
  428. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/snippets/rerank/__init__.py +0 -0
  429. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/snippets/rerank/rerank_chunks.py +0 -0
  430. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/snippets/secrets/__init__.py +0 -0
  431. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/snippets/usage_limit/__init__.py +0 -0
  432. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/snippets/usage_limit/delete_usage_limit.py +0 -0
  433. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/snippets/usage_limit/get_all_usage_limit_from_organization.py +0 -0
  434. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/snippets/usage_limit/get_usage_limit_from_organization.py +0 -0
  435. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/snippets/usage_limit/get_usage_limit_from_project.py +0 -0
  436. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/snippets/usage_limit/set_usage_limit_organization.py +0 -0
  437. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/snippets/usage_limit/set_usage_limit_project.py +0 -0
  438. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/snippets/usage_limit/update_usage_limit_organization.py +0 -0
  439. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/tests/snippets/usage_limit/update_usage_limit_project.py +0 -0
  440. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/vendor/a2a/__init__.py +0 -0
  441. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/vendor/a2a/auth/__init__.py +0 -0
  442. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/vendor/a2a/auth/user.py +0 -0
  443. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/vendor/a2a/client/__init__.py +0 -0
  444. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/vendor/a2a/client/client.py +0 -0
  445. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/vendor/a2a/client/errors.py +0 -0
  446. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/vendor/a2a/client/helpers.py +0 -0
  447. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/vendor/a2a/py.typed +0 -0
  448. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/vendor/a2a/server/__init__.py +0 -0
  449. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/vendor/a2a/server/agent_execution/__init__.py +0 -0
  450. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/vendor/a2a/server/agent_execution/agent_executor.py +0 -0
  451. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/vendor/a2a/server/agent_execution/context.py +0 -0
  452. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/vendor/a2a/server/agent_execution/request_context_builder.py +0 -0
  453. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/vendor/a2a/server/agent_execution/simple_request_context_builder.py +0 -0
  454. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/vendor/a2a/server/apps/__init__.py +0 -0
  455. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/vendor/a2a/server/apps/jsonrpc/__init__.py +0 -0
  456. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/vendor/a2a/server/apps/jsonrpc/fastapi_app.py +0 -0
  457. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/vendor/a2a/server/apps/jsonrpc/jsonrpc_app.py +0 -0
  458. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/vendor/a2a/server/apps/jsonrpc/starlette_app.py +0 -0
  459. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/vendor/a2a/server/context.py +0 -0
  460. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/vendor/a2a/server/events/__init__.py +0 -0
  461. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/vendor/a2a/server/events/event_consumer.py +0 -0
  462. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/vendor/a2a/server/events/event_queue.py +0 -0
  463. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/vendor/a2a/server/events/in_memory_queue_manager.py +0 -0
  464. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/vendor/a2a/server/events/queue_manager.py +0 -0
  465. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/vendor/a2a/server/request_handlers/__init__.py +0 -0
  466. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/vendor/a2a/server/request_handlers/default_request_handler.py +0 -0
  467. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/vendor/a2a/server/request_handlers/jsonrpc_handler.py +0 -0
  468. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/vendor/a2a/server/request_handlers/request_handler.py +0 -0
  469. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/vendor/a2a/server/request_handlers/response_helpers.py +0 -0
  470. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/vendor/a2a/server/tasks/__init__.py +0 -0
  471. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/vendor/a2a/server/tasks/inmemory_push_notifier.py +0 -0
  472. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/vendor/a2a/server/tasks/inmemory_task_store.py +0 -0
  473. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/vendor/a2a/server/tasks/push_notifier.py +0 -0
  474. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/vendor/a2a/server/tasks/result_aggregator.py +0 -0
  475. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/vendor/a2a/server/tasks/task_manager.py +0 -0
  476. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/vendor/a2a/server/tasks/task_store.py +0 -0
  477. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/vendor/a2a/server/tasks/task_updater.py +0 -0
  478. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/vendor/a2a/types.py +0 -0
  479. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/vendor/a2a/utils/__init__.py +0 -0
  480. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/vendor/a2a/utils/artifact.py +0 -0
  481. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/vendor/a2a/utils/errors.py +0 -0
  482. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/vendor/a2a/utils/helpers.py +0 -0
  483. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/vendor/a2a/utils/message.py +0 -0
  484. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/vendor/a2a/utils/task.py +0 -0
  485. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai/vendor/a2a/utils/telemetry.py +0 -0
  486. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai.egg-info/SOURCES.txt +0 -0
  487. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai.egg-info/dependency_links.txt +0 -0
  488. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai.egg-info/entry_points.txt +0 -0
  489. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai.egg-info/requires.txt +0 -0
  490. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/pygeai.egg-info/top_level.txt +0 -0
  491. {pygeai-0.2.7b42 → pygeai-0.2.7b44}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pygeai
3
- Version: 0.2.7b42
3
+ Version: 0.2.7b44
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
@@ -0,0 +1,244 @@
1
+ # GEAI Proxy Documentation
2
+
3
+ ## NAME
4
+ `geai-proxy` – proxy service for managing Model Context Protocol (MCP) servers with GEAI
5
+
6
+ ## SYNOPSIS
7
+ ```bash
8
+ geai-proxy [OPTIONS] CONFIG_FILE
9
+ ```
10
+
11
+ ## DESCRIPTION
12
+ The GEAI Proxy is a Python-based tool that acts as an intermediary between the GEAI API and various tool servers. It manages the registration, execution, and result handling of tool operations through a proxy service.
13
+
14
+ To install:
15
+
16
+ ```bash
17
+ pip install pygeai
18
+ ```
19
+
20
+ ## CONFIGURATION
21
+
22
+ The GEAI Proxy requires two distinct types of configuration:
23
+
24
+ ### 1. MCP Servers Configuration
25
+
26
+ This section declares the Model Context Protocol (MCP) servers that this proxy will link with GEAI. The configuration follows the Claude Desktop standard format and supports multiple servers in one file.
27
+
28
+ #### Configuration File Format
29
+
30
+ ```json
31
+ {
32
+ "mcpServers": {
33
+ "serverName1": {
34
+ "command": "command-to-launch-server",
35
+ "args": ["arg1", "arg2", "..."]
36
+ },
37
+ "serverName2": {
38
+ "command": "command-to-launch-server",
39
+ "args": ["arg1", "arg2", "..."]
40
+ }
41
+ }
42
+ }
43
+ ```
44
+
45
+ #### Example: Puppeteer Server
46
+
47
+ ```json
48
+ {
49
+ "mcpServers": {
50
+ "puppeteer": {
51
+ "command": "npx",
52
+ "args": ["-y", "@modelcontextprotocol/server-puppeteer"]
53
+ }
54
+ }
55
+ }
56
+ ```
57
+
58
+ #### Example: Filesystem Server
59
+
60
+ ```json
61
+ {
62
+ "mcpServers": {
63
+ "filesystem": {
64
+ "command": "npx",
65
+ "args": ["-y", "@modelcontextprotocol/server-filesystem", "~/mcp-shared-folder"]
66
+ }
67
+ }
68
+ }
69
+ ```
70
+
71
+ #### Example: HTTP+SSE Server
72
+
73
+ ```json
74
+ {
75
+ "mcpServers": {
76
+ "markitdown": {
77
+ "uri": "http://localhost:5000/sse"
78
+ }
79
+ }
80
+ }
81
+ ```
82
+
83
+ #### Example: Multiple Servers Combined
84
+
85
+ ```json
86
+ {
87
+ "mcpServers": {
88
+ "puppeteer": {
89
+ "command": "npx",
90
+ "args": ["-y", "@modelcontextprotocol/server-puppeteer"]
91
+ },
92
+ "filesystem": {
93
+ "command": "npx",
94
+ "args": ["-y", "@modelcontextprotocol/server-filesystem", "~/mcp-shared-folder"]
95
+ },
96
+ "markitdown": {
97
+ "uri": "http://localhost:5000/sse"
98
+ },
99
+ "custom-server": {
100
+ "command": "python",
101
+ "args": ["path/to/your/custom_mcp_server.py"]
102
+ }
103
+ }
104
+ }
105
+ ```
106
+
107
+ ## PUBLIC TOOL REGISTRATION
108
+
109
+ Tools provided by both MCP and A2A servers can be published to GEAI under a public namespace by including the `public_prefix` field in their configuration entry.
110
+
111
+ This allows tools to be registered under a well-defined global identifier, making them discoverable and shareable across proxies and clients.
112
+
113
+ ### MCP Server Example with Public Prefix
114
+
115
+ Registers tools from the `puppeteer` MCP server under the prefix `com.globant.puppeteer`:
116
+
117
+ ```json
118
+ {
119
+ "mcpServers": {
120
+ "public_prefix": "com.globant.puppeteer",
121
+ "puppeteer": {
122
+ "command": "npx",
123
+ "args": ["-y", "@modelcontextprotocol/server-puppeteer"]
124
+ }
125
+ }
126
+ }
127
+ ```
128
+
129
+ ### A2A Server Example with Public Prefix
130
+
131
+ Registers tools from the `hello-world` A2A agent under the prefix `com.genexus.a2a.sampleagent`:
132
+
133
+ ```json
134
+ {
135
+ "a2aServers": {
136
+ "hello-world": {
137
+ "public_prefix": "com.genexus.a2a.sampleagent",
138
+ "url": "http://localhost:9999",
139
+ "headers": {
140
+ "Authorization": "Bearer fh84ff...."
141
+ }
142
+ }
143
+ }
144
+ }
145
+ ```
146
+
147
+ ### Resulting Tool Identifiers
148
+
149
+ For example, a tool named `translate_text` would be available as:
150
+
151
+ ```text
152
+ com.genexus.a2a.sampleagent.translate_text
153
+ ```
154
+
155
+ ### 2. Proxy Authentication Configuration
156
+
157
+ This section establishes the connection between the proxy and GEAI and manages user aliases.
158
+
159
+ #### Automatic Configuration (First Run)
160
+
161
+ ```bash
162
+ geai-proxy sample-mcp-config.json --alias myalias
163
+ ```
164
+
165
+ #### Manual Configuration (Reconfiguration)
166
+
167
+ ```bash
168
+ geai-proxy --configure --alias myalias
169
+ ```
170
+
171
+ During interactive setup, the CLI will prompt:
172
+
173
+ ```
174
+ # Configuring GEAI proxy settings...
175
+ Generated new proxy ID: 37bae96b-bc99-4110-bb61-b912b28f9e32
176
+ -> Insert proxy ID (UUID) (Current: 37bae96b-bc99-4110-bb61-b912b28f9e32, Leave empty to keep):
177
+ -> Insert proxy API key:
178
+ -> Insert proxy base URL:
179
+ -> Insert proxy name:
180
+ -> Insert proxy description:
181
+ ```
182
+
183
+ ## PROXY CONFIGURATION PARAMETERS
184
+
185
+ During interactive setup, the following parameters are requested:
186
+
187
+ - **proxy ID (UUID)**
188
+ A unique identifier for this proxy instance. If left empty, the automatically generated UUID will be used.
189
+
190
+ - **proxy API key**
191
+ The API key used to authenticate the proxy with the GEAI backend. Must be a token from GEAI for a specific project.
192
+
193
+ - **proxy base URL**
194
+ The base URL of the GEAI installation to connect to.
195
+ Example: `https://api.beta.saia.ai`
196
+
197
+ - **proxy name**
198
+ Human-readable name for this proxy instance, stored under the alias.
199
+
200
+ - **proxy description**
201
+ Optional. Helps identify this proxy instance when using multiple aliases.
202
+
203
+ ## USAGE
204
+
205
+ To start the proxy server with a config and alias:
206
+
207
+ ```bash
208
+ geai-proxy sample-mcp-config.json --alias myalias
209
+ ```
210
+
211
+ ### Command Line Arguments
212
+
213
+ - **config_file**: Path to the MCP servers configuration file (JSON).
214
+ - **--alias ALIAS**: Alias for the proxy settings.
215
+ - **--configure**: Reconfigure proxy authentication settings.
216
+
217
+ ## FILES
218
+
219
+ - `pygeai/proxy/sample-mcp-config.json` – Sample configuration file for MCP servers.
220
+
221
+ ## SEE ALSO
222
+
223
+ - `pygeai (1)`
224
+
225
+ ## THIRD-PARTY COMPONENTS
226
+
227
+ This software includes code from the `a2a-python` project by Google LLC, licensed under the Apache License 2.0.
228
+
229
+ Only the vendored component in `pygeai/vendor/a2a/` is Apache-licensed. The rest is MIT-licensed.
230
+
231
+ License sources:
232
+
233
+ - https://github.com/google/a2a-python
234
+ - `pygeai/vendor/a2a/LICENSE`
235
+
236
+ ## AUTHOR
237
+
238
+ Written by the GEAI development team.
239
+
240
+ ## COPYRIGHT
241
+
242
+ Copyright © 2025 GEAI development team.
243
+
244
+ This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
@@ -92,6 +92,55 @@ The configuration file should be in JSON format with the following structure:
92
92
  }
93
93
  .fi
94
94
 
95
+ .SH PUBLIC TOOL REGISTRATION
96
+ Tools provided by both MCP and A2A servers can be published to GEAI under a public namespace
97
+ by including the \fBpublic_prefix\fR field in their configuration entry.
98
+
99
+ This allows tools to be registered under a well-defined global identifier, making them
100
+ discoverable and shareable across proxies and clients.
101
+
102
+ .SS MCP SERVER EXAMPLE WITH PUBLIC PREFIX
103
+ The following configuration registers all tools from the \fBpuppeteer\fR MCP server under
104
+ the public prefix \fIcom.globant.puppeteer\fR:
105
+
106
+ .nf
107
+ {
108
+ "mcpServers": {
109
+ "public_prefix": "com.globant.puppeteer",
110
+ "puppeteer": {
111
+ "command": "npx",
112
+ "args": ["-y", "@modelcontextprotocol/server-puppeteer"]
113
+ }
114
+ }
115
+ }
116
+ .fi
117
+
118
+ .SS A2A SERVER EXAMPLE WITH PUBLIC PREFIX
119
+ The following configuration registers the tools provided by the \fBhello-world\fR A2A agent
120
+ under the prefix \fIcom.genexus.a2a.sampleagent\fR:
121
+
122
+ .nf
123
+ {
124
+ "a2aServers": {
125
+ "hello-world": {
126
+ "public_prefix": "com.genexus.a2a.sampleagent",
127
+ "url": "http://localhost:9999",
128
+ "headers": {
129
+ "Authorization": "Bearer fh84ff...."
130
+ }
131
+ }
132
+ }
133
+ }
134
+ .fi
135
+
136
+ .SS RESULTING TOOL IDENTIFIERS
137
+ When this prefix is set, all tools will be published using it. For example, a tool named
138
+ \fBtranslate_text\fR would be available as:
139
+
140
+ .nf
141
+ com.genexus.a2a.sampleagent.translate_text
142
+ .fi
143
+
95
144
  .SS 2. Proxy Authentication Configuration
96
145
  This section establishes the connection between the proxy and GEAI and manages user aliases.
97
146
  .TP
@@ -116,6 +165,33 @@ Generated new proxy ID: 37bae96b-bc99-4110-bb61-b912b28f9e32
116
165
  -> Insert proxy description:
117
166
  .fi
118
167
 
168
+ .SH PROXY CONFIGURATION PARAMETERS
169
+ During interactive setup, the following parameters are requested:
170
+
171
+ .TP
172
+ \fBproxy ID (UUID)\fR
173
+ A unique identifier for this proxy instance. If left empty, the automatically generated UUID
174
+ will be used.
175
+
176
+ .TP
177
+ \fBproxy API key\fR
178
+ The API key used to authenticate the proxy with the GEAI backend. This must be an API token
179
+ generated in GEAI for a specific project.
180
+
181
+ .TP
182
+ \fBproxy base URL\fR
183
+ The base URL of the GEAI installation this proxy will connect to.
184
+ For example: \fIhttps://api.beta.saia.ai\fR
185
+
186
+ .TP
187
+ \fBproxy name\fR
188
+ A human-readable name assigned to this instance of \fBgeai-proxy\fR. This name is stored under the configured alias.
189
+
190
+ .TP
191
+ \fBproxy description\fR
192
+ An optional description to help identify this proxy instance, especially when multiple proxies are used under different aliases.
193
+
194
+
119
195
  .SH USAGE
120
196
  To start the proxy server with a specific configuration and alias:
121
197
  .nf
@@ -59,8 +59,8 @@ class ServerManager:
59
59
 
60
60
  for server in self.servers.values():
61
61
  Console.write_stdout(f"Listing tools for server {server.name}", end="")
62
- if server.public_preffix:
63
- Console.write_stdout(f" | access scope:public prefix: {server.public_preffix}")
62
+ if server.public_prefix:
63
+ Console.write_stdout(f" | access scope:public prefix: {server.public_prefix}")
64
64
  else:
65
65
  Console.write_stdout(" ! access scope:private")
66
66
 
@@ -40,7 +40,7 @@ class ToolServer(ABC):
40
40
  self.config = config
41
41
  self.settings = settings
42
42
  self.name: str = sever_name
43
- self.public_preffix: str | None = None
43
+ self.public_prefix: str | None = None
44
44
  self.exit_stack: AsyncExitStack = AsyncExitStack()
45
45
 
46
46
  @abstractmethod
@@ -105,7 +105,7 @@ class A2AServer(ToolServer):
105
105
  """
106
106
  try:
107
107
  self.httpx_client = httpx.AsyncClient(timeout=60.0)
108
- self.public_preffix = self.config.get("publicpreffix")
108
+ self.public_prefix = self.config.get("public_prefix")
109
109
  headers = self.config.get("headers")
110
110
  if headers:
111
111
  self.httpx_client.headers.update(headers)
@@ -138,7 +138,7 @@ class A2AServer(ToolServer):
138
138
  }
139
139
  tools = []
140
140
  for skill in self.agent_card.skills:
141
- tools.append(ProxiedTool(self.name, skill.id, skill.description, self.public_preffix, input_schema))
141
+ tools.append(ProxiedTool(self.name, skill.id, skill.description, self.public_prefix, input_schema))
142
142
  return tools
143
143
 
144
144
  async def execute_tool(
@@ -197,7 +197,7 @@ class MCPServer(ToolServer):
197
197
  self.session: ClientSession | None = None
198
198
 
199
199
  async def initialize(self) -> None:
200
- self.public_preffix = self.config.get("publicpreffix")
200
+ self.public_prefix = self.config.get("public_prefix")
201
201
  transport = self.config.get("transport") or (
202
202
  "sse" if "uri" in self.config else "stdio"
203
203
  )
@@ -264,7 +264,7 @@ class MCPServer(ToolServer):
264
264
  self.name,
265
265
  tool.name,
266
266
  tool.description,
267
- self.public_preffix,
267
+ self.public_prefix,
268
268
  tool.inputSchema
269
269
  )
270
270
  )
@@ -9,7 +9,7 @@ class ProxiedTool:
9
9
  :param server_name: str - Name of the server exposing the tool
10
10
  :param name: str - Name of the tool
11
11
  :param description: str - Description of the tool's functionality
12
- :param public_preffix: str - Public prefix of the tool
12
+ :param public_prefix: str - Public prefix of the tool
13
13
  :param input_schema: dict[str, Any] - JSON schema defining the expected input for the tool
14
14
  :return: ProxiedTool - Instance of the ProxiedTool class
15
15
  :raises: ValueError - If any required parameter is invalid or missing
@@ -20,7 +20,7 @@ class ProxiedTool:
20
20
  server_name: str,
21
21
  name: str,
22
22
  description: str,
23
- public_preffix: str,
23
+ public_prefix: str,
24
24
  input_schema: dict[str, Any]
25
25
  ) -> None:
26
26
  self.server_name: str = server_name
@@ -28,7 +28,7 @@ class ProxiedTool:
28
28
  self.openai_compatible_name: str = self._get_openai_compatible_name(name)
29
29
  self.description: str = description
30
30
  self.input_schema: dict[str, Any] = input_schema
31
- self.public_preffix: str = public_preffix
31
+ self.public_prefix: str = public_prefix
32
32
 
33
33
  def get_full_name(self) -> str:
34
34
  """Get the full name of the tool."""
@@ -36,12 +36,12 @@ class ProxiedTool:
36
36
 
37
37
  def is_public(self) -> bool:
38
38
  """Check if the tool is public."""
39
- return self.public_preffix is not None
39
+ return self.public_prefix is not None
40
40
 
41
41
  def get_public_name(self) -> str:
42
42
  """Get the public name of the tool."""
43
43
  return (
44
- f"{self.public_preffix}.{self.name if self.server_name in self.public_preffix else self.get_full_name()}"
44
+ f"{self.public_prefix}.{self.name if self.server_name in self.public_prefix else self.get_full_name()}"
45
45
  )
46
46
 
47
47
  def format_for_llm(self) -> str:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pygeai
3
- Version: 0.2.7b42
3
+ Version: 0.2.7b44
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.7b42"
7
+ version = "0.2.7b44"
8
8
  description = "Software Development Kit to interact with Globant Enterprise AI."
9
9
  license = "MIT"
10
10
  requires-python = ">=3.10"
@@ -1,200 +0,0 @@
1
- # GEAI Proxy Documentation
2
-
3
- ## Overview
4
-
5
- The GEAI Proxy is a Python-based tool that acts as an intermediary between the GEAI API and various tool servers. It manages the registration, execution, and result handling of tool operations through a proxy service.
6
-
7
- ## Installation
8
-
9
- ## Third-party Components
10
-
11
- This project includes code from [`a2a-python`](https://github.com/google/a2a-python) by Google LLC, used under the Apache License, Version 2.0.
12
-
13
- Only the vendored component located in `pygeai/vendor/a2a/` is subject to the Apache License.
14
- The rest of this project is licensed under the MIT License (see `LICENSE` file for details).
15
-
16
-
17
- ```bash
18
- pip install pygeai
19
- ```
20
-
21
- ## Configuration
22
-
23
- The GEAI Proxy requires two distinct types of configuration:
24
-
25
- ### 1. MCP Servers Configuration
26
-
27
- This section declares the Model Context Protocol (MCP) servers that this proxy will link with GEAI. The configuration follows the Claude Desktop standard format and supports multiple servers in one file.
28
-
29
- #### Configuration File Format
30
-
31
- ```json
32
- {
33
- "mcpServers": {
34
- "serverName1": {
35
- "command": "command-to-launch-server",
36
- "args": ["arg1", "arg2", ...]
37
- },
38
- "serverName2": {
39
- "command": "command-to-launch-server",
40
- "args": ["arg1", "arg2", ...]
41
- }
42
- }
43
- }
44
- ```
45
-
46
- #### Example Configurations
47
-
48
- 1. **Puppeteer Server** (for web automation):
49
- ```json
50
- {
51
- "mcpServers": {
52
- "puppeteer": {
53
- "command": "npx",
54
- "args": ["-y", "@modelcontextprotocol/server-puppeteer"]
55
- }
56
- }
57
- }
58
- ```
59
-
60
- 2. **Filesystem Server** (for file operations):
61
- ```json
62
- {
63
- "mcpServers": {
64
- "filesystem": {
65
- "command": "npx",
66
- "args": [
67
- "-y",
68
- "@modelcontextprotocol/server-filesystem",
69
- "~/mcp-shared-folder"
70
- ]
71
- }
72
- }
73
- }
74
- ```
75
-
76
- 3. **Multiple Servers Combined**:
77
- ```json
78
- {
79
- "mcpServers": {
80
- "puppeteer": {
81
- "command": "npx",
82
- "args": ["-y", "@modelcontextprotocol/server-puppeteer"]
83
- },
84
- "filesystem": {
85
- "command": "npx",
86
- "args": [
87
- "-y",
88
- "@modelcontextprotocol/server-filesystem",
89
- "~/mcp-shared-folder"
90
- ]
91
- },
92
- "custom-server": {
93
- "command": "python",
94
- "args": ["path/to/your/custom_mcp_server.py"]
95
- }
96
- }
97
- }
98
- ```
99
-
100
- ### 1. A2A Servers Configuration
101
-
102
- This section declares the Agent to Agent Protocol (A2A) servers that this proxy will link with GEAI. The configuration follows the standard format and supports multiple servers in one file.
103
-
104
- #### Configuration File Format
105
-
106
- ```json
107
- {
108
- "a2aServers": {
109
- "hello-world": {
110
- "publicpreffix": "com.genexus.a2a.sampleagent",
111
- "url": "http://localhost:9999"
112
- }
113
- }
114
- }
115
- ```
116
-
117
- A sample configuration file is provided at:
118
- ```
119
- pygeai/proxy/sample-mcp-config.json
120
- ```
121
-
122
- ### 2. Proxy Authentication Configuration
123
-
124
- This section establishes the connection between the proxy and GEAI and manages user aliases. You can configure it automatically on first run or manually reconfigure an existing alias.
125
-
126
- #### Automatic Configuration (First Run)
127
- ```bash
128
- geai-proxy sample-mcp-config.json --alias myalias
129
- ```
130
-
131
- #### Manual Configuration (Reconfiguration)
132
- ```bash
133
- geai-proxy --configure --alias myalias
134
- ```
135
-
136
- During interactive setup, the CLI will prompt you for each required setting:
137
-
138
- ```bash
139
- # Configuring GEAI proxy settings...
140
- Generated new proxy ID: 37bae96b-bc99-4110-bb61-b912b28f9e32
141
- -> Insert proxy ID (UUID) (Current: 37bae96b-bc99-4110-bb61-b912b28f9e32, Leave empty to keep):
142
- -> Insert proxy API key:
143
- -> Insert proxy base URL:
144
- -> Insert proxy name:
145
- -> Insert proxy description:
146
- ```
147
-
148
- ## Usage
149
-
150
- ### Starting the Proxy
151
-
152
- To start the proxy server with a specific configuration and alias:
153
-
154
- ```bash
155
- geai-proxy sample-mcp-config.json --alias myalias
156
- ```
157
-
158
- ### Command Line Arguments
159
-
160
- | Argument | Description | Required |
161
- |----------|-------------|----------|
162
- | `config_file` | Path to the MCP servers configuration file (JSON format) | Yes |
163
- | `--alias` | Alias for the proxy settings | No |
164
- | `--configure` | Command to reconfigure proxy authentication | No |
165
-
166
- ## Command Line Usage
167
-
168
- ```bash
169
- geai-proxy sample-mcp-config.json --alias beta
170
- ```
171
-
172
- ## Architecture
173
-
174
- ```mermaid
175
- graph TD
176
- %% Elementos principales
177
- user["User (Person)\nClient interacting with the GEAI"]
178
- geai["GEAI (Software System)\nGlobant Enterprise AI"]
179
- proxy["MCP Proxy (Software System)\nProxy that connects to multiple MCP Servers to call tools"]
180
-
181
- mcpA["MCP Server A (Software System)\nTool server for search functionality"]
182
- mcpB["MCP Server B (Software System)\nTool server for code execution"]
183
- mcpC["MCP Server C (Software System)\nTool server for database queries"]
184
-
185
- %% Conexiones
186
- user -->|Interacts/Calls tools via| geai
187
- geai -->|Returns tool responses| user
188
- geai -->|Calls tools via| proxy
189
- proxy -->|Returns tool responses| geai
190
-
191
- user -->|Calls Search Tool| proxy
192
- proxy -->|Calls Search Tool| mcpA
193
- mcpA -->|Returns search results| proxy
194
-
195
- proxy -->|Calls Code Tool| mcpB
196
- mcpB -->|Returns code output| proxy
197
-
198
- proxy -->|Calls DB Tool| mcpC
199
- mcpC -->|Returns query results| proxy
200
- ```
File without changes
File without changes
File without changes
File without changes