agentex-sdk 0.2.6__tar.gz → 0.2.8__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 (469) hide show
  1. agentex_sdk-0.2.8/.release-please-manifest.json +3 -0
  2. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/CHANGELOG.md +23 -0
  3. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/PKG-INFO +32 -1
  4. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/README.md +31 -0
  5. agentex_sdk-0.2.8/examples/launch-tutorials.sh +336 -0
  6. agentex_sdk-0.2.8/examples/tutorials/10_agentic/00_base/090_multi_agent_non_temporal/Dockerfile +44 -0
  7. agentex_sdk-0.2.8/examples/tutorials/10_agentic/00_base/090_multi_agent_non_temporal/README.md +197 -0
  8. agentex_sdk-0.2.8/examples/tutorials/10_agentic/00_base/090_multi_agent_non_temporal/creator.yaml +42 -0
  9. agentex_sdk-0.2.8/examples/tutorials/10_agentic/00_base/090_multi_agent_non_temporal/critic.yaml +42 -0
  10. agentex_sdk-0.2.8/examples/tutorials/10_agentic/00_base/090_multi_agent_non_temporal/formatter.yaml +42 -0
  11. agentex_sdk-0.2.8/examples/tutorials/10_agentic/00_base/090_multi_agent_non_temporal/orchestrator.yaml +42 -0
  12. agentex_sdk-0.2.8/examples/tutorials/10_agentic/00_base/090_multi_agent_non_temporal/project/__init__.py +1 -0
  13. agentex_sdk-0.2.8/examples/tutorials/10_agentic/00_base/090_multi_agent_non_temporal/project/creator.py +294 -0
  14. agentex_sdk-0.2.8/examples/tutorials/10_agentic/00_base/090_multi_agent_non_temporal/project/critic.py +312 -0
  15. agentex_sdk-0.2.8/examples/tutorials/10_agentic/00_base/090_multi_agent_non_temporal/project/formatter.py +327 -0
  16. agentex_sdk-0.2.8/examples/tutorials/10_agentic/00_base/090_multi_agent_non_temporal/project/models.py +80 -0
  17. agentex_sdk-0.2.8/examples/tutorials/10_agentic/00_base/090_multi_agent_non_temporal/project/orchestrator.py +423 -0
  18. agentex_sdk-0.2.8/examples/tutorials/10_agentic/00_base/090_multi_agent_non_temporal/project/state_machines/__init__.py +1 -0
  19. agentex_sdk-0.2.8/examples/tutorials/10_agentic/00_base/090_multi_agent_non_temporal/project/state_machines/content_workflow.py +304 -0
  20. agentex_sdk-0.2.8/examples/tutorials/10_agentic/00_base/090_multi_agent_non_temporal/pyproject.toml +33 -0
  21. agentex_sdk-0.2.8/examples/tutorials/10_agentic/00_base/090_multi_agent_non_temporal/start-agents.sh +327 -0
  22. agentex_sdk-0.2.8/examples/tutorials/10_agentic/00_base/090_multi_agent_non_temporal/uv.lock +2244 -0
  23. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/examples/tutorials/10_agentic/10_temporal/000_hello_acp/project/run_worker.py +4 -1
  24. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/examples/tutorials/10_agentic/10_temporal/000_hello_acp/pyproject.toml +1 -0
  25. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/examples/tutorials/10_agentic/10_temporal/010_agent_chat/project/run_worker.py +4 -0
  26. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/examples/tutorials/10_agentic/10_temporal/010_agent_chat/pyproject.toml +2 -1
  27. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/examples/tutorials/10_agentic/10_temporal/020_state_machine/project/run_worker.py +4 -0
  28. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/examples/tutorials/10_agentic/10_temporal/020_state_machine/pyproject.toml +1 -0
  29. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/pyproject.toml +4 -3
  30. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/_version.py +1 -1
  31. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/adk/utils/_modules/client.py +6 -5
  32. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/cli/commands/agents.py +36 -2
  33. agentex_sdk-0.2.8/src/agentex/lib/cli/debug/__init__.py +15 -0
  34. agentex_sdk-0.2.8/src/agentex/lib/cli/debug/debug_config.py +116 -0
  35. agentex_sdk-0.2.8/src/agentex/lib/cli/debug/debug_handlers.py +174 -0
  36. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/cli/handlers/agent_handlers.py +3 -2
  37. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/cli/handlers/deploy_handlers.py +92 -44
  38. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/cli/handlers/run_handlers.py +24 -7
  39. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/cli/templates/default/Dockerfile.j2 +2 -0
  40. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/cli/templates/default/pyproject.toml.j2 +0 -1
  41. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/cli/templates/sync/Dockerfile.j2 +2 -0
  42. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/cli/templates/sync/pyproject.toml.j2 +0 -1
  43. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/cli/templates/temporal/Dockerfile.j2 +2 -0
  44. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/cli/templates/temporal/project/acp.py.j2 +31 -0
  45. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/cli/templates/temporal/project/run_worker.py.j2 +4 -1
  46. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/cli/templates/temporal/pyproject.toml.j2 +1 -1
  47. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/core/services/adk/acp/acp.py +5 -5
  48. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/core/temporal/workers/worker.py +24 -0
  49. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/environment_variables.py +2 -0
  50. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/sdk/fastacp/base/base_acp_server.py +13 -90
  51. agentex_sdk-0.2.8/src/agentex/lib/utils/debug.py +63 -0
  52. agentex_sdk-0.2.8/src/agentex/lib/utils/registration.py +101 -0
  53. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/resources/agents.py +36 -22
  54. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/types/agent.py +7 -0
  55. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/uv.lock +908 -908
  56. agentex_sdk-0.2.6/.release-please-manifest.json +0 -3
  57. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/.gitignore +0 -0
  58. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/CONTRIBUTING.md +0 -0
  59. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/LICENSE +0 -0
  60. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/SECURITY.md +0 -0
  61. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/api.md +0 -0
  62. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/bin/check-release-environment +0 -0
  63. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/bin/publish-pypi +0 -0
  64. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/examples/.keep +0 -0
  65. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/examples/tutorials/00_sync/000_hello_acp/.dockerignore +0 -0
  66. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/examples/tutorials/00_sync/000_hello_acp/Dockerfile +0 -0
  67. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/examples/tutorials/00_sync/000_hello_acp/README.md +0 -0
  68. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/examples/tutorials/00_sync/000_hello_acp/dev.ipynb +0 -0
  69. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/examples/tutorials/00_sync/000_hello_acp/manifest.yaml +0 -0
  70. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/examples/tutorials/00_sync/000_hello_acp/project/__init__.py +0 -0
  71. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/examples/tutorials/00_sync/000_hello_acp/project/acp.py +0 -0
  72. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/examples/tutorials/00_sync/000_hello_acp/pyproject.toml +0 -0
  73. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/examples/tutorials/00_sync/010_multiturn/.dockerignore +0 -0
  74. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/examples/tutorials/00_sync/010_multiturn/Dockerfile +0 -0
  75. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/examples/tutorials/00_sync/010_multiturn/README.md +0 -0
  76. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/examples/tutorials/00_sync/010_multiturn/dev.ipynb +0 -0
  77. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/examples/tutorials/00_sync/010_multiturn/manifest.yaml +0 -0
  78. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/examples/tutorials/00_sync/010_multiturn/project/__init__.py +0 -0
  79. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/examples/tutorials/00_sync/010_multiturn/project/acp.py +0 -0
  80. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/examples/tutorials/00_sync/010_multiturn/pyproject.toml +0 -0
  81. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/examples/tutorials/00_sync/020_streaming/.dockerignore +0 -0
  82. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/examples/tutorials/00_sync/020_streaming/Dockerfile +0 -0
  83. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/examples/tutorials/00_sync/020_streaming/README.md +0 -0
  84. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/examples/tutorials/00_sync/020_streaming/dev.ipynb +0 -0
  85. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/examples/tutorials/00_sync/020_streaming/manifest.yaml +0 -0
  86. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/examples/tutorials/00_sync/020_streaming/project/__init__.py +0 -0
  87. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/examples/tutorials/00_sync/020_streaming/project/acp.py +0 -0
  88. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/examples/tutorials/00_sync/020_streaming/pyproject.toml +0 -0
  89. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/examples/tutorials/10_agentic/00_base/000_hello_acp/.dockerignore +0 -0
  90. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/examples/tutorials/10_agentic/00_base/000_hello_acp/Dockerfile +0 -0
  91. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/examples/tutorials/10_agentic/00_base/000_hello_acp/README.md +0 -0
  92. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/examples/tutorials/10_agentic/00_base/000_hello_acp/dev.ipynb +0 -0
  93. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/examples/tutorials/10_agentic/00_base/000_hello_acp/manifest.yaml +0 -0
  94. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/examples/tutorials/10_agentic/00_base/000_hello_acp/project/__init__.py +0 -0
  95. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/examples/tutorials/10_agentic/00_base/000_hello_acp/project/acp.py +0 -0
  96. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/examples/tutorials/10_agentic/00_base/000_hello_acp/pyproject.toml +0 -0
  97. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/examples/tutorials/10_agentic/00_base/010_multiturn/.dockerignore +0 -0
  98. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/examples/tutorials/10_agentic/00_base/010_multiturn/Dockerfile +0 -0
  99. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/examples/tutorials/10_agentic/00_base/010_multiturn/README.md +0 -0
  100. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/examples/tutorials/10_agentic/00_base/010_multiturn/dev.ipynb +0 -0
  101. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/examples/tutorials/10_agentic/00_base/010_multiturn/manifest.yaml +0 -0
  102. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/examples/tutorials/10_agentic/00_base/010_multiturn/project/__init__.py +0 -0
  103. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/examples/tutorials/10_agentic/00_base/010_multiturn/project/acp.py +0 -0
  104. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/examples/tutorials/10_agentic/00_base/010_multiturn/pyproject.toml +0 -0
  105. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/examples/tutorials/10_agentic/00_base/020_streaming/.dockerignore +0 -0
  106. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/examples/tutorials/10_agentic/00_base/020_streaming/Dockerfile +0 -0
  107. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/examples/tutorials/10_agentic/00_base/020_streaming/README.md +0 -0
  108. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/examples/tutorials/10_agentic/00_base/020_streaming/dev.ipynb +0 -0
  109. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/examples/tutorials/10_agentic/00_base/020_streaming/manifest.yaml +0 -0
  110. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/examples/tutorials/10_agentic/00_base/020_streaming/project/__init__.py +0 -0
  111. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/examples/tutorials/10_agentic/00_base/020_streaming/project/acp.py +0 -0
  112. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/examples/tutorials/10_agentic/00_base/020_streaming/pyproject.toml +0 -0
  113. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/examples/tutorials/10_agentic/00_base/030_tracing/.dockerignore +0 -0
  114. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/examples/tutorials/10_agentic/00_base/030_tracing/Dockerfile +0 -0
  115. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/examples/tutorials/10_agentic/00_base/030_tracing/README.md +0 -0
  116. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/examples/tutorials/10_agentic/00_base/030_tracing/dev.ipynb +0 -0
  117. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/examples/tutorials/10_agentic/00_base/030_tracing/manifest.yaml +0 -0
  118. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/examples/tutorials/10_agentic/00_base/030_tracing/project/__init__.py +0 -0
  119. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/examples/tutorials/10_agentic/00_base/030_tracing/project/acp.py +0 -0
  120. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/examples/tutorials/10_agentic/00_base/030_tracing/pyproject.toml +0 -0
  121. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/examples/tutorials/10_agentic/00_base/040_other_sdks/.dockerignore +0 -0
  122. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/examples/tutorials/10_agentic/00_base/040_other_sdks/Dockerfile +0 -0
  123. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/examples/tutorials/10_agentic/00_base/040_other_sdks/README.md +0 -0
  124. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/examples/tutorials/10_agentic/00_base/040_other_sdks/dev.ipynb +0 -0
  125. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/examples/tutorials/10_agentic/00_base/040_other_sdks/manifest.yaml +0 -0
  126. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/examples/tutorials/10_agentic/00_base/040_other_sdks/project/__init__.py +0 -0
  127. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/examples/tutorials/10_agentic/00_base/040_other_sdks/project/acp.py +0 -0
  128. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/examples/tutorials/10_agentic/00_base/040_other_sdks/pyproject.toml +0 -0
  129. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/examples/tutorials/10_agentic/00_base/080_batch_events/.dockerignore +0 -0
  130. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/examples/tutorials/10_agentic/00_base/080_batch_events/Dockerfile +0 -0
  131. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/examples/tutorials/10_agentic/00_base/080_batch_events/README.md +0 -0
  132. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/examples/tutorials/10_agentic/00_base/080_batch_events/dev.ipynb +0 -0
  133. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/examples/tutorials/10_agentic/00_base/080_batch_events/manifest.yaml +0 -0
  134. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/examples/tutorials/10_agentic/00_base/080_batch_events/project/__init__.py +0 -0
  135. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/examples/tutorials/10_agentic/00_base/080_batch_events/project/acp.py +0 -0
  136. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/examples/tutorials/10_agentic/00_base/080_batch_events/pyproject.toml +0 -0
  137. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/examples/tutorials/10_agentic/00_base/080_batch_events/test_batch_events.py +0 -0
  138. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/examples/tutorials/10_agentic/10_temporal/000_hello_acp/.dockerignore +0 -0
  139. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/examples/tutorials/10_agentic/10_temporal/000_hello_acp/Dockerfile +0 -0
  140. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/examples/tutorials/10_agentic/10_temporal/000_hello_acp/README.md +0 -0
  141. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/examples/tutorials/10_agentic/10_temporal/000_hello_acp/dev.ipynb +0 -0
  142. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/examples/tutorials/10_agentic/10_temporal/000_hello_acp/manifest.yaml +0 -0
  143. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/examples/tutorials/10_agentic/10_temporal/000_hello_acp/project/__init__.py +0 -0
  144. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/examples/tutorials/10_agentic/10_temporal/000_hello_acp/project/acp.py +0 -0
  145. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/examples/tutorials/10_agentic/10_temporal/000_hello_acp/project/workflow.py +0 -0
  146. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/examples/tutorials/10_agentic/10_temporal/010_agent_chat/.dockerignore +0 -0
  147. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/examples/tutorials/10_agentic/10_temporal/010_agent_chat/Dockerfile +0 -0
  148. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/examples/tutorials/10_agentic/10_temporal/010_agent_chat/README.md +0 -0
  149. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/examples/tutorials/10_agentic/10_temporal/010_agent_chat/dev.ipynb +0 -0
  150. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/examples/tutorials/10_agentic/10_temporal/010_agent_chat/manifest.yaml +0 -0
  151. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/examples/tutorials/10_agentic/10_temporal/010_agent_chat/project/__init__.py +0 -0
  152. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/examples/tutorials/10_agentic/10_temporal/010_agent_chat/project/acp.py +0 -0
  153. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/examples/tutorials/10_agentic/10_temporal/010_agent_chat/project/workflow.py +0 -0
  154. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/examples/tutorials/10_agentic/10_temporal/020_state_machine/.dockerignore +0 -0
  155. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/examples/tutorials/10_agentic/10_temporal/020_state_machine/Dockerfile +0 -0
  156. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/examples/tutorials/10_agentic/10_temporal/020_state_machine/README.md +0 -0
  157. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/examples/tutorials/10_agentic/10_temporal/020_state_machine/dev.ipynb +0 -0
  158. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/examples/tutorials/10_agentic/10_temporal/020_state_machine/manifest.yaml +0 -0
  159. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/examples/tutorials/10_agentic/10_temporal/020_state_machine/project/__init__.py +0 -0
  160. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/examples/tutorials/10_agentic/10_temporal/020_state_machine/project/acp.py +0 -0
  161. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/examples/tutorials/10_agentic/10_temporal/020_state_machine/project/state_machines/deep_research.py +0 -0
  162. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/examples/tutorials/10_agentic/10_temporal/020_state_machine/project/workflow.py +0 -0
  163. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/examples/tutorials/10_agentic/10_temporal/020_state_machine/project/workflows/deep_research/clarify_user_query.py +0 -0
  164. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/examples/tutorials/10_agentic/10_temporal/020_state_machine/project/workflows/deep_research/performing_deep_research.py +0 -0
  165. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/examples/tutorials/10_agentic/10_temporal/020_state_machine/project/workflows/deep_research/waiting_for_user_input.py +0 -0
  166. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/mypy.ini +0 -0
  167. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/noxfile.py +0 -0
  168. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/release-please-config.json +0 -0
  169. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/requirements-dev.lock +0 -0
  170. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/requirements.lock +0 -0
  171. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/__init__.py +0 -0
  172. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/_base_client.py +0 -0
  173. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/_client.py +0 -0
  174. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/_compat.py +0 -0
  175. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/_constants.py +0 -0
  176. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/_exceptions.py +0 -0
  177. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/_files.py +0 -0
  178. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/_models.py +0 -0
  179. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/_qs.py +0 -0
  180. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/_resource.py +0 -0
  181. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/_response.py +0 -0
  182. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/_streaming.py +0 -0
  183. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/_types.py +0 -0
  184. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/_utils/__init__.py +0 -0
  185. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/_utils/_logs.py +0 -0
  186. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/_utils/_proxy.py +0 -0
  187. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/_utils/_reflection.py +0 -0
  188. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/_utils/_resources_proxy.py +0 -0
  189. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/_utils/_streams.py +0 -0
  190. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/_utils/_sync.py +0 -0
  191. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/_utils/_transform.py +0 -0
  192. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/_utils/_typing.py +0 -0
  193. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/_utils/_utils.py +0 -0
  194. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/.keep +0 -0
  195. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/__init__.py +0 -0
  196. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/adk/__init__.py +0 -0
  197. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/adk/_modules/__init__.py +0 -0
  198. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/adk/_modules/acp.py +0 -0
  199. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/adk/_modules/agent_task_tracker.py +0 -0
  200. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/adk/_modules/agents.py +0 -0
  201. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/adk/_modules/events.py +0 -0
  202. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/adk/_modules/messages.py +0 -0
  203. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/adk/_modules/state.py +0 -0
  204. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/adk/_modules/streaming.py +0 -0
  205. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/adk/_modules/tasks.py +0 -0
  206. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/adk/_modules/tracing.py +0 -0
  207. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/adk/providers/__init__.py +0 -0
  208. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/adk/providers/_modules/__init__.py +0 -0
  209. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/adk/providers/_modules/litellm.py +0 -0
  210. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/adk/providers/_modules/openai.py +0 -0
  211. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/adk/providers/_modules/sgp.py +0 -0
  212. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/adk/utils/__init__.py +0 -0
  213. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/adk/utils/_modules/__init__.py +0 -0
  214. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/adk/utils/_modules/templating.py +0 -0
  215. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/cli/__init__.py +0 -0
  216. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/cli/commands/__init__.py +0 -0
  217. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/cli/commands/init.py +0 -0
  218. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/cli/commands/main.py +0 -0
  219. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/cli/commands/secrets.py +0 -0
  220. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/cli/commands/tasks.py +0 -0
  221. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/cli/commands/uv.py +0 -0
  222. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/cli/handlers/__init__.py +0 -0
  223. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/cli/handlers/cleanup_handlers.py +0 -0
  224. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/cli/handlers/secret_handlers.py +0 -0
  225. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/cli/templates/default/.dockerignore.j2 +0 -0
  226. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/cli/templates/default/Dockerfile-uv.j2 +0 -0
  227. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/cli/templates/default/README.md.j2 +0 -0
  228. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/cli/templates/default/deploy/example.yaml.j2 +0 -0
  229. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/cli/templates/default/dev.ipynb.j2 +0 -0
  230. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/cli/templates/default/manifest.yaml.j2 +0 -0
  231. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/cli/templates/default/project/acp.py.j2 +0 -0
  232. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/cli/templates/default/requirements.txt.j2 +0 -0
  233. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/cli/templates/deploy/Screenshot 2025-03-19 at 10.36.57/342/200/257AM.png" +0 -0
  234. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/cli/templates/deploy/example.yaml.j2 +0 -0
  235. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/cli/templates/sync/.dockerignore.j2 +0 -0
  236. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/cli/templates/sync/Dockerfile-uv.j2 +0 -0
  237. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/cli/templates/sync/README.md.j2 +0 -0
  238. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/cli/templates/sync/deploy/example.yaml.j2 +0 -0
  239. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/cli/templates/sync/dev.ipynb.j2 +0 -0
  240. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/cli/templates/sync/manifest.yaml.j2 +0 -0
  241. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/cli/templates/sync/project/acp.py.j2 +0 -0
  242. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/cli/templates/sync/requirements.txt.j2 +0 -0
  243. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/cli/templates/temporal/.dockerignore.j2 +0 -0
  244. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/cli/templates/temporal/Dockerfile-uv.j2 +0 -0
  245. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/cli/templates/temporal/README.md.j2 +0 -0
  246. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/cli/templates/temporal/deploy/example.yaml.j2 +0 -0
  247. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/cli/templates/temporal/dev.ipynb.j2 +0 -0
  248. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/cli/templates/temporal/manifest.yaml.j2 +0 -0
  249. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/cli/templates/temporal/project/workflow.py.j2 +0 -0
  250. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/cli/templates/temporal/requirements.txt.j2 +0 -0
  251. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/cli/utils/__init__.py +0 -0
  252. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/cli/utils/auth_utils.py +0 -0
  253. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/cli/utils/cli_utils.py +0 -0
  254. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/cli/utils/credential_utils.py +0 -0
  255. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/cli/utils/exceptions.py +0 -0
  256. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/cli/utils/kubectl_utils.py +0 -0
  257. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/cli/utils/kubernetes_secrets_utils.py +0 -0
  258. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/cli/utils/path_utils.py +0 -0
  259. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/core/__init__.py +0 -0
  260. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/core/adapters/__init__.py +0 -0
  261. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/core/adapters/llm/__init__.py +0 -0
  262. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/core/adapters/llm/adapter_litellm.py +0 -0
  263. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/core/adapters/llm/adapter_sgp.py +0 -0
  264. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/core/adapters/llm/port.py +0 -0
  265. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/core/adapters/streams/adapter_redis.py +0 -0
  266. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/core/adapters/streams/port.py +0 -0
  267. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/core/clients/__init__.py +0 -0
  268. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/core/clients/temporal/__init__.py +0 -0
  269. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/core/clients/temporal/temporal_client.py +0 -0
  270. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/core/clients/temporal/types.py +0 -0
  271. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/core/clients/temporal/utils.py +0 -0
  272. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/core/services/__init__.py +0 -0
  273. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/core/services/adk/__init__.py +0 -0
  274. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/core/services/adk/acp/__init__.py +0 -0
  275. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/core/services/adk/agent_task_tracker.py +0 -0
  276. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/core/services/adk/agents.py +0 -0
  277. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/core/services/adk/events.py +0 -0
  278. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/core/services/adk/messages.py +0 -0
  279. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/core/services/adk/providers/__init__.py +0 -0
  280. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/core/services/adk/providers/litellm.py +0 -0
  281. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/core/services/adk/providers/openai.py +0 -0
  282. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/core/services/adk/providers/sgp.py +0 -0
  283. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/core/services/adk/state.py +0 -0
  284. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/core/services/adk/streaming.py +0 -0
  285. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/core/services/adk/tasks.py +0 -0
  286. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/core/services/adk/tracing.py +0 -0
  287. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/core/services/adk/utils/__init__.py +0 -0
  288. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/core/services/adk/utils/templating.py +0 -0
  289. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/core/temporal/__init__.py +0 -0
  290. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/core/temporal/activities/__init__.py +0 -0
  291. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/core/temporal/activities/activity_helpers.py +0 -0
  292. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/core/temporal/activities/adk/__init__.py +0 -0
  293. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/core/temporal/activities/adk/acp/__init__.py +0 -0
  294. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/core/temporal/activities/adk/acp/acp_activities.py +0 -0
  295. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/core/temporal/activities/adk/agent_task_tracker_activities.py +0 -0
  296. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/core/temporal/activities/adk/agents_activities.py +0 -0
  297. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/core/temporal/activities/adk/events_activities.py +0 -0
  298. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/core/temporal/activities/adk/messages_activities.py +0 -0
  299. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/core/temporal/activities/adk/providers/__init__.py +0 -0
  300. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/core/temporal/activities/adk/providers/litellm_activities.py +0 -0
  301. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/core/temporal/activities/adk/providers/openai_activities.py +0 -0
  302. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/core/temporal/activities/adk/providers/sgp_activities.py +0 -0
  303. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/core/temporal/activities/adk/state_activities.py +0 -0
  304. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/core/temporal/activities/adk/streaming_activities.py +0 -0
  305. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/core/temporal/activities/adk/tasks_activities.py +0 -0
  306. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/core/temporal/activities/adk/tracing_activities.py +0 -0
  307. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/core/temporal/activities/adk/utils/__init__.py +0 -0
  308. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/core/temporal/activities/adk/utils/templating_activities.py +0 -0
  309. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/core/temporal/services/__init__.py +0 -0
  310. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/core/temporal/services/temporal_task_service.py +0 -0
  311. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/core/temporal/types/__init__.py +0 -0
  312. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/core/temporal/types/workflow.py +0 -0
  313. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/core/temporal/workers/__init__.py +0 -0
  314. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/core/temporal/workflows/workflow.py +0 -0
  315. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/core/tracing/__init__.py +0 -0
  316. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/core/tracing/processors/agentex_tracing_processor.py +0 -0
  317. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/core/tracing/processors/sgp_tracing_processor.py +0 -0
  318. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/core/tracing/processors/tracing_processor_interface.py +0 -0
  319. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/core/tracing/trace.py +0 -0
  320. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/core/tracing/tracer.py +0 -0
  321. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/core/tracing/tracing_processor_manager.py +0 -0
  322. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/py.typed +0 -0
  323. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/sdk/__init__.py +0 -0
  324. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/sdk/config/__init__.py +0 -0
  325. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/sdk/config/agent_config.py +0 -0
  326. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/sdk/config/agent_manifest.py +0 -0
  327. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/sdk/config/build_config.py +0 -0
  328. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/sdk/config/deployment_config.py +0 -0
  329. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/sdk/config/local_development_config.py +0 -0
  330. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/sdk/config/project_config.py +0 -0
  331. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/sdk/fastacp/__init__.py +0 -0
  332. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/sdk/fastacp/fastacp.py +0 -0
  333. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/sdk/fastacp/impl/agentic_base_acp.py +0 -0
  334. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/sdk/fastacp/impl/sync_acp.py +0 -0
  335. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/sdk/fastacp/impl/temporal_acp.py +0 -0
  336. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/sdk/fastacp/tests/README.md +0 -0
  337. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/sdk/fastacp/tests/conftest.py +0 -0
  338. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/sdk/fastacp/tests/pytest.ini +0 -0
  339. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/sdk/fastacp/tests/run_tests.py +0 -0
  340. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/sdk/fastacp/tests/test_base_acp_server.py +0 -0
  341. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/sdk/fastacp/tests/test_fastacp_factory.py +0 -0
  342. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/sdk/fastacp/tests/test_integration.py +0 -0
  343. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/sdk/state_machine/__init__.py +0 -0
  344. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/sdk/state_machine/noop_workflow.py +0 -0
  345. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/sdk/state_machine/state.py +0 -0
  346. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/sdk/state_machine/state_machine.py +0 -0
  347. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/sdk/state_machine/state_workflow.py +0 -0
  348. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/sdk/utils/__init__.py +0 -0
  349. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/sdk/utils/messages.py +0 -0
  350. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/types/__init__.py +0 -0
  351. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/types/acp.py +0 -0
  352. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/types/agent_configs.py +0 -0
  353. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/types/agent_results.py +0 -0
  354. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/types/converters.py +0 -0
  355. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/types/credentials.py +0 -0
  356. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/types/fastacp.py +0 -0
  357. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/types/files.py +0 -0
  358. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/types/json_rpc.py +0 -0
  359. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/types/llm_messages.py +0 -0
  360. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/types/task_message_updates.py +0 -0
  361. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/types/tracing.py +0 -0
  362. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/utils/__init__.py +0 -0
  363. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/utils/completions.py +0 -0
  364. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/utils/console.py +0 -0
  365. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/utils/dev_tools/__init__.py +0 -0
  366. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/utils/dev_tools/async_messages.py +0 -0
  367. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/utils/io.py +0 -0
  368. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/utils/iterables.py +0 -0
  369. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/utils/json_schema.py +0 -0
  370. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/utils/logging.py +0 -0
  371. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/utils/mcp.py +0 -0
  372. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/utils/model_utils.py +0 -0
  373. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/utils/parsing.py +0 -0
  374. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/utils/regex.py +0 -0
  375. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/lib/utils/temporal.py +0 -0
  376. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/py.typed +0 -0
  377. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/resources/__init__.py +0 -0
  378. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/resources/events.py +0 -0
  379. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/resources/messages/__init__.py +0 -0
  380. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/resources/messages/batch.py +0 -0
  381. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/resources/messages/messages.py +0 -0
  382. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/resources/spans.py +0 -0
  383. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/resources/states.py +0 -0
  384. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/resources/tasks.py +0 -0
  385. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/resources/tracker.py +0 -0
  386. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/types/__init__.py +0 -0
  387. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/types/acp_type.py +0 -0
  388. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/types/agent_list_params.py +0 -0
  389. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/types/agent_list_response.py +0 -0
  390. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/types/agent_rpc_by_name_params.py +0 -0
  391. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/types/agent_rpc_params.py +0 -0
  392. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/types/agent_rpc_response.py +0 -0
  393. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/types/agent_rpc_result.py +0 -0
  394. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/types/agent_task_tracker.py +0 -0
  395. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/types/data_content.py +0 -0
  396. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/types/data_content_param.py +0 -0
  397. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/types/data_delta.py +0 -0
  398. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/types/event.py +0 -0
  399. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/types/event_list_params.py +0 -0
  400. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/types/event_list_response.py +0 -0
  401. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/types/message_author.py +0 -0
  402. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/types/message_create_params.py +0 -0
  403. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/types/message_list_params.py +0 -0
  404. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/types/message_list_response.py +0 -0
  405. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/types/message_style.py +0 -0
  406. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/types/message_update_params.py +0 -0
  407. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/types/messages/__init__.py +0 -0
  408. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/types/messages/batch_create_params.py +0 -0
  409. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/types/messages/batch_create_response.py +0 -0
  410. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/types/messages/batch_update_params.py +0 -0
  411. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/types/messages/batch_update_response.py +0 -0
  412. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/types/shared/__init__.py +0 -0
  413. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/types/shared/delete_response.py +0 -0
  414. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/types/span.py +0 -0
  415. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/types/span_create_params.py +0 -0
  416. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/types/span_list_params.py +0 -0
  417. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/types/span_list_response.py +0 -0
  418. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/types/span_update_params.py +0 -0
  419. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/types/state.py +0 -0
  420. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/types/state_create_params.py +0 -0
  421. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/types/state_list_params.py +0 -0
  422. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/types/state_list_response.py +0 -0
  423. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/types/state_update_params.py +0 -0
  424. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/types/task.py +0 -0
  425. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/types/task_list_params.py +0 -0
  426. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/types/task_list_response.py +0 -0
  427. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/types/task_message.py +0 -0
  428. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/types/task_message_content.py +0 -0
  429. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/types/task_message_content_param.py +0 -0
  430. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/types/task_message_delta.py +0 -0
  431. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/types/task_message_update.py +0 -0
  432. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/types/text_content.py +0 -0
  433. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/types/text_content_param.py +0 -0
  434. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/types/text_delta.py +0 -0
  435. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/types/tool_request_content.py +0 -0
  436. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/types/tool_request_content_param.py +0 -0
  437. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/types/tool_request_delta.py +0 -0
  438. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/types/tool_response_content.py +0 -0
  439. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/types/tool_response_content_param.py +0 -0
  440. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/types/tool_response_delta.py +0 -0
  441. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/types/tracker_list_params.py +0 -0
  442. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/types/tracker_list_response.py +0 -0
  443. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/src/agentex/types/tracker_update_params.py +0 -0
  444. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/tests/__init__.py +0 -0
  445. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/tests/api_resources/__init__.py +0 -0
  446. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/tests/api_resources/messages/__init__.py +0 -0
  447. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/tests/api_resources/messages/test_batch.py +0 -0
  448. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/tests/api_resources/test_agents.py +0 -0
  449. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/tests/api_resources/test_events.py +0 -0
  450. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/tests/api_resources/test_messages.py +0 -0
  451. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/tests/api_resources/test_spans.py +0 -0
  452. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/tests/api_resources/test_states.py +0 -0
  453. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/tests/api_resources/test_tasks.py +0 -0
  454. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/tests/api_resources/test_tracker.py +0 -0
  455. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/tests/conftest.py +0 -0
  456. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/tests/sample_file.txt +0 -0
  457. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/tests/test_client.py +0 -0
  458. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/tests/test_deepcopy.py +0 -0
  459. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/tests/test_extract_files.py +0 -0
  460. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/tests/test_files.py +0 -0
  461. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/tests/test_models.py +0 -0
  462. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/tests/test_qs.py +0 -0
  463. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/tests/test_required_args.py +0 -0
  464. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/tests/test_response.py +0 -0
  465. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/tests/test_streaming.py +0 -0
  466. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/tests/test_transform.py +0 -0
  467. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/tests/test_utils/test_proxy.py +0 -0
  468. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/tests/test_utils/test_typing.py +0 -0
  469. {agentex_sdk-0.2.6 → agentex_sdk-0.2.8}/tests/utils.py +0 -0
@@ -0,0 +1,3 @@
1
+ {
2
+ ".": "0.2.8"
3
+ }
@@ -1,5 +1,28 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.2.8 (2025-08-09)
4
+
5
+ Full Changelog: [v0.2.7...v0.2.8](https://github.com/scaleapi/agentex-python/compare/v0.2.7...v0.2.8)
6
+
7
+ ### Chores
8
+
9
+ * **internal:** update comment in script ([401f1d7](https://github.com/scaleapi/agentex-python/commit/401f1d79034ecb0b556a26debde79681bc21e8ae))
10
+ * update @stainless-api/prism-cli to v5.15.0 ([4d332d0](https://github.com/scaleapi/agentex-python/commit/4d332d0f77a5a11ca6781a5fc7690ae82653cadb))
11
+
12
+ ## 0.2.7 (2025-08-08)
13
+
14
+ Full Changelog: [v0.2.6...v0.2.7](https://github.com/scaleapi/agentex-python/compare/v0.2.6...v0.2.7)
15
+
16
+ ### Features
17
+
18
+ * **api:** api update ([e3d08ba](https://github.com/scaleapi/agentex-python/commit/e3d08baad59346db48e04a394a929d6347dafa07))
19
+ * debug features ([40d8db2](https://github.com/scaleapi/agentex-python/commit/40d8db22dcc8f00a6c78e9bc3e1d036ebd1423b6))
20
+
21
+
22
+ ### Chores
23
+
24
+ * **internal:** fix ruff target version ([1b880e1](https://github.com/scaleapi/agentex-python/commit/1b880e1dd81d47bb9df12507f13351611ff6367f))
25
+
3
26
  ## 0.2.6 (2025-08-01)
4
27
 
5
28
  Full Changelog: [v0.2.5...v0.2.6](https://github.com/scaleapi/agentex-python/compare/v0.2.5...v0.2.6)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: agentex-sdk
3
- Version: 0.2.6
3
+ Version: 0.2.8
4
4
  Summary: The official Python library for the agentex API
5
5
  Project-URL: Homepage, https://github.com/scaleapi/agentex-python
6
6
  Project-URL: Repository, https://github.com/scaleapi/agentex-python
@@ -126,6 +126,37 @@ asyncio.run(main())
126
126
 
127
127
  Functionality between the synchronous and asynchronous clients is otherwise identical.
128
128
 
129
+ ## Debugging
130
+
131
+ AgentEx provides built-in debugging support for **temporal projects** during local development.
132
+
133
+ ```bash
134
+ # Basic debugging
135
+ uv run agentex agents run --manifest manifest.yaml --debug-worker
136
+
137
+ # Wait for debugger to attach before starting
138
+ uv run agentex agents run --manifest manifest.yaml --debug-worker --wait-for-debugger
139
+
140
+ # Custom debug port
141
+ uv run agentex agents run --manifest manifest.yaml --debug-worker --debug-port 5679
142
+ ```
143
+
144
+ For **VS Code**, add this configuration to `.vscode/launch.json`:
145
+
146
+ ```json
147
+ {
148
+ "name": "Attach to AgentEx Worker",
149
+ "type": "debugpy",
150
+ "request": "attach",
151
+ "connect": { "host": "localhost", "port": 5678 },
152
+ "pathMappings": [{ "localRoot": "${workspaceFolder}", "remoteRoot": "." }],
153
+ "justMyCode": false,
154
+ "console": "integratedTerminal"
155
+ }
156
+ ```
157
+
158
+ The debug server automatically finds an available port starting from 5678 and prints connection details when starting.
159
+
129
160
  ### With aiohttp
130
161
 
131
162
  By default, the async client uses `httpx` for HTTP requests. However, for improved concurrency performance you may also use `aiohttp` as the HTTP backend.
@@ -67,6 +67,37 @@ asyncio.run(main())
67
67
 
68
68
  Functionality between the synchronous and asynchronous clients is otherwise identical.
69
69
 
70
+ ## Debugging
71
+
72
+ AgentEx provides built-in debugging support for **temporal projects** during local development.
73
+
74
+ ```bash
75
+ # Basic debugging
76
+ uv run agentex agents run --manifest manifest.yaml --debug-worker
77
+
78
+ # Wait for debugger to attach before starting
79
+ uv run agentex agents run --manifest manifest.yaml --debug-worker --wait-for-debugger
80
+
81
+ # Custom debug port
82
+ uv run agentex agents run --manifest manifest.yaml --debug-worker --debug-port 5679
83
+ ```
84
+
85
+ For **VS Code**, add this configuration to `.vscode/launch.json`:
86
+
87
+ ```json
88
+ {
89
+ "name": "Attach to AgentEx Worker",
90
+ "type": "debugpy",
91
+ "request": "attach",
92
+ "connect": { "host": "localhost", "port": 5678 },
93
+ "pathMappings": [{ "localRoot": "${workspaceFolder}", "remoteRoot": "." }],
94
+ "justMyCode": false,
95
+ "console": "integratedTerminal"
96
+ }
97
+ ```
98
+
99
+ The debug server automatically finds an available port starting from 5678 and prints connection details when starting.
100
+
70
101
  ### With aiohttp
71
102
 
72
103
  By default, the async client uses `httpx` for HTTP requests. However, for improved concurrency performance you may also use `aiohttp` as the HTTP backend.
@@ -0,0 +1,336 @@
1
+ #!/bin/bash
2
+
3
+ # AgentEx Tutorial Launcher
4
+ # This script helps you easily launch and test all tutorials in the repository
5
+ #
6
+ # Usage:
7
+ # ./launch-tutorials.sh # Show interactive menu
8
+ # ./launch-tutorials.sh 1 # Launch tutorial #1 directly
9
+ # ./launch-tutorials.sh a # Launch all tutorials with confirmations
10
+ # ./launch-tutorials.sh c # Clean up orphaned tutorial processes
11
+ #
12
+ # Note: Excludes 90_multi_agent_non_temporal (use its own start-agents.sh)
13
+
14
+ # Simple cleanup function for orphaned processes
15
+ cleanup() {
16
+ # Kill any remaining agentex or uvicorn processes from tutorials
17
+ local agentex_pids=$(pgrep -f "agentex agents run.*tutorials" 2>/dev/null || true)
18
+ if [[ -n "$agentex_pids" ]]; then
19
+ echo "$agentex_pids" | xargs kill -TERM 2>/dev/null || true
20
+ sleep 1
21
+ echo "$agentex_pids" | xargs kill -KILL 2>/dev/null || true
22
+ fi
23
+
24
+ local uvicorn_pids=$(pgrep -f "uvicorn.*project\." 2>/dev/null || true)
25
+ if [[ -n "$uvicorn_pids" ]]; then
26
+ echo "$uvicorn_pids" | xargs kill -TERM 2>/dev/null || true
27
+ sleep 1
28
+ echo "$uvicorn_pids" | xargs kill -KILL 2>/dev/null || true
29
+ fi
30
+ }
31
+
32
+ # Color codes for output
33
+ RED='\033[0;31m'
34
+ GREEN='\033[0;32m'
35
+ YELLOW='\033[1;33m'
36
+ BLUE='\033[0;34m'
37
+ NC='\033[0m' # No Color
38
+
39
+ # Tutorial definitions
40
+ declare -a TUTORIALS=(
41
+ "tutorials/00_sync/000_hello_acp|Basic Hello ACP (Sync)"
42
+ "tutorials/00_sync/010_multiturn|Multi-turn Chat (Sync)"
43
+ "tutorials/00_sync/020_streaming|Streaming Response (Sync)"
44
+ "tutorials/10_agentic/00_base/000_hello_acp|Basic Hello ACP (Agentic)"
45
+ "tutorials/10_agentic/00_base/010_multiturn|Multi-turn Chat (Agentic)"
46
+ "tutorials/10_agentic/00_base/020_streaming|Streaming Response (Agentic)"
47
+ "tutorials/10_agentic/00_base/030_tracing|Tracing Example (Agentic)"
48
+ "tutorials/10_agentic/00_base/040_other_sdks|Other SDKs Integration (Agentic)"
49
+ "tutorials/10_agentic/00_base/080_batch_events|Batch Events (Agentic)"
50
+ "tutorials/10_agentic/10_temporal/000_hello_acp|Basic Hello ACP (Temporal)"
51
+ "tutorials/10_agentic/10_temporal/010_agent_chat|Agent Chat (Temporal)"
52
+ "tutorials/10_agentic/10_temporal/020_state_machine|State Machine (Temporal)"
53
+ )
54
+
55
+ # Function to print colored output
56
+ print_colored() {
57
+ local color=$1
58
+ local message=$2
59
+ # Check if terminal supports colors
60
+ if [[ -t 1 ]] && command -v tput >/dev/null 2>&1; then
61
+ printf "${color}%s${NC}\n" "$message"
62
+ else
63
+ printf "%s\n" "$message"
64
+ fi
65
+ }
66
+
67
+ # Function to display the menu
68
+ show_menu() {
69
+ print_colored $BLUE "╔════════════════════════════════════════════════════════════════╗"
70
+ print_colored $BLUE "║ AgentEx Tutorial Launcher ║"
71
+ print_colored $BLUE "╚════════════════════════════════════════════════════════════════╝"
72
+ echo ""
73
+ print_colored $YELLOW "Available tutorials:"
74
+ echo ""
75
+
76
+ local index=1
77
+ for tutorial in "${TUTORIALS[@]}"; do
78
+ IFS='|' read -r path description <<< "$tutorial"
79
+ if [[ -t 1 ]] && command -v tput >/dev/null 2>&1; then
80
+ printf "${GREEN}%2d.${NC} %s\n" $index "$description"
81
+ else
82
+ printf "%2d. %s\n" $index "$description"
83
+ fi
84
+ index=$((index + 1))
85
+ done
86
+
87
+ echo ""
88
+ print_colored $BLUE "Other options:"
89
+ print_colored $GREEN " a. Run all tutorials sequentially (with confirmations)"
90
+ print_colored $GREEN " c. Clean up any orphaned tutorial processes"
91
+ print_colored $GREEN " q. Quit"
92
+ echo ""
93
+ print_colored $YELLOW "📌 Note: The multi-agent system tutorial (tutorials/10_agentic/90_multi_agent_non_temporal) is excluded"
94
+ print_colored $YELLOW " as it has a special launch process. Use its own start-agents.sh script."
95
+ echo ""
96
+ }
97
+
98
+ # Function to run a specific tutorial
99
+ run_tutorial() {
100
+ local tutorial_index=$1
101
+ local tutorial_info="${TUTORIALS[$((tutorial_index - 1))]}"
102
+ IFS='|' read -r path description <<< "$tutorial_info"
103
+
104
+ local manifest_path="${path}/manifest.yaml"
105
+
106
+ print_colored $BLUE "╔════════════════════════════════════════════════════════════════╗"
107
+ printf "║ Running: %-54s ║\n" "$description"
108
+ print_colored $BLUE "╚════════════════════════════════════════════════════════════════╝"
109
+
110
+ if [[ ! -f "$manifest_path" ]]; then
111
+ print_colored $RED "❌ Error: Manifest file not found at $manifest_path"
112
+ return 1
113
+ fi
114
+
115
+ print_colored $YELLOW "📂 Tutorial path: $path"
116
+ print_colored $YELLOW "📄 Manifest: $manifest_path"
117
+ echo ""
118
+ print_colored $GREEN "🚀 Executing: cd .. && uv run agentex agents run --manifest examples/$manifest_path"
119
+ print_colored $YELLOW "💡 Press Ctrl+C to stop the tutorial"
120
+ echo ""
121
+
122
+ # Run the tutorial directly (need to go to parent dir where uv project is)
123
+ (cd .. && uv run agentex agents run --manifest "examples/$manifest_path")
124
+
125
+ local exit_code=$?
126
+ if [[ $exit_code -eq 0 ]]; then
127
+ print_colored $GREEN "✅ Tutorial completed successfully!"
128
+ elif [[ $exit_code -eq 130 ]]; then
129
+ print_colored $YELLOW "🛑 Tutorial was interrupted by user"
130
+ else
131
+ print_colored $RED "❌ Tutorial failed with exit code: $exit_code"
132
+ fi
133
+
134
+ return $exit_code
135
+ }
136
+
137
+ # Function to run all tutorials
138
+ run_all_tutorials() {
139
+ print_colored $BLUE "🎯 Running all tutorials sequentially..."
140
+ echo ""
141
+
142
+ local success_count=0
143
+ local total_count=${#TUTORIALS[@]}
144
+
145
+ for i in $(seq 1 $total_count); do
146
+ local tutorial_info="${TUTORIALS[$((i - 1))]}"
147
+ IFS='|' read -r path description <<< "$tutorial_info"
148
+
149
+ print_colored $YELLOW "┌─ Tutorial $i/$total_count: $description"
150
+ echo ""
151
+
152
+ # Ask for confirmation
153
+ while true; do
154
+ print_colored $BLUE "Run this tutorial? (y/n/q to quit): "
155
+ read -r response
156
+ case $response in
157
+ [Yy]* )
158
+ if run_tutorial $i; then
159
+ success_count=$((success_count + 1))
160
+ fi
161
+ break
162
+ ;;
163
+ [Nn]* )
164
+ print_colored $YELLOW "⏭️ Skipping tutorial $i"
165
+ break
166
+ ;;
167
+ [Qq]* )
168
+ print_colored $YELLOW "🛑 Stopping tutorial run"
169
+ echo ""
170
+ print_colored $BLUE "📊 Summary: $success_count/$((i-1)) tutorials completed successfully"
171
+ return 0
172
+ ;;
173
+ * )
174
+ print_colored $RED "Please answer y, n, or q."
175
+ ;;
176
+ esac
177
+ done
178
+
179
+ if [[ $i -lt $total_count ]]; then
180
+ echo ""
181
+ print_colored $BLUE "────────────────────────────────────────────────────────────────"
182
+ echo ""
183
+ fi
184
+ done
185
+
186
+ echo ""
187
+ print_colored $BLUE "🎉 All tutorials completed!"
188
+ print_colored $BLUE "📊 Summary: $success_count/$total_count tutorials completed successfully"
189
+ }
190
+
191
+ # Function to manually clean up tutorial processes
192
+ manual_cleanup() {
193
+ print_colored $BLUE "🧹 Manual cleanup of tutorial processes..."
194
+ echo ""
195
+
196
+ # Check for running tutorial processes
197
+ local found_processes=false
198
+
199
+ # Check for agentex processes
200
+ local agentex_pids=$(pgrep -f "agentex agents run.*tutorials" 2>/dev/null || true)
201
+ if [[ -n "$agentex_pids" ]]; then
202
+ found_processes=true
203
+ print_colored $YELLOW "🔍 Found agentex tutorial processes:"
204
+ ps -p $agentex_pids -o pid,command 2>/dev/null || true
205
+ echo ""
206
+ fi
207
+
208
+ # Check for uvicorn processes
209
+ local uvicorn_pids=$(pgrep -f "uvicorn.*project\." 2>/dev/null || true)
210
+ if [[ -n "$uvicorn_pids" ]]; then
211
+ found_processes=true
212
+ print_colored $YELLOW "🔍 Found uvicorn tutorial processes:"
213
+ ps -p $uvicorn_pids -o pid,command 2>/dev/null || true
214
+ echo ""
215
+ fi
216
+
217
+ # Check for occupied ports
218
+ print_colored $YELLOW "🔍 Checking common tutorial ports (8000-8003)..."
219
+ local port_check=$(lsof -i :8000 -i :8001 -i :8002 -i :8003 2>/dev/null || true)
220
+ if [[ -n "$port_check" ]]; then
221
+ found_processes=true
222
+ echo "$port_check"
223
+ echo ""
224
+ fi
225
+
226
+ if [[ "$found_processes" == "false" ]]; then
227
+ print_colored $GREEN "✅ No tutorial processes found - system is clean!"
228
+ return 0
229
+ fi
230
+
231
+ # Ask for confirmation before cleaning
232
+ while true; do
233
+ print_colored $BLUE "Kill these processes? (y/n): "
234
+ read -r response
235
+ case $response in
236
+ [Yy]* )
237
+ print_colored $YELLOW "🧹 Cleaning up..."
238
+ cleanup
239
+ print_colored $GREEN "✅ Manual cleanup completed!"
240
+ break
241
+ ;;
242
+ [Nn]* )
243
+ print_colored $YELLOW "⏭️ Cleanup cancelled"
244
+ break
245
+ ;;
246
+ * )
247
+ print_colored $RED "Please answer y or n."
248
+ ;;
249
+ esac
250
+ done
251
+ }
252
+
253
+ # Function to validate tutorial number
254
+ validate_tutorial_number() {
255
+ local num=$1
256
+ if [[ ! "$num" =~ ^[0-9]+$ ]] || [[ $num -lt 1 ]] || [[ $num -gt ${#TUTORIALS[@]} ]]; then
257
+ return 1
258
+ fi
259
+ return 0
260
+ }
261
+
262
+ # Main script logic
263
+ main() {
264
+ # Check if we're in the right directory
265
+ if [[ ! -f "../pyproject.toml" ]] || [[ ! -d "tutorials" ]]; then
266
+ print_colored $RED "❌ Error: This script must be run from the examples directory"
267
+ print_colored $YELLOW "💡 Current directory: $(pwd)"
268
+ print_colored $YELLOW "💡 Expected files: ../pyproject.toml, tutorials/"
269
+ exit 1
270
+ fi
271
+
272
+ # If a tutorial number is provided as argument
273
+ if [[ $# -eq 1 ]]; then
274
+ local tutorial_num=$1
275
+
276
+ if [[ "$tutorial_num" == "a" ]] || [[ "$tutorial_num" == "all" ]]; then
277
+ run_all_tutorials
278
+ exit 0
279
+ elif [[ "$tutorial_num" == "c" ]] || [[ "$tutorial_num" == "cleanup" ]]; then
280
+ manual_cleanup
281
+ exit 0
282
+ fi
283
+
284
+ if validate_tutorial_number "$tutorial_num"; then
285
+ run_tutorial "$tutorial_num"
286
+ exit $?
287
+ else
288
+ print_colored $RED "❌ Error: Invalid tutorial number '$tutorial_num'"
289
+ print_colored $YELLOW "💡 Valid range: 1-${#TUTORIALS[@]}"
290
+ exit 1
291
+ fi
292
+ fi
293
+
294
+ # Interactive mode
295
+ while true; do
296
+ show_menu
297
+ print_colored $BLUE "Enter your choice (1-${#TUTORIALS[@]}, a, c, or q): "
298
+ read -r choice
299
+
300
+ case $choice in
301
+ [Qq]* )
302
+ print_colored $YELLOW "👋 Goodbye!"
303
+ exit 0
304
+ ;;
305
+ [Aa]* )
306
+ echo ""
307
+ run_all_tutorials
308
+ echo ""
309
+ ;;
310
+ [Cc]* )
311
+ echo ""
312
+ manual_cleanup
313
+ echo ""
314
+ print_colored $BLUE "Press Enter to continue..."
315
+ read -r
316
+ ;;
317
+ * )
318
+ if validate_tutorial_number "$choice"; then
319
+ echo ""
320
+ run_tutorial "$choice"
321
+ echo ""
322
+ print_colored $BLUE "Press Enter to continue..."
323
+ read -r
324
+ else
325
+ print_colored $RED "❌ Invalid choice: '$choice'"
326
+ print_colored $YELLOW "💡 Please enter a number between 1 and ${#TUTORIALS[@]}, 'a' for all, 'c' for cleanup, or 'q' to quit"
327
+ fi
328
+ ;;
329
+ esac
330
+
331
+ echo ""
332
+ done
333
+ }
334
+
335
+ # Run the main function
336
+ main "$@"
@@ -0,0 +1,44 @@
1
+ # syntax=docker/dockerfile:1.3
2
+ FROM python:3.12-slim
3
+
4
+ COPY --from=ghcr.io/astral-sh/uv:0.6.4 /uv /uvx /bin/
5
+
6
+ # Install system dependencies
7
+ RUN apt-get update && apt-get install -y \
8
+ htop \
9
+ vim \
10
+ curl \
11
+ tar \
12
+ python3-dev \
13
+ postgresql-client \
14
+ build-essential \
15
+ libpq-dev \
16
+ gcc \
17
+ cmake \
18
+ netcat-openbsd \
19
+ && apt-get clean \
20
+ && rm -rf /var/lib/apt/lists/*
21
+
22
+ RUN uv pip install --system --upgrade pip setuptools wheel
23
+
24
+ ENV UV_HTTP_TIMEOUT=1000
25
+
26
+ # Copy just the pyproject.toml file to optimize caching
27
+ COPY pyproject.toml /app/pyproject.toml
28
+ WORKDIR /app/
29
+ # Install the required Python packages
30
+ RUN uv pip install --system -e .
31
+
32
+ # Copy the project code
33
+ COPY project /app/project
34
+
35
+ WORKDIR /app
36
+
37
+ # Set environment variables
38
+ ENV PYTHONPATH=/app
39
+
40
+ ARG AGENT_FILE
41
+ ARG PORT
42
+
43
+ # Run the agent using uvicorn
44
+ CMD uvicorn project.${AGENT_FILE%.*}:acp --host 0.0.0.0 --port ${PORT:-8000}
@@ -0,0 +1,197 @@
1
+ # Multi-Agent Content Assembly Line
2
+
3
+ A multi-agent system that creates content through a collaborative workflow. Four agents work together: a creator generates content, a critic reviews it against rules, and a formatter outputs the final result, all coordinated by an orchestrator.
4
+
5
+ ## 🏗️ Architecture Overview
6
+
7
+ ```
8
+ 090_multi_agent_non_temporal/
9
+ ├── project/ # All agent code
10
+ │ ├── creator.py # Content generation agent
11
+ │ ├── critic.py # Content review agent
12
+ │ ├── formatter.py # Content formatting agent
13
+ │ ├── orchestrator.py # Workflow coordination agent
14
+ │ ├── models.py # Pydantic models for type safety
15
+ │ └── state_machines/
16
+ │ └── content_workflow.py # State machine definitions
17
+ ├── creator.yaml # Creator agent manifest
18
+ ├── critic.yaml # Critic agent manifest
19
+ ├── formatter.yaml # Formatter agent manifest
20
+ ├── orchestrator.yaml # Orchestrator agent manifest
21
+ ├── Dockerfile # Single shared Dockerfile
22
+ ├── pyproject.toml # Dependencies and project configuration
23
+ ├── start-agents.sh # Agent management script
24
+ └── README.md # This file
25
+ ```
26
+
27
+ ## 📁 File Structure
28
+
29
+ The system uses a shared build configuration with type-safe interfaces:
30
+ - **Single `Dockerfile`** with build arguments for different agents
31
+ - **Single `pyproject.toml`** for all dependencies
32
+ - **Agent code** in `project/` directory with clear separation of concerns
33
+ - **Individual manifest files** at root level for each agent deployment
34
+ - **Shared state machine definitions** for workflow coordination
35
+ - **Pydantic models** (`models.py`) for type safety and validation across all agents
36
+
37
+ ### Key Files:
38
+ - `project/models.py` - Defines request/response models for type safety
39
+ - `project/orchestrator.py` - Workflow coordination and inter-agent communication
40
+ - `project/creator.py` - Content generation with revision capabilities
41
+ - `project/critic.py` - Content validation against rules
42
+ - `project/formatter.py` - Multi-format content transformation
43
+ - `project/state_machines/content_workflow.py` - State management for the workflow
44
+
45
+ ## 🚀 Quick Start
46
+
47
+ ### Prerequisites
48
+ - Python 3.12+
49
+ - uv package manager
50
+ - OpenAI API key (set `OPENAI_API_KEY` or create `.env` file)
51
+
52
+ ### Running the System
53
+
54
+ 1. **Start all agents**:
55
+ ```bash
56
+ cd examples/tutorials/10_agentic/00_base/090_multi_agent_non_temporal
57
+ ./start-agents.sh start
58
+ ```
59
+
60
+ 2. **Check agent status**:
61
+ ```bash
62
+ ./start-agents.sh status
63
+ ```
64
+
65
+ 3. **Send a test request**:
66
+ ```bash
67
+ ./start-agents.sh test
68
+ ```
69
+
70
+ 4. **Monitor logs**:
71
+ ```bash
72
+ ./start-agents.sh logs
73
+ ```
74
+
75
+ 5. **Stop all agents**:
76
+ ```bash
77
+ ./start-agents.sh stop
78
+ ```
79
+
80
+ ## 🤖 Agent Responsibilities
81
+
82
+ ### **Creator Agent** (Port 8001)
83
+ - Generates original content based on user requests
84
+ - Revises content based on critic feedback
85
+ - Maintains conversation history and iteration tracking
86
+
87
+ ### **Critic Agent** (Port 8002)
88
+ - Reviews content against specified rules
89
+ - Provides specific, actionable feedback
90
+ - Approves content when all rules are met
91
+
92
+ ### **Formatter Agent** (Port 8003)
93
+ - Converts approved content to target formats (HTML, Markdown, JSON, etc.)
94
+ - Preserves meaning while applying format-specific conventions
95
+ - Supports multiple output formats
96
+
97
+ ### **Orchestrator Agent** (Port 8000)
98
+ - Coordinates the entire workflow using state machines
99
+ - Manages inter-agent communication
100
+ - Tracks progress and handles errors/retries
101
+
102
+ ## 📋 Example Request
103
+
104
+ Send a JSON request to the orchestrator:
105
+
106
+ ```json
107
+ {
108
+ "request": "Write a welcome message for our AI assistant",
109
+ "rules": ["Under 50 words", "Friendly tone", "Include emoji"],
110
+ "target_format": "HTML"
111
+ }
112
+ ```
113
+
114
+ The system will:
115
+ 1. **Create** content using the Creator agent
116
+ 2. **Review** against rules using the Critic agent
117
+ 3. **Revise** if needed (up to 10 iterations)
118
+ 4. **Format** final approved content using the Formatter agent
119
+
120
+ ## 🔧 Development
121
+
122
+ ### Type Safety with Pydantic
123
+ The tutorial demonstrates proper type safety using Pydantic models:
124
+
125
+ ```python
126
+ # Define request structure
127
+ class CreatorRequest(BaseModel):
128
+ request: str = Field(..., description="The content creation request")
129
+ current_draft: Optional[str] = Field(default=None, description="Current draft for revision")
130
+ feedback: Optional[List[str]] = Field(default=None, description="Feedback from critic")
131
+
132
+ # Validate incoming requests
133
+ creator_request = CreatorRequest.model_validate(request_data)
134
+ ```
135
+
136
+ Benefits:
137
+ - **Explicit failures** when required fields are missing
138
+ - **Self-documenting** APIs with field descriptions
139
+ - **IDE support** with auto-completion and type checking
140
+ - **Runtime validation** with clear error messages
141
+
142
+ ### Adding New Agents
143
+ 1. **Add models** to `project/models.py` for request/response types
144
+ 2. **Create agent** in `project/new_agent.py` using the FastACP pattern
145
+ 3. **Add manifest** as `new_agent.yaml` at root level with deployment configuration
146
+ 4. **Update startup script** in `start-agents.sh` to include the new agent
147
+
148
+ ### Modifying Agents
149
+ - **Agent code** is in `project/` directory
150
+ - **Shared models** are in `project/models.py` for consistency
151
+ - **Dependencies** go in `pyproject.toml`
152
+ - **Docker configuration** is shared across all agents
153
+
154
+ ### Deployment
155
+ Each agent can be deployed independently using its manifest:
156
+ ```bash
157
+ uv run agentex agents deploy --cluster your-cluster --manifest creator.yaml
158
+ ```
159
+
160
+ ## 🏗️ Technical Implementation
161
+
162
+ ### Shared Dockerfile
163
+ The Dockerfile uses build arguments to run different agents:
164
+ ```dockerfile
165
+ CMD uvicorn project.${AGENT_FILE%.*}:acp --host 0.0.0.0 --port ${PORT:-8000}
166
+ ```
167
+
168
+ Manifest files specify which agent to run:
169
+ ```yaml
170
+ build_args:
171
+ AGENT_FILE: creator.py
172
+ PORT: 8001
173
+ ```
174
+
175
+ ### State Machine Flow
176
+ The orchestrator coordinates the workflow through these states:
177
+ - `CREATING` → `WAITING_FOR_CREATOR` → `REVIEWING` → `WAITING_FOR_CRITIC` → `FORMATTING` → `COMPLETED`
178
+
179
+ ### Inter-Agent Communication
180
+ Agents communicate using AgentEx events:
181
+ ```python
182
+ await adk.acp.send_event(
183
+ agent_name="ab090-creator-agent",
184
+ task_id=task_id,
185
+ content=TextContent(author="agent", content=json.dumps(request_data))
186
+ )
187
+ ```
188
+
189
+ ## 📚 What You'll Learn
190
+
191
+ This tutorial demonstrates:
192
+ - **Multi-agent coordination** using state machines for complex workflows
193
+ - **Type-safe communication** with Pydantic models for all request/response data
194
+ - **Shared build configuration** for multiple agents in a single deployment
195
+ - **AgentEx CLI usage** for development and deployment
196
+ - **Inter-agent communication patterns** with proper error handling
197
+ - **Scalable agent architecture** with clear separation of concerns