pygeai 0.1.6__py3-none-any.whl → 0.6.0b15__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of pygeai might be problematic. Click here for more details.

Files changed (788) hide show
  1. pygeai/__init__.py +11 -2
  2. pygeai/_docs/Makefile +20 -0
  3. pygeai/_docs/make.bat +35 -0
  4. pygeai/_docs/source/conf.py +117 -0
  5. pygeai/_docs/source/content/ai_lab/cli.rst +747 -0
  6. pygeai/_docs/source/content/ai_lab/models.rst +1734 -0
  7. pygeai/_docs/source/content/ai_lab/runner.rst +253 -0
  8. pygeai/_docs/source/content/ai_lab/spec.rst +431 -0
  9. pygeai/_docs/source/content/ai_lab/usage.rst +1011 -0
  10. pygeai/_docs/source/content/ai_lab.rst +102 -0
  11. pygeai/_docs/source/content/analytics.rst +598 -0
  12. pygeai/_docs/source/content/api_reference/admin.rst +161 -0
  13. pygeai/_docs/source/content/api_reference/assistant.rst +326 -0
  14. pygeai/_docs/source/content/api_reference/auth.rst +379 -0
  15. pygeai/_docs/source/content/api_reference/chat.rst +754 -0
  16. pygeai/_docs/source/content/api_reference/embeddings.rst +154 -0
  17. pygeai/_docs/source/content/api_reference/evaluation.rst +590 -0
  18. pygeai/_docs/source/content/api_reference/feedback.rst +237 -0
  19. pygeai/_docs/source/content/api_reference/files.rst +592 -0
  20. pygeai/_docs/source/content/api_reference/gam.rst +401 -0
  21. pygeai/_docs/source/content/api_reference/health.rst +58 -0
  22. pygeai/_docs/source/content/api_reference/project.rst +738 -0
  23. pygeai/_docs/source/content/api_reference/proxy.rst +318 -0
  24. pygeai/_docs/source/content/api_reference/rag.rst +710 -0
  25. pygeai/_docs/source/content/api_reference/rerank.rst +94 -0
  26. pygeai/_docs/source/content/api_reference/secrets.rst +495 -0
  27. pygeai/_docs/source/content/api_reference/usage_limits.rst +390 -0
  28. pygeai/_docs/source/content/api_reference.rst +58 -0
  29. pygeai/_docs/source/content/authentication.rst +295 -0
  30. pygeai/_docs/source/content/chat_gui.rst +121 -0
  31. pygeai/_docs/source/content/cli.rst +203 -0
  32. pygeai/_docs/source/content/debugger.rst +651 -0
  33. pygeai/_docs/source/content/intro.rst +67 -0
  34. pygeai/_docs/source/content/migration.rst +929 -0
  35. pygeai/_docs/source/content/modules.rst +7 -0
  36. pygeai/_docs/source/content/quickstart.rst +143 -0
  37. pygeai/_docs/source/content/samples.rst +394 -0
  38. pygeai/_docs/source/index.rst +75 -0
  39. pygeai/_docs/source/modules.rst +7 -0
  40. pygeai/_docs/source/pygeai.admin.rst +29 -0
  41. pygeai/_docs/source/pygeai.analytics.rst +53 -0
  42. pygeai/_docs/source/pygeai.assistant.data.rst +21 -0
  43. pygeai/_docs/source/pygeai.assistant.data_analyst.rst +29 -0
  44. pygeai/_docs/source/pygeai.assistant.rag.rst +53 -0
  45. pygeai/_docs/source/pygeai.assistant.rst +55 -0
  46. pygeai/_docs/source/pygeai.auth.rst +29 -0
  47. pygeai/_docs/source/pygeai.chat.rst +69 -0
  48. pygeai/_docs/source/pygeai.cli.commands.flows.rst +10 -0
  49. pygeai/_docs/source/pygeai.cli.commands.lab.rst +53 -0
  50. pygeai/_docs/source/pygeai.cli.commands.rst +222 -0
  51. pygeai/_docs/source/pygeai.cli.rst +62 -0
  52. pygeai/_docs/source/pygeai.cli.texts.rst +21 -0
  53. pygeai/_docs/source/pygeai.core.base.rst +53 -0
  54. pygeai/_docs/source/pygeai.core.common.rst +37 -0
  55. pygeai/_docs/source/pygeai.core.embeddings.rst +61 -0
  56. pygeai/_docs/source/pygeai.core.feedback.rst +37 -0
  57. pygeai/_docs/source/pygeai.core.files.rst +61 -0
  58. pygeai/_docs/source/pygeai.core.llm.rst +29 -0
  59. pygeai/_docs/source/pygeai.core.plugins.rst +37 -0
  60. pygeai/_docs/source/pygeai.core.rerank.rst +53 -0
  61. pygeai/_docs/source/pygeai.core.rst +63 -0
  62. pygeai/_docs/source/pygeai.core.secrets.rst +29 -0
  63. pygeai/_docs/source/pygeai.core.services.llm.rst +29 -0
  64. pygeai/_docs/source/pygeai.core.services.rst +37 -0
  65. pygeai/_docs/source/pygeai.core.utils.rst +37 -0
  66. pygeai/_docs/source/pygeai.dbg.rst +21 -0
  67. pygeai/_docs/source/pygeai.evaluation.dataset.rst +29 -0
  68. pygeai/_docs/source/pygeai.evaluation.plan.rst +29 -0
  69. pygeai/_docs/source/pygeai.evaluation.result.rst +29 -0
  70. pygeai/_docs/source/pygeai.evaluation.rst +31 -0
  71. pygeai/_docs/source/pygeai.flows.rst +29 -0
  72. pygeai/_docs/source/pygeai.gam.rst +29 -0
  73. pygeai/_docs/source/pygeai.health.rst +29 -0
  74. pygeai/_docs/source/pygeai.lab.agents.rst +37 -0
  75. pygeai/_docs/source/pygeai.lab.processes.rst +37 -0
  76. pygeai/_docs/source/pygeai.lab.rst +65 -0
  77. pygeai/_docs/source/pygeai.lab.spec.rst +29 -0
  78. pygeai/_docs/source/pygeai.lab.strategies.rst +37 -0
  79. pygeai/_docs/source/pygeai.lab.tools.rst +37 -0
  80. pygeai/_docs/source/pygeai.man.man1.rst +10 -0
  81. pygeai/_docs/source/pygeai.man.rst +18 -0
  82. pygeai/_docs/source/pygeai.migration.rst +29 -0
  83. pygeai/_docs/source/pygeai.organization.limits.rst +45 -0
  84. pygeai/_docs/source/pygeai.organization.rst +61 -0
  85. pygeai/_docs/source/pygeai.proxy.rst +53 -0
  86. pygeai/_docs/source/pygeai.rst +35 -0
  87. pygeai/_docs/source/pygeai.tests.admin.rst +21 -0
  88. pygeai/_docs/source/pygeai.tests.analytics.rst +45 -0
  89. pygeai/_docs/source/pygeai.tests.assistants.rag.rst +37 -0
  90. pygeai/_docs/source/pygeai.tests.assistants.rst +45 -0
  91. pygeai/_docs/source/pygeai.tests.auth.rst +29 -0
  92. pygeai/_docs/source/pygeai.tests.chat.rst +45 -0
  93. pygeai/_docs/source/pygeai.tests.cli.commands.lab.rst +37 -0
  94. pygeai/_docs/source/pygeai.tests.cli.commands.rst +165 -0
  95. pygeai/_docs/source/pygeai.tests.cli.docker.rst +10 -0
  96. pygeai/_docs/source/pygeai.tests.cli.rst +46 -0
  97. pygeai/_docs/source/pygeai.tests.core.base.data.rst +29 -0
  98. pygeai/_docs/source/pygeai.tests.core.base.rst +45 -0
  99. pygeai/_docs/source/pygeai.tests.core.common.data.rst +10 -0
  100. pygeai/_docs/source/pygeai.tests.core.common.rst +37 -0
  101. pygeai/_docs/source/pygeai.tests.core.embeddings.rst +37 -0
  102. pygeai/_docs/source/pygeai.tests.core.feedback.rst +21 -0
  103. pygeai/_docs/source/pygeai.tests.core.files.rst +53 -0
  104. pygeai/_docs/source/pygeai.tests.core.llm.rst +21 -0
  105. pygeai/_docs/source/pygeai.tests.core.plugins.rst +21 -0
  106. pygeai/_docs/source/pygeai.tests.core.rerank.rst +37 -0
  107. pygeai/_docs/source/pygeai.tests.core.rst +39 -0
  108. pygeai/_docs/source/pygeai.tests.core.secrets.rst +21 -0
  109. pygeai/_docs/source/pygeai.tests.core.services.rst +21 -0
  110. pygeai/_docs/source/pygeai.tests.core.utils.rst +21 -0
  111. pygeai/_docs/source/pygeai.tests.dbg.rst +21 -0
  112. pygeai/_docs/source/pygeai.tests.evaluation.dataset.rst +21 -0
  113. pygeai/_docs/source/pygeai.tests.evaluation.plan.rst +21 -0
  114. pygeai/_docs/source/pygeai.tests.evaluation.result.rst +21 -0
  115. pygeai/_docs/source/pygeai.tests.evaluation.rst +20 -0
  116. pygeai/_docs/source/pygeai.tests.gam.rst +21 -0
  117. pygeai/_docs/source/pygeai.tests.health.rst +21 -0
  118. pygeai/_docs/source/pygeai.tests.integration.assistants.rag.rst +21 -0
  119. pygeai/_docs/source/pygeai.tests.integration.assistants.rst +18 -0
  120. pygeai/_docs/source/pygeai.tests.integration.chat.rst +21 -0
  121. pygeai/_docs/source/pygeai.tests.integration.lab.agents.rst +69 -0
  122. pygeai/_docs/source/pygeai.tests.integration.lab.processes.rst +77 -0
  123. pygeai/_docs/source/pygeai.tests.integration.lab.reasoning_strategies.rst +37 -0
  124. pygeai/_docs/source/pygeai.tests.integration.lab.rst +21 -0
  125. pygeai/_docs/source/pygeai.tests.integration.lab.tools.rst +77 -0
  126. pygeai/_docs/source/pygeai.tests.integration.rst +20 -0
  127. pygeai/_docs/source/pygeai.tests.lab.agents.rst +29 -0
  128. pygeai/_docs/source/pygeai.tests.lab.processes.rst +29 -0
  129. pygeai/_docs/source/pygeai.tests.lab.rst +49 -0
  130. pygeai/_docs/source/pygeai.tests.lab.spec.rst +29 -0
  131. pygeai/_docs/source/pygeai.tests.lab.strategies.rst +29 -0
  132. pygeai/_docs/source/pygeai.tests.lab.tools.rst +29 -0
  133. pygeai/_docs/source/pygeai.tests.migration.rst +29 -0
  134. pygeai/_docs/source/pygeai.tests.organization.limits.rst +29 -0
  135. pygeai/_docs/source/pygeai.tests.organization.rst +53 -0
  136. pygeai/_docs/source/pygeai.tests.proxy.rst +61 -0
  137. pygeai/_docs/source/pygeai.tests.rst +33 -0
  138. pygeai/admin/clients.py +14 -11
  139. pygeai/admin/endpoints.py +2 -2
  140. pygeai/analytics/clients.py +505 -0
  141. pygeai/analytics/endpoints.py +35 -0
  142. pygeai/analytics/managers.py +606 -0
  143. pygeai/analytics/mappers.py +207 -0
  144. pygeai/analytics/responses.py +240 -0
  145. pygeai/assistant/clients.py +48 -57
  146. pygeai/assistant/data/__init__.py +0 -0
  147. pygeai/assistant/data/clients.py +15 -0
  148. pygeai/assistant/data_analyst/__init__.py +0 -0
  149. pygeai/assistant/data_analyst/clients.py +75 -0
  150. pygeai/assistant/data_analyst/endpoints.py +2 -0
  151. pygeai/assistant/endpoints.py +0 -2
  152. pygeai/assistant/managers.py +738 -0
  153. pygeai/assistant/mappers.py +153 -0
  154. pygeai/assistant/rag/clients.py +132 -21
  155. pygeai/assistant/rag/mappers.py +228 -0
  156. pygeai/assistant/rag/models.py +396 -0
  157. pygeai/assistant/rag/responses.py +10 -0
  158. pygeai/auth/__init__.py +0 -0
  159. pygeai/auth/clients.py +129 -0
  160. pygeai/auth/endpoints.py +6 -0
  161. pygeai/chat/clients.py +406 -31
  162. pygeai/chat/endpoints.py +3 -0
  163. pygeai/chat/iris.py +17 -0
  164. pygeai/chat/managers.py +64 -0
  165. pygeai/chat/session.py +38 -0
  166. pygeai/chat/settings.py +6 -0
  167. pygeai/chat/ui.py +678 -0
  168. pygeai/cli/__init__.py +0 -1
  169. pygeai/cli/commands/admin.py +9 -12
  170. pygeai/cli/commands/analytics.py +533 -0
  171. pygeai/cli/commands/assistant.py +11 -11
  172. pygeai/cli/commands/auth.py +299 -0
  173. pygeai/cli/commands/base.py +201 -7
  174. pygeai/cli/commands/chat.py +875 -14
  175. pygeai/cli/commands/common.py +30 -26
  176. pygeai/cli/commands/configuration.py +84 -9
  177. pygeai/cli/commands/docs.py +105 -0
  178. pygeai/cli/commands/embeddings.py +187 -0
  179. pygeai/cli/commands/evaluation.py +2069 -0
  180. pygeai/cli/commands/feedback.py +93 -0
  181. pygeai/cli/commands/files.py +312 -0
  182. pygeai/cli/commands/flows/__init__.py +0 -0
  183. pygeai/cli/commands/gam.py +349 -0
  184. pygeai/cli/commands/lab/__init__.py +0 -0
  185. pygeai/cli/commands/lab/ai_lab.py +4110 -0
  186. pygeai/cli/commands/lab/common.py +135 -0
  187. pygeai/cli/commands/lab/options.py +8 -0
  188. pygeai/cli/commands/lab/spec.py +273 -0
  189. pygeai/cli/commands/lab/utils.py +13 -0
  190. pygeai/cli/commands/llm.py +164 -0
  191. pygeai/cli/commands/migrate.py +1198 -0
  192. pygeai/cli/commands/options.py +86 -0
  193. pygeai/cli/commands/organization.py +560 -98
  194. pygeai/cli/commands/rag.py +306 -10
  195. pygeai/cli/commands/rerank.py +108 -0
  196. pygeai/cli/commands/secrets.py +357 -0
  197. pygeai/cli/commands/usage_limits.py +583 -0
  198. pygeai/cli/commands/validators.py +209 -0
  199. pygeai/cli/commands/version.py +44 -0
  200. pygeai/cli/error_handler.py +151 -0
  201. pygeai/cli/geai.py +171 -30
  202. pygeai/cli/geai_proxy.py +318 -0
  203. pygeai/cli/install_man.py +107 -0
  204. pygeai/cli/parsers.py +78 -25
  205. pygeai/cli/texts/help.py +712 -55
  206. pygeai/core/__init__.py +9 -1
  207. pygeai/core/base/clients.py +61 -10
  208. pygeai/core/base/mappers.py +208 -30
  209. pygeai/core/base/models.py +8 -308
  210. pygeai/core/base/responses.py +18 -1
  211. pygeai/core/base/session.py +110 -17
  212. pygeai/core/common/config.py +98 -16
  213. pygeai/core/common/decorators.py +44 -0
  214. pygeai/core/common/exceptions.py +104 -4
  215. pygeai/core/embeddings/__init__.py +19 -0
  216. pygeai/core/embeddings/clients.py +93 -0
  217. pygeai/core/embeddings/endpoints.py +1 -0
  218. pygeai/core/embeddings/managers.py +62 -0
  219. pygeai/core/embeddings/mappers.py +52 -0
  220. pygeai/core/embeddings/models.py +14 -0
  221. pygeai/core/embeddings/responses.py +31 -0
  222. pygeai/core/feedback/__init__.py +0 -0
  223. pygeai/core/feedback/clients.py +50 -0
  224. pygeai/core/feedback/endpoints.py +1 -0
  225. pygeai/core/feedback/models.py +10 -0
  226. pygeai/core/files/__init__.py +0 -0
  227. pygeai/core/files/clients.py +156 -0
  228. pygeai/core/files/endpoints.py +5 -0
  229. pygeai/core/files/managers.py +224 -0
  230. pygeai/core/files/mappers.py +44 -0
  231. pygeai/core/files/models.py +24 -0
  232. pygeai/core/files/responses.py +19 -0
  233. pygeai/core/handlers.py +32 -0
  234. pygeai/core/llm/__init__.py +0 -0
  235. pygeai/core/llm/clients.py +53 -0
  236. pygeai/core/llm/endpoints.py +4 -0
  237. pygeai/core/models.py +799 -0
  238. pygeai/core/plugins/__init__.py +0 -0
  239. pygeai/core/plugins/clients.py +32 -0
  240. pygeai/core/plugins/endpoints.py +1 -0
  241. pygeai/core/plugins/models.py +86 -0
  242. pygeai/core/rerank/__init__.py +0 -0
  243. pygeai/core/rerank/clients.py +35 -0
  244. pygeai/core/rerank/endpoints.py +1 -0
  245. pygeai/core/rerank/managers.py +47 -0
  246. pygeai/core/rerank/mappers.py +23 -0
  247. pygeai/core/rerank/models.py +27 -0
  248. pygeai/core/responses.py +104 -0
  249. pygeai/core/secrets/__init__.py +0 -0
  250. pygeai/core/secrets/clients.py +212 -0
  251. pygeai/core/secrets/endpoints.py +7 -0
  252. pygeai/core/services/llm/__init__.py +0 -0
  253. pygeai/core/services/llm/model.py +186 -0
  254. pygeai/core/services/llm/providers.py +15 -0
  255. pygeai/core/services/response.py +18 -0
  256. pygeai/core/services/rest.py +311 -89
  257. pygeai/core/utils/__init__.py +0 -0
  258. pygeai/core/utils/console.py +83 -0
  259. pygeai/core/utils/parsers.py +32 -0
  260. pygeai/core/utils/validators.py +10 -0
  261. pygeai/dbg/__init__.py +3 -0
  262. pygeai/dbg/debugger.py +870 -0
  263. pygeai/evaluation/__init__.py +0 -0
  264. pygeai/evaluation/clients.py +19 -0
  265. pygeai/evaluation/dataset/__init__.py +0 -0
  266. pygeai/evaluation/dataset/clients.py +514 -0
  267. pygeai/evaluation/dataset/endpoints.py +26 -0
  268. pygeai/evaluation/plan/__init__.py +0 -0
  269. pygeai/evaluation/plan/clients.py +302 -0
  270. pygeai/evaluation/plan/endpoints.py +16 -0
  271. pygeai/evaluation/result/__init__.py +0 -0
  272. pygeai/evaluation/result/clients.py +70 -0
  273. pygeai/evaluation/result/endpoints.py +2 -0
  274. pygeai/flows/__init__.py +0 -0
  275. pygeai/flows/endpoints.py +362 -0
  276. pygeai/flows/models.py +1304 -0
  277. pygeai/gam/__init__.py +0 -0
  278. pygeai/gam/clients.py +178 -0
  279. pygeai/gam/endpoints.py +4 -0
  280. pygeai/health/__init__.py +0 -0
  281. pygeai/health/clients.py +24 -0
  282. pygeai/health/endpoints.py +1 -0
  283. pygeai/lab/__init__.py +0 -0
  284. pygeai/lab/agents/__init__.py +0 -0
  285. pygeai/lab/agents/clients.py +426 -0
  286. pygeai/lab/agents/endpoints.py +12 -0
  287. pygeai/lab/agents/mappers.py +319 -0
  288. pygeai/lab/clients.py +24 -0
  289. pygeai/lab/constants.py +3 -0
  290. pygeai/lab/managers.py +1558 -0
  291. pygeai/lab/models.py +1719 -0
  292. pygeai/lab/processes/__init__.py +0 -0
  293. pygeai/lab/processes/clients.py +1051 -0
  294. pygeai/lab/processes/endpoints.py +26 -0
  295. pygeai/lab/processes/mappers.py +395 -0
  296. pygeai/lab/runners.py +90 -0
  297. pygeai/lab/spec/__init__.py +0 -0
  298. pygeai/lab/spec/loader.py +24 -0
  299. pygeai/lab/spec/parsers.py +39 -0
  300. pygeai/lab/strategies/__init__.py +0 -0
  301. pygeai/lab/strategies/clients.py +212 -0
  302. pygeai/lab/strategies/endpoints.py +5 -0
  303. pygeai/lab/strategies/mappers.py +58 -0
  304. pygeai/lab/tools/__init__.py +0 -0
  305. pygeai/lab/tools/clients.py +465 -0
  306. pygeai/lab/tools/endpoints.py +13 -0
  307. pygeai/lab/tools/mappers.py +131 -0
  308. pygeai/man/__init__.py +1 -0
  309. pygeai/man/man1/__init__.py +1 -0
  310. pygeai/man/man1/geai-proxy.1 +246 -0
  311. pygeai/man/man1/geai.1 +2615 -0
  312. pygeai/migration/__init__.py +33 -0
  313. pygeai/migration/strategies.py +603 -0
  314. pygeai/migration/tools.py +180 -0
  315. pygeai/organization/clients.py +246 -18
  316. pygeai/organization/endpoints.py +17 -8
  317. pygeai/organization/limits/__init__.py +0 -0
  318. pygeai/organization/limits/clients.py +281 -0
  319. pygeai/organization/limits/endpoints.py +15 -0
  320. pygeai/organization/limits/managers.py +331 -0
  321. pygeai/organization/limits/mappers.py +21 -0
  322. pygeai/organization/managers.py +537 -0
  323. pygeai/organization/mappers.py +111 -46
  324. pygeai/organization/responses.py +61 -11
  325. pygeai/proxy/__init__.py +0 -0
  326. pygeai/proxy/clients.py +216 -0
  327. pygeai/proxy/config.py +128 -0
  328. pygeai/proxy/managers.py +232 -0
  329. pygeai/proxy/servers.py +304 -0
  330. pygeai/proxy/tool.py +69 -0
  331. pygeai/tests/admin/__init__.py +0 -0
  332. pygeai/tests/admin/test_clients.py +148 -0
  333. pygeai/tests/analytics/__init__.py +0 -0
  334. pygeai/tests/analytics/test_clients.py +86 -0
  335. pygeai/tests/analytics/test_managers.py +94 -0
  336. pygeai/tests/analytics/test_mappers.py +84 -0
  337. pygeai/tests/analytics/test_responses.py +73 -0
  338. pygeai/tests/assistants/rag/__init__.py +0 -0
  339. pygeai/tests/assistants/rag/test_clients.py +346 -0
  340. pygeai/tests/assistants/rag/test_mappers.py +189 -0
  341. pygeai/tests/assistants/rag/test_models.py +292 -0
  342. pygeai/tests/assistants/test_clients.py +176 -80
  343. pygeai/tests/assistants/test_managers.py +198 -0
  344. pygeai/tests/assistants/test_mappers.py +111 -0
  345. pygeai/tests/auth/__init__.py +0 -0
  346. pygeai/tests/auth/test_clients.py +289 -0
  347. pygeai/tests/auth/test_oauth.py +172 -0
  348. pygeai/tests/auth/test_session_logging.py +150 -0
  349. pygeai/tests/chat/__init__.py +0 -0
  350. pygeai/tests/chat/test_clients.py +393 -0
  351. pygeai/tests/chat/test_iris.py +38 -0
  352. pygeai/tests/chat/test_session.py +62 -0
  353. pygeai/tests/chat/test_ui.py +224 -0
  354. pygeai/tests/cli/__init__.py +0 -0
  355. pygeai/tests/cli/commands/__init__.py +0 -0
  356. pygeai/tests/cli/commands/lab/__init__.py +0 -0
  357. pygeai/tests/cli/commands/lab/test_ai_lab.py +786 -0
  358. pygeai/tests/cli/commands/lab/test_common.py +208 -0
  359. pygeai/tests/cli/commands/lab/test_spec.py +246 -0
  360. pygeai/tests/cli/commands/test_assistant.py +202 -0
  361. pygeai/tests/cli/commands/test_chat.py +130 -0
  362. pygeai/tests/cli/commands/test_common.py +350 -0
  363. pygeai/tests/cli/commands/test_embeddings.py +132 -0
  364. pygeai/tests/cli/commands/test_evaluation.py +656 -0
  365. pygeai/tests/cli/commands/test_feedback.py +65 -0
  366. pygeai/tests/cli/commands/test_files.py +161 -0
  367. pygeai/tests/cli/commands/test_gam.py +201 -0
  368. pygeai/tests/cli/commands/test_llm.py +114 -0
  369. pygeai/tests/cli/commands/test_migrate.py +176 -0
  370. pygeai/tests/cli/commands/test_organization.py +276 -0
  371. pygeai/tests/cli/commands/test_rag.py +266 -0
  372. pygeai/tests/cli/commands/test_rerank.py +110 -0
  373. pygeai/tests/cli/commands/test_secrets.py +171 -0
  374. pygeai/tests/cli/commands/test_show_help.py +41 -0
  375. pygeai/tests/cli/commands/test_usage_limits.py +412 -0
  376. pygeai/tests/cli/commands/test_validators.py +160 -0
  377. pygeai/tests/cli/commands/test_version.py +81 -0
  378. pygeai/tests/cli/docker/__init__.py +0 -0
  379. pygeai/tests/cli/test_credentials_flag.py +316 -0
  380. pygeai/tests/cli/test_error_handler.py +225 -0
  381. pygeai/tests/cli/test_geai_driver.py +154 -0
  382. pygeai/tests/cli/test_parsers.py +154 -0
  383. pygeai/tests/core/base/__init__.py +0 -0
  384. pygeai/tests/core/base/data/__init__.py +0 -0
  385. pygeai/tests/core/base/data/mappers.py +117 -0
  386. pygeai/tests/core/base/data/models.py +312 -0
  387. pygeai/tests/core/base/test_mappers.py +569 -0
  388. pygeai/tests/core/base/test_models.py +261 -0
  389. pygeai/tests/core/base/test_responses.py +53 -0
  390. pygeai/tests/core/common/__init__.py +0 -0
  391. pygeai/tests/core/common/data/__init__.py +0 -0
  392. pygeai/tests/core/common/test_config.py +186 -0
  393. pygeai/tests/core/common/test_decorators.py +69 -0
  394. pygeai/tests/core/embeddings/__init__.py +0 -0
  395. pygeai/tests/core/embeddings/test_clients.py +225 -0
  396. pygeai/tests/core/embeddings/test_managers.py +171 -0
  397. pygeai/tests/core/embeddings/test_mappers.py +142 -0
  398. pygeai/tests/core/feedback/__init__.py +0 -0
  399. pygeai/tests/core/feedback/test_clients.py +64 -0
  400. pygeai/tests/core/files/__init__.py +0 -0
  401. pygeai/tests/core/files/test_clients.py +128 -0
  402. pygeai/tests/core/files/test_managers.py +219 -0
  403. pygeai/tests/core/files/test_mappers.py +137 -0
  404. pygeai/tests/core/files/test_models.py +103 -0
  405. pygeai/tests/core/files/test_responses.py +122 -0
  406. pygeai/tests/core/llm/__init__.py +0 -0
  407. pygeai/tests/core/llm/test_clients.py +142 -0
  408. pygeai/tests/core/plugins/__init__.py +0 -0
  409. pygeai/tests/core/plugins/test_clients.py +66 -0
  410. pygeai/tests/core/rerank/__init__.py +0 -0
  411. pygeai/tests/core/rerank/test_clients.py +76 -0
  412. pygeai/tests/core/rerank/test_managers.py +99 -0
  413. pygeai/tests/core/rerank/test_mappers.py +54 -0
  414. pygeai/tests/core/secrets/__init__.py +0 -0
  415. pygeai/tests/core/secrets/test_clients.py +264 -0
  416. pygeai/tests/core/services/__init__.py +0 -0
  417. pygeai/tests/core/services/test_rest.py +273 -0
  418. pygeai/tests/core/test_handlers.py +66 -0
  419. pygeai/tests/core/utils/__init__.py +0 -0
  420. pygeai/tests/core/utils/test_console.py +80 -0
  421. pygeai/tests/dbg/__init__.py +0 -0
  422. pygeai/tests/dbg/test_debugger.py +591 -0
  423. pygeai/tests/evaluation/__init__.py +0 -0
  424. pygeai/tests/evaluation/dataset/__init__.py +0 -0
  425. pygeai/tests/evaluation/dataset/test_clients.py +265 -0
  426. pygeai/tests/evaluation/plan/__init__.py +0 -0
  427. pygeai/tests/evaluation/plan/test_clients.py +195 -0
  428. pygeai/tests/evaluation/result/__init__.py +0 -0
  429. pygeai/tests/evaluation/result/test_clients.py +66 -0
  430. pygeai/tests/gam/__init__.py +0 -0
  431. pygeai/tests/gam/test_clients.py +195 -0
  432. pygeai/tests/health/__init__.py +0 -0
  433. pygeai/tests/health/test_clients.py +41 -0
  434. pygeai/tests/integration/__init__.py +0 -0
  435. pygeai/tests/integration/assistants/__init__.py +0 -0
  436. pygeai/tests/integration/assistants/rag/__init__.py +0 -0
  437. pygeai/tests/integration/assistants/rag/test_create_rag.py +91 -0
  438. pygeai/tests/integration/chat/__init__.py +0 -0
  439. pygeai/tests/integration/chat/test_generate_image.py +158 -0
  440. pygeai/tests/integration/lab/__init__.py +0 -0
  441. pygeai/tests/integration/lab/agents/__init__.py +0 -0
  442. pygeai/tests/integration/lab/agents/test_agents_list.py +106 -0
  443. pygeai/tests/integration/lab/agents/test_create_agent.py +319 -0
  444. pygeai/tests/integration/lab/agents/test_create_sharing_link.py +70 -0
  445. pygeai/tests/integration/lab/agents/test_delete_agent.py +75 -0
  446. pygeai/tests/integration/lab/agents/test_get_agent.py +94 -0
  447. pygeai/tests/integration/lab/agents/test_publish_agent_revision.py +127 -0
  448. pygeai/tests/integration/lab/agents/test_update_agent.py +250 -0
  449. pygeai/tests/integration/lab/processes/__init__.py +0 -0
  450. pygeai/tests/integration/lab/processes/test_create_process.py +345 -0
  451. pygeai/tests/integration/lab/processes/test_create_task.py +211 -0
  452. pygeai/tests/integration/lab/processes/test_delete_process.py +111 -0
  453. pygeai/tests/integration/lab/processes/test_get_process.py +201 -0
  454. pygeai/tests/integration/lab/processes/test_list_process_instances.py +91 -0
  455. pygeai/tests/integration/lab/processes/test_list_processes.py +138 -0
  456. pygeai/tests/integration/lab/processes/test_publish_process_revision.py +232 -0
  457. pygeai/tests/integration/lab/processes/test_update_process.py +289 -0
  458. pygeai/tests/integration/lab/reasoning_strategies/__init__.py +0 -0
  459. pygeai/tests/integration/lab/reasoning_strategies/test_get_reasoning_strategy.py +70 -0
  460. pygeai/tests/integration/lab/reasoning_strategies/test_list_reasoning_strategies.py +93 -0
  461. pygeai/tests/integration/lab/reasoning_strategies/test_update_reasoning_strategy.py +149 -0
  462. pygeai/tests/integration/lab/tools/__init__.py +0 -0
  463. pygeai/tests/integration/lab/tools/test_create_tool.py +288 -0
  464. pygeai/tests/integration/lab/tools/test_delete_tool.py +87 -0
  465. pygeai/tests/integration/lab/tools/test_get_parameter.py +98 -0
  466. pygeai/tests/integration/lab/tools/test_get_tool.py +91 -0
  467. pygeai/tests/integration/lab/tools/test_list_tools.py +106 -0
  468. pygeai/tests/integration/lab/tools/test_publish_tool_revision.py +119 -0
  469. pygeai/tests/integration/lab/tools/test_set_parameter.py +114 -0
  470. pygeai/tests/integration/lab/tools/test_update_tool.py +267 -0
  471. pygeai/tests/lab/__init__.py +0 -0
  472. pygeai/tests/lab/agents/__init__.py +0 -0
  473. pygeai/tests/lab/agents/test_clients.py +481 -0
  474. pygeai/tests/lab/agents/test_mappers.py +440 -0
  475. pygeai/tests/lab/processes/__init__.py +0 -0
  476. pygeai/tests/lab/processes/test_clients.py +1416 -0
  477. pygeai/tests/lab/processes/test_mappers.py +1092 -0
  478. pygeai/tests/lab/spec/__init__.py +0 -0
  479. pygeai/tests/lab/spec/test_loader.py +59 -0
  480. pygeai/tests/lab/spec/test_parsers.py +182 -0
  481. pygeai/tests/lab/strategies/__init__.py +0 -0
  482. pygeai/tests/lab/strategies/test_clients.py +241 -0
  483. pygeai/tests/lab/strategies/test_mappers.py +132 -0
  484. pygeai/tests/lab/test_managers.py +553 -0
  485. pygeai/tests/lab/test_mappers.py +245 -0
  486. pygeai/tests/lab/test_models.py +1154 -0
  487. pygeai/tests/lab/tools/__init__.py +0 -0
  488. pygeai/tests/lab/tools/test_clients.py +521 -0
  489. pygeai/tests/lab/tools/test_mappers.py +198 -0
  490. pygeai/tests/migration/__init__.py +0 -0
  491. pygeai/tests/migration/test_strategies.py +405 -0
  492. pygeai/tests/migration/test_tools.py +159 -0
  493. pygeai/tests/organization/limits/__init__.py +0 -0
  494. pygeai/tests/organization/limits/test_clients.py +567 -0
  495. pygeai/tests/organization/limits/test_managers.py +402 -0
  496. pygeai/tests/organization/test_clients.py +615 -64
  497. pygeai/tests/organization/test_managers.py +424 -0
  498. pygeai/tests/organization/test_mappers.py +153 -0
  499. pygeai/tests/organization/test_responses.py +137 -0
  500. pygeai/tests/proxy/__init__.py +1 -0
  501. pygeai/tests/proxy/test_clients.py +397 -0
  502. pygeai/tests/proxy/test_config.py +171 -0
  503. pygeai/tests/proxy/test_integration.py +305 -0
  504. pygeai/tests/proxy/test_managers.py +312 -0
  505. pygeai/tests/proxy/test_servers.py +387 -0
  506. pygeai/tests/proxy/test_tool.py +176 -0
  507. pygeai/tests/snippets/__init__.py +0 -0
  508. pygeai/tests/snippets/analytics/__init__.py +0 -0
  509. pygeai/tests/snippets/analytics/get_agent_usage_per_user.py +16 -0
  510. pygeai/tests/snippets/analytics/get_agents_created_and_modified.py +11 -0
  511. pygeai/tests/snippets/analytics/get_average_cost_per_request.py +10 -0
  512. pygeai/tests/snippets/analytics/get_overall_error_rate.py +10 -0
  513. pygeai/tests/snippets/analytics/get_top_10_agents_by_requests.py +12 -0
  514. pygeai/tests/snippets/analytics/get_total_active_users.py +10 -0
  515. pygeai/tests/snippets/analytics/get_total_cost.py +10 -0
  516. pygeai/tests/snippets/analytics/get_total_requests_per_day.py +12 -0
  517. pygeai/tests/snippets/analytics/get_total_tokens.py +12 -0
  518. pygeai/tests/snippets/assistants/__init__.py +0 -0
  519. pygeai/tests/snippets/assistants/create_chat_assistant.py +54 -0
  520. pygeai/tests/snippets/assistants/create_text_assistant.py +51 -0
  521. pygeai/tests/snippets/assistants/data_analyst/__init__.py +0 -0
  522. pygeai/tests/snippets/assistants/data_analyst/extend_and_check.py +100 -0
  523. pygeai/tests/snippets/assistants/data_analyst/extend_dataset.py +9 -0
  524. pygeai/tests/snippets/assistants/data_analyst/get_status.py +9 -0
  525. pygeai/tests/snippets/assistants/file_summarizer_assistant.py +149 -0
  526. pygeai/tests/snippets/assistants/get_assistant_data.py +8 -0
  527. pygeai/tests/snippets/assistants/get_assistant_list.py +7 -0
  528. pygeai/tests/snippets/assistants/rag/__init__.py +0 -0
  529. pygeai/tests/snippets/assistants/rag/create_rag_assistant.py +65 -0
  530. pygeai/tests/snippets/assistants/rag/delete_al_documents.py +7 -0
  531. pygeai/tests/snippets/assistants/rag/delete_document.py +10 -0
  532. pygeai/tests/snippets/assistants/rag/delete_rag_assistant.py +8 -0
  533. pygeai/tests/snippets/assistants/rag/get_document.py +10 -0
  534. pygeai/tests/snippets/assistants/rag/get_documents.py +7 -0
  535. pygeai/tests/snippets/assistants/rag/get_rag_assistant_data.py +8 -0
  536. pygeai/tests/snippets/assistants/rag/update_rag_assistant.py +48 -0
  537. pygeai/tests/snippets/assistants/rag/upload_document.py +19 -0
  538. pygeai/tests/snippets/assistants/send_feedback.py +14 -0
  539. pygeai/tests/snippets/assistants/update_chat_assistant.py +63 -0
  540. pygeai/tests/snippets/auth/__init__.py +0 -0
  541. pygeai/tests/snippets/chat/__init__.py +0 -0
  542. pygeai/tests/snippets/chat/cancel_request.py +7 -0
  543. pygeai/tests/snippets/chat/chat_completion.py +28 -0
  544. pygeai/tests/snippets/chat/chat_completion_1.py +40 -0
  545. pygeai/tests/snippets/chat/chat_completion_2.py +60 -0
  546. pygeai/tests/snippets/chat/chat_completion_3.py +27 -0
  547. pygeai/tests/snippets/chat/chat_completion_4.py +67 -0
  548. pygeai/tests/snippets/chat/chat_completion_streaming.py +63 -0
  549. pygeai/tests/snippets/chat/chat_completion_with_reasoning_effort.py +18 -0
  550. pygeai/tests/snippets/chat/get_request_status.py +7 -0
  551. pygeai/tests/snippets/chat/get_response.py +15 -0
  552. pygeai/tests/snippets/chat/get_response_complete_example.py +67 -0
  553. pygeai/tests/snippets/chat/get_response_streaming.py +20 -0
  554. pygeai/tests/snippets/chat/get_response_with_files.py +16 -0
  555. pygeai/tests/snippets/chat/get_response_with_instructions.py +19 -0
  556. pygeai/tests/snippets/chat/get_response_with_metadata.py +24 -0
  557. pygeai/tests/snippets/chat/get_response_with_parallel_tools.py +58 -0
  558. pygeai/tests/snippets/chat/get_response_with_reasoning.py +21 -0
  559. pygeai/tests/snippets/chat/get_response_with_store.py +38 -0
  560. pygeai/tests/snippets/chat/get_response_with_tools.py +36 -0
  561. pygeai/tests/snippets/chat/get_response_with_truncation.py +24 -0
  562. pygeai/tests/snippets/chat/send_chat_request.py +33 -0
  563. pygeai/tests/snippets/dbg/__init__.py +0 -0
  564. pygeai/tests/snippets/dbg/basic_debugging.py +32 -0
  565. pygeai/tests/snippets/dbg/breakpoint_management.py +48 -0
  566. pygeai/tests/snippets/dbg/file_debugging.py +72 -0
  567. pygeai/tests/snippets/dbg/module_debugging.py +61 -0
  568. pygeai/tests/snippets/dbg/stack_navigation.py +45 -0
  569. pygeai/tests/snippets/dbg/stepping_example.py +40 -0
  570. pygeai/tests/snippets/embeddings/__init__.py +0 -0
  571. pygeai/tests/snippets/embeddings/cache_example.py +31 -0
  572. pygeai/tests/snippets/embeddings/cohere_example.py +41 -0
  573. pygeai/tests/snippets/embeddings/generate_embeddings.py +26 -0
  574. pygeai/tests/snippets/embeddings/openai_base64_example.py +27 -0
  575. pygeai/tests/snippets/embeddings/openai_example.py +30 -0
  576. pygeai/tests/snippets/embeddings/similarity_example.py +42 -0
  577. pygeai/tests/snippets/evaluation/__init__.py +0 -0
  578. pygeai/tests/snippets/evaluation/dataset/__init__.py +0 -0
  579. pygeai/tests/snippets/evaluation/dataset/complete_workflow_example.py +195 -0
  580. pygeai/tests/snippets/evaluation/dataset/create_dataset.py +26 -0
  581. pygeai/tests/snippets/evaluation/dataset/create_dataset_from_file.py +11 -0
  582. pygeai/tests/snippets/evaluation/dataset/create_dataset_row.py +17 -0
  583. pygeai/tests/snippets/evaluation/dataset/create_expected_source.py +18 -0
  584. pygeai/tests/snippets/evaluation/dataset/create_filter_variable.py +19 -0
  585. pygeai/tests/snippets/evaluation/dataset/delete_dataset.py +9 -0
  586. pygeai/tests/snippets/evaluation/dataset/delete_dataset_row.py +10 -0
  587. pygeai/tests/snippets/evaluation/dataset/delete_expected_source.py +15 -0
  588. pygeai/tests/snippets/evaluation/dataset/delete_filter_variable.py +15 -0
  589. pygeai/tests/snippets/evaluation/dataset/get_dataset.py +9 -0
  590. pygeai/tests/snippets/evaluation/dataset/get_dataset_row.py +10 -0
  591. pygeai/tests/snippets/evaluation/dataset/get_expected_source.py +15 -0
  592. pygeai/tests/snippets/evaluation/dataset/get_filter_variable.py +15 -0
  593. pygeai/tests/snippets/evaluation/dataset/list_dataset_rows.py +9 -0
  594. pygeai/tests/snippets/evaluation/dataset/list_datasets.py +6 -0
  595. pygeai/tests/snippets/evaluation/dataset/list_expected_sources.py +10 -0
  596. pygeai/tests/snippets/evaluation/dataset/list_filter_variables.py +10 -0
  597. pygeai/tests/snippets/evaluation/dataset/update_dataset.py +15 -0
  598. pygeai/tests/snippets/evaluation/dataset/update_dataset_row.py +20 -0
  599. pygeai/tests/snippets/evaluation/dataset/update_expected_source.py +18 -0
  600. pygeai/tests/snippets/evaluation/dataset/update_filter_variable.py +19 -0
  601. pygeai/tests/snippets/evaluation/dataset/upload_dataset_rows_file.py +10 -0
  602. pygeai/tests/snippets/evaluation/plan/__init__.py +0 -0
  603. pygeai/tests/snippets/evaluation/plan/add_plan_system_metric.py +13 -0
  604. pygeai/tests/snippets/evaluation/plan/complete_workflow_example.py +136 -0
  605. pygeai/tests/snippets/evaluation/plan/create_evaluation_plan.py +24 -0
  606. pygeai/tests/snippets/evaluation/plan/create_rag_evaluation_plan.py +22 -0
  607. pygeai/tests/snippets/evaluation/plan/delete_evaluation_plan.py +9 -0
  608. pygeai/tests/snippets/evaluation/plan/delete_plan_system_metric.py +13 -0
  609. pygeai/tests/snippets/evaluation/plan/execute_evaluation_plan.py +11 -0
  610. pygeai/tests/snippets/evaluation/plan/get_evaluation_plan.py +9 -0
  611. pygeai/tests/snippets/evaluation/plan/get_plan_system_metric.py +13 -0
  612. pygeai/tests/snippets/evaluation/plan/get_system_metric.py +9 -0
  613. pygeai/tests/snippets/evaluation/plan/list_evaluation_plans.py +7 -0
  614. pygeai/tests/snippets/evaluation/plan/list_plan_system_metrics.py +9 -0
  615. pygeai/tests/snippets/evaluation/plan/list_system_metrics.py +7 -0
  616. pygeai/tests/snippets/evaluation/plan/update_evaluation_plan.py +22 -0
  617. pygeai/tests/snippets/evaluation/plan/update_plan_system_metric.py +14 -0
  618. pygeai/tests/snippets/evaluation/result/__init__.py +0 -0
  619. pygeai/tests/snippets/evaluation/result/complete_workflow_example.py +150 -0
  620. pygeai/tests/snippets/evaluation/result/get_evaluation_result.py +26 -0
  621. pygeai/tests/snippets/evaluation/result/list_evaluation_results.py +17 -0
  622. pygeai/tests/snippets/files/__init__.py +0 -0
  623. pygeai/tests/snippets/files/delete_file.py +9 -0
  624. pygeai/tests/snippets/files/get_file_content.py +10 -0
  625. pygeai/tests/snippets/files/get_file_data.py +9 -0
  626. pygeai/tests/snippets/files/get_file_list.py +6 -0
  627. pygeai/tests/snippets/files/upload_file.py +13 -0
  628. pygeai/tests/snippets/gam/__init__.py +0 -0
  629. pygeai/tests/snippets/gam/gam_access_token.py +87 -0
  630. pygeai/tests/snippets/lab/__init__.py +0 -0
  631. pygeai/tests/snippets/lab/agentic_flow_example_1.py +326 -0
  632. pygeai/tests/snippets/lab/agentic_flow_example_2.py +206 -0
  633. pygeai/tests/snippets/lab/agentic_flow_example_3.py +486 -0
  634. pygeai/tests/snippets/lab/agentic_flow_example_4.py +446 -0
  635. pygeai/tests/snippets/lab/agents/__init__.py +0 -0
  636. pygeai/tests/snippets/lab/agents/create_agent.py +48 -0
  637. pygeai/tests/snippets/lab/agents/create_agent_2.py +48 -0
  638. pygeai/tests/snippets/lab/agents/create_agent_edge_case.py +48 -0
  639. pygeai/tests/snippets/lab/agents/create_agent_with_permissions.py +39 -0
  640. pygeai/tests/snippets/lab/agents/create_agent_with_properties.py +46 -0
  641. pygeai/tests/snippets/lab/agents/create_agent_without_instructions.py +48 -0
  642. pygeai/tests/snippets/lab/agents/delete_agent.py +12 -0
  643. pygeai/tests/snippets/lab/agents/get_agent.py +24 -0
  644. pygeai/tests/snippets/lab/agents/get_agent_with_new_fields.py +62 -0
  645. pygeai/tests/snippets/lab/agents/get_sharing_link.py +13 -0
  646. pygeai/tests/snippets/lab/agents/list_agents.py +18 -0
  647. pygeai/tests/snippets/lab/agents/publish_agent_revision.py +12 -0
  648. pygeai/tests/snippets/lab/agents/update_agent.py +50 -0
  649. pygeai/tests/snippets/lab/agents/update_agent_properties.py +50 -0
  650. pygeai/tests/snippets/lab/assistant_to_agent.py +191 -0
  651. pygeai/tests/snippets/lab/crud_ui.py +462 -0
  652. pygeai/tests/snippets/lab/processes/__init__.py +0 -0
  653. pygeai/tests/snippets/lab/processes/create_process.py +24 -0
  654. pygeai/tests/snippets/lab/processes/create_task.py +8 -0
  655. pygeai/tests/snippets/lab/processes/jobs/__init__.py +0 -0
  656. pygeai/tests/snippets/lab/processes/jobs/list_jobs.py +21 -0
  657. pygeai/tests/snippets/lab/processes/kbs/__init__.py +0 -0
  658. pygeai/tests/snippets/lab/processes/kbs/create_kb.py +18 -0
  659. pygeai/tests/snippets/lab/processes/kbs/get_kb.py +26 -0
  660. pygeai/tests/snippets/lab/processes/kbs/list_kbs.py +30 -0
  661. pygeai/tests/snippets/lab/processes/kbs/try_all.py +73 -0
  662. pygeai/tests/snippets/lab/processes/list_processes.py +10 -0
  663. pygeai/tests/snippets/lab/runner_1.py +212 -0
  664. pygeai/tests/snippets/lab/samples/__init__.py +0 -0
  665. pygeai/tests/snippets/lab/samples/summarize_files.py +162 -0
  666. pygeai/tests/snippets/lab/strategies/__init__.py +0 -0
  667. pygeai/tests/snippets/lab/strategies/create_reasoning_strategy.py +22 -0
  668. pygeai/tests/snippets/lab/strategies/get_reasoning_strategy.py +10 -0
  669. pygeai/tests/snippets/lab/strategies/list_reasoning_strategies.py +16 -0
  670. pygeai/tests/snippets/lab/strategies/update_reasoning_strategy.py +26 -0
  671. pygeai/tests/snippets/lab/tools/__init__.py +0 -0
  672. pygeai/tests/snippets/lab/tools/create_tool.py +48 -0
  673. pygeai/tests/snippets/lab/tools/create_tool_edge_case.py +50 -0
  674. pygeai/tests/snippets/lab/tools/delete_tool.py +21 -0
  675. pygeai/tests/snippets/lab/tools/get_parameter.py +21 -0
  676. pygeai/tests/snippets/lab/tools/get_tool.py +22 -0
  677. pygeai/tests/snippets/lab/tools/list_tools.py +23 -0
  678. pygeai/tests/snippets/lab/tools/publish_tool_revision.py +13 -0
  679. pygeai/tests/snippets/lab/tools/set_parameters.py +33 -0
  680. pygeai/tests/snippets/lab/tools/update_tool.py +52 -0
  681. pygeai/tests/snippets/lab/use_cases/__init__.py +0 -0
  682. pygeai/tests/snippets/lab/use_cases/c_code_fixer_agent_flow.py +238 -0
  683. pygeai/tests/snippets/lab/use_cases/create_cli_expert.py +1640 -0
  684. pygeai/tests/snippets/lab/use_cases/create_lab_expert.py +4541 -0
  685. pygeai/tests/snippets/lab/use_cases/create_tool_headless_web_browser.py +133 -0
  686. pygeai/tests/snippets/lab/use_cases/create_web_designer.py +189 -0
  687. pygeai/tests/snippets/lab/use_cases/create_web_reader.py +185 -0
  688. pygeai/tests/snippets/lab/use_cases/file_summarizer_example.py +157 -0
  689. pygeai/tests/snippets/lab/use_cases/file_summarizer_example_2.py +157 -0
  690. pygeai/tests/snippets/lab/use_cases/update_cli_expert.py +1773 -0
  691. pygeai/tests/snippets/lab/use_cases/update_lab_expert.py +4541 -0
  692. pygeai/tests/snippets/lab/use_cases/update_web_designer.py +188 -0
  693. pygeai/tests/snippets/lab/use_cases/update_web_reader.py +195 -0
  694. pygeai/tests/snippets/lab/use_cases/update_web_reader_with_tool.py +210 -0
  695. pygeai/tests/snippets/migrate/__init__.py +45 -0
  696. pygeai/tests/snippets/migrate/agent_migration.py +110 -0
  697. pygeai/tests/snippets/migrate/assistant_migration.py +64 -0
  698. pygeai/tests/snippets/migrate/orchestrator_examples.py +179 -0
  699. pygeai/tests/snippets/migrate/process_migration.py +64 -0
  700. pygeai/tests/snippets/migrate/project_migration.py +42 -0
  701. pygeai/tests/snippets/migrate/tool_migration.py +64 -0
  702. pygeai/tests/snippets/organization/__init__.py +0 -0
  703. pygeai/tests/snippets/organization/add_project_member.py +10 -0
  704. pygeai/tests/snippets/organization/add_project_member_batch.py +44 -0
  705. pygeai/tests/snippets/organization/create_project.py +23 -0
  706. pygeai/tests/snippets/organization/delete_project.py +7 -0
  707. pygeai/tests/snippets/organization/export_request_data.py +7 -0
  708. pygeai/tests/snippets/organization/get_memberships.py +12 -0
  709. pygeai/tests/snippets/organization/get_organization_members.py +6 -0
  710. pygeai/tests/snippets/organization/get_project_data.py +7 -0
  711. pygeai/tests/snippets/organization/get_project_list.py +8 -0
  712. pygeai/tests/snippets/organization/get_project_members.py +6 -0
  713. pygeai/tests/snippets/organization/get_project_memberships.py +12 -0
  714. pygeai/tests/snippets/organization/get_project_roles.py +6 -0
  715. pygeai/tests/snippets/organization/get_project_tokens.py +7 -0
  716. pygeai/tests/snippets/organization/update_project.py +14 -0
  717. pygeai/tests/snippets/rerank/__init__.py +0 -0
  718. pygeai/tests/snippets/rerank/rerank_chunks.py +19 -0
  719. pygeai/tests/snippets/secrets/__init__.py +0 -0
  720. pygeai/tests/snippets/usage_limit/__init__.py +0 -0
  721. pygeai/tests/snippets/usage_limit/delete_usage_limit.py +16 -0
  722. pygeai/tests/snippets/usage_limit/get_all_usage_limit_from_organization.py +12 -0
  723. pygeai/tests/snippets/usage_limit/get_usage_limit_from_organization.py +11 -0
  724. pygeai/tests/snippets/usage_limit/get_usage_limit_from_project.py +13 -0
  725. pygeai/tests/snippets/usage_limit/set_usage_limit_organization.py +22 -0
  726. pygeai/tests/snippets/usage_limit/set_usage_limit_project.py +23 -0
  727. pygeai/tests/snippets/usage_limit/update_usage_limit_organization.py +23 -0
  728. pygeai/tests/snippets/usage_limit/update_usage_limit_project.py +24 -0
  729. pygeai/vendor/a2a/__init__.py +1 -0
  730. pygeai/vendor/a2a/auth/__init__.py +0 -0
  731. pygeai/vendor/a2a/auth/user.py +31 -0
  732. pygeai/vendor/a2a/client/__init__.py +19 -0
  733. pygeai/vendor/a2a/client/client.py +425 -0
  734. pygeai/vendor/a2a/client/errors.py +33 -0
  735. pygeai/vendor/a2a/client/helpers.py +22 -0
  736. pygeai/vendor/a2a/py.typed +0 -0
  737. pygeai/vendor/a2a/server/__init__.py +1 -0
  738. pygeai/vendor/a2a/server/agent_execution/__init__.py +18 -0
  739. pygeai/vendor/a2a/server/agent_execution/agent_executor.py +44 -0
  740. pygeai/vendor/a2a/server/agent_execution/context.py +155 -0
  741. pygeai/vendor/a2a/server/agent_execution/request_context_builder.py +20 -0
  742. pygeai/vendor/a2a/server/agent_execution/simple_request_context_builder.py +77 -0
  743. pygeai/vendor/a2a/server/apps/__init__.py +16 -0
  744. pygeai/vendor/a2a/server/apps/jsonrpc/__init__.py +16 -0
  745. pygeai/vendor/a2a/server/apps/jsonrpc/fastapi_app.py +88 -0
  746. pygeai/vendor/a2a/server/apps/jsonrpc/jsonrpc_app.py +426 -0
  747. pygeai/vendor/a2a/server/apps/jsonrpc/starlette_app.py +123 -0
  748. pygeai/vendor/a2a/server/context.py +23 -0
  749. pygeai/vendor/a2a/server/events/__init__.py +21 -0
  750. pygeai/vendor/a2a/server/events/event_consumer.py +149 -0
  751. pygeai/vendor/a2a/server/events/event_queue.py +156 -0
  752. pygeai/vendor/a2a/server/events/in_memory_queue_manager.py +85 -0
  753. pygeai/vendor/a2a/server/events/queue_manager.py +35 -0
  754. pygeai/vendor/a2a/server/request_handlers/__init__.py +20 -0
  755. pygeai/vendor/a2a/server/request_handlers/default_request_handler.py +435 -0
  756. pygeai/vendor/a2a/server/request_handlers/jsonrpc_handler.py +327 -0
  757. pygeai/vendor/a2a/server/request_handlers/request_handler.py +161 -0
  758. pygeai/vendor/a2a/server/request_handlers/response_helpers.py +133 -0
  759. pygeai/vendor/a2a/server/tasks/__init__.py +20 -0
  760. pygeai/vendor/a2a/server/tasks/inmemory_push_notifier.py +62 -0
  761. pygeai/vendor/a2a/server/tasks/inmemory_task_store.py +51 -0
  762. pygeai/vendor/a2a/server/tasks/push_notifier.py +25 -0
  763. pygeai/vendor/a2a/server/tasks/result_aggregator.py +151 -0
  764. pygeai/vendor/a2a/server/tasks/task_manager.py +253 -0
  765. pygeai/vendor/a2a/server/tasks/task_store.py +22 -0
  766. pygeai/vendor/a2a/server/tasks/task_updater.py +155 -0
  767. pygeai/vendor/a2a/types.py +1624 -0
  768. pygeai/vendor/a2a/utils/__init__.py +40 -0
  769. pygeai/vendor/a2a/utils/artifact.py +72 -0
  770. pygeai/vendor/a2a/utils/errors.py +69 -0
  771. pygeai/vendor/a2a/utils/helpers.py +176 -0
  772. pygeai/vendor/a2a/utils/message.py +83 -0
  773. pygeai/vendor/a2a/utils/task.py +57 -0
  774. pygeai/vendor/a2a/utils/telemetry.py +299 -0
  775. pygeai-0.6.0b15.dist-info/METADATA +205 -0
  776. pygeai-0.6.0b15.dist-info/RECORD +799 -0
  777. {pygeai-0.1.6.dist-info → pygeai-0.6.0b15.dist-info}/WHEEL +1 -1
  778. pygeai-0.6.0b15.dist-info/entry_points.txt +5 -0
  779. {pygeai-0.1.6.dist-info → pygeai-0.6.0b15.dist-info/licenses}/LICENSE +13 -1
  780. {pygeai-0.1.6.dist-info → pygeai-0.6.0b15.dist-info}/top_level.txt +0 -1
  781. docs/source/conf.py +0 -45
  782. pygeai/core/clients.py +0 -240
  783. pygeai/tests/core/test_clients.py +0 -49
  784. pygeai-0.1.6.dist-info/METADATA +0 -92
  785. pygeai-0.1.6.dist-info/RECORD +0 -65
  786. pygeai-0.1.6.dist-info/SOURCES.sync-conflict-20241223-145950-3QD4F42.txt +0 -41
  787. pygeai-0.1.6.dist-info/entry_points.txt +0 -2
  788. /pygeai/{agent → analytics}/__init__.py +0 -0
@@ -0,0 +1,1624 @@
1
+ # generated by datamodel-codegen:
2
+ # filename: https://raw.githubusercontent.com/google-a2a/A2A/refs/heads/main/specification/json/a2a.json
3
+
4
+ from __future__ import annotations
5
+
6
+ from enum import Enum
7
+ from typing import Any, Literal
8
+
9
+ from pydantic import BaseModel, Field, RootModel
10
+
11
+
12
+ class A2A(RootModel[Any]):
13
+ root: Any
14
+
15
+
16
+ class In(str, Enum):
17
+ """
18
+ The location of the API key. Valid values are "query", "header", or "cookie".
19
+ """
20
+
21
+ cookie = 'cookie'
22
+ header = 'header'
23
+ query = 'query'
24
+
25
+
26
+ class APIKeySecurityScheme(BaseModel):
27
+ """
28
+ API Key security scheme.
29
+ """
30
+
31
+ description: str | None = None
32
+ """
33
+ Description of this security scheme.
34
+ """
35
+ in_: In = Field(..., alias='in')
36
+ """
37
+ The location of the API key. Valid values are "query", "header", or "cookie".
38
+ """
39
+ name: str
40
+ """
41
+ The name of the header, query or cookie parameter to be used.
42
+ """
43
+ type: Literal['apiKey'] = 'apiKey'
44
+
45
+
46
+ class AgentExtension(BaseModel):
47
+ """
48
+ A declaration of an extension supported by an Agent.
49
+ """
50
+
51
+ description: str | None = None
52
+ """
53
+ A description of how this agent uses this extension.
54
+ """
55
+ params: dict[str, Any] | None = None
56
+ """
57
+ Optional configuration for the extension.
58
+ """
59
+ required: bool | None = None
60
+ """
61
+ Whether the client must follow specific requirements of the extension.
62
+ """
63
+ uri: str
64
+ """
65
+ The URI of the extension.
66
+ """
67
+
68
+
69
+ class AgentProvider(BaseModel):
70
+ """
71
+ Represents the service provider of an agent.
72
+ """
73
+
74
+ organization: str
75
+ """
76
+ Agent provider's organization name.
77
+ """
78
+ url: str
79
+ """
80
+ Agent provider's URL.
81
+ """
82
+
83
+
84
+ class AgentSkill(BaseModel):
85
+ """
86
+ Represents a unit of capability that an agent can perform.
87
+ """
88
+
89
+ description: str
90
+ """
91
+ Description of the skill - will be used by the client or a human
92
+ as a hint to understand what the skill does.
93
+ """
94
+ examples: list[str] | None = None
95
+ """
96
+ The set of example scenarios that the skill can perform.
97
+ Will be used by the client as a hint to understand how the skill can be used.
98
+ """
99
+ id: str
100
+ """
101
+ Unique identifier for the agent's skill.
102
+ """
103
+ inputModes: list[str] | None = None
104
+ """
105
+ The set of interaction modes that the skill supports
106
+ (if different than the default).
107
+ Supported media types for input.
108
+ """
109
+ name: str
110
+ """
111
+ Human readable name of the skill.
112
+ """
113
+ outputModes: list[str] | None = None
114
+ """
115
+ Supported media types for output.
116
+ """
117
+ tags: list[str]
118
+ """
119
+ Set of tagwords describing classes of capabilities for this specific skill.
120
+ """
121
+
122
+
123
+ class AuthorizationCodeOAuthFlow(BaseModel):
124
+ """
125
+ Configuration details for a supported OAuth Flow
126
+ """
127
+
128
+ authorizationUrl: str
129
+ """
130
+ The authorization URL to be used for this flow. This MUST be in the form of a URL. The OAuth2
131
+ standard requires the use of TLS
132
+ """
133
+ refreshUrl: str | None = None
134
+ """
135
+ The URL to be used for obtaining refresh tokens. This MUST be in the form of a URL. The OAuth2
136
+ standard requires the use of TLS.
137
+ """
138
+ scopes: dict[str, str]
139
+ """
140
+ The available scopes for the OAuth2 security scheme. A map between the scope name and a short
141
+ description for it. The map MAY be empty.
142
+ """
143
+ tokenUrl: str
144
+ """
145
+ The token URL to be used for this flow. This MUST be in the form of a URL. The OAuth2 standard
146
+ requires the use of TLS.
147
+ """
148
+
149
+
150
+ class ClientCredentialsOAuthFlow(BaseModel):
151
+ """
152
+ Configuration details for a supported OAuth Flow
153
+ """
154
+
155
+ refreshUrl: str | None = None
156
+ """
157
+ The URL to be used for obtaining refresh tokens. This MUST be in the form of a URL. The OAuth2
158
+ standard requires the use of TLS.
159
+ """
160
+ scopes: dict[str, str]
161
+ """
162
+ The available scopes for the OAuth2 security scheme. A map between the scope name and a short
163
+ description for it. The map MAY be empty.
164
+ """
165
+ tokenUrl: str
166
+ """
167
+ The token URL to be used for this flow. This MUST be in the form of a URL. The OAuth2 standard
168
+ requires the use of TLS.
169
+ """
170
+
171
+
172
+ class ContentTypeNotSupportedError(BaseModel):
173
+ """
174
+ A2A specific error indicating incompatible content types between request and agent capabilities.
175
+ """
176
+
177
+ code: Literal[-32005] = -32005
178
+ """
179
+ A Number that indicates the error type that occurred.
180
+ """
181
+ data: Any | None = None
182
+ """
183
+ A Primitive or Structured value that contains additional information about the error.
184
+ This may be omitted.
185
+ """
186
+ message: str | None = 'Incompatible content types'
187
+ """
188
+ A String providing a short description of the error.
189
+ """
190
+
191
+
192
+ class DataPart(BaseModel):
193
+ """
194
+ Represents a structured data segment within a message part.
195
+ """
196
+
197
+ data: dict[str, Any]
198
+ """
199
+ Structured data content
200
+ """
201
+ kind: Literal['data'] = 'data'
202
+ """
203
+ Part type - data for DataParts
204
+ """
205
+ metadata: dict[str, Any] | None = None
206
+ """
207
+ Optional metadata associated with the part.
208
+ """
209
+
210
+
211
+ class FileBase(BaseModel):
212
+ """
213
+ Represents the base entity for FileParts
214
+ """
215
+
216
+ mimeType: str | None = None
217
+ """
218
+ Optional mimeType for the file
219
+ """
220
+ name: str | None = None
221
+ """
222
+ Optional name for the file
223
+ """
224
+
225
+
226
+ class FileWithBytes(BaseModel):
227
+ """
228
+ Define the variant where 'bytes' is present and 'uri' is absent
229
+ """
230
+
231
+ bytes: str
232
+ """
233
+ base64 encoded content of the file
234
+ """
235
+ mimeType: str | None = None
236
+ """
237
+ Optional mimeType for the file
238
+ """
239
+ name: str | None = None
240
+ """
241
+ Optional name for the file
242
+ """
243
+
244
+
245
+ class FileWithUri(BaseModel):
246
+ """
247
+ Define the variant where 'uri' is present and 'bytes' is absent
248
+ """
249
+
250
+ mimeType: str | None = None
251
+ """
252
+ Optional mimeType for the file
253
+ """
254
+ name: str | None = None
255
+ """
256
+ Optional name for the file
257
+ """
258
+ uri: str
259
+ """
260
+ URL for the File content
261
+ """
262
+
263
+
264
+ class HTTPAuthSecurityScheme(BaseModel):
265
+ """
266
+ HTTP Authentication security scheme.
267
+ """
268
+
269
+ bearerFormat: str | None = None
270
+ """
271
+ A hint to the client to identify how the bearer token is formatted. Bearer tokens are usually
272
+ generated by an authorization server, so this information is primarily for documentation
273
+ purposes.
274
+ """
275
+ description: str | None = None
276
+ """
277
+ Description of this security scheme.
278
+ """
279
+ scheme: str
280
+ """
281
+ The name of the HTTP Authentication scheme to be used in the Authorization header as defined
282
+ in RFC7235. The values used SHOULD be registered in the IANA Authentication Scheme registry.
283
+ The value is case-insensitive, as defined in RFC7235.
284
+ """
285
+ type: Literal['http'] = 'http'
286
+
287
+
288
+ class ImplicitOAuthFlow(BaseModel):
289
+ """
290
+ Configuration details for a supported OAuth Flow
291
+ """
292
+
293
+ authorizationUrl: str
294
+ """
295
+ The authorization URL to be used for this flow. This MUST be in the form of a URL. The OAuth2
296
+ standard requires the use of TLS
297
+ """
298
+ refreshUrl: str | None = None
299
+ """
300
+ The URL to be used for obtaining refresh tokens. This MUST be in the form of a URL. The OAuth2
301
+ standard requires the use of TLS.
302
+ """
303
+ scopes: dict[str, str]
304
+ """
305
+ The available scopes for the OAuth2 security scheme. A map between the scope name and a short
306
+ description for it. The map MAY be empty.
307
+ """
308
+
309
+
310
+ class InternalError(BaseModel):
311
+ """
312
+ JSON-RPC error indicating an internal JSON-RPC error on the server.
313
+ """
314
+
315
+ code: Literal[-32603] = -32603
316
+ """
317
+ A Number that indicates the error type that occurred.
318
+ """
319
+ data: Any | None = None
320
+ """
321
+ A Primitive or Structured value that contains additional information about the error.
322
+ This may be omitted.
323
+ """
324
+ message: str | None = 'Internal error'
325
+ """
326
+ A String providing a short description of the error.
327
+ """
328
+
329
+
330
+ class InvalidAgentResponseError(BaseModel):
331
+ """
332
+ A2A specific error indicating agent returned invalid response for the current method
333
+ """
334
+
335
+ code: Literal[-32006] = -32006
336
+ """
337
+ A Number that indicates the error type that occurred.
338
+ """
339
+ data: Any | None = None
340
+ """
341
+ A Primitive or Structured value that contains additional information about the error.
342
+ This may be omitted.
343
+ """
344
+ message: str | None = 'Invalid agent response'
345
+ """
346
+ A String providing a short description of the error.
347
+ """
348
+
349
+
350
+ class InvalidParamsError(BaseModel):
351
+ """
352
+ JSON-RPC error indicating invalid method parameter(s).
353
+ """
354
+
355
+ code: Literal[-32602] = -32602
356
+ """
357
+ A Number that indicates the error type that occurred.
358
+ """
359
+ data: Any | None = None
360
+ """
361
+ A Primitive or Structured value that contains additional information about the error.
362
+ This may be omitted.
363
+ """
364
+ message: str | None = 'Invalid parameters'
365
+ """
366
+ A String providing a short description of the error.
367
+ """
368
+
369
+
370
+ class InvalidRequestError(BaseModel):
371
+ """
372
+ JSON-RPC error indicating the JSON sent is not a valid Request object.
373
+ """
374
+
375
+ code: Literal[-32600] = -32600
376
+ """
377
+ A Number that indicates the error type that occurred.
378
+ """
379
+ data: Any | None = None
380
+ """
381
+ A Primitive or Structured value that contains additional information about the error.
382
+ This may be omitted.
383
+ """
384
+ message: str | None = 'Request payload validation error'
385
+ """
386
+ A String providing a short description of the error.
387
+ """
388
+
389
+
390
+ class JSONParseError(BaseModel):
391
+ """
392
+ JSON-RPC error indicating invalid JSON was received by the server.
393
+ """
394
+
395
+ code: Literal[-32700] = -32700
396
+ """
397
+ A Number that indicates the error type that occurred.
398
+ """
399
+ data: Any | None = None
400
+ """
401
+ A Primitive or Structured value that contains additional information about the error.
402
+ This may be omitted.
403
+ """
404
+ message: str | None = 'Invalid JSON payload'
405
+ """
406
+ A String providing a short description of the error.
407
+ """
408
+
409
+
410
+ class JSONRPCError(BaseModel):
411
+ """
412
+ Represents a JSON-RPC 2.0 Error object.
413
+ This is typically included in a JSONRPCErrorResponse when an error occurs.
414
+ """
415
+
416
+ code: int
417
+ """
418
+ A Number that indicates the error type that occurred.
419
+ """
420
+ data: Any | None = None
421
+ """
422
+ A Primitive or Structured value that contains additional information about the error.
423
+ This may be omitted.
424
+ """
425
+ message: str
426
+ """
427
+ A String providing a short description of the error.
428
+ """
429
+
430
+
431
+ class JSONRPCMessage(BaseModel):
432
+ """
433
+ Base interface for any JSON-RPC 2.0 request or response.
434
+ """
435
+
436
+ id: str | int | None = None
437
+ """
438
+ An identifier established by the Client that MUST contain a String, Number.
439
+ Numbers SHOULD NOT contain fractional parts.
440
+ """
441
+ jsonrpc: Literal['2.0'] = '2.0'
442
+ """
443
+ Specifies the version of the JSON-RPC protocol. MUST be exactly "2.0".
444
+ """
445
+
446
+
447
+ class JSONRPCRequest(BaseModel):
448
+ """
449
+ Represents a JSON-RPC 2.0 Request object.
450
+ """
451
+
452
+ id: str | int | None = None
453
+ """
454
+ An identifier established by the Client that MUST contain a String, Number.
455
+ Numbers SHOULD NOT contain fractional parts.
456
+ """
457
+ jsonrpc: Literal['2.0'] = '2.0'
458
+ """
459
+ Specifies the version of the JSON-RPC protocol. MUST be exactly "2.0".
460
+ """
461
+ method: str
462
+ """
463
+ A String containing the name of the method to be invoked.
464
+ """
465
+ params: dict[str, Any] | None = None
466
+ """
467
+ A Structured value that holds the parameter values to be used during the invocation of the method.
468
+ """
469
+
470
+
471
+ class JSONRPCSuccessResponse(BaseModel):
472
+ """
473
+ Represents a JSON-RPC 2.0 Success Response object.
474
+ """
475
+
476
+ id: str | int | None = None
477
+ """
478
+ An identifier established by the Client that MUST contain a String, Number.
479
+ Numbers SHOULD NOT contain fractional parts.
480
+ """
481
+ jsonrpc: Literal['2.0'] = '2.0'
482
+ """
483
+ Specifies the version of the JSON-RPC protocol. MUST be exactly "2.0".
484
+ """
485
+ result: Any
486
+ """
487
+ The result object on success
488
+ """
489
+
490
+
491
+ class Role(str, Enum):
492
+ """
493
+ Message sender's role
494
+ """
495
+
496
+ agent = 'agent'
497
+ user = 'user'
498
+
499
+
500
+ class MethodNotFoundError(BaseModel):
501
+ """
502
+ JSON-RPC error indicating the method does not exist or is not available.
503
+ """
504
+
505
+ code: Literal[-32601] = -32601
506
+ """
507
+ A Number that indicates the error type that occurred.
508
+ """
509
+ data: Any | None = None
510
+ """
511
+ A Primitive or Structured value that contains additional information about the error.
512
+ This may be omitted.
513
+ """
514
+ message: str | None = 'Method not found'
515
+ """
516
+ A String providing a short description of the error.
517
+ """
518
+
519
+
520
+ class OpenIdConnectSecurityScheme(BaseModel):
521
+ """
522
+ OpenID Connect security scheme configuration.
523
+ """
524
+
525
+ description: str | None = None
526
+ """
527
+ Description of this security scheme.
528
+ """
529
+ openIdConnectUrl: str
530
+ """
531
+ Well-known URL to discover the [[OpenID-Connect-Discovery]] provider metadata.
532
+ """
533
+ type: Literal['openIdConnect'] = 'openIdConnect'
534
+
535
+
536
+ class PartBase(BaseModel):
537
+ """
538
+ Base properties common to all message parts.
539
+ """
540
+
541
+ metadata: dict[str, Any] | None = None
542
+ """
543
+ Optional metadata associated with the part.
544
+ """
545
+
546
+
547
+ class PasswordOAuthFlow(BaseModel):
548
+ """
549
+ Configuration details for a supported OAuth Flow
550
+ """
551
+
552
+ refreshUrl: str | None = None
553
+ """
554
+ The URL to be used for obtaining refresh tokens. This MUST be in the form of a URL. The OAuth2
555
+ standard requires the use of TLS.
556
+ """
557
+ scopes: dict[str, str]
558
+ """
559
+ The available scopes for the OAuth2 security scheme. A map between the scope name and a short
560
+ description for it. The map MAY be empty.
561
+ """
562
+ tokenUrl: str
563
+ """
564
+ The token URL to be used for this flow. This MUST be in the form of a URL. The OAuth2 standard
565
+ requires the use of TLS.
566
+ """
567
+
568
+
569
+ class PushNotificationAuthenticationInfo(BaseModel):
570
+ """
571
+ Defines authentication details for push notifications.
572
+ """
573
+
574
+ credentials: str | None = None
575
+ """
576
+ Optional credentials
577
+ """
578
+ schemes: list[str]
579
+ """
580
+ Supported authentication schemes - e.g. Basic, Bearer
581
+ """
582
+
583
+
584
+ class PushNotificationConfig(BaseModel):
585
+ """
586
+ Configuration for setting up push notifications for task updates.
587
+ """
588
+
589
+ authentication: PushNotificationAuthenticationInfo | None = None
590
+ id: str | None = None
591
+ """
592
+ Push Notification ID - created by server to support multiple callbacks
593
+ """
594
+ token: str | None = None
595
+ """
596
+ Token unique to this task/session.
597
+ """
598
+ url: str
599
+ """
600
+ URL for sending the push notifications.
601
+ """
602
+
603
+
604
+ class PushNotificationNotSupportedError(BaseModel):
605
+ """
606
+ A2A specific error indicating the agent does not support push notifications.
607
+ """
608
+
609
+ code: Literal[-32003] = -32003
610
+ """
611
+ A Number that indicates the error type that occurred.
612
+ """
613
+ data: Any | None = None
614
+ """
615
+ A Primitive or Structured value that contains additional information about the error.
616
+ This may be omitted.
617
+ """
618
+ message: str | None = 'Push Notification is not supported'
619
+ """
620
+ A String providing a short description of the error.
621
+ """
622
+
623
+
624
+ class SecuritySchemeBase(BaseModel):
625
+ """
626
+ Base properties shared by all security schemes.
627
+ """
628
+
629
+ description: str | None = None
630
+ """
631
+ Description of this security scheme.
632
+ """
633
+
634
+
635
+ class TaskIdParams(BaseModel):
636
+ """
637
+ Parameters containing only a task ID, used for simple task operations.
638
+ """
639
+
640
+ id: str
641
+ """
642
+ Task id.
643
+ """
644
+ metadata: dict[str, Any] | None = None
645
+
646
+
647
+ class TaskNotCancelableError(BaseModel):
648
+ """
649
+ A2A specific error indicating the task is in a state where it cannot be canceled.
650
+ """
651
+
652
+ code: Literal[-32002] = -32002
653
+ """
654
+ A Number that indicates the error type that occurred.
655
+ """
656
+ data: Any | None = None
657
+ """
658
+ A Primitive or Structured value that contains additional information about the error.
659
+ This may be omitted.
660
+ """
661
+ message: str | None = 'Task cannot be canceled'
662
+ """
663
+ A String providing a short description of the error.
664
+ """
665
+
666
+
667
+ class TaskNotFoundError(BaseModel):
668
+ """
669
+ A2A specific error indicating the requested task ID was not found.
670
+ """
671
+
672
+ code: Literal[-32001] = -32001
673
+ """
674
+ A Number that indicates the error type that occurred.
675
+ """
676
+ data: Any | None = None
677
+ """
678
+ A Primitive or Structured value that contains additional information about the error.
679
+ This may be omitted.
680
+ """
681
+ message: str | None = 'Task not found'
682
+ """
683
+ A String providing a short description of the error.
684
+ """
685
+
686
+
687
+ class TaskPushNotificationConfig(BaseModel):
688
+ """
689
+ Parameters for setting or getting push notification configuration for a task
690
+ """
691
+
692
+ pushNotificationConfig: PushNotificationConfig
693
+ """
694
+ Push notification configuration.
695
+ """
696
+ taskId: str
697
+ """
698
+ Task id.
699
+ """
700
+
701
+
702
+ class TaskQueryParams(BaseModel):
703
+ """
704
+ Parameters for querying a task, including optional history length.
705
+ """
706
+
707
+ historyLength: int | None = None
708
+ """
709
+ Number of recent messages to be retrieved.
710
+ """
711
+ id: str
712
+ """
713
+ Task id.
714
+ """
715
+ metadata: dict[str, Any] | None = None
716
+
717
+
718
+ class TaskResubscriptionRequest(BaseModel):
719
+ """
720
+ JSON-RPC request model for the 'tasks/resubscribe' method.
721
+ """
722
+
723
+ id: str | int
724
+ """
725
+ An identifier established by the Client that MUST contain a String, Number.
726
+ Numbers SHOULD NOT contain fractional parts.
727
+ """
728
+ jsonrpc: Literal['2.0'] = '2.0'
729
+ """
730
+ Specifies the version of the JSON-RPC protocol. MUST be exactly "2.0".
731
+ """
732
+ method: Literal['tasks/resubscribe'] = 'tasks/resubscribe'
733
+ """
734
+ A String containing the name of the method to be invoked.
735
+ """
736
+ params: TaskIdParams
737
+ """
738
+ A Structured value that holds the parameter values to be used during the invocation of the method.
739
+ """
740
+
741
+
742
+ class TaskState(str, Enum):
743
+ """
744
+ Represents the possible states of a Task.
745
+ """
746
+
747
+ submitted = 'submitted'
748
+ working = 'working'
749
+ input_required = 'input-required'
750
+ completed = 'completed'
751
+ canceled = 'canceled'
752
+ failed = 'failed'
753
+ rejected = 'rejected'
754
+ auth_required = 'auth-required'
755
+ unknown = 'unknown'
756
+
757
+
758
+ class TextPart(BaseModel):
759
+ """
760
+ Represents a text segment within parts.
761
+ """
762
+
763
+ kind: Literal['text'] = 'text'
764
+ """
765
+ Part type - text for TextParts
766
+ """
767
+ metadata: dict[str, Any] | None = None
768
+ """
769
+ Optional metadata associated with the part.
770
+ """
771
+ text: str
772
+ """
773
+ Text content
774
+ """
775
+
776
+
777
+ class UnsupportedOperationError(BaseModel):
778
+ """
779
+ A2A specific error indicating the requested operation is not supported by the agent.
780
+ """
781
+
782
+ code: Literal[-32004] = -32004
783
+ """
784
+ A Number that indicates the error type that occurred.
785
+ """
786
+ data: Any | None = None
787
+ """
788
+ A Primitive or Structured value that contains additional information about the error.
789
+ This may be omitted.
790
+ """
791
+ message: str | None = 'This operation is not supported'
792
+ """
793
+ A String providing a short description of the error.
794
+ """
795
+
796
+
797
+ class A2AError(
798
+ RootModel[
799
+ JSONParseError
800
+ | InvalidRequestError
801
+ | MethodNotFoundError
802
+ | InvalidParamsError
803
+ | InternalError
804
+ | TaskNotFoundError
805
+ | TaskNotCancelableError
806
+ | PushNotificationNotSupportedError
807
+ | UnsupportedOperationError
808
+ | ContentTypeNotSupportedError
809
+ | InvalidAgentResponseError
810
+ ]
811
+ ):
812
+ root: (
813
+ JSONParseError
814
+ | InvalidRequestError
815
+ | MethodNotFoundError
816
+ | InvalidParamsError
817
+ | InternalError
818
+ | TaskNotFoundError
819
+ | TaskNotCancelableError
820
+ | PushNotificationNotSupportedError
821
+ | UnsupportedOperationError
822
+ | ContentTypeNotSupportedError
823
+ | InvalidAgentResponseError
824
+ )
825
+
826
+
827
+ class AgentCapabilities(BaseModel):
828
+ """
829
+ Defines optional capabilities supported by an agent.
830
+ """
831
+
832
+ extensions: list[AgentExtension] | None = None
833
+ """
834
+ extensions supported by this agent.
835
+ """
836
+ pushNotifications: bool | None = None
837
+ """
838
+ true if the agent can notify updates to client.
839
+ """
840
+ stateTransitionHistory: bool | None = None
841
+ """
842
+ true if the agent exposes status change history for tasks.
843
+ """
844
+ streaming: bool | None = None
845
+ """
846
+ true if the agent supports SSE.
847
+ """
848
+
849
+
850
+ class CancelTaskRequest(BaseModel):
851
+ """
852
+ JSON-RPC request model for the 'tasks/cancel' method.
853
+ """
854
+
855
+ id: str | int
856
+ """
857
+ An identifier established by the Client that MUST contain a String, Number.
858
+ Numbers SHOULD NOT contain fractional parts.
859
+ """
860
+ jsonrpc: Literal['2.0'] = '2.0'
861
+ """
862
+ Specifies the version of the JSON-RPC protocol. MUST be exactly "2.0".
863
+ """
864
+ method: Literal['tasks/cancel'] = 'tasks/cancel'
865
+ """
866
+ A String containing the name of the method to be invoked.
867
+ """
868
+ params: TaskIdParams
869
+ """
870
+ A Structured value that holds the parameter values to be used during the invocation of the method.
871
+ """
872
+
873
+
874
+ class FilePart(BaseModel):
875
+ """
876
+ Represents a File segment within parts.
877
+ """
878
+
879
+ file: FileWithBytes | FileWithUri
880
+ """
881
+ File content either as url or bytes
882
+ """
883
+ kind: Literal['file'] = 'file'
884
+ """
885
+ Part type - file for FileParts
886
+ """
887
+ metadata: dict[str, Any] | None = None
888
+ """
889
+ Optional metadata associated with the part.
890
+ """
891
+
892
+
893
+ class GetTaskPushNotificationConfigRequest(BaseModel):
894
+ """
895
+ JSON-RPC request model for the 'tasks/pushNotificationConfig/get' method.
896
+ """
897
+
898
+ id: str | int
899
+ """
900
+ An identifier established by the Client that MUST contain a String, Number.
901
+ Numbers SHOULD NOT contain fractional parts.
902
+ """
903
+ jsonrpc: Literal['2.0'] = '2.0'
904
+ """
905
+ Specifies the version of the JSON-RPC protocol. MUST be exactly "2.0".
906
+ """
907
+ method: Literal['tasks/pushNotificationConfig/get'] = (
908
+ 'tasks/pushNotificationConfig/get'
909
+ )
910
+ """
911
+ A String containing the name of the method to be invoked.
912
+ """
913
+ params: TaskIdParams
914
+ """
915
+ A Structured value that holds the parameter values to be used during the invocation of the method.
916
+ """
917
+
918
+
919
+ class GetTaskPushNotificationConfigSuccessResponse(BaseModel):
920
+ """
921
+ JSON-RPC success response model for the 'tasks/pushNotificationConfig/get' method.
922
+ """
923
+
924
+ id: str | int | None = None
925
+ """
926
+ An identifier established by the Client that MUST contain a String, Number.
927
+ Numbers SHOULD NOT contain fractional parts.
928
+ """
929
+ jsonrpc: Literal['2.0'] = '2.0'
930
+ """
931
+ Specifies the version of the JSON-RPC protocol. MUST be exactly "2.0".
932
+ """
933
+ result: TaskPushNotificationConfig
934
+ """
935
+ The result object on success.
936
+ """
937
+
938
+
939
+ class GetTaskRequest(BaseModel):
940
+ """
941
+ JSON-RPC request model for the 'tasks/get' method.
942
+ """
943
+
944
+ id: str | int
945
+ """
946
+ An identifier established by the Client that MUST contain a String, Number.
947
+ Numbers SHOULD NOT contain fractional parts.
948
+ """
949
+ jsonrpc: Literal['2.0'] = '2.0'
950
+ """
951
+ Specifies the version of the JSON-RPC protocol. MUST be exactly "2.0".
952
+ """
953
+ method: Literal['tasks/get'] = 'tasks/get'
954
+ """
955
+ A String containing the name of the method to be invoked.
956
+ """
957
+ params: TaskQueryParams
958
+ """
959
+ A Structured value that holds the parameter values to be used during the invocation of the method.
960
+ """
961
+
962
+
963
+ class JSONRPCErrorResponse(BaseModel):
964
+ """
965
+ Represents a JSON-RPC 2.0 Error Response object.
966
+ """
967
+
968
+ error: (
969
+ JSONRPCError
970
+ | JSONParseError
971
+ | InvalidRequestError
972
+ | MethodNotFoundError
973
+ | InvalidParamsError
974
+ | InternalError
975
+ | TaskNotFoundError
976
+ | TaskNotCancelableError
977
+ | PushNotificationNotSupportedError
978
+ | UnsupportedOperationError
979
+ | ContentTypeNotSupportedError
980
+ | InvalidAgentResponseError
981
+ )
982
+ id: str | int | None = None
983
+ """
984
+ An identifier established by the Client that MUST contain a String, Number.
985
+ Numbers SHOULD NOT contain fractional parts.
986
+ """
987
+ jsonrpc: Literal['2.0'] = '2.0'
988
+ """
989
+ Specifies the version of the JSON-RPC protocol. MUST be exactly "2.0".
990
+ """
991
+
992
+
993
+ class MessageSendConfiguration(BaseModel):
994
+ """
995
+ Configuration for the send message request.
996
+ """
997
+
998
+ acceptedOutputModes: list[str]
999
+ """
1000
+ Accepted output modalities by the client.
1001
+ """
1002
+ blocking: bool | None = None
1003
+ """
1004
+ If the server should treat the client as a blocking request.
1005
+ """
1006
+ historyLength: int | None = None
1007
+ """
1008
+ Number of recent messages to be retrieved.
1009
+ """
1010
+ pushNotificationConfig: PushNotificationConfig | None = None
1011
+ """
1012
+ Where the server should send notifications when disconnected.
1013
+ """
1014
+
1015
+
1016
+ class OAuthFlows(BaseModel):
1017
+ """
1018
+ Allows configuration of the supported OAuth Flows
1019
+ """
1020
+
1021
+ authorizationCode: AuthorizationCodeOAuthFlow | None = None
1022
+ """
1023
+ Configuration for the OAuth Authorization Code flow. Previously called accessCode in OpenAPI 2.0.
1024
+ """
1025
+ clientCredentials: ClientCredentialsOAuthFlow | None = None
1026
+ """
1027
+ Configuration for the OAuth Client Credentials flow. Previously called application in OpenAPI 2.0
1028
+ """
1029
+ implicit: ImplicitOAuthFlow | None = None
1030
+ """
1031
+ Configuration for the OAuth Implicit flow
1032
+ """
1033
+ password: PasswordOAuthFlow | None = None
1034
+ """
1035
+ Configuration for the OAuth Resource Owner Password flow
1036
+ """
1037
+
1038
+
1039
+ class Part(RootModel[TextPart | FilePart | DataPart]):
1040
+ root: TextPart | FilePart | DataPart
1041
+ """
1042
+ Represents a part of a message, which can be text, a file, or structured data.
1043
+ """
1044
+
1045
+
1046
+ class SetTaskPushNotificationConfigRequest(BaseModel):
1047
+ """
1048
+ JSON-RPC request model for the 'tasks/pushNotificationConfig/set' method.
1049
+ """
1050
+
1051
+ id: str | int
1052
+ """
1053
+ An identifier established by the Client that MUST contain a String, Number.
1054
+ Numbers SHOULD NOT contain fractional parts.
1055
+ """
1056
+ jsonrpc: Literal['2.0'] = '2.0'
1057
+ """
1058
+ Specifies the version of the JSON-RPC protocol. MUST be exactly "2.0".
1059
+ """
1060
+ method: Literal['tasks/pushNotificationConfig/set'] = (
1061
+ 'tasks/pushNotificationConfig/set'
1062
+ )
1063
+ """
1064
+ A String containing the name of the method to be invoked.
1065
+ """
1066
+ params: TaskPushNotificationConfig
1067
+ """
1068
+ A Structured value that holds the parameter values to be used during the invocation of the method.
1069
+ """
1070
+
1071
+
1072
+ class SetTaskPushNotificationConfigSuccessResponse(BaseModel):
1073
+ """
1074
+ JSON-RPC success response model for the 'tasks/pushNotificationConfig/set' method.
1075
+ """
1076
+
1077
+ id: str | int | None = None
1078
+ """
1079
+ An identifier established by the Client that MUST contain a String, Number.
1080
+ Numbers SHOULD NOT contain fractional parts.
1081
+ """
1082
+ jsonrpc: Literal['2.0'] = '2.0'
1083
+ """
1084
+ Specifies the version of the JSON-RPC protocol. MUST be exactly "2.0".
1085
+ """
1086
+ result: TaskPushNotificationConfig
1087
+ """
1088
+ The result object on success.
1089
+ """
1090
+
1091
+
1092
+ class Artifact(BaseModel):
1093
+ """
1094
+ Represents an artifact generated for a task.
1095
+ """
1096
+
1097
+ artifactId: str
1098
+ """
1099
+ Unique identifier for the artifact.
1100
+ """
1101
+ description: str | None = None
1102
+ """
1103
+ Optional description for the artifact.
1104
+ """
1105
+ extensions: list[str] | None = None
1106
+ """
1107
+ The URIs of extensions that are present or contributed to this Artifact.
1108
+ """
1109
+ metadata: dict[str, Any] | None = None
1110
+ """
1111
+ Extension metadata.
1112
+ """
1113
+ name: str | None = None
1114
+ """
1115
+ Optional name for the artifact.
1116
+ """
1117
+ parts: list[Part]
1118
+ """
1119
+ Artifact parts.
1120
+ """
1121
+
1122
+
1123
+ class GetTaskPushNotificationConfigResponse(
1124
+ RootModel[JSONRPCErrorResponse | GetTaskPushNotificationConfigSuccessResponse]
1125
+ ):
1126
+ root: JSONRPCErrorResponse | GetTaskPushNotificationConfigSuccessResponse
1127
+ """
1128
+ JSON-RPC response for the 'tasks/pushNotificationConfig/set' method.
1129
+ """
1130
+
1131
+
1132
+ class Message(BaseModel):
1133
+ """
1134
+ Represents a single message exchanged between user and agent.
1135
+ """
1136
+
1137
+ contextId: str | None = None
1138
+ """
1139
+ The context the message is associated with
1140
+ """
1141
+ extensions: list[str] | None = None
1142
+ """
1143
+ The URIs of extensions that are present or contributed to this Message.
1144
+ """
1145
+ kind: Literal['message'] = 'message'
1146
+ """
1147
+ Event type
1148
+ """
1149
+ messageId: str
1150
+ """
1151
+ Identifier created by the message creator
1152
+ """
1153
+ metadata: dict[str, Any] | None = None
1154
+ """
1155
+ Extension metadata.
1156
+ """
1157
+ parts: list[Part]
1158
+ """
1159
+ Message content
1160
+ """
1161
+ referenceTaskIds: list[str] | None = None
1162
+ """
1163
+ List of tasks referenced as context by this message.
1164
+ """
1165
+ role: Role
1166
+ """
1167
+ Message sender's role
1168
+ """
1169
+ taskId: str | None = None
1170
+ """
1171
+ Identifier of task the message is related to
1172
+ """
1173
+
1174
+
1175
+ class MessageSendParams(BaseModel):
1176
+ """
1177
+ Sent by the client to the agent as a request. May create, continue or restart a task.
1178
+ """
1179
+
1180
+ configuration: MessageSendConfiguration | None = None
1181
+ """
1182
+ Send message configuration.
1183
+ """
1184
+ message: Message
1185
+ """
1186
+ The message being sent to the server.
1187
+ """
1188
+ metadata: dict[str, Any] | None = None
1189
+ """
1190
+ Extension metadata.
1191
+ """
1192
+
1193
+
1194
+ class OAuth2SecurityScheme(BaseModel):
1195
+ """
1196
+ OAuth2.0 security scheme configuration.
1197
+ """
1198
+
1199
+ description: str | None = None
1200
+ """
1201
+ Description of this security scheme.
1202
+ """
1203
+ flows: OAuthFlows
1204
+ """
1205
+ An object containing configuration information for the flow types supported.
1206
+ """
1207
+ type: Literal['oauth2'] = 'oauth2'
1208
+
1209
+
1210
+ class SecurityScheme(
1211
+ RootModel[
1212
+ APIKeySecurityScheme
1213
+ | HTTPAuthSecurityScheme
1214
+ | OAuth2SecurityScheme
1215
+ | OpenIdConnectSecurityScheme
1216
+ ]
1217
+ ):
1218
+ root: (
1219
+ APIKeySecurityScheme
1220
+ | HTTPAuthSecurityScheme
1221
+ | OAuth2SecurityScheme
1222
+ | OpenIdConnectSecurityScheme
1223
+ )
1224
+ """
1225
+ Mirrors the OpenAPI Security Scheme Object
1226
+ (https://swagger.io/specification/#security-scheme-object)
1227
+ """
1228
+
1229
+
1230
+ class SendMessageRequest(BaseModel):
1231
+ """
1232
+ JSON-RPC request model for the 'message/send' method.
1233
+ """
1234
+
1235
+ id: str | int
1236
+ """
1237
+ An identifier established by the Client that MUST contain a String, Number.
1238
+ Numbers SHOULD NOT contain fractional parts.
1239
+ """
1240
+ jsonrpc: Literal['2.0'] = '2.0'
1241
+ """
1242
+ Specifies the version of the JSON-RPC protocol. MUST be exactly "2.0".
1243
+ """
1244
+ method: Literal['message/send'] = 'message/send'
1245
+ """
1246
+ A String containing the name of the method to be invoked.
1247
+ """
1248
+ params: MessageSendParams
1249
+ """
1250
+ A Structured value that holds the parameter values to be used during the invocation of the method.
1251
+ """
1252
+
1253
+
1254
+ class SendStreamingMessageRequest(BaseModel):
1255
+ """
1256
+ JSON-RPC request model for the 'message/stream' method.
1257
+ """
1258
+
1259
+ id: str | int
1260
+ """
1261
+ An identifier established by the Client that MUST contain a String, Number.
1262
+ Numbers SHOULD NOT contain fractional parts.
1263
+ """
1264
+ jsonrpc: Literal['2.0'] = '2.0'
1265
+ """
1266
+ Specifies the version of the JSON-RPC protocol. MUST be exactly "2.0".
1267
+ """
1268
+ method: Literal['message/stream'] = 'message/stream'
1269
+ """
1270
+ A String containing the name of the method to be invoked.
1271
+ """
1272
+ params: MessageSendParams
1273
+ """
1274
+ A Structured value that holds the parameter values to be used during the invocation of the method.
1275
+ """
1276
+
1277
+
1278
+ class SetTaskPushNotificationConfigResponse(
1279
+ RootModel[JSONRPCErrorResponse | SetTaskPushNotificationConfigSuccessResponse]
1280
+ ):
1281
+ root: JSONRPCErrorResponse | SetTaskPushNotificationConfigSuccessResponse
1282
+ """
1283
+ JSON-RPC response for the 'tasks/pushNotificationConfig/set' method.
1284
+ """
1285
+
1286
+
1287
+ class TaskArtifactUpdateEvent(BaseModel):
1288
+ """
1289
+ Sent by server during sendStream or subscribe requests
1290
+ """
1291
+
1292
+ append: bool | None = None
1293
+ """
1294
+ Indicates if this artifact appends to a previous one
1295
+ """
1296
+ artifact: Artifact
1297
+ """
1298
+ Generated artifact
1299
+ """
1300
+ contextId: str
1301
+ """
1302
+ The context the task is associated with
1303
+ """
1304
+ kind: Literal['artifact-update'] = 'artifact-update'
1305
+ """
1306
+ Event type
1307
+ """
1308
+ lastChunk: bool | None = None
1309
+ """
1310
+ Indicates if this is the last chunk of the artifact
1311
+ """
1312
+ metadata: dict[str, Any] | None = None
1313
+ """
1314
+ Extension metadata.
1315
+ """
1316
+ taskId: str
1317
+ """
1318
+ Task id
1319
+ """
1320
+
1321
+
1322
+ class TaskStatus(BaseModel):
1323
+ """
1324
+ TaskState and accompanying message.
1325
+ """
1326
+
1327
+ message: Message | None = None
1328
+ """
1329
+ Additional status updates for client
1330
+ """
1331
+ state: TaskState
1332
+ timestamp: str | None = None
1333
+ """
1334
+ ISO 8601 datetime string when the status was recorded.
1335
+ """
1336
+
1337
+
1338
+ class TaskStatusUpdateEvent(BaseModel):
1339
+ """
1340
+ Sent by server during sendStream or subscribe requests
1341
+ """
1342
+
1343
+ contextId: str
1344
+ """
1345
+ The context the task is associated with
1346
+ """
1347
+ final: bool
1348
+ """
1349
+ Indicates the end of the event stream
1350
+ """
1351
+ kind: Literal['status-update'] = 'status-update'
1352
+ """
1353
+ Event type
1354
+ """
1355
+ metadata: dict[str, Any] | None = None
1356
+ """
1357
+ Extension metadata.
1358
+ """
1359
+ status: TaskStatus
1360
+ """
1361
+ Current status of the task
1362
+ """
1363
+ taskId: str
1364
+ """
1365
+ Task id
1366
+ """
1367
+
1368
+
1369
+ class A2ARequest(
1370
+ RootModel[
1371
+ SendMessageRequest
1372
+ | SendStreamingMessageRequest
1373
+ | GetTaskRequest
1374
+ | CancelTaskRequest
1375
+ | SetTaskPushNotificationConfigRequest
1376
+ | GetTaskPushNotificationConfigRequest
1377
+ | TaskResubscriptionRequest
1378
+ ]
1379
+ ):
1380
+ root: (
1381
+ SendMessageRequest
1382
+ | SendStreamingMessageRequest
1383
+ | GetTaskRequest
1384
+ | CancelTaskRequest
1385
+ | SetTaskPushNotificationConfigRequest
1386
+ | GetTaskPushNotificationConfigRequest
1387
+ | TaskResubscriptionRequest
1388
+ )
1389
+ """
1390
+ A2A supported request types
1391
+ """
1392
+
1393
+
1394
+ class AgentCard(BaseModel):
1395
+ """
1396
+ An AgentCard conveys key information:
1397
+ - Overall details (version, name, description, uses)
1398
+ - Skills: A set of capabilities the agent can perform
1399
+ - Default modalities/content types supported by the agent.
1400
+ - Authentication requirements
1401
+ """
1402
+
1403
+ capabilities: AgentCapabilities
1404
+ """
1405
+ Optional capabilities supported by the agent.
1406
+ """
1407
+ defaultInputModes: list[str]
1408
+ """
1409
+ The set of interaction modes that the agent supports across all skills. This can be overridden per-skill.
1410
+ Supported media types for input.
1411
+ """
1412
+ defaultOutputModes: list[str]
1413
+ """
1414
+ Supported media types for output.
1415
+ """
1416
+ description: str
1417
+ """
1418
+ A human-readable description of the agent. Used to assist users and
1419
+ other agents in understanding what the agent can do.
1420
+ """
1421
+ documentationUrl: str | None = None
1422
+ """
1423
+ A URL to documentation for the agent.
1424
+ """
1425
+ iconUrl: str | None = None
1426
+ """
1427
+ A URL to an icon for the agent.
1428
+ """
1429
+ name: str
1430
+ """
1431
+ Human readable name of the agent.
1432
+ """
1433
+ provider: AgentProvider | None = None
1434
+ """
1435
+ The service provider of the agent
1436
+ """
1437
+ security: list[dict[str, list[str]]] | None = None
1438
+ """
1439
+ Security requirements for contacting the agent.
1440
+ """
1441
+ securitySchemes: dict[str, SecurityScheme] | None = None
1442
+ """
1443
+ Security scheme details used for authenticating with this agent.
1444
+ """
1445
+ skills: list[AgentSkill]
1446
+ """
1447
+ Skills are a unit of capability that an agent can perform.
1448
+ """
1449
+ supportsAuthenticatedExtendedCard: bool | None = None
1450
+ """
1451
+ true if the agent supports providing an extended agent card when the user is authenticated.
1452
+ Defaults to false if not specified.
1453
+ """
1454
+ url: str
1455
+ """
1456
+ A URL to the address the agent is hosted at.
1457
+ """
1458
+ version: str
1459
+ """
1460
+ The version of the agent - format is up to the provider.
1461
+ """
1462
+
1463
+
1464
+ class Task(BaseModel):
1465
+ artifacts: list[Artifact] | None = None
1466
+ """
1467
+ Collection of artifacts created by the agent.
1468
+ """
1469
+ contextId: str
1470
+ """
1471
+ Server-generated id for contextual alignment across interactions
1472
+ """
1473
+ history: list[Message] | None = None
1474
+ id: str
1475
+ """
1476
+ Unique identifier for the task
1477
+ """
1478
+ kind: Literal['task'] = 'task'
1479
+ """
1480
+ Event type
1481
+ """
1482
+ metadata: dict[str, Any] | None = None
1483
+ """
1484
+ Extension metadata.
1485
+ """
1486
+ status: TaskStatus
1487
+ """
1488
+ Current status of the task
1489
+ """
1490
+
1491
+
1492
+ class CancelTaskSuccessResponse(BaseModel):
1493
+ """
1494
+ JSON-RPC success response model for the 'tasks/cancel' method.
1495
+ """
1496
+
1497
+ id: str | int | None = None
1498
+ """
1499
+ An identifier established by the Client that MUST contain a String, Number.
1500
+ Numbers SHOULD NOT contain fractional parts.
1501
+ """
1502
+ jsonrpc: Literal['2.0'] = '2.0'
1503
+ """
1504
+ Specifies the version of the JSON-RPC protocol. MUST be exactly "2.0".
1505
+ """
1506
+ result: Task
1507
+ """
1508
+ The result object on success.
1509
+ """
1510
+
1511
+
1512
+ class GetTaskSuccessResponse(BaseModel):
1513
+ """
1514
+ JSON-RPC success response for the 'tasks/get' method.
1515
+ """
1516
+
1517
+ id: str | int | None = None
1518
+ """
1519
+ An identifier established by the Client that MUST contain a String, Number.
1520
+ Numbers SHOULD NOT contain fractional parts.
1521
+ """
1522
+ jsonrpc: Literal['2.0'] = '2.0'
1523
+ """
1524
+ Specifies the version of the JSON-RPC protocol. MUST be exactly "2.0".
1525
+ """
1526
+ result: Task
1527
+ """
1528
+ The result object on success.
1529
+ """
1530
+
1531
+
1532
+ class SendMessageSuccessResponse(BaseModel):
1533
+ """
1534
+ JSON-RPC success response model for the 'message/send' method.
1535
+ """
1536
+
1537
+ id: str | int | None = None
1538
+ """
1539
+ An identifier established by the Client that MUST contain a String, Number.
1540
+ Numbers SHOULD NOT contain fractional parts.
1541
+ """
1542
+ jsonrpc: Literal['2.0'] = '2.0'
1543
+ """
1544
+ Specifies the version of the JSON-RPC protocol. MUST be exactly "2.0".
1545
+ """
1546
+ result: Task | Message
1547
+ """
1548
+ The result object on success
1549
+ """
1550
+
1551
+
1552
+ class SendStreamingMessageSuccessResponse(BaseModel):
1553
+ """
1554
+ JSON-RPC success response model for the 'message/stream' method.
1555
+ """
1556
+
1557
+ id: str | int | None = None
1558
+ """
1559
+ An identifier established by the Client that MUST contain a String, Number.
1560
+ Numbers SHOULD NOT contain fractional parts.
1561
+ """
1562
+ jsonrpc: Literal['2.0'] = '2.0'
1563
+ """
1564
+ Specifies the version of the JSON-RPC protocol. MUST be exactly "2.0".
1565
+ """
1566
+ result: Task | Message | TaskStatusUpdateEvent | TaskArtifactUpdateEvent
1567
+ """
1568
+ The result object on success
1569
+ """
1570
+
1571
+
1572
+ class CancelTaskResponse(RootModel[JSONRPCErrorResponse | CancelTaskSuccessResponse]):
1573
+ root: JSONRPCErrorResponse | CancelTaskSuccessResponse
1574
+ """
1575
+ JSON-RPC response for the 'tasks/cancel' method.
1576
+ """
1577
+
1578
+
1579
+ class GetTaskResponse(RootModel[JSONRPCErrorResponse | GetTaskSuccessResponse]):
1580
+ root: JSONRPCErrorResponse | GetTaskSuccessResponse
1581
+ """
1582
+ JSON-RPC response for the 'tasks/get' method.
1583
+ """
1584
+
1585
+
1586
+ class JSONRPCResponse(
1587
+ RootModel[
1588
+ JSONRPCErrorResponse
1589
+ | SendMessageSuccessResponse
1590
+ | SendStreamingMessageSuccessResponse
1591
+ | GetTaskSuccessResponse
1592
+ | CancelTaskSuccessResponse
1593
+ | SetTaskPushNotificationConfigSuccessResponse
1594
+ | GetTaskPushNotificationConfigSuccessResponse
1595
+ ]
1596
+ ):
1597
+ root: (
1598
+ JSONRPCErrorResponse
1599
+ | SendMessageSuccessResponse
1600
+ | SendStreamingMessageSuccessResponse
1601
+ | GetTaskSuccessResponse
1602
+ | CancelTaskSuccessResponse
1603
+ | SetTaskPushNotificationConfigSuccessResponse
1604
+ | GetTaskPushNotificationConfigSuccessResponse
1605
+ )
1606
+ """
1607
+ Represents a JSON-RPC 2.0 Response object.
1608
+ """
1609
+
1610
+
1611
+ class SendMessageResponse(RootModel[JSONRPCErrorResponse | SendMessageSuccessResponse]):
1612
+ root: JSONRPCErrorResponse | SendMessageSuccessResponse
1613
+ """
1614
+ JSON-RPC response model for the 'message/send' method.
1615
+ """
1616
+
1617
+
1618
+ class SendStreamingMessageResponse(
1619
+ RootModel[JSONRPCErrorResponse | SendStreamingMessageSuccessResponse]
1620
+ ):
1621
+ root: JSONRPCErrorResponse | SendStreamingMessageSuccessResponse
1622
+ """
1623
+ JSON-RPC response model for the 'message/stream' method.
1624
+ """