agentbyte 0.20.3__tar.gz → 0.20.4__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 (348) hide show
  1. {agentbyte-0.20.3 → agentbyte-0.20.4}/.github/skills/agentbyte-agent/SKILL.md +3 -1
  2. {agentbyte-0.20.3 → agentbyte-0.20.4}/.github/skills/agentbyte-workflow/SKILL.md +50 -0
  3. {agentbyte-0.20.3 → agentbyte-0.20.4}/CHANGELOG.md +9 -0
  4. {agentbyte-0.20.3 → agentbyte-0.20.4}/PKG-INFO +2 -2
  5. {agentbyte-0.20.3 → agentbyte-0.20.4}/README.md +1 -1
  6. agentbyte-0.20.4/src/agentbyte/__about__.py +2 -0
  7. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/agents/agent.py +1 -1
  8. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/llm/azure/chat.py +4 -0
  9. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/llm/openai/chat.py +4 -0
  10. agentbyte-0.20.3/src/agentbyte/__about__.py +0 -2
  11. {agentbyte-0.20.3 → agentbyte-0.20.4}/.github/skills/agentbyte-ai-driven-orchestration/SKILL.md +0 -0
  12. {agentbyte-0.20.3 → agentbyte-0.20.4}/.github/skills/agentbyte-coding-tools/SKILL.md +0 -0
  13. {agentbyte-0.20.3 → agentbyte-0.20.4}/.github/skills/agentbyte-dataset/SKILL.md +0 -0
  14. {agentbyte-0.20.3 → agentbyte-0.20.4}/.github/skills/agentbyte-eval/SKILL.md +0 -0
  15. {agentbyte-0.20.3 → agentbyte-0.20.4}/.github/skills/agentbyte-function-tools/SKILL.md +0 -0
  16. {agentbyte-0.20.3 → agentbyte-0.20.4}/.github/skills/agentbyte-handoff-orchestration/SKILL.md +0 -0
  17. {agentbyte-0.20.3 → agentbyte-0.20.4}/.github/skills/agentbyte-list-memory/SKILL.md +0 -0
  18. {agentbyte-0.20.3 → agentbyte-0.20.4}/.github/skills/agentbyte-llm-client/SKILL.md +0 -0
  19. {agentbyte-0.20.3 → agentbyte-0.20.4}/.github/skills/agentbyte-memory-tool/SKILL.md +0 -0
  20. {agentbyte-0.20.3 → agentbyte-0.20.4}/.github/skills/agentbyte-middleware/SKILL.md +0 -0
  21. {agentbyte-0.20.3 → agentbyte-0.20.4}/.github/skills/agentbyte-otel-tracing/SKILL.md +0 -0
  22. {agentbyte-0.20.3 → agentbyte-0.20.4}/.github/skills/agentbyte-plan-based-orchestration/SKILL.md +0 -0
  23. {agentbyte-0.20.3 → agentbyte-0.20.4}/.github/skills/agentbyte-research-tools/SKILL.md +0 -0
  24. {agentbyte-0.20.3 → agentbyte-0.20.4}/.github/skills/agentbyte-round-robin-orchestration/SKILL.md +0 -0
  25. {agentbyte-0.20.3 → agentbyte-0.20.4}/.github/skills/git-multi-remote-push/SKILL.md +0 -0
  26. {agentbyte-0.20.3 → agentbyte-0.20.4}/.github/skills/skill-authoring/SKILL.md +0 -0
  27. {agentbyte-0.20.3 → agentbyte-0.20.4}/.gitignore +0 -0
  28. {agentbyte-0.20.3 → agentbyte-0.20.4}/LICENSE +0 -0
  29. {agentbyte-0.20.3 → agentbyte-0.20.4}/pyproject.toml +0 -0
  30. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/__init__.py +0 -0
  31. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/agents/__init__.py +0 -0
  32. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/agents/agent_as_tool.py +0 -0
  33. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/agents/base.py +0 -0
  34. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/agents/embedding_agent.py +0 -0
  35. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/agents/types.py +0 -0
  36. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/cancellation_token.py +0 -0
  37. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/catalog.py +0 -0
  38. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/cli/__init__.py +0 -0
  39. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/cli/main.py +0 -0
  40. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/component.py +0 -0
  41. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/context.py +0 -0
  42. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/context_providers/__init__.py +0 -0
  43. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/context_providers/base.py +0 -0
  44. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/context_providers/skill_tools.py +0 -0
  45. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/context_providers/skills.py +0 -0
  46. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/dataset/__init__.py +0 -0
  47. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/dataset/base.py +0 -0
  48. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/dataset/config.py +0 -0
  49. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/dataset/json.py +0 -0
  50. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/dataset/loader.py +0 -0
  51. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/dataset/publish.py +0 -0
  52. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/dataset/publish_config.py +0 -0
  53. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/dataset/publishers.py +0 -0
  54. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/dataset/sources.py +0 -0
  55. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/dataset/sqlite.py +0 -0
  56. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/entity.py +0 -0
  57. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/eval/__init__.py +0 -0
  58. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/eval/base.py +0 -0
  59. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/eval/checks/__init__.py +0 -0
  60. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/eval/checks/decorator.py +0 -0
  61. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/eval/checks/keyword.py +0 -0
  62. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/eval/checks/local.py +0 -0
  63. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/eval/checks/tool.py +0 -0
  64. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/eval/checks/types.py +0 -0
  65. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/eval/comparison.py +0 -0
  66. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/eval/eval_dataset.py +0 -0
  67. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/eval/judges/__init__.py +0 -0
  68. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/eval/judges/base.py +0 -0
  69. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/eval/judges/composite.py +0 -0
  70. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/eval/judges/llm.py +0 -0
  71. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/eval/judges/pairwise.py +0 -0
  72. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/eval/judges/reference.py +0 -0
  73. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/eval/pairwise.py +0 -0
  74. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/eval/report.py +0 -0
  75. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/eval/runner.py +0 -0
  76. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/eval/targets/__init__.py +0 -0
  77. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/eval/targets/agent.py +0 -0
  78. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/eval/targets/model.py +0 -0
  79. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/eval/targets/orchestrator.py +0 -0
  80. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/eval/types.py +0 -0
  81. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/llm/__init__.py +0 -0
  82. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/llm/_retry_observability.py +0 -0
  83. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/llm/auth.py +0 -0
  84. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/llm/azure/__init__.py +0 -0
  85. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/llm/azure/auth.py +0 -0
  86. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/llm/azure/embedding.py +0 -0
  87. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/llm/azure/settings.py +0 -0
  88. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/llm/azure_openai.py +0 -0
  89. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/llm/azure_openai_embedding.py +0 -0
  90. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/llm/base.py +0 -0
  91. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/llm/embeddings_base.py +0 -0
  92. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/llm/openai/__init__.py +0 -0
  93. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/llm/openai/embedding.py +0 -0
  94. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/llm/openai/settings.py +0 -0
  95. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/llm/openai.py +0 -0
  96. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/llm/openai_embedding.py +0 -0
  97. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/llm/pricing.py +0 -0
  98. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/llm/retry_policy.py +0 -0
  99. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/llm/settings.py +0 -0
  100. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/llm/types.py +0 -0
  101. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/logger.py +0 -0
  102. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/memory/__init__.py +0 -0
  103. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/memory/base.py +0 -0
  104. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/messages.py +0 -0
  105. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/microwebui/__init__.py +0 -0
  106. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/microwebui/server.py +0 -0
  107. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/microwebui/ui/index.html +0 -0
  108. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/middleware/__init__.py +0 -0
  109. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/middleware/base.py +0 -0
  110. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/middleware/otel.py +0 -0
  111. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/middleware/retry.py +0 -0
  112. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/middleware/sql_usage.py +0 -0
  113. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/middleware/usage_logger.py +0 -0
  114. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/notebook.py +0 -0
  115. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/orchestration/__init__.py +0 -0
  116. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/orchestration/ai.py +0 -0
  117. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/orchestration/base.py +0 -0
  118. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/orchestration/handoff.py +0 -0
  119. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/orchestration/plan.py +0 -0
  120. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/orchestration/policies.py +0 -0
  121. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/orchestration/round_robin.py +0 -0
  122. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/presets/__init__.py +0 -0
  123. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/presets/agents.py +0 -0
  124. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/presets/clients.py +0 -0
  125. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/presets/instruction_registry.py +0 -0
  126. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/presets/instructions/orchestrator.yaml +0 -0
  127. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/presets/instructions/query_rewriter.yaml +0 -0
  128. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/presets/instructions/researcher.yaml +0 -0
  129. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/presets/instructions/reviewer.yaml +0 -0
  130. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/presets/instructions/writer.yaml +0 -0
  131. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/presets/orchestration.py +0 -0
  132. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/presets/skills/contracts-analyst/SKILL.md +0 -0
  133. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/presets/workflow.py +0 -0
  134. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/session_store.py +0 -0
  135. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/skills/__init__.py +0 -0
  136. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/skills/base.py +0 -0
  137. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/skills/resources.py +0 -0
  138. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/skills/scripts.py +0 -0
  139. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/skills/sources.py +0 -0
  140. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/termination/__init__.py +0 -0
  141. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/termination/base.py +0 -0
  142. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/termination/cancellation.py +0 -0
  143. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/termination/composite.py +0 -0
  144. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/termination/consecutive_agent.py +0 -0
  145. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/termination/external.py +0 -0
  146. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/termination/function_call.py +0 -0
  147. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/termination/handoff.py +0 -0
  148. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/termination/max_message.py +0 -0
  149. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/termination/predicate.py +0 -0
  150. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/termination/source.py +0 -0
  151. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/termination/text_mention.py +0 -0
  152. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/termination/timeout.py +0 -0
  153. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/termination/token_usage.py +0 -0
  154. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/tools/__init__.py +0 -0
  155. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/tools/base.py +0 -0
  156. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/tools/coding_tools.py +0 -0
  157. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/tools/core_tools.py +0 -0
  158. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/tools/decorator.py +0 -0
  159. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/tools/memory_tool.py +0 -0
  160. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/tools/research_tools.py +0 -0
  161. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/types.py +0 -0
  162. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/webui/__init__.py +0 -0
  163. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/webui/discovery.py +0 -0
  164. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/webui/execution.py +0 -0
  165. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/webui/frontend/.gitignore +0 -0
  166. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/webui/frontend/README.md +0 -0
  167. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/webui/frontend/components.json +0 -0
  168. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/webui/frontend/eslint.config.js +0 -0
  169. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/webui/frontend/index.html +0 -0
  170. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/webui/frontend/package-lock.json +0 -0
  171. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/webui/frontend/package.json +0 -0
  172. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/webui/frontend/plan.md +0 -0
  173. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/webui/frontend/public/vite.svg +0 -0
  174. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/webui/frontend/src/App.css +0 -0
  175. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/webui/frontend/src/App.tsx +0 -0
  176. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/webui/frontend/src/assets/react.svg +0 -0
  177. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/webui/frontend/src/components/agent/agent-view.tsx +0 -0
  178. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/webui/frontend/src/components/message_renderer/ContentRenderer.tsx +0 -0
  179. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/webui/frontend/src/components/message_renderer/MessageRenderer.tsx +0 -0
  180. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/webui/frontend/src/components/message_renderer/index.ts +0 -0
  181. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/webui/frontend/src/components/message_renderer/types.ts +0 -0
  182. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/webui/frontend/src/components/mode-toggle.tsx +0 -0
  183. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/webui/frontend/src/components/orchestrator/orchestrator-view.tsx +0 -0
  184. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/webui/frontend/src/components/shared/app-header.tsx +0 -0
  185. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/webui/frontend/src/components/shared/chat-base.tsx +0 -0
  186. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/webui/frontend/src/components/shared/context-inspector.tsx +0 -0
  187. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/webui/frontend/src/components/shared/debug-panel.tsx +0 -0
  188. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/webui/frontend/src/components/shared/entity-selector.tsx +0 -0
  189. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/webui/frontend/src/components/shared/example-tasks-display.tsx +0 -0
  190. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/webui/frontend/src/components/shared/session-switcher.tsx +0 -0
  191. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/webui/frontend/src/components/shared/tool-approval-banner.tsx +0 -0
  192. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/webui/frontend/src/components/theme-provider.tsx +0 -0
  193. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/webui/frontend/src/components/ui/attachment-gallery.tsx +0 -0
  194. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/webui/frontend/src/components/ui/badge.tsx +0 -0
  195. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/webui/frontend/src/components/ui/button.tsx +0 -0
  196. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/webui/frontend/src/components/ui/card.tsx +0 -0
  197. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/webui/frontend/src/components/ui/dialog.tsx +0 -0
  198. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/webui/frontend/src/components/ui/dropdown-menu.tsx +0 -0
  199. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/webui/frontend/src/components/ui/file-upload.tsx +0 -0
  200. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/webui/frontend/src/components/ui/input.tsx +0 -0
  201. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/webui/frontend/src/components/ui/label.tsx +0 -0
  202. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/webui/frontend/src/components/ui/loading-spinner.tsx +0 -0
  203. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/webui/frontend/src/components/ui/loading-state.tsx +0 -0
  204. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/webui/frontend/src/components/ui/message-input.tsx +0 -0
  205. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/webui/frontend/src/components/ui/scroll-area.tsx +0 -0
  206. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/webui/frontend/src/components/ui/slider.tsx +0 -0
  207. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/webui/frontend/src/components/ui/tabs.tsx +0 -0
  208. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/webui/frontend/src/components/ui/textarea.tsx +0 -0
  209. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/webui/frontend/src/components/workflow/workflow-result-renderer.tsx +0 -0
  210. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/webui/frontend/src/components/workflow/workflow-view.tsx +0 -0
  211. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/webui/frontend/src/hooks/messageHandlers.ts +0 -0
  212. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/webui/frontend/src/hooks/useEntityExecution.ts +0 -0
  213. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/webui/frontend/src/index.css +0 -0
  214. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/webui/frontend/src/lib/format-utils.ts +0 -0
  215. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/webui/frontend/src/lib/user-id.ts +0 -0
  216. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/webui/frontend/src/lib/utils.ts +0 -0
  217. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/webui/frontend/src/main.tsx +0 -0
  218. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/webui/frontend/src/services/api.ts +0 -0
  219. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/webui/frontend/src/types/index.ts +0 -0
  220. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/webui/frontend/src/types/picoagents.ts +0 -0
  221. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/webui/frontend/src/utils/message-utils.ts +0 -0
  222. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/webui/frontend/src/vite-env.d.ts +0 -0
  223. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/webui/frontend/tsconfig.app.json +0 -0
  224. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/webui/frontend/tsconfig.json +0 -0
  225. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/webui/frontend/tsconfig.node.json +0 -0
  226. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/webui/frontend/vite.config.ts +0 -0
  227. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/webui/frontend/yarn.lock +0 -0
  228. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/webui/models.py +0 -0
  229. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/webui/registry.py +0 -0
  230. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/webui/server.py +0 -0
  231. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/webui/session_store.py +0 -0
  232. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/webui/sessions.py +0 -0
  233. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/webui/ui/assets/index-DDp5MYFO.js +0 -0
  234. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/webui/ui/assets/index-ar5tOeqt.css +0 -0
  235. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/webui/ui/index.html +0 -0
  236. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/webui/ui/vite.svg +0 -0
  237. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/workflow/__init__.py +0 -0
  238. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/workflow/agent.py +0 -0
  239. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/workflow/core/__init__.py +0 -0
  240. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/workflow/core/_structure_hash.py +0 -0
  241. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/workflow/core/checkpoint.py +0 -0
  242. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/workflow/core/models.py +0 -0
  243. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/workflow/core/runner.py +0 -0
  244. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/workflow/core/workflow.py +0 -0
  245. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/workflow/defaults.py +0 -0
  246. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/workflow/loader.py +0 -0
  247. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/workflow/schema.py +0 -0
  248. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/workflow/schema_utils.py +0 -0
  249. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/workflow/steps/__init__.py +0 -0
  250. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/workflow/steps/agentbyte_agent.py +0 -0
  251. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/workflow/steps/echo.py +0 -0
  252. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/workflow/steps/function.py +0 -0
  253. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/workflow/steps/http.py +0 -0
  254. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/workflow/steps/step.py +0 -0
  255. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/workflow/steps/subworkflow.py +0 -0
  256. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/workflow/steps/transform.py +0 -0
  257. {agentbyte-0.20.3 → agentbyte-0.20.4}/src/agentbyte/workflow/visualizer.py +0 -0
  258. {agentbyte-0.20.3 → agentbyte-0.20.4}/tests/agents/test_agent_as_tool.py +0 -0
  259. {agentbyte-0.20.3 → agentbyte-0.20.4}/tests/agents/test_agent_basic.py +0 -0
  260. {agentbyte-0.20.3 → agentbyte-0.20.4}/tests/agents/test_agent_context_providers.py +0 -0
  261. {agentbyte-0.20.3 → agentbyte-0.20.4}/tests/agents/test_agent_event_types.py +0 -0
  262. {agentbyte-0.20.3 → agentbyte-0.20.4}/tests/agents/test_agent_memory_integration.py +0 -0
  263. {agentbyte-0.20.3 → agentbyte-0.20.4}/tests/agents/test_agent_middleware_integration.py +0 -0
  264. {agentbyte-0.20.3 → agentbyte-0.20.4}/tests/agents/test_agent_retry_middleware.py +0 -0
  265. {agentbyte-0.20.3 → agentbyte-0.20.4}/tests/agents/test_agent_stream_events.py +0 -0
  266. {agentbyte-0.20.3 → agentbyte-0.20.4}/tests/agents/test_embedding_agent.py +0 -0
  267. {agentbyte-0.20.3 → agentbyte-0.20.4}/tests/agents/test_tool_approval.py +0 -0
  268. {agentbyte-0.20.3 → agentbyte-0.20.4}/tests/cli/test_registry_check.py +0 -0
  269. {agentbyte-0.20.3 → agentbyte-0.20.4}/tests/context_providers/__init__.py +0 -0
  270. {agentbyte-0.20.3 → agentbyte-0.20.4}/tests/context_providers/test_skill_tools.py +0 -0
  271. {agentbyte-0.20.3 → agentbyte-0.20.4}/tests/context_providers/test_skills_provider.py +0 -0
  272. {agentbyte-0.20.3 → agentbyte-0.20.4}/tests/dataset/test_loader.py +0 -0
  273. {agentbyte-0.20.3 → agentbyte-0.20.4}/tests/dataset/test_multi_table.py +0 -0
  274. {agentbyte-0.20.3 → agentbyte-0.20.4}/tests/dataset/test_publish.py +0 -0
  275. {agentbyte-0.20.3 → agentbyte-0.20.4}/tests/eval/test_eval_dataset.py +0 -0
  276. {agentbyte-0.20.3 → agentbyte-0.20.4}/tests/eval/test_pairwise.py +0 -0
  277. {agentbyte-0.20.3 → agentbyte-0.20.4}/tests/eval/test_phase1_runner_and_targets.py +0 -0
  278. {agentbyte-0.20.3 → agentbyte-0.20.4}/tests/eval/test_phase2_checks_and_reports.py +0 -0
  279. {agentbyte-0.20.3 → agentbyte-0.20.4}/tests/eval/test_types_and_judges.py +0 -0
  280. {agentbyte-0.20.3 → agentbyte-0.20.4}/tests/llm/test_azure_client.py +0 -0
  281. {agentbyte-0.20.3 → agentbyte-0.20.4}/tests/llm/test_azure_embedding_client.py +0 -0
  282. {agentbyte-0.20.3 → agentbyte-0.20.4}/tests/llm/test_llm_types.py +0 -0
  283. {agentbyte-0.20.3 → agentbyte-0.20.4}/tests/llm/test_openai_client.py +0 -0
  284. {agentbyte-0.20.3 → agentbyte-0.20.4}/tests/llm/test_openai_embedding_client.py +0 -0
  285. {agentbyte-0.20.3 → agentbyte-0.20.4}/tests/llm/test_retry_observability.py +0 -0
  286. {agentbyte-0.20.3 → agentbyte-0.20.4}/tests/llm/test_retry_policy_api.py +0 -0
  287. {agentbyte-0.20.3 → agentbyte-0.20.4}/tests/memory/test_memory.py +0 -0
  288. {agentbyte-0.20.3 → agentbyte-0.20.4}/tests/middleware/test_middleware_chain.py +0 -0
  289. {agentbyte-0.20.3 → agentbyte-0.20.4}/tests/middleware/test_otel.py +0 -0
  290. {agentbyte-0.20.3 → agentbyte-0.20.4}/tests/middleware/test_retry_middleware.py +0 -0
  291. {agentbyte-0.20.3 → agentbyte-0.20.4}/tests/middleware/test_sql_usage.py +0 -0
  292. {agentbyte-0.20.3 → agentbyte-0.20.4}/tests/middleware/test_usage_logger.py +0 -0
  293. {agentbyte-0.20.3 → agentbyte-0.20.4}/tests/orchestration/test_ai_orchestrator.py +0 -0
  294. {agentbyte-0.20.3 → agentbyte-0.20.4}/tests/orchestration/test_base_orchestrator.py +0 -0
  295. {agentbyte-0.20.3 → agentbyte-0.20.4}/tests/orchestration/test_handoff_orchestrator.py +0 -0
  296. {agentbyte-0.20.3 → agentbyte-0.20.4}/tests/orchestration/test_plan_orchestrator.py +0 -0
  297. {agentbyte-0.20.3 → agentbyte-0.20.4}/tests/orchestration/test_round_robin.py +0 -0
  298. {agentbyte-0.20.3 → agentbyte-0.20.4}/tests/presets/test_agents.py +0 -0
  299. {agentbyte-0.20.3 → agentbyte-0.20.4}/tests/presets/test_clients.py +0 -0
  300. {agentbyte-0.20.3 → agentbyte-0.20.4}/tests/presets/test_instruction_registry.py +0 -0
  301. {agentbyte-0.20.3 → agentbyte-0.20.4}/tests/presets/test_orchestration.py +0 -0
  302. {agentbyte-0.20.3 → agentbyte-0.20.4}/tests/presets/test_workflow.py +0 -0
  303. {agentbyte-0.20.3 → agentbyte-0.20.4}/tests/skills/__init__.py +0 -0
  304. {agentbyte-0.20.3 → agentbyte-0.20.4}/tests/skills/test_base.py +0 -0
  305. {agentbyte-0.20.3 → agentbyte-0.20.4}/tests/skills/test_resources.py +0 -0
  306. {agentbyte-0.20.3 → agentbyte-0.20.4}/tests/skills/test_scripts.py +0 -0
  307. {agentbyte-0.20.3 → agentbyte-0.20.4}/tests/skills/test_sources.py +0 -0
  308. {agentbyte-0.20.3 → agentbyte-0.20.4}/tests/termination/test_base.py +0 -0
  309. {agentbyte-0.20.3 → agentbyte-0.20.4}/tests/termination/test_cancellation.py +0 -0
  310. {agentbyte-0.20.3 → agentbyte-0.20.4}/tests/termination/test_composite.py +0 -0
  311. {agentbyte-0.20.3 → agentbyte-0.20.4}/tests/termination/test_consecutive_agent.py +0 -0
  312. {agentbyte-0.20.3 → agentbyte-0.20.4}/tests/termination/test_external.py +0 -0
  313. {agentbyte-0.20.3 → agentbyte-0.20.4}/tests/termination/test_function_call.py +0 -0
  314. {agentbyte-0.20.3 → agentbyte-0.20.4}/tests/termination/test_handoff.py +0 -0
  315. {agentbyte-0.20.3 → agentbyte-0.20.4}/tests/termination/test_max_message.py +0 -0
  316. {agentbyte-0.20.3 → agentbyte-0.20.4}/tests/termination/test_predicate.py +0 -0
  317. {agentbyte-0.20.3 → agentbyte-0.20.4}/tests/termination/test_source.py +0 -0
  318. {agentbyte-0.20.3 → agentbyte-0.20.4}/tests/termination/test_text_mention.py +0 -0
  319. {agentbyte-0.20.3 → agentbyte-0.20.4}/tests/termination/test_timeout.py +0 -0
  320. {agentbyte-0.20.3 → agentbyte-0.20.4}/tests/termination/test_token_usage.py +0 -0
  321. {agentbyte-0.20.3 → agentbyte-0.20.4}/tests/test_cancellation_token.py +0 -0
  322. {agentbyte-0.20.3 → agentbyte-0.20.4}/tests/test_context.py +0 -0
  323. {agentbyte-0.20.3 → agentbyte-0.20.4}/tests/test_logger.py +0 -0
  324. {agentbyte-0.20.3 → agentbyte-0.20.4}/tests/test_messages.py +0 -0
  325. {agentbyte-0.20.3 → agentbyte-0.20.4}/tests/test_package_api.py +0 -0
  326. {agentbyte-0.20.3 → agentbyte-0.20.4}/tests/test_session_store.py +0 -0
  327. {agentbyte-0.20.3 → agentbyte-0.20.4}/tests/test_types.py +0 -0
  328. {agentbyte-0.20.3 → agentbyte-0.20.4}/tests/tools/test_coding_tools.py +0 -0
  329. {agentbyte-0.20.3 → agentbyte-0.20.4}/tests/tools/test_memory_tool.py +0 -0
  330. {agentbyte-0.20.3 → agentbyte-0.20.4}/tests/tools/test_research_tools.py +0 -0
  331. {agentbyte-0.20.3 → agentbyte-0.20.4}/tests/tools/test_tools.py +0 -0
  332. {agentbyte-0.20.3 → agentbyte-0.20.4}/tests/webui/__init__.py +0 -0
  333. {agentbyte-0.20.3 → agentbyte-0.20.4}/tests/webui/helpers.py +0 -0
  334. {agentbyte-0.20.3 → agentbyte-0.20.4}/tests/webui/test_execution.py +0 -0
  335. {agentbyte-0.20.3 → agentbyte-0.20.4}/tests/webui/test_microwebui_server.py +0 -0
  336. {agentbyte-0.20.3 → agentbyte-0.20.4}/tests/webui/test_package_api.py +0 -0
  337. {agentbyte-0.20.3 → agentbyte-0.20.4}/tests/webui/test_registry.py +0 -0
  338. {agentbyte-0.20.3 → agentbyte-0.20.4}/tests/webui/test_server.py +0 -0
  339. {agentbyte-0.20.3 → agentbyte-0.20.4}/tests/webui/test_sessions.py +0 -0
  340. {agentbyte-0.20.3 → agentbyte-0.20.4}/tests/workflow/test_checkpoint.py +0 -0
  341. {agentbyte-0.20.3 → agentbyte-0.20.4}/tests/workflow/test_subworkflow_step.py +0 -0
  342. {agentbyte-0.20.3 → agentbyte-0.20.4}/tests/workflow/test_workflow_agent.py +0 -0
  343. {agentbyte-0.20.3 → agentbyte-0.20.4}/tests/workflow/test_workflow_class.py +0 -0
  344. {agentbyte-0.20.3 → agentbyte-0.20.4}/tests/workflow/test_workflow_models.py +0 -0
  345. {agentbyte-0.20.3 → agentbyte-0.20.4}/tests/workflow/test_workflow_runner.py +0 -0
  346. {agentbyte-0.20.3 → agentbyte-0.20.4}/tests/workflow/test_workflow_schema.py +0 -0
  347. {agentbyte-0.20.3 → agentbyte-0.20.4}/tests/workflow/test_workflow_steps.py +0 -0
  348. {agentbyte-0.20.3 → agentbyte-0.20.4}/tests/workflow/test_workflow_visualizer.py +0 -0
@@ -444,7 +444,7 @@ def build_contract_agent(*, model_client) -> Agent:
444
444
  required_tools=["think"],
445
445
  max_iterations=6,
446
446
  example_tasks=[
447
- "Who signed CW347209 from Novartis?",
447
+ "Who signed CW347209 from XYZ?",
448
448
  "List all contracts expiring in Q3 2025.",
449
449
  ],
450
450
  )
@@ -481,6 +481,7 @@ async def run_with_filters(
481
481
  ```python
482
482
  from agentbyte.agents import EmbeddingAgent
483
483
  from agentbyte.llm.openai import OpenAIEmbeddingClient
484
+ from agentbyte.llm.types import EmbeddingResult
484
485
  from agentbyte.middleware import OTelMiddleware
485
486
 
486
487
  client = OpenAIEmbeddingClient.from_api_key(model="text-embedding-3-small")
@@ -510,6 +511,7 @@ print(f"Cost: ${result.usage.cost_estimate:.4f}, tokens: {result.usage.tokens_in
510
511
 
511
512
  ```python
512
513
  from agentbyte.agents import EmbeddingBatchProgressEvent
514
+ from agentbyte.llm.types import EmbeddingResult
513
515
 
514
516
  async for event in agent.run_stream(texts=chunks):
515
517
  if isinstance(event, EmbeddingBatchProgressEvent):
@@ -101,6 +101,38 @@ FunctionStep(
101
101
  )
102
102
  ```
103
103
 
104
+ Design guidance:
105
+
106
+ - `input_type` and `output_type` should be concrete Pydantic model classes that represent the real data crossing the step boundary.
107
+ - Prefer step outputs as the primary transport for business data that flows from one step to the next.
108
+ - Use `WorkflowContext` for cross-cutting concerns such as progress, flags, lightweight shared metadata, and values that are needed outside the direct step-to-step path.
109
+
110
+ Preferred pattern:
111
+
112
+ ```python
113
+ from pydantic import BaseModel
114
+
115
+
116
+ class ParsedInput(BaseModel):
117
+ record_id: str
118
+ file_name: str
119
+
120
+
121
+ class EnrichedOutput(ParsedInput):
122
+ content_hash: str
123
+
124
+
125
+ async def enrich(input_data: ParsedInput, context) -> EnrichedOutput:
126
+ context.set("started_enrichment", True)
127
+ return EnrichedOutput(
128
+ record_id=input_data.record_id,
129
+ file_name=input_data.file_name,
130
+ content_hash="abc123",
131
+ )
132
+ ```
133
+
134
+ Avoid using placeholder or pass-through output types while putting the real business payload only into `WorkflowContext.state`. That pattern weakens validation, makes step contracts less clear, and pushes too much logic into string-keyed shared state.
135
+
104
136
  ### TransformStep
105
137
 
106
138
  Maps fields from one schema to another without custom code. Use `"static:<value>"` for literal values, or a field name string to copy from input.
@@ -341,6 +373,13 @@ async def step_b(input_data: MyOutput, context: WorkflowContext) -> MyOutput:
341
373
  return MyOutput(value=f"Got: {shared}")
342
374
  ```
343
375
 
376
+ Use `WorkflowContext` intentionally:
377
+
378
+ - Put primary business data in step outputs when that data is part of the direct step-to-step contract.
379
+ - Put small shared values in `WorkflowContext` when they are cross-cutting, optional, or orthogonal to the main output shape.
380
+ - For simple linear enrichment pipelines, a good default is typed outputs for the main payload plus a small amount of primitive state for bookkeeping.
381
+ - Avoid making `WorkflowContext.state` the only source of truth for the workflow's main data flow unless the workflow genuinely needs loose coupling between many steps.
382
+
344
383
  `WorkflowContext` API:
345
384
 
346
385
  | Method | Purpose |
@@ -447,6 +486,14 @@ resumed_execution = await runner.run(
447
486
 
448
487
  The runner validates the checkpoint's structure hash against the live workflow graph on resume. If steps were added/removed, `can_resume=False` is set on the `CheckpointValidationResult`.
449
488
 
489
+ State size guidance:
490
+
491
+ - Workflow state is retained for the lifetime of the run.
492
+ - When checkpointing is enabled, that state is serialized into checkpoints.
493
+ - Prefer storing IDs, keys, counters, flags, and other small primitives in shared state.
494
+ - Avoid storing large domain objects, open clients, or heavyweight in-memory payloads in `WorkflowContext.state` unless they are truly required for resume semantics.
495
+ - If a step can reconstruct a full object from a lightweight identifier, prefer storing the identifier and reconstructing on demand.
496
+
450
497
  ---
451
498
 
452
499
  ## 11. Suspend / resume — human-in-the-loop
@@ -556,6 +603,9 @@ if not validation.is_valid:
556
603
  ## Guardrails
557
604
 
558
605
  - Use `chain()` for linear flows; use `add_step()` + `add_edge()` only when branching or fan-out is required.
606
+ - Design `FunctionStep` input and output types as real Pydantic contracts for the data flowing between steps; do not use placeholder output models when the actual payload lives only in workflow state.
607
+ - Use step outputs for primary business data flow, and reserve `WorkflowContext.state` for compact shared metadata, flags, and bookkeeping.
608
+ - Keep workflow state small and checkpoint-friendly; prefer IDs and lightweight values over large domain objects.
559
609
  - A fan-in join step with ≥ 2 upstream `always` edges receives `{"branch_outputs": {...}, "failed_branches": [...]}` — its input model must declare these fields, not the upstream output shape.
560
610
  - Always pass a workflow factory (callable) to `SubWorkflowStep`, not a live instance — the runner calls it to get a fresh copy per execution.
561
611
  - Do not pass `initial_input` and `responses` together — they are mutually exclusive.
@@ -4,6 +4,15 @@ All notable changes to Agentbyte are documented in this file.
4
4
 
5
5
  The format follows Keep a Changelog principles and semantic versioning.
6
6
 
7
+ ## [0.20.4] - 2026-05-18
8
+
9
+ ### Fixed
10
+
11
+ - Fixed `structured_content` always being `None` on `AssistantMessage` when `output_format` is used; agent now correctly reads `completion_result.structured_output` instead of `completion_result.message.structured_content`.
12
+ - Fixed `_make_schema_compatible` in OpenAI and Azure chat clients to include all object properties in the `required` array, satisfying OpenAI structured outputs strict mode for models with optional (`str | None`) fields.
13
+
14
+ ---
15
+
7
16
  ## [0.20.3] - 2026-05-11
8
17
 
9
18
  ### Fixed
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: agentbyte
3
- Version: 0.20.3
3
+ Version: 0.20.4
4
4
  Summary: A toolkit for designing multiagent systems
5
5
  Author-email: MrDataPsycho <mr.data.psycho@gmail.com>
6
6
  License-Expression: LicenseRef-Proprietary
@@ -76,7 +76,7 @@ Description-Content-Type: text/markdown
76
76
 
77
77
  Agentbyte is an observability-first agentic AI framework for building and studying multiagent systems with a learning-first, implementation-oriented workflow.
78
78
 
79
- Current release: **0.20.3**
79
+ Current release: **0.20.4**
80
80
 
81
81
  ## Current Capabilities
82
82
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  Agentbyte is an observability-first agentic AI framework for building and studying multiagent systems with a learning-first, implementation-oriented workflow.
4
4
 
5
- Current release: **0.20.3**
5
+ Current release: **0.20.4**
6
6
 
7
7
  ## Current Capabilities
8
8
 
@@ -0,0 +1,2 @@
1
+ __version__ = "0.20.4"
2
+ VERSION = __version__
@@ -601,7 +601,7 @@ class Agent(BaseAgent):
601
601
  content=completion_result.message.content,
602
602
  source=self.name,
603
603
  tool_calls=completion_result.message.tool_calls,
604
- structured_content=completion_result.message.structured_content,
604
+ structured_content=completion_result.structured_output,
605
605
  usage=completion_result.usage,
606
606
  )
607
607
 
@@ -616,6 +616,10 @@ class AzureOpenAIChatCompletionClient(
616
616
 
617
617
  if compatible_schema.get("type") == "object":
618
618
  compatible_schema["additionalProperties"] = False
619
+ if "properties" in compatible_schema:
620
+ all_keys = list(compatible_schema["properties"].keys())
621
+ existing = compatible_schema.get("required", [])
622
+ compatible_schema["required"] = list(dict.fromkeys(existing + all_keys))
619
623
 
620
624
  return compatible_schema
621
625
 
@@ -394,6 +394,10 @@ class OpenAIChatCompletionClient(
394
394
 
395
395
  if compatible_schema.get("type") == "object":
396
396
  compatible_schema["additionalProperties"] = False
397
+ if "properties" in compatible_schema:
398
+ all_keys = list(compatible_schema["properties"].keys())
399
+ existing = compatible_schema.get("required", [])
400
+ compatible_schema["required"] = list(dict.fromkeys(existing + all_keys))
397
401
 
398
402
  return compatible_schema
399
403
 
@@ -1,2 +0,0 @@
1
- __version__ = "0.20.3"
2
- VERSION = __version__
File without changes
File without changes
File without changes